]> git.proxmox.com Git - mirror_corosync-qdevice.git/commitdiff
build: Use git-version-gen during specfile build
authorJan Friesse <jfriesse@redhat.com>
Tue, 14 Jul 2020 13:38:12 +0000 (15:38 +0200)
committerJan Friesse <jfriesse@redhat.com>
Wed, 15 Jul 2020 10:32:28 +0000 (12:32 +0200)
Instead of copying parts of git-version-gen for spec target use
git-version-gen directly and parse final version into components
(rpmver, alphatag, numcomm) and use them.

Main reason is to simplify code a bit (sed scripts are a bit repetitive
tho), reuse the code and also allow building of RPM from dist tarball
generated from non-tagged commit or dirty git (not very useful).

The code relies on fact, that hyphen is never used in tagged release
name.

Signed-off-by: Jan Friesse <jfriesse@redhat.com>
Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
Makefile.am

index 00ac436452726feea898666653a8035f91bf67f8..26e2af7f7296beb3883897fa6a4ff0abf5265b60 100644 (file)
@@ -83,21 +83,23 @@ clean-generic:
 $(SPEC): $(SPEC).in
        rm -f $@-t $@
        date="$(shell LC_ALL=C date "+%a %b %d %Y")" && \
-       if [ -f .tarball-version ]; then \
-               gitver="$(shell cat .tarball-version)" && \
-               rpmver=$$gitver && \
+       gvgver="`cd $(abs_srcdir); build-aux/git-version-gen --fallback $(VERSION) .tarball-version .gitarchivever`" && \
+       if [ "$$gvgver" = "`echo $$gvgver | sed 's/-/./'`" ];then \
+               rpmver="$$gvgver" && \
                alphatag="" && \
                dirty="" && \
-               numcomm=""; \
+               numcomm="0"; \
        else \
-               gitver="$(shell git describe --abbrev=4 --match='v*' HEAD 2>/dev/null)" && \
-               rpmver=`echo $$gitver | sed -e "s/^v//" -e "s/-.*//g"` && \
-               alphatag=`echo $$gitver | sed -e "s/.*-//" -e "s/^g//"` && \
-               vtag=`echo $$gitver | sed -e "s/-.*//g"` && \
-               numcomm=`git rev-list $$vtag..HEAD | wc -l` && \
-               git update-index --refresh > /dev/null 2>&1 || true && \
-               dirty=`git diff-index --name-only HEAD 2>/dev/null`; \
+               gitver="`echo $$gvgver | sed 's/\(.*\)\./\1-/'`" && \
+               rpmver=`echo $$gitver | sed 's/-.*//g'` && \
+               alphatag=`echo $$gvgver | sed 's/[^-]*-\([^-]*\).*/\1/'` && \
+               numcomm=`echo $$gitver | sed 's/[^-]*-\([^-]*\).*/\1/'` && \
+               dirty="" && \
+               if [ "`echo $$gitver | sed 's/^.*-dirty$$//g'`" = "" ];then \
+                       dirty="dirty"; \
+               fi \
        fi && \
+       if [ -n "$$dirty" ]; then dirty="dirty"; else dirty=""; fi && \
        if [ "$$numcomm" = "0" ]; then numcomm=""; fi && \
        if [ -n "$$numcomm" ]; then numcomm="%global numcomm $$numcomm"; fi && \
        if [ "$$alphatag" = "$$gitver" ]; then alphatag=""; fi && \