Package: dh-r Version: 20230722 Severity: important Tags: patch Dear Maintainer,
As discussed on matrix chan, it seems that during build of some R packages, there's output such as this: Use of uninitialized value $dep_line in substitution (s///) at /usr/share/perl5/Dpkg/Deps.pm line 300. Use of uninitialized value $dep_line in substitution (s///) at /usr/share/perl5/Dpkg/Deps.pm line 302. Use of uninitialized value $dep_line in substitution (s///) at /usr/share/perl5/Dpkg/Deps.pm line 303. Use of uninitialized value $dep_line in split at /usr/share/perl5/Dpkg/Deps.pm line 306. shown on the build log. As seen in https://salsa.debian.org/r-pkg-team/r-bioc-rtracklayer/-/jobs/4478926#L1890 On checking further, it seems to be stemming from the recommends line in dh-r code[1]. This is because recommendsinput variable is being directly set from desc->{Recommends}, and a check of whether this field is empty is *after* the said initialization[3]. This can lead to `recommendsinput` being set as `undef` and hence the unintialized errors from debhelper. The reason that we don't see such problems in for instance r-bioc-bsgenome is because it has some values in the testdepends and recommendsinput ends up having some value[4]. I have attached a patch to fix this, please check. ** Please test properly before you merge and upload, do NOT upload blindly ** PS: Please mention my contribution in d/ch if you take this patch. [1]: https://salsa.debian.org/r-pkg-team/dh-r/-/blob/debian/20230722/dh/R.pm#L229 [2]: https://salsa.debian.org/r-pkg-team/dh-r/-/blob/debian/20230722/dh/R.pm#L201 [3]: https://salsa.debian.org/r-pkg-team/dh-r/-/blob/debian/20230722/dh/R.pm#L224 [4]: https://salsa.debian.org/r-pkg-team/dh-r/-/blob/debian/20230722/dh/R.pm#L221 -- System Information: Debian Release: 12.0 APT prefers testing APT policy: (500, 'testing') Architecture: amd64 (x86_64) Kernel: Linux 6.1.0-9-amd64 (SMP w/8 CPU threads; PREEMPT) Locale: LANG=en_IN, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) (ignored: LC_ALL set to en_US.UTF-8), LANGUAGE=en_US.UTF-8 Shell: /bin/sh linked to /usr/bin/dash Init: systemd (via /run/systemd/system) LSM: AppArmor: enabled Versions of packages dh-r depends on: ii dctrl-tools 2.24-3+b1 ii debhelper 13.11.4 ii libfile-which-perl 1.27-2 pn libswitch-perl <none> pn libwww-curl-simple-perl <none> ii r-base-dev 4.2.2.20221110-2 Versions of packages dh-r recommends: ii cme 1.038-1 ii devscripts 2.23.3 ii git-buildpackage 0.9.30 Versions of packages dh-r suggests: pn postgresql-client-common <none>
>From 91285e0d6e725892d2b66f1f890850eb98ddc0bc Mon Sep 17 00:00:00 2001 From: Nilesh Patra <[email protected]> Date: Thu, 27 Jul 2023 18:07:43 +0000 Subject: [PATCH] Fix Recommends properly --- dh/R.pm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/dh/R.pm b/dh/R.pm index e7682ef..0b35e94 100644 --- a/dh/R.pm +++ b/dh/R.pm @@ -198,6 +198,7 @@ sub install { my %apthash; @apthash{@aptavail} = (); + if ( ! $desc->{Recommends} ) { $desc->{Recommends} = ""; } my $recommendsinput = $desc->{Recommends}; # Add DEP8 test dependencies to Recommends to enable running test suite once the package is installed if ( $testdepends ) { @@ -218,10 +219,11 @@ sub install { } $newsuggests =~ s/^, // ; $desc->{Suggests} = $newsuggests ; + $recommendsinput = $recommendsinput . ', ' . $testdepends ; + $recommendsinput =~ s/^, // ; } if ( ! $desc->{Depends} ) { $desc->{Depends} = ""; } - if ( ! $desc->{Recommends} ) { $desc->{Recommends} = ""; } if ( ! $desc->{Suggests} ) { $desc->{Suggests} = ""; } if ( ! $desc->{Imports} ) { $desc->{Imports} = ""; } if ( ! $desc->{LinkingTo} ) { $desc->{LinkingTo} = ""; } -- 2.40.1

