-
-
Notifications
You must be signed in to change notification settings - Fork 13.6k
-
-
Notifications
You must be signed in to change notification settings - Fork 13.6k
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
pkgsStatic: do not propagate builds with nix-support/propagated-build-inputs
#83667
Comments
Here is an Idea: Instead of modifying I don't know if that would be viable for Python too. What do you think? |
Maybe. Imagine we go create Python packages with The whole file is not needed here in case of Possible solutions
1 and 2 will break other use case of |
cc @Ericson2314 @matthewbauer for input. Generally speaking, propagating inputs does not mean we want to have them typically written out in |
Ah, |
Ah yes @FRidh beat me to it. The intension I always assumed was to have |
Yes that's my understanding as well, the |
Python libraries that don't have any executables will loose their store references until the library is used in an environment. Not a big issue but it can cause unnecessary GC and fetching. Note we're not using |
Example of a change forcing a "dev" output for static builds #83793 |
Static builds propagate all buildInputs resulting in a `nix-support/propagated-build-inputs` for nearly every package, retaining references to the entire build-closure. To avoid this, one needs to add "dev" outputs to the package. This commit forces "dev" outputs in case of static builds. That is, static builds will fail to build without a functioning "dev" output. This will break packages that require the `propagated-build-inputs` file in the main output. An example here are Python packages. NixOS#83667
Hello, I'm a bot and I thank you in the name of the community for opening this issue. To help our human contributors focus on the most-relevant reports, I check up on old issues to see if they're still relevant. This issue has had no activity for 180 days, and so I marked it as stale, but you can rest assured it will never be closed by a non-human. The community would appreciate your effort in checking if the issue is still valid. If it isn't, please close it. If the issue persists, and you'd like to remove the stale label, you simply need to leave a comment. Your comment can be as simple as "still important to me". If you'd like it to get more attention, you can ask for help by searching for maintainers and people that previously touched related code and @ mention them in a comment. You can use Git blame or GitHub's web interface on the relevant files to find them. Lastly, you can always ask for help at our Discourse Forum or at #nixos' IRC channel. |
When used from pkgsStatic, this is synonymous with the "qemu-user-static" packages available in other distros. This requires modifications to the existing qemu derivation, notably: * Add userOnly flag to only build relevant binaries * Add minimal flag to share work between userOnly and existing toolsOnly flag * Skip doc-related dependencies (texfmt, sphinx) when docs are disabled * Skip dependencies unnecessary for qemu-user which fail in pkgsStatic (libaio, dtc) * Support disabling TCG plugins, default to disabled on static builds * Support disabling tools and blobs * Work around NixOS#83667 Co-authored-by: Bruno Tavares <connect+github@bltavares.com> Co-authored-by: Julius Michaelis <gitter@liftm.de>
Describe the bug
For static builds recursively all dependencies are needed. An adapter is now used that converts all
buildInputs
topropagatedBuildInputs
. UsingpropagatedBuildInputs
results in the file$out/nix-support/propagated-build-inputs
causing a run-time dependency on all build-time dependencies.With Python there is a similar kind of issue which is why there I am investigating a way that does not involve writing out that file.
The text was updated successfully, but these errors were encountered: