From 93e6e40442a43c89082b3166f902aaa8a2b4a0a8 Mon Sep 17 00:00:00 2001 From: Michal Berger Date: Wed, 2 Jun 2021 12:30:12 +0200 Subject: [PATCH] rpmbuild: Allow to define custom builddir Alternative for the default of $HOME/rpmbuild. Signed-off-by: Michal Berger Change-Id: Id1feb7207926b518deb87045fc17bb3d1d4c374e Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/8159 Tested-by: SPDK CI Jenkins Reviewed-by: Jim Harris Reviewed-by: Tomasz Zawadzki --- autopackage.sh | 6 ++++-- rpmbuild/rpm.sh | 15 +++++++++------ 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/autopackage.sh b/autopackage.sh index 7f5c81e16..d73801901 100755 --- a/autopackage.sh +++ b/autopackage.sh @@ -11,6 +11,7 @@ fi source "$1" rootdir=$(readlink -f $(dirname $0)) +testdir=$rootdir # to get the storage space for tests source "$rootdir/test/common/autotest_common.sh" function build_rpms() ( @@ -20,7 +21,7 @@ function build_rpms() ( unset -v LD_LIBRARY_PATH install_uninstall_rpms() { - rpms=("$HOME/rpmbuild/RPMS/x86_64/"spdk{,-devel,{,-dpdk}-libs}-$version-1.x86_64.rpm) + rpms=("$builddir/rpm/x86_64/"spdk{,-devel,{,-dpdk}-libs}-$version-1.x86_64.rpm) sudo rpm -i "${rpms[@]}" rpms=("${rpms[@]##*/}") rpms=("${rpms[@]%.rpm}") @@ -31,11 +32,12 @@ function build_rpms() ( } build_rpm() { - MAKEFLAGS="$MAKEFLAGS" SPDK_VERSION="$version" DEPS=no "$rootdir/rpmbuild/rpm.sh" "$@" + BUILDDIR=$builddir MAKEFLAGS="$MAKEFLAGS" SPDK_VERSION="$version" DEPS=no "$rootdir/rpmbuild/rpm.sh" "$@" install_uninstall_rpms } version="test_shared" + builddir=$SPDK_TEST_STORAGE/test-rpm run_test "build_shared_rpm" build_rpm --with-shared if [[ -n $SPDK_TEST_NATIVE_DPDK ]]; then diff --git a/rpmbuild/rpm.sh b/rpmbuild/rpm.sh index 76b04ed9c..d358d6472 100755 --- a/rpmbuild/rpm.sh +++ b/rpmbuild/rpm.sh @@ -46,15 +46,18 @@ get_version() { } build_rpm() ( - local macros=() + local macros=() dir macros+=(-D "configure $configure") macros+=(-D "make $make") macros+=(-D "release $release") macros+=(-D "version $version") - # Prepare default dir structure - mkdir -p "$HOME"/rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS} + # Adjust dir macros to update the final location of the RPMS + for dir in build buildroot rpm source spec srcrpm; do + mkdir -p "$rpmbuild_dir/$dir" + macros+=(-D "_${dir}dir $rpmbuild_dir/$dir") + done if [[ $configure == *"with-shared"* || $configure == *"with-dpdk"* ]]; then macros+=(-D "dpdk 1") @@ -82,10 +85,10 @@ build_rpm() ( fedora_python_sys_path_workaround - # Despite building in-place, rpmbuild still looks under SOURCES as defined + # Despite building in-place, rpmbuild still looks under source dir as defined # in Source:. Create a dummy file to fulfil its needs and to keep Source in # the .spec. - : > "$rpmbuild_dir/SOURCES/spdk-$version.tar.gz" + : > "$rpmbuild_dir/source/spdk-$version.tar.gz" printf '* Starting rpmbuild...\n' rpmbuild --clean --nodebuginfo "${macros[@]}" --build-in-place -ba "$spec" @@ -99,7 +102,7 @@ release=${RPM_RELEASE:-1} requirements=${REQUIREMENTS:-} version=${SPDK_VERSION:-$(get_version)} -rpmbuild_dir=$HOME/rpmbuild +rpmbuild_dir=${BUILDDIR:-"$HOME/rpmbuild"} spec=$specdir/spdk.spec build_rpm