From e4248a83981696362a21489ab6997cc84950ee7c Mon Sep 17 00:00:00 2001 From: Tomo Date: Mon, 14 Oct 2024 23:52:14 +0000 Subject: [PATCH] doc/languages-frameworks/gnome: update Qt package example Part of #180841 Updated the existing example to reflect changes from a later version of the same package: https://github.com/NixOS/nixpkgs/blob/b293f6561ea74ccd9ddafe49f8227caf5b85f720/pkgs/applications/misc/calibre/default.nix Co-authored-by: Jan Tojnar --- doc/languages-frameworks/gnome.section.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/doc/languages-frameworks/gnome.section.md b/doc/languages-frameworks/gnome.section.md index b4999aec87462..02dfa3508c4fb 100644 --- a/doc/languages-frameworks/gnome.section.md +++ b/doc/languages-frameworks/gnome.section.md @@ -155,9 +155,11 @@ There are no schemas available in `XDG_DATA_DIRS`. Temporarily add a random pack Package is missing some GSettings schemas. You can find out the package containing the schema with `nix-locate org.gnome.foo.gschema.xml` and let the hooks handle the wrapping as [above](#ssec-gnome-common-issues-no-schemas). -### When using `wrapGApps*` hook with special derivers you can end up with double wrapped binaries. {#ssec-gnome-common-issues-double-wrapped} +### When using `wrapGApps*` hook with special derivers or hooks you can end up with double wrapped binaries. {#ssec-gnome-common-issues-double-wrapped} -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 `wrapGApps*` hook automatic wrapping with `dontWrapGApps = true;` and pass the arguments it intended to pass to makeWrapper to another. +This is because some setup hooks like `qt6.wrapQtAppsHook` also wrap programs using `makeWrapper`. Likewise, some derivers (e.g. `python.pkgs.buildPythonApplication`) automatically pull in their own setup hooks that produce wrappers. + +The simplest workaround is to disable the `wrapGApps*` hook's automatic wrapping using `dontWrapGApps = true;` while passing its `makeWrapper` arguments to another wrapper. In the case of a Python application it could look like: @@ -184,19 +186,19 @@ python3.pkgs.buildPythonApplication { And for a QT app like: ```nix -mkDerivation { +stdenv.mkDerivation { pname = "calibre"; version = "3.47.0"; nativeBuildInputs = [ wrapGAppsHook3 + qt6.wrapQtAppsHook qmake # ... ]; dontWrapGApps = true; - # Arguments to be passed to `makeWrapper`, only used by qt5’s mkDerivation preFixup = '' qtWrapperArgs+=("''${gappsWrapperArgs[@]}") '';