about summary refs log tree commit diff
path: root/gn
diff options
context:
space:
mode:
authorArun Isaac2022-08-19 14:34:32 +0530
committerArun Isaac2022-08-19 14:34:32 +0530
commit0783393d436d17f09533e4006959bc7da25a9ee9 (patch)
treea9fc74b41d16cb7798ebc34241afc27e232e5c69 /gn
parentdc174c8cd34b9c51e50901c582b45c16aeeaca04 (diff)
downloadguix-bioinformatics-0783393d436d17f09533e4006959bc7da25a9ee9.tar.gz
Add ldc-bootstrap-0.17 that was deleted in upstream Guix.
* gn/packages/dlang.scm (ldc-bootstrap-0.17): New variable.
(ldc): Use ldc-bootstrap-0.17 from current module instead of from
upstream Guix.
Diffstat (limited to 'gn')
-rw-r--r--gn/packages/dlang.scm101
1 files changed, 99 insertions, 2 deletions
diff --git a/gn/packages/dlang.scm b/gn/packages/dlang.scm
index bbb35e2..5cab985 100644
--- a/gn/packages/dlang.scm
+++ b/gn/packages/dlang.scm
@@ -49,13 +49,110 @@ The following tests FAILED:
 Errors while running CTest
 !#
 
+(define ldc-bootstrap-0.17
+  (package
+    (name "ldc")
+    (version "0.17.6")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/ldc-developers/ldc")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1q6hm4fkrcwys83x0p4kfg9xrc1b9g2qicqif2zy5z4nsfsb5vgs"))))
+    (build-system cmake-build-system)
+    (supported-systems '("x86_64-linux" "i686-linux" "armhf-linux"))
+    (properties
+     ;; Some of the tests take a very long time on ARMv7.  See
+     ;; <https://lists.gnu.org/archive/html/guix-devel/2018-02/msg00312.html>.
+     `((max-silent-time . ,(* 3600 3))))
+    (arguments
+     `(#:tests? #f               ;requires obsolete python-lit test dependency
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'unpack-submodule-sources
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((unpack (lambda (input target)
+                             (let ((source (assoc-ref inputs input)))
+                               ;; Git checkouts are directories as long as
+                               ;; there are no patches; tarballs otherwise.
+                               (if (file-is-directory? source)
+                                   (copy-recursively source target)
+                                   (with-directory-excursion target
+                                     (invoke "tar" "xvf" source
+                                             "--strip-components=1")))))))
+               (unpack "phobos-src" "runtime/phobos")
+               (unpack "druntime-src" "runtime/druntime")
+               (unpack "dmd-testsuite-src" "tests/d2/dmd-testsuite"))))
+         (add-after 'unpack-submodule-sources 'patch-paths
+           (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"))
+               (("tzName == \"[+]VERSION\"")
+                "(tzName == \"+VERSION\" || \
+std.algorithm.endsWith(tzName, \"/leapseconds\"))")))))))
+    (inputs
+     `(("libconfig" ,libconfig)
+       ("libedit" ,libedit)
+       ("tzdata" ,tzdata)
+       ("zlib" ,zlib)))
+    (native-inputs
+     `(("llvm" ,llvm-6)
+       ("python-wrapper" ,python-wrapper)
+       ("unzip" ,unzip)
+       ("phobos-src"
+        ,(origin
+           (method git-fetch)
+           (uri (git-reference
+                 (url "https://github.com/ldc-developers/phobos")
+                 (commit (string-append "ldc-v" version))))
+           (file-name (git-file-name "phobos" version))
+           (sha256
+            (base32 "15jzs38wanks2jfp2izzl7zqrp4c8ai54ppsgm8ws86p3sbbkmj8"))))
+       ("druntime-src"
+        ,(origin
+           (method git-fetch)
+           (uri (git-reference
+                 (url "https://github.com/ldc-developers/druntime")
+                 (commit (string-append "ldc-v" version))))
+           (file-name (git-file-name "druntime" version))
+           (sha256
+            (base32 "00wr2kiggwnd8h7by51fhj1xc65hv1ysip5gbgdbkfar58p2d0bb"))))
+       ("dmd-testsuite-src"
+        ,(origin
+           (method git-fetch)
+           (uri (git-reference
+                 (url "https://github.com/ldc-developers/dmd-testsuite")
+                 (commit (string-append "ldc-v" version))))
+           (file-name (git-file-name "dmd-testsuite" version))
+           (sha256
+            (base32 "1d1c0979wbippldrkjf7szyj4n87hxz8dwqg1r5b3aai37g9kcky"))))))
+    (home-page "http://wiki.dlang.org/LDC")
+    (synopsis "LLVM-based compiler for the D programming language")
+    (description
+     "LDC is an LLVM compiler for the D programming language.  It is based on
+the latest DMD compiler that was written in C and is used for
+bootstrapping more recent compilers written in D.")
+    ;; Most of the code is released under BSD-3, except for code originally
+    ;; written for GDC, which is released under GPLv2+, and the DMD frontend,
+    ;; which is released under the "Boost Software License version 1.0".
+    (license (list license:bsd-3
+                   license:gpl2+
+                   license:boost1.0))))
+
 (define-public ldc
   ;; Phobos, druntime and dmd-testsuite library dependencies do
   ;; not always have a newer release than the compiler, hence we
   ;; retain this variable.
   (let ((older-version "1.26.0")) ;; retain this because sometimes the libs are older
     (package
-      (inherit (@@ (gnu packages dlang) ldc-bootstrap-0.17))
+      (inherit ldc-bootstrap-0.17)
       (name "ldc")
       (version "1.26.0")
       (source
@@ -122,7 +219,7 @@ Errors while running CTest
       (native-inputs
        `(("llvm" ,llvm)
          ("clang" ,clang)
-         ("ldc" ,(@@ (gnu packages dlang) ldc-bootstrap-0.17))
+         ("ldc" ,ldc-bootstrap-0.17)
          ("python-lit" ,python-lit)
          ("python-wrapper" ,python-wrapper)
          ("unzip" ,unzip)