on iko/ghcjs-patch-master help sign in
minor fixes
6d673b0Moritz Angermann
compat/cabal-licenses.nix+6
@@ -2,4 +2,10 @@ stdenv: with stdenv.lib.licenses;
2{ BSD-3-Clause = bsd3;
2{ BSD-3-Clause = bsd3;
3 BSD-2-Clause = bsd2;
3 BSD-2-Clause = bsd2;
4 MIT = mit;
4 MIT = mit;
5+ ISC = isc;
6+ "LGPL-3.0-only" = lgpl3;
7+ # Generic
8+ LicenseRef-LGPL = "LGPL";
9+ LicenseRef-PublicDomain = publicDomain;
10+ LicenseRef-OtherLicense = null;
5}
11}
compat/cabal-os-arch-comp.nix+4−4
@@ -19,10 +19,10 @@
19 # OSs
19 # OSs
20 isLinux = false;
20 isLinux = false;
21 isWindows = false;
21 isWindows = false;
22− isOSX = false;
22+ isOsx = false;
23− isFreeBSD = false;
23+ isFreebsd = false;
24− isOpenBSD = false;
24+ isOpenbsd = false;
25− isNetBSD = false;
25+ isNetbsd = false;
26 isDragonFly = false;
26 isDragonFly = false;
27 isSolaris = false;
27 isSolaris = false;
28 isAIX = false;
28 isAIX = false;
compat/driver.nix+16−3
@@ -1,6 +1,6 @@
1−{ cabalexpr, pkgs, compiler ? "Ghc", os ? "OSX", arch ? "X86_64" }:
1+{ cabalexpr, pkgs, compiler ? "Ghc", version, os ? "Osx", arch ? "X86_64" }:
2assert (builtins.elem compiler ["Ghc" "Ghcjs" "Nhc" "Yhc" "Hugs" "Hbc" "Helium" "Jhc" "Lhc" "Uhc" "Eta"]);
2assert (builtins.elem compiler ["Ghc" "Ghcjs" "Nhc" "Yhc" "Hugs" "Hbc" "Helium" "Jhc" "Lhc" "Uhc" "Eta"]);
3−assert (builtins.elem os ["Linux" "Windows" "OSX" "FreeBSD" "OpenBSD" "NetBSD" "DragonFly" "Solaris" "AIX" "HPUX" "IRIX" "HaLVM" "Hurd" "IOS" "Android" "Ghcjs"]);
3+assert (builtins.elem os ["Linux" "Windows" "Osx" "FreeBSD" "OpenBSD" "NetBSD" "DragonFly" "Solaris" "AIX" "HPUX" "IRIX" "HaLVM" "Hurd" "IOS" "Android" "Ghcjs"]);
4assert (builtins.elem arch ["I386" "X86_64" "PPC" "PPC64" "Sparc" "Arm" "Aarch64" "Mips" "SH" "IA64" "S390" "Alpha" "Hppa" "Rs6000" "M68k" "Vax" "JavaScript"]);
4assert (builtins.elem arch ["I386" "X86_64" "PPC" "PPC64" "Sparc" "Arm" "Aarch64" "Mips" "SH" "IA64" "S390" "Alpha" "Hppa" "Rs6000" "M68k" "Vax" "JavaScript"]);
5
5
6with rec {
6with rec {
@@ -26,7 +26,16 @@ with rec {
26 # pkgconfig name -> nix package
26 # pkgconfig name -> nix package
27 pkgconfPkgs = { libpcre = pkgs.pcre; };
27 pkgconfPkgs = { libpcre = pkgs.pcre; };
28
28
29− compiler = cabal.compiler // { "is${compiler}" = true; };
29+ compiler = cabal.compiler // {
30+ "is${compiler}" = true;
31+ version = rec {
32+ eq = v: builtins.compareVersions version v == 0;
33+ lt = v: builtins.compareVersions version v == -1;
34+ gt = v: builtins.compareVersions version v == 1;
35+ le = v: eq v || lt v;
36+ ge = v: eq v || gt v;
37+ };
38+ };
30 system = cabal.os // { "is${os}" = true; }
39 system = cabal.os // { "is${os}" = true; }
31 // cabal.arch // { "is${arch}" = true; };
40 // cabal.arch // { "is${arch}" = true; };
32 }; in e;
41 }; in e;
@@ -50,10 +59,14 @@ in mkDerivation ({
50} // pkgs.lib.optionalAttrs (builtins.hasAttr pname expr.components) {
59} // pkgs.lib.optionalAttrs (builtins.hasAttr pname expr.components) {
51 libraryHaskellDepends = expr.components.${pname}.depends;
60 libraryHaskellDepends = expr.components.${pname}.depends;
52 libraryPkgconfigDepends = expr.components.${pname}.pkgconfig or [];
61 libraryPkgconfigDepends = expr.components.${pname}.pkgconfig or [];
62+ librarySystemDepends = expr.components.${pname}.libs or [];
63+ libraryToolDepends = expr.components.${pname}.build-tools or [];
53} // pkgs.lib.optionalAttrs (builtins.hasAttr "exes" expr.components) {
64} // pkgs.lib.optionalAttrs (builtins.hasAttr "exes" expr.components) {
54 executableHaskellDepends = collectAttr "depends" expr.components.exes;
65 executableHaskellDepends = collectAttr "depends" expr.components.exes;
55} // pkgs.lib.optionalAttrs (builtins.hasAttr "tests" expr.components) {
66} // pkgs.lib.optionalAttrs (builtins.hasAttr "tests" expr.components) {
56 testHaskellDepends = collectAttr "depends" expr.components.tests;
67 testHaskellDepends = collectAttr "depends" expr.components.tests;
57} // pkgs.lib.optionalAttrs (builtins.hasAttr "benchmarks" expr.components) {
68} // pkgs.lib.optionalAttrs (builtins.hasAttr "benchmarks" expr.components) {
58 benchmarkHaskellDepends = collectAttr "depends" expr.components.benchmarks;
69 benchmarkHaskellDepends = collectAttr "depends" expr.components.benchmarks;
70+} // pkgs.lib.optionalAttrs (builtins.hasAttr "src" expr) {
71+ inherit (expr) src;
59})
72})
compat/host-map.nix+5−5
@@ -1,12 +1,12 @@
1stdenv: with stdenv.hostPlatform; {
1stdenv: with stdenv.hostPlatform; {
2 os = if isLinux then "Linux" else
2 os = if isLinux then "Linux" else
3 if isWindows then "Windows" else
3 if isWindows then "Windows" else
4− if isMacOS then "OSX" else
4+ if isMacOS then "Osx" else
5− if isFreeBSD then "FreeBSD" else
5+ if isFreeBSD then "Freebsd" else
6− if isOpenBSD then "OpenBSD" else
6+ if isOpenBSD then "Openbsd" else
7− if isNetBSD then "NetBSD" else
7+ if isNetBSD then "Netbsd" else
8 if isHurd then "Hurd" else
8 if isHurd then "Hurd" else
9− if isiOS then "IOS" else
9+ if isiOS then "Ios" else
10 if isAndroid then "Android" else
10 if isAndroid then "Android" else
11 throw "Unknown OS";
11 throw "Unknown OS";
12 arch = if isx86 && is32bit then "I386" else
12 arch = if isx86 && is32bit then "I386" else