summaryrefslogtreecommitdiff
path: root/x11/gnome-shell
diff options
context:
space:
mode:
Diffstat (limited to 'x11/gnome-shell')
-rw-r--r--x11/gnome-shell/Makefile93
-rw-r--r--x11/gnome-shell/distinfo6
-rw-r--r--x11/gnome-shell/files/org.freedesktop.ConsoleKit.Manager.xml42
-rw-r--r--x11/gnome-shell/files/org.freedesktop.ConsoleKit.Session.xml18
-rw-r--r--x11/gnome-shell/files/patch-data_00__org.gnome.shell.gschema.override9
-rw-r--r--x11/gnome-shell/files/patch-js_gdm_loginDialog.js29
-rw-r--r--x11/gnome-shell/files/patch-js_misc_loginManager.js127
-rw-r--r--x11/gnome-shell/files/patch-js_misc_loginManager_js128
-rw-r--r--x11/gnome-shell/files/patch-js_ui_appDisplay.js15
-rw-r--r--x11/gnome-shell/files/patch-js_ui_appFavorites.js18
-rw-r--r--x11/gnome-shell/files/patch-js_ui_endSessionDialog.js (renamed from x11/gnome-shell/files/patch-js_ui_endSessionDialog_js)16
-rw-r--r--x11/gnome-shell/files/patch-meson.build13
-rw-r--r--x11/gnome-shell/files/patch-subprojects_extensions-tool_man_meson_build15
-rw-r--r--x11/gnome-shell/files/patch-subprojects_extensions-tool_src_meson.build14
-rw-r--r--x11/gnome-shell/files/pkg-message.in29
-rw-r--r--x11/gnome-shell/files/xprofile.in74
-rw-r--r--x11/gnome-shell/pkg-plist28
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