HEADS UP: xorg upgrade plans

Brooks Davis brooks at freebsd.org
Mon May 7 20:58:55 UTC 2007


On Mon, May 07, 2007 at 04:44:14PM -0400, Kris Kennaway wrote:
> On Mon, May 07, 2007 at 03:35:48PM -0500, Jeremy Messenger wrote:
> > On Mon, 07 May 2007 15:14:48 -0500, Kris Kennaway <kris at obsecurity.org>  
> > wrote:
> > 
> > >On Mon, May 07, 2007 at 03:09:06PM -0500, Jeremy Messenger wrote:
> > >
> > >>>No, at a minimum I am not comfortable recommending its use until it
> > >>>saves old shared libraries across updates (I sent you email about this
> > >>>a while ago), which is a vital safety and robustness mechanism.
> > >>
> > >>I am one of people that dislike this and it is not required to get build
> > >>function. ;-) I think this option should be disable by default, because
> > >>put stuff in lib/compat/pkg hides the problems. Also:
> > >
> > >No, it is required when dealing with shared library bumps (which
> > >happen about once a week).  Otherwise all of the installed ports using
> > >the library break if the new library build fails.  Talk to Brooks
> > >about how annoying this is with e.g. gettext.
> > 
> > portmaster has a feature to backup the old package before the upgrade. I  
> > think it is better than put in lib/compat/pkg. When I used portupgrade and  
> > I always have lib/compat/pkg disabled until I switched to portmaster. I  
> > never have that problem when ports tree is flexible enough to downgrade  
> > and wait until someone fix it.
> 
> Well, is this feature enabled by default and does it completely back
> out the upgrade if it fails?  I may be wrong, but I doubt it is going
> to do a complete recursive backout of the upgrade if e.g. one of the
> ports depending on the new library fails to build after the library
> was updated.  If it just restores the old version of this port then it
> will be restoring a nonfunctional port, since it links to the version
> of the library that was already deleted.
> 
> The issue is about providing seat-belts for our users who just want
> failed upgrades not to destroy their system.  Even if you think that
> backing up the package is a better solution than preserving the shared
> libraries, it seems to me that portmaster still falls short here
> because it doesn't provide a rollback mechanism to restore the system
> to a working state when an upgrade fails.

For a number of failure modes, the use of pkg_create -b can't do this.
In particularly, pkg_create -b can't ignore missing files (because tar
can't in turn) so you can't make a package of anything with a missing
file.  The latest versions of portmaster allow you to ignore this error
by default since it's not as if there's anything else you could do, but
in that situation there's no backing out.  Fixing pkg_create would help
here.

The other problem is that if you're going to automatically update all
the dependencies for a port, you need to upgrade all the stuff that
depends on them as well.  For example the gettext upgrade got triggered
on my laptop by upgrading something the used gmake.  The result was that
virtually nothing outside the base worked any more.  Saving the shared
library would have prevented this and allowed a more graceful upgrade
over a few weeks.  The fact that a basic desktop setup takes days to
build on fairly fast hardware seems to be an indication that we need a
workaround here.  There are other possible solutions, but saving copied
of libraries seems to be the accepted one at the moment.

-- Brooks
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-ports/attachments/20070507/35393f54/attachment.pgp


More information about the freebsd-ports mailing list