Package: dpkg-dev
Version: 1.16.0.3
Severity: normal
Tags: patch

While building one of my packages I was surprised by the results of
dpkg-gencontrol:

Installed-Size: 128956

when the size of the binary .deb file is only 4608146.  As it turns out,
this is because "du -sk" and "du -sk --apparent-size" give wildly
different results.  Without --apparent-size, du takes the filesystem
block size into account; a large number of small files (as in my
package) therefore inflates the Installed-Size out of proportion.

It could be argued that installing the .deb package containing many
small files on a target system will also consume lots of blocks, each
with some minimum size, but this size depends on the filesystem chosen
on the target machine, not on the Debian package.  In particular,
reiserfs stores lots of small files efficiently.

As a consequence I suggest passing --apparent-size to du when calling du
from dpkg-gencontrol, i.e.

--- /usr/bin/dpkg-gencontrol    2011-05-04 10:36:16.000000000 +0200
+++ ~/bin/dpkg-gencontrol       2011-06-14 23:18:23.912877672 +0200
@@ -301,7 +301,8 @@
     if (!$c) {
         chdir("$packagebuilddir") ||
             syserr(_g("chdir for du to \`%s'"), $packagebuilddir);
-        exec("du", "-k", "-s", ".") or syserr(_g("unable to execute %s"), 
"du");
+        exec("du", "-k", "-s", "--apparent-size", ".")
+            or syserr(_g("unable to execute %s"), "du");
     }
     my $duo = '';
     while (<DU>) {


-- System Information:
Debian Release: wheezy/sid
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.38-2-amd64 (SMP w/2 CPU cores)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages dpkg-dev depends on:
ii  base-files            6.3                Debian base system miscellaneous f
ii  binutils              2.21.51.20110523-1 The GNU assembler, linker and bina
ii  bzip2                 1.0.5-6            high-quality block-sorting file co
ii  libdpkg-perl          1.16.0.3           Dpkg perl modules
ii  make                  3.81-8.1           An utility for Directing compilati
ii  patch                 2.6.1-2            Apply a diff file to an original
ii  xz-utils              5.0.0-2            XZ-format compression utilities

Versions of packages dpkg-dev recommends:
pn  build-essential               <none>     (no description available)
ii  fakeroot                      1.15.1-1   tool for simulating superuser priv
ii  gcc [c-compiler]              4:4.5.2-2  The GNU C compiler
ii  gcc-4.4 [c-compiler]          4.4.6-3    The GNU C compiler
ii  gcc-4.5 [c-compiler]          4.5.3-1    The GNU C compiler
ii  gnupg                         1.4.11-3   GNU privacy guard - a free PGP rep
ii  gpgv                          1.4.11-3   GNU privacy guard - signature veri
pn  libalgorithm-merge-perl       <none>     (no description available)

Versions of packages dpkg-dev suggests:
ii  debian-keyring                2011.03.03 GnuPG keys of Debian Developers

-- no debconf information



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to