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.
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 ================= ...
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.
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