FS#33406 - [fontconfig] PKGBUILD problem

Attached to Project: Arch Linux
Opened by Olivier Langlois (lano1106) - Tuesday, 15 January 2013, 16:30 GMT
Last edited by Andreas Radke (AndyRTR) - Wednesday, 16 January 2013, 18:03 GMT
Task Type Bug Report
Category Packages: Extra
Status Closed
Assigned To No-one
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Description:

makepkg produce the following output:

parallel-tests: error: required file './test-driver' not found
parallel-tests: 'automake --add-missing' can install 'test-driver'
...
autoreconf: automake failed with exit status: 1
==> ERROR: A failure occurred in build().
Aborting...

In order to fix it, I had to modify the line

autoreconf -f

to

autoreconf -fi

This solution is still not perfect as the check() now fails with:

make check-TESTS
make[2]: Entering directory `/home/lano1106/dev/fontconfig/src/fontconfig-2.10.2/test'
make[3]: Entering directory `/home/lano1106/dev/fontconfig/src/fontconfig-2.10.2/test'
/bin/sh: /bin/sh: cannot execute binary file
make[3]: *** [run-test.sh.log] Error 126

but a workaround is to do

makepkg --nocheck

still investigating the problem and will propose a fix with an eventual bug comment.

Additional info:

pkgname=fontconfig
pkgver=2.10.2
pkgrel=1

Steps to reproduce:

makepkg

This task depends upon

Closed by  Andreas Radke (AndyRTR)
Wednesday, 16 January 2013, 18:03 GMT
Reason for closing:  Upstream
Additional comments about closing:  we can always disable the test suite for workaround
Comment by Olivier Langlois (lano1106) - Tuesday, 15 January 2013, 17:34 GMT
lano1106@hpmini ~/dev/fontconfig/src/fontconfig-2.10.2/doc $ make -n check-missing-doc.log
p='check-missing-doc'; \
b='check-missing-doc'; \
case $- in *e*) set +e;; esac; srcdirstrip=`echo "." | sed 's|.|.|g'`; case $p in ./*) f=`echo "$p" | sed "s|^$srcdirstrip/||"`;; *) f=$p;; esac; { mgn= red= grn= lgn= blu= brg= std=; am__color_tests=no; if test "X" = Xno; then am__color_tests=no; elif test "X" = Xalways; then am__color_tests=yes; elif test "X$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then am__color_tests=yes; fi; if test $am__color_tests = yes; then red=''; grn=''; lgn=''; blu=''; mgn=''; brg=''; std=''; fi; }; srcdir=.; export srcdir; case "check-missing-doc.log" in */*) am__odir=`echo "./check-missing-doc.log" | sed 's|/[^/]*$||'`;; *) am__odir=.;; esac; test "x$am__odir" = x"." || test -d "$am__odir" || /usr/bin/mkdir -p "$am__odir" || exit $?; if test -f "./$f"; then dir=./; elif test -f "$f"; then dir=; else dir="./"; fi; tst=$dir$f; log='check-missing-doc.log'; if test -n ''; then am__enable_hard_errors=no; else am__enable_hard_errors=yes; fi; case " " in *[\ \ ]$f[\ \ ]* | *[\ \ ]$dir$f[\ \ ]*) am__expect_failure=yes;; *) am__expect_failure=no;; esac; top_srcdir=.. sh /bin/sh ../test-driver --test-name "$f" \
--log-file $b.log --trs-file $b.trs \
--color-tests "$am__color_tests" --enable-hard-errors "$am__enable_hard_errors" --expect-failure "$am__expect_failure" -- \
"$tst"

The problem comes from:

top_srcdir=.. sh /bin/sh ../test-driver


LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver
SHELL = /bin/sh

the sh comes from Makefile.am

TESTS_ENVIRONMENT=top_srcdir=${top_srcdir} sh
Comment by Dave Reisner (falconindy) - Tuesday, 15 January 2013, 17:44 GMT
The root of the problem is that automake-1.13 defaults to parallel tests. This is probably something that should be brought up with upstream automake since it's technically breaking backwards compat.
Comment by Olivier Langlois (lano1106) - Tuesday, 15 January 2013, 17:58 GMT
in the meantime, here is a workaround:

--- /var/abs/extra/fontconfig/PKGBUILD 2013-01-09 00:02:49.000000000 -0500
+++ ./PKGBUILD 2013-01-15 12:49:28.216585646 -0500
@@ -20,8 +20,11 @@
cd "$srcdir/$pkgname-$pkgver"

# make sure there's no rpath trouble and sane .so versioning - FC and Gentoo do this as well
+ find . -name Makefile.am -exec sed -i "s/\(TESTS_ENVIRONMENT=.*\) sh/\1/" {} \;
+ chmod u+x test/run-test.sh
+ chmod u+x doc/check-missing-doc
libtoolize -f
- autoreconf -f
+ autoreconf -fi

./configure --prefix=/usr \
--sysconfdir=/etc \
Comment by Olivier Langlois (lano1106) - Wednesday, 16 January 2013, 15:36 GMT
From automake 1.12 release notes:

- Starting from the next major Automake version (1.13), the parallel
testsuite harness (previously only enabled by the 'parallel-tests'
option) will become the default one; the older serial testsuite
harness will still be available through the use of the 'serial-tests'
option.
Comment by Andreas Radke (AndyRTR) - Wednesday, 16 January 2013, 18:02 GMT
I've sent a mail to the Fontconfig devel list so upstream should now be aware of it.

Loading...