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>
This commit is contained in:
Florian Müllner 2021-08-29 14:24:42 +02:00
parent 66ba806838
commit 1d607cf18f
5 changed files with 13 additions and 0 deletions

View File

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

View File

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

View File

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

View File

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

View File

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