Bug#1100674: Subject: pkg-perl-tools: please stop Suggesting: cdbs

gregor herrmann gregoa at debian.org
Thu Aug 14 13:24:22 BST 2025


On Tue, 12 Aug 2025 21:07:46 +0200, Alexandre Detiste wrote:

> Maybe I could already stage these changes now ?
> (nothing smart, just going through "grep -ri cdbs")

Thanks for coming back to this bug report.

Let's have a look:

(diff rearranged)
 
> diff --git a/debian/control b/debian/control
> index 008f86d..2de7b7b 100644
> --- a/debian/control
> +++ b/debian/control
> @@ -92,7 +92,6 @@ Recommends: autodep8,
>             sensible-utils,
>             w3m
> Suggests: bc,
> -          cdbs,
>           duck,
>           lintian-brush,
>           moreutils,

> diff --git a/debian/pkg-perl-tools.lintian-overrides
> b/debian/pkg-perl-tools.lintian-overrides
> index db21c19..d2c7b47 100644
> --- a/debian/pkg-perl-tools.lintian-overrides
> +++ b/debian/pkg-perl-tools.lintian-overrides
> @@ -1,6 +1,5 @@
> # we do this on purpose
> pkg-perl-tools: binary-package-depends-on-toolchain-package Depends: debhelper
> -pkg-perl-tools: binary-package-depends-on-toolchain-package Suggests: cdbs
> 
> # the same hook script is needed after successful and failed builds
> pkg-perl-tools: duplicate-files
> usr/share/doc/pkg-perl-tools/examples/pbuilder-hooks/B00iptables
> usr/share/doc/pkg-perl-tools/examples/pbuilder-hooks/C00iptables

These changes are obviously fine, and that's what this bug report is 
about.

> diff --git a/lib/Debian/PkgPerl/Util.pm b/lib/Debian/PkgPerl/Util.pm
> index c670425..a51d9c9 100644
> --- a/lib/Debian/PkgPerl/Util.pm
> +++ b/lib/Debian/PkgPerl/Util.pm
> @@ -45,7 +45,6 @@ sub probable_build_dependency {
>         | automake
>         | bash-completion
>         | bison
> -        | cdbs
>         | chrpath
>         | debhelper
>         | dh-

This is IMO wrong. The list here comprises packages which shouldn't 
get a "<!notest>" annotation in Build-Depends{,-Indep} as they are 
needed for the actual build, and that is and also will be the case in 
the future for cdbs; even if we (well you in your tremendous effort!) 
manage to get rid of most of cdbs there will be leftovers, and 
third-party packages, and backports, and whatnot. And having it here 
in this regexp doesn't hurt.


Now for the other cases:

> diff --git a/examples/mass-commit b/examples/mass-commit
> index 5ccb3a8..5f5e945 100755
> --- a/examples/mass-commit
> +++ b/examples/mass-commit
> @@ -11,7 +11,6 @@
> 
> set -eu
> 
> -CDBS=0
> DEBUG=0
> 
> usage() {
> @@ -20,7 +19,6 @@ usage() {
>     echo
>     echo "  Parameters:"
>     echo "  -h    help"
> -    echo "  -c    exclude CDBS packages"
>     echo "  -d    debug / dry-run"
>     exit 0
> }
> @@ -56,9 +54,6 @@ die() {
> 
> while getopts cdh OPT; do
>     case "$OPT" in
> -        c)
> -            CDBS=1
> -            ;;
>         d)
>             DEBUG=1
>             ;;
> @@ -79,9 +74,6 @@ for PKG in $(ls -1d */ | sed -e 's:/$::') ; do
>     dh_testdir  || { skip "$PKG doesn't look like a debian package.";
> continue; }
>     [ -d .git ] || { skip "No .git directory in $PKG."; continue; }
>     git checkout master
> -    if [ "$CDBS" = "1" ] ; then
> -        grep -q cdbs debian/control && { skip "Skipping CDBS package
> $PKG."; continue; }
> -    fi
> 
>     # start real work
>     # ADJUSTME start
> diff --git a/scripts/new-upstream b/scripts/new-upstream
> index f72db5e..0067777 100755
> --- a/scripts/new-upstream
> +++ b/scripts/new-upstream
> @@ -115,7 +115,6 @@ foreach (@newupstream) {
>         unless -f $controlfile;
>     my $control       = Dpkg::Control::Info->new($controlfile);      #
> Dpkg::Control object
>     my $build_depends = $control->get_source()->{'Build-Depends'};   # string!
> -    my $cdbs          = $build_depends =~ /cdbs/m;
> 
>     # categorize new upstream releases
>     my $pkg = {
> @@ -127,13 +126,12 @@ foreach (@newupstream) {
>     push @{ $new_categorized->{'ignore-version'} }, $pkg if $ignore_version;
>     push @{ $new_categorized->{'waits-for'} },      $pkg if $waits_for;
>     push @{ $new_categorized->{'problem'} },        $pkg if $problem;
> -    push @{ $new_categorized->{'cdbs'} },           $pkg if $cdbs;
>     push @{ $new_categorized->{'default'} },        $pkg
> -        unless ( $ignore_version or $waits_for or $problem or $cdbs );
> +        unless ( $ignore_version or $waits_for or $problem );
> 
> }
> 
> -my @categories = (qw/default cdbs problem ignore-version waits-for/);
> +my @categories = (qw/default problem ignore-version waits-for/);
> foreach (@categories) {
>     my $category = $_;
>     next unless defined( $new_categorized->{$category} );

For historical reasons both examples/mass-commit and dpt-new-upstream 
either allow one to or unconditionally special-case packages using 
cdbs. The resaon for this is that there was a strong correlation 
between preference for using cdbs and preference for using specific 
other packaging styles, and it made sense (to me) to exempt them from 
routine updates and common changes. -- Not sure if this still is the 
case but OTOH this special casing also doesn't cause any harm and is 
no active promotion of cdbs. -- On yet another other hand :) if there 
are (soon) no more cdbs packages it also has no function within the 
team anymore.


I see that you've already committed these changes in
https://salsa.debian.org/perl-team/modules/packages/pkg-perl-tools/-/commit/68c14cfa85c8d13fedcb4dca5b0fb55b7c0b0672


Please at least revert the change in lib/Debian/PkgPerl/Util.pm
(not sure about examples/mass-commit and dpt-new-upstream … I guess I 
could be convinced to acknowledge that the options soon will have no 
relevance …)


Cheers,
gregor

-- 
 .''`.  https://info.comodo.priv.at -- Debian Developer https://www.debian.org
 : :' : OpenPGP fingerprint D1E1 316E 93A7 60A8 104D  85FA BB3A 6801 8649 AA06
 `. `'  Member VIBE!AT & SPI Inc. -- Supporter Free Software Foundation Europe
   `-   BOFH excuse #156:  Zombie processes haunting the computer 



More information about the pkg-perl-maintainers mailing list