Merge remote-tracking branch 'origin/next' into thirteen
[people/pmueller/ipfire-2.x.git] / make.sh
diff --git a/make.sh b/make.sh
index 576e997..0e0192c 100755 (executable)
--- a/make.sh
+++ b/make.sh
@@ -24,7 +24,7 @@
 
 NAME="IPFire"                                                  # Software name
 SNAME="ipfire"                                                 # Short name
-VERSION="2.11"                                                 # Version number
+VERSION="2.13"                                                 # Version number
 CORE="62"                                                      # Core Level (Filename)
 PAKFIRE_CORE="62"                                              # Core Level (PAKFIRE)
 GIT_BRANCH=`git status | head -n1 | cut -d" " -f4`             # Git Branch
@@ -37,12 +37,11 @@ KVER=`grep --max-count=1 VER lfs/linux | awk '{ print $3 }'`
 MACHINE=`uname -m`
 GIT_TAG=$(git tag | tail -1)                                   # Git Tag
 GIT_LASTCOMMIT=$(git log | head -n1 | cut -d" " -f2 |head -c8) # Last commit
-TOOLCHAINVER=3
+TOOLCHAINVER=5
 
 BUILDMACHINE=$MACHINE
     if [ "$MACHINE" = "x86_64" ]; then
         BUILDMACHINE="i686";
-        linux32="linux32";
     fi
 
 
@@ -214,15 +213,10 @@ prepareenv() {
     mount --bind $BASEDIR/log    $BASEDIR/build/usr/src/log
     mount --bind $BASEDIR/src    $BASEDIR/build/usr/src/src
 
-    # This is a temporary hack!!!
-    if [ ! -f /tools/bin/hostname ]; then
-      cp -f /bin/hostname /tools/bin/hostname 2>/dev/null
-    fi
-
     # Run LFS static binary creation scripts one by one
     export CCACHE_DIR=$BASEDIR/ccache
     export CCACHE_COMPRESS=1
-    export CCACHE_HASHDIR=1
+    export CCACHE_COMPILERCHECK="none"
 
     # Remove pre-install list of installed files in case user erase some files before rebuild
     rm -f $BASEDIR/build/usr/src/lsalr 2>/dev/null
@@ -232,7 +226,7 @@ buildtoolchain() {
     local error=false
     case "${MACHINE}:$(uname -m)" in
         # x86
-        i586:i586|i586:i686)
+        i586:i586|i586:i686|i586:x86_64)
             # These are working.
             ;;
         i586:*)
@@ -240,7 +234,7 @@ buildtoolchain() {
             ;;
 
         # ARM
-        armv5tel:armv5tel|armv5tel:armv5tejl|armv5tel:armv7l)
+        armv5tel:armv5tel|armv5tel:armv5tejl|armv5tel:armv6l|armv5tel:armv7l)
             # These are working.
             ;;
         armv5tel:*)
