@@ -597,6 +597,7 @@ dist_patch_DATA = \
%D%/packages/patches/khmer-use-libraries.patch \
%D%/packages/patches/kmod-module-directory.patch \
%D%/packages/patches/ldc-disable-tests.patch \
+ %D%/packages/patches/ldc-0.17.1-disable-tests.patch \
%D%/packages/patches/lftp-dont-save-unknown-host-fingerprint.patch \
%D%/packages/patches/liba52-enable-pic.patch \
%D%/packages/patches/liba52-link-with-libm.patch \
@@ -29,7 +29,9 @@
#:use-module (gnu packages libedit)
#:use-module (gnu packages llvm)
#:use-module (gnu packages textutils)
- #:use-module (gnu packages zip))
+ #:use-module (gnu packages zip)
+ #:use-module (gnu packages python)
+ #:use-module (gnu packages compression))
(define-public rdmd
(let ((commit "da0a2e0a379b08294015eec9d531f1e5dd4226f0"))
@@ -75,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
@@ -84,7 +86,7 @@ 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"))
@@ -101,12 +103,6 @@ and freshness without requiring additional information from the user.")
(and (unpack "phobos-src" "runtime/phobos")
(unpack "druntime-src" "runtime/druntime")
(unpack "dmd-testsuite-src" "tests/d2/dmd-testsuite")))))
- (add-after 'unpack-submodule-sources 'patch-dmd2
- (lambda* (#:key inputs #:allow-other-keys)
- (substitute* "dmd2/root/port.c"
- ((" ::isnan") " isnan")
- ((" ::isinf") " isinf"))
- #t))
(add-after 'unpack-submodule-sources 'patch-phobos
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "runtime/phobos/std/process.d"
@@ -117,14 +113,25 @@ and freshness without requiring additional information from the user.")
(string-append (assoc-ref inputs "tzdata") "/share/zoneinfo")))
(substitute* "tests/d2/dmd-testsuite/Makefile"
(("/bin/bash") (which "bash")))
- #t)))))
+ #t))
+ (add-after 'unpack-submodule-sources 'patch-dmd2
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "dmd2/root/port.c"
+ ((" ::isnan") " isnan")
+ ((" ::isinf") " isinf"))
+ #t))
+ (add-before 'check 'prepare-unittests
+ (lambda* (#:key inputs #:allow-other-keys)
+ (zero? (system* "ctest" "--verbose" "-R" "build-phobos2-ldc-unittest")))))))
(inputs
`(("libconfig" ,libconfig)
("libedit" ,libedit)
- ("tzdata" ,tzdata)))
+ ("tzdata" ,tzdata)
+ ("zlib" ,zlib)))
(native-inputs
`(("llvm" ,llvm)
- ("clang" ,clang)
+ ("python-wrapper", python-wrapper) ; for tests
+ ("python-lit", python-lit) ; for tests
("unzip" ,unzip)
("phobos-src"
,(origin
@@ -134,8 +141,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)
@@ -144,7 +151,7 @@ and freshness without requiring additional information from the user.")
version ".tar.gz"))
(sha256
(base32
- "0z4mkyddx6c4sy1vqgqvavz55083dsxws681qkh93jh1rpby9yg6"))))
+ "129j7mfd0vnzaw7i6hr5waxm5cb0qcm8gyawy2xy5avlv8hrw5m4"))))
("dmd-testsuite-src"
,(origin
(method url-fetch)
@@ -153,7 +160,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
new file mode 100644
@@ -0,0 +1,84 @@
+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);
+ // }
+ });
++ */
+ }
+
+