diff options
Diffstat (limited to 'pkgs/development/interpreters')
60 files changed, 835 insertions, 569 deletions
diff --git a/pkgs/development/interpreters/acl2/default.nix b/pkgs/development/interpreters/acl2/default.nix index a1b59b8bf69de..51b1cfa11414a 100644 --- a/pkgs/development/interpreters/acl2/default.nix +++ b/pkgs/development/interpreters/acl2/default.nix @@ -1,6 +1,6 @@ { lib, stdenv, callPackage, fetchFromGitHub, runCommandLocal, makeWrapper, substituteAll , sbcl, bash, which, perl, hostname -, openssl, glucose, minisat, abc-verifier, z3, python +, openssl, glucose, minisat, abc-verifier, z3, python2 , certifyBooks ? true } @ args: @@ -48,7 +48,7 @@ in stdenv.mkDerivation rec { which perl hostname makeWrapper # Some of the books require one or more of these external tools: openssl.out glucose minisat abc-verifier libipasir - z3 (python.withPackages (ps: [ ps.z3 ])) + z3 (python2.withPackages (ps: [ ps.z3 ])) ]; # NOTE: Parallel building can be memory-intensive depending on the number of diff --git a/pkgs/development/interpreters/bats/default.nix b/pkgs/development/interpreters/bats/default.nix index 1412985a247e1..9cdde90c41d3f 100644 --- a/pkgs/development/interpreters/bats/default.nix +++ b/pkgs/development/interpreters/bats/default.nix @@ -1,28 +1,52 @@ -{ stdenv, lib, fetchzip, bash, makeWrapper, coreutils, gnugrep, ncurses, doCheck ? true }: +{ resholvePackage +, lib +, fetchFromGitHub +, bash +, coreutils +, gnugrep +, ncurses +, doInstallCheck ? true +}: -stdenv.mkDerivation rec { +resholvePackage rec { pname = "bats"; version = "1.5.0"; - src = fetchzip { - url = "https://github.com/bats-core/bats-core/archive/v${version}.tar.gz"; - hash = "sha256-MEkMi2w8G9FZhE3JvzzbqObcErQ9WFXy5mtKwQOoxbk="; + src = fetchFromGitHub { + owner = "bats-core"; + repo = "bats-core"; + rev = "v${version}"; + sha256 = "sha256-MEkMi2w8G9FZhE3JvzzbqObcErQ9WFXy5mtKwQOoxbk="; }; - nativeBuildInputs = [ makeWrapper ]; - patchPhase = '' patchShebangs . ''; installPhase = '' ./install.sh $out - wrapProgram $out/bin/bats --suffix PATH : "${lib.makeBinPath [ bash coreutils gnugrep ]}" ''; - inherit doCheck; - checkInputs = [ ncurses ]; - checkPhase = '' + solutions = { + bats = { + scripts = [ "bin/bats" ]; + interpreter = "${bash}/bin/bash"; + inputs = [ bash coreutils gnugrep ]; + fake = { + external = [ "greadlink" ]; + }; + fix = { + "$BATS_ROOT" = [ "${placeholder "out"}" ]; + }; + keep = { + "${placeholder "out"}/libexec/bats-core/bats" = true; + }; + }; + }; + + inherit doInstallCheck; + installCheckInputs = [ ncurses ]; + installCheckPhase = '' # TODO: cut if https://github.com/bats-core/bats-core/issues/418 allows sed -i '/test works even if PATH is reset/a skip' test/bats.bats diff --git a/pkgs/development/interpreters/clojure/babashka.nix b/pkgs/development/interpreters/clojure/babashka.nix index 93755e83a3d69..ca2391ebd25d2 100644 --- a/pkgs/development/interpreters/clojure/babashka.nix +++ b/pkgs/development/interpreters/clojure/babashka.nix @@ -2,11 +2,11 @@ buildGraalvmNativeImage rec { pname = "babashka"; - version = "0.7.3"; + version = "0.7.5"; src = fetchurl { url = "https://github.com/babashka/${pname}/releases/download/v${version}/${pname}-${version}-standalone.jar"; - sha256 = "sha256-zbxFMc02hbsU2ERlUzqMBHwHYfORB7TkMINrKC52PPU="; + sha256 = "sha256-ap6YCRUqtIgh36eTIk5BSjUildvYhqkC48Y4dxNMU8c="; }; executable = "bb"; diff --git a/pkgs/development/interpreters/clojure/default.nix b/pkgs/development/interpreters/clojure/default.nix index 9fba39d70c7ff..a66f0422b6db2 100644 --- a/pkgs/development/interpreters/clojure/default.nix +++ b/pkgs/development/interpreters/clojure/default.nix @@ -2,12 +2,12 @@ stdenv.mkDerivation rec { pname = "clojure"; - version = "1.10.3.1053"; + version = "1.10.3.1082"; src = fetchurl { # https://clojure.org/releases/tools url = "https://download.clojure.org/install/clojure-tools-${version}.tar.gz"; - sha256 = "p91+Ylx8HQL/o3Pq4Pd1c9GAMiOXvJSw+09LGYLj5Wo="; + sha256 = "sha256-8hW8zgP+D72MtXYFPXx9FfkThQuCBo1Y6CU5w7xPE7c="; }; nativeBuildInputs = [ diff --git a/pkgs/development/interpreters/clojure/obb.nix b/pkgs/development/interpreters/clojure/obb.nix new file mode 100644 index 0000000000000..adb7a92617396 --- /dev/null +++ b/pkgs/development/interpreters/clojure/obb.nix @@ -0,0 +1,83 @@ +{ lib +, stdenv +, fetchurl +, babashka +, cacert +, clojure +, git +, jdk +, obb +, fetchFromGitHub +, makeWrapper +, runCommand }: + +stdenv.mkDerivation rec { + pname = "obb"; + version = "0.0.2"; + + src = fetchFromGitHub { + owner = "babashka"; + repo = pname; + rev = "v${version}"; + sha256 = "1Gxh4IMtytQCuPS+BWOc5AgjEBxa43ebYfDsxLSPeY0="; + }; + + nativeBuildInputs = [ makeWrapper ]; + + buildInputs = [ babashka cacert git jdk ]; + + configurePhase = '' + runHook preConfigure + + mkdir -p .m2 + substituteInPlace deps.edn --replace ':paths' ':mvn/local-repo "./.m2" :paths' + substituteInPlace bb.edn --replace ':paths' ':mvn/local-repo "./.m2" :paths' + echo deps.edn + + runHook postConfigure + ''; + + buildPhase = '' + runHook preBuild + + export DEPS_CLJ_TOOLS_DIR=${clojure} + export DEPS_CLJ_TOOLS_VERSION=${clojure.version} + mkdir -p .gitlibs + mkdir -p .cpcache + export GITLIBS=.gitlibs + export CLJ_CACHE=.cpcache + + bb build + + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + + mkdir -p $out/bin + ln -s /usr/bin/osascript $out/bin/osascript + + install -Dm755 "out/bin/obb" "$out/bin/obb" + wrapProgram $out/bin/obb --prefix PATH : $out/bin + + runHook postInstall + ''; + + passthru.tests = { + simple = runCommand "${pname}-test" {} '' + [ $(${obb}/bin/obb -e '(+ 1 2)') = '3' ] + touch $out + ''; + }; + + meta = with lib; { + description = "Ad-hoc ClojureScript scripting of Mac applications via Apple's Open Scripting Architecture"; + homepage = "https://github.com/babashka/obb"; + license = licenses.epl10; + maintainers = with maintainers; [ + willcohen + ]; + platforms = platforms.darwin; + }; +} diff --git a/pkgs/development/interpreters/clojurescript/lumo/default.nix b/pkgs/development/interpreters/clojurescript/lumo/default.nix index 7bd3913260d48..d8fa630c30dfc 100644 --- a/pkgs/development/interpreters/clojurescript/lumo/default.nix +++ b/pkgs/development/interpreters/clojurescript/lumo/default.nix @@ -8,7 +8,7 @@ , unzip , nodePackages , xcbuild -, python +, python2 , openssl , pkgs , fetchgit @@ -154,7 +154,7 @@ stdenv.mkDerivation { nodejs clojure jre - python + python2 openssl gnutar nodePackages."lumo-build-deps-../interpreters/clojurescript/lumo" diff --git a/pkgs/development/interpreters/cyclone/default.nix b/pkgs/development/interpreters/cyclone/default.nix index 0d2984904d852..7364cf7d4400c 100644 --- a/pkgs/development/interpreters/cyclone/default.nix +++ b/pkgs/development/interpreters/cyclone/default.nix @@ -1,7 +1,7 @@ { lib, stdenv, fetchFromGitHub, libck, darwin }: let - version = "0.30.0"; + version = "0.34.0"; bootstrap = stdenv.mkDerivation { pname = "cyclone-bootstrap"; inherit version; @@ -10,7 +10,7 @@ let owner = "justinethier"; repo = "cyclone-bootstrap"; rev = "v${version}"; - sha256 = "sha256-/zAcCBdJ7YQXsspdjrMca1Oj9SUUFXQKLwZPoZLhHYg="; + sha256 = "sha256-kJBPb0Ej32HveY/vdGpH2gyxSwq8Xq7muneFIw3Y7hM="; }; enableParallelBuilding = true; @@ -30,7 +30,7 @@ stdenv.mkDerivation { owner = "justinethier"; repo = "cyclone"; rev = "v${version}"; - sha256 = "sha256-a3wiqKlIbnvIhyrI0lyVGciQiM7KSuYH5iUfGFrgOuM="; + sha256 = "sha256-4U/uOTbFpPTC9BmO6Wkhy4PY8UCFVt5eHSGqrOlKT/U="; }; enableParallelBuilding = true; diff --git a/pkgs/development/interpreters/dart/default.nix b/pkgs/development/interpreters/dart/default.nix index 452d0edc3e0a8..366b7df3edd44 100644 --- a/pkgs/development/interpreters/dart/default.nix +++ b/pkgs/development/interpreters/dart/default.nix @@ -2,7 +2,7 @@ , lib , fetchurl , unzip -, version ? "2.14.3" +, version ? "2.15.1" , sources ? let base = "https://storage.googleapis.com/dart-archive/channels"; x86_64 = "x64"; @@ -10,24 +10,24 @@ aarch64 = "arm64"; # Make sure that if the user overrides version parameter they're # also need to override sources, to avoid mistakes - version = "2.14.3"; + version = "2.15.1"; in { "${version}-x86_64-darwin" = fetchurl { url = "${base}/stable/release/${version}/sdk/dartsdk-macos-${x86_64}-release.zip"; - sha256 = "0is4gz99i06yb4jisxcz2c15jqkaz6ayhg9b8zb3s0s8yp59r2iq"; + sha256 = "sha256-s6bkwh2m5KdRr/WxWXwItO9YaDpp/HI3xjnS2UHmN+I="; }; "${version}-x86_64-linux" = fetchurl { url = "${base}/stable/release/${version}/sdk/dartsdk-linux-${x86_64}-release.zip"; - sha256 = "0wg1mnj4qrv22z510032jnwb3z39gvzlrv5wic2ci5mg7316xlya"; + sha256 = "sha256-D0XcqlO0CQtpsne4heqaTLOkFYnJEZET4bl4rVXOM18="; }; "${version}-i686-linux" = fetchurl { url = "${base}/stable/release/${version}/sdk/dartsdk-linux-${i686}-release.zip"; - sha256 = "0gnjk3lh63m0naaw67g9w7wys5cgx2ipzd1dznqnlvxp2vj1gj5p"; + sha256 = "sha256-SRq5TtxS+bwCqVxa0U2Zhn8J1Wtm4Onq+3uQS+951sw="; }; "${version}-aarch64-linux" = fetchurl { url = "${base}/stable/release/${version}/sdk/dartsdk-linux-${aarch64}-release.zip"; - sha256 = "1j7snnf3a0jly85njq8npqikrdhz9lkirhvik1hkpd9sv7qfbvd6"; + sha256 = "sha256-iDbClCNDUsxT6K6koc4EQuu7dppTbOfzCVedpQIKI5U="; }; } }: @@ -56,7 +56,7 @@ stdenv.mkDerivation { meta = with lib; { homepage = "https://www.dartlang.org/"; - maintainers = with maintainers; [ grburst thiagokokada flexagoon ]; + maintainers = with maintainers; [ grburst flexagoon ]; description = "Scalable programming language, with robust libraries and runtimes, for building web, server, and mobile apps"; longDescription = '' Dart is a class-based, single inheritance, object-oriented language diff --git a/pkgs/development/interpreters/elixir/1.13.nix b/pkgs/development/interpreters/elixir/1.13.nix index 78a7458443e91..0e1ddcc19bf0c 100644 --- a/pkgs/development/interpreters/elixir/1.13.nix +++ b/pkgs/development/interpreters/elixir/1.13.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.13.1"; - sha256 = "0z0b1w2vvw4vsnb99779c2jgn9bgslg7b1pmd9vlbv02nza9qj5p"; + version = "1.13.3"; + sha256 = "sha256-xOIGMpjemPi1xLiYmFpQR4FD6PzeFBxSJP4QpNnEUSE="; minimumOTPVersion = "22"; } diff --git a/pkgs/development/interpreters/erlang/R22.nix b/pkgs/development/interpreters/erlang/R22.nix index 9236ea428948e..9685835434065 100644 --- a/pkgs/development/interpreters/erlang/R22.nix +++ b/pkgs/development/interpreters/erlang/R22.nix @@ -3,6 +3,6 @@ # How to obtain `sha256`: # nix-prefetch-url --unpack https://github.com/erlang/otp/archive/OTP-${version}.tar.gz mkDerivation { - version = "22.3.4.20"; - sha256 = "sha256-EUErOCW16eUb/p5dLpFV7sQ3mXlCF/OgOvGAAyYEvLo="; + version = "22.3.4.24"; + sha256 = "0c9713xa8sjw7nr55hysgcnbvj7gzbrpzdl94y1nqn7vw4ni8is3"; } diff --git a/pkgs/development/interpreters/erlang/R23.nix b/pkgs/development/interpreters/erlang/R23.nix index 3d0a2b1600651..a0d831d631f47 100644 --- a/pkgs/development/interpreters/erlang/R23.nix +++ b/pkgs/development/interpreters/erlang/R23.nix @@ -3,6 +3,6 @@ # How to obtain `sha256`: # nix-prefetch-url --unpack https://github.com/erlang/otp/archive/OTP-${version}.tar.gz mkDerivation { - version = "23.3.4.5"; - sha256 = "2u/w8IPKHEZ+rZ3T7Wn9+Ggxe6JY8cHz8q/N0RjbrNU="; + version = "23.3.4.10"; + sha256 = "0sfz7n748hvhmcygnvb6h31ag35p59aaa9h8gdpqsh6p4hnjh1mf"; } diff --git a/pkgs/development/interpreters/erlang/R24.nix b/pkgs/development/interpreters/erlang/R24.nix index b59626e70671f..b86667ec1e761 100644 --- a/pkgs/development/interpreters/erlang/R24.nix +++ b/pkgs/development/interpreters/erlang/R24.nix @@ -3,6 +3,6 @@ # How to obtain `sha256`: # nix-prefetch-url --unpack https://github.com/erlang/otp/archive/OTP-${version}.tar.gz mkDerivation { - version = "24.1.7"; - sha256 = "sha256-R4rZVMn9AGvOy31eA1dsz2CFMKOG/cXkbLaJtT7zBrU="; + version = "24.2"; + sha256 = "10s57v2i2qqyg3gddm85n3crzrkikl4zfwgzqmxjzdynsyb4xg68"; } diff --git a/pkgs/development/interpreters/guile/3.0.nix b/pkgs/development/interpreters/guile/3.0.nix index 5241c03a954e1..76aa0c4404fc9 100644 --- a/pkgs/development/interpreters/guile/3.0.nix +++ b/pkgs/development/interpreters/guile/3.0.nix @@ -99,7 +99,10 @@ builder rec { # See below. "--without-threads" - ]; + ] + # Disable JIT on Apple Silicon, as it is not yet supported + # https://debbugs.gnu.org/cgi/bugreport.cgi?bug=44505"; + ++ lib.optional (stdenv.isDarwin && stdenv.isAarch64) "--enable-jit=no"; postInstall = '' wrapProgram $out/bin/guile-snarf --prefix PATH : "${gawk}/bin" diff --git a/pkgs/development/interpreters/ivy/default.nix b/pkgs/development/interpreters/ivy/default.nix new file mode 100644 index 0000000000000..1e994a7a603e9 --- /dev/null +++ b/pkgs/development/interpreters/ivy/default.nix @@ -0,0 +1,24 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "ivy"; + version = "0.1.13"; + + src = fetchFromGitHub { + rev = "v${version}"; + owner = "robpike"; + repo = "ivy"; + sha256 = "sha256-IiQrmmHitKUItm/ZSTQ3jGO3ls8vPPexyOtUvfq3yeU="; + }; + + vendorSha256 = "sha256-pQpattmS9VmO3ZIQUFn66az8GSmB4IvYhTTCFn6SUmo="; + + subPackages = [ "." ]; + + meta = with lib; { + homepage = "https://github.com/robpike/ivy"; + description = "ivy, an APL-like calculator"; + license = licenses.bsd3; + maintainers = with maintainers; [ smasher164 ]; + }; +} diff --git a/pkgs/development/interpreters/janet/darwin-remove-net-test.patch b/pkgs/development/interpreters/janet/darwin-remove-net-test.patch new file mode 100644 index 0000000000000..b2a66d5465ea1 --- /dev/null +++ b/pkgs/development/interpreters/janet/darwin-remove-net-test.patch @@ -0,0 +1,20 @@ +diff --git a/test/suite0009.janet b/test/suite0009.janet +index 6095bc60..25360d60 100644 +--- a/test/suite0009.janet ++++ b/test/suite0009.janet +@@ -174,15 +174,6 @@ + (defer (:close stream) + (check-matching-names stream))) + +-# Test localname and peername +-(repeat 20 +- (with [s (net/server "127.0.0.1" "8000" names-handler)] +- (defn test-names [] +- (with [conn (net/connect "127.0.0.1" "8000")] +- (check-matching-names conn))) +- (repeat 20 (test-names))) +- (gccollect)) +- + # Create pipe + + (var pipe-counter 0) \ No newline at end of file diff --git a/pkgs/development/interpreters/janet/default.nix b/pkgs/development/interpreters/janet/default.nix index 35631174e2609..a6ee3dc61fad4 100644 --- a/pkgs/development/interpreters/janet/default.nix +++ b/pkgs/development/interpreters/janet/default.nix @@ -2,25 +2,22 @@ stdenv.mkDerivation rec { pname = "janet"; - version = "1.16.1"; + version = "1.20.0"; src = fetchFromGitHub { owner = "janet-lang"; repo = pname; rev = "v${version}"; - sha256 = "sha256-TzJbHmHIySlf3asQ02HOdehMR+s0KkPifBiaQ4FvFCg="; + sha256 = "sha256-mCeOaTbOQej4Uza9fg+xop77z31SQ3sO09dZK8SVAyU="; }; - # we don't have /usr/bin/env in the sandbox, so substitute for a proper, - # absolute path to janet - postPatch = '' - substituteInPlace jpm \ - --replace '/usr/bin/env janet' $out/bin/janet \ - --replace /usr/local/lib/janet $out/lib \ - --replace /usr/local $out + # This release fails the test suite on darwin, remove when debugged. + # See https://github.com/NixOS/nixpkgs/pull/150618 for discussion. + patches = lib.optionals stdenv.isDarwin ./darwin-remove-net-test.patch; + postPatch = '' substituteInPlace janet.1 \ - --replace /usr/local/lib/janet $out/lib + --replace /usr/local/ $out/ ''; nativeBuildInputs = [ meson ninja ]; @@ -35,5 +32,7 @@ stdenv.mkDerivation rec { license = licenses.mit; maintainers = with maintainers; [ andrewchambers peterhoeg ]; platforms = platforms.all; + # Marked as broken when patch is applied, see comment above patch. + broken = stdenv.isDarwin; }; } diff --git a/pkgs/development/interpreters/janet/jpm.nix b/pkgs/development/interpreters/janet/jpm.nix new file mode 100644 index 0000000000000..7089308512554 --- /dev/null +++ b/pkgs/development/interpreters/janet/jpm.nix @@ -0,0 +1,59 @@ +{ lib, stdenv, fetchFromGitHub, janet }: + +let + platformFiles = { + aarch64-darwin = "macos_config.janet"; + aarch64-linux = "linux_config.janet"; + x86_64-darwin = "macos_config.janet"; + x86_64-linux = "linux_config.janet"; + }; + + platformFile = platformFiles.${stdenv.hostPlatform.system}; + +in +stdenv.mkDerivation rec { + pname = "jpm"; + version = "0.0.2"; + + src = fetchFromGitHub { + owner = "janet-lang"; + repo = pname; + rev = version; + sha256 = "sha256-nv+vkDjEY711L+C5ibw48DUSNqq2UJiFC2i5LntuBNM="; + }; + + # `auto-shebangs true` gives us a shebang line that points to janet inside the + # jpm bin folder + postPatch = '' + substituteInPlace configs/${platformFile} \ + --replace 'auto-shebang true' 'auto-shebang false' \ + --replace /usr/local $out + ''; + + dontConfigure = true; + + buildInputs = [ janet ]; + + dontBuild = true; + + installPhase = '' + runHook preInstall + + mkdir -p $out/{lib/janet,share/man/man1} + + janet bootstrap.janet configs/${platformFile} + + runHook postInstall + ''; + + doInstallCheck = true; + + installCheckPhase = '' + $out/bin/jpm help + ''; + + meta = janet.meta // { + description = "Janet Project Manager for the Janet programming language"; + platforms = lib.attrNames platformFiles; + }; +} diff --git a/pkgs/development/interpreters/joker/default.nix b/pkgs/development/interpreters/joker/default.nix index 17503fc66ec14..141bda75fa884 100644 --- a/pkgs/development/interpreters/joker/default.nix +++ b/pkgs/development/interpreters/joker/default.nix @@ -2,13 +2,13 @@ buildGoModule rec { pname = "joker"; - version = "0.17.3"; + version = "0.18.0"; src = fetchFromGitHub { rev = "v${version}"; owner = "candid82"; repo = "joker"; - sha256 = "sha256-mm1vFXaQEljsU7Yg+3zDF2MBsc/ePSVF9LezeMWCyL0="; + sha256 = "sha256-Iia4sl8lRTpek5aZvQW/yy+TnMq5KNJH+pBnksqL/G0="; }; vendorSha256 = "sha256-AYoespfzFLP/jIIxbw5K653wc7sSfLY8K7di8GZ64wA="; diff --git a/pkgs/development/interpreters/jruby/default.nix b/pkgs/development/interpreters/jruby/default.nix index 4c19a2da8739f..468f9fac64c1d 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" "5" "7" ""; jruby = stdenv.mkDerivation rec { pname = "jruby"; - version = "9.3.2.0"; + version = "9.3.3.0"; src = fetchurl { url = "https://s3.amazonaws.com/jruby.org/downloads/${version}/jruby-bin-${version}.tar.gz"; - sha256 = "sha256-JmmcoCvur6gyZXPBElxXpZcbqLlNFfhOazuvJZQkTzM="; + sha256 = "sha256-Pagoy+KH1UaFB/HCxCvvbPNLxTYbzWpdmcIHshuf3Fw="; }; nativeBuildInputs = [ makeWrapper ]; diff --git a/pkgs/development/interpreters/lolcode/default.nix b/pkgs/development/interpreters/lolcode/default.nix index 65653701b8060..0bb95ed6ea52f 100644 --- a/pkgs/development/interpreters/lolcode/default.nix +++ b/pkgs/development/interpreters/lolcode/default.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, fetchurl, pkg-config, doxygen, cmake, readline }: +{ lib, stdenv, fetchFromGitHub, pkg-config, doxygen, cmake, readline }: with lib; stdenv.mkDerivation rec { @@ -6,9 +6,11 @@ stdenv.mkDerivation rec { pname = "lolcode"; version = "0.11.2"; - src = fetchurl { - url = "https://github.com/justinmeza/lci/archive/v${version}.tar.gz"; - sha256 = "1li7ikcrs7wqah7gqkirg0k61n6pm12w7pydin966x1sdn9na46b"; + src = fetchFromGitHub { + owner = "justinmeza"; + repo = "lci"; + rev = "v${version}"; + sha256 = "sha256-VMBW3/sw+1kI6iuOckSPU1TIeY6QORcSfFLFkRYw3Gs="; }; nativeBuildInputs = [ pkg-config cmake doxygen ]; diff --git a/pkgs/development/interpreters/love/0.10.nix b/pkgs/development/interpreters/love/0.10.nix index ed002d99fbbe2..2719008bbd9eb 100644 --- a/pkgs/development/interpreters/love/0.10.nix +++ b/pkgs/development/interpreters/love/0.10.nix @@ -1,20 +1,18 @@ -{ lib, stdenv, fetchFromBitbucket, pkg-config, SDL2, libGLU, libGL, openal, luajit, - libdevil, freetype, physfs, libmodplug, mpg123, libvorbis, libogg, - libtheora, which, autoconf, automake, libtool +{ lib, stdenv, fetchFromGitHub, pkg-config +, SDL2, libGLU, libGL, openal, luajit +, libdevil, freetype, physfs, libmodplug, mpg123, libvorbis, libogg +, libtheora, which, autoconf, automake, libtool }: -let +stdenv.mkDerivation rec { pname = "love"; - version = "0.10.2"; -in + version = "11.4"; -stdenv.mkDerivation { - name = "${pname}-${version}"; - src = fetchFromBitbucket { - owner = "rude"; + src = fetchFromGitHub { + owner = "love2d"; repo = "love"; rev = version; - sha256 = "19yfmlcx6w8yi4ndm5lni8lrsvnn77bxw5py0dc293nzzlaqa9ym"; + sha256 = "sha256-C/Ifd0KjmaM5Y2fxBiDNz1GQoT4GeH/vyUCiira57U4="; }; nativeBuildInputs = [ pkg-config ]; @@ -32,7 +30,7 @@ stdenv.mkDerivation { NIX_CFLAGS_COMPILE = "-DluaL_reg=luaL_Reg"; # needed since luajit-2.1.0-beta3 meta = { - homepage = "http://love2d.org"; + homepage = "https://love2d.org"; description = "A Lua-based 2D game engine/scripting language"; license = lib.licenses.zlib; platforms = lib.platforms.linux; diff --git a/pkgs/development/interpreters/love/0.7.nix b/pkgs/development/interpreters/love/0.7.nix deleted file mode 100644 index 6d8b996f18358..0000000000000 --- a/pkgs/development/interpreters/love/0.7.nix +++ /dev/null @@ -1,58 +0,0 @@ -{ lib, stdenv, fetchurl, pkg-config -, SDL, libGLU, libGL, openal, lua -, libdevil, freetype, physfs -, libmodplug, mpg123, libvorbis, libogg -, libmng -}: - -stdenv.mkDerivation rec { - pname = "love"; - version = "0.7.2"; - - src = fetchurl { - url = "https://bitbucket.org/rude/love/downloads/love-${version}-linux-src.tar.gz"; - sha256 = "0s7jywkvydlshlgy11ilzngrnybmq5xlgzp2v2dhlffwrfqdqym5"; - }; - - # see discussion on arch linux user repository (https://aur.archlinux.org/packages/love07/?setlang=cs#comment-684696) - patches = [ ./0.7-gl-prototypes.patch ]; - - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ - SDL libGLU libGL openal lua - libdevil freetype physfs libmodplug mpg123 libvorbis libogg libmng - ]; - - preConfigure = '' - luaoptions="${"''"} lua luajit " - for i in lua luajit-; do - for j in 5 5.0 5.1 5.2 5.3 5.4; do - luaoptions="$luaoptions $i$j " - done - done - luaso="$(echo "${lua}/lib/"lib*.so.*)" - luaso="''${luaso##*/lib}" - luaso="''${luaso%%.so*}" - luaoptions="$luaoptions $luaso" - sed -e "s/${"''"} lua lua.*;/$luaoptions;/" -i configure - - luaincdir="$(echo "${lua}/include"/*/ )" - test -d "$luaincdir" && { - export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I$luaincdir" - } || true - ''; - - NIX_CFLAGS_COMPILE = '' - -I${SDL.dev}/include/SDL - -I${freetype.dev}include/freetype2 - ''; - - meta = { - homepage = "http://love2d.org"; - description = "A Lua-based 2D game engine/scripting language"; - license = lib.licenses.zlib; - - platforms = lib.platforms.linux; - maintainers = [ lib.maintainers.raskin ]; - }; -} diff --git a/pkgs/development/interpreters/love/0.8.nix b/pkgs/development/interpreters/love/0.8.nix deleted file mode 100644 index 8bad501170dbd..0000000000000 --- a/pkgs/development/interpreters/love/0.8.nix +++ /dev/null @@ -1,55 +0,0 @@ -{ lib, stdenv, fetchurl, pkg-config -, SDL, libGLU, libGL, openal, lua -, libdevil, freetype, physfs -, libmodplug, mpg123, libvorbis, libogg -}: - -stdenv.mkDerivation rec { - pname = "love"; - version = "0.8.0"; - - src = fetchurl { - url = "https://bitbucket.org/rude/love/downloads/${pname}-${version}-linux-src.tar.gz"; - sha256 = "1k4fcsa8zzi04ja179bmj24hvqcbm3icfvrvrzyz2gw9qwfclrwi"; - }; - - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ - SDL libGLU libGL openal lua - libdevil freetype physfs libmodplug mpg123 libvorbis libogg - ]; - - preConfigure = '' - luaoptions="${"''"} lua luajit " - for i in lua luajit-; do - for j in 5 5.0 5.1 5.2 5.3 5.4; do - luaoptions="$luaoptions $i$j " - done - done - luaso="$(echo "${lua}/lib/"lib*.so.*)" - luaso="''${luaso##*/lib}" - luaso="''${luaso%%.so*}" - luaoptions="$luaoptions $luaso" - sed -e "s/${"''"} lua lua.*;/$luaoptions;/" -i configure - - luaincdir="$(echo "${lua}/include"/*/ )" - test -d "$luaincdir" && { - export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I$luaincdir" - } || true - ''; - - NIX_CFLAGS_COMPILE = toString [ - "-I${SDL.dev}/include/SDL" - "-I${freetype.dev}include/freetype2" - "-DGL_GLEXT_PROTOTYPES" # https://community.khronos.org/t/glgenbuffers-was-not-declared-in-this-scope/59283/2 - ]; - - meta = { - homepage = "http://love2d.org"; - description = "A Lua-based 2D game engine/scripting language"; - license = lib.licenses.zlib; - - platforms = lib.platforms.linux; - maintainers = [ lib.maintainers.raskin ]; - }; -} diff --git a/pkgs/development/interpreters/love/0.9.nix b/pkgs/development/interpreters/love/0.9.nix deleted file mode 100644 index 512aade7f9539..0000000000000 --- a/pkgs/development/interpreters/love/0.9.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ lib, stdenv, fetchurl, pkg-config -, SDL2, libGLU, libGL, openal, luajit -, libdevil, freetype, physfs -, libmodplug, mpg123, libvorbis, libogg -}: - -stdenv.mkDerivation rec { - pname = "love"; - version = "0.9.1"; - - src = fetchurl { - url = "https://bitbucket.org/rude/love/downloads/love-${version}-linux-src.tar.gz"; - sha256 = "1pikd0bzb44r4bf0jbgn78whz1yswpq1n5jc8nf87v42pm30kp84"; - }; - - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ - SDL2 libGLU libGL openal luajit - libdevil freetype physfs libmodplug mpg123 libvorbis libogg - ]; - - configureFlags = [ - "--with-lua=luajit" - ]; - - NIX_CFLAGS_COMPILE = [ "-DluaL_reg=luaL_Reg" ]; # needed since luajit-2.1.0-beta3 - - meta = { - homepage = "http://love2d.org"; - description = "A Lua-based 2D game engine/scripting language"; - license = lib.licenses.zlib; - - platforms = lib.platforms.linux; - maintainers = [ lib.maintainers.raskin ]; - broken = true; - }; -} diff --git a/pkgs/development/interpreters/love/11.1.nix b/pkgs/development/interpreters/love/11.nix index bf76547a07a73..83095ac0924ec 100644 --- a/pkgs/development/interpreters/love/11.1.nix +++ b/pkgs/development/interpreters/love/11.nix @@ -1,20 +1,18 @@ -{ lib, stdenv, fetchFromBitbucket, pkg-config, SDL2, libGLU, libGL, openal, luajit, - libdevil, freetype, physfs, libmodplug, mpg123, libvorbis, libogg, - libtheora, which, autoconf, automake, libtool +{ lib, stdenv, fetchFromGitHub, pkg-config +, SDL2, libGLU, libGL, openal, luajit +, libdevil, freetype, physfs, libmodplug, mpg123, libvorbis, libogg +, libtheora, which, autoconf, automake, libtool }: -let +stdenv.mkDerivation rec { pname = "love"; - version = "11.3"; -in + version = "11.4"; -stdenv.mkDerivation { - name = "${pname}-${version}"; - src = fetchFromBitbucket { - owner = "rude"; + src = fetchFromGitHub { + owner = "love2d"; repo = "love"; rev = version; - sha256 = "18gfp65ngb8k8g7hgbw2bhrwk2i7m56m21d39pk4484q9z8p4vm7"; + sha256 = "0kpdp6v8m8j0r7ppyy067shr0lfgrlh0dwb7ccws76d389vizwhb"; }; nativeBuildInputs = [ pkg-config ]; @@ -32,7 +30,7 @@ stdenv.mkDerivation { NIX_CFLAGS_COMPILE = "-DluaL_reg=luaL_Reg"; # needed since luajit-2.1.0-beta3 meta = { - homepage = "http://love2d.org"; + homepage = "https://love2d.org"; description = "A Lua-based 2D game engine/scripting language"; license = lib.licenses.zlib; platforms = lib.platforms.linux; diff --git a/pkgs/development/interpreters/luajit/default.nix b/pkgs/development/interpreters/luajit/default.nix index 87de82eb2630b..4e2931aa76885 100644 --- a/pkgs/development/interpreters/luajit/default.nix +++ b/pkgs/development/interpreters/luajit/default.nix @@ -113,6 +113,6 @@ stdenv.mkDerivation rec { homepage = "http://luajit.org"; license = licenses.mit; platforms = platforms.linux ++ platforms.darwin; - maintainers = with maintainers; [ thoughtpolice smironov vcunat andir lblasc ]; + maintainers = with maintainers; [ thoughtpolice smironov vcunat lblasc ]; } // extraMeta; } diff --git a/pkgs/development/interpreters/lunatic/default.nix b/pkgs/development/interpreters/lunatic/default.nix index cf4339c69ac49..425060e240d44 100644 --- a/pkgs/development/interpreters/lunatic/default.nix +++ b/pkgs/development/interpreters/lunatic/default.nix @@ -2,16 +2,16 @@ rustPlatform.buildRustPackage rec { pname = "lunatic"; - version = "0.7.0"; + version = "0.7.5"; src = fetchFromGitHub { owner = "lunatic-solutions"; repo = pname; rev = "v${version}"; - sha256 = "sha256-+4014p+4QJ7nytFHHszAOYQHXLYXqR+Cip+vHxsH9l8="; + sha256 = "sha256-HqDrGoyYzdx8OTanlRd95L1wAtFeew7Xs2rZ7nK2Zus="; }; - cargoSha256 = "sha256-RnaAiumTP4cW2eHUbnwyPdgJQLK65gqDI/NP2SOrO4E="; + cargoSha256 = "sha256-t3EwVYrKx7dvUcSp0B1iUAklg7WdQDld/T0O1HgHw54="; nativeBuildInputs = [ cmake ]; diff --git a/pkgs/development/interpreters/micropython/default.nix b/pkgs/development/interpreters/micropython/default.nix index 7591e997beb2c..3c85b67a942df 100644 --- a/pkgs/development/interpreters/micropython/default.nix +++ b/pkgs/development/interpreters/micropython/default.nix @@ -9,13 +9,13 @@ stdenv.mkDerivation rec { pname = "micropython"; - version = "1.17"; + version = "1.18"; src = fetchFromGitHub { owner = "micropython"; repo = "micropython"; rev = "v${version}"; - sha256 = "0aqij36iykmfdsv5dqrifvghmjx7qid8hmbxcpx3xpk3nizh7w84"; + sha256 = "sha256-roskIDyY3ehasOm8Yn4braLNZtaeuItb9ZOUgF4CXww="; fetchSubmodules = true; }; @@ -33,7 +33,7 @@ stdenv.mkDerivation rec { doCheck = true; skippedTests = "" - + lib.optionalString (stdenv.isDarwin) " -e uasyncio_basic -e uasyncio_wait_task" + + lib.optionalString (stdenv.isDarwin) " -e uasyncio_basic -e uasyncio_heaplock -e uasyncio_wait_task" + lib.optionalString (stdenv.isDarwin && stdenv.isAarch64) " -e ffi_callback" + lib.optionalString (stdenv.isLinux && stdenv.isAarch64) " -e float_parse" ; diff --git a/pkgs/development/interpreters/nextflow/default.nix b/pkgs/development/interpreters/nextflow/default.nix new file mode 100644 index 0000000000000..c182214ccbb00 --- /dev/null +++ b/pkgs/development/interpreters/nextflow/default.nix @@ -0,0 +1,56 @@ +{ lib +, stdenv +, fetchurl +, makeWrapper +, jre +, wget +, which +, gnused +, gawk +, coreutils +}: + +stdenv.mkDerivation rec { + pname = "nextflow"; + version = "21.10.6"; + + src = fetchurl { + url = "https://github.com/nextflow-io/nextflow/releases/download/v${version}/nextflow-${version}-all"; + sha256 = "0l9hi51vrhvfx3px2pxw7lp4h21n8ks50x4icfk3hbgl2hwf7fvx"; + }; + + nativeBuildInputs = [ makeWrapper ]; + buildInputs = [ jre wget which gnused gawk coreutils ]; + + dontUnpack = true; + + installPhase = '' + runHook preInstall + + mkdir -p $out/bin + install -Dm755 $src $out/bin/nextflow + + runHook postInstall + ''; + + postFixup = '' + wrapProgram $out/bin/nextflow --prefix PATH : ${lib.makeBinPath buildInputs} + ''; + + meta = with lib; { + description = "A DSL for data-driven computational pipelines"; + longDescription = '' + Nextflow is a bioinformatics workflow manager that enables the development of portable and reproducible workflows. + + It supports deploying workflows on a variety of execution platforms including local, HPC schedulers, AWS Batch, Google Cloud Life Sciences, and Kubernetes. + + Additionally, it provides support for manage your workflow dependencies through built-in support for Conda, Docker, Singularity, and Modules. + ''; + homepage = "https://www.nextflow.io/"; + changelog = "https://github.com/nextflow-io/nextflow/releases"; + license = licenses.asl20; + maintainers = [ maintainers.Etjean ]; + mainProgram = "nextflow"; + platforms = platforms.unix; + }; +} diff --git a/pkgs/development/interpreters/php/7.4.nix b/pkgs/development/interpreters/php/7.4.nix index 1cc63d7b58a42..316b37f2e099a 100644 --- a/pkgs/development/interpreters/php/7.4.nix +++ b/pkgs/development/interpreters/php/7.4.nix @@ -2,8 +2,8 @@ let base = callPackage ./generic.nix (_args // { - version = "7.4.26"; - sha256 = "0k803j5wf4jv72px0zqz2z2hxyk2w3jr6xyczy568dx4z2l8i2yn"; + version = "7.4.27"; + sha256 = "184aaef313fbf28c9987f6aa07b655cd1b0eae9e7e17061775a3e7d880185563"; }); in diff --git a/pkgs/development/interpreters/php/8.0.nix b/pkgs/development/interpreters/php/8.0.nix index 8cf7d4ebc8dfd..b34f5974ff4e4 100644 --- a/pkgs/development/interpreters/php/8.0.nix +++ b/pkgs/development/interpreters/php/8.0.nix @@ -2,8 +2,8 @@ let base = callPackage ./generic.nix (_args // { - version = "8.0.13"; - sha256 = "0djqh650clz4fy1zifazf0jq383znksydx23f1s48prrlixrshf2"; + version = "8.0.14"; + sha256 = "0jydl388mpysrrxa7h9sxf3fpp38mmygg9ryq8j7rb8p93giyf5v"; }); in diff --git a/pkgs/development/interpreters/php/8.1.nix b/pkgs/development/interpreters/php/8.1.nix index 736d6c808cde4..d339e78010187 100644 --- a/pkgs/development/interpreters/php/8.1.nix +++ b/pkgs/development/interpreters/php/8.1.nix @@ -2,8 +2,8 @@ let base = callPackage ./generic.nix (_args // { - version = "8.1.1"; - sha256 = "sha256-j4vJytbNEk7cER99sKEJdF4vY4dwoQGzwiopU/eptA4="; + version = "8.1.2"; + sha256 = "1aakbfgjffha4v7fl6229wwzavw59s1qkb547sipyhl88gfwfgci"; }); in diff --git a/pkgs/development/interpreters/pyrex/0.9.5.nix b/pkgs/development/interpreters/pyrex/0.9.5.nix deleted file mode 100644 index 3fb909b0bb0d2..0000000000000 --- a/pkgs/development/interpreters/pyrex/0.9.5.nix +++ /dev/null @@ -1,19 +0,0 @@ -{ lib, fetchurl, python2Packages }: - -python2Packages.buildPythonPackage rec { - pname = "pyrex"; - version = "0.9.5.1.1"; - - src = fetchurl { - url = "https://www.cosc.canterbury.ac.nz/greg.ewing/python/Pyrex/oldtar/Pyrex-${version}.tar.gz"; - sha256 = "0lxxvn4mjfb83swcbqb5908q4iy53w4ip5i0f9angm2va1jyhd3z"; - }; - - doCheck = false; - - meta = { - homepage = "http://www.cosc.canterbury.ac.nz/greg.ewing/python/Pyrex/"; - description = "A language for writing Python extension modules"; - license = lib.licenses.asl20; - }; -} diff --git a/pkgs/development/interpreters/pyrex/0.9.6.nix b/pkgs/development/interpreters/pyrex/0.9.6.nix deleted file mode 100644 index e9d8d3097093a..0000000000000 --- a/pkgs/development/interpreters/pyrex/0.9.6.nix +++ /dev/null @@ -1,19 +0,0 @@ -{ lib, fetchurl, python2Packages }: - -python2Packages.buildPythonPackage rec { - pname = "pyrex"; - version = "0.9.6.4"; - - src = fetchurl { - url = "https://www.cosc.canterbury.ac.nz/greg.ewing/python/Pyrex/oldtar/Pyrex-${version}.tar.gz"; - sha256 = "18pd9f8al3l6i27cc0ddhgg7hxf28lnfs75x4a8jzscydxgiq5a8"; - }; - - doCheck = false; - - meta = { - homepage = "http://www.cosc.canterbury.ac.nz/greg.ewing/python/Pyrex/"; - description = "A language for writing Python extension modules"; - license = lib.licenses.asl20; - }; -} diff --git a/pkgs/development/interpreters/python/cpython/default.nix b/pkgs/development/interpreters/python/cpython/default.nix index e4a974a255b89..1bcbd2bb4b5e9 100644 --- a/pkgs/development/interpreters/python/cpython/default.nix +++ b/pkgs/development/interpreters/python/cpython/default.nix @@ -4,7 +4,7 @@ , libffi , gdbm , xz -, mime-types ? null, mimetypesSupport ? true +, mailcap, mimetypesSupport ? true , ncurses , openssl , readline @@ -17,6 +17,7 @@ , configd , autoreconfHook , autoconf-archive +, pkg-config , python-setup-hook , nukeReferences # For the Python package set @@ -62,8 +63,6 @@ assert x11Support -> tcl != null assert bluezSupport -> bluez != null; -assert mimetypesSupport -> mime-types != null; - assert lib.assertMsg (enableOptimizations -> (!stdenv.cc.isClang)) "Optimizations with clang are not supported. configure: error: llvm-profdata is required for a --enable-optimizations build but could not be found."; @@ -105,7 +104,7 @@ let nativeBuildInputs = optionals (!stdenv.isDarwin) [ autoreconfHook - ] ++ optionals (!stdenv.isDarwin && passthru.pythonAtLeast "3.10") [ + pkg-config autoconf-archive # needed for AX_CHECK_COMPILE_FLAG ] ++ [ nukeReferences @@ -193,7 +192,8 @@ in with passthru; stdenv.mkDerivation { prePatch = optionalString stdenv.isDarwin '' substituteInPlace configure --replace '`/usr/bin/arch`' '"i386"' substituteInPlace configure --replace '-Wl,-stack_size,1000000' ' ' - '' + optionalString (stdenv.isDarwin && x11Support) '' + '' + optionalString (pythonOlder "3.9" && stdenv.isDarwin && x11Support) '' + # Broken on >= 3.9; replaced with ./3.9/darwin-tcl-tk.patch substituteInPlace setup.py --replace /Library/Frameworks /no-such-path ''; @@ -276,7 +276,7 @@ in with passthru; stdenv.mkDerivation { --replace "'/bin/sh'" "'${bash}/bin/sh'" '' + optionalString mimetypesSupport '' substituteInPlace Lib/mimetypes.py \ - --replace "@mime-types@" "${mime-types}" + --replace "@mime-types@" "${mailcap}" '' + optionalString (x11Support && (tix != null)) '' substituteInPlace "Lib/tkinter/tix.py" --replace "os.environ.get('TIX_LIBRARY')" "os.environ.get('TIX_LIBRARY') or '${tix}/lib'" ''; diff --git a/pkgs/development/interpreters/python/default.nix b/pkgs/development/interpreters/python/default.nix index 3e53ea251a27b..6bee51f64232a 100644 --- a/pkgs/development/interpreters/python/default.nix +++ b/pkgs/development/interpreters/python/default.nix @@ -133,10 +133,19 @@ with pkgs; sourceVersion = { major = "3"; minor = "9"; - patch = "9"; + patch = "10"; suffix = ""; }; - sha256 = "sha256-BoKMBKVzwHOk5RxCkqJ8G+SuJmIcPtx8+TGEGM47bSc="; + sha256 = "sha256-Co+/tSh+vDoT6brz1U4I+gZ3j/7M9jEa74Ibs6ZYbMg="; + }; + python310 = { + sourceVersion = { + major = "3"; + minor = "10"; + patch = "2"; + suffix = ""; + }; + sha256 = "sha256-F946x9qfJRmqnWQ3jGA6c6DprVjf+ogS5FFgwIbeZMc="; }; }; @@ -180,18 +189,11 @@ in { inherit passthruFun; } // sources.python39); - python310 = callPackage ./cpython { + python310 = callPackage ./cpython ({ self = python310; - sourceVersion = { - major = "3"; - minor = "10"; - patch = "0"; - suffix = ""; - }; - sha256 = "00mhn6kj4qkvkkv6hh2klnnjr0yk0c9hspp7njc7n6m1lvkzi6as"; inherit (darwin) configd; inherit passthruFun; - }; + } // sources.python310); python311 = callPackage ./cpython { self = python311; @@ -199,9 +201,9 @@ in { major = "3"; minor = "11"; patch = "0"; - suffix = "a2"; + suffix = "a4"; }; - sha256 = "sha256-aKjE1s4lSKe2F9aZ+9s0iTe9rODPltsaoIOEnfXa0T8="; + sha256 = "sha256-Q3/nN2w2Pa+vNM6A8ERrQfyaQsDiqMflGdPwoLfPs+0="; inherit (darwin) configd; inherit passthruFun; }; @@ -219,6 +221,7 @@ in { sqlite = null; configd = null; tzdata = null; + libffi = pkgs.libffiBoot; # without test suite stripConfig = true; stripIdlelib = true; stripTests = true; @@ -273,29 +276,29 @@ in { sha256 = "sha256-LtAqyecQhZxBvILer7CGGXkruaJ+6qFnbHQe3t0hTdc="; }; - pypy27_prebuilt = callPackage ./pypy/prebuilt.nix { + pypy27_prebuilt = callPackage ./pypy/prebuilt_2_7.nix { # Not included at top-level self = pythonInterpreters.pypy27_prebuilt; sourceVersion = { major = "7"; minor = "3"; - patch = "3"; + patch = "6"; }; - sha256 = "1cfpdyvbvzwc0ynjr7248jhwgcpl7073wlp7w3g2v4fnrh1bc4pl"; # linux64 + sha256 = "sha256-ghJ/Q/rmznXUfWxFOfjB6jcunC2/pA+ui1g1HVInk6Q="; # linux64 pythonVersion = "2.7"; inherit passthruFun; }; - pypy36_prebuilt = callPackage ./pypy/prebuilt.nix { + pypy38_prebuilt = callPackage ./pypy/prebuilt.nix { # Not included at top-level - self = pythonInterpreters.pypy36_prebuilt; + self = pythonInterpreters.pypy38_prebuilt; sourceVersion = { major = "7"; minor = "3"; - patch = "3"; + patch = "7"; }; - sha256 = "02lys9bjky9bqg6ggv8djirbd3zzcsq7755v4yvwm0k4a7fmzf2g"; # linux64 - pythonVersion = "3.6"; + sha256 = "sha256-Xe43x8PLixYAKPveOlkBxoBD36VFoWeUUCuJfUvEDX4="; # linux64 + pythonVersion = "3.8"; inherit passthruFun; }; diff --git a/pkgs/development/interpreters/python/pypy/prebuilt.nix b/pkgs/development/interpreters/python/pypy/prebuilt.nix index 460af1cc67b4f..69de6e94e3781 100644 --- a/pkgs/development/interpreters/python/pypy/prebuilt.nix +++ b/pkgs/development/interpreters/python/pypy/prebuilt.nix @@ -6,8 +6,9 @@ , which # Dependencies , bzip2 +, sqlite , zlib -, openssl_1_0_2 +, openssl , expat , ncurses6 , tcl-8_5 @@ -27,12 +28,12 @@ with lib; let isPy3k = majorVersion == "3"; - passthru = passthruFun { + passthru = passthruFun rec { inherit self sourceVersion pythonVersion packageOverrides; implementation = "pypy"; libPrefix = "pypy${pythonVersion}"; executable = "pypy${if isPy3k then "3" else ""}"; - sitePackages = "site-packages"; + sitePackages = "lib/${libPrefix}/site-packages"; hasDistutilsCxxPatch = false; # Not possible to cross-compile with. @@ -49,8 +50,9 @@ let deps = [ bzip2 + sqlite zlib - openssl_1_0_2 + openssl expat ncurses6 tcl-8_5 @@ -68,10 +70,9 @@ in with passthru; stdenv.mkDerivation { buildInputs = [ which ]; installPhase = '' - mkdir -p $out/lib + mkdir -p $out echo "Moving files to $out" - mv -t $out bin include lib-python lib_pypy site-packages - mv lib/libffi.so.6* $out/lib/ + mv -t $out bin include lib mv $out/bin/libpypy*-c.so $out/lib/ @@ -84,8 +85,9 @@ in with passthru; stdenv.mkDerivation { $out/bin/pypy* pushd $out - find {lib,lib_pypy*} -name "*.so" -exec patchelf --remove-needed libncursesw.so.6 --replace-needed libtinfow.so.6 libncursesw.so.6 {} \; - find {lib,lib_pypy*} -name "*.so" -exec patchelf --set-rpath ${lib.makeLibraryPath deps}:$out/lib {} \; + + find ./lib -name "*.so" -exec patchelf --remove-needed libncursesw.so.6 --replace-needed libtinfow.so.6 libncursesw.so.6 {} \; + find ./lib -name "*.so" -exec patchelf --set-rpath ${lib.makeLibraryPath deps}:$out/lib {} \; echo "Removing bytecode" find . -name "__pycache__" -type d -depth -exec rm -rf {} \; diff --git a/pkgs/development/interpreters/python/pypy/prebuilt_2_7.nix b/pkgs/development/interpreters/python/pypy/prebuilt_2_7.nix new file mode 100644 index 0000000000000..460af1cc67b4f --- /dev/null +++ b/pkgs/development/interpreters/python/pypy/prebuilt_2_7.nix @@ -0,0 +1,132 @@ +{ lib +, stdenv +, fetchurl +, python-setup-hook +, self +, which +# Dependencies +, bzip2 +, zlib +, openssl_1_0_2 +, expat +, ncurses6 +, tcl-8_5 +, tk-8_5 +# For the Python package set +, packageOverrides ? (self: super: {}) +, sourceVersion +, pythonVersion +, sha256 +, passthruFun +}: + +# This version of PyPy is primarily added to speed-up translation of +# our PyPy source build when developing that expression. + +with lib; + +let + isPy3k = majorVersion == "3"; + passthru = passthruFun { + inherit self sourceVersion pythonVersion packageOverrides; + implementation = "pypy"; + libPrefix = "pypy${pythonVersion}"; + executable = "pypy${if isPy3k then "3" else ""}"; + sitePackages = "site-packages"; + hasDistutilsCxxPatch = false; + + # Not possible to cross-compile with. + pythonOnBuildForBuild = throw "${pname} does not support cross compilation"; + pythonOnBuildForHost = self; + pythonOnBuildForTarget = throw "${pname} does not support cross compilation"; + pythonOnHostForHost = throw "${pname} does not support cross compilation"; + pythonOnTargetForTarget = throw "${pname} does not support cross compilation"; + }; + pname = "${passthru.executable}_prebuilt"; + version = with sourceVersion; "${major}.${minor}.${patch}"; + + majorVersion = substring 0 1 pythonVersion; + + deps = [ + bzip2 + zlib + openssl_1_0_2 + expat + ncurses6 + tcl-8_5 + tk-8_5 + ]; + +in with passthru; stdenv.mkDerivation { + inherit pname version; + + src = fetchurl { + url = "https://downloads.python.org/pypy/pypy${pythonVersion}-v${version}-linux64.tar.bz2"; + inherit sha256; + }; + + buildInputs = [ which ]; + + installPhase = '' + mkdir -p $out/lib + echo "Moving files to $out" + mv -t $out bin include lib-python lib_pypy site-packages + mv lib/libffi.so.6* $out/lib/ + + mv $out/bin/libpypy*-c.so $out/lib/ + + rm $out/bin/*.debug + + echo "Patching binaries" + interpreter=$(patchelf --print-interpreter $(readlink -f $(which patchelf))) + patchelf --set-interpreter $interpreter \ + --set-rpath $out/lib \ + $out/bin/pypy* + + pushd $out + find {lib,lib_pypy*} -name "*.so" -exec patchelf --remove-needed libncursesw.so.6 --replace-needed libtinfow.so.6 libncursesw.so.6 {} \; + find {lib,lib_pypy*} -name "*.so" -exec patchelf --set-rpath ${lib.makeLibraryPath deps}:$out/lib {} \; + + echo "Removing bytecode" + find . -name "__pycache__" -type d -depth -exec rm -rf {} \; + popd + + # Include a sitecustomize.py file + cp ${../sitecustomize.py} $out/${sitePackages}/sitecustomize.py + + ''; + + doInstallCheck = true; + + # Check whether importing of (extension) modules functions + installCheckPhase = let + modules = [ + "ssl" + "sys" + "curses" + ] ++ optionals (!isPy3k) [ + "Tkinter" + ] ++ optionals isPy3k [ + "tkinter" + ]; + imports = concatMapStringsSep "; " (x: "import ${x}") modules; + in '' + echo "Testing whether we can import modules" + $out/bin/${executable} -c '${imports}' + ''; + + setupHook = python-setup-hook sitePackages; + + donPatchElf = true; + dontStrip = true; + + inherit passthru; + + meta = with lib; { + 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/update-python-libraries/update-python-libraries.py b/pkgs/development/interpreters/python/update-python-libraries/update-python-libraries.py index 3a6a14133ea37..5f55ed5ecaf1a 100755 --- a/pkgs/development/interpreters/python/update-python-libraries/update-python-libraries.py +++ b/pkgs/development/interpreters/python/update-python-libraries/update-python-libraries.py @@ -242,7 +242,9 @@ DEFAULT_SETUPTOOLS_EXTENSION = 'tar.gz' FORMATS = { 'setuptools' : DEFAULT_SETUPTOOLS_EXTENSION, - 'wheel' : 'whl' + 'wheel' : 'whl', + 'pyproject' : 'tar.gz', + 'flit' : 'tar.gz' } def _determine_fetcher(text): @@ -281,12 +283,8 @@ def _determine_extension(text, fetcher): if extension is None: if src_format is None: src_format = 'setuptools' - elif src_format == 'flit': - raise ValueError("Don't know how to update a Flit package.") elif src_format == 'other': raise ValueError("Don't know how to update a format='other' package.") - elif src_format == 'pyproject': - raise ValueError("Don't know how to update a pyproject package.") extension = FORMATS[src_format] elif fetcher == 'fetchurl': @@ -342,19 +340,35 @@ def _update_package(path, target): raise ValueError("no file available for {}.".format(pname)) text = _replace_value('version', new_version, text) + # hashes from pypi are 16-bit encoded sha256's, normalize it to sri to avoid merge conflicts + # sri hashes have been the default format since nix 2.4+ + try: + sri_hash = subprocess.check_output(["nix", "hash", "to-sri", "--type", "sha256", new_sha256]).decode('utf-8').strip() + except subprocess.CalledProcessError: + # nix<2.4 compat + sri_hash = subprocess.check_output(["nix", "to-sri", "--type", "sha256", new_sha256]).decode('utf-8').strip() + # fetchers can specify a sha256, or a sri hash try: - text = _replace_value('sha256', new_sha256, text) + text = _replace_value('sha256', sri_hash, text) except ValueError: - # hashes from pypi are 16-bit encoded sha256's, need translate to an sri hash if used with "hash" - sri_hash = subprocess.check_output(["nix", "hash", "to-sri", "--type", "sha256", new_sha256]).decode('utf-8').strip() text = _replace_value('hash', sri_hash, text) if fetcher == 'fetchFromGitHub': - text = _replace_value('rev', f"{prefix}${{version}}", text) - # incase there's no prefix, just rewrite without interpolation - text = text.replace('"${version}";', 'version;') + # in the case of fetchFromGitHub, it's common to see `rev = version;` + # in which no string value is meant to be substituted. + # Verify that the attribute is set to a variable + regex = '(rev\s+=\s+([_a-zA-Z][_a-zA-Z0-9\.]*);)' + regex = re.compile(regex) + value = regex.findall(text) + n = len(value) + + if n == 0: + # value is set to a string, e.g. `rev = "v${version}";` + text = _replace_value('rev', f"{prefix}${{version}}", text) + # incase there's no prefix, just rewrite without interpolation + text = text.replace('"${version}";', 'version;') with open(path, 'w') as f: f.write(text) diff --git a/pkgs/development/interpreters/quickjs/default.nix b/pkgs/development/interpreters/quickjs/default.nix index 4bc0ec528a016..cc5487183db38 100644 --- a/pkgs/development/interpreters/quickjs/default.nix +++ b/pkgs/development/interpreters/quickjs/default.nix @@ -55,5 +55,6 @@ stdenv.mkDerivation rec { maintainers = with maintainers; [ stesie AndersonTorres ]; platforms = platforms.linux; license = licenses.mit; + mainProgram = "qjs"; }; } diff --git a/pkgs/development/interpreters/racket/default.nix b/pkgs/development/interpreters/racket/default.nix index 73ce0c1bc81b6..bd96562d9e5dd 100644 --- a/pkgs/development/interpreters/racket/default.nix +++ b/pkgs/development/interpreters/racket/default.nix @@ -37,6 +37,7 @@ let libjpeg libpng mpfr + ncurses openssl pango poppler @@ -48,7 +49,7 @@ in stdenv.mkDerivation rec { pname = "racket"; - version = "8.3"; # always change at once with ./minimal.nix + version = "8.4"; # always change at once with ./minimal.nix src = (lib.makeOverridable ({ name, sha256 }: fetchurl { @@ -57,7 +58,7 @@ stdenv.mkDerivation rec { } )) { name = "${pname}-${version}"; - sha256 = "sha256-M90MIIRsfF/fhK8twlD3ZRBO0ztQkb4VKp9o8eJUFFc="; + sha256 = "sha256-uJ+vL+FtBNILkFbwi7qZ6yBA1Rcr7o886zmZ/tFuatM="; }; FONTCONFIG_FILE = fontsConf; @@ -69,14 +70,21 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ cacert wrapGAppsHook ]; - buildInputs = [ fontconfig libffi libtool sqlite gsettings-desktop-schemas gtk3 ] - ++ lib.optionals stdenv.isDarwin [ libiconv CoreFoundation ncurses ]; + buildInputs = [ fontconfig libffi libtool sqlite gsettings-desktop-schemas gtk3 ncurses ] + ++ lib.optionals stdenv.isDarwin [ libiconv CoreFoundation ]; patches = [ # Hardcode variant detection because we wrap the Racket binary making it # fail to detect its variant at runtime. # See: https://github.com/NixOS/nixpkgs/issues/114993#issuecomment-812951247 ./force-cs-variant.patch + + # The entry point binary $out/bin/racket is codesigned at least once. The + # following error is triggered as a result. + # (error 'add-ad-hoc-signature "file already has a signature") + # We always remove the existing signature then call add-ad-hoc-signature to + # circumvent this error. + ./force-remove-codesign-then-add.patch ]; preConfigure = '' @@ -89,10 +97,34 @@ stdenv.mkDerivation rec { --replace /bin/rm ${coreutils}/bin/rm \ --replace /bin/true ${coreutils}/bin/true done + + # The configure script forces using `libtool -o` as AR on Darwin. But, the + # `-o` option is only available from Apple libtool. GNU ar works here. + substituteInPlace src/ChezScheme/zlib/configure \ + --replace 'ARFLAGS="-o"' 'AR=ar; ARFLAGS="rc"' + mkdir src/build cd src/build - gappsWrapperArgs+=("--prefix" "LD_LIBRARY_PATH" ":" ${LD_LIBRARY_PATH}) + '' + lib.optionalString stdenv.isLinux '' + gappsWrapperArgs+=("--prefix" "LD_LIBRARY_PATH" ":" ${libPath}) + '' + lib.optionalString stdenv.isDarwin '' + gappsWrapperArgs+=("--prefix" "DYLD_LIBRARY_PATH" ":" ${libPath}) + '' + ; + + preBuild = lib.optionalString stdenv.isDarwin '' + # Cannot set DYLD_LIBRARY_PATH as an attr of this drv, becasue dynamic + # linker environment variables like this are purged. + # See: https://apple.stackexchange.com/a/212954/167199 + + # Make builders feed it to dlopen(...). Do not expose all of $libPath to + # DYLD_LIBRARY_PATH as the order of looking up symbols like + # `__cg_jpeg_resync_to_restart` will be messed up. Our libJPEG.dyllib + # expects it from our libTIFF.dylib, but instead it could not be found from + # the system `libTIFF.dylib`. DYLD_FALLBACK_LIBRARY_PATH has its own problem + # , too. + export DYLD_FALLBACK_LIBRARY_PATH="${libPath}" ''; shared = if stdenv.isDarwin then "dylib" else "shared"; @@ -118,6 +150,6 @@ stdenv.mkDerivation rec { 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" ]; + platforms = [ "x86_64-darwin" "x86_64-linux" "aarch64-linux" "aarch64-darwin" ]; }; } diff --git a/pkgs/development/interpreters/racket/force-remove-codesign-then-add.patch b/pkgs/development/interpreters/racket/force-remove-codesign-then-add.patch new file mode 100644 index 0000000000000..c34457ceb9506 --- /dev/null +++ b/pkgs/development/interpreters/racket/force-remove-codesign-then-add.patch @@ -0,0 +1,11 @@ +--- old/src/mac/codesign.rkt 2022-01-08 18:25:53.000000000 -0500 ++++ new/src/mac/codesign.rkt 2022-02-15 15:49:51.000000000 -0500 +@@ -17,6 +17,5 @@ + #:args (file) + file)) + +-(if remove? +- (remove-signature file) +- (add-ad-hoc-signature file)) ++(remove-signature file) ++(add-ad-hoc-signature file) diff --git a/pkgs/development/interpreters/racket/minimal.nix b/pkgs/development/interpreters/racket/minimal.nix index c7defc8bfa6b8..e56945ed651d1 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 = "sha256-3GdnP1D0XMW34u4mAronxKXe08A3tawM8cpSC7nDfWI="; + sha256 = "sha256-FZlUWvjtioe4S8gPetj7vdneVX6jEFguJo4j2wJsKAw="; }; meta = oldAttrs.meta // { @@ -14,7 +14,7 @@ racket.overrideAttrs (oldAttrs: rec { as well as libraries that live in collections. In particular, raco and the pkg library are still bundled. ''; - platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" ]; + platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ]; broken = false; # Minimal build does not require working FFI }; }) diff --git a/pkgs/development/interpreters/rakudo/default.nix b/pkgs/development/interpreters/rakudo/default.nix index 254228ea55bb5..9de6c1b12398d 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 = "2021.12"; + version = "2022.02"; src = fetchurl { url = "https://rakudo.org/dl/rakudo/rakudo-${version}.tar.gz"; - sha256 = "sha256-f1PSxxONE6sBaS1b19vCjz8p7Ya9ltUoCFb1WhqwVAY="; + sha256 = "sha256-am6dvMbZoWEKNMbsZ+LT9pTXsz6eCg8iRUMIn6f3EzI="; }; nativeBuildInputs = [ removeReferencesTo ]; diff --git a/pkgs/development/interpreters/rakudo/moarvm.nix b/pkgs/development/interpreters/rakudo/moarvm.nix index cbc283ce25f2f..41462e67a4c98 100644 --- a/pkgs/development/interpreters/rakudo/moarvm.nix +++ b/pkgs/development/interpreters/rakudo/moarvm.nix @@ -8,11 +8,11 @@ stdenv.mkDerivation rec { pname = "moarvm"; - version = "2021.12"; + version = "2022.02"; src = fetchurl { url = "https://moarvm.org/releases/MoarVM-${version}.tar.gz"; - sha256 = "sha256-1Ju+sQ2WFsLYen+t0ca7elzhHBnHxEu7i+928ltQXE8="; + sha256 = "sha256-T5PNzmuKVloyKCuzjMlxzv63H10CLIUMM47oFFV07pY="; }; postPatch = '' diff --git a/pkgs/development/interpreters/rakudo/nqp.nix b/pkgs/development/interpreters/rakudo/nqp.nix index 8a64430d24a0c..57cdef94c02d2 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 = "2021.12"; + version = "2022.02"; src = fetchurl { url = "https://github.com/raku/nqp/releases/download/${version}/nqp-${version}.tar.gz"; - sha256 = "sha256-Dh1TT9HuYaTIByMJuvvARmDprnLYhhjaoOjxUCLw2RM="; + sha256 = "sha256-JdPJl0XNhPQEmpvZzya7XcgXklq6r+ccm9tohBzbGLE="; }; buildInputs = [ perl ]; diff --git a/pkgs/development/interpreters/rakudo/zef.nix b/pkgs/development/interpreters/rakudo/zef.nix index d151c6765bf3a..7a809875111f4 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.13.4"; + version = "0.13.7"; src = fetchFromGitHub { owner = "ugexe"; repo = "zef"; rev = "v${version}"; - sha256 = "sha256-zTgXMICuLn612bmL5e6GP5aBQ4uOcSLfce0PCRYGob0="; + sha256 = "sha256-FEQwe9MkP+tFZgXiR3hrNS+Jyavj85oYql3uOLP3nwc="; }; nativeBuildInputs = [ makeWrapper ]; diff --git a/pkgs/development/interpreters/regina/default.upstream b/pkgs/development/interpreters/regina/default.upstream deleted file mode 100644 index 481d9848f8301..0000000000000 --- a/pkgs/development/interpreters/regina/default.upstream +++ /dev/null @@ -1,5 +0,0 @@ -url https://sourceforge.net/projects/regina-rexx/files/regina-rexx/ -SF_version_dir -SF_version_tarball -SF_redirect -minimize_overwrite diff --git a/pkgs/development/interpreters/renpy/default.nix b/pkgs/development/interpreters/renpy/default.nix deleted file mode 100644 index b0c10c8a65202..0000000000000 --- a/pkgs/development/interpreters/renpy/default.nix +++ /dev/null @@ -1,62 +0,0 @@ -{ lib, stdenv, fetchurl, python2Packages, pkg-config, SDL2 -, libpng, ffmpeg, freetype, glew, libGL, libGLU, fribidi, zlib -, glib -}: - -with python2Packages; - -stdenv.mkDerivation rec { - pname = "renpy"; - version = "7.3.5"; - - meta = with lib; { - description = "Ren'Py Visual Novel Engine"; - homepage = "https://renpy.org/"; - license = licenses.mit; - platforms = platforms.linux; - }; - - src = fetchurl { - url = "https://www.renpy.org/dl/${version}/renpy-${version}-source.tar.bz2"; - sha256 = "1anr5cfbvbsbik4v4rvrkdkciwhg700k4lydfbs4n85raimz9mw4"; - }; - - patches = [ - ./launcherenv.patch - ]; - - postPatch = '' - substituteInPlace launcher/game/choose_directory.rpy --replace /usr/bin/python ${python.interpreter} - ''; - - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ - python cython wrapPython tkinter - SDL2 libpng ffmpeg freetype glew libGLU libGL fribidi zlib pygame_sdl2 glib - ]; - - pythonPath = [ pygame_sdl2 tkinter ]; - - RENPY_DEPS_INSTALL = lib.concatStringsSep "::" (map (path: path) [ - SDL2 SDL2.dev libpng ffmpeg ffmpeg.out freetype glew.dev glew.out libGLU libGL fribidi zlib - ]); - - buildPhase = '' - python module/setup.py build - ''; - - installPhase = '' - mkdir -p $out/share/renpy - cp -vr * $out/share/renpy - rm -rf $out/share/renpy/module - - python module/setup.py install --prefix=$out --install-lib=$out/share/renpy/module - - makeWrapper ${python}/bin/python $out/bin/renpy \ - --set PYTHONPATH $PYTHONPATH \ - --set RENPY_BASE $out/share/renpy \ - --add-flags "-O $out/share/renpy/renpy.py" - ''; - - NIX_CFLAGS_COMPILE = "-I${pygame_sdl2}/include/${python.libPrefix}"; -} diff --git a/pkgs/development/interpreters/renpy/launcherenv.patch b/pkgs/development/interpreters/renpy/launcherenv.patch deleted file mode 100644 index 85a6c6439b9c0..0000000000000 --- a/pkgs/development/interpreters/renpy/launcherenv.patch +++ /dev/null @@ -1,14 +0,0 @@ -# The launcher game starts projects in a separate python process -# with the -E flag, which prevents the nix set PYTHONPATH envvar -# from taking effect, preventing the loading of pygame_sdl2 ---- a/launcher/game/project.rpy -+++ b/launcher/game/project.rpy -@@ -239,7 +239,7 @@ - raise Exception("Python interpreter not found: %r", executables) - - # Put together the basic command line. -- cmd = [ executable, "-EO", sys.argv[0] ] -+ cmd = [ executable, "-O", sys.argv[0] ] - - cmd.append(self.path) - cmd.extend(args) diff --git a/pkgs/development/interpreters/ruby/default.nix b/pkgs/development/interpreters/ruby/default.nix index 7ab397bfc191b..c676a7b05e55e 100644 --- a/pkgs/development/interpreters/ruby/default.nix +++ b/pkgs/development/interpreters/ruby/default.nix @@ -17,21 +17,10 @@ let # Contains the ruby version heuristics rubyVersion = import ./ruby-version.nix { inherit lib; }; - # Needed during postInstall - buildRuby = - if stdenv.hostPlatform == stdenv.buildPlatform - then "$out/bin/ruby" - else "${buildPackages.ruby}/bin/ruby"; - generic = { version, sha256 }: let ver = version; tag = ver.gitTag; atLeast30 = lib.versionAtLeast ver.majMin "3.0"; - baseruby = self.override { - useRailsExpress = false; - docSupport = false; - rubygemsSupport = false; - }; self = lib.makeOverridable ( { stdenv, buildPackages, lib , fetchurl, fetchpatch, fetchFromSavannah, fetchFromGitHub @@ -59,6 +48,12 @@ let , buildEnv, bundler, bundix , libiconv, libobjc, libunwind, Foundation , makeWrapper, buildRubyGem, defaultGemConfig + , baseRuby ? buildPackages.ruby.override { + useRailsExpress = false; + docSupport = false; + rubygemsSupport = false; + } + , useBaseRuby ? stdenv.hostPlatform != stdenv.buildPlatform || useRailsExpress }: stdenv.mkDerivation rec { pname = "ruby"; @@ -81,7 +76,7 @@ let nativeBuildInputs = [ autoreconfHook bison ] ++ (op docSupport groff) - ++ op (stdenv.buildPlatform != stdenv.hostPlatform) buildPackages.ruby; + ++ op useBaseRuby baseRuby; buildInputs = [ autoconf ] ++ (op fiddleSupport libffi) ++ (ops cursesSupport [ ncurses readline ]) @@ -104,7 +99,7 @@ let inherit patchSet useRailsExpress ops fetchpatch; patchLevel = ver.patchLevel; }).${ver.majMinTiny} - ++ [ ./do-not-regenerate-revision.h.patch ] + ++ op (lib.versionOlder ver.majMin "3.1") ./do-not-regenerate-revision.h.patch ++ op (atLeast30 && useRailsExpress) ./do-not-update-gems-baseruby.patch # Ruby prior to 3.0 has a bug the installer (tools/rbinstall.rb) but # the resulting error was swallowed. Newer rubygems no longer swallows @@ -133,24 +128,24 @@ let sed -i ext/io/console/io-console.gemspec -e '/s\.date/d' ''; - configureFlags = ["--enable-shared" "--enable-pthread" "--with-soname=ruby-${version}"] - ++ op useRailsExpress "--with-baseruby=${baseruby}/bin/ruby" - ++ op (!jitSupport) "--disable-jit-support" - ++ op (!docSupport) "--disable-install-doc" - ++ op (jemallocSupport) "--with-jemalloc" - ++ ops stdenv.isDarwin [ - # on darwin, we have /usr/include/tk.h -- so the configure script detects - # that tk is installed - "--with-out-ext=tk" - # on yosemite, "generating encdb.h" will hang for a very long time without this flag - "--with-setjmp-type=setjmp" - ] - ++ op (stdenv.hostPlatform != stdenv.buildPlatform) - "--with-baseruby=${buildRuby}"; + configureFlags = [ + (lib.enableFeature (!stdenv.hostPlatform.isStatic) "shared") + (lib.enableFeature true "pthread") + (lib.withFeatureAs true "soname" "ruby-${version}") + (lib.withFeatureAs useBaseRuby "baseruby" "${baseRuby}/bin/ruby") + (lib.enableFeature jitSupport "jit-support") + (lib.enableFeature docSupport "install-doc") + (lib.withFeature jemallocSupport "jemalloc") + (lib.withFeatureAs docSupport "ridir" "${placeholder "devdoc"}/share/ri") + ] ++ ops stdenv.isDarwin [ + # on darwin, we have /usr/include/tk.h -- so the configure script detects + # that tk is installed + "--with-out-ext=tk" + # on yosemite, "generating encdb.h" will hang for a very long time without this flag + "--with-setjmp-type=setjmp" + ]; preConfigure = opString docSupport '' - configureFlagsArray+=("--with-ridir=$devdoc/share/ri") - # rdoc creates XDG_DATA_DIR (defaulting to $HOME/.local/share) even if # it's not going to be used. export HOME=$TMPDIR @@ -171,6 +166,8 @@ let # Bundler tries to create this directory postInstall = '' rbConfig=$(find $out/lib/ruby -name rbconfig.rb) + # Remove references to the build environment from the closure + sed -i '/^ CONFIG\["\(BASERUBY\|SHELL\|GREP\|EGREP\|MKDIR_P\|MAKEDIRS\|INSTALL\)"\]/d' $rbConfig # Remove unnecessary groff reference from runtime closure, since it's big sed -i '/NROFF/d' $rbConfig ${ @@ -208,13 +205,15 @@ let # Add rbconfig shim so ri can find docs mkdir -p $devdoc/lib/ruby/site_ruby cp ${./rbconfig.rb} $devdoc/lib/ruby/site_ruby/rbconfig.rb - '' + opString useRailsExpress '' + '' + opString useBaseRuby '' # Prevent the baseruby from being included in the closure. - sed -i '/^ CONFIG\["BASERUBY"\]/d' $rbConfig - sed -i "s|'--with-baseruby=${baseruby}/bin/ruby'||" $rbConfig + ${removeReferencesTo}/bin/remove-references-to \ + -t ${baseRuby} \ + $rbConfig $out/lib/libruby* ''; - disallowedRequisites = op (!jitSupport) stdenv.cc.cc; + disallowedRequisites = op (!jitSupport) stdenv.cc.cc + ++ op useBaseRuby baseRuby; meta = with lib; { description = "The Ruby language"; @@ -227,7 +226,6 @@ let passthru = rec { version = ver; rubyEngine = "ruby"; - baseRuby = baseruby; libPath = "lib/${rubyEngine}/${ver.libDir}"; gemPath = "lib/${rubyEngine}/gems/${ver.libDir}"; devEnv = import ./dev.nix { @@ -246,6 +244,8 @@ let minorVersion = ver.minor; teenyVersion = ver.tiny; patchLevel = ver.patchLevel; + } // lib.optionalAttrs useBaseRuby { + inherit baseRuby; }; } ) args; in self; @@ -266,4 +266,12 @@ in { git = "1q19w5i1jkfxn7qq6f9v9ngax9h52gxwijk7hp312dx6amwrkaim"; }; }; + + ruby_3_1 = generic { + version = rubyVersion "3" "1" "0" ""; + sha256 = { + src = "sha256-UKBQTG7ctNYc5rjP292qlXBxlfqw7Ne16SZUsqlBKFQ="; + git = "sha256-TcsoWY+zVZeue1/ypV1L0WERp1UVK35WtVtYPYiJh4c="; + }; + }; } diff --git a/pkgs/development/interpreters/ruby/patchsets.nix b/pkgs/development/interpreters/ruby/patchsets.nix index 31a9a9f1c08db..2e51670a9f816 100644 --- a/pkgs/development/interpreters/ruby/patchsets.nix +++ b/pkgs/development/interpreters/ruby/patchsets.nix @@ -10,4 +10,6 @@ "${patchSet}/patches/ruby/3.0/head/railsexpress/01-improve-gc-stats.patch" "${patchSet}/patches/ruby/3.0/head/railsexpress/02-malloc-trim.patch" ]; + "3.1.0" = ops useRailsExpress [ # no patches yet (2021-12-25) + ]; } diff --git a/pkgs/development/interpreters/spidermonkey/68.nix b/pkgs/development/interpreters/spidermonkey/68.nix deleted file mode 100644 index 5cfb2de919f11..0000000000000 --- a/pkgs/development/interpreters/spidermonkey/68.nix +++ /dev/null @@ -1,102 +0,0 @@ -{ lib, stdenv, fetchurl, fetchpatch, autoconf213, pkg-config, perl, python2, python3, zip, buildPackages -, which, readline, zlib, icu, cargo, rustc, llvmPackages }: - -with lib; - -let - python3Env = buildPackages.python3.withPackages (p: [p.six]); -in stdenv.mkDerivation rec { - pname = "spidermonkey"; - version = "68.12.0"; - - src = fetchurl { - url = "mirror://mozilla/firefox/releases/${version}esr/source/firefox-${version}esr.source.tar.xz"; - sha256 = "1k17pi4zh9hrvkzbw4rzzw879a15hpvwriylp75wl22rl7r2nsdf"; - }; - - patches = [ - # Backport a change from Firefox 75 that fixes finding the - # location of clang and libclang. - (fetchpatch { - url = "https://hg.mozilla.org/mozilla-central/raw-rev/ccd1356fc8f1d0bfa9d896e88d3cc924425623da"; - sha256 = "005g3mfmal9nw32khrgyiv3221z7pazfhhm2qvgc8d48i2yzj3j0"; - }) - ]; - - outputs = [ "out" "dev" ]; - setOutputFlags = false; # Configure script only understands --includedir - - nativeBuildInputs = [ - autoconf213 - pkg-config - 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" - - "--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 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 ]; - badPlatforms = [ "riscv32-linux" "riscv64-linux" ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/development/interpreters/spidermonkey/78.nix b/pkgs/development/interpreters/spidermonkey/78.nix index cd745c5ba9e03..4f525c8f0a5b8 100644 --- a/pkgs/development/interpreters/spidermonkey/78.nix +++ b/pkgs/development/interpreters/spidermonkey/78.nix @@ -35,6 +35,15 @@ stdenv.mkDerivation rec { url = "https://salsa.debian.org/mozilla-team/firefox/commit/fd6847c9416f9eebde636e21d794d25d1be8791d.patch"; sha256 = "02b7zwm6vxmk61aj79a6m32s1k5sr0hwm3q1j4v6np9jfyd10g1j"; }) + + # Remove this when updating to 79 - The patches are already applied upstream + # https://bugzilla.mozilla.org/show_bug.cgi?id=1318905 + + # Combination of 3 changesets, modified to apply on 78: + # - https://hg.mozilla.org/mozilla-central/rev/06d7e1b6b7e7 + # - https://hg.mozilla.org/mozilla-central/rev/ec48f15d085c + # - https://hg.mozilla.org/mozilla-central/rev/6803dda74d33 + ./add-riscv64-support.patch ]; outputs = [ "out" "dev" ]; @@ -92,10 +101,16 @@ stdenv.mkDerivation rec { "--target=${stdenv.hostPlatform.config}" ]; + # mkDerivation by default appends --build/--host to configureFlags when cross compiling + # These defaults are bogus for Spidermonkey - avoid passing them by providing an empty list configurePlatforms = [ ]; depsBuildBuild = [ buildPackages.stdenv.cc ]; + # cc-rs insists on using -mabi=lp64 (soft-float) for riscv64, + # while we have a double-float toolchain + NIX_CFLAGS_COMPILE = lib.optionalString (with stdenv.hostPlatform; isRiscV && is64bit) "-mabi=lp64d"; + # Remove unnecessary static lib preFixup = '' moveToOutput bin/js78-config "$dev" diff --git a/pkgs/development/interpreters/spidermonkey/91.nix b/pkgs/development/interpreters/spidermonkey/91.nix index a8927e79f9a4c..6be61a1210b60 100644 --- a/pkgs/development/interpreters/spidermonkey/91.nix +++ b/pkgs/development/interpreters/spidermonkey/91.nix @@ -20,11 +20,11 @@ stdenv.mkDerivation rec { pname = "spidermonkey"; - version = "91.4.0"; + version = "91.6.0"; src = fetchurl { url = "mirror://mozilla/firefox/releases/${version}esr/source/firefox-${version}esr.source.tar.xz"; - sha256 = "09xkzk27krzyj1qx8cjjn2zpnws1cncka75828kk7ychnjfq48p7"; + sha512 = "3dd1929f93cdd087a93fc3597f32d9005c986b59832954e01a8c2472b179c92ad611eaa73d3fc000a08b838a0b70da73ff5ba82d6009160655ba6894cf04520e"; }; outputs = [ "out" "dev" ]; @@ -88,6 +88,10 @@ stdenv.mkDerivation rec { "--target=${stdenv.hostPlatform.config}" ]; + # mkDerivation by default appends --build/--host to configureFlags when cross compiling + # These defaults are bogus for Spidermonkey - avoid passing them by providing an empty list + configurePlatforms = [ ]; + depsBuildBuild = [ buildPackages.stdenv.cc ]; # Remove unnecessary static lib diff --git a/pkgs/development/interpreters/spidermonkey/add-riscv64-support.patch b/pkgs/development/interpreters/spidermonkey/add-riscv64-support.patch new file mode 100644 index 0000000000000..9d5d7c5507dc1 --- /dev/null +++ b/pkgs/development/interpreters/spidermonkey/add-riscv64-support.patch @@ -0,0 +1,123 @@ +# HG changeset patch +# User John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de> +# Date 1592464269 0 +# Thu Jun 18 07:11:09 2020 +0000 +# Node ID 5de7d747a962df5f8aefc016a62d7270ac18879e +# Parent e4b11f027efc1f8c2710ae3f52487a8f10a8fb39 +Bug 1318905 - build: Add riscv64 as target architecture to mozbuild r=glandium + +Adds the basic definitions for riscv64 to mozbuild, allowing to build Spidermonkey. + +Differential Revision: https://phabricator.services.mozilla.com/D78623 + +diff -r e4b11f027efc -r 5de7d747a962 build/moz.configure/init.configure +--- a/build/moz.configure/init.configure Sun May 31 17:11:57 2020 +0000 ++++ b/build/moz.configure/init.configure Thu Jun 18 07:11:09 2020 +0000 +@@ -741,6 +741,9 @@ + elif cpu.startswith('aarch64'): + canonical_cpu = 'aarch64' + endianness = 'little' ++ elif cpu in ('riscv64', 'riscv64gc'): ++ canonical_cpu = 'riscv64' ++ endianness = 'little' + elif cpu == 'sh4': + canonical_cpu = 'sh4' + endianness = 'little' +diff -r e4b11f027efc -r 5de7d747a962 python/mozbuild/mozbuild/configure/constants.py +--- a/python/mozbuild/mozbuild/configure/constants.py Sun May 31 17:11:57 2020 +0000 ++++ b/python/mozbuild/mozbuild/configure/constants.py Thu Jun 18 07:11:09 2020 +0000 +@@ -49,6 +49,7 @@ + 'mips64': 64, + 'ppc': 32, + 'ppc64': 64, ++ 'riscv64': 64, + 's390': 32, + 's390x': 64, + 'sh4': 32, +@@ -87,6 +88,7 @@ + ('sparc', '__sparc__'), + ('mips64', '__mips64'), + ('mips32', '__mips__'), ++ ('riscv64', '__riscv && __riscv_xlen == 64'), + ('sh4', '__sh__'), + )) + +diff -r e4b11f027efc -r 5de7d747a962 python/mozbuild/mozbuild/test/configure/test_toolchain_configure.py +--- a/python/mozbuild/mozbuild/test/configure/test_toolchain_configure.py Sun May 31 17:11:57 2020 +0000 ++++ b/python/mozbuild/mozbuild/test/configure/test_toolchain_configure.py Thu Jun 18 07:11:09 2020 +0000 +@@ -1208,6 +1208,10 @@ + 'mips-unknown-linux-gnu': big_endian + { + '__mips__': 1, + }, ++ 'riscv64-unknown-linux-gnu': little_endian + { ++ '__riscv': 1, ++ '__riscv_xlen': 64, ++ }, + 'sh4-unknown-linux-gnu': little_endian + { + '__sh__': 1, + }, +# HG changeset patch +# User John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de> +# Date 1592464269 0 +# Thu Jun 18 07:11:09 2020 +0000 +# Node ID e3d924797cb2d508ff938414168e98ccf66f07fe +# Parent 5de7d747a962df5f8aefc016a62d7270ac18879e +Bug 1318905 - js:jit: Enable AtomicOperations-feeling-lucky.h on riscv64 r=lth + +This allows the build on riscv64 to use the atomic operations provided by GCC. + +Differential Revision: https://phabricator.services.mozilla.com/D78624 + +diff -r 5de7d747a962 -r e3d924797cb2 js/src/jit/AtomicOperations.h +--- a/js/src/jit/AtomicOperations.h Thu Jun 18 07:11:09 2020 +0000 ++++ b/js/src/jit/AtomicOperations.h Thu Jun 18 07:11:09 2020 +0000 +@@ -391,7 +391,7 @@ + #elif defined(__ppc__) || defined(__PPC__) || defined(__sparc__) || \ + defined(__ppc64__) || defined(__PPC64__) || defined(__ppc64le__) || \ + defined(__PPC64LE__) || defined(__alpha__) || defined(__hppa__) || \ +- defined(__sh__) || defined(__s390__) || defined(__s390x__) ++ defined(__sh__) || defined(__s390__) || defined(__s390x__) || defined(__riscv) + # include "jit/shared/AtomicOperations-feeling-lucky.h" + #else + # error "No AtomicOperations support provided for this platform" +diff -r 5de7d747a962 -r e3d924797cb2 js/src/jit/shared/AtomicOperations-feeling-lucky-gcc.h +--- a/js/src/jit/shared/AtomicOperations-feeling-lucky-gcc.h Thu Jun 18 07:11:09 2020 +0000 ++++ b/js/src/jit/shared/AtomicOperations-feeling-lucky-gcc.h Thu Jun 18 07:11:09 2020 +0000 +@@ -63,6 +63,11 @@ + # define HAS_64BIT_LOCKFREE + #endif + ++#if defined(__riscv) && __riscv_xlen == 64 ++# define HAS_64BIT_ATOMICS ++# define HAS_64BIT_LOCKFREE ++#endif ++ + #ifdef __sparc__ + # ifdef __LP64__ + # define HAS_64BIT_ATOMICS +# HG changeset patch +# User John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de> +# Date 1592464269 0 +# Thu Jun 18 07:11:09 2020 +0000 +# Node ID 3f652d12b8bc0bd213020d488ecb4d3710bb11fa +# Parent e3d924797cb2d508ff938414168e98ccf66f07fe +Bug 1318905 - mfbt:tests: Define RETURN_INSTR for riscv64 in TestPoisonArea r=glandium + +Define RETURN_INSTR for riscv64 in TestPoisonArea, i.e. the riscv64 assembly +opcodes for "ret ; ret". + +Differential Revision: https://phabricator.services.mozilla.com/D78625 + +diff -r e3d924797cb2 -r 3f652d12b8bc mfbt/tests/TestPoisonArea.cpp +--- a/mfbt/tests/TestPoisonArea.cpp Thu Jun 18 07:11:09 2020 +0000 ++++ b/mfbt/tests/TestPoisonArea.cpp Thu Jun 18 07:11:09 2020 +0000 +@@ -132,6 +132,9 @@ + #elif defined _ARCH_PPC || defined _ARCH_PWR || defined _ARCH_PWR2 + # define RETURN_INSTR 0x4E800020 /* blr */ + ++#elif defined __riscv ++# define RETURN_INSTR 0x80828082 /* ret; ret */ ++ + #elif defined __sparc || defined __sparcv9 + # define RETURN_INSTR 0x81c3e008 /* retl */ + diff --git a/pkgs/development/interpreters/supercollider/default.nix b/pkgs/development/interpreters/supercollider/default.nix index 49cf6e095d1fd..2a0ef3b0957c6 100644 --- a/pkgs/development/interpreters/supercollider/default.nix +++ b/pkgs/development/interpreters/supercollider/default.nix @@ -9,11 +9,11 @@ let in mkDerivation rec { pname = "supercollider"; - version = "3.12.1"; + version = "3.12.2"; src = fetchurl { url = "https://github.com/supercollider/supercollider/releases/download/Version-${version}/SuperCollider-${version}-Source.tar.bz2"; - sha256 = "sha256-neYId2hJRAMx4+ZFm+5TzYuUbMRfa9icyqm2UYac/Cs="; + sha256 = "sha256-1QYorCgSwBK+SVAm4k7HZirr1j+znPmVicFmJdvO3g4="; }; hardeningDisable = [ "stackprotector" ]; diff --git a/pkgs/development/interpreters/trealla/default.nix b/pkgs/development/interpreters/trealla/default.nix index 6c6268011a73c..d6dc01348a1d4 100644 --- a/pkgs/development/interpreters/trealla/default.nix +++ b/pkgs/development/interpreters/trealla/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "trealla"; - version = "1.12.0"; + version = "1.20.31"; src = fetchFromGitHub { owner = "infradig"; repo = "trealla"; rev = "v${version}"; - sha256 = "sha256-5gMf62WSGf46Bg8CaI9weSMRjrdGiuxtaDV9FrS2xO8="; + sha256 = "sha256-Yol+bbxC5cCtCIZxP5Sa8R3ev1LAopc/oQa6Zd1nS8A="; }; postPatch = '' diff --git a/pkgs/development/interpreters/wasmtime/default.nix b/pkgs/development/interpreters/wasmtime/default.nix index 675a7cdd6bc04..816b854b99eb2 100644 --- a/pkgs/development/interpreters/wasmtime/default.nix +++ b/pkgs/development/interpreters/wasmtime/default.nix @@ -1,4 +1,4 @@ -{ rustPlatform, fetchFromGitHub, lib, python, cmake, llvmPackages, clang, stdenv, darwin }: +{ rustPlatform, fetchFromGitHub, lib, python3, cmake, llvmPackages, clang, stdenv, darwin }: rustPlatform.buildRustPackage rec { pname = "wasmtime"; @@ -14,7 +14,7 @@ rustPlatform.buildRustPackage rec { cargoSha256 = "1wlig9gls7s1k1swxwhl82vfga30bady8286livxc4y2zp0vb18w"; - nativeBuildInputs = [ python cmake clang ]; + nativeBuildInputs = [ python3 cmake clang ]; buildInputs = [ llvmPackages.libclang ] ++ lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Security ]; LIBCLANG_PATH = "${llvmPackages.libclang.lib}/lib"; diff --git a/pkgs/development/interpreters/yex-lang/default.nix b/pkgs/development/interpreters/yex-lang/default.nix new file mode 100644 index 0000000000000..738b73d8e4c8c --- /dev/null +++ b/pkgs/development/interpreters/yex-lang/default.nix @@ -0,0 +1,24 @@ +{ lib, stdenv, rustPlatform, fetchFromGitHub }: + +rustPlatform.buildRustPackage rec { + pname = "yex-lang"; + version = "unstable-2021-12-25"; + + src = fetchFromGitHub { + owner = "nonamescm"; + repo = "yex-lang"; + rev = "a97def1431b73b8693700f530ec023f1776eaf83"; + hash = "sha256-CEzJtlEVMvMnRyUKdko1UDTluv8Fc88tfOpKGIFMnRw="; + }; + + cargoSha256 = "sha256-mHMenqcdt9Yjm/6H1Ywf637Sv8ddq6a4Eu2/A/jX9gQ="; + + meta = with lib; { + homepage = "https://github.com/nonamesc/yex-lang"; + description = "A cool functional scripting language written in rust"; + license = licenses.mit; + maintainers = with maintainers; [ AndersonTorres ]; + platforms = platforms.unix; + broken = stdenv.isAarch64 && stdenv.isLinux; + }; +} |