On Thu, Dec 08, 2022 at 12:45:29AM +0100, gregor herrmann wrote: > Package: duck > Version: 0.14.0 > Severity: grave > Justification: renders package unusable > X-Debbugs-Cc: p...@packages.debian.org
> As of today, duck (called in any source package directory) fails with > > Can't close(GLOB(0x558bebc05958)) filehandle: 'Is a directory' at > /usr/share/duck/lib/checks/patch_files.pm line 101' > > 92 # iterate over all patchdirs, process all files found > 93 foreach my $patchdir (@patchdirs) { > 94 my $dirhandle = dir($patchdir)->open; > 95 > 96 while (my $patchfile = $dirhandle->read) { > 97 open my $pf, "<", $patchdir . "/" . $patchfile; > 98 > 99 my @pf_raw = <$pf>; > 100 > 101 close($pf); > > This may or may not be caused by a recent change in src:perl [0], hence > cc'in the perl maintainers Thanks. It's definitely that change, but I think the bug is in duck. The above code is treating directories as plain files under autodie, so bailing out seems warranted. Earlier it just failed silently. A straightforward fix would be inserting something like next if -d $patchdir . "/" . $patchfile; on line 97 or so (but using File::Spec->catfile() would feel cleaner to me.) Baptiste: please let us know if/when duck is fixed so we can add a suitable Breaks entry on the perl side. (And obviously let us also know if you disagree about the bug :) BTW it seems like duck could use an autopkgtest test suite so things like this would be detected automatically. -- Niko Tyni nt...@debian.org