###############################################################################
# #
# 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 #
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="169" # Core Level (Filename)
+CORE="175" # 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=20230210
# 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"
;;
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=""
;;
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"
;;
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 which
lfsmake2 linux-firmware
lfsmake2 dvb-firmwares
- lfsmake2 xr819-firmware
lfsmake2 zd1211-firmware
lfsmake2 rpi-firmware
lfsmake2 intel-microcode
lfsmake2 rtl8189fs KCFG=""
lfsmake2 rtl8812au KCFG=""
lfsmake2 rtl8822bu KCFG=""
- lfsmake2 xradio KCFG=""
+ lfsmake2 rtl8821cu 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 ninja
+ lfsmake2 meson
+ lfsmake2 glib
+ lfsmake2 libgudev
lfsmake2 libgpg-error
lfsmake2 libgcrypt
lfsmake2 libassuan
lfsmake2 nettle
- lfsmake2 json-c
- lfsmake2 libconfig
+ lfsmake2 libsodium
lfsmake2 libevent2
- lfsmake2 expat
lfsmake2 apr
lfsmake2 aprutil
lfsmake2 unbound
lfsmake2 dhcpcd
lfsmake2 boost
lfsmake2 linux-atm
- lfsmake2 gdbm
+ lfsmake2 libqmi
lfsmake2 pam
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-proc-macro-hack
lfsmake2 rust-indoc-impl
lfsmake2 rust-indoc
+ lfsmake2 rust-indoc-0.3.6
lfsmake2 rust-instant
lfsmake2 rust-lock_api
lfsmake2 rust-smallvec
lfsmake2 rust-parking_lot
lfsmake2 rust-paste-impl
lfsmake2 rust-paste
+ lfsmake2 rust-paste-0.1.18
lfsmake2 rust-ctor
lfsmake2 rust-ghost
lfsmake2 rust-inventory-impl
lfsmake2 rust-pyo3-macros-backend
lfsmake2 rust-pyo3-macros
lfsmake2 rust-pyo3
+ lfsmake2 rust-num-traits
+ 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-proc-macro-error-attr
+ lfsmake2 rust-proc-macro-error
+ lfsmake2 rust-Inflector
+ lfsmake2 rust-ouroboros_macro
+ lfsmake2 rust-aliasable
+ lfsmake2 rust-stable_deref_trait
+ lfsmake2 rust-ouroboros
+ lfsmake2 rust-base64
+ 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 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 hyperscan
lfsmake2 suricata
lfsmake2 ids-ruleset-sources
+ lfsmake2 ipblocklist-sources
lfsmake2 squid
lfsmake2 squidguard
lfsmake2 calamaris
lfsmake2 vlan
lfsmake2 wireless
lfsmake2 pakfire
- lfsmake2 spandsp
lfsmake2 lz4
lfsmake2 lzo
lfsmake2 openvpn
lfsmake2 poppler-data
lfsmake2 cups-filters
lfsmake2 epson-inkjet-printer-escpr
+ lfsmake2 cups-pdf
lfsmake2 foomatic
lfsmake2 hplip
lfsmake2 cifs-utils
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 elinks
lfsmake2 igmpproxy
lfsmake2 opus
+ lfsmake2 python3-toml
+ lfsmake2 python3-pyproject2setuppy
lfsmake2 python3-pyparsing
lfsmake2 spice-protocol
lfsmake2 spice
lfsmake2 perl-Authen-SASL
lfsmake2 perl-MIME-Lite
lfsmake2 perl-Email-Date-Format
- lfsmake2 git
lfsmake2 squidclamav
lfsmake2 vnstat
lfsmake2 iw
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-arrow
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-trio
+ lfsmake2 python3-pyfuse3
lfsmake2 aws-cli
lfsmake2 oci-python-sdk
lfsmake2 oci-cli
lfsmake2 i2c-tools
lfsmake2 nss-myhostname
lfsmake2 dehydrated
+ lfsmake2 libplist
+ lfsmake2 nqptp
lfsmake2 shairport-sync
lfsmake2 borgbackup
lfsmake2 lmdb
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