diff options
author | Vladimír Čunát <vcunat@gmail.com> | 2018-01-20 10:05:27 +0100 |
---|---|---|
committer | Vladimír Čunát <vcunat@gmail.com> | 2018-01-20 10:05:27 +0100 |
commit | 94f4857bc507b59d930dba72a9c643878ae854d2 (patch) | |
tree | 956a16d79a4bd43e83105308c631f8774223cd5a /pkgs/development/interpreters | |
parent | 5fafb7ef739ccf36ba7914eb522471e91af4c431 (diff) | |
parent | b81c65ce0a4c671db405890bcefd7f17dcb3eb9c (diff) | |
download | nixlib-94f4857bc507b59d930dba72a9c643878ae854d2.tar nixlib-94f4857bc507b59d930dba72a9c643878ae854d2.tar.gz nixlib-94f4857bc507b59d930dba72a9c643878ae854d2.tar.bz2 nixlib-94f4857bc507b59d930dba72a9c643878ae854d2.tar.lz nixlib-94f4857bc507b59d930dba72a9c643878ae854d2.tar.xz nixlib-94f4857bc507b59d930dba72a9c643878ae854d2.tar.zst nixlib-94f4857bc507b59d930dba72a9c643878ae854d2.zip |
Merge branch 'master' into staging
Hydra: ?compare=1427817
Diffstat (limited to 'pkgs/development/interpreters')
-rw-r--r-- | pkgs/development/interpreters/perl/default.nix | 40 | ||||
-rw-r--r-- | pkgs/development/interpreters/pixie/default.nix | 9 | ||||
-rw-r--r-- | pkgs/development/interpreters/pixie/dust.nix | 2 |
3 files changed, 36 insertions, 15 deletions
diff --git a/pkgs/development/interpreters/perl/default.nix b/pkgs/development/interpreters/perl/default.nix index 62c63ef6c5c3..14a4bac47f62 100644 --- a/pkgs/development/interpreters/perl/default.nix +++ b/pkgs/development/interpreters/perl/default.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, fetchurlBoot, enableThreading ? stdenv ? glibc }: +{ lib, stdenv, fetchurlBoot, buildPackages, enableThreading ? stdenv ? glibc }: with lib; @@ -19,7 +19,8 @@ let libc = if stdenv.cc.libc or null != null then stdenv.cc.libc else "/usr"; libcInc = lib.getDev libc; libcLib = lib.getLib libc; - common = { version, sha256 }: stdenv.mkDerivation rec { + crossCompiling = stdenv.buildPlatform != stdenv.hostPlatform; + common = { version, sha256 }: stdenv.mkDerivation (rec { name = "perl-${version}"; src = fetchurlBoot { @@ -50,6 +51,8 @@ let pwd="$(type -P pwd)" substituteInPlace dist/PathTools/Cwd.pm \ --replace "/bin/pwd" "$pwd" + '' + stdenv.lib.optionalString crossCompiling '' + substituteInPlace cnf/configure_tool.sh --replace "cc -E -P" "cc -E" ''; # Build a thread-safe Perl with a dynamic libperls.o. We need the @@ -58,8 +61,10 @@ let # contains the string "perl", Configure would select $out/lib. # Miniperl needs -lm. perl needs -lrt. configureFlags = - [ "-de" - "-Dcc=cc" + (if crossCompiling + then [ "-Dlibpth=\"\"" "-Dglibpth=\"\"" ] + else [ "-de" "-Dcc=cc" ]) + ++ [ "-Uinstallusrbinperl" "-Dinstallstyle=lib/perl5" "-Duseshrplib" @@ -69,14 +74,13 @@ let ++ optional stdenv.isSunOS "-Dcc=gcc" ++ optional enableThreading "-Dusethreads"; - configureScript = "${stdenv.shell} ./Configure"; + configureScript = stdenv.lib.optionalString (!crossCompiling) "${stdenv.shell} ./Configure"; - dontAddPrefix = true; + dontAddPrefix = !crossCompiling; - enableParallelBuilding = true; + enableParallelBuilding = !crossCompiling; - preConfigure = - '' + preConfigure = optionalString (!crossCompiling) '' configureFlags="$configureFlags -Dprefix=$out -Dman1dir=$out/share/man/man1 -Dman3dir=$out/share/man/man3" '' + optionalString (stdenv.isArm || stdenv.isMips) '' configureFlagsArray=(-Dldflags="-lm -lrt") @@ -121,7 +125,23 @@ let maintainers = [ maintainers.eelco ]; platforms = platforms.all; }; - }; + } // stdenv.lib.optionalAttrs (stdenv.buildPlatform != stdenv.hostPlatform) rec { + crossVersion = "1.1.8"; + + perl-cross-src = fetchurlBoot { + url = "https://github.com/arsv/perl-cross/releases/download/${crossVersion}/perl-cross-${crossVersion}.tar.gz"; + sha256 = "072j491rpz2qx2sngbg4flqh4lx5865zyql7b9lqm6s1kknjdrh8"; + }; + + nativeBuildInputs = [ buildPackages.stdenv.cc ]; + + postUnpack = '' + unpackFile ${perl-cross-src} + cp -R perl-cross-${crossVersion}/* perl-${version}/ + ''; + + configurePlatforms = [ "build" "host" "target" ]; + }); in rec { perl = perl524; diff --git a/pkgs/development/interpreters/pixie/default.nix b/pkgs/development/interpreters/pixie/default.nix index b196af8e3ae4..d41977b4f5cc 100644 --- a/pkgs/development/interpreters/pixie/default.nix +++ b/pkgs/development/interpreters/pixie/default.nix @@ -63,15 +63,15 @@ let 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-vm \ + makeWrapper $out/share/pixie-vm $out/bin/pixie \ --prefix LD_LIBRARY_PATH : ${library-path} \ --prefix C_INCLUDE_PATH : ${include-path} \ --prefix LIBRARY_PATH : ${library-path} \ --prefix PATH : ${bin-path} cat > $out/bin/pxi <<EOF #!$shell - >&2 echo "[\$\$] WARNING: 'pxi' is a deprecated alias for 'pixie-vm', please update your scripts." - exec $out/bin/pixie-vm "\$@" + >&2 echo "[\$\$] WARNING: 'pxi' and 'pixie-vm' are deprecated aliases for 'pixie', please update your scripts." + exec $out/bin/pixie "\$@" EOF chmod +x $out/bin/pxi ''; @@ -79,7 +79,8 @@ let description = "A clojure-like lisp, built with the pypy vm toolkit"; homepage = https://github.com/pixie-lang/pixie; license = stdenv.lib.licenses.lgpl3; - platforms = ["x86_64-linux" "i686-linux"]; + platforms = ["x86_64-linux" "i686-linux" "x86_64-darwin"]; + maintainers = with stdenv.lib.maintainers; [ bendlas ]; }; }; in build (builtins.getAttr variant variants) diff --git a/pkgs/development/interpreters/pixie/dust.nix b/pkgs/development/interpreters/pixie/dust.nix index 34b471131938..4a7f3423defd 100644 --- a/pkgs/development/interpreters/pixie/dust.nix +++ b/pkgs/development/interpreters/pixie/dust.nix @@ -30,6 +30,6 @@ stdenv.mkDerivation rec { description = "Provides tooling around pixie, e.g. a nicer repl, running tests and fetching dependencies"; homepage = src.meta.homepage; license = stdenv.lib.licenses.lgpl3; - platforms = stdenv.lib.platforms.linux; + platforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin; }; } |