up to 2.31.0
[packages/git-core.git] / git-core.spec
1 #
2 # Conditional build:
3 %bcond_without  tests           # test suite
4 %bcond_with     tests_cvs       # tests which use CVS
5 %bcond_without  tests_svn       # tests which use subversion
6 %bcond_without  doc             # building/packaging docs/manuals (takes some time)
7 %bcond_without  pcre            # perl-compatible regexes support
8 %bcond_without  gnome_keyring   # gnome keyring credentials support
9 %bcond_without  libsecret       # libsecret credentials support
10 %bcond_without  tk              # Tcl/Tk interface
11
12 # for AC: --without doc --without gnome_keyring --without tests
13
14 Summary:        Distributed version control system focused on speed, effectivity and usability
15 Summary(pl.UTF-8):      Rozproszony system śledzenia treści skupiony na szybkości, wydajności i użyteczności
16 Name:           git-core
17 Version:        2.31.0
18 Release:        1
19 License:        GPL v2
20 Group:          Development/Tools
21 Source0:        https://www.kernel.org/pub/software/scm/git/git-%{version}.tar.xz
22 # Source0-md5:  c7f808ab107b666af45fccb56b9d9676
23 Source1:        %{name}-gitweb.conf
24 Source2:        %{name}-gitweb-httpd.conf
25 Source3:        %{name}-gitweb-lighttpd.conf
26 Source4:        %{name}.sysconfig
27 Source5:        %{name}.inet
28 Source6:        %{name}.init
29 Source7:        gitolite.pl
30 Patch0:         %{name}-key-bindings.patch
31 Patch1:         %{name}-sysconfdir.patch
32 Patch2:         cherry-picked-commitlog.patch
33 URL:            http://git-scm.com/
34 BuildRequires:  autoconf >= 2.59
35 BuildRequires:  automake
36 BuildRequires:  curl-devel
37 BuildRequires:  expat-devel
38 %if "%{pld_release}" == "ac"
39 BuildRequires:  gettext-devel
40 %else
41 BuildRequires:  gettext-tools
42 %endif
43 %if %{with gnome_keyring} || %{with libsecret}
44 BuildRequires:  glib2-devel >= 2.0
45 %endif
46 %if %{with gnome_keyring}
47 BuildRequires:  libgnome-keyring-devel
48 %endif
49 %if %{with libsecret}
50 BuildRequires:  libsecret-devel
51 %endif
52 BuildRequires:  openssl-devel
53 %{?with_pcre:BuildRequires:     pcre2-8-devel}
54 BuildRequires:  perl-Error > 0.15
55 BuildRequires:  perl-MailTools
56 BuildRequires:  perl-base
57 %if %{with gnome_keyring} || %{with libsecret}
58 BuildRequires:  pkgconfig
59 %endif
60 BuildRequires:  python-devel
61 BuildRequires:  rpm-perlprov >= 4.1-13
62 BuildRequires:  rpm-pythonprov
63 BuildRequires:  rpmbuild(macros) >= 1.752
64 BuildRequires:  tar >= 1:1.22
65 %if %{with tk}
66 # wish
67 BuildRequires:  tk
68 BuildRequires:  xz
69 %endif
70 BuildRequires:  zlib-devel
71 %if %{with doc}
72 BuildRequires:  asciidoc >= 7.1.2-3
73 BuildRequires:  docbook-dtd45-xml
74 BuildRequires:  xmlto
75 %endif
76 %if %{with tests}
77 BuildRequires:  perl-CGI
78 BuildRequires:  perl-Digest-MD5
79 BuildRequires:  perl-Encode
80 BuildRequires:  perl-Time-HiRes
81 %if %{with tests_cvs}
82 # tests failed sometimes when using nserver/cvsnt client so enforce pure cvs here
83 BuildRequires:  cvs-gnu-client < 1.13
84 BuildRequires:  cvs-gnu-client >= 1.12
85 %endif
86 %if %{with tests_svn}
87 BuildRequires:  perl-subversion
88 BuildRequires:  subversion
89 %endif
90 Conflicts:      pdksh < 5.2.14-46
91 %endif
92 # git-sh-setup: sane_grep
93 Requires:       grep
94 # git-pull: printf
95 Requires:       coreutils
96 Requires:       sed
97 Suggests:       git-core-bzr
98 Suggests:       git-core-cvs
99 Suggests:       git-core-hg
100 Suggests:       git-core-p4
101 Suggests:       git-core-svn
102 Suggests:       less
103 Suggests:       openssh-clients
104 Suggests:       perl-Git = %{version}-%{release}
105 Suggests:       rsync
106 Obsoletes:      git-core-gitview
107 Obsoletes:      python-Git
108 Conflicts:      perl-Git < %{version}
109 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
110
111 # html docs have links to txt files
112 %define         _noautocompressdoc      *.txt
113
114 # do not generate perl dependency, git add -p support is optional
115 # skip dependency generation from templates
116 %define         _noautoreqfiles %{_libexecdir}/%{name}/git-add--interactive %{_datadir}/%{name}/templates
117
118 %define         webapp          gitweb
119 %define         webappdir       %{_sysconfdir}/webapps/%{webapp}
120 %define         appdir          %{_datadir}/%{webapp}
121 %define         cgibindir       %{_prefix}/lib/cgi-bin
122 %define         gitcoredir      %{_libexecdir}/%{name}
123
124 %description
125 "git" can mean anything, depending on your mood.
126
127 - random three-letter combination that is pronounceable, and not
128   actually used by any common UNIX command. The fact that it is a
129   mispronunciation of "get" may or may not be relevant.
130 - stupid. contemptible and despicable. simple. Take your pick from the
131   dictionary of slang.
132 - "global information tracker": you're in a good mood, and it actually
133   works for you. Angels sing, and a light suddenly fills the room.
134 - "goddamn idiotic truckload of sh*t": when it breaks
135
136 This is a stupid (but extremely fast) directory content manager. It
137 doesn't do a whole lot, but what it 'does' do is track directory
138 contents efficiently.
139
140 %description -l pl.UTF-8
141 "git" może oznaczać cokolwiek, w zależności od nastroju.
142
143 - losową kombinację trzech liter, która jest wymawialna i właściwie
144   nie używana przez żadne popularne polecenie uniksowe. Fakt, że jest to
145   błędna pisownia słowa "get" może mieć lub nie mieć znaczenia.
146 - głupi, pogardliwy, prosty. Można wybrać ze słownika slangu.
147 - "global information tracker" (narzędzie do globalnego śledzenia
148   informacji) - jeśli jesteśmy w dobrym nastroju i git akurat działa.
149   Anioły śpiewają, a światło niespodziewanie wypełnia pokój.
150 - "goddamn idiotic truckload of sh*t" (przeklęty idiotyczny ładunek
151   g*) - kiedy się zepsuje.
152
153 Jest to prymitywny (ale bardzo szybki) zarządca treści słownikowej.
154 Nie robi wiele, ale to, co "robi", to wydajne śledzenie zawartości
155 katalogu.
156
157 %package doc
158 Summary:        Documentation for git-core
159 Summary(pl.UTF-8):      Dokumentacja do git-core
160 Group:          Documentation
161 BuildArch:      noarch
162
163 %description doc
164 Documentation for git-core.
165
166 %description doc -l pl.UTF-8
167 Dokumentacja do git-core.
168
169 %package daemon-inetd
170 Summary:        Files necessary to run git-daemon as an inetd service
171 Summary(pl.UTF-8):      Pliki niezbędne do uruchomienia git-daemona w trybie usługi inetd
172 Group:          Networking/Daemons
173 Requires:       %{name} = %{version}-%{release}
174 Requires:       setup >= 2.4.11-1
175 Provides:       git-core-daemon
176 Obsoletes:      git-core-daemon
177 Obsoletes:      git-core-daemon-standalone
178
179 %description daemon-inetd
180 Git-daemon is a really simple TCP git daemon that can serve git
181 repositories. This package provides all necessarry files to run
182 git-daemon as an inetd service.
183
184 %description daemon-inetd -l pl.UTF-8
185 Git-daemon to prosty demon git korzystający z protokołu TCP do
186 udostępniania repozytoriów git. Ten pakiet dostarcza pliki potrzebne
187 do uruchomienia git-demona w trybie usługi inetd.
188
189 %package daemon-standalone
190 Summary:        Files necessary to run git-daemon as a standalone service
191 Summary(pl.UTF-8):      Pliki niezbędne do uruchomienia git-daemona w trybie usługi samodzielnej
192 Group:          Networking/Daemons
193 Requires:       %{name} = %{version}-%{release}
194 Provides:       git-core-daemon
195 Obsoletes:      git-core-daemon
196 Obsoletes:      git-core-daemon-inetd
197
198 %description daemon-standalone
199 Git-daemon is a really simple TCP git daemon that can serve git
200 repositories. This package provides all necessarry files to run
201 git-daemon as an standalone service.
202
203 %description daemon-standalone -l pl.UTF-8
204 Git-daemon to prosty demon git korzystający z protokołu TCP do
205 udostępniania repozytoriów git. Ten pakiet dostarcza pliki potrzebne
206 do uruchomienia git-daemona w trybie usługi samodzielnej.
207
208 %package devel
209 Summary:        Git library with header files
210 Summary(pl.UTF-8):      Biblioteka Gita oraz pliki nagłówkowe
211 Group:          Development/Libraries
212 Requires:       zlib-devel
213
214 %description devel
215 Git library with header files.
216
217 %description devel -l pl.UTF-8
218 Biblioteka Gita oraz pliki nagłówkowe.
219
220 %package gitk
221 Summary:        Tcl/Tk interface to the Git version control system
222 Summary(pl.UTF-8):      Napisany w Tcl/Tk interfejs do systemu kontroli wersji Git
223 Group:          Development/Tools
224 Requires:       %{name} = %{version}-%{release}
225 Requires:       tk
226 BuildArch:      noarch
227
228 %description gitk
229 gitk displays changes in a repository or a selected set of commits.
230 This includes visualizing the commit graph, showing information
231 related to each commit, and the files in the trees of each revision.
232
233 Historically, gitk was the first repository browser. It's written in
234 Tcl/Tk and started off in a separate repository but was later merged
235 into the main git repository.
236
237 %description gitk -l pl.UTF-8
238 gitk wyświetla zmiany w repozytorium lub wybranym zbiorze commitów.
239 Oznacza to wizualizację grafu commitów, wyświetlanie informacji
240 związanych z każdym z commitów oraz listę plików dla każdej rewizji.
241
242 Z historycznego punktu widzenia gitk był pierwszą przeglądarką
243 repozytorium git. Napisany jest w Tcl/Tk i początkowo był rozwijany w
244 osobnym repozytorium, ale z czasem został włączony do głównego
245 repozytorium gita.
246
247 %package gitweb
248 Summary:        Web frontend to git
249 Summary(pl.UTF-8):      Frontend WWW do gita
250 Group:          Development/Tools
251 Requires:       %{name} = %{version}-%{release}
252 Requires:       webapps
253 Requires:       webserver(access)
254 Requires:       webserver(alias)
255 Requires:       webserver(cgi)
256 Suggests:       webserver(setenv)
257
258 %description gitweb
259 This package provides a web interface for browsing git repositories.
260
261 %description gitweb -l pl.UTF-8
262 Pakiet ten dostarcza interfejs WWW do przeglądania repozytoriów gita.
263
264 %package gui
265 Summary:        Tcl/Tk interface to the Git version control system
266 Summary(pl.UTF-8):      Napisany w Tcl/Tk interfejs do systemu kontroli wersji Git
267 Group:          Development/Tools
268 Requires:       %{name} = %{version}-%{release}
269 Requires:       tk
270 Requires:       xdg-utils
271 Suggests:       meld
272
273 %description gui
274 Displays changes in a repository or a selected set of commits. This
275 includes visualizing the commit graph, showing information related to
276 each commit, and the files in the trees of each revision.
277
278 Historically, gitk was the first repository browser. It's written in
279 Tcl/Tk and started off in a separate repository but was later merged
280 into the main git repository.
281
282 %description gui -l pl.UTF-8
283 Wyświetla zmiany w repozytorium lub wybranym zbiorze commitów. Oznacza
284 to wizualizację grafu commitów, wyświetlanie informacji związanych z
285 każdym z commitów oraz listę plików dla każdej rewizji.
286
287 Z punktu widzenia historii, gitk był pierwszą przeglądarką
288 repozytorium git. Napisany jest w Tcl/Tk i początkowo był rozwijany w
289 osobnym repozytorium, ale z czasem został włączony do głównego
290 repozytorium gita.
291
292 %package arch
293 Summary:        Git tools for importing Arch repositories
294 Summary(pl.UTF-8):      Narzędzia Gita do importowania repozytoriów Archa
295 Group:          Development/Tools
296 Requires:       %{name} = %{version}-%{release}
297 Requires:       tla
298
299 %description arch
300 Git tools for importing Arch repositories.
301
302 %description arch -l pl.UTF-8
303 Narzędzia Gita do importowania repozytoriów Archa.
304
305 %package bzr
306 Summary:        Git tools for working with bzr repositories
307 Summary(pl.UTF-8):      Narzędzia Gita do pracy z repozytoriami bzr
308 Group:          Development/Tools
309 Requires:       %{name} = %{version}-%{release}
310 Requires:       bzr
311
312 %description bzr
313 Git tools for working with bzr repositories.
314
315 %description bzr -l pl.UTF-8
316 Narzędzia Gita do pracy z repozytoriami bzr.
317
318 %package cvs
319 Summary:        CVS support for Git
320 Summary(pl.UTF-8):      Obsługa CVS dla Gita
321 Group:          Development/Tools
322 Requires:       %{name} = %{version}-%{release}
323 Requires:       cvsps >= 2.1-2
324 Requires:       rcs
325
326 %description cvs
327 CVS support for Git.
328
329 %description cvs -l pl.UTF-8
330 Obsługa CVS dla Gita.
331
332 %package hg
333 Summary:        Git tools for working with mercurial repositories
334 Summary(pl.UTF-8):      Narzędzia Gita do pracy z repozytoriami mercuriala
335 Group:          Development/Tools
336 Requires:       %{name} = %{version}-%{release}
337 Requires:       mercurial >= 1.8
338
339 %description hg
340 Git tools for working with mercurial repositories.
341
342 %description hg -l pl.UTF-8
343 Narzędzia Gita do pracy z repozytoriami mercuriala.
344
345 %package p4
346 Summary:        Git tools for working with Perforce depots
347 Summary(pl.UTF-8):      Narzędzia Gita do pracy z magazynami Perforce'a
348 Group:          Development/Tools
349 Requires:       %{name} = %{version}-%{release}
350
351 %description p4
352 Git tools for working with Perforce depots.
353
354 %description p4 -l pl.UTF-8
355 Narzędzia Gita do pracy z magazynami Perforce'a.
356
357 %package svn
358 Summary:        Subversion support for Git
359 Summary(pl.UTF-8):      Obsługa Subversion dla Gita
360 Group:          Development/Tools
361 Requires:       %{name} = %{version}-%{release}
362 Requires:       perl-Encode
363 Requires:       perl-Term-ReadKey
364
365 %description svn
366 Subversion support for Git.
367
368 %description svn -l pl.UTF-8
369 Obsługa Subversion dla Gita.
370
371 %package email
372 Summary:        Git tools for sending email
373 Summary(pl.UTF-8):      Narzędzia Gita do wysyłania poczty
374 Group:          Development/Tools
375 Requires:       %{name} = %{version}-%{release}
376 Requires:       perl-Error
377 Requires:       perl-MailTools
378 Suggests:       perl-Net-SMTP-SSL
379
380 %description email
381 Git tools for sending email.
382
383 %description email -l pl.UTF-8
384 Narzędzia Gita do wysyłania poczty.
385
386 %package -n bash-completion-git
387 Summary:        bash-completion for git
388 Summary(pl.UTF-8):      bashowe uzupełnianie nazw dla gita
389 Group:          Applications/Shells
390 Requires:       %{name} = %{version}-%{release}
391 Requires:       bash-completion >= 2.0
392 BuildArch:      noarch
393
394 %description -n bash-completion-git
395 This package provides bash-completion for git.
396
397 %description -n bash-completion-git -l pl.UTF-8
398 Pakiet ten dostarcza bashowe uzupełnianie nazw dla gita.
399
400 %package -n perl-Git
401 Summary:        Perl interface to the Git version control system
402 Summary(pl.UTF-8):      Perlowy interfejs do systemu kontroli wersji Git
403 Group:          Development/Languages/Perl
404 Obsoletes:      perl-git-core
405 BuildArch:      noarch
406
407 %description -n perl-Git
408 This module provides Perl scripts easy way to interface the Git
409 version control system. The modules have an easy and well-tested way
410 to call arbitrary Git commands; in the future, the interface will also
411 provide specialized methods for doing easily operations which are not
412 totally trivial to do over the generic command interface.
413
414 %description -n perl-Git -l pl.UTF-8
415 Ten moduł umożliwia skryptom Perla współpracę z systemem kontroli
416 wersji Git. W łatwy i dobrze przetestowany sposób pozwala wywoływać
417 dowolne polecenia Gita; w przyszłości interfejs udostępni także
418 specjalne metody do łatwego wykonywania operacji nietrywialnych do
419 wykonania przy użyciu ogólnego interfejsu poleceń.
420
421 %package -n gnome-keyring-git-core
422 Summary:        GNOME Keyring authentication provider for Git
423 Summary(pl.UTF-8):      Moduł uwierzytelniający GNOME Keyring dla Gita
424 Group:          X11/Applications
425 URL:            http://git-scm.com/docs/gitcredentials.html
426 Requires:       %{name} = %{version}-%{release}
427
428 %description -n gnome-keyring-git-core
429 Authentication provider module for Git which allows git client to
430 authenticate using GNOME Keyring.
431
432 You need to register it with:
433 - git config --global credential.helper gnome-keyring
434
435 %description -n gnome-keyring-git-core -l pl.UTF-8
436 Moduł uwierzytelniający dla Gita pozwalający klientom git
437 uwierzytelniać się przy użyciu mechanizmu GNOME Keyring.
438
439 Moduł trzeba zarejestrować poleceniem:
440 - git config --global credential.helper gnome-keyring
441
442 %package credential-libsecret
443 Summary:        GNOME authentication provider for Git using libsecret
444 Summary(pl.UTF-8):      Moduł uwierzytelniający GNOME dla Gita wykorzystujący libsecret
445 Group:          X11/Applications
446 URL:            http://git-scm.com/docs/gitcredentials.html
447 Requires:       %{name} = %{version}-%{release}
448
449 %description credential-libsecret
450 Authentication provider module for Git which allows git client to
451 authenticate using GNOME libsecret.
452
453 You need to register it with:
454 - git config --global credential.helper libsecret
455
456 %description credential-libsecret -l pl.UTF-8
457 Moduł uwierzytelniający dla Gita pozwalający klientom git
458 uwierzytelniać się przy użyciu mechanizmu GNOME libsecret.
459
460 Moduł trzeba zarejestrować poleceniem:
461 - git config --global credential.helper libsecret
462
463 %prep
464 %setup -q -n git-%{version}
465 %patch0 -p0
466 %patch1 -p1
467 %patch2 -p1
468
469 %{__rm} {Documentation/technical,contrib/credential/gnome-keyring}/.gitignore
470
471 # we build things in contrib but want to have it clean for doc purporses, too
472 cp -a contrib contrib-doc
473
474 %{__sed} -i -e '1s|#!/usr/bin/env python$|#!%{__python}|' git-p4.py
475
476 %build
477 %{__aclocal}
478 %{__autoconf}
479 %configure \
480         --sysconfdir=%{_sysconfdir}/git-core \
481         %{?with_pcre:--with-libpcre2} \
482         --with-openssl
483
484 echo "BLK_SHA1=1" >> config.mak
485
486 %{__make} \
487         GITWEB_CONFIG="%{webappdir}/gitweb.conf" \
488         GITWEB_PROJECTROOT="/var/lib/git" \
489         GITWEB_CSS="/gitweb/gitweb.css" \
490         GITWEB_LOGO="/gitweb/git-logo.png" \
491         GITWEB_FAVICON="/gitweb/git-favicon.png" \
492         NO_PERL_CPAN_FALLBACKS=1 \
493         perllibdir=%{perl_vendorlib} \
494         V=1
495
496 %{__make} -C contrib/subtree
497
498 %if %{with gnome_keyring}
499 %{__make} -C contrib/credential/gnome-keyring \
500         CC="%{__cc}" \
501         CFLAGS="%{rpmcflags} -Wall" \
502         LDFLAGS="%{rpmldflags}"
503 %endif
504
505 %if %{with libsecret}
506 %{__make} -C contrib/credential/libsecret \
507         CC="%{__cc}" \
508         CFLAGS="%{rpmcflags} -Wall" \
509         LDFLAGS="%{rpmldflags}"
510 %endif
511
512 %if %{with doc}
513 %{__make} doc \
514         MAN_BASE_URL=file://%{_docdir}/%{name}-doc-%{version}/ \
515         V=1
516 %endif
517
518 %if %{with tests}
519 %if %{without tests_cvs}
520 %{__rm} t/t*cvs*.sh || :
521 %endif
522 %if %{without tests_svn}
523 GIT_SKIP_TESTS="$GIT_SKIP_TESTS t91??"
524 %endif
525 export GIT_SKIP_TESTS
526 %{__make} test \
527         NO_PERL_CPAN_FALLBACKS=1
528 %endif
529
530 %install
531 rm -rf $RPM_BUILD_ROOT
532 install -d $RPM_BUILD_ROOT{%{_includedir}/%{name}/xdiff,%{_libdir},%{_localstatedir}/lib/git}
533 install -d $RPM_BUILD_ROOT{%{appdir},%{cgibindir},%{webappdir}}
534 install -d $RPM_BUILD_ROOT/etc/{sysconfig/rc-inetd,rc.d/init.d}
535 install -d $RPM_BUILD_ROOT%{_sysconfdir}/%{name}
536 cat << EOF > $RPM_BUILD_ROOT%{_sysconfdir}/git-core/gitconfig
537 [init]
538         templatedir = %{_sysconfdir}/%{name}/templates
539 EOF
540
541 %{__make} install \
542         DESTDIR=$RPM_BUILD_ROOT \
543         NO_PERL_CPAN_FALLBACKS=1 \
544         perllibdir=%{perl_vendorlib}
545
546 %if %{with doc}
547 %{__make} install-doc \
548         DESTDIR=$RPM_BUILD_ROOT
549 %endif
550
551 # copy templates except sample hooks
552 cp -a $RPM_BUILD_ROOT%{_datadir}/%{name}/templates $RPM_BUILD_ROOT%{_sysconfdir}/%{name}
553 %{__rm} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/templates/hooks/*.sample
554
555 # header files and lib
556 cp -p *.h $RPM_BUILD_ROOT%{_includedir}/%{name}
557 cp -a compat $RPM_BUILD_ROOT%{_includedir}/%{name}
558 cp -p xdiff/*.h $RPM_BUILD_ROOT%{_includedir}/%{name}/xdiff
559 install -d $RPM_BUILD_ROOT%{_includedir}/%{name}/block-sha1
560 cp -p block-sha1/sha1.h $RPM_BUILD_ROOT%{_includedir}/%{name}/block-sha1
561 cp -p libgit.a $RPM_BUILD_ROOT%{_libdir}
562 cp -p xdiff/lib.a $RPM_BUILD_ROOT%{_libdir}/libgit_xdiff.a
563 cp -p {Makefile,config.mak,config.mak.autogen,config.mak.uname} $RPM_BUILD_ROOT%{_includedir}/%{name}
564
565 %{__make} -C contrib/subtree install \
566         libexecdir=%{gitcoredir} \
567         DESTDIR=$RPM_BUILD_ROOT
568
569 %if %{with doc}
570 %{__make} -C contrib/subtree install-man \
571         DESTDIR=$RPM_BUILD_ROOT
572 %endif
573
574 %if %{with gnome_keyring}
575 install -p contrib/credential/gnome-keyring/git-credential-gnome-keyring $RPM_BUILD_ROOT%{gitcoredir}
576 %endif
577
578 %if %{with libsecret}
579 install -p contrib/credential/libsecret/git-credential-libsecret $RPM_BUILD_ROOT%{gitcoredir}
580 %endif
581
582 # bash completion
583 install -d $RPM_BUILD_ROOT%{bash_compdir}
584 cp -p contrib/completion/git-completion.bash $RPM_BUILD_ROOT%{bash_compdir}/git
585
586 # Install git-prompt.sh
587 install -d $RPM_BUILD_ROOT%{_datadir}/%{name}/contrib/completion
588 cp -p contrib/completion/git-prompt.sh $RPM_BUILD_ROOT%{_datadir}/%{name}/contrib/completion
589
590 # Install bzr and hg remote helpers from contrib
591 install -p contrib/remote-helpers/git-remote-{bzr,hg} $RPM_BUILD_ROOT%{gitcoredir}
592
593 # gitweb
594 %{__mv} $RPM_BUILD_ROOT{%{appdir},%{cgibindir}}/gitweb.cgi
595 ln -s %{cgibindir}/gitweb.cgi $RPM_BUILD_ROOT%{appdir}/gitweb.cgi
596 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{webappdir}/gitweb.conf
597 cp -p %{SOURCE7} $RPM_BUILD_ROOT%{webappdir}/gitolite.pl
598 cp -p %{SOURCE2} $RPM_BUILD_ROOT%{webappdir}/apache.conf
599 cp -p %{SOURCE2} $RPM_BUILD_ROOT%{webappdir}/httpd.conf
600 cp -p %{SOURCE3} $RPM_BUILD_ROOT%{webappdir}/lighttpd.conf
601
602 # git-daemon related files
603 cp -p %{SOURCE4} $RPM_BUILD_ROOT/etc/sysconfig/git-daemon
604 cp -p %{SOURCE5} $RPM_BUILD_ROOT/etc/sysconfig/rc-inetd/git-daemon
605 install -p %{SOURCE6} $RPM_BUILD_ROOT/etc/rc.d/init.d/git-daemon
606
607 # paths cleanup
608 sed -e 's,@libdir@/git-core,%{gitcoredir},g' -i $RPM_BUILD_ROOT/etc/rc.d/init.d/git-daemon
609 sed -e 's,@libdir@/git-core,%{gitcoredir},g' -i $RPM_BUILD_ROOT/etc/sysconfig/rc-inetd/git-daemon
610
611 # same file, link
612 ln -sf git $RPM_BUILD_ROOT%{_bindir}/git-receive-pack
613 ln -sf git $RPM_BUILD_ROOT%{_bindir}/git-upload-archive
614 ln -sf ../..%{gitcoredir}/git-shell $RPM_BUILD_ROOT%{_bindir}/git-shell
615 ln -sf ../..%{gitcoredir}/git-upload-pack $RPM_BUILD_ROOT%{_bindir}/git-upload-pack
616 ln -sf ../..%{gitcoredir}/git $RPM_BUILD_ROOT%{_bindir}/git
617
618 # convert all hardlinks to symlinks, as rpm fails to calculate it properly
619 # requiring excessive free space when it may not be available
620 # https://bugs.launchpad.net/pld-linux/+bug/1176337
621 find $RPM_BUILD_ROOT%{gitcoredir} -samefile $RPM_BUILD_ROOT%{gitcoredir}/git > files
622 for f in $(cat files); do
623         f=${f#$RPM_BUILD_ROOT%{gitcoredir}/}
624         test $f = git && continue
625         ln -snf git $RPM_BUILD_ROOT%{gitcoredir}/$f
626 done
627
628 # few others
629 ln -snf git-gui $RPM_BUILD_ROOT%{gitcoredir}/git-citool
630 ln -snf git-remote-http $RPM_BUILD_ROOT%{gitcoredir}/git-remote-https
631 ln -snf git-remote-http $RPM_BUILD_ROOT%{gitcoredir}/git-remote-ftp
632 ln -snf git-remote-http $RPM_BUILD_ROOT%{gitcoredir}/git-remote-ftps
633
634 # remove unneeded files
635 %py_postclean
636
637 %{__mv} $RPM_BUILD_ROOT%{_localedir}/pt{_PT,}
638 %find_lang git
639
640 %clean
641 rm -rf $RPM_BUILD_ROOT
642
643 %post
644 if [ ! -f /etc/shells ]; then
645         echo "%{_bindir}/git-shell" >> /etc/shells
646 else
647         grep -q '^%{_bindir}/git-shell$' /etc/shells || echo "%{_bindir}/git-shell" >> /etc/shells
648 fi
649
650 %preun
651 if [ "$1" = "0" ]; then
652         umask 022
653         grep -v '^%{_bindir}/git-shell$' /etc/shells > /etc/shells.new
654         mv -f /etc/shells.new /etc/shells
655 fi
656
657 %post daemon-inetd
658 %service -q rc-inetd reload
659
660 %postun daemon-inetd
661 if [ "$1" = "0" ]; then
662         %service -q rc-inetd reload
663 fi
664
665 %post daemon-standalone
666 /sbin/chkconfig --add git-daemon
667 %service git-daemon restart "git-daemon"
668
669 %preun daemon-standalone
670 if [ "$1" = "0" ]; then
671         %service git-daemon stop
672         /sbin/chkconfig --del git-daemon
673 fi
674
675 %triggerin gitweb -- apache1 < 1.3.37-3, apache1-base
676 %webapp_register apache %{webapp}
677
678 %triggerun gitweb -- apache1 < 1.3.37-3, apache1-base
679 %webapp_unregister apache %{webapp}
680
681 %triggerin gitweb -- apache < 2.2.0, apache-base
682 %webapp_register httpd %{webapp}
683
684 %triggerun gitweb -- apache < 2.2.0, apache-base
685 %webapp_unregister httpd %{webapp}
686
687 %triggerin gitweb -- lighttpd
688 %webapp_register lighttpd %{webapp}
689
690 %triggerun gitweb -- lighttpd
691 %webapp_unregister lighttpd %{webapp}
692
693 %files -f git.lang
694 %defattr(644,root,root,755)
695 %doc README.md contrib-doc
696 %attr(755,root,root) %{_bindir}/git
697 %attr(755,root,root) %{_bindir}/git-receive-pack
698 %attr(755,root,root) %{_bindir}/git-shell
699 %attr(755,root,root) %{_bindir}/git-upload-archive
700 %attr(755,root,root) %{_bindir}/git-upload-pack
701 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}
702
703 %if %{with doc}
704 %{_mandir}/man1/git-*.1*
705 %exclude %{_mandir}/man1/git-archimport.1*
706 %exclude %{_mandir}/man1/git-svn.1*
707 %exclude %{_mandir}/man1/git-cvs*.1*
708 %exclude %{_mandir}/man1/git-imap-send.1*
709 %exclude %{_mandir}/man1/git-p4.1*
710 %exclude %{_mandir}/man1/git-send-email.1*
711 %{_mandir}/man1/git.1*
712 %{_mandir}/man5/gitattributes.5*
713 %{_mandir}/man5/githooks.5*
714 %{_mandir}/man5/gitignore.5*
715 %{_mandir}/man5/gitmailmap.5*
716 %{_mandir}/man5/gitmodules.5*
717 %{_mandir}/man5/gitrepository-layout.5*
718 %{_mandir}/man7/gitcli.7*
719 %{_mandir}/man7/gitcore-tutorial.7*
720 %{_mandir}/man7/gitcredentials.7*
721 %{_mandir}/man7/gitdiffcore.7*
722 %{_mandir}/man7/giteveryday.7*
723 %{_mandir}/man7/gitfaq.7*
724 %{_mandir}/man7/gitglossary.7*
725 %{_mandir}/man7/gitnamespaces.7*
726 %{_mandir}/man7/gitremote-helpers.7*
727 %{_mandir}/man7/gitrevisions.7*
728 %{_mandir}/man7/gitsubmodules.7*
729 %{_mandir}/man7/gittutorial-2.7*
730 %{_mandir}/man7/gittutorial.7*
731 %{_mandir}/man7/gitworkflows.7*
732 %endif
733
734 %dir %{gitcoredir}
735 %attr(755,root,root) %{gitcoredir}/*-*
736 %attr(755,root,root) %{gitcoredir}/git
737 %dir %{gitcoredir}/mergetools
738 %{gitcoredir}/mergetools/*
739
740 %{_datadir}/%{name}
741 %{_localstatedir}/lib/git
742
743 # subpackages
744 %exclude %{gitcoredir}/*email*
745 %exclude %{gitcoredir}/*p4*
746 %exclude %{gitcoredir}/git-archimport
747 %exclude %{gitcoredir}/git-citool
748 %exclude %{gitcoredir}/git-cvs*
749 %exclude %{gitcoredir}/git-gui
750 %exclude %{gitcoredir}/git-imap-send
751 %exclude %{gitcoredir}/git-instaweb
752 %exclude %{gitcoredir}/git-remote-bzr
753 %exclude %{gitcoredir}/git-remote-hg
754 %exclude %{gitcoredir}/git-svn
755 %exclude %{gitcoredir}/mergetools/p4merge
756 %if %{with gnome_keyring}
757 %exclude %{gitcoredir}/git-credential-gnome-keyring
758 %endif
759 %if %{with libsecret}
760 %exclude %{gitcoredir}/git-credential-libsecret
761 %endif
762
763 %if %{with doc}
764 %files doc
765 %defattr(644,root,root,755)
766 %doc Documentation/RelNotes*
767 %doc Documentation/*.html Documentation/howto Documentation/technical
768 %endif
769
770 %files daemon-inetd
771 %defattr(644,root,root,755)
772 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/rc-inetd/git-daemon
773
774 %files daemon-standalone
775 %defattr(644,root,root,755)
776 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/git-daemon
777 %attr(754,root, root) /etc/rc.d/init.d/git-daemon
778
779 %files devel
780 %defattr(644,root,root,755)
781 %{_includedir}/%{name}
782 %{_libdir}/libgit.a
783 %{_libdir}/libgit_xdiff.a
784
785 %if %{with tk}
786 %files gitk
787 %defattr(644,root,root,755)
788 %if %{with doc}
789 %{_mandir}/man1/gitk.1*
790 %endif
791 %attr(755,root,root) %{_bindir}/gitk
792 %dir %{_datadir}/gitk
793 %dir %{_datadir}/gitk/lib
794 %dir %{_datadir}/gitk/lib/msgs
795 %lang(bg) %{_datadir}/gitk/lib/msgs/bg.msg
796 %lang(ca) %{_datadir}/gitk/lib/msgs/ca.msg
797 %lang(de) %{_datadir}/gitk/lib/msgs/de.msg
798 %lang(es) %{_datadir}/gitk/lib/msgs/es.msg
799 %lang(fr) %{_datadir}/gitk/lib/msgs/fr.msg
800 %lang(hu) %{_datadir}/gitk/lib/msgs/hu.msg
801 %lang(it) %{_datadir}/gitk/lib/msgs/it.msg
802 %lang(ja) %{_datadir}/gitk/lib/msgs/ja.msg
803 %lang(pt_BR) %{_datadir}/gitk/lib/msgs/pt_br.msg
804 %lang(pt_PT) %{_datadir}/gitk/lib/msgs/pt_pt.msg
805 %lang(ru) %{_datadir}/gitk/lib/msgs/ru.msg
806 %lang(sv) %{_datadir}/gitk/lib/msgs/sv.msg
807 %lang(vi) %{_datadir}/gitk/lib/msgs/vi.msg
808 %lang(zh_CN) %{_datadir}/gitk/lib/msgs/zh_cn.msg
809 %endif
810
811 %files gitweb
812 %defattr(644,root,root,755)
813 %doc gitweb/{README,INSTALL}
814 %dir %{webappdir}
815 %config(noreplace) %verify(not md5 mtime size) %attr(640,root,root) %{webappdir}/apache.conf
816 %config(noreplace) %verify(not md5 mtime size) %attr(640,root,root) %{webappdir}/httpd.conf
817 %config(noreplace) %verify(not md5 mtime size) %attr(640,root,root) %{webappdir}/lighttpd.conf
818 %config(noreplace) %verify(not md5 mtime size) %attr(640,root,http) %{webappdir}/gitweb.conf
819 %config(noreplace) %verify(not md5 mtime size) %attr(640,root,http) %{webappdir}/gitolite.pl
820 %attr(755,root,root) %{cgibindir}/gitweb.cgi
821 %{appdir}
822 %attr(755,root,root) %{gitcoredir}/git-instaweb
823 %if %{with doc}
824 %{_mandir}/man1/gitweb.1*
825 %{_mandir}/man5/gitweb.conf.5*
826 %endif
827
828 %if %{with tk}
829 %files gui
830 %defattr(644,root,root,755)
831 %attr(755,root,root) %{gitcoredir}/git-citool
832 %attr(755,root,root) %{gitcoredir}/git-gui
833 %dir %{_datadir}/git-gui
834 %dir %{_datadir}/git-gui/lib
835 %dir %{_datadir}/git-gui/lib/msgs
836 %{_datadir}/git-gui/lib/git-gui.ico
837 %{_datadir}/git-gui/lib/tclIndex
838 %{_datadir}/git-gui/lib/*.js
839 %{_datadir}/git-gui/lib/*.tcl
840 %lang(bg) %{_datadir}/git-gui/lib/msgs/bg.msg
841 %lang(de) %{_datadir}/git-gui/lib/msgs/de.msg
842 %lang(el) %{_datadir}/git-gui/lib/msgs/el.msg
843 %lang(fr) %{_datadir}/git-gui/lib/msgs/fr.msg
844 %lang(hu) %{_datadir}/git-gui/lib/msgs/hu.msg
845 %lang(it) %{_datadir}/git-gui/lib/msgs/it.msg
846 %lang(ja) %{_datadir}/git-gui/lib/msgs/ja.msg
847 %lang(nb) %{_datadir}/git-gui/lib/msgs/nb.msg
848 %lang(pt) %{_datadir}/git-gui/lib/msgs/pt_pt.msg
849 %lang(pt_BR) %{_datadir}/git-gui/lib/msgs/pt_br.msg
850 %lang(ru) %{_datadir}/git-gui/lib/msgs/ru.msg
851 %lang(sv) %{_datadir}/git-gui/lib/msgs/sv.msg
852 %lang(vi) %{_datadir}/git-gui/lib/msgs/vi.msg
853 %lang(zh_CN) %{_datadir}/git-gui/lib/msgs/zh_cn.msg
854 %endif
855
856 %files arch
857 %defattr(644,root,root,755)
858 %attr(755,root,root) %{gitcoredir}/git-archimport
859 %if %{with doc}
860 %{_mandir}/man1/git-archimport.1*
861 %endif
862
863 %files bzr
864 %defattr(644,root,root,755)
865 %attr(755,root,root) %{gitcoredir}/git-remote-bzr
866
867 %files cvs
868 %defattr(644,root,root,755)
869 %attr(755,root,root) %{_bindir}/git-cvsserver
870 %attr(755,root,root) %{gitcoredir}/git-cvs*
871 %if %{with doc}
872 %{_mandir}/man1/git-cvs*.1*
873 %{_mandir}/man7/gitcvs-migration.7*
874 %endif
875
876 %files hg
877 %defattr(644,root,root,755)
878 %attr(755,root,root) %{gitcoredir}/git-remote-hg
879
880 %files p4
881 %defattr(644,root,root,755)
882 %attr(755,root,root) %{gitcoredir}/git-p4
883 %attr(755,root,root) %{gitcoredir}/mergetools/p4merge
884 %if %{with doc}
885 %{_mandir}/man1/git-p4.1*
886 %endif
887
888 %files svn
889 %defattr(644,root,root,755)
890 %attr(755,root,root) %{gitcoredir}/git-svn
891 %{perl_vendorlib}/Git/SVN
892 %{perl_vendorlib}/Git/SVN.pm
893 %if %{with doc}
894 %{_mandir}/man1/git-svn.1*
895 %endif
896
897 %files email
898 %defattr(644,root,root,755)
899 %attr(755,root,root) %{gitcoredir}/git-imap-send
900 %attr(755,root,root) %{gitcoredir}/git-send-email
901 %if %{with doc}
902 %{_mandir}/man1/git-imap-send.1*
903 %{_mandir}/man1/git-send-email.1*
904 %endif
905
906 %files -n bash-completion-git
907 %defattr(644,root,root,755)
908 %{bash_compdir}/git
909
910 %files -n perl-Git
911 %defattr(644,root,root,755)
912 %{perl_vendorlib}/Git.pm
913 %dir %{perl_vendorlib}/Git
914 %{perl_vendorlib}/Git/I18N.pm
915 %{perl_vendorlib}/Git/IndexInfo.pm
916 %{perl_vendorlib}/Git/LoadCPAN.pm
917 %{perl_vendorlib}/Git/Packet.pm
918 %dir %{perl_vendorlib}/Git/LoadCPAN
919 %{perl_vendorlib}/Git/LoadCPAN/Error.pm
920 %dir %{perl_vendorlib}/Git/LoadCPAN/Mail
921 %{perl_vendorlib}/Git/LoadCPAN/Mail/Address.pm
922 %{?with_doc:%{_mandir}/man3/Git.3pm*}
923
924 %if %{with gnome_keyring}
925 %files -n gnome-keyring-git-core
926 %defattr(644,root,root,755)
927 %attr(755,root,root) %{gitcoredir}/git-credential-gnome-keyring
928 %endif
929
930 %if %{with libsecret}
931 %files credential-libsecret
932 %defattr(644,root,root,755)
933 %attr(755,root,root) %{gitcoredir}/git-credential-libsecret
934 %endif
This page took 0.225926 seconds and 3 git commands to generate.