makeself
makeself copied to clipboard
Multiple compatibility issues
With the busybox tools on Linux: -the ibs, obs and sync options to dd are optional, and must be enabled at compile time. They aren't enabled on OpenWRT 8.09 for example, so makeself won't work on my router -df command does not support the '-P' option
On Solaris 10: -the 'df' command in /usr/bin does not support the '-P' option. Makeself also checks for binaries in /usr/xpg4/bin, but those are only available if the SUNWxcu4 package is installed. Script fails with a syntax error -id/chgrp/chmod also fail because of unsupported options, but the script keeps going on
I'm trying to fix the df bug at the moment. The dd bug would require to rely on if/of/bs/count/skip/seek only, or by removing dd altogether.
OK, I don't have busybox handy but if you come up with a fix I'll merge it.
As said, one fix would be to remove dd, but that would break --append. But what is the use case for append anyway? Repackaging doesn't cost so much time, and compression ratio will be much higher (append could also be reimplemented by first unpacking the tarball, adding the new files and then repacking it as the new tarball)
The basic concept of dd-less makeself would be this:
#!/bin/sh
sed 1,2d<$0|gunzip|sh;exit
(That's a minimal gzexe-style uncompression header for shellscripts I wrote. Just append a gzipped shellscript to it) This would also get rid of a lot of fiddling with offsets.
One of the uses I have had for makeself is to append customer-specific files (say a license file and other small things) to a bigger archive for the rest of the software. Doing it this way allows to reduce the time it takes to provide the customer with a customized download. So there is a need for this, at least as far as I am concerned.