#!/bin/sh #====================================================================# # directories # #====================================================================# BUILD_DIR=$HOME/pf LIB_DIR=$BUILD_DIR/lib ROOT_DIR=$BUILD_DIR/root PKG_DIR=$BUILD_DIR/pkg SRC_DIR=$BUILD_DIR/src TMP_DIR=$BUILD_DIR/tmp #====================================================================# # versions # #====================================================================# LINUX_MAJOR=2.5 LINUX_MINOR=67 LINUX=linux-$LINUX_MAJOR.$LINUX_MINOR SYSVINIT=sysvinit-2.83 BASH=bash-2.05b NETTOOLS=net-tools-1.60 UTILLINUX=util-linux-2.11z E2FSPROGS=e2fsprogs-1.32 FILEUTILS=fileutils-4.1 TEXTUTILS=textutils-2.1 SHUTILS=sh-utils-2.0 SHADOW=shadow-4.0.3 SYSLOGNG_MAJOR=1.9 SYSLOGNG_MINOR=1 SYSLOGNG=syslog-ng-$SYSLOGNG_MAJOR.$SYSLOGNG_MINOR ZLIB=zlib-1.1.4 TAR=tar-1.13 BZIP2=bzip2-1.0.2 NCURSES=ncurses-5.3 VIM_MAJOR=6 VIM_MINOR=1 VIM=vim-$VIM_MAJOR.$VIM_MINOR.405 DCRON=dcron29 LUKEMFTP=tnftp-2.0-beta1 NETDATE=netdate.1.2 SED=sed-4.0.7 GAWK=gawk-3.1.2 GREP=grep-2.5.1 INN=inn-2.3.4 SUCK=suck-4.3.2 SMTPPIPE=smtppipe INNTOOLS=inntools IANA2PROTOCOLS=iana2protocols NETKITBASE=netkit-base-0.17 WHOIS=4.6.3 TRACEROUTE=traceroute-1.4a12 NETKITTELNET=netkit-telnet-0.17 PSMISC=psmisc-21.2 PROCPS=procps-2.0.7 #====================================================================# # tools # #====================================================================# FTP=ftp TARC=tar -c TARX=tar -x BTAR=-y GTAR=-z #====================================================================# # my little helpers # #====================================================================# GID=`grep $USER /etc/passwd|awk -F":" '{print $4}'` cprm() { cd $TMP_DIR $TARC $BTAR --owner=0 --group=0 -f $PKG_DIR/$1.tar.bz2 * if [ "$2" ne "" ]; then cp -av * $LIB_DIR/ fi rm -rf [a-z]* cd $SRC_DIR } mkdir -p $BUILD_DIR $LIB_DIR $ROOT_DIR $PKG_DIR $SRC_DIR $TMP_DIR #====================================================================# # download # #====================================================================# cd $SRC_DIR # linux $FTP ftp://ftp.de.kernel.org/pub/linux/kernel/v$LINUX_MAJOR/$LINUX.tar.bz2 # sysvinit $FTP ftp://sunsite.unc.edu/pub/linux/system/daemons/init/$SYSVINIT.tar.gz $FTP $SYSVINIT-dietlibc-patch.diff # bash $FTP ftp://ftp.gnu.org/gnu/bash/$BASH.tar.gz $FTP $BASH-dietlibc-patch.diff # net-tools $FTP http://www.tazenda.demon.co.uk/phil/net-tools/$NETTOOLS.tar.bz2 $FTP $NETTOOLS-dietlibc-patch.diff $FTP $NETTOOLS-dietlibc-config.h # util-linux $FTP ftp://ftp.de.kernel.org/pub/linux/utils/util-linux/$UTILLINUX.tar.bz2 $FTP $UTILLINUX-dietlibc-patch.diff # e2fsprogs $FTP http://belnet.dl.sourceforge.net/sourceforge/e2fsprogs/$E2FSPROGS.tar.gz $FTP $E2FSPROGS-dietlibc-patch.diff # fileutils $FTP ftp://ftp.gnu.org/gnu/fileutils/$FILEUTILS.tar.gz $FTP $FILEUTILS-dietlibc-patch.diff # textutils $FTP ftp://ftp.gnu.org/gnu/textutils/$TEXTUTILS.tar.bz2 $FTP $TEXTUTILS-dietlibc-patch.diff # sh-utils $FTP ftp://ftp.gnu.org/gnu/sh-utils/$SHUTILS.tar.gz # shadow $FTP ftp://ftp.pld.org.pl/software/shadow/$SHADOW.tar.bz2 $FTP $SHADOW-dietlibc-patch.diff # syslog-ng $FTP http://www.balabit.hu/downloads/syslog-ng/$SYSLOGNG_MAJOR/src/$SYSLOGNG.tar.gz # zlib $FTP ftp://ftp.info-zip.org/pub/infozip/zlib/$ZLIB.tar.bz2 # tar $FTP ftp://ftp.gnu.org/gnu/tar/$TAR.tar.gz $FTP ftp://sources.redhat.com/pub/bzip2/contrib/gnutarpatch.txt # bzip2 $FTP ftp://sources.redhat.com/pub/bzip2/v102/$BZIP2.tar.gz $FTP $BZIP2-dietlibc-patch.diff # ncurses $FTP ftp://ftp.gnu.org/gnu/ncurses/$NCURSES.tar.gz # vim $FTP ftp://ftp.vim.org/pub/vim/unix/$VIM.tar.bz2 # dcron $FTP http://apollo.backplane.com/FreeSrc/$DCRON.tgz # ftp $FTP ftp://ftp.netbsd.org/pub/NetBSD/misc/lukemftp/$LUKEMFTP.tar.gz # netdate $FTP http://ftp.unicamp.br/pub/systems/Linux/system/network/sunacm/Other/netdate/$NETDATE.tgz # sed $FTP ftp://ftp.gnu.org/sed/$SED.tar.gz # gawk $FTP ftp://ftp.gnu.org/gawk/$GAWK.tar.bz2 # grep $FTP ftp://ftp.gnu.org/grep/$GREP.tar.bz2 # inn $FTP ftp://ftp.isc.org/isc/inn/$INN.tar.gz # suck $FTP http://www.sucknews.org/$SUCK.tar.gz # smtppipe $FTP http://www.ogris.de/smtppipe/$SMTPPIPE.tar.bz2 # inntools $FTP http://www.ogris.de/inntools/$INNTOOLS.tar.bz2 # iana2protocols $FTP http://www.ogris.de/iana2protocols/$IANA2PROTOCOLS.c # netkit-base $FTP ftp://ftp.uk.linux.org/pub/linux/Networking/netkit/$NETKITBASE.tar.gz # whois $FTP http://www.linux.it/~md/software/whois_$WHOIS.tar.gz # traceroute $FTP ftp://ftp.ee.lbl.gov/$TRACEROUTE.tar.gz # netkit-telnet $FTP ftp://ftp.uk.linux.org/pub/linux/Networking/netkit/$NETKITTELNET.tar.gz # psmisc $FTP http://belnet.dl.sourceforge.net/sourceforge/psmisc/$PSMISC.tar.gz # procps $FTP ftp://people.redhat.com/johnsonm/procps/$PROCPS.tar.gz #====================================================================# # untar, patch, build, install temporarily, package, delete # #====================================================================# # # ncurses # $TARX $GTAR -f $NCURSES.tar.gz cd $NCURSES CC="diet -Os gcc -Wall -s -nostdinc" ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --infodir=/usr/share/info --mandir=/usr/share/man --without-cxx --without-cxx-binding --without-ada --with-install-prefix=$TMP_DIR --disable-big-core --enable-termcap make make install cprm ncurses 1 # # zlib # $TARX $BTAR -f $ZLIB.tar.bz2 cd $ZLIB CC="diet -Os gcc -Wall -s -nostdinc -D_BSD_SOURCE" ./configure --prefix=/usr mkdir -p $TMP_DIR/usr make prefix=$TMP_DIR/usr install cprm zlib 1 # # bash # $TARX $GTAR -f $BASH.tar.gz cd $BASH patch -p1 < ../$BASH-dietlibc-patch.diff CC="diet -Os gcc -Wall -s -nostdinc -I$LIB_DIR/usr/include -L$LIB_DIR/usr/lib" ./configure --prefix=/usr --bindir=/bin --sbindir=/sbin --sysconfdir=/etc --localstatedir=/var --infodir=/usr/share/info --mandir=/usr/share/man --enable-alias --enable-arith-for-command --enable-array-variables --enable-bang-history --enable-brace-expansion --enable-command-timing --enable-cond-command --enable-directory-stack --enable-disabled-builtins --enable-dparen-arithmetic --enable-extended-glob --enable-help-builtin --enable-history --enable-job-control --enable-process-substitution --enable-progcomp --enable-prompt-string-decoding --enable-readline --enable-select --enable-static-link make make DESTDIR=$TMP_DIR install ln -s bash $TMP_DIR/bin/sh cprm bash # # vim # $TARX $BTAR -f $VIM.tar.bz2 cd vim$VIM_MAJOR$VIM_MINOR CC="diet -Os gcc -Wall -s -nostdinc -I$LIB_DIR/usr/include -L$LIB_DIR/usr/lib" ./configure --prefix=/usr --bindir=/bin --sysconfdir=/etc/vim --localstatedir=/var --libdir=/usr/lib --infodir=/usr/share/info --mandir=/usr/share/man --with-vim-name=vi --enable-gui=no --with-compiledby=$USER cprm vim # # linux # $TARX $BTAR -f $LINUX.tar.bz2 cd $LINUX make menuconfig bzImage mkdir -p $TMP_DIR/boot cp arch/i386/boot/bzImage $TMP_DIR/boot/vmlinuz cprm linux # # net-tools # WARNING: leave out -nostdinc for now (includes kernel header, beyond repair) # $TARX $BTAR -f $NETTOOLS.tar.bz2 cd $NETTOOLS patch -p1 <../$NETTOOLS-dietlibc-patch.diff cp ../$NETTOOLS-dietlibc-config.h ./config.h make make BASEDIR=$$TMP_DIR install cprm net-tools # # util-linux # Warning: includes kernel headers # $TARX $BTAR -f $UTILLINUX.tar.bz2 cd $UTILLINUX patch -p1 <../$UTILLINUX-dietlibc-patch.diff CC="diet -Os gcc -Wall -s -nostdinc -I$SRC_DIR/$LINUX/include -I$LIB_DIR/usr/include -L$LIB_DIR/usr/lib -D_BSD_SOURCE -D_GNU_SOURCE" ./configure make make DESTDIR=$TMP_DIR install mkdir -p $TMP_DIR/var/lib/hwclock cprm util-linux # # e2fsprogs # $TARX $GTAR -f $E2FSPROGS.tar.gz cd $E2FSPROGS patch -p1 <../$E2FSPROGS-dietlibc-patch.diff CC="diet -Os gcc -Wall -s -nostdinc -D_BSD_SOURCE -D_GNU_SOURCE" ./configure --prefix=/usr --with-root-prefix=/ --infodir=/usr/share/info --mandir=/usr/share/man --enable-fsck make make DESTDIR=$TMP_DIR install cprm e2fsprogs # # sysvinit # $TARX $GTAR -f $SYSVINIT.tar.gz cd $SYSVINIT patch -p1 < ../$SYSVINIT-dietlibc-patch.diff cd src make make ROOT=$TMP_DIR BIN_OWNER=$UID BIN_GROUP=$GID install rm -rf $TMP_DIR/dev cprm sysvinit # # shadow # $TARX $BTAR -f $SHADOW.tar.bz2 cd $SHADOW patch -p1 <../$SHADOW-dietlibc-patch.diff CC="diet -Os gcc -Wall -s -nostdinc -D_BSD_SOURCE" ./configure --prefix=/usr --libdir=/usr/lib --sysconfdir=/etc --localstatedir=/var --infodir=/usr/share/info --mandir=/usr/share/man --disable-nls make make DESTDIR=$TMP_DIR install cprm shadow # # dcron # $TARX $GTAR -f $DCRON.tgz cd dcron patch -p1 <../$DCRON.patch.diff make CC="diet -Os gcc -Wall -s -nostdinc" make DESTDIR=$TMP_DIR SBINDIR=/usr/sbin MANDIR=/usr/share/man CRONTAB_OWNER=$UID.$GID CROND_OWNER=$UID.$GID CRONTAB_PERM=4755 install cprm dcron # # tar # $TARX $GTAR -f $TAR.tar.gz cd $TAR/src patch <../../gnutarpatch.txt cd .. CC="diet -Os gcc -Wall -s -nostdinc" ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --infodir=/usr/share/info --mandir=/usr/share/man make make DESTDIR=$TMP_DIR install # # bzip2 # $TARX $GTAR -f $BZIP2.tar.gz cd $BZIP2 patch -p1 <../$BZIP2-dietlibc-patch.diff make make PREFIX=$TMP_DIR/usr install cprm bzip2 # # fileutils # $TARX $GTAR -f $FILEUTILS.tar.gz cd $FILEUTILS patch -p1 <../$FILEUTILS-dietlibc-patch.diff CC="diet -Os gcc -Wall -s -nostdinc -D_GNU_SOURCE" ./configure --prefix=/usr --bindir=/bin --sbindir=/sbin --sysconfdir=/etc --localstatedir=/var --infodir=/usr/share/info --mandir=/usr/share/man make make DESTDIR=$TMP_DIR install cprm fileutils # # textutils # $TARX $BTAR -f $TEXTUTILS.tar.bz2 cd $TEXTUTILS patch -p1 <../$TEXTUTILS-dietlibc-patch.diff CC="diet -Os gcc -Wall -s -nostdinc -D_GNU_SOURCE" ./configure --prefix=/usr --bindir=/bin --sbindir=/sbin --sysconfdir=/etc --localstatedir=/var --infodir=/usr/share/info --mandir=/usr/share/man make make DESTDIR=$TMP_DIR install cprm textutils # # sh-utils # $TARX $GTAR -f $SHUTILS.tar.gz cd $SHUTILS patch -p1 <../$SHUTILS-dietlibc-patch.diff CC="diet -Os gcc -Wall -s -nostdinc -D_GNU_SOURCE" ./configure --prefix=/usr --bindir=/bin --sbindir=/sbin --sysconfdir=/etc --localstatedir=/var --infodir=/usr/share/info --mandir=/usr/share/man make make DESTDIR=$TMP_DIR install cprm sh-utils # # lukemftp # $TARX $GTAR -f $LUKEMFTP.tar.gz cd $LUKEMFTP patch -p1 <../$LUKEMFTP-dietlibc.patch.diff CC="diet -Os gcc -Wall -s -nostdinc -I$LIB_DIR/usr/include -L$LIB_DIR/usr/lib -D_BSD_SOURCE -D_GNU_SOURCE" ./configure --prefix=/usr --bindir=/bin --sbindir=/sbin --sysconfdir=/etc --localstatedir=/var --infodir=/usr/share/info --mandir=/usr/share/man mkdir -p $TMP_DIR/bin $TMP_DIR/usr/share/man/cat1 cp src/tnftp $TMP_DIR/bin/ cp src/tnftp.cat1 $TMP_DIR/usr/share/man/cat1/ ln -s tnftp $TMP_DIR/bin/ftp cprm ftp # # netdate # $TARX $GTAR -f $NETDATE.tgz cd netdate patch -p1 <../$NETDATE-dietlibc.patch.diff make CC="diet -Os gcc -Wall -s -nostdinc" mkdir -p $TMP_DIR/usr/share/man/man8 $TMP_DIR/usr/sbin cp netdate.8 $TMP_DIR/usr/share/man/man8/ cp netdate $TMP_DIR/usr/sbin/ cprm netdate # # sed # $TAR $GTAR -f $SED.tar.gz cd $SED patch -p1 <../$SED-dietlibc-patch.diff CC="diet -Os gcc -Wall -s -nostdinc -D_BSD_SOURCE" ./configure --prefix=/usr --bindir=/bin --sysconfdir=/etc --localstatedir=/var --infodir=/usr/share/info --mandir=/usr/share/man make make DESTDIR=$TMP_DIR install cprm sed # # awk # $TAR $BTAR -f $GAWK.tar.bz2 cd $GAWK patch -p1 <../$GAWK-dietlibc-patch.diff CC="diet -Os gcc -Wall -s -nostdinc -D_BSD_SOURCE" ./configure --prefix=/usr --bindir=/bin --sysconfdir=/etc --localstatedir=/var --infodir=/usr/share/info --mandir=/usr/share/man make make DESTDIR=$TMP_DIR install cprm gawk # # grep # $TAR $BTAR -f $GREP.tar.bz2 cd $GREP CC="diet -Os gcc -Wall -s -nostdinc -D_BSD_SOURCE" ./configure --prefix=/usr --bindir=/bin --sysconfdir=/etc --localstatedir=/var --infodir=/usr/share/info --mandir=/usr/share/man --disable-perl-regexp make make DESTDIR=$TMP_DIR install cprm grep # # INN # $TAR $GTAR -f $INN.tar.gz cd $INN find -type f -name "*.c" -print | while read LINE; do sed 's/BUFSIZ/BUFSIZHACK/g' $LINE >$LINE.new; mv -v $LINE.new $LINE; done sed 's/freopen(path, "a", F) != F/!freopen(path, "a", F)/' innd/innd.c >innd/innd.c.new mv innd/innd.c.new innd/innd.c CC="diet -Os gcc -Wall -s -nostdinc -D_BSD_SOURCE -DBUFSIZHACK=16384" ./configure --prefix=/usr/news --sysconfdir=/etc/news --localstatedir=/var --infodir=/usr/share/info --mandir=/usr/share/man --with-db-dir=/var/lib/news --with-doc-dir=/usr/share/doc/$INN --with-etc-dir=/etc/news --with-log-dir=/var/log/news --with-run-dir=/var/run/news --with-spool-dir=/var/spool/news --with-tmp-dir=/var/spool/news/tmp --enable-tagged-hash --with-sendmail=/bin/smtppipe # FIXME: include/paths.h, Makefile, storage/tradindexed/tdx-util.c make make DESTDIR=$TMP_DIR NEWSUSER=$UID NEWSGROUP=$GID ROWNER='$(OWNER)' install cprm inn # # suck # $TAR $GTAR -f $SUCK.tar.gz cd $SUCK CC="diet -Os gcc -Wall -s -nostdinc" ./configure --prefix=/usr/news --sysconfdir=/etc/news --localstatedir=/var --infodir=/usr/shre/info --mandir=/usr/share/man --with-inn-lib=../$INN/lib --with-inn-include=../$INN/include --without-perl-exe make make bindir=$TMP_DIR/usr/news/bin mandir=$TMP_DIR/usr/share/man/man\$\(manext\) install cprm suck # # smtppipe # $TAR $BTAR -f $SMTPPIPE.tar.bz2 cd $SMTPPIPE make make DESTDIR=$TMP_DIR PREFIX=/bin BIN_OWNER=$UID BIN_GROUP=$GID install cprm smtppipe # # inntools # $TAR $BTAR -f $INNTOOLS.tar.bz2 cd $INNTOOLS make make DESTDIR=$TMP_DIR BIN_OWNER=$UID BIN_GROUP=$GID install cprm inntools # # iana2protocols # diet -Os gcc -Wall -s -nostdinc -o iana2protocols iana2protocols.c mkdir -p $TMP_DIR/usr/bin cp iana2protocols $TMP_DIR/usr/bin cprm iana2protocols # # netkit-base # $TARX $GTAR -f $NETKITBASE.tar.gz cd $NETKITBASE patch -p1 <../$NETKITBASE-dietlibc-patch.diff CC="diet -Os gcc -Wall -s -nostdinc -D_BSD_SOURCE -D_GNU_SOURCE" ./configure --installroot=$TMP_DIR make -C ping make -C ping MANDIR=/usr/share/man install cprm netkit-base # whois $TARX $GTAR -f whois_$WHOIS.tar.gz cd whois-$WHOIS patch -p1 <../whois-$WHOIS-dietlibc-patch.diff make make BASEDIR=$TMP_DIR install cprm whois # traceroute $TARX $GTAR -f $TRACEROUTE.tar.gz cd $TRACEROUTE patch -p1 <../$TRACEROUTE-dietlibc-patch.diff CC="diet -Os gcc -Wall -s -nostdinc -D_BSD_SOURCE" ./configure --prefix=/usr --sbindir=/usr/bin --sysconfdir=/etc --localstatedir=/var --infodir=/usr/share/info --mandir=/usr/share/man make make DESTDIR=$TMP_DIR install install-man cprm traceroute # netkit-telnet - C++ source !! forget it !! $TARX $GTAR -f $NETKITTELNET.tar.gz # cd $NETKITTELNET # psmisc $TARX $GTAR -f $PSMISC.tar.gz cd $PSMISC patch -p1 <../$PCMISC-dietlibc-patch.diff CC="diet -Os gcc -Wall -s -nostdinc -I$LIB_DIR/usr/include -L$LIB_DIR/usr/lib" ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --infodir=/usr/share/info --mandir=/usr/share/man --disable-nls make make DESTDIR=$TMP_DIR install cprm psmisc # procps - broken !! forget it !! $TARX $GTAR -f $PROCPS.tar.gz # cd $PROCPS