diff options
authorChris Wright <>2005-07-07 20:09:50 (GMT)
committerChris Wright <>2005-07-07 20:09:50 (GMT)
commita9db297485a7b8c641d3cf686d03cb63b774e530 (patch)
parentdd7ba8b4949535c24e604a37709db0e3be9ccbbc (diff)
Infrastructure for git rpm builds. Adds GIT_VERSION to Makefile and new make
targets: git.spec, dist, and rpm. A simple 'make rpm' will build the rpm. Also adds which is used to generate git.spec. Signed-off-by: Chris Wright <>
2 files changed, 60 insertions, 0 deletions
diff --git a/Makefile b/Makefile
index 5dcfc24..6bae634 100644
--- a/Makefile
+++ b/Makefile
@@ -9,6 +9,8 @@
# BREAK YOUR LOCAL DIFFS! show-diff and anything using it will likely randomly
# break unless your underlying filesystem supports those sub-second times
# (my ext3 doesn't).
CFLAGS=-g $(COPTS) -Wall
@@ -49,6 +51,7 @@ PROG= git-update-cache git-diff-files git-init-db git-write-tree \
all: $(PROG)
install: $(PROG) $(SCRIPTS)
+ $(INSTALL) -m755 -d $(dest)$(bin)
$(INSTALL) $(PROG) $(SCRIPTS) $(dest)$(bin)
LIB_OBJS=read-cache.o sha1_file.o usage.o object.o commit.o tree.o blob.o \
@@ -164,6 +167,21 @@ diffcore-break.o : $(LIB_H) diffcore.h
diffcore-order.o : $(LIB_H) diffcore.h
epoch.o: $(LIB_H)
+ sed -e 's/@@VERSION@@/$(GIT_VERSION)/g' < $< > $@
+dist: git.spec
+ git-tar-tree HEAD $(GIT_TARNAME) > $(GIT_TARNAME).tar
+ @mkdir -p $(GIT_TARNAME)
+ @cp git.spec $(GIT_TARNAME)
+ tar rf $(GIT_TARNAME).tar $(GIT_TARNAME)/git.spec
+ @rm -rf $(GIT_TARNAME)
+ gzip -9 $(GIT_TARNAME).tar
+rpm: dist
+ rpmbuild -ta git-$(GIT_VERSION).tar.gz
test: all
$(MAKE) -C t/ all
diff --git a/ b/
new file mode 100644
index 0000000..f019b53
--- /dev/null
+++ b/
@@ -0,0 +1,42 @@
+Name: git
+Version: @@VERSION@@
+Release: 1
+Vendor: Linus Torvalds <>
+Summary: Git core and tools
+License: GPL
+Group: Development/Tools
+BuildRequires: zlib-devel, openssl-devel, curl-devel
+BuildRoot: %{_tmppath}/%{name}-%{version}-root
+Prereq: sh-utils, diffutils, rsync, rcs, mktemp >= 1.5
+GIT comes in two layers. The bottom layer is merely an extremely fast
+and flexible filesystem-based database designed to store directory trees
+with regard to their history. The top layer is a SCM-like tool which
+enables human beings to work with the database in a manner to a degree
+similar to other SCM tools (like CVS, BitKeeper or Monotone).
+%setup -q
+make dest=$RPM_BUILD_ROOT prefix=%{_prefix} install
+%doc README COPYING Documentation/*
+* Wed Jul 7 2005 Chris Wright <>
+- initial git spec file