From owner-freebsd-current@FreeBSD.ORG Mon Sep 3 19:37:18 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 0DAAE106566C; Mon, 3 Sep 2012 19:37:18 +0000 (UTC) (envelope-from tijl@freebsd.org) Received: from mailrelay005.isp.belgacom.be (mailrelay005.isp.belgacom.be [195.238.6.171]) by mx1.freebsd.org (Postfix) with ESMTP id 296E28FC1D; Mon, 3 Sep 2012 19:37:16 +0000 (UTC) X-Belgacom-Dynamic: yes X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Av4EAFUGRVBbsRjw/2dsb2JhbABFuyOBCIIgAQEEAVYjBQsLGAklDwIoHhMBBwEBiAMKujaLDYcjA45igSCVcYJl Received: from 240.24-177-91.adsl-dyn.isp.belgacom.be (HELO kalimero.tijl.coosemans.org) ([91.177.24.240]) by relay.skynet.be with ESMTP; 03 Sep 2012 21:35:48 +0200 Received: from kalimero.tijl.coosemans.org (kalimero.tijl.coosemans.org [127.0.0.1]) by kalimero.tijl.coosemans.org (8.14.5/8.14.5) with ESMTP id q83JZlqe065036; Mon, 3 Sep 2012 21:35:48 +0200 (CEST) (envelope-from tijl@freebsd.org) Message-ID: <5045068C.80200@freebsd.org> Date: Mon, 03 Sep 2012 21:35:40 +0200 From: Tijl Coosemans User-Agent: Mozilla/5.0 (X11; FreeBSD i386; rv:14.0) Gecko/20120804 Thunderbird/14.0 MIME-Version: 1.0 To: freebsd-current@freebsd.org References: <97612B57-1255-4BB3-A6D3-FC74324C6D67@FreeBSD.org> <503FF0EE.2020605@FreeBSD.org> <20120831095910.GQ64447@ithaqua.etoilebsd.net> <201208310810.50725.jhb@freebsd.org> <20120831122211.GS64447@ithaqua.etoilebsd.net> <50424956.4090804@freebsd.org> <50426493.7050302@FreeBSD.org> In-Reply-To: <50426493.7050302@FreeBSD.org> X-Enigmail-Version: 1.4.2 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="------------enigF4A976CDEB9CDFD6F10F8CA3" Cc: Matthew Seaman Subject: Re: pkgng suggestion: renaming /usr/sbin/pkg to /usr/sbin/pkg-bootstrap X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Sep 2012 19:37:18 -0000 This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --------------enigF4A976CDEB9CDFD6F10F8CA3 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable On 01-09-2012 21:40, Matthew Seaman wrote: > On 01/09/2012 18:43, Tijl Coosemans wrote: >> In this scenario the ports tree needs to keep support for older releas= es, >> but that's a consequence of the fact that there's only one ports tree = for >> all releases. Somewhere in between the ports and the various releases = there >> has to be some form encapsulation, not just for pkg, but for all the t= ools >> used by the ports tree. Given how the ports tree currently encapsulate= s >> both the old and new pkg tools I don't see how supporting multiple ver= sions >> of pkgng would be a problem because presumably the difference between = pkgng >> versions is going to be much smaller than the difference between the o= ld >> and new tools. >=20 > New functionality already in the process of development will entail > making non-backwards compatible changes to the DB schema. If we're tie= d > to supporting a version of pkgng bundled with a release, that's going t= o > make rolling out such changes much harder. >=20 > On the other hand, if pkgng is in ports, then we can release a new > version and simultaneously publish new package sets (incorporating > the update to pkgng) from the repositories which will have been built > using the updated DB schema. But you cannot update the pkgng repo on the release DVDs. And also, there's no such thing as simultaneous. After you've updated the= port it takes days even weeks for the package build cluster to rebuild package sets for all branches and all architectures (think powerpc, sparc64) and then it takes even more time for the ftp mirrors to pick up the new set from the master ftp and it takes even more time for a user to= actually update his ports/packages (months to years). During all this time there can be a difference in version (possibly several versions) between the pkgng in ports, the pkgng of the official repositories and the pkgng version that is currently installed on the user's system. > The ports tree doesn't track the versioning of the base system, and it > makes perfect sense to me that tools for dealing with the ports should > follow changes to ports rather than changes to the base. How about the following: If you can guarantee that the pkg port can always be built and installed from ports no matter what version of pkg is currently installed, then the= ports tree only needs to support the version of pkg that is currently in the tree. Guaranteeing that the pkg port can always be built probably means it should set a flag in its Makefile (e.g.BUILDING_PKG) that causes bsd.port.mk to not use pkg at all until after installation (so it cannot do conflicts checking for instance). During installation the port also updates the local pkg registry such that after installation bsd.port.mk can register the package with the new pkg version. Special-casing the pkg port this way effectively creates a bootstrap in the ports tree itself (instead of having a pkg-bootstrap tool in base or during FreeBSD installation). Similarly, for package users, pkg should always be able to update itself from a remote repo no matter what version is currently installed. jhb's idea of putting pkg in a self extracting script in a fixed location of a package repo is probably the most flexible. This creates a bootstrap in every pkg repo. And then you can put pkg with a pkg repo on FreeBSD release media as well, such that packages (including pkg) can be installed during and after installation without needing an internet connection. If there is an internet connection and the user wants to install packages from a remote repo, the pkg on the release media can fetch and install pkg from the repo and then that pkg can be used to install other packages. I'd be ok with this. The ports tree only has to support one version of pkgng, there's no separate bootstrap tool, release media are nicely self-contained and no matter how outdated a user's installed packages are he can always update using either ports or packages. --------------enigF4A976CDEB9CDFD6F10F8CA3 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.19 (FreeBSD) iF4EAREIAAYFAlBFBpMACgkQfoCS2CCgtitrvwD9G6Cbadup6mWc2TfQIofBOb+o uQ54qetj+7+4sI/wFgMA/jcxG+Ot4A+pzdt+k9HanmTqwX/y6iZxSvTM1IyKK1X2 =Z1KX -----END PGP SIGNATURE----- --------------enigF4A976CDEB9CDFD6F10F8CA3--