Subject: [PATCH 2/3] gnu: wine: Build more reproducibly.

From: Kaelyn Takata <[email-masked]>
Date: Thu, 26 Jan 2023 00:24:03 +0000

* gnu/packages/wine.scm (wine)[phases]: Add a new 'set-widl-time-override phase.
---
 gnu/packages/wine.scm | 21 ++++++++++++++++++---
 1 file changed, 18 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/wine.scm b/gnu/packages/wine.scm
index 7ca2ac5bdf..0de34e320d 100644
--- a/gnu/packages/wine.scm
+++ b/gnu/packages/wine.scm
@@ -195,7 +195,12 @@ (define-public wine
                (substitute* "tools/makedep.c"
                  (("output_filenames\\( unix_libs \\);" all)
                   (string-append all
-                                 "output ( \" -Wl,-rpath=%s \", arch_install_dirs[arch] );"))))))))
+                                 "output ( \" -Wl,-rpath=%s \", arch_install_dirs[arch] );")))))
+           (add-before 'build 'set-widl-time-override
+             ;; Set WIDL_TIME_OVERRIDE to avoid embedding the current date in
+             ;; files generated by WIDL.
+             (lambda _
+               (setenv "WIDL_TIME_OVERRIDE" "315532800"))))))
     (home-page "https://www.winehq.org/")
     (synopsis "Implementation of the Windows API (32-bit only)")
     (description
@@ -289,7 +294,12 @@ (define-public wine64
                                 (search-path library-path soname))))
                 (substitute* "include/config.h"
                   (("(#define SONAME_.* )\"(.*)\"" _ defso soname)
-                   (format #f "~a\"~a\"" defso (find-so soname))))))))
+                   (format #f "~a\"~a\"" defso (find-so soname)))))))
+          (add-before 'build 'set-widl-time-override
+            ;; Set WIDL_TIME_OVERRIDE to avoid embedding the current date in
+            ;; files generated by WIDL.
+            (lambda _
+              (setenv "WIDL_TIME_OVERRIDE" "315532800"))))
       #:configure-flags
       #~(list "--enable-win64")
       (strip-keyword-arguments '(#:configure-flags #:make-flags #:phases
@@ -326,7 +336,12 @@ (define-public wine-minimal
                                (search-path library-path soname))))
                (substitute* "include/config.h"
                  (("(#define SONAME_.* )\"(.*)\"" _ defso soname)
-                  (format #f "~a\"~a\"" defso (find-so soname))))))))
+                  (format #f "~a\"~a\"" defso (find-so soname)))))))
+         (add-before 'build 'set-widl-time-override
+           ;; Set WIDL_TIME_OVERRIDE to avoid embedding the current date in
+           ;; files generated by WIDL.
+           (lambda _
+             (setenv "WIDL_TIME_OVERRIDE" "315532800"))))
        #:configure-flags
        (list "--without-freetype"
              "--without-x")
--
2.39.1