Compare commits

...
Sign in to create a new pull request.

80 commits

Author SHA1 Message Date
Petr Písař
a9a3403052 Adapt tests to glib2-2.87.0 2026-01-14 16:48:48 +01:00
Python Maint
c05d8536fa Rebuilt for Python 3.14.0rc3 bytecode 2025-09-19 12:27:02 +02:00
Python Maint
d5da44ade0 Rebuilt for Python 3.14.0rc2 bytecode 2025-08-15 12:56:22 +02:00
Fedora Release Engineering
acf474286f Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild 2025-07-24 20:00:39 +00:00
Petr Písař
905725e65a 2.15.2 bump 2025-06-18 10:05:51 +02:00
Python Maint
a8720d4a28 Rebuilt for Python 3.14 2025-06-03 14:08:45 +02:00
Petr Písař
37ece00675 Rewrite CI tests from STI to TMT 2025-05-09 14:45:26 +02:00
Petr Písař
c87c812c4e 2.15.1 bump 2025-05-09 13:51:53 +02:00
Maja Massarini
f747988a41 Update .packit.yml to support new packit release 1.0.0
`synced_files` has been substituted by [files_to_sync](https://packit.dev/docs/configuration#files_to_sync).
2025-01-20 14:53:24 +00:00
Fedora Release Engineering
b2e2ef5320 Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild 2025-01-20 07:35:47 +00:00
Fedora Release Engineering
126a862656 Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild 2025-01-17 12:05:55 +00:00
Fedora Release Engineering
6ca8623b29 Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild 2024-07-18 14:28:56 +00:00
Python Maint
04b1fb0eeb Rebuilt for Python 3.13 2024-06-07 14:09:43 +02:00
Petr Písař
8e9d364165 Use canonical "dnf builddep" command in STI tests 2024-05-16 09:00:54 +02:00
Petr Písař
f96a22b6ce Do not install Python 2 packages in Fedora STI tests 2024-05-15 17:50:49 +02:00
Petr Písař
dda060e3ad Fix building with glib2-doc 2.80.1 2024-05-15 16:21:16 +02:00
Petr Písař
54cce88d5c Note licenses of the tests in a spec file comment 2024-04-03 10:41:56 +02:00
Petr Písař
9fff9ef002 Require glib2 version with g_once_init_enter_pointer symbol
glib2-2.79.0-2.fc40 added g_once_init_enter_pointer symbol and started
to implant a reference on the symbol into applications via
macros/in-lined functions included from glib2 header files. As
a result, people upgrading to libmodulemd built against new glib2 but
not upgrading glib2 at the same time will break dynamic linking of
libmodulemd:

    # dnf5 install NetworkManager
    dnf5: symbol lookup error: /lib64/libmodulemd.so.2: undefined symbol: g_once_init_leave_pointer

If glib2 versioned its symbols, rpm-build would inject an RPM
dependency on the new glib2 versioned SONAME. However, this is not
true, so we need to add a dependency on a minimal glib2 version
manually.

Because this issue is specific to not fully upgraded Fedora 40--41,
I will not post it to the upstream. This issue materializes in real
life when mock installs a new libdnf into a bootstrap image based on
a container image created before glib2-2.79.0-2.fc40 (bug #2265336).
2024-02-27 16:06:34 +01:00
Petr Písař
59d02d0db6 Fix building with glib2-doc 2.79.0 2024-01-29 16:39:51 +01:00
Fedora Release Engineering
36f1a0169f Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-25 02:54:26 +00:00
Fedora Release Engineering
4d0466eccc Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-21 04:42:17 +00:00
Fedora Release Engineering
3ea1c45a24 Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-07-20 11:28:48 +00:00
Python Maint
94ab733609 Rebuilt for Python 3.12 2023-06-15 17:00:27 +02:00
Florian Festi
0c7a9dc719 Rebuild for rpm-4.18.90 2023-05-11 15:35:02 +02:00
Petr Písař
b672dea896 packit: Migrate from a deprecated current_version_command to actions/get-current-version
https://github.com/fedora-modularity/libmodulemd/issues/553
2023-05-11 14:20:50 +02:00
Petr Písař
27262aa7e1 Adapt STI tests to current meson
Meson now requires a build directory out of source tree.

Setting STI dir to "{{ tenv_workdir }}source" does not work. It
expands to "/var/str/var/str/source" instead of "var/str/source".
Hence this patch passes to meson an explicit path to the directory
with libmodulemd sources.
2023-05-11 14:20:00 +02:00
Petr Písař
8bdb2b1d1b 2.15.0 bump 2023-05-10 16:05:39 +02:00
Fedora Release Engineering
ca231d3588 Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-01-19 16:53:48 +00:00
Petr Písař
5da1cc7ad8 Update an out-dated URI in a description 2022-07-22 18:57:49 +02:00
Fedora Release Engineering
26ffe78488 Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-07-21 18:23:59 +00:00
Python Maint
241787c3b0 Rebuilt for Python 3.11 2022-06-13 20:59:32 +02:00
Petr Písař
d9908420cd Drop removed meson -D developer_build option from CI tests 2022-02-08 11:16:59 +01:00
Petr Písař
2be5d00978 Drop removed meson -D developer_build option
This was removed from libmodulemd-2.12.0. Now meson in Fedora CI errors on
unknown options.
2022-02-08 10:52:39 +01:00
Petr Písař
09a8346583 2.14.0 bump 2022-02-07 10:41:46 +01:00
Fedora Release Engineering
782f8cac93 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-01-20 16:43:15 +00:00
Petr Písař
a09554e4b8 Accept an invalid buildorder 18446744073709551615 found in RHEL 8 repositories 2021-09-14 14:36:35 +02:00
Fedora Release Engineering
91e1569e7c - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-07-22 11:51:55 +00:00
Petr Písař
f5554ca436 2.13.0 bump 2021-07-09 14:42:15 +02:00
Python Maint
7bc296f67b Rebuilt for Python 3.10 2021-06-04 17:22:03 +02:00
Petr Písař
efaa141247 Document licenses 2021-05-11 11:31:20 +02:00
Petr Písař
9b2beab427 Correct source addresses
2.12.1 was released from "2.12.1" tag. Also document a source of the
PGP keyring as required by the packaging guidelines.
2021-05-06 13:27:49 +02:00
Petr Písař
8cc66e7e53 2.12.1 bump 2021-05-03 15:50:48 +02:00
Fedora Release Engineering
88cd0dc170 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-01-26 17:31:59 +00:00
Stephen Gallagher
1647405f05
Add support for 'buildorder' to Packager documents
Signed-off-by: Stephen Gallagher <sgallagh@redhat.com>
2021-01-14 21:22:21 -05:00
Stephen Gallagher
d64a094808
Fix issue with ModuleIndex when input contains only Obsoletes documents
Fix import issue when built with Python 2 support

Signed-off-by: Stephen Gallagher <sgallagh@redhat.com>
2021-01-12 10:29:18 -05:00
Stephen Gallagher
c955134811
Release 2.11.2
Extend read_packager_[file|string]() to support overriding the module name and stream.

Signed-off-by: Stephen Gallagher <sgallagh@redhat.com>
2021-01-07 20:21:33 -05:00
Stephen Gallagher
6dde83e7fa
Drop nonexistent ABI test
Signed-off-by: Stephen Gallagher <sgallagh@redhat.com>
2020-12-17 12:50:20 -05:00
Stephen Gallagher
95b41cf3d5
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()

Signed-off-by: Stephen Gallagher <sgallagh@redhat.com>
2020-12-17 12:28:49 -05:00
Stephen Gallagher
2f84cc068f
Release 2.11.0
Signed-off-by: Stephen Gallagher <sgallagh@redhat.com>
2020-12-10 13:22:46 -05:00
Stephen Gallagher
5b0762224f
Fix integer size issue on 32-bit platforms
Signed-off-by: Stephen Gallagher <sgallagh@redhat.com>
2020-11-20 16:37:55 -05:00
Stephen Gallagher
c50987c78d
Release 2.10.0
https://github.com/fedora-modularity/libmodulemd/releases/tag/libmodulemd-2.10.0

Signed-off-by: Stephen Gallagher <sgallagh@redhat.com>
2020-11-20 15:39:10 -05:00
Stephen Gallagher
fd693ae0d1
Update .gitignore file
Signed-off-by: Stephen Gallagher <sgallagh@redhat.com>
2020-08-06 11:19:17 -04:00
Fedora Release Engineering
94668302f2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-07-28 05:07:03 +00:00
Miro Hrončok
eb87df0d9f Rebuilt for Python 3.9 2020-05-25 12:29:56 +02:00
Stephen Gallagher
3949089b57
[packit] 2.9.4 upstream release
Upstream tag: libmodulemd-2.9.4
Upstream commit: c7254db0

Signed-off-by: Stephen Gallagher <sgallagh@redhat.com>
2020-05-20 15:47:32 -04:00
Stephen Gallagher
0bc81ec0ad
[packit] 2.9.4 upstream release
Upstream tag: libmodulemd-2.9.4
Upstream commit: c7254db0

Signed-off-by: Stephen Gallagher <sgallagh@redhat.com>
2020-05-20 15:40:22 -04:00
Stephen Gallagher
84f2ca4ce5
Drop upstreamed patch
Signed-off-by: Stephen Gallagher <sgallagh@redhat.com>
2020-04-08 12:13:57 -04:00
Stephen Gallagher
b55b1da4f2
[packit] 2.9.3 upstream release
Upstream tag: libmodulemd-2.9.3
Upstream commit: e4a27c0963f45a3d6ae9f98791aeff0597b50c76

Signed-off-by: Stephen Gallagher <sgallagh@redhat.com>
2020-04-08 10:45:26 -04:00
Stephen Gallagher
05f8dde7a2
Skip rpmdeplint from gating due to https://github.com/fedora-infra/bodhi/issues/3944
Signed-off-by: Stephen Gallagher <sgallagh@redhat.com>
2020-04-01 11:27:54 -04:00
Stephen Gallagher
35d8ffd6d6
Add gating for updates
Signed-off-by: Stephen Gallagher <sgallagh@redhat.com>
2020-04-01 10:04:57 -04:00
Stephen Gallagher
2afb480854
Fix build against Python 3.9
Resolves: rhbz#1817665

Signed-off-by: Stephen Gallagher <sgallagh@redhat.com>
2020-04-01 09:32:35 -04:00
Stephen Gallagher
566e43aa06
Rebuild
Signed-off-by: Stephen Gallagher <sgallagh@redhat.com>
2020-03-11 17:02:05 -04:00
Stephen Gallagher
efa04b7cb6
[packit] 2.9.2 upstream release
Upstream tag: libmodulemd-2.9.2
Upstream commit: 780750ea

Signed-off-by: Stephen Gallagher <sgallagh@redhat.com>
2020-03-11 16:47:47 -04:00
Stephen Gallagher
296bee430e
[packit] 2.9.2 upstream release
Upstream tag: libmodulemd-2.9.2
Upstream commit: 780750ea

Signed-off-by: Stephen Gallagher <sgallagh@redhat.com>
2020-03-11 16:43:33 -04:00
Stephen Gallagher
30ae62e232
[packit] 2.9.2 upstream release
Upstream tag: libmodulemd-2.9.2
Upstream commit: 780750ea

Signed-off-by: Stephen Gallagher <sgallagh@redhat.com>
2020-03-11 16:37:28 -04:00
Stephen Gallagher
17fc7849e2
[packit] 2.9.1 upstream release
Upstream tag: libmodulemd-2.9.1
Upstream commit: b78d1baa

Signed-off-by: Stephen Gallagher <sgallagh@redhat.com>
2020-02-14 12:45:13 -05:00
Stephen Gallagher
26c80918da
Don't break tests on systems without py2
Signed-off-by: Stephen Gallagher <sgallagh@redhat.com>
2020-02-14 12:40:11 -05:00
Stephen Gallagher
217e04a860
Fix release field
Signed-off-by: Stephen Gallagher <sgallagh@redhat.com>
2020-02-12 22:00:06 -05:00
Stephen Gallagher
0cc560d9a9
2.9.0 upstream release
Upstream tag: libmodulemd-2.9.0
Upstream commit: af8f03df

Signed-off-by: Stephen Gallagher <sgallagh@redhat.com>
2020-02-12 17:58:03 -05:00
Fedora Release Engineering
4c5612dd02 - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-01-29 09:45:21 +00:00
Stephen Gallagher
eb1c39db8a
Update to 2.8.3
Fix compilation issue with glib >= 2.63.3
Improved modulemd document validation
Numerous test enhancements

Signed-off-by: Stephen Gallagher <sgallagh@redhat.com>
2020-01-09 12:31:12 -05:00
Stephen Gallagher
abb5f5424a
Update to 2.8.2
Use safer version of dup()
Fix loading of YAML module stream with no module or stream name

Signed-off-by: Stephen Gallagher <sgallagh@redhat.com>
2019-10-24 14:52:19 -04:00
Stephen Gallagher
8122fb9a17
Add source tarball
Signed-off-by: Stephen Gallagher <sgallagh@redhat.com>
2019-10-15 11:18:52 -04:00
Stephen Gallagher
f2978a99c7
Improve the merge logic to handle third-party repos more sanely
Signed-off-by: Stephen Gallagher <sgallagh@redhat.com>
2019-10-15 11:08:27 -04:00
Stephen Gallagher
2e530f24c2
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.

Signed-off-by: Stephen Gallagher <sgallagh@redhat.com>
2019-09-18 16:01:18 -04:00
Stephen Gallagher
8daa4da18f
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.

Signed-off-by: Stephen Gallagher <sgallagh@redhat.com>
2019-09-03 22:02:07 -04:00
Miro Hrončok
26e12907ca Rebuilt for Python 3.8 2019-08-19 08:49:36 +02:00
Stephen Gallagher
ac46535dd4
Add missing BuildRequires
Signed-off-by: Stephen Gallagher <sgallagh@redhat.com>
2019-08-15 08:31:39 -04:00
Stephen Gallagher
d99905d75c
Update to 2.7.0
Drop libmodulemd1 subpackage which is now packaged separately
Add support for 'buildroot' and 'srpm-buildroot' arguments to components

Signed-off-by: Stephen Gallagher <sgallagh@redhat.com>
2019-08-15 08:20:20 -04:00
Fedora Release Engineering
478cf914f5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-07-25 13:49:02 +00:00
14 changed files with 2580 additions and 176 deletions

1
.fmf/version Normal file
View file

@ -0,0 +1 @@
1

32
.gitignore vendored
View file

@ -1,3 +1,8 @@
/.build*.log
*~
*.swp
*.rpm
/modulemd-*/
/modulemd-0.1.0.tar.xz
/modulemd-0.2.0.tar.xz
/modulemd-0.2.1.tar.xz
@ -36,3 +41,30 @@
/modulemd-2.4.0.tar.xz
/modulemd-2.5.0.tar.xz
/modulemd-2.6.0.tar.xz
/modulemd-2.7.0.tar.xz
/modulemd-2.8.0.tar.xz
/modulemd-2.8.1.tar.xz
/modulemd-2.8.2.tar.xz
/modulemd-2.8.3.tar.xz
/modulemd-2.9.0.tar.xz
/modulemd-2.9.1.tar.xz
/modulemd-2.9.2.tar.xz
/modulemd-2.9.3.tar.xz
/modulemd-2.9.4.tar.xz
/modulemd-2.10.0.tar.xz
/modulemd-2.11.0.tar.xz
/modulemd-2.11.1.tar.xz
/modulemd-2.11.2.tar.xz
/modulemd-2.12.0.tar.xz
/modulemd-2.12.1.tar.xz
/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
/modulemd-2.15.0.tar.xz
/modulemd-2.15.0.tar.xz.asc
/modulemd-2.15.1.tar.xz
/modulemd-2.15.1.tar.xz.asc
/modulemd-2.15.2.tar.xz
/modulemd-2.15.2.tar.xz.asc

23
.make_packit_specfile.sh Executable file
View file

@ -0,0 +1,23 @@
#!/bin/bash
set -e
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
pushd $SCRIPT_DIR
date=$(date +%Y%m%d)
version_desc=$(git describe --tags --match "*.*")
version=$(echo $version_desc | cut -d '-' -f2)
patch_count=$(echo $version_desc | cut -d '-' -f3)
hash=$(echo $version_desc | cut -d '-' -f4)
if [ x$patch_count != x ]; then
release=0.${date}.${patch_count}git${hash}%{?dist}
else
release=1%{?dist}
fi
./spec_tmpl.sh version=$version release=$release template=libmodulemd.spec.in > libmodulemd.spec
popd

28
.packit.yml Normal file
View file

@ -0,0 +1,28 @@
specfile_path: libmodulemd.spec
upstream_package_name: libmodulemd
downstream_package_name: libmodulemd
upstream_tag_template: libmodulemd-{version}
actions:
get-current-version: ./.packit_version.sh
files_to_sync:
- .packit.yml
- .make_packit_specfile.sh
- libmodulemd.spec
actions:
post-upstream-clone: ./.make_packit_specfile.sh
jobs:
- job: copr_build
trigger: pull_request
metadata:
targets:
- fedora-all
- epel-7
- job: propose_downstream
trigger: release
metadata:
dist-git-branch: fedora-all

3
README.packit Normal file
View file

@ -0,0 +1,3 @@
This repository is maintained by packit.
https://packit.dev/
The file was generated using packit 0.10.1.

16
gating.yaml Normal file
View file

@ -0,0 +1,16 @@
--- !Policy
product_versions:
- fedora-rawhide
decision_context: bodhi_update_push_stable
subject_type: koji_build
rules:
- !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.rpmdeplint.functional}
--- !Policy
product_versions:
- fedora-*
decision_context: bodhi_update_push_stable
subject_type: koji_build
rules:
- !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.installability.functional}
- !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.rpminspect.static-analysis}
- !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional}

