Source: vectorscan
Version: 5.4.11-1
Severity: wishlist
Tags: patch
User: reproducible-bui...@lists.alioth.debian.org
Usertags: timestamps
X-Debbugs-Cc: reproducible-b...@lists.alioth.debian.org

Hi,

Whilst working on the Reproducible Builds effort [0], we noticed that
vectorscan could not be built reproducibly.

This is because it embeds a timezone-sensitive date via CMake's
string(TIMESTAMP …) functionality:

   string (TIMESTAMP BUILD_DATE "%Y-%m-%d")

Since version 3.8.0, CMake has seeded the underlying value of these
timestamps from SOURCE_DATE_EPOCH. However, the lack of the optional
"UTC" argument means that this deterministic date will still be
rendered nondeterministically under different timezones.

For example:

├── ./usr/include/hs/hs_version.h
│ @@ -28,15 +28,15 @@
│  
│  #ifndef HS_VERSION_H_C6428FAF8E3713
│  #define HS_VERSION_H_C6428FAF8E3713
│  
│  /**
│   * A version string to identify this release of Hyperscan.
│   */
│ -#define HS_VERSION_STRING "5.4.11 2023-11-20"
│ +#define HS_VERSION_STRING "5.4.11 2023-11-21"

This string is also included in various vectorscan binaries as well.

A patch attached that simply adds "UTC" to the TIMESTAMP call.


 [0] https://reproducible-builds.org/


Regards,

-- 
      ,''`.
     : :'  :     Chris Lamb
     `. `'`      la...@debian.org / chris-lamb.co.uk
       `-

--- a/debian/patches/reproducible-builds.patch  1970-01-01 01:00:00.000000000 
+0100
--- b/debian/patches/reproducible-builds.patch  2023-11-24 10:14:29.621651931 
+0000
@@ -0,0 +1,15 @@
+Description: Make the build reproducible
+Author: Chris Lamb <la...@debian.org>
+Last-Update: 2023-11-24
+
+--- vectorscan-5.4.11.orig/CMakeLists.txt
++++ vectorscan-5.4.11/CMakeLists.txt
+@@ -7,7 +7,7 @@ set (HS_MINOR_VERSION 4)
+ set (HS_PATCH_VERSION 11)
+ set (HS_VERSION ${HS_MAJOR_VERSION}.${HS_MINOR_VERSION}.${HS_PATCH_VERSION})
+ 
+-string (TIMESTAMP BUILD_DATE "%Y-%m-%d")
++string (TIMESTAMP BUILD_DATE "%Y-%m-%d" UTC)
+ message(STATUS "Build date: ${BUILD_DATE}")
+ 
+ # Dependencies check
--- a/debian/patches/series     1970-01-01 01:00:00.000000000 +0100
--- b/debian/patches/series     2023-11-24 10:14:28.081648884 +0000
@@ -0,0 +1 @@
+reproducible-builds.patch

Reply via email to