3 %bcond_without tests # don't perform make test
5 %bcond_without doc # skip building/packaging docs/manuals (takes some time)
7 %include /usr/lib/rpm/macros.perl
8 Summary: The stupid content tracker
9 Summary(pl.UTF-8): Prymitywne narzędzie do śledzenia treści
14 Group: Development/Tools
15 Source0: http://www.kernel.org/pub/software/scm/git/git-%{version}.tar.bz2
16 # Source0-md5: c7553b73e2156d187ece6ba936ae30ab
17 Source1: %{name}-gitweb.conf
18 Source2: %{name}-gitweb-httpd.conf
19 Source3: %{name}.sysconfig
22 URL: http://git-scm.com/
23 BuildRequires: autoconf
24 BuildRequires: automake
25 BuildRequires: curl-devel
26 BuildRequires: expat-devel
27 BuildRequires: gettext-devel
28 BuildRequires: openssl-devel
29 BuildRequires: perl-Error > 0.15
30 BuildRequires: perl-base
31 BuildRequires: rpm-perlprov >= 4.1-13
32 BuildRequires: rpm-pythonprov
33 BuildRequires: rpmbuild(macros) >= 1.264
34 BuildRequires: zlib-devel
36 BuildRequires: asciidoc >= 7.1.2-3
37 BuildRequires: docbook-dtd45-xml
42 # tests failed sometimes when using nserver/cvsnt client so enforce pure cvs here
43 BuildRequires: cvs-gnu-client < 1.13
44 BuildRequires: cvs-gnu-client >= 1.12
46 BuildRequires: pdksh >= 5.2.14-46
52 Requires: openssh-clients
55 Suggests: git-core-cvs
56 Suggests: git-core-svn
59 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
61 # html docs have links to txt files
62 %define _noautocompressdoc *.txt
65 %define webappdir %{_sysconfdir}/webapps/%{webapp}
66 %define appdir %{_datadir}/%{webapp}
67 %define cgibindir %{_prefix}/lib/cgi-bin
70 "git" can mean anything, depending on your mood.
72 - random three-letter combination that is pronounceable, and not
73 actually used by any common UNIX command. The fact that it is a
74 mispronunciation of "get" may or may not be relevant.
75 - stupid. contemptible and despicable. simple. Take your pick from the
77 - "global information tracker": you're in a good mood, and it actually
78 works for you. Angels sing, and a light suddenly fills the room.
79 - "goddamn idiotic truckload of sh*t": when it breaks
81 This is a stupid (but extremely fast) directory content manager. It
82 doesn't do a whole lot, but what it 'does' do is track directory
85 %description -l pl.UTF-8
86 "git" może oznaczać cokolwiek, w zależności od nastroju.
88 - losową kombinację trzech liter, która jest wymawialna i właściwie
89 nie używana przez żadne popularne polecenie uniksowe. Fakt, że jest to
90 błędna pisownia słowa "get" może mieć lub nie mieć znaczenia.
91 - głupi, pogardliwy, prosty. Można wybrać ze słownika slangu.
92 - "global information tracker" (narzędzie do globalnego śledzenia
93 informacji) - jeśli jesteśmy w dobrym nastroju i git akurat działa.
94 Anioły śpiewają, a światło niespodziewanie wypełnia pokój.
95 - "goddamn idiotic truckload of sh*t" (przeklęty idiotyczny ładunek
96 g*) - kiedy się zepsuje.
98 Jest to prymitywny (ale bardzo szybki) zarządca treści słownikowej.
99 Nie robi wiele, ale to, co "robi", to wydajne śledzenie zawartości
103 Summary: Documentation for git-core
104 Summary(pl.UTF-8): Dokumentacja do git-core
108 Documentation for git-core.
110 %description doc -l pl.UTF-8
111 Dokumentacja do git-core.
113 %description doc -l fr.UTF-8
114 Javadoc pour git-core.
116 %package daemon-inetd
117 Summary: Files necessary to run git-daemon as an inetd service
118 Summary(pl.UTF-8): Pliki niezbędne do uruchomienia git-daemona w trybie usługi inetd
119 Group: Networking/Daemons
120 Requires: %{name} = %{version}-%{release}
121 Requires: setup >= 2.4.11-1
122 Provides: git-core-daemon
123 Obsoletes: git-core-daemon
124 Obsoletes: git-core-daemon-standalone
126 %description daemon-inetd
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 inetd service.
131 %description daemon-inetd -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-demona w trybie usługi inetd.
136 %package daemon-standalone
137 Summary: Files necessary to run git-daemon as a standalone service
138 Summary(pl.UTF-8): Pliki niezbędne do uruchomienia git-daemona w trybie usługi samodzielnej
139 Group: Networking/Daemons
140 Requires: %{name} = %{version}-%{release}
141 Provides: git-core-daemon
142 Obsoletes: git-core-daemon
143 Obsoletes: git-core-daemon-inetd
145 %description daemon-standalone
146 Git-daemon is a really simple TCP git daemon that can serve git
147 repositories. This package provides all necessarry files to run
148 git-daemon as an standalone service.
150 %description daemon-standalone -l pl.UTF-8
151 Git-daemon to prosty demon git korzystający z protokołu TCP do
152 udostępniania repozytoriów git. Ten pakiet dostarcza pliki potrzebne
153 do uruchomienia git-daemona w trybie usługi samodzielnej.
156 Summary: Header files for git-core
157 Summary(pl.UTF-8): Pliki nagłówkowe dla git-core
158 Group: Development/Libraries
161 Header files for git-core.
163 %description devel -l pl.UTF-8
164 Pliki nagłówkowe dla git-core.
167 Summary: Tcl/Tk interface to the Git version control system
168 Summary(pl.UTF-8): Napisany w Tcl/Tk interfejs do systemu kontroli wersji Git
169 Group: Development/Tools
170 Requires: %{name} = %{version}-%{release}
174 gitk displays changes in a repository or a selected set of commits.
175 This includes visualizing the commit graph, showing information
176 related to each commit, and the files in the trees of each revision.
178 Historically, gitk was the first repository browser. It's written in
179 Tcl/Tk and started off in a separate repository but was later merged
180 into the main git repository.
182 %description gitk -l pl.UTF-8
183 gitk wyświetla zmiany w repozytorium lub wybranym zbiorze commitów.
184 Oznacza to wizualizację grafu commitów, wyświetlanie informacji
185 związanych z każdym z commitów oraz listę plików dla każdej rewizji.
187 Z historycznego punktu widzenia gitk był pierwszą przeglądarką
188 repozytorium git. Napisany jest w Tcl/Tk i początkowo był rozwijany w
189 osobnym repozytorium, ale z czasem został włączony do głównego
193 Summary: Web frontend to git
194 Summary(pl.UTF-8): Webowy frontend do git
195 Group: Development/Tools
196 Requires: %{name} = %{version}-%{release}
200 This package provides a web interface for browsing git repositories.
202 %description gitweb -l pl.UTF-8
203 Pakiet ten dostarcza interfejs WWW do przeglądania repozytoriów gita.
206 Summary: A GTK+ based repository browser for git
207 Summary(pl.UTF-8): Oparta na GTK+ przeglądarka repozytorium gita
208 Group: Development/Tools
209 Requires: %{name} = %{version}-%{release}
210 Requires: python >= 1:2.4
211 Requires: python-pycairo >= 1.0
212 Requires: python-pygobject
213 Requires: python-pygtk-gtk >= 2:2.8
214 Suggests: python-gnome-desktop-gtksourceview
217 A GTK+ based repository browser for git.
219 %description gitview -l pl.UTF-8
220 Oparta na GTK+ przeglądarka repozytorium gita.
223 Summary: Tcl/Tk interface to the Git version control system
224 Summary(pl.UTF-8): Napisany w Tcl/Tk interfejs do systemu kontroli wersji Git
225 Group: Development/Tools
226 Requires: %{name} = %{version}-%{release}
230 Displays changes in a repository or a selected set of commits. This
231 includes visualizing the commit graph, showing information related to
232 each commit, and the files in the trees of each revision.
234 Historically, gitk was the first repository browser. It's written in
235 Tcl/Tk and started off in a separate repository but was later merged
236 into the main git repository.
238 %description gui -l pl.UTF-8
239 Wyświetla zmiany w repozytorium lub wybranym zbiorze commitów. Oznacza
240 to wizualizację grafu commitów, wyświetlanie informacji związanych z
241 każdym z commitów oraz listę plików dla każdej rewizji.
243 Z punktu widzenia historii, gitk był pierwszą przeglądarką
244 repozytorium git. Napisany jest w Tcl/Tk i początkowo był rozwijany w
245 osobnym repozytorium, ale z czasem został włączony do głównego
249 Summary: Subversion support for Git
250 Summary(pl.UTF-8): Obsługa Subversion dla Git
251 Group: Development/Tools
252 Requires: %{name} = %{version}-%{release}
255 Subversion support for Git.
257 %description svn -l pl.UTF-8
258 Obsługa Subversion dla Git.
261 Summary: CVS support for Git
262 Summary(pl.UTF-8): Obsługa CVS dla Git
263 Group: Development/Tools
264 Requires: %{name} = %{version}-%{release}
265 Requires: cvsps >= 2.1-2
271 %description cvs -l pl.UTF-8
275 Summary: Git tools for importing Arch repositories
276 Group: Development/Tools
277 Requires: %{name} = %{version}-%{release}
281 Git tools for importing Arch repositories.
284 Summary: Git tools for sending email
285 Group: Development/Tools
286 Requires: %{name} = %{version}-%{release}
289 Git tools for sending email.
291 %package -n bash-completion-git
292 Summary: bash-completion for git
293 Summary(pl.UTF-8): bashowe uzupełnianie nazw dla gita
294 Group: Applications/Shells
295 Requires: bash-completion
297 %description -n bash-completion-git
298 This package provides bash-completion for git.
300 %description -n bash-completion-git -l pl.UTF-8
301 Pakiet ten dostarcza bashowe uzupełnianie nazw dla gita.
304 Summary: Perl interface to the Git version control system
305 Summary(pl.UTF-8): Perlowy interfejs do systemu kontroli wersji Git
306 Group: Development/Languages/Perl
307 Obsoletes: perl-git-core
309 %description -n perl-Git
310 This module provides Perl scripts easy way to interface the Git
311 version control system. The modules have an easy and well-tested way
312 to call arbitrary Git commands; in the future, the interface will also
313 provide specialized methods for doing easily operations which are not
314 totally trivial to do over the generic command interface.
316 %description -n perl-Git -l pl.UTF-8
317 Ten moduł umożliwia skryptom Perla współpracę z systemem kontroli
318 wersji Git. W łatwy i dobrze przetestowany sposób pozwala wywoływać
319 dowolne polecenia Gita; w przyszłości interfejs udostępni także
320 specjalne metody do łatwego wykonywania operacji nietrywialnych do
321 wykonania przy użyciu ogólnego interfejsu poleceń.
323 %package -n python-Git
324 Summary: Python interface to the Git version control system
325 Summary(pl.UTF-8): Pythonowy interfejs do systemu kontroli wersji Git
326 Group: Development/Languages/Python
328 %description -n python-Git
329 This module provides Python scripts easy way to interface the Git
330 version control system.
332 %description -n python-Git -l pl.UTF-8
333 Ten moduł umożliwia skryptom Pythonowym współpracę z systemem kontroli
336 %package -n vim-syntax-gitcommit
337 Summary: Vim syntax: gitcommit
338 Summary(pl.UTF-8): Składnia dla Vima: gitcommit
339 Group: Applications/Editors/Vim
340 # for _vimdatadir existence
341 Requires: vim-rt >= 4:6.3.058-3
343 %description -n vim-syntax-gitcommit
344 This plugin provides syntax highlighting for git's commit messages.
346 %description -n vim-syntax-gitcommit -l pl.UTF-8
347 Ta wtyczka dostarcza podświetlanie składni dla treści commitów gita.
350 %setup -q -n git-%{version}
361 GITWEB_CONFIG="%{webappdir}/gitweb.conf" \
362 GITWEB_PROJECTROOT="/var/lib/git" \
363 GITWEB_CSS="/gitweb/gitweb.css" \
364 GITWEB_LOGO="/gitweb/git-logo.png" \
365 GITWEB_FAVICON="/gitweb/git-favicon.png"
367 # use DOCBOOK_XSL_172=1 to fix 'the ".ft C" problem' in generated manpages.
368 %{?with_doc:%{__make} -C Documentation V=1 DOCBOOK_XSL_172=1}
371 %if %{without tests_cvs}
378 rm -rf $RPM_BUILD_ROOT
379 install -d $RPM_BUILD_ROOT{%{_includedir}/%{name}/xdiff,%{_localstatedir}/lib/git}
380 install -d $RPM_BUILD_ROOT{%{appdir},%{cgibindir},%{webappdir}}
381 install -d $RPM_BUILD_ROOT/etc/{sysconfig/rc-inetd,rc.d/init.d}
385 DESTDIR=$RPM_BUILD_ROOT
388 %{__make} -C Documentation install \
389 DESTDIR=$RPM_BUILD_ROOT
392 # header files and lib
393 install *.h $RPM_BUILD_ROOT%{_includedir}/%{name}
394 install xdiff/*.h $RPM_BUILD_ROOT%{_includedir}/%{name}/xdiff
395 install libgit.a $RPM_BUILD_ROOT%{_libdir}
396 install xdiff/lib.a $RPM_BUILD_ROOT%{_libdir}/libgit_xdiff.a
399 install -d $RPM_BUILD_ROOT%{_sysconfdir}/bash_completion.d
400 cp -a contrib/completion/git-completion.bash $RPM_BUILD_ROOT%{_sysconfdir}/bash_completion.d
403 install -d $RPM_BUILD_ROOT%{_datadir}/vim/vimfiles/syntax
404 cat > $RPM_BUILD_ROOT%{_datadir}/vim/vimfiles/syntax/gitcommit.vim << 'EOF'
405 autocmd BufNewFile,BufRead *.git/COMMIT_EDITMSG setf gitcommit
406 autocmd BufNewFile,BufRead *.git/config,.gitconfig setf gitconfig
407 autocmd BufNewFile,BufRead git-rebase-todo setf gitrebase
408 autocmd BufNewFile,BufRead .msg.[0-9]*
409 \ if getline(1) =~ '^From.*# This line is ignored.$' |
410 \ setf gitsendemail |
412 autocmd BufNewFile,BufRead *.git/**
413 \ if getline(1) =~ '^\x\{40\}\>\|^ref: ' |
419 install -p gitweb/gitweb.cgi $RPM_BUILD_ROOT%{cgibindir}
420 cp -a gitweb/*.css gitweb/*.png $RPM_BUILD_ROOT%{appdir}
421 cp -a %{SOURCE1} $RPM_BUILD_ROOT%{webappdir}/gitweb.conf
422 cp -a %{SOURCE2} $RPM_BUILD_ROOT%{webappdir}/apache.conf
423 cp -a %{SOURCE2} $RPM_BUILD_ROOT%{webappdir}/httpd.conf
426 install -p contrib/gitview/gitview $RPM_BUILD_ROOT%{_bindir}
428 # git-daemon related files
429 cp -a %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/git-daemon
430 cp -a %{SOURCE4} $RPM_BUILD_ROOT/etc/sysconfig/rc-inetd/git-daemon
431 install -p %{SOURCE5} $RPM_BUILD_ROOT/etc/rc.d/init.d/git-daemon
434 sed -e 's,@libdir@,%{_libdir},g' -i $RPM_BUILD_ROOT/etc/rc.d/init.d/git-daemon
435 sed -e 's,@libdir@,%{_libdir},g' -i $RPM_BUILD_ROOT/etc/sysconfig/rc-inetd/git-daemon
438 ln -f $RPM_BUILD_ROOT%{_bindir}/{git,git-receive-pack}
439 ln -f $RPM_BUILD_ROOT%{_bindir}/{git,git-upload-archive}
440 ln -f $RPM_BUILD_ROOT{%{_libdir}/%{name},%{_bindir}}/git-shell
441 ln -f $RPM_BUILD_ROOT{%{_libdir}/%{name},%{_bindir}}/git-upload-pack
443 # remove unneeded files
444 rm $RPM_BUILD_ROOT%{perl_archlib}/perllocal.pod
445 rm $RPM_BUILD_ROOT%{perl_vendorarch}/auto/Git/.packlist
448 rm -rf $RPM_BUILD_ROOT
451 %service -q rc-inetd reload
454 if [ "$1" = "0" ]; then
455 %service -q rc-inetd reload
458 %post daemon-standalone
459 /sbin/chkconfig --add git-daemon
460 %service git-daemon restart "git-daemon"
462 %preun daemon-standalone
463 if [ "$1" = "0" ]; then
464 %service git-daemon stop
465 /sbin/chkconfig --del git-daemon
468 %triggerin gitweb -- apache1 < 1.3.37-3, apache1-base
469 %webapp_register apache %{webapp}
471 %triggerun gitweb -- apache1 < 1.3.37-3, apache1-base
472 %webapp_unregister apache %{webapp}
474 %triggerin gitweb -- apache < 2.2.0, apache-base
475 %webapp_register httpd %{webapp}
477 %triggerun gitweb -- apache < 2.2.0, apache-base
478 %webapp_unregister httpd %{webapp}
481 %defattr(644,root,root,755)
483 %attr(755,root,root) %{_bindir}/git
484 %attr(755,root,root) %{_bindir}/git-*
487 %{_mandir}/man1/git-*.1*
488 %exclude %{_mandir}/man1/git-svn.1*
489 %exclude %{_mandir}/man1/git-cvs*.1*
490 %{_mandir}/man1/git.1*
491 %{_mandir}/man5/gitattributes.5*
492 %{_mandir}/man5/githooks.5*
493 %{_mandir}/man5/gitignore.5*
494 %{_mandir}/man5/gitmodules.5*
495 %{_mandir}/man5/gitrepository-layout.5*
496 %{_mandir}/man7/gitcli.7*
497 %{_mandir}/man7/gitcore-tutorial.7*
498 %{_mandir}/man7/gitdiffcore.7*
499 %{_mandir}/man7/gitglossary.7*
500 %{_mandir}/man7/gittutorial-2.7*
501 %{_mandir}/man7/gittutorial.7*
502 %{_mandir}/man7/gitworkflows.7*
505 %dir %{_libdir}/%{name}
506 %attr(755,root,root) %{_libdir}/%{name}/*-*
507 %attr(755,root,root) %{_libdir}/%{name}/git
509 %exclude %{_libdir}/%{name}/git-gui
510 %exclude %{_libdir}/%{name}/git-svn
511 %exclude %{_libdir}/%{name}/git-archimport
512 %exclude %{_libdir}/%{name}/git-cvs*
513 %exclude %{_libdir}/%{name}/*email*
517 %{_localstatedir}/lib/git
521 %defattr(644,root,root,755)
522 %doc Documentation/RelNotes*
523 %doc Documentation/*.html Documentation/howto Documentation/technical
527 %defattr(644,root,root,755)
528 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/rc-inetd/git-daemon
530 %files daemon-standalone
531 %defattr(644,root,root,755)
532 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/git-daemon
533 %attr(754,root, root) /etc/rc.d/init.d/git-daemon
536 %defattr(644,root,root,755)
537 %{_includedir}/git-core
539 %{_libdir}/libgit_xdiff.a
542 %defattr(644,root,root,755)
544 %{_mandir}/man1/gitk.1*
546 %attr(755,root,root) %{_bindir}/gitk
547 %dir %{_datadir}/gitk
548 %dir %{_datadir}/gitk/lib
549 %dir %{_datadir}/gitk/lib/msgs
550 %lang(de) %{_datadir}/gitk/lib/msgs/de.msg
551 %lang(es) %{_datadir}/gitk/lib/msgs/es.msg
552 %lang(fr) %{_datadir}/gitk/lib/msgs/fr.msg
553 %lang(hu) %{_datadir}/gitk/lib/msgs/hu.msg
554 %lang(it) %{_datadir}/gitk/lib/msgs/it.msg
555 %lang(ja) %{_datadir}/gitk/lib/msgs/ja.msg
556 %lang(ru) %{_datadir}/gitk/lib/msgs/ru.msg
557 %lang(sv) %{_datadir}/gitk/lib/msgs/sv.msg
560 %defattr(644,root,root,755)
561 %doc gitweb/{README,INSTALL}
563 %config(noreplace) %verify(not md5 mtime size) %attr(640,root,http) %{webappdir}/gitweb.conf
564 %config(noreplace) %verify(not md5 mtime size) %attr(640,root,root) %{webappdir}/apache.conf
565 %config(noreplace) %verify(not md5 mtime size) %attr(640,root,root) %{webappdir}/httpd.conf
566 %attr(755,root,root) %{cgibindir}/gitweb.cgi
570 %defattr(644,root,root,755)
571 %doc contrib/gitview/gitview.txt
572 %attr(755,root,root) %{_bindir}/gitview
575 %defattr(644,root,root,755)
576 %attr(755,root,root) %{_libdir}/%{name}/git-gui
577 %dir %{_datadir}/git-gui
578 %dir %{_datadir}/git-gui/lib
579 %dir %{_datadir}/git-gui/lib/msgs
580 %{_datadir}/git-gui/lib/git-gui.ico
581 %{_datadir}/git-gui/lib/tclIndex
582 %{_datadir}/git-gui/lib/*.js
583 %{_datadir}/git-gui/lib/*.tcl
584 %lang(de) %{_datadir}/git-gui/lib/msgs/de.msg
585 %lang(el) %{_datadir}/git-gui/lib/msgs/el.msg
586 %lang(fr) %{_datadir}/git-gui/lib/msgs/fr.msg
587 %lang(hu) %{_datadir}/git-gui/lib/msgs/hu.msg
588 %lang(it) %{_datadir}/git-gui/lib/msgs/it.msg
589 %lang(ja) %{_datadir}/git-gui/lib/msgs/ja.msg
590 %lang(nb) %{_datadir}/git-gui/lib/msgs/nb.msg
591 %lang(ru) %{_datadir}/git-gui/lib/msgs/ru.msg
592 %lang(sv) %{_datadir}/git-gui/lib/msgs/sv.msg
593 %lang(zh_cn) %{_datadir}/git-gui/lib/msgs/zh_cn.msg
596 %defattr(644,root,root,755)
597 %attr(755,root,root) %{_libdir}/%{name}/git-svn
599 %{_mandir}/man1/git-svn.1*
603 %defattr(644,root,root,755)
604 %attr(755,root,root) %{_libdir}/%{name}/git-cvs*
606 %{_mandir}/man1/git-cvs*.1*
607 %{_mandir}/man7/gitcvs-migration.7*
611 %defattr(644,root,root,755)
612 %attr(755,root,root) %{_libdir}/%{name}/git-archimport
614 %{_mandir}/man1/git-archimport.1*
618 %defattr(644,root,root,755)
619 %attr(755,root,root) %{_libdir}/%{name}/*email*
621 %{_mandir}/man1/*email*.1*
624 %files -n bash-completion-git
625 %defattr(644,root,root,755)
626 %{_sysconfdir}/bash_completion.d/*
629 %defattr(644,root,root,755)
630 %{perl_vendorlib}/Git.pm
631 %{_mandir}/man3/Git.3pm*
634 %defattr(644,root,root,755)
635 %{py_sitescriptdir}/git_remote_helpers*.egg-info
636 %dir %{py_sitescriptdir}/git_remote_helpers
637 %{py_sitescriptdir}/git_remote_helpers/*.py[co]
638 %dir %{py_sitescriptdir}/git_remote_helpers/git
639 %{py_sitescriptdir}/git_remote_helpers/git/*.py[co]
641 %files -n vim-syntax-gitcommit
642 %defattr(644,root,root,755)
643 %doc contrib/vim/README
644 %{_datadir}/vim/vimfiles/syntax/*.vim