diff options
author | Dag Wieërs <dag@wieers.com> | 2012-08-01 14:52:37 +0200 |
---|---|---|
committer | Dag Wieërs <dag@wieers.com> | 2012-08-01 14:58:02 +0200 |
commit | ec7c8eb8ca85c584ca80e215bbb2397c24a14687 (patch) | |
tree | 6a39f1b097f684a6631d6f368570e24095750c34 /Makefile | |
parent | db9955d3dfcd38547c18742a0e4da5c002c9aaf1 (diff) | |
download | ansible-ec7c8eb8ca85c584ca80e215bbb2397c24a14687.tar.gz |
Implements git commit date into RPM release
With this patch one can do `make rpm` and get an RPM file that looks like:
rpm-build/noarch/ansible-0.6-0.git201208010541.el6.noarch.rpm
My goal was not to rewrite the original SPEC file, and/or the tarball. In other
projects what I tend to do is prepare the SPEC file in the tarball with the
correct version/release so that rpmbuild works on the (released) tarball as
well. If this is wanted, we will have to rewrite the SPEC file on the fly as
part of creating the tarball. If there is no git or .git/ available, we will
use the current time.
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 21 |
1 files changed, 16 insertions, 5 deletions
@@ -28,13 +28,21 @@ SITELIB = $(shell python -c "from distutils.sysconfig import get_python_lib; pri # VERSION file provides one place to update the software version VERSION := $(shell cat VERSION) +### Get the branch information from git +ifneq ($(shell which git),) +GIT_DATE := $(shell git log -n 1 --format="%ai") +endif +DATE := $(shell date --date="$(GIT_DATE)" +%Y%m%d%H%M) + # RPM build parameters RPMSPECDIR= packaging/rpm RPMSPEC = $(RPMSPECDIR)/ansible.spec -RPMVERSION := $(shell awk '/Version/{print $$2; exit}' < $(RPMSPEC) | cut -d "%" -f1) -RPMRELEASE := $(shell awk '/Release/{print $$2; exit}' < $(RPMSPEC) | cut -d "%" -f1) RPMDIST = $(shell rpm --eval '%dist') -RPMNVR = "$(NAME)-$(RPMVERSION)-$(RPMRELEASE)$(RPMDIST)" +RPMRELEASE = 1 +ifeq ($(OFFICIAL),) + RPMRELEASE = 0.git$(DATE) +endif +RPMNVR = "$(NAME)-$(VERSION)-$(RPMRELEASE)$(RPMDIST)" ######################################################## @@ -102,6 +110,7 @@ sdist: clean rpmcommon: sdist @mkdir -p rpm-build @cp dist/*.gz rpm-build/ + @sed -e 's#^Version:.*#Version: $(VERSION)#' -e 's#^Release:.*#Release: $(RPMRELEASE)%{?dist}#' $(RPMSPEC) >rpm-build/$(NAME).spec srpm: rpmcommon @rpmbuild --define "_topdir %(pwd)/rpm-build" \ @@ -110,7 +119,8 @@ srpm: rpmcommon --define "_srcrpmdir %{_topdir}" \ --define "_specdir $(RPMSPECDIR)" \ --define "_sourcedir %{_topdir}" \ - -bs $(RPMSPEC) + -bs rpm-build/$(NAME).spec + @rm -f rpm-build/$(NAME).spec @echo "#############################################" @echo "Ansible SRPM is built:" @echo " rpm-build/$(RPMNVR).src.rpm" @@ -123,7 +133,8 @@ rpm: rpmcommon --define "_srcrpmdir %{_topdir}" \ --define "_specdir $(RPMSPECDIR)" \ --define "_sourcedir %{_topdir}" \ - -ba $(RPMSPEC) + -ba rpm-build/$(NAME).spec + @rm -f rpm-build/$(NAME).spec @echo "#############################################" @echo "Ansible RPM is built:" @echo " rpm-build/noarch/$(RPMNVR).noarch.rpm" |