Upgrade script

Dejan Lesjak dejan.lesjak at ijs.si
Sun Apr 15 02:01:00 UTC 2007


On Sunday 15 April 2007 03:20:35 Kris Kennaway wrote:
> Actually this script is not doing enough: the problem is that even
> after all the portrevisions will be bumped, a portupgrade -a will not
> install most of the new xorg packages, and the user will be left with
> a non-working hybrid (I guess no-one actually tested the upgrade part
> yet :-).

Erm, yes it was, a couple of times in vmware - fresh install of xorg, 
windowmaker, xine (as they both go in X11BASE). All the xorg 7.2 libs ports 
were installed.

> i.e. when xorg-libraries is upgraded from 6.9 to 7.2, most of the
> dependency checks for things that now live in sub-packages will pass
> (since they look for files also installed by xorg 6.9), so most of the
> new ports won't be installed.

They shouldn't just pass. xorg-libraries meta-port is looking for .pc files 
for dependencies, not libraries, for exactly this purpose. Also the 
dependecies are under RUN_DEPENDS so portupgrade installs them after removing 
old version of xorg-libraries (ie it does equivalent of (cd portdir && make 
build && make deinstall && make install)), at least it did so the last time I 
upgraded.

> I confirmed this on an attempted 
> upgrade of an xorg 6.9 machine.

What was missing from 7.2?

> What was necessary was the following:
>
> # Make sure all dependencies are in consistent state
> pkgdb -FL
>
> # This is over-complete, i.e. it removes some things it doesn't have
> # to.  Should be replaced by pkg_delete -f.
> pkg_deinstall -Rf xorg imake libGLU nvidia-driver
>
> # Install new xorg from scratch.  Could be replaced by pkg_add -r xorg
> # once packages are available.
> portinstall -N xorg
>
> # Patch up dependencies, i.e. register new dependencies on all the new
> # sub-ports of the packages we didn't upgrade yet
> pkgdb -FL
>
> Then portupgrade -a, which was probably not strictly necessary.
>
> Kris
>
> P.S. Dunno about non-portupgrade users, they may be SOL.

Hand upgrade of eg xorg-libraries should work with (make build && make 
deinstall && make install). So if portupgrade alternatives work that way as 
well they should do the right thing. I'll do more tests but of course wiping 
out ports, installing old xorg and upgrading to new takes a bit of time...

Dejan


More information about the freebsd-x11 mailing list