Re: armhf version of bzip2 is broken
Hi.
On Mon, Nov 11, 2019 at 01:24:50PM -0500, Gene Heskett wrote:
> On Monday 11 November 2019 12:34:08 Greg Wooledge wrote:
>
> > On Mon, Nov 11, 2019 at 12:08:15PM -0500, Gene Heskett wrote:
> > > And its man page says its a 2010 version. And it won't touch a just
> > > over 4G built kernel tarball.
> > >
> > > Suggestions?
> >
> > 0) Give all the background details of your setup, like what version of
> > Debian you're running, what hardware, what version of bzip2 is
> > installed, where you got this input file....
> Not debian since your arm is now arm64 from buster on.
Your inability to locate armhf in Debian's main archive is well-known to
debian-arm denizens, but please refrain from spreading your hopefully
honest errors here.
> The problem is that a built kernel is 4038000640 byte when converted to a
> tarball, but the best compressor is a 2010 version of bzip2 and it has
> an instant tummy ache with that big a file:
>
> pi@rpi4:/media/pi/slash $ bzip2 -z 4.19.71-rt24-v7l+.tar
> bzip2: Can't open input file 4.19.71-rt24-v7l+.tar: Value too large for
> defined data type.
Confirming, real debian armhf is affected. The problematic place is:
$ strace -eopenat bzip2 -z 4038000640
...
openat(AT_FDCWD, "4038000640", O_RDONLY) = -1 EOVERFLOW (Value too large for defined data type)
And EOVERFLOW in openat(2) is:
pathname refers to a regular file that is too large to be opened. The
usual scenario here is that an application compiled on a 32-bit platform
without -D_FILE_OFFSET_BITS=64 tried to open a file whose size
exceeds (1<<31)-1 bytes; see also O_LARGEFILE above. This is the
error specified by POSIX.1; in kernels before 2.6.24, Linux gave the
error EFBIG for this case.
So, yep, you've found a bug in Debian packaging, consider filling it via
proper channels.
EOVERFLOW is a known beast, working workarounds are:
1) "busybox bzip2" instead of "bzip2 -z" (-z is kind of redundant anyway).
2) cat foo | bzip2 -c > foo.bz2
> The realtime is totally moot IMO,
True, one has to build a binary a certain way.
> the size of slightly over 4Gigs is the real problem
First, it's *under* 4Gb (assuming right and proper 1024=1Kb):
$ echo 4038000640/1024/1024/1024 | bc -l
3.76068115234375
Second, it's actually 2Gb-1 that's problematic.
Reco
Reply to: