1# Pass --without docs to rpmbuild if you don't want the documentation
2
3%define python_path /usr/bin/python
4
5Name: git
6Version: @@VERSION@@
7Release: 1%{?dist}
8Summary: Git core and tools
9License: GPL
10Group: Development/Tools
11URL: http://kernel.org/pub/software/scm/git/
12Source: http://kernel.org/pub/software/scm/git/%{name}-%{version}.tar.gz
13BuildRequires: zlib-devel >= 1.2, openssl-devel, curl-devel, expat-devel %{!?_without_docs:, xmlto, asciidoc > 6.0.3}
14BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
15Requires: git-core, git-svn, git-cvs, git-arch, git-email, gitk, git-gui, perl-Git
16
17%description
18Git is a fast, scalable, distributed revision control system with an
19unusually rich command set that provides both high-level operations
20and full access to internals.
21
22This is a dummy package which brings in all subpackages.
23
24%package core
25Summary: Core git tools
26Group: Development/Tools
27Requires: zlib >= 1.2, rsync, curl, less, openssh-clients, expat
28Obsoletes: git-p4
29%description core
30Git is a fast, scalable, distributed revision control system with an
31unusually rich command set that provides both high-level operations
32and full access to internals.
33
34These are the core tools with minimal dependencies.
35
36%package svn
37Summary: Git tools for importing Subversion repositories
38Group: Development/Tools
39Requires: git-core = %{version}-%{release}, subversion
40%description svn
41Git tools for importing Subversion repositories.
42
43%package cvs
44Summary: Git tools for importing CVS repositories
45Group: Development/Tools
46Requires: git-core = %{version}-%{release}, cvs, cvsps
47%description cvs
48Git tools for importing CVS repositories.
49
50%package arch
51Summary: Git tools for importing Arch repositories
52Group: Development/Tools
53Requires: git-core = %{version}-%{release}, tla
54%description arch
55Git tools for importing Arch repositories.
56
57%package email
58Summary: Git tools for sending email
59Group: Development/Tools
60Requires: git-core = %{version}-%{release}
61%description email
62Git tools for sending email.
63
64%package gui
65Summary: Git GUI tool
66Group: Development/Tools
67Requires: git-core = %{version}-%{release}, tk >= 8.4
68%description gui
69Git GUI tool
70
71%package -n gitk
72Summary: Git revision tree visualiser ('gitk')
73Group: Development/Tools
74Requires: git-core = %{version}-%{release}, tk >= 8.4
75%description -n gitk
76Git revision tree visualiser ('gitk')
77
78%package -n perl-Git
79Summary: Perl interface to Git
80Group: Development/Libraries
81Requires: git-core = %{version}-%{release}
82Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))
83BuildRequires: perl(Error)
84
85%description -n perl-Git
86Perl interface to Git
87
88%prep
89%setup -q
90
91%build
92make %{_smp_mflags} CFLAGS="$RPM_OPT_FLAGS" \
93 ETC_GITCONFIG=/etc/gitconfig \
94 prefix=%{_prefix} all %{!?_without_docs: doc}
95
96%install
97rm -rf $RPM_BUILD_ROOT
98make %{_smp_mflags} CFLAGS="$RPM_OPT_FLAGS" DESTDIR=$RPM_BUILD_ROOT \
99 prefix=%{_prefix} mandir=%{_mandir} \
100 ETC_GITCONFIG=/etc/gitconfig \
101 PYTHON_PATH=%{python_path} \
102 INSTALLDIRS=vendor install %{!?_without_docs: install-doc}
103find $RPM_BUILD_ROOT -type f -name .packlist -exec rm -f {} ';'
104find $RPM_BUILD_ROOT -type f -name '*.bs' -empty -exec rm -f {} ';'
105find $RPM_BUILD_ROOT -type f -name perllocal.pod -exec rm -f {} ';'
106
107(find $RPM_BUILD_ROOT%{_bindir} -type f | grep -vE "archimport|svn|cvs|email|gitk|git-gui|git-citool" | sed -e s@^$RPM_BUILD_ROOT@@) > bin-man-doc-files
108(find $RPM_BUILD_ROOT%{perl_vendorlib} -type f | sed -e s@^$RPM_BUILD_ROOT@@) >> perl-files
109%if %{!?_without_docs:1}0
110(find $RPM_BUILD_ROOT%{_mandir} $RPM_BUILD_ROOT/Documentation -type f | grep -vE "archimport|svn|git-cvs|email|gitk|git-gui|git-citool" | sed -e s@^$RPM_BUILD_ROOT@@ -e 's/$/*/' ) >> bin-man-doc-files
111%else
112rm -rf $RPM_BUILD_ROOT%{_mandir}
113%endif
114
115%clean
116rm -rf $RPM_BUILD_ROOT
117
118%files
119# These are no files in the root package
120
121%files svn
122%defattr(-,root,root)
123%{_bindir}/*svn*
124%doc Documentation/*svn*.txt
125%{!?_without_docs: %{_mandir}/man1/*svn*.1*}
126%{!?_without_docs: %doc Documentation/*svn*.html }
127
128%files cvs
129%defattr(-,root,root)
130%doc Documentation/*git-cvs*.txt
131%{_bindir}/*cvs*
132%{!?_without_docs: %{_mandir}/man1/*cvs*.1*}
133%{!?_without_docs: %doc Documentation/*git-cvs*.html }
134
135%files arch
136%defattr(-,root,root)
137%doc Documentation/git-archimport.txt
138%{_bindir}/git-archimport
139%{!?_without_docs: %{_mandir}/man1/git-archimport.1*}
140%{!?_without_docs: %doc Documentation/git-archimport.html }
141
142%files email
143%defattr(-,root,root)
144%doc Documentation/*email*.txt
145%{_bindir}/*email*
146%{!?_without_docs: %{_mandir}/man1/*email*.1*}
147%{!?_without_docs: %doc Documentation/*email*.html }
148
149%files gui
150%defattr(-,root,root)
151%{_bindir}/git-gui
152%{_bindir}/git-citool
153%{_datadir}/git-gui/
154%{!?_without_docs: %{_mandir}/man1/git-gui.1*}
155%{!?_without_docs: %doc Documentation/git-gui.html}
156%{!?_without_docs: %{_mandir}/man1/git-citool.1*}
157%{!?_without_docs: %doc Documentation/git-citool.html}
158
159%files -n gitk
160%defattr(-,root,root)
161%doc Documentation/*gitk*.txt
162%{_bindir}/*gitk*
163%{!?_without_docs: %{_mandir}/man1/*gitk*.1*}
164%{!?_without_docs: %doc Documentation/*gitk*.html }
165
166%files -n perl-Git -f perl-files
167%defattr(-,root,root)
168
169%files core -f bin-man-doc-files
170%defattr(-,root,root)
171%{_datadir}/git-core/
172%doc README COPYING Documentation/*.txt
173%{!?_without_docs: %doc Documentation/*.html Documentation/howto}
174%{!?_without_docs: %doc Documentation/technical}
175
176%changelog
177* Sun Jul 15 2007 Sean Estabrooks <seanlkml@sympatico.ca>
178- Removed p4import.
179
180* Tue Jun 26 2007 Quy Tonthat <qtonthat@gmail.com>
181- Fixed problems looking for wrong manpages.
182
183* Thu Jun 21 2007 Shawn O. Pearce <spearce@spearce.org>
184- Added documentation files for git-gui
185
186* Tue May 13 2007 Quy Tonthat <qtonthat@gmail.com>
187- Added lib files for git-gui
188- Added Documentation/technical (As needed by Git Users Manual)
189
190* Tue May 8 2007 Quy Tonthat <qtonthat@gmail.com>
191- Added howto files
192
193* Tue Mar 27 2007 Eygene Ryabinkin <rea-git@codelabs.ru>
194- Added the git-p4 package: Perforce import stuff.
195
196* Mon Feb 13 2007 Nicolas Pitre <nico@cam.org>
197- Update core package description (Git isn't as stupid as it used to be)
198
199* Mon Feb 12 2007 Junio C Hamano <junkio@cox.net>
200- Add git-gui and git-citool.
201
202* Mon Nov 14 2005 H. Peter Anvin <hpa@zytor.com> 0.99.9j-1
203- Change subpackage names to git-<name> instead of git-core-<name>
204- Create empty root package which brings in all subpackages
205- Rename git-tk -> gitk
206
207* Thu Nov 10 2005 Chris Wright <chrisw@osdl.org> 0.99.9g-1
208- zlib dependency fix
209- Minor cleanups from split
210- Move arch import to separate package as well
211
212* Tue Sep 27 2005 Jim Radford <radford@blackbean.org>
213- Move programs with non-standard dependencies (svn, cvs, email)
214 into separate packages
215
216* Tue Sep 27 2005 H. Peter Anvin <hpa@zytor.com>
217- parallelize build
218- COPTS -> CFLAGS
219
220* Fri Sep 16 2005 Chris Wright <chrisw@osdl.org> 0.99.6-1
221- update to 0.99.6
222
223* Fri Sep 16 2005 Horst H. von Brand <vonbrand@inf.utfsm.cl>
224- Linus noticed that less is required, added to the dependencies
225
226* Sun Sep 11 2005 Horst H. von Brand <vonbrand@inf.utfsm.cl>
227- Updated dependencies
228- Don't assume manpages are gzipped
229
230* Thu Aug 18 2005 Chris Wright <chrisw@osdl.org> 0.99.4-4
231- drop sh_utils, sh-utils, diffutils, mktemp, and openssl Requires
232- use RPM_OPT_FLAGS in spec file, drop patch0
233
234* Wed Aug 17 2005 Tom "spot" Callaway <tcallawa@redhat.com> 0.99.4-3
235- use dist tag to differentiate between branches
236- use rpm optflags by default (patch0)
237- own %{_datadir}/git-core/
238
239* Mon Aug 15 2005 Chris Wright <chrisw@osdl.org>
240- update spec file to fix Buildroot, Requires, and drop Vendor
241
242* Sun Aug 07 2005 Horst H. von Brand <vonbrand@inf.utfsm.cl>
243- Redid the description
244- Cut overlong make line, loosened changelog a bit
245- I think Junio (or perhaps OSDL?) should be vendor...
246
247* Thu Jul 14 2005 Eric Biederman <ebiederm@xmission.com>
248- Add the man pages, and the --without docs build option
249
250* Wed Jul 7 2005 Chris Wright <chris@osdl.org>
251- initial git spec file