[pkg-gnupg-maint] Bug#944511: libgpg-error FTBFS when built with gawk

Helmut Grohne helmut at subdivi.de
Mon Nov 11 05:14:01 GMT 2019


Source: libgpg-error
Version: 1.36-7
Severity: important
Tags: ftbfs
User: helmutg at debian.org
Usertags: rebootstrap

libgpg-error fails to build from source when built in a chroot that
happens to use gawk rather than mawk. This can happen as base-files
Pre-Depends on awk, which is a virtual package provided by both
implementations. It seems that currently the buildd chroots happen to
use mawk while the rebootstrap chroot happens to use gawk. To reproduce
the failure in sbuild, you can issue "sbuild -d sid --add-depends=gawk
libgpg-error".

| Making all in src
| make[4]: Entering directory '/<<PKGBUILDDIR>>/build/src'
| gawk -f ../../src/mkstrtable.awk -v textidx=3 \
|         ../../src/err-sources.h.in >../../src/err-sources.h
| gawk: ../../src/mkstrtable.awk:113: warning: regexp escape sequence `\#' is not a known regexp operator
| gawk -f ../../src/mkstrtable.awk -v textidx=3 \
|         ../../src/err-codes.h.in >../../src/err-codes.h
| gawk: ../../src/mkstrtable.awk:113: warning: regexp escape sequence `\#' is not a known regexp operator
| gawk -f ../../src/mkerrnos.awk ../../src/errnos.in >code-to-errno.h
| gawk: ../../src/mkerrnos.awk:86: warning: regexp escape sequence `\#' is not a known regexp operator
| gawk -f ../../src/mkerrcodes1.awk ../../src/errnos.in >_mkerrcodes.h
| gawk: ../../src/mkerrcodes1.awk:84: warning: regexp escape sequence `\#' is not a known regexp operator
| gcc -E -Wdate-time -D_FORTIFY_SOURCE=2  -P _mkerrcodes.h | grep GPG_ERR_ | \
|                gawk -f ../../src/mkerrcodes.awk >mkerrcodes.h
| gawk: ../../src/mkerrcodes.awk:88: warning: regexp escape sequence `\#' is not a known regexp operator
| rm _mkerrcodes.h
| gcc -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -Wl,-z,now -I. -I../../src -o mkerrcodes ../../src/mkerrcodes.c
| ./mkerrcodes | gawk -f ../../src/mkerrcodes2.awk >code-from-errno.h
| gawk: ../../src/mkerrcodes2.awk:94: warning: regexp escape sequence `\#' is not a known regexp operator
| gawk -f ../../src/mkstrtable.awk -v textidx=2 -v nogettext=1 \
|         ../../src/err-sources.h.in >err-sources-sym.h
| gawk: ../../src/mkstrtable.awk:113: warning: regexp escape sequence `\#' is not a known regexp operator
| gawk -f ../../src/mkstrtable.awk -v textidx=2 -v nogettext=1 \
|         ../../src/err-codes.h.in >err-codes-sym.h
| gawk: ../../src/mkstrtable.awk:113: warning: regexp escape sequence `\#' is not a known regexp operator
| gawk -f ../../src/mkstrtable.awk -v textidx=2 -v nogettext=1 \
|         -v prefix=GPG_ERR_ -v namespace=errnos_ \
|         ../../src/errnos.in >errnos-sym.h
| gawk: fatal: cannot use gawk builtin `namespace' as variable name
| make[4]: *** [Makefile:1720: errnos-sym.h] Error 2
| make[4]: Leaving directory '/<<PKGBUILDDIR>>/build/src'
| make[3]: *** [Makefile:515: all-recursive] Error 1
| make[3]: Leaving directory '/<<PKGBUILDDIR>>/build'
| make[2]: *** [Makefile:447: all] Error 2
| make[2]: Leaving directory '/<<PKGBUILDDIR>>/build'
| dh_auto_build: cd build && make -j1 returned exit code 2
| make[1]: *** [debian/rules:19: override_dh_auto_build-arch] Error 255
| make[1]: Leaving directory '/<<PKGBUILDDIR>>'
| make: *** [debian/rules:8: binary] Error 2
| dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2

When available, libgpg-error specifically selects and prefers gawk and
fails.

I think this is where you need "Build-Conflicts: gawk" or make it work.
Renaming the relevant variable should be relatively easy and might even
be fixed upstream though.

No particular urgency attached as it is trivial to work around.

Helmut



More information about the pkg-gnupg-maint mailing list