OSBuilder: Build own GNU-Linux

Česká verze

Build own GNU-Linux! This is the request for all of them, who wants to go inside of operation system and wants to have all under their control.

This project contains lots of useful tools, patches etc., using this you can build complete GNU-Linuxu environment from source codes.

Build own GNU-Linux doesn't mean save time nor money, but on the other hand you can customize anything on request - e. g. optimize for certain processor, enable special options, libraries, functions etc.

Currently is documentation incomplete, explicitly configuration files are widely copied only and inconsistent.

Project is and forever will be unfinished, because any new version of anything can change situation.

The goal

The goal is to create consistent environment for dynamic creating of operation system, distribution or firmware.

System should be optionally equippabe with different programs or program branches. Construction should be Filesystem Hierrarchy Standard conformant.

Main part of package is pkgsh - package compiling shell, its purpose is simplification of compilation. It can find latest version, guess patching sequence, way of compilation etc. There is a small demo:

nice pkgsh libtool

Pkgsh 0.05
=================
Return means run suggested command, h to help, shell fallback ===
*******************************************
*** Processing local site configuration ***
***       production debug mode         ***
*******************************************
loading GNU-FHS site script
=================
Package set to: libtool
Latest version found: 1.4
Seems to be upgrade 1.3.5 -> 1.4
=== phase unpack[0] === suggested by unp ===
=== suggested ===
cd /usr/src
bzcat /vol/cdrom/GNU/libtool/libtool-1.3.4.tar.bz2 >/tmp/pkgshdelta5995
echo "Applying delta /vol/cdrom/GNU/libtool/libtool-1.3.4-1.3.5.tar.xdp.gz"
xdelta patch -0 /vol/cdrom/GNU/libtool/libtool-1.3.4-1.3.5.tar.xdp.gz /tmp/pkgshdelta5995 /tmp/pkgshdelta__5995
mv /tmp/pkgshdelta__5995 /tmp/pkgshdelta5995
echo "Applying delta /vol/cdrom/GNU/libtool/libtool-1.3.5-1.4.tar.xdp.gz"
xdelta patch -0 /vol/cdrom/GNU/libtool/libtool-1.3.5-1.4.tar.xdp.gz /tmp/pkgshdelta5995 /tmp/pkgshdelta__5995
mv /tmp/pkgshdelta__5995 /tmp/pkgshdelta5995
tar -x -f /tmp/pkgshdelta5995
rm /tmp/pkgshdelta5995
cdfirst $BASE$SEPVERSION libtool libtool*
=================
pkgsh@libtool:/etc/pkgsh> 
=================
pkgsh@libtool:/etc/pkgsh> 
Applying delta /vol/cdrom/GNU/libtool/libtool-1.3.4-1.3.5.tar.xdp.gz
xdelta: warning: expected compressed from file
Applying delta /vol/cdrom/GNU/libtool/libtool-1.3.5-1.4.tar.xdp.gz
xdelta: warning: expected compressed from file
Recommended use GNU configure in separate build dir.
=== phase conf[0] === suggested by cs ===
=== suggested ===
mkdir -p /var/src/libtool-1.4
cd /var/src/libtool-1.4
 /usr/src/libtool-1.4/configure 
=================
pkgsh@libtool:/usr/src/libtool-1.4> 
loading site script /etc/config.site
...
=== phase make[0] ===
=== suggested ===
make
=================
...

Components

Availability

Package called osbuilder will be final version of package build, which is now available with similar functionality. Documentation is very poor. Everything is available at http://www.penguin.cz/~utx/ftp/build/.

General information

Sources of source files

Sources coming from Internet. Main archives are:

GNU configure

Many programs uses this package for system config. This is very flexible, but some system parameters can be detected incorrectly. So watch carefully messages from it. After some timewe can easy detectm if something is not correct (standard function or library not found etc.). Then we need some effort to fing the trouble. It is most often:

Disk space

Sources requires many space on disk. Mostly you can delete it after succesfull install. There are few exceptions (kernel source).

It is an advantage, if it is possible, to compile in separate directory. After install you can delete temporary files, but we can look inside sources and trace.

Next save-space is compression. For info (after setup in site-start) and man (with changed makewhatis) files, source sodes is good slower but powerful bzip2; účinný bzip2, for fonts or run-time decompressed files is good less powerfull but faster gzip. If you have enough space on disk, you need no decompression of man and info files.

For largest projects (XFree86, GNU libc) count at least 200MB of free space to compile.

Cross dependencies avoiding

Coming soon (or never |:-)

Basic system

This list do not want to be complete.

Basic packages for system self re-generation (self recompilation):
gcc (egcs)
binutils
any Bourne shell compatible program (bash)
termcap or ncurses (for more, less)
make
fetish (fileutils, textutils, sh-utils)
sed and grep
diffutils and patch (cmp is nearly required, others recommended)

Packages required (or highly recommended) for system startup:
sysvinit (if you don't want simple simpleinit)
update (linux 2.0 only, now it does kernel)
ldconfig (from glibc, standalone or from ld.so)
util-linux
e2fsprogs or reiserfsprogs
modutils (if you are using modular kernel)
psmisc, procps (psmisc required for system shutdown, others for statistics)

Packages required (or highly recommended) for basic administration:
inetutils and net-tools (if you want network support)
gzip or bzip2 (if you want compression)
tar (if you want unpack archives)
less (replacement for more)
any editor (e. g. vi clone)


Enhanced developing system, required for complete compilation:
bin86 (for ix86 kernels)
m4
automake, autoconf, libtool
bison
lex
findutils
texinfo (for docs formatting)
perl (not required for nearly any instalation, but many scripts uses it)
tcl/tk (not required for nearly any instalation, but many scripts uses it, cross dependency while building X).


Basic extensions of user system:
readline
zlib
emacs or vim

Packages for hardware setup:
scanpci
isapnptools
hdparm
scsifmt
mtools
setserial


Notes and questions send to: Stanislav Brabec

Main page of Penguin's UTX WWW

Penguin server