Source: xprobe
Version: 0.3-2
Severity: wishlist
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: fileordering
X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org

Hi!

While working on the "reproducible builds" effort [1], we have noticed
that xprobe could not be built reproducibly.
The order of object files packed into static library archives is
unsorted.

The attached patch fixes this.

Regards,
 Reiner

[1]: https://wiki.debian.org/ReproducibleBuilds
diff --git a/debian/patches/reproducible_build.patch b/debian/patches/reproducible_build.patch
new file mode 100644
index 0000000..fa353a0
--- /dev/null
+++ b/debian/patches/reproducible_build.patch
@@ -0,0 +1,49 @@
+Author: Reiner Herrmann <rei...@reiner-h.de>
+Description: Sort order of object files in static libraries
+
+--- a/libs-external/USI++/src/Makefile.in
++++ b/libs-external/USI++/src/Makefile.in
+@@ -15,7 +15,7 @@
+ 	clear
+ 
+ usi++:icmp.o datalink.o ip.o misc.o udp.o tcp.o TX_IP.o Layer2.o arp.o
+-	ar cr libusi++.a *.o
++	ar cr libusi++.a `LC_ALL=C ls *.o`
+ #	ld *.o -Bshareable -o libusi++.so
+ 	$(RANLIB) libusi++.a
+ 	rm -f *.o
+--- a/src/xpmodules/alive_probe/Makefile.in
++++ b/src/xpmodules/alive_probe/Makefile.in
+@@ -42,7 +42,7 @@
+ all: alive_probe.a
+ 
+ alive_probe.a: icmp_ping.o tcp_ping.o udp_ping.o ttl_module portscan_module
+-	ar cr alive_probe.a *.o ttl_calc/*.o portscanner/*.o
++	ar cr alive_probe.a `LC_ALL=C ls *.o ttl_calc/*.o portscanner/*.o`
+ 	$(RANLIB) alive_probe.a
+ 
+ icmp_ping.o: icmp_ping.cc
+--- a/src/xpmodules/os_probe/Makefile.in
++++ b/src/xpmodules/os_probe/Makefile.in
+@@ -43,8 +43,8 @@
+ 
+ os_probe.a: icmp_port_unreach_mod icmp_echo_id_mod icmp_timestamp_mod \
+ icmp_inforeq_mod icmp_addrmask_mod tcp_handshake_mod tcp_rst_mod smb_mod snmp_mod
+-	ar cr os_probe.a icmp_port_unreach/*.o icmp_echo_id/*.o icmp_timestamp/*.o \
+-    icmp_inforeq/*.o icmp_addrmask/*.o tcp_handshake/*.o tcp_rst/*.o smb/*.o snmp/*.o
++	ar cr os_probe.a `LC_ALL=C ls icmp_port_unreach/*.o icmp_echo_id/*.o icmp_timestamp/*.o \
++    icmp_inforeq/*.o icmp_addrmask/*.o tcp_handshake/*.o tcp_rst/*.o smb/*.o snmp/*.o`
+ 	$(RANLIB) os_probe.a
+ 
+ 	
+--- a/src/xplib/Makefile.in
++++ b/src/xplib/Makefile.in
+@@ -44,7 +44,7 @@
+ all: libxplib.a
+ 
+ libxplib.a: $(OBJS)
+-	ar cr libxplib.a *.o
++	ar cr libxplib.a `LC_ALL=C ls *.o`
+ 	$(RANLIB) libxplib.a
+ 
+  .c.o: $(INCLUDES)
diff --git a/debian/patches/series b/debian/patches/series
index 7a23e24..aa1238f 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,3 +1,4 @@
 fix-build-usi.patch
 fix-for-gcc4.3.patch
 fix-man-page.patch
+reproducible_build.patch

Attachment: signature.asc
Description: PGP signature

_______________________________________________
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

Reply via email to