The kernel implementation BAILS if a directory header is followed by
more than a hard-coded maximum of entries (currently 256).
Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
The squashfs kernel implementation relies on the following properties:
- directory entries are ordered asciibetically by name
- directory entries have consecutive inode numbers
- inode numbers are assigned in that order
Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
The goal is to transform a package file to a squashfs image. The mksquashfs
utility is a PITA with all kinds of idiotic not-thought-through corner
cases (e.g. the way "pseudo file definitions" have been tacked on, the
inabillity to set UID/GID for / *AND* have files not owned by root, the
way xattrs are handled, .....).
It would be preferable to fix mksquashfs itself, but the source code itself
is a horrid, unmaintained garbage pile. Its easier to write a small utility
instead that can turn a pkg file into a squashfs image in a way that
propperly treats file permissions and ownership, and is deterministic
(i.e. reproducable).
The utility currently generates an uncompressed squashfs image that
unsquashfs can unpack, but the kernel refuses the mount. The exact
problem still needs to be determined.
Furthermore, compression has to be implemented and some cleanup shoul
be done.
Signed-off-by: David Oberhollenzer <goliath@infraroot.at>