]> git.pld-linux.org Git - packages/git-core.git/blobdiff - git-core.spec
up to 2.30.2 (fixes CVE-2021-21300)
[packages/git-core.git] / git-core.spec
index 67e76c0b2f2fa4f49a1c827a044c39d4d2cfe2bf..61354cc8f3053b9e73afa91f7d12db4cc6787960 100644 (file)
@@ -1,21 +1,25 @@
 #
 # Conditional build:
 #
 # Conditional build:
-%bcond_without tests           # don't perform make test
-%bcond_with    tests_cvs       # perform tests which use CVS
-%bcond_without tests_svn       # perform tests which use subversion
-%bcond_without doc             # skip building/packaging docs/manuals (takes some time)
-%bcond_without pcre            # perl-compatible regexes support
+%bcond_without tests           # test suite
+%bcond_with    tests_cvs       # tests which use CVS
+%bcond_without tests_svn       # tests which use subversion
+%bcond_without doc             # building/packaging docs/manuals (takes some time)
+%bcond_without pcre            # perl-compatible regexes support
+%bcond_without gnome_keyring   # gnome keyring credentials support
+%bcond_without libsecret       # libsecret credentials support
+%bcond_without tk              # Tcl/Tk interface
+
+# for AC: --without doc --without gnome_keyring --without tests
 
 
-%include       /usr/lib/rpm/macros.perl
 Summary:       Distributed version control system focused on speed, effectivity and usability
 Summary(pl.UTF-8):     Rozproszony system śledzenia treści skupiony na szybkości, wydajności i użyteczności
 Name:          git-core
 Summary:       Distributed version control system focused on speed, effectivity and usability
 Summary(pl.UTF-8):     Rozproszony system śledzenia treści skupiony na szybkości, wydajności i użyteczności
 Name:          git-core
-Version:       1.8.5.5
+Version:       2.30.2
 Release:       1
 License:       GPL v2
 Group:         Development/Tools
 Release:       1
 License:       GPL v2
 Group:         Development/Tools
-Source0:       http://git-core.googlecode.com/files/git-%{version}.tar.gz
-# Source0-md5: 55c3b57b9d168facbc681d9f7b9a0803
+Source0:       http://www.kernel.org/pub/software/scm/git/git-%{version}.tar.xz
+# Source0-md5: 53f3e1424598cd24eaf78588bcf90816
 Source1:       %{name}-gitweb.conf
 Source2:       %{name}-gitweb-httpd.conf
 Source3:       %{name}-gitweb-lighttpd.conf
 Source1:       %{name}-gitweb.conf
 Source2:       %{name}-gitweb-httpd.conf
 Source3:       %{name}-gitweb-lighttpd.conf
@@ -23,26 +27,46 @@ Source4:    %{name}.sysconfig
 Source5:       %{name}.inet
 Source6:       %{name}.init
 Source7:       gitolite.pl
 Source5:       %{name}.inet
 Source6:       %{name}.init
 Source7:       gitolite.pl
-Patch0:                %{name}-tests.patch
-Patch1:                %{name}-key-bindings.patch
-Patch2:                %{name}-sysconfdir.patch
-Patch3:                cherry-picked-commitlog.patch
-Patch4:                %{name}-svn-exit-errors.patch
+Patch0:                %{name}-key-bindings.patch
+Patch1:                %{name}-sysconfdir.patch
+Patch2:                cherry-picked-commitlog.patch
 URL:           http://git-scm.com/
 BuildRequires: autoconf >= 2.59
 BuildRequires: automake
 BuildRequires: curl-devel
 BuildRequires: expat-devel
 URL:           http://git-scm.com/
 BuildRequires: autoconf >= 2.59
 BuildRequires: automake
 BuildRequires: curl-devel
 BuildRequires: expat-devel
+%if "%{pld_release}" == "ac"
 BuildRequires: gettext-devel
 BuildRequires: gettext-devel
+%else
+BuildRequires: gettext-tools
+%endif
+%if %{with gnome_keyring} || %{with libsecret}
+BuildRequires: glib2-devel >= 2.0
+%endif
+%if %{with gnome_keyring}
+BuildRequires: libgnome-keyring-devel
+%endif
+%if %{with libsecret}
+BuildRequires: libsecret-devel
+%endif
 BuildRequires: openssl-devel
 BuildRequires: openssl-devel
-%{?with_pcre:BuildRequires:    pcre-devel}
+%{?with_pcre:BuildRequires:    pcre2-8-devel}
 BuildRequires: perl-Error > 0.15
 BuildRequires: perl-Error > 0.15
+BuildRequires: perl-MailTools
 BuildRequires: perl-base
 BuildRequires: perl-base
+%if %{with gnome_keyring} || %{with libsecret}
+BuildRequires: pkgconfig
+%endif
 BuildRequires: python-devel
 BuildRequires: rpm-perlprov >= 4.1-13
 BuildRequires: rpm-pythonprov
 BuildRequires: python-devel
 BuildRequires: rpm-perlprov >= 4.1-13
 BuildRequires: rpm-pythonprov
-BuildRequires: rpmbuild(macros) >= 1.264
-BuildRequires: tcl
+BuildRequires: rpmbuild(macros) >= 1.752
+BuildRequires: tar >= 1:1.22
+%if %{with tk}
+# wish
+BuildRequires: tk
+BuildRequires: xz
+%endif
 BuildRequires: zlib-devel
 %if %{with doc}
 BuildRequires: asciidoc >= 7.1.2-3
 BuildRequires: zlib-devel
 %if %{with doc}
 BuildRequires: asciidoc >= 7.1.2-3
@@ -50,21 +74,25 @@ BuildRequires:      docbook-dtd45-xml
 BuildRequires: xmlto
 %endif
 %if %{with tests}
 BuildRequires: xmlto
 %endif
 %if %{with tests}
