Commit 23ed60ea authored by Michal Berger's avatar Michal Berger Committed by Konrad Sztyber
Browse files

rpmbuild: Fix dpdk version check and bump it to 20.11



dpdk packages are versioned differently across different distros. In
particular, packages under fedora use Epoch in the spec. This requires
the condition to include this value, otherwise rpmbuild assumes it's 0
failing the check.

Also, add extra log to build_rpm_with_rpmed_dpdk test to indicate
when rpmbuild fails due to not resolved build dependencies.

Signed-off-by: default avatarMichal Berger <michal.berger@intel.com>
Change-Id: Ia4bab6e6486e20c24f7386a085b499462fe5fe0d
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14662


Reviewed-by: default avatarPawel Piatek <pawelx.piatek@intel.com>
Reviewed-by: default avatarBen Walker <benjamin.walker@intel.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
Reviewed-by: default avatarKonrad Sztyber <konrad.sztyber@intel.com>
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
parent 4bdf131f
Loading
Loading
Loading
Loading
+9 −2
Original line number Diff line number Diff line
@@ -36,13 +36,20 @@ function build_rpms() (
		# 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" "$@"
		BUILDDIR=$builddir MAKEFLAGS="$MAKEFLAGS" SPDK_VERSION="$version" DEPS=no "$rootdir/rpmbuild/rpm.sh" "$@" || return $?
		install_uninstall_rpms
	}

	build_rpm_with_rpmed_dpdk() {
		local es=0

		sudo dnf install -y dpdk-devel
		build_rpm --with-shared --with-dpdk
		build_rpm --with-shared --with-dpdk || es=$?

		if ((es == 11)); then
			echo "ERROR: Failed to resolve required build dependencies. Please review the build log." >&2
		fi
		return "$es"
	}

	build_rpm_from_gen_spec() {
+8 −2
Original line number Diff line number Diff line
@@ -95,8 +95,14 @@ build_macros() {
			# Don't build dpdk rpm rather define proper requirements for the spdk.
			macros+=(-D "dpdk 0")
			macros+=(-D "shared 1")
			requirements=${requirements:+$requirements, }"dpdk-devel >= 19.11"
			build_requirements=${build_requirements:+$build_requirements, }"dpdk-devel >= 19.11"
			# This maps how Epoch is used inside dpdk packages across different distros. It's
			# mainly relevant when comparing version of required packages. Default maps to 0.
			local -A dpdk_rpm_epoch["fedora"]=2
			local dpdk_version_min=${dpdk_rpm_epoch["$ID"]:-0}:20.11
			local dpdk_req="dpdk-devel >= $dpdk_version_min"

			requirements=${requirements:+$requirements, }"$dpdk_req"
			build_requirements=${build_requirements:+$build_requirements, }"$dpdk_req"
		else
			dpdk_build_path=$(get_config with-dpdk print)
			dpdk_path=$(dirname "$dpdk_build_path")