libwebsockets: remove build hostname
authorAlexander Couzens <redacted>
Sun, 3 Dec 2017 12:56:56 +0000 (13:56 +0100)
committerKarl Palsson <redacted>
Mon, 11 Dec 2017 10:51:46 +0000 (10:51 +0000)
Using the build hostname breaks reproducible builds.
The patch is already merged upstream

Signed-off-by: Alexander Couzens <redacted>
libs/libwebsockets/Makefile
libs/libwebsockets/patches/001-CMakeLists-build-reproducible-by-default.patch [new file with mode: 0644]

index 8488fcffa5d6c58ce16e3f22a1f174b23415a094..fcafa90df12fc71f5bfc0bbee719be2622943cac 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libwebsockets
 PKG_VERSION:=2.4.1
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
diff --git a/libs/libwebsockets/patches/001-CMakeLists-build-reproducible-by-default.patch b/libs/libwebsockets/patches/001-CMakeLists-build-reproducible-by-default.patch
new file mode 100644 (file)
index 0000000..c36a81d
--- /dev/null
@@ -0,0 +1,78 @@
+From d7b6c04aaf416344332e73f49fe457013e3ccf36 Mon Sep 17 00:00:00 2001
+From: Alexander Couzens <lynxis@fe80.eu>
+Date: Sun, 10 Dec 2017 00:54:06 +0100
+Subject: [PATCH] CMakeLists: build reproducible by default
+Merged-upstream: yes
+
+Using the build user and build hostname as part of the git hash breaks
+reproducible builds. Make this part optional, but build reproducible by
+default.
+---
+ CMakeLists.txt | 47 +++++++++++++++++++++++++++--------------------
+ 1 file changed, 27 insertions(+), 20 deletions(-)
+
+Index: libwebsockets-2.4.0/CMakeLists.txt
+===================================================================
+--- libwebsockets-2.4.0.orig/CMakeLists.txt
++++ libwebsockets-2.4.0/CMakeLists.txt
+@@ -39,26 +39,32 @@ message(STATUS "CMAKE_TOOLCHAIN_FILE='${
+ find_package(Git)
+ if(GIT_EXECUTABLE)
+       execute_process(
+-    WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
+-    COMMAND "${GIT_EXECUTABLE}" describe
+-    OUTPUT_VARIABLE GIT_HASH
+-    OUTPUT_STRIP_TRAILING_WHITESPACE
+-    )
+-      execute_process(
+-    WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
+-    COMMAND "whoami"
+-    OUTPUT_VARIABLE GIT_USER
+-    OUTPUT_STRIP_TRAILING_WHITESPACE
+-    )
+-      execute_process(
+-    WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
+-    COMMAND "hostname"
+-    OUTPUT_VARIABLE GIT_HOST
+-    OUTPUT_STRIP_TRAILING_WHITESPACE
+-    )
+-      string(REGEX REPLACE "([^\\])[\\]([^\\])" "\\1\\\\\\\\\\2" GIT_USER ${GIT_USER})
+-    set(LWS_BUILD_HASH ${GIT_USER}@${GIT_HOST}-${GIT_HASH})
+-    message("Git commit hash: ${LWS_BUILD_HASH}")
++              WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
++              COMMAND "${GIT_EXECUTABLE}" describe
++              OUTPUT_VARIABLE GIT_HASH
++              OUTPUT_STRIP_TRAILING_WHITESPACE
++              )
++      set(LWS_BUILD_HASH ${GIT_HASH})
++
++      # appen the build user and hostname
++      if(NOT LWS_REPRODUCIBLE)
++              execute_process(
++                      WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
++                      COMMAND "whoami"
++                      OUTPUT_VARIABLE GIT_USER
++                      OUTPUT_STRIP_TRAILING_WHITESPACE
++                      )
++              execute_process(
++                      WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
++                      COMMAND "hostname"
++                      OUTPUT_VARIABLE GIT_HOST
++                      OUTPUT_STRIP_TRAILING_WHITESPACE
++                      )
++              string(REGEX REPLACE "([^\\])[\\]([^\\])" "\\1\\\\\\\\\\2" GIT_USER ${GIT_USER})
++              set(LWS_BUILD_HASH ${GIT_USER}@${GIT_HOST}-${GIT_HASH})
++      endif()
++
++      message("Git commit hash: ${LWS_BUILD_HASH}")
+ endif()
+ set(LWS_WITH_BUNDLED_ZLIB_DEFAULT OFF)
+@@ -121,6 +127,7 @@ option(LWS_AVOID_SIGPIPE_IGN "Android 7+
+ option(LWS_WITH_STATS "Keep statistics of lws internal operations" OFF)
+ option(LWS_WITH_SOCKS5 "Allow use of SOCKS5 proxy on client connections" OFF)
+ option(LWS_WITH_PEER_LIMITS "Track peers and restrict resources a single peer can allocate" OFF)
++option(LWS_REPRODUCIBLE "Build libwebsockets reproducible. It removes the build user and hostname from the build" ON)
+ macro(confirm_command CMD NOCMD)
+       find_program (HAVE_CMD_${CMD} ${CMD} )
git clone https://git.99rst.org/PROJECT