]> git.ipfire.org Git - thirdparty/libsolv.git/commitdiff
Fix Debian canon selection 620/head
authorLudwig Nussel <ludwig.nussel@siemens.com>
Mon, 4 May 2026 11:31:40 +0000 (13:31 +0200)
committerLudwig Nussel <ludwig.nussel@siemens.com>
Tue, 5 May 2026 10:40:35 +0000 (12:40 +0200)
src/selection.c
test/testcases/selection/debian.t [new file with mode: 0644]

index e668c4d96362f475ec321bb1dd7b6cb9229dc725..c4ca355c2b69d6c90b1e52296c5eb7f94f58c471 100644 (file)
@@ -1189,7 +1189,7 @@ selection_canon(Pool *pool, Queue *selection, const char *name, int flags)
          return 0;
        }
       /* is there a vaild arch? */
-      if ((r2 = strrchr(r, '_')) != 0 && r[1] && (archid = str2archid(pool, r + 1)) != 0)
+      if ((r2 = strrchr(r, '_')) != 0 && (archid = str2archid(pool, r2 + 1)) != 0)
        {
          *r2 = 0;      /* split off */
           selection_filter_rel(pool, selection, REL_ARCH, archid);
diff --git a/test/testcases/selection/debian.t b/test/testcases/selection/debian.t
new file mode 100644 (file)
index 0000000..68e2158
--- /dev/null
@@ -0,0 +1,30 @@
+repo available 0 testtags <inline>
+#>=Pkg: A 1 1 all
+#>=Pkg: B 1 1 amd64
+#>=Pkg: C 1 1 arm64
+system amd64 deb
+
+job noop selection A name
+job noop selection B name
+job noop selection C name
+result jobs <inline>
+#>job noop name A
+#>job noop name B
+
+nextjob
+
+job noop selection A_1-1 canon
+job noop selection B_1-1 canon
+job noop selection C_1-1 canon
+result jobs <inline>
+#>job noop name B = 1-1 [setevr]
+#>job noop name A = 1-1 [setevr]
+
+nextjob
+
+job noop selection A_1-1_all canon
+job noop selection B_1-1_amd64 canon
+job noop selection C_1-1_arm64 canon
+result jobs <inline>
+#>job noop name (A . all) = 1-1 [setevr,setarch]
+#>job noop name (B . amd64) = 1-1 [setevr,setarch]