Fabricate History

Fabricate is a system for building and installing software. It's humble beginning, one linux admin in charge of building and upgrading open source software. I inherited an automated build script that supposedly built my company's LAMP stack. It was a large monolythic script that had syntax erros, incorrect confuration arguments, os dependant, and just generally did not work.

Since then I have used several different build and software management systems. All of these systems have their benefits and drawbacks.

Portability!

Since my first system admin job I have used Solaris X, Fedora Core2, Fedora Core 5, CentOS 5, FreeBSD 6,7,8. I must have installed apache (httpd) 200 times. In each case I had to use different packages to do the same basic process. If you dig into these packages, you see they all share a simliar core. It is annoying to build httpd for the 40th time just because FreeBSD moved from 7.0->8.0.
Your build system should build the same target on most OS/Disto's!

Customization

Vendor supplied packages are sometimes not layed out as you would like. Sometimes you require a different layout. Somtimes modules might need to be enabled or disabled.
Customizing the build process should be versatile like the standard GNU configure, and you should be able to accomplish this quickly!

Repeatable

Vender packages can change configuration options without warning. They often update the version of a software inside the package. This level of change is not acceptable in a stable environment.
Your configuration arguments are not lost with updates! Only update what you want when you are ready!

How Fabricate Helps

Fabricate is a wrapper around the configure - make - make install process. It makes it easy to download, build, and install. If it does not do what you need, making it do what you want is as easy as modifying some shell scripts.