Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Python recursivePthLoader in action #258

Merged
merged 38 commits into from
Jan 15, 2013
Merged

Conversation

chaoflow
Copy link
Member

Remove pth loader (site.py) from module, instead propagate the recursivePthLoader (#222). This allows recursive pth loading, which is needed for modules that themselves depend on modules. It also avoids special treatment / a collision of theses site.py files. The recursivePthLoader itself is not included in the pth file generated for propagatedBuildInputs (#257).

pth files are not generated anymore for buildInputs (#210), but only for propagatedBuildInputs. the build process, usually easy_install, is responsible to generate a pth file with the runtime dependencies. Use propagatedBuildInputs if this fails, e.g. for matplotlib.

Further cleanup that also results in recompilation of everything depending on python:

Package fixes that make use of the pth loader:

  • pygobject
  • pygtk

Packages now also available for 2.6

  • pycairo
  • pygobject
  • pygtk/pygtkGlade

Release file for hydra python-rework jobset: release-python.nix

define full job attributes (not just systems) so we can define
schedulingPriority without touching release-lib.nix.

There is definitely a more elegant way to recursively walk attributes
and fill in missing values (job and schedulingPriority).
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 NixOS#209
we use recursive processing of pth files instead
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 NixOS#210
On other systems python26 will continue to look for
/usr/include/netinet/in.h among others. I don't know whether/what to
do about that.
…t already"

This reverts commit edd1604.

If we propagate it, derivations that use a python package will also
get the recursivePthLoader needed to process the pth files of the
package.
An alternative would be to include it with the plain `python`.
@cillianderoiste
Copy link
Member

This looks great! Is there anything in particular to test before merging?

cillianderoiste added a commit that referenced this pull request Jan 15, 2013
Python recursivePthLoader in action

I've checked that nothing which passes in trunk: http://hydra.nixos.org/eval/810237 fails in python-rework: http://hydra.nixos.org/eval/810395

I can also now use buildEnv for python very comfortably. This is a massive improvement, thanks a lot!
@cillianderoiste cillianderoiste merged commit 51684bc into NixOS:master Jan 15, 2013
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants