]> git.ipfire.org Git - ipfire-2.x.git/blobdiff - make.sh
Crypt-PasswdMD5: add new perl modul to use apache md5 passwords.
[ipfire-2.x.git] / make.sh
diff --git a/make.sh b/make.sh
index 7ecc812e785aabc2520f4b5b54ab1b6e891862c8..dba36b460ffe07fb6c86eb84caa48626297722cc 100755 (executable)
--- a/make.sh
+++ b/make.sh
@@ -17,7 +17,7 @@
 # along with IPFire; if not, write to the Free Software                    #
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA #
 #                                                                          #
-# Copyright (C) 2007-2011 IPFire-Team <info@ipfire.org>.                   #
+# Copyright (C) 2007-2012 IPFire Team <info@ipfire.org>.                   #
 #                                                                          #
 ############################################################################
 #
@@ -25,8 +25,8 @@
 NAME="IPFire"                                                  # Software name
 SNAME="ipfire"                                                 # Short name
 VERSION="2.11"                                                 # Version number
-CORE="53"                                                      # Core Level (Filename)
-PAKFIRE_CORE="52"                                              # Core Level (PAKFIRE)
+CORE="56"                                                      # Core Level (Filename)
+PAKFIRE_CORE="55"                                              # 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
@@ -37,7 +37,7 @@ 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=1
+TOOLCHAINVER=3
 
 BUILDMACHINE=$MACHINE
     if [ "$MACHINE" = "x86_64" ]; then
@@ -71,14 +71,6 @@ mkdir $BASEDIR/log/ 2>/dev/null
 
 if [ -f .config ]; then
        . .config
-else
-       echo -e  "${BOLD}No configuration found!${NORMAL}"
-       echo -ne "Do you want to create one (y/N)?"
-       read CREATE_CONFIG
-       echo ""
-       if [ "$CREATE_CONFIG" == "y" ]; then
-               make_config
-       fi
 fi
 
 if [ -z $EDITOR ]; then
