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