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)})")
-+
 

Reply via email to