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
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