Merge pull request #330634 from r-ryantm/auto-update/circumflex
[NixPkgs.git] / pkgs / desktops / gnome / misc / gnome-panel / wrapper.nix
blob10b81eaad62cdb0ac02328b7ab073a469955a838
1 { stdenv
2 , lib
3 , buildEnv
4 , gnome-panel
5 , gnome-flashback
6 , xorg
7 , glib
8 , wrapGAppsHook3
9 , panelModulePackages ? [ ]
12 let
13   # We always want to find the built-in panel applets.
14   selectedPanelModulePackages = [ gnome-panel gnome-flashback ] ++ panelModulePackages;
16   panelModulesEnv = buildEnv {
17     name = "gnome-panel-modules-env";
18     paths = selectedPanelModulePackages;
19     pathsToLink = [ "/lib/gnome-panel/modules" ];
20   };
22 stdenv.mkDerivation {
23   pname = "${gnome-panel.pname}-with-modules";
24   inherit (gnome-panel) version;
26   nativeBuildInputs = [
27     glib
28     wrapGAppsHook3
29   ];
31   buildInputs = selectedPanelModulePackages ++
32     lib.forEach selectedPanelModulePackages (x: x.buildInputs or [ ]);
34   dontUnpack = true;
35   dontConfigure = true;
36   dontBuild = true;
38   preferLocalBuild = true;
39   allowSubstitutes = false;
41   installPhase = ''
42     runHook preInstall
44     mkdir -p $out
45     ${xorg.lndir}/bin/lndir -silent ${gnome-panel} $out
47     rm -r $out/lib/gnome-panel/modules
48     ${xorg.lndir}/bin/lndir -silent ${panelModulesEnv} $out
50     rm $out/share/applications/gnome-panel.desktop
52     substitute ${gnome-panel}/share/applications/gnome-panel.desktop \
53       $out/share/applications/gnome-panel.desktop --replace \
54       "Exec=${gnome-panel}/bin/gnome-panel" "Exec=$out/bin/gnome-panel"
56     runHook postInstall
57   '';
59   preFixup = ''
60     gappsWrapperArgs+=(
61       --set NIX_GNOME_PANEL_MODULESDIR "$out/lib/gnome-panel/modules"
62     )
63   '';
65   meta = gnome-panel.meta // { outputsToInstall = [ "out" ]; };