[gnome-shell] build: Add soup2 option



commit 1d607cf18f1467f1837e4e78f4648050c27739f3
Author: Florian Müllner <fmuellner gnome org>
Date:   Sun Aug 29 14:24:42 2021 +0200

    build: Add soup2 option
    
    !1940 added support for soup 3, including a fallback to soup 2.4
    where the newer version isn't available.
    
    Unfortunately it missed that libgweather has a hidden soup dependency,
    and now gnome-shell fails to start if a weather location has been set
    up and soup 3 is available.
    
    We don't have a good way to detect that case, so hide the soup 3 support
    behind a build option. Distributors are expected to switch it at the
    same time as libgweather.
    
    Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1966>

 js/misc/config.js.in | 2 ++
 js/misc/meson.build  | 1 +
 js/ui/environment.js | 2 ++
 meson.build          | 2 ++
 meson_options.txt    | 6 ++++++
 5 files changed, 13 insertions(+)
---
diff --git a/js/misc/config.js.in b/js/misc/config.js.in
index e54e280441..f9210397a1 100644
--- a/js/misc/config.js.in
+++ b/js/misc/config.js.in
@@ -8,6 +8,8 @@ var PACKAGE_VERSION = '@PACKAGE_VERSION@';
 var HAVE_BLUETOOTH = @HAVE_BLUETOOTH@;
 /* 1 if networkmanager is available, 0 otherwise */
 var HAVE_NETWORKMANAGER = @HAVE_NETWORKMANAGER@;
+/* 1 if soup3 support is enabled, 0 otherwise */
+var HAVE_SOUP2 = @HAVE_SOUP2@;
 /* gettext package */
 var GETTEXT_PACKAGE = '@GETTEXT_PACKAGE@';
 /* locale dir */
diff --git a/js/misc/meson.build b/js/misc/meson.build
index 2702c3dbc9..5825627111 100644
--- a/js/misc/meson.build
+++ b/js/misc/meson.build
@@ -5,6 +5,7 @@ jsconf.set('GETTEXT_PACKAGE', meson.project_name())
 jsconf.set('LIBMUTTER_API_VERSION', mutter_api_version)
 jsconf.set10('HAVE_BLUETOOTH', bt_dep.found())
 jsconf.set10('HAVE_NETWORKMANAGER', have_networkmanager)
+jsconf.set10('HAVE_SOUP2', have_soup2)
 jsconf.set('datadir', datadir)
 jsconf.set('libexecdir', libexecdir)
 
diff --git a/js/ui/environment.js b/js/ui/environment.js
index bd372ce26a..89ff701c70 100644
--- a/js/ui/environment.js
+++ b/js/ui/environment.js
@@ -12,6 +12,8 @@ imports.gi.versions.TelepathyGLib = '0.12';
 imports.gi.versions.TelepathyLogger = '0.2';
 
 try {
+    if (Config.HAVE_SOUP2)
+        throw new Error('Soup3 support not enabled');
     const Soup_ = imports.gi.Soup;
 } catch (e) {
     imports.gi.versions.Soup = '2.4';
diff --git a/meson.build b/meson.build
index 5e9053558d..5847500513 100644
--- a/meson.build
+++ b/meson.build
@@ -128,6 +128,8 @@ else
   have_systemd = false
 endif
 
+have_soup2 = get_option('soup2')
+
 if get_option('man')
   if fs.exists('man/gnome-shell.1')
     install_man('man/gnome-shell.1')
diff --git a/meson_options.txt b/meson_options.txt
index ef76b73c34..be9aa21f36 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -33,3 +33,9 @@ option('systemd',
   value: true,
   description: 'Enable systemd integration'
 )
+
+option('soup2',
+  type: 'boolean',
+  value: true,
+  description: 'Use Soup 2.4 instead of Soup 3. Must be in sync with libgweather'
+)


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]