Skip to content

treewide: avoid double wrapping with python3Packages and wrapGAppsHook#303848

Closed
Aleksanaa wants to merge 1 commit intoNixOS:masterfrom
Aleksanaa:python-gtk-wrap
Closed

treewide: avoid double wrapping with python3Packages and wrapGAppsHook#303848
Aleksanaa wants to merge 1 commit intoNixOS:masterfrom
Aleksanaa:python-gtk-wrap

Conversation

@Aleksanaa
Copy link
Member

@Aleksanaa Aleksanaa commented Apr 13, 2024

Description of changes

As the documentation suggests. https://nixos.org/manual/nixpkgs/unstable/#sec-language-gnome

When using wrapGAppsHook with special derivers you can end up with double wrapped binaries.

This is because derivers like python.pkgs.buildPythonApplication or qt5.mkDerivation have setup-hooks automatically added that produce wrappers with makeWrapper. The simplest way to workaround that is to disable the wrapGAppsHook automatic wrapping with dontWrapGApps = true; and pass the arguments it intended to pass to makeWrapper to another.

In the case of a Python application it could look like:

python3.pkgs.buildPythonApplication {
  pname = "gnome-music";
  version = "3.32.2";

  nativeBuildInputs = [
    wrapGAppsHook
    gobject-introspection
    ...
  ];

  dontWrapGApps = true;

  # Arguments to be passed to `makeWrapper`, only used by buildPython*
  preFixup = ''
    makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
  '';
}

We can confirm these packages really have double wrapped binaries, for example, blanket:

├── bin                                                                                                                                                   
│   ├── blanket                                                                                                                                           
│   ├── .blanket-wrapped                                                                                                                                  
│   └── ..blanket-wrapped-wrapped

This is tested with:

grep -rl buildPythonApplication pkgs | xargs grep -l wrapGAppsHook | xargs grep -L dontWrapGApps

and:

grep -rl buildPythonPackage pkgs | xargs grep -l wrapGAppsHook | xargs grep -L dontWrapGApps

Things done

  • Built on platform(s)
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)
    • sandbox = relaxed
    • sandbox = true
  • 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/)
  • 24.05 Release Notes (or backporting 23.05 and 23.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.

Add a 👍 reaction to pull requests you find important.

@github-actions github-actions bot added the 6.topic: python Python is a high-level, general-purpose programming language. label Apr 13, 2024
@ofborg ofborg bot added 10.rebuild-darwin: 1-10 This PR causes between 1 and 10 packages to rebuild on Darwin. 10.rebuild-linux: 11-100 This PR causes between 11 and 100 packages to rebuild on Linux. 10.rebuild-darwin: 11-100 This PR causes between 11 and 100 packages to rebuild on Darwin. and removed 10.rebuild-darwin: 1-10 This PR causes between 1 and 10 packages to rebuild on Darwin. labels Apr 13, 2024
@github-actions github-actions bot added the 6.topic: mate The MATE Desktop Environment label Apr 13, 2024
@ofborg ofborg bot added 10.rebuild-linux: 101-500 This PR causes between 101 and 500 packages to rebuild on Linux. and removed 10.rebuild-linux: 11-100 This PR causes between 11 and 100 packages to rebuild on Linux. labels Apr 13, 2024
@Aleksanaa Aleksanaa marked this pull request as ready for review April 13, 2024 16:48
@Aleksanaa Aleksanaa requested a review from jtojnar April 13, 2024 16:48
@Aleksanaa Aleksanaa mentioned this pull request May 2, 2024
13 tasks
@wegank wegank added the 2.status: merge conflict This PR has merge conflicts with the target branch label May 3, 2024
This was referenced May 7, 2024
@Aleksanaa Aleksanaa marked this pull request as draft May 17, 2024 12:02
@wegank wegank added the 2.status: stale https://github.com/NixOS/nixpkgs/blob/master/.github/STALE-BOT.md label Jan 2, 2025
@Aleksanaa Aleksanaa closed this Apr 19, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

2.status: merge conflict This PR has merge conflicts with the target branch 2.status: stale https://github.com/NixOS/nixpkgs/blob/master/.github/STALE-BOT.md 6.topic: mate The MATE Desktop Environment 6.topic: python Python is a high-level, general-purpose programming language. 10.rebuild-darwin: 11-100 This PR causes between 11 and 100 packages to rebuild on Darwin. 10.rebuild-linux: 101-500 This PR causes between 101 and 500 packages to rebuild on Linux.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants