Merge pull request #284633 from FedericoSchonborn/budgie-desktop-10.9

Budgie Desktop 10.9
This commit is contained in:
Bobby Rong 2024-01-29 21:58:15 +08:00 committed by GitHub
commit 850bac2305
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
9 changed files with 166 additions and 14 deletions

View File

@ -118,9 +118,7 @@ in {
(budgie.budgie-desktop-with-plugins.override { plugins = cfg.extraPlugins; })
budgie.budgie-desktop-view
budgie.budgie-screensaver
# Required by the Budgie Desktop session.
(gnome.gnome-session.override { gnomeShellSupport = false; })
budgie.budgie-session
# Required by Budgie Menu.
gnome-menus

View File

@ -33,14 +33,13 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
''
with subtest("Wait for login"):
# wait_for_x() checks graphical-session.target, which is expected to be
# inactive on Budgie before #228946 (i.e. systemd managed gnome-session) is
# done on upstream.
# https://github.com/BuddiesOfBudgie/budgie-desktop/blob/v10.7.2/src/session/budgie-desktop.in#L16
# inactive on Budgie before Budgie manages user session with systemd.
# https://github.com/BuddiesOfBudgie/budgie-desktop/blob/39e9f0895c978f76/src/session/budgie-desktop.in#L16
#
# Previously this was unconditionally touched by xsessionWrapper but was
# changed in #233981 (we have Budgie:GNOME in XDG_CURRENT_DESKTOP).
# machine.wait_for_x()
machine.wait_until_succeeds('journalctl -t gnome-session-binary --grep "Entering running state"')
machine.wait_until_succeeds('journalctl -t budgie-session-binary --grep "Entering running state"')
machine.wait_for_file("${user.home}/.Xauthority")
machine.succeed("xauth merge ${user.home}/.Xauthority")

View File

@ -8,7 +8,6 @@
, glib
, gnome
, gnome-desktop
, gnome-menus
, graphene
, gst_all_1
, gtk-doc
@ -32,19 +31,20 @@
, sassc
, upower
, vala
, xfce
, wrapGAppsHook
}:
stdenv.mkDerivation (finalAttrs: {
pname = "budgie-desktop";
version = "10.8.2";
version = "10.9";
src = fetchFromGitHub {
owner = "BuddiesOfBudgie";
repo = "budgie-desktop";
rev = "v${finalAttrs.version}";
fetchSubmodules = true;
hash = "sha256-K5XUYcFjDJCHhjb/UTO206+UT6lI2P7X1v3SqlYbwPM=";
hash = "sha256-yyuLBzTDEQH7rBOWTYBvS+3x2mlbF34f7U7oOUO8BeA=";
};
patches = [
@ -68,8 +68,6 @@ stdenv.mkDerivation (finalAttrs: {
budgie-screensaver
glib
gnome-desktop
gnome-menus
gnome.gnome-bluetooth_1_0
gnome.gnome-settings-daemon
gnome.mutter
gnome.zenity
@ -89,6 +87,7 @@ stdenv.mkDerivation (finalAttrs: {
polkit
sassc
upower
xfce.libxfce4windowing
] ++ (with gst_all_1; [
gstreamer
gst-plugins-base

View File

@ -0,0 +1,101 @@
{ lib
, stdenv
, fetchFromGitHub
, substituteAll
, meson
, ninja
, pkg-config
, gnome
, glib
, gtk3
, gsettings-desktop-schemas
, gnome-desktop
, dbus
, json-glib
, libICE
, xmlto
, docbook_xsl
, docbook_xml_dtd_412
, python3
, libxslt
, gettext
, makeWrapper
, systemd
, xorg
, libepoxy
, bash
}:
stdenv.mkDerivation (finalAttrs: {
pname = "budgie-session";
version = "0.9.1";
src = fetchFromGitHub {
owner = "BuddiesOfBudgie";
repo = "budgie-session";
rev = "v${finalAttrs.version}";
hash = "sha256-mz+Yh3NK2Tag+MWVofFFXYYXspxhmYBD6YCiuATpZSI=";
};
patches = [
(substituteAll {
src = ./fix-paths.patch;
gsettings = "${glib.bin}/bin/gsettings";
dbusLaunch = "${dbus.lib}/bin/dbus-launch";
bash = "${bash}/bin/bash";
})
];
nativeBuildInputs = [
meson
ninja
pkg-config
gettext
makeWrapper
xmlto
libxslt
docbook_xsl
docbook_xml_dtd_412
python3
dbus # for DTD
];
buildInputs = [
glib
gtk3
libICE
gnome-desktop
json-glib
xorg.xtrans
gnome.adwaita-icon-theme
gnome.gnome-settings-daemon
gsettings-desktop-schemas
systemd
libepoxy
];
postPatch = ''
chmod +x meson_post_install.py # patchShebangs requires executable file
patchShebangs meson_post_install.py
'';
# `bin/budgie-session` will reset the environment when run in wayland, we
# therefor wrap `libexec/budgie-session-binary` instead which is the actual
# binary needing wrapping
preFixup = ''
wrapProgram "$out/libexec/budgie-session-binary" \
--prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
--suffix XDG_DATA_DIRS : "$out/share:$GSETTINGS_SCHEMAS_PATH" \
--suffix XDG_CONFIG_DIRS : "${gnome.gnome-settings-daemon}/etc/xdg"
'';
separateDebugInfo = true;
meta = {
description = "Session manager for Budgie";
homepage = "https://github.com/BuddiesOfBudgie/budgie-session";
license = lib.licenses.gpl2Plus;
maintainers = with lib.maintainers; [federicoschonborn];
platforms = lib.platforms.linux;
};
})

View File

@ -0,0 +1,35 @@
diff --git a/gnome-session/budgie-session.in b/gnome-session/budgie-session.in
index 8a91e061..3e2ef031 100755
--- a/gnome-session/budgie-session.in
+++ b/gnome-session/budgie-session.in
@@ -7,13 +7,15 @@ if [ "x$XDG_SESSION_TYPE" = "xwayland" ] &&
! (echo "$SHELL" | grep -q "false") &&
! (echo "$SHELL" | grep -q "nologin"); then
if [ "$1" != '-l' ]; then
- exec bash -c "exec -l '$SHELL' -c '$0 -l $*'"
+ # Make sure the shell actually sets up the environment.
+ unset __NIXOS_SET_ENVIRONMENT_DONE
+ exec @bash@ -c "exec -l '$SHELL' -c '$0 -l $*'"
else
shift
fi
fi
-SETTING=$(G_MESSAGES_DEBUG='' gsettings get org.gnome.system.locale region)
+SETTING=$(G_MESSAGES_DEBUG='' @gsettings@ get org.gnome.system.locale region)
REGION=${SETTING#\'}
REGION=${REGION%\'}
diff --git a/gnome-session/main.c b/gnome-session/main.c
index 327c7c7f..301ec7ee 100644
--- a/gnome-session/main.c
+++ b/gnome-session/main.c
@@ -219,7 +219,7 @@ require_dbus_session (int argc,
}
new_argv[i + 2] = NULL;
- if (!execvp ("dbus-launch", new_argv)) {
+ if (!execvp ("@dbusLaunch@", new_argv)) {
g_set_error (error,
G_SPAWN_ERROR,
G_SPAWN_ERROR_FAILED,

View File

@ -8,5 +8,6 @@ lib.makeScope pkgs.newScope (self: with self; {
budgie-desktop-with-plugins = callPackage ./budgie-desktop/wrapper.nix { };
budgie-gsettings-overrides = callPackage ./budgie-gsettings-overrides { };
budgie-screensaver = callPackage ./budgie-screensaver { };
budgie-session = callPackage ./budgie-session { };
magpie = callPackage ./magpie { };
})

View File

@ -25,7 +25,6 @@
, libepoxy
, bash
, gnome-session-ctl
, gnomeShellSupport ? true
}:
stdenv.mkDerivation rec {
@ -114,7 +113,7 @@ stdenv.mkDerivation rec {
wrapProgram "$out/libexec/gnome-session-binary" \
--prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
--suffix XDG_DATA_DIRS : "$out/share:$GSETTINGS_SCHEMAS_PATH" \
${lib.optionalString gnomeShellSupport "--suffix XDG_DATA_DIRS : \"${gnome.gnome-shell}/share\""} \
--suffix XDG_DATA_DIRS : "${gnome.gnome-shell}/share" \
--suffix XDG_CONFIG_DIRS : "${gnome.gnome-settings-daemon}/etc/xdg"
'';

View File

@ -0,0 +1,18 @@
{ lib, mkXfceDerivation, gobject-introspection, glib, gtk3, libwnck, wayland }:
mkXfceDerivation {
category = "xfce";
pname = "libxfce4windowing";
version = "4.19.2";
sha256 = "sha256-mXxxyfwZB/AJFVVGFAAXLqC5p7pZAeqmhljQym55hyM=";
nativeBuildInputs = [ gobject-introspection ];
buildInputs = [ glib gtk3 libwnck wayland ];
meta = {
description = "Windowing concept abstraction library for X11 and Wayland";
license = lib.licenses.lgpl21Plus;
maintainers = with lib; [ maintainers.federicoschonborn ] ++ teams.xfce.members;
};
}

View File

@ -32,6 +32,8 @@ makeScopeWithSplicing' {
libxfce4util = callPackage ./core/libxfce4util { };
libxfce4windowing = callPackage ./core/libxfce4windowing { };
thunar = callPackage ./core/thunar {
thunarPlugins = [ ];
};