Slight problem with make actual-package-depends with ports

Stephen Montgomery-Smith stephen at math.missouri.edu
Wed Jul 18 15:11:49 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?
> 
>> _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.

In other words, you have to perform the "make package" right after the 
"make install" before you install any other ports.  Otherwise you have 
to use "pkg_create -b" (which I have recently started doing).

> 
>> 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...

The other option (to allow the users to do "make package" much later 
than "make install") would be to have two different 
actual-package-depends, one for "make install", and the other for "make 
package."

However if this is perceived to be a non-problem by everyone else, I am 
going to withdraw my suggestion.  I'll just leave a note here in case 
anyone else has this problem (as indeed it seems at least one other 
person did), that you must do the "make package" right after the "make 
install."

(I did file a PR - committers should close it if they feel it is not an 
issue.  But I leave it with them.)

Best regards, Stephen


More information about the freebsd-hackers mailing list