NAME="IPFire" # Software name
SNAME="ipfire" # Short name
-VERSION="2.15" # Version number
-CORE="77" # Core Level (Filename)
-PAKFIRE_CORE="77" # Core Level (PAKFIRE)
+VERSION="2.17" # Version number
+CORE="87" # Core Level (Filename)
+PAKFIRE_CORE="86" # Core Level (PAKFIRE)
GIT_BRANCH=`git rev-parse --abbrev-ref HEAD` # Git Branch
SLOGAN="www.ipfire.org" # Software slogan
CONFIG_ROOT=/var/ipfire # Configuration rootdir
MAX_RETRIES=1 # prefetch/check loop
BUILD_IMAGES=1 # Flash and Xen Downloader
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=7
-
-BUILDMACHINE=$MACHINE
- if [ "$MACHINE" = "x86_64" ]; then
- BUILDMACHINE="i686";
- fi
+TOOLCHAINVER=8
+# New architecture variables
+BUILD_ARCH="$(uname -m)"
+BUILDMACHINE="${BUILD_ARCH}"
# Debian specific settings
if [ ! -e /etc/debian_version ]; then
. .config
fi
+if [ -n "${TARGET_ARCH}" ]; then
+ configure_target "${TARGET_ARCH}"
+else
+ configure_target "default"
+fi
+
if [ -z $EDITOR ]; then
for i in nano emacs vi; do
EDITOR=$(which $i 2>/dev/null)
buildtoolchain() {
local error=false
- case "${MACHINE}:$(uname -m)" in
+ case "${TARGET_ARCH}:${BUILD_ARCH}" in
# x86
i586:i586|i586:i686|i586:x86_64)
# These are working.
lfsmake2 groff
lfsmake2 gperf
lfsmake2 gzip
- lfsmake2 inetutils
+ lfsmake2 hostname
lfsmake2 iproute2
lfsmake2 jwhois
lfsmake2 kbd
lfsmake2 less
lfsmake2 make
lfsmake2 man
- lfsmake2 mktemp
lfsmake2 kmod
lfsmake2 net-tools
lfsmake2 patch
lfsmake2 vim
lfsmake2 xz
lfsmake2 paxctl
- lfsmake2 grub
}
buildipfire() {
export LOGFILE
ipfiremake configroot
ipfiremake backup
- ipfiremake bind
- ipfiremake dhcp
- ipfiremake dhcpcd
ipfiremake libusb
ipfiremake libusbx
ipfiremake libpcap
ipfiremake rpi-firmware
ipfiremake bc
ipfiremake u-boot
+ ipfiremake cpio
+ ipfiremake mdadm
+ ipfiremake dracut
+ ipfiremake lvm2
+ ipfiremake multipath-tools
+ ipfiremake freetype
+ ipfiremake grub
+
+ case "${TARGET_ARCH}" in
+ i586)
+ # x86-pae (Native and new XEN) kernel build
+ ipfiremake linux KCFG="-pae"
+ ipfiremake backports KCFG="-pae"
+ ipfiremake cryptodev KCFG="-pae"
+ ipfiremake e1000e KCFG="-pae"
+ ipfiremake igb KCFG="-pae"
+ ipfiremake ixgbe KCFG="-pae"
+ ipfiremake linux-initrd KCFG="-pae"
+
+ # x86 kernel build
+ ipfiremake linux KCFG=""
+ ipfiremake backports KCFG=""
+ ipfiremake cryptodev KCFG=""
+ ipfiremake e1000e KCFG=""
+ ipfiremake igb KCFG=""
+ ipfiremake ixgbe KCFG=""
+ ipfiremake linux-initrd KCFG=""
+ ;;
- if [ "${MACHINE_TYPE}" != "arm" ]; then
-
- # x86-pae (Native and new XEN) kernel build
- ipfiremake linux KCFG="-pae"
-# ipfiremake kvm-kmod KCFG="-pae"
-# ipfiremake v4l-dvb KCFG="-pae"
-# ipfiremake mISDN KCFG="-pae"
- ipfiremake cryptodev KCFG="-pae"
-# ipfiremake compat-drivers 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 kvm-kmod KCFG=""
-# ipfiremake v4l-dvb KCFG=""
-# ipfiremake mISDN KCFG=""
- ipfiremake cryptodev KCFG=""
-# ipfiremake compat-drivers KCFG=""
-# ipfiremake r8169 KCFG=""
-# ipfiremake r8168 KCFG=""
-# ipfiremake r8101 KCFG=""
- ipfiremake e1000e KCFG=""
- ipfiremake igb KCFG=""
-
- else
- # 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-drivers KCFG="-rpi"
-
- # arm multi platform (Panda, Wandboard ...) kernel build
- ipfiremake linux KCFG="-multi"
- ipfiremake cryptodev KCFG="-multi"
- ipfiremake e1000e KCFG="-multi"
- ipfiremake igb KCFG="-multi"
-
- # arm-kirkwood (Dreamplug, ICY-Box ...) kernel build
- ipfiremake linux KCFG="-kirkwood"
-# ipfiremake v4l-dvb KCFG="-kirkwood"
-# ipfiremake mISDN KCFG="-kirkwood"
- ipfiremake cryptodev KCFG="-kirkwood"
-# ipfiremake compat-drivers KCFG="-kirkwood"
-# ipfiremake r8169 KCFG="-kirkwood"
-# ipfiremake r8168 KCFG="-kirkwood"
-# ipfiremake r8101 KCFG="-kirkwood"
-# ipfiremake e1000e KCFG="-kirkwood"
- ipfiremake igb KCFG="-kirkwood"
-
- fi
+ armv5tel)
+ # arm-rpi (Raspberry Pi) kernel build
+ ipfiremake linux KCFG="-rpi"
+ ipfiremake backports KCFG="-rpi"
+ ipfiremake cryptodev KCFG="-rpi"
+ ipfiremake linux-initrd KCFG="-rpi"
+
+ # arm multi platform (Panda, Wandboard ...) kernel build
+ ipfiremake linux KCFG="-multi"
+ ipfiremake backports KCFG="-multi"
+ ipfiremake cryptodev KCFG="-multi"
+ ipfiremake e1000e KCFG="-multi"
+ ipfiremake igb KCFG="-multi"
+ ipfiremake ixgbe KCFG="-multi"
+ ipfiremake linux-initrd KCFG="-multi"
+
+ # arm-kirkwood (Dreamplug, ICY-Box ...) kernel build
+ ipfiremake linux KCFG="-kirkwood"
+ ipfiremake backports KCFG="-kirkwood"
+ ipfiremake cryptodev KCFG="-kirkwood"
+ ipfiremake e1000e KCFG="-kirkwood"
+ ipfiremake igb KCFG="-kirkwood"
+ ipfiremake ixgbe KCFG="-kirkwood"
+ ipfiremake linux-initrd KCFG="-kirkwood"
+ ;;
+ esac
ipfiremake pkg-config
+ ipfiremake openssl
+ ipfiremake openssl-compat
+ ipfiremake libgpg-error
+ ipfiremake libgcrypt
+ ipfiremake libassuan
+ ipfiremake bind
+ ipfiremake dhcp
+ ipfiremake dhcpcd
+ ipfiremake boost
ipfiremake linux-atm
- ipfiremake cpio
- ipfiremake dracut
ipfiremake expat
ipfiremake gdbm
ipfiremake pam
- ipfiremake openssl
- ipfiremake openssl-compat
ipfiremake curl
ipfiremake tcl
ipfiremake sqlite
ipfiremake fireinfo
ipfiremake libnet
ipfiremake libnl
+ ipfiremake libnl-3
ipfiremake libidn
ipfiremake nasm
ipfiremake libjpeg
ipfiremake libpng
ipfiremake libtiff
ipfiremake libart
- ipfiremake freetype
ipfiremake gd
ipfiremake popt
ipfiremake pcre
ipfiremake slang
ipfiremake newt
+ ipfiremake libsmooth
ipfiremake attr
ipfiremake acl
ipfiremake libcap
ipfiremake arping
ipfiremake beep
ipfiremake dvdrtools
+ ipfiremake nettle
ipfiremake dnsmasq
ipfiremake dosfstools
ipfiremake reiserfsprogs
ipfiremake foomatic
ipfiremake hplip
ipfiremake cifs-utils
+ ipfiremake krb5
ipfiremake samba
ipfiremake sudo
ipfiremake mc
ipfiremake netpbm
ipfiremake phpSANE
ipfiremake tunctl
+ ipfiremake netsnmpd
ipfiremake nagios
ipfiremake nagios_nrpe
+ ipfiremake icinga
ipfiremake ebtables
ipfiremake directfb
ipfiremake dfb++
ipfiremake ffmpeg
ipfiremake vdr
ipfiremake vdr_streamdev
+ ipfiremake vdr_vnsiserver5
ipfiremake vdr_vnsiserver3
ipfiremake vdr_epgsearch
ipfiremake vdr_dvbapi
ipfiremake perl-Sort-Naturally
ipfiremake vdradmin
ipfiremake miau
- ipfiremake netsnmpd
ipfiremake perl-DBI
ipfiremake perl-DBD-mysql
ipfiremake perl-DBD-SQLite
ipfiremake perl-File-ReadBackwards
ipfiremake cacti
- ipfiremake icecc
ipfiremake openvmtools
ipfiremake nagiosql
ipfiremake iftop
ipfiremake nut
ipfiremake watchdog
ipfiremake libpri
+ ipfiremake libsrtp
ipfiremake asterisk
ipfiremake lcr
ipfiremake usb_modeswitch
ipfiremake usb_modeswitch_data
ipfiremake zerofree
- ipfiremake mdadm
ipfiremake pound
ipfiremake minicom
ipfiremake ddrescue
ipfiremake python-progressbar
ipfiremake python-xattr
ipfiremake intltool
+ ipfiremake ddns
ipfiremake transmission
ipfiremake dpfhack
ipfiremake lcd4linux
ipfiremake fping
ipfiremake telnet
ipfiremake xinetd
- ipfiremake libgpg-error
- ipfiremake libassuan
ipfiremake gpgme
ipfiremake pygpgme
ipfiremake pakfire3
ipfiremake iptraf-ng
ipfiremake iotop
ipfiremake stunnel
+ ipfiremake sslscan
+ ipfiremake owncloud
+ ipfiremake bacula
+ ipfiremake batctl
+ ipfiremake perl-PDF-API2
+ ipfiremake squid-accounting
+ ipfiremake pigz
+ ipfiremake tmux
}
buildinstaller() {
ipfiremake memtest
ipfiremake installer
installmake strip
- ipfiremake initrd
}
buildpackages() {
modprobe loop 2>/dev/null
if [ $BUILD_IMAGES == 1 ] && ([ -e /dev/loop/0 ] || [ -e /dev/loop0 ] || [ -e "/dev/loop-control" ]); then
ipfiremake flash-images
+ ipfiremake flash-images SCON=1
fi
mv $LFS/install/images/{*.iso,*.tgz,*.img.gz,*.bz2} $BASEDIR >> $LOGFILE 2>&1
rm -rf $BASEDIR/build/install/packages/*
}
+while [ $# -gt 0 ]; do
+ case "${1}" in
+ --target=*)
+ configure_target "${1#--target=}"
+ ;;
+ -*)
+ exiterror "Unknown configuration option: ${1}"
+ ;;
+ *)
+ # Found a command, so exit options parsing.
+ break
+ ;;
+ esac
+ shift
+done
+
# See what we're supposed to do
case "$1" in
build)