[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#869086: dsniff sometimes FTBFS due to missing Makefile dependency



Source: dsniff
Version: 2.4b1+debian-26
Severity: serious
Tags: patch

dsniff sometimes FTBFS in parallel builds:

https://tests.reproducible-builds.org/debian/rb-pkg/unstable/amd64/dsniff.html

...
rpcgen -h mount.x -o mount.h
...
./decode_mountd.c: In function 'decode_mountd':
./decode_mountd.c:35:18: error: storage size of 'fhstat' isn't known
  struct fhstatus fhstat;
                  ^~~~~~
./decode_mountd.c:45:29: error: 'MOUNTPROG' undeclared (first use in this function)
      msg.rm_call.cb_prog == MOUNTPROG &&
                             ^~~~~~~~~
./decode_mountd.c:45:29: note: each undeclared identifier is reported only once for each function it appears in
./decode_mountd.c:46:29: error: 'MOUNTPROC_MNT' undeclared (first use in this function)
      msg.rm_call.cb_proc == MOUNTPROC_MNT) {
                             ^~~~~~~~~~~~~
./decode_mountd.c:50:41: error: 'MOUNTVERS' undeclared (first use in this function)
    xid_map_enter(msg.rm_xid, MOUNTPROG, MOUNTVERS,
                                         ^~~~~~~~~
In file included from /usr/include/x86_64-linux-gnu/sys/types.h:25:0,
                 from ./decode_nntp.c:14:
/usr/include/features.h:148:3: warning: #warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE" [-Wcpp]
 # warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE"
   ^~~~~~~
./decode_mountd.c:61:8: warning: implicit declaration of function 'xdr_fhstatus' [-Wimplicit-function-declaration]
    if (xdr_fhstatus(&xdrs, &fhstat)) {
        ^~~~~~~~~~~~
gcc -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -D_BSD_SOURCE -D_BSD_SOURCE -D__BSD_SOURCE -D__FAVOR_BSD -DHAVE_NET_ETHERNET_H -DDSNIFF_LIBDIR=\"/usr/lib/x86_64-linux-gnu/\" -Wdate-time -D_FORTIFY_SOURCE=2 -I. -I/usr/include -I/usr/include -I/usr/include -I/usr/include -I/usr/include  -I./missing -c ./decode_pop.c
./decode_mountd.c:68:22: error: 'FHSIZE' undeclared (first use in this function)
      for (i = 0; i < FHSIZE; i++) {
                      ^~~~~~
Makefile:78: recipe for target 'decode_mountd.o' failed
make[1]: *** [decode_mountd.o] Error 1
...
rpcgen -c mount.x -o mount.c
make[1]: Leaving directory '/build/1st/dsniff-2.4b1+debian'
dh_auto_build: make -j16 returned exit code 2
debian/rules:7: recipe for target 'build' failed
make: *** [build] Error 2


The problem is a race condition where decode_mountd.c includes
mount.h before rpcgen has finished generating it.

A fix is attached.
-------------- next part --------------
Description: Fix a parallel FTBFS
 Fix the Makefile dependencies to ensure that mount.h creation
 is finished before decode_mountd.o gets built.
Author: Adrian Bunk <bunk at debian.org>

--- dsniff-2.4b1+debian.orig/Makefile.in
+++ dsniff-2.4b1+debian/Makefile.in
@@ -79,10 +79,14 @@ CONFIGS	= dsniff.magic dsniff.services d
 
 all: $(PROGS)
 
-mount.c: mount.x
+mount.h: mount.x
 	rpcgen -h mount.x -o mount.h
+
+mount.c: mount.x mount.h
 	rpcgen -c mount.x -o mount.c
 
+decode_mountd.o: mount.h
+
 nfs_prot.c: nfs_prot.x
 	rpcgen -h nfs_prot.x -o nfs_prot.h
 	rpcgen -c nfs_prot.x -o nfs_prot.c


Reply to: