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