Commit Graph

162 Commits

Author SHA1 Message Date
Peter Simons 79a5fec9c0 python-generic: set meta.broken for disabled packages instead of raising an error during evaluation
We have tons of evaluation errors on Hydra because it tries to build
known broken packages. Re-using meta.broken makes sure these packages
aren't evaluated in the first place.
2015-02-12 20:07:56 +01:00
Domen Kožar 9a33fbb52d python: don't propagate installed packages into userenv, refs #4949
Propagation is not needed anymore, as we have more powerful apis today
than this dirty hack. See nix-shell tool and python.buildEnv function
in nixpkgs manual.
2015-01-17 14:19:29 +01:00
Domen Kožar ab423e6367 buildPythonPackage: add python to propagatedBuildInputs
Doing:

$ nix-shell -p pythonPackage.pyramid

now also sets $PYTHONPATH. Previously you'd have to do:

$ nix-shell -p pythonPackage.pyramid python
2014-11-13 21:04:13 +01:00
Rok Garbas 602f7e5aa4 python: collision in names when developing 2 and more python packages with nix
when you run nix-shell 2 times at the same time of project (but different
branches) you get collision in names inside /tmp folder. i solved this by
hashing current path of developing folder and using that as indentifier while
still keeping name at the end.

diff --git a/pkgs/development/python-modules/generic/default.nix
b/pkgs/development/python-modules/generic/default.nix index 4c9c53a..6ec7934
100644 --- a/pkgs/development/python-modules/generic/default.nix +++
b/pkgs/development/python-modules/generic/default.nix @@ -161,11 +161,12 @@ if
disabled then throw "${name} not supported for interpreter ${python.executabl

   shellHook = attrs.shellHook or ''
     if test -e setup.py; then
-       mkdir -p /tmp/$name/lib/${python.libPrefix}/site-packages
+       tmp_path=/tmp/`pwd | md5sum | cut -f 1 -d " "`-$name
+       mkdir -p $tmp_path/lib/${python.libPrefix}/site-packages
        ${preShellHook}
-       export PATH="/tmp/$name/bin:$PATH"
-       export PYTHONPATH="/tmp/$name/lib/${python.libPrefix}/site-packages:$PYTHONPATH"
-       ${python}/bin/${python.executable} setup.py develop --prefix /tmp/$name
+       export PATH="$tmp_path/bin:$PATH"
+       export PYTHONPATH="$tmp_path/lib/${python.libPrefix}/site-packages:$PYTHONPATH"
+       ${python}/bin/${python.executable} setup.py develop --prefix $tmp_path
        ${postShellHook}
     fi
   '';
2014-09-19 14:23:45 +02:00
Michael Raskin 76f4eb5f93 Revert "python-wrapper: fix wrapped argv[0] w/o sed, maybe"
This reverts commit a6dd9bd0cb.
2014-09-02 20:45:41 +04:00
tv@shackspace.de a6dd9bd0cb python-wrapper: fix wrapped argv[0] w/o sed, maybe 2014-09-02 01:31:49 +04:00
Domen Kožar 62345fee55 python: provide better message if python interpreter is not supported 2014-08-27 15:53:15 +02:00
Domen Kožar 47673e43c9 buildPythonPackage: introduce "disabled" argument
Useful to disable the package for specific python versions.

Typically usage: disable = isPy3k;
2014-08-24 16:02:57 +02:00
aszlig 21a2f99dd3
python-wrapper: Fix handling of line breaks.
Not really critical for anything we have in <nixpkgs> I guess, but
skipping lines three times really was a workaround and we're better off
just appending the lines ending with backslash to the pattern space so
we can accumulate all the crap until the last line of crap (crap, that
is "broken lines").

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2014-07-29 06:53:17 +02:00
aszlig ff15c31c37
python-wrapper: Fix handling __future__ imports.
The bazaar package is still broken even with 5f01cc7, because __future__
imports need to be the first imports before anything else. So this time
I'm going to make the sed expression with explicit branching so we can
properly match all the occasions we want to skip and insert the line
modifying sys.argv[0] only _once_ and leave the command block after
that one substitution. So no ugly swaps between hold and pattern space.

The label which is resonsible for not escaping the command block is "r"
and we jump to it as long as we need to skip something from the start of
the file.

While at it, I'm not only skipping every line with __future__ in it but
also backslashes at the end of the line, so for example:

```python
from __future__ import shiny_feature1, \
                       shiny_feature2, \
                       shiny_feature3
```

... will now be properly skipped as well.

Tested against bazaar and nixops.

