diff options
Diffstat (limited to 'gnu/packages/dlang.scm')
-rw-r--r-- | gnu/packages/dlang.scm | 174 |
1 files changed, 92 insertions, 82 deletions
diff --git a/gnu/packages/dlang.scm b/gnu/packages/dlang.scm index c164ed849a..3b0c799dc3 100644 --- a/gnu/packages/dlang.scm +++ b/gnu/packages/dlang.scm @@ -3,7 +3,7 @@ ;;; Copyright © 2015, 2018 Pjotr Prins <pjotr.guix@thebird.nl> ;;; Copyright © 2017 Frederick Muriithi <fredmanglis@gmail.com> ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net> -;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2017, 2019 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -81,15 +81,15 @@ and freshness without requiring additional information from the user.") (package (name "ldc") (version "0.17.4") - (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 - "1kw0j378k6bh0k66dvx99bjq8ilp8bb24w3jrmibn8rhmqv0d5q8")))) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ldc-developers/ldc.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0nnrjavfmpfp7bib04isqlxvyzh6mlvsdan0gxysdz96hlg4hcq8")))) (build-system cmake-build-system) (supported-systems '("x86_64-linux" "i686-linux" "armhf-linux")) (properties @@ -101,11 +101,15 @@ and freshness without requiring additional information from the user.") (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 - (invoke "tar" "xvf" - (assoc-ref inputs source) - "--strip-components=1"))))) + (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") @@ -147,32 +151,32 @@ and freshness without requiring additional information from the user.") ("unzip" ,unzip) ("phobos-src" ,(origin - (method url-fetch) - (uri (string-append - "https://github.com/ldc-developers/phobos/archive/ldc-v" - version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/ldc-developers/phobos.git") + (commit (string-append "ldc-v" version)))) + (file-name (git-file-name "phobos" version)) (sha256 - (base32 - "16x36kp46mqiihxx7jvr1d3mv3b96yfmhinb9lzinh2m4clr85wz")) + (base32 "0i7gh99w4mi0hdv16261jcdiqyv1nkjdcwy9prw32s0lvplx8fdy")) (patches (search-patches "ldc-bootstrap-disable-tests.patch")))) ("druntime-src" ,(origin - (method url-fetch) - (uri (string-append - "https://github.com/ldc-developers/druntime/archive/ldc-v" - version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/ldc-developers/druntime.git") + (commit (string-append "ldc-v" version)))) + (file-name (git-file-name "druntime" version)) (sha256 - (base32 - "0iw2xxhcbsc5f1707dgdzhff528363l4faqdk513gaxs2dhfx8vx")))) + (base32 "0alabm3bbvs94msvxz5psiwk4f51cw9h82z1p5hhsnf8ja6d0am7")))) ("dmd-testsuite-src" ,(origin - (method url-fetch) - (uri (string-append - "https://github.com/ldc-developers/dmd-testsuite/archive/ldc-v" - version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/ldc-developers/dmd-testsuite.git") + (commit (string-append "ldc-v" version)))) + (file-name (git-file-name "dmd-testsuite" version)) (sha256 - (base32 - "0z6ch930wjkg2vlnqkbliwxxxifad6ydsdpwdxwnajkb2kaxsjx4")))))) + (base32 "05qr4cgb4scfqzbw1l5pk72kil074mvj9d55b165ljyr51sgwgbl")))))) (home-page "http://wiki.dlang.org/LDC") (synopsis "LLVM-based compiler for the D programming language") (description @@ -195,28 +199,33 @@ bootstrapping more recent compilers written in D.") (inherit ldc-bootstrap) (name "ldc") (version "1.10.0") - (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 - "16b1h9kwfggjw6ykc6sfs26ak6vypylsx9wmvp5m6x3cvi6g70yi")))) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ldc-developers/ldc.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0qcb2rn01wql7y8qp31blbv3hwmnh3zjgzi2n7k168cxr6rrdhlp")))) (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 - (invoke "tar" "xvf" - (assoc-ref inputs source) - "--strip-components=1"))))) + (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")))) + (unpack "dmd-testsuite-src" "tests/d2/dmd-testsuite") + #t))) (add-after 'unpack-submodule-sources 'patch-phobos (lambda* (#:key inputs #:allow-other-keys) (substitute* '("runtime/phobos/std/process.d" @@ -224,7 +233,7 @@ bootstrapping more recent compilers written in D.") (("/bin/sh") (which "sh")) (("echo") (which "echo"))) (substitute* "tests/d2/dmd-testsuite/Makefile" - (("/bin/bash") (which "bash"))) + (("/bin/bash") (which "bash"))) ;; disable unittests in the following files. We are discussing with ;; upstream (substitute* '("runtime/phobos/std/net/curl.d" @@ -241,14 +250,14 @@ bootstrapping more recent compilers written in D.") (delete-file "tests/plugins/addFuncEntryCall/testPlugin.d") ;; the following tests requires AVX instruction set in the CPU. (substitute* "tests/d2/dmd-testsuite/runnable/test_cdvecfill.d" - (("^// DISABLED: ") "^// DISABLED: linux64 ")) + (("^// DISABLED: ") "^// DISABLED: linux64 ")) #t)) (replace 'check - (lambda* (#:key inputs outputs #:allow-other-keys) - ;; some tests call into gdb binary which needs SHELL and CC set - (setenv "SHELL" (which "sh")) - (setenv "CC" (string-append (assoc-ref inputs "gcc") "/bin/gcc")) - (invoke "make" "test" "-j" (number->string (parallel-job-count)))))))) + (lambda* (#:key inputs outputs #:allow-other-keys) + ;; some tests call into gdb binary which needs SHELL and CC set + (setenv "SHELL" (which "sh")) + (setenv "CC" (string-append (assoc-ref inputs "gcc") "/bin/gcc")) + (invoke "make" "test" "-j" (number->string (parallel-job-count)))))))) (native-inputs `(("llvm" ,llvm-6) ("clang" ,clang-6) @@ -259,13 +268,13 @@ bootstrapping more recent compilers written in D.") ("gdb" ,gdb) ("phobos-src" ,(origin - (method url-fetch) - (uri (string-append - "https://github.com/ldc-developers/phobos/archive/ldc-v" - older-version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/ldc-developers/phobos.git") + (commit (string-append "ldc-v" older-version)))) + (file-name (git-file-name "phobos" older-version)) (sha256 - (base32 - "0cpmrww00xf1qx38bcc22rr05qw41p00p45yb5fbwnfaccfwdn0s")) + (base32 "1gmlwnjdcf6s5aahadxsif9l5nyaj0rrn379g6fmhcvdk64kf509")) ;; This patch deactivates some tests that depend on network access ;; to pass. It also deactivates some tests that have some reliance ;; on timezone. @@ -278,36 +287,37 @@ bootstrapping more recent compilers written in D.") (patches (search-patches "ldc-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")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/ldc-developers/druntime.git") + (commit (string-append "ldc-v" older-version)))) + (file-name (git-file-name "druntime" older-version)) (sha256 - (base32 - "1akh2vdi98jih8642yjbvv2vavxzrmq24kz8i3kfidg5ndqyv222")))) + (base32 "0a3yyjcnpvm5fbdczf76fx08kl154w17w06hlxf0j3p1p4jc85aj")))) ("dmd-testsuite-src" ,(origin - (method url-fetch) - (uri (string-append - "https://github.com/ldc-developers/dmd-testsuite/archive/ldc-v" - older-version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/ldc-developers/dmd-testsuite.git") + (commit (string-append "ldc-v" older-version)))) + (file-name (git-file-name "dmd-testsuite" older-version)) (sha256 - (base32 - "0z5x07qrbkpksshaymp11ir6jlmg9wjicxn6zhp8cya6i1ha9p99"))))))))) + (base32 "0mm3rliki1nqiqfaha7ssvm156aa398vpvf4v6895m7nn1mz7rss"))))))))) (define-public dub (package (name "dub") (version "1.7.2") - (source (origin - (method url-fetch) - (uri (string-append "https://github.com/dlang/dub/archive/" - "v" version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "1jvr1mmq8j77wnsrsg7x2xv8yfljqd6x8gn6yy7dd6h6y3cf408q")))) - (build-system gnu-build-system) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/dlang/dub.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "073ibvgm1gphcqs1yjrav9ryp677nh3b194nxmvicwgvdc0sb6w9")))) + (build-system gnu-build-system) (arguments `(#:tests? #f ; it would have tested itself by installing some packages (vibe etc) #:phases |