SNAME="ipfire" # Short name
# If you update the version don't forget to update backupiso and add it to core update
VERSION="2.25" # Version number
-CORE="142" # Core Level (Filename)
+CORE="154" # Core Level (Filename)
SLOGAN="www.ipfire.org" # Software slogan
CONFIG_ROOT=/var/ipfire # Configuration rootdir
NICE=10 # Nice level
GIT_TAG="$(git tag | tail -1)" # Git Tag
GIT_LASTCOMMIT="$(git rev-parse --verify HEAD)" # Last commit
-TOOLCHAINVER=20200108
+TOOLCHAINVER=20200924
###############################################################################
#
BUILDTARGET="${build_arch}-unknown-linux-gnu"
CROSSTARGET="${build_arch}-cross-linux-gnu"
BUILD_PLATFORM="x86"
- CFLAGS_ARCH="-m64 -mindirect-branch=thunk -mfunction-return=thunk -mtune=generic"
+ CFLAGS_ARCH="-m64 -mtune=generic -fstack-clash-protection -fcf-protection"
;;
i586)
BUILDTARGET="${build_arch}-pc-linux-gnu"
CROSSTARGET="${build_arch}-cross-linux-gnu"
BUILD_PLATFORM="x86"
- CFLAGS_ARCH="-march=i586 -mindirect-branch=thunk -mfunction-return=thunk -mtune=generic -fomit-frame-pointer"
+ CFLAGS_ARCH="-march=i586 -mtune=generic -fomit-frame-pointer"
;;
aarch64)
BUILDTARGET="${build_arch}-unknown-linux-gnu"
CROSSTARGET="${build_arch}-cross-linux-gnu"
BUILD_PLATFORM="arm"
- CFLAGS_ARCH=""
+ CFLAGS_ARCH="-fstack-clash-protection"
;;
armv7hl)
# Use this as default PARALLELISM
DEFAULT_PARALLELISM="${parallelism}"
+ # Limit lauched ninja build jobs to computed parallel value.
+ NINJAJOBS="${parallelism}"
+
# Compression parameters
# We use mode 8 for reasonable memory usage when decompressing
# but with overall good compression
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;
+ umount $BASEDIR/build/tmp 2>/dev/null;
}
now() {
# Setup environment
set +h
LC_ALL=POSIX
- export LFS LC_ALL CFLAGS CXXFLAGS DEFAULT_PARALLELISM RUSTFLAGS
+ export LFS LC_ALL CFLAGS CXXFLAGS DEFAULT_PARALLELISM RUSTFLAGS NINJAJOBS
unset CC CXX CPP LD_LIBRARY_PATH LD_PRELOAD
# Make some extra directories
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
+ mount -t tmpfs tmpfs -o size=8G,nr_inodes=1M,mode=1777 $BASEDIR/build/usr/src
+
+ mkdir -p ${BASEDIR}/build/tmp
+ mount -t tmpfs tmpfs -o size=4G,nr_inodes=1M,mode=1777 ${BASEDIR}/build/tmp
fi
mkdir -p $BASEDIR/build/usr/src/{cache,config,doc,html,langs,lfs,log,src,ccache}
# Run LFS static binary creation scripts one by one
export CCACHE_DIR=$BASEDIR/ccache
+ export CCACHE_TEMPDIR="/tmp"
export CCACHE_COMPRESS=1
export CCACHE_COMPILERCHECK="string:toolchain-${TOOLCHAINVER} ${BUILD_ARCH}"
BUILD_ARCH="${BUILD_ARCH}" \
BUILD_PLATFORM="${BUILD_PLATFORM}" \
CCACHE_DIR=/usr/src/ccache \
+ CCACHE_TEMPDIR="${CCACHE_TEMPDIR}" \
CCACHE_COMPRESS="${CCACHE_COMPRESS}" \
CCACHE_COMPILERCHECK="${CCACHE_COMPILERCHECK}" \
GOCACHE="/usr/src/ccache/go" \
cd $BASEDIR/lfs && env -i \
PATH="${TOOLS_DIR}/ccache/bin:${TOOLS_DIR}/bin:$PATH" \
CCACHE_DIR="${CCACHE_DIR}" \
+ CCACHE_TEMPDIR="${CCACHE_TEMPDIR}" \
CCACHE_COMPRESS="${CCACHE_COMPRESS}" \
CCACHE_COMPILERCHECK="${CCACHE_COMPILERCHECK}" \
CFLAGS="${CFLAGS}" \
fi
case "${HOST_ARCH},${build_arch}" in
- x86_64,arm*|i?86,arm*|i?86,x86_64)
+ x86_64,arm*|x86_64,aarch64|i?86,arm*|i?86,aarch64|i?86,x86_64)
return 0
;;
*)
local magic
case "${build_arch}" in
+ aarch64)
+ magic="7f454c460201010000000000000000000200b700"
+ ;;
arm*)
magic="7f454c4601010100000000000000000002002800"
;;
lfsmake2 tzdata
lfsmake2 cleanup-toolchain
lfsmake2 zlib
+ lfsmake2 zstd
lfsmake2 binutils
lfsmake2 gmp
lfsmake2 gmp-compat
lfsmake2 autoconf
lfsmake2 automake
lfsmake2 berkeley
+ lfsmake2 berkeley-compat
lfsmake2 coreutils
lfsmake2 iana-etc
lfsmake2 m4
lfsmake2 bison
lfsmake2 ncurses
- lfsmake2 procps
lfsmake2 libtool
lfsmake2 perl
lfsmake2 readline
lfsmake2 xz
lfsmake2 pcre
lfsmake2 pcre-compat
+ lfsmake2 gettext
+ lfsmake2 attr
+ lfsmake2 acl
lfsmake2 bash
lfsmake2 diffutils
lfsmake2 e2fsprogs
lfsmake2 findutils
lfsmake2 flex
lfsmake2 gawk
- lfsmake2 gettext
+ lfsmake2 go
lfsmake2 grep
lfsmake2 groff
lfsmake2 gperf
lfsmake2 kbd
lfsmake2 less
lfsmake2 pkg-config
+ lfsmake2 procps
lfsmake2 make
lfsmake2 man
- lfsmake2 kmod
lfsmake2 net-tools
lfsmake2 patch
lfsmake2 psmisc
lfsmake2 tar
lfsmake2 texinfo
lfsmake2 util-linux
- lfsmake2 udev
lfsmake2 vim
}
lfsmake2 backup
lfsmake2 openssl
[ "${BUILD_ARCH}" = "i586" ] && lfsmake2 openssl KCFG='-sse2'
+ lfsmake2 kmod
+ lfsmake2 udev
lfsmake2 popt
lfsmake2 libedit
lfsmake2 libusb
lfsmake2 linux-initrd KCFG=""
;;
i586)
- # x86-pae (Native and new XEN) kernel build
- lfsmake2 linux KCFG="-pae"
-# lfsmake2 backports KCFG="-pae"
-# lfsmake2 e1000e KCFG="-pae"
-# lfsmake2 igb KCFG="-pae"
-# lfsmake2 ixgbe KCFG="-pae"
- lfsmake2 xtables-addons KCFG="-pae"
- lfsmake2 linux-initrd KCFG="-pae"
-
# x86 kernel build
lfsmake2 linux KCFG=""
# lfsmake2 backports KCFG=""
lfsmake2 linux-atm
lfsmake2 gdbm
lfsmake2 pam
+ lfsmake2 c-ares
lfsmake2 curl
lfsmake2 tcl
lfsmake2 sqlite
lfsmake2 libffi
lfsmake2 python
lfsmake2 python3
+ lfsmake2 gdb
lfsmake2 grub
lfsmake2 efivar
lfsmake2 efibootmgr
lfsmake2 libnl-3
lfsmake2 libidn
lfsmake2 nasm
+ lfsmake2 libarchive
+ lfsmake2 cmake
+ lfsmake2 ninja
+ lfsmake2 meson
lfsmake2 libjpeg
lfsmake2 libjpeg-compat
+ lfsmake2 openjpeg
lfsmake2 libexif
lfsmake2 libpng
lfsmake2 libtiff
lfsmake2 slang
lfsmake2 newt
lfsmake2 libsmooth
- lfsmake2 attr
- lfsmake2 acl
lfsmake2 libcap
lfsmake2 libcap-ng
lfsmake2 pciutils
lfsmake2 bootstrap
lfsmake2 arping
lfsmake2 beep
- lfsmake2 libarchive
- lfsmake2 cmake
lfsmake2 libssh
lfsmake2 cdrkit
lfsmake2 dosfstools
lfsmake2 perl-Device-SerialPort
lfsmake2 perl-Device-Modem
lfsmake2 perl-Apache-Htpasswd
+ lfsmake2 perl-Parse-Yapp
lfsmake2 gnupg
lfsmake2 hdparm
lfsmake2 sdparm
lfsmake2 mtools
lfsmake2 whatmask
+ lfsmake2 libtirpc
lfsmake2 conntrack-tools
lfsmake2 libupnp
lfsmake2 ipaddr
lfsmake2 Archive-Tar
lfsmake2 Archive-Zip
lfsmake2 Text-Tabs+Wrap
- lfsmake2 Locale-Country
lfsmake2 XML-Parser
lfsmake2 Crypt-PasswdMD5
lfsmake2 Net-Telnet
lfsmake2 python-daemon
lfsmake2 python-ipaddress
lfsmake2 glib
- lfsmake2 GeoIP
- lfsmake2 geoip-database
lfsmake2 ntp
lfsmake2 openssh
lfsmake2 fontconfig
lfsmake2 ghostscript
lfsmake2 qpdf
lfsmake2 poppler
+ lfsmake2 poppler-data
lfsmake2 cups-filters
lfsmake2 epson-inkjet-printer-escpr
lfsmake2 foomatic
lfsmake2 hplip
lfsmake2 cifs-utils
lfsmake2 krb5
+ lfsmake2 rpcsvc-proto
lfsmake2 samba
+ lfsmake2 netatalk
lfsmake2 sudo
lfsmake2 mc
lfsmake2 wget
lfsmake2 fetchmail
lfsmake2 clamav
lfsmake2 perl-NetAddr-IP
- lfsmake2 spamassassin
- lfsmake2 perl-Net-LibIDN
- lfsmake2 amavisd
lfsmake2 dma
lfsmake2 alsa
lfsmake2 mpfire
lfsmake2 libmpeg2
lfsmake2 gnump3d
lfsmake2 rsync
- lfsmake2 libtirpc
lfsmake2 rpcbind
lfsmake2 keyutils
+ lfsmake2 libnfsidmap
lfsmake2 nfs
lfsmake2 gnu-netcat
lfsmake2 ncat
lfsmake2 syslinux
lfsmake2 tftpd
lfsmake2 cpufrequtils
- lfsmake2 bluetooth
lfsmake2 gutenprint
lfsmake2 apcupsd
lfsmake2 iperf
lfsmake2 perl-DBD-SQLite
lfsmake2 perl-File-ReadBackwards
lfsmake2 openvmtools
+ lfsmake2 libmicrohttpd
lfsmake2 motion
lfsmake2 joe
lfsmake2 monit
lfsmake2 python3-s3transfer
lfsmake2 python3-rsa
lfsmake2 python3-pyasn1
+ lfsmake2 python3-urllib3
lfsmake2 python3-botocore
lfsmake2 python3-llfuse
lfsmake2 python3-msgpack
lfsmake2 libpciaccess
lfsmake2 libyajl
lfsmake2 libvirt
+ lfsmake2 libtalloc
lfsmake2 freeradius
lfsmake2 perl-common-sense
lfsmake2 perl-inotify2
lfsmake2 dehydrated
lfsmake2 shairport-sync
lfsmake2 borgbackup
+ lfsmake2 lmdb
lfsmake2 knot
lfsmake2 spectre-meltdown-checker
lfsmake2 zabbix_agentd
lfsmake2 flashrom
lfsmake2 firmware-update
lfsmake2 tshark
- lfsmake2 geoip-generator
lfsmake2 speedtest-cli
lfsmake2 rfkill
lfsmake2 amazon-ssm-agent
+ lfsmake2 libloc
+ lfsmake2 ncdu
+ lfsmake2 lshw
+ lfsmake2 socat
}
buildinstaller() {
ipfirepackages
- lfsmake2 xen-image
- mv $LFS/install/images/*.bz2 $BASEDIR >> $LOGFILE 2>&1
-
cd $BASEDIR
# remove not useable iso on armv5tel (needed to build flash images)
[ "${BUILD_ARCH}" = "armv5tel" ] && rm -rf *.iso
- for i in `ls *.bz2 *.img.xz *.iso`; do
+ for i in $(ls *.bz2 *.img.xz *.iso 2>/dev/null); do
md5sum $i > $i.md5
done
cd $PWD
update-contributors)
update_contributors
;;
+find-dependencies)
+ shift
+ exec "${BASEDIR}/tools/find-dependencies" "${BASEDIR}/build" "$@"
+ ;;
*)
- echo "Usage: $0 {build|changelog|clean|gettoolchain|downloadsrc|shell|sync|toolchain|update-contributors}"
+ echo "Usage: $0 {build|changelog|clean|gettoolchain|downloadsrc|shell|sync|toolchain|update-contributors|find-dependencies}"
cat doc/make.sh-usage
;;
esac
+