package building failure irritation

Greg Larkin glarkin at FreeBSD.org
Fri Feb 26 17:39:33 UTC 2010


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

xorquewasp at googlemail.com wrote:
> 'Lo.
> 
> I've come up against an infuriating problem with ports. I don't even
> know what causes it, let alone how to solve it.
> 
> Essentially, to stop already-installed software from polluting port
> builds, I build ports in a jail. I put a list of ports in a file and
> use a trivial shell script to build them one after the other with:
> 
> cd $port
> make clean
> make deinstall
> make package-recursive
> 
> The jail is set up with:
> 
> /etc/make.conf:
> WRKDIRPREFIX= /work
> DISTDIR=      /distfiles
> PACKAGES=     /pkg
> PORTSDIR=     /ports
> 
> With /ports, /distfiles and /pkg being mounted from outside the
> jail using nullfs (just because those directories exist on a ZFS
> array outside of the jail for performance reasons).
> 
> Before building a set of packages, the jail is wiped clean with
> 'pkg_delete -a'.
> 
> The problem is that it seems most ports just outright fail to
> produce packages. I log each build and often the last lines of
> the log files read something like:
> 
> xchm:
[...]
> 
> Note that in most cases, the compilation *will* produce a package but will
> fail to produce packages for dependencies, resulting in pkg_add spewing
> errors upon install:
> 
> pkg_add: could not find package liblqr-1-0.4.1 !
> pkg_add: could not find package enchant-1.4.2 !
> pkg_add: could not find package libsigc++-2.2.4.2 !
> pkg_add: autoload of dependency '/pkg/All/glibmm-2.22.1,1.tbz' failed!
> pkg_add: could not find package libxml++-2.26.1 !
> pkg_add: could not find package libsigc++-2.2.4.2 !
> pkg_add: could not find package libsigc++-2.2.4.2 !
> pkg_add: autoload of dependency '/pkg/All/glibmm-2.22.1,1.tbz' failed!
> pkg_add: could not find package libxml++-2.26.1 !
> pkg_add: autoload of dependency '/pkg/All/cairomm-1.8.4.tbz' failed!
> pkg_add: could not find package libsigc++-2.2.4.2 !
> pkg_add: could not find package libsigc++-2.2.4.2 !
> pkg_add: autoload of dependency '/pkg/All/glibmm-2.22.1,1.tbz' failed!
> pkg_add: could not find package libxml++-2.26.1 !
> pkg_add: could not find package libsigc++-2.2.4.2 !
> pkg_add: could not find package libsigc++-2.2.4.2 !
> pkg_add: autoload of dependency '/pkg/All/glibmm-2.22.1,1.tbz' failed!
> 
> And so on and so on.
> 
> What's the problem here? It surely shouldn't be this hard to use 'make package'.
> 
> The system is a vanilla install of FreeBSD 8.0 AMD64 with an up-to-date
> ports tree as of yesterday.
> 
> xw

Hi xw,

"make package-recursive" calls "make package-noinstall" for all of the
dependent ports.  I'm assuming that means that the dependent packages
all have to be installed first, so I would change your script like so:

cd $port
make clean
make deinstall
make depends		# just to be safe
make install
make package-recursive

On the other hand, this is similar to what Tinderbox
(http://tinderbox.marcuscom.com/README.html), so perhaps that would be a
solution for you, too?

Hope that helps,
Greg
- --
Greg Larkin

http://www.FreeBSD.org/           - The Power To Serve
http://www.sourcehosting.net/     - Ready. Set. Code.
http://twitter.com/sourcehosting/ - Follow me, follow you
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iD8DBQFLiAdO0sRouByUApARAhK0AKCjyH0T/n6lxt7w3fqaQM0dlh1CZQCgitmN
9R3WnYFpesYLW0mlZkVVzy0=
=BCbS
-----END PGP SIGNATURE-----



More information about the freebsd-hackers mailing list