From 09a83465837c978bb9722f3ca60d09b10878287f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= Date: Fri, 4 Feb 2022 15:37:28 +0100 Subject: [PATCH] 2.14.0 bump --- .gitignore | 2 + libmodulemd.spec | 15 +- ...73709551615-buildorder-if-accept_ove.patch | 192 ------------------ sources | 4 +- 4 files changed, 9 insertions(+), 204 deletions(-) delete mode 100644 modulemd-2.13.0-Accept-18446744073709551615-buildorder-if-accept_ove.patch diff --git a/.gitignore b/.gitignore index 2d27b90..7077c03 100644 --- a/.gitignore +++ b/.gitignore @@ -60,3 +60,5 @@ /modulemd-2.12.1.tar.xz.asc /modulemd-2.13.0.tar.xz /modulemd-2.13.0.tar.xz.asc +/modulemd-2.14.0.tar.xz +/modulemd-2.14.0.tar.xz.asc diff --git a/libmodulemd.spec b/libmodulemd.spec index 5c92052..cbd60ff 100644 --- a/libmodulemd.spec +++ b/libmodulemd.spec @@ -23,8 +23,8 @@ %endif Name: %{upstream_name}%{?v2_suffix} -Version: 2.13.0 -Release: 4%{?dist} +Version: 2.14.0 +Release: 1%{?dist} Summary: Module metadata manipulation library # COPYING: MIT @@ -37,10 +37,6 @@ 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 buildorder 18446744073709551615 when loading -# modulemd-v2 documents, bug #1984402, , -# in upstream after 2.13.0 -Patch0: modulemd-2.13.0-Accept-18446744073709551615-buildorder-if-accept_ove.patch BuildRequires: gnupg2 BuildRequires: meson >= 0.47 @@ -62,10 +58,6 @@ BuildRequires: python-gobject-base BuildRequires: python%{python3_pkgversion}-devel BuildRequires: python%{python3_pkgversion}-gobject-base %endif -BuildRequires: help2man - - -# Patches %description @@ -191,6 +183,9 @@ mv %{buildroot}%{_mandir}/man1/modulemd-validator.1 \ %changelog +* 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 diff --git a/modulemd-2.13.0-Accept-18446744073709551615-buildorder-if-accept_ove.patch b/modulemd-2.13.0-Accept-18446744073709551615-buildorder-if-accept_ove.patch deleted file mode 100644 index 2e54628..0000000 --- a/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/sources b/sources index 4fa392a..2a13e90 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (modulemd-2.13.0.tar.xz) = b2a4fa4120d4dca714ef724a9e8f805d4f8a306a950e670f86f6184467c070ddb93360fff3bb079eb3a442b52024fe796ceb1195800d62bbb1f5cb67f8889e05 -SHA512 (modulemd-2.13.0.tar.xz.asc) = f588c1333b91db297ab5ec7e67f1d62884d4f58032a75feed1b3c3ff2ae67eb0f13a4209605f4a32d00fe6ccb3561b6fab81c2196f1d4439222b0e141f541ff6 +SHA512 (modulemd-2.14.0.tar.xz) = 90439cba83f4a8711095f1b9b92ba9135bade202703d698d192d066955ae8df3f53226fcd5fc73cd2873e5599822272f00a5b536cf62e3e51c37bbca32b7f756 +SHA512 (modulemd-2.14.0.tar.xz.asc) = a742c177084b2f1445704583ea43c09b479502432b62c1880ca4917dfa7550b6dfc3aef2498a5afdba61323451878b6ede7fdfba37d433982f0cc3925811668f