Package: devscripts Version: 2.18.2 Severity: normal Tags: patch Dear Devscripts Maintainers,
glibc now use the new syscall 'openat' instead of 'open' most of the time. Please update dpkg-depcheck to strace openat too. The attached patch should do that. (dpkg-depcheck also need to be updated for multiarch). Cheers, Bill.
--- /usr/bin/dpkg-depcheck 2018-04-22 22:33:07.000000000 +0000 +++ dpkg-depcheck 2018-05-11 12:23:59.737520460 +0000 @@ -378,7 +378,7 @@ $file = $opts{"strace-output"} || `tempfile -p depcheck`; chomp $file; $file =~ s%^(\s)%./$1%; - my @strace_cmd=('strace', '-e', 'trace=open,execve', '-f', + my @strace_cmd=('strace', '-e', 'trace=open,openat,execve', '-f', '-q', '-o', $file, @_); $ENV{'LC_ALL'}="C" if $opts{"C"}; system(@strace_cmd); @@ -392,9 +392,10 @@ open FILE, $file or die "Cannot open $file for reading: $!\n"; while (<FILE>) { # We only consider absolute filenames - m/^\d+\s+(\w+)\(\"(\/.*?)\",.*\) = (-?\d+)/ or next; + m/^\d+\s+(\w+)\((?:[^,"]+, )\"(\/.*?)\",.*\) = (-?\d+)/ or next; my ($syscall, $filename, $status) = ($1, $2, $3); - if ($syscall eq 'open') { next unless $status >= 0; } + if ($syscall eq 'open' || $syscall eq 'openat') + { next unless $status >= 0; } elsif ($syscall eq 'execve') { next unless $status == 0; } else { next; } # unrecognised syscall next if $feature{"discard-check-version"} and