Binary file not shown.

View file

@ -1,24 +1,50 @@
%global libmodulemd_version 2.6.0
%global libmodulemd_v1_version 1.8.13
# Python 2 is dead on F31+
%if ( 0%{?fedora} && 0%{?fedora} <= 30 ) || ( 0%{?rhel} && 0%{?rhel} <= 7)
%global meson_override_flags -Dwith_py3_overrides=true -Dwith_py2_overrides=true
%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_override_flags -Dwith_py3_overrides=true -Dwith_py2_overrides=false
%global meson_python_flags -Dwith_py2=false -Dwith_py3=true
%global build_python2 0
%global build_python3 1
%endif
Name: libmodulemd
Version: %{libmodulemd_version}
Release: 1%{?dist}
%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.2
Release: 5%{?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
# modulemd/tests/test_data/f29.yaml: Apache-2.0
# modulemd/tests/test_data/f29-updates.yaml: Apache-2.0
# xml_specs/reduced/tests/good/module_stream_build_license.xml: MIT AND GPL-3.0-or-later
License: MIT
SourceLicense: %{license} AND GPL-3.0-only AND GPL-3.0-or-later AND GPL-2.0-or-later AND Apache-2.0
URL: https://github.com/fedora-modularity/libmodulemd
Source0: %{url}/releases/download/%{name}-%{version}/modulemd-%{version}.tar.xz
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
# Adapt tests to glib2-2.87.0, in upstream after 2.15.2, bug #2423153
Patch0: modulemd-2.15.2-tests-Adapt-to-glib-2.87.0.patch
BuildRequires: gnupg2
BuildRequires: meson >= 0.47
BuildRequires: pkgconfig
BuildRequires: gcc
@ -27,163 +53,122 @@ 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
BuildRequires: python3-devel
BuildRequires: python3-gobject-base
%ifarch %{valgrind_arches}
BuildRequires: valgrind
%if %{build_python3}
BuildRequires: python%{python3_pkgversion}-devel
BuildRequires: python%{python3_pkgversion}-gobject-base
%endif
%if 0%{?fedora} >= 40 && 0%{?fedora} < 42
# glib2 version with g_once_init_enter_pointer symbol, bug #2265336
Requires: glib2 >= 2.79.0-2
%endif
# Make sure we upgrade libmodulemd1 to match
Conflicts: libmodulemd1 < %{libmodulemd_v1_version}-%{release}
# Patches
%description
C Library for manipulating module metadata files.
See https://github.com/fedora-modularity/libmodulemd/blob/master/README.md for
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
Obsoletes: python2-modulemd < 1.3.4
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}
Python 2 bindings for %{name}.
%endif
%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
%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 python3-%{name}
Python 3 bindings for %{name}
%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}
%description devel
Development files for libmodulemd.
%package -n libmodulemd1
Summary: Compatibility package for libmodulemd 1.x
Version: %{libmodulemd_v1_version}
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}
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
%if %{build_python2}
%package -n python2-libmodulemd1
Summary: Python 2 bindings for %{name}1
Version: %{libmodulemd_v1_version}
Requires: libmodulemd1 = %{libmodulemd_v1_version}-%{release}
Requires: python-gobject-base
Obsoletes: python2-libmodulemd < 2
Provides: python2-libmodulemd = %{libmodulemd_v1_version}-%{release}
%description -n python2-libmodulemd1
Python 2 bindings for libmodulemd1
%if (0%{?rhel} && 0%{?rhel} <= 7)
Conflicts: libmodulemd1-devel
Conflicts: libmodulemd-devel
%endif
%package -n python3-libmodulemd1
Summary: Python 3 bindings for %{name}1
Version: %{libmodulemd_v1_version}
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
%description devel
Development files for %{name}.
%prep
%autosetup -p1 -n modulemd-%{libmodulemd_version}
%{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}'
%autosetup -p1 -n modulemd-%{version}
%build
%meson -Ddeveloper_build=false -Dbuild_api_v1=true -Dbuild_api_v2=true %{meson_override_flags}
%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
%ifarch %{power64} s390x
# Valgrind is broken on ppc64[le] with GCC7:
# https://bugs.kde.org/show_bug.cgi?id=386945
export MMD_SKIP_VALGRIND=1
%endif
%ifnarch %{valgrind_arches}
export MMD_SKIP_VALGRIND=1
%endif
# Don't run tests on ARM for now. There are problems with
# performance on the builders and often these time out.
%ifnarch %{arm} aarch64
%meson_test
%endif
# 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
ln -s libmodulemd.so.%{libmodulemd_v1_version} \
%{buildroot}%{_libdir}/%{name}.so.compat
%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 README.md
%{_bindir}/modulemd-validator
%{_libdir}/%{name}.so.2*
%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}/%{name}.so
%{_libdir}/%{upstream_name}.so
%{_libdir}/pkgconfig/modulemd-2.0.pc
%{_includedir}/modulemd-2.0/
%dir %{_datadir}/gir-1.0
@ -199,38 +184,235 @@ ln -s libmodulemd.so.%{libmodulemd_v1_version} \
%endif
%files -n python3-%{name}
%if %{build_python3}
%files -n python%{python3_pkgversion}-%{name}
%{python3_sitearch}/gi/overrides/
%if %{build_python2}
%files -n python2-libmodulemd1
%endif
%files -n python3-libmodulemd1
%files -n libmodulemd1
%license COPYING
%doc 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
* Wed Jan 14 2026 Petr Pisar <ppisar@redhat.com> - 2.15.2-5
- Adapt tests to glib2-2.87.0 (bug #2423153)
* Fri Sep 19 2025 Python Maint <python-maint@redhat.com> - 2.15.2-4
- Rebuilt for Python 3.14.0rc3 bytecode
* Fri Aug 15 2025 Python Maint <python-maint@redhat.com> - 2.15.2-3
- Rebuilt for Python 3.14.0rc2 bytecode
* Thu Jul 24 2025 Fedora Release Engineering <releng@fedoraproject.org> - 2.15.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
* Wed Jun 18 2025 Petr Pisar <ppisar@redhat.com> - 2.15.2-1
- 2.15.2 bump
* Tue Jun 03 2025 Python Maint <python-maint@redhat.com> - 2.15.1-2
- Rebuilt for Python 3.14
* Fri May 09 2025 Petr Pisar <ppisar@redhat.com> - 2.15.1-1
- 2.15.1 bump
* Mon Jan 20 2025 Fedora Release Engineering <releng@fedoraproject.org> - 2.15.0-16
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
* Fri Jan 17 2025 Fedora Release Engineering <releng@fedoraproject.org> - 2.15.0-15
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
* Thu Jul 18 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.15.0-14
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
* Fri Jun 07 2024 Python Maint <python-maint@redhat.com> - 2.15.0-13
- Rebuilt for Python 3.13
* Thu May 16 2024 Petr Pisar <ppisar@redhat.com> - 2.15.0-12
- Use canonical "dnf builddep" command in STI tests
* Wed May 15 2024 Petr Pisar <ppisar@redhat.com> - 2.15.0-11
- Do not install Python 2 packages in Fedora STI tests
* Wed May 15 2024 Petr Pisar <ppisar@redhat.com> - 2.15.0-10
- Fix building with glib2-doc 2.80.1 (upstream bug #619)
* Tue Feb 27 2024 Petr Pisar <ppisar@redhat.com> - 2.15.0-9
- Require glib2 version with g_once_init_enter_pointer symbol (bug #2265336)
* Mon Jan 29 2024 Petr Pisar <ppisar@redhat.com> - 2.15.0-8
- Fix building with glib2-doc 2.79.0
* Thu Jan 25 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.15.0-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Sun Jan 21 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.15.0-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Thu Jul 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 2.15.0-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Thu Jun 15 2023 Python Maint <python-maint@redhat.com> - 2.15.0-4
- Rebuilt for Python 3.12
* Wed May 10 2023 Florian Festi <ffesti@redhat.com> - 2.15.0-3
- Rebuild for rpm-4.18.90
* Wed May 10 2023 Petr Pisar <ppisar@redhat.com> - 2.15.0-2
- Adapt STI tests to current meson
* Wed May 10 2023 Petr Pisar <ppisar@redhat.com> - 2.15.0-1
- 2.15.0 bump
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 2.14.0-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Thu Jul 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.14.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Mon Jun 13 2022 Python Maint <python-maint@redhat.com> - 2.14.0-3
- Rebuilt for Python 3.11
* Tue Feb 08 2022 Petr Pisar <ppisar@redhat.com> - 2.14.0-2
- Drop removed meson -D developer_build option from CI tests
* Fri Feb 04 2022 Petr Pisar <ppisar@redhat.com> - 2.14.0-1
- 2.14.0 bump
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.13.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Tue Sep 14 2021 Petr Pisar <ppisar@redhat.com> - 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 <releng@fedoraproject.org> - 2.13.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Fri Jul 09 2021 Petr Pisar <ppisar@redhat.com> - 2.13.0-1
- 2.13.0 bump
* Fri Jun 04 2021 Python Maint <python-maint@redhat.com> - 2.12.1-2
- Rebuilt for Python 3.10
* Mon May 03 2021 Petr Pisar <ppisar@redhat.com> - 2.12.1-1
- 2.12.1 bump
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.12.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Thu Jan 14 2021 Stephen Gallagher <sgallagh@redhat.com> - 2.12.0-1
- Add support for 'buildorder' to Packager documents
* Tue Jan 12 2021 Stephen Gallagher <sgallagh@redhat.com> - 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 <sgallagh@redhat.com> - 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 <sgallagh@redhat.com> - 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 <sgallagh@redhat.com> - 2.11.0-1
- Release 2.11.0
* Fri Nov 20 2020 Stephen Gallagher <sgallagh@redhat.com> - 2.10.0-2
- Fix integer size issue on 32-bit platforms
* Fri Nov 20 2020 Stephen Gallagher <sgallagh@redhat.com> - 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 <releng@fedoraproject.org> - 2.9.4-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Mon May 25 2020 Miro Hrončok <mhroncok@redhat.com> - 2.9.4-2
- Rebuilt for Python 3.9
* Wed May 20 2020 Stephen Gallagher <sgallagh@redhat.com> - 2.9.4-1
- new upstream release: 2.9.4
* Wed May 20 2020 Stephen Gallagher <sgallagh@redhat.com> - 2.9.4-2.9.300520.1gitgc19757c
- new upstream release: 2.9.4
* Wed Apr 08 2020 Stephen Gallagher <sgallagh@redhat.com> - 2.9.3-1
- new upstream release: 2.9.3
* Wed Apr 01 2020 Stephen Gallagher <sgallagh@redhat.com> - 2.9.2-4
- Skip rpmdeplint from gating due to https://github.com/fedora-infra/bodhi/issues/3944
* Wed Apr 01 2020 Stephen Gallagher <sgallagh@redhat.com> - 2.9.2-3
- Fix build against Python 3.9
- Resolves: rhbz#1817665
* Wed Mar 11 2020 Stephen Gallagher <sgallagh@redhat.com> - 2.9.2-2
- new upstream release: 2.9.2
* Wed Mar 11 2020 Stephen Gallagher <sgallagh@redhat.com> - 2.9.2-0.20200311.1gitg31bbd4e
- new upstream release: 2.9.2
* Wed Mar 11 2020 Stephen Gallagher <sgallagh@redhat.com> - 2.9.2-0.20200311.1gitg31bbd4e
- new upstream release: 2.9.2
* Fri Feb 14 2020 Stephen Gallagher <sgallagh@redhat.com> - 2.9.1-1
- new upstream release: 2.9.1
* Wed Feb 12 2020 Stephen Gallagher <sgallagh@redhat.com> - 2.9.0-1
- new upstream release: 2.9.0
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.8.3-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Thu Jan 09 2020 Stephen Gallagher <sgallagh@redhat.com> - 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 <sgallagh@redhat.com> - 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 <sgallagh@redhat.com> - 2.8.1-1
- Improve the merge logic to handle third-party repos more sanely
* Wed Sep 18 2019 Stephen Gallagher <sgallagh@redhat.com> - 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 <sgallagh@redhat.com> - 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 <mhroncok@redhat.com> - 2.7.0-2
- Rebuilt for Python 3.8
* Thu Aug 15 2019 Stephen Gallagher <sgallagh@redhat.com> - 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 <releng@fedoraproject.org> - 2.6.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Wed Jul 03 2019 Stephen Gallagher <sgallagh@redhat.com> - 2.6.0-1
- Update to 2.6.0
- New function ModuleIndexMerger.resolve_ext() allowing for strict merging

File diff suppressed because it is too large Load diff

5
plans/sanity.fmf Normal file
View file

@ -0,0 +1,5 @@
summary: Sanity tests
discover:
how: fmf
execute:
how: tmt

View file

@ -1 +1,2 @@
SHA512 (modulemd-2.6.0.tar.xz) = 70ff6cb8c4f4ee8619cae96fc62280460f32872b166bf4db87d80827149825cdb1aa9d9bdc85ef68d2caddb1f9569003e218523d0d1e7f59367e53046628e7fb
SHA512 (modulemd-2.15.2.tar.xz) = d1785f6982ed19292103d741e3e94581e9789737be6f8e90d19218296f3aeb87d6589f3247744f8eab4f714d298d1508312b119624a8c32086c720becfa4cdc5
SHA512 (modulemd-2.15.2.tar.xz.asc) = 282ff35f15418e95aae09d9bff8084aa0b6f2732cea3934a84a1bd4ddd8e50c8375466acb6a39a6e632f4bbbefd49735b7f56e9304d52521786e245f52feae24

View file

@ -1,32 +0,0 @@
---
- hosts: localhost
tags:
- classic
roles:
- role: standard-test-source
- hosts: localhost
tags:
- classic
tasks:
- name: Make sure fedpkg and selinux bindings are installed
shell: dnf -y install fedpkg python2-libselinux libmodulemd-devel
- name: Copy spec file to remote machine
copy:
src: "{{ playbook_dir }}/../libmodulemd.spec"
dest: /tmp/libmodulemd.spec
- name: Install build deps
shell: dnf -y build-dep /tmp/libmodulemd.spec
- hosts: localhost
tags:
- classic
roles:
- role: standard-test-basic
tests:
- build:
dir: .
run: meson -Dtest_installed_lib=true -Ddeveloper_build=false source
- unittests:
dir: .
run: ninja test

15
tests/upstream-tests.fmf Normal file
View file

@ -0,0 +1,15 @@
summary: Upstream tests
component: libmodulemd
require:
- bash
- dnf5
- dnf5-command(builddep)
- fedpkg
- libmodulemd
- koji
- meson
- ninja
- rpm
- rpmdevtools
duration: 10m
test: ./upstream-tests.sh

26
tests/upstream-tests.sh Executable file
View file

@ -0,0 +1,26 @@
#!/bin/bash
set -ex
DIR=$(mktemp -d)
pushd "$DIR"
SRCRPM=$(rpm -q --qf '%{sourcerpm}' libmodulemd)
koji download-build -a src "$SRCRPM"
rpmdev-extract "$SRCRPM"
NAME=$(rpm -q --qf %{name} "$SRCRPM")
VERSION=$(rpm -q --qf %{version} "$SRCRPM")
pushd "${SRCRPM//.rpm}"
dnf -y builddep "$NAME".spec
fedpkg prep
meson setup -Daccept_overflowed_buildorder=true -Drpmio=enabled \
-Dskip_introspection=false -Dtest_installed_lib=true \
-Dwith_py2=false -Dwith_py3=true \
./build "${NAME}-${VERSION}-build/modulemd-${VERSION}"
ninja -C ./build
meson test -C ./build
popd
popd
rm -r "$DIR"