NAME="IPFire" # Software name
SNAME="ipfire" # Short name
VERSION="2.0" # Version number
- SLOGAN="www.ipfire.org" # Software slogan
+ SLOGAN="www.ipfire.eu" # Software slogan
CONFIG_ROOT=/var/ipfire # Configuration rootdir
NICE=10
MAX_RETRIES=3 # prefetch/check loop
fi
if [ 'x86_64' = $MACHINE -o 'i686' = $MACHINE -o 'i586' = $MACHINE -o 'i486' = $MACHINE -o 'i386' = $MACHINE ]; then
- echo "`date -u '+%b %e %T'`: Machine is ix86 (or equivalent)" >> $LOGFILE
- MACHINE=i386
- BUILDTARGET=i386-pc-linux-gnu
- CFLAGS="-O2 -mcpu=i386 -march=i386 -pipe -fomit-frame-pointer"
- CXXFLAGS="-O2 -mcpu=i386 -march=i386 -pipe -fomit-frame-pointer"
- elif [ 'alpha' = $MACHINE ]; then
- echo "`date -u '+%b %e %T'`: Machine is Alpha AXP" >> $LOGFILE
- BUILDTARGET=alpha-unknown-linux-gnu
- CFLAGS="-O2 -mcpu=ev4 -mieee -pipe"
- CXXFLAGS="-O2 -mcpu=ev4 -mieee -pipe"
+ echo "`date -u '+%b %e %T'`: Machine is i486 (or equivalent)" >> $LOGFILE
+ MACHINE=i486
+ BUILDTARGET=i486-pc-linux-gnu
+ CFLAGS="-O2 -mcpu=i486 -march=i486 -pipe -fomit-frame-pointer"
+ CXXFLAGS="-O2 -mcpu=i486 -march=i486 -pipe -fomit-frame-pointer"
else
echo "`date -u '+%b %e %T'`: Can't determine your architecture - $MACHINE" >> $LOGFILE
exit 1
# Setup environment
set +h
LC_ALL=POSIX
- export LFS LC_ALL CFLAGS CXXFLAGS
+ MAKETUNING="-j8"
+ export LFS LC_ALL CFLAGS CXXFLAGS MAKETUNING
unset CC CXX CPP LD_LIBRARY_PATH LD_PRELOAD
# Make some extra directories
LFS_BASEDIR=$BASEDIR \
ROOT=$LFS \
KVER=$KVER \
+ MAKETUNING=$MAKETUNING \
install >> $LOGFILE 2>&1
if [ $? -ne 0 ]; then
exiterror "Building $*";
NAME="$NAME" SNAME="$SNAME" SLOGAN="$SLOGAN" \
CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" \
CCACHE_DIR=/usr/src/ccache CCACHE_HASHDIR=1 \
- KVER=$KVER \
+ KVER=$KVER MAKETUNING=$MAKETUNING \
BUILDTARGET="$BUILDTARGET" MACHINE="$MACHINE" \
/tools/bin/bash -x -c "cd /usr/src/lfs && \
make -f $* LFS_BASEDIR=/usr/src install" >>$LOGFILE 2>&1
NAME="$NAME" SNAME="$SNAME" SLOGAN="$SLOGAN" \
CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" \
CCACHE_DIR=/usr/src/ccache CCACHE_HASHDIR=1 \
- KVER=$KVER \
+ KVER=$KVER MAKETUNING=$MAKETUNING \
BUILDTARGET="$BUILDTARGET" MACHINE="$MACHINE" \
/bin/bash -x -c "cd /usr/src/lfs && \
make -f $* LFS_BASEDIR=/usr/src install" >>$LOGFILE 2>&1
ipfiredist() {
if [ -f $BASEDIR/build/usr/src/lfs/$1 ]; then
-# if [ ! `ls -w1 $BASEDIR/packages/*.ipfire | grep $1` ]; then
echo "`date -u '+%b %e %T'`: Packaging $1" | tee -a $LOGFILE
chroot $LFS /tools/bin/env -i HOME=/root \
TERM=$TERM PS1='\u:\w\$ ' \
if [ $? -ne 0 ]; then
exiterror "Packaging $1"
fi
-# else
-# echo "`date -u '+%b %e %T'`: Packaging: The package $1 already exists"
-# fi
else
exiterror "No such file or directory: $BASEDIR/build/usr/src/lfs/$1"
fi
ORG_PATH=$PATH
NATIVEGCC=`gcc --version | grep GCC | awk {'print $3'}`
export NATIVEGCC GCCmajor=${NATIVEGCC:0:1} GCCminor=${NATIVEGCC:2:1} GCCrelease=${NATIVEGCC:4:1}
+ echo -ne "`date -u '+%b %e %T'`: Native GCC: $NATIVEGCC\n"
lfsmake1 ccache
- lfsmake1 sed LFS_PASS=1
- lfsmake1 m4 LFS_PASS=1
- lfsmake1 bison LFS_PASS=1
- lfsmake1 flex LFS_PASS=1
- lfsmake1 binutils LFS_PASS=1
- lfsmake1 gcc LFS_PASS=1
+ lfsmake1 binutils LFS_PASS=1
+ lfsmake1 gcc LFS_PASS=1
export PATH=$BASEDIR/build/usr/local/bin:$BASEDIR/build/tools/bin:$PATH
-
- lfsmake1 linux
+ lfsmake1 linux-libc-header
+ lfsmake1 glibc
lfsmake1 tcl
lfsmake1 expect
- lfsmake1 glibc
lfsmake1 dejagnu
- lfsmake1 gcc LFS_PASS=2
- lfsmake1 binutils LFS_PASS=2
- lfsmake1 gawk
- lfsmake1 coreutils
+ lfsmake1 gcc LFS_PASS=2
+ lfsmake1 binutils LFS_PASS=2
+ lfsmake1 ncurses
+ lfsmake1 bash
lfsmake1 bzip2
- lfsmake1 gzip
+ lfsmake1 coreutils
lfsmake1 diffutils
lfsmake1 findutils
- lfsmake1 make
- lfsmake1 grep
- lfsmake1 sed LFS_PASS=2
- lfsmake1 m4 LFS_PASS=2
- lfsmake1 bison LFS_PASS=2
- lfsmake1 flex LFS_PASS=2
+ lfsmake1 gawk
lfsmake1 gettext
- lfsmake1 ncurses
+ lfsmake1 grep
+ lfsmake1 gzip
+ lfsmake1 m4
+ lfsmake1 make
lfsmake1 patch
+ lfsmake1 perl
+ lfsmake1 sed
lfsmake1 tar
lfsmake1 texinfo
- lfsmake1 bash
lfsmake1 util-linux
- lfsmake1 perl
+ lfsmake1 cleanup-toolchain
export PATH=$ORG_PATH
}
ipcopmake mysql
ipcopmake saslauthd PASS=1
ipcopmake openldap
- #ipcopmake apache
ipcopmake apache2
ipcopmake php
+ ipcopmake subversion
+ ipcopmake apache2 PASS=CONFIG
ipcopmake arping
ipcopmake beep
ipcopmake bind
ipcopmake setserial
ipcopmake setup
ipcopmake snort
- #ipcopmake speedycgi
ipcopmake squid
ipcopmake squid-graph
ipcopmake squidguard
ipcopmake wireless
ipcopmake libsafe
ipcopmake 3c5x9setup
-# echo -ne "`date -u '+%b %e %T'`: Building ### IPFire modules ### \n" | tee -a $LOGFILE
ipcopmake pakfire
ipcopmake startscripts
-## Zuerst die Libs und dann die Programme. Ordnung muss sein!
ipcopmake java
ipcopmake bootsplash
ipcopmake spandsp
ipcopmake openvpn
ipcopmake pkg-config
ipcopmake glib
- ipcopmake xampp
ipcopmake pam
ipcopmake pammysql
ipcopmake saslauthd PASS=2
ipcopmake xinetd
ipcopmake ghostscript
ipcopmake cups
-# ipcopmake lpd ## Im Moment aus, da CUPS vorhanden ist.
ipcopmake samba
ipcopmake sudo
ipcopmake mc
-# ipcopmake pwlib
-# ipcopmake openh323
ipcopmake wget
ipcopmake wput
ipcopmake bridge-utils
ipcopmake procmail
ipcopmake fetchmail
ipcopmake cyrusimap
- ipcopmake web-cyradm
+ ipcopmake webcyradm
ipcopmake mailx
ipcopmake clamav
ipcopmake razor
ipcopmake applejuice
ipcopmake ocaml
ipcopmake mldonkey
-# ipcopmake edonkeyclc
-# ipcopmake sane
echo -ne "`date -u '+%b %e %T'`: Building ### Net-Tools ### \n" | tee -a $LOGFILE
ipcopmake ntop
-# ipcopmake rsync
+ ipcopmake rsync
ipcopmake tcpwrapper
ipcopmake portmap
ipcopmake nfs
ipcopmake etherwake
ipcopmake ethereal
ipcopmake tftp-hpa
- #ipcopmake subversion
ipcopmake iptraf
ipcopmake nagios
ipcopmake yasuc
-# ipcopmake stunnel # Ausgeschaltet, weil wir es doch nicht nutzen
}
buildinstaller() {
rm -f $BASEDIR/doc/packages-list
for i in `ls -1tr $BASEDIR/log/[^_]*`; do
if [ "$i" != "$BASEDIR/log/FILES" -a -n $i ]; then
- echo " * `basename $i`" >>$BASEDIR/doc/packages-list
+ echo "* `basename $i`" >>$BASEDIR/doc/packages-list
fi
done
- echo "====== List of softwares used to build $NAME Version: $VERSION ======" > $BASEDIR/doc/packages-list.txt
- grep -v 'configroot$\|img$\|initrd$\|initscripts$\|installer$\|install$\|ipfire$\|setup$\|pakfire$\|stage2$\|smp$\|tools$\|tools1$\|tools2$\|^ipfire-logs' \
+ echo "== List of softwares used to build $NAME Version: $VERSION ==" > $BASEDIR/doc/packages-list.txt
+ grep -v 'configroot$\|img$\|initrd$\|initscripts$\|installer$\|install$\|ipfire$\|setup$\|pakfire$\|stage2$\|smp$\|tools$\|tools1$\|tools2$\|.tgz$\|-config$' \
$BASEDIR/doc/packages-list | sort >> $BASEDIR/doc/packages-list.txt
rm -f $BASEDIR/doc/packages-list
# packages-list.txt is ready to be displayed for wiki page
- # Create ISO for CDRom and USB-superfloppy
+ # Create ISO for CDROM
ipcopmake cdrom
rm -f $LFS/install/images/*usb*
cp $LFS/install/images/{*.iso,*.tgz} $BASEDIR >> $LOGFILE 2>&1
touch $BASEDIR/build/install/packages/$i.empty
done
fi
- ipfiredist amavisd
+# ipfiredist amavisd
ipfiredist applejuice
ipfiredist asterisk
ipfiredist clamav
ipfiredist libogg
ipfiredist libtiff
ipfiredist libvorbis
- ipfiredist libxml2
ipfiredist mailx
ipfiredist mldonkey
ipfiredist mpeg2dec
ipfiredist spamassassin
ipfiredist subversion
ipfiredist videolan
- ipfiredist web-cyradm
- ipfiredist xampp
-# ipfiredist xinetd
+ ipfiredist webcyradm
ipfiredist xvid
ipfiredist yasuc
test -d $BASEDIR/packages || mkdir $BASEDIR/packages
BUILDMACHINE=`uname -m`
PACKAGE=`ls -v -r $BASEDIR/cache/toolchains/$SNAME-$VERSION-toolchain-$BUILDMACHINE.tar.gz 2> /dev/null | head -n 1`
#only restore on a clean disk
- if [ ! -f log/perl-*-tools ]; then
+ if [ ! -f log/cleanup-toolchain-*-tools ]; then
if [ ! -n "$PACKAGE" ]; then
echo "`date -u '+%b %e %T'`: Full toolchain compilation" | tee -a $LOGFILE
prepareenv
case "$2" in
update|up)
# clear
- echo -n "Load the latest source files..."
- svn update >> $PWD/log/_build.svn.update.log
+ echo "Loading the latest source files..."
+ if [ $3 ]; then
+ svn update -r $3 | tee -a $PWD/log/_build.svn.update.log
+ else
+ svn update | tee -a $PWD/log/_build.svn.update.log
+ fi
if [ $? -eq 0 ]; then
- echo ".Done!"
+ echo "Finished!"
else
- echo ".Fail!"
+ echo "Failure!"
exit 1
fi
- echo -n "Write the svn info to a file..."
+ echo -n "Writing the svn-info to a file..."
svn info > $PWD/svn_status
if [ "$?" -eq "0" ]; then
- echo ".Done!"
+ echo ".Finished!"
else
- echo ".Fail!"
+ echo ".Failure!"
exit 1
fi
chmod 755 $0
- tail log/_build.svn.update.log
exit 0
;;
commit|ci)
clear
if [ -e /sbin/yast ]; then
- $0 changelog
+ if [ "`echo $SVN_REVISION | cut -c 3`" -eq "0" ]; then
+ $0 changelog
+ fi
fi
echo "Upload the changed files..."
sleep 1
$0 svn up
;;
dist)
- #$0 svn up
- echo -ne "Download source package from svn..."
+ if [ $3 ]; then
+ SVN_REVISION=$3
+ fi
+ if [ -f ipfire-source-r$SVN_REVISION.tar.gz ]; then
+ echo -ne "REV $SVN_REVISION: SKIPPED!\n"
+ exit 0
+ fi
+ echo -en "REV $SVN_REVISION: Downloading..."
svn export http://svn.ipfire.eu/svn/ipfire ipfire-source/ --force > /dev/null
+ svn log http://svn.ipfire.eu/svn/ipfire -r 1:$SVN_REVISION > ipfire-source/Changelog
+ #svn info http://svn.ipfire.eu/svn/ipfire -r $SVN_REVISION > ipfire-source/svn_status
if [ "$?" -eq "0" ]; then
- echo ".Done!"
+ echo -en "\r"
else
- echo ".Fail!"
+ echo -en "\n"
exit 1
fi
- echo -n "Compress files..."
+ echo -en "REV $SVN_REVISION: Compressing files..."
+ if [ -e ipfire-source/trunk/make.sh ]; then
+ chmod 755 ipfire-source/trunk/make.sh
+ fi
tar cfz ipfire-source-r$SVN_REVISION.tar.gz ipfire-source
if [ "$?" -eq "0" ]; then
- echo ".Done!"
+ echo -ne "\r"
else
- echo ".Fail!"
+ echo -ne "\n"
exit 1
fi
- echo -n "Cleanup..."
+ echo -en "REV $SVN_REVISION: Cleaning up..."
rm ipfire-source/ -r
if [ "$?" -eq "0" ]; then
- echo ".Done!"
+ echo -ne "\rREV $SVN_REVISION: ##### FINISHED! #####\n"
else
- echo ".Fail!"
+ echo -ne "\n"
exit 1
fi
;;
- diff)
+ alldist|ad)
+ echo -e "### THIS WILL TAKE A LONG TIME!\nDOING A FETCH FROM REV 1 TO REV $SVN_REVISION!\n"
+ for i in `seq 1 $SVN_REVISION`; do
+ $0 svn dist $i
+ done
+ ;;
+ diff|di)
echo -ne "Make a local diff to last svn revision..."
svn diff > ipfire-diff-`date +'%Y-%m-%d-%H:%M'`-r`svn info | grep Revision | cut -c 11-`.diff
if [ "$?" -eq "0" ]; then
fi
fi
done
-# for i in `cat ftplist`; do
-# ls -w1 cache/ | grep $i
-# if [ "$?" -eq "1" ]; then
-# echo $i | grep -v toolchain >> doc/packages-to-remove-from-ftp
-# fi
-# done
rm -f ftplist
;;
upload)
echo "### SAVING TIME"
export IPFIRE_START_TIME=`date`
- echo "### GETTING TOOLCHAIN"
- $0 gettoolchain
+ #echo "### GETTING TOOLCHAIN"
+ #$0 gettoolchain
echo "### RUNNING SVN-UPDATE"
$0 svn update
exit 0
fi
;;
+watch)
+ echo "Exit with Ctrl+A, Ctrl+D."
+ echo -n "Preparing..."
+ for i in `seq 5`; do
+ sleep 0.1; echo -n "."
+ done
+ echo ".Ready!"
+ sleep 0.3
+ screen -x ipfire
+ ;;
*)
clear
svn info
$0 build-silent
;;
"IPFIRE: Watch Build")
- echo "Exit with Ctrl+A, Ctrl+D."
- echo -n "Preparing..."
- for i in `seq 10`; do
- sleep 0.1; echo -n "."
- done
- echo ".Ready!"
- sleep 0.3
- screen -x ipfire
+ $0 watch
;;
"IPFIRE: Batch")
$0 batch