]> git.pld-linux.org Git - packages/git-core.git/blobdiff - git-core.spec
up to 2.33.0
[packages/git-core.git] / git-core.spec
index bfc3abd4276f959bd910cff9accbdd28dbf250c5..217bb80e4427d9b07c1ae9febf855055b3276dbe 100644 (file)
@@ -1,25 +1,25 @@
 #
 # 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 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   # build without gnome keyring support
-%bcond_without tk              # build without the Tcl/Tk interface
+%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
-Version:       2.14.1
+Version:       2.33.0
 Release:       1
 License:       GPL v2
 Group:         Development/Tools
-Source0:       http://www.kernel.org/pub/software/scm/git/git-%{version}.tar.xz
-# Source0-md5: a55bc6a2164d3ef1c3e5fc2f0c1d0d52
+Source0:       https://www.kernel.org/pub/software/scm/git/git-%{version}.tar.xz
+# Source0-md5: 0990ff97af1511be0d9f0d3223dd4359
 Source1:       %{name}-gitweb.conf
 Source2:       %{name}-gitweb-httpd.conf
 Source3:       %{name}-gitweb-lighttpd.conf
@@ -40,21 +40,32 @@ 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
-BuildRequires: pkgconfig
+%endif
+%if %{with libsecret}
+BuildRequires: libsecret-devel
 %endif
 BuildRequires: openssl-devel
 %{?with_pcre:BuildRequires:    pcre2-8-devel}
 BuildRequires: perl-Error > 0.15
+BuildRequires: perl-MailTools
 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: rpmbuild(macros) >= 1.673
+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}
@@ -63,6 +74,10 @@ BuildRequires:       docbook-dtd45-xml
 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
@@ -78,8 +93,6 @@ Conflicts:    pdksh < 5.2.14-46
 Requires:      grep
 # git-pull: printf
 Requires:      coreutils
-Requires:      perl-Error
-Requires:      perl-Git = %{version}-%{release}
 Requires:      sed
 Suggests:      git-core-bzr
 Suggests:      git-core-cvs
@@ -88,19 +101,25 @@ Suggests:  git-core-p4
 Suggests:      git-core-svn
 Suggests:      less
 Suggests:      openssh-clients
+Suggests:      perl-Git = %{version}-%{release}
 Suggests:      rsync
 Obsoletes:     git-core-gitview
 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
 
+# 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                gitcoredir      %{_libdir}/%{name}
+%define                gitcoredir      %{_libexecdir}/%{name}
 
 %description
 "git" can mean anything, depending on your mood.
@@ -139,9 +158,7 @@ katalogu.
 Summary:       Documentation for git-core
 Summary(pl.UTF-8):     Dokumentacja do git-core
 Group:         Documentation
-%if "%{_rpmversion}" >= "5"
 BuildArch:     noarch
-%endif
 
 %description doc
 Documentation for git-core.
@@ -158,9 +175,6 @@ Requires:   setup >= 2.4.11-1
 Provides:      git-core-daemon
 Obsoletes:     git-core-daemon
 Obsoletes:     git-core-daemon-standalone
-%if "%{_rpmversion}" >= "5"
-BuildArch:     noarch
-%endif
 
 %description daemon-inetd
 Git-daemon is a really simple TCP git daemon that can serve git
@@ -180,9 +194,6 @@ Requires:   %{name} = %{version}-%{release}
 Provides:      git-core-daemon
 Obsoletes:     git-core-daemon
 Obsoletes:     git-core-daemon-inetd
-%if "%{_rpmversion}" >= "5"
-BuildArch:     noarch
-%endif
 
 %description daemon-standalone
 Git-daemon is a really simple TCP git daemon that can serve git
@@ -212,9 +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
-%if "%{_rpmversion}" >= "5"
 BuildArch:     noarch
-%endif
 
 %description gitk
 gitk displays changes in a repository or a selected set of commits.
@@ -364,6 +373,8 @@ Summary:    Git tools for sending email
 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
