diff options
author | Alyssa Ross <hi@alyssa.is> | 2022-12-06 19:57:55 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2023-02-08 13:48:30 +0000 |
commit | bf3aadfdd39aa197e18bade671fab6726349ffa4 (patch) | |
tree | 698567af766ed441d757b57a7b21e68d4a342a2b /nixpkgs/pkgs/development/interpreters | |
parent | f4afc5a01d9539ce09e47494e679c51f80723d07 (diff) | |
parent | 99665eb45f58d959d2cb9e49ddb960c79d596f33 (diff) | |
download | nixlib-bf3aadfdd39aa197e18bade671fab6726349ffa4.tar nixlib-bf3aadfdd39aa197e18bade671fab6726349ffa4.tar.gz nixlib-bf3aadfdd39aa197e18bade671fab6726349ffa4.tar.bz2 nixlib-bf3aadfdd39aa197e18bade671fab6726349ffa4.tar.lz nixlib-bf3aadfdd39aa197e18bade671fab6726349ffa4.tar.xz nixlib-bf3aadfdd39aa197e18bade671fab6726349ffa4.tar.zst nixlib-bf3aadfdd39aa197e18bade671fab6726349ffa4.zip |
Merge commit '99665eb45f58d959d2cb9e49ddb960c79d596f33'
Diffstat (limited to 'nixpkgs/pkgs/development/interpreters')
130 files changed, 2297 insertions, 2111 deletions
diff --git a/nixpkgs/pkgs/development/interpreters/acl2/0001-Fix-some-paths-for-Nix-build.patch b/nixpkgs/pkgs/development/interpreters/acl2/0001-Fix-some-paths-for-Nix-build.patch index 7726f17b41ed..fc46fa0f0fc5 100644 --- a/nixpkgs/pkgs/development/interpreters/acl2/0001-Fix-some-paths-for-Nix-build.patch +++ b/nixpkgs/pkgs/development/interpreters/acl2/0001-Fix-some-paths-for-Nix-build.patch @@ -1,22 +1,19 @@ -From d0136f350b82ae845d56029db43d153c91d5e494 Mon Sep 17 00:00:00 2001 +From aed1c4b0be7576d20eed81070da2c6f92573df18 Mon Sep 17 00:00:00 2001 From: Keshav Kini <keshav.kini@gmail.com> Date: Sat, 30 May 2020 21:27:47 -0700 Subject: [PATCH] Fix some paths for Nix build --- - books/build/features.sh | 1 + - .../ipasir/load-ipasir-sharedlib-raw.lsp | 6 +-- - books/projects/smtlink/config.lisp | 2 +- - books/projects/smtlink/examples/examples.lisp | 4 +- - books/projects/smtlink/smtlink-config | 2 +- - .../cl+ssl-20200610-git/src/reload.lisp | 53 +------------------ - 6 files changed, 8 insertions(+), 60 deletions(-) + books/build/features.sh | 1 + + books/centaur/ipasir/load-ipasir-sharedlib-raw.lsp | 6 +----- + .../bundle/software/cl+ssl-20220707-git/src/reload.lisp | 3 +++ + 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/books/build/features.sh b/books/build/features.sh -index d45a7aa61..27256b7cd 100755 +index feb5b2b59c..4b654e08bc 100755 --- a/books/build/features.sh +++ b/books/build/features.sh -@@ -122,6 +122,7 @@ EOF +@@ -125,6 +125,7 @@ EOF fi echo "Determining whether an ipasir shared library is installed" 1>&2 @@ -25,7 +22,7 @@ index d45a7aa61..27256b7cd 100755 cat >> Makefile-features <<EOF export OS_HAS_IPASIR ?= 1 diff --git a/books/centaur/ipasir/load-ipasir-sharedlib-raw.lsp b/books/centaur/ipasir/load-ipasir-sharedlib-raw.lsp -index 762e4ad4c..c9802cb58 100644 +index 762e4ad4c0..c9802cb582 100644 --- a/books/centaur/ipasir/load-ipasir-sharedlib-raw.lsp +++ b/books/centaur/ipasir/load-ipasir-sharedlib-raw.lsp @@ -30,11 +30,7 @@ @@ -41,114 +38,20 @@ index 762e4ad4c..c9802cb58 100644 (error () (er hard? 'load-ipasir-shardlib-raw "Couldn't load ipasir shared library from ~s0." libname)))) -diff --git a/books/projects/smtlink/config.lisp b/books/projects/smtlink/config.lisp -index c74073174..8d92355f7 100644 ---- a/books/projects/smtlink/config.lisp -+++ b/books/projects/smtlink/config.lisp -@@ -51,7 +51,7 @@ where the system books are.")) - (make-smtlink-config :interface-dir interface-dir - :smt-module "ACL2_to_Z3" - :smt-class "ACL22SMT" -- :smt-cmd "/usr/bin/env python" -+ :smt-cmd "python" - :pythonpath ""))) - - ;; ----------------------------------------------------------------- -diff --git a/books/projects/smtlink/examples/examples.lisp b/books/projects/smtlink/examples/examples.lisp -index 90534892f..4ab98b2f0 100644 ---- a/books/projects/smtlink/examples/examples.lisp -+++ b/books/projects/smtlink/examples/examples.lisp -@@ -75,7 +75,7 @@ Subgoal 2 - Subgoal 2.2 - Subgoal 2.2' - Using default SMT-trusted-cp... --; SMT solver: `/usr/bin/env python /tmp/py_file/smtlink.w59zR`: 0.52 sec, 7,904 bytes -+; SMT solver: `python /tmp/py_file/smtlink.w59zR`: 0.52 sec, 7,904 bytes - Proved! - Subgoal 2.2'' - Subgoal 2.1 -@@ -139,7 +139,7 @@ read back into ACL2. Below are the outputs from this clause processor called - - @({ - Using default SMT-trusted-cp... --; SMT solver: `/usr/bin/env python /tmp/py_file/smtlink.w59zR`: 0.52 sec, 7,904 bytes -+; SMT solver: `python /tmp/py_file/smtlink.w59zR`: 0.52 sec, 7,904 bytes - Proved! - }) - -diff --git a/books/projects/smtlink/smtlink-config b/books/projects/smtlink/smtlink-config -index 0d2703545..0f58904ea 100644 ---- a/books/projects/smtlink/smtlink-config -+++ b/books/projects/smtlink/smtlink-config -@@ -1 +1 @@ --smt-cmd=/usr/bin/env python -+smt-cmd=python -diff --git a/books/quicklisp/bundle/software/cl+ssl-20200610-git/src/reload.lisp b/books/quicklisp/bundle/software/cl+ssl-20200610-git/src/reload.lisp -index e5db28645..65eb818a1 100644 ---- a/books/quicklisp/bundle/software/cl+ssl-20200610-git/src/reload.lisp -+++ b/books/quicklisp/bundle/software/cl+ssl-20200610-git/src/reload.lisp -@@ -37,59 +37,10 @@ +diff --git a/books/quicklisp/bundle/software/cl+ssl-20220707-git/src/reload.lisp b/books/quicklisp/bundle/software/cl+ssl-20220707-git/src/reload.lisp +index d409b4440f..5c65c5b4da 100644 +--- a/books/quicklisp/bundle/software/cl+ssl-20220707-git/src/reload.lisp ++++ b/books/quicklisp/bundle/software/cl+ssl-20220707-git/src/reload.lisp +@@ -87,6 +87,9 @@ sudo rm /usr/local/lib/libcrypto.dylib /usr/local/lib/libssl.dylib + ;; ;; These are 32-bit only. - (cffi:define-foreign-library libcrypto -- (:windows (:or #+(and windows x86-64) "libcrypto-1_1-x64.dll" -- #+(and windows x86) "libcrypto-1_1.dll" -- "libeay32.dll")) -- (:openbsd "libcrypto.so") -- (:darwin (:or "/opt/local/lib/libcrypto.dylib" ;; MacPorts -- "/sw/lib/libcrypto.dylib" ;; Fink -- "/usr/local/opt/openssl/lib/libcrypto.dylib" ;; Homebrew -- "/usr/local/lib/libcrypto.dylib" ;; personalized install -- "libcrypto.dylib" ;; default system libcrypto, which may have insufficient crypto -- "/usr/lib/libcrypto.dylib")) -- (:cygwin (:or "cygcrypto-1.1.dll" "cygcrypto-1.0.0.dll"))) -+ (t "@libcrypto@")) - - (cffi:define-foreign-library libssl -- (:windows (:or #+(and windows x86-64) "libssl-1_1-x64.dll" -- #+(and windows x86) "libssl-1_1.dll" -- "libssl32.dll" -- "ssleay32.dll")) -- ;; The default OS-X libssl seems have had insufficient crypto algos -- ;; (missing TLSv1_[1,2]_XXX methods, -- ;; see https://github.com/cl-plus-ssl/cl-plus-ssl/issues/56) -- ;; so first try to load possible custom installations of libssl -- (:darwin (:or "/opt/local/lib/libssl.dylib" ;; MacPorts -- "/sw/lib/libssl.dylib" ;; Fink -- "/usr/local/opt/openssl/lib/libssl.dylib" ;; Homebrew -- "/usr/local/lib/libssl.dylib" ;; personalized install -- "libssl.dylib" ;; default system libssl, which may have insufficient crypto -- "/usr/lib/libssl.dylib")) -- (:solaris (:or "/lib/64/libssl.so" -- "libssl.so.0.9.8" "libssl.so" "libssl.so.4")) -- ;; Unlike some other systems, OpenBSD linker, -- ;; when passed library name without versions at the end, -- ;; will locate the library with highest macro.minor version, -- ;; so we can just use just "libssl.so". -- ;; More info at https://github.com/cl-plus-ssl/cl-plus-ssl/pull/2. -- (:openbsd "libssl.so") -- ((and :unix (not :cygwin)) (:or "libssl.so.1.1" -- "libssl.so.1.0.2m" -- "libssl.so.1.0.2k" -- "libssl.so.1.0.2" -- "libssl.so.1.0.1l" -- "libssl.so.1.0.1j" -- "libssl.so.1.0.1f" -- "libssl.so.1.0.1e" -- "libssl.so.1.0.1" -- "libssl.so.1.0.0q" -- "libssl.so.1.0.0" -- "libssl.so.0.9.8ze" -- "libssl.so.0.9.8" -- "libssl.so.10" -- "libssl.so.4" -- "libssl.so")) -- (:cygwin (:or "cygssl-1.1.dll" "cygssl-1.0.0.dll")) -- (t (:default "libssl3"))) -+ (t "@libssl@")) - - (unless (member :cl+ssl-foreign-libs-already-loaded - *features*) ++(cl+ssl/config:define-libssl-path "@libssl@") ++(cl+ssl/config:define-libcrypto-path "@libcrypto@") ++ + (unless cl+ssl/config::*libcrypto-override* + (cffi:define-foreign-library libcrypto + (:windows (:or #+(and windows x86-64) "libcrypto-1_1-x64.dll" -- 2.31.1 diff --git a/nixpkgs/pkgs/development/interpreters/acl2/default.nix b/nixpkgs/pkgs/development/interpreters/acl2/default.nix index 51b1cfa11414..1ca3742e737b 100644 --- a/nixpkgs/pkgs/development/interpreters/acl2/default.nix +++ b/nixpkgs/pkgs/development/interpreters/acl2/default.nix @@ -10,20 +10,20 @@ let # ACL2 system itself; see # https://www.cs.utexas.edu/users/moore/acl2/current/HTML/installation/requirements.html#Obtaining-SBCL sbcl' = args.sbcl.override { disableImmobileSpace = true; }; - sbcl = runCommandLocal args.sbcl.name { buildInputs = [ makeWrapper ]; } '' + sbcl = runCommandLocal args.sbcl.name { nativeBuildInputs = [ makeWrapper ]; } '' makeWrapper ${sbcl'}/bin/sbcl $out/bin/sbcl \ --add-flags "--dynamic-space-size 2000" ''; in stdenv.mkDerivation rec { pname = "acl2"; - version = "8.4"; + version = "8.5"; src = fetchFromGitHub { owner = "acl2-devel"; repo = "acl2-devel"; rev = version; - sha256 = "16rr9zqmd3y1sd6zxff2f9gdd84l99pr7mdp1sjwmh427h661c68"; + sha256 = "12cv5ms1j3vfrq066km020nwxb6x2dzh12g8nz6xxyxysn44wzzi"; }; # You can swap this out with any other IPASIR implementation at @@ -36,18 +36,20 @@ in stdenv.mkDerivation rec { patches = [(substituteAll { src = ./0001-Fix-some-paths-for-Nix-build.patch; libipasir = "${libipasir}/lib/${libipasir.libname}"; - libssl = "${openssl.out}/lib/libssl${stdenv.hostPlatform.extensions.sharedLibrary}"; - libcrypto = "${openssl.out}/lib/libcrypto${stdenv.hostPlatform.extensions.sharedLibrary}"; + libssl = "${lib.getLib openssl}/lib/libssl${stdenv.hostPlatform.extensions.sharedLibrary}"; + libcrypto = "${lib.getLib openssl}/lib/libcrypto${stdenv.hostPlatform.extensions.sharedLibrary}"; })]; + nativeBuildInputs = lib.optional certifyBooks makeWrapper; + buildInputs = [ # ACL2 itself only needs a Common Lisp compiler/interpreter: sbcl ] ++ lib.optionals certifyBooks [ # To build community books, we need Perl and a couple of utilities: - which perl hostname makeWrapper + which perl hostname # Some of the books require one or more of these external tools: - openssl.out glucose minisat abc-verifier libipasir + glucose minisat abc-verifier libipasir z3 (python2.withPackages (ps: [ ps.z3 ])) ]; diff --git a/nixpkgs/pkgs/development/interpreters/alda/default.nix b/nixpkgs/pkgs/development/interpreters/alda/default.nix index 355551d5ad0d..269b8258aa4e 100644 --- a/nixpkgs/pkgs/development/interpreters/alda/default.nix +++ b/nixpkgs/pkgs/development/interpreters/alda/default.nix @@ -2,16 +2,16 @@ stdenv.mkDerivation rec { pname = "alda"; - version = "2.2.0"; + version = "2.2.3"; src_alda = fetchurl { url = "https://alda-releases.nyc3.digitaloceanspaces.com/${version}/client/linux-amd64/alda"; - sha256 = "0z3n81fmv3fxwgr641r6jjn1dmi5d3rw8d6r8jdfjhgpxanyi9a7"; + hash = "sha256-cyOAXQ3ITIgy4QusjdYBNmNIzB6BzfbQEypvJbkbvWo="; }; src_player = fetchurl { url = "https://alda-releases.nyc3.digitaloceanspaces.com/${version}/player/non-windows/alda-player"; - sha256 = "11kji846hbn1f2w1s7rc1ing203jkamy89j1jmysajvirdpp8nha"; + hash = "sha256-HsX0mNWrusL2FaK2oK8xhmr/ai+3ZiMmrJk7oS3b93g="; }; dontUnpack = true; diff --git a/nixpkgs/pkgs/development/interpreters/bats/default.nix b/nixpkgs/pkgs/development/interpreters/bats/default.nix index 3379d1370af1..89539850163e 100644 --- a/nixpkgs/pkgs/development/interpreters/bats/default.nix +++ b/nixpkgs/pkgs/development/interpreters/bats/default.nix @@ -1,4 +1,4 @@ -{ resholvePackage +{ resholve , lib , stdenv , fetchFromGitHub @@ -6,19 +6,29 @@ , coreutils , gnugrep , ncurses +, findutils +, hostname +, parallel +, flock +, ps +, bats , lsof +, callPackages +, symlinkJoin +, makeWrapper +, runCommand , doInstallCheck ? true }: -resholvePackage rec { +resholve.mkDerivation rec { pname = "bats"; - version = "1.6.0"; + version = "1.7.0"; src = fetchFromGitHub { owner = "bats-core"; repo = "bats-core"; rev = "v${version}"; - sha256 = "sha256-s+SAqX70WeTz6s5ObXYFBVPVUEqvD1d7AX2sGHkjVQ4="; + sha256 = "sha256-joNne/dDVCNtzdTQ64rK8GimT+DOWUa7f410hml2s8Q="; }; patchPhase = '' @@ -31,33 +41,146 @@ resholvePackage rec { solutions = { bats = { - scripts = [ "bin/bats" ]; + scripts = [ + "bin/bats" + "libexec/bats-core/*" + "lib/bats-core/*" + ]; interpreter = "${bash}/bin/bash"; - inputs = [ bash coreutils gnugrep ]; + inputs = [ + bash + coreutils + gnugrep + ncurses + findutils + hostname + parallel + flock + "lib/bats-core" + "libexec/bats-core" + ]; fake = { - external = [ "greadlink" ]; + external = [ + "greadlink" + "shlock" + ]; }; fix = { "$BATS_ROOT" = [ "${placeholder "out"}" ]; + "$BATS_LIBEXEC" = [ "${placeholder "out"}/libexec/bats-core" ]; }; keep = { "${placeholder "out"}/libexec/bats-core/bats" = true; + source = [ + "${placeholder "out"}/lib/bats-core/validator.bash" + "${placeholder "out"}/lib/bats-core/preprocessing.bash" + "$BATS_TEST_SOURCE" + "${placeholder "out"}/lib/bats-core/tracing.bash" + "${placeholder "out"}/lib/bats-core/test_functions.bash" + "$library_load_path" + "${placeholder "out"}/lib/bats-core/common.bash" + "${placeholder "out"}/lib/bats-core/semaphore.bash" + "${placeholder "out"}/lib/bats-core/formatter.bash" + "${placeholder "out"}/lib/bats-core/warnings.bash" + "$setup_suite_file" # via cli arg + ]; + "$report_formatter" = true; + "$formatter" = true; + "$pre_command" = true; + "$BATS_TEST_NAME" = true; + "${placeholder "out"}/libexec/bats-core/bats-exec-test" = true; }; + execer = [ + /* + both blatant lies for expedience; these can certainly exec args + they may be safe here, because they may always run things that + are ultimately in libexec? + TODO: handle parallel and flock in binlore/resholve + */ + "cannot:${parallel}/bin/parallel" + "cannot:${flock}/bin/flock" + + "cannot:libexec/bats-core/bats-preprocess" + + # these do exec, but other internal files + "cannot:libexec/bats-core/bats-exec-file" + "cannot:libexec/bats-core/bats-exec-suite" + ]; }; }; - inherit doInstallCheck; - installCheckInputs = [ ncurses ] ++ lib.optionals stdenv.isDarwin [ lsof ]; - 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 + passthru.libraries = callPackages ./libraries.nix {}; + + passthru.withLibraries = selector: + symlinkJoin { + name = "bats-with-libraries-${bats.version}"; + + paths = [ + bats + ] ++ selector bats.libraries; + + nativeBuildInputs = [ + makeWrapper + ]; + + postBuild = '' + wrapProgram "$out/bin/bats" \ + --suffix BATS_LIB_PATH : "$out/share/bats" + ''; + }; + + passthru.tests.libraries = runCommand "${bats.name}-with-libraries-test" { + testScript = '' + setup() { + bats_load_library bats-support + bats_load_library bats-assert + + bats_require_minimum_version 1.5.0 + } - # test generates file with absolute shebang dynamically - substituteInPlace test/install.bats --replace \ - "/usr/bin/env bash" "${bash}/bin/bash" - bin/bats test + @test echo_hi { + run -0 echo hi + assert_output "hi" + } + + @test cp_failure { + run ! cp + assert_line --index 0 "cp: missing file operand" + assert_line --index 1 "Try 'cp --help' for more information." + } + ''; + passAsFile = [ "testScript" ]; + } '' + ${bats.withLibraries (p: [ p.bats-support p.bats-assert ])}/bin/bats "$testScriptPath" + touch "$out" ''; + passthru.tests.upstream = bats.unresholved.overrideAttrs (old: { + name = "${bats.name}-tests"; + dontInstall = true; # just need the build directory + installCheckInputs = [ + ncurses + parallel # skips some tests if it can't detect + flock # skips some tests if it can't detect + ps + ] ++ lib.optionals stdenv.isDarwin [ lsof ]; + inherit doInstallCheck; + 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 "disabled for nix build"' test/bats.bats + + # skip tests that assume bats `install.sh` will be in BATS_ROOT + rm test/root.bats + + # test generates file with absolute shebang dynamically + substituteInPlace test/install.bats --replace \ + "/usr/bin/env bash" "${bash}/bin/bash" + + ${bats}/bin/bats test + touch $out + ''; + }); + meta = with lib; { homepage = "https://github.com/bats-core/bats-core"; description = "Bash Automated Testing System"; diff --git a/nixpkgs/pkgs/development/interpreters/bats/libraries.nix b/nixpkgs/pkgs/development/interpreters/bats/libraries.nix new file mode 100644 index 000000000000..74324b03e6ad --- /dev/null +++ b/nixpkgs/pkgs/development/interpreters/bats/libraries.nix @@ -0,0 +1,70 @@ +{ lib, stdenv, fetchFromGitHub }: { + bats-assert = stdenv.mkDerivation { + pname = "bats-assert"; + version = "2.0.0"; + src = fetchFromGitHub { + owner = "bats-core"; + repo = "bats-assert"; + rev = "v2.0.0"; + sha256 = "sha256-whSbAj8Xmnqclf78dYcjf1oq099ePtn4XX9TUJ9AlyQ="; + }; + dontBuild = true; + installPhase = '' + mkdir -p "$out/share/bats" + cp -r . "$out/share/bats/bats-assert" + ''; + meta = { + description = "Common assertions for Bats"; + platforms = lib.platforms.all; + homepage = "https://github.com/bats-core/bats-assert"; + license = lib.licenses.cc0; + maintainers = with lib.maintainers; [ infinisil ]; + }; + }; + + bats-file = stdenv.mkDerivation { + pname = "bats-file"; + version = "0.3.0"; + src = fetchFromGitHub { + owner = "bats-core"; + repo = "bats-file"; + rev = "v0.3.0"; + sha256 = "sha256-3xevy0QpwNZrEe+2IJq58tKyxQzYx8cz6dD2nz7fYUM="; + }; + dontBuild = true; + installPhase = '' + mkdir -p "$out/share/bats" + cp -r . "$out/share/bats/bats-file" + ''; + meta = { + description = "Common filesystem assertions for Bats"; + platforms = lib.platforms.all; + homepage = "https://github.com/bats-core/bats-file"; + license = lib.licenses.cc0; + maintainers = with lib.maintainers; [ infinisil ]; + }; + }; + + bats-support = stdenv.mkDerivation { + pname = "bats-support"; + version = "0.3.0"; + src = fetchFromGitHub { + owner = "bats-core"; + repo = "bats-support"; + rev = "v0.3.0"; + sha256 = "sha256-4N7XJS5XOKxMCXNC7ef9halhRpg79kUqDuRnKcrxoeo="; + }; + dontBuild = true; + installPhase = '' + mkdir -p "$out/share/bats" + cp -r . "$out/share/bats/bats-support" + ''; + meta = { + description = "Supporting library for Bats test helpers"; + platforms = lib.platforms.all; + homepage = "https://github.com/bats-core/bats-support"; + license = lib.licenses.cc0; + maintainers = with lib.maintainers; [ infinisil ]; + }; + }; +} diff --git a/nixpkgs/pkgs/development/interpreters/boron/default.nix b/nixpkgs/pkgs/development/interpreters/boron/default.nix new file mode 100644 index 000000000000..249a39c58f3a --- /dev/null +++ b/nixpkgs/pkgs/development/interpreters/boron/default.nix @@ -0,0 +1,48 @@ +{ lib +, stdenv +, fetchurl +, zlib +}: + +stdenv.mkDerivation rec { + pname = "boron"; + version = "2.0.8"; + + src = fetchurl { + url = "https://sourceforge.net/projects/urlan/files/Boron/boron-${version}.tar.gz"; + sha256 = "sha256-Ni/LJgOABC2wXDMsg1ZAuZWSQdFT9/Fa4lH4+V0gy8M="; + }; + + # this is not a standard Autotools-like `configure` script + dontAddPrefix = true; + + preConfigure = '' + patchShebangs configure + ''; + + configureFlags = [ "--thread" ]; + + makeFlags = [ "DESTDIR=$(out)" ]; + + buildInputs = [ + zlib + ]; + + installTargets = [ "install" "install-dev" ]; + + doCheck = true; + + checkPhase = '' + patchShebangs . + make -C test + ''; + + meta = with lib; { + homepage = "http://urlan.sourceforge.net/boron/"; + description = "Scripting language and C library useful for building DSLs"; + license = licenses.lgpl3Plus; + platforms = platforms.linux; + maintainers = with maintainers; [ mausch ]; + }; +} + diff --git a/nixpkgs/pkgs/development/interpreters/bqn/cbqn/default.nix b/nixpkgs/pkgs/development/interpreters/bqn/cbqn/default.nix index 992caf200a74..0426a72c81aa 100644 --- a/nixpkgs/pkgs/development/interpreters/bqn/cbqn/default.nix +++ b/nixpkgs/pkgs/development/interpreters/bqn/cbqn/default.nix @@ -11,21 +11,21 @@ let name = "cbqn-bytecode-files"; owner = "dzaima"; repo = "CBQN"; - rev = "b000b951aa8f3590b196b4c09056604c0b32a168"; - hash = "sha256-znW0xOXogP4TfifUmk3cs4aN/9mMSpSD2WJppmeI1Fg="; + rev = "c39653c898531a2cdbf4cc5c764df6e37b1894a4"; + hash = "sha256-JCEmkwh5Rv5+NQoxvefSrYnayU892/Wam+gjMgcQmO0="; }; in assert genBytecode -> ((bqn-path != null) && (mbqn-source != null)); stdenv.mkDerivation rec { pname = "cbqn" + lib.optionalString (!genBytecode) "-standalone"; - version = "0.pre+date=2021-12-13"; + version = "0.pre+date=2022-05-06"; src = fetchFromGitHub { owner = "dzaima"; repo = "CBQN"; - rev = "e7662b0f6a44add0749fba2a6d7309a5c1eb2601"; - hash = "sha256-2nfkTZBIGHX5cok6Ea3KSewakZy8Ey8nSO2Fe4xGgvg="; + rev = "3496a939b670f8c9ca2a04927378d6b7e9abd68e"; + hash = "sha256-P+PoY4XF9oEw7VIpmybvPp+jxWHEo2zt1Lamayf1mHg="; }; dontConfigure = true; @@ -44,7 +44,7 @@ stdenv.mkDerivation rec { '' + (if genBytecode then '' ${bqn-path} genRuntime ${mbqn-source} '' else '' - cp ${cbqn-bytecode-files}/src/gen/{compiler,formatter,runtime0,runtime1,src} src/gen/ + cp ${cbqn-bytecode-files}/src/gen/{compiles,formatter,runtime0,runtime1,src} src/gen/ ''); installPhase = '' @@ -63,7 +63,7 @@ stdenv.mkDerivation rec { homepage = "https://github.com/dzaima/CBQN/"; description = "BQN implementation in C"; license = licenses.gpl3Plus; - maintainers = with maintainers; [ AndersonTorres sternenseemann synthetica ]; + maintainers = with maintainers; [ AndersonTorres sternenseemann synthetica shnarazk ]; platforms = platforms.all; }; } diff --git a/nixpkgs/pkgs/development/interpreters/cling/default.nix b/nixpkgs/pkgs/development/interpreters/cling/default.nix index 968817cf067a..1ec265f305b6 100644 --- a/nixpkgs/pkgs/development/interpreters/cling/default.nix +++ b/nixpkgs/pkgs/development/interpreters/cling/default.nix @@ -94,7 +94,7 @@ let in runCommand "cling-${unwrapped.version}" { - buildInputs = [ makeWrapper ]; + nativeBuildInputs = [ makeWrapper ]; inherit unwrapped flags compilerIncludeFlags; inherit (unwrapped) meta; } '' diff --git a/nixpkgs/pkgs/development/interpreters/clojure/babashka.nix b/nixpkgs/pkgs/development/interpreters/clojure/babashka.nix index c3dcd0a0f71f..89294e5e8279 100644 --- a/nixpkgs/pkgs/development/interpreters/clojure/babashka.nix +++ b/nixpkgs/pkgs/development/interpreters/clojure/babashka.nix @@ -2,11 +2,11 @@ buildGraalvmNativeImage rec { pname = "babashka"; - version = "0.7.8"; + version = "0.9.160"; src = fetchurl { url = "https://github.com/babashka/${pname}/releases/download/v${version}/${pname}-${version}-standalone.jar"; - sha256 = "sha256-VbDivl92YYWzIbkbOgDijzf9bZ5ZyodcapPPG4EiGXc="; + sha256 = "sha256-mLP9Jg18iNj4FMDAoa9n3jf5A3G+JekywDJBHM4HEwc="; }; executable = "bb"; @@ -66,6 +66,7 @@ buildGraalvmNativeImage rec { ''; homepage = "https://github.com/babashka/babashka"; changelog = "https://github.com/babashka/babashka/blob/v${version}/CHANGELOG.md"; + sourceProvenance = with sourceTypes; [ binaryBytecode ]; license = licenses.epl10; maintainers = with maintainers; [ bandresen diff --git a/nixpkgs/pkgs/development/interpreters/clojure/clooj.nix b/nixpkgs/pkgs/development/interpreters/clojure/clooj.nix index 42d6d67ee15b..0e8391d5a686 100644 --- a/nixpkgs/pkgs/development/interpreters/clojure/clooj.nix +++ b/nixpkgs/pkgs/development/interpreters/clojure/clooj.nix @@ -23,6 +23,7 @@ stdenv.mkDerivation rec { meta = { description = "A lightweight IDE for Clojure"; homepage = "https://github.com/arthuredelstein/clooj"; + sourceProvenance = with lib.sourceTypes; [ binaryBytecode ]; license = lib.licenses.bsd3; platforms = lib.platforms.all; }; diff --git a/nixpkgs/pkgs/development/interpreters/clojure/default.nix b/nixpkgs/pkgs/development/interpreters/clojure/default.nix index cd63e506a55f..49cba2ca6214 100644 --- a/nixpkgs/pkgs/development/interpreters/clojure/default.nix +++ b/nixpkgs/pkgs/development/interpreters/clojure/default.nix @@ -2,12 +2,12 @@ stdenv.mkDerivation rec { pname = "clojure"; - version = "1.11.0.1100"; + version = "1.11.1.1149"; src = fetchurl { # https://clojure.org/releases/tools url = "https://download.clojure.org/install/clojure-tools-${version}.tar.gz"; - sha256 = "sha256-9KEsO32118fvKE1Gls+9nAeRdlhTKfmJylsiSYCoKKU="; + sha256 = "sha256-IIhonPSwpADNAuv9DQIKrdsJcGAlX+6uHe+jvA6i3KQ="; }; nativeBuildInputs = [ @@ -74,6 +74,7 @@ stdenv.mkDerivation rec { meta = with lib; { description = "A Lisp dialect for the JVM"; homepage = "https://clojure.org/"; + sourceProvenance = with sourceTypes; [ binaryBytecode ]; license = licenses.epl10; longDescription = '' Clojure is a dynamic programming language that targets the Java diff --git a/nixpkgs/pkgs/development/interpreters/clojurescript/lumo/default.nix b/nixpkgs/pkgs/development/interpreters/clojurescript/lumo/default.nix deleted file mode 100644 index d8fa630c30df..000000000000 --- a/nixpkgs/pkgs/development/interpreters/clojurescript/lumo/default.nix +++ /dev/null @@ -1,287 +0,0 @@ -{ stdenv -, lib -, fetchurl -, clojure -, gnutar -, nodejs -, jre -, unzip -, nodePackages -, xcbuild -, python2 -, openssl -, pkgs -, fetchgit -, darwin -}: -let - version = "1.10.1"; - nodeVersion = "11.13.0"; - nodeSources = fetchurl { - url = "https://nodejs.org/dist/v${nodeVersion}/node-v${nodeVersion}.tar.gz"; - sha256 = "1cjzjbshxnysxkvbf41p3m8298cnhs9kfvdczgvvvlp6w16x4aac"; - }; - lumo-internal-classpath = "LUMO__INTERNAL__CLASSPATH"; - - # as found in cljs/snapshot/lumo/repl.cljs - requireDeps = '' \ - cljs.analyzer \ - cljs.compiler \ - cljs.env \ - cljs.js \ - cljs.reader \ - cljs.repl \ - cljs.source-map \ - cljs.source-map.base64 \ - cljs.source-map.base64-vlq \ - cljs.spec.alpha \ - cljs.spec.gen.alpha \ - cljs.tagged-literals \ - cljs.tools.reader \ - cljs.tools.reader.reader-types \ - cljs.tools.reader.impl.commons \ - cljs.tools.reader.impl.utils \ - clojure.core.rrb-vector \ - clojure.core.rrb-vector.interop \ - clojure.core.rrb-vector.nodes \ - clojure.core.rrb-vector.protocols \ - clojure.core.rrb-vector.rrbt \ - clojure.core.rrb-vector.transients \ - clojure.core.rrb-vector.trees \ - clojure.string \ - clojure.set \ - clojure.walk \ - cognitect.transit \ - fipp.visit \ - fipp.engine \ - fipp.deque \ - lazy-map.core \ - lumo.pprint.data \ - lumo.repl \ - lumo.repl-resources \ - lumo.js-deps \ - lumo.common ''; - - compileClojurescript = (simple: '' - (require '[cljs.build.api :as cljs]) - (cljs/build \"src/cljs/snapshot\" - {:optimizations ${if simple then ":simple" else ":none"} - :main 'lumo.core - :cache-analysis true - :source-map false - :dump-core false - :static-fns true - :optimize-constants false - :npm-deps false - :verbose true - :closure-defines {'cljs.core/*target* \"nodejs\" - 'lumo.core/*lumo-version* \"${version}\"} - :compiler-stats true - :process-shim false - :fn-invoke-direct true - :parallel-build false - :browser-repl false - :target :nodejs - :hashbang false - ;; :libs [ \"src/cljs/bundled\" \"src/js\" ] - :output-dir ${if simple - then ''\"cljstmp\"'' - else ''\"target\"''} - :output-to ${if simple - then ''\"cljstmp/main.js\"'' - else ''\"target/deleteme.js\"'' }}) - '' - ); - - - cacheToJsons = '' - (import [java.io ByteArrayOutputStream FileInputStream]) - (require '[cognitect.transit :as transit] - '[clojure.edn :as edn] - '[clojure.string :as str]) - - (defn write-transit-json [cache] - (let [out (ByteArrayOutputStream. 1000000) - writer (transit/writer out :json)] - (transit/write writer cache) - (.toString out))) - - (defn process-caches [] - (let [cache-aot-path \"target/cljs/core.cljs.cache.aot.edn\" - cache-aot-edn (edn/read-string (slurp cache-aot-path)) - cache-macros-path \"target/cljs/core\$macros.cljc.cache.json\" - cache-macros-stream (FileInputStream. cache-macros-path) - cache-macros-edn (transit/read (transit/reader cache-macros-stream :json)) - caches [[cache-aot-path cache-aot-edn] - [cache-macros-path cache-macros-edn]]] - (doseq [[path cache-edn] caches] - (doseq [key (keys cache-edn)] - (let [out-path (str/replace path #\"(\.json|\.edn)\$\" - (str \".\" (munge key) \".json\")) - tr-json (write-transit-json (key cache-edn))] - (spit out-path tr-json)))))) - - (process-caches) - ''; - - trimMainJsEnd = '' - (let [string (slurp \"target/main.js\")] - (spit \"target/main.js\" - (subs string 0 (.indexOf string \"cljs.nodejs={};\")))) - ''; - - - cljdeps = import ./deps.nix { inherit pkgs; }; - classp = cljdeps.makeClasspaths { - extraClasspaths = [ "src/js" "src/cljs/bundled" "src/cljs/snapshot" ]; - }; - - - getJarPath = jarName: (lib.findFirst (p: p.name == jarName) null cljdeps.packages).path.jar; -in -stdenv.mkDerivation { - inherit version; - pname = "lumo"; - - src = fetchgit { - url = "https://github.com/anmonteiro/lumo.git"; - rev = version; - sha256 = "12agi6bacqic2wq6q3l28283badzamspajmajzqm7fbdl2aq1a4p"; - }; - - nativeBuildInputs = [ unzip ]; - buildInputs = [ - nodejs - clojure - jre - python2 - openssl - gnutar - nodePackages."lumo-build-deps-../interpreters/clojurescript/lumo" - ] - ++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [ - ApplicationServices - xcbuild - ] - ); - - patches = [ ./no_mangle.patch ./mkdir_promise.patch ]; - - postPatch = '' - substituteInPlace $NIX_BUILD_TOP/lumo/vendor/nexe/exe.js \ - --replace 'glob.sync(dir + "/*")' 'glob.sync(dir + "/../*")' - ''; - - buildPhase = '' - # Copy over lumo-build-deps environment - rm yarn.lock - cp -rf ${nodePackages."lumo-build-deps-../interpreters/clojurescript/lumo"}/lib/node_modules/lumo-build-deps/* ./ - - # configure clojure-cli - mkdir ./.cpcache - export CLJ_CONFIG=`pwd` - export CLJ_CACHE=`pwd`/.cpcache - - # require more namespaces for cljs-bundle - sed -i "s!ns lumo.core! \ - ns lumo.core \ - (:require ${requireDeps}) \ - (:require-macros [clojure.template :as temp] \ - [cljs.test :as test])!g" \ - ./src/cljs/snapshot/lumo/core.cljs - - # Step 1: compile clojurescript with :none and :simple - ${clojure}/bin/clojure -Scp ${classp} -e "${compileClojurescript true}" - ${clojure}/bin/clojure -Scp ${classp} -e "${compileClojurescript false}" - cp -f cljstmp/main.js target/main.js - ${clojure}/bin/clojure -Scp ${classp} -e "${trimMainJsEnd}" - - # Step 2: sift files - unzip -o ${getJarPath "org.clojure/clojurescript"} -d ./target - unzip -j ${getJarPath "org.clojure/clojure"} "clojure/template.clj" -d ./target/clojure - unzip -o ${getJarPath "org.clojure/google-closure-library"} -d ./target - unzip -o ${getJarPath "org.clojure/google-closure-library-third-party"} -d ./target - unzip -o ${getJarPath "org.clojure/tools.reader"} -d ./target - unzip -o ${getJarPath "org.clojure/test.check"} -d ./target - cp -rf ./src/cljs/bundled/lumo/* ./target/lumo/ - cp -rf ./src/cljs/snapshot/lumo/repl.clj ./target/lumo/ - # cleanup - mv ./target/main.js ./target/main - rm ./target/*\.js - mv ./target/main ./target/main.js - rm ./target/AUTHORS - rm ./target/LICENSE - rm ./target/*.edn - rm ./target/*.md - rm -rf ./target/css - rm -rf ./target/META-INF - rm -rf ./target/com - rm -rf ./target/cljs/build - rm -rf ./target/cljs/repl - rm ./target/cljs/core\.cljs\.cache.aot\.json - rm ./target/cljs/source_map\.clj - rm ./target/cljs/repl\.cljc - rm ./target/cljs/externs\.clj - rm ./target/cljs/closure\.clj - rm ./target/cljs/util\.cljc - rm ./target/cljs/js_deps\.cljc - rm ./target/cljs/analyzer/utils\.clj - rm ./target/cljs/core/macros\.clj - rm ./target/cljs/compiler/api.clj - rm ./target/goog/test_module* - rm ./target/goog/transpile\.js - rm ./target/goog/base_* - find ./target -type f -name '*.class' -delete - find ./target -type d -empty -delete - - # Step 3: generate munged cache jsons - ${clojure}/bin/clojure -Scp ${classp} -e "${cacheToJsons}" - rm ./target/cljs/core\$macros\.cljc\.cache\.json - - - # Step 4: Bunde javascript - NODE_ENV=production node scripts/bundle.js - node scripts/bundleForeign.js - - # Step 5: Backup resources - cp -R target resources_bak - - # Step 6: Package executeable 1st time - # fetch node sources and copy to palce that nexe will find - mkdir -p tmp/node/${nodeVersion} - cp ${nodeSources} tmp/node/${nodeVersion}/node-${nodeVersion}.tar.gz - tar -C ./tmp/node/${nodeVersion} -xf ${nodeSources} --warning=no-unknown-keyword - mv ./tmp/node/${nodeVersion}/node-v${nodeVersion}/* ./tmp/node/${nodeVersion}/ - rm -rf ${lumo-internal-classpath} - cp -rf target ${lumo-internal-classpath} - node scripts/package.js ${nodeVersion} - rm -rf target - mv ${lumo-internal-classpath} target - - # Step 7: AOT Macros - sh scripts/aot-bundle-macros.sh - - # Step 8: Package executeable 2nd time - node scripts/package.js ${nodeVersion} - ''; - - dontStrip = true; - - installPhase = '' - mkdir -p $out/bin - cp build/lumo $out/bin - ''; - - meta = { - description = "Fast, cross-platform, standalone ClojureScript environment"; - longDescription = '' - Lumo is a fast, standalone ClojureScript REPL that runs on Node.js and V8. - 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"; - license = lib.licenses.epl10; - maintainers = [ lib.maintainers.hlolli ]; - platforms = lib.platforms.linux ++ lib.platforms.darwin; - }; -} diff --git a/nixpkgs/pkgs/development/interpreters/clojurescript/lumo/deps.edn b/nixpkgs/pkgs/development/interpreters/clojurescript/lumo/deps.edn deleted file mode 100644 index 7a2faee1d7a5..000000000000 --- a/nixpkgs/pkgs/development/interpreters/clojurescript/lumo/deps.edn +++ /dev/null @@ -1,12 +0,0 @@ -{:deps - {org.clojure/clojure {:mvn/version "1.10.1"} - org.clojure/clojurescript {:mvn/version "1.10.520"} - org.clojure/test.check {:mvn/version "0.10.0-alpha4"} - org.clojure/tools.reader {:mvn/version "1.3.2" - :exclusions [org.clojure/clojure org.clojure/clojurescript]} - com.cognitect/transit-cljs {:mvn/version "0.8.256" - :exclusions [org.clojure/clojure org.clojure/clojurescript]} - malabarba/lazy-map {:mvn/version "1.3" - :exclusions [org.clojure/clojure org.clojure/clojurescript]} - fipp {:mvn/version "0.6.17" - :exclusions [org.clojure/clojure org.clojure/clojurescript]}}} diff --git a/nixpkgs/pkgs/development/interpreters/clojurescript/lumo/deps.nix b/nixpkgs/pkgs/development/interpreters/clojurescript/lumo/deps.nix deleted file mode 100644 index 50f1c4af2118..000000000000 --- a/nixpkgs/pkgs/development/interpreters/clojurescript/lumo/deps.nix +++ /dev/null @@ -1,392 +0,0 @@ -# generated by clj2nix-1.0.4 -{ pkgs }: - -let repos = [ - "https://repo.clojars.org/" - "https://repo1.maven.org/" - "https://oss.sonatype.org/content/repositories/releases/" - "https://oss.sonatype.org/content/repositories/public/" - "https://repo.typesafe.com/typesafe/releases/" - ]; - -in rec { - makePaths = {extraClasspaths ? []}: (builtins.map (dep: if builtins.hasAttr "jar" dep.path then dep.path.jar else dep.path) packages) ++ extraClasspaths; - makeClasspaths = {extraClasspaths ? []}: builtins.concatStringsSep ":" (makePaths {inherit extraClasspaths;}); - - packages = [ - { - name = "com.cognitect/transit-java"; - path = pkgs.fetchMavenArtifact { - inherit repos; - artifactId = "transit-java"; - groupId = "com.cognitect"; - sha512 = "80365a4f244e052b6c4fdfd2fd3b91288835599cb4dd88e0e0dae19883dcda39afee83966810ed81beff342111c3a45a66f5601c443f3ad49904908c43631708"; - version = "0.8.332"; - }; - } - - { - name = "org.clojure/data.json"; - path = pkgs.fetchMavenArtifact { - inherit repos; - artifactId = "data.json"; - groupId = "org.clojure"; - sha512 = "ce526bef01bedd31b772954d921a61832ae60af06121f29080853f7932326438b33d183240a9cffbe57e00dc3744700220753948da26b8973ee21c30e84227a6"; - version = "0.2.6"; - }; - } - - { - name = "org.clojure/clojure"; - path = pkgs.fetchMavenArtifact { - inherit repos; - artifactId = "clojure"; - groupId = "org.clojure"; - sha512 = "f28178179483531862afae13e246386f8fda081afa523d3c4ea3a083ab607d23575d38ecb9ec0ee7f4d65cbe39a119f680e6de4669bc9cf593aa92be0c61562b"; - version = "1.10.1"; - }; - } - - { - name = "commons-codec/commons-codec"; - path = pkgs.fetchMavenArtifact { - inherit repos; - artifactId = "commons-codec"; - groupId = "commons-codec"; - sha512 = "8edecc0faf38e8620460909d8191837f34e2bb2ce853677c486c5e79bb79e88d043c3aed69c11f1365c4884827052ee4e1c18ca56e38d1a5bc0ce15c57daeee3"; - version = "1.10"; - }; - } - - { - name = "com.google.errorprone/error_prone_annotations"; - path = pkgs.fetchMavenArtifact { - inherit repos; - artifactId = "error_prone_annotations"; - groupId = "com.google.errorprone"; - sha512 = "bd2135cc9eb2c652658a2814ec9c565fa3e071d4cff590cbe17b853885c78c9f84c1b7b24ba736f4f30ed8cec60a6af983827fcbed61ff142f27ac808e97fc6b"; - version = "2.1.3"; - }; - } - - { - name = "org.clojure/core.specs.alpha"; - path = pkgs.fetchMavenArtifact { - inherit repos; - artifactId = "core.specs.alpha"; - groupId = "org.clojure"; - sha512 = "348c0ea0911bc0dcb08655e61b97ba040649b4b46c32a62aa84d0c29c245a8af5c16d44a4fa5455d6ab076f4bb5bbbe1ad3064a7befe583f13aeb9e32a169bf4"; - version = "0.2.44"; - }; - } - - { - name = "org.clojure/spec.alpha"; - path = pkgs.fetchMavenArtifact { - inherit repos; - artifactId = "spec.alpha"; - groupId = "org.clojure"; - sha512 = "18c97fb2b74c0bc2ff4f6dc722a3edec539f882ee85d0addf22bbf7e6fe02605d63f40c2b8a2905868ccd6f96cfc36a65f5fb70ddac31c6ec93da228a456edbd"; - version = "0.2.176"; - }; - } - - { - name = "org.codehaus.mojo/animal-sniffer-annotations"; - path = pkgs.fetchMavenArtifact { - inherit repos; - artifactId = "animal-sniffer-annotations"; - groupId = "org.codehaus.mojo"; - sha512 = "9e5e3ea9e06e0ac9463869fd0e08ed38f7042784995a7b50c9bfd7f692a53f0e1430b9e1367dc772d0d4eafe5fd2beabbcc60da5008bd792f9e7ec8436c0f136"; - version = "1.14"; - }; - } - - { - name = "com.googlecode.json-simple/json-simple"; - path = pkgs.fetchMavenArtifact { - inherit repos; - artifactId = "json-simple"; - groupId = "com.googlecode.json-simple"; - sha512 = "f8798bfbcc8ab8001baf90ce47ec2264234dc1da2d4aa97fdcdc0990472a6b5a5a32f828e776140777d598a99d8a0c0f51c6d0767ae1a829690ab9200ae35742"; - version = "1.1.1"; - }; - } - - { - name = "com.cognitect/transit-cljs"; - path = pkgs.fetchMavenArtifact { - inherit repos; - artifactId = "transit-cljs"; - groupId = "com.cognitect"; - sha512 = "318b98ddd63629f37b334bb90e625bc31ab6abcf0b1fa80d8e097551658f2d9219b5ee35869a31f2976d7d385da83bea0c07b0d097babcae241ecbd0fe8a7ecd"; - version = "0.8.256"; - }; - } - - { - name = "org.clojure/google-closure-library"; - path = pkgs.fetchMavenArtifact { - inherit repos; - artifactId = "google-closure-library"; - groupId = "org.clojure"; - sha512 = "75631182ef12f21723fe3eba1003d8cf9b8348a51512961e4e1b87bc24d8f3abb14a70c856f08cdaa5588a2d7c2b1b0c03aeaa3c4c5f2ed745a85f59ceeab83a"; - version = "0.0-20170809-b9c14c6b"; - }; - } - - { - name = "fipp"; - path = pkgs.fetchMavenArtifact { - inherit repos; - artifactId = "fipp"; - groupId = "fipp"; - sha512 = "d844ab63d28cb5e31657cc38e574bbc7072a78419c997f25445ac6ea4a719904a4f4844b37e3f664a8d2e49bd38ff1006a9e8c6e63fb4e2f0a2322d6c2638275"; - version = "0.6.17"; - }; - } - - { - name = "org.clojure/clojurescript"; - path = pkgs.fetchMavenArtifact { - inherit repos; - artifactId = "clojurescript"; - groupId = "org.clojure"; - sha512 = "b241959d6bd2ab659920965d301508226e26b3edcee469e4cd516cd4ed014b1a6b132c17ee7d96a8e66fe27fd01a74813ac8b85958d260f9fdbbeb4348d57ff1"; - version = "1.10.520"; - }; - } - - { - name = "com.google.jsinterop/jsinterop-annotations"; - path = pkgs.fetchMavenArtifact { - inherit repos; - artifactId = "jsinterop-annotations"; - groupId = "com.google.jsinterop"; - sha512 = "b6fd98a9167d031f6bff571567d4658fda62c132dc74d47ca85e02c9bb3ce8812b1012c67f4c81501ab0cbd9ccd9cda5dcf32d306e04368ace7a173cecae975d"; - version = "1.0.0"; - }; - } - - { - name = "com.fasterxml.jackson.core/jackson-core"; - path = pkgs.fetchMavenArtifact { - inherit repos; - artifactId = "jackson-core"; - groupId = "com.fasterxml.jackson.core"; - sha512 = "a1bd6c264b9ab07aad3d0f26b65757e35ff47904ab895bb7f997e3e1fd063129c177ad6f69876907b04ff8a43c6b1770a26f53a811633a29e66a5dce57194f64"; - version = "2.8.7"; - }; - } - - { - name = "malabarba/lazy-map"; - path = pkgs.fetchMavenArtifact { - inherit repos; - artifactId = "lazy-map"; - groupId = "malabarba"; - sha512 = "ce56d6f03ac344579e15f062cdd4c477c0323da716d4d4106c4edb746959699e0b294b25aacf8ecf1579a6bdd5556a60f4bcb1648d22832984c069a0431c840f"; - version = "1.3"; - }; - } - - { - name = "com.cognitect/transit-js"; - path = pkgs.fetchMavenArtifact { - inherit repos; - artifactId = "transit-js"; - groupId = "com.cognitect"; - sha512 = "6ca0978e633e41b45ff5a76df79099ba7c4900a8ca9f6acd2a903e4ab10a1ec0c83d4127009df9dac1337debaba01f7ff1d5cced1c2159c05ef94845f73f0623"; - version = "0.8.846"; - }; - } - - { - name = "org.mozilla/rhino"; - path = pkgs.fetchMavenArtifact { - inherit repos; - artifactId = "rhino"; - groupId = "org.mozilla"; - sha512 = "466e7a76303ea191802b5e7adb3dff64c1d6283a25ce87447296b693b87b166f4cdd191ef7dc130a5739bfa0e4a81b08550f607c84eec167406d9be2225562dc"; - version = "1.7R5"; - }; - } - - { - name = "org.clojure/google-closure-library-third-party"; - path = pkgs.fetchMavenArtifact { - inherit repos; - artifactId = "google-closure-library-third-party"; - groupId = "org.clojure"; - sha512 = "57fa84fbbca3eb9e612d2842e4476b74f64d13dd076ffca6c9d9e15c4ca8a2f2c56cc19307bcad0ab5b4f9cb0c3e7900ccc845bd570ebc92e2633885ab621f35"; - version = "0.0-20170809-b9c14c6b"; - }; - } - - { - name = "com.google.javascript/closure-compiler-externs"; - path = pkgs.fetchMavenArtifact { - inherit repos; - artifactId = "closure-compiler-externs"; - groupId = "com.google.javascript"; - sha512 = "1a47c8559144095c0b23a8e40acd7185625cea5a4c103eb75fbacd32d5809d087bfb60aaf57066329649c6017ec5f993756024e767a5b8f84926371ba6183a82"; - version = "v20180805"; - }; - } - - { - name = "org.javassist/javassist"; - path = pkgs.fetchMavenArtifact { - inherit repos; - artifactId = "javassist"; - groupId = "org.javassist"; - sha512 = "ad65ee383ed83bedecc2073118cb3780b68b18d5fb79a1b2b665ff8529df02446ad11e68f9faaf4f2e980065f5946761a59ada379312cbb22d002625abed6a4f"; - version = "3.18.1-GA"; - }; - } - - { - name = "com.google.guava/guava"; - path = pkgs.fetchMavenArtifact { - inherit repos; - artifactId = "guava"; - groupId = "com.google.guava"; - sha512 = "429ceeec0350ba98e2b089b8b70ded2ec570c3a684894a7545d10592c1c7be42dacd1fad8b2cb9123aa3612575ce1b56e1bb54923443fc293f8e9adeac2762ee"; - version = "25.1-jre"; - }; - } - - { - name = "org.msgpack/msgpack"; - path = pkgs.fetchMavenArtifact { - inherit repos; - artifactId = "msgpack"; - groupId = "org.msgpack"; - sha512 = "a2741bed01f9c37ba3dbe6a7ab9ce936d36d4da97c35e215250ac89ac0851fc5948d83975ea6257d5dce1d43b6b5147254ecfb4b33f9bbdc489500b3ff060449"; - version = "0.6.12"; - }; - } - - { - name = "com.google.j2objc/j2objc-annotations"; - path = pkgs.fetchMavenArtifact { - inherit repos; - artifactId = "j2objc-annotations"; - groupId = "com.google.j2objc"; - sha512 = "a4a0b58ffc2d9f9b516f571bcd0ac14e4d3eec15aacd6320a4a1a12045acce8c6081e8ce922c4e882221cedb2cc266399ab468487ae9a08124d65edc07ae30f0"; - version = "1.1"; - }; - } - - { - name = "com.cognitect/transit-clj"; - path = pkgs.fetchMavenArtifact { - inherit repos; - artifactId = "transit-clj"; - groupId = "com.cognitect"; - sha512 = "ad838d9e5688c8cebe54972ad0c9a6db428ec1cece8c8b078e8e8d4b0c7870b328239d2bc9dd8fcbedcba56ca0de9afb5a0a843ff5f630dc039118de7eb45eba"; - version = "0.8.309"; - }; - } - - { - name = "args4j/args4j"; - path = pkgs.fetchMavenArtifact { - inherit repos; - artifactId = "args4j"; - groupId = "args4j"; - sha512 = "5f0651234c8f8b130fddb39fa832c6da47d3e21bc3434307554314c47e672c28d005c64e9effe85d552190cfc27966b1f005740ffd40b4e1bec2cb257d7feedb"; - version = "2.0.26"; - }; - } - - { - name = "org.clojure/core.rrb-vector"; - path = pkgs.fetchMavenArtifact { - inherit repos; - artifactId = "core.rrb-vector"; - groupId = "org.clojure"; - sha512 = "4e410c4a90a869e98d5d69a8a6dd6427e9d77b70e1a2b54cf24baf23389f22e7a208375783c2fdc5c1a5acfb8511a5c5ed57ad1a946d5bffd203f453d90a6155"; - version = "0.0.14"; - }; - } - - { - name = "org.checkerframework/checker-qual"; - path = pkgs.fetchMavenArtifact { - inherit repos; - artifactId = "checker-qual"; - groupId = "org.checkerframework"; - sha512 = "3c38b0b9e0bde464268cff5fdb1894a048240b039093ee3abe5b32976a22737d26b355f8793f630a7f0b319fdb019a6fcd9ee1d5219676f0f10c0b0f496b61b7"; - version = "2.0.0"; - }; - } - - { - name = "org.clojure/tools.reader"; - path = pkgs.fetchMavenArtifact { - inherit repos; - artifactId = "tools.reader"; - groupId = "org.clojure"; - sha512 = "290a2d98b2eec08a8affc2952006f43c0459c7e5467dc454f5fb5670ea7934fa974e6be19f7e7c91dadcfed62082d0fbcc7788455b7446a2c9c5af02f7fc52b6"; - version = "1.3.2"; - }; - } - - { - name = "com.google.javascript/closure-compiler-unshaded"; - path = pkgs.fetchMavenArtifact { - inherit repos; - artifactId = "closure-compiler-unshaded"; - groupId = "com.google.javascript"; - sha512 = "4fa7029aabd9ff84255d56004707486726db9c770f43cb10dc44fb53a3254d588a0f47f937f55401d7f319267ec2362c87f5ea709bcfa06f12a66fe22cb8c53d"; - version = "v20180805"; - }; - } - - { - name = "org.clojure/test.check"; - path = pkgs.fetchMavenArtifact { - inherit repos; - artifactId = "test.check"; - groupId = "org.clojure"; - sha512 = "60fa3bd38c32cf193c573f1bd47c6abd7e7a5bb2fc7f7f9f97aa9dcd54d5e2eab9e351f5f83b01bb96b32811a9f2f5ab384c6b7b7ebbb6c86d1ad4f2789351bf"; - version = "0.10.0-alpha4"; - }; - } - - { - name = "com.google.protobuf/protobuf-java"; - path = pkgs.fetchMavenArtifact { - inherit repos; - artifactId = "protobuf-java"; - groupId = "com.google.protobuf"; - sha512 = "230fc4360b8b2ee10eb73d756c58478b6c779433aa4ca91938404bbfd0ada516d3215664dbe953c96649e33bbef293958e4ad4616671f0c246883196ece92998"; - version = "3.0.2"; - }; - } - - { - name = "com.google.code.findbugs/jsr305"; - path = pkgs.fetchMavenArtifact { - inherit repos; - artifactId = "jsr305"; - groupId = "com.google.code.findbugs"; - sha512 = "bb09db62919a50fa5b55906013be6ca4fc7acb2e87455fac5eaf9ede2e41ce8bbafc0e5a385a561264ea4cd71bbbd3ef5a45e02d63277a201d06a0ae1636f804"; - version = "3.0.2"; - }; - } - - { - name = "com.google.code.gson/gson"; - path = pkgs.fetchMavenArtifact { - inherit repos; - artifactId = "gson"; - groupId = "com.google.code.gson"; - sha512 = "c3cdaf66a99e6336abc80ff23374f6b62ac95ab2ae874c9075805e91d849b18e3f620cc202b4978fc92b73d98de96089c8714b1dd096b2ae1958cfa085715f7a"; - version = "2.7"; - }; - } - - ]; - } diff --git a/nixpkgs/pkgs/development/interpreters/clojurescript/lumo/mkdir_promise.patch b/nixpkgs/pkgs/development/interpreters/clojurescript/lumo/mkdir_promise.patch deleted file mode 100644 index e9504bb5c1a0..000000000000 --- a/nixpkgs/pkgs/development/interpreters/clojurescript/lumo/mkdir_promise.patch +++ /dev/null @@ -1,20 +0,0 @@ -diff --git a/vendor/nexe/exe.js b/vendor/nexe/exe.js -index 21e78bb..ecbfca4 100644 ---- a/vendor/nexe/exe.js -+++ b/vendor/nexe/exe.js -@@ -254,9 +254,7 @@ return initModule._compile(${JSON.stringify(source)}, process.execPath); - */ - - function makeOutputDirectory(next) { -- mkdirp(path.dirname(options.output), function() { -- next(); -- }); -+ mkdirp(path.dirname(options.output)).then(() => next()); - }, - - /** -@@ -1107,4 +1105,3 @@ exports.package = function(path, options) { - - return obj; - } -- diff --git a/nixpkgs/pkgs/development/interpreters/clojurescript/lumo/no_mangle.patch b/nixpkgs/pkgs/development/interpreters/clojurescript/lumo/no_mangle.patch deleted file mode 100644 index 9af223411958..000000000000 --- a/nixpkgs/pkgs/development/interpreters/clojurescript/lumo/no_mangle.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/scripts/bundle.js b/scripts/bundle.js -index 16425a4..0d510fc 100644 ---- a/scripts/bundle.js -+++ b/scripts/bundle.js -@@ -73,6 +73,8 @@ const plugins = [ - if (!isDevBuild) { - plugins.push( - babelMinify({ -+ evaluate: false, -+ mangle: false, - comments: false, - removeConsole: true, - removeDebugger: true, diff --git a/nixpkgs/pkgs/development/interpreters/clojurescript/lumo/package.json b/nixpkgs/pkgs/development/interpreters/clojurescript/lumo/package.json deleted file mode 100644 index acfd5c4ed498..000000000000 --- a/nixpkgs/pkgs/development/interpreters/clojurescript/lumo/package.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "name": "lumo-build-deps", - "version": "1.10.1", - "dependencies": { - "@babel/core": "^7.1.5", - "@babel/plugin-external-helpers": "7.8.3", - "@babel/plugin-proposal-class-properties": "^7.1.0", - "@babel/plugin-proposal-object-rest-spread": "^7.0.0", - "@babel/plugin-transform-runtime": "^7.1.0", - "@babel/preset-env": "^7.1.5", - "@babel/preset-stage-2": "7.8.3", - "@babel/runtime": "^7.1.5", - "async": "^3.1.1", - "async-retry": "^1.2.3", - "babel-core": "^7.0.0-bridge.0", - "babel-eslint": "10.0.3", - "babel-jest": "^25.1.0", - "babel-loader": "^8.0.4", - "babel-plugin-transform-flow-strip-types": "6.22.0", - "browserify": "^16.2.3", - "chalk": "^3.0.0", - "colors": "^1.3.3", - "cross-env": "7.0.0", - "death": "^1.1.0", - "flow-bin": "0.118.0", - "google-closure-compiler-js": "20170910.0.1", - "glob": "^7.1.3", - "gunzip-maybe": "^1.4.1", - "insert-module-globals": "^7.2.0", - "jszip": "2.x", - "mkdirp": "^1.0.3", - "ncp": "^2.0.0", - "node-fetch": "^2.2.1", - "paredit.js": "0.3.6", - "posix-getopt": "github:anmonteiro/node-getopt#master", - "prettier": "1.19.1", - "progress": "^2.0.0", - "read-pkg": "^5.2.0", - "request": "^2.88.0", - "rollup": "^1.9.0", - "rollup-plugin-babel": "^4.3.2", - "rollup-plugin-babel-minify": "^9.1.1", - "rollup-plugin-commonjs": "^10.0.0", - "rollup-plugin-node-resolve": "^5.0.0", - "rollup-plugin-replace": "^2.1.1", - "tar-stream": "^2.0.1", - "webpack": "^4.25.1", - "webpack-cli": "^3.2.3", - "which-promise": "^1.0.0" - } -} diff --git a/nixpkgs/pkgs/development/interpreters/dart/default.nix b/nixpkgs/pkgs/development/interpreters/dart/default.nix index 366b7df3edd4..8570bb3d72d3 100644 --- a/nixpkgs/pkgs/development/interpreters/dart/default.nix +++ b/nixpkgs/pkgs/development/interpreters/dart/default.nix @@ -2,7 +2,7 @@ , lib , fetchurl , unzip -, version ? "2.15.1" +, version ? "2.17.3" , sources ? let base = "https://storage.googleapis.com/dart-archive/channels"; x86_64 = "x64"; @@ -10,24 +10,28 @@ aarch64 = "arm64"; # Make sure that if the user overrides version parameter they're # also need to override sources, to avoid mistakes - version = "2.15.1"; + version = "2.17.3"; in { + "${version}-aarch64-darwin" = fetchurl { + url = "${base}/stable/release/${version}/sdk/dartsdk-macos-${aarch64}-release.zip"; + sha256 = "sha256-NjkqC9DaaFGN47Qe46xUlsEx2O2bQrKhb1eJyxfr7Vg="; + }; "${version}-x86_64-darwin" = fetchurl { url = "${base}/stable/release/${version}/sdk/dartsdk-macos-${x86_64}-release.zip"; - sha256 = "sha256-s6bkwh2m5KdRr/WxWXwItO9YaDpp/HI3xjnS2UHmN+I="; + sha256 = "sha256-+6y4lOGS8VyWrZCMSgLFun0E/WOCGlHEE8J5cQiVpUY="; }; "${version}-x86_64-linux" = fetchurl { url = "${base}/stable/release/${version}/sdk/dartsdk-linux-${x86_64}-release.zip"; - sha256 = "sha256-D0XcqlO0CQtpsne4heqaTLOkFYnJEZET4bl4rVXOM18="; + sha256 = "sha256-aPmgmsYaqxwTWtLmSjm/rAiJANQ5lB3uJ12OqMhUG5U="; }; "${version}-i686-linux" = fetchurl { url = "${base}/stable/release/${version}/sdk/dartsdk-linux-${i686}-release.zip"; - sha256 = "sha256-SRq5TtxS+bwCqVxa0U2Zhn8J1Wtm4Onq+3uQS+951sw="; + sha256 = "sha256-BFIN36OURaWIgBUiO35GkMkhCBHnqtKYPJVetdJ5cZI="; }; "${version}-aarch64-linux" = fetchurl { url = "${base}/stable/release/${version}/sdk/dartsdk-linux-${aarch64}-release.zip"; - sha256 = "sha256-iDbClCNDUsxT6K6koc4EQuu7dppTbOfzCVedpQIKI5U="; + sha256 = "sha256-yZMke1raq0Mvu01LFE1aUsTEARZWMS0rAI727FHq6ts="; }; } }: @@ -47,6 +51,7 @@ stdenv.mkDerivation { mkdir -p $out cp -R * $out/ echo $libPath + '' + lib.optionalString(stdenv.isLinux) '' find $out/bin -executable -type f -exec patchelf --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) {} \; ''; @@ -63,7 +68,7 @@ stdenv.mkDerivation { with C-style syntax. It offers compilation to JavaScript, interfaces, mixins, abstract classes, reified generics, and optional typing. ''; - platforms = [ "x86_64-linux" "i686-linux" "aarch64-linux" "x86_64-darwin" ]; + platforms = [ "x86_64-linux" "i686-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ]; license = licenses.bsd3; }; } diff --git a/nixpkgs/pkgs/development/interpreters/dhall/build-dhall-url.nix b/nixpkgs/pkgs/development/interpreters/dhall/build-dhall-url.nix index 766fe3c1c2e3..6d7103f78e6f 100644 --- a/nixpkgs/pkgs/development/interpreters/dhall/build-dhall-url.nix +++ b/nixpkgs/pkgs/development/interpreters/dhall/build-dhall-url.nix @@ -59,6 +59,7 @@ let outputHash = hash; name = baseNameOf url; nativeBuildInputs = [ cacert ]; + impureEnvVars = lib.fetchers.proxyImpureEnvVars; } '' echo "${url} ${dhallHash}" > in-dhall-file @@ -76,7 +77,8 @@ let sourceFile = "source.dhall"; in - runCommand name { } ('' + runCommand name { } + ('' set -eu mkdir -p ${cacheDhall} $out/${cacheDhall} diff --git a/nixpkgs/pkgs/development/interpreters/duktape/default.nix b/nixpkgs/pkgs/development/interpreters/duktape/default.nix index 912fc691dd91..c296d013e3d1 100644 --- a/nixpkgs/pkgs/development/interpreters/duktape/default.nix +++ b/nixpkgs/pkgs/development/interpreters/duktape/default.nix @@ -8,20 +8,16 @@ stdenv.mkDerivation rec { sha256 = "sha256-kPjS+otVZ8aJmDDd7ywD88J5YLEayiIvoXqnrGE8KJA="; }; + # https://github.com/svaarala/duktape/issues/2464 + LDFLAGS = [ "-lm" ]; + nativeBuildInputs = [ validatePkgConfig ]; - postPatch = '' - substituteInPlace Makefile.sharedlibrary \ - --replace 'gcc' '${stdenv.cc.targetPrefix}cc' \ - --replace 'g++' '${stdenv.cc.targetPrefix}c++' - substituteInPlace Makefile.cmdline \ - --replace 'gcc' '${stdenv.cc.targetPrefix}cc' \ - --replace 'g++' '${stdenv.cc.targetPrefix}c++' - ''; buildPhase = '' make -f Makefile.sharedlibrary make -f Makefile.cmdline ''; + installPhase = '' install -d $out/bin install -m755 duk $out/bin/ @@ -30,6 +26,7 @@ stdenv.mkDerivation rec { make -f Makefile.sharedlibrary install INSTALL_PREFIX=$out substituteAll ${./duktape.pc.in} $out/lib/pkgconfig/duktape.pc ''; + enableParallelBuilding = true; meta = with lib; { @@ -38,6 +35,7 @@ stdenv.mkDerivation rec { downloadPage = "https://duktape.org/download.html"; license = licenses.mit; maintainers = [ maintainers.fgaz ]; + mainProgram = "duk"; platforms = platforms.all; }; } diff --git a/nixpkgs/pkgs/development/interpreters/elixir/1.13.nix b/nixpkgs/pkgs/development/interpreters/elixir/1.13.nix index 0e1ddcc19bf0..452c3c5413ec 100644 --- a/nixpkgs/pkgs/development/interpreters/elixir/1.13.nix +++ b/nixpkgs/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.3"; - sha256 = "sha256-xOIGMpjemPi1xLiYmFpQR4FD6PzeFBxSJP4QpNnEUSE="; + version = "1.13.4"; + sha256 = "sha256-xGKq62wzaIfgZN2j808fL3b8ykizQVPuePWzsy2HKfw="; minimumOTPVersion = "22"; } diff --git a/nixpkgs/pkgs/development/interpreters/erlang/R16B02-basho.nix b/nixpkgs/pkgs/development/interpreters/erlang/R16B02-basho.nix deleted file mode 100644 index 69d0ac6b7a5f..000000000000 --- a/nixpkgs/pkgs/development/interpreters/erlang/R16B02-basho.nix +++ /dev/null @@ -1,65 +0,0 @@ -{ pkgs, mkDerivation }: - -mkDerivation { - baseName = "erlang"; - version = "16B02.basho10"; - - src = pkgs.fetchFromGitHub { - owner = "basho"; - repo = "otp"; - rev = "OTP_R16B02_basho10"; - sha256 = "1s2c3ag9dnp6xmcr27kh95n1w50xly97n1mp8ivc2a3gpv4blqmj"; - }; - - preConfigure = '' - export HOME=$PWD/../ - export LANG=C - export ERL_TOP=$(pwd) - sed -e s@/bin/pwd@pwd@g -i otp_build - sed -e s@"/usr/bin/env escript"@$(pwd)/bootstrap/bin/escript@g -i lib/diameter/bin/diameterc - - ./otp_build autoconf - ''; - - enableHipe = false; - - # Do not install docs, instead use prebuilt versions. - installTargets = "install"; - postInstall = let - manpages = pkgs.fetchurl { - url = "https://www.erlang.org/download/otp_doc_man_R16B02.tar.gz"; - sha256 = "12apxjmmd591y9g9bhr97z5jbd1jarqg7wj0y2sqhl21hc1yp75p"; - }; - in '' - sed -e s@$(pwd)/bootstrap/bin/escript@$out/bin/escript@g -i $out/lib/erlang/lib/diameter-1.4.3/bin/diameterc - - tar xf "${manpages}" -C "$out/lib/erlang" - for i in "$out"/lib/erlang/man/man[0-9]/*.[0-9]; do - prefix="''${i%/*}" - mkdir -p "$out/share/man/''${prefix##*/}" - ln -s "$i" "$out/share/man/''${prefix##*/}/''${i##*/}erl" - done - ''; - - meta = { - homepage = "https://github.com/basho/otp/"; - description = "Programming language used for massively scalable soft real-time systems, Basho fork"; - - longDescription = '' - Erlang is a programming language used to build massively scalable - soft real-time systems with requirements on high availability. - Some of its uses are in telecoms, banking, e-commerce, computer - telephony and instant messaging. Erlang's runtime system has - built-in support for concurrency, distribution and fault - tolerance. - This version of Erlang is Basho's version, forked from Ericsson's - repository. - ''; - - knownVulnerabilities = [ "CVE-2017-1000385" ]; - - platforms = ["x86_64-linux" "x86_64-darwin"]; - license = pkgs.lib.licenses.asl20; - maintainers = with pkgs.lib.maintainers; [ mdaiter ]; - }; -} diff --git a/nixpkgs/pkgs/development/interpreters/erlang/R25.nix b/nixpkgs/pkgs/development/interpreters/erlang/R25.nix new file mode 100644 index 000000000000..381ea8d5c227 --- /dev/null +++ b/nixpkgs/pkgs/development/interpreters/erlang/R25.nix @@ -0,0 +1,8 @@ +{ mkDerivation }: + +# How to obtain `sha256`: +# nix-prefetch-url --unpack https://github.com/erlang/otp/archive/OTP-${version}.tar.gz +mkDerivation { + version = "25.0.3"; + sha256 = "0zchcm7gv52j30fq5p658h9c593ziirq09kkah6mpsvjfdsmvmgl"; +} diff --git a/nixpkgs/pkgs/development/interpreters/falcon/default.nix b/nixpkgs/pkgs/development/interpreters/falcon/default.nix index 0d2aa0b64203..40c05113ecff 100644 --- a/nixpkgs/pkgs/development/interpreters/falcon/default.nix +++ b/nixpkgs/pkgs/development/interpreters/falcon/default.nix @@ -1,6 +1,6 @@ -{ lib, gccStdenv, fetchFromGitHub, cmake, pkg-config, pcre, zlib, sqlite }: +{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, pcre, zlib, sqlite }: -gccStdenv.mkDerivation { +stdenv.mkDerivation { pname = "falcon"; version = "unstable-2018-10-23"; diff --git a/nixpkgs/pkgs/development/interpreters/gnu-apl/default.nix b/nixpkgs/pkgs/development/interpreters/gnu-apl/default.nix index 0f666dd9af5d..3bcada9aa8f0 100644 --- a/nixpkgs/pkgs/development/interpreters/gnu-apl/default.nix +++ b/nixpkgs/pkgs/development/interpreters/gnu-apl/default.nix @@ -11,14 +11,16 @@ stdenv.mkDerivation rec { buildInputs = [ readline gettext ncurses ]; - # Needed with GCC 8 NIX_CFLAGS_COMPILE = with lib; toString ((optionals stdenv.cc.isGNU [ + # Needed with GCC 8 "-Wno-error=int-in-bool-context" "-Wno-error=class-memaccess" "-Wno-error=restrict" "-Wno-error=format-truncation" # Needed with GCC 10 "-Wno-error=maybe-uninitialized" + # Needed with GCC 11 + "-Wno-error=misleading-indentation" ]) ++ optional stdenv.cc.isClang "-Wno-error=null-dereference"); patchPhase = lib.optionalString stdenv.isDarwin '' @@ -31,6 +33,7 @@ stdenv.mkDerivation rec { ''; meta = with lib; { + broken = stdenv.isDarwin; description = "Free interpreter for the APL programming language"; homepage = "https://www.gnu.org/software/apl/"; license = licenses.gpl3Plus; diff --git a/nixpkgs/pkgs/development/interpreters/groovy/default.nix b/nixpkgs/pkgs/development/interpreters/groovy/default.nix index 9d2b9a8f0387..e4c8c6075442 100644 --- a/nixpkgs/pkgs/development/interpreters/groovy/default.nix +++ b/nixpkgs/pkgs/development/interpreters/groovy/default.nix @@ -4,11 +4,11 @@ stdenv.mkDerivation rec { pname = "groovy"; - version = "3.0.7"; + version = "3.0.11"; src = fetchurl { - url = "http://dl.bintray.com/groovy/maven/apache-groovy-binary-${version}.zip"; - sha256 = "1xdpjqx7qaq0syw448b32q36g12pgh1hn6knyqi3k5isp0f09qmr"; + url = "mirror://apache/groovy/${version}/distribution/apache-groovy-binary-${version}.zip"; + sha256 = "85abb44e81f94d794230cf5c2c7f1003e598a5f8a6ae04322f28c6f9efe395f6"; }; nativeBuildInputs = [ makeWrapper unzip ]; diff --git a/nixpkgs/pkgs/development/interpreters/guile/1.8.nix b/nixpkgs/pkgs/development/interpreters/guile/1.8.nix index c8e15be2c014..f30270fcc83f 100644 --- a/nixpkgs/pkgs/development/interpreters/guile/1.8.nix +++ b/nixpkgs/pkgs/development/interpreters/guile/1.8.nix @@ -38,7 +38,6 @@ stdenv.mkDerivation rec { ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) pkgsBuildBuild.guile_1_8; nativeBuildInputs = [ - gawk makeWrapper pkg-config ]; diff --git a/nixpkgs/pkgs/development/interpreters/guile/2.0.nix b/nixpkgs/pkgs/development/interpreters/guile/2.0.nix index 8214ca2adcda..73fb564077a3 100644 --- a/nixpkgs/pkgs/development/interpreters/guile/2.0.nix +++ b/nixpkgs/pkgs/development/interpreters/guile/2.0.nix @@ -42,7 +42,6 @@ builder rec { nativeBuildInputs = [ makeWrapper - gawk pkg-config ]; buildInputs = [ diff --git a/nixpkgs/pkgs/development/interpreters/guile/2.2.nix b/nixpkgs/pkgs/development/interpreters/guile/2.2.nix index 04c60e80e8fc..31803d9c1665 100644 --- a/nixpkgs/pkgs/development/interpreters/guile/2.2.nix +++ b/nixpkgs/pkgs/development/interpreters/guile/2.2.nix @@ -40,7 +40,6 @@ builder rec { ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) pkgsBuildBuild.guile; nativeBuildInputs = [ - gawk makeWrapper pkg-config ]; diff --git a/nixpkgs/pkgs/development/interpreters/guile/3.0.nix b/nixpkgs/pkgs/development/interpreters/guile/3.0.nix index d0f5aa5573b6..380e983ab6f5 100644 --- a/nixpkgs/pkgs/development/interpreters/guile/3.0.nix +++ b/nixpkgs/pkgs/development/interpreters/guile/3.0.nix @@ -40,7 +40,6 @@ builder rec { ] ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) pkgsBuildBuild.guile; nativeBuildInputs = [ - gawk makeWrapper pkg-config ]; diff --git a/nixpkgs/pkgs/development/interpreters/hashlink/default.nix b/nixpkgs/pkgs/development/interpreters/hashlink/default.nix new file mode 100644 index 000000000000..eb69bd4103d2 --- /dev/null +++ b/nixpkgs/pkgs/development/interpreters/hashlink/default.nix @@ -0,0 +1,53 @@ +{ stdenv +, lib +, fetchFromGitHub +, libGL +, libGLU +, libpng +, libjpeg_turbo +, libuv +, libvorbis +, mbedtls +, openal +, pcre +, SDL2 +, sqlite +}: + +stdenv.mkDerivation rec { + pname = "hashlink"; + version = "1.12"; + + src = fetchFromGitHub { + owner = "HaxeFoundation"; + repo = "hashlink"; + rev = version; + sha256 = "AiUGhTxz4Pkrks4oE+SAuAQPMuC5T2B6jo3Jd3sNrkQ="; + }; + + patches = [ ./hashlink.patch ]; + + makeFlags = [ "PREFIX=$(out)" ]; + + buildInputs = [ + libGL + libGLU + libjpeg_turbo + libpng + libuv + libvorbis + mbedtls + openal + pcre + SDL2 + sqlite + ]; + + meta = with lib; { + description = "A virtual machine for Haxe"; + homepage = "https://hashlink.haxe.org/"; + license = licenses.mit; + platforms = [ "x86_64-linux" ]; + maintainers = with maintainers; [ iblech locallycompact ]; + }; +} diff --git a/nixpkgs/pkgs/development/interpreters/hashlink/hashlink.patch b/nixpkgs/pkgs/development/interpreters/hashlink/hashlink.patch new file mode 100644 index 000000000000..5e699073d02d --- /dev/null +++ b/nixpkgs/pkgs/development/interpreters/hashlink/hashlink.patch @@ -0,0 +1,8 @@ +*** a/Makefile 1970-01-01 01:00:01.000000000 +0100 +--- b/Makefile 2022-06-21 23:36:10.023460654 +0200 +*************** endif +*** 109,110 **** +--- 109,111 ---- + LIBOPENAL = -lopenal ++ LIBOPENGL = -lGL + RELEASE_NAME = linux diff --git a/nixpkgs/pkgs/development/interpreters/hugs/default.nix b/nixpkgs/pkgs/development/interpreters/hugs/default.nix index b903ab425c6d..ed02b41b7668 100644 --- a/nixpkgs/pkgs/development/interpreters/hugs/default.nix +++ b/nixpkgs/pkgs/development/interpreters/hugs/default.nix @@ -40,6 +40,7 @@ stdenv.mkDerivation rec { ]; meta = with lib; { + broken = stdenv.isDarwin; homepage = "https://www.haskell.org/hugs"; description = "Haskell interpreter"; maintainers = with maintainers; [ joachifm ]; diff --git a/nixpkgs/pkgs/development/interpreters/hy/builder.nix b/nixpkgs/pkgs/development/interpreters/hy/builder.nix deleted file mode 100644 index 6757f859ac14..000000000000 --- a/nixpkgs/pkgs/development/interpreters/hy/builder.nix +++ /dev/null @@ -1,40 +0,0 @@ -{ lib -, python3Packages -, hyDefinedPythonPackages /* Packages like with python.withPackages */ -, ... -}: -python3Packages.buildPythonApplication rec { - pname = "hy"; - version = "1.0a1"; - - src = python3Packages.fetchPypi { - inherit pname version; - sha256 = "sha256-lCrbvbkeutSNmvvn/eHpTnJwPb5aEH7hWTXYSE+AJmU="; - }; - - checkInputs = with python3Packages; [ flake8 pytest ]; - - propagatedBuildInputs = with python3Packages; [ - appdirs - astor - clint - colorama - fastentrypoints - funcparserlib - rply - pygments - ] ++ (hyDefinedPythonPackages python3Packages); - - # Hy does not include tests in the source distribution from PyPI, so only test executable. - checkPhase = '' - $out/bin/hy --help > /dev/null - ''; - - meta = with lib; { - description = "A LISP dialect embedded in Python"; - homepage = "https://hylang.org/"; - license = licenses.mit; - maintainers = with maintainers; [ nixy mazurel ]; - platforms = platforms.all; - }; -} diff --git a/nixpkgs/pkgs/development/interpreters/hy/default.nix b/nixpkgs/pkgs/development/interpreters/hy/default.nix deleted file mode 100644 index f5d80c11d711..000000000000 --- a/nixpkgs/pkgs/development/interpreters/hy/default.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ lib -, callPackage -, hyDefinedPythonPackages ? python-packages: [] /* Packages like with python.withPackages */ -}: -let - withPackages = ( - python-packages: callPackage ./builder.nix { - hyDefinedPythonPackages = python-packages; - } - ); -in -(withPackages hyDefinedPythonPackages) // { - # Export withPackages function for hy customization - inherit withPackages; -} diff --git a/nixpkgs/pkgs/development/interpreters/j/default.nix b/nixpkgs/pkgs/development/interpreters/j/default.nix index e41d71ef960b..5e67986ac105 100644 --- a/nixpkgs/pkgs/development/interpreters/j/default.nix +++ b/nixpkgs/pkgs/development/interpreters/j/default.nix @@ -1,82 +1,107 @@ -{ lib, stdenv, fetchFromGitHub, readline, libedit, bc +{ lib +, stdenv +, fetchFromGitHub +, bc +, libedit +, readline , avxSupport ? stdenv.hostPlatform.avxSupport }: stdenv.mkDerivation rec { pname = "j"; - version = "902"; - jtype = "release-b"; + version = "904-beta-c"; + src = fetchFromGitHub { + name = "${pname}-source"; owner = "jsoftware"; repo = "jsource"; - rev = "j${version}-${jtype}"; - sha256 = "0j67vgikqflwjqacsdicasvyv1k54s2c8vjgwmf0ix7l41p4xqz0"; - name = "jsource"; + rev = "j${version}"; + hash = "sha256-MzEO/saHEBl1JwVlFC6P2UKm9RZnV7KVrNd9h4cPV/w="; }; - buildInputs = [ readline libedit bc ]; - bits = if stdenv.is64bit then "64" else "32"; - platform = - if (stdenv.isAarch32 || stdenv.isAarch64) then "raspberry" else - 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; - - # Causes build failure due to warning - hardeningDisable = lib.optional stdenv.cc.isClang "strictoverflow"; - - # Causes build failure due to warning - # https://github.com/jsoftware/jsource/issues/16 - NIX_CFLAGS_COMPILE = "-Wno-error=return-local-addr"; + buildInputs = [ + readline + libedit + bc + ]; + + dontConfigure = true; + + # emulating build_all.sh configuration variables + jplatform = + if stdenv.isDarwin then "darwin" + else if stdenv.hostPlatform.isAarch then "raspberry" + else if stdenv.isLinux then "linux" + else "unsupported"; + + j64x = + if stdenv.is32bit then "j32" + else if stdenv.isx86_64 then + if (stdenv.isLinux && avxSupport) then "j64avx" else "j64" + else if stdenv.isAarch64 then + if stdenv.isDarwin then "j64arm" else "j64" + else "unsupported"; buildPhase = '' - export SOURCE_DIR=$(pwd) - export HOME=$TMPDIR - export JLIB=$SOURCE_DIR/jlibrary + runHook preBuild - echo $OUT_DIR + export SRCDIR=$(pwd) + export HOME=$TMPDIR + export JLIB=$SRCDIR/jlibrary + export CC=cc cd make2 patchShebangs . - sed -i $JLIB/bin/profile.ijs -e "s@'/usr/share/j/.*'@'$out/share/j'@;" - j64x="${j64x}" ./build_all.sh + j64x="${j64x}" jplatform="${jplatform}" ./build_all.sh - cp $SOURCE_DIR/bin/${platform}/j${bits}*/* "$JLIB/bin" + cp -v $SRCDIR/bin/${jplatform}/${j64x}/* "$JLIB/bin" + + runHook postBuild ''; + doCheck = true; + checkPhase = '' + runHook preCheck - echo 'i. 5' | $JLIB/bin/jconsole | fgrep "0 1 2 3 4" + echo "Smoke test" + echo 'i. 10' | $JLIB/bin/jconsole | fgrep "0 1 2 3 4 5 6 7 8 9" # Now run the real tests - cd $SOURCE_DIR/test + pushd $SRCDIR/test for f in *.ijs do - echo $f + echo -n "test $f: " $JLIB/bin/jconsole < $f > /dev/null || echo FAIL && echo PASS done + popd + + runHook postCheck ''; installPhase = '' - mkdir -p "$out" + runHook preInstall - mkdir -p "$out/share/j" + mkdir -p "$out/share/j/" cp -r $JLIB/{addons,system} "$out/share/j" cp -r $JLIB/bin "$out" + + runHook postInstall ''; meta = with lib; { + homepage = "http://jsoftware.com/"; description = "J programming language, an ASCII-based APL successor"; - maintainers = with maintainers; [ raskin synthetica ]; - platforms = with platforms; linux ++ darwin; + longDescription = '' + J is a high-level, general-purpose programming language that is + particularly suited to the mathematical, statistical, and logical analysis + of data. It is a powerful tool for developing algorithms and exploring + problems that are not already well understood. + ''; license = licenses.gpl3Plus; - homepage = "http://jsoftware.com/"; + maintainers = with maintainers; [ raskin synthetica AndersonTorres ]; + platforms = with platforms; unix; }; } diff --git a/nixpkgs/pkgs/development/interpreters/janet/default.nix b/nixpkgs/pkgs/development/interpreters/janet/default.nix index bc17750f2535..718f13ad2e7d 100644 --- a/nixpkgs/pkgs/development/interpreters/janet/default.nix +++ b/nixpkgs/pkgs/development/interpreters/janet/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "janet"; - version = "1.21.0"; + version = "1.24.0"; src = fetchFromGitHub { owner = "janet-lang"; repo = pname; rev = "v${version}"; - sha256 = "sha256-chVnD5mxnA50yEL65KUYJwpkZ4jPWiLVHHXeeFxtHBo="; + sha256 = "sha256-scc29tS3jiGacHp90tGmn/qnbLscJ4sAOCm8IteXfh4="; }; # This release fails the test suite on darwin, remove when debugged. @@ -26,6 +26,12 @@ stdenv.mkDerivation rec { doCheck = true; + doInstallCheck = true; + + installCheckPhase = '' + $out/bin/janet --help + ''; + meta = with lib; { description = "Janet programming language"; homepage = "https://janet-lang.org/"; diff --git a/nixpkgs/pkgs/development/interpreters/janet/jpm.nix b/nixpkgs/pkgs/development/interpreters/janet/jpm.nix index 708930851255..050a035e0666 100644 --- a/nixpkgs/pkgs/development/interpreters/janet/jpm.nix +++ b/nixpkgs/pkgs/development/interpreters/janet/jpm.nix @@ -13,13 +13,13 @@ let in stdenv.mkDerivation rec { pname = "jpm"; - version = "0.0.2"; + version = "1.1.0"; src = fetchFromGitHub { owner = "janet-lang"; repo = pname; - rev = version; - sha256 = "sha256-nv+vkDjEY711L+C5ibw48DUSNqq2UJiFC2i5LntuBNM="; + rev = "v${version}"; + sha256 = "sha256-lPB4jew6RkJlDp8xOQ4YA9MkgLBImaBHcvv4WF/sLRc="; }; # `auto-shebangs true` gives us a shebang line that points to janet inside the diff --git a/nixpkgs/pkgs/development/interpreters/joker/default.nix b/nixpkgs/pkgs/development/interpreters/joker/default.nix index 141bda75fa88..ae408f5fec5e 100644 --- a/nixpkgs/pkgs/development/interpreters/joker/default.nix +++ b/nixpkgs/pkgs/development/interpreters/joker/default.nix @@ -2,13 +2,13 @@ buildGoModule rec { pname = "joker"; - version = "0.18.0"; + version = "1.0.0"; src = fetchFromGitHub { rev = "v${version}"; owner = "candid82"; repo = "joker"; - sha256 = "sha256-Iia4sl8lRTpek5aZvQW/yy+TnMq5KNJH+pBnksqL/G0="; + sha256 = "sha256-SlkhxALJwrZ/DOuBbqjb+wHEfT5mhd3lSD6E0geFP4Y="; }; vendorSha256 = "sha256-AYoespfzFLP/jIIxbw5K653wc7sSfLY8K7di8GZ64wA="; diff --git a/nixpkgs/pkgs/development/interpreters/jruby/default.nix b/nixpkgs/pkgs/development/interpreters/jruby/default.nix index 468f9fac64c1..53da18e9e9f9 100644 --- a/nixpkgs/pkgs/development/interpreters/jruby/default.nix +++ b/nixpkgs/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.3.0"; + version = "9.3.6.0"; src = fetchurl { url = "https://s3.amazonaws.com/jruby.org/downloads/${version}/jruby-bin-${version}.tar.gz"; - sha256 = "sha256-Pagoy+KH1UaFB/HCxCvvbPNLxTYbzWpdmcIHshuf3Fw="; + sha256 = "sha256-dHr2r5mmdPII9A2o2yLXfG2kk6gygOmQtS1SOr2UmeI="; }; nativeBuildInputs = [ makeWrapper ]; @@ -56,6 +56,7 @@ jruby = stdenv.mkDerivation rec { license = with licenses; [ cpl10 gpl2 lgpl21 ]; platforms = platforms.unix; maintainers = [ maintainers.fzakaria ]; + sourceProvenance = with sourceTypes; [ binaryBytecode ]; }; }; in jruby.overrideAttrs (oldAttrs: { diff --git a/nixpkgs/pkgs/development/interpreters/jython/default.nix b/nixpkgs/pkgs/development/interpreters/jython/default.nix index 38b599d339e7..9393c5a42046 100644 --- a/nixpkgs/pkgs/development/interpreters/jython/default.nix +++ b/nixpkgs/pkgs/development/interpreters/jython/default.nix @@ -23,6 +23,7 @@ stdenv.mkDerivation rec { meta = { description = "Python interpreter written in Java"; homepage = "https://jython.org/"; + sourceProvenance = with lib.sourceTypes; [ binaryBytecode ]; license = lib.licenses.psfl; platforms = jre.meta.platforms; }; diff --git a/nixpkgs/pkgs/development/interpreters/kerf/default.nix b/nixpkgs/pkgs/development/interpreters/kerf/default.nix new file mode 100644 index 000000000000..5b605c6564b3 --- /dev/null +++ b/nixpkgs/pkgs/development/interpreters/kerf/default.nix @@ -0,0 +1,92 @@ +{ lib, stdenv, fetchFromGitHub +, libedit, zlib, ncurses, expect + +# darwin only below +, Accelerate, CoreGraphics, CoreVideo +}: + +stdenv.mkDerivation rec { + pname = "kerf"; + version = "unstable-2022-08-05"; + + src = fetchFromGitHub { + owner = "kevinlawler"; + repo = "kerf1"; + rev = "4ec5b592b310b96d33654d20d6a511e6fffc0f9d"; + hash = "sha256-0sU2zOk5I69lQyrn1g0qsae7S/IBT6eA/911qp0GNkk="; + }; + + sourceRoot = "source/src"; + buildInputs = [ libedit zlib ncurses ] + ++ lib.optional stdenv.isDarwin ([ + Accelerate + ] ++ lib.optional stdenv.isx86_64 /* && isDarwin */ [ + CoreGraphics CoreVideo + ]); + + checkInputs = [ expect ]; + doCheck = true; + + makeFlags = [ "kerf" "kerf_test" ]; + + # avoid a huge amount of warnings to make failures clearer + NIX_CFLAGS_COMPILE = map (x: "-Wno-${x}") [ + "void-pointer-to-int-cast" + "format" + "implicit-function-declaration" + "gnu-variable-sized-type-not-at-end" + "unused-result" + ] ++ lib.optional stdenv.isDarwin [ "-fcommon" ]; + + patchPhase = '' + substituteInPlace ./Makefile \ + --replace 'CPUS ?=' 'CPUS = $(NIX_BUILD_CORES) #' \ + --replace 'termcap' 'ncurses' + ''; + + # the kerf executable uses ncurses to create a fancy terminal for input and + # reads terminal keystrokes directly, so it doesn't read from stdin as + # expected, hence why we use this fancy expect script to run the test exe and + # send 'quit' to the prompt after it finishes. + checkPhase = '' + expect <<EOD + set timeout 60 + spawn ./kerf_test + expect { + "Passed" {} + "Failed" { exit 1 } + timeout { exit 1 } + } + expect { + "KeRF> " {send "quit\r"} + timeout { exit 1 } + } + expect { + "\[DEBUG\] OK: Done OK." {} + "\[DEBUG\] FAILED: Debug failure." { exit 1 } + timeout { exit 1 } + } + exit 0 + EOD + ''; + + installPhase = "install -D kerf $out/bin/kerf"; + + meta = with lib; { + description = "Columnar tick database and time-series language"; + longDescription = '' + Kerf is a columnar tick database and small programming + language that is a superset of JSON and SQL. It can be + used for local analytics, timeseries, logfile processing, + and more. + ''; + license = with licenses; [ bsd2 ]; + homepage = "https://github.com/kevinlawler/kerf1"; + platforms = platforms.unix; + maintainers = with maintainers; [ thoughtpolice ]; + + # aarch64-linux seems hopeless, with over 2,000 warnings + # generated? + broken = (stdenv.isLinux && stdenv.isAarch64); + }; +} diff --git a/nixpkgs/pkgs/development/interpreters/kona/default.nix b/nixpkgs/pkgs/development/interpreters/kona/default.nix index 24e10eb7306a..cfc1c12d1923 100644 --- a/nixpkgs/pkgs/development/interpreters/kona/default.nix +++ b/nixpkgs/pkgs/development/interpreters/kona/default.nix @@ -18,6 +18,7 @@ stdenv.mkDerivation rec { description = "An interpreter of K, APL-like programming language"; homepage = "https://github.com/kevinlawler/kona/"; maintainers = with maintainers; [ raskin ]; + mainProgram = "k"; platforms = platforms.all; license = licenses.isc; }; diff --git a/nixpkgs/pkgs/development/interpreters/lolcode/default.nix b/nixpkgs/pkgs/development/interpreters/lolcode/default.nix index 0bb95ed6ea52..23a77596e1d9 100644 --- a/nixpkgs/pkgs/development/interpreters/lolcode/default.nix +++ b/nixpkgs/pkgs/development/interpreters/lolcode/default.nix @@ -28,6 +28,7 @@ stdenv.mkDerivation rec { ''; license = licenses.gpl3; maintainers = [ maintainers.AndersonTorres ]; + mainProgram = "lolcode-lci"; platforms = lib.platforms.unix; }; diff --git a/nixpkgs/pkgs/development/interpreters/love/0.10.nix b/nixpkgs/pkgs/development/interpreters/love/0.10.nix index 2719008bbd9e..5e97e4f003e2 100644 --- a/nixpkgs/pkgs/development/interpreters/love/0.10.nix +++ b/nixpkgs/pkgs/development/interpreters/love/0.10.nix @@ -15,10 +15,10 @@ stdenv.mkDerivation rec { sha256 = "sha256-C/Ifd0KjmaM5Y2fxBiDNz1GQoT4GeH/vyUCiira57U4="; }; - nativeBuildInputs = [ pkg-config ]; + nativeBuildInputs = [ pkg-config autoconf automake ]; buildInputs = [ SDL2 libGLU libGL openal luajit libdevil freetype physfs libmodplug mpg123 - libvorbis libogg libtheora autoconf which libtool automake + libvorbis libogg libtheora which libtool ]; preConfigure = "$shell ./platform/unix/automagic"; diff --git a/nixpkgs/pkgs/development/interpreters/love/11.nix b/nixpkgs/pkgs/development/interpreters/love/11.nix index 83095ac0924e..bb8f88379fad 100644 --- a/nixpkgs/pkgs/development/interpreters/love/11.nix +++ b/nixpkgs/pkgs/development/interpreters/love/11.nix @@ -15,10 +15,10 @@ stdenv.mkDerivation rec { sha256 = "0kpdp6v8m8j0r7ppyy067shr0lfgrlh0dwb7ccws76d389vizwhb"; }; - nativeBuildInputs = [ pkg-config ]; + nativeBuildInputs = [ pkg-config autoconf automake ]; buildInputs = [ SDL2 libGLU libGL openal luajit libdevil freetype physfs libmodplug mpg123 - libvorbis libogg libtheora autoconf which libtool automake + libvorbis libogg libtheora which libtool ]; preConfigure = "$shell ./platform/unix/automagic"; diff --git a/nixpkgs/pkgs/development/interpreters/lua-5/CVE-2022-28805.patch b/nixpkgs/pkgs/development/interpreters/lua-5/CVE-2022-28805.patch new file mode 100644 index 000000000000..bcf16acbea42 --- /dev/null +++ b/nixpkgs/pkgs/development/interpreters/lua-5/CVE-2022-28805.patch @@ -0,0 +1,10 @@ +--- a/src/lparser.c ++++ b/src/lparser.c +@@ -301,6 +301,7 @@ + expdesc key; + singlevaraux(fs, ls->envn, var, 1); /* get environment variable */ + lua_assert(var->k == VLOCAL || var->k == VUPVAL); ++ luaK_exp2anyregup(fs, var); /* but could be a constant */ + codestring(ls, &key, varname); /* key is variable name */ + luaK_indexed(fs, var, &key); /* env[varname] */ + } diff --git a/nixpkgs/pkgs/development/interpreters/lua-5/build-lua-package.nix b/nixpkgs/pkgs/development/interpreters/lua-5/build-lua-package.nix index ff93e842eeae..0af7b470b0b3 100644 --- a/nixpkgs/pkgs/development/interpreters/lua-5/build-lua-package.nix +++ b/nixpkgs/pkgs/development/interpreters/lua-5/build-lua-package.nix @@ -4,6 +4,7 @@ , wrapLua # Whether the derivation provides a lua module or not. , toLuaModule +, luarocksCheckHook }: { @@ -42,6 +43,7 @@ pname , passthru ? {} , doCheck ? false +, doInstallCheck ? false # Non-Lua / system (e.g. C library) dependencies. Is a list of deps, where # each dep is either a derivation, or an attribute set like @@ -97,10 +99,12 @@ let # Filter out the lua derivation itself from the Lua module dependency # closure, as it doesn't have a rock tree :) requiredLuaRocks = lib.filter (d: d ? luaModule) - (lua.pkgs.requiredLuaModules luarocksDrv.propagatedBuildInputs); + (lua.pkgs.requiredLuaModules (luarocksDrv.nativeBuildInputs ++ luarocksDrv.propagatedBuildInputs)); # example externalDeps': [ { name = "CRYPTO"; dep = pkgs.openssl; } ] - externalDepsGenerated = lib.unique (lib.filter (drv: !drv ? luaModule) (luarocksDrv.propagatedBuildInputs ++ luarocksDrv.buildInputs)); + externalDepsGenerated = lib.unique (lib.filter (drv: !drv ? luaModule) ( + luarocksDrv.nativeBuildInputs ++ luarocksDrv.propagatedBuildInputs ++ luarocksDrv.buildInputs) + ); externalDeps' = lib.filter (dep: !lib.isDerivation dep) externalDeps; luarocksDrv = toLuaModule ( lua.stdenv.mkDerivation ( @@ -108,15 +112,17 @@ builtins.removeAttrs attrs ["disabled" "checkInputs" "externalDeps" "extraVariab name = namePrefix + pname + "-" + version; - buildInputs = [ wrapLua lua.pkgs.luarocks ] + nativeBuildInputs = [ + wrapLua + lua.pkgs.luarocks + ] ++ buildInputs - ++ lib.optionals doCheck checkInputs + ++ lib.optionals doCheck ([ luarocksCheckHook ] ++ checkInputs) ++ (map (d: d.dep) externalDeps') ; # propagate lua to active setup-hook in nix-shell propagatedBuildInputs = propagatedBuildInputs ++ [ lua ]; - inherit doCheck; # @-patterns do not capture formal argument default values, so we need to # explicitly inherit this for it to be available as a shell variable in the @@ -190,6 +196,14 @@ builtins.removeAttrs attrs ["disabled" "checkInputs" "externalDeps" "extraVariab runHook postCheck ''; + LUAROCKS_CONFIG="$PWD/${luarocks_config}"; + + shellHook = '' + runHook preShell + export LUAROCKS_CONFIG="$PWD/${luarocks_config}"; + runHook postShell + ''; + passthru = { inherit lua; # The lua interpreter inherit externalDeps; diff --git a/nixpkgs/pkgs/development/interpreters/lua-5/default.nix b/nixpkgs/pkgs/development/interpreters/lua-5/default.nix index 3e36f77dab43..97e444ded903 100644 --- a/nixpkgs/pkgs/development/interpreters/lua-5/default.nix +++ b/nixpkgs/pkgs/development/interpreters/lua-5/default.nix @@ -1,12 +1,30 @@ # similar to interpreters/python/default.nix -{ stdenv, lib, callPackage, fetchurl, fetchpatch }: +{ stdenv, lib, callPackage, fetchurl, fetchpatch, makeBinaryWrapper }: rec { lua5_4 = callPackage ./interpreter.nix { sourceVersion = { major = "5"; minor = "4"; patch = "3"; }; hash = "1yxvjvnbg4nyrdv10bq42gz6dr66pyan28lgzfygqfwy2rv24qgq"; + makeWrapper = makeBinaryWrapper; - patches = lib.optional stdenv.isDarwin ./5.4.darwin.patch; + patches = lib.optional stdenv.isDarwin ./5.4.darwin.patch + ++ [ + (fetchpatch { + name = "CVE-2022-28805.patch"; + url = "https://github.com/lua/lua/commit/1f3c6f4534c6411313361697d98d1145a1f030fa.patch"; + sha256 = "sha256-YTwoolSnRNJIHFPVijSO6ZDw35BG5oWYralZ8qOb9y8="; + stripLen = 1; + extraPrefix = "src/"; + excludes = [ "src/testes/*" ]; + }) + (fetchpatch { + name = "CVE-2022-33099.patch"; + url = "https://github.com/lua/lua/commit/42d40581dd919fb134c07027ca1ce0844c670daf.patch"; + sha256 = "sha256-qj1Dq1ojVoknALSa67jhgH3G3Kk4GtJP6ROFElVF+D0="; + stripLen = 1; + extraPrefix = "src/"; + }) + ]; }; lua5_4_compat = lua5_4.override({ @@ -16,6 +34,7 @@ rec { lua5_3 = callPackage ./interpreter.nix { sourceVersion = { major = "5"; minor = "3"; patch = "6"; }; hash = "0q3d8qhd7p0b7a4mh9g7fxqksqfs6mr1nav74vq26qvkp2dxcpzw"; + makeWrapper = makeBinaryWrapper; patches = lib.optionals stdenv.isDarwin [ ./5.2.darwin.patch ]; @@ -29,7 +48,10 @@ rec { lua5_2 = callPackage ./interpreter.nix { sourceVersion = { major = "5"; minor = "2"; patch = "4"; }; hash = "0jwznq0l8qg9wh5grwg07b5cy3lzngvl5m2nl1ikp6vqssmf9qmr"; - patches = lib.optional stdenv.isDarwin ./5.2.darwin.patch; + makeWrapper = makeBinaryWrapper; + patches = [ + ./CVE-2022-28805.patch + ] ++ lib.optional stdenv.isDarwin ./5.2.darwin.patch; }; lua5_2_compat = lua5_2.override({ @@ -40,6 +62,7 @@ rec { lua5_1 = callPackage ./interpreter.nix { sourceVersion = { major = "5"; minor = "1"; patch = "5"; }; hash = "2640fc56a795f29d28ef15e13c34a47e223960b0240e8cb0a82d9b0738695333"; + makeWrapper = makeBinaryWrapper; patches = (lib.optional stdenv.isDarwin ./5.1.darwin.patch) ++ [ ./CVE-2014-5461.patch ]; }; diff --git a/nixpkgs/pkgs/development/interpreters/lua-5/hooks/default.nix b/nixpkgs/pkgs/development/interpreters/lua-5/hooks/default.nix index 8fd725a9b8a4..fc92c59bb910 100644 --- a/nixpkgs/pkgs/development/interpreters/lua-5/hooks/default.nix +++ b/nixpkgs/pkgs/development/interpreters/lua-5/hooks/default.nix @@ -24,4 +24,17 @@ in { mv hook.sh $out ''; + luarocksCheckHook = callPackage ({ luarocks }: + makeSetupHook { + name = "luarocks-check-hook"; + deps = [ luarocks ]; + } ./luarocks-check-hook.sh) {}; + + # luarocks installs data in a non-overridable location. Until a proper luarocks patch, + # we move the files around ourselves + luarocksMoveDataFolder = callPackage ({ }: + makeSetupHook { + name = "luarocks-move-rock"; + deps = [ ]; + } ./luarocks-move-data.sh) {}; } diff --git a/nixpkgs/pkgs/development/interpreters/lua-5/hooks/luarocks-check-hook.sh b/nixpkgs/pkgs/development/interpreters/lua-5/hooks/luarocks-check-hook.sh new file mode 100644 index 000000000000..bc6c6255d560 --- /dev/null +++ b/nixpkgs/pkgs/development/interpreters/lua-5/hooks/luarocks-check-hook.sh @@ -0,0 +1,18 @@ +# Setup hook for checking whether Python imports succeed +echo "Sourcing luarocks-check-hook.sh" + +luarocksCheckPhase () { + echo "Executing luarocksCheckPhase" + runHook preCheck + + luarocks test + + runHook postCheck + echo "Finished executing luarocksCheckPhase" +} + +if [ -z "${dontLuarocksCheck-}" ] && [ -z "${checkPhase-}" ]; then + echo "Using luarocksCheckPhase" + checkPhase+=" luarocksCheckPhase" +fi + diff --git a/nixpkgs/pkgs/development/interpreters/lua-5/hooks/luarocks-move-data.sh b/nixpkgs/pkgs/development/interpreters/lua-5/hooks/luarocks-move-data.sh new file mode 100644 index 000000000000..f0b56178f01e --- /dev/null +++ b/nixpkgs/pkgs/development/interpreters/lua-5/hooks/luarocks-move-data.sh @@ -0,0 +1,15 @@ +# luarocks installs data in a non-overridable location. Until a proper luarocks patch, +# we move the files around ourselves +echo "Sourcing luarocks-move-data-hook.sh" + +luarocksMoveDataHook () { + echo "Executing luarocksMoveDataHook" + if [ -d "$out/$rocksSubdir" ]; then + cp -rfv "$out/$rocksSubdir/$pname/$version/." "$out" + fi + + echo "Finished executing luarocksMoveDataHook" +} + +echo "Using luarocksMoveDataHook" +preDistPhases+=" luarocksMoveDataHook" diff --git a/nixpkgs/pkgs/development/interpreters/lua-5/interpreter.nix b/nixpkgs/pkgs/development/interpreters/lua-5/interpreter.nix index de61714f2421..1fb56851ce52 100644 --- a/nixpkgs/pkgs/development/interpreters/lua-5/interpreter.nix +++ b/nixpkgs/pkgs/development/interpreters/lua-5/interpreter.nix @@ -126,6 +126,7 @@ self = stdenv.mkDerivation rec { passthru = rec { buildEnv = callPackage ./wrapper.nix { lua = self; + inherit makeWrapper; inherit (luaPackages) requiredLuaModules; }; withPackages = import ./with-packages.nix { inherit buildEnv luaPackages;}; diff --git a/nixpkgs/pkgs/development/interpreters/luajit/2.0.nix b/nixpkgs/pkgs/development/interpreters/luajit/2.0.nix index 5516bf002cd9..f2fc16963cad 100644 --- a/nixpkgs/pkgs/development/interpreters/luajit/2.0.nix +++ b/nixpkgs/pkgs/development/interpreters/luajit/2.0.nix @@ -1,10 +1,10 @@ { self, callPackage, lib }: callPackage ./default.nix { inherit self; - version = "2.0.5-2021-10-02"; - rev = "d3294fa63b344173db68dd612c6d3801631e28d4"; + version = "2.0.5-2022-03-13"; + rev = "93a65d3cc263aef2d2feb3d7ff2206aca3bee17e"; isStable = true; - sha256 = "0ja6x7bv3iqnf6m8xk6qp1dgan2b7mys0ff86dw671fqqrfw28fn"; + hash = "sha256-Gp7OdfxBGkW59zxWUml2ugPABLUv2SezMiDblA/FZ7g="; extraMeta = { # this isn't precise but it at least stops the useless Hydra build platforms = with lib; filter (p: !hasPrefix "aarch64-" p) (platforms.linux ++ platforms.darwin); diff --git a/nixpkgs/pkgs/development/interpreters/luajit/2.1.nix b/nixpkgs/pkgs/development/interpreters/luajit/2.1.nix index 4898999281d0..507bc40fcf6a 100644 --- a/nixpkgs/pkgs/development/interpreters/luajit/2.1.nix +++ b/nixpkgs/pkgs/development/interpreters/luajit/2.1.nix @@ -1,8 +1,8 @@ { self, callPackage }: callPackage ./default.nix { inherit self; - version = "2.1.0-2021-10-27"; - rev = "b4b2dce9fc3ffaaaede39b36d06415311e2aa516"; + version = "2.1.0-2022-04-05"; + rev = "5e3c45c43bb0e0f1f2917d432e9d2dba12c42a6e"; isStable = false; - sha256 = "185s071aa0yffz8npgdxj7l98cs987vddb2l5pzfcdqfj41gn55q"; + hash = "sha256-Q+34hJDgyCqmtThHbxR16Nn7zhq4Ql142No2rO57HL0="; } diff --git a/nixpkgs/pkgs/development/interpreters/luajit/default.nix b/nixpkgs/pkgs/development/interpreters/luajit/default.nix index 4e2931aa7688..480e34244134 100644 --- a/nixpkgs/pkgs/development/interpreters/luajit/default.nix +++ b/nixpkgs/pkgs/development/interpreters/luajit/default.nix @@ -4,7 +4,7 @@ , buildPackages , name ? "luajit-${version}" , isStable -, sha256 +, hash , rev , version , extraMeta ? { } @@ -46,7 +46,7 @@ stdenv.mkDerivation rec { src = fetchFromGitHub { owner = "LuaJIT"; repo = "LuaJIT"; - inherit sha256 rev; + inherit hash rev; }; luaversion = "5.1"; diff --git a/nixpkgs/pkgs/development/interpreters/lunatic/default.nix b/nixpkgs/pkgs/development/interpreters/lunatic/default.nix index 425060e240d4..9e716694759c 100644 --- a/nixpkgs/pkgs/development/interpreters/lunatic/default.nix +++ b/nixpkgs/pkgs/development/interpreters/lunatic/default.nix @@ -1,26 +1,32 @@ -{ lib, rustPlatform, fetchFromGitHub, cmake, stdenv }: +{ lib, rustPlatform, fetchFromGitHub, cmake, stdenv, Security }: rustPlatform.buildRustPackage rec { pname = "lunatic"; - version = "0.7.5"; + version = "0.10.0"; src = fetchFromGitHub { owner = "lunatic-solutions"; repo = pname; rev = "v${version}"; - sha256 = "sha256-HqDrGoyYzdx8OTanlRd95L1wAtFeew7Xs2rZ7nK2Zus="; + sha256 = "sha256-MfN4NZIkzQji+bIfpgDdVyGXiD291ULGT2JslSevr/w="; }; - cargoSha256 = "sha256-t3EwVYrKx7dvUcSp0B1iUAklg7WdQDld/T0O1HgHw54="; + cargoSha256 = "sha256-Qpu6FKIrDZyEbcv/uRjInz6lmMeTSZvY/JGLJe+My+U="; nativeBuildInputs = [ cmake ]; + buildInputs = lib.optional stdenv.isDarwin Security; + + checkFlags = [ + # requires simd support which is not always available on hydra + "--skip=state::tests::import_filter_signature_matches" + ]; + meta = with lib; { description = "An Erlang inspired runtime for WebAssembly"; homepage = "https://lunatic.solutions"; changelog = "https://github.com/lunatic-solutions/lunatic/blob/v${version}/RELEASES.md"; license = with licenses; [ mit /* or */ asl20 ]; maintainers = with maintainers; [ figsoda ]; - broken = stdenv.isDarwin; }; } diff --git a/nixpkgs/pkgs/development/interpreters/maude/default.nix b/nixpkgs/pkgs/development/interpreters/maude/default.nix index 860f9ac3a5eb..96a715cbbc7c 100644 --- a/nixpkgs/pkgs/development/interpreters/maude/default.nix +++ b/nixpkgs/pkgs/development/interpreters/maude/default.nix @@ -30,6 +30,10 @@ stdenv.mkDerivation { hardeningDisable = [ "stackprotector" ] ++ lib.optionals stdenv.isi686 [ "pic" "fortify" ]; + # Fix for glibc-2.34, see + # https://gitweb.gentoo.org/repo/gentoo.git/commit/dev-lang/maude/maude-3.1-r1.ebuild?id=f021cc6cfa1e35eb9c59955830f1fd89bfcb26b4 + configureFlags = [ "--without-libsigsegv" ]; + preConfigure = '' configureFlagsArray=( --datadir="$out/share/maude" @@ -53,6 +57,7 @@ stdenv.mkDerivation { enableParallelBuilding = false; meta = { + broken = stdenv.isDarwin; homepage = "http://maude.cs.illinois.edu/"; description = "High-level specification language"; license = lib.licenses.gpl2Plus; diff --git a/nixpkgs/pkgs/development/interpreters/micropython/default.nix b/nixpkgs/pkgs/development/interpreters/micropython/default.nix index 3c85b67a942d..52be0a412078 100644 --- a/nixpkgs/pkgs/development/interpreters/micropython/default.nix +++ b/nixpkgs/pkgs/development/interpreters/micropython/default.nix @@ -9,13 +9,13 @@ stdenv.mkDerivation rec { pname = "micropython"; - version = "1.18"; + version = "1.19.1"; src = fetchFromGitHub { - owner = "micropython"; - repo = "micropython"; - rev = "v${version}"; - sha256 = "sha256-roskIDyY3ehasOm8Yn4braLNZtaeuItb9ZOUgF4CXww="; + owner = "micropython"; + repo = "micropython"; + rev = "v${version}"; + sha256 = "sha256-BoX3Z3Zr/AQqkgRrq+UVgdoDqNESDTNsY9AtrElpzfA="; fetchSubmodules = true; }; diff --git a/nixpkgs/pkgs/development/interpreters/nickel/default.nix b/nixpkgs/pkgs/development/interpreters/nickel/default.nix new file mode 100644 index 000000000000..01b7fd54106c --- /dev/null +++ b/nixpkgs/pkgs/development/interpreters/nickel/default.nix @@ -0,0 +1,33 @@ +{ lib +, rustPlatform +, fetchFromGitHub +}: + +rustPlatform.buildRustPackage rec { + pname = "nickel"; + version = "0.2.1"; + + src = fetchFromGitHub { + owner = "tweag"; + repo = pname; + rev = "refs/tags/${version}"; # because pure ${version} doesn't work + hash = "sha256-Sf0UJAfUtP7oU31VkVqCtdRmfjaHV34gYeUPNsTmQvo="; + }; + + cargoSha256 = "sha256-oY4PYMZBN5+nsARHV+A5D7a6fUt9UMHBn83ONgaQp8E="; + + meta = with lib; { + homepage = "https://nickel-lang.org/"; + description = "Better configuration for less"; + longDescription = '' + Nickel is the cheap configuration language. + + Its purpose is to automate the generation of static configuration files - + think JSON, YAML, XML, or your favorite data representation language - + that are then fed to another system. It is designed to have a simple, + well-understood core: it is in essence JSON with functions. + ''; + license = licenses.mit; + maintainers = with maintainers; [ AndersonTorres ]; + }; +} diff --git a/nixpkgs/pkgs/development/interpreters/oak/default.nix b/nixpkgs/pkgs/development/interpreters/oak/default.nix new file mode 100644 index 000000000000..29b476e7c7e3 --- /dev/null +++ b/nixpkgs/pkgs/development/interpreters/oak/default.nix @@ -0,0 +1,25 @@ +{ lib +, buildGoModule +, fetchFromGitHub +}: + +buildGoModule rec { + pname = "oak"; + version = "0.2"; + + src = fetchFromGitHub { + owner = "thesephist"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-00UanINtrFyjQWiAw1ucB4eEODMr9+wT+99Zy2Oc1j4="; + }; + + vendorSha256 = "sha256-iQtb3zNa57nB6x4InVPw7FCmW7XPw5yuz0OcfASXPD8="; + + meta = with lib; { + description = "Expressive, simple, dynamic programming language"; + homepage = "https://oaklang.org/"; + license = licenses.mit; + maintainers = with maintainers; [ tejasag ]; + }; +} diff --git a/nixpkgs/pkgs/development/interpreters/octave/default.nix b/nixpkgs/pkgs/development/interpreters/octave/default.nix index 1bd78a8a2d4e..ab2b6af9d5f9 100644 --- a/nixpkgs/pkgs/development/interpreters/octave/default.nix +++ b/nixpkgs/pkgs/development/interpreters/octave/default.nix @@ -58,9 +58,6 @@ , qtscript ? null , qscintilla ? null , qttools ? null -# - JIT compiler for loops: -, enableJIT ? false -, llvm ? null , libiconv , darwin }: @@ -114,14 +111,19 @@ let }; self = mkDerivation rec { - version = "6.4.0"; + version = "7.1.0"; pname = "octave"; src = fetchurl { url = "mirror://gnu/octave/${pname}-${version}.tar.gz"; - sha256 = "sha256-tI8z1Pzq85TPvqc6jIUAAJNtg6QXOaJPdWi1sKezms0="; + sha256 = "sha256-1KnYHz9ntKbgfLeoDcsQrV6RdvzDB2LHCoFYCmS4sLY="; }; + patches = [ + # https://savannah.gnu.org/bugs/?func=detailitem&item_id=62436 + ./patches/bug62436.patch + ]; + buildInputs = [ readline ncurses @@ -173,7 +175,6 @@ let texinfo ] ++ lib.optionals (sundials != null) [ sundials ] - ++ lib.optionals enableJIT [ llvm ] ++ lib.optionals enableQt [ qtscript qttools @@ -199,7 +200,6 @@ let ++ lib.optionals enableReadline [ "--enable-readline" ] ++ lib.optionals stdenv.isDarwin [ "--with-x=no" ] ++ lib.optionals enableQt [ "--with-qt=5" ] - ++ lib.optionals enableJIT [ "--enable-jit" ] ; # Keep a copy of the octave tests detailed results in the output @@ -220,7 +220,7 @@ let inherit portaudio; inherit jdk; inherit python; - inherit enableQt enableJIT enableReadline enableJava; + inherit enableQt enableReadline enableJava; buildEnv = callPackage ./build-env.nix { octave = self; inherit octavePackages wrapOctave; @@ -236,8 +236,6 @@ let license = lib.licenses.gpl3Plus; maintainers = with lib.maintainers; [ raskin doronbehar ]; description = "Scientific Programming Language"; - # https://savannah.gnu.org/bugs/?func=detailitem&item_id=56425 is the best attempt to fix JIT - broken = enableJIT; platforms = if overridePlatforms == null then (lib.platforms.linux ++ lib.platforms.darwin) else overridePlatforms; diff --git a/nixpkgs/pkgs/development/interpreters/octave/patches/bug62436.patch b/nixpkgs/pkgs/development/interpreters/octave/patches/bug62436.patch new file mode 100644 index 000000000000..d9d7cfc30408 --- /dev/null +++ b/nixpkgs/pkgs/development/interpreters/octave/patches/bug62436.patch @@ -0,0 +1,27 @@ +# HG changeset patch +# User John Donoghue <john.donoghue@ieee.org> +# Date 1652358904 14400 +# Thu May 12 08:35:04 2022 -0400 +# Branch stable +# Node ID 8c940cfcce257369677c09154da2aab2c56eaa79 +# Parent 63710f3bd9811c2d206ac9e7b4f47cf06c47e153 +* scripts/pkg/private/build.m: check configure and Makefile exist before trying to unlink them (Bug #62436) + +diff -r 63710f3bd981 -r 8c940cfcce25 scripts/pkg/private/build.m +--- a/scripts/pkg/private/build.m Wed May 11 09:44:55 2022 -0700 ++++ b/scripts/pkg/private/build.m Thu May 12 08:35:04 2022 -0400 +@@ -77,8 +77,12 @@ + else + arch_abi = getarch (); + configure_make (desc, build_root, verbose); +- unlink (fullfile (build_root, "src", "configure")); +- unlink (fullfile (build_root, "src", "Makefile")); ++ if exist (fullfile (build_root, "src", "configure"), "file") ++ unlink (fullfile (build_root, "src", "configure")); ++ endif ++ if exist (fullfile (build_root, "src", "Makefile"), "file") ++ unlink (fullfile (build_root, "src", "Makefile")); ++ endif + endif + tar_name = [desc.name "-" desc.version "-" arch_abi ".tar"]; + tar_path = fullfile (builddir, tar_name); diff --git a/nixpkgs/pkgs/development/interpreters/perl/default.nix b/nixpkgs/pkgs/development/interpreters/perl/default.nix index 54769a03b7b6..0a9c53e11c5f 100644 --- a/nixpkgs/pkgs/development/interpreters/perl/default.nix +++ b/nixpkgs/pkgs/development/interpreters/perl/default.nix @@ -1,6 +1,7 @@ -{ config, lib, stdenv, fetchurl, fetchpatch, fetchFromGitHub, pkgs, buildPackages +{ config, lib, stdenv, fetchurl, fetchFromGitHub, pkgs, buildPackages , callPackage , enableThreading ? true, coreutils, makeWrapper +, zlib }: # Note: this package is used for bootstrapping fetchurl, and thus @@ -19,14 +20,14 @@ let common = { perl, buildPerl, version, sha256 }: stdenv.mkDerivation (rec { inherit version; - - name = "perl-${version}"; + pname = "perl"; src = fetchurl { - url = "mirror://cpan/src/5.0/${name}.tar.gz"; + url = "mirror://cpan/src/5.0/perl-${version}.tar.gz"; inherit sha256; }; + strictDeps = true; # TODO: Add a "dev" output containing the header files. outputs = [ "out" "man" "devdoc" ] ++ optional crossCompiling "mini"; @@ -41,14 +42,7 @@ let ] ++ optional stdenv.isSunOS ./ld-shared.patch ++ optionals stdenv.isDarwin [ ./cpp-precomp.patch ./sw_vers.patch ] - ++ optionals crossCompiling [ - ./MakeMaker-cross.patch - # https://github.com/arsv/perl-cross/pull/120 - (fetchpatch { - url = "https://github.com/arsv/perl-cross/commit/3c318ae6572f8b36cb077c8b49c851e2f5fe181e.patch"; - sha256 = "0cmcy8bams3c68f6xadl52z2w378wcpdjzi3qi4pcyvcfs011l6g"; - }) - ]; + ++ optional crossCompiling ./MakeMaker-cross.patch; # This is not done for native builds because pwd may need to come from # bootstrap tools when building bootstrap perl. @@ -116,6 +110,16 @@ let cf_by="nixpkgs" cf_time="$(date -d "@$SOURCE_DATE_EPOCH")" EOF + + # Compress::Raw::Zlib should use our zlib package instead of the one + # included with the distribution + cat > ./cpan/Compress-Raw-Zlib/config.in <<EOF + BUILD_ZLIB = False + INCLUDE = ${zlib.dev}/include + LIB = ${zlib.out}/lib + OLD_ZLIB = False + GZIP_OS_CODE = AUTO_DETECT + EOF '' + optionalString stdenv.isDarwin '' substituteInPlace hints/darwin.sh --replace "env MACOSX_DEPLOYMENT_TARGET=10.3" "" '' + optionalString (!enableThreading) '' @@ -194,14 +198,14 @@ 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 = "393821c7cf53774233aaf130ff2c8ccec701b0a9"; # Sep 22, 2021 + crossVersion = "c876045741f5159318085d2737b0090f35a842ca"; # June 5, 2022 perl-cross-src = fetchFromGitHub { - name = "perl-cross-${crossVersion}"; + name = "perl-cross-unstable-${crossVersion}"; owner = "arsv"; repo = "perl-cross"; rev = crossVersion; - sha256 = "1fn35b1773aibi2z54m0mar7114737mvfyp81wkdwhakrmzr5nv1"; + sha256 = "sha256-m9UCoTQgXBxSgk9Q1Zv6wl3Qnd0aZm/jEPXkcMKti8U="; }; depsBuildBuild = [ buildPackages.stdenv.cc makeWrapper ]; @@ -219,26 +223,26 @@ let }); in { # Maint version - perl532 = common { - perl = pkgs.perl532; - buildPerl = buildPackages.perl532; - version = "5.32.1"; - sha256 = "0b7brakq9xs4vavhg391as50nbhzryc7fy5i65r81bnq3j897dh3"; - }; - - # Maint version perl534 = common { perl = pkgs.perl534; buildPerl = buildPackages.perl534; - version = "5.34.0"; - sha256 = "16mywn5afpv1mczv9dlc1w84rbgjgrr0pyr4c0hhb2wnif0zq7jm"; + version = "5.34.1"; + sha256 = "sha256-NXlRpJGwuhzjYRJjki/ux4zNWB3dwkpEawM+JazyQqE="; + }; + + # Maint version + perl536 = common { + perl = pkgs.perl536; + buildPerl = buildPackages.perl536; + version = "5.36.0"; + sha256 = "sha256-4mCFr4rDlvYq3YpTPDoOqMhJfYNvBok0esWr17ek4Ao="; }; # the latest Devel version perldevel = common { perl = pkgs.perldevel; buildPerl = buildPackages.perldevel; - version = "5.35.4"; - sha256 = "1ss2r0qq5li6d2qghfv1iah5nl6nraymd7b7ib1iy1395rwyhl4q"; + version = "5.37.0"; + sha256 = "sha256-8RQO6gtH+WmghqzRafbqAH1MhKv/vJCcvysi7/+T9XI="; }; } diff --git a/nixpkgs/pkgs/development/interpreters/php/7.4.nix b/nixpkgs/pkgs/development/interpreters/php/7.4.nix deleted file mode 100644 index 4bd00811b5fb..000000000000 --- a/nixpkgs/pkgs/development/interpreters/php/7.4.nix +++ /dev/null @@ -1,52 +0,0 @@ -{ callPackage, lib, stdenv, ... }@_args: - -let - base = callPackage ./generic.nix (_args // { - version = "7.4.28"; - sha256 = "sha256-IIUIaoY0RLDjlUfeGklp/RxAoMGI61j6spOLZJsMS1g="; - }); - -in -base.withExtensions ({ 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 ])) diff --git a/nixpkgs/pkgs/development/interpreters/php/8.0.nix b/nixpkgs/pkgs/development/interpreters/php/8.0.nix index 3332c9d5a420..5e346788ee48 100644 --- a/nixpkgs/pkgs/development/interpreters/php/8.0.nix +++ b/nixpkgs/pkgs/development/interpreters/php/8.0.nix @@ -2,8 +2,8 @@ let base = callPackage ./generic.nix (_args // { - version = "8.0.17"; - sha256 = "52811ee2dde71660ca32737a4ac696c24591eb22e846dd8e09ee77122660283f"; + version = "8.0.22"; + hash = "sha256-40KRjT7NQi8QAy3wrD/7Dhf1aPrWz44jK296ah/cPJw="; }); in diff --git a/nixpkgs/pkgs/development/interpreters/php/8.1.nix b/nixpkgs/pkgs/development/interpreters/php/8.1.nix index aa98204b9979..37e471601ddb 100644 --- a/nixpkgs/pkgs/development/interpreters/php/8.1.nix +++ b/nixpkgs/pkgs/development/interpreters/php/8.1.nix @@ -2,8 +2,8 @@ let base = callPackage ./generic.nix (_args // { - version = "8.1.4"; - sha256 = "b3f688cb69758523838b8e7f509aaef0152133d9b84a84a0b7cf68eeafc1df76"; + version = "8.1.9"; + hash = "sha256-nrsOLlcdtv1ZMEKNyy0Z7T4FAzjsHxNHwoLK6S/Ahv8="; }); in diff --git a/nixpkgs/pkgs/development/interpreters/php/generic.nix b/nixpkgs/pkgs/development/interpreters/php/generic.nix index bf2ff11158ec..5984113574c2 100644 --- a/nixpkgs/pkgs/development/interpreters/php/generic.nix +++ b/nixpkgs/pkgs/development/interpreters/php/generic.nix @@ -29,7 +29,7 @@ let , xcbuild , version - , sha256 + , hash , extraPatches ? [ ] , packageOverrides ? (final: prev: { }) , phpAttrsOverrides ? (attrs: { }) @@ -176,6 +176,10 @@ let if test -e $out/bin/phpdbg; then wrapProgram $out/bin/phpdbg --set PHP_INI_SCAN_DIR $out/lib fi + + if test -e $out/bin/php-cgi; then + wrapProgram $out/bin/php-cgi --set PHP_INI_SCAN_DIR $out/lib + fi ''; }; in @@ -219,8 +223,7 @@ let [ "--disable-all" ] # PCRE - ++ lib.optionals (lib.versionAtLeast version "7.4") [ "--with-external-pcre=${pcre2.dev}" ] - ++ [ "PCRE_LIBDIR=${pcre2}" ] + ++ [ "--with-external-pcre=${pcre2.dev}" ] # Enable sapis @@ -228,10 +231,6 @@ let ++ lib.optional (!cliSupport) "--disable-cli" ++ lib.optional fpmSupport "--enable-fpm" ++ lib.optional pearSupport [ "--with-pear" "--enable-xml" "--with-libxml" ] - ++ lib.optionals (pearSupport && (lib.versionOlder version "7.4")) [ - "--enable-libxml" - "--with-libxml-dir=${libxml2.dev}" - ] ++ lib.optional pharSupport "--enable-phar" ++ lib.optional (!phpdbgSupport) "--disable-phpdbg" @@ -266,14 +265,7 @@ let done export EXTENSION_DIR=$out/lib/php/extensions - '' - # PKG_CONFIG need not be a relative path - + lib.optionalString (!lib.versionAtLeast version "7.4") '' - for i in $(find . -type f -name "*.m4"); do - substituteInPlace $i \ - --replace 'test -x "$PKG_CONFIG"' 'type -P "$PKG_CONFIG" >/dev/null' - done - '' + '' + ./buildconf --copy --force if test -f $src/genfiles; then @@ -298,7 +290,7 @@ let src = fetchurl { url = "https://www.php.net/distributions/php-${version}.tar.bz2"; - inherit sha256; + inherit hash; }; patches = [ ./fix-paths-php7.patch ] ++ extraPatches; diff --git a/nixpkgs/pkgs/development/interpreters/php/zlib-darwin-tests.patch b/nixpkgs/pkgs/development/interpreters/php/zlib-darwin-tests.patch deleted file mode 100644 index ef61f0a87845..000000000000 --- a/nixpkgs/pkgs/development/interpreters/php/zlib-darwin-tests.patch +++ /dev/null @@ -1,44 +0,0 @@ -diff --git a/ext/zlib/tests/bug55544.phpt b/ext/zlib/tests/bug55544.phpt -index a0d22f4fcebf4846da6781f424f87821626de5ea..e650fe6909f555d04834f4c08f7fd0d354b783e2 100644 ---- a/ext/zlib/tests/bug55544.phpt -+++ b/ext/zlib/tests/bug55544.phpt -@@ -6,6 +6,9 @@ extension_loaded("zlib") or die("skip"); - if (substr(PHP_OS, 0, 3) == 'WIN') { - die("skip not for windows"); - } -+if (PHP_OS == "Darwin") { -+ die("skip not for darwin"); -+} - ?> - --INI-- - output_handler=ob_gzhandler -diff --git a/ext/zlib/tests/gzencode_variation1.phpt b/ext/zlib/tests/gzencode_variation1.phpt -index c966b2cbc5b7..2f953168fa22 100644 ---- a/ext/zlib/tests/gzencode_variation1.phpt -+++ b/ext/zlib/tests/gzencode_variation1.phpt -@@ -10,6 +10,10 @@ if( substr(PHP_OS, 0, 3) == "WIN" ) { - if (!extension_loaded("zlib")) { - print "skip - ZLIB extension not loaded"; - } -+ -+if (PHP_OS == "Darwin") { -+ print "skip - OS is encoded in headers, tested header is non Darwin"; -+} - ?> - --FILE-- - <?php -diff --git a/ext/zlib/tests/gzencode_variation2.phpt b/ext/zlib/tests/gzencode_variation2.phpt -index 94ac42a5f1cd..9160cf519751 100644 ---- a/ext/zlib/tests/gzencode_variation2.phpt -+++ b/ext/zlib/tests/gzencode_variation2.phpt -@@ -10,6 +10,10 @@ if( substr(PHP_OS, 0, 3) == "WIN" ) { - if (!extension_loaded("zlib")) { - print "skip - ZLIB extension not loaded"; - } -+ -+if (PHP_OS == "Darwin") { -+ print "skip - OS is encoded in headers, tested header is non Darwin"; -+} - ?> - --FILE-- - <?php diff --git a/nixpkgs/pkgs/development/interpreters/picoc/default.nix b/nixpkgs/pkgs/development/interpreters/picoc/default.nix index 47e18cbdcd8f..e6e87f2b8a7b 100644 --- a/nixpkgs/pkgs/development/interpreters/picoc/default.nix +++ b/nixpkgs/pkgs/development/interpreters/picoc/default.nix @@ -34,6 +34,7 @@ stdenv.mkDerivation rec { ''; meta = with lib; { + broken = (stdenv.isLinux && stdenv.isAarch64); description = "Very small C interpreter for scripting"; longDescription = '' PicoC is a very small C interpreter for scripting. It was originally diff --git a/nixpkgs/pkgs/development/interpreters/picolisp/default.nix b/nixpkgs/pkgs/development/interpreters/picolisp/default.nix index 623eefec4162..9df5d1f8d509 100644 --- a/nixpkgs/pkgs/development/interpreters/picolisp/default.nix +++ b/nixpkgs/pkgs/development/interpreters/picolisp/default.nix @@ -50,11 +50,12 @@ stdenv.mkDerivation rec { ''; meta = { + # darwin: build times out + broken = (stdenv.isLinux && stdenv.isAarch64) || stdenv.isDarwin; description = "A simple Lisp with an integrated database"; homepage = "https://picolisp.com/"; license = licenses.mit; platforms = platforms.all; - broken = stdenv.isDarwin; # times out maintainers = with maintainers; [ raskin tohl ]; }; diff --git a/nixpkgs/pkgs/development/interpreters/pixie/default.nix b/nixpkgs/pkgs/development/interpreters/pixie/default.nix deleted file mode 100644 index 5b93357b2665..000000000000 --- a/nixpkgs/pkgs/development/interpreters/pixie/default.nix +++ /dev/null @@ -1,94 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, fetchurl, python2, makeWrapper, pkg-config, gcc, - pypy, libffi, libedit, libuv, boost, zlib, - variant ? "jit", buildWithPypy ? false }: - -let - commit-count = "1364"; - common-flags = "--thread --gcrootfinder=shadowstack --continuation"; - variants = { - jit = { flags = "--opt=jit"; target = "target.py"; }; - jit-preload = { flags = "--opt=jit"; target = "target_preload.py"; }; - no-jit = { flags = ""; target = "target.py"; }; - no-jit-preload = { flags = ""; target = "target_preload.py"; }; - }; - pixie-src = fetchFromGitHub { - owner = "pixie-lang"; - repo = "pixie"; - rev = "5eb0ccbe8b0087d3a5f2d0bbbc6998d624d3cd62"; - sha256 = "sha256-dQ8ncH0IqU42WYxwBgjH6QQfvMIo7RZpv81UAUsPw10="; - }; - pypy-tag = "91db1a9"; - pypy-src = fetchurl { - name = "pypy-src-${pypy-tag}"; - url = "https://bitbucket.org/pypy/pypy/get/${pypy-tag}.tar.bz2"; - sha256 = "0ylbqvhbcp5m09l15i2q2h3a0vjd055x2r37cq71lkhgmmaxrwbq"; - }; - libs = [ libffi libedit libuv boost.dev boost.out zlib ]; - include-path = lib.concatStringsSep ":" - (map (p: "${p}/include") libs); - library-path = lib.concatStringsSep ":" - (map (p: "${p}/lib") libs); - bin-path = lib.concatStringsSep ":" - (map (p: "${p}/bin") [ gcc ]); - build = {flags, target}: stdenv.mkDerivation rec { - pname = "pixie"; - version = "0-r${commit-count}-${variant}"; - nativeBuildInputs = [ makeWrapper pkg-config ]; - buildInputs = libs; - PYTHON = if buildWithPypy - then "${pypy}/pypy-c/pypy-c" - else python2.interpreter; - unpackPhase = '' - cp -R ${pixie-src} pixie-src - mkdir pypy-src - (cd pypy-src - tar --strip-components=1 -xjf ${pypy-src}) - chmod -R +w pypy-src pixie-src - ''; - patchPhase = '' - (cd pixie-src - patch -p1 < ${./load_paths.patch} - libraryPaths='["${libuv}" "${libedit}" "${libffi.dev}" "${boost.dev}" "${boost.out}" "${zlib.dev}"]' - export libraryPaths - substituteAllInPlace ./pixie/ffi-infer.pxi) - ''; - buildPhase = ''( - PYTHONPATH="`pwd`/pypy-src:$PYTHONPATH"; - RPYTHON="`pwd`/pypy-src/rpython/bin/rpython"; - cd pixie-src - $PYTHON $RPYTHON ${common-flags} ${target} - find pixie -name "*.pxi" -exec ./pixie-vm -c {} \; - )''; - LD_LIBRARY_PATH = library-path; - C_INCLUDE_PATH = include-path; - LIBRARY_PATH = library-path; - PATH = bin-path; - installPhase = '' - mkdir -p $out/share $out/bin - cp pixie-src/pixie-vm $out/share/pixie-vm - cp -R pixie-src/pixie $out/share/pixie - makeWrapper $out/share/pixie-vm $out/bin/pixie \ - --prefix LD_LIBRARY_PATH : ${LD_LIBRARY_PATH} \ - --prefix C_INCLUDE_PATH : ${C_INCLUDE_PATH} \ - --prefix LIBRARY_PATH : ${LIBRARY_PATH} \ - --prefix PATH : ${PATH} - ''; - doCheck = true; - checkPhase = '' - RES=$(./pixie-src/pixie-vm -e "(print :ok)") - if [ "$RES" != ":ok" ]; then - echo "ERROR Unexpected output: '$RES'" - return 1 - else - echo "$RES" - fi - ''; - meta = { - description = "A clojure-like lisp, built with the pypy vm toolkit"; - homepage = "https://github.com/pixie-lang/pixie"; - license = lib.licenses.lgpl3; - platforms = ["x86_64-linux" "i686-linux" "x86_64-darwin"]; - maintainers = with lib.maintainers; [ bendlas ]; - }; - }; -in build (builtins.getAttr variant variants) diff --git a/nixpkgs/pkgs/development/interpreters/pixie/dust.nix b/nixpkgs/pkgs/development/interpreters/pixie/dust.nix deleted file mode 100644 index 9c39b5c5ce63..000000000000 --- a/nixpkgs/pkgs/development/interpreters/pixie/dust.nix +++ /dev/null @@ -1,46 +0,0 @@ -{ lib, stdenv, fetchFromGitHub -, pixie, rlwrap -}: - -stdenv.mkDerivation rec { - pname = "dust"; - version = "0-91"; - - src = fetchFromGitHub { - owner = "pixie-lang"; - repo = "dust"; - rev = "efe469661e749a71e86858fd006f61464810575a"; - sha256 = "09n57b6haxwask9m8vimv42ikczf7lgfc7m9izjrcqgs0padvfzc"; - }; - - buildInputs = [ pixie ]; - - patches = [ ./make-paths-configurable.patch ]; - - configurePhase = '' - pixiePath="${pixie}/bin/pixie" \ - basePath="$out/share/dust" \ - rlwrapPath="${rlwrap}/bin/rlwrap" \ - substituteAll dust.in dust - chmod +x dust - ''; - - # FIXME: AOT for dust - # buildPhase = '' - # find . -name "*.pxi" -exec pixie-vm -c {} \; - # ''; - - installPhase = '' - mkdir -p $out/bin $out/share/dust - cp -a src/ run.pxi $out/share/dust - mv dust $out/bin/dust - ''; - - meta = with lib; { - description = "Provides tooling around pixie, e.g. a nicer repl, running tests and fetching dependencies"; - homepage = src.meta.homepage; - maintainers = with maintainers; [ ]; - license = licenses.lgpl3; - platforms = platforms.unix; - }; -} diff --git a/nixpkgs/pkgs/development/interpreters/pixie/load_paths.patch b/nixpkgs/pkgs/development/interpreters/pixie/load_paths.patch deleted file mode 100644 index a36d280c5867..000000000000 --- a/nixpkgs/pkgs/development/interpreters/pixie/load_paths.patch +++ /dev/null @@ -1,25 +0,0 @@ -diff --git a/pixie/ffi-infer.pxi b/pixie/ffi-infer.pxi -index 9f13ac7..74301c2 100644 ---- a/pixie/ffi-infer.pxi -+++ b/pixie/ffi-infer.pxi -@@ -1,15 +1,12 @@ - (ns pixie.ffi-infer - (:require [pixie.io-blocking :as io])) - -+(defn -add-library-path [p] -+ (swap! load-paths conj (str p "/include")) -+ (swap! load-paths conj (str p "/lib"))) - --(defn -add-rel-path [rel] -- (swap! load-paths conj (str (first @load-paths) "/" rel))) -- --(-add-rel-path "lib") --(-add-rel-path "include") --(-add-rel-path "../lib") --(-add-rel-path "../include") -- -+(doseq [lp @libraryPaths@] -+ (-add-library-path lp)) - - (def *config* nil) - (set-dynamic! (var *config*)) diff --git a/nixpkgs/pkgs/development/interpreters/pixie/make-paths-configurable.patch b/nixpkgs/pkgs/development/interpreters/pixie/make-paths-configurable.patch deleted file mode 100644 index e22e83d2ee74..000000000000 --- a/nixpkgs/pkgs/development/interpreters/pixie/make-paths-configurable.patch +++ /dev/null @@ -1,119 +0,0 @@ -From 0cbb82e606610d36e52c70d888995fbbf9b0d7c8 Mon Sep 17 00:00:00 2001 -From: Herwig Hochleitner <herwig@bendlas.net> -Date: Sun, 28 Feb 2016 16:34:14 +0100 -Subject: [PATCH] make paths configurable - ---- - dust | 52 ---------------------------------------------------- - dust.in | 43 +++++++++++++++++++++++++++++++++++++++++++ - 2 files changed, 43 insertions(+), 52 deletions(-) - delete mode 100755 dust - create mode 100755 dust.in - -diff --git a/dust b/dust -deleted file mode 100755 -index ffced9b..0000000 ---- a/dust -+++ /dev/null -@@ -1,52 +0,0 @@ --#!/usr/bin/env bash -- --base_path=$0 --if [ -L "$base_path" ]; then -- base_path=`readlink $base_path` --fi --base_path=`dirname $base_path` -- --pixie_path=`which pixie-vm` --if [ -z "$pixie_path" ]; then -- echo "Error: 'pixie-vm' must be on your PATH" -- exit 1 --fi -- --function set_load_path() { -- load_path="" -- if ([ -f "project.edn" ] || [ -f "project.pxi" ]) && [ -f ".load-path" ]; then -- load_path="`cat .load-path`" -- fi --} -- --if [ ! -f "project.edn" ] && [ -f "project.pxi" ]; then -- echo "Warning: 'project.pxi' is deprecated, please use 'project.edn'." -- echo "To start you can run the following command:" -- echo " pixie-vm -l $base_path/src -e '(require dust.project :as p) (p/load-project!) (prn (dissoc @p/*project* :path))'" -- echo --fi -- --set_load_path --run_dust="$pixie_path -l $base_path/src $load_path $base_path/run.pxi" -- --case $1 in -- ""|"repl") -- rlwrap_cmd="" -- if [ -n "`which rlwrap`" ]; then -- rlwrap_cmd="rlwrap -aignored -n" -- fi -- $rlwrap_cmd $pixie_path $load_path -- ;; -- "run") -- shift -- file=$1 -- shift -- $pixie_path $load_path $file $@ -- ;; -- -h|--help) -- $run_dust help -- ;; -- *) -- $run_dust $@ -- ;; --esac -diff --git a/dust.in b/dust.in -new file mode 100755 -index 0000000..44a7fbd ---- /dev/null -+++ b/dust.in -@@ -0,0 +1,40 @@ -+#!/usr/bin/env bash -+ -+base_path=@basePath@ -+pixie_path=@pixiePath@ -+rlwrap_cmd=@rlwrapPath@ -+ -+function set_load_path() { -+ load_path="" -+ if ([ -f "project.edn" ] || [ -f "project.pxi" ]) && [ -f ".load-path" ]; then -+ load_path="`cat .load-path`" -+ fi -+} -+ -+if [ ! -f "project.edn" ] && [ -f "project.pxi" ]; then -+ echo "Warning: 'project.pxi' is deprecated, please use 'project.edn'." -+ echo "To start you can run the following command:" -+ echo " pixie-vm -l $base_path/src -e '(require dust.project :as p) (p/load-project!) (prn (dissoc @p/*project* :path))'" -+ echo -+fi -+ -+set_load_path -+run_dust="$pixie_path -l $base_path/src $load_path $base_path/run.pxi" -+ -+case $1 in -+ ""|"repl") -+ $rlwrap_cmd -aignored -n $pixie_path $load_path -+ ;; -+ "run") -+ shift -+ file=$1 -+ shift -+ $pixie_path $load_path $file $@ -+ ;; -+ -h|--help) -+ $run_dust help -+ ;; -+ *) -+ $run_dust $@ -+ ;; -+esac --- -2.7.1 - diff --git a/nixpkgs/pkgs/development/interpreters/pure/default.nix b/nixpkgs/pkgs/development/interpreters/pure/default.nix deleted file mode 100644 index d1c03bba5a31..000000000000 --- a/nixpkgs/pkgs/development/interpreters/pure/default.nix +++ /dev/null @@ -1,46 +0,0 @@ -{ lib, stdenv, fetchurl, makeWrapper, - libllvm, gmp, mpfr, readline, bison, flex }: - -stdenv.mkDerivation rec { - baseName="pure"; - version="0.68"; - name="${baseName}-${version}"; - - src = fetchurl { - url="https://github.com/agraef/pure-lang/releases/download/${name}/${name}.tar.gz"; - sha256="0px6x5ivcdbbp2pz5n1r1cwg1syadklhjw8piqhl63n91i4r7iyb"; - }; - - nativeBuildInputs = [ makeWrapper ]; - buildInputs = [ bison flex ]; - propagatedBuildInputs = [ libllvm gmp mpfr readline ]; - NIX_LDFLAGS = "-lLLVMJIT"; - - postPatch = '' - for f in expr.cc matcher.cc printer.cc symtable.cc parserdefs.hh; do - sed -i '1i\#include <stddef.h>' $f - done - ''; - - configureFlags = [ "--enable-release" ]; - doCheck = true; - checkPhase = '' - LD_LIBRARY_PATH=$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}${libllvm}/lib make check - ''; - postInstall = '' - wrapProgram $out/bin/pure --prefix LD_LIBRARY_PATH : ${libllvm}/lib - ''; - - meta = { - description = "A modern-style functional programming language based on term rewriting"; - maintainers = with lib.maintainers; - [ - raskin - asppsa - ]; - platforms = with lib.platforms; - linux; - license = lib.licenses.gpl3Plus; - broken = true; - }; -} diff --git a/nixpkgs/pkgs/development/interpreters/python-cosmopolitan/default.nix b/nixpkgs/pkgs/development/interpreters/python-cosmopolitan/default.nix new file mode 100644 index 000000000000..14459a24aac2 --- /dev/null +++ b/nixpkgs/pkgs/development/interpreters/python-cosmopolitan/default.nix @@ -0,0 +1,39 @@ +{ lib, stdenv, cosmopolitan, unzip, bintools-unwrapped }: + +stdenv.mkDerivation rec { + pname = "python-cosmopolitan"; + version = "3.6.14"; + + src = cosmopolitan.dist; + + patches = [ + ./ioctl.patch # required /dev/tty + ]; + + nativeBuildInputs = [ bintools-unwrapped unzip ]; + + # slashes are significant because upstream uses o/$(MODE)/foo.o + buildFlags = "o//third_party/python"; + checkTarget = "o//third_party/python/test"; + enableParallelBuilding = true; + + doCheck = true; + dontConfigure = true; + dontFixup = true; + + installPhase = '' + runHook preInstall + install o/third_party/python/*.com -Dt $out/bin + runHook postInstall + ''; + + meta = with lib; { + homepage = "https://justine.lol/cosmopolitan/"; + description = "Actually Portable Python using Cosmopolitan"; + platforms = platforms.x86_64; + badPlatforms = platforms.darwin; + license = licenses.isc; + maintainers = teams.cosmopolitan.members; + mainProgram = "python.com"; + }; +} diff --git a/nixpkgs/pkgs/development/interpreters/python-cosmopolitan/ioctl.patch b/nixpkgs/pkgs/development/interpreters/python-cosmopolitan/ioctl.patch new file mode 100644 index 000000000000..e6e7eb4fc7b0 --- /dev/null +++ b/nixpkgs/pkgs/development/interpreters/python-cosmopolitan/ioctl.patch @@ -0,0 +1,12 @@ +diff --git a/third_party/python/python.mk b/third_party/python/python.mk +index f18c15060..b17455bca 100644 +--- a/third_party/python/python.mk ++++ b/third_party/python/python.mk +@@ -1818,7 +1818,6 @@ THIRD_PARTY_PYTHON_PYTEST_PYMAINS = \ + third_party/python/Lib/test/test_int_literal.py \ + third_party/python/Lib/test/test_bisect.py \ + third_party/python/Lib/test/test_pyexpat.py \ +- third_party/python/Lib/test/test_ioctl.py \ + third_party/python/Lib/test/test_getopt.py \ + third_party/python/Lib/test/test_sort.py \ + third_party/python/Lib/test/test_slice.py \ diff --git a/nixpkgs/pkgs/development/interpreters/python/cpython/2.7/default.nix b/nixpkgs/pkgs/development/interpreters/python/cpython/2.7/default.nix index fd7e684113e7..25446f5fca89 100644 --- a/nixpkgs/pkgs/development/interpreters/python/cpython/2.7/default.nix +++ b/nixpkgs/pkgs/development/interpreters/python/cpython/2.7/default.nix @@ -68,7 +68,7 @@ let executable = libPrefix; pythonVersion = with sourceVersion; "${major}.${minor}"; sitePackages = "lib/${libPrefix}/site-packages"; - inherit hasDistutilsCxxPatch; + inherit hasDistutilsCxxPatch pythonAttr; pythonOnBuildForBuild = pkgsBuildBuild.${pythonAttr}; pythonOnBuildForHost = pkgsBuildHost.${pythonAttr}; pythonOnBuildForTarget = pkgsBuildTarget.${pythonAttr}; diff --git a/nixpkgs/pkgs/development/interpreters/python/cpython/3.11/darwin-libutil.patch b/nixpkgs/pkgs/development/interpreters/python/cpython/3.11/darwin-libutil.patch new file mode 100644 index 000000000000..92b846be0002 --- /dev/null +++ b/nixpkgs/pkgs/development/interpreters/python/cpython/3.11/darwin-libutil.patch @@ -0,0 +1,13 @@ +diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c +index 40229bce0f..3cc604930e 100644 +--- a/Modules/posixmodule.c ++++ b/Modules/posixmodule.c +@@ -7258,7 +7258,7 @@ os_sched_getaffinity_impl(PyObject *module, pid_t pid) + #ifdef HAVE_UTMP_H + #include <utmp.h> + #endif /* HAVE_UTMP_H */ +-#elif defined(HAVE_LIBUTIL_H) ++#elif defined(HAVE_LIBUTIL_H) && !defined(__APPLE__) + #include <libutil.h> + #elif defined(HAVE_UTIL_H) + #include <util.h> diff --git a/nixpkgs/pkgs/development/interpreters/python/cpython/3.11/python-3.x-distutils-C++.patch b/nixpkgs/pkgs/development/interpreters/python/cpython/3.11/python-3.x-distutils-C++.patch new file mode 100644 index 000000000000..335e06b93c39 --- /dev/null +++ b/nixpkgs/pkgs/development/interpreters/python/cpython/3.11/python-3.x-distutils-C++.patch @@ -0,0 +1,257 @@ +diff --git a/Lib/_osx_support.py b/Lib/_osx_support.py +index aa66c8b9f4..71e6556bac 100644 +--- a/Lib/_osx_support.py ++++ b/Lib/_osx_support.py +@@ -14,13 +14,13 @@ + # configuration variables that may contain universal build flags, + # like "-arch" or "-isdkroot", that may need customization for + # the user environment +-_UNIVERSAL_CONFIG_VARS = ('CFLAGS', 'LDFLAGS', 'CPPFLAGS', 'BASECFLAGS', +- 'BLDSHARED', 'LDSHARED', 'CC', 'CXX', +- 'PY_CFLAGS', 'PY_LDFLAGS', 'PY_CPPFLAGS', +- 'PY_CORE_CFLAGS', 'PY_CORE_LDFLAGS') ++_UNIVERSAL_CONFIG_VARS = ('CFLAGS', 'CXXFLAGS', 'LDFLAGS', 'CPPFLAGS', ++ 'BASECFLAGS', 'BLDSHARED', 'LDSHARED', 'LDCXXSHARED', ++ 'CC', 'CXX', 'PY_CFLAGS', 'PY_LDFLAGS', ++ 'PY_CPPFLAGS', 'PY_CORE_LDFLAGS', 'PY_CORE_CFLAGS') + + # configuration variables that may contain compiler calls +-_COMPILER_CONFIG_VARS = ('BLDSHARED', 'LDSHARED', 'CC', 'CXX') ++_COMPILER_CONFIG_VARS = ('BLDSHARED', 'LDSHARED', 'LDCXXSHARED', 'CC', 'CXX') + + # prefix added to original configuration variable names + _INITPRE = '_OSX_SUPPORT_INITIAL_' +diff --git a/Lib/distutils/cygwinccompiler.py b/Lib/distutils/cygwinccompiler.py +index 66c12dd358..dddb9fd2d4 100644 +--- a/Lib/distutils/cygwinccompiler.py ++++ b/Lib/distutils/cygwinccompiler.py +@@ -123,8 +123,10 @@ def __init__(self, verbose=0, dry_run=0, force=0): + # dllwrap 2.10.90 is buggy + if self.ld_version >= "2.10.90": + self.linker_dll = "gcc" ++ self.linker_dll_cxx = "g++" + else: + self.linker_dll = "dllwrap" ++ self.linker_dll_cxx = "dllwrap" + + # ld_version >= "2.13" support -shared so use it instead of + # -mdll -static +@@ -138,9 +140,13 @@ def __init__(self, verbose=0, dry_run=0, force=0): + self.set_executables(compiler='gcc -mcygwin -O -Wall', + compiler_so='gcc -mcygwin -mdll -O -Wall', + compiler_cxx='g++ -mcygwin -O -Wall', ++ compiler_so_cxx='g++ -mcygwin -mdll -O -Wall', + linker_exe='gcc -mcygwin', + linker_so=('%s -mcygwin %s' % +- (self.linker_dll, shared_option))) ++ (self.linker_dll, shared_option)), ++ linker_exe_cxx='g++ -mcygwin', ++ linker_so_cxx=('%s -mcygwin %s' % ++ (self.linker_dll_cxx, shared_option))) + + # cygwin and mingw32 need different sets of libraries + if self.gcc_version == "2.91.57": +@@ -164,8 +170,12 @@ def _compile(self, obj, src, ext, cc_args, extra_postargs, pp_opts): + raise CompileError(msg) + else: # for other files use the C-compiler + try: +- self.spawn(self.compiler_so + cc_args + [src, '-o', obj] + +- extra_postargs) ++ if self.detect_language(src) == 'c++': ++ self.spawn(self.compiler_so_cxx + cc_args + [src, '-o', obj] + ++ extra_postargs) ++ else: ++ self.spawn(self.compiler_so + cc_args + [src, '-o', obj] + ++ extra_postargs) + except DistutilsExecError as msg: + raise CompileError(msg) + +@@ -300,9 +310,14 @@ def __init__(self, verbose=0, dry_run=0, force=0): + self.set_executables(compiler='gcc -O -Wall', + compiler_so='gcc -mdll -O -Wall', + compiler_cxx='g++ -O -Wall', ++ compiler_so_cxx='g++ -mdll -O -Wall', + linker_exe='gcc', + linker_so='%s %s %s' + % (self.linker_dll, shared_option, ++ entry_point), ++ linker_exe_cxx='g++', ++ linker_so_cxx='%s %s %s' ++ % (self.linker_dll_cxx, shared_option, + entry_point)) + # Maybe we should also append -mthreads, but then the finished + # dlls need another dll (mingwm10.dll see Mingw32 docs) +diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py +index 3414a761e7..f1af560cc1 100644 +--- a/Lib/distutils/sysconfig.py ++++ b/Lib/distutils/sysconfig.py +@@ -216,9 +216,11 @@ def customize_compiler(compiler): + _osx_support.customize_compiler(_config_vars) + _config_vars['CUSTOMIZED_OSX_COMPILER'] = 'True' + +- (cc, cxx, cflags, ccshared, ldshared, shlib_suffix, ar, ar_flags) = \ +- get_config_vars('CC', 'CXX', 'CFLAGS', +- 'CCSHARED', 'LDSHARED', 'SHLIB_SUFFIX', 'AR', 'ARFLAGS') ++ (cc, cxx, cflags, ccshared, ldshared, ldcxxshared, shlib_suffix, ar, ar_flags) = \ ++ get_config_vars('CC', 'CXX', 'CFLAGS', 'CCSHARED', 'LDSHARED', 'LDCXXSHARED', ++ 'SHLIB_SUFFIX', 'AR', 'ARFLAGS') ++ ++ cxxflags = cflags + + if 'CC' in os.environ: + newcc = os.environ['CC'] +@@ -233,19 +235,27 @@ def customize_compiler(compiler): + cxx = os.environ['CXX'] + if 'LDSHARED' in os.environ: + ldshared = os.environ['LDSHARED'] ++ if 'LDCXXSHARED' in os.environ: ++ ldcxxshared = os.environ['LDCXXSHARED'] + if 'CPP' in os.environ: + cpp = os.environ['CPP'] + else: + cpp = cc + " -E" # not always + if 'LDFLAGS' in os.environ: + ldshared = ldshared + ' ' + os.environ['LDFLAGS'] ++ ldcxxshared = ldcxxshared + ' ' + os.environ['LDFLAGS'] + if 'CFLAGS' in os.environ: +- cflags = cflags + ' ' + os.environ['CFLAGS'] ++ cflags = os.environ['CFLAGS'] + ldshared = ldshared + ' ' + os.environ['CFLAGS'] ++ if 'CXXFLAGS' in os.environ: ++ cxxflags = os.environ['CXXFLAGS'] ++ ldcxxshared = ldcxxshared + ' ' + os.environ['CXXFLAGS'] + if 'CPPFLAGS' in os.environ: + cpp = cpp + ' ' + os.environ['CPPFLAGS'] + cflags = cflags + ' ' + os.environ['CPPFLAGS'] ++ cxxflags = cxxflags + ' ' + os.environ['CPPFLAGS'] + ldshared = ldshared + ' ' + os.environ['CPPFLAGS'] ++ ldcxxshared = ldcxxshared + ' ' + os.environ['CPPFLAGS'] + if 'AR' in os.environ: + ar = os.environ['AR'] + if 'ARFLAGS' in os.environ: +@@ -254,13 +264,17 @@ def customize_compiler(compiler): + archiver = ar + ' ' + ar_flags + + cc_cmd = cc + ' ' + cflags ++ cxx_cmd = cxx + ' ' + cxxflags + compiler.set_executables( + preprocessor=cpp, + compiler=cc_cmd, + compiler_so=cc_cmd + ' ' + ccshared, +- compiler_cxx=cxx, ++ compiler_cxx=cxx_cmd, ++ compiler_so_cxx=cxx_cmd + ' ' + ccshared, + linker_so=ldshared, + linker_exe=cc, ++ linker_so_cxx=ldcxxshared, ++ linker_exe_cxx=cxx, + archiver=archiver) + + compiler.shared_lib_extension = shlib_suffix +diff --git a/Lib/distutils/unixccompiler.py b/Lib/distutils/unixccompiler.py +index d00c48981e..4a3d271fee 100644 +--- a/Lib/distutils/unixccompiler.py ++++ b/Lib/distutils/unixccompiler.py +@@ -52,14 +52,17 @@ class UnixCCompiler(CCompiler): + # are pretty generic; they will probably have to be set by an outsider + # (eg. using information discovered by the sysconfig about building + # Python extensions). +- executables = {'preprocessor' : None, +- 'compiler' : ["cc"], +- 'compiler_so' : ["cc"], +- 'compiler_cxx' : ["cc"], +- 'linker_so' : ["cc", "-shared"], +- 'linker_exe' : ["cc"], +- 'archiver' : ["ar", "-cr"], +- 'ranlib' : None, ++ executables = {'preprocessor' : None, ++ 'compiler' : ["cc"], ++ 'compiler_so' : ["cc"], ++ 'compiler_cxx' : ["c++"], ++ 'compiler_so_cxx' : ["c++"], ++ 'linker_so' : ["cc", "-shared"], ++ 'linker_exe' : ["cc"], ++ 'linker_so_cxx' : ["c++", "-shared"], ++ 'linker_exe_cxx' : ["c++"], ++ 'archiver' : ["ar", "-cr"], ++ 'ranlib' : None, + } + + if sys.platform[:6] == "darwin": +@@ -110,12 +113,19 @@ def preprocess(self, source, output_file=None, macros=None, + + def _compile(self, obj, src, ext, cc_args, extra_postargs, pp_opts): + compiler_so = self.compiler_so ++ compiler_so_cxx = self.compiler_so_cxx + if sys.platform == 'darwin': + compiler_so = _osx_support.compiler_fixup(compiler_so, + cc_args + extra_postargs) ++ compiler_so_cxx = _osx_support.compiler_fixup(compiler_so_cxx, ++ cc_args + extra_postargs) + try: +- self.spawn(compiler_so + cc_args + [src, '-o', obj] + +- extra_postargs) ++ if self.detect_language(src) == 'c++': ++ self.spawn(compiler_so_cxx + cc_args + [src, '-o', obj] + ++ extra_postargs) ++ else: ++ self.spawn(compiler_so + cc_args + [src, '-o', obj] + ++ extra_postargs) + except DistutilsExecError as msg: + raise CompileError(msg) + +@@ -173,30 +183,16 @@ def link(self, target_desc, objects, + ld_args.extend(extra_postargs) + self.mkpath(os.path.dirname(output_filename)) + try: +- if target_desc == CCompiler.EXECUTABLE: +- linker = self.linker_exe[:] ++ if target_lang == "c++": ++ if target_desc == CCompiler.EXECUTABLE: ++ linker = self.linker_exe_cxx[:] ++ else: ++ linker = self.linker_so_cxx[:] + else: +- linker = self.linker_so[:] +- if target_lang == "c++" and self.compiler_cxx: +- # skip over environment variable settings if /usr/bin/env +- # is used to set up the linker's environment. +- # This is needed on OSX. Note: this assumes that the +- # normal and C++ compiler have the same environment +- # settings. +- i = 0 +- if os.path.basename(linker[0]) == "env": +- i = 1 +- while '=' in linker[i]: +- i += 1 +- +- if os.path.basename(linker[i]) == 'ld_so_aix': +- # AIX platforms prefix the compiler with the ld_so_aix +- # script, so we need to adjust our linker index +- offset = 1 ++ if target_desc == CCompiler.EXECUTABLE: ++ linker = self.linker_exe[:] + else: +- offset = 0 +- +- linker[i+offset] = self.compiler_cxx[i] ++ linker = self.linker_so[:] + + if sys.platform == 'darwin': + linker = _osx_support.compiler_fixup(linker, ld_args) +diff --git a/Makefile.pre.in b/Makefile.pre.in +index f803391346..090f14c46c 100644 +--- a/Makefile.pre.in ++++ b/Makefile.pre.in +@@ -732,9 +732,9 @@ sharedmods: $(BUILDPYTHON) pybuilddir.txt @LIBMPDEC_INTERNAL@ @LIBEXPAT_INTERNAL + *\ -s*|s*) quiet="-q";; \ + *) quiet="";; \ + esac; \ +- echo "$(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' \ ++ echo "$(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' CFLAGS='$(PY_CFLAGS)' \ + $(PYTHON_FOR_BUILD) $(srcdir)/setup.py $$quiet build"; \ +- $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' \ ++ $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' CFLAGS='$(PY_CFLAGS)' \ + $(PYTHON_FOR_BUILD) $(srcdir)/setup.py $$quiet build + + diff --git a/nixpkgs/pkgs/development/interpreters/python/cpython/default.nix b/nixpkgs/pkgs/development/interpreters/python/cpython/default.nix index 02ecf8d25b1e..dca7d9bb0db5 100644 --- a/nixpkgs/pkgs/development/interpreters/python/cpython/default.nix +++ b/nixpkgs/pkgs/development/interpreters/python/cpython/default.nix @@ -49,7 +49,7 @@ , enableLTO ? stdenv.is64bit && stdenv.isLinux , reproducibleBuild ? false , pythonAttr ? "python${sourceVersion.major}${sourceVersion.minor}" -}: +} @ inputs: # Note: this package is used for bootstrapping fetchurl, and thus # cannot use fetchpatch! All mutable patches (generated by GitHub or @@ -63,9 +63,6 @@ assert x11Support -> tcl != null assert bluezSupport -> bluez != 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."; - assert lib.assertMsg (reproducibleBuild -> stripBytecode) "Deterministic builds require stripping bytecode."; @@ -83,25 +80,27 @@ let tzdataSupport = tzdata != null && passthru.pythonAtLeast "3.9"; - passthru = passthruFun rec { + passthru = let + # When we override the interpreter we also need to override the spliced versions of the interpreter + inputs' = lib.filterAttrs (n: v: ! lib.isDerivation v && n != "passthruFun") inputs; + override = attr: let python = attr.override (inputs' // { self = python; }); in python; + in passthruFun rec { inherit self sourceVersion packageOverrides; implementation = "cpython"; libPrefix = "python${pythonVersion}"; executable = libPrefix; pythonVersion = with sourceVersion; "${major}.${minor}"; sitePackages = "lib/${libPrefix}/site-packages"; - inherit hasDistutilsCxxPatch; - pythonOnBuildForBuild = pkgsBuildBuild.${pythonAttr}; - pythonOnBuildForHost = pkgsBuildHost.${pythonAttr}; - pythonOnBuildForTarget = pkgsBuildTarget.${pythonAttr}; - pythonOnHostForHost = pkgsHostHost.${pythonAttr}; - pythonOnTargetForTarget = pkgsTargetTarget.${pythonAttr} or {}; + inherit hasDistutilsCxxPatch pythonAttr; + pythonOnBuildForBuild = override pkgsBuildBuild.${pythonAttr}; + pythonOnBuildForHost = override pkgsBuildHost.${pythonAttr}; + pythonOnBuildForTarget = override pkgsBuildTarget.${pythonAttr}; + pythonOnHostForHost = override pkgsHostHost.${pythonAttr}; + pythonOnTargetForTarget = if lib.hasAttr pythonAttr pkgsTargetTarget then (override pkgsTargetTarget.${pythonAttr}) else {}; }; version = with sourceVersion; "${major}.${minor}.${patch}${suffix}"; - strictDeps = true; - nativeBuildInputs = optionals (!stdenv.isDarwin) [ autoreconfHook pkg-config @@ -111,7 +110,7 @@ let ] ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ buildPackages.stdenv.cc pythonForBuild - ] ++ optionals (stdenv.cc.isClang && enableLTO) [ + ] ++ optionals (stdenv.cc.isClang && (enableLTO || enableOptimizations)) [ stdenv.cc.cc.libllvm.out ]; @@ -145,7 +144,19 @@ let # The configure script uses "arm" as the CPU name for all 32-bit ARM # variants when cross-compiling, but native builds include the version # suffix, so we do the same. - pythonHostPlatform = "${parsed.kernel.name}-${parsed.cpu.name}"; + pythonHostPlatform = let + cpu = { + # According to PEP600, Python's name for the Power PC + # architecture is "ppc", not "powerpc". Without the Rosetta + # Stone below, the PEP600 requirement that "${ARCH} matches + # the return value from distutils.util.get_platform()" fails. + # https://peps.python.org/pep-0600/ + powerpc = "ppc"; + powerpcle = "ppcle"; + powerpc64 = "ppc64"; + powerpc64le = "ppc64le"; + }.${parsed.cpu.name} or parsed.cpu.name; + in "${parsed.kernel.name}-${cpu}"; # https://github.com/python/cpython/blob/e488e300f5c01289c10906c2e53a8e43d6de32d8/configure.ac#L724 multiarchCpu = @@ -182,7 +193,8 @@ in with passthru; stdenv.mkDerivation { pname = "python3"; inherit version; - inherit buildInputs nativeBuildInputs; + inherit nativeBuildInputs; + buildInputs = [ bash ] ++ buildInputs; # bash is only for patchShebangs src = fetchurl { url = with sourceVersion; "https://www.python.org/ftp/python/${major}.${minor}.${patch}/Python-${version}.tar.xz"; @@ -225,9 +237,11 @@ in with passthru; stdenv.mkDerivation { # * https://bugs.python.org/issue35523 # * https://github.com/python/cpython/commit/e6b247c8e524 ./3.7/no-win64-workaround.patch - ] ++ optionals (pythonAtLeast "3.7") [ + ] ++ optionals (pythonAtLeast "3.7" && pythonOlder "3.11") [ # Fix darwin build https://bugs.python.org/issue34027 ./3.7/darwin-libutil.patch + ] ++ optionals (pythonAtLeast "3.11") [ + ./3.11/darwin-libutil.patch ] ++ optionals (pythonOlder "3.8") [ # Backport from CPython 3.8 of a good list of tests to run for PGO. ( @@ -236,7 +250,7 @@ in with passthru; stdenv.mkDerivation { else ./3.5/profile-task.patch ) - ] ++ optionals (pythonAtLeast "3.9" && stdenv.isDarwin) [ + ] ++ optionals (pythonAtLeast "3.9" && pythonOlder "3.11" && stdenv.isDarwin) [ # Stop checking for TCL/TK in global macOS locations ./3.9/darwin-tcl-tk.patch ] ++ optionals (isPy3k && hasDistutilsCxxPatch) [ @@ -247,8 +261,10 @@ in with passthru; stdenv.mkDerivation { ( if isPy35 then ./3.5/python-3.x-distutils-C++.patch - else if pythonAtLeast "3.7" then + else if pythonAtLeast "3.7" && pythonOlder "3.11" then ./3.7/python-3.x-distutils-C++.patch + else if pythonAtLeast "3.11" then + ./3.11/python-3.x-distutils-C++.patch else fetchpatch { url = "https://bugs.python.org/file48016/python-3.x-distutils-C++.patch"; @@ -282,8 +298,8 @@ 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 = lib.optionalString stdenv.cc.isGNU ({ + LIBS = "${optionalString (!stdenv.isDarwin) "-lcrypt"}"; + NIX_LDFLAGS = lib.optionalString (stdenv.cc.isGNU && !stdenv.hostPlatform.isStatic) ({ "glibc" = "-lgcc_s"; "musl" = "-lgcc_eh"; }."${stdenv.hostPlatform.libc}" or ""); @@ -459,7 +475,7 @@ in with passthru; stdenv.mkDerivation { preFixup = lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) '' # Ensure patch-shebangs uses shebangs of host interpreter. - export PATH=${lib.makeBinPath [ "$out" bash ]}:$PATH + export PATH=${lib.makeBinPath [ "$out" ]}:$PATH ''; # Add CPython specific setup-hook that configures distutils.sysconfig to diff --git a/nixpkgs/pkgs/development/interpreters/python/default.nix b/nixpkgs/pkgs/development/interpreters/python/default.nix index 34fcb2530e19..119b7d556647 100644 --- a/nixpkgs/pkgs/development/interpreters/python/default.nix +++ b/nixpkgs/pkgs/development/interpreters/python/default.nix @@ -19,9 +19,14 @@ with pkgs; , pythonOnBuildForTarget , pythonOnHostForHost , pythonOnTargetForTarget + , pythonAttr ? null , self # is pythonOnHostForTarget }: let pythonPackages = callPackage + # Function that when called + # - imports python-packages.nix + # - adds spliced package sets to the package set + # - applies overrides from `packageOverrides` and `pythonPackagesOverlays`. ({ pkgs, stdenv, python, overrides }: let pythonPackagesFun = import ../../../top-level/python-packages.nix { inherit stdenv pkgs lib; @@ -74,8 +79,8 @@ with pkgs; extra = _: {}; optionalExtensions = cond: as: if cond then as else []; python2Extension = import ../../../top-level/python2-packages.nix; - extensions = lib.composeManyExtensions ((optionalExtensions (!self.isPy3k) [python2Extension]) ++ [ overrides ]); - aliases = self: super: lib.optionalAttrs (config.allowAliases or true) (import ../../../top-level/python-aliases.nix lib self super); + extensions = lib.composeManyExtensions ((optionalExtensions (!self.isPy3k) [python2Extension]) ++ pkgs.pythonPackagesExtensions ++ [ overrides ]); + aliases = self: super: lib.optionalAttrs config.allowAliases (import ../../../top-level/python-aliases.nix lib self super); in lib.makeScopeWithSplicing pkgs.splicePackages pkgs.newScope @@ -117,6 +122,8 @@ with pkgs; tests = callPackage ./tests.nix { python = self; }; + + inherit pythonAttr; }; sources = { @@ -124,19 +131,19 @@ with pkgs; sourceVersion = { major = "3"; minor = "9"; - patch = "10"; + patch = "13"; suffix = ""; }; - sha256 = "sha256-Co+/tSh+vDoT6brz1U4I+gZ3j/7M9jEa74Ibs6ZYbMg="; + sha256 = "sha256-ElsMWY8eFdKqZUBug/eS330XHN84wWgDsUmZQxajCA8="; }; python310 = { sourceVersion = { major = "3"; minor = "10"; - patch = "2"; + patch = "6"; suffix = ""; }; - sha256 = "sha256-F946x9qfJRmqnWQ3jGA6c6DprVjf+ogS5FFgwIbeZMc="; + sha256 = "sha256-95X/h9EdSwx8M7yIUbDChkjYpFg6ohAKmMIrQya20/M="; }; }; @@ -199,9 +206,9 @@ in { major = "3"; minor = "11"; patch = "0"; - suffix = "a6"; + suffix = "rc1"; }; - sha256 = "sha256-HFOi/3WHljPjDKwp0qpregEONVuV8L+axpG+zPX50So="; + sha256 = "sha256-U6U3fDeoosbaB1sU651jN0V59/PHGPog8KH7sOlKkis="; inherit (darwin) configd; inherit passthruFun; }; @@ -230,11 +237,10 @@ in { enableOptimizations = false; enableLTO = false; mimetypesSupport = false; - } // sources.python39)).overrideAttrs(old: { + } // sources.python310)).overrideAttrs(old: { + # TODO(@Artturin): Add this to the main cpython expr + strictDeps = true; pname = "python3-minimal"; - meta = old.meta // { - maintainers = []; - }; }); pypy27 = callPackage ./pypy { @@ -300,11 +306,6 @@ in { inherit passthruFun; }; - graalpython37 = callPackage ./graalpython/default.nix { - self = pythonInterpreters.graalpython37; - inherit passthruFun; - }; - rustpython = callPackage ./rustpython/default.nix { inherit (darwin.apple_sdk.frameworks) SystemConfiguration; }; diff --git a/nixpkgs/pkgs/development/interpreters/python/graalpython/default.nix b/nixpkgs/pkgs/development/interpreters/python/graalpython/default.nix deleted file mode 100644 index b5d7d130b5a7..000000000000 --- a/nixpkgs/pkgs/development/interpreters/python/graalpython/default.nix +++ /dev/null @@ -1,21 +0,0 @@ -{ pkgs -, lib -, graalvm8 -, passthruFun -, packageOverrides ? (self: super: {}) -, self -}: - -let - passthru = passthruFun { - inherit self packageOverrides; - implementation = "graal"; - sourceVersion = graalvm8.version; - pythonVersion = "3.7"; - libPrefix = "graalvm"; - sitePackages = "jre/languages/python/lib-python/3/site-packages"; - executable = "graalpython"; - hasDistutilsCxxPatch = false; - pythonForBuild = pkgs.buildPackages.pythonInterpreters.graalpython37; - }; -in lib.extendDerivation true passthru graalvm8 diff --git a/nixpkgs/pkgs/development/interpreters/python/hooks/default.nix b/nixpkgs/pkgs/development/interpreters/python/hooks/default.nix index 1a0618225a37..34c6a72662d7 100644 --- a/nixpkgs/pkgs/development/interpreters/python/hooks/default.nix +++ b/nixpkgs/pkgs/development/interpreters/python/hooks/default.nix @@ -124,6 +124,15 @@ in rec { }; } ./python-recompile-bytecode-hook.sh ) {}; + pythonRelaxDepsHook = callPackage ({ wheel }: + makeSetupHook { + name = "python-relax-deps-hook"; + deps = [ wheel ]; + substitutions = { + inherit pythonInterpreter; + }; + } ./python-relax-deps-hook.sh) {}; + pythonRemoveBinBytecodeHook = callPackage ({ }: makeSetupHook { name = "python-remove-bin-bytecode-hook"; @@ -161,12 +170,18 @@ in rec { deps = [ ensureNewerSourcesForZipFilesHook ]; substitutions = { inherit pythonInterpreter; - }; - } ./venv-shell-hook.sh) {}); + }; + } ./venv-shell-hook.sh) {}); wheelUnpackHook = callPackage ({ wheel }: makeSetupHook { name = "wheel-unpack-hook.sh"; deps = [ wheel ]; } ./wheel-unpack-hook.sh) {}; + + sphinxHook = callPackage ({ sphinx }: + makeSetupHook { + name = "python${python.pythonVersion}-sphinx-hook"; + deps = [ sphinx ]; + } ./sphinx-hook.sh) {}; } diff --git a/nixpkgs/pkgs/development/interpreters/python/hooks/python-relax-deps-hook.sh b/nixpkgs/pkgs/development/interpreters/python/hooks/python-relax-deps-hook.sh new file mode 100644 index 000000000000..82231ee3adc6 --- /dev/null +++ b/nixpkgs/pkgs/development/interpreters/python/hooks/python-relax-deps-hook.sh @@ -0,0 +1,86 @@ +# shellcheck shell=bash + +# Setup hook that modifies Python dependencies versions. +# +# Example usage in a derivation: +# +# { …, pythonPackages, … }: +# +# pythonPackages.buildPythonPackage { +# … +# nativeBuildInputs = [ pythonPackages.pythonRelaxDepsHook ]; +# +# # This will relax the dependency restrictions +# # e.g.: abc>1,<=2 -> abc +# pythonRelaxDeps = [ "abc" ]; +# # This will relax all dependencies restrictions instead +# # pythonRelaxDeps = true; +# # This will remove the dependency +# # e.g.: cde>1,<=2 -> <nothing> +# pythonRemoveDeps = [ "cde" ]; +# # This will remove all dependencies from the project +# # pythonRemoveDeps = true; +# … +# } + +_pythonRelaxDeps() { + local -r metadata_file="$1" + + if [[ -z "${pythonRelaxDeps:-}" ]] || [[ "$pythonRelaxDeps" == 0 ]]; then + return + elif [[ "$pythonRelaxDeps" == 1 ]]; then + sed -i "$metadata_file" -r \ + -e 's/(Requires-Dist: \S*) \(.*\)/\1/' + else + for dep in $pythonRelaxDeps; do + sed -i "$metadata_file" -r \ + -e "s/(Requires-Dist: $dep) \(.*\)/\1/" + done + fi +} + +_pythonRemoveDeps() { + local -r metadata_file="$1" + + if [[ -z "${pythonRemoveDeps:-}" ]] || [[ "$pythonRemoveDeps" == 0 ]]; then + return + elif [[ "$pythonRemoveDeps" == 1 ]]; then + sed -i "$metadata_file" \ + -e '/Requires-Dist:.*/d' + else + for dep in $pythonRemoveDeps; do + sed -i "$metadata_file" \ + -e "/Requires-Dist: $dep/d" + done + fi + +} + +pythonRelaxDepsHook() { + pushd dist + + # See https://peps.python.org/pep-0491/#escaping-and-unicode + local -r pkg_name="${pname//[^[:alnum:].]/_}-$version" + local -r unpack_dir="unpacked" + local -r metadata_file="$unpack_dir/$pkg_name/$pkg_name.dist-info/METADATA" + + # We generally shouldn't have multiple wheel files, but let's be safer here + for wheel in "$pkg_name"*".whl"; do + @pythonInterpreter@ -m wheel unpack --dest "$unpack_dir" "$wheel" + rm -rf "$wheel" + + _pythonRelaxDeps "$metadata_file" + _pythonRemoveDeps "$metadata_file" + + if (( "${NIX_DEBUG:-0}" >= 1 )); then + echo "pythonRelaxDepsHook: resulting METADATA for '$wheel':" + cat "$unpack_dir/$pkg_name/$pkg_name.dist-info/METADATA" + fi + + @pythonInterpreter@ -m wheel pack "$unpack_dir/$pkg_name" + done + + popd +} + +postBuild+=" pythonRelaxDepsHook" diff --git a/nixpkgs/pkgs/development/interpreters/python/hooks/setuptools-build-hook.sh b/nixpkgs/pkgs/development/interpreters/python/hooks/setuptools-build-hook.sh index cc0377449251..958a9378ef14 100644 --- a/nixpkgs/pkgs/development/interpreters/python/hooks/setuptools-build-hook.sh +++ b/nixpkgs/pkgs/development/interpreters/python/hooks/setuptools-build-hook.sh @@ -11,8 +11,11 @@ setuptoolsBuildPhase() { if [ -n "$setupPyGlobalFlags" ]; then args+="$setupPyGlobalFlags" fi + if [ -n "$enableParallelBuilding" ]; then + setupPyBuildFlags+=" --parallel $NIX_BUILD_CORES" + fi if [ -n "$setupPyBuildFlags" ]; then - args+="build_ext $setupPyBuildFlags" + args+=" build_ext $setupPyBuildFlags" fi eval "@pythonInterpreter@ nix_run_setup $args bdist_wheel" diff --git a/nixpkgs/pkgs/development/interpreters/python/hooks/sphinx-hook.sh b/nixpkgs/pkgs/development/interpreters/python/hooks/sphinx-hook.sh new file mode 100644 index 000000000000..92cc9e52ed21 --- /dev/null +++ b/nixpkgs/pkgs/development/interpreters/python/hooks/sphinx-hook.sh @@ -0,0 +1,57 @@ +# This hook automatically finds Sphinx documentation, builds it in html format +# and installs it. +# +# This hook knows about several popular locations in which subdirectory +# documentation may be, but in very unusual cases $sphinxRoot directory can be +# set explicitly. +# +# Name of the directory relative to ${doc:-$out}/share/doc is normally also +# deduced automatically, but can be overridden with $sphinxOutdir variable. +# +# Sphinx build system can depend on arbitrary amount of python modules, client +# code is responsible for ensuring that all dependencies are present. + +buildSphinxPhase() { + local __sphinxRoot="" o + + runHook preBuildSphinx + if [[ -n "${sphinxRoot:-}" ]] ; then # explicit root + if ! [[ -f "${sphinxRoot}/conf.py" ]] ; then + echo 2>&1 "$sphinxRoot/conf.py: no such file" + exit 1 + fi + __sphinxRoot=$sphinxRoot + else + for o in doc docs doc/source docs/source ; do + if [[ -f "$o/conf.py" ]] ; then + echo "Sphinx documentation found in $o" + __sphinxRoot=$o + break + fi + done + fi + + if [[ -z "${__sphinxRoot}" ]] ; then + echo 2>&1 "Sphinx documentation not found, use 'sphinxRoot' variable" + exit 1 + fi + sphinx-build -M html "${__sphinxRoot}" ".sphinx/html" -v + + runHook postBuildSphinx +} + +installSphinxPhase() { + local docdir="" + runHook preInstallSphinx + + docdir="${doc:-$out}/share/doc/${sphinxOutdir:-$name}" + mkdir -p "$docdir" + + cp -r .sphinx/html/html "$docdir/" + rm -fr "${docdir}/html/_sources" "${docdir}/html/.buildinfo" + + runHook postInstallSphinx +} + +preDistPhases+=" buildSphinxPhase" +postPhases+=" installSphinxPhase" diff --git a/nixpkgs/pkgs/development/interpreters/python/mk-python-derivation.nix b/nixpkgs/pkgs/development/interpreters/python/mk-python-derivation.nix index 963073df6200..f37ad592cb49 100644 --- a/nixpkgs/pkgs/development/interpreters/python/mk-python-derivation.nix +++ b/nixpkgs/pkgs/development/interpreters/python/mk-python-derivation.nix @@ -148,7 +148,12 @@ let buildInputs = buildInputs ++ pythonPath; - propagatedBuildInputs = propagatedBuildInputs ++ [ python ]; + propagatedBuildInputs = propagatedBuildInputs ++ [ + # we propagate python even for packages transformed with 'toPythonApplication' + # this pollutes the PATH but avoids rebuilds + # see https://github.com/NixOS/nixpkgs/issues/170887 for more context + python + ]; inherit strictDeps; @@ -176,8 +181,6 @@ let # default to python's platforms platforms = python.meta.platforms; isBuildPythonPackage = python.meta.platforms; - } // lib.optionalAttrs (attrs?pname) { - mainProgram = attrs.pname; } // meta; } // lib.optionalAttrs (attrs?checkPhase) { # If given use the specified checkPhase, otherwise use the setup hook. diff --git a/nixpkgs/pkgs/development/interpreters/python/pypy/default.nix b/nixpkgs/pkgs/development/interpreters/python/pypy/default.nix index 668a4e24b39e..e8c7d3ba65e5 100644 --- a/nixpkgs/pkgs/development/interpreters/python/pypy/default.nix +++ b/nixpkgs/pkgs/development/interpreters/python/pypy/default.nix @@ -30,6 +30,7 @@ let executable = "pypy${if isPy3k then "3" else ""}"; sitePackages = "site-packages"; hasDistutilsCxxPatch = false; + inherit pythonAttr; pythonOnBuildForBuild = pkgsBuildBuild.${pythonAttr}; pythonOnBuildForHost = pkgsBuildHost.${pythonAttr}; diff --git a/nixpkgs/pkgs/development/interpreters/python/setup-hook.nix b/nixpkgs/pkgs/development/interpreters/python/setup-hook.nix index b66bd1cc5f69..29ce079317f0 100644 --- a/nixpkgs/pkgs/development/interpreters/python/setup-hook.nix +++ b/nixpkgs/pkgs/development/interpreters/python/setup-hook.nix @@ -5,6 +5,7 @@ sitePackages: let hook = ./setup-hook.sh; in runCommand "python-setup-hook.sh" { + strictDeps = true; inherit sitePackages; } '' cp ${hook} hook.sh diff --git a/nixpkgs/pkgs/development/interpreters/python/tests.nix b/nixpkgs/pkgs/development/interpreters/python/tests.nix index 49dfe0e4644e..037c8f87b8ba 100644 --- a/nixpkgs/pkgs/development/interpreters/python/tests.nix +++ b/nixpkgs/pkgs/development/interpreters/python/tests.nix @@ -11,6 +11,7 @@ , substituteAll , lib , callPackage +, pkgs }: let @@ -133,6 +134,17 @@ let # test-overrideScope = let # myPackages = python.pkgs.overrideScope extension; # in assert myPackages.foobar == myPackages.numpy; myPackages.python.withPackages(ps: with ps; [ foobar ]); + } // lib.optionalAttrs (python ? pythonAttr) { + # Test applying overrides using pythonPackagesOverlays. + test-pythonPackagesExtensions = let + pkgs_ = pkgs.extend(final: prev: { + pythonPackagesExtensions = prev.pythonPackagesExtensions ++ [ + (python-final: python-prev: { + foo = python-prev.setuptools; + }) + ]; + }); + in pkgs_.${python.pythonAttr}.pkgs.foo; }; condaTests = let diff --git a/nixpkgs/pkgs/development/interpreters/python/update-python-libraries/update-python-libraries.py b/nixpkgs/pkgs/development/interpreters/python/update-python-libraries/update-python-libraries.py index 5f55ed5ecaf1..3843497d94e5 100755 --- a/nixpkgs/pkgs/development/interpreters/python/update-python-libraries/update-python-libraries.py +++ b/nixpkgs/pkgs/development/interpreters/python/update-python-libraries/update-python-libraries.py @@ -356,17 +356,19 @@ def _update_package(path, target): text = _replace_value('hash', sri_hash, text) if fetcher == 'fetchFromGitHub': - # 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\.]*);)' + # in the case of fetchFromGitHub, it's common to see `rev = version;` or `rev = "v${version}";` + # in which no string value is meant to be substituted. However, we can just overwrite the previous value. + regex = '(rev\s+=\s+[^;]*;)' regex = re.compile(regex) - value = regex.findall(text) - n = len(value) + matches = regex.findall(text) + n = len(matches) if n == 0: - # value is set to a string, e.g. `rev = "v${version}";` - text = _replace_value('rev', f"{prefix}${{version}}", text) + raise ValueError("Unable to find rev value for {}.".format(pname)) + else: + # forcefully rewrite rev, incase tagging conventions changed for a release + match = matches[0] + text = text.replace(match, f'rev = "refs/tags/{prefix}${{version}}";') # incase there's no prefix, just rewrite without interpolation text = text.replace('"${version}";', 'version;') diff --git a/nixpkgs/pkgs/development/interpreters/python/wrapper.nix b/nixpkgs/pkgs/development/interpreters/python/wrapper.nix index 514930db359b..b36662335abe 100644 --- a/nixpkgs/pkgs/development/interpreters/python/wrapper.nix +++ b/nixpkgs/pkgs/development/interpreters/python/wrapper.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, buildEnv, makeWrapper +{ lib, stdenv, buildEnv, makeBinaryWrapper # manually pased , python @@ -27,7 +27,7 @@ let inherit ignoreCollisions; extraOutputsToInstall = [ "out" ] ++ extraOutputsToInstall; - nativeBuildInputs = [ makeWrapper ]; + nativeBuildInputs = [ makeBinaryWrapper ]; postBuild = '' if [ -L "$out/bin" ]; then diff --git a/nixpkgs/pkgs/development/interpreters/racket/default.nix b/nixpkgs/pkgs/development/interpreters/racket/default.nix index bd96562d9e5d..67609132c80d 100644 --- a/nixpkgs/pkgs/development/interpreters/racket/default.nix +++ b/nixpkgs/pkgs/development/interpreters/racket/default.nix @@ -49,7 +49,7 @@ in stdenv.mkDerivation rec { pname = "racket"; - version = "8.4"; # always change at once with ./minimal.nix + version = "8.6"; # always change at once with ./minimal.nix src = (lib.makeOverridable ({ name, sha256 }: fetchurl { @@ -58,14 +58,13 @@ stdenv.mkDerivation rec { } )) { name = "${pname}-${version}"; - sha256 = "sha256-uJ+vL+FtBNILkFbwi7qZ6yBA1Rcr7o886zmZ/tFuatM="; + sha256 = "sha256-Lv8+l7x6EM+gMg2psH8NSIZTsLW4SQMiyC84SuD6Gig="; }; FONTCONFIG_FILE = fontsConf; LD_LIBRARY_PATH = libPath; NIX_LDFLAGS = lib.concatStringsSep " " [ (lib.optionalString (stdenv.cc.isGNU && ! stdenv.isDarwin) "-lgcc_s") - (lib.optionalString stdenv.isDarwin "-framework CoreFoundation") ]; nativeBuildInputs = [ cacert wrapGAppsHook ]; @@ -89,7 +88,7 @@ stdenv.mkDerivation rec { preConfigure = '' unset AR - for f in src/lt/configure src/cs/c/configure src/bc/src/string.c src/ChezScheme/workarea; do + for f in src/lt/configure src/cs/c/configure src/bc/src/string.c; do substituteInPlace "$f" \ --replace /usr/bin/uname ${coreutils}/bin/uname \ --replace /bin/cp ${coreutils}/bin/cp \ @@ -137,6 +136,7 @@ stdenv.mkDerivation rec { enableParallelBuilding = false; meta = with lib; { + broken = stdenv.isDarwin; description = "A programmable programming language"; longDescription = '' Racket is a full-spectrum programming language. It goes beyond @@ -149,7 +149,7 @@ stdenv.mkDerivation rec { ''; homepage = "https://racket-lang.org/"; license = with licenses; [ asl20 /* or */ mit ]; - maintainers = with maintainers; [ kkallio henrytill vrthra ]; + maintainers = with maintainers; [ henrytill vrthra ]; platforms = [ "x86_64-darwin" "x86_64-linux" "aarch64-linux" "aarch64-darwin" ]; }; } diff --git a/nixpkgs/pkgs/development/interpreters/racket/force-remove-codesign-then-add.patch b/nixpkgs/pkgs/development/interpreters/racket/force-remove-codesign-then-add.patch index c34457ceb950..38cd7f52e237 100644 --- a/nixpkgs/pkgs/development/interpreters/racket/force-remove-codesign-then-add.patch +++ b/nixpkgs/pkgs/development/interpreters/racket/force-remove-codesign-then-add.patch @@ -1,11 +1,10 @@ ---- 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) +--- old/src/mac/codesign.rkt ++++ new/src/mac/codesign.rkt +@@ -18,6 +18,6 @@ file)) - --(if remove? -- (remove-signature file) -- (add-ad-hoc-signature file)) -+(remove-signature file) -+(add-ad-hoc-signature file) + + (void +- (if remove? ++ (if #t + (remove-signature file) + (add-ad-hoc-signature file))) diff --git a/nixpkgs/pkgs/development/interpreters/racket/minimal.nix b/nixpkgs/pkgs/development/interpreters/racket/minimal.nix index b73cdaff5d3e..4796a2591064 100644 --- a/nixpkgs/pkgs/development/interpreters/racket/minimal.nix +++ b/nixpkgs/pkgs/development/interpreters/racket/minimal.nix @@ -6,7 +6,7 @@ racket.overrideAttrs (oldAttrs: rec { version = oldAttrs.version; src = oldAttrs.src.override { name = "${pname}-${version}"; - sha256 = "sha256-FZlUWvjtioe4S8gPetj7vdneVX6jEFguJo4j2wJsKAw="; + sha256 = "sha256-AdUJ1f/YKSD/S7Qd6EwH7MavkSKVNxatQ9hKp7OTn0g="; }; meta = oldAttrs.meta // { diff --git a/nixpkgs/pkgs/development/interpreters/racket/racket_7_9.nix b/nixpkgs/pkgs/development/interpreters/racket/racket_7_9.nix index 8d33962f914c..07c0376b42aa 100644 --- a/nixpkgs/pkgs/development/interpreters/racket/racket_7_9.nix +++ b/nixpkgs/pkgs/development/interpreters/racket/racket_7_9.nix @@ -104,7 +104,7 @@ stdenv.mkDerivation rec { ''; homepage = "https://racket-lang.org/"; license = with licenses; [ asl20 /* or */ mit ]; - maintainers = with maintainers; [ kkallio henrytill vrthra ]; + maintainers = with maintainers; [ henrytill vrthra ]; platforms = [ "x86_64-darwin" "x86_64-linux" "aarch64-linux" ]; broken = stdenv.isDarwin; # No support yet for setting FFI lookup path }; diff --git a/nixpkgs/pkgs/development/interpreters/rakudo/default.nix b/nixpkgs/pkgs/development/interpreters/rakudo/default.nix index 9de6c1b12398..fd8fbd42caeb 100644 --- a/nixpkgs/pkgs/development/interpreters/rakudo/default.nix +++ b/nixpkgs/pkgs/development/interpreters/rakudo/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "rakudo"; - version = "2022.02"; + version = "2022.03"; src = fetchurl { url = "https://rakudo.org/dl/rakudo/rakudo-${version}.tar.gz"; - sha256 = "sha256-am6dvMbZoWEKNMbsZ+LT9pTXsz6eCg8iRUMIn6f3EzI="; + sha256 = "sha256-A+IVsAGoeXR2GNb8GOt/icC4EvXlQ6Q+1mwTQ56ooic="; }; nativeBuildInputs = [ removeReferencesTo ]; diff --git a/nixpkgs/pkgs/development/interpreters/rakudo/moarvm.nix b/nixpkgs/pkgs/development/interpreters/rakudo/moarvm.nix index 41462e67a4c9..da7e66efff1b 100644 --- a/nixpkgs/pkgs/development/interpreters/rakudo/moarvm.nix +++ b/nixpkgs/pkgs/development/interpreters/rakudo/moarvm.nix @@ -1,6 +1,7 @@ { lib , stdenv , fetchurl +, fetchpatch , perl , CoreServices , ApplicationServices @@ -8,13 +9,23 @@ stdenv.mkDerivation rec { pname = "moarvm"; - version = "2022.02"; + version = "2022.03"; src = fetchurl { url = "https://moarvm.org/releases/MoarVM-${version}.tar.gz"; - sha256 = "sha256-T5PNzmuKVloyKCuzjMlxzv63H10CLIUMM47oFFV07pY="; + sha256 = "sha256-+3HNE5EkZEgrmbM/DAbp/XxRoVHG5jKpIgz5PFhV/a8="; }; + patches = [ + (fetchpatch { + name = "mimalloc-older-macos-fixes.patch"; + url = "https://github.com/microsoft/mimalloc/commit/40e0507a5959ee218f308d33aec212c3ebeef3bb.patch"; + stripLen = 1; + extraPrefix = "3rdparty/mimalloc/"; + sha256 = "1gcbn1850vy7xzalhn9ffnsg6x1ywi3fmnxvnal3m6lmb4kz5kb1"; + }) + ]; + postPatch = '' patchShebangs . '' + lib.optionalString stdenv.isDarwin '' @@ -35,7 +46,8 @@ stdenv.mkDerivation rec { description = "VM with adaptive optimization and JIT compilation, built for Rakudo"; homepage = "https://moarvm.org"; license = licenses.artistic2; - platforms = platforms.unix; maintainers = with maintainers; [ thoughtpolice vrthra sgo ]; + mainProgram = "moar"; + platforms = platforms.unix; }; } diff --git a/nixpkgs/pkgs/development/interpreters/rakudo/nqp.nix b/nixpkgs/pkgs/development/interpreters/rakudo/nqp.nix index 57cdef94c02d..dbcb945f4c34 100644 --- a/nixpkgs/pkgs/development/interpreters/rakudo/nqp.nix +++ b/nixpkgs/pkgs/development/interpreters/rakudo/nqp.nix @@ -2,16 +2,26 @@ stdenv.mkDerivation rec { pname = "nqp"; - version = "2022.02"; + version = "2022.03"; src = fetchurl { url = "https://github.com/raku/nqp/releases/download/${version}/nqp-${version}.tar.gz"; - sha256 = "sha256-JdPJl0XNhPQEmpvZzya7XcgXklq6r+ccm9tohBzbGLE="; + sha256 = "sha256-qV53iXDE0JwJHSqimcBQNiCM5LSw06evNzGYwSJYswY="; }; buildInputs = [ perl ]; configureScript = "${perl}/bin/perl ./Configure.pl"; + + # Fix for issue where nqp expects to find files from moarvm in the same output: + # https://github.com/Raku/nqp/commit/e6e069507de135cc71f77524455fc6b03b765b2f + # + preBuild = '' + share_dir="share/nqp/lib/MAST" + mkdir -p $out/$share_dir + ln -fs ${moarvm}/$share_dir/{Nodes,Ops}.nqp $out/$share_dir + ''; + configureFlags = [ "--backends=moar" "--with-moar=${moarvm}/bin/moar" diff --git a/nixpkgs/pkgs/development/interpreters/rascal/default.nix b/nixpkgs/pkgs/development/interpreters/rascal/default.nix index 6ba92a041eb5..fa54a421ccc1 100644 --- a/nixpkgs/pkgs/development/interpreters/rascal/default.nix +++ b/nixpkgs/pkgs/development/interpreters/rascal/default.nix @@ -24,6 +24,7 @@ stdenv.mkDerivation rec { meta = { homepage = "https://www.rascal-mpl.org/"; description = "Command-line REPL for the Rascal metaprogramming language"; + sourceProvenance = with lib.sourceTypes; [ binaryBytecode ]; license = lib.licenses.epl10; maintainers = [ lib.maintainers.eelco ]; platforms = lib.platforms.unix; diff --git a/nixpkgs/pkgs/development/interpreters/renpy/default.nix b/nixpkgs/pkgs/development/interpreters/renpy/default.nix new file mode 100644 index 000000000000..73c95c740596 --- /dev/null +++ b/nixpkgs/pkgs/development/interpreters/renpy/default.nix @@ -0,0 +1,89 @@ +{ lib, stdenv, fetchFromGitHub, python3, pkg-config, SDL2 +, libpng, ffmpeg, freetype, glew, libGL, libGLU, fribidi, zlib +, makeWrapper +}: + +stdenv.mkDerivation rec { + pname = "renpy"; + + # https://renpy.org/doc/html/changelog.html#versioning + # base_version is of the form major.minor.patch + # vc_version is of the form YYMMDDCC + # version corresponds to the tag on GitHub + base_version = "8.0.0"; + vc_version = "22062402"; + version = "${base_version}.${vc_version}"; + + src = fetchFromGitHub { + owner = "renpy"; + repo = "renpy"; + rev = version; + sha256 = "sha256-37Hbs0i5eXMjVaETX7ImJCak0y8XtEHUaRFceA9J39A="; + }; + + nativeBuildInputs = [ + pkg-config + makeWrapper + python3.pkgs.cython + ]; + + buildInputs = [ + SDL2 libpng ffmpeg freetype glew libGLU libGL fribidi zlib + ] ++ (with python3.pkgs; [ + python pygame_sdl2 tkinter future six pefile requests + ]); + + RENPY_DEPS_INSTALL = lib.concatStringsSep "::" (map (path: path) [ + SDL2 SDL2.dev libpng ffmpeg.out freetype glew.dev libGLU libGL fribidi zlib + ]); + + enableParallelBuilding = true; + + patches = [ + ./renpy-system-fribidi.diff + ]; + + postPatch = '' + substituteInPlace module/setup.py \ + --replace "@fribidi@" "${fribidi}" + + cp tutorial/game/tutorial_director.rpy{m,} + + cat > renpy/vc_version.py << EOF + vc_version = ${vc_version} + official = False + nightly = False + EOF + ''; + + buildPhase = with python3.pkgs; '' + runHook preBuild + ${python.interpreter} module/setup.py build --parallel=$NIX_BUILD_CORES + runHook postBuild + ''; + + installPhase = with python3.pkgs; '' + runHook preInstall + + ${python.interpreter} module/setup.py install --prefix=$out + mkdir -p $out/share/renpy + cp -vr sdk-fonts gui launcher renpy the_question tutorial renpy.py $out/share/renpy + + makeWrapper ${python.interpreter} $out/bin/renpy \ + --set PYTHONPATH "$PYTHONPATH:$out/${python.sitePackages}" \ + --add-flags "-O $out/share/renpy/renpy.py" + + runHook postInstall + ''; + + NIX_CFLAGS_COMPILE = with python3.pkgs; "-I${pygame_sdl2}/include/${python.libPrefix}"; + + meta = with lib; { + description = "Visual Novel Engine"; + homepage = "https://renpy.org/"; + changelog = "https://renpy.org/doc/html/changelog.html"; + license = licenses.mit; + platforms = platforms.linux; + maintainers = with maintainers; [ shadowrz ]; + }; +} diff --git a/nixpkgs/pkgs/development/interpreters/renpy/renpy-system-fribidi.diff b/nixpkgs/pkgs/development/interpreters/renpy/renpy-system-fribidi.diff new file mode 100644 index 000000000000..8c93b75a7b0f --- /dev/null +++ b/nixpkgs/pkgs/development/interpreters/renpy/renpy-system-fribidi.diff @@ -0,0 +1,51 @@ +diff --git a/module/renpybidicore.c b/module/renpybidicore.c +index 849430d..d883a52 100644 +--- a/module/renpybidicore.c ++++ b/module/renpybidicore.c +@@ -1,10 +1,6 @@ + #include <Python.h> + +-#ifdef RENPY_BUILD + #include <fribidi.h> +-#else +-#include <fribidi-src/lib/fribidi.h> +-#endif + + #include <stdlib.h> + +diff --git a/module/setup.py b/module/setup.py +index bd16816..f6b8794 100755 +--- a/module/setup.py ++++ b/module/setup.py +@@ -118,29 +118,17 @@ cython( + sdl + [ png, 'z', 'm' ]) + + FRIBIDI_SOURCES = """ +-fribidi-src/lib/fribidi.c +-fribidi-src/lib/fribidi-arabic.c +-fribidi-src/lib/fribidi-bidi.c +-fribidi-src/lib/fribidi-bidi-types.c +-fribidi-src/lib/fribidi-deprecated.c +-fribidi-src/lib/fribidi-joining.c +-fribidi-src/lib/fribidi-joining-types.c +-fribidi-src/lib/fribidi-mem.c +-fribidi-src/lib/fribidi-mirroring.c +-fribidi-src/lib/fribidi-run.c +-fribidi-src/lib/fribidi-shape.c + renpybidicore.c + """.split() + cython( + "_renpybidi", + FRIBIDI_SOURCES, ++ ["fribidi"], + includes=[ +- BASE + "/fribidi-src/", +- BASE + "/fribidi-src/lib/", ++ "@fribidi@/include/fribidi/", + ], + define_macros=[ + ("FRIBIDI_ENTRY", ""), +- ("HAVE_CONFIG_H", "1"), + ]) + + if not (android or ios or emscripten): diff --git a/nixpkgs/pkgs/development/interpreters/ruby/default.nix b/nixpkgs/pkgs/development/interpreters/ruby/default.nix index 4011ff61be70..a562411cbb39 100644 --- a/nixpkgs/pkgs/development/interpreters/ruby/default.nix +++ b/nixpkgs/pkgs/development/interpreters/ruby/default.nix @@ -62,14 +62,9 @@ let pname = "ruby"; inherit version; - src = if useRailsExpress then fetchFromGitHub { - owner = "ruby"; - repo = "ruby"; - rev = tag; - sha256 = sha256.git; - } else fetchurl { + src = fetchurl { url = "https://cache.ruby-lang.org/pub/ruby/${ver.majMin}/ruby-${ver}.tar.gz"; - sha256 = sha256.src; + inherit sha256; }; # Have `configure' avoid `/usr/bin/nroff' in non-chroot builds. @@ -87,13 +82,13 @@ let ++ (op opensslSupport openssl) ++ (op gdbmSupport gdbm) ++ (op yamlSupport libyaml) - ++ (op jemallocSupport jemalloc) # Looks like ruby fails to build on darwin without readline even if curses # support is not enabled, so add readline to the build inputs if curses # support is disabled (if it's enabled, we already have it) and we're # running on darwin ++ op (!cursesSupport && stdenv.isDarwin) readline ++ ops stdenv.isDarwin [ libiconv libobjc libunwind Foundation ]; + propagatedBuildInputs = op jemallocSupport jemalloc; enableParallelBuilding = true; @@ -104,18 +99,23 @@ let inherit patchSet useRailsExpress ops fetchpatch; patchLevel = ver.patchLevel; }).${ver.majMinTiny} - ++ 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 - # this error. We upgrade rubygems when rubygemsSupport is enabled, so - # we have to fix this bug to prevent the install step from failing. - # See https://github.com/ruby/ruby/pull/2930 - ++ op (!atLeast30 && rubygemsSupport) + ++ op (atLeast27 && lib.versionOlder ver.majMin "3.1") ./do-not-regenerate-revision.h.patch + ++ op (atLeast30 && useBaseRuby) ./do-not-update-gems-baseruby.patch + ++ ops (!atLeast30 && rubygemsSupport) [ + # We upgrade rubygems to a version that isn't compatible with the + # ruby 2.7 installer. Backport the upstream fix. + ./rbinstall-new-rubygems-compat.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 + # this error. We upgrade rubygems when rubygemsSupport is enabled, so + # we have to fix this bug to prevent the install step from failing. + # See https://github.com/ruby/ruby/pull/2930 (fetchpatch { url = "https://github.com/ruby/ruby/commit/261d8dd20afd26feb05f00a560abd99227269c1c.patch"; sha256 = "0wrii25cxcz2v8bgkrf7ibcanjlxwclzhayin578bf0qydxdm9qy"; - }); + }) + ]; postUnpack = opString rubygemsSupport '' rm -rf $sourceRoot/{lib,test}/rubygems* @@ -149,6 +149,10 @@ let (lib.enableFeature docSupport "install-doc") (lib.withFeature jemallocSupport "jemalloc") (lib.withFeatureAs docSupport "ridir" "${placeholder "devdoc"}/share/ri") + # ruby enables -O3 for gcc, however our compiler hardening wrapper + # overrides that by enabling `-O2` which is the minimum optimization + # needed for `_FORTIFY_SOURCE`. + ] ++ lib.optional stdenv.cc.isGNU "CFLAGS=-O3" ++ [ ] ++ ops stdenv.isDarwin [ # on darwin, we have /usr/include/tk.h -- so the configure script detects # that tk is installed @@ -194,6 +198,11 @@ let sed -i '/CC_VERSION_MESSAGE/d' $rbConfig '' } + # Remove unnecessary external intermediate files created by gems + extMakefiles=$(find $out/lib/ruby/gems -name Makefile) + for makefile in $extMakefiles; do + make -C "$(dirname "$makefile")" distclean + done # Bundler tries to create this directory mkdir -p $out/nix-support cat > $out/nix-support/setup-hook <<EOF @@ -263,91 +272,61 @@ let ) args; in self; in { + mkRubyVersion = rubyVersion; + mkRuby = generic; + ruby_1_9 = generic { version = rubyVersion "1" "9" "3" "p551"; - sha256 = { - src = "1s2ibg3s2iflzdv7rfxi1qqkvdbn2dq8gxdn0nxrb77ls5ffanxv"; - git = "1r9xzzxmci2ajb34qb4y1w424mz878zdgzxkfp9w60agldxnb36s"; - }; + sha256 = "1s2ibg3s2iflzdv7rfxi1qqkvdbn2dq8gxdn0nxrb77ls5ffanxv"; }; ruby_2_0 = generic { version = rubyVersion "2" "0" "0" "p648"; - sha256 = { - src = "1y3n4c6xw2wki7pyjpq5zpbgxnw5i3jc8mcpj6rk7hs995mvv446"; - git = "0ncjfq4hfqj9kcr8pbll6kypwnmcgs8w7l4466qqfyv7jj3yjd76"; - }; + sha256 = "1y3n4c6xw2wki7pyjpq5zpbgxnw5i3jc8mcpj6rk7hs995mvv446"; }; ruby_2_1 = generic { version = rubyVersion "2" "1" "10" ""; - sha256 = { - src = "086x66w51lg41abjn79xb7f6xsryymkcc3nvakmkjnjyg96labpv"; - git = "133phd5r5y0np5lc9nqif93l7yb13yd52aspyl6c46z5jhvhyvfi"; - }; + sha256 = "086x66w51lg41abjn79xb7f6xsryymkcc3nvakmkjnjyg96labpv"; }; ruby_2_2 = generic { version = rubyVersion "2" "2" "9" ""; - sha256 = { - src = "19m1ximl7vcrsvq595dgrjh4yb6kar944095wbywqh7waiqcfirg"; - git = "03qrjh55098wcqh2khxryzkzfqkznjrcdgwf27r2bgcycbg5ca5q"; - }; + sha256 = "19m1ximl7vcrsvq595dgrjh4yb6kar944095wbywqh7waiqcfirg"; }; ruby_2_3 = generic { version = rubyVersion "2" "3" "8" ""; - sha256 = { - src = "1gwsqmrhpx1wanrfvrsj3j76rv888zh7jag2si2r14qf8ihns0dm"; - git = "0158fg1sx6l6applbq0831kl8kzx5jacfl9lfg0shfzicmjlys3f"; - }; + sha256 = "1gwsqmrhpx1wanrfvrsj3j76rv888zh7jag2si2r14qf8ihns0dm"; }; ruby_2_4 = generic { version = rubyVersion "2" "4" "9" ""; - sha256 = { - src = "1bn6n5b920qy3lsx99jr8495jkc3sg89swgb96d5fgd579g6p6zr"; - git = "066kb1iki7mx7qkm10xhj5b6v8s47wg68v43l3nc36y2hyim1w2c"; - }; + sha256 = "1bn6n5b920qy3lsx99jr8495jkc3sg89swgb96d5fgd579g6p6zr"; }; ruby_2_5 = generic { version = rubyVersion "2" "5" "8" ""; - sha256 = { - src = "16md4jspjwixjlbhx3pnd5iwpca07p23ghkxkqd82sbchw3xy2vc"; - git = "19gkk3q9l33cwkfsp5k8f8fipq7gkyqkqirm9farbvy425519rv2"; - }; + sha256 = "16md4jspjwixjlbhx3pnd5iwpca07p23ghkxkqd82sbchw3xy2vc"; }; ruby_2_6 = generic { version = rubyVersion "2" "6" "8" ""; - sha256 = { - src = "0vfam28ifl6h2wxi6p70j0hm3f1pvsp432hf75m5j25wfy2vf1qq"; - git = "0rc3n6sk8632r0libpv8jwslc7852hgk64rvbdrspc9razjwx21c"; - }; + sha256 = "0vfam28ifl6h2wxi6p70j0hm3f1pvsp432hf75m5j25wfy2vf1qq"; }; ruby_2_7 = generic { - version = rubyVersion "2" "7" "5" ""; - sha256 = { - src = "1wc1hwmz4m6iqlmqag8liyld917p6a8dvnhnpd1v8d8jl80bjm97"; - git = "16565fyl7141hr6q6d74myhsz46lvgam8ifnacshi68vzibwjbbh"; - }; + version = rubyVersion "2" "7" "6" ""; + sha256 = "042xrdk7hsv4072bayz3f8ffqh61i8zlhvck10nfshllq063n877"; }; ruby_3_0 = generic { - version = rubyVersion "3" "0" "3" ""; - sha256 = { - src = "1b4j39zyyvdkf1ax2c6qfa40b4mxfkr87zghhw19fmnzn8f8d1im"; - git = "1q19w5i1jkfxn7qq6f9v9ngax9h52gxwijk7hp312dx6amwrkaim"; - }; + version = rubyVersion "3" "0" "4" ""; + sha256 = "0avj4g3s2839b2y4m6pk8kid74r8nj7k0qm2rsdcwjzhg8h7rd3h"; }; ruby_3_1 = generic { - version = rubyVersion "3" "1" "1" ""; - sha256 = { - src = "sha256-/m5Hgt6XRDl43bqLpL440iKqJNw+PwKmqOdwHA7rYZ0="; - git = "sha256-76t/tGyK5nz7nvcRdHJTjjckU+Kv+/kbTMiNWJ93jU8="; - }; + version = rubyVersion "3" "1" "2" ""; + sha256 = "0gm84ipk6mrfw94852w5h7xxk2lqrxjbnlwb88svf0lz70933131"; }; } diff --git a/nixpkgs/pkgs/development/interpreters/ruby/patchsets.nix b/nixpkgs/pkgs/development/interpreters/ruby/patchsets.nix index 2114faf74257..79e3c1ad1479 100644 --- a/nixpkgs/pkgs/development/interpreters/ruby/patchsets.nix +++ b/nixpkgs/pkgs/development/interpreters/ruby/patchsets.nix @@ -76,15 +76,15 @@ "${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.5" = ops useRailsExpress [ + "2.7.6" = 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" ]; - "3.0.3" = ops useRailsExpress [ + "3.0.4" = ops useRailsExpress [ "${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.1" = ops useRailsExpress [ # no patches yet (2021-12-25) + "3.1.2" = ops useRailsExpress [ # no patches yet (2021-12-25) ]; } diff --git a/nixpkgs/pkgs/development/interpreters/ruby/rbinstall-new-rubygems-compat.patch b/nixpkgs/pkgs/development/interpreters/ruby/rbinstall-new-rubygems-compat.patch new file mode 100644 index 000000000000..54ce8a357a86 --- /dev/null +++ b/nixpkgs/pkgs/development/interpreters/ruby/rbinstall-new-rubygems-compat.patch @@ -0,0 +1,87 @@ +From 8e85d27f9ccfe152fc1b891c19f125915a907493 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com> +Date: Tue, 1 Oct 2019 12:03:33 +0200 +Subject: [PATCH] Use `Gem::Package` like object instead of monkey patching. + +1. This is similar to what RubyGems does and it is less magic [[1]]. +2. It avoids deprecated code paths in RubyGems [[2]]. + +[1]: https://github.com/rubygems/rubygems/blob/92892bbc3adba86a90756c385433835f6761b8da/lib/rubygems/installer.rb#L151 +[2]: https://github.com/rubygems/rubygems/blob/92892bbc3adba86a90756c385433835f6761b8da/lib/rubygems/installer.rb#L187 + +(cherry picked from commit e960ef6f18a25c637c54f00c75bb6c24f8ab55d0) +--- + tool/rbinstall.rb | 47 +++++++++++++++++++++++++++-------------------- + 1 file changed, 27 insertions(+), 20 deletions(-) + +diff --git a/tool/rbinstall.rb b/tool/rbinstall.rb +index 060390626f..28ae8c409a 100755 +--- a/tool/rbinstall.rb ++++ b/tool/rbinstall.rb +@@ -710,28 +710,34 @@ def remove_prefix(prefix, string) + end + end + +- class UnpackedInstaller < Gem::Installer +- module DirPackage +- def extract_files(destination_dir, pattern = "*") +- path = File.dirname(@gem.path) +- return if path == destination_dir +- File.chmod(0700, destination_dir) +- mode = pattern == "bin/*" ? $script_mode : $data_mode +- spec.files.each do |f| +- src = File.join(path, f) +- dest = File.join(without_destdir(destination_dir), f) +- makedirs(dest[/.*(?=\/)/m]) +- install src, dest, :mode => mode +- end +- File.chmod($dir_mode, destination_dir) ++ class DirPackage ++ attr_reader :spec ++ ++ attr_accessor :dir_mode ++ attr_accessor :prog_mode ++ attr_accessor :data_mode ++ ++ def initialize(spec) ++ @spec = spec ++ @src_dir = File.dirname(@spec.loaded_from) ++ end ++ ++ def extract_files(destination_dir, pattern = "*") ++ path = @src_dir ++ return if path == destination_dir ++ File.chmod(0700, destination_dir) ++ mode = pattern == "bin/*" ? $script_mode : $data_mode ++ spec.files.each do |f| ++ src = File.join(path, f) ++ dest = File.join(without_destdir(destination_dir), f) ++ makedirs(dest[/.*(?=\/)/m]) ++ install src, dest, :mode => mode + end ++ File.chmod($dir_mode, destination_dir) + end ++ end + +- def initialize(spec, *options) +- super(spec.loaded_from, *options) +- @package.extend(DirPackage).spec = spec +- end +- ++ class UnpackedInstaller < Gem::Installer + def write_cache_file + end + +@@ -890,7 +896,8 @@ def install_default_gem(dir, srcdir) + if File.directory?(ext = "#{gem_ext_dir}/#{spec.full_name}") + spec.extensions[0] ||= "-" + end +- ins = RbInstall::UnpackedInstaller.new(spec, options) ++ package = RbInstall::DirPackage.new spec ++ ins = RbInstall::UnpackedInstaller.new(package, options) + puts "#{INDENT}#{spec.name} #{spec.version}" + ins.install + File.chmod($data_mode, File.join(install_dir, "specifications", "#{spec.full_name}.gemspec")) +-- +2.35.1 + diff --git a/nixpkgs/pkgs/development/interpreters/ruby/rubygems/default.nix b/nixpkgs/pkgs/development/interpreters/ruby/rubygems/default.nix index 4150f7683d5d..6a8e171ee6e1 100644 --- a/nixpkgs/pkgs/development/interpreters/ruby/rubygems/default.nix +++ b/nixpkgs/pkgs/development/interpreters/ruby/rubygems/default.nix @@ -1,7 +1,7 @@ { stdenv, lib, fetchurl }: stdenv.mkDerivation rec { - name = "rubygems"; + pname = "rubygems"; version = "3.2.26"; src = fetchurl { diff --git a/nixpkgs/pkgs/development/interpreters/scsh/default.nix b/nixpkgs/pkgs/development/interpreters/scsh/default.nix index b57cc64fb8d7..45b59124b782 100644 --- a/nixpkgs/pkgs/development/interpreters/scsh/default.nix +++ b/nixpkgs/pkgs/development/interpreters/scsh/default.nix @@ -7,8 +7,8 @@ stdenv.mkDerivation { src = fetchFromGitHub { owner = "scheme"; repo = "scsh"; - rev = "f99b8c5293628cfeaeb792019072e3a96841104f"; - sha256 = "sha256-vcVtqoUhozdJq1beUN8/rcI2qOJYUN+0CPSiDWGCIjI="; + rev = "4acf6e4ed7b65b46186ef0c9c2a1e10bef8dc052"; + sha256 = "sha256-92NtMK5nVd6+WtHj/Rk6iQEkGsNEZySTVZkkbqKrLYY="; fetchSubmodules = true; }; diff --git a/nixpkgs/pkgs/development/interpreters/sollya/default.nix b/nixpkgs/pkgs/development/interpreters/sollya/default.nix index eb20f61a9906..78b45daf178d 100644 --- a/nixpkgs/pkgs/development/interpreters/sollya/default.nix +++ b/nixpkgs/pkgs/development/interpreters/sollya/default.nix @@ -10,20 +10,22 @@ stdenv.mkDerivation rec { pname = "sollya"; - version = "7.0"; + version = "8.0"; src = fetchurl { url = "https://www.sollya.org/releases/sollya-${version}/sollya-${version}.tar.gz"; - sha256 = "0amrxg7567yy5xqpgchxggjpfr11xyl27vy29c7vlh7v8a17nj1h"; + sha256 = "sha256-WNc0+aL8jmczwR+W0t+aslvvJNccQBIw4p8KEzmoEZI="; }; buildInputs = [ gmp mpfr mpfi libxml2 fplll ]; + doCheck = true; + meta = with lib; { description = "A tool environment for safe floating-point code development"; homepage = "https://www.sollya.org/"; license = licenses.cecill-c; - platforms = platforms.linux; - maintainers = with maintainers; [ ]; + platforms = platforms.unix; + maintainers = with maintainers; [ wegank ]; }; } diff --git a/nixpkgs/pkgs/development/interpreters/spidermonkey/102.nix b/nixpkgs/pkgs/development/interpreters/spidermonkey/102.nix new file mode 100644 index 000000000000..ef89d1ca0a27 --- /dev/null +++ b/nixpkgs/pkgs/development/interpreters/spidermonkey/102.nix @@ -0,0 +1,4 @@ +import ./common.nix { + version = "102.1.0"; + hash = "sha512-JQW4fOQRVEVWjra32K9BZ4vXh/0H8/eenwoi2QzfdSrl1DcYVs+cVuLZ2n1bfDk53CqrV1P8wBc5jn1lJg9vAw=="; +} diff --git a/nixpkgs/pkgs/development/interpreters/spidermonkey/78.nix b/nixpkgs/pkgs/development/interpreters/spidermonkey/78.nix index f2a68158266b..05124a417fef 100644 --- a/nixpkgs/pkgs/development/interpreters/spidermonkey/78.nix +++ b/nixpkgs/pkgs/development/interpreters/spidermonkey/78.nix @@ -1,139 +1,4 @@ -{ lib, stdenv -, fetchurl -, fetchpatch -, autoconf213 -, pkg-config -, perl -, python3 -, zip -, buildPackages -, which -, readline -, zlib -, icu67 -, cargo -, rustc -, rust-cbindgen -, yasm -, nspr -}: - -stdenv.mkDerivation rec { - pname = "spidermonkey"; +import ./common.nix { version = "78.15.0"; - - src = fetchurl { - url = "mirror://mozilla/firefox/releases/${version}esr/source/firefox-${version}esr.source.tar.xz"; - sha256 = "0l91cxdc5v9fps79ckb1kid4gw6v5qng1jd9zvaacwaiv628shx4"; - }; - - patches = [ - # Fix build failure on armv7l using Debian patch - # Upstream bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1526653 - (fetchpatch { - 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" ]; - setOutputFlags = false; # Configure script only understands --includedir - - nativeBuildInputs = [ - autoconf213 - cargo - rustc.llvmPackages.llvm # for llvm-objdump - perl - pkg-config - python3 - rust-cbindgen - rustc - which - yasm # to buid icu? seems weird - zip - ]; - - buildInputs = [ - icu67 - nspr - readline - zlib - ]; - - preConfigure = '' - export CXXFLAGS="-fpermissive" - export LIBXUL_DIST=$out - export PYTHON="${buildPackages.python3.interpreter}" - - # We can't build in js/src/, so create a build dir - mkdir obj - cd obj/ - configureScript=../js/src/configure - ''; - - configureFlags = [ - "--with-system-zlib" - "--with-system-nspr" - "--with-system-icu" - "--with-intl-api" - "--enable-readline" - "--enable-shared-js" - "--disable-jemalloc" - # 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" - ] ++ lib.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}" - ]; - - # 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" - rm $out/lib/libjs_static.ajs - ln -s $out/bin/js78 $out/bin/js - ''; - - enableParallelBuilding = true; - - postPatch = '' - # This patch is a manually applied fix of - # https://bugzilla.mozilla.org/show_bug.cgi?id=1644600 - # Once that bug is fixed, this can be removed. - # This is needed in, for example, `zeroad`. - substituteInPlace js/public/StructuredClone.h \ - --replace "class SharedArrayRawBufferRefs {" \ - "class JS_PUBLIC_API SharedArrayRawBufferRefs {" - ''; - - meta = with lib; { - description = "Mozilla's JavaScript engine written in C/C++"; - homepage = "https://spidermonkey.dev/"; - license = licenses.gpl2; # TODO: MPL/GPL/LGPL tri-license. - maintainers = with maintainers; [ abbradar lostnet ]; - platforms = platforms.linux; - }; + hash = "sha512-rD3nNbJGzk8OFhnNJmQyH/o3QkDOaEPnhdeaNQ3DDJZ5lrvMXjswHLPYIsqYHL6hFnWPxBIvFzjXXd/RFltjeA==="; } diff --git a/nixpkgs/pkgs/development/interpreters/spidermonkey/91.nix b/nixpkgs/pkgs/development/interpreters/spidermonkey/91.nix index fede01c0ada7..ca771fa75fd6 100644 --- a/nixpkgs/pkgs/development/interpreters/spidermonkey/91.nix +++ b/nixpkgs/pkgs/development/interpreters/spidermonkey/91.nix @@ -1,122 +1,4 @@ -{ lib, stdenv -, fetchurl -, pkg-config -, perl -, python3 -, zip -, buildPackages -, which -, readline -, zlib -, icu69 -, cargo -, rustc -, rust-cbindgen -, yasm -, nspr -, m4 -}: - -stdenv.mkDerivation rec { - pname = "spidermonkey"; - version = "91.7.0"; - - src = fetchurl { - url = "mirror://mozilla/firefox/releases/${version}esr/source/firefox-${version}esr.source.tar.xz"; - sha512 = "925811989d8a91d826ba356bd46ac54be8153288ec0319c28d2bfbe89191e62e107691159dd7ca247253e2a4952eb59a5b9613e3feea3f5351238d4822e26301"; - }; - - outputs = [ "out" "dev" ]; - setOutputFlags = false; # Configure script only understands --includedir - - nativeBuildInputs = [ - cargo - rustc.llvmPackages.llvm # for llvm-objdump - perl - pkg-config - python3 - rust-cbindgen - rustc - which - yasm # to buid icu? seems weird - zip - m4 - ]; - - buildInputs = [ - icu69 - nspr - readline - zlib - ]; - - preConfigure = '' - export LIBXUL_DIST=$out - export PYTHON="${buildPackages.python3.interpreter}" - export M4=m4 - export AWK=awk - export AC_MACRODIR=$PWD/build/autoconf/ - - pushd js/src - sh ../../build/autoconf/autoconf.sh --localdir=$PWD configure.in > configure - chmod +x configure - popd - # We can't build in js/src/, so create a build dir - mkdir obj - cd obj/ - configureScript=../js/src/configure - ''; - - configureFlags = [ - "--with-intl-api" - "--with-system-icu" - "--with-system-nspr" - "--with-system-zlib" - "--enable-optimize" - "--enable-readline" - "--enable-release" - "--enable-shared-js" - "--disable-debug" - "--disable-jemalloc" - "--disable-strip" - "--disable-tests" - ] ++ lib.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}" - ]; - - # 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 - preFixup = '' - moveToOutput bin/js91-config "$dev" - rm $out/lib/libjs_static.ajs - ln -s $out/bin/js91 $out/bin/js - ''; - - enableParallelBuilding = true; - - postPatch = '' - # This patch is a manually applied fix of - # https://bugzilla.mozilla.org/show_bug.cgi?id=1644600 - # Once that bug is fixed, this can be removed. - # This is needed in, for example, `zeroad`. - substituteInPlace js/public/StructuredClone.h \ - --replace "class SharedArrayRawBufferRefs {" \ - "class JS_PUBLIC_API SharedArrayRawBufferRefs {" - ''; - - meta = with lib; { - description = "Mozilla's JavaScript engine written in C/C++"; - homepage = "https://spidermonkey.dev/"; - license = licenses.mpl20; - maintainers = with maintainers; [ lostnet ]; - platforms = platforms.linux; - }; +import ./common.nix { + version = "91.12.0"; + hash = "sha512-Mj+3UkiLRYcrQPCw7h2MHf+haHTb/yr94ZpUKGyCTvSBdyM+Ap+ur6WUYYTnHDHGvFun7BelceIa9k/F9zNAQg=="; } diff --git a/nixpkgs/pkgs/development/interpreters/spidermonkey/allow-system-s-nspr-and-icu-on-bootstrapped-sysroot.patch b/nixpkgs/pkgs/development/interpreters/spidermonkey/allow-system-s-nspr-and-icu-on-bootstrapped-sysroot.patch new file mode 100644 index 000000000000..29966d90864d --- /dev/null +++ b/nixpkgs/pkgs/development/interpreters/spidermonkey/allow-system-s-nspr-and-icu-on-bootstrapped-sysroot.patch @@ -0,0 +1,40 @@ +From a26bb162d9403138d64b84e8fa4f0471084c45b2 Mon Sep 17 00:00:00 2001 +From: "Kirill A. Korinsky" <kirill@korins.ky> +Date: Fri, 8 Jul 2022 21:21:25 +0200 +Subject: [PATCH] Allow system's nspr and icu on bootstrapped sysroot + +This patch partially reverts https://github.com/mozilla/gecko-dev/commit/9aa3587bbf0416dd2eb5b614f7b301c71c64286b +--- + build/moz.configure/nspr.configure | 2 +- + js/moz.configure | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/build/moz.configure/nspr.configure b/build/moz.configure/nspr.configure +index 06f03d9bc72d..9687c84a7290 100644 +--- a/build/moz.configure/nspr.configure ++++ b/build/moz.configure/nspr.configure +@@ -19,7 +19,7 @@ def enable_nspr_build(enable): + return enable + + +-system_lib_option("--with-system-nspr", help="Use system NSPR") ++option("--with-system-nspr", help="Use system NSPR") + + + @depends(enable_nspr_build, "--with-system-nspr", js_standalone) +diff --git a/js/moz.configure b/js/moz.configure +index b7ba9790425d..5ff5cb2da266 100644 +--- a/js/moz.configure ++++ b/js/moz.configure +@@ -1129,7 +1129,7 @@ set_define( + + # ECMAScript Internationalization API Support (uses ICU) + # ====================================================== +-system_lib_option("--with-system-icu", help="Use system ICU") ++option("--with-system-icu", help="Use system ICU") + + system_icu = pkg_check_modules("MOZ_ICU", "icu-i18n >= 71.1", when="--with-system-icu") + +-- +2.37.0 + diff --git a/nixpkgs/pkgs/development/interpreters/spidermonkey/always-check-for-pkg-config.patch b/nixpkgs/pkgs/development/interpreters/spidermonkey/always-check-for-pkg-config.patch new file mode 100644 index 000000000000..c6e43b60aa59 --- /dev/null +++ b/nixpkgs/pkgs/development/interpreters/spidermonkey/always-check-for-pkg-config.patch @@ -0,0 +1,23 @@ +From 9d3f6e9ff5e66af90a5d187d902f7893fb91c24b Mon Sep 17 00:00:00 2001 +From: "Kirill A. Korinsky" <kirill@korins.ky> +Date: Fri, 1 Jul 2022 12:23:37 +0200 +Subject: [PATCH] Always check for pkg-config + +--- + build/moz.configure/pkg.configure | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/build/moz.configure/pkg.configure b/build/moz.configure/pkg.configure +index 6b460ae174eed..0056ecd7ae2d8 100644 +--- a/build/moz.configure/pkg.configure ++++ b/build/moz.configure/pkg.configure +@@ -15,8 +15,7 @@ pkg_config = check_prog( + pkg_config, + bootstrap=depends(when=target_sysroot.bootstrapped)(lambda: "pkgconf"), + allow_missing=True, +- when=compile_environment +- & depends(target.os)(lambda os: os not in ("WINNT", "OSX", "Android")), ++ when=compile_environment, + ) + + diff --git a/nixpkgs/pkgs/development/interpreters/spidermonkey/common.nix b/nixpkgs/pkgs/development/interpreters/spidermonkey/common.nix new file mode 100644 index 000000000000..8e2b1234fdbc --- /dev/null +++ b/nixpkgs/pkgs/development/interpreters/spidermonkey/common.nix @@ -0,0 +1,199 @@ +{ version, hash }: + +{ callPackage +, lib +, stdenv +, fetchurl +, fetchpatch + +# build time +, buildPackages +, cargo +, m4 +, perl +, pkg-config +, python3 +, python39 +, rustc +, which +, zip +, autoconf213 +, yasm +, xcbuild + +# runtime +, icu +, icu67 +, nspr +, readline +, zlib +, libobjc +, libiconv +}: + +stdenv.mkDerivation (finalAttrs: rec { + pname = "spidermonkey"; + inherit version; + + outputs = [ "out" "dev" ]; + + src = fetchurl { + url = "mirror://mozilla/firefox/releases/${version}esr/source/firefox-${version}esr.source.tar.xz"; + inherit hash; + }; + + patches = lib.optional (lib.versionOlder version "91") [ + # Fix build failure on armv7l using Debian patch + # Upstream bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1526653 + (fetchpatch { + url = "https://salsa.debian.org/mozilla-team/firefox/commit/fd6847c9416f9eebde636e21d794d25d1be8791d.patch"; + hash = "sha512-K8U3Qyo7g4si2r/8kJdXyRoTrDHAY48x/YJ7YL+YBwlpfNQcHxX+EZvhRzW8FHYW+f7kOnJu9QykhE8PhSQ9zQ=="; + }) + + # 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 + ] ++ lib.optionals (lib.versionAtLeast version "102") [ + # use pkg-config at all systems + ./always-check-for-pkg-config.patch + ./allow-system-s-nspr-and-icu-on-bootstrapped-sysroot.patch + + # Patches required by GJS + # https://discourse.gnome.org/t/gnome-43-to-depend-on-spidermonkey-102/10658 + # Install ProfilingCategoryList.h + (fetchpatch { + url = "https://hg.mozilla.org/releases/mozilla-esr102/raw-rev/33147b91e42b79f4c6dd3ec11cce96746018407a"; + sha256 = "sha256-xJFJZMYJ6P11HQDZbr48GFgybpAeVcu3oLIFEyyMjBI="; + }) + # Fix embeder build + (fetchpatch { + url = "https://hg.mozilla.org/releases/mozilla-esr102/raw-rev/1fa20fb474f5d149cc32d98df169dee5e6e6861b"; + sha256 = "sha256-eCisKjNxy9SLr9KoEE2UB26BflUknnR7PIvnpezsZeA="; + }) + ]; + + nativeBuildInputs = [ + cargo + m4 + perl + pkg-config + # 78 requires python up to 3.9 + (if lib.versionOlder version "91" then python39 else python3) + rustc + rustc.llvmPackages.llvm # for llvm-objdump + which + zip + ] ++ lib.optionals (lib.versionOlder version "91") [ + autoconf213 + yasm # to buid icu? seems weird + ] ++ lib.optionals stdenv.isDarwin [ + xcbuild + ]; + + buildInputs = [ + (if lib.versionOlder version "91" then icu67 else icu) + nspr + readline + zlib + ] ++ lib.optionals stdenv.isDarwin [ + libobjc + libiconv + ]; + + depsBuildBuild = [ + buildPackages.stdenv.cc + ]; + + setOutputFlags = false; # Configure script only understands --includedir + + configureFlags = [ + "--with-intl-api" + "--with-system-icu" + "--with-system-nspr" + "--with-system-zlib" + # 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-readline" + "--enable-release" + "--enable-shared-js" + ] ++ lib.optionals (lib.versionAtLeast version "91") [ + "--disable-debug" + ] ++ [ + "--disable-jemalloc" + "--disable-strip" + "--disable-tests" + ] ++ lib.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}" + ]; + + # 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 = [ ]; + + enableParallelBuilding = true; + + # 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 && lib.versionOlder version "91") "-mabi=lp64d"; + + postPatch = lib.optionalString (lib.versionOlder version "102") '' + # This patch is a manually applied fix of + # https://bugzilla.mozilla.org/show_bug.cgi?id=1644600 + # Once that bug is fixed, this can be removed. + # This is needed in, for example, `zeroad`. + substituteInPlace js/public/StructuredClone.h \ + --replace "class SharedArrayRawBufferRefs {" \ + "class JS_PUBLIC_API SharedArrayRawBufferRefs {" + ''; + + preConfigure = lib.optionalString (lib.versionOlder version "91") '' + export CXXFLAGS="-fpermissive" + '' + '' + export LIBXUL_DIST=$out + export PYTHON="${buildPackages.python3.interpreter}" + '' + lib.optionalString (lib.versionAtLeast version "91") '' + export M4=m4 + export AWK=awk + export AS=$CC + export AC_MACRODIR=$PWD/build/autoconf/ + + pushd js/src + sh ../../build/autoconf/autoconf.sh --localdir=$PWD configure.in > configure + chmod +x configure + popd + '' + '' + # We can't build in js/src/, so create a build dir + mkdir obj + cd obj/ + configureScript=../js/src/configure + ''; + + # Remove unnecessary static lib + preFixup = '' + moveToOutput bin/js${lib.versions.major version}-config "$dev" + rm $out/lib/libjs_static.ajs + ln -s $out/bin/js${lib.versions.major version} $out/bin/js + ''; + + passthru.tests.run = callPackage ./test.nix { + spidermonkey = finalAttrs.finalPackage; + }; + + meta = with lib; { + description = "Mozilla's JavaScript engine written in C/C++"; + homepage = "https://spidermonkey.dev/"; + license = licenses.mpl20; # TODO: MPL/GPL/LGPL tri-license for 78. + maintainers = with maintainers; [ abbradar lostnet catap ]; + platforms = platforms.unix; + }; +}) diff --git a/nixpkgs/pkgs/development/interpreters/spidermonkey/test.nix b/nixpkgs/pkgs/development/interpreters/spidermonkey/test.nix new file mode 100644 index 000000000000..c3ef92bebfa8 --- /dev/null +++ b/nixpkgs/pkgs/development/interpreters/spidermonkey/test.nix @@ -0,0 +1,10 @@ +{ runCommand, spidermonkey }: + +runCommand "spidermonkey-test-run" { + nativeBuildInputs = [ + spidermonkey + ]; +} '' + diff -U3 --color=auto <(js <(echo "console.log('Hello, world\!')")) <(echo 'Hello, world!') + touch $out +'' diff --git a/nixpkgs/pkgs/development/interpreters/starlark/default.nix b/nixpkgs/pkgs/development/interpreters/starlark/default.nix new file mode 100644 index 000000000000..c61e511102d7 --- /dev/null +++ b/nixpkgs/pkgs/development/interpreters/starlark/default.nix @@ -0,0 +1,32 @@ +{ stdenv, lib, fetchFromGitHub, buildGoModule, fetchpatch }: +buildGoModule rec { + pname = "starlark"; + version = "unstable-2022-03-02"; + + src = fetchFromGitHub { + owner = "google"; + repo = "starlark-go"; + rev = "5411bad688d12781515a91cc032645331b4fc302"; + sha256 = "sha256-JNsGyGlIVMS5w0W4jHVsrPqqNms3Xfpa4n/XcEWqt6I="; + }; + + vendorSha256 = "sha256-lgL5o3MQfZekZ++BNESwV0LeoTxwEZfziQAe99zm4RY="; + + patches = [ + # Fix floating point imprecision issue in the test suite. + # https://github.com/google/starlark-go/pull/409 + (fetchpatch { + url = "https://github.com/google/starlark-go/commit/be6ed3bfcc376e5bf6fe2257ae89ddfb00d14e2c.patch"; + sha256 = "sha256-A0tHPso6SfFn73kICcA9/5n3JHd7hMdQMGty+4L6T4k="; + }) + ]; + + ldflags = [ "-s" "-w" ]; + + meta = with lib; { + homepage = "https://github.com/google/starlark-go"; + description = "An interpreter for Starlark, implemented in Go"; + license = licenses.bsd3; + maintainers = with maintainers; [ aaronjheng ]; + }; +} diff --git a/nixpkgs/pkgs/development/interpreters/supercollider/default.nix b/nixpkgs/pkgs/development/interpreters/supercollider/default.nix index 2a0ef3b0957c..ecb3d5787eb3 100644 --- a/nixpkgs/pkgs/development/interpreters/supercollider/default.nix +++ b/nixpkgs/pkgs/development/interpreters/supercollider/default.nix @@ -1,12 +1,11 @@ -{ lib, stdenv, mkDerivation, fetchurl, cmake, pkg-config, alsa-lib -, libjack2, libsndfile, fftw, curl, gcc -, libXt, qtbase, qttools, qtwebengine +{ lib, stdenv, mkDerivation, fetchurl, fetchpatch, cmake +, pkg-config, alsa-lib, libjack2, libsndfile, fftw +, curl, gcc, libXt, qtbase, qttools, qtwebengine , readline, qtwebsockets, useSCEL ? false, emacs +, supercollider-with-plugins, supercolliderPlugins +, writeText, runCommand }: -let - inherit (lib) optional; -in mkDerivation rec { pname = "supercollider"; version = "3.12.2"; @@ -16,6 +15,23 @@ mkDerivation rec { sha256 = "sha256-1QYorCgSwBK+SVAm4k7HZirr1j+znPmVicFmJdvO3g4="; }; + patches = [ + # add support for SC_DATA_DIR and SC_PLUGIN_DIR env vars to override compile-time values + ./supercollider-3.12.0-env-dirs.patch + + # fix issue with libsndfile >=1.1.0 + (fetchpatch { + url = "https://github.com/supercollider/supercollider/commit/b9dd70c4c8d61c93d7a70645e0bd18fa76e6834e.patch"; + hash = "sha256-6FhEHyY0rnE6d7wC+v0U9K+L0aun5LkTqaEFhr3eQNw="; + }) + ]; + + nativeBuildInputs = [ cmake pkg-config qttools ]; + + buildInputs = [ gcc libjack2 libsndfile fftw curl libXt qtbase qtwebengine qtwebsockets readline ] + ++ lib.optional (!stdenv.isDarwin) alsa-lib + ++ lib.optional useSCEL emacs; + hardeningDisable = [ "stackprotector" ]; cmakeFlags = [ @@ -23,17 +39,30 @@ mkDerivation rec { "-DSC_EL=${if useSCEL then "ON" else "OFF"}" ]; - nativeBuildInputs = [ cmake pkg-config qttools ]; - - buildInputs = [ - gcc libjack2 libsndfile fftw curl libXt qtbase qtwebengine qtwebsockets readline ] - ++ optional (!stdenv.isDarwin) alsa-lib - ++ optional useSCEL emacs; + passthru.tests = { + # test to make sure sclang runs and included plugins are successfully found + sclang-sc3-plugins = let + supercollider-with-test-plugins = supercollider-with-plugins.override { + plugins = with supercolliderPlugins; [ sc3-plugins ]; + }; + testsc = writeText "test.sc" '' + var err = 0; + try { + MdaPiano.name.postln; + } { + err = 1; + }; + err.exit; + ''; + in runCommand "sclang-sc3-plugins-test" {} '' + timeout 60s env XDG_CONFIG_HOME="$(mktemp -d)" QT_QPA_PLATFORM=minimal ${supercollider-with-test-plugins}/bin/sclang ${testsc} >$out + ''; + }; meta = with lib; { description = "Programming language for real time audio synthesis"; homepage = "https://supercollider.github.io"; - maintainers = with maintainers; [ mrmebelman ]; + maintainers = with maintainers; [ lilyinstarlight ]; license = licenses.gpl3Plus; platforms = platforms.linux; }; diff --git a/nixpkgs/pkgs/development/interpreters/supercollider/plugins/sc3-plugins.nix b/nixpkgs/pkgs/development/interpreters/supercollider/plugins/sc3-plugins.nix new file mode 100644 index 000000000000..a596d6d770ae --- /dev/null +++ b/nixpkgs/pkgs/development/interpreters/supercollider/plugins/sc3-plugins.nix @@ -0,0 +1,33 @@ +{ stdenv, lib, fetchurl, cmake, supercollider, fftw }: + +stdenv.mkDerivation rec { + pname = "sc3-plugins"; + version = "3.11.1"; + + src = fetchurl { + url = "https://github.com/supercollider/sc3-plugins/releases/download/Version-${version}/sc3-plugins-${version}-Source.tar.bz2"; + sha256 = "sha256-JjUmu7PJ+x3yRibr+Av2gTREng51fPo7Rk+B4y2JvkQ="; + }; + + nativeBuildInputs = [ cmake ]; + + buildInputs = [ + supercollider + fftw + ]; + + cmakeFlags = [ + "-DSC_PATH=${supercollider}/include/SuperCollider" + "-DSUPERNOVA=ON" + ]; + + stripDebugList = [ "lib" "share" ]; + + meta = with lib; { + description = "Community plugins for SuperCollider"; + homepage = "https://supercollider.github.io/sc3-plugins/"; + maintainers = with maintainers; [ lilyinstarlight ]; + license = licenses.gpl2Plus; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/development/interpreters/supercollider/supercollider-3.12.0-env-dirs.patch b/nixpkgs/pkgs/development/interpreters/supercollider/supercollider-3.12.0-env-dirs.patch new file mode 100644 index 000000000000..dd92028b5225 --- /dev/null +++ b/nixpkgs/pkgs/development/interpreters/supercollider/supercollider-3.12.0-env-dirs.patch @@ -0,0 +1,65 @@ +diff --git a/common/SC_Filesystem_unix.cpp b/common/SC_Filesystem_unix.cpp +index 52dc1fd2d..aae09ed9c 100644 +--- a/common/SC_Filesystem_unix.cpp ++++ b/common/SC_Filesystem_unix.cpp +@@ -94,6 +94,10 @@ bool SC_Filesystem::isNonHostPlatformDirectoryName(const std::string& s) { + } + + Path SC_Filesystem::defaultSystemAppSupportDirectory() { ++ const char* sc_data_dir = getenv("SC_DATA_DIR"); ++ if (sc_data_dir) ++ return Path(sc_data_dir); ++ + # ifdef SC_DATA_DIR + return Path(SC_DATA_DIR); + # else +@@ -125,6 +129,10 @@ Path SC_Filesystem::defaultUserConfigDirectory() { + } + + Path SC_Filesystem::defaultResourceDirectory() { ++ const char* sc_data_dir = getenv("SC_DATA_DIR"); ++ if (sc_data_dir) ++ return Path(sc_data_dir); ++ + # ifdef SC_DATA_DIR + return Path(SC_DATA_DIR); + # else +diff --git a/server/scsynth/SC_Lib_Cintf.cpp b/server/scsynth/SC_Lib_Cintf.cpp +index f6219307e..28e13eb98 100644 +--- a/server/scsynth/SC_Lib_Cintf.cpp ++++ b/server/scsynth/SC_Lib_Cintf.cpp +@@ -178,9 +178,13 @@ void initialize_library(const char* uGensPluginPath) { + using DirName = SC_Filesystem::DirName; + + if (loadUGensExtDirs) { ++ const char* sc_plugin_dir = getenv("SC_PLUGIN_DIR"); ++ if (sc_plugin_dir) { ++ PlugIn_LoadDir(sc_plugin_dir, true); ++ } + #ifdef SC_PLUGIN_DIR + // load globally installed plugins +- if (bfs::is_directory(SC_PLUGIN_DIR)) { ++ else if (bfs::is_directory(SC_PLUGIN_DIR)) { + PlugIn_LoadDir(SC_PLUGIN_DIR, true); + } + #endif // SC_PLUGIN_DIR +diff --git a/server/supernova/server/main.cpp b/server/supernova/server/main.cpp +index b2b5adf4e..6cb8c411c 100644 +--- a/server/supernova/server/main.cpp ++++ b/server/supernova/server/main.cpp +@@ -224,8 +224,14 @@ void set_plugin_paths(server_arguments const& args, nova::sc_ugen_factory* facto + } + } + } else { ++ const char* sc_plugin_dir = getenv("SC_PLUGIN_DIR"); ++ if (sc_plugin_dir) { ++ factory->load_plugin_folder(sc_plugin_dir); ++ } + #ifdef SC_PLUGIN_DIR +- factory->load_plugin_folder(SC_PLUGIN_DIR); ++ else { ++ factory->load_plugin_folder(SC_PLUGIN_DIR); ++ } + #endif + factory->load_plugin_folder(SC_Filesystem::instance().getDirectory(DirName::Resource) / SC_PLUGIN_DIR_NAME); + factory->load_plugin_folder(SC_Filesystem::instance().getDirectory(DirName::SystemExtension)); diff --git a/nixpkgs/pkgs/development/interpreters/supercollider/wrapper.nix b/nixpkgs/pkgs/development/interpreters/supercollider/wrapper.nix new file mode 100644 index 000000000000..e9e97f2b98de --- /dev/null +++ b/nixpkgs/pkgs/development/interpreters/supercollider/wrapper.nix @@ -0,0 +1,18 @@ +{ symlinkJoin, makeWrapper, supercollider, plugins }: + +symlinkJoin { + name = "supercollider-with-plugins-${supercollider.version}"; + paths = [ supercollider ] ++ plugins; + + nativeBuildInputs = [ makeWrapper ]; + + postBuild = '' + for exe in $out/bin/*; do + wrapProgram $exe \ + --set SC_PLUGIN_DIR "$out/lib/SuperCollider/plugins" \ + --set SC_DATA_DIR "$out/share/SuperCollider" + done + ''; + + inherit (supercollider) pname version meta; +} diff --git a/nixpkgs/pkgs/development/interpreters/tinyscheme/default.nix b/nixpkgs/pkgs/development/interpreters/tinyscheme/default.nix index 0590062b3a4b..5c7ed9d27ead 100644 --- a/nixpkgs/pkgs/development/interpreters/tinyscheme/default.nix +++ b/nixpkgs/pkgs/development/interpreters/tinyscheme/default.nix @@ -20,6 +20,7 @@ stdenv.mkDerivation rec { ''; meta = with lib; { + broken = stdenv.isDarwin; description = "Lightweight Scheme implementation"; longDescription = '' TinyScheme is a lightweight Scheme interpreter that implements as large a diff --git a/nixpkgs/pkgs/development/interpreters/trealla/default.nix b/nixpkgs/pkgs/development/interpreters/trealla/default.nix index d6dc01348a1d..45e63d98bdae 100644 --- a/nixpkgs/pkgs/development/interpreters/trealla/default.nix +++ b/nixpkgs/pkgs/development/interpreters/trealla/default.nix @@ -43,6 +43,7 @@ stdenv.mkDerivation rec { homepage = "https://github.com/infradig/trealla"; license = licenses.mit; maintainers = with maintainers; [ siraben ]; + mainProgram = "tpl"; platforms = platforms.all; }; } diff --git a/nixpkgs/pkgs/development/interpreters/unicon-lang/default.nix b/nixpkgs/pkgs/development/interpreters/unicon-lang/default.nix index c399ef223de3..848c9541114e 100644 --- a/nixpkgs/pkgs/development/interpreters/unicon-lang/default.nix +++ b/nixpkgs/pkgs/development/interpreters/unicon-lang/default.nix @@ -14,6 +14,13 @@ stdenv.mkDerivation { sourceRoot = "."; + # Workaround build failure on -fno-common toolchains like upstream + # gcc-10. Otherwise build fails as: + # ld: ../common/ipp.o:(.bss+0x0): multiple definition of `lpath'; tglobals.o:(.bss+0x30): first defined here + # TODO: remove the workaround once upstream releases version past: + # https://sourceforge.net/p/unicon/unicon/ci/b1a65230233f3825d055aee913b4fdcf178a0eaf/ + NIX_CFLAGS_COMPILE = "-fcommon"; + configurePhase = '' case "$(uname -a | sed 's/ /_/g')" in Darwin*Version_9*i386) sys=intel_macos;; @@ -35,6 +42,7 @@ stdenv.mkDerivation { ''; meta = with lib; { + broken = (stdenv.isLinux && stdenv.isAarch64); description = "A very high level, goal-directed, object-oriented, general purpose applications language"; maintainers = with maintainers; [ vrthra ]; platforms = platforms.linux; diff --git a/nixpkgs/pkgs/development/interpreters/wasmer/default.nix b/nixpkgs/pkgs/development/interpreters/wasmer/default.nix index 1537dcee67d3..b0ab011d38d2 100644 --- a/nixpkgs/pkgs/development/interpreters/wasmer/default.nix +++ b/nixpkgs/pkgs/development/interpreters/wasmer/default.nix @@ -1,4 +1,5 @@ -{ lib +{ stdenv +, lib , rustPlatform , fetchFromGitHub , cmake @@ -8,17 +9,17 @@ rustPlatform.buildRustPackage rec { pname = "wasmer"; - version = "2.1.1"; + version = "2.3.0"; src = fetchFromGitHub { owner = "wasmerio"; repo = pname; rev = version; - sha256 = "sha256-uD+JH42AxXxLMLqBurNDfYc7tLlBlEmaLB5rbip+/D4="; + sha256 = "sha256-25wWgMNybbsEf/1xmm+8BPcjx8CSW9ZBzxGKT/DbBXw="; fetchSubmodules = true; }; - cargoSha256 = "sha256-eiX5p2qWUZgoHzoHYXDsp9N6foiX3JovKO6MpoJOXFo="; + cargoSha256 = "sha256-tswsbijNN5UcSZovVmy66yehcEOpQDGMdRgR/1mkuE8="; nativeBuildInputs = [ cmake pkg-config ]; @@ -32,12 +33,13 @@ rustPlatform.buildRustPackage rec { ]; # Can't use test-jit: - # error: Package `wasmer-workspace v2.1.1 (/build/source)` does not have the feature `test-jit` + # error: Package `wasmer-workspace v2.3.0 (/build/source)` does not have the feature `test-jit` checkFeatures = [ "test-cranelift" ]; LIBCLANG_PATH = "${llvmPackages.libclang.lib}/lib"; meta = with lib; { + broken = stdenv.isDarwin; description = "The Universal WebAssembly Runtime"; longDescription = '' Wasmer is a standalone WebAssembly runtime for running WebAssembly outside diff --git a/nixpkgs/pkgs/development/interpreters/wasmtime/default.nix b/nixpkgs/pkgs/development/interpreters/wasmtime/default.nix index 816b854b99eb..9851da2a3cef 100644 --- a/nixpkgs/pkgs/development/interpreters/wasmtime/default.nix +++ b/nixpkgs/pkgs/development/interpreters/wasmtime/default.nix @@ -1,31 +1,35 @@ -{ rustPlatform, fetchFromGitHub, lib, python3, cmake, llvmPackages, clang, stdenv, darwin }: +{ rustPlatform, fetchFromGitHub, lib }: rustPlatform.buildRustPackage rec { pname = "wasmtime"; - version = "0.21.0"; + version = "0.39.1"; src = fetchFromGitHub { owner = "bytecodealliance"; repo = pname; rev = "v${version}"; - sha256 = "0q7wsnq5zdskxwzsxwm98jfnv2frnwca1dkhwndcn9yyz2gyw57m"; + sha256 = "sha256-cU03wm1+V++mV7j7VyMtjAYrPldzTysNzpJ8m0q4Rx8="; fetchSubmodules = true; }; - cargoSha256 = "1wlig9gls7s1k1swxwhl82vfga30bady8286livxc4y2zp0vb18w"; - - nativeBuildInputs = [ python3 cmake clang ]; - buildInputs = [ llvmPackages.libclang ] ++ - lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Security ]; - LIBCLANG_PATH = "${llvmPackages.libclang.lib}/lib"; + cargoSha256 = "sha256-DnThste0SbBdpGAUYhmwbdQFNEB3LozyDf0X8r2A90Q="; doCheck = true; + checkFlags = [ + "--skip=cli_tests::run_cwasm" + "--skip=commands::compile::test::test_unsupported_flags_compile" + "--skip=commands::compile::test::test_aarch64_flags_compile" + "--skip=commands::compile::test::test_successful_compile" + "--skip=commands::compile::test::test_x64_flags_compile" + "--skip=commands::compile::test::test_x64_presets_compile" + "--skip=traps::parse_dwarf_info" + ]; meta = with lib; { description = "Standalone JIT-style runtime for WebAssembly, using Cranelift"; homepage = "https://github.com/bytecodealliance/wasmtime"; license = licenses.asl20; - maintainers = [ maintainers.matthewbauer ]; + maintainers = with maintainers; [ ereslibre matthewbauer ]; platforms = platforms.unix; }; } diff --git a/nixpkgs/pkgs/development/interpreters/yabasic/default.nix b/nixpkgs/pkgs/development/interpreters/yabasic/default.nix index 02d3dbeb9fd1..9266ec012251 100644 --- a/nixpkgs/pkgs/development/interpreters/yabasic/default.nix +++ b/nixpkgs/pkgs/development/interpreters/yabasic/default.nix @@ -10,11 +10,11 @@ stdenv.mkDerivation rec { pname = "yabasic"; - version = "2.90.1"; + version = "2.90.2"; src = fetchurl { url = "http://www.yabasic.de/download/${pname}-${version}.tar.gz"; - hash = "sha256-9LqiwS3Udql3YZoufo3spVpE46me3McI8L08TpNJpJo="; + hash = "sha256-ff5j0cJ1i2HWIsYjwzx5FFtZfchWsGRF2AZtbDXrNJw="; }; buildInputs = [ diff --git a/nixpkgs/pkgs/development/interpreters/yex-lang/default.nix b/nixpkgs/pkgs/development/interpreters/yex-lang/default.nix index 738b73d8e4c8..cc4e7f31f318 100644 --- a/nixpkgs/pkgs/development/interpreters/yex-lang/default.nix +++ b/nixpkgs/pkgs/development/interpreters/yex-lang/default.nix @@ -1,23 +1,28 @@ -{ lib, stdenv, rustPlatform, fetchFromGitHub }: +{ lib +, stdenv +, rustPlatform +, fetchFromGitHub +}: rustPlatform.buildRustPackage rec { pname = "yex-lang"; - version = "unstable-2021-12-25"; + version = "0.pre+date=2022-05-10"; src = fetchFromGitHub { owner = "nonamescm"; repo = "yex-lang"; - rev = "a97def1431b73b8693700f530ec023f1776eaf83"; - hash = "sha256-CEzJtlEVMvMnRyUKdko1UDTluv8Fc88tfOpKGIFMnRw="; + rev = "866c4decbb9340f5af687b145e2c4f47fcbee786"; + hash = "sha256-sxzkZ2Rhn3HvZIfjnJ6Z2au/l/jV5705ecs/X3Iah6k="; }; - cargoSha256 = "sha256-mHMenqcdt9Yjm/6H1Ywf637Sv8ddq6a4Eu2/A/jX9gQ="; + cargoSha256 = "sha256-nX5FoPAk50wt0CXskyg7jQeHvD5YtBNnCe0CVOGXTMI="; meta = with lib; { - homepage = "https://github.com/nonamesc/yex-lang"; - description = "A cool functional scripting language written in rust"; + homepage = "https://github.com/nonamescm/yex-lang"; + description = "A functional scripting language written in rust"; license = licenses.mit; maintainers = with maintainers; [ AndersonTorres ]; + mainProgram = "yex"; platforms = platforms.unix; broken = stdenv.isAarch64 && stdenv.isLinux; }; diff --git a/nixpkgs/pkgs/development/interpreters/zuo/default.nix b/nixpkgs/pkgs/development/interpreters/zuo/default.nix new file mode 100644 index 000000000000..e43fbeea5d70 --- /dev/null +++ b/nixpkgs/pkgs/development/interpreters/zuo/default.nix @@ -0,0 +1,23 @@ +{ lib, stdenv, fetchFromGitHub }: + +stdenv.mkDerivation rec { + pname = "zuo"; + version = "unstable-2022-07-25"; + + src = fetchFromGitHub { + owner = "racket"; + repo = "zuo"; + rev = "18778d759e7af1d9c4b6ce7649a3aa4a49a2aa7f"; + sha256 = "sha256-Y5+C1UdaeweYaGqomC1dFmTF8qGDquuP42Bn6QbZ9nk="; + }; + + doCheck = true; + + meta = with lib; { + description = "A Tiny Racket for Scripting"; + homepage = "https://github.com/racket/zuo"; + license = licenses.mit; + platforms = platforms.all; + maintainers = [ maintainers.marsam ]; + }; +} |