7e47f3658e
GitOrigin-RevId: 1925c603f17fc89f4c8f6bf6f631a802ad85d784
73 lines
1.5 KiB
Nix
73 lines
1.5 KiB
Nix
{
|
|
stdenv,
|
|
lib,
|
|
buildEnv,
|
|
gnome-panel,
|
|
gnome-flashback,
|
|
xorg,
|
|
glib,
|
|
wrapGAppsHook3,
|
|
panelModulePackages ? [ ],
|
|
}:
|
|
|
|
let
|
|
# We always want to find the built-in panel applets.
|
|
selectedPanelModulePackages = [
|
|
gnome-panel
|
|
gnome-flashback
|
|
] ++ panelModulePackages;
|
|
|
|
panelModulesEnv = buildEnv {
|
|
name = "gnome-panel-modules-env";
|
|
paths = selectedPanelModulePackages;
|
|
pathsToLink = [ "/lib/gnome-panel/modules" ];
|
|
};
|
|
in
|
|
stdenv.mkDerivation {
|
|
pname = "${gnome-panel.pname}-with-modules";
|
|
inherit (gnome-panel) version;
|
|
|
|
nativeBuildInputs = [
|
|
glib
|
|
wrapGAppsHook3
|
|
];
|
|
|
|
buildInputs =
|
|
selectedPanelModulePackages
|
|
++ lib.forEach selectedPanelModulePackages (x: x.buildInputs or [ ]);
|
|
|
|
dontUnpack = true;
|
|
dontConfigure = true;
|
|
dontBuild = true;
|
|
|
|
preferLocalBuild = true;
|
|
allowSubstitutes = false;
|
|
|
|
installPhase = ''
|
|
runHook preInstall
|
|
|
|
mkdir -p $out
|
|
${xorg.lndir}/bin/lndir -silent ${gnome-panel} $out
|
|
|
|
rm -r $out/lib/gnome-panel/modules
|
|
${xorg.lndir}/bin/lndir -silent ${panelModulesEnv} $out
|
|
|
|
rm $out/share/applications/gnome-panel.desktop
|
|
|
|
substitute ${gnome-panel}/share/applications/gnome-panel.desktop \
|
|
$out/share/applications/gnome-panel.desktop --replace \
|
|
"Exec=${gnome-panel}/bin/gnome-panel" "Exec=$out/bin/gnome-panel"
|
|
|
|
runHook postInstall
|
|
'';
|
|
|
|
preFixup = ''
|
|
gappsWrapperArgs+=(
|
|
--set NIX_GNOME_PANEL_MODULESDIR "$out/lib/gnome-panel/modules"
|
|
)
|
|
'';
|
|
|
|
meta = gnome-panel.meta // {
|
|
outputsToInstall = [ "out" ];
|
|
};
|
|
}
|