]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blobdiff - make.sh
suricata: Change midstream policy to "pass-flow"
[people/pmueller/ipfire-2.x.git] / make.sh
diff --git a/make.sh b/make.sh
index 7ccb1fa9c6ee073648ce705487d98d29099e9c25..605582672054b9d3cf2206e7f9c618c288d6c19b 100755 (executable)
--- a/make.sh
+++ b/make.sh
@@ -2,7 +2,7 @@
 ###############################################################################
 #                                                                             #
 # 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        #
@@ -22,8 +22,8 @@
 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="169"                                                     # Core Level (Filename)
+VERSION="2.29"                                                 # Version number
+CORE="185"                                                     # Core Level (Filename)
 SLOGAN="www.ipfire.org"                                                # Software slogan
 CONFIG_ROOT=/var/ipfire                                                # Configuration rootdir
 MAX_RETRIES=1                                                  # prefetch/check loop
@@ -35,7 +35,7 @@ GIT_BRANCH="$(git rev-parse --abbrev-ref HEAD)"                       # Git Branch
 GIT_TAG="$(git tag | tail -1)"                                 # Git Tag
 GIT_LASTCOMMIT="$(git rev-parse --verify HEAD)"                        # Last commit
 
-TOOLCHAINVER=20220508
+TOOLCHAINVER=20240210
 
 # use multicore and max compression
 ZSTD_OPT="-T0 --ultra -22"
@@ -145,35 +145,21 @@ configure_build() {
                        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=""
                        ;;
 
                *)
@@ -196,9 +182,9 @@ configure_build() {
        TOOLS_DIR="/tools_${BUILD_ARCH}"
 
        # Enables hardening
-       HARDENING_CFLAGS="-Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong"
+       HARDENING_CFLAGS="-Wp,-U_FORTIFY_SOURCE -Wp,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -fstack-clash-protection"
 
-       CFLAGS="-O2 -pipe -Wall -fexceptions -fPIC ${CFLAGS_ARCH}"
+       CFLAGS="-O2 -g0 -pipe -Wall -fexceptions -fPIC ${CFLAGS_ARCH}"
        CXXFLAGS="${CFLAGS}"
 
        RUSTFLAGS="-Copt-level=3 -Clink-arg=-Wl,-z,relro,-z,now -Ccodegen-units=1 --cap-lints=warn ${RUSTFLAGS_ARCH}"
@@ -236,15 +222,6 @@ configure_build() {
        # 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"
 }
 
@@ -258,10 +235,6 @@ configure_build_guess() {
                        echo "aarch64"
                        ;;
 
-               armv7*|armv6*)
-                       echo "armv6l"
-                       ;;
-
                riscv64)
                        echo "riscv64"
                        ;;
