X-Git-Url: http://git.ipfire.org/?p=people%2Fpmueller%2Fipfire-2.x.git;a=blobdiff_plain;f=tools%2Fmake-functions;h=2bd85f166a6617df86102a92ec767f7a2fb94a5e;hp=147cd4956e06b16d21512a984d44aff490527225;hb=0381e7a69791a1be529fcb36f714184dd12dcbbe;hpb=8f55c54e7453e29a41d59916dc049b67ca966637 diff --git a/tools/make-functions b/tools/make-functions index 147cd4956e..2bd85f166a 100644 --- a/tools/make-functions +++ b/tools/make-functions @@ -1,9 +1,28 @@ #!/bin/bash -############################################################################ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2010 IPFire Team # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see . # +# # +############################################################################### +############################################################################### # # Beautifying variables & presentation & input output interface # -############################################################################ +############################################################################### ## Screen Dimentions # Find current screen size @@ -123,7 +142,13 @@ beautify() ;; build_end) BUILD_TIME_END=`date +%s` - echo -ne "${DONE}***Build is finished now and took $[ $BUILD_TIME_END - $BUILD_TIME_START ] secs!${NORMAL}\n" + seconds=$[ $BUILD_TIME_END - $BUILD_TIME_START ] + hours=$((seconds / 3600)) + seconds=$((seconds % 3600)) + minutes=$((seconds / 60)) + seconds=$((seconds % 60)) + + echo -ne "${DONE}***Build is finished now and took $hours hour(s) $minutes minute(s) $seconds second(s)!${NORMAL}\n" ;; make_pkg) echo "$2" | while read PKG_VER PROGRAM OPTIONS @@ -240,12 +265,13 @@ entershell() { exiterror "No such file or directory: $BASEDIR/build/usr/src/lfs/" fi echo "Entering to a shell inside LFS chroot, go out with exit" - chroot $LFS /tools/bin/env -i HOME=/root TERM=$TERM PS1='\u:\w\$ ' \ + $linux32 chroot $LFS /tools/bin/env -i HOME=/root TERM=$TERM PS1='\u:\w\$ ' \ PATH=/usr/local/bin:/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin \ VERSION=$VERSION CONFIG_ROOT=$CONFIG_ROOT \ NAME="$NAME" SNAME="$SNAME" SLOGAN="$SLOGAN" \ CFLAGS="$CF2LAGS" CXXFLAGS="$CXX2FLAGS" \ CCACHE_DIR=/usr/src/ccache \ + CCACHE_COMPRESS=1 \ CCACHE_HASHDIR=1 \ KVER=$KVER \ BUILDTARGET="$BUILDTARGET" MACHINE="$MACHINE" \ @@ -337,14 +363,14 @@ lfsmake2() { [ $? == 1 ] && return 0 local PKG_TIME_START=`date +%s` - chroot $LFS /tools/bin/env -i HOME=/root \ + $linux32 chroot $LFS /tools/bin/env -i HOME=/root \ TERM=$TERM PS1='\u:\w\$ ' \ PATH=/usr/local/bin:/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin \ VERSION=$VERSION \ CONFIG_ROOT=$CONFIG_ROOT \ NAME="$NAME" SNAME="$SNAME" SLOGAN="$SLOGAN" \ CFLAGS="$C2FLAGS" CXXFLAGS="$CXX2FLAGS" \ - CCACHE_DIR=/usr/src/ccache CCACHE_HASHDIR=1 \ + CCACHE_DIR=/usr/src/ccache CCACHE_COMPRESS=1 CCACHE_HASHDIR=1 \ KVER=$KVER MAKETUNING=$MAKETUNING \ BUILDTARGET="$BUILDTARGET" MACHINE="$MACHINE" \ IPFVER="$IPFVER" \ @@ -368,14 +394,15 @@ ipfiremake() { [ $? == 1 ] && return 0 local PKG_TIME_START=`date +%s` - chroot $LFS /tools/bin/env -i HOME=/root \ + $linux32 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 \ + CORE=$CORE \ CONFIG_ROOT=$CONFIG_ROOT \ NAME="$NAME" SNAME="$SNAME" SLOGAN="$SLOGAN" \ CFLAGS="$C2FLAGS" CXXFLAGS="$CXX2FLAGS" \ - CCACHE_DIR=/usr/src/ccache CCACHE_HASHDIR=1 \ + CCACHE_DIR=/usr/src/ccache CCACHE_COMPRESS=1 CCACHE_HASHDIR=1 \ KVER=$KVER MAKETUNING=$MAKETUNING \ BUILDTARGET="$BUILDTARGET" MACHINE="$MACHINE" \ IPFVER="$IPFVER" \ @@ -395,25 +422,31 @@ ipfiremake() { } ipfiredist() { - if [ -f $BASEDIR/build/usr/src/lfs/$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\$ ' \ - PATH=/usr/local/bin:/bin:/usr/bin:/sbin:/usr/sbin \ - VERSION=$VERSION \ - CONFIG_ROOT=$CONFIG_ROOT \ - NAME="$NAME" SNAME="$SNAME" SLOGAN="$SLOGAN" \ - CFLAGS="$C2FLAGS" CXXFLAGS="$CXX2FLAGS" \ - CCACHE_DIR=/usr/src/ccache CCACHE_HASHDIR=1 \ - KVER=$KVER IPFVER="$IPFVER" \ - BUILDTARGET="$BUILDTARGET" MACHINE="$MACHINE" \ - /bin/bash -x -c "cd /usr/src/lfs && \ - make -f $1 LFS_BASEDIR=/usr/src dist" >>$LOGFILE 2>&1 - if [ $? -ne 0 ]; then - exiterror "Packaging $1" - fi + lfsmakecommoncheck $* + [ $? == 1 ] && return 0 + + local PKG_TIME_START=`date +%s` + 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 \ + CONFIG_ROOT=$CONFIG_ROOT \ + NAME="$NAME" SNAME="$SNAME" SLOGAN="$SLOGAN" \ + CFLAGS="$C2FLAGS" CXXFLAGS="$CXX2FLAGS" \ + CCACHE_DIR=/usr/src/ccache CCACHE_COMPRESS=1 CCACHE_HASHDIR=1 \ + KVER=$KVER IPFVER="$IPFVER" \ + BUILDTARGET="$BUILDTARGET" MACHINE="$MACHINE" \ + /bin/bash -x -c "cd /usr/src/lfs && \ + make -f $1 LFS_BASEDIR=/usr/src dist" >>$LOGFILE 2>&1 + + local COMPILE_SUCCESS=$? + local PKG_TIME_END=`date +%s` + + if [ $COMPILE_SUCCESS -ne 0 ]; then + beautify result FAIL $[ $PKG_TIME_END - $PKG_TIME_START ] + exiterror "Packaging $*"; else - exiterror "No such file or directory: $BASEDIR/build/usr/src/lfs/$1" + beautify result DONE $[ $PKG_TIME_END - $PKG_TIME_START ] fi return 0 } @@ -423,7 +456,7 @@ installmake() { [ $? == 1 ] && return 0 local PKG_TIME_START=`date +%s` - chroot $LFS /tools/bin/env -i HOME=/root \ + $linux32 chroot $LFS /tools/bin/env -i HOME=/root \ TERM=$TERM PS1='\u:\w\$ ' \ PATH=/opt/i586-uClibc/i586-linux-uclibc/bin:/opt/i586-uClibc/bin:/usr/local/bin:/bin:/usr/bin:/sbin:/usr/sbin \ VERSION=$VERSION \ @@ -431,7 +464,7 @@ installmake() { LFS_PASS="install" \ NAME="$NAME" SNAME="$SNAME" SLOGAN="$SLOGAN" \ CFLAGS="-Os" CXXFLAGS="-Os" \ - CCACHE_DIR=/usr/src/ccache CCACHE_HASHDIR=1 \ + CCACHE_DIR=/usr/src/ccache CCACHE_COMPRESS=1 CCACHE_HASHDIR=1 \ KVER=$KVER IPFVER="$IPFVER" \ BUILDTARGET="$BUILDTARGET" MACHINE="$MACHINE" \ /bin/bash -x -c "cd /usr/src/lfs && \ @@ -461,28 +494,29 @@ batch_script() { if [ "$IPFIRE_REBUILD" -eq "0" ]; then export IPFIRE_START_TIME=`date` + + $0 clean evaluate 1 - echo "### RUNNING SVN-UPDATE" - $0 svn update - evaluate 1 mail_me SVNUPDATE + $0 git update --force + evaluate 1 mail_me UPDATE echo "### EXPORT SOURCES" - $0 svn dist - evaluate 1 mail_me SVNDIST + $0 git dist + evaluate 1 mail_me DIST fi echo "### RUNNING BUILD" - $0 build --devel + $0 build evaluate 1 mail_me ERROR echo "### UPLOADING ISO" $0 upload iso evaluate 1 mail_me ISO -# echo -ne "### UPLOADING PAKS" -# $0 upload paks -# evaluate 1 mail_me PAKS + echo -ne "### UPLOADING PAKS" + $0 upload paks + evaluate 1 mail_me PAKS echo -ne "${BOLD}***SUCCESS!${NORMAL}" mail_me success @@ -496,13 +530,13 @@ watch_screen() { } mail_me() { - chmod 755 tools/sendEmail - ATTACHMENT=/tmp/ipfire-build-logs-R$SVN_REVISION.tar.gz + echo "From: $MAIL_FROM" > /tmp/ipfire_mail_body.$$ + echo "To: $MAIL_TO" >> /tmp/ipfire_mail_body.$$ case "$1" in success) - SUBJECT="SUCCESS: IPFIRE-BUILD R$SVN_REVISION on `hostname`" - cat < /tmp/ipfire_mail_body -Building IPFire on `hostname` in Revision $SVN_REVISION was successfull! + cat <> /tmp/ipfire_mail_body.$$ +Subject: SUCCESS: IPFIRE-BUILD on `hostname` +Building IPFire on `hostname` was successfull! You can find the ISO on your ftp server if you told the script where it is. Statistics: @@ -517,8 +551,8 @@ END echo -ne "${BOLD}***Sending success message${NORMAL}" ;; *) - SUBJECT="ERROR $1: IPFIRE-BUILD R$SVN_REVISION on `hostname`" - cat < /tmp/ipfire_mail_body + cat <> /tmp/ipfire_mail_body.$$ +Subject: ERROR $1: IPFIRE-BUILD on `hostname` When I was building IPFire on `hostname`, I have found an ERROR with name $1! Here you can see the logs and detect the reason for this error. @@ -534,22 +568,15 @@ END echo -ne "${BOLD}***Sending error message${NORMAL}" ;; esac - tar cfz $ATTACHMENT log/_build* - cat /tmp/ipfire_mail_body | tools/sendEmail -q \ - -f $MAIL_USER \ - -t $MAIL_TO \ - -u $SUBJECT \ - -s $MAIL_SERVER:25 \ - -xu $MAIL_USER \ - -xp $MAIL_PASS \ - -l log/_build.mail.log \ - -a $ATTACHMENT # -v + +sleep 15 + python tools/sendEmail < /tmp/ipfire_mail_body.$$ if [ "$?" -eq "0" ]; then beautify message DONE else beautify message FAIL fi - rm -f /tmp/ipfire_mail_body $ATTACHMENT + rm -f /tmp/ipfire_mail_body.$$ } make_config() { @@ -620,6 +647,8 @@ make_config() { echo -ne "You should enter a mail server to login...\n" echo -ne "Please type the url: " read MAIL_SERVER + echo -ne "Please type where the email is from: " + read MAIL_FROM echo -ne "Please type the username: " read MAIL_USER echo -ne "Please type the password (hidden): " @@ -640,6 +669,7 @@ FTP_CACHE_USER=$FTP_CACHE_USER FTP_CACHE_PASS=$FTP_CACHE_PASS ### mail reports MAIL_TO="$MAIL_TO" +MAIL_FROM=$MAIL_FROM MAIL_SERVER=$MAIL_SERVER MAIL_USER=$MAIL_USER MAIL_PASS=$MAIL_PASS @@ -698,8 +728,12 @@ update_langs() { chmod 755 $BASEDIR/tools/{check_strings.pl,sort_strings.pl,check_langs.sh} $BASEDIR/tools/sort_strings.pl en $BASEDIR/tools/sort_strings.pl de + $BASEDIR/tools/sort_strings.pl fr + $BASEDIR/tools/sort_strings.pl es $BASEDIR/tools/check_strings.pl en > $BASEDIR/doc/language_issues.en $BASEDIR/tools/check_strings.pl de > $BASEDIR/doc/language_issues.de + $BASEDIR/tools/check_strings.pl fr > $BASEDIR/doc/language_issues.fr + $BASEDIR/tools/check_strings.pl es > $BASEDIR/doc/language_issues.es $BASEDIR/tools/check_langs.sh > $BASEDIR/doc/language_missings beautify message DONE }