]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blobdiff - make.sh
make.sh: Set a good default for rustc flags
[people/pmueller/ipfire-2.x.git] / make.sh
diff --git a/make.sh b/make.sh
index 32791e311fa8d17e7ff07f713a86da8fa30f755b..5f22f74091b4af3b9eb43d27f714c408a81619c7 100755 (executable)
--- a/make.sh
+++ b/make.sh
@@ -17,7 +17,7 @@
 # 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-2020 IPFire Team <info@ipfire.org>.                   #
+# Copyright (C) 2007-2021 IPFire Team <info@ipfire.org>.                   #
 #                                                                          #
 ############################################################################
 #
@@ -25,8 +25,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.25"                                                 # Version number
-CORE="158"                                                     # Core Level (Filename)
+VERSION="2.27"                                                 # Version number
+CORE="164"                                                     # Core Level (Filename)
 SLOGAN="www.ipfire.org"                                                # Software slogan
 CONFIG_ROOT=/var/ipfire                                                # Configuration rootdir
 MAX_RETRIES=1                                                  # prefetch/check loop
@@ -38,15 +38,10 @@ 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=20210202
+TOOLCHAINVER=20210701
 
-ZSTD_OPT=(
-       # Compress in parallel using all processor cores
-       -T0
-
-       # Compress as best as we can
-       --ultra -22
-)
+# use multicore and max compression
+ZSTD_OPT="-T0 --ultra -22"
 
 ###############################################################################
 #
@@ -156,13 +151,6 @@ configure_build() {
                        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 -mtune=generic -fomit-frame-pointer"
-                       ;;
-
                aarch64)
                        BUILDTARGET="${build_arch}-unknown-linux-gnu"
                        CROSSTARGET="${build_arch}-cross-linux-gnu"
@@ -181,8 +169,7 @@ configure_build() {
                        BUILDTARGET="${build_arch}-unknown-linux-gnueabi"
                        CROSSTARGET="${build_arch}-cross-linux-gnueabi"
                        BUILD_PLATFORM="arm"
-                       CFLAGS_ARCH="-march=armv6 -mfpu=vfp -mfloat-abi=softfp -fomit-frame-pointer"
-                       #RUSTFLAGS="-Ccodegen-units=1"
+                       CFLAGS_ARCH="-march=armv6zk+fp -mfpu=vfp -mfloat-abi=softfp -fomit-frame-pointer"
                        ;;
 
                riscv64)
@@ -217,6 +204,8 @@ configure_build() {
        CFLAGS="-O2 -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}"
+
        # Determine parallelism
        # We assume that each process consumes about
        # 128MB of memory. Therefore we find out how
@@ -252,7 +241,7 @@ configure_build() {
 
        # XZ memory cannot be larger than 2GB on 32 bit systems
        case "${build_arch}" in
-               i*86|armv*)
+               armv*)
                        if [ ${xz_memory} -gt 2048 ]; then
                                xz_memory=2048
                        fi
@@ -267,9 +256,6 @@ configure_build_guess() {
                x86_64)
                        echo "x86_64"
                        ;;
-               i?86)
-                       echo "i586"
-                       ;;
 
                aarch64)
                        echo "aarch64"
@@ -522,7 +508,6 @@ prepareenv() {
        # 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}"
 
        # Remove pre-install list of installed files in case user erase some files before rebuild
@@ -594,7 +579,6 @@ enterchroot() {
                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" \
                KVER="${KVER}" \
@@ -676,9 +660,8 @@ lfsmake1() {
 
        cd $BASEDIR/lfs && env -i \
                PATH="${TOOLS_DIR}/ccache/bin:${TOOLS_DIR}/bin:$PATH" \
-               CCACHE_DIR="${CCACHE_DIR}" \
+               CCACHE_DIR="${CCACHE_DIR}"/${BUILD_ARCH}/${TOOLCHAINVER} \
                CCACHE_TEMPDIR="${CCACHE_TEMPDIR}" \
-               CCACHE_COMPRESS="${CCACHE_COMPRESS}" \
                CCACHE_COMPILERCHECK="${CCACHE_COMPILERCHECK}" \
                CFLAGS="${CFLAGS}" \
                CXXFLAGS="${CXXFLAGS}" \
@@ -998,14 +981,6 @@ buildtoolchain() {
                         # This is working.
                         ;;
 
-               # x86
-               i586:i586|i586:i686|i586:x86_64)
-                       # These are working.
-                       ;;
-               i586:*)
-                       error=true
-                       ;;
-
                # ARM
                arvm7hl:armv7hl|armv7hl:armv7l)
                        # These are working.