@@ -378,9 +389,7 @@ Summary(pl.UTF-8):  bashowe uzupełnianie nazw dla gita
 Group:         Applications/Shells
 Requires:      %{name} = %{version}-%{release}
 Requires:      bash-completion >= 2.0
-%if "%{_rpmversion}" >= "5"
 BuildArch:     noarch
-%endif
 
 %description -n bash-completion-git
 This package provides bash-completion for git.
@@ -392,10 +401,9 @@ Pakiet ten dostarcza bashowe uzupełnianie nazw dla gita.
 Summary:       Perl interface to the Git version control system
 Summary(pl.UTF-8):     Perlowy interfejs do systemu kontroli wersji Git
 Group:         Development/Languages/Perl
+Requires:      perl-Error
 Obsoletes:     perl-git-core
-%if "%{_rpmversion}" >= "5"
 BuildArch:     noarch
-%endif
 
 %description -n perl-Git
 This module provides Perl scripts easy way to interface the Git
@@ -413,7 +421,7 @@ wykonania przy użyciu ogólnego interfejsu poleceń.
 
 %package -n gnome-keyring-git-core
 Summary:       GNOME Keyring authentication provider for Git
-Summary(pl.UTF-8):     Moduł uwierzytelniający GNOME Keyring dla 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}
@@ -426,23 +434,61 @@ 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 Subversion pozwalający klientom git
+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 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
+
+%package -n zsh-completion-git
+Summary:       Zsh completion for git command
+Summary(pl.UTF-8):     Dopełnianie parametrów komendy git dla powłoki zsh
+Group:         Applications/Shells
+Requires:      %{name} = %{version}-%{release}
+Requires:      bash-completion-git = %{version}-%{release}
+Requires:      zsh
+BuildArch:     noarch
+
+%description -n zsh-completion-git
+Zsh completion for git command.
+
+%description -n zsh-completion-git -l pl.UTF-8
+Dopełnianie parametrów komendy git dla powłoki zsh.
+
 %prep
 %setup -q -n git-%{version}
 %patch0 -p0
 %patch1 -p1
 %patch2 -p1
 
-%{__rm} {Documentation/technical,contrib/emacs,contrib/credential/gnome-keyring}/.gitignore
+%{__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}
@@ -454,22 +500,33 @@ cp -a contrib contrib-doc
 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" \
+       NO_PERL_CPAN_FALLBACKS=1 \
+       perllibdir=%{perl_vendorlib} \
        V=1
 
 %{__make} -C contrib/subtree
 
 %if %{with gnome_keyring}
-%{__make} -C contrib/credential/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}
-%{__make} -C Documentation \
+%{__make} doc \
        MAN_BASE_URL=file://%{_docdir}/%{name}-doc-%{version}/ \
        V=1
 %endif
@@ -478,12 +535,17 @@ echo "BLK_SHA1=1" >> config.mak
 %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
-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}
@@ -493,11 +555,12 @@ cat << EOF > $RPM_BUILD_ROOT%{_sysconfdir}/git-core/gitconfig
 EOF
 
 %{__make} install \
-       INSTALLDIRS=vendor \
-       DESTDIR=$RPM_BUILD_ROOT
+       DESTDIR=$RPM_BUILD_ROOT \
+       NO_PERL_CPAN_FALLBACKS=1 \
+       perllibdir=%{perl_vendorlib}
 
 %if %{with doc}
-%{__make} -C Documentation install \
+%{__make} install-doc \
        DESTDIR=$RPM_BUILD_ROOT
 %endif
 
@@ -528,9 +591,16 @@ cp -p {Makefile,config.mak,config.mak.autogen,config.mak.uname} $RPM_BUILD_ROOT%
 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
+install -d $RPM_BUILD_ROOT%{zsh_compdir}
+cp -p contrib/completion/git-completion.zsh $RPM_BUILD_ROOT%{zsh_compdir}/_git
+sed -i -e "1 a zstyle ':completion:*:*:git:*' script %{bash_compdir}/git" $RPM_BUILD_ROOT%{zsh_compdir}/_git
 
 # Install git-prompt.sh
 install -d $RPM_BUILD_ROOT%{_datadir}/%{name}/contrib/completion
@@ -540,7 +610,7 @@ cp -p contrib/completion/git-prompt.sh $RPM_BUILD_ROOT%{_datadir}/%{name}/contri
 install -p contrib/remote-helpers/git-remote-{bzr,hg} $RPM_BUILD_ROOT%{gitcoredir}
 
 # 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
@@ -581,16 +651,28 @@ 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
-%{__rm} $RPM_BUILD_ROOT%{perl_archlib}/perllocal.pod
-%{__rm} $RPM_BUILD_ROOT%{perl_vendorarch}/auto/Git/.packlist
 %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
 
+%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
 
@@ -642,13 +724,14 @@ fi
 %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/gitremote-helpers.1*
 %{_mandir}/man5/gitattributes.5*
 %{_mandir}/man5/githooks.5*
 %{_mandir}/man5/gitignore.5*
+%{_mandir}/man5/gitmailmap.5*
 %{_mandir}/man5/gitmodules.5*
 %{_mandir}/man5/gitrepository-layout.5*
 %{_mandir}/man7/gitcli.7*
@@ -656,8 +739,10 @@ fi
 %{_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/gitremote-helpers.7*
 %{_mandir}/man7/gitrevisions.7*
 %{_mandir}/man7/gitsubmodules.7*
 %{_mandir}/man7/gittutorial-2.7*
@@ -678,18 +763,21 @@ fi
 %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-remote-testsvn
 %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
@@ -736,6 +824,7 @@ fi
 %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
@@ -758,6 +847,7 @@ fi
 %if %{with tk}
 %files gui
 %defattr(644,root,root,755)
+%attr(755,root,root) %{gitcoredir}/git-citool
 %attr(755,root,root) %{gitcoredir}/git-gui
 %dir %{_datadir}/git-gui
 %dir %{_datadir}/git-gui/lib
@@ -810,30 +900,26 @@ fi
 %defattr(644,root,root,755)
 %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)
 %attr(755,root,root) %{gitcoredir}/git-svn
-%attr(755,root,root) %{gitcoredir}/git-remote-testsvn
 %{perl_vendorlib}/Git/SVN
 %{perl_vendorlib}/Git/SVN.pm
 %if %{with doc}
 %{_mandir}/man1/git-svn.1*
 %endif
-%{_mandir}/man3/Git::SVN::Editor.3pm*
-%{_mandir}/man3/Git::SVN::Fetcher.3pm*
-%{_mandir}/man3/Git::SVN::Memoize::YAML.3pm*
-%{_mandir}/man3/Git::SVN::Prompt.3pm*
-%{_mandir}/man3/Git::SVN::Ra.3pm*
-%{_mandir}/man3/Git::SVN::Utils.3pm*
 
 %files email
 %defattr(644,root,root,755)
 %attr(755,root,root) %{gitcoredir}/git-imap-send
-%attr(755,root,root) %{gitcoredir}/*email*
+%attr(755,root,root) %{gitcoredir}/git-send-email
 %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
@@ -846,11 +932,26 @@ fi
 %dir %{perl_vendorlib}/Git
 %{perl_vendorlib}/Git/I18N.pm
 %{perl_vendorlib}/Git/IndexInfo.pm
-%{_mandir}/man3/Git.3pm*
-%{_mandir}/man3/Git::I18N.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
+
+%if %{with libsecret}
+%files credential-libsecret
+%defattr(644,root,root,755)
+%attr(755,root,root) %{gitcoredir}/git-credential-libsecret
+%endif
+
+%files -n zsh-completion-git
+%defattr(644,root,root,755)
+%{zsh_compdir}/_git
This page took 0.070499 seconds and 4 git commands to generate.