gnu: Update ldc to 0.17.1.

* gnu/packages/ldc.scm (ldc): Changed.
* gnu/packages/patches/ldc-0.17.1-disable-tests.patch: New patch.
---
 gnu/packages/ldc.scm                               | 24 +++---
 .../patches/ldc-0.17.1-disable-tests.patch         | 86 ++++++++++++++++++++++
 2 files changed, 100 insertions(+), 10 deletions(-)
 create mode 100644 gnu/packages/patches/ldc-0.17.1-disable-tests.patch

diff --git a/gnu/packages/ldc.scm b/gnu/packages/ldc.scm
index 560fa49..c498fbb 100644
--- a/gnu/packages/ldc.scm
+++ b/gnu/packages/ldc.scm
@@ -29,6 +29,7 @@
   #:use-module (gnu packages compression)
   #:use-module (gnu packages libedit)
   #:use-module (gnu packages llvm)
+  #:use-module (gnu packages python)
   #:use-module (gnu packages textutils)
   #:use-module (gnu packages zip))
 
@@ -76,7 +77,7 @@ and freshness without requiring additional information from the user.")
 (define-public ldc
   (package
     (name "ldc")
-    (version "0.16.1")
+    (version "0.17.1")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -85,10 +86,9 @@ and freshness without requiring additional information from the user.")
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "1jvilxx0rpqmkbja4m69fhd5g09697xq7vyqp2hz4hvxmmmv4j40"))))
+                "0rwggnbr60jbajfdw11kx058llmwljiss8rrv8df07vaygiv845i"))))
     (build-system cmake-build-system)
