1
0
Fork 0

Adding debian version 48.2-3.

Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
This commit is contained in:
Daniel Baumann 2025-06-22 20:26:11 +02:00
parent 1fcdbd5df9
commit 1c8977628f
Signed by: daniel.baumann
GPG key ID: BCC918A2ABD66424
39 changed files with 5730 additions and 0 deletions

11
debian/.gitignore vendored Normal file
View file

@ -0,0 +1,11 @@
!*.patch
/*.debhelper
/*.debhelper.log
/*.substvars
/.debhelper/
/debhelper-build-stamp
/files
/gnome-shell-common/
/gnome-shell/
/home/
/tmp/

4515
debian/changelog vendored Normal file

File diff suppressed because it is too large Load diff

1
debian/clean vendored Normal file
View file

@ -0,0 +1 @@
debian/home/

170
debian/control vendored Normal file
View file

@ -0,0 +1,170 @@
Source: gnome-shell
Section: gnome
Priority: optional
Maintainer: Debian GNOME Maintainers <pkg-gnome-maintainers@lists.alioth.debian.org>
Uploaders: Jeremy Bícha <jbicha@ubuntu.com>, Marco Trevisan (Treviño) <marco@ubuntu.com>
Build-Depends: appstream,
bash-completion,
dbus-daemon <!nocheck>,
debhelper-compat (= 13),
dh-sequence-gir,
dh-sequence-gnome,
gjs (>= 1.73.1),
gir1.2-accountsservice-1.0 <!nocheck>,
gir1.2-gcr-4-dev,
gir1.2-gdkpixbuf-2.0-dev,
gir1.2-gdm-1.0 <!nocheck>,
gir1.2-geoclue-2.0 <!nocheck>,
gir1.2-gnomebg-4.0 <!nocheck>,
gir1.2-gnomedesktop-4.0 <!nocheck>,
gir1.2-gweather-4.0 (>= 4.1) <!nocheck>,
gir1.2-nma4-1.0 (>= 1.10.4) [linux-any] <!nocheck>,
gir1.2-polkitagent-1.0-dev,
gir1.2-rsvg-2.0 <!nocheck>,
gir1.2-upowerglib-1.0 <!nocheck>,
gnome-control-center-dev,
gnome-settings-daemon-common (>= 47~rc) <!nocheck>,
gobject-introspection (>= 1.80),
gsettings-desktop-schemas-dev (>= 48~beta),
gtk-doc-tools,
libasound2-dev,
libatk-bridge2.0-dev,
libecal2.0-dev (>= 3.45),
libedataserver1.2-dev (>= 3.45),
libgcr-4-dev (>= 3.90.0),
libgjs-dev (>= 1.73.1),
libgl1-mesa-dri <!nocheck>,
libglib2.0-dev (>= 2.80),
libgnome-autoar-0-dev,
libgnome-bluetooth-3.0-dev (>= 3.9.0) [linux-any],
libgnome-desktop-4-dev (>= 40),
libgnome-menu-3-dev,
libgstreamer1.0-dev,
libgstreamer-plugins-base1.0-dev,
libgtk-4-dev,
libibus-1.0-dev,
libjson-glib-dev,
libmutter-16-dev (>= 48.0),
mutter-16-tests (>= 48.0) <!nocheck>,
libnm-dev [linux-any],
libpipewire-0.3-dev (>= 0.3.49) [linux-any],
libpolkit-agent-1-dev,
libpulse-dev,
libsecret-1-dev,
libsystemd-dev [linux-any],
libx11-dev,
libxfixes-dev,
libxml2-dev,
mesa-common-dev,
meson (>= 0.58.0),
mutter (>= 48.0) <!nocheck>,
pipewire <!nocheck>,
pkgconf,
python3-docutils,
sassc,
systemd-dev [linux-any],
xauth <!nocheck>,
xvfb <!nocheck>,
xwayland <!nocheck>
Rules-Requires-Root: no
Standards-Version: 4.7.2
Homepage: https://wiki.gnome.org/Projects/GnomeShell
Vcs-Git: https://salsa.debian.org/gnome-team/gnome-shell.git
Vcs-Browser: https://salsa.debian.org/gnome-team/gnome-shell
Package: gnome-shell
Architecture: linux-any
Depends: gir1.2-accountsservice-1.0,
gir1.2-adw-1,
gir1.2-atk-1.0,
gir1.2-atspi-2.0,
gir1.2-gcr-4 (>= 3.90.0),
gir1.2-gdesktopenums-3.0,
gir1.2-gdkpixbuf-2.0,
gir1.2-gdm-1.0 (>= 47.0-4~),
gir1.2-geoclue-2.0,
gir1.2-glib-2.0 (>= 2.80),
gir1.2-gnomebg-4.0,
gir1.2-gnomebluetooth-3.0 (>= 42.3) [linux-any],
gir1.2-gnomedesktop-4.0 (>= 40),
gir1.2-graphene-1.0,
gir1.2-gstreamer-1.0,
gir1.2-gtk-4.0,
gir1.2-gweather-4.0 (>= 4.1),
gir1.2-freedesktop,
gir1.2-ibus-1.0,
gir1.2-mutter-16 (>= 48.0),
gir1.2-nm-1.0 [linux-any],
gir1.2-nma4-1.0 (>= 1.10.4) [linux-any],
gir1.2-pango-1.0,
gir1.2-polkit-1.0,
gir1.2-rsvg-2.0,
gir1.2-soup-3.0,
gir1.2-upowerglib-1.0,
gjs (>= 1.73.1),
gnome-control-center (>= 1:46),
gnome-settings-daemon (>= 47~rc),
gnome-shell-common (= ${source:Version}),
gsettings-desktop-schemas (>= 48~beta),
gstreamer1.0-pipewire (>= 0.3.49) [linux-any],
libglib2.0-bin (>= 2.80),
python3,
tecla,
${gir:Depends},
${misc:Depends},
${shlibs:Depends}
Recommends: bolt,
evolution-data-server (>= 3.45),
gdm3,
gnome-browser-connector,
gnome-remote-desktop,
gnome-menus,
gnome-user-docs,
ibus,
iio-sensor-proxy,
power-profiles-daemon,
switcheroo-control,
unzip
Suggests: gir1.2-malcontent-0 [linux-any],
gir1.2-telepathyglib-0.12,
gir1.2-telepathylogger-0.2,
gnome-shell-extension-prefs,
Breaks: gnome-shell-extension-appindicator (<< 50),
gnome-shell-extension-dash-to-panel (<< 55),
gnome-shell-extension-dashtodock (<< 79),
gnome-shell-extension-desktop-icons (<< 21.04),
gnome-shell-extension-desktop-icons-ng (<< 46+really47.0.2-2),
gnome-shell-extension-taskbar (<< 57.0-2.1~),
gnome-shell-extension-top-icons-plus (<< 27-3~),
gnome-shell-extension-workspaces-to-dock (<< 54~),
gnome-shell-extensions (<< 40.0~),
Provides: notification-daemon,
polkit-1-auth-agent
Description: graphical shell for the GNOME desktop
The GNOME Shell provides core interface functions like switching
windows, launching applications or see your notifications. It takes
advantage of the capabilities of modern graphics hardware and
introduces innovative user interface concepts to provide a
delightful and easy to use experience. GNOME Shell is the defining
technology of the GNOME 3 user experience.
Package: gnome-shell-common
Architecture: all
Depends: ${misc:Depends}
Description: common files for the GNOME graphical shell
This package contains translations and data files for the GNOME shell.
Package: gnome-shell-extension-prefs
Architecture: linux-any
Depends: gir1.2-adw-1,
gir1.2-gtk-4.0,
gjs (>= 1.73.1),
gnome-shell (= ${binary:Version}),
${gir:Depends},
${misc:Depends},
${shlibs:Depends}
Provides: gnome-extensions-app
Recommends: gnome-browser-connector
Description: tool to enable / disable GNOME Shell extensions
This package contains a tool which users who use Shell extensions can use to
toggle them on and off, and access their preferences.

52
debian/copyright vendored Normal file
View file

@ -0,0 +1,52 @@
This package was debianized by Sebastien Bacher <seb128@ubuntu.com> on
Wed, 01 Jul 2009 23:29:31 +0200.
It was downloaded from https://download.gnome.org/sources/gnome-shell/
Upstream Authors:
Colin Walters
Dan Winship
Marina Zhurakhinskaya
Owen Taylor
William Jon McCann
Files: src/*
js/*
Copyright: © 2000 Helix Code, Inc.
© 2000,2001 Eazel, Inc.
© 2001 George Lebl
© 2002 Sun Microsystems Inc.
© 2004-2005 James M. Cape <jcape@ignore-your.tv>
© 2006-2008 Red Hat, Inc.
© 2007 Ryan Lortie
© 2008 Intel Corp.
License: GPL-2+ (/usr/share/common-licenses/GPL-2)
Files: src/gdmuser/*
Copyright: © 2007-2008 William Jon McCann <mccann@jhu.edu>
© 2004-2005 James M. Cape <jcape@ignore-your.tv>
License: LGPL-2+ (/usr/share/common-licenses/LGPL-2)
Files: src/tray/*
Copyright: © 2002 Anders Carlsson <andersca@gnu.org>
© 2003-2006 Vincent Untz
© 2008 Red Hat, Inc.
Files: src/big/*
Copyright: © 2005-2008 Red Hat, Inc.
© 2008-2009 litl, LLC
Files: src/st/*
Copyright: © 2008 OpenedHand
© 2009 Intel Corporation.
© 2003-2004 Dodji Seketeli
License: LGPL-2.1 (/usr/share/common-licenses/LGPL-2.1)
The Debian packaging is:
Copyright © 2009 Sebastien Bacher <seb128@ubuntu.com>
Copyright © 2009 Collabora Ltd.
and is licensed under the GPL version 3,
see `/usr/share/common-licenses/GPL-3'.

17
debian/gbp.conf vendored Normal file
View file

@ -0,0 +1,17 @@
[DEFAULT]
pristine-tar = True
debian-branch = debian/latest
upstream-branch = upstream/latest
[buildpackage]
sign-tags = True
[dch]
multimaint-merge = True
[import-orig]
postimport = dch -v%(version)s New upstream release; git add debian/changelog; debcommit
upstream-vcs-tag = %(version%~%.)s
[pq]
patch-numbers = False

1
debian/gnome-shell-common.dirs vendored Normal file
View file

@ -0,0 +1 @@
usr/share/gnome-shell/modes

9
debian/gnome-shell-common.install vendored Normal file
View file

@ -0,0 +1,9 @@
debian/source_gnome-shell.py /usr/share/apport/package-hooks
usr/lib/systemd/user
usr/share/desktop-directories/X-GNOME-Shell-*.directory
usr/share/dbus-1/interfaces
usr/share/glib-2.0
usr/share/gnome-control-center
usr/share/gnome-shell
usr/share/icons/hicolor/*/apps/*
usr/share/locale

View file

@ -0,0 +1,2 @@
# Intentional
package-contains-empty-directory [usr/share/gnome-shell/modes/]

View file

@ -0,0 +1,3 @@
usr/bin/gnome-extensions-app
usr/share/applications/org.gnome.Extensions.desktop
usr/share/metainfo/org.gnome.Extensions.metainfo.xml

2
debian/gnome-shell.bug-control vendored Normal file
View file

@ -0,0 +1,2 @@
report-with: gnome-session gnome-settings-daemon libgjs0g libmutter-11-0
package-status: libegl-vendor libglx-vendor libgl1-mesa-dri

2
debian/gnome-shell.docs vendored Normal file
View file

@ -0,0 +1,2 @@
NEWS
README.md

2
debian/gnome-shell.gsettings-override vendored Normal file
View file

@ -0,0 +1,2 @@
[org.gnome.shell]
favorite-apps=[ 'firefox-esr.desktop', 'org.gnome.Evolution.desktop', 'org.gnome.Nautilus.desktop', 'org.gnome.Software.desktop', 'org.gnome.TextEditor.desktop', 'org.gnome.Calculator.desktop', 'yelp.desktop' ]

10
debian/gnome-shell.install vendored Normal file
View file

@ -0,0 +1,10 @@
usr/bin/gnome-extensions
usr/bin/gnome-shell
usr/bin/gnome-shell-extension-tool
usr/bin/gnome-shell-test-tool
usr/lib/gnome-shell
usr/libexec
usr/share/applications/org.gnome.Shell*.desktop
usr/share/bash-completion/completions/gnome-extensions
usr/share/dbus-1/services
usr/share/man

9
debian/gnome-shell.lintian-overrides vendored Normal file
View file

@ -0,0 +1,9 @@
# These RUNPATHs are needed to find mutter's private clutter fork
gnome-shell: custom-library-search-path RUNPATH /usr/lib/*/mutter-* [usr/bin/gnome-shell]
gnome-shell: custom-library-search-path RUNPATH /usr/lib/*/mutter-* [usr/lib/gnome-shell/*.so]
# gnome-shell ships some desktop files only to provide metadata and icons to some apps
gnome-shell: desktop-command-not-in-package false [usr/share/applications/org.gnome.Shell.Extensions.desktop]
# This is a NoDisplay=true desktop file, so there's no need for it
gnome-shell: desktop-entry-lacks-main-category [usr/share/applications/org.gnome.Shell.desktop]

1
debian/gnome-shell.maintscript vendored Normal file
View file

@ -0,0 +1 @@
rm_conffile /etc/xdg/autostart/gnome-shell-overrides-migration.desktop 44.3-5~

18
debian/gnome-shell.postinst vendored Normal file
View file

@ -0,0 +1,18 @@
#!/bin/sh
set -e
case "$1" in
configure)
# trigger an update notification that recommends a reboot
# (used by unattended-upgrades etc.)
touch /var/run/reboot-required || true
# same thing for the older update-notifier interface
if [ -x /usr/share/update-notifier/notify-reboot-required ]; then
/usr/share/update-notifier/notify-reboot-required || true
fi
;;
esac
#DEBHELPER#

View file

@ -0,0 +1,22 @@
From: Jeremy Bicha <jeremy.bicha@canonical.com>
Date: Fri, 17 Feb 2023 15:35:20 -0500
Subject: Revert "tests: Fail on warnings too"
This reverts commit 207b9bb3c0a582b830218fd1b6e8760684adbc48.
---
tests/meson.build | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tests/meson.build b/tests/meson.build
index 7a09f3b..93cf49a 100644
--- a/tests/meson.build
+++ b/tests/meson.build
@@ -79,7 +79,7 @@ libgvc_path = fs.parent(libgvc.get_variable('libgvc').full_path())
background_file = join_paths(meson.current_source_dir(), 'data', 'background.png')
shell_testenv = environment()
-shell_testenv.set('G_DEBUG', 'fatal-warnings')
+shell_testenv.set('G_DEBUG', 'fatal-criticals')
shell_testenv.set('G_MESSAGES_DEBUG', 'GNOME Shell')
shell_testenv.set('GNOME_SHELL_DATADIR', data_builddir)
shell_testenv.set('GNOME_SHELL_BUILDDIR', src_builddir)

View file

@ -0,0 +1,29 @@
From: Simon McVittie <smcv@debian.org>
Date: Tue, 10 Jun 2025 11:42:17 +0100
Subject: data: Add im-config.desktop to System folder
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit
Debian installs this by default, but most users will only need to run
it once, or perhaps not at all.
Thanks: Jeremy Bícha
Helps: #1099579
Forwarded: not-needed, Debian-specific
---
data/default-apps/system-folder.txt | 1 +
1 file changed, 1 insertion(+)
diff --git a/data/default-apps/system-folder.txt b/data/default-apps/system-folder.txt
index 2cda554..62cf6ba 100644
--- a/data/default-apps/system-folder.txt
+++ b/data/default-apps/system-folder.txt
@@ -2,6 +2,7 @@ nm-connection-editor.desktop # Advanced Network Configuration
org.gnome.DejaDup.desktop # Backups
org.gnome.baobab.desktop # Disk Usage Analyzer
org.gnome.DiskUtility.desktop # Disks
+im-config.desktop # Input Method
org.gnome.Logs.desktop # Logs
org.freedesktop.MalcontentControl.desktop # Parental Controls
org.freedesktop.GnomeAbrt.desktop # Problem Reporting

13
debian/patches/series vendored Normal file
View file

@ -0,0 +1,13 @@
debian/Revert-tests-Fail-on-warnings-too.patch
tray-icons/build-Add-explicit-dependency-on-Xfixes.patch
tray-icons/tray-na-xembed-Use-XShape-to-remove-input-on-socket-windo.patch
tray-icons/shell-tray-icon-Use-available-space-when-that-s-defined.patch
tray-icons/shell-tray-Ensure-that-only-a-child-can-be-added.patch
tray-icons/shell-tray-icon-Trigger-a-relayout-when-the-underneath-xe.patch
tray-icons/tray-Zero-initialize-the-event-structures-on-initializati.patch
tray-icons/tray-na-xembed-Use-proper-indentation-style-header.patch
tray-icons/tray-na-xembed-Destroy-socket-window-when-ending-the-embe.patch
tray-icons/tray-na-tray-manager-Remove-outdated-comment-and-return-v.patch
shell-app-Warn-instead-of-crashing-if-disposed-before-sta.patch
st-theme-node-Forget-properties-cache-on-stylesheet-chang.patch
debian/data-Add-im-config.desktop-to-System-folder.patch

View file

@ -0,0 +1,60 @@
From: Daniel van Vugt <daniel.van.vugt@canonical.com>
Date: Thu, 29 Aug 2024 15:19:14 +0800
Subject: shell/app: Warn instead of crashing if disposed before startup
notification
This is currently easy to reproduce by launching and immediately closing
Chrome, then closing the shell. But automated crash reports show it can
also happen while using the shell, during a garbage collection run.
It's currently the top gnome-shell crasher in Ubuntu, and mostly with
Chromium/Electron apps. But regardless of the offender, we shouldn't
ever trust application behaviour to keep the shell alive.
Bug: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7045
Bug-Ubuntu: https://bugs.launchpad.net/bugs/2037055
Forwarded: https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3457
---
src/shell-app.c | 24 +++++++++++++++++++++---
1 file changed, 21 insertions(+), 3 deletions(-)
diff --git a/src/shell-app.c b/src/shell-app.c
index 916783a..c7630d2 100644
--- a/src/shell-app.c
+++ b/src/shell-app.c
@@ -1736,14 +1736,32 @@ shell_app_dispose (GObject *object)
{
ShellApp *app = SHELL_APP (object);
- g_clear_object (&app->info);
g_clear_object (&app->fallback_icon);
while (app->running_state)
_shell_app_remove_window (app, app->running_state->windows->data);
- /* We should have been transitioned when we removed all of our windows */
- g_assert (app->state == SHELL_APP_STATE_STOPPED);
+ if (app->state != SHELL_APP_STATE_STOPPED && app->info)
+ {
+ const char *name = g_desktop_app_info_get_generic_name (app->info);
+ const char *file_name = g_desktop_app_info_get_filename (app->info);
+
+ if (!name)
+ name = "(name unknown)";
+
+ if (!file_name)
+ file_name = "(filename unknown)";
+
+ g_warning ("App \"%s\" (%s) claims to still be %s when being disposed. "
+ "Please ask the app developer to check if StartupNotify=true "
+ "in the .desktop file is properly implemented.",
+ name,
+ file_name,
+ app->state == SHELL_APP_STATE_STARTING ? "starting" :
+ "running");
+ }
+
+ g_clear_object (&app->info);
g_assert (app->running_state == NULL);
G_OBJECT_CLASS(shell_app_parent_class)->dispose (object);

