import gnome-extensions-app-40.0-3.el9

c9 imports/c9/gnome-extensions-app-40.0-3.el9
CentOS Sources 3 years ago committed by MSVSphere Packaging Team
commit 2a51943fa5

1
.gitignore vendored

@ -0,0 +1 @@
SOURCES/gnome-shell-40.0.tar.xz

@ -0,0 +1 @@
85e3e1108c0f2cf95be52268ac47c449e06ad0b3 SOURCES/gnome-shell-40.0.tar.xz

@ -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

@ -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
Loading…
Cancel
Save