gnu: Add mes-rb5.

This

    guix build --system=i686-linux mes-dcc

creates the Reproducible-Builds summit 5's GNU Mes build with sha266sum

    9e0bcb1633c58e7bc415f6ea27cee7951d6b0658e13cdc147e992b31a14625fb

that was also built for Debian GNU/Linux and NixOS, with a bit-for-bit
identical result.

* gnu/packages/mes.scm (mes-ddc): New variable.
This commit is contained in:
Jan Nieuwenhuizen 2019-12-07 15:20:50 +01:00
parent 8c0dcf3e89
commit 4e23d65056
No known key found for this signature in database
GPG key ID: F3C1A0D9C1D65273

View file

@ -21,6 +21,9 @@
(define-module (gnu packages mes) (define-module (gnu packages mes)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages base) #:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages bootstrap)
#:use-module (gnu packages compression)
#:use-module (gnu packages cross-base) #:use-module (gnu packages cross-base)
#:use-module (gnu packages gcc) #:use-module (gnu packages gcc)
#:use-module (gnu packages graphviz) #:use-module (gnu packages graphviz)
@ -151,7 +154,80 @@ (define-public mes
"104qxngxyl7pql8vqrnli3wfyx0ayfaqg8gjfhmk4qzrafs46slm")))) "104qxngxyl7pql8vqrnli3wfyx0ayfaqg8gjfhmk4qzrafs46slm"))))
(propagated-inputs (propagated-inputs
`(("mescc-tools" ,mescc-tools) `(("mescc-tools" ,mescc-tools)
("nyacc" ,nyacc))))) ("nyacc" ,nyacc)))
(native-search-paths
(list (search-path-specification
(variable "C_INCLUDE_PATH")
(files '("include")))
(search-path-specification
(variable "LIBRARY_PATH")
(files '("lib")))))))
(define-public mes-rb5
;; This is the Reproducible-Builds summit 5's Mes, also built on Debian
;; GNU/Linux and NixOS to produce the same, bit-for-bit identical result.
(package
(inherit mes)
(name "mes-rb5")
(inputs '())
(propagated-inputs '())
(native-inputs
`(("bash" ,bash)
("coreutils" ,coreutils)
("grep" ,grep)
("guile" ,guile-2.2)
("libc" ,glibc)
("locales" ,glibc-utf8-locales)
("make" ,gnu-make)
("mes" ,mes)
("mescc-tools" ,mescc-tools)
("nyacc" ,nyacc)
("sed" ,sed)
("tar" ,tar)
("xz" ,xz)))
(supported-systems '("i686-linux"))
(arguments
`(#:implicit-inputs? #f
#:strip-binaries? #f ; binutil's strip b0rkes MesCC/M1/hex2 binaries
#:modules ((guix build gnu-build-system)
(guix build utils)
(ice-9 popen)
(ice-9 rdelim))
#:phases
(modify-phases %standard-phases
(add-before 'configure 'setenv
(lambda _
(setenv "AR" "mesar")
(setenv "CC" "mescc")
(setenv "GUILD" "true")
(setenv "SCHEME" "mes")
(setenv "LC_ALL" "en_US.UTF-8")
#t))
(replace 'configure
(lambda _
(let ((out (assoc-ref %outputs "out")))
(invoke "sh" "configure.sh"
(string-append "--prefix=" out)
"--host=i686-unkown-linux-gnu"
"--with-courage"))))
(replace 'build
(lambda _
(invoke "sh" "bootstrap.sh")))
(replace 'check
(lambda _
(let ((sha256sum
(read-delimited
" "
(open-pipe* OPEN_READ "sha256sum" "src/mes"))))
(unless
(equal?
sha256sum
"9e0bcb1633c58e7bc415f6ea27cee7951d6b0658e13cdc147e992b31a14625fb")
(throw 'error "mes checksum failure"))
#t)))
(replace 'install
(lambda _
(invoke "sh" "install.sh"))))))))
(define-public mescc-tools-0.5.2 (define-public mescc-tools-0.5.2
;; Mescc-tools used for bootstrap. ;; Mescc-tools used for bootstrap.