gnu: emacs-consult: Fix grammar.
[jackhill/guix/guix.git] / gnu / packages / dlang.scm
index 3b0c799..da3b818 100644 (file)
@@ -4,6 +4,8 @@
 ;;; Copyright © 2017 Frederick Muriithi <fredmanglis@gmail.com>
 ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2017, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2020 Guy Fleury Iteriteka <gfleury@disroot.org>
+;;; Copyright © 2021 Efraim Flashner <efraim@flashner.co.il>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
   #:use-module (gnu packages gdb)
   #:use-module (gnu packages libedit)
   #:use-module (gnu packages llvm)
+  #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-xyz)
-  #:use-module (gnu packages textutils))
+  #:use-module (gnu packages textutils)
+  #:use-module (gnu packages xorg))
 
 (define-public rdmd
   (package
@@ -80,16 +84,16 @@ and freshness without requiring additional information from the user.")
 (define-public ldc-bootstrap
     (package
       (name "ldc")
-      (version "0.17.4")
+      (version "0.17.6")
       (source
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/ldc-developers/ldc.git")
+               (url "https://github.com/ldc-developers/ldc")
                (commit (string-append "v" version))))
          (file-name (git-file-name name version))
          (sha256
-          (base32 "0nnrjavfmpfp7bib04isqlxvyzh6mlvsdan0gxysdz96hlg4hcq8"))))
+          (base32 "1q6hm4fkrcwys83x0p4kfg9xrc1b9g2qicqif2zy5z4nsfsb5vgs"))))
       (build-system cmake-build-system)
       (supported-systems '("x86_64-linux" "i686-linux" "armhf-linux"))
       (properties
@@ -114,14 +118,6 @@ and freshness without requiring additional information from the user.")
                  (unpack "druntime-src" "runtime/druntime")
                  (unpack "dmd-testsuite-src" "tests/d2/dmd-testsuite")
                  #t)))
-           (add-after 'unpack-submodule-sources 'patch-dmd2
-             (lambda* (#:key inputs #:allow-other-keys)
-               (substitute* "dmd2/root/port.c"
-                 ((" ::isnan") " isnan")
-                 ((" ::isinf") " isinf")
-                 (("#undef isnan") "")
-                 (("#undef isinf") ""))
-               #t))
            (add-after 'unpack-submodule-sources 'patch-phobos
              (lambda* (#:key inputs #:allow-other-keys)
                (substitute* "runtime/phobos/std/process.d"
@@ -134,8 +130,6 @@ and freshness without requiring additional information from the user.")
                   "(tzName == \"+VERSION\" || std.algorithm.endsWith(tzName, \"/leapseconds\"))"))
                (substitute* "tests/d2/dmd-testsuite/Makefile"
                  (("/bin/bash") (which "bash")))
-               ;; FIXME: this test cannot be linked.
-               (delete-file "tests/d2/dmd-testsuite/runnable/cppa.d")
                ;; the following two tests fail on i686
                (for-each delete-file '("tests/ir/attributes.d" "tests/ir/align.d")))))))
       (inputs
@@ -144,8 +138,8 @@ and freshness without requiring additional information from the user.")
          ("tzdata" ,tzdata)
          ("zlib" ,zlib)))
       (native-inputs
-       `(("llvm" ,llvm-3.8)
-         ("clang" ,clang-3.8)
+       `(("llvm" ,llvm-6)
+         ("clang" ,clang-6)
          ("python-lit" ,python-lit)
          ("python-wrapper" ,python-wrapper)
          ("unzip" ,unzip)
@@ -153,30 +147,30 @@ and freshness without requiring additional information from the user.")
           ,(origin
              (method git-fetch)
              (uri (git-reference
-                   (url "https://github.com/ldc-developers/phobos.git")
+                   (url "https://github.com/ldc-developers/phobos")
                    (commit (string-append "ldc-v" version))))
              (file-name (git-file-name "phobos" version))
              (sha256
-              (base32 "0i7gh99w4mi0hdv16261jcdiqyv1nkjdcwy9prw32s0lvplx8fdy"))
+              (base32 "15jzs38wanks2jfp2izzl7zqrp4c8ai54ppsgm8ws86p3sbbkmj8"))
              (patches (search-patches "ldc-bootstrap-disable-tests.patch"))))
          ("druntime-src"
           ,(origin
              (method git-fetch)
              (uri (git-reference
-                   (url "https://github.com/ldc-developers/druntime.git")
+                   (url "https://github.com/ldc-developers/druntime")
                    (commit (string-append "ldc-v" version))))
              (file-name (git-file-name "druntime" version))
              (sha256
-              (base32 "0alabm3bbvs94msvxz5psiwk4f51cw9h82z1p5hhsnf8ja6d0am7"))))
+              (base32 "00wr2kiggwnd8h7by51fhj1xc65hv1ysip5gbgdbkfar58p2d0bb"))))
          ("dmd-testsuite-src"
           ,(origin
              (method git-fetch)
              (uri (git-reference
-                   (url "https://github.com/ldc-developers/dmd-testsuite.git")
+                   (url "https://github.com/ldc-developers/dmd-testsuite")
                    (commit (string-append "ldc-v" version))))
              (file-name (git-file-name "dmd-testsuite" version))
              (sha256
-              (base32 "05qr4cgb4scfqzbw1l5pk72kil074mvj9d55b165ljyr51sgwgbl"))))))
+              (base32 "1d1c0979wbippldrkjf7szyj4n87hxz8dwqg1r5b3aai37g9kcky"))))))
       (home-page "http://wiki.dlang.org/LDC")
       (synopsis "LLVM-based compiler for the D programming language")
       (description
@@ -203,7 +197,7 @@ bootstrapping more recent compilers written in D.")
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/ldc-developers/ldc.git")
+               (url "https://github.com/ldc-developers/ldc")
                (commit (string-append "v" version))))
          (file-name (git-file-name name version))
          (sha256
@@ -270,7 +264,7 @@ bootstrapping more recent compilers written in D.")
           ,(origin
              (method git-fetch)
              (uri (git-reference
-                   (url "https://github.com/ldc-developers/phobos.git")
+                   (url "https://github.com/ldc-developers/phobos")
                    (commit (string-append "ldc-v" older-version))))
              (file-name (git-file-name "phobos" older-version))
              (sha256
@@ -289,7 +283,7 @@ bootstrapping more recent compilers written in D.")
           ,(origin
              (method git-fetch)
              (uri (git-reference
-                   (url "https://github.com/ldc-developers/druntime.git")
+                   (url "https://github.com/ldc-developers/druntime")
                    (commit (string-append "ldc-v" older-version))))
              (file-name (git-file-name "druntime" older-version))
              (sha256
@@ -298,7 +292,7 @@ bootstrapping more recent compilers written in D.")
           ,(origin
              (method git-fetch)
              (uri (git-reference
-                   (url "https://github.com/ldc-developers/dmd-testsuite.git")
+                   (url "https://github.com/ldc-developers/dmd-testsuite")
                    (commit (string-append "ldc-v" older-version))))
              (file-name (git-file-name "dmd-testsuite" older-version))
              (sha256
@@ -312,7 +306,7 @@ bootstrapping more recent compilers written in D.")
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/dlang/dub.git")
+             (url "https://github.com/dlang/dub")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
@@ -348,3 +342,49 @@ The design emphasis is on maximum simplicity for simple projects,
 while providing the opportunity to customize things when
 needed.")
     (license license:expat)))
+
+(define-public gtkd
+  (package
+    (name "gtkd")
+    (version "3.9.0")
+    (source
+     (origin
+      (method url-fetch/zipbomb)
+      (uri (string-append "https://gtkd.org/Downloads/sources/GtkD-"
+                          version ".zip"))
+      (sha256
+       (base32 "0qv8qlpwwb1d078pnrf0a59vpbkziyf53cf9p6m8ms542wbcxllp"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("unzip" ,unzip)
+       ("ldc" ,ldc)
+       ("pkg-config" ,pkg-config)
+       ("xorg-server-for-tests" ,xorg-server-for-tests)))
+    (arguments
+     `(#:test-target "test"
+       #:make-flags
+       `("DC=ldc2"
+         ,(string-append "prefix=" (assoc-ref %outputs "out"))
+         ,(string-append "libdir=" (assoc-ref %outputs "out")
+                         "/lib"))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (add-before 'build 'patch-makefile
+           (lambda* (#:key outputs #:allow-other-keys)
+             (substitute* "GNUmakefile"
+               ;; We do the tests ourselves.
+               (("default-goal: libs test") "default-goal: libs")
+               (("all: libs shared-libs test") "all: libs shared-libs")
+               ;; Work around upstream bug.
+               (("\\$\\(prefix\\)\\/\\$\\(libdir\\)") "$(libdir)"))
+             #t))
+         (add-before 'check 'prepare-x
+           (lambda _
+             (system "Xvfb :1 &")
+             (setenv "DISPLAY" ":1")
+             #t)))))
+    (home-page "https://gtkd.org/")
+    (synopsis "D binding and OO wrapper of GTK+")
+    (description "This package provides bindings to GTK+ for D.")
+    (license license:lgpl2.1)))