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