* Move python/2.7/modules.nix into python/2.7/default.nix. Also
remove the pythonModules attribute. The built-in modules are now accessible as (e.g.) "python.modules.ssl" or "pythonPackages.ssl". svn path=/nixpkgs/branches/modular-python/; revision=26559
This commit is contained in:
parent
f510e6f7e4
commit
8ca5d5d8b6
@ -1,4 +1,5 @@
|
|||||||
{ stdenv, fetchurl, zlib ? null, zlibSupport ? true, bzip2
|
{ stdenv, fetchurl, zlib ? null, zlibSupport ? true, bzip2
|
||||||
|
, sqlite, tcl, tk, x11, openssl, readline, db4, ncurses, gdbm
|
||||||
, darwinArchUtility ? null, darwinSwVersUtility ? null
|
, darwinArchUtility ? null, darwinSwVersUtility ? null
|
||||||
}:
|
}:
|
||||||
|
|
||||||
@ -13,18 +14,6 @@ let
|
|||||||
majorVersion = "2.7";
|
majorVersion = "2.7";
|
||||||
version = "${majorVersion}.1";
|
version = "${majorVersion}.1";
|
||||||
|
|
||||||
buildInputs =
|
|
||||||
optional (stdenv ? gcc && stdenv.gcc.libc != null) stdenv.gcc.libc ++
|
|
||||||
[ bzip2 ]
|
|
||||||
++ optional zlibSupport zlib
|
|
||||||
++ optionals stdenv.isDarwin [ darwinArchUtility darwinSwVersUtility ];
|
|
||||||
|
|
||||||
in
|
|
||||||
|
|
||||||
stdenv.mkDerivation {
|
|
||||||
name = "python-${version}";
|
|
||||||
inherit majorVersion version;
|
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://www.python.org/ftp/python/${version}/Python-${version}.tar.bz2";
|
url = "http://www.python.org/ftp/python/${version}/Python-${version}.tar.bz2";
|
||||||
sha256 = "14i2c7yqa7ljmx2i2bb827n61q33zn23ax96czi8rbkyyny8gqw0";
|
sha256 = "14i2c7yqa7ljmx2i2bb827n61q33zn23ax96czi8rbkyyny8gqw0";
|
||||||
@ -41,7 +30,19 @@ stdenv.mkDerivation {
|
|||||||
./nix-store-mtime.patch
|
./nix-store-mtime.patch
|
||||||
];
|
];
|
||||||
|
|
||||||
inherit buildInputs;
|
buildInputs =
|
||||||
|
optional (stdenv ? gcc && stdenv.gcc.libc != null) stdenv.gcc.libc ++
|
||||||
|
[ bzip2 ]
|
||||||
|
++ optional zlibSupport zlib
|
||||||
|
++ optionals stdenv.isDarwin [ darwinArchUtility darwinSwVersUtility ];
|
||||||
|
|
||||||
|
|
||||||
|
# Build the basic Python interpreter without modules that have
|
||||||
|
# external dependencies.
|
||||||
|
python = stdenv.mkDerivation {
|
||||||
|
name = "python-${version}";
|
||||||
|
|
||||||
|
inherit majorVersion version src patches buildInputs;
|
||||||
|
|
||||||
C_INCLUDE_PATH = concatStringsSep ":" (map (p: "${p}/include") buildInputs);
|
C_INCLUDE_PATH = concatStringsSep ":" (map (p: "${p}/include") buildInputs);
|
||||||
LIBRARY_PATH = concatStringsSep ":" (map (p: "${p}/lib") buildInputs);
|
LIBRARY_PATH = concatStringsSep ":" (map (p: "${p}/lib") buildInputs);
|
||||||
@ -88,4 +89,91 @@ stdenv.mkDerivation {
|
|||||||
platforms = stdenv.lib.platforms.all;
|
platforms = stdenv.lib.platforms.all;
|
||||||
maintainers = [ stdenv.lib.maintainers.simons ];
|
maintainers = [ stdenv.lib.maintainers.simons ];
|
||||||
};
|
};
|
||||||
}
|
};
|
||||||
|
|
||||||
|
|
||||||
|
# This function builds a Python module included in the main Python
|
||||||
|
# distribution in a separate derivation.
|
||||||
|
buildInternalPythonModule =
|
||||||
|
{ moduleName
|
||||||
|
, internalName ? "_" + moduleName
|
||||||
|
, deps
|
||||||
|
}:
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
name = "python-${moduleName}-${python.version}";
|
||||||
|
|
||||||
|
inherit src patches;
|
||||||
|
|
||||||
|
buildInputs = [ python ] ++ deps;
|
||||||
|
|
||||||
|
C_INCLUDE_PATH = concatStringsSep ":" (map (p: "${p}/include") buildInputs);
|
||||||
|
LIBRARY_PATH = concatStringsSep ":" (map (p: "${p}/lib") buildInputs);
|
||||||
|
|
||||||
|
configurePhase = "true";
|
||||||
|
|
||||||
|
buildPhase =
|
||||||
|
''
|
||||||
|
# Fake the build environment that setup.py expects.
|
||||||
|
ln -s ${python}/include/python*/pyconfig.h .
|
||||||
|
ln -s ${python}/lib/python*/config/Setup Modules/
|
||||||
|
ln -s ${python}/lib/python*/config/Setup.local Modules/
|
||||||
|
|
||||||
|
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
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase =
|
||||||
|
''
|
||||||
|
dest=$out/lib/${python.libPrefix}/site-packages
|
||||||
|
mkdir -p $dest
|
||||||
|
cp -p $(find . -name "*.so") $dest/
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
# The Python modules included in the main Python distribution, built
|
||||||
|
# as separate derivations.
|
||||||
|
modules = {
|
||||||
|
|
||||||
|
bsddb = buildInternalPythonModule {
|
||||||
|
moduleName = "bsddb";
|
||||||
|
deps = [ db4 ];
|
||||||
|
};
|
||||||
|
|
||||||
|
curses = buildInternalPythonModule {
|
||||||
|
moduleName = "curses";
|
||||||
|
deps = [ ncurses ];
|
||||||
|
};
|
||||||
|
|
||||||
|
gdbm = buildInternalPythonModule {
|
||||||
|
moduleName = "gdbm";
|
||||||
|
internalName = "gdbm";
|
||||||
|
deps = [ gdbm ];
|
||||||
|
};
|
||||||
|
|
||||||
|
sqlite3 = buildInternalPythonModule {
|
||||||
|
moduleName = "sqlite3";
|
||||||
|
deps = [ sqlite ];
|
||||||
|
};
|
||||||
|
|
||||||
|
ssl = buildInternalPythonModule {
|
||||||
|
moduleName = "ssl";
|
||||||
|
deps = [ openssl ];
|
||||||
|
};
|
||||||
|
|
||||||
|
tkinter = buildInternalPythonModule {
|
||||||
|
moduleName = "tkinter";
|
||||||
|
deps = [ tcl tk x11 ];
|
||||||
|
};
|
||||||
|
|
||||||
|
readline = buildInternalPythonModule {
|
||||||
|
moduleName = "readline";
|
||||||
|
internalName = "readline";
|
||||||
|
deps = [ readline ];
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
in python // { inherit modules; }
|
||||||
|
@ -1,86 +0,0 @@
|
|||||||
{ stdenv, python, sqlite, tcl, tk, x11, openssl, readline, db4, ncurses, gdbm }:
|
|
||||||
|
|
||||||
with stdenv.lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
|
|
||||||
buildInternalPythonModule =
|
|
||||||
{ moduleName
|
|
||||||
, internalName ? "_" + moduleName
|
|
||||||
, deps
|
|
||||||
}:
|
|
||||||
stdenv.mkDerivation rec {
|
|
||||||
name = "python-${moduleName}-${python.version}";
|
|
||||||
|
|
||||||
src = python.src;
|
|
||||||
|
|
||||||
patches = python.patches;
|
|
||||||
|
|
||||||
buildInputs = [ python ] ++ deps;
|
|
||||||
|
|
||||||
C_INCLUDE_PATH = concatStringsSep ":" (map (p: "${p}/include") buildInputs);
|
|
||||||
LIBRARY_PATH = concatStringsSep ":" (map (p: "${p}/lib") buildInputs);
|
|
||||||
|
|
||||||
configurePhase = "true";
|
|
||||||
|
|
||||||
buildPhase =
|
|
||||||
''
|
|
||||||
# Fake the build environment that setup.py expects.
|
|
||||||
ln -s ${python}/include/python*/pyconfig.h .
|
|
||||||
ln -s ${python}/lib/python*/config/Setup Modules/
|
|
||||||
ln -s ${python}/lib/python*/config/Setup.local Modules/
|
|
||||||
|
|
||||||
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
|
|
||||||
'';
|
|
||||||
|
|
||||||
installPhase =
|
|
||||||
''
|
|
||||||
dest=$out/lib/${python.libPrefix}/site-packages
|
|
||||||
mkdir -p $dest
|
|
||||||
cp -p $(find . -name "*.so") $dest/
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
in {
|
|
||||||
|
|
||||||
bsddb = buildInternalPythonModule {
|
|
||||||
moduleName = "bsddb";
|
|
||||||
deps = [ db4 ];
|
|
||||||
};
|
|
||||||
|
|
||||||
curses = buildInternalPythonModule {
|
|
||||||
moduleName = "curses";
|
|
||||||
deps = [ ncurses ];
|
|
||||||
};
|
|
||||||
|
|
||||||
gdbm = buildInternalPythonModule {
|
|
||||||
moduleName = "gdbm";
|
|
||||||
internalName = "gdbm";
|
|
||||||
deps = [ gdbm ];
|
|
||||||
};
|
|
||||||
|
|
||||||
sqlite3 = buildInternalPythonModule {
|
|
||||||
moduleName = "sqlite3";
|
|
||||||
deps = [ sqlite ];
|
|
||||||
};
|
|
||||||
|
|
||||||
ssl = buildInternalPythonModule {
|
|
||||||
moduleName = "ssl";
|
|
||||||
deps = [ openssl ];
|
|
||||||
};
|
|
||||||
|
|
||||||
tkinter = buildInternalPythonModule {
|
|
||||||
moduleName = "tkinter";
|
|
||||||
deps = [ tcl tk x11 ];
|
|
||||||
};
|
|
||||||
|
|
||||||
readline = buildInternalPythonModule {
|
|
||||||
moduleName = "readline";
|
|
||||||
internalName = "readline";
|
|
||||||
deps = [ readline ];
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
@ -992,10 +992,8 @@ let
|
|||||||
|
|
||||||
obexftp = callPackage ../tools/bluetooth/obexftp { };
|
obexftp = callPackage ../tools/bluetooth/obexftp { };
|
||||||
|
|
||||||
offlineimap = import ../tools/networking/offlineimap {
|
offlineimap = callPackage ../tools/networking/offlineimap {
|
||||||
inherit fetchurl;
|
ssl = pythonPackages.ssl;
|
||||||
buildPythonPackage = buildPython27Package;
|
|
||||||
ssl = pythonModules.ssl;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
opendbx = callPackage ../development/libraries/opendbx { };
|
opendbx = callPackage ../development/libraries/opendbx { };
|
||||||
@ -2267,7 +2265,6 @@ let
|
|||||||
polyml = callPackage ../development/compilers/polyml { };
|
polyml = callPackage ../development/compilers/polyml { };
|
||||||
|
|
||||||
python = python27;
|
python = python27;
|
||||||
pythonModules = python27Modules;
|
|
||||||
|
|
||||||
python26 = if getConfig ["python" "full"] false then python26Full else python26Base;
|
python26 = if getConfig ["python" "full"] false then python26Full else python26Base;
|
||||||
pythonFull = python26Full;
|
pythonFull = python26Full;
|
||||||
@ -2295,10 +2292,6 @@ let
|
|||||||
|
|
||||||
python27 = callPackage ../development/interpreters/python/2.7 { };
|
python27 = callPackage ../development/interpreters/python/2.7 { };
|
||||||
|
|
||||||
python27Modules = callPackage ../development/interpreters/python/2.7/modules.nix {
|
|
||||||
python = python27;
|
|
||||||
};
|
|
||||||
|
|
||||||
python3 = callPackage ../development/interpreters/python/3.1 {
|
python3 = callPackage ../development/interpreters/python/3.1 {
|
||||||
arch = if stdenv.isDarwin then pkgs.darwinArchUtility else null;
|
arch = if stdenv.isDarwin then pkgs.darwinArchUtility else null;
|
||||||
sw_vers = if stdenv.isDarwin then pkgs.darwinSwVersUtility else null;
|
sw_vers = if stdenv.isDarwin then pkgs.darwinSwVersUtility else null;
|
||||||
@ -4302,9 +4295,7 @@ let
|
|||||||
|
|
||||||
### DEVELOPMENT / PYTHON MODULES
|
### DEVELOPMENT / PYTHON MODULES
|
||||||
|
|
||||||
buildPythonPackage = import ../development/python-modules/generic {
|
buildPythonPackage = buildPython27Package;
|
||||||
inherit python setuptools makeWrapper lib;
|
|
||||||
};
|
|
||||||
|
|
||||||
buildPython26Package = import ../development/python-modules/generic {
|
buildPython26Package = import ../development/python-modules/generic {
|
||||||
inherit makeWrapper lib;
|
inherit makeWrapper lib;
|
||||||
@ -4318,7 +4309,7 @@ let
|
|||||||
setuptools = setuptools.override { python = python27; doCheck = false; };
|
setuptools = setuptools.override { python = python27; doCheck = false; };
|
||||||
};
|
};
|
||||||
|
|
||||||
pythonPackages = python26Packages;
|
pythonPackages = python27Packages;
|
||||||
|
|
||||||
python26Packages = recurseIntoAttrs (import ./python-packages.nix {
|
python26Packages = recurseIntoAttrs (import ./python-packages.nix {
|
||||||
inherit pkgs;
|
inherit pkgs;
|
||||||
@ -6283,7 +6274,7 @@ let
|
|||||||
|
|
||||||
mercurial = callPackage ../applications/version-management/mercurial {
|
mercurial = callPackage ../applications/version-management/mercurial {
|
||||||
guiSupport = getConfig ["mercurial" "guiSupport"] false; # for hgk (gitk gui for hg)
|
guiSupport = getConfig ["mercurial" "guiSupport"] false; # for hgk (gitk gui for hg)
|
||||||
inherit (python27Modules) ssl;
|
inherit (pythonPackages) ssl;
|
||||||
};
|
};
|
||||||
|
|
||||||
merkaartor = callPackage ../applications/misc/merkaartor {
|
merkaartor = callPackage ../applications/misc/merkaartor {
|
||||||
|
@ -1,8 +1,12 @@
|
|||||||
{ pkgs, python, buildPythonPackage }:
|
{ pkgs, python, buildPythonPackage }:
|
||||||
|
|
||||||
rec {
|
python.modules // rec {
|
||||||
|
|
||||||
inherit (pkgs) fetchurl fetchsvn stdenv;
|
inherit (pkgs) fetchurl fetchsvn stdenv;
|
||||||
|
|
||||||
|
inherit (python.modules) ssl;
|
||||||
|
|
||||||
|
|
||||||
argparse = buildPythonPackage (rec {
|
argparse = buildPythonPackage (rec {
|
||||||
name = "argparse-1.1";
|
name = "argparse-1.1";
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user