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.