Merge remote-tracking branch 'origin/master' into gcc-cross

This commit is contained in:
Matthew Bauer
2020-08-26 16:10:02 -05:00
15353 changed files with 298401 additions and 154784 deletions
+3 -3
View File
@@ -1,11 +1,11 @@
{stdenv, fetchurl, ant, jre, jdk}:
stdenv.mkDerivation rec {
pname = "abcl";
version = "1.6.0";
version = "1.7.1";
# or fetchFromGitHub(owner,repo,rev) or fetchgit(rev)
src = fetchurl {
url = "https://common-lisp.net/project/armedbear/releases/${version}/${pname}-src-${version}.tar.gz";
sha256 = "0hvbcsffr8n2xwdixc8wyw1bfl9fxn2gyy0c4nma7j9zbn0wwgw9";
sha256 = "09wjcjvriagml740krg9nva5v6bsc3sav86dmb55pjvfpsr1846m";
};
configurePhase = ''
mkdir nix-tools
@@ -34,6 +34,6 @@ stdenv.mkDerivation rec {
license = stdenv.lib.licenses.gpl3 ;
maintainers = [stdenv.lib.maintainers.raskin];
platforms = stdenv.lib.platforms.linux;
homepage = https://common-lisp.net/project/armedbear/;
homepage = "https://common-lisp.net/project/armedbear/";
};
}
@@ -0,0 +1,29 @@
{ stdenv, fetchsvn }:
stdenv.mkDerivation rec {
pname = "acme";
version = "120";
src = fetchsvn {
url = "svn://svn.code.sf.net/p/acme-crossass/code-0/trunk";
rev = version;
sha256 = "0w17b8f8bis22m6l5bg8qg8nniy20f8yg2xmzjipblmc39vpv6s2";
};
sourceRoot = "code-0-r${src.rev}/src";
makeFlags = [ "BINDIR=$(out)/bin" ];
postPatch = ''
substituteInPlace Makefile \
--replace "= gcc" "?= gcc"
'';
meta = with stdenv.lib; {
description = "A multi-platform cross assembler for 6502/6510/65816 CPUs.";
homepage = "https://sourceforge.net/projects/acme-crossass/";
license = licenses.gpl2Plus;
platforms = platforms.all;
maintainers = with maintainers; [ OPNA2608 ];
};
}
@@ -5,39 +5,45 @@
"hotspot": {
"aarch64": {
"build": "10",
"sha256": "04b77f6754aed68528f39750c5cfd6a439190206aff216aa081d62a0e1a794fa",
"url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.6%2B10/OpenJDK11U-jdk_aarch64_linux_hotspot_11.0.6_10.tar.gz",
"version": "11.0.6"
"sha256": "3b8b8bba6a0472ec7de5271cbf67f11e6ab525de6dd5d4729300375f1d56b7a1",
"url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7%2B10/OpenJDK11U-jdk_aarch64_linux_hotspot_11.0.7_10.tar.gz",
"version": "11.0.7"
},
"armv6l": {
"build": "10",
"sha256": "ab5b76203e54fe7a5221535f6f407efa43153de029a746f60af3cffb7cb5080b",
"url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.6%2B10/OpenJDK11U-jdk_arm_linux_hotspot_11.0.6_10.tar.gz",
"version": "11.0.6"
"sha256": "45c235af67498f87e3dc99642771e57547cf226335eaee8a55d195173e66a2e9",
"url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7%2B10/OpenJDK11U-jdk_arm_linux_hotspot_11.0.7_10.tar.gz",
"version": "11.0.7"
},
"armv7l": {
"build": "10",
"sha256": "ab5b76203e54fe7a5221535f6f407efa43153de029a746f60af3cffb7cb5080b",
"url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.6%2B10/OpenJDK11U-jdk_arm_linux_hotspot_11.0.6_10.tar.gz",
"version": "11.0.6"
"sha256": "45c235af67498f87e3dc99642771e57547cf226335eaee8a55d195173e66a2e9",
"url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7%2B10/OpenJDK11U-jdk_arm_linux_hotspot_11.0.7_10.tar.gz",
"version": "11.0.7"
},
"packageType": "jdk",
"vmType": "hotspot",
"x86_64": {
"build": "10",
"sha256": "330d19a2eaa07ed02757d7a785a77bab49f5ee710ea03b4ee2fa220ddd0feffc",
"url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.6%2B10/OpenJDK11U-jdk_x64_linux_hotspot_11.0.6_10.tar.gz",
"version": "11.0.6"
"sha256": "ee60304d782c9d5654bf1a6b3f38c683921c1711045e1db94525a51b7024a2ca",
"url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7%2B10/OpenJDK11U-jdk_x64_linux_hotspot_11.0.7_10.tar.gz",
"version": "11.0.7"
}
},
"openj9": {
"aarch64": {
"build": "10",
"sha256": "0be01fdcae330e26c489d8d0d0c98c535a2af8cbd0cdcda211776ab9fcd05086",
"url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7%2B10_openj9-0.20.0/OpenJDK11U-jdk_aarch64_linux_openj9_11.0.7_10_openj9-0.20.0.tar.gz",
"version": "11.0.7"
},
"packageType": "jdk",
"vmType": "openj9",
"x86_64": {
"build": "10",
"sha256": "1530172ee98edd129954fcdca1bf725f7b30c8bfc3cdc381c88de96b7d19e690",
"url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.6%2B10_openj9-0.18.1/OpenJDK11U-jdk_x64_linux_openj9_11.0.6_10_openj9-0.18.1.tar.gz",
"version": "11.0.6"
"sha256": "526e89f3014fec473b24c10c2464c1343e23703114983fd171b68b1599bba561",
"url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7%2B10_openj9-0.20.0/OpenJDK11U-jdk_x64_linux_openj9_11.0.7_10_openj9-0.20.0.tar.gz",
"version": "11.0.7"
}
}
},
@@ -45,27 +51,45 @@
"hotspot": {
"aarch64": {
"build": "10",
"sha256": "7ed04ed9ed7271528e7f03490f1fd7dfbbc2d391414bd6fe4dd80ec3bad76d30",
"url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.6%2B10/OpenJDK11U-jre_aarch64_linux_hotspot_11.0.6_10.tar.gz",
"version": "11.0.6"
"sha256": "cfe504e9e9621b831a5cfd800a2005dafe90a1d11aa14ee35d7b674d68685698",
"url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7%2B10/OpenJDK11U-jre_aarch64_linux_hotspot_11.0.7_10.tar.gz",
"version": "11.0.7"
},
"armv6l": {
"build": "10",
"sha256": "581bae8efcaa40e209a780baa6f96b7c8c9397965bc6d54533f4fd8599d5c742",
"url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7%2B10/OpenJDK11U-jre_arm_linux_hotspot_11.0.7_10.tar.gz",
"version": "11.0.7"
},
"armv7l": {
"build": "10",
"sha256": "581bae8efcaa40e209a780baa6f96b7c8c9397965bc6d54533f4fd8599d5c742",
"url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7%2B10/OpenJDK11U-jre_arm_linux_hotspot_11.0.7_10.tar.gz",
"version": "11.0.7"
},
"packageType": "jre",
"vmType": "hotspot",
"x86_64": {
"build": "10",
"sha256": "c5a4e69e2be0e3e5f5bb7c759960b20650967d0f571baad4a7f15b2c03bda352",
"url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.6%2B10/OpenJDK11U-jre_x64_linux_hotspot_11.0.6_10.tar.gz",
"version": "11.0.6"
"sha256": "74b493dd8a884dcbee29682ead51b182d9d3e52b40c3d4cbb3167c2fd0063503",
"url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7%2B10/OpenJDK11U-jre_x64_linux_hotspot_11.0.7_10.tar.gz",
"version": "11.0.7"
}
},
"openj9": {
"aarch64": {
"build": "10",
"sha256": "37ae26443abb02d2ab041eced9be948f0d20db03183aaf3c159ef682eeeabf9b",
"url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7%2B10_openj9-0.20.0/OpenJDK11U-jre_aarch64_linux_openj9_11.0.7_10_openj9-0.20.0.tar.gz",
"version": "11.0.7"
},
"packageType": "jre",
"vmType": "openj9",
"x86_64": {
"build": "10",
"sha256": "056e4b5f7166f5daa44f36b06c735913bda52831d2e77fa2ac371505c66d10c1",
"url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.6%2B10_openj9-0.18.1/OpenJDK11U-jre_x64_linux_openj9_11.0.6_10_openj9-0.18.1.tar.gz",
"version": "11.0.6"
"sha256": "08258a767a6953bde21d15ef3c08e776d83257afa4acc52b55c70e1ac02f0489",
"url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7%2B10_openj9-0.20.0/OpenJDK11U-jre_x64_linux_openj9_11.0.7_10_openj9-0.20.0.tar.gz",
"version": "11.0.7"
}
}
}
@@ -77,9 +101,9 @@
"vmType": "hotspot",
"x86_64": {
"build": "10",
"sha256": "b87102274d983bf6bb0aa6c2c623301d0ff5eb7f61043ffd04abb00f962c2dcd",
"url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.6%2B10/OpenJDK11U-jdk_x64_mac_hotspot_11.0.6_10.tar.gz",
"version": "11.0.6"
"sha256": "0ab1e15e8bd1916423960e91b932d2b17f4c15b02dbdf9fa30e9423280d9e5cc",
"url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7%2B10/OpenJDK11U-jdk_x64_mac_hotspot_11.0.7_10.tar.gz",
"version": "11.0.7"
}
},
"openj9": {
@@ -87,9 +111,9 @@
"vmType": "openj9",
"x86_64": {
"build": "10",
"sha256": "9a5c5b3bb51a82e666c46b2d1bbafa8c2bbc3aae50194858c8f96c5d43a96f64",
"url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.6%2B10_openj9-0.18.1/OpenJDK11U-jdk_x64_mac_openj9_11.0.6_10_openj9-0.18.1.tar.gz",
"version": "11.0.6"
"sha256": "a0de749c37802cc233ac58ffde68191a4dc985c71b626e7c0ff53944f743427f",
"url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7%2B10.2_openj9-0.20.0/OpenJDK11U-jdk_x64_mac_openj9_11.0.7_10_openj9-0.20.0.tar.gz",
"version": "11.0.7"
}
}
},
@@ -99,9 +123,9 @@
"vmType": "hotspot",
"x86_64": {
"build": "10",
"sha256": "ab3c2038a32c62843500109d2efb8f5dacdfa1de3cbb713c8226f26dc603cc33",
"url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.6%2B10/OpenJDK11U-jre_x64_mac_hotspot_11.0.6_10.tar.gz",
"version": "11.0.6"
"sha256": "931a81f4bed38c48b364db57d4ebdd6e4b4ea1466e9bd0eaf8e0f1e47c4569e9",
"url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7%2B10/OpenJDK11U-jre_x64_mac_hotspot_11.0.7_10.tar.gz",
"version": "11.0.7"
}
},
"openj9": {
@@ -109,9 +133,9 @@
"vmType": "openj9",
"x86_64": {
"build": "10",
"sha256": "130850133d9701393352c2ce13ab541b4f900ff1f5ddf8257cda624968aada9f",
"url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.6%2B10_openj9-0.18.1/OpenJDK11U-jre_x64_mac_openj9_11.0.6_10_openj9-0.18.1.tar.gz",
"version": "11.0.6"
"sha256": "0941d739e3230d1d83dc1ee54cff6d17d90331e4f275d00739cb78fba41c5b96",
"url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7%2B10.2_openj9-0.20.0/OpenJDK11U-jre_x64_mac_openj9_11.0.7_10_openj9-0.20.0.tar.gz",
"version": "11.0.7"
}
}
}
@@ -122,68 +146,68 @@
"jdk": {
"hotspot": {
"aarch64": {
"build": "33",
"sha256": "74f4110333ac4239564ed864b1d7d69b7af32af39efcfbde9816e1486cb5ae07",
"url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13%2B33/OpenJDK13U-jdk_aarch64_linux_hotspot_13_33.tar.gz",
"version": "13.0.0"
"build": "8",
"sha256": "0e6081cb51f8a6f3062bef4f4c45dbe1fccfd3f3b4b5d52522a3edb76581e3af",
"url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13.0.2%2B8/OpenJDK13U-jdk_aarch64_linux_hotspot_13.0.2_8.tar.gz",
"version": "13.0.2"
},
"armv6l": {
"build": "33",
"sha256": "477e1b8d26a220d6d570765e9e0a4a34dbb489fab63a420d0859d173efc59adb",
"url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13%2B33/OpenJDK13U-jdk_arm_linux_hotspot_13_33.tar.gz",
"version": "13.0.0"
"build": "8",
"sha256": "9beec080f2b2a7f6883b024272f4e8d5a0b027325e83647be318215781af1d1a",
"url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13.0.2%2B8/OpenJDK13U-jdk_arm_linux_hotspot_13.0.2_8.tar.gz",
"version": "13.0.2"
},
"armv7l": {
"build": "33",
"sha256": "477e1b8d26a220d6d570765e9e0a4a34dbb489fab63a420d0859d173efc59adb",
"url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13%2B33/OpenJDK13U-jdk_arm_linux_hotspot_13_33.tar.gz",
"version": "13.0.0"
"build": "8",
"sha256": "9beec080f2b2a7f6883b024272f4e8d5a0b027325e83647be318215781af1d1a",
"url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13.0.2%2B8/OpenJDK13U-jdk_arm_linux_hotspot_13.0.2_8.tar.gz",
"version": "13.0.2"
},
"packageType": "jdk",
"vmType": "hotspot",
"x86_64": {
"build": "33",
"sha256": "e562caeffa89c834a69a44242d802eae3523875e427f07c05b1902c152638368",
"url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13%2B33/OpenJDK13U-jdk_x64_linux_hotspot_13_33.tar.gz",
"version": "13.0.0"
"build": "8",
"sha256": "9ccc063569f19899fd08e41466f8c4cd4e05058abdb5178fa374cb365dcf5998",
"url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13.0.2%2B8/OpenJDK13U-jdk_x64_linux_hotspot_13.0.2_8.tar.gz",
"version": "13.0.2"
}
},
"openj9": {
"packageType": "jdk",
"vmType": "openj9",
"x86_64": {
"build": "33",
"sha256": "68ebab0021c719694be8fc868478725a69c5c515cdb62e2933eefe87ba6437df",
"url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13%2B33_openj9-0.16.0/OpenJDK13U-jdk_x64_linux_openj9_13_33_openj9-0.16.0.tar.gz",
"version": "13.0.0"
"build": "8",
"sha256": "aeecf6d30d0c847db81d07793cf97e5dc44890c29366d7d9f8f9f397f6c52590",
"url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13.0.2%2B8_openj9-0.18.0/OpenJDK13U-jdk_x64_linux_openj9_13.0.2_8_openj9-0.18.0.tar.gz",
"version": "13.0.2"
}
}
},
"jre": {
"hotspot": {
"aarch64": {
"build": "33",
"sha256": "2365b7fbba8d9125fb091933aad9f38f8cc1fbb0217cdec9ec75d2000f6d451a",
"url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13%2B33/OpenJDK13U-jre_aarch64_linux_hotspot_13_33.tar.gz",
"version": "13.0.0"
"build": "8",
"sha256": "6c4b69d1609f4c65c576c80d6aa101de80048f8ce5566f890e8fff5349228bae",
"url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13.0.2%2B8/OpenJDK13U-jre_aarch64_linux_hotspot_13.0.2_8.tar.gz",
"version": "13.0.2"
},
"packageType": "jre",
"vmType": "hotspot",
"x86_64": {
"build": "33",
"sha256": "73800a0d7c4e81df408a8518d282aa2c001ce4ee15541574c639dfc3564f708f",
"url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13%2B33/OpenJDK13U-jre_x64_linux_hotspot_13_33.tar.gz",
"version": "13.0.0"
"build": "8",
"sha256": "897f16fe8e056395209e35d2384013bd1ff250e717465769079e3f4793628c34",
"url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13.0.2%2B8/OpenJDK13U-jre_x64_linux_hotspot_13.0.2_8.tar.gz",
"version": "13.0.2"
}
},
"openj9": {
"packageType": "jre",
"vmType": "openj9",
"x86_64": {
"build": "33",
"sha256": "2ee59be5062a81daa7be85be161cab6b245f9a2e2cbd4769ae9edefaac41e31d",
"url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13%2B33_openj9-0.16.0/OpenJDK13U-jre_x64_linux_openj9_13_33_openj9-0.16.0.tar.gz",
"version": "13.0.0"
"build": "8",
"sha256": "a0ab38607811e282f64082edc68a2dea3fa6a5113391efb124a6d7d02883110a",
"url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13.0.2%2B8_openj9-0.18.0/OpenJDK13U-jre_x64_linux_openj9_13.0.2_8_openj9-0.18.0.tar.gz",
"version": "13.0.2"
}
}
}
@@ -194,20 +218,20 @@
"packageType": "jdk",
"vmType": "hotspot",
"x86_64": {
"build": "33",
"sha256": "f948be96daba250b6695e22cb51372d2ba3060e4d778dd09c89548889783099f",
"url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13%2B33/OpenJDK13U-jdk_x64_mac_hotspot_13_33.tar.gz",
"version": "13.0.0"
"build": "8",
"sha256": "0ddb24efdf5aab541898d19b7667b149a1a64a8bd039b708fc58ee0284fa7e07",
"url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13.0.2%2B8/OpenJDK13U-jdk_x64_mac_hotspot_13.0.2_8.tar.gz",
"version": "13.0.2"
}
},
"openj9": {
"packageType": "jdk",
"vmType": "openj9",
"x86_64": {
"build": "33",
"sha256": "583e0defd5c062550896ead7cac383be16f1a81d9b6492dfec26da9af5dcc1c0",
"url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13%2B33_openj9-0.16.0/OpenJDK13U-jdk_x64_mac_openj9_13_33_openj9-0.16.0.tar.gz",
"version": "13.0.0"
"build": "8",
"sha256": "dd8d92eec98a3455ec5cd065a0a6672cc1aef280c6a68c507c372ccc1d98fbaa",
"url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13.0.2%2B8_openj9-0.18.0/OpenJDK13U-jdk_x64_mac_openj9_13.0.2_8_openj9-0.18.0.tar.gz",
"version": "13.0.2"
}
}
},
@@ -216,20 +240,20 @@
"packageType": "jre",
"vmType": "hotspot",
"x86_64": {
"build": "33",
"sha256": "1c23efba7908de9a611a98e755602f45381a8f7c957adb3fc4012ab1369a352c",
"url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13%2B33/OpenJDK13U-jre_x64_mac_hotspot_13_33.tar.gz",
"version": "13.0.0"
"build": "8",
"sha256": "3149b9ebf0db1eaf2dc152df9efae82003e7971efb1cf550060e6a4798fe8c5c",
"url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13.0.2%2B8/OpenJDK13U-jre_x64_mac_hotspot_13.0.2_8.tar.gz",
"version": "13.0.2"
}
},
"openj9": {
"packageType": "jre",
"vmType": "openj9",
"x86_64": {
"build": "33",
"sha256": "33a60b78138d50cb02325156c7d1fcf588697749a4401f6c11a3cbefa3033127",
"url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13%2B33_openj9-0.16.0/OpenJDK13U-jre_x64_mac_openj9_13_33_openj9-0.16.0.tar.gz",
"version": "13.0.0"
"build": "8",
"sha256": "6a8a636fca4c7e368241e232a37cd73c9867cdec8f0869fd158b1f58c6128cc2",
"url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13.0.2%2B8_openj9-0.18.0/OpenJDK13U-jre_x64_mac_openj9_13.0.2_8_openj9-0.18.0.tar.gz",
"version": "13.0.2"
}
}
}
@@ -241,51 +265,39 @@
"hotspot": {
"aarch64": {
"build": "9",
"sha256": "35799a2fd4b467115aff1bc3a54853b5131ba9068e53e1ab0fbe5521a3f2ba83",
"url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u232-b09/OpenJDK8U-jdk_aarch64_linux_hotspot_8u232b09.tar.gz",
"version": "8.0.232"
"sha256": "536bf397d98174b376da9ed49d2f659d65c7310318d8211444f4b7ba7c15e453",
"url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u252-b09/OpenJDK8U-jdk_aarch64_linux_hotspot_8u252b09.tar.gz",
"version": "8.0.252"
},
"armv6l": {
"build": "9",
"sha256": "fdd9f61f1b2df74242da54ee3b3231b0123782a917e9673351276da439c7cab1",
"url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u232-b09/OpenJDK8U-jdk_arm_linux_hotspot_8u232b09.tar.gz",
"version": "8.0.232"
"sha256": "5b401ad3c9b246281bd6df34b1abaf75e10e5cad9c6b26b55232b016e90e411a",
"url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u252-b09/OpenJDK8U-jdk_arm_linux_hotspot_8u252b09.tar.gz",
"version": "8.0.252"
},
"armv7l": {
"build": "9",
"sha256": "fdd9f61f1b2df74242da54ee3b3231b0123782a917e9673351276da439c7cab1",
"url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u232-b09/OpenJDK8U-jdk_arm_linux_hotspot_8u232b09.tar.gz",
"version": "8.0.232"
},
"armv6l": {
"build": "10",
"sha256": "7b3d6ade8c25adca01095ba66642132d8c87a1a8caf3883850e34778453afcec",
"url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u222-b10/OpenJDK8U-jdk_arm_linux_hotspot_8u222b10.tar.gz",
"version": "8.0.222"
},
"armv7l": {
"build": "10",
"sha256": "7b3d6ade8c25adca01095ba66642132d8c87a1a8caf3883850e34778453afcec",
"url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u222-b10/OpenJDK8U-jdk_arm_linux_hotspot_8u222b10.tar.gz",
"version": "8.0.222"
"sha256": "5b401ad3c9b246281bd6df34b1abaf75e10e5cad9c6b26b55232b016e90e411a",
"url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u252-b09/OpenJDK8U-jdk_arm_linux_hotspot_8u252b09.tar.gz",
"version": "8.0.252"
},
"packageType": "jdk",
"vmType": "hotspot",
"x86_64": {
"build": "8",
"sha256": "f39b523c724d0e0047d238eb2bb17a9565a60574cf651206c867ee5fc000ab43",
"url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u242-b08/OpenJDK8U-jdk_x64_linux_hotspot_8u242b08.tar.gz",
"version": "8.0.242"
"build": "9",
"sha256": "2b59b5282ff32bce7abba8ad6b9fde34c15a98f949ad8ae43e789bbd78fc8862",
"url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u252-b09/OpenJDK8U-jdk_x64_linux_hotspot_8u252b09.tar.gz",
"version": "8.0.252"
}
},
"openj9": {
"packageType": "jdk",
"vmType": "openj9",
"x86_64": {
"build": "8",
"sha256": "ca785af638b24f9d4df896f5a9f557cc9f1e5fa5e2b1174d6b906e3fd5474c2e",
"url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u242-b08_openj9-0.18.1/OpenJDK8U-jdk_x64_linux_openj9_8u242b08_openj9-0.18.1.tar.gz",
"version": "8.0.242"
"build": "9",
"sha256": "910ae847109a6dd1b6cf69baa7615ea2cce8cff787e5a9349a5331ce7604f3a5",
"url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u252-b09_openj9-0.20.0/OpenJDK8U-jdk_x64_linux_openj9_8u252b09_openj9-0.20.0.tar.gz",
"version": "8.0.252"
}
}
},
@@ -293,51 +305,39 @@
"hotspot": {
"aarch64": {
"build": "9",
"sha256": "4540db665260fdc84ae2f191e21beec9168a70a4227718bee5edd317707e2fda",
"url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u232-b09/OpenJDK8U-jre_aarch64_linux_hotspot_8u232b09.tar.gz",
"version": "8.0.232"
"sha256": "30bba4425497f5b4aabcba7b45db69d582d278fb17357d64c22c9dc6b2d29ca1",
"url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u252-b09/OpenJDK8U-jre_aarch64_linux_hotspot_8u252b09.tar.gz",
"version": "8.0.252"
},
"armv6l": {
"build": "9",
"sha256": "8ab786fc2fa0a282f5cf57f6040f1976c32c3c5e480e900ce5925de6543f6688",
"url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u232-b09/OpenJDK8U-jre_arm_linux_hotspot_8u232b09.tar.gz",
"version": "8.0.232"
"sha256": "107699a88f611e0c2d57816be25821ef9b17db860b14402c4e9e5bf0b9cf16fd",
"url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u252-b09/OpenJDK8U-jre_arm_linux_hotspot_8u252b09.tar.gz",
"version": "8.0.252"
},
"armv7l": {
"build": "9",
"sha256": "8ab786fc2fa0a282f5cf57f6040f1976c32c3c5e480e900ce5925de6543f6688",
"url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u232-b09/OpenJDK8U-jre_arm_linux_hotspot_8u232b09.tar.gz",
"version": "8.0.232"
},
"armv6l": {
"build": "10",
"sha256": "19de77b74812b90851816bdb991d6473488a10d3ac293c6accf46ae9b1f714a0",
"url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u222-b10/OpenJDK8U-jre_arm_linux_hotspot_8u222b10.tar.gz",
"version": "8.0.222"
},
"armv7l": {
"build": "10",
"sha256": "19de77b74812b90851816bdb991d6473488a10d3ac293c6accf46ae9b1f714a0",
"url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u222-b10/OpenJDK8U-jre_arm_linux_hotspot_8u222b10.tar.gz",
"version": "8.0.222"
"sha256": "107699a88f611e0c2d57816be25821ef9b17db860b14402c4e9e5bf0b9cf16fd",
"url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u252-b09/OpenJDK8U-jre_arm_linux_hotspot_8u252b09.tar.gz",
"version": "8.0.252"
},
"packageType": "jre",
"vmType": "hotspot",
"x86_64": {
"build": "8",
"sha256": "5edfaefdbb0469d8b24d61c8aef80c076611053b1738029c0232b9a632fe2708",
"url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u242-b08/OpenJDK8U-jre_x64_linux_hotspot_8u242b08.tar.gz",
"version": "8.0.242"
"build": "9",
"sha256": "a93be303ed62398dba9acb0376fb3caf8f488fcde80dc62d0a8e46256b3adfb1",
"url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u252-b09/OpenJDK8U-jre_x64_linux_hotspot_8u252b09.tar.gz",
"version": "8.0.252"
}
},
"openj9": {
"packageType": "jre",
"vmType": "openj9",
"x86_64": {
"build": "8",
"sha256": "985d3134b64c6196d4c9ddbc87af0c62b0e643cef71b29f3d25a8c7811811745",
"url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u242-b08_openj9-0.18.1/OpenJDK8U-jre_x64_linux_openj9_8u242b08_openj9-0.18.1.tar.gz",
"version": "8.0.242"
"build": "9",
"sha256": "5c0ab4691ff5f8e69bb14462f2afb8d73d751b01048eacf4b426ed6d6646dc63",
"url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u252-b09_openj9-0.20.0/OpenJDK8U-jre_x64_linux_openj9_8u252b09_openj9-0.20.0.tar.gz",
"version": "8.0.252"
}
}
}
@@ -348,20 +348,20 @@
"packageType": "jdk",
"vmType": "hotspot",
"x86_64": {
"build": "8",
"sha256": "06675b7d65bce0313ee1f2e888dd44267e8afeced75e0b39b5ad1f5fdff54e0b",
"url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u242-b08/OpenJDK8U-jdk_x64_mac_hotspot_8u242b08.tar.gz",
"version": "8.0.242"
"build": "9",
"sha256": "2caed3ec07d108bda613f9b4614b22a8bdd196ccf2a432a126161cd4077f07a5",
"url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u252-b09.1/OpenJDK8U-jdk_x64_mac_hotspot_8u252b09.tar.gz",
"version": "8.0.252"
}
},
"openj9": {
"packageType": "jdk",
"vmType": "openj9",
"x86_64": {
"build": "8",
"sha256": "665dc9c8239b7270b007ab9dd7522570e2686e327d89caf57a6aa6e5c6450078",
"url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u242-b08_openj9-0.18.1/OpenJDK8U-jdk_x64_mac_openj9_8u242b08_openj9-0.18.1.tar.gz",
"version": "8.0.242"
"build": "9",
"sha256": "f522061a23290bce3423e49025a95b6e78d6f30e2741817e83c8fdba4c0c4ae7",
"url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u252-b09.2_openj9-0.20.0/OpenJDK8U-jdk_x64_mac_openj9_8u252b09_openj9-0.20.0.tar.gz",
"version": "8.0.252"
}
}
},
@@ -370,23 +370,23 @@
"packageType": "jre",
"vmType": "hotspot",
"x86_64": {
"build": "8",
"sha256": "fae3777e3441dc7384c339a9054aa7efc40cd2c501625a535c2d4648367ccca3",
"url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u242-b08/OpenJDK8U-jre_x64_mac_hotspot_8u242b08.tar.gz",
"version": "8.0.242"
"build": "9",
"sha256": "f8206f0fef194c598de6b206a4773b2e517154913ea0e26c5726091562a034c8",
"url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u252-b09.1/OpenJDK8U-jre_x64_mac_hotspot_8u252b09.tar.gz",
"version": "8.0.252"
}
},
"openj9": {
"packageType": "jre",
"vmType": "openj9",
"x86_64": {
"build": "8",
"sha256": "d4a924558ddda0aed671a67f71714b71c25871a7659fd4c505851cf5ee866de5",
"url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u242-b08_openj9-0.18.1/OpenJDK8U-jre_x64_mac_openj9_8u242b08_openj9-0.18.1.tar.gz",
"version": "8.0.242"
"build": "9",
"sha256": "55cce54a39c5748360e2e3fe8edf04469b75a0783514853a5745463979b43c80",
"url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u252-b09.2_openj9-0.20.0/OpenJDK8U-jre_x64_mac_openj9_8u252b09_openj9-0.20.0.tar.gz",
"version": "8.0.252"
}
}
}
}
}
}
}
@@ -3,13 +3,13 @@
stdenv.mkDerivation rec {
pname = "adoptopenjdk-icedtea-web";
version = "1.8.3";
version = "1.8.4";
src = fetchFromGitHub {
owner = "AdoptOpenJDK";
repo = "IcedTea-Web";
rev = "icedtea-web-${version}";
sha256 = "0bm5k11i2vgb54ch1bawsmjbwnqnp04saadwm2f2mggmmdc6b1qq";
sha256 = "0pxijw9v5k4j840jczglx9qyfd57df390g5jdaz3qafblfg0k10n";
};
nativeBuildInputs = [ autoreconfHook pkgconfig bc ];
@@ -57,7 +57,7 @@ stdenv.mkDerivation rec {
programming language and an implementation of Java Web Start, originally
based on the NetX project.
'';
homepage = https://github.com/adoptopenjdk/icedtea-web;
homepage = "https://github.com/adoptopenjdk/icedtea-web";
platforms = stdenv.lib.platforms.linux;
};
}
+1 -1
View File
@@ -30,7 +30,7 @@ stdenv.mkDerivation {
meta = {
# Please become a maintainer to fix this package
broken = true;
homepage = http://www.aldor.org/;
homepage = "http://www.aldor.org/";
description = "Programming language with an expressive type system";
license = stdenv.lib.licenses.asl20;
@@ -1,4 +1,4 @@
{stdenv, gcc, glibc, fetchurl, fetchgit, libtool, autoconf, automake, file, gnumake, which, zsh, m4, pkgconfig, perl, gnome2, pango, sqlite, libxml2, zlib, gmp, smlnj }:
{stdenv, gcc, glibc, fetchurl, fetchgit, libtool, autoconf, automake, file, gnumake, which, zsh, m4, pkg-config, perl, gnome2, gtk2, pango, sqlite, libxml2, zlib, gmp, smlnj }:
stdenv.mkDerivation {
name = "aliceml-1.4-7d44dc8e";
@@ -11,16 +11,16 @@ stdenv.mkDerivation {
};
gecodeSrc = fetchurl {
url = http://www.gecode.org/download/gecode-1.3.1.tar.gz;
url = "http://www.gecode.org/download/gecode-1.3.1.tar.gz";
sha256 = "0mgc6llbq166jmlq3alvagqsg3730670zvbwwkdgsqklw70v9355";
};
buildInputs = [
stdenv gcc glibc
libtool gnumake autoconf automake
file which zsh m4 gnome2.gtk zlib gmp
file which zsh m4 gtk2 zlib gmp
gnome2.libgnomecanvas pango sqlite
libxml2 pkgconfig perl smlnj
libxml2 pkg-config perl smlnj
];
makePatch = ./make.patch;
@@ -49,7 +49,7 @@ stdenv.mkDerivation {
extended with rich support for concurrent, distributed, and constraint
programming.
'';
homepage = https://www.ps.uni-saarland.de/alice/;
homepage = "https://www.ps.uni-saarland.de/alice/";
license = stdenv.lib.licenses.mit;
maintainers = [ stdenv.lib.maintainers.doublec ];
broken = true;
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
is a textual bitstream representation for assembly by
the IceStorm [2] icepack command.
'';
homepage = https://github.com/cseed/arachne-pnr;
homepage = "https://github.com/cseed/arachne-pnr";
license = stdenv.lib.licenses.mit;
maintainers = with stdenv.lib.maintainers; [ shell thoughtpolice ];
platforms = stdenv.lib.platforms.linux;
@@ -1,40 +0,0 @@
{ stdenv, fetchpatch, fetchurl, yacc }:
let
version = "2.3.1";
in stdenv.mkDerivation {
pname = "as31";
inherit version;
src = fetchurl {
name = "as31-${version}.tar.gz"; # Nix doesn't like the colons in the URL
url = "http://wiki.erazor-zone.de/_media/wiki:projects:linux:as31:as31-${version}.tar.gz";
sha256 = "0mbk6z7z03xb0r0ccyzlgkjdjmdzknck4yxxmgr9k7v8f5c348fd";
};
buildInputs = [ yacc ];
patches = [
(fetchpatch {
name = "CVE-2012-0808.patch";
url = "https://bugs.debian.org/cgi-bin/bugreport.cgi?att=1;bug=655496;filename=as31-mkstemps.patch;msg=5";
sha256 = "0iia4wa8m141bwz4588yxb1dp2qwhapcii382sncm6jvwyngwh21";
})
];
preConfigure = ''
chmod +x ./configure
'';
postConfigure = ''
rm as31/parser.c
'';
meta = with stdenv.lib; {
homepage = http://wiki.erazor-zone.de/wiki:projects:linux:as31;
description = "An 8031/8051 assembler by Ken Stauffer and Theo Deraadt which produces a variety of object code output formats";
maintainers = with maintainers; [ aneeshusa ];
platforms = with platforms; unix;
};
}
+1 -1
View File
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
doCheck = true;
meta = with stdenv.lib; {
homepage = http://lionet.info/asn1c/compiler.html;
homepage = "http://lionet.info/asn1c/compiler.html";
description = "Open Source ASN.1 Compiler";
license = licenses.bsd2;
platforms = platforms.all;
@@ -1,19 +1,22 @@
{stdenv, fetchurl, jre}:
stdenv.mkDerivation rec {
name = "aspectj-1.5.2";
pname = "aspectj";
version = "1.9.6";
builder = ./builder.sh;
src = fetchurl {
url = "http://archive.eclipse.org/tools/aspectj/${name}.jar";
sha256 = "1b3mx248dc1xka1vgsl0jj4sm0nfjsqdcj9r9036mvixj1zj3nmh";
src = let
versionSnakeCase = builtins.replaceStrings ["."] ["_"] version;
in fetchurl {
url = "https://github.com/eclipse/org.aspectj/releases/download/V${versionSnakeCase}/aspectj-${version}.jar";
sha256 = "02jh66l3vw57k9a4dxlga3qh3487r36gyi6k2z2mmqxbpqajslja";
};
inherit jre;
buildInputs = [jre];
meta = {
homepage = http://www.eclipse.org/aspectj/;
homepage = "http://www.eclipse.org/aspectj/";
description = "A seamless aspect-oriented extension to the Java programming language";
platforms = stdenv.lib.platforms.unix;
license = stdenv.lib.licenses.epl10;
+1 -1
View File
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
to provide a useful subset of Javas features, suitable for
building self-contained applications.
'';
homepage = https://readytalk.github.io/avian/;
homepage = "https://readytalk.github.io/avian/";
license = stdenv.lib.licenses.isc;
platforms = stdenv.lib.platforms.all;
maintainers = [ stdenv.lib.maintainers.earldouglas ];
+1 -2
View File
@@ -21,9 +21,8 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
description = "Assembler for the Atmel AVR microcontroller family";
homepage = http://avra.sourceforge.net/;
homepage = "http://avra.sourceforge.net/";
license = licenses.gpl2Plus;
platforms = platforms.all;
maintainers = with maintainers; [ the-kenny ];
};
}
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
meta = {
description = "Efficient Scheme compiler";
homepage = http://www-sop.inria.fr/indes/fp/Bigloo/;
homepage = "http://www-sop.inria.fr/indes/fp/Bigloo/";
license = stdenv.lib.licenses.gpl2Plus;
platforms = stdenv.lib.platforms.unix;
maintainers = with stdenv.lib.maintainers; [ thoughtpolice ];
@@ -1,11 +1,11 @@
{ stdenv, cmake, python3, fetchFromGitHub, emscriptenRev ? null, substituteAll }:
let
defaultVersion = "91";
defaultVersion = "95";
# Map from git revs to SHA256 hashes
sha256s = {
version_91 = "1qsjqnzc5w9ny9v01bxkdvhh4kgbsia01x5vvac72m075v4mpgs4";
version_95 = "1w4js9bm5qv5aws8bzz4f0n3ni2l7h4fidkq9v5bldf0zxncy8m3";
"1.39.1" = "0ygm9m5322h4vfpf3j63q32qxk2l26yk62hh7dkb49j51zwl1y3y";
};
in
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ cmake python3 ];
meta = with stdenv.lib; {
homepage = https://github.com/WebAssembly/binaryen;
homepage = "https://github.com/WebAssembly/binaryen";
description = "Compiler infrastructure and toolchain library for WebAssembly, in C++";
platforms = platforms.all;
maintainers = with maintainers; [ asppsa ];
@@ -6,7 +6,6 @@
, fontconfig
, gmp
, gperf
, haskell
, libX11
, libpoly
, perl
@@ -14,16 +13,14 @@
, verilog
, xorg
, zlib
, ghc
}:
let
# yices wants a libgmp.a and fails otherwise
gmpStatic = gmp.override { withStatic = true; };
# Compiling PreludeBSV fails with more recent GHC versions
# > imperative statement (not BVI context)
# https://github.com/B-Lang-org/bsc/issues/20#issuecomment-583724030
ghcWithPackages = haskell.packages.ghc844.ghc.withPackages (g: (with g; [old-time regex-compat syb]));
ghcWithPackages = ghc.withPackages (g: (with g; [old-time regex-compat syb]));
in stdenv.mkDerivation rec {
pname = "bluespec";
version = "unstable-2020.02.09";
@@ -52,7 +52,7 @@ stdenv.mkDerivation rec {
installPhase = ''
mkdir -p $out/bin
cp -rf jscomp lib ${bin_folder} vendor odoc_gen native bsb bsc bsrefmt $out
mkdir $out/lib/ocaml
mkdir -p $out/lib/ocaml
cp jscomp/runtime/js.* jscomp/runtime/*.cm* $out/lib/ocaml
cp jscomp/others/*.ml jscomp/others/*.mli jscomp/others/*.cm* $out/lib/ocaml
cp jscomp/stdlib-406/*.ml jscomp/stdlib-406/*.mli jscomp/stdlib-406/*.cm* $out/lib/ocaml
@@ -4,20 +4,20 @@ let
in
(build-bs-platform rec {
inherit stdenv runCommand fetchFromGitHub ninja nodejs python3;
version = "7.2.0";
version = "7.3.2";
ocaml-version = "4.06.1";
src = fetchFromGitHub {
owner = "BuckleScript";
repo = "bucklescript";
rev = version;
sha256 = "1fsx7gvcp6rbqd0qf5fix02mbbmk9rgm09zbwjrx0lp5cjv3n2s4";
sha256 = "1nvp7wiiv149r4qf9bgc84bm4w7s44sjq9i7j103v24wllzz218s";
fetchSubmodules = true;
};
}).overrideAttrs (attrs: {
meta = with stdenv.lib; {
description = "A JavaScript backend for OCaml focused on smooth integration and clean generated code.";
homepage = https://bucklescript.github.io;
homepage = "https://bucklescript.github.io";
license = licenses.lgpl3;
maintainers = with maintainers; [ turbomack gamb anmonteiro ];
platforms = platforms.all;
+1 -1
View File
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
parallelism is fixed at program startup time, typically with a single
thread of execution per processor.
'';
homepage = https://upc.lbl.gov/;
homepage = "https://upc.lbl.gov/";
license = licenses.mit;
platforms = with platforms; [ linux ];
maintainers = with maintainers; [ zimbatm ];
+1 -1
View File
@@ -38,7 +38,7 @@ haskellPackages.mkDerivation rec {
'';
description = "A statically typed lisp, without a GC, for real-time applications";
homepage = https://github.com/carp-lang/Carp;
homepage = "https://github.com/carp-lang/Carp";
license = stdenv.lib.licenses.asl20;
maintainers = with stdenv.lib.maintainers; [ jluttine ];
+26 -8
View File
@@ -1,11 +1,11 @@
{ stdenv, fetchurl, bootstrap_cmds, coreutils, glibc, m4, runtimeShell }:
{ stdenv, fetchurl, runCommand, bootstrap_cmds, coreutils, glibc, m4, runtimeShell }:
let
options = rec {
/* TODO: there are also FreeBSD and Windows versions */
x86_64-linux = {
arch = "linuxx86";
sha256 = "0hs1f3z7crgzvinpj990kv9gvbsipxvcvwbmk54n51nasvc5025q";
sha256 = "0d5bsizgpw9hv0jfsf4bp5sf6kxh8f9hgzz9hsjzpfhs3npmmac4";
runtime = "lx86cl64";
kernel = "linuxx8664";
};
@@ -17,26 +17,44 @@ let
};
armv7l-linux = {
arch = "linuxarm";
sha256 = "0p0l1dzsygb6i1xxgbipjpxkn46xhq3jm41a34ga1qqp4x8lkr62";
sha256 = throw "ccl all-in-one linuxarm archive missing upstream";
runtime = "armcl";
kernel = "linuxarm";
};
x86_64-darwin = {
arch = "darwinx86";
sha256 = "5adbea3d8b4a2e29af30d141f781c6613844f468c0ccfa11bae908c3e9641939";
sha256 = "1l060719k8mjd70lfdnr0hkybk7v88zxvfrsp7ww50q808cjffqk";
runtime = "dx86cl64";
kernel = "darwinx8664";
};
armv6l-linux = armv7l-linux;
};
cfg = options.${stdenv.hostPlatform.system} or (throw "missing source url for platform ${stdenv.hostPlatform.system}");
# The 1.12 github release of CCL seems to be missing the usual
# ccl-1.12-linuxarm.tar.gz tarball, so we build it ourselves here
linuxarm-src = runCommand "ccl-1.12-linuxarm.tar.gz" {
outer = fetchurl {
url = "https://github.com/Clozure/ccl/archive/v1.12.tar.gz";
sha256 = "0lmxhll6zgni0l41h4kcf3khbih9r0f8xni6zcfvbi3dzfs0cjkp";
};
inner = fetchurl {
url = "https://github.com/Clozure/ccl/releases/download/v1.12/linuxarm.tar.gz";
sha256 = "0x4bjx6cxsjvxyagijhlvmc7jkyxifdvz5q5zvz37028va65243c";
};
} ''
tar xf $outer
tar xf $inner -C ccl
tar czf $out ccl
'';
in
stdenv.mkDerivation rec {
pname = "ccl";
version = "1.11.5";
version = "1.12";
src = fetchurl {
src = if cfg.arch == "linuxarm" then linuxarm-src else fetchurl {
url = "https://github.com/Clozure/ccl/releases/download/v${version}/ccl-${version}-${cfg.arch}.tar.gz";
sha256 = cfg.sha256;
};
@@ -85,9 +103,9 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
description = "Clozure Common Lisp";
homepage = https://ccl.clozure.com/;
homepage = "https://ccl.clozure.com/";
maintainers = with maintainers; [ raskin muflax tohl ];
platforms = attrNames options;
license = licenses.lgpl21;
license = licenses.asl20;
};
}
+1 -1
View File
@@ -67,7 +67,7 @@ stdenv.mkDerivation rec {
meta = {
description = "A powerful and incredibly fast R6RS Scheme compiler";
homepage = https://cisco.github.io/ChezScheme/;
homepage = "https://cisco.github.io/ChezScheme/";
license = stdenv.lib.licenses.asl20;
maintainers = with stdenv.lib.maintainers; [ thoughtpolice ];
platforms = stdenv.lib.platforms.unix;
@@ -61,9 +61,9 @@ stdenv.mkDerivation {
# TODO: Assert csi -R files -p '(pathname-file (repository-path))' == binaryVersion
meta = {
homepage = http://www.call-cc.org/;
homepage = "http://www.call-cc.org/";
license = stdenv.lib.licenses.bsd3;
maintainers = with stdenv.lib.maintainers; [ the-kenny corngood ];
maintainers = with stdenv.lib.maintainers; [ corngood ];
platforms = stdenv.lib.platforms.linux; # Maybe other non-darwin Unix
description = "A portable compiler for the Scheme programming language";
longDescription = ''
@@ -19,9 +19,9 @@ eggDerivation {
meta = {
description = "Generate nix-expression from CHICKEN scheme eggs";
homepage = https://github.com/the-kenny/egg2nix;
homepage = "https://github.com/the-kenny/egg2nix";
license = stdenv.lib.licenses.bsd3;
platforms = stdenv.lib.platforms.unix;
maintainers = with stdenv.lib.maintainers; [ the-kenny corngood ];
maintainers = with stdenv.lib.maintainers; [ corngood ];
};
}
@@ -43,9 +43,9 @@ stdenv.mkDerivation {
# TODO: Assert csi -R files -p '(pathname-file (repository-path))' == binaryVersion
meta = {
homepage = http://www.call-cc.org/;
homepage = "http://www.call-cc.org/";
license = stdenv.lib.licenses.bsd3;
maintainers = with stdenv.lib.maintainers; [ the-kenny corngood ];
maintainers = with stdenv.lib.maintainers; [ corngood ];
platforms = stdenv.lib.platforms.linux; # Maybe other non-darwin Unix
description = "A portable compiler for the Scheme programming language";
longDescription = ''
@@ -21,9 +21,9 @@ eggDerivation {
meta = {
description = "Generate nix-expression from CHICKEN scheme eggs";
homepage = https://github.com/the-kenny/egg2nix;
homepage = "https://github.com/the-kenny/egg2nix";
license = stdenv.lib.licenses.bsd3;
platforms = stdenv.lib.platforms.unix;
maintainers = with stdenv.lib.maintainers; [ the-kenny corngood ];
maintainers = with stdenv.lib.maintainers; [ corngood ];
};
}
@@ -0,0 +1,32 @@
{ stdenv, fetchFromGitHub }:
stdenv.mkDerivation rec {
pname = "ciao";
version = "1.19.0";
src = fetchFromGitHub {
owner = "ciao-lang";
repo = "ciao";
rev = "v${version}";
sha256 = "03qzcb4ivgkiwdpw7a94dn74xqyxjwz5ilrr53rcblsh5ng299jp";
};
configurePhase = ''
./ciao-boot.sh configure --instype=global --prefix=$prefix
'';
buildPhase = ''
./ciao-boot.sh build
'';
installPhase = ''
./ciao-boot.sh install
'';
meta = with stdenv.lib; {
homepage = "https://ciao-lang.org/";
description = "A general purpose, multi-paradigm programming language in the Prolog family";
license = licenses.lgpl21;
maintainers = with maintainers; [ suhr ];
platforms = platforms.unix;
};
}
+1 -1
View File
@@ -44,7 +44,7 @@ stdenv.mkDerivation {
and generic functions.
'';
homepage = http://wiki.clean.cs.ru.nl/Clean;
homepage = "http://wiki.clean.cs.ru.nl/Clean";
license = stdenv.lib.licenses.lgpl21;
maintainers = [ stdenv.lib.maintainers.kkallio ];
platforms = [ "i686-linux" "x86_64-linux" ];
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "closure-compiler";
version = "20200224";
version = "20200614";
src = fetchurl {
url = "https://dl.google.com/closure-compiler/compiler-${version}.tar.gz";
sha256 = "0qlnpnd64rrlyz7ybdnp7zk5ns2s0071zs1fcrcq9ba2lnhfbmmb";
sha256 = "0a54y2d9nfg60knfv34kf6sdsh065dzam86l3wprf8gvqffxxcli";
};
sourceRoot = ".";
@@ -35,7 +35,7 @@ stdenv.mkDerivation {
inference with Variational inference (ADVI) and penalized maximum
likelihood estimation with Optimization (L-BFGS).
'';
homepage = https://mc-stan.org/interfaces/cmdstan.html;
homepage = "https://mc-stan.org/interfaces/cmdstan.html";
license = stdenv.lib.licenses.bsd3;
platforms = stdenv.lib.platforms.all;
};
+1 -1
View File
@@ -37,7 +37,7 @@ stdenv.mkDerivation {
ANSI Common Lisp standard.
'';
license = stdenv.lib.licenses.free; # public domain
homepage = http://www.cons.org/cmucl/;
homepage = "http://www.cons.org/cmucl/";
maintainers = [stdenv.lib.maintainers.tohl];
platforms = stdenv.lib.platforms.linux;
};
+1 -1
View File
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
description = "A programming language for the analysis and transformation of computer languages";
homepage = http://www.colm.net/open-source/colm;
homepage = "http://www.colm.net/open-source/colm";
license = licenses.gpl2;
platforms = platforms.unix;
maintainers = with maintainers; [ pSub ];
@@ -12,13 +12,13 @@ let
in
stdenv.mkDerivation rec {
pname = "compcert";
version = "3.6";
version = "3.7";
src = fetchFromGitHub {
owner = "AbsInt";
repo = "CompCert";
rev = "v${version}";
sha256 = "1k9xhj7fgllhf7bn7rp3w6zfvs4clglnc4w39zp4678hrwvdcpha";
sha256 = "1h4zhk9rrqki193nxs9vjvya7nl9yxjcf07hfqb6g77riy1vd2jr";
};
nativeBuildInputs = [ makeWrapper ];
@@ -10,11 +10,11 @@
stdenv.mkDerivation rec {
pname = "computecpp";
version = "1.2.0";
version = "1.3.0";
src = fetchzip {
url = "https://computecpp.codeplay.com/downloads/computecpp-ce/${version}/ubuntu-16.04-64bit.tar.gz";
sha256 = "191kwvzxfg1sbaq6aw6f84chi7bhsibb2a63zsyz3gz8m0c0syr5";
sha256 = "1q6gqjpzz4a260gsd6mm1iv4z8ar3vxaypmgdwl8pb4i7kg6ykaz";
stripRoot = true;
};
@@ -37,14 +37,12 @@ stdenv.mkDerivation rec {
passthru = {
isClang = true;
} // stdenv.lib.optionalAttrs (stdenv.targetPlatform.isLinux || (stdenv.cc.isGNU && stdenv.cc.cc ? gcc)) {
gcc = if stdenv.cc.isGNU then stdenv.cc.cc else stdenv.cc.cc.gcc;
};
meta = with stdenv.lib; {
description =
"Accelerate Complex C++ Applications on Heterogeneous Compute Systems using Open Standards";
homepage = https://www.codeplay.com/products/computesuite/computecpp;
homepage = "https://www.codeplay.com/products/computesuite/computecpp";
license = licenses.unfree;
maintainers = with maintainers; [ davidtwco ];
platforms = [ "x86_64-linux" ];
@@ -0,0 +1,32 @@
{ stdenv
, fetchurl
, libffi
}:
stdenv.mkDerivation rec {
pname = "copper";
version = "4.4";
src = fetchurl {
url = "https://tibleiz.net/download/copper-${version}-src.tar.gz";
sha256 = "1nf0bw143rjhd019yms3k6k531rahl8anidwh6bif0gm7cngfwfw";
};
buildInputs = [
libffi
];
postPatch = ''
substituteInPlace Makefile --replace "-s scripts/" "scripts/"
patchShebangs .
'';
buildPhase = ''
make BACKEND=elf64 boot-elf64
make BACKEND=elf64 COPPER=stage3/copper-elf64 copper-elf64
'';
installPhase = ''
make BACKEND=elf64 install prefix=$out
'';
meta = with stdenv.lib; {
description = "Simple imperative language, statically typed with type inference and genericity.";
homepage = "https://tibleiz.net/copper/";
license = licenses.bsd2;
platforms = platforms.x86_64;
};
}
@@ -3,7 +3,6 @@
, fetchpatch
, which
, cmake
, clang
, llvmPackages
, libunwind
, gettext
@@ -31,12 +30,12 @@ stdenv.mkDerivation rec {
patches = [
(fetchpatch {
# glibc 2.26
url = https://github.com/dotnet/coreclr/commit/a8f83b615708c529b112898e7d2fbc3f618b26ee.patch;
url = "https://github.com/dotnet/coreclr/commit/a8f83b615708c529b112898e7d2fbc3f618b26ee.patch";
sha256 = "047ph5gip4z2h7liwdxsmpnlaq0sd3hliaw4nyqjp647m80g3ffq";
})
(fetchpatch {
# clang 5
url = https://github.com/dotnet/coreclr/commit/9b22e1a767dee38f351001c5601f56d78766a43e.patch;
url = "https://github.com/dotnet/coreclr/commit/9b22e1a767dee38f351001c5601f56d78766a43e.patch";
sha256 = "1w1lxw5ryvhq8m5m0kv880c4bh6y9xdgypkr76sqbh3v568yghzg";
})
];
@@ -44,7 +43,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [
which
cmake
clang
llvmPackages.clang
];
buildInputs = [
@@ -92,7 +91,7 @@ stdenv.mkDerivation rec {
'';
meta = with stdenv.lib; {
homepage = https://github.com/dotnet/core/;
homepage = "https://github.com/dotnet/core/";
description = ".NET is a general purpose development platform";
platforms = [ "x86_64-linux" ];
maintainers = with maintainers; [ kuznero ];
@@ -1,53 +1,109 @@
{ stdenv, lib, crystal, linkFarm, fetchFromGitHub }:
{ # Generate shards.nix with `nix-shell -p crystal2nix --run crystal2nix` in the projects root
shardsFile ? null
{ stdenv, lib, crystal, shards, git, pkgconfig, which, linkFarm, fetchFromGitHub, installShellFiles }:
{ # Some projects do not include a lock file, so you can pass one
lockFile ? null
# Generate shards.nix with `nix-shell -p crystal2nix --run crystal2nix` in the projects root
, shardsFile ? null
# We support different builders. To make things more straight forward, make it
# user selectable instead of trying to autodetect
, format ? "make"
, installManPages ? true
# Specify binaries to build in the form { foo.src = "src/foo.cr"; }
# The default `crystal build` options can be overridden with { foo.options = [ "--no-debug" ]; }
, crystalBinaries ? {}
, ...
}@args:
, crystalBinaries ? { }, ... }@args:
assert (builtins.elem format [ "make" "crystal" "shards" ]);
let
mkDerivationArgs = builtins.removeAttrs args [ "shardsFile" "crystalBinaries" ];
mkDerivationArgs = builtins.removeAttrs args [
"format"
"installManPages"
"lockFile"
"shardsFile"
"crystalBinaries"
];
crystalLib = linkFarm "crystal-lib" (lib.mapAttrsToList (name: value: {
inherit name;
path = fetchFromGitHub value;
}) (import shardsFile));
defaultOptions = [ "--release" "--progress" "--no-debug" "--verbose" ];
# we previously had --no-debug here but that is not recommended by upstream
defaultOptions = [ "--release" "--progress" "--verbose" ];
buildDirectly = shardsFile == null || crystalBinaries != { };
in stdenv.mkDerivation (mkDerivationArgs // {
configurePhase = args.configurePhase or ''
runHook preConfigure
${lib.optionalString (shardsFile != null) "ln -s ${crystalLib} lib"}
runHook postConfigure
configurePhase = args.configurePhase or lib.concatStringsSep "\n" ([
"runHook preConfigure"
] ++ lib.optional (lockFile != null) "ln -s ${lockFile} ./shard.lock"
++ lib.optional (shardsFile != null) "ln -s ${crystalLib} lib"
++ [ "runHook postConfigure "]);
CRFLAGS = lib.concatStringsSep " " defaultOptions;
PREFIX = placeholder "out";
buildInputs = args.buildInputs or [ ] ++ [ crystal ]
++ lib.optional (format != "crystal") shards;
nativeBuildInputs = args.nativeBuildInputs or [ ] ++ [ git installShellFiles pkgconfig which ];
buildPhase = args.buildPhase or (lib.concatStringsSep "\n" ([
"runHook preBuild"
] ++ lib.optional (format == "make")
''make ''${buildTargets:-build} $makeFlags''
++ lib.optionals (format == "crystal") (lib.mapAttrsToList (bin: attrs: ''
crystal ${lib.escapeShellArgs (["build" "-o" bin
(attrs.src or (throw "No source file for crystal binary ${bin} provided"))
] ++ (attrs.options or defaultOptions))}
'') crystalBinaries)
++ lib.optional (format == "shards")
"shards build --local --production ${lib.concatStringsSep " " defaultOptions}"
++ [ "runHook postBuild" ]));
installPhase = args.installPhase or (lib.concatStringsSep "\n" ([
"runHook preInstall"
] ++ lib.optional (format == "make")
''make ''${installTargets:-install} $installFlags''
++ lib.optionals (format == "crystal") (map (bin: ''
install -Dm555 ${lib.escapeShellArgs [ bin "${placeholder "out"}/bin/${bin}" ]}
'') (lib.attrNames crystalBinaries))
++ lib.optional (format == "shards")
''install -Dm555 bin/* -t $out/bin''
++ [
''
for f in README* *.md LICENSE; do
test -f $f && install -Dm444 $f -t $out/share/doc/${args.pname}
done
''
] ++ (lib.optional installManPages ''
if [ -d man ]; then
installManPage man/*.?
fi
'') ++ [
"runHook postInstall"
]));
doCheck = args.doCheck or true;
checkPhase = args.checkPhase or (lib.concatStringsSep "\n" ([
"runHook preCheck"
] ++ lib.optional (format == "make")
''make ''${checkTarget:-test} $checkFlags''
++ lib.optional (format != "make")
''crystal ''${checkTarget:-spec} $checkFlags''
++ [ "runHook postCheck" ]));
doInstallCheck = args.doInstallCheck or true;
installCheckPhase = args.installCheckPhase or ''
for f in $out/bin/*; do
$f --help
done
'';
buildInputs = args.buildInputs or [] ++ [ crystal ];
buildPhase = args.buildPhase or ''
runHook preBuild
${lib.concatStringsSep "\n" (lib.mapAttrsToList (bin: attrs: ''
crystal ${lib.escapeShellArgs ([
"build"
"-o" bin
(attrs.src or (throw "No source file for crystal binary ${bin} provided"))
] ++ attrs.options or defaultOptions)}
'') crystalBinaries)}
runHook postBuild
'';
installPhase = args.installPhase or ''
runHook preInstall
mkdir -p "$out/bin"
${lib.concatMapStringsSep "\n" (bin: ''
mv ${lib.escapeShellArgs [ bin "${placeholder "out"}/bin/${bin}" ]}
'') (lib.attrNames crystalBinaries)}
runHook postInstall
'';
meta = args.meta or {} // {
meta = args.meta or { } // {
platforms = args.meta.platforms or crystal.meta.platforms;
};
})
@@ -1,4 +1,5 @@
{ lib, crystal, nix-prefetch-git }:
crystal.buildCrystalPackage {
pname = "crystal2nix";
version = "unstable-2018-07-31";
@@ -6,11 +7,16 @@ crystal.buildCrystalPackage {
nixPrefetchGit = "${lib.getBin nix-prefetch-git}/bin/nix-prefetch-git";
unpackPhase = "substituteAll ${./crystal2nix.cr} crystal2nix.cr";
format = "crystal";
crystalBinaries.crystal2nix.src = "crystal2nix.cr";
# it will blow up without a shard.yml file
doInstallCheck = false;
meta = with lib; {
description = "Utility to convert Crystal's shard.lock files to a Nix file";
license = licenses.mit;
maintainers = [ maintainers.manveru ];
maintainers = with maintainers; [ manveru ];
};
}
+26 -55
View File
@@ -1,5 +1,5 @@
{ stdenv, lib, fetchFromGitHub, fetchurl, makeWrapper
, coreutils, git, gmp, nettools, openssl, readline, tzdata, libxml2, libyaml
, coreutils, git, gmp, hostname, openssl, readline, tzdata, libxml2, libyaml
, boehmgc, libatomic_ops, pcre, libevent, libiconv, llvm, clang, which, zlib, pkgconfig
, callPackage }:
@@ -62,9 +62,12 @@ let
substituteInPlace src/crystal/system/unix/time.cr \
--replace /usr/share/zoneinfo ${tzdata}/share/zoneinfo
ln -s spec/compiler spec/std
ln -sf spec/compiler spec/std
# Dirty fix for when no sandboxing is enabled
rm -rf /tmp/crystal
mkdir -p /tmp/crystal
mkdir /tmp/crystal
substituteInPlace spec/std/file_spec.cr \
--replace '/bin/ls' '${coreutils}/bin/ls' \
--replace '/usr/share' '/tmp/crystal' \
@@ -81,7 +84,7 @@ let
--replace '{% if flag?(:gnu) %}"listen: "{% else %}"bind: "{% end %}' '"bind: "'
substituteInPlace spec/std/system_spec.cr \
--replace '`hostname`' '`${nettools}/bin/hostname`'
--replace '`hostname`' '`${hostname}/bin/hostname`'
# See https://github.com/crystal-lang/crystal/pull/8640
substituteInPlace spec/std/http/cookie_spec.cr \
@@ -108,6 +111,8 @@ let
"all" "docs"
];
LLVM_CONFIG = "${llvm}/bin/llvm-config";
FLAGS = [
"--release"
"--single-module" # needed for deterministic builds
@@ -170,7 +175,7 @@ let
meta = with lib; {
description = "A compiled language with Ruby like syntax and type inference";
homepage = https://crystal-lang.org/;
homepage = "https://crystal-lang.org/";
license = licenses.asl20;
maintainers = with maintainers; [ manveru david50407 peterhoeg ];
platforms = builtins.attrNames archs;
@@ -178,33 +183,6 @@ let
}));
in rec {
binaryCrystal_0_27 = genericBinary {
version = "0.27.2";
sha256s = {
x86_64-linux = "05l5x7kx2acgnv42fj3rr17z73ix06zvi05h7d7vf3kw0izxrasm";
i686-linux = "1iwizkvn6pglc0azkyfhlmk9ap793krdgcnbihd1kvrvs4cz0mm9";
x86_64-darwin = "14c69ac2dmfwmb5q56ps3xyxxb0mrbc91ahk9h07c8fiqfii3k9g";
};
};
binaryCrystal_0_29 = genericBinary {
version = "0.29.0";
sha256s = {
x86_64-linux = "1wrk29sfx35akg7hxwpdiikvl18wd40gq1kwirw7x522hnq7vlna";
i686-linux = "1nx0piis2k3nn7kqiijqazzbvlaavhgvsln0l3dxmpfa4i4dz5h2";
x86_64-darwin = "1fd0fbyf05abivnp3igjlrm2axf65n2wdmg4aq6nqj60ipc01rvd";
};
};
binaryCrystal_0_30 = genericBinary {
version = "0.30.1";
sha256s = {
x86_64-linux = "1k2mb74jh3ns3m7y73j4wpf571sayn73zbn6d7q81d09r280zrma";
i686-linux = "0vsq1ayf922spydp2g2mmimc797jmm7nl5nljhfppcclrwygdyk2";
x86_64-darwin = "1p3s4lwdgykb7h7aysjhrs7vm0zhinzw5d7rfv6jsyin4j8yxhzz";
};
};
binaryCrystal_0_31 = genericBinary {
version = "0.31.1";
sha256s = {
@@ -214,32 +192,11 @@ in rec {
};
};
crystal_0_27 = generic {
version = "0.27.2";
sha256 = "0vxqnpqi85yh0167nrkbksxsni476iwbh6y3znbvbjbbfhsi3nsj";
doCheck = false; # about 20 tests out of more than 15000 are failing
binary = binaryCrystal_0_27;
};
crystal_0_29 = generic {
version = "0.29.0";
sha256 = "0v9l253b2x8yw6a43vvalywpwciwr094l3g5wakmndfrzak2s3zr";
doCheck = false; # 6 checks are failing now
binary = binaryCrystal_0_29;
};
crystal_0_30 = generic {
version = "0.30.1";
sha256 = "0fbk784zjflsl3hys5a1xmn8mda8kb2z7ql58wpyfavivswxanbs";
doCheck = false; # 6 checks are failing now
binary = binaryCrystal_0_29;
};
crystal_0_31 = generic {
version = "0.31.1";
sha256 = "1dswxa32w16gnc6yjym12xj7ibg0g6zk3ngvl76lwdjqb1h6lwz8";
doCheck = false; # 5 checks are failing now
binary = binaryCrystal_0_30;
binary = binaryCrystal_0_31;
};
crystal_0_32 = generic {
@@ -248,7 +205,21 @@ in rec {
binary = binaryCrystal_0_31;
};
crystal = crystal_0_32;
crystal_0_33 = generic {
version = "0.33.0";
sha256 = "1zg0qixcws81s083wrh54hp83ng2pa8iyyafaha55mzrh8293jbi";
binary = binaryCrystal_0_31;
doCheck = false; # 4 checks are failing now
};
crystal_0_34 = generic {
version = "0.34.0";
sha256 = "110lfpxk9jnqyznbfnilys65ixj5sdmy8pvvnlhqhc3ccvrlnmq4";
binary = crystal_0_33;
doCheck = false; # 4 checks are failing now
};
crystal = crystal_0_34;
crystal2nix = callPackage ./crystal2nix.nix {};
}
@@ -95,12 +95,33 @@ stdenv.mkDerivation rec {
cd ..
done
''}
${lib.optionalString (lib.versionAtLeast version "10.1") ''
${lib.optionalString (lib.versionAtLeast version "10.1" && lib.versionOlder version "11") ''
cd pkg/builds/cuda-toolkit
mv * $out/
''}
${lib.optionalString (lib.versionAtLeast version "11") ''
mkdir -p $out/bin $out/lib64 $out/include $out/doc
for dir in pkg/builds/* pkg/builds/cuda_nvcc/nvvm pkg/builds/cuda_cupti/extras/CUPTI; do
if [ -d $dir/bin ]; then
mv $dir/bin/* $out/bin
fi
if [ -d $dir/doc ]; then
(cd $dir/doc && find . -type d -exec mkdir -p $out/doc/\{} \;)
(cd $dir/doc && find . \( -type f -o -type l \) -exec mv \{} $out/doc/\{} \;)
fi
if [ -L $dir/include ] || [ -d $dir/include ]; then
(cd $dir/include && find . -type d -exec mkdir -p $out/include/\{} \;)
(cd $dir/include && find . \( -type f -o -type l \) -exec mv \{} $out/include/\{} \;)
fi
if [ -L $dir/lib64 ] || [ -d $dir/lib64 ]; then
(cd $dir/lib64 && find . -type d -exec mkdir -p $out/lib64/\{} \;)
(cd $dir/lib64 && find . \( -type f -o -type l \) -exec mv \{} $out/lib64/\{} \;)
fi
done
mv pkg/builds/cuda_nvcc/nvvm $out/nvvm
''}
rm $out/tools/CUDA_Occupancy_Calculator.xls # FIXME: why?
rm -f $out/tools/CUDA_Occupancy_Calculator.xls # FIXME: why?
${lib.optionalString (lib.versionOlder version "10.1") ''
# let's remove the 32-bit libraries, they confuse the lib64->lib mover
@@ -152,7 +173,7 @@ stdenv.mkDerivation rec {
'';
postInstall = ''
for b in nvvp nsight; do
for b in nvvp ${lib.optionalString (lib.versionOlder version "11") "nsight"}; do
wrapProgram "$out/bin/$b" \
--set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE"
done
@@ -4,6 +4,7 @@
, gcc48
, gcc6
, gcc7
, gcc9
}:
let
@@ -136,4 +137,14 @@ in rec {
};
cudatoolkit_10 = cudatoolkit_10_2;
cudatoolkit_11_0 = common {
version = "11.0.3";
url = "https://developer.download.nvidia.com/compute/cuda/11.0.3/local_installers/cuda_11.0.3_450.51.06_linux.run";
sha256 = "1h4c69nfrgm09jzv8xjnjcvpq8n4gnlii17v3wzqry5d13jc8ydh";
gcc = gcc9;
};
cudatoolkit_11 = cudatoolkit_11_0;
}
+1 -1
View File
@@ -37,7 +37,7 @@ in stdenv.mkDerivation {
Dale is a system (no GC) programming language that uses
S-expressions for syntax and supports syntactic macros.
'';
homepage = https://github.com/tomhrr/dale;
homepage = "https://github.com/tomhrr/dale";
license = licenses.bsd3;
maintainers = with maintainers; [ amiloradovsky ];
platforms = with platforms; [ "i686-linux" "x86_64-linux" ];
@@ -0,0 +1,34 @@
{ stdenv, fetchFromGitHub }:
stdenv.mkDerivation rec {
pname = "dasm";
version = "2.20.13";
src = fetchFromGitHub {
owner = "dasm-assembler";
repo = "dasm";
rev = version;
sha256 = "1nr4kvw42vyc6i4p1c06jlih11rhbjjxc27dc7cx5qj635xf4jcf";
};
configurePhase = false;
installPhase = ''
mkdir -p $out/bin
install bin/* $out/bin
'';
preCheck = ''
patchShebangs ./test/
'';
checkTarget = "test";
doCheck = true;
meta = with stdenv.lib; {
description = "Assembler for 6502 and other 8-bit microprocessors";
homepage = "https://dasm-assembler.github.io";
license = licenses.gpl2;
maintainers = [ maintainers.jwatt ];
platforms = platforms.all;
};
}
+1 -1
View File
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
meta = {
description = "Linux 8086 development environment";
homepage = http://v3.sk/~lkundrak/dev86/;
homepage = "http://v3.sk/~lkundrak/dev86/";
platforms = stdenv.lib.platforms.linux;
};
}
+52
View File
@@ -0,0 +1,52 @@
{ stdenv, fetchurl, curl, tzdata, autoPatchelfHook, fixDarwinDylibNames, glibc
, version, hashes }:
with stdenv;
let
OS = if hostPlatform.isDarwin then "osx" else hostPlatform.parsed.kernel.name;
MODEL = toString hostPlatform.parsed.cpu.bits;
in mkDerivation {
pname = "dmd-bootstrap";
inherit version;
src = fetchurl rec {
name = "dmd.${version}.${OS}.tar.xz";
url = "http://downloads.dlang.org/releases/2.x/${version}/${name}";
sha256 = hashes.${OS} or (throw "missing bootstrap sha256 for OS ${OS}");
};
dontConfigure = true;
dontBuild = true;
nativeBuildInputs = [ fixDarwinDylibNames autoPatchelfHook ];
propagatedBuildInputs = [ curl tzdata ] ++ lib.optional hostPlatform.isLinux glibc;
installPhase = ''
mkdir -p $out
# try to copy model-specific binaries into bin first
mv ${OS}/bin${MODEL} $out/bin || true
mv src license.txt ${OS}/* $out/
# move man into place
mkdir -p $out/share
mv man $out/share/
# move docs into place
mkdir -p $out/share/doc
mv html/d $out/share/doc/
# fix paths in dmd.conf (one level less)
substituteInPlace $out/bin/dmd.conf --replace "/../../" "/../"
'';
meta = with lib; {
inherit version;
description = "Digital Mars D Compiler Package";
# As of 2.075 all sources and binaries use the boost license
license = licenses.boost;
maintainers = [ maintainers.lionello ];
homepage = "https://dlang.org/";
platforms = [ "x86_64-darwin" "i686-linux" "x86_64-linux" ];
};
}
@@ -0,0 +1,9 @@
{ callPackage }:
callPackage ./binary.nix {
version = "2.090.1";
hashes = {
# Get these from `nix-prefetch-url http://downloads.dlang.org/releases/2.x/2.090.1/dmd.2.090.1.linux.tar.xz` etc..
osx = "0rbn7j4dr3q0y09fblpj999bi063pi4230rqd5xgd3gwxxa0cz7l";
linux = "1vk6lsvd6y7ccvffd23yial4ig90azaxf2rxc6yvidqd1qhan807";
};
}
+27 -14
View File
@@ -1,11 +1,13 @@
{ stdenv, lib, fetchFromGitHub
, makeWrapper, unzip, which, writeTextFile
, curl, tzdata, gdb, darwin, git
, targetPackages, ldc
, version ? "2.085.1"
, dmdSha256 ? "0ccidfcawrcwdpfjwjiln5xwr4ffp8i2hwx52p8zn3xmc5yxm660"
, druntimeSha256 ? "109f2glsqrlshk06761xlw4r5v22mivp873cq9g5gcax3g00k617"
, phobosSha256 ? "0giispqqx8j8xg6c0hm7nx77bcahiwic8rvf12sws3sv5pizv8pr"
, curl, tzdata, gdb, darwin, git, callPackage
, targetPackages, fetchpatch, bash
, dmdBootstrap ? callPackage ./bootstrap.nix { }
, HOST_DMD ? "${dmdBootstrap}/bin/dmd"
, version ? "2.091.1"
, dmdSha256 ? "0brz0n84jdkhr4sq4k91w48p739psbhbb1jk2pi9q60psmx353yr"
, druntimeSha256 ? "0smgpmfriffh110ksski1s5j921kmxbc2zjy0dyj9ksyrxbzklbl"
, phobosSha256 ? "1n00anajgibrfs1xzvrmag28hvbvkc0w1fwlimqbznvhf28rhrxs"
}:
let
@@ -51,7 +53,17 @@ stdenv.mkDerivation rec {
})
];
patchFlags = [ "--directory=dmd" "-p1" ];
patchFlags = [ "--directory=dmd" "-p1" "-F3" ];
patches = [
(fetchpatch {
url = "https://github.com/dlang/dmd/commit/4157298cf04f7aae9f701432afd1de7b7e05c30f.patch";
sha256 = "0v4xgqmrx5r8vbx5a4v88s0xnm23mam9nm99yfga7s2sxr0hi5p2";
})
(fetchpatch {
url = "https://github.com/dlang/dmd/commit/1b8a4c90b040bf2f0b68a2739de4991315580b13.patch";
sha256 = "1iih6aalv4fsw9mbrlrybhngkkchzzrzg7q8zl047w36c0x397cs";
})
];
sourceRoot = ".";
@@ -62,15 +74,17 @@ stdenv.mkDerivation rec {
patchShebangs .
'';
postPatch = stdenv.lib.optionalString stdenv.hostPlatform.isLinux ''
postPatch = ''
substituteInPlace dmd/test/dshell/test6952.d --replace "/usr/bin/env bash" "${bash}/bin/bash"
''
+ stdenv.lib.optionalString stdenv.hostPlatform.isLinux ''
substituteInPlace phobos/std/socket.d --replace "assert(ih.addrList[0] == 0x7F_00_00_01);" ""
''
+ stdenv.lib.optionalString stdenv.hostPlatform.isDarwin ''
substituteInPlace phobos/std/socket.d --replace "foreach (name; names)" "names = []; foreach (name; names)"
'';
nativeBuildInputs = [ ldc makeWrapper unzip which gdb git ]
nativeBuildInputs = [ makeWrapper unzip which gdb git ]
++ stdenv.lib.optional stdenv.hostPlatform.isDarwin (with darwin.apple_sdk.frameworks; [
Foundation
@@ -89,7 +103,7 @@ stdenv.mkDerivation rec {
# Buid and install are based on http://wiki.dlang.org/Building_DMD
buildPhase = ''
cd dmd
make -j$NIX_BUILD_CORES -f posix.mak INSTALL_DIR=$out BUILD=release ENABLE_RELEASE=1 PIC=1 HOST_DMD=ldmd2
make -j$NIX_BUILD_CORES -f posix.mak INSTALL_DIR=$out BUILD=release ENABLE_RELEASE=1 PIC=1 HOST_DMD=${HOST_DMD}
cd ../druntime
make -j$NIX_BUILD_CORES -f posix.mak BUILD=release ENABLE_RELEASE=1 PIC=1 INSTALL_DIR=$out DMD=${pathToDmd}
cd ../phobos
@@ -143,12 +157,11 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
description = "Official reference compiler for the D language";
homepage = http://dlang.org/;
homepage = "http://dlang.org/";
# Everything is now Boost licensed, even the backend.
# https://github.com/dlang/dmd/pull/6680
license = licenses.boost;
maintainers = with maintainers; [ ThomasMader ];
maintainers = with maintainers; [ ThomasMader lionello ];
platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" ];
};
}
@@ -0,0 +1,92 @@
{ type
, version
, sha512
}:
assert builtins.elem type [ "aspnetcore" "netcore" "sdk"];
{ stdenv
, fetchurl
, libunwind
, openssl
, icu
, libuuid
, zlib
, curl
}:
let
pname = if type == "aspnetcore" then
"aspnetcore-runtime"
else if type == "netcore" then
"dotnet-runtime"
else
"dotnet-sdk";
platform = if stdenv.isDarwin then "osx" else "linux";
suffix = {
x86_64-linux = "x64";
aarch64-linux = "arm64";
x86_64-darwin = "x64";
}."${stdenv.hostPlatform.system}" or (throw
"Unsupported system: ${stdenv.hostPlatform.system}");
urls = {
aspnetcore = "https://dotnetcli.azureedge.net/dotnet/aspnetcore/Runtime/${version}/${pname}-${version}-${platform}-${suffix}.tar.gz";
netcore = "https://dotnetcli.azureedge.net/dotnet/Runtime/${version}/${pname}-${version}-${platform}-${suffix}.tar.gz";
sdk = "https://dotnetcli.azureedge.net/dotnet/Sdk/${version}/${pname}-${version}-${platform}-${suffix}.tar.gz";
};
descriptions = {
aspnetcore = "ASP .NET Core runtime ${version}";
netcore = ".NET Core runtime ${version}";
sdk = ".NET SDK ${version}";
};
in stdenv.mkDerivation rec {
inherit pname version;
rpath = stdenv.lib.makeLibraryPath [
curl
icu
libunwind
libuuid
openssl
stdenv.cc.cc
zlib
];
src = fetchurl {
url = builtins.getAttr type urls;
sha512 = sha512."${stdenv.hostPlatform.system}" or (throw
"Missing hash for host system: ${stdenv.hostPlatform.system}");
};
sourceRoot = ".";
dontPatchELF = true;
noDumpEnvVars = true;
installPhase = ''
runHook preInstall
mkdir -p $out/bin
cp -r ./ $out
ln -s $out/dotnet $out/bin/dotnet
runHook postInstall
'';
postFixup = stdenv.lib.optionalString stdenv.isLinux ''
patchelf --set-interpreter "${stdenv.cc.bintools.dynamicLinker}" $out/dotnet
patchelf --set-rpath "${rpath}" $out/dotnet
find $out -type f -name "*.so" -exec patchelf --set-rpath '$ORIGIN:${rpath}' {} \;
find $out -type f -name "apphost" -exec patchelf --set-interpreter "${stdenv.cc.bintools.dynamicLinker}" --set-rpath '$ORIGIN:${rpath}' {} \;
'';
doInstallCheck = true;
installCheckPhase = ''
$out/bin/dotnet --info
'';
meta = with stdenv.lib; {
homepage = "https://dotnet.github.io/";
description = builtins.getAttr type descriptions;
platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" ];
maintainers = with maintainers; [ kuznero ];
license = licenses.mit;
};
}
@@ -1,68 +0,0 @@
{ type
, version
, sha512
}:
assert builtins.elem type [ "aspnetcore" "netcore" "sdk"];
{ stdenv
, fetchurl
, libunwind
, openssl
, icu
, libuuid
, zlib
, curl
}:
let pname = if type == "aspnetcore" then "aspnetcore-runtime" else if type == "netcore" then "dotnet-runtime" else "dotnet-sdk";
urls = {
aspnetcore = "https://dotnetcli.azureedge.net/dotnet/aspnetcore/Runtime/${version}/${pname}-${version}-linux-x64.tar.gz";
netcore = "https://dotnetcli.azureedge.net/dotnet/Runtime/${version}/${pname}-${version}-linux-x64.tar.gz";
sdk = "https://dotnetcli.azureedge.net/dotnet/Sdk/${version}/${pname}-${version}-linux-x64.tar.gz";
};
descriptions = {
aspnetcore = "ASP .NET Core runtime ${version}";
netcore = ".NET Core runtime ${version}";
sdk = ".NET SDK ${version}";
};
in stdenv.mkDerivation rec {
inherit pname version;
rpath = stdenv.lib.makeLibraryPath [ stdenv.cc.cc libunwind libuuid icu openssl zlib curl ];
src = fetchurl {
url = builtins.getAttr type urls;
inherit sha512;
};
sourceRoot = ".";
dontPatchELF = true;
noDumpEnvVars = true;
installPhase = ''
runHook preInstall
mkdir -p $out/bin
cp -r ./ $out
ln -s $out/dotnet $out/bin/dotnet
runHook postInstall
'';
postFixup = ''
patchelf --set-interpreter "${stdenv.cc.bintools.dynamicLinker}" $out/dotnet
patchelf --set-rpath "${rpath}" $out/dotnet
find $out -type f -name "*.so" -exec patchelf --set-rpath '$ORIGIN:${rpath}' {} \;
find $out -type f -name "apphost" -exec patchelf --set-interpreter "${stdenv.cc.bintools.dynamicLinker}" --set-rpath '$ORIGIN:${rpath}' {} \;
'';
doInstallCheck = true;
installCheckPhase = ''
$out/bin/dotnet --info
'';
meta = with stdenv.lib; {
homepage = https://dotnet.github.io/;
description = builtins.getAttr type descriptions;
platforms = [ "x86_64-linux" ];
maintainers = with maintainers; [ kuznero ];
license = licenses.mit;
};
}
+54 -17
View File
@@ -4,28 +4,41 @@ dotnetCombined = with dotnetCorePackages; combinePackages [ sdk_3_1 sdk_2_2 sdk_
*/
{ callPackage }:
let
buildDotnet = attrs: callPackage (import ./buildDotnet.nix attrs) {};
buildAspNetCore = attrs: buildDotnet (attrs // { type = "aspnetcore"; } );
buildNetCore = attrs: buildDotnet (attrs // { type = "netcore"; } );
buildNetCoreSdk = attrs: buildDotnet (attrs // { type = "sdk"; } );
in rec {
combinePackages = attrs: callPackage (import ./combinePackages.nix attrs) {};
buildDotnet = attrs: callPackage (import ./build-dotnet.nix attrs) {};
buildAspNetCore = attrs: buildDotnet (attrs // { type = "aspnetcore"; });
buildNetCore = attrs: buildDotnet (attrs // { type = "netcore"; });
buildNetCoreSdk = attrs: buildDotnet (attrs // { type = "sdk"; });
in
rec {
combinePackages = attrs: callPackage (import ./combine-packages.nix attrs) {};
# v2.1.15 (LTS)
aspnetcore_2_1 = buildAspNetCore {
version = "2.1.16";
sha512 = "0awdzi8dysbg8xcy4l8wx2sb8gaaklphmwv61qxh7dj6ih4nla34l02xdax1l8nw41znnnqzsa77avglnrz36pckm9mc52m7wc7877h";
sha512 = {
x86_64-linux = "0awdzi8dysbg8xcy4l8wx2sb8gaaklphmwv61qxh7dj6ih4nla34l02xdax1l8nw41znnnqzsa77avglnrz36pckm9mc52m7wc7877h";
aarch64-linux = null; # no aarch64 version of this package is available
x86_64-darwin = "1psqqpin4hipr2hzfp79712d6cag892jx4fx5001nlsynwrdq3vi4liakz4yz41rvk0jyd7f07z90wj97xlxyrqiqcc1fdbgn2q0px9";
};
};
netcore_2_1 = buildNetCore {
version = "2.1.16";
sha512 = "07vvmza32hsblpw4zpcksm2gicy4agh0d1fwradqj16y6xbh3frdp87mqgbj5m54mmyfp5bc8c46v1w6dfm1w3y80v2y46aynild45l";
sha512 = {
x86_64-linux = "07vvmza32hsblpw4zpcksm2gicy4agh0d1fwradqj16y6xbh3frdp87mqgbj5m54mmyfp5bc8c46v1w6dfm1w3y80v2y46aynild45l";
aarch64-linux = "27ab982vz9rn2vzpq68dqfzhryfixq3s0apx7vi0cwiray3scgfmf45fm7qj63k9mvaqnk5g69i339109yasw3q5vpvpyjc1ykbi710";
x86_64-darwin = "2pxqpcw3djr18m0y124fbd6pz4lb5brlgvpvd9pdirkpsar8dmipsrhxcsk0d902zyxzgj1ac1ygzxsz49xvrkmh6s1m3w5fk8fws2f";
};
};
sdk_2_1 = buildNetCoreSdk {
version = "2.1.804";
sha512 = "1kbzxcdgyvs94kkm6ikr1j0p0k3zq30d10sl69ig0rgbqbqm4rpqi6dq94jjbw7q3jlwz83vgq3549q38d2s9kalmzv9lmddn2kkc42";
sha512 = {
x86_64-linux = "1kbzxcdgyvs94kkm6ikr1j0p0k3zq30d10sl69ig0rgbqbqm4rpqi6dq94jjbw7q3jlwz83vgq3549q38d2s9kalmzv9lmddn2kkc42";
aarch64-linux = "2d97xvhxnkdgghqlichkwdxxh641dzkd9hq5xgffgvbqv1qsh31k9yib2q1nsarpnbx0d758bdn2jm2wvsj7nx0gpxlb3nab0b3hc2g";
x86_64-darwin = "0fjn18vizgfdbziklhgppnvka5iw2hb4pfi6047i46il8ydb6z1m40cflq436sdf07sivi0mnldg9247qvqrl6f078w3fwnh3bwlac8";
};
};
# v2.2
@@ -36,33 +49,57 @@ in rec {
aspnetcore_3_0 = buildAspNetCore {
version = "3.0.3";
sha512 = "342v6kxxbxky09d1c392vvr9rm30lf75wccka1bk2h4advlcga5nlgv93g7vrq48bsyxfi5gc36r3b0dlwl1g409g5mlk1042n6d0yq";
sha512 = {
x86_64-linux = "342v6kxxbxky09d1c392vvr9rm30lf75wccka1bk2h4advlcga5nlgv93g7vrq48bsyxfi5gc36r3b0dlwl1g409g5mlk1042n6d0yq";
aarch64-linux = "2xkg4q88q5jw6jdz6cxj8vsjr475nd0fcvifkv1shdm2j9dsjy233hwpxbr140m5n5ggyh6z99238z9j4kp2az977y8y8irz8m8ppvf";
x86_64-darwin = "2p04j6p4j93pan71ih13hv57zxalcirh0n3vfjq0cfb80pbhf1f5cgxl24pw6kifh6hhh38rj62c4mr69lxzlqc8sfcfaws8dyz2avm";
};
};
netcore_3_0 = buildNetCore {
version = "3.0.3";
sha512 = "32ykpcw2xx708r2lxcwcbxnmy4sk159rlfjfvkw990qh7n79pm3lm2qwa3zhqcslznmpg18kwxz8qb5fgsa0h49g843xx4kyai0n7rx";
sha512 = {
x86_64-linux = "32ykpcw2xx708r2lxcwcbxnmy4sk159rlfjfvkw990qh7n79pm3lm2qwa3zhqcslznmpg18kwxz8qb5fgsa0h49g843xx4kyai0n7rx";
aarch64-linux = "1lp8din7d5jv5fkyq1a7m01i1xg9jwpiljvam1kcyzsnwzvi0cb4ji336cfx4lqrn95gvc75gkzi6q8b4fz0h21gvk6z6kmlcr63nyg";
x86_64-darwin = "0s20k7xawwd09xhy4xdcxp1rw6jd418ibrvhb509dnj480g48xryda2203g4mpswd24v2kx0n9qzxgbrbq9lvasfglkxi84bbqayp83";
};
};
sdk_3_0 = buildNetCoreSdk {
version = "3.0.103";
sha512 = "2diiplgxs92fkb6ym68b02d79z4qn63x5qlky5lvr757c1zkh0vfpk3khawdg94kdn4qkn6dmyqr0msxqgmiqyhp63cadzqq4vx7b12";
sha512 = {
x86_64-linux = "2diiplgxs92fkb6ym68b02d79z4qn63x5qlky5lvr757c1zkh0vfpk3khawdg94kdn4qkn6dmyqr0msxqgmiqyhp63cadzqq4vx7b12";
aarch64-linux = "32843q2lj7dgciq62g9v1q31vwfjyv5vaxrz712d942mcg5lyzjygwri106bv4naq3a22131ldzwnsifbdn2vq1iz60raqdb7ss9vnf";
x86_64-darwin = "3apswk2bhalgi0hm7h2j9p152jvp39h4xilxxzix5j1n36b442l1pwk7lj7019lxafjqkz5y850xkfcp14ks5wcvs33xs2c0aqwxvcn";
};
};
# v3.1.1 (LTS)
aspnetcore_3_1 = buildAspNetCore {
version = "3.1.2";
sha512 = "27708bk5liz8r39p4dzs41clgq298d49g8ipzdj56pz613vkfyv7bp91666ydz36aazm265j2g9ji3sk1f9kbgv6024zwrly5w9vqrm";
version = "3.1.5";
sha512 = {
x86_64-linux = "3ziyvm6llvhnjg8ayr4cfcabwkc46fqscgj12faavib34r5zx4mnv3qccqm3gg2r8jps60h42lvrwj3fliqmr0qqnhsw04819kqwai6";
aarch64-linux = "2nbhvh8dpg7dghcs6ysdg7mcc60hbk5d3zab0nnbqkib93fdhbzhzcra9qhh80h8x03zw0jsn3gzqx0d1z2vz5z3lsa14vmb86pzj4a";
x86_64-darwin = "1sfnp849vmsv8775fjsf9nzx28cmkvfgk8fa81h2l849z31ssaw9fn89kk0n83l0wrhr24ivmprfr11sp42gnjbncqfsnz4883lfchw";
};
};
netcore_3_1 = buildNetCore {
version = "3.1.2";
sha512 = "3zwg1anrcni9kagmjxn485bpjvb146hkm7irmikq3v879gjhd2fgpscg226ds83l4pxll3r7lwris6ij952xmy8lsqraapd9111ba14";
version = "3.1.5";
sha512 = {
x86_64-linux = "03g6aghbpsxj9csaq9lkc8cad1nk8kvlivkarq6bfqvx992fxw6zryp7kcm5h6a5gkgpimb1nr17vndj1r629hdhpincqj8yw6i33mq";
aarch64-linux = "25gwicmpzhzs96w3azypbl32bx967f14xkfdgvl7knw234rcmfv7zr0a7lb3vci68dbx4xywpnwlrvgi54mimzp8nagrgwva8zrrxzb";
x86_64-darwin = "2g28jmv1n7pgxfq4wk9x58y5dp835c7rckz6c88ylk7g9w6z75l94pblfl1rc7mr6g3wddiy5cl87a607j9g283hv28a4vcpvll8s7g";
};
};
sdk_3_1 = buildNetCoreSdk {
version = "3.1.102";
sha512 = "0lmz8ac5j0i4zcq4904kr6qibvyjcm2ckfg27kqyqfii00qmm80xb5sk3i7f06xqkbgkrqkbg9rsldk75akw6m5dxg932j602bxrb4w";
sha512 = {
x86_64-linux = "0lmz8ac5j0i4zcq4904kr6qibvyjcm2ckfg27kqyqfii00qmm80xb5sk3i7f06xqkbgkrqkbg9rsldk75akw6m5dxg932j602bxrb4w";
aarch64-linux = "34k6cm69gxm7vcd9m6bp47sdx96j32z6lfhb2vjcdznc6xgs2wy8zcang3b1mjm5919dq7v6iysm6ffcpgjhhphy7prlnaqa69q5mks";
x86_64-darwin = "00xs87zj94v6yr6xs294bficp6lxpghyfswhnwqfkx62jy80qr5fa2y7s10ich3cbm2daa8dby56iizdvi7rnlvp23gfkq12gq4w1g8";
};
};
}
+3 -3
View File
@@ -4,12 +4,12 @@
stdenv.mkDerivation rec {
pname = "dtc";
version = "1.5.1";
version = "1.6.0";
src = fetchgit {
url = "https://git.kernel.org/pub/scm/utils/dtc/dtc.git";
rev = "refs/tags/v${version}";
sha256 = "1jhhfrg22h53lvm2lqhd66pyk20pil08ry03wcwyx1c3ln27k73z";
sha256 = "0li992wwd7kgy71bikanqky49y4hq3p3vx35p2hvyxy1k0wfy7i8";
};
nativeBuildInputs = [ flex bison pkgconfig which ] ++ lib.optionals pythonSupport [ python swig ];
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "Device Tree Compiler";
homepage = https://git.kernel.org/cgit/utils/dtc/dtc.git;
homepage = "https://git.kernel.org/cgit/utils/dtc/dtc.git";
license = licenses.gpl2; # dtc itself is GPLv2, libfdt is dual GPL/BSD
maintainers = [ maintainers.dezgeg ];
platforms = platforms.unix;
+1 -1
View File
@@ -62,7 +62,7 @@ stdenv.mkDerivation {
meta = {
inherit (s) version;
description = "Lisp implementation aiming to be small, fast and easy to embed";
homepage = https://common-lisp.net/project/ecl/;
homepage = "https://common-lisp.net/project/ecl/";
license = stdenv.lib.licenses.mit ;
maintainers = [stdenv.lib.maintainers.raskin];
platforms = stdenv.lib.platforms.linux;
+34 -9
View File
@@ -1,4 +1,17 @@
{ stdenv, fetchgit, fetchpatch, libuuid, python3, iasl, bc }:
{
stdenv,
clangStdenv,
fetchgit,
fetchpatch,
libuuid,
python3,
iasl,
bc,
clang_9,
llvmPackages_9,
overrideCC,
lib,
}:
let
pythonEnv = python3.withPackages (ps: [ps.tkinter]);
@@ -12,7 +25,17 @@ else if stdenv.isAarch64 then
else
throw "Unsupported architecture";
edk2 = stdenv.mkDerivation {
buildStdenv = if stdenv.isDarwin then
overrideCC clangStdenv [ clang_9 llvmPackages_9.llvm llvmPackages_9.lld ]
else
stdenv;
buildType = if stdenv.isDarwin then
"CLANGPDB"
else
"GCC5";
edk2 = buildStdenv.mkDerivation {
pname = "edk2";
version = "201911";
@@ -25,8 +48,10 @@ edk2 = stdenv.mkDerivation {
buildInputs = [ libuuid pythonEnv ];
makeFlags = [ "-C BaseTools" ];
NIX_CFLAGS_COMPILE = "-Wno-return-type -Wno-error=stringop-truncation";
makeFlags = [ "-C BaseTools" ]
++ lib.optional (stdenv.cc.isClang) [ "BUILD_CC=clang BUILD_CXX=clang++ BUILD_AS=clang" ];
NIX_CFLAGS_COMPILE = "-Wno-return-type" + lib.optionalString (stdenv.cc.isGNU) " -Wno-error=stringop-truncation";
hardeningDisable = [ "format" "fortify" ];
@@ -38,15 +63,15 @@ edk2 = stdenv.mkDerivation {
enableParallelBuilding = true;
meta = with stdenv.lib; {
meta = with lib; {
description = "Intel EFI development kit";
homepage = https://sourceforge.net/projects/edk2/;
homepage = "https://sourceforge.net/projects/edk2/";
license = licenses.bsd2;
platforms = [ "x86_64-linux" "i686-linux" "aarch64-linux" ];
platforms = [ "x86_64-linux" "i686-linux" "aarch64-linux" "x86_64-darwin" ];
};
passthru = {
mkDerivation = projectDscPath: attrs: stdenv.mkDerivation ({
mkDerivation = projectDscPath: attrs: buildStdenv.mkDerivation ({
inherit (edk2) src;
buildInputs = [ bc pythonEnv ] ++ attrs.buildInputs or [];
@@ -65,7 +90,7 @@ edk2 = stdenv.mkDerivation {
buildPhase = ''
runHook preBuild
build -a ${targetArch} -b RELEASE -t GCC5 -p ${projectDscPath} -n $NIX_BUILD_CORES $buildFlags
build -a ${targetArch} -b RELEASE -t ${buildType} -p ${projectDscPath} -n $NIX_BUILD_CORES $buildFlags
runHook postBuild
'';
+1 -1
View File
@@ -83,7 +83,7 @@ stdenv.mkDerivation rec {
construction with extensive libraries implementing common tasks, yet handling
arbitrary special cases. Output is the C subset of C++.
'';
homepage = http://eli-project.sourceforge.net/;
homepage = "http://eli-project.sourceforge.net/";
license = stdenv.lib.licenses.gpl2;
maintainers = with stdenv.lib.maintainers; [ timokau ];
platforms = stdenv.lib.platforms.linux;
+41 -32
View File
@@ -1,10 +1,12 @@
{ lib, stdenv, pkgs
, haskell, nodejs
, fetchurl, fetchpatch, makeWrapper, writeScriptBin }:
, fetchurl, fetchpatch, makeWrapper, writeScriptBin
# Rust dependecies
, rustPlatform, openssl, pkg-config }:
let
fetchElmDeps = import ./fetchElmDeps.nix { inherit stdenv lib fetchurl; };
hsPkgs = haskell.packages.ghc881.override {
hsPkgs = haskell.packages.ghc883.override {
overrides = self: super: with haskell.lib;
let elmPkgs = rec {
elm = overrideCabal (self.callPackage ./packages/elm.nix { }) (drv: {
@@ -28,7 +30,7 @@ let
`package/nix/build.sh`
*/
elm-format = justStaticExecutables (overrideCabal (self.callPackage ./packages/elm-format.nix {}) (drv: {
# GHC 8.8.1 support
# GHC 8.8.3 support
# https://github.com/avh4/elm-format/pull/640
patches = [(
fetchpatch {
@@ -52,14 +54,6 @@ let
}));
elm-instrument = justStaticExecutables (overrideCabal (self.callPackage ./packages/elm-instrument.nix {}) (drv: {
patches = [(
# GHC 8.8.1 and Cabal >= 1.25.0 support
# https://github.com/zwilias/elm-instrument/pull/3
fetchpatch {
url = "https://github.com/turboMaCk/elm-instrument/commit/4272db2aea742c8b54509e536fa4f35d04f95da5.patch";
sha256 = "1d1lc43lp3x5jfhlyb1b7na7nj1g1i1vc1np26pcisg9c2s7gjz6";
}
)];
prePatch = ''
sed "s/desc <-.*/let desc = \"${drv.version}\"/g" Setup.hs --in-place
'';
@@ -79,48 +73,63 @@ let
};
};
/*
Node/NPM based dependecies can be upgraded using script
`packages/generate-node-packages.sh`.
Packages which rely on `bin-wrap` will fail by default
and can be patched using `patchBinwrap` function defined in `packages/patch-binwrap.nix`.
/* Node/NPM based dependecies can be upgraded using script `packages/generate-node-packages.sh`.
* Packages which rely on `bin-wrap` will fail by default
and can be patched using `patchBinwrap` function defined in `packages/lib.nix`.
* Packages which depend on npm installation of elm can be patched using
`patchNpmElm` function also defined in `packages/lib.nix`.
*/
elmNodePackages =
elmLib = import ./packages/lib.nix {
inherit lib writeScriptBin stdenv;
inherit (hsPkgs.elmPkgs) elm;
};
elmNodePackages = with elmLib;
let
nodePkgs = import ./packages/node-composition.nix {
inherit nodejs pkgs;
inherit (stdenv.hostPlatform) system;
};
in with hsPkgs.elmPkgs; {
elm-test = patchBinwrap [elmi-to-json] nodePkgs.elm-test;
elm-verify-examples = patchBinwrap [elmi-to-json] nodePkgs.elm-verify-examples;
elm-test = patchBinwrap [elmi-to-json]
nodePkgs.elm-test;
elm-verify-examples = patchBinwrap [elmi-to-json]
nodePkgs.elm-verify-examples;
elm-coverage =
let patched = patchBinwrap [elmi-to-json] nodePkgs.elm-coverage;
in patched.override {
preRebuild = ''
let patched = patchNpmElm (patchBinwrap [elmi-to-json] nodePkgs.elm-coverage);
in patched.override (old: {
# Symlink Elm instrument binary
preRebuild = (old.preRebuild or "") + ''
# Noop custom installation script
sed 's/\"install\".*/\"install\":\"echo no-op\"/g' --in-place package.json
# This should not be needed (thanks to binwrap* being nooped) but for some reason it still needs to be done
# in case of just this package
# TODO: investigate
sed 's/\"install\".*/\"install\":\"echo no-op\",/g' --in-place node_modules/elmi-to-json/package.json
rm node_modules/elm/install.js
echo "console.log('no-op');" > node_modules/elm/install.js
'';
# Link Elm instrument binary
postInstall = patched.postInstall + ''
postInstall = (old.postInstall or "") + ''
mkdir -p unpacked_bin
ln -sf ${elm-instrument}/bin/elm-instrument unpacked_bin/elm-instrument
'';
};
});
create-elm-app = patchNpmElm (patchBinwrap [elmi-to-json]
nodePkgs.create-elm-app);
elm-language-server = nodePkgs."@elm-tooling/elm-language-server";
inherit (nodePkgs) elm-doc-preview elm-live elm-upgrade elm-xref elm-analyse;
};
patchBinwrap = import ./packages/patch-binwrap.nix { inherit lib writeScriptBin stdenv; };
in hsPkgs.elmPkgs // elmNodePackages // {
lib = { inherit patchBinwrap; };
elm-json = import ./packages/elm-json.nix {
inherit rustPlatform fetchurl openssl stdenv pkg-config;
};
lib = elmLib;
}
@@ -11,6 +11,14 @@ ver: deps:
inherit (info) sha256;
};
configurePhase = ''
true
'';
buildPhase = ''
true
'';
installPhase = ''
mkdir -p $out
cp -r * $out
@@ -3,15 +3,15 @@
, fetchgit, filepath, free, HUnit, indents, json, mtl
, optparse-applicative, parsec, process, QuickCheck, quickcheck-io
, split, stdenv, tasty, tasty-golden, tasty-hunit, tasty-quickcheck
, text, elm
, text
}:
mkDerivation {
pname = "elm-instrument";
version = "0.0.7";
src = fetchgit {
url = "https://github.com/zwilias/elm-instrument.git";
sha256 = "14yfzwsyvgc6rzn19sdmwk2mc1vma9hcljnmjnmlig8mp0271v56";
rev = "31b527e405a6afdb25bb87ad7bd14f979e65cff7";
url = "https://github.com/zwilias/elm-instrument";
sha256 = "167d7l2547zxdj7i60r6vazznd9ichwc0bqckh3vrh46glkz06jv";
rev = "63e15bb5ec5f812e248e61b6944189fa4a0aee4e";
fetchSubmodules = true;
};
isLibrary = true;
@@ -28,7 +28,7 @@ mkDerivation {
quickcheck-io split tasty tasty-golden tasty-hunit tasty-quickcheck
text
];
homepage = "http://elm-lang.org";
homepage = "https://elm-lang.org";
description = "Instrumentation library for Elm";
license = stdenv.lib.licenses.bsd3;
}
@@ -0,0 +1,29 @@
{ rustPlatform, fetchurl, openssl, stdenv, pkg-config }:
rustPlatform.buildRustPackage rec {
pname = "elm-json";
version = "0.2.7";
src = fetchurl {
url = "https://github.com/zwilias/elm-json/archive/v${version}.tar.gz";
sha256 = "sha256:1b9bhl7rb01ylqjbfd1ccm26lhk4hzwd383rbg89aj2jwjv0w4hs";
};
cargoPatches = [ ./elm-json.patch ];
nativeBuildInputs = [ pkg-config ];
buildInputs = [ openssl ];
cargoSha256 = "0ylniriq073kpiykamkn9mxdaa6kyiza4pvf7gnfq2h1dvbqa6z7";
# Tests perform networking and therefore can't work in sandbox
doCheck = false;
meta = with stdenv.lib; {
description = "Install, upgrade and uninstall Elm dependencies";
homepage = "https://github.com/zwilias/elm-json";
license = licenses.mit;
maintainers = [ maintainers.turbomack ];
platforms = platforms.linux;
};
}
@@ -0,0 +1,48 @@
diff --git a/Cargo.lock b/Cargo.lock
index f4d95f5..6830b3d 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -625,14 +625,6 @@ name = "openssl-probe"
version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-[[package]]
-name = "openssl-src"
-version = "111.9.0+1.1.1g"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "cc 1.0.54 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
[[package]]
name = "openssl-sys"
version = "0.9.56"
@@ -641,7 +633,6 @@ dependencies = [
"autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
"cc 1.0.54 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)",
- "openssl-src 111.9.0+1.1.1g (registry+https://github.com/rust-lang/crates.io-index)",
"pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
"vcpkg 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -1162,7 +1153,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
"checksum object 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9cbca9424c482ee628fa549d9c812e2cd22f1180b9222c9200fdfa6eb31aecb2"
"checksum once_cell 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0b631f7e854af39a1739f401cf34a8a013dfe09eac4fa4dba91e9768bd28168d"
"checksum openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de"
-"checksum openssl-src 111.9.0+1.1.1g (registry+https://github.com/rust-lang/crates.io-index)" = "a2dbe10ddd1eb335aba3780eb2eaa13e1b7b441d2562fd962398740927f39ec4"
"checksum openssl-sys 0.9.56 (registry+https://github.com/rust-lang/crates.io-index)" = "f02309a7f127000ed50594f0b50ecc69e7c654e16d41b4e8156d1b3df8e0b52e"
"checksum petgraph 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "29c127eea4a29ec6c85d153c59dc1213f33ec74cead30fe4730aecc88cc1fd92"
"checksum pin-project 0.4.17 (registry+https://github.com/rust-lang/crates.io-index)" = "edc93aeee735e60ecb40cf740eb319ff23eab1c5748abfdb5c180e4ce49f7791"
diff --git a/Cargo.toml b/Cargo.toml
index adfab25..37ae0c2 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -21,7 +21,7 @@ colored = "1.9"
dialoguer = "0.6"
dirs = "2.0"
fs2 = "0.4"
-isahc = { version = "0.9", features = ["static-ssl"] }
+isahc = "0.9"
[dev-dependencies]
assert_cmd = "0.11"
@@ -6,7 +6,7 @@ set -eu -o pipefail
rm -f node-env.nix
$(nix-build $ROOT -A nodePackages.node2nix --no-out-link)/bin/node2nix \
--nodejs-10 \
--nodejs-12 \
-i node-packages.json \
-o node-packages.nix \
-c node-composition.nix \
@@ -0,0 +1,43 @@
{ writeScriptBin, stdenv, lib, elm }:
let
patchBinwrap =
let
# Patching binwrap by NoOp script
binwrap = writeScriptBin "binwrap" ''
#! ${stdenv.shell}
echo "binwrap called: Returning 0"
return 0
'';
binwrap-install = writeScriptBin "binwrap-install" ''
#! ${stdenv.shell}
echo "binwrap-install called: Doing nothing"
'';
in targets: pkg:
pkg.override (old: {
nativeBuildInputs = (old.nativeBuildInputs or []) ++ [ binwrap binwrap-install ];
# Manually install targets
# by symlinking binaries into `node_modules`
postInstall = let
binFile = module: lib.strings.removeSuffix ("-" + module.version) module.name;
in (old.postInstall or "") + ''
${lib.concatStrings (map (module: ''
echo "linking ${binFile module}"
ln -sf ${module}/bin/${binFile module} \
node_modules/${binFile module}/bin/${binFile module}
'') targets)}
'';
});
patchNpmElm = pkg:
pkg.override (old: {
preRebuild = (old.preRebuild or "") + ''
rm node_modules/elm/install.js
echo "console.log('Nixpkgs\' version of Elm will be used');" > node_modules/elm/install.js
'';
postInstall = (old.postInstall or "") + ''
ln -sf ${elm}/bin/elm node_modules/elm/bin/elm
'';
});
in
{ inherit patchBinwrap patchNpmElm; }
@@ -2,7 +2,7 @@
{pkgs ? import <nixpkgs> {
inherit system;
}, system ? builtins.currentSystem, nodejs ? pkgs."nodejs-10_x"}:
}, system ? builtins.currentSystem, nodejs ? pkgs."nodejs-12_x"}:
let
nodeEnv = import ../../../node-packages/node-env.nix {
@@ -7,5 +7,6 @@
"elm-test",
"elm-upgrade",
"elm-verify-examples",
"elm-xref"
"elm-xref",
"create-elm-app"
]
File diff suppressed because it is too large Load Diff
@@ -1,30 +0,0 @@
{ writeScriptBin, stdenv, lib }:
let
# Patching binwrap by NoOp script
binwrap = writeScriptBin "binwrap" ''
#! ${stdenv.shell}
echo "binwrap called: Returning 0"
return 0
'';
binwrap-install = writeScriptBin "binwrap-install" ''
#! ${stdenv.shell}
echo "binwrap-install called: Doing nothing"
'';
in
targets:
pkg:
pkg.override {
nativeBuildInputs = pkg.nativeBuildInputs ++ [ binwrap binwrap-install ];
# Manually install targets
# by symlinking binaries into `node_modules`
postInstall = let
binFile = module: lib.strings.removeSuffix ("-" + module.version) module.name;
in ''
${lib.concatStrings (map (module: ''
echo "linking ${binFile module}"
ln -sf ${module}/bin/${binFile module} \
node_modules/${binFile module}/bin/${binFile module}
'') targets)}
'';
}
@@ -61,7 +61,7 @@ stdenv.mkDerivation {
'';
meta = with stdenv.lib; {
homepage = https://github.com/emscripten-core/emscripten;
homepage = "https://github.com/emscripten-core/emscripten";
description = "An LLVM-to-JavaScript Compiler";
platforms = platforms.all;
maintainers = with maintainers; [ qknight matthewbauer ];
@@ -1,8 +1,7 @@
{ emscriptenVersion, stdenv, fetchFromGitHub, cmake, python, gtest, ... }:
{ emscriptenVersion, stdenv, fetchFromGitHub, cmake, python, gtest, gccForLibs, ... }:
let
rev = emscriptenVersion;
gcc = if stdenv.cc.isGNU then stdenv.cc.cc else stdenv.cc.cc.gcc;
in
stdenv.mkDerivation rec {
name = "emscripten-fastcomp-${rev}";
@@ -36,17 +35,16 @@ stdenv.mkDerivation rec {
"-DCLANG_INCLUDE_TESTS=ON"
] ++ (stdenv.lib.optional stdenv.isLinux
# necessary for clang to find crtend.o
"-DGCC_INSTALL_PREFIX=${gcc}"
"-DGCC_INSTALL_PREFIX=${gccForLibs}"
);
enableParallelBuilding = true;
passthru = {
isClang = true;
inherit gcc;
};
meta = with stdenv.lib; {
homepage = https://github.com/emscripten-core/emscripten-fastcomp;
homepage = "https://github.com/emscripten-core/emscripten-fastcomp";
description = "Emscripten LLVM";
platforms = platforms.all;
maintainers = with maintainers; [ qknight matthewbauer ];
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
rev = "7999e72aecc3c5bc4019d43dc4697f49678cc3b4";
src = fetchurl {
url = https://downloads.factorcode.org/releases/0.98/factor-src-0.98.zip;
url = "https://downloads.factorcode.org/releases/0.98/factor-src-0.98.zip";
sha256 = "01ip9mbnar4sv60d2wcwfz62qaamdvbykxw3gbhzqa25z36vi3ri";
};
@@ -94,7 +94,7 @@ stdenv.mkDerivation rec {
'';
meta = with stdenv.lib; {
homepage = https://factorcode.org;
homepage = "https://factorcode.org";
license = licenses.bsd2;
description = "A concatenative, stack-based programming language";
+3 -3
View File
@@ -3,11 +3,11 @@
stdenvNoCC.mkDerivation rec {
pname = "fasm-bin";
version = "1.73.22";
version = "1.73.25";
src = fetchurl {
url = "https://flatassembler.net/fasm-${version}.tgz";
sha256 = "1pb0rcfdsb0h89khjjrbikz5wjdllavj3ajim0rcyh7x12xr1hw5";
sha256 = "0k3h61mfwslyb34kf4dnapfwl8jxlmrp4dv666wc057hkj047knn";
};
installPhase = ''
@@ -16,7 +16,7 @@ stdenvNoCC.mkDerivation rec {
meta = with lib; {
description = "x86(-64) macro assembler to binary, MZ, PE, COFF, and ELF";
homepage = https://flatassembler.net/download.php;
homepage = "https://flatassembler.net/download.php";
license = licenses.bsd2;
maintainers = with maintainers; [ orivej ];
platforms = [ "i686-linux" "x86_64-linux" ];
@@ -0,0 +1,33 @@
{ callPackage }:
let
mkFlutter = opts: callPackage (import ./flutter.nix opts) { };
getPatches = dir:
let files = builtins.attrNames (builtins.readDir dir);
in map (f: dir + ("/" + f)) files;
in {
stable = mkFlutter rec {
pname = "flutter";
channel = "stable";
version = "1.17.5";
filename = "flutter_linux_${version}-${channel}.tar.xz";
sha256Hash = "0kapja3nh7dfhjbn2np02wghijrjnpzsv4hz10fj54hs8hdx19di";
patches = getPatches ./patches/stable;
};
beta = mkFlutter rec {
pname = "flutter-beta";
channel = "beta";
version = "1.20.0-7.2.pre";
filename = "flutter_linux_${version}-${channel}.tar.xz";
sha256Hash = "0w89ig5vi4spa95mf08r4vvwni7bzzdlyhvr9sy1a35qmf7j9s6f";
patches = getPatches ./patches/beta;
};
dev = mkFlutter rec {
pname = "flutter-dev";
channel = "dev";
version = "1.21.0-1.0.pre";
filename = "flutter_linux_${version}-${channel}.tar.xz";
sha256Hash = "14rx89jp6ivk3ai7iwbznkr5q445ndh8fppzbxg520kq10s2208r";
patches = getPatches ./patches/beta;
};
}
@@ -0,0 +1,129 @@
{ channel, pname, version, sha256Hash, patches
, filename ? "flutter_linux_v${version}-${channel}.tar.xz" }:
{ bash, buildFHSUserEnv, cacert, coreutils, git, makeWrapper, runCommand, stdenv
, fetchurl, alsaLib, dbus, expat, libpulseaudio, libuuid, libX11, libxcb
, libXcomposite, libXcursor, libXdamage, libXfixes, libGL, nspr, nss, systemd }:
let
drvName = "flutter-${channel}-${version}";
flutter = stdenv.mkDerivation {
name = "${drvName}-unwrapped";
src = fetchurl {
url =
"https://storage.googleapis.com/flutter_infra/releases/${channel}/linux/${filename}";
sha256 = sha256Hash;
};
buildInputs = [ makeWrapper git ];
inherit patches;
postPatch = ''
patchShebangs --build ./bin/
find ./bin/ -executable -type f -exec patchelf --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) {} \;
'';
buildPhase = ''
FLUTTER_ROOT=$(pwd)
FLUTTER_TOOLS_DIR="$FLUTTER_ROOT/packages/flutter_tools"
SNAPSHOT_PATH="$FLUTTER_ROOT/bin/cache/flutter_tools.snapshot"
STAMP_PATH="$FLUTTER_ROOT/bin/cache/flutter_tools.stamp"
SCRIPT_PATH="$FLUTTER_TOOLS_DIR/bin/flutter_tools.dart"
DART_SDK_PATH="$FLUTTER_ROOT/bin/cache/dart-sdk"
DART="$DART_SDK_PATH/bin/dart"
PUB="$DART_SDK_PATH/bin/pub"
HOME=../.. # required for pub upgrade --offline, ~/.pub-cache
# path is relative otherwise it's replaced by /build/flutter
(cd "$FLUTTER_TOOLS_DIR" && "$PUB" upgrade --offline)
local revision="$(cd "$FLUTTER_ROOT"; git rev-parse HEAD)"
"$DART" --snapshot="$SNAPSHOT_PATH" --packages="$FLUTTER_TOOLS_DIR/.packages" "$SCRIPT_PATH"
echo "$revision" > "$STAMP_PATH"
echo -n "${version}" > version
rm -rf bin/cache/{artifacts,downloads}
rm -f bin/cache/*.stamp
'';
installPhase = ''
mkdir -p $out
cp -r . $out
'';
};
# Wrap flutter inside an fhs user env to allow execution of binary,
# like adb from $ANDROID_HOME or java from android-studio.
fhsEnv = buildFHSUserEnv {
name = "${drvName}-fhs-env";
multiPkgs = pkgs: [
# Flutter only use these certificates
(runCommand "fedoracert" { } ''
mkdir -p $out/etc/pki/tls/
ln -s ${cacert}/etc/ssl/certs $out/etc/pki/tls/certs
'')
pkgs.zlib
];
targetPkgs = pkgs:
with pkgs; [
bash
curl
git
unzip
which
xz
# flutter test requires this lib
libGLU
# for android emulator
alsaLib
dbus
expat
libpulseaudio
libuuid
libX11
libxcb
libXcomposite
libXcursor
libXdamage
libXfixes
libGL
nspr
nss
systemd
];
};
in runCommand drvName {
startScript = ''
#!${bash}/bin/bash
export PUB_CACHE=''${PUB_CACHE:-"$HOME/.pub-cache"}
export ANDROID_EMULATOR_USE_SYSTEM_LIBS=1
${fhsEnv}/bin/${drvName}-fhs-env ${flutter}/bin/flutter --no-version-check "$@"
'';
preferLocalBuild = true;
allowSubstitutes = false;
passthru = { unwrapped = flutter; };
meta = with stdenv.lib; {
description =
"Flutter is Google's SDK for building mobile, web and desktop with Dart.";
longDescription = ''
Flutter is Googles UI toolkit for building beautiful,
natively compiled applications for mobile, web, and desktop from a single codebase.
'';
homepage = "https://flutter.dev";
license = licenses.bsd3;
platforms = [ "x86_64-linux" ];
maintainers = with maintainers; [ babariviere ];
};
} ''
mkdir -p $out/bin
echo -n "$startScript" > $out/bin/${pname}
chmod +x $out/bin/${pname}
''
@@ -0,0 +1,31 @@
diff --git a/bin/internal/shared.sh b/bin/internal/shared.sh
index 702bd9ed5..4d4dc94c6 100755
--- a/bin/internal/shared.sh
+++ b/bin/internal/shared.sh
@@ -204,8 +204,6 @@ function shared::execute() {
# FLUTTER_TOOL_ARGS="--enable-asserts $FLUTTER_TOOL_ARGS"
# FLUTTER_TOOL_ARGS="$FLUTTER_TOOL_ARGS --observe=65432"
- upgrade_flutter 7< "$PROG_NAME"
-
BIN_NAME="$(basename "$PROG_NAME")"
case "$BIN_NAME" in
flutter*)
diff --git a/packages/flutter_tools/lib/src/runner/flutter_command_runner.dart b/packages/flutter_tools/lib/src/runner/flutter_command_runner.dart
index 21be933e1..2ea73c4c0 100644
--- a/packages/flutter_tools/lib/src/runner/flutter_command_runner.dart
+++ b/packages/flutter_tools/lib/src/runner/flutter_command_runner.dart
@@ -294,13 +294,6 @@ class FlutterCommandRunner extends CommandRunner<void> {
globals.flutterUsage.suppressAnalytics = true;
}
- try {
- await globals.flutterVersion.ensureVersionFile();
- } on FileSystemException catch (e) {
- globals.printError('Failed to write the version file to the artifact cache: "$e".');
- globals.printError('Please ensure you have permissions in the artifact cache directory.');
- throwToolExit('Failed to write the version file');
- }
final bool machineFlag = topLevelResults['machine'] as bool;
if (topLevelResults.command?.name != 'upgrade' && topLevelResults['version-check'] as bool && !machineFlag) {
await globals.flutterVersion.checkFlutterVersionFreshness();
@@ -0,0 +1,64 @@
diff --git a/dev/devicelab/lib/framework/runner.dart b/dev/devicelab/lib/framework/runner.dart
index 8e511eefd..fef3cca8b 100644
--- a/dev/devicelab/lib/framework/runner.dart
+++ b/dev/devicelab/lib/framework/runner.dart
@@ -126,7 +126,7 @@ Future<void> cleanupSystem() async {
print('\nTelling Gradle to shut down (JAVA_HOME=$javaHome)');
final String gradlewBinaryName = Platform.isWindows ? 'gradlew.bat' : 'gradlew';
final Directory tempDir = Directory.systemTemp.createTempSync('flutter_devicelab_shutdown_gradle.');
- recursiveCopy(Directory(path.join(flutterDirectory.path, 'bin', 'cache', 'artifacts', 'gradle_wrapper')), tempDir);
+ recursiveCopy(Directory(path.join(globals.fsUtils.homeDirPath, '.cache', 'flutter', 'artifacts', 'gradle_wrapper')), tempDir);
copy(File(path.join(path.join(flutterDirectory.path, 'packages', 'flutter_tools'), 'templates', 'app', 'android.tmpl', 'gradle', 'wrapper', 'gradle-wrapper.properties')), Directory(path.join(tempDir.path, 'gradle', 'wrapper')));
if (!Platform.isWindows) {
await exec(
diff --git a/packages/flutter_tools/lib/src/asset.dart b/packages/flutter_tools/lib/src/asset.dart
index c680de599..480abfb77 100644
--- a/packages/flutter_tools/lib/src/asset.dart
+++ b/packages/flutter_tools/lib/src/asset.dart
@@ -8,6 +8,7 @@ import 'package:meta/meta.dart';
import 'package:package_config/package_config.dart';
import 'package:yaml/yaml.dart';
+import 'base/common.dart';
import 'base/context.dart';
import 'base/file_system.dart';
import 'base/utils.dart';
@@ -392,7 +393,7 @@ List<_Asset> _getMaterialAssets(String fontSet) {
for (final Map<dynamic, dynamic> font in (family['fonts'] as List<dynamic>).cast<Map<dynamic, dynamic>>()) {
final Uri entryUri = globals.fs.path.toUri(font['asset'] as String);
result.add(_Asset(
- baseDir: globals.fs.path.join(Cache.flutterRoot, 'bin', 'cache', 'artifacts', 'material_fonts'),
+ baseDir: globals.fs.path.join(globals.fsUtils.homeDirPath, '.cache', 'flutter', 'artifacts', 'material_fonts'),
relativeUri: Uri(path: entryUri.pathSegments.last),
entryUri: entryUri,
package: null,
diff --git a/packages/flutter_tools/lib/src/cache.dart b/packages/flutter_tools/lib/src/cache.dart
index c0946782c..bdbc35cb8 100644
--- a/packages/flutter_tools/lib/src/cache.dart
+++ b/packages/flutter_tools/lib/src/cache.dart
@@ -202,8 +202,15 @@ class Cache {
return;
}
assert(_lock == null);
+
+ final Directory dir = globals.fs.directory(globals.fs.path.join(globals.fsUtils.homeDirPath, '.cache', 'flutter'));
+ if (!dir.existsSync()) {
+ dir.createSync(recursive: true);
+ globals.os.chmod(dir, '755');
+ }
+
final File lockFile =
- globals.fs.file(globals.fs.path.join(flutterRoot, 'bin', 'cache', 'lockfile'));
+ globals.fs.file(globals.fs.path.join(globals.fsUtils.homeDirPath, '.cache', 'flutter', 'lockfile'));
try {
_lock = lockFile.openSync(mode: FileMode.write);
} on FileSystemException catch (e) {
@@ -306,7 +313,7 @@ class Cache {
if (_rootOverride != null) {
return _fileSystem.directory(_fileSystem.path.join(_rootOverride.path, 'bin', 'cache'));
} else {
- return _fileSystem.directory(_fileSystem.path.join(flutterRoot, 'bin', 'cache'));
+ return _fileSystem.directory(_fileSystem.path.join(globals.fsUtils.homeDirPath, '.cache', 'flutter'));
}
}
@@ -0,0 +1,31 @@
diff --git a/bin/flutter b/bin/flutter
index cdf974233..1f7de1c1b 100755
--- a/bin/flutter
+++ b/bin/flutter
@@ -185,8 +185,6 @@ fi
# FLUTTER_TOOL_ARGS="--enable-asserts $FLUTTER_TOOL_ARGS"
# FLUTTER_TOOL_ARGS="$FLUTTER_TOOL_ARGS --observe=65432"
-(upgrade_flutter) 3< "$PROG_NAME"
-
# FLUTTER_TOOL_ARGS isn't quoted below, because it is meant to be considered as
# separate space-separated args.
"$DART" --packages="$FLUTTER_TOOLS_DIR/.packages" $FLUTTER_TOOL_ARGS "$SNAPSHOT_PATH" "$@"
diff --git a/packages/flutter_tools/lib/src/runner/flutter_command_runner.dart b/packages/flutter_tools/lib/src/runner/flutter_command_runner.dart
index b3e69714f..a9eb76234 100644
--- a/packages/flutter_tools/lib/src/runner/flutter_command_runner.dart
+++ b/packages/flutter_tools/lib/src/runner/flutter_command_runner.dart
@@ -301,13 +301,6 @@ class FlutterCommandRunner extends CommandRunner<void> {
}
_checkFlutterCopy();
- try {
- await globals.flutterVersion.ensureVersionFile();
- } on FileSystemException catch (e) {
- globals.printError('Failed to write the version file to the artifact cache: "$e".');
- globals.printError('Please ensure you have permissions in the artifact cache directory.');
- throwToolExit('Failed to write the version file');
- }
final bool machineFlag = topLevelResults['machine'] as bool;
if (topLevelResults.command?.name != 'upgrade' && topLevelResults['version-check'] as bool && !machineFlag) {
await globals.flutterVersion.checkFlutterVersionFreshness();
@@ -0,0 +1,64 @@
diff --git a/dev/devicelab/lib/framework/runner.dart b/dev/devicelab/lib/framework/runner.dart
index 8e511eefd..fef3cca8b 100644
--- a/dev/devicelab/lib/framework/runner.dart
+++ b/dev/devicelab/lib/framework/runner.dart
@@ -126,7 +126,7 @@ Future<void> cleanupSystem() async {
print('\nTelling Gradle to shut down (JAVA_HOME=$javaHome)');
final String gradlewBinaryName = Platform.isWindows ? 'gradlew.bat' : 'gradlew';
final Directory tempDir = Directory.systemTemp.createTempSync('flutter_devicelab_shutdown_gradle.');
- recursiveCopy(Directory(path.join(flutterDirectory.path, 'bin', 'cache', 'artifacts', 'gradle_wrapper')), tempDir);
+ recursiveCopy(Directory(path.join(globals.fsUtils.homeDirPath, '.cache', 'flutter', 'artifacts', 'gradle_wrapper')), tempDir);
copy(File(path.join(path.join(flutterDirectory.path, 'packages', 'flutter_tools'), 'templates', 'app', 'android.tmpl', 'gradle', 'wrapper', 'gradle-wrapper.properties')), Directory(path.join(tempDir.path, 'gradle', 'wrapper')));
if (!Platform.isWindows) {
await exec(
diff --git a/packages/flutter_tools/lib/src/asset.dart b/packages/flutter_tools/lib/src/asset.dart
index c680de599..480abfb77 100644
--- a/packages/flutter_tools/lib/src/asset.dart
+++ b/packages/flutter_tools/lib/src/asset.dart
@@ -8,6 +8,7 @@ import 'package:meta/meta.dart';
import 'package:package_config/package_config.dart';
import 'package:yaml/yaml.dart';
+import 'base/common.dart';
import 'base/context.dart';
import 'base/file_system.dart';
import 'base/utils.dart';
@@ -392,7 +393,7 @@ List<_Asset> _getMaterialAssets(String fontSet) {
for (final Map<dynamic, dynamic> font in (family['fonts'] as List<dynamic>).cast<Map<dynamic, dynamic>>()) {
final Uri entryUri = globals.fs.path.toUri(font['asset'] as String);
result.add(_Asset(
- baseDir: globals.fs.path.join(Cache.flutterRoot, 'bin', 'cache', 'artifacts', 'material_fonts'),
+ baseDir: globals.fs.path.join(globals.fsUtils.homeDirPath, '.cache', 'flutter', 'artifacts', 'material_fonts'),
relativeUri: Uri(path: entryUri.pathSegments.last),
entryUri: entryUri,
package: null,
diff --git a/packages/flutter_tools/lib/src/cache.dart b/packages/flutter_tools/lib/src/cache.dart
index c0946782c..bdbc35cb8 100644
--- a/packages/flutter_tools/lib/src/cache.dart
+++ b/packages/flutter_tools/lib/src/cache.dart
@@ -202,8 +202,15 @@ class Cache {
return;
}
assert(_lock == null);
+
+ final Directory dir = globals.fs.directory(globals.fs.path.join(globals.fsUtils.homeDirPath, '.cache', 'flutter'));
+ if (!dir.existsSync()) {
+ dir.createSync(recursive: true);
+ globals.os.chmod(dir, '755');
+ }
+
final File lockFile =
- globals.fs.file(globals.fs.path.join(flutterRoot, 'bin', 'cache', 'lockfile'));
+ globals.fs.file(globals.fs.path.join(globals.fsUtils.homeDirPath, '.cache', 'flutter', 'lockfile'));
try {
_lock = lockFile.openSync(mode: FileMode.write);
} on FileSystemException catch (e) {
@@ -306,7 +313,7 @@ class Cache {
if (_rootOverride != null) {
return _fileSystem.directory(_fileSystem.path.join(_rootOverride.path, 'bin', 'cache'));
} else {
- return _fileSystem.directory(_fileSystem.path.join(flutterRoot, 'bin', 'cache'));
+ return _fileSystem.directory(_fileSystem.path.join(globals.fsUtils.homeDirPath, '.cache', 'flutter'));
}
}
+5 -5
View File
@@ -1,18 +1,18 @@
{ stdenv, fetchurl }:
stdenv.mkDerivation {
name = "fpc-2.6.0-binary";
name = "fpc-3.0.0-binary";
src =
if stdenv.hostPlatform.system == "i686-linux" then
fetchurl {
url = "mirror://sourceforge/project/freepascal/Linux/2.6.0/fpc-2.6.0.i386-linux.tar";
sha256 = "08yklvrfxvk59bxsd4rh1i6s3cjn0q06dzjs94h9fbq3n1qd5zdf";
url = "mirror://sourceforge/project/freepascal/Linux/3.0.0/fpc-3.0.0.i386-linux.tar";
sha256 = "0h3f1dgs1zsx7vvk9kg67anjvgw5sslfbmjblif7ishbcp3k3g5k";
}
else if stdenv.hostPlatform.system == "x86_64-linux" then
fetchurl {
url = "mirror://sourceforge/project/freepascal/Linux/2.6.0/fpc-2.6.0.x86_64-linux.tar";
sha256 = "0k9vi75k39y735fng4jc2vppdywp82j4qhzn7x4r6qjkad64d8lx";
url = "mirror://sourceforge/project/freepascal/Linux/3.0.0/fpc-3.0.0.x86_64-linux.tar";
sha256 = "1m2xx3nda45cb3zidbjgdr8kddd19zk0khvp7xxdlclszkqscln9";
}
else throw "Not supported on ${stdenv.hostPlatform.system}.";
+5 -3
View File
@@ -3,20 +3,22 @@
let startFPC = import ./binary.nix { inherit stdenv fetchurl; }; in
stdenv.mkDerivation rec {
version = "3.0.0";
version = "3.0.4";
pname = "fpc";
src = fetchurl {
url = "mirror://sourceforge/freepascal/fpcbuild-${version}.tar.gz";
sha256 = "1v40bjp0kvsi8y0mndqvvhnsqjfssl2w6wpfww51j4rxblfkp4fm";
sha256 = "0xjyhlhz846jbnp12y68c7nq4xmp4i65akfbrjyf3r62ybk18rgn";
};
buildInputs = [ startFPC gawk ];
glibc = stdenv.cc.libc.out;
preConfigure =
if stdenv.hostPlatform.system == "i686-linux" || stdenv.hostPlatform.system == "x86_64-linux" then ''
sed -e "s@'/lib/ld-linux[^']*'@'''@" -i fpcsrc/compiler/systems/t_linux.pas
sed -e "s@'/lib64/ld-linux[^']*'@'''@" -i fpcsrc/compiler/systems/t_linux.pas
sed -e "s@/lib64[^']*@${glibc}/lib@" -i fpcsrc/compiler/systems/t_linux.pas
'' else "";
makeFlags = [ "NOGDB=1" "FPC=${startFPC}/bin/fpc" ];
@@ -37,7 +39,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
description = "Free Pascal Compiler from a source distribution";
homepage = https://www.freepascal.org;
homepage = "https://www.freepascal.org";
maintainers = [ maintainers.raskin ];
license = with licenses; [ gpl2 lgpl2 ];
platforms = platforms.linux;
+10 -5
View File
@@ -1,14 +1,15 @@
{ stdenv, fetchurl, makeWrapper
, fpc, gtk2, glib, pango, atk, gdk-pixbuf
, libXi, xorgproto, libX11, libXext
, gdb, gnumake, binutils
}:
stdenv.mkDerivation rec {
pname = "lazarus";
version = "1.8.4";
version = "2.0.8";
src = fetchurl {
url = "mirror://sourceforge/lazarus/Lazarus%20Zip%20_%20GZip/Lazarus%20${version}/lazarus-${version}.tar.gz";
sha256 = "1s8hdip973fc1lynklddl0mvg2jd2lzkfk8hzb8jlchs6jn0362s";
sha256 = "1iciqydb0miqdrh89aj59gy7kfcwikkycqssq9djcqsw1ql3gc4h";
};
buildInputs = [
@@ -34,13 +35,17 @@ stdenv.mkDerivation rec {
'';
postInstall = ''
wrapProgram $out/bin/startlazarus --prefix NIX_LDFLAGS ' ' "'$NIX_LDFLAGS'" \
--prefix LCL_PLATFORM ' ' "'$LCL_PLATFORM'"
wrapProgram $out/bin/startlazarus --prefix NIX_LDFLAGS ' ' \
"$(echo "$NIX_LDFLAGS" | sed -re 's/-rpath [^ ]+//g')" \
--prefix NIX_LDFLAGS_${binutils.suffixSalt} ' ' \
"$(echo "$NIX_LDFLAGS" | sed -re 's/-rpath [^ ]+//g')" \
--prefix LCL_PLATFORM ' ' "$LCL_PLATFORM" \
--prefix PATH ':' "${fpc}/bin:${gdb}/bin:${gnumake}/bin:${binutils}/bin"
'';
meta = with stdenv.lib; {
description = "Lazarus graphical IDE for FreePascal language";
homepage = http://www.lazarus.freepascal.org;
homepage = "http://www.lazarus.freepascal.org";
license = licenses.gpl2Plus ;
platforms = platforms.linux;
maintainers = [ maintainers.raskin ];
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
meta = {
description = "A functional CLI language";
homepage = https://fsharp.org/;
homepage = "https://fsharp.org/";
license = stdenv.lib.licenses.asl20;
maintainers = with stdenv.lib.maintainers; [ thoughtpolice raskin ];
platforms = with stdenv.lib.platforms; unix;
@@ -117,7 +117,7 @@ EOF
meta = {
description = "A functional CLI language";
homepage = https://fsharp.org/;
homepage = "https://fsharp.org/";
license = stdenv.lib.licenses.asl20;
maintainers = with stdenv.lib.maintainers; [ thoughtpolice raskin ];
platforms = with stdenv.lib.platforms; unix;
+6 -3
View File
@@ -1,4 +1,4 @@
{ stdenv, fetchFromGitHub, z3, ocamlPackages, makeWrapper }:
{ stdenv, fetchFromGitHub, z3, ocamlPackages, makeWrapper, installShellFiles }:
stdenv.mkDerivation rec {
pname = "fstar";
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
sha256 = "0wix7l229afkn6c6sk4nwkfq0nznsiqdkds4ixi2yyf72immwmmb";
};
nativeBuildInputs = [ makeWrapper ];
nativeBuildInputs = [ makeWrapper installShellFiles ];
buildInputs = with ocamlPackages; [
z3 ocaml findlib batteries menhir stdint
@@ -33,11 +33,14 @@ stdenv.mkDerivation rec {
installFlags = [ "-C" "src/ocaml-output" ];
postInstall = ''
wrapProgram $out/bin/fstar.exe --prefix PATH ":" "${z3}/bin"
installShellCompletion --bash .completion/bash/fstar.exe.bash
installShellCompletion --fish .completion/fish/fstar.exe.fish
installShellCompletion --zsh --name _fstar.exe .completion/zsh/__fstar.exe
'';
meta = with stdenv.lib; {
description = "ML-like functional programming language aimed at program verification";
homepage = https://www.fstar-lang.org;
homepage = "https://www.fstar-lang.org";
license = licenses.asl20;
platforms = with platforms; darwin ++ linux;
maintainers = with maintainers; [ gebner ];
+11 -11
View File
@@ -1,6 +1,10 @@
{ stdenv, fetchurl, autoconf, gcc, coreutils, ... }:
# This derivation is a reduced-functionality variant of Gambit stable,
# used to compile the full version of Gambit stable *and* unstable.
stdenv.mkDerivation {
{ gccStdenv, lib, fetchurl, autoconf, gcc, coreutils, gambit-support, ... }:
# As explained in build.nix, GCC compiles Gambit 10x faster than Clang, for code 3x better
gccStdenv.mkDerivation {
pname = "gambit-bootstrap";
version = "4.9.3";
@@ -16,29 +20,25 @@ stdenv.mkDerivation {
CPP=${gcc}/bin/cpp CXXCPP=${gcc}/bin/cpp LD=${gcc}/bin/ld \
XMKMF=${coreutils}/bin/false
unset CFLAGS LDFLAGS LIBS CPPFLAGS CXXFLAGS
./configure --prefix=$out
./configure --prefix=$out/gambit
'';
buildPhase = ''
# Copy the (configured) sources now, not later, so we don't have to filter out
# all the intermediate build products.
mkdir -p $out ; cp -rp . $out/
mkdir -p $out/gambit ; cp -rp . $out/gambit/
# build the gsc-boot* compiler
make bootstrap
make -j$NIX_BUILD_CORES bootstrap
'';
installPhase = ''
cp -fa ./ $out/
cp -fa ./ $out/gambit/
'';
forceShare = [ "info" ];
meta = {
meta = gambit-support.meta // {
description = "Optimizing Scheme to C compiler, bootstrap step";
homepage = "http://gambitscheme.org";
license = stdenv.lib.licenses.lgpl2;
platforms = stdenv.lib.platforms.unix;
maintainers = with stdenv.lib.maintainers; [ thoughtpolice raskin fare ];
};
}
+40 -28
View File
@@ -1,11 +1,13 @@
{ stdenv, git, openssl, autoconf, pkgs, makeStaticLibraries, version, gcc, src, coreutils }:
{ gccStdenv, lib, git, openssl, autoconf, pkgs, makeStaticLibraries, gcc, coreutils, gnused, gnugrep,
src, version, git-version,
gambit-support, optimizationSetting ? "-O1", gambit-params ? pkgs.gambit-support.stable-params }:
# Note that according to a benchmark run by Marc Feeley on May 2018,
# clang is 10x (with default settings) to 15% (with -O2) slower than GCC at compiling
# Gambit output, producing code that is 3x slower. IIRC the benchmarks from Gambit@30,
# the numbers were still heavily in favor of GCC in October 2019.
# Thus we use GCC over clang, even on macOS.
#
# Also note that I (fare) just ran benchmarks from https://github.com/ecraven/r7rs-benchmarks
# with Gambit 4.9.3 with -O1 vs -O2 vs -Os on Feb 2020. Which wins depends on the benchmark.
# The fight is unclear between -O1 and -O2, where -O1 wins more often, by up to 17%,
@@ -13,29 +15,33 @@
# However, -Os seems more consistent in winning slightly against both -O1 and -O2,
# and is overall 15% faster than -O2. As for compile times, -O1 is fastest,
# -Os is about 29%-33% slower than -O1, while -O2 is about 40%-50% slower than -O1.
# Overall, -Os seems like the best choice, and that's what we now use.
#
# Overall, -Os seems like the best choice, but I care more about compile-time,
# so I stick with -O1 (in the defaults above), which is also the default for Gambit.
gccStdenv.mkDerivation rec {
stdenv.mkDerivation rec {
pname = "gambit";
inherit version;
inherit src;
bootstrap = import ./bootstrap.nix ( pkgs );
inherit src version git-version;
bootstrap = gambit-support.gambit-bootstrap;
# TODO: if/when we can get all the library packages we depend on to have static versions,
# we could use something like (makeStaticLibraries openssl) to enable creation
# of statically linked binaries by gsc.
buildInputs = [ git autoconf bootstrap openssl ];
# TODO: patch gambit's source so it has the full path to sed, grep, fgrep? Is there more?
# Or wrap relevant programs to add a suitable PATH ?
#runtimeDeps = [ gnused gnugrep ];
configureFlags = [
"--enable-single-host"
"--enable-c-opt=-Os"
"--enable-c-opt=${optimizationSetting}"
"--enable-gcc-opts"
"--enable-shared"
"--enable-absolute-shared-libs" # Yes, NixOS will want an absolute path, and fix it.
"--enable-poll"
"--enable-openssl"
"--enable-default-runtime-options=f8,-8,t8" # Default to UTF-8 for source and all I/O
"--enable-default-runtime-options=${gambit-params.defaultRuntimeOptions}"
# "--enable-debug" # Nope: enables plenty of good stuff, but also the costly console.log
# "--enable-multiple-versions" # Nope, NixOS already does version multiplexing
# "--enable-guide"
@@ -50,14 +56,22 @@ stdenv.mkDerivation rec {
# "--enable-coverage"
# "--enable-inline-jumps"
# "--enable-char-size=1" # default is 4
];
] ++
# due not enable poll on darwin due to https://github.com/gambit/gambit/issues/498
lib.optional (!gccStdenv.isDarwin) "--enable-poll";
configurePhase = ''
export CC=${gcc}/bin/gcc CXX=${gcc}/bin/g++ \
CPP=${gcc}/bin/cpp CXXCPP=${gcc}/bin/cpp LD=${gcc}/bin/ld \
export CC=${gcc}/bin/gcc \
CXX=${gcc}/bin/g++ \
CPP=${gcc}/bin/cpp \
CXXCPP=${gcc}/bin/cpp \
LD=${gcc}/bin/ld \
XMKMF=${coreutils}/bin/false
unset CFLAGS LDFLAGS LIBS CPPFLAGS CXXFLAGS
./configure --prefix=$out ${builtins.concatStringsSep " " configureFlags}
${gambit-params.fix-stamp git-version}
./configure --prefix=$out/gambit ${builtins.concatStringsSep " " configureFlags}
# OS-specific paths are hardcoded in ./configure
substituteInPlace config.status \
@@ -69,28 +83,26 @@ stdenv.mkDerivation rec {
buildPhase = ''
# Make bootstrap compiler, from release bootstrap
mkdir -p boot &&
cp -rp ${bootstrap}/. boot/. &&
cp -rp ${bootstrap}/gambit/. boot/. &&
chmod -R u+w boot &&
cd boot &&
cp ../gsc/makefile.in ../gsc/*.scm gsc && # */
cp ../gsc/makefile.in ../gsc/*.scm gsc/ && # */
./configure &&
for i in lib gsi gsc ; do (cd $i ; make ) ; done &&
for i in lib gsi gsc ; do (cd $i ; make -j$NIX_BUILD_CORES) ; done &&
cd .. &&
cp boot/gsc/gsc gsc-boot &&
# Now use the bootstrap compiler to build the real thing!
make -j2 from-scratch
make -j$NIX_BUILD_CORES from-scratch
'';
postInstall = ''
mkdir $out/bin
cd $out/bin
ln -s ../gambit/bin/* .
'';
doCheck = true;
meta = {
description = "Optimizing Scheme to C compiler";
homepage = "http://gambitscheme.org";
license = stdenv.lib.licenses.lgpl2;
# NB regarding platforms: only actually tested on Linux, *should* work everywhere,
# but *might* need adaptation e.g. on macOS.
platforms = stdenv.lib.platforms.unix;
maintainers = with stdenv.lib.maintainers; [ thoughtpolice raskin fare ];
};
meta = gambit-support.meta;
}
@@ -1,10 +1,10 @@
{ stdenv, callPackage, fetchurl }:
{ callPackage, fetchurl }:
callPackage ./build.nix {
callPackage ./build.nix rec {
version = "4.9.3";
git-version = version;
src = fetchurl {
url = "http://www.iro.umontreal.ca/~gambit/download/gambit/v4.9/source/gambit-v4_9_3.tgz";
sha256 = "1p6172vhcrlpjgia6hsks1w4fl8rdyjf9xjh14wxfkv7dnx8a5hk";
};
inherit stdenv;
}
@@ -0,0 +1,33 @@
{ pkgs, lib }:
rec {
stable-params = {
defaultRuntimeOptions = "f8,-8,t8";
buildRuntimeOptions = "f8,-8,t8";
fix-stamp = git-version : "";
};
unstable-params = {
defaultRuntimeOptions = "iL,fL,-L,tL";
buildRuntimeOptions = "i8,f8,-8,t8";
fix-stamp = git-version : ''
substituteInPlace configure \
--replace "$(grep '^PACKAGE_VERSION=.*$' configure)" 'PACKAGE_VERSION="v${git-version}"' \
--replace "$(grep '^PACKAGE_STRING=.*$' configure)" 'PACKAGE_STRING="Gambit v${git-version}"' ;
'';
};
export-gambopt = params : "export GAMBOPT=${params.buildRuntimeOptions} ;";
gambit-bootstrap = import ./bootstrap.nix ( pkgs );
meta = {
description = "Optimizing Scheme to C compiler";
homepage = "http://gambitscheme.org";
license = lib.licenses.lgpl21; # dual, also asl20
# NB regarding platforms: continuously tested on Linux,
# tested on macOS once in a while, *should* work everywhere.
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [ thoughtpolice raskin fare ];
};
}
@@ -1,13 +1,13 @@
{ stdenv, callPackage, fetchFromGitHub }:
{ callPackage, fetchFromGitHub, gambit-support }:
callPackage ./build.nix {
version = "unstable-2020-02-24";
# git-version = "4.9.3-979-gc69e9f70";
version = "unstable-2020-07-29";
git-version = "4.9.3-1232-gbba388b8";
src = fetchFromGitHub {
owner = "feeley";
repo = "gambit";
rev = "c69e9f70dfdc6545353b135a5d5e2f9234f1e1cc";
sha256 = "1f69n7yzzdv3wpnjlrbck38xpa8115vbady43mc544l39ckklr0k";
rev = "bba388b80ca62a77883a8936d64b03316808696a";
sha256 = "0iqlp1mvxz8g32kqrqm0phnnp1i5c4jrapqh2wqwa8fh1vgnizg1";
};
inherit stdenv;
gambit-params = gambit-support.unstable-params;
}
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
'';
meta = with stdenv.lib; {
homepage = http://www.avr-asm-tutorial.net/gavrasm;
homepage = "http://www.avr-asm-tutorial.net/gavrasm";
description = "AVR Assembler for ATMEL AVR-Processors";
license = licenses.unfree;
maintainers = with maintainers; [ mafo ];
@@ -0,0 +1,287 @@
{ stdenv, targetPackages, fetchurl, fetchpatch, noSysDirs
, langC ? true, langCC ? true, langFortran ? false
, langAda ? false
, langObjC ? stdenv.targetPlatform.isDarwin
, langObjCpp ? stdenv.targetPlatform.isDarwin
, langGo ? false
, profiledCompiler ? false
, langJit ? false
, staticCompiler ? false
, enableShared ? true
, enableLTO ? true
, texinfo ? null
, perl ? null # optional, for texi2pod (then pod2man)
, gmp, mpfr, libmpc, gettext, which
, libelf # optional, for link-time optimizations (LTO)
, isl ? null # optional, for the Graphite optimization framework.
, zlib ? null
, gnatboot ? null
, enableMultilib ? false
, enablePlugin ? stdenv.hostPlatform == stdenv.buildPlatform # Whether to support user-supplied plug-ins
, name ? "gcc"
, libcCross ? null
, threadsCross ? null # for MinGW
, crossStageStatic ? false
, # Strip kills static libs of other archs (hence no cross)
stripped ? stdenv.hostPlatform == stdenv.buildPlatform
&& stdenv.targetPlatform == stdenv.hostPlatform
, gnused ? null
, cloog # unused; just for compat with gcc4, as we override the parameter on some places
, buildPackages
}:
# LTO needs libelf and zlib.
assert libelf != null -> zlib != null;
# Make sure we get GNU sed.
assert stdenv.hostPlatform.isDarwin -> gnused != null;
# The go frontend is written in c++
assert langGo -> langCC;
assert langAda -> gnatboot != null;
# threadsCross is just for MinGW
assert threadsCross != null -> stdenv.targetPlatform.isWindows;
with stdenv.lib;
with builtins;
let majorVersion = "10";
version = "${majorVersion}.1.0";
inherit (stdenv) buildPlatform hostPlatform targetPlatform;
patches =
optional (targetPlatform != hostPlatform) ../libstdc++-target.patch
++ optional noSysDirs ../no-sys-dirs.patch
/* ++ optional (hostPlatform != buildPlatform) (fetchpatch { # XXX: Refine when this should be applied
url = "https://git.busybox.net/buildroot/plain/package/gcc/${version}/0900-remove-selftests.patch?id=11271540bfe6adafbc133caf6b5b902a816f5f02";
sha256 = ""; # TODO: uncomment and check hash when available.
}) */
++ optional langAda ../gnat-cflags.patch
++ optional langFortran ../gfortran-driving.patch
++ optional (targetPlatform.libc == "musl" && targetPlatform.isPower) ../ppc-musl.patch
++ optional (!crossStageStatic && targetPlatform.isMinGW) (fetchpatch {
url = "https://raw.githubusercontent.com/lhmouse/MINGW-packages/${import ../common/mfcgthreads-patches-repo.nix}/mingw-w64-gcc-git/9000-gcc-${majorVersion}-branch-Added-mcf-thread-model-support-from-mcfgthread.patch";
sha256 = "1in5kvcknlpi9z1vvjw6jfmwy8k12zvbqlqfnq84qpm99r0rh00a";
});
/* Cross-gcc settings (build == host != target) */
crossMingw = targetPlatform != hostPlatform && targetPlatform.libc == "msvcrt";
stageNameAddon = if crossStageStatic then "stage-static" else "stage-final";
crossNameAddon = optionalString (targetPlatform != hostPlatform) "${targetPlatform.config}-${stageNameAddon}-";
in
stdenv.mkDerivation ({
pname = "${crossNameAddon}${name}${if stripped then "" else "-debug"}";
inherit version;
builder = ../builder.sh;
src = fetchurl {
url = "mirror://gcc/releases/gcc-${version}/gcc-${version}.tar.xz";
sha256 = "b6898a23844b656f1b68691c5c012036c2e694ac4b53a8918d4712ad876e7ea2";
};
inherit patches;
outputs = [ "out" "man" "info" ] ++ stdenv.lib.optional (!langJit) "lib";
setOutputFlags = false;
NIX_NO_SELF_RPATH = true;
libc_dev = stdenv.cc.libc_dev;
hardeningDisable = [ "format" "pie" ];
# This should kill all the stdinc frameworks that gcc and friends like to
# insert into default search paths.
prePatch = stdenv.lib.optionalString hostPlatform.isDarwin ''
substituteInPlace gcc/config/darwin-c.c \
--replace 'if (stdinc)' 'if (0)'
substituteInPlace libgcc/config/t-slibgcc-darwin \
--replace "-install_name @shlib_slibdir@/\$(SHLIB_INSTALL_NAME)" "-install_name ''${!outputLib}/lib/\$(SHLIB_INSTALL_NAME)"
substituteInPlace libgfortran/configure \
--replace "-install_name \\\$rpath/\\\$soname" "-install_name ''${!outputLib}/lib/\\\$soname"
'';
postPatch = ''
configureScripts=$(find . -name configure)
for configureScript in $configureScripts; do
patchShebangs $configureScript
done
'' + (
if targetPlatform != hostPlatform || stdenv.cc.libc != null then
# On NixOS, use the right path to the dynamic linker instead of
# `/lib/ld*.so'.
let
libc = if libcCross != null then libcCross else stdenv.cc.libc;
in
(
'' echo "fixing the \`GLIBC_DYNAMIC_LINKER', \`UCLIBC_DYNAMIC_LINKER', and \`MUSL_DYNAMIC_LINKER' macros..."
for header in "gcc/config/"*-gnu.h "gcc/config/"*"/"*.h
do
grep -q _DYNAMIC_LINKER "$header" || continue
echo " fixing \`$header'..."
sed -i "$header" \
-e 's|define[[:blank:]]*\([UCG]\+\)LIBC_DYNAMIC_LINKER\([0-9]*\)[[:blank:]]"\([^\"]\+\)"$|define \1LIBC_DYNAMIC_LINKER\2 "${libc.out}\3"|g' \
-e 's|define[[:blank:]]*MUSL_DYNAMIC_LINKER\([0-9]*\)[[:blank:]]"\([^\"]\+\)"$|define MUSL_DYNAMIC_LINKER\1 "${libc.out}\2"|g'
done
''
+ stdenv.lib.optionalString (targetPlatform.libc == "musl")
''
sed -i gcc/config/linux.h -e '1i#undef LOCAL_INCLUDE_DIR'
''
)
else "")
+ stdenv.lib.optionalString targetPlatform.isAvr ''
makeFlagsArray+=(
'LIMITS_H_TEST=false'
)
'';
inherit noSysDirs staticCompiler crossStageStatic
libcCross crossMingw;
depsBuildBuild = [ buildPackages.stdenv.cc ];
nativeBuildInputs = [ texinfo which gettext ]
++ (optional (perl != null) perl);
# For building runtime libs
depsBuildTarget =
if hostPlatform == buildPlatform then [
targetPackages.stdenv.cc.bintools # newly-built gcc will be used
] else assert targetPlatform == hostPlatform; [ # build != host == target
stdenv.cc
];
buildInputs = [
gmp mpfr libmpc libelf
targetPackages.stdenv.cc.bintools # For linking code at run-time
] ++ (optional (isl != null) isl)
++ (optional (zlib != null) zlib)
# The builder relies on GNU sed (for instance, Darwin's `sed' fails with
# "-i may not be used with stdin"), and `stdenvNative' doesn't provide it.
++ (optional hostPlatform.isDarwin gnused)
++ (optional langAda gnatboot)
;
depsTargetTarget = optional (!crossStageStatic && threadsCross != null) threadsCross;
NIX_LDFLAGS = stdenv.lib.optionalString hostPlatform.isSunOS "-lm -ldl";
preConfigure = import ../common/pre-configure.nix {
inherit (stdenv) lib;
inherit version hostPlatform gnatboot langAda langGo;
};
dontDisableStatic = true;
# TODO(@Ericson2314): Always pass "--target" and always prefix.
configurePlatforms = [ "build" "host" ] ++ stdenv.lib.optional (targetPlatform != hostPlatform) "target";
configureFlags = import ../common/configure-flags.nix {
inherit
stdenv
targetPackages
crossStageStatic libcCross
version
gmp mpfr libmpc libelf isl
enableLTO
enableMultilib
enablePlugin
enableShared
langC
langCC
langFortran
langAda
langGo
langObjC
langObjCpp
langJit
;
};
targetConfig = if targetPlatform != hostPlatform then targetPlatform.config else null;
buildFlags = optional
(targetPlatform == hostPlatform && hostPlatform == buildPlatform)
(if profiledCompiler then "profiledbootstrap" else "bootstrap");
dontStrip = !stripped;
installTargets = optional stripped "install-strip";
# https://gcc.gnu.org/install/specific.html#x86-64-x-solaris210
${if hostPlatform.system == "x86_64-solaris" then "CC" else null} = "gcc -m64";
# Setting $CPATH and $LIBRARY_PATH to make sure both `gcc' and `xgcc' find the
# library headers and binaries, regarless of the language being compiled.
#
# Likewise, the LTO code doesn't find zlib.
#
# Cross-compiling, we need gcc not to read ./specs in order to build the g++
# compiler (after the specs for the cross-gcc are created). Having
# LIBRARY_PATH= makes gcc read the specs from ., and the build breaks.
CPATH = optionals (targetPlatform == hostPlatform) (makeSearchPathOutput "dev" "include" ([]
++ optional (zlib != null) zlib
));
LIBRARY_PATH = optionals (targetPlatform == hostPlatform) (makeLibraryPath (optional (zlib != null) zlib));
inherit
(import ../common/extra-target-flags.nix {
inherit stdenv crossStageStatic libcCross threadsCross;
})
EXTRA_FLAGS_FOR_TARGET
EXTRA_LDFLAGS_FOR_TARGET
;
passthru = {
inherit langC langCC langObjC langObjCpp langAda langFortran langGo version;
isGNU = true;
};
enableParallelBuilding = true;
inherit enableMultilib;
inherit (stdenv) is64bit;
meta = {
homepage = "https://gcc.gnu.org/";
license = stdenv.lib.licenses.gpl3Plus; # runtime support libraries are typically LGPLv3+
description = "GNU Compiler Collection, version ${version}"
+ (if stripped then "" else " (with debugging info)");
longDescription = ''
The GNU Compiler Collection includes compiler front ends for C, C++,
Objective-C, Fortran, OpenMP for C/C++/Fortran, and Ada, as well as
libraries for these languages (libstdc++, libgomp,...).
GCC development is a part of the GNU Project, aiming to improve the
compiler used in the GNU system including the GNU/Linux variant.
'';
maintainers = with stdenv.lib.maintainers; [ synthetica ];
platforms =
stdenv.lib.platforms.linux ++
stdenv.lib.platforms.freebsd ++
stdenv.lib.platforms.illumos ++
stdenv.lib.platforms.darwin;
};
}
// optionalAttrs (targetPlatform != hostPlatform && targetPlatform.libc == "msvcrt" && crossStageStatic) {
makeFlags = [ "all-gcc" "all-target-libgcc" ];
installTargets = "install-gcc install-target-libgcc";
}
// optionalAttrs (enableMultilib) { dontMoveLib64 = true; }
)
@@ -5,6 +5,7 @@
, langJava ? false
, langGo ? false
, profiledCompiler ? false
, langJit ? false
, staticCompiler ? false
, enableShared ? true
, enableLTO ? true
@@ -89,7 +90,7 @@ let majorVersion = "4";
# Antlr (optional) allows the Java `gjdoc' tool to be built. We want a
# binary distribution here to allow the whole chain to be bootstrapped.
javaAntlr = fetchurl {
url = https://www.antlr.org/download/antlr-4.4-complete.jar;
url = "https://www.antlr.org/download/antlr-4.4-complete.jar";
sha256 = "02lda2imivsvsis8rnzmbrbp8rh1kb8vmq4i67pqhkwz7lf8y6dz";
};
@@ -215,6 +216,7 @@ stdenv.mkDerivation ({
langGo
langObjC
langObjCpp
langJit
;
};
@@ -265,8 +267,8 @@ stdenv.mkDerivation ({
(import ../common/extra-target-flags.nix {
inherit stdenv crossStageStatic libcCross threadsCross;
})
EXTRA_TARGET_FLAGS
EXTRA_TARGET_LDFLAGS
EXTRA_FLAGS_FOR_TARGET
EXTRA_LDFLAGS_FOR_TARGET
;
passthru = {
@@ -281,7 +283,7 @@ stdenv.mkDerivation ({
inherit (stdenv) is64bit;
meta = {
homepage = https://gcc.gnu.org/;
homepage = "https://gcc.gnu.org/";
license = stdenv.lib.licenses.gpl3Plus; # runtime support libraries are typically LGPLv3+
description = "GNU Compiler Collection, version ${version}"
+ (if stripped then "" else " (with debugging info)");
@@ -5,6 +5,7 @@
, langJava ? false
, langGo ? false
, profiledCompiler ? false
, langJit ? false
, staticCompiler ? false
, enableShared ? true
, enableLTO ? true
@@ -62,6 +63,7 @@ let majorVersion = "4";
patches =
[ ../use-source-date-epoch.patch ../parallel-bconfig.patch ./parallel-strsignal.patch
./libsanitizer.patch
(fetchpatch {
name = "avoid-ustat-glibc-2.28.patch";
url = "https://gitweb.gentoo.org/proj/gcc-patches.git/plain/4.9.4/gentoo/100_all_avoid-ustat-glibc-2.28.patch?id=55fcb515620a8f7d3bb77eba938aa0fcf0d67c96";
@@ -100,7 +102,7 @@ let majorVersion = "4";
# Antlr (optional) allows the Java `gjdoc' tool to be built. We want a
# binary distribution here to allow the whole chain to be bootstrapped.
javaAntlr = fetchurl {
url = https://www.antlr.org/download/antlr-4.4-complete.jar;
url = "https://www.antlr.org/download/antlr-4.4-complete.jar";
sha256 = "02lda2imivsvsis8rnzmbrbp8rh1kb8vmq4i67pqhkwz7lf8y6dz";
};
@@ -227,6 +229,7 @@ stdenv.mkDerivation ({
langGo
langObjC
langObjCpp
langJit
;
};
@@ -277,8 +280,8 @@ stdenv.mkDerivation ({
(import ../common/extra-target-flags.nix {
inherit stdenv crossStageStatic libcCross threadsCross;
})
EXTRA_TARGET_FLAGS
EXTRA_TARGET_LDFLAGS
EXTRA_FLAGS_FOR_TARGET
EXTRA_LDFLAGS_FOR_TARGET
;
passthru = {
@@ -292,7 +295,7 @@ stdenv.mkDerivation ({
inherit (stdenv) is64bit;
meta = {
homepage = https://gcc.gnu.org/;
homepage = "https://gcc.gnu.org/";
license = stdenv.lib.licenses.gpl3Plus; # runtime support libraries are typically LGPLv3+
description = "GNU Compiler Collection, version ${version}"
+ (if stripped then "" else " (with debugging info)");
@@ -0,0 +1,24 @@
diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
index aec950454..5bda9b3a3 100644
--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
+++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
@@ -156,18 +156,13 @@ namespace __sanitizer {
#elif defined(__sparc__)
# if defined(__arch64__)
unsigned mode;
- unsigned short __pad1;
-# else
- unsigned short __pad1;
- unsigned short mode;
unsigned short __pad2;
# endif
unsigned short __seq;
unsigned long long __unused1;
unsigned long long __unused2;
#else
- unsigned short mode;
- unsigned short __pad1;
+ unsigned int mode;
unsigned short __seq;
unsigned short __pad2;
#if defined(__x86_64__) && !defined(_LP64)
@@ -0,0 +1,62 @@
From 8b55f1047cf3491429c1af607e5dac08a81db6e1 Mon Sep 17 00:00:00 2001
From: Maximilian Bosch <maximilian@mbosch.me>
Date: Thu, 20 Feb 2020 15:08:36 +0100
Subject: [PATCH] Fix build for glibc 2.31
---
.../sanitizer_platform_limits_posix.cc | 5 +++--
.../sanitizer_platform_limits_posix.h | 15 +--------------
2 files changed, 4 insertions(+), 16 deletions(-)
diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc
index 069d8d557..c49c28c6e 100644
--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc
+++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc
@@ -1130,8 +1130,9 @@ CHECK_SIZE_AND_OFFSET(ipc_perm, cgid);
#ifndef __GLIBC_PREREQ
#define __GLIBC_PREREQ(x, y) 0
#endif
-#if !defined(__aarch64__) || !SANITIZER_LINUX || __GLIBC_PREREQ (2, 21)
-/* On aarch64 glibc 2.20 and earlier provided incorrect mode field. */
+#if !SANITIZER_LINUX || __GLIBC_PREREQ (2, 31)
+/* glibc 2.30 and earlier provided 16-bit mode field instead of 32-bit
+ on many architectures. */
CHECK_SIZE_AND_OFFSET(ipc_perm, mode);
#endif
diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
index 304d04e39..568081a79 100644
--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
+++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
@@ -200,27 +200,14 @@ namespace __sanitizer {
unsigned __seq;
u64 __unused1;
u64 __unused2;
-#elif defined(__mips__) || defined(__aarch64__)
- unsigned int mode;
- unsigned short __seq;
- unsigned short __pad1;
- unsigned long __unused1;
- unsigned long __unused2;
#elif defined(__sparc__)
-# if defined(__arch64__)
unsigned mode;
- unsigned short __pad1;
-# else
- unsigned short __pad1;
- unsigned short mode;
unsigned short __pad2;
-# endif
unsigned short __seq;
unsigned long long __unused1;
unsigned long long __unused2;
#else
- unsigned short mode;
- unsigned short __pad1;
+ unsigned int mode;
unsigned short __seq;
unsigned short __pad2;
#if defined(__x86_64__) && !defined(_LP64)
--
2.25.0
+28 -18
View File
@@ -1,10 +1,12 @@
{ stdenv, targetPackages, fetchurl, fetchpatch, fetchFromGitHub, noSysDirs
, langC ? true, langCC ? true, langFortran ? false
, langAda ? false
, langObjC ? stdenv.targetPlatform.isDarwin
, langObjCpp ? stdenv.targetPlatform.isDarwin
, langJava ? false
, langGo ? false
, profiledCompiler ? false
, langJit ? false
, staticCompiler ? false
, enableShared ? true
, enableLTO ? true
@@ -15,6 +17,7 @@
, libelf # optional, for link-time optimizations (LTO)
, isl ? null # optional, for the Graphite optimization framework.
, zlib ? null, boehmgc ? null
, gnatboot ? null
, zip ? null, unzip ? null, pkgconfig ? null
, gtk2 ? null, libart_lgpl ? null
, libX11 ? null, libXt ? null, libSM ? null, libICE ? null, libXtst ? null
@@ -48,6 +51,8 @@ assert stdenv.hostPlatform.isDarwin -> gnused != null;
# The go frontend is written in c++
assert langGo -> langCC;
assert langAda -> gnatboot != null;
# threadsCross is just for MinGW
assert threadsCross != null -> stdenv.targetPlatform.isWindows;
@@ -59,10 +64,11 @@ let majorVersion = "6";
inherit (stdenv) buildPlatform hostPlatform targetPlatform;
patches =
[ ../use-source-date-epoch.patch ]
++ optional (targetPlatform != hostPlatform) ../libstdc++-target.patch
patches = optionals (!stdenv.targetPlatform.isRedox) [
../use-source-date-epoch.patch ./0001-Fix-build-for-glibc-2.31.patch
] ++ optional (targetPlatform != hostPlatform) ../libstdc++-target.patch
++ optional noSysDirs ../no-sys-dirs.patch
++ optional langAda ../gnat-cflags.patch
++ optional langFortran ../gfortran-driving.patch
++ optional (targetPlatform.libc == "musl") ../libgomp-dont-force-initial-exec.patch
++ optional (!crossStageStatic && targetPlatform.isMinGW) (fetchpatch {
@@ -82,7 +88,7 @@ let majorVersion = "6";
# Antlr (optional) allows the Java `gjdoc' tool to be built. We want a
# binary distribution here to allow the whole chain to be bootstrapped.
javaAntlr = fetchurl {
url = https://www.antlr.org/download/antlr-4.4-complete.jar;
url = "https://www.antlr.org/download/antlr-4.4-complete.jar";
sha256 = "02lda2imivsvsis8rnzmbrbp8rh1kb8vmq4i67pqhkwz7lf8y6dz";
};
@@ -114,6 +120,11 @@ stdenv.mkDerivation ({
repo = "gcc-vc4";
rev = "e90ff43f9671c760cf0d1dd62f569a0fb9bf8918";
sha256 = "0gxf66hwqk26h8f853sybphqa5ca0cva2kmrw5jsiv6139g0qnp8";
} else if stdenv.targetPlatform.isRedox then fetchFromGitHub {
owner = "redox-os";
repo = "gcc";
rev = "f360ac095028d286fc6dde4d02daed48f59813fa"; # `redox` branch
sha256 = "1an96h8l58pppyh3qqv90g8hgcfd9hj7igvh2gigmkxbrx94khfl";
} else fetchurl {
url = "mirror://gnu/gcc/gcc-${version}/gcc-${version}.tar.xz";
sha256 = "0i89fksfp6wr1xg9l8296aslcymv2idn60ip31wr9s4pwin7kwby";
@@ -121,7 +132,7 @@ stdenv.mkDerivation ({
inherit patches;
outputs = if langJava || langGo then ["out" "man" "info"]
outputs = if langJava || langGo || langJit then ["out" "man" "info"]
else [ "out" "lib" "man" "info" ];
setOutputFlags = false;
NIX_NO_SELF_RPATH = true;
@@ -131,21 +142,17 @@ stdenv.mkDerivation ({
hardeningDisable = [ "format" "pie" ];
prePatch =
(stdenv.lib.optionalString (langJava || langGo) ''
export lib=$out
'')
# This should kill all the stdinc frameworks that gcc and friends like to
# insert into default search paths.
+ stdenv.lib.optionalString hostPlatform.isDarwin ''
stdenv.lib.optionalString hostPlatform.isDarwin ''
substituteInPlace gcc/config/darwin-c.c \
--replace 'if (stdinc)' 'if (0)'
substituteInPlace libgcc/config/t-slibgcc-darwin \
--replace "-install_name @shlib_slibdir@/\$(SHLIB_INSTALL_NAME)" "-install_name $lib/lib/\$(SHLIB_INSTALL_NAME)"
--replace "-install_name @shlib_slibdir@/\$(SHLIB_INSTALL_NAME)" "-install_name ''${!outputLib}/lib/\$(SHLIB_INSTALL_NAME)"
substituteInPlace libgfortran/configure \
--replace "-install_name \\\$rpath/\\\$soname" "-install_name $lib/lib/\\\$soname"
--replace "-install_name \\\$rpath/\\\$soname" "-install_name ''${!outputLib}/lib/\\\$soname"
'';
postPatch =
@@ -180,7 +187,7 @@ stdenv.mkDerivation ({
nativeBuildInputs = [ texinfo which gettext ]
++ (optional (perl != null) perl)
++ (optional javaAwtGtk pkgconfig)
++ (optional (stdenv.targetPlatform.isVc4) flex);
++ (optional (with stdenv.targetPlatform; isVc4 || isRedox) flex);
# For building runtime libs
depsBuildTarget =
@@ -203,6 +210,7 @@ stdenv.mkDerivation ({
# The builder relies on GNU sed (for instance, Darwin's `sed' fails with
# "-i may not be used with stdin"), and `stdenvNative' doesn't provide it.
++ (optional hostPlatform.isDarwin gnused)
++ (optional langAda gnatboot)
;
depsTargetTarget = optional (!crossStageStatic && threadsCross != null) threadsCross;
@@ -211,7 +219,7 @@ stdenv.mkDerivation ({
preConfigure = import ../common/pre-configure.nix {
inherit (stdenv) lib;
inherit version hostPlatform langJava langGo;
inherit version hostPlatform gnatboot langJava langAda langGo;
};
dontDisableStatic = true;
@@ -237,9 +245,11 @@ stdenv.mkDerivation ({
langCC
langFortran
langJava javaAwtGtk javaAntlr javaEcj
langAda
langGo
langObjC
langObjCpp
langJit
;
};
@@ -290,12 +300,12 @@ stdenv.mkDerivation ({
(import ../common/extra-target-flags.nix {
inherit stdenv crossStageStatic libcCross threadsCross;
})
EXTRA_TARGET_FLAGS
EXTRA_TARGET_LDFLAGS
EXTRA_FLAGS_FOR_TARGET
EXTRA_LDFLAGS_FOR_TARGET
;
passthru = {
inherit langC langCC langObjC langObjCpp langFortran langGo version;
inherit langC langCC langObjC langObjCpp langFortran langAda langGo version;
isGNU = true;
};
@@ -305,7 +315,7 @@ stdenv.mkDerivation ({
inherit (stdenv) is64bit;
meta = {
homepage = https://gcc.gnu.org/;
homepage = "https://gcc.gnu.org/";
license = stdenv.lib.licenses.gpl3Plus; # runtime support libraries are typically LGPLv3+
description = "GNU Compiler Collection, version ${version}"
+ (if stripped then "" else " (with debugging info)");
@@ -0,0 +1,62 @@
From 2d03b6eaf823fc2db6a32b4a95e18f8a7474b47f Mon Sep 17 00:00:00 2001
From: Maximilian Bosch <maximilian@mbosch.me>
Date: Thu, 20 Feb 2020 01:56:42 +0100
Subject: [PATCH] Fix build for glibc 2.31
---
.../sanitizer_platform_limits_posix.cc | 5 +++--
.../sanitizer_platform_limits_posix.h | 15 +--------------
2 files changed, 4 insertions(+), 16 deletions(-)
diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc
index 97eae3fc7..4089d4695 100644
--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc
+++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc
@@ -1145,8 +1145,9 @@ CHECK_SIZE_AND_OFFSET(ipc_perm, uid);
CHECK_SIZE_AND_OFFSET(ipc_perm, gid);
CHECK_SIZE_AND_OFFSET(ipc_perm, cuid);
CHECK_SIZE_AND_OFFSET(ipc_perm, cgid);
-#if !defined(__aarch64__) || !SANITIZER_LINUX || __GLIBC_PREREQ (2, 21)
-/* On aarch64 glibc 2.20 and earlier provided incorrect mode field. */
+#if !SANITIZER_LINUX || __GLIBC_PREREQ (2, 31)
+/* glibc 2.30 and earlier provided 16-bit mode field instead of 32-bit
+ on many architectures. */
CHECK_SIZE_AND_OFFSET(ipc_perm, mode);
#endif
diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
index c13932283..3456fb2db 100644
--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
+++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
@@ -204,27 +204,14 @@ namespace __sanitizer {
unsigned __seq;
u64 __unused1;
u64 __unused2;
-#elif defined(__mips__) || defined(__aarch64__) || defined(__s390x__)
- unsigned int mode;
- unsigned short __seq;
- unsigned short __pad1;
- unsigned long __unused1;
- unsigned long __unused2;
#elif defined(__sparc__)
-# if defined(__arch64__)
unsigned mode;
- unsigned short __pad1;
-# else
- unsigned short __pad1;
- unsigned short mode;
unsigned short __pad2;
-# endif
unsigned short __seq;
unsigned long long __unused1;
unsigned long long __unused2;
#else
- unsigned short mode;
- unsigned short __pad1;
+ unsigned int mode;
unsigned short __seq;
unsigned short __pad2;
#if defined(__x86_64__) && !defined(_LP64)
--
2.25.0
+10 -6
View File
@@ -4,6 +4,7 @@
, langObjCpp ? stdenv.targetPlatform.isDarwin
, langGo ? false
, profiledCompiler ? false
, langJit ? false
, staticCompiler ? false
, enableShared ? true
, enableLTO ? true
@@ -52,6 +53,8 @@ let majorVersion = "7";
./riscv-pthread-reentrant.patch
# https://gcc.gnu.org/ml/gcc-patches/2018-03/msg00297.html
./riscv-no-relax.patch
./0001-Fix-build-for-glibc-2.31.patch
]
++ optional (targetPlatform != hostPlatform) ../libstdc++-target.patch
++ optionals targetPlatform.isNetBSD [
@@ -90,7 +93,7 @@ stdenv.mkDerivation ({
inherit patches;
outputs = [ "out" "lib" "man" "info" ];
outputs = [ "out" "man" "info" ] ++ stdenv.lib.optional (!langJit) "lib";
setOutputFlags = false;
NIX_NO_SELF_RPATH = true;
@@ -105,10 +108,10 @@ stdenv.mkDerivation ({
--replace 'if (stdinc)' 'if (0)'
substituteInPlace libgcc/config/t-slibgcc-darwin \
--replace "-install_name @shlib_slibdir@/\$(SHLIB_INSTALL_NAME)" "-install_name $lib/lib/\$(SHLIB_INSTALL_NAME)"
--replace "-install_name @shlib_slibdir@/\$(SHLIB_INSTALL_NAME)" "-install_name ''${!outputLib}/lib/\$(SHLIB_INSTALL_NAME)"
substituteInPlace libgfortran/configure \
--replace "-install_name \\\$rpath/\\\$soname" "-install_name $lib/lib/\\\$soname"
--replace "-install_name \\\$rpath/\\\$soname" "-install_name ''${!outputLib}/lib/\\\$soname"
'';
postPatch = ''
@@ -209,6 +212,7 @@ stdenv.mkDerivation ({
langGo
langObjC
langObjCpp
langJit
;
} ++ optional (targetPlatform.isAarch64) "--enable-fix-cortex-a53-843419"
++ optional targetPlatform.isNetBSD "--disable-libcilkrts"
@@ -248,8 +252,8 @@ stdenv.mkDerivation ({
(import ../common/extra-target-flags.nix {
inherit stdenv crossStageStatic libcCross threadsCross;
})
EXTRA_TARGET_FLAGS
EXTRA_TARGET_LDFLAGS
EXTRA_FLAGS_FOR_TARGET
EXTRA_LDFLAGS_FOR_TARGET
;
passthru = {
@@ -263,7 +267,7 @@ stdenv.mkDerivation ({
inherit (stdenv) is64bit;
meta = {
homepage = https://gcc.gnu.org/;
homepage = "https://gcc.gnu.org/";
license = stdenv.lib.licenses.gpl3Plus; # runtime support libraries are typically LGPLv3+
description = "GNU Compiler Collection, version ${version}"
+ (if stripped then "" else " (with debugging info)");
+8 -6
View File
@@ -4,6 +4,7 @@
, langObjCpp ? stdenv.targetPlatform.isDarwin
, langGo ? false
, profiledCompiler ? false
, langJit ? false
, staticCompiler ? false
, enableShared ? true
, enableLTO ? true
@@ -82,7 +83,7 @@ stdenv.mkDerivation ({
inherit patches;
outputs = [ "out" "lib" "man" "info" ];
outputs = [ "out" "man" "info" ] ++ stdenv.lib.optional (!langJit) "lib";
setOutputFlags = false;
NIX_NO_SELF_RPATH = true;
@@ -97,10 +98,10 @@ stdenv.mkDerivation ({
--replace 'if (stdinc)' 'if (0)'
substituteInPlace libgcc/config/t-slibgcc-darwin \
--replace "-install_name @shlib_slibdir@/\$(SHLIB_INSTALL_NAME)" "-install_name $lib/lib/\$(SHLIB_INSTALL_NAME)"
--replace "-install_name @shlib_slibdir@/\$(SHLIB_INSTALL_NAME)" "-install_name ''${!outputLib}/lib/\$(SHLIB_INSTALL_NAME)"
substituteInPlace libgfortran/configure \
--replace "-install_name \\\$rpath/\\\$soname" "-install_name $lib/lib/\\\$soname"
--replace "-install_name \\\$rpath/\\\$soname" "-install_name ''${!outputLib}/lib/\\\$soname"
'';
postPatch = ''
@@ -200,6 +201,7 @@ stdenv.mkDerivation ({
langGo
langObjC
langObjCpp
langJit
;
};
@@ -235,8 +237,8 @@ stdenv.mkDerivation ({
(import ../common/extra-target-flags.nix {
inherit stdenv crossStageStatic libcCross threadsCross;
})
EXTRA_TARGET_FLAGS
EXTRA_TARGET_LDFLAGS
EXTRA_FLAGS_FOR_TARGET
EXTRA_LDFLAGS_FOR_TARGET
;
passthru = {
@@ -250,7 +252,7 @@ stdenv.mkDerivation ({
inherit (stdenv) is64bit;
meta = {
homepage = https://gcc.gnu.org/;
homepage = "https://gcc.gnu.org/";
license = stdenv.lib.licenses.gpl3Plus; # runtime support libraries are typically LGPLv3+
description = "GNU Compiler Collection, version ${version}"
+ (if stripped then "" else " (with debugging info)");
+31 -21
View File
@@ -1,9 +1,12 @@
{ stdenv, targetPackages, fetchurl, fetchpatch, noSysDirs
, langC ? true, langCC ? true, langFortran ? false
, langAda ? false
, langObjC ? stdenv.targetPlatform.isDarwin
, langObjCpp ? stdenv.targetPlatform.isDarwin
, langD ? false
, langGo ? false
, profiledCompiler ? false
, langJit ? false
, staticCompiler ? false
, enableShared ? true
, enableLTO ? true
@@ -13,6 +16,7 @@
, libelf # optional, for link-time optimizations (LTO)
, isl ? null # optional, for the Graphite optimization framework.
, zlib ? null
, gnatboot ? null
, enableMultilib ? false
, enablePlugin ? stdenv.hostPlatform == stdenv.buildPlatform # Whether to support user-supplied plug-ins
, name ? "gcc"
@@ -27,6 +31,11 @@
, buildPackages
}:
# Note: this package is used for bootstrapping fetchurl, and thus
# cannot use fetchpatch! All mutable patches (generated by GitHub or
# cgit) that are needed here should be included directly in Nixpkgs as
# files.
# LTO needs libelf and zlib.
assert libelf != null -> zlib != null;
@@ -35,6 +44,7 @@ assert stdenv.hostPlatform.isDarwin -> gnused != null;
# The go frontend is written in c++
assert langGo -> langCC;
assert langAda -> gnatboot != null;
# threadsCross is just for MinGW
assert threadsCross != null -> stdenv.targetPlatform.isWindows;
@@ -43,7 +53,7 @@ with stdenv.lib;
with builtins;
let majorVersion = "9";
version = "${majorVersion}.2.0";
version = "${majorVersion}.3.0";
inherit (stdenv) buildPlatform hostPlatform targetPlatform;
@@ -54,6 +64,8 @@ let majorVersion = "9";
url = "https://git.busybox.net/buildroot/plain/package/gcc/${version}/0900-remove-selftests.patch?id=11271540bfe6adafbc133caf6b5b902a816f5f02";
sha256 = ""; # TODO: uncomment and check hash when available.
}) */
++ optional langAda ../gnat-cflags.patch
++ optional langD ../libphobos.patch
++ optional langFortran ../gfortran-driving.patch
++ optional (targetPlatform.libc == "musl" && targetPlatform.isPower) ../ppc-musl.patch
++ optional (!crossStageStatic && targetPlatform.isMinGW) (fetchpatch {
@@ -76,12 +88,12 @@ stdenv.mkDerivation ({
src = fetchurl {
url = "mirror://gcc/releases/gcc-${version}/gcc-${version}.tar.xz";
sha256 = "01mj3yk7z49i49168hg2cg7qs4bsccrrnv7pjmbdlf8j2a7z0vpa";
sha256 = "1la2yy27ziasyf0jvzk58y1i5b5bq2h176qil550bxhifs39gqbi";
};
inherit patches;
outputs = [ "out" "lib" "man" "info" ];
outputs = [ "out" "man" "info" ] ++ stdenv.lib.optional (!langJit) "lib";
setOutputFlags = false;
NIX_NO_SELF_RPATH = true;
@@ -96,10 +108,10 @@ stdenv.mkDerivation ({
--replace 'if (stdinc)' 'if (0)'
substituteInPlace libgcc/config/t-slibgcc-darwin \
--replace "-install_name @shlib_slibdir@/\$(SHLIB_INSTALL_NAME)" "-install_name $lib/lib/\$(SHLIB_INSTALL_NAME)"
--replace "-install_name @shlib_slibdir@/\$(SHLIB_INSTALL_NAME)" "-install_name ''${!outputLib}/lib/\$(SHLIB_INSTALL_NAME)"
substituteInPlace libgfortran/configure \
--replace "-install_name \\\$rpath/\\\$soname" "-install_name $lib/lib/\\\$soname"
--replace "-install_name \\\$rpath/\\\$soname" "-install_name ''${!outputLib}/lib/\\\$soname"
'';
postPatch = ''
@@ -132,10 +144,10 @@ stdenv.mkDerivation ({
)
else "")
+ stdenv.lib.optionalString targetPlatform.isAvr ''
makeFlagsArray+=(
'LIMITS_H_TEST=false'
)
'';
makeFlagsArray+=(
'LIMITS_H_TEST=false'
)
'';
inherit noSysDirs staticCompiler crossStageStatic
libcCross crossMingw;
@@ -163,6 +175,7 @@ stdenv.mkDerivation ({
# The builder relies on GNU sed (for instance, Darwin's `sed' fails with
# "-i may not be used with stdin"), and `stdenvNative' doesn't provide it.
++ (optional hostPlatform.isDarwin gnused)
++ (optional langAda gnatboot)
;
depsTargetTarget = optional (!crossStageStatic && threadsCross != null) threadsCross;
@@ -171,7 +184,7 @@ stdenv.mkDerivation ({
preConfigure = import ../common/pre-configure.nix {
inherit (stdenv) lib;
inherit version hostPlatform langGo;
inherit version hostPlatform gnatboot langAda langGo;
};
dontDisableStatic = true;
@@ -194,11 +207,14 @@ stdenv.mkDerivation ({
enableShared
langC
langD
langCC
langFortran
langAda
langGo
langObjC
langObjCpp
langJit
;
};
@@ -232,14 +248,14 @@ stdenv.mkDerivation ({
inherit
(import ../common/extra-target-flags.nix {
inherit stdenv crossStageStatic libcCross threadsCross;
inherit stdenv crossStageStatic langD libcCross threadsCross;
})
EXTRA_TARGET_FLAGS
EXTRA_TARGET_LDFLAGS
EXTRA_FLAGS_FOR_TARGET
EXTRA_LDFLAGS_FOR_TARGET
;
passthru = {
inherit langC langCC langObjC langObjCpp langFortran langGo version;
inherit langC langCC langObjC langObjCpp langAda langFortran langGo langD version;
isGNU = true;
};
@@ -248,14 +264,8 @@ stdenv.mkDerivation ({
inherit (stdenv) is64bit;
# In this particular combination it stopped creating lib output at all.
# TODO: perhaps find a better fix? (ideally understand what's going on)
postFixup = if crossStageStatic && targetPlatform.isMusl && targetPlatform.is32bit
then ''mkdir "$lib"''
else null;
meta = {
homepage = https://gcc.gnu.org/;
homepage = "https://gcc.gnu.org/";
license = stdenv.lib.licenses.gpl3Plus; # runtime support libraries are typically LGPLv3+
description = "GNU Compiler Collection, version ${version}"
+ (if stripped then "" else " (with debugging info)");
+43 -42
View File
@@ -25,12 +25,12 @@ echo "\$LIBRARY_PATH is \`${LIBRARY_PATH-}'"
if test "$noSysDirs" = "1"; then
declare \
EXTRA_BUILD_FLAGS EXTRA_FLAGS EXTRA_TARGET_FLAGS \
EXTRA_BUILD_LDFLAGS EXTRA_TARGET_LDFLAGS
EXTRA_FLAGS_FOR_BUILD EXTRA_FLAGS EXTRA_FLAGS_FOR_TARGET \
EXTRA_LDFLAGS_FOR_BUILD EXTRA_LDFLAGS_FOR_TARGET
# Extract flags from Bintools Wrappers
for pre in 'BUILD_' ''; do
curBintools="NIX_${pre}BINTOOLS"
for post in '_FOR_BUILD' ''; do
curBintools="NIX_BINTOOLS${post}"
declare -a extraLDFlags=()
if [[ -e "${!curBintools}/nix-support/orig-libc" ]]; then
@@ -48,20 +48,20 @@ if test "$noSysDirs" = "1"; then
extraLDFlags=("-L$libc_libdir" "-rpath" "$libc_libdir"
"${extraLDFlags[@]}")
for i in "${extraLDFlags[@]}"; do
declare EXTRA_${pre}LDFLAGS+=" -Wl,$i"
declare EXTRA_LDFLAGS${post}+=" -Wl,$i"
done
done
# Extract flags from CC Wrappers
for pre in 'BUILD_' ''; do
curCC="NIX_${pre}CC"
curFIXINC="NIX_${pre}FIXINC_DUMMY"
for post in '_FOR_BUILD' ''; do
curCC="NIX_CC${post}"
curFIXINC="NIX_FIXINC_DUMMY${post}"
declare -a extraFlags=()
if [[ -e "${!curCC}/nix-support/orig-libc" ]]; then
# Figure out what extra compiling flags to pass to the gcc compilers
# being generated to make sure that they use our libc.
extraFlags=($(< "${!curCC}/nix-support/libc-cflags"))
extraFlags=($(< "${!curCC}/nix-support/libc-crt1-cflags") $(< "${!curCC}/nix-support/libc-cflags"))
# The path to the Libc headers
libc_devdir="$(< "${!curCC}/nix-support/orig-libc-dev")"
@@ -69,11 +69,11 @@ if test "$noSysDirs" = "1"; then
# Use *real* header files, otherwise a limits.h is generated that
# does not include Libc's limits.h (notably missing SSIZE_MAX,
# which breaks the build).
declare NIX_${pre}FIXINC_DUMMY="$libc_devdir/include"
declare NIX_FIXINC_DUMMY${post}="$libc_devdir/include"
else
# Hack: support impure environments.
extraFlags=("-isystem" "/usr/include")
declare NIX_${pre}FIXINC_DUMMY=/usr/include
declare NIX_FIXINC_DUMMY${post}=/usr/include
fi
extraFlags=("-I${!curFIXINC}" "${extraFlags[@]}")
@@ -89,13 +89,13 @@ if test "$noSysDirs" = "1"; then
extraFlags=("-O2" "${extraFlags[@]}")
fi
declare EXTRA_${pre}FLAGS="${extraFlags[*]}"
declare EXTRA_FLAGS${post}="${extraFlags[*]}"
done
if test -z "${targetConfig-}"; then
# host = target, so the flags are the same
EXTRA_TARGET_FLAGS="$EXTRA_FLAGS"
EXTRA_TARGET_LDFLAGS="$EXTRA_LDFLAGS"
EXTRA_FLAGS_FOR_TARGET="$EXTRA_FLAGS"
EXTRA_LDFLAGS_FOR_TARGET="$EXTRA_LDFLAGS"
fi
# CFLAGS_FOR_TARGET are needed for the libstdc++ configure script to find
@@ -103,31 +103,31 @@ if test "$noSysDirs" = "1"; then
# FLAGS_FOR_TARGET are needed for the target libraries to receive the -Bxxx
# for the startfiles.
makeFlagsArray+=(
"BUILD_SYSTEM_HEADER_DIR=$NIX_BUILD_FIXINC_DUMMY"
"SYSTEM_HEADER_DIR=$NIX_BUILD_FIXINC_DUMMY"
"BUILD_SYSTEM_HEADER_DIR=$NIX_FIXINC_DUMMY_FOR_BUILD"
"SYSTEM_HEADER_DIR=$NIX_FIXINC_DUMMY_FOR_BUILD"
"NATIVE_SYSTEM_HEADER_DIR=$NIX_FIXINC_DUMMY"
"LDFLAGS_FOR_BUILD=$EXTRA_BUILD_LDFLAGS"
"LDFLAGS_FOR_BUILD=$EXTRA_LDFLAGS_FOR_BUILD"
#"LDFLAGS=$EXTRA_LDFLAGS"
"LDFLAGS_FOR_TARGET=$EXTRA_TARGET_LDFLAGS"
"LDFLAGS_FOR_TARGET=$EXTRA_LDFLAGS_FOR_TARGET"
"CFLAGS_FOR_BUILD=$EXTRA_BUILD_FLAGS $EXTRA_BUILD_LDFLAGS"
"CXXFLAGS_FOR_BUILD=$EXTRA_BUILD_FLAGS $EXTRA_BUILD_LDFLAGS"
"FLAGS_FOR_BUILD=$EXTRA_BUILD_FLAGS $EXTRA_BUILD_LDFLAGS"
"CFLAGS_FOR_BUILD=$EXTRA_FLAGS_FOR_BUILD $EXTRA_LDFLAGS_FOR_BUILD"
"CXXFLAGS_FOR_BUILD=$EXTRA_FLAGS_FOR_BUILD $EXTRA_LDFLAGS_FOR_BUILD"
"FLAGS_FOR_BUILD=$EXTRA_FLAGS_FOR_BUILD $EXTRA_LDFLAGS_FOR_BUILD"
# It seems there is a bug in GCC 5
#"CFLAGS=$EXTRA_FLAGS $EXTRA_LDFLAGS"
#"CXXFLAGS=$EXTRA_FLAGS $EXTRA_LDFLAGS"
"CFLAGS_FOR_TARGET=$EXTRA_TARGET_FLAGS $EXTRA_TARGET_LDFLAGS"
"CXXFLAGS_FOR_TARGET=$EXTRA_TARGET_FLAGS $EXTRA_TARGET_LDFLAGS"
"FLAGS_FOR_TARGET=$EXTRA_TARGET_FLAGS $EXTRA_TARGET_LDFLAGS"
"CFLAGS_FOR_TARGET=$EXTRA_FLAGS_FOR_TARGET $EXTRA_LDFLAGS_FOR_TARGET"
"CXXFLAGS_FOR_TARGET=$EXTRA_FLAGS_FOR_TARGET $EXTRA_LDFLAGS_FOR_TARGET"
"FLAGS_FOR_TARGET=$EXTRA_FLAGS_FOR_TARGET $EXTRA_LDFLAGS_FOR_TARGET"
)
if test -z "${targetConfig-}"; then
makeFlagsArray+=(
"BOOT_CFLAGS=$EXTRA_FLAGS $EXTRA_LDFLAGS"
"BOOT_LDFLAGS=$EXTRA_TARGET_FLAGS $EXTRA_TARGET_LDFLAGS"
"BOOT_LDFLAGS=$EXTRA_FLAGS_FOR_TARGET $EXTRA_LDFLAGS_FOR_TARGET"
)
fi
@@ -201,34 +201,35 @@ postConfigure() {
preInstall() {
mkdir -p "$out/${targetConfig}/lib"
mkdir -p "${!outputLib}/${targetConfig}/lib"
# Make lib64 symlinks to lib.
if [ -n "$is64bit" -a -z "$enableMultilib" ]; then
mkdir -p "$out/${targetConfig}/lib"
ln -s lib "$out/${targetConfig}/lib64"
mkdir -p "$lib/${targetConfig}/lib"
ln -s lib "$lib/${targetConfig}/lib64"
ln -s lib "${!outputLib}/${targetConfig}/lib64"
fi
}
postInstall() {
# Move runtime libraries to $lib.
moveToOutput "${targetConfig+$targetConfig/}lib/lib*.so*" "$lib"
moveToOutput "${targetConfig+$targetConfig/}lib/lib*.la" "$lib"
moveToOutput "${targetConfig+$targetConfig/}lib/lib*.dylib" "$lib"
moveToOutput "share/gcc-*/python" "$lib"
# Move runtime libraries to lib output.
moveToOutput "${targetConfig+$targetConfig/}lib/lib*.so*" "${!outputLib}"
moveToOutput "${targetConfig+$targetConfig/}lib/lib*.la" "${!outputLib}"
moveToOutput "${targetConfig+$targetConfig/}lib/lib*.dylib" "${!outputLib}"
moveToOutput "${targetConfig+$targetConfig/}lib/lib*.dll.a" "${!outputLib}"
moveToOutput "share/gcc-*/python" "${!outputLib}"
for i in "$lib/${targetConfig}"/lib/*.{la,py}; do
substituteInPlace "$i" --replace "$out" "$lib"
for i in "${!outputLib}/${targetConfig}"/lib/*.{la,py}; do
substituteInPlace "$i" --replace "$out" "${!outputLib}"
done
if [ -n "$enableMultilib" ]; then
moveToOutput "${targetConfig+$targetConfig/}lib64/lib*.so*" "$lib"
moveToOutput "${targetConfig+$targetConfig/}lib64/lib*.la" "$lib"
moveToOutput "${targetConfig+$targetConfig/}lib64/lib*.dylib" "$lib"
moveToOutput "${targetConfig+$targetConfig/}lib64/lib*.so*" "${!outputLib}"
moveToOutput "${targetConfig+$targetConfig/}lib64/lib*.la" "${!outputLib}"
moveToOutput "${targetConfig+$targetConfig/}lib64/lib*.dylib" "${!outputLib}"
for i in "$lib/${targetConfig}"/lib64/*.{la,py}; do
substituteInPlace "$i" --replace "$out" "$lib"
for i in "${!outputLib}/${targetConfig}"/lib64/*.{la,py}; do
substituteInPlace "$i" --replace "$out" "${!outputLib}"
done
fi
@@ -260,10 +261,10 @@ postInstall() {
fi
if type "install_name_tool"; then
for i in "$lib"/lib/*.*.dylib; do
for i in "${!outputLib}"/lib/*.*.dylib; do
install_name_tool -id "$i" "$i" || true
for old_path in $(otool -L "$i" | grep "$out" | awk '{print $1}'); do
new_path=`echo "$old_path" | sed "s,$out,$lib,"`
new_path=`echo "$old_path" | sed "s,$out,${!outputLib},"`
install_name_tool -change "$old_path" "$new_path" "$i" || true
done
done
@@ -14,16 +14,29 @@
, langC
, langCC
, langD ? false
, langFortran
, langJava ? false, javaAwtGtk ? false, javaAntlr ? null, javaEcj ? null
, langAda ? false
, langGo
, langObjC
, langObjCpp
, langJit
}:
assert cloog != null -> stdenv.lib.versionOlder version "5";
assert langJava -> stdenv.lib.versionOlder version "7";
# Note [Windows Exception Handling]
# sjlj (short jump long jump) exception handling makes no sense on x86_64,
# it's forcably slowing programs down as it produces a constant overhead.
# On x86_64 we have SEH (Structured Exception Handling) and we should use
# that. On i686, we do not have SEH, and have to use sjlj with dwarf2.
# Hence it's now conditional on x86_32 (i686 is 32bit).
#
# ref: https://stackoverflow.com/questions/15670169/what-is-difference-between-sjlj-vs-dwarf-vs-seh
let
inherit (stdenv)
buildPlatform hostPlatform targetPlatform
@@ -55,8 +68,16 @@ let
"--with-gnu-as"
"--with-gnu-ld"
"--disable-debug"
"--enable-sjlj-exceptions"
"--disable-win32-registry"
"--enable-hash-synchronization"
"--enable-libssp"
"--disable-nls"
# To keep ABI compatibility with upstream mingw-w64
"--enable-fully-dynamic-string"
] ++ lib.optionals (crossMingw && targetPlatform.isx86_32) [
# See Note [Windows Exception Handling]
"--enable-sjlj-exceptions"
"--with-dwarf2"
] else [
(if crossDarwin then "--with-sysroot=${lib.getLib libcCross}/share/sysroot"
else "--with-headers=${lib.getDev libcCross}${libcCross.incdir or "/include"}")
@@ -77,14 +98,6 @@ let
] ++ lib.optionals (targetPlatform.libc == "musl") [
# musl at least, disable: https://git.buildroot.net/buildroot/commit/?id=873d4019f7fb00f6a80592224236b3ba7d657865
"--disable-libmpx"
] ++ lib.optionals crossMingw [
"--enable-sjlj-exceptions"
"--enable-hash-synchronization"
"--enable-libssp"
"--disable-nls"
"--with-dwarf2"
# To keep ABI compatibility with upstream mingw-w64
"--enable-fully-dynamic-string"
] ++ lib.optional (targetPlatform.libc == "newlib") "--with-newlib"
++ lib.optional (targetPlatform.libc == "avrlibc") "--with-avrlibc"
);
@@ -113,12 +126,15 @@ let
lib.concatStrings (lib.intersperse ","
( lib.optional langC "c"
++ lib.optional langCC "c++"
++ lib.optional langD "d"
++ lib.optional langFortran "fortran"
++ lib.optional langJava "java"
++ lib.optional langAda "ada"
++ lib.optional langGo "go"
++ lib.optional langObjC "objc"
++ lib.optional langObjCpp "obj-c++"
++ lib.optionals crossDarwin [ "objc" "obj-c++" ]
++ lib.optional langJit "jit"
)
)
}"
@@ -140,6 +156,9 @@ let
"--enable-cloog-backend=isl"
]
# Ada options
++ lib.optional langAda "--enable-libada"
# Java options
++ lib.optionals langJava [
"--with-ecj-jar=${javaEcj}"
@@ -168,6 +187,12 @@ let
"--disable-symvers"
"libat_cv_have_ifunc=no"
"--disable-gnu-indirect-function"
]
++ lib.optionals langJit [
"--enable-host-shared"
]
++ lib.optionals (langD) [
"--with-target-system-zlib=yes"
]
;
@@ -1,21 +1,24 @@
{ stdenv, crossStageStatic, libcCross, threadsCross }:
{ stdenv, crossStageStatic, langD ? false, libcCross, threadsCross }:
let
inherit (stdenv) lib hostPlatform targetPlatform;
in
{
EXTRA_TARGET_FLAGS = let
mkFlags = dep: lib.optionals (targetPlatform != hostPlatform && dep != null) ([
"-idirafter ${lib.getDev dep}${dep.incdir or "/include"}"
# For non-cross builds these flags are currently assigned in builder.sh.
# It would be good to consolidate the generation of makeFlags
# ({C,CXX,LD}FLAGS_FOR_{BUILD,TARGET}, etc...) at some point.
EXTRA_FLAGS_FOR_TARGET = let
mkFlags = dep: langD: lib.optionals (targetPlatform != hostPlatform && dep != null && !langD) ([
"-O2 -idirafter ${lib.getDev dep}${dep.incdir or "/include"}"
] ++ stdenv.lib.optionals (! crossStageStatic) [
"-B${lib.getLib dep}${dep.libdir or "/lib"}"
]);
in mkFlags libcCross
++ lib.optionals (!crossStageStatic) (mkFlags threadsCross)
in mkFlags libcCross langD
++ lib.optionals (!crossStageStatic) (mkFlags threadsCross langD)
;
EXTRA_TARGET_LDFLAGS = let
EXTRA_LDFLAGS_FOR_TARGET = let
mkFlags = dep: lib.optionals (targetPlatform != hostPlatform && dep != null) ([
"-Wl,-L${lib.getLib dep}${dep.libdir or "/lib"}"
] ++ (if crossStageStatic then [

Some files were not shown because too many files have changed in this diff Show More