%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 pcre # perl-compatible regexes support
+%bcond_without gnome_keyring # build without gnome keyring support
+
+# 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: 1.9.0
-Release: 2
+Version: 2.5.3
+Release: 1
License: GPL v2
Group: Development/Tools
-Source0: http://git-core.googlecode.com/files/git-%{version}.tar.gz
-# Source0-md5: e16c14b27c644b8e0dd72bdb5ff77450
+Source0: http://www.kernel.org/pub/software/scm/git/git-%{version}.tar.gz
+# Source0-md5: d908270e8a393169aa02d3ad9cf301ca
Source1: %{name}-gitweb.conf
Source2: %{name}-gitweb-httpd.conf
Source3: %{name}-gitweb-lighttpd.conf
BuildRequires: automake
BuildRequires: curl-devel
BuildRequires: expat-devel
-BuildRequires: gettext-devel
+BuildRequires: gettext-tools
+%if %{with gnome_keyring}
+BuildRequires: libgnome-keyring-devel
+BuildRequires: pkgconfig
+%endif
BuildRequires: openssl-devel
%{?with_pcre:BuildRequires: pcre-devel}
BuildRequires: perl-Error > 0.15
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
-Requires: coreutils
-Requires: diffutils
-Requires: findutils
+# git-sh-setup: sane_grep
Requires: grep
+# git-pull: printf
+Requires: coreutils
Requires: openssh-clients
Requires: perl-Error
Requires: perl-Git = %{version}-%{release}
%define webappdir %{_sysconfdir}/webapps/%{webapp}
%define appdir %{_datadir}/%{webapp}
%define cgibindir %{_prefix}/lib/cgi-bin
+%define gitcoredir %{_libdir}/%{name}
%description
"git" can mean anything, depending on your mood.
specjalne metody do łatwego wykonywania operacji nietrywialnych do
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
+Group: X11/Applications
+URL: http://git-scm.com/docs/gitcredentials.html
+Requires: %{name} = %{version}-%{release}
+
+%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 Subversion pozwalający klientom git
+uwierzytelniać się przy użyciu mechanizmu GNOME Keyring.
+
+Moduł trzeba zarejestrować poleceniem:
+- git config --global credential.helper gnome-keyring
+
%prep
%setup -q -n git-%{version}
%patch0 -p1
%patch3 -p1
%patch4 -p1
+%{__rm} {Documentation/technical,contrib/emacs,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
+
%build
%{__aclocal}
%{__autoconf}
%{__make} -C contrib/subtree
+%if %{with gnome_keyring}
+%{__make} -C contrib/credential/gnome-keyring
+%endif
+
%if %{with doc}
%{__make} -C Documentation \
MAN_BASE_URL=file://%{_docdir}/%{name}-doc-%{version}/ \
cp -p {Makefile,config.mak,config.mak.autogen,config.mak.uname} $RPM_BUILD_ROOT%{_includedir}/%{name}
%{__make} -C contrib/subtree install \
- libexecdir=%{_libdir}/%{name} \
+ libexecdir=%{gitcoredir} \
DESTDIR=$RPM_BUILD_ROOT
%if %{with doc}
-%{__make} -C contrib/subtree install-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
+
# bash completion
install -d $RPM_BUILD_ROOT%{bash_compdir}
cp -p contrib/completion/git-completion.bash $RPM_BUILD_ROOT%{bash_compdir}/git
cp -p contrib/completion/git-prompt.sh $RPM_BUILD_ROOT%{_datadir}/%{name}/contrib/completion
# Install bzr and hg remote helpers from contrib
-install -p contrib/remote-helpers/git-remote-{bzr,hg} $RPM_BUILD_ROOT%{_libdir}/%{name}
+install -p contrib/remote-helpers/git-remote-{bzr,hg} $RPM_BUILD_ROOT%{gitcoredir}
# gitweb
mv $RPM_BUILD_ROOT{%{appdir},%{cgibindir}}/gitweb.cgi
# 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
+ln -f $RPM_BUILD_ROOT{%{gitcoredir},%{_bindir}}/git-shell
+ln -f $RPM_BUILD_ROOT{%{gitcoredir},%{_bindir}}/git-upload-pack
# remove unneeded files
%{__rm} $RPM_BUILD_ROOT%{perl_archlib}/perllocal.pod
%files -f git.lang
%defattr(644,root,root,755)
-%doc README contrib
+%doc README contrib-doc
%attr(755,root,root) %{_bindir}/git
%attr(755,root,root) %{_bindir}/git-receive-pack
%attr(755,root,root) %{_bindir}/git-shell
%{_mandir}/man7/gitcore-tutorial.7*
%{_mandir}/man7/gitcredentials.7*
%{_mandir}/man7/gitdiffcore.7*
+%{_mandir}/man7/giteveryday.7*
%{_mandir}/man7/gitglossary.7*
%{_mandir}/man7/gitnamespaces.7*
%{_mandir}/man7/gitrevisions.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
-%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-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 doc}
%files doc
%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(pt_BR) %{_datadir}/gitk/lib/msgs/pt_br.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
%files gitweb
%defattr(644,root,root,755)
%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*
%files gui
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/%{name}/git-gui
+%attr(755,root,root) %{gitcoredir}/git-gui
%dir %{_datadir}/git-gui
%dir %{_datadir}/git-gui/lib
%dir %{_datadir}/git-gui/lib/msgs
%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(vi) %{_datadir}/git-gui/lib/msgs/vi.msg
%lang(zh_CN) %{_datadir}/git-gui/lib/msgs/zh_cn.msg
%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)
-%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
-%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*
%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)
-%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
%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
+%attr(755,root,root) %{gitcoredir}/git-remote-testsvn
%{perl_vendorlib}/Git/SVN
%{perl_vendorlib}/Git/SVN.pm
%if %{with doc}
%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}/*email*
%if %{with doc}
%{_mandir}/man1/*email*.1*
%{_mandir}/man1/*imap-send*.1*
%{perl_vendorlib}/Git/I18N.pm
%{perl_vendorlib}/Git/IndexInfo.pm
%{_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