diff options
Diffstat (limited to 'x11/gnome-shell')
17 files changed, 427 insertions, 247 deletions
diff --git a/x11/gnome-shell/Makefile b/x11/gnome-shell/Makefile index f1cd77cb715a..56424ccc24ff 100644 --- a/x11/gnome-shell/Makefile +++ b/x11/gnome-shell/Makefile @@ -1,79 +1,80 @@ PORTNAME= gnome-shell -PORTVERSION= 42.4 -PORTREVISION= 14 +PORTVERSION= 47.7 +PORTREVISION= 1 CATEGORIES= x11 gnome -MASTER_SITES= GNOME/sources/${PORTNAME}/${PORTVERSION:C/^([0-9]+)\..*/\1/} +MASTER_SITES= GNOME DIST_SUBDIR= gnome MAINTAINER= gnome@FreeBSD.org COMMENT= Next generation GNOME desktop shell -WWW= https://live.gnome.org/GnomeShell +WWW= https://gitlab.gnome.org/GNOME/gnome-shell -LICENSE= GPLv2 -LICENSE_FILE= ${WRKSRC}/COPYING +LICENSE= GPLv2+ LGPL21+ +LICENSE_COMB= multi -BUILD_DEPENDS= ${LOCALBASE}/share/bash-completion/bash_completion.sh:shells/bash-completion \ - a2x:textproc/asciidoc \ - docbook-xsl>=0:textproc/docbook-xsl \ - gnome-control-center:sysutils/gnome-control-center \ +PORTSCOUT= limit:^47\. + +BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}docutils>0:textproc/py-docutils@${PY_FLAVOR} \ + gsettings-desktop-schemas>0:devel/gsettings-desktop-schemas \ sassc:textproc/sassc -LIB_DEPENDS= libatk-bridge-2.0.so:accessibility/at-spi2-core \ - libcanberra-gtk3.so:audio/libcanberra-gtk3 \ - libcanberra.so:audio/libcanberra \ - libcroco-0.6.so:textproc/libcroco \ - libdrm.so:graphics/libdrm \ - libgcr-base-3.so:security/gcr3 \ + +LIB_DEPENDS= libdrm.so:graphics/libdrm \ + libgcr-4.so:security/gcr \ libgjs.so:lang/gjs \ libgnome-autoar-0.so:archivers/gnome-autoar \ libgraphene-1.0.so:graphics/graphene \ libical.so:devel/libical \ libicuuc.so:devel/icu \ libjson-glib-1.0.so:devel/json-glib \ - libmutter-10.so:x11-wm/mutter \ + libmutter-15.so:x11-wm/mutter \ libp11-kit.so:security/p11-kit \ libpolkit-agent-1.so:sysutils/polkit \ - libpulse.so:audio/pulseaudio \ - libsecret-1.so:security/libsecret \ - libsoup-3.0.so:devel/libsoup3 \ - libstartup-notification-1.so:x11/startup-notification + libpulse-mainloop-glib.so:audio/pulseaudio \ + libpipewire-0.3.so:multimedia/pipewire \ + libibus-1.0.so:textproc/ibus + RUN_DEPENDS= gdm:x11/gdm \ - gkbd-keyboard-display:x11/libgnomekbd \ - gnome-control-center:sysutils/gnome-control-center - -PORTSCOUT= limitw:1,even - -USES= compiler:c11 cpe gettext gl gnome gstreamer libtool localbase \ - meson pathfix perl5 pkgconfig python shebangfix tar:xz \ - webplugin:native xorg -USE_GNOME= cairo evolutiondataserver3 gdkpixbuf gnomedesktop3 gtk40 \ - introspection libxml2 libxslt:build -USE_XORG= x11 xcomposite xdamage xext xfixes xi xrandr xtst -USE_GL= egl gbm -USE_PERL5= build + tecla:x11/tecla + +USES= compiler:c11 cpe gettext gnome gstreamer localbase \ + meson pathfix pkgconfig python:build shebangfix tar:xz xorg +CPE_VENDOR= gnome +USE_GNOME= atk evolutiondataserver3 gdkpixbuf glib20 \ + gnomedesktop4 gnomecontrolcenter3 gtk40 introspection \ + libxml2 libxslt:build +USE_XORG= x11 xfixes USE_LDCONFIG= yes -SHEBANG_FILES= src/gnome-shell-extension-tool.in src/gnome-shell-perf-tool.in -BINARY_ALIAS= python3=${PYTHON_CMD} +SHEBANG_FILES= src/gnome-shell-test-tool.in \ + src/data-to-c.py # These libs are found via rpath mechanism -NO_SHLIB_REQUIRES_GLOB= libmutter-clutter-* libmutter-cogl-* +NO_SHLIB_REQUIRES_GLOB= libmutter-clutter-* libmutter-cogl-* libmutter-mtk-* -WEBPLUGIN_NAME= libgnome-shell-browser-plugin.so -WEBPLUGIN_DIR= ${PREFIX}/lib/mozilla/plugins/ -WEBPLUGIN_FILES= libgnome-shell-browser-plugin.so +OPTIONS_DEFINE= EXAMPLES +OPTIONS_DEFAULT= EXAMPLES + +EXAMPLES_SUB_FILES= pkg-message xprofile MESON_ARGS= -Dnetworkmanager=false \ - -Dsoup2=false \ + -Dportal_helper=false \ -Dsystemd=false \ - -Dtests=false -CPE_VENDOR= gnome + -Dtests=false \ + -Dextensions_tool=false GLIB_SCHEMAS= 00_org.gnome.shell.gschema.override \ - org.gnome.shell.gschema.xml + org.gnome.shell.gschema.xml \ + org.gnome.Extensions.gschema.xml post-extract: - ${CP} ${FILESDIR}/*.xml ${WRKSRC}/data/dbus-interfaces + @${CP} ${FILESDIR}/*.xml ${WRKSRC}/data/dbus-interfaces post-patch: - ${REINPLACE_CMD} -e "s,python3,${PYTHON_VERSION},g" \ + @${REINPLACE_CMD} -e "s,python3,${PYTHON_VERSION},g" \ ${WRKSRC}/meson.build +pre-install-EXAMPLES-on: + @${MKDIR} ${STAGEDIR}${EXAMPLESDIR} + +post-install-EXAMPLES-on: + @${INSTALL_SCRIPT} ${WRKDIR}/xprofile ${STAGEDIR}${EXAMPLESDIR} + .include <bsd.port.mk> diff --git a/x11/gnome-shell/distinfo b/x11/gnome-shell/distinfo index bb4413ccaa48..5905bfdddc94 100644 --- a/x11/gnome-shell/distinfo +++ b/x11/gnome-shell/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1660854373 -SHA256 (gnome/gnome-shell-42.4.tar.xz) = 875ff2970ea9fb7a05506e32a0d50dc917f41b4ca37134b41377f9c82873c54e -SIZE (gnome/gnome-shell-42.4.tar.xz) = 1928776 +TIMESTAMP = 1748504335 +SHA256 (gnome/gnome-shell-47.7.tar.xz) = 7afb263e95327e3c05775553a409b26fc224004784224e5927bc28aa6550e3ab +SIZE (gnome/gnome-shell-47.7.tar.xz) = 2142328 diff --git a/x11/gnome-shell/files/org.freedesktop.ConsoleKit.Manager.xml b/x11/gnome-shell/files/org.freedesktop.ConsoleKit.Manager.xml index bf6a73cf3c0f..aff663e3f53b 100644 --- a/x11/gnome-shell/files/org.freedesktop.ConsoleKit.Manager.xml +++ b/x11/gnome-shell/files/org.freedesktop.ConsoleKit.Manager.xml @@ -1,25 +1,27 @@ -<!-- $OpenBSD: org.freedesktop.ConsoleKit.Manager.xml,v 1.1 2019/01/17 19:00:46 ajacoutot Exp $ --> - <node> <interface name="org.freedesktop.ConsoleKit.Manager"> - <method name="Suspend"> - <arg type="b" direction="in"/> - </method> - <method name="CanSuspend"> - <arg type="s" direction="out"/> - </method> - <method name="Inhibit"> - <arg type="s" direction="in"/> - <arg type="s" direction="in"/> - <arg type="s" direction="in"/> - <arg type="s" direction="in"/> - <arg type="h" direction="out"/> - </method> - <signal name="PrepareForSleep"> - <arg type="b" direction="out"/> - </signal> - <method name="GetCurrentSession"> + <method name="Suspend"> + <arg type="b" direction="in"/> + </method> + <method name="CanSuspend"> + <arg type="s" direction="out"/> + </method> + <method name="Inhibit"> + <arg type="s" direction="in"/> + <arg type="s" direction="in"/> + <arg type="s" direction="in"/> + <arg type="s" direction="in"/> + <arg type="h" direction="out"/> + </method> + <method name="GetSessionForCookie"> + <arg type="s" direction="in"/> <arg type="o" direction="out"/> </method> - </interface> + <method name="ListSessions"> + <arg name="sessions" type="a(susso)" direction="out"/> + </method> + <signal name="PrepareForSleep"> + <arg type="b" direction="out"/> + </signal> + </interface> </node> diff --git a/x11/gnome-shell/files/org.freedesktop.ConsoleKit.Session.xml b/x11/gnome-shell/files/org.freedesktop.ConsoleKit.Session.xml index ffa38faf1326..d8325c124847 100644 --- a/x11/gnome-shell/files/org.freedesktop.ConsoleKit.Session.xml +++ b/x11/gnome-shell/files/org.freedesktop.ConsoleKit.Session.xml @@ -1,11 +1,13 @@ -<!-- $OpenBSD: org.freedesktop.ConsoleKit.Session.xml,v 1.1 2019/01/17 19:00:46 ajacoutot Exp $ --> - <node> <interface name="org.freedesktop.ConsoleKit.Session"> - <signal name="Lock" /> - <signal name="Unlock" /> - <method name="SetLockedHint"> - <arg type="b" direction="in"/> - </method> - </interface> + <signal name="Lock"/> + <signal name="Unlock"/> + <property name="active" type="b" access="read"/> + <property name="session-class" type="s" access="read"/> + <property name="session-state" type="s" access="read"/> + <property name="session-type" type="s" access="read"/> + <method name="SetLockedHint"> + <arg type="b" direction="in"/> + </method> + </interface> </node> diff --git a/x11/gnome-shell/files/patch-data_00__org.gnome.shell.gschema.override b/x11/gnome-shell/files/patch-data_00__org.gnome.shell.gschema.override new file mode 100644 index 000000000000..58a60be9d2a8 --- /dev/null +++ b/x11/gnome-shell/files/patch-data_00__org.gnome.shell.gschema.override @@ -0,0 +1,9 @@ +--- data/00_org.gnome.shell.gschema.override.orig 2023-04-24 08:26:56 UTC ++++ data/00_org.gnome.shell.gschema.override +@@ -4,3 +4,6 @@ edge-tiling=true + dynamic-workspaces=true + workspaces-only-on-primary=true + focus-change-on-pointer-rest=true ++ ++[org.gnome.shell] ++favorite-apps=['org.gnome.Settings.desktop', 'org.gnome.Terminal.desktop', 'org.gnome.Music.desktop', 'org.gnome.Nautilus.desktop'] diff --git a/x11/gnome-shell/files/patch-js_gdm_loginDialog.js b/x11/gnome-shell/files/patch-js_gdm_loginDialog.js new file mode 100644 index 000000000000..8f15dfb64671 --- /dev/null +++ b/x11/gnome-shell/files/patch-js_gdm_loginDialog.js @@ -0,0 +1,29 @@ +--- js/gdm/loginDialog.js.orig 2025-04-13 15:04:25 UTC ++++ js/gdm/loginDialog.js +@@ -46,6 +46,10 @@ const _CONFLICTING_SESSION_DIALOG_TIMEOUT = 60; + const _TIMED_LOGIN_IDLE_THRESHOLD = 5.0; + const _CONFLICTING_SESSION_DIALOG_TIMEOUT = 60; + ++function haveSystemd() { ++ return GLib.access('/run/systemd/seats', 0) >= 0; ++} ++ + export const UserListItem = GObject.registerClass({ + Signals: {'activate': {}}, + }, class UserListItem extends St.Button { +@@ -1142,6 +1146,7 @@ export const LoginDialog = GObject.registerClass({ + } + + async _findConflictingSession(startingSessionId) { ++ if (haveSystemd()) { + const loginManager = LoginManager.getLoginManager(); + const sessions = await loginManager.listSessions(); + const [, , startingSessionOwner, ,] = sessions.find(([id, , , ,]) => id === startingSessionId); +@@ -1161,6 +1166,7 @@ export const LoginDialog = GObject.registerClass({ + continue; + + return sessionProxy; ++ } + } + + return null; diff --git a/x11/gnome-shell/files/patch-js_misc_loginManager.js b/x11/gnome-shell/files/patch-js_misc_loginManager.js new file mode 100644 index 000000000000..31b6e146855e --- /dev/null +++ b/x11/gnome-shell/files/patch-js_misc_loginManager.js @@ -0,0 +1,127 @@ +--- js/misc/loginManager.js.orig 2025-04-13 15:04:25 UTC ++++ js/misc/loginManager.js +@@ -13,6 +13,12 @@ const SystemdLoginUser = Gio.DBusProxy.makeProxyWrappe + const SystemdLoginSession = Gio.DBusProxy.makeProxyWrapper(SystemdLoginSessionIface); + const SystemdLoginUser = Gio.DBusProxy.makeProxyWrapper(SystemdLoginUserIface); + ++const ConsoleKitManagerIface = loadInterfaceXML('org.freedesktop.ConsoleKit.Manager'); ++const ConsoleKitSessionIface = loadInterfaceXML('org.freedesktop.ConsoleKit.Session'); ++const ConsoleKitManager = Gio.DBusProxy.makeProxyWrapper(ConsoleKitManagerIface); ++const ConsoleKitSession = Gio.DBusProxy.makeProxyWrapper(ConsoleKitSessionIface); ++ ++ + function haveSystemd() { + return GLib.access('/run/systemd/seats', 0) >= 0; + } +@@ -46,7 +52,7 @@ export function canLock() { + -1, null); + + let version = result.deepUnpack()[0].deepUnpack(); +- return haveSystemd() && versionCompare('3.5.91', version); ++ return versionCompare('3.5.91', version); + } catch { + return false; + } +@@ -82,12 +88,84 @@ export function getLoginManager() { + if (haveSystemd()) + _loginManager = new LoginManagerSystemd(); + else +- _loginManager = new LoginManagerDummy(); ++ _loginManager = new LoginManagerConsoleKit(); + } + + return _loginManager; + } + ++class LoginManagerConsoleKit extends Signals.EventEmitter { ++ constructor() { ++ super(); ++ ++ this._proxy = new ConsoleKitManager(Gio.DBus.system, ++ 'org.freedesktop.ConsoleKit', ++ '/org/freedesktop/ConsoleKit/Manager'); ++ this._proxy.connectSignal('PrepareForSleep', ++ this._prepareForSleep.bind(this)); ++ } ++ ++ async getCurrentSessionProxy() { ++ if (this._currentSession) ++ return this._currentSession; ++ ++ try { ++ const [objectPath] = await this._proxy.GetCurrentSessionAsync(); ++ this._currentSession = new ConsoleKitSession(Gio.DBus.system, ++ 'org.freedesktop.ConsoleKit', objectPath); ++ return this._currentSession; ++ } catch (error) { ++ logError(error, 'Could not get a proxy for the current session'); ++ return null; ++ } ++ } ++ ++ async canSuspend() { ++ let canSuspend, needsAuth; ++ ++ try { ++ const [result] = await this._proxy.CanSuspendAsync(); ++ needsAuth = result === 'challenge'; ++ canSuspend = needsAuth || result === 'yes'; ++ } catch { ++ canSuspend = false; ++ needsAuth = false; ++ } ++ return {canSuspend, needsAuth}; ++ } ++ ++ async listSessions() { ++ try { ++ const [sessions] = await this._proxy.ListSessionsAsync(); ++ return sessions; ++ } catch { ++ return []; ++ } ++ } ++ ++ getSession(objectPath) { ++ return new ConsoleKitSession(Gio.DBus.system, 'org.freedesktop.ConsoleKit', objectPath); ++ } ++ ++ suspend() { ++ this._proxy.SuspendAsync(true); ++ } ++ ++ async inhibit(reason, cancellable) { ++ const inVariant = new GLib.Variant('(ssss)', ++ ['sleep', 'GNOME Shell', reason, 'delay']); ++ const [outVariant_, fdList] = ++ await this._proxy.call_with_unix_fd_list('Inhibit', ++ inVariant, 0, -1, null, cancellable); ++ const [fd] = fdList.steal_fds(); ++ return new GioUnix.InputStream({fd}); ++ } ++ ++ _prepareForSleep(proxy, sender, [aboutToSuspend]) { ++ this.emit('prepare-for-sleep', aboutToSuspend); ++ } ++} ++ + class LoginManagerSystemd extends Signals.EventEmitter { + constructor() { + super(); +@@ -230,16 +308,6 @@ class LoginManagerDummy extends Signals.EventEmitter + canSuspend: false, + needsAuth: false, + })); +- } +- +- canRebootToBootLoaderMenu() { +- return new Promise(resolve => resolve({ +- canRebootToBootLoaderMenu: false, +- needsAuth: false, +- })); +- } +- +- setRebootToBootLoaderMenu() { + } + + listSessions() { diff --git a/x11/gnome-shell/files/patch-js_misc_loginManager_js b/x11/gnome-shell/files/patch-js_misc_loginManager_js deleted file mode 100644 index 7f82bd3ee259..000000000000 --- a/x11/gnome-shell/files/patch-js_misc_loginManager_js +++ /dev/null @@ -1,128 +0,0 @@ -Index: js/misc/loginManager.js ---- js/misc/loginManager.js.orig -+++ js/misc/loginManager.js -@@ -14,6 +14,12 @@ const SystemdLoginManager = Gio.DBusProxy.makeProxyWra - const SystemdLoginSession = Gio.DBusProxy.makeProxyWrapper(SystemdLoginSessionIface); - const SystemdLoginUser = Gio.DBusProxy.makeProxyWrapper(SystemdLoginUserIface); - -+const ConsoleKitManagerIface = loadInterfaceXML('org.freedesktop.ConsoleKit.Manager'); -+const ConsoleKitSessionIface = loadInterfaceXML('org.freedesktop.ConsoleKit.Session'); -+ -+const ConsoleKitManager = Gio.DBusProxy.makeProxyWrapper(ConsoleKitManagerIface); -+const ConsoleKitSession = Gio.DBusProxy.makeProxyWrapper(ConsoleKitSessionIface); -+ - function haveSystemd() { - return GLib.access("/run/systemd/seats", 0) >= 0; - } -@@ -43,7 +49,7 @@ function canLock() { - -1, null); - - let version = result.deep_unpack()[0].deep_unpack(); -- return haveSystemd() && versionCompare('3.5.91', version); -+ return versionCompare('3.5.91', version); - } catch (e) { - return false; - } -@@ -81,7 +87,7 @@ function getLoginManager() { - if (haveSystemd()) - _loginManager = new LoginManagerSystemd(); - else -- _loginManager = new LoginManagerDummy(); -+ _loginManager = new LoginManagerConsoleKit(); - } - - return _loginManager; -@@ -204,6 +210,79 @@ var LoginManagerSystemd = class { - }; - Signals.addSignalMethods(LoginManagerSystemd.prototype); - -+var LoginManagerConsoleKit = class { -+ constructor () { -+ this._proxy = new ConsoleKitManager(Gio.DBus.system, -+ 'org.freedesktop.ConsoleKit', -+ '/org/freedesktop/ConsoleKit/Manager'); -+ this._proxy.connectSignal('PrepareForSleep', -+ this._prepareForSleep.bind(this)); -+ } -+ -+ // Having this function is a bit of a hack since the Systemd and ConsoleKit -+ // session objects have different interfaces - but in both cases there are -+ // Lock/Unlock signals, and that's all we count upon at the moment. -+ -+ -+ getCurrentSessionProxy(callback) { -+ if (this._currentSession) { -+ callback (this._currentSession); -+ return; -+ } -+ -+ this._proxy.GetCurrentSessionRemote((result, error) => { -+ if (error) { -+ logError(error, 'Could not get a proxy for the current session'); -+ } else { -+ this._currentSession = new ConsoleKitSession(Gio.DBus.system, -+ 'org.freedesktop.ConsoleKit', -+ result[0]); -+ callback(this._currentSession); -+ } -+ }); -+ } -+ -+ canSuspend(asyncCallback) { -+ this._proxy.CanSuspendRemote((result, error) => { -+ if (error) { -+ asyncCallback(false, false); -+ } else { -+ let needsAuth = result[0] == 'challenge'; -+ let canSuspend = needsAuth || result[0] == 'yes'; -+ asyncCallback(canSuspend, needsAuth); -+ } -+ }); -+ } -+ -+ listSessions(asyncCallback) { -+ asyncCallback([]); -+ } -+ -+ suspend() { -+ this._proxy.SuspendRemote(true); -+ } -+ -+ async inhibit(reason, callback) { -+ try { -+ const inVariant = new GLib.Variant('(ssss)', -+ ['sleep', 'GNOME Shell', reason, 'delay']); -+ const [outVariant_, fdList] = -+ await this._proxy.call_with_unix_fd_list('Inhibit', -+ inVariant, 0, -1, null, null); -+ const [fd] = fdList.steal_fds(); -+ callback(new Gio.UnixInputStream({ fd })); -+ } catch (e) { -+ logError(e, 'Error getting ConsoleKit inhibitor'); -+ callback(null); -+ } -+ } -+ -+ _prepareForSleep(proxy, sender, [aboutToSuspend]) { -+ this.emit('prepare-for-sleep', aboutToSuspend); -+ } -+} -+Signals.addSignalMethods(LoginManagerConsoleKit.prototype); -+ - var LoginManagerDummy = class { - getCurrentSessionProxy(_callback) { - // we could return a DummySession object that fakes whatever callers -@@ -213,13 +292,6 @@ var LoginManagerDummy = class { - - canSuspend(asyncCallback) { - asyncCallback(false, false); -- } -- -- canRebootToBootLoaderMenu(asyncCallback) { -- asyncCallback(false, false); -- } -- -- setRebootToBootLoaderMenu() { - } - - listSessions(asyncCallback) { diff --git a/x11/gnome-shell/files/patch-js_ui_appDisplay.js b/x11/gnome-shell/files/patch-js_ui_appDisplay.js new file mode 100644 index 000000000000..45110063e28f --- /dev/null +++ b/x11/gnome-shell/files/patch-js_ui_appDisplay.js @@ -0,0 +1,15 @@ +--- js/ui/appDisplay.js.orig 2024-11-23 22:49:36 UTC ++++ js/ui/appDisplay.js +@@ -62,12 +62,8 @@ const DEFAULT_FOLDERS = { + name: 'X-GNOME-Utilities.directory', + categories: ['X-GNOME-Utilities'], + apps: [ +- 'org.freedesktop.GnomeAbrt.desktop', +- 'nm-connection-editor.desktop', + 'org.gnome.baobab.desktop', + 'org.gnome.Connections.desktop', +- 'org.gnome.DejaDup.desktop', +- 'org.gnome.DiskUtility.desktop', + 'org.gnome.Evince.desktop', + 'org.gnome.FileRoller.desktop', + 'org.gnome.font-viewer.desktop', diff --git a/x11/gnome-shell/files/patch-js_ui_appFavorites.js b/x11/gnome-shell/files/patch-js_ui_appFavorites.js new file mode 100644 index 000000000000..1ea5b8b017e8 --- /dev/null +++ b/x11/gnome-shell/files/patch-js_ui_appFavorites.js @@ -0,0 +1,18 @@ +--- js/ui/appFavorites.js.orig 2024-11-23 22:49:36 UTC ++++ js/ui/appFavorites.js +@@ -26,7 +26,6 @@ const RENAMED_DESKTOP_IDS = { + 'gnect.desktop': 'org.gnome.Four-in-a-row.desktop', + 'gnibbles.desktop': 'org.gnome.Nibbles.desktop', + 'gnobots2.desktop': 'org.gnome.Robots.desktop', +- 'gnome-boxes.desktop': 'org.gnome.Boxes.desktop', + 'gnome-calculator.desktop': 'org.gnome.Calculator.desktop', + 'gnome-chess.desktop': 'org.gnome.Chess.desktop', + 'gnome-clocks.desktop': 'org.gnome.clocks.desktop', +@@ -41,7 +40,6 @@ const RENAMED_DESKTOP_IDS = { + 'gnome-photos.desktop': 'org.gnome.Photos.desktop', + 'gnome-robots.desktop': 'org.gnome.Robots.desktop', + 'gnome-screenshot.desktop': 'org.gnome.Screenshot.desktop', +- 'gnome-software.desktop': 'org.gnome.Software.desktop', + 'gnome-terminal.desktop': 'org.gnome.Terminal.desktop', + 'gnome-tetravex.desktop': 'org.gnome.Tetravex.desktop', + 'gnome-tweaks.desktop': 'org.gnome.tweaks.desktop', diff --git a/x11/gnome-shell/files/patch-js_ui_endSessionDialog_js b/x11/gnome-shell/files/patch-js_ui_endSessionDialog.js index f20ed3e02214..94b8450f16e6 100644 --- a/x11/gnome-shell/files/patch-js_ui_endSessionDialog_js +++ b/x11/gnome-shell/files/patch-js_ui_endSessionDialog.js @@ -1,19 +1,15 @@ -Index: js/ui/endSessionDialog.js ---- js/ui/endSessionDialog.js.orig +--- js/ui/endSessionDialog.js.orig 2025-04-13 15:04:25 UTC +++ js/ui/endSessionDialog.js -@@ -234,11 +234,6 @@ class EndSessionDialog extends ModalDialog.ModalDialog +@@ -233,8 +233,6 @@ class EndSessionDialog extends ModalDialog.ModalDialog }); this._loginManager = LoginManager.getLoginManager(); -- this._loginManager.canRebootToBootLoaderMenu( -- (canRebootToBootLoaderMenu, unusedNeedsAuth) => { -- this._canRebootToBootLoaderMenu = canRebootToBootLoaderMenu; -- }); -- +- this._canRebootToBootLoaderMenu = false; +- this._getCanRebootToBootLoaderMenu().catch(logError); + this._userManager = AccountsService.UserManager.get_default(); this._user = this._userManager.get_user(GLib.get_user_name()); - this._updatesPermission = null; -@@ -452,24 +447,6 @@ class EndSessionDialog extends ModalDialog.ModalDialog +@@ -452,24 +450,6 @@ class EndSessionDialog extends ModalDialog.ModalDialog }, label, }); diff --git a/x11/gnome-shell/files/patch-meson.build b/x11/gnome-shell/files/patch-meson.build new file mode 100644 index 000000000000..80da036290d5 --- /dev/null +++ b/x11/gnome-shell/files/patch-meson.build @@ -0,0 +1,13 @@ +--- meson.build.orig 2023-04-24 08:26:56 UTC ++++ meson.build +@@ -148,8 +148,10 @@ cdata.set('HAVE_FDWALK', cc.has_function('fdwalk')) + cdata.set('HAVE_MALLINFO', cc.has_function('mallinfo')) + cdata.set('HAVE_MALLINFO2', cc.has_function('mallinfo2')) + cdata.set('HAVE_SYS_RESOURCE_H', cc.has_header('sys/resource.h')) ++if host_machine.system() == 'linux' + cdata.set('HAVE_EXE_INTROSPECTION', + cc.has_header('elf.h') and cc.has_header('link.h')) ++endif + cdata.set('HAVE__NL_TIME_FIRST_WEEKDAY', + cc.has_header_symbol('langinfo.h', '_NL_TIME_FIRST_WEEKDAY') + ) diff --git a/x11/gnome-shell/files/patch-subprojects_extensions-tool_man_meson_build b/x11/gnome-shell/files/patch-subprojects_extensions-tool_man_meson_build deleted file mode 100644 index 109d8cb69555..000000000000 --- a/x11/gnome-shell/files/patch-subprojects_extensions-tool_man_meson_build +++ /dev/null @@ -1,15 +0,0 @@ -https://gitlab.gnome.org/GNOME/gnome-shell/issues/1854 - -Index: subprojects/extensions-tool/man/meson.build ---- subprojects/extensions-tool/man/meson.build.orig -+++ subprojects/extensions-tool/man/meson.build -@@ -1,7 +1,7 @@ - custom_target('gnome-extensions.1', -- input: ['gnome-extensions.txt', 'stylesheet.xsl'], -+ input: 'gnome-extensions.txt', - output: 'gnome-extensions.1', -- command: [a2x, '-D', '@OUTDIR@', '--xsl-file', '@INPUT1@', '-f', 'manpage', '@INPUT0@'], -+ command: [a2x, '-D', '@OUTDIR@', '-f', 'manpage', '@INPUT0@'], - install_dir: mandir + '/man1', - install: true - ) diff --git a/x11/gnome-shell/files/patch-subprojects_extensions-tool_src_meson.build b/x11/gnome-shell/files/patch-subprojects_extensions-tool_src_meson.build new file mode 100644 index 000000000000..0e27d7bd84a4 --- /dev/null +++ b/x11/gnome-shell/files/patch-subprojects_extensions-tool_src_meson.build @@ -0,0 +1,14 @@ +--- subprojects/extensions-tool/src/meson.build.orig 2023-04-24 08:26:56 UTC ++++ subprojects/extensions-tool/src/meson.build +@@ -3,7 +3,10 @@ config_h.set_quoted('GETTEXT_PACKAGE', package_name) + config_h.set_quoted('VERSION', meson.project_version()) + config_h.set('MAJOR_VERSION', meson.project_version().split('.')[0]) + config_h.set_quoted('LOCALEDIR', localedir) +-config_h.set('HAVE_BIND_TEXTDOMAIN_CODESET', cc.has_function('bind_textdomain_codeset')) ++intl_dep = cc.find_library('intl', required: false) ++if cc.has_function('bind_textdomain_codeset', prefix: '#include <libintl.h>', dependencies: intl_dep) ++ config_h.set('HAVE_BIND_TEXTDOMAIN_CODESET', 1) ++endif + configure_file( + output: 'config.h', + configuration: config_h, diff --git a/x11/gnome-shell/files/pkg-message.in b/x11/gnome-shell/files/pkg-message.in new file mode 100644 index 000000000000..6d532111e578 --- /dev/null +++ b/x11/gnome-shell/files/pkg-message.in @@ -0,0 +1,29 @@ +[ +{ type: install + message: <<EOM +Gnome-shell requires acceleration of to work. For this a nvidia card +with the nvidia-driver, or a Intel/ATI KMS enabled card is needed. + +For the nvidia users no other changes are needed. For Intel/ATI KMS +driver the user needs to have read/write permissions on +/dev/dri/cardN (usually N=0). If gnome-shell is launched from gdm, the +gdm user also needs this access. + +Access can be granted by adding the user(s) to the video group. + pw groupmod video -m jerry + +In order to launch your session. Copy 'xprofile' into your home directory: + cp %%EXAMPLESDIR%%/xprofile ~/.xprofile + +Create or edit /var/db/AccountsService/users/YOURLOGIN file: + [User] + Language=fr_FR.UTF-8 # e.g. for French users + Session=gnome-xorg + SystemAccount=false + +Replace YOURLOGIN by your login. + +Currently only 'gnome-xorg' is supported and tested. +EOM +} +] diff --git a/x11/gnome-shell/files/xprofile.in b/x11/gnome-shell/files/xprofile.in new file mode 100644 index 000000000000..00c1ed131e99 --- /dev/null +++ b/x11/gnome-shell/files/xprofile.in @@ -0,0 +1,74 @@ +#!/bin/sh + +# Set $XDG_RUNTIME_DIR +_user_id=$(id -u) +if [ -d "/var/run/user/${_user_id}" ]; then + XDG_RUNTIME_DIR="/var/run/user/${_user_id}" + export XDG_RUNTIME_DIR + + if [ ! -d "/var/run/user/${_user_id}" ]; then + mkdir "/var/run/user/${_user_id}/pulse" + fi +fi + +# Set environment variables for D-Bus session services +if command -v dbus-update-activation-environment >/dev/null 2>&1 ; then + dbus-update-activation-environment --all +fi + +# Set $XDG_CONFIG_DIRS +if test "x$XDG_CONFIG_DIRS" = "x" ; then + XDG_CONFIG_DIRS="%%PREFIX%%/etc/xdg:/etc/xdg" +fi +export XDG_CONFIG_DIRS + +# Set $XDG_DATA_DIRS +if test "x$XDG_DATA_DIRS" = "x" ; then + XDG_DATA_DIRS="%%PREFIX%%/share/gnome:%%PREFIX%%/share:/usr/share" +fi +export XDG_DATA_DIRS + +# $XDG_CONFIG_HOME defines the base directory relative to which user-specific +# configuration files should be stored. If $XDG_CONFIG_HOME is either not set +# or empty, a default equal to $HOME/.config should be used. +if test "x$XDG_CONFIG_HOME" = "x" ; then + XDG_CONFIG_HOME=$HOME/.config +fi +[ -d "$XDG_CONFIG_HOME" ] || mkdir "$XDG_CONFIG_HOME" + +# $XDG_CACHE_HOME defines the base directory relative to which user-specific +# non-essential data files should be stored. If $XDG_CACHE_HOME is either not +# set or empty, a default equal to $HOME/.cache should be used. +if test "x$XDG_CACHE_HOME" = "x" ; then + XDG_CACHE_HOME=$HOME/.cache +fi +[ -d "$XDG_CACHE_HOME" ] || mkdir "$XDG_CACHE_HOME" + +# $XDG_DATA_HOME defines the base directory relative to which user-specific +# data files should be stored. +if test "x$XDG_DATA_HOME" = "x" ; then + XDG_DATA_HOME=$HOME/.local/share +fi +[ -d "$XDG_DATA_HOME" ] || mkdir -p "$XDG_DATA_HOME" + +# $XDG_STATE_HOME defines the base directory relative to which user-specific +# state files should be stored. +if test "x$XDG_STATE_HOME" = "x" ; then + XDG_STATE_HOME=$HOME/.local/state +fi +[ -d "$XDG_STATE_HOME" ] || mkdir -p "$XDG_STATE_HOME" + +# Unlock gnome-keyring-daemon +if test -n "$DESKTOP_SESSION" ; then + SSH_AUTH_SOCK="/var/run/user/${_user_id}/keyring/ssh" + + # If .xinitrc is used, uncomment the next line + #eval $(gnome-keyring-daemon --start --components=pkc11,secrets,ssh) + export SSH_AUTH_SOCK +fi + +# Set up XDG user directories (devel/xdg-user-dirs) +# https://freedesktop.org/wiki/Software/xdg-user-dirs +if command -v xdg-user-dirs-update >/dev/null 2>&1 ; then + xdg-user-dirs-update +fi diff --git a/x11/gnome-shell/pkg-plist b/x11/gnome-shell/pkg-plist index c2720426f880..d6fdf373b912 100644 --- a/x11/gnome-shell/pkg-plist +++ b/x11/gnome-shell/pkg-plist @@ -1,30 +1,21 @@ -bin/gnome-extensions bin/gnome-extensions-app bin/gnome-shell -bin/gnome-shell-extension-prefs -bin/gnome-shell-extension-tool -bin/gnome-shell-perf-tool -etc/xdg/autostart/gnome-shell-overrides-migration.desktop +bin/gnome-shell-test-tool lib/gnome-shell/Gvc-1.0.typelib -lib/gnome-shell/Shell-0.1.typelib -lib/gnome-shell/St-1.0.typelib +lib/gnome-shell/Shell-15.typelib +lib/gnome-shell/St-15.typelib lib/gnome-shell/girepository-1.0/Shew-0.typelib lib/gnome-shell/libgnome-shell-menu.so -lib/gnome-shell/libgnome-shell.so lib/gnome-shell/libgvc.so +lib/gnome-shell/libshell-15.so lib/gnome-shell/libshew-0.so -lib/gnome-shell/libst-1.0.so +lib/gnome-shell/libst-15.so libexec/gnome-shell-calendar-server libexec/gnome-shell-hotplug-sniffer -libexec/gnome-shell-overrides-migration.sh libexec/gnome-shell-perf-helper -share/man/man1/gnome-extensions.1.gz -share/man/man1/gnome-shell.1.gz -share/applications/evolution-calendar.desktop share/applications/org.gnome.Extensions.desktop share/applications/org.gnome.Shell.Extensions.desktop share/applications/org.gnome.Shell.desktop -share/bash-completion/completions/gnome-extensions share/dbus-1/interfaces/org.gnome.Shell.Extensions.xml share/dbus-1/interfaces/org.gnome.Shell.Introspect.xml share/dbus-1/interfaces/org.gnome.Shell.PadOsd.xml @@ -39,12 +30,13 @@ share/dbus-1/services/org.gnome.Shell.Extensions.service share/dbus-1/services/org.gnome.Shell.HotplugSniffer.service share/dbus-1/services/org.gnome.Shell.Notifications.service share/dbus-1/services/org.gnome.Shell.Screencast.service +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/xprofile share/gnome-control-center/keybindings/50-gnome-shell-launchers.xml share/gnome-control-center/keybindings/50-gnome-shell-screenshots.xml share/gnome-control-center/keybindings/50-gnome-shell-system.xml %%DATADIR%%/Gvc-1.0.gir -%%DATADIR%%/Shell-0.1.gir -%%DATADIR%%/St-1.0.gir +%%DATADIR%%/Shell-15.gir +%%DATADIR%%/St-15.gir %%DATADIR%%/gir-1.0/Shew-0.gir %%DATADIR%%/gnome-shell-dbus-interfaces.gresource %%DATADIR%%/gnome-shell-icons.gresource @@ -67,6 +59,7 @@ share/icons/hicolor/scalable/apps/org.gnome.Extensions.svg share/icons/hicolor/scalable/apps/org.gnome.Shell.Extensions.svg share/icons/hicolor/symbolic/apps/org.gnome.Extensions-symbolic.svg share/icons/hicolor/symbolic/apps/org.gnome.Shell.Extensions-symbolic.svg +share/locale/ab/LC_MESSAGES/gnome-shell.mo share/locale/af/LC_MESSAGES/gnome-shell.mo share/locale/an/LC_MESSAGES/gnome-shell.mo share/locale/ar/LC_MESSAGES/gnome-shell.mo @@ -104,6 +97,7 @@ share/locale/hr/LC_MESSAGES/gnome-shell.mo share/locale/hu/LC_MESSAGES/gnome-shell.mo share/locale/ia/LC_MESSAGES/gnome-shell.mo share/locale/id/LC_MESSAGES/gnome-shell.mo +share/locale/ie/LC_MESSAGES/gnome-shell.mo share/locale/is/LC_MESSAGES/gnome-shell.mo share/locale/it/LC_MESSAGES/gnome-shell.mo share/locale/ja/LC_MESSAGES/gnome-shell.mo @@ -153,5 +147,5 @@ share/locale/vi/LC_MESSAGES/gnome-shell.mo share/locale/zh_CN/LC_MESSAGES/gnome-shell.mo share/locale/zh_HK/LC_MESSAGES/gnome-shell.mo share/locale/zh_TW/LC_MESSAGES/gnome-shell.mo +share/man/man1/gnome-shell.1.gz share/metainfo/org.gnome.Extensions.metainfo.xml -share/xdg-desktop-portal/portals/gnome-shell.portal |