3 %bcond_without tests # don't perform make test
4 %bcond_without doc # skip building/packaging docs/manuals (takes some time)
6 %include /usr/lib/rpm/macros.perl
7 Summary: The stupid content tracker
8 Summary(pl.UTF-8): Prymitywne narzędzie do śledzenia treści
13 Group: Development/Tools
14 Source0: http://www.kernel.org/pub/software/scm/git/git-%{version}.tar.bz2
15 # Source0-md5: 4af70ff9b8f209704059f7ef96127236
16 Source1: %{name}-gitweb.conf
17 Source2: %{name}-gitweb-httpd.conf
18 Source3: %{name}.sysconfig
21 URL: http://git-scm.com/
22 BuildRequires: autoconf
23 BuildRequires: automake
24 BuildRequires: curl-devel
25 BuildRequires: docbook-dtd45-xml
26 BuildRequires: expat-devel
27 BuildRequires: gettext-devel
28 BuildRequires: openssl-devel
29 BuildRequires: perl-Error
30 BuildRequires: perl-base
32 BuildRequires: rpm-perlprov >= 4.1-13
33 BuildRequires: rpmbuild(macros) >= 1.264
34 BuildRequires: zlib-devel
36 BuildRequires: asciidoc >= 7.1.2-3
40 # tests failed sometimes when using nserver/cvsnt client so enforce pure cvs here
41 BuildRequires: cvs-gnu-client < 1.13
42 BuildRequires: cvs-gnu-client >= 1.12
43 BuildRequires: pdksh >= 5.2.14-46
49 Requires: openssh-clients
52 Suggests: git-core-cvs
53 Suggests: git-core-svn
54 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
56 # html docs have links to txt files
57 %define _noautocompressdoc *.txt
60 %define webappdir %{_sysconfdir}/webapps/%{webapp}
61 %define appdir %{_datadir}/%{webapp}
62 %define cgibindir %{_prefix}/lib/cgi-bin
65 "git" can mean anything, depending on your mood.
67 - random three-letter combination that is pronounceable, and not
68 actually used by any common UNIX command. The fact that it is a
69 mispronunciation of "get" may or may not be relevant.
70 - stupid. contemptible and despicable. simple. Take your pick from the
72 - "global information tracker": you're in a good mood, and it actually
73 works for you. Angels sing, and a light suddenly fills the room.
74 - "goddamn idiotic truckload of sh*t": when it breaks
76 This is a stupid (but extremely fast) directory content manager. It
77 doesn't do a whole lot, but what it 'does' do is track directory
80 %description -l pl.UTF-8
81 "git" może oznaczać cokolwiek, w zależności od nastroju.
83 - losową kombinację trzech liter, która jest wymawialna i właściwie
84 nie używana przez żadne popularne polecenie uniksowe. Fakt, że jest to
85 błędna pisownia słowa "get" może mieć lub nie mieć znaczenia.
86 - głupi, pogardliwy, prosty. Można wybrać ze słownika slangu.
87 - "global information tracker" (narzędzie do globalnego śledzenia
88 informacji) - jeśli jesteśmy w dobrym nastroju i git akurat działa.
89 Anioły śpiewają, a światło niespodziewanie wypełnia pokój.
90 - "goddamn idiotic truckload of sh*t" (przeklęty idiotyczny ładunek
91 g*) - kiedy się zepsuje.
93 Jest to prymitywny (ale bardzo szybki) zarządca treści słownikowej.
94 Nie robi wiele, ale to, co "robi", to wydajne śledzenie zawartości
98 Summary: Files necessary to run git-daemon as an inetd service
99 Summary(pl.UTF-8): Pliki niezbędne do uruchomienia git-daemona w trybie usługi inetd
100 Group: Networking/Daemons
101 Requires: %{name} = %{version}-%{release}
102 Requires: setup >= 2.4.11-1
103 Provides: git-core-daemon
104 Obsoletes: git-core-daemon
105 Obsoletes: git-core-daemon-standalone
107 %description daemon-inetd
108 Git-daemon is a really simple TCP git daemon that can serve git
109 repositories. This package provides all necessarry files to run
110 git-daemon as an inetd service.
112 %description daemon-inetd -l pl.UTF-8
113 Git-daemon to prosty demon git korzystający z protokołu TCP do
114 udostępniania repozytoriów git. Ten pakiet dostarcza pliki potrzebne
115 do uruchomienia git-demona w trybie usługi inetd.
117 %package daemon-standalone
118 Summary: Files necessary to run git-daemon as a standalone service
119 Summary(pl.UTF-8): Pliki niezbędne do uruchomienia git-daemona w trybie usługi samodzielnej
120 Group: Networking/Daemons
121 Requires: %{name} = %{version}-%{release}
122 Provides: git-core-daemon
123 Obsoletes: git-core-daemon
124 Obsoletes: git-core-daemon-inetd
126 %description daemon-standalone
127 Git-daemon is a really simple TCP git daemon that can serve git
128 repositories. This package provides all necessarry files to run
129 git-daemon as an standalone service.
131 %description daemon-standalone -l pl.UTF-8
132 Git-daemon to prosty demon git korzystający z protokołu TCP do
133 udostępniania repozytoriów git. Ten pakiet dostarcza pliki potrzebne
134 do uruchomienia git-daemona w trybie usługi samodzielnej.
137 Summary: Header files for git-core
138 Summary(pl.UTF-8): Pliki nagłówkowe dla git-core
139 Group: Development/Libraries
142 Header files for git-core.
144 %description devel -l pl.UTF-8
145 Pliki nagłówkowe dla git-core.
148 Summary: Tcl/Tk interface to the Git version control system
149 Summary(pl.UTF-8): Napisany w Tcl/Tk interfejs do systemu kontroli wersji Git
150 Group: Development/Tools
151 Requires: %{name} = %{version}-%{release}
155 gitk displays changes in a repository or a selected set of commits.
156 This includes visualizing the commit graph, showing information
157 related to each commit, and the files in the trees of each revision.
159 Historically, gitk was the first repository browser. It's written in
160 Tcl/Tk and started off in a separate repository but was later merged
161 into the main git repository.
163 %description gitk -l pl.UTF-8
164 gitk wyświetla zmiany w repozytorium lub wybranym zbiorze commitów.
165 Oznacza to wizualizację grafu commitów, wyświetlanie informacji
166 związanych z każdym z commitów oraz listę plików dla każdej rewizji.
168 Z historycznego punktu widzenia gitk był pierwszą przeglądarką
169 repozytorium git. Napisany jest w Tcl/Tk i początkowo był rozwijany w
170 osobnym repozytorium, ale z czasem został włączony do głównego
174 Summary: Web frontend to git
175 Summary(pl.UTF-8): Webowy frontend do git
176 Group: Development/Tools
177 Requires: %{name} = %{version}-%{release}
181 This package provides a web interface for browsing git repositories.
183 %description gitweb -l pl.UTF-8
184 Pakiet ten dostarcza interfejs WWW do przeglądania repozytoriów gita.
187 Summary: A GTK+ based repository browser for git
188 Summary(pl.UTF-8): Oparta na GTK+ przeglądarka repozytorium gita
189 Group: Development/Tools
190 Requires: %{name} = %{version}-%{release}
191 Requires: python >= 1:2.4
192 Requires: python-pycairo >= 1.0
193 Requires: python-pygobject
194 Requires: python-pygtk-gtk >= 2:2.8
195 Suggests: python-gnome-desktop-gtksourceview
198 A GTK+ based repository browser for git.
200 %description gitview -l pl.UTF-8
201 Oparta na GTK+ przeglądarka repozytorium gita.
204 Summary: Tcl/Tk interface to the Git version control system
205 Summary(pl.UTF-8): Napisany w Tcl/Tk interfejs do systemu kontroli wersji Git
206 Group: Development/Tools
207 Requires: %{name} = %{version}-%{release}
211 Displays changes in a repository or a selected set of commits. This
212 includes visualizing the commit graph, showing information related to
213 each commit, and the files in the trees of each revision.
215 Historically, gitk was the first repository browser. It's written in
216 Tcl/Tk and started off in a separate repository but was later merged
217 into the main git repository.
219 %description gui -l pl.UTF-8
220 Wyświetla zmiany w repozytorium lub wybranym zbiorze commitów. Oznacza
221 to wizualizację grafu commitów, wyświetlanie informacji związanych z
222 każdym z commitów oraz listę plików dla każdej rewizji.
224 Z punktu widzenia historii, gitk był pierwszą przeglądarką
225 repozytorium git. Napisany jest w Tcl/Tk i początkowo był rozwijany w
226 osobnym repozytorium, ale z czasem został włączony do głównego
230 Summary: Subversion support for Git
231 Summary(pl.UTF-8): Obsługa Subversion dla Git
232 Group: Development/Tools
233 Requires: %{name} = %{version}-%{release}
236 Subversion support for Git.
238 %description svn -l pl.UTF-8
239 Obsługa Subversion dla Git.
242 Summary: CVS support for Git
243 Summary(pl.UTF-8): Obsługa CVS dla Git
244 Group: Development/Tools
245 Requires: %{name} = %{version}-%{release}
246 Requires: cvsps >= 2.1-2
252 %description cvs -l pl.UTF-8
255 %package -n bash-completion-git
256 Summary: bash-completion for git
257 Summary(pl.UTF-8): bashowe uzupełnianie nazw dla gita
258 Group: Applications/Shells
259 Requires: bash-completion
261 %description -n bash-completion-git
262 This package provides bash-completion for git.
264 %description -n bash-completion-git -l pl.UTF-8
265 Pakiet ten dostarcza bashowe uzupełnianie nazw dla gita.
268 Summary: Perl interface to the Git version control system
269 Summary(pl.UTF-8): Perlowy interfejs do systemu kontroli wersji Git
270 Group: Development/Languages/Perl
271 Requires: %{name} = %{version}-%{release}
272 Obsoletes: perl-git-core
274 %description -n perl-Git
275 This module provides Perl scripts easy way to interface the Git
276 version control system. The modules have an easy and well-tested way
277 to call arbitrary Git commands; in the future, the interface will also
278 provide specialized methods for doing easily operations which are not
279 totally trivial to do over the generic command interface.
281 %description -n perl-Git -l pl.UTF-8
282 Ten moduł umożliwia skryptom Perla współpracę z systemem kontroli
283 wersji Git. W łatwy i dobrze przetestowany sposób pozwala wywoływać
284 dowolne polecenia Gita; w przyszłości interfejs udostępni także
285 specjalne metody do łatwego wykonywania operacji nietrywialnych do
286 wykonania przy użyciu ogólnego interfejsu poleceń.
288 %package -n vim-syntax-gitcommit
289 Summary: Vim syntax: gitcommit
290 Summary(pl.UTF-8): Składnia dla Vima: gitcommit
291 Group: Applications/Editors/Vim
292 # for _vimdatadir existence
293 Requires: vim-rt >= 4:6.3.058-3
295 %description -n vim-syntax-gitcommit
296 This plugin provides syntax highlighting for git's commit messages.
298 %description -n vim-syntax-gitcommit -l pl.UTF-8
299 Ta wtyczka dostarcza podświetlanie składni dla treści commitów gita.
302 %setup -q -n git-%{version}
312 GITWEB_CONFIG="%{webappdir}/gitweb.conf" \
313 GITWEB_PROJECTROOT="/var/lib/git" \
314 GITWEB_CSS="/gitweb/gitweb.css" \
315 GITWEB_LOGO="/gitweb/git-logo.png" \
316 GITWEB_FAVICON="/gitweb/git-favicon.png"
318 %{?with_doc:%{__make} -C Documentation}
320 %{?with_tests:%{__make} test}
323 rm -rf $RPM_BUILD_ROOT
324 install -d $RPM_BUILD_ROOT{%{_includedir}/%{name}/xdiff,%{_localstatedir}/lib/git}
325 install -d $RPM_BUILD_ROOT{%{appdir},%{cgibindir},%{webappdir}}
326 install -d $RPM_BUILD_ROOT%{_datadir}/vim/vimfiles/syntax
327 install -d $RPM_BUILD_ROOT%{_sysconfdir}/bash_completion.d
328 install -d $RPM_BUILD_ROOT/etc/{sysconfig/rc-inetd,rc.d/init.d}
332 DESTDIR=$RPM_BUILD_ROOT
335 %{__make} -C Documentation install \
336 DESTDIR=$RPM_BUILD_ROOT
339 # header files and lib
340 install *.h $RPM_BUILD_ROOT%{_includedir}/%{name}
341 install xdiff/*.h $RPM_BUILD_ROOT%{_includedir}/%{name}/xdiff
342 install libgit.a $RPM_BUILD_ROOT%{_libdir}
343 install xdiff/lib.a $RPM_BUILD_ROOT%{_libdir}/libgit_xdiff.a
346 install contrib/completion/git-completion.bash $RPM_BUILD_ROOT%{_sysconfdir}/bash_completion.d
349 cat > $RPM_BUILD_ROOT/%{_datadir}/vim/vimfiles/syntax/gitcommit.vim << 'EOF'
350 autocmd BufNewFile,BufRead *.git/COMMIT_EDITMSG setf gitcommit
351 autocmd BufNewFile,BufRead *.git/config,.gitconfig setf gitconfig
352 autocmd BufNewFile,BufRead git-rebase-todo setf gitrebase
353 autocmd BufNewFile,BufRead .msg.[0-9]*
354 \ if getline(1) =~ '^From.*# This line is ignored.$' |
355 \ setf gitsendemail |
357 autocmd BufNewFile,BufRead *.git/**
358 \ if getline(1) =~ '^\x\{40\}\>\|^ref: ' |
364 install gitweb/*.css gitweb/*.png $RPM_BUILD_ROOT%{appdir}
365 install gitweb/gitweb.cgi $RPM_BUILD_ROOT%{cgibindir}
366 install %{SOURCE1} $RPM_BUILD_ROOT%{webappdir}/gitweb.conf
367 install %{SOURCE2} $RPM_BUILD_ROOT%{webappdir}/apache.conf
368 install %{SOURCE2} $RPM_BUILD_ROOT%{webappdir}/httpd.conf
371 install contrib/gitview/gitview $RPM_BUILD_ROOT%{_bindir}
373 # git-daemon related files
374 install %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/git-daemon
375 install %{SOURCE4} $RPM_BUILD_ROOT/etc/sysconfig/rc-inetd/git-daemon
376 install %{SOURCE5} $RPM_BUILD_ROOT/etc/rc.d/init.d/git-daemon
379 sed -e 's,@libdir@,%{_libdir},g' -i $RPM_BUILD_ROOT/etc/rc.d/init.d/git-daemon
380 sed -e 's,@libdir@,%{_libdir},g' -i $RPM_BUILD_ROOT/etc/sysconfig/rc-inetd/git-daemon
382 # remove unneeded files
383 rm -f $RPM_BUILD_ROOT%{perl_archlib}/perllocal.pod
384 rm -f $RPM_BUILD_ROOT%{perl_vendorarch}/auto/Git/.packlist
385 rm -f $RPM_BUILD_ROOT%{perl_vendorlib}/Error.pm
386 rm -f $RPM_BUILD_ROOT%{_mandir}/man3/private-Error.3*
389 rm -rf $RPM_BUILD_ROOT
392 %service -q rc-inetd reload
395 if [ "$1" = "0" ]; then
396 %service -q rc-inetd reload
399 %post daemon-standalone
400 /sbin/chkconfig --add git-daemon
401 %service git-daemon restart "git-daemon"
403 %preun daemon-standalone
404 if [ "$1" = "0" ]; then
405 %service git-daemon stop
406 /sbin/chkconfig --del git-daemon
409 %triggerin gitweb -- apache1 < 1.3.37-3, apache1-base
410 %webapp_register apache %{webapp}
412 %triggerun gitweb -- apache1 < 1.3.37-3, apache1-base
413 %webapp_unregister apache %{webapp}
415 %triggerin gitweb -- apache < 2.2.0, apache-base
416 %webapp_register httpd %{webapp}
418 %triggerun gitweb -- apache < 2.2.0, apache-base
419 %webapp_unregister httpd %{webapp}
422 %defattr(644,root,root,755)
425 %doc Documentation/RelNotes*
426 %doc Documentation/*.html Documentation/howto Documentation/technical
427 %{_mandir}/man1/git-*.1*
428 %exclude %{_mandir}/man1/git-svn.1*
429 %exclude %{_mandir}/man1/git-cvs*.1*
430 %{_mandir}/man1/git.1*
431 %{_mandir}/man5/gitattributes.5*
432 %{_mandir}/man5/githooks.5*
433 %{_mandir}/man5/gitignore.5*
434 %{_mandir}/man5/gitmodules.5*
435 %{_mandir}/man5/gitrepository-layout.5*
436 %{_mandir}/man7/gitcli.7*
437 %{_mandir}/man7/gitcore-tutorial.7*
438 %{_mandir}/man7/gitdiffcore.7*
439 %{_mandir}/man7/gitglossary.7*
440 %{_mandir}/man7/gittutorial-2.7*
441 %{_mandir}/man7/gittutorial.7*
442 %{_mandir}/man7/gitworkflows.7*
444 %attr(755,root,root) %{_bindir}/git
445 %attr(755,root,root) %{_bindir}/git-*
446 %dir %{_libdir}/%{name}
447 %attr(755,root,root) %{_libdir}/%{name}/*-*
448 %attr(755,root,root) %{_libdir}/%{name}/git
449 %exclude %{_libdir}/%{name}/git-gui
450 %exclude %{_libdir}/%{name}/git-svn
451 %exclude %{_libdir}/%{name}/git-cvs*
453 %{_localstatedir}/lib/git
456 %defattr(644,root,root,755)
457 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/rc-inetd/git-daemon
459 %files daemon-standalone
460 %defattr(644,root,root,755)
461 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/git-daemon
462 %attr(754,root, root) /etc/rc.d/init.d/git-daemon
465 %defattr(644,root,root,755)
466 %{_includedir}/git-core
468 %{_libdir}/libgit_xdiff.a
471 %defattr(644,root,root,755)
473 %{_mandir}/man1/gitk.1*
475 %attr(755,root,root) %{_bindir}/gitk
476 %dir %{_datadir}/gitk
477 %dir %{_datadir}/gitk/lib
478 %dir %{_datadir}/gitk/lib/msgs
479 %lang(de) %{_datadir}/gitk/lib/msgs/de.msg
480 %lang(es) %{_datadir}/gitk/lib/msgs/es.msg
481 %lang(it) %{_datadir}/gitk/lib/msgs/it.msg
482 %lang(ru) %{_datadir}/gitk/lib/msgs/ru.msg
483 %lang(sv) %{_datadir}/gitk/lib/msgs/sv.msg
486 %defattr(644,root,root,755)
487 %doc gitweb/{README,INSTALL}
489 %config(noreplace) %verify(not md5 mtime size) %attr(640,root,http) %{webappdir}/gitweb.conf
490 %config(noreplace) %verify(not md5 mtime size) %attr(640,root,root) %{webappdir}/apache.conf
491 %config(noreplace) %verify(not md5 mtime size) %attr(640,root,root) %{webappdir}/httpd.conf
492 %attr(755,root,root) %{cgibindir}/gitweb.cgi
496 %defattr(644,root,root,755)
497 %doc contrib/gitview/gitview.txt
498 %attr(755,root,root) %{_bindir}/gitview
501 %defattr(644,root,root,755)
502 %attr(755,root,root) %{_libdir}/%{name}/git-gui
503 %dir %{_datadir}/git-gui
504 %dir %{_datadir}/git-gui/lib
505 %dir %{_datadir}/git-gui/lib/msgs
506 %{_datadir}/git-gui/lib/git-gui.ico
507 %{_datadir}/git-gui/lib/tclIndex
508 %{_datadir}/git-gui/lib/*.js
509 %{_datadir}/git-gui/lib/*.tcl
510 %lang(de) %{_datadir}/git-gui/lib/msgs/de.msg
511 %lang(fr) %{_datadir}/git-gui/lib/msgs/fr.msg
512 %lang(hu) %{_datadir}/git-gui/lib/msgs/hu.msg
513 %lang(it) %{_datadir}/git-gui/lib/msgs/it.msg
514 %lang(ja) %{_datadir}/git-gui/lib/msgs/ja.msg
515 %lang(nb) %{_datadir}/git-gui/lib/msgs/nb.msg
516 %lang(ru) %{_datadir}/git-gui/lib/msgs/ru.msg
517 %lang(sv) %{_datadir}/git-gui/lib/msgs/sv.msg
518 %lang(zh_cn) %{_datadir}/git-gui/lib/msgs/zh_cn.msg
521 %defattr(644,root,root,755)
522 %attr(755,root,root) %{_libdir}/%{name}/git-svn
524 %{_mandir}/man1/git-svn.1*
528 %defattr(644,root,root,755)
529 %attr(755,root,root) %{_libdir}/%{name}/git-cvs*
531 %{_mandir}/man1/git-cvs*.1*
532 %{_mandir}/man7/gitcvs-migration.7*
535 %files -n bash-completion-git
536 %defattr(644,root,root,755)
537 %{_sysconfdir}/bash_completion.d/*
540 %defattr(644,root,root,755)
541 %{perl_vendorlib}/Git.pm
542 %{_mandir}/man3/Git.3pm*
544 %files -n vim-syntax-gitcommit
545 %defattr(644,root,root,755)
546 %doc contrib/vim/README
547 %{_datadir}/vim/vimfiles/syntax/*