Skip to content

Commit

Permalink
Implements git commit date into RPM release
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
dagwieers committed Aug 1, 2012
1 parent db9955d commit ec7c8eb
Showing 1 changed file with 16 additions and 5 deletions.
21 changes: 16 additions & 5 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -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)"

########################################################

Expand Down Expand Up @@ -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" \
Expand All @@ -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"
Expand All @@ -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"
Expand Down

0 comments on commit ec7c8eb

Please sign in to comment.