apache: fix reproducible builds 5137/head
authorAlexander Couzens <lynxis@fe80.eu>
Fri, 17 Nov 2017 02:39:53 +0000 (03:39 +0100)
committerAlexander Couzens <lynxis@fe80.eu>
Fri, 17 Nov 2017 11:17:03 +0000 (12:17 +0100)
Remove build timestamp [0] and correct sorting [1].
Thanks to debian for the patch.

[0] https://reproducible-builds.org/docs/timestamps/
[1] https://reproducible-builds.org/docs/stable-inputs/

Signed-off-by: Alexander Couzens <lynxis@fe80.eu>
net/apache/Makefile
net/apache/patches/010-reproducible-builds.patch [new file with mode: 0644]

index 6763c4a0e9b0348dfe4ad2fe3a0b0457273357e9..9b13383469eef097c07a2b3276e9b99be2a16ae8 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=apache
 PKG_VERSION:=2.4.28
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 PKG_SOURCE_NAME:=httpd
 PKG_MAINTAINER:=Thomas Heil <heil@terminal-consulting.de>
 PKG_LICENSE:=Apache License
diff --git a/net/apache/patches/010-reproducible-builds.patch b/net/apache/patches/010-reproducible-builds.patch
new file mode 100644 (file)
index 0000000..7a5324b
--- /dev/null
@@ -0,0 +1,44 @@
+Description: Make builds reproducible
+ Don't use __DATE__ __TIME__. Use changelog date instead.
+ Sort exported symbols.
+Author: Jean-Michel Vourgère <nirgal@debian.org>
+Forwarded: no
+Last-Update: 2015-08-11
+
+Index: apache2/server/buildmark.c
+===================================================================
+--- apache2.orig/server/buildmark.c
++++ apache2/server/buildmark.c
+@@ -17,11 +17,7 @@
+ #include "ap_config.h"
+ #include "httpd.h"
+-#if defined(__DATE__) && defined(__TIME__)
+-static const char server_built[] = __DATE__ " " __TIME__;
+-#else
+-static const char server_built[] = "unknown";
+-#endif
++static const char server_built[] = "";
+ AP_DECLARE(const char *) ap_get_server_built()
+ {
+Index: apache2/server/Makefile.in
+===================================================================
+--- apache2.orig/server/Makefile.in
++++ apache2/server/Makefile.in
+@@ -1,3 +1,4 @@
++export LC_ALL = C
+ CLEAN_TARGETS = gen_test_char test_char.h \
+       ApacheCoreOS2.def httpd.exp export_files \
+@@ -80,8 +81,8 @@ httpd.exp: exports.c export_vars.h
+       @echo "#! ." > $@
+       @echo "* This file was AUTOGENERATED at build time." >> $@
+       @echo "* Please do not edit by hand." >> $@
+-      $(CPP) $(ALL_CPPFLAGS) $(ALL_INCLUDES) exports.c | grep "ap_hack_" | grep -v apr_ | sed -e 's/^.*[)]\(.*\);$$/\1/' >> $@
+-      $(CPP) $(ALL_CPPFLAGS) $(ALL_INCLUDES) export_vars.h | grep -v apr_ | sed -e 's/^\#[^!]*//' | sed -e '/^$$/d' >> $@
++      $(CPP) $(ALL_CPPFLAGS) $(ALL_INCLUDES) exports.c | grep "ap_hack_" | grep -v apr_ | sed -e 's/^.*[)]\(.*\);$$/\1/' | sort >> $@
++      $(CPP) $(ALL_CPPFLAGS) $(ALL_INCLUDES) export_vars.h | grep -v apr_ | sed -e 's/^\#[^!]*//' | sed -e '/^$$/d' | sort >> $@
+ #   developer stuff