@@ -1050,10 +1025,10 @@ buildtoolchain() {
        lfsmake1 glibc
        lfsmake1 libxcrypt
        lfsmake1 gcc                    PASS=L
-       lfsmake1 binutils                       PASS=2
-       lfsmake1 gcc                    PASS=2
        lfsmake1 zlib
        lfsmake1 zstd
+       lfsmake1 binutils                       PASS=2
+       lfsmake1 gcc                    PASS=2
        lfsmake1 ccache
        lfsmake1 tcl
        lfsmake1 expect
@@ -1136,8 +1111,7 @@ buildbase() {
        lfsmake2 gperf
        lfsmake2 gzip
        lfsmake2 hostname
-       lfsmake2 iproute2
-       lfsmake2 jwhois
+       lfsmake2 whois
        lfsmake2 kbd
        lfsmake2 less
        lfsmake2 pkg-config
@@ -1198,6 +1172,7 @@ buildipfire() {
   lfsmake2 libnetfilter_cthelper
   lfsmake2 libnetfilter_cttimeout
   lfsmake2 iptables
+  lfsmake2 iproute2
   lfsmake2 screen
   lfsmake2 elfutils
 
@@ -1206,6 +1181,7 @@ buildipfire() {
   lfsmake2 linux               KCFG=""
   lfsmake2 rtl8189es           KCFG=""
   lfsmake2 rtl8812au           KCFG=""
+  lfsmake2 rtl8822bu           KCFG=""
   lfsmake2 xradio              KCFG=""
   lfsmake2 xtables-addons      KCFG=""
   lfsmake2 linux-initrd                KCFG=""
@@ -1224,6 +1200,7 @@ buildipfire() {
   lfsmake2 aprutil
   lfsmake2 unbound
   lfsmake2 gnutls
+  lfsmake2 libuv
   lfsmake2 bind
   lfsmake2 dhcp
   lfsmake2 dhcpcd
@@ -1236,12 +1213,13 @@ buildipfire() {
   lfsmake2 tcl
   lfsmake2 sqlite
   lfsmake2 libffi
-  lfsmake2 python
   lfsmake2 python3
   lfsmake2 gdb
   lfsmake2 grub
   lfsmake2 efivar
   lfsmake2 efibootmgr
+  lfsmake2 libtasn1
+  lfsmake2 p11-kit
   lfsmake2 ca-certificates
   lfsmake2 fireinfo
   lfsmake2 libnet
@@ -1283,13 +1261,16 @@ buildipfire() {
   lfsmake2 libinih
   lfsmake2 cdrkit
   lfsmake2 dosfstools
+  lfsmake2 exfatprogs
   lfsmake2 reiserfsprogs
+  lfsmake2 liburcu
   lfsmake2 xfsprogs
   lfsmake2 sysfsutils
   lfsmake2 fuse
   lfsmake2 ntfs-3g
   lfsmake2 ethtool
   lfsmake2 fcron
+  lfsmake2 ExtUtils-PkgConfig
   lfsmake2 perl-GD
   lfsmake2 GD-Graph
   lfsmake2 GD-TextUtil
@@ -1304,7 +1285,6 @@ buildipfire() {
   lfsmake2 whatmask
   lfsmake2 libtirpc
   lfsmake2 conntrack-tools
-  lfsmake2 ipaddr
   lfsmake2 iputils
   lfsmake2 l7-protocols
   lfsmake2 hwdata
@@ -1341,7 +1321,6 @@ buildipfire() {
   lfsmake2 XML-Parser
   lfsmake2 Crypt-PasswdMD5
   lfsmake2 Net-Telnet
-  lfsmake2 python-setuptools
   lfsmake2 python3-setuptools
   lfsmake2 python3-inotify
   lfsmake2 python3-docutils
@@ -1355,6 +1334,8 @@ buildipfire() {
   lfsmake2 freefont
   lfsmake2 pixman
   lfsmake2 cairo
+  lfsmake2 harfbuzz
+  lfsmake2 fribidi
   lfsmake2 pango
   lfsmake2 rrdtool
   lfsmake2 setup
@@ -1445,6 +1426,7 @@ buildipfire() {
   lfsmake2 br2684ctl
   lfsmake2 pcmciautils
   lfsmake2 lm_sensors
+  lfsmake2 libstatgrab
   lfsmake2 liboping
   lfsmake2 collectd
   lfsmake2 elinks
@@ -1453,7 +1435,7 @@ buildipfire() {
   lfsmake2 python3-pyparsing
   lfsmake2 spice-protocol
   lfsmake2 spice
-  lfsmake2 sdl
+  lfsmake2 sdl2
   lfsmake2 libusbredir
   lfsmake2 libseccomp
   lfsmake2 qemu
@@ -1518,16 +1500,13 @@ buildipfire() {
   lfsmake2 zerofree
   lfsmake2 minicom
   lfsmake2 ddrescue
-  lfsmake2 client175
   lfsmake2 powertop
   lfsmake2 parted
   lfsmake2 swig
+  lfsmake2 dtc
   lfsmake2 u-boot
   lfsmake2 u-boot-friendlyarm
-  lfsmake2 python-typing
-  lfsmake2 python-m2crypto
   lfsmake2 wireless-regdb
-  lfsmake2 crda
   lfsmake2 libsolv
   lfsmake2 ddns
   lfsmake2 python3-setuptools-scm
@@ -1551,7 +1530,6 @@ buildipfire() {
   lfsmake2 telnet
   lfsmake2 xinetd
   lfsmake2 stress
-  lfsmake2 libstatgrab
   lfsmake2 sarg
   lfsmake2 nginx
   lfsmake2 sysbench
@@ -1585,10 +1563,10 @@ buildipfire() {
   lfsmake2 ipset
   lfsmake2 dnsdist
   lfsmake2 bird
+  lfsmake2 libyang
   lfsmake2 frr
   lfsmake2 dmidecode
   lfsmake2 mcelog
-  lfsmake2 util-macros
   lfsmake2 libpciaccess
   lfsmake2 libyajl
   lfsmake2 libvirt
@@ -1621,6 +1599,8 @@ buildipfire() {
   lfsmake2 socat
   lfsmake2 libcdada
   lfsmake2 pmacct
+  lfsmake2 squid-asnbl
+  lfsmake2 qemu-ga
 }
 
 buildinstaller() {
@@ -1743,7 +1723,7 @@ build)
                        PACKAGENAME=${PACKAGE%.tar.zst}
                        print_build_stage "Packaged toolchain compilation"
                        if [ `md5sum $PACKAGE | awk '{print $1}'` == `cat $PACKAGENAME.md5 | awk '{print $1}'` ]; then
-                               tar axf $PACKAGE
+                               zstd -d < "${PACKAGE}" | tar x
                                prepareenv
                        else
                                exiterror "$PACKAGENAME md5 did not match, check downloaded package"
@@ -1901,7 +1881,7 @@ gettoolchain)
                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.xz | awk '{print $1}'`" = "`cat $PACKAGE.md5 | awk '{print $1}'`" ]; then
+                       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
                        else
                                exiterror "$PACKAGE.md5 did not match, check downloaded package"
@@ -1912,24 +1892,24 @@ gettoolchain)
        fi
        ;;
 uploadsrc)
-       PWD=`pwd`
        if [ -z $IPFIRE_USER ]; then
                echo -n "You have to setup IPFIRE_USER first. See .config for details."
                print_status FAIL
                exit 1
        fi
 
-       URL_SOURCE=$(grep URL_SOURCE lfs/Config | awk '{ print $3 }')
-       REMOTE_FILES=$(echo "ls -1" | sftp -C ${IPFIRE_USER}@${URL_SOURCE})
+       URL_SOURCE="$(awk '/^URL_SOURCE/ { print $3 }' lfs/Config)"
+
+       rsync \
+               --recursive \
+               --update \
+               --ignore-existing \
+               --progress \
+               --human-readable \
+               --exclude="toolchains/" \
+               "${BASEDIR}/cache/" \
+               "${IPFIRE_USER}@${URL_SOURCE}"
 
-       for file in ${BASEDIR}/cache/*; do
-               [ -d "${file}" ] && continue
-               grep -q "$(basename ${file})" <<<$REMOTE_FILES && continue
-               NEW_FILES="$NEW_FILES $file"
-       done
-       [ -n "$NEW_FILES" ] && scp -2 $NEW_FILES ${IPFIRE_USER}@${URL_SOURCE}
-       cd $BASEDIR
-       cd $PWD
        exit 0
        ;;
 lang)
@@ -1968,8 +1948,18 @@ find-dependencies)
        shift
        exec "${BASEDIR}/tools/find-dependencies" "${BASEDIR}/build" "$@"
        ;;
+check-manualpages)
+       echo "Checking the manual pages for broken links..."
+       
+       chmod 755 $BASEDIR/tools/check_manualpages.pl
+       if $BASEDIR/tools/check_manualpages.pl; then
+               print_status DONE
+       else
+               print_status FAIL
+       fi
+       ;;
 *)
-       echo "Usage: $0 {build|changelog|clean|gettoolchain|downloadsrc|shell|sync|toolchain|update-contributors|find-dependencies}"
+       echo "Usage: $0 [OPTIONS] {build|changelog|clean|gettoolchain|downloadsrc|shell|sync|toolchain|update-contributors|find-dependencies|check-manualpages}"
        cat doc/make.sh-usage
        ;;
 esac