Merge remote-tracking branch 'origin/next' into thirteen
[ipfire-2.x.git] / make.sh
diff --git a/make.sh b/make.sh
index 6fb2d94..0934909 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="65"                                                      # Core Level (Filename)
 PAKFIRE_CORE="65"                                              # 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=6
 
 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 linux                     TOOLS=1 KCFG="-headers"
     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 linux                     KCFG="-headers"
     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,20 +371,18 @@ buildipfire() {
   ipfiremake pptp
   ipfiremake unzip
   ipfiremake which
-  ipfiremake xz
   ipfiremake linux-firmware
+  ipfiremake dvb-firmwares
   ipfiremake zd1211-firmware
-  ipfiremake fw_ath9k_htc
+  ipfiremake rpi-firmware
   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"
+
+    # x86-xen (Legacy XEN) kernel build
+    ipfiremake linux2                  KCFG="-xen"
     ipfiremake v4l-dvb                 KCFG="-xen"
-    ipfiremake madwifi                 KCFG="-xen"
     ipfiremake mISDN                   KCFG="-xen"
-    ipfiremake dahdi                   KCFG="-xen" KMOD=1
     ipfiremake cryptodev               KCFG="-xen"
     ipfiremake compat-wireless         KCFG="-xen"
     ipfiremake r8169                   KCFG="-xen"
@@ -404,71 +391,60 @@ buildipfire() {
     ipfiremake e1000                   KCFG="-xen"
     ipfiremake e1000e                  KCFG="-xen"
     ipfiremake igb                     KCFG="-xen"
+
+    # x86-pae (Native and new XEN) kernel build
     ipfiremake linux                   KCFG="-pae"
-    ipfiremake kqemu                   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 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 r8169                   KCFG="-pae"
+    ipfiremake r8168                   KCFG="-pae"
+    ipfiremake r8101                   KCFG="-pae"
     ipfiremake e1000e                  KCFG="-pae"
     ipfiremake igb                     KCFG="-pae"
+
+    # x86 kernel build
     ipfiremake linux                   KCFG=""
-    ipfiremake v4l-dvb                 KCFG=""
-    ipfiremake kqemu                   KCFG=""
     ipfiremake kvm-kmod                        KCFG=""
-    ipfiremake madwifi                 KCFG=""
-    ipfiremake alsa                    KCFG="" KMOD=1
+    ipfiremake v4l-dvb                 KCFG=""
     ipfiremake mISDN                   KCFG=""
-    ipfiremake dahdi                   KCFG="" KMOD=1
     ipfiremake cryptodev               KCFG=""
     ipfiremake compat-wireless         KCFG=""
-#    ipfiremake r8169                  KCFG=""
-#    ipfiremake r8168                  KCFG=""
-#    ipfiremake r8101                  KCFG=""
-    ipfiremake e1000                   KCFG=""
+    ipfiremake r8169                   KCFG=""
+    ipfiremake r8168                   KCFG=""
+    ipfiremake r8101                   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-kirkwood kernel build
+    # arm-rpi (Raspberry Pi) kernel build
+    ipfiremake linux                   KCFG="-rpi"
+    ipfiremake v4l-dvb                 KCFG="-rpi"
+    ipfiremake mISDN                   KCFG="-rpi" NOPCI=1
+    ipfiremake cryptodev               KCFG="-rpi"
+    ipfiremake compat-wireless         KCFG="-rpi"
+
+    # arm-omap (Panda Board) kernel build
+    ipfiremake linux                   KCFG="-omap"
+    ipfiremake v4l-dvb                 KCFG="-omap"
+    ipfiremake mISDN                   KCFG="-omap" NOPCI=1
+    ipfiremake cryptodev               KCFG="-omap"
+    ipfiremake compat-wireless         KCFG="-omap"
+
+    # arm-kirkwood (Dreamplug, ICY-Box ...) 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 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 r8169                   KCFG="-kirkwood"
+    ipfiremake r8168                   KCFG="-kirkwood"
+    ipfiremake r8101                   KCFG="-kirkwood"
     ipfiremake e1000e                  KCFG="-kirkwood"
     ipfiremake igb                     KCFG="-kirkwood"
+
   fi
   ipfiremake pkg-config
   ipfiremake linux-atm
@@ -476,7 +452,6 @@ buildipfire() {
   ipfiremake dracut
   ipfiremake expat
   ipfiremake gdbm
-  ipfiremake gmp
   ipfiremake pam
   ipfiremake openssl
   ipfiremake curl
@@ -537,13 +512,11 @@ buildipfire() {
   ipfiremake iptables
   ipfiremake libupnp
   ipfiremake ipaddr
-  ipfiremake iptstate
   ipfiremake iputils
   ipfiremake l7-protocols
   ipfiremake mISDNuser
   ipfiremake capi4k-utils
   ipfiremake hwdata
-  ipfiremake kudzu
   ipfiremake logrotate
   ipfiremake logwatch
   ipfiremake misc-progs
@@ -579,12 +552,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 +579,6 @@ buildipfire() {
   ipfiremake traceroute
   ipfiremake vlan
   ipfiremake wireless
-  ipfiremake libsafe
   ipfiremake pakfire
   ipfiremake spandsp
   ipfiremake lzo
@@ -615,7 +594,6 @@ buildipfire() {
   ipfiremake wget
   ipfiremake bridge-utils
   ipfiremake screen
-  ipfiremake hddtemp
   ipfiremake smartmontools
   ipfiremake htop
   ipfiremake postfix
@@ -642,10 +620,8 @@ buildipfire() {
   ipfiremake cmake
   ipfiremake gnump3d
   ipfiremake libsigc++
-  ipfiremake applejuice
   ipfiremake libtorrent
   ipfiremake rtorrent
-  ipfiremake ipfireseeder
   ipfiremake rsync
   ipfiremake tcpwrapper
   ipfiremake libevent
@@ -661,7 +637,6 @@ buildipfire() {
   ipfiremake vsftpd
   ipfiremake strongswan
   ipfiremake lsof
-  ipfiremake centerim
   ipfiremake br2684ctl
   ipfiremake pcmciautils
   ipfiremake lm_sensors
@@ -673,7 +648,6 @@ buildipfire() {
   ipfiremake fbset
   ipfiremake sdl
   ipfiremake qemu
-  ipfiremake qemu-kqemu
   ipfiremake sane
   ipfiremake netpbm
   ipfiremake phpSANE
@@ -681,13 +655,10 @@ buildipfire() {
   ipfiremake nagios
   ipfiremake nagios_nrpe
   ipfiremake ebtables
-  ipfiremake fontconfig
-  ipfiremake freefont
   ipfiremake directfb
   ipfiremake dfb++
   ipfiremake faad2
   ipfiremake ffmpeg
-  ipfiremake videolan
   ipfiremake vdr
   ipfiremake w_scan
   ipfiremake icecast
@@ -703,6 +674,7 @@ buildipfire() {
   ipfiremake iw
   ipfiremake wpa_supplicant
   ipfiremake hostapd
+  ipfiremake pycurl
   ipfiremake urlgrabber
   ipfiremake syslinux
   ipfiremake tftpd
@@ -715,7 +687,6 @@ buildipfire() {
   ipfiremake netcat
   ipfiremake 7zip
   ipfiremake lynis
-  ipfiremake splix
   ipfiremake streamripper
   ipfiremake sshfs
   ipfiremake taglib
@@ -737,7 +708,6 @@ buildipfire() {
   ipfiremake nut
   ipfiremake watchdog
   ipfiremake libpri
-  ipfiremake dahdi
   ipfiremake asterisk
   ipfiremake lcr
   ipfiremake usb_modeswitch
@@ -763,15 +733,20 @@ buildipfire() {
   ipfiremake python-progressbar
   ipfiremake python-xattr
   ipfiremake intltool
-  ipfiremake pakfire3-deps
   ipfiremake transmission
   ipfiremake dpfhack
   ipfiremake lcd4linux
   ipfiremake mtr
   ipfiremake tcpick
   ipfiremake minidlna
+  ipfiremake acpid
   ipfiremake fping
   ipfiremake telnet
+  ipfiremake libgpg-error
+  ipfiremake libassuan
+  ipfiremake gpgme
+  ipfiremake pygpgme
+  ipfiremake pakfire3
   ipfiremake stress
   ipfiremake libstatgrab
   ipfiremake sarg
@@ -784,11 +759,14 @@ buildipfire() {
   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" -o "$GIT_BRANCH" = "next" ]; then
-       echo "$NAME $VERSION ($MACHINE) - Development Build: $GIT_LASTCOMMIT" > $BASEDIR/build/etc/system-release
-  else
-       echo "$NAME $VERSION ($MACHINE) - $GIT_BRANCH" > $BASEDIR/build/etc/system-release
-  fi
+  case "$GIT_BRANCH" in
+       core*)
+           echo "$NAME $VERSION ($MACHINE) - $GIT_BRANCH" > $BASEDIR/build/etc/system-release
+           ;;
+       *)
+           echo "$NAME $VERSION ($MACHINE) - Development Build: $GIT_BRANCH/$GIT_LASTCOMMIT" > $BASEDIR/build/etc/system-release
+           ;;
+  esac
 }
 
 buildinstaller() {
@@ -799,7 +777,6 @@ buildinstaller() {
   ipfiremake mbr
   ipfiremake memtest
   ipfiremake installer
-  cp -f $BASEDIR/doc/COPYING $BASEDIR/build/install/initrd/
   installmake strip
   ipfiremake initrd
 }
@@ -850,6 +827,8 @@ buildpackages() {
   if [ $BUILD_IMAGES == 1 ] && ([ -e /dev/loop/0 ] || [ -e /dev/loop0 ]) && [ "${MACHINE_TYPE}" != "arm" ]; then
         cp -f $BASEDIR/packages/linux-xen-*.ipfire $LFS/install/packages/
         cp -f $BASEDIR/packages/meta-linux-xen $LFS/install/packages/
+        cp -f $BASEDIR/packages/linux-pae-*.ipfire $LFS/install/packages/
+        cp -f $BASEDIR/packages/meta-linux-pae $LFS/install/packages/
        ipfiremake xen-image
        rm -rf $LFS/install/packages/linux-xen-*.ipfire
        rm -rf $LFS/install/packages/meta-linux-xen
@@ -886,7 +865,7 @@ ipfirepackages() {
        ipfiremake core-updates
 
        local i
-       for i in $(find $BASEDIR/config/rootfiles/packages{${machine},} -maxdepth 1 -type f); do
+       for i in $(find $BASEDIR/config/rootfiles/packages{/${MACHINE},} -maxdepth 1 -type f); do
                i=$(basename ${i})
                if [ -e $BASEDIR/lfs/$i ]; then
                        ipfiredist $i
@@ -1041,9 +1020,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