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

Re: Size mismatch ...




Hello David,

On Wed, 2 Jun 2010, David Kalnischkies wrote:

Hi Sylvain Milot,

First of all: Thanks for your questions/bugreport. :)

my pleasure.

Am 2. Juni 2010 00:33:03 UTC+2 schrieb Sylvain Milot
<sylvain@bic.mni.mcgill.ca>:
This is for a little home made package that I've created and I get
size mismatch errors when trying to install it via apt-get or aptitude
while it installs fine with dpkg -i.

dpkg doesn't have a hashvalue available for checking, only apt
(and with it also aptitude) have with the files it downloads
in the "update" step a facility to check for integrity.

# apt-cache show matlab10a
MD5sum: 72b93bb6a88ee6a671e8fe7fcf759dba

# apt-cache showpkg matlab10a
Package: matlab10a
Versions:
7.10R2010a (/var/lib/apt/lists/_mirror_lenny_extras_._Packages)
 Description Language:
                File: /var/lib/apt/lists/_mirror_lenny_extras_._Packages
                 MD5: ae90a9bbf811978261e35bc5c1ab22d7

At this point, the odd thing is that MD5 sums are reported as different

These MD5's are different as they are for different stuff.
The first is for the downloaded deb file.
The second is for the Description of this package -
used to check if translated Descriptions are up-to-date.


# apt-get install matlab10a
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
 matlab10a
0 upgraded, 1 newly installed, 0 to remove and 35 not upgraded.
2.29203e+09,-2.00293e+09
How odd.. The sizes didn't match, email apt@packages.debian.org

The question that keeps buzzing in my head is :
Is there a file size limit for a debian package ?

In theory not but more than two gigabytes is big.

it's even bigger, but thanks to compression, its a lot smaller. I don't
plan to make too many large packages but matlab is a beast! I could separate
32 bit and 64 bit though.


I have a theory:
APT uses a signed long - which is as big as an int on 32bit and
can store ~ 2GB, but a long is on 64bit a bit bigger
(and i guess you are on a 64bit machine),
so somewhere in the code long is put into an int resulting
in a lovely integer overflow - and in your error.
So we "just" need to find this one - and switch to long long
to have 64bit (~ 9 Exabyte) on all architectures for squeeze.

I don't think this is fixable for lenny - or it is but it requires
most likely the recompilation of all apt reverse dependencies
which is quite a bit of work.
Especially as the usecase is currently small:

I understand completely.

There are not many 2 GB packages around i guess? ;)

not too many ... yet (-:

thanks for your reply!

Best,

---
Sylvain Milot (sylvain@bic.mni.mcgill.ca)
               (bicadmin@bic.mni.mcgill.ca)
Brain Imaging Centre
Montreal Neurological Institute
3801 University Street
Webster 2B, Room 206
Montreal, Qc., Canada, H3A 2B4
Phone  : (514) 398-4965, Fax: 398-8948
Mobile : (514) 712-1768
Office : 527 Av Des Pins O., Room 104
          Montreal, Qc., H2W 1S4

Reply to: