X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=make.sh;h=0baf2050de7a76699428c477930176a924cbc6d0;hb=refs%2Fheads%2Fipsec-fixes;hp=94bb86d5b95a23107082d5c1dc091a9464b189c9;hpb=f407f05a6f0b4a85e7852ac01d71f4d9373940ae;p=people%2Fms%2Fipfire-2.x.git diff --git a/make.sh b/make.sh index 94bb86d5b9..0baf2050de 100755 --- a/make.sh +++ b/make.sh @@ -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="154" # Core Level (Filename) +VERSION="2.27" # Version number +CORE="160" # Core Level (Filename) SLOGAN="www.ipfire.org" # Software slogan CONFIG_ROOT=/var/ipfire # Configuration rootdir MAX_RETRIES=1 # prefetch/check loop @@ -38,7 +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=20200924 +TOOLCHAINVER=20210701 + +# use multicore and max compression +ZSTD_OPT="-T0 --ultra -22" ############################################################################### # @@ -169,12 +172,19 @@ configure_build() { CFLAGS_ARCH="-march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard" ;; - armv5tel) + armv6l) BUILDTARGET="${build_arch}-unknown-linux-gnueabi" CROSSTARGET="${build_arch}-cross-linux-gnueabi" BUILD_PLATFORM="arm" - CFLAGS_ARCH="-march=armv5te -mfloat-abi=soft -fomit-frame-pointer" - RUSTFLAGS="-Ccodegen-units=1" + CFLAGS_ARCH="-march=armv6zk+fp -mfpu=vfp -mfloat-abi=softfp -fomit-frame-pointer" + #RUSTFLAGS="-Ccodegen-units=1" + ;; + + riscv64) + BUILDTARGET="${build_arch}-unknown-linux-gnu" + CROSSTARGET="${build_arch}-cross-linux-gnu" + BUILD_PLATFORM="riscv" + CFLAGS_ARCH="-fstack-clash-protection" ;; *) @@ -207,7 +217,7 @@ configure_build() { # 128MB of memory. Therefore we find out how # many processes fit into memory. local mem_max=$(( ${SYSTEM_MEMORY} / 128 )) - local cpu_max=$(( ${SYSTEM_PROCESSORS} + 1 )) + local cpu_max=$(( ${SYSTEM_PROCESSORS} )) local parallelism if [ ${mem_max} -lt ${cpu_max} ]; then @@ -260,8 +270,12 @@ configure_build_guess() { echo "aarch64" ;; - armv7*|armv6*|armv5*) - echo "armv5tel" + armv7*|armv6*) + echo "armv6l" + ;; + + riscv64) + echo "riscv64" ;; *) @@ -469,7 +483,7 @@ prepareenv() { mkdir -p "${BASEDIR}/build${TOOLS_DIR}" 2>/dev/null mkdir -p $BASEDIR/build/{etc,usr/src} 2>/dev/null mkdir -p $BASEDIR/build/{dev/{shm,pts},proc,sys} - mkdir -p $BASEDIR/{cache,ccache/${BUILD_ARCH}} 2>/dev/null + mkdir -p $BASEDIR/{cache,ccache/${BUILD_ARCH}/${TOOLCHAINVER}} 2>/dev/null if [ "${ENABLE_RAMDISK}" = "on" ]; then mkdir -p $BASEDIR/build/usr/src @@ -491,7 +505,7 @@ prepareenv() { mount --bind /proc $BASEDIR/build/proc mount --bind /sys $BASEDIR/build/sys mount --bind $BASEDIR/cache $BASEDIR/build/usr/src/cache - mount --bind $BASEDIR/ccache/${BUILD_ARCH} $BASEDIR/build/usr/src/ccache + mount --bind $BASEDIR/ccache/${BUILD_ARCH}/${TOOLCHAINVER} $BASEDIR/build/usr/src/ccache mount --bind $BASEDIR/config $BASEDIR/build/usr/src/config mount --bind $BASEDIR/doc $BASEDIR/build/usr/src/doc mount --bind $BASEDIR/html $BASEDIR/build/usr/src/html @@ -503,7 +517,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 @@ -575,7 +588,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}" \ @@ -657,9 +669,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}" \ @@ -801,7 +812,7 @@ qemu_is_required() { fi case "${HOST_ARCH},${build_arch}" in - x86_64,arm*|x86_64,aarch64|i?86,arm*|i?86,aarch64|i?86,x86_64) + x86_64,arm*|x86_64,aarch64|x86_64,riscv64|i?86,arm*|i?86,aarch64|i?86,x86_64) return 0 ;; *) @@ -865,6 +876,9 @@ qemu_find_build_helper_name() { arm*) magic="7f454c4601010100000000000000000002002800" ;; + riscv64) + magic="7f454c460201010000000000000000000200f300" + ;; x86_64) magic="7f454c4602010100000000000000000002003e00" ;; @@ -989,10 +1003,10 @@ buildtoolchain() { # These are working. ;; - armv5tel:armv5tel|armv5tel:armv5tejl|armv5tel:armv6l|armv5tel:armv7l|armv5tel:aarch64) + armv6l:armv6l|armv6l:armv7l|armv6l:aarch64) # These are working. ;; - armv5tel:*) + armv6l:*) error=true ;; esac @@ -1022,16 +1036,17 @@ buildtoolchain() { export LOGFILE lfsmake1 stage1 - lfsmake1 ccache PASS=1 lfsmake1 binutils PASS=1 lfsmake1 gcc PASS=1 lfsmake1 linux KCFG="-headers" lfsmake1 glibc + lfsmake1 libxcrypt lfsmake1 gcc PASS=L + lfsmake1 zlib + lfsmake1 zstd lfsmake1 binutils PASS=2 lfsmake1 gcc PASS=2 - lfsmake1 zlib - lfsmake1 ccache PASS=2 + lfsmake1 ccache lfsmake1 tcl lfsmake1 expect lfsmake1 dejagnu @@ -1074,38 +1089,35 @@ buildbase() { lfsmake2 cleanup-toolchain lfsmake2 zlib lfsmake2 zstd + lfsmake2 autoconf + lfsmake2 automake + lfsmake2 libtool lfsmake2 binutils lfsmake2 gmp - lfsmake2 gmp-compat lfsmake2 mpfr lfsmake2 libmpc + lfsmake2 libxcrypt lfsmake2 file lfsmake2 gcc lfsmake2 sed - lfsmake2 autoconf - lfsmake2 automake lfsmake2 berkeley - lfsmake2 berkeley-compat lfsmake2 coreutils lfsmake2 iana-etc lfsmake2 m4 lfsmake2 bison lfsmake2 ncurses - lfsmake2 libtool lfsmake2 perl lfsmake2 readline - lfsmake2 readline-compat lfsmake2 bzip2 lfsmake2 xz lfsmake2 lzip lfsmake2 pcre - lfsmake2 pcre-compat + lfsmake2 pcre2 lfsmake2 gettext lfsmake2 attr lfsmake2 acl lfsmake2 bash lfsmake2 diffutils - lfsmake2 e2fsprogs lfsmake2 ed lfsmake2 findutils lfsmake2 flex @@ -1134,6 +1146,7 @@ buildbase() { lfsmake2 texinfo lfsmake2 util-linux lfsmake2 vim + lfsmake2 e2fsprogs } buildipfire() { @@ -1143,7 +1156,6 @@ buildipfire() { lfsmake2 initscripts lfsmake2 backup lfsmake2 openssl - [ "${BUILD_ARCH}" = "i586" ] && lfsmake2 openssl KCFG='-sse2' lfsmake2 kmod lfsmake2 udev lfsmake2 popt @@ -1181,39 +1193,16 @@ buildipfire() { lfsmake2 screen lfsmake2 elfutils - case "${BUILD_ARCH}" in - x86_64|aarch64) - lfsmake2 linux KCFG="" -# lfsmake2 backports KCFG="" -# lfsmake2 e1000e KCFG="" -# lfsmake2 igb KCFG="" -# lfsmake2 ixgbe KCFG="" - lfsmake2 xtables-addons KCFG="" - lfsmake2 linux-initrd KCFG="" - ;; - i586) - # x86 kernel build - lfsmake2 linux KCFG="" -# lfsmake2 backports KCFG="" -# lfsmake2 e1000e KCFG="" -# lfsmake2 igb KCFG="" -# lfsmake2 ixgbe KCFG="" - lfsmake2 xtables-addons KCFG="" - lfsmake2 linux-initrd KCFG="" - ;; - - armv5tel) - # arm multi platform (Panda, Wandboard ...) kernel build - lfsmake2 linux KCFG="-multi" -# lfsmake2 backports KCFG="-multi" -# lfsmake2 e1000e KCFG="-multi" -# lfsmake2 igb KCFG="-multi" -# lfsmake2 ixgbe KCFG="-multi" - lfsmake2 xtables-addons KCFG="-multi" - lfsmake2 linux-initrd KCFG="-multi" - ;; - esac - lfsmake2 xtables-addons USPACE="1" + # Kernelbuild ... current we have no platform that need + # multi kernel builds so KCFG is empty + lfsmake2 linux KCFG="" + lfsmake2 rtl8189es KCFG="" + lfsmake2 rtl8812au KCFG="" + lfsmake2 xradio KCFG="" + lfsmake2 xtables-addons KCFG="" + lfsmake2 linux-initrd KCFG="" + + lfsmake2 xtables-addons USPACE="1" lfsmake2 libgpg-error lfsmake2 libgcrypt lfsmake2 libassuan @@ -1257,7 +1246,6 @@ buildipfire() { lfsmake2 ninja lfsmake2 meson lfsmake2 libjpeg - lfsmake2 libjpeg-compat lfsmake2 openjpeg lfsmake2 libexif lfsmake2 libpng @@ -1284,6 +1272,7 @@ buildipfire() { lfsmake2 arping lfsmake2 beep lfsmake2 libssh + lfsmake2 libinih lfsmake2 cdrkit lfsmake2 dosfstools lfsmake2 reiserfsprogs @@ -1300,14 +1289,13 @@ buildipfire() { lfsmake2 perl-Device-Modem lfsmake2 perl-Apache-Htpasswd lfsmake2 perl-Parse-Yapp + lfsmake2 perl-Data-UUID lfsmake2 gnupg lfsmake2 hdparm lfsmake2 sdparm - lfsmake2 mtools lfsmake2 whatmask lfsmake2 libtirpc lfsmake2 conntrack-tools - lfsmake2 libupnp lfsmake2 ipaddr lfsmake2 iputils lfsmake2 l7-protocols @@ -1336,6 +1324,7 @@ buildipfire() { lfsmake2 Mail-Tools lfsmake2 MIME-Tools lfsmake2 Net-Server + lfsmake2 Canary-Stability lfsmake2 Convert-TNEF lfsmake2 Convert-UUlib lfsmake2 Archive-Tar @@ -1345,14 +1334,10 @@ buildipfire() { lfsmake2 Crypt-PasswdMD5 lfsmake2 Net-Telnet lfsmake2 python-setuptools - lfsmake2 python-clientform - lfsmake2 python-mechanize - lfsmake2 python-feedparser - lfsmake2 python-rssdler - lfsmake2 python-inotify - lfsmake2 python-docutils - lfsmake2 python-daemon - lfsmake2 python-ipaddress + lfsmake2 python3-setuptools + lfsmake2 python3-inotify + lfsmake2 python3-docutils + lfsmake2 python3-daemon lfsmake2 glib lfsmake2 ntp lfsmake2 openssh @@ -1427,7 +1412,6 @@ buildipfire() { lfsmake2 libmad lfsmake2 libogg lfsmake2 libvorbis - lfsmake2 libdvbpsi lfsmake2 flac lfsmake2 lame lfsmake2 sox @@ -1453,21 +1437,19 @@ buildipfire() { lfsmake2 br2684ctl lfsmake2 pcmciautils lfsmake2 lm_sensors + lfsmake2 libstatgrab lfsmake2 liboping lfsmake2 collectd lfsmake2 elinks lfsmake2 igmpproxy - lfsmake2 fbset lfsmake2 opus - lfsmake2 python-six - lfsmake2 python-pyparsing + lfsmake2 python3-pyparsing lfsmake2 spice-protocol lfsmake2 spice lfsmake2 sdl lfsmake2 libusbredir lfsmake2 libseccomp lfsmake2 qemu - lfsmake2 sane lfsmake2 netpbm lfsmake2 netsnmpd lfsmake2 nagios_nrpe @@ -1499,8 +1481,6 @@ buildipfire() { lfsmake2 iw lfsmake2 wpa_supplicant lfsmake2 hostapd - lfsmake2 pycurl - lfsmake2 urlgrabber lfsmake2 syslinux lfsmake2 tftpd lfsmake2 cpufrequtils @@ -1521,21 +1501,16 @@ buildipfire() { lfsmake2 perl-DBD-SQLite lfsmake2 perl-File-ReadBackwards lfsmake2 openvmtools - lfsmake2 libmicrohttpd - lfsmake2 motion lfsmake2 joe lfsmake2 monit lfsmake2 nut lfsmake2 watchdog lfsmake2 libpri - lfsmake2 libsrtp - lfsmake2 asterisk lfsmake2 usb_modeswitch lfsmake2 usb_modeswitch_data lfsmake2 zerofree lfsmake2 minicom lfsmake2 ddrescue - lfsmake2 miniupnpd lfsmake2 client175 lfsmake2 powertop lfsmake2 parted @@ -1547,44 +1522,30 @@ buildipfire() { lfsmake2 wireless-regdb lfsmake2 crda lfsmake2 libsolv - lfsmake2 python-distutils-extra - lfsmake2 python-lzma - lfsmake2 python-progressbar - lfsmake2 python-xattr lfsmake2 ddns - lfsmake2 python3-setuptools lfsmake2 python3-setuptools-scm lfsmake2 python3-six lfsmake2 python3-dateutil lfsmake2 python3-jmespath lfsmake2 python3-colorama - lfsmake2 python3-docutils lfsmake2 python3-yaml lfsmake2 python3-s3transfer lfsmake2 python3-rsa lfsmake2 python3-pyasn1 lfsmake2 python3-urllib3 lfsmake2 python3-botocore - lfsmake2 python3-llfuse lfsmake2 python3-msgpack lfsmake2 aws-cli lfsmake2 transmission - lfsmake2 dpfhack - lfsmake2 lcd4linux lfsmake2 mtr lfsmake2 minidlna lfsmake2 acpid lfsmake2 fping lfsmake2 telnet lfsmake2 xinetd - lfsmake2 gpgme - lfsmake2 pygpgme - lfsmake2 pakfire3 lfsmake2 stress - lfsmake2 libstatgrab lfsmake2 sarg lfsmake2 nginx - lfsmake2 sendEmail lfsmake2 sysbench lfsmake2 strace lfsmake2 ltrace @@ -1650,6 +1611,8 @@ buildipfire() { lfsmake2 ncdu lfsmake2 lshw lfsmake2 socat + lfsmake2 libcdada + lfsmake2 pmacct } buildinstaller() { @@ -1704,8 +1667,8 @@ buildpackages() { cd $BASEDIR - # remove not useable iso on armv5tel (needed to build flash images) - [ "${BUILD_ARCH}" = "armv5tel" ] && rm -rf *.iso + # 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 md5sum $i > $i.md5 @@ -1761,7 +1724,7 @@ build) # Clear screen ${INTERACTIVE} && clear - PACKAGE=`ls -v -r $BASEDIR/cache/toolchains/$SNAME-$VERSION-toolchain-$TOOLCHAINVER-${BUILD_ARCH}.tar.xz 2> /dev/null | head -n 1` + 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 if [ ! -n "$PACKAGE" ]; then @@ -1769,10 +1732,10 @@ build) prepareenv buildtoolchain else - PACKAGENAME=${PACKAGE%.tar.xz} + 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" @@ -1815,9 +1778,9 @@ clean) for i in `mount | grep $BASEDIR | sed 's/^.*loop=\(.*\))/\1/'`; do $LOSETUP -d $i 2>/dev/null done - for i in `mount | grep $BASEDIR | cut -d " " -f 1`; do - umount $i - done + #for i in `mount | grep $BASEDIR | cut -d " " -f 1`; do + # umount $i + #done stdumount for i in `seq 0 7`; do if ( losetup /dev/loop${i} 2>/dev/null | grep -q "/install/images" ); then @@ -1912,25 +1875,25 @@ toolchain) buildtoolchain echo "`date -u '+%b %e %T'`: Create toolchain image for ${BUILD_ARCH}" | tee -a $LOGFILE 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 | xz ${XZ_OPT} \ - > cache/toolchains/$SNAME-$VERSION-toolchain-$TOOLCHAINVER-${BUILD_ARCH}.tar.xz - md5sum cache/toolchains/$SNAME-$VERSION-toolchain-$TOOLCHAINVER-${BUILD_ARCH}.tar.xz \ + 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 stdumount ;; gettoolchain) # arbitrary name to be updated in case of new toolchain package upload PACKAGE=$SNAME-$VERSION-toolchain-$TOOLCHAINVER-${BUILD_ARCH} - if [ ! -f $BASEDIR/cache/toolchains/$PACKAGE.tar.xz ]; then + if [ ! -f $BASEDIR/cache/toolchains/$PACKAGE.tar.zst ]; then URL_TOOLCHAIN=`grep URL_TOOLCHAIN lfs/Config | awk '{ print $3 }'` 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.xz $URL_TOOLCHAIN/$PACKAGE.md5 >& /dev/null + wget -U "IPFireSourceGrabber/2.x" $URL_TOOLCHAIN/$PACKAGE.tar.zst $URL_TOOLCHAIN/$PACKAGE.md5 >& /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.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" @@ -1977,7 +1940,7 @@ lang) $BASEDIR/tools/check_strings.pl de > $BASEDIR/doc/language_issues.de $BASEDIR/tools/check_strings.pl fr > $BASEDIR/doc/language_issues.fr $BASEDIR/tools/check_strings.pl es > $BASEDIR/doc/language_issues.es - $BASEDIR/tools/check_strings.pl es > $BASEDIR/doc/language_issues.pl + $BASEDIR/tools/check_strings.pl pl > $BASEDIR/doc/language_issues.pl $BASEDIR/tools/check_strings.pl ru > $BASEDIR/doc/language_issues.ru $BASEDIR/tools/check_strings.pl nl > $BASEDIR/doc/language_issues.nl $BASEDIR/tools/check_strings.pl tr > $BASEDIR/doc/language_issues.tr