###############################################################################
# #
# IPFire.org - A linux based firewall #
-# Copyright (C) 2007-2022 IPFire Team <info@ipfire.org> #
+# Copyright (C) 2007-2023 IPFire Team <info@ipfire.org> #
# #
# This program is free software: you can redistribute it and/or modify #
# it under the terms of the GNU General Public License as published by #
NAME="IPFire" # Software name
SNAME="ipfire" # Short name
# If you update the version don't forget to update backupiso and add it to core update
-VERSION="2.27" # Version number
-CORE="171" # Core Level (Filename)
+VERSION="2.29" # Version number
+CORE="183" # Core Level (Filename)
SLOGAN="www.ipfire.org" # Software slogan
CONFIG_ROOT=/var/ipfire # Configuration rootdir
MAX_RETRIES=1 # prefetch/check loop
GIT_TAG="$(git tag | tail -1)" # Git Tag
GIT_LASTCOMMIT="$(git rev-parse --verify HEAD)" # Last commit
-TOOLCHAINVER=20220508
+TOOLCHAINVER=20231206
# use multicore and max compression
ZSTD_OPT="-T0 --ultra -22"
BUILDTARGET="${build_arch}-pc-linux-gnu"
CROSSTARGET="${build_arch}-cross-linux-gnu"
BUILD_PLATFORM="x86"
- CFLAGS_ARCH="-m64 -mtune=generic -fstack-clash-protection -fcf-protection"
+ CFLAGS_ARCH="-m64 -mtune=generic -fcf-protection=full"
;;
aarch64)
BUILDTARGET="${build_arch}-pc-linux-gnu"
CROSSTARGET="${build_arch}-cross-linux-gnu"
BUILD_PLATFORM="arm"
- CFLAGS_ARCH="-fstack-clash-protection"
- ;;
-
- armv7hl)
- BUILDTARGET="${build_arch}-pc-linux-gnueabi"
- CROSSTARGET="${build_arch}-cross-linux-gnueabi"
- BUILD_PLATFORM="arm"
- CFLAGS_ARCH="-march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard"
- ;;
-
- armv6l)
- BUILDTARGET="${build_arch}-pc-linux-gnueabi"
- CROSSTARGET="${build_arch}-cross-linux-gnueabi"
- BUILD_PLATFORM="arm"
- CFLAGS_ARCH="-march=armv6zk+fp -mfpu=vfp -mfloat-abi=softfp -fomit-frame-pointer"
+ CFLAGS_ARCH="-mbranch-protection=standard"
;;
riscv64)
BUILDTARGET="${build_arch}-pc-linux-gnu"
CROSSTARGET="${build_arch}-cross-linux-gnu"
BUILD_PLATFORM="riscv"
- CFLAGS_ARCH="-fstack-clash-protection"
+ CFLAGS_ARCH=""
;;
*)
TOOLS_DIR="/tools_${BUILD_ARCH}"
# Enables hardening
- HARDENING_CFLAGS="-Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong"
+ HARDENING_CFLAGS="-Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -fstack-clash-protection"
CFLAGS="-O2 -pipe -Wall -fexceptions -fPIC ${CFLAGS_ARCH}"
CXXFLAGS="${CFLAGS}"
# We allow XZ to use up to 70% of all system memory.
local xz_memory=$(( SYSTEM_MEMORY * 7 / 10 ))
- # XZ memory cannot be larger than 2GB on 32 bit systems
- case "${build_arch}" in
- armv*)
- if [ ${xz_memory} -gt 2048 ]; then
- xz_memory=2048
- fi
- ;;
- esac
-
XZ_OPT="${XZ_OPT} --memory=${xz_memory}MiB"
}
echo "aarch64"
;;
- armv7*|armv6*)
- echo "armv6l"
- ;;
-
riscv64)
echo "riscv64"
;;
;;
riscv64)
QEMU_CPU="${QEMU_CPU:-sifive-u54}"
-
- env="${env} QEMU_CPU=${QEMU_CPU}"
+ G_SLICE="always-malloc"
+ env="${env} QEMU_CPU=${QEMU_CPU} G_SLICE=${G_SLICE}"
;;
esac
file_is_static() {
local file="${1}"
- file -L "${file}" 2>/dev/null | grep -q "statically linked"
+ file -L "${file}" 2>/dev/null | grep -q -e "statically linked" -e "static-pie linked"
}
update_language_list() {
lfsmake2 tzdata
lfsmake2 cleanup-toolchain
lfsmake2 zlib
+ [ "${BUILD_ARCH}" = "riscv64" ] && lfsmake2 gcc PASS=A
lfsmake2 zstd
lfsmake2 autoconf
lfsmake2 automake
+ lfsmake2 help2man
lfsmake2 libtool
lfsmake2 binutils
lfsmake2 gmp
lfsmake2 backup
lfsmake2 rust
lfsmake2 openssl
- lfsmake2 kmod
- lfsmake2 udev
lfsmake2 popt
lfsmake2 libedit
- lfsmake2 libusb
+ lfsmake2 pam
+ lfsmake2 libcap
+ lfsmake2 libcap-ng
lfsmake2 libpcap
lfsmake2 ppp
lfsmake2 pptp
lfsmake2 unzip
lfsmake2 which
- lfsmake2 linux-firmware
- lfsmake2 dvb-firmwares
- lfsmake2 xr819-firmware
- lfsmake2 zd1211-firmware
- lfsmake2 rpi-firmware
- lfsmake2 intel-microcode
- lfsmake2 pcengines-apu-firmware
lfsmake2 bc
- lfsmake2 u-boot MKIMAGE=1
lfsmake2 cpio
- lfsmake2 mdadm
- lfsmake2 dracut
lfsmake2 libaio
- lfsmake2 lvm2
- lfsmake2 multipath-tools
lfsmake2 freetype
lfsmake2 libmnl
lfsmake2 libnfnetlink
lfsmake2 iproute2
lfsmake2 screen
lfsmake2 elfutils
-
- # Kernelbuild ... current we have no platform that need
- # multi kernel builds so KCFG is empty
- lfsmake2 linux KCFG=""
- lfsmake2 rtl8189es KCFG=""
- lfsmake2 rtl8189fs KCFG=""
- lfsmake2 rtl8812au KCFG=""
- lfsmake2 rtl8822bu KCFG=""
- lfsmake2 rtl8821cu KCFG=""
- lfsmake2 xradio KCFG=""
- lfsmake2 linux-initrd KCFG=""
-
+ lfsmake2 expat
+ lfsmake2 libconfig
+ lfsmake2 curl
+ lfsmake2 libarchive
+ lfsmake2 cmake
+ lfsmake2 json-c
+ lfsmake2 tcl
+ lfsmake2 libffi
+ lfsmake2 gdbm
+ lfsmake2 sqlite
+ lfsmake2 python3
+ lfsmake2 python3-setuptools
+ lfsmake2 python3-MarkupSafe
+ lfsmake2 python3-Jinja2
+ lfsmake2 ninja
+ lfsmake2 meson
+ lfsmake2 kmod
+ lfsmake2 udev
+ lfsmake2 libusb
+ lfsmake2 mdadm
+ lfsmake2 dracut
+ lfsmake2 lvm2
+ lfsmake2 multipath-tools
+ lfsmake2 glib
+ lfsmake2 libgudev
lfsmake2 libgpg-error
lfsmake2 libgcrypt
lfsmake2 libassuan
lfsmake2 nettle
lfsmake2 libsodium
- lfsmake2 json-c
- lfsmake2 libconfig
lfsmake2 libevent2
- lfsmake2 expat
lfsmake2 apr
lfsmake2 aprutil
lfsmake2 unbound
lfsmake2 dhcpcd
lfsmake2 boost
lfsmake2 linux-atm
- lfsmake2 gdbm
- lfsmake2 pam
+ lfsmake2 libqmi
lfsmake2 c-ares
- lfsmake2 curl
- lfsmake2 tcl
- lfsmake2 sqlite
- lfsmake2 libffi
- lfsmake2 python3
- lfsmake2 rust
lfsmake2 rust-dissimilar
lfsmake2 rust-cfg-if
lfsmake2 rust-libc
lfsmake2 rust-typenum
lfsmake2 rust-version-check
lfsmake2 rust-generic-array
+ lfsmake2 rust-crypto-common
lfsmake2 rust-cipher
lfsmake2 rust-hex
lfsmake2 rust-unicode-xid
lfsmake2 rust-serde_json
lfsmake2 rust-synstructure
lfsmake2 rust-block-buffer
- lfsmake2 rust-crypto-common
lfsmake2 rust-digest
lfsmake2 rust-ppv-lite86
lfsmake2 rust-rand_core
lfsmake2 rust-num-integer
lfsmake2 rust-num_threads
lfsmake2 rust-time
+ lfsmake2 rust-iana-time-zone
lfsmake2 rust-chrono
lfsmake2 rust-asn1_derive
lfsmake2 rust-asn1
lfsmake2 rust-pem
lfsmake2 gdb
lfsmake2 grub
+ lfsmake2 mandoc
lfsmake2 efivar
lfsmake2 efibootmgr
lfsmake2 libtasn1
lfsmake2 libnl-3
lfsmake2 libidn
lfsmake2 nasm
- lfsmake2 libarchive
- lfsmake2 cmake
- lfsmake2 ninja
- lfsmake2 meson
lfsmake2 libjpeg
lfsmake2 openjpeg
lfsmake2 libexif
lfsmake2 slang
lfsmake2 newt
lfsmake2 libsmooth
- lfsmake2 libcap
- lfsmake2 libcap-ng
lfsmake2 pciutils
lfsmake2 usbutils
lfsmake2 libxml2
lfsmake2 perl-Crypt-PasswdMD5
lfsmake2 perl-Net-Telnet
lfsmake2 perl-JSON
- lfsmake2 python3-setuptools
lfsmake2 python3-inotify
lfsmake2 python3-docutils
lfsmake2 python3-daemon
- lfsmake2 glib
lfsmake2 ntp
lfsmake2 openssh
lfsmake2 fontconfig
lfsmake2 vlan
lfsmake2 wireless
lfsmake2 pakfire
- lfsmake2 spandsp
lfsmake2 lz4
lfsmake2 lzo
lfsmake2 openvpn
lfsmake2 libvorbis
lfsmake2 flac
lfsmake2 lame
- lfsmake2 sox
lfsmake2 soxr
lfsmake2 libshout
lfsmake2 xvid
lfsmake2 rpcbind
lfsmake2 keyutils
lfsmake2 nfs
- lfsmake2 gnu-netcat
lfsmake2 ncat
lfsmake2 nmap
lfsmake2 etherwake
lfsmake2 rng-tools
lfsmake2 lsof
lfsmake2 br2684ctl
- lfsmake2 pcmciautils
lfsmake2 lm_sensors
lfsmake2 libstatgrab
lfsmake2 liboping
lfsmake2 collectd
+ lfsmake2 git
+ lfsmake2 linux-firmware
+ lfsmake2 dvb-firmwares
+ lfsmake2 zd1211-firmware
+ lfsmake2 rpi-firmware
+ lfsmake2 intel-microcode
+ lfsmake2 pcengines-apu-firmware
lfsmake2 elinks
lfsmake2 igmpproxy
lfsmake2 opus
+ lfsmake2 python3-toml
+ lfsmake2 python3-pyproject2setuppy
lfsmake2 python3-pyparsing
lfsmake2 spice-protocol
lfsmake2 spice
lfsmake2 sdl2
lfsmake2 libusbredir
lfsmake2 libseccomp
+ lfsmake2 libslirp
lfsmake2 qemu
lfsmake2 netsnmpd
lfsmake2 nagios_nrpe
lfsmake2 perl-Authen-SASL
lfsmake2 perl-MIME-Lite
lfsmake2 perl-Email-Date-Format
- lfsmake2 git
- lfsmake2 squidclamav
lfsmake2 vnstat
lfsmake2 iw
lfsmake2 wpa_supplicant
lfsmake2 zerofree
lfsmake2 minicom
lfsmake2 ddrescue
- lfsmake2 powertop
lfsmake2 parted
lfsmake2 swig
lfsmake2 dtc
lfsmake2 u-boot
- lfsmake2 u-boot-friendlyarm
lfsmake2 wireless-regdb
lfsmake2 ddns
lfsmake2 python3-pycparser
lfsmake2 python3-certifi
lfsmake2 python3-idna
lfsmake2 python3-requests
- lfsmake2 python3-toml
- lfsmake2 python3-pyproject2setuppy
lfsmake2 python3-tomli
lfsmake2 python3-pep517
lfsmake2 python3-build
lfsmake2 python3-terminaltables
lfsmake2 python3-pkgconfig
lfsmake2 python3-msgpack
- lfsmake2 python3-attr
lfsmake2 python3-attrs
lfsmake2 python3-sniffio
lfsmake2 python3-sortedcontainers
lfsmake2 python3-outcome
lfsmake2 python3-async_generator
- lfsmake2 python3-Cython
+ lfsmake2 python3-flit_scm
+ lfsmake2 python3-exceptiongroup
lfsmake2 python3-trio
lfsmake2 python3-pyfuse3
lfsmake2 aws-cli
lfsmake2 perl-Imager-QRCode
lfsmake2 perl-MIME-Base32
lfsmake2 perl-URI-Encode
+ lfsmake2 rsnapshot
+
+ # Kernelbuild ... current we have no platform that need
+ # multi kernel builds so KCFG is empty
+ lfsmake2 linux KCFG=""
+ lfsmake2 rtl8812au KCFG=""
+ lfsmake2 linux-initrd KCFG=""
}
buildinstaller() {
cd $BASEDIR
- # remove not useable iso on armv6l (needed to build flash images)
- [ "${BUILD_ARCH}" = "armv6l" ] && rm -rf *.iso
-
for i in $(ls *.bz2 *.img.xz *.iso 2>/dev/null); do
b2sum $i > $i.b2
done