diff --git a/contrib/rhel/build-netdata-rpm.sh b/contrib/rhel/build-netdata-rpm.sh index df33d8068a..9ce3863b90 100755 --- a/contrib/rhel/build-netdata-rpm.sh +++ b/contrib/rhel/build-netdata-rpm.sh @@ -13,24 +13,33 @@ run autoreconf -ivf run ./configure --enable-maintainer-mode run make dist -version=$(grep PACKAGE_VERSION < config.h | cut -d '"' -f 2) -if [ -z "${version}" ] -then - echo >&2 "Cannot find netdata version." - exit 1 -fi - -tgz="netdata-${version}.tar.gz" -if [ ! -f "${tgz}" ] -then - echo >&2 "Cannot find the generated tar.gz file '${tgz}'" +typeset version="$(grep PACKAGE_VERSION < config.h | cut -d '"' -f 2)" +if [[ -z "${version}" ]]; then + run_failed "Cannot find netdata version." exit 1 fi -srpm=$(run rpmbuild -ts "${tgz}" | cut -d ' ' -f 2) -if [ -z "${srpm}" ] || [ ! -f "${srpm}" ] -then - echo >&2 "Cannot find the generated SRPM file '${srpm}'" +if [[ "${version//-/}" != "$version" ]]; then + # Remove all -* and _* suffixes to be as close as netdata release + typeset versionfix="${version%%-*}"; versionfix="${versionfix%%_*}" + # Append the current datetime fox a 'unique' build + versionfix+="_$(date '+%m%d%H%M%S')" + # And issue hints & details on why this failed, and how to fix it + run_failed "Current version contains '-' which is fobidden by rpm. You must create a git annotated tag and rerun this script. Exemple:" + run_failed " git tag -a $versionfix -m 'Release by $(id -nu) on $(uname -n)' && $0" + exit 1 +fi + + +typeset tgz="netdata-${version}.tar.gz" +if [[ ! -f "${tgz}" ]]; then + run_failed "Cannot find the generated tar.gz file '${tgz}'" + exit 1 +fi + +typeset srpm="$(run rpmbuild -ts "${tgz}" | cut -d ' ' -f 2)" +if [[ -z "${srpm}" ]] || ! [[ -f "${srpm}" ]]; then + run_failed "Cannot find the generated SRPM file '${srpm}'" exit 1 fi @@ -44,4 +53,4 @@ fi run rpmbuild --rebuild "${srpm}" -echo >&2 "All done!" +run_ok "All done! Packages created in '$(rpm -E '%_rpmdir/%_arch')'"