On Tue, Sep 13, 2016 at 10:01:39PM +0200, Danny Milosavljevic wrote: > 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 | 25 ++++--- > .../patches/ldc-0.17.1-disable-tests.patch | 86 ++++++++++++++++++++++ > 2 files changed, 101 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..88f3443 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 > @@ -105,10 +105,13 @@ and freshness without requiring additional information from the user.") > (add-after 'unpack-submodule-sources 'patch-dmd2 > (lambda* (#:key inputs #:allow-other-keys) > (substitute* "dmd2/root/port.c" > + (("#include ") "#include ") > ((" ::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 +133,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 +143,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 +153,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 +162,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 With this patch I got: The following tests FAILED: 238 - std.datetime (Failed) 296 - std.regex.internal.tests (Failed) 568 - std.datetime-debug (Failed) 626 - std.regex.internal.tests-debug (Failed) 670 - dmd-testsuite-debug (Failed) -- Efraim Flashner אפרים פלשנר GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 Confidentiality cannot be guaranteed on emails sent or received unencrypted