Open gebner opened 3 years ago
We need to get rid of propagatedBuildInputs
for Python packages entirely. https://github.com/NixOS/nixpkgs/pull/102613 shows how it could be done. After an RFC discussion on overriding of derivations I concluded we should use less Nix and instead use a file such as $out/nix-support/python-packages
so https://github.com/NixOS/nixpkgs/pull/102613 won't go in.
Some other surprising observations:
propagatedBuildInputs = [ pyobject3.out ];
means exactly the same as propagatedBuildInputs = [ pyobject3 ];
. So you always have a dependency on the C headers of a python extension, whether you want them or not.outputs = [ "out" "dev" ];
to duplicity breaks the python wrapper.Related: checkInputs are in the runtime closure as well #118452
Should update https://github.com/NixOS/nixpkgs/issues/1819 again, its been a while.
Adding outputs = [ "out" "dev" ]; to duplicity breaks the python wrapper.
This was noticed in the past with if I recall correctly requests and some other packages. A work-around is to use pythonPath
instead of propagatedBuildInputs
.
Can this be closed?
Can this be closed?
I've fixed the closure size in #118459 and the mesa issue in #118479. But I'd still like some comments on propagatedBuildInputs.
propagated-build-inputs
file is only put in the dev output. Does this mean that every package which transitively depends on a propagatedBuildInput should have a dev output?propagated-build-inputs
, unless it also declares propagatedBuildInputs
.I should write out once how things work now and what should change.
This confuses me. The dependent will not create a propagated-build-inputs, unless it also declares propagatedBuildInputs.
Then I was also confused, sorry. This behavior sounds great, actually. If we move python away from propagatedBuildInputs, then this issue will be automatically gone.
To reproduce:
duplicity is a small command-line backup program, so this is a bit surprising to say the least. Even if it depended on some graphics libraries, I would have maybe expected glvnd to show up. But the actual mesa drivers is a bit too much. There seem to be several surprising issues here:
nix-support/propagated-build-inputs
.I don't really know where to start fixing this issue.
python3Packages.pygobject3
doesn't need to propagate dependencies fromcairo
(which are only necessary to build C programs).