'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:

tar: share/sgml/docbook/4.2/ChangeLog: Cannot stat: No such file or directory
tar: share/sgml/docbook/4.2/calstblx.dtd: Cannot stat: No such file or directory
tar: share/sgml/docbook/4.2/catalog: Cannot stat: No such file or directory
tar: share/sgml/docbook/4.2/catalog.xml: Cannot stat: No such file or directory
tar: share/sgml/docbook/4.2/dbcentx.mod: Cannot stat: No such file or directory
tar: share/sgml/docbook/4.2/dbgenent.mod: Cannot stat: No such file or directory
tar: share/sgml/docbook/4.2/dbhierx.mod: Cannot stat: No such file or directory
tar: share/sgml/docbook/4.2/dbnotnx.mod: Cannot stat: No such file or directory
tar: share/sgml/docbook/4.2/dbpoolx.mod: Cannot stat: No such file or directory
tar: share/sgml/docbook/4.2/docbook.cat: Cannot stat: No such file or directory
tar: share/sgml/docbook/4.2/docbook.dcl: Cannot stat: No such file or directory
tar: share/sgml/docbook/4.2/docbook.dtd: Cannot stat: No such file or directory
tar: share/sgml/docbook/4.2/docbookx.dtd: Cannot stat: No such file or directory
tar: share/sgml/docbook/4.2/soextblx.dtd: Cannot stat: No such file or directory
tar: share/sgml/docbook/4.2/README: Cannot stat: No such file or directory
tar: Error exit delayed from previous errors.
pkg_create: make_dist: tar command failed with code 256
Creating package /pkg/All/docbook-4.2.tbz
Registering depends: iso8879-1986_2 xmlcatmgr-2.2.
Creating bzip'd tar ball in '/pkg/All/docbook-4.2.tbz'
*** Error code 1

Stop in /ports/textproc/docbook-420.
*** Error code 1

Stop in /ports/textproc/docbook-420.
*** Error code 1

Stop in /ports/deskutils/xchm.
fatal: failed

gimp:

===>  Patching for libopenraw-0.0.8_2
===>  Applying FreeBSD patches for libopenraw-0.0.8_2
===>   libopenraw-0.0.8_2 depends on file: /usr/local/bin/intltool-extract - 
found
===>   libopenraw-0.0.8_2 depends on executable: pkg-config - found
===>   libopenraw-0.0.8_2 depends on shared library: boost_thread.4 - not found
===>    Verifying install for boost_thread.4 in /ports/devel/boost-libs
===>   Returning to build of libopenraw-0.0.8_2
Error: shared library "boost_thread.4" does not exist
*** Error code 1

Stop in /ports/graphics/libopenraw.
*** Error code 1

Stop in /ports/graphics/gegl.
*** Error code 1

Stop in /ports/graphics/gimp-app.
*** Error code 1

Stop in /ports/graphics/gimp.
fatal: failed

inkscape:

Creating bzip'd tar ball in '/pkg/All/atk-1.28.0.tbz'
===>   Generating temporary packing list
tar: lib/gtk-2.0/2.10.0/printbackends/libprintbackend-cups.a: Cannot stat: No 
such file or directory
tar: lib/gtk-2.0/2.10.0/printbackends/libprintbackend-cups.la: Cannot stat: No 
such file or directory
tar: lib/gtk-2.0/2.10.0/printbackends/libprintbackend-cups.so: Cannot stat: No 
such file or directory
tar: Error exit delayed from previous errors.
pkg_create: make_dist: tar command failed with code 256
Creating package /pkg/All/gtk-2.18.7.tbz
Registering depends: atk-1.28.0 cups-client-1.4.2_4 gnutls-2.8.3 
libgcrypt-1.4.4 libgpg-error-1.7 pango-1.26.2 shared-mime-info-0.71 
gio-fam-backend-2.22.4 gamin-0.1.10_3 glib-2.22.4 gettext-0.17_1 
libxml2-2.7.6_1 libiconv-1.13.1_1 libXinerama-1.0.3,1 libXi-1.2.1,1 
libXrandr-1.3.0 libXcomposite-0.4.0,1 libXext-1.0.5,1 libXdamage-1.1.1 
libXcursor-1.1.9_1 libXfixes-4.0.3_1 libXft-2.1.14 cairo-1.8.8,1 
libXrender-0.9.4_1 libX11-1.2.1_1,1 xcb-util-0.3.6_1 libxcb-1.5 
libpthread-stubs-0.3_3 pcre-8.00 libXau-1.0.4 libXdmcp-1.0.2_1 
xorg-fonts-truetype-7.4 font-bh-ttf-1.0.0 font-misc-meltho-1.0.0_1 
font-misc-ethiopic-1.0.0 mkfontdir-1.0.4 mkfontscale-1.0.6 libfontenc-1.0.4 
xproto-7.0.15 bitstream-vera-1.10_4 fontconfig-2.8.0,1 freetype2-2.3.11 
pixman-0.16.6 pkg-config-0.23_1 jasper-1.900.1_9 tiff-3.9.2_1 jbigkit-1.6 
jpeg-8 png-1.2.42 perl-5.10.1 python26-2.6.4 hicolor-icon-theme-0.12 
expat-2.0.1_1 encodings-1.0.2,1 font-util-1.0.1 compositeproto-0.4 
damageproto-1.1.0_2 fixesproto-4.0 inputproto-1.5.0 kbproto-1.0.3 
randrproto-1.3.0 renderproto-0.9.3 xextproto-7.0.5 xineramaproto-1.1.2.
Creating bzip'd tar ball in '/pkg/All/gtk-2.18.7.tbz'
*** Error code 1

Stop in /ports/x11-toolkits/gtk20.
*** Error code 1

Stop in /ports/x11-toolkits/gtk20.
*** Error code 1

Stop in /ports/graphics/inkscape.
fatal: failed

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
_______________________________________________
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "freebsd-hackers-unsubscr...@freebsd.org"

Reply via email to