On 29/08/2010 20:20:51, Warren Block wrote: > On Sun, 29 Aug 2010, Chip Camden wrote: >> Quoth Eitan Adler on Sunday, 29 August 2010: >>> On Sat, Aug 28, 2010 at 10:40 PM, Kurt Buff <kurt.b...@gmail.com> wrote: >>>> Portupgrade won't, AFAIK, cross branches, though I could be wrong >>>> about that. >>>> >>>> There's a 3.0 branch in /usr/ports/www/squid30 and a 3.1 branch in >>>> /usr/ports/www/squid31, and I want to make the switch to pick up a >>>> feature. >>> >>> portmaster -o www/squid31 www/squid30 >> >> So, if I understand correctly, I could use this to upgrade from python26 >> to python27? Or perl 5.8.9 to perl 5.12? and everything that depended >> on the former will be upgraded to the latter? Can I say "sweeeeet" in >> advance? Is there a way to do that with portupgrade, or is this one of >> those features that makes portmaster a better mousetrap? > > portupgrade has had it for a long time: > > man portupgrade | less '+/-o ORIGIN'
Yes. portmaster has pretty much the same '-o' flag. However, it's not quite so "sweeeeet" (sic) as all that -- all the '-o' flag does, in either portmaster or portupgrade is transfer the dependencies to the new package. In very many cases you would still have to reinstall everything that depends on the replaced package. Sometimes that's because shlibs have different versions -- eg. if you upgrade from mysql-5.0.x to mysql-5.1.x[*], then the ABI version changes and you need to reinstall everything that links against libmysql. With perl, the reason is even simpler -- the perl version number is embedded in the library search path, so until you reinstall, even pure-perl modules are going to be inaccessible. XS modules need relinking in any case. Not entirely sure of the details with python, but certainly any module which is available as dynamically loadable object code will need relinking. Generally, the advice is to forcibly reinstall everything that depends on the package you replaced: portmaster -f -R -r example/port portupgrade -f -r example/port Cheers, Matthew [*] Which is a slightly trickier exercise than most, given you've got to update both mysql-client and mysql-server ports using the '-o' thing. Possibly even the mysql-scripts port if installed. And then you've got to deal with all the dependencies too. -- Dr Matthew J Seaman MA, D.Phil. 7 Priory Courtyard Flat 3 PGP: http://www.infracaninophile.co.uk/pgpkey Ramsgate JID: matt...@infracaninophile.co.uk Kent, CT11 9PW
signature.asc
Description: OpenPGP digital signature