Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package meson for openSUSE:Factory checked in at 2026-02-17 16:38:11 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/meson (Old) and /work/SRC/openSUSE:Factory/.meson.new.1977 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "meson" Tue Feb 17 16:38:11 2026 rev:138 rq:1333270 version:1.10.1 Changes: -------- --- /work/SRC/openSUSE:Factory/meson/meson.changes 2026-01-22 15:11:47.800288517 +0100 +++ /work/SRC/openSUSE:Factory/.meson.new.1977/meson.changes 2026-02-17 16:39:37.952069508 +0100 @@ -1,0 +2,6 @@ +Tue Feb 10 11:45:57 UTC 2026 - Dominique Leuenberger <[email protected]> + +- Update 14001.patch: ensure to get valid rich deps with + version constraints. + +------------------------------------------------------------------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ 14001.patch ++++++ --- /var/tmp/diff_new_pack.qWsLfv/_old 2026-02-17 16:39:38.728101948 +0100 +++ /var/tmp/diff_new_pack.qWsLfv/_new 2026-02-17 16:39:38.732102115 +0100 @@ -9,10 +9,10 @@ 2 files changed, 21 insertions(+) create mode 100644 data/mesongenbuildreq.py -Index: meson-1.9.0/data/macros.meson +Index: meson-1.10.1/data/macros.meson =================================================================== ---- meson-1.9.0.orig/data/macros.meson -+++ meson-1.9.0/data/macros.meson +--- meson-1.10.1.orig/data/macros.meson ++++ meson-1.10.1/data/macros.meson @@ -47,6 +47,11 @@ %{?qemu_user_space_build: -t 10} \ %{nil}} @@ -25,38 +25,70 @@ # 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.9.0/data/mesongenbuildreq.py +Index: meson-1.10.1/data/mesongenbuildreq.py =================================================================== --- /dev/null -+++ meson-1.9.0/data/mesongenbuildreq.py -@@ -0,0 +1,29 @@ ++++ meson-1.10.1/data/mesongenbuildreq.py +@@ -0,0 +1,61 @@ +import subprocess +import json +import sys +import os + -+# Read ignored dependencies from ENV ++# Configuration from ENV +ignore_deps = set(os.environ.get("BUILDREQ_IGNORE_DEP", "").split()) ++only_required = os.environ.get("BUILDREQ_ONLY_REQUIRED", "false").lower() == "true" + -+# Run introspection command -+deps_json = json.loads( -+ subprocess.run([sys.argv[1], "introspect", "--dependencies", "meson.build"], -+ capture_output=True, text=True).stdout -+) ++# Run introspection ++try: ++ result = subprocess.run([sys.argv[1], "introspect", "--dependencies", "meson.build"], ++ capture_output=True, text=True, check=True) ++ deps_json = json.loads(result.stdout) ++except Exception as e: ++ print(f"Error: {e}", file=sys.stderr) ++ sys.exit(1) ++ ++deps = {} ++for entry in deps_json: ++ name = entry['name'] ++ if name in ignore_deps: ++ continue ++ if only_required and not entry.get('required', True): ++ continue ++ deps[name] = entry['version'] + -+# Build deps dictionary while skipping ignored libraries -+deps = {entry['name']: entry['version'] for entry in deps_json if entry['name'] not in ignore_deps} -+ -+# Output formatted build requirements +for lib, versions in deps.items(): -+ version_str = ' ' + ' '.join(versions) if versions else '' ++ formatted_versions = [] ++ for v in versions: ++ # Step 1: Remove all spaces to get a "clean" string like ">=2.72.0" ++ v = v.replace(" ", "") ++ ++ # Step 2: Separate the operator from the version ++ # We find where the first digit or letter starts ++ pivot = 0 ++ for i, char in enumerate(v): ++ if char.isalnum(): ++ pivot = i ++ break ++ ++ # Step 3: Reconstruct with exactly one space: ">= 2.72.0" ++ if pivot > 0: ++ v = f"{v[:pivot]} {v[pivot:]}" ++ formatted_versions.append(v) ++ ++ # Step 4: Ensure a space exists before the version block starts ++ # This ensures "pkgconfig(lib) >= 1.0" instead of "pkgconfig(lib)>= 1.0" ++ version_str = f" {' '.join(formatted_versions)}" if formatted_versions else "" ++ + line = [] + for prefix in ["cmake", "pkgconfig", "qmake"]: + buildreq = f"{prefix}({lib}){version_str}" -+ # Strip trailing '=' if version was empty -+ if buildreq.split('=')[-1] == '' and '=' in buildreq: -+ buildreq = buildreq.split('=')[0] ++ ++ # Cleanup: remove trailing operators if version was empty ++ if buildreq.endswith(('=', '<', '>')): ++ buildreq = buildreq.rstrip('=<>') ++ + line.append(buildreq) ++ + print(f"({' or '.join(line)})") -+
