tukbuild
tukbuild is a GNU bash script that contains functions that are often needed in build scripts. TukBuild scripts are intended to replace long and error-prone SlackBuilds. If you are familiar with SlackBuilds and any of below sound familiar, you probably should try tukbuild:
- messed permissions in /tmp
- forgot to compress man or info files
- forgot to fix man page symlinks after compressing the man pages
- forgot to move man/info/doc to correct directory
- left a few files with wrong permissions in the package
- forgot to chown binaries to the group bin (only Slackware and Slamd64 version 10.2 and older)
- you are bored in taking care that temporary build and package (DESTDIR) directories exists (and get removed)
- you got binaries named like i486-slackware-linux-foo instead of plain foo, because you didn't set --program-prefix
- build script was written for Slackware but you would like to build it on Slamd64, and the original SlackBuild didn't support ARCH=x86_64 CFLAGS
- downloading source tarballs manually for each version upgrade is annoying
- you are tired of carefully adding the package basename as a prefix for every line in slack-descs
tukbuild borrows some ideas from CRUX ports system; both use GNU bash, can download source files and verify their MD5 sums. TukBuilds allow more flexibility e.g. the same TukBuild file can be used to build packages with different --prefix. On the other hand tukbuild doesn't have footprint files like there are in CRUX ports.
Due to similarities to both SlackBuilds and CRUX ports, it is almost trivial to convert from both formats to TukBuilds. With CRUX ports you can use crux2tukbuild and httpdown. Generally people who are familiar with SlackBuilds and/or CRUX ports files should find TukBuild files easy to work with.
tukbuild currently supports building packages on and for Slackware, Slamd64 and Tukaani. Adding support for other Slackware derived distros should be straightforward (talk with Larhzu on IRC for details). With some limitations it should be possible to make tukbuild work with different package managers although so far only pkgtools is supported.
Example TukBuilds
Note: The URLs below point to directories, not files.
Simpler
SoX
GNU cpio
GNU nano
Texinfo
OpenSSH
Advanced
FUSE
Xiphlibs (libogg, libvorbis, flac, ...)
GNU TLS and related libs
Documentation
Lack of documentation is a problem with tukbuild. Those who have written SlackBuilds, probably can learn to write TukBuilds quite quickly by reading existing build scripts and the code of tukbuild itself.
However, if you like to help writing documentation for tukbuild, we are ready to help you if there is anything that you aren't sure about exact details of some features.