mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-23 15:33:13 +00:00
python33: end-of-life
Python 3.3 reaches end-of-life when we release 17.09. https://mail.python.org/pipermail/python-dev/2017-July/148584.html
This commit is contained in:
parent
4d66de88ff
commit
d387cac375
@ -423,7 +423,7 @@ and in this case the `python35` interpreter is automatically used.
|
|||||||
### Interpreters
|
### Interpreters
|
||||||
|
|
||||||
Versions 2.7, 3.3, 3.4, 3.5 and 3.6 of the CPython interpreter are available as
|
Versions 2.7, 3.3, 3.4, 3.5 and 3.6 of the CPython interpreter are available as
|
||||||
respectively `python27`, `python33`, `python34`, `python35` and `python36`. The PyPy interpreter
|
respectively `python27`, `python34`, `python35` and `python36`. The PyPy interpreter
|
||||||
is available as `pypy`. The aliases `python2` and `python3` correspond to respectively `python27` and
|
is available as `pypy`. The aliases `python2` and `python3` correspond to respectively `python27` and
|
||||||
`python35`. The default interpreter, `python`, maps to `python2`.
|
`python35`. The default interpreter, `python`, maps to `python2`.
|
||||||
The Nix expressions for the interpreters can be found in
|
The Nix expressions for the interpreters can be found in
|
||||||
@ -469,7 +469,6 @@ sets are
|
|||||||
|
|
||||||
* `pkgs.python26Packages`
|
* `pkgs.python26Packages`
|
||||||
* `pkgs.python27Packages`
|
* `pkgs.python27Packages`
|
||||||
* `pkgs.python33Packages`
|
|
||||||
* `pkgs.python34Packages`
|
* `pkgs.python34Packages`
|
||||||
* `pkgs.python35Packages`
|
* `pkgs.python35Packages`
|
||||||
* `pkgs.python36Packages`
|
* `pkgs.python36Packages`
|
||||||
@ -622,7 +621,7 @@ attribute. The `shell.nix` file from the previous section can thus be also writt
|
|||||||
```nix
|
```nix
|
||||||
with import <nixpkgs> {};
|
with import <nixpkgs> {};
|
||||||
|
|
||||||
(python33.withPackages (ps: [ps.numpy ps.requests])).env
|
(python36.withPackages (ps: [ps.numpy ps.requests])).env
|
||||||
```
|
```
|
||||||
|
|
||||||
In contrast to `python.buildEnv`, `python.withPackages` does not support the more advanced options
|
In contrast to `python.buildEnv`, `python.withPackages` does not support the more advanced options
|
||||||
|
@ -1,160 +0,0 @@
|
|||||||
{ stdenv, fetchurl
|
|
||||||
, bzip2
|
|
||||||
, gdbm
|
|
||||||
, lzma
|
|
||||||
, ncurses
|
|
||||||
, openssl
|
|
||||||
, readline
|
|
||||||
, sqlite
|
|
||||||
, tcl ? null, tk ? null, tix ? null, libX11 ? null, xproto ? null, x11Support ? false
|
|
||||||
, zlib
|
|
||||||
, callPackage
|
|
||||||
, self
|
|
||||||
, CF, configd
|
|
||||||
, python-setup-hook
|
|
||||||
# For the Python package set
|
|
||||||
, pkgs, packageOverrides ? (self: super: {})
|
|
||||||
}:
|
|
||||||
|
|
||||||
assert x11Support -> tcl != null
|
|
||||||
&& tk != null
|
|
||||||
&& xproto != null
|
|
||||||
&& libX11 != null;
|
|
||||||
|
|
||||||
with stdenv.lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
majorVersion = "3.3";
|
|
||||||
minorVersion = "6";
|
|
||||||
minorVersionSuffix = "";
|
|
||||||
pythonVersion = majorVersion;
|
|
||||||
version = "${majorVersion}.${minorVersion}${minorVersionSuffix}";
|
|
||||||
libPrefix = "python${majorVersion}";
|
|
||||||
sitePackages = "lib/${libPrefix}/site-packages";
|
|
||||||
|
|
||||||
buildInputs = filter (p: p != null) [
|
|
||||||
zlib bzip2 lzma gdbm sqlite readline ncurses openssl ]
|
|
||||||
++ optionals x11Support [ tcl tk libX11 xproto ]
|
|
||||||
++ optionals stdenv.isDarwin [ CF configd ];
|
|
||||||
|
|
||||||
in stdenv.mkDerivation {
|
|
||||||
name = "python3-${version}";
|
|
||||||
pythonVersion = majorVersion;
|
|
||||||
inherit majorVersion version;
|
|
||||||
|
|
||||||
inherit buildInputs;
|
|
||||||
|
|
||||||
src = fetchurl {
|
|
||||||
url = "https://www.python.org/ftp/python/${majorVersion}.${minorVersion}/Python-${version}.tar.xz";
|
|
||||||
sha256 = "0gsxpgd5p4mwd01gw501vsyahncyw3h9836ypkr3y32kgazy89jj";
|
|
||||||
};
|
|
||||||
|
|
||||||
NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isLinux "-lgcc_s";
|
|
||||||
|
|
||||||
# Determinism: The interpreter is patched to write null timestamps when compiling python files.
|
|
||||||
# This way python doesn't try to update them when we freeze timestamps in nix store.
|
|
||||||
DETERMINISTIC_BUILD=1;
|
|
||||||
# Determinism: We fix the hashes of str, bytes and datetime objects.
|
|
||||||
PYTHONHASHSEED=0;
|
|
||||||
|
|
||||||
postPatch = ''
|
|
||||||
# Determinism
|
|
||||||
substituteInPlace "Lib/py_compile.py" --replace "source_stats['mtime']" "(1 if 'DETERMINISTIC_BUILD' in os.environ else source_stats['mtime'])"
|
|
||||||
# # We do not patch `Lib/importlib/_bootstrap_external.py` because it does not exist.
|
|
||||||
'' + optionalString (x11Support && (tix != null)) ''
|
|
||||||
substituteInPlace "Lib/tkinter/tix.py" --replace "os.environ.get('TIX_LIBRARY')" "os.environ.get('TIX_LIBRARY') or '${tix}/lib'"
|
|
||||||
'';
|
|
||||||
|
|
||||||
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"''}
|
|
||||||
|
|
||||||
configureFlagsArray=( --enable-shared --with-threads
|
|
||||||
CPPFLAGS="${concatStringsSep " " (map (p: "-I${getDev p}/include") buildInputs)}"
|
|
||||||
LDFLAGS="${concatStringsSep " " (map (p: "-L${getLib p}/lib") buildInputs)}"
|
|
||||||
LIBS="${optionalString (!stdenv.isDarwin) "-lcrypt"} ${optionalString (ncurses != null) "-lncurses"}"
|
|
||||||
)
|
|
||||||
'';
|
|
||||||
|
|
||||||
setupHook = python-setup-hook sitePackages;
|
|
||||||
|
|
||||||
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}
|
|
||||||
|
|
||||||
# Python on Nix is not manylinux1 compatible. https://github.com/NixOS/nixpkgs/issues/18484
|
|
||||||
echo "manylinux1_compatible=False" >> $out/lib/${libPrefix}/_manylinux.py
|
|
||||||
|
|
||||||
# Determinism: Windows installers were not deterministic.
|
|
||||||
# We're also not interested in building Windows installers.
|
|
||||||
find "$out" -name 'wininst*.exe' | xargs -r rm -f
|
|
||||||
|
|
||||||
# Use Python3 as default python
|
|
||||||
ln -s "$out/bin/idle3" "$out/bin/idle"
|
|
||||||
ln -s "$out/bin/pip3" "$out/bin/pip"
|
|
||||||
ln -s "$out/bin/pydoc3" "$out/bin/pydoc"
|
|
||||||
ln -s "$out/bin/python3" "$out/bin/python"
|
|
||||||
ln -s "$out/bin/python3-config" "$out/bin/python-config"
|
|
||||||
ln -s "$out/lib/pkgconfig/python3.pc" "$out/lib/pkgconfig/python.pc"
|
|
||||||
|
|
||||||
# Get rid of retained dependencies on -dev packages, and remove
|
|
||||||
# some $TMPDIR references to improve binary reproducibility.
|
|
||||||
# Note that the .pyc file of _sysconfigdata.py should be regenerated!
|
|
||||||
for i in $out/lib/python${majorVersion}/_sysconfigdata.py $out/lib/python${majorVersion}/config-${majorVersion}m/Makefile; do
|
|
||||||
sed -i $i -e "s|-I/nix/store/[^ ']*||g" -e "s|-L/nix/store/[^ ']*||g" -e "s|$TMPDIR|/no-such-path|g"
|
|
||||||
done
|
|
||||||
|
|
||||||
# Determinism: rebuild all bytecode
|
|
||||||
# We exclude lib2to3 because that's Python 2 code which fails
|
|
||||||
# We rebuild three times, once for each optimization level
|
|
||||||
find $out -name "*.py" | $out/bin/python -m compileall -q -f -x "lib2to3" -i -
|
|
||||||
find $out -name "*.py" | $out/bin/python -O -m compileall -q -f -x "lib2to3" -i -
|
|
||||||
find $out -name "*.py" | $out/bin/python -OO -m compileall -q -f -x "lib2to3" -i -
|
|
||||||
'';
|
|
||||||
|
|
||||||
passthru = let
|
|
||||||
pythonPackages = callPackage ../../../../../top-level/python-packages.nix {python=self; overrides=packageOverrides;};
|
|
||||||
in rec {
|
|
||||||
inherit libPrefix sitePackages x11Support;
|
|
||||||
executable = "${libPrefix}m";
|
|
||||||
buildEnv = callPackage ../../wrapper.nix { python = self; };
|
|
||||||
withPackages = import ../../with-packages.nix { inherit buildEnv pythonPackages;};
|
|
||||||
pkgs = pythonPackages;
|
|
||||||
isPy3 = true;
|
|
||||||
isPy33 = true;
|
|
||||||
is_py3k = true; # deprecated
|
|
||||||
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; [ chaoflow cstrahan ];
|
|
||||||
};
|
|
||||||
}
|
|
@ -1,18 +0,0 @@
|
|||||||
# This file was generated and will be overwritten by ./generate.sh
|
|
||||||
|
|
||||||
{ stdenv, fetchurl, lib }:
|
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
|
||||||
name = "python33-docs-html-3.3.0";
|
|
||||||
src = fetchurl {
|
|
||||||
url = http://docs.python.org/ftp/python/doc/3.3.0/python-3.3.0-docs-html.tar.bz2;
|
|
||||||
sha256 = "0vv24b9qi7gznv687ik0pa2w1rq9grqivy44znvj2ysjfg7mc2c1";
|
|
||||||
};
|
|
||||||
installPhase = ''
|
|
||||||
mkdir -p $out/share/doc/python33
|
|
||||||
cp -R ./ $out/share/doc/python33/html
|
|
||||||
'';
|
|
||||||
meta = {
|
|
||||||
maintainers = [ lib.maintainers.chaoflow ];
|
|
||||||
};
|
|
||||||
}
|
|
@ -1,18 +0,0 @@
|
|||||||
# This file was generated and will be overwritten by ./generate.sh
|
|
||||||
|
|
||||||
{ stdenv, fetchurl, lib }:
|
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
|
||||||
name = "python33-docs-pdf-a4-3.3.0";
|
|
||||||
src = fetchurl {
|
|
||||||
url = http://docs.python.org/ftp/python/doc/3.3.0/python-3.3.0-docs-pdf-a4.tar.bz2;
|
|
||||||
sha256 = "1y6n13bxlw8a11khy3ynfbz8z0kpf2lvh32dvy8scyw3hrk6wdxp";
|
|
||||||
};
|
|
||||||
installPhase = ''
|
|
||||||
mkdir -p $out/share/doc/python33
|
|
||||||
cp -R ./ $out/share/doc/python33/pdf-a4
|
|
||||||
'';
|
|
||||||
meta = {
|
|
||||||
maintainers = [ lib.maintainers.chaoflow ];
|
|
||||||
};
|
|
||||||
}
|
|
@ -1,18 +0,0 @@
|
|||||||
# This file was generated and will be overwritten by ./generate.sh
|
|
||||||
|
|
||||||
{ stdenv, fetchurl, lib }:
|
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
|
||||||
name = "python33-docs-pdf-letter-3.3.0";
|
|
||||||
src = fetchurl {
|
|
||||||
url = http://docs.python.org/ftp/python/doc/3.3.0/python-3.3.0-docs-pdf-letter.tar.bz2;
|
|
||||||
sha256 = "0mcj1i47nx81fc9zk1cic4c4p139qjcqlzf4hnnkzvb3jcgy5z6k";
|
|
||||||
};
|
|
||||||
installPhase = ''
|
|
||||||
mkdir -p $out/share/doc/python33
|
|
||||||
cp -R ./ $out/share/doc/python33/pdf-letter
|
|
||||||
'';
|
|
||||||
meta = {
|
|
||||||
maintainers = [ lib.maintainers.chaoflow ];
|
|
||||||
};
|
|
||||||
}
|
|
@ -1,18 +0,0 @@
|
|||||||
# This file was generated and will be overwritten by ./generate.sh
|
|
||||||
|
|
||||||
{ stdenv, fetchurl, lib }:
|
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
|
||||||
name = "python33-docs-text-3.3.0";
|
|
||||||
src = fetchurl {
|
|
||||||
url = http://docs.python.org/ftp/python/doc/3.3.0/python-3.3.0-docs-text.tar.bz2;
|
|
||||||
sha256 = "10vk2fixg1aglqmsf89kn98rlirrbhnrk1285vzfbynf2iavxw0n";
|
|
||||||
};
|
|
||||||
installPhase = ''
|
|
||||||
mkdir -p $out/share/doc/python33
|
|
||||||
cp -R ./ $out/share/doc/python33/text
|
|
||||||
'';
|
|
||||||
meta = {
|
|
||||||
maintainers = [ lib.maintainers.chaoflow ];
|
|
||||||
};
|
|
||||||
}
|
|
@ -4,36 +4,24 @@ let
|
|||||||
pythonDocs = {
|
pythonDocs = {
|
||||||
html = {
|
html = {
|
||||||
recurseForDerivations = true;
|
recurseForDerivations = true;
|
||||||
python33 = import ./3.3-html.nix {
|
|
||||||
inherit stdenv fetchurl lib;
|
|
||||||
};
|
|
||||||
python27 = import ./2.7-html.nix {
|
python27 = import ./2.7-html.nix {
|
||||||
inherit stdenv fetchurl lib;
|
inherit stdenv fetchurl lib;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
pdf_a4 = {
|
pdf_a4 = {
|
||||||
recurseForDerivations = true;
|
recurseForDerivations = true;
|
||||||
python33 = import ./3.3-pdf-a4.nix {
|
|
||||||
inherit stdenv fetchurl lib;
|
|
||||||
};
|
|
||||||
python27 = import ./2.7-pdf-a4.nix {
|
python27 = import ./2.7-pdf-a4.nix {
|
||||||
inherit stdenv fetchurl lib;
|
inherit stdenv fetchurl lib;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
pdf_letter = {
|
pdf_letter = {
|
||||||
recurseForDerivations = true;
|
recurseForDerivations = true;
|
||||||
python33 = import ./3.3-pdf-letter.nix {
|
|
||||||
inherit stdenv fetchurl lib;
|
|
||||||
};
|
|
||||||
python27 = import ./2.7-pdf-letter.nix {
|
python27 = import ./2.7-pdf-letter.nix {
|
||||||
inherit stdenv fetchurl lib;
|
inherit stdenv fetchurl lib;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
text = {
|
text = {
|
||||||
recurseForDerivations = true;
|
recurseForDerivations = true;
|
||||||
python33 = import ./3.3-text.nix {
|
|
||||||
inherit stdenv fetchurl lib;
|
|
||||||
};
|
|
||||||
python27 = import ./2.7-text.nix {
|
python27 = import ./2.7-text.nix {
|
||||||
inherit stdenv fetchurl lib;
|
inherit stdenv fetchurl lib;
|
||||||
};
|
};
|
||||||
|
@ -6327,7 +6327,6 @@ with pkgs;
|
|||||||
python2Full = python2.override{x11Support=true;};
|
python2Full = python2.override{x11Support=true;};
|
||||||
python27Full = python27.override{x11Support=true;};
|
python27Full = python27.override{x11Support=true;};
|
||||||
python3Full = python3.override{x11Support=true;};
|
python3Full = python3.override{x11Support=true;};
|
||||||
python33Full = python33.override{x11Support=true;};
|
|
||||||
python34Full = python34.override{x11Support=true;};
|
python34Full = python34.override{x11Support=true;};
|
||||||
python35Full = python35.override{x11Support=true;};
|
python35Full = python35.override{x11Support=true;};
|
||||||
python36Full = python36.override{x11Support=true;};
|
python36Full = python36.override{x11Support=true;};
|
||||||
@ -6341,10 +6340,6 @@ with pkgs;
|
|||||||
self = python27;
|
self = python27;
|
||||||
inherit (darwin) CF configd;
|
inherit (darwin) CF configd;
|
||||||
};
|
};
|
||||||
python33 = callPackage ../development/interpreters/python/cpython/3.3 {
|
|
||||||
self = python33;
|
|
||||||
inherit (darwin) CF configd;
|
|
||||||
};
|
|
||||||
python34 = callPackage ../development/interpreters/python/cpython/3.4 {
|
python34 = callPackage ../development/interpreters/python/cpython/3.4 {
|
||||||
inherit (darwin) CF configd;
|
inherit (darwin) CF configd;
|
||||||
self = python34;
|
self = python34;
|
||||||
@ -10910,8 +10905,6 @@ with pkgs;
|
|||||||
|
|
||||||
python27Packages = lib.hiPrioSet (recurseIntoAttrs python27.pkgs);
|
python27Packages = lib.hiPrioSet (recurseIntoAttrs python27.pkgs);
|
||||||
|
|
||||||
python33Packages = python33.pkgs;
|
|
||||||
|
|
||||||
python34Packages = python34.pkgs;
|
python34Packages = python34.pkgs;
|
||||||
|
|
||||||
python35Packages = python35.pkgs;
|
python35Packages = python35.pkgs;
|
||||||
|
Loading…
Reference in New Issue
Block a user