+BuildRequires: perl-CGI
+BuildRequires: perl-Digest-MD5
+BuildRequires: perl-Encode
+BuildRequires: perl-Time-HiRes
 %if %{with tests_cvs}
 # tests failed sometimes when using nserver/cvsnt client so enforce pure cvs here
 BuildRequires: cvs-gnu-client < 1.13
 BuildRequires: cvs-gnu-client >= 1.12
 %endif
 %if %{with tests_cvs}
 # tests failed sometimes when using nserver/cvsnt client so enforce pure cvs here
 BuildRequires: cvs-gnu-client < 1.13
 BuildRequires: cvs-gnu-client >= 1.12
 %endif
-%{?with_tests_svn:BuildRequires:  subversion}
+%if %{with tests_svn}
+BuildRequires: perl-subversion
+BuildRequires: subversion
+%endif
 Conflicts:     pdksh < 5.2.14-46
 %endif
 Conflicts:     pdksh < 5.2.14-46
 %endif
-Requires:      coreutils
-Requires:      diffutils
-Requires:      findutils
+# git-sh-setup: sane_grep
 Requires:      grep
 Requires:      grep
-Requires:      openssh-clients
-Requires:      perl-Error
-Requires:      perl-Git = %{version}-%{release}
+# git-pull: printf
+Requires:      coreutils
 Requires:      sed
 Suggests:      git-core-bzr
 Suggests:      git-core-cvs
 Requires:      sed
 Suggests:      git-core-bzr
 Suggests:      git-core-cvs
@@ -72,18 +100,26 @@ Suggests:  git-core-hg
 Suggests:      git-core-p4
 Suggests:      git-core-svn
 Suggests:      less
 Suggests:      git-core-p4
 Suggests:      git-core-svn
 Suggests:      less
+Suggests:      openssh-clients
+Suggests:      perl-Git = %{version}-%{release}
 Suggests:      rsync
 Suggests:      rsync
+Obsoletes:     git-core-gitview
 Obsoletes:     python-Git
 Obsoletes:     python-Git
+Conflicts:     perl-Git < %{version}
 BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
 # html docs have links to txt files
 %define                _noautocompressdoc      *.txt
 
 BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
 # html docs have links to txt files
 %define                _noautocompressdoc      *.txt
 
+# do not generate perl dependency, git add -p support is optional
+# skip dependency generation from templates
+%define                _noautoreqfiles %{_libexecdir}/%{name}/git-add--interactive %{_datadir}/%{name}/templates
+
 %define                webapp          gitweb
 %define                webappdir       %{_sysconfdir}/webapps/%{webapp}
 %define                appdir          %{_datadir}/%{webapp}
 %define                cgibindir       %{_prefix}/lib/cgi-bin
 %define                webapp          gitweb
 %define                webappdir       %{_sysconfdir}/webapps/%{webapp}
 %define                appdir          %{_datadir}/%{webapp}
 %define                cgibindir       %{_prefix}/lib/cgi-bin
-%define                bash_compdir    %{_datadir}/bash-completion/completions
+%define                gitcoredir      %{_libexecdir}/%{name}
 
 %description
 "git" can mean anything, depending on your mood.
 
 %description
 "git" can mean anything, depending on your mood.
@@ -122,6 +158,7 @@ katalogu.
 Summary:       Documentation for git-core
 Summary(pl.UTF-8):     Dokumentacja do git-core
 Group:         Documentation
 Summary:       Documentation for git-core
 Summary(pl.UTF-8):     Dokumentacja do git-core
 Group:         Documentation
+BuildArch:     noarch
 
 %description doc
 Documentation for git-core.
 
 %description doc
 Documentation for git-core.
@@ -129,9 +166,6 @@ Documentation for git-core.
 %description doc -l pl.UTF-8
 Dokumentacja do git-core.
 
 %description doc -l pl.UTF-8
 Dokumentacja do git-core.
 
-%description doc -l fr.UTF-8
-Javadoc pour git-core.
-
 %package daemon-inetd
 Summary:       Files necessary to run git-daemon as an inetd service
 Summary(pl.UTF-8):     Pliki niezbędne do uruchomienia git-daemona w trybie usługi inetd
 %package daemon-inetd
 Summary:       Files necessary to run git-daemon as an inetd service
 Summary(pl.UTF-8):     Pliki niezbędne do uruchomienia git-daemona w trybie usługi inetd
@@ -189,6 +223,7 @@ Summary(pl.UTF-8):  Napisany w Tcl/Tk interfejs do systemu kontroli wersji Git
 Group:         Development/Tools
 Requires:      %{name} = %{version}-%{release}
 Requires:      tk
 Group:         Development/Tools
 Requires:      %{name} = %{version}-%{release}
 Requires:      tk
+BuildArch:     noarch
 
 %description gitk
 gitk displays changes in a repository or a selected set of commits.
 
 %description gitk
 gitk displays changes in a repository or a selected set of commits.
@@ -226,23 +261,6 @@ This package provides a web interface for browsing git repositories.
 %description gitweb -l pl.UTF-8
 Pakiet ten dostarcza interfejs WWW do przeglądania repozytoriów gita.
 
 %description gitweb -l pl.UTF-8
 Pakiet ten dostarcza interfejs WWW do przeglądania repozytoriów gita.
 
-%package gitview
-Summary:       A GTK+ based repository browser for git
-Summary(pl.UTF-8):     Oparta na GTK+ przeglądarka repozytorium gita
-Group:         Development/Tools
-Requires:      %{name} = %{version}-%{release}
-Requires:      python >= 1:2.4
-Requires:      python-pycairo >= 1.0
-Requires:      python-pygobject
-Requires:      python-pygtk-gtk >= 2:2.8
-Suggests:      python-gnome-desktop-gtksourceview
-
-%description gitview
-A GTK+ based repository browser for git.
-
-%description gitview -l pl.UTF-8
-Oparta na GTK+ przeglądarka repozytorium gita.
-
 %package gui
 Summary:       Tcl/Tk interface to the Git version control system
 Summary(pl.UTF-8):     Napisany w Tcl/Tk interfejs do systemu kontroli wersji Git
 %package gui
 Summary:       Tcl/Tk interface to the Git version control system
 Summary(pl.UTF-8):     Napisany w Tcl/Tk interfejs do systemu kontroli wersji Git
