From 1011f5605256b4a14bd281575e8c076cec7714c8 Mon Sep 17 00:00:00 2001 From: eabdullin Date: Wed, 14 May 2025 16:06:23 +0000 Subject: [PATCH] import UBI libmodulemd-2.15.0-12.el10 --- .gitignore | 4 +- .libmodulemd.metadata | 2 - ...73709551615-buildorder-if-accept_ove.patch | 192 ----- SPECS/libmodulemd.spec | 484 ------------ libmodulemd.spec | 726 ++++++++++++++++++ ...ting-gtk-doc-module-paths-to-the-che.patch | 96 +++ ...ib-documentation-path-to-GLib-2.79.0.patch | 53 ++ ...ib-documentation-path-to-GLib-2.80.1.patch | 64 ++ modulemd-2.15.0.tar.xz.asc | 16 + sources | 2 + 10 files changed, 959 insertions(+), 680 deletions(-) delete mode 100644 .libmodulemd.metadata delete mode 100644 SOURCES/modulemd-2.13.0-Accept-18446744073709551615-buildorder-if-accept_ove.patch delete mode 100644 SPECS/libmodulemd.spec create mode 100644 libmodulemd.spec create mode 100644 modulemd-2.15.0-build-Move-computing-gtk-doc-module-paths-to-the-che.patch create mode 100644 modulemd-2.15.0-doc-Adapt-GLib-documentation-path-to-GLib-2.79.0.patch create mode 100644 modulemd-2.15.0-doc-Adapt-GLib-documentation-path-to-GLib-2.80.1.patch create mode 100644 modulemd-2.15.0.tar.xz.asc create mode 100644 sources diff --git a/.gitignore b/.gitignore index f186243..6901466 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ -SOURCES/modulemd-1.8.16.tar.xz -SOURCES/modulemd-2.13.0.tar.xz +gpgkey-E3F42FCE156830A80358E6E94FD1AEC3365AF7BF.gpg +modulemd-2.15.0.tar.xz diff --git a/.libmodulemd.metadata b/.libmodulemd.metadata deleted file mode 100644 index 5cfa1d5..0000000 --- a/.libmodulemd.metadata +++ /dev/null @@ -1,2 +0,0 @@ -6e55eddb35afc4cd28b6d8cb248f821af5f49dd7 SOURCES/modulemd-1.8.16.tar.xz -e83886f374922ecf6fa728c6c588d697d0748b99 SOURCES/modulemd-2.13.0.tar.xz diff --git a/SOURCES/modulemd-2.13.0-Accept-18446744073709551615-buildorder-if-accept_ove.patch b/SOURCES/modulemd-2.13.0-Accept-18446744073709551615-buildorder-if-accept_ove.patch deleted file mode 100644 index 2e54628..0000000 --- a/SOURCES/modulemd-2.13.0-Accept-18446744073709551615-buildorder-if-accept_ove.patch +++ /dev/null @@ -1,192 +0,0 @@ -From b0dd663edd6ab66ec26c48ff34a52afa040694e6 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= -Date: Thu, 22 Jul 2021 15:23:55 +0200 -Subject: [PATCH] Accept 18446744073709551615 buildorder if - accept_overflowed_buildorder build boolean is true -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -7c0158bcec05b692d27e37ff46a134f4e294d957 commit (Reject invalid signed -integers (rpm buildorder), as found in 2.13.0 release, fortified -parsing signed integers. - -It turned out that RHEL 8 delivers a few modules: - -container-tools:rhel8:8020120200601155013:ffd2803a -container-tools:rhel8:8030020200923153805:2a301c24 -container-tools:rhel8:8030020201124131330:830d479e -container-tools:rhel8:8030120210208205200:c127ee91 - -which contain an invalid buildorder value 18446744073709551615. DNF -then warned on loading them into an index and ignored them: - - # dnf module list --repoid pulp-appstream - Last metadata expiration check: 3:59:10 ago on Wed 21 Jul 2021 12:38:00 PM CEST. - Module yaml error: Failed to parse buildorder in component: 18446744073709551615: The integer value is larger than 9223372036854775807 [line 118 col 9] - Module yaml error: Failed to parse buildorder in component: 18446744073709551615: The integer value is larger than 9223372036854775807 [line 118 col 9] - Module yaml error: Failed to parse buildorder in component: 18446744073709551615: The integer value is larger than 9223372036854775807 [line 107 col 9] - Module yaml error: Failed to parse buildorder in component: 18446744073709551615: The integer value is larger than 9223372036854775807 [line 114 col 9] - Module yaml error: Failed to parse buildorder in component: 18446744073709551615: The integer value is larger than 9223372036854775807 [line 118 col 9] - Module yaml error: Failed to parse buildorder in component: 18446744073709551615: The integer value is larger than 9223372036854775807 [line 118 col 9] - Module yaml error: Failed to parse buildorder in component: 18446744073709551615: The integer value is larger than 9223372036854775807 [line 107 col 9] - Module yaml error: Failed to parse buildorder in component: 18446744073709551615: The integer value is larger than 9223372036854775807 [line 114 col 9] - -Those were probably built with a broken MBS/libmodulemd which -loaded -1 and serialized it as an 64-bit unsigned integer -18446744073709551615. - -Because the distributor does not change once-released builds, it -became impossible to process them with libmodulemd-2.13.0. - -This patch adds an accept_overflowed_buildorder build option (disabled -by default) which enables a workaround to accept 18446744073709551615 -string as -1 integer when parsing 64-bit signed integers. (The type is -used only in buildorder field now). - -(Originally, I developed a more complicated patch only affecting -loading while keeping validation strict. But that was not enough for -DNF, creareterepo_c and probably many other tools. Thus I prepared -even more complicated patch affecting both loading and validation of -modulemd formats only (cf. modulemd-packager-v3) and that helped DNF. -But the patch ugglified to code to much and considering it's only -a temporary hack, I decided for this simple patch which affects -loading and validation of all formats.) - -Petr Písař: Ported to 2.13.0 from -37a688cc12d7fbab67fda95c47a4605405d7a154. - -Signed-off-by: Petr Písař ---- - meson.build | 1 + - meson_options.txt | 3 +++ - modulemd/meson.build | 2 ++ - modulemd/modulemd-yaml-util.c | 11 +++++++++++ - modulemd/tests/test-modulemd-parse_int64.c | 15 ++++++++++++++- - 5 files changed, 31 insertions(+), 1 deletion(-) - -diff --git a/meson.build b/meson.build -index 37792b3..bbb56ba 100644 ---- a/meson.build -+++ b/meson.build -@@ -215,6 +215,7 @@ if meson.version().version_compare('>=0.53') - 'Python 2 Support': get_option('with_py2'), - 'Python 3 Support': get_option('with_py3'), - 'Skip Introspection': get_option('skip_introspection'), -+ 'Accept overflowed buildorder': get_option('accept_overflowed_buildorder'), - 'Test Installed Library': get_option('test_installed_lib'), - }, section: 'Build Configuration') - endif -diff --git a/meson_options.txt b/meson_options.txt -index 7873d42..3d84459 100644 ---- a/meson_options.txt -+++ b/meson_options.txt -@@ -11,6 +11,9 @@ - # - # REMEMBER TO UPDATE THE SUMMARY() IN meson.build when adding options here - -+option('accept_overflowed_buildorder', type : 'boolean', value: 'false', -+ description : 'Accept overflowed 18446744073709551615 buildorder as -1. This breaks a specification, but some RHEL 8 module builds look like that.') -+ - option('verbose_tests', type : 'boolean', value : true, - description : 'Tests that are run under the "debug" configuration will print all debug messages. Disable this option for valgrind checks, as it speeds it up substantially.') - -diff --git a/modulemd/meson.build b/modulemd/meson.build -index 2a60364..0b74818 100644 ---- a/modulemd/meson.build -+++ b/modulemd/meson.build -@@ -14,6 +14,7 @@ - test_installed_lib = get_option('test_installed_lib') - skip_introspection = get_option('skip_introspection') - verbose_tests = get_option('verbose_tests') -+accept_overflowed_buildorder = get_option('accept_overflowed_buildorder') - clang_simple_version_script = find_program ('clang_simple_version.sh') - - -@@ -144,6 +145,7 @@ cdata.set('HAVE_RPMIO', rpm.found()) - cdata.set('HAVE_LIBMAGIC', magic.found()) - cdata.set('HAVE_GDATE_AUTOPTR', has_gdate_autoptr) - cdata.set('HAVE_EXTEND_AND_STEAL', has_extend_and_steal) -+cdata.set('HAVE_OVERFLOWED_BUILDORDER', accept_overflowed_buildorder) - configure_file( - output : 'config.h', - configuration : cdata -diff --git a/modulemd/modulemd-yaml-util.c b/modulemd/modulemd-yaml-util.c -index 6cbf4cc..ad0bd3c 100644 ---- a/modulemd/modulemd-yaml-util.c -+++ b/modulemd/modulemd-yaml-util.c -@@ -11,6 +11,7 @@ - * For more information on free software, see . - */ - -+#include "config.h" - #include "modulemd-errors.h" - #include "private/modulemd-subdocument-info-private.h" - #include "private/modulemd-util.h" -@@ -441,6 +442,16 @@ modulemd_yaml_parse_int64 (yaml_parser_t *parser, GError **error) - - if ((value == G_MAXINT64 && errno == ERANGE)) - { -+#ifdef HAVE_OVERFLOWED_BUILDORDER -+ /* A temporary hack. Remove when RHEL 8 goes end of life. */ -+ if (g_str_equal ((const gchar *)event.data.scalar.value, -+ "18446744073709551615")) -+ { -+ g_debug ("Coercing an invalid signed 64-bit integer to -1: %s", -+ (const gchar *)event.data.scalar.value); -+ return -1; -+ } -+#endif - g_set_error (error, - MODULEMD_YAML_ERROR, - MODULEMD_ERROR_VALIDATE, -diff --git a/modulemd/tests/test-modulemd-parse_int64.c b/modulemd/tests/test-modulemd-parse_int64.c -index 2ccfb53..8759c21 100644 ---- a/modulemd/tests/test-modulemd-parse_int64.c -+++ b/modulemd/tests/test-modulemd-parse_int64.c -@@ -11,6 +11,7 @@ - * For more information on free software, see . - */ - -+#include "config.h" - #include - #include - #include -@@ -36,7 +37,7 @@ test (const char *input, gint64 expected_value, gboolean expected_error) - g_assert_nonnull (error); - else - g_assert_null (error); -- g_assert_cmpuint (parsed, ==, expected_value); -+ g_assert_cmpint (parsed, ==, expected_value); - } - - static void -@@ -69,6 +70,16 @@ test_int64_invalid_too_big (void) - test ("9223372036854775808", 0, TRUE); - } - -+static void -+test_int64_invalid_overflowed (void) -+{ -+#ifdef HAVE_OVERFLOWED_BUILDORDER -+ test ("18446744073709551615", -1, FALSE); -+#else -+ test ("18446744073709551615", 0, TRUE); -+#endif -+} -+ - static void - test_int64_invalid_too_small (void) - { -@@ -143,6 +154,8 @@ main (int argc, char *argv[]) - test_int64_invalid_too_big); - g_test_add_func ("/modulemd/v2/int64/yaml/parse/invalid_too_small", - test_int64_invalid_too_small); -+ g_test_add_func ("/modulemd/v2/int64/yaml/parse/invalid_overflowed", -+ test_int64_invalid_overflowed); - - g_test_add_func ("/modulemd/v2/uint64/yaml/parse/valid", test_uint64_valid); - g_test_add_func ("/modulemd/v2/uint64/yaml/parse/invalid_no_digit", --- -2.31.1 - diff --git a/SPECS/libmodulemd.spec b/SPECS/libmodulemd.spec deleted file mode 100644 index 21da114..0000000 --- a/SPECS/libmodulemd.spec +++ /dev/null @@ -1,484 +0,0 @@ -%global baserelease 1 -%global v2_epoch 0 -%global v2_major 2 -%global v2_minor 13 -%global v2_patch 0 -%global v2_release %{baserelease} -%global libmodulemd_v2_version %{v2_major}.%{v2_minor}.%{v2_patch} -%global libmodulemd_v1_version 1.8.16 -# This is trickery to ensure that the upgrade path for libmodulemd1 is always -# clean and associated with the appropriate v2 build -%global libmodulemd_v1_release %{v2_epoch}.%{v2_major}.%{v2_minor}.%{v2_patch}.%{v2_release} - -Name: libmodulemd -Version: %{libmodulemd_v2_version} -Release: %{baserelease}%{?dist} -Summary: Module metadata manipulation library - -License: MIT -URL: https://github.com/fedora-modularity/libmodulemd -Source0: %{url}/releases/download/%{version}/modulemd-%{version}.tar.xz -Source1: %{url}/releases/download/%{name}-%{libmodulemd_v1_version}/modulemd-%{libmodulemd_v1_version}.tar.xz -# Accept invalid, but existing 18446744073709551615 buildorder when loading -# modulemd-v2 documents, bug #1984402, proposed to the upstream -Patch0: modulemd-2.13.0-Accept-18446744073709551615-buildorder-if-accept_ove.patch - - -BuildRequires: meson >= 0.47 -BuildRequires: pkgconfig -BuildRequires: gcc -BuildRequires: gcc-c++ -BuildRequires: pkgconfig(gobject-2.0) -BuildRequires: pkgconfig(gobject-introspection-1.0) -BuildRequires: pkgconfig(yaml-0.1) -BuildRequires: pkgconfig(gtk-doc) -BuildRequires: glib2-doc -BuildRequires: rpm-devel -BuildRequires: file-devel -BuildRequires: python3-devel -BuildRequires: python3-gobject-base -BuildRequires: help2man - -# Patches - - -%description -C Library for manipulating module metadata files. -See https://github.com/fedora-modularity/libmodulemd/blob/master/README.md for -more details. - - -%package -n python3-%{name} -Summary: Python 3 bindings for %{name} -Requires: %{name}%{?_isa} = %{version}-%{release} -Requires: python3-gobject-base -Requires: %{py3_dist six} -Obsoletes: python3-modulemd < 1.3.4 - -%description -n python3-%{name} -Python 3 bindings for %{name} - - -%package devel -Summary: Development files for libmodulemd -Requires: %{name}%{?_isa} = %{version}-%{release} - - -%description devel -Development files for libmodulemd. - - -%package -n libmodulemd1 -Summary: Compatibility package for libmodulemd 1.x -Version: %{libmodulemd_v1_version} -Release: %{libmodulemd_v1_release} -Obsoletes: libmodulemd < 2 -Provides: libmodulemd = %{libmodulemd_v1_version}-%{release} -Provides: libmodulemd%{?_isa} = %{libmodulemd_v1_version}-%{release} - -%description -n libmodulemd1 -Compatibility library for libmodulemd 1.x - - -%package -n libmodulemd1-devel -Summary: Compatibility development package for libmodulemd 1.x -Version: %{libmodulemd_v1_version} -Release: %{libmodulemd_v1_release} -Requires: libmodulemd1%{?_isa} = %{libmodulemd_v1_version}-%{release} -Conflicts: %{name}-devel -Obsoletes: libmodulemd-devel < 2 -Provides: libmodulemd-devel = %{libmodulemd_v1_version}-%{release} -RemovePathPostfixes: .compat - - -%description -n libmodulemd1-devel -Development files for libmodulemd 1.x - - -%package -n python3-libmodulemd1 -Summary: Python 3 bindings for %{name}1 -Version: %{libmodulemd_v1_version} -Release: %{libmodulemd_v1_release} -Requires: libmodulemd1 = %{libmodulemd_v1_version}-%{release} -Requires: python3-gobject-base - -Obsoletes: python3-libmodulemd < 2 -Provides: python3-libmodulemd = %{libmodulemd_v1_version}-%{release} - -%description -n python3-libmodulemd1 -Python 3 bindings for libmodulemd1 - - -%prep -%setup -c -%setup -c -T -D -a 1 -pushd modulemd-%{libmodulemd_v2_version} -%patch0 -p1 -popd - -%build -# Build the v1 API first -pushd modulemd-%{libmodulemd_v1_version} -%define _vpath_builddir api1 -%meson -Ddeveloper_build=false -%meson_build -popd - -# Build the v2 API -pushd modulemd-%{libmodulemd_v2_version} -%define _vpath_builddir api2 -%meson -Ddeveloper_build=false -Dwith_manpages=enabled -Dwith_py2=false \ - -Daccept_overflowed_buildorder=true -%meson_build -popd - -%check - -export LC_CTYPE=C.utf8 - -pushd modulemd-%{libmodulemd_v1_version} -%define _vpath_builddir api1 -%{__meson} test -C %{_vpath_builddir} %{?_smp_mesonflags} --print-errorlogs -t 10 -popd - -pushd modulemd-%{libmodulemd_v2_version} -%define _vpath_builddir api2 -%{__meson} test -C %{_vpath_builddir} %{?_smp_mesonflags} --print-errorlogs -t 10 -popd - - -%install -pushd modulemd-%{libmodulemd_v1_version} -%define _vpath_builddir api1 -%meson_install -popd - -pushd modulemd-%{libmodulemd_v2_version} -%define _vpath_builddir api2 -%meson_install -popd - -# Create a symlink for the libmodulemd1-devel package -ln -s libmodulemd.so.%{libmodulemd_v1_version} \ - %{buildroot}%{_libdir}/%{name}.so.compat - - -%files -%license modulemd-%{libmodulemd_v2_version}/COPYING -%doc modulemd-%{libmodulemd_v2_version}/NEWS -%doc modulemd-%{libmodulemd_v2_version}/README.md -%{_bindir}/modulemd-validator -%{_mandir}/man1/modulemd-validator.1* -%{_libdir}/%{name}.so.2* -%dir %{_libdir}/girepository-1.0 -%{_libdir}/girepository-1.0/Modulemd-2.0.typelib - - -%files devel -%{_libdir}/%{name}.so -%{_libdir}/pkgconfig/modulemd-2.0.pc -%{_includedir}/modulemd-2.0/ -%dir %{_datadir}/gir-1.0 -%{_datadir}/gir-1.0/Modulemd-2.0.gir -%dir %{_datadir}/gtk-doc -%dir %{_datadir}/gtk-doc/html -%{_datadir}/gtk-doc/html/modulemd-2.0/ - - -%files -n python3-%{name} -%{python3_sitearch}/gi/overrides/ - - -%files -n python3-libmodulemd1 - - -%files -n libmodulemd1 -%license modulemd-%{libmodulemd_v1_version}/COPYING -%doc modulemd-%{libmodulemd_v1_version}/README.md -%{_bindir}/modulemd-validator-v1 -%{_libdir}/%{name}.so.1* -%dir %{_libdir}/girepository-1.0 -%{_libdir}/girepository-1.0/Modulemd-1.0.typelib - - -%files -n libmodulemd1-devel -%{_libdir}/%{name}.so.compat -%{_libdir}/pkgconfig/modulemd.pc -%{_includedir}/modulemd/ -%dir %{_datadir}/gir-1.0 -%{_datadir}/gir-1.0/Modulemd-1.0.gir -%dir %{_datadir}/gtk-doc -%dir %{_datadir}/gtk-doc/html -%{_datadir}/gtk-doc/html/modulemd-1.0/ - - -%changelog -* Fri Jul 09 2021 Petr Pisar - 2.13.0-1 -- 2.13.0 bump (bug #1984402) - -* Mon May 03 2021 Petr Pisar - 2.12.1-1 -- 2.12.1 bump (bug #1894573) - -* Wed May 20 2020 Stephen Gallagher - 2.9.4-2 -- Update to 2.9.4 -- Drop valgrind tests from RPM build -- Resolves: RHBZ#1797749 - -* Tue Oct 29 2019 Stephen Gallagher - 2.8.2-1 -- Update to versions 2.8.2 and 1.8.16 -- Resolves: rhbz#1752511 - -* Wed Oct 23 2019 Stephen Gallagher - 2.5.0-4 -- Improve default merging logic when dealing with third-party repos -- Resolves: rhbz#1761805 - -* Wed May 29 2019 Stephen Gallagher - 2.5.0-2 -- Fix memory corruption error using Module.search_rpms() from python -- Speed up valgrind tests -- Resolves: rhbz#1714766 - -* Wed May 22 2019 Stephen Gallagher - 2.5.0-1 -- Rebase to 2.5.0 and 1.8.11 -- Related: rhbz#1693680 - -* Mon May 13 2019 Stephen Gallagher - 2.4.0-1 -- Rebase to 2.4.0 and 1.8.10 -- Resolves: rhbz#1693680 - -* Fri Jan 18 2019 Stephen Gallagher - 2.0.0-5 -- Don't fail merges when default streams differ -- Resolves: rhbz#1666871 - -* Wed Jan 16 2019 Stephen Gallagher - 2.0.0-4 -- Include modified value when copying Defaults objects -- Resolves: rhbz#1665465 - -* Thu Dec 13 2018 Stephen Gallagher - 2.0.0-3 -- Keep libmodulemd1 in sync with libmodulemd - -* Thu Dec 13 2018 Stephen Gallagher - 2.0.0-2 -- Fix package location of modulemd-validator - -* Thu Dec 13 2018 Stephen Gallagher - 2.0.0-1 -- Update to 2.0.0 final -- Assorted fixes for validation -- Add modulemd-validator tool based on v2 code -- Fix a crash when merging defaults -- Add missing BuildRequires - -* Tue Dec 11 2018 Stephen Gallagher - 2.0.0-0.beta2 -- Update to 2.0.0beta2 -- Better validation of stored content during read and write operations -- ModuleIndex now returns FALSE if any subdocument fails -- Fix tests on 32-bit platforms -- Make unknown keys in YAML maps non-fatal for libmodulemd1 -- Make unknown keys in YAML maps optionally fatal for libmodulemd 2.x -- Fix RPM version requirements for libmodulemd1 - -* Mon Dec 10 2018 Stephen Gallagher - 2.0.0-0.beta1 -- Total rewrite to 2.0 API -- Resolves: rhbz#1646436 - -* Thu Aug 09 2018 Stephen Gallagher - 1.6.2-2 -- Fix backwards-incompatible API change -- Resolves: rhbz#1607083 - -* Tue Aug 07 2018 Stephen Gallagher - 1.6.2-1 -- Update to 1.6.2 -- Make buildorder a signed integer to match modulemd specification -- Obsolete unsupported pythonX-modulemd packages - -* Fri Aug 3 2018 Florian Weimer - 1.6.1-2 -- Honor %%{valgrind_arches} - -* Fri Jul 20 2018 Stephen Gallagher - 1.6.1-1 -- Update to 1.6.1 -- Fix header include ordering -- Suppress empty sections from .dump() ordering - -* Wed Jul 18 2018 Stephen Gallagher - 1.6.0-1 -- Update to 1.6.0 -- Adds Modulemd.ModuleStream object, deprecating Modulemd.Module -- Adds Modulemd.Translation and Modulemd.TranslationEntry objects -- Adds Modulemd.ImprovedModule object that collects streams, defaults and - translations together -- Adds new Modulemd.index_from_*() funtions to get a hash table of - Modulemd.ImprovedModule objects for easier searching -- Moves function documentation to the public headers -- Corrects the license headers to MIT (they were incorrectly listed as MITNFA - in previous releases) -- Makes the "eol" field optional for Modulemd.ServiceLevel -- Clean up HTML documentation -- Fixes a type error on 32-bit systems - -* Fri Jul 13 2018 Fedora Release Engineering - 1.5.2-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild - -* Sat Jun 23 2018 Stephen Gallagher - 1.5.2-1 -- Update to libdmodulemd 1.5.2 -- Don't free uninitialized memory - -* Fri Jun 22 2018 Stephen Gallagher - 1.5.1-2 -- Fix buildopts property not being initialized - -* Tue Jun 19 2018 Stephen Gallagher - 1.5.1-1 -- Update to version 1.5.1 -- Re-enable build-time tests - -* Mon Jun 18 2018 Stephen Gallagher - 1.5.0-2 -- Temporarily disable build-time tests - -* Mon Jun 18 2018 Stephen Gallagher - 1.5.0-1 -- Update to version 1.5.0 -- Adds support for "intents" in Modulemd.Defaults -- Adds `Modulemd.get_version()` -- Adds support for RPM whitelists in the buildopts -- Adds a new object: Modulemd.Buildopts -- Deprecates Modulemd.Module.get_rpm_buildopts() -- Deprecates Modulemd.Module.set_rpm_buildopts() -- Fixes some missing license blurbs - -* Tue May 08 2018 Stephen Gallagher - 1.4.1-1 -- Update to version 1.4.1 -- Improve output from modulemd-validator -- Drop upstreamed patches - -* Wed Apr 25 2018 Stephen Gallagher - 1.4.0-2 -- Fix pointer math error -- Fix compilation failure in Fedora build system - -* Wed Apr 25 2018 Stephen Gallagher - 1.4.0-1 -- Update to version 1.4.0 -- Adds new API for returning failed YAML subdocuments -- Stop emitting log messages by default (polluting consumer logs) -- Validate RPM artifacts for proper NEVRA format -- Improve the validator tool -- Drop upstreamed patch - -* Mon Apr 16 2018 Stephen Gallagher - 1.3.0-2 -- Fix serious error in modulemd-defaults emitter - -* Fri Apr 13 2018 Stephen Gallagher - 1.3.0-1 -- Update to version 1.3.0 -- New Public Objects: - * Modulemd.Prioritizer - tool to merge module defaults -- New Public Functions: - * Modulemd.SimpleSet.is_equal() - * Modulemd.Defaults.copy() - * Modulemd.Defaults.merge() - -* Wed Apr 04 2018 Stephen Gallagher - 1.2.0-1 -- Update to version 1.2.0 -- New Functions: - * Modulemd.objects_from_file() - * Modulemd.objects_from_string() - * Modulemd.dump() - * Modulemd.dumps() - * Modulemd.Defaults.new_from_file() - * Modulemd.Defaults.new_from_string() -- Deprecated Functions: - * Modulemd.Module.new_all_from_file() - * Modulemd.Module.new_all_from_file_ext() - * Modulemd.Module.new_all_from_string() - * Modulemd.Module.new_all_from_string_ext() - * Modulemd.Module.dump_all() - * Modulemd.Module.dumps_all() -- Bugfixes - * Properly use G_BEGIN_DECLS and G_END_DECLS in headers - * Assorted fixes for memory ownership in GObject Introspection - -* Fri Mar 23 2018 Stephen Gallagher - 1.1.3-2 -- Fix missing G_END_DECL from public headers - -* Mon Mar 19 2018 Stephen Gallagher - 1.1.3-1 -- Fix numerous memory leaks -- Drop upstreamed patch - -* Thu Mar 15 2018 Stephen Gallagher - 1.1.2-1 -- Update to version 1.1.2 -- Revert backwards-incompatible API change -- Fix version string in pkgconfig file - -* Thu Mar 15 2018 Stephen Gallagher - 1.1.1-1 -- Update to version 1.1.1 -- Make default stream and profiles optional -- Fixes: https://github.com/fedora-modularity/libmodulemd/issues/25 -- Fixes: https://github.com/fedora-modularity/libmodulemd/issues/26 -- Fixes: https://github.com/fedora-modularity/libmodulemd/issues/27 - -* Wed Mar 14 2018 Stephen Gallagher - 1.1.0-1 -- Update to version 1.1.0 -- Adds support for handling modulemd-defaults YAML documents -- Adds peek()/dup() routines to all object properties -- Adds Modulemd.Module.dup_nsvc() to retrieve the canonical form of the unique module identifier. -- Adds support for boolean types in the XMD section -- Revert obsoletion of pythonX-modulemd packages for now - -* Tue Mar 13 2018 Igor Gnatenko - 1.0.4-2 -- Obsolete unsupported pythonX-modulemd packages - -* Tue Feb 27 2018 Stephen Gallagher - 1.0.4-1 -- Update to 1.0.4 -- Rework version autodetection -- Avoid infinite loop on unparseable YAML - -* Sun Feb 25 2018 Stephen Gallagher - 1.0.3-1 -- RPM components are properly emitted when no module components exist -- Parser works around late determination of modulemd version - -* Fri Feb 16 2018 Stephen Gallagher - 1.0.2-1 -- Be more strict with certain parser edge-cases -- Replace popt argument processing with glib -- Drop upstreamed patches - -* Thu Feb 15 2018 Stephen Gallagher - 1.0.1-2 -- Handle certain unlikely format violations - -* Thu Feb 15 2018 Stephen Gallagher - 1.0.1-1 -- Support modulemd v2 -- Add tool to do quick validation of modulemd -- Fix memory management -- Warn and ignore unparseable sub-documents in the YAML -- Fix several memory issues detected by Coverity scan - -* Tue Feb 06 2018 Stephen Gallagher - 0.2.2-1 -- Update to libmodulemd 0.2.2 -- Fix numerous minor memory leaks -- Fix issues with EOL/SL dates - -* Tue Feb 06 2018 Igor Gnatenko - 0.2.1-3 -- Own appropriate directories - -* Fri Feb 02 2018 Igor Gnatenko - 0.2.1-2 -- Switch to %%ldconfig_scriptlets - -* Fri Jan 05 2018 Stephen Gallagher - 0.2.1-1 -- Update to libmodulemd 0.2.1 -- Add 'name' property for Profiles - -* Thu Oct 05 2017 Stephen Gallagher - 0.2.0-2 -- Add missing BuildRequires for gtk-doc - -* Thu Oct 05 2017 Stephen Gallagher - 0.2.0-1 -- Update to libmodulemd 0.2.0 -- Adds gtk-doc generated documentation -- (ABI-break) Makes all optional properties accept NULL as a value to clear - them -- (ABI-break) Modulemd.SimpleSet takes a STRV (char **) instead of a - GLib.PtrArray -- Fixes a bug where the name was not always set for components -- Adds support for dumping YAML from the introspected API -- Includes add/remove routines for profiles - -* Sat Sep 30 2017 Igor Gnatenko - 0.1.0-5 -- Use %%_isa in Requires for main package from devel - -* Mon Sep 18 2017 Stephen Gallagher - 0.1.0-4 -- Correct the license to MIT - -* Mon Sep 18 2017 Stephen Gallagher - 0.1.0-3 -- Modifications requested during package review - -* Fri Sep 15 2017 Stephen Gallagher - 0.1.0-2 -- First public release - diff --git a/libmodulemd.spec b/libmodulemd.spec new file mode 100644 index 0000000..e2d8bb6 --- /dev/null +++ b/libmodulemd.spec @@ -0,0 +1,726 @@ +%if 0%{?rhel} && 0%{?rhel} <= 7 + # There is no python3-gobject-base in RHEL 7. But it exists in EPEL 7. + %global meson_python_flags -Dwith_py2=true -Dwith_py3=true + %global build_python2 1 + %global build_python3 1 +%else + %global meson_python_flags -Dwith_py2=false -Dwith_py3=true + %global build_python2 0 + %global build_python3 1 +%endif + +%if (0%{?fedora} && 0%{?fedora} <= 50) || (0%{?rhel} && 0%{?rhel} <= 10) + # Support RHEL 8 module builds with an invalid buildorder. + %global meson_accept_overflowed_buildorder_flag -Daccept_overflowed_buildorder=true +%else + %global meson_accept_overflowed_buildorder_flag -Daccept_overflowed_buildorder=false +%endif + +%global upstream_name libmodulemd + +%if (0%{?rhel} && 0%{?rhel} <= 7) + %global v2_suffix 2 +%endif + +Name: %{upstream_name}%{?v2_suffix} +Version: 2.15.0 +Release: 12%{?dist} +Summary: Module metadata manipulation library + +# COPYING: MIT +## not in any binary package +# contrib/coverity-modeling.c: GPL-2.0-or-later +# contrib/release-tools/semver: GPL-3.0-only +License: MIT +URL: https://github.com/fedora-modularity/libmodulemd +Source0: %{url}/releases/download/%{version}/modulemd-%{version}.tar.xz +Source1: %{url}/releases/download/%{version}/modulemd-%{version}.tar.xz.asc +# Key exported from Petr Pisar's keyring +Source2: gpgkey-E3F42FCE156830A80358E6E94FD1AEC3365AF7BF.gpg +# Fix building with glib2-doc 2.79.0, in upstream after 2.15.0 +Patch0: modulemd-2.15.0-build-Move-computing-gtk-doc-module-paths-to-the-che.patch +Patch1: modulemd-2.15.0-doc-Adapt-GLib-documentation-path-to-GLib-2.79.0.patch +# Fix building with glib2-doc 2.80.1, in upstream after 2.15.0, +# . +Patch2: modulemd-2.15.0-doc-Adapt-GLib-documentation-path-to-GLib-2.80.1.patch + +BuildRequires: gnupg2 +BuildRequires: meson >= 0.47 +BuildRequires: pkgconfig +BuildRequires: gcc +BuildRequires: gcc-c++ +BuildRequires: pkgconfig(gobject-2.0) +BuildRequires: pkgconfig(gobject-introspection-1.0) +BuildRequires: pkgconfig(yaml-0.1) +BuildRequires: pkgconfig(gtk-doc) +BuildRequires: glib2-doc +BuildRequires: rpm-devel +%if %{build_python2} +BuildRequires: python2-devel +BuildRequires: python-gobject-base +%endif +%if %{build_python3} +BuildRequires: python%{python3_pkgversion}-devel +BuildRequires: python%{python3_pkgversion}-gobject-base +%endif + + +%description +C library for manipulating module metadata files. +See https://github.com/fedora-modularity/libmodulemd/blob/main/README.md for +more details. + + +%if %{build_python2} +%package -n python2-%{name} +Summary: Python 2 bindings for %{name} +Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: python-gobject-base +Requires: python-six + +%description -n python2-%{name} +Python 2 bindings for %{name}. +%endif + + +%if %{build_python3} +%package -n python%{python3_pkgversion}-%{name} +Summary: Python 3 bindings for %{name} +Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: python%{python3_pkgversion}-gobject-base +%if (0%{?rhel} && 0%{?rhel} <= 7) +# The py3_dist macro on EPEL 7 doesn't work right at the moment +Requires: python3.6dist(six) +%else +Requires: %{py3_dist six} +%endif + +%description -n python%{python3_pkgversion}-%{name} +Python %{python3_pkgversion} bindings for %{name}. +%endif + + +%package devel +Summary: Development files for libmodulemd +Requires: %{name}%{?_isa} = %{version}-%{release} +%if (0%{?rhel} && 0%{?rhel} <= 7) +Conflicts: libmodulemd1-devel +Conflicts: libmodulemd-devel +%endif + + +%description devel +Development files for %{name}. + + +%prep +%{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}' +%autosetup -p1 -n modulemd-%{version} + + +%build +%meson \ + %{meson_accept_overflowed_buildorder_flag} \ + -Drpmio=enabled \ + -Dskip_introspection=false \ + -Dtest_installed_lib=false \ + -Dwith_docs=true \ + -Dwith_manpages=enabled \ + %{meson_python_flags} +%meson_build + + +%check +export LC_CTYPE=C.utf8 +# The tests sometimes time out in CI, so give them a little extra time +%{__meson} test -C %{_vpath_builddir} %{?_smp_mesonflags} --print-errorlogs -t 5 + + +%install +%meson_install + +%if ( 0%{?rhel} && 0%{?rhel} <= 7) +# Don't conflict with modulemd-validator from 1.x included in the official +# RHEL 7 repos +mv %{buildroot}%{_bindir}/modulemd-validator \ + %{buildroot}%{_bindir}/modulemd-validator%{?v2_suffix} + +mv %{buildroot}%{_mandir}/man1/modulemd-validator.1 \ + %{buildroot}%{_mandir}/man1/modulemd-validator%{?v2_suffix}.1 +%endif + + +%ldconfig_scriptlets + + +%files +%license COPYING +%doc NEWS README.md +%{_bindir}/modulemd-validator%{?v2_suffix} +%{_mandir}/man1/modulemd-validator%{?v2_suffix}.1* +%{_libdir}/%{upstream_name}.so.2* +%dir %{_libdir}/girepository-1.0 +%{_libdir}/girepository-1.0/Modulemd-2.0.typelib + + +%files devel +%{_libdir}/%{upstream_name}.so +%{_libdir}/pkgconfig/modulemd-2.0.pc +%{_includedir}/modulemd-2.0/ +%dir %{_datadir}/gir-1.0 +%{_datadir}/gir-1.0/Modulemd-2.0.gir +%dir %{_datadir}/gtk-doc +%dir %{_datadir}/gtk-doc/html +%{_datadir}/gtk-doc/html/modulemd-2.0/ + + +%if %{build_python2} +%files -n python2-%{name} +%{python2_sitearch}/gi/overrides/ +%endif + + +%if %{build_python3} +%files -n python%{python3_pkgversion}-%{name} +%{python3_sitearch}/gi/overrides/ +%endif + + +%changelog +* Tue Oct 29 2024 Troy Dawson - 2.15.0-12 +- Bump release for October 2024 mass rebuild: + Resolves: RHEL-64018 + +* Fri Jun 28 2024 Petr Pisar - 2.15.0-11 +- Rebuild without STI tests + +* Wed Jun 26 2024 Petr Pisar - 2.15.0-10 +- Fix building with glib2-doc 2.80.1 (RHEL-45188) + +* Mon Jun 24 2024 Troy Dawson - 2.15.0-9 +- Bump release for June 2024 mass rebuild + +* Mon Jan 29 2024 Petr Pisar - 2.15.0-8 +- Fix building with glib2-doc 2.79.0 + +* Thu Jan 25 2024 Fedora Release Engineering - 2.15.0-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Sun Jan 21 2024 Fedora Release Engineering - 2.15.0-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Thu Jul 20 2023 Fedora Release Engineering - 2.15.0-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Thu Jun 15 2023 Python Maint - 2.15.0-4 +- Rebuilt for Python 3.12 + +* Wed May 10 2023 Florian Festi - 2.15.0-3 +- Rebuild for rpm-4.18.90 + +* Wed May 10 2023 Petr Pisar - 2.15.0-2 +- Adapt STI tests to current meson + +* Wed May 10 2023 Petr Pisar - 2.15.0-1 +- 2.15.0 bump + +* Thu Jan 19 2023 Fedora Release Engineering - 2.14.0-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Thu Jul 21 2022 Fedora Release Engineering - 2.14.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Mon Jun 13 2022 Python Maint - 2.14.0-3 +- Rebuilt for Python 3.11 + +* Tue Feb 08 2022 Petr Pisar - 2.14.0-2 +- Drop removed meson -D developer_build option from CI tests + +* Fri Feb 04 2022 Petr Pisar - 2.14.0-1 +- 2.14.0 bump + +* Thu Jan 20 2022 Fedora Release Engineering - 2.13.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Tue Sep 14 2021 Petr Pisar - 2.13.0-3 +- Accept an invalid buildorder 18446744073709551615 found in RHEL 8 repositories + (https://pagure.io/koji/issue/3025) + +* Thu Jul 22 2021 Fedora Release Engineering - 2.13.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Fri Jul 09 2021 Petr Pisar - 2.13.0-1 +- 2.13.0 bump + +* Fri Jun 04 2021 Python Maint - 2.12.1-2 +- Rebuilt for Python 3.10 + +* Mon May 03 2021 Petr Pisar - 2.12.1-1 +- 2.12.1 bump + +* Tue Jan 26 2021 Fedora Release Engineering - 2.12.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Thu Jan 14 2021 Stephen Gallagher - 2.12.0-1 +- Add support for 'buildorder' to Packager documents + +* Tue Jan 12 2021 Stephen Gallagher - 2.11.2-2 +- Fix issue with ModuleIndex when input contains only Obsoletes documents +- Fix import issue when built with Python 2 support + +* Thu Jan 07 2021 Stephen Gallagher - 2.11.2-1 +- Release 2.11.2 +- Extend read_packager_[file|string]() to support overriding the module name + and stream. + +* Thu Dec 17 2020 Stephen Gallagher - 2.11.1-1 +- Release 2.11.1 +- Ignore Packager documents when running ModuleIndex.update_from_*() +- Add python overrides for XMD in PackagerV3 +- Add python override to ignore the GType return when reading packager files +- Add PackagerV3.get_mdversion() + +* Thu Dec 10 2020 Stephen Gallagher - 2.11.0-1 +- Release 2.11.0 + +* Fri Nov 20 2020 Stephen Gallagher - 2.10.0-2 +- Fix integer size issue on 32-bit platforms + +* Fri Nov 20 2020 Stephen Gallagher - 2.10.0-1 +- Release 2.10.0 +- https://github.com/fedora-modularity/libmodulemd/releases/tag/libmodulemd-2.10.0 + +* Tue Jul 28 2020 Fedora Release Engineering - 2.9.4-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Mon May 25 2020 Miro Hrončok - 2.9.4-2 +- Rebuilt for Python 3.9 + +* Wed May 20 2020 Stephen Gallagher - 2.9.4-1 +- new upstream release: 2.9.4 + +* Wed May 20 2020 Stephen Gallagher - 2.9.4-2.9.300520.1gitgc19757c +- new upstream release: 2.9.4 + +* Wed Apr 08 2020 Stephen Gallagher - 2.9.3-1 +- new upstream release: 2.9.3 + +* Wed Apr 01 2020 Stephen Gallagher - 2.9.2-4 +- Skip rpmdeplint from gating due to https://github.com/fedora-infra/bodhi/issues/3944 + +* Wed Apr 01 2020 Stephen Gallagher - 2.9.2-3 +- Fix build against Python 3.9 +- Resolves: rhbz#1817665 + +* Wed Mar 11 2020 Stephen Gallagher - 2.9.2-2 +- new upstream release: 2.9.2 + +* Wed Mar 11 2020 Stephen Gallagher - 2.9.2-0.20200311.1gitg31bbd4e +- new upstream release: 2.9.2 + +* Wed Mar 11 2020 Stephen Gallagher - 2.9.2-0.20200311.1gitg31bbd4e +- new upstream release: 2.9.2 + +* Fri Feb 14 2020 Stephen Gallagher - 2.9.1-1 +- new upstream release: 2.9.1 + +* Wed Feb 12 2020 Stephen Gallagher - 2.9.0-1 +- new upstream release: 2.9.0 + +* Wed Jan 29 2020 Fedora Release Engineering - 2.8.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Thu Jan 09 2020 Stephen Gallagher - 2.8.3-1 +- Update to 2.8.3 +- Fix compilation issue with glib >= 2.63.3 +- Improved modulemd document validation +- Numerous test enhancements + +* Thu Oct 24 2019 Stephen Gallagher - 2.8.2-1 +- Update to 2.8.2 +- Use safer version of dup() +- Fix loading of YAML module stream with no module or stream name + +* Tue Oct 15 2019 Stephen Gallagher - 2.8.1-1 +- Improve the merge logic to handle third-party repos more sanely + +* Wed Sep 18 2019 Stephen Gallagher - 2.8.0-2 +- Improvements to ModuleIndex.update_from_defaults_directory() + * Import each file in the directory as a merge rather than an overwrite so + we can detect conflicts. + * Modify the meaning of the 'strict' argument to fail if the merge would + result in a conflict in the default stream setting of a module. + +* Wed Sep 04 2019 Stephen Gallagher - 2.8.0-1 +- Update to 2.8.0 +- API Changes + * Add Modulemd.Module.get_translation() - Retrieve the translations + associated with a Modulemd.Module + * Add ModuleIndex.update_from_defaults_directory() - Import defaults from a + directory of yaml documents, such as fedora-module-defaults, optionally + providing a second path containing overrides. +- Enhancements + * Modulemd.ModuleIndex.update_from_file() now supports reading files + compressed with gzip, bzip2 or xz. (Issue: #208) + * Documentation updates +- Bugfixes + * Assorted minor issues discovered by static analysis tools. + +* Mon Aug 19 2019 Miro Hrončok - 2.7.0-2 +- Rebuilt for Python 3.8 + +* Thu Aug 15 2019 Stephen Gallagher - 2.7.0-1 +- Update to 2.7.0 +- Drop libmodulemd1 subpackage which is now packaged separately +- Add support for 'buildroot' and 'srpm-buildroot' arguments to components + +* Thu Jul 25 2019 Fedora Release Engineering - 2.6.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Wed Jul 03 2019 Stephen Gallagher - 2.6.0-1 +- Update to 2.6.0 +- New function ModuleIndexMerger.resolve_ext() allowing for strict merging +- Profile.get_description() now properly returns available translations +- Numerous documentation fixes +- Test improvements + +* Wed May 29 2019 Stephen Gallagher - 2.5.0-2 +- Fix memory issue with Module.search_streams() in the python bindings + +* Wed May 22 2019 Stephen Gallagher - 2.5.0-1 +- Update to 2.5.0 and 1.8.11 +- Ensure that XMD is always emitted in the same order +- Add .clear_*() functions for all .add_*() functions +- Add ModuleStream.equals() +- Add ModuleIndex.get_default_streams() + +* Mon May 13 2019 Stephen Gallagher - 2.4.0-1 +- Update to 2.4.0 and 1.8.10 +- Add ModuleStreamV2.clear_dependencies() and .remove_dependencies() +- Fix bugs and memory issues with the XMD python bindings +- Assorted documentation enhancements + +* Fri May 03 2019 Stephen Gallagher - 2.3.1-1 +- Update to 2.3.1 +- Make Modulemd.Component.set_*() functions accept NULL +- Fix segmentation fault in XMD code due to improper memory management +- Fix incompatibility in python2-libmodulemd GObject overrides +- Fix assorted documentation issues + +* Mon Apr 22 2019 Stephen Gallagher - 2.3.0-1 +- Add ModuleIndex.update_from_custom() +- Add ModuleIndex.dump_to_custom() +- Add Component.equals() +- Add Module.remove_streams_by_NSVCA() +- Fix bug with emitting lists of scalars in XMD +- Fix bug with deduplication in the ModuleIndexMerger +- Fix serious memory leak + +* Tue Apr 16 2019 Adam Williamson - 2.2.3-3 +- Rebuild with Meson fix for #1699099 + +* Wed Apr 03 2019 Stephen Gallagher - 2.2.3-2 +- Fix accidental ABI break + +* Mon Apr 01 2019 Stephen Gallagher - 2.2.3-1 +- Update to 2.2.3 and 1.8.6 +- Fix header issue with ModulemdRpmMapEntry + +* Wed Mar 27 2019 Stephen Gallagher - 2.2.2-2 +- Don't run tests on armv7hl/aarch64 since they have timeout problems + +* Wed Mar 27 2019 Stephen Gallagher - 2.2.2-1 +- Update to libmodulemd 2.2.2 +- Add support for python2 on RHEL and Fedora < 31 +- Make python subpackages archful for GObject overrides + +* Tue Mar 26 2019 Stephen Gallagher - 2.2.1-1 +- Update to libmodulemd 2.2.1 +- Fixes builds on i686 +- Fixes an accidental API error + +* Tue Mar 26 2019 Stephen Gallagher - 2.2.0-1 +- Update to libmodulemd 2.2.0 +- Support for RPM checksums +- Adds a new directive: "buildafter" for specifying build dependencies +- Adds a new directive: "buildonly" to indicate that a component's built + artifacts should be listed in the "filter" field. +- Deprecate lookup functions by NSVC in favor of NSVCA (including the + architecture. + +* Fri Mar 01 2019 Stephen Gallagher - 2.1.0-4 +- Don't run tests on 32-bit ARM due to performance issues causing timeouts + +* Fri Mar 01 2019 Stephen Gallagher - 2.1.0-3 +- Have python3-libmodulemd1 properly Obsolete libmodulemd and + python3-libmodulemd < 2. + +* Fri Feb 01 2019 Fedora Release Engineering - 2.1.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Sat Jan 26 2019 Stephen Gallagher - 2.1.0-1 +- Update to libmodulemd 2.1.0 and 1.8.2 +- Drop upstreamed patches +- Add new API ModuleStream.depends_on_stream() and + ModuleStream.build_depends_on_stream() to help support auto-detection of + when a module stream may need to be rebuilt when its dependencies change. +- Don't fail merges when default streams differ, treat it as "no default for + this module" +- Fix error message +- Copy modified value when copying Modulemd.Defaults objects +- Fixes discovered by clang and coverity static analysis tools +- Test improvements + +* Fri Jan 11 2019 Stephen Gallagher - 2.0.0-3 +- Fix ordering issue with dependencies +- Use glib2 suppression file when running valgrind tests + +* Fri Jan 11 2019 Stephen Gallagher - 2.0.0-2 +- Fix issue reading modified value for defaults from YAML streams + +* Thu Dec 13 2018 Stephen Gallagher - 2.0.0-1 +- Update to 2.0.0 final +- Assorted fixes for validation +- Add modulemd-validator tool based on v2 code +- Fix a crash when merging defaults + +* Tue Dec 11 2018 Stephen Gallagher - 2.0.0-0.beta2 +- Update to 2.0.0beta2 +- Better validation of stored content during read and write operations +- ModuleIndex now returns FALSE if any subdocument fails +- Fix tests on 32-bit platforms +- Make unknown keys in YAML maps non-fatal for libmodulemd1 +- Make unknown keys in YAML maps optionally fatal for libmodulemd 2.x +- Fix RPM version requirements for libmodulemd1 + +* Mon Dec 10 2018 Stephen Gallagher - 2.0.0-0.beta1 +- Update to 2.0.0beta1 +- Total rewrite to 2.0 API +- https://sgallagh.fedorapeople.org/docs/libmodulemd/2.0/ + +* Fri Oct 26 2018 Stephen Gallagher - 1.7.0-1 +- Update to 1.7.0 +- Enhance YAML parser for use with `fedmod lint` +- Support running unit tests against installed packages +- Include all NSVCs for ModuleStreams in ImprovedModule + +* Tue Sep 18 2018 Stephen Gallagher - 1.6.4-1 +- Update to 1.6.4. +- Add Buildopts to the documentation. +- Deduplicate module streams when merging. +- Drop upstreamed patches. + +* Thu Sep 06 2018 Stephen Gallagher - 1.6.3-2 +- Fix generation of module component YAML +- Output NSVC information using decimal version + +* Tue Sep 04 2018 Stephen Gallagher - 1.6.3-1 +- Update to 1.6.3 +- Drop upstreamed patch +- Don't return ModuleStream objects from modulemd_module_new_all_from_*_ext() +- Ensure that Component buildorder property is signed +- Work around optimization bug +- Don't crash dumping translation events without summary or desc + +* Thu Aug 09 2018 Stephen Gallagher - 1.6.2-2 +- Fix backwards-incompatible API change +- Resolves: rhbz#1607083 + +* Tue Aug 07 2018 Stephen Gallagher - 1.6.2-1 +- Update to 1.6.2 +- Make buildorder a signed integer to match modulemd specification + +* Mon Jul 23 2018 Stephen Gallagher - 1.6.1-2 +- Obsolete unsupported pythonX-modulemd packages + +* Fri Jul 20 2018 Stephen Gallagher - 1.6.1-1 +- Update to 1.6.1 +- Fix header include ordering +- Suppress empty sections from .dump() ordering + +* Wed Jul 18 2018 Stephen Gallagher - 1.6.0-1 +- Update to 1.6.0 +- Adds Modulemd.ModuleStream object, deprecating Modulemd.Module +- Adds Modulemd.Translation and Modulemd.TranslationEntry objects +- Adds Modulemd.ImprovedModule object that collects streams, defaults and + translations together +- Adds new Modulemd.index_from_*() funtions to get a hash table of + Modulemd.ImprovedModule objects for easier searching +- Moves function documentation to the public headers +- Corrects the license headers to MIT (they were incorrectly listed as MITNFA + in previous releases) +- Makes the "eol" field optional for Modulemd.ServiceLevel +- Clean up HTML documentation +- Fixes a type error on 32-bit systems + +* Fri Jul 13 2018 Fedora Release Engineering - 1.5.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Sat Jun 23 2018 Stephen Gallagher - 1.5.2-1 +- Update to libdmodulemd 1.5.2 +- Don't free uninitialized memory + +* Fri Jun 22 2018 Stephen Gallagher - 1.5.1-2 +- Fix buildopts property not being initialized + +* Tue Jun 19 2018 Stephen Gallagher - 1.5.1-1 +- Update to version 1.5.1 +- Re-enable build-time tests + +* Mon Jun 18 2018 Stephen Gallagher - 1.5.0-2 +- Temporarily disable build-time tests + +* Mon Jun 18 2018 Stephen Gallagher - 1.5.0-1 +- Update to version 1.5.0 +- Adds support for "intents" in Modulemd.Defaults +- Adds `Modulemd.get_version()` +- Adds support for RPM whitelists in the buildopts +- Adds a new object: Modulemd.Buildopts +- Deprecates Modulemd.Module.get_rpm_buildopts() +- Deprecates Modulemd.Module.set_rpm_buildopts() +- Fixes some missing license blurbs + +* Tue May 08 2018 Stephen Gallagher - 1.4.1-1 +- Update to version 1.4.1 +- Improve output from modulemd-validator +- Drop upstreamed patches + +* Wed Apr 25 2018 Stephen Gallagher - 1.4.0-2 +- Fix pointer math error +- Fix compilation failure in Fedora build system + +* Wed Apr 25 2018 Stephen Gallagher - 1.4.0-1 +- Update to version 1.4.0 +- Adds new API for returning failed YAML subdocuments +- Stop emitting log messages by default (polluting consumer logs) +- Validate RPM artifacts for proper NEVRA format +- Improve the validator tool +- Drop upstreamed patch + +* Mon Apr 16 2018 Stephen Gallagher - 1.3.0-2 +- Fix serious error in modulemd-defaults emitter + +* Fri Apr 13 2018 Stephen Gallagher - 1.3.0-1 +- Update to version 1.3.0 +- New Public Objects: + * Modulemd.Prioritizer - tool to merge module defaults +- New Public Functions: + * Modulemd.SimpleSet.is_equal() + * Modulemd.Defaults.copy() + * Modulemd.Defaults.merge() + +* Wed Apr 04 2018 Stephen Gallagher - 1.2.0-1 +- Update to version 1.2.0 +- New Functions: + * Modulemd.objects_from_file() + * Modulemd.objects_from_string() + * Modulemd.dump() + * Modulemd.dumps() + * Modulemd.Defaults.new_from_file() + * Modulemd.Defaults.new_from_string() +- Deprecated Functions: + * Modulemd.Module.new_all_from_file() + * Modulemd.Module.new_all_from_file_ext() + * Modulemd.Module.new_all_from_string() + * Modulemd.Module.new_all_from_string_ext() + * Modulemd.Module.dump_all() + * Modulemd.Module.dumps_all() +- Bugfixes + * Properly use G_BEGIN_DECLS and G_END_DECLS in headers + * Assorted fixes for memory ownership in GObject Introspection + +* Fri Mar 23 2018 Stephen Gallagher - 1.1.3-2 +- Fix missing G_END_DECL from public headers + +* Mon Mar 19 2018 Stephen Gallagher - 1.1.3-1 +- Fix numerous memory leaks +- Drop upstreamed patch + +* Thu Mar 15 2018 Stephen Gallagher - 1.1.2-1 +- Update to version 1.1.2 +- Revert backwards-incompatible API change +- Fix version string in pkgconfig file + +* Thu Mar 15 2018 Stephen Gallagher - 1.1.1-1 +- Update to version 1.1.1 +- Make default stream and profiles optional +- Fixes: https://github.com/fedora-modularity/libmodulemd/issues/25 +- Fixes: https://github.com/fedora-modularity/libmodulemd/issues/26 +- Fixes: https://github.com/fedora-modularity/libmodulemd/issues/27 + +* Wed Mar 14 2018 Stephen Gallagher - 1.1.0-1 +- Update to version 1.1.0 +- Adds support for handling modulemd-defaults YAML documents +- Adds peek()/dup() routines to all object properties +- Adds Modulemd.Module.dup_nsvc() to retrieve the canonical form of the unique module identifier. +- Adds support for boolean types in the XMD section +- Revert obsoletion of pythonX-modulemd packages for now + +* Tue Mar 13 2018 Igor Gnatenko - 1.0.4-2 +- Obsolete unsupported pythonX-modulemd packages + +* Tue Feb 27 2018 Stephen Gallagher - 1.0.4-1 +- Update to 1.0.4 +- Rework version autodetection +- Avoid infinite loop on unparseable YAML + +* Sun Feb 25 2018 Stephen Gallagher - 1.0.3-1 +- RPM components are properly emitted when no module components exist +- Parser works around late determination of modulemd version + +* Fri Feb 16 2018 Stephen Gallagher - 1.0.2-1 +- Be more strict with certain parser edge-cases +- Replace popt argument processing with glib +- Drop upstreamed patches + +* Thu Feb 15 2018 Stephen Gallagher - 1.0.1-2 +- Handle certain unlikely format violations + +* Thu Feb 15 2018 Stephen Gallagher - 1.0.1-1 +- Support modulemd v2 +- Add tool to do quick validation of modulemd +- Fix memory management +- Warn and ignore unparseable sub-documents in the YAML +- Fix several memory issues detected by Coverity scan + +* Tue Feb 06 2018 Stephen Gallagher - 0.2.2-1 +- Update to libmodulemd 0.2.2 +- Fix numerous minor memory leaks +- Fix issues with EOL/SL dates + +* Tue Feb 06 2018 Igor Gnatenko - 0.2.1-3 +- Own appropriate directories + +* Fri Feb 02 2018 Igor Gnatenko - 0.2.1-2 +- Switch to %%ldconfig_scriptlets + +* Fri Jan 05 2018 Stephen Gallagher - 0.2.1-1 +- Update to libmodulemd 0.2.1 +- Add 'name' property for Profiles + +* Thu Oct 05 2017 Stephen Gallagher - 0.2.0-2 +- Add missing BuildRequires for gtk-doc + +* Thu Oct 05 2017 Stephen Gallagher - 0.2.0-1 +- Update to libmodulemd 0.2.0 +- Adds gtk-doc generated documentation +- (ABI-break) Makes all optional properties accept NULL as a value to clear + them +- (ABI-break) Modulemd.SimpleSet takes a STRV (char **) instead of a + GLib.PtrArray +- Fixes a bug where the name was not always set for components +- Adds support for dumping YAML from the introspected API +- Includes add/remove routines for profiles + +* Sat Sep 30 2017 Igor Gnatenko - 0.1.0-5 +- Use %%_isa in Requires for main package from devel + +* Mon Sep 18 2017 Stephen Gallagher - 0.1.0-4 +- Correct the license to MIT + +* Mon Sep 18 2017 Stephen Gallagher - 0.1.0-3 +- Modifications requested during package review + +* Fri Sep 15 2017 Stephen Gallagher - 0.1.0-2 +- First public release + diff --git a/modulemd-2.15.0-build-Move-computing-gtk-doc-module-paths-to-the-che.patch b/modulemd-2.15.0-build-Move-computing-gtk-doc-module-paths-to-the-che.patch new file mode 100644 index 0000000..8ab92f1 --- /dev/null +++ b/modulemd-2.15.0-build-Move-computing-gtk-doc-module-paths-to-the-che.patch @@ -0,0 +1,96 @@ +From 9d2809090cc0cccd7bab67453dc00cf43a289082 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= +Date: Fri, 26 Jan 2024 15:44:39 +0100 +Subject: [PATCH 1/2] build: Move computing gtk-doc module paths to the check + place +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +A checks and an application of extra directories for gtkdoc-fixxref +were computed independetly. This patch removes the code duplication. +It also adds the discovered path to a "meson setup" summary output. + +Signed-off-by: Petr Písař +--- + meson.build | 25 ++++++++++++------------- + modulemd/meson.build | 9 +++++---- + 2 files changed, 17 insertions(+), 17 deletions(-) + +diff --git a/meson.build b/meson.build +index a5d1330..0b32f4d 100644 +--- a/meson.build ++++ b/meson.build +@@ -67,23 +67,21 @@ sed = find_program('sed') + test = find_program('test') + + with_docs = get_option('with_docs') ++gtk_doc_referred_paths = [] + if with_docs + gtkdoc = dependency('gtk-doc') + glib_docpath = join_paths(glib_prefix, 'share', 'gtk-doc', 'html') + +- glib_index_path = join_paths(glib_docpath, 'glib/index.html') +- ret = run_command ([test, '-e', glib_index_path], +- check: false) +- if ret.returncode() != 0 +- error('Missing documentation for GLib: @0@'.format(glib_index_path)) +- endif +- +- gobject_index_path = join_paths(glib_docpath, 'gobject/index.html') +- ret = run_command ([test, '-e', gobject_index_path], +- check: false) +- if ret.returncode() != 0 +- error('Missing documentation for GObject: @0@'.format(gobject_index_path)) +- endif ++ foreach referred_module : [ 'glib', 'gobject' ] ++ doc_module_path = join_paths(glib_docpath, referred_module) ++ doc_index_file = join_paths(doc_module_path, 'index.html') ++ ret = run_command ([test, '-e', doc_index_file], ++ check: false) ++ if ret.returncode() != 0 ++ error('Missing GTK documentation for @0@: @1@'.format(referred_module, doc_index_file)) ++ endif ++ gtk_doc_referred_paths += [ doc_module_path ] ++ endforeach + endif + + # Keep with_manpages option a tristate feature for backward compatibility. +@@ -198,6 +196,7 @@ summary({'prefix': get_option('prefix'), + 'datadir': get_option('datadir'), + 'Python 2 GObject Overrides': gobject_overrides_dir_py2, + 'Python 3 GObject Overrides': gobject_overrides_dir_py3, ++ 'GTK-Doc Referred Paths': gtk_doc_referred_paths, + }, section: 'Directories') + + summary({'Custom Python': get_option('python_name'), +diff --git a/modulemd/meson.build b/modulemd/meson.build +index a816e13..844f135 100644 +--- a/modulemd/meson.build ++++ b/modulemd/meson.build +@@ -256,6 +256,10 @@ configure_file( + # --- Documenatation --- # + + if with_docs ++ fixxref_args = [] ++ foreach path : gtk_doc_referred_paths ++ fixxref_args += [ '--extra-dir=@0@'.format(path) ] ++ endforeach + gnome.gtkdoc( + 'modulemd-2.0', + install_dir: 'modulemd-2.0', +@@ -265,10 +269,7 @@ if with_docs + dependencies : [ + modulemd_dep, + ], +- fixxref_args: [ +- '--extra-dir=@0@'.format(join_paths(glib_docpath, 'glib')), +- '--extra-dir=@0@'.format(join_paths(glib_docpath, 'gobject')), +- ], ++ fixxref_args: [ fixxref_args ], + install : true, + ) + endif +-- +2.43.0 + diff --git a/modulemd-2.15.0-doc-Adapt-GLib-documentation-path-to-GLib-2.79.0.patch b/modulemd-2.15.0-doc-Adapt-GLib-documentation-path-to-GLib-2.79.0.patch new file mode 100644 index 0000000..1d9c7dd --- /dev/null +++ b/modulemd-2.15.0-doc-Adapt-GLib-documentation-path-to-GLib-2.79.0.patch @@ -0,0 +1,53 @@ +From 29c339a31b1c753dcdef041e5c2e0e600e48b59d Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= +Date: Fri, 26 Jan 2024 17:09:11 +0100 +Subject: [PATCH 2/2] doc: Adapt GLib documentation path to GLib 2.79.0 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +GLib 2.79.0 switched from gtk-doc to gi-docgen, whose format and +installation location are both not compatible. The libmodulemd build +script reported an error because of the new location. + +This patch fixes the build failure by using the new location if GLib +is 2.79.0 or greater. + +Although the libmodulemd documentation references to GLib remain +unresolved now (i.e. names of the functions and the types are not +hyperlinks), we keep using the new location because the new GLib +*.devhelp2 indices remain there and they can only improve over the +time. + +If this expection does not fulfill, libmodulemd will either migrate to +gi-docgen, or drop the hard build-time dependency on GLib +documentation. + +Reimplements: #611 +Signed-off-by: Petr Písař +--- + meson.build | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +diff --git a/meson.build b/meson.build +index 0b32f4d..6108649 100644 +--- a/meson.build ++++ b/meson.build +@@ -70,7 +70,13 @@ with_docs = get_option('with_docs') + gtk_doc_referred_paths = [] + if with_docs + gtkdoc = dependency('gtk-doc') +- glib_docpath = join_paths(glib_prefix, 'share', 'gtk-doc', 'html') ++ ++ if glib.version().version_compare('<2.79.0') ++ glib_docpath = join_paths(glib_prefix, 'share', 'gtk-doc', 'html') ++ else ++ glib_docpath = join_paths(glib_prefix, 'share', 'doc', 'glib-2.0') ++ warning('glib >= 2.79.0 documention might not be properly referred from libmodulemd documentation.') ++ endif + + foreach referred_module : [ 'glib', 'gobject' ] + doc_module_path = join_paths(glib_docpath, referred_module) +-- +2.43.0 + diff --git a/modulemd-2.15.0-doc-Adapt-GLib-documentation-path-to-GLib-2.80.1.patch b/modulemd-2.15.0-doc-Adapt-GLib-documentation-path-to-GLib-2.80.1.patch new file mode 100644 index 0000000..70a6786 --- /dev/null +++ b/modulemd-2.15.0-doc-Adapt-GLib-documentation-path-to-GLib-2.80.1.patch @@ -0,0 +1,64 @@ +From f3336199b4e69af3305f156abc7533bed9e9a762 Mon Sep 17 00:00:00 2001 +From: Dominique Leuenberger +Date: Wed, 15 May 2024 08:35:00 +0200 +Subject: [PATCH] doc: Adapt GLib documentation path to GLib 2.80.1 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +With GLib 2.80.1 (commit 548ec9f1), the installation paths for the documentation +have changed once again: + + The `gi-docgen` tool is not designed to be used like that. In + particular, when nesting documentation directories, the generated + `*.devhelp2` files (needed by Devhelp to show the documentation) are + nested one directory level too deep for Devhelp to find them, and hence + are useless, and the documentation doesn’t show up in this common + documentation viewer. + + So, change the installed documentation directory hierarchy: + * `${PREFIX}/share/doc/glib-2.0/gio` → `${PREFIX}/share/doc/gio-2.0` + * `${PREFIX}/share/doc/glib-2.0/glib-unix` → + `${PREFIX}/share/doc/glib-unix-2.0` + * `${PREFIX}/share/doc/glib-2.0/gobject` → + `${PREFIX}/share/doc/gobject-2.0` + * etc. + * `${PREFIX}/share/doc/glib-2.0/glib` → `${PREFIX}/share/doc/glib-2.0` + +https://gitlab.gnome.org/GNOME/glib/-/issues/3287 +Reimplements #618 + +Signed-off-by: Petr Písař +--- + meson.build | 11 +++++++++-- + 1 file changed, 9 insertions(+), 2 deletions(-) + +diff --git a/meson.build b/meson.build +index 6108649..fab704f 100644 +--- a/meson.build ++++ b/meson.build +@@ -73,12 +73,19 @@ if with_docs + + if glib.version().version_compare('<2.79.0') + glib_docpath = join_paths(glib_prefix, 'share', 'gtk-doc', 'html') ++ glib_modules = ['glib', 'gobject' ] + else +- glib_docpath = join_paths(glib_prefix, 'share', 'doc', 'glib-2.0') + warning('glib >= 2.79.0 documention might not be properly referred from libmodulemd documentation.') ++ if glib.version().version_compare('<2.80.1') ++ glib_docpath = join_paths(glib_prefix, 'share', 'doc', 'glib-2.0') ++ glib_modules = ['glib', 'gobject' ] ++ else ++ glib_docpath = join_paths(glib_prefix, 'share', 'doc') ++ glib_modules = ['glib-2.0', 'gobject-2.0' ] ++ endif + endif + +- foreach referred_module : [ 'glib', 'gobject' ] ++ foreach referred_module : glib_modules + doc_module_path = join_paths(glib_docpath, referred_module) + doc_index_file = join_paths(doc_module_path, 'index.html') + ret = run_command ([test, '-e', doc_index_file], +-- +2.45.0 + diff --git a/modulemd-2.15.0.tar.xz.asc b/modulemd-2.15.0.tar.xz.asc new file mode 100644 index 0000000..6047da6 --- /dev/null +++ b/modulemd-2.15.0.tar.xz.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCAAdFiEE4/QvzhVoMKgDWObpT9GuwzZa978FAmRblZgACgkQT9GuwzZa +978CuQ//d9376juHZ83f+E8bzqouzqPgfvkz4WP6g/gloGWd1/7fKaktpyx0zbfT +IDxwEkA4HLG6M8JP/RAzsVFrFyilxuErkfjaa6LMl08B15bFsw8zZXW4ZvxymhGe +EuzZNcSzqAm6VRnjDKqCBtTI6vvhMQMtPw61lmWlECb1cfGs1EX3k+r9gkorJPqL +Yn7/N4urU+YeyT0xSCW3bz4YrCHbaAN/njvgM2lPi9DCC05jw2qaC0RngdkNGIiw +s5qKUIgEFNm9/Sm9nwXxMBdlMK0T9GhZRy0T+z/wMy3Fwv0Sthmw6ED8PlwnNO3W +rHN3jURbU4Yk0RHx3nJZqHI20MQ15MxPI0QeJaZSOgYxhVPcaszqGVpmMn74J+Kr +fg6WAgYqVViBlyNReUHm/rvGSCDL5FQd7/SpX3yKnaAAUOmaSqEt94SeRbDoWZow +KjW7F997kMhd64AfbdHj0Tp9+7mVgENOcDc+lTtTLDJrSTUbIeePVAM25FfQXSBB +4kL5y6rjBcmNFPoNXVrNj5f1Op5Zzd4/dpU7eE6ihKNOJ5IHC9NO6pl3LEzD1Lbt +xZtW8t5AZT6OYN3I+MZwBZUk3kvlPPJKUhbmcw3RdXLLgMhfUaDvIEgaT5Os2HKE +dxQaX710hXIz0Nwmdo41VfTKOwI3Ms2xQ5NhKsNQRAgIFLkGC5w= +=oY7q +-----END PGP SIGNATURE----- diff --git a/sources b/sources new file mode 100644 index 0000000..b6ddf93 --- /dev/null +++ b/sources @@ -0,0 +1,2 @@ +SHA512 (gpgkey-E3F42FCE156830A80358E6E94FD1AEC3365AF7BF.gpg) = 2d907470314e472ca515aa511b85e727f78abd6efb624418eb25d8e66726a8784e9ef7c8ac843ce391407d31457861eebcdac3244d0f9dc64bc9521c94aa8925 +SHA512 (modulemd-2.15.0.tar.xz) = 79032eb591cd3b778cb348040150ec4d1ccb8e2890d02c7b7a04f9b1bd376d32c5ae0e2c6dfb8056595fae5e54ea8365de06fe969a0f04b979abad3ff0882033