A set of Dockerfiles to statically cross-compile various "hacker tools" using musl-cross-make and abusing Docker. This is a work in progress, and more tools and libraries will be added over time.
make MUSL_TARGET=some_target_tuple to compile everything. Tested targets so far:
But others are very likely to work. Building everything currently needs about 2GB of disk per target and it helps to have a big machine with NVMe storage and plenty of RAM. A complete build for a single architecture currently takes about 15 minutes on a Ryzen 4750U, or a bit less on an Apple M1.
You can build individual binaries by specifying the recipe name as an argument to
make. Dependency resolution will be handled automatically.
To validate that all your binaries came out right, run
make check. This will list any binaries in the
output directory which don't seem to have been statically linked.
More tools and documentation will be added over time.
These are the tools that build cleanly without too many caveats and are generally usable.
nmap-7.90(some extra functionality is missing as it requires additional data files)
openssl-0.9.8zh(insecure, not for general use)
These are tools which have significant caveats.
git-...binary needs to be renamed to just
gitto work, generally this isn't very useful because even when compiled statically it's not very standalone due to all the scripts and helpers required)
nsjail-3.1(currently only builds on 64 bit ARM, 32 and 64 bit x86 due to using Google's static
These libraries are built automatically as required by the above tools.
gettext-0.21(not currently required for anything)
kafel-20200831(as part of
libcurl-7.79.1(as part of
libssl-0.9.8zh(as part of
openssl-0.9.8zh, don't use this, just here for compatibility)
libssl-1.1.1k(as part of
libuuid-1.46.5(as part of
protobuf-3.21.1(C++ support only)
There are numerous projects and approaches for building static tool binaries, but this one is mine. Sometimes you just find yourself on a little-endian softfloat MIPS box and you really need a specific tool!
Some goals of the project:
And yet to be added:
These people have contributed code and fixes:
E-mail firstname.lastname@example.org. I'd love to receive your improvements. No, I don't really know how to use Docker.