Thanks to @edolstra for reporting this.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2014-07-29 06:40:39 +02:00
aszlig 5f01cc70d3
python-wrapper: Fix fixup for wrapped argv[0].
Fixes issues introduced by 24ef871e6a.

The problem here is that "import sys; sys.argv[0] = ..." is just
appended after the first "#!", which in turn breaks things such as
encoding specifications. A second problem - although not very common -
is when there's another #! within the script.

This should take care of both cases.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2014-07-28 04:18:21 +02:00
Christian Theune 24ef871e6a python: fix argv[0] for wrapped console_scripts.
Previously programs would see '.<program>-wrapped' as their program name. This is a workaround
but should be reasonably safe and reliable.
2014-07-27 13:23:15 +02:00
Domen Kožar 0d71d2b631 fixes #2926 2014-06-15 16:05:18 +02:00
Jussi Maki 75cb485718 ansible: conventions, fix module execution 2014-05-21 14:46:37 +02:00
Domen Kožar 296dd89030 buildPythonPackage: don't return on shellHook
Entering environment might not always be the desired effect.
2014-04-07 00:43:50 +02:00
Eelco Dolstra 1fe2a68224 quodlibet: Fix evaluation
http://hydra.nixos.org/build/9400950
2014-03-10 14:51:05 +01:00
Jaka Hudoklin 0558c87288 buildPythonPackage: add shell hook for instant development 2014-03-10 11:28:47 +01:00
Jaka Hudoklin f0f2125620 pythonPackages: auto add unzip to buildInputs if pkg has zip suffix 2014-03-08 23:29:15 +01:00
Domen Kozar 649e7d6fdb python wrap.sh: wrap pypy and python shebangs 2014-03-07 16:50:46 +01:00
Domen Kozar fedd018d93 fix pypy and pypyPackages 2014-03-07 14:34:06 +01:00
Domen Kožar f1db57f1fe buildPythonPackage: fix more borken packages 2014-02-21 18:29:57 +01:00
Domen Kožar 567e67f05f bash doesn't allow comments between multiline statements 2014-02-20 01:19:16 +01:00
Domen Kožar fa98edf2b1 fix eval 2014-02-20 01:19:16 +01:00
Domen Kožar b1ffb9ede4 buildPythonPackage: Add --old-and-unmanageable flag to install command and add more docs.
For explanation see inline comments.
2014-02-20 01:19:16 +01:00
Domen Kožar c80feaf542 document setuptools monkeypatching and DETERMINISTIC_BUILD=1 2014-02-20 01:19:16 +01:00
Domen Kožar 21ada5b105 garden 2014-02-20 01:19:16 +01:00
Domen Kožar bf5d6fb9b1 Refactor buildPythonPackage to modularize building process.
Before we used `easy_install` command to handle installation
in one shot, now this is split into two phases:

 - buildPhase: python setup.py build
 - installPhase: python setup.py install

Each of those commands have the ability to pass extra
parameters through buildPythonPackage parameters as
`setupPyInstallFlags` and `setupPyBuildFlags`.

Phases now correctly execute post/pre hooks.

In configurePhase we inject setuptools dependency before distutils
is imported to apply monkeypatching by setuptools that is needed
for special features to apply.

We don't have to reorder default phases anymore, as test
phase comes after build and that works.

I rewrote offineDistutils into distutils-cfg with a bit cleaner
syntax and ability to specify extraCfg to the config file.

