Updated perl - broke stuff

Michael C. Shultz reso3w83 at verizon.net
Mon Feb 14 09:42:14 GMT 2005


On Monday 14 February 2005 01:09 am, you wrote:
> On Mon, Feb 14, 2005 at 12:37:28AM -0800, Michael C. Shultz wrote:
> > portupgrade -rf forces the rebuild of the port and ALL of its
> > dependencies, and it builds them  in the wrong order, it is nothing
> > like portmanager.
> >
> > example:
> >
> > if the following are installed:
> >
> > masterPort-0.0
> > dependentPort-A-0.0
> > dependentPort-B-0.0
> >
> > then
> >
> > dependency-A-0.0 is upgraded
> > to dependency-A-0.1
> >
> > portupgrade -rf masterPort-0.0
> >
> > will build the following in the following order:
> >
> > masterPort-0.0
> > dependentPort-A-0.1
> > dependentPort-B-0.0
>
> Maybe I misunderstand what relationship you are thinking of between
> these ports, but 'portupgrade -rf dependency-A-0.0' would do
> dependency-A, then masterPort, just as below.  Are you confusing -r
> with -R (which upgrades ports 'in the other direction in the
> dependency tree')?  If I'm misunderstanding what you mean, can you
> spell it out with clearer Makefile fragments (i.e. what RUN_DEPENDS
> on what)?

Kris, I made a link to the Makefiles I used on the web page, here it is 
again:

http://portmanager.sunsite.dk/portupgradeTest.html

and the Makefiles are in

http://portmanager.sunsite.dk/distfiles/portUpgradeTest.tar.gz

I just tried -Rf on the test set and you are correct, using 
masterPort as the target:

portupgrade -Rf builds masterPorts dependencies in the correct order ie:

masterPort
dependentPort-A
dependentPort-B

However, it still builds everthing and has to be applied to one port at 
a time.  The closer analogy to portmanager would have to be

portupgrade -aRf but this would result in every installed port being 
upgraded, where as portmanager will start with out of date
dependencies then proceed up the chain to ports that depend on them, it
won't rebuild dependencies that were never upgraded.

One other thing I might as well mention, portmanager  has no run time 
dependencies, and does not use /usr/ports/INDEX.

-Mike













>
> > portmanager -u will do the following:
> >
> > dependentPort-A-0.1
> > masterPort-0.0
> >
> > There is a huge difference here!  Portupgrade
> > builds the top level port before it's dependencies,
> > then proceeds to build all of the dependencies wither
> > they need it or not.
>
> Kris


More information about the freebsd-questions mailing list