[network-manager-applet: 1/2] nma/mobile-providers: also use the data file locations from pc files
- From: Lubomir Rintel <lkundrak src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [network-manager-applet: 1/2] nma/mobile-providers: also use the data file locations from pc files
- Date: Tue, 7 Aug 2018 06:46:53 +0000 (UTC)
commit 1755a31202ee4d1e223e91c1c505a614114393d5
Author: Jan Tojnar <jtojnar gmail com>
Date: Mon Aug 6 22:35:52 2018 +0200
nma/mobile-providers: also use the data file locations from pc files
If a distribution lacks global datadir (e.g. NixOS), libnma would not
be able to find mobile-data-provider-info and isocodes without user
having to add them to XDG_DATA_DIRS manually.
This patch allows falling back to the paths provided by pkg-config
files of the data packages, making it work on more exotic platforms.
Closes: https://gitlab.gnome.org/GNOME/network-manager-applet/issues/14
.gitlab-ci.yml | 5 +++++
config.h.meson | 3 +++
configure.ac | 23 +++++++++++++++++++++++
meson.build | 10 ++++++++++
meson_options.txt | 1 +
src/libnma/nma-mobile-providers.c | 10 ++++++++++
6 files changed, 52 insertions(+)
---
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index f2eb6f7f..fb656eb9 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -43,6 +43,7 @@
gobject-introspection-devel redhat-rpm-config
gtk-doc
iso-codes-devel
+ mobile-broadband-provider-info-devel
jansson-devel
ModemManager-glib-devel
libselinux-devel
@@ -66,6 +67,7 @@
-Dteam=false
-Dgcr=false
-Diso_codes=false
+ -Dmobile_broadband_provider_info=false
-Dld_gc=false
-Dgtk_doc=false
-Dintrospection=false
@@ -90,6 +92,7 @@
-Dteam=true
-Dgcr=true
-Diso_codes=true
+ -Dmobile_broadband_provider_info=true
-Dld_gc=true
-Dgtk_doc=true
-Dintrospection=true
@@ -114,6 +117,7 @@
--without-libnm-gtk
--disable-nls
--disable-iso-codes
+ --disable-mobile-broadband-provider-info
--disable-gtk-doc
--disable-introspection
--disable-schemas-compile
@@ -141,6 +145,7 @@
--without-libnm-gtk
--enable-nls
--enable-iso-codes
+ --enable-mobile-broadband-provider-info
--enable-gtk-doc
--enable-introspection
--enable-schemas-compile
diff --git a/config.h.meson b/config.h.meson
index 8e566348..c3ca560e 100644
--- a/config.h.meson
+++ b/config.h.meson
@@ -7,6 +7,9 @@
/* ISO codes prefix */
#mesondefine ISO_CODES_PREFIX
+/* Mobile Broadband Service Provider Information Database location */
+#mesondefine MOBILE_BROADBAND_PROVIDER_INFO_DATABASE
+
/* Define if more asserts are enabled */
#mesondefine NM_MORE_ASSERTS
diff --git a/configure.ac b/configure.ac
index 5f0f16e1..2c4aebe3 100644
--- a/configure.ac
+++ b/configure.ac
@@ -97,6 +97,29 @@ else
AC_DEFINE_UNQUOTED([ISO_CODES_PREFIX],["$prefix"],[ISO codes prefix])
fi
+# Check for mobile-broadband-provider-info for Mobile Broadband wizard
+AC_MSG_CHECKING([whether to disable mobile-broadband-provider-info at build-time])
+AC_ARG_ENABLE([mobile-broadband-provider-info],
+ AS_HELP_STRING([--disable-mobile-broadband-provider-info],[do not check for
mobile-broadband-provider-info at build-time]),
+ [],[disable_mobile_broadband_provider_info_check=no])
+if test x$disable_mobile_broadband_provider_info_check = xno ; then
+ AC_MSG_RESULT([no])
+else
+ AC_MSG_RESULT([yes])
+fi
+
+if test x$disable_mobile_broadband_provider_info_check = "xno" ; then
+ AC_DEFINE_UNQUOTED([MOBILE_BROADBAND_PROVIDER_INFO_DATABASE],["`$PKG_CONFIG --variable=database
mobile-broadband-provider-info`"],[Mobile Broadband Service Provider Information Database location])
+ PKG_CHECK_MODULES(MOBILE_BROADBAND_PROVIDER_INFO, [mobile-broadband-provider-info],
+ [],
+ [echo -e "\n$MOBILE_BROADBAND_PROVIDER_INFO_PKG_ERRORS.\n"
+ echo "Consider installing the package or adjusting the PKG_CONFIG_PATH environment variable."
+ echo "You can also disable build-time check for 'mobile-broadband-provider-info' via
--disable-mobile-broadband-provider-info";
+ exit 1;])
+else
+
AC_DEFINE_UNQUOTED([MOBILE_BROADBAND_PROVIDER_INFO_DATABASE],["$prefix/share/mobile-broadband-provider-info/serviceproviders.xml"],[Mobile
Broadband Service Provider Information Database location])
+fi
+
dnl
dnl API documentation
dnl
diff --git a/meson.build b/meson.build
index c78b03b0..4096b06d 100644
--- a/meson.build
+++ b/meson.build
@@ -130,6 +130,16 @@ else
config_h.set_quoted('ISO_CODES_PREFIX', nma_prefix)
endif
+# Check for mobile-broadband-provider-info for Mobile Broadband wizard
+enable_mobile_broadband_provider_info = get_option('mobile_broadband_provider_info')
+message('whether to enable mobile-broadband-provider-info at build-time: ' +
enable_mobile_broadband_provider_info.to_string())
+if enable_mobile_broadband_provider_info
+ mobile_broadband_provider_info_dep = dependency('mobile-broadband-provider-info')
+ config_h.set_quoted('MOBILE_BROADBAND_PROVIDER_INFO_DATABASE',
mobile_broadband_provider_info_dep.get_pkgconfig_variable('database'))
+else
+ config_h.set_quoted('MOBILE_BROADBAND_PROVIDER_INFO_DATABASE', join_paths(nma_prefix, 'share',
'mobile-broadband-provider-info', 'serviceproviders.xml'))
+endif
+
gio_dep = dependency('gio-2.0', version: '>= 2.38')
gmodule_export_dep = dependency('gmodule-export-2.0')
libsecret_dep = dependency('libsecret-1', version: '>= 0.18')
diff --git a/meson_options.txt b/meson_options.txt
index 0ea708cb..42240429 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -6,6 +6,7 @@ option('team', type: 'boolean', value: true, description: 'Enable team configura
option('gcr', type: 'boolean', value: true, description: 'Enable advanced certificate chooser.')
option('more_asserts', type: 'string', value: '0', description: 'Enable more assertions for debugging.')
option('iso_codes', type: 'boolean', value: true, description: 'check for iso-codes at build-time')
+option('mobile_broadband_provider_info', type: 'boolean', value: true, description: 'check for
mobile-broadband-provider-info at build-time')
option('ld_gc', type: 'boolean', value: true, description: 'Enable garbage collection of unused symbols on
linking')
option('gtk_doc', type: 'boolean', value: true, description: 'use gtk-doc to build documentation')
option('introspection', type: 'boolean', value: true, description: 'Enable introspection for this build')
diff --git a/src/libnma/nma-mobile-providers.c b/src/libnma/nma-mobile-providers.c
index abe77c18..dffcdf61 100644
--- a/src/libnma/nma-mobile-providers.c
+++ b/src/libnma/nma-mobile-providers.c
@@ -1016,6 +1016,12 @@ mobile_providers_parse_sync (const gchar *country_codes,
g_free (path);
}
+ if (!success) {
+ path = g_build_filename (ISO_CODES_PREFIX, "share", ISO_3166_COUNTRY_CODES, NULL);
+ success = read_country_codes (countries, path, cancellable, NULL);
+ g_free (path);
+ }
+
if (!success) {
g_warning ("Could not find the country codes file (%s): check your installation\n",
ISO_3166_COUNTRY_CODES);
@@ -1040,6 +1046,10 @@ mobile_providers_parse_sync (const gchar *country_codes,
g_free (path);
}
+ if (!success) {
+ success = read_service_providers (countries, MOBILE_BROADBAND_PROVIDER_INFO_DATABASE,
cancellable, NULL);
+ }
+
if (!success) {
g_warning ("Could not find the provider data (%s): check your installation\n",
MOBILE_BROADBAND_PROVIDER_INFO);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]