From 8cdf56913e7e486bb3f527c24ee4a4d19f2a4f61 Mon Sep 17 00:00:00 2001 From: Jakub Narebski Date: Thu, 31 May 2007 11:20:05 +0200 Subject: [PATCH] Infrastructure for tig rpm builds Adds RPM_VERSION to Makefile and new make targets: tig.spec, dist, and rpm. A simple 'make rpm' will build the rpm. Also adds tig.spec.in which is used to generate tig.spec. Accidentally VERSION (and adding -DVERSION=$(VERSION) to CFLAGS) is now defined always, even if we do not compile from the "live" tig repository. Minimally tested (meaning "make rpm" from tig repository works). Signed-off-by: Jakub Narebski Signed-off-by: Jonas Fonseca --- .gitignore | 2 ++ Makefile | 27 +++++++++++++++++++++++--- tig.spec.in | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 82 insertions(+), 3 deletions(-) create mode 100644 tig.spec.in diff --git a/.gitignore b/.gitignore index 8f6aa93..f7ab840 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,5 @@ manual.html-chunked manual.pdf manual.toc tig +tig.spec +tig-*.tar.gz diff --git a/Makefile b/Makefile index 9f2d086..ad01d12 100644 --- a/Makefile +++ b/Makefile @@ -12,6 +12,7 @@ VERSION = $(GITDESC)$(WTDIRTY) else VERSION = $(shell test -f VERSION && cat VERSION || echo "unknown-version") endif +RPM_VERSION = $(subst -,.,$(VERSION)) LDLIBS = -lcurses CFLAGS = -Wall -O2 '-DVERSION="$(VERSION)"' @@ -24,6 +25,8 @@ DOCS_HTML = tig.1.html tigrc.5.html \ DOCS = $(DOCS_MAN) $(DOCS_HTML) \ manual.toc manual.pdf +TARNAME = tig-$(RPM_VERSION) + all: $(PROGS) all-debug: $(PROGS) all-debug: CFLAGS += $(DFLAGS) @@ -60,6 +63,9 @@ install-doc: install-doc-man install-doc-html clean: rm -rf manual.html-chunked rm -f $(PROGS) $(DOCS) core *.xml + rm -f *.spec + rm -rf $(TARNAME) + rm -f $(TARNAME).tar.gz spell-check: aspell --lang=en --check tig.1.txt tigrc.5.txt manual.txt @@ -67,7 +73,24 @@ spell-check: strip: all strip $(PROGS) -.PHONY: all all-debug doc doc-man doc-html install install-doc install-doc-man install-doc-html clean spell-check +dist: tig.spec + git-archive --format=tar --prefix=$(TARNAME)/ HEAD > $(TARNAME).tar + @mkdir -p $(TARNAME) + @cp tig.spec $(TARNAME) + tar rf $(TARNAME).tar $(TARNAME)/tig.spec + @rm -rf $(TARNAME) + gzip -f -9 $(TARNAME).tar + +rpm: dist + rpmbuild -ta $(TARNAME).tar.gz + +.PHONY: all all-debug doc doc-man doc-html install install-doc install-doc-man install-doc-html clean spell-check dist rpm + +tig.spec: tig.spec.in + sed -e 's/@@VERSION@@/$(RPM_VERSION)/g' < $< > $@+ + mv $@+ $@ + +tig: tig.c manual.html: manual.toc manual.toc: manual.txt @@ -79,8 +102,6 @@ manual.toc: manual.txt *) ref="$$ref, $$line" ;; \ esac; done | sed 's/\[\[\(.*\)\]\]/\1/' > $@ -tig: tig.c - README.html: README asciidoc -b xhtml11 -d article -a readme $< diff --git a/tig.spec.in b/tig.spec.in new file mode 100644 index 0000000..2ce6cdb --- /dev/null +++ b/tig.spec.in @@ -0,0 +1,56 @@ +# -*- mode: rpm-spec-mode; encoding: utf-8; -*- +# Pass '--without docs' to rpmbuild if you don't want the documentation + +Summary: Tig: text-mode interface for git +Name: tig +Version: @@VERSION@@ +Release: 1%{?dist} +License: GPL +Group: Development/Tools +Vendor: Jonas Fonseca +URL: http://jonas.nitro.dk/tig/ +Source: http://jonas.nitro.dk/tig/releases/%{name}-%{version}.tar.gz +BuildRequires: ncurses-devel%{!?_without_docs:, xmlto, asciidoc > 6.0.3, /usr/bin/docbook2pdf} +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) +Requires: git-core, ncurses + +%description +Tig is a git repository browser that additionally can act as a pager +for output from various git commands. + +When browsing repositories, it uses the underlying git commands to +present the user with various views, such as summarized revision log +and showing the commit with the log message, diffstat, and the diff. + +Using it as a pager, it will display input from stdin and colorize it. + +%prep +%setup -q + +%build +CFLAGS="$RPM_OPT_FLAGS -DVERSION=tig-%{version}-%{release}" +%{__make} %{_smp_mflags} \ + prefix=%{_prefix} \ + all %{!?_without_docs: doc} + +%install +[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT +CFLAGS="$RPM_OPT_FLAGS -DVERSION=tig-%{version}-%{release}" +%{__make} %{_smp_mflags} DESTDIR=$RPM_BUILD_ROOT \ + prefix=%{_prefix} bindir=%{_bindir} mandir=%{_mandir} \ + install %{!?_without_docs: install-doc-man} + +%clean +[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT + +%files +%defattr(-,root,root) +%{_bindir}/* +%doc README COPYING INSTALL SITES BUGS TODO tigrc +%{!?_without_docs: %{_mandir}/man1/*.1*} +%{!?_without_docs: %{_mandir}/man5/*.5*} +%{!?_without_docs: %doc *.html *.pdf} + +%changelog +* Mon May 28 2007 Jakub Narebski +- Initial tig spec file -- 2.32.0.93.g670b81a890