X-Git-Url: http://git.ipfire.org/?p=ipfire-2.x.git;a=blobdiff_plain;f=make.sh;h=eb036346500e4abec4236e62acbee9f4d2ece930;hp=90121acfb9d80b0b0484ccc9f9787c15b8b376d9;hb=f1baee3ed43cd2c7d74893bc00ea876e3ff894da;hpb=43f8b5f17a4d0ff3dcd5d1e77424738b6e517bd2 diff --git a/make.sh b/make.sh index 90121acfb9..eb03634650 100644 --- a/make.sh +++ b/make.sh @@ -26,7 +26,7 @@ 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 @@ -344,7 +344,7 @@ ipcopmake() { ipfiredist() { if [ -f $BASEDIR/build/usr/src/lfs/$1 ]; then -# if [ ! `ls -w1 $BASEDIR/packages/*.tar.gz | grep $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\$ ' \ @@ -587,6 +587,11 @@ buildipcop() { ipcopmake python ipcopmake libnet ipcopmake libpng + ipcopmake libtiff + ipcopmake libjpeg + ipcopmake lcms + ipcopmake libmng + ipcopmake freetype ipcopmake gd ipcopmake popt ipcopmake slang @@ -594,7 +599,15 @@ buildipcop() { ipcopmake libcap ipcopmake pciutils ipcopmake pcre - ipcopmake apache + ipcopmake readline + ipcopmake libxml2 + ipcopmake berkeley + ipcopmake BerkeleyDB ## The Perl module + ipcopmake mysql + ipcopmake saslauthd PASS=1 + ipcopmake openldap + ipcopmake apache2 + ipcopmake php ipcopmake arping ipcopmake beep ipcopmake bind @@ -652,8 +665,6 @@ buildipcop() { ipcopmake Locale-Country ipcopmake GeoIP ipcopmake fwhits - ipcopmake berkeley - ipcopmake BerkeleyDB ## The Perl module ipcopmake noip_updater ipcopmake ntp ipcopmake oinkmaster @@ -664,48 +675,33 @@ buildipcop() { ipcopmake setserial ipcopmake setup ipcopmake snort - #ipcopmake speedycgi - ipcopmake saslauthd PASS=1 - ipcopmake openldap ipcopmake squid ipcopmake squid-graph ipcopmake squidguard ipcopmake tcpdump ipcopmake traceroute ipcopmake vlan - #ipcopmake wireless + 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 libtiff - ipcopmake libjpeg - ipcopmake lcms - ipcopmake libmng - ipcopmake freetype ipcopmake bootsplash - ipcopmake libxml2 ipcopmake spandsp ipcopmake lzo 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 @@ -719,7 +715,7 @@ buildipcop() { ipcopmake procmail ipcopmake fetchmail ipcopmake cyrusimap - ipcopmake web-cyradm + ipcopmake webcyradm ipcopmake mailx ipcopmake clamav ipcopmake razor @@ -732,18 +728,24 @@ buildipcop() { ipcopmake bristuff ipcopmake asterisk ipcopmake mpg123 - echo -ne "`date -u '+%b %e %T'`: Building ### MP3-Server ### \n" | tee -a $LOGFILE + echo -ne "`date -u '+%b %e %T'`: Building ### Multimedia-Server ### \n" | tee -a $LOGFILE + ipcopmake libmad + ipcopmake libogg + ipcopmake libvorbis ipcopmake lame + ipcopmake xvid + ipcopmake mpeg2dec + ipcopmake ffmpeg + ipcopmake sox ipcopmake gnump3d + ipcopmake videolan echo -ne "`date -u '+%b %e %T'`: Building ### P2P-Clients ### \n" | tee -a $LOGFILE 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 @@ -755,7 +757,11 @@ buildipcop() { ipcopmake etherwake ipcopmake ethereal ipcopmake tftp-hpa -# ipcopmake stunnel # Ausgeschaltet, weil wir es doch nicht nutzen + ipcopmake subversion + ipcopmake iptraf + ipcopmake nagios + ipcopmake yasuc + ipcopmake apache2 PASS=CONFIG } buildinstaller() { @@ -824,11 +830,11 @@ buildpackages() { 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$' \ $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 @@ -855,6 +861,8 @@ buildpackages() { cat $i | sed "s%^\./%#%" | sort >> $BASEDIR/log/FILES fi done + cd $BASEDIR/packages; ls -w1 *.ipfire | awk -F ".ipfire" '{ print $1 }' > $BASEDIR/packages/packages_list.txt + echo -n "###EOF###" >> $BASEDIR/packages/packages_list.txt cd $PWD @@ -866,32 +874,42 @@ ipfirepackages() { touch $BASEDIR/build/install/packages/$i.empty done fi - ipfiredist amavisd +# ipfiredist amavisd ipfiredist applejuice - # ipfiredist asterisk + ipfiredist asterisk ipfiredist clamav ipfiredist cups ipfiredist cyrusimap ipfiredist fetchmail + ipfiredist ffmpeg ipfiredist gnump3d + ipfiredist iptraf ipfiredist java ipfiredist lame + ipfiredist libmad + ipfiredist libogg ipfiredist libtiff - ipfiredist libxml2 + ipfiredist libvorbis ipfiredist mailx ipfiredist mldonkey + ipfiredist mpeg2dec + ipfiredist nagios ipfiredist nfs ipfiredist nmap ipfiredist ntop + ipfiredist portmap ipfiredist postfix ipfiredist procmail ipfiredist samba + ipfiredist sox ipfiredist spamassassin - ipfiredist web-cyradm - ipfiredist xampp -# ipfiredist xinetd + ipfiredist subversion + ipfiredist videolan + ipfiredist webcyradm + ipfiredist xvid + ipfiredist yasuc test -d $BASEDIR/packages || mkdir $BASEDIR/packages - mv -f $LFS/install/packages/*.{tar.gz,md5} $BASEDIR/packages >> $LOGFILE 2>&1 + mv -f $LFS/install/packages/*.{ipfire,md5} $BASEDIR/packages >> $LOGFILE 2>&1 rm -rf $BASEDIR/build/install/packages/* } @@ -1134,24 +1152,39 @@ gettoolchain) echo "Toolchain is already downloaded. Exiting..." fi ;; +sources-iso) + prepareenv + echo "`date -u '+%b %e %T'`: Build sources iso for $MACHINE" | tee -a $LOGFILE + chroot $LFS /tools/bin/env -i HOME=/root \ + TERM=$TERM PS1='\u:\w\$ ' \ + PATH=/usr/local/bin:/bin:/usr/bin:/sbin:/usr/sbin \ + VERSION=$VERSION NAME="$NAME" SNAME="$SNAME" MACHINE=$MACHINE \ + /bin/bash -x -c "cd /usr/src/lfs && make -f sources-iso LFS_BASEDIR=/usr/src install" >>$LOGFILE 2>&1 + mv $LFS/install/images/ipfire-* $BASEDIR >> $LOGFILE 2>&1 + stdumount + ;; svn) 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 @@ -1159,40 +1192,65 @@ svn) ;; commit|ci) clear - $0 changelog + if [ -e /sbin/yast ]; then + if [ "`echo $SVN_REVISION | cut -c 3`" -eq "0" ]; then + $0 changelog + fi + fi echo "Upload the changed files..." sleep 1 - svn commit + IPFIRE_SVN_MESSAGE=/tmp/ipfire-svn-co-message.txt + rm -f $IPFIRE_SVN_MESSAGE + mcedit $IPFIRE_SVN_MESSAGE + svn commit -F $IPFIRE_SVN_MESSAGE + rm -f $IPFIRE_SVN_MESSAGE $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..." - tar cfz ipfire-source-`date +'%Y-%m-%d'`-r`svn info | grep Revision | cut -c 11-`.tar.gz ipfire-source + 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 @@ -1296,7 +1354,7 @@ END ;; sync) echo -e "Syncing cache to ftp:" - rm -f doc/packages-to-remove-from-ftp +# rm -f doc/packages-to-remove-from-ftp ncftpls -u $IPFIRE_FTP_USER_INT -p $IPFIRE_FTP_PASS_INT ftp://$IPFIRE_FTP_URL_INT$IPFIRE_FTP_PATH_INT/ > ftplist for i in `ls -w1 cache/`; do grep $i ftplist @@ -1309,40 +1367,45 @@ sync) 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) case "$2" in iso) echo -e "Uploading the iso to $IPFIRE_FTP_URL_EXT." - ncftpls -u $IPFIRE_FTP_USER_EXT -p $IPFIRE_FTP_PASS_EXT ftp://$IPFIRE_FTP_URL_EXT$IPFIRE_FTP_PATH_EXT/ | grep $SVN_REVISION - if [ "$?" -eq "1" ]; then - cp $BASEDIR/ipfire-install-$VERSION.i386.iso $BASEDIR/ipfire-install-$VERSION.i386-r`svn info | grep Revision | cut -c 11-`.iso - md5sum ipfire-install-$VERSION.i386-r$SVN_REVISION.iso > ipfire-install-$VERSION.i386-r$SVN_REVISION.iso.md5 - ncftpput -V -u $IPFIRE_FTP_USER_EXT -p $IPFIRE_FTP_PASS_EXT $IPFIRE_FTP_URL_EXT $IPFIRE_FTP_PATH_EXT/ ipfire-install-$VERSION.i386-r$SVN_REVISION.iso - ncftpput -V -u $IPFIRE_FTP_USER_EXT -p $IPFIRE_FTP_PASS_EXT $IPFIRE_FTP_URL_EXT $IPFIRE_FTP_PATH_EXT/ ipfire-install-$VERSION.i386-r$SVN_REVISION.iso.md5 - ncftpput -V -u $IPFIRE_FTP_USER_EXT -p $IPFIRE_FTP_PASS_EXT $IPFIRE_FTP_URL_EXT $IPFIRE_FTP_PATH_EXT/ ipfire-source-*-r$SVN_REVISION.tar.gz - if [ "$?" -eq "0" ]; then - echo -e "The ISO of Revision $SVN_REVISION was successfully uploaded to the ftp server." - else - echo -e "There was an error while uploading the iso to the ftp server." - exit 1 - fi + cat < .ftp-commands +mkdir $IPFIRE_FTP_PATH_EXT +ls -lah +quit +EOF + ncftp -u $IPFIRE_FTP_USER_EXT -p $IPFIRE_FTP_PASS_EXT $IPFIRE_FTP_URL_EXT < .ftp-commands + rm -f .ftp-commands + md5sum ipfire-install-$VERSION.i386.iso > ipfire-install-$VERSION.i386.iso.md5 + ncftpput -u $IPFIRE_FTP_USER_EXT -p $IPFIRE_FTP_PASS_EXT $IPFIRE_FTP_URL_EXT $IPFIRE_FTP_PATH_EXT/ ipfire-install-$VERSION.i386.iso + ncftpput -u $IPFIRE_FTP_USER_EXT -p $IPFIRE_FTP_PASS_EXT $IPFIRE_FTP_URL_EXT $IPFIRE_FTP_PATH_EXT/ ipfire-install-$VERSION.i386.iso.md5 + ncftpput -u $IPFIRE_FTP_USER_EXT -p $IPFIRE_FTP_PASS_EXT $IPFIRE_FTP_URL_EXT $IPFIRE_FTP_PATH_EXT/ ipfire-source-r$SVN_REVISION.tar.gz + ncftpput -u $IPFIRE_FTP_USER_EXT -p $IPFIRE_FTP_PASS_EXT $IPFIRE_FTP_URL_EXT $IPFIRE_FTP_PATH_EXT/ svn_status + if [ "$?" -eq "0" ]; then + echo -e "The iso of Revision $SVN_REVISION was successfully uploaded to $IPFIRE_FTP_URL_EXT$IPFIRE_FTP_PATH_EXT/." else - echo -e "File with name ipfire-install-$VERSION.i386-r$SVN_REVISION.iso already exists on the ftp server!" + echo -e "There was an error while uploading the iso to the ftp server." + exit 1 + fi + if [ "$3" = "--with-sources-cd" ]; then + ncftpput -u $IPFIRE_FTP_USER_EXT -p $IPFIRE_FTP_PASS_EXT $IPFIRE_FTP_URL_EXT $IPFIRE_FTP_PATH_EXT/ ipfire-sources-cd-$VERSION.$MACHINE.iso fi - rm -f ipfire-install-$VERSION.i386-r$SVN_REVISION.iso{,.md5} ;; paks) + cat < .ftp-commands +mkdir $IPFIRE_FTP_PATH_PAK +ls -lah +quit +EOF + ncftp -u $IPFIRE_FTP_USER_PAK -p $IPFIRE_FTP_PASS_PAK $IPFIRE_FTP_URL_PAK < .ftp-commands + rm -f .ftp-commands ncftpput -z -u $IPFIRE_FTP_USER_PAK -p $IPFIRE_FTP_PASS_PAK $IPFIRE_FTP_URL_PAK $IPFIRE_FTP_PATH_PAK/ packages/* if [ "$?" -eq "0" ]; then - echo -e "The packages were successfully uploaded to the ftp server." + echo -e "The packages were successfully uploaded to $IPFIRE_FTP_URL_PAK$IPFIRE_FTP_PATH_PAK/." else echo -e "There was an error while uploading the packages to the ftp server." exit 1 @@ -1481,28 +1544,34 @@ unattended) ### This is our procedure that will compile the IPFire by herself... echo "### UPDATE LOGS" update_logs - echo "### SAVING TIME" - export IPFIRE_START_TIME=`date` - echo "### RUNNING SVN-UPDATE" - $0 svn update - if [ $? -ne 0 ]; then - $0 mail SVNUPDATE - exit 1 - fi + if [ "$IPFIRE_REBUILD" -eq "0" ]; then + echo "### SAVING TIME" + export IPFIRE_START_TIME=`date` + + echo "### GETTING TOOLCHAIN" + $0 gettoolchain + + echo "### RUNNING SVN-UPDATE" + $0 svn update + if [ $? -ne 0 ]; then + $0 mail SVNUPDATE + exit 1 + fi - echo "### EXPORT SOURCES" - $0 svn dist - if [ $? -ne 0 ]; then - $0 mail SVNDIST - exit 1 - fi + echo "### EXPORT SOURCES" + $0 svn dist + if [ $? -ne 0 ]; then + $0 mail SVNDIST + exit 1 + fi - echo "### RUNNING PREFETCH" - $0 prefetch | grep -q "md5 difference" - if [ $? -eq 0 ]; then - $0 mail PREFETCH - exit 1 + echo "### RUNNING PREFETCH" + $0 prefetch | grep -q "md5 difference" + if [ $? -eq 0 ]; then + $0 mail PREFETCH + exit 1 + fi fi echo "### RUNNING BUILD" @@ -1512,6 +1581,10 @@ unattended) exit 1 fi + echo "### MAKING SOURCES-ISO" + echo "DISABLED by Delaco!" + #$0 sources-iso + echo "### UPLOADING ISO" $0 upload iso if [ $? -ne 0 ]; then @@ -1531,10 +1604,16 @@ unattended) exit 0 ;; batch) - if [ `screen -ls | grep batch` ]; then + if [ `screen -ls | grep -q ipfire` ]; then echo "Build is already running, sorry!" exit 1 else + if [ "$2" = "--rebuild" ]; then + export IPFIRE_REBUILD=1 + echo "REBUILD!" + else + export IPFIRE_REBUILD=0 + fi echo -n "IPFire-Batch-Build is starting..." screen -dmS ipfire $0 unattended if [ "$?" -eq "0" ]; then @@ -1543,14 +1622,19 @@ batch) echo ".ERROR!" exit 1 fi - #if [ "$2" -eq "-v" ]; then - # screen -x ipfire - #else - # echo "You may attach you with '-v'." - #fi 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 @@ -1564,14 +1648,7 @@ batch) $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 @@ -1580,7 +1657,11 @@ batch) $0 clean ;; "SVN: Commit") - $0 svn commit + echo "Are your sure to Update all Files to the Server (write: yes)?"; read input + if [ "$input" == "yes" ]; then + $0 svn commit + fi + $0 sync ;; "SVN: Update") $0 svn update