diff --git a/default.nix b/default.nix index a6890c2..0aa028c 100644 --- a/default.nix +++ b/default.nix @@ -195,7 +195,7 @@ let postPatch = (passedAttrs.postPatch or "") + '' # Tell poetry not to resolve the path dependencies. Any version is # fine ! - yj -tj < pyproject.toml | python ${./pyproject-without-path.py} > pyproject.json + yj -tj < pyproject.toml | ${python.interpreter} ${./pyproject-without-path.py} > pyproject.json yj -jt < pyproject.json > pyproject.toml rm pyproject.json ''; diff --git a/mk-poetry-dep.nix b/mk-poetry-dep.nix index 9537045..095497a 100644 --- a/mk-poetry-dep.nix +++ b/mk-poetry-dep.nix @@ -112,7 +112,7 @@ pythonPackages.callPackage ( builtins.map (n: pythonPackages.${lib.toLower n}) (builtins.attrNames dependencies); meta = { - broken = ! isCompatible python.version python-versions; + broken = ! isCompatible python.pythonVersion python-versions; license = []; }; diff --git a/overrides.nix b/overrides.nix index 58fa251..a7e9c34 100644 --- a/overrides.nix +++ b/overrides.nix @@ -21,11 +21,15 @@ self: super: } ); - cffi = super.cffi.overrideAttrs ( - old: { - buildInputs = old.buildInputs ++ [ pkgs.libffi ]; - } - ); + cffi = + # cffi is bundled with pypy + if self.python.implementation == "pypy" then null else ( + super.cffi.overrideAttrs ( + old: { + buildInputs = old.buildInputs ++ [ pkgs.libffi ]; + } + ) + ); cftime = super.cftime.overrideAttrs ( old: { diff --git a/pep508.nix b/pep508.nix index 93a3953..e5825da 100644 --- a/pep508.nix +++ b/pep508.nix @@ -83,7 +83,10 @@ let # This function also performs variable substitution, replacing environment markers with their explicit values transformExpressions = exprs: let variables = { - os_name = "posix"; # TODO: Check other platforms + os_name = ( + if python.pname == "jython" then "java" + else "posix" + ); sys_platform = ( if stdenv.isLinux then "linux" else if stdenv.isDarwin then "darwin" @@ -100,7 +103,7 @@ let platform_version = ""; # Field not reproducible python_version = python.passthru.pythonVersion; python_full_version = python.version; - implementation_name = "cpython"; # Only cpython supported for now + implementation_name = python.implementation; implementation_version = python.version; extra = ""; }; diff --git a/tests/default.nix b/tests/default.nix index 4a0602f..e6857f9 100644 --- a/tests/default.nix +++ b/tests/default.nix @@ -29,15 +29,16 @@ builtins.removeAttrs inherit poetry2nix poetry; inherit (pkgs) postgresql; }; + pyqt5 = pkgs.callPackage ./pyqt5 { inherit poetry2nix; }; + eggs = pkgs.callPackage ./eggs { inherit poetry2nix; }; + # Test building poetry inherit poetry; poetry-python2 = poetry.override { python = pkgs.python2; }; - # Pyqt5 test is waiting for nixpkgs sip bump to reach channel - pyqt5 = pkgs.callPackage ./pyqt5 { inherit poetry2nix; }; - - # Egg support not yet in channel, uncomment when channel progressed - eggs = pkgs.callPackage ./eggs { inherit poetry2nix; }; + # And also test with pypy + poetry-pypy = poetry.override { python = pkgs.pypy; }; + poetry-pypy3 = poetry.override { python = pkgs.pypy3; }; inherit (poetry2nix) doc;