diff options
Diffstat (limited to 'pkgs/development/interpreters')
116 files changed, 968 insertions, 581 deletions
diff --git a/pkgs/development/interpreters/acl2/default.nix b/pkgs/development/interpreters/acl2/default.nix index 8d93492209c6..39b243a0ce6a 100644 --- a/pkgs/development/interpreters/acl2/default.nix +++ b/pkgs/development/interpreters/acl2/default.nix @@ -4,15 +4,15 @@ let hashes = { "8.0" = "1x1giy2c1y6krg3kf8pf9wrmvk981shv0pxcwi483yjqm90xng4r"; - "8.2" = "1x33kv6w9cbqzvyrihn61pzmqlvnk3drm8ksd5v0arg38i95awi3"; + "8.3" = "0c0wimaf16nrr3d6cxq6p7nr7rxffvpmn66hkpwc1m6zpcipf0y5"; }; revs = { "8.0" = "8.0"; - "8.2" = "8.2"; + "8.3" = "8.3"; }; in stdenv.mkDerivation rec { pname = "acl2"; - version = "8.2"; + version = "8.3"; src = fetchFromGitHub { owner = "acl2-devel"; @@ -62,8 +62,8 @@ in stdenv.mkDerivation rec { ACL2 have been removed because it is not currently possible to build them with Nix. ''; - homepage = http://www.cs.utexas.edu/users/moore/acl2/; - downloadPage = https://github.com/acl2-devel/acl2-devel/releases; + homepage = "http://www.cs.utexas.edu/users/moore/acl2/"; + downloadPage = "https://github.com/acl2-devel/acl2-devel/releases"; # There are a bunch of licenses in the community books, but since # they currently get deleted during the build, we don't mention # their licenses here. ACL2 proper is released under a BSD @@ -72,6 +72,7 @@ in stdenv.mkDerivation rec { #[ free bsd3 mit gpl2 llgpl21 cc0 publicDomain ]; license = stdenv.lib.licenses.bsd3; maintainers = with stdenv.lib.maintainers; [ kini raskin ]; - platforms = stdenv.lib.platforms.linux; + platforms = stdenv.lib.platforms.all; + broken = stdenv.isAarch64 && stdenv.isLinux; }; } diff --git a/pkgs/development/interpreters/bats/default.nix b/pkgs/development/interpreters/bats/default.nix index 744106bce5d0..bbc38e515424 100644 --- a/pkgs/development/interpreters/bats/default.nix +++ b/pkgs/development/interpreters/bats/default.nix @@ -1,23 +1,27 @@ -{ stdenv, fetchzip, gnugrep }: +{ stdenv, fetchzip, coreutils, gnugrep }: stdenv.mkDerivation rec { pname = "bats"; - version = "1.1.0"; + version = "1.2.0"; src = fetchzip { url = "https://github.com/bats-core/bats-core/archive/v${version}.tar.gz"; - sha256 = "1kkh0j2alql3xiyhw9wsvcc3xclv52g0ivgyk8h85q9fn3qdqakz"; + sha256 = "0f59zh4d4pa1a7ybs5zl6h0csbqqv11lbnq0jl1dgwm1s6p49bsq"; }; patchPhase = '' patchShebangs ./install.sh - substituteInPlace ./libexec/bats-core/bats-format-tap-stream --replace grep ${gnugrep}/bin/grep + + substituteInPlace ./libexec/bats-core/bats \ + --replace 'type -p greadlink readlink' 'type -p ${coreutils}/bin/readlink' + substituteInPlace ./libexec/bats-core/bats-format-tap-stream \ + --replace grep ${gnugrep}/bin/grep ''; installPhase = "./install.sh $out"; meta = with stdenv.lib; { - homepage = https://github.com/bats-core/bats-core; + homepage = "https://github.com/bats-core/bats-core"; description = "Bash Automated Testing System"; maintainers = [ maintainers.lnl7 ]; license = licenses.mit; diff --git a/pkgs/development/interpreters/ceptre/default.nix b/pkgs/development/interpreters/ceptre/default.nix index cde9146f78c6..de12185b96f0 100644 --- a/pkgs/development/interpreters/ceptre/default.nix +++ b/pkgs/development/interpreters/ceptre/default.nix @@ -4,7 +4,7 @@ stdenv.mkDerivation { name = "ceptre-2016-11-27"; src = fetchgit { - url = https://github.com/chrisamaphone/interactive-lp; + url = "https://github.com/chrisamaphone/interactive-lp"; rev = "e436fda2ccd44e9c9d226feced9d204311deacf5"; sha256 = "174pxfnw3qyn2w8qxmx45fa68iddf106mkfi0kcmyqxzsc9jprh8"; }; @@ -18,7 +18,7 @@ stdenv.mkDerivation { meta = with stdenv.lib; { description = "A linear logic programming language for modeling generative interactive systems"; - homepage = https://github.com/chrisamaphone/interactive-lp; + homepage = "https://github.com/chrisamaphone/interactive-lp"; maintainers = with maintainers; [ pSub ]; platforms = with platforms; linux; }; diff --git a/pkgs/development/interpreters/chibi/default.nix b/pkgs/development/interpreters/chibi/default.nix index 2ad0bc0285e5..f0de3f640918 100644 --- a/pkgs/development/interpreters/chibi/default.nix +++ b/pkgs/development/interpreters/chibi/default.nix @@ -7,7 +7,7 @@ stdenv.mkDerivation { inherit name; meta = { - homepage = https://github.com/ashinn/chibi-scheme; + homepage = "https://github.com/ashinn/chibi-scheme"; description = "Small Footprint Scheme for use as a C Extension Language"; platforms = stdenv.lib.platforms.all; license = stdenv.lib.licenses.bsd3; diff --git a/pkgs/development/interpreters/clips/default.nix b/pkgs/development/interpreters/clips/default.nix index c70bfd9406e0..cf0710f36a1a 100644 --- a/pkgs/development/interpreters/clips/default.nix +++ b/pkgs/development/interpreters/clips/default.nix @@ -15,7 +15,7 @@ stdenv.mkDerivation { ''; meta = with stdenv.lib; { description = "A Tool for Building Expert Systems"; - homepage = http://www.clipsrules.net/; + homepage = "http://www.clipsrules.net/"; longDescription = '' Developed at NASA's Johnson Space Center from 1985 to 1996, CLIPS is a rule-based programming language useful for creating diff --git a/pkgs/development/interpreters/clisp/default.nix b/pkgs/development/interpreters/clisp/default.nix index 5dcfa42c92fc..1b7ff2c8cba3 100644 --- a/pkgs/development/interpreters/clisp/default.nix +++ b/pkgs/development/interpreters/clisp/default.nix @@ -94,7 +94,7 @@ stdenv.mkDerivation rec { meta = { description = "ANSI Common Lisp Implementation"; - homepage = http://clisp.cons.org; + homepage = "http://clisp.cons.org"; maintainers = with stdenv.lib.maintainers; [raskin tohl]; platforms = stdenv.lib.platforms.unix; # problems on Darwin: https://github.com/NixOS/nixpkgs/issues/20062 diff --git a/pkgs/development/interpreters/clisp/hg.nix b/pkgs/development/interpreters/clisp/hg.nix index 550535f30aee..6898f84669f7 100644 --- a/pkgs/development/interpreters/clisp/hg.nix +++ b/pkgs/development/interpreters/clisp/hg.nix @@ -90,7 +90,7 @@ stdenv.mkDerivation rec { meta = { description = "ANSI Common Lisp Implementation"; - homepage = http://clisp.cons.org; + homepage = "http://clisp.cons.org"; maintainers = with stdenv.lib.maintainers; [raskin tohl]; # problems on Darwin: https://github.com/NixOS/nixpkgs/issues/20062 platforms = stdenv.lib.platforms.linux; diff --git a/pkgs/development/interpreters/clojure/babashka.nix b/pkgs/development/interpreters/clojure/babashka.nix new file mode 100644 index 000000000000..c023aa65fdaa --- /dev/null +++ b/pkgs/development/interpreters/clojure/babashka.nix @@ -0,0 +1,84 @@ +{ stdenv, fetchurl, graalvm8, glibcLocales }: + +with stdenv.lib; +stdenv.mkDerivation rec { + pname = "babashka"; + version = "0.0.97"; + + reflectionJson = fetchurl { + name = "reflection.json"; + url = "https://github.com/borkdude/${pname}/releases/download/v${version}/${pname}-${version}-reflection.json"; + sha256 = "1gd9ih9l02n1j9qkbxb36d3cb5sddwvxiw8kkicgc4xig77lsa7z"; + }; + + src = fetchurl { + url = "https://github.com/borkdude/${pname}/releases/download/v${version}/${pname}-${version}-standalone.jar"; + sha256 = "08py6bawfrhg90fbcnv2mq4c91g5wa1q2q6zdjy2i1b9q4x1654r"; + }; + + dontUnpack = true; + + LC_ALL = "en_US.UTF-8"; + nativeBuildInputs = [ graalvm8 glibcLocales ]; + + buildPhase = '' + native-image \ + -jar ${src} \ + -H:Name=bb \ + -H:+ReportExceptionStackTraces \ + -J-Dclojure.spec.skip-macros=true \ + -J-Dclojure.compiler.direct-linking=true \ + "-H:IncludeResources=BABASHKA_VERSION" \ + "-H:IncludeResources=SCI_VERSION" \ + -H:ReflectionConfigurationFiles=${reflectionJson} \ + --initialize-at-run-time=java.lang.Math\$RandomNumberGeneratorHolder \ + --initialize-at-build-time \ + -H:Log=registerResource: \ + -H:EnableURLProtocols=http,https \ + --enable-all-security-services \ + -H:+JNI \ + --verbose \ + --no-fallback \ + --no-server \ + --report-unsupported-elements-at-runtime \ + "--initialize-at-run-time=org.postgresql.sspi.SSPIClient" \ + "-J-Xmx4500m" + ''; + + installPhase = '' + mkdir -p $out/bin + cp bb $out/bin/bb + ''; + + meta = with stdenv.lib; { + description = "A Clojure babushka for the grey areas of Bash"; + longDescription = '' + The main idea behind babashka is to leverage Clojure in places where you + would be using bash otherwise. + + As one user described it: + + I’m quite at home in Bash most of the time, but there’s a substantial + grey area of things that are too complicated to be simple in bash, but + too simple to be worth writing a clj/s script for. Babashka really + seems to hit the sweet spot for those cases. + + Goals: + + - Low latency Clojure scripting alternative to JVM Clojure. + - Easy installation: grab the self-contained binary and run. No JVM needed. + - Familiarity and portability: + - Scripts should be compatible with JVM Clojure as much as possible + - Scripts should be platform-independent as much as possible. Babashka + offers support for linux, macOS and Windows. + - Allow interop with commonly used classes like java.io.File and System + - Multi-threading support (pmap, future, core.async) + - Batteries included (tools.cli, cheshire, ...) + - Library support via popular tools like the clojure CLI + ''; + homepage = "https://github.com/borkdude/babashka"; + license = licenses.epl10; + platforms = graalvm8.meta.platforms; + maintainers = with maintainers; [ bandresen bhougland DerGuteMoritz jlesquembre ]; + }; +} diff --git a/pkgs/development/interpreters/clojure/clooj.nix b/pkgs/development/interpreters/clojure/clooj.nix index 369d84708dc4..d51fa76003b2 100644 --- a/pkgs/development/interpreters/clojure/clooj.nix +++ b/pkgs/development/interpreters/clojure/clooj.nix @@ -24,7 +24,7 @@ stdenv.mkDerivation { meta = { description = "A lightweight IDE for Clojure"; - homepage = https://github.com/arthuredelstein/clooj; + homepage = "https://github.com/arthuredelstein/clooj"; license = stdenv.lib.licenses.bsd3; }; } diff --git a/pkgs/development/interpreters/clojure/default.nix b/pkgs/development/interpreters/clojure/default.nix index 01fba17f104f..e8c3e7b098ab 100644 --- a/pkgs/development/interpreters/clojure/default.nix +++ b/pkgs/development/interpreters/clojure/default.nix @@ -39,7 +39,7 @@ stdenv.mkDerivation rec { ''; meta = with stdenv.lib; { description = "A Lisp dialect for the JVM"; - homepage = https://clojure.org/; + homepage = "https://clojure.org/"; license = licenses.epl10; longDescription = '' Clojure is a dynamic programming language that targets the Java diff --git a/pkgs/development/interpreters/clojurescript/lumo/default.nix b/pkgs/development/interpreters/clojurescript/lumo/default.nix index d6252a7506aa..122831e80cc0 100644 --- a/pkgs/development/interpreters/clojurescript/lumo/default.nix +++ b/pkgs/development/interpreters/clojurescript/lumo/default.nix @@ -279,7 +279,7 @@ stdenv.mkDerivation { Thanks to V8's custom startup snapshots, Lumo starts up instantaneously, making it the fastest Clojure REPL in existence. ''; - homepage = https://github.com/anmonteiro/lumo; + homepage = "https://github.com/anmonteiro/lumo"; license = stdenv.lib.licenses.epl10; maintainers = [ stdenv.lib.maintainers.hlolli ]; platforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin; diff --git a/pkgs/development/interpreters/clojurescript/lumo/package.json b/pkgs/development/interpreters/clojurescript/lumo/package.json index 6ab3f9616c78..acfd5c4ed498 100644 --- a/pkgs/development/interpreters/clojurescript/lumo/package.json +++ b/pkgs/development/interpreters/clojurescript/lumo/package.json @@ -27,7 +27,7 @@ "glob": "^7.1.3", "gunzip-maybe": "^1.4.1", "insert-module-globals": "^7.2.0", - "jszip": "github:anmonteiro/jszip#patch-1", + "jszip": "2.x", "mkdirp": "^1.0.3", "ncp": "^2.0.0", "node-fetch": "^2.2.1", diff --git a/pkgs/development/interpreters/dart/default.nix b/pkgs/development/interpreters/dart/default.nix index cff1885e2798..050e7f14979c 100644 --- a/pkgs/development/interpreters/dart/default.nix +++ b/pkgs/development/interpreters/dart/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, unzip, version ? "2.7.1" }: +{ stdenv, fetchurl, unzip, version ? "2.7.2" }: let @@ -24,29 +24,29 @@ let url = "${base}/${stable_version}/release/${version}/sdk/dartsdk-linux-${aarch64}-release.zip"; sha256 = "1p5bn04gr91chcszgmw5ng8mlzgwsrdr2v7k7ppwr1slkx97fsrh"; }; - "2.7.1-x86_64-linux" = fetchurl { + "2.7.2-x86_64-linux" = fetchurl { url = "${base}/${stable_version}/release/${version}/sdk/dartsdk-linux-${x86_64}-release.zip"; - sha256 = "1zjd9hxxg1dsyzkzgqjvl933kprf8h143z5qi4mj1iczxv7zp27a"; + sha256 = "0vvsgda1smqdjn35yiq9pxx8f5haxb4hqnspcsfs6sn5c36k854v"; }; - "2.7.1-i686-linux" = fetchurl { + "2.7.2-i686-linux" = fetchurl { url = "${base}/${stable_version}/release/${version}/sdk/dartsdk-linux-${i686}-release.zip"; - sha256 = "0cggr1jbhzahmazlhba0vw2chz9zxd98jgk6zxvxdnw5hvkx8si1"; + sha256 = "0dj01d2wwrp3cc5x73vs6fzhs6db60gkbjlrw3w9j04wcx69i38m"; }; - "2.7.1-aarch64-linux" = fetchurl { + "2.7.2-aarch64-linux" = fetchurl { url = "${base}/${stable_version}/release/${version}/sdk/dartsdk-linux-${aarch64}-release.zip"; - sha256 = "0m4qlc3zy87habr61npykvpclggn5k4hadl59v2b0ymvxa4h5zfh"; + sha256 = "1p66fkdh1kv0ypmadmg67c3y3li3aaf1lahqh2g6r6qrzbh5da2p"; }; - "2.8.0-dev.10.0-x86_64-linux" = fetchurl { + "2.9.0-4.0.dev-x86_64-linux" = fetchurl { url = "${base}/${dev_version}/release/${version}/sdk/dartsdk-linux-${x86_64}-release.zip"; - sha256 = "17x0q94zampm99dd2sn6q1644lfwcl0ig2rdlmfzd9i4llj2ddbl"; + sha256 = "16d9842fb3qbc0hy0zmimav9zndfkq96glgykj20xssc88qpjk2r"; }; - "2.8.0-dev.10.0-i686-linux" = fetchurl { + "2.9.0-4.0.dev-i686-linux" = fetchurl { url = "${base}/${dev_version}/release/${version}/sdk/dartsdk-linux-${i686}-release.zip"; - sha256 = "0hmkg4jrffzh8x2mxn8nbf7dl7k0v2vacbmxgpsl382vw9wwj96j"; + sha256 = "105wgyxmi491c7qw0z3zhn4lv52h80ngyz4ch9dyj0sq8nndz2rc"; }; - "2.8.0-dev.10.0-aarch64-linux" = fetchurl { + "2.9.0-4.0.dev-aarch64-linux" = fetchurl { url = "${base}/${dev_version}/release/${version}/sdk/dartsdk-linux-${aarch64}-release.zip"; - sha256 = "185ipcmr9h76g44kzlj5pyj99cljlap82rhd1c2larfklyj5ryvv"; + sha256 = "1x6mlmc4hccmx42k7srhma18faxpxvghjwqahna80508rdpljwgc"; }; }; @@ -79,7 +79,7 @@ stdenv.mkDerivation { dontStrip = true; meta = { - homepage = https://www.dartlang.org/; + homepage = "https://www.dartlang.org/"; maintainers = with maintainers; [ grburst ]; description = "Scalable programming language, with robust libraries and runtimes, for building web, server, and mobile apps"; longDescription = '' diff --git a/pkgs/development/interpreters/dhall/build-dhall-package.nix b/pkgs/development/interpreters/dhall/build-dhall-package.nix index 739dc9b3d52e..9303244eb885 100644 --- a/pkgs/development/interpreters/dhall/build-dhall-package.nix +++ b/pkgs/development/interpreters/dhall/build-dhall-package.nix @@ -1,4 +1,4 @@ -{ haskell, haskellPackages, lib, lndir, runCommand, writeText }: +{ dhall, haskell, lib, lndir, runCommand, writeText }: { name @@ -34,18 +34,9 @@ }: let - # `buildDhallPackage` requires version 1.25.0 or newer of the Haskell - # interpreter for Dhall. Given that the default version is 1.24.0 we choose - # the latest available version instead until the default is upgraded. - # # HTTP support is disabled in order to force that HTTP dependencies are built # using Nix instead of using Dhall's support for HTTP imports. - dhall = - haskell.lib.justStaticExecutables - (haskell.lib.appendConfigureFlag - haskellPackages.dhall_1_29_0 - "-f-with-http" - ); + dhallNoHTTP = haskell.lib.appendConfigureFlag dhall "-f-with-http"; file = writeText "${name}.dhall" code; @@ -69,13 +60,13 @@ in mkdir -p $out/${cacheDhall} - ${dhall}/bin/dhall --alpha --file '${file}' > $out/${sourceFile} + ${dhallNoHTTP}/bin/dhall --alpha --file '${file}' > $out/${sourceFile} - SHA_HASH=$(${dhall}/bin/dhall hash <<< $out/${sourceFile}) + SHA_HASH=$(${dhallNoHTTP}/bin/dhall hash <<< $out/${sourceFile}) HASH_FILE="''${SHA_HASH/sha256:/1220}" - ${dhall}/bin/dhall encode --file $out/${sourceFile} > $out/${cacheDhall}/$HASH_FILE + ${dhallNoHTTP}/bin/dhall encode --file $out/${sourceFile} > $out/${cacheDhall}/$HASH_FILE echo "missing $SHA_HASH" > $out/binary.dhall diff --git a/pkgs/development/interpreters/duktape/default.nix b/pkgs/development/interpreters/duktape/default.nix index 369c3840b874..53cbbad8e553 100644 --- a/pkgs/development/interpreters/duktape/default.nix +++ b/pkgs/development/interpreters/duktape/default.nix @@ -23,8 +23,8 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "An embeddable Javascript engine, with a focus on portability and compact footprint"; - homepage = https://duktape.org/; - downloadPage = https://duktape.org/download.html; + homepage = "https://duktape.org/"; + downloadPage = "https://duktape.org/download.html"; license = licenses.mit; maintainers = [ maintainers.fgaz ]; platforms = platforms.linux; diff --git a/pkgs/development/interpreters/eff/default.nix b/pkgs/development/interpreters/eff/default.nix index 9da2b0d899d7..c848ebc60479 100644 --- a/pkgs/development/interpreters/eff/default.nix +++ b/pkgs/development/interpreters/eff/default.nix @@ -22,7 +22,7 @@ stdenv.mkDerivation { checkTarget = "test"; meta = with stdenv.lib; { - homepage = https://www.eff-lang.org; + homepage = "https://www.eff-lang.org"; description = "A functional programming language based on algebraic effects and their handlers"; longDescription = '' Eff is a functional language with handlers of not only exceptions, diff --git a/pkgs/development/interpreters/elixir/1.10.nix b/pkgs/development/interpreters/elixir/1.10.nix index afab770da353..d63a94d98d6d 100644 --- a/pkgs/development/interpreters/elixir/1.10.nix +++ b/pkgs/development/interpreters/elixir/1.10.nix @@ -3,7 +3,7 @@ # How to obtain `sha256`: # nix-prefetch-url --unpack https://github.com/elixir-lang/elixir/archive/v${version}.tar.gz mkDerivation { - version = "1.10.2"; - sha256 = "04yi1hljq7ii9flh6pmb5411z7q1bdq9f9sq8323k9hm1f5jwkx6"; + version = "1.10.3"; + sha256 = "18bqqqzvhr1zj491wc3d36a310mg1wcs12npp70zfmgqrc60q65a"; minimumOTPVersion = "21"; } diff --git a/pkgs/development/interpreters/elixir/generic-builder.nix b/pkgs/development/interpreters/elixir/generic-builder.nix index 571f39203f8f..54b046beaab2 100644 --- a/pkgs/development/interpreters/elixir/generic-builder.nix +++ b/pkgs/development/interpreters/elixir/generic-builder.nix @@ -60,7 +60,7 @@ in pos = builtins.unsafeGetAttrPos "sha256" args; meta = with stdenv.lib; { - homepage = https://elixir-lang.org/; + homepage = "https://elixir-lang.org/"; description = "A functional, meta-programming aware language built on top of the Erlang VM"; longDescription = '' @@ -73,6 +73,6 @@ in license = licenses.epl10; platforms = platforms.unix; - maintainers = with maintainers; [ the-kenny havvy couchemar ankhers filalex77 ]; + maintainers = with maintainers; [ havvy couchemar ankhers filalex77 ]; }; }) diff --git a/pkgs/development/interpreters/erlang/R16B02-basho.nix b/pkgs/development/interpreters/erlang/R16B02-basho.nix index 11637868ed0f..c94528e674f4 100644 --- a/pkgs/development/interpreters/erlang/R16B02-basho.nix +++ b/pkgs/development/interpreters/erlang/R16B02-basho.nix @@ -42,7 +42,7 @@ mkDerivation { ''; meta = { - homepage = https://github.com/basho/otp/; + homepage = "https://github.com/basho/otp/"; description = "Programming language used for massively scalable soft real-time systems, Basho fork"; longDescription = '' diff --git a/pkgs/development/interpreters/erlang/generic-builder.nix b/pkgs/development/interpreters/erlang/generic-builder.nix index c0203e5915f7..f80e1f344f7f 100644 --- a/pkgs/development/interpreters/erlang/generic-builder.nix +++ b/pkgs/development/interpreters/erlang/generic-builder.nix @@ -108,7 +108,7 @@ in stdenv.mkDerivation ({ setupHook = ./setup-hook.sh; meta = with stdenv.lib; ({ - homepage = https://www.erlang.org/; + homepage = "https://www.erlang.org/"; downloadPage = "https://www.erlang.org/download.html"; description = "Programming language used for massively scalable soft real-time systems"; @@ -122,7 +122,7 @@ in stdenv.mkDerivation ({ ''; platforms = platforms.unix; - maintainers = with maintainers; [ the-kenny sjmackenzie couchemar gleber ]; + maintainers = with maintainers; [ sjmackenzie couchemar gleber ]; license = licenses.asl20; } // meta); } diff --git a/pkgs/development/interpreters/evcxr/default.nix b/pkgs/development/interpreters/evcxr/default.nix index fa8050a21ff0..4430298beb5f 100644 --- a/pkgs/development/interpreters/evcxr/default.nix +++ b/pkgs/development/interpreters/evcxr/default.nix @@ -2,16 +2,16 @@ rustPlatform.buildRustPackage rec { pname = "evcxr"; - version = "0.5.0"; + version = "0.5.1"; src = fetchFromGitHub { owner = "google"; repo = "evcxr"; - rev = "239e431c58d04c641da22af791e4d3e1b894365e"; - sha256 = "0vkcis06gwsqfwvrl8xcf74mfcs6j77b9fhcz5rrh77mwl7ixsdc"; + rev = "582ce09f216d4812f7d152f6eedf0b034fc4dbbd"; + sha256 = "12hlqgh74z8vmd7fkxh4vk3dqp8hlhzkxnbyywk6nphi562n6w5w"; }; - cargoSha256 = "0pamwqhw3sj4anqc1112l5cayhqzibdhqjc28apfrkf2m63cclzi"; + cargoSha256 = "0yr8vwlpfsg47sg0032yrsdcgxyky0hy4963zkh0pmjykbyqkb3h"; nativeBuildInputs = [ pkgconfig makeWrapper cmake ]; buildInputs = stdenv.lib.optional stdenv.isDarwin Security; diff --git a/pkgs/development/interpreters/gauche/default.nix b/pkgs/development/interpreters/gauche/default.nix index 9b38d1e4ad54..26a30ef2cd3c 100644 --- a/pkgs/development/interpreters/gauche/default.nix +++ b/pkgs/development/interpreters/gauche/default.nix @@ -36,7 +36,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "R7RS Scheme scripting engine"; - homepage = https://practical-scheme.net/gauche/; + homepage = "https://practical-scheme.net/gauche/"; maintainers = with maintainers; [ mnacamura ]; license = licenses.bsd3; platforms = platforms.unix; diff --git a/pkgs/development/interpreters/gnu-apl/default.nix b/pkgs/development/interpreters/gnu-apl/default.nix index c2a3556cfea2..f01cfc2444bc 100644 --- a/pkgs/development/interpreters/gnu-apl/default.nix +++ b/pkgs/development/interpreters/gnu-apl/default.nix @@ -30,7 +30,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Free interpreter for the APL programming language"; - homepage = https://www.gnu.org/software/apl/; + homepage = "https://www.gnu.org/software/apl/"; license = licenses.gpl3Plus; maintainers = [ maintainers.kovirobi ]; platforms = with platforms; linux ++ darwin; diff --git a/pkgs/development/interpreters/groovy/default.nix b/pkgs/development/interpreters/groovy/default.nix index e1d404a6b15d..1572f5e4be2c 100644 --- a/pkgs/development/interpreters/groovy/default.nix +++ b/pkgs/development/interpreters/groovy/default.nix @@ -4,11 +4,11 @@ stdenv.mkDerivation rec { pname = "groovy"; - version = "3.0.0"; + version = "3.0.2"; src = fetchurl { url = "http://dl.bintray.com/groovy/maven/apache-groovy-binary-${version}.zip"; - sha256 = "10nn04hfky4x75nss33vvslw958pjvhw35lcfb3lxvaifqg23cpl"; + sha256 = "1ddw3fqrmwh4w6z6xgck4jhmq33rwgbmpjw07g12ri1vgw4xks9w"; }; buildInputs = [ unzip makeWrapper ]; @@ -31,7 +31,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "An agile dynamic language for the Java Platform"; - homepage = http://groovy-lang.org/; + homepage = "http://groovy-lang.org/"; license = licenses.asl20; maintainers = with maintainers; [ pSub ]; platforms = with platforms; unix; diff --git a/pkgs/development/interpreters/guile/1.8.nix b/pkgs/development/interpreters/guile/1.8.nix index 158987d4e0ef..6057480476f2 100644 --- a/pkgs/development/interpreters/guile/1.8.nix +++ b/pkgs/development/interpreters/guile/1.8.nix @@ -66,7 +66,7 @@ stdenv.mkDerivation rec { meta = { description = "Embeddable Scheme implementation"; - homepage = https://www.gnu.org/software/guile/; + homepage = "https://www.gnu.org/software/guile/"; license = stdenv.lib.licenses.lgpl2Plus; maintainers = [ stdenv.lib.maintainers.ludo ]; platforms = stdenv.lib.platforms.unix; diff --git a/pkgs/development/interpreters/guile/2.0.nix b/pkgs/development/interpreters/guile/2.0.nix index af71d5cc80d7..b5b83e180254 100644 --- a/pkgs/development/interpreters/guile/2.0.nix +++ b/pkgs/development/interpreters/guile/2.0.nix @@ -101,7 +101,7 @@ meta = { description = "Embeddable Scheme implementation"; - homepage = https://www.gnu.org/software/guile/; + homepage = "https://www.gnu.org/software/guile/"; license = stdenv.lib.licenses.lgpl3Plus; maintainers = with stdenv.lib.maintainers; [ ludo lovek323 ]; platforms = stdenv.lib.platforms.all; diff --git a/pkgs/development/interpreters/hugs/default.nix b/pkgs/development/interpreters/hugs/default.nix index 2177ae22db56..35463b161572 100644 --- a/pkgs/development/interpreters/hugs/default.nix +++ b/pkgs/development/interpreters/hugs/default.nix @@ -5,13 +5,13 @@ stdenv.mkDerivation { name = "hugs98-200609"; src = fetchurl { - url = http://cvs.haskell.org/Hugs/downloads/2006-09/hugs98-Sep2006.tar.gz; + url = "http://cvs.haskell.org/Hugs/downloads/2006-09/hugs98-Sep2006.tar.gz"; sha256 = "1dj65c39zpy6qqvvrwns2hzj6ipnd4ih655xj7kgyk2nfdvd5x1w"; }; patches = [ (fetchurl { - url = https://aur.archlinux.org/cgit/aur.git/plain/hsbase_inline.patch?h=hugs; + url = "https://aur.archlinux.org/cgit/aur.git/plain/hsbase_inline.patch?h=hugs"; name = "hsbase_inline.patch"; sha256 = "1h0sp16d17hlm6gj7zdbgwrjwi2l4q02m8p0wd60dp4gn9i9js0v"; }) @@ -40,7 +40,7 @@ stdenv.mkDerivation { ]; meta = with stdenv.lib; { - homepage = https://www.haskell.org/hugs; + homepage = "https://www.haskell.org/hugs"; description = "Haskell interpreter"; maintainers = with maintainers; [ joachifm ]; license = licenses.bsd3; diff --git a/pkgs/development/interpreters/hy/default.nix b/pkgs/development/interpreters/hy/default.nix index 5816b3a175c6..a3aca532b0f3 100644 --- a/pkgs/development/interpreters/hy/default.nix +++ b/pkgs/development/interpreters/hy/default.nix @@ -1,23 +1,32 @@ -{ stdenv, fetchurl, python2Packages }: +{ stdenv, python3Packages }: -python2Packages.buildPythonApplication rec { +python3Packages.buildPythonApplication rec { pname = "hy"; - version = "0.17.0"; + version = "0.18.0"; - src = python2Packages.fetchPypi { + src = python3Packages.fetchPypi { inherit pname version; - sha256 = "1gdbqsirsdxj320wnp7my5awzs1kfs6m4fqmkzbd1zd47qzj0zfi"; + sha256 = "04dfwm336gw61fmgwikvh0cnxk682p19b4w555wl5d7mlym4rwj2"; }; - propagatedBuildInputs = with python2Packages; [ + checkInputs = with python3Packages; [ flake8 pytest ]; + + propagatedBuildInputs = with python3Packages; [ appdirs astor clint + colorama fastentrypoints funcparserlib rply + pygments ]; + # Hy does not include tests in the source distribution from PyPI, so only test executable. + checkPhase = '' + $out/bin/hy --help > /dev/null + ''; + meta = with stdenv.lib; { description = "A LISP dialect embedded in Python"; homepage = "http://hylang.org/"; diff --git a/pkgs/development/interpreters/icon-lang/default.nix b/pkgs/development/interpreters/icon-lang/default.nix index d243ae9bc580..d85448a9677c 100644 --- a/pkgs/development/interpreters/icon-lang/default.nix +++ b/pkgs/development/interpreters/icon-lang/default.nix @@ -41,6 +41,6 @@ stdenv.mkDerivation rec { maintainers = with maintainers; [ vrthra yurrriq ]; platforms = with platforms; linux ++ darwin; license = licenses.publicDomain; - homepage = https://www.cs.arizona.edu/icon/; + homepage = "https://www.cs.arizona.edu/icon/"; }; } diff --git a/pkgs/development/interpreters/io/default.nix b/pkgs/development/interpreters/io/default.nix index f763274c15d7..42af3cc427b4 100644 --- a/pkgs/development/interpreters/io/default.nix +++ b/pkgs/development/interpreters/io/default.nix @@ -39,7 +39,7 @@ stdenv.mkDerivation { meta = with stdenv.lib; { description = "Io programming language"; - homepage = http://iolanguage.org/; + homepage = "http://iolanguage.org/"; license = licenses.bsd3; maintainers = with maintainers; [ diff --git a/pkgs/development/interpreters/j/default.nix b/pkgs/development/interpreters/j/default.nix index 791ac6dd3381..8e6b434281eb 100644 --- a/pkgs/development/interpreters/j/default.nix +++ b/pkgs/development/interpreters/j/default.nix @@ -1,14 +1,17 @@ -{ stdenv, fetchFromGitHub, readline, libedit, bc }: +{ stdenv, fetchFromGitHub, readline, libedit, bc +, avxSupport ? false +}: stdenv.mkDerivation rec { pname = "j"; - version = "807"; - jtype = "release"; + version = "901"; + jtype = "release-e"; src = fetchFromGitHub { owner = "jsoftware"; repo = "jsource"; rev = "j${version}-${jtype}"; - sha256 = "1qciw2yg9x996zglvj2461qby038x89xcmfb3qyrh3myn8m1nq2n"; + sha256 = "13ky37rrl6mc66fckrdnrw64gmvq1qlv6skzd513lab4d0wigshw"; + name = "jsource"; }; buildInputs = [ readline libedit bc ]; @@ -18,6 +21,9 @@ stdenv.mkDerivation rec { if stdenv.isLinux then "linux" else if stdenv.isDarwin then "darwin" else "unknown"; + variant = if stdenv.isx86_64 && avxSupport then "avx" else ""; + + j64x="j${bits}${variant}"; doCheck = true; @@ -26,57 +32,33 @@ stdenv.mkDerivation rec { export HOME=$TMPDIR export JLIB=$SOURCE_DIR/jlibrary - export jbld=$HOME/bld - export jplatform=${platform} - export jmake=$SOURCE_DIR/make - export jgit=$SOURCE_DIR - export JBIN=$jbld/j${bits}/bin - mkdir -p $JBIN - echo $OUT_DIR - cd make + cd make2 patchShebangs . - sed -i jvars.sh -e " - s@~/git/jsource@$SOURCE_DIR@; - s@~/jbld@$HOME@; - " - sed -i $JLIB/bin/profile.ijs -e "s@'/usr/share/j/.*'@'$out/share/j'@;" - # For future versions, watch - # https://github.com/jsoftware/jsource/pull/4 - cp ./jvars.sh $HOME + j64x="${j64x}" ./build_all.sh - echo ' - #define jversion "${version}" - #define jplatform "${platform}" - #define jtype "${jtype}" // release,beta,... - #define jlicense "GPL3" - #define jbuilder "nixpkgs" // website or email - ' > ../jsrc/jversion.h - - ./build_jconsole.sh j${bits} - ./build_libj.sh j${bits} + cp $SOURCE_DIR/bin/${platform}/j${bits}*/* "$JLIB/bin" ''; checkPhase = '' - echo 'i. 5' | $JBIN/jconsole | fgrep "0 1 2 3 4" + + echo 'i. 5' | $JLIB/bin/jconsole | fgrep "0 1 2 3 4" # Now run the real tests cd $SOURCE_DIR/test for f in *.ijs do echo $f - $JBIN/jconsole < $f > /dev/null || echo FAIL && echo PASS + $JLIB/bin/jconsole < $f > /dev/null || echo FAIL && echo PASS done ''; installPhase = '' mkdir -p "$out" - cp -r $JBIN "$out/bin" - rm $out/bin/*.txt # Remove logs from the bin folder mkdir -p "$out/share/j" cp -r $JLIB/{addons,system} "$out/share/j" @@ -88,6 +70,6 @@ stdenv.mkDerivation rec { maintainers = with maintainers; [ raskin synthetica ]; platforms = with platforms; linux ++ darwin; license = licenses.gpl3Plus; - homepage = http://jsoftware.com/; + homepage = "http://jsoftware.com/"; }; } diff --git a/pkgs/development/interpreters/janet/default.nix b/pkgs/development/interpreters/janet/default.nix index 0fc6928c1aba..f6f4e36532ec 100644 --- a/pkgs/development/interpreters/janet/default.nix +++ b/pkgs/development/interpreters/janet/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "janet"; - version = "1.7.0"; + version = "1.9.1"; src = fetchFromGitHub { owner = "janet-lang"; repo = pname; rev = "v${version}"; - sha256 = "1z7r4ddgwxgxy1pp36p2wchcmzjqfyki3a4kicnr23ldflqv9ycc"; + sha256 = "1zdiwddnppwg5zrizy2ypd449zj4mivib76h73xhvr1syl7dk7sc"; }; nativeBuildInputs = [ meson ninja ]; @@ -18,7 +18,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Janet programming language"; - homepage = https://janet-lang.org/; + homepage = "https://janet-lang.org/"; license = licenses.mit; platforms = platforms.all; maintainers = with maintainers; [ andrewchambers ]; diff --git a/pkgs/development/interpreters/jelly/default.nix b/pkgs/development/interpreters/jelly/default.nix new file mode 100644 index 000000000000..a317f35d2a78 --- /dev/null +++ b/pkgs/development/interpreters/jelly/default.nix @@ -0,0 +1,28 @@ +{ lib, python3Packages, fetchFromGitHub }: + +python3Packages.buildPythonApplication { + pname = "jelly"; + version = "0.1.31"; + + src = fetchFromGitHub { + owner = "DennisMitchell"; + repo = "jellylanguage"; + rev = "70c9fd93ab009c05dc396f8cc091f72b212fb188"; + sha256 = "1rpclqagvigp5qhvgnjavvy463f1drshnc1mfxm6z7ygzs0l0yz6"; + }; + + propagatedBuildInputs = [ python3Packages.sympy ]; + + # checks are disabled because jelly has no tests, and the default is to run + # the output binary with no arguments, which exits with status 1 and causes + # the build to fail + doCheck = false; + + meta = with lib; { + description = "A recreational programming language inspired by J"; + homepage = https://github.com/DennisMitchell/jellylanguage; + license = licenses.mit; + maintainers = [ maintainers.tckmn ]; + platforms = platforms.all; + }; +} diff --git a/pkgs/development/interpreters/joker/default.nix b/pkgs/development/interpreters/joker/default.nix index ed82f76eec24..789816c34d04 100644 --- a/pkgs/development/interpreters/joker/default.nix +++ b/pkgs/development/interpreters/joker/default.nix @@ -2,16 +2,16 @@ buildGoModule rec { pname = "joker"; - version = "0.14.2"; + version = "0.15.3"; src = fetchFromGitHub { rev = "v${version}"; owner = "candid82"; repo = "joker"; - sha256 = "1wi80sr8h9fwh4xipff0y6qdzrliwyk2w1bmi33ncykxd9r2g7nk"; + sha256 = "1pxj6flyhf522zjab1dfvxfajyx3v3rzs7l8ma7ma6b8zmwp2wdn"; }; - modSha256 = "0i16vf7n1xfz5kp9w3fvyc9y9wgz4h396glgpdaznpxjr12rb43j"; + vendorSha256 = "1rn8ijq3v3fzlbyvm7g4i3qpwcl3vrl4rbcvlbzv05wxrgcw9iqb"; preBuild = '' go generate ./... @@ -26,4 +26,4 @@ buildGoModule rec { platforms = platforms.all; maintainers = with maintainers; [ andrestylianos ]; }; -} +} \ No newline at end of file diff --git a/pkgs/development/interpreters/jruby/default.nix b/pkgs/development/interpreters/jruby/default.nix index 3784b6ab282f..79cb1c7154b5 100644 --- a/pkgs/development/interpreters/jruby/default.nix +++ b/pkgs/development/interpreters/jruby/default.nix @@ -6,11 +6,11 @@ rubyVersion = callPackage ../ruby/ruby-version.nix {} "2" "3" "3" ""; jruby = stdenv.mkDerivation rec { pname = "jruby"; - version = "9.2.11.0"; + version = "9.2.11.1"; src = fetchurl { url = "https://s3.amazonaws.com/jruby.org/downloads/${version}/jruby-bin-${version}.tar.gz"; - sha256 = "01yzpasnpqqm0vfc0ki8vkxbzijjfws135jw8k0r50b5lahjvs4a"; + sha256 = "1p4ml5rqidqllc7z85zn2q4pyyih71j0gb71wl43j4v74p44j17i"; }; buildInputs = [ makeWrapper ]; diff --git a/pkgs/development/interpreters/kona/default.nix b/pkgs/development/interpreters/kona/default.nix index 9b7f36f4c874..041616cc1f63 100644 --- a/pkgs/development/interpreters/kona/default.nix +++ b/pkgs/development/interpreters/kona/default.nix @@ -13,7 +13,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "An interpreter of K, APL-like programming language"; - homepage = https://github.com/kevinlawler/kona/; + homepage = "https://github.com/kevinlawler/kona/"; maintainers = with maintainers; [ raskin ]; platforms = platforms.all; license = licenses.isc; diff --git a/pkgs/development/interpreters/lolcode/default.nix b/pkgs/development/interpreters/lolcode/default.nix index 3ef239e89a9a..bd4b93b835fc 100644 --- a/pkgs/development/interpreters/lolcode/default.nix +++ b/pkgs/development/interpreters/lolcode/default.nix @@ -18,7 +18,7 @@ stdenv.mkDerivation rec { postInstall = "mv $out/bin/lci $out/bin/lolcode-lci"; meta = { - homepage = http://lolcode.org; + homepage = "http://lolcode.org"; description = "An esoteric programming language"; longDescription = '' LOLCODE is a funny esoteric programming language, a bit Pascal-like, diff --git a/pkgs/development/interpreters/love/0.10.nix b/pkgs/development/interpreters/love/0.10.nix index e1ca3ded2083..dbe3f6fa2df0 100644 --- a/pkgs/development/interpreters/love/0.10.nix +++ b/pkgs/development/interpreters/love/0.10.nix @@ -32,7 +32,7 @@ stdenv.mkDerivation { NIX_CFLAGS_COMPILE = "-DluaL_reg=luaL_Reg"; # needed since luajit-2.1.0-beta3 meta = { - homepage = http://love2d.org; + homepage = "http://love2d.org"; description = "A Lua-based 2D game engine/scripting language"; license = stdenv.lib.licenses.zlib; platforms = stdenv.lib.platforms.linux; diff --git a/pkgs/development/interpreters/love/0.7.nix b/pkgs/development/interpreters/love/0.7.nix index 3bf8aee0d07b..6f09c0764412 100644 --- a/pkgs/development/interpreters/love/0.7.nix +++ b/pkgs/development/interpreters/love/0.7.nix @@ -46,7 +46,7 @@ stdenv.mkDerivation rec { ''; meta = { - homepage = http://love2d.org; + homepage = "http://love2d.org"; description = "A Lua-based 2D game engine/scripting language"; license = stdenv.lib.licenses.zlib; diff --git a/pkgs/development/interpreters/love/0.9.nix b/pkgs/development/interpreters/love/0.9.nix index a2182f454361..79b83f0643f1 100644 --- a/pkgs/development/interpreters/love/0.9.nix +++ b/pkgs/development/interpreters/love/0.9.nix @@ -24,7 +24,7 @@ stdenv.mkDerivation rec { NIX_CFLAGS_COMPILE = [ "-DluaL_reg=luaL_Reg" ]; # needed since luajit-2.1.0-beta3 meta = { - homepage = http://love2d.org; + homepage = "http://love2d.org"; description = "A Lua-based 2D game engine/scripting language"; license = stdenv.lib.licenses.zlib; diff --git a/pkgs/development/interpreters/love/11.1.nix b/pkgs/development/interpreters/love/11.1.nix index 3629345baf6a..2ef3a4ca05a4 100644 --- a/pkgs/development/interpreters/love/11.1.nix +++ b/pkgs/development/interpreters/love/11.1.nix @@ -32,7 +32,7 @@ stdenv.mkDerivation { NIX_CFLAGS_COMPILE = "-DluaL_reg=luaL_Reg"; # needed since luajit-2.1.0-beta3 meta = { - homepage = http://love2d.org; + homepage = "http://love2d.org"; description = "A Lua-based 2D game engine/scripting language"; license = stdenv.lib.licenses.zlib; platforms = stdenv.lib.platforms.linux; diff --git a/pkgs/development/interpreters/lua-5/filesystem.nix b/pkgs/development/interpreters/lua-5/filesystem.nix index 64050ea95f87..a3e633bbab17 100644 --- a/pkgs/development/interpreters/lua-5/filesystem.nix +++ b/pkgs/development/interpreters/lua-5/filesystem.nix @@ -19,7 +19,7 @@ stdenv.mkDerivation { ''; meta = { - homepage = https://github.com/keplerproject/luafilesystem; + homepage = "https://github.com/keplerproject/luafilesystem"; hydraPlatforms = stdenv.lib.platforms.linux; maintainers = [ ]; }; diff --git a/pkgs/development/interpreters/lua-5/interpreter.nix b/pkgs/development/interpreters/lua-5/interpreter.nix index 6fc2e53b9617..98e4684e0921 100644 --- a/pkgs/development/interpreters/lua-5/interpreter.nix +++ b/pkgs/development/interpreters/lua-5/interpreter.nix @@ -97,7 +97,7 @@ self = stdenv.mkDerivation rec { }; meta = { - homepage = http://www.lua.org; + homepage = "http://www.lua.org"; description = "Powerful, fast, lightweight, embeddable scripting language"; longDescription = '' Lua combines simple procedural syntax with powerful data diff --git a/pkgs/development/interpreters/lua-5/sockets.nix b/pkgs/development/interpreters/lua-5/sockets.nix index f0eb1becc578..73fbbc3e66a6 100644 --- a/pkgs/development/interpreters/lua-5/sockets.nix +++ b/pkgs/development/interpreters/lua-5/sockets.nix @@ -18,7 +18,7 @@ stdenv.mkDerivation rec { buildInputs = [ lua5 ]; meta = { - homepage = http://w3.impa.br/~diego/software/luasocket/; + homepage = "http://w3.impa.br/~diego/software/luasocket/"; hydraPlatforms = stdenv.lib.platforms.linux; maintainers = [ ]; }; diff --git a/pkgs/development/interpreters/luajit/2.0.nix b/pkgs/development/interpreters/luajit/2.0.nix index 7db3830447f7..3f0fa7303ebb 100644 --- a/pkgs/development/interpreters/luajit/2.0.nix +++ b/pkgs/development/interpreters/luajit/2.0.nix @@ -1,9 +1,10 @@ { self, callPackage, lib }: callPackage ./default.nix { inherit self; - version = "2.0.5"; + version = "2.0.5-2020-03-20"; + rev = "e613105"; isStable = true; - sha256 = "0yg9q4q6v028bgh85317ykc9whgxgysp76qzaqgq55y6jy11yjw7"; + sha256 = "0k843z90s4hi0qhri6ixy8sv21nig8jwbznpqgqg845ji530kqj7"; extraMeta = { # this isn't precise but it at least stops the useless Hydra build platforms = with lib; filter (p: p != "aarch64-linux") (platforms.linux ++ platforms.darwin); diff --git a/pkgs/development/interpreters/luajit/2.1.nix b/pkgs/development/interpreters/luajit/2.1.nix index e8f1b8b338c4..b5a7894e98d9 100644 --- a/pkgs/development/interpreters/luajit/2.1.nix +++ b/pkgs/development/interpreters/luajit/2.1.nix @@ -1,7 +1,8 @@ { self, callPackage }: callPackage ./default.nix { inherit self; - version = "2.1.0-beta3"; + version = "2.1.0-2020-03-20"; + rev = "9143e86"; isStable = false; - sha256 = "1hyrhpkwjqsv54hnnx4cl8vk44h9d6c9w0fz1jfjz00w255y7lhs"; + sha256 = "1zw1yr0375d6jr5x20zvkvk76hkaqamjynbswpl604w6r6id070b"; } diff --git a/pkgs/development/interpreters/luajit/default.nix b/pkgs/development/interpreters/luajit/default.nix index 08c0564847c5..9bc76c44937f 100644 --- a/pkgs/development/interpreters/luajit/default.nix +++ b/pkgs/development/interpreters/luajit/default.nix @@ -1,7 +1,8 @@ -{ stdenv, fetchurl, buildPackages +{ stdenv, fetchFromGitHub, buildPackages , name ? "luajit-${version}" , isStable , sha256 +, rev , version , extraMeta ? {} , callPackage @@ -10,6 +11,7 @@ , enableFFI ? true , enableJIT ? true , enableJITDebugModule ? enableJIT +, enableGC64 ? stdenv.hostPlatform.isAarch64 , enable52Compat ? false , enableValgrindSupport ? false , valgrind ? null @@ -28,6 +30,7 @@ let optional (!enableFFI) "-DLUAJIT_DISABLE_FFI" ++ optional (!enableJIT) "-DLUAJIT_DISABLE_JIT" ++ optional enable52Compat "-DLUAJIT_ENABLE_LUA52COMPAT" + ++ optional (!enableGC64) "-DLUAJIT_DISABLE_GC64" ++ optional useSystemMalloc "-DLUAJIT_USE_SYSMALLOC" ++ optional enableValgrindSupport "-DLUAJIT_USE_VALGRIND" ++ optional enableGDBJITSupport "-DLUAJIT_USE_GDBJIT" @@ -37,9 +40,10 @@ let in stdenv.mkDerivation rec { inherit name version; - src = fetchurl { - url = "http://luajit.org/download/LuaJIT-${version}.tar.gz"; - inherit sha256; + src = fetchFromGitHub { + owner = "LuaJIT"; + repo = "LuaJIT"; + inherit sha256 rev; }; luaversion = "5.1"; @@ -97,7 +101,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "High-performance JIT compiler for Lua 5.1"; - homepage = http://luajit.org; + homepage = "http://luajit.org"; license = licenses.mit; platforms = platforms.linux ++ platforms.darwin; maintainers = with maintainers; [ thoughtpolice smironov vcunat andir ]; diff --git a/pkgs/development/interpreters/maude/default.nix b/pkgs/development/interpreters/maude/default.nix index 721cfe388655..e4e984fc4ac6 100644 --- a/pkgs/development/interpreters/maude/default.nix +++ b/pkgs/development/interpreters/maude/default.nix @@ -52,7 +52,7 @@ stdenv.mkDerivation { enableParallelBuilding = false; meta = { - homepage = http://maude.cs.illinois.edu/; + homepage = "http://maude.cs.illinois.edu/"; description = "High-level specification language"; license = stdenv.lib.licenses.gpl2Plus; diff --git a/pkgs/development/interpreters/metamath/default.nix b/pkgs/development/interpreters/metamath/default.nix index 42b95f341ba9..66352cfdda4b 100644 --- a/pkgs/development/interpreters/metamath/default.nix +++ b/pkgs/development/interpreters/metamath/default.nix @@ -2,23 +2,17 @@ stdenv.mkDerivation { pname = "metamath"; - version = "0.181"; + version = "0.182"; buildInputs = [ autoreconfHook ]; src = fetchFromGitHub { owner = "metamath"; repo = "metamath-exe"; - rev = "67cbfa8468deb6f8ad5bedafc6399bee59064764"; - sha256 = "1mk3g41qz26j38j68i9qmnl8khkd8jwrzj4vxkb855h4b819s000"; + rev = "5df616efe4119ff88daf77e7041d45b6fa39c578"; + sha256 = "0amjdgy42c7jypf6sz98iczlxcyl9bqx67ws1q8w2zdqk2izsyjp"; }; - # the files necessary to build the DATA target are not in this distribution - # luckily, they're not really needed so we don't build it. - makeFlags = [ "DATA=" ]; - - installTargets = [ "install-exec" ]; - meta = with stdenv.lib; { description = "Interpreter for the metamath proof language"; longDescription = '' @@ -27,7 +21,7 @@ stdenv.mkDerivation { in the Metamath Proof Explorer, and it generated its web pages. The *.mm ASCII databases (set.mm and others) are also included in this derivation. ''; - homepage = http://us.metamath.org; + homepage = "http://us.metamath.org"; downloadPage = "http://us.metamath.org/#downloads"; license = licenses.gpl2; maintainers = [ maintainers.taneb ]; diff --git a/pkgs/development/interpreters/mujs/default.nix b/pkgs/development/interpreters/mujs/default.nix index aef23ad6881d..692aed3e4ee6 100644 --- a/pkgs/development/interpreters/mujs/default.nix +++ b/pkgs/development/interpreters/mujs/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "mujs"; - version = "1.0.6"; + version = "1.0.7"; src = fetchurl { url = "https://mujs.com/downloads/mujs-${version}.tar.xz"; - sha256 = "1q9w2dcspfp580pzx7sw7x9gbn8j0ak6dvj75wd1ml3f3q3i43df"; + sha256 = "1ilhay15z4k7mlzs6g2d00snivin7vp72dfw5wwpmc0x70jr31l2"; }; buildInputs = [ readline ]; @@ -14,7 +14,7 @@ stdenv.mkDerivation rec { makeFlags = [ "prefix=$(out)" ]; meta = with stdenv.lib; { - homepage = https://mujs.com/; + homepage = "https://mujs.com/"; description = "A lightweight, embeddable Javascript interpreter"; platforms = platforms.unix; maintainers = with maintainers; [ pSub ]; diff --git a/pkgs/development/interpreters/nix-exec/default.nix b/pkgs/development/interpreters/nix-exec/default.nix index bde2f5d9fa96..0c976f2f0b05 100644 --- a/pkgs/development/interpreters/nix-exec/default.nix +++ b/pkgs/development/interpreters/nix-exec/default.nix @@ -16,7 +16,7 @@ in stdenv.mkDerivation { meta = { description = "Run programs defined in nix expressions"; - homepage = https://github.com/shlevy/nix-exec; + homepage = "https://github.com/shlevy/nix-exec"; license = stdenv.lib.licenses.mit; platforms = nix.meta.platforms; broken = true; diff --git a/pkgs/development/interpreters/octave/default.nix b/pkgs/development/interpreters/octave/default.nix index 4a63d1862014..06d69ed8117f 100644 --- a/pkgs/development/interpreters/octave/default.nix +++ b/pkgs/development/interpreters/octave/default.nix @@ -21,7 +21,7 @@ , zlib , curl , qrupdate -, openblas +, blas, lapack , arpack , libwebp , gl2ps @@ -53,17 +53,7 @@ , darwin }: -let - suitesparseOrig = suitesparse; - qrupdateOrig = qrupdate; -in -# integer width is determined by openblas, so all dependencies must be built -# with exactly the same openblas -let - suitesparse = - if suitesparseOrig != null then suitesparseOrig.override { inherit openblas; } else null; - qrupdate = if qrupdateOrig != null then qrupdateOrig.override { inherit openblas; } else null; -in +assert (!blas.isILP64) && (!lapack.isILP64); stdenv.mkDerivation rec { version = "5.2.0"; @@ -85,7 +75,8 @@ stdenv.mkDerivation rec { fltk zlib curl - openblas + blas + lapack libsndfile fftw fftwSinglePrec @@ -134,15 +125,15 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; # See https://savannah.gnu.org/bugs/?50339 - F77_INTEGER_8_FLAG = if openblas.blas64 then "-fdefault-integer-8" else ""; + F77_INTEGER_8_FLAG = if blas.isILP64 then "-fdefault-integer-8" else ""; configureFlags = [ - "--with-blas=openblas" - "--with-lapack=openblas" + "--with-blas=blas" + "--with-lapack=lapack" + (if blas.isILP64 then "--enable-64" else "--disable-64") ] ++ (if stdenv.isDarwin then [ "--enable-link-all-dependencies" ] else [ ]) ++ stdenv.lib.optionals enableReadline [ "--enable-readline" ] - ++ stdenv.lib.optionals openblas.blas64 [ "--enable-64" ] ++ stdenv.lib.optionals stdenv.isDarwin [ "--with-x=no" ] ++ stdenv.lib.optionals enableQt [ "--with-qt=5" ] ++ stdenv.lib.optionals enableJIT [ "--enable-jit" ] diff --git a/pkgs/development/interpreters/perl/default.nix b/pkgs/development/interpreters/perl/default.nix index 8f8b63a261e5..9690dfac2f20 100644 --- a/pkgs/development/interpreters/perl/default.nix +++ b/pkgs/development/interpreters/perl/default.nix @@ -162,7 +162,7 @@ let ''; # */ meta = { - homepage = https://www.perl.org/; + homepage = "https://www.perl.org/"; description = "The standard implementation of the Perl 5 programmming language"; license = licenses.artistic1; maintainers = [ maintainers.eelco ]; @@ -170,11 +170,11 @@ let priority = 6; # in `buildEnv' (including the one inside `perl.withPackages') the library files will have priority over files in `perl` }; } // optionalAttrs (stdenv.buildPlatform != stdenv.hostPlatform) rec { - crossVersion = "ba90816ef2c24dc06fd6cd2c854abcfa1aae00a3"; # Nov 22, 2019 + crossVersion = "1.3.4"; # Jun 2, 2020 perl-cross-src = fetchurl { url = "https://github.com/arsv/perl-cross/archive/${crossVersion}.tar.gz"; - sha256 = "19jq5fz6l64s0v6j64n5mkk5v2srpyfn9sc09hwbpkp9n74q82j4"; + sha256 = "15wvlafhpsh9h66s3vazhx46hf8ik75473acrvf6722ijd1wpz45"; }; depsBuildBuild = [ buildPackages.stdenv.cc makeWrapper ]; @@ -194,23 +194,23 @@ in { perl528 = common { perl = pkgs.perl528; buildPerl = buildPackages.perl528; - version = "5.28.2"; - sha256 = "1iynpsxdym4h76kgndmn3ykvwxhqz444xvaz8z2irsxkvmnlb5da"; + version = "5.28.3"; + sha256 = "052if351m81yhaab429i1kv77v9b15qm0g48kr6y2yjrc7bc3jdg"; }; # Maint version perl530 = common { perl = pkgs.perl530; buildPerl = buildPackages.perl530; - version = "5.30.1"; - sha256 = "0r7r8a7pkgxp3w5lza559ahxczw6hzpwvhkpc4c99vpi3xbjagdz"; + version = "5.30.3"; + sha256 = "0vs0wwwlw47sswxaflkk4hw0y45cmc7arxx788kwpbminy5lrq1j"; }; # the latest Devel version perldevel = common { perl = pkgs.perldevel; buildPerl = buildPackages.perldevel; - version = "5.31.6"; - sha256 = "08n3c8xm1brxpckqy8i1xgjrpl4afrhcva9bhxswr938n675x71k"; + version = "5.32.0-RC0"; + sha256 = "02i6n1xa4j0ksp014yy8q0j7scjcy5mr0yd4iash2ryrrfv5yw5k"; }; } diff --git a/pkgs/development/interpreters/php/default.nix b/pkgs/development/interpreters/php/default.nix index 497a1d87f557..6ab682d97e6c 100644 --- a/pkgs/development/interpreters/php/default.nix +++ b/pkgs/development/interpreters/php/default.nix @@ -1,299 +1,296 @@ -# pcre functionality is tested in nixos/tests/php-pcre.nix -{ config, lib, stdenv, fetchurl -, autoconf, automake, bison, file, flex, libtool, pkgconfig, re2c -, libxml2, readline, zlib, curl, postgresql, gettext -, openssl, pcre, pcre2, sqlite -, libxslt, bzip2, icu, openldap, cyrus_sasl, unixODBC -, uwimap, pam, gmp, apacheHttpd, libiconv, systemd, libsodium, html-tidy, libargon2 -, gd, freetype, libXpm, libjpeg, libpng, libwebp -, libzip, valgrind, oniguruma, symlinkJoin, writeText -, makeWrapper, callPackage -}: +# We have tests for PCRE and PHP-FPM in nixos/tests/php/ or +# both in the same attribute named nixosTests.php + +{ callPackage, lib, stdenv, nixosTests }@_args: let generic = - { version - , sha256 - , extraPatches ? [] - , withSystemd ? config.php.systemd or stdenv.isLinux - , imapSupport ? config.php.imap or (!stdenv.isDarwin) - , ldapSupport ? config.php.ldap or true - , mysqlndSupport ? config.php.mysqlnd or true - , mysqliSupport ? (config.php.mysqli or true) && (mysqlndSupport) - , pdo_mysqlSupport ? (config.php.pdo_mysql or true) && (mysqlndSupport) - , libxml2Support ? config.php.libxml2 or true - , apxs2Support ? config.php.apxs2 or (!stdenv.isDarwin) - , embedSupport ? config.php.embed or false - , bcmathSupport ? config.php.bcmath or true - , socketsSupport ? config.php.sockets or true - , curlSupport ? config.php.curl or true - , gettextSupport ? config.php.gettext or true - , pcntlSupport ? config.php.pcntl or true - , pdo_odbcSupport ? config.php.pdo_odbc or true - , postgresqlSupport ? config.php.postgresql or true - , pdo_pgsqlSupport ? config.php.pdo_pgsql or true - , readlineSupport ? config.php.readline or true - , sqliteSupport ? config.php.sqlite or true - , soapSupport ? (config.php.soap or true) && (libxml2Support) - , zlibSupport ? config.php.zlib or true - , opensslSupport ? config.php.openssl or true - , mbstringSupport ? config.php.mbstring or true - , gdSupport ? config.php.gd or true - , intlSupport ? config.php.intl or true - , exifSupport ? config.php.exif or true - , xslSupport ? config.php.xsl or false - , bz2Support ? config.php.bz2 or false - , zipSupport ? config.php.zip or true - , ftpSupport ? config.php.ftp or true - , fpmSupport ? config.php.fpm or true - , gmpSupport ? config.php.gmp or true - , ztsSupport ? (config.php.zts or false) || (apxs2Support) - , calendarSupport ? config.php.calendar or true - , sodiumSupport ? (config.php.sodium or true) && (lib.versionAtLeast version "7.2") - , tidySupport ? (config.php.tidy or false) - , argon2Support ? (config.php.argon2 or true) && (lib.versionAtLeast version "7.2") - , libzipSupport ? (config.php.libzip or true) && (lib.versionAtLeast version "7.2") - , phpdbgSupport ? config.php.phpdbg or true - , cgiSupport ? config.php.cgi or true - , cliSupport ? config.php.cli or true - , pharSupport ? config.php.phar or true - , xmlrpcSupport ? (config.php.xmlrpc or false) && (libxml2Support) - , cgotoSupport ? config.php.cgoto or false - , valgrindSupport ? (config.php.valgrind or true) && (lib.versionAtLeast version "7.2") - , ipv6Support ? config.php.ipv6 or true - , pearSupport ? (config.php.pear or true) && (libxml2Support) - }: stdenv.mkDerivation { - pname = "php"; - - inherit version; - - enableParallelBuilding = true; - - nativeBuildInputs = [ autoconf automake bison file flex libtool pkgconfig re2c ]; - - buildInputs = [ ] - ++ lib.optional (lib.versionOlder version "7.3") pcre - ++ lib.optional (lib.versionAtLeast version "7.3") pcre2 - ++ lib.optional (lib.versionAtLeast version "7.4") oniguruma - ++ lib.optional withSystemd systemd - ++ lib.optionals imapSupport [ uwimap openssl pam ] - ++ lib.optionals curlSupport [ curl openssl ] - ++ lib.optionals ldapSupport [ openldap openssl ] - ++ lib.optionals gdSupport [ gd freetype libXpm libjpeg libpng libwebp ] - ++ lib.optionals opensslSupport [ openssl openssl.dev ] - ++ lib.optional apxs2Support apacheHttpd - ++ lib.optional (ldapSupport && stdenv.isLinux) cyrus_sasl - ++ lib.optional zlibSupport zlib - ++ lib.optional libxml2Support libxml2 - ++ lib.optional readlineSupport readline - ++ lib.optional sqliteSupport sqlite - ++ lib.optional postgresqlSupport postgresql - ++ lib.optional pdo_odbcSupport unixODBC - ++ lib.optional pdo_pgsqlSupport postgresql - ++ lib.optional gmpSupport gmp - ++ lib.optional gettextSupport gettext - ++ lib.optional intlSupport icu - ++ lib.optional xslSupport libxslt - ++ lib.optional bz2Support bzip2 - ++ lib.optional sodiumSupport libsodium - ++ lib.optional tidySupport html-tidy - ++ lib.optional argon2Support libargon2 - ++ lib.optional libzipSupport libzip - ++ lib.optional valgrindSupport valgrind; - - CXXFLAGS = lib.optionalString stdenv.cc.isClang "-std=c++11"; - - configureFlags = [ "--with-config-file-scan-dir=/etc/php.d" ] - ++ lib.optionals (lib.versionOlder version "7.3") [ "--with-pcre-regex=${pcre.dev}" "PCRE_LIBDIR=${pcre}" ] - ++ lib.optionals (lib.versions.majorMinor version == "7.3") [ "--with-pcre-regex=${pcre2.dev}" "PCRE_LIBDIR=${pcre2}" ] - ++ lib.optionals (lib.versionAtLeast version "7.4") [ "--with-external-pcre=${pcre2.dev}" "PCRE_LIBDIR=${pcre2}" ] - ++ lib.optional stdenv.isDarwin "--with-iconv=${libiconv}" - ++ lib.optional withSystemd "--with-fpm-systemd" - ++ lib.optionals imapSupport [ - "--with-imap=${uwimap}" - "--with-imap-ssl" - ] - ++ lib.optionals ldapSupport [ - "--with-ldap=/invalid/path" - "LDAP_DIR=${openldap.dev}" - "LDAP_INCDIR=${openldap.dev}/include" - "LDAP_LIBDIR=${openldap.out}/lib" - ] - ++ lib.optional (ldapSupport && stdenv.isLinux) "--with-ldap-sasl=${cyrus_sasl.dev}" - ++ lib.optional apxs2Support "--with-apxs2=${apacheHttpd.dev}/bin/apxs" - ++ lib.optional embedSupport "--enable-embed" - ++ lib.optional curlSupport "--with-curl=${curl.dev}" - ++ lib.optional zlibSupport "--with-zlib=${zlib.dev}" - ++ lib.optional (libxml2Support && (lib.versionOlder version "7.4")) "--with-libxml-dir=${libxml2.dev}" - ++ lib.optional (!libxml2Support) [ - "--disable-dom" - (if (lib.versionOlder version "7.4") then "--disable-libxml" else "--without-libxml") - "--disable-simplexml" - "--disable-xml" - "--disable-xmlreader" - "--disable-xmlwriter" - "--without-pear" - ] - ++ lib.optional pcntlSupport "--enable-pcntl" - ++ lib.optional readlineSupport "--with-readline=${readline.dev}" - ++ lib.optional sqliteSupport "--with-pdo-sqlite=${sqlite.dev}" - ++ lib.optional postgresqlSupport "--with-pgsql=${postgresql}" - ++ lib.optional pdo_odbcSupport "--with-pdo-odbc=unixODBC,${unixODBC}" - ++ lib.optional pdo_pgsqlSupport "--with-pdo-pgsql=${postgresql}" - ++ lib.optional (pdo_mysqlSupport && mysqlndSupport) "--with-pdo-mysql=mysqlnd" - ++ lib.optional (mysqliSupport && mysqlndSupport) "--with-mysqli=mysqlnd" - ++ lib.optional (pdo_mysqlSupport || mysqliSupport) "--with-mysql-sock=/run/mysqld/mysqld.sock" - ++ lib.optional bcmathSupport "--enable-bcmath" - ++ lib.optionals (gdSupport && lib.versionAtLeast version "7.4") [ - "--enable-gd" - "--with-external-gd=${gd.dev}" - "--with-webp=${libwebp}" - "--with-jpeg=${libjpeg.dev}" - "--with-xpm=${libXpm.dev}" - "--with-freetype=${freetype.dev}" - "--enable-gd-jis-conv" - ] ++ lib.optionals (gdSupport && lib.versionOlder version "7.4") [ - "--with-gd=${gd.dev}" - "--with-webp-dir=${libwebp}" - "--with-jpeg-dir=${libjpeg.dev}" - "--with-png-dir=${libpng.dev}" - "--with-freetype-dir=${freetype.dev}" - "--with-xpm-dir=${libXpm.dev}" - "--enable-gd-jis-conv" - ] - ++ lib.optional gmpSupport "--with-gmp=${gmp.dev}" - ++ lib.optional soapSupport "--enable-soap" - ++ lib.optional socketsSupport "--enable-sockets" - ++ lib.optional opensslSupport "--with-openssl" - ++ lib.optional mbstringSupport "--enable-mbstring" - ++ lib.optional gettextSupport "--with-gettext=${gettext}" - ++ lib.optional intlSupport "--enable-intl" - ++ lib.optional exifSupport "--enable-exif" - ++ lib.optional xslSupport "--with-xsl=${libxslt.dev}" - ++ lib.optional bz2Support "--with-bz2=${bzip2.dev}" - ++ lib.optional (zipSupport && (lib.versionOlder version "7.4")) "--enable-zip" - ++ lib.optional (zipSupport && (lib.versionAtLeast version "7.4")) "--with-zip" - ++ lib.optional ftpSupport "--enable-ftp" - ++ lib.optional fpmSupport "--enable-fpm" - ++ lib.optional ztsSupport "--enable-maintainer-zts" - ++ lib.optional calendarSupport "--enable-calendar" - ++ lib.optional sodiumSupport "--with-sodium=${libsodium.dev}" - ++ lib.optional tidySupport "--with-tidy=${html-tidy}" - ++ lib.optional argon2Support "--with-password-argon2=${libargon2}" - ++ lib.optional (libzipSupport && (lib.versionOlder version "7.4")) "--with-libzip=${libzip.dev}" - ++ lib.optional phpdbgSupport "--enable-phpdbg" - ++ lib.optional (!phpdbgSupport) "--disable-phpdbg" - ++ lib.optional (!cgiSupport) "--disable-cgi" - ++ lib.optional (!cliSupport) "--disable-cli" - ++ lib.optional (!pharSupport) "--disable-phar" - ++ lib.optional xmlrpcSupport "--with-xmlrpc" - ++ lib.optional cgotoSupport "--enable-re2c-cgoto" - ++ lib.optional valgrindSupport "--with-valgrind=${valgrind.dev}" - ++ lib.optional (!ipv6Support) "--disable-ipv6" - ++ lib.optional (pearSupport && libxml2Support) "--with-pear=$(out)/lib/php/pear"; - - hardeningDisable = [ "bindnow" ]; - - preConfigure = '' - # Don't record the configure flags since this causes unnecessary - # runtime dependencies - for i in main/build-defs.h.in scripts/php-config.in; do - substituteInPlace $i \ - --replace '@CONFIGURE_COMMAND@' '(omitted)' \ - --replace '@CONFIGURE_OPTIONS@' "" \ - --replace '@PHP_LDFLAGS@' "" - done - - substituteInPlace ./build/libtool.m4 --replace /usr/bin/file ${file}/bin/file - - export EXTENSION_DIR=$out/lib/php/extensions - - ./buildconf --copy --force - - if test -f $src/genfiles; then - ./genfiles - fi - '' + lib.optionalString stdenv.isDarwin '' - substituteInPlace configure --replace "-lstdc++" "-lc++" - ''; - - postInstall = '' - test -d $out/etc || mkdir $out/etc - cp php.ini-production $out/etc/php.ini - ''; - - postFixup = '' - mkdir -p $dev/bin $dev/share/man/man1 - mv $out/bin/phpize $out/bin/php-config $dev/bin/ - mv $out/share/man/man1/phpize.1.gz \ - $out/share/man/man1/php-config.1.gz \ - $dev/share/man/man1/ - ''; - - src = fetchurl { - url = "https://www.php.net/distributions/php-${version}.tar.bz2"; - inherit sha256; - }; - - meta = with stdenv.lib; { - description = "An HTML-embedded scripting language"; - homepage = "https://www.php.net/"; - license = licenses.php301; - maintainers = with maintainers; [ globin etu ma27 ]; - platforms = platforms.all; - outputsToInstall = [ "out" "dev" ]; - }; - - patches = [ ./fix-paths-php7.patch ] ++ extraPatches; - - stripDebugList = "bin sbin lib modules"; - - outputs = [ "out" "dev" ]; - }; - - generic' = { version, sha256, ... }@args: let php = generic args; in php.overrideAttrs (_: { - passthru.buildEnv = { exts ? (_: []), extraConfig ? "" }: let - extraInit = writeText "custom-php.ini" '' - ${extraConfig} - ${lib.concatMapStringsSep "\n" (ext: let - extName = lib.removePrefix "php-" (builtins.parseDrvName ext.name).name; - type = "${lib.optionalString (ext.zendExtension or false) "zend_"}extension"; - in '' - ${type}=${ext}/lib/php/extensions/${extName}.so - '') (exts (callPackage ../../../top-level/php-packages.nix { inherit php; }))} - ''; - in symlinkJoin { - name = "php-custom-${version}"; - nativeBuildInputs = [ makeWrapper ]; - paths = [ php ]; - postBuild = '' - wrapProgram $out/bin/php \ - --add-flags "-c ${extraInit}" - wrapProgram $out/bin/php-fpm \ - --add-flags "-c ${extraInit}" - ''; - }; - }); + { callPackage, lib, stdenv, nixosTests, config, fetchurl, makeWrapper + , symlinkJoin, writeText, autoconf, automake, bison, flex, libtool + , pkgconfig, re2c, apacheHttpd, libargon2, libxml2, pcre, pcre2 + , systemd, valgrind + + , version + , sha256 + , extraPatches ? [] + + # Sapi flags + , cgiSupport ? true + , cliSupport ? true + , fpmSupport ? true + , pearSupport ? true + , pharSupport ? true + , phpdbgSupport ? true + + # Misc flags + , apxs2Support ? !stdenv.isDarwin + , argon2Support ? true + , cgotoSupport ? false + , embedSupport ? false + , ipv6Support ? true + , systemdSupport ? stdenv.isLinux + , valgrindSupport ? true + , ztsSupport ? apxs2Support + }@args: + let + # buildEnv wraps php to provide additional extensions and + # configuration. Its usage is documented in + # doc/languages-frameworks/php.section.md. + # + # Create a buildEnv with earlier overridden values and + # extensions functions in its closure. This is necessary for + # consecutive calls to buildEnv and overrides to work as + # expected. + mkBuildEnv = prevArgs: prevExtensionFunctions: lib.makeOverridable ( + { extensions ? ({ enabled, ... }: enabled), extraConfig ? "", ... }@innerArgs: + let + allArgs = args // prevArgs // innerArgs; + filteredArgs = builtins.removeAttrs allArgs [ "extensions" "extraConfig" ]; + php = generic filteredArgs; + + php-packages = (callPackage ../../../top-level/php-packages.nix { + php = phpWithExtensions; + }); + + allExtensionFunctions = prevExtensionFunctions ++ [ extensions ]; + enabledExtensions = + builtins.foldl' + (enabled: f: + f { inherit enabled; all = php-packages.extensions; }) + [] + allExtensionFunctions; + + getExtName = ext: lib.removePrefix "php-" (builtins.parseDrvName ext.name).name; + + # Recursively get a list of all internal dependencies + # for a list of extensions. + getDepsRecursively = extensions: + let + deps = lib.concatMap + (ext: (ext.internalDeps or []) ++ (ext.peclDeps or [])) + extensions; + in + if ! (deps == []) then + deps ++ (getDepsRecursively deps) + else + deps; + + # Generate extension load configuration snippets from the + # extension parameter. This is an attrset suitable for use + # with textClosureList, which is used to put the strings in + # the right order - if a plugin which is dependent on + # another plugin is placed before its dependency, it will + # fail to load. + extensionTexts = + lib.listToAttrs + (map (ext: + let + extName = getExtName ext; + phpDeps = (ext.internalDeps or []) ++ (ext.peclDeps or []); + type = "${lib.optionalString (ext.zendExtension or false) "zend_"}extension"; + in + lib.nameValuePair extName { + text = "${type}=${ext}/lib/php/extensions/${extName}.so"; + deps = map getExtName phpDeps; + }) + (enabledExtensions ++ (getDepsRecursively enabledExtensions))); + + extNames = map getExtName enabledExtensions; + extraInit = writeText "php.ini" '' + ${lib.concatStringsSep "\n" + (lib.textClosureList extensionTexts extNames)} + ${extraConfig} + ''; + + phpWithExtensions = symlinkJoin rec { + name = "php-with-extensions-${version}"; + inherit (php) version; + nativeBuildInputs = [ makeWrapper ]; + passthru = { + buildEnv = mkBuildEnv allArgs allExtensionFunctions; + withExtensions = mkWithExtensions allArgs allExtensionFunctions; + phpIni = "${phpWithExtensions}/lib/php.ini"; + unwrapped = php; + tests = nixosTests.php; + inherit (php-packages) packages extensions buildPecl; + meta = php.meta // { + outputsToInstall = [ "out" ]; + }; + }; + paths = [ php ]; + postBuild = '' + cp ${extraInit} $out/lib/php.ini + + wrapProgram $out/bin/php --set PHP_INI_SCAN_DIR $out/lib + + if test -e $out/bin/php-fpm; then + wrapProgram $out/bin/php-fpm --set PHP_INI_SCAN_DIR $out/lib + fi + ''; + }; + in + phpWithExtensions); + + mkWithExtensions = prevArgs: prevExtensionFunctions: extensions: + mkBuildEnv prevArgs prevExtensionFunctions { inherit extensions; }; + + pcre' = if (lib.versionAtLeast version "7.3") then pcre2 else pcre; + in + stdenv.mkDerivation { + pname = "php"; + + inherit version; + + enableParallelBuilding = true; + + nativeBuildInputs = [ autoconf automake bison flex libtool pkgconfig re2c ]; + + buildInputs = + # PCRE extension + [ pcre' ] + + # Enable sapis + ++ lib.optional pearSupport [ libxml2.dev ] + + # Misc deps + ++ lib.optional apxs2Support apacheHttpd + ++ lib.optional argon2Support libargon2 + ++ lib.optional systemdSupport systemd + ++ lib.optional valgrindSupport valgrind + ; + + CXXFLAGS = lib.optionalString stdenv.cc.isClang "-std=c++11"; + + configureFlags = + # Disable all extensions + [ "--disable-all" ] + + # PCRE + ++ lib.optionals (lib.versionAtLeast version "7.4") [ "--with-external-pcre=${pcre'.dev}" ] + ++ lib.optionals (lib.versions.majorMinor version == "7.3") [ "--with-pcre-regex=${pcre'.dev}" ] + ++ lib.optionals (lib.versionOlder version "7.3") [ "--with-pcre-regex=${pcre'.dev}" ] + ++ [ "PCRE_LIBDIR=${pcre'}" ] -in { - php72 = generic' { - version = "7.2.28"; - sha256 = "18sjvl67z5a2x5s2a36g6ls1r3m4hbrsw52hqr2qsgfvg5dkm5bw"; + + # Enable sapis + ++ lib.optional (!cgiSupport) "--disable-cgi" + ++ lib.optional (!cliSupport) "--disable-cli" + ++ lib.optional fpmSupport "--enable-fpm" + ++ lib.optional pearSupport [ "--with-pear=$(out)/lib/php/pear" "--enable-xml" "--with-libxml" ] + ++ lib.optional (pearSupport && (lib.versionOlder version "7.4")) "--enable-libxml" + ++ lib.optional pharSupport "--enable-phar" + ++ lib.optional phpdbgSupport "--enable-phpdbg" + + + # Misc flags + ++ lib.optional apxs2Support "--with-apxs2=${apacheHttpd.dev}/bin/apxs" + ++ lib.optional argon2Support "--with-password-argon2=${libargon2}" + ++ lib.optional cgotoSupport "--enable-re2c-cgoto" + ++ lib.optional embedSupport "--enable-embed" + ++ lib.optional (!ipv6Support) "--disable-ipv6" + ++ lib.optional systemdSupport "--with-fpm-systemd" + ++ lib.optional valgrindSupport "--with-valgrind=${valgrind.dev}" + ++ lib.optional ztsSupport "--enable-maintainer-zts" + ; + + hardeningDisable = [ "bindnow" ]; + + preConfigure = '' + # Don't record the configure flags since this causes unnecessary + # runtime dependencies + for i in main/build-defs.h.in scripts/php-config.in; do + substituteInPlace $i \ + --replace '@CONFIGURE_COMMAND@' '(omitted)' \ + --replace '@CONFIGURE_OPTIONS@' "" \ + --replace '@PHP_LDFLAGS@' "" + done + + export EXTENSION_DIR=$out/lib/php/extensions + + ./buildconf --copy --force + + if test -f $src/genfiles; then + ./genfiles + fi + '' + lib.optionalString stdenv.isDarwin '' + substituteInPlace configure --replace "-lstdc++" "-lc++" + ''; + + postInstall = '' + test -d $out/etc || mkdir $out/etc + cp php.ini-production $out/etc/php.ini + ''; + + postFixup = '' + mkdir -p $dev/bin $dev/share/man/man1 + mv $out/bin/phpize $out/bin/php-config $dev/bin/ + mv $out/share/man/man1/phpize.1.gz \ + $out/share/man/man1/php-config.1.gz \ + $dev/share/man/man1/ + ''; + + src = fetchurl { + url = "https://www.php.net/distributions/php-${version}.tar.bz2"; + inherit sha256; + }; + + patches = [ ./fix-paths-php7.patch ] ++ extraPatches; + + separateDebugInfo = true; + + outputs = [ "out" "dev" ]; + + passthru = { + buildEnv = mkBuildEnv {} []; + withExtensions = mkWithExtensions {} []; + }; + + meta = with stdenv.lib; { + description = "An HTML-embedded scripting language"; + homepage = "https://www.php.net/"; + license = licenses.php301; + maintainers = teams.php.members; + platforms = platforms.all; + outputsToInstall = [ "out" "dev" ]; + }; + }; + + php72base = callPackage generic (_args // { + version = "7.2.29"; + sha256 = "08xry2fgqgg8s0ym1hh11wkbr36av3zq1bn4krbciw1b7x8gb8ga"; # https://bugs.php.net/bug.php?id=76826 extraPatches = lib.optional stdenv.isDarwin ./php72-darwin-isfinite.patch; - }; + }); - php73 = generic' { - version = "7.3.15"; - sha256 = "0g84hws15s8gh8iq4h6q747dyfazx47vh3da3whz8d80x83ibgld"; + php73base = callPackage generic (_args // { + version = "7.3.16"; + sha256 = "0bh499v9dfgh9k51w4rird1slb9rh9whp5h37fb84c98d992s1xq"; # https://bugs.php.net/bug.php?id=76826 extraPatches = lib.optional stdenv.isDarwin ./php73-darwin-isfinite.patch; - }; + }); - php74 = generic' { - version = "7.4.3"; - sha256 = "wVF7pJV4+y3MZMc6Ptx21PxQfEp6xjmYFYTMfTtMbRQ="; - }; + php74base = callPackage generic (_args // { + version = "7.4.6"; + sha256 = "0j133pfwa823d4jhx2hkrrzjl4hswvz00b1z58r5c82xd5sr9vd6"; + }); + + defaultPhpExtensions = { all, ... }: with all; ([ + bcmath calendar curl ctype dom exif fileinfo filter ftp gd + gettext gmp iconv intl json ldap mbstring mysqli mysqlnd opcache + openssl pcntl pdo pdo_mysql pdo_odbc pdo_pgsql pdo_sqlite pgsql + posix readline session simplexml sockets soap sodium sqlite3 + tokenizer xmlreader xmlwriter zip zlib + ] ++ lib.optionals (!stdenv.isDarwin) [ imap ]); + + defaultPhpExtensionsWithHash = { all, ... }: + (defaultPhpExtensions { inherit all; }) ++ [ all.hash ]; + + php74 = php74base.withExtensions defaultPhpExtensions; + php73 = php73base.withExtensions defaultPhpExtensionsWithHash; + php72 = php72base.withExtensions defaultPhpExtensionsWithHash; + +in { + inherit php72 php73 php74; } diff --git a/pkgs/development/interpreters/picoc/default.nix b/pkgs/development/interpreters/picoc/default.nix index 6e57ad250bb4..f7343f6e4d60 100644 --- a/pkgs/development/interpreters/picoc/default.nix +++ b/pkgs/development/interpreters/picoc/default.nix @@ -20,7 +20,7 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; # Tests are currently broken on i686 see - # http://hydra.nixos.org/build/24003763/nixlog/1 + # https://hydra.nixos.org/build/24003763/nixlog/1 doCheck = if stdenv.isi686 then false else true; checkTarget = "test"; @@ -43,8 +43,8 @@ stdenv.mkDerivation rec { very sparing of data space. This means it can work well in small embedded devices. ''; - homepage = https://github.com/zsaleeba/picoc; - downloadPage = https://code.google.com/p/picoc/downloads/list; + homepage = "https://github.com/zsaleeba/picoc"; + downloadPage = "https://code.google.com/p/picoc/downloads/list"; license = licenses.bsd3; platforms = platforms.linux; }; diff --git a/pkgs/development/interpreters/picolisp/default.nix b/pkgs/development/interpreters/picolisp/default.nix index 1a0a781b9188..c49437717c15 100644 --- a/pkgs/development/interpreters/picolisp/default.nix +++ b/pkgs/development/interpreters/picolisp/default.nix @@ -50,7 +50,7 @@ stdenv.mkDerivation rec { meta = { description = "A simple Lisp with an integrated database"; - homepage = https://picolisp.com/; + homepage = "https://picolisp.com/"; license = licenses.mit; platforms = platforms.all; broken = stdenv.isDarwin; # times out diff --git a/pkgs/development/interpreters/pixie/default.nix b/pkgs/development/interpreters/pixie/default.nix index 02f6d34a0305..9b57e153aa05 100644 --- a/pkgs/development/interpreters/pixie/default.nix +++ b/pkgs/development/interpreters/pixie/default.nix @@ -84,7 +84,7 @@ let ''; meta = { description = "A clojure-like lisp, built with the pypy vm toolkit"; - homepage = https://github.com/pixie-lang/pixie; + homepage = "https://github.com/pixie-lang/pixie"; license = stdenv.lib.licenses.lgpl3; platforms = ["x86_64-linux" "i686-linux" "x86_64-darwin"]; maintainers = with stdenv.lib.maintainers; [ bendlas ]; diff --git a/pkgs/development/interpreters/pyrex/0.9.5.nix b/pkgs/development/interpreters/pyrex/0.9.5.nix index 30a601ef8dfd..40eb1daf49c8 100644 --- a/pkgs/development/interpreters/pyrex/0.9.5.nix +++ b/pkgs/development/interpreters/pyrex/0.9.5.nix @@ -14,7 +14,7 @@ python2Packages.buildPythonPackage { doCheck = false; meta = { - homepage = http://www.cosc.canterbury.ac.nz/greg.ewing/python/Pyrex/; + homepage = "http://www.cosc.canterbury.ac.nz/greg.ewing/python/Pyrex/"; description = "A language for writing Python extension modules"; license = stdenv.lib.licenses.asl20; }; diff --git a/pkgs/development/interpreters/pyrex/0.9.6.nix b/pkgs/development/interpreters/pyrex/0.9.6.nix index 69a930891885..e518edba1b39 100644 --- a/pkgs/development/interpreters/pyrex/0.9.6.nix +++ b/pkgs/development/interpreters/pyrex/0.9.6.nix @@ -14,7 +14,7 @@ python2Packages.buildPythonPackage { doCheck = false; meta = { - homepage = http://www.cosc.canterbury.ac.nz/greg.ewing/python/Pyrex/; + homepage = "http://www.cosc.canterbury.ac.nz/greg.ewing/python/Pyrex/"; description = "A language for writing Python extension modules"; license = stdenv.lib.licenses.asl20; }; diff --git a/pkgs/development/interpreters/python/cpython/2.7/default.nix b/pkgs/development/interpreters/python/cpython/2.7/default.nix index ca4fae51269c..0e9a790237fe 100644 --- a/pkgs/development/interpreters/python/cpython/2.7/default.nix +++ b/pkgs/development/interpreters/python/cpython/2.7/default.nix @@ -276,7 +276,7 @@ in with passthru; stdenv.mkDerivation ({ doCheck = false; # expensive, and fails meta = { - homepage = http://python.org; + homepage = "http://python.org"; description = "A high-level dynamically-typed programming language"; longDescription = '' Python is a remarkably powerful dynamic programming language that diff --git a/pkgs/development/interpreters/python/cpython/3.7/fix-hardcoded-path-checking-for-rpmbuild.patch b/pkgs/development/interpreters/python/cpython/3.7/fix-hardcoded-path-checking-for-rpmbuild.patch new file mode 100644 index 000000000000..bb3d992612d3 --- /dev/null +++ b/pkgs/development/interpreters/python/cpython/3.7/fix-hardcoded-path-checking-for-rpmbuild.patch @@ -0,0 +1,30 @@ +From a612c481f6116955d420db5ae1fe4c1eb93eb2f2 Mon Sep 17 00:00:00 2001 +From: Marcin Niemira <marcin.niemira@gmail.com> +Date: Sun, 9 Jun 2019 07:05:06 +1000 +Subject: [PATCH] bpo-11122: fix hardcoded path checking for rpmbuild in + bdist_rpm.py (GH-10594) (cherry picked from commit + 45a14942c969ed508b35abd5e116cb18f84ce5b4) + +Co-authored-by: Marcin Niemira <marcin.niemira@gmail.com> +--- + Lib/distutils/command/bdist_rpm.py | 5 +---- + .../next/Library/2018-11-12-19-08-50.bpo-11122.Gj7BQn.rst | 1 + + 2 files changed, 2 insertions(+), 4 deletions(-) + create mode 100644 Misc/NEWS.d/next/Library/2018-11-12-19-08-50.bpo-11122.Gj7BQn.rst + +diff --git a/Lib/distutils/command/bdist_rpm.py b/Lib/distutils/command/bdist_rpm.py +index 20ca7ac6dcffa..74381cc69a6ce 100644 +--- a/Lib/distutils/command/bdist_rpm.py ++++ b/Lib/distutils/command/bdist_rpm.py +@@ -309,10 +309,7 @@ def run(self): + + # build package + log.info("building RPMs") +- rpm_cmd = ['rpm'] +- if os.path.exists('/usr/bin/rpmbuild') or \ +- os.path.exists('/bin/rpmbuild'): +- rpm_cmd = ['rpmbuild'] ++ rpm_cmd = ['rpmbuild'] + + if self.source_only: # what kind of RPMs? + rpm_cmd.append('-bs') diff --git a/pkgs/development/interpreters/python/cpython/default.nix b/pkgs/development/interpreters/python/cpython/default.nix index dc3997481be3..34ffc9b32d09 100644 --- a/pkgs/development/interpreters/python/cpython/default.nix +++ b/pkgs/development/interpreters/python/cpython/default.nix @@ -29,6 +29,8 @@ , stripTkinter ? false , rebuildBytecode ? true , stripBytecode ? false +, includeSiteCustomize ? true +, static ? false }: assert x11Support -> tcl != null @@ -128,6 +130,10 @@ in with passthru; stdenv.mkDerivation { ] ++ optionals isPy35 [ # Backports support for LD_LIBRARY_PATH from 3.6 ./3.5/ld_library_path.patch + ] ++ optionals (isPy35 || isPy36 || isPy37) [ + # Backport a fix for discovering `rpmbuild` command when doing `python setup.py bdist_rpm` to 3.5, 3.6, 3.7. + # See: https://bugs.python.org/issue11122 + ./3.7/fix-hardcoded-path-checking-for-rpmbuild.patch ] ++ optionals (isPy37 || isPy38) [ # Fix darwin build https://bugs.python.org/issue34027 ./3.7/darwin-libutil.patch @@ -165,7 +171,7 @@ in with passthru; stdenv.mkDerivation { CPPFLAGS = concatStringsSep " " (map (p: "-I${getDev p}/include") buildInputs); LDFLAGS = concatStringsSep " " (map (p: "-L${getLib p}/lib") buildInputs); LIBS = "${optionalString (!stdenv.isDarwin) "-lcrypt"} ${optionalString (ncurses != null) "-lncurses"}"; - NIX_LDFLAGS = optionalString stdenv.isLinux "-lgcc_s"; + NIX_LDFLAGS = optionalString (stdenv.isLinux && !stdenv.hostPlatform.isMusl) "-lgcc_s" + optionalString stdenv.hostPlatform.isMusl "-lgcc_eh"; # Determinism: We fix the hashes of str, bytes and datetime objects. PYTHONHASHSEED=0; @@ -207,7 +213,7 @@ in with passthru; stdenv.mkDerivation { # Never even try to use lchmod on linux, # don't rely on detecting glibc-isms. "ac_cv_func_lchmod=no" - ]; + ] ++ optional static "LDFLAGS=-static"; preConfigure = '' for i in /usr /sw /opt /pkg; do # improve purity @@ -275,7 +281,7 @@ in with passthru; stdenv.mkDerivation { '' + optionalString stripTests '' # Strip tests rm -R $out/lib/python*/test $out/lib/python*/**/test{,s} - '' + '' + '' + optionalString includeSiteCustomize '' # Include a sitecustomize.py file cp ${../sitecustomize.py} $out/${sitePackages}/sitecustomize.py '' + optionalString rebuildBytecode '' @@ -300,7 +306,7 @@ in with passthru; stdenv.mkDerivation { # Enforce that we don't have references to the OpenSSL -dev package, which we # explicitly specify in our configure flags above. disallowedReferences = - stdenv.lib.optionals (openssl != null) [ openssl.dev ] + stdenv.lib.optionals (openssl != null && !static) [ openssl.dev ] ++ stdenv.lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ # Ensure we don't have references to build-time packages. # These typically end up in shebangs. @@ -312,7 +318,7 @@ in with passthru; stdenv.mkDerivation { enableParallelBuilding = true; meta = { - homepage = http://python.org; + homepage = "http://python.org"; description = "A high-level dynamically-typed programming language"; longDescription = '' Python is a remarkably powerful dynamic programming language that diff --git a/pkgs/development/interpreters/python/cpython/docs/2.7-html.nix b/pkgs/development/interpreters/python/cpython/docs/2.7-html.nix index e27959c05e8d..e033858acc01 100644 --- a/pkgs/development/interpreters/python/cpython/docs/2.7-html.nix +++ b/pkgs/development/interpreters/python/cpython/docs/2.7-html.nix @@ -5,7 +5,7 @@ stdenv.mkDerivation { name = "python27-docs-html-2.7.16"; src = fetchurl { - url = http://docs.python.org/ftp/python/doc/2.7.16/python-2.7.16-docs-html.tar.bz2; + url = "http://docs.python.org/ftp/python/doc/2.7.16/python-2.7.16-docs-html.tar.bz2"; sha256 = "1razs1grzhai65ihaiyph8kz6ncjkgp1gsn3c8v7kanf13lqim02"; }; installPhase = '' diff --git a/pkgs/development/interpreters/python/cpython/docs/2.7-pdf-a4.nix b/pkgs/development/interpreters/python/cpython/docs/2.7-pdf-a4.nix index 0226f7cd8809..c9a770a6fcf1 100644 --- a/pkgs/development/interpreters/python/cpython/docs/2.7-pdf-a4.nix +++ b/pkgs/development/interpreters/python/cpython/docs/2.7-pdf-a4.nix @@ -5,7 +5,7 @@ stdenv.mkDerivation { name = "python27-docs-pdf-a4-2.7.16"; src = fetchurl { - url = http://docs.python.org/ftp/python/doc/2.7.16/python-2.7.16-docs-pdf-a4.tar.bz2; + url = "http://docs.python.org/ftp/python/doc/2.7.16/python-2.7.16-docs-pdf-a4.tar.bz2"; sha256 = "14ml1ynrlbhg43737bdsb8k5y39wsffqj4iwhylhb8n8l5dplfdq"; }; installPhase = '' diff --git a/pkgs/development/interpreters/python/cpython/docs/2.7-pdf-letter.nix b/pkgs/development/interpreters/python/cpython/docs/2.7-pdf-letter.nix index 88d1a6931668..e03d031bae48 100644 --- a/pkgs/development/interpreters/python/cpython/docs/2.7-pdf-letter.nix +++ b/pkgs/development/interpreters/python/cpython/docs/2.7-pdf-letter.nix @@ -5,7 +5,7 @@ stdenv.mkDerivation { name = "python27-docs-pdf-letter-2.7.16"; src = fetchurl { - url = http://docs.python.org/ftp/python/doc/2.7.16/python-2.7.16-docs-pdf-letter.tar.bz2; + url = "http://docs.python.org/ftp/python/doc/2.7.16/python-2.7.16-docs-pdf-letter.tar.bz2"; sha256 = "019i8n48m71mn31v8d85kkwyqfgcgqnqh506y4a7fcgf656bajs0"; }; installPhase = '' diff --git a/pkgs/development/interpreters/python/cpython/docs/2.7-text.nix b/pkgs/development/interpreters/python/cpython/docs/2.7-text.nix index ea35e9fb6a35..d19d7be19357 100644 --- a/pkgs/development/interpreters/python/cpython/docs/2.7-text.nix +++ b/pkgs/development/interpreters/python/cpython/docs/2.7-text.nix @@ -5,7 +5,7 @@ stdenv.mkDerivation { name = "python27-docs-text-2.7.16"; src = fetchurl { - url = http://docs.python.org/ftp/python/doc/2.7.16/python-2.7.16-docs-text.tar.bz2; + url = "http://docs.python.org/ftp/python/doc/2.7.16/python-2.7.16-docs-text.tar.bz2"; sha256 = "1da7swlykvc013684nywycinfz3v8dqkcmv0zj8p7l5lyi5mq03r"; }; installPhase = '' diff --git a/pkgs/development/interpreters/python/cpython/docs/3.7-html.nix b/pkgs/development/interpreters/python/cpython/docs/3.7-html.nix index 45783eb82632..a83363b5c473 100644 --- a/pkgs/development/interpreters/python/cpython/docs/3.7-html.nix +++ b/pkgs/development/interpreters/python/cpython/docs/3.7-html.nix @@ -5,7 +5,7 @@ stdenv.mkDerivation { name = "python37-docs-html-3.7.2"; src = fetchurl { - url = http://docs.python.org/ftp/python/doc/3.7.2/python-3.7.2-docs-html.tar.bz2; + url = "http://docs.python.org/ftp/python/doc/3.7.2/python-3.7.2-docs-html.tar.bz2"; sha256 = "19wbrawpdam09fmyipfy92sxwn1rl93v8jkfqsfx028qhvzf0422"; }; installPhase = '' diff --git a/pkgs/development/interpreters/python/cpython/docs/3.7-pdf-a4.nix b/pkgs/development/interpreters/python/cpython/docs/3.7-pdf-a4.nix index 998af644c718..e60032f71bf8 100644 --- a/pkgs/development/interpreters/python/cpython/docs/3.7-pdf-a4.nix +++ b/pkgs/development/interpreters/python/cpython/docs/3.7-pdf-a4.nix @@ -5,7 +5,7 @@ stdenv.mkDerivation { name = "python37-docs-pdf-a4-3.7.2"; src = fetchurl { - url = http://docs.python.org/ftp/python/doc/3.7.2/python-3.7.2-docs-pdf-a4.tar.bz2; + url = "http://docs.python.org/ftp/python/doc/3.7.2/python-3.7.2-docs-pdf-a4.tar.bz2"; sha256 = "0vdx762m30hjaabn6w88awcj2qpbz0b6z59zn9wmamd35k59lfba"; }; installPhase = '' diff --git a/pkgs/development/interpreters/python/cpython/docs/3.7-pdf-letter.nix b/pkgs/development/interpreters/python/cpython/docs/3.7-pdf-letter.nix index 1c6aea5ee3c1..b737a1e32995 100644 --- a/pkgs/development/interpreters/python/cpython/docs/3.7-pdf-letter.nix +++ b/pkgs/development/interpreters/python/cpython/docs/3.7-pdf-letter.nix @@ -5,7 +5,7 @@ stdenv.mkDerivation { name = "python37-docs-pdf-letter-3.7.2"; src = fetchurl { - url = http://docs.python.org/ftp/python/doc/3.7.2/python-3.7.2-docs-pdf-letter.tar.bz2; + url = "http://docs.python.org/ftp/python/doc/3.7.2/python-3.7.2-docs-pdf-letter.tar.bz2"; sha256 = "17g57vlyvqx0k916q84q2pcx7y8myw0fda9fvg9kh0ph930c837x"; }; installPhase = '' diff --git a/pkgs/development/interpreters/python/cpython/docs/3.7-text.nix b/pkgs/development/interpreters/python/cpython/docs/3.7-text.nix index 32388780f6ff..2897042ec04a 100644 --- a/pkgs/development/interpreters/python/cpython/docs/3.7-text.nix +++ b/pkgs/development/interpreters/python/cpython/docs/3.7-text.nix @@ -5,7 +5,7 @@ stdenv.mkDerivation { name = "python37-docs-text-3.7.2"; src = fetchurl { - url = http://docs.python.org/ftp/python/doc/3.7.2/python-3.7.2-docs-text.tar.bz2; + url = "http://docs.python.org/ftp/python/doc/3.7.2/python-3.7.2-docs-text.tar.bz2"; sha256 = "0h50rlr8jclwfxa106b42q2vn2ynp219c4zsy5qz65n5m3b7y1g2"; }; installPhase = '' diff --git a/pkgs/development/interpreters/python/default.nix b/pkgs/development/interpreters/python/default.nix index 94f04b73f498..6da7abc876e7 100644 --- a/pkgs/development/interpreters/python/default.nix +++ b/pkgs/development/interpreters/python/default.nix @@ -23,8 +23,6 @@ with pkgs; }; in rec { isPy27 = pythonVersion == "2.7"; - isPy33 = pythonVersion == "3.3"; # TODO: remove - isPy34 = pythonVersion == "3.4"; # TODO: remove isPy35 = pythonVersion == "3.5"; isPy36 = pythonVersion == "3.6"; isPy37 = pythonVersion == "3.7"; @@ -57,10 +55,10 @@ in { sourceVersion = { major = "2"; minor = "7"; - patch = "17"; + patch = "18"; suffix = ""; }; - sha256 = "0hds28cg226m8j8sr394nm9yc4gxhvlv109w0avsf2mxrlrz0hsd"; + sha256 = "0hzgxl94hnflis0d6m4szjx0b52gah7wpmcg5g00q7am6xwhwb5n"; inherit (darwin) configd; inherit passthruFun; }; @@ -96,10 +94,10 @@ in { sourceVersion = { major = "3"; minor = "7"; - patch = "6"; + patch = "7"; suffix = ""; }; - sha256 = "0gskry19ylw91p38pdq36qcgk6h3x5i4ia0ik977kw2943kwr8jm"; + sha256 = "0di1y2cna823qgk6sd2lvpjdm3g2qikdd50i2bjd330dpzqsk806"; inherit (darwin) configd; inherit passthruFun; }; @@ -109,10 +107,10 @@ in { sourceVersion = { major = "3"; minor = "8"; - patch = "2"; + patch = "3"; suffix = ""; }; - sha256 = "1ps5v323cp5czfshqjmbsqw7nvrdpcbk06f62jbzaqik4gfffii6"; + sha256 = "0r2qg4pdvv52ld5dd95fl6lzzsxxxhbsxmymwcphh6624g3mxayz"; inherit (darwin) configd; inherit passthruFun; }; @@ -131,7 +129,7 @@ in { }; # Minimal versions of Python (built without optional dependencies) - python3Minimal = (python37.override { + python3Minimal = (python3.override { self = python3Minimal; pythonForBuild = pkgs.buildPackages.python3Minimal; # strip down that python version as much as possible @@ -147,6 +145,7 @@ in { stripTkinter = true; rebuildBytecode = false; stripBytecode = true; + includeSiteCustomize = false; }).overrideAttrs(old: { pname = "python3-minimal"; meta = old.meta // { diff --git a/pkgs/development/interpreters/python/hooks/default.nix b/pkgs/development/interpreters/python/hooks/default.nix index 47690320e81e..4d736426f3bf 100644 --- a/pkgs/development/interpreters/python/hooks/default.nix +++ b/pkgs/development/interpreters/python/hooks/default.nix @@ -89,6 +89,14 @@ in rec { }; } ./python-imports-check-hook.sh) {}; + pythonNamespacesHook = callPackage ({}: + makeSetupHook { + name = "python-namespaces-hook.sh"; + substitutions = { + inherit pythonSitePackages; + }; + } ./python-namespaces-hook.sh) {}; + pythonRemoveBinBytecodeHook = callPackage ({ }: makeSetupHook { name = "python-remove-bin-bytecode-hook"; diff --git a/pkgs/development/interpreters/python/hooks/pytest-check-hook.sh b/pkgs/development/interpreters/python/hooks/pytest-check-hook.sh index 18f05b6d218c..bfd2bfa75836 100644 --- a/pkgs/development/interpreters/python/hooks/pytest-check-hook.sh +++ b/pkgs/development/interpreters/python/hooks/pytest-check-hook.sh @@ -46,4 +46,16 @@ function pytestCheckPhase() { if [ -z "${dontUsePytestCheck-}" ] && [ -z "${installCheckPhase-}" ]; then echo "Using pytestCheckPhase" preDistPhases+=" pytestCheckPhase" + + # It's almost always the case that setuptoolsCheckPhase should not be ran + # when the pytestCheckHook is being ran + if [ -z "${useSetuptoolsCheck-}" ]; then + dontUseSetuptoolsCheck=1 + + # Remove command if already injected into preDistPhases + if [[ "$preDistPhases" =~ "setuptoolsCheckPhase" ]]; then + echo "Removing setuptoolsCheckPhase" + preDistPhases=${preDistPhases/setuptoolsCheckPhase/} + fi + fi fi diff --git a/pkgs/development/interpreters/python/hooks/python-namespaces-hook.sh b/pkgs/development/interpreters/python/hooks/python-namespaces-hook.sh new file mode 100644 index 000000000000..50f21819d176 --- /dev/null +++ b/pkgs/development/interpreters/python/hooks/python-namespaces-hook.sh @@ -0,0 +1,40 @@ +# Clean up __init__.py's found in namespace directories +echo "Sourcing python-namespaces-hook" + +pythonNamespacesHook() { + echo "Executing pythonNamespacesHook" + + for namespace in ${pythonNamespaces[@]}; do + echo "Enforcing PEP420 namespace: ${namespace}" + + # split namespace into segments. "azure.mgmt" -> "azure mgmt" + IFS='.' read -ra pathSegments <<< $namespace + constructedPath=$out/@pythonSitePackages@ + + # Need to remove the __init__.py at each namespace level + # E.g `azure/__init__.py` and `azure/mgmt/__init__.py` + # The __pycache__ entry also needs to be removed + for pathSegment in ${pathSegments[@]}; do + constructedPath=${constructedPath}/${pathSegment} + pathToRemove=${constructedPath}/__init__.py + pycachePath=${constructedPath}/__pycache__/__init__* + + if [ -f "$pathToRemove" ]; then + echo "Removing $pathToRemove" + rm "$pathToRemove" + fi + + if [ -f "$pycachePath" ]; then + echo "Removing $pycachePath" + rm "$pycachePath" + fi + done + done + + echo "Finished executing pythonNamespacesHook" +} + +if [ -z "${dontUsePythonNamespacesHook-}" -a -n "${pythonNamespaces-}" ]; then + postFixupHooks+=(pythonNamespacesHook) +fi + diff --git a/pkgs/development/interpreters/python/hooks/venv-shell-hook.sh b/pkgs/development/interpreters/python/hooks/venv-shell-hook.sh index 3185b1f9fae9..1fcc0bbd4b13 100644 --- a/pkgs/development/interpreters/python/hooks/venv-shell-hook.sh +++ b/pkgs/development/interpreters/python/hooks/venv-shell-hook.sh @@ -4,12 +4,14 @@ venvShellHook() { if [ -d "${venvDir}" ]; then echo "Skipping venv creation, '${venvDir}' already exists" + source "${venvDir}/bin/activate" else echo "Creating new venv environment in path: '${venvDir}'" @pythonInterpreter@ -m venv "${venvDir}" - fi - source "${venvDir}/bin/activate" + source "${venvDir}/bin/activate" + runHook postVenvCreation + fi runHook postShellHook echo "Finished executing venvShellHook" diff --git a/pkgs/development/interpreters/python/mk-python-derivation.nix b/pkgs/development/interpreters/python/mk-python-derivation.nix index 180bc63857c2..22938a455852 100644 --- a/pkgs/development/interpreters/python/mk-python-derivation.nix +++ b/pkgs/development/interpreters/python/mk-python-derivation.nix @@ -16,6 +16,7 @@ , pipInstallHook , pythonCatchConflictsHook , pythonImportsCheckHook +, pythonNamespacesHook , pythonRemoveBinBytecodeHook , pythonRemoveTestsDirHook , setuptoolsBuildHook @@ -131,6 +132,9 @@ let ] ++ lib.optionals (stdenv.buildPlatform == stdenv.hostPlatform) [ # This is a test, however, it should be ran independent of the checkPhase and checkInputs pythonImportsCheckHook + ] ++ lib.optionals (python.pythonAtLeast "3.3") [ + # Optionally enforce PEP420 for python3 + pythonNamespacesHook ] ++ nativeBuildInputs; buildInputs = buildInputs ++ pythonPath; diff --git a/pkgs/development/interpreters/python/pypy/default.nix b/pkgs/development/interpreters/python/pypy/default.nix index 54400ae3e0a4..e5828fdd3740 100644 --- a/pkgs/development/interpreters/python/pypy/default.nix +++ b/pkgs/development/interpreters/python/pypy/default.nix @@ -53,6 +53,10 @@ in with passthru; stdenv.mkDerivation rec { hardeningDisable = optional stdenv.isi686 "pic"; + # Remove bootstrap python from closure + dontPatchShebangs = true; + disallowedReferences = [ python ]; + C_INCLUDE_PATH = makeSearchPathOutput "dev" "include" buildInputs; LIBRARY_PATH = makeLibraryPath buildInputs; LD_LIBRARY_PATH = makeLibraryPath (filter (x : x.outPath != stdenv.cc.libc.outPath or "") buildInputs); @@ -151,7 +155,7 @@ in with passthru; stdenv.mkDerivation rec { enableParallelBuilding = true; # almost no parallelization without STM meta = with stdenv.lib; { - homepage = http://pypy.org/; + homepage = "http://pypy.org/"; description = "Fast, compliant alternative implementation of the Python language (${pythonVersion})"; license = licenses.mit; platforms = [ "i686-linux" "x86_64-linux" "x86_64-darwin" ]; diff --git a/pkgs/development/interpreters/python/pypy/prebuilt.nix b/pkgs/development/interpreters/python/pypy/prebuilt.nix index 7ac8037293ff..0ebd33648343 100644 --- a/pkgs/development/interpreters/python/pypy/prebuilt.nix +++ b/pkgs/development/interpreters/python/pypy/prebuilt.nix @@ -117,7 +117,7 @@ in with passthru; stdenv.mkDerivation { inherit passthru; meta = with stdenv.lib; { - homepage = http://pypy.org/; + homepage = "http://pypy.org/"; description = "Fast, compliant alternative implementation of the Python language (${pythonVersion})"; license = licenses.mit; platforms = [ "x86_64-linux" ]; diff --git a/pkgs/development/interpreters/python/sitecustomize.py b/pkgs/development/interpreters/python/sitecustomize.py index e03b244dbc04..d79a4696d8ea 100644 --- a/pkgs/development/interpreters/python/sitecustomize.py +++ b/pkgs/development/interpreters/python/sitecustomize.py @@ -21,6 +21,19 @@ paths = os.environ.pop('NIX_PYTHONPATH', None) if paths: functools.reduce(lambda k, p: site.addsitedir(p, k), paths.split(':'), site._init_pathinfo()) -executable = os.environ.pop('NIX_PYTHONEXECUTABLE', None) -if 'PYTHONEXECUTABLE' not in os.environ and executable: - sys.executable = executable +# Check whether we are in a venv or virtualenv. +# For Python 3 we check whether our `base_prefix` is different from our current `prefix`. +# For Python 2 we check whether the non-standard `real_prefix` is set. +# https://stackoverflow.com/questions/1871549/determine-if-python-is-running-inside-virtualenv +in_venv = (sys.version_info.major == 3 and sys.prefix != sys.base_prefix) or (sys.version_info.major == 2 and hasattr(sys, "real_prefix")) + +if not in_venv: + executable = os.environ.pop('NIX_PYTHONEXECUTABLE', None) + prefix = os.environ.pop('NIX_PYTHONPREFIX', None) + + if 'PYTHONEXECUTABLE' not in os.environ and executable is not None: + sys.executable = executable + if prefix is not None: + # Sysconfig does not like it when sys.prefix is set to None + sys.prefix = sys.exec_prefix = prefix + site.PREFIXES.insert(0, prefix) diff --git a/pkgs/development/interpreters/python/tests.nix b/pkgs/development/interpreters/python/tests.nix index 37fbe6701148..03a3b9537090 100644 --- a/pkgs/development/interpreters/python/tests.nix +++ b/pkgs/development/interpreters/python/tests.nix @@ -2,12 +2,14 @@ , runCommand , substituteAll , lib +, callPackage }: let envs = let inherit python; pythonEnv = python.withPackages(ps: with ps; [ ]); + pythonVirtualEnv = python.withPackages(ps: with ps; [ virtualenv ]); in { # Plain Python interpreter plain = rec { @@ -15,6 +17,18 @@ let interpreter = env.interpreter; is_venv = "False"; is_nixenv = "False"; + is_virtualenv = "False"; + }; + } // lib.optionalAttrs (!python.isPyPy) { + # Use virtualenv from a Nix env. + nixenv-virtualenv = rec { + env = runCommand "${python.name}-virtualenv" {} '' + ${pythonVirtualEnv.interpreter} -m virtualenv $out + ''; + interpreter = "${env}/bin/${python.executable}"; + is_venv = "False"; + is_nixenv = "True"; + is_virtualenv = "True"; }; } // lib.optionalAttrs (python.implementation != "graal") { # Python Nix environment (python.buildEnv) @@ -23,6 +37,7 @@ let interpreter = env.interpreter; is_venv = "False"; is_nixenv = "True"; + is_virtualenv = "False"; }; } // lib.optionalAttrs (python.isPy3k && (!python.isPyPy)) rec { # Venv built using plain Python @@ -35,18 +50,30 @@ let interpreter = "${env}/bin/${python.executable}"; is_venv = "True"; is_nixenv = "False"; + is_virtualenv = "False"; }; + + } // lib.optionalAttrs (python.pythonAtLeast "3.8") { # Venv built using Python Nix environment (python.buildEnv) # TODO: Cannot create venv from a nix env # Error: Command '['/nix/store/ddc8nqx73pda86ibvhzdmvdsqmwnbjf7-python3-3.7.6-venv/bin/python3.7', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 1. - # nixenv-venv = rec { - # env = runCommand "${python.name}-venv" {} '' - # ${pythonEnv.interpreter} -m venv $out - # ''; - # interpreter = "${env}/bin/${pythonEnv.executable}"; - # is_venv = "True"; - # is_nixenv = "True"; - # }; + nixenv-venv = rec { + env = runCommand "${python.name}-venv" {} '' + ${pythonEnv.interpreter} -m venv $out + ''; + interpreter = "${env}/bin/${pythonEnv.executable}"; + is_venv = "True"; + is_nixenv = "True"; + is_virtualenv = "False"; + }; + }; + + # All PyPy package builds are broken at the moment + integrationTests = lib.optionalAttrs (python.pythonAtLeast "3.7" && (!python.isPyPy)) rec { + # Before the addition of NIX_PYTHONPREFIX mypy was broken with typed packages + nix-pythonprefix-mypy = callPackage ./tests/test_nix_pythonprefix { + interpreter = python; + }; }; testfun = name: attrs: runCommand "${python.name}-tests-${name}" ({ @@ -60,4 +87,4 @@ let touch $out/success ''; -in lib.mapAttrs testfun envs \ No newline at end of file +in lib.mapAttrs testfun envs // integrationTests diff --git a/pkgs/development/interpreters/python/tests/test_nix_pythonprefix/default.nix b/pkgs/development/interpreters/python/tests/test_nix_pythonprefix/default.nix new file mode 100644 index 000000000000..05798cbaf1b8 --- /dev/null +++ b/pkgs/development/interpreters/python/tests/test_nix_pythonprefix/default.nix @@ -0,0 +1,25 @@ +{ interpreter, writeText, runCommandNoCC }: + +let + + python = let + packageOverrides = self: super: { + typeddep = super.callPackage ./typeddep {}; + }; + in interpreter.override {inherit packageOverrides; self = python;}; + + pythonEnv = python.withPackages(ps: [ + ps.typeddep + ps.mypy + ]); + + pythonScript = writeText "myscript.py" '' + from typeddep import util + s: str = util.echo("hello") + print(s) + ''; + +in runCommandNoCC "${interpreter.name}-site-prefix-mypy-test" {} '' + ${pythonEnv}/bin/mypy ${pythonScript} + touch $out +'' diff --git a/pkgs/development/interpreters/python/tests/test_nix_pythonprefix/typeddep/default.nix b/pkgs/development/interpreters/python/tests/test_nix_pythonprefix/typeddep/default.nix new file mode 100644 index 000000000000..8d330fcdbfc9 --- /dev/null +++ b/pkgs/development/interpreters/python/tests/test_nix_pythonprefix/typeddep/default.nix @@ -0,0 +1,13 @@ +{ buildPythonPackage, pythonOlder }: + + +buildPythonPackage { + + pname = "typeddep"; + version = "1.3.3.7"; + + src = ./.; + + disabled = pythonOlder "3.7"; + +} diff --git a/pkgs/development/interpreters/python/tests/test_nix_pythonprefix/typeddep/setup.py b/pkgs/development/interpreters/python/tests/test_nix_pythonprefix/typeddep/setup.py new file mode 100644 index 000000000000..25bac69ea09a --- /dev/null +++ b/pkgs/development/interpreters/python/tests/test_nix_pythonprefix/typeddep/setup.py @@ -0,0 +1,18 @@ +from setuptools import setup + +setup(**{ + 'name': 'typeddep', + 'version': '1.3.3.7', + 'description': 'Minimal repro to test mypy and site prefixes with Nix', + 'long_description': None, + 'author': 'adisbladis', + 'author_email': 'adisbladis@gmail.com', + 'maintainer': None, + 'maintainer_email': None, + 'url': None, + 'packages': ['typeddep'], + 'package_data': {'': ['*']}, + 'install_requires': [], + 'entry_points': {}, + 'python_requires': '>=3.7,<4.0', +}) diff --git a/pkgs/development/interpreters/python/tests/test_nix_pythonprefix/typeddep/typeddep/__init__.py b/pkgs/development/interpreters/python/tests/test_nix_pythonprefix/typeddep/typeddep/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 --- /dev/null +++ b/pkgs/development/interpreters/python/tests/test_nix_pythonprefix/typeddep/typeddep/__init__.py diff --git a/pkgs/development/interpreters/python/tests/test_nix_pythonprefix/typeddep/typeddep/py.typed b/pkgs/development/interpreters/python/tests/test_nix_pythonprefix/typeddep/typeddep/py.typed new file mode 100644 index 000000000000..e69de29bb2d1 --- /dev/null +++ b/pkgs/development/interpreters/python/tests/test_nix_pythonprefix/typeddep/typeddep/py.typed diff --git a/pkgs/development/interpreters/python/tests/test_nix_pythonprefix/typeddep/typeddep/util.py b/pkgs/development/interpreters/python/tests/test_nix_pythonprefix/typeddep/typeddep/util.py new file mode 100644 index 000000000000..c1c3ffe74777 --- /dev/null +++ b/pkgs/development/interpreters/python/tests/test_nix_pythonprefix/typeddep/typeddep/util.py @@ -0,0 +1,2 @@ +def echo(s: str) -> str: + return s diff --git a/pkgs/development/interpreters/python/tests/test_python.py b/pkgs/development/interpreters/python/tests/test_python.py index f631a172ccc6..0fc4b8a9e91c 100644 --- a/pkgs/development/interpreters/python/tests/test_python.py +++ b/pkgs/development/interpreters/python/tests/test_python.py @@ -16,6 +16,7 @@ ENV = "@env@" INTERPRETER = "@interpreter@" PYTHON_VERSION = "@pythonVersion@" +IS_VIRTUALENV = @is_virtualenv@ IS_VENV = @is_venv@ IS_NIXENV = @is_nixenv@ IS_PYPY = platform.python_implementation() == "PyPy" @@ -27,7 +28,7 @@ class TestCasePython(unittest.TestCase): def test_interpreter(self): self.assertEqual(sys.executable, INTERPRETER) - @unittest.skipIf(IS_NIXENV or IS_PYPY, "Prefix is incorrect and needs to be fixed.") + @unittest.skipIf(IS_PYPY, "Prefix is incorrect and needs to be fixed.") def test_prefix(self): self.assertEqual(sys.prefix, ENV) self.assertEqual(sys.prefix, sys.exec_prefix) @@ -35,13 +36,17 @@ class TestCasePython(unittest.TestCase): def test_site_prefix(self): self.assertTrue(sys.prefix in site.PREFIXES) - @unittest.skipIf(sys.version_info.major==2, "Python 2 does not have base_prefix") + @unittest.skipIf(IS_PYPY or sys.version_info.major==2, "Python 2 does not have base_prefix") def test_base_prefix(self): - if IS_VENV: + if IS_VENV or IS_NIXENV or IS_VIRTUALENV: self.assertNotEqual(sys.prefix, sys.base_prefix) else: self.assertEqual(sys.prefix, sys.base_prefix) + @unittest.skipIf(sys.version_info.major==3, "sys.real_prefix is only set by virtualenv in case of Python 2.") + def test_real_prefix(self): + self.assertTrue(hasattr(sys, "real_prefix") == IS_VIRTUALENV) + def test_python_version(self): self.assertTrue(platform.python_version().startswith(PYTHON_VERSION)) diff --git a/pkgs/development/interpreters/python/wrapper.nix b/pkgs/development/interpreters/python/wrapper.nix index b437584024fe..dffad6b98f5e 100644 --- a/pkgs/development/interpreters/python/wrapper.nix +++ b/pkgs/development/interpreters/python/wrapper.nix @@ -37,7 +37,7 @@ let if [ -f "$prg" ]; then rm -f "$out/bin/$prg" if [ -x "$prg" ]; then - makeWrapper "$path/bin/$prg" "$out/bin/$prg" --set NIX_PYTHONEXECUTABLE ${pythonExecutable} --set NIX_PYTHONPATH ${pythonPath} ${if permitUserSite then "" else ''--set PYTHONNOUSERSITE "true"''} ${stdenv.lib.concatStringsSep " " makeWrapperArgs} + makeWrapper "$path/bin/$prg" "$out/bin/$prg" --set NIX_PYTHONPREFIX "$out" --set NIX_PYTHONEXECUTABLE ${pythonExecutable} --set NIX_PYTHONPATH ${pythonPath} ${if permitUserSite then "" else ''--set PYTHONNOUSERSITE "true"''} ${stdenv.lib.concatStringsSep " " makeWrapperArgs} fi fi done diff --git a/pkgs/development/interpreters/qnial/default.nix b/pkgs/development/interpreters/qnial/default.nix index d49886da8f54..1762edbbdb7d 100644 --- a/pkgs/development/interpreters/qnial/default.nix +++ b/pkgs/development/interpreters/qnial/default.nix @@ -32,7 +32,7 @@ stdenv.mkDerivation { meta = { description = "An array language from Nial Systems"; - homepage = https://github.com/vrthra/qnial; + homepage = "https://github.com/vrthra/qnial"; license = stdenv.lib.licenses.artistic1; maintainers = [ stdenv.lib.maintainers.vrthra ]; platforms = stdenv.lib.platforms.linux; diff --git a/pkgs/development/interpreters/racket/default.nix b/pkgs/development/interpreters/racket/default.nix index 8e66bf96e8ca..1db01c0d7758 100644 --- a/pkgs/development/interpreters/racket/default.nix +++ b/pkgs/development/interpreters/racket/default.nix @@ -46,7 +46,7 @@ in stdenv.mkDerivation rec { pname = "racket"; - version = "7.6"; # always change at once with ./minimal.nix + version = "7.7"; # always change at once with ./minimal.nix src = (stdenv.lib.makeOverridable ({ name, sha256 }: fetchurl { @@ -55,7 +55,7 @@ stdenv.mkDerivation rec { } )) { name = "${pname}-${version}"; - sha256 = "0yagy7qrnz96gwafnj3whh2vs54788k1ci3vkm100h68gsw638b8"; + sha256 = "0cx5h3k0n58cb442qzp3jlc7n1b9dbaxv9blg2rjil2rn119yrb2"; }; FONTCONFIG_FILE = fontsConf; @@ -102,7 +102,7 @@ stdenv.mkDerivation rec { libraries support applications from web servers and databases to GUIs and charts. ''; - homepage = https://racket-lang.org/; + homepage = "https://racket-lang.org/"; license = with licenses; [ asl20 /* or */ mit ]; maintainers = with maintainers; [ kkallio henrytill vrthra ]; platforms = [ "x86_64-darwin" "x86_64-linux" "aarch64-linux" ]; diff --git a/pkgs/development/interpreters/racket/minimal.nix b/pkgs/development/interpreters/racket/minimal.nix index 9e817b760003..a4a7a5c12cd4 100644 --- a/pkgs/development/interpreters/racket/minimal.nix +++ b/pkgs/development/interpreters/racket/minimal.nix @@ -5,7 +5,7 @@ racket.overrideAttrs (oldAttrs: rec { name = "racket-minimal-${oldAttrs.version}"; src = oldAttrs.src.override { inherit name; - sha256 = "0id094q9024hj2n3907l7dblp3iix1v5289xzskmh5c26xfygp9y"; + sha256 = "1lxcd4ix8q3089xql48hwccxvcpkinfxwxnc6fhcjdgzqcyxh3ln"; }; meta = oldAttrs.meta // { diff --git a/pkgs/development/interpreters/rakudo/default.nix b/pkgs/development/interpreters/rakudo/default.nix index 9d0f47d90d2a..2833a4d5673a 100644 --- a/pkgs/development/interpreters/rakudo/default.nix +++ b/pkgs/development/interpreters/rakudo/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "rakudo"; - version = "2020.02.1"; + version = "2020.05.1"; src = fetchurl { url = "https://www.rakudo.org/dl/rakudo/rakudo-${version}.tar.gz"; - sha256 = "1qfaiqfclqd6zz04xl90yiqkvmm610r905nnbd6gszgyq1k77ckv"; + sha256 = "1m4xpghhgi7iijbzvr7bzkay7k93bwpvdg58jp31csrwdzz4q5z1"; }; buildInputs = [ icu zlib gmp perl ]; @@ -21,7 +21,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Raku implementation on top of Moar virtual machine"; - homepage = https://www.rakudo.org; + homepage = "https://www.rakudo.org"; license = licenses.artistic2; platforms = platforms.unix; maintainers = with maintainers; [ thoughtpolice vrthra sgo ]; diff --git a/pkgs/development/interpreters/rakudo/moarvm.nix b/pkgs/development/interpreters/rakudo/moarvm.nix index ade97b56a648..a7b57c9287ac 100644 --- a/pkgs/development/interpreters/rakudo/moarvm.nix +++ b/pkgs/development/interpreters/rakudo/moarvm.nix @@ -3,11 +3,11 @@ stdenv.mkDerivation rec { pname = "moarvm"; - version = "2020.02.1"; + version = "2020.05"; src = fetchurl { url = "https://www.moarvm.org/releases/MoarVM-${version}.tar.gz"; - sha256 = "0cnnyjyci24pbws2cic80xdr7a5g3qvrsi221c6bpbnpkar81jw2"; + sha256 = "0jw29846nky7gz129knjcx58qr7nbn8j7hs8k92i11zaj73d4s4k"; }; buildInputs = [ perl ] ++ stdenv.lib.optionals stdenv.isDarwin [ CoreServices ApplicationServices ]; diff --git a/pkgs/development/interpreters/rakudo/nqp.nix b/pkgs/development/interpreters/rakudo/nqp.nix index f12e60b14f06..40133287f9e0 100644 --- a/pkgs/development/interpreters/rakudo/nqp.nix +++ b/pkgs/development/interpreters/rakudo/nqp.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "nqp"; - version = "2020.02.1"; + version = "2020.05"; src = fetchurl { url = "https://github.com/perl6/nqp/releases/download/${version}/nqp-${version}.tar.gz"; - sha256 = "0zw3g7viyq4n4qwy0laww2mzz6wrzkfcq4fm82scy1mh65r7bdgj"; + sha256 = "0xxm0vlra1g467cxc5v65p8pc46w7r9wkcddjl8nk2lnvgcr46r9"; }; buildInputs = [ perl ]; diff --git a/pkgs/development/interpreters/rakudo/zef.nix b/pkgs/development/interpreters/rakudo/zef.nix index 9a8c11324a21..5c8fe16408b4 100644 --- a/pkgs/development/interpreters/rakudo/zef.nix +++ b/pkgs/development/interpreters/rakudo/zef.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "zef"; - version = "0.8.3"; + version = "0.8.4"; src = fetchFromGitHub { owner = "ugexe"; repo = "zef"; rev = "v${version}"; - sha256 = "1fscv8fbaa5l8dcwclmq3hvg3c59l4dvyjqb316mgnc5anxpzy2f"; + sha256 = "02a3awnjr1mgb9275xvp3xms80vcxkq55ffi8sbjzxpwyadj5y5k"; }; buildInputs = [ rakudo makeWrapper ]; diff --git a/pkgs/development/interpreters/rascal/default.nix b/pkgs/development/interpreters/rascal/default.nix index 22eee0f6ead8..8b802043fe3f 100644 --- a/pkgs/development/interpreters/rascal/default.nix +++ b/pkgs/development/interpreters/rascal/default.nix @@ -20,7 +20,7 @@ stdenv.mkDerivation rec { ''; meta = { - homepage = https://www.rascal-mpl.org/; + homepage = "https://www.rascal-mpl.org/"; description = "Command-line REPL for the Rascal metaprogramming language"; license = stdenv.lib.licenses.epl10; maintainers = [ stdenv.lib.maintainers.eelco ]; diff --git a/pkgs/development/interpreters/rebol/default.nix b/pkgs/development/interpreters/rebol/default.nix index 274b70b2c798..b26af7f0b1b7 100644 --- a/pkgs/development/interpreters/rebol/default.nix +++ b/pkgs/development/interpreters/rebol/default.nix @@ -38,6 +38,6 @@ stdenv.mkDerivation rec { maintainers = with maintainers; [ vrthra ]; platforms = [ "x86_64-linux" ]; license = licenses.asl20; - homepage = http://www.rebol.com/; + homepage = "http://www.rebol.com/"; }; } diff --git a/pkgs/development/interpreters/red/default.nix b/pkgs/development/interpreters/red/default.nix index 2121f54a3b11..e1460ec51a22 100644 --- a/pkgs/development/interpreters/red/default.nix +++ b/pkgs/development/interpreters/red/default.nix @@ -87,6 +87,6 @@ stdenv.mkDerivation rec { maintainers = with maintainers; [ uralbash ]; platforms = [ "i686-linux" "x86_64-linux" ]; license = licenses.bsd3; - homepage = https://www.red-lang.org/; + homepage = "https://www.red-lang.org/"; }; } diff --git a/pkgs/development/interpreters/renpy/default.nix b/pkgs/development/interpreters/renpy/default.nix index 759a44b5760f..d09d150bd79c 100644 --- a/pkgs/development/interpreters/renpy/default.nix +++ b/pkgs/development/interpreters/renpy/default.nix @@ -11,7 +11,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Ren'Py Visual Novel Engine"; - homepage = https://renpy.org/; + homepage = "https://renpy.org/"; license = licenses.mit; platforms = platforms.linux; }; diff --git a/pkgs/development/interpreters/ruby/default.nix b/pkgs/development/interpreters/ruby/default.nix index 8ddd19bb40cc..1756c13b53d1 100644 --- a/pkgs/development/interpreters/ruby/default.nix +++ b/pkgs/development/interpreters/ruby/default.nix @@ -190,7 +190,7 @@ let meta = with stdenv.lib; { description = "The Ruby language"; - homepage = http://www.ruby-lang.org/en/; + homepage = "http://www.ruby-lang.org/en/"; license = licenses.ruby; maintainers = with maintainers; [ vrthra manveru ]; platforms = platforms.all; @@ -224,26 +224,26 @@ let in { ruby_2_5 = generic { - version = rubyVersion "2" "5" "7" ""; + version = rubyVersion "2" "5" "8" ""; sha256 = { - src = "1m6nmnj9shifp8g3yh7aimac01vl035bzcc19x2spdji6ig0sb8b"; - git = "0wppf82c9ccdbnvj30mppr5a3mc7sxm05diahjdw7hhk29n43knp"; + src = "16md4jspjwixjlbhx3pnd5iwpca07p23ghkxkqd82sbchw3xy2vc"; + git = "19gkk3q9l33cwkfsp5k8f8fipq7gkyqkqirm9farbvy425519rv2"; }; }; ruby_2_6 = generic { - version = rubyVersion "2" "6" "5" ""; + version = rubyVersion "2" "6" "6" ""; sha256 = { - src = "0zgdrgylq6avbblf78kpaf0k2xnkpc3jng3wkd7x67ycdrqnp5v6"; - git = "0pay6ic22ag3bnvxffhgwp7z6clkd0p93944a1l4lvc5hxc8v77j"; + src = "1492x795qzgp3zhpl580kd1sdp50n5hfsmpbfhdsq2rnxwyi8jrn"; + git = "1jr9v99a7awssqmw7531afbx4a8i9x5yfqyffha545g7r4s7kj50"; }; }; ruby_2_7 = generic { - version = rubyVersion "2" "7" "0" ""; + version = rubyVersion "2" "7" "1" ""; sha256 = { - src = "1glc3zpnih6h8mrgfcak0aa7cgmi4zyvxfyi6y2brwg2nn9sm6cc"; - git = "11iz64k95czs273mb10195d1j75mmbcgddfdx1vay5876ffw81dq"; + src = "0674x98f542y02r7n2yv2qhmh97blqhi2mvh2dn5f000vlxlh66l"; + git = "0qk729kr5wm67xmwpljpdprwhp5wvn5y4ikqy00p1zcgwlwdcs33"; }; }; } diff --git a/pkgs/development/interpreters/ruby/patchsets.nix b/pkgs/development/interpreters/ruby/patchsets.nix index 4838a1a09e54..b0c26e19e13b 100644 --- a/pkgs/development/interpreters/ruby/patchsets.nix +++ b/pkgs/development/interpreters/ruby/patchsets.nix @@ -1,21 +1,19 @@ { patchSet, useRailsExpress, ops, patchLevel, fetchpatch }: { - "2.4.9" = ops useRailsExpress [ - "${patchSet}/patches/ruby/2.4/head/railsexpress/01-skip-broken-tests.patch" - "${patchSet}/patches/ruby/2.4/head/railsexpress/02-improve-gc-stats.patch" - "${patchSet}/patches/ruby/2.4/head/railsexpress/03-display-more-detailed-stack-trace.patch" - ]; - "2.5.7" = ops useRailsExpress [ + "2.5.8" = ops useRailsExpress [ "${patchSet}/patches/ruby/2.5/head/railsexpress/01-fix-broken-tests-caused-by-ad.patch" "${patchSet}/patches/ruby/2.5/head/railsexpress/02-improve-gc-stats.patch" "${patchSet}/patches/ruby/2.5/head/railsexpress/03-more-detailed-stacktrace.patch" ]; - "2.6.5" = ops useRailsExpress [ + "2.6.6" = ops useRailsExpress [ "${patchSet}/patches/ruby/2.6/head/railsexpress/01-fix-broken-tests-caused-by-ad.patch" "${patchSet}/patches/ruby/2.6/head/railsexpress/02-improve-gc-stats.patch" "${patchSet}/patches/ruby/2.6/head/railsexpress/03-more-detailed-stacktrace.patch" ]; - "2.7.0" = ops useRailsExpress [ # no patches yet (2019-12-25) + "2.7.1" = ops useRailsExpress [ + "${patchSet}/patches/ruby/2.7/head/railsexpress/01-fix-broken-tests-caused-by-ad.patch" + "${patchSet}/patches/ruby/2.7/head/railsexpress/02-improve-gc-stats.patch" + "${patchSet}/patches/ruby/2.7/head/railsexpress/03-more-detailed-stacktrace.patch" ]; } diff --git a/pkgs/development/interpreters/ruby/rubygems/default.nix b/pkgs/development/interpreters/ruby/rubygems/default.nix index 3caac2447e2e..0bbcadba3f51 100644 --- a/pkgs/development/interpreters/ruby/rubygems/default.nix +++ b/pkgs/development/interpreters/ruby/rubygems/default.nix @@ -28,7 +28,7 @@ stdenv.mkDerivation rec { meta = with lib; { description = "Package management framework for Ruby"; - homepage = https://rubygems.org/; + homepage = "https://rubygems.org/"; license = with licenses; [ mit /* or */ ruby ]; maintainers = with maintainers; [ qyliss zimbatm ]; }; diff --git a/pkgs/development/interpreters/ruby/rvm-patchsets.nix b/pkgs/development/interpreters/ruby/rvm-patchsets.nix index 883987683b0a..331dda5d0503 100644 --- a/pkgs/development/interpreters/ruby/rvm-patchsets.nix +++ b/pkgs/development/interpreters/ruby/rvm-patchsets.nix @@ -3,6 +3,6 @@ fetchFromGitHub { owner = "skaes"; repo = "rvm-patchsets"; - rev = "58f72dccc8bb4dc9b1035f6af903d21f2465367a"; - sha256 = "00gbrhvnf05g6zmfim472ld0l1lp100dy4pi3lixm6ry9iw9m4ag"; + rev = "6d8888d34a321198f7fd9253343b78c209efb046"; + sha256 = "0xczl0nng1649km3bcbjn6zrr591l6m2kkwgnknh1fnwmmrdaya7"; } diff --git a/pkgs/development/interpreters/scheme48/default.nix b/pkgs/development/interpreters/scheme48/default.nix index e01aef98303c..5a1e3f265b24 100644 --- a/pkgs/development/interpreters/scheme48/default.nix +++ b/pkgs/development/interpreters/scheme48/default.nix @@ -4,15 +4,14 @@ stdenv.mkDerivation { name = "scheme48-1.9.2"; meta = { - homepage = http://s48.org/; + homepage = "http://s48.org/"; description = "Scheme 48"; - maintainers = with stdenv.lib.maintainers; [ the-kenny ]; platforms = with stdenv.lib.platforms; unix; license = stdenv.lib.licenses.bsd3; }; src = fetchurl { - url = http://s48.org/1.9.2/scheme48-1.9.2.tgz; + url = "http://s48.org/1.9.2/scheme48-1.9.2.tgz"; sha256 = "1x4xfm3lyz2piqcw1h01vbs1iq89zq7wrsfjgh3fxnlm1slj2jcw"; }; } diff --git a/pkgs/development/interpreters/scsh/default.nix b/pkgs/development/interpreters/scsh/default.nix index 85c9434f0813..bb4f418f502a 100644 --- a/pkgs/development/interpreters/scsh/default.nix +++ b/pkgs/development/interpreters/scsh/default.nix @@ -16,7 +16,7 @@ stdenv.mkDerivation { meta = with stdenv.lib; { description = "A Scheme shell"; - homepage = http://www.scsh.net/; + homepage = "http://www.scsh.net/"; license = licenses.bsd3; maintainers = with maintainers; [ joachifm ]; platforms = with platforms; unix; diff --git a/pkgs/development/interpreters/self/default.nix b/pkgs/development/interpreters/self/default.nix index 43f5758e4c49..ccf85f1d1c4d 100644 --- a/pkgs/development/interpreters/self/default.nix +++ b/pkgs/development/interpreters/self/default.nix @@ -35,7 +35,7 @@ stdenv.mkDerivation { meta = { description = "A prototype-based dynamic object-oriented programming language, environment, and virtual machine"; - homepage = http://selflanguage.org/; + homepage = "http://selflanguage.org/"; license = stdenv.lib.licenses.bsd3; maintainers = [ stdenv.lib.maintainers.doublec ]; platforms = with stdenv.lib.platforms; linux; diff --git a/pkgs/development/interpreters/spidermonkey/1.8.5.nix b/pkgs/development/interpreters/spidermonkey/1.8.5.nix index fe77a27d449a..37efeba3f9b6 100644 --- a/pkgs/development/interpreters/spidermonkey/1.8.5.nix +++ b/pkgs/development/interpreters/spidermonkey/1.8.5.nix @@ -69,7 +69,7 @@ stdenv.mkDerivation { meta = with stdenv.lib; { description = "Mozilla's JavaScript engine written in C/C++"; - homepage = https://developer.mozilla.org/en/SpiderMonkey; + homepage = "https://developer.mozilla.org/en/SpiderMonkey"; # TODO: MPL/GPL/LGPL tri-license. maintainers = [ maintainers.goibhniu ]; platforms = platforms.linux; diff --git a/pkgs/development/interpreters/spidermonkey/38.nix b/pkgs/development/interpreters/spidermonkey/38.nix index 89bbd713a5c6..d2aabfe64d9a 100644 --- a/pkgs/development/interpreters/spidermonkey/38.nix +++ b/pkgs/development/interpreters/spidermonkey/38.nix @@ -62,7 +62,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Mozilla's JavaScript engine written in C/C++"; - homepage = https://developer.mozilla.org/en/SpiderMonkey; + homepage = "https://developer.mozilla.org/en/SpiderMonkey"; # TODO: MPL/GPL/LGPL tri-license. maintainers = [ maintainers.abbradar ]; diff --git a/pkgs/development/interpreters/spidermonkey/60.nix b/pkgs/development/interpreters/spidermonkey/60.nix index f6a4483edba7..42731421d81d 100644 --- a/pkgs/development/interpreters/spidermonkey/60.nix +++ b/pkgs/development/interpreters/spidermonkey/60.nix @@ -75,7 +75,7 @@ in stdenv.mkDerivation { meta = with stdenv.lib; { description = "Mozilla's JavaScript engine written in C/C++"; - homepage = https://developer.mozilla.org/en/SpiderMonkey; + homepage = "https://developer.mozilla.org/en/SpiderMonkey"; license = licenses.gpl2; # TODO: MPL/GPL/LGPL tri-license. maintainers = [ maintainers.abbradar ]; platforms = platforms.linux; diff --git a/pkgs/development/interpreters/spidermonkey/68.nix b/pkgs/development/interpreters/spidermonkey/68.nix new file mode 100644 index 000000000000..7100a730a61b --- /dev/null +++ b/pkgs/development/interpreters/spidermonkey/68.nix @@ -0,0 +1,95 @@ +{ stdenv, fetchurl, fetchpatch, autoconf213, pkgconfig, perl, python2, python3, zip, buildPackages +, which, readline, zlib, icu, cargo, rustc, llvmPackages }: + +with stdenv.lib; + +let + python3Env = buildPackages.python3.withPackages (p: [p.six]); +in stdenv.mkDerivation rec { + pname = "spidermonkey"; + version = "68.7.0"; + + src = fetchurl { + url = "mirror://mozilla/firefox/releases/${version}esr/source/firefox-${version}esr.source.tar.xz"; + sha256 = "0w3mad0r4khcd7hfmm3xix9x6mp5yp8g8kyh18vanfnjqdls0gmd"; + }; + + outputs = [ "out" "dev" ]; + setOutputFlags = false; # Configure script only understands --includedir + + nativeBuildInputs = [ + autoconf213 + pkgconfig + perl + which + python2 + zip + cargo + rustc + llvmPackages.llvm + ]; + + buildInputs = [ + readline + zlib + icu + ]; + + preConfigure = '' + export CXXFLAGS="-fpermissive" + export LIBXUL_DIST=$out + export PYTHON3="${python3Env.interpreter}" + + # We can't build in js/src/, so create a build dir + mkdir obj + cd obj/ + configureScript=../js/src/configure + ''; + + configureFlags = [ + # Reccommended by gjs upstream + "--disable-jemalloc" + "--enable-unaligned-private-values" + "--with-intl-api" + "--enable-posix-nspr-emulation" + "--with-system-zlib" + "--with-system-icu" + + "--with-libclang-path=${llvmPackages.libclang}/lib" + "--with-clang-path=${llvmPackages.clang}/bin/clang" + + "--enable-shared-js" + "--enable-readline" + # Fedora and Arch disable optimize, but it doesn't seme to be necessary + # It turns on -O3 which some gcc version had a problem with: + # https://src.fedoraproject.org/rpms/mozjs38/c/761399aba092bcb1299bb4fccfd60f370ab4216e + "--enable-optimize" + "--enable-release" + ] ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ + # Spidermonkey seems to use different host/build terminology for cross + # compilation here. + "--host=${stdenv.buildPlatform.config}" + "--target=${stdenv.hostPlatform.config}" + ]; + + configurePlatforms = []; + + depsBuildBuild = [ buildPackages.stdenv.cc ]; + + # Remove unnecessary static lib + preFixup = '' + moveToOutput bin/js60-config "$dev" + rm $out/lib/libjs_static.ajs + ln -s $out/bin/js60 $out/bin/js + ''; + + enableParallelBuilding = true; + + meta = with stdenv.lib; { + description = "Mozilla's JavaScript engine written in C/C++"; + homepage = "https://developer.mozilla.org/en/SpiderMonkey"; + license = licenses.gpl2; # TODO: MPL/GPL/LGPL tri-license. + maintainers = [ maintainers.abbradar ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/development/interpreters/supercollider/default.nix b/pkgs/development/interpreters/supercollider/default.nix index 67a7f8975f12..eed0bdc5807e 100644 --- a/pkgs/development/interpreters/supercollider/default.nix +++ b/pkgs/development/interpreters/supercollider/default.nix @@ -9,12 +9,12 @@ in mkDerivation rec { pname = "supercollider"; - version = "3.10.4"; + version = "3.11.0"; src = fetchurl { url = "https://github.com/supercollider/supercollider/releases/download/Version-${version}/SuperCollider-${version}-Source.tar.bz2"; - sha256 = "168r0c0axgajsdzc1caklydrnagy4flv7i7jcyqwpc9agsqy0nnf"; + sha256 = "0l5j7sqrjlm85ql91ybcrvdykfkkwfqd7w3m4llbymw720r2ln9p"; }; hardeningDisable = [ "stackprotector" ]; diff --git a/pkgs/development/interpreters/tcl/generic.nix b/pkgs/development/interpreters/tcl/generic.nix index fd84d93ba756..9aaf8223837d 100644 --- a/pkgs/development/interpreters/tcl/generic.nix +++ b/pkgs/development/interpreters/tcl/generic.nix @@ -41,7 +41,7 @@ stdenv.mkDerivation { meta = with stdenv.lib; { description = "The Tcl scripting language"; - homepage = https://www.tcl.tk/; + homepage = "https://www.tcl.tk/"; license = licenses.tcltk; platforms = platforms.all; maintainers = with maintainers; [ vrthra ]; diff --git a/pkgs/development/interpreters/tinyscheme/default.nix b/pkgs/development/interpreters/tinyscheme/default.nix index ca897ec692c1..b49a37a72856 100644 --- a/pkgs/development/interpreters/tinyscheme/default.nix +++ b/pkgs/development/interpreters/tinyscheme/default.nix @@ -25,7 +25,7 @@ stdenv.mkDerivation rec { TinyScheme is a lightweight Scheme interpreter that implements as large a subset of R5RS as was possible without getting very large and complicated. ''; - homepage = http://tinyscheme.sourceforge.net/; + homepage = "http://tinyscheme.sourceforge.net/"; license = licenses.bsdOriginal; maintainers = [ maintainers.ebzzry ]; platforms = platforms.unix; diff --git a/pkgs/development/interpreters/unicon-lang/default.nix b/pkgs/development/interpreters/unicon-lang/default.nix index bb4a2d01499d..d908346f1962 100644 --- a/pkgs/development/interpreters/unicon-lang/default.nix +++ b/pkgs/development/interpreters/unicon-lang/default.nix @@ -38,7 +38,7 @@ stdenv.mkDerivation { maintainers = with maintainers; [ vrthra ]; platforms = platforms.linux; license = licenses.gpl2; - homepage = http://unicon.org; + homepage = "http://unicon.org"; }; } diff --git a/pkgs/development/interpreters/wasmer/default.nix b/pkgs/development/interpreters/wasmer/default.nix index d3d9cf87207d..404c0731c349 100644 --- a/pkgs/development/interpreters/wasmer/default.nix +++ b/pkgs/development/interpreters/wasmer/default.nix @@ -8,17 +8,17 @@ rustPlatform.buildRustPackage rec { pname = "wasmer"; - version = "0.16.2"; + version = "0.17.0"; src = fetchFromGitHub { owner = "wasmerio"; repo = pname; rev = version; - sha256 = "124zq772kz9a7n3qpxgmp4awqj41l8mhhwc0y3r77i1q02i1sy7z"; + sha256 = "05g4h0xkqd14wnmijiiwmhk6l909fjxr6a2zplrjfxk5bypdalpm"; fetchSubmodules = true; }; - cargoSha256 = "1qqysvcviimpm2zhzsbn8vhy91rxzaknh9hv75y38xd5ggnnh9m6"; + cargoSha256 = "1ssmgx9fjvkq7ycyzjanqmlm5b80akllq6qyv3mj0k5fvs659wcq"; nativeBuildInputs = [ cmake pkg-config ]; diff --git a/pkgs/development/interpreters/wasmtime/default.nix b/pkgs/development/interpreters/wasmtime/default.nix index eaecd1eb89b9..dd6e3eb4a7f4 100644 --- a/pkgs/development/interpreters/wasmtime/default.nix +++ b/pkgs/development/interpreters/wasmtime/default.nix @@ -2,28 +2,28 @@ rustPlatform.buildRustPackage rec { pname = "wasmtime"; - version = "v0.12.0"; + version = "0.16.0"; src = fetchFromGitHub { owner = "bytecodealliance"; repo = "${pname}"; - rev = "${version}"; - sha256 = "08dhk5s8rv41mjqbwfqwqmp6p6p9y7qc5yc76ljjd9l7j1phl7mr"; + rev = "v${version}"; + sha256 = "1zlljqkkcw8h94ff1w47sqn9pn0zal06s06i8nciv5i2d1xaqg5n"; fetchSubmodules = true; }; - cargoSha256 = "0wqd2yy6ih1rcz1fq7x3aiqq1ma2nmif1w8r8x0vpxjxk395zil9"; + cargoSha256 = "1hb7l7a76lgbji0qm9qd80m35cp346hyi4rphfk6p80v142cw8hh"; nativeBuildInputs = [ python cmake clang ]; buildInputs = [ llvmPackages.libclang ] ++ lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Security ]; LIBCLANG_PATH = "${llvmPackages.libclang}/lib"; - doCheck = false; # https://github.com/bytecodealliance/wasmtime/issues/1197 + doCheck = true; meta = with lib; { description = "Standalone JIT-style runtime for WebAssembly, using Cranelift"; - homepage = https://github.com/CraneStation/wasmtime; + homepage = "https://github.com/CraneStation/wasmtime"; license = licenses.asl20; maintainers = [ maintainers.matthewbauer ]; platforms = platforms.unix; |