Source: ebtables
Version: 2.0.10.4-4
Severity: serious
Tags: sid buster

Hi,

ebtables randomly FTBFS during the install stage. Example on ppc64el:
>       make -j8 -Oline install DESTDIR=/<<PKGBUILDDIR>>/debian/ebtables 
> AM_UPDATE_INFO_DIR=no "INSTALL=install --strip-program=true"
> make[1]: Entering directory '/<<PKGBUILDDIR>>'
> mkdir -p /<<PKGBUILDDIR>>/debian/ebtables/etc
> make[1]: Leaving directory '/<<PKGBUILDDIR>>'
> make[1]: Entering directory '/<<PKGBUILDDIR>>'
> sed -e 's/$(VERSION)/2.0.10-4/' -e 's/$(DATE)/December\ 2011/' -e 
> 's/$(LOCKFILE)/\/run\/ebtables.lock/' ebtables.8 > ebtables.8_
> make[1]: Leaving directory '/<<PKGBUILDDIR>>'
> make[1]: Entering directory '/<<PKGBUILDDIR>>'
> install -m 0644 -o root -g root ethertypes 
> /<<PKGBUILDDIR>>/debian/ebtables/etc/ethertypes
> make[1]: Leaving directory '/<<PKGBUILDDIR>>'
> make[1]: Entering directory '/<<PKGBUILDDIR>>'
> mkdir -p /<<PKGBUILDDIR>>/debian/ebtables/lib/ebtables 
> /<<PKGBUILDDIR>>/debian/ebtables/etc/init.d 
> /<<PKGBUILDDIR>>/debian/ebtables/etc/default 
> /<<PKGBUILDDIR>>/debian/ebtables/usr/share/man/man8
> make[1]: Leaving directory '/<<PKGBUILDDIR>>'
> make[1]: Entering directory '/<<PKGBUILDDIR>>'
> cat ebtables-save | sed 's/__EXEC_PATH__/\/sbin/g' > ebtables-save_
> make[1]: Leaving directory '/<<PKGBUILDDIR>>'
> make[1]: Entering directory '/<<PKGBUILDDIR>>'
> mkdir -p /<<PKGBUILDDIR>>/debian/ebtables/sbin
> make[1]: Leaving directory '/<<PKGBUILDDIR>>'
> make[1]: Entering directory '/<<PKGBUILDDIR>>'
> install -m 0755 -o root -g root ebtables /<<PKGBUILDDIR>>/debian/ebtables/sbin
> install: cannot overwrite directory '/<<PKGBUILDDIR>>/debian/ebtables/sbin' 
> with non-directory
> make[1]: *** [Makefile:176: exec] Error 1
> make[1]: Leaving directory '/<<PKGBUILDDIR>>'
> make[1]: *** Waiting for unfinished jobs....
> make[1]: Entering directory '/<<PKGBUILDDIR>>'
> cat ebtables.sysv | sed 's/__EXEC_PATH__/\/sbin/g' | sed 
> 's/__SYSCONFIG__/\/etc\/default/g' > ebtables.sysv_
> make[1]: Leaving directory '/<<PKGBUILDDIR>>'
> make[1]: Entering directory '/<<PKGBUILDDIR>>'
> if [ "/<<PKGBUILDDIR>>/debian/ebtables" != "" ]; then mkdir -p 
> /<<PKGBUILDDIR>>/debian/ebtables/etc/init.d; fi
> make[1]: Leaving directory '/<<PKGBUILDDIR>>'
> make[1]: Entering directory '/<<PKGBUILDDIR>>'
> cat ebtables-config | sed 's/__SYSCONFIG__/\/etc\/default/g' > 
> ebtables-config_
> make[1]: Leaving directory '/<<PKGBUILDDIR>>'
> make[1]: Entering directory '/<<PKGBUILDDIR>>'
> if [ "/<<PKGBUILDDIR>>/debian/ebtables" != "" ]; then mkdir -p 
> /<<PKGBUILDDIR>>/debian/ebtables/etc/default; fi
> make[1]: Leaving directory '/<<PKGBUILDDIR>>'
> dh_auto_install: make -j8 -Oline install 
> DESTDIR=/<<PKGBUILDDIR>>/debian/ebtables AM_UPDATE_INFO_DIR=no 
> "INSTALL=install --strip-program=true" returned exit code 2
> make: *** [debian/rules:4: binary-arch] Error 25

This happens because 2.0.10.4-4 enabled parallel builds (by virtue of
using dh compat 11), but the install part of the makefile is not safe to
run in parallel.

For example, in this case we have something like this (trimmed slightly):
> .PHONY: scripts
> scripts: ebtables-save ebtables.sysv ebtables-config
>       cat ebtables-save | sed 's/__EXEC_PATH__/$(tmp1)/g' > ebtables-save_
>       mkdir -p $(DESTDIR)$(BINDIR)
[...]
> .PHONY: exec
> exec: ebtables ebtables-restore
>       mkdir -p $(DESTDIR)$(LIBDIR) $(DESTDIR)$(INITDIR) 
> $(DESTDIR)$(SYSCONFIGDIR) $(DESTDIR)$(MANDIR)/man8
>       install -m 0755 -o root -g root $(PROGNAME) $(DESTDIR)$(BINDIR)
>       install -m 0755 -o root -g root ebtables-restore 
> $(DESTDIR)$(BINDIR)/ebtables-restore
>       install -m 0755 -o root -g root ebtables-save_ 
> $(DESTDIR)$(BINDIR)/ebtables-save
[...]
> .PHONY: install
> install: $(MANDIR)/man8/ebtables.8 $(DESTDIR)$(ETHERTYPESFILE) scripts exec

When parallel builds are enabled, the "scripts" and "exec" targets will
be run in parallel which fails because:
- exec does not create $(DESTDIR)$(BINDIR) so will fail if scripts has
not created it yet.
- exec copies ebtables-save_ which will also fail if scripts has not
created it yet.

Thanks,
James

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to