Update to drop GTK3 dependency

There's a few things going on here, that unfortunately must
happen in lockstep:

- The gnome-desktop-3.0 dependency gets replaced by gnome-desktop-4
  and gnome-bg-4. The code in ui/background.js required minor updates.
- The libnma dependency gets replaced by a libnma4 dependency. The
  code in misc/modemManager.js required minor updates.
- The gtk3 dependency is torn down everywhere but tests. Some
  missing GdkPixbuf dependencies had to be added to compensate for
  its lack.
- gtk_init_check() is no longer called

As a result, we replace a hard gtk3 dependency with a soft gtk4
run-time linking one, only added indirectly through gnome-bg-4
and libnma4.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2655>
This commit is contained in:
Carlos Garnacho 2023-02-22 01:39:21 +01:00 committed by Marge Bot
parent 1a06d93e95
commit 656efd33af
7 changed files with 15 additions and 21 deletions

View File

@ -1,7 +1,7 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
/* exported ModemBase, ModemGsm, ModemCdma, BroadbandModem */
const { Gio, GObject, NM, NMA } = imports.gi;
const {Gio, GObject, NM, NMA4} = imports.gi;
const { loadInterfaceXML } = imports.misc.fileUtils;
@ -14,7 +14,7 @@ let _mpd;
function _getMobileProvidersDatabase() {
if (_mpd == null) {
try {
_mpd = new NMA.MobileProvidersDatabase();
_mpd = new NMA4.MobileProvidersDatabase();
_mpd.init(null);
} catch (e) {
log(e.message);

View File

@ -94,7 +94,7 @@
// MetaBackgroundImage MetaBackgroundImage
// MetaBackgroundImage MetaBackgroundImage
const { Clutter, GDesktopEnums, Gio, GLib, GObject, GnomeDesktop, Meta } = imports.gi;
const {Clutter, GDesktopEnums, Gio, GLib, GObject, GnomeBG, GnomeDesktop, Meta} = imports.gi;
const Signals = imports.misc.signals;
const LoginManager = imports.misc.loginManager;
@ -642,7 +642,7 @@ var BackgroundSource = class BackgroundSource {
};
var Animation = GObject.registerClass(
class Animation extends GnomeDesktop.BGSlideShow {
class Animation extends GnomeBG.BGSlideShow {
_init(params) {
super._init(params);

View File

@ -9,21 +9,20 @@ imports.gi.versions.Atspi = '2.0';
imports.gi.versions.Clutter = Config.LIBMUTTER_API_VERSION;
imports.gi.versions.Cogl = Config.LIBMUTTER_API_VERSION;
imports.gi.versions.Gcr = '4';
imports.gi.versions.Gdk = '3.0';
imports.gi.versions.Gdm = '1.0';
imports.gi.versions.Geoclue = '2.0';
imports.gi.versions.Gio = '2.0';
imports.gi.versions.GDesktopEnums = '3.0';
imports.gi.versions.GdkPixbuf = '2.0';
imports.gi.versions.GnomeBluetooth = '3.0';
imports.gi.versions.GnomeDesktop = '3.0';
imports.gi.versions.GnomeBG = '4.0';
imports.gi.versions.GnomeDesktop = '4.0';
imports.gi.versions.Graphene = '1.0';
imports.gi.versions.Gtk = '3.0';
imports.gi.versions.GWeather = '4.0';
imports.gi.versions.IBus = '1.0';
imports.gi.versions.Malcontent = '0';
imports.gi.versions.NM = '1.0';
imports.gi.versions.NMA = '1.0';
imports.gi.versions.NMA4 = '1.0';
imports.gi.versions.Pango = '1.0';
imports.gi.versions.Polkit = '1.0';
imports.gi.versions.PolkitAgent = '1.0';

View File

@ -30,7 +30,7 @@ polkit_req = '>= 0.100'
schemas_req = '>= 42.beta'
startup_req = '>= 0.11'
ibus_req = '>= 1.5.19'
gnome_desktop_req = '>= 3.35.90'
gnome_desktop_req = '>= 40'
nm_req = '>= 1.10.4'
secret_req = '>= 0.18'
@ -89,7 +89,7 @@ startup_dep = dependency('libstartup-notification-1.0', version: startup_req)
ibus_dep = dependency('ibus-1.0', version: ibus_req)
x11_dep = dependency('x11')
schemas_dep = dependency('gsettings-desktop-schemas', version: schemas_req)
gnome_desktop_dep = dependency('gnome-desktop-3.0', version: gnome_desktop_req)
gnome_desktop_dep = dependency('gnome-desktop-4', version: gnome_desktop_req)
nm_deps = []
if get_option('networkmanager')

View File

@ -10,7 +10,6 @@
#include <cogl-pango/cogl-pango.h>
#include <clutter/clutter.h>
#include <gtk/gtk.h>
#include <glib-unix.h>
#include <glib/gi18n-lib.h>
#include <girepository.h>
@ -474,12 +473,8 @@ list_modes (const char *option_name,
/* Many of our imports require global to be set, so rather than
* tayloring our imports carefully here to avoid that dependency,
* we just set it.
* ShellGlobal has some GTK+ dependencies, so initialize GTK+; we
* don't really care if it fails though (e.g. when running from a tty),
* so we mute all warnings */
* we just set it. */
g_log_set_writer_func (shut_up, NULL, NULL);
gtk_init_check (NULL, NULL);
_shell_global_init (NULL);
global = shell_global_get ();

View File

@ -54,10 +54,9 @@ install_rpath = ':'.join([mutter_typelibdir, pkglibdir])
gnome_shell_deps = [
gio_unix_dep,
libxml_dep,
gtk_dep,
atk_bridge_dep,
gdk_pixbuf_dep,
gjs_dep,
gdk_x11_dep,
clutter_dep,
cogl_pango_dep,
startup_dep,
@ -215,7 +214,8 @@ libshell_gir_includes = [
'Clutter-@0@'.format(mutter_api_version),
'Meta-@0@'.format(mutter_api_version),
'Gcr-4',
'PolkitAgent-1.0'
'PolkitAgent-1.0',
'GdkPixbuf-2.0'
]
if have_networkmanager

View File

@ -182,7 +182,7 @@ st_cflags = [
libst = shared_library('st-1.0',
sources: st_gir_sources + st_nogir_sources + croco_sources,
c_args: st_cflags,
dependencies: [clutter_dep, gtk_dep, mutter_dep, libxml_dep, m_dep],
dependencies: [clutter_dep, mutter_dep, libxml_dep, gdk_pixbuf_dep, m_dep],
build_rpath: mutter_typelibdir,
install_rpath: mutter_typelibdir,
install_dir: pkglibdir,
@ -213,7 +213,7 @@ libst_gir = gnome.generate_gir(libst,
sources: st_gir_sources,
nsversion: '1.0',
namespace: 'St',
includes: ['Clutter-' + mutter_api_version, 'Cally-' + mutter_api_version, 'Meta-' + mutter_api_version, 'Gtk-3.0'],
includes: ['Clutter-' + mutter_api_version, 'Cally-' + mutter_api_version, 'Meta-' + mutter_api_version],
dependencies: [mutter_dep],
include_directories: include_directories('..'),
extra_args: ['-DST_COMPILATION', '--quiet'],