From ac948341b3ba71f9c642d8cff83dffb1493fc1dd Mon Sep 17 00:00:00 2001 From: Andreas Dilger Date: Wed, 14 Dec 2022 18:34:07 -0700 Subject: [PATCH] LU-16391 build: allow '-' in the version Update configure.ac to separate Version from Release in the .spec.in files so that RPM building doesn't choke if a '-' is in the version. Add these changes into configure also, so they are immediately used. Change-Id: I6cbf6efa25175f9cebeb349d28e1e8a565b4cb74 Signed-off-by: Andreas Dilger Reviewed-on: https://review.whamcloud.com/c/tools/e2fsprogs/+/49421 Tested-by: jenkins Tested-by: Maloo --- configure | 17 +++++++++-------- configure.ac | 18 ++++++++++-------- contrib/build-rpm | 1 + util/gen-tarball.in | 6 +++--- 4 files changed, 23 insertions(+), 19 deletions(-) diff --git a/configure b/configure index b0e8d1b..ea6b8a8 100755 --- a/configure +++ b/configure @@ -823,6 +823,7 @@ build_vendor build_cpu build E2FSPROGS_DATE +E2FSPROGS_PKGREL E2FSPROGS_PKGVER E2FSPROGS_VERSION E2FSPROGS_DAY @@ -4583,11 +4584,9 @@ fi MCONFIG=./MCONFIG BINARY_TYPE=bin -E2FSPROGS_VERSION=`grep E2FSPROGS_VERSION ${srcdir}/version.h \ - | awk '{print $3}' | tr \" " " | awk '{print $1}'` -E2FSPROGS_DATE=`grep E2FSPROGS_DATE ${srcdir}/version.h | awk '{print $3}' \ - | tr \" " " | awk '{print $1}'` -E2FSPROGS_DAY=$(echo $E2FSPROGS_DATE | awk -F- '{print $1}' | sed -e '/^[1-9]$/s/^/0/') +E2FSPROGS_VERSION=`awk -F\" '/E2FSPROGS_VER/ { print $2 }' ${srcdir}/version.h` +E2FSPROGS_DATE=`awk -F\" '/E2FSPROGS_DATE/ { print $2 }' ${srcdir}/version.h` +E2FSPROGS_DAY=$(echo $E2FSPROGS_DATE | awk -F- '{ printf "%02d", $1 }') MONTH=`echo $E2FSPROGS_DATE | awk -F- '{print $2}'` YEAR=`echo $E2FSPROGS_DATE | awk -F- '{print $3}'` @@ -4616,17 +4615,19 @@ Dec) MONTH_NUM=12; E2FSPROGS_MONTH="December" ;; printf "%s\n" "$as_me: WARNING: Unknown month $MONTH??" >&2;} ;; esac -base_ver=`echo $E2FSPROGS_VERSION | \ - sed -e 's/-WIP//' -e 's/pre-//' -e 's/-PLUS//'` +base_ver=`echo $E2FSPROGS_VERSION | sed -e 's/pre-//' -e 's/-.*//'` +base_rel=`echo $E2FSPROGS_VERSION | awk -F- '{ print $2 }'` date_spec=${E2FSPROGS_YEAR}.${MONTH_NUM}.${E2FSPROGS_DAY} case $E2FSPROGS_VERSION in *-WIP|pre-*) - E2FSPROGS_PKGVER="$base_ver~WIP.$date_spec" + E2FSPROGS_PKGVER="$base_ver" + E2FSPROGS_PKGREL="WIP.$date_spec" ;; *) E2FSPROGS_PKGVER="$base_ver" + E2FSPROGS_PKGREL="$base_rel" ;; esac diff --git a/configure.ac b/configure.ac index f1c280b..73824f9 100644 --- a/configure.ac +++ b/configure.ac @@ -11,11 +11,9 @@ BINARY_TYPE=bin dnl dnl This is to figure out the version number and the date.... dnl -E2FSPROGS_VERSION=`grep E2FSPROGS_VERSION ${srcdir}/version.h \ - | awk '{print $3}' | tr \" " " | awk '{print $1}'` -E2FSPROGS_DATE=`grep E2FSPROGS_DATE ${srcdir}/version.h | awk '{print $3}' \ - | tr \" " " | awk '{print $1}'` -E2FSPROGS_DAY=$(echo $E2FSPROGS_DATE | awk -F- '{print $1}' | sed -e '/^[[1-9]]$/s/^/0/') +E2FSPROGS_VERSION=`awk -F\" '/E2FSPROGS_VER/ { print $2 }' ${srcdir}/version.h` +E2FSPROGS_DATE=`awk -F\" '/E2FSPROGS_DATE/ { print $2 }' ${srcdir}/version.h` +E2FSPROGS_DAY=$(echo $E2FSPROGS_DATE | awk -F- '{ printf "%02d", $1 }') MONTH=`echo $E2FSPROGS_DATE | awk -F- '{print $2}'` YEAR=`echo $E2FSPROGS_DATE | awk -F- '{print $3}'` @@ -43,28 +41,32 @@ Dec) MONTH_NUM=12; E2FSPROGS_MONTH="December" ;; *) AC_MSG_WARN([Unknown month $MONTH??]) ;; esac -base_ver=`echo $E2FSPROGS_VERSION | \ - sed -e 's/-WIP//' -e 's/pre-//' -e 's/-PLUS//'` +base_ver=`echo $E2FSPROGS_VERSION | sed -e 's/pre-//' -e 's/-.*//'` +base_rel=`echo $E2FSPROGS_VERSION | awk -F- '{ print $2 }'` date_spec=${E2FSPROGS_YEAR}.${MONTH_NUM}.${E2FSPROGS_DAY} case $E2FSPROGS_VERSION in *-WIP|pre-*) - E2FSPROGS_PKGVER="$base_ver~WIP.$date_spec" + E2FSPROGS_PKGVER="$base_ver" + E2FSPROGS_PKGREL="WIP.$date_spec" ;; *) E2FSPROGS_PKGVER="$base_ver" + E2FSPROGS_PKGREL="$base_rel" ;; esac unset DATE MONTH YEAR base_ver pre_vers date_spec AC_MSG_RESULT([Generating configuration file for e2fsprogs version $E2FSPROGS_VERSION]) +AC_MSG_RESULT([Package version ${E2FSPROGS_PKGVER} release ${E2FSPROGS_PKGREL}]) AC_MSG_RESULT([Release date is ${E2FSPROGS_MONTH}, ${E2FSPROGS_YEAR}]) AC_SUBST(E2FSPROGS_YEAR) AC_SUBST(E2FSPROGS_MONTH) AC_SUBST(E2FSPROGS_DAY) AC_SUBST(E2FSPROGS_VERSION) AC_SUBST(E2FSPROGS_PKGVER) +AC_SUBST(E2FSPROGS_PKGREL) AC_SUBST(E2FSPROGS_DATE) dnl dnl Use diet libc diff --git a/contrib/build-rpm b/contrib/build-rpm index dfa73ad..5845fd2 100644 --- a/contrib/build-rpm +++ b/contrib/build-rpm @@ -11,6 +11,7 @@ pwd=`pwd` currdir=`basename $pwd` pkgname=`grep Name: e2fsprogs.spec | awk '{print $2;}'` pkgvers=`grep Version: e2fsprogs.spec | awk '{print $2;}'` +pkgrel=`grep Release: e2fsprogs.spec | awk '{print $2;}'` builddir=${pkgname}-${pkgvers} # ensure that $TMP is set to something diff --git a/util/gen-tarball.in b/util/gen-tarball.in index 997bd93..b2b2a86 100644 --- a/util/gen-tarball.in +++ b/util/gen-tarball.in @@ -5,7 +5,7 @@ srcdir=@srcdir@ top_srcdir=@top_srcdir@ top_dir=`cd $top_srcdir; pwd` -base_ver=`echo @E2FSPROGS_VERSION@ | sed -e 's/-WIP//' -e 's/pre-//' -e 's/-PLUS//'` +base_ver=`echo @E2FSPROGS_PKGVER@` base_e2fsprogs=`basename $top_dir` exclude=/tmp/exclude$$ GZIP=gzip @@ -16,12 +16,12 @@ GZIP=gzip # using a non-standard directory name for WIP releases. dpkg-source # complains, but life goes on. # -deb_pkgver=`echo @E2FSPROGS_PKGVER@ | sed -e 's/~/-/g'` +deb_pkgver=`echo @E2FSPROGS_PKGVER@-@E2FSPROGS_PKGREL@` case $1 in debian|ubuntu) SRCROOT="e2fsprogs-$deb_pkgver" - tarout="e2fsprogs_@E2FSPROGS_PKGVER@.orig.tar.gz" + tarout="e2fsprogs_@E2FSPROGS_PKGVER@-@E2FSPROGS_PKGREL@.orig.tar.gz" ;; all|*) SRCROOT="e2fsprogs-$base_ver" -- 1.8.3.1