From 5fe8c08a16ec048256789da3eb124819ee1b3491 Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Nov 04 2021 00:24:51 +0000 Subject: import libmodulemd-2.13.0-2.el9 --- diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0531e87 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +SOURCES/gpgkey-E3F42FCE156830A80358E6E94FD1AEC3365AF7BF.gpg +SOURCES/modulemd-2.13.0.tar.xz diff --git a/.libmodulemd.metadata b/.libmodulemd.metadata new file mode 100644 index 0000000..809a9e4 --- /dev/null +++ b/.libmodulemd.metadata @@ -0,0 +1,2 @@ +75e05794a210a4ed87d361925fc520d5e11fa582 SOURCES/gpgkey-E3F42FCE156830A80358E6E94FD1AEC3365AF7BF.gpg +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 new file mode 100644 index 0000000..2e54628 --- /dev/null +++ b/SOURCES/modulemd-2.13.0-Accept-18446744073709551615-buildorder-if-accept_ove.patch @@ -0,0 +1,192 @@ +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/SOURCES/modulemd-2.13.0.tar.xz.asc b/SOURCES/modulemd-2.13.0.tar.xz.asc new file mode 100644 index 0000000..cb1c25e --- /dev/null +++ b/SOURCES/modulemd-2.13.0.tar.xz.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCAAdFiEE4/QvzhVoMKgDWObpT9GuwzZa978FAmDoGDoACgkQT9GuwzZa +9788qhAAzVLc75gZydzaygm4lZ39Z330JrmZVOddzsw7qyrtbWoAXLvBda2X+ckM +lnEcIaUp0suReysH7SjBumYg0IADkeGPHTr41OPQneUE5w0UvPfks2+Tvo50GUAv +7+yTPcF5gudyRJJTzHW8jOuqnWWqdGg41sPD8qFj7XTP2ndtUINHi1EBg7u3HApI +vRmD6AY7YYjnDQo7ugT+uIGcqCCtkOq40lc8wQEfgM9kWTwf8BbQMavrXfRjgzEe +0BR41LTaVTkXtn7+5/IkUF7Iq5zW4KzD0LxHck+eYc98AYlhf/MyquARpjkG53Nn +lehky9mQQsJHg3JkeGWJlDqnaFlbYcOpRhsA/xrBkQyO8kbl9pEDuzP7EXouKdp4 +1rrnsO9DFAznqfUV95h6SSfvm7KOB6/ac/iAl1FyvErxNUek6KxwWrSJsRQzaDf3 +Ao6HygX7eAOLjS6BFbzUzL5aQVDPKu+cJfkVlOguPYvNRAnFOH9Fx3TKv6kYeaZZ +1pHbc+7yQuM2Fy/Xj/N0Dwy5pvks+UCP3v294BPlqdW3HR/Bskjba3thg5bMMJ5H +Yq4wit8JWem76MMvHDXM2IgHpJhpg7DDxaKOd6qBN4dcOnOwCg680jFQ90rg3oVE +8qVBnYHtcut1XiSqqNE3/Zz0ISbhjv/BOor8zjYspEf0vipFjA0= +=AlDP +-----END PGP SIGNATURE----- diff --git a/SPECS/libmodulemd.spec b/SPECS/libmodulemd.spec new file mode 100644 index 0000000..693c403 --- /dev/null +++ b/SPECS/libmodulemd.spec @@ -0,0 +1,674 @@ +%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%{?rhel} && 0%{?rhel} <= 10 + # Support module builds with an invalid buildorder in RHEL 8. + %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.13.0 +Release: 2%{?dist} +Summary: Module metadata manipulation library + +# COPYING: MIT +## not in any binary package +# contrib/coverity-modeling.c: GPLv2+ +# contrib/release-tools/semver: GPLv3 +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 +# 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: 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 +BuildRequires: file-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 +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. + + +%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} \ + -Dlibmagic=enabled \ + -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 +* Thu Aug 12 2021 Petr Pisar - 2.13.0-2 +- Enable accept_overflowed_buildorder in tier0 tests (bug #1984403) + +* Tue Aug 10 2021 Petr Pisar - 2.13.0-1 +- 2.13.0 bump (bug #1984403) + +* Mon Aug 09 2021 Mohan Boddu - 2.12.1-2 +- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags + Related: rhbz#1991688 + +* Mon May 03 2021 Petr Pisar - 2.12.1-1 +- 2.12.1 bump (bug #1956346) + +* Fri Apr 16 2021 Mohan Boddu - 2.12.0-3 +- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937 + +* 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 +