{ stdenv, lib, autoreconfHook, fetchurl, gettext, glib, gnome-bluetooth, gnome-desktop, gnome-panel, gnome-session, gnome, gsettings-desktop-schemas, gtk3, ibus, libcanberra-gtk3, libpulseaudio, libxkbfile, libxml2, pkg-config, polkit, gdm, systemd, upower, pam, wrapGAppsHook3, writeTextFile, xkeyboard_config, xorg, nixosTests, runCommand, 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: { pname = "gnome-flashback"; version = "3.54.0"; src = fetchurl { url = "mirror://gnome/sources/gnome-flashback/${lib.versions.majorMinor finalAttrs.version}/gnome-flashback-${finalAttrs.version}.tar.xz"; hash = "sha256-gkNa4wLNZK6xG25M0YTaj/+qzSSFFf+gIidZXDzPne4="; }; # make .desktop Execs absolute postPatch = '' patch -p0 <