diff options
author | Domen Kozar <domen@dev.si> | 2013-07-25 16:26:26 +0200 |
---|---|---|
committer | Domen Kozar <domen@dev.si> | 2013-07-25 16:26:26 +0200 |
commit | 0d551aed75fdb199fe1eb4b96b6acfbf8c389253 (patch) | |
tree | 26d8a7e7b41a365db7ee17d9f454f88663926aec /pkgs/development/interpreters/pypy | |
parent | 0990730038e997166c16c5660f77a6fef61945a5 (diff) | |
parent | eb0b6f82414ee42fe93a363456271ee15486336f (diff) | |
download | nixlib-0d551aed75fdb199fe1eb4b96b6acfbf8c389253.tar nixlib-0d551aed75fdb199fe1eb4b96b6acfbf8c389253.tar.gz nixlib-0d551aed75fdb199fe1eb4b96b6acfbf8c389253.tar.bz2 nixlib-0d551aed75fdb199fe1eb4b96b6acfbf8c389253.tar.lz nixlib-0d551aed75fdb199fe1eb4b96b6acfbf8c389253.tar.xz nixlib-0d551aed75fdb199fe1eb4b96b6acfbf8c389253.tar.zst nixlib-0d551aed75fdb199fe1eb4b96b6acfbf8c389253.zip |
Merge branch 'pypy'
Diffstat (limited to 'pkgs/development/interpreters/pypy')
-rw-r--r-- | pkgs/development/interpreters/pypy/2.0/default.nix | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/pkgs/development/interpreters/pypy/2.0/default.nix b/pkgs/development/interpreters/pypy/2.0/default.nix new file mode 100644 index 000000000000..0f2a34336cfa --- /dev/null +++ b/pkgs/development/interpreters/pypy/2.0/default.nix @@ -0,0 +1,81 @@ +{ stdenv, fetchurl, zlib ? null, zlibSupport ? true, bzip2, pkgconfig, libffi +, sqlite, openssl, ncurses, pythonFull, expat }: + +assert zlibSupport -> zlib != null; + +let + + majorVersion = "2.0"; + version = "${majorVersion}.2"; + + pypy = stdenv.mkDerivation rec { + name = "pypy-${version}"; + + inherit majorVersion version; + + src = fetchurl { + url = "https://bitbucket.org/pypy/pypy/downloads/pypy-${version}-src.tar.bz2"; + sha256 = "0g2cajs6m3yf0lak5f18ccs6j77cf5xvbm4h6y5l1qlqdc6wk48r"; + }; + + buildInputs = [ bzip2 openssl pkgconfig pythonFull libffi ncurses expat sqlite ] + ++ stdenv.lib.optional (stdenv ? gcc && stdenv.gcc.libc != null) stdenv.gcc.libc + ++ stdenv.lib.optional zlibSupport zlib; + + C_INCLUDE_PATH = stdenv.lib.concatStringsSep ":" (map (p: "${p}/include") buildInputs); + LIBRARY_PATH = stdenv.lib.concatStringsSep ":" (map (p: "${p}/lib") buildInputs); + LD_LIBRARY_PATH = LIBRARY_PATH; + + preConfigure = '' + substituteInPlace Makefile \ + --replace "-Ojit" "-Ojit --batch" \ + --replace "pypy/goal/targetpypystandalone.py" "pypy/goal/targetpypystandalone.py --withmod-_minimal_curses --withmod-unicodedata --withmod-thread --withmod-bz2" + + # we are using cpython and not pypy to do translation + substituteInPlace rpython/bin/rpython \ + --replace "/usr/bin/env pypy" "${pythonFull}/bin/python" + substituteInPlace pypy/goal/targetpypystandalone.py \ + --replace "/usr/bin/env pypy" "${pythonFull}/bin/python" + + # convince pypy to find nix ncurses + substituteInPlace pypy/module/_minimal_curses/fficurses.py \ + --replace "/usr/include/ncurses/curses.h" "${ncurses}/include/curses.h" \ + --replace "ncurses/curses.h" "${ncurses}/include/curses.h" \ + --replace "ncurses/term.h" "${ncurses}/include/term.h" \ + --replace "libraries = ['curses']" "libraries = ['ncurses']" + ''; + + TERMINFO = "${ncurses}/share/terminfo/"; + + doCheck = true; + checkPhase = '' + export HOME="$TMPDIR" + ./pypy-c ./pypy/test_all.py --pypy=./pypy-c -m "not shutil" lib-python + ''; + + installPhase = '' + mkdir -p $out/bin + mkdir -p $out/pypy-c + cp -R {include,lib_pypy,lib-python,pypy-c} $out/pypy-c + ln -s $out/pypy-c/pypy-c $out/bin/pypy + chmod +x $out/bin/pypy + # TODO: compile python files? + ''; + + passthru = { + inherit zlibSupport; + libPrefix = "pypy${majorVersion}"; + }; + + enableParallelBuilding = true; + + meta = with stdenv.lib; { + homepage = "http://pypy.org/"; + description = "PyPy is a fast, compliant alternative implementation of the Python language (2.7.3)"; + license = licenses.mit; + platforms = platforms.all; + maintainers = with maintainers; [ iElectric ]; + }; + }; + +in pypy |