@@ -794,8 +767,8 @@ qemu_environ() {
                        ;;
                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
 
@@ -910,7 +883,7 @@ qemu_find_build_helper_name() {
 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() {
@@ -1058,9 +1031,11 @@ buildbase() {
        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
@@ -1128,31 +1103,19 @@ buildipfire() {
   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
@@ -1164,25 +1127,37 @@ buildipfire() {
   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 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 json-c
-  lfsmake2 libconfig
+  lfsmake2 libsodium
   lfsmake2 libevent2
-  lfsmake2 expat
   lfsmake2 apr
   lfsmake2 aprutil
   lfsmake2 unbound
@@ -1193,15 +1168,8 @@ buildipfire() {
   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
@@ -1209,6 +1177,7 @@ buildipfire() {
   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
@@ -1235,7 +1204,6 @@ buildipfire() {
   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
@@ -1270,6 +1238,7 @@ buildipfire() {
   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
@@ -1277,6 +1246,7 @@ buildipfire() {
   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
@@ -1285,8 +1255,26 @@ buildipfire() {
   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
@@ -1297,10 +1285,6 @@ buildipfire() {
   lfsmake2 libnl-3
   lfsmake2 libidn
   lfsmake2 nasm
-  lfsmake2 libarchive
-  lfsmake2 cmake
-  lfsmake2 ninja
-  lfsmake2 meson
   lfsmake2 libjpeg
   lfsmake2 openjpeg
   lfsmake2 libexif
@@ -1310,8 +1294,6 @@ buildipfire() {
   lfsmake2 slang
   lfsmake2 newt
   lfsmake2 libsmooth
-  lfsmake2 libcap
-  lfsmake2 libcap-ng
   lfsmake2 pciutils
   lfsmake2 usbutils
   lfsmake2 libxml2
@@ -1395,11 +1377,13 @@ buildipfire() {
   lfsmake2 perl-Crypt-PasswdMD5
   lfsmake2 perl-Net-Telnet
   lfsmake2 perl-JSON
-  lfsmake2 python3-setuptools
+  lfsmake2 perl-Capture-Tiny
+  lfsmake2 perl-Config-AutoConf
+  lfsmake2 perl-Object-Tiny
+  lfsmake2 perl-Archive-Peek-Libarchive
   lfsmake2 python3-inotify
   lfsmake2 python3-docutils
   lfsmake2 python3-daemon
-  lfsmake2 glib
   lfsmake2 ntp
   lfsmake2 openssh
   lfsmake2 fontconfig
@@ -1421,6 +1405,7 @@ buildipfire() {
   lfsmake2 hyperscan
   lfsmake2 suricata
   lfsmake2 ids-ruleset-sources
+  lfsmake2 ipblocklist-sources
   lfsmake2 squid
   lfsmake2 squidguard
   lfsmake2 calamaris
@@ -1429,7 +1414,6 @@ buildipfire() {
   lfsmake2 vlan
   lfsmake2 wireless
   lfsmake2 pakfire
-  lfsmake2 spandsp
   lfsmake2 lz4
   lfsmake2 lzo
   lfsmake2 openvpn
@@ -1446,6 +1430,7 @@ buildipfire() {
   lfsmake2 poppler-data
   lfsmake2 cups-filters
   lfsmake2 epson-inkjet-printer-escpr
+  lfsmake2 cups-pdf
   lfsmake2 foomatic
   lfsmake2 hplip
   lfsmake2 cifs-utils
@@ -1474,7 +1459,6 @@ buildipfire() {
   lfsmake2 libvorbis
   lfsmake2 flac
   lfsmake2 lame
-  lfsmake2 sox
   lfsmake2 soxr
   lfsmake2 libshout
   lfsmake2 xvid
@@ -1484,7 +1468,6 @@ buildipfire() {
   lfsmake2 rpcbind
   lfsmake2 keyutils
   lfsmake2 nfs
-  lfsmake2 gnu-netcat
   lfsmake2 ncat
   lfsmake2 nmap
   lfsmake2 etherwake
@@ -1494,20 +1477,29 @@ buildipfire() {
   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
@@ -1534,8 +1526,6 @@ buildipfire() {
   lfsmake2 perl-Authen-SASL
   lfsmake2 perl-MIME-Lite
   lfsmake2 perl-Email-Date-Format
-  lfsmake2 git
-  lfsmake2 squidclamav
   lfsmake2 vnstat
   lfsmake2 iw
   lfsmake2 wpa_supplicant
@@ -1569,12 +1559,10 @@ buildipfire() {
   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
@@ -1582,8 +1570,6 @@ buildipfire() {
   lfsmake2 python3-certifi
   lfsmake2 python3-idna
   lfsmake2 python3-requests
-  lfsmake2 python3-toml
-  lfsmake2 python3-pyproject2setuppy
   lfsmake2 python3-tomli
   lfsmake2 python3-pep517
   lfsmake2 python3-build
@@ -1612,6 +1598,24 @@ buildipfire() {
   lfsmake2 python3-arrow
   lfsmake2 python3-terminaltables
   lfsmake2 python3-pkgconfig
+  lfsmake2 python3-msgpack
+  lfsmake2 python3-editables
+  lfsmake2 python3-pathspec
+  lfsmake2 python3-pluggy
+  lfsmake2 python3-calver
+  lfsmake2 python3-trove-classifiers
+  lfsmake2 python3-hatchling
+  lfsmake2 python3-hatch-vcs
+  lfsmake2 python3-hatch-fancy-pypi-readme
+  lfsmake2 python3-attrs
+  lfsmake2 python3-sniffio
+  lfsmake2 python3-sortedcontainers
+  lfsmake2 python3-outcome
+  lfsmake2 python3-async_generator
+  lfsmake2 python3-flit_scm
+  lfsmake2 python3-exceptiongroup
+  lfsmake2 python3-trio
+  lfsmake2 python3-pyfuse3
   lfsmake2 aws-cli
   lfsmake2 oci-python-sdk
   lfsmake2 oci-cli
@@ -1656,6 +1660,9 @@ buildipfire() {
   lfsmake2 dnsdist
   lfsmake2 bird
   lfsmake2 libyang
+  lfsmake2 abseil-cpp
+  lfsmake2 protobuf
+  lfsmake2 protobuf-c
   lfsmake2 frr
   lfsmake2 dmidecode
   lfsmake2 mcelog
@@ -1673,6 +1680,8 @@ buildipfire() {
   lfsmake2 i2c-tools
   lfsmake2 nss-myhostname
   lfsmake2 dehydrated
+  lfsmake2 libplist
+  lfsmake2 nqptp
   lfsmake2 shairport-sync
   lfsmake2 borgbackup
   lfsmake2 lmdb
@@ -1692,7 +1701,27 @@ buildipfire() {
   lfsmake2 pmacct
   lfsmake2 squid-asnbl
   lfsmake2 qemu-ga
-       lfsmake2 gptfdisk
+  lfsmake2 gptfdisk
+  lfsmake2 oath-toolkit
+  lfsmake2 qrencode
+  lfsmake2 perl-File-Remove
+  lfsmake2 perl-Module-Build
+  lfsmake2 perl-Module-ScanDeps
+  lfsmake2 perl-YAML-Tiny
+  lfsmake2 perl-Module-Install
+  lfsmake2 perl-Imager
+  lfsmake2 perl-Imager-QRCode
+  lfsmake2 perl-MIME-Base32
+  lfsmake2 perl-URI-Encode
+  lfsmake2 rsnapshot
+  lfsmake2 mympd
+  lfsmake2 wsdd
+
+  # 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() {
@@ -1747,9 +1776,6 @@ buildpackages() {
 
   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
@@ -1801,9 +1827,6 @@ case "$1" in
 build)
        START_TIME="${SECONDS}"
 
-       # Clear screen
-       ${INTERACTIVE} && clear
-
        PACKAGE="$BASEDIR/cache/toolchains/$SNAME-$VERSION-toolchain-$TOOLCHAINVER-${BUILD_ARCH}.tar.zst"
        #only restore on a clean disk
        if [ ! -e "${BASEDIR}/build${TOOLS_DIR}/.toolchain-successful" ]; then
@@ -1947,9 +1970,6 @@ downloadsrc)
        cd - >/dev/null 2>&1
        ;;
 toolchain)
-       # Clear screen
-       ${INTERACTIVE} && clear
-
        prepareenv
        print_build_stage "Toolchain compilation (${BUILD_ARCH})"
        buildtoolchain
@@ -2051,7 +2071,7 @@ check-manualpages)
        fi
        ;;
 *)
-       echo "Usage: $0 [OPTIONS] {build|changelog|clean|gettoolchain|downloadsrc|shell|sync|toolchain|update-contributors|find-dependencies|check-manualpages}"
+       echo "Usage: $0 [OPTIONS] {build|check-manualpages|clean|docker|downloadsrc|find-dependencies|gettoolchain|lang|shell|toolchain|update-contributors|uploadsrc}"
        cat doc/make.sh-usage
        ;;
 esac