Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at devShellTools-shell 72 lines 1.5 kB view raw
1{ 2 stdenv, 3 lib, 4 buildEnv, 5 gnome-panel, 6 gnome-flashback, 7 xorg, 8 glib, 9 wrapGAppsHook3, 10 panelModulePackages ? [ ], 11}: 12 13let 14 # We always want to find the built-in panel applets. 15 selectedPanelModulePackages = [ 16 gnome-panel 17 gnome-flashback 18 ] 19 ++ panelModulePackages; 20 21 panelModulesEnv = buildEnv { 22 name = "gnome-panel-modules-env"; 23 paths = selectedPanelModulePackages; 24 pathsToLink = [ "/lib/gnome-panel/modules" ]; 25 }; 26in 27stdenv.mkDerivation { 28 pname = "${gnome-panel.pname}-with-modules"; 29 inherit (gnome-panel) version; 30 31 nativeBuildInputs = [ 32 glib 33 wrapGAppsHook3 34 ]; 35 36 buildInputs = 37 selectedPanelModulePackages ++ lib.forEach selectedPanelModulePackages (x: x.buildInputs or [ ]); 38 39 dontUnpack = true; 40 dontConfigure = true; 41 dontBuild = true; 42 43 preferLocalBuild = true; 44 allowSubstitutes = false; 45 46 installPhase = '' 47 runHook preInstall 48 49 mkdir -p $out 50 ${xorg.lndir}/bin/lndir -silent ${gnome-panel} $out 51 52 rm -r $out/lib/gnome-panel/modules 53 ${xorg.lndir}/bin/lndir -silent ${panelModulesEnv} $out 54 55 rm $out/share/applications/gnome-panel.desktop 56 57 ln -s ${gnome-panel}/share/applications/gnome-panel.desktop \ 58 $out/share/applications/gnome-panel.desktop 59 60 runHook postInstall 61 ''; 62 63 preFixup = '' 64 gappsWrapperArgs+=( 65 --set NIX_GNOME_PANEL_MODULESDIR "$out/lib/gnome-panel/modules" 66 ) 67 ''; 68 69 meta = gnome-panel.meta // { 70 outputsToInstall = [ "out" ]; 71 }; 72}