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