mirror of
https://github.com/terrapkg/packages.git
synced 2026-05-31 09:01:55 +00:00
* [f41] Add: Patched switcherooctl-control with Discrete GPU detection
* [f41] Add: Patched gnome-shell and kf6-kio for switcherooctl-control discrete patch
(cherry picked from commit 453beaff43)
Co-authored-by: Kyle Gospodnetich <me@kylegospodneti.ch>
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
From ff73f820b1398e5d60b8984b0003db46ad70b8ec Mon Sep 17 00:00:00 2001
|
||||
From: Benjamin Berg <bberg@redhat.com>
|
||||
Date: Wed, 28 Apr 2021 16:50:03 +0200
|
||||
Subject: [PATCH] gdm: Work around failing fingerprint auth
|
||||
|
||||
On Fedora we have the problem that fingerprint auth fails immediately if
|
||||
the PAM configuration has not been updated and no prints are enrolled.
|
||||
|
||||
So, consider a verification failure within one second to be a service
|
||||
failure instead.
|
||||
---
|
||||
js/gdm/util.js | 18 ++++++++++++++++++
|
||||
1 file changed, 18 insertions(+)
|
||||
|
||||
diff --git a/js/gdm/util.js b/js/gdm/util.js
|
||||
index 97df6d687e..371953cb25 100644
|
||||
--- a/js/gdm/util.js
|
||||
+++ b/js/gdm/util.js
|
||||
@@ -109,6 +109,7 @@ export class ShellUserVerifier extends Signals.EventEmitter {
|
||||
this._defaultService = null;
|
||||
this._preemptingService = null;
|
||||
this._fingerprintReaderType = FingerprintReaderType.NONE;
|
||||
+ this._fprintStartTime = -1;
|
||||
|
||||
this._messageQueue = [];
|
||||
this._messageQueueTimeoutId = 0;
|
||||
@@ -669,6 +670,10 @@ export class ShellUserVerifier extends Signals.EventEmitter {
|
||||
this._hold.acquire();
|
||||
try {
|
||||
this._activeServices.add(serviceName);
|
||||
+
|
||||
+ if (serviceName == FINGERPRINT_SERVICE_NAME)
|
||||
+ this._fprintStartTime = GLib.get_monotonic_time();
|
||||
+
|
||||
if (this._userName) {
|
||||
await this._userVerifier.call_begin_verification_for_user(
|
||||
serviceName, this._userName, this._cancellable);
|
||||
@@ -763,6 +768,7 @@ export class ShellUserVerifier extends Signals.EventEmitter {
|
||||
const cancellable = this._cancellable;
|
||||
this._fingerprintFailedId = GLib.timeout_add(GLib.PRIORITY_DEFAULT,
|
||||
FINGERPRINT_ERROR_TIMEOUT_WAIT, () => {
|
||||
+ log("Generating _verificationFailed!");
|
||||
this._fingerprintFailedId = 0;
|
||||
if (!cancellable.is_cancelled())
|
||||
this._verificationFailed(serviceName, false);
|
||||
@@ -829,6 +835,18 @@ export class ShellUserVerifier extends Signals.EventEmitter {
|
||||
if (serviceName === FINGERPRINT_SERVICE_NAME) {
|
||||
if (this._fingerprintFailedId)
|
||||
GLib.source_remove(this._fingerprintFailedId);
|
||||
+
|
||||
+ // On Fedora we have the problem that fingerprint auth fails
|
||||
+ // immediately if the PAM configuration has not been updated and no
|
||||
+ // prints are enrolled.
|
||||
+ // So, consider a verification failure within one second to be a service
|
||||
+ // failure instead.
|
||||
+ if (this._fprintStartTime > GLib.get_monotonic_time() - GLib.USEC_PER_SEC) {
|
||||
+ log("Fingerprint service failed almost immediately, considering it unavailable.");
|
||||
+ log("Please fix your configuration by running: authselect select --force sssd with-fingerprint with-silent-lastlog");
|
||||
+ this._onServiceUnavailable(this._client, serviceName, null);
|
||||
+ return;
|
||||
+ }
|
||||
}
|
||||
|
||||
// For Not Listed / enterprise logins, immediately reset
|
||||
--
|
||||
2.43.2
|
||||
|
||||
+35
@@ -0,0 +1,35 @@
|
||||
From 78a733bae62f8af15f0771d7efde55473f295e46 Mon Sep 17 00:00:00 2001
|
||||
From: Ray Strode <rstrode@redhat.com>
|
||||
Date: Wed, 16 Aug 2023 18:46:54 -0400
|
||||
Subject: [PATCH 1/3] status/keyboard: Add a catch around reload call
|
||||
|
||||
Now that system input settings can get used in the user session
|
||||
they're getting seen by the tests and the tests are complaining:
|
||||
|
||||
Unhandled promise rejection. To suppress this warning, add an
|
||||
error handler to your promise chain with .catch() or a try-catch block
|
||||
around your await expression.
|
||||
|
||||
This commit adds the catch it's asking for.
|
||||
---
|
||||
js/ui/status/keyboard.js | 4 +++-
|
||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/js/ui/status/keyboard.js b/js/ui/status/keyboard.js
|
||||
index cfc0a01f6b..4ef2f355d3 100644
|
||||
--- a/js/ui/status/keyboard.js
|
||||
+++ b/js/ui/status/keyboard.js
|
||||
@@ -204,7 +204,9 @@ class InputSourceSystemSettings extends InputSourceSettings {
|
||||
this._options = '';
|
||||
this._model = '';
|
||||
|
||||
- this._reload();
|
||||
+ this._reload().catch(error => {
|
||||
+ logError(error, 'Could not reload system input settings');
|
||||
+ });
|
||||
|
||||
Gio.DBus.system.signal_subscribe(this._BUS_NAME,
|
||||
this._BUS_PROPS_IFACE,
|
||||
--
|
||||
2.43.1
|
||||
|
||||
+136
@@ -0,0 +1,136 @@
|
||||
From 0c0cc4ce1d3e08eba3e701d565398e01aa479ff7 Mon Sep 17 00:00:00 2001
|
||||
From: Ray Strode <rstrode@redhat.com>
|
||||
Date: Wed, 16 Aug 2023 11:13:39 -0400
|
||||
Subject: [PATCH 2/3] status/keyboard: Load keyboard from system settings if
|
||||
gsettings unconfigured
|
||||
|
||||
Right now if a user hasn't configured their input sources, the code
|
||||
falls back to
|
||||
using the current layout on Xorg and the mutter default with wayland.
|
||||
|
||||
This commit changes the code to instead fall back to using the system
|
||||
default (as configured by localed).
|
||||
---
|
||||
js/ui/status/keyboard.js | 62 +++++++++++++++++++++++++++++++---------
|
||||
1 file changed, 48 insertions(+), 14 deletions(-)
|
||||
|
||||
diff --git a/js/ui/status/keyboard.js b/js/ui/status/keyboard.js
|
||||
index 4ef2f355d3..d91eb41bc6 100644
|
||||
--- a/js/ui/status/keyboard.js
|
||||
+++ b/js/ui/status/keyboard.js
|
||||
@@ -22,6 +22,9 @@ import * as Util from '../../misc/util.js';
|
||||
export const INPUT_SOURCE_TYPE_XKB = 'xkb';
|
||||
export const INPUT_SOURCE_TYPE_IBUS = 'ibus';
|
||||
|
||||
+const DESKTOP_INPUT_SOURCES_SCHEMA = 'org.gnome.desktop.input-sources';
|
||||
+const KEY_INPUT_SOURCES = 'sources';
|
||||
+
|
||||
export const LayoutMenuItem = GObject.registerClass(
|
||||
class LayoutMenuItem extends PopupMenu.PopupBaseMenuItem {
|
||||
_init(displayName, shortName) {
|
||||
@@ -278,18 +281,16 @@ class InputSourceSystemSettings extends InputSourceSettings {
|
||||
}
|
||||
|
||||
class InputSourceSessionSettings extends InputSourceSettings {
|
||||
- constructor() {
|
||||
+ constructor(settings) {
|
||||
super();
|
||||
|
||||
- this._DESKTOP_INPUT_SOURCES_SCHEMA = 'org.gnome.desktop.input-sources';
|
||||
- this._KEY_INPUT_SOURCES = 'sources';
|
||||
this._KEY_MRU_SOURCES = 'mru-sources';
|
||||
this._KEY_KEYBOARD_OPTIONS = 'xkb-options';
|
||||
this._KEY_KEYBOARD_MODEL = 'xkb-model';
|
||||
this._KEY_PER_WINDOW = 'per-window';
|
||||
|
||||
- this._settings = new Gio.Settings({schema_id: this._DESKTOP_INPUT_SOURCES_SCHEMA});
|
||||
- this._settings.connect(`changed::${this._KEY_INPUT_SOURCES}`, this._emitInputSourcesChanged.bind(this));
|
||||
+ this._settings = settings;
|
||||
+ this._settings.connect(`changed::${KEY_INPUT_SOURCES}`, this._emitInputSourcesChanged.bind(this));
|
||||
this._settings.connect(`changed::${this._KEY_KEYBOARD_OPTIONS}`, this._emitKeyboardOptionsChanged.bind(this));
|
||||
this._settings.connect(`changed::${this._KEY_KEYBOARD_MODEL}`, this._emitKeyboardModelChanged.bind(this));
|
||||
this._settings.connect(`changed::${this._KEY_PER_WINDOW}`, this._emitPerWindowChanged.bind(this));
|
||||
@@ -308,7 +309,7 @@ class InputSourceSessionSettings extends InputSourceSettings {
|
||||
}
|
||||
|
||||
get inputSources() {
|
||||
- return this._getSourcesList(this._KEY_INPUT_SOURCES);
|
||||
+ return this._getSourcesList(KEY_INPUT_SOURCES);
|
||||
}
|
||||
|
||||
get mruSources() {
|
||||
@@ -363,13 +364,6 @@ export class InputSourceManager extends Signals.EventEmitter {
|
||||
Meta.KeyBindingFlags.IS_REVERSED,
|
||||
Shell.ActionMode.ALL,
|
||||
this._switchInputSource.bind(this));
|
||||
- if (Main.sessionMode.isGreeter)
|
||||
- this._settings = new InputSourceSystemSettings();
|
||||
- else
|
||||
- this._settings = new InputSourceSessionSettings();
|
||||
- this._settings.connect('input-sources-changed', this._inputSourcesChanged.bind(this));
|
||||
- this._settings.connect('keyboard-options-changed', this._keyboardOptionsChanged.bind(this));
|
||||
- this._settings.connect('keyboard-model-changed', this._keyboardModelChanged.bind(this));
|
||||
|
||||
this._xkbInfo = KeyboardManager.getXkbInfo();
|
||||
this._keyboardManager = KeyboardManager.getKeyboardManager();
|
||||
@@ -381,16 +375,56 @@ export class InputSourceManager extends Signals.EventEmitter {
|
||||
this._ibusManager.connect('property-updated', this._ibusPropertyUpdated.bind(this));
|
||||
this._ibusManager.connect('set-content-type', this._ibusSetContentType.bind(this));
|
||||
|
||||
+ this._inputSettings = new Gio.Settings({schema_id: DESKTOP_INPUT_SOURCES_SCHEMA});
|
||||
+ this._setupInputSettings();
|
||||
+
|
||||
global.display.connect('modifiers-accelerator-activated', this._modifiersSwitcher.bind(this));
|
||||
|
||||
this._sourcesPerWindow = false;
|
||||
this._focusWindowNotifyId = 0;
|
||||
- this._settings.connect('per-window-changed', this._sourcesPerWindowChanged.bind(this));
|
||||
this._sourcesPerWindowChanged();
|
||||
this._disableIBus = false;
|
||||
this._reloading = false;
|
||||
}
|
||||
|
||||
+ _sessionHasNoInputSettings() {
|
||||
+ return this._inputSettings.get_user_value(KEY_INPUT_SOURCES) === null;
|
||||
+ }
|
||||
+
|
||||
+ _reloadInputSettings() {
|
||||
+ const hadNoSessionInputSettings = this._hasNoSessionInputSettings;
|
||||
+
|
||||
+ if (Main.sessionMode.isGreeter)
|
||||
+ this._hasNoSessionInputSettings = true;
|
||||
+ else
|
||||
+ this._hasNoSessionInputSettings = this._sessionHasNoInputSettings();
|
||||
+
|
||||
+ if (this._settings && hadNoSessionInputSettings === this._hasNoSessionInputSettings)
|
||||
+ return;
|
||||
+
|
||||
+ this._settings?.disconnectObject(this);
|
||||
+
|
||||
+ if (this._hasNoSessionInputSettings)
|
||||
+ this._settings = new InputSourceSystemSettings();
|
||||
+ else
|
||||
+ this._settings = new InputSourceSessionSettings(this._inputSettings);
|
||||
+
|
||||
+ this._settings.connectObject(
|
||||
+ 'input-sources-changed', this._inputSourcesChanged.bind(this),
|
||||
+ 'keyboard-options-changed', this._keyboardOptionsChanged.bind(this),
|
||||
+ 'keyboard-model-changed', this._keyboardModelChanged.bind(this),
|
||||
+ 'per-window-changed', this._sourcesPerWindowChanged.bind(this),
|
||||
+ this);
|
||||
+ this.reload();
|
||||
+ }
|
||||
+
|
||||
+ _setupInputSettings() {
|
||||
+ if (!Main.sessionMode.isGreeter)
|
||||
+ this._inputSettings.connect(`changed::${KEY_INPUT_SOURCES}`, this._reloadInputSettings.bind(this));
|
||||
+
|
||||
+ this._reloadInputSettings();
|
||||
+ }
|
||||
+
|
||||
reload() {
|
||||
this._reloading = true;
|
||||
this._keyboardManager.setKeyboardOptions(this._settings.keyboardOptions);
|
||||
--
|
||||
2.43.1
|
||||
|
||||
+128
@@ -0,0 +1,128 @@
|
||||
From d060baeb69a2a7d80fe403fc8eec90e20aa6cb7f Mon Sep 17 00:00:00 2001
|
||||
From: Ray Strode <rstrode@redhat.com>
|
||||
Date: Wed, 16 Aug 2023 14:09:50 -0400
|
||||
Subject: [PATCH 3/3] status/keyboard: Use gnome-desktop API for getting
|
||||
default input sources list
|
||||
|
||||
At the moment, gnome-shell tries to figure out the default input sources
|
||||
from localed. It fails to take into account the system locale and input
|
||||
methods.
|
||||
|
||||
This commit switches it to use a new function in gnome-desktop,
|
||||
gnome_get_default_input_sources, which does most of the heavy
|
||||
lifting itself, instead.
|
||||
---
|
||||
js/ui/status/keyboard.js | 59 ++++++++++++++++++----------------------
|
||||
1 file changed, 27 insertions(+), 32 deletions(-)
|
||||
|
||||
diff --git a/js/ui/status/keyboard.js b/js/ui/status/keyboard.js
|
||||
index d91eb41bc6..19c36031f6 100644
|
||||
--- a/js/ui/status/keyboard.js
|
||||
+++ b/js/ui/status/keyboard.js
|
||||
@@ -3,6 +3,7 @@
|
||||
import Clutter from 'gi://Clutter';
|
||||
import Gio from 'gi://Gio';
|
||||
import GLib from 'gi://GLib';
|
||||
+import GnomeDesktop from 'gi://GnomeDesktop';
|
||||
import GObject from 'gi://GObject';
|
||||
import IBus from 'gi://IBus';
|
||||
import Meta from 'gi://Meta';
|
||||
@@ -25,6 +26,8 @@ export const INPUT_SOURCE_TYPE_IBUS = 'ibus';
|
||||
const DESKTOP_INPUT_SOURCES_SCHEMA = 'org.gnome.desktop.input-sources';
|
||||
const KEY_INPUT_SOURCES = 'sources';
|
||||
|
||||
+Gio._promisify(GnomeDesktop, 'get_default_input_sources');
|
||||
+
|
||||
export const LayoutMenuItem = GObject.registerClass(
|
||||
class LayoutMenuItem extends PopupMenu.PopupBaseMenuItem {
|
||||
_init(displayName, shortName) {
|
||||
@@ -202,9 +205,9 @@ class InputSourceSystemSettings extends InputSourceSettings {
|
||||
this._BUS_IFACE = 'org.freedesktop.locale1';
|
||||
this._BUS_PROPS_IFACE = 'org.freedesktop.DBus.Properties';
|
||||
|
||||
- this._layouts = '';
|
||||
- this._variants = '';
|
||||
- this._options = '';
|
||||
+ this._inputSourceIds = [];
|
||||
+ this._inputSourceTypes = [];
|
||||
+ this._options = [];
|
||||
this._model = '';
|
||||
|
||||
this._reload().catch(error => {
|
||||
@@ -221,30 +224,22 @@ class InputSourceSystemSettings extends InputSourceSettings {
|
||||
}
|
||||
|
||||
async _reload() {
|
||||
- let props;
|
||||
+ let inputSourceIds;
|
||||
+ let inputSourceTypes;
|
||||
+ let options;
|
||||
+ let model;
|
||||
try {
|
||||
- const result = await Gio.DBus.system.call(
|
||||
- this._BUS_NAME,
|
||||
- this._BUS_PATH,
|
||||
- this._BUS_PROPS_IFACE,
|
||||
- 'GetAll',
|
||||
- new GLib.Variant('(s)', [this._BUS_IFACE]),
|
||||
- null, Gio.DBusCallFlags.NONE, -1, null);
|
||||
- [props] = result.deepUnpack();
|
||||
+ [inputSourceIds, inputSourceTypes, options, model] =
|
||||
+ await GnomeDesktop.get_default_input_sources(null);
|
||||
} catch (e) {
|
||||
- log(`Could not get properties from ${this._BUS_NAME}`);
|
||||
+ logError(e, 'Could not get default input sources');
|
||||
return;
|
||||
}
|
||||
|
||||
- const layouts = props['X11Layout'].unpack();
|
||||
- const variants = props['X11Variant'].unpack();
|
||||
- const options = props['X11Options'].unpack();
|
||||
- const model = props['X11Model'].unpack();
|
||||
-
|
||||
- if (layouts !== this._layouts ||
|
||||
- variants !== this._variants) {
|
||||
- this._layouts = layouts;
|
||||
- this._variants = variants;
|
||||
+ if (inputSourceIds !== this._inputSourceIds ||
|
||||
+ inputSourceTypes !== this._inputSourceTypes) {
|
||||
+ this._inputSourceIds = inputSourceIds;
|
||||
+ this._inputSourceTypes = inputSourceTypes;
|
||||
this._emitInputSourcesChanged();
|
||||
}
|
||||
if (options !== this._options) {
|
||||
@@ -258,21 +253,21 @@ class InputSourceSystemSettings extends InputSourceSettings {
|
||||
}
|
||||
|
||||
get inputSources() {
|
||||
- let sourcesList = [];
|
||||
- let layouts = this._layouts.split(',');
|
||||
- let variants = this._variants.split(',');
|
||||
-
|
||||
- for (let i = 0; i < layouts.length && !!layouts[i]; i++) {
|
||||
- let id = layouts[i];
|
||||
- if (variants[i])
|
||||
- id += `+${variants[i]}`;
|
||||
- sourcesList.push({type: INPUT_SOURCE_TYPE_XKB, id});
|
||||
+ let sourcesList;
|
||||
+
|
||||
+ if (this._inputSourceIds) {
|
||||
+ sourcesList = this._inputSourceIds.map((id, index) => {
|
||||
+ return {type: this._inputSourceTypes[index], id};
|
||||
+ });
|
||||
+ } else {
|
||||
+ sourcesList = [];
|
||||
}
|
||||
+
|
||||
return sourcesList;
|
||||
}
|
||||
|
||||
get keyboardOptions() {
|
||||
- return this._options.split(',');
|
||||
+ return this._options;
|
||||
}
|
||||
|
||||
get keyboardModel() {
|
||||
--
|
||||
2.43.1
|
||||
|
||||
@@ -0,0 +1,98 @@
|
||||
From c8c05c4a142f3de9c17a9ca83692dda364abccc8 Mon Sep 17 00:00:00 2001
|
||||
From: Jan200101 <sentrycraft123@gmail.com>
|
||||
Date: Thu, 15 Feb 2024 16:05:40 +0100
|
||||
Subject: [PATCH] shell-app: Improve discrete GPU detection
|
||||
|
||||
---
|
||||
.../net.hadess.SwitcherooControl.xml | 3 +-
|
||||
src/shell-app.c | 60 +++++++++++++++++++
|
||||
2 files changed, 62 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/data/dbus-interfaces/net.hadess.SwitcherooControl.xml b/data/dbus-interfaces/net.hadess.SwitcherooControl.xml
|
||||
index e52bc1a0d25..59a889654f4 100644
|
||||
--- a/data/dbus-interfaces/net.hadess.SwitcherooControl.xml
|
||||
+++ b/data/dbus-interfaces/net.hadess.SwitcherooControl.xml
|
||||
@@ -38,7 +38,8 @@
|
||||
will contain a user-facing name for the GPU, the "Environment" (as) key will
|
||||
contain an array of even number of strings, each being an environment
|
||||
variable to set to use the GPU, followed by its value, the "Default" (b) key
|
||||
- will tag the default (usually integrated) GPU.
|
||||
+ will tag the default GPU, the "Discrete" (b) key tags if the GPU is a
|
||||
+ dedicated component.
|
||||
-->
|
||||
<property name="GPUs" type="aa{sv}" access="read"/>
|
||||
|
||||
diff --git a/src/shell-app.c b/src/shell-app.c
|
||||
index 371bc6cf762..39f220ba954 100644
|
||||
--- a/src/shell-app.c
|
||||
+++ b/src/shell-app.c
|
||||
@@ -1300,6 +1300,66 @@ apply_discrete_gpu_env (GAppLaunchContext *context,
|
||||
}
|
||||
|
||||
num_children = g_variant_n_children (variant);
|
||||
+
|
||||
+ // Check if the Default GPU is Discrete
|
||||
+ for (i = 0; i < num_children; i++)
|
||||
+ {
|
||||
+ g_autoptr(GVariant) gpu = NULL;
|
||||
+ g_autoptr(GVariant) env = NULL;
|
||||
+ g_autoptr(GVariant) default_variant = NULL;
|
||||
+ g_autoptr(GVariant) discrete_variant = NULL;
|
||||
+ g_autofree const char **env_s = NULL;
|
||||
+
|
||||
+ gpu = g_variant_get_child_value (variant, i);
|
||||
+ if (!gpu ||
|
||||
+ !g_variant_is_of_type (gpu, G_VARIANT_TYPE ("a{s*}")))
|
||||
+ continue;
|
||||
+
|
||||
+ /* Skip over non-default GPUs */
|
||||
+ default_variant = g_variant_lookup_value (gpu, "Default", NULL);
|
||||
+ if (!default_variant || !g_variant_get_boolean (default_variant))
|
||||
+ continue;
|
||||
+
|
||||
+ /* break out if default GPU is not discrete */
|
||||
+ discrete_variant = g_variant_lookup_value (gpu, "Discrete", NULL);
|
||||
+ if (!discrete_variant || !g_variant_get_boolean (discrete_variant))
|
||||
+ break;
|
||||
+
|
||||
+ // Default GPU is discrete, no need to do anything
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ // Find the first Discrete GPU
|
||||
+ for (i = 0; i < num_children; i++)
|
||||
+ {
|
||||
+ g_autoptr(GVariant) gpu = NULL;
|
||||
+ g_autoptr(GVariant) env = NULL;
|
||||
+ g_autoptr(GVariant) discrete_variant = NULL;
|
||||
+ g_autofree const char **env_s = NULL;
|
||||
+ guint j;
|
||||
+
|
||||
+ gpu = g_variant_get_child_value (variant, i);
|
||||
+ if (!gpu ||
|
||||
+ !g_variant_is_of_type (gpu, G_VARIANT_TYPE ("a{s*}")))
|
||||
+ continue;
|
||||
+
|
||||
+ /* Skip over non-discrete GPUs */
|
||||
+ discrete_variant = g_variant_lookup_value (gpu, "Discrete", NULL);
|
||||
+ if (!discrete_variant || !g_variant_get_boolean (discrete_variant))
|
||||
+ continue;
|
||||
+
|
||||
+ env = g_variant_lookup_value (gpu, "Environment", NULL);
|
||||
+ if (!env)
|
||||
+ continue;
|
||||
+
|
||||
+ env_s = g_variant_get_strv (env, NULL);
|
||||
+ for (j = 0; env_s[j] != NULL; j = j + 2)
|
||||
+ g_app_launch_context_setenv (context, env_s[j], env_s[j+1]);
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ // fallback to old behavior
|
||||
+ // find the first non-Default GPU
|
||||
for (i = 0; i < num_children; i++)
|
||||
{
|
||||
g_autoptr(GVariant) gpu = NULL;
|
||||
--
|
||||
GitLab
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
project pkg {
|
||||
rpm {
|
||||
spec = "gnome-shell.spec"
|
||||
}
|
||||
labels {
|
||||
extra = 1
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,227 @@
|
||||
gnome-shell-2.31.5.tar.bz2
|
||||
/gnome-shell-2.91.0.tar.bz2
|
||||
/gnome-shell-2.91.1.tar.bz2
|
||||
/gnome-shell-2.91.2.tar.bz2
|
||||
/gnome-shell-2.91.3.tar.bz2
|
||||
/gnome-shell-2.91.4.tar.bz2
|
||||
/gnome-shell-2.91.5.tar.bz2
|
||||
/gnome-shell-2.91.6.tar.bz2
|
||||
/gnome-shell-2.91.90.tar.bz2
|
||||
/gnome-shell-2.91.91.tar.bz2
|
||||
/gnome-shell-2.91.92.tar.bz2
|
||||
/gnome-shell-2.91.93.tar.bz2
|
||||
/gnome-shell-3.0.0.tar.bz2
|
||||
/gnome-shell-3.0.0.1.tar.bz2
|
||||
/gnome-shell-3.0.0.2.tar.bz2
|
||||
/gnome-shell-3.0.1.tar.bz2
|
||||
/gnome-shell-3.0.2.tar.bz2
|
||||
/gnome-shell-3.1.3.tar.bz2
|
||||
/gnome-shell-3.1.4.tar.xz
|
||||
/gnome-shell-3.1.4-gite7b9933.tar.bz2
|
||||
/gnome-shell-3.1.90.1.tar.xz
|
||||
/gnome-shell-3.1.91.tar.xz
|
||||
/gnome-shell-3.1.91.1.tar.xz
|
||||
/gnome-shell-3.1.92.tar.xz
|
||||
/gnome-shell-3.2.0.tar.xz
|
||||
/gnome-shell-3.2.1.tar.xz
|
||||
/gnome-shell-3.3.2.tar.xz
|
||||
/gnome-shell-3.3.3.tar.xz
|
||||
/gnome-shell-3.3.4.tar.xz
|
||||
/gnome-shell-3.3.5.tar.xz
|
||||
/gnome-shell-3.3.90.tar.xz
|
||||
/gnome-shell-3.3.92.tar.xz
|
||||
/gnome-shell-3.4.0.tar.xz
|
||||
/gnome-shell-3.4.1.tar.xz
|
||||
/gnome-shell-3.5.2.tar.xz
|
||||
/gnome-shell-3.5.3.tar.xz
|
||||
/gnome-shell-3.5.4.tar.xz
|
||||
/gnome-shell-3.5.5.tar.xz
|
||||
/gnome-shell-3.5.90.tar.xz
|
||||
/gnome-shell-3.5.91.tar.xz
|
||||
/gnome-shell-3.5.92.tar.xz
|
||||
/gnome-shell-3.6.0.tar.xz
|
||||
/gnome-shell-3.6.1.tar.xz
|
||||
/gnome-shell-3.7.1.tar.xz
|
||||
/gnome-shell-3.7.2.tar.xz
|
||||
/gnome-shell-3.7.3.tar.xz
|
||||
/gnome-shell-3.7.3.1.tar.xz
|
||||
/gnome-shell-3.7.4.tar.xz
|
||||
/gnome-shell-3.7.4.1.tar.xz
|
||||
/gnome-shell-3.7.5.tar.xz
|
||||
/gnome-shell-3.7.90.tar.xz
|
||||
/gnome-shell-3.7.91.tar.xz
|
||||
/gnome-shell-3.7.92.tar.xz
|
||||
/gnome-shell-3.8.0.tar.xz
|
||||
/gnome-shell-3.8.0.1.tar.xz
|
||||
/gnome-shell-3.8.1.tar.xz
|
||||
/gnome-shell-3.9.1.tar.xz
|
||||
/gnome-shell-3.9.2.tar.xz
|
||||
/gnome-shell-3.9.3.tar.xz
|
||||
/gnome-shell-3.9.4.tar.xz
|
||||
/gnome-shell-3.9.5.tar.xz
|
||||
/gnome-shell-3.9.90.tar.xz
|
||||
/gnome-shell-3.9.91.tar.xz
|
||||
/gnome-shell-3.9.92.tar.xz
|
||||
/gnome-shell-3.10.0.tar.xz
|
||||
/gnome-shell-3.10.0.1.tar.xz
|
||||
/gnome-shell-3.10.1.tar.xz
|
||||
/gnome-shell-3.11.1.tar.xz
|
||||
/gnome-shell-3.11.2.tar.xz
|
||||
/gnome-shell-3.11.3.tar.xz
|
||||
/gnome-shell-3.11.4.tar.xz
|
||||
/gnome-shell-3.11.5.tar.xz
|
||||
/gnome-shell-3.11.90.tar.xz
|
||||
/gnome-shell-3.11.91.tar.xz
|
||||
/gnome-shell-3.11.92.tar.xz
|
||||
/gnome-shell-3.12.0.tar.xz
|
||||
/gnome-shell-3.12.1.tar.xz
|
||||
/gnome-shell-3.13.1.tar.xz
|
||||
/gnome-shell-3.13.2.tar.xz
|
||||
/gnome-shell-3.13.3.tar.xz
|
||||
/gnome-shell-3.13.4.tar.xz
|
||||
/gnome-shell-3.13.90.tar.xz
|
||||
/gnome-shell-3.13.91.tar.xz
|
||||
/gnome-shell-3.13.92.tar.xz
|
||||
/gnome-shell-3.14.0.tar.xz
|
||||
/gnome-shell-3.14.1.tar.xz
|
||||
/gnome-shell-3.15.1.tar.xz
|
||||
/gnome-shell-3.15.2.tar.xz
|
||||
/gnome-shell-3.15.3.tar.xz
|
||||
/gnome-shell-3.15.4.tar.xz
|
||||
/gnome-shell-3.15.90.tar.xz
|
||||
/gnome-shell-3.15.91.tar.xz
|
||||
/gnome-shell-3.15.92.tar.xz
|
||||
/gnome-shell-3.16.0.tar.xz
|
||||
/gnome-shell-3.16.1.tar.xz
|
||||
/gnome-shell-3.17.1.tar.xz
|
||||
/gnome-shell-3.17.2.tar.xz
|
||||
/gnome-shell-3.17.3.tar.xz
|
||||
/gnome-shell-3.17.4.tar.xz
|
||||
/gnome-shell-3.17.90.tar.xz
|
||||
/gnome-shell-3.17.91.tar.xz
|
||||
/gnome-shell-3.17.92.tar.xz
|
||||
/gnome-shell-3.18.0.tar.xz
|
||||
/gnome-shell-3.18.1.tar.xz
|
||||
/gnome-shell-3.19.1.tar.xz
|
||||
/gnome-shell-3.19.2.tar.xz
|
||||
/gnome-shell-3.19.3.tar.xz
|
||||
/gnome-shell-3.19.4.tar.xz
|
||||
/gnome-shell-3.19.90.tar.xz
|
||||
/gnome-shell-3.19.91.tar.xz
|
||||
/gnome-shell-3.19.92.tar.xz
|
||||
/gnome-shell-3.20.0.tar.xz
|
||||
/gnome-shell-3.20.1.tar.xz
|
||||
/gnome-shell-3.21.1.tar.xz
|
||||
/gnome-shell-3.21.2.tar.xz
|
||||
/gnome-shell-3.21.3.tar.xz
|
||||
/gnome-shell-3.21.4.tar.xz
|
||||
/gnome-shell-3.21.90.tar.xz
|
||||
/gnome-shell-3.21.90.1.tar.xz
|
||||
/gnome-shell-3.21.91.tar.xz
|
||||
/gnome-shell-3.21.92.tar.xz
|
||||
/gnome-shell-3.22.0.tar.xz
|
||||
/gnome-shell-3.22.1.tar.xz
|
||||
/gnome-shell-3.23.1.tar.xz
|
||||
/gnome-shell-3.23.2.tar.xz
|
||||
/gnome-shell-3.23.3.tar.xz
|
||||
/gnome-shell-3.23.90.tar.xz
|
||||
/gnome-shell-3.23.91.tar.xz
|
||||
/gnome-shell-3.23.92.tar.xz
|
||||
/gnome-shell-3.24.0.tar.xz
|
||||
/gnome-shell-3.24.1.tar.xz
|
||||
/gnome-shell-3.25.1.tar.xz
|
||||
/gnome-shell-3.25.2.tar.xz
|
||||
/gnome-shell-3.25.3.tar.xz
|
||||
/gnome-shell-3.25.4.tar.xz
|
||||
/gnome-shell-3.25.90.tar.xz
|
||||
/gnome-shell-3.25.91.tar.xz
|
||||
/gnome-shell-3.26.0.tar.xz
|
||||
/gnome-shell-3.26.1.tar.xz
|
||||
/gnome-shell-3.27.1.tar.xz
|
||||
/gnome-shell-3.27.91.tar.xz
|
||||
/gnome-shell-3.27.92.tar.xz
|
||||
/gnome-shell-3.28.0.tar.xz
|
||||
/gnome-shell-3.28.1.tar.xz
|
||||
/gnome-shell-3.29.1.tar.xz
|
||||
/gnome-shell-3.29.2.tar.xz
|
||||
/gnome-shell-3.29.4.tar.xz
|
||||
/gnome-shell-3.29.90.tar.xz
|
||||
/gnome-shell-3.29.91.tar.xz
|
||||
/gnome-shell-3.29.92.tar.xz
|
||||
/gnome-shell-3.30.0.tar.xz
|
||||
/gnome-shell-3.30.1.tar.xz
|
||||
/gnome-shell-3.31.2.tar.xz
|
||||
/gnome-shell-3.31.4.tar.xz
|
||||
/gnome-shell-3.31.90.tar.xz
|
||||
/gnome-shell-3.31.91.tar.xz
|
||||
/gnome-shell-3.31.92.tar.xz
|
||||
/gnome-shell-3.32.0.tar.xz
|
||||
/gnome-shell-3.32.1.tar.xz
|
||||
/gnome-shell-3.33.1.tar.xz
|
||||
/gnome-shell-3.33.2.tar.xz
|
||||
/gnome-shell-3.33.3.tar.xz
|
||||
/gnome-shell-3.33.4.tar.xz
|
||||
/gnome-shell-3.33.90.tar.xz
|
||||
/gnome-shell-3.33.91.tar.xz
|
||||
/gnome-shell-3.33.92.tar.xz
|
||||
/gnome-shell-3.34.0.tar.xz
|
||||
/gnome-shell-3.34.1.tar.xz
|
||||
/gnome-shell-3.35.1.tar.xz
|
||||
/gnome-shell-3.35.2.tar.xz
|
||||
/gnome-shell-3.35.3.tar.xz
|
||||
/gnome-shell-3.35.90.tar.xz
|
||||
/gnome-shell-3.35.91.tar.xz
|
||||
/gnome-shell-3.35.92.tar.xz
|
||||
/gnome-shell-3.36.0.tar.xz
|
||||
/gnome-shell-3.36.1.tar.xz
|
||||
/gnome-shell-3.37.1.tar.xz
|
||||
/gnome-shell-3.37.2.tar.xz
|
||||
/gnome-shell-3.37.3.tar.xz
|
||||
/gnome-shell-3.37.90.tar.xz
|
||||
/gnome-shell-3.37.91.tar.xz
|
||||
/gnome-shell-3.37.92.tar.xz
|
||||
/gnome-shell-3.38.0.tar.xz
|
||||
/gnome-shell-3.38.1.tar.xz
|
||||
/gnome-shell-40.alpha.tar.xz
|
||||
/gnome-shell-40.alpha.1.tar.xz
|
||||
/gnome-shell-40.alpha.1.1.tar.xz
|
||||
/gnome-shell-40.alpha.1.1-94-g9ce666ac1.tar.xz
|
||||
/gnome-shell-40.alpha.1.1-228-g829a096ba.tar.xz
|
||||
/gnome-shell-40.beta.tar.xz
|
||||
/gnome-shell-40.beta-79-g7a57528bd.tar.xz
|
||||
/gnome-shell-40.rc.tar.xz
|
||||
/gnome-shell-40.0.tar.xz
|
||||
/gnome-shell-40.1.tar.xz
|
||||
/gnome-shell-40.2.tar.xz
|
||||
/gnome-shell-40.3.tar.xz
|
||||
/gnome-shell-41.beta.tar.xz
|
||||
/gnome-shell-41.rc.tar.xz
|
||||
/gnome-shell-41.rc.1.tar.xz
|
||||
/gnome-shell-41.0.tar.xz
|
||||
/gnome-shell-42.alpha.tar.xz
|
||||
/gnome-shell-42.beta.tar.xz
|
||||
/gnome-shell-42.rc.tar.xz
|
||||
/gnome-shell-42.0.tar.xz
|
||||
/gnome-shell-42.1.tar.xz
|
||||
/gnome-shell-42.2.tar.xz
|
||||
/gnome-shell-43.alpha.tar.xz
|
||||
/gnome-shell-43.beta.tar.xz
|
||||
/gnome-shell-43.rc.tar.xz
|
||||
/gnome-shell-43.0.tar.xz
|
||||
/gnome-shell-43.1.tar.xz
|
||||
/gnome-shell-44.beta.tar.xz
|
||||
/gnome-shell-44.rc.tar.xz
|
||||
/gnome-shell-44.0.tar.xz
|
||||
/gnome-shell-44.1.tar.xz
|
||||
/gnome-shell-44.2.tar.xz
|
||||
/gnome-shell-45.alpha.tar.xz
|
||||
/gnome-shell-45.beta.tar.xz
|
||||
/gnome-shell-45.beta.1.tar.xz
|
||||
/gnome-shell-45.rc.tar.xz
|
||||
/gnome-shell-45.0.tar.xz
|
||||
/gnome-shell-45.1.tar.xz
|
||||
/gnome-shell-45.2.tar.xz
|
||||
/gnome-shell-46.alpha.tar.xz
|
||||
/gnome-shell-46.beta.tar.xz
|
||||
/gnome-shell-46.rc.tar.xz
|
||||
/gnome-shell-46.0.tar.xz
|
||||
@@ -0,0 +1,38 @@
|
||||
From 551b8979483e127471c726fd1db1d52e063a7d81 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
|
||||
Date: Wed, 17 Sep 2014 07:11:12 +0200
|
||||
Subject: [PATCH] Replace Web with Firefox in default favorites
|
||||
|
||||
---
|
||||
data/org.gnome.shell.gschema.xml.in | 2 +-
|
||||
js/ui/appFavorites.js | 1 +
|
||||
2 files changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/data/org.gnome.shell.gschema.xml.in b/data/org.gnome.shell.gschema.xml.in
|
||||
index f4fa86d013..86b4bf85ee 100644
|
||||
--- a/data/org.gnome.shell.gschema.xml.in
|
||||
+++ b/data/org.gnome.shell.gschema.xml.in
|
||||
@@ -50,7 +50,7 @@
|
||||
</description>
|
||||
</key>
|
||||
<key name="favorite-apps" type="as">
|
||||
- <default>[ 'org.gnome.Epiphany.desktop', 'org.gnome.Calendar.desktop', 'org.gnome.Music.desktop', 'org.gnome.Nautilus.desktop', 'org.gnome.Software.desktop', 'org.gnome.TextEditor.desktop']</default>
|
||||
+ <default>[ 'org.mozilla.firefox.desktop', 'org.gnome.Calendar.desktop', 'org.gnome.Music.desktop', 'org.gnome.Nautilus.desktop', 'org.gnome.Software.desktop', 'org.gnome.TextEditor.desktop']</default>
|
||||
<summary>List of desktop file IDs for favorite applications</summary>
|
||||
<description>
|
||||
The applications corresponding to these identifiers
|
||||
diff --git a/js/ui/appFavorites.js b/js/ui/appFavorites.js
|
||||
index 576df3800d..1f55a3c881 100644
|
||||
--- a/js/ui/appFavorites.js
|
||||
+++ b/js/ui/appFavorites.js
|
||||
@@ -51,6 +51,7 @@ const RENAMED_DESKTOP_IDS = {
|
||||
'gnotski.desktop': 'org.gnome.Klotski.desktop',
|
||||
'gtali.desktop': 'org.gnome.Tali.desktop',
|
||||
'iagno.desktop': 'org.gnome.Reversi.desktop',
|
||||
+ 'firefox.desktop': 'org.mozilla.firefox.desktop',
|
||||
'nautilus.desktop': 'org.gnome.Nautilus.desktop',
|
||||
'org.gnome.gnome-2048.desktop': 'org.gnome.TwentyFortyEight.desktop',
|
||||
'org.gnome.taquin.desktop': 'org.gnome.Taquin.desktop',
|
||||
--
|
||||
2.43.0
|
||||
|
||||
@@ -0,0 +1,262 @@
|
||||
%global tarball_version %%(echo %{version} | tr '~' '.')
|
||||
%global major_version 47
|
||||
%global minor_version 1
|
||||
|
||||
%if 0%{?rhel}
|
||||
%global portal_helper 0
|
||||
%else
|
||||
%global portal_helper 1
|
||||
%endif
|
||||
|
||||
Name: gnome-shell
|
||||
Version: %{major_version}.%{minor_version}
|
||||
Release: %autorelease.switcheroo
|
||||
Summary: Window management and application launching for GNOME
|
||||
|
||||
License: GPL-2.0-or-later
|
||||
URL: https://wiki.gnome.org/Projects/GnomeShell
|
||||
Source0: https://download.gnome.org/sources/gnome-shell/%{major_version}/%{name}-%{tarball_version}.tar.xz
|
||||
|
||||
# Replace Epiphany with Firefox in the default favourite apps list
|
||||
Patch: gnome-shell-favourite-apps-firefox.patch
|
||||
|
||||
# Some users might have a broken PAM config, so we really need this
|
||||
# downstream patch to stop trying on configuration errors.
|
||||
Patch: 0001-gdm-Work-around-failing-fingerprint-auth.patch
|
||||
|
||||
Patch: 0001-status-keyboard-Add-a-catch-around-reload-call.patch
|
||||
Patch: 0002-status-keyboard-Load-keyboard-from-system-settings-i.patch
|
||||
Patch: 0003-status-keyboard-Use-gnome-desktop-API-for-getting-de.patch
|
||||
|
||||
# shell-app: improve discrete GPU detection
|
||||
# https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3193
|
||||
Patch: 3193.patch
|
||||
|
||||
%define eds_version 3.45.1
|
||||
%define gnome_desktop_version 44.0-7
|
||||
%define glib2_version 2.79.2
|
||||
%define gobject_introspection_version 1.49.1
|
||||
%define gjs_version 1.73.1
|
||||
%define gtk4_version 4.0.0
|
||||
%define adwaita_version 1.5.0
|
||||
%define mutter_version 47.0
|
||||
%define polkit_version 0.100
|
||||
%define gsettings_desktop_schemas_version 47~alpha
|
||||
%define ibus_version 1.5.2
|
||||
%define gnome_bluetooth_version 1:42.3
|
||||
%define gstreamer_version 1.4.5
|
||||
%define pipewire_version 0.3.0
|
||||
%define gnome_settings_daemon_version 3.37.1
|
||||
|
||||
BuildRequires: pkgconfig(bash-completion)
|
||||
BuildRequires: gcc
|
||||
BuildRequires: meson
|
||||
BuildRequires: git
|
||||
BuildRequires: pkgconfig(ibus-1.0) >= %{ibus_version}
|
||||
BuildRequires: desktop-file-utils
|
||||
BuildRequires: pkgconfig(libedataserver-1.2) >= %{eds_version}
|
||||
BuildRequires: pkgconfig(gcr-4)
|
||||
BuildRequires: pkgconfig(gjs-1.0) >= %{gjs_version}
|
||||
BuildRequires: pkgconfig(gio-2.0) >= %{glib2_version}
|
||||
BuildRequires: pkgconfig(gnome-autoar-0)
|
||||
BuildRequires: pkgconfig(gnome-desktop-4) >= %{gnome_desktop_version}
|
||||
BuildRequires: pkgconfig(gobject-introspection-1.0) >= %{gobject_introspection_version}
|
||||
BuildRequires: mesa-libGL-devel
|
||||
BuildRequires: mesa-libEGL-devel
|
||||
BuildRequires: pkgconfig(libnm)
|
||||
BuildRequires: pkgconfig(polkit-agent-1) >= %{polkit_version}
|
||||
BuildRequires: pkgconfig(libstartup-notification-1.0)
|
||||
BuildRequires: pkgconfig(libsystemd)
|
||||
# for screencast recorder functionality
|
||||
BuildRequires: pkgconfig(gstreamer-base-1.0) >= %{gstreamer_version}
|
||||
BuildRequires: pkgconfig(libpipewire-0.3) >= %{pipewire_version}
|
||||
BuildRequires: pkgconfig(gtk4) >= %{gtk4_version}
|
||||
BuildRequires: gettext >= 0.19.6
|
||||
BuildRequires: python3
|
||||
|
||||
# for rst2man
|
||||
BuildRequires: python3-docutils
|
||||
# for barriers
|
||||
BuildRequires: libXfixes-devel >= 5.0
|
||||
# used in unused BigThemeImage
|
||||
BuildRequires: librsvg2-devel
|
||||
BuildRequires: mutter-devel >= %{mutter_version}
|
||||
BuildRequires: pkgconfig(libpulse)
|
||||
%ifnarch s390 s390x ppc ppc64 ppc64p7
|
||||
BuildRequires: gnome-bluetooth-libs-devel >= %{gnome_bluetooth_version}
|
||||
%endif
|
||||
# Bootstrap requirements
|
||||
BuildRequires: gtk-doc
|
||||
%ifnarch s390 s390x
|
||||
Recommends: gnome-bluetooth%{?_isa} >= %{gnome_bluetooth_version}
|
||||
%endif
|
||||
Requires: gnome-desktop3%{?_isa} >= %{gnome_desktop_version}
|
||||
Requires: gcr%{?_isa}
|
||||
Requires: gobject-introspection%{?_isa} >= %{gobject_introspection_version}
|
||||
Requires: gjs%{?_isa} >= %{gjs_version}
|
||||
Requires: gtk4%{?_isa} >= %{gtk4_version}
|
||||
Requires: libadwaita%{_isa} >= %{adwaita_version}
|
||||
Requires: libnma-gtk4%{?_isa}
|
||||
# needed for loading SVG's via gdk-pixbuf
|
||||
Requires: librsvg2%{?_isa}
|
||||
Requires: mutter%{?_isa} >= %{mutter_version}
|
||||
Requires: upower%{?_isa}
|
||||
Requires: polkit%{?_isa} >= %{polkit_version}
|
||||
Requires: gnome-desktop4%{?_isa} >= %{gnome_desktop_version}
|
||||
Requires: glib2%{?_isa} >= %{glib2_version}
|
||||
Requires: gsettings-desktop-schemas%{?_isa} >= %{gsettings_desktop_schemas_version}
|
||||
Requires: gnome-settings-daemon%{?_isa} >= %{gnome_settings_daemon_version}
|
||||
Requires: gstreamer1%{?_isa} >= %{gstreamer_version}
|
||||
# needed for screen recorder
|
||||
Requires: gstreamer1-plugins-good%{?_isa}
|
||||
Requires: pipewire-gstreamer%{?_isa}
|
||||
Requires: xdg-user-dirs-gtk
|
||||
# needed for schemas
|
||||
Requires: at-spi2-atk%{?_isa}
|
||||
# needed for on-screen keyboard
|
||||
Requires: ibus%{?_isa} >= %{ibus_version}
|
||||
# needed for "show keyboard layout"
|
||||
Requires: tecla
|
||||
# needed for the user menu
|
||||
Requires: accountsservice-libs%{?_isa}
|
||||
Requires: gdm-libs%{?_isa}
|
||||
# needed for settings items in menus
|
||||
Requires: gnome-control-center
|
||||
# needed by some utilities
|
||||
Requires: python3%{_isa}
|
||||
# needed for the dual-GPU launch menu
|
||||
Requires: switcheroo-control
|
||||
# needed for clocks/weather integration
|
||||
Requires: geoclue2-libs%{?_isa}
|
||||
Requires: libgweather4%{?_isa}
|
||||
# for gnome-extensions CLI tool
|
||||
Requires: gettext
|
||||
# needed for thunderbolt support
|
||||
Recommends: bolt%{?_isa}
|
||||
# Needed for launching flatpak apps etc
|
||||
# 1.8.0 is needed for source type support in the screencast portal.
|
||||
Requires: xdg-desktop-portal-gtk >= 1.8.0
|
||||
Requires: xdg-desktop-portal-gnome
|
||||
# needed by the welcome dialog
|
||||
Recommends: gnome-tour
|
||||
|
||||
%if %{portal_helper}
|
||||
# needed for captive portal helper
|
||||
Requires: webkitgtk6.0%{?_isa}
|
||||
%endif
|
||||
|
||||
# https://github.com/containers/composefs/pull/229#issuecomment-1838735764
|
||||
%if 0%{?rhel} >= 10
|
||||
ExcludeArch: %{ix86}
|
||||
%endif
|
||||
|
||||
Provides: desktop-notification-daemon = %{version}-%{release}
|
||||
Provides: PolicyKit-authentication-agent = %{version}-%{release}
|
||||
Provides: bundled(gvc)
|
||||
Provides: bundled(libcroco) = 0.6.13
|
||||
|
||||
%if 0%{?rhel}
|
||||
# In Fedora, fedora-obsolete-packages obsoletes caribou
|
||||
Obsoletes: caribou < 0.4.21-10
|
||||
Obsoletes: caribou-antler < 0.4.21-10
|
||||
Obsoletes: caribou-devel < 0.4.21-10
|
||||
Obsoletes: caribou-gtk2-module < 0.4.21-10
|
||||
Obsoletes: caribou-gtk3-module < 0.4.21-10
|
||||
Obsoletes: python-caribou < 0.4.21-10
|
||||
Obsoletes: python2-caribou < 0.4.21-10
|
||||
Obsoletes: python3-caribou < 0.4.21-10
|
||||
%endif
|
||||
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1740897
|
||||
Conflicts: gnome-shell-extension-background-logo < 3.34.0
|
||||
|
||||
%description
|
||||
GNOME Shell provides core user interface functions for the GNOME 3 desktop,
|
||||
like switching to windows and launching applications. GNOME Shell takes
|
||||
advantage of the capabilities of modern graphics hardware and introduces
|
||||
innovative user interface concepts to provide a visually attractive and
|
||||
easy to use experience.
|
||||
|
||||
%prep
|
||||
%autosetup -S git -n %{name}-%{tarball_version}
|
||||
|
||||
%build
|
||||
%meson \
|
||||
-Dextensions_app=false \
|
||||
%if %{portal_helper}
|
||||
-Dportal_helper=true \
|
||||
%else
|
||||
-Dportal_helper=false \
|
||||
%endif
|
||||
%{nil}
|
||||
%meson_build
|
||||
|
||||
%install
|
||||
%meson_install
|
||||
|
||||
# Create empty directories where other packages can drop extensions
|
||||
mkdir -p %{buildroot}%{_datadir}/gnome-shell/extensions
|
||||
mkdir -p %{buildroot}%{_datadir}/gnome-shell/search-providers
|
||||
|
||||
%find_lang %{name}
|
||||
|
||||
%check
|
||||
desktop-file-validate %{buildroot}%{_datadir}/applications/org.gnome.Shell.desktop
|
||||
desktop-file-validate %{buildroot}%{_datadir}/applications/org.gnome.Shell.Extensions.desktop
|
||||
|
||||
%if %{portal_helper}
|
||||
desktop-file-validate %{buildroot}%{_datadir}/applications/org.gnome.Shell.PortalHelper.desktop
|
||||
%endif
|
||||
|
||||
%files -f %{name}.lang
|
||||
%license COPYING
|
||||
%doc NEWS README.md
|
||||
%{_bindir}/gnome-shell
|
||||
%{_bindir}/gnome-extensions
|
||||
%{_bindir}/gnome-shell-extension-tool
|
||||
%{_bindir}/gnome-shell-test-tool
|
||||
%{_datadir}/glib-2.0/schemas/*.xml
|
||||
%{_datadir}/glib-2.0/schemas/00_org.gnome.shell.gschema.override
|
||||
%{_datadir}/applications/org.gnome.Shell.Extensions.desktop
|
||||
%{_datadir}/applications/org.gnome.Shell.desktop
|
||||
%{_datadir}/bash-completion/completions/gnome-extensions
|
||||
%{_datadir}/gnome-control-center/keybindings/50-gnome-shell-launchers.xml
|
||||
%{_datadir}/gnome-control-center/keybindings/50-gnome-shell-screenshots.xml
|
||||
%{_datadir}/gnome-control-center/keybindings/50-gnome-shell-system.xml
|
||||
%{_datadir}/gnome-shell/
|
||||
%{_datadir}/dbus-1/services/org.gnome.ScreenSaver.service
|
||||
%{_datadir}/dbus-1/services/org.gnome.Shell.CalendarServer.service
|
||||
%{_datadir}/dbus-1/services/org.gnome.Shell.Extensions.service
|
||||
%{_datadir}/dbus-1/services/org.gnome.Shell.HotplugSniffer.service
|
||||
%{_datadir}/dbus-1/services/org.gnome.Shell.Notifications.service
|
||||
%{_datadir}/dbus-1/services/org.gnome.Shell.Screencast.service
|
||||
%{_datadir}/dbus-1/interfaces/org.gnome.Shell.Extensions.xml
|
||||
%{_datadir}/dbus-1/interfaces/org.gnome.Shell.Introspect.xml
|
||||
%{_datadir}/dbus-1/interfaces/org.gnome.Shell.PadOsd.xml
|
||||
%{_datadir}/dbus-1/interfaces/org.gnome.Shell.Screencast.xml
|
||||
%{_datadir}/dbus-1/interfaces/org.gnome.Shell.Screenshot.xml
|
||||
%{_datadir}/dbus-1/interfaces/org.gnome.ShellSearchProvider.xml
|
||||
%{_datadir}/dbus-1/interfaces/org.gnome.ShellSearchProvider2.xml
|
||||
%{_datadir}/icons/hicolor/scalable/apps/org.gnome.Shell.Extensions.svg
|
||||
%{_datadir}/icons/hicolor/symbolic/apps/org.gnome.Shell.Extensions-symbolic.svg
|
||||
%{_userunitdir}/org.gnome.Shell-disable-extensions.service
|
||||
%{_userunitdir}/org.gnome.Shell.target
|
||||
%{_userunitdir}/org.gnome.Shell@wayland.service
|
||||
%{_userunitdir}/org.gnome.Shell@x11.service
|
||||
%{_libdir}/gnome-shell/
|
||||
%{_libexecdir}/gnome-shell-calendar-server
|
||||
%{_libexecdir}/gnome-shell-perf-helper
|
||||
%{_libexecdir}/gnome-shell-hotplug-sniffer
|
||||
%{_mandir}/man1/gnome-extensions.1*
|
||||
%{_mandir}/man1/gnome-shell.1*
|
||||
|
||||
%if %{portal_helper}
|
||||
%{_datadir}/applications/org.gnome.Shell.PortalHelper.desktop
|
||||
%{_datadir}/dbus-1/services/org.gnome.Shell.PortalHelper.service
|
||||
%{_datadir}/icons/hicolor/scalable/apps/org.gnome.Shell.CaptivePortal.svg
|
||||
%{_datadir}/icons/hicolor/symbolic/apps/org.gnome.Shell.CaptivePortal-symbolic.svg
|
||||
%{_libexecdir}/gnome-shell-portal-helper
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
%autochangelog
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
From 0cc287336b32e601e70b26d60d9335abde538a18 Mon Sep 17 00:00:00 2001
|
||||
From: Adam Williamson <awilliam@redhat.com>
|
||||
Date: Mon, 16 Oct 2023 17:57:16 -0700
|
||||
Subject: [PATCH] Give the kuriikwsfiltereng_private a VERSION and SOVERSION
|
||||
(#26)
|
||||
|
||||
Signed-off-by: Adam Williamson <awilliam@redhat.com>
|
||||
---
|
||||
src/urifilters/ikws/CMakeLists.txt | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
diff --git a/src/urifilters/ikws/CMakeLists.txt b/src/urifilters/ikws/CMakeLists.txt
|
||||
index 7d42584c3..393588993 100644
|
||||
--- a/src/urifilters/ikws/CMakeLists.txt
|
||||
+++ b/src/urifilters/ikws/CMakeLists.txt
|
||||
@@ -1,6 +1,11 @@
|
||||
add_subdirectory(searchproviders)
|
||||
|
||||
add_library(kuriikwsfiltereng_private kuriikwsfiltereng.cpp searchprovider.cpp searchproviderregistry.cpp)
|
||||
+set_target_properties(kuriikwsfiltereng_private PROPERTIES
|
||||
+ VERSION ${KIO_VERSION}
|
||||
+ SOVERSION ${KIO_SOVERSION}
|
||||
+ EXPORT_NAME kuriikwsfiltereng_private
|
||||
+)
|
||||
generate_export_header(kuriikwsfiltereng_private) # We need this to be a shared lib, because otherwise we have duplicate Q_GLOBAL_STATICs
|
||||
target_link_libraries(kuriikwsfiltereng_private PUBLIC KF6::KIOGui)
|
||||
install(TARGETS kuriikwsfiltereng_private ${KF_INSTALL_TARGETS_DEFAULT_ARGS})
|
||||
--
|
||||
2.41.0
|
||||
|
||||
@@ -0,0 +1,290 @@
|
||||
From 7b1154d235f752b9fd1797f87861f11ef89d5d7a Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Jan=20Dr=C3=B6gehoff?= <sentrycraft123@gmail.com>
|
||||
Date: Thu, 15 Feb 2024 14:38:21 +0100
|
||||
Subject: [PATCH 1/7] Improve discrete GPU detection using switcheroo-control
|
||||
|
||||
---
|
||||
src/gui/gpudetection.cpp | 34 ++++++++++++++++++++++++++++++++++
|
||||
1 file changed, 34 insertions(+)
|
||||
|
||||
diff --git a/src/gui/gpudetection.cpp b/src/gui/gpudetection.cpp
|
||||
index ef246d3936..695bf27a1e 100644
|
||||
--- a/src/gui/gpudetection.cpp
|
||||
+++ b/src/gui/gpudetection.cpp
|
||||
@@ -62,6 +62,40 @@ static bool checkGpuWithSwitcheroo()
|
||||
QList<QVariantMap> gpus;
|
||||
arg >> gpus;
|
||||
|
||||
+ if (gpus.length() < 2) {
|
||||
+ // Skip checking for Default or Discrete GPUs when 1 or no GPU is available
|
||||
+ return false;
|
||||
+ }
|
||||
+
|
||||
+ // Check if the Default GPU is Discrete
|
||||
+ for (const auto &gpu : gpus) {
|
||||
+ bool defaultGpu = qvariant_cast<bool>(gpu[QStringLiteral("Default")]);
|
||||
+ if (defaultGpu) {
|
||||
+ bool discreteGpu = qvariant_cast<bool>(gpu.value(QStringLiteral("Discrete"), false));
|
||||
+ if (discreteGpu) {
|
||||
+ // If the default GPU is Discret there is no need to apply the env vars
|
||||
+ s_gpuCheck = GpuCheck::Present;
|
||||
+ return true;
|
||||
+ }
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ // Find the first Discrete GPU
|
||||
+ for (const auto &gpu : gpus) {
|
||||
+ bool discreteGpu = qvariant_cast<bool>(gpu.value(QStringLiteral("Discrete"), false));
|
||||
+ if (!discreteGpu) {
|
||||
+ s_gpuCheck = GpuCheck::Present;
|
||||
+ QStringList envList = qvariant_cast<QStringList>(gpu[QStringLiteral("Environment")]);
|
||||
+ for (int i = 0; i + 1 < envList.size(); i += 2) {
|
||||
+ s_gpuEnv.insert(envList[i], envList[i + 1]);
|
||||
+ }
|
||||
+ return true;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ // fallback to old behavior
|
||||
+ // find the first non-Default GPU
|
||||
for (const auto &gpu : gpus) {
|
||||
bool defaultGpu = qvariant_cast<bool>(gpu[QStringLiteral("Default")]);
|
||||
if (!defaultGpu) {
|
||||
--
|
||||
GitLab
|
||||
|
||||
|
||||
From 29c056a6a71b0de226369c03d02f47ab56a7877a Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Jan=20Dr=C3=B6gehoff?= <sentrycraft123@gmail.com>
|
||||
Date: Wed, 21 Feb 2024 15:57:28 +0100
|
||||
Subject: [PATCH 2/7] make gpus length comparison easier to reade
|
||||
|
||||
---
|
||||
src/gui/gpudetection.cpp | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/gui/gpudetection.cpp b/src/gui/gpudetection.cpp
|
||||
index 695bf27a1e..dfe6a9982b 100644
|
||||
--- a/src/gui/gpudetection.cpp
|
||||
+++ b/src/gui/gpudetection.cpp
|
||||
@@ -62,7 +62,7 @@ static bool checkGpuWithSwitcheroo()
|
||||
QList<QVariantMap> gpus;
|
||||
arg >> gpus;
|
||||
|
||||
- if (gpus.length() < 2) {
|
||||
+ if (gpus.length() <= 1) {
|
||||
// Skip checking for Default or Discrete GPUs when 1 or no GPU is available
|
||||
return false;
|
||||
}
|
||||
--
|
||||
GitLab
|
||||
|
||||
|
||||
From afc22129301ac2e33673ce9415b1e0d329a57c59 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Jan=20Dr=C3=B6gehoff?= <sentrycraft123@gmail.com>
|
||||
Date: Wed, 21 Feb 2024 16:27:05 +0100
|
||||
Subject: [PATCH 3/7] lookup needed GPU entries in a single loop
|
||||
|
||||
---
|
||||
src/gui/gpudetection.cpp | 56 +++++++++++++++++-----------------------
|
||||
1 file changed, 23 insertions(+), 33 deletions(-)
|
||||
|
||||
diff --git a/src/gui/gpudetection.cpp b/src/gui/gpudetection.cpp
|
||||
index dfe6a9982b..57436e4789 100644
|
||||
--- a/src/gui/gpudetection.cpp
|
||||
+++ b/src/gui/gpudetection.cpp
|
||||
@@ -67,45 +67,35 @@ static bool checkGpuWithSwitcheroo()
|
||||
return false;
|
||||
}
|
||||
|
||||
- // Check if the Default GPU is Discrete
|
||||
- for (const auto &gpu : gpus) {
|
||||
- bool defaultGpu = qvariant_cast<bool>(gpu[QStringLiteral("Default")]);
|
||||
- if (defaultGpu) {
|
||||
- bool discreteGpu = qvariant_cast<bool>(gpu.value(QStringLiteral("Discrete"), false));
|
||||
- if (discreteGpu) {
|
||||
- // If the default GPU is Discret there is no need to apply the env vars
|
||||
- s_gpuCheck = GpuCheck::Present;
|
||||
- return true;
|
||||
- }
|
||||
- break;
|
||||
+ QVariantMap defaultGpu;
|
||||
+ QVariantMap firstDiscreteGpu;
|
||||
+ QVariantMap firstNonDefaultGpu;
|
||||
+
|
||||
+ for (const auto &gpu : std::as_const(gpus)) {
|
||||
+ if (defaultGpu.isEmpty() && qvariant_cast<bool>(gpu[QStringLiteral("Default")])) {
|
||||
+ defaultGpu = gpu;
|
||||
+ } else if (firstNonDefaultGpu.isEmpty()) {
|
||||
+ firstNonDefaultGpu = gpu;
|
||||
+ }
|
||||
+ if (firstDiscreteGpu.isEmpty() && qvariant_cast<bool>(gpu[QStringLiteral("Discrete")])) {
|
||||
+ firstDiscreteGpu = gpu;
|
||||
}
|
||||
}
|
||||
|
||||
- // Find the first Discrete GPU
|
||||
- for (const auto &gpu : gpus) {
|
||||
- bool discreteGpu = qvariant_cast<bool>(gpu.value(QStringLiteral("Discrete"), false));
|
||||
- if (!discreteGpu) {
|
||||
- s_gpuCheck = GpuCheck::Present;
|
||||
- QStringList envList = qvariant_cast<QStringList>(gpu[QStringLiteral("Environment")]);
|
||||
- for (int i = 0; i + 1 < envList.size(); i += 2) {
|
||||
- s_gpuEnv.insert(envList[i], envList[i + 1]);
|
||||
- }
|
||||
- return true;
|
||||
- }
|
||||
+ if (!defaultGpu.isEmpty() && defaultGpu[QStringLiteral("Discrete")].toBool()) {
|
||||
+ // If the default GPU is discrete we don't need to check for another device or apply special env vars
|
||||
+ s_gpuCheck = GpuCheck::Present;
|
||||
+ return true;
|
||||
}
|
||||
|
||||
- // fallback to old behavior
|
||||
- // find the first non-Default GPU
|
||||
- for (const auto &gpu : gpus) {
|
||||
- bool defaultGpu = qvariant_cast<bool>(gpu[QStringLiteral("Default")]);
|
||||
- if (!defaultGpu) {
|
||||
- s_gpuCheck = GpuCheck::Present;
|
||||
- QStringList envList = qvariant_cast<QStringList>(gpu[QStringLiteral("Environment")]);
|
||||
- for (int i = 0; i + 1 < envList.size(); i += 2) {
|
||||
- s_gpuEnv.insert(envList[i], envList[i + 1]);
|
||||
- }
|
||||
- return true;
|
||||
+ // Otherwise prefer the discrete GPU over any other random non-default GPU (legacy behavior)
|
||||
+ for (const auto &gpu : {firstDiscreteGpu, firstNonDefaultGpu}) {
|
||||
+ s_gpuCheck = GpuCheck::Present;
|
||||
+ auto envList = qvariant_cast<QStringList>(gpu[QStringLiteral("Environment")]);
|
||||
+ for (int i = 0; i + 1 < envList.size(); i += 2) {
|
||||
+ s_gpuEnv.insert(envList[i], envList[i + 1]);
|
||||
}
|
||||
+ return true;
|
||||
}
|
||||
#endif
|
||||
|
||||
--
|
||||
GitLab
|
||||
|
||||
|
||||
From d05cabb8e3e4aa60c8453edc0f6231d9bcb6d64e Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Jan=20Dr=C3=B6gehoff?= <sentrycraft123@gmail.com>
|
||||
Date: Wed, 21 Feb 2024 16:27:25 +0100
|
||||
Subject: [PATCH 4/7] correct absent gpu comment
|
||||
|
||||
---
|
||||
src/gui/gpudetection.cpp | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/gui/gpudetection.cpp b/src/gui/gpudetection.cpp
|
||||
index 57436e4789..bbef5ba8f2 100644
|
||||
--- a/src/gui/gpudetection.cpp
|
||||
+++ b/src/gui/gpudetection.cpp
|
||||
@@ -99,7 +99,7 @@ static bool checkGpuWithSwitcheroo()
|
||||
}
|
||||
#endif
|
||||
|
||||
- // No non-default GPU found
|
||||
+ // No discrete or non-default GPU found
|
||||
s_gpuCheck = GpuCheck::Absent;
|
||||
return true;
|
||||
}
|
||||
--
|
||||
GitLab
|
||||
|
||||
|
||||
From 7f9f76ce9bb472b54bf7297b8b5c078eb0c194c9 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Jan=20Dr=C3=B6gehoff?= <sentrycraft123@gmail.com>
|
||||
Date: Thu, 22 Feb 2024 08:33:19 +0100
|
||||
Subject: [PATCH 5/7] check exact GPU count and fallback to solid when none are
|
||||
found
|
||||
|
||||
---
|
||||
src/gui/gpudetection.cpp | 10 ++++++++--
|
||||
1 file changed, 8 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/gui/gpudetection.cpp b/src/gui/gpudetection.cpp
|
||||
index bbef5ba8f2..d3bf895ea5 100644
|
||||
--- a/src/gui/gpudetection.cpp
|
||||
+++ b/src/gui/gpudetection.cpp
|
||||
@@ -62,9 +62,15 @@ static bool checkGpuWithSwitcheroo()
|
||||
QList<QVariantMap> gpus;
|
||||
arg >> gpus;
|
||||
|
||||
- if (gpus.length() <= 1) {
|
||||
- // Skip checking for Default or Discrete GPUs when 1 or no GPU is available
|
||||
+ auto gpu_count = gpus.length();
|
||||
+
|
||||
+ if (gpu_count == 0) {
|
||||
+ // No GPUs? Something might have gone wrong on the other end
|
||||
return false;
|
||||
+ } else if (gpu_count == 1) {
|
||||
+ // There is only one GPU, no need to check for others
|
||||
+ s_gpuCheck = GpuCheck::Absent;
|
||||
+ return true;
|
||||
}
|
||||
|
||||
QVariantMap defaultGpu;
|
||||
--
|
||||
GitLab
|
||||
|
||||
|
||||
From 87ca7b125be15963c45867705f4b75e40b379437 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Jan=20Dr=C3=B6gehoff?= <sentrycraft123@gmail.com>
|
||||
Date: Wed, 4 Sep 2024 23:58:18 +0000
|
||||
Subject: [PATCH 6/7] Simplify GPU count check
|
||||
|
||||
---
|
||||
src/gui/gpudetection.cpp | 6 ++----
|
||||
1 file changed, 2 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/src/gui/gpudetection.cpp b/src/gui/gpudetection.cpp
|
||||
index d3bf895ea5..5e8450f2f9 100644
|
||||
--- a/src/gui/gpudetection.cpp
|
||||
+++ b/src/gui/gpudetection.cpp
|
||||
@@ -62,12 +62,10 @@ static bool checkGpuWithSwitcheroo()
|
||||
QList<QVariantMap> gpus;
|
||||
arg >> gpus;
|
||||
|
||||
- auto gpu_count = gpus.length();
|
||||
-
|
||||
- if (gpu_count == 0) {
|
||||
+ if (gpus.isEmpty()) {
|
||||
// No GPUs? Something might have gone wrong on the other end
|
||||
return false;
|
||||
- } else if (gpu_count == 1) {
|
||||
+ } else if (gpus.size() == 1) {
|
||||
// There is only one GPU, no need to check for others
|
||||
s_gpuCheck = GpuCheck::Absent;
|
||||
return true;
|
||||
--
|
||||
GitLab
|
||||
|
||||
|
||||
From 1920a2ea3b67331b419fc19a377b57a36466fb9f Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Jan=20Dr=C3=B6gehoff?= <sentrycraft123@gmail.com>
|
||||
Date: Thu, 5 Sep 2024 02:01:41 +0200
|
||||
Subject: [PATCH 7/7] Fix non default GPU fallback
|
||||
|
||||
---
|
||||
src/gui/gpudetection.cpp | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/src/gui/gpudetection.cpp b/src/gui/gpudetection.cpp
|
||||
index 5e8450f2f9..2f5547ab8f 100644
|
||||
--- a/src/gui/gpudetection.cpp
|
||||
+++ b/src/gui/gpudetection.cpp
|
||||
@@ -94,6 +94,9 @@ static bool checkGpuWithSwitcheroo()
|
||||
|
||||
// Otherwise prefer the discrete GPU over any other random non-default GPU (legacy behavior)
|
||||
for (const auto &gpu : {firstDiscreteGpu, firstNonDefaultGpu}) {
|
||||
+ if (gpu.isEmpty()) {
|
||||
+ continue;
|
||||
+ }
|
||||
s_gpuCheck = GpuCheck::Present;
|
||||
auto envList = qvariant_cast<QStringList>(gpu[QStringLiteral("Environment")]);
|
||||
for (int i = 0; i + 1 < envList.size(); i += 2) {
|
||||
--
|
||||
GitLab
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
From 6e7775d315f389df0a440ed62b842ce83dc9a27e Mon Sep 17 00:00:00 2001
|
||||
From: Nicolas Fella <nicolas.fella@gmx.de>
|
||||
Date: Fri, 1 Mar 2024 22:16:07 +0100
|
||||
Subject: [PATCH] [kterminallauncherjob] Inherit default process environment
|
||||
from parent
|
||||
|
||||
Before Qt 6.3, an empty (default constructed) QProcessEnvironment caused
|
||||
QProcess to incorrectly inherit the environment variables from the parent
|
||||
process. This was fixed in qtbase 5fc9c02a695.
|
||||
|
||||
CommandLauncherJob was adjusted for this in 916984940f64e07db9b4d152be9f2a87dda0cfb4,
|
||||
however here we are overriding its default env with our own default-constructed one
|
||||
|
||||
BUG: 482107
|
||||
---
|
||||
src/gui/kterminallauncherjob.cpp | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/gui/kterminallauncherjob.cpp b/src/gui/kterminallauncherjob.cpp
|
||||
index c4e83fb11b..edd99327bd 100644
|
||||
--- a/src/gui/kterminallauncherjob.cpp
|
||||
+++ b/src/gui/kterminallauncherjob.cpp
|
||||
@@ -22,7 +22,7 @@ public:
|
||||
QString m_fullCommand; // "xterm -e ls"
|
||||
QString m_desktopName;
|
||||
QByteArray m_startupId;
|
||||
- QProcessEnvironment m_environment;
|
||||
+ QProcessEnvironment m_environment{QProcessEnvironment::InheritFromParent};
|
||||
};
|
||||
|
||||
KTerminalLauncherJob::KTerminalLauncherJob(const QString &command, QObject *parent)
|
||||
--
|
||||
GitLab
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
project pkg {
|
||||
rpm {
|
||||
spec = "kf6-kio.spec"
|
||||
}
|
||||
labels {
|
||||
extra = 1
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,321 @@
|
||||
%global framework kio
|
||||
|
||||
%global stable_kf6 stable
|
||||
%global majmin_ver_kf6 6.7
|
||||
|
||||
Name: kf6-%{framework}
|
||||
Version: %{majmin_ver_kf6}.0
|
||||
Release: 2%{?dist}.switcheroo
|
||||
Summary: KDE Frameworks 6 Tier 3 solution for filesystem abstraction
|
||||
|
||||
License: BSD-2-Clause AND BSD-3-Clause AND CC0-1.0 AND GPL-2.0-only AND GPL-2.0-or-later AND GPL-3.0-only AND LGPL-2.0-only AND LGPL-2.0-or-later AND LGPL-2.1-only AND LGPL-2.1-or-later AND LGPL-3.0-only AND (GPL-2.0-only OR GPL-3.0-only) AND (LGPL-2.1-only OR LGPL-3.0-only) AND MIT
|
||||
URL: https://invent.kde.org/frameworks/%{framework}
|
||||
|
||||
Source0: https://download.kde.org/%{stable_kf6}/frameworks/%{majmin_ver_kf6}/%{framework}-%{version}.tar.xz
|
||||
|
||||
# https://invent.kde.org/frameworks/kio/-/issues/26
|
||||
# I'm not sending this upstream because I'm not sure it's really
|
||||
# exactly what upstream will want, but it solves the practical
|
||||
# issue for us for now
|
||||
Patch0: 0001-Give-the-kuriikwsfiltereng_private-a-VERSION-and-SOV.patch
|
||||
|
||||
%if 0%{?flatpak}
|
||||
# Disable the help: and ghelp: protocol for Flatpak builds, to avoid depending
|
||||
# on the docbook stack.
|
||||
Patch101: kio-no-help-protocol.patch
|
||||
%endif
|
||||
|
||||
# https://invent.kde.org/frameworks/kio/-/merge_requests/1556
|
||||
Patch201: 1556.patch
|
||||
|
||||
BuildRequires: extra-cmake-modules
|
||||
BuildRequires: gcc-c++
|
||||
BuildRequires: kf6-rpm-macros
|
||||
BuildRequires: cmake
|
||||
BuildRequires: cmake(KF6Archive)
|
||||
BuildRequires: cmake(KF6Crash)
|
||||
BuildRequires: cmake(KF6Solid)
|
||||
BuildRequires: switcheroo-control
|
||||
BuildRequires: cmake(KF6ColorScheme)
|
||||
BuildRequires: cmake(KF6Config)
|
||||
BuildRequires: cmake(KF6CoreAddons)
|
||||
BuildRequires: cmake(KF6DBusAddons)
|
||||
BuildRequires: cmake(KF6DocTools)
|
||||
BuildRequires: cmake(KF6GuiAddons)
|
||||
BuildRequires: cmake(KF6I18n)
|
||||
BuildRequires: cmake(KF6Service)
|
||||
BuildRequires: qt6-qtbase-private-devel
|
||||
BuildRequires: cmake(KF6Bookmarks)
|
||||
BuildRequires: cmake(KF6Completion)
|
||||
BuildRequires: cmake(KF6ConfigWidgets)
|
||||
BuildRequires: cmake(KF6IconThemes)
|
||||
BuildRequires: cmake(KF6ItemViews)
|
||||
BuildRequires: cmake(KF6JobWidgets)
|
||||
BuildRequires: cmake(KF6WindowSystem)
|
||||
BuildRequires: cmake(KF6Notifications)
|
||||
BuildRequires: cmake(KF6Wallet)
|
||||
BuildRequires: cmake(KF6WidgetsAddons)
|
||||
BuildRequires: cmake(KF6XmlGui)
|
||||
|
||||
BuildRequires: libacl-devel
|
||||
%if !0%{?flatpak}
|
||||
BuildRequires: libxml2-devel
|
||||
BuildRequires: libxslt-devel
|
||||
%endif
|
||||
BuildRequires: pkgconfig(blkid)
|
||||
BuildRequires: pkgconfig(mount)
|
||||
BuildRequires: pkgconfig(xkbcommon)
|
||||
BuildRequires: zlib-devel
|
||||
|
||||
BuildRequires: qt6-qtbase-devel
|
||||
BuildRequires: cmake(Qt6UiPlugin)
|
||||
BuildRequires: cmake(Qt6Qml)
|
||||
|
||||
BuildRequires: cmake(KF6KDED)
|
||||
BuildRequires: cmake(Qt6Core5Compat)
|
||||
|
||||
Requires: %{name}-core%{?_isa} = %{version}-%{release}
|
||||
Requires: %{name}-widgets%{?_isa} = %{version}-%{release}
|
||||
Requires: %{name}-file-widgets%{?_isa} = %{version}-%{release}
|
||||
Requires: %{name}-gui%{?_isa} = %{version}-%{release}
|
||||
|
||||
Requires: kf6-kded
|
||||
|
||||
%description
|
||||
KDE Frameworks 6 Tier 3 solution for filesystem abstraction
|
||||
|
||||
%package devel
|
||||
Summary: Development files for %{name}
|
||||
Requires: %{name} = %{version}-%{release}
|
||||
Requires: kf6-kbookmarks-devel
|
||||
Requires: cmake(KF6Completion)
|
||||
Requires: cmake(KF6Config)
|
||||
Requires: cmake(KF6CoreAddons)
|
||||
Requires: cmake(KF6ItemViews)
|
||||
Requires: cmake(KF6JobWidgets)
|
||||
Requires: cmake(KF6Service)
|
||||
Requires: cmake(KF6Solid)
|
||||
Requires: cmake(KF6XmlGui)
|
||||
Requires: cmake(KF6WindowSystem)
|
||||
Requires: qt6-qtbase-devel
|
||||
%description devel
|
||||
The %{name}-devel package contains libraries and header files for
|
||||
developing applications that use %{name}.
|
||||
|
||||
%package doc
|
||||
Summary: Documentation files for %{name}
|
||||
Requires: %{name}-core = %{version}-%{release}
|
||||
BuildArch: noarch
|
||||
%description doc
|
||||
Documentation for %{name}.
|
||||
|
||||
%package core
|
||||
Summary: Core components of the KIO Framework
|
||||
%{?kf6_kinit_requires}
|
||||
Requires: %{name}-core-libs%{?_isa} = %{version}-%{release}
|
||||
Requires: %{name}-doc = %{version}-%{release}
|
||||
Requires: kf6-filesystem
|
||||
Recommends: switcheroo-control
|
||||
%description core
|
||||
KIOCore library provides core non-GUI components for working with KIO.
|
||||
|
||||
%package core-libs
|
||||
Summary: Runtime libraries for KIO Core
|
||||
Requires: %{name}-core%{?_isa} = %{version}-%{release}
|
||||
%description core-libs
|
||||
%{summary}.
|
||||
|
||||
%package widgets
|
||||
Summary: Widgets for KIO Framework
|
||||
## org.kde.klauncher6 service referenced from : widgets/krun.cpp
|
||||
## included here for completeness, even those -core already has a dependency.
|
||||
%{?kf6_kinit_requires}
|
||||
Requires: %{name}-core%{?_isa} = %{version}-%{release}
|
||||
%description widgets
|
||||
KIOWidgets contains classes that provide generic job control, progress
|
||||
reporting, etc.
|
||||
|
||||
%package widgets-libs
|
||||
Summary: Runtime libraries for KIO Widgets library
|
||||
Requires: %{name}-widgets%{?_isa} = %{version}-%{release}
|
||||
%description widgets-libs
|
||||
%{summary}.
|
||||
|
||||
%package file-widgets
|
||||
Summary: Widgets for file-handling for KIO Framework
|
||||
Requires: %{name}-widgets%{?_isa} = %{version}-%{release}
|
||||
%description file-widgets
|
||||
The KIOFileWidgets library provides the file selection dialog and
|
||||
its components.
|
||||
|
||||
%package gui
|
||||
Summary: Gui components for the KIO Framework
|
||||
Requires: %{name}-core%{?_isa} = %{version}-%{release}
|
||||
%description gui
|
||||
%{summary}.
|
||||
|
||||
%package qch-doc
|
||||
Summary: Developer Documentation files for %{name}
|
||||
BuildArch: noarch
|
||||
%description qch-doc
|
||||
Developer Documentation files for %{name} for use with KDevelop or QtCreator.
|
||||
|
||||
|
||||
%prep
|
||||
%autosetup -n %{framework}-%{version} -p1
|
||||
|
||||
|
||||
%build
|
||||
%cmake_kf6
|
||||
%cmake_build
|
||||
|
||||
|
||||
%install
|
||||
%cmake_install
|
||||
%find_lang %{name} --all-name --with-man --with-html
|
||||
|
||||
%files
|
||||
%license LICENSES/*.txt
|
||||
%doc README.md
|
||||
|
||||
%files core
|
||||
%{_kf6_libexecdir}/kioexec
|
||||
%{_kf6_libexecdir}/kiod6
|
||||
%{_kf6_libexecdir}/kioworker
|
||||
%{_kf6_bindir}/ktelnetservice6
|
||||
%{_kf6_bindir}/ktrash6
|
||||
%{_kf6_plugindir}/kio/
|
||||
%{_kf6_plugindir}/kded/
|
||||
%{_kf6_plugindir}/kiod/
|
||||
%{_kf6_datadir}/kf6/searchproviders/*.desktop
|
||||
%{_kf6_datadir}/applications/*.desktop
|
||||
%{_datadir}/dbus-1/services/org.kde.*.service
|
||||
%{_kf6_datadir}/qlogging-categories6/*categories
|
||||
|
||||
%files core-libs
|
||||
%{_kf6_libdir}/libKF6KIOCore.so.*
|
||||
|
||||
%files doc -f %{name}.lang
|
||||
|
||||
%files gui
|
||||
%{_kf6_libdir}/libKF6KIOGui.so.*
|
||||
|
||||
%files widgets
|
||||
%dir %{_kf6_plugindir}/urifilters/
|
||||
%{_kf6_plugindir}/urifilters/*.so
|
||||
%{_kf6_libdir}/libkuriikwsfiltereng_private.so.*
|
||||
|
||||
%files widgets-libs
|
||||
%{_kf6_libdir}/libKF6KIOWidgets.so.*
|
||||
|
||||
%files file-widgets
|
||||
%{_kf6_libdir}/libKF6KIOFileWidgets.so.*
|
||||
|
||||
%files devel
|
||||
%{_kf6_includedir}/*
|
||||
%{_kf6_libdir}/*.so
|
||||
%{_kf6_libdir}/cmake/KF6KIO/
|
||||
%{_kf6_datadir}/kdevappwizard/templates/kioworker6.tar.bz2
|
||||
%{_kf6_qtplugindir}/designer/kio6widgets.so
|
||||
%{_qt6_docdir}/*.tags
|
||||
|
||||
%files qch-doc
|
||||
%{_qt6_docdir}/*.qch
|
||||
|
||||
%changelog
|
||||
* Fri Oct 04 2024 Steve Cossette <farchord@gmail.com> - 6.7.0-1
|
||||
- 6.7.0
|
||||
|
||||
* Mon Sep 16 2024 Steve Cossette <farchord@gmail.com> - 6.6.0-1
|
||||
- 6.6.0
|
||||
|
||||
* Sat Aug 10 2024 Steve Cossette <farchord@gmail.com> - 6.5.0-1
|
||||
- 6.5.0
|
||||
|
||||
* Fri Jul 19 2024 Steve Cossette <farchord@gmail.com> - 6.4.1-1
|
||||
- 6.4.1
|
||||
|
||||
* Thu Jul 18 2024 Steve Cossette <farchord@gmail.com> - 6.4.0-3
|
||||
- Fix for a regression in Frameworks 6.4.0
|
||||
|
||||
* Thu Jul 18 2024 Fedora Release Engineering <releng@fedoraproject.org> - 6.4.0-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
|
||||
|
||||
* Sat Jul 06 2024 Marc Deop i Argemí <marcdeop@fedoraproject.org> - 6.4.0-1
|
||||
- 6.4.0
|
||||
|
||||
* Sat Jun 01 2024 Marc Deop i Argemí <marcdeop@fedoraproject.org> - 6.3.0-1
|
||||
- 6.3.0
|
||||
|
||||
* Sat May 04 2024 Marc Deop i Argemí <marcdeop@fedoraproject.org> - 6.2.0-1
|
||||
- 6.2.0
|
||||
|
||||
* Wed Apr 10 2024 Marc Deop i Argemí <marcdeop@fedoraproject.org> - 6.1.0-1
|
||||
- 6.1.0
|
||||
|
||||
* Thu Apr 04 2024 Jan Grulich <jgrulich@redhat.com> - 6.0.0-7
|
||||
- Re-enable docs
|
||||
|
||||
* Thu Apr 04 2024 Jan Grulich <jgrulich@redhat.com> - 6.0.0-6
|
||||
- Rebuild (qt6)
|
||||
|
||||
* Fri Mar 15 2024 Marie Loise Nolden <loise@kde.org> - 6.0.0-5
|
||||
- add 6e7775d315f389df0a440ed62b842ce83dc9a27e.patch
|
||||
[kterminallauncherjob] Inherit default process environment from parent
|
||||
|
||||
* Mon Mar 11 2024 Yaakov Selkowitz <yselkowi@redhat.com> - 6.0.0-4
|
||||
- Soften switcheroo-control dependency
|
||||
|
||||
* Sat Mar 09 2024 Marie Loise Nolden <loise@kde.org> - 6.0.0-3
|
||||
- add missing BuildArch: noarch to -doc package
|
||||
|
||||
* Sat Mar 2 2024 Marie Loise Nolden <loise@kde.org> - 6.0.0-2
|
||||
- move qt designer plugin to -devel
|
||||
|
||||
* Wed Feb 21 2024 Marc Deop i Argemí <marcdeop@fedoraproject.org> - 6.0.0-1
|
||||
- 6.0.0
|
||||
|
||||
* Fri Feb 16 2024 Jan Grulich <jgrulich@redhat.com> - 5.249.0-2
|
||||
- Rebuild (qt6)
|
||||
|
||||
* Wed Jan 31 2024 Marc Deop i Argemí <marcdeop@fedoraproject.org> - 5.249.0-1
|
||||
- 5.249.0
|
||||
|
||||
* Thu Jan 25 2024 Fedora Release Engineering <releng@fedoraproject.org> - 5.248.0-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||
|
||||
* Sun Jan 21 2024 Fedora Release Engineering <releng@fedoraproject.org> - 5.248.0-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||
|
||||
* Wed Jan 10 2024 Marc Deop i Argemí <marcdeop@fedoraproject.org> - 5.248.0-1
|
||||
- 5.248.0
|
||||
|
||||
* Tue Jan 09 2024 Marie Loise Nolden <loise@kde.org> - 5.247.0-2
|
||||
- add doc package for KF6 API
|
||||
|
||||
* Wed Dec 20 2023 Marc Deop i Argemí <marcdeop@fedoraproject.org> - 5.247.0-1
|
||||
- 5.247.0
|
||||
|
||||
* Sat Dec 02 2023 Justin Zobel <justin.zobel@gmail.com> - 5.246.0-1
|
||||
- Update to 5.246.0
|
||||
|
||||
* Wed Nov 29 2023 Jan Grulich <jgrulich@redhat.com> - 5.245.0-3
|
||||
- Rebuild (qt6)
|
||||
|
||||
* Mon Nov 20 2023 Alessandro Astone <ales.astone@gmail.com> - 5.245.0-2
|
||||
- Add back kuriikwsfiltereng SOVERSION patch
|
||||
|
||||
* Thu Nov 09 2023 Steve Cossette <farchord@gmail.com> - 5.245.0-1
|
||||
- 5.245.0
|
||||
|
||||
* Tue Oct 17 2023 Jan Grulich <jgrulich@redhat.com> - 5.240.0^20231010.060359.1c34fd4-4
|
||||
- Rebuild (qt6)
|
||||
|
||||
* Mon Oct 16 2023 Adam Williamson <awilliam@redhat.com> - 5.240.0^20231010.060359.1c34fd4-3
|
||||
- Give kuriikwsfiltereng_private library a proper soname to fix deps
|
||||
|
||||
* Mon Oct 09 2023 Steve Cossette <farchord@gmail.com> - 5.240.0^20231010.060359.1c34fd4-2
|
||||
- Fixed a problem with the -doc subpackage building differently on different arches.
|
||||
|
||||
* Mon Oct 09 2023 Steve Cossette <farchord@gmail.com> - 5.240.0^20231010.060359.1c34fd4-1
|
||||
- Initial Release
|
||||
Reference in New Issue
Block a user