]> git.ipfire.org Git - ipfire-2.x.git/blobdiff - make.sh
Hinzugefuegt:
[ipfire-2.x.git] / make.sh
diff --git a/make.sh b/make.sh
index 5b690269133e2ba9de4b027de84e7429b376526e..3fd8fa041d3e82e2a886de4a7f23c42d923e403d 100644 (file)
--- a/make.sh
+++ b/make.sh
@@ -28,12 +28,14 @@ VERSION="2.0"                               # Version number
 SLOGAN="www.ipfire.eu"         # Software slogan
 CONFIG_ROOT=/var/ipfire                # Configuration rootdir
 NICE=10                                # Nice level
-MAX_RETRIES=3                          # prefetch/check loop
+MAX_RETRIES=1                          # prefetch/check loop
 KVER=`grep --max-count=1 VER lfs/linux | awk '{ print $3 }'`
 MACHINE=`uname -m`
 SVN_REVISION=`svn info | grep Revision | cut -c 11-`
 
-# Setzen des IPFire Builds
+IPFVER="full"                          # Which version should be compiled? (full|light|voice)
+
+# Set an information about the build number
 if [ -e ./.svn ]; then
        FIREBUILD=`cat .svn/entries |sed -n 's/^[ \t]*revision=\"// p' | sed -n 's/\".*$// p'`
 fi
