skelbins are not appropriate to be distributable as is, as a directories with bunch of files. That could be fragile due to network filesystem limitations. That is slow, because some skelbins already contains tens of thousands of files. And additional metadata has to be supplied with the skelbin. Your build steps are not aware about the exact $hsh values of the package and it would be insane to hardcode and repeatedly update after each BASS/skel's change. And skelbin can depend on another skelbin to work (runtime dependency). That is why, we have to use some kind of distribution format for solving the issues above. "skelpkg" is a packed skelbin with additional metadata. Similarly to Arch Linux and => Gentoo skelpkg is a single file, uncompressed POSIX pax archive with following entries: * name, name.hashes Full name of the skelbin directory, $NAME-$hsh. With an optional checksum file. * buildinfo, buildinfo.hashes Just a textual information how that skelbin/skelpkg was built. Currently just a current BASS'es commit revision. * bin.hashes, bin Compressed POSIX pax archive containing the skelbin ($NAME-$hsh/ directory hierarchy). POSIX ustar archive format can not hold more than 8GiB of data and (very) long filenames. Forced pax usage guarantees compatibility with variety of OSes. GNU tar's format (also not having limitations above) easily could be unreadable on non-GNU systems. By default BASS uses build/contrib/detpax archiver for creating pax archives in deterministic bit-to-bit reproducible way. You can use ordinary $TAR by setting NO_DETPAX=1 in configuration file, loosing deterministic behaviour. As pax/tar does not have any kind of index, as ZIP does, it is crucial to place the largest "bin" file at the very end of the archive. And that is why the outer archive is not compressed -- to easily seek among its entries. .hashes files contain "name hex(hash)" lines with various file checksums. Nothing prevents you from extending it with additional files, for example holding cryptographic signatures. skelpkg's name is whatever you want. As a rule it should be just skel's $NAME. But what if you do not care about exact skel's version and just want to install whatever perl (for example)? You can always just create a (sym)link to it with a short name. "bin" inner archive is compressed by default with => Zstandard Being much faster than venerable gzip, it achieves much better compression ratio. But the main issues is its ultimate decompression speed, where hardly your CPU will be the bottleneck. Reducing amount of data transfer between disks/network and you system results in considerable decrease in transfer/installation time. That is why so many package managers and distributions already moved to its usage by default. But you can override and use any kind of compressor in the skelpkg (with $COMPRESSOR when using build/lib/mk-pkg). That is required for example for zstd skelpkg itself, that can not be decompressed without already having zstd installed.