@@ -251,34 +245,28 @@ buildtoolchain() {
     ${error} && \
         exiterror "Cannot build ${MACHINE} toolchain on $(uname -m). Please use the download if any."
 
-    if [ "$(uname -r | grep ipfire)" ]; then
-        exiterror "Cannot build toolchain on ipfire. Please use the download."
+    local gcc=$(type -p gcc)
+    if [ -z "${gcc}" ]; then
+        exiterror "Could not find GCC. You will need a working build enviroment in order to build the toolchain."
     fi
 
     LOGFILE="$BASEDIR/log/_build.toolchain.log"
     export LOGFILE
-    NATIVEGCC=`gcc --version | grep GCC | awk {'print $3'}`
-    export NATIVEGCC GCCmajor=${NATIVEGCC:0:1} GCCminor=${NATIVEGCC:2:1} GCCrelease=${NATIVEGCC:4:1}
-    ORG_PATH=$PATH
-    lfsmake1 ccache    PASS=1
-    lfsmake1 make      PASS=1
-    lfsmake1 binutils  PASS=1
-    lfsmake1 gcc               PASS=1
-    export PATH=$BASEDIR/build/usr/local/bin:$BASEDIR/build/tools/bin:$PATH
-    if [ "${MACHINE_TYPE}" = "arm" ]; then
-        lfsmake1 linux TOOLS=1 HEADERS=1
-    else
-        lfsmake1 linux-libc-header
-    fi
+
+    local ORG_PATH=$PATH
+    export PATH="/tools/ccache/bin:/tools/bin:$PATH"
+    lfsmake1 ccache                    PASS=1
+    lfsmake1 binutils                  PASS=1
+    lfsmake1 gcc                       PASS=1
+    lfsmake1 linux2                    TOOLS=1 HEADERS=1
     lfsmake1 glibc
-    lfsmake1 cleanup-toolchain PASS=1
-    lfsmake1 fake-environ
+    lfsmake1 cleanup-toolchain         PASS=1
+    lfsmake1 binutils                  PASS=2
+    lfsmake1 gcc                       PASS=2
+    lfsmake1 ccache                    PASS=2
     lfsmake1 tcl
     lfsmake1 expect
     lfsmake1 dejagnu
-    lfsmake1 gcc               PASS=2
-    lfsmake1 binutils  PASS=2
-    lfsmake1 ccache    PASS=2
     lfsmake1 ncurses
     lfsmake1 bash
     lfsmake1 bzip2
@@ -290,15 +278,15 @@ buildtoolchain() {
     lfsmake1 grep
     lfsmake1 gzip
     lfsmake1 m4
-    lfsmake1 make      PASS=2
+    lfsmake1 make
     lfsmake1 patch
     lfsmake1 perl
     lfsmake1 sed
     lfsmake1 tar
     lfsmake1 texinfo
-    lfsmake1 util-linux
-    lfsmake1 strip
-    lfsmake1 cleanup-toolchain PASS=2
+    lfsmake1 xz
+    lfsmake1 fake-environ
+    lfsmake1 cleanup-toolchain         PASS=2
     export PATH=$ORG_PATH
 }
 
@@ -306,17 +294,19 @@ buildbase() {
     LOGFILE="$BASEDIR/log/_build.base.log"
     export LOGFILE
     lfsmake2 stage2
-    if [ "${MACHINE_TYPE}" = "arm" ]; then
-        lfsmake2 linux HEADERS=1
-    else
-        lfsmake2 linux-libc-header
-    fi
+    lfsmake2 linux2                    HEADERS=1
     lfsmake2 man-pages
     lfsmake2 glibc
     lfsmake2 tzdata
-    lfsmake2 cleanup-toolchain PASS=3
+    lfsmake2 cleanup-toolchain         PASS=3
+    lfsmake2 zlib
     lfsmake2 binutils
+    lfsmake2 gmp
+    lfsmake2 gmp-compat
+    lfsmake2 mpfr
+    lfsmake2 file
     lfsmake2 gcc
+    lfsmake2 sed
     lfsmake2 berkeley
     lfsmake2 coreutils
     lfsmake2 iana-etc
@@ -324,11 +314,12 @@ buildbase() {
     lfsmake2 bison
     lfsmake2 ncurses
     lfsmake2 procps
-    lfsmake2 sed
     lfsmake2 libtool
     lfsmake2 perl
     lfsmake2 readline
-    lfsmake2 zlib
+    lfsmake2 readline-compat
+    lfsmake2 pcre
+    lfsmake2 pcre-compat
     lfsmake2 autoconf
     lfsmake2 automake
     lfsmake2 bash
@@ -336,7 +327,6 @@ buildbase() {
     lfsmake2 diffutils
     lfsmake2 e2fsprogs
     lfsmake2 ed
-    lfsmake2 file
     lfsmake2 findutils
     lfsmake2 flex
     lfsmake2 gawk
@@ -348,7 +338,6 @@ buildbase() {
     lfsmake2 iproute2
     lfsmake2 kbd
     lfsmake2 less
-    lfsmake2 libaal
     lfsmake2 make
     lfsmake2 man
     lfsmake2 mktemp
@@ -356,7 +345,6 @@ buildbase() {
     lfsmake2 net-tools
     lfsmake2 patch
     lfsmake2 psmisc
-    lfsmake2 reiser4progs
     lfsmake2 shadow
     lfsmake2 sysklogd
     lfsmake2 sysvinit
@@ -365,6 +353,7 @@ buildbase() {
     lfsmake2 udev
     lfsmake2 util-linux
     lfsmake2 vim
+    lfsmake2 xz
     lfsmake2 grub
 }
 
@@ -382,93 +371,96 @@ buildipfire() {
   ipfiremake pptp
   ipfiremake unzip
   ipfiremake which
-  ipfiremake xz
   ipfiremake linux-firmware
   ipfiremake zd1211-firmware
+  ipfiremake rpi-firmware
   ipfiremake fw_ath9k_htc
   ipfiremake u-boot
 
   # The xen and PAE kernels are only available for x86
   if [ "${MACHINE_TYPE}" != "arm" ]; then
-    ipfiremake linux                   KCFG="-xen"
-    ipfiremake kqemu                   KCFG="-xen"
+    ipfiremake linux2                  KCFG="-xen"
     ipfiremake v4l-dvb                 KCFG="-xen"
-    ipfiremake madwifi                 KCFG="-xen"
-    ipfiremake mISDN                   KCFG="-xen"
-    ipfiremake dahdi                   KCFG="-xen" KMOD=1
+#    ipfiremake mISDN                  KCFG="-xen"
     ipfiremake cryptodev               KCFG="-xen"
     ipfiremake compat-wireless         KCFG="-xen"
-    ipfiremake r8169                   KCFG="-xen"
-    ipfiremake r8168                   KCFG="-xen"
-    ipfiremake r8101                   KCFG="-xen"
-    ipfiremake e1000                   KCFG="-xen"
-    ipfiremake e1000e                  KCFG="-xen"
-    ipfiremake igb                     KCFG="-xen"
+#    ipfiremake r8169                  KCFG="-xen"
+#    ipfiremake r8168                  KCFG="-xen"
+#    ipfiremake r8101                  KCFG="-xen"
+#    ipfiremake e1000                  KCFG="-xen"
+#    ipfiremake e1000e                 KCFG="-xen"
+#    ipfiremake igb                    KCFG="-xen"
+
     ipfiremake linux                   KCFG="-pae"
-    ipfiremake kqemu                   KCFG="-pae"
-    ipfiremake kvm-kmod                        KCFG="-pae"
+#    ipfiremake kvm-kmod                       KCFG="-pae"
     ipfiremake v4l-dvb                 KCFG="-pae"
-    ipfiremake madwifi                 KCFG="-pae"
     ipfiremake alsa                    KCFG="-pae" KMOD=1
-    ipfiremake mISDN                   KCFG="-pae"
-    ipfiremake dahdi                   KCFG="-pae" KMOD=1
+#    ipfiremake mISDN                  KCFG="-pae"
     ipfiremake cryptodev               KCFG="-pae"
     ipfiremake compat-wireless         KCFG="-pae"
 #    ipfiremake r8169                  KCFG="-pae"
 #    ipfiremake r8168                  KCFG="-pae"
 #    ipfiremake r8101                  KCFG="-pae"
-    ipfiremake e1000                   KCFG="-pae"
-    ipfiremake e1000e                  KCFG="-pae"
-    ipfiremake igb                     KCFG="-pae"
+#    ipfiremake e1000                  KCFG="-pae"
+#    ipfiremake e1000e                 KCFG="-pae"
+#    ipfiremake igb                    KCFG="-pae"
+
     ipfiremake linux                   KCFG=""
+#    ipfiremake kvm-kmod                       KCFG=""
     ipfiremake v4l-dvb                 KCFG=""
-    ipfiremake kqemu                   KCFG=""
-    ipfiremake kvm-kmod                        KCFG=""
-    ipfiremake madwifi                 KCFG=""
     ipfiremake alsa                    KCFG="" KMOD=1
-    ipfiremake mISDN                   KCFG=""
-    ipfiremake dahdi                   KCFG="" KMOD=1
+#    ipfiremake mISDN                  KCFG=""
     ipfiremake cryptodev               KCFG=""
     ipfiremake compat-wireless         KCFG=""
 #    ipfiremake r8169                  KCFG=""
 #    ipfiremake r8168                  KCFG=""
 #    ipfiremake r8101                  KCFG=""
-    ipfiremake e1000                   KCFG=""
-    ipfiremake e1000e                  KCFG=""
-    ipfiremake igb                     KCFG=""
+#    ipfiremake e1000                  KCFG=""
+#    ipfiremake e1000e                 KCFG=""
+#    ipfiremake igb                    KCFG=""
+
   else
-    # arm-versatile kernel build
-    ipfiremake linux                   KCFG="-versatile"
-    ipfiremake v4l-dvb                 KCFG="-versatile"
-    ipfiremake kqemu                   KCFG="-versatile"
-    ipfiremake kvm-kmod                        KCFG="-versatile"
-    ipfiremake madwifi                 KCFG="-versatile"
-    ipfiremake mISDN                   KCFG="-versatile"
-    ipfiremake dahdi                   KCFG="-versatile" KMOD=1
-    ipfiremake cryptodev               KCFG="-versatile"
-    ipfiremake compat-wireless         KCFG="-versatile"
-#  ipfiremake r8169                    KCFG="-versatile"
-#  ipfiremake r8168                    KCFG="-versatile"
-#  ipfiremake r8101                    KCFG="-versatile"
-    ipfiremake e1000                   KCFG="-versatile"
-    ipfiremake e1000e                  KCFG="-versatile"
-    ipfiremake igb                     KCFG="-versatile"
+    # arm-omap kernel build
+    ipfiremake linux                   KCFG="-rpi"
+#    ipfiremake v4l-dvb                        KCFG="-rpi"
+#    ipfiremake kvm-kmod                       KCFG="-rpi"
+#    ipfiremake mISDN                  KCFG="-rpi"
+    ipfiremake cryptodev               KCFG="-rpi"
+    ipfiremake compat-wireless         KCFG="-rpi"
+#    ipfiremake r8169                  KCFG="-rpi"
+#    ipfiremake r8168                  KCFG="-rpi"
+#    ipfiremake r8101                  KCFG="-rpi"
+#    ipfiremake e1000                  KCFG="-rpi"
+#    ipfiremake e1000e                 KCFG="-rpi"
+#    ipfiremake igb                    KCFG="-rpi"
+
+    ipfiremake linux                   KCFG="-omap"
+#    ipfiremake v4l-dvb                        KCFG="-omap"
+#    ipfiremake kvm-kmod                       KCFG="-omap"
+#    ipfiremake mISDN                  KCFG="-omap"
+    ipfiremake cryptodev               KCFG="-omap"
+    ipfiremake compat-wireless         KCFG="-omap"
+#    ipfiremake r8169                  KCFG="-omap"
+#    ipfiremake r8168                  KCFG="-omap"
+#    ipfiremake r8101                  KCFG="-omap"
+#    ipfiremake e1000                  KCFG="-omap"
+#    ipfiremake e1000e                 KCFG="-omap"
+#    ipfiremake igb                    KCFG="-omap"
+
     # arm-kirkwood kernel build
     ipfiremake linux                   KCFG="-kirkwood"
-    ipfiremake v4l-dvb                 KCFG="-kirkwood"
-    ipfiremake kqemu                   KCFG="-kirkwood"
-    ipfiremake kvm-kmod                        KCFG="-kirkwood"
-    ipfiremake madwifi                 KCFG="-kirkwood"
-    ipfiremake mISDN                   KCFG="-kirkwood"
-    ipfiremake dahdi                   KCFG="-kirkwood" KMOD=1
+#    ipfiremake v4l-dvb                        KCFG="-kirkwood"
+#    ipfiremake kvm-kmod                       KCFG="-kirkwood"
+#    ipfiremake mISDN                  KCFG="-kirkwood"
     ipfiremake cryptodev               KCFG="-kirkwood"
     ipfiremake compat-wireless         KCFG="-kirkwood"
-#  ipfiremake r8169                    KCFG="-kirkwood"
-#  ipfiremake r8168                    KCFG="-kirkwood"
-#  ipfiremake r8101                    KCFG="-kirkwood"
-    ipfiremake e1000                   KCFG="-kirkwood"
-    ipfiremake e1000e                  KCFG="-kirkwood"
-    ipfiremake igb                     KCFG="-kirkwood"
+#    ipfiremake r8169                  KCFG="-kirkwood"
+#    ipfiremake r8168                  KCFG="-kirkwood"
+#    ipfiremake r8101                  KCFG="-kirkwood"
+#    ipfiremake e1000                  KCFG="-kirkwood"
+#    ipfiremake e1000e                 KCFG="-kirkwood"
+#    ipfiremake igb                    KCFG="-kirkwood"
+
   fi
   ipfiremake pkg-config
   ipfiremake linux-atm
@@ -476,7 +468,6 @@ buildipfire() {
   ipfiremake dracut
   ipfiremake expat
   ipfiremake gdbm
-  ipfiremake gmp
   ipfiremake pam
   ipfiremake openssl
   ipfiremake curl
@@ -537,7 +528,6 @@ buildipfire() {
   ipfiremake iptables
   ipfiremake libupnp
   ipfiremake ipaddr
-  ipfiremake iptstate
   ipfiremake iputils
   ipfiremake l7-protocols
   ipfiremake mISDNuser
@@ -579,12 +569,19 @@ buildipfire() {
   ipfiremake python-mechanize
   ipfiremake python-feedparser
   ipfiremake python-rssdler
+  ipfiremake libffi
   ipfiremake glib
   ipfiremake GeoIP
   ipfiremake fwhits
   ipfiremake noip_updater
   ipfiremake ntp
   ipfiremake openssh
+  ipfiremake fontconfig
+  ipfiremake dejavu-fonts-ttf
+  ipfiremake freefont
+  ipfiremake pixman
+  ipfiremake cairo
+  ipfiremake pango
   ipfiremake rrdtool
   ipfiremake setserial
   ipfiremake setup
@@ -599,7 +596,6 @@ buildipfire() {
   ipfiremake traceroute
   ipfiremake vlan
   ipfiremake wireless
-  ipfiremake libsafe
   ipfiremake pakfire
   ipfiremake spandsp
   ipfiremake lzo
@@ -615,7 +611,6 @@ buildipfire() {
   ipfiremake wget
   ipfiremake bridge-utils
   ipfiremake screen
-  ipfiremake hddtemp
   ipfiremake smartmontools
   ipfiremake htop
   ipfiremake postfix
@@ -642,7 +637,6 @@ buildipfire() {
   ipfiremake cmake
   ipfiremake gnump3d
   ipfiremake libsigc++
-  ipfiremake applejuice
   ipfiremake libtorrent
   ipfiremake rtorrent
   ipfiremake ipfireseeder
@@ -661,7 +655,6 @@ buildipfire() {
   ipfiremake vsftpd
   ipfiremake strongswan
   ipfiremake lsof
-  ipfiremake centerim
   ipfiremake br2684ctl
   ipfiremake pcmciautils
   ipfiremake lm_sensors
@@ -673,7 +666,6 @@ buildipfire() {
   ipfiremake fbset
   ipfiremake sdl
   ipfiremake qemu
-  ipfiremake qemu-kqemu
   ipfiremake sane
   ipfiremake netpbm
   ipfiremake phpSANE
@@ -681,8 +673,6 @@ buildipfire() {
   ipfiremake nagios
   ipfiremake nagios_nrpe
   ipfiremake ebtables
-  ipfiremake fontconfig
-  ipfiremake freefont
   ipfiremake directfb
   ipfiremake dfb++
   ipfiremake faad2
@@ -715,7 +705,6 @@ buildipfire() {
   ipfiremake netcat
   ipfiremake 7zip
   ipfiremake lynis
-  ipfiremake splix
   ipfiremake streamripper
   ipfiremake sshfs
   ipfiremake taglib
@@ -737,7 +726,6 @@ buildipfire() {
   ipfiremake nut
   ipfiremake watchdog
   ipfiremake libpri
-  ipfiremake dahdi
   ipfiremake asterisk
   ipfiremake lcr
   ipfiremake usb_modeswitch
@@ -770,6 +758,7 @@ buildipfire() {
   ipfiremake mtr
   ipfiremake tcpick
   ipfiremake minidlna
+  ipfiremake acpid
   ipfiremake fping
   ipfiremake telnet
   echo Build on $HOSTNAME > $BASEDIR/build/var/ipfire/firebuild
@@ -796,7 +785,6 @@ buildinstaller() {
   ipfiremake mbr
   ipfiremake memtest
   ipfiremake installer
-  cp -f $BASEDIR/doc/COPYING $BASEDIR/build/install/initrd/
   installmake strip
   ipfiremake initrd
 }
@@ -1038,9 +1026,7 @@ toolchain)
        echo "`date -u '+%b %e %T'`: Create toolchain tar.gz for $MACHINE" | tee -a $LOGFILE
        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-$MACHINE.tar.gz \
-               build/{bin,etc,usr/bin,usr/local} \
-               build/tools/{bin,etc,*-linux-gnu*,include,lib,libexec,sbin,share,var} \
-               log >> $LOGFILE
+               build/tools build/bin/sh log >> $LOGFILE
        md5sum cache/toolchains/$SNAME-$VERSION-toolchain-$TOOLCHAINVER-$MACHINE.tar.gz \
                > cache/toolchains/$SNAME-$VERSION-toolchain-$TOOLCHAINVER-$MACHINE.md5
        stdumount