Control: tags -1 ftbfs patch On Thu, 18 Dec 2025 13:46:04 +0100 Guillem Jover <[email protected]> wrote:
With the new dpkg >= 1.23.0 release series, which contains several deprecations that emit warnings and is more strict when parsing data, the autopkgtests for this package are failing, making it also affect dpkg's own migration.The lintian test suite might also be failing I guess.
One of the failures is: t/recipes/debian/test-out/packages/checks/debian/control/field/build-profiles/fields-build-profiles-general: [...] dpkg-source: error: '<<in<valid>>' is not a valid build profile restriction formula That seems be caused by this change in dpkg 1.23.0: https://git.dpkg.org/cgit/dpkg/dpkg.git/commit/?id=7ef1a039771fc833ca0518e50cc68c21c8c6f872 I guess we'd need to use valid syntax in the source package that gets built, and then modify the generated package to reintroduce the invalid value. Alternatively drop/disable the check because dpkg now catches it. According to UDD there are no affected packages: https://udd.debian.org/lintian-tag/invalid-restriction-formula-in-build-profiles-field?affected=yes The same dpkg-source error is causing a second test to fail: t/recipes/debian/test-out/packages/checks/fields/package-relations/fields-build-profiles-general: [...] dpkg-source: error: '<<in<valid>>' is not a valid build profile restriction formula A different test failure is in between the above two: t/recipes/debian/test-out/packages/checks/debian/rules/rules-symlink: [...] dpkg-source: warning: --auto-commit is not a valid option for Dpkg::Source::Package::V3::Native debian/rules clean Can't exec "debian/rules": Permission denied at /usr/share/perl5/Dpkg/BuildDriver/DebianRules.pm line 200. dpkg-buildpackage: error: debian/rules clean subprocess failed with unknown status code -1 Making rules.real executable resolves this issue. The attached patch fixes the FTFBS by dropping the invalid-restriction-formula-in-build-profiles-field check and making the rules files executable. Kind Regards, Bas -- PGP Key ID: 4096R/6750F10AE88D4AF1 Fingerprint: 8182 DE41 7056 408D 6146 50D1 6750 F10A E88D 4AF1
From 66d83f8be0527d08421746b3fb44d396ff00086e Mon Sep 17 00:00:00 2001 From: Bas Couwenberg <[email protected]> Date: Fri, 26 Dec 2025 13:17:58 +0100 Subject: =?UTF-8?q?Fix=20FTBFS=20with=20dpkg=201.23.0.=20(closes:=20#11235?= =?UTF-8?q?80)=0A-=20Drop=20invalid-restriction-formula-in-build-profiles-?= =?UTF-8?q?field,=0A=20=20cannot=20be=20tested=20easily=20as=20dpkg=20no?= =?UTF-8?q?=20longer=20accepts=20invalid=20syntax.=0A-=20Make=20rules=20fi?= =?UTF-8?q?les=20executable?= --- .../Check/Debian/Control/Field/BuildProfiles.pm | 7 +------ .../build-spec/debian/control.in | 12 ------------ .../fields-build-profiles-general/eval/hints | 3 +-- .../build-spec/debian/rules | 0 .../build-spec/debian/rules | 0 .../debhelper-compat-old/build-spec/debian/rules | 0 .../debian-rules-calls-nproc/build-spec/debian/rules | 0 .../rules-missing-targets/build-spec/debian/rules | 0 .../build-spec/debian/rules | 0 .../rules-special-variables/build-spec/debian/rules | 0 .../rules/rules-symlink/build-spec/debian/rules.real | 0 .../rules-variable-targets/build-spec/debian/rules | 0 .../build-spec/debian/control.in | 12 ------------ ...d-restriction-formula-in-build-profiles-field.tag | 8 -------- 14 files changed, 2 insertions(+), 40 deletions(-) mode change 100644 => 100755 t/recipes/checks/debian/rules/control-file-rules-requires-root-binary-targets/build-spec/debian/rules mode change 100644 => 100755 t/recipes/checks/debian/rules/control-file-rules-requires-root-no/build-spec/debian/rules mode change 100644 => 100755 t/recipes/checks/debian/rules/debhelper-compat-old/build-spec/debian/rules mode change 100644 => 100755 t/recipes/checks/debian/rules/debian-rules-calls-nproc/build-spec/debian/rules mode change 100644 => 100755 t/recipes/checks/debian/rules/rules-missing-targets/build-spec/debian/rules mode change 100644 => 100755 t/recipes/checks/debian/rules/rules-parses-dpkg-parsechangelog/build-spec/debian/rules mode change 100644 => 100755 t/recipes/checks/debian/rules/rules-special-variables/build-spec/debian/rules mode change 100644 => 100755 t/recipes/checks/debian/rules/rules-symlink/build-spec/debian/rules.real mode change 100644 => 100755 t/recipes/checks/debian/rules/rules-variable-targets/build-spec/debian/rules delete mode 100644 tags/i/invalid-restriction-formula-in-build-profiles-field.tag diff --git a/lib/Lintian/Check/Debian/Control/Field/BuildProfiles.pm b/lib/Lintian/Check/Debian/Control/Field/BuildProfiles.pm index 50e96635e..59333a184 100644 --- a/lib/Lintian/Check/Debian/Control/Field/BuildProfiles.pm +++ b/lib/Lintian/Check/Debian/Control/Field/BuildProfiles.pm @@ -54,7 +54,7 @@ sub source { my $pointer = $control_item->pointer($position); if ( - $raw!~ m{^\s* # skip leading whitespace + $raw=~ m{^\s* # skip leading whitespace < # first list start !?[^\s<>]+ # (possibly negated) term (?: # any additional terms @@ -75,11 +75,6 @@ sub source { \s*$ # trailing spaces at the end }x ) { - $self->pointed_hint( - 'invalid-restriction-formula-in-build-profiles-field', - $pointer, $raw,"(in section for $installable)"); - - } else { # parse the field and check the profile names $raw =~ s/^\s*<(.*)>\s*$/$1/; diff --git a/t/recipes/checks/debian/control/field/build-profiles/fields-build-profiles-general/build-spec/debian/control.in b/t/recipes/checks/debian/control/field/build-profiles/fields-build-profiles-general/build-spec/debian/control.in index 7df1b9f2f..316796623 100644 --- a/t/recipes/checks/debian/control/field/build-profiles/fields-build-profiles-general/build-spec/debian/control.in +++ b/t/recipes/checks/debian/control/field/build-profiles/fields-build-profiles-general/build-spec/debian/control.in @@ -8,18 +8,6 @@ Build-Depends: [% $build_depends %], bpcomplicated <stage1 nocheck> <cross> <!pkg.[% $source %].foo> Rules-Requires-Root: no -Package: [% $source %]-wrong-syntax -Architecture: [% $package_architecture %] -Depends: ${shlibs:Depends}, ${misc:Depends} -Build-Profiles: <in<valid> -Description: [% $description %] (wrong syntax) - Check the syntax of the Build-Profiles field - . - This is a test package designed to exercise some feature or tag of - Lintian. It is part of the Lintian test suite and may do very odd - things. It should not be installed like a regular package. It may - be an empty package. - Package: [% $source %]-unknown-profile Architecture: [% $package_architecture %] Depends: ${shlibs:Depends}, ${misc:Depends} diff --git a/t/recipes/checks/debian/control/field/build-profiles/fields-build-profiles-general/eval/hints b/t/recipes/checks/debian/control/field/build-profiles/fields-build-profiles-general/eval/hints index e100e0028..a54963e68 100644 --- a/t/recipes/checks/debian/control/field/build-profiles/fields-build-profiles-general/eval/hints +++ b/t/recipes/checks/debian/control/field/build-profiles/fields-build-profiles-general/eval/hints @@ -1,2 +1 @@ -fields-build-profiles-general (source): invalid-restriction-formula-in-build-profiles-field <in<valid> (in section for fields-build-profiles-general-wrong-syntax) [debian/control:14] -fields-build-profiles-general (source): invalid-profile-name-in-build-profiles-field unknown (in section for fields-build-profiles-general-unknown-profile) [debian/control:26] +fields-build-profiles-general (source): invalid-profile-name-in-build-profiles-field unknown (in section for fields-build-profiles-general-unknown-profile) [debian/control:14] diff --git a/t/recipes/checks/debian/rules/control-file-rules-requires-root-binary-targets/build-spec/debian/rules b/t/recipes/checks/debian/rules/control-file-rules-requires-root-binary-targets/build-spec/debian/rules old mode 100644 new mode 100755 diff --git a/t/recipes/checks/debian/rules/control-file-rules-requires-root-no/build-spec/debian/rules b/t/recipes/checks/debian/rules/control-file-rules-requires-root-no/build-spec/debian/rules old mode 100644 new mode 100755 diff --git a/t/recipes/checks/debian/rules/debhelper-compat-old/build-spec/debian/rules b/t/recipes/checks/debian/rules/debhelper-compat-old/build-spec/debian/rules old mode 100644 new mode 100755 diff --git a/t/recipes/checks/debian/rules/debian-rules-calls-nproc/build-spec/debian/rules b/t/recipes/checks/debian/rules/debian-rules-calls-nproc/build-spec/debian/rules old mode 100644 new mode 100755 diff --git a/t/recipes/checks/debian/rules/rules-missing-targets/build-spec/debian/rules b/t/recipes/checks/debian/rules/rules-missing-targets/build-spec/debian/rules old mode 100644 new mode 100755 diff --git a/t/recipes/checks/debian/rules/rules-parses-dpkg-parsechangelog/build-spec/debian/rules b/t/recipes/checks/debian/rules/rules-parses-dpkg-parsechangelog/build-spec/debian/rules old mode 100644 new mode 100755 diff --git a/t/recipes/checks/debian/rules/rules-special-variables/build-spec/debian/rules b/t/recipes/checks/debian/rules/rules-special-variables/build-spec/debian/rules old mode 100644 new mode 100755 diff --git a/t/recipes/checks/debian/rules/rules-symlink/build-spec/debian/rules.real b/t/recipes/checks/debian/rules/rules-symlink/build-spec/debian/rules.real old mode 100644 new mode 100755 diff --git a/t/recipes/checks/debian/rules/rules-variable-targets/build-spec/debian/rules b/t/recipes/checks/debian/rules/rules-variable-targets/build-spec/debian/rules old mode 100644 new mode 100755 diff --git a/t/recipes/checks/fields/package-relations/fields-build-profiles-general/build-spec/debian/control.in b/t/recipes/checks/fields/package-relations/fields-build-profiles-general/build-spec/debian/control.in index 7df1b9f2f..316796623 100644 --- a/t/recipes/checks/fields/package-relations/fields-build-profiles-general/build-spec/debian/control.in +++ b/t/recipes/checks/fields/package-relations/fields-build-profiles-general/build-spec/debian/control.in @@ -8,18 +8,6 @@ Build-Depends: [% $build_depends %], bpcomplicated <stage1 nocheck> <cross> <!pkg.[% $source %].foo> Rules-Requires-Root: no -Package: [% $source %]-wrong-syntax -Architecture: [% $package_architecture %] -Depends: ${shlibs:Depends}, ${misc:Depends} -Build-Profiles: <in<valid> -Description: [% $description %] (wrong syntax) - Check the syntax of the Build-Profiles field - . - This is a test package designed to exercise some feature or tag of - Lintian. It is part of the Lintian test suite and may do very odd - things. It should not be installed like a regular package. It may - be an empty package. - Package: [% $source %]-unknown-profile Architecture: [% $package_architecture %] Depends: ${shlibs:Depends}, ${misc:Depends} diff --git a/tags/i/invalid-restriction-formula-in-build-profiles-field.tag b/tags/i/invalid-restriction-formula-in-build-profiles-field.tag deleted file mode 100644 index 8375d8724..000000000 --- a/tags/i/invalid-restriction-formula-in-build-profiles-field.tag +++ /dev/null @@ -1,8 +0,0 @@ -Tag: invalid-restriction-formula-in-build-profiles-field -Severity: error -Check: debian/control/field/build-profiles -Explanation: The restriction formula in the <code>Build-Profiles</code> field - must be in the same format as the restriction formula in the - <code>Build-Depends</code> field (with angle brackets). -See-Also: - https://wiki.debian.org/BuildProfileSpec#The_Build-Profiles_field -- 2.47.3