View file

@ -0,0 +1,89 @@
From: Daniel van Vugt <daniel.van.vugt@canonical.com>
Date: Thu, 28 Mar 2024 14:45:26 +0800
Subject: st/theme-node: Forget properties cache on stylesheet change
To avoid `node->properties` pointing to freed memory after each
`st_theme_unload_stylesheet`, flush the cache that is `node->properties`.
They will be reloaded as soon as they are required by `ensure_properties`.
And yes `node->stylesheets_changed_id` already existed, but was unused.
Why not just fix Croco? Croco does not use proper reference counting
everywhere it should, and retrofitting it would be difficult due to the
recursive nature of `CRDeclaration`.
Includes commit:
st/theme-node: Forget properties cache before unref'ing the theme
Which the properties point into.
Forwarded: https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3252
Bug: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7339
Bug-Ubuntu: https://bugs.launchpad.net/bugs/2069559
Bug-Dash-to-Dock: https://github.com/micheleg/dash-to-dock/issues/2179
---
src/st/st-theme-node-private.h | 2 +-
src/st/st-theme-node.c | 17 +++++++++++++++--
2 files changed, 16 insertions(+), 3 deletions(-)
diff --git a/src/st/st-theme-node-private.h b/src/st/st-theme-node-private.h
index d95284e..2d5065f 100644
--- a/src/st/st-theme-node-private.h
+++ b/src/st/st-theme-node-private.h
@@ -104,7 +104,7 @@ struct _StThemeNode {
int box_shadow_min_width;
int box_shadow_min_height;
- guint stylesheets_changed_id;
+ gulong stylesheets_changed_id;
CoglTexture *border_slices_texture;
CoglPipeline *border_slices_pipeline;
diff --git a/src/st/st-theme-node.c b/src/st/st-theme-node.c
index 4e0111d..8d81693 100644
--- a/src/st/st-theme-node.c
+++ b/src/st/st-theme-node.c
@@ -75,6 +75,10 @@ maybe_free_properties (StThemeNode *node)
cr_declaration_destroy (node->inline_properties);
node->inline_properties = NULL;
}
+
+ g_clear_signal_handler (&node->stylesheets_changed_id, node->theme);
+
+ node->properties_computed = FALSE;
}
static void
@@ -102,6 +106,7 @@ st_theme_node_dispose (GObject *gobject)
st_theme_node_paint_state_free (&node->cached_state);
+ maybe_free_properties (node);
g_clear_object (&node->theme);
G_OBJECT_CLASS (st_theme_node_parent_class)->dispose (gobject);
@@ -117,8 +122,6 @@ st_theme_node_finalize (GObject *object)
g_strfreev (node->pseudo_classes);
g_free (node->inline_style);
- maybe_free_properties (node);
-
g_clear_pointer (&node->font_desc, pango_font_description_free);
g_clear_pointer (&node->box_shadow, st_shadow_unref);
@@ -472,6 +475,16 @@ ensure_properties (StThemeNode *node)
node->n_properties = properties->len;
node->properties = (CRDeclaration **)g_ptr_array_free (properties, FALSE);
}
+
+ if (!node->stylesheets_changed_id)
+ {
+ node->stylesheets_changed_id =
+ g_signal_connect_object (node->theme,
+ "custom-stylesheets-changed",
+ G_CALLBACK (maybe_free_properties),
+ G_OBJECT (node),
+ G_CONNECT_SWAPPED);
+ }
}
}

