Merge branch 'staging', containing closure-size #7701
This commit is contained in:
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
|
||||
b=$(basename $f)
|
||||
if [ $b == "mix" ]; then continue; fi
|
||||
wrapProgram $f \
|
||||
--prefix PATH ":" "${erlang}/bin:${coreutils}/bin:${curl}/bin:${bash}/bin" \
|
||||
--prefix PATH ":" "${erlang}/bin:${coreutils}/bin:${curl.bin}/bin:${bash}/bin" \
|
||||
--set CURL_CA_BUNDLE /etc/ssl/certs/ca-certificates.crt
|
||||
done
|
||||
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
sed -i "$out/lib/pkgconfig/guile-2.0.pc" \
|
||||
-e 's|-lunistring|-L${libunistring}/lib -lunistring|g ;
|
||||
s|^Cflags:\(.*\)$|Cflags: -I${libunistring}/include \1|g ;
|
||||
s|-lltdl|-L${libtool}/lib -lltdl|g'
|
||||
s|-lltdl|-L${libtool.lib}/lib -lltdl|g'
|
||||
'';
|
||||
|
||||
# make check doesn't work on darwin
|
||||
|
||||
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
|
||||
'';
|
||||
|
||||
NIX_CFLAGS_COMPILE = ''
|
||||
-I${SDL}/include/SDL
|
||||
-I${SDL.dev}/include/SDL
|
||||
-I${freetype}include/freetype2
|
||||
'';
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
|
||||
makeFlagsArray=(
|
||||
LUA_LDIR="$out/share/lua/${lua5.luaversion}"
|
||||
LUA_INC="-I${lua5}/include" LUA_CDIR="$out/lib/lua/${lua5.luaversion}"
|
||||
EXPAT_INC="-I${expat}/include");
|
||||
EXPAT_INC="-I${expat.dev}/include");
|
||||
'';
|
||||
|
||||
meta = {
|
||||
|
||||
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
|
||||
'' + stdenv.lib.optionalString (stdenv.cc.libc != null)
|
||||
''
|
||||
substituteInPlace Makefile \
|
||||
--replace ldconfig ${stdenv.cc.libc}/sbin/ldconfig
|
||||
--replace ldconfig ${stdenv.cc.libc.bin or stdenv.cc.libc}/bin/ldconfig
|
||||
'';
|
||||
|
||||
configurePhase = false;
|
||||
|
||||
@@ -17,7 +17,8 @@ assert enableThreading -> (stdenv ? glibc);
|
||||
let
|
||||
|
||||
libc = if stdenv.cc.libc or null != null then stdenv.cc.libc else "/usr";
|
||||
|
||||
libcInc = libc.dev or libc;
|
||||
libcLib = libc.out or libc;
|
||||
common = { version, sha256 }: stdenv.mkDerivation rec {
|
||||
name = "perl-${version}";
|
||||
|
||||
@@ -26,7 +27,9 @@ let
|
||||
inherit sha256;
|
||||
};
|
||||
|
||||
outputs = [ "out" "man" ];
|
||||
# TODO: Add a "dev" output containing the header files.
|
||||
outputs = [ "out" "man" "docdev" ];
|
||||
setOutputFlags = false;
|
||||
|
||||
patches =
|
||||
[ # Do not look in /usr etc. for dependencies.
|
||||
@@ -35,17 +38,11 @@ let
|
||||
++ optional stdenv.isSunOS ./ld-shared.patch
|
||||
++ optional stdenv.isDarwin [ ./cpp-precomp.patch ];
|
||||
|
||||
# There's an annoying bug on sandboxed Darwin in Perl's Cwd.pm where it looks for pwd
|
||||
# in /bin/pwd and /usr/bin/pwd and then falls back on just "pwd" if it can't get them
|
||||
# while at the same time erasing the PATH environment variable so it unconditionally
|
||||
# fails. The code in question is guarded by a check for Mac OS, but the patch below
|
||||
# doesn't have any runtime effect on other platforms.
|
||||
postPatch = optional stdenv.isDarwin ''
|
||||
postPatch = ''
|
||||
pwd="$(type -P pwd)"
|
||||
substituteInPlace dist/PathTools/Cwd.pm \
|
||||
--replace "/bin/pwd" "$pwd"
|
||||
'';
|
||||
|
||||
sandboxProfile = sandbox.allow "ipc-sysv-sem";
|
||||
|
||||
# Build a thread-safe Perl with a dynamic libperls.o. We need the
|
||||
@@ -59,8 +56,8 @@ let
|
||||
"-Uinstallusrbinperl"
|
||||
"-Dinstallstyle=lib/perl5"
|
||||
"-Duseshrplib"
|
||||
"-Dlocincpth=${libc}/include"
|
||||
"-Dloclibpth=${libc}/lib"
|
||||
"-Dlocincpth=${libcInc}/include"
|
||||
"-Dloclibpth=${libcLib}/lib"
|
||||
]
|
||||
++ optional stdenv.isSunOS "-Dcc=gcc"
|
||||
++ optional enableThreading "-Dusethreads";
|
||||
@@ -74,10 +71,8 @@ let
|
||||
preConfigure =
|
||||
''
|
||||
configureFlags="$configureFlags -Dprefix=$out -Dman1dir=$out/share/man/man1 -Dman3dir=$out/share/man/man3"
|
||||
|
||||
${optionalString stdenv.isArm ''
|
||||
configureFlagsArray=(-Dldflags="-lm -lrt")
|
||||
''}
|
||||
'' + optionalString stdenv.isArm ''
|
||||
configureFlagsArray=(-Dldflags="-lm -lrt")
|
||||
'' + optionalString stdenv.isDarwin ''
|
||||
substituteInPlace hints/darwin.sh --replace "env MACOSX_DEPLOYMENT_TARGET=10.3" ""
|
||||
'' + optionalString (!enableThreading) ''
|
||||
@@ -91,18 +86,26 @@ let
|
||||
substituteInPlace dist/PathTools/Cwd.pm --replace "'/bin/pwd'" "'$(type -tP pwd)'"
|
||||
'';
|
||||
|
||||
# Inspired by nuke-references, which I can't depend on because it uses perl. Perhaps it should just use sed :)
|
||||
postInstall = ''
|
||||
self=$(echo $out | sed -n "s|^$NIX_STORE/\\([a-z0-9]\{32\}\\)-.*|\1|p")
|
||||
|
||||
sed -i "/$self/b; s|$NIX_STORE/[a-z0-9]\{32\}-|$NIX_STORE/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-|g" "$out"/lib/perl5/*/*/Config.pm
|
||||
sed -i "/$self/b; s|$NIX_STORE/[a-z0-9]\{32\}-|$NIX_STORE/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-|g" "$out"/lib/perl5/*/*/Config_heavy.pl
|
||||
'';
|
||||
|
||||
setupHook = ./setup-hook.sh;
|
||||
|
||||
passthru.libPrefix = "lib/perl5/site_perl";
|
||||
|
||||
# TODO: it seems like absolute paths to some coreutils is required.
|
||||
postInstall =
|
||||
''
|
||||
# Remove dependency between "out" and "man" outputs.
|
||||
rm "$out"/lib/perl5/*/*/.packlist
|
||||
|
||||
# Remove dependencies on glibc and gcc
|
||||
sed "/ *libpth =>/c libpth => ' '," \
|
||||
-i "$out"/lib/perl5/*/*/Config.pm
|
||||
# TODO: removing those paths would be cleaner than overwriting with nonsense.
|
||||
substituteInPlace "$out"/lib/perl5/*/*/Config_heavy.pl \
|
||||
--replace "${libcInc}" /no-such-path \
|
||||
--replace "${stdenv.cc.cc or "/no-such-path"}" /no-such-path \
|
||||
--replace "$man" /no-such-path
|
||||
''; # */
|
||||
|
||||
meta = {
|
||||
homepage = https://www.perl.org/;
|
||||
description = "The standard implementation of the Perl 5 programmming language";
|
||||
|
||||
@@ -30,7 +30,7 @@ let
|
||||
# SAPI modules:
|
||||
|
||||
apxs2 = {
|
||||
configureFlags = ["--with-apxs2=${apacheHttpd}/bin/apxs"];
|
||||
configureFlags = ["--with-apxs2=${apacheHttpd.dev}/bin/apxs"];
|
||||
buildInputs = [apacheHttpd];
|
||||
};
|
||||
|
||||
@@ -44,7 +44,13 @@ let
|
||||
};
|
||||
|
||||
ldap = {
|
||||
configureFlags = ["--with-ldap=${openldap}"];
|
||||
configureFlags = [
|
||||
"--with-ldap"
|
||||
"LDAP_DIR=${openldap.dev}"
|
||||
"LDAP_INCDIR=${openldap.dev}/include"
|
||||
"LDAP_LIBDIR=${openldap.out}/lib"
|
||||
"--with-ldap-sasl=${cyrus_sasl.dev}"
|
||||
];
|
||||
buildInputs = [openldap cyrus_sasl openssl];
|
||||
};
|
||||
|
||||
@@ -69,7 +75,7 @@ let
|
||||
|
||||
libxml2 = {
|
||||
configureFlags = [
|
||||
"--with-libxml-dir=${libxml2}"
|
||||
"--with-libxml-dir=${libxml2.dev}"
|
||||
];
|
||||
buildInputs = [ libxml2 ];
|
||||
};
|
||||
@@ -148,7 +154,7 @@ let
|
||||
};
|
||||
|
||||
openssl = {
|
||||
configureFlags = ["--with-openssl=${openssl}"];
|
||||
configureFlags = ["--enable-openssl"];
|
||||
buildInputs = [openssl];
|
||||
};
|
||||
|
||||
|
||||
@@ -25,17 +25,17 @@ let
|
||||
++ stdenv.lib.optional (stdenv ? cc && stdenv.cc.libc != null) stdenv.cc.libc
|
||||
++ stdenv.lib.optional zlibSupport zlib;
|
||||
|
||||
C_INCLUDE_PATH = stdenv.lib.concatStringsSep ":" (map (p: "${p}/include") buildInputs);
|
||||
LIBRARY_PATH = stdenv.lib.concatStringsSep ":" (map (p: "${p}/lib") buildInputs);
|
||||
LD_LIBRARY_PATH = stdenv.lib.concatStringsSep ":" (map (p: "${p}/lib")
|
||||
C_INCLUDE_PATH = stdenv.lib.concatStringsSep ":" (map (p: "${p.dev or p}/include") buildInputs);
|
||||
LIBRARY_PATH = stdenv.lib.concatStringsSep ":" (map (p: "${p.lib or p.out or p}/lib") buildInputs);
|
||||
LD_LIBRARY_PATH = stdenv.lib.concatStringsSep ":" (map (p: "${p.lib or p.out or p}/lib")
|
||||
(stdenv.lib.filter (x : x.outPath != stdenv.cc.libc.outPath or "") buildInputs));
|
||||
|
||||
preConfigure = ''
|
||||
# hint pypy to find nix ncurses
|
||||
substituteInPlace pypy/module/_minimal_curses/fficurses.py \
|
||||
--replace "/usr/include/ncurses/curses.h" "${ncurses}/include/curses.h" \
|
||||
--replace "ncurses/curses.h" "${ncurses}/include/curses.h" \
|
||||
--replace "ncurses/term.h" "${ncurses}/include/term.h" \
|
||||
--replace "/usr/include/ncurses/curses.h" "${ncurses.dev}/include/curses.h" \
|
||||
--replace "ncurses/curses.h" "${ncurses.dev}/include/curses.h" \
|
||||
--replace "ncurses/term.h" "${ncurses.dev}/include/term.h" \
|
||||
--replace "libraries=['curses']" "libraries=['ncurses']"
|
||||
|
||||
# tkinter hints
|
||||
@@ -44,7 +44,7 @@ let
|
||||
--replace "linklibs = ['tcl' + _ver, 'tk' + _ver]" "linklibs=['${tcl.libPrefix}', '${tk.libPrefix}']" \
|
||||
--replace "libdirs = []" "libdirs = ['${tk}/lib', '${tcl}/lib']"
|
||||
|
||||
sed -i "s@libraries=\['sqlite3'\]\$@libraries=['sqlite3'], include_dirs=['${sqlite}/include'], library_dirs=['${sqlite}/lib']@" lib_pypy/_sqlite3_build.py
|
||||
sed -i "s@libraries=\['sqlite3'\]\$@libraries=['sqlite3'], include_dirs=['${sqlite.dev}/include'], library_dirs=['${sqlite.out}/lib']@" lib_pypy/_sqlite3_build.py
|
||||
'';
|
||||
|
||||
buildPhase = ''
|
||||
@@ -66,7 +66,7 @@ let
|
||||
|
||||
doCheck = true;
|
||||
checkPhase = ''
|
||||
export TERMINFO="${ncurses}/share/terminfo/";
|
||||
export TERMINFO="${ncurses.out}/share/terminfo/";
|
||||
export TERM="xterm";
|
||||
export HOME="$TMPDIR";
|
||||
# disable shutils because it assumes gid 0 exists
|
||||
|
||||
@@ -52,6 +52,10 @@ let
|
||||
[ bzip2 openssl ]++ optionals includeModules [ db openssl ncurses gdbm readline xlibsWrapper tcl tk sqlite ]
|
||||
++ optional zlibSupport zlib;
|
||||
|
||||
mkPaths = paths: {
|
||||
C_INCLUDE_PATH = concatStringsSep ":" (map (p: "${p.dev or p}/include") paths);
|
||||
LIBRARY_PATH = concatStringsSep ":" (map (p: "${p.lib or (p.out or p)}/lib") paths);
|
||||
};
|
||||
|
||||
# Build the basic Python interpreter without modules that have
|
||||
# external dependencies.
|
||||
@@ -62,8 +66,7 @@ let
|
||||
inherit majorVersion version src patches buildInputs preConfigure
|
||||
configureFlags;
|
||||
|
||||
C_INCLUDE_PATH = concatStringsSep ":" (map (p: "${p}/include") buildInputs);
|
||||
LIBRARY_PATH = concatStringsSep ":" (map (p: "${p}/lib") buildInputs);
|
||||
inherit (mkPaths buildInputs) C_INCLUDE_PATH LIBRARY_PATH;
|
||||
|
||||
NIX_CFLAGS_COMPILE = optionalString stdenv.isDarwin "-msse2";
|
||||
|
||||
@@ -83,9 +86,9 @@ let
|
||||
ln -s $out/lib/python${majorVersion}/pdb.py $out/bin/pdb${majorVersion}
|
||||
mv $out/share/man/man1/{python.1,python2.6.1}
|
||||
ln -s $out/share/man/man1/{python2.6.1,python.1}
|
||||
|
||||
|
||||
paxmark E $out/bin/python${majorVersion}
|
||||
|
||||
|
||||
${ optionalString includeModules "$out/bin/python ./setup.py build_ext"}
|
||||
'';
|
||||
|
||||
@@ -139,8 +142,7 @@ let
|
||||
|
||||
buildInputs = [ python ] ++ deps;
|
||||
|
||||
C_INCLUDE_PATH = concatStringsSep ":" (map (p: "${p}/include") buildInputs);
|
||||
LIBRARY_PATH = concatStringsSep ":" (map (p: "${p}/lib") buildInputs);
|
||||
inherit (mkPaths buildInputs) C_INCLUDE_PATH LIBRARY_PATH;
|
||||
|
||||
buildPhase =
|
||||
''
|
||||
|
||||
@@ -101,6 +101,11 @@ let
|
||||
|
||||
propagatedBuildInputs = optional stdenv.isDarwin configd;
|
||||
|
||||
mkPaths = paths: {
|
||||
C_INCLUDE_PATH = concatStringsSep ":" (map (p: "${p.dev or p}/include") paths);
|
||||
LIBRARY_PATH = concatStringsSep ":" (map (p: "${p.lib or (p.out or p)}/lib") paths);
|
||||
};
|
||||
|
||||
# Build the basic Python interpreter without modules that have
|
||||
# external dependencies.
|
||||
python = stdenv.mkDerivation {
|
||||
@@ -111,8 +116,7 @@ let
|
||||
preConfigure configureFlags;
|
||||
|
||||
LDFLAGS = stdenv.lib.optionalString (!stdenv.isDarwin) "-lgcc_s";
|
||||
C_INCLUDE_PATH = concatStringsSep ":" (map (p: "${p}/include") buildInputs);
|
||||
LIBRARY_PATH = concatStringsSep ":" (map (p: "${p}/lib") buildInputs);
|
||||
inherit (mkPaths buildInputs) C_INCLUDE_PATH LIBRARY_PATH;
|
||||
|
||||
NIX_CFLAGS_COMPILE = optionalString stdenv.isDarwin "-msse2";
|
||||
DETERMINISTIC_BUILD = 1;
|
||||
@@ -137,7 +141,9 @@ let
|
||||
|
||||
paxmark E $out/bin/python${majorVersion}
|
||||
|
||||
${ optionalString includeModules "$out/bin/python ./setup.py build_ext"}
|
||||
${optionalString includeModules "$out/bin/python ./setup.py build_ext"}
|
||||
|
||||
rm "$out"/lib/python*/plat-*/regen # refers to glibc.dev
|
||||
'';
|
||||
|
||||
passthru = rec {
|
||||
@@ -186,8 +192,7 @@ let
|
||||
|
||||
buildInputs = [ python ] ++ deps;
|
||||
|
||||
C_INCLUDE_PATH = concatStringsSep ":" (map (p: "${p}/include") buildInputs);
|
||||
LIBRARY_PATH = concatStringsSep ":" (map (p: "${p}/lib") buildInputs);
|
||||
inherit (mkPaths buildInputs) C_INCLUDE_PATH LIBRARY_PATH;
|
||||
|
||||
# non-python gdbm has a libintl dependency on i686-cygwin, not on x86_64-cygwin
|
||||
buildPhase = (if (stdenv.system == "i686-cygwin" && moduleName == "gdbm") then ''
|
||||
|
||||
@@ -44,8 +44,8 @@ stdenv.mkDerivation {
|
||||
${optionalString stdenv.isDarwin ''export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -msse2"''}
|
||||
|
||||
configureFlagsArray=( --enable-shared --with-threads --with-wide-unicode
|
||||
CPPFLAGS="${concatStringsSep " " (map (p: "-I${p}/include") buildInputs)}"
|
||||
LDFLAGS="${concatStringsSep " " (map (p: "-L${p}/lib") buildInputs)}"
|
||||
CPPFLAGS="${concatStringsSep " " (map (p: "-I${p.dev or p}/include") buildInputs)}"
|
||||
LDFLAGS="${concatStringsSep " " (map (p: "-L${p.lib or (p.out or p)}/lib") buildInputs)}"
|
||||
LIBS="${optionalString (!stdenv.isDarwin) "-lcrypt"} ${optionalString (ncurses != null) "-lncurses"}"
|
||||
)
|
||||
'';
|
||||
|
||||
@@ -46,8 +46,8 @@ stdenv.mkDerivation {
|
||||
${optionalString stdenv.isDarwin ''export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -msse2"''}
|
||||
|
||||
configureFlagsArray=( --enable-shared --with-threads
|
||||
CPPFLAGS="${concatStringsSep " " (map (p: "-I${p}/include") buildInputs)}"
|
||||
LDFLAGS="${concatStringsSep " " (map (p: "-L${p}/lib") buildInputs)}"
|
||||
CPPFLAGS="${concatStringsSep " " (map (p: "-I${p.dev or p}/include") buildInputs)}"
|
||||
LDFLAGS="${concatStringsSep " " (map (p: "-L${p.lib or (p.out or p)}/lib") buildInputs)}"
|
||||
LIBS="${optionalString (!stdenv.isDarwin) "-lcrypt"} ${optionalString (ncurses != null) "-lncurses"}"
|
||||
)
|
||||
'';
|
||||
|
||||
@@ -58,8 +58,8 @@ stdenv.mkDerivation {
|
||||
''}
|
||||
|
||||
configureFlagsArray=( --enable-shared --with-threads
|
||||
CPPFLAGS="${concatStringsSep " " (map (p: "-I${p}/include") buildInputs)}"
|
||||
LDFLAGS="${concatStringsSep " " (map (p: "-L${p}/lib") buildInputs)}"
|
||||
CPPFLAGS="${concatStringsSep " " (map (p: "-I${p.dev or p}/include") buildInputs)}"
|
||||
LDFLAGS="${concatStringsSep " " (map (p: "-L${p.lib or (p.out or p)}/lib") buildInputs)}"
|
||||
LIBS="${optionalString (!stdenv.isDarwin) "-lcrypt"} ${optionalString (ncurses != null) "-lncurses"}"
|
||||
)
|
||||
'';
|
||||
|
||||
@@ -58,8 +58,8 @@ stdenv.mkDerivation {
|
||||
''}
|
||||
|
||||
configureFlagsArray=( --enable-shared --with-threads
|
||||
CPPFLAGS="${concatStringsSep " " (map (p: "-I${p}/include") buildInputs)}"
|
||||
LDFLAGS="${concatStringsSep " " (map (p: "-L${p}/lib") buildInputs)}"
|
||||
CPPFLAGS="${concatStringsSep " " (map (p: "-I${p.dev or p}/include") buildInputs)}"
|
||||
LDFLAGS="${concatStringsSep " " (map (p: "-L${p.lib or (p.out or p)}/lib") buildInputs)}"
|
||||
LIBS="${optionalString (!stdenv.isDarwin) "-lcrypt"} ${optionalString (ncurses != null) "-lncurses"}"
|
||||
)
|
||||
'';
|
||||
|
||||
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
|
||||
'';
|
||||
|
||||
preConfigure = ''
|
||||
export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${nspr}/include/nspr"
|
||||
export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${nspr.dev}/include/nspr"
|
||||
'';
|
||||
|
||||
makeFlags = "-f ${makefile} JS_DIST=\${out} BUILD_OPT=1 JS_READLINE=1 JS_THREADSAFE=1";
|
||||
|
||||
@@ -9,6 +9,8 @@ stdenv.mkDerivation rec {
|
||||
sha256 = "1fig2wf4f10v43mqx67y68z6h77sy900d1w0pz9qarrqx57rc7ij";
|
||||
};
|
||||
|
||||
outputs = [ "dev" "out" "lib" ];
|
||||
|
||||
propagatedBuildInputs = [ nspr ];
|
||||
|
||||
buildInputs = [ pkgconfig perl python zip libffi readline ];
|
||||
@@ -21,11 +23,14 @@ stdenv.mkDerivation rec {
|
||||
'';
|
||||
|
||||
preConfigure = ''
|
||||
export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${nspr}/include/nspr"
|
||||
export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${nspr.dev}/include/nspr"
|
||||
export LIBXUL_DIST=$out
|
||||
'';
|
||||
|
||||
setOutputFlags = false;
|
||||
configureFlags = [
|
||||
"--libdir=$(lib)/lib"
|
||||
"--includedir=$(dev)/include"
|
||||
"--enable-threadsafe"
|
||||
"--with-system-nspr"
|
||||
"--with-system-ffi"
|
||||
@@ -49,7 +54,10 @@ stdenv.mkDerivation rec {
|
||||
paxmark mr jsapi-tests/jsapi-tests
|
||||
'';
|
||||
|
||||
postInstall = ''rm "$out"/lib/*.a''; # halve the output size
|
||||
postInstall = ''
|
||||
rm "$lib"/lib/*.a # halve the output size
|
||||
moveToOutput "bin/js*-config" "$dev" # break the cycle
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Mozilla's JavaScript engine written in C/C++";
|
||||
|
||||
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
|
||||
postUnpack = "sourceRoot=\${sourceRoot}/js/src";
|
||||
|
||||
preConfigure = ''
|
||||
export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${nspr}/include/nspr"
|
||||
export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${nspr.dev}/include/nspr"
|
||||
export LIBXUL_DIST=$out
|
||||
'';
|
||||
|
||||
|
||||
@@ -9,6 +9,8 @@ stdenv.mkDerivation rec {
|
||||
sha256 = "1n1phk8r3l8icqrrap4czplnylawa0ddc2cc4cgdz46x3lrkybz6";
|
||||
};
|
||||
|
||||
outputs = [ "dev" "out" "lib" ];
|
||||
|
||||
propagatedBuildInputs = [ nspr ];
|
||||
|
||||
buildInputs = [ pkgconfig perl python zip libffi readline ];
|
||||
@@ -21,11 +23,14 @@ stdenv.mkDerivation rec {
|
||||
postUnpack = "sourceRoot=\${sourceRoot}/js/src";
|
||||
|
||||
preConfigure = ''
|
||||
export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${nspr}/include/nspr"
|
||||
export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${nspr.dev}/include/nspr"
|
||||
export LIBXUL_DIST=$out
|
||||
'';
|
||||
|
||||
setOutputFlags = false;
|
||||
configureFlags = [
|
||||
"--libdir=$(lib)/lib"
|
||||
"--includedir=$(dev)/include"
|
||||
"--enable-threadsafe"
|
||||
"--with-system-nspr"
|
||||
"--with-system-ffi"
|
||||
@@ -40,6 +45,11 @@ stdenv.mkDerivation rec {
|
||||
doCheck = true;
|
||||
preCheck = "rm jit-test/tests/sunspider/check-date-format-tofte.js"; # https://bugzil.la/600522
|
||||
|
||||
postInstall = ''
|
||||
rm "$lib"/lib/*.a # halve the output size
|
||||
moveToOutput "bin/js*-config" "$dev" # break the cycle
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Mozilla's JavaScript engine written in C/C++";
|
||||
homepage = https://developer.mozilla.org/en/SpiderMonkey;
|
||||
|
||||
Reference in New Issue
Block a user