X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=make.sh;h=2a6198e05b9ef1ba79b1c8c893a075d27e67b799;hb=882ab515f9cb899a3e971edc51864642ba18c0b2;hp=909fe2430e6a37ddd4b70fb5d18988ddccc4b825;hpb=392994dcfb01b913f5bb9db4ca129fdbdbf39569;p=ipfire-2.x.git diff --git a/make.sh b/make.sh index 909fe2430e..2a6198e05b 100755 --- 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-2019 IPFire Team . # +# Copyright (C) 2007-2020 IPFire Team . # # # ############################################################################ # @@ -25,20 +25,21 @@ 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.23" # Version number -CORE="136" # Core Level (Filename) -PAKFIRE_CORE="135" # Core Level (PAKFIRE) -GIT_BRANCH=`git rev-parse --abbrev-ref HEAD` # Git Branch +VERSION="2.25" # Version number +CORE="149" # Core Level (Filename) SLOGAN="www.ipfire.org" # Software slogan CONFIG_ROOT=/var/ipfire # Configuration rootdir NICE=10 # Nice level MAX_RETRIES=1 # prefetch/check loop BUILD_IMAGES=1 # Flash and Xen Downloader KVER=`grep --max-count=1 VER lfs/linux | awk '{ print $3 }'` -GIT_TAG=$(git tag | tail -1) # Git Tag -GIT_LASTCOMMIT=$(git log | head -n1 | cut -d" " -f2 |head -c8) # Last commit -TOOLCHAINVER=20190814 +# Information from Git +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=20200814 ############################################################################### # @@ -145,21 +146,21 @@ configure_build() { BUILDTARGET="${build_arch}-unknown-linux-gnu" CROSSTARGET="${build_arch}-cross-linux-gnu" BUILD_PLATFORM="x86" - CFLAGS_ARCH="-m64 -mindirect-branch=thunk -mfunction-return=thunk -mtune=generic" + 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 -mindirect-branch=thunk -mfunction-return=thunk -mtune=generic -fomit-frame-pointer" + CFLAGS_ARCH="-march=i586 -mtune=generic -fomit-frame-pointer -fcf-protection" ;; aarch64) BUILDTARGET="${build_arch}-unknown-linux-gnu" CROSSTARGET="${build_arch}-cross-linux-gnu" BUILD_PLATFORM="arm" - CFLAGS_ARCH="" + CFLAGS_ARCH="-fstack-clash-protection" ;; armv7hl) @@ -174,6 +175,7 @@ configure_build() { CROSSTARGET="${build_arch}-cross-linux-gnueabi" BUILD_PLATFORM="arm" CFLAGS_ARCH="-march=armv5te -mfloat-abi=soft -fomit-frame-pointer" + RUSTFLAGS="-Ccodegen-units=1" ;; *) @@ -283,6 +285,7 @@ stdumount() { umount $BASEDIR/build/usr/src/log 2>/dev/null; umount $BASEDIR/build/usr/src/src 2>/dev/null; umount $BASEDIR/build/usr/src 2>/dev/null; + umount $BASEDIR/build/tmp 2>/dev/null; } now() { @@ -462,7 +465,7 @@ prepareenv() { # Setup environment set +h LC_ALL=POSIX - export LFS LC_ALL CFLAGS CXXFLAGS DEFAULT_PARALLELISM + export LFS LC_ALL CFLAGS CXXFLAGS DEFAULT_PARALLELISM RUSTFLAGS unset CC CXX CPP LD_LIBRARY_PATH LD_PRELOAD # Make some extra directories @@ -473,7 +476,10 @@ prepareenv() { if [ "${ENABLE_RAMDISK}" = "on" ]; then mkdir -p $BASEDIR/build/usr/src - mount -t tmpfs tmpfs -o size=4G,mode=1777 $BASEDIR/build/usr/src + mount -t tmpfs tmpfs -o size=8G,nr_inodes=1M,mode=1777 $BASEDIR/build/usr/src + + mkdir -p ${BASEDIR}/build/tmp + mount -t tmpfs tmpfs -o size=4G,nr_inodes=1M,mode=1777 ${BASEDIR}/build/tmp fi mkdir -p $BASEDIR/build/usr/src/{cache,config,doc,html,langs,lfs,log,src,ccache} @@ -499,6 +505,7 @@ 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}" @@ -506,19 +513,36 @@ prepareenv() { rm -f $BASEDIR/build/usr/src/lsalr 2>/dev/null # Prepare string for /etc/system-release. - SYSTEM_RELEASE="${NAME} ${VERSION} (${BUILD_ARCH})" - if [ "$(git status -s | wc -l)" == "0" ]; then - GIT_STATUS="" - else - GIT_STATUS="-dirty" + local system_release="${NAME} ${VERSION} (${BUILD_ARCH})" + + case "${GIT_BRANCH}" in + core*|beta?|rc?) + system_release="${system_release} - ${GIT_BRANCH}" + ;; + *) + system_release="${system_release} - core${CORE} Development Build: ${GIT_BRANCH}/${GIT_LASTCOMMIT:0:8}" + ;; + esac + + # Append -dirty tag for local changes + if [ "$(git status -s | wc -l)" != "0" ]; then + system_release="${system_release}-dirty" fi - case "$GIT_BRANCH" in - core*|beta?|rc?) - SYSTEM_RELEASE="${SYSTEM_RELEASE} - $GIT_BRANCH$GIT_STATUS" - ;; - *) - SYSTEM_RELEASE="${SYSTEM_RELEASE} - Development Build: $GIT_BRANCH/$GIT_LASTCOMMIT$GIT_STATUS" - ;; + + # Export variable + SYSTEM_RELEASE="${system_release}" + + # Decide on PAKFIRE_TREE + case "${GIT_BRANCH}" in + core*) + PAKFIRE_TREE="stable" + ;; + master) + PAKFIRE_TREE="testing" + ;; + *) + PAKFIRE_TREE="unstable" + ;; esac # Setup ccache cache size @@ -537,7 +561,7 @@ enterchroot() { PS1="${PS1}" \ PATH="${PATH}" \ SYSTEM_RELEASE="${SYSTEM_RELEASE}" \ - PAKFIRE_CORE="${PAKFIRE_CORE}" \ + PAKFIRE_TREE="${PAKFIRE_TREE}" \ NAME="${NAME}" \ SNAME="${SNAME}" \ VERSION="${VERSION}" \ @@ -547,13 +571,16 @@ enterchroot() { CONFIG_ROOT="${CONFIG_ROOT}" \ CFLAGS="${CFLAGS} ${HARDENING_CFLAGS}" \ CXXFLAGS="${CXXFLAGS} ${HARDENING_CFLAGS}" \ + RUSTFLAGS="${RUSTFLAGS}" \ BUILDTARGET="${BUILDTARGET}" \ CROSSTARGET="${CROSSTARGET}" \ BUILD_ARCH="${BUILD_ARCH}" \ 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}" \ XZ_OPT="${XZ_OPT}" \ DEFAULT_PARALLELISM="${DEFAULT_PARALLELISM}" \ @@ -634,6 +661,7 @@ lfsmake1() { cd $BASEDIR/lfs && env -i \ PATH="${TOOLS_DIR}/ccache/bin:${TOOLS_DIR}/bin:$PATH" \ CCACHE_DIR="${CCACHE_DIR}" \ + CCACHE_TEMPDIR="${CCACHE_TEMPDIR}" \ CCACHE_COMPRESS="${CCACHE_COMPRESS}" \ CCACHE_COMPILERCHECK="${CCACHE_COMPILERCHECK}" \ CFLAGS="${CFLAGS}" \ @@ -776,7 +804,7 @@ qemu_is_required() { fi case "${HOST_ARCH},${build_arch}" in - x86_64,arm*|i?86,arm*|i?86,x86_64) + x86_64,arm*|x86_64,aarch64|i?86,arm*|i?86,aarch64|i?86,x86_64) return 0 ;; *) @@ -834,6 +862,9 @@ qemu_find_build_helper_name() { local magic case "${build_arch}" in + aarch64) + magic="7f454c460201010000000000000000000200b700" + ;; arm*) magic="7f454c4601010100000000000000000002002800" ;; @@ -894,9 +925,14 @@ update_contributors() { local contributors="$(contributors | paste -sd , - | sed -e "s/,/&\\\\n/g")" # Edit contributors into credits.cgi - awk -i inplace \ - "//{ p=1; print; printf \"${contributors}\n\"}//{ p=0 } !p" \ - "${BASEDIR}/html/cgi-bin/credits.cgi" + local tmp="$(mktemp)" + + awk "//{ p=1; print; printf \"${contributors}\n\"}//{ p=0 } !p" \ + < "${BASEDIR}/html/cgi-bin/credits.cgi" > "${tmp}" + + # Copy back modified content + cat "${tmp}" > "${BASEDIR}/html/cgi-bin/credits.cgi" + unlink "${tmp}" print_status DONE return 0 @@ -1051,6 +1087,7 @@ buildbase() { lfsmake2 autoconf lfsmake2 automake lfsmake2 berkeley + lfsmake2 berkeley-compat lfsmake2 coreutils lfsmake2 iana-etc lfsmake2 m4 @@ -1073,6 +1110,7 @@ buildbase() { lfsmake2 flex lfsmake2 gawk lfsmake2 gettext + lfsmake2 go lfsmake2 grep lfsmake2 groff lfsmake2 gperf @@ -1085,7 +1123,6 @@ buildbase() { lfsmake2 pkg-config lfsmake2 make lfsmake2 man - lfsmake2 kmod lfsmake2 net-tools lfsmake2 patch lfsmake2 psmisc @@ -1095,7 +1132,6 @@ buildbase() { lfsmake2 tar lfsmake2 texinfo lfsmake2 util-linux - lfsmake2 udev lfsmake2 vim } @@ -1107,6 +1143,8 @@ buildipfire() { lfsmake2 backup lfsmake2 openssl [ "${BUILD_ARCH}" = "i586" ] && lfsmake2 openssl KCFG='-sse2' + lfsmake2 kmod + lfsmake2 udev lfsmake2 popt lfsmake2 libedit lfsmake2 libusb @@ -1132,9 +1170,6 @@ buildipfire() { lfsmake2 lvm2 lfsmake2 multipath-tools lfsmake2 freetype - lfsmake2 grub - lfsmake2 efivar - lfsmake2 efibootmgr lfsmake2 libmnl lfsmake2 libnfnetlink lfsmake2 libnetfilter_queue @@ -1156,15 +1191,6 @@ buildipfire() { lfsmake2 linux-initrd KCFG="" ;; i586) - # x86-pae (Native and new XEN) kernel build - lfsmake2 linux KCFG="-pae" -# lfsmake2 backports KCFG="-pae" -# lfsmake2 e1000e KCFG="-pae" -# lfsmake2 igb KCFG="-pae" -# lfsmake2 ixgbe KCFG="-pae" - lfsmake2 xtables-addons KCFG="-pae" - lfsmake2 linux-initrd KCFG="-pae" - # x86 kernel build lfsmake2 linux KCFG="" # lfsmake2 backports KCFG="" @@ -1176,15 +1202,6 @@ buildipfire() { ;; armv5tel) - # arm-kirkwood (Dreamplug, ICY-Box ...) kernel build - lfsmake2 linux KCFG="-kirkwood" -# lfsmake2 backports KCFG="-kirkwood" -# lfsmake2 e1000e KCFG="-kirkwood" -# lfsmake2 igb KCFG="-kirkwood" -# lfsmake2 ixgbe KCFG="-kirkwood" - lfsmake2 xtables-addons KCFG="-kirkwood" - lfsmake2 linux-initrd KCFG="-kirkwood" - # arm multi platform (Panda, Wandboard ...) kernel build lfsmake2 linux KCFG="-multi" # lfsmake2 backports KCFG="-multi" @@ -1222,6 +1239,9 @@ buildipfire() { lfsmake2 libffi lfsmake2 python lfsmake2 python3 + lfsmake2 grub + lfsmake2 efivar + lfsmake2 efibootmgr lfsmake2 ca-certificates lfsmake2 fireinfo lfsmake2 libnet @@ -1229,6 +1249,8 @@ buildipfire() { lfsmake2 libnl-3 lfsmake2 libidn lfsmake2 nasm + lfsmake2 libarchive + lfsmake2 cmake lfsmake2 libjpeg lfsmake2 libjpeg-compat lfsmake2 libexif @@ -1257,8 +1279,7 @@ buildipfire() { lfsmake2 bootstrap lfsmake2 arping lfsmake2 beep - lfsmake2 libarchive - lfsmake2 cmake + lfsmake2 libssh lfsmake2 cdrkit lfsmake2 dosfstools lfsmake2 reiserfsprogs @@ -1267,7 +1288,6 @@ buildipfire() { lfsmake2 fuse lfsmake2 ntfs-3g lfsmake2 ethtool - lfsmake2 ez-ipupdate lfsmake2 fcron lfsmake2 perl-GD lfsmake2 GD-Graph @@ -1280,6 +1300,7 @@ buildipfire() { lfsmake2 sdparm lfsmake2 mtools lfsmake2 whatmask + lfsmake2 libtirpc lfsmake2 conntrack-tools lfsmake2 libupnp lfsmake2 ipaddr @@ -1329,7 +1350,6 @@ buildipfire() { lfsmake2 python-daemon lfsmake2 python-ipaddress lfsmake2 glib - lfsmake2 GeoIP lfsmake2 ntp lfsmake2 openssh lfsmake2 fontconfig @@ -1340,9 +1360,9 @@ buildipfire() { lfsmake2 cairo lfsmake2 pango lfsmake2 rrdtool - lfsmake2 setserial lfsmake2 setup lfsmake2 libdnet + lfsmake2 rust lfsmake2 jansson lfsmake2 yaml lfsmake2 libhtp @@ -1363,6 +1383,7 @@ buildipfire() { lfsmake2 spandsp lfsmake2 lz4 lfsmake2 lzo + lfsmake2 zstd lfsmake2 openvpn lfsmake2 mpage lfsmake2 dbus @@ -1381,6 +1402,7 @@ buildipfire() { lfsmake2 cifs-utils lfsmake2 krb5 lfsmake2 samba + lfsmake2 netatalk lfsmake2 sudo lfsmake2 mc lfsmake2 wget @@ -1390,10 +1412,10 @@ buildipfire() { lfsmake2 chkconfig lfsmake2 postfix lfsmake2 fetchmail - lfsmake2 cyrus-imapd lfsmake2 clamav lfsmake2 perl-NetAddr-IP lfsmake2 spamassassin + lfsmake2 perl-Net-LibIDN lfsmake2 amavisd lfsmake2 dma lfsmake2 alsa @@ -1413,9 +1435,10 @@ buildipfire() { lfsmake2 libmpeg2 lfsmake2 gnump3d lfsmake2 rsync - lfsmake2 libtirpc lfsmake2 rpcbind lfsmake2 keyutils + lfsmake2 rpcsvc-proto + lfsmake2 libnfsidmap lfsmake2 nfs lfsmake2 gnu-netcat lfsmake2 ncat @@ -1451,7 +1474,6 @@ buildipfire() { lfsmake2 icinga lfsmake2 observium-agent lfsmake2 ebtables - lfsmake2 directfb lfsmake2 faad2 lfsmake2 alac lfsmake2 ffmpeg @@ -1461,8 +1483,6 @@ buildipfire() { lfsmake2 vdr_dvbapi lfsmake2 vdr_eepg lfsmake2 w_scan - lfsmake2 icecast - lfsmake2 icegenerator lfsmake2 mpd lfsmake2 libmpdclient lfsmake2 mpc @@ -1483,14 +1503,12 @@ buildipfire() { lfsmake2 syslinux lfsmake2 tftpd lfsmake2 cpufrequtils - lfsmake2 bluetooth lfsmake2 gutenprint lfsmake2 apcupsd lfsmake2 iperf lfsmake2 iperf3 lfsmake2 7zip lfsmake2 lynis - lfsmake2 streamripper lfsmake2 sshfs lfsmake2 taglib lfsmake2 sslh @@ -1501,6 +1519,7 @@ buildipfire() { lfsmake2 perl-DBD-SQLite lfsmake2 perl-File-ReadBackwards lfsmake2 openvmtools + lfsmake2 libmicrohttpd lfsmake2 motion lfsmake2 joe lfsmake2 monit @@ -1520,7 +1539,6 @@ buildipfire() { lfsmake2 parted lfsmake2 swig lfsmake2 u-boot - lfsmake2 u-boot-kirkwood lfsmake2 u-boot-friendlyarm lfsmake2 python-typing lfsmake2 python-m2crypto @@ -1562,7 +1580,6 @@ buildipfire() { lfsmake2 stress lfsmake2 libstatgrab lfsmake2 sarg - lfsmake2 check_mk_agent lfsmake2 nginx lfsmake2 sendEmail lfsmake2 sysbench @@ -1570,8 +1587,6 @@ buildipfire() { lfsmake2 ltrace lfsmake2 ipfire-netboot lfsmake2 lcdproc - lfsmake2 bitstream - lfsmake2 multicat lfsmake2 keepalived lfsmake2 ipvsadm lfsmake2 perl-Carp-Clan @@ -1581,13 +1596,11 @@ buildipfire() { lfsmake2 perl-TimeDate lfsmake2 swatch lfsmake2 tor - lfsmake2 arm lfsmake2 wavemon lfsmake2 iptraf-ng lfsmake2 iotop lfsmake2 stunnel lfsmake2 bacula - lfsmake2 batctl lfsmake2 perl-Font-TTF lfsmake2 perl-IO-String lfsmake2 perl-PDF-API2 @@ -1595,15 +1608,14 @@ buildipfire() { lfsmake2 pigz lfsmake2 tmux lfsmake2 perl-Text-CSV_XS + lfsmake2 lua lfsmake2 haproxy lfsmake2 ipset - lfsmake2 lua lfsmake2 dnsdist lfsmake2 bird lfsmake2 frr lfsmake2 dmidecode lfsmake2 mcelog - lfsmake2 rtpproxy lfsmake2 util-macros lfsmake2 libpciaccess lfsmake2 libyajl @@ -1626,7 +1638,10 @@ buildipfire() { lfsmake2 flashrom lfsmake2 firmware-update lfsmake2 tshark - lfsmake2 geoip-generator + lfsmake2 speedtest-cli + lfsmake2 rfkill + lfsmake2 amazon-ssm-agent + lfsmake2 libloc } buildinstaller() { @@ -1679,15 +1694,12 @@ buildpackages() { ipfirepackages - lfsmake2 xen-image - mv $LFS/install/images/*.bz2 $BASEDIR >> $LOGFILE 2>&1 - cd $BASEDIR # remove not useable iso on armv5tel (needed to build flash images) [ "${BUILD_ARCH}" = "armv5tel" ] && rm -rf *.iso - for i in `ls *.bz2 *.img.xz *.iso`; do + for i in $(ls *.bz2 *.img.xz *.iso 2>/dev/null); do md5sum $i > $i.md5 done cd $PWD @@ -1973,8 +1985,13 @@ lang) update-contributors) update_contributors ;; +find-dependencies) + shift + exec "${BASEDIR}/tools/find-dependencies" "${BASEDIR}/build" "$@" + ;; *) - echo "Usage: $0 {build|changelog|clean|gettoolchain|downloadsrc|shell|sync|toolchain|update-contributors}" + echo "Usage: $0 {build|changelog|clean|gettoolchain|downloadsrc|shell|sync|toolchain|update-contributors|find-dependencies}" cat doc/make.sh-usage ;; esac +