@@ -237,9 +229,28 @@ prepareenv() {
 }
 
 buildtoolchain() {
-    if [ "$(uname -m)" = "x86_64" ]; then
-        exiterror "Cannot build toolchain on x86_64. Please use the download."
-    fi
+    local error=false
+    case "${MACHINE}:$(uname -m)" in
+        # x86
+        i586:i586|i586:i686)
+            # These are working.
+            ;;
+        i586:*)
+            error=true
+            ;;
+
+        # ARM
+        armv5tel:armv5tel|armv5tel:armv5tejl|armv5tel:armv7l)
+            # These are working.
+            ;;
+        armv5tel:*)
+            error=true
+            ;;
+    esac
+
+    ${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."
     fi
@@ -249,11 +260,11 @@ buildtoolchain() {
     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
-    export PATH=$BASEDIR/build/usr/local/bin:$BASEDIR/build/tools/bin:$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
@@ -261,6 +272,7 @@ buildtoolchain() {
     fi
     lfsmake1 glibc
     lfsmake1 cleanup-toolchain PASS=1
+    lfsmake1 fake-environ
     lfsmake1 tcl
     lfsmake1 expect
     lfsmake1 dejagnu
@@ -301,6 +313,7 @@ buildbase() {
     fi
     lfsmake2 man-pages
     lfsmake2 glibc
+    lfsmake2 tzdata
     lfsmake2 cleanup-toolchain PASS=3
     lfsmake2 binutils
     lfsmake2 gcc
@@ -371,63 +384,91 @@ buildipfire() {
   ipfiremake xz
   ipfiremake linux-firmware
   ipfiremake zd1211-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                   XEN=1
-    ipfiremake kqemu                   XEN=1
-    ipfiremake v4l-dvb                 XEN=1
-    ipfiremake madwifi                 XEN=1
-    ipfiremake mISDN                   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 igb                     XEN=1
-    ipfiremake linux                   PAE=1
-    ipfiremake kqemu                   PAE=1
-    ipfiremake kvm-kmod                        PAE=1
-    ipfiremake v4l-dvb                 PAE=1
-    ipfiremake madwifi                 PAE=1
-    ipfiremake alsa                    PAE=1 KMOD=1
-    ipfiremake mISDN                   PAE=1
-    ipfiremake dahdi                   PAE=1 KMOD=1
-    ipfiremake cryptodev                       PAE=1
-    ipfiremake compat-wireless         PAE=1
-#    ipfiremake r8169                  PAE=1
-#    ipfiremake r8168                  PAE=1
-#    ipfiremake r8101                  PAE=1
-    ipfiremake e1000                   PAE=1
-    ipfiremake e1000e                  PAE=1
-    ipfiremake igb                     PAE=1
-  fi
-
-  # Default kernel build
-  ipfiremake linux
-  ipfiremake v4l-dvb
-  ipfiremake kqemu
-  ipfiremake kvm-kmod
-  ipfiremake madwifi
-  if [ "${MACHINE_TYPE}" = "arm" ]; then
-    #todo enable alsa driver in kernel config
-    ipfiremake alsa                    KMOD=1
+    ipfiremake linux                   KCFG="-xen"
+    ipfiremake kqemu                   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"
+    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 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 e1000e                  KCFG="-pae"
+    ipfiremake igb                     KCFG="-pae"
+    ipfiremake linux                   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 cryptodev               KCFG=""
+    ipfiremake compat-wireless         KCFG=""
+#    ipfiremake r8169                  KCFG=""
+#    ipfiremake r8168                  KCFG=""
+#    ipfiremake r8101                  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-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 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"
   fi
-  #undefined declaration in echo canceler try to fix later
-  ipfiremake mISDN
-  ipfiremake dahdi                     KMOD=1
-  ipfiremake cryptodev
-  ipfiremake compat-wireless
-#  ipfiremake r8169
-#  ipfiremake r8168
-#  ipfiremake r8101
-  ipfiremake e1000
-  ipfiremake e1000e
-  ipfiremake igb
   ipfiremake pkg-config
   ipfiremake linux-atm
   ipfiremake cpio
@@ -530,6 +571,7 @@ buildipfire() {
   ipfiremake Text-Tabs+Wrap
   ipfiremake Locale-Country
   ipfiremake XML-Parser
+  ipfiremake Crypt-PasswdMD5
   ipfiremake python-setuptools
   ipfiremake python-clientform
   ipfiremake python-mechanize
@@ -622,7 +664,6 @@ buildipfire() {
   ipfiremake lm_sensors
   ipfiremake liboping
   ipfiremake collectd
-  ipfiremake lcd4linux
   ipfiremake teamspeak
   ipfiremake elinks
   ipfiremake igmpproxy
@@ -721,6 +762,8 @@ buildipfire() {
   ipfiremake intltool
   ipfiremake pakfire3-deps
   ipfiremake transmission
+  ipfiremake dpfhack
+  ipfiremake lcd4linux
   echo Build on $HOSTNAME > $BASEDIR/build/var/ipfire/firebuild
   cat /proc/version >> $BASEDIR/build/var/ipfire/firebuild
   echo >> $BASEDIR/build/var/ipfire/firebuild
@@ -730,10 +773,10 @@ 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" = "next" ]; then
-       echo "$NAME $VERSION - (Development Build: $GIT_LASTCOMMIT)" > $BASEDIR/build/etc/system-release
+  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 - $GIT_BRANCH" > $BASEDIR/build/etc/system-release
+       echo "$NAME $VERSION ($MACHINE) - $GIT_BRANCH" > $BASEDIR/build/etc/system-release
   fi
 }
 
@@ -773,7 +816,9 @@ buildpackages() {
   
   # Update changelog
   cd $BASEDIR
-  $0 git log
+  [ -z $GIT_TAG ]  || LAST_TAG=$GIT_TAG
+  [ -z $LAST_TAG ] || EXT="$LAST_TAG..HEAD"
+  git log -n 500 --no-merges --pretty=medium --shortstat $EXT > $BASEDIR/doc/ChangeLog
 
   # Create images for install
   ipfiremake cdrom
@@ -791,7 +836,7 @@ buildpackages() {
   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
+  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/
        ipfiremake xen-image
@@ -828,7 +873,10 @@ buildpackages() {
 
 ipfirepackages() {
        ipfiremake core-updates
-       for i in $(ls -1 $BASEDIR/config/rootfiles/packages); do
+
+       local i
+       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
                else
@@ -955,6 +1003,7 @@ downloadsrc)
        ERROR=0
        for i in *; do
                if [ -f "$i" -a "$i" != "Config" ]; then
+                       lfsmakecommoncheck ${i} > /dev/null || continue
                        make -s -f $i LFS_BASEDIR=$BASEDIR MACHINE=$MACHINE \
                                MESSAGE="$i\t " md5 >> $LOGFILE 2>&1
                        if [ $? -ne 0 ]; then