Package: dh-exec
Severity: important
Version: 0.30
Control: affects -1 src:util-linux
X-Debbugs-CC: Guillem Jover <[email protected]>

Hi,

dpkg 1.23.0 made the parser used in 
Dpkg::BuildProfiles::parse_build_profiles more strict. It now 
rejects Build-Profiles strings which are not surrounded by '<' and 
'>'. This makes the util-linux build fail with:

  dh-exec-filter-build-profiles: error: '!nodoc' is not a valid build profile 
restriction formula

An example line in debian/util-linux.install is:

  <!nodoc> usr/share/man/man8/sulogin.8

After some discussion with Guillem, we'd like to propose this 
minimal diff to dh-exec, to make it work with the newer dpkg:


diff -Nru dh-exec-0.30/lib/dh-exec-filter-build-profiles 
dh-exec-0.30+nmu1/lib/dh-exec-filter-build-profiles
--- dh-exec-0.30/lib/dh-exec-filter-build-profiles      2024-05-19 
12:30:01.000000000 +0200
+++ dh-exec-0.30+nmu1/lib/dh-exec-filter-build-profiles 2025-12-17 
23:02:26.000000000 +0100
@@ -34,7 +34,7 @@
     if (!/<([^>]*)>/) {
         $line_concerned = 1;
     }
-    while (/<([^>]*)>/) {
+    while (/(<([^>]*)>)/) {
         $line_concerned |= profile_concerned ($1, $_);
         s/<([^>]*)>\s+//;
     }


I've verified this fixes the util-linux build.

I understood Guillem would appreciate it if a fix could land soon in dh-exec.

Thanks,
Chris

diff -Nru dh-exec-0.30/lib/dh-exec-filter-build-profiles dh-exec-0.30+nmu1/lib/dh-exec-filter-build-profiles
--- dh-exec-0.30/lib/dh-exec-filter-build-profiles	2024-05-19 12:30:01.000000000 +0200
+++ dh-exec-0.30+nmu1/lib/dh-exec-filter-build-profiles	2025-12-17 23:02:26.000000000 +0100
@@ -34,7 +34,7 @@
     if (!/<([^>]*)>/) {
         $line_concerned = 1;
     }
-    while (/<([^>]*)>/) {
+    while (/(<([^>]*)>)/) {
         $line_concerned |= profile_concerned ($1, $_);
         s/<([^>]*)>\s+//;
     }

Reply via email to