@@ -355,6 +373,9 @@ Summary:    Git tools for sending email
 Summary(pl.UTF-8):     Narzędzia Gita do wysyłania poczty
 Group:         Development/Tools
 Requires:      %{name} = %{version}-%{release}
 Summary(pl.UTF-8):     Narzędzia Gita do wysyłania poczty
 Group:         Development/Tools
 Requires:      %{name} = %{version}-%{release}
+Requires:      perl-Error
+Requires:      perl-MailTools
+Suggests:      perl-Net-SMTP-SSL
 
 %description email
 Git tools for sending email.
 
 %description email
 Git tools for sending email.
@@ -368,6 +389,7 @@ Summary(pl.UTF-8):  bashowe uzupełnianie nazw dla gita
 Group:         Applications/Shells
 Requires:      %{name} = %{version}-%{release}
 Requires:      bash-completion >= 2.0
 Group:         Applications/Shells
 Requires:      %{name} = %{version}-%{release}
 Requires:      bash-completion >= 2.0
+BuildArch:     noarch
 
 %description -n bash-completion-git
 This package provides bash-completion for git.
 
 %description -n bash-completion-git
 This package provides bash-completion for git.
@@ -380,6 +402,7 @@ Summary:    Perl interface to the Git version control system
 Summary(pl.UTF-8):     Perlowy interfejs do systemu kontroli wersji Git
 Group:         Development/Languages/Perl
 Obsoletes:     perl-git-core
 Summary(pl.UTF-8):     Perlowy interfejs do systemu kontroli wersji Git
 Group:         Development/Languages/Perl
 Obsoletes:     perl-git-core
+BuildArch:     noarch
 
 %description -n perl-Git
 This module provides Perl scripts easy way to interface the Git
 
 %description -n perl-Git
 This module provides Perl scripts easy way to interface the Git
@@ -395,49 +418,99 @@ dowolne polecenia Gita; w przyszłości interfejs udostępni także
 specjalne metody do łatwego wykonywania operacji nietrywialnych do
 wykonania przy użyciu ogólnego interfejsu poleceń.
 
 specjalne metody do łatwego wykonywania operacji nietrywialnych do
 wykonania przy użyciu ogólnego interfejsu poleceń.
 
-%package -n vim-syntax-gitcommit
-Summary:       Vim syntax: gitcommit
-Summary(pl.UTF-8):     Składnia dla Vima: gitcommit
-Group:         Applications/Editors/Vim
+%package -n gnome-keyring-git-core
+Summary:       GNOME Keyring authentication provider for Git
+Summary(pl.UTF-8):     Moduł uwierzytelniający GNOME Keyring dla Gita
+Group:         X11/Applications
+URL:           http://git-scm.com/docs/gitcredentials.html
 Requires:      %{name} = %{version}-%{release}
 Requires:      %{name} = %{version}-%{release}
-# for _vimdatadir existence
-Requires:      vim-rt >= 4:6.3.058-3
 
 
-%description -n vim-syntax-gitcommit
-This plugin provides syntax highlighting for git's commit messages.
+%description -n gnome-keyring-git-core
+Authentication provider module for Git which allows git client to
+authenticate using GNOME Keyring.
+
+You need to register it with:
+- git config --global credential.helper gnome-keyring
+
+%description -n gnome-keyring-git-core -l pl.UTF-8
+Moduł uwierzytelniający dla Gita pozwalający klientom git
+uwierzytelniać się przy użyciu mechanizmu GNOME Keyring.
+
+Moduł trzeba zarejestrować poleceniem:
+- git config --global credential.helper gnome-keyring
+
+%package credential-libsecret
+Summary:       GNOME authentication provider for Git using libsecret
+Summary(pl.UTF-8):     Moduł uwierzytelniający GNOME dla Gita wykorzystujący libsecret
+Group:         X11/Applications
+URL:           http://git-scm.com/docs/gitcredentials.html
+Requires:      %{name} = %{version}-%{release}
+
+%description credential-libsecret
+Authentication provider module for Git which allows git client to
+authenticate using GNOME libsecret.
+
+You need to register it with:
+- git config --global credential.helper libsecret
 
 
-%description -n vim-syntax-gitcommit -l pl.UTF-8
-Ta wtyczka dostarcza podświetlanie składni dla treści commitów gita.
+%description credential-libsecret -l pl.UTF-8
+Moduł uwierzytelniający dla Gita pozwalający klientom git
+uwierzytelniać się przy użyciu mechanizmu GNOME libsecret.
+
+Moduł trzeba zarejestrować poleceniem:
+- git config --global credential.helper libsecret
 
 %prep
 %setup -q -n git-%{version}
 
 %prep
 %setup -q -n git-%{version}
-%patch0 -p1
-%patch1 -p0
+%patch0 -p0
+%patch1 -p1
 %patch2 -p1
 %patch2 -p1
-%patch3 -p1
-%patch4 -p1
+
+%{__rm} {Documentation/technical,contrib/credential/gnome-keyring}/.gitignore
+
+# we build things in contrib but want to have it clean for doc purporses, too
+cp -a contrib contrib-doc
+
+%{__sed} -i -e '1s|#!/usr/bin/env python$|#!%{__python}|' git-p4.py
 
 %build
 %{__aclocal}
 %{__autoconf}
 %configure \
        --sysconfdir=%{_sysconfdir}/git-core \
 
 %build
 %{__aclocal}
 %{__autoconf}
 %configure \
        --sysconfdir=%{_sysconfdir}/git-core \
-       %{?with_pcre:--with-libpcre} \
+       %{?with_pcre:--with-libpcre2} \
        --with-openssl
 
 echo "BLK_SHA1=1" >> config.mak
 
 %{__make} \
        --with-openssl
 
 echo "BLK_SHA1=1" >> config.mak
 
 %{__make} \
