Vlad V. Teterya wrote:
-----BEGIN PGP SIGNED MESSAGE-----
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.

hth,

Doug

--

    This .signature sanitized for your protection

_______________________________________________
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to