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

Reply via email to