From 4c9d941337deef0fdd6d1a7510f49af1906a0eb0 Mon Sep 17 00:00:00 2001 From: Michal Berger Date: Wed, 16 Jun 2021 11:09:59 +0200 Subject: [PATCH] rpmbuild: Add routine for generating a standalone rpm .spec Signed-off-by: Michal Berger Change-Id: Ib8e139b928fd3e8cea67ebdc3ff1e464f51598bc Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/8389 Community-CI: Broadcom CI Tested-by: SPDK CI Jenkins Reviewed-by: Konrad Sztyber Reviewed-by: Jim Harris Reviewed-by: Ben Walker Reviewed-by: Pawel Piatek Reviewed-by: Karol Latecki Reviewed-by: --- autopackage.sh | 3 +++ rpmbuild/rpm.sh | 16 +++++++++++++--- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/autopackage.sh b/autopackage.sh index 9f4c00852..fffba17b5 100755 --- a/autopackage.sh +++ b/autopackage.sh @@ -32,6 +32,9 @@ function build_rpms() ( } build_rpm() { + # Separate run to see the final .spec in use + GEN_SPEC=yes BUILDDIR=$builddir MAKEFLAGS="$MAKEFLAGS" SPDK_VERSION="$version" DEPS=no "$rootdir/rpmbuild/rpm.sh" "$@" + # Actual build BUILDDIR=$builddir MAKEFLAGS="$MAKEFLAGS" SPDK_VERSION="$version" DEPS=no "$rootdir/rpmbuild/rpm.sh" "$@" install_uninstall_rpms } diff --git a/rpmbuild/rpm.sh b/rpmbuild/rpm.sh index 1a39edf37..31e923fba 100755 --- a/rpmbuild/rpm.sh +++ b/rpmbuild/rpm.sh @@ -65,8 +65,9 @@ get_version() { echo "${version%%-*}" } -build_rpm() ( - local macros=() dir +build_macros() { + local -g macros=() + local dir macros+=(-D "configure ${configure:-"%{nil}"}") macros+=(-D "make $make") @@ -113,9 +114,13 @@ build_rpm() ( macros+=(-D "build_requirements 1") macros+=(-D "build_requirements_list $build_requirements") fi +} - cd "$rootdir" +gen_spec() { + rpmspec "${macros[@]}" -P "$spec" +} +build_rpm() ( fedora_python_sys_path_workaround # Despite building in-place, rpmbuild still looks under source dir as defined @@ -139,4 +144,9 @@ version=${SPDK_VERSION:-$(get_version)} rpmbuild_dir=${BUILDDIR:-"$HOME/rpmbuild"} spec=$specdir/spdk.spec +build_macros +if [[ -n $GEN_SPEC ]]; then + gen_spec + exit 0 +fi build_rpm