Poudriere bug report

John Nielsen john at jnielsen.net
Tue Feb 11 18:42:17 UTC 2014


Hello-

First off, thanks for all your work on poudriere and pkg, both are already making my life easier.

I have an amd64 host running FreeBSD 10-STABLE which I use as a build host for another box with an Alix board (geode processor). I have, among other settings, "CPUTYPE=geode" in the make.conf for the poudriere 32-bit Alix jail. I've built packages for the Alix using poudriere before, but today I hit a snag. Running this command:

# poudriere options -f /home/john/alix_ports.txt -j alix

attempted to build dialog4ports numerous times, and each failed with this error (full text from one failure below):
error: unknown target CPU 'geode'

Since I didn't have dialog4ports installed on the host, I assume the "make config" job was trying to build it--apparently using the jail's generated "make.conf" from /usr/local/etc/poudriere.d/alix-make.conf. The 64-bit host doesn't know about the 32-bit geode CPU target, so it failed.

Probably this doesn't happen very often (I was only missing dialog4ports on the host because I pruned a whole bunch of packages prior to a recent upgrade), but building anything for the host using anything other than the real /etc/make.conf seems like a bad idea.

I was able to work around the problem by installing dialog4ports on the host myself before invoking "poudriere options". There are obviously a few ways to prevent this from happening, but here is my suggestion:
 * check for the existence of dialog4ports on the host before allowing "poudriere options" to run
 * If it doesn't exist, fail with an error message suggesting that the user either install dialog4ports on the host via "pkg install" or other means, or allow poudriere to work around the problem
 * add a flag or command to poudriere allowing it to build and install dialog4ports using the host's /etc/make.conf and whatever ports tree the user specifies (or poudriere's "default" tree by default), either separately from or prior to "poudriere options".

Thanks!

JN


===> Setting user-specified options for links-2.8,1 and dependencies
===> Building/installing dialog4ports as it is required for the config dialog
===>  Cleaning for dialog4ports-0.1.5_2
===>  License BSD2CLAUSE accepted by the user
===>   dialog4ports-0.1.5_2 depends on file: /usr/local/sbin/pkg - found
===> Fetching all distfiles required by dialog4ports-0.1.5_2 for building
===>  Extracting for dialog4ports-0.1.5_2
=> SHA256 Checksum OK for dialog4ports-0.1.5.tar.gz.
===>  Patching for dialog4ports-0.1.5_2
===>  Configuring for dialog4ports-0.1.5_2
===>  Building for dialog4ports-0.1.5_2
--- objwarn ---
--- dialog4ports.o ---
--- objwarn ---
Warning: Object directory not changed from original /opt/local/poudriere/ports/default/ports-mgmt/dialog4ports/work/dialog4ports-0.1.5
--- mixedlist.o ---
--- dialog4ports.o ---
cc -O2 -pipe -DNO_MALLOC_EXTRAS -march=geode -fno-strict-aliasing  -std=gnu99 -Qunused-arguments  -fstack-protector -Wsystem-headers -Werror -Wall -Wno-format-y2k -W -Wno-unused-parameter -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wreturn-type -Wcast-qual -Wwrite-strings -Wswitch -Wshadow -Wunused-parameter -Wcast-align -Wchar-subscripts -Winline -Wnested-externs -Wredundant-decls -Wold-style-definition -Wmissing-variable-declarations -Wno-pointer-sign -Wno-empty-body -Wno-string-plus-int -c dialog4ports.c
--- mixedlist.o ---
cc -O2 -pipe -DNO_MALLOC_EXTRAS -march=geode -fno-strict-aliasing  -std=gnu99 -Qunused-arguments  -fstack-protector -Wsystem-headers -Werror -Wall -Wno-format-y2k -W -Wno-unused-parameter -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wreturn-type -Wcast-qual -Wwrite-strings -Wswitch -Wshadow -Wunused-parameter -Wcast-align -Wchar-subscripts -Winline -Wnested-externs -Wredundant-decls -Wold-style-definition -Wmissing-variable-declarations -Wno-pointer-sign -Wno-empty-body -Wno-string-plus-int -c mixedlist.c
--- dialog4ports.o ---
error: unknown target CPU 'geode'
*** [dialog4ports.o] Error code 1

make[5]: stopped in /opt/local/poudriere/ports/default/ports-mgmt/dialog4ports/work/dialog4ports-0.1.5
--- mixedlist.o ---
error: unknown target CPU 'geode'
*** [mixedlist.o] Error code 1

make[5]: stopped in /opt/local/poudriere/ports/default/ports-mgmt/dialog4ports/work/dialog4ports-0.1.5
2 errors

make[5]: stopped in /opt/local/poudriere/ports/default/ports-mgmt/dialog4ports/work/dialog4ports-0.1.5
===> Compilation failed unexpectedly.
Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to
the maintainer.
*** Error code 1

Stop.
make[4]: stopped in /opt/local/poudriere/ports/default/ports-mgmt/dialog4ports
*** Error code 1

Stop.
make[3]: stopped in /opt/local/poudriere/ports/default/ports-mgmt/dialog4ports



More information about the freebsd-pkg mailing list