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

Extending ar format to support large member sizes



Hi!

As you probably know the deb 2.x packaging format [D] is based on an
ar container, with tar members for its format definition, control
metadata and filesystem data payloads (among others).

A problem that has been known for a while now [S], is that the ar format
has a file size limit, which means the deb format is thus limited to
filesystem payloads (usually compressed) of at most around 9536.74 MiB.

This is starting to become an issue, and it's something that has been
bothering me for a bit, because support for a new deb format should be
ready way before we need it, as older tools should ideally be able to
handle it. And there are multiple tools involved that will need to be
updated [T].

Something that occurred to me very recently, is that extending the ar
format could be a viable solution, by using the same extension used in
tar, that is, using its base-256 encoding for the ar header fields.

Implementation wise this should not involve much code, and it would
only be used iff the members require it, which for static libraries
I guess would not be usual, but if that ever becomes the case, then
that problem would also be solved there.

For the deb format I'm thinking this would be my preferred way forward,
and given that the ar format is not portable anyway (for example AIX's
ar cannot extract deb archives), and that this would not affect the
debootstrap/debian-installer case (where we might not have dpkg-deb
available), nor most of the binary packages in something like Debian,
I'd probably be finishing implementing this in dpkg for the upcoming
1.23.x release, if there's no strong reason not to.

Would such an extension be acceptable for GNU binutils? If so I'd
file a feature request. :)

Thanks,
Guillem

[D] https://manpages.debian.org/deb.5
[S] https://wiki.debian.org/Teams/Dpkg/TimeTravelFixes#deb-size-limit
[T] https://wiki.debian.org/Teams/Dpkg/DebSupport


Reply to: