gnome-flashback: 3.56.0 → 3.58.0

https://gitlab.gnome.org/GNOME/gnome-flashback/-/compare/3.56.0...3.58.0

Changelog-Reviewed-By: Bobby Rong <rjl931189261@126.com>

Co-authored-by: Bobby Rong <rjl931189261@126.com>
This commit is contained in:
Jan Tojnar
2025-10-06 00:09:33 +00:00
parent 5c4e280cb4
commit 2a6f67290d
3 changed files with 47 additions and 49 deletions

View File

@@ -297,8 +297,12 @@ in
systemd.packages = [ systemd.packages = [
pkgs.gnome-flashback pkgs.gnome-flashback
pkgs.metacity
(pkgs.gnome-panel-with-modules.override {
panelModulePackages = cfg.flashback.panelModulePackages;
})
] ]
++ map pkgs.gnome-flashback.mkSystemdTargetForWm flashbackWms; ++ map pkgs.gnome-flashback.mkSystemdTargetForWm cfg.flashback.customSessions;
environment.systemPackages = [ environment.systemPackages = [
pkgs.gnome-flashback pkgs.gnome-flashback
@@ -311,9 +315,7 @@ in
wm: pkgs.gnome-flashback.mkWmApplication { inherit (wm) wmName wmLabel wmCommand; } wm: pkgs.gnome-flashback.mkWmApplication { inherit (wm) wmName wmLabel wmCommand; }
) flashbackWms) ) flashbackWms)
# For /share/pkgs.gnome-session/sessions/gnome-flashback-${wmName}.session # For /share/pkgs.gnome-session/sessions/gnome-flashback-${wmName}.session
++ (map ( ++ (map (wm: pkgs.gnome-flashback.mkGnomeSession { inherit (wm) wmName wmLabel; }) flashbackWms);
wm: pkgs.gnome-flashback.mkGnomeSession { inherit (wm) wmName wmLabel enableGnomePanel; }
) flashbackWms);
}) })
(lib.mkIf serviceCfg.core-os-services.enable { (lib.mkIf serviceCfg.core-os-services.enable {

View File

@@ -26,8 +26,17 @@
services.desktopManager.gnome.enable = true; services.desktopManager.gnome.enable = true;
services.desktopManager.gnome.debug = true; services.desktopManager.gnome.debug = true;
services.desktopManager.gnome.flashback.enableMetacity = true;
services.displayManager.defaultSession = "gnome-flashback-metacity"; services.desktopManager.gnome.flashback.customSessions = [
{
# Intentionally a different name to test mkSystemdTargetForWm.
wmName = "metacitytest";
wmLabel = "Metacity";
wmCommand = "${pkgs.metacity}/bin/metacity";
enableGnomePanel = true;
}
];
services.displayManager.defaultSession = "gnome-flashback-metacitytest";
}; };
testScript = testScript =

View File

@@ -17,6 +17,7 @@
libpulseaudio, libpulseaudio,
libxkbfile, libxkbfile,
libxml2, libxml2,
metacity,
pkg-config, pkg-config,
polkit, polkit,
gdm, gdm,
@@ -34,43 +35,13 @@
buildEnv, buildEnv,
}: }:
let
# From data/sessions/Makefile.am
requiredComponentsCommon =
enableGnomePanel: [ "gnome-flashback" ] ++ lib.optional enableGnomePanel "gnome-panel";
requiredComponentsGsd = [
"org.gnome.SettingsDaemon.A11ySettings"
"org.gnome.SettingsDaemon.Color"
"org.gnome.SettingsDaemon.Datetime"
"org.gnome.SettingsDaemon.Housekeeping"
"org.gnome.SettingsDaemon.Keyboard"
"org.gnome.SettingsDaemon.MediaKeys"
"org.gnome.SettingsDaemon.Power"
"org.gnome.SettingsDaemon.PrintNotifications"
"org.gnome.SettingsDaemon.Rfkill"
"org.gnome.SettingsDaemon.ScreensaverProxy"
"org.gnome.SettingsDaemon.Sharing"
"org.gnome.SettingsDaemon.Smartcard"
"org.gnome.SettingsDaemon.Sound"
"org.gnome.SettingsDaemon.UsbProtection"
"org.gnome.SettingsDaemon.Wacom"
"org.gnome.SettingsDaemon.XSettings"
];
requiredComponents =
wmName: enableGnomePanel:
"RequiredComponents=${
lib.concatStringsSep ";" (
[ wmName ] ++ requiredComponentsCommon enableGnomePanel ++ requiredComponentsGsd
)
};";
in
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "gnome-flashback"; pname = "gnome-flashback";
version = "3.56.0"; version = "3.58.0";
src = fetchurl { src = fetchurl {
url = "mirror://gnome/sources/gnome-flashback/${lib.versions.majorMinor finalAttrs.version}/gnome-flashback-${finalAttrs.version}.tar.xz"; url = "mirror://gnome/sources/gnome-flashback/${lib.versions.majorMinor finalAttrs.version}/gnome-flashback-${finalAttrs.version}.tar.xz";
hash = "sha256-LQ+iLzc9sIDq7w5Wk7lijN6ETyVjPVqQMTsEndlSkmA="; hash = "sha256-qqI+cEJHfnQfJCebRoudIK9OwZXuQ7PTEs2q+E2YwyE=";
}; };
patches = [ patches = [
@@ -90,10 +61,6 @@ stdenv.mkDerivation (finalAttrs: {
''; '';
postInstall = '' postInstall = ''
# Check that our expected RequiredComponents match the stock session files, but then don't install them.
# They can be installed using mkSessionForWm.
grep '${requiredComponents "metacity" true}' $out/share/gnome-session/sessions/gnome-flashback-metacity.session || (echo "RequiredComponents have changed, please update gnome-flashback/default.nix."; false)
rm -r $out/share/gnome-session rm -r $out/share/gnome-session
rm -r $out/share/xsessions rm -r $out/share/xsessions
rm $out/libexec/gnome-flashback-metacity rm $out/libexec/gnome-flashback-metacity
@@ -167,7 +134,6 @@ stdenv.mkDerivation (finalAttrs: {
{ {
wmName, wmName,
wmLabel, wmLabel,
enableGnomePanel,
}: }:
writeTextFile { writeTextFile {
name = "gnome-flashback-${wmName}-gnome-session"; name = "gnome-flashback-${wmName}-gnome-session";
@@ -175,7 +141,6 @@ stdenv.mkDerivation (finalAttrs: {
text = '' text = ''
[GNOME Session] [GNOME Session]
Name=GNOME Flashback (${wmLabel}) Name=GNOME Flashback (${wmLabel})
${requiredComponents wmName enableGnomePanel}
''; '';
}; };
@@ -209,11 +174,33 @@ stdenv.mkDerivation (finalAttrs: {
wmCommand, wmCommand,
enableGnomePanel, enableGnomePanel,
}: }:
runCommand "gnome-flashback-${wmName}.target" { } '' runCommand "gnome-flashback-${wmName}.target" { } (
mkdir -p $out/lib/systemd/user ''
cp -r "${finalAttrs.finalPackage}/lib/systemd/user/gnome-session@gnome-flashback-metacity.target.d" \ if [ "${wmName}" = "metacity" ]; then
"$out/lib/systemd/user/gnome-session@gnome-flashback-${wmName}.target.d" echo "Use `services.xserver.windowManager.metacity.enable` instead."
''; exit 1
fi
mkdir -p $out/lib/systemd/user/gnome-session@gnome-flashback-${wmName}.target.d
cp "${finalAttrs.finalPackage}/lib/systemd/user/gnome-session@gnome-flashback-metacity.target.d/session.conf" \
"$out/lib/systemd/user/gnome-session@gnome-flashback-${wmName}.target.d/session.conf"
substitute ${finalAttrs.finalPackage}/lib/systemd/user/gnome-session-x11@gnome-flashback-metacity.target \
"$out/lib/systemd/user/gnome-session-x11@gnome-flashback-${wmName}.target" \
--replace-fail "(Metacity)" "(${wmLabel})"
echo -e "[Unit]\nWants=${wmName}.service" >> "$out/lib/systemd/user/gnome-session@gnome-flashback-${wmName}.target.d/${wmName}.conf"
substitute ${metacity}/lib/systemd/user/metacity.service \
"$out/lib/systemd/user/${wmName}.service" \
--replace-fail "Description=Metacity" "Description=${wmLabel}" \
--replace-fail "ExecStart=${metacity}/bin/metacity" "ExecStart=${wmCommand}"
''
+ lib.optionalString (!enableGnomePanel) ''
substituteInPlace "$out/lib/systemd/user/gnome-session@gnome-flashback-${wmName}.target.d/session.conf" \
--replace-fail "Wants=gnome-panel.service" ""
''
);
tests = { tests = {
inherit (nixosTests) gnome-flashback; inherit (nixosTests) gnome-flashback;