Accepting request 1246701 from devel:tools:building

OBS-URL: https://build.opensuse.org/request/show/1246701
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/meson?expand=0&rev=122
This commit is contained in:
Ana Guerrero 2025-02-19 14:58:16 +00:00 committed by Git OBS Bridge
commit 13a34913de
3 changed files with 62 additions and 0 deletions

51
14001.patch Normal file
View File

@ -0,0 +1,51 @@
From 8679ea9525672d74030303be062d9545c92b5840 Mon Sep 17 00:00:00 2001
From: solomoncyj <solomoncyj@gmail.com>
Date: Sun, 15 Dec 2024 21:00:42 +0800
Subject: [PATCH 1/2] feat: set up dependencies generation for fedora
---
data/macros.meson | 5 +++++
data/mesongenbuildreq.py | 16 ++++++++++++++++
2 files changed, 21 insertions(+)
create mode 100644 data/mesongenbuildreq.py
Index: meson-1.7.0/data/macros.meson
===================================================================
--- meson-1.7.0.orig/data/macros.meson
+++ meson-1.7.0/data/macros.meson
@@ -47,6 +47,11 @@
%{?qemu_user_space_build: -t 10} \
%{nil}}
+%meson_buildrequires \
+ %{shrink: python3 %{_rpmconfigdir}/mesongenbuildreq %{__meson} \
+ %{nil}}
+
+
# Declarative buildsystem, requires RPM 4.20+ to work
# https://rpm-software-management.github.io/rpm/manual/buildsystem.html
%buildsystem_meson_conf() %meson %*
Index: meson-1.7.0/data/mesongenbuildreq.py
===================================================================
--- /dev/null
+++ meson-1.7.0/data/mesongenbuildreq.py
@@ -0,0 +1,19 @@
+import subprocess
+import json
+import sys
+deps_json = json.loads(subprocess.run([sys.argv[1], "introspect", "--dependencies", "meson.build"], capture_output=True).stdout)
+unsorted_deps = dict(zip([x['name'] for x in deps_json],[x['version'] for x in deps_json]))
+unsorted_deps.pop('', None)
+deps = {}
+for lib in list(unsorted_deps.keys()) :
+ deps[lib] = unsorted_deps[lib]
+for lib, versions in deps.items() :
+ # Prepare version constraint
+ version_str = ' ' + ' '.join(versions) if versions else ''
+ line = []
+ for prefix in ["cmake", "pkgconfig", "qmake"] :
+ buildreq = (f"{prefix}({lib}){version_str}")
+ if buildreq.split('=')[-1] == '' and '=' in buildreq :
+ buildreq = buildreq.split('=')[0]
+ line.append(buildreq)
+ print(f"({' or '.join(line)})")

View File

@ -1,3 +1,8 @@
-------------------------------------------------------------------
Thu Jan 30 11:48:21 UTC 2025 - Dominique Leuenberger <dimstar@opensuse.org>
- Add 14001.patch: Add meson BuildRequires generator.
-------------------------------------------------------------------
Mon Jan 27 08:03:56 UTC 2025 - Dominique Leuenberger <dimstar@opensuse.org>

View File

@ -48,6 +48,8 @@ Source2: meson.keyring
Patch0: meson-test-installed-bin.patch
# PATCH-FIX-OPENSUSE give more time to testsuites that run emulated
Patch1: extend-test-timeout-on-qemu-builds.patch
# PATCH-FEATURE-UPSTREAM -- based on https://github.com/mesonbuild/meson/pull/14001/commits
Patch2: 14001.patch
BuildRequires: %{python_module base >= 3.7}
BuildRequires: %{python_module setuptools}
@ -216,6 +218,9 @@ rm -r meson.py mesonbuild
install -Dpm 0644 data/macros.meson \
%{buildroot}%{_rpmconfigdir}/macros.d/macros.meson
install -Dpm 0755 data//mesongenbuildreq.py \
%{buildroot}%{_rpmconfigdir}/mesongenbuildreq
install -Dpm 0644 data/syntax-highlighting/vim/ftdetect/meson.vim \
-t %{buildroot}%{vim_data_dir}/site/ftdetect/
install -Dpm 0644 data/syntax-highlighting/vim/indent/meson.vim \
@ -263,6 +268,7 @@ export PYTHONDONTWRITEBYTECODE=1
%dir %{_datadir}/polkit-1/actions/
%{_datadir}/polkit-1/actions/com.mesonbuild.install.policy
%{_rpmconfigdir}/macros.d/macros.meson
%{_rpmconfigdir}/mesongenbuildreq
%{_mandir}/man1/meson.1%{?ext_man}
%files vim