]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blobdiff - make.sh
Don't report an error if snort was not started at shutdown.
[people/pmueller/ipfire-2.x.git] / make.sh
diff --git a/make.sh b/make.sh
index 7f62482ece9cd6dca143fe5436e6b8354d556988..9eca589d5c11563f58cd57ee8767ff19eaf20558 100755 (executable)
--- a/make.sh
+++ b/make.sh
 ############################################################################
 #
 
-NAME="IPFire"                                                                          # Software name
-SNAME="ipfire"                                                                 # Short name
-VERSION="2.3-test"
-GIT_BRANCH=master:master                                                                               # Version number
-SLOGAN="www.ipfire.org"                                        # Software slogan
-CONFIG_ROOT=/var/ipfire                                        # Configuration rootdir
-NICE=10                                                                                                        # Nice level
-MAX_RETRIES=1                                                                          # prefetch/check loop
+NAME="IPFire"                                                  # Software name
+SNAME="ipfire"                                                 # Short name
+VERSION="2.7"                                                  # Version number
+CORE="38"                                                      # Core Level (Filename)
+PAKFIRE_CORE="38"                                              # Core Level (PAKFIRE)
+GIT_BRANCH=`git status | head -n1 | cut -d" " -f4`             # Git Branch
+SLOGAN="www.ipfire.org"                                                # Software slogan
+CONFIG_ROOT=/var/ipfire                                                # Configuration rootdir
+NICE=10                                                                # Nice level
+MAX_RETRIES=1                                                  # prefetch/check loop
+BUILD_IMAGES=1                                                 # Build USB, Flash and Xen Images
 KVER=`grep --max-count=1 VER lfs/linux | awk '{ print $3 }'`
 MACHINE=`uname -m`
-GIT_TAG=$(git tag | tail -1)
-
+GIT_TAG=$(git tag | tail -1)                                   # Git Tag
+GIT_LASTCOMMIT=$(git log | head -n1 | cut -d" " -f2 |head -c8) # Last commit
+TOOLCHAINVER=2
 IPFVER="full"                          # Which versions should be compiled? (full|devel)
 
 # Debian specific settings
