RPSL (Rapid Prototyping Shared Library) is a set of bash scripts and utility files that coordinate the GNU autotools and pkg-config for C/C++ build automation. The scripts and procedures define a system for building and linking that supports an individual or small group. A single command (rpslSyncBuild) scans for source, writes a Makefile.am and Configure.ac, and produces a conventional autotools tree ready for the usual "configure, make, make install" build steps.
The Mknew Project is an investigation of how to build simple Unix shell scripts to manage common development and administrative tasks. The emphasis is on using languages and tools that already exist and are in common use. A related emphasis is on exploring the functional programming nature of the bash shell. This is accomplished by using the bash function capability, and using the bash "$(" ")"syntax to delay function execution in bash scripts. This allows building scripts that have a LISP-like function syntax that permits shell scripts to be written as a series of function calls with minimal syntax. The goal is to provide a way to specify make procedures of heterogeneous components in a bash script. These can include diverse source code languages, documentation text, test procedures, and data. In addition to the mknew function library (mklib), these "make" procedures rely only on capabilities provided by the bash shell, and common Unix command line utilities.
Yruba provides a rule system similar to make or ant for the shell (bash). It provides a clear separation between a list of dependencies that must be up-to-date before the current task can be performed, an explicit test that checks whether the target is really out-of-date, and a command that finally makes the target. Everything is plain bash syntax, so there is no new command language to learn.
rootpretender is a system that enables special file operations such as the creation of block special and character special device nodes and unlimited chown()ing of files for non-root users of Unix systems. It does this by faking special file operations. For example, chown() is not executed, and mknod() creates regular files instead of device nodes. These operations are remembered, so next time a process under rootpretender's control examines an affected file with stat() or a similar system call, the fake information is returned. It uses LD_PRELOAD and includes patches for rsync 2.6.6 and rsync 2.6.9 for use on systems without LD_PRELOAD support. These make it possible to copy file ownership and device nodes even if root access is not available on the target.
pkgmake automates some steps when making software releases. It creates a copy of the development tree, optionally cleans it up a bit (i.e. removes CVS/* and .svn/*), tars it, places the tarball in the SOURCES/ directory, creates the corresponding .spec file from a provided template (and the data specified in the configuration/on the command line), and runs rpmbuild and/or debbuild as well as spec2arch. As a result, you will have packages for Debian and RPM based distributions as well as the PKGBUILD file for ArchLinux. Using relman as the recommended frontend to pkgmake, new software releases are as easy as calling relman with two parameters: the project name plus the release version - and all packages are made and distributed.
cygbuild is a porting tool for making Cygwin net releases. It helps Cygwin source and binary package maintainers to configure, build, strip, produce diffs, and generate Cygwin specific files. To put it simply, it converts any freely available program or package into a complete Cygwin net release distribution.
Cinabox (Continuous Integration in a Box) automates the setup of a Continuous Integration (CI) system by doing The Simplest Thing That Could Possibly Work. It consists of two simple scripts to set up a cruisecontrolrb CI server from scratch on an Ubuntu 8.04 system: one script to bootstrap Ruby, and another script to set up CI.