GUB the Grand Unified Builder

GUB -- Grand Unified Builder

WHAT IS GUB

Grand Unified Builder (GUB, http://lilypond.org/gub) is a mini source-based distribution and packaging system. It cross-compiles several packages with their dependencies and assembles them into a single installation package.

GUB aims at correctness ie, be dependable and reproducible, while avoiding gratituous rebuilds. It was originally developed for turnkey building of all LilyPond binary installers. Currently, GUB supports GNU/Linux, FreeBSD, MacOS-X and Microsoft Windows installation packages. All packages are fully relocatable and can be installed with user privileges.

GUB uses plain Python classes to describe package build specifics. For reasonably well behaved packages, individual build specifications can stay very simple by extending the generic build specification classes.

USAGE

Run these programs with --help argument for instructions
  bin/gpkg              - Gub Package Manager 
  bin/gub               - the Gub Universal Builder
  bin/gib               - Gub (platform dependent) Installer Builder
  bin/gub-tester        - build tester; integrates with
  			     Bazaar,CVS,Darcs,Git,SVN and gub
  bin/gupdate           - check for and show or update new upstream releases
  bin/cygwin-packager   - roll cygwin package

BUGS

Send bug reports and patches to lilypond-devel@gnu.org.

Supported installer packages

GNU Denemo
Inkscape
GNU LilyPond
OpenOffice.org
with all essential dependencies. Currently, 207 package build specifications are included in GUB.

Supported installer platforms

darwin-ppc
   tar.bz2 file for Darwin 7 (MacOS 10.3)/PowerPC

darwin-x86
   tar.bz2 file for Darwin 8 (MacOS 10.4)/x86

mingw
   mingw executable for Windows32

linux-x86
   shar archive for Linux/x86

linux-64
   shar archive for Linux/x86_64

linux-ppc
   shar archive for Linux/PowerPC

freebsd-x86
   shar archive for FreeBSD 4/x86

freebsd-64
   shar archive for FreeBSD 6/x86_64

cygwin
   .tar.bz2 packages for Cygwin/Windows32 

arm
   shar archive for Linux/ARM (largely untested)

debian
   shar archive for Debian (largely untested)

LICENSE

GUB is distributed under the terms of the GNU General Public License, version 2 or later. Gub comes with NO WARRANTY.

ACQUIRING

The Git repository is at
  http://github.com/gperciva/gub
You can get it by doing
  git clone git://github.com/gperciva/gub.git
or download the latest tarball doing
  wget http://github.com/gperciva/gub/tarball/master
GUB home page
  http://lilypond.org/gub

INSTALLING

* You need 
  - about 9 GB of free space (for all platforms)
  - standard unix shell utilities: cat, cp, install, mv, rm, sed, ...
  - a standard unix development environment with GCC and G++
  - Python 2.4 or newer (2.5, 2.6, 3.0 are known to work)

* Try
  bin/gub --help
  make help

Examples

  * Prepare a cross build environment for darwin-x86

      bin/gub darwin-x86::cross/gcc

  * Cross build bison for FreeBSD x86_64

      bin/gub freebsd-64::ftp://ftp.gnu.org/pub/gnu/bison/bison-2.3.tar.gz

  * Make a LilyPond installer for your platform

      bin/gub lilypond-installer

    this leaves the installer in uploads/

  * Build Inkscape for your platform

      bin/gub inkscape-installer

    this leaves the installer in uploads/

  * Cross build OpenOffice (go-oo.org) for Windows (mingw32)

      make openoffice

    this leaves the Windows installer in uploads/

  * Cross build Denemo (http://denemo.org) for Windows (mingw32)

      make denemo

    this leaves the Windows installer in uploads/