@@ -177,7 +181,9 @@ prepareenv() {
     # Setup environment
     set +h
     LC_ALL=POSIX
-    MAKETUNING="-j6"
+    if [ -z $MAKETUNING ]; then
+       MAKETUNING="-j6"
+    fi
     export LFS LC_ALL CFLAGS CXXFLAGS MAKETUNING
     unset CC CXX CPP LD_LIBRARY_PATH LD_PRELOAD
 
@@ -304,7 +310,7 @@ buildbase() {
     lfsmake2 make
     lfsmake2 man
     lfsmake2 mktemp
-    lfsmake2 modutils
+    lfsmake2 module-init-tools
     lfsmake2 mtd
     lfsmake2 net-tools
     lfsmake2 patch
@@ -332,34 +338,43 @@ buildipfire() {
   ipfiremake libpcap
   ipfiremake ppp
   ipfiremake rp-pppoe
+  ipfiremake pptp
   ipfiremake unzip
-#  ipfiremake linux                    SMP=1
-#  ipfiremake linux-fusion             SMP=1
-#  ipfiremake ipp2p                    SMP=1
-#  ipfiremake atl2                     SMP=1
-#  ipfiremake kqemu                    SMP=1
-#  ipfiremake v4l-dvb                  SMP=1
-#  ipfiremake madwifi                    SMP=1
-#  ipfiremake alsa             KMOD=1  SMP=1
-#  ipfiremake sane             KMOD=1  SMP=1
-#  ipfiremake openswan         KMOD=1  SMP=1
+  ipfiremake which
+  ipfiremake xz
+  ipfiremake linux-firmware
+  ipfiremake linux                     XEN=1
+  ipfiremake kqemu                     XEN=1
+  ipfiremake v4l-dvb                   XEN=1
+  ipfiremake madwifi                   XEN=1
+  ipfiremake dahdi                     XEN=1 KMOD=1
+  ipfiremake cryptodev                 XEN=1
+  ipfiremake compat-wireless           XEN=1
+  ipfiremake r8169                     XEN=1
+  ipfiremake r8168                     XEN=1
+  ipfiremake r8101                     XEN=1
+  ipfiremake e1000                     XEN=1
+  ipfiremake e1000e                    XEN=1
   ipfiremake linux
-  ipfiremake linux-fusion
-  ipfiremake atl2
-  ipfiremake r8168
-  ipfiremake r8169
   ipfiremake kqemu
+  ipfiremake kvm-kmod
   ipfiremake v4l-dvb
   ipfiremake madwifi
-  ipfiremake alsa              KMOD=1
-  ipfiremake sane              KMOD=1
-  ipfiremake openswan          KMOD=1
+  ipfiremake alsa                      KMOD=1
+  ipfiremake dahdi                     KMOD=1
+  ipfiremake cryptodev
+  ipfiremake compat-wireless
+  ipfiremake r8169
+  ipfiremake r8168
+  ipfiremake r8101
+  ipfiremake e1000
+  ipfiremake e1000e
   ipfiremake pkg-config
   ipfiremake linux-atm
   ipfiremake cpio
   ipfiremake klibc
   ipfiremake mkinitcpio
-  ipfiremake udev                              KLIBC=1
+  ipfiremake udev                      KLIBC=1
   ipfiremake expat
   ipfiremake gdbm
   ipfiremake gmp
@@ -368,6 +383,7 @@ buildipfire() {
   ipfiremake curl
   ipfiremake python
   ipfiremake libnet
+  ipfiremake libnl
   ipfiremake libidn
   ipfiremake libjpeg
   ipfiremake libpng
@@ -417,12 +433,11 @@ buildipfire() {
   ipfiremake whatmask
   ipfiremake iptables
   ipfiremake libupnp
-  ipfiremake linux-igd
   ipfiremake ipaddr
   ipfiremake iptstate
   ipfiremake iputils
   ipfiremake l7-protocols
-  ipfiremake mISDN
+  ipfiremake mISDNuser
   ipfiremake capi4k-utils
   ipfiremake hwdata
   ipfiremake kudzu
@@ -515,15 +530,9 @@ buildipfire() {
   ipfiremake lame
   ipfiremake sox
   ipfiremake libshout
-  ipfiremake icecast
-  ipfiremake icegenerator
-  ipfiremake mpd
-  ipfiremake mpc
   ipfiremake xvid
   ipfiremake libmpeg2
   ipfiremake cmake
-  ipfiremake libpri
-  ipfiremake asterisk
   ipfiremake gnump3d
   ipfiremake libsigc++
   ipfiremake applejuice
@@ -543,22 +552,22 @@ buildipfire() {
   ipfiremake tripwire
   ipfiremake sysstat
   ipfiremake vsftpd
-  ipfiremake which
-  ipfiremake openswan
+  ipfiremake strongswan
   ipfiremake lsof
   ipfiremake centerim
   ipfiremake br2684ctl
   ipfiremake pcmciautils
   ipfiremake lm_sensors
+  ipfiremake liboping
   ipfiremake collectd
   ipfiremake lcd4linux
-  ipfiremake tcptrack
   ipfiremake teamspeak
   ipfiremake elinks
   ipfiremake igmpproxy
   ipfiremake fbset
   ipfiremake sdl
   ipfiremake qemu
+  ipfiremake qemu-kqemu
   ipfiremake sane
   ipfiremake netpbm
   ipfiremake phpSANE
@@ -569,21 +578,27 @@ buildipfire() {
   ipfiremake freefont
   ipfiremake directfb
   ipfiremake dfb++
+  ipfiremake faad2
   ipfiremake ffmpeg
   ipfiremake videolan
   ipfiremake vdr
   ipfiremake w_scan
+  ipfiremake icecast
+  ipfiremake icegenerator
+  ipfiremake mpd
+  ipfiremake libmpdclient
+  ipfiremake mpc
   ipfiremake git
   ipfiremake squidclamav
   ipfiremake bc
-  ipfiremake esniper
   ipfiremake vnstat
   ipfiremake vnstati
+  ipfiremake iw
   ipfiremake wpa_supplicant
   ipfiremake hostapd
   ipfiremake urlgrabber
   ipfiremake syslinux
-  ipfiremake tftp-hpa
+  ipfiremake tftpd
   ipfiremake cpufrequtils
   ipfiremake dbus
   ipfiremake bluetooth
@@ -591,6 +606,39 @@ buildipfire() {
   ipfiremake apcupsd
   ipfiremake iperf
   ipfiremake netcat
+  ipfiremake 7zip
+  ipfiremake lynis
+  ipfiremake splix
+  ipfiremake streamripper
+  ipfiremake sshfs
+  ipfiremake sqlite
+  ipfiremake taglib
+  ipfiremake mediatomb
+  ipfiremake sslh
+  ipfiremake perl-gettext
+  ipfiremake vdradmin
+  ipfiremake miau
+  ipfiremake netsnmpd
+  ipfiremake perl-DBI
+  ipfiremake perl-DBD-mysql
+  ipfiremake cacti
+  ipfiremake icecc
+  ipfiremake open-vm-tools
+  ipfiremake nagiosql
+  ipfiremake iftop
+  ipfiremake motion
+  ipfiremake joe
+  ipfiremake nut
+  ipfiremake watchdog
+  ipfiremake libpri
+  ipfiremake dahdi
+  ipfiremake asterisk
+  ipfiremake lcr
+  ipfiremake usb_modeswitch
+  ipfiremake zerofree
+  ipfiremake mdadm
+  ipfiremake eject
+  ipfiremake pound
   echo Build on $HOSTNAME > $BASEDIR/build/var/ipfire/firebuild
   cat /proc/version >> $BASEDIR/build/var/ipfire/firebuild
   echo >> $BASEDIR/build/var/ipfire/firebuild
@@ -599,6 +647,12 @@ buildipfire() {
   git status >> $BASEDIR/build/var/ipfire/firebuild
   echo >> $BASEDIR/build/var/ipfire/firebuild
   cat /proc/cpuinfo >> $BASEDIR/build/var/ipfire/firebuild
+  echo $PAKFIRE_CORE > $BASEDIR/build/opt/pakfire/db/core/mine
+  if [ "$GIT_BRANCH" = "master" ]; then
+       echo "$NAME $VERSION - (Development Build: $GIT_LASTCOMMIT)" > $BASEDIR/build/etc/system-release
+  else
+       echo "$NAME $VERSION - $GIT_BRANCH" > $BASEDIR/build/etc/system-release
+  fi
 }
 
 buildinstaller() {
@@ -667,19 +721,28 @@ buildpackages() {
   $0 git log
 
   # Create images for install
-       ipfiremake cdrom ED=full
-       
+       ipfiremake cdrom ED=$IPFVER
+
   # Check if there is a loop device for building in virtual environments
-  if [ -e /dev/loop/0 ] || [ -e /dev/loop0 ]; then
-       ipfiremake usb-stick
+  if [ $BUILD_IMAGES == 1 ] &&  ([ -e /dev/loop/0 ] || [ -e /dev/loop0 ]); then
+       ipfiremake usb-stick ED=$IPFVER
+       ipfiremake flash-images ED=$IPFVER
   fi
 
-  # Create updater package
-  ipfiremake updater
   mv $LFS/install/images/{*.iso,*.tgz,*.img.gz,*.bz2} $BASEDIR >> $LOGFILE 2>&1
 
   ipfirepackages
 
+  # Check if there is a loop device for building in virtual environments
+  if [ $BUILD_IMAGES == 1 ] && ([ -e /dev/loop/0 ] || [ -e /dev/loop0 ]); then
+        cp -f $BASEDIR/packages/linux-xen-*.ipfire $LFS/install/packages/
+        cp -f $BASEDIR/packages/meta-linux-xen $LFS/install/packages/
+       ipfiremake xen-image ED=$IPFVER
+       rm -rf $LFS/install/packages/linux-xen-*.ipfire
+       rm -rf $LFS/install/packages/meta-linux-xen
+  fi
+  mv $LFS/install/images/*.bz2 $BASEDIR >> $LOGFILE 2>&1
+
   # Cleanup
   stdumount
   rm -rf $BASEDIR/build/tmp/*
@@ -720,7 +783,7 @@ 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`
+       PACKAGE=`ls -v -r $BASEDIR/cache/toolchains/$SNAME-$VERSION-toolchain-$TOOLCHAINVER-$BUILDMACHINE.tar.gz 2> /dev/null | head -n 1`
        #only restore on a clean disk
        if [ ! -f log/cleanup-toolchain-2-tools ]; then
                if [ ! -n "$PACKAGE" ]; then
@@ -849,25 +912,25 @@ toolchain)
        buildtoolchain
        BUILDMACHINE=`uname -m`
        echo "`date -u '+%b %e %T'`: Create toolchain tar.gz for $BUILDMACHINE" | tee -a $LOGFILE
-       test -d $BASEDIR/cache/toolchains || mkdir $BASEDIR/cache/toolchains
-       cd $BASEDIR && tar -zc --exclude='log/_build.*.log' -f cache/toolchains/$SNAME-$VERSION-toolchain-$BUILDMACHINE.tar.gz \
+       test -d $BASEDIR/cache/toolchains || mkdir -p $BASEDIR/cache/toolchains
+       cd $BASEDIR && tar -zc --exclude='log/_build.*.log' -f cache/toolchains/$SNAME-$VERSION-toolchain-$TOOLCHAINVER-$BUILDMACHINE.tar.gz \
                build/{bin,etc,usr/bin,usr/local} \
                build/tools/{bin,etc,*-linux-gnu,include,lib,libexec,sbin,share,var} \
                log >> $LOGFILE
-       md5sum cache/toolchains/$SNAME-$VERSION-toolchain-$BUILDMACHINE.tar.gz \
-               > cache/toolchains/$SNAME-$VERSION-toolchain-$BUILDMACHINE.md5
+       md5sum cache/toolchains/$SNAME-$VERSION-toolchain-$TOOLCHAINVER-$BUILDMACHINE.tar.gz \
+               > cache/toolchains/$SNAME-$VERSION-toolchain-$TOOLCHAINVER-$BUILDMACHINE.md5
        stdumount
        ;;
 gettoolchain)
        BUILDMACHINE=`uname -m`
        # arbitrary name to be updated in case of new toolchain package upload
-       PACKAGE=$SNAME-$VERSION-toolchain-$BUILDMACHINE
+       PACKAGE=$SNAME-$VERSION-toolchain-$TOOLCHAINVER-$BUILDMACHINE
        if [ ! -f $BASEDIR/cache/toolchains/$PACKAGE.tar.gz ]; then
                URL_TOOLCHAIN=`grep URL_TOOLCHAIN lfs/Config | awk '{ print $3 }'`
-               test -d $BASEDIR/cache/toolchains || mkdir $BASEDIR/cache/toolchains
+               test -d $BASEDIR/cache/toolchains || mkdir -p $BASEDIR/cache/toolchains
                echo "`date -u '+%b %e %T'`: Load toolchain tar.gz for $BUILDMACHINE" | tee -a $LOGFILE
                cd $BASEDIR/cache/toolchains
-               wget $URL_TOOLCHAIN/$PACKAGE.tar.gz $URL_TOOLCHAIN/$PACKAGE.md5 >& /dev/null
+               wget -U "IPFireSourceGrabber/2.x" $URL_TOOLCHAIN/$PACKAGE.tar.gz $URL_TOOLCHAIN/$PACKAGE.md5 >& /dev/null
                if [ $? -ne 0 ]; then
                        echo "`date -u '+%b %e %T'`: error downloading $PACKAGE toolchain for $BUILDMACHINE machine" | tee -a $LOGFILE
                else
@@ -900,6 +963,8 @@ othersrc)
 git)
        case "$2" in
          update|up)
+                       ## REMOVES ALL UNCOMMITTED CHANGES!
+                       [ "$3" == "--force" ] && git checkout -f
                        git pull
                ;;
          commit|ci)
@@ -933,7 +998,7 @@ git)
                [ -z $GIT_USER ] && exiterror "You have to setup GIT_USER first."
                        GIT_URL="ssh://${GIT_USER}@git.ipfire.org/pub/git/ipfire-2.x"
                        
-               git push ${GIT_URL} ${GIT_BRANCH}
+               git push ${GIT_URL} $3
                ;;
          log)
                [ -z $GIT_TAG ]  || LAST_TAG=$GIT_TAG
@@ -945,70 +1010,24 @@ git)
        ;;
 uploadsrc)
        PWD=`pwd`
+       if [ -z $IPFIRE_USER ]; then
+               echo -n "You have to setup IPFIRE_USER first. See .config for details."
+               beautify message FAIL
+               exit 1
+       fi
+       URL_SOURCE=$(grep URL_SOURCE lfs/Config | awk '{ print $3 }')
+       REMOTE_FILES=$(echo "ls -1" | sftp -C ${IPFIRE_USER}@${URL_SOURCE})
+
        cd $BASEDIR/cache/
-       echo -e "Uploading cache to ftp server:"
-       ncftpls -u $FTP_CACHE_USER -p $FTP_CACHE_PASS ftp://$FTP_CACHE_URL/$FTP_CACHE_PATH/ > /tmp/ftplist
-       for i in *; do
-               if [ "$(basename $i)" == "toolchains" ]; then continue; fi
-               grep -q $(basename $i) /tmp/ftplist
-               if [ "$?" -ne "0" ]; then
-                       echo -ne "$(basename $i)"
-                       ncftpput -u $FTP_CACHE_USER -p $FTP_CACHE_PASS $FTP_CACHE_URL $FTP_CACHE_PATH/ $(basename $i)
-                       if [ "$?" -ne "0" ]; then
-                               beautify message FAIL
-                       fi
-               fi
+       for file in $(ls -1); do
+               grep -q "$file" <<<$REMOTE_FILES && continue
+               NEW_FILES="$NEW_FILES $file"
        done
-       rm -f /tmp/ftplist
+       [ -n "$NEW_FILES" ] && scp -2 $NEW_FILES ${IPFIRE_USER}@${URL_SOURCE}
+       cd $BASEDIR
        cd $PWD
        exit 0
        ;;
-upload)
-       FTP_ISO_PORT=`echo "$FTP_ISO_URL" | awk -F: '{ print $2 }'`
-       FTP_ISO_URL=`echo "$FTP_ISO_URL" | awk -F: '{ print $1 }'`
-       if [ -z $FTP_ISO_PORT ]; then
-           FTP_ISO_PORT=21
-       fi
-       cat <<EOF > .ftp-commands
-mkdir -p $FTP_ISO_PATH$SVN_REVISION
-mkdir -p $FTP_ISO_PATH$SVN_REVISION/paks
-quit
-EOF
-       ncftp -u $FTP_ISO_USER -p $FTP_ISO_PASS -P $FTP_ISO_PORT $FTP_ISO_URL < .ftp-commands
-       rm -f .ftp-commands
-               
-       case "$2" in
-         iso)
-               echo -e "Uploading the iso to $FTP_ISO_PATH/$SVN_REVISION."
-
-               md5sum ipfire-$VERSION.$MACHINE-full.iso > ipfire-$VERSION.$MACHINE-full.iso.md5
-               for i in svn_status ipfire-source-r$SVN_REVISION.tar.gz ipfire-$VERSION.$MACHINE-full.iso ipfire-$VERSION.$MACHINE-full.iso.md5 ipfire-$VERSION.$MACHINE-devel.iso ipfire-$VERSION.$MACHINE-devel.iso.md5; do
-                               if [ -e "$i" ]; then
-                           ncftpput -u $FTP_ISO_USER -p $FTP_ISO_PASS -P $FTP_ISO_PORT $FTP_ISO_URL $FTP_ISO_PATH$SVN_REVISION/ $i
-                                       if [ "$?" -eq "0" ]; then
-                                               echo "The file with name $i was successfully uploaded to $FTP_ISO_URL$FTP_ISO_PATH$SVN_REVISION/."
-                                       else
-                                               echo "There was an error while uploading the file $i to the ftp server."
-                                               exit 1
-                                       fi
-                               fi
-               done
-               rm -f ipfire-$VERSION.$MACHINE-full.iso.md5
-               if [ "$3" = "--with-sources-cd" ]; then
-                       ncftpput -u $FTP_ISO_USER -p $FTP_ISO_PASS -P $FTP_ISO_PORT $FTP_ISO_URL $FTP_ISO_PATH/$SVN_REVISION/ ipfire-sources-cd-$VERSION.$MACHINE.iso
-               fi
-               ;;
-         paks)
-               ncftpput -u $FTP_ISO_USER -p $FTP_ISO_PASS -P $FTP_ISO_PORT $FTP_ISO_URL $FTP_ISO_PATH$SVN_REVISION/paks packages/*
-               if [ "$?" -eq "0" ]; then
-                       echo -e "The packages were successfully uploaded to $FTP_ISO_URL$FTP_ISO_PATH$SVN_REVISION/."
-               else
-                       echo -e "There was an error while uploading the packages to the ftp server."
-                       exit 1
-               fi
-         ;;
-       esac
-       ;;
 batch)
        if [ "$2" = "--background" ]; then
                batch_script