[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[SCM] Debian package checker branch, master, updated. 2.4.1-1-g41d1b62



The following commit has been merged in the master branch:
commit 41d1b6228566f302270313f27365dde6a0d92d9a
Author: Russ Allbery <rra@debian.org>
Date:   Thu May 6 21:00:12 2010 -0700

    Count file size for checks/huge-usr-share from the tar listing
    
    * checks/huge-usr-share{,.desc}:
      + [RA] Count file size from the tar listing rather than using du.  The
        results of du vary based on file system and other factors and make
        the tag difficult to test.

diff --git a/checks/huge-usr-share b/checks/huge-usr-share
index 0186d90..be67f20 100644
--- a/checks/huge-usr-share
+++ b/checks/huge-usr-share
@@ -38,22 +38,21 @@ my $info = shift;
 my $arch = $info->field('architecture') || '';
 return 0 if $arch eq 'all';
 
-# usr/share missing. other checks will moan about it
-# so just ignore this package
-return 0 if !-d 'unpacked/usr/share';
-
-my $size = `du -ks unpacked`;
-$size =~ s/\t.*//;
-$size = int $size;
-
-my $size_usrshare = `du -ks unpacked/usr/share`;
-$size_usrshare =~ s/\t.*//;
-$size_usrshare = int $size_usrshare;
+# Add up the space taken by the package and the space taken by just the files
+# in /usr/share.  Convert the totals to kilobytes.
+my ($size, $size_usrshare);
+for my $file (keys %{ $info->index }) {
+    $size += $info->index->{$file}{size};
+    if ($file =~ m,usr/share/,) {
+        $size_usrshare += $info->index->{$file}{size};
+    }
+}
+$size = int ($size / 1024);
+$size_usrshare = int ($size_usrshare / 1024);
 
 if ($size_usrshare > $THRESHOLD_SIZE_SOFT) {
     my $perc = int (100 * $size_usrshare / $size);
-    if (($size_usrshare > $THRESHOLD_SIZE_HARD)
-	|| ($perc > $THRESHOLD_PERC)) { 
+    if ($size_usrshare > $THRESHOLD_SIZE_HARD || $perc > $THRESHOLD_PERC) {
 	tag "arch-dep-package-has-big-usr-share", "${size_usrshare}kB $perc%";
     }
 }
diff --git a/checks/huge-usr-share.desc b/checks/huge-usr-share.desc
index 8abb32d..6f0cc63 100644
--- a/checks/huge-usr-share.desc
+++ b/checks/huge-usr-share.desc
@@ -2,7 +2,6 @@ Check-Script: huge-usr-share
 Author: Jeroen van Wolffelaar <jeroen@wolffelaar.nl>
 Abbrev: hus
 Type: binary
-Needs-Info: unpacked
 Info: This script checks whether an architecture-dependent package has
  large amounts of data in /usr/share.
 
diff --git a/debian/changelog b/debian/changelog
index 53cf955..b653670 100755
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,12 @@
+lintian (2.4.2) UNRELEASED; urgency=low
+
+  * checks/huge-usr-share{,.desc}:
+    + [RA] Count file size from the tar listing rather than using du.  The
+      results of du vary based on file system and other factors and make
+      the tag difficult to test.
+
+ -- Russ Allbery <rra@debian.org>  Thu, 06 May 2010 20:59:04 -0700
+
 lintian (2.4.1) unstable; urgency=low
 
   The "there's always a hidden bug" release.
diff --git a/t/tests/huge-usr-share-percent/tags b/t/tests/huge-usr-share-percent/tags
index eb7c546..6ee12c9 100644
--- a/t/tests/huge-usr-share-percent/tags
+++ b/t/tests/huge-usr-share-percent/tags
@@ -1 +1 @@
-I: huge-usr-share-percent: arch-dep-package-has-big-usr-share 2076kB 99%
+I: huge-usr-share-percent: arch-dep-package-has-big-usr-share 2049kB 100%

-- 
Debian package checker


Reply to: