Skip to content

SDL2: don't propagate headers-only packages via RUNPATH#225395

Merged
trofi merged 1 commit intoNixOS:stagingfrom
trofi:SDL2-leaner-closure
Apr 11, 2023
Merged

SDL2: don't propagate headers-only packages via RUNPATH#225395
trofi merged 1 commit intoNixOS:stagingfrom
trofi:SDL2-leaner-closure

Conversation

@trofi
Copy link
Contributor

@trofi trofi commented Apr 9, 2023

On nixpkgs SDL2 explicitly bulds RUNPATHs from it's subset of build inputs. As a result RUNPATH contains more than needed. This change repomed from RUNPATH packages that don't contain libraries but contain developer-only files:

  • wayland-protocols: xml files to describe protocols
  • xorgproto: header files for X11

The change moves them to buildInputs / propagatedBuildInputs.

Before the change closure size is:

$ nix path-info -rsSh $(nix-build -A SDL2) | nl
221  /nix/store/...-SDL2-2.26.4 2.5M 546.5M

After the change:

$ nix path-info -rsSh $(nix-build -A SDL2) | nl
219  /nix/store/...-SDL2-2.26.4 2.5M 544.4M
Description of changes
Things done
  • Built on platform(s)
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
  • Tested, as applicable:
  • Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
  • Tested basic functionality of all binary files (usually in ./result/bin/)
  • 23.05 Release Notes (or backporting 22.11 Release notes)
    • (Package updates) Added a release notes entry if the change is major or breaking
    • (Module updates) Added a release notes entry if the change is significant
    • (Module addition) Added a release notes entry if adding a new NixOS module
  • Fits CONTRIBUTING.md.

On `nixpkgs` SDL2 explicitly bulds RUNPATHs from it's subset of build
inputs. As a result RUNPATH contains more than needed. This change
repomed from RUNPATH packages that don't contain libraries but contain
developer-only files:
- wayland-protocols: xml files to describe protocols
- xorgproto: header files for X11

The change moves them to buildInputs / propagatedBuildInputs.

Before the change closure size is:

    $ nix path-info -rsSh $(nix-build -A SDL2) | nl
    221  /nix/store/...-SDL2-2.26.4 2.5M 546.5M

After the change:

    $ nix path-info -rsSh $(nix-build -A SDL2) | nl
    219  /nix/store/...-SDL2-2.26.4 2.5M 544.4M
@ofborg ofborg bot requested a review from cpages April 9, 2023 10:27
@ofborg ofborg bot added 10.rebuild-darwin: 501+ This PR causes many rebuilds on Darwin and should normally target the staging branches. 10.rebuild-darwin: 501-1000 This PR causes many rebuilds on Darwin and should normally target the staging branches. 10.rebuild-linux: 501+ This PR causes many rebuilds on Linux and should normally target the staging branches. 10.rebuild-linux: 2501-5000 This PR causes many rebuilds on Linux and should target the staging branches. labels Apr 9, 2023
@risicle
Copy link
Contributor

risicle commented Apr 9, 2023

Could do with some passthru.tests for SDL2.

@trofi
Copy link
Contributor Author

trofi commented Apr 9, 2023

I built/ran opentyrian, fheroes2, flare and qemu on x86_64-linux successfully. I'm not sure what would be a good passthru.tests candidate for SDL2. There are so many games to pick from :)

@trofi trofi merged commit ca908f0 into NixOS:staging Apr 11, 2023
@trofi trofi deleted the SDL2-leaner-closure branch April 11, 2023 22:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

10.rebuild-darwin: 501-1000 This PR causes many rebuilds on Darwin and should normally target the staging branches. 10.rebuild-darwin: 501+ This PR causes many rebuilds on Darwin and should normally target the staging branches. 10.rebuild-linux: 501+ This PR causes many rebuilds on Linux and should normally target the staging branches. 10.rebuild-linux: 2501-5000 This PR causes many rebuilds on Linux and should target the staging branches.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants