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: 25e4bcdc528b3ffadc6e59908a513881
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 vim-syntax-gitcommit
324 Summary: Vim syntax: gitcommit
325 Summary(pl.UTF-8): Składnia dla Vima: gitcommit
326 Group: Applications/Editors/Vim
327 # for _vimdatadir existence
328 Requires: vim-rt >= 4:6.3.058-3
330 %description -n vim-syntax-gitcommit
331 This plugin provides syntax highlighting for git's commit messages.
333 %description -n vim-syntax-gitcommit -l pl.UTF-8
334 Ta wtyczka dostarcza podświetlanie składni dla treści commitów gita.
337 %setup -q -n git-%{version}
348 GITWEB_CONFIG="%{webappdir}/gitweb.conf" \
349 GITWEB_PROJECTROOT="/var/lib/git" \
350 GITWEB_CSS="/gitweb/gitweb.css" \
351 GITWEB_LOGO="/gitweb/git-logo.png" \
352 GITWEB_FAVICON="/gitweb/git-favicon.png"
354 # use DOCBOOK_XSL_172=1 to fix 'the ".ft C" problem' in generated manpages.
355 %{?with_doc:%{__make} -C Documentation V=1 DOCBOOK_XSL_172=1}
358 %if %{without tests_cvs}
365 rm -rf $RPM_BUILD_ROOT
366 install -d $RPM_BUILD_ROOT{%{_includedir}/%{name}/xdiff,%{_localstatedir}/lib/git}
367 install -d $RPM_BUILD_ROOT{%{appdir},%{cgibindir},%{webappdir}}
368 install -d $RPM_BUILD_ROOT/etc/{sysconfig/rc-inetd,rc.d/init.d}
372 DESTDIR=$RPM_BUILD_ROOT
375 %{__make} -C Documentation install \
376 DESTDIR=$RPM_BUILD_ROOT
379 # header files and lib
380 install *.h $RPM_BUILD_ROOT%{_includedir}/%{name}
381 install xdiff/*.h $RPM_BUILD_ROOT%{_includedir}/%{name}/xdiff
382 install libgit.a $RPM_BUILD_ROOT%{_libdir}
383 install xdiff/lib.a $RPM_BUILD_ROOT%{_libdir}/libgit_xdiff.a
386 install -d $RPM_BUILD_ROOT%{_sysconfdir}/bash_completion.d
387 cp -a contrib/completion/git-completion.bash $RPM_BUILD_ROOT%{_sysconfdir}/bash_completion.d
390 install -d $RPM_BUILD_ROOT%{_datadir}/vim/vimfiles/syntax
391 cat > $RPM_BUILD_ROOT%{_datadir}/vim/vimfiles/syntax/gitcommit.vim << 'EOF'
392 autocmd BufNewFile,BufRead *.git/COMMIT_EDITMSG setf gitcommit
393 autocmd BufNewFile,BufRead *.git/config,.gitconfig setf gitconfig
394 autocmd BufNewFile,BufRead git-rebase-todo setf gitrebase
395 autocmd BufNewFile,BufRead .msg.[0-9]*
396 \ if getline(1) =~ '^From.*# This line is ignored.$' |
397 \ setf gitsendemail |
399 autocmd BufNewFile,BufRead *.git/**
400 \ if getline(1) =~ '^\x\{40\}\>\|^ref: ' |
406 install -p gitweb/gitweb.cgi $RPM_BUILD_ROOT%{cgibindir}
407 cp -a gitweb/*.css gitweb/*.png $RPM_BUILD_ROOT%{appdir}
408 cp -a %{SOURCE1} $RPM_BUILD_ROOT%{webappdir}/gitweb.conf
409 cp -a %{SOURCE2} $RPM_BUILD_ROOT%{webappdir}/apache.conf
410 cp -a %{SOURCE2} $RPM_BUILD_ROOT%{webappdir}/httpd.conf
413 install -p contrib/gitview/gitview $RPM_BUILD_ROOT%{_bindir}
415 # git-daemon related files
416 cp -a %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/git-daemon
417 cp -a %{SOURCE4} $RPM_BUILD_ROOT/etc/sysconfig/rc-inetd/git-daemon
418 install -p %{SOURCE5} $RPM_BUILD_ROOT/etc/rc.d/init.d/git-daemon
421 sed -e 's,@libdir@,%{_libdir},g' -i $RPM_BUILD_ROOT/etc/rc.d/init.d/git-daemon
422 sed -e 's,@libdir@,%{_libdir},g' -i $RPM_BUILD_ROOT/etc/sysconfig/rc-inetd/git-daemon
425 ln -f $RPM_BUILD_ROOT%{_bindir}/{git,git-receive-pack}
426 ln -f $RPM_BUILD_ROOT%{_bindir}/{git,git-upload-archive}
427 ln -f $RPM_BUILD_ROOT{%{_libdir}/%{name},%{_bindir}}/git-shell
428 ln -f $RPM_BUILD_ROOT{%{_libdir}/%{name},%{_bindir}}/git-upload-pack
430 # remove unneeded files
431 rm $RPM_BUILD_ROOT%{perl_archlib}/perllocal.pod
432 rm $RPM_BUILD_ROOT%{perl_vendorarch}/auto/Git/.packlist
435 rm -rf $RPM_BUILD_ROOT
438 %service -q rc-inetd reload
441 if [ "$1" = "0" ]; then
442 %service -q rc-inetd reload
445 %post daemon-standalone
446 /sbin/chkconfig --add git-daemon
447 %service git-daemon restart "git-daemon"
449 %preun daemon-standalone
450 if [ "$1" = "0" ]; then
451 %service git-daemon stop
452 /sbin/chkconfig --del git-daemon
455 %triggerin gitweb -- apache1 < 1.3.37-3, apache1-base
456 %webapp_register apache %{webapp}
458 %triggerun gitweb -- apache1 < 1.3.37-3, apache1-base
459 %webapp_unregister apache %{webapp}
461 %triggerin gitweb -- apache < 2.2.0, apache-base
462 %webapp_register httpd %{webapp}
464 %triggerun gitweb -- apache < 2.2.0, apache-base
465 %webapp_unregister httpd %{webapp}
468 %defattr(644,root,root,755)
470 %attr(755,root,root) %{_bindir}/git
471 %attr(755,root,root) %{_bindir}/git-*
474 %{_mandir}/man1/git-*.1*
475 %exclude %{_mandir}/man1/git-svn.1*
476 %exclude %{_mandir}/man1/git-cvs*.1*
477 %{_mandir}/man1/git.1*
478 %{_mandir}/man5/gitattributes.5*
479 %{_mandir}/man5/githooks.5*
480 %{_mandir}/man5/gitignore.5*
481 %{_mandir}/man5/gitmodules.5*
482 %{_mandir}/man5/gitrepository-layout.5*
483 %{_mandir}/man7/gitcli.7*
484 %{_mandir}/man7/gitcore-tutorial.7*
485 %{_mandir}/man7/gitdiffcore.7*
486 %{_mandir}/man7/gitglossary.7*
487 %{_mandir}/man7/gittutorial-2.7*
488 %{_mandir}/man7/gittutorial.7*
489 %{_mandir}/man7/gitworkflows.7*
492 %dir %{_libdir}/%{name}
493 %attr(755,root,root) %{_libdir}/%{name}/*-*
494 %attr(755,root,root) %{_libdir}/%{name}/git
496 %exclude %{_libdir}/%{name}/git-gui
497 %exclude %{_libdir}/%{name}/git-svn
498 %exclude %{_libdir}/%{name}/git-archimport
499 %exclude %{_libdir}/%{name}/git-cvs*
500 %exclude %{_libdir}/%{name}/*email*
504 %{_localstatedir}/lib/git
508 %doc Documentation/RelNotes*
509 %doc Documentation/*.html Documentation/howto Documentation/technical
513 %defattr(644,root,root,755)
514 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/rc-inetd/git-daemon
516 %files daemon-standalone
517 %defattr(644,root,root,755)
518 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/git-daemon
519 %attr(754,root, root) /etc/rc.d/init.d/git-daemon
522 %defattr(644,root,root,755)
523 %{_includedir}/git-core
525 %{_libdir}/libgit_xdiff.a
528 %defattr(644,root,root,755)
530 %{_mandir}/man1/gitk.1*
532 %attr(755,root,root) %{_bindir}/gitk
533 %dir %{_datadir}/gitk
534 %dir %{_datadir}/gitk/lib
535 %dir %{_datadir}/gitk/lib/msgs
536 %lang(de) %{_datadir}/gitk/lib/msgs/de.msg
537 %lang(es) %{_datadir}/gitk/lib/msgs/es.msg
538 %lang(it) %{_datadir}/gitk/lib/msgs/it.msg
539 %lang(ja) %{_datadir}/gitk/lib/msgs/ja.msg
540 %lang(ru) %{_datadir}/gitk/lib/msgs/ru.msg
541 %lang(sv) %{_datadir}/gitk/lib/msgs/sv.msg
544 %defattr(644,root,root,755)
545 %doc gitweb/{README,INSTALL}
547 %config(noreplace) %verify(not md5 mtime size) %attr(640,root,http) %{webappdir}/gitweb.conf
548 %config(noreplace) %verify(not md5 mtime size) %attr(640,root,root) %{webappdir}/apache.conf
549 %config(noreplace) %verify(not md5 mtime size) %attr(640,root,root) %{webappdir}/httpd.conf
550 %attr(755,root,root) %{cgibindir}/gitweb.cgi
554 %defattr(644,root,root,755)
555 %doc contrib/gitview/gitview.txt
556 %attr(755,root,root) %{_bindir}/gitview
559 %defattr(644,root,root,755)
560 %attr(755,root,root) %{_libdir}/%{name}/git-gui
561 %dir %{_datadir}/git-gui
562 %dir %{_datadir}/git-gui/lib
563 %dir %{_datadir}/git-gui/lib/msgs
564 %{_datadir}/git-gui/lib/git-gui.ico
565 %{_datadir}/git-gui/lib/tclIndex
566 %{_datadir}/git-gui/lib/*.js
567 %{_datadir}/git-gui/lib/*.tcl
568 %lang(de) %{_datadir}/git-gui/lib/msgs/de.msg
569 %lang(el) %{_datadir}/git-gui/lib/msgs/el.msg
570 %lang(fr) %{_datadir}/git-gui/lib/msgs/fr.msg
571 %lang(hu) %{_datadir}/git-gui/lib/msgs/hu.msg
572 %lang(it) %{_datadir}/git-gui/lib/msgs/it.msg
573 %lang(ja) %{_datadir}/git-gui/lib/msgs/ja.msg
574 %lang(nb) %{_datadir}/git-gui/lib/msgs/nb.msg
575 %lang(ru) %{_datadir}/git-gui/lib/msgs/ru.msg
576 %lang(sv) %{_datadir}/git-gui/lib/msgs/sv.msg
577 %lang(zh_cn) %{_datadir}/git-gui/lib/msgs/zh_cn.msg
580 %defattr(644,root,root,755)
581 %attr(755,root,root) %{_libdir}/%{name}/git-svn
583 %{_mandir}/man1/git-svn.1*
587 %defattr(644,root,root,755)
588 %attr(755,root,root) %{_libdir}/%{name}/git-cvs*
590 %{_mandir}/man1/git-cvs*.1*
591 %{_mandir}/man7/gitcvs-migration.7*
595 %defattr(644,root,root,755)
596 %attr(755,root,root) %{_libdir}/%{name}/git-archimport
598 %{_mandir}/man1/git-archimport.1*
602 %defattr(644,root,root,755)
603 %attr(755,root,root) %{_libdir}/%{name}/*email*
605 %{_mandir}/man1/*email*.1*
608 %files -n bash-completion-git
609 %defattr(644,root,root,755)
610 %{_sysconfdir}/bash_completion.d/*
613 %defattr(644,root,root,755)
614 %{perl_vendorlib}/Git.pm
615 %{_mandir}/man3/Git.3pm*
617 %files -n vim-syntax-gitcommit
618 %defattr(644,root,root,755)
619 %doc contrib/vim/README
620 %{_datadir}/vim/vimfiles/syntax/*.vim