
bashdeps, exact dependencies without a package manager
10 min read
A few of my recent Bash projects consume small external artifacts during their builds. adrctl, for example, consumes mktext, and other projects use bash-doxygen to generate reference documentation.
A common solution is to put a few curl commands and checksum checks in the Makefile, download the files into vendor/, and move on.
That works until the same security-sensitive logic exists in several projects, each copy evolves slightly differently, and one of them eventually makes the wrong assumption.
That happened in adrctl. A cached mktext artifact remained at the expected path after the desired dependency version changed. The surrounding build metadata said one thing while the bytes actually embedded in the generated artifact came from an older version.
The filename was right. The bytes were wrong.
That failure became the reason for bashdeps.


