Source: faust
Version: 0.9.73~repack1-1
Severity: wishlist
Tags: patch upstream
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 faust could not be built reproducibly.
Some lists of source files are not sorted, which leads to a
non-deterministic linking order.

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..e4eb74a
--- /dev/null
+++ b/debian/patches/reproducible-build.patch
@@ -0,0 +1,54 @@
+Author: Reiner Herrmann <rei...@reiner-h.de>
+Description: Sort list of source files for deterministic linking order
+
+--- a/compiler/Makefile.unix
++++ b/compiler/Makefile.unix
+@@ -1,6 +1,6 @@
+ subprojects := boxes errors evaluate generator normalize parser propagate parallelize signals tlib draw draw/device draw/schema extended patternmatcher documentator utils
+ 
+-sources = $(wildcard *.cpp) $(wildcard */*.cpp) $(wildcard draw/*/*.cpp)
++sources = $(sort $(wildcard *.cpp) $(wildcard */*.cpp) $(wildcard draw/*/*.cpp))
+ 
+ objects = $(sources:.cpp=.o)
+ 
+--- a/architecture/osclib/faust/Makefile
++++ b/architecture/osclib/faust/Makefile
+@@ -1,5 +1,5 @@
+ subprojects := . src src/lib src/msg src/nodes src/osc src/threads ../..
+-sources = $(wildcard src/*.cpp) $(wildcard src/*/*.cpp) 
++sources = $(sort $(wildcard src/*.cpp) $(wildcard src/*/*.cpp))
+ objects = $(sources:.cpp=.o)
+ 
+ VPATH = $(subprojects)
+--- a/architecture/osclib/oscpack/Makefile
++++ b/architecture/osclib/oscpack/Makefile
+@@ -3,25 +3,25 @@
+ 
+ ifeq ($(system), Darwin)
+ subprojects := ip ip/posix osc
+-sources     := $(wildcard ip/*.cpp)  $(wildcard ip/posix/*.cpp)  $(wildcard osc/*.cpp)
++sources     := $(sort $(wildcard ip/*.cpp)  $(wildcard ip/posix/*.cpp)  $(wildcard osc/*.cpp))
+ #ARCHFLAGS 	:=  -arch i386 -arch x86_64
+ 
+ else 
+ ifeq ($(system), Linux)
+ subprojects := ip ip/posix osc
+-sources     := $(wildcard ip/*.cpp)  $(wildcard ip/posix/*.cpp)  $(wildcard osc/*.cpp)
++sources     := $(sort $(wildcard ip/*.cpp)  $(wildcard ip/posix/*.cpp)  $(wildcard osc/*.cpp))
+ ARCHFLAGS 	:= 
+ CXXFLAGS += -fPIC
+ 
+ else 
+ ifeq ($(system), GNU/kFreeBSD)
+ subprojects := ip ip/posix osc
+-sources     := $(wildcard ip/*.cpp)  $(wildcard ip/posix/*.cpp)  $(wildcard osc/*.cpp)
++sources     := $(sort $(wildcard ip/*.cpp)  $(wildcard ip/posix/*.cpp)  $(wildcard osc/*.cpp))
+ ARCHFLAGS 	:= 
+ 
+ else
+ subprojects := ip ip/win32 osc
+-sources     := $(wildcard ip/*.cpp)  $(wildcard ip/win32/*.cpp)  $(wildcard osc/*.cpp)
++sources     := $(sort $(wildcard ip/*.cpp)  $(wildcard ip/win32/*.cpp)  $(wildcard osc/*.cpp))
+ ARCHFLAGS 	:= 
+ endif
+ endif
diff --git a/debian/patches/series b/debian/patches/series
index c4914b4..b1ed196 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -4,3 +4,4 @@ kFreeBSD
 unistd
 ldflags
 spelling
+reproducible-build.patch

Attachment: signature.asc
Description: Digital 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