resetting manifest requested domain to floor
[platform/upstream/git.git] / packaging / git.spec
1 %define gitexecdir %{_libexecdir}/git
2
3 Name:           git
4 Version:        1.8.1.3
5 Release:        0
6 License:        GPL-2.0
7 Summary:        Fast, scalable, distributed revision control system
8 Url:            http://git-scm.com
9 Group:          Development/Tools
10 Source:         %{name}-%{version}.tar.gz
11 Source1001:     git.manifest
12 BuildRequires:  asciidoc
13 BuildRequires:  curl
14 BuildRequires:  expat-devel
15 BuildRequires:  fdupes
16 BuildRequires:  gettext-tools
17 BuildRequires:  libcurl-devel
18 BuildRequires:  libopenssl-devel
19 BuildRequires:  perl-Error
20 BuildRequires:  python
21 BuildRequires:  xmlto
22 Requires:       git-core = %{version}
23
24 %description
25 Git is a fast, scalable, distributed revision control system with an
26 unusually rich command set that provides both high-level operations and
27 full access to internals.
28
29 This package itself only provides the README of git but with the
30 packages it requires, it brings you a complete Git environment
31 including GTK and email interfaces and tools for importing source code
32 repositories from other revision control systems such as subversion,
33 CVS, and GNU arch.
34
35 %package core
36 Summary:        Core git tools
37 Group:          Development/Tools
38 Requires:       less
39 Requires:       openssh
40 Requires:       perl-Error
41 Requires:       perl = %{perl_version}
42 Requires:       rsync
43
44 %description core
45 Git is a fast, scalable, distributed revision control system with an
46 unusually rich command set that provides both high-level operations and
47 full access to internals.
48
49 These are the core tools with minimal dependencies.
50
51 %package svn
52 Summary:        Git tools for importing Subversion repositories
53 Group:          Development/Tools
54 Requires:       git-core = %{version}
55 Requires:       subversion
56 Requires:       subversion-perl
57
58 %description svn
59 Tools for importing Subversion repositories to the Git version control
60 system.
61
62 %package cvs
63 Summary:        Git tools for importing CVS repositories
64 Group:          Development/Tools
65 Requires:       cvs
66 Requires:       cvsps
67 Requires:       git-core = %{version}
68 Requires:       perl-DBD-SQLite
69
70 %description cvs
71 Tools for importing CVS repositories to the Git version control system.
72
73 %package arch
74 Summary:        Git tools for importing Arch repositories
75 Group:          Development/Tools
76 Requires:       git-core = %{version}
77 # Requires:       tla
78
79 %description arch
80 Tools for importing GNU Arch repositories to the GIT version control
81 system.
82
83 %package email
84 Summary:        Git tools for sending email
85 Group:          Development/Tools
86 Requires:       git-core = %{version}
87 # For sending mails over secure SMTP:
88 Recommends:     perl-Authen-SASL
89 Recommends:     perl-Net-SMTP-SSL
90
91 %description email
92 Email interface for the GIT version control system.
93
94 %package daemon
95 Summary:        Simple Server for Git Repositories
96 Group:          Development/Tools
97 Requires(pre):  /usr/sbin/useradd
98 Requires:       git-core = %{version}
99
100 %description daemon
101 A really simple TCP git daemon. In the default configuration it allows
102 read only access to repositories in /srv/git/ that contain the
103 'git-daemon-export-ok' file.
104 %package -n gitk
105 Summary:        Git revision tree visualiser
106 Group:          Development/Tools
107 Requires:       git-core = %{version}
108 Requires:       tk >= 8.4
109 Supplements:    packageand(git-core:tk)
110
111 %description -n gitk
112 Grapical tool for visualization of revision trees of projects
113 maintained in the Git version control system. It name gitk indicates
114 that it's written using the Tk Widget set.
115
116 A simple Tk based graphical interface for common Git operations is
117 found in the package git-gui.
118
119 %package gui
120 Summary:        Grapical tool for common git operations
121 Group:          Development/Tools
122 Requires:       git-core = %{version}
123 Requires:       tk >= 8.4
124 Supplements:    packageand(git-core:tk)
125
126 %description gui
127 A Tcl/Tk based graphical user interface to Git. git-gui focuses on
128 allowing users to make changes to their repository by making new
129 commits, amending existing ones, creating branches, performing local
130 merges, and fetching/pushing to remote repositories.
131
132 Unlike gitk, git-gui focuses on commit generation and single file
133 annotation, and does not show project history. It does however supply
134 menu actions to start a gitk session from within git-gui.
135
136 %package web
137 Summary:        Git Web Interface
138 Group:          Development/Tools
139 Requires:       git-core = %{version}
140 Supplements:    packageand(git-core:apache2)
141
142 %description web
143 CGI script that allows browsing git repositories via web interface.
144
145 The apache2 configuration contained in this package installs a virtual
146 directory /git/ that calls the cgi script.
147
148 %package remote-helpers
149 Summary:        Python package for remote helper scripts
150 Group:          Development/Tools
151 Requires:       git-core = %{version}
152 Requires:       python
153
154 %description remote-helpers
155 This package contains the building blocks for remote helpers written in Python.
156
157 %prep
158 %setup -q
159 cp %{SOURCE1001} .
160
161 %build
162 cat > .make <<'EOF'
163 #!/bin/bash
164 make %{?_smp_mflags} CFLAGS="%{optflags}" \
165        GITWEB_CONFIG="/etc/gitweb.conf" \
166        GITWEB_PROJECTROOT="/srv/git" \
167        WITH_OWN_SUBPROCESS_PY=YesPlease \
168        DESTDIR=%{buildroot} \
169        NO_CROSS_DIRECTORY_HARDLINKS=1 \
170        V=1 \
171        prefix=%{_prefix} mandir=%{_mandir} \
172        gitexecdir=%{gitexecdir} \
173        htmldir=%{_docdir}/git-core \
174        "$@"
175 EOF
176 #
177 chmod 755 .make
178 ./.make all %{?_smp_mflags}
179 ./.make doc
180
181 %check
182 make %{?_smp_mflags} test
183
184 %install
185 ./.make install install-doc
186 ###
187 (find %{buildroot}%{_bindir} -type f | grep -vE "archimport|svn|cvs|email|gitk|daemon|gui" | sed -e s@^%{buildroot}@@)                   > bin-man-doc-files
188 (find %{buildroot}%{gitexecdir} -mindepth 1 | grep -vE "archimport|svn|cvs|email|gitk|daemon|gui" | sed -e s@^%{buildroot}@@)               >> bin-man-doc-files
189 (find %{buildroot}%{_mandir} %{buildroot}/Documentation -type f | grep -vE "archimport|svn|git-cvs|email|gitk|daemon|gui" | sed -e s@^%{buildroot}@@ -e 's/$/*/' ) >> bin-man-doc-files
190 ( pushd perl
191   perl Makefile.PL
192   make -f perl.mak DESTDIR=%{buildroot}  install_vendor
193 )
194 rm -rf %{buildroot}/usr/lib/perl5/site_perl
195 %perl_process_packlist
196 find %{buildroot}/%{_mandir} -type f -print0 | xargs -0 chmod 644
197 find %{buildroot}/%python_sitelib/ -type f -name *.pyc -print0 | xargs -0 rm
198 install -m 644 -D contrib/completion/git-completion.bash %{buildroot}%{_sysconfdir}/bash_completion.d/git.sh
199 sed -i  "s#$RPM_BUILD_ROOT##g" %{buildroot}/%{gitexecdir}/git-remote-testgit
200 %find_lang %{name}
201 cat %{name}.lang >>bin-man-doc-files
202 # use symlinks instead of hardlinks in sub-commands
203
204
205 rm -rf %{buildroot}/%{_datadir}/gitweb
206 rm -rf %{buildroot}/Documentation/*.html
207 rm -rf %{buildroot}/Documentation/*.txt
208
209 %fdupes -s %{buildroot}
210
211
212 %files
213 %manifest %{name}.manifest
214 %doc README
215
216 %files svn
217 %manifest %{name}.manifest
218 %{gitexecdir}/*svn*
219 %{_mandir}/man1/*svn*.1*
220
221 %files cvs
222 %manifest %{name}.manifest
223 %{_bindir}/git-cvs*
224 %{gitexecdir}/*cvs*
225 %{_mandir}/man1/*cvs*.1*
226
227 %files arch
228 %manifest %{name}.manifest
229 %{gitexecdir}/git-archimport
230 %{_mandir}/man1/git-archimport.1*
231
232 %files email
233 %manifest %{name}.manifest
234 %{gitexecdir}/*email*
235 %{_mandir}/man1/*email*.1*
236
237 %files daemon
238 %manifest %{name}.manifest
239 %{gitexecdir}/*daemon*
240 %{_mandir}/man1/*daemon*.1*
241
242 %files -n gitk
243 %manifest %{name}.manifest
244 %{_bindir}/gitk
245 %{_datadir}/gitk
246 %{_mandir}/man1/*gitk*.1*
247
248 %files gui
249 %manifest %{name}.manifest
250 %{gitexecdir}/git-gui*
251 %{_datadir}/git-gui
252 %{_mandir}/man1/*gui*.1*
253
254 %files remote-helpers
255 %manifest %{name}.manifest
256 %python_sitelib/*
257
258 %files core -f bin-man-doc-files
259 %manifest %{name}.manifest
260 %license COPYING
261 %{_bindir}/git
262 %{_datadir}/git-core/
263 %dir %{gitexecdir}
264 %{perl_vendorlib}/Git.pm
265 %{perl_vendorlib}/Git/
266 %{perl_vendorlib}/Git/*.pm
267 %{perl_vendorarch}/auto/Git/
268 %attr(0644, root, root) %{_sysconfdir}/bash_completion.d/git.sh
269
270 %changelog