X-Git-Url: http://git.ipfire.org/?p=ipfire-2.x.git;a=blobdiff_plain;f=make.sh;h=e2baff571142f240973fc4429456ae0fc70862d8;hp=e986edd13133cfdc9f1cbd3d420b7b5172945a39;hb=b734d091870f7141e9a92813361e1dc714801a02;hpb=483f59cd335706e8311bf70b55d7d537cf173aff diff --git a/make.sh b/make.sh index e986edd131..e2baff5711 100644 --- a/make.sh +++ b/make.sh @@ -25,14 +25,20 @@ NAME="IPFire" # Software name SNAME="ipfire" # Short name - VERSION="1.4" # Version number - SLOGAN="We secure your network" # Software slogan + VERSION="2.0" # Version number + SLOGAN="www.ipfire.org" # Software slogan CONFIG_ROOT=/var/ipfire # Configuration rootdir NICE=10 MAX_RETRIES=3 # prefetch/check loop KVER=`grep --max-count=1 VER lfs/linux | awk '{ print $3 }'` MACHINE=`uname -m` + # Setzen des IPFire Builds + if [ -e ./.svn ]; then + FIREBUILD=`cat .svn/entries |sed -n 's/^[ \t]*revision=\"// p' | sed -n 's/\".*$// p'` +# VERSION="$VERSION (Build:$FIREBUILD)" + fi + # Debian specific settings if [ ! -e /etc/debian_version ]; then FULLPATH=`which $0` @@ -45,7 +51,6 @@ fi fi - PWD=`pwd` BASENAME=`basename $0` BASEDIR=`echo $FULLPATH | sed "s/\/$BASENAME//g"` @@ -55,18 +60,18 @@ mkdir $BASEDIR/log/ 2>/dev/null 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)" | tee -a $LOGFILE + 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" | tee -a $LOGFILE + 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" else - echo "`date -u '+%b %e %T'`: Can't determine your architecture - $MACHINE" | tee -a $LOGFILE + echo "`date -u '+%b %e %T'`: Can't determine your architecture - $MACHINE" >> $LOGFILE exit 1 fi @@ -544,6 +549,7 @@ buildipcop() { ipcopmake fcclassic SMP=1 ipcopmake pulsar SMP=1 ipcopmake unicorn SMP=1 + ipcopmake promise-sata-300-tx SMP=1 fi ipcopmake linux LFS_PASS=ipfire @@ -564,8 +570,9 @@ buildipcop() { ipcopmake fcdslslusb ipcopmake fcpci ipcopmake fcclassic - ipcopmake pulsar - ipcopmake unicorn + ipcopmake pulsar + ipcopmake unicorn + ipcopmake promise-sata-300-tx fi ipcopmake pcmcia-cs @@ -637,6 +644,7 @@ buildipcop() { ipcopmake Convert-UUlib ipcopmake Archive-Tar ipcopmake Archive-Zip + ipcopmake Text-Tabs+Wrap ipcopmake Locale-Country ipcopmake GeoIP ipcopmake fwhits @@ -655,7 +663,6 @@ buildipcop() { #ipcopmake speedycgi ipcopmake saslauthd PASS=1 ipcopmake openldap - ipcopmake saslauthd PASS=2 ipcopmake squid ipcopmake squid-graph ipcopmake squidguard @@ -672,6 +679,10 @@ buildipcop() { ipcopmake java ipcopmake libtiff ipcopmake libjpeg + ipcopmake lcms + ipcopmake libmng + ipcopmake freetype + ipcopmake bootsplash ipcopmake libxml2 ipcopmake spandsp ipcopmake lzo @@ -681,6 +692,7 @@ buildipcop() { ipcopmake xampp ipcopmake pam ipcopmake pammysql + ipcopmake saslauthd PASS=2 ipcopmake xinetd ipcopmake ghostscript ipcopmake cups @@ -688,13 +700,14 @@ buildipcop() { ipcopmake samba ipcopmake sudo ipcopmake mc - ipcopmake pwlib - ipcopmake openh323 +# ipcopmake pwlib +# ipcopmake openh323 ipcopmake wget ipcopmake wput ipcopmake bridge-utils ipcopmake screen ipcopmake hddtemp + ipcopmake smartmontools ipcopmake htop ipcopmake lynx echo -ne "`date -u '+%b %e %T'`: Building ### Mailserver ### \n" | tee -a $LOGFILE @@ -702,13 +715,17 @@ buildipcop() { ipcopmake procmail ipcopmake fetchmail ipcopmake cyrusimap + ipcopmake web-cyradm ipcopmake mailx ipcopmake clamav ipcopmake razor ipcopmake spamassassin - ipcopmake amavisd +# ipcopmake amavisd echo -ne "`date -u '+%b %e %T'`: Building ### VoIP-Server ### \n" | tee -a $LOGFILE ipcopmake stund + ipcopmake zaptel + ipcopmake libpri + ipcopmake bristuff ipcopmake asterisk ipcopmake mpg123 echo -ne "`date -u '+%b %e %T'`: Building ### MP3-Server ### \n" | tee -a $LOGFILE @@ -716,7 +733,9 @@ buildipcop() { ipcopmake gnump3d echo -ne "`date -u '+%b %e %T'`: Building ### P2P-Clients ### \n" | tee -a $LOGFILE ipcopmake applejuice - ipcopmake edonkeyclc + ipcopmake ocaml + ipcopmake mldonkey +# ipcopmake edonkeyclc # ipcopmake sane echo -ne "`date -u '+%b %e %T'`: Building ### Net-Tools ### \n" | tee -a $LOGFILE ipcopmake ntop @@ -725,6 +744,7 @@ buildipcop() { ipcopmake portmap ipcopmake nfs ipcopmake nmap + ipcopmake mbmon ipcopmake iftop ipcopmake ncftp ipcopmake cftp @@ -836,11 +856,14 @@ buildpackages() { } ipfirepackages() { - for i in `ls $BASEDIR/packages`; do - touch $BASEDIR/build/install/packages/$i.empty - done + if [ -d "$BASEDIR/packages" ]; then + for i in `ls $BASEDIR/packages`; do + touch $BASEDIR/build/install/packages/$i.empty + done + fi + ipfiredist amavisd ipfiredist applejuice - ipfiredist asterisk + # ipfiredist asterisk ipfiredist clamav ipfiredist cups ipfiredist cyrusimap @@ -850,9 +873,16 @@ ipfirepackages() { ipfiredist lame ipfiredist libtiff ipfiredist libxml2 + ipfiredist mailx + ipfiredist mldonkey + ipfiredist nfs + ipfiredist nmap ipfiredist ntop ipfiredist postfix + ipfiredist procmail ipfiredist samba + ipfiredist spamassassin + ipfiredist web-cyradm ipfiredist xampp ipfiredist xinetd test -d $BASEDIR/packages || mkdir $BASEDIR/packages @@ -864,7 +894,7 @@ ipfirepackages() { case "$1" in build) BUILDMACHINE=`uname -m` - PACKAGE=`ls -v -r $BASEDIR/cache/$SNAME-1.4-toolchain-$BUILDMACHINE.tar.gz 2> /dev/null | head -n 1` + PACKAGE=`ls -v -r $BASEDIR/cache/$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 [ ! -n "$PACKAGE" ]; then @@ -885,8 +915,17 @@ build) echo "`date -u '+%b %e %T'`: Using installed toolchain" | tee -a $LOGFILE prepareenv fi + buildbase buildipcop + + # Setzen des IPFire Builds + if [ "$FIREBUILD" ]; then + echo "$FIREBUILD" > $BASEDIR/build/var/ipfire/firebuild + else + echo "_(OvO)_" > $BASEDIR/build/var/ipfire/firebuild + fi + buildinstaller buildpackages ;; @@ -953,14 +992,6 @@ clean) rm -f /tools fi ;; -dist) - echo -ne "Updating & building source package from SVN: " - svn up > /dev/null - svn export http://svn.ipfire.eu/svn/ipfire ipfire-source/ --force > /dev/null - tar cfz ipfire-source-`date +'%Y-%m-%d'`-r`svn info | grep Revision | cut -c 11-`.tar.gz ipfire-source - rm ipfire-source/ -r - echo "Finished!" - ;; newpak) # create structure for a new package echo -e "Name of the new package: $2" @@ -972,7 +1003,6 @@ newpak) cp $BASEDIR/lfs/postfix $BASEDIR/lfs/$2 touch ROOTFILES - touch CONFFILES touch {,un}install.sh ## install.sh echo '#!/bin/bash' > install.sh @@ -1073,48 +1103,88 @@ toolchain) gettoolchain) BUILDMACHINE=`uname -m` # arbitrary name to be updated in case of new toolchain package upload - PACKAGE=$SNAME-1.4-toolchain-$BUILDMACHINE + PACKAGE=$SNAME-$VERSION-toolchain-$BUILDMACHINE URL_IPFIRE=`grep URL_IPFIRE lfs/Config | awk '{ print $3 }'` echo "`date -u '+%b %e %T'`: Load toolchain tar.gz for $BUILDMACHINE" | tee -a $LOGFILE cd $BASEDIR/cache wget $URL_IPFIRE/toolchains/$PACKAGE.tar.gz $URL_IPFIRE/toolchains/$PACKAGE.md5 >& /dev/null if [ $? -ne 0 ]; then echo "`date -u '+%b %e %T'`: error downloading toolchain for $BUILDMACHINE machine" | tee -a $LOGFILE -# else -# if [ "`md5sum $PACKAGE.tar.gz | awk '{print $1}'`" = "`cat $PACKAGE.md5 | awk '{print $1}'`" ]; then -# echo "`date -u '+%b %e %T'`: toolchain md5 ok" | tee -a $LOGFILE -# echo "`date -u '+%b %e %T'`: Uncompressing toolchain" | tee -a $LOGFILE -# cd $BASEDIR && tar xfz cache/$PACKAGE.tar.gz -C . -# rm -f $BASEDIR/cache/$PACKAGE.{tar.gz,md5} -# else -# exiterror "$PACKAGE.md5 did not match, check downloaded package" -# fi + else + if [ "`md5sum $PACKAGE.tar.gz | awk '{print $1}'`" = "`cat $PACKAGE.md5 | awk '{print $1}'`" ]; then + echo "`date -u '+%b %e %T'`: toolchain md5 ok" | tee -a $LOGFILE + else + exiterror "$PACKAGE.md5 did not match, check downloaded package" + fi fi ;; -paks) - prepareenv - # buildpackages - ipfirepackages - ;; -update) - echo "Load the latest source-files:" - svn update - ;; -commit) - echo "Upload the changed files:" - svn commit - ./make.sh sync - svn up > /dev/null - ;; -make) - echo "Do a complete compile:" - ./make.sh prefetch && ./make.sh gettoolchain && ./make.sh build - ;; -diff) - 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 - echo "Finished!" - echo "Diff was successfully saved to ipfire-diff-`date +'%Y-%m-%d-%H:%M'`-r`svn info | grep Revision | cut -c 11-`.diff" +svn) + case "$2" in + update|up) + clear + echo -n "Load the latest source files..." + svn update >> $PWD/log/_build.svn.update.log + if [ $? -eq 0 ]; then + echo ".Done!" + else + echo ".Fail!" + exit 1 + fi + echo -n "Write the svn info to a file..." + svn info > $PWD/svn_status + if [ "$?" -eq "0" ]; then + echo ".Done!" + else + echo ".Fail!" + exit 1 + fi + ;; + commit|ci) + clear + echo "Upload the changed files..." + sleep 1 + svn commit + $0 svn up + ;; + dist) + $0 svn up + echo -ne "Download source package from svn..." + svn export http://svn.ipfire.eu/svn/ipfire ipfire-source/ --force > /dev/null + if [ "$?" -eq "0" ]; then + echo ".Done!" + else + echo ".Fail!" + exit 1 + fi + echo -n "Compress files..." + tar cfz ipfire-source-`date +'%Y-%m-%d'`-r`svn info | grep Revision | cut -c 11-`.tar.gz ipfire-source + if [ "$?" -eq "0" ]; then + echo ".Done!" + else + echo ".Fail!" + exit 1 + fi + echo -n "Cleanup..." + rm ipfire-source/ -r + if [ "$?" -eq "0" ]; then + echo ".Done!" + else + echo ".Fail!" + exit 1 + fi + ;; + diff) + 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 + echo ".Done!" + else + echo ".Fail!" + exit 1 + fi + echo "Diff was successfully saved to ipfire-diff-`date +'%Y-%m-%d-%H:%M'`-r`svn info | grep Revision | cut -c 11-`.diff" + ;; + esac ;; sync) echo -e "Syncing Cache to FTP:" @@ -1181,9 +1251,62 @@ pub-paks) echo -e "There was an error while uploading the packages to the ftp server." fi ;; +build-only) + rm -f $BASEDIR/log/$2* + BUILDMACHINE=`uname -m` + prepareenv + ipcopmake $2 + ;; +build-silent) + screen -dmS ipfire $0 build + echo "Build started... This will take a while!" + echo "You can see the status with 'screen -x ipfire'." + ;; *) - echo "Usage: $0 {build|changelog|check|checkclean|clean|commit|diff|dist|gettoolchain|make|newpak|prefetch|pub-iso|pub-paks|shell|sync|toolchain|update}" - cat doc/make.sh-usage - exit 1 + clear + svn info + select name in "Exit" "IPFIRE: Prefetch" "IPFIRE: Build (silent)" "IPFIRE: Watch Build" "IPFIRE: Clean" "SVN: Commit" "SVN: Update" "SVN: Status" "SVN: Diff" "Help" + do + case $name in + "IPFIRE: Prefetch") + $0 prefetch + ;; + "IPFIRE: Build (silent)") + $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.5 + screen -x ipfire + ;; + "IPFIRE: Clean") + $0 clean + ;; + "SVN: Commit") + $0 svn commit + ;; + "SVN: Update") + $0 svn update + ;; + "SVN: Status") + svn status # | grep -v ^? + ;; + "SVN: Diff") + $0 svn diff + ;; + "Help") + echo "Usage: $0 {build|changelog|check|checkclean|clean|gettoolchain|newpak|prefetch|shell|sync|toolchain}" + cat doc/make.sh-usage + ;; + "Exit") + break + ;; + esac + done ;; esac