Xorg upgrade & portmaster

Doug Barton dougb at FreeBSD.org
Mon May 21 19:18:48 UTC 2007

Vlad V. Teterya wrote:
> Hash: SHA1
> from ports/UPDATING:
> - --skip--
> This upgrade procedure is for users of portupgrade.  Users of other
> upgrade tools should contact the author for the corresponding upgrade
> method for that tool.
> - --skip--
> any portmaster-specific tips, Doug? :)

Yeah, don't use portmaster yet. :)

Seriously, I ran into a pretty big problem last night doing some 
regression testing which I'm not sure how to address. What portmaster 
does is this:

1. Get the list of dependencies for the port from build/run-depends-list.
2. Build and install any dependencies from that list that are not up 
to date (or installed at all).
3. run make in the port
4. pkg_delete any existing port
5. run make install in the port

Where this gets really exciting is in the xorg-libraries port, whose 
run-depends installs a whole bunch of files in the same places as 
existing files from the old library, all of which are deleted by the 
subsequent pkg_delete of the old port. Followed by BAM, everything 
fails after that.

What I'm considering at this time is to change the default order to:
1. Get the build-depends-list
2. Build and install those
3. Run make
4. pkg_delete
5. Get the run-depends-list
6. Build and install those
7. Run make install

This would fix this particular problem, but my concern is that it 
would expose other problems (namely maintainers that don't correctly 
differentiate between build and run depends). I also think it's 
overkill, since this is the first time we've ever run into a situation 
like this, and we're not likely to run into another one any time soon. 
There is also another issue in that if the -t option is used to use 
all-depends-list instead of the other two, that HAS to run first, so 
we'd still have this problem.

At this point I'm interested in feedback on what people think the 
right answer should be here. I'll work on implementing the split of 
build and run depends to see how hard it is to do (and whether it 
breaks anything else), but I'm not convinced yet that I'll actually 
commit it.

Meanwhile, if someone is really interested in doing the upgrade right 
away, the way I'd do it is:

1. Run portmaster -l > installed-ports-list
2. Save the list of root and leaf ports
3. Download the new portmaster from http://dougbarton.us/portmaster
4. Check the help for new options -R -x and --force-config (portmaster -h)
5. pkg_delete * (seriously)
6. Use portmaster to install the (non-xorg) root ports from your list 
in 1.
7. Install the x11/xorg meta-port
8. Install everything else from the list of leaf ports in 1.




     This .signature sanitized for your protection

More information about the freebsd-ports mailing list