#
# 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.19.2
+Version: 2.29.0
Release: 1
License: GPL v2
Group: Development/Tools
Source0: http://www.kernel.org/pub/software/scm/git/git-%{version}.tar.xz
-# Source0-md5: 88fc03d1cd69140647271f410a4ca4ca
+# Source0-md5: b07a283043e089dca8d2174d2654191b
Source1: %{name}-gitweb.conf
Source2: %{name}-gitweb-httpd.conf
Source3: %{name}-gitweb-lighttpd.conf
%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.745
%if %{with tk}
# wish
BuildRequires: tk
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
%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}
- 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
+
%prep
%setup -q -n git-%{version}
%patch0 -p0
# 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}
%{__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}
%endif
%if %{with tests}
-# t5770 has multiple race conditions making it very unstable
-GIT_SKIP_TESTS=t5570
%if %{without tests_cvs}
%{__rm} t/t*cvs*.sh || :
%endif
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 -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
# remove unneeded files
%py_postclean
-mv $RPM_BUILD_ROOT%{_localedir}/pt{_PT,}
+%{__mv} $RPM_BUILD_ROOT%{_localedir}/pt{_PT,}
%find_lang git
%clean
%exclude %{_mandir}/man1/git-imap-send*.1*
%exclude %{_mandir}/man1/*email*.1*
%{_mandir}/man1/git.1*
-%{_mandir}/man1/gitremote-helpers.1*
%{_mandir}/man5/gitattributes.5*
%{_mandir}/man5/githooks.5*
%{_mandir}/man5/gitignore.5*
%{_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*
%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
%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
%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}
%{perl_vendorlib}/Git/LoadCPAN/Error.pm
%dir %{perl_vendorlib}/Git/LoadCPAN/Mail
%{perl_vendorlib}/Git/LoadCPAN/Mail/Address.pm
-%{_mandir}/man3/Git.3pm*
+%{?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