View file

@ -0,0 +1,38 @@
From: =?utf-8?b?Ik1hcmNvIFRyZXZpc2FuIChUcmV2acOxbyki?= <mail@3v1n0.net>
Date: Wed, 1 May 2024 22:33:43 +0200
Subject: build: Add explicit dependency on Xfixes
We use the xfixes extensions in tray icons but we rely on the dependency
brought to us from other libraries as mutter but let's make it explicit
Origin: https://gitlab.gnome.org/3v1n0/gnome-shell/-/commits/tray-offscreen-xwindows
Bug-Ubuntu: https://bugs.launchpad.net/bugs/2012388
---
meson.build | 1 +
src/tray/meson.build | 2 +-
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/meson.build b/meson.build
index 94d717f..03a3b2a 100644
--- a/meson.build
+++ b/meson.build
@@ -93,6 +93,7 @@ have_x11 = mutter_dep.get_variable('have_x11') == 'true'
have_x11_client = mutter_dep.get_variable('have_x11_client') == 'true'
if have_x11_client or have_x11
x11_dep = dependency('x11')
+ xfixes_dep = dependency('xfixes')
endif
if not have_fonts
diff --git a/src/tray/meson.build b/src/tray/meson.build
index 1a86bcb..2fc73f3 100644
--- a/src/tray/meson.build
+++ b/src/tray/meson.build
@@ -9,6 +9,6 @@ tray_sources = [
libtray = static_library('tray', tray_sources,
c_args: ['-DG_LOG_DOMAIN="notification_area"'],
- dependencies: [mutter_dep, mtk_dep],
+ dependencies: [mutter_dep, mtk_dep, xfixes_dep],
include_directories: conf_inc
)

View file

@ -0,0 +1,22 @@
From: =?utf-8?b?Ik1hcmNvIFRyZXZpc2FuIChUcmV2acOxbyki?= <mail@3v1n0.net>
Date: Wed, 1 May 2024 04:19:34 +0200
Subject: shell-tray: Ensure that only a child can be added
Origin: https://gitlab.gnome.org/3v1n0/gnome-shell/-/commits/tray-offscreen-xwindows
Bug-Ubuntu: https://bugs.launchpad.net/bugs/2012388
---
src/shell-tray-icon.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/shell-tray-icon.c b/src/shell-tray-icon.c
index 39204bf..9b79c2b 100644
--- a/src/shell-tray-icon.c
+++ b/src/shell-tray-icon.c
@@ -239,6 +239,7 @@ shell_tray_icon_set_child (ShellTrayIcon *tray_icon,
MetaDisplay *display = shell_global_get_display (shell_global_get ());
g_return_if_fail (tray_icon != NULL);
+ g_return_if_fail (tray_icon->tray_child == NULL);
g_return_if_fail (tray_child != NULL);
/* We do all this now rather than computing it on the fly later,

View file

@ -0,0 +1,83 @@
From: =?utf-8?b?Ik1hcmNvIFRyZXZpc2FuIChUcmV2acOxbyki?= <mail@3v1n0.net>
Date: Wed, 1 May 2024 04:20:42 +0200
Subject: shell-tray-icon: Trigger a relayout when the underneath xembeded
size changes
Origin: https://gitlab.gnome.org/3v1n0/gnome-shell/-/commits/tray-offscreen-xwindows
Bug-Ubuntu: https://bugs.launchpad.net/bugs/2012388
---
src/shell-tray-icon.c | 4 ++++
src/tray/na-xembed.c | 18 ++++++++++++++++++
src/tray/na-xembed.h | 1 +
3 files changed, 23 insertions(+)
diff --git a/src/shell-tray-icon.c b/src/shell-tray-icon.c
index 9b79c2b..c9be146 100644
--- a/src/shell-tray-icon.c
+++ b/src/shell-tray-icon.c
@@ -260,6 +260,10 @@ shell_tray_icon_set_child (ShellTrayIcon *tray_icon,
"window-created",
G_CALLBACK (shell_tray_icon_window_created_cb),
tray_icon);
+
+ g_signal_connect_object (tray_child, "reconfigured",
+ G_CALLBACK (clutter_actor_queue_relayout),
+ tray_icon, G_CONNECT_SWAPPED);
}
/*
diff --git a/src/tray/na-xembed.c b/src/tray/na-xembed.c
index d4c389c..be08d6d 100644
--- a/src/tray/na-xembed.c
+++ b/src/tray/na-xembed.c
@@ -91,6 +91,7 @@ G_DEFINE_TYPE_WITH_PRIVATE (NaXembed, na_xembed, G_TYPE_OBJECT)
enum {
PLUG_ADDED,
PLUG_REMOVED,
+ RECONFIGURED,
LAST_SIGNAL
};
@@ -548,6 +549,15 @@ xembed_filter_func (MetaX11Display *x11_display,
}
break;
}
+ case ConfigureNotify:
+ {
+ XConfigureEvent *xce = &xevent->xconfigure;
+
+ if (xce->window == priv->socket_window)
+ g_signal_emit (xembed, signals[RECONFIGURED], 0);
+
+ break;
+ }
case DestroyNotify:
{
XDestroyWindowEvent *xdwe = &xevent->xdestroywindow;
@@ -742,6 +752,14 @@ na_xembed_class_init (NaXembedClass *klass)
NULL, NULL, NULL,
G_TYPE_NONE, 0);
+ signals[RECONFIGURED] =
+ g_signal_new ("reconfigured",
+ G_OBJECT_CLASS_TYPE (klass),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (NaXembedClass, reconfigured),
+ NULL, NULL, NULL,
+ G_TYPE_NONE, 0);
+
props[PROP_X11_DISPLAY] =
g_param_spec_object ("x11-display", NULL, NULL,
META_TYPE_X11_DISPLAY,
diff --git a/src/tray/na-xembed.h b/src/tray/na-xembed.h
index 271060d..801c6a6 100644
--- a/src/tray/na-xembed.h
+++ b/src/tray/na-xembed.h
@@ -35,6 +35,7 @@ struct _NaXembedClass
void (* plug_added) (NaXembed *xembed);
void (* plug_removed) (NaXembed *xembed);
+ void (* reconfigured) (NaXembed *xembed);
};
MetaX11Display * na_xembed_get_x11_display (NaXembed *xembed);

View file

@ -0,0 +1,111 @@
From: =?utf-8?b?Ik1hcmNvIFRyZXZpc2FuIChUcmV2acOxbyki?= <mail@3v1n0.net>
Date: Wed, 1 May 2024 04:18:50 +0200
Subject: shell-tray-icon: Use available space when that's defined
Origin: https://gitlab.gnome.org/3v1n0/gnome-shell/-/commits/tray-offscreen-xwindows
Bug: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7613
Bug-Ubuntu: https://bugs.launchpad.net/bugs/2012388
---
src/shell-tray-icon.c | 4 ++++
src/tray/na-xembed.c | 29 +++++++++++++++++++++++++++++
src/tray/na-xembed.h | 4 ++++
3 files changed, 37 insertions(+)
diff --git a/src/shell-tray-icon.c b/src/shell-tray-icon.c
index 462945e..39204bf 100644
--- a/src/shell-tray-icon.c
+++ b/src/shell-tray-icon.c
@@ -185,6 +185,10 @@ shell_tray_icon_allocate (ClutterActor *actor,
CLUTTER_ACTOR_CLASS (shell_tray_icon_parent_class)->allocate (actor, box);
+ na_xembed_set_available_size (NA_XEMBED (tray_icon->tray_child),
+ roundf (clutter_actor_box_get_width (box)),
+ roundf (clutter_actor_box_get_height (box)));
+
/* Find the actor's new coordinates in terms of the stage.
*/
clutter_actor_get_transformed_position (actor, &wx, &wy);
diff --git a/src/tray/na-xembed.c b/src/tray/na-xembed.c
index 1be1e9d..d4c389c 100644
--- a/src/tray/na-xembed.c
+++ b/src/tray/na-xembed.c
@@ -43,6 +43,8 @@ struct _NaXembedPrivate
int request_height;
int current_width;
int current_height;
+ int available_width;
+ int available_height;
int resize_count;
int xembed_version;
@@ -141,6 +143,8 @@ na_xembed_end_embedding (NaXembed *xembed)
priv->current_width = 0;
priv->current_height = 0;
priv->resize_count = 0;
+ priv->available_width = -1;
+ priv->available_height = -1;
g_clear_handle_id (&priv->resize_id, g_source_remove);
}
@@ -186,6 +190,11 @@ na_xembed_synchronize_size (NaXembed *xembed)
width = priv->request_width;
height = priv->request_height;
+ if (priv->available_width >= 0)
+ width = priv->available_width;
+ if (priv->available_height >= 0)
+ height = priv->available_height;
+
XMoveResizeWindow (xdisplay,
priv->socket_window,
x, y,
@@ -745,6 +754,10 @@ na_xembed_class_init (NaXembedClass *klass)
static void
na_xembed_init (NaXembed *xembed)
{
+ NaXembedPrivate *priv = na_xembed_get_instance_private (xembed);
+
+ priv->available_width = -1;
+ priv->available_height = -1;
}
void
@@ -809,6 +822,22 @@ na_xembed_get_size (NaXembed *xembed,
*height = priv->request_height;
}
+void
+na_xembed_set_available_size (NaXembed *xembed,
+ int width,
+ int height)
+{
+ NaXembedPrivate *priv = na_xembed_get_instance_private (xembed);
+
+ if (priv->available_width == width && priv->available_height == height)
+ return;
+
+ priv->available_width = width;
+ priv->available_height = height;
+
+ na_xembed_resize (xembed);
+}
+
void
na_xembed_get_root_position (NaXembed *xembed,
int *x,
diff --git a/src/tray/na-xembed.h b/src/tray/na-xembed.h
index 4466305..271060d 100644
--- a/src/tray/na-xembed.h
+++ b/src/tray/na-xembed.h
@@ -58,6 +58,10 @@ void na_xembed_get_size (NaXembed *xembed,
int *width,
int *height);
+void na_xembed_set_available_size (NaXembed *xembed,
+ int width,
+ int height);
+
void na_xembed_set_background_color (NaXembed *xembed,
const CoglColor *color);

View file

@ -0,0 +1,55 @@
From: =?utf-8?b?Ik1hcmNvIFRyZXZpc2FuIChUcmV2acOxbyki?= <mail@3v1n0.net>
Date: Wed, 1 May 2024 04:22:29 +0200
Subject: tray: Zero-initialize the event structures on initialization
Origin: https://gitlab.gnome.org/3v1n0/gnome-shell/-/commits/tray-offscreen-xwindows
Bug-Ubuntu: https://bugs.launchpad.net/bugs/2012388
---
src/tray/na-tray-child.c | 6 +++---
src/tray/na-xembed.c | 6 ++----
2 files changed, 5 insertions(+), 7 deletions(-)
diff --git a/src/tray/na-tray-child.c b/src/tray/na-tray-child.c
index 0911995..9ec6670 100644
--- a/src/tray/na-tray-child.c
+++ b/src/tray/na-tray-child.c
@@ -260,9 +260,9 @@ na_tray_child_emulate_event (NaTrayChild *tray_child,
ClutterEvent *event)
{
MetaX11Display *x11_display;
- XKeyEvent xkevent;
- XButtonEvent xbevent;
- XCrossingEvent xcevent;
+ XKeyEvent xkevent = {0};
+ XButtonEvent xbevent = {0};
+ XCrossingEvent xcevent = {0};
Display *xdisplay;
Window xwindow, xrootwindow;
ClutterEventType event_type = clutter_event_type (event);
diff --git a/src/tray/na-xembed.c b/src/tray/na-xembed.c
index be08d6d..398669c 100644
--- a/src/tray/na-xembed.c
+++ b/src/tray/na-xembed.c
@@ -115,9 +115,8 @@ xembed_send_message (NaXembed *xembed,
{
NaXembedPrivate *priv = na_xembed_get_instance_private (xembed);
Display *xdisplay = meta_x11_display_get_xdisplay (priv->x11_display);
- XClientMessageEvent xclient;
+ XClientMessageEvent xclient = {0};
- memset (&xclient, 0, sizeof (xclient));
xclient.window = recipient;
xclient.type = ClientMessage;
xclient.message_type = priv->atom__XEMBED;
@@ -153,10 +152,9 @@ static void
na_xembed_send_configure_event (NaXembed *xembed)
{
NaXembedPrivate *priv = na_xembed_get_instance_private (xembed);
- XConfigureEvent xconfigure;
+ XConfigureEvent xconfigure = {0};
Display *xdisplay = meta_x11_display_get_xdisplay (priv->x11_display);
- memset (&xconfigure, 0, sizeof (xconfigure));
xconfigure.type = ConfigureNotify;
xconfigure.event = priv->plug_window;

View file

@ -0,0 +1,33 @@
From: =?utf-8?b?Ik1hcmNvIFRyZXZpc2FuIChUcmV2acOxbyki?= <mail@3v1n0.net>
Date: Wed, 1 May 2024 20:54:46 +0200
Subject: tray/na-tray-manager: Remove outdated comment and return value
Origin: https://gitlab.gnome.org/3v1n0/gnome-shell/-/commits/tray-offscreen-xwindows
Bug-Ubuntu: https://bugs.launchpad.net/bugs/2012388
---
src/tray/na-tray-manager.c | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/src/tray/na-tray-manager.c b/src/tray/na-tray-manager.c
index 2d95d6a..7c630bd 100644
--- a/src/tray/na-tray-manager.c
+++ b/src/tray/na-tray-manager.c
@@ -244,7 +244,7 @@ na_tray_manager_new (MetaX11Display *x11_display)
NULL);
}
-static gboolean
+static void
na_tray_manager_plug_removed (NaTrayChild *tray_child,
NaTrayManager *manager)
{
@@ -255,9 +255,6 @@ na_tray_manager_plug_removed (NaTrayChild *tray_child,
g_hash_table_remove (manager->children,
GINT_TO_POINTER (icon_window));
g_signal_emit (manager, manager_signals[TRAY_ICON_REMOVED], 0, tray_child);
-
- /* This destroys the socket. */
- return FALSE;
}
static void

View file

@ -0,0 +1,111 @@
From: =?utf-8?b?Ik1hcmNvIFRyZXZpc2FuIChUcmV2acOxbyki?= <mail@3v1n0.net>
Date: Wed, 1 May 2024 05:56:48 +0200
Subject: tray/na-xembed: Destroy socket window when ending the embedding
Currently when embedding a tray icon is ended we are leaving the X11
socket window around as we don't really destroy it, while we're just
listening for its child destruction.
So, when embedding is ending we need to make sure that:
- If the plug window is still alive, move it back to its old parent
(normally that's the root window, but we query for it, to be sure)
- If the plug window has been already destroyed or reparented (by us or
by something else), we've to just destroy the socket window
Origin: https://gitlab.gnome.org/3v1n0/gnome-shell/-/commits/tray-offscreen-xwindows
Bug: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7614
Bug-Ubuntu: https://bugs.launchpad.net/bugs/2012388
---
src/tray/na-xembed.c | 39 ++++++++++++++++++++++++++++++++++++++-
1 file changed, 38 insertions(+), 1 deletion(-)
diff --git a/src/tray/na-xembed.c b/src/tray/na-xembed.c
index 4ef3666..588e034 100644
--- a/src/tray/na-xembed.c
+++ b/src/tray/na-xembed.c
@@ -36,6 +36,7 @@ struct _NaXembedPrivate
MetaX11Display *x11_display;
Window socket_window;
Window plug_window;
+ Window old_parent;
int root_x;
int root_y;
@@ -139,7 +140,26 @@ na_xembed_end_embedding (NaXembed *xembed)
{
NaXembedPrivate *priv = na_xembed_get_instance_private (xembed);
+ if (priv->socket_window)
+ {
+ Display *xdisplay = meta_x11_display_get_xdisplay (priv->x11_display);
+
+ mtk_x11_error_trap_push (xdisplay);
+
+ if (priv->plug_window && priv->old_parent)
+ XReparentWindow (xdisplay,
+ priv->plug_window,
+ priv->old_parent,
+ 0, 0);
+
+ XDestroyWindow (xdisplay, priv->socket_window);
+ priv->socket_window = None;
+
+ mtk_x11_error_trap_pop (xdisplay);
+ }
+
priv->plug_window = None;
+ priv->old_parent = None;
priv->current_width = 0;
priv->current_height = 0;
priv->resize_count = 0;
@@ -413,6 +433,18 @@ na_xembed_add_window (NaXembed *xembed,
&socket_attrs);
XUnmapWindow (xdisplay, priv->plug_window); /* Shouldn't actually be necessary for XEMBED, but just in case */
+
+ if (!priv->old_parent)
+ {
+ g_autofree Window *children = NULL;
+ unsigned int n_children;
+ Window root;
+
+ if (!XQueryTree (xdisplay, priv->plug_window, &root, &priv->old_parent,
+ &children, &n_children))
+ priv->old_parent = meta_x11_display_get_xroot (priv->x11_display);
+ }
+
XReparentWindow (xdisplay,
priv->plug_window,
priv->socket_window,
@@ -563,10 +595,14 @@ xembed_filter_func (MetaX11Display *x11_display,
/* Note that we get destroy notifies both from SubstructureNotify on
* our window and StructureNotify on socket->plug_window
*/
+ if (priv->socket_window && xdwe->window == priv->socket_window)
+ priv->socket_window = None;
+
if (priv->plug_window && (xdwe->window == priv->plug_window))
{
g_object_ref (xembed);
g_signal_emit (xembed, signals[PLUG_REMOVED], 0);
+ priv->plug_window = None;
na_xembed_end_embedding (xembed);
g_object_unref (xembed);
}
@@ -631,6 +667,7 @@ xembed_filter_func (MetaX11Display *x11_display,
{
g_object_ref (xembed);
g_signal_emit (xembed, signals[PLUG_REMOVED], 0);
+ priv->old_parent = None;
na_xembed_end_embedding (xembed);
g_object_unref (xembed);
}
@@ -696,7 +733,7 @@ na_xembed_finalize (GObject *object)
if (priv->x11_display && priv->event_func_id)
meta_x11_display_remove_event_func (priv->x11_display, priv->event_func_id);
- if (priv->plug_window)
+ if (priv->plug_window || priv->socket_window)
na_xembed_end_embedding (xembed);
G_OBJECT_CLASS (na_xembed_parent_class)->finalize (object);

View file

@ -0,0 +1,90 @@
From: =?utf-8?b?Ik1hcmNvIFRyZXZpc2FuIChUcmV2acOxbyki?= <mail@3v1n0.net>
Date: Wed, 1 May 2024 22:34:58 +0200
Subject: tray/na-xembed: Use XShape to remove input on socket window
We don't want this window to take any input as, a part from blocking the
events on the shell representation itself, they may potentially make the
plugged window to do anything with the event is processing (such as
showing tooltips). And we don't want this since we only want to send to
those windows only the synthetic events that we explicitly control.
This was already the case before of commit ab60902058 but a similar
approach was not replicated, leading to input events being fully
processed from tray icons plugs.
It requires adding an explicit build dependency on Xext, but this is
something that mutter already depends on so not really a new dependency
Origin: https://gitlab.gnome.org/3v1n0/gnome-shell/-/commits/tray-offscreen-xwindows
Bug: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7613
Bug-Ubuntu: https://bugs.launchpad.net/bugs/2012388
---
meson.build | 1 +
src/tray/meson.build | 2 +-
src/tray/na-xembed.c | 15 +++++++++++++++
3 files changed, 17 insertions(+), 1 deletion(-)
diff --git a/meson.build b/meson.build
index 03a3b2a..3d0f5e5 100644
--- a/meson.build
+++ b/meson.build
@@ -93,6 +93,7 @@ have_x11 = mutter_dep.get_variable('have_x11') == 'true'
have_x11_client = mutter_dep.get_variable('have_x11_client') == 'true'
if have_x11_client or have_x11
x11_dep = dependency('x11')
+ xext_dep = dependency('xext')
xfixes_dep = dependency('xfixes')
endif
diff --git a/src/tray/meson.build b/src/tray/meson.build
index 2fc73f3..c91e940 100644
--- a/src/tray/meson.build
+++ b/src/tray/meson.build
@@ -9,6 +9,6 @@ tray_sources = [
libtray = static_library('tray', tray_sources,
c_args: ['-DG_LOG_DOMAIN="notification_area"'],
- dependencies: [mutter_dep, mtk_dep, xfixes_dep],
+ dependencies: [mutter_dep, mtk_dep, xfixes_dep, xext_dep],
include_directories: conf_inc
)
diff --git a/src/tray/na-xembed.c b/src/tray/na-xembed.c
index 75af21a..1be1e9d 100644
--- a/src/tray/na-xembed.c
+++ b/src/tray/na-xembed.c
@@ -24,6 +24,7 @@
#include "na-xembed.h"
#include <mtk/mtk-x11.h>
+#include <X11/extensions/shape.h>
#include <X11/extensions/Xfixes.h>
#include <X11/Xlib.h>
#include <X11/Xutil.h>
@@ -362,6 +363,7 @@ na_xembed_add_window (NaXembed *xembed,
{
XSetWindowAttributes socket_attrs;
XWindowAttributes plug_attrs;
+ int shape_major, shape_minor;
int result;
result = XGetWindowAttributes (xdisplay, priv->plug_window, &plug_attrs);
@@ -407,6 +409,19 @@ na_xembed_add_window (NaXembed *xembed,
priv->plug_window,
priv->socket_window,
0, 0);
+
+ /* Set an empty input shape on the window so that the socket does not
+ * get any input. Without this we the tray may still get events and for
+ * example show tooltips on hover which we don't want.
+ * This is the quickest way to achieve this, without having to deal these
+ * windows with specific code in mutter.
+ */
+ if (XShapeQueryExtension (xdisplay, &shape_major, &shape_minor))
+ {
+ XShapeSelectInput (xdisplay, priv->socket_window, NoEventMask);
+ XShapeCombineRectangles (xdisplay, priv->socket_window, ShapeInput,
+ 0, 0, NULL, 0, ShapeSet, 0);
+ }
}
priv->have_size = FALSE;

View file

@ -0,0 +1,20 @@
From: =?utf-8?b?Ik1hcmNvIFRyZXZpc2FuIChUcmV2acOxbyki?= <mail@3v1n0.net>
Date: Wed, 1 May 2024 05:54:31 +0200
Subject: tray/na-xembed: Use proper indentation style header
Origin: https://gitlab.gnome.org/3v1n0/gnome-shell/-/commits/tray-offscreen-xwindows
Bug-Ubuntu: https://bugs.launchpad.net/bugs/2012388
---
src/tray/na-xembed.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/tray/na-xembed.c b/src/tray/na-xembed.c
index 398669c..4ef3666 100644
--- a/src/tray/na-xembed.c
+++ b/src/tray/na-xembed.c
@@ -1,4 +1,4 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/* Copyright (C) 2022 Red Hat Inc.
*
* This library is free software; you can redistribute it and/or

69
debian/rules vendored Executable file
View file

@ -0,0 +1,69 @@
#!/usr/bin/make -f
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
export DEB_LDFLAGS_MAINT_APPEND = -Wl,-O1 -Wl,-z,defs
%:
dh $@ --with bash_completion
CONFFLAGS =
ifeq ($(DEB_HOST_ARCH_OS),linux)
CONFFLAGS += \
-Dnetworkmanager=true \
-Dsystemd=true
endif
ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
CONFFLAGS += -Dtests=true
else
CONFFLAGS += -Dtests=false
endif
ifneq ($(DEB_BUILD_ARCH),$(DEB_HOST_ARCH))
CONFFLAGS += --cross-file=$(DEB_HOST_GNU_TYPE)-gobject-introspection.ini
endif
override_dh_auto_configure:
dh_auto_configure -- \
--libdir=/usr/lib \
-Dportal_helper=false \
-Dextensions-tool:bash_completion=enabled \
$(CONFFLAGS)
override_dh_makeshlibs:
dh_makeshlibs -X/usr/lib/gnome-shell/
override_dh_shlibdeps:
# gnome-shell uses mutters private mutter-clutter-1.0.so etc.
dh_shlibdeps -l"usr/lib/$(DEB_HOST_MULTIARCH)/mutter"
# Upstream test timeouts assume an otherwise unloaded system, but that
# isn't necessarily the case for a porterbox or multiple parallel builds.
# Keep the timeout reasonably short for architectures where interactive
# debugging is more likely, but extend it a lot on architectures that might
# be very slow or using qemu for buildds.
ifneq ($(filter amd64 i386,$(DEB_HOST_ARCH_CPU)),)
test_timeout_multiplier = 3
else
test_timeout_multiplier = 20
endif
meson_test_options = --timeout-multiplier $(test_timeout_multiplier)
ifneq ($(filter mips64el riscv64,$(DEB_HOST_ARCH_CPU)),)
# gnome-shell on mips64el works on a real GPU (in practice usually an
# AMD GPU), but crashes when using llvmpipe or softpipe, which is all that
# is available on the buildds, so we only run the unit tests at build time
# and skip the tests that would run the whole Shell. See discussion in
# https://salsa.debian.org/gnome-team/gnome-shell/-/merge_requests/71
meson_test_options += --no-suite shell
endif
override_dh_auto_test:
ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
env XDG_CACHE_HOME="$(shell mktemp -d -t cache-XXXXXXXX)" \
dbus-run-session xvfb-run -a dh_auto_test -- $(meson_test_options)
endif
override_dh_gnome_clean:

3
debian/salsa-ci.yml vendored Normal file
View file

@ -0,0 +1,3 @@
---
include:
- https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/recipes/debian.yml

1
debian/shlibs.local vendored Normal file
View file

@ -0,0 +1 @@
libgnome-bluetooth-applet 0 gnome-bluetooth (>= 3.0.0)

1
debian/source/format vendored Normal file
View file

@ -0,0 +1 @@
3.0 (quilt)

0
debian/source/lintian-overrides vendored Normal file
View file

45
debian/source_gnome-shell.py vendored Normal file
View file

@ -0,0 +1,45 @@
from apport.hookutils import *
import os
def is_process_running(proc):
'''
Determine if process has a registered process id
'''
log = command_output(['pidof', proc])
if not log or log[:5] == "Error" or len(log)<1:
return False
return True
def add_info(report):
attach_related_packages(report, ['mutter-common'])
attach_gsettings_package(report, 'gnome-shell-common')
attach_gsettings_package(report, 'gsettings-desktop-schemas')
attach_gsettings_package(report, 'mutter-common')
attach_gsettings_schema(report, 'org.gnome.settings-daemon.plugins.color')
attach_gsettings_schema(report, 'org.gnome.settings-daemon.peripherals.touchscreen')
try:
monitors = os.path.join(os.environ['XDG_CONFIG_HOME'], 'monitors.xml')
except KeyError:
monitors = os.path.expanduser('~/.config/monitors.xml')
attach_file_if_exists(report, monitors, 'monitors.xml')
result = ''
dm_list = apport.hookutils.command_output(['sh', '-c',
'apt-cache search \"display manager\" | cut -d \' \' -f1 | grep -E \"dm$|^gdm3?\\b\"'])
for line in dm_list.split('\n'):
if (is_process_running(line)):
result = line
break
report['DisplayManager'] = result
if command_available('journalctl') and os.path.exists('/run/systemd/system'):
report['ShellJournal'] = command_output(['journalctl',
'/usr/bin/gnome-shell',
'-b', '-o', 'short-monotonic',
'--lines', '3000'])

6
debian/upstream/metadata vendored Normal file
View file

@ -0,0 +1,6 @@
---
Name: GNOME Shell
Bug-Database: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues
Bug-Submit: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/new
Repository: https://gitlab.gnome.org/GNOME/gnome-shell.git
Repository-Browse: https://gitlab.gnome.org/GNOME/gnome-shell/

4
debian/watch vendored Normal file
View file

@ -0,0 +1,4 @@
version=4
opts="searchmode=plain, uversionmangle=s/\.(alpha|beta|rc)/~$1/, downloadurlmangle=s|cache.json||" \
https://download.gnome.org/sources/@PACKAGE@/cache.json \
[\d.]+/@PACKAGE@-([\d.]+\.?(?:beta|rc)?[\d.]*)@ARCHIVE_EXT@