From da7393b8935fce428f6cf1c104f2e2e45d9f2976 Mon Sep 17 00:00:00 2001 From: Florian Festi Date: Mar 25 2020 08:22:21 +0000 Subject: Use RPM_BUILD_NCPUS in brp-strip-static-archive to speed the script up for large number of files to be looked at. Use xargs -P instead of find -exec. Add xargs to the test environment Resolves rhbz1691822 --- diff --git a/scripts/brp-strip-static-archive b/scripts/brp-strip-static-archive index ddd3b24..4dc4490 100755 --- a/scripts/brp-strip-static-archive +++ b/scripts/brp-strip-static-archive @@ -5,6 +5,7 @@ if [ -z "$RPM_BUILD_ROOT" -o "$RPM_BUILD_ROOT" = "/" ]; then fi STRIP=${1:-strip} +NCPUS=${RPM_BUILD_NCPUS:-1} case `uname -a` in Darwin*) exit 0 ;; @@ -12,9 +13,10 @@ Darwin*) exit 0 ;; esac # Strip static libraries. -for f in `find "$RPM_BUILD_ROOT" -type f -a -exec file {} \; | \ - grep -v "^${RPM_BUILD_ROOT}/\?usr/lib/debug" | \ +for f in `find "$RPM_BUILD_ROOT" -type f | \ + grep -v "^${RPM_BUILD_ROOT}/\?usr/lib/debug" | \ + xargs -r -P$NCPUS -n16 file | sed 's/: */: /' | \ grep 'current ar archive' | \ - sed -n -e 's/^\(.*\):[ ]*current ar archive/\1/p'`; do + sed -n -e 's/^\(.*\):[ ]*current ar archive/\1/p'`; do $STRIP -g "$f" done diff --git a/tests/Makefile.am b/tests/Makefile.am index eaf817c..e79f7e0 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -137,7 +137,7 @@ testing$(bindir)/rpmbuild: ../rpmbuild for d in dev etc magic tmp var; do if [ ! -d testing/$${d} ]; then mkdir testing/$${d}; fi; done for node in urandom stdin stderr stdout null full; do ln -s /dev/$${node} testing/dev/$${node}; done for cf in hosts resolv.conf passwd shadow group gshadow mtab ; do [ -f /etc/$${cf} ] && ln -s /etc/$${cf} testing/etc/$${cf}; done - for prog in gzip cat patch tar sh ln chmod rm mkdir uname grep sed find file ionice mktemp nice cut sort diff touch install wc coreutils; do p=`which $${prog}`; if [ "$${p}" != "" ]; then ln -s $${p} testing/$(bindir)/; fi; done + for prog in gzip cat patch tar sh ln chmod rm mkdir uname grep sed find file ionice mktemp nice cut sort diff touch install wc coreutils xargs; do p=`which $${prog}`; if [ "$${p}" != "" ]; then ln -s $${p} testing/$(bindir)/; fi; done for d in /proc /sys /selinux /etc/selinux; do if [ -d $${d} ]; then ln -s $${d} testing/$${d}; fi; done (cd testing/magic && file -C) HOME=$(abs_builddir)/testing gpg2 --import ${abs_srcdir}/data/keys/*.secret