]> git.ipfire.org Git - ipfire-2.x.git/blobdiff - make.sh
Zwischencommit fuer LFS.
[ipfire-2.x.git] / make.sh
diff --git a/make.sh b/make.sh
index 5b690269133e2ba9de4b027de84e7429b376526e..1d8ad9824a2f4316bed47409c83b16eec47be9bd 100644 (file)
--- a/make.sh
+++ b/make.sh
@@ -28,7 +28,7 @@ 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-`
@@ -95,7 +95,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 +110,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 +124,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 +142,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 +168,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
@@ -206,6 +211,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 +235,7 @@ buildtoolchain() {
     lfsmake1 tar
     lfsmake1 texinfo
     lfsmake1 util-linux
-    lfsmake1 cleanup-toolchain
+    lfsmake1 cleanup-toolchain PASS=2
     export PATH=$ORG_PATH
 }
 
@@ -237,56 +243,63 @@ 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
+####
+#    lfsmake2 net-tools
+#    lfsmake2 inetutils
+#    lfsmake2 ed
+#    lfsmake2 procinfo
 }
 
 buildipfire() {
@@ -665,10 +678,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 +698,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 +811,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 +822,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 +959,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..."
@@ -975,9 +997,6 @@ uploadsrc)
                        else
                                beautify message FAIL
                        fi
-               else
-                       echo -ne "$i"
-                       beautify message SKIP
                fi
        done
        rm -f /var/tmp/ftplist
@@ -1084,7 +1103,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 +1121,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")