SNAME="ipfire" # Short name
# If you update the version don't forget to update backupiso and add it to core update
VERSION="2.23" # Version number
-CORE="132" # Core Level (Filename)
-PAKFIRE_CORE="132" # Core Level (PAKFIRE)
+CORE="140" # Core Level (Filename)
+PAKFIRE_CORE="139" # 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
GIT_TAG=$(git tag | tail -1) # Git Tag
GIT_LASTCOMMIT=$(git log | head -n1 | cut -d" " -f2 |head -c8) # Last commit
-TOOLCHAINVER=20181030
+TOOLCHAINVER=20190814
###############################################################################
#
CROSSTARGET="${build_arch}-cross-linux-gnueabi"
BUILD_PLATFORM="arm"
CFLAGS_ARCH="-march=armv5te -mfloat-abi=soft -fomit-frame-pointer"
+ RUSTFLAGS="-Ccodegen-units=1"
;;
*)
umount $BASEDIR/build/usr/src/lfs 2>/dev/null;
umount $BASEDIR/build/usr/src/log 2>/dev/null;
umount $BASEDIR/build/usr/src/src 2>/dev/null;
+ umount $BASEDIR/build/usr/src 2>/dev/null;
}
now() {
# Setup environment
set +h
LC_ALL=POSIX
- export LFS LC_ALL CFLAGS CXXFLAGS DEFAULT_PARALLELISM
+ export LFS LC_ALL CFLAGS CXXFLAGS DEFAULT_PARALLELISM RUSTFLAGS
unset CC CXX CPP LD_LIBRARY_PATH LD_PRELOAD
# Make some extra directories
mkdir -p "${BASEDIR}/build${TOOLS_DIR}" 2>/dev/null
mkdir -p $BASEDIR/build/{etc,usr/src} 2>/dev/null
mkdir -p $BASEDIR/build/{dev/{shm,pts},proc,sys}
- mkdir -p $BASEDIR/{cache,ccache} 2>/dev/null
+ mkdir -p $BASEDIR/{cache,ccache/${BUILD_ARCH}} 2>/dev/null
+
+ if [ "${ENABLE_RAMDISK}" = "on" ]; then
+ mkdir -p $BASEDIR/build/usr/src
+ mount -t tmpfs tmpfs -o size=4G,nr_inodes=1M,mode=1777 $BASEDIR/build/usr/src
+ fi
+
mkdir -p $BASEDIR/build/usr/src/{cache,config,doc,html,langs,lfs,log,src,ccache}
mknod -m 600 $BASEDIR/build/dev/console c 5 1 2>/dev/null
mount --bind /proc $BASEDIR/build/proc
mount --bind /sys $BASEDIR/build/sys
mount --bind $BASEDIR/cache $BASEDIR/build/usr/src/cache
- mount --bind $BASEDIR/ccache $BASEDIR/build/usr/src/ccache
+ mount --bind $BASEDIR/ccache/${BUILD_ARCH} $BASEDIR/build/usr/src/ccache
mount --bind $BASEDIR/config $BASEDIR/build/usr/src/config
mount --bind $BASEDIR/doc $BASEDIR/build/usr/src/doc
mount --bind $BASEDIR/html $BASEDIR/build/usr/src/html
SYSTEM_RELEASE="${SYSTEM_RELEASE} - Development Build: $GIT_BRANCH/$GIT_LASTCOMMIT$GIT_STATUS"
;;
esac
+
+ # Setup ccache cache size
+ enterchroot ccache --max-size="${CCACHE_CACHE_SIZE}" >/dev/null
}
enterchroot() {
CONFIG_ROOT="${CONFIG_ROOT}" \
CFLAGS="${CFLAGS} ${HARDENING_CFLAGS}" \
CXXFLAGS="${CXXFLAGS} ${HARDENING_CFLAGS}" \
+ RUSTFLAGS="${RUSTFLAGS}" \
BUILDTARGET="${BUILDTARGET}" \
CROSSTARGET="${CROSSTARGET}" \
BUILD_ARCH="${BUILD_ARCH}" \
# Fake kernel version, because some of the packages do not compile
# with kernel 3.0 and later.
- env="${env} UTS_RELEASE=${KVER}"
+ env="${env} UTS_RELEASE=${KVER}-ipfire"
# Fake machine version.
env="${env} UTS_MACHINE=${BUILD_ARCH}"
return 0
}
+# Default settings
+CCACHE_CACHE_SIZE="4G"
+ENABLE_RAMDISK="auto"
+
# Load configuration file
if [ -f .config ]; then
. .config
configure_build "default"
fi
+# Automatically enable/disable ramdisk usage
+if [ "${ENABLE_RAMDISK}" = "auto" ]; then
+ # Enable only when the host system has 4GB of RAM or more
+ if [ ${SYSTEM_MEMORY} -ge 3900 ]; then
+ ENABLE_RAMDISK="on"
+ fi
+fi
+
buildtoolchain() {
local error=false
case "${BUILD_ARCH}:${HOST_ARCH}" in
lfsmake1 make
lfsmake1 patch
lfsmake1 perl
+ lfsmake1 python3
lfsmake1 sed
lfsmake1 tar
lfsmake1 texinfo
lfsmake2 lvm2
lfsmake2 multipath-tools
lfsmake2 freetype
- lfsmake2 grub
- lfsmake2 efivar
- lfsmake2 efibootmgr
lfsmake2 libmnl
lfsmake2 libnfnetlink
lfsmake2 libnetfilter_queue
lfsmake2 libffi
lfsmake2 python
lfsmake2 python3
+ lfsmake2 grub
+ lfsmake2 efivar
+ lfsmake2 efibootmgr
lfsmake2 ca-certificates
lfsmake2 fireinfo
lfsmake2 libnet
lfsmake2 beep
lfsmake2 libarchive
lfsmake2 cmake
+ lfsmake2 libssh
lfsmake2 cdrkit
lfsmake2 dosfstools
lfsmake2 reiserfsprogs
lfsmake2 misc-progs
lfsmake2 nano
lfsmake2 URI
+ lfsmake2 perl-CGI
+ lfsmake2 perl-Switch
lfsmake2 HTML-Tagset
lfsmake2 HTML-Parser
lfsmake2 HTML-Template
lfsmake2 setserial
lfsmake2 setup
lfsmake2 libdnet
+ lfsmake2 rust
+ lfsmake2 jansson
lfsmake2 yaml
lfsmake2 libhtp
+ lfsmake2 colm
+ lfsmake2 ragel
+ lfsmake2 hyperscan
lfsmake2 suricata
lfsmake2 oinkmaster
lfsmake2 ids-ruleset-sources
lfsmake2 fetchmail
lfsmake2 cyrus-imapd
lfsmake2 clamav
+ lfsmake2 perl-NetAddr-IP
lfsmake2 spamassassin
+ lfsmake2 perl-Net-LibIDN
lfsmake2 amavisd
lfsmake2 dma
lfsmake2 alsa
lfsmake2 perl-gettext
lfsmake2 perl-Sort-Naturally
lfsmake2 vdradmin
- lfsmake2 miau
lfsmake2 perl-DBI
lfsmake2 perl-DBD-SQLite
lfsmake2 perl-File-ReadBackwards
lfsmake2 watchdog
lfsmake2 libpri
lfsmake2 libsrtp
- lfsmake2 jansson
lfsmake2 asterisk
lfsmake2 usb_modeswitch
lfsmake2 usb_modeswitch_data
lfsmake2 swig
lfsmake2 u-boot
lfsmake2 u-boot-kirkwood
+ lfsmake2 u-boot-friendlyarm
lfsmake2 python-typing
lfsmake2 python-m2crypto
lfsmake2 wireless-regdb
lfsmake2 flashrom
lfsmake2 firmware-update
lfsmake2 tshark
+ lfsmake2 geoip-generator
+ lfsmake2 speedtest-cli
+ lfsmake2 rfkill
}
buildinstaller() {