Package: pkg-kde-tools
Filename: /usr/bin/dh_qmldeps
Version: 0.18.10
Tags: patch

Hi Sandro,

here goes my promised patch for improving the architecture handling in
dh_qmldeps. Let me know if you have any questions.

Helmut
diff --minimal -Nru pkg-kde-tools-0.18.10/debian/changelog 
pkg-kde-tools-0.18.10+nmu1/debian/changelog
--- pkg-kde-tools-0.18.10/debian/changelog      2024-12-11 00:12:23.000000000 
+0100
+++ pkg-kde-tools-0.18.10+nmu1/debian/changelog 2024-12-15 19:29:55.000000000 
+0100
@@ -1,3 +1,13 @@
+pkg-kde-tools (0.18.10+nmu1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Improve architecture handling in dh_qmldeps:
+    + Fix build vs host confusion.
+    + Speed up architecture detection using environment
+    + Correctly match architecture patterns
+
+ -- Helmut Grohne <hel...@subdivi.de>  Sun, 15 Dec 2024 19:29:55 +0100
+
 pkg-kde-tools (0.18.10) unstable; urgency=medium
 
   * dh_qmldeps:
diff --minimal -Nru pkg-kde-tools-0.18.10/dh_qmldeps 
pkg-kde-tools-0.18.10+nmu1/dh_qmldeps
--- pkg-kde-tools-0.18.10/dh_qmldeps    2024-12-11 00:11:54.000000000 +0100
+++ pkg-kde-tools-0.18.10+nmu1/dh_qmldeps       2024-12-15 19:29:55.000000000 
+0100
@@ -17,6 +17,8 @@
     sys.path.insert(0, str(parent_path))
     PKGKDE_GETQMLDEPENDS = parent_path/"pkgkde-getqmldepends"
 
+from debian.debian_support import DpkgArchTable
+
 from pythonlib import qmldeps
 
 logging.basicConfig(format='%(levelname).1s: %(module)s:%(lineno)d: 
%(message)s')
@@ -65,7 +67,12 @@
 arch_any = "-a" in getqmldepends_glob_args
 arch_all = "-i" in getqmldepends_glob_args
 
-target_arch = subprocess.check_output(["dpkg-architecture", 
"-qDEB_TARGET_ARCH"]).strip().decode()
+try:
+    host_arch = os.environ["DEB_HOST_ARCH"]
+except KeyError:
+    host_arch = subprocess.check_output(["dpkg-architecture", 
"-qDEB_HOST_ARCH"]).strip().decode()
+
+archtable = DpkgArchTable.load_arch_table()
 
 if not arch_any and not arch_all:
     arch_any = True
@@ -79,13 +86,8 @@
         skip = False
     elif arch_all and "all" in archs:
         skip = False
-    elif arch_any:
-        if "any" in archs:
-            skip = False
-        elif target_arch in archs:
-            skip = False
-        elif archs != ["all"] and not target_arch:
-            log.warning(f"{pkg_name}: SKIP - set DEB_TARGET_ARCH environment 
variable.")
+    elif arch_any and any(archtable.matches_architecture(host_arch, arch) for 
arch in archs):
+        skip = False
 
     if skip:
         continue

Reply via email to