-       INSTALLDIRS=vendor \
        GITWEB_CONFIG="%{webappdir}/gitweb.conf" \
        GITWEB_PROJECTROOT="/var/lib/git" \
        GITWEB_CSS="/gitweb/gitweb.css" \
        GITWEB_LOGO="/gitweb/git-logo.png" \
        GITWEB_FAVICON="/gitweb/git-favicon.png" \
        GITWEB_CONFIG="%{webappdir}/gitweb.conf" \
        GITWEB_PROJECTROOT="/var/lib/git" \
        GITWEB_CSS="/gitweb/gitweb.css" \
        GITWEB_LOGO="/gitweb/git-logo.png" \
        GITWEB_FAVICON="/gitweb/git-favicon.png" \
+       NO_PERL_CPAN_FALLBACKS=1 \
+       perllibdir=%{perl_vendorlib} \
        V=1
 
        V=1
 
+%{__make} -C contrib/subtree
+
+%if %{with gnome_keyring}
+%{__make} -C contrib/credential/gnome-keyring \
+       CC="%{__cc}" \
+       CFLAGS="%{rpmcflags} -Wall" \
+       LDFLAGS="%{rpmldflags}"
+%endif
+
+%if %{with libsecret}
+%{__make} -C contrib/credential/libsecret \
+       CC="%{__cc}" \
+       CFLAGS="%{rpmcflags} -Wall" \
+       LDFLAGS="%{rpmldflags}"
+%endif
+
 %if %{with doc}
 %if %{with doc}
-%{__make} -C Documentation \
+%{__make} doc \
        MAN_BASE_URL=file://%{_docdir}/%{name}-doc-%{version}/ \
        V=1
 %endif
        MAN_BASE_URL=file://%{_docdir}/%{name}-doc-%{version}/ \
        V=1
 %endif
@@ -446,12 +519,17 @@ echo "BLK_SHA1=1" >> config.mak
 %if %{without tests_cvs}
 %{__rm} t/t*cvs*.sh || :
 %endif
 %if %{without tests_cvs}
 %{__rm} t/t*cvs*.sh || :
 %endif
-%{!?with_tests_svn:GIT_SKIP_TESTS='t91??'} %{__make} test
+%if %{without tests_svn}
+GIT_SKIP_TESTS="$GIT_SKIP_TESTS t91??"
+%endif
+export GIT_SKIP_TESTS
+%{__make} test \
+       NO_PERL_CPAN_FALLBACKS=1
 %endif
 
 %install
 rm -rf $RPM_BUILD_ROOT
 %endif
 
 %install
 rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{%{_includedir}/%{name}/xdiff,%{_localstatedir}/lib/git}
+install -d $RPM_BUILD_ROOT{%{_includedir}/%{name}/xdiff,%{_libdir},%{_localstatedir}/lib/git}
 install -d $RPM_BUILD_ROOT{%{appdir},%{cgibindir},%{webappdir}}
 install -d $RPM_BUILD_ROOT/etc/{sysconfig/rc-inetd,rc.d/init.d}
 install -d $RPM_BUILD_ROOT%{_sysconfdir}/%{name}
 install -d $RPM_BUILD_ROOT{%{appdir},%{cgibindir},%{webappdir}}
 install -d $RPM_BUILD_ROOT/etc/{sysconfig/rc-inetd,rc.d/init.d}
 install -d $RPM_BUILD_ROOT%{_sysconfdir}/%{name}
@@ -461,11 +539,12 @@ cat << EOF > $RPM_BUILD_ROOT%{_sysconfdir}/git-core/gitconfig
 EOF
 
 %{__make} install \
 EOF
 
 %{__make} install \
-       INSTALLDIRS=vendor \
-       DESTDIR=$RPM_BUILD_ROOT
+       DESTDIR=$RPM_BUILD_ROOT \
+       NO_PERL_CPAN_FALLBACKS=1 \
+       perllibdir=%{perl_vendorlib}
 
 %if %{with doc}
 
 %if %{with doc}
-%{__make} -C Documentation install \
+%{__make} install-doc \
        DESTDIR=$RPM_BUILD_ROOT
 %endif
 
        DESTDIR=$RPM_BUILD_ROOT
 %endif
 
@@ -483,31 +562,36 @@ cp -p libgit.a $RPM_BUILD_ROOT%{_libdir}
 cp -p xdiff/lib.a $RPM_BUILD_ROOT%{_libdir}/libgit_xdiff.a
 cp -p {Makefile,config.mak,config.mak.autogen,config.mak.uname} $RPM_BUILD_ROOT%{_includedir}/%{name}
 
 cp -p xdiff/lib.a $RPM_BUILD_ROOT%{_libdir}/libgit_xdiff.a
 cp -p {Makefile,config.mak,config.mak.autogen,config.mak.uname} $RPM_BUILD_ROOT%{_includedir}/%{name}
 
+%{__make} -C contrib/subtree install \
+       libexecdir=%{gitcoredir} \
+       DESTDIR=$RPM_BUILD_ROOT
+
+%if %{with doc}
+%{__make} -C contrib/subtree install-man \
+       DESTDIR=$RPM_BUILD_ROOT
+%endif
+
+%if %{with gnome_keyring}
+install -p contrib/credential/gnome-keyring/git-credential-gnome-keyring $RPM_BUILD_ROOT%{gitcoredir}
+%endif
+
+%if %{with libsecret}
+install -p contrib/credential/libsecret/git-credential-libsecret $RPM_BUILD_ROOT%{gitcoredir}
+%endif
+
 # bash completion
 install -d $RPM_BUILD_ROOT%{bash_compdir}
 cp -p contrib/completion/git-completion.bash $RPM_BUILD_ROOT%{bash_compdir}/git
 
 # bash completion
 install -d $RPM_BUILD_ROOT%{bash_compdir}
 cp -p contrib/completion/git-completion.bash $RPM_BUILD_ROOT%{bash_compdir}/git
 
+# Install git-prompt.sh
+install -d $RPM_BUILD_ROOT%{_datadir}/%{name}/contrib/completion
+cp -p contrib/completion/git-prompt.sh $RPM_BUILD_ROOT%{_datadir}/%{name}/contrib/completion
+
 # Install bzr and hg remote helpers from contrib
 # Install bzr and hg remote helpers from contrib
