Hi,

I just checked the build log. I think the problem is that the Makefile
does not properly enforce the correct build order: PROGS actually
depend on libmissing.a. The build log shows that, at the time of the
build error, libmissing.a is not yet build (but tried to link against).
I suspect the problem surfaced due to the level of parallelism on the
buildd (-j 64).


I've prepared a minimal patch against version 2.4b1+debian-24
(currently in stretch) that should be suitable for an unblock, see
attachment.

If you want I can push that into our git repo, tag it as new release
and then merge that commit into our development branch (bumping the
version for the newer changes when merging the commit log).


Thanks
Lukas
diff --git a/debian/changelog b/debian/changelog
index 668cd49..388ae33 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+dsniff (2.4b1+debian-25) unstable; urgency=medium
+
+  * Team upload.
+  * Make sure libmissing.a is built before PROGS (Closes: #860611).
+
+ -- Lukas Schwaighofer <lu...@schwaighofer.name>  Wed, 19 Apr 2017 10:14:38 +0200
+
 dsniff (2.4b1+debian-24) unstable; urgency=medium
 
   * Fix FTCBFS: Pass triplet-prefixed CC to configure.
diff --git a/debian/patches/34_make-sure-libmissing.a-is-built-before-PROGS.patch b/debian/patches/34_make-sure-libmissing.a-is-built-before-PROGS.patch
new file mode 100644
index 0000000..640a9b7
--- /dev/null
+++ b/debian/patches/34_make-sure-libmissing.a-is-built-before-PROGS.patch
@@ -0,0 +1,90 @@
+From: Lukas Schwaighofer <schwa...@in.tum.de>
+Date: Wed, 19 Apr 2017 10:12:11 +0200
+Subject: make sure libmissing.a is built before PROGS
+
+with enough paralellism, the package will FTBFS because the
+correct build order is not ensured by make
+
+Closes: #860611
+---
+ Makefile.in | 32 ++++++++++++++++----------------
+ 1 file changed, 16 insertions(+), 16 deletions(-)
+
+diff --git a/Makefile.in b/Makefile.in
+index 1b1621d..ada5412 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -75,7 +75,7 @@ CONFIGS	= dsniff.magic dsniff.services dnsspoof.hosts
+ .c.o:
+ 	$(CC) $(CFLAGS) $(INCS) -c $(srcdir)/$*.c
+ 
+-all: libmissing.a $(PROGS)
++all: $(PROGS)
+ 
+ mount.c: mount.x
+ 	rpcgen -h mount.x -o mount.h
+@@ -92,49 +92,49 @@ libmissing.a: $(LIBOBJS)
+ 	ar -cr $@ $(LIBOBJS)
+ 	$(RANLIB) $@
+ 
+-dsniff: $(HDRS) $(SRCS) $(OBJS)
++dsniff: $(HDRS) $(SRCS) $(OBJS) libmissing.a
+ 	$(CC) $(LDFLAGS) -o $@ $(OBJS) $(LIBS) $(NIDSLIB) $(PCAPLIB) $(LNETLIB) $(DBLIB) $(SSLLIB)
+ 
+-arpspoof: arpspoof.o arp.o
++arpspoof: arpspoof.o arp.o libmissing.a
+ 	$(CC) $(LDFLAGS) -o $@ arpspoof.o arp.o $(LIBS) $(PCAPLIB) $(LNETLIB)
+ 
+-dnsspoof: dnsspoof.o pcaputil.o
++dnsspoof: dnsspoof.o pcaputil.o libmissing.a
+ 	$(CC) $(LDFLAGS) -o $@ dnsspoof.o pcaputil.o $(LIBS) $(PCAPLIB) $(LNETLIB)
+ 
+-filesnarf: nfs_prot.o filesnarf.o pcaputil.o rpc.o
++filesnarf: nfs_prot.o filesnarf.o pcaputil.o rpc.o libmissing.a
+ 	$(CC) $(LDFLAGS) -o $@ filesnarf.o nfs_prot.o pcaputil.o rpc.o $(LIBS) $(NIDSLIB) $(PCAPLIB) $(LNETLIB)
+ 
+-macof: macof.o
++macof: macof.o libmissing.a
+ 	$(CC) $(LDFLAGS) -o $@ macof.o $(LIBS) $(PCAPLIB) $(LNETLIB)
+ 
+-mailsnarf: mailsnarf.o buf.o pcaputil.o
++mailsnarf: mailsnarf.o buf.o pcaputil.o libmissing.a
+ 	$(CC) $(LDFLAGS) -o $@ mailsnarf.o buf.o pcaputil.o $(LIBS) $(NIDSLIB) $(PCAPLIB) $(LNETLIB)
+ 
+-msgsnarf: msgsnarf.o buf.o pcaputil.o
++msgsnarf: msgsnarf.o buf.o pcaputil.o libmissing.a
+ 	$(CC) $(LDFLAGS) -o $@ msgsnarf.o buf.o pcaputil.o $(LIBS) $(NIDSLIB) $(PCAPLIB) $(LNETLIB)
+ 
+-sshmitm: sshmitm.o buf.o hex.o record.o ssh.o sshcrypto.o
++sshmitm: sshmitm.o buf.o hex.o record.o ssh.o sshcrypto.o libmissing.a
+ 	$(CC) $(LDFLAGS) -o $@ sshmitm.o buf.o hex.o record.o ssh.o sshcrypto.o $(LIBS) $(LNETLIB) $(DBLIB) $(SSLLIB)
+ 
+-sshow: sshow.o pcaputil.o
++sshow: sshow.o pcaputil.o libmissing.a
+ 	$(CC) $(LDFLAGS) -o $@ sshow.o pcaputil.o $(LIBS) $(NIDSLIB) $(PCAPLIB) $(LNETLIB)
+ 
+-tcpkill: tcpkill.o pcaputil.o
++tcpkill: tcpkill.o pcaputil.o libmissing.a
+ 	$(CC) $(LDFLAGS) -o $@ tcpkill.o pcaputil.o $(LIBS) $(PCAPLIB) $(LNETLIB)
+ 
+-tcpnice: tcpnice.o pcaputil.o
++tcpnice: tcpnice.o pcaputil.o libmissing.a
+ 	$(CC) $(LDFLAGS) -o $@ tcpnice.o pcaputil.o $(LIBS) $(PCAPLIB) $(LNETLIB)
+ 
+-tcphijack: tcphijack.o pcaputil.o
++tcphijack: tcphijack.o pcaputil.o libmissing.a
+ 	$(CC) $(LDFLAGS) -o $@ tcphijack.o pcaputil.o $(LIBS) $(PCAPLIB) $(LNETLIB)
+ 
+-urlsnarf: urlsnarf.o base64.o buf.o pcaputil.o
++urlsnarf: urlsnarf.o base64.o buf.o pcaputil.o libmissing.a
+ 	$(CC) $(LDFLAGS) -o $@ urlsnarf.o base64.o buf.o pcaputil.o $(LIBS) $(NIDSLIB) $(PCAPLIB) $(LNETLIB)
+ 
+-webmitm: webmitm.o base64.o buf.o decode_http.o record.o
++webmitm: webmitm.o base64.o buf.o decode_http.o record.o libmissing.a
+ 	$(CC) $(LDFLAGS) -o $@ webmitm.o base64.o buf.o decode_http.o record.o $(LIBS) $(LNETLIB) $(DBLIB) $(SSLLIB)
+ 
+-webspy: webspy.o base64.o buf.o remote.o
++webspy: webspy.o base64.o buf.o remote.o libmissing.a
+ 	$(CC) $(LDFLAGS) -o $@ webspy.o base64.o buf.o remote.o $(LIBS) $(NIDSLIB) $(PCAPLIB) $(LNETLIB) $(X11LIB)
+ 
+ install:
diff --git a/debian/patches/series b/debian/patches/series
index 0eff2a5..4fe5646 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -31,3 +31,4 @@
 31_sysconf_clocks.patch
 32_rpc_segfault.patch
 33_sshcrypto_DES.patch
+34_make-sure-libmissing.a-is-built-before-PROGS.patch

Attachment: pgpiJNCVp0FI6.pgp
Description: OpenPGP digital signature

Reply via email to