Compare commits

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

4 commits

Author SHA1 Message Date
Petr Písař
bb82443e24 2.15.2 bump 2025-06-18 10:12:49 +02:00
Petr Písař
4678cda2b1 Rewrite CI tests from STI to TMT 2025-05-12 09:09:29 +02:00
Petr Písař
97127d4cd4 2.15.1 bump 2025-05-12 09:09:28 +02:00
Maja Massarini
513902bd15 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-05-12 09:09:07 +02:00
13 changed files with 69 additions and 261 deletions

1
.fmf/version Normal file
View file

@ -0,0 +1 @@
1

4
.gitignore vendored
View file

@ -64,3 +64,7 @@
/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

View file

@ -6,7 +6,7 @@ upstream_tag_template: libmodulemd-{version}
actions:
get-current-version: ./.packit_version.sh
synced_files:
files_to_sync:
- .packit.yml
- .make_packit_specfile.sh
- libmodulemd.spec

View file

@ -1,15 +1,16 @@
--- !Policy
product_versions:
- fedora-*
decision_context: bodhi_update_push_testing
- fedora-rawhide
decision_context: bodhi_update_push_stable
subject_type: koji_build
rules:
- !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional}
- !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}

View file

@ -23,8 +23,8 @@
%endif
Name: %{upstream_name}%{?v2_suffix}
Version: 2.15.0
Release: 14%{?dist}
Version: 2.15.2
Release: 1%{?dist}
Summary: Module metadata manipulation library
# COPYING: MIT
@ -33,19 +33,14 @@ Summary: Module metadata manipulation library
# 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 (MIT AND GPL-3.0-or-later)
# 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/%{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,
# <https://github.com/fedora-modularity/libmodulemd/pull/619>.
Patch2: modulemd-2.15.0-doc-Adapt-GLib-documentation-path-to-GLib-2.80.1.patch
BuildRequires: gnupg2
BuildRequires: meson >= 0.47
@ -194,6 +189,12 @@ mv %{buildroot}%{_mandir}/man1/modulemd-validator.1 \
%changelog
* Wed Jun 18 2025 Petr Pisar <ppisar@redhat.com> - 2.15.2-1
- 2.15.2 bump
* Fri May 09 2025 Petr Pisar <ppisar@redhat.com> - 2.15.1-1
- 2.15.1 bump
* Thu Jul 18 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.15.0-14
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild

View file

@ -1,96 +0,0 @@
From 9d2809090cc0cccd7bab67453dc00cf43a289082 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
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ř <ppisar@redhat.com>
---
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

View file

@ -1,53 +0,0 @@
From 29c339a31b1c753dcdef041e5c2e0e600e48b59d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
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ř <ppisar@redhat.com>
---
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

View file

@ -1,64 +0,0 @@
From f3336199b4e69af3305f156abc7533bed9e9a762 Mon Sep 17 00:00:00 2001
From: Dominique Leuenberger <dimstar@opensuse.org>
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 doesnt 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ř <ppisar@redhat.com>
---
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

5
plans/sanity.fmf Normal file
View file

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

View file

@ -1,2 +1,2 @@
SHA512 (modulemd-2.15.0.tar.xz) = 79032eb591cd3b778cb348040150ec4d1ccb8e2890d02c7b7a04f9b1bd376d32c5ae0e2c6dfb8056595fae5e54ea8365de06fe969a0f04b979abad3ff0882033
SHA512 (modulemd-2.15.0.tar.xz.asc) = 07439efcd7d7ca1e67110a13902f2abd978c93872c383dcfde8d78accf9471787877d69fef8dc06ce65fbde3463b7e5201c7d550acbb530062d9990713d8c63a
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 python3-libselinux libmodulemd-devel --skip-broken
- name: Copy a spec file to /tmp
copy:
src: "{{ playbook_dir }}/../libmodulemd.spec"
dest: /tmp/libmodulemd.spec
- name: Install build deps
shell: dnf -y builddep /tmp/libmodulemd.spec
- hosts: localhost
tags:
- classic
roles:
- role: standard-test-basic
tests:
- configure:
run: meson setup -Daccept_overflowed_buildorder=true -Drpmio=enabled -Dskip_introspection=false -Dtest_installed_lib=true -Dwith_py2=false -Dwith_py3=true /tmp/build "{{ tenv_workdir }}source"
- build:
run: ninja -C /tmp/build
- unittests:
run: meson test -C /tmp/build

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"