Waddle is a very minimal program for running processes inside ad-hoc Linux namespaces. It is aimed at simplifying build processes and running certain software with very specific environment requirements.
You only need a C(89) compiler. It is designed to be used in a bootstrap chain, hence the near lack of dependencies.
It is intended to be used in shell scripts. You can find an example here.
Why
A big issue with building or even just running software is implicit dependencies on a specific environment. Due to lack of restrictions in typical Linux distributions it can be hard to figure out all the dependencies of a set of software. It gets further complicated if any dependencies conflict with each other.
A crude but obvious solution is to ship the entire environment with the software. Tools such as Docker do this successfully. However, these tools tend to be complex and Docker in particular seems to have very insecure defaults (why is it creating files owned by the root user under my home directory?). The OCI Registry protocol also seems plain insane to me ("One does not simply download from a container registry"). I eventually realized it doesn't need to be nearly as complex as it is if you focus on solving specific usecases only.
I primarily designed Waddle to run Vivado within an AlmaLinux 8 container without the hassle of copying files to a VM and back. I find it works very well for this purpose. It is also suitable for compiling e.g. Rust software. Given that build environments for OSes can get quite complex I'm sure you'll find it useful.
