[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: