]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blobdiff - make.sh
json-c: Update to version 0.16
[people/pmueller/ipfire-2.x.git] / make.sh
diff --git a/make.sh b/make.sh
index 19743d7861f17f871997b09d74c1d3b2b1ab8e35..6488a77387706f28ee535d8196ff28c3dfd97b23 100755 (executable)
--- a/make.sh
+++ b/make.sh
@@ -1,32 +1,29 @@
 #!/bin/bash
-############################################################################
-#                                                                          #
-# This file is part of the IPFire Firewall.                                #
-#                                                                          #
-# IPFire is free software; you can redistribute it and/or modify           #
-# it under the terms of the GNU General Public License as published by     #
-# the Free Software Foundation; either version 2 of the License, or        #
-# (at your option) any later version.                                      #
-#                                                                          #
-# IPFire is distributed in the hope that it will be useful,                #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of           #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the            #
-# GNU General Public License for more details.                             #
-#                                                                          #
-# You should have received a copy of the GNU General Public License        #
-# along with IPFire; if not, write to the Free Software                    #
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA #
-#                                                                          #
-# Copyright (C) 2007-2022 IPFire Team <info@ipfire.org>.                   #
-#                                                                          #
-############################################################################
-#
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2022  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        #
+# the Free Software Foundation, either version 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
 
 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="166"                                                     # Core Level (Filename)
+CORE="173"                                                     # Core Level (Filename)
 SLOGAN="www.ipfire.org"                                                # Software slogan
 CONFIG_ROOT=/var/ipfire                                                # Configuration rootdir
 MAX_RETRIES=1                                                  # prefetch/check loop
@@ -38,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=20220203
+TOOLCHAINVER=20220808
 
 # use multicore and max compression
 ZSTD_OPT="-T0 --ultra -22"
@@ -647,9 +644,9 @@ lfsmakecommoncheck() {
        fi
 
        cd $BASEDIR/lfs && make -s -f $* LFS_BASEDIR=$BASEDIR BUILD_ARCH="${BUILD_ARCH}" \
-               MESSAGE="$1\t md5sum" md5  >> $LOGFILE 2>&1
+               MESSAGE="$1\t b2sum" b2  >> $LOGFILE 2>&1
        if [ $? -ne 0 ]; then
-               exiterror "md5sum error in $1, check file in cache or signature"
+               exiterror "BLAKE2 checksum error in $1, check file in cache or signature"
        fi
 
        return 0        # pass all!
@@ -913,7 +910,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() {
@@ -987,29 +984,6 @@ if [ "${ENABLE_RAMDISK}" = "auto" ]; then
 fi
 
 buildtoolchain() {
-       local error=false
-       case "${BUILD_ARCH}:${HOST_ARCH}" in
-               # x86_64
-               x86_64:x86_64)
-                        # This is working.
-                        ;;
-
-               # ARM
-               arvm7hl:armv7hl|armv7hl:armv7l)
-                       # These are working.
-                       ;;
-
-               armv6l:armv6l|armv6l:armv7l|armv6l:aarch64)
-                       # These are working.
-                       ;;
-               armv6l:*)
-                       error=true
-                       ;;
-       esac
-
-       ${error} && \
-               exiterror "Cannot build ${BUILD_ARCH} toolchain on $(uname -m). Please use the download if any."
-
        local gcc=$(type -p gcc)
        if [ -z "${gcc}" ]; then
                exiterror "Could not find GCC. You will need a working build enviroment in order to build the toolchain."
@@ -1095,6 +1069,8 @@ buildbase() {
        lfsmake2 libxcrypt
        lfsmake2 file
        lfsmake2 gcc
+       lfsmake2 attr
+       lfsmake2 acl
        lfsmake2 sed
        lfsmake2 berkeley
        lfsmake2 coreutils
@@ -1110,8 +1086,6 @@ buildbase() {
        lfsmake2 pcre
        lfsmake2 pcre2
        lfsmake2 gettext
-       lfsmake2 attr
-       lfsmake2 acl
        lfsmake2 bash
        lfsmake2 diffutils
        lfsmake2 ed
@@ -1130,6 +1104,7 @@ buildbase() {
        lfsmake2 pkg-config
        lfsmake2 procps
        lfsmake2 make
+       lfsmake2 libpipeline
        lfsmake2 man
        lfsmake2 net-tools
        lfsmake2 patch
@@ -1158,7 +1133,6 @@ buildipfire() {
   lfsmake2 popt
   lfsmake2 libedit
   lfsmake2 libusb
-  lfsmake2 libusb-compat
   lfsmake2 libpcap
   lfsmake2 ppp
   lfsmake2 pptp
@@ -1198,18 +1172,32 @@ buildipfire() {
   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 ninja
+  lfsmake2 meson
+  lfsmake2 glib
+  lfsmake2 libgudev
   lfsmake2 libgpg-error
   lfsmake2 libgcrypt
   lfsmake2 libassuan
   lfsmake2 nettle
-  lfsmake2 json-c
-  lfsmake2 libconfig
-  lfsmake2 libevent
+  lfsmake2 libsodium
   lfsmake2 libevent2
-  lfsmake2 expat
   lfsmake2 apr
   lfsmake2 aprutil
   lfsmake2 unbound
@@ -1220,14 +1208,9 @@ buildipfire() {
   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
@@ -1297,6 +1280,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
@@ -1304,6 +1288,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
@@ -1312,8 +1297,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
@@ -1321,20 +1324,14 @@ buildipfire() {
   lfsmake2 ca-certificates
   lfsmake2 fireinfo
   lfsmake2 libnet
-  lfsmake2 libnl
   lfsmake2 libnl-3
   lfsmake2 libidn
   lfsmake2 nasm
-  lfsmake2 libarchive
-  lfsmake2 cmake
-  lfsmake2 ninja
-  lfsmake2 meson
   lfsmake2 libjpeg
   lfsmake2 openjpeg
   lfsmake2 libexif
   lfsmake2 libpng
   lfsmake2 libtiff
-  lfsmake2 libart
   lfsmake2 gd
   lfsmake2 slang
   lfsmake2 newt
@@ -1382,7 +1379,6 @@ buildipfire() {
   lfsmake2 perl-HTTP-Date
   lfsmake2 gnupg
   lfsmake2 hdparm
-  lfsmake2 sdparm
   lfsmake2 whatmask
   lfsmake2 libtirpc
   lfsmake2 conntrack-tools
@@ -1404,7 +1400,7 @@ buildipfire() {
   lfsmake2 perl-Digest-SHA1
   lfsmake2 perl-Digest-HMAC
   lfsmake2 perl-libwww
-       lfsmake2 perl-LWP-Protocol-https
+  lfsmake2 perl-LWP-Protocol-https
   lfsmake2 perl-Net-HTTP
   lfsmake2 perl-Net-DNS
   lfsmake2 perl-Net-IPv4Addr
@@ -1424,11 +1420,10 @@ buildipfire() {
   lfsmake2 perl-XML-Parser
   lfsmake2 perl-Crypt-PasswdMD5
   lfsmake2 perl-Net-Telnet
-  lfsmake2 python3-setuptools
+  lfsmake2 perl-JSON
   lfsmake2 python3-inotify
   lfsmake2 python3-docutils
   lfsmake2 python3-daemon
-  lfsmake2 glib
   lfsmake2 ntp
   lfsmake2 openssh
   lfsmake2 fontconfig
@@ -1442,7 +1437,6 @@ buildipfire() {
   lfsmake2 pango
   lfsmake2 rrdtool
   lfsmake2 setup
-  lfsmake2 libdnet
   lfsmake2 jansson
   lfsmake2 yaml
   lfsmake2 libhtp
@@ -1450,8 +1444,8 @@ buildipfire() {
   lfsmake2 ragel
   lfsmake2 hyperscan
   lfsmake2 suricata
-  lfsmake2 oinkmaster
   lfsmake2 ids-ruleset-sources
+  lfsmake2 ipblocklist-sources
   lfsmake2 squid
   lfsmake2 squidguard
   lfsmake2 calamaris
@@ -1477,6 +1471,7 @@ buildipfire() {
   lfsmake2 poppler-data
   lfsmake2 cups-filters
   lfsmake2 epson-inkjet-printer-escpr
+  lfsmake2 cups-pdf
   lfsmake2 foomatic
   lfsmake2 hplip
   lfsmake2 cifs-utils
@@ -1515,7 +1510,6 @@ buildipfire() {
   lfsmake2 rpcbind
   lfsmake2 keyutils
   lfsmake2 nfs
-  lfsmake2 gnu-netcat
   lfsmake2 ncat
   lfsmake2 nmap
   lfsmake2 etherwake
@@ -1525,7 +1519,6 @@ buildipfire() {
   lfsmake2 rng-tools
   lfsmake2 lsof
   lfsmake2 br2684ctl
-  lfsmake2 pcmciautils
   lfsmake2 lm_sensors
   lfsmake2 libstatgrab
   lfsmake2 liboping
@@ -1533,6 +1526,8 @@ buildipfire() {
   lfsmake2 elinks
   lfsmake2 igmpproxy
   lfsmake2 opus
+  lfsmake2 python3-toml
+  lfsmake2 python3-pyproject2setuppy
   lfsmake2 python3-pyparsing
   lfsmake2 spice-protocol
   lfsmake2 spice
@@ -1540,7 +1535,6 @@ buildipfire() {
   lfsmake2 libusbredir
   lfsmake2 libseccomp
   lfsmake2 qemu
-  lfsmake2 netpbm
   lfsmake2 netsnmpd
   lfsmake2 nagios_nrpe
   lfsmake2 nagios-plugins
@@ -1556,6 +1550,7 @@ buildipfire() {
   lfsmake2 vdr_dvbapi
   lfsmake2 vdr_eepg
   lfsmake2 w_scan
+  lfsmake2 fmt
   lfsmake2 mpd
   lfsmake2 libmpdclient
   lfsmake2 mpc
@@ -1595,7 +1590,6 @@ buildipfire() {
   lfsmake2 monit
   lfsmake2 nut
   lfsmake2 watchdog
-  lfsmake2 libpri
   lfsmake2 usb_modeswitch
   lfsmake2 usb_modeswitch_data
   lfsmake2 zerofree
@@ -1608,15 +1602,12 @@ buildipfire() {
   lfsmake2 u-boot
   lfsmake2 u-boot-friendlyarm
   lfsmake2 wireless-regdb
-  lfsmake2 libsolv
   lfsmake2 ddns
   lfsmake2 python3-pycparser
   lfsmake2 python3-charset-normalizer
   lfsmake2 python3-certifi
   lfsmake2 python3-idna
   lfsmake2 python3-requests
-  lfsmake2 python3-toml
-  lfsmake2 python3-pyproject2setuppy
   lfsmake2 python3-tomli
   lfsmake2 python3-pep517
   lfsmake2 python3-build
@@ -1644,6 +1635,16 @@ buildipfire() {
   lfsmake2 python3-click
   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
@@ -1680,7 +1681,6 @@ buildipfire() {
   lfsmake2 perl-IO-String
   lfsmake2 perl-PDF-API2
   lfsmake2 proxy-accounting
-  lfsmake2 pigz
   lfsmake2 tmux
   lfsmake2 perl-Text-CSV_XS
   lfsmake2 lua
@@ -1706,6 +1706,8 @@ buildipfire() {
   lfsmake2 i2c-tools
   lfsmake2 nss-myhostname
   lfsmake2 dehydrated
+  lfsmake2 libplist
+  lfsmake2 nqptp
   lfsmake2 shairport-sync
   lfsmake2 borgbackup
   lfsmake2 lmdb
@@ -1716,7 +1718,6 @@ buildipfire() {
   lfsmake2 firmware-update
   lfsmake2 tshark
   lfsmake2 speedtest-cli
-  lfsmake2 rfkill
   lfsmake2 amazon-ssm-agent
   lfsmake2 libloc
   lfsmake2 ncdu
@@ -1726,7 +1727,18 @@ 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
 }
 
 buildinstaller() {
@@ -1785,7 +1797,7 @@ buildpackages() {
   [ "${BUILD_ARCH}" = "armv6l" ] && rm -rf *.iso
 
   for i in $(ls *.bz2 *.img.xz *.iso 2>/dev/null); do
-       md5sum $i > $i.md5
+       b2sum $i > $i.b2
   done
   cd $PWD
 
@@ -1835,9 +1847,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
@@ -1848,11 +1857,11 @@ build)
                else
                        PACKAGENAME=${PACKAGE%.tar.zst}
                        print_build_stage "Packaged toolchain compilation"
-                       if [ `md5sum $PACKAGE | awk '{print $1}'` == `cat $PACKAGENAME.md5 | awk '{print $1}'` ]; then
+                       if [ `b2sum $PACKAGE | awk '{print $1}'` == `cat $PACKAGENAME.b2 | awk '{print $1}'` ]; then
                                zstd -d < "${PACKAGE}" | tar x
                                prepareenv
                        else
-                               exiterror "$PACKAGENAME md5 did not match, check downloaded package"
+                               exiterror "$PACKAGENAME BLAKE2 checksum did not match, check downloaded package"
                        fi
                fi
        else
@@ -1957,22 +1966,22 @@ downloadsrc)
                        fi
                done
        done
-       echo -e "${BOLD}***Verifying md5sums${NORMAL}"
+       echo -e "${BOLD}***Verifying BLAKE2 checksum${NORMAL}"
        ERROR=0
        for i in *; do
                if [ -f "$i" -a "$i" != "Config" ]; then
                        lfsmakecommoncheck ${i} > /dev/null || continue
                        make -s -f $i LFS_BASEDIR=$BASEDIR BUILD_ARCH="${BUILD_ARCH}" \
-                               MESSAGE="$i\t " md5 >> $LOGFILE 2>&1
+                               MESSAGE="$i\t " b2 >> $LOGFILE 2>&1
                        if [ $? -ne 0 ]; then
-                               echo -ne "MD5 difference in lfs/$i"
+                               echo -ne "BLAKE2 checksum difference in lfs/$i"
                                print_status FAIL
                                ERROR=1
                        fi
                fi
        done
        if [ $ERROR -eq 0 ]; then
-               echo -ne "${BOLD}all files md5sum match${NORMAL}"
+               echo -ne "${BOLD}all files BLAKE2 checksum match${NORMAL}"
                print_status DONE
        else
                echo -ne "${BOLD}not all files were correctly download${NORMAL}"
@@ -1981,9 +1990,6 @@ downloadsrc)
        cd - >/dev/null 2>&1
        ;;
 toolchain)
-       # Clear screen
-       ${INTERACTIVE} && clear
-
        prepareenv
        print_build_stage "Toolchain compilation (${BUILD_ARCH})"
        buildtoolchain
@@ -1991,8 +1997,8 @@ toolchain)
        test -d $BASEDIR/cache/toolchains || mkdir -p $BASEDIR/cache/toolchains
        cd $BASEDIR && tar -cf- --exclude='log/_build.*.log' build/${TOOLS_DIR} build/bin/sh log \
                | zstd ${ZSTD_OPT} > cache/toolchains/$SNAME-$VERSION-toolchain-$TOOLCHAINVER-${BUILD_ARCH}.tar.zst
-       md5sum cache/toolchains/$SNAME-$VERSION-toolchain-$TOOLCHAINVER-${BUILD_ARCH}.tar.zst \
-               > cache/toolchains/$SNAME-$VERSION-toolchain-$TOOLCHAINVER-${BUILD_ARCH}.md5
+       b2sum cache/toolchains/$SNAME-$VERSION-toolchain-$TOOLCHAINVER-${BUILD_ARCH}.tar.zst \
+               > cache/toolchains/$SNAME-$VERSION-toolchain-$TOOLCHAINVER-${BUILD_ARCH}.b2
        stdumount
        ;;
 gettoolchain)
@@ -2003,14 +2009,14 @@ gettoolchain)
                test -d $BASEDIR/cache/toolchains || mkdir -p $BASEDIR/cache/toolchains
                echo "`date -u '+%b %e %T'`: Load toolchain image for ${BUILD_ARCH}" | tee -a $LOGFILE
                cd $BASEDIR/cache/toolchains
-               wget -U "IPFireSourceGrabber/2.x" $URL_TOOLCHAIN/$PACKAGE.tar.zst $URL_TOOLCHAIN/$PACKAGE.md5 >& /dev/null
+               wget -U "IPFireSourceGrabber/2.x" $URL_TOOLCHAIN/$PACKAGE.tar.zst $URL_TOOLCHAIN/$PACKAGE.b2 >& /dev/null
                if [ $? -ne 0 ]; then
                        echo "`date -u '+%b %e %T'`: error downloading $PACKAGE toolchain for ${BUILD_ARCH} machine" | tee -a $LOGFILE
                else
-                       if [ "`md5sum $PACKAGE.tar.zst | awk '{print $1}'`" = "`cat $PACKAGE.md5 | awk '{print $1}'`" ]; then
-                               echo "`date -u '+%b %e %T'`: toolchain md5 ok" | tee -a $LOGFILE
+                       if [ "`b2sum $PACKAGE.tar.zst | awk '{print $1}'`" = "`cat $PACKAGE.b2 | awk '{print $1}'`" ]; then
+                               echo "`date -u '+%b %e %T'`: toolchain BLAKE2 checksum ok" | tee -a $LOGFILE
                        else
-                               exiterror "$PACKAGE.md5 did not match, check downloaded package"
+                               exiterror "$PACKAGE BLAKE2 checksum did not match, check downloaded package"
                        fi
                fi
        else
@@ -2085,7 +2091,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