summaryrefslogtreecommitdiff
path: root/gnu/packages/mes.scm
diff options
context:
space:
mode:
authorJan Nieuwenhuizen <janneke@gnu.org>2019-12-07 15:20:50 +0100
committerJan Nieuwenhuizen <janneke@gnu.org>2019-12-07 19:30:36 +0100
commit4e23d65056fff3953404693a83f090cb54e02600 (patch)
treea43d10211e0f1c27ac6b6ecc58accdcc64a5dac1 /gnu/packages/mes.scm
parent8c0dcf3e89e0eb2a6094263efdbc5eaec0e8e9e8 (diff)
downloadguix-patches-4e23d65056fff3953404693a83f090cb54e02600.tar
guix-patches-4e23d65056fff3953404693a83f090cb54e02600.tar.gz
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.
Diffstat (limited to 'gnu/packages/mes.scm')
-rw-r--r--gnu/packages/mes.scm78
1 files changed, 77 insertions, 1 deletions
diff --git a/gnu/packages/mes.scm b/gnu/packages/mes.scm
index 0a5863582a..5d85c5ff51 100644
--- a/gnu/packages/mes.scm
+++ b/gnu/packages/mes.scm
@@ -21,6 +21,9 @@
(define-module (gnu packages mes)
#:use-module (gnu packages)
#: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 gcc)
#:use-module (gnu packages graphviz)
@@ -151,7 +154,80 @@ Guile.")
"104qxngxyl7pql8vqrnli3wfyx0ayfaqg8gjfhmk4qzrafs46slm"))))
(propagated-inputs
`(("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
;; Mescc-tools used for bootstrap.