-install -p contrib/remote-helpers/git-remote-{bzr,hg} $RPM_BUILD_ROOT%{_libdir}/%{name}
-
-# vim syntax
-install -d $RPM_BUILD_ROOT%{_datadir}/vim/vimfiles/syntax
-cat > $RPM_BUILD_ROOT%{_datadir}/vim/vimfiles/syntax/gitcommit.vim << 'EOF'
-autocmd BufNewFile,BufRead *.git/COMMIT_EDITMSG    setf gitcommit
-autocmd BufNewFile,BufRead *.git/config,.gitconfig setf gitconfig
-autocmd BufNewFile,BufRead git-rebase-todo         setf gitrebase
-autocmd BufNewFile,BufRead .msg.[0-9]*
-       \ if getline(1) =~ '^From.*# This line is ignored.$' |
-       \   setf gitsendemail |
-       \ endif
-autocmd BufNewFile,BufRead *.git/**
-       \ if getline(1) =~ '^\x\{40\}\>\|^ref: ' |
-       \   setf git |
-       \ endif
-EOF
+install -p contrib/remote-helpers/git-remote-{bzr,hg} $RPM_BUILD_ROOT%{gitcoredir}
 
 # gitweb
 
 # gitweb
-mv $RPM_BUILD_ROOT{%{appdir},%{cgibindir}}/gitweb.cgi
+%{__mv} $RPM_BUILD_ROOT{%{appdir},%{cgibindir}}/gitweb.cgi
 ln -s %{cgibindir}/gitweb.cgi $RPM_BUILD_ROOT%{appdir}/gitweb.cgi
 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{webappdir}/gitweb.conf
 cp -p %{SOURCE7} $RPM_BUILD_ROOT%{webappdir}/gitolite.pl
 ln -s %{cgibindir}/gitweb.cgi $RPM_BUILD_ROOT%{appdir}/gitweb.cgi
 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{webappdir}/gitweb.conf
 cp -p %{SOURCE7} $RPM_BUILD_ROOT%{webappdir}/gitolite.pl
@@ -515,35 +599,61 @@ cp -p %{SOURCE2} $RPM_BUILD_ROOT%{webappdir}/apache.conf
 cp -p %{SOURCE2} $RPM_BUILD_ROOT%{webappdir}/httpd.conf
 cp -p %{SOURCE3} $RPM_BUILD_ROOT%{webappdir}/lighttpd.conf
 
 cp -p %{SOURCE2} $RPM_BUILD_ROOT%{webappdir}/httpd.conf
 cp -p %{SOURCE3} $RPM_BUILD_ROOT%{webappdir}/lighttpd.conf
 
-# gitview
-install -p contrib/gitview/gitview $RPM_BUILD_ROOT%{_bindir}
-
 # git-daemon related files
 # git-daemon related files
-cp -a %{SOURCE4} $RPM_BUILD_ROOT/etc/sysconfig/git-daemon
-cp -a %{SOURCE5} $RPM_BUILD_ROOT/etc/sysconfig/rc-inetd/git-daemon
+cp -p %{SOURCE4} $RPM_BUILD_ROOT/etc/sysconfig/git-daemon
+cp -p %{SOURCE5} $RPM_BUILD_ROOT/etc/sysconfig/rc-inetd/git-daemon
 install -p %{SOURCE6} $RPM_BUILD_ROOT/etc/rc.d/init.d/git-daemon
 
 # paths cleanup
 install -p %{SOURCE6} $RPM_BUILD_ROOT/etc/rc.d/init.d/git-daemon
 
 # paths cleanup
-sed -e 's,@libdir@,%{_libdir},g' -i $RPM_BUILD_ROOT/etc/rc.d/init.d/git-daemon
-sed -e 's,@libdir@,%{_libdir},g' -i $RPM_BUILD_ROOT/etc/sysconfig/rc-inetd/git-daemon
-
-# hardlink
-ln -f $RPM_BUILD_ROOT%{_bindir}/{git,git-receive-pack}
-ln -f $RPM_BUILD_ROOT%{_bindir}/{git,git-upload-archive}
-ln -f $RPM_BUILD_ROOT{%{_libdir}/%{name},%{_bindir}}/git-shell
-ln -f $RPM_BUILD_ROOT{%{_libdir}/%{name},%{_bindir}}/git-upload-pack
+sed -e 's,@libdir@/git-core,%{gitcoredir},g' -i $RPM_BUILD_ROOT/etc/rc.d/init.d/git-daemon
+sed -e 's,@libdir@/git-core,%{gitcoredir},g' -i $RPM_BUILD_ROOT/etc/sysconfig/rc-inetd/git-daemon
+
+# same file, link
+ln -sf git $RPM_BUILD_ROOT%{_bindir}/git-receive-pack
+ln -sf git $RPM_BUILD_ROOT%{_bindir}/git-upload-archive
+ln -sf ../..%{gitcoredir}/git-shell $RPM_BUILD_ROOT%{_bindir}/git-shell
+ln -sf ../..%{gitcoredir}/git-upload-pack $RPM_BUILD_ROOT%{_bindir}/git-upload-pack
+ln -sf ../..%{gitcoredir}/git $RPM_BUILD_ROOT%{_bindir}/git
+
+# convert all hardlinks to symlinks, as rpm fails to calculate it properly
+# requiring excessive free space when it may not be available
+# https://bugs.launchpad.net/pld-linux/+bug/1176337
+find $RPM_BUILD_ROOT%{gitcoredir} -samefile $RPM_BUILD_ROOT%{gitcoredir}/git > files
+for f in $(cat files); do
+       f=${f#$RPM_BUILD_ROOT%{gitcoredir}/}
+       test $f = git && continue
+       ln -snf git $RPM_BUILD_ROOT%{gitcoredir}/$f
+done
+
+# few others
+ln -snf git-gui $RPM_BUILD_ROOT%{gitcoredir}/git-citool
+ln -snf git-remote-http $RPM_BUILD_ROOT%{gitcoredir}/git-remote-https
+ln -snf git-remote-http $RPM_BUILD_ROOT%{gitcoredir}/git-remote-ftp
+ln -snf git-remote-http $RPM_BUILD_ROOT%{gitcoredir}/git-remote-ftps
 
 # remove unneeded files
 
 # remove unneeded files
-%{__rm} $RPM_BUILD_ROOT%{perl_archlib}/perllocal.pod
-%{__rm} $RPM_BUILD_ROOT%{perl_vendorarch}/auto/Git/.packlist
 %py_postclean
 
 %py_postclean
 
-mv $RPM_BUILD_ROOT%{_localedir}/pt{_PT,}
+%{__mv} $RPM_BUILD_ROOT%{_localedir}/pt{_PT,}
 %find_lang git
 
 %clean
 rm -rf $RPM_BUILD_ROOT
 
 %find_lang git
 
 %clean
 rm -rf $RPM_BUILD_ROOT
 
+%post
+if [ ! -f /etc/shells ]; then
+       echo "%{_bindir}/git-shell" >> /etc/shells
+else
+       grep -q '^%{_bindir}/git-shell$' /etc/shells || echo "%{_bindir}/git-shell" >> /etc/shells
+fi
+
+%preun
+if [ "$1" = "0" ]; then
+       umask 022
+       grep -v '^%{_bindir}/git-shell$' /etc/shells > /etc/shells.new
+       mv -f /etc/shells.new /etc/shells
+fi
+
 %post daemon-inetd
 %service -q rc-inetd reload
 
 %post daemon-inetd
 %service -q rc-inetd reload
 
@@ -582,7 +692,7 @@ fi
 
 %files -f git.lang
 %defattr(644,root,root,755)
 
 %files -f git.lang
 %defattr(644,root,root,755)
-%doc README contrib
+%doc README.md contrib-doc
 %attr(755,root,root) %{_bindir}/git
 %attr(755,root,root) %{_bindir}/git-receive-pack
 %attr(755,root,root) %{_bindir}/git-shell
 %attr(755,root,root) %{_bindir}/git
 %attr(755,root,root) %{_bindir}/git-receive-pack
 %attr(755,root,root) %{_bindir}/git-shell
@@ -595,10 +705,10 @@ fi
 %exclude %{_mandir}/man1/git-archimport.1*
 %exclude %{_mandir}/man1/git-svn.1*
 %exclude %{_mandir}/man1/git-cvs*.1*
 %exclude %{_mandir}/man1/git-archimport.1*
 %exclude %{_mandir}/man1/git-svn.1*
 %exclude %{_mandir}/man1/git-cvs*.1*
-%exclude %{_mandir}/man1/git-imap-send*.1*
-%exclude %{_mandir}/man1/*email*.1*
+%exclude %{_mandir}/man1/git-imap-send.1*
+%exclude %{_mandir}/man1/git-p4.1*
+%exclude %{_mandir}/man1/git-send-email.1*
 %{_mandir}/man1/git.1*
 %{_mandir}/man1/git.1*
-%{_mandir}/man1/gitremote-helpers.1*
 %{_mandir}/man5/gitattributes.5*
 %{_mandir}/man5/githooks.5*
 %{_mandir}/man5/gitignore.5*
 %{_mandir}/man5/gitattributes.5*
 %{_mandir}/man5/githooks.5*
 %{_mandir}/man5/gitignore.5*
@@ -608,36 +718,46 @@ fi
 %{_mandir}/man7/gitcore-tutorial.7*
 %{_mandir}/man7/gitcredentials.7*
 %{_mandir}/man7/gitdiffcore.7*
 %{_mandir}/man7/gitcore-tutorial.7*
 %{_mandir}/man7/gitcredentials.7*
 %{_mandir}/man7/gitdiffcore.7*
+%{_mandir}/man7/giteveryday.7*
+%{_mandir}/man7/gitfaq.7*
 %{_mandir}/man7/gitglossary.7*
 %{_mandir}/man7/gitnamespaces.7*
 %{_mandir}/man7/gitglossary.7*
 %{_mandir}/man7/gitnamespaces.7*
+%{_mandir}/man7/gitremote-helpers.7*
 %{_mandir}/man7/gitrevisions.7*
 %{_mandir}/man7/gitrevisions.7*
+%{_mandir}/man7/gitsubmodules.7*
 %{_mandir}/man7/gittutorial-2.7*
 %{_mandir}/man7/gittutorial.7*
 %{_mandir}/man7/gitworkflows.7*
 %endif
 
 %{_mandir}/man7/gittutorial-2.7*
 %{_mandir}/man7/gittutorial.7*
 %{_mandir}/man7/gitworkflows.7*
 %endif
 
-%dir %{_libdir}/%{name}
-%attr(755,root,root) %{_libdir}/%{name}/*-*
-%attr(755,root,root) %{_libdir}/%{name}/git
-%dir %{_libdir}/%{name}/mergetools
-%{_libdir}/%{name}/mergetools/*
+%dir %{gitcoredir}
+%attr(755,root,root) %{gitcoredir}/*-*
+%attr(755,root,root) %{gitcoredir}/git
+%dir %{gitcoredir}/mergetools
+%{gitcoredir}/mergetools/*
 
 %{_datadir}/%{name}
 %{_localstatedir}/lib/git
 
 # subpackages
 
 %{_datadir}/%{name}
 %{_localstatedir}/lib/git
 
 # subpackages
-%exclude %{_libdir}/%{name}/*email*
-%exclude %{_libdir}/%{name}/*p4*
-%exclude %{_libdir}/%{name}/git-archimport
-%exclude %{_libdir}/%{name}/git-cvs*
-%exclude %{_libdir}/%{name}/git-gui
-%exclude %{_libdir}/%{name}/git-imap-send
-%exclude %{_libdir}/%{name}/git-instaweb
-%exclude %{_libdir}/%{name}/git-remote-bzr
-%exclude %{_libdir}/%{name}/git-remote-hg
-%exclude %{_libdir}/%{name}/git-remote-testsvn
-%exclude %{_libdir}/%{name}/git-svn
-%exclude %{_libdir}/%{name}/mergetools/p4merge
+%exclude %{gitcoredir}/*email*
+%exclude %{gitcoredir}/*p4*
+%exclude %{gitcoredir}/git-archimport
+%exclude %{gitcoredir}/git-citool
+%exclude %{gitcoredir}/git-cvs*
+%exclude %{gitcoredir}/git-gui
+%exclude %{gitcoredir}/git-imap-send
+%exclude %{gitcoredir}/git-instaweb
+%exclude %{gitcoredir}/git-remote-bzr
+%exclude %{gitcoredir}/git-remote-hg
+%exclude %{gitcoredir}/git-svn
+%exclude %{gitcoredir}/mergetools/p4merge
+%if %{with gnome_keyring}
+%exclude %{gitcoredir}/git-credential-gnome-keyring
+%endif
+%if %{with libsecret}
+%exclude %{gitcoredir}/git-credential-libsecret
+%endif
 
 %if %{with doc}
 %files doc
 
 %if %{with doc}
 %files doc
@@ -661,6 +781,7 @@ fi
 %{_libdir}/libgit.a
 %{_libdir}/libgit_xdiff.a
 
 %{_libdir}/libgit.a
 %{_libdir}/libgit_xdiff.a
 
+%if %{with tk}
 %files gitk
 %defattr(644,root,root,755)
 %if %{with doc}
 %files gitk
 %defattr(644,root,root,755)
 %if %{with doc}
@@ -670,6 +791,8 @@ fi
 %dir %{_datadir}/gitk
 %dir %{_datadir}/gitk/lib
 %dir %{_datadir}/gitk/lib/msgs
 %dir %{_datadir}/gitk
 %dir %{_datadir}/gitk/lib
 %dir %{_datadir}/gitk/lib/msgs
+%lang(bg) %{_datadir}/gitk/lib/msgs/bg.msg
+%lang(ca) %{_datadir}/gitk/lib/msgs/ca.msg
 %lang(de) %{_datadir}/gitk/lib/msgs/de.msg
 %lang(es) %{_datadir}/gitk/lib/msgs/es.msg
 %lang(fr) %{_datadir}/gitk/lib/msgs/fr.msg
 %lang(de) %{_datadir}/gitk/lib/msgs/de.msg
 %lang(es) %{_datadir}/gitk/lib/msgs/es.msg
 %lang(fr) %{_datadir}/gitk/lib/msgs/fr.msg
@@ -677,8 +800,12 @@ fi
 %lang(it) %{_datadir}/gitk/lib/msgs/it.msg
 %lang(ja) %{_datadir}/gitk/lib/msgs/ja.msg
 %lang(pt_BR) %{_datadir}/gitk/lib/msgs/pt_br.msg
 %lang(it) %{_datadir}/gitk/lib/msgs/it.msg
 %lang(ja) %{_datadir}/gitk/lib/msgs/ja.msg
 %lang(pt_BR) %{_datadir}/gitk/lib/msgs/pt_br.msg
+%lang(pt_PT) %{_datadir}/gitk/lib/msgs/pt_pt.msg
 %lang(ru) %{_datadir}/gitk/lib/msgs/ru.msg
 %lang(sv) %{_datadir}/gitk/lib/msgs/sv.msg
 %lang(ru) %{_datadir}/gitk/lib/msgs/ru.msg
 %lang(sv) %{_datadir}/gitk/lib/msgs/sv.msg
+%lang(vi) %{_datadir}/gitk/lib/msgs/vi.msg
+%lang(zh_CN) %{_datadir}/gitk/lib/msgs/zh_cn.msg
+%endif
 
 %files gitweb
 %defattr(644,root,root,755)
 
 %files gitweb
 %defattr(644,root,root,755)
@@ -691,20 +818,17 @@ fi
 %config(noreplace) %verify(not md5 mtime size) %attr(640,root,http) %{webappdir}/gitolite.pl
 %attr(755,root,root) %{cgibindir}/gitweb.cgi
 %{appdir}
 %config(noreplace) %verify(not md5 mtime size) %attr(640,root,http) %{webappdir}/gitolite.pl
 %attr(755,root,root) %{cgibindir}/gitweb.cgi
 %{appdir}
-%attr(755,root,root) %{_libdir}/%{name}/git-instaweb
+%attr(755,root,root) %{gitcoredir}/git-instaweb
 %if %{with doc}
 %{_mandir}/man1/gitweb.1*
 %{_mandir}/man5/gitweb.conf.5*
 %endif
 
 %if %{with doc}
 %{_mandir}/man1/gitweb.1*
 %{_mandir}/man5/gitweb.conf.5*
 %endif
 
-%files gitview
-%defattr(644,root,root,755)
-%doc contrib/gitview/gitview.txt
-%attr(755,root,root) %{_bindir}/gitview
-
+%if %{with tk}
 %files gui
 %defattr(644,root,root,755)
 %files gui
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/%{name}/git-gui
+%attr(755,root,root) %{gitcoredir}/git-citool
+%attr(755,root,root) %{gitcoredir}/git-gui
 %dir %{_datadir}/git-gui
 %dir %{_datadir}/git-gui/lib
 %dir %{_datadir}/git-gui/lib/msgs
 %dir %{_datadir}/git-gui
 %dir %{_datadir}/git-gui/lib
 %dir %{_datadir}/git-gui/lib/msgs
@@ -712,6 +836,7 @@ fi
 %{_datadir}/git-gui/lib/tclIndex
 %{_datadir}/git-gui/lib/*.js
 %{_datadir}/git-gui/lib/*.tcl
 %{_datadir}/git-gui/lib/tclIndex
 %{_datadir}/git-gui/lib/*.js
 %{_datadir}/git-gui/lib/*.tcl
+%lang(bg) %{_datadir}/git-gui/lib/msgs/bg.msg
 %lang(de) %{_datadir}/git-gui/lib/msgs/de.msg
 %lang(el) %{_datadir}/git-gui/lib/msgs/el.msg
 %lang(fr) %{_datadir}/git-gui/lib/msgs/fr.msg
 %lang(de) %{_datadir}/git-gui/lib/msgs/de.msg
 %lang(el) %{_datadir}/git-gui/lib/msgs/el.msg
 %lang(fr) %{_datadir}/git-gui/lib/msgs/fr.msg
@@ -719,26 +844,29 @@ fi
 %lang(it) %{_datadir}/git-gui/lib/msgs/it.msg
 %lang(ja) %{_datadir}/git-gui/lib/msgs/ja.msg
 %lang(nb) %{_datadir}/git-gui/lib/msgs/nb.msg
 %lang(it) %{_datadir}/git-gui/lib/msgs/it.msg
 %lang(ja) %{_datadir}/git-gui/lib/msgs/ja.msg
 %lang(nb) %{_datadir}/git-gui/lib/msgs/nb.msg
-%lang(pt_br) %{_datadir}/git-gui/lib/msgs/pt_br.msg
+%lang(pt) %{_datadir}/git-gui/lib/msgs/pt_pt.msg
+%lang(pt_BR) %{_datadir}/git-gui/lib/msgs/pt_br.msg
 %lang(ru) %{_datadir}/git-gui/lib/msgs/ru.msg
 %lang(sv) %{_datadir}/git-gui/lib/msgs/sv.msg
 %lang(ru) %{_datadir}/git-gui/lib/msgs/ru.msg
 %lang(sv) %{_datadir}/git-gui/lib/msgs/sv.msg
+%lang(vi) %{_datadir}/git-gui/lib/msgs/vi.msg
 %lang(zh_CN) %{_datadir}/git-gui/lib/msgs/zh_cn.msg
 %lang(zh_CN) %{_datadir}/git-gui/lib/msgs/zh_cn.msg
+%endif
 
 %files arch
 %defattr(644,root,root,755)
 
 %files arch
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/%{name}/git-archimport
+%attr(755,root,root) %{gitcoredir}/git-archimport
 %if %{with doc}
 %{_mandir}/man1/git-archimport.1*
 %endif
 
 %files bzr
 %defattr(644,root,root,755)
 %if %{with doc}
 %{_mandir}/man1/git-archimport.1*
 %endif
 
 %files bzr
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/%{name}/git-remote-bzr
+%attr(755,root,root) %{gitcoredir}/git-remote-bzr
 
 %files cvs
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_bindir}/git-cvsserver
 
 %files cvs
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_bindir}/git-cvsserver
-%attr(755,root,root) %{_libdir}/%{name}/git-cvs*
+%attr(755,root,root) %{gitcoredir}/git-cvs*
 %if %{with doc}
 %{_mandir}/man1/git-cvs*.1*
 %{_mandir}/man7/gitcvs-migration.7*
 %if %{with doc}
 %{_mandir}/man1/git-cvs*.1*
 %{_mandir}/man7/gitcvs-migration.7*
@@ -746,17 +874,19 @@ fi
 
 %files hg
 %defattr(644,root,root,755)
 
 %files hg
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/%{name}/git-remote-hg
+%attr(755,root,root) %{gitcoredir}/git-remote-hg
 
 %files p4
 %defattr(644,root,root,755)
 
 %files p4
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/%{name}/git-p4
-%attr(755,root,root) %{_libdir}/%{name}/mergetools/p4merge
+%attr(755,root,root) %{gitcoredir}/git-p4
+%attr(755,root,root) %{gitcoredir}/mergetools/p4merge
+%if %{with doc}
+%{_mandir}/man1/git-p4.1*
+%endif
 
 %files svn
 %defattr(644,root,root,755)
 
 %files svn
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/%{name}/git-svn
-%attr(755,root,root) %{_libdir}/%{name}/git-remote-testsvn
+%attr(755,root,root) %{gitcoredir}/git-svn
 %{perl_vendorlib}/Git/SVN
 %{perl_vendorlib}/Git/SVN.pm
 %if %{with doc}
 %{perl_vendorlib}/Git/SVN
 %{perl_vendorlib}/Git/SVN.pm
 %if %{with doc}
@@ -765,11 +895,11 @@ fi
 
 %files email
 %defattr(644,root,root,755)
 
 %files email
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/%{name}/git-imap-send
-%attr(755,root,root) %{_libdir}/%{name}/*email*
+%attr(755,root,root) %{gitcoredir}/git-imap-send
+%attr(755,root,root) %{gitcoredir}/git-send-email
 %if %{with doc}
 %if %{with doc}
-%{_mandir}/man1/*email*.1*
-%{_mandir}/man1/*imap-send*.1*
+%{_mandir}/man1/git-imap-send.1*
+%{_mandir}/man1/git-send-email.1*
 %endif
 
 %files -n bash-completion-git
 %endif
 
 %files -n bash-completion-git
@@ -782,9 +912,22 @@ fi
 %dir %{perl_vendorlib}/Git
 %{perl_vendorlib}/Git/I18N.pm
 %{perl_vendorlib}/Git/IndexInfo.pm
 %dir %{perl_vendorlib}/Git
 %{perl_vendorlib}/Git/I18N.pm
 %{perl_vendorlib}/Git/IndexInfo.pm
-%{_mandir}/man3/Git*.3pm*
+%{perl_vendorlib}/Git/LoadCPAN.pm
+%{perl_vendorlib}/Git/Packet.pm
+%dir %{perl_vendorlib}/Git/LoadCPAN
+%{perl_vendorlib}/Git/LoadCPAN/Error.pm
+%dir %{perl_vendorlib}/Git/LoadCPAN/Mail
+%{perl_vendorlib}/Git/LoadCPAN/Mail/Address.pm
+%{?with_doc:%{_mandir}/man3/Git.3pm*}
+
+%if %{with gnome_keyring}
+%files -n gnome-keyring-git-core
+%defattr(644,root,root,755)
+%attr(755,root,root) %{gitcoredir}/git-credential-gnome-keyring
+%endif
 
 
-%files -n vim-syntax-gitcommit
+%if %{with libsecret}
+%files credential-libsecret
 %defattr(644,root,root,755)
 %defattr(644,root,root,755)
-%doc contrib/vim/README
-%{_datadir}/vim/vimfiles/syntax/gitcommit.vim
+%attr(755,root,root) %{gitcoredir}/git-credential-libsecret
+%endif
This page took 0.093431 seconds and 4 git commands to generate.