commit
2a51943fa5
@ -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…
Reference in new issue