portupgrade-devel: 2 feature requests
Aryeh M. Friedman
aryeh.friedman at gmail.com
Thu Feb 14 18:26:50 UTC 2008
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Doug Barton wrote:
| I'm going to respond to these from the portmaster perspective to try
| and give some additional context. No criticism of portupgrade is
| intended, since I've said many times that they are not completely
| overlapping in feature sets.
|
| I'm also responding since I think these are interesting questions and
| I've put a lot of thought into my solutions for them. :)
|
| Aryeh M. Friedman wrote:
|> How hard would it be to add the following to portupgrade-devel:
|>
|> 1. Progress report for -a builds (i.e. after and/or at the start of a
|> port build it says how many ports are left to be processed)
|
| That probably wouldn't be too hard to add, but it wouldn't really tell
| you very much since 1 firefox build will take longer than just about
| any 10 other ports.
The idea is more along the lines of knowing how far you are away from
completing the whole build (should I interrupt it and restart it from
scratch later or just let it run if I need to free up the system
resources used for building [portupgrade at least doesn't do anything to
make it so you can run other heavy processes like your own programming
or mplayer while doing a portupgrade {namely I would like to keep long
run builds truelly in the background... and renicing only renices
portupgrade not the forked makes}]).
|
|> 2. Interruptible -a builds (i.e. portupgrade -af will restart from where
|> it was last interrupted [perhaps with an additional flag?])
|
| Portmaster has this feature, you add the -R flag along with -f (or
| -r). (Note, not all command line options mean the same thing for both
| tools. Look at the man pages.) You can also use the -C flag to avoid
| deleting what you've already built for ports in progress.
This means you need to keep track of what top level ports you have
installed in your head or in notes somewhere. Also in reading the man
page for portupgrade I do not see how -C does what you say it does "
-C --force-config Run ``make config'' before everything for
all tasks."
|
|> Also two behaviours that make no sense to me:
|>
|> 1. When doing portinstall and/or portupgrade -af on a large set
|> dependant ports (such as xorg) the default options get built *BEFORE*
|> the option screen is displayed. For example when doing xorg-drivers
|> nv, ati/radeon/i810 are built before it asks you what drivers to build.
|
| Portmaster runs through all the options dialogs first (and downloads
| new distfiles in the background), then starts the building process.
Does it also check for conflicting options at that time?
|
|> 2. When doing a portupgrade -af the order of builds seems to not follow
|> any pattern interms of depend relationships (topo sort?)
|
| If you're going to rebuild them all anyway one could make the argument
| that the order of where you start doesn't matter, as long as each port
| is rebuilt "depth first." I.e., that you update all of its
| dependencies (and all of their dependencies, etc.) first.
Thats what I was saying as far I can tell portupgrade doesn't respect
depend order even.
|
| However, portmaster splits the ports into categories, and rebuilds the
| ones with the least (or zero) dependencies first so you're going
| (roughly) "up" the tree as you (re)build stuff. This sometimes results
| in recursion down the dependency tree anyways since you have to start
| somewhere, and portmaster runs through the categories alphabetically.
| But since it does the same depth first traversal here that it does for
| any other build, this doesn't matter. It also caches the information
| about what ports are already up to date (or already built in a
| previous run for -R) so you don't have to duplicate any effort.
|
|
That caching is what I was asking about I think in the second feature
request but also make it apply to -af.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.4 (FreeBSD)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQFHtIfek8GFzCrQm4ARAtBLAKDOApxxBfymGP/wQZ123eBW3droPACglPLW
Ipwf8c0uacvJ2X1FXPjP+HE=
=FTa2
-----END PGP SIGNATURE-----
More information about the freebsd-ports
mailing list