X-Git-Url: http://git.ipfire.org/?p=ipfire-2.x.git;a=blobdiff_plain;f=make.sh;h=9b38b88b46c23c58096751bac3978c613a9ef691;hp=fb529b669c42fd171b57db9cc9fd2c2b2508b619;hb=2aca6aa061c2f680b46aea2dbeb36e4678ed57a3;hpb=6174b7b1c72cd5141e04ac2621eef90d86987a91 diff --git a/make.sh b/make.sh index fb529b669c..9b38b88b46 100755 --- a/make.sh +++ b/make.sh @@ -17,16 +17,16 @@ # 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-2018 IPFire Team . # +# Copyright (C) 2007-2019 IPFire Team . # # # ############################################################################ # NAME="IPFire" # Software name SNAME="ipfire" # Short name -VERSION="2.21" # Version number -CORE="127" # Core Level (Filename) -PAKFIRE_CORE="126" # Core Level (PAKFIRE) +VERSION="2.23" # Version number +CORE="130" # Core Level (Filename) +PAKFIRE_CORE="129" # Core Level (PAKFIRE) GIT_BRANCH=`git rev-parse --abbrev-ref HEAD` # Git Branch SLOGAN="www.ipfire.org" # Software slogan CONFIG_ROOT=/var/ipfire # Configuration rootdir @@ -201,31 +201,22 @@ configure_build() { CXXFLAGS="${CFLAGS}" # Determine parallelism - if [ -z "${MAKETUNING}" ]; then - # We assume that each process consumes about - # 192MB of memory. Therefore we find out how - # many processes fit into memory. - local mem_max=$(( ${HOST_MEM} / 192 )) - - local processors="$(system_processors)" - local cpu_max=$(( ${processors} + 1 )) - - local parallelism - if [ ${mem_max} -lt ${cpu_max} ]; then - parallelism=${mem_max} - else - parallelism=${cpu_max} - fi - - # limit to -j23 because perl will not build - # more - if [ ${parallelism} -gt 23 ]; then - parallelism=23 - fi - - MAKETUNING="-j${parallelism}" + # We assume that each process consumes about + # 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 parallelism + if [ ${mem_max} -lt ${cpu_max} ]; then + parallelism=${mem_max} + else + parallelism=${cpu_max} fi + # Use this as default PARALLELISM + DEFAULT_PARALLELISM="${parallelism}" + # Compression parameters # We use mode 8 for reasonable memory usage when decompressing # but with overall good compression @@ -237,7 +228,7 @@ configure_build() { # We need to limit memory because XZ uses too much when running # in parallel and it isn't very smart in limiting itself. # We allow XZ to use up to 70% of all system memory. - local xz_memory=$(( HOST_MEM * 7 / 10 )) + local xz_memory=$(( SYSTEM_MEMORY * 7 / 10 )) # XZ memory cannot be larger than 2GB on 32 bit systems case "${build_arch}" in @@ -290,9 +281,6 @@ 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 ramdisk - ramdisk_save "${BASEDIR}/build" } now() { @@ -426,68 +414,6 @@ exiterror() { exit 1 } -ramdisk_save() { - local path="${1}" - - # Check if the ramdisk is actually mounted - if ! mountpoint "${path}" &>/dev/null; then - return 1 - fi - - # Remove the bind-mount - umount "${path}" - - echo -n "Saving ramdisk (this might take a moment)..." - - # Copy all data - mkdir -p "${path}.tmpfs" - if ! rsync -aHAXq --delete "${path}.tmpfs/" "${path}/"; then - print_status FAIL - return 1 - fi - - # Umount ramdisk - umount "${path}.tmpfs" - rm -rf "${path}.tmpfs" - - print_status DONE -} - -ramdisk_restore() { - local path="${1}" - - # Don't do anything if ramdisk support isn't enabled - if [ "${USE_RAMDISK}" != "1" ]; then - return 1 - fi - - # Check for sufficient memory - # XXX TODO - - echo -n "Restoring ramdisk (this might take a moment)..." - - # Mount new ramdisk - mkdir -p "${path}.tmpfs" - if ! mount -t tmpfs none "${path}.tmpfs"; then - exiterror "Could not mount ramdisk" - fi - - # Restore all data - if ! rsync -aHAXq --delete "${path}/" "${path}.tmpfs/"; then - umount "${path}.tmpfs" - rm -rf "${path}.tmpfs" - - exiterror "Could not restore ramdisk" - fi - - # Overlay the files on disk - # We would use "mount --move ..." but systemd is always - # mounting / as shared which doesn't allow moving anything - mount --bind "${path}.tmpfs" "${path}" - - print_status DONE -} - prepareenv() { # Are we running the right shell? if [ -z "${BASH}" ]; then @@ -534,12 +460,9 @@ prepareenv() { # Setup environment set +h LC_ALL=POSIX - export LFS LC_ALL CFLAGS CXXFLAGS MAKETUNING + export LFS LC_ALL CFLAGS CXXFLAGS DEFAULT_PARALLELISM unset CC CXX CPP LD_LIBRARY_PATH LD_PRELOAD - # Mount ramdisk (if requested) - ramdisk_restore "${BASEDIR}/build" - # Make some extra directories mkdir -p "${BASEDIR}/build${TOOLS_DIR}" 2>/dev/null mkdir -p $BASEDIR/build/{etc,usr/src} 2>/dev/null @@ -622,6 +545,9 @@ enterchroot() { CCACHE_COMPILERCHECK="${CCACHE_COMPILERCHECK}" \ KVER="${KVER}" \ XZ_OPT="${XZ_OPT}" \ + DEFAULT_PARALLELISM="${DEFAULT_PARALLELISM}" \ + SYSTEM_PROCESSORS="${SYSTEM_PROCESSORS}" \ + SYSTEM_MEMORY="${SYSTEM_MEMORY}" \ $(fake_environ) \ $(qemu_environ) \ "$@" @@ -701,7 +627,9 @@ lfsmake1() { CCACHE_COMPILERCHECK="${CCACHE_COMPILERCHECK}" \ CFLAGS="${CFLAGS}" \ CXXFLAGS="${CXXFLAGS}" \ - MAKETUNING="${MAKETUNING}" \ + DEFAULT_PARALLELISM="${DEFAULT_PARALLELISM}" \ + SYSTEM_PROCESSORS="${SYSTEM_PROCESSORS}" \ + SYSTEM_MEMORY="${SYSTEM_MEMORY}" \ make -f $* \ TOOLCHAIN=1 \ TOOLS_DIR="${TOOLS_DIR}" \ @@ -730,7 +658,6 @@ lfsmake2() { enterchroot \ ${EXTRA_PATH}bash -x -c "cd /usr/src/lfs && \ - MAKETUNING=${MAKETUNING} \ make -f $* \ LFS_BASEDIR=/usr/src install" \ >> ${LOGFILE} 2>&1 & @@ -975,8 +902,9 @@ if [ -n "${TARGET_ARCH}" ]; then unset TARGET_ARCH fi -# Get the amount of memory in this build system -HOST_MEM=$(system_memory) +# Get some information about the host system +SYSTEM_PROCESSORS="$(system_processors)" +SYSTEM_MEMORY="$(system_memory)" if [ -n "${BUILD_ARCH}" ]; then configure_build "${BUILD_ARCH}" @@ -1155,8 +1083,8 @@ buildipfire() { lfsmake2 backup lfsmake2 openssl [ "${BUILD_ARCH}" = "i586" ] && lfsmake2 openssl KCFG='-sse2' - lfsmake2 openssl-compat lfsmake2 popt + lfsmake2 libedit lfsmake2 libusb lfsmake2 libusb-compat lfsmake2 libpcap @@ -1169,6 +1097,7 @@ buildipfire() { lfsmake2 xr819-firmware lfsmake2 zd1211-firmware lfsmake2 rpi-firmware + lfsmake2 intel-microcode lfsmake2 bc lfsmake2 u-boot MKIMAGE=1 lfsmake2 cpio @@ -1241,7 +1170,6 @@ buildipfire() { lfsmake2 linux-initrd KCFG="-multi" ;; esac - lfsmake2 intel-microcode lfsmake2 xtables-addons USPACE="1" lfsmake2 libgpg-error lfsmake2 libgcrypt @@ -1289,6 +1217,7 @@ buildipfire() { lfsmake2 attr lfsmake2 acl lfsmake2 libcap + lfsmake2 libcap-ng lfsmake2 pciutils lfsmake2 usbutils lfsmake2 libxml2 @@ -1387,9 +1316,11 @@ buildipfire() { lfsmake2 setserial lfsmake2 setup lfsmake2 libdnet - lfsmake2 daq - lfsmake2 snort + lfsmake2 yaml + lfsmake2 libhtp + lfsmake2 suricata lfsmake2 oinkmaster + lfsmake2 ids-ruleset-sources lfsmake2 squid lfsmake2 squidguard lfsmake2 calamaris @@ -1502,6 +1433,7 @@ buildipfire() { lfsmake2 mpd lfsmake2 libmpdclient lfsmake2 mpc + lfsmake2 perl-Net-CIDR-Lite lfsmake2 perl-Net-SMTP-SSL lfsmake2 perl-MIME-Base64 lfsmake2 perl-Authen-SASL @@ -1568,6 +1500,8 @@ buildipfire() { lfsmake2 python-progressbar lfsmake2 python-xattr lfsmake2 ddns + lfsmake2 python3-setuptools + lfsmake2 python3-setuptools-scm lfsmake2 python3-six lfsmake2 python3-dateutil lfsmake2 python3-jmespath @@ -1578,6 +1512,8 @@ buildipfire() { lfsmake2 python3-rsa lfsmake2 python3-pyasn1 lfsmake2 python3-botocore + lfsmake2 python3-llfuse + lfsmake2 python3-msgpack lfsmake2 aws-cli lfsmake2 transmission lfsmake2 dpfhack @@ -1651,6 +1587,12 @@ buildipfire() { lfsmake2 nss-myhostname lfsmake2 dehydrated lfsmake2 shairport-sync + lfsmake2 borgbackup + lfsmake2 knot + lfsmake2 spectre-meltdown-checker + lfsmake2 zabbix_agentd + lfsmake2 flashrom + lfsmake2 firmware-update } buildinstaller() {