]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blobdiff - make.sh
Revert "Introduced access point feature."
[people/pmueller/ipfire-2.x.git] / make.sh
diff --git a/make.sh b/make.sh
old mode 100644 (file)
new mode 100755 (executable)
index fed147e..98fc8b6
--- a/make.sh
+++ b/make.sh
 # along with IPFire; if not, write to the Free Software                    #
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA #
 #                                                                          #
-# Copyright (C) 2006 IPFire-Team <info@ipfire.eu>.                         #
+# Copyright (C) 2007 IPFire-Team <info@ipfire.org>.                        #
 #                                                                          #
 ############################################################################
 #
 
-NAME="IPFire"                          # Software name
-SNAME="ipfire"                 # Short name
-VERSION="2.0b"                 # 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.1"                                                                          # Version number
+SLOGAN="www.ipfire.org"                                        # Software slogan
+CONFIG_ROOT=/var/ipfire                                        # Configuration rootdir
+NICE=10                                                                                                        # Nice level
+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-`
 
-IPFVER="full devel"                            # Which version should be compiled? (full|light|voice|devel)
-
-# 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
+IPFVER="full"                          # Which versions should be compiled? (full|devel)
 
 # Debian specific settings
 if [ ! -e /etc/debian_version ]; then
@@ -75,6 +69,17 @@ else
        fi
 fi
 
+if [ -z $EDITOR ]; then
+       for i in nano emacs vi; do
+               EDITOR=$(which $i 2>/dev/null)
+               if ! [ -z $EDITOR ]; then
+                       export EDITOR=$EDITOR
+                       break
+               fi
+       done
+       [ -z $EDITOR ] && exiterror "You should have installed an editor."
+fi
+
 prepareenv() {
     ############################################################################
     #                                                                          #
@@ -82,11 +87,11 @@ prepareenv() {
     #                                                                          #
     ############################################################################
     if [ ! "$BASH" ]; then
-       exiterror "BASH environment variable is not set.  You're probably running the wrong shell."
+                       exiterror "BASH environment variable is not set.  You're probably running the wrong shell."
     fi
 
     if [ -z "${BASH_VERSION}" ]; then
-       exiterror "Not running BASH shell."
+                       exiterror "Not running BASH shell."
     fi
 
 
@@ -106,10 +111,10 @@ prepareenv() {
     echo -ne "Resetting our nice level to $NICE" | tee -a $LOGFILE
     renice $NICE $$ > /dev/null
     if [ `nice` != "$NICE" ]; then
-       beautify message FAIL
-       exiterror "Failed to set correct nice level"
+                       beautify message FAIL
+                       exiterror "Failed to set correct nice level"
     else
-       beautify message DONE
+                       beautify message DONE
     fi
 
 
@@ -120,10 +125,10 @@ prepareenv() {
     ############################################################################
     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"
+                       beautify message FAIL
+                       exiterror "Not building as root"
     else
-       beautify message DONE
+                       beautify message DONE
     fi
 
 
@@ -136,13 +141,13 @@ prepareenv() {
     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 (( 2048000 > $BASE_ASPACE )); then
-       BASE_USPACE=`du -skx $BASEDIR | awk '{print $1}'`
-       if (( 2048000 - $BASE_USPACE > $BASE_ASPACE )); then
-               beautify message FAIL
-               exiterror "Not enough temporary space available, need at least 2GB on $BASE_DEV"
-       fi
+                       BASE_USPACE=`du -skx $BASEDIR | awk '{print $1}'`
+                       if (( 2048000 - $BASE_USPACE > $BASE_ASPACE )); then
+                               beautify message FAIL
+                               exiterror "Not enough temporary space available, need at least 2GB on $BASE_DEV"
+                       fi
     else
-       beautify message DONE
+                       beautify message DONE
     fi
 
     ############################################################################
@@ -161,16 +166,16 @@ prepareenv() {
         rm -f /tools
     fi
     if [ ! -a /tools ]; then
-       ln -s $BASEDIR/build/tools /
+                       ln -s $BASEDIR/build/tools /
     fi
     if [ ! -h /tools ]; then
-       exiterror "Could not create /tools symbolic link."
+                       exiterror "Could not create /tools symbolic link."
     fi
 
     # Setup environment
     set +h
     LC_ALL=POSIX
-    MAKETUNING="-j12"
+    MAKETUNING="-j6"
     export LFS LC_ALL CFLAGS CXXFLAGS MAKETUNING
     unset CC CXX CPP LD_LIBRARY_PATH LD_PRELOAD
 
@@ -284,7 +289,6 @@ buildbase() {
     lfsmake2 file
     lfsmake2 findutils
     lfsmake2 flex
-    lfsmake2 grub
     lfsmake2 gawk
     lfsmake2 gettext
     lfsmake2 grep
@@ -294,13 +298,16 @@ buildbase() {
     lfsmake2 iproute2
     lfsmake2 kbd
     lfsmake2 less
+    lfsmake2 libaal
     lfsmake2 make
     lfsmake2 man
     lfsmake2 mktemp
     lfsmake2 modutils
+    lfsmake2 mtd
     lfsmake2 net-tools
     lfsmake2 patch
     lfsmake2 psmisc
+    lfsmake2 reiser4progs
     lfsmake2 shadow
     lfsmake2 sysklogd
     lfsmake2 sysvinit
@@ -309,54 +316,61 @@ buildbase() {
     lfsmake2 udev
     lfsmake2 util-linux
     lfsmake2 vim
+    lfsmake2 grub
 }
 
 buildipfire() {
   LOGFILE="$BASEDIR/log/_build.ipfire.log"
   export LOGFILE
   ipfiremake configroot
+  ipfiremake backup
   ipfiremake dhcp
   ipfiremake dhcpcd
   ipfiremake libusb
   ipfiremake libpcap
-  ipfiremake linux-atm
   ipfiremake ppp
   ipfiremake rp-pppoe
   ipfiremake unzip
   ipfiremake linux                     SMP=1
   ipfiremake ipp2p                     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 promise-sata-300-tx      SMP=1
   ipfiremake zaptel                    SMP=1
+  ipfiremake r8169                     SMP=1
+  ipfiremake r8168                     SMP=1
+  ipfiremake mcs7830                   SMP=1
+  ipfiremake atl1                      SMP=1
+  ipfiremake dm9601                    SMP=1
+  ipfiremake kqemu                     SMP=1
+  ipfiremake sane              KMOD=1  SMP=1
   ipfiremake linux
   ipfiremake ipp2p
-  ipfiremake fcdsl
-  ipfiremake fcdsl2
-  ipfiremake fcdslsl
-  ipfiremake fcdslusb
-  ipfiremake fcdslslusb
-  ipfiremake fcpci
-#  ipfiremake promise-sata-300-tx
   ipfiremake zaptel
+  ipfiremake r8169
+  ipfiremake r8168
+  ipfiremake mcs7830
+  ipfiremake atl1
+  ipfiremake dm9601
+  ipfiremake kqemu
+  ipfiremake sane              KMOD=1
+  ipfiremake pkg-config
+  ipfiremake linux-atm
+  ipfiremake cpio
+  ipfiremake klibc
+  ipfiremake mkinitcpio
+  ipfiremake udev                              KLIBC=1
   ipfiremake expat
   ipfiremake gdbm
   ipfiremake gmp
   ipfiremake pam
   ipfiremake openssl
+  ipfiremake curl
   ipfiremake python
   ipfiremake libnet
+  ipfiremake libidn
   ipfiremake libjpeg
   ipfiremake libpng
   ipfiremake libtiff
-  ipfiremake lcms
-  ipfiremake libmng
-  ipfiremake freetype
   ipfiremake libart
+  ipfiremake freetype
   ipfiremake gd
   ipfiremake popt
   ipfiremake pcre
@@ -364,7 +378,9 @@ buildipfire() {
   ipfiremake newt
   ipfiremake libcap
   ipfiremake pciutils
+  ipfiremake usbutils
   ipfiremake libxml2
+  ipfiremake libxslt
   ipfiremake BerkeleyDB
   ipfiremake mysql
   ipfiremake cyrus-sasl
@@ -375,20 +391,27 @@ buildipfire() {
   ipfiremake arping
   ipfiremake beep
   ipfiremake bind
-  ipfiremake capi4k-utils
   ipfiremake cdrtools
   ipfiremake dnsmasq
   ipfiremake dosfstools
-  ipfiremake reiserfsprogs
   ipfiremake squashfstools
+  ipfiremake reiserfsprogs
+  ipfiremake xfsprogs
+  ipfiremake sysfsutils
+  ipfiremake fuse
+  ipfiremake ntfs-3g
   ipfiremake ethtool
   ipfiremake ez-ipupdate
   ipfiremake fcron
-  ipfiremake GD
+  ipfiremake perl-GD
+  ipfiremake GD-Graph
+  ipfiremake GD-TextUtil
   ipfiremake gnupg
   ipfiremake hdparm
-  ipfiremake ibod
+  ipfiremake sdparm
+  ipfiremake mtools
   ipfiremake initscripts
+  ipfiremake whatmask
   ipfiremake iptables
   ipfiremake libupnp
   ipfiremake ipp2p                     IPT=1
@@ -398,15 +421,14 @@ buildipfire() {
   ipfiremake iptstate
   ipfiremake iputils
   ipfiremake l7-protocols
-  ipfiremake isapnptools
-#  ipfiremake isdn4k-utils # What about mISDN???
+  ipfiremake mISDN
+  ipfiremake capi4k-utils
+  ipfiremake hwdata
   ipfiremake kudzu
   ipfiremake logrotate
   ipfiremake logwatch
   ipfiremake misc-progs
-  ipfiremake mtools
   ipfiremake nano
-  ipfiremake nash
   ipfiremake nasm
   ipfiremake URI
   ipfiremake HTML-Tagset
@@ -430,94 +452,125 @@ buildipfire() {
   ipfiremake Archive-Zip
   ipfiremake Text-Tabs+Wrap
   ipfiremake Locale-Country
+  ipfiremake XML-Parser
+  ipfiremake glib
   ipfiremake GeoIP
   ipfiremake fwhits
   ipfiremake noip_updater
   ipfiremake ntp
-  ipfiremake oinkmaster
   ipfiremake openssh
   ipfiremake openswan
-  ipfiremake pptpclient
   ipfiremake rrdtool
   ipfiremake setserial
   ipfiremake setup
   ipfiremake snort
+  ipfiremake oinkmaster
   ipfiremake squid
   ipfiremake squid-graph
   ipfiremake squidguard
+  ipfiremake calamaris
   ipfiremake tcpdump
   ipfiremake traceroute
   ipfiremake vlan
   ipfiremake wireless
   ipfiremake libsafe
-  ipfiremake 3c5x9setup
   ipfiremake pakfire
   ipfiremake java
-  ipfiremake bootsplash
   ipfiremake spandsp
   ipfiremake lzo
   ipfiremake openvpn
-  ipfiremake pkg-config
-  ipfiremake glib
   ipfiremake pammysql
-  ipfiremake xinetd
-  ipfiremake ghostscript
   ipfiremake cups
+  ipfiremake ghostscript
+  ipfiremake foomatic
+  ipfiremake hplip
   ipfiremake samba
   ipfiremake sudo
   ipfiremake mc
   ipfiremake wget
-  ipfiremake wput
   ipfiremake bridge-utils
   ipfiremake screen
   ipfiremake hddtemp
   ipfiremake smartmontools
   ipfiremake htop
-  ipfiremake lynx
   ipfiremake postfix
-  ipfiremake procmail
   ipfiremake fetchmail
-  ipfiremake cyrusimap
-  ipfiremake webcyradm
-  ipfiremake mailx
+  ipfiremake cyrus-imapd
+  ipfiremake openmailadmin
   ipfiremake clamav
-  ipfiremake razor
   ipfiremake spamassassin
   ipfiremake amavisd
-  ipfiremake stund
-  ipfiremake libpri
-# ipfiremake bristuff
-  ipfiremake asterisk
+  ipfiremake alsa
   ipfiremake mpg123
+  ipfiremake mpfire
+  ipfiremake guardian
+  ipfiremake libid3tag
   ipfiremake libmad
   ipfiremake libogg
   ipfiremake libvorbis
   ipfiremake lame
-  ipfiremake xvid
-  ipfiremake mpeg2dec
-  ipfiremake ffmpeg
   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 videolan
+  ipfiremake libsigc++
   ipfiremake applejuice
   ipfiremake ocaml
   ipfiremake mldonkey
-  ipfiremake ntop
+  ipfiremake libtorrent
+  ipfiremake rtorrent
+  ipfiremake ipfireseeder
   ipfiremake rsync
   ipfiremake tcpwrapper
   ipfiremake portmap
   ipfiremake nfs
   ipfiremake nmap
   ipfiremake mbmon
-  ipfiremake iftop
   ipfiremake ncftp
-  ipfiremake cftp
   ipfiremake etherwake
-  ipfiremake ethereal
-  ipfiremake tftp-hpa
-  ipfiremake iptraf
+  ipfiremake bwm-ng
+  ipfiremake tripwire
+  ipfiremake sysstat
+  ipfiremake vsftpd
+  ipfiremake which
+  ipfiremake lsof
+  ipfiremake centerim
+  ipfiremake br2684ctl
+  ipfiremake pcmciautils
+  ipfiremake collectd
+  ipfiremake lcd4linux
+  ipfiremake neon
+  ipfiremake subversion
+  ipfiremake tcptrack
+  ipfiremake teamspeak
+  ipfiremake elinks
+  ipfiremake igmpproxy
+  ipfiremake sdl
+  ipfiremake qemu
+  ipfiremake sane
+  ipfiremake netpbm
+  ipfiremake phpSANE
+  ipfiremake tunctl
   ipfiremake nagios
-  ipfiremake yasuc
+  ipfiremake ebtables
+  ipfiremake arptables
+  ipfiremake fontconfig
+  ipfiremake freefont
+  ipfiremake ffmpeg
+  ipfiremake videolan
+  ipfiremake vdr
+  ipfiremake w_scan
+  ipfiremake git
+  ipfiremake squidclamav
+  ipfiremake bc
 }
 
 buildinstaller() {
@@ -525,6 +578,8 @@ buildinstaller() {
   LOGFILE="$BASEDIR/log/_build.installer.log"
   export LOGFILE
   ipfiremake syslinux
+  ipfiremake as86
+  ipfiremake mbr
   ipfiremake memtest
   installmake linux-libc-header
   installmake binutils
@@ -542,12 +597,18 @@ buildinstaller() {
   installmake popt
   installmake sysvinit
   installmake misc-progs
-  installmake e2fsprogs
+  installmake libaal
+  installmake reiser4progs
   installmake reiserfsprogs
   installmake sysfsutils
   installmake util-linux
   installmake pciutils
+  installmake zlib
+  installmake mtd
+  installmake wget
+  installmake hwdata
   installmake kudzu
+  installmake pcmciautils
   installmake installer
   installmake initrd
 }
@@ -568,28 +629,29 @@ buildpackages() {
        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$\|setup$\|pakfire$\|stage2$\|smp$\|tools$\|tools1$\|tools2$\|.tgz$\|-config$\|_missing_rootfile$' \
+  grep -v 'configroot$\|img$\|initrd$\|initscripts$\|installer$\|install$\|setup$\|pakfire$\|stage2$\|smp$\|tools$\|tools1$\|tools2$\|.tgz$\|-config$\|_missing_rootfile$\|install1$\|install2$\|pass1$\|pass2$\|pass3$' \
        $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
   beautify message DONE
 
   # Create images for install
-  for i in $IPFVER
-  do
-       ipfiremake cdrom ED=$i
-  done
-  ipfiremake pxe
-  cp -f $LFS/install/images/{*.iso,*.tgz} $BASEDIR >> $LOGFILE 2>&1
+       ipfiremake cdrom ED=full
+       
+  # Check if there is a loop device for building in virtual environments
+  if [ -e /dev/loop/0 ] || [ -e /dev/loop0 ]; then
+       ipfiremake usb-stick
+  fi
+  mv $LFS/install/images/{*.iso,*.tgz,*.img.gz} $BASEDIR >> $LOGFILE 2>&1
 
-#  ipfirepackages
+  ipfirepackages
 
   # Cleanup
   stdumount
   rm -rf $BASEDIR/build/tmp/*
 
   # Generating total list of files
-  echo "Generating files list from logs" | tee -a $LOGFILE
+  echo -n "Generating files list from logs" | tee -a $LOGFILE
   rm -f $BASEDIR/log/FILES
   for i in `ls -1tr $BASEDIR/log/[^_]*`; do
        if [ "$i" != "$BASEDIR/log/FILES" -a -n $i ]; then
@@ -599,54 +661,23 @@ 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
+  beautify message DONE
 
   cd $PWD
-
 }
 
 ipfirepackages() {
-  if [ -d "$BASEDIR/packages" ]; then
-         for i in `ls $BASEDIR/packages`; do
-               touch $BASEDIR/build/install/packages/$i.empty
-         done
-  fi
-#  ipfiredist amavisd
-  ipfiredist applejuice
-  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 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 subversion
-  ipfiredist videolan
-  ipfiredist webcyradm
-  ipfiredist xvid
-  ipfiredist yasuc
+       ipfiremake core-updates
+       for i in $(ls -1 $BASEDIR/config/rootfiles/packages); do
+               if [ -e $BASEDIR/lfs/$i ]; then
+                       ipfiredist $i
+               else
+                       echo -n $i
+                       beautify message SKIP
+               fi
+       done
   test -d $BASEDIR/packages || mkdir $BASEDIR/packages
-  mv -f $LFS/install/packages/*.{ipfire,md5} $BASEDIR/packages >> $LOGFILE 2>&1
+  mv -f $LFS/install/packages/* $BASEDIR/packages >> $LOGFILE 2>&1
   rm -rf  $BASEDIR/build/install/packages/*
 }
 
@@ -685,13 +716,6 @@ build)
        beautify build_stage "Building IPFire"
        buildipfire
 
-       # Setzen des IPFire Builds
-       if [ "$FIREBUILD" ]; then
-               echo "$FIREBUILD" > $BASEDIR/build/var/ipfire/firebuild
-       else
-               echo "_(OvO)_" > $BASEDIR/build/var/ipfire/firebuild
-       fi
-
        beautify build_stage "Building installer"
        buildinstaller
 
@@ -705,11 +729,6 @@ shell)
        prepareenv
        entershell
        ;;
-changelog)
-       echo -n "Loading new Changelog from SVN: "
-       svn log http://svn.ipfire.eu/svn/ipfire > doc/ChangeLog
-       beautify message DONE
-       ;;
 clean)
        echo -en "${BOLD}Cleaning build directory...${NORMAL}"
        for i in `mount | grep $BASEDIR | sed 's/^.*loop=\(.*\))/\1/'`; do
@@ -839,143 +858,105 @@ othersrc)
        fi
        stdumount
        ;;
-svn)
+git)
        case "$2" in
          update|up)
-               # clear
-               echo -ne "Loading the latest source files...\n"
-               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
-                       beautify message DONE
-               else
-                       beautify message FAIL
-                       exit 1
-               fi
-               echo -ne "Writing the svn-info to a file"
-               svn info > $PWD/svn_status
-               if [ $? -eq "0" ]; then
-                       beautify message DONE
-               else
-                       beautify message FAIL
-                       exit 1
-               fi
-               chmod 755 $0
-               exit 0
-         ;;
+                       git pull
+               ;;
          commit|ci)
-               clear
-               if [ -f /usr/bin/mcedit ]; then
-                       export EDITOR=/usr/bin/mcedit
-               fi
-               if [ -f /usr/bin/nano ]; then
-                       export EDITOR=/usr/bin/nano
-               fi
-               echo -ne "Selecting editor $EDITOR..."
-               beautify message DONE
-               if [ -e /sbin/yast ]; then
-                       if [ "`echo $SVN_REVISION | cut -c 3`" -eq "0" ]; then
-                               $0 changelog
-                       fi
-               fi
-               svn commit
-               $0 svn up
-               $0 uploadsrc
-         ;;
+               shift 2
+                       git commit $*
+                       
+                       [ "$?" -eq "0" ] || exiterror "git commit $* failed."
+                       
+                       echo -e "${BOLD}Do you want to push, too? [y/N]${NORMAL}"
+                       read
+                       [ -z $REPLY ] && exit 0
+                       for i in y Y j J; do
+                               if [ "$i" == "$REPLY" ]; then
+                                       $0 git push
+                                       exit $?
+                               fi
+                       done
+                       exiterror "\"$REPLY\" is not a valid answer."
+               ;;
          dist)
-               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/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..."
-               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
-               evaluate 1
-               echo -en "REV $SVN_REVISION: Cleaning up..."
-               rm ipfire-source/ -r
-               evaluate 1
-         ;;
+                       git archive HEAD | gzip -9 > ${SNAME}-${VERSION}.tar.gz
+                 ;;
          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
-               evaluate 1
-               echo "Diff was successfully saved to ipfire-diff-`date +'%Y-%m-%d-%H:%M'`-r`svn info | grep Revision | cut -c 11-`.diff"
-         ;;
+                       echo -ne "Make a local diff to last revision"
+                       git diff HEAD > ipfire-diff-$(date +'%Y-%m-%d-%H:%M').diff
+                       evaluate 1
+                       echo "Diff was successfully saved to ipfire-diff-$(date +'%Y-%m-%d-%H:%M').diff"
+                       git diff --stat
+               ;;
+         push)
+               [ -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} master
+               ;;
        esac
        ;;
 uploadsrc)
        PWD=`pwd`
        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/ > /var/tmp/ftplist
+       ncftpls -u $FTP_CACHE_USER -p $FTP_CACHE_PASS ftp://$FTP_CACHE_URL/$FTP_CACHE_PATH/ > /tmp/ftplist
        for i in *; do
-               if [ "$i" == "toolchains" ]; then continue; fi
-               grep -q $i /var/tmp/ftplist
+               if [ "$(basename $i)" == "toolchains" ]; then continue; fi
+               grep -q $(basename $i) /tmp/ftplist
                if [ "$?" -ne "0" ]; then
-                       echo -ne "$i"
-                       ncftpput -u $FTP_CACHE_USER -p $FTP_CACHE_PASS $FTP_CACHE_URL $FTP_CACHE_PATH/ $i
-                       if [ "$?" -eq "0" ]; then
-                               beautify message DONE
-                       else
+                       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
        done
-       rm -f /var/tmp/ftplist
+       rm -f /tmp/ftplist
        cd $PWD
        exit 0
        ;;
 upload)
-       case "$2" in
-         iso)
-               echo -e "Uploading the iso to $IPFIRE_FTP_URL_EXT."
-               cat <<EOF > .ftp-commands
-mkdir $IPFIRE_FTP_PATH_EXT
-ls -lah
+       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 $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 $FTP_ISO_USER -p $FTP_ISO_PASS $FTP_ISO_URL $FTP_ISO_PATH/ ipfire-install-$VERSION.i386.iso
-               ncftpput -u $FTP_ISO_USER -p $FTP_ISO_PASS $FTP_ISO_URL $FTP_ISO_PATH/ ipfire-install-$VERSION.i386.iso.md5
-               ncftpput -u $FTP_ISO_USER -p $FTP_ISO_PASS $FTP_ISO_URL $FTP_ISO_PATH/ ipfire-source-r$SVN_REVISION.tar.gz
-               ncftpput -u $FTP_ISO_USER -p $FTP_ISO_PASS $FTP_ISO_URL $FTP_ISO_PATH/ 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 "There was an error while uploading the iso to the ftp server."
-                       exit 1
-               fi
+       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 $FTP_ISO_URL $FTP_ISO_PATH/ ipfire-sources-cd-$VERSION.$MACHINE.iso
+                       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)
-               cat <<EOF > .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/*
+               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 $IPFIRE_FTP_URL_PAK$IPFIRE_FTP_PATH_PAK/."
+                       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
@@ -984,7 +965,7 @@ EOF
        esac
        ;;
 batch)
-       if [ "$2" -eq "--background" ]; then
+       if [ "$2" = "--background" ]; then
                batch_script
                exit $?
        fi
@@ -1021,10 +1002,12 @@ pxe)
        esac
        exit 0
        ;;
+lang)
+       update_langs
+       ;;
 "")
        clear
-       svn info
-       select name in "Exit" "IPFIRE: Downloadsrc" "IPFIRE: Build (silent)" "IPFIRE: Watch Build" "IPFIRE: Batch" "IPFIRE: Clean" "SVN: Commit" "SVN: Update" "SVN: Status" "SVN: Diff" "LOG: Tail" "Help"
+       select name in "Exit" "IPFIRE: Downloadsrc" "IPFIRE: Build (silent)" "IPFIRE: Watch Build" "IPFIRE: Batch" "IPFIRE: Clean" "LOG: Tail" "Help"
        do
        case $name in
        "IPFIRE: Downloadsrc")
@@ -1042,9 +1025,6 @@ pxe)
        "IPFIRE: Clean")
                $0 clean
                ;;
-       "SVN: Update")
-               $0 svn update
-               ;;
        "Help")
                echo "Usage: $0 {build|changelog|clean|gettoolchain|downloadsrc|shell|sync|toolchain}"
                cat doc/make.sh-usage