Date: Thu, 19 Jul 2007 08:49:48 +1000 From: Antony Mawer <fbsd-hackers@mawer.org> To: Garrett Cooper <youshi10@u.washington.edu> Cc: ports@freebsd.org, freebsd-hackers@freebsd.org Subject: Re: Slight problem with make actual-package-depends with ports Message-ID: <469E990C.4030007@mawer.org> In-Reply-To: <469DC4D7.5050102@u.washington.edu> References: <469D62D3.70908@math.missouri.edu> <469DAC63.3020708@mawer.org> <469DC4D7.5050102@u.washington.edu>
next in thread | previous in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?469E990C.4030007>