Slight problem with make actual-package-depends with ports

Antony Mawer fbsd-hackers at mawer.org
Wed Jul 18 22:50:37 UTC 2007


On 18/07/2007 5:44 PM, Garrett Cooper wrote:
> Antony Mawer wrote:
>> On 18/07/2007 10:46 AM, Stephen Montgomery-Smith wrote:
>>> 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 _LIB_RUN_DEPENDS and might put in some extra entries in 
>>> +CONTENTS.
>>>
>>> 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.
>>>
>>> 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.
>>
>> I can't comment on the particular approach taken in your patch, but 
>> can certainly attest to experiencing the same problem and it being 
>> frustrating to identify what was going on. It was only after much 
>> hair-pulling that I discovered that doing a 'make clean' at the 
>> appropriate time before package building fixed the problem.
>>
>> Otherwise I was winding up with plenty of seemingly OK packages that 
>> were missing critical files (in this instance, various PHP5 extension 
>> ports that were "installing" but missing the actual .so files!)
>>
>> --Antony
> 
>    Installing ports registers them on the machine as packages, by 
> simulating a package install via stdin. Was that forgotten?
> -Garrett

The packages were definitely installed, by working through and doing 
"make install" on the desired ports... I was aiming to uninstall 
existing PHP5 packages on deployed servers, and then install from a 
freshly updated set. The new ports were successfully installed, but for 
whatever reason some of the packages created were missing the .so files.

I removed all the installed packages, make clean'd everything, then 
started again and the next respin worked fine (without updating the 
ports tree). Unfortunately I can't recall the exact thing that solved 
it; I seem to recall a "make clean" was involved, but don't recall 
whether it was explicitly running one before or after a "make package", 
or whether it was *avoiding* running one...!

--Antony


More information about the freebsd-ports mailing list