3
0
Fork 0
forked from mirrors/nixpkgs

Merge pull request #152988 from dukc/dmdLegacyFix

This commit is contained in:
Artturi 2022-05-23 21:17:47 +03:00 committed by GitHub
commit cf3cb4893f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 36 additions and 7 deletions

View file

@ -3429,6 +3429,12 @@
fingerprint = "389A 78CB CD88 5E0C 4701 DEB9 FD42 C7D0 D414 94C8";
}];
};
dukc = {
email = "ajieskola@gmail.com";
github = "dukc";
githubId = 24233408;
name = "Ate Eskola";
};
dump_stack = {
email = "root@dumpstack.io";
github = "jollheef";

View file

@ -60,24 +60,46 @@ stdenv.mkDerivation rec {
# Not using patches option to make it easy to patch, for example, dmd and
# Phobos at same time if that's required
patchPhase =
lib.optionalString (builtins.compareVersions version "2.092.1" <= 0) ''
# Migrates D1-style operator overloads in DMD source, to allow building with
# a newer DMD
lib.optionalString (lib.versionOlder version "2.088.0") ''
patch -p1 -F3 --directory=dmd -i ${(fetchpatch {
url = "https://github.com/dlang/dmd/commit/c4d33e5eb46c123761ac501e8c52f33850483a8a.patch";
sha256 = "0rhl9h3hsi6d0qrz24f4zx960cirad1h8mm383q6n21jzcw71cp5";
})}
''
# Fixes C++ tests that compiled on older C++ but not on the current one
+ lib.optionalString (lib.versionOlder version "2.092.2") ''
patch -p1 -F3 --directory=druntime -i ${(fetchpatch {
url = "https://github.com/dlang/druntime/commit/438990def7e377ca1f87b6d28246673bb38022ab.patch";
sha256 = "0nxzkrd1rzj44l83j7jj90yz2cv01na8vn9d116ijnm85jl007b4";
})}
''
+ postPatch;
'' + postPatch;
postPatch =
''
patchShebangs .
''
'' + lib.optionalString (version == "2.092.1") ''
# This one has tested against a hardcoded year, then against a current year on
# and off again. It just isn't worth it to patch all the historical versions
# of it, so just remove it until the most recent change.
+ lib.optionalString (lib.versionOlder version "2.091.0") ''
rm dmd/test/compilable/ddocYear.d
''
+ lib.optionalString (version == "2.092.1") ''
rm dmd/test/dshell/test6952.d
'' + lib.optionalString (builtins.compareVersions "2.092.1" version < 0) ''
'' + lib.optionalString (lib.versionAtLeast version "2.092.2") ''
substituteInPlace dmd/test/dshell/test6952.d --replace "/usr/bin/env bash" "${bash}/bin/bash"
''
'' + ''
+ ''
rm dmd/test/runnable/gdb1.d
rm dmd/test/runnable/gdb10311.d
rm dmd/test/runnable/gdb14225.d
@ -87,8 +109,9 @@ stdenv.mkDerivation rec {
rm dmd/test/runnable/gdb15729.sh
rm dmd/test/runnable/gdb4149.d
rm dmd/test/runnable/gdb4181.d
''
'' + lib.optionalString stdenv.isLinux ''
+ lib.optionalString stdenv.isLinux ''
substituteInPlace phobos/std/socket.d --replace "assert(ih.addrList[0] == 0x7F_00_00_01);" ""
'' + lib.optionalString stdenv.isDarwin ''
substituteInPlace phobos/std/socket.d --replace "foreach (name; names)" "names = []; foreach (name; names)"
@ -178,7 +201,7 @@ stdenv.mkDerivation rec {
# Everything is now Boost licensed, even the backend.
# https://github.com/dlang/dmd/pull/6680
license = licenses.boost;
maintainers = with maintainers; [ ThomasMader lionello ];
maintainers = with maintainers; [ ThomasMader lionello dukc ];
platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" ];
};
}