NAME="IPFire" # Software name
SNAME="ipfire" # Short name
-VERSION="2.11" # Version number
+VERSION="2.13" # Version number
- CORE="63" # Core Level (Filename)
+ CORE="64" # Core Level (Filename)
PAKFIRE_CORE="63" # Core Level (PAKFIRE)
GIT_BRANCH=`git status | head -n1 | cut -d" " -f4` # Git Branch
SLOGAN="www.ipfire.org" # Software slogan
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
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
local error=false
case "${MACHINE}:$(uname -m)" in
# x86
- i586:i586|i586:i686)
+ i586:i586|i586:i686|i586:x86_64)
# These are working.
;;
i586:*)
;;
# ARM
- armv5tel:armv5tel|armv5tel:armv5tejl|armv5tel:armv7l)
+ armv5tel:armv5tel|armv5tel:armv5tejl|armv5tel:armv6l|armv5tel:armv7l)
# These are working.
;;
armv5tel:*)
${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
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
}
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
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
lfsmake2 diffutils
lfsmake2 e2fsprogs
lfsmake2 ed
- lfsmake2 file
lfsmake2 findutils
lfsmake2 flex
lfsmake2 gawk
lfsmake2 iproute2
lfsmake2 kbd
lfsmake2 less
- lfsmake2 libaal
lfsmake2 make
lfsmake2 man
lfsmake2 mktemp
lfsmake2 net-tools
lfsmake2 patch
lfsmake2 psmisc
- lfsmake2 reiser4progs
lfsmake2 shadow
lfsmake2 sysklogd
lfsmake2 sysvinit
lfsmake2 udev
lfsmake2 util-linux
lfsmake2 vim
+ lfsmake2 xz
lfsmake2 grub
}
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"
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 v4l-dvb 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 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
ipfiremake dracut
ipfiremake expat
ipfiremake gdbm
- ipfiremake gmp
ipfiremake pam
ipfiremake openssl
ipfiremake curl
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
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
ipfiremake traceroute
ipfiremake vlan
ipfiremake wireless
- ipfiremake libsafe
ipfiremake pakfire
ipfiremake spandsp
ipfiremake lzo
ipfiremake wget
ipfiremake bridge-utils
ipfiremake screen
- ipfiremake hddtemp
ipfiremake smartmontools
ipfiremake htop
ipfiremake postfix
ipfiremake cmake
ipfiremake gnump3d
ipfiremake libsigc++
- ipfiremake applejuice
ipfiremake libtorrent
ipfiremake rtorrent
ipfiremake ipfireseeder
ipfiremake vsftpd
ipfiremake strongswan
ipfiremake lsof
- ipfiremake centerim
ipfiremake br2684ctl
ipfiremake pcmciautils
ipfiremake lm_sensors
ipfiremake fbset
ipfiremake sdl
ipfiremake qemu
- ipfiremake qemu-kqemu
ipfiremake sane
ipfiremake netpbm
ipfiremake phpSANE
ipfiremake nagios
ipfiremake nagios_nrpe
ipfiremake ebtables
- ipfiremake fontconfig
- ipfiremake freefont
ipfiremake directfb
ipfiremake dfb++
ipfiremake faad2
ipfiremake iw
ipfiremake wpa_supplicant
ipfiremake hostapd
+ ipfiremake pycurl
ipfiremake urlgrabber
ipfiremake syslinux
ipfiremake tftpd
ipfiremake netcat
ipfiremake 7zip
ipfiremake lynis
- ipfiremake splix
ipfiremake streamripper
ipfiremake sshfs
ipfiremake taglib
ipfiremake nut
ipfiremake watchdog
ipfiremake libpri
- ipfiremake dahdi
ipfiremake asterisk
ipfiremake lcr
ipfiremake usb_modeswitch
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
echo Build on $HOSTNAME > $BASEDIR/build/var/ipfire/firebuild
cat /proc/version >> $BASEDIR/build/var/ipfire/firebuild
echo >> $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" -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() {
ipfiremake mbr
ipfiremake memtest
ipfiremake installer
- cp -f $BASEDIR/doc/COPYING $BASEDIR/build/install/initrd/
installmake strip
ipfiremake initrd
}
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
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
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