Plone packages are failing and garbas said he will adopt them to
the new functions. The rest of the packages I fixed and these commits
shouldn't break any package (according to my testings) and they introduce
16 new jobs and fix 38 that were broken before.
2014-02-20 01:19:15 +01:00
Domen Kozar 7458f29dc9 don't wrap scripts in EGG-INFO/scripts since they are called from python 2013-07-29 19:31:58 +02:00
Domen Kozar 918e5efb99 recurse into python33 and pypy packages 2013-07-29 14:52:19 +02:00
Domen Kozar 4993f07fee python: include python version when prefixing python packages 2013-07-29 12:09:06 +02:00
Domen Kozar 5ec6cf3756 add python3 support to pythonPackages 2013-07-29 12:09:06 +02:00
Evgeny Egorochkin 09e6ae577b Python: add DETERMINISTIC_BUILD env var. If set, python doesn't write timestamps to pyc files. Tested by
building argparse, compiling from cli, compiling using py_compile.
2013-06-22 09:45:01 +03:00
Eelco Dolstra 0a47a28f1d Merge remote-tracking branch 'origin/master' into stdenv-updates 2013-01-22 23:23:53 +01:00
Florian Friesdorf a865154f62 Add myself as (additional) maintainer to all python packages. 2013-01-21 04:44:25 +01:00
Rickard Nilsson 1886d1db6a Merge remote-tracking branch 'upstream/master' into stdenv-updates 2013-01-20 16:53:21 +01:00
Florian Friesdorf 8f0ea2b4c0 pythonPackages: default to python's maintainers and platforms 2013-01-19 18:32:03 +01:00
Eelco Dolstra 5bb548d2e4 Merge remote-tracking branch 'origin/master' into stdenv-updates 2013-01-17 14:19:14 +01:00
Florian Friesdorf bfa0495344 remove old inactive pth file creation for buildInputs 2013-01-15 17:52:53 +01:00
Florian Friesdorf 24d48d9170 don't put propagated recursivePthLoader into pth file, #257 2013-01-11 18:04:27 +01:00
Peter Simons b33ad366a1 Merge branch 'master' into stdenv-updates. 2013-01-11 15:46:10 +01:00
Florian Friesdorf a59164e931 modules propgate recursivePthLoader
An alternative would be to include it with the plain `python`.
2013-01-11 10:54:25 +01:00
Florian Friesdorf 212b4df91c recursivePthLoader included via wrapper, not propagated by modules 2013-01-11 09:53:28 +01:00
Florian Friesdorf 42d49b47ba comment unneeded buildInputStrings 2013-01-10 12:50:17 +01:00
Florian Friesdorf 0f52f5a945 Revert "don't propagate recursivePthLoader, it is needed to process it already"
This reverts commit edd160452e.

If we propagate it, derivations that use a python package will also
get the recursivePthLoader needed to process the pth files of the
package.
2013-01-09 22:29:46 +01:00
Florian Friesdorf 1cd2bd460b whitespace 2013-01-09 22:29:41 +01:00
Florian Friesdorf 06ca1e4768 Merge branch 'channel-nixos' into python 2013-01-09 22:18:38 +01:00
Rob Vermaas cfdf35d6f9 Add preInstall ot buildPythonPackage (postInstall already existed) to allow selenium to work properly again. 2013-01-09 15:46:14 +01:00
Florian Friesdorf 6654cb8a10 comment 2013-01-09 05:21:01 +01:00
Eelco Dolstra ab3eeabfed Rename buildNativeInputs -> nativeBuildInputs
Likewise for propagatedBuildNativeInputs, etc.  "buildNativeInputs"
sounds like an imperative rather than a noun phrase.
2012-12-28 19:20:09 +01:00
Florian Friesdorf edd160452e don't propagate recursivePthLoader, it is needed to process it already 2012-12-22 02:41:10 +01:00
Florian Friesdorf aab93e8479 do not create e.g pth file for build inputs
if they are really needed they will be in pth file created by
easy_install. If that does not work, they need to be put into
propagatedBuildInputs or the setup.py fixed.

see #210
2012-12-22 02:35:04 +01:00
Florian Friesdorf aeef72fa85 python-modules: remove long non-functional propagated-user-env-packages
we use recursive processing of pth files instead
2012-12-22 02:18:29 +01:00
Florian Friesdorf 27a73428cc remove site.py files
setuptools site.py can't resolve recursively which is needed for nix,
as each package has its own directory. A different solution than
putting the loader into every package output needs to be found.

see also #209
2012-12-22 02:15:08 +01:00
Florian Friesdorf 886742d91a use recursivePthLoader instead of setuptoolsSite 2012-12-22 01:13:23 +01:00
Florian Friesdorf 6278dabe5d python: do not delete site.py for now as it breaks existing use cases
see #209, thx shlevy for reporting this
2012-12-07 11:44:46 +01:00
Florian Friesdorf 78be948175 change order of phases for python modules: checkPhase after installPhase
at least pycrypto it helps
2012-12-05 11:31:28 +01:00
Florian Friesdorf 17597e8350 propagate setuptoolsSite to load pth files 2012-12-03 05:20:50 +01:00
Florian Friesdorf d4d76a8443 make diff to master look nicer 2012-12-03 04:41:19 +01:00
Florian Friesdorf a4ded47776 include offlineDistutils in preConfigure instead of configurePhase 2012-11-29 15:29:41 +01:00
Florian Friesdorf 92a833604c Merge branch 'py/offline-distutils' into python-merge
Conflicts:
	pkgs/development/python-modules/generic/builder.sh
	pkgs/development/python-modules/generic/default.nix
