~ruther/guix-local

c2eb8cd98c82277e851eb4302b7f12614e215a76 — Ludovic Courtès 8 years ago 8ff5b8a
gnu: xorg-server: Build reproducibly.

Fixes <https://bugs.gnu.org/24112>.

* gnu/packages/xorg.scm (xorg-server)[arguments]: Pass "--with-os-name"
and "--with-os-vendor" as #:configure-flags.
Augment 'pre-configure' phase to set 'BUILD_DATE' and 'BUILD_TIME' in
'configure'.
1 files changed, 25 insertions(+), 11 deletions(-)

M gnu/packages/xorg.scm
M gnu/packages/xorg.scm => gnu/packages/xorg.scm +25 -11
@@ 5178,6 5178,12 @@ over Xlib, including:
             ;; It's not used anyway, so set it to empty.
             "--with-default-font-path="

             ;; The default is to use "uname -srm", which captures the kernel
             ;; version and makes builds non-reproducible.
             "--with-os-name=GNU"

             "--with-os-vendor=GuixSD"    ;not strictly needed, but looks nice


             ;; For the log file, etc.
             "--localstatedir=/var"


@@ 5187,17 5193,25 @@ over Xlib, including:

       #:phases
       (modify-phases %standard-phases
         (add-before
          'configure 'pre-configure
          (lambda _
            (substitute* (find-files "." "\\.c$")
              (("/bin/sh") (which "sh")))

            ;; Don't try to 'mkdir /var'.
            (substitute* "hw/xfree86/Makefile.in"
              (("\\$\\(MKDIR_P\\).*logdir.*")
               "true\n"))
            #t)))))
         (add-before 'configure 'pre-configure
           (lambda _
             (substitute* (find-files "." "\\.c$")
               (("/bin/sh") (which "sh")))

             ;; Don't try to 'mkdir /var'.
             (substitute* "hw/xfree86/Makefile.in"
               (("\\$\\(MKDIR_P\\).*logdir.*")
                "true\n"))

             ;; Strip timestamps that would otherwise end up in the 'Xorg'
             ;; binary.
             (substitute* "configure"
               (("^BUILD_DATE=.*$")
                "BUILD_DATE=19700101\n")
               (("^BUILD_TIME=.*$")
                "BUILD_TIME=000001\n"))

             #t)))))
    (home-page "https://www.x.org/wiki/")
    (synopsis "Xorg implementation of the X Window System")
    (description