Slight problem with make actual-package-depends with ports

Stephen Montgomery-Smith stephen at math.missouri.edu
Wed Jul 18 14:16:57 UTC 2007


Alexander Leidinger wrote:
> Quoting Stephen Montgomery-Smith <stephen at math.missouri.edu> (Tue, 17 Jul 2007 19:46:11 -0500):
> 
>> I appreciate that most people won't have this problem, but it has bitten me.
>>
>> After you have made and installed a port, but don't clean it, and then 
>> made a bunch of other ports, if you go back to the original port and 
>> then do "make package", then +CONTENTS can be a bit messed up for the 
>> package.  This is because the creation of other ports might disturb 
> 
> Can you please give an example what "messed up" means in this context,
> e.g. post a diff between a good an a bad contents file? And what
> actions you did to get this difference?

I don't have an example to hand right now.

> 
>> _LIB_RUN_DEPENDS and might put in some extra entries in +CONTENTS.
> 
> You mean that if you create a leaf package and then rebuild a package
> which is in the middle of the dependency tree with options which change
> the dependency graph of the leaf package you get problems?
> 
> If yes: this has to be expected. You need to rebuild the packages in
> the right order.
> 
>> This happens to me because I make all my ports on one machine and then 
>> copy them as packages to other machines.  Then on the other machines, 
>> the structure of /var/db/pkg gets a bit messed up and pkg_delete -r 
>> malfunctions.
> 
> I have a lot of jails where I use the packages build in other jails. I
> haven't seen a problem there. The package install doesn't change the
> +CONTENTS files, so /var/db/pkg should be messed up on the build
> machine too...
> 
>> It seems to me that the cure is to slightly change "make 
>> actual-package-depends" so that if the port is already installed, it 
>> just uses +CONTENTS.
> 
> This is wrong. What if you have a port installed and you want to
> rebuild the same version with other OPTIONS which changes the +CONTENTS
> file? If I read your patch right, it will use the wrong contents...

You cannot install the port until you have first deinstalled it (unless 
you use some kind of  "FORCE" option, and it is reasonable that this 
would mess things up).  Thus at installation time, +CONTENTS will never 
exist.

But I take your point if perhaps you do need to use some kind of FORCE 
option.




More information about the freebsd-hackers mailing list