2012-11-24 22:49:19 +01:00
Florian Friesdorf 74d963c69a offlineDistutils in PYTHONPATH in configurePhase instead of builder.sh
Conflicts:
	pkgs/development/python-modules/generic/default.nix
2012-11-24 22:34:09 +01:00
Florian Friesdorf bdccb5417b fix python module builder 2012-11-23 18:33:33 +01:00
Florian Friesdorf ccb5d0fc19 fix python module builder 2012-11-23 18:33:25 +01:00
Florian Friesdorf 1171166518 Merge branch 'py/offline-distutils' into python-merge 2012-11-23 17:39:23 +01:00
Florian Friesdorf 337d16368a fix builder in python-module 2012-11-23 17:38:31 +01:00
Florian Friesdorf ddbd5c2eba Merge branch 'py/offline-distutils' into python-merge
Conflicts:
	pkgs/development/python-modules/generic/default.nix
2012-11-23 17:28:51 +01:00
Florian Friesdorf ad8a4c73fa use offline-disutils in buildPythonPackage 2012-11-23 17:27:55 +01:00
Florian Friesdorf dce76a387d Merge branch 'py/pth-create' into python-merge
Conflicts:
	pkgs/development/python-modules/generic/default.nix
2012-11-23 15:57:09 +01:00
Florian Friesdorf fa1c8fef2f move pth rename and site.py removal to buildPhase
This leaves the installCommand to be only easy_install and makes it
easy again to overwrite this.
2012-11-23 15:54:55 +01:00
Florian Friesdorf 24fd592d64 Merge branch 'py/always-unzip' into python-merge
Conflicts:
	pkgs/development/python-modules/generic/default.nix
2012-11-22 13:39:05 +01:00
Florian Friesdorf f8d3671629 fix pth files 2012-07-22 02:08:00 +02:00
Florian Friesdorf a40da09b44 python: create pth files for python build inputs (propagate/native or not) 2012-07-21 01:55:50 +02:00
Florian Friesdorf 5c564f26f0 python: always unzip eggs installed into the store
grepping and tagging are two use cases coming to mind
2012-07-21 00:20:21 +02:00
Florian Friesdorf 2c3ffeb79c python: remove colliding site.py* files 2012-07-21 00:14:03 +02:00
Florian Friesdorf e7c1aa52cc python: rename eventually created easy_install.pth to pkg-specific file 2012-07-21 00:11:02 +02:00
Florian Friesdorf 833023d85a Revert "pth file with deps, only current package's scripts, no colliding files"
This reverts commit 3a37caa6a278fb244eac4a6bb1452d1914159be8.

svn path=/nixpkgs/branches/stdenv-updates/; revision=32662
2012-02-28 00:07:56 +00:00
Florian Friesdorf 3b39dff906 Revert "include site for python wrappers to enable deps via pth files"
This reverts commit dca280ab0b668553c50506ab7b31284e8477a803.

svn path=/nixpkgs/branches/stdenv-updates/; revision=32660
2012-02-28 00:07:48 +00:00
Florian Friesdorf 43e16d04b9 Revert "prevent distutils during module install from downloading and load pth files"
This reverts commit 2a151d9df99f68c555a9f1fd2c80b8889561e9e3.

svn path=/nixpkgs/branches/stdenv-updates/; revision=32659
2012-02-28 00:07:42 +00:00
Florian Friesdorf 4b4f6ece3e Revert "removal of deps' scripts only if easy-install.pth exists"
This reverts commit a74507f63e2af67cf64dc3e67bfbf2771120f67e.

svn path=/nixpkgs/branches/stdenv-updates/; revision=32655
2012-02-28 00:07:30 +00:00
Florian Friesdorf 2d2c8b3e59 Revert "include site in pythonpath of wrapped scripts, if python-site is installed"
This reverts commit 1ac12b0d4b64936104cb6031b02c92c3d1845ae5.

svn path=/nixpkgs/branches/stdenv-updates/; revision=32654
2012-02-28 00:07:27 +00:00
Florian Friesdorf 2ea5e2b576 Revert "suffix pythonpath"
This reverts commit a9a2b1e0dd8cdbb1dff3253d303b35d41f29b0f9.

svn path=/nixpkgs/branches/stdenv-updates/; revision=32652
2012-02-28 00:07:19 +00:00
Florian Friesdorf 92da3fd865 Revert "PYTHONPATH in preConfigure instead of configurePhase"
This reverts commit a9873e9412d5ffb333baaf33502c8dff62548fa6.

