The GN*NIX Component Build System
part of the gn*nix conspiracy http://gnnix.org
Copyright (C) Linus Sphinx 2004
1. Introduction
This is the gn*nix build system aka gnxbuild.
Once the tool chain is complete these scripts use
it to build, catalog and package the components.
The object is to build as pure as possible system by
controlling the environment and removing or at least
lessening the possibility of human errors by making
them repeatable and wrapping every step and test of
the build process with error checking. By doing it
this way core components can be easily integrated
and updated with a minimum of effort to deliver
updates, improvements and upgrades as fast as
possible.
2. Building The Distribution System Components
cp -pr this directory to the root of the distribution
build directory, chroot the distro environment via
$GNNIX/tool/chdist and execute ./gnxbuilld
3. Adding A New System Component
Add a definition to the bottom of gnxversions with a
unique name = name-version sans .tar.gz of the source
component in $DIST/parts/src. Follow the other names
example.
if for example all that is needed for a component you
added a value to $SIMP=name-version in gnxversions is
the simplest:
configure
make
make install
then add an entry of:
gnxcheck $SIMP
if (( $? > 0 )); then
gnxsimple $SIMP
fi
to the bottom of gnxbuild then run it. Next:
cd /; gnxbuild/gnxwrap var/gnx/<name>-<version>.files
will create the system component file in /parts/binunstripped
And
cd /; gnxbuild/gnxwrap --strip var/gnx/<name>-<version>.files
Will create the debug stripped version ready for distribution in
/parts/bin
4. Beyond The Simplest Build Requirements
If you need anything beyond the simple example above such as patches
etc. consult the many examples and how they interact in the gnxbuild
directory, note the specs rewrite and double building of core-utils.
The above gnxsimple function in the gnxfuncs file expands into
gnxsimple(){
gnxunwrap ${1}
gnxfilelist start ${1}
gnxconfigure --prefix=${PREFIX}
gnxmake
if [ "${2}" == "check" ]; then
gnxmake check
fi
gnxmake install
gnxfilelist finish ${1}
}
The major pieces of the build process are used to write your own
function in a <name-version> file to be included in gnxbuild as:
gnxcheck $SIMP
if (( $? > 0 )); then
. ./$SIMP
gnxsimp
fi
using the functions in the file gnxfuncs, these are:
gnxunwrap $SIMP - this blows away any previous attempts and untar/gzips
the source code from the /parts/src directory into /usr/src/ and will
leave you in the /usr/src/<name-version> directory. The source
<name-version>.tar.gz should match the <name-version> directory it
will expand into, rename the file if you must to make this so.
gnxfilelist start $SIMP - this must be next and creates a
/tmp/<component name-version>.start file for use by
`gnxfilelist finish $SIMP` later.
We then wait 60 seconds because find is rather stupid and we need a good
margin for our filelist marker.
gnxconfigure <any options for configure to bend its will to our purpose>.
gnxmake <any arguments to make needed>
then either move the output files as needed or
gnxmake install
or whatever is needed to install the component and finally
gnxfilelist finish $SIMP - this will create a /var/gnx/<name-version>.files
to be fed to gnxbuild/gnxwrap --strip to make your component ready for
distribution.
Call these all you want with any args needed just be sure it's between the
filelist commands and you should be ready to gnxwrap the results.
5. Other Files Besides gnxbuild And gnxwrap
gnxpaths creates the basic directory structure and whatever files are
needed to pass the tests.
gnxdevs creates a minimal /dev contents.
gnxpamconf creates minimal pam configuration file setup
gnxBaseList.txt is the list of base packages I passed to gnxwrap.
| Name | Last modified | Size | Description | |
|---|---|---|---|---|
| Parent Directory | - | |||
| CompositeExt-06132004 | 26-Feb-2006 18:32 | 329 | ||
| DamageExt-06132004 | 26-Feb-2006 18:32 | 328 | ||
| DirectFB-extra-0.9.16 | 26-Feb-2006 18:32 | 380 | ||
| EddieX_SiamesicX | 26-Feb-2006 18:32 | 335 | ||
| FixesExt-06132004 | 26-Feb-2006 18:32 | 328 | ||
| ImageMagick-6.0.1 | 26-Feb-2006 18:32 | 354 | ||
| Linux-PAM-0.77 | 26-Feb-2006 18:32 | 832 | ||
| Mesa-6.0.1 | 26-Feb-2006 18:32 | 356 | ||
| MozillaFirebird-0.7-i686-linux-gtk2+xft | 14-Jun-2004 20:08 | 331 | ||
| PDL-2.4.0 | 26-Feb-2006 18:32 | 398 | ||
| Python-2.3.3 | 26-Feb-2006 18:32 | 407 | ||
| ROX-Session-0.1.21 | 26-Feb-2006 18:32 | 1.0K | ||
| SDL-1.2.7 | 26-Feb-2006 18:32 | 426 | ||
| X11R6-damage-fix-06152004 | 06-Sep-2004 20:57 | 636 | ||
| X11R6-damage-fix-sdk-06152004 | 26-Feb-2006 18:32 | 327 | ||
| X11R6.7.0-src | 14-Jun-2004 20:08 | 618 | ||
| X11R6.7.0-src-sdk | 14-Jun-2004 20:08 | 291 | ||
| X11R6.8.1-src | 26-Feb-2006 18:32 | 2.8K | ||
| XExtensions-06132004 | 26-Feb-2006 18:32 | 524 | ||
| Xcomposite-06132004 | 26-Feb-2006 18:32 | 327 | ||
| Xdamage-06132004 | 26-Feb-2006 18:32 | 327 | ||
| Xfixes-06132004 | 26-Feb-2006 18:32 | 325 | ||
| a.out | 23-Sep-2004 17:09 | 0 | ||
| a2ps-4.13 | 26-Feb-2006 18:32 | 653 | ||
| alsa-driver-1.0.4 | 21-Jan-2005 14:09 | 516 | ||
| alsa-driver-1.0.9rc4a | 26-Feb-2006 18:32 | 522 | ||
| aspell6-en-0.01 | 26-Feb-2006 18:32 | 306 | ||
| aterm-0.4.2 | 26-Feb-2006 18:32 | 678 | ||
| automake-1.8.4 | 26-Feb-2006 18:32 | 318 | ||
| avifile-0.7-0.7.38.20040527 | 26-Feb-2006 18:32 | 621 | ||
| bash-2.05b | 26-Feb-2006 18:32 | 409 | ||
| bash-3.0 | 26-Feb-2006 18:32 | 532 | ||
| bc-1.06 | 26-Feb-2006 18:32 | 383 | ||
| bind-9.3.0 | 26-Feb-2006 18:32 | 486 | ||
| binutils-2.14 | 23-Sep-2004 17:09 | 560 | ||
| binutils-2.15 | 23-Sep-2004 17:09 | 445 | ||
| binutils-2.15.90.0.1 | 23-Sep-2004 17:09 | 444 | ||
| binutils-2.15.90.0.3 | 26-Feb-2006 18:32 | 454 | ||
| binutils-2.15.91.0.1 | 26-Feb-2006 18:32 | 443 | ||
| bison-1.875 | 26-Feb-2006 18:32 | 319 | ||
| busybox-1.00-pre8 | 26-Feb-2006 18:32 | 7.9K | ||
| bzip2-1.0.2 | 26-Feb-2006 18:32 | 528 | ||
| cairo-06082004 | 26-Feb-2006 18:32 | 383 | ||
| compressdoc | 26-Feb-2006 18:32 | 13K | ||
| coreutils-5.0 | 26-Feb-2006 18:32 | 1.1K | ||
| courier-imap-2.2.2.20040207 | 26-Feb-2006 18:32 | 368 | ||
| cpio-2.5 | 26-Feb-2006 18:32 | 348 | ||
| cramfs-1.1 | 26-Feb-2006 18:32 | 270 | ||
| cups-1.1.20 | 26-Feb-2006 18:32 | 348 | ||
| db-4.2.52.NC | 26-Feb-2006 18:32 | 381 | ||
| dbus-0.21 | 26-Feb-2006 18:32 | 320 | ||
| dcron-2.3.3 | 26-Feb-2006 18:32 | 275 | ||
| dhcp-3.0pl2 | 26-Feb-2006 18:32 | 260 | ||
| docbook-xml-4.3 | 26-Feb-2006 18:32 | 3.1K | ||
| duh | 15-Nov-2004 22:00 | 371 | ||
| e2fsprogs-1.35 | 26-Feb-2006 18:32 | 567 | ||
| ed-0.2 | 26-Feb-2006 18:32 | 324 | ||
| esound-0.2.34 | 26-Feb-2006 18:32 | 340 | ||
| espgs-7.07.1 | 26-Feb-2006 18:32 | 482 | ||
| expect-5.39 | 26-Feb-2006 18:32 | 365 | ||
| fam-2.7.0 | 26-Feb-2006 18:32 | 407 | ||
| fdo-06272004 | 26-Feb-2006 18:32 | 675 | ||
| findutils-4.1.20 | 26-Feb-2006 18:32 | 334 | ||
| firefox-0.9.1-source | 26-Feb-2006 18:32 | 3.4K | ||
| firefox-0.9rc-i686-linux-gtk2+xft | 14-Jun-2004 20:08 | 313 | ||
| firefox-1.0-source | 26-Feb-2006 18:32 | 1.3K | ||
| flex-2.5.4a | 26-Feb-2006 18:32 | 469 | ||
| fontconfig-2.2.90 | 26-Feb-2006 18:32 | 374 | ||
| freetype-2.1.8 | 26-Feb-2006 18:32 | 643 | ||
| gail-1.6.4 | 26-Feb-2006 18:32 | 337 | ||
| gawk-3.1.3 | 26-Feb-2006 18:32 | 334 | ||
| gcc-3.3.2 | 26-Feb-2006 18:32 | 743 | ||
| gcc-3.4.0 | 26-Feb-2006 18:32 | 959 | ||
| gdbm-1.8.3 | 26-Feb-2006 18:32 | 437 | ||
| gkrellaclock-0.3.2.1 | 26-Feb-2006 18:32 | 289 | ||
| gkrellm-2.2.1 | 26-Feb-2006 18:32 | 425 | ||
| gkrellmoon-0.6 | 26-Feb-2006 18:32 | 316 | ||
| glib-1.2.10 | 26-Feb-2006 18:32 | 349 | ||
| glibc-2.3.2 | 26-Feb-2006 18:32 | 1.6K | ||
| glibc-2.3.4-20040408 | 26-Feb-2006 18:32 | 1.3K | ||
| glibc-kernelheaders | 26-Feb-2006 18:32 | 390 | ||
| glibc_lfs_5.1-2.3.3 | 26-Feb-2006 18:32 | 1.4K | ||
| glitz-06082004 | 26-Feb-2006 18:32 | 381 | ||
| gmp-4.1.2 | 26-Feb-2006 18:32 | 384 | ||
| gnupg-1.2.4 | 26-Feb-2006 18:32 | 361 | ||
| gnxBaseList.txt | 26-Feb-2006 18:32 | 1.2K | ||
| gnxbuild | 26-Feb-2006 18:32 | 13K | ||
| gnxcept/ | 26-Feb-2006 18:32 | - | ||
| gnxcheck | 13-Jun-2004 22:55 | 306 | ||
| gnxdevs | 26-Feb-2006 18:32 | 1.8K | ||
| gnxdupes | 26-Feb-2006 18:32 | 306 | ||
| gnxfuncs | 26-Feb-2006 18:32 | 1.9K | ||
| gnxnew | 26-Feb-2006 18:32 | 102 | ||
| gnxpamconf | 26-Feb-2006 18:32 | 1.8K | ||
| gnxpaths | 26-Feb-2006 18:32 | 8.4K | ||
| gnxsshkeys | 26-Feb-2006 18:32 | 203 | ||
| gnxversions | 26-Feb-2006 18:32 | 5.9K | ||
| gnxwrap | 26-Feb-2006 18:32 | 3.0K | ||
| gpm-1.20.1 | 26-Feb-2006 18:32 | 366 | ||
| grep-2.5 | 26-Feb-2006 18:32 | 449 | ||
| greytrans-default-0.1.0 | 26-Feb-2006 18:32 | 335 | ||
| groff-1.18 | 26-Feb-2006 18:32 | 455 | ||
| grub-0.93+cvs20030224 | 26-Feb-2006 18:32 | 644 | ||
| grub-0.94 | 26-Feb-2006 18:32 | 694 | ||
| gtk+-1.2.10 | 26-Feb-2006 18:32 | 369 | ||
| gzip-1.2.4a | 26-Feb-2006 18:32 | 458 | ||
| hdparm-5.5 | 26-Feb-2006 18:32 | 321 | ||
| hotplug-2004_03_29 | 13-Jul-2004 19:06 | 273 | ||
| hotplug-2004_04_01 | 26-Feb-2006 18:32 | 273 | ||
| http_load-04jan2002 | 26-Feb-2006 18:32 | 511 | ||
| icewm-1.2.14 | 26-Feb-2006 18:32 | 961 | ||
| icewm-1.2.14pre16 | 14-Jun-2004 20:08 | 939 | ||
| identd-1.0 | 26-Feb-2006 18:32 | 294 | ||
| imlib-1.9.14 | 26-Feb-2006 18:32 | 344 | ||
| imlib2-1.1.0 | 26-Feb-2006 18:32 | 376 | ||
| imlib2-1.1.2 | 26-Feb-2006 18:32 | 320 | ||
| inetutils-1.4.2 | 26-Feb-2006 18:32 | 514 | ||
| intltool-0.27.2 | 26-Feb-2006 18:32 | 343 | ||
| ipcalc-1.0 | 26-Feb-2006 18:32 | 257 | ||
| iptables-1.2.9 | 26-Feb-2006 18:32 | 350 | ||
| ispell-3.2.06.epa7 | 26-Feb-2006 18:32 | 682 | ||
| jpeg-6b | 26-Feb-2006 18:32 | 351 | ||
| kbd-1.12 | 26-Feb-2006 18:32 | 280 | ||
| klibc-0.190 | 26-Feb-2006 18:32 | 1.5K | ||
| lazyfs-linux-0.1.23 | 26-Feb-2006 18:32 | 336 | ||
| less-381 | 26-Feb-2006 18:32 | 301 | ||
| lesstif-0.93.94 | 26-Feb-2006 18:32 | 429 | ||
| libIDL-0.8.3 | 26-Feb-2006 18:32 | 321 | ||
| libIDL-06162004 | 26-Feb-2006 18:32 | 321 | ||
| libXt-0.1.5 | 26-Feb-2006 18:32 | 321 | ||
| libflash-0.4.10 | 26-Feb-2006 18:32 | 383 | ||
| libgnomecanvas-2.6.1.1 | 26-Feb-2006 18:32 | 347 | ||
| libmng-1.0.7 | 26-Feb-2006 18:32 | 438 | ||
| libmpeg3-1.5.4 | 26-Feb-2006 18:32 | 403 | ||
| libpixman-06082004 | 26-Feb-2006 18:32 | 138 | ||
| libpng-1.2.5 | 26-Feb-2006 18:32 | 400 | ||
| libsvg-06082004 | 26-Feb-2006 18:32 | 322 | ||
| libsvg-cairo-06082004 | 26-Feb-2006 18:32 | 327 | ||
| libtool-1.5.6 | 26-Feb-2006 18:32 | 338 | ||
| libungif-4.1.0b1 | 26-Feb-2006 18:32 | 356 | ||
| libxfcegui4-4.1.90 | 26-Feb-2006 18:32 | 339 | ||
| linux-libc-headers-2.6.5.1 | 26-Feb-2006 18:32 | 549 | ||
| linux-libc-headers-2.6.7.0 | 26-Feb-2006 18:32 | 578 | ||
| linux-libc-headers-2.6.10.0 | 26-Feb-2006 18:32 | 578 | ||
| linux-libc-headers-2.6.11.2 | 26-Feb-2006 18:32 | 578 | ||
| lm_sensors-2.8.6 | 26-Feb-2006 18:32 | 325 | ||
| lsof_4.73 | 26-Feb-2006 18:32 | 469 | ||
| lynx2-8-5 | 26-Feb-2006 18:32 | 704 | ||
| man-1.5m2 | 26-Feb-2006 18:32 | 396 | ||
| metacity-2.6.5 | 26-Feb-2006 18:32 | 369 | ||
| module_init_tools-3.0 | 26-Feb-2006 18:32 | 312 | ||
| mozilla-source | 26-Feb-2006 18:32 | 712 | ||
| msttcorefonts | 26-Feb-2006 18:32 | 381 | ||
| ncurses-5.3 | 26-Feb-2006 18:32 | 545 | ||
| ncurses-5.4 | 26-Feb-2006 18:32 | 501 | ||
| net-tools-1.60 | 26-Feb-2006 18:32 | 388 | ||
| ntp-4.2.0 | 26-Feb-2006 18:32 | 452 | ||
| obpager-1.8 | 26-Feb-2006 18:32 | 294 | ||
| openquicktime-1.0-src | 26-Feb-2006 18:32 | 354 | ||
| openssh-3.8.1p1 | 26-Feb-2006 18:32 | 620 | ||
| openssl-0.9.7d | 26-Feb-2006 18:32 | 644 | ||
| pciutils-2.1.99-test3 | 26-Feb-2006 18:32 | 373 | ||
| perl-5.8.0 | 21-Jan-2005 14:09 | 356 | ||
| perl-5.8.4 | 21-Jan-2005 14:09 | 356 | ||
| perl-5.8.7 | 26-Feb-2006 18:32 | 356 | ||
| portmap_5beta | 26-Feb-2006 18:32 | 361 | ||
| postfix-2.0.20 | 26-Feb-2006 18:32 | 440 | ||
| ppp-2.4.2 | 26-Feb-2006 18:32 | 360 | ||
| procinfo-18 | 26-Feb-2006 18:32 | 257 | ||
| procps-3.2.1 | 26-Feb-2006 18:32 | 259 | ||
| psmisc-21.4 | 26-Feb-2006 18:32 | 312 | ||
| qt-x11-free-3.3.2 | 26-Feb-2006 18:32 | 763 | ||
| qt-x11-free-3.3.3 | 26-Feb-2006 18:32 | 893 | ||
| readline-4.3 | 26-Feb-2006 18:32 | 344 | ||
| readline-5.0 | 26-Feb-2006 18:32 | 349 | ||
| reiserfsprogs-3.6.11 | 26-Feb-2006 18:32 | 383 | ||
| rox-2.1.2 | 26-Feb-2006 18:32 | 1.4K | ||
| rp-pppoe-3.5 | 26-Feb-2006 18:32 | 383 | ||
| sed-4.0.9 | 26-Feb-2006 18:32 | 295 | ||
| sendmail-8.12.11 | 26-Feb-2006 18:32 | 801 | ||
| shadow-4.0.4.1 | 26-Feb-2006 18:32 | 810 | ||
| shared-mime-info-0.15.tar.gz | 26-Feb-2006 18:32 | 412K | ||
| skippy-xd-0.5.0 | 26-Feb-2006 18:32 | 423 | ||
| slang-1.4.9 | 26-Feb-2006 18:32 | 425 | ||
| specs | 26-Feb-2006 18:32 | 3.7K | ||
| svgalib-1.4.3 | 26-Feb-2006 18:32 | 434 | ||
| sysklogd-1.4.1 | 26-Feb-2006 18:32 | 314 | ||
| sysvinit-2.85 | 26-Feb-2006 18:32 | 266 | ||
| tar-1.14 | 26-Feb-2006 18:32 | 314 | ||
| tcl8.4.6 | 26-Feb-2006 18:32 | 429 | ||
| tcp_wrappers_7.6 | 26-Feb-2006 18:32 | 434 | ||
| texinfo-4.7 | 26-Feb-2006 18:32 | 320 | ||
| thunderbird-0.7-source | 15-Nov-2004 22:00 | 388 | ||
| thunderbird-1.0-source | 26-Feb-2006 18:32 | 1.5K | ||
| tiff-v3.6.1 | 26-Feb-2006 18:32 | 381 | ||
| tk8.4.6 | 26-Feb-2006 18:32 | 603 | ||
| traceroute-1.4a12 | 26-Feb-2006 18:32 | 346 | ||
| transset-20041021 | 26-Feb-2006 18:32 | 325 | ||
| ttmkfdir2 | 26-Feb-2006 18:32 | 321 | ||
| udev-025 | 13-Jul-2004 19:06 | 268 | ||
| udev-030 | 21-Jan-2005 14:09 | 268 | ||
| udev-063 | 26-Feb-2006 18:32 | 268 | ||
| unzip-5.50 | 26-Feb-2006 18:32 | 506 | ||
| util-linux-2.12a | 26-Feb-2006 18:32 | 512 | ||
| vim-6.2f | 21-Jan-2005 14:09 | 554 | ||
| vim-6.3b | 26-Feb-2006 18:32 | 554 | ||
| waimea-06082004 | 26-Feb-2006 18:32 | 362 | ||
| wampager-0.9.3 | 26-Feb-2006 18:32 | 349 | ||
| wget-1.9.1 | 26-Feb-2006 18:32 | 332 | ||
| whois-4.6.26 | 26-Feb-2006 18:32 | 334 | ||
| wvstreams-3.75.0 | 26-Feb-2006 18:32 | 441 | ||
| xcompmgr-20041021 | 26-Feb-2006 18:32 | 502 | ||
| xfsprogs-2.6.13 | 26-Feb-2006 18:32 | 354 | ||
| xinetd-2.3.13 | 26-Feb-2006 18:32 | 346 | ||
| zero-install-0.1.24 | 26-Feb-2006 18:32 | 357 | ||
| zip-2.3 | 26-Feb-2006 18:32 | 345 | ||
| zlib-1.2.1 | 21-Jan-2005 14:09 | 440 | ||
| zlib-1.2.3 | 26-Feb-2006 18:32 | 440 | ||