1 |
1 |
{ stdenv, fetchurl, zlib ? null, zlibSupport ? true, bzip2, pkgconfig, libffi |
2 |
2 |
, sqlite, openssl, ncurses, pythonFull, expat, tcl, tk, xlibsWrapper, libX11 |
3 |
|
, makeWrapper, callPackage, self }: |
|
3 |
, db, gdbm, makeWrapper, callPackage, self }: |
4 |
4 |
|
5 |
5 |
assert zlibSupport -> zlib != null; |
6 |
6 |
|
… |
21 |
21 |
sha256 = "1g7iipllgdfjgdkypsa1g2pzxgjw9agp40rh82hk31rsbak2hfbl"; |
22 |
22 |
}; |
23 |
23 |
|
24 |
|
buildInputs = [ bzip2 openssl pkgconfig pythonFull libffi ncurses expat sqlite tk tcl xlibsWrapper libX11 makeWrapper ] |
|
24 |
buildInputs = [ bzip2 openssl pkgconfig pythonFull libffi ncurses expat sqlite tk tcl xlibsWrapper libX11 db gdbm makeWrapper ] |
25 |
25 |
++ stdenv.lib.optional (stdenv ? cc && stdenv.cc.libc != null) stdenv.cc.libc |
26 |
26 |
++ stdenv.lib.optional zlibSupport zlib; |
27 |
27 |
|
… |
31 |
31 |
(stdenv.lib.filter (x : x.outPath != stdenv.cc.libc.outPath or "") buildInputs)); |
32 |
32 |
|
33 |
33 |
preConfigure = '' |
34 |
|
substituteInPlace Makefile \ |
35 |
|
--replace "-Ojit" "-Ojit --batch" \ |
36 |
|
--replace "pypy/goal/targetpypystandalone.py" "pypy/goal/targetpypystandalone.py --withmod-_minimal_curses --withmod-unicodedata --withmod-thread --withmod-bz2 --withmod-_multiprocessing" |
37 |
|
|
38 |
|
# we are using cpython and not pypy to do translation |
39 |
|
substituteInPlace rpython/bin/rpython \ |
40 |
|
--replace "/usr/bin/env pypy" "${pythonFull}/bin/python" |
41 |
|
substituteInPlace pypy/goal/targetpypystandalone.py \ |
42 |
|
--replace "/usr/bin/env pypy" "${pythonFull}/bin/python" |
43 |
|
|
44 |
34 |
# hint pypy to find nix ncurses |
45 |
35 |
substituteInPlace pypy/module/_minimal_curses/fficurses.py \ |
46 |
36 |
--replace "/usr/include/ncurses/curses.h" "${ncurses}/include/curses.h" \ |
… |
57 |
47 |
sed -i "s@libraries=\['sqlite3'\]\$@libraries=['sqlite3'], include_dirs=['${sqlite}/include'], library_dirs=['${sqlite}/lib']@" lib_pypy/_sqlite3_build.py |
58 |
48 |
''; |
59 |
49 |
|
60 |
|
setupHook = ./setup-hook.sh; |
61 |
|
|
62 |
|
postBuild = '' |
63 |
|
cd ./lib_pypy |
64 |
|
../pypy-c ./_audioop_build.py |
65 |
|
../pypy-c ./_curses_build.py |
66 |
|
../pypy-c ./_pwdgrp_build.py |
67 |
|
../pypy-c ./_sqlite3_build.py |
68 |
|
../pypy-c ./_syslog_build.py |
69 |
|
../pypy-c ./_tkinter/tklib_build.py |
70 |
|
cd .. |
|
50 |
buildPhase = '' |
|
51 |
${pythonFull}/bin/python rpython/bin/rpython -Ojit --batch pypy/goal/targetpypystandalone.py --withmod-_minimal_curses --withmod-unicodedata --withmod-thread --withmod-bz2 --withmod-_multiprocessing |
71 |
52 |
''; |
72 |
53 |
|
|
54 |
setupHook = ./setup-hook.sh; |
|
55 |
|
73 |
56 |
doCheck = true; |
74 |
57 |
checkPhase = '' |
75 |
58 |
export TERMINFO="${ncurses}/share/terminfo/"; |