[libgweather/ebassi/gtk4: 1/5] Bump up the API version of libgweather
- From: Emmanuele Bassi <ebassi src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libgweather/ebassi/gtk4: 1/5] Bump up the API version of libgweather
- Date: Wed, 13 Oct 2021 12:04:02 +0000 (UTC)
commit c4c161445d95c0a9e48b59f893988ef1f043e16a
Author: Emmanuele Bassi <ebassi gnome org>
Date: Wed Oct 13 12:35:34 2021 +0100
Bump up the API version of libgweather
We're now at 4.0. The version bump requires some additional changes:
- the project version is 3.90, while we are in a development cycle
- the main gettext domain has been changed to libgweather-4.0
- the gettext domain for the locations has been changed to
libgweather-4.0-locations
- the settings schemas have been changed to org.gnome.GWeather4
- the soname of the shared library has been changed to match the
versioning scheme used by GLib and GTK
.gitlab-ci.yml | 2 +-
doc/meson.build | 2 +-
libgweather/gweather-location.c | 5 +--
libgweather/gweather-timezone.c | 4 +--
libgweather/gweather-weather.c | 6 ++--
libgweather/meson.build | 39 ++++++++++++----------
libgweather/tests/test_libgweather.c | 12 +++----
meson.build | 26 +++++----------
po-locations/meson.build | 3 +-
po/meson.build | 3 +-
schemas/meson.build | 6 ++--
...gschema.xml => org.gnome.GWeather4.gschema.xml} | 12 +++----
12 files changed, 56 insertions(+), 64 deletions(-)
---
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index c1d706f6..b1b10dc0 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -232,7 +232,7 @@ reference:
vala
MESON_VERSION: "0.55.3"
DOCS_FLAGS: -Dgtk_doc=true
- DOCS_PATH: doc/libgweather-3.0
+ DOCS_PATH: doc/libgweather-4.0
pages:
stage: deploy
diff --git a/doc/meson.build b/doc/meson.build
index 7e18715b..7ee4cd0a 100644
--- a/doc/meson.build
+++ b/doc/meson.build
@@ -21,7 +21,7 @@ if get_option('gtk_doc') and get_option('introspection')
custom_target('libgweather-doc',
input: gweather_gir[0],
- output: 'libgweather-3.0',
+ output: libgweather_full_version,
command: [
gidocgen,
'generate',
diff --git a/libgweather/gweather-location.c b/libgweather/gweather-location.c
index f999050f..760f1eca 100644
--- a/libgweather/gweather-location.c
+++ b/libgweather/gweather-location.c
@@ -289,10 +289,11 @@ gweather_location_get_name (GWeatherLocation *loc)
msgctxt = EMPTY_TO_NULL (db_i18n_get_msgctxt (db_location_get_name (loc->ref)));
if (msgctxt) {
- loc->_local_name = g_strdup (g_dpgettext2 ("libgweather-locations",
+ loc->_local_name = g_strdup (g_dpgettext2 (LOCATIONS_GETTEXT_PACKAGE,
msgctxt, english_name));
} else {
- loc->_local_name = g_strdup (g_dgettext ("libgweather-locations", english_name));
+ loc->_local_name = g_strdup (g_dgettext (LOCATIONS_GETTEXT_PACKAGE,
+ english_name));
}
return loc->_local_name;
} else {
diff --git a/libgweather/gweather-timezone.c b/libgweather/gweather-timezone.c
index 7b4327cc..87d2100f 100644
--- a/libgweather/gweather-timezone.c
+++ b/libgweather/gweather-timezone.c
@@ -304,9 +304,9 @@ gweather_timezone_get_name (GWeatherTimezone *zone)
return NULL;
if (msgctxt)
- zone->_name = g_strdup (g_dpgettext2 ("libgweather-locations", msgctxt, name));
+ zone->_name = g_strdup (g_dpgettext2 (LOCATIONS_GETTEXT_PACKAGE, msgctxt, name));
else
- zone->_name = g_strdup (g_dgettext ("libgweather-locations", name));
+ zone->_name = g_strdup (g_dgettext (LOCATIONS_GETTEXT_PACKAGE, name));
return zone->_name;
}
diff --git a/libgweather/gweather-weather.c b/libgweather/gweather-weather.c
index 3e8b60a6..98b3998a 100644
--- a/libgweather/gweather-weather.c
+++ b/libgweather/gweather-weather.c
@@ -75,9 +75,9 @@ _gweather_gettext_init (void)
bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
#endif
- bindtextdomain ("libgweather-locations", GNOMELOCALEDIR);
+ bindtextdomain (LOCATIONS_GETTEXT_PACKAGE, GNOMELOCALEDIR);
#ifdef HAVE_BIND_TEXTDOMAIN_CODESET
- bind_textdomain_codeset ("libgweather-locations", "UTF-8");
+ bind_textdomain_codeset (LOCATIONS_GETTEXT_PACKAGE, "UTF-8");
#endif
g_once_init_leave (&gweather_gettext_initialized, TRUE);
@@ -563,7 +563,7 @@ void
gweather_info_init (GWeatherInfo *info)
{
info->providers = GWEATHER_PROVIDER_METAR | GWEATHER_PROVIDER_IWIN;
- info->settings = g_settings_new ("org.gnome.GWeather");
+ info->settings = g_settings_new ("org.gnome.GWeather4");
g_signal_connect_object (info->settings, "changed",
G_CALLBACK (settings_changed_cb), info, 0);
diff --git a/libgweather/meson.build b/libgweather/meson.build
index a534bfd6..ccd8995b 100644
--- a/libgweather/meson.build
+++ b/libgweather/meson.build
@@ -22,16 +22,17 @@ add_project_arguments(c_compiler.get_supported_arguments([
'-Werror=missing-include-dirs',
]), language: 'c')
-header_subdir = 'libgweather-3.0/libgweather'
-
-# convert to soname
-current = libgweather_lt_c - libgweather_lt_a
-interface_age = libgweather_lt_r
-libgweather_so_version = '@0@.@1@.@2@'.format(
- current,
- libgweather_lt_a,
- interface_age,
-)
+header_subdir = libgweather_full_version / 'libgweather'
+
+libgweather_major = libgweather_version[0].to_int()
+libgweather_minor = libgweather_version[1].to_int()
+libgweather_micro = libgweather_version[2].to_int()
+interface_age = libgweather_minor.is_odd() ? 0 : libgweather_micro
+binary_age = libgweather_minor * 100 + libgweather_micro
+current = binary_age - interface_age
+
+libgweather_soversion = 0
+libgweather_library_version = '@0@.@1@.@2@'.format(libgweather_soversion, current, interface_age)
libgweather_darwin_versions = [
current + 1,
@@ -40,6 +41,7 @@ libgweather_darwin_versions = [
config_h = configuration_data()
config_h.set_quoted('GETTEXT_PACKAGE', GETTEXT_PACKAGE)
+config_h.set_quoted('LOCATIONS_GETTEXT_PACKAGE', LOCATIONS_GETTEXT_PACKAGE)
config_h.set_quoted('LOCALEDIR', datadir / 'locale')
config_h.set_quoted('GNOMELOCALEDIR', datadir / 'locale')
config_h.set_quoted('G_LOG_DOMAIN', 'GWeather')
@@ -80,9 +82,9 @@ configure_file(
)
versionconf = configuration_data()
-versionconf.set('GWEATHER_MAJOR_VERSION', libgweather_version[0])
-versionconf.set('GWEATHER_MINOR_VERSION', libgweather_version[1])
-versionconf.set('GWEATHER_MICRO_VERSION', libgweather_version[2])
+versionconf.set('GWEATHER_MAJOR_VERSION', libgweather_major)
+versionconf.set('GWEATHER_MINOR_VERSION', libgweather_minor)
+versionconf.set('GWEATHER_MICRO_VERSION', libgweather_micro)
versionconf.set_quoted('GWEATHER_VERSION', meson.project_version())
configure_file(
input: 'gweather-version.h.in',
@@ -164,10 +166,11 @@ libgweather_static_dep = declare_dependency(sources: gweather_c_sources,
link_with: libgweather_static,
)
-lib_libgweather = shared_library('gweather-3',
+lib_libgweather = shared_library('gweather-4',
dependencies: deps_libgweather,
link_whole: libgweather_static,
- version: libgweather_so_version,
+ soversion: libgweather_soversion,
+ version: libgweather_library_version,
gnu_symbol_visibility: 'hidden',
darwin_versions: libgweather_darwin_versions,
include_directories: [
@@ -191,12 +194,12 @@ if build_gir
gweather_gir = gnome.generate_gir(lib_libgweather,
sources: introspection_sources,
dependencies: deps_libgweather,
- nsversion: '3.0',
+ nsversion: libgweather_api_version,
namespace: 'GWeather',
includes: ['GObject-2.0', 'Gtk-3.0'],
symbol_prefix: 'gweather',
identifier_prefix: 'GWeather',
- export_packages: 'gweather-3.0',
+ export_packages: 'gweather-' + libgweather_api_version,
header: 'libgweather/gweather.h',
extra_args: [
'--warn-all',
@@ -220,7 +223,7 @@ libgweather_dep = declare_dependency(
)
if build_vapi and build_gir
- gnome.generate_vapi('gweather-3.0',
+ gnome.generate_vapi('gweather-' + libgweather_api_version,
sources: gweather_gir[0],
packages: ['gobject-2.0', 'gtk+-3.0'],
metadata_dirs: '.',
diff --git a/libgweather/tests/test_libgweather.c b/libgweather/tests/test_libgweather.c
index d00159d4..1cc8a49b 100644
--- a/libgweather/tests/test_libgweather.c
+++ b/libgweather/tests/test_libgweather.c
@@ -457,22 +457,22 @@ set_gsettings (void)
g_assert_nonnull (tmpdir);
/* Copy the schemas files */
- g_assert_true (g_file_get_contents (SCHEMAS_BUILDDIR "/org.gnome.GWeather.enums.xml", &schema_text,
NULL, NULL));
- dest = g_strdup_printf ("%s/org.gnome.GWeather.enums.xml", tmpdir);
+ g_assert_true (g_file_get_contents (SCHEMAS_BUILDDIR "/org.gnome.GWeather4.enums.xml", &schema_text,
NULL, NULL));
+ dest = g_build_filename (tmpdir, "org.gnome.GWeather4.enums.xml", NULL);
g_assert_true (g_file_set_contents (dest, schema_text, -1, NULL));
g_free (dest);
g_free (schema_text);
- g_assert_true (g_file_get_contents (SCHEMASDIR "/org.gnome.GWeather.gschema.xml", &schema_text, NULL,
NULL));
- dest = g_strdup_printf ("%s/org.gnome.GWeather.gschema.xml", tmpdir);
+ g_assert_true (g_file_get_contents (SCHEMASDIR "/org.gnome.GWeather4.gschema.xml", &schema_text,
NULL, NULL));
+ dest = g_build_filename (tmpdir, "org.gnome.GWeather4.gschema.xml", NULL);
g_assert_true (g_file_set_contents (dest, schema_text, -1, NULL));
g_free (dest);
g_free (schema_text);
/* Compile the schemas */
cmdline = g_strdup_printf ("glib-compile-schemas --targetdir=%s "
- "--schema-file=%s/org.gnome.GWeather.enums.xml "
- "--schema-file=%s/org.gnome.GWeather.gschema.xml",
+ "--schema-file=%s/org.gnome.GWeather4.enums.xml "
+ "--schema-file=%s/org.gnome.GWeather4.gschema.xml",
tmpdir, SCHEMAS_BUILDDIR, SCHEMASDIR);
g_assert_true (g_spawn_command_line_sync (cmdline, NULL, NULL, &result, NULL));
g_assert_cmpint (result, ==, 0);
diff --git a/meson.build b/meson.build
index 136dcdc4..774342d0 100644
--- a/meson.build
+++ b/meson.build
@@ -1,5 +1,5 @@
project('libgweather', 'c',
- version: '40.0',
+ version: '3.90.0',
license: 'GPL-2.0-or-later',
meson_version: '>= 0.55.0',
default_options: [
@@ -9,20 +9,9 @@ project('libgweather', 'c',
],
)
-# Add another 0, so that we can release without a suffix
-libgweather_version = meson.project_version().split('.') + [0]
-
-# We use libtool-version numbers because it's easier to understand.
-# Before making a release, the libgweather_so_*
-# numbers should be modified. The components are of the form C:R:A.
-# a) If binary compatibility has been broken (eg removed or changed interfaces)
-# change to C+1:0:0.
-# b) If interfaces have been changed or added, but binary compatibility has
-# been preserved, change to C+1:0:A+1
-# c) If the interface is the same as the previous version, change to C:R+1:A
-libgweather_lt_c=16
-libgweather_lt_r=0
-libgweather_lt_a=0
+libgweather_version = meson.project_version().split('.')
+libgweather_api_version = '4.0'
+libgweather_full_version = '@0@-@1@'.format(meson.project_name(), libgweather_api_version)
pkgconfig = import('pkgconfig')
gnome = import('gnome')
@@ -45,7 +34,8 @@ gtk_req_version = '>= 3.13.5'
libsoup_req_version = '>= 2.44.0'
libxml_req_version = '>= 2.6.0'
-GETTEXT_PACKAGE = 'libgweather-3.0'
+GETTEXT_PACKAGE = libgweather_full_version
+LOCATIONS_GETTEXT_PACKAGE = libgweather_full_version + '-locations'
pylint = find_program('pylint-3', 'pylint3', 'pylint', required: false)
pylint_flags = [
@@ -77,12 +67,12 @@ subdir('po-locations')
meson.add_install_script('build-aux/meson/meson_post_install.py')
pkgconfig.generate(
- filebase: 'gweather-3.0',
+ filebase: 'gweather-' + libgweather_api_version,
name: 'GWeather',
description: 'GWeather shared library',
version: meson.project_version(),
libraries: lib_libgweather,
- subdirs: 'libgweather-3.0',
+ subdirs: libgweather_full_version,
requires: [
'gtk+-3.0',
],
diff --git a/po-locations/meson.build b/po-locations/meson.build
index 7aa587da..ed14742a 100644
--- a/po-locations/meson.build
+++ b/po-locations/meson.build
@@ -1,5 +1,4 @@
# XXX: This should be a files() object in data/ but i18n.gettext() does not
# like that with Meson 0.43
locations_its = join_paths(meson.current_source_dir(), '../data/locations.its')
-i18n.gettext('libgweather-locations',
- args: ['--its', locations_its])
+i18n.gettext(LOCATIONS_GETTEXT_PACKAGE, args: ['--its', locations_its])
diff --git a/po/meson.build b/po/meson.build
index 0136c4c8..a9e1d3e6 100644
--- a/po/meson.build
+++ b/po/meson.build
@@ -1,2 +1 @@
-i18n.gettext('libgweather-3.0',
- preset: 'glib')
+i18n.gettext(GETTEXT_PACKAGE, preset: 'glib')
diff --git a/schemas/meson.build b/schemas/meson.build
index 677e4ef5..3226aef0 100644
--- a/schemas/meson.build
+++ b/schemas/meson.build
@@ -1,12 +1,12 @@
gsettingsdir = datadir / 'glib-2.0/schemas'
-install_data('org.gnome.GWeather.gschema.xml',
+install_data('org.gnome.GWeather4.gschema.xml',
install_dir: gsettingsdir,
)
-gnome.mkenums('org.gnome.GWeather.enums.xml',
+gnome.mkenums('org.gnome.GWeather4.enums.xml',
comments: '<!-- @comment@ -->',
fhead: '<schemalist>',
- vhead: '<@type@ id="org.gnome.GWeather.@EnumName@">',
+ vhead: '<@type@ id="org.gnome.GWeather4.@EnumName@">',
vprod: '<value nick="@valuenick@" value="@valuenum@"/>',
vtail: '</@type@>',
ftail: '</schemalist>',
diff --git a/schemas/org.gnome.GWeather.gschema.xml b/schemas/org.gnome.GWeather4.gschema.xml
similarity index 85%
rename from schemas/org.gnome.GWeather.gschema.xml
rename to schemas/org.gnome.GWeather4.gschema.xml
index 14818425..43de2361 100644
--- a/schemas/org.gnome.GWeather.gschema.xml
+++ b/schemas/org.gnome.GWeather4.gschema.xml
@@ -1,5 +1,5 @@
-<schemalist gettext-domain="libgweather-3.0">
- <schema id="org.gnome.GWeather" path="/org/gnome/GWeather/">
+<schemalist gettext-domain="libgweather-4.0">
+ <schema id="org.gnome.GWeather4" path="/org/gnome/GWeather4/">
<key name="radar" type="s">
<default>''</default>
<summary>URL for the radar map</summary>
@@ -8,7 +8,7 @@
for disabling radar maps.
</description>
</key>
- <key name="temperature-unit" enum="org.gnome.GWeather.GWeatherTemperatureUnit">
+ <key name="temperature-unit" enum="org.gnome.GWeather4.GWeatherTemperatureUnit">
<default>'default'</default>
<summary>Temperature unit</summary>
<description>
@@ -16,7 +16,7 @@
“centigrade” and “fahrenheit”.
</description>
</key>
- <key name="distance-unit" enum="org.gnome.GWeather.GWeatherDistanceUnit">
+ <key name="distance-unit" enum="org.gnome.GWeather4.GWeatherDistanceUnit">
<default>'default'</default>
<summary>Distance unit</summary>
<description>
@@ -24,7 +24,7 @@
distance of important events). Valid values are “meters”, “km” and “miles”.
</description>
</key>
- <key name="speed-unit" enum="org.gnome.GWeather.GWeatherSpeedUnit">
+ <key name="speed-unit" enum="org.gnome.GWeather4.GWeatherSpeedUnit">
<default>'default'</default>
<summary>Speed unit</summary>
<description>
@@ -33,7 +33,7 @@
per hour), “knots” and “bft” (Beaufort scale).
</description>
</key>
- <key name="pressure-unit" enum="org.gnome.GWeather.GWeatherPressureUnit">
+ <key name="pressure-unit" enum="org.gnome.GWeather4.GWeatherPressureUnit">
<default>'default'</default>
<summary>Pressure unit</summary>
<description>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]