Package: debsums
Version: 2.0.47
Severity: important
Tags: patch
Veryfying files fails on GNU/kFreeBSD, because it does not provide O_NOATIME:
$ sudo debsums -e
Your vendor has not defined Fcntl macro O_NOATIME, used at /usr/bin/debsums
line 277.
Fix is attached.
-- System Information:
Debian Release: squeeze/sid
APT prefers unstable
APT policy: (500, 'unstable')
Architecture: kfreebsd-i386 (i686)
Kernel: kFreeBSD 7.2-1-486
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages debsums depends on:
ii debconf [debconf-2.0] 1.5.28 Debian configuration management sy
ii perl 5.10.1-8 Larry Wall's Practical Extraction
debsums recommends no packages.
debsums suggests no packages.
-- debconf information:
debsums/apt-autogen: true
-- debsums errors found:
Your vendor has not defined Fcntl macro O_NOATIME, used at /usr/bin/debsums
line 277.
--- debsums.in.orig 2009-09-05 21:22:56.000000000 +0200
+++ debsums.in 2009-12-05 12:25:33.000000000 +0100
@@ -18,6 +18,10 @@
use Errno;
use POSIX;
+## check if O_NOATIME is provided by the system
+my $SYSOPEN_FLAGS = eval { O_RDONLY|O_NONBLOCK|O_NOATIME }
+ || O_RDONLY|O_NONBLOCK;
+
(my $self = $0) =~ s!.*/!!;
my $version = <<EOT;
$self #VERSION#
@@ -274,7 +278,7 @@
$path = $diversion{$path}[0] if exists $diversion{$path}
and $diversion{$path}[1] ne $pack;
- if ((!sysopen F, "$root/$path", O_RDONLY|O_NONBLOCK|O_NOATIME) &&
+ if ((!sysopen F, "$root/$path", $SYSOPEN_FLAGS) &&
(!sysopen F, "$root/$path", O_RDONLY|O_NONBLOCK))
{
return 0 if $localepurge