Source: starvoyager
Version: 0.4.4-5.1
Severity: wishlist
Tags: patch
User: reproducible-bui...@lists.alioth.debian.org
Usertags: fileordering

Dear Maintainer,

While working on the "reproducible builds" effort [1], we have noticed
that starvoyager could not be built reproducibly.

The Makefile uses wildcards in the linker call, leading to unstable input file
order and potentially different resulting binaries. I have attached a patch
to use a fixed order for input object files. This makes the build reproducible
for me in my local test environment.

Regards,
Sascha

[1]: https://wiki.debian.org/ReproducibleBuilds
diff -u starvoyager-0.4.4/debian/patches/00list starvoyager-0.4.4/debian/patches/00list
--- starvoyager-0.4.4/debian/patches/00list
+++ starvoyager-0.4.4/debian/patches/00list
@@ -3,0 +4 @@
+03_deterministic-linker-input
only in patch2:
unchanged:
--- starvoyager-0.4.4.orig/debian/patches/03_deterministic-linker-input.dpatch
+++ starvoyager-0.4.4/debian/patches/03_deterministic-linker-input.dpatch
@@ -0,0 +1,19 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 03_deterministic-linker-input.patch.dpatch by Sascha Steinbiss <sas...@steinbiss.name>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: No description.
+
+@DPATCH@
+diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' starvoyager-0.4.4~/Makefile starvoyager-0.4.4/Makefile
+--- starvoyager-0.4.4~/Makefile	2002-11-14 01:27:58.000000000 +0000
++++ starvoyager-0.4.4/Makefile	2016-03-27 09:32:05.492542234 +0000
+@@ -16,7 +16,7 @@
+ 
+ #Linking
+ starvoyager: alliance.o camera.o database.o error.o game.o interface.o presence.o ship.o sound.o ticker.o calc.o client.o equip.o frag.o graphic.o planet.o server.o sockhelper.o sv.o player.o os.o SDL_rotozoom.o SDL_gfxPrimitives.o
+-	$(CC) -o starvoyager *.o $(LIBS)
++	$(CC) -o starvoyager $^ $(LIBS)
+ 
+ #Include dependencies
+ *.o: *.h

Reply via email to