%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
%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.2
-Release: 1
+Version: 1.9.0
+Release: 3
License: GPL v2
Group: Development/Tools
Source0: http://git-core.googlecode.com/files/git-%{version}.tar.gz
-# Source0-md5: df8519044f9880f3687d863d99245282
+# Source0-md5: e16c14b27c644b8e0dd72bdb5ff77450
Source1: %{name}-gitweb.conf
Source2: %{name}-gitweb-httpd.conf
Source3: %{name}-gitweb-lighttpd.conf
Source4: %{name}.sysconfig
Source5: %{name}.inet
Source6: %{name}.init
+Source7: gitolite.pl
Patch0: %{name}-tests.patch
Patch1: %{name}-key-bindings.patch
Patch2: %{name}-sysconfdir.patch
BuildRequires: curl-devel
BuildRequires: expat-devel
BuildRequires: gettext-devel
+%{?with_gnome_keyring:BuildRequires: libgnome-keyring-devel}
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}
Requires: perl-Error
Requires: perl-Git = %{version}-%{release}
Requires: sed
+Suggests: git-core-bzr
Suggests: git-core-cvs
+Suggests: git-core-hg
+Suggests: git-core-p4
Suggests: git-core-svn
Suggests: less
Suggests: rsync
%define webappdir %{_sysconfdir}/webapps/%{webapp}
%define appdir %{_datadir}/%{webapp}
%define cgibindir %{_prefix}/lib/cgi-bin
-%define bash_compdir %{_datadir}/bash-completion/completions
%description
"git" can mean anything, depending on your mood.
osobnym repozytorium, ale z czasem został włączony do głównego
repozytorium gita.
-%package svn
-Summary: Subversion support for Git
-Summary(pl.UTF-8): Obsługa Subversion dla Gita
+%package arch
+Summary: Git tools for importing Arch repositories
+Summary(pl.UTF-8): Narzędzia Gita do importowania repozytoriów Archa
Group: Development/Tools
Requires: %{name} = %{version}-%{release}
-Requires: perl-Encode
-Requires: perl-Term-ReadKey
+Requires: tla
-%description svn
-Subversion support for Git.
+%description arch
+Git tools for importing Arch repositories.
-%description svn -l pl.UTF-8
-Obsługa Subversion dla Gita.
+%description arch -l pl.UTF-8
+Narzędzia Gita do importowania repozytoriów Archa.
+
+%package bzr
+Summary: Git tools for working with bzr repositories
+Summary(pl.UTF-8): Narzędzia Gita do pracy z repozytoriami bzr
+Group: Development/Tools
+Requires: %{name} = %{version}-%{release}
+Requires: bzr
+
+%description bzr
+Git tools for working with bzr repositories.
+
+%description bzr -l pl.UTF-8
+Narzędzia Gita do pracy z repozytoriami bzr.
%package cvs
Summary: CVS support for Git
%description cvs -l pl.UTF-8
Obsługa CVS dla Gita.
-%package arch
-Summary: Git tools for importing Arch repositories
-Summary(pl.UTF-8): Narzędzia Gita do importowania repozytoriów Archa
+%package hg
+Summary: Git tools for working with mercurial repositories
+Summary(pl.UTF-8): Narzędzia Gita do pracy z repozytoriami mercuriala
Group: Development/Tools
Requires: %{name} = %{version}-%{release}
-Requires: tla
+Requires: mercurial >= 1.8
-%description arch
-Git tools for importing Arch repositories.
+%description hg
+Git tools for working with mercurial repositories.
-%description arch -l pl.UTF-8
-Narzędzia Gita do importowania repozytoriów Archa.
+%description hg -l pl.UTF-8
+Narzędzia Gita do pracy z repozytoriami mercuriala.
+
+%package p4
+Summary: Git tools for working with Perforce depots
+Summary(pl.UTF-8): Narzędzia Gita do pracy z magazynami Perforce'a
+Group: Development/Tools
+Requires: %{name} = %{version}-%{release}
+
+%description p4
+Git tools for working with Perforce depots.
+
+%description p4 -l pl.UTF-8
+Narzędzia Gita do pracy z magazynami Perforce'a.
+
+%package svn
+Summary: Subversion support for Git
+Summary(pl.UTF-8): Obsługa Subversion dla Gita
+Group: Development/Tools
+Requires: %{name} = %{version}-%{release}
+Requires: perl-Encode
+Requires: perl-Term-ReadKey
+
+%description svn
+Subversion support for Git.
+
+%description svn -l pl.UTF-8
+Obsługa Subversion dla Gita.
%package email
Summary: Git tools for sending email
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
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.
-%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.
%prep
%setup -q -n git-%{version}
%patch3 -p1
%patch4 -p1
+%{__rm} {Documentation/technical,contrib/emacs,contrib/credential/gnome-keyring}/.gitignore
+
%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=%{_libdir}/%{name} \
+ DESTDIR=$RPM_BUILD_ROOT
+
+%if %{with doc}
+%{__make} -C contrib/subtree install-doc \
+ DESTDIR=$RPM_BUILD_ROOT
+%endif
+
+%if %{with gnome_keyring}
+install -p contrib/credential/gnome-keyring/git-credential-gnome-keyring $RPM_BUILD_ROOT%{_libdir}/%{name}
+# Remove built binary files, otherwise they will be installed in doc
+%{__make} -C contrib/credential/gnome-keyring clean
+%endif
+
# bash completion
install -d $RPM_BUILD_ROOT%{bash_compdir}
cp -p contrib/completion/git-completion.bash $RPM_BUILD_ROOT%{bash_compdir}/git
-# 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 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}
# gitweb
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
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
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
%dir %{_libdir}/%{name}
%attr(755,root,root) %{_libdir}/%{name}/*-*
%attr(755,root,root) %{_libdir}/%{name}/git
-%{_libdir}/%{name}/mergetools
+%dir %{_libdir}/%{name}/mergetools
+%{_libdir}/%{name}/mergetools/*
-%exclude %{_libdir}/%{name}/git-gui
-%exclude %{_libdir}/%{name}/git-svn
+%{_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}/*email*
-
-%{_datadir}/%{name}
-
-%{_localstatedir}/lib/git
+%exclude %{_libdir}/%{name}/git-svn
+%exclude %{_libdir}/%{name}/mergetools/p4merge
+%if %{with gnome_keyring}
+%exclude %{_libdir}/%{name}/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(de) %{_datadir}/gitk/lib/msgs/de.msg
%lang(es) %{_datadir}/gitk/lib/msgs/es.msg
%lang(fr) %{_datadir}/gitk/lib/msgs/fr.msg
%defattr(644,root,root,755)
%doc gitweb/{README,INSTALL}
%dir %{webappdir}
-%config(noreplace) %verify(not md5 mtime size) %attr(640,root,http) %{webappdir}/gitweb.conf
%config(noreplace) %verify(not md5 mtime size) %attr(640,root,root) %{webappdir}/apache.conf
%config(noreplace) %verify(not md5 mtime size) %attr(640,root,root) %{webappdir}/httpd.conf
%config(noreplace) %verify(not md5 mtime size) %attr(640,root,root) %{webappdir}/lighttpd.conf
+%config(noreplace) %verify(not md5 mtime size) %attr(640,root,http) %{webappdir}/gitweb.conf
+%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
%{_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(sv) %{_datadir}/git-gui/lib/msgs/sv.msg
%lang(zh_CN) %{_datadir}/git-gui/lib/msgs/zh_cn.msg
-%files svn
+%files arch
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/%{name}/git-svn
-%attr(755,root,root) %{_libdir}/%{name}/git-remote-testsvn
-%{perl_vendorlib}/Git/SVN
-%{perl_vendorlib}/Git/SVN.pm
+%attr(755,root,root) %{_libdir}/%{name}/git-archimport
%if %{with doc}
-%{_mandir}/man1/git-svn.1*
+%{_mandir}/man1/git-archimport.1*
%endif
+%files bzr
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/%{name}/git-remote-bzr
+
%files cvs
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/git-cvsserver
%{_mandir}/man7/gitcvs-migration.7*
%endif
-%files arch
+%files hg
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/%{name}/git-archimport
+%attr(755,root,root) %{_libdir}/%{name}/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
+
+%files svn
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/%{name}/git-svn
+%attr(755,root,root) %{_libdir}/%{name}/git-remote-testsvn
+%{perl_vendorlib}/Git/SVN
+%{perl_vendorlib}/Git/SVN.pm
%if %{with doc}
-%{_mandir}/man1/git-archimport.1*
+%{_mandir}/man1/git-svn.1*
%endif
%files email
%{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) %{_libdir}/%{name}/git-credential-gnome-keyring
+%endif