summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2024-08-05 02:12:09 +0000
committerCoprDistGit <infra@openeuler.org>2024-08-05 02:12:09 +0000
commit66085212ca0bd520e6a5bd2e0cdaa5994807d6cb (patch)
treede797976c99c3b20b3f15a37e745c084e8ae63dd
parentda149ebc19c2a0d2de306bba0799e793f20ca09c (diff)
automatic import of gnome-extensions-appopeneuler24.03_LTS
-rw-r--r--.gitignore1
-rw-r--r--0001-extensions-app-Add-compatibility-with-GNOME-3.34.patch168
-rw-r--r--gnome-extensions-app.spec123
-rw-r--r--sources1
4 files changed, 293 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..2269199 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/gnome-shell-40.0.tar.xz
diff --git a/0001-extensions-app-Add-compatibility-with-GNOME-3.34.patch b/0001-extensions-app-Add-compatibility-with-GNOME-3.34.patch
new file mode 100644
index 0000000..173bcf5
--- /dev/null
+++ b/0001-extensions-app-Add-compatibility-with-GNOME-3.34.patch
@@ -0,0 +1,168 @@
+From 42d5ff3ec2d18d7239eac8a6ce0544d4f69efab3 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
+Date: Tue, 31 Mar 2020 19:53:50 +0200
+Subject: [PATCH] extensions-app: Add compatibility with GNOME 3.34
+
+We are currently relying on 3.36 changes:
+
+ - the addition of the UserExtensionsEnabled property
+
+ - the separate org.gnome.Shell.Extensions name to expose
+ the interface
+
+In order to work with the previous stable release as well, we can
+fall back to connecting to gnome-shell itself and changing the
+underlying GSettings directly.
+---
+ subprojects/extensions-app/data/meson.build | 2 +
+ .../data/org.gnome.Extensions.gschema.xml | 12 +++++
+ subprojects/extensions-app/js/main.js | 47 +++++++++++++++----
+ subprojects/extensions-app/meson.build | 1 +
+ 4 files changed, 54 insertions(+), 8 deletions(-)
+ create mode 100644 subprojects/extensions-app/data/org.gnome.Extensions.gschema.xml
+
+diff --git a/subprojects/extensions-app/data/meson.build b/subprojects/extensions-app/data/meson.build
+index 0568fafc8..e9399e3b6 100644
+--- a/subprojects/extensions-app/data/meson.build
++++ b/subprojects/extensions-app/data/meson.build
+@@ -33,5 +33,7 @@ configure_file(
+ install_dir: servicedir,
+ )
+
++install_data(app_id + '.gschema.xml', install_dir: schemadir)
++
+ subdir('icons')
+ subdir('metainfo')
+diff --git a/subprojects/extensions-app/data/org.gnome.Extensions.gschema.xml b/subprojects/extensions-app/data/org.gnome.Extensions.gschema.xml
+new file mode 100644
+index 000000000..d70d4bd4c
+--- /dev/null
++++ b/subprojects/extensions-app/data/org.gnome.Extensions.gschema.xml
+@@ -0,0 +1,12 @@
++<schemalist>
++ <schema id="org.gnome.shell" path="/org/gnome/shell/">
++ <key name="disable-user-extensions" type="b">
++ <default>false</default>
++ <summary>Disable user extensions</summary>
++ <description>
++ Disable all extensions the user has enabled without affecting
++ the “enabled-extension” setting.
++ </description>
++ </key>
++ </schema>
++</schemalist>
+diff --git a/subprojects/extensions-app/js/main.js b/subprojects/extensions-app/js/main.js
+index d25df9c57..f5ac2e564 100644
+--- a/subprojects/extensions-app/js/main.js
++++ b/subprojects/extensions-app/js/main.js
+@@ -47,6 +47,10 @@ class Application extends Gtk.Application {
+ return this._shellProxy;
+ }
+
++ get legacyMode() {
++ return this._legacyMode;
++ }
++
+ vfunc_activate() {
+ this._shellProxy.CheckForUpdatesRemote();
+ this._window.present();
+@@ -69,6 +73,13 @@ class Application extends Gtk.Application {
+ this._shellProxy = new GnomeShellProxy(Gio.DBus.session,
+ 'org.gnome.Shell.Extensions', '/org/gnome/Shell/Extensions');
+
++ this._legacyMode = this._shellProxy.g_name_owner === null;
++
++ if (this._legacyMode) {
++ this._shellProxy = new GnomeShellProxy(Gio.DBus.session,
++ 'org.gnome.Shell', '/org/gnome/Shell');
++ }
++
+ this._window = new ExtensionsWindow({ application: this });
+ }
+ });
+@@ -89,6 +100,10 @@ var ExtensionsWindow = GObject.registerClass({
+ _init(params) {
+ super._init(params);
+
++ this._settings = this.application.legacyMode
++ ? new Gio.Settings({ schema_id: 'org.gnome.shell' })
++ : null;
++
+ this._updatesCheckId = 0;
+
+ this._exporter = new Shew.WindowExporter({ window: this });
+@@ -111,7 +126,12 @@ var ExtensionsWindow = GObject.registerClass({
+ });
+ action.connect('activate', toggleState);
+ action.connect('change-state', (a, state) => {
+- this._shellProxy.UserExtensionsEnabled = state.get_boolean();
++ const value = state.get_boolean();
++
++ if (this._settings)
++ this._settings.set_boolean('disable-user-extensions', !value);
++ else
++ this._shellProxy.UserExtensionsEnabled = value;
+ });
+ this.add_action(action);
+
+@@ -124,8 +144,13 @@ var ExtensionsWindow = GObject.registerClass({
+ this._shellProxy.connectSignal('ExtensionStateChanged',
+ this._onExtensionStateChanged.bind(this));
+
+- this._shellProxy.connect('g-properties-changed',
+- this._onUserExtensionsEnabledChanged.bind(this));
++ if (this._settings) {
++ this._settings.connect('changed::disable-user-extensions',
++ this._onUserExtensionsEnabledChanged.bind(this));
++ } else {
++ this._shellProxy.connect('g-properties-changed',
++ this._onUserExtensionsEnabledChanged.bind(this));
++ }
+ this._onUserExtensionsEnabledChanged();
+
+ this._scanExtensions();
+@@ -166,9 +191,13 @@ var ExtensionsWindow = GObject.registerClass({
+ }
+ }
+
+- this._shellProxy.OpenExtensionPrefsRemote(uuid,
+- this._exportedHandle,
+- { modal: new GLib.Variant('b', true) });
++ if (this.application.legacyMode) {
++ this._shellProxy.LaunchExtensionPrefsRemote(uuid);
++ } else {
++ this._shellProxy.OpenExtensionPrefsRemote(uuid,
++ this._exportedHandle,
++ { modal: new GLib.Variant('b', true) });
++ }
+ }
+
+ _showAbout() {
+@@ -228,8 +257,10 @@ var ExtensionsWindow = GObject.registerClass({
+
+ _onUserExtensionsEnabledChanged() {
+ let action = this.lookup_action('user-extensions-enabled');
+- action.set_state(
+- new GLib.Variant('b', this._shellProxy.UserExtensionsEnabled));
++ const newState = this._settings
++ ? !this._settings.get_boolean('disable-user-extensions')
++ : this._shellProxy.UserExtensionsEnabled;
++ action.set_state(new GLib.Variant('b', newState));
+ }
+
+ _onExtensionStateChanged(proxy, senderName, [uuid, newState]) {
+diff --git a/subprojects/extensions-app/meson.build b/subprojects/extensions-app/meson.build
+index 88536236a..ebf3da942 100644
+--- a/subprojects/extensions-app/meson.build
++++ b/subprojects/extensions-app/meson.build
+@@ -34,6 +34,7 @@ icondir = join_paths(datadir, 'icons')
+ localedir = join_paths(datadir, 'locale')
+ metainfodir = join_paths(datadir, 'metainfo')
+ servicedir = join_paths(datadir, 'dbus-1', 'services')
++schemadir = join_paths(datadir, 'glib-2.0', 'schemas')
+
+ gjs = find_program('gjs')
+ appstream_util = find_program('appstream-util', required: false)
+--
+2.25.1
+
diff --git a/gnome-extensions-app.spec b/gnome-extensions-app.spec
new file mode 100644
index 0000000..7b3d51a
--- /dev/null
+++ b/gnome-extensions-app.spec
@@ -0,0 +1,123 @@
+%global _vpath_srcdir subprojects/extensions-app
+%global source_name gnome-shell
+%global tarball_version %%(echo %{version} | tr '~' '.')
+
+Name: gnome-extensions-app
+Version: 40.0
+Release: 3%{?dist}
+Summary: Manage GNOME Shell extensions
+
+License: GPLv2+
+URL: https://gitlab.gnome.org/GNOME/%{source_name}
+Source0: https://download.gnome.org/sources/%{source_name}/40/%{source_name}-%{tarball_version}.tar.xz
+
+Patch0: 0001-extensions-app-Add-compatibility-with-GNOME-3.34.patch
+
+BuildRequires: gcc
+BuildRequires: gettext
+BuildRequires: meson
+BuildRequires: git
+
+BuildRequires: pkgconfig(glib-2.0)
+BuildRequires: pkgconfig(gtk4)
+BuildRequires: pkgconfig(gobject-introspection-1.0)
+BuildRequires: gjs
+BuildRequires: desktop-file-utils
+BuildRequires: libappstream-glib
+
+Requires: gjs%{_isa}
+
+%define exec_name gnome-extensions-app
+%define bus_name org.gnome.Extensions
+
+%description
+GNOME Extensions is an application for configuring and removing
+GNOME Shell extensions.
+
+
+%prep
+%setup -q -n %{source_name}-%{tarball_version}
+
+%if 0%{?flatpak}
+%patch0 -p1
+%endif
+
+%{_vpath_srcdir}/generate-translations.sh
+
+
+%build
+%meson
+%meson_build
+
+%check
+%meson_test
+desktop-file-validate %{buildroot}%{_datadir}/applications/%{bus_name}.desktop
+
+
+%install
+%meson_install
+
+%find_lang %{name}
+
+rm -rf %{buildroot}/%{_datadir}/%{name}/gir-1.0
+
+%files -f %{name}.lang
+%license COPYING
+%{_bindir}/%{exec_name}
+%{_datadir}/applications/%{bus_name}.desktop
+%{_datadir}/dbus-1/services/%{bus_name}.service
+%if 0%{?flatpak}
+%{_datadir}/glib-2.0/schemas/%{bus_name}.gschema.xml
+%endif
+%{_datadir}/metainfo/%{bus_name}.metainfo.xml
+%{_datadir}/icons/hicolor/scalable/apps/%{bus_name}.svg
+%{_datadir}/icons/hicolor/scalable/apps/%{bus_name}.Devel.svg
+%{_datadir}/icons/hicolor/symbolic/apps/%{bus_name}-symbolic.svg
+%{_datadir}/%{name}/
+%{_libdir}/%{name}/
+
+
+%changelog
+* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 40.0-3
+- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
+ Related: rhbz#1991688
+
+* Thu Apr 15 2021 Mohan Boddu <mboddu@redhat.com> - 40.0-2
+- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
+
+* Sun Mar 28 2021 Kalev Lember <klember@redhat.com> - 40.0-1
+- Update to 40.0
+
+* Mon Mar 15 2021 Florian Müllner <fmuellner@redhat.com> - 40.0~rc-1
+- Update to 40.rc
+
+* Thu Mar 11 2021 Florian Müllner <fmuellner@redhat.com> - 40.0~beta-1
+- Update to 40.beta
+
+* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 3.38.0-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
+
+* Tue Sep 15 2020 Florian Müllner <fmuellner@redhat.com> - 3.38.0-1
+- Update to 3.38.0
+
+* Sat Aug 01 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.37.3-3
+- Second attempt - Rebuilt for
+ https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
+
+* Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.37.3-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
+
+* Tue Jul 07 2020 Florian Müllner <fmuellner@gnome.org> - 3.37.2-1
+- Update to 3.37.3
+
+* Wed Jun 03 2020 Florian Müllner <fmuellner@gnome.org> - 3.37.2-1
+- Update to 3.37.2
+
+* Thu Apr 30 2020 Florian Müllner <fmuellner@gnome.org> - 3.37.1-1
+- Update to 3.37.1
+
+* Wed Apr 01 2020 Florian Müllner <fmuellner@gnome.org> - 3.36.1-1
+- Make flatpak build compatible with F31
+
+* Tue Mar 31 2020 Florian Müllner <fmuellner@gnome.org> - 3.36.1-1
+- Build initial version
diff --git a/sources b/sources
new file mode 100644
index 0000000..d4daa8c
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+e5f8d7af0965417969cb9da0b4495090 gnome-shell-40.0.tar.xz