-    ;; LDC currently only supports the x86_64 and i686 architectures.
-    (supported-systems '("x86_64-linux" "i686-linux"))
+    (supported-systems '("x86_64-linux" "i686-linux" "armhf-linux"))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -107,8 +107,10 @@ and freshness without requiring additional information from the user.")
              (substitute* "dmd2/root/port.c"
                ((" ::isnan") " isnan")
                ((" ::isinf") " isinf")
-               (("#undef isnan") "")
-               (("#undef isinf") ""))
+               (("#undef isnan") "#undef isnan
+using namespace std;")
+               (("#undef isinf") "#undef isinf
+using namespace std;"))
              #t))
          (add-after 'unpack-submodule-sources 'patch-phobos
            (lambda* (#:key inputs #:allow-other-keys)
@@ -130,6 +132,8 @@ and freshness without requiring additional information from the user.")
      `(("llvm" ,llvm-3.7)
        ("clang" ,clang-3.7)
        ("unzip" ,unzip)
+       ("python-wrapper" ,python-wrapper) ; Needed for running tests
+       ("python-lit" ,python-lit) ; Needed for running tests
        ("phobos-src"
         ,(origin
            (method url-fetch)
@@ -138,8 +142,8 @@ and freshness without requiring additional information from the user.")
                  version ".tar.gz"))
            (sha256
             (base32
-             "0sgdj0536c4nb118yiw1f8lqy5d3g3lpg9l99l165lk9xy45l9z4"))
-           (patches (search-patches "ldc-disable-tests.patch"))))
+             "17nb1yvqblqj3q42c8nlnwvy823fw6kna28n2b48j4m6kd2w0nan"))
+           (patches (search-patches "ldc-0.17.1-disable-tests.patch"))))
        ("druntime-src"
         ,(origin
            (method url-fetch)
@@ -148,7 +152,7 @@ and freshness without requiring additional information from the user.")
                  version ".tar.gz"))
            (sha256
             (base32
-             "0z4mkyddx6c4sy1vqgqvavz55083dsxws681qkh93jh1rpby9yg6"))))
+             "129j7mfd0vnzaw7i6hr5waxm5cb0qcm8gyawy2xy5avlv8hrw5m4"))))
        ("dmd-testsuite-src"
         ,(origin
            (method url-fetch)
@@ -157,7 +161,7 @@ and freshness without requiring additional information from the user.")
                  version ".tar.gz"))
            (sha256
             (base32
-             "0yc6miidzgl9k33ygk7xcppmfd6kivqj02cvv4fmkbs3qz4yy3z1"))))))
+             "18h16lwwmr3k9dh7mcip17il72mz680wnygv9d0mdnivczn80zyv"))))))
     (home-page "http://wiki.dlang.org/LDC";)
     (synopsis "LLVM compiler for the D programming language")
     (description
diff --git a/gnu/packages/patches/ldc-0.17.1-disable-tests.patch b/gnu/packages/patches/ldc-0.17.1-disable-tests.patch
new file mode 100644
index 0000000..b213894
--- /dev/null
+++ b/gnu/packages/patches/ldc-0.17.1-disable-tests.patch
@@ -0,0 +1,86 @@
+Adapted from "ldc-disable-tests.patch" from Guix.
+diff -ru a/std/datetime.d b/std/datetime.d
+--- a/std/datetime.d	2016-08-02 23:56:13.969292202 +0200
++++ b/std/datetime.d	2016-08-02 23:57:39.078408313 +0200
+@@ -28080,9 +28080,6 @@
+         import std.algorithm : sort;
+         import std.range : retro;
+         import std.format : format;
+-
+-        name = strip(name);
+-
+         enforce(tzDatabaseDir.exists(), new DateTimeException(format("Directory %s does not exist.", tzDatabaseDir)));
+         enforce(tzDatabaseDir.isDir, new DateTimeException(format("%s is not a directory.", tzDatabaseDir)));
+ 
+@@ -28094,7 +28091,10 @@
+             immutable file = buildNormalizedPath(tzDatabaseDir, tzFilename);
+         }
+         else
+-            immutable file = buildNormalizedPath(tzDatabaseDir, name);
++        {
++            auto filename = "./" ~ strip(name); // make sure the prefix is not stripped
++            immutable file = buildNormalizedPath(tzDatabaseDir, filename);
++        }
+ 
+         enforce(file.exists(), new DateTimeException(format("File %s does not exist.", file)));
+         enforce(file.isFile, new DateTimeException(format("%s is not a file.", file)));
+diff -ru a/std/path.d b/std/path.d
+--- a/std/path.d	2016-08-02 23:56:03.781158908 +0200
++++ b/std/path.d	2016-08-02 23:54:06.111624406 +0200
+@@ -3724,8 +3724,8 @@
+         }
+         else
+         {
+-            assert(expandTilde("~root") == "/root", expandTilde("~root"));
+-            assert(expandTilde("~root/") == "/root/", expandTilde("~root/"));
++            //assert(expandTilde("~root") == "/root", expandTilde("~root"));
++            //assert(expandTilde("~root/") == "/root/", expandTilde("~root/"));
+         }
+         assert(expandTilde("~Idontexist/hey") == "~Idontexist/hey");
+     }
+diff -ru a/std/socket.d b/std/socket.d
+--- a/std/socket.d	2016-08-02 23:56:22.881408857 +0200
++++ b/std/socket.d	2016-08-03 10:09:44.761019447 +0200
+@@ -501,18 +501,19 @@
+ version(CRuntime_Bionic) {} else
+ unittest
+ {
+-    softUnittest({
++    pragma(msg, "test disabled on GNU Guix");
++    //softUnittest({
+         Protocol proto = new Protocol;
+-        assert(proto.getProtocolByType(ProtocolType.TCP));
++        //assert(proto.getProtocolByType(ProtocolType.TCP));
+         //writeln("About protocol TCP:");
+         //writefln("\tName: %s", proto.name);
+         // foreach(string s; proto.aliases)
+         // {
+         //      writefln("\tAlias: %s", s);
+         // }
+-        assert(proto.name == "tcp");
+-        assert(proto.aliases.length == 1 && proto.aliases[0] == "TCP");
+-    });
++        //assert(proto.name == "tcp");
++        //assert(proto.aliases.length == 1 && proto.aliases[0] == "TCP");
++    //});
+ }
+ 
+ 
+@@ -842,6 +843,8 @@
+ 
+ unittest
+ {
++    pragma(msg, "test disabled on GNU Guix");
++    /*
+     InternetHost ih = new InternetHost;
+ 
+     ih.getHostByAddr(0x7F_00_00_01);
+@@ -872,6 +875,7 @@
+         //      writefln("aliases[%d] = %s", i, s);
+         // }
+     });
++    */
+ }
+ 
+ 
+Only in b/std: socket.d.orig

Reply via email to