%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.8.5.4
+Version: 2.6.3
Release: 1
License: GPL v2
Group: Development/Tools
-Source0: http://git-core.googlecode.com/files/git-%{version}.tar.gz
-# Source0-md5: 25965b5973aae43848a4ba5ca91b6a52
+Source0: http://www.kernel.org/pub/software/scm/git/git-%{version}.tar.gz
+# Source0-md5: b711be7628a4a2c25f38d859ee81b423
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: python-devel
BuildRequires: rpm-perlprov >= 4.1-13
BuildRequires: rpm-pythonprov
-BuildRequires: rpmbuild(macros) >= 1.264
+BuildRequires: rpmbuild(macros) >= 1.673
BuildRequires: tcl
BuildRequires: zlib-devel
%if %{with doc}
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 bash_compdir %{_datadir}/bash-completion/completions
+%define gitcoredir %{_libdir}/%{name}
%description
"git" can mean anything, depending on your mood.
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.
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 Git
+Group: X11/Applications
+URL: http://git-scm.com/docs/gitcredentials.html
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 vim-syntax-gitcommit -l pl.UTF-8
-Ta wtyczka dostarcza podświetlanie składni dla treści commitów gita.
+%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}
%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}
GITWEB_FAVICON="/gitweb/git-favicon.png" \
V=1
+%{__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 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
+
# 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 -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
mv $RPM_BUILD_ROOT{%{appdir},%{cgibindir}}/gitweb.cgi
install -p contrib/gitview/gitview $RPM_BUILD_ROOT%{_bindir}
# 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
# 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
%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
%{_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(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/IndexInfo.pm
%{_mandir}/man3/Git*.3pm*
-%files -n vim-syntax-gitcommit
+%if %{with gnome_keyring}
+%files -n gnome-keyring-git-core
%defattr(644,root,root,755)
-%doc contrib/vim/README
-%{_datadir}/vim/vimfiles/syntax/gitcommit.vim
+%attr(755,root,root) %{gitcoredir}/git-credential-gnome-keyring
+%endif