diff options
Diffstat (limited to 'pkgs/development/interpreters')
18 files changed, 197 insertions, 20 deletions
diff --git a/pkgs/development/interpreters/evcxr/default.nix b/pkgs/development/interpreters/evcxr/default.nix index 1cc63788555..168b012efcc 100644 --- a/pkgs/development/interpreters/evcxr/default.nix +++ b/pkgs/development/interpreters/evcxr/default.nix @@ -2,16 +2,16 @@ rustPlatform.buildRustPackage rec { pname = "evcxr"; - version = "0.4.6"; + version = "0.5.0"; src = fetchFromGitHub { owner = "google"; repo = "evcxr"; - rev = "v${version}"; - sha256 = "1yzvqf93zz3ncck4dyq2kayp408lm3h6fx0fb212j7h70mlzx984"; + rev = "239e431c58d04c641da22af791e4d3e1b894365e"; + sha256 = "0vkcis06gwsqfwvrl8xcf74mfcs6j77b9fhcz5rrh77mwl7ixsdc"; }; - cargoSha256 = "0g17g12isah4nkqp9i299qr1sz19k4czcc43rm1wbs0y9szaqvwc"; + cargoSha256 = "04wffj2y9pqyk0x3y6ghp06pggmxnk2h245iabqq0mpwx36fd8b6"; nativeBuildInputs = [ pkgconfig makeWrapper cmake ]; buildInputs = stdenv.lib.optional stdenv.isDarwin Security; diff --git a/pkgs/development/interpreters/groovy/default.nix b/pkgs/development/interpreters/groovy/default.nix index bdd13841896..67d9ecf9c61 100644 --- a/pkgs/development/interpreters/groovy/default.nix +++ b/pkgs/development/interpreters/groovy/default.nix @@ -4,11 +4,11 @@ stdenv.mkDerivation rec { pname = "groovy"; - version = "2.5.8"; + version = "2.5.9"; src = fetchurl { url = "http://dl.bintray.com/groovy/maven/apache-groovy-binary-${version}.zip"; - sha256 = "0hl7m9fpmrn9ppxbb3pm68048xpzig7q6hqyg121gvcziywi9ys9"; + sha256 = "16xq8mz7270kmiq4xb0g52y7ik1bbl2nb8aaz9zw8a9h38rdr9zy"; }; buildInputs = [ unzip makeWrapper ]; diff --git a/pkgs/development/interpreters/joker/default.nix b/pkgs/development/interpreters/joker/default.nix index 669bbc95123..df8ad2fbe4d 100644 --- a/pkgs/development/interpreters/joker/default.nix +++ b/pkgs/development/interpreters/joker/default.nix @@ -2,17 +2,21 @@ buildGoModule rec { pname = "joker"; - version = "0.12.9"; + version = "0.14.0"; src = fetchFromGitHub { rev = "v${version}"; owner = "candid82"; repo = "joker"; - sha256 = "19n2pzs045mflyzgq3cpa4w2fbd0f77j5k6c4yc3gk0mcwgdxhs2"; + sha256 = "1b38alajxs89a9x3f3ldk1nlynp6j90qhl1m2c6561rsm41sqfz0"; }; modSha256 = "0i16vf7n1xfz5kp9w3fvyc9y9wgz4h396glgpdaznpxjr12rb43j"; + preBuild = '' + go generate ./... + ''; + meta = with stdenv.lib; { homepage = https://github.com/candid82/joker; description = "A small Clojure interpreter and linter written in Go"; diff --git a/pkgs/development/interpreters/perl/default.nix b/pkgs/development/interpreters/perl/default.nix index 3231c17e8d9..751b9667a1f 100644 --- a/pkgs/development/interpreters/perl/default.nix +++ b/pkgs/development/interpreters/perl/default.nix @@ -96,8 +96,7 @@ let "-Dprefix=${placeholder "out"}" "-Dman1dir=${placeholder "out"}/share/man/man1" "-Dman3dir=${placeholder "out"}/share/man/man3" - ] - ++ optional (stdenv.isAarch32 || stdenv.isMips) "-Dldflags=\"-lm -lrt\""; + ]; configureScript = optionalString (!crossCompiling) "${stdenv.shell} ./Configure"; diff --git a/pkgs/development/interpreters/perl/wrapper.nix b/pkgs/development/interpreters/perl/wrapper.nix index 95122aebf03..2e3d394f851 100644 --- a/pkgs/development/interpreters/perl/wrapper.nix +++ b/pkgs/development/interpreters/perl/wrapper.nix @@ -35,7 +35,7 @@ let if [ -f "$prg" ]; then rm -f "$out/bin/$prg" if [ -x "$prg" ]; then - makeWrapper "$path/bin/$prg" "$out/bin/$prg" --set PERL5LIB "$out/${perl.libPrefix}" + makeWrapper "$path/bin/$prg" "$out/bin/$prg" --suffix PERL5LIB ':' "$out/${perl.libPrefix}" fi fi done diff --git a/pkgs/development/interpreters/picolisp/default.nix b/pkgs/development/interpreters/picolisp/default.nix index dc3b08acbd9..1a0a781b918 100644 --- a/pkgs/development/interpreters/picolisp/default.nix +++ b/pkgs/development/interpreters/picolisp/default.nix @@ -3,10 +3,10 @@ with stdenv.lib; stdenv.mkDerivation rec { pname = "picoLisp"; - version = "19.6"; + version = "19.12"; src = fetchurl { url = "https://www.software-lab.de/${pname}-${version}.tgz"; - sha256 = "1ixxl6m5glhwqa4q3fb90pciv7jhhvn9pkh316d4wcv0m13l04gq"; + sha256 = "10np0mhihr47r3201617zccrvzpkhdl1jwvz7zimk8kxpriydq2j"; }; buildInputs = [makeWrapper openssl] ++ optional stdenv.is64bit jdk; patchPhase = '' diff --git a/pkgs/development/interpreters/python/default.nix b/pkgs/development/interpreters/python/default.nix index caf2e13bdf6..4811c8ec48e 100644 --- a/pkgs/development/interpreters/python/default.nix +++ b/pkgs/development/interpreters/python/default.nix @@ -158,9 +158,11 @@ in { }; sha256 = "0yq6ln1ic476sasp8zs4mg5i9524l1p96qwanp486rr1yza1grlg"; pythonVersion = "2.7"; - db = db.override { dbmSupport = true; }; + db = db.override { dbmSupport = !stdenv.isDarwin; }; python = python27; inherit passthruFun; + inherit (darwin) libunwind; + inherit (darwin.apple_sdk.frameworks) Security; }; pypy36 = callPackage ./pypy { @@ -172,9 +174,11 @@ in { }; sha256 = "1hqvnran7d2dzj5555n7q680dyzhmbklz04pvkxgb5j604v7kkx1"; pythonVersion = "3.6"; - db = db.override { dbmSupport = true; }; + db = db.override { dbmSupport = !stdenv.isDarwin; }; python = python27; inherit passthruFun; + inherit (darwin) libunwind; + inherit (darwin.apple_sdk.frameworks) Security; }; pypy27_prebuilt = callPackage ./pypy/prebuilt.nix { diff --git a/pkgs/development/interpreters/python/hooks/default.nix b/pkgs/development/interpreters/python/hooks/default.nix index 861cb38c060..159637ae9d5 100644 --- a/pkgs/development/interpreters/python/hooks/default.nix +++ b/pkgs/development/interpreters/python/hooks/default.nix @@ -2,6 +2,9 @@ { python , callPackage , makeSetupHook +, disabledIf +, isPy3k +, ensureNewerSourcesForZipFilesHook }: let @@ -11,6 +14,27 @@ let setuppy = ../run_setup.py; in rec { + eggBuildHook = callPackage ({ }: + makeSetupHook { + name = "egg-build-hook.sh"; + deps = [ ]; + } ./egg-build-hook.sh) {}; + + eggInstallHook = callPackage ({ setuptools }: + makeSetupHook { + name = "egg-install-hook.sh"; + deps = [ setuptools ]; + substitutions = { + inherit pythonInterpreter pythonSitePackages; + }; + } ./egg-install-hook.sh) {}; + + eggUnpackHook = callPackage ({ }: + makeSetupHook { + name = "egg-unpack-hook.sh"; + deps = [ ]; + } ./egg-unpack-hook.sh) {}; + flitBuildHook = callPackage ({ flit }: makeSetupHook { name = "flit-build-hook"; @@ -88,6 +112,15 @@ in rec { }; } ./setuptools-check-hook.sh) {}; + venvShellHook = disabledIf (!isPy3k) (callPackage ({ }: + makeSetupHook { + name = "venv-shell-hook"; + deps = [ ensureNewerSourcesForZipFilesHook ]; + substitutions = { + inherit pythonInterpreter; + }; + } ./venv-shell-hook.sh) {}); + wheelUnpackHook = callPackage ({ wheel }: makeSetupHook { name = "wheel-unpack-hook.sh"; diff --git a/pkgs/development/interpreters/python/hooks/egg-build-hook.sh b/pkgs/development/interpreters/python/hooks/egg-build-hook.sh new file mode 100644 index 00000000000..d5abc8d55e5 --- /dev/null +++ b/pkgs/development/interpreters/python/hooks/egg-build-hook.sh @@ -0,0 +1,15 @@ +# Setup hook to use for eggs +echo "Sourcing egg-build-hook" + +eggBuildPhase() { + echo "Executing eggBuildPhase" + runHook preBuild + + runHook postBuild + echo "Finished executing eggBuildPhase" +} + +if [ -z "${dontUseEggBuild-}" ] && [ -z "${buildPhase-}" ]; then + echo "Using eggBuildPhase" + buildPhase=eggBuildPhase +fi diff --git a/pkgs/development/interpreters/python/hooks/egg-install-hook.sh b/pkgs/development/interpreters/python/hooks/egg-install-hook.sh new file mode 100644 index 00000000000..ae894fb1bde --- /dev/null +++ b/pkgs/development/interpreters/python/hooks/egg-install-hook.sh @@ -0,0 +1,21 @@ +# Setup hook for eggs +echo "Sourcing egg-install-hook" + +eggInstallPhase() { + echo "Executing eggInstallPhase" + runHook preInstall + + mkdir -p "$out/@pythonSitePackages@" + export PYTHONPATH="$out/@pythonSitePackages@:$PYTHONPATH" + + find + @pythonInterpreter@ -m easy_install --prefix="$out" *.egg + + runHook postInstall + echo "Finished executing eggInstallPhase" +} + +if [ -z "${dontUseEggInstall-}" ] && [ -z "${installPhase-}" ]; then + echo "Using eggInstallPhase" + installPhase=eggInstallPhase +fi diff --git a/pkgs/development/interpreters/python/hooks/egg-unpack-hook.sh b/pkgs/development/interpreters/python/hooks/egg-unpack-hook.sh new file mode 100644 index 00000000000..c8ed3dee83b --- /dev/null +++ b/pkgs/development/interpreters/python/hooks/egg-unpack-hook.sh @@ -0,0 +1,17 @@ +# Setup hook to use in case an egg is fetched +echo "Sourcing egg setup hook" + +eggUnpackPhase(){ + echo "Executing eggUnpackPhase" + runHook preUnpack + + cp "$src" "$(stripHash "$src")" + +# runHook postUnpack # Calls find...? + echo "Finished executing eggUnpackPhase" +} + +if [ -z "${dontUseEggUnpack-}" ] && [ -z "${unpackPhase-}" ]; then + echo "Using eggUnpackPhase" + unpackPhase=eggUnpackPhase +fi diff --git a/pkgs/development/interpreters/python/hooks/venv-shell-hook.sh b/pkgs/development/interpreters/python/hooks/venv-shell-hook.sh new file mode 100644 index 00000000000..3185b1f9fae --- /dev/null +++ b/pkgs/development/interpreters/python/hooks/venv-shell-hook.sh @@ -0,0 +1,26 @@ +venvShellHook() { + echo "Executing venvHook" + runHook preShellHook + + if [ -d "${venvDir}" ]; then + echo "Skipping venv creation, '${venvDir}' already exists" + else + echo "Creating new venv environment in path: '${venvDir}'" + @pythonInterpreter@ -m venv "${venvDir}" + fi + + source "${venvDir}/bin/activate" + + runHook postShellHook + echo "Finished executing venvShellHook" +} + +if [ -z "${dontUseVenvShellHook:-}" ] && [ -z "${shellHook-}" ]; then + echo "Using venvShellHook" + if [ -z "${venvDir-}" ]; then + echo "Error: \`venvDir\` should be set when using \`venvShellHook\`." + exit 1 + else + shellHook=venvShellHook + fi +fi diff --git a/pkgs/development/interpreters/python/mk-python-derivation.nix b/pkgs/development/interpreters/python/mk-python-derivation.nix index 700894eda6d..020298cc8e9 100644 --- a/pkgs/development/interpreters/python/mk-python-derivation.nix +++ b/pkgs/development/interpreters/python/mk-python-derivation.nix @@ -20,6 +20,9 @@ , setuptoolsBuildHook , setuptoolsCheckHook , wheelUnpackHook +, eggUnpackHook +, eggBuildHook +, eggInstallHook }: { name ? "${attrs.pname}-${attrs.version}" @@ -119,6 +122,8 @@ let pipBuildHook ] ++ lib.optionals (format == "wheel") [ wheelUnpackHook + ] ++ lib.optionals (format == "egg") [ + eggUnpackHook eggBuildHook eggInstallHook ] ++ lib.optionals (!(format == "other") || dontUsePipInstall) [ pipInstallHook ] ++ lib.optionals (stdenv.buildPlatform == stdenv.hostPlatform) [ diff --git a/pkgs/development/interpreters/python/pypy/default.nix b/pkgs/development/interpreters/python/pypy/default.nix index b220bfa0f93..0c4f3eda7b1 100644 --- a/pkgs/development/interpreters/python/pypy/default.nix +++ b/pkgs/development/interpreters/python/pypy/default.nix @@ -1,5 +1,5 @@ { stdenv, substituteAll, fetchurl -, zlib ? null, zlibSupport ? true, bzip2, pkgconfig, libffi +, zlib ? null, zlibSupport ? true, bzip2, pkgconfig, libffi, libunwind, Security , sqlite, openssl_1_0_2, ncurses, python, expat, tcl, tk, tix, xlibsWrapper, libX11 , self, gdbm, db, lzma , python-setup-hook @@ -47,6 +47,8 @@ in with passthru; stdenv.mkDerivation rec { stdenv.cc.libc ] ++ optionals zlibSupport [ zlib + ] ++ optionals stdenv.isDarwin [ + libunwind Security ]; hardeningDisable = optional stdenv.isi686 "pic"; @@ -127,13 +129,17 @@ in with passthru; stdenv.mkDerivation rec { mkdir -p $out/{bin,include,lib,${executable}-c} cp -R {include,lib_pypy,lib-python,${executable}-c} $out/${executable}-c - cp lib${executable}-c.so $out/lib/ + cp lib${executable}-c${stdenv.hostPlatform.extensions.sharedLibrary} $out/lib/ ln -s $out/${executable}-c/${executable}-c $out/bin/${executable} # other packages expect to find stuff according to libPrefix ln -s $out/${executable}/include $out/include/${libPrefix} ln -s $out/${executable}-c/lib-python/${if isPy3k then "3" else pythonVersion} $out/lib/${libPrefix} + ${stdenv.lib.optionalString stdenv.isDarwin '' + install_name_tool -change @rpath/libpypy${optionalString isPy3k "3"}-c.dylib $out/lib/libpypy${optionalString isPy3k "3"}-c.dylib $out/bin/${executable} + ''} + # verify cffi modules $out/bin/${executable} -c ${if isPy3k then "'import tkinter;import sqlite3;import curses;import lzma'" else "'import Tkinter;import sqlite3;import curses'"} diff --git a/pkgs/development/interpreters/python/pypy/tk_tcl_paths.patch b/pkgs/development/interpreters/python/pypy/tk_tcl_paths.patch index 92bbfc557b3..0b78caf7e07 100644 --- a/pkgs/development/interpreters/python/pypy/tk_tcl_paths.patch +++ b/pkgs/development/interpreters/python/pypy/tk_tcl_paths.patch @@ -1,6 +1,13 @@ --- pypy-pypy-84a2f3e6a7f8.org/lib_pypy/_tkinter/tklib_build.py 2017-10-03 11:49:20.000000000 +0100 +++ pypy-pypy-84a2f3e6a7f8/lib_pypy/_tkinter/tklib_build.py 2017-11-21 13:20:51.398607530 +0000 -@@ -24,11 +24,11 @@ +@@ -17,18 +17,14 @@ + incdirs = [] + linklibs = ['tcl85', 'tk85'] + libdirs = [] +-elif sys.platform == 'darwin': +- incdirs = ['/System/Library/Frameworks/Tk.framework/Versions/Current/Headers/'] +- linklibs = ['tcl', 'tk'] +- libdirs = [] else: # On some Linux distributions, the tcl and tk libraries are # stored in /usr/include, so we must check this case also diff --git a/pkgs/development/interpreters/quickjs/default.nix b/pkgs/development/interpreters/quickjs/default.nix index e7f01856ef5..b1d03252d7e 100644 --- a/pkgs/development/interpreters/quickjs/default.nix +++ b/pkgs/development/interpreters/quickjs/default.nix @@ -35,7 +35,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "A small and embeddable Javascript engine"; homepage = "https://bellard.org/quickjs/"; - maintainers = with maintainers; [ stesie ivan ]; + maintainers = with maintainers; [ stesie ]; platforms = platforms.linux; license = licenses.mit; }; diff --git a/pkgs/development/interpreters/ruby/default.nix b/pkgs/development/interpreters/ruby/default.nix index 58ccf5ae9b4..8b8e7ccc8bb 100644 --- a/pkgs/development/interpreters/ruby/default.nix +++ b/pkgs/development/interpreters/ruby/default.nix @@ -49,7 +49,7 @@ let # puts a reference to the C compiler in the binary. # This might be required by some gems at runtime, # but we allow to strip it out for smaller closure size. - , removeReferencesTo, removeReferenceToCC ? false + , removeReferencesTo, removeReferenceToCC ? true , autoreconfHook, bison, autoconf , buildEnv, bundler, bundix , libiconv, libobjc, libunwind, Foundation diff --git a/pkgs/development/interpreters/wasmer/default.nix b/pkgs/development/interpreters/wasmer/default.nix new file mode 100644 index 00000000000..7c270e5fb44 --- /dev/null +++ b/pkgs/development/interpreters/wasmer/default.nix @@ -0,0 +1,40 @@ +{ lib +, rustPlatform +, fetchFromGitHub +, cmake +, llvmPackages +, pkg-config +}: + +rustPlatform.buildRustPackage rec { + pname = "wasmer"; + version = "0.13.0"; + + src = fetchFromGitHub { + owner = "wasmerio"; + repo = pname; + rev = version; + sha256 = "1k9zd2vhrbvxlpkh21m39alk5lfhd3xa25k0awis27plfpv8fqcq"; + fetchSubmodules = true; + }; + + cargoSha256 = "1yp7kandh5hh8hkzlmqpj05vwgr5v4nil8blf3scbppg865qk3rq"; + + nativeBuildInputs = [ cmake pkg-config ]; + + LIBCLANG_PATH = "${llvmPackages.libclang}/lib"; + + meta = with lib; { + description = "The Universal WebAssembly Runtime"; + longDescription = '' + Wasmer is a standalone WebAssembly runtime for running WebAssembly outside + of the browser, supporting WASI and Emscripten. Wasmer can be used + standalone (via the CLI) and embedded in different languages, running in + x86 and ARM devices. + ''; + homepage = "https://wasmer.io/"; + license = licenses.mit; + maintainers = with maintainers; [ filalex77 ]; + platforms = platforms.all; + }; +} |