X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=make.sh;h=2e396fd8e60edfd2390d3bd85ad048a71cc0040a;hb=1eef496d47de2136929254b491f9b60fe6f8d5fc;hp=c34b5599740b97ac6052868bcb69cd2ad43a5a41;hpb=968a17d64cb744355b0aa2a611647f5fe12b477d;p=ipfire-2.x.git diff --git a/make.sh b/make.sh index c34b559974..2e396fd8e6 100755 --- a/make.sh +++ b/make.sh @@ -17,27 +17,29 @@ # 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 . # # # ############################################################################ # NAME="IPFire" # Software name SNAME="ipfire" # Short name -VERSION="2.23" # Version number -CORE="132" # Core Level (Filename) -PAKFIRE_CORE="131" # Core Level (PAKFIRE) -GIT_BRANCH=`git rev-parse --abbrev-ref HEAD` # Git Branch +# If you update the version don't forget to update backupiso and add it to core update +VERSION="2.25" # Version number +CORE="142" # 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=20190424 +# 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=20200108 ############################################################################### # @@ -173,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" ;; *) @@ -281,6 +284,7 @@ stdumount() { umount $BASEDIR/build/usr/src/lfs 2>/dev/null; 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; } now() { @@ -460,14 +464,20 @@ 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 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} 2>/dev/null + mkdir -p $BASEDIR/{cache,ccache/${BUILD_ARCH}} 2>/dev/null + + if [ "${ENABLE_RAMDISK}" = "on" ]; then + mkdir -p $BASEDIR/build/usr/src + mount -t tmpfs tmpfs -o size=4G,nr_inodes=1M,mode=1777 $BASEDIR/build/usr/src + fi + mkdir -p $BASEDIR/build/usr/src/{cache,config,doc,html,langs,lfs,log,src,ccache} mknod -m 600 $BASEDIR/build/dev/console c 5 1 2>/dev/null @@ -480,7 +490,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 $BASEDIR/build/usr/src/ccache + mount --bind $BASEDIR/ccache/${BUILD_ARCH} $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 @@ -498,20 +508,40 @@ 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} - 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 + enterchroot ccache --max-size="${CCACHE_CACHE_SIZE}" >/dev/null } enterchroot() { @@ -526,7 +556,7 @@ enterchroot() { PS1="${PS1}" \ PATH="${PATH}" \ SYSTEM_RELEASE="${SYSTEM_RELEASE}" \ - PAKFIRE_CORE="${PAKFIRE_CORE}" \ + PAKFIRE_TREE="${PAKFIRE_TREE}" \ NAME="${NAME}" \ SNAME="${SNAME}" \ VERSION="${VERSION}" \ @@ -536,6 +566,7 @@ enterchroot() { CONFIG_ROOT="${CONFIG_ROOT}" \ CFLAGS="${CFLAGS} ${HARDENING_CFLAGS}" \ CXXFLAGS="${CXXFLAGS} ${HARDENING_CFLAGS}" \ + RUSTFLAGS="${RUSTFLAGS}" \ BUILDTARGET="${BUILDTARGET}" \ CROSSTARGET="${CROSSTARGET}" \ BUILD_ARCH="${BUILD_ARCH}" \ @@ -543,6 +574,7 @@ enterchroot() { CCACHE_DIR=/usr/src/ccache \ CCACHE_COMPRESS="${CCACHE_COMPRESS}" \ CCACHE_COMPILERCHECK="${CCACHE_COMPILERCHECK}" \ + GOCACHE="/usr/src/ccache/go" \ KVER="${KVER}" \ XZ_OPT="${XZ_OPT}" \ DEFAULT_PARALLELISM="${DEFAULT_PARALLELISM}" \ @@ -726,7 +758,7 @@ fake_environ() { # Fake kernel version, because some of the packages do not compile # with kernel 3.0 and later. - env="${env} UTS_RELEASE=${KVER}" + env="${env} UTS_RELEASE=${KVER}-ipfire" # Fake machine version. env="${env} UTS_MACHINE=${BUILD_ARCH}" @@ -883,14 +915,23 @@ 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 } +# Default settings +CCACHE_CACHE_SIZE="4G" +ENABLE_RAMDISK="auto" + # Load configuration file if [ -f .config ]; then . .config @@ -912,6 +953,14 @@ else configure_build "default" fi +# Automatically enable/disable ramdisk usage +if [ "${ENABLE_RAMDISK}" = "auto" ]; then + # Enable only when the host system has 4GB of RAM or more + if [ ${SYSTEM_MEMORY} -ge 3900 ]; then + ENABLE_RAMDISK="on" + fi +fi + buildtoolchain() { local error=false case "${BUILD_ARCH}:${HOST_ARCH}" in @@ -995,6 +1044,7 @@ buildtoolchain() { lfsmake1 make lfsmake1 patch lfsmake1 perl + lfsmake1 python3 lfsmake1 sed lfsmake1 tar lfsmake1 texinfo @@ -1108,9 +1158,6 @@ buildipfire() { lfsmake2 lvm2 lfsmake2 multipath-tools lfsmake2 freetype - lfsmake2 grub - lfsmake2 efivar - lfsmake2 efibootmgr lfsmake2 libmnl lfsmake2 libnfnetlink lfsmake2 libnetfilter_queue @@ -1152,15 +1199,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" @@ -1198,6 +1236,9 @@ buildipfire() { lfsmake2 libffi lfsmake2 python lfsmake2 python3 + lfsmake2 grub + lfsmake2 efivar + lfsmake2 efibootmgr lfsmake2 ca-certificates lfsmake2 fireinfo lfsmake2 libnet @@ -1235,6 +1276,7 @@ buildipfire() { lfsmake2 beep lfsmake2 libarchive lfsmake2 cmake + lfsmake2 libssh lfsmake2 cdrkit lfsmake2 dosfstools lfsmake2 reiserfsprogs @@ -1243,7 +1285,6 @@ buildipfire() { lfsmake2 fuse lfsmake2 ntfs-3g lfsmake2 ethtool - lfsmake2 ez-ipupdate lfsmake2 fcron lfsmake2 perl-GD lfsmake2 GD-Graph @@ -1267,6 +1308,8 @@ buildipfire() { lfsmake2 misc-progs lfsmake2 nano lfsmake2 URI + lfsmake2 perl-CGI + lfsmake2 perl-Switch lfsmake2 HTML-Tagset lfsmake2 HTML-Parser lfsmake2 HTML-Template @@ -1304,6 +1347,7 @@ buildipfire() { lfsmake2 python-ipaddress lfsmake2 glib lfsmake2 GeoIP + lfsmake2 geoip-database lfsmake2 ntp lfsmake2 openssh lfsmake2 fontconfig @@ -1314,11 +1358,15 @@ buildipfire() { lfsmake2 cairo lfsmake2 pango lfsmake2 rrdtool - lfsmake2 setserial lfsmake2 setup lfsmake2 libdnet + lfsmake2 rust + lfsmake2 jansson lfsmake2 yaml lfsmake2 libhtp + lfsmake2 colm + lfsmake2 ragel + lfsmake2 hyperscan lfsmake2 suricata lfsmake2 oinkmaster lfsmake2 ids-ruleset-sources @@ -1360,9 +1408,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 @@ -1420,7 +1469,6 @@ buildipfire() { lfsmake2 icinga lfsmake2 observium-agent lfsmake2 ebtables - lfsmake2 directfb lfsmake2 faad2 lfsmake2 alac lfsmake2 ffmpeg @@ -1430,8 +1478,6 @@ buildipfire() { lfsmake2 vdr_dvbapi lfsmake2 vdr_eepg lfsmake2 w_scan - lfsmake2 icecast - lfsmake2 icegenerator lfsmake2 mpd lfsmake2 libmpdclient lfsmake2 mpc @@ -1459,14 +1505,12 @@ buildipfire() { lfsmake2 iperf3 lfsmake2 7zip lfsmake2 lynis - lfsmake2 streamripper lfsmake2 sshfs lfsmake2 taglib lfsmake2 sslh lfsmake2 perl-gettext lfsmake2 perl-Sort-Naturally lfsmake2 vdradmin - lfsmake2 miau lfsmake2 perl-DBI lfsmake2 perl-DBD-SQLite lfsmake2 perl-File-ReadBackwards @@ -1478,7 +1522,6 @@ buildipfire() { lfsmake2 watchdog lfsmake2 libpri lfsmake2 libsrtp - lfsmake2 jansson lfsmake2 asterisk lfsmake2 usb_modeswitch lfsmake2 usb_modeswitch_data @@ -1491,7 +1534,7 @@ buildipfire() { lfsmake2 parted lfsmake2 swig lfsmake2 u-boot - lfsmake2 u-boot-kirkwood + lfsmake2 u-boot-friendlyarm lfsmake2 python-typing lfsmake2 python-m2crypto lfsmake2 wireless-regdb @@ -1532,7 +1575,6 @@ buildipfire() { lfsmake2 stress lfsmake2 libstatgrab lfsmake2 sarg - lfsmake2 check_mk_agent lfsmake2 nginx lfsmake2 sendEmail lfsmake2 sysbench @@ -1540,8 +1582,6 @@ buildipfire() { lfsmake2 ltrace lfsmake2 ipfire-netboot lfsmake2 lcdproc - lfsmake2 bitstream - lfsmake2 multicat lfsmake2 keepalived lfsmake2 ipvsadm lfsmake2 perl-Carp-Clan @@ -1551,13 +1591,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 @@ -1565,15 +1603,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 @@ -1595,6 +1632,11 @@ buildipfire() { lfsmake2 zabbix_agentd lfsmake2 flashrom lfsmake2 firmware-update + lfsmake2 tshark + lfsmake2 geoip-generator + lfsmake2 speedtest-cli + lfsmake2 rfkill + lfsmake2 amazon-ssm-agent } buildinstaller() {