@@ -95,7 +97,7 @@ prepareenv() {
     # Resetting our nice level                                                 #
     #                                                                          #
     ############################################################################
-    echo -ne "`date -u '+%b %e %T'`: Resetting our nice level to $NICE" | tee -a $LOGFILE
+    echo -ne "Resetting our nice level to $NICE" | tee -a $LOGFILE
     renice $NICE $$ > /dev/null
     if [ `nice` != "$NICE" ]; then
        beautify message FAIL
@@ -110,7 +112,7 @@ prepareenv() {
     # Checking if running as root user                                         #
     #                                                                          #
     ############################################################################
-    echo -ne "`date -u '+%b %e %T'`: Checking if we're running as root user" | tee -a $LOGFILE
+    echo -ne "Checking if we're running as root user" | tee -a $LOGFILE
     if [ `id -u` != 0 ]; then
        beautify message FAIL
        exiterror "Not building as root"
@@ -124,7 +126,7 @@ prepareenv() {
     # Checking for necessary temporary space                                   #
     #                                                                          #
     ############################################################################
-    echo -ne "`date -u '+%b %e %T'`: Checking for necessary space on disk $BASE_DEV" | tee -a $LOGFILE
+    echo -ne "Checking for necessary space on disk $BASE_DEV" | tee -a $LOGFILE
     BASE_DEV=`df -P -k $BASEDIR | tail -n 1 | awk '{ print $1 }'`
     BASE_ASPACE=`df -P -k $BASEDIR | tail -n 1 | awk '{ print $4 }'`
     if (( 2202000 > $BASE_ASPACE )); then
@@ -142,8 +144,6 @@ prepareenv() {
     # Building Linux From Scratch system                                       #
     #                                                                          #
     ############################################################################
-    echo "`date -u '+%b %e %T'`: Building Linux From Scratch system" | tee -a $LOGFILE
-
     # Set umask
     umask 022
 
@@ -170,12 +170,19 @@ prepareenv() {
 
     # Make some extra directories
     mkdir -p $BASEDIR/build/{tools,etc,usr/src} 2>/dev/null
+    mkdir -p $BASEDIR/build/{dev/{shm,pts},proc,sys}
     mkdir -p $BASEDIR/{cache,ccache} 2>/dev/null
-    mkdir -p $BASEDIR/build/dev/pts $BASEDIR/build/proc $BASEDIR/build/usr/src/{cache,config,doc,html,langs,lfs,log,src,ccache}
+    mkdir -p $BASEDIR/build/usr/src/{cache,config,doc,html,langs,lfs,log,src,ccache}
+
+    mknod -m 600 $BASEDIR/build/dev/console c 5 1 2>/dev/null
+    mknod -m 666 $BASEDIR/build/dev/null c 1 3 2>/dev/null
 
     # Make all sources and proc available under lfs build
+    mount --bind /dev            $BASEDIR/build/dev
     mount --bind /dev/pts        $BASEDIR/build/dev/pts
+    mount --bind /dev/shm        $BASEDIR/build/dev/shm
     mount --bind /proc           $BASEDIR/build/proc
+    mount --bind /sys            $BASEDIR/build/sys
     mount --bind $BASEDIR/cache  $BASEDIR/build/usr/src/cache
     mount --bind $BASEDIR/ccache $BASEDIR/build/usr/src/ccache
     mount --bind $BASEDIR/config $BASEDIR/build/usr/src/config
@@ -186,6 +193,9 @@ prepareenv() {
     mount --bind $BASEDIR/log    $BASEDIR/build/usr/src/log
     mount --bind $BASEDIR/src    $BASEDIR/build/usr/src/src
 
+    # This is a temporary hack!!!
+    cp -f /bin/hostname /tools/bin/hostname 2>/dev/null
+
     # Run LFS static binary creation scripts one by one
     export CCACHE_DIR=$BASEDIR/ccache
     export CCACHE_HASHDIR=1
@@ -206,6 +216,7 @@ buildtoolchain() {
     export PATH=$BASEDIR/build/usr/local/bin:$BASEDIR/build/tools/bin:$PATH
     lfsmake1 linux-libc-header
     lfsmake1 glibc
+    lfsmake1 cleanup-toolchain PASS=1
     lfsmake1 tcl
     lfsmake1 expect
     lfsmake1 dejagnu
@@ -229,7 +240,7 @@ buildtoolchain() {
     lfsmake1 tar
     lfsmake1 texinfo
     lfsmake1 util-linux
-    lfsmake1 cleanup-toolchain
+    lfsmake1 cleanup-toolchain PASS=2
     export PATH=$ORG_PATH
 }
 
@@ -237,105 +248,111 @@ buildbase() {
     LOGFILE="$BASEDIR/log/_build.base.log"
     export LOGFILE
     lfsmake2 stage2
-    lfsmake2 makedev
-    lfsmake2 linux
+#    lfsmake2 makedev
+    lfsmake2 linux-libc-header
     lfsmake2 man-pages
     lfsmake2 glibc
+    lfsmake2 cleanup-toolchain PASS=3
     lfsmake2 binutils
     lfsmake2 gcc
+    lfsmake2 berkeley
     lfsmake2 coreutils
-    lfsmake2 zlib
-    lfsmake2 mktemp
     lfsmake2 iana-etc
-    lfsmake2 findutils
-    lfsmake2 gawk
-    lfsmake2 ncurses
-    lfsmake2 vim
     lfsmake2 m4
     lfsmake2 bison
-    lfsmake2 less
-    lfsmake2 groff
+    lfsmake2 ncurses
+    lfsmake2 procps
     lfsmake2 sed
-    lfsmake2 flex
-    lfsmake2 gettext
-    lfsmake2 net-tools
-    lfsmake2 inetutils
+    lfsmake2 libtool
     lfsmake2 perl
-    lfsmake2 texinfo
+    lfsmake2 readline
+    lfsmake2 zlib
     lfsmake2 autoconf
     lfsmake2 automake
     lfsmake2 bash
-    lfsmake2 file
-    lfsmake2 libtool
     lfsmake2 bzip2
     lfsmake2 diffutils
-    lfsmake2 ed
-    lfsmake2 kbd
     lfsmake2 e2fsprogs
-    lfsmake2 grep
+    lfsmake2 file
+    lfsmake2 findutils
+    lfsmake2 flex
     lfsmake2 grub
+    lfsmake2 gawk
+    lfsmake2 gettext
+    lfsmake2 grep
+    lfsmake2 groff
     lfsmake2 gzip
-    lfsmake2 man
+    lfsmake2 inetutils
+    lfsmake2 iproute2
+    lfsmake2 kbd
+    lfsmake2 less
     lfsmake2 make
+    lfsmake2 man
+    lfsmake2 mktemp
     lfsmake2 modutils
     lfsmake2 patch
-    lfsmake2 procinfo
-    lfsmake2 procps
     lfsmake2 psmisc
     lfsmake2 shadow
     lfsmake2 sysklogd
     lfsmake2 sysvinit
     lfsmake2 tar
+    lfsmake2 texinfo
+    lfsmake2 udev
     lfsmake2 util-linux
+    lfsmake2 vim
 }
 
 buildipfire() {
   LOGFILE="$BASEDIR/log/_build.ipfire.log"
   export LOGFILE
+  ipfiremake inetutils
+  ipfiremake net-tools
+  ipfiremake ed
   ipfiremake configroot
   ipfiremake dhcp
   ipfiremake dhcpcd
   ipfiremake libusb
   ipfiremake libpcap
-  ipfiremake linux-atm
+# Temporary disabled.
+#  ipfiremake linux-atm
   ipfiremake ppp
   ipfiremake rp-pppoe
   ipfiremake unzip
-  ipfiremake linux                     PASS=ipfire SMP=installer
-  ipfiremake linux                     PASS=ipfire SMP=1
-  ipfiremake 3cp4218                   SMP=1
-  ipfiremake amedyn                    SMP=1
-  ipfiremake cxacru                    SMP=1
-  ipfiremake eagle                     SMP=1
-  ipfiremake cnx_pci                   SMP=1
-  ipfiremake fcdsl                     SMP=1
-  ipfiremake fcdsl2                    SMP=1
-  ipfiremake fcdslsl                   SMP=1
-  ipfiremake fcdslusb          SMP=1
-  ipfiremake fcdslslusb                SMP=1
-  ipfiremake fcpci                     SMP=1
-  ipfiremake fcclassic         SMP=1
-  ipfiremake pulsar                    SMP=1
-  ipfiremake unicorn                   SMP=1
-  ipfiremake promise-sata-300-tx       SMP=1
-  ipfiremake linux                     PASS=ipfire
-  ipfiremake 3cp4218   
-  ipfiremake amedyn    
-  ipfiremake cxacru    
-  ipfiremake eciadsl   
-  ipfiremake eagle     
-  ipfiremake speedtouch        
-  ipfiremake cnx_pci   
-  ipfiremake fcdsl     
-  ipfiremake fcdsl2    
-  ipfiremake fcdslsl   
-  ipfiremake fcdslusb  
-  ipfiremake fcdslslusb 
-  ipfiremake fcpci
-  ipfiremake fcclassic
-  ipfiremake pulsar    
-  ipfiremake unicorn
-  ipfiremake promise-sata-300-tx
+  ipfiremake linux                     PASS=installer
+  ipfiremake linux                     PASS=SMP
+#  ipfiremake 3cp4218          PASS=SMP
+#  ipfiremake amedyn                   PASS=SMP
+#  ipfiremake cxacru                   PASS=SMP
+#  ipfiremake eagle                    PASS=SMP
+#  ipfiremake cnx_pci          PASS=SMP
+#  ipfiremake fcdsl                    PASS=SMP
+#  ipfiremake fcdsl2                   PASS=SMP
+#  ipfiremake fcdslsl          PASS=SMP
+#  ipfiremake fcdslusb         PASS=SMP
+#  ipfiremake fcdslslusb               PASS=SMP
+#  ipfiremake fcpci                    PASS=SMP
+#  ipfiremake fcclassic                PASS=SMP
+#  ipfiremake pulsar                   PASS=SMP
+#  ipfiremake unicorn          PASS=SMP
+#  ipfiremake promise-sata-300-tx      PASS=SMP
+  ipfiremake linux
+#  ipfiremake 3cp4218  
+#  ipfiremake amedyn   
+#  ipfiremake cxacru   
+#  ipfiremake eciadsl  
+#  ipfiremake eagle    
+#  ipfiremake speedtouch       
+#  ipfiremake cnx_pci  
+#  ipfiremake fcdsl    
+#  ipfiremake fcdsl2   
+#  ipfiremake fcdslsl  
+#  ipfiremake fcdslusb         
+#  ipfiremake fcdslslusb 
+#  ipfiremake fcpci
+#  ipfiremake fcclassic
+#  ipfiremake pulsar   
+#  ipfiremake unicorn
+#  ipfiremake promise-sata-300-tx
   ipfiremake pcmcia-cs
   ipfiremake expat
   ipfiremake gdbm
@@ -665,10 +682,11 @@ ipfirepackages() {
 # See what we're supposed to do
 case "$1" in 
 build)
+       clear
        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/cleanup-toolchain-tools ]; then
+       if [ ! -f log/cleanup-toolchain-2-tools ]; then
                if [ ! -n "$PACKAGE" ]; then
                        beautify build_stage "Full toolchain compilation - Native GCC: `gcc --version | grep GCC | awk {'print $3'}`"
                        prepareenv
@@ -684,7 +702,8 @@ build)
                        fi
                fi
        else
-               echo "`date -u '+%b %e %T'`: Using installed toolchain" | tee -a $LOGFILE
+               echo -n "Using installed toolchain" | tee -a $LOGFILE
+               beautify message SKIP
                prepareenv
        fi
 
@@ -796,7 +815,7 @@ prefetch)
                mkdir $BASEDIR/cache
        fi
        mkdir -p $BASEDIR/log
-       echo "`date -u '+%b %e %T'`:Preload all source files" | tee -a $LOGFILE
+       echo -e "${BOLD}Preload all source files${NORMAL}" | tee -a $LOGFILE
        FINISHED=0
        cd $BASEDIR/lfs
        for c in `seq $MAX_RETRIES`; do
@@ -807,35 +826,42 @@ prefetch)
                cd $BASEDIR/lfs
                for i in *; do
                        if [ -f "$i" -a "$i" != "Config" ]; then
+                               echo -ne "Loading $i"
                                make -s -f $i LFS_BASEDIR=$BASEDIR MESSAGE="$i\t ($c/$MAX_RETRIES)" download >> $LOGFILE 2>&1
                                if [ $? -ne 0 ]; then
-                                       echo "Prefetch : wget error in lfs/$i"
+                                       beautify message FAIL
                                        FINISHED=0
                                else
                                        if [ $c -eq 1 ]; then
-                                               echo "Prefetch : lfs/$i files loaded"
+                                       beautify message DONE
                                        fi
                                fi
                        fi
                done
        done
-       echo "Prefetch : verifying md5sum"
+       echo -e "${BOLD}***Verifying md5sums${NORMAL}"
        ERROR=0
        for i in *; do
                if [ -f "$i" -a "$i" != "Config" ]; then
                        make -s -f $i LFS_BASEDIR=$BASEDIR MESSAGE="$i\t " md5 >> $LOGFILE 2>&1
                        if [ $? -ne 0 ]; then
-                               echo "md5 difference in lfs/$i"
+                               echo -ne "MD5 difference in lfs/$i"
+                               beautify message FAIL
                                ERROR=1
                        fi
                fi
        done
        if [ $ERROR -eq 0 ]; then
-               echo "Prefetch : all files md5sum match"
+               echo -ne "${BOLD}all files md5sum match${NORMAL}"
+               beautify message DONE
+       else
+               echo -ne "${BOLD}not all files were correctly download${NORMAL}"
+               beautify message FAIL
        fi
-       cd -
+       cd - >/dev/null 2>&1
        ;;
 toolchain)
+       clear
        prepareenv
        beautify build_stage "Toolchain compilation - Native GCC: `gcc --version | grep GCC | awk {'print $3'}`"
        buildtoolchain
@@ -937,9 +963,9 @@ svn)
                        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
+               svn export http://svn.ipfire.eu/svn/ipfire/trunk ipfire-source/ --force > /dev/null
+               svn log http://svn.ipfire.eu/svn/ipfire/trunk -r 1:$SVN_REVISION > ipfire-source/Changelog
+               #svn info http://svn.ipfire.eu/svn/ipfire/trunk -r $SVN_REVISION > ipfire-source/svn_status
                evaluate 1
 
                echo -en "REV $SVN_REVISION: Compressing files..."
@@ -966,6 +992,7 @@ uploadsrc)
        echo -e "Uploading cache to ftp server:"
        ncftpls -u $IPFIRE_FTP_USER_INT -p $IPFIRE_FTP_PASS_INT ftp://$IPFIRE_FTP_URL_INT$IPFIRE_FTP_PATH_INT/ > /var/tmp/ftplist
        for i in *; do
+               if [ "$i" == "toolchains" ]; then continue; fi
                grep -q $i /var/tmp/ftplist
                if [ "$?" -ne "0" ]; then
                        echo -ne "$i"
@@ -975,9 +1002,6 @@ uploadsrc)
                        else
                                beautify message FAIL
                        fi
-               else
-                       echo -ne "$i"
-                       beautify message SKIP
                fi
        done
        rm -f /var/tmp/ftplist
@@ -1084,7 +1108,10 @@ watch)
                ;;
        "SVN: Commit")
                if [ -f /usr/bin/mcedit ]; then
-                       export EDITOR=/usr/sbin/mcedit
+                       export EDITOR=/usr/bin/mcedit
+               fi
+               if [ -f /usr/bin/nano ]; then
+                       export EDITOR=/usr/bin/nano
                fi
                $0 svn commit
                $0 uploadsrc
@@ -1099,7 +1126,7 @@ watch)
                $0 svn diff
                ;;
        "Help")
-               echo "Usage: $0 {build|changelog|check|checkclean|clean|gettoolchain|newpak|prefetch|shell|sync|toolchain}"
+               echo "Usage: $0 {build|changelog|clean|gettoolchain|newpak|prefetch|shell|sync|toolchain}"
                cat doc/make.sh-usage
                ;;
        "LOG: Tail")