Date: Fri, 26 Feb 2010 12:39:26 -0500 From: Greg Larkin <glarkin@FreeBSD.org> To: xorquewasp@googlemail.com Cc: freebsd-hackers@freebsd.org Subject: Re: package building failure irritation Message-ID: <4B88074E.7050007@FreeBSD.org> In-Reply-To: <20100226163227.GA15162@logik.internal.network> References: <20100226163227.GA15162@logik.internal.network>
next in thread | previous in thread | raw e-mail | index | archive | help
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 xorquewasp@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-----
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4B88074E.7050007>