diff options
author | Muriithi Frederick Muriuki <fredmanglis@gmail.com> | 2017-01-06 17:51:18 +0300 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2017-01-28 01:25:55 +0100 |
commit | 2429dde57d8461cc8e51dbe6c9d47d795fe6fc9a (patch) | |
tree | c8fc86dfc5c2b72857bcd51aa548f70aab5ea3a8 /gnu/packages/ldc.scm | |
parent | b45dbfc9907a0c792cfda51d3aa755fdc6689c46 (diff) | |
download | guix-2429dde57d8461cc8e51dbe6c9d47d795fe6fc9a.tar guix-2429dde57d8461cc8e51dbe6c9d47d795fe6fc9a.tar.gz |
gnu: Add ldc@1.1.0-beta6.
* gnu/packages/ldc.scm (ldc-1.1.0-beta6, ldc-beta): New variables.
* gnu/packages/patches/ldc-1.1.0-disable-dmd-tests.patch: New file.
* gnu/packages/patches/ldc-1.1.0-disable-phobos-tests.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add them.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Diffstat (limited to 'gnu/packages/ldc.scm')
-rw-r--r-- | gnu/packages/ldc.scm | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/gnu/packages/ldc.scm b/gnu/packages/ldc.scm index 6ea7f664bd..a1bdc586df 100644 --- a/gnu/packages/ldc.scm +++ b/gnu/packages/ldc.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015, 2016 Roel Janssen <roel@gnu.org> ;;; Copyright © 2015 Pjotr Prins <pjotr.guix@thebird.nl> +;;; Copyright © 2017 Frederick Muriithi <fredmanglis@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -27,6 +28,7 @@ #:use-module (gnu packages) #:use-module (gnu packages base) #:use-module (gnu packages compression) + #:use-module (gnu packages gdb) #:use-module (gnu packages libedit) #:use-module (gnu packages llvm) #:use-module (gnu packages python) @@ -171,3 +173,104 @@ latest DMD frontend and uses LLVM as backend.") (license (list license:bsd-3 license:gpl2+ license:boost1.0)))) + + +(define-public ldc-1.1.0-beta6 + ;; The phobos, druntime and dmd-testsuite dependencies do not have a newer + ;; release than 1.1.0-beta4, hence the need to make use of the older-version + ;; variable to hold this variable. + (let ((older-version "1.1.0-beta4")) + (package + (inherit ldc) + (name "ldc") + (version "1.1.0-beta6") + ;; Beta version needed to compile various scientific tools that require + ;; the newer beta versions, and won't compile successfully with the + ;; older stable version. + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/ldc-developers/ldc/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0n53brlkm86jjkppy9xmzx7nyxykzj68kcxgv8q7d10s5hfscxs8")))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'unpack-submodule-sources + (lambda* (#:key inputs #:allow-other-keys) + (let ((unpack (lambda (source target) + (with-directory-excursion target + (zero? (system* "tar" "xvf" + (assoc-ref inputs source) + "--strip-components=1")))))) + (and (unpack "phobos-src" "runtime/phobos") + (unpack "druntime-src" "runtime/druntime") + (unpack "dmd-testsuite-src" "tests/d2/dmd-testsuite"))))) + ;; The 'patch-dmd2 step in ldc causes the build to fail since + ;; dmd2/root/port.c no longer exists. Arguments needed to have + ;; 'patch-dmd2 step removed, but retain everything else. + (add-after 'unpack-submodule-sources 'patch-phobos + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "runtime/phobos/std/process.d" + (("/bin/sh") (which "sh")) + (("echo") (which "echo"))) + (substitute* "runtime/phobos/std/datetime.d" + (("/usr/share/zoneinfo/") + (string-append (assoc-ref inputs "tzdata") "/share/zoneinfo"))) + (substitute* "tests/d2/dmd-testsuite/Makefile" + (("/bin/bash") (which "bash"))) + #t))))) + (native-inputs + `(("llvm" ,llvm) + ("clang" ,clang) + ("ldc" ,ldc) + ("python-lit" ,python-lit) + ("python-wrapper" ,python-wrapper) + ("unzip" ,unzip) + ("gdb" ,gdb) + ("phobos-src" + ,(origin + (method url-fetch) + (uri (string-append + "https://github.com/ldc-developers/phobos/archive/ldc-v" + older-version ".tar.gz")) + (sha256 + (base32 + "1iwy5rs0rqkicj1zfsa5yqvk8ard99bfr8g69qmhlbzb98q0kpks")) + ;; This patch deactivates some tests that depend on network access + ;; to pass. It also deactivates some tests that have some reliance + ;; on timezone. + ;; + ;; For the network tests, there's an effort to get a version flag + ;; added to deactivate these tests for distribution packagers + ;; that is being pursued at + ;; <https://forum.dlang.org/post/zmdbdgnzrxyvtpqafvyg@forum.dlang.org>. + ;; It also deactivates a test that requires /root + (patches (search-patches "ldc-1.1.0-disable-phobos-tests.patch")))) + ("druntime-src" + ,(origin + (method url-fetch) + (uri (string-append + "https://github.com/ldc-developers/druntime/archive/ldc-v" + older-version ".tar.gz")) + (sha256 + (base32 + "1qsiw5lz1pr8ms9myjf8b94nqi7f1781k226jvxwnhkjg11d0s63")))) + ("dmd-testsuite-src" + ,(origin + (method url-fetch) + (uri (string-append + "https://github.com/ldc-developers/dmd-testsuite/archive/ldc-v" + older-version ".tar.gz")) + (sha256 + (base32 + "0jp54hyi75i9g41rvgmm3zg21yzv57q8dghrhb432rb0n9j15mbp")) + ;; Remove the gdb tests that fails with a "Error: No such file or + ;; directory" error, despite the files being present in the debug + ;; files left with the --keep-failed flag to guix build. + (patches (search-patches "ldc-1.1.0-disable-dmd-tests.patch"))))))))) + +(define-public ldc-beta ldc-1.1.0-beta6) |