svn path=/nixpkgs/branches/stdenv-updates/; revision=32651
2012-02-28 00:07:16 +00:00
Florian Friesdorf e545a9944a Revert "added unzip to buildPythonPackage's buildInputs - used quite often"
This reverts commit f067ecb4911f154fe2c64434abdc5a8b79625f5a.

svn path=/nixpkgs/branches/stdenv-updates/; revision=32644
2012-02-28 00:06:52 +00:00
Florian Friesdorf 178b5b9c5b Revert "move checkPhase after fixupPhase for python packages"
This reverts commit 413c44da228754018a2920cb556303e803a9d488.

svn path=/nixpkgs/branches/stdenv-updates/; revision=32643
2012-02-28 00:06:49 +00:00
Florian Friesdorf 013c915777 Revert "enable preConfigure for python packages again"
This reverts commit a513314290ba0d78400ea4902301f421e0fecdd2.

svn path=/nixpkgs/branches/stdenv-updates/; revision=32642
2012-02-28 00:06:46 +00:00
Florian Friesdorf 3c51235920 enable preConfigure for python packages again
authored by: chaoflow, goibhniu

svn path=/nixpkgs/branches/stdenv-updates/; revision=32626
2012-02-27 17:34:08 +00:00
Florian Friesdorf d16a15c0a5 move checkPhase after fixupPhase for python packages
authored by: chaoflow, goibhniu

svn path=/nixpkgs/branches/stdenv-updates/; revision=32625
2012-02-27 17:34:02 +00:00
Florian Friesdorf 9e646d4689 added unzip to buildPythonPackage's buildInputs - used quite often
authored by: chaoflow, goibhniu

svn path=/nixpkgs/branches/stdenv-updates/; revision=32624
2012-02-27 17:33:55 +00:00
Florian Friesdorf 6d7dfd1415 PYTHONPATH in preConfigure instead of configurePhase
enables a normal configurePhase also for python packages (e.g. libxml2
python bindings)

authored by: chaoflow, goibhniu

svn path=/nixpkgs/branches/stdenv-updates/; revision=32595
2012-02-26 17:23:47 +00:00
Florian Friesdorf eb35e3bd13 suffix pythonpath
this is already the case for the pythonXYFull

svn path=/nixpkgs/branches/stdenv-updates/; revision=32594
2012-02-26 17:23:44 +00:00
Florian Friesdorf d670c0e45c include site in pythonpath of wrapped scripts, if python-site is installed
svn path=/nixpkgs/branches/stdenv-updates/; revision=32592
2012-02-26 17:23:38 +00:00
Florian Friesdorf c6893a14df removal of deps' scripts only if easy-install.pth exists
solves duplicate installation for packages that do not use setuptools

svn path=/nixpkgs/branches/stdenv-updates/; revision=32591
2012-02-26 17:23:35 +00:00
Florian Friesdorf d52e2c7c41 prevent distutils during module install from downloading and load pth files
based on a patch by Cillian de Róiste

svn path=/nixpkgs/branches/stdenv-updates/; revision=32583
2012-02-26 17:23:09 +00:00
Florian Friesdorf ccb34b093f include site for python wrappers to enable deps via pth files
svn path=/nixpkgs/branches/stdenv-updates/; revision=32582
2012-02-26 17:23:05 +00:00
Florian Friesdorf 6ccd671e5b pth file with deps, only current package's scripts, no colliding files
svn path=/nixpkgs/branches/stdenv-updates/; revision=32580
2012-02-26 17:22:59 +00:00
Eelco Dolstra c556a6ea46 * "ensureDir" -> "mkdir -p". "ensureDir" is a rather pointless
function, so obsolete it.

svn path=/nixpkgs/branches/stdenv-updates/; revision=31644
2012-01-18 20:16:00 +00:00
Eelco Dolstra 69b974bda6 * Generic Python builder: support preCheck and postCheck.
svn path=/nixpkgs/branches/modular-python/; revision=26602
2011-03-30 12:27:04 +00:00
Eelco Dolstra 353d450867 * wrapPythonPrograms: don't hard-code the Python library prefix.
svn path=/nixpkgs/branches/modular-python/; revision=26594
2011-03-29 15:19:59 +00:00
Eelco Dolstra 968496e69b * wrapPythonPrograms: rewrite the common "#! .../env python" idiom to
"#! .../python".

svn path=/nixpkgs/branches/modular-python/; revision=26583
2011-03-28 17:19:27 +00:00
Eelco Dolstra 47adaa80e3 * Move the wrapPythonPrograms function into a separate setup hook
(wrapPython).

svn path=/nixpkgs/branches/modular-python/; revision=26580
2011-03-28 16:33:33 +00:00