File FBReader-0.99.4-reproducible.patch of Package fbreader

Subject: Sort list of files to make build reproducible
Author: Bernhard M. Wiedemann <bwiedemann suse de>
Date: 2017-05-28

https://github.com/geometer/FBReader/pull/295
https://bugzilla.opensuse.org/show_bug.cgi?id=1041090

    sort linker input files
    
    when building packages (e.g. for openSUSE Linux)
    (random) filesystem order of input files
    influences ordering of functions in the output,
    thus without the patch, builds (in disposable VMs) would usually differ.
    
    See https://reproducible-builds.org/ for why this matters.
    
    Setting LC_ALL is needed because locales influence how sorting happens.

Index: fbreader-0.99.4/fbreader/Makefile
===================================================================
--- fbreader-0.99.4.orig/fbreader/Makefile
+++ fbreader-0.99.4/fbreader/Makefile
@@ -22,7 +22,7 @@ all: .resources
 		fi; \
 	done;
 	@echo -n 'Linking $(TARGET) ...'
-	@$(LD) $(LDFLAGS) -o $(TARGET) `find src -name *.o` $(TEXT_LIBS) $(CORE_LIBS) $(ZLUI_LIB) -lsqlite3
+	@$(LD) $(LDFLAGS) -o $(TARGET) `find src -name *.o | LC_ALL=C sort` $(TEXT_LIBS) $(CORE_LIBS) $(ZLUI_LIB) -lsqlite3
 	@echo ' OK'
 
 FBSHAREDIR = $(DESTDIR)$(SHAREDIR)/FBReader
openSUSE Build Service is sponsored by