From owner-freebsd-x11@FreeBSD.ORG Mon Apr 16 09:26:32 2007 Return-Path: X-Original-To: x11@freebsd.org Delivered-To: freebsd-x11@FreeBSD.ORG Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id BC3E016A400; Mon, 16 Apr 2007 09:26:32 +0000 (UTC) (envelope-from kris@obsecurity.org) Received: from elvis.mu.org (elvis.mu.org [192.203.228.196]) by mx1.freebsd.org (Postfix) with ESMTP id 9F59F13C459; Mon, 16 Apr 2007 09:26:32 +0000 (UTC) (envelope-from kris@obsecurity.org) Received: from obsecurity.dyndns.org (elvis.mu.org [192.203.228.196]) by elvis.mu.org (Postfix) with ESMTP id 2CBB71A3C1C; Mon, 16 Apr 2007 02:26:45 -0700 (PDT) Received: by obsecurity.dyndns.org (Postfix, from userid 1000) id D08DA513AE; Mon, 16 Apr 2007 05:26:29 -0400 (EDT) Date: Mon, 16 Apr 2007 05:26:29 -0400 From: Kris Kennaway To: Kris Kennaway Message-ID: <20070416092629.GA36962@xor.obsecurity.org> References: <20070414194028.GB2313@xor.obsecurity.org> <20070414195441.GA17321@xor.obsecurity.org> <20070415012035.GA32022@xor.obsecurity.org> <200704150400.54127.dejan.lesjak@ijs.si> <20070415021300.GA77534@xor.obsecurity.org> <20070416005331.GA33243@xor.obsecurity.org> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="azLHFNyN32YCQGCU" Content-Disposition: inline In-Reply-To: <20070416005331.GA33243@xor.obsecurity.org> User-Agent: Mutt/1.4.2.2i Cc: lesi@freebsd.org, x11@freebsd.org Subject: Re: Upgrade script X-BeenThere: freebsd-x11@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: X11 on FreeBSD -- maintaining and support List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Apr 2007 09:26:32 -0000 --azLHFNyN32YCQGCU Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Sun, Apr 15, 2007 at 08:53:31PM -0400, Kris Kennaway wrote: > On Sat, Apr 14, 2007 at 10:13:00PM -0400, Kris Kennaway wrote: >=20 > > > > I confirmed this on an attempted=20 > > > > upgrade of an xorg 6.9 machine. > > >=20 > > > What was missing from 7.2? > >=20 > > libXau failed, followed by: >=20 > OK, this is repeatable. What is happening is that when I kick off > portupgrade -a, xproto builds early and updates some headers (spamming > over the top of xorg 6.9 files), then some time later xorg-libraries > builds, and when it deinstalls the old 6.9 port it deletes the headers > installed by xproto. Then things like libXau fail to build. >=20 > It still looks to me like removing all of the old xorg ports first is > the only way to avoid this kind of problem; this problem is general > and will probably affect other of the xorg-foo metaports too (i.e. the > files they used to own have also migrated into subports, so the same > thing will happen: the subports are installed first and spam some of > the xorg 6.9 files that are still present, then the metaport builds, > deinstalls the old 6.9 version, and deletes those files leaving > nothing behind) OK, after several sleepless hours worrying about how much the xorg upgrade is going to suck for our users, I think I might have thought of a better way. Instead of running the mergebase.sh script before the xorg upgrade, run it after the upgrade. This will avoid the above problem of files moving against the natural order of the dependency tree, because the xorg 6.9 files are all in /usr/X11R6, and the new ones are installed into /usr/local so nothing is being overwritten. Apart from the xorg-manpages special casing in mergebase.sh, this should even allow portupgrade -a to work correctly. I am not sure why xorg-manpages needs to be special-cased; it looks like the manpages are migrating into xorg-docs, so can't we use a MOVED entry to do that? Running mergebase as a post-install script also has the advantage that if someone forgets, it may not be a fatal problem: most ports are X11BASE-clean, so if /usr/X11R6 hangs around on their system they may not even notice. Another possible issue with the upgrade is that if we only bump portrevision on ports that used to live in X11BASE, and not the LOCALBASE ports that also depend on X (KDE, GNOME, etc), the latter will not get a full set of updated dependencies (i.e. they will only be recorded as depending on xorg-libraries-7.2, when they should also be depending on all of the new xorg sub-ports too, e.g. libXfoo, lameproto, etc). pkgdb -L will fix this for portupgrade users, but not for others. However, it might actually not be an issue, since there is still an implied linkage via xorg-libraries (and similarly for the other metaports). i.e. when someone does a portupgrade -R kde or similar, it will recurse to xorg-libraries and then to all the xorg subports and upgrade any that are out of date, even if there is no direct dependency on the subports recorded. Kris --azLHFNyN32YCQGCU Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.7 (FreeBSD) iD8DBQFGI0FFWry0BWjoQKURAn68AJ4pHyVB9G+vvLdFkM/vg0bklcPxLQCgzwoq aX8suY9uAeFGKN83XhYEUkk= =Y4BE -----END PGP SIGNATURE----- --azLHFNyN32YCQGCU--