Control: tags -1 +patch On 2014-09-11 21:38 +0200, Jason Rhinelander wrote:
> On Sat, 30 Aug 2014 07:52:54 +0200 Benny Baumann <be...@geshi.org> wrote: >> To reproduce have a look at the linux-image-*-dbg packages that require >> more than 2GiB on amd64 after installation. When installing such a package >> aptitude will report something like "pi linux-image-*-dbg -1,900M ..." >> while the correct display would report +2300M instead. >> >> Likewise uninstalling such a package will report something along the lines >> of "id linux-image-*-dbg +1,900M" where "-2,300M" would be correct. > > Just to clarify the above, it's only the disk usage on the individual > package line that is incorrect: the overall total near the top of the > interface ("Will use xxx MB of disk space") is correct. Also the output on the commandline with the -Z option is affected. > libreoffice-dbg is another such package (showing -870MB when selected > for installation instead of the correct +3,425MB). The following patch fixes both occurrences by changing the type of the offending variable (InstalledSize is declared as unsigned long long in /usr/include/apt-pkg/pkgcache.h): --8<---------------cut here---------------start------------->8--- diff --git a/src/cmdline/cmdline_prompt.cc b/src/cmdline/cmdline_prompt.cc index 292acf6..1c0442c 100644 --- a/src/cmdline/cmdline_prompt.cc +++ b/src/cmdline/cmdline_prompt.cc @@ -352,7 +352,7 @@ static void cmdline_show_instinfo(pkgvector &items, // Show the change in size between the versions. if(showsize) { - int dsize=(instver.end()?0:instver->InstalledSize) + long long dsize=(instver.end()?0:instver->InstalledSize) -(i->CurrentVer().end()?0:i->CurrentVer()->InstalledSize); if(dsize>0) diff --git a/src/pkg_columnizer.cc b/src/pkg_columnizer.cc index 7642775..f85733a 100644 --- a/src/pkg_columnizer.cc +++ b/src/pkg_columnizer.cc @@ -161,7 +161,7 @@ cw::column_disposition pkg_item::pkg_columnizer::setup_column(const pkgCache::Pk pkgCache::VerIterator inst_ver=(*apt_cache_file)[pkg].InstVerIter(*apt_cache_file); // TODO: move this to a generic file (common with cmdline.cc) - int dsize=(inst_ver.end()?0:inst_ver->InstalledSize) + long long dsize=(inst_ver.end()?0:inst_ver->InstalledSize) -(pkg.CurrentVer().end()?0:pkg.CurrentVer()->InstalledSize); if(dsize==0) --8<---------------cut here---------------end--------------->8--- Cheers, Sven -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org