Merge commit staging+systemd into closure-size
Many non-conflict problems weren't (fully) resolved in this commit yet.
This commit is contained in:
@@ -3,10 +3,10 @@ let
|
||||
s = # Generated upstream information
|
||||
rec {
|
||||
baseName="angelscript";
|
||||
version = "2.30.0";
|
||||
version = "2.30.1";
|
||||
name="${baseName}-${version}";
|
||||
url="http://www.angelcode.com/angelscript/sdk/files/angelscript_${version}.zip";
|
||||
sha256 = "00w7h2g6g1lkq9ahsvzyk78nbdzhn1adsrns9mrqb2fbxv2wbz5d";
|
||||
sha256 = "10ym7185h26gzmw5v6wz8zlycw8gzygv0aw87dmgjcyy7qfk74m4";
|
||||
};
|
||||
buildInputs = [
|
||||
unzip
|
||||
|
||||
24
pkgs/development/interpreters/ceptre/default.nix
Normal file
24
pkgs/development/interpreters/ceptre/default.nix
Normal file
@@ -0,0 +1,24 @@
|
||||
{ stdenv, fetchgit, mlton }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "ceptre-2015-08-30";
|
||||
|
||||
src = fetchgit {
|
||||
url = https://github.com/chrisamaphone/interactive-lp;
|
||||
rev = "f16ebee257d63396b8456c48698d255c118d7157";
|
||||
sha256 = "0d5s8nzsjl3l7g723588l19j3pyxkdrqnfs9nngv1d9syqyb5395";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ mlton ];
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
cp ceptre $out/bin
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "A linear logic programming language for modeling generative interactive systems";
|
||||
homepage = https://github.com/chrisamaphone/interactive-lp;
|
||||
maintainers = with maintainers; [ pSub ];
|
||||
};
|
||||
}
|
||||
@@ -1,14 +1,14 @@
|
||||
{ stdenv, fetchurl, erlang, rebar, makeWrapper, coreutils, curl, bash, cacert }:
|
||||
{ stdenv, fetchurl, erlang, rebar, makeWrapper, coreutils, curl, bash }:
|
||||
|
||||
let
|
||||
version = "1.0.4";
|
||||
version = "1.1.1";
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
name = "elixir-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/elixir-lang/elixir/archive/v${version}.tar.gz";
|
||||
sha256 = "1babp3ff6hajdm247zl9rc311k973cdnv6dqaai7l8817gg1yd3r";
|
||||
sha256 = "0shh5brhcrvbvhl4bw0fs2y5llw7i97khkkglygx30ncvd7nwz9v";
|
||||
};
|
||||
|
||||
buildInputs = [ erlang rebar makeWrapper ];
|
||||
@@ -20,8 +20,6 @@ stdenv.mkDerivation {
|
||||
|
||||
substituteInPlace Makefile \
|
||||
--replace "/usr/local" $out
|
||||
substituteInPlace bin/mix \
|
||||
--replace "/usr/bin/env elixir" "$out/bin/elixir"
|
||||
'';
|
||||
|
||||
postFixup = ''
|
||||
@@ -32,9 +30,12 @@ stdenv.mkDerivation {
|
||||
b=$(basename $f)
|
||||
if [ $b == "mix" ]; then continue; fi
|
||||
wrapProgram $f \
|
||||
--prefix PATH ":" "${erlang}/bin:${coreutils}/bin:${curl}/bin:${bash}/bin" \
|
||||
--set CURL_CA_BUNDLE "${cacert}/etc/ca-bundle.crt"
|
||||
--prefix PATH ":" "${erlang}/bin:${coreutils}/bin:${curl}/bin:${bash}/bin" \
|
||||
--set CURL_CA_BUNDLE /etc/ssl/certs/ca-certificates.crt
|
||||
done
|
||||
|
||||
substituteInPlace $out/bin/mix \
|
||||
--replace "/usr/bin/env elixir" "${coreutils}/bin/env elixir"
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
@@ -51,6 +52,6 @@ stdenv.mkDerivation {
|
||||
|
||||
license = licenses.epl10;
|
||||
platforms = platforms.unix;
|
||||
maintainers = [ maintainers.the-kenny ];
|
||||
maintainers = [ maintainers.the-kenny maintainers.havvy ];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{ stdenv, fetchurl, perl, gnum4, ncurses, openssl
|
||||
, makeWrapper, gnused, gawk
|
||||
, wxSupport ? false, mesa ? null, wxGTK ? null, xlibs ? null }:
|
||||
, wxSupport ? false, mesa ? null, wxGTK ? null, xorg ? null }:
|
||||
|
||||
assert wxSupport -> mesa != null && wxGTK != null && xlibs != null;
|
||||
assert wxSupport -> mesa != null && wxGTK != null && xorg != null;
|
||||
|
||||
let version = "15B03"; in
|
||||
|
||||
@@ -17,7 +17,7 @@ stdenv.mkDerivation {
|
||||
buildInputs =
|
||||
[ perl gnum4 ncurses openssl
|
||||
makeWrapper
|
||||
] ++ stdenv.lib.optional wxSupport [ mesa wxGTK xlibs.libX11 ];
|
||||
] ++ stdenv.lib.optional wxSupport [ mesa wxGTK xorg.libX11 ];
|
||||
|
||||
patchPhase = '' sed -i "s@/bin/rm@rm@" lib/odbc/configure erts/configure '';
|
||||
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
{ stdenv, fetchurl, perl, gnum4, ncurses, openssl
|
||||
, gnused, gawk, makeWrapper
|
||||
, odbcSupport ? false, unixODBC ? null
|
||||
, wxSupport ? false, mesa ? null, wxGTK ? null, xlibs ? null }:
|
||||
, wxSupport ? false, mesa ? null, wxGTK ? null, xorg ? null }:
|
||||
|
||||
assert wxSupport -> mesa != null && wxGTK != null && xlibs != null;
|
||||
assert wxSupport -> mesa != null && wxGTK != null && xorg != null;
|
||||
assert odbcSupport -> unixODBC != null;
|
||||
|
||||
with stdenv.lib;
|
||||
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
|
||||
|
||||
buildInputs =
|
||||
[ perl gnum4 ncurses openssl makeWrapper
|
||||
] ++ optional wxSupport [ mesa wxGTK xlibs.libX11 ]
|
||||
] ++ optional wxSupport [ mesa wxGTK xorg.libX11 ]
|
||||
++ optional odbcSupport [ unixODBC ];
|
||||
|
||||
patchPhase = '' sed -i "s@/bin/rm@rm@" lib/odbc/configure erts/configure '';
|
||||
|
||||
@@ -1,11 +1,15 @@
|
||||
{ stdenv, fetchurl, perl, gnum4, ncurses, openssl
|
||||
, gnused, gawk, makeWrapper
|
||||
, odbcSupport ? false, unixODBC ? null
|
||||
, wxSupport ? true, mesa ? null, wxGTK ? null, xlibs ? null
|
||||
, wxSupport ? true, mesa ? null, wxGTK ? null, xorg ? null, wxmac ? null
|
||||
, javacSupport ? false, openjdk ? null
|
||||
, enableHipe ? true}:
|
||||
, enableHipe ? true
|
||||
}:
|
||||
|
||||
assert wxSupport -> (if stdenv.isDarwin
|
||||
then wxmac != null
|
||||
else mesa != null && wxGTK != null && xorg != null);
|
||||
|
||||
assert wxSupport -> mesa != null && wxGTK != null && xlibs != null;
|
||||
assert odbcSupport -> unixODBC != null;
|
||||
assert javacSupport -> openjdk != null;
|
||||
|
||||
@@ -23,7 +27,7 @@ stdenv.mkDerivation rec {
|
||||
|
||||
buildInputs =
|
||||
[ perl gnum4 ncurses openssl makeWrapper
|
||||
] ++ optional wxSupport [ mesa wxGTK xlibs.libX11 ]
|
||||
] ++ optional wxSupport (if stdenv.isDarwin then [ wxmac ] else [ mesa wxGTK xorg.libX11 ])
|
||||
++ optional odbcSupport [ unixODBC ]
|
||||
++ optional javacSupport [ openjdk ];
|
||||
|
||||
@@ -34,7 +38,13 @@ stdenv.mkDerivation rec {
|
||||
sed -e s@/bin/pwd@pwd@g -i otp_build
|
||||
'';
|
||||
|
||||
configureFlags= "--with-ssl=${openssl} ${optionalString enableHipe "--enable-hipe"} ${optionalString odbcSupport "--with-odbc=${unixODBC}"} ${optionalString stdenv.isDarwin "--enable-darwin-64bit"} ${optionalString javacSupport "--with-javac"}";
|
||||
configureFlags= [
|
||||
"--with-ssl=${openssl}"
|
||||
] ++ optional enableHipe "--enable-hipe"
|
||||
++ optional wxSupport "--enable-wx"
|
||||
++ optional odbcSupport "--with-odbc=${unixODBC}"
|
||||
++ optional javacSupport "--with-javac"
|
||||
++ optional stdenv.isDarwin "--enable-darwin-64bit";
|
||||
|
||||
postInstall = let
|
||||
manpages = fetchurl {
|
||||
|
||||
87
pkgs/development/interpreters/erlang/R18.nix
Normal file
87
pkgs/development/interpreters/erlang/R18.nix
Normal file
@@ -0,0 +1,87 @@
|
||||
{ stdenv, fetchurl, perl, gnum4, ncurses, openssl
|
||||
, gnused, gawk, makeWrapper
|
||||
, odbcSupport ? false, unixODBC ? null
|
||||
, wxSupport ? true, mesa ? null, wxGTK ? null, xorg ? null, wxmac ? null
|
||||
, javacSupport ? false, openjdk ? null
|
||||
, enableHipe ? true
|
||||
}:
|
||||
|
||||
assert wxSupport -> (if stdenv.isDarwin
|
||||
then wxmac != null
|
||||
else mesa != null && wxGTK != null && xorg != null);
|
||||
|
||||
assert odbcSupport -> unixODBC != null;
|
||||
assert javacSupport -> openjdk != null;
|
||||
|
||||
with stdenv.lib;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "erlang-" + version + "${optionalString odbcSupport "-odbc"}"
|
||||
+ "${optionalString javacSupport "-javac"}";
|
||||
version = "18.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://www.erlang.org/download/otp_src_${version}.tar.gz";
|
||||
sha256 = "1ahi865ii3iqzd00yyn3nrxjb9qa2by9d7ixssvqw8ag9firvdm0";
|
||||
};
|
||||
|
||||
buildInputs =
|
||||
[ perl gnum4 ncurses openssl makeWrapper
|
||||
] ++ optional wxSupport (if stdenv.isDarwin then [ wxmac ] else [ mesa wxGTK xorg.libX11 ])
|
||||
++ optional odbcSupport [ unixODBC ]
|
||||
++ optional javacSupport [ openjdk ];
|
||||
|
||||
patchPhase = '' sed -i "s@/bin/rm@rm@" lib/odbc/configure erts/configure '';
|
||||
|
||||
preConfigure = ''
|
||||
export HOME=$PWD/../
|
||||
sed -e s@/bin/pwd@pwd@g -i otp_build
|
||||
'';
|
||||
|
||||
configureFlags= [
|
||||
"--with-ssl=${openssl}"
|
||||
] ++ optional enableHipe "--enable-hipe"
|
||||
++ optional wxSupport "--enable-wx"
|
||||
++ optional odbcSupport "--with-odbc=${unixODBC}"
|
||||
++ optional javacSupport "--with-javac"
|
||||
++ optional stdenv.isDarwin "--enable-darwin-64bit";
|
||||
|
||||
postInstall = let
|
||||
manpages = fetchurl {
|
||||
url = "http://www.erlang.org/download/otp_doc_man_${version}.tar.gz";
|
||||
sha256 = "0wsnp7sp21ydinwkg3rkazyrs382pdzwra9apikkhs70dv1hwkz4";
|
||||
};
|
||||
in ''
|
||||
ln -s $out/lib/erlang/lib/erl_interface*/bin/erl_call $out/bin/erl_call
|
||||
tar xf "${manpages}" -C "$out/lib/erlang"
|
||||
for i in "$out"/lib/erlang/man/man[0-9]/*.[0-9]; do
|
||||
prefix="''${i%/*}"
|
||||
ensureDir "$out/share/man/''${prefix##*/}"
|
||||
ln -s "$i" "$out/share/man/''${prefix##*/}/''${i##*/}erl"
|
||||
done
|
||||
'';
|
||||
|
||||
# Some erlang bin/ scripts run sed and awk
|
||||
postFixup = ''
|
||||
wrapProgram $out/lib/erlang/bin/erl --prefix PATH ":" "${gnused}/bin/"
|
||||
wrapProgram $out/lib/erlang/bin/start_erl --prefix PATH ":" "${gnused}/bin/:${gawk}/bin"
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = "http://www.erlang.org/";
|
||||
description = "Programming language used for massively scalable soft real-time systems";
|
||||
|
||||
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.
|
||||
'';
|
||||
|
||||
platforms = platforms.unix;
|
||||
maintainers = with maintainers; [ the-kenny sjmackenzie couchemar ];
|
||||
license = licenses.asl20;
|
||||
};
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
{ stdenv, fetchurl, liblapack, readline, gettext, ncurses }:
|
||||
{ stdenv, fetchurl, readline, gettext, ncurses }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "gnu-apl-${version}";
|
||||
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
|
||||
sha256 = "0h4diq3wfbdwxp5nm0z4b0p1zq13lwip0y7v28r9v0mbbk8xsfh1";
|
||||
};
|
||||
|
||||
buildInputs = [ liblapack readline gettext ncurses ];
|
||||
buildInputs = [ readline gettext ncurses ];
|
||||
|
||||
postInstall = ''
|
||||
cp -r support-files/ $out/share/doc/
|
||||
|
||||
38
pkgs/development/interpreters/hugs/default.nix
Normal file
38
pkgs/development/interpreters/hugs/default.nix
Normal file
@@ -0,0 +1,38 @@
|
||||
{ stdenv, fetchurl, bison }:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
|
||||
name = "hugs98-200609";
|
||||
|
||||
src = fetchurl {
|
||||
url = http://cvs.haskell.org/Hugs/downloads/2006-09/hugs98-Sep2006.tar.gz;
|
||||
sha256 = "3cf4d27673564cffe691bd14032369f646233f14daf2bc37c6c6df9f062b46b6";
|
||||
};
|
||||
|
||||
buildInputs = [ bison ];
|
||||
|
||||
postUnpack = "find -type f -exec sed -i 's@/bin/cp@cp@' {} +";
|
||||
|
||||
configureFlags = [
|
||||
"--enable-char-encoding=utf8" # require that the UTF-8 encoding is always used
|
||||
"--disable-path-canonicalization"
|
||||
"--disable-timer" # evaluation timing (for benchmarking Hugs)
|
||||
"--disable-profiling" # heap profiler
|
||||
"--disable-stack-dumps" # stack dump on stack overflow
|
||||
"--enable-large-banner" # multiline startup banner
|
||||
"--disable-internal-prims" # experimental primitives to access Hugs's innards
|
||||
"--disable-debug" # include C debugging information (for debugging Hugs)
|
||||
"--disable-tag" # runtime tag checking (for debugging Hugs)
|
||||
"--disable-lint" # "lint" flags (for debugging Hugs)
|
||||
"--disable-only98" # build Hugs to understand Haskell 98 only
|
||||
"--enable-ffi"
|
||||
"--enable-pthreads" # build Hugs using POSIX threads C library
|
||||
];
|
||||
|
||||
meta = {
|
||||
homepage = http://www.haskell.org/hugs;
|
||||
description = "Haskell interpreter";
|
||||
license = "as-is"; # gentoo labels it this way
|
||||
platforms = stdenv.lib.platforms.unix; # arbitrary choice
|
||||
};
|
||||
}
|
||||
@@ -3,11 +3,11 @@
|
||||
stdenv.mkDerivation rec {
|
||||
name = "jruby-${version}";
|
||||
|
||||
version = "1.7.12";
|
||||
version = "1.7.21";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://jruby.org.s3.amazonaws.com/downloads/${version}/jruby-bin-${version}.tar.gz";
|
||||
sha1 = "056cee1138e49da40a77f179b771372692479002";
|
||||
sha1 = "4955b69a913b22f96bd599eff2a133d8d1ed42c6";
|
||||
};
|
||||
|
||||
buildInputs = [ makeWrapper ];
|
||||
|
||||
@@ -1,27 +1,27 @@
|
||||
diff --git a/Makefile b/Makefile
|
||||
index 209a132..9387b09 100644
|
||||
index d2c7db4..dc107b3 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -43,5 +43,5 @@ PLATS= aix ansi bsd freebsd generic linux macosx mingw posix solaris
|
||||
@@ -41,7 +41,7 @@ PLATS= aix ansi bsd freebsd generic linux macosx mingw posix solaris
|
||||
# What to install.
|
||||
TO_BIN= lua luac
|
||||
TO_INC= lua.h luaconf.h lualib.h lauxlib.h lua.hpp
|
||||
-TO_LIB= liblua.a
|
||||
+TO_LIB= liblua.${version}.dylib
|
||||
TO_MAN= lua.1 luac.1
|
||||
|
||||
|
||||
# Lua version and release.
|
||||
@@ -64,3 +64,5 @@ install: dummy
|
||||
@@ -63,6 +63,8 @@ install: dummy
|
||||
cd src && $(INSTALL_DATA) $(TO_INC) $(INSTALL_INC)
|
||||
cd src && $(INSTALL_DATA) $(TO_LIB) $(INSTALL_LIB)
|
||||
cd doc && $(INSTALL_DATA) $(TO_MAN) $(INSTALL_MAN)
|
||||
+ ln -s -f liblua.${version}.dylib $(INSTALL_LIB)/liblua.${majorVersion}.dylib
|
||||
+ ln -s -f liblua.${majorVersion}.dylib $(INSTALL_LIB)/liblua.dylib
|
||||
|
||||
ranlib:
|
||||
cd src && cd $(INSTALL_LIB) && $(RANLIB) $(TO_LIB)
|
||||
|
||||
uninstall:
|
||||
cd src && cd $(INSTALL_BIN) && $(RM) $(TO_BIN)
|
||||
diff --git a/src/Makefile b/src/Makefile
|
||||
index fea895b..d9146d0 100644
|
||||
index 7b4b2b7..25001e5 100644
|
||||
--- a/src/Makefile
|
||||
+++ b/src/Makefile
|
||||
@@ -28,7 +28,7 @@ MYOBJS=
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
let
|
||||
dsoPatch = fetchurl {
|
||||
url = "https://projects.archlinux.org/svntogit/packages.git/plain/trunk/liblua.so.patch?h=packages/lua";
|
||||
url = "https://projects.archlinux.org/svntogit/packages.git/plain/trunk/liblua.so.patch?h=packages/lua52";
|
||||
sha256 = "1by1dy4ql61f5c6njq9ibf9kaqm3y633g2q8j54iyjr4cxvqwqz9";
|
||||
name = "lua-arch.patch";
|
||||
};
|
||||
|
||||
102
pkgs/development/interpreters/lua-5/5.3.nix
Normal file
102
pkgs/development/interpreters/lua-5/5.3.nix
Normal file
@@ -0,0 +1,102 @@
|
||||
{ stdenv, fetchurl, readline, compat ? false }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "lua-${version}";
|
||||
luaversion = "5.3";
|
||||
version = "${luaversion}.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://www.lua.org/ftp/${name}.tar.gz";
|
||||
sha1 = "1c46d1c78c44039939e820126b86a6ae12dadfba";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ readline ];
|
||||
|
||||
patches = if stdenv.isDarwin then [ ./5.2.darwin.patch ] else [];
|
||||
|
||||
configurePhase =
|
||||
if stdenv.isDarwin
|
||||
then ''
|
||||
makeFlagsArray=( INSTALL_TOP=$out INSTALL_MAN=$out/share/man/man1 PLAT=macosx CFLAGS="-DLUA_USE_LINUX -fno-common -O2 -fPIC${if compat then " -DLUA_COMPAT_ALL" else ""}" LDFLAGS="-fPIC" V=${luaversion} R=${version} )
|
||||
installFlagsArray=( TO_BIN="lua luac" TO_LIB="liblua.${version}.dylib" INSTALL_DATA='cp -d' )
|
||||
'' else ''
|
||||
makeFlagsArray=( INSTALL_TOP=$out INSTALL_MAN=$out/share/man/man1 PLAT=linux CFLAGS="-DLUA_USE_LINUX -O2 -fPIC${if compat then " -DLUA_COMPAT_ALL" else ""}" LDFLAGS="-fPIC" V=${luaversion} R=${version})
|
||||
installFlagsArray=( TO_BIN="lua luac" TO_LIB="liblua.a liblua.so liblua.so.${luaversion} liblua.so.${version}" INSTALL_DATA='cp -d' )
|
||||
cat ${./lua-5.3-dso.make} >> src/Makefile
|
||||
sed -e 's/ALL_T *= */& $(LUA_SO)/' -i src/Makefile
|
||||
'';
|
||||
|
||||
postBuild = stdenv.lib.optionalString (! stdenv.isDarwin) ''
|
||||
( cd src; make liblua.so "''${makeFlagsArray[@]}" )
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
mkdir -p "$out/share/doc/lua" "$out/lib/pkgconfig"
|
||||
mv "doc/"*.{gif,png,css,html} "$out/share/doc/lua/"
|
||||
rmdir $out/{share,lib}/lua/${luaversion} $out/{share,lib}/lua
|
||||
mkdir -p "$out/lib/pkgconfig"
|
||||
cat >"$out/lib/pkgconfig/lua.pc" <<EOF
|
||||
prefix=$out
|
||||
libdir=$out/lib
|
||||
includedir=$out/include
|
||||
INSTALL_BIN=$out/bin
|
||||
INSTALL_INC=$out/include
|
||||
INSTALL_LIB=$out/lib
|
||||
INSTALL_MAN=$out/man/man1
|
||||
|
||||
Name: Lua
|
||||
Description: An Extensible Extension Language
|
||||
Version: ${version}
|
||||
Requires:
|
||||
Libs: -L$out/lib -llua -lm
|
||||
Cflags: -I$out/include
|
||||
EOF
|
||||
'';
|
||||
|
||||
crossAttrs = let
|
||||
isMingw = stdenv.cross.libc == "msvcrt";
|
||||
isDarwin = stdenv.cross.libc == "libSystem";
|
||||
in {
|
||||
configurePhase = ''
|
||||
makeFlagsArray=(
|
||||
INSTALL_TOP=$out
|
||||
INSTALL_MAN=$out/share/man/man1
|
||||
CC=${stdenv.cross.config}-gcc
|
||||
STRIP=:
|
||||
RANLIB=${stdenv.cross.config}-ranlib
|
||||
V=${luaversion}
|
||||
R=${version}
|
||||
${if isMingw then "mingw" else stdenv.lib.optionalString isDarwin ''
|
||||
AR="${stdenv.cross.config}-ar rcu"
|
||||
macosx
|
||||
''}
|
||||
)
|
||||
'' + stdenv.lib.optionalString isMingw ''
|
||||
installFlagsArray=(
|
||||
TO_BIN="lua.exe luac.exe"
|
||||
TO_LIB="liblua.a lua52.dll"
|
||||
INSTALL_DATA="cp -d"
|
||||
)
|
||||
'';
|
||||
} // stdenv.lib.optionalAttrs isDarwin {
|
||||
postPatch = ''
|
||||
sed -i -e 's/-Wl,-soname[^ ]* *//' src/Makefile
|
||||
'';
|
||||
};
|
||||
|
||||
meta = {
|
||||
homepage = "http://www.lua.org";
|
||||
description = "Powerful, fast, lightweight, embeddable scripting language";
|
||||
longDescription = ''
|
||||
Lua combines simple procedural syntax with powerful data
|
||||
description constructs based on associative arrays and extensible
|
||||
semantics. Lua is dynamically typed, runs by interpreting bytecode
|
||||
for a register-based virtual machine, and has automatic memory
|
||||
management with incremental garbage collection, making it ideal
|
||||
for configuration, scripting, and rapid prototyping.
|
||||
'';
|
||||
license = stdenv.lib.licenses.mit;
|
||||
hydraPlatforms = stdenv.lib.platforms.linux;
|
||||
maintainers = [ stdenv.lib.maintainers.simons ];
|
||||
};
|
||||
}
|
||||
8
pkgs/development/interpreters/lua-5/lua-5.3-dso.make
Normal file
8
pkgs/development/interpreters/lua-5/lua-5.3-dso.make
Normal file
@@ -0,0 +1,8 @@
|
||||
|
||||
LUA_SO=liblua.so
|
||||
|
||||
$(LUA_SO): $(CORE_O) $(LIB_O)
|
||||
$(CC) -shared -ldl -Wl,-soname,$(LUA_SO).$(V) -o $@.$(R) $? -lm $(MYLDFLAGS)
|
||||
ln -sf $(LUA_SO).$(R) $(LUA_SO).$(V)
|
||||
ln -sf $(LUA_SO).$(R) $(LUA_SO)
|
||||
|
||||
@@ -2,11 +2,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "luajit-${version}";
|
||||
version = "2.0.3";
|
||||
version = "2.0.4";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://luajit.org/download/LuaJIT-${version}.tar.gz";
|
||||
sha256 = "0ydxpqkmsn2c341j4r2v6r5r0ig3kbwv3i9jran3iv81s6r6rgjm";
|
||||
sha256 = "0zc0y7p6nx1c0pp4nhgbdgjljpfxsb5kgwp4ysz22l1p2bms83v2";
|
||||
};
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
{ stdenv, fetchgit, clang }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "mujs-2015-01-22";
|
||||
name = "mujs-2015-09-15";
|
||||
|
||||
src = fetchgit {
|
||||
url = git://git.ghostscript.com/mujs.git;
|
||||
rev = "c1ad1ba1e482e7d01743e3f4f9517572bebf99ac";
|
||||
sha256 = "1713h82zzd189nb54ilpa8fj9xhinhn0jvmd3li4c2fwh6xfjpcy";
|
||||
rev = "17019d29e5494d4b0ae148a3043a940be78e3215";
|
||||
sha256 = "07192f4va733dr3v4ywfaqhz21iyydjwm84ij7zafwjvfi5z2b38";
|
||||
};
|
||||
|
||||
buildInputs = [ clang ];
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
{ stdenv, fetchurl, pkgconfig, nix, git }: let
|
||||
version = "4.0.0";
|
||||
version = "4.1.2";
|
||||
in stdenv.mkDerivation {
|
||||
name = "nix-exec-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/shlevy/nix-exec/releases/download/v${version}/nix-exec-${version}.tar.xz";
|
||||
|
||||
sha256 = "0qw25v8pzx08mirhy46dmqj93nwnxfvgw2jsn8rvxh2d7x4nc8jv";
|
||||
sha256 = "03dphdkf33zi2wm92wghfvadghljh6q1a9zdj9rcbx2jh7fp3k8y";
|
||||
};
|
||||
|
||||
buildInputs = [ pkgconfig nix git ];
|
||||
@@ -18,8 +18,6 @@ in stdenv.mkDerivation {
|
||||
|
||||
license = stdenv.lib.licenses.mit;
|
||||
|
||||
maintainers = [ stdenv.lib.maintainers.shlevy ];
|
||||
|
||||
platforms = nix.meta.platforms;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,20 +1,32 @@
|
||||
{ stdenv, fetchurl, gfortran, readline, ncurses, perl, flex, texinfo, qhull
|
||||
, libX11, graphicsmagick, pcre, liblapack, pkgconfig, mesa, fltk
|
||||
, fftw, fftwSinglePrec, zlib, curl, qrupdate
|
||||
, libX11, graphicsmagick, pcre, pkgconfig, mesa, fltk
|
||||
, fftw, fftwSinglePrec, zlib, curl, qrupdate, openblas
|
||||
, qt ? null, qscintilla ? null, ghostscript ? null, llvm ? null, hdf5 ? null,glpk ? null
|
||||
, suitesparse ? null, gnuplot ? null, jdk ? null, python ? null
|
||||
}:
|
||||
|
||||
let
|
||||
suitesparseOrig = suitesparse;
|
||||
qrupdateOrig = qrupdate;
|
||||
in
|
||||
# integer width is determined by openblas, so all dependencies must be built
|
||||
# with exactly the same openblas
|
||||
let
|
||||
suitesparse =
|
||||
if suitesparseOrig != null then suitesparseOrig.override { inherit openblas; } else null;
|
||||
qrupdate = if qrupdateOrig != null then qrupdateOrig.override { inherit openblas; } else null;
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "3.8.2";
|
||||
version = "4.0.0";
|
||||
name = "octave-${version}";
|
||||
src = fetchurl {
|
||||
url = "mirror://gnu/octave/${name}.tar.bz2";
|
||||
sha256 = "83bbd701aab04e7e57d0d5b8373dd54719bebb64ce0a850e69bf3d7454f33bae";
|
||||
url = "mirror://gnu/octave/${name}.tar.xz";
|
||||
sha256 = "0x64b2lna4vrlm4wwx6h1qdlmki6s2b9q90yjxldlvvrqvxf4syg";
|
||||
};
|
||||
|
||||
buildInputs = [ gfortran readline ncurses perl flex texinfo qhull libX11
|
||||
graphicsmagick pcre liblapack pkgconfig mesa fltk zlib curl
|
||||
graphicsmagick pcre pkgconfig mesa fltk zlib curl openblas
|
||||
fftw fftwSinglePrec qrupdate ]
|
||||
++ (stdenv.lib.optional (qt != null) qt)
|
||||
++ (stdenv.lib.optional (qscintilla != null) qscintilla)
|
||||
@@ -34,7 +46,13 @@ stdenv.mkDerivation rec {
|
||||
# problems on Hydra
|
||||
enableParallelBuilding = false;
|
||||
|
||||
configureFlags = [ "--enable-readline" "--enable-dl" ];
|
||||
configureFlags =
|
||||
[ "--enable-readline"
|
||||
"--enable-dl"
|
||||
"--with-blas=openblas"
|
||||
"--with-lapack=openblas"
|
||||
]
|
||||
++ stdenv.lib.optional openblas.blas64 "--enable-64";
|
||||
|
||||
# Keep a copy of the octave tests detailed results in the output
|
||||
# derivation, because someone may care
|
||||
|
||||
@@ -19,8 +19,6 @@ stdenv.mkDerivation rec {
|
||||
|
||||
setOutputFlags = false;
|
||||
|
||||
setOutputConfigureFlags = false;
|
||||
|
||||
patches =
|
||||
[ # Do not look in /usr etc. for dependencies.
|
||||
./no-sys-dirs.patch
|
||||
@@ -31,6 +29,17 @@ stdenv.mkDerivation rec {
|
||||
++ lib.optional stdenv.isSunOS ./ld-shared.patch
|
||||
++ lib.optional stdenv.isDarwin [ ./cpp-precomp.patch ./no-libutil.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 = ''
|
||||
pwd="$(type -P pwd)"
|
||||
substituteInPlace dist/Cwd/Cwd.pm \
|
||||
--replace "pwd_cmd = 'pwd'" "pwd_cmd = '$pwd'"
|
||||
'';
|
||||
|
||||
# Build a thread-safe Perl with a dynamic libperls.o. We need the
|
||||
# "installstyle" option to ensure that modules are put under
|
||||
# $out/lib/perl5 - this is the general default, but because $out
|
||||
@@ -41,8 +50,8 @@ stdenv.mkDerivation rec {
|
||||
"-Uinstallusrbinperl"
|
||||
"-Dinstallstyle=lib/perl5"
|
||||
"-Duseshrplib"
|
||||
"-Dlocincpth=${libc}/include"
|
||||
"-Dloclibpth=${libc.out}/lib"
|
||||
"-Dlocincpth=${libc.dev or libc}/include"
|
||||
"-Dloclibpth=${libc.out or libc}/lib"
|
||||
]
|
||||
++ lib.optional enableThreading "-Dusethreads";
|
||||
|
||||
|
||||
@@ -28,13 +28,31 @@ stdenv.mkDerivation rec {
|
||||
sha256 = "17cvplgpxbm1hshxlkra2fldn4da1iap1lsnb04hdm8ply93k95i";
|
||||
};
|
||||
|
||||
# TODO: Add a "dev" output containing the header files.
|
||||
outputs = [ "out" "man" ];
|
||||
|
||||
setOutputFlags = false;
|
||||
|
||||
patches =
|
||||
[ # Do not look in /usr etc. for dependencies.
|
||||
./no-sys-dirs.patch
|
||||
# Remove in 5.20.3
|
||||
./perl-5.20.2-gcc5_fixes-1.patch
|
||||
]
|
||||
++ optional stdenv.isSunOS ./ld-shared.patch
|
||||
++ stdenv.lib.optional stdenv.isDarwin [ ./cpp-precomp.patch ./no-libutil.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 = stdenv.lib.optional (stdenv.isDarwin && !stdenv.cc.nativeLibc) ''
|
||||
pwd="$(type -P pwd)"
|
||||
substituteInPlace dist/PathTools/Cwd.pm \
|
||||
--replace "pwd_cmd = 'pwd'" "pwd_cmd = '$pwd'"
|
||||
'';
|
||||
|
||||
# Build a thread-safe Perl with a dynamic libperls.o. We need the
|
||||
# "installstyle" option to ensure that modules are put under
|
||||
# $out/lib/perl5 - this is the general default, but because $out
|
||||
|
||||
@@ -0,0 +1,127 @@
|
||||
Submitted By: Ken Moffat <ken at linuxfromscratch dot org>
|
||||
Date: 2015-04-17
|
||||
Initial Package Version: 5.20.2
|
||||
Upstream Status: Committed
|
||||
Origin: Petr Pisař and Tony Cook
|
||||
Description: Fixes Errno.pm and h2ph with gcc-5.
|
||||
|
||||
1. cherry-picked because the change to $version will not apply, from
|
||||
commit 816b056ffb99ae54642320e20dc30a59fd1effef
|
||||
Author: Petr Písař <ppisar@redhat.com>
|
||||
Date: Wed Feb 11 15:46:37 2015 +0100
|
||||
|
||||
Fix Errno.pm generation for gcc-5.0
|
||||
|
||||
gcc-5.0 -E interleaves now line numbers with expended macros, so that
|
||||
the generated errno.c will be preprocessed to
|
||||
|
||||
EBFONT => [[
|
||||
59
|
||||
]]
|
||||
|
||||
which is hard to parse in in line-based reader.
|
||||
|
||||
So use -P option with gcc >= 5.0. Global -P usage would break makedepend,
|
||||
global -ftrack-macro-expansion=0 would break lib/h2ph.t.
|
||||
|
||||
RT#123784
|
||||
|
||||
diff --git a/ext/Errno/Errno_pm.PL b/ext/Errno/Errno_pm.PL
|
||||
index 3dadfce..c6bfa06 100644
|
||||
--- a/ext/Errno/Errno_pm.PL
|
||||
+++ b/ext/Errno/Errno_pm.PL
|
||||
@@ -215,20 +215,31 @@ sub write_errno_pm {
|
||||
{ # BeOS (support now removed) did not enter this block
|
||||
# invoke CPP and read the output
|
||||
|
||||
+ my $inhibit_linemarkers = '';
|
||||
+ if ($Config{gccversion} =~ /\A(\d+)\./ and $1 >= 5) {
|
||||
+ # GCC 5.0 interleaves expanded macros with line numbers breaking
|
||||
+ # each line into multiple lines. RT#123784
|
||||
+ $inhibit_linemarkers = ' -P';
|
||||
+ }
|
||||
+
|
||||
if ($^O eq 'VMS') {
|
||||
- my $cpp = "$Config{cppstdin} $Config{cppflags} $Config{cppminus}";
|
||||
+ my $cpp = "$Config{cppstdin} $Config{cppflags}" .
|
||||
+ $inhibit_linemarkers . " $Config{cppminus}";
|
||||
$cpp =~ s/sys\$input//i;
|
||||
open(CPPO,"$cpp errno.c |") or
|
||||
die "Cannot exec $Config{cppstdin}";
|
||||
} elsif ($IsMSWin32 || $^O eq 'NetWare') {
|
||||
- open(CPPO,"$Config{cpprun} $Config{cppflags} errno.c |") or
|
||||
- die "Cannot run '$Config{cpprun} $Config{cppflags} errno.c'";
|
||||
+ my $cpp = "$Config{cpprun} $Config{cppflags}" .
|
||||
+ $inhibit_linemarkers;
|
||||
+ open(CPPO,"$cpp errno.c |") or
|
||||
+ die "Cannot run '$cpp errno.c'";
|
||||
} elsif ($IsSymbian) {
|
||||
- my $cpp = "gcc -E -I$ENV{SDK}\\epoc32\\include\\libc -";
|
||||
+ my $cpp = "gcc -E -I$ENV{SDK}\\epoc32\\include\\libc" .
|
||||
+ $inhibit_linemarkers ." -";
|
||||
open(CPPO,"$cpp < errno.c |")
|
||||
or die "Cannot exec $cpp";
|
||||
} else {
|
||||
- my $cpp = default_cpp();
|
||||
+ my $cpp = default_cpp() . $inhibit_linemarkers;
|
||||
open(CPPO,"$cpp < errno.c |")
|
||||
or die "Cannot exec $cpp";
|
||||
}
|
||||
|
||||
commit 3bea78d24634e630b610f59957e7a019205a67b2
|
||||
Author: Tony Cook <tony@develop-help.com>
|
||||
Date: Mon Feb 16 15:57:00 2015 +1100
|
||||
|
||||
h2ph: correct handling of hex constants for the preamble
|
||||
|
||||
Previously they were treated as identifiers resulting in code
|
||||
generated like C< &0xFFF >.
|
||||
|
||||
We also try to prevent compile-time warnings from large hex integers,
|
||||
the user isn't responsible for the generated code, so we delay those
|
||||
warnings to run-time.
|
||||
|
||||
diff --git a/utils/h2ph.PL b/utils/h2ph.PL
|
||||
index 9a8b14d..d082f22 100644
|
||||
--- a/utils/h2ph.PL
|
||||
+++ b/utils/h2ph.PL
|
||||
@@ -769,7 +769,7 @@ sub inc_dirs
|
||||
sub build_preamble_if_necessary
|
||||
{
|
||||
# Increment $VERSION every time this function is modified:
|
||||
- my $VERSION = 3;
|
||||
+ my $VERSION = 4;
|
||||
my $preamble = "$Dest_dir/_h2ph_pre.ph";
|
||||
|
||||
# Can we skip building the preamble file?
|
||||
@@ -788,6 +788,11 @@ sub build_preamble_if_necessary
|
||||
|
||||
open PREAMBLE, ">$preamble" or die "Cannot open $preamble: $!";
|
||||
print PREAMBLE "# This file was created by h2ph version $VERSION\n";
|
||||
+ # Prevent non-portable hex constants from warning.
|
||||
+ #
|
||||
+ # We still produce an overflow warning if we can't represent
|
||||
+ # a hex constant as an integer.
|
||||
+ print PREAMBLE "no warnings qw(portable);\n";
|
||||
|
||||
foreach (sort keys %define) {
|
||||
if ($opt_D) {
|
||||
@@ -814,6 +819,18 @@ DEFINE
|
||||
# integer:
|
||||
print PREAMBLE
|
||||
"unless (defined &$_) { sub $_() { $1 } }\n\n";
|
||||
+ } elsif ($define{$_} =~ /^([+-]?0x[\da-f]+)U?L{0,2}$/i) {
|
||||
+ # hex integer
|
||||
+ # Special cased, since perl warns on hex integers
|
||||
+ # that can't be represented in a UV.
|
||||
+ #
|
||||
+ # This way we get the warning at time of use, so the user
|
||||
+ # only gets the warning if they happen to use this
|
||||
+ # platform-specific definition.
|
||||
+ my $code = $1;
|
||||
+ $code = "hex('$code')" if length $code > 10;
|
||||
+ print PREAMBLE
|
||||
+ "unless (defined &$_) { sub $_() { $code } }\n\n";
|
||||
} elsif ($define{$_} =~ /^\w+$/) {
|
||||
my $def = $define{$_};
|
||||
if ($isatype{$def}) {
|
||||
11
pkgs/development/interpreters/perl/5.22/cpp-precomp.patch
Normal file
11
pkgs/development/interpreters/perl/5.22/cpp-precomp.patch
Normal file
@@ -0,0 +1,11 @@
|
||||
--- a/hints/darwin.sh 2013-05-08 11:13:45.000000000 -0600
|
||||
+++ b/hints/darwin.sh 2013-05-08 11:15:04.000000000 -0600
|
||||
@@ -129,7 +129,7 @@
|
||||
|
||||
# Avoid Apple's cpp precompiler, better for extensions
|
||||
if [ "X`echo | ${cc} -no-cpp-precomp -E - 2>&1 >/dev/null`" = "X" ]; then
|
||||
- cppflags="${cppflags} -no-cpp-precomp"
|
||||
+ #cppflags="${cppflags} -no-cpp-precomp"
|
||||
|
||||
# This is necessary because perl's build system doesn't
|
||||
# apply cppflags to cc compile lines as it should.
|
||||
110
pkgs/development/interpreters/perl/5.22/default.nix
Normal file
110
pkgs/development/interpreters/perl/5.22/default.nix
Normal file
@@ -0,0 +1,110 @@
|
||||
{ stdenv, fetchurl, enableThreading ? stdenv ? glibc }:
|
||||
|
||||
# We can only compile perl with threading on platforms where we have a
|
||||
# real glibc in the stdenv.
|
||||
#
|
||||
# Instead of silently building an unthreaded perl if this is not the
|
||||
# case, we force callers to disableThreading explicitly, therefore
|
||||
# documenting the platforms where the perl is not threaded.
|
||||
#
|
||||
# In the case of stdenv linux boot stage1 it's not possible to use
|
||||
# threading because of the simpleness of the bootstrap glibc, so we
|
||||
# use enableThreading = false there.
|
||||
assert enableThreading -> (stdenv ? glibc);
|
||||
|
||||
let
|
||||
|
||||
libc = if stdenv.cc.libc or null != null then stdenv.cc.libc else "/usr";
|
||||
|
||||
in
|
||||
|
||||
with stdenv.lib;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "perl-5.22.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://cpan/src/5.0/${name}.tar.gz";
|
||||
sha256 = "0g5bl8sdpzx9gx2g5jq3py4bj07z2ylk7s1qn0fvsss2yl3hhs8c";
|
||||
};
|
||||
|
||||
# TODO: Add a "dev" output containing the header files.
|
||||
outputs = [ "out" "man" ];
|
||||
|
||||
setOutputFlags = false;
|
||||
|
||||
patches =
|
||||
[ # Do not look in /usr etc. for dependencies.
|
||||
./no-sys-dirs.patch
|
||||
]
|
||||
++ optional stdenv.isSunOS ./ld-shared.patch
|
||||
++ stdenv.lib.optional stdenv.isDarwin [ ./cpp-precomp.patch ./no-libutil.patch ];
|
||||
|
||||
# Build a thread-safe Perl with a dynamic libperls.o. We need the
|
||||
# "installstyle" option to ensure that modules are put under
|
||||
# $out/lib/perl5 - this is the general default, but because $out
|
||||
# contains the string "perl", Configure would select $out/lib.
|
||||
# Miniperl needs -lm. perl needs -lrt.
|
||||
configureFlags =
|
||||
[ "-de"
|
||||
"-Dcc=cc"
|
||||
"-Uinstallusrbinperl"
|
||||
"-Dinstallstyle=lib/perl5"
|
||||
"-Duseshrplib"
|
||||
"-Dlocincpth=${libc.dev or libc}/include"
|
||||
"-Dloclibpth=${libc.out or libc}/lib"
|
||||
]
|
||||
++ optional enableThreading "-Dusethreads";
|
||||
|
||||
configureScript = "${stdenv.shell} ./Configure";
|
||||
|
||||
dontAddPrefix = true;
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
preConfigure =
|
||||
''
|
||||
|
||||
configureFlags="$configureFlags -Dprefix=$out -Dman1dir=$out/share/man/man1 -Dman3dir=$out/share/man/man3"
|
||||
|
||||
${optionalString stdenv.isArm ''
|
||||
configureFlagsArray=(-Dldflags="-lm -lrt")
|
||||
''}
|
||||
'' + optionalString stdenv.isDarwin ''
|
||||
substituteInPlace hints/darwin.sh --replace "env MACOSX_DEPLOYMENT_TARGET=10.3" ""
|
||||
'' + optionalString (!enableThreading) ''
|
||||
# We need to do this because the bootstrap doesn't have a static libpthread
|
||||
sed -i 's,\(libswanted.*\)pthread,\1,g' Configure
|
||||
'';
|
||||
|
||||
preBuild = optionalString (!(stdenv ? cc && stdenv.cc.nativeTools))
|
||||
''
|
||||
# Make Cwd work on NixOS (where we don't have a /bin/pwd).
|
||||
substituteInPlace dist/PathTools/Cwd.pm --replace "'/bin/pwd'" "'$(type -tP pwd)'"
|
||||
'';
|
||||
|
||||
setupHook = ./setup-hook.sh;
|
||||
|
||||
passthru.libPrefix = "lib/perl5/site_perl";
|
||||
|
||||
preCheck = ''
|
||||
# Try and setup a local hosts file
|
||||
if [ -f "${libc}/lib/libnss_files.so" ]; then
|
||||
mkdir $TMPDIR/fakelib
|
||||
cp "${libc}/lib/libnss_files.so" $TMPDIR/fakelib
|
||||
sed -i 's,/etc/hosts,/dev/fd/3,g' $TMPDIR/fakelib/libnss_files.so
|
||||
export LD_LIBRARY_PATH=$TMPDIR/fakelib
|
||||
fi
|
||||
'';
|
||||
|
||||
postCheck = ''
|
||||
unset LD_LIBRARY_PATH
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = https://www.perl.org/;
|
||||
description = "The standard implementation of the Perl 5 programmming language";
|
||||
maintainers = [ maintainers.eelco ];
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
||||
11
pkgs/development/interpreters/perl/5.22/ld-shared.patch
Normal file
11
pkgs/development/interpreters/perl/5.22/ld-shared.patch
Normal file
@@ -0,0 +1,11 @@
|
||||
--- perl-5.16.2/hints/solaris_2.sh.orig 2013-02-14 19:29:49.453988140 +0000
|
||||
+++ perl-5.16.2/hints/solaris_2.sh 2013-02-14 19:30:31.681631019 +0000
|
||||
@@ -568,7 +568,7 @@
|
||||
# ccflags="$ccflags -Wa,`getconf XBS5_LP64_OFF64_CFLAGS 2>/dev/null`"
|
||||
# fi
|
||||
ldflags="$ldflags -m64"
|
||||
- lddlflags="$lddlflags -G -m64"
|
||||
+ lddlflags="$lddlflags -shared -m64"
|
||||
;;
|
||||
*)
|
||||
getconfccflags="`getconf XBS5_LP64_OFF64_CFLAGS 2>/dev/null`"
|
||||
12
pkgs/development/interpreters/perl/5.22/no-libutil.patch
Normal file
12
pkgs/development/interpreters/perl/5.22/no-libutil.patch
Normal file
@@ -0,0 +1,12 @@
|
||||
diff -ru -x '*~' perl-5.14.2-orig/Configure perl-5.14.2/Configure
|
||||
--- perl-5.14.2-orig/Configure 2011-09-26 11:44:34.000000000 +0200
|
||||
+++ perl-5.14.2/Configure 2012-02-16 17:24:50.779839039 +0100
|
||||
@@ -1368,7 +1368,7 @@
|
||||
: List of libraries we want.
|
||||
: If anyone needs extra -lxxx, put those in a hint file.
|
||||
libswanted="socket bind inet nsl nm ndbm gdbm dbm db malloc dl ld sun"
|
||||
-libswanted="$libswanted m crypt sec util c cposix posix ucb bsd BSD"
|
||||
+libswanted="$libswanted m crypt sec c cposix posix ucb bsd BSD"
|
||||
: We probably want to search /usr/shlib before most other libraries.
|
||||
: This is only used by the lib/ExtUtils/MakeMaker.pm routine extliblist.
|
||||
glibpth=`echo " $glibpth " | sed -e 's! /usr/shlib ! !'`
|
||||
250
pkgs/development/interpreters/perl/5.22/no-sys-dirs.patch
Normal file
250
pkgs/development/interpreters/perl/5.22/no-sys-dirs.patch
Normal file
@@ -0,0 +1,250 @@
|
||||
diff -ru -x '*~' -x '*.rej' perl-5.20.0-orig/Configure perl-5.20.0/Configure
|
||||
--- perl-5.20.0-orig/Configure 2014-05-26 15:34:18.000000000 +0200
|
||||
+++ perl-5.20.0/Configure 2014-06-25 10:43:35.368285986 +0200
|
||||
@@ -106,15 +106,7 @@
|
||||
fi
|
||||
|
||||
: Proper PATH setting
|
||||
-paths='/bin /usr/bin /usr/local/bin /usr/ucb /usr/local /usr/lbin'
|
||||
-paths="$paths /opt/bin /opt/local/bin /opt/local /opt/lbin"
|
||||
-paths="$paths /usr/5bin /etc /usr/gnu/bin /usr/new /usr/new/bin /usr/nbin"
|
||||
-paths="$paths /opt/gnu/bin /opt/new /opt/new/bin /opt/nbin"
|
||||
-paths="$paths /sys5.3/bin /sys5.3/usr/bin /bsd4.3/bin /bsd4.3/usr/ucb"
|
||||
-paths="$paths /bsd4.3/usr/bin /usr/bsd /bsd43/bin /opt/ansic/bin /usr/ccs/bin"
|
||||
-paths="$paths /etc /usr/lib /usr/ucblib /lib /usr/ccs/lib"
|
||||
-paths="$paths /sbin /usr/sbin /usr/libexec"
|
||||
-paths="$paths /system/gnu_library/bin"
|
||||
+paths=''
|
||||
|
||||
for p in $paths
|
||||
do
|
||||
@@ -1337,8 +1329,7 @@
|
||||
archname=''
|
||||
: Possible local include directories to search.
|
||||
: Set locincpth to "" in a hint file to defeat local include searches.
|
||||
-locincpth="/usr/local/include /opt/local/include /usr/gnu/include"
|
||||
-locincpth="$locincpth /opt/gnu/include /usr/GNU/include /opt/GNU/include"
|
||||
+locincpth=""
|
||||
:
|
||||
: no include file wanted by default
|
||||
inclwanted=''
|
||||
@@ -1349,17 +1340,12 @@
|
||||
|
||||
libnames=''
|
||||
: change the next line if compiling for Xenix/286 on Xenix/386
|
||||
-xlibpth='/usr/lib/386 /lib/386'
|
||||
+xlibpth=''
|
||||
: Possible local library directories to search.
|
||||
-loclibpth="/usr/local/lib /opt/local/lib /usr/gnu/lib"
|
||||
-loclibpth="$loclibpth /opt/gnu/lib /usr/GNU/lib /opt/GNU/lib"
|
||||
+loclibpth=""
|
||||
|
||||
: general looking path for locating libraries
|
||||
-glibpth="/lib /usr/lib $xlibpth"
|
||||
-glibpth="$glibpth /usr/ccs/lib /usr/ucblib /usr/local/lib"
|
||||
-test -f /usr/shlib/libc.so && glibpth="/usr/shlib $glibpth"
|
||||
-test -f /shlib/libc.so && glibpth="/shlib $glibpth"
|
||||
-test -d /usr/lib64 && glibpth="$glibpth /lib64 /usr/lib64 /usr/local/lib64"
|
||||
+glibpth=""
|
||||
|
||||
: Private path used by Configure to find libraries. Its value
|
||||
: is prepended to libpth. This variable takes care of special
|
||||
@@ -1391,8 +1377,6 @@
|
||||
libswanted="$libswanted m crypt sec util c cposix posix ucb bsd BSD"
|
||||
: We probably want to search /usr/shlib before most other libraries.
|
||||
: This is only used by the lib/ExtUtils/MakeMaker.pm routine extliblist.
|
||||
-glibpth=`echo " $glibpth " | sed -e 's! /usr/shlib ! !'`
|
||||
-glibpth="/usr/shlib $glibpth"
|
||||
: Do not use vfork unless overridden by a hint file.
|
||||
usevfork=false
|
||||
|
||||
@@ -2446,7 +2430,6 @@
|
||||
zip
|
||||
"
|
||||
pth=`echo $PATH | sed -e "s/$p_/ /g"`
|
||||
-pth="$pth $sysroot/lib $sysroot/usr/lib"
|
||||
for file in $loclist; do
|
||||
eval xxx=\$$file
|
||||
case "$xxx" in
|
||||
@@ -4936,7 +4919,7 @@
|
||||
: Set private lib path
|
||||
case "$plibpth" in
|
||||
'') if ./mips; then
|
||||
- plibpth="$incpath/usr/lib $sysroot/usr/local/lib $sysroot/usr/ccs/lib"
|
||||
+ plibpth="$incpath/usr/lib"
|
||||
fi;;
|
||||
esac
|
||||
case "$libpth" in
|
||||
@@ -8600,13 +8583,8 @@
|
||||
echo " "
|
||||
case "$sysman" in
|
||||
'')
|
||||
- syspath='/usr/share/man/man1 /usr/man/man1'
|
||||
- syspath="$syspath /usr/man/mann /usr/man/manl /usr/man/local/man1"
|
||||
- syspath="$syspath /usr/man/u_man/man1"
|
||||
- syspath="$syspath /usr/catman/u_man/man1 /usr/man/l_man/man1"
|
||||
- syspath="$syspath /usr/local/man/u_man/man1 /usr/local/man/l_man/man1"
|
||||
- syspath="$syspath /usr/man/man.L /local/man/man1 /usr/local/man/man1"
|
||||
- sysman=`./loc . /usr/man/man1 $syspath`
|
||||
+ syspath=''
|
||||
+ sysman=''
|
||||
;;
|
||||
esac
|
||||
if $test -d "$sysman"; then
|
||||
@@ -19900,9 +19878,10 @@
|
||||
case "$full_ar" in
|
||||
'') full_ar=$ar ;;
|
||||
esac
|
||||
+full_ar=ar
|
||||
|
||||
: Store the full pathname to the sed program for use in the C program
|
||||
-full_sed=$sed
|
||||
+full_sed=sed
|
||||
|
||||
: see what type gids are declared as in the kernel
|
||||
echo " "
|
||||
Only in perl-5.20.0/: Configure.orig
|
||||
diff -ru -x '*~' -x '*.rej' perl-5.20.0-orig/ext/Errno/Errno_pm.PL perl-5.20.0/ext/Errno/Errno_pm.PL
|
||||
--- perl-5.20.0-orig/ext/Errno/Errno_pm.PL 2014-05-26 15:34:20.000000000 +0200
|
||||
+++ perl-5.20.0/ext/Errno/Errno_pm.PL 2014-06-25 10:31:24.317970047 +0200
|
||||
@@ -126,11 +126,7 @@
|
||||
if ($dep =~ /(\S+errno\.h)/) {
|
||||
$file{$1} = 1;
|
||||
}
|
||||
- } elsif ($^O eq 'linux' &&
|
||||
- $Config{gccversion} ne '' &&
|
||||
- $Config{gccversion} !~ /intel/i
|
||||
- # might be using, say, Intel's icc
|
||||
- ) {
|
||||
+ } elsif (0) {
|
||||
# When cross-compiling we may store a path for gcc's "sysroot" option:
|
||||
my $sysroot = $Config{sysroot} || '';
|
||||
# Some Linuxes have weird errno.hs which generate
|
||||
Only in perl-5.20.0/ext/Errno: Errno_pm.PL.orig
|
||||
diff -ru -x '*~' -x '*.rej' perl-5.20.0-orig/hints/freebsd.sh perl-5.20.0/hints/freebsd.sh
|
||||
--- perl-5.20.0-orig/hints/freebsd.sh 2014-01-31 22:55:51.000000000 +0100
|
||||
+++ perl-5.20.0/hints/freebsd.sh 2014-06-25 10:25:53.263964680 +0200
|
||||
@@ -119,21 +119,21 @@
|
||||
objformat=`/usr/bin/objformat`
|
||||
if [ x$objformat = xaout ]; then
|
||||
if [ -e /usr/lib/aout ]; then
|
||||
- libpth="/usr/lib/aout /usr/local/lib /usr/lib"
|
||||
- glibpth="/usr/lib/aout /usr/local/lib /usr/lib"
|
||||
+ libpth=""
|
||||
+ glibpth=""
|
||||
fi
|
||||
lddlflags='-Bshareable'
|
||||
else
|
||||
- libpth="/usr/lib /usr/local/lib"
|
||||
- glibpth="/usr/lib /usr/local/lib"
|
||||
+ libpth=""
|
||||
+ glibpth=""
|
||||
ldflags="-Wl,-E "
|
||||
lddlflags="-shared "
|
||||
fi
|
||||
cccdlflags='-DPIC -fPIC'
|
||||
;;
|
||||
*)
|
||||
- libpth="/usr/lib /usr/local/lib"
|
||||
- glibpth="/usr/lib /usr/local/lib"
|
||||
+ libpth=""
|
||||
+ glibpth=""
|
||||
ldflags="-Wl,-E "
|
||||
lddlflags="-shared "
|
||||
cccdlflags='-DPIC -fPIC'
|
||||
diff -ru -x '*~' -x '*.rej' perl-5.20.0-orig/hints/linux.sh perl-5.20.0/hints/linux.sh
|
||||
--- perl-5.20.0-orig/hints/linux.sh 2014-05-26 15:34:20.000000000 +0200
|
||||
+++ perl-5.20.0/hints/linux.sh 2014-06-25 10:33:47.354883843 +0200
|
||||
@@ -150,25 +150,6 @@
|
||||
;;
|
||||
esac
|
||||
|
||||
-# Ubuntu 11.04 (and later, presumably) doesn't keep most libraries
|
||||
-# (such as -lm) in /lib or /usr/lib. So we have to ask gcc to tell us
|
||||
-# where to look. We don't want gcc's own libraries, however, so we
|
||||
-# filter those out.
|
||||
-# This could be conditional on Unbuntu, but other distributions may
|
||||
-# follow suit, and this scheme seems to work even on rather old gcc's.
|
||||
-# This unconditionally uses gcc because even if the user is using another
|
||||
-# compiler, we still need to find the math library and friends, and I don't
|
||||
-# know how other compilers will cope with that situation.
|
||||
-# Morever, if the user has their own gcc earlier in $PATH than the system gcc,
|
||||
-# we don't want its libraries. So we try to prefer the system gcc
|
||||
-# Still, as an escape hatch, allow Configure command line overrides to
|
||||
-# plibpth to bypass this check.
|
||||
-if [ -x /usr/bin/gcc ] ; then
|
||||
- gcc=/usr/bin/gcc
|
||||
-else
|
||||
- gcc=gcc
|
||||
-fi
|
||||
-
|
||||
case "$plibpth" in
|
||||
'') plibpth=`LANG=C LC_ALL=C $gcc $ccflags $ldflags -print-search-dirs | grep libraries |
|
||||
cut -f2- -d= | tr ':' $trnl | grep -v 'gcc' | sed -e 's:/$::'`
|
||||
@@ -178,32 +159,6 @@
|
||||
;;
|
||||
esac
|
||||
|
||||
-case "$libc" in
|
||||
-'')
|
||||
-# If you have glibc, then report the version for ./myconfig bug reporting.
|
||||
-# (Configure doesn't need to know the specific version since it just uses
|
||||
-# gcc to load the library for all tests.)
|
||||
-# We don't use __GLIBC__ and __GLIBC_MINOR__ because they
|
||||
-# are insufficiently precise to distinguish things like
|
||||
-# libc-2.0.6 and libc-2.0.7.
|
||||
- for p in $plibpth
|
||||
- do
|
||||
- for trylib in libc.so.6 libc.so
|
||||
- do
|
||||
- if $test -e $p/$trylib; then
|
||||
- libc=`ls -l $p/$trylib | awk '{print $NF}'`
|
||||
- if $test "X$libc" != X; then
|
||||
- break
|
||||
- fi
|
||||
- fi
|
||||
- done
|
||||
- if $test "X$libc" != X; then
|
||||
- break
|
||||
- fi
|
||||
- done
|
||||
- ;;
|
||||
-esac
|
||||
-
|
||||
# Are we using ELF? Thanks to Kenneth Albanowski <kjahds@kjahds.com>
|
||||
# for this test.
|
||||
cat >try.c <<'EOM'
|
||||
@@ -367,33 +322,6 @@
|
||||
;;
|
||||
esac
|
||||
|
||||
-# SuSE8.2 has /usr/lib/libndbm* which are ld scripts rather than
|
||||
-# true libraries. The scripts cause binding against static
|
||||
-# version of -lgdbm which is a bad idea. So if we have 'nm'
|
||||
-# make sure it can read the file
|
||||
-# NI-S 2003/08/07
|
||||
-case "$nm" in
|
||||
- '') ;;
|
||||
- *)
|
||||
- for p in $plibpth
|
||||
- do
|
||||
- if $test -r $p/libndbm.so; then
|
||||
- if $nm $p/libndbm.so >/dev/null 2>&1 ; then
|
||||
- echo 'Your shared -lndbm seems to be a real library.'
|
||||
- _libndbm_real=1
|
||||
- break
|
||||
- fi
|
||||
- fi
|
||||
- done
|
||||
- if $test "X$_libndbm_real" = X; then
|
||||
- echo 'Your shared -lndbm is not a real library.'
|
||||
- set `echo X "$libswanted "| sed -e 's/ ndbm / /'`
|
||||
- shift
|
||||
- libswanted="$*"
|
||||
- fi
|
||||
- ;;
|
||||
-esac
|
||||
-
|
||||
# Linux on Synology.
|
||||
if [ -f /etc/synoinfo.conf -a -d /usr/syno ]; then
|
||||
# Tested on Synology DS213 and DS413
|
||||
5
pkgs/development/interpreters/perl/5.22/setup-hook.sh
Normal file
5
pkgs/development/interpreters/perl/5.22/setup-hook.sh
Normal file
@@ -0,0 +1,5 @@
|
||||
addPerlLibPath () {
|
||||
addToSearchPath PERL5LIB $1/lib/perl5/site_perl
|
||||
}
|
||||
|
||||
envHooks+=(addPerlLibPath)
|
||||
@@ -1,19 +0,0 @@
|
||||
{ stdenv }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "perl";
|
||||
|
||||
unpackPhase = "true";
|
||||
|
||||
installPhase =
|
||||
''
|
||||
mkdir -p $out/bin
|
||||
ln -s /usr/bin/perl $out/bin
|
||||
'';
|
||||
|
||||
setupHook = ./setup-hook.sh;
|
||||
|
||||
libPrefix = "lib/perl5/site_perl/5.10/i686-cygwin";
|
||||
|
||||
passthru.libPrefix = libPrefix;
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
addPerlLibPath () {
|
||||
addToSearchPath PERL5LIB $1/@libPrefix@
|
||||
}
|
||||
|
||||
envHooks+=(addPerlLibPath)
|
||||
@@ -1,6 +0,0 @@
|
||||
{ callPackage, apacheHttpd }:
|
||||
callPackage ./generic.nix {
|
||||
phpVersion = "5.4.40";
|
||||
sha = "06m5b3hw5kgwvnarhiylymadj504xalpczagr662vjrwmklgz628";
|
||||
apacheHttpd = apacheHttpd;
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
{ callPackage, apacheHttpd }:
|
||||
callPackage ./generic.nix {
|
||||
phpVersion = "5.5.21";
|
||||
sha = "1zl3valcak5hb4fmivpfa66arwpvi19js1d5cxq5vjn4fncl5sb2";
|
||||
apacheHttpd = apacheHttpd;
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
{ callPackage, apacheHttpd }:
|
||||
callPackage ./generic.nix {
|
||||
phpVersion = "5.6.6";
|
||||
sha = "0k5vml94p5809bk2d5a8lhzf3h7f1xgs75b9qy6ikj70cndmqqh9";
|
||||
apacheHttpd = apacheHttpd;
|
||||
}
|
||||
308
pkgs/development/interpreters/php/default.nix
Normal file
308
pkgs/development/interpreters/php/default.nix
Normal file
@@ -0,0 +1,308 @@
|
||||
{ lib, stdenv, fetchurl, composableDerivation, autoconf, automake, flex, bison
|
||||
, mysql, libxml2, readline, zlib, curl, postgresql, gettext
|
||||
, openssl, pkgconfig, sqlite, config, libjpeg, libpng, freetype
|
||||
, libxslt, libmcrypt, bzip2, icu, openldap, cyrus_sasl, libmhash, freetds
|
||||
, uwimap, pam, gmp, apacheHttpd }:
|
||||
|
||||
let
|
||||
|
||||
generic =
|
||||
{ version, sha256, url ? "http://www.php.net/distributions/php-${version}.tar.bz2" }:
|
||||
|
||||
let php7 = lib.versionAtLeast version "7.0"; in
|
||||
|
||||
composableDerivation.composableDerivation {} (fixed: {
|
||||
|
||||
inherit version;
|
||||
|
||||
name = "php-${version}";
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
buildInputs = [ flex bison pkgconfig ];
|
||||
|
||||
flags = {
|
||||
|
||||
# much left to do here...
|
||||
|
||||
# SAPI modules:
|
||||
|
||||
apxs2 = {
|
||||
configureFlags = ["--with-apxs2=${apacheHttpd}/bin/apxs"];
|
||||
buildInputs = [apacheHttpd];
|
||||
};
|
||||
|
||||
# Extensions
|
||||
imap = {
|
||||
configureFlags = [
|
||||
"--with-imap=${uwimap}"
|
||||
"--with-imap-ssl"
|
||||
];
|
||||
buildInputs = [ uwimap openssl pam ];
|
||||
};
|
||||
|
||||
ldap = {
|
||||
configureFlags = ["--with-ldap=${openldap}"];
|
||||
buildInputs = [openldap cyrus_sasl openssl];
|
||||
};
|
||||
|
||||
mhash = {
|
||||
configureFlags = ["--with-mhash"];
|
||||
buildInputs = [libmhash];
|
||||
};
|
||||
|
||||
curl = {
|
||||
configureFlags = ["--with-curl=${curl}"];
|
||||
buildInputs = [curl openssl];
|
||||
};
|
||||
|
||||
curlWrappers = {
|
||||
configureFlags = ["--with-curlwrappers"];
|
||||
};
|
||||
|
||||
zlib = {
|
||||
configureFlags = ["--with-zlib=${zlib}"];
|
||||
buildInputs = [zlib];
|
||||
};
|
||||
|
||||
libxml2 = {
|
||||
configureFlags = [
|
||||
"--with-libxml-dir=${libxml2}"
|
||||
];
|
||||
buildInputs = [ libxml2 ];
|
||||
};
|
||||
|
||||
pcntl = {
|
||||
configureFlags = [ "--enable-pcntl" ];
|
||||
};
|
||||
|
||||
readline = {
|
||||
configureFlags = ["--with-readline=${readline}"];
|
||||
buildInputs = [ readline ];
|
||||
};
|
||||
|
||||
sqlite = {
|
||||
configureFlags = ["--with-pdo-sqlite=${sqlite}"];
|
||||
buildInputs = [ sqlite ];
|
||||
};
|
||||
|
||||
postgresql = {
|
||||
configureFlags = ["--with-pgsql=${postgresql}"];
|
||||
buildInputs = [ postgresql ];
|
||||
};
|
||||
|
||||
pdo_pgsql = {
|
||||
configureFlags = ["--with-pdo-pgsql=${postgresql}"];
|
||||
buildInputs = [ postgresql ];
|
||||
};
|
||||
|
||||
mysql = {
|
||||
configureFlags = ["--with-mysql=${mysql.lib}"];
|
||||
buildInputs = [ mysql.lib ];
|
||||
};
|
||||
|
||||
mysqli = {
|
||||
configureFlags = ["--with-mysqli=${mysql.lib}/bin/mysql_config"];
|
||||
buildInputs = [ mysql.lib ];
|
||||
};
|
||||
|
||||
mysqli_embedded = {
|
||||
configureFlags = ["--enable-embedded-mysqli"];
|
||||
depends = "mysqli";
|
||||
assertion = fixed.mysqliSupport;
|
||||
};
|
||||
|
||||
pdo_mysql = {
|
||||
configureFlags = ["--with-pdo-mysql=${mysql.lib}"];
|
||||
buildInputs = [ mysql.lib ];
|
||||
};
|
||||
|
||||
bcmath = {
|
||||
configureFlags = ["--enable-bcmath"];
|
||||
};
|
||||
|
||||
gd = {
|
||||
# FIXME: Our own gd package doesn't work, see https://bugs.php.net/bug.php?id=60108.
|
||||
configureFlags = [
|
||||
"--with-gd"
|
||||
"--with-freetype-dir=${freetype}"
|
||||
"--with-png-dir=${libpng}"
|
||||
"--with-jpeg-dir=${libjpeg}"
|
||||
];
|
||||
buildInputs = [ libpng libjpeg freetype ];
|
||||
};
|
||||
|
||||
gmp = {
|
||||
configureFlags = ["--with-gmp=${gmp}"];
|
||||
buildInputs = [ gmp ];
|
||||
};
|
||||
|
||||
soap = {
|
||||
configureFlags = ["--enable-soap"];
|
||||
};
|
||||
|
||||
sockets = {
|
||||
configureFlags = ["--enable-sockets"];
|
||||
};
|
||||
|
||||
openssl = {
|
||||
configureFlags = ["--with-openssl=${openssl}"];
|
||||
buildInputs = [openssl];
|
||||
};
|
||||
|
||||
mbstring = {
|
||||
configureFlags = ["--enable-mbstring"];
|
||||
};
|
||||
|
||||
gettext = {
|
||||
configureFlags = ["--with-gettext=${gettext}"];
|
||||
buildInputs = [gettext];
|
||||
};
|
||||
|
||||
intl = {
|
||||
configureFlags = ["--enable-intl"];
|
||||
buildInputs = [icu];
|
||||
};
|
||||
|
||||
exif = {
|
||||
configureFlags = ["--enable-exif"];
|
||||
};
|
||||
|
||||
xsl = {
|
||||
configureFlags = ["--with-xsl=${libxslt}"];
|
||||
buildInputs = [libxslt];
|
||||
};
|
||||
|
||||
mcrypt = let libmcrypt' = libmcrypt.override { disablePosixThreads = true; }; in {
|
||||
configureFlags = ["--with-mcrypt=${libmcrypt'}"];
|
||||
buildInputs = [libmcrypt'];
|
||||
};
|
||||
|
||||
bz2 = {
|
||||
configureFlags = ["--with-bz2=${bzip2}"];
|
||||
buildInputs = [bzip2];
|
||||
};
|
||||
|
||||
zip = {
|
||||
configureFlags = ["--enable-zip"];
|
||||
};
|
||||
|
||||
ftp = {
|
||||
configureFlags = ["--enable-ftp"];
|
||||
};
|
||||
|
||||
fpm = {
|
||||
configureFlags = ["--enable-fpm"];
|
||||
};
|
||||
|
||||
mssql = stdenv.lib.optionalAttrs (!stdenv.isDarwin) {
|
||||
configureFlags = ["--with-mssql=${freetds}"];
|
||||
buildInputs = [freetds];
|
||||
};
|
||||
|
||||
zts = {
|
||||
configureFlags = ["--enable-maintainer-zts"];
|
||||
};
|
||||
|
||||
calendar = {
|
||||
configureFlags = ["--enable-calendar"];
|
||||
};
|
||||
};
|
||||
|
||||
cfg = {
|
||||
imapSupport = config.php.imap or true;
|
||||
ldapSupport = config.php.ldap or true;
|
||||
mhashSupport = config.php.mhash or true;
|
||||
mysqlSupport = (!php7) && (config.php.mysql or true);
|
||||
mysqliSupport = config.php.mysqli or true;
|
||||
pdo_mysqlSupport = config.php.pdo_mysql or true;
|
||||
libxml2Support = config.php.libxml2 or true;
|
||||
apxs2Support = config.php.apxs2 or true;
|
||||
bcmathSupport = config.php.bcmath or true;
|
||||
socketsSupport = config.php.sockets or true;
|
||||
curlSupport = config.php.curl or true;
|
||||
curlWrappersSupport = (!php7) && (config.php.curlWrappers or true);
|
||||
gettextSupport = config.php.gettext or true;
|
||||
pcntlSupport = config.php.pcntl or true;
|
||||
postgresqlSupport = config.php.postgresql or true;
|
||||
pdo_pgsqlSupport = config.php.pdo_pgsql or true;
|
||||
readlineSupport = config.php.readline or true;
|
||||
sqliteSupport = config.php.sqlite or true;
|
||||
soapSupport = config.php.soap or true;
|
||||
zlibSupport = config.php.zlib or true;
|
||||
opensslSupport = config.php.openssl or true;
|
||||
mbstringSupport = config.php.mbstring or true;
|
||||
gdSupport = config.php.gd or true;
|
||||
intlSupport = config.php.intl or true;
|
||||
exifSupport = config.php.exif or true;
|
||||
xslSupport = config.php.xsl or false;
|
||||
mcryptSupport = config.php.mcrypt or true;
|
||||
bz2Support = config.php.bz2 or false;
|
||||
zipSupport = config.php.zip or true;
|
||||
ftpSupport = config.php.ftp or true;
|
||||
fpmSupport = config.php.fpm or true;
|
||||
gmpSupport = config.php.gmp or true;
|
||||
mssqlSupport = (!php7) && (config.php.mssql or (!stdenv.isDarwin));
|
||||
ztsSupport = config.php.zts or false;
|
||||
calendarSupport = config.php.calendar or true;
|
||||
};
|
||||
|
||||
configurePhase = ''
|
||||
# Don't record the configure flags since this causes unnecessary
|
||||
# runtime dependencies.
|
||||
for i in main/build-defs.h.in scripts/php-config.in; do
|
||||
substituteInPlace $i \
|
||||
--replace '@CONFIGURE_COMMAND@' '(omitted)' \
|
||||
--replace '@CONFIGURE_OPTIONS@' "" \
|
||||
--replace '@PHP_LDFLAGS@' ""
|
||||
done
|
||||
|
||||
iniFile=$out/etc/php-recommended.ini
|
||||
[[ -z "$libxml2" ]] || export PATH=$PATH:$libxml2/bin
|
||||
./configure --with-config-file-scan-dir=/etc --with-config-file-path=$out/etc --prefix=$out $configureFlags
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
unset installPhase; installPhase;
|
||||
cp php.ini-production $iniFile
|
||||
'';
|
||||
|
||||
src = fetchurl {
|
||||
inherit url sha256;
|
||||
};
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "An HTML-embedded scripting language";
|
||||
homepage = http://www.php.net/;
|
||||
license = stdenv.lib.licenses.php301;
|
||||
maintainers = with maintainers; [ globin ];
|
||||
};
|
||||
|
||||
patches = if !php7 then [ ./fix-paths.patch ] else [ ./fix-paths-php7.patch ];
|
||||
|
||||
});
|
||||
|
||||
in {
|
||||
|
||||
php54 = generic {
|
||||
version = "5.4.45";
|
||||
sha256 = "10k59j7zjx2mrldmgfvjrrcg2cslr2m68azslspcz5acanqjh3af";
|
||||
};
|
||||
|
||||
php55 = generic {
|
||||
version = "5.5.29";
|
||||
sha256 = "0imr8c48ffjhc2zm96ndq92z3736xrm12hd5c1lssz67xiwybkpv";
|
||||
};
|
||||
|
||||
php56 = generic {
|
||||
version = "5.6.13";
|
||||
sha256 = "14zq40j229salk0wp7inl4jvj3xff03bz7g5xn8ipd5skiy86n33";
|
||||
};
|
||||
|
||||
php70 = lib.lowPrio (generic {
|
||||
version = "7.0.0beta1";
|
||||
url = "https://downloads.php.net/~ab/php-7.0.0beta1.tar.bz2";
|
||||
sha256 = "1pj3ysfhswg2r370ivp33fv9zbcl3yvhmxgnc731k08hv6hmd984";
|
||||
});
|
||||
|
||||
}
|
||||
23
pkgs/development/interpreters/php/fix-paths-php7.patch
Normal file
23
pkgs/development/interpreters/php/fix-paths-php7.patch
Normal file
@@ -0,0 +1,23 @@
|
||||
--- php-7.0.0beta1/configure 2015-07-10 12:11:41.810045613 +0000
|
||||
+++ php-7.0.0beta1-new/configure 2015-07-17 16:10:21.775528267 +0000
|
||||
@@ -6172,7 +6172,7 @@
|
||||
as_fn_error $? "Please note that Apache version >= 2.0.44 is required" "$LINENO" 5
|
||||
fi
|
||||
|
||||
- APXS_LIBEXECDIR='$(INSTALL_ROOT)'`$APXS -q LIBEXECDIR`
|
||||
+ APXS_LIBEXECDIR="$prefix/modules"
|
||||
if test -z `$APXS -q SYSCONFDIR`; then
|
||||
INSTALL_IT="\$(mkinstalldirs) '$APXS_LIBEXECDIR' && \
|
||||
$APXS -S LIBEXECDIR='$APXS_LIBEXECDIR' \
|
||||
@@ -37303,9 +37303,7 @@
|
||||
|
||||
|
||||
if test "$PHP_GETTEXT" != "no"; then
|
||||
- for i in $PHP_GETTEXT /usr/local /usr; do
|
||||
- test -r $i/include/libintl.h && GETTEXT_DIR=$i && break
|
||||
- done
|
||||
+ GETTEXT_DIR=$PHP_GETTEXT
|
||||
|
||||
if test -z "$GETTEXT_DIR"; then
|
||||
as_fn_error $? "Cannot locate header file libintl.h" "$LINENO" 5
|
||||
|
||||
@@ -1,283 +0,0 @@
|
||||
{ stdenv, fetchurl, composableDerivation, autoconf, automake, flex, bison
|
||||
, mysql, libxml2, readline, zlib, curl, postgresql, gettext
|
||||
, openssl, pkgconfig, sqlite, config, libjpeg, libpng, freetype
|
||||
, libxslt, libmcrypt, bzip2, icu, openldap, cyrus_sasl, libmhash, freetds
|
||||
, uwimap, pam, gmp
|
||||
|
||||
, phpVersion, apacheHttpd, sha }:
|
||||
|
||||
let
|
||||
libmcryptOverride = libmcrypt.override { disablePosixThreads = true; };
|
||||
in
|
||||
|
||||
composableDerivation.composableDerivation {} ( fixed : let inherit (fixed.fixed) version; in {
|
||||
|
||||
version = "${phpVersion}";
|
||||
|
||||
name = "php-${version}";
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
buildInputs = ["flex" "bison" "pkgconfig"];
|
||||
|
||||
flags = {
|
||||
|
||||
# much left to do here...
|
||||
|
||||
# SAPI modules:
|
||||
|
||||
apxs2 = {
|
||||
configureFlags = ["--with-apxs2=${apacheHttpd}/bin/apxs"];
|
||||
buildInputs = [apacheHttpd];
|
||||
};
|
||||
|
||||
# Extensions
|
||||
imap = {
|
||||
configureFlags = [
|
||||
"--with-imap=${uwimap}"
|
||||
"--with-imap-ssl"
|
||||
];
|
||||
buildInputs = [ uwimap openssl pam ];
|
||||
};
|
||||
|
||||
ldap = {
|
||||
configureFlags = ["--with-ldap=${openldap}"];
|
||||
buildInputs = [openldap cyrus_sasl openssl];
|
||||
};
|
||||
|
||||
mhash = {
|
||||
configureFlags = ["--with-mhash"];
|
||||
buildInputs = [libmhash];
|
||||
};
|
||||
|
||||
curl = {
|
||||
configureFlags = ["--with-curl=${curl}"];
|
||||
buildInputs = [curl openssl];
|
||||
};
|
||||
|
||||
curlWrappers = {
|
||||
configureFlags = ["--with-curlwrappers"];
|
||||
};
|
||||
|
||||
zlib = {
|
||||
configureFlags = ["--with-zlib=${zlib}"];
|
||||
buildInputs = [zlib];
|
||||
};
|
||||
|
||||
libxml2 = {
|
||||
configureFlags = [
|
||||
"--with-libxml-dir=${libxml2}"
|
||||
];
|
||||
buildInputs = [ libxml2 ];
|
||||
};
|
||||
|
||||
pcntl = {
|
||||
configureFlags = [ "--enable-pcntl" ];
|
||||
};
|
||||
|
||||
readline = {
|
||||
configureFlags = ["--with-readline=${readline}"];
|
||||
buildInputs = [ readline ];
|
||||
};
|
||||
|
||||
sqlite = {
|
||||
configureFlags = ["--with-pdo-sqlite=${sqlite}"];
|
||||
buildInputs = [ sqlite ];
|
||||
};
|
||||
|
||||
postgresql = {
|
||||
configureFlags = ["--with-pgsql=${postgresql}"];
|
||||
buildInputs = [ postgresql ];
|
||||
};
|
||||
|
||||
pdo_pgsql = {
|
||||
configureFlags = ["--with-pdo-pgsql=${postgresql}"];
|
||||
buildInputs = [ postgresql ];
|
||||
};
|
||||
|
||||
mysql = {
|
||||
configureFlags = ["--with-mysql=${mysql.lib}"];
|
||||
buildInputs = [ mysql.lib ];
|
||||
};
|
||||
|
||||
mysqli = {
|
||||
configureFlags = ["--with-mysqli=${mysql.lib}/bin/mysql_config"];
|
||||
buildInputs = [ mysql.lib ];
|
||||
};
|
||||
|
||||
mysqli_embedded = {
|
||||
configureFlags = ["--enable-embedded-mysqli"];
|
||||
depends = "mysqli";
|
||||
assertion = fixed.mysqliSupport;
|
||||
};
|
||||
|
||||
pdo_mysql = {
|
||||
configureFlags = ["--with-pdo-mysql=${mysql.lib}"];
|
||||
buildInputs = [ mysql.lib ];
|
||||
};
|
||||
|
||||
bcmath = {
|
||||
configureFlags = ["--enable-bcmath"];
|
||||
};
|
||||
|
||||
gd = {
|
||||
# FIXME: Our own gd package doesn't work, see https://bugs.php.net/bug.php?id=60108.
|
||||
configureFlags = [
|
||||
"--with-gd"
|
||||
"--with-freetype-dir=${freetype}"
|
||||
"--with-png-dir=${libpng}"
|
||||
"--with-jpeg-dir=${libjpeg}"
|
||||
];
|
||||
buildInputs = [ libpng libjpeg freetype ];
|
||||
};
|
||||
|
||||
gmp = {
|
||||
configureFlags = ["--with-gmp=${gmp}"];
|
||||
buildInputs = [ gmp ];
|
||||
};
|
||||
|
||||
soap = {
|
||||
configureFlags = ["--enable-soap"];
|
||||
};
|
||||
|
||||
sockets = {
|
||||
configureFlags = ["--enable-sockets"];
|
||||
};
|
||||
|
||||
openssl = {
|
||||
configureFlags = ["--with-openssl=${openssl}"];
|
||||
buildInputs = ["openssl"];
|
||||
};
|
||||
|
||||
mbstring = {
|
||||
configureFlags = ["--enable-mbstring"];
|
||||
};
|
||||
|
||||
gettext = {
|
||||
configureFlags = ["--with-gettext=${gettext}"];
|
||||
buildInputs = [gettext];
|
||||
};
|
||||
|
||||
intl = {
|
||||
configureFlags = ["--enable-intl"];
|
||||
buildInputs = [icu];
|
||||
};
|
||||
|
||||
exif = {
|
||||
configureFlags = ["--enable-exif"];
|
||||
};
|
||||
|
||||
xsl = {
|
||||
configureFlags = ["--with-xsl=${libxslt}"];
|
||||
buildInputs = [libxslt];
|
||||
};
|
||||
|
||||
mcrypt = {
|
||||
configureFlags = ["--with-mcrypt=${libmcryptOverride}"];
|
||||
buildInputs = [libmcryptOverride];
|
||||
};
|
||||
|
||||
bz2 = {
|
||||
configureFlags = ["--with-bz2=${bzip2}"];
|
||||
buildInputs = [bzip2];
|
||||
};
|
||||
|
||||
zip = {
|
||||
configureFlags = ["--enable-zip"];
|
||||
};
|
||||
|
||||
ftp = {
|
||||
configureFlags = ["--enable-ftp"];
|
||||
};
|
||||
|
||||
fpm = {
|
||||
configureFlags = ["--enable-fpm"];
|
||||
};
|
||||
|
||||
mssql = stdenv.lib.optionalAttrs (!stdenv.isDarwin) {
|
||||
configureFlags = ["--with-mssql=${freetds}"];
|
||||
buildInputs = [freetds];
|
||||
};
|
||||
|
||||
zts = {
|
||||
configureFlags = ["--enable-maintainer-zts"];
|
||||
};
|
||||
|
||||
calendar = {
|
||||
configureFlags = ["--enable-calendar"];
|
||||
};
|
||||
};
|
||||
|
||||
cfg = {
|
||||
imapSupport = config.php.imap or true;
|
||||
ldapSupport = config.php.ldap or true;
|
||||
mhashSupport = config.php.mhash or true;
|
||||
mysqlSupport = config.php.mysql or true;
|
||||
mysqliSupport = config.php.mysqli or true;
|
||||
pdo_mysqlSupport = config.php.pdo_mysql or true;
|
||||
libxml2Support = config.php.libxml2 or true;
|
||||
apxs2Support = config.php.apxs2 or true;
|
||||
bcmathSupport = config.php.bcmath or true;
|
||||
socketsSupport = config.php.sockets or true;
|
||||
curlSupport = config.php.curl or true;
|
||||
curlWrappersSupport = config.php.curlWrappers or true;
|
||||
gettextSupport = config.php.gettext or true;
|
||||
pcntlSupport = config.php.pcntl or true;
|
||||
postgresqlSupport = config.php.postgresql or true;
|
||||
pdo_pgsqlSupport = config.php.pdo_pgsql or true;
|
||||
readlineSupport = config.php.readline or true;
|
||||
sqliteSupport = config.php.sqlite or true;
|
||||
soapSupport = config.php.soap or true;
|
||||
zlibSupport = config.php.zlib or true;
|
||||
opensslSupport = config.php.openssl or true;
|
||||
mbstringSupport = config.php.mbstring or true;
|
||||
gdSupport = config.php.gd or true;
|
||||
intlSupport = config.php.intl or true;
|
||||
exifSupport = config.php.exif or true;
|
||||
xslSupport = config.php.xsl or false;
|
||||
mcryptSupport = config.php.mcrypt or true;
|
||||
bz2Support = config.php.bz2 or false;
|
||||
zipSupport = config.php.zip or true;
|
||||
ftpSupport = config.php.ftp or true;
|
||||
fpmSupport = config.php.fpm or true;
|
||||
gmpSupport = config.php.gmp or true;
|
||||
mssqlSupport = config.php.mssql or (!stdenv.isDarwin);
|
||||
ztsSupport = config.php.zts or false;
|
||||
calendarSupport = config.php.calendar or true;
|
||||
};
|
||||
|
||||
configurePhase = ''
|
||||
# Don't record the configure flags since this causes unnecessary
|
||||
# runtime dependencies.
|
||||
for i in main/build-defs.h.in scripts/php-config.in; do
|
||||
substituteInPlace $i \
|
||||
--replace '@CONFIGURE_COMMAND@' '(omitted)' \
|
||||
--replace '@CONFIGURE_OPTIONS@' "" \
|
||||
--replace '@PHP_LDFLAGS@' ""
|
||||
done
|
||||
|
||||
iniFile=$out/etc/php-recommended.ini
|
||||
[[ -z "$libxml2" ]] || export PATH=$PATH:$libxml2/bin
|
||||
./configure --with-config-file-scan-dir=/etc --with-config-file-path=$out/etc --prefix=$out $configureFlags
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
unset installPhase; installPhase;
|
||||
cp php.ini-production $iniFile
|
||||
'';
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://www.php.net/distributions/php-${version}.tar.bz2";
|
||||
sha256 = sha;
|
||||
};
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "An HTML-embedded scripting language";
|
||||
homepage = http://www.php.net/;
|
||||
license = stdenv.lib.licenses.php301;
|
||||
maintainers = with maintainers; [ globin ];
|
||||
};
|
||||
|
||||
patches = [ ./fix-paths.patch ];
|
||||
|
||||
})
|
||||
53
pkgs/development/interpreters/picoc/default.nix
Normal file
53
pkgs/development/interpreters/picoc/default.nix
Normal file
@@ -0,0 +1,53 @@
|
||||
{ stdenv, fetchFromGitHub, readline }:
|
||||
|
||||
let version = "2015-05-04"; in
|
||||
stdenv.mkDerivation {
|
||||
name = "picoc-${version}";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
sha256 = "01w3jwl0vn9fsmh7p20ad4nl9ljzgfn576yvncd9pk9frx3pd8y4";
|
||||
rev = "4555e8456f020554bcac50751fbb9b36c7d8c13b";
|
||||
repo = "picoc";
|
||||
owner = "zsaleeba";
|
||||
};
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
inherit version;
|
||||
description = "Very small C interpreter for scripting";
|
||||
longDescription = ''
|
||||
PicoC is a very small C interpreter for scripting. It was originally
|
||||
written as a script language for a UAV's on-board flight system. It's
|
||||
also very suitable for other robotic, embedded and non-embedded
|
||||
applications. The core C source code is around 3500 lines of code. It's
|
||||
not intended to be a complete implementation of ISO C but it has all the
|
||||
essentials. When compiled it only takes a few k of code space and is also
|
||||
very sparing of data space. This means it can work well in small embedded
|
||||
devices.
|
||||
'';
|
||||
homepage = https://github.com/zsaleeba/picoc;
|
||||
downloadPage = https://code.google.com/p/picoc/downloads/list;
|
||||
license = licenses.bsd3;
|
||||
platforms = with platforms; linux;
|
||||
maintainers = with maintainers; [ nckx ];
|
||||
};
|
||||
|
||||
buildInputs = [ readline ];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace Makefile --replace '`svnversion -n`' "${version}"
|
||||
'';
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
# Tests are currently broken on i686 see
|
||||
# http://hydra.nixos.org/build/24003763/nixlog/1
|
||||
doCheck = if stdenv.isi686 then false else true;
|
||||
checkTarget = "test";
|
||||
|
||||
installPhase = ''
|
||||
install -Dm755 picoc $out/bin/picoc
|
||||
|
||||
mkdir -p $out/include
|
||||
install -m644 *.h $out/include
|
||||
'';
|
||||
}
|
||||
@@ -1,66 +1,53 @@
|
||||
x@{builderDefsPackage
|
||||
, jdk /* only used in bootstrap */
|
||||
, ...}:
|
||||
builderDefsPackage
|
||||
(a :
|
||||
let
|
||||
helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++
|
||||
[];
|
||||
{ stdenv, fetchurl, jdk }:
|
||||
with stdenv.lib;
|
||||
|
||||
buildInputs = map (n: builtins.getAttr n x)
|
||||
(builtins.attrNames (builtins.removeAttrs x helperArgNames));
|
||||
sourceInfo = rec {
|
||||
baseName="picolisp";
|
||||
tarballBaseName="picoLisp";
|
||||
version="3.1.9";
|
||||
name="${baseName}-${version}";
|
||||
tarballName="${tarballBaseName}-${version}";
|
||||
extension="tgz";
|
||||
url="http://www.software-lab.de/${tarballName}.${extension}";
|
||||
sha256="1rhfd743ga9qsgn4h2aw1xcgrc7amsllli2zqg8cgm408vxkr6j1";
|
||||
stdenv.mkDerivation rec {
|
||||
name = "picoLisp-${version}";
|
||||
version = "3.1.11";
|
||||
src = fetchurl {
|
||||
url = "http://www.software-lab.de/${name}.tgz";
|
||||
sha256 = "01kgyz0lkz36lxvibv07qd06gwdxvvbain9f9cnya7a12kq3009i";
|
||||
};
|
||||
in
|
||||
rec {
|
||||
src = a.fetchurl {
|
||||
url = sourceInfo.url;
|
||||
sha256 = sourceInfo.sha256;
|
||||
};
|
||||
|
||||
inherit (sourceInfo) name version;
|
||||
inherit buildInputs;
|
||||
|
||||
/* doConfigure should be removed if not needed */
|
||||
phaseNames = ["doMake" "doDeploy"];
|
||||
|
||||
goSrcDir = if a.stdenv.system == "x86_64-linux" then
|
||||
"cd src64" else "cd src";
|
||||
makeFlags = [''PREFIX=$out''];
|
||||
|
||||
doDeploy = a.fullDepEntry (''
|
||||
buildInputs = optional stdenv.is64bit jdk;
|
||||
patchPhase = optionalString stdenv.isArm ''
|
||||
sed -i s/-m32//g Makefile
|
||||
cat >>Makefile <<EOF
|
||||
ext.o: ext.c
|
||||
\$(CC) \$(CFLAGS) -fPIC -D_OS='"\$(OS)"' \$*.c
|
||||
ht.o: ht.c
|
||||
\$(CC) \$(CFLAGS) -fPIC -D_OS='"\$(OS)"' \$*.c
|
||||
EOF
|
||||
'';
|
||||
sourceRoot = ''picoLisp/src${optionalString stdenv.is64bit "64"}'';
|
||||
installPhase = ''
|
||||
cd ..
|
||||
|
||||
sed -e "s@/usr/@$out/@g" -i bin/pil
|
||||
|
||||
mkdir -p "$out/share/picolisp" "$out/lib" "$out/bin"
|
||||
cp -r . "$out/share/picolisp/build-dir"
|
||||
ln -s "$out/share/picolisp/build-dir" "$out/lib/picolisp"
|
||||
ln -s "$out/lib/picolisp/bin/picolisp" "$out/bin/picolisp"
|
||||
'') ["minInit" "defEnsureDir" "doMake"];
|
||||
|
||||
|
||||
cat >"$out/bin/pil" <<EOF
|
||||
#! /bin/sh
|
||||
$out/bin/picolisp $out/lib/picolisp/lib.l @lib/misc.l @lib/btree.l @lib/db.l @lib/pilog.l
|
||||
EOF
|
||||
chmod +x "$out/bin/pil"
|
||||
|
||||
mkdir -p "$out/share/emacs"
|
||||
ln -s "$out/lib/picolisp/lib/el" "$out/share/emacs/site-lisp"
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "An interpreter for a small Lisp dialect with builtin DB";
|
||||
maintainers = with a.lib.maintainers;
|
||||
[
|
||||
raskin
|
||||
];
|
||||
platforms = with a.lib.platforms;
|
||||
linux;
|
||||
license = a.lib.licenses.mit;
|
||||
description = "A simple Lisp with an integrated database.";
|
||||
homepage = http://picolisp.com/;
|
||||
license = licenses.mit;
|
||||
platform = platforms.all;
|
||||
maintainers = with maintainers; [ raskin ];
|
||||
};
|
||||
|
||||
passthru = {
|
||||
updateInfo = {
|
||||
downloadPage = "http://www.software-lab.de/down.html";
|
||||
};
|
||||
};
|
||||
}) x
|
||||
|
||||
}
|
||||
|
||||
@@ -16,6 +16,12 @@ stdenv.mkDerivation rec {
|
||||
buildInputs = [ bison flex makeWrapper ];
|
||||
propagatedBuildInputs = [ llvm gmp mpfr readline ];
|
||||
|
||||
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 = ''
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
{ stdenv, fetchurl, zlib ? null, zlibSupport ? true, bzip2, pkgconfig, libffi
|
||||
, sqlite, openssl, ncurses, pythonFull, expat, tcl, tk, x11, libX11
|
||||
, sqlite, openssl, ncurses, pythonFull, expat, tcl, tk, xlibsWrapper, libX11
|
||||
, makeWrapper, callPackage, self }:
|
||||
|
||||
assert zlibSupport -> zlib != null;
|
||||
|
||||
let
|
||||
|
||||
majorVersion = "2.5";
|
||||
majorVersion = "2.6";
|
||||
version = "${majorVersion}.0";
|
||||
libPrefix = "pypy${majorVersion}";
|
||||
|
||||
@@ -18,10 +18,10 @@ let
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://bitbucket.org/pypy/pypy/get/release-${version}.tar.bz2";
|
||||
sha256 = "126zrsx6663n9w60018mii1z7cqb87iq9irnhp8z630mldallr4d";
|
||||
sha256 = "0xympj874cnjpxj68xm5gllq2f8bbvz8hr0md8mh1yd6fgzzxibh";
|
||||
};
|
||||
|
||||
buildInputs = [ bzip2 openssl pkgconfig pythonFull libffi ncurses expat sqlite tk tcl x11 libX11 makeWrapper ]
|
||||
buildInputs = [ bzip2 openssl pkgconfig pythonFull libffi ncurses expat sqlite tk tcl xlibsWrapper libX11 makeWrapper ]
|
||||
++ stdenv.lib.optional (stdenv ? cc && stdenv.cc.libc != null) stdenv.cc.libc
|
||||
++ stdenv.lib.optional zlibSupport zlib;
|
||||
|
||||
@@ -49,16 +49,27 @@ let
|
||||
--replace "libraries=['curses']" "libraries=['ncurses']"
|
||||
|
||||
# tkinter hints
|
||||
substituteInPlace lib_pypy/_tkinter/tklib.py \
|
||||
substituteInPlace lib_pypy/_tkinter/tklib_build.py \
|
||||
--replace "'/usr/include/tcl'" "'${tk}/include', '${tcl}/include'" \
|
||||
--replace "linklibs=['tcl', 'tk']" "linklibs=['${tcl.libPrefix}', '${tk.libPrefix}']" \
|
||||
--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.py
|
||||
sed -i "s@libraries=\['sqlite3'\]\$@libraries=['sqlite3'], include_dirs=['${sqlite}/include'], library_dirs=['${sqlite}/lib']@" lib_pypy/_sqlite3_build.py
|
||||
'';
|
||||
|
||||
setupHook = ./setup-hook.sh;
|
||||
|
||||
postBuild = ''
|
||||
cd ./lib_pypy
|
||||
../pypy-c ./_audioop_build.py
|
||||
../pypy-c ./_curses_build.py
|
||||
../pypy-c ./_pwdgrp_build.py
|
||||
../pypy-c ./_sqlite3_build.py
|
||||
../pypy-c ./_syslog_build.py
|
||||
../pypy-c ./_tkinter/tklib_build.py
|
||||
cd ..
|
||||
'';
|
||||
|
||||
doCheck = true;
|
||||
checkPhase = ''
|
||||
export TERMINFO="${ncurses}/share/terminfo/";
|
||||
@@ -89,7 +100,12 @@ let
|
||||
ln -s $out/pypy-c/include $out/include/${libPrefix}
|
||||
ln -s $out/pypy-c/lib-python/${pythonVersion} $out/lib/${libPrefix}
|
||||
|
||||
wrapProgram "$out/bin/pypy" \
|
||||
# We must wrap the original, not the symlink.
|
||||
# PyPy uses argv[0] to find its standard library, and while it knows
|
||||
# how to follow symlinks, it doesn't know about wrappers. So, it
|
||||
# will think the wrapper is the original. As long as the wrapper has
|
||||
# the same path as the original, this is OK.
|
||||
wrapProgram "$out/pypy-c/pypy-c" \
|
||||
--set LD_LIBRARY_PATH "${LD_LIBRARY_PATH}:$out/lib" \
|
||||
--set LIBRARY_PATH "${LIBRARY_PATH}:$out/lib"
|
||||
|
||||
@@ -103,6 +119,7 @@ let
|
||||
isPypy = true;
|
||||
buildEnv = callPackage ../python/wrapper.nix { python = self; };
|
||||
interpreter = "${self}/bin/${executable}";
|
||||
sitePackages = "lib/${libPrefix}/site-packages";
|
||||
};
|
||||
|
||||
enableParallelBuilding = true; # almost no parallelization without STM
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
addPythonPath() {
|
||||
addToSearchPathWithCustomDelimiter : PYTHONPATH $1/lib/pypy2.5/site-packages
|
||||
addToSearchPathWithCustomDelimiter : PYTHONPATH $1/lib/pypy2.6/site-packages
|
||||
}
|
||||
|
||||
toPythonPath() {
|
||||
local paths="$1"
|
||||
local result=
|
||||
for i in $paths; do
|
||||
p="$i/lib/pypy2.5/site-packages"
|
||||
p="$i/lib/pypy2.6/site-packages"
|
||||
result="${result}${result:+:}$p"
|
||||
done
|
||||
echo $result
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{ stdenv, fetchurl, zlib ? null, zlibSupport ? true, bzip2, includeModules ? false
|
||||
, sqlite, tcl, tk, x11, openssl, readline, db, ncurses, gdbm, self, callPackage }:
|
||||
, sqlite, tcl, tk, xlibsWrapper, openssl, readline, db, ncurses, gdbm, self, callPackage }:
|
||||
|
||||
assert zlibSupport -> zlib != null;
|
||||
|
||||
@@ -9,7 +9,6 @@ let
|
||||
majorVersion = "2.6";
|
||||
version = "${majorVersion}.9";
|
||||
|
||||
# python 2.6 will receive security fixes until Oct 2013
|
||||
src = fetchurl {
|
||||
url = "http://www.python.org/ftp/python/${version}/Python-${version}.tar.xz";
|
||||
sha256 = "0hbfs2691b60c7arbysbzr0w9528d5pl8a4x7mq5psh6a2cvprya";
|
||||
@@ -46,9 +45,11 @@ let
|
||||
touch $out/include/python${majorVersion}/pyconfig.h
|
||||
'';
|
||||
|
||||
configureFlags = "--enable-shared --with-threads --enable-unicode=ucs4";
|
||||
|
||||
buildInputs =
|
||||
optional (stdenv ? cc && stdenv.cc.libc != null) stdenv.cc.libc ++
|
||||
[ bzip2 openssl ]++ optionals includeModules [ db openssl ncurses gdbm readline x11 tcl tk sqlite ]
|
||||
[ bzip2 openssl ]++ optionals includeModules [ db openssl ncurses gdbm readline xlibsWrapper tcl tk sqlite ]
|
||||
++ optional zlibSupport zlib;
|
||||
|
||||
mkPaths = paths: {
|
||||
@@ -62,12 +63,11 @@ let
|
||||
name = "python${if includeModules then "" else "-minimal"}-${version}";
|
||||
pythonVersion = majorVersion;
|
||||
|
||||
inherit majorVersion version src patches buildInputs preConfigure;
|
||||
inherit majorVersion version src patches buildInputs preConfigure
|
||||
configureFlags;
|
||||
|
||||
inherit (mkPaths buildInputs) C_INCLUDE_PATH LIBRARY_PATH;
|
||||
|
||||
configureFlags = "--enable-shared --with-threads --enable-unicode";
|
||||
|
||||
NIX_CFLAGS_COMPILE = optionalString stdenv.isDarwin "-msse2";
|
||||
|
||||
setupHook = ./setup-hook.sh;
|
||||
@@ -120,6 +120,10 @@ let
|
||||
license = stdenv.lib.licenses.psfl;
|
||||
platforms = stdenv.lib.platforms.all;
|
||||
maintainers = with stdenv.lib.maintainers; [ simons chaoflow iElectric ];
|
||||
# If you want to use Python 2.6, remove "broken = true;" at your own
|
||||
# risk. Python 2.6 has known security vulnerabilities is not receiving
|
||||
# security updates as of October 2013.
|
||||
broken = true;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -134,7 +138,7 @@ let
|
||||
if includeModules then null else stdenv.mkDerivation rec {
|
||||
name = "python-${moduleName}-${python.version}";
|
||||
|
||||
inherit src patches preConfigure;
|
||||
inherit src patches preConfigure configureFlags;
|
||||
|
||||
buildInputs = [ python ] ++ deps;
|
||||
|
||||
@@ -146,6 +150,7 @@ let
|
||||
'self.extensions = [ext for ext in self.extensions if ext.name in ["${internalName}"]]'
|
||||
|
||||
python ./setup.py build_ext
|
||||
[ -z "$(find build -name '*_failed.so' -print)" ]
|
||||
'';
|
||||
|
||||
installPhase =
|
||||
@@ -169,7 +174,7 @@ let
|
||||
crypt = buildInternalPythonModule {
|
||||
moduleName = "crypt";
|
||||
internalName = "crypt";
|
||||
deps = [ ];
|
||||
deps = optional (stdenv ? glibc) stdenv.glibc;
|
||||
};
|
||||
|
||||
curses = buildInternalPythonModule {
|
||||
@@ -195,7 +200,7 @@ let
|
||||
|
||||
tkinter = buildInternalPythonModule {
|
||||
moduleName = "tkinter";
|
||||
deps = [ tcl tk x11 ];
|
||||
deps = [ tcl tk xlibsWrapper ];
|
||||
};
|
||||
|
||||
readline = buildInternalPythonModule {
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
--- origsrc/Lib/ctypes/util.py 2007-09-14 15:05:26.000000000 -0500
|
||||
+++ src/Lib/ctypes/util.py 2008-11-25 17:54:47.319296200 -0600
|
||||
@@ -41,6 +41,20 @@
|
||||
continue
|
||||
return None
|
||||
|
||||
+elif sys.platform == "cygwin":
|
||||
+ def find_library(name):
|
||||
+ for libdir in ['/usr/lib', '/usr/local/lib']:
|
||||
+ for libext in ['lib%s.dll.a' % name, 'lib%s.a' % name]:
|
||||
+ implib = os.path.join(libdir, libext)
|
||||
+ if not os.path.exists(implib):
|
||||
+ continue
|
||||
+ cmd = "dlltool -I " + implib + " 2>/dev/null"
|
||||
+ res = os.popen(cmd).read().replace("\n","")
|
||||
+ if not res:
|
||||
+ continue
|
||||
+ return res
|
||||
+ return None
|
||||
+
|
||||
elif os.name == "posix":
|
||||
# Andreas Degert's find functions, using gcc, /sbin/ldconfig, objdump
|
||||
import re, tempfile, errno
|
||||
@@ -157,6 +173,10 @@
|
||||
print cdll.LoadLibrary("libcrypto.dylib")
|
||||
print cdll.LoadLibrary("libSystem.dylib")
|
||||
print cdll.LoadLibrary("System.framework/System")
|
||||
+ elif sys.platform == "cygwin":
|
||||
+ print cdll.LoadLibrary("cygbz2-1.dll")
|
||||
+ print find_library("crypt")
|
||||
+ print cdll.LoadLibrary("cygcrypt-0.dll")
|
||||
else:
|
||||
print cdll.LoadLibrary("libm.so")
|
||||
print cdll.LoadLibrary("libcrypt.so")
|
||||
@@ -0,0 +1,27 @@
|
||||
--- origsrc/setup.py 2008-02-04 17:41:02.000000000 -0600
|
||||
+++ src/setup.py 2008-07-02 02:11:28.671875000 -0500
|
||||
@@ -1277,12 +1279,6 @@
|
||||
include_dirs.append('/usr/X11/include')
|
||||
added_lib_dirs.append('/usr/X11/lib')
|
||||
|
||||
- # If Cygwin, then verify that X is installed before proceeding
|
||||
- if host_platform == 'cygwin':
|
||||
- x11_inc = find_file('X11/Xlib.h', [], include_dirs)
|
||||
- if x11_inc is None:
|
||||
- return
|
||||
-
|
||||
# Check for BLT extension
|
||||
if self.compiler.find_library_file(lib_dirs + added_lib_dirs,
|
||||
'BLT8.0'):
|
||||
@@ -1300,9 +1296,8 @@
|
||||
if host_platform in ['aix3', 'aix4']:
|
||||
libs.append('ld')
|
||||
|
||||
- # Finally, link with the X11 libraries (not appropriate on cygwin)
|
||||
- if host_platform != "cygwin":
|
||||
- libs.append('X11')
|
||||
+ # Finally, link with the X11 libraries
|
||||
+ libs.append('X11')
|
||||
|
||||
ext = Extension('_tkinter', ['_tkinter.c', 'tkappinit.c'],
|
||||
define_macros=[('WITH_APPINIT', 1)] + defs,
|
||||
@@ -0,0 +1,13 @@
|
||||
--- origsrc/Modules/_ssl.c 2009-01-26 10:55:41.000000000 -0600
|
||||
+++ src/Modules/_ssl.c 2009-08-20 00:04:59.346816700 -0500
|
||||
@@ -15,6 +15,10 @@
|
||||
|
||||
#include "Python.h"
|
||||
|
||||
+#ifdef __CYGWIN__
|
||||
+#undef WITH_THREAD
|
||||
+#endif
|
||||
+
|
||||
#ifdef WITH_THREAD
|
||||
#include "pythread.h"
|
||||
#define PySSL_BEGIN_ALLOW_THREADS { \
|
||||
@@ -0,0 +1,41 @@
|
||||
--- Python-2.6.5.orig/Modules/selectmodule.c 2012-02-02 22:35:21.835125000 -0500
|
||||
+++ Python-2.6.5/Modules/selectmodule.c 2012-02-02 22:41:41.210125000 -0500
|
||||
@@ -6,6 +6,21 @@
|
||||
>= 0.
|
||||
*/
|
||||
|
||||
+/* Windows #defines FD_SETSIZE to 64 if FD_SETSIZE isn't already defined.
|
||||
+ 64 is too small (too many people have bumped into that limit).
|
||||
+ Here we boost it.
|
||||
+
|
||||
+ Cygwin also defines FD_SETSIZE to 64, so also increase the limit on
|
||||
+ Cygwin. We must do this before sys/types.h is included, which otherwise
|
||||
+ sets FD_SETSIZE to the default.
|
||||
+
|
||||
+ Users who want even more than the boosted limit should #define
|
||||
+ FD_SETSIZE higher before this; e.g., via compiler /D switch.
|
||||
+*/
|
||||
+#if (defined(MS_WINDOWS) || defined(__CYGWIN__)) && !defined(FD_SETSIZE)
|
||||
+#define FD_SETSIZE 512
|
||||
+#endif
|
||||
+
|
||||
#include "Python.h"
|
||||
#include <structmember.h>
|
||||
|
||||
@@ -16,16 +31,6 @@
|
||||
#undef HAVE_BROKEN_POLL
|
||||
#endif
|
||||
|
||||
-/* Windows #defines FD_SETSIZE to 64 if FD_SETSIZE isn't already defined.
|
||||
- 64 is too small (too many people have bumped into that limit).
|
||||
- Here we boost it.
|
||||
- Users who want even more than the boosted limit should #define
|
||||
- FD_SETSIZE higher before this; e.g., via compiler /D switch.
|
||||
-*/
|
||||
-#if defined(MS_WINDOWS) && !defined(FD_SETSIZE)
|
||||
-#define FD_SETSIZE 512
|
||||
-#endif
|
||||
-
|
||||
#if defined(HAVE_POLL_H)
|
||||
#include <poll.h>
|
||||
#elif defined(HAVE_SYS_POLL_H)
|
||||
@@ -0,0 +1,11 @@
|
||||
--- origsrc/Include/pyerrors.h 2008-06-08 23:58:54.000000000 -0500
|
||||
+++ src/Include/pyerrors.h 2010-05-12 04:19:31.535297200 -0500
|
||||
@@ -232,7 +232,7 @@ PyAPI_FUNC(int) PyErr_CheckSignals(void)
|
||||
PyAPI_FUNC(void) PyErr_SetInterrupt(void);
|
||||
|
||||
/* In signalmodule.c */
|
||||
-int PySignal_SetWakeupFd(int fd);
|
||||
+PyAPI_FUNC(int) PySignal_SetWakeupFd(int fd);
|
||||
|
||||
/* Support for adding program text to SyntaxErrors */
|
||||
PyAPI_FUNC(void) PyErr_SyntaxLocation(const char *, int);
|
||||
@@ -0,0 +1,16 @@
|
||||
--- origsrc/Include/py_curses.h 2009-09-06 16:23:05.000000000 -0500
|
||||
+++ src/Include/py_curses.h 2010-04-14 15:21:23.008971400 -0500
|
||||
@@ -17,6 +17,13 @@
|
||||
#define NCURSES_OPAQUE 0
|
||||
#endif /* __APPLE__ */
|
||||
|
||||
+#ifdef __CYGWIN__
|
||||
+/* the following define is necessary for Cygwin; without it, the
|
||||
+ Cygwin-supplied ncurses.h sets NCURSES_OPAQUE to 1, and then Python
|
||||
+ can't get at the WINDOW flags field. */
|
||||
+#define NCURSES_INTERNALS
|
||||
+#endif /* __CYGWIN__ */
|
||||
+
|
||||
#ifdef __FreeBSD__
|
||||
/*
|
||||
** On FreeBSD, [n]curses.h and stdlib.h/wchar.h use different guards
|
||||
27
pkgs/development/interpreters/python/2.7/2.7.3-dbm.patch
Normal file
27
pkgs/development/interpreters/python/2.7/2.7.3-dbm.patch
Normal file
@@ -0,0 +1,27 @@
|
||||
--- origsrc/setup.py.orig 2012-11-27 10:20:47.442395900 -0500
|
||||
+++ src/setup.py 2012-11-27 10:53:15.583020900 -0500
|
||||
@@ -1141,7 +1141,7 @@
|
||||
|
||||
dbm_order = ['gdbm']
|
||||
# The standard Unix dbm module:
|
||||
- if host_platform not in ['cygwin']:
|
||||
+ if host_platform not in ['win32']:
|
||||
config_args = [arg.strip("'")
|
||||
for arg in sysconfig.get_config_var("CONFIG_ARGS").split()]
|
||||
dbm_args = [arg for arg in config_args
|
||||
@@ -1192,6 +1192,15 @@
|
||||
],
|
||||
libraries = gdbm_libs)
|
||||
break
|
||||
+ if find_file("ndbm.h", inc_dirs, []) is not None:
|
||||
+ print("building dbm using gdbm")
|
||||
+ dbmext = Extension(
|
||||
+ 'dbm', ['dbmmodule.c'],
|
||||
+ define_macros=[
|
||||
+ ('HAVE_NDBM_H', None),
|
||||
+ ],
|
||||
+ libraries = gdbm_libs)
|
||||
+ break
|
||||
elif cand == "bdb":
|
||||
if db_incs is not None:
|
||||
print "building dbm using bdb"
|
||||
10
pkgs/development/interpreters/python/2.7/2.7.3-dylib.patch
Normal file
10
pkgs/development/interpreters/python/2.7/2.7.3-dylib.patch
Normal file
@@ -0,0 +1,10 @@
|
||||
--- origsrc/Lib/distutils/unixccompiler.py.orig 2012-11-27 07:44:15.409993500 -0500
|
||||
+++ src/Lib/distutils/unixccompiler.py 2012-11-27 08:09:57.801770900 -0500
|
||||
@@ -141,6 +141,7 @@
|
||||
static_lib_format = shared_lib_format = dylib_lib_format = "lib%s%s"
|
||||
if sys.platform == "cygwin":
|
||||
exe_extension = ".exe"
|
||||
+ dylib_lib_extension = ".dll.a"
|
||||
|
||||
def preprocess(self, source,
|
||||
output_file=None, macros=None, include_dirs=None,
|
||||
@@ -0,0 +1,31 @@
|
||||
--- origsrc/Modules/getpath.c.orig 2012-11-27 12:07:56.098645900 -0500
|
||||
+++ src/Modules/getpath.c 2012-11-27 12:10:11.254895900 -0500
|
||||
@@ -436,6 +436,28 @@
|
||||
if (isxfile(progpath))
|
||||
break;
|
||||
|
||||
+#ifdef __CYGWIN__
|
||||
+ /*
|
||||
+ * Cygwin automatically removes the ".exe" extension from argv[0]
|
||||
+ * to make programs feel like they are in a more Unix-like
|
||||
+ * environment. Unfortunately, this can make it problemmatic for
|
||||
+ * Cygwin to distinguish between a directory and an executable with
|
||||
+ * the same name excluding the ".exe" extension. For example, the
|
||||
+ * Cygwin Python build directory has a "Python" directory and a
|
||||
+ * "python.exe" executable. This causes isxfile() to erroneously
|
||||
+ * return false. If isdir() returns true and there is enough space
|
||||
+ * to append the ".exe" extension, then we try again with the
|
||||
+ * extension appended.
|
||||
+ */
|
||||
+#define EXE ".exe"
|
||||
+ if (isdir(progpath) && strlen(progpath) + strlen(EXE) <= MAXPATHLEN)
|
||||
+ {
|
||||
+ strcat(progpath, EXE);
|
||||
+ if (isxfile(progpath))
|
||||
+ break;
|
||||
+ }
|
||||
+#endif /* __CYGWIN__ */
|
||||
+
|
||||
if (!delim) {
|
||||
progpath[0] = '\0';
|
||||
break;
|
||||
11
pkgs/development/interpreters/python/2.7/2.7.3-no-libm.patch
Normal file
11
pkgs/development/interpreters/python/2.7/2.7.3-no-libm.patch
Normal file
@@ -0,0 +1,11 @@
|
||||
--- origsrc/setup.py.orig 2012-11-27 09:28:34.051770900 -0500
|
||||
+++ src/setup.py 2012-11-27 09:28:47.239270900 -0500
|
||||
@@ -470,7 +470,7 @@
|
||||
|
||||
# Check for MacOS X, which doesn't need libm.a at all
|
||||
math_libs = ['m']
|
||||
- if host_platform in ['darwin', 'beos']:
|
||||
+ if host_platform in ['darwin', 'beos', 'cygwin']:
|
||||
math_libs = []
|
||||
|
||||
# XXX Omitted modules: gl, pure, dl, SGI-specific modules
|
||||
@@ -1,29 +1,32 @@
|
||||
{ stdenv, fetchurl, self, callPackage
|
||||
, bzip2, openssl
|
||||
, bzip2, openssl, gettext
|
||||
|
||||
, includeModules ? false
|
||||
|
||||
, db, gdbm, ncurses, sqlite, readline
|
||||
|
||||
, tcl ? null, tk ? null, x11 ? null, libX11 ? null, x11Support ? true
|
||||
, tcl ? null, tk ? null, xlibsWrapper ? null, libX11 ? null, x11Support ? !stdenv.isCygwin
|
||||
, zlib ? null, zlibSupport ? true
|
||||
, expat, libffi
|
||||
|
||||
, CF, configd
|
||||
}:
|
||||
|
||||
assert zlibSupport -> zlib != null;
|
||||
assert x11Support -> tcl != null
|
||||
&& tk != null
|
||||
&& x11 != null
|
||||
&& xlibsWrapper != null
|
||||
&& libX11 != null;
|
||||
|
||||
with stdenv.lib;
|
||||
|
||||
let
|
||||
majorVersion = "2.7";
|
||||
version = "${majorVersion}.9";
|
||||
version = "${majorVersion}.10";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://www.python.org/ftp/python/${version}/Python-${version}.tar.xz";
|
||||
sha256 = "05j9in7yygfgl6nml0rixfvj1bbip982w3l54q05f0vyx8a7xllh";
|
||||
sha256 = "1h7zbrf9pkj29hlm18b10548ch9757f75m64l47sy75rh43p7lqw";
|
||||
};
|
||||
|
||||
patches =
|
||||
@@ -39,6 +42,19 @@ let
|
||||
# patch python to put zero timestamp into pyc
|
||||
# if DETERMINISTIC_BUILD env var is set
|
||||
./deterministic-build.patch
|
||||
|
||||
./properly-detect-curses.patch
|
||||
] ++ optionals stdenv.isCygwin [
|
||||
./2.5.2-ctypes-util-find_library.patch
|
||||
./2.5.2-tkinter-x11.patch
|
||||
./2.6.2-ssl-threads.patch
|
||||
./2.6.5-export-PySignal_SetWakeupFd.patch
|
||||
./2.6.5-FD_SETSIZE.patch
|
||||
./2.6.5-ncurses-abi6.patch
|
||||
./2.7.3-dbm.patch
|
||||
./2.7.3-dylib.patch
|
||||
./2.7.3-getpath-exe-extension.patch
|
||||
./2.7.3-no-libm.patch
|
||||
];
|
||||
|
||||
preConfigure = ''
|
||||
@@ -50,22 +66,40 @@ let
|
||||
for i in Lib/plat-*/regen; do
|
||||
substituteInPlace $i --replace /usr/include/ ${stdenv.cc.libc}/include/
|
||||
done
|
||||
'' + optionalString stdenv.isCygwin ''
|
||||
# On Cygwin, `make install' tries to read this Makefile.
|
||||
mkdir -p $out/lib/python${majorVersion}/config
|
||||
touch $out/lib/python${majorVersion}/config/Makefile
|
||||
mkdir -p $out/include/python${majorVersion}
|
||||
touch $out/include/python${majorVersion}/pyconfig.h
|
||||
'' + optionalString stdenv.isDarwin ''
|
||||
substituteInPlace configure --replace '`/usr/bin/arch`' '"i386"'
|
||||
'';
|
||||
|
||||
configureFlags = [
|
||||
"--enable-shared"
|
||||
"--with-threads"
|
||||
"--enable-unicode=ucs4"
|
||||
] ++ optionals stdenv.isCygwin [
|
||||
"--with-system-ffi"
|
||||
"--with-system-expat"
|
||||
"ac_cv_func_bind_textdomain_codeset=yes"
|
||||
] ++ optionals stdenv.isDarwin [
|
||||
"--disable-toolbox-glue"
|
||||
];
|
||||
|
||||
postConfigure = if stdenv.isCygwin then ''
|
||||
sed -i Makefile -e 's,PYTHONPATH="$(srcdir),PYTHONPATH="$(abs_srcdir),'
|
||||
'' else null;
|
||||
|
||||
buildInputs =
|
||||
optional (stdenv ? cc && stdenv.cc.libc != null) stdenv.cc.libc ++
|
||||
[ bzip2 openssl ]
|
||||
++ optionals stdenv.isCygwin [ expat libffi ]
|
||||
++ optionals includeModules (
|
||||
[ db gdbm ncurses sqlite readline
|
||||
] ++ optionals x11Support [ tcl tk x11 libX11 ]
|
||||
] ++ optionals x11Support [ tcl tk xlibsWrapper libX11 ]
|
||||
)
|
||||
++ optional zlibSupport zlib;
|
||||
++ optional zlibSupport zlib
|
||||
|
||||
# depend on CF and configd only if purity is an issue
|
||||
# the impure bootstrap compiler can't build CoreFoundation currently. it requires
|
||||
# <mach-o/dyld.h> which is in our pure bootstrapTools, but not in the system headers.
|
||||
++ optionals (stdenv.isDarwin && !stdenv.cc.nativeLibc) [ CF configd ];
|
||||
|
||||
mkPaths = paths: {
|
||||
C_INCLUDE_PATH = concatStringsSep ":" (map (p: "${p.dev or p}/include") paths);
|
||||
@@ -78,13 +112,12 @@ let
|
||||
name = "python-${version}";
|
||||
pythonVersion = majorVersion;
|
||||
|
||||
inherit majorVersion version src patches buildInputs preConfigure;
|
||||
inherit majorVersion version src patches buildInputs preConfigure
|
||||
configureFlags;
|
||||
|
||||
LDFLAGS = stdenv.lib.optionalString (!stdenv.isDarwin) "-lgcc_s";
|
||||
inherit (mkPaths buildInputs) C_INCLUDE_PATH LIBRARY_PATH;
|
||||
|
||||
configureFlags = "--enable-shared --with-threads --enable-unicode";
|
||||
|
||||
NIX_CFLAGS_COMPILE = optionalString stdenv.isDarwin "-msse2";
|
||||
DETERMINISTIC_BUILD = 1;
|
||||
|
||||
@@ -155,17 +188,21 @@ let
|
||||
if includeModules then null else stdenv.mkDerivation rec {
|
||||
name = "python-${moduleName}-${python.version}";
|
||||
|
||||
inherit src patches preConfigure;
|
||||
inherit src patches preConfigure postConfigure configureFlags;
|
||||
|
||||
buildInputs = [ python ] ++ deps;
|
||||
|
||||
inherit (mkPaths buildInputs) C_INCLUDE_PATH LIBRARY_PATH;
|
||||
|
||||
buildPhase = ''
|
||||
# non-python gdbm has a libintl dependency on i686-cygwin, not on x86_64-cygwin
|
||||
buildPhase = (if (stdenv.system == "i686-cygwin" && moduleName == "gdbm") then ''
|
||||
sed -i setup.py -e "s:libraries = \['gdbm'\]:libraries = ['gdbm', 'intl']:"
|
||||
'' else '''') + ''
|
||||
substituteInPlace setup.py --replace 'self.extensions = extensions' \
|
||||
'self.extensions = [ext for ext in self.extensions if ext.name in ["${internalName}"]]'
|
||||
|
||||
python ./setup.py build_ext
|
||||
[ -z "$(find build -name '*_failed.so' -print)" ]
|
||||
'';
|
||||
|
||||
installPhase =
|
||||
@@ -199,13 +236,13 @@ let
|
||||
crypt = buildInternalPythonModule {
|
||||
moduleName = "crypt";
|
||||
internalName = "crypt";
|
||||
deps = [ ];
|
||||
deps = optional (stdenv ? glibc) stdenv.glibc;
|
||||
};
|
||||
|
||||
gdbm = buildInternalPythonModule {
|
||||
moduleName = "gdbm";
|
||||
internalName = "gdbm";
|
||||
deps = [ gdbm ];
|
||||
deps = [ gdbm ] ++ stdenv.lib.optional stdenv.isCygwin gettext;
|
||||
};
|
||||
|
||||
sqlite3 = buildInternalPythonModule {
|
||||
@@ -215,10 +252,10 @@ let
|
||||
|
||||
} // optionalAttrs x11Support {
|
||||
|
||||
tkinter = buildInternalPythonModule {
|
||||
tkinter = if stdenv.isCygwin then null else (buildInternalPythonModule {
|
||||
moduleName = "tkinter";
|
||||
deps = [ tcl tk x11 libX11 ];
|
||||
};
|
||||
deps = [ tcl tk xlibsWrapper libX11 ];
|
||||
});
|
||||
|
||||
} // {
|
||||
|
||||
|
||||
@@ -0,0 +1,116 @@
|
||||
From 6dc83db69b5e29d25ba6d73646ea2e9a1097848a Mon Sep 17 00:00:00 2001
|
||||
From: Roumen Petrov <local@example.net>
|
||||
Date: Sun, 19 Feb 2012 16:13:24 +0200
|
||||
Subject: [PATCH] CROSS-properly detect WINDOW _flags for different ncurses versions
|
||||
|
||||
---
|
||||
Include/py_curses.h | 5 +++++
|
||||
configure.ac | 40 ++++++++++++++++++++++++++++++++++++++--
|
||||
pyconfig.h.in | 6 ++++++
|
||||
3 files changed, 49 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/Include/py_curses.h b/Include/py_curses.h
|
||||
index f2c08f6..a9b5260 100644
|
||||
--- a/Include/py_curses.h
|
||||
+++ b/Include/py_curses.h
|
||||
@@ -14,7 +14,9 @@
|
||||
/* the following define is necessary for OS X 10.6; without it, the
|
||||
Apple-supplied ncurses.h sets NCURSES_OPAQUE to 1, and then Python
|
||||
can't get at the WINDOW flags field. */
|
||||
+/* NOTE configure check if ncurses require such definition
|
||||
#define NCURSES_OPAQUE 0
|
||||
+*/
|
||||
#endif /* __APPLE__ */
|
||||
|
||||
#ifdef __FreeBSD__
|
||||
@@ -57,9 +59,12 @@
|
||||
#ifdef HAVE_NCURSES_H
|
||||
/* configure was checking <curses.h>, but we will
|
||||
use <ncurses.h>, which has all these features. */
|
||||
+/* NOTE configure check for existence of flags
|
||||
+ * Also flags are visible only if WINDOW structure is not opaque
|
||||
#ifndef WINDOW_HAS_FLAGS
|
||||
#define WINDOW_HAS_FLAGS 1
|
||||
#endif
|
||||
+*/
|
||||
#ifndef MVWDELCH_IS_EXPRESSION
|
||||
#define MVWDELCH_IS_EXPRESSION 1
|
||||
#endif
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 0a3a186..75f5142 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -4150,15 +4150,51 @@ then
|
||||
fi
|
||||
|
||||
AC_MSG_CHECKING(whether WINDOW has _flags)
|
||||
-AC_CACHE_VAL(ac_cv_window_has_flags,
|
||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <curses.h>]], [[
|
||||
WINDOW *w;
|
||||
w->_flags = 0;
|
||||
]])],
|
||||
[ac_cv_window_has_flags=yes],
|
||||
-[ac_cv_window_has_flags=no]))
|
||||
+[ac_cv_window_has_flags=no])
|
||||
AC_MSG_RESULT($ac_cv_window_has_flags)
|
||||
|
||||
+py_curses_window_is_opaque=no
|
||||
+if test no = $ac_cv_window_has_flags; then
|
||||
+ AC_MSG_CHECKING([whether WINDOW has _flags in non-opaque structure])
|
||||
+ AC_COMPILE_IFELSE([
|
||||
+ AC_LANG_PROGRAM([[
|
||||
+ #define NCURSES_OPAQUE 0
|
||||
+ #include <curses.h>
|
||||
+ ]],[[
|
||||
+ WINDOW *w;
|
||||
+ w->_flags = 0;
|
||||
+ ]])],
|
||||
+ [py_curses_window_is_opaque=yes])
|
||||
+ AC_MSG_RESULT([$py_curses_window_is_opaque])
|
||||
+fi
|
||||
+if test yes = $py_curses_window_is_opaque; then
|
||||
+ ac_cv_window_has_flags=yes
|
||||
+ AC_DEFINE([NCURSES_OPAQUE], [0], [Define to 0 if you have WINDOW _flags in non-opaque structure.])
|
||||
+fi
|
||||
+
|
||||
+py_curses_window_is_internal=no
|
||||
+if test no = $ac_cv_window_has_flags; then
|
||||
+ AC_MSG_CHECKING([whether WINDOW has _flags as internal structure])
|
||||
+ AC_COMPILE_IFELSE([
|
||||
+ AC_LANG_PROGRAM([[
|
||||
+ #define NCURSES_INTERNALS 1
|
||||
+ #include <curses.h>
|
||||
+ ]],[[
|
||||
+ WINDOW *w;
|
||||
+ w->_flags = 0;
|
||||
+ ]])],
|
||||
+ [py_curses_window_is_internal=yes])
|
||||
+ AC_MSG_RESULT([$py_curses_window_is_internal])
|
||||
+fi
|
||||
+if test yes = $py_curses_window_is_internal; then
|
||||
+ ac_cv_window_has_flags=yes
|
||||
+ AC_DEFINE([NCURSES_INTERNALS], [1], [Define to 1 if you have WINDOW _flags as internal structure.])
|
||||
+fi
|
||||
|
||||
if test "$ac_cv_window_has_flags" = yes
|
||||
then
|
||||
diff --git a/pyconfig.h.in b/pyconfig.h.in
|
||||
index 3ca3a4f..484c817 100644
|
||||
--- a/pyconfig.h.in
|
||||
+++ b/pyconfig.h.in
|
||||
@@ -1130,6 +1130,12 @@
|
||||
/* Define if mvwdelch in curses.h is an expression. */
|
||||
#undef MVWDELCH_IS_EXPRESSION
|
||||
|
||||
+/* Define to 1 if you have WINDOW _flags as internal structure. */
|
||||
+#undef NCURSES_INTERNALS
|
||||
+
|
||||
+/* Define to 0 if you have WINDOW _flags in non-opaque structure. */
|
||||
+#undef NCURSES_OPAQUE
|
||||
+
|
||||
/* Define to the address where bug reports for this package should be sent. */
|
||||
#undef PACKAGE_BUGREPORT
|
||||
|
||||
--
|
||||
1.6.4
|
||||
|
||||
@@ -43,7 +43,7 @@ stdenv.mkDerivation {
|
||||
done
|
||||
${optionalString stdenv.isDarwin ''export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -msse2"''}
|
||||
|
||||
configureFlagsArray=( --enable-shared --with-threads
|
||||
configureFlagsArray=( --enable-shared --with-threads --with-wide-unicode
|
||||
CPPFLAGS="${concatStringsSep " " (map (p: "-I${p}/include") buildInputs)}"
|
||||
LDFLAGS="${concatStringsSep " " (map (p: "-L${p}/lib") buildInputs)}"
|
||||
LIBS="${optionalString (!stdenv.isDarwin) "-lcrypt"} ${optionalString (ncurses != null) "-lncurses"}"
|
||||
|
||||
112
pkgs/development/interpreters/python/3.5/default.nix
Normal file
112
pkgs/development/interpreters/python/3.5/default.nix
Normal file
@@ -0,0 +1,112 @@
|
||||
{ stdenv, fetchurl
|
||||
, bzip2
|
||||
, db
|
||||
, gdbm
|
||||
, libX11, xproto
|
||||
, lzma
|
||||
, ncurses
|
||||
, openssl
|
||||
, readline
|
||||
, sqlite
|
||||
, tcl, tk
|
||||
, zlib
|
||||
, callPackage
|
||||
, self
|
||||
}:
|
||||
|
||||
assert readline != null -> ncurses != null;
|
||||
|
||||
with stdenv.lib;
|
||||
|
||||
let
|
||||
majorVersion = "3.5";
|
||||
pythonVersion = majorVersion;
|
||||
version = "${majorVersion}.0";
|
||||
fullVersion = "${version}";
|
||||
|
||||
buildInputs = filter (p: p != null) [
|
||||
zlib bzip2 lzma gdbm sqlite db readline ncurses openssl tcl tk libX11 xproto
|
||||
];
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
name = "python3-${fullVersion}";
|
||||
pythonVersion = majorVersion;
|
||||
inherit majorVersion version;
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://www.python.org/ftp/python/${version}/Python-${fullVersion}.tar.xz";
|
||||
sha256 = "14dywb94mci0kqbsji9riyyq8kx0h9ljdjjgxnkfrvm56hbammyn";
|
||||
};
|
||||
|
||||
NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isLinux "-lgcc_s";
|
||||
|
||||
preConfigure = ''
|
||||
for i in /usr /sw /opt /pkg; do # improve purity
|
||||
substituteInPlace ./setup.py --replace $i /no-such-path
|
||||
done
|
||||
${optionalString stdenv.isDarwin ''
|
||||
export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -msse2"
|
||||
export MACOSX_DEPLOYMENT_TARGET=10.6
|
||||
''}
|
||||
|
||||
configureFlagsArray=( --enable-shared --with-threads
|
||||
CPPFLAGS="${concatStringsSep " " (map (p: "-I${p}/include") buildInputs)}"
|
||||
LDFLAGS="${concatStringsSep " " (map (p: "-L${p}/lib") buildInputs)}"
|
||||
LIBS="${optionalString (!stdenv.isDarwin) "-lcrypt"} ${optionalString (ncurses != null) "-lncurses"}"
|
||||
)
|
||||
'';
|
||||
|
||||
setupHook = ./setup-hook.sh;
|
||||
|
||||
postInstall = ''
|
||||
# needed for some packages, especially packages that backport functionality
|
||||
# to 2.x from 3.x
|
||||
for item in $out/lib/python${majorVersion}/test/*; do
|
||||
if [[ "$item" != */test_support.py* ]]; then
|
||||
rm -rf "$item"
|
||||
else
|
||||
echo $item
|
||||
fi
|
||||
done
|
||||
touch $out/lib/python${majorVersion}/test/__init__.py
|
||||
|
||||
ln -s "$out/include/python${majorVersion}m" "$out/include/python${majorVersion}"
|
||||
paxmark E $out/bin/python${majorVersion}
|
||||
'';
|
||||
|
||||
passthru = rec {
|
||||
zlibSupport = zlib != null;
|
||||
sqliteSupport = sqlite != null;
|
||||
dbSupport = db != null;
|
||||
readlineSupport = readline != null;
|
||||
opensslSupport = openssl != null;
|
||||
tkSupport = (tk != null) && (tcl != null) && (libX11 != null) && (xproto != null);
|
||||
libPrefix = "python${majorVersion}";
|
||||
executable = "python${majorVersion}m";
|
||||
buildEnv = callPackage ../wrapper.nix { python = self; };
|
||||
isPy3 = true;
|
||||
isPy35 = true;
|
||||
is_py3k = true; # deprecated
|
||||
sitePackages = "lib/${libPrefix}/site-packages";
|
||||
interpreter = "${self}/bin/${executable}";
|
||||
};
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
meta = {
|
||||
homepage = http://python.org;
|
||||
description = "A high-level dynamically-typed programming language";
|
||||
longDescription = ''
|
||||
Python is a remarkably powerful dynamic programming language that
|
||||
is used in a wide variety of application domains. Some of its key
|
||||
distinguishing features include: clear, readable syntax; strong
|
||||
introspection capabilities; intuitive object orientation; natural
|
||||
expression of procedural code; full modularity, supporting
|
||||
hierarchical packages; exception-based error handling; and very
|
||||
high level dynamic data types.
|
||||
'';
|
||||
license = stdenv.lib.licenses.psfl;
|
||||
platforms = with stdenv.lib.platforms; linux ++ darwin;
|
||||
maintainers = with stdenv.lib.maintainers; [ simons chaoflow iElectric cstrahan ];
|
||||
};
|
||||
}
|
||||
15
pkgs/development/interpreters/python/3.5/setup-hook.sh
Normal file
15
pkgs/development/interpreters/python/3.5/setup-hook.sh
Normal file
@@ -0,0 +1,15 @@
|
||||
addPythonPath() {
|
||||
addToSearchPathWithCustomDelimiter : PYTHONPATH $1/lib/python3.5/site-packages
|
||||
}
|
||||
|
||||
toPythonPath() {
|
||||
local paths="$1"
|
||||
local result=
|
||||
for i in $paths; do
|
||||
p="$i/lib/python3.5/site-packages"
|
||||
result="${result}${result:+:}$p"
|
||||
done
|
||||
echo $result
|
||||
}
|
||||
|
||||
envHooks+=(addPythonPath)
|
||||
@@ -6,28 +6,40 @@
|
||||
# Create a python executable that knows about additional packages.
|
||||
let
|
||||
recursivePthLoader = import ../../python-modules/recursive-pth-loader/default.nix { stdenv = stdenv; python = python; };
|
||||
in
|
||||
(buildEnv {
|
||||
name = "${python.name}-env";
|
||||
paths = stdenv.lib.filter (x : x ? pythonPath) (stdenv.lib.closePropagation extraLibs) ++ [ python recursivePthLoader ];
|
||||
env = (buildEnv {
|
||||
name = "${python.name}-env";
|
||||
paths = stdenv.lib.filter (x : x ? pythonPath) (stdenv.lib.closePropagation extraLibs) ++ [ python recursivePthLoader ];
|
||||
|
||||
inherit ignoreCollisions;
|
||||
inherit ignoreCollisions;
|
||||
|
||||
postBuild = ''
|
||||
. "${makeWrapper}/nix-support/setup-hook"
|
||||
postBuild = ''
|
||||
. "${makeWrapper}/nix-support/setup-hook"
|
||||
|
||||
if [ -L "$out/bin" ]; then
|
||||
unlink "$out/bin"
|
||||
fi
|
||||
mkdir -p "$out/bin"
|
||||
if [ -L "$out/bin" ]; then
|
||||
unlink "$out/bin"
|
||||
fi
|
||||
mkdir -p "$out/bin"
|
||||
|
||||
cd "${python}/bin"
|
||||
for prg in *; do
|
||||
rm -f "$out/bin/$prg"
|
||||
makeWrapper "${python}/bin/$prg" "$out/bin/$prg" --set PYTHONHOME "$out"
|
||||
done
|
||||
'' + postBuild;
|
||||
}) // {
|
||||
inherit python;
|
||||
inherit (python) meta;
|
||||
}
|
||||
cd "${python}/bin"
|
||||
for prg in *; do
|
||||
rm -f "$out/bin/$prg"
|
||||
makeWrapper "${python}/bin/$prg" "$out/bin/$prg" --set PYTHONHOME "$out"
|
||||
done
|
||||
'' + postBuild;
|
||||
|
||||
passthru.env = stdenv.mkDerivation {
|
||||
name = "interactive-${python.name}-environment";
|
||||
nativeBuildInputs = [ env ];
|
||||
|
||||
buildCommand = ''
|
||||
echo >&2 ""
|
||||
echo >&2 "*** Python 'env' attributes are intended for interactive nix-shell sessions, not for building! ***"
|
||||
echo >&2 ""
|
||||
exit 1
|
||||
'';
|
||||
};
|
||||
}) // {
|
||||
inherit python;
|
||||
inherit (python) meta;
|
||||
};
|
||||
in env
|
||||
|
||||
@@ -31,11 +31,11 @@ in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "racket-${version}";
|
||||
version = "6.1.1";
|
||||
version = "6.2.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://mirror.racket-lang.org/installers/${version}/${name}-src.tgz";
|
||||
sha256 = "090269522d20e7a5ce85d2251a126745746ebf5e87554c05efe03f3b7173da75";
|
||||
sha256 = "0555j63k7fs10iv0icmivlxpzgp6s7gwcbfddmbwxlf2rk80qhq0";
|
||||
};
|
||||
|
||||
FONTCONFIG_FILE = fontsConf;
|
||||
@@ -50,7 +50,7 @@ stdenv.mkDerivation rec {
|
||||
cd src/build
|
||||
'';
|
||||
|
||||
configureFlags = [ "--enable-shared" "--enable-lt=${libtool}/bin/libtool" ];
|
||||
configureFlags = [ "--enable-shared" "--enable-lt=${libtool}/bin/libtool" "--disable-docs"];
|
||||
|
||||
configureScript = "../configure";
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ let
|
||||
sourceInfo = rec {
|
||||
baseName="Regina-REXX";
|
||||
pname="regina-rexx";
|
||||
version = "3.9.0";
|
||||
version = "3.9.1";
|
||||
name="${baseName}-${version}";
|
||||
url="mirror://sourceforge/${pname}/${pname}/${version}/${name}.tar.gz";
|
||||
};
|
||||
@@ -20,7 +20,7 @@ in
|
||||
rec {
|
||||
src = a.fetchurl {
|
||||
url = sourceInfo.url;
|
||||
sha256 = "051w6i5xyjq7j9yrhw4r14kw105gpylby6z5x9v31f5g824n4mfr";
|
||||
sha256 = "1vpksnjmg6y5zag9li6sxqxj2xapgalfz8krfxgg49vyk0kdy4sx";
|
||||
};
|
||||
|
||||
inherit (sourceInfo) name version;
|
||||
|
||||
@@ -18,14 +18,13 @@
|
||||
# (to make gems behave if necessary).
|
||||
|
||||
{ lib, fetchurl, writeScript, ruby, libxml2, libxslt, python, stdenv, which
|
||||
, libiconv, postgresql, v8, v8_3_16_14, clang, sqlite, zlib, imagemagick
|
||||
, libiconv, postgresql, v8_3_16_14, clang, sqlite, zlib, imagemagick
|
||||
, pkgconfig , ncurses, xapian, gpgme, utillinux, fetchpatch, tzdata, icu, libffi
|
||||
, cmake, libssh2, openssl, mysql
|
||||
}:
|
||||
|
||||
let
|
||||
v8 = v8_3_16_14;
|
||||
|
||||
in
|
||||
|
||||
{
|
||||
@@ -46,13 +45,6 @@ in
|
||||
buildFlags = [
|
||||
"--with-system-v8=true"
|
||||
];
|
||||
patches = [
|
||||
# see: https://github.com/cowboyd/libv8/pull/161
|
||||
(fetchpatch {
|
||||
url = https://github.com/cstrahan/libv8/commit/c79378bf346d4ed2429af36d745d17c478ffbe96.patch;
|
||||
sha256 = "1l6572cmigc22g249jj8h0xlbig88mj43kdqdbimhw2pmpv3q0rs";
|
||||
})
|
||||
];
|
||||
};
|
||||
|
||||
mysql2 = attrs: {
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
{ buildRubyGem, coreutils, fetchgit }:
|
||||
|
||||
buildRubyGem {
|
||||
name = "bundler-HEAD";
|
||||
name = "bundler-2015-01-11";
|
||||
src = fetchgit {
|
||||
url = "https://github.com/bundler/bundler.git";
|
||||
rev = "a2343c9eabf5403d8ffcbca4dea33d18a60fc157";
|
||||
sha256 = "0q7cjmz1fsrw3yfsr3h274qjamwnw01xgaqq3h5cjbqlrni4iq7k";
|
||||
sha256 = "06qsai4ac3i2xlr7nbc4anh4cy6jd9jjf3rpj254g9gwshqv0qgr";
|
||||
leaveDotGit = true;
|
||||
};
|
||||
dontPatchShebangs = true;
|
||||
postInstall = ''
|
||||
find $out -type f -perm +0100 | while read f; do
|
||||
find $out -type f -perm -0100 | while read f; do
|
||||
substituteInPlace $f \
|
||||
--replace "/usr/bin/env" "${coreutils}/bin/env"
|
||||
done
|
||||
|
||||
@@ -1,13 +1,17 @@
|
||||
{ buildRubyGem, coreutils }:
|
||||
{ buildRubyGem, makeWrapper, ruby, coreutils }:
|
||||
|
||||
buildRubyGem {
|
||||
name = "bundler-1.9.2";
|
||||
sha256 = "0ck9bnqg7miimggj1d6qlabrsa5h9yaw241fqn15cvqh915209zk";
|
||||
name = "bundler-1.10.6";
|
||||
namePrefix = "";
|
||||
sha256 = "1vlzfq0bkkj4jyq6av0y55mh5nj5n0f3mfbmmifwgkh44g8k6agv";
|
||||
dontPatchShebangs = true;
|
||||
postInstall = ''
|
||||
find $out -type f -perm +0100 | while read f; do
|
||||
find $out -type f -perm -0100 | while read f; do
|
||||
substituteInPlace $f \
|
||||
--replace "/usr/bin/env" "${coreutils}/bin/env"
|
||||
done
|
||||
|
||||
wrapProgram $out/bin/bundler \
|
||||
--prefix PATH ":" ${ruby}/bin
|
||||
'';
|
||||
}
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
# Ruby >= 2.1.0 tries to download config.{guess,sub}
|
||||
fetchgit: fetchgit {
|
||||
url = "git://git.sv.gnu.org/config.git";
|
||||
{ fetchFromSavannah }:
|
||||
|
||||
fetchFromSavannah {
|
||||
repo = "config";
|
||||
rev = "576c839acca0e082e536fd27568b90a446ce5b96";
|
||||
sha256 = "11bjngchjhj0qq0ppp8c37rfw0yhp230nvhs2jvlx15i9qbf56a0";
|
||||
}
|
||||
|
||||
248
pkgs/development/interpreters/ruby/default.nix
Normal file
248
pkgs/development/interpreters/ruby/default.nix
Normal file
@@ -0,0 +1,248 @@
|
||||
{ stdenv, lib, fetchurl, fetchFromSavannah, fetchFromGitHub
|
||||
, zlib, openssl, gdbm, ncurses, readline, groff, libyaml, libffi, autoreconfHook, bison
|
||||
, autoconf, darwin ? null
|
||||
} @ args:
|
||||
|
||||
let
|
||||
op = stdenv.lib.optional;
|
||||
ops = stdenv.lib.optionals;
|
||||
opString = stdenv.lib.optionalString;
|
||||
patchSet = import ./rvm-patchsets.nix { inherit fetchFromGitHub; };
|
||||
config = import ./config.nix { inherit fetchFromSavannah; };
|
||||
|
||||
generic = { majorVersion, minorVersion, teenyVersion, patchLevel, sha256 }: let
|
||||
versionNoPatch = "${majorVersion}.${minorVersion}.${teenyVersion}";
|
||||
version = "${versionNoPatch}-p${patchLevel}";
|
||||
fullVersionName = if patchLevel != "0" && stdenv.lib.versionOlder versionNoPatch "2.1"
|
||||
then version
|
||||
else versionNoPatch;
|
||||
tag = "v" + stdenv.lib.replaceChars ["." "p" "-"] ["_" "_" ""] fullVersionName;
|
||||
isRuby21 = majorVersion == "2" && minorVersion == "1";
|
||||
isRuby18 = majorVersion == "1" && minorVersion == "8";
|
||||
baseruby = self.override { useRailsExpress = false; };
|
||||
self = lib.makeOverridable (
|
||||
{ stdenv, lib, fetchurl, fetchFromSavannah, fetchFromGitHub
|
||||
, useRailsExpress ? true
|
||||
, zlib, zlibSupport ? true
|
||||
, openssl, opensslSupport ? true
|
||||
, gdbm, gdbmSupport ? true
|
||||
, ncurses, readline, cursesSupport ? true
|
||||
, groff, docSupport ? false
|
||||
, libyaml, yamlSupport ? true
|
||||
, libffi, fiddleSupport ? true
|
||||
, autoreconfHook, bison, autoconf
|
||||
, darwin ? null
|
||||
}:
|
||||
stdenv.mkDerivation rec {
|
||||
inherit version;
|
||||
|
||||
name = "ruby-${version}";
|
||||
|
||||
src = if useRailsExpress then fetchFromGitHub {
|
||||
owner = "ruby";
|
||||
repo = "ruby";
|
||||
rev = tag;
|
||||
sha256 = sha256.git;
|
||||
} else fetchurl {
|
||||
url = "http://cache.ruby-lang.org/pub/ruby/${majorVersion}.${minorVersion}/ruby-${fullVersionName}.tar.gz";
|
||||
sha256 = sha256.src;
|
||||
};
|
||||
|
||||
# Have `configure' avoid `/usr/bin/nroff' in non-chroot builds.
|
||||
NROFF = "${groff}/bin/nroff";
|
||||
|
||||
buildInputs = ops useRailsExpress [ autoreconfHook bison ]
|
||||
++ (op fiddleSupport libffi)
|
||||
++ (ops cursesSupport [ ncurses readline ])
|
||||
++ (op docSupport groff)
|
||||
++ (op zlibSupport zlib)
|
||||
++ (op opensslSupport openssl)
|
||||
++ (op gdbmSupport gdbm)
|
||||
++ (op yamlSupport libyaml)
|
||||
# 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 (with darwin; [ libiconv libobjc libunwind ]))
|
||||
++ op isRuby18 autoconf;
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
patches = (import ./patchsets.nix {
|
||||
inherit patchSet useRailsExpress ops patchLevel;
|
||||
})."${versionNoPatch}";
|
||||
|
||||
postUnpack = opString isRuby21 ''
|
||||
rm "$sourceRoot/enc/unicode/name2ctype.h"
|
||||
'';
|
||||
|
||||
postPatch = opString (!isRuby18) (if isRuby21 then ''
|
||||
rm tool/config_files.rb
|
||||
cp ${config}/config.guess tool/
|
||||
cp ${config}/config.sub tool/
|
||||
'' else opString useRailsExpress ''
|
||||
sed -i configure.in -e '/config.guess/d'
|
||||
cp ${config}/config.guess tool/
|
||||
cp ${config}/config.sub tool/
|
||||
'');
|
||||
|
||||
configureFlags = ["--enable-shared" "--enable-pthread"]
|
||||
++ op useRailsExpress "--with-baseruby=${baseruby}/bin/ruby"
|
||||
++ ops stdenv.isDarwin [
|
||||
# on darwin, we have /usr/include/tk.h -- so the configure script detects
|
||||
# that tk is installed
|
||||
"--with-out-ext=tk"
|
||||
# on yosemite, "generating encdb.h" will hang for a very long time without this flag
|
||||
"--with-setjmp-type=setjmp"
|
||||
];
|
||||
|
||||
installFlags = stdenv.lib.optionalString docSupport "install-doc";
|
||||
# Bundler tries to create this directory
|
||||
postInstall = ''
|
||||
# Bundler tries to create this directory
|
||||
mkdir -pv $out/${passthru.gemPath}
|
||||
mkdir -p $out/nix-support
|
||||
cat > $out/nix-support/setup-hook <<EOF
|
||||
addGemPath() {
|
||||
addToSearchPath GEM_PATH \$1/${passthru.gemPath}
|
||||
}
|
||||
|
||||
envHooks+=(addGemPath)
|
||||
EOF
|
||||
'' + opString useRailsExpress ''
|
||||
rbConfig=$(find $out/lib/ruby -name rbconfig.rb)
|
||||
|
||||
# Prevent the baseruby from being included in the closure.
|
||||
sed -i '/^ CONFIG\["BASERUBY"\]/d' $rbConfig
|
||||
sed -i "s|'--with-baseruby=${baseruby}/bin/ruby'||" $rbConfig
|
||||
'';
|
||||
|
||||
meta = {
|
||||
license = stdenv.lib.licenses.ruby;
|
||||
homepage = "http://www.ruby-lang.org/en/";
|
||||
description = "The Ruby language";
|
||||
platforms = stdenv.lib.platforms.all;
|
||||
};
|
||||
|
||||
passthru = rec {
|
||||
inherit majorVersion minorVersion teenyVersion patchLevel;
|
||||
rubyEngine = "ruby";
|
||||
baseRuby = baseruby;
|
||||
libPath = "lib/${versionNoPatch}";
|
||||
gemPath = "lib/${rubyEngine}/gems/${versionNoPatch}";
|
||||
};
|
||||
}
|
||||
) args; in self;
|
||||
|
||||
in {
|
||||
ruby_1_8_7 = generic {
|
||||
majorVersion = "1";
|
||||
minorVersion = "8";
|
||||
teenyVersion = "7";
|
||||
patchLevel = "374";
|
||||
sha256 = {
|
||||
src = "0v17cmm95f3xwa4kvza8xwbnfvfqcrym8cvqfvscn45bxsmfwvl7";
|
||||
git = "1xddhxr0j26hpxfixvhqdscwk2ri846w2129fcfwfjzvy19igswx";
|
||||
};
|
||||
};
|
||||
|
||||
ruby_1_9_3 = generic {
|
||||
majorVersion = "1";
|
||||
minorVersion = "9";
|
||||
teenyVersion = "3";
|
||||
patchLevel = "551";
|
||||
sha256 = {
|
||||
src = "1s2ibg3s2iflzdv7rfxi1qqkvdbn2dq8gxdn0nxrb77ls5ffanxv";
|
||||
git = "1r9xzzxmci2ajb34qb4y1w424mz878zdgzxkfp9w60agldxnb36s";
|
||||
};
|
||||
};
|
||||
|
||||
ruby_2_0_0 = generic {
|
||||
majorVersion = "2";
|
||||
minorVersion = "0";
|
||||
teenyVersion = "0";
|
||||
patchLevel = "645";
|
||||
sha256 = {
|
||||
src = "1azl3kbqqw3jvwfcsy6fdb7vmwz5w73fwpq1y1gblz79zzzqx7sy";
|
||||
git = "14bnas1iif2shyaz4ylb0832x96y2mda52x0v0aglkvqmcz1cfxb";
|
||||
};
|
||||
};
|
||||
|
||||
ruby_2_1_0 = generic {
|
||||
majorVersion = "2";
|
||||
minorVersion = "1";
|
||||
teenyVersion = "0";
|
||||
patchLevel = "0";
|
||||
sha256 = {
|
||||
src = "17fhfbw8sr13rxfn58wvrhk2f5i88lkna2afn3gdjvprd8gyqf1m";
|
||||
git = "12sn532yvznqfz85378ys0b9ggmj7w8ddhzc1pnnlx7mbyy7r2hx";
|
||||
};
|
||||
};
|
||||
|
||||
ruby_2_1_1 = generic {
|
||||
majorVersion = "2";
|
||||
minorVersion = "1";
|
||||
teenyVersion = "1";
|
||||
patchLevel = "0";
|
||||
sha256 = {
|
||||
src = "0hc9x3mazyvnk94gs19q8mbnanlzk8mv0hii77slkvc8mqqxyhy8";
|
||||
git = "1v2ffvyd0xx1h1qd70431zczhvsdiyyw5kjxih4rszd5avzh5grl";
|
||||
};
|
||||
};
|
||||
|
||||
ruby_2_1_2 = generic {
|
||||
majorVersion = "2";
|
||||
minorVersion = "1";
|
||||
teenyVersion = "2";
|
||||
patchLevel = "353";
|
||||
sha256 = {
|
||||
src = "0db6krc2bd7yha8p96lcqrahjpsz7g7abhni134g708sh53n8apj";
|
||||
git = "14f8w3zwngnxsgigffh6h9z3ng53xq8mk126xmwrsmz9n3ypm6l0";
|
||||
};
|
||||
};
|
||||
|
||||
ruby_2_1_3 = generic {
|
||||
majorVersion = "2";
|
||||
minorVersion = "1";
|
||||
teenyVersion = "3";
|
||||
patchLevel = "0";
|
||||
sha256 = {
|
||||
src = "00bz6jcbxgnllplk4b9lnyc3w8yd3pz5rn11rmca1s8cn6vvw608";
|
||||
git = "1pnam9jry2l2mbji3gvrbb7jyisxl99xjz6l1qrccwnfinxxbmhv";
|
||||
};
|
||||
};
|
||||
|
||||
ruby_2_1_6 = generic {
|
||||
majorVersion = "2";
|
||||
minorVersion = "1";
|
||||
teenyVersion = "6";
|
||||
patchLevel = "0";
|
||||
sha256 = {
|
||||
src = "1r4bs8lfwsypbcf8j2lpv3by40729vp5mh697njizj97fjp644qy";
|
||||
git = "18kbjsbmgv6l3p1qxgmjnhh4jl7xdk3c20ycjpp62vrhq7pyzjsm";
|
||||
};
|
||||
};
|
||||
|
||||
ruby_2_2_0 = generic {
|
||||
majorVersion = "2";
|
||||
minorVersion = "2";
|
||||
teenyVersion = "0";
|
||||
patchLevel = "0";
|
||||
sha256 = {
|
||||
src = "1z2092fbpc2qkv1j3yj7jdz7qwvqpxqpmcnkphpjcpgvmfaf6wbn";
|
||||
git = "1w7rr2nq1bbw6aiagddzlrr3rl95kk33x4pv6570nm072g55ybpi";
|
||||
};
|
||||
};
|
||||
|
||||
ruby_2_2_2 = generic {
|
||||
majorVersion = "2";
|
||||
minorVersion = "2";
|
||||
teenyVersion = "2";
|
||||
patchLevel = "0";
|
||||
sha256 = {
|
||||
src = "0i4v7l8pnam0by2cza12zldlhrffqchwb2m9shlnp7j2gqqhzz2z";
|
||||
git = "08mw1ql2ghy483cp8xzzm78q17simn4l6phgm2gah7kjh9y3vbrn";
|
||||
};
|
||||
};
|
||||
}
|
||||
126
pkgs/development/interpreters/ruby/patchsets.nix
Normal file
126
pkgs/development/interpreters/ruby/patchsets.nix
Normal file
@@ -0,0 +1,126 @@
|
||||
{ patchSet, useRailsExpress, ops, patchLevel }:
|
||||
|
||||
let self = rec {
|
||||
"1.8.7" = [
|
||||
"${patchSet}/patches/ruby/1.8.7/p${patchLevel}/railsexpress/01-ignore-generated-files.patch"
|
||||
"${patchSet}/patches/ruby/1.8.7/p${patchLevel}/railsexpress/02-fix-tests-for-osx.patch"
|
||||
"${patchSet}/patches/ruby/1.8.7/p${patchLevel}/railsexpress/03-sigvtalrm-fix.patch"
|
||||
"${patchSet}/patches/ruby/1.8.7/p${patchLevel}/railsexpress/04-railsbench-gc-patch.patch"
|
||||
"${patchSet}/patches/ruby/1.8.7/p${patchLevel}/railsexpress/05-display-full-stack-trace.patch"
|
||||
"${patchSet}/patches/ruby/1.8.7/p${patchLevel}/railsexpress/06-better-source-file-tracing.patch"
|
||||
"${patchSet}/patches/ruby/1.8.7/p${patchLevel}/railsexpress/07-heap-dump-support.patch"
|
||||
"${patchSet}/patches/ruby/1.8.7/p${patchLevel}/railsexpress/08-fork-support-for-gc-logging.patch"
|
||||
"${patchSet}/patches/ruby/1.8.7/p${patchLevel}/railsexpress/09-track-malloc-size.patch"
|
||||
"${patchSet}/patches/ruby/1.8.7/p${patchLevel}/railsexpress/10-track-object-allocation.patch"
|
||||
"${patchSet}/patches/ruby/1.8.7/p${patchLevel}/railsexpress/11-expose-heap-slots.patch"
|
||||
"${patchSet}/patches/ruby/1.8.7/p${patchLevel}/railsexpress/12-fix-heap-size-growth-logic.patch"
|
||||
"${patchSet}/patches/ruby/1.8.7/p${patchLevel}/railsexpress/13-heap-slot-size.patch"
|
||||
"${patchSet}/patches/ruby/1.8.7/p${patchLevel}/railsexpress/14-add-trace-stats-enabled-methods.patch"
|
||||
"${patchSet}/patches/ruby/1.8.7/p${patchLevel}/railsexpress/15-track-live-dataset-size.patch"
|
||||
"${patchSet}/patches/ruby/1.8.7/p${patchLevel}/railsexpress/16-add-object-size-information-to-heap-dump.patch"
|
||||
"${patchSet}/patches/ruby/1.8.7/p${patchLevel}/railsexpress/17-caller-for-all-threads.patch"
|
||||
];
|
||||
"1.9.3" = [
|
||||
./ruby19-parallel-install.patch
|
||||
./bitperfect-rdoc.patch
|
||||
] ++ ops useRailsExpress [
|
||||
"${patchSet}/patches/ruby/1.9.3/p${patchLevel}/railsexpress/01-fix-make-clean.patch"
|
||||
"${patchSet}/patches/ruby/1.9.3/p${patchLevel}/railsexpress/02-zero-broken-tests.patch"
|
||||
"${patchSet}/patches/ruby/1.9.3/p${patchLevel}/railsexpress/03-railsbench-gc.patch"
|
||||
"${patchSet}/patches/ruby/1.9.3/p${patchLevel}/railsexpress/04-display-more-detailed-stack-trace.patch"
|
||||
"${patchSet}/patches/ruby/1.9.3/p${patchLevel}/railsexpress/05-fork-support-for-gc-logging.patch"
|
||||
"${patchSet}/patches/ruby/1.9.3/p${patchLevel}/railsexpress/06-track-live-dataset-size.patch"
|
||||
"${patchSet}/patches/ruby/1.9.3/p${patchLevel}/railsexpress/07-webrick_204_304_keep_alive_fix.patch"
|
||||
"${patchSet}/patches/ruby/1.9.3/p${patchLevel}/railsexpress/08-export-a-few-more-symbols-for-ruby-prof.patch"
|
||||
"${patchSet}/patches/ruby/1.9.3/p${patchLevel}/railsexpress/09-thread-variables.patch"
|
||||
"${patchSet}/patches/ruby/1.9.3/p${patchLevel}/railsexpress/10-faster-loading.patch"
|
||||
"${patchSet}/patches/ruby/1.9.3/p${patchLevel}/railsexpress/11-falcon-st-opt.patch"
|
||||
"${patchSet}/patches/ruby/1.9.3/p${patchLevel}/railsexpress/12-falcon-sparse-array.patch"
|
||||
"${patchSet}/patches/ruby/1.9.3/p${patchLevel}/railsexpress/13-falcon-array-queue.patch"
|
||||
"${patchSet}/patches/ruby/1.9.3/p${patchLevel}/railsexpress/14-railsbench-gc-fixes.patch"
|
||||
"${patchSet}/patches/ruby/1.9.3/p${patchLevel}/railsexpress/15-show-full-backtrace-on-stack-overflow.patch"
|
||||
"${patchSet}/patches/ruby/1.9.3/p${patchLevel}/railsexpress/16-configurable-fiber-stack-sizes.patch"
|
||||
"${patchSet}/patches/ruby/1.9.3/p${patchLevel}/railsexpress/17-backport-psych-20.patch"
|
||||
"${patchSet}/patches/ruby/1.9.3/p${patchLevel}/railsexpress/18-fix-missing-c-return-event.patch"
|
||||
"${patchSet}/patches/ruby/1.9.3/p${patchLevel}/railsexpress/19-fix-process-daemon-call.patch"
|
||||
];
|
||||
"2.0.0" = ops useRailsExpress [
|
||||
"${patchSet}/patches/ruby/2.0.0/p${patchLevel}/railsexpress/01-zero-broken-tests.patch"
|
||||
"${patchSet}/patches/ruby/2.0.0/p${patchLevel}/railsexpress/02-railsexpress-gc.patch"
|
||||
"${patchSet}/patches/ruby/2.0.0/p${patchLevel}/railsexpress/03-display-more-detailed-stack-trace.patch"
|
||||
"${patchSet}/patches/ruby/2.0.0/p${patchLevel}/railsexpress/04-show-full-backtrace-on-stack-overflow.patch"
|
||||
];
|
||||
"2.1.0" = ops useRailsExpress [
|
||||
"${patchSet}/patches/ruby/2.1.0/railsexpress/01-current-2.1.1-fixes.patch"
|
||||
"${patchSet}/patches/ruby/2.1.0/railsexpress/02-zero-broken-tests.patch"
|
||||
"${patchSet}/patches/ruby/2.1.0/railsexpress/03-improve-gc-stats.patch"
|
||||
"${patchSet}/patches/ruby/2.1.0/railsexpress/04-display-more-detailed-stack-trace.patch"
|
||||
"${patchSet}/patches/ruby/2.1.0/railsexpress/05-show-full-backtrace-on-stack-overflow.patch"
|
||||
"${patchSet}/patches/ruby/2.1.0/railsexpress/06-fix-missing-c-return-event.patch"
|
||||
"${patchSet}/patches/ruby/2.1.0/railsexpress/07-backport-006e66b6680f60adfb434ee7397f0dbc77de7873.patch"
|
||||
"${patchSet}/patches/ruby/2.1.0/railsexpress/08-funny-falcon-stc-density.patch"
|
||||
"${patchSet}/patches/ruby/2.1.0/railsexpress/09-funny-falcon-stc-pool-allocation.patch"
|
||||
"${patchSet}/patches/ruby/2.1.0/railsexpress/10-aman-opt-aset-aref-str.patch"
|
||||
"${patchSet}/patches/ruby/2.1.0/railsexpress/11-funny-falcon-method-cache.patch"
|
||||
"${patchSet}/patches/ruby/2.1.0/railsexpress/12-backport-r44370.patch"
|
||||
];
|
||||
"2.1.1" = ops useRailsExpress [
|
||||
"${patchSet}/patches/ruby/2.1.0/railsexpress/01-zero-broken-tests.patch"
|
||||
"${patchSet}/patches/ruby/2.1.0/railsexpress/02-improve-gc-stats.patch"
|
||||
"${patchSet}/patches/ruby/2.1.0/railsexpress/03-display-more-detailed-stack-trace.patch"
|
||||
"${patchSet}/patches/ruby/2.1.0/railsexpress/04-show-full-backtrace-on-stack-overflow.patch"
|
||||
"${patchSet}/patches/ruby/2.1.0/railsexpress/05-fix-missing-c-return-event.patch"
|
||||
"${patchSet}/patches/ruby/2.1.0/railsexpress/07-backport-006e66b6680f60adfb434ee7397f0dbc77de7873.patch"
|
||||
"${patchSet}/patches/ruby/2.1.0/railsexpress/08-funny-falcon-stc-density.patch"
|
||||
"${patchSet}/patches/ruby/2.1.0/railsexpress/09-funny-falcon-stc-pool-allocation.patch"
|
||||
"${patchSet}/patches/ruby/2.1.0/railsexpress/10-aman-opt-aset-aref-str.patch"
|
||||
"${patchSet}/patches/ruby/2.1.0/railsexpress/11-funny-falcon-method-cache.patch"
|
||||
"${patchSet}/patches/ruby/2.1.0/railsexpress/12-backport-r44370.patch"
|
||||
];
|
||||
"2.1.2" = ops useRailsExpress [
|
||||
"${patchSet}/patches/ruby/2.1.2/railsexpress/01-zero-broken-tests.patch"
|
||||
"${patchSet}/patches/ruby/2.1.2/railsexpress/02-improve-gc-stats.patch"
|
||||
"${patchSet}/patches/ruby/2.1.2/railsexpress/03-display-more-detailed-stack-trace.patch"
|
||||
"${patchSet}/patches/ruby/2.1.2/railsexpress/04-show-full-backtrace-on-stack-overflow.patch"
|
||||
"${patchSet}/patches/ruby/2.1.2/railsexpress/05-fix-missing-c-return-event.patch"
|
||||
"${patchSet}/patches/ruby/2.1.2/railsexpress/06-backport-006e66b6680f60adfb434ee7397f0dbc77de7873.patch"
|
||||
"${patchSet}/patches/ruby/2.1.2/railsexpress/07-funny-falcon-stc-density.patch"
|
||||
"${patchSet}/patches/ruby/2.1.2/railsexpress/08-funny-falcon-stc-pool-allocation.patch"
|
||||
"${patchSet}/patches/ruby/2.1.2/railsexpress/09-aman-opt-aset-aref-str.patch"
|
||||
"${patchSet}/patches/ruby/2.1.2/railsexpress/10-funny-falcon-method-cache.patch"
|
||||
];
|
||||
"2.1.3" = ops useRailsExpress [
|
||||
"${patchSet}/patches/ruby/2.1.3/railsexpress/01-zero-broken-tests.patch"
|
||||
"${patchSet}/patches/ruby/2.1.3/railsexpress/02-improve-gc-stats.patch"
|
||||
"${patchSet}/patches/ruby/2.1.3/railsexpress/03-display-more-detailed-stack-trace.patch"
|
||||
"${patchSet}/patches/ruby/2.1.3/railsexpress/04-show-full-backtrace-on-stack-overflow.patch"
|
||||
"${patchSet}/patches/ruby/2.1.3/railsexpress/05-funny-falcon-stc-density.patch"
|
||||
"${patchSet}/patches/ruby/2.1.3/railsexpress/06-funny-falcon-stc-pool-allocation.patch"
|
||||
"${patchSet}/patches/ruby/2.1.3/railsexpress/07-aman-opt-aset-aref-str.patch"
|
||||
"${patchSet}/patches/ruby/2.1.3/railsexpress/08-funny-falcon-method-cache.patch"
|
||||
];
|
||||
"2.1.6" = ops useRailsExpress [
|
||||
"${patchSet}/patches/ruby/2.1.6/railsexpress/01-zero-broken-tests.patch"
|
||||
"${patchSet}/patches/ruby/2.1.6/railsexpress/02-improve-gc-stats.patch"
|
||||
"${patchSet}/patches/ruby/2.1.6/railsexpress/03-display-more-detailed-stack-trace.patch"
|
||||
"${patchSet}/patches/ruby/2.1.6/railsexpress/04-show-full-backtrace-on-stack-overflow.patch"
|
||||
"${patchSet}/patches/ruby/2.1.6/railsexpress/05-funny-falcon-stc-density.patch"
|
||||
"${patchSet}/patches/ruby/2.1.6/railsexpress/06-funny-falcon-stc-pool-allocation.patch"
|
||||
"${patchSet}/patches/ruby/2.1.6/railsexpress/07-aman-opt-aset-aref-str.patch"
|
||||
"${patchSet}/patches/ruby/2.1.6/railsexpress/08-funny-falcon-method-cache.patch"
|
||||
"${patchSet}/patches/ruby/2.1.6/railsexpress/09-heap-dump-support.patch"
|
||||
];
|
||||
"2.2.0" = ops useRailsExpress [
|
||||
"${patchSet}/patches/ruby/2.2.0/railsexpress/01-zero-broken-tests.patch"
|
||||
"${patchSet}/patches/ruby/2.2.0/railsexpress/02-improve-gc-stats.patch"
|
||||
"${patchSet}/patches/ruby/2.2.0/railsexpress/03-display-more-detailed-stack-trace.patch"
|
||||
"${patchSet}/patches/ruby/2.2.0/railsexpress/04-backport-401c8bb.patch"
|
||||
"${patchSet}/patches/ruby/2.2.0/railsexpress/05-fix-packed-bitfield-compat-warning-for-older-gccs.patch"
|
||||
];
|
||||
"2.2.2" = ops useRailsExpress [
|
||||
"${patchSet}/patches/ruby/2.2.2/railsexpress/01-zero-broken-tests.patch"
|
||||
"${patchSet}/patches/ruby/2.2.2/railsexpress/02-improve-gc-stats.patch"
|
||||
"${patchSet}/patches/ruby/2.2.2/railsexpress/03-display-more-detailed-stack-trace.patch"
|
||||
"${patchSet}/patches/ruby/2.2.2/railsexpress/04-backported-bugfixes-222.patch"
|
||||
];
|
||||
}; in self
|
||||
@@ -60,6 +60,9 @@ stdenv.mkDerivation rec {
|
||||
];
|
||||
|
||||
configureFlags = [ "--enable-shared" "--enable-pthread" ]
|
||||
# Without this fails due to not finding X11/Xlib.h
|
||||
# Not sure why this isn't required on Linux
|
||||
++ ops stdenv.isDarwin [ "--without-tcl" "--without-tk" ]
|
||||
++ op useRailsExpress "--with-baseruby=${baseruby}/bin/ruby";
|
||||
|
||||
installFlags = stdenv.lib.optionalString docSupport "install-doc";
|
||||
|
||||
@@ -1,121 +0,0 @@
|
||||
{ stdenv, lib, fetchurl, fetchFromGitHub
|
||||
, zlib, zlibSupport ? true
|
||||
, openssl, opensslSupport ? true
|
||||
, gdbm, gdbmSupport ? true
|
||||
, ncurses, readline, cursesSupport ? true
|
||||
, groff, docSupport ? false
|
||||
, libyaml, yamlSupport ? true
|
||||
, ruby_1_9_3, autoreconfHook, bison, useRailsExpress ? true
|
||||
}:
|
||||
|
||||
let
|
||||
op = stdenv.lib.optional;
|
||||
ops = stdenv.lib.optionals;
|
||||
patchSet = import ./rvm-patchsets.nix { inherit fetchFromGitHub; };
|
||||
baseruby = ruby_1_9_3.override { useRailsExpress = false; };
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = with passthru; "${majorVersion}.${minorVersion}.${teenyVersion}-p${patchLevel}";
|
||||
|
||||
name = "ruby-${version}";
|
||||
|
||||
src = if useRailsExpress then fetchFromGitHub {
|
||||
owner = "ruby";
|
||||
repo = "ruby";
|
||||
rev = "v1_9_3_${passthru.patchLevel}";
|
||||
sha256 = "040x67snfjrql5j7blizpm9j58jhwvh00v8h1h59aq90h52lkj68";
|
||||
} else fetchurl {
|
||||
url = "http://cache.ruby-lang.org/pub/ruby/1.9/${name}.tar.bz2";
|
||||
sha256 = "0k7g0ahicjnd4sij2pml1p1dcb95ms3k3j1k3169n02kzz9qwn7g";
|
||||
};
|
||||
|
||||
# Have `configure' avoid `/usr/bin/nroff' in non-chroot builds.
|
||||
NROFF = "${groff}/bin/nroff";
|
||||
|
||||
buildInputs = ops useRailsExpress [ autoreconfHook bison ]
|
||||
++ (ops cursesSupport [ ncurses readline ] )
|
||||
++ (op docSupport groff )
|
||||
++ (op zlibSupport zlib)
|
||||
++ (op opensslSupport openssl)
|
||||
++ (op gdbmSupport gdbm)
|
||||
++ (op yamlSupport libyaml)
|
||||
# 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);
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
patches = [
|
||||
./ruby19-parallel-install.patch
|
||||
./bitperfect-rdoc.patch
|
||||
] ++ ops useRailsExpress [
|
||||
"${patchSet}/patches/ruby/1.9.3/p547/railsexpress/01-fix-make-clean.patch"
|
||||
"${patchSet}/patches/ruby/1.9.3/p547/railsexpress/02-railsbench-gc.patch"
|
||||
"${patchSet}/patches/ruby/1.9.3/p547/railsexpress/03-display-more-detailed-stack-trace.patch"
|
||||
"${patchSet}/patches/ruby/1.9.3/p547/railsexpress/04-fork-support-for-gc-logging.patch"
|
||||
"${patchSet}/patches/ruby/1.9.3/p547/railsexpress/05-track-live-dataset-size.patch"
|
||||
"${patchSet}/patches/ruby/1.9.3/p547/railsexpress/06-webrick_204_304_keep_alive_fix.patch"
|
||||
"${patchSet}/patches/ruby/1.9.3/p547/railsexpress/07-export-a-few-more-symbols-for-ruby-prof.patch"
|
||||
"${patchSet}/patches/ruby/1.9.3/p547/railsexpress/08-thread-variables.patch"
|
||||
"${patchSet}/patches/ruby/1.9.3/p547/railsexpress/09-faster-loading.patch"
|
||||
"${patchSet}/patches/ruby/1.9.3/p547/railsexpress/10-falcon-st-opt.patch"
|
||||
"${patchSet}/patches/ruby/1.9.3/p547/railsexpress/11-falcon-sparse-array.patch"
|
||||
"${patchSet}/patches/ruby/1.9.3/p547/railsexpress/12-falcon-array-queue.patch"
|
||||
"${patchSet}/patches/ruby/1.9.3/p547/railsexpress/13-railsbench-gc-fixes.patch"
|
||||
"${patchSet}/patches/ruby/1.9.3/p547/railsexpress/14-show-full-backtrace-on-stack-overflow.patch"
|
||||
"${patchSet}/patches/ruby/1.9.3/p547/railsexpress/15-configurable-fiber-stack-sizes.patch"
|
||||
"${patchSet}/patches/ruby/1.9.3/p547/railsexpress/16-backport-psych-20.patch"
|
||||
"${patchSet}/patches/ruby/1.9.3/p547/railsexpress/17-fix-missing-c-return-event.patch"
|
||||
"${patchSet}/patches/ruby/1.9.3/p547/railsexpress/18-fix-process-daemon-call.patch"
|
||||
];
|
||||
|
||||
configureFlags = [ "--enable-shared" "--enable-pthread" ]
|
||||
++ op useRailsExpress "--with-baseruby=${baseruby}/bin/ruby"
|
||||
# on darwin, we have /usr/include/tk.h -- so the configure script detects
|
||||
# that tk is installed
|
||||
++ ( if stdenv.isDarwin then [ "--with-out-ext=tk " ] else [ ]);
|
||||
|
||||
installFlags = stdenv.lib.optionalString docSupport "install-doc";
|
||||
|
||||
CFLAGS = stdenv.lib.optionalString stdenv.isDarwin "-mmacosx-version-min=10.7";
|
||||
|
||||
postInstall = ''
|
||||
# Bundler tries to create this directory
|
||||
mkdir -pv $out/${passthru.gemPath}
|
||||
mkdir -p $out/nix-support
|
||||
cat > $out/nix-support/setup-hook <<EOF
|
||||
addGemPath() {
|
||||
addToSearchPath GEM_PATH \$1/${passthru.gemPath}
|
||||
}
|
||||
|
||||
envHooks+=(addGemPath)
|
||||
EOF
|
||||
'' + lib.optionalString useRailsExpress ''
|
||||
rbConfig=$(find $out/lib/ruby -name rbconfig.rb)
|
||||
|
||||
# Prevent the baseruby from being included in the closure.
|
||||
sed -i '/^ CONFIG\["BASERUBY"\]/d' $rbConfig
|
||||
sed -i "s|'--with-baseruby=${baseruby}/bin/ruby'||" $rbConfig
|
||||
'';
|
||||
|
||||
meta = {
|
||||
license = "Ruby";
|
||||
homepage = "http://www.ruby-lang.org/en/";
|
||||
description = "The Ruby language";
|
||||
maintainers = with stdenv.lib.maintainers; [ lovek323 ];
|
||||
platforms = stdenv.lib.platforms.all;
|
||||
};
|
||||
|
||||
passthru = rec {
|
||||
majorVersion = "1";
|
||||
minorVersion = "9";
|
||||
teenyVersion = "3";
|
||||
patchLevel = "547";
|
||||
rubyEngine = "ruby";
|
||||
libPath = "lib/${rubyEngine}/${majorVersion}.${minorVersion}.${teenyVersion}";
|
||||
gemPath = "lib/${rubyEngine}/gems/${majorVersion}.${minorVersion}.${teenyVersion}";
|
||||
};
|
||||
}
|
||||
@@ -1,104 +0,0 @@
|
||||
{ stdenv, lib, fetchurl, fetchFromGitHub
|
||||
, zlib, zlibSupport ? true
|
||||
, openssl, opensslSupport ? true
|
||||
, gdbm, gdbmSupport ? true
|
||||
, ncurses, readline, cursesSupport ? true
|
||||
, groff, docSupport ? false
|
||||
, libyaml, yamlSupport ? true
|
||||
, libffi, fiddleSupport ? true
|
||||
, ruby_2_0_0, autoreconfHook, bison, useRailsExpress ? true
|
||||
}:
|
||||
|
||||
let
|
||||
op = stdenv.lib.optional;
|
||||
ops = stdenv.lib.optionals;
|
||||
patchSet = import ./rvm-patchsets.nix { inherit fetchFromGitHub; };
|
||||
baseruby = ruby_2_0_0.override { useRailsExpress = false; };
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = with passthru; "${majorVersion}.${minorVersion}.${teenyVersion}-p${patchLevel}";
|
||||
|
||||
name = "ruby-${version}";
|
||||
|
||||
src = if useRailsExpress then fetchFromGitHub {
|
||||
owner = "ruby";
|
||||
repo = "ruby";
|
||||
rev = "v2_0_0_${passthru.patchLevel}";
|
||||
sha256 = "07ccnxgiqxn5ycmq2wl7j3aqmndm4n358y35kzaivb488ayjg3pj";
|
||||
} else fetchurl {
|
||||
url = "http://cache.ruby-lang.org/pub/ruby/2.0/${name}.tar.bz2";
|
||||
sha256 = "1qnqccyfhx0fykxqbzlxq0yvyvq6q9v32givyfyr303dx7bxlqh7";
|
||||
};
|
||||
|
||||
# Have `configure' avoid `/usr/bin/nroff' in non-chroot builds.
|
||||
NROFF = "${groff}/bin/nroff";
|
||||
|
||||
buildInputs = ops useRailsExpress [ autoreconfHook bison ]
|
||||
++ (op fiddleSupport libffi)
|
||||
++ (ops cursesSupport [ ncurses readline ] )
|
||||
++ (op docSupport groff )
|
||||
++ (op zlibSupport zlib)
|
||||
++ (op opensslSupport openssl)
|
||||
++ (op gdbmSupport gdbm)
|
||||
++ (op yamlSupport libyaml)
|
||||
# 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);
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
patches = ops useRailsExpress [
|
||||
"${patchSet}/patches/ruby/2.0.0/p481/railsexpress/01-zero-broken-tests.patch"
|
||||
"${patchSet}/patches/ruby/2.0.0/p481/railsexpress/02-railsexpress-gc.patch"
|
||||
"${patchSet}/patches/ruby/2.0.0/p481/railsexpress/03-display-more-detailed-stack-trace.patch"
|
||||
"${patchSet}/patches/ruby/2.0.0/p481/railsexpress/04-show-full-backtrace-on-stack-overflow.patch"
|
||||
"${patchSet}/patches/ruby/2.0.0/p481/railsexpress/05-fix-missing-c-return-event.patch"
|
||||
];
|
||||
|
||||
configureFlags = ["--enable-shared" ]
|
||||
++ op useRailsExpress "--with-baseruby=${baseruby}/bin/ruby"
|
||||
# on darwin, we have /usr/include/tk.h -- so the configure script detects
|
||||
# that tk is installed
|
||||
++ ( if stdenv.isDarwin then [ "--with-out-ext=tk " ] else [ ]);
|
||||
|
||||
installFlags = stdenv.lib.optionalString docSupport "install-doc";
|
||||
# Bundler tries to create this directory
|
||||
postInstall = ''
|
||||
# Bundler tries to create this directory
|
||||
mkdir -pv $out/${passthru.gemPath}
|
||||
mkdir -p $out/nix-support
|
||||
cat > $out/nix-support/setup-hook <<EOF
|
||||
addGemPath() {
|
||||
addToSearchPath GEM_PATH \$1/${passthru.gemPath}
|
||||
}
|
||||
|
||||
envHooks+=(addGemPath)
|
||||
EOF
|
||||
'' + lib.optionalString useRailsExpress ''
|
||||
rbConfig=$(find $out/lib/ruby -name rbconfig.rb)
|
||||
|
||||
# Prevent the baseruby from being included in the closure.
|
||||
sed -i '/^ CONFIG\["BASERUBY"\]/d' $rbConfig
|
||||
sed -i "s|'--with-baseruby=${baseruby}/bin/ruby'||" $rbConfig
|
||||
'';
|
||||
|
||||
meta = {
|
||||
license = stdenv.lib.licenses.ruby;
|
||||
homepage = "http://www.ruby-lang.org/en/";
|
||||
description = "The Ruby language";
|
||||
platforms = stdenv.lib.platforms.all;
|
||||
};
|
||||
|
||||
passthru = rec {
|
||||
majorVersion = "2";
|
||||
minorVersion = "0";
|
||||
teenyVersion = "0";
|
||||
patchLevel = "481";
|
||||
rubyEngine = "ruby";
|
||||
libPath = "lib/${rubyEngine}/${majorVersion}.${minorVersion}.${teenyVersion}";
|
||||
gemPath = "lib/${rubyEngine}/gems/${majorVersion}.${minorVersion}.${teenyVersion}";
|
||||
};
|
||||
}
|
||||
@@ -1,120 +0,0 @@
|
||||
{ stdenv, lib, fetchurl, fetchgit, fetchFromGitHub
|
||||
, zlib, zlibSupport ? true
|
||||
, openssl, opensslSupport ? true
|
||||
, gdbm, gdbmSupport ? true
|
||||
, ncurses, readline, cursesSupport ? true
|
||||
, groff, docSupport ? false
|
||||
, libyaml, yamlSupport ? true
|
||||
, libffi, fiddleSupport ? true
|
||||
, ruby_2_1_0, autoreconfHook, bison, useRailsExpress ? true
|
||||
}:
|
||||
|
||||
let
|
||||
op = stdenv.lib.optional;
|
||||
ops = stdenv.lib.optionals;
|
||||
patchSet = import ./rvm-patchsets.nix { inherit fetchFromGitHub; };
|
||||
config = import ./config.nix fetchgit;
|
||||
baseruby = ruby_2_1_0.override { useRailsExpress = false; };
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = with passthru; "${majorVersion}.${minorVersion}.${teenyVersion}-p${patchLevel}";
|
||||
|
||||
name = "ruby-${version}";
|
||||
|
||||
src = if useRailsExpress then fetchFromGitHub {
|
||||
owner = "ruby";
|
||||
repo = "ruby";
|
||||
rev = "v2_1_0";
|
||||
sha256 = "12sn532yvznqfz85378ys0b9ggmj7w8ddhzc1pnnlx7mbyy7r2hx";
|
||||
} else fetchurl {
|
||||
url = "http://cache.ruby-lang.org/pub/ruby/2.1/ruby-2.1.0.tar.gz";
|
||||
sha256 = "17fhfbw8sr13rxfn58wvrhk2f5i88lkna2afn3gdjvprd8gyqf1m";
|
||||
};
|
||||
|
||||
# Have `configure' avoid `/usr/bin/nroff' in non-chroot builds.
|
||||
NROFF = "${groff}/bin/nroff";
|
||||
|
||||
buildInputs = ops useRailsExpress [ autoreconfHook bison ]
|
||||
++ (op fiddleSupport libffi)
|
||||
++ (ops cursesSupport [ ncurses readline ] )
|
||||
++ (op docSupport groff )
|
||||
++ (op zlibSupport zlib)
|
||||
++ (op opensslSupport openssl)
|
||||
++ (op gdbmSupport gdbm)
|
||||
++ (op yamlSupport libyaml)
|
||||
# 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);
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
patches = ops useRailsExpress [
|
||||
"${patchSet}/patches/ruby/2.1.0/railsexpress/01-current-2.1.1-fixes.patch"
|
||||
"${patchSet}/patches/ruby/2.1.0/railsexpress/02-zero-broken-tests.patch"
|
||||
"${patchSet}/patches/ruby/2.1.0/railsexpress/03-improve-gc-stats.patch"
|
||||
"${patchSet}/patches/ruby/2.1.0/railsexpress/04-display-more-detailed-stack-trace.patch"
|
||||
"${patchSet}/patches/ruby/2.1.0/railsexpress/05-show-full-backtrace-on-stack-overflow.patch"
|
||||
"${patchSet}/patches/ruby/2.1.0/railsexpress/06-fix-missing-c-return-event.patch"
|
||||
"${patchSet}/patches/ruby/2.1.0/railsexpress/07-backport-006e66b6680f60adfb434ee7397f0dbc77de7873.patch"
|
||||
"${patchSet}/patches/ruby/2.1.0/railsexpress/08-funny-falcon-stc-density.patch"
|
||||
"${patchSet}/patches/ruby/2.1.0/railsexpress/09-funny-falcon-stc-pool-allocation.patch"
|
||||
"${patchSet}/patches/ruby/2.1.0/railsexpress/10-aman-opt-aset-aref-str.patch"
|
||||
"${patchSet}/patches/ruby/2.1.0/railsexpress/11-funny-falcon-method-cache.patch"
|
||||
"${patchSet}/patches/ruby/2.1.0/railsexpress/12-backport-r44370.patch"
|
||||
];
|
||||
|
||||
# Ruby >= 2.1.0 tries to download config.{guess,sub}
|
||||
postPatch = ''
|
||||
rm tool/config_files.rb
|
||||
cp ${config}/config.guess tool/
|
||||
cp ${config}/config.sub tool/
|
||||
'';
|
||||
|
||||
configureFlags = ["--enable-shared" ]
|
||||
++ op useRailsExpress "--with-baseruby=${baseruby}/bin/ruby"
|
||||
# on darwin, we have /usr/include/tk.h -- so the configure script detects
|
||||
# that tk is installed
|
||||
++ ( if stdenv.isDarwin then [ "--with-out-ext=tk " ] else [ ]);
|
||||
|
||||
installFlags = stdenv.lib.optionalString docSupport "install-doc";
|
||||
# Bundler tries to create this directory
|
||||
postInstall = ''
|
||||
# Bundler tries to create this directory
|
||||
mkdir -pv $out/${passthru.gemPath}
|
||||
mkdir -p $out/nix-support
|
||||
cat > $out/nix-support/setup-hook <<EOF
|
||||
addGemPath() {
|
||||
addToSearchPath GEM_PATH \$1/${passthru.gemPath}
|
||||
}
|
||||
|
||||
envHooks+=(addGemPath)
|
||||
EOF
|
||||
'' + lib.optionalString useRailsExpress ''
|
||||
rbConfig=$(find $out/lib/ruby -name rbconfig.rb)
|
||||
|
||||
# Prevent the baseruby from being included in the closure.
|
||||
sed -i '/^ CONFIG\["BASERUBY"\]/d' $rbConfig
|
||||
sed -i "s|'--with-baseruby=${baseruby}/bin/ruby'||" $rbConfig
|
||||
'';
|
||||
|
||||
|
||||
meta = {
|
||||
license = stdenv.lib.licenses.ruby;
|
||||
homepage = "http://www.ruby-lang.org/en/";
|
||||
description = "The Ruby language";
|
||||
platforms = stdenv.lib.platforms.all;
|
||||
};
|
||||
|
||||
passthru = rec {
|
||||
majorVersion = "2";
|
||||
minorVersion = "1";
|
||||
teenyVersion = "0";
|
||||
patchLevel = "0";
|
||||
rubyEngine = "ruby";
|
||||
libPath = "lib/${rubyEngine}/${majorVersion}.${minorVersion}.${teenyVersion}";
|
||||
gemPath = "lib/${rubyEngine}/gems/${majorVersion}.${minorVersion}.${teenyVersion}";
|
||||
};
|
||||
}
|
||||
@@ -1,118 +0,0 @@
|
||||
{ stdenv, lib, fetchurl, fetchgit, fetchFromGitHub
|
||||
, zlib, zlibSupport ? true
|
||||
, openssl, opensslSupport ? true
|
||||
, gdbm, gdbmSupport ? true
|
||||
, ncurses, readline, cursesSupport ? true
|
||||
, groff, docSupport ? false
|
||||
, libyaml, yamlSupport ? true
|
||||
, libffi, fiddleSupport ? true
|
||||
, ruby_2_1_1, autoreconfHook, bison, useRailsExpress ? true
|
||||
}:
|
||||
|
||||
let
|
||||
op = stdenv.lib.optional;
|
||||
ops = stdenv.lib.optionals;
|
||||
patchSet = import ./rvm-patchsets.nix { inherit fetchFromGitHub; };
|
||||
config = import ./config.nix fetchgit;
|
||||
baseruby = ruby_2_1_1.override { useRailsExpress = false; };
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = with passthru; "${majorVersion}.${minorVersion}.${teenyVersion}-p${patchLevel}";
|
||||
|
||||
name = "ruby-${version}";
|
||||
|
||||
src = if useRailsExpress then fetchFromGitHub {
|
||||
owner = "ruby";
|
||||
repo = "ruby";
|
||||
rev = "v2_1_1";
|
||||
sha256 = "1v2ffvyd0xx1h1qd70431zczhvsdiyyw5kjxih4rszd5avzh5grl";
|
||||
} else fetchurl {
|
||||
url = "http://cache.ruby-lang.org/pub/ruby/2.1/ruby-2.1.1.tar.gz";
|
||||
sha256 = "0hc9x3mazyvnk94gs19q8mbnanlzk8mv0hii77slkvc8mqqxyhy8";
|
||||
};
|
||||
|
||||
# Have `configure' avoid `/usr/bin/nroff' in non-chroot builds.
|
||||
NROFF = "${groff}/bin/nroff";
|
||||
|
||||
buildInputs = ops useRailsExpress [ autoreconfHook bison ]
|
||||
++ (op fiddleSupport libffi)
|
||||
++ (ops cursesSupport [ ncurses readline ] )
|
||||
++ (op docSupport groff )
|
||||
++ (op zlibSupport zlib)
|
||||
++ (op opensslSupport openssl)
|
||||
++ (op gdbmSupport gdbm)
|
||||
++ (op yamlSupport libyaml)
|
||||
# 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);
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
patches = ops useRailsExpress [
|
||||
"${patchSet}/patches/ruby/2.1.0/railsexpress/01-zero-broken-tests.patch"
|
||||
"${patchSet}/patches/ruby/2.1.0/railsexpress/02-improve-gc-stats.patch"
|
||||
"${patchSet}/patches/ruby/2.1.0/railsexpress/03-display-more-detailed-stack-trace.patch"
|
||||
"${patchSet}/patches/ruby/2.1.0/railsexpress/04-show-full-backtrace-on-stack-overflow.patch"
|
||||
"${patchSet}/patches/ruby/2.1.0/railsexpress/05-fix-missing-c-return-event.patch"
|
||||
"${patchSet}/patches/ruby/2.1.0/railsexpress/07-backport-006e66b6680f60adfb434ee7397f0dbc77de7873.patch"
|
||||
"${patchSet}/patches/ruby/2.1.0/railsexpress/08-funny-falcon-stc-density.patch"
|
||||
"${patchSet}/patches/ruby/2.1.0/railsexpress/09-funny-falcon-stc-pool-allocation.patch"
|
||||
"${patchSet}/patches/ruby/2.1.0/railsexpress/10-aman-opt-aset-aref-str.patch"
|
||||
"${patchSet}/patches/ruby/2.1.0/railsexpress/11-funny-falcon-method-cache.patch"
|
||||
"${patchSet}/patches/ruby/2.1.0/railsexpress/12-backport-r44370.patch"
|
||||
];
|
||||
|
||||
# Ruby >= 2.1.0 tries to download config.{guess,sub}
|
||||
postPatch = ''
|
||||
rm tool/config_files.rb
|
||||
cp ${config}/config.guess tool/
|
||||
cp ${config}/config.sub tool/
|
||||
'';
|
||||
|
||||
configureFlags = ["--enable-shared" ]
|
||||
++ op useRailsExpress "--with-baseruby=${baseruby}/bin/ruby"
|
||||
# on darwin, we have /usr/include/tk.h -- so the configure script detects
|
||||
# that tk is installed
|
||||
++ ( if stdenv.isDarwin then [ "--with-out-ext=tk " ] else [ ]);
|
||||
|
||||
installFlags = stdenv.lib.optionalString docSupport "install-doc";
|
||||
# Bundler tries to create this directory
|
||||
postInstall = ''
|
||||
# Bundler tries to create this directory
|
||||
mkdir -pv $out/${passthru.gemPath}
|
||||
mkdir -p $out/nix-support
|
||||
cat > $out/nix-support/setup-hook <<EOF
|
||||
addGemPath() {
|
||||
addToSearchPath GEM_PATH \$1/${passthru.gemPath}
|
||||
}
|
||||
|
||||
envHooks+=(addGemPath)
|
||||
EOF
|
||||
'' + lib.optionalString useRailsExpress ''
|
||||
rbConfig=$(find $out/lib/ruby -name rbconfig.rb)
|
||||
|
||||
# Prevent the baseruby from being included in the closure.
|
||||
sed -i '/^ CONFIG\["BASERUBY"\]/d' $rbConfig
|
||||
sed -i "s|'--with-baseruby=${baseruby}/bin/ruby'||" $rbConfig
|
||||
'';
|
||||
|
||||
meta = {
|
||||
license = stdenv.lib.licenses.ruby;
|
||||
homepage = "http://www.ruby-lang.org/en/";
|
||||
description = "The Ruby language";
|
||||
platforms = stdenv.lib.platforms.all;
|
||||
};
|
||||
|
||||
passthru = rec {
|
||||
majorVersion = "2";
|
||||
minorVersion = "1";
|
||||
teenyVersion = "1";
|
||||
patchLevel = "0";
|
||||
rubyEngine = "ruby";
|
||||
libPath = "lib/${rubyEngine}/${majorVersion}.${minorVersion}.${teenyVersion}";
|
||||
gemPath = "lib/${rubyEngine}/gems/${majorVersion}.${minorVersion}.${teenyVersion}";
|
||||
};
|
||||
}
|
||||
@@ -1,117 +0,0 @@
|
||||
{ stdenv, lib, fetchurl, fetchgit, fetchFromGitHub
|
||||
, zlib, zlibSupport ? true
|
||||
, openssl, opensslSupport ? true
|
||||
, gdbm, gdbmSupport ? true
|
||||
, ncurses, readline, cursesSupport ? true
|
||||
, groff, docSupport ? false
|
||||
, libyaml, yamlSupport ? true
|
||||
, libffi, fiddleSupport ? true
|
||||
, ruby_2_1_2, autoreconfHook, bison, useRailsExpress ? true
|
||||
}:
|
||||
|
||||
let
|
||||
op = stdenv.lib.optional;
|
||||
ops = stdenv.lib.optionals;
|
||||
patchSet = import ./rvm-patchsets.nix { inherit fetchFromGitHub; };
|
||||
config = import ./config.nix fetchgit;
|
||||
baseruby = ruby_2_1_2.override { useRailsExpress = false; };
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = with passthru; "${majorVersion}.${minorVersion}.${teenyVersion}-p${patchLevel}";
|
||||
|
||||
name = "ruby-${version}";
|
||||
|
||||
src = if useRailsExpress then fetchFromGitHub {
|
||||
owner = "ruby";
|
||||
repo = "ruby";
|
||||
rev = "v2_1_2";
|
||||
sha256 = "14f8w3zwngnxsgigffh6h9z3ng53xq8mk126xmwrsmz9n3ypm6l0";
|
||||
} else fetchurl {
|
||||
url = "http://cache.ruby-lang.org/pub/ruby/2.1/ruby-2.1.2.tar.gz";
|
||||
sha256 = "0db6krc2bd7yha8p96lcqrahjpsz7g7abhni134g708sh53n8apj";
|
||||
};
|
||||
|
||||
# Have `configure' avoid `/usr/bin/nroff' in non-chroot builds.
|
||||
NROFF = "${groff}/bin/nroff";
|
||||
|
||||
buildInputs = ops useRailsExpress [ autoreconfHook bison ]
|
||||
++ (op fiddleSupport libffi)
|
||||
++ (ops cursesSupport [ ncurses readline ] )
|
||||
++ (op docSupport groff )
|
||||
++ (op zlibSupport zlib)
|
||||
++ (op opensslSupport openssl)
|
||||
++ (op gdbmSupport gdbm)
|
||||
++ (op yamlSupport libyaml)
|
||||
# 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);
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
patches = ops useRailsExpress [
|
||||
"${patchSet}/patches/ruby/2.1.2/railsexpress/01-zero-broken-tests.patch"
|
||||
"${patchSet}/patches/ruby/2.1.2/railsexpress/02-improve-gc-stats.patch"
|
||||
"${patchSet}/patches/ruby/2.1.2/railsexpress/03-display-more-detailed-stack-trace.patch"
|
||||
"${patchSet}/patches/ruby/2.1.2/railsexpress/04-show-full-backtrace-on-stack-overflow.patch"
|
||||
"${patchSet}/patches/ruby/2.1.2/railsexpress/05-fix-missing-c-return-event.patch"
|
||||
"${patchSet}/patches/ruby/2.1.2/railsexpress/06-backport-006e66b6680f60adfb434ee7397f0dbc77de7873.patch"
|
||||
"${patchSet}/patches/ruby/2.1.2/railsexpress/07-funny-falcon-stc-density.patch"
|
||||
"${patchSet}/patches/ruby/2.1.2/railsexpress/08-funny-falcon-stc-pool-allocation.patch"
|
||||
"${patchSet}/patches/ruby/2.1.2/railsexpress/09-aman-opt-aset-aref-str.patch"
|
||||
"${patchSet}/patches/ruby/2.1.2/railsexpress/10-funny-falcon-method-cache.patch"
|
||||
];
|
||||
|
||||
# Ruby >= 2.1.0 tries to download config.{guess,sub}
|
||||
postPatch = ''
|
||||
rm tool/config_files.rb
|
||||
cp ${config}/config.guess tool/
|
||||
cp ${config}/config.sub tool/
|
||||
'';
|
||||
|
||||
configureFlags = ["--enable-shared" ]
|
||||
++ op useRailsExpress "--with-baseruby=${baseruby}/bin/ruby"
|
||||
# on darwin, we have /usr/include/tk.h -- so the configure script detects
|
||||
# that tk is installed
|
||||
++ ( if stdenv.isDarwin then [ "--with-out-ext=tk " ] else [ ]);
|
||||
|
||||
installFlags = stdenv.lib.optionalString docSupport "install-doc";
|
||||
# Bundler tries to create this directory
|
||||
postInstall = ''
|
||||
# Bundler tries to create this directory
|
||||
mkdir -pv $out/${passthru.gemPath}
|
||||
mkdir -p $out/nix-support
|
||||
cat > $out/nix-support/setup-hook <<EOF
|
||||
addGemPath() {
|
||||
addToSearchPath GEM_PATH \$1/${passthru.gemPath}
|
||||
}
|
||||
|
||||
envHooks+=(addGemPath)
|
||||
EOF
|
||||
'' + lib.optionalString useRailsExpress ''
|
||||
rbConfig=$(find $out/lib/ruby -name rbconfig.rb)
|
||||
|
||||
# Prevent the baseruby from being included in the closure.
|
||||
sed -i '/^ CONFIG\["BASERUBY"\]/d' $rbConfig
|
||||
sed -i "s|'--with-baseruby=${baseruby}/bin/ruby'||" $rbConfig
|
||||
'';
|
||||
|
||||
meta = {
|
||||
license = stdenv.lib.licenses.ruby;
|
||||
homepage = "http://www.ruby-lang.org/en/";
|
||||
description = "The Ruby language";
|
||||
platforms = stdenv.lib.platforms.all;
|
||||
};
|
||||
|
||||
passthru = rec {
|
||||
majorVersion = "2";
|
||||
minorVersion = "1";
|
||||
teenyVersion = "2";
|
||||
patchLevel = "353";
|
||||
rubyEngine = "ruby";
|
||||
libPath = "lib/${rubyEngine}/${majorVersion}.${minorVersion}.${teenyVersion}";
|
||||
gemPath = "lib/${rubyEngine}/gems/${majorVersion}.${minorVersion}.${teenyVersion}";
|
||||
};
|
||||
}
|
||||
@@ -1,121 +0,0 @@
|
||||
{ stdenv, lib, fetchurl, fetchgit, fetchFromGitHub
|
||||
, zlib, zlibSupport ? true
|
||||
, openssl, opensslSupport ? true
|
||||
, gdbm, gdbmSupport ? true
|
||||
, ncurses, readline, cursesSupport ? true
|
||||
, groff, docSupport ? false
|
||||
, libyaml, yamlSupport ? true
|
||||
, libffi, fiddleSupport ? true
|
||||
, ruby_2_1_3, autoreconfHook, bison, useRailsExpress ? true
|
||||
}:
|
||||
|
||||
let
|
||||
op = stdenv.lib.optional;
|
||||
ops = stdenv.lib.optionals;
|
||||
patchSet = import ./rvm-patchsets.nix { inherit fetchFromGitHub; };
|
||||
config = import ./config.nix fetchgit;
|
||||
baseruby = ruby_2_1_3.override { useRailsExpress = false; };
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = with passthru; "${majorVersion}.${minorVersion}.${teenyVersion}-p${patchLevel}";
|
||||
|
||||
name = "ruby-${version}";
|
||||
|
||||
src = if useRailsExpress then fetchFromGitHub {
|
||||
owner = "ruby";
|
||||
repo = "ruby";
|
||||
rev = "v2_1_3";
|
||||
sha256 = "1pnam9jry2l2mbji3gvrbb7jyisxl99xjz6l1qrccwnfinxxbmhv";
|
||||
} else fetchurl {
|
||||
url = "http://cache.ruby-lang.org/pub/ruby/2.1/ruby-2.1.3.tar.gz";
|
||||
sha256 = "00bz6jcbxgnllplk4b9lnyc3w8yd3pz5rn11rmca1s8cn6vvw608";
|
||||
};
|
||||
|
||||
# Have `configure' avoid `/usr/bin/nroff' in non-chroot builds.
|
||||
NROFF = "${groff}/bin/nroff";
|
||||
|
||||
buildInputs = ops useRailsExpress [ autoreconfHook bison ]
|
||||
++ (op fiddleSupport libffi)
|
||||
++ (ops cursesSupport [ ncurses readline ])
|
||||
++ (op docSupport groff)
|
||||
++ (op zlibSupport zlib)
|
||||
++ (op opensslSupport openssl)
|
||||
++ (op gdbmSupport gdbm)
|
||||
++ (op yamlSupport libyaml)
|
||||
# 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);
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
# Fix a build failure on systems with nix store optimisation.
|
||||
# (The build process attempted to copy file a overwriting file b, where a and
|
||||
# b are hard-linked, which results in cp returning a non-zero exit code.)
|
||||
# https://github.com/NixOS/nixpkgs/issues/4266
|
||||
postUnpack = ''rm "$sourceRoot/enc/unicode/name2ctype.h"'';
|
||||
|
||||
patches = ops useRailsExpress [
|
||||
"${patchSet}/patches/ruby/2.1.3/railsexpress/01-zero-broken-tests.patch"
|
||||
"${patchSet}/patches/ruby/2.1.3/railsexpress/02-improve-gc-stats.patch"
|
||||
"${patchSet}/patches/ruby/2.1.3/railsexpress/03-display-more-detailed-stack-trace.patch"
|
||||
"${patchSet}/patches/ruby/2.1.3/railsexpress/04-show-full-backtrace-on-stack-overflow.patch"
|
||||
"${patchSet}/patches/ruby/2.1.3/railsexpress/05-funny-falcon-stc-density.patch"
|
||||
"${patchSet}/patches/ruby/2.1.3/railsexpress/06-funny-falcon-stc-pool-allocation.patch"
|
||||
"${patchSet}/patches/ruby/2.1.3/railsexpress/07-aman-opt-aset-aref-str.patch"
|
||||
"${patchSet}/patches/ruby/2.1.3/railsexpress/08-funny-falcon-method-cache.patch"
|
||||
];
|
||||
|
||||
# Ruby >= 2.1.0 tries to download config.{guess,sub}
|
||||
postPatch = ''
|
||||
rm tool/config_files.rb
|
||||
cp ${config}/config.guess tool/
|
||||
cp ${config}/config.sub tool/
|
||||
'';
|
||||
|
||||
configureFlags = ["--enable-shared" ]
|
||||
++ op useRailsExpress "--with-baseruby=${baseruby}/bin/ruby"
|
||||
# on darwin, we have /usr/include/tk.h -- so the configure script detects
|
||||
# that tk is installed
|
||||
++ ( if stdenv.isDarwin then [ "--with-out-ext=tk " ] else [ ]);
|
||||
|
||||
installFlags = stdenv.lib.optionalString docSupport "install-doc";
|
||||
# Bundler tries to create this directory
|
||||
postInstall = ''
|
||||
# Bundler tries to create this directory
|
||||
mkdir -pv $out/${passthru.gemPath}
|
||||
mkdir -p $out/nix-support
|
||||
cat > $out/nix-support/setup-hook <<EOF
|
||||
addGemPath() {
|
||||
addToSearchPath GEM_PATH \$1/${passthru.gemPath}
|
||||
}
|
||||
|
||||
envHooks+=(addGemPath)
|
||||
EOF
|
||||
'' + lib.optionalString useRailsExpress ''
|
||||
rbConfig=$(find $out/lib/ruby -name rbconfig.rb)
|
||||
|
||||
# Prevent the baseruby from being included in the closure.
|
||||
sed -i '/^ CONFIG\["BASERUBY"\]/d' $rbConfig
|
||||
sed -i "s|'--with-baseruby=${baseruby}/bin/ruby'||" $rbConfig
|
||||
'';
|
||||
|
||||
meta = {
|
||||
license = stdenv.lib.licenses.ruby;
|
||||
homepage = "http://www.ruby-lang.org/en/";
|
||||
description = "The Ruby language";
|
||||
platforms = stdenv.lib.platforms.all;
|
||||
};
|
||||
|
||||
passthru = rec {
|
||||
majorVersion = "2";
|
||||
minorVersion = "1";
|
||||
teenyVersion = "3";
|
||||
patchLevel = "0";
|
||||
rubyEngine = "ruby";
|
||||
libPath = "lib/${rubyEngine}/${majorVersion}.${minorVersion}.${teenyVersion}";
|
||||
gemPath = "lib/${rubyEngine}/gems/${majorVersion}.${minorVersion}.${teenyVersion}";
|
||||
};
|
||||
}
|
||||
@@ -1,112 +0,0 @@
|
||||
{ stdenv, lib, fetchurl, fetchgit, fetchFromGitHub
|
||||
, zlib, zlibSupport ? true
|
||||
, openssl, opensslSupport ? true
|
||||
, gdbm, gdbmSupport ? true
|
||||
, ncurses, readline, cursesSupport ? true
|
||||
, groff, docSupport ? false
|
||||
, libyaml, yamlSupport ? true
|
||||
, libffi, fiddleSupport ? true
|
||||
, ruby_2_2_0, autoreconfHook, bison, useRailsExpress ? true
|
||||
}:
|
||||
|
||||
let
|
||||
op = stdenv.lib.optional;
|
||||
ops = stdenv.lib.optionals;
|
||||
patchSet = import ./rvm-patchsets.nix { inherit fetchFromGitHub; };
|
||||
config = import ./config.nix fetchgit;
|
||||
baseruby = ruby_2_2_0.override { useRailsExpress = false; };
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = with passthru; "${majorVersion}.${minorVersion}.${teenyVersion}-p${patchLevel}";
|
||||
|
||||
name = "ruby-${version}";
|
||||
|
||||
src = if useRailsExpress then fetchFromGitHub {
|
||||
owner = "ruby";
|
||||
repo = "ruby";
|
||||
rev = "v2_2_0";
|
||||
sha256 = "1w7rr2nq1bbw6aiagddzlrr3rl95kk33x4pv6570nm072g55ybpi";
|
||||
} else fetchurl {
|
||||
url = "http://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.0.tar.gz";
|
||||
sha256 = "1z2092fbpc2qkv1j3yj7jdz7qwvqpxqpmcnkphpjcpgvmfaf6wbn";
|
||||
};
|
||||
|
||||
# Have `configure' avoid `/usr/bin/nroff' in non-chroot builds.
|
||||
NROFF = "${groff}/bin/nroff";
|
||||
|
||||
buildInputs = ops useRailsExpress [ autoreconfHook bison ]
|
||||
++ (op fiddleSupport libffi)
|
||||
++ (ops cursesSupport [ ncurses readline ])
|
||||
++ (op docSupport groff)
|
||||
++ (op zlibSupport zlib)
|
||||
++ (op opensslSupport openssl)
|
||||
++ (op gdbmSupport gdbm)
|
||||
++ (op yamlSupport libyaml)
|
||||
# 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);
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
patches = ops useRailsExpress [
|
||||
"${patchSet}/patches/ruby/2.2.0/railsexpress/01-zero-broken-tests.patch"
|
||||
"${patchSet}/patches/ruby/2.2.0/railsexpress/02-improve-gc-stats.patch"
|
||||
"${patchSet}/patches/ruby/2.2.0/railsexpress/03-display-more-detailed-stack-trace.patch"
|
||||
"${patchSet}/patches/ruby/2.2.0/railsexpress/04-backport-401c8bb.patch"
|
||||
"${patchSet}/patches/ruby/2.2.0/railsexpress/05-fix-packed-bitfield-compat-warning-for-older-gccs.patch"
|
||||
];
|
||||
|
||||
# Ruby >= 2.1.0 tries to download config.{guess,sub}
|
||||
postPatch = ''
|
||||
rm tool/config_files.rb
|
||||
cp ${config}/config.guess tool/
|
||||
cp ${config}/config.sub tool/
|
||||
'';
|
||||
|
||||
configureFlags = ["--enable-shared" ]
|
||||
++ op useRailsExpress "--with-baseruby=${baseruby}/bin/ruby"
|
||||
# on darwin, we have /usr/include/tk.h -- so the configure script detects
|
||||
# that tk is installed
|
||||
++ ( if stdenv.isDarwin then [ "--with-out-ext=tk " ] else [ ]);
|
||||
|
||||
installFlags = stdenv.lib.optionalString docSupport "install-doc";
|
||||
# Bundler tries to create this directory
|
||||
postInstall = ''
|
||||
# Bundler tries to create this directory
|
||||
mkdir -pv $out/${passthru.gemPath}
|
||||
mkdir -p $out/nix-support
|
||||
cat > $out/nix-support/setup-hook <<EOF
|
||||
addGemPath() {
|
||||
addToSearchPath GEM_PATH \$1/${passthru.gemPath}
|
||||
}
|
||||
|
||||
envHooks+=(addGemPath)
|
||||
EOF
|
||||
'' + lib.optionalString useRailsExpress ''
|
||||
rbConfig=$(find $out/lib/ruby -name rbconfig.rb)
|
||||
|
||||
# Prevent the baseruby from being included in the closure.
|
||||
sed -i '/^ CONFIG\["BASERUBY"\]/d' $rbConfig
|
||||
sed -i "s|'--with-baseruby=${baseruby}/bin/ruby'||" $rbConfig
|
||||
'';
|
||||
|
||||
meta = {
|
||||
license = stdenv.lib.licenses.ruby;
|
||||
homepage = "http://www.ruby-lang.org/en/";
|
||||
description = "The Ruby language";
|
||||
platforms = stdenv.lib.platforms.all;
|
||||
};
|
||||
|
||||
passthru = rec {
|
||||
majorVersion = "2";
|
||||
minorVersion = "2";
|
||||
teenyVersion = "0";
|
||||
patchLevel = "0";
|
||||
rubyEngine = "ruby";
|
||||
libPath = "lib/${rubyEngine}/${majorVersion}.${minorVersion}.${teenyVersion}";
|
||||
gemPath = "lib/${rubyEngine}/gems/${majorVersion}.${minorVersion}.${teenyVersion}";
|
||||
};
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
args : with args;
|
||||
args @ { makeWrapper, ruby, ... }: with args;
|
||||
|
||||
rec {
|
||||
name = "rubygems-" + version;
|
||||
@@ -23,7 +23,7 @@ rec {
|
||||
|
||||
/* doConfigure should be specified separately */
|
||||
phaseNames = ["doPatch" "doInstall"];
|
||||
|
||||
|
||||
meta = {
|
||||
description = "Ruby gems package collection";
|
||||
longDescription = ''
|
||||
|
||||
@@ -3,6 +3,6 @@
|
||||
fetchFromGitHub {
|
||||
owner = "skaes";
|
||||
repo = "rvm-patchsets";
|
||||
rev = "da2e5b4d81e18154befef1448e037b844cb5a326";
|
||||
sha256 = "0fslnkpirgsm7gjd6g194vd24i3y7kl0ihbq5gr94cgvdzzjgad0";
|
||||
rev = "68be466019aa592e0321e894487f090aa459d602";
|
||||
sha256 = "12dw5shirnqbw037jg1sqk1aixyzl32w94y2nlan9by3cv7k3643";
|
||||
}
|
||||
|
||||
@@ -1,26 +1,22 @@
|
||||
{stdenv, fetchurl}:
|
||||
|
||||
let
|
||||
pname = "scsh";
|
||||
version = "0.6.7";
|
||||
name = "${pname}-${version}";
|
||||
in
|
||||
{ stdenv, fetchgit, autoconf, automake, autoreconfHook, scheme48 }:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
inherit name;
|
||||
name = "scsh-0.7pre";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/${pname}/${name}.tar.gz";
|
||||
sha256 = "c4a9f7df2a0bb7a7aa3dafc918aa9e9a566d4ad33a55f0192889de172d1ddb7f";
|
||||
src = fetchgit {
|
||||
url = "git://github.com/scheme/scsh.git";
|
||||
rev = "f99b8c5293628cfeaeb792019072e3a96841104f";
|
||||
fetchSubmodules = true;
|
||||
sha256 = "0fz1r0bmiii9ld91r84dqkqwhnqk0h6drdycq93zcy5ndyn12fqp";
|
||||
};
|
||||
|
||||
meta = {
|
||||
buildInputs = [ autoconf automake autoreconfHook scheme48 ];
|
||||
configureFlags = ''--with-scheme48=${scheme48}'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "A Scheme shell";
|
||||
longDescription = ''
|
||||
SCSH is an implementation of the Scheme shell. It is implemented as
|
||||
a heap image which is interpreted by the Scheme 48 virtual machine.
|
||||
'';
|
||||
homepage = http://www.scsh.net/;
|
||||
license = stdenv.lib.licenses.bsd3;
|
||||
license = licenses.bsd3;
|
||||
maintainers = with maintainers; [ joachifm ];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{ fetchurl, fetchgit, stdenv, xlibs, gcc44, makeWrapper, ncurses, cmake }:
|
||||
{ fetchurl, fetchgit, stdenv, xorg, gcc44, makeWrapper, ncurses, cmake }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
# The Self wrapper stores source in $XDG_DATA_HOME/self or ~/.local/share/self
|
||||
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
|
||||
};
|
||||
|
||||
# gcc 4.6 and above causes crashes on Self startup but gcc 4.4 works.
|
||||
buildInputs = [ gcc44 ncurses xlibs.libX11 xlibs.libXext makeWrapper cmake ];
|
||||
buildInputs = [ gcc44 ncurses xorg.libX11 xorg.libXext makeWrapper cmake ];
|
||||
|
||||
selfWrapper = ./self;
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{ stdenv, fetchurl, pkgconfig, nspr, perl, python, zip }:
|
||||
{ stdenv, fetchurl, pkgconfig, nspr, perl, python, zip, libffi, readline }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "17.0.0";
|
||||
@@ -11,16 +11,26 @@ stdenv.mkDerivation rec {
|
||||
|
||||
propagatedBuildInputs = [ nspr ];
|
||||
|
||||
buildInputs = [ pkgconfig perl python zip ];
|
||||
buildInputs = [ pkgconfig perl python zip libffi readline ];
|
||||
|
||||
postUnpack = "sourceRoot=\${sourceRoot}/js/src";
|
||||
|
||||
postPatch = ''
|
||||
# Fixes an issue with version detection under perl 5.22.x
|
||||
sed -i 's/(defined\((@TEMPLATE_FILE)\))/\1/' config/milestone.pl
|
||||
'';
|
||||
|
||||
preConfigure = ''
|
||||
export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${nspr}/include/nspr"
|
||||
export LIBXUL_DIST=$out
|
||||
'';
|
||||
|
||||
configureFlags = [ "--enable-threadsafe" "--with-system-nspr" ];
|
||||
configureFlags = [
|
||||
"--enable-threadsafe"
|
||||
"--with-system-nspr"
|
||||
"--with-system-ffi"
|
||||
"--enable-readline"
|
||||
];
|
||||
|
||||
# hack around a make problem, see https://github.com/NixOS/nixpkgs/issues/1279#issuecomment-29547393
|
||||
preBuild = "touch -- {.,shell,jsapi-tests}/{-lpthread,-ldl}";
|
||||
@@ -39,6 +49,8 @@ stdenv.mkDerivation rec {
|
||||
paxmark mr jsapi-tests/jsapi-tests
|
||||
'';
|
||||
|
||||
postInstall = ''rm "$out"/lib/*.a''; # halve the output size
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Mozilla's JavaScript engine written in C/C++";
|
||||
homepage = https://developer.mozilla.org/en/SpiderMonkey;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{ stdenv, fetchurl, pkgconfig, nspr, perl, python, zip }:
|
||||
{ stdenv, fetchurl, pkgconfig, nspr, perl, python, zip, libffi, readline }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "24.2.0";
|
||||
@@ -11,7 +11,12 @@ stdenv.mkDerivation rec {
|
||||
|
||||
propagatedBuildInputs = [ nspr ];
|
||||
|
||||
buildInputs = [ pkgconfig perl python zip ];
|
||||
buildInputs = [ pkgconfig perl python zip libffi readline ];
|
||||
|
||||
postPatch = ''
|
||||
# Fixes an issue with version detection under perl 5.22.x
|
||||
sed -i 's/(defined\((@TEMPLATE_FILE)\))/\1/' config/milestone.pl
|
||||
'';
|
||||
|
||||
postUnpack = "sourceRoot=\${sourceRoot}/js/src";
|
||||
|
||||
@@ -20,7 +25,12 @@ stdenv.mkDerivation rec {
|
||||
export LIBXUL_DIST=$out
|
||||
'';
|
||||
|
||||
configureFlags = [ "--enable-threadsafe" "--with-system-nspr" ];
|
||||
configureFlags = [
|
||||
"--enable-threadsafe"
|
||||
"--with-system-nspr"
|
||||
"--with-system-ffi"
|
||||
"--enable-readline"
|
||||
];
|
||||
|
||||
# hack around a make problem, see https://github.com/NixOS/nixpkgs/issues/1279#issuecomment-29547393
|
||||
preBuild = "touch -- {.,shell,jsapi-tests}/{-lpthread,-ldl}";
|
||||
|
||||
65
pkgs/development/interpreters/spidermonkey/31.5.nix
Normal file
65
pkgs/development/interpreters/spidermonkey/31.5.nix
Normal file
@@ -0,0 +1,65 @@
|
||||
{ stdenv, fetchurl, pkgconfig, perl, python, zip, libffi, readline }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "31.5.0";
|
||||
name = "spidermonkey-${version}";
|
||||
|
||||
# the release notes point to some guys home directory, see
|
||||
# https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey/Releases/31
|
||||
# probably it would be more ideal to pull a particular tag/revision
|
||||
# from the mercurial repo
|
||||
src = fetchurl {
|
||||
url = "https://people.mozilla.org/~sstangl/mozjs-31.5.0.tar.bz2";
|
||||
sha256 = "1q8icql5hh1g3gzg5fp4rl9rfagyhm9gilfn3dgi7qn4i1mrfqsd";
|
||||
};
|
||||
|
||||
buildInputs = [ pkgconfig perl python zip libffi readline ];
|
||||
|
||||
postUnpack = "sourceRoot=\${sourceRoot}/js/src";
|
||||
|
||||
preConfigure = ''
|
||||
export LIBXUL_DIST=$out
|
||||
'';
|
||||
|
||||
configureFlags = [
|
||||
"--enable-threadsafe"
|
||||
"--with-system-ffi"
|
||||
"--enable-readline"
|
||||
|
||||
# there is at least one unfixed issue building the tests, so I didn't bother
|
||||
"--disable-tests"
|
||||
|
||||
# enabling these because they're wanted by 0ad. They may or may
|
||||
# not be good defaults for other uses.
|
||||
"--enable-gcgenerational"
|
||||
"--enable-shared-js"
|
||||
|
||||
# Due to a build-system bug, this means the exact opposite of what it says.
|
||||
# It is required by gcgenerational.
|
||||
"--disable-exact-rooting"
|
||||
];
|
||||
|
||||
# This addresses some build system bug. It's quite likely to be safe
|
||||
# to re-enable parallel builds if the source revision changes.
|
||||
enableParallelBuilding = false;
|
||||
|
||||
# see comment by --disable-tests
|
||||
doCheck = false;
|
||||
|
||||
postFixup = ''
|
||||
# The headers are symlinks to a directory that doesn't get put
|
||||
# into $out, so they end up broken. Fix that by just resolving the
|
||||
# symlinks.
|
||||
for i in $(find $out -type l); do
|
||||
cp --remove-destination "$(readlink "$i")" "$i";
|
||||
done
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Mozilla's JavaScript engine written in C/C++";
|
||||
homepage = https://developer.mozilla.org/en/SpiderMonkey;
|
||||
# TODO: MPL/GPL/LGPL tri-license.
|
||||
|
||||
maintainers = [ maintainers.goibhniu ];
|
||||
};
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
{ stdenv, fetchurl, cmake, pkgconfig
|
||||
, jack2, libsndfile, fftw, curl
|
||||
, libjack2, libsndfile, fftw, curl, gcc
|
||||
, libXt, qt, readline
|
||||
, useSCEL ? false, emacs
|
||||
}:
|
||||
@@ -35,6 +35,6 @@ stdenv.mkDerivation rec {
|
||||
nativeBuildInputs = [ cmake pkgconfig ];
|
||||
|
||||
buildInputs = [
|
||||
jack2 libsndfile fftw curl libXt qt readline ]
|
||||
gcc libjack2 libsndfile fftw curl libXt qt readline ]
|
||||
++ optional useSCEL emacs;
|
||||
}
|
||||
|
||||
@@ -10,7 +10,9 @@ stdenv.mkDerivation rec {
|
||||
|
||||
inherit src;
|
||||
|
||||
preConfigure = "cd unix";
|
||||
preConfigure = ''
|
||||
cd unix
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
make install-private-headers
|
||||
@@ -22,6 +24,7 @@ stdenv.mkDerivation rec {
|
||||
homepage = http://www.tcl.tk/;
|
||||
license = licenses.tcltk;
|
||||
platforms = platforms.all;
|
||||
maintainers = with maintainers; [ wkennington ];
|
||||
};
|
||||
|
||||
passthru = rec {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{ lib, stdenv, fetchurl, pkgconfig, gtk, pango, perl, python, zip, libIDL
|
||||
, libjpeg, zlib, dbus, dbus_glib, bzip2, xlibs
|
||||
, libjpeg, zlib, dbus, dbus_glib, bzip2, xorg
|
||||
, freetype, fontconfig, file, alsaLib, nspr, nss, libnotify
|
||||
, yasm, mesa, sqlite, unzip, makeWrapper, pysqlite
|
||||
, hunspell, libevent, libstartup_notification, libvpx
|
||||
@@ -18,11 +18,11 @@ stdenv.mkDerivation rec {
|
||||
|
||||
buildInputs =
|
||||
[ pkgconfig gtk perl zip libIDL libjpeg zlib bzip2
|
||||
python dbus dbus_glib pango freetype fontconfig xlibs.libXi
|
||||
xlibs.libX11 xlibs.libXrender xlibs.libXft xlibs.libXt file
|
||||
alsaLib nspr nss libnotify xlibs.pixman yasm mesa
|
||||
xlibs.libXScrnSaver xlibs.scrnsaverproto pysqlite
|
||||
xlibs.libXext xlibs.xextproto sqlite unzip makeWrapper
|
||||
python dbus dbus_glib pango freetype fontconfig xorg.libXi
|
||||
xorg.libX11 xorg.libXrender xorg.libXft xorg.libXt file
|
||||
alsaLib nspr nss libnotify xorg.pixman yasm mesa
|
||||
xorg.libXScrnSaver xorg.scrnsaverproto pysqlite
|
||||
xorg.libXext xorg.xextproto sqlite unzip makeWrapper
|
||||
hunspell libevent libstartup_notification libvpx cairo
|
||||
gstreamer gst_plugins_base icu
|
||||
];
|
||||
@@ -54,6 +54,7 @@ stdenv.mkDerivation rec {
|
||||
"--disable-installer"
|
||||
"--disable-updater"
|
||||
"--disable-pulseaudio"
|
||||
"--disable-gconf"
|
||||
]
|
||||
++ (if debugBuild
|
||||
then [ "--enable-debug" "--enable-profiling"]
|
||||
|
||||
Reference in New Issue
Block a user