#
# Conditional build:
%bcond_without tests # don't perform make test
+%bcond_with tests_cvs
%bcond_without doc # skip building/packaging docs/manuals (takes some time)
#
%include /usr/lib/rpm/macros.perl
Summary: The stupid content tracker
Summary(pl.UTF-8): Prymitywne narzędzie do śledzenia treści
Name: git-core
-Version: 1.6.1.3
+Version: 1.6.5.3
Release: 1
License: GPL v2
Group: Development/Tools
Source0: http://www.kernel.org/pub/software/scm/git/git-%{version}.tar.bz2
-# Source0-md5: e31ea5ce9b076f5745056f01465e9602
+# Source0-md5: a1dbc3da46cbf33c4367db689853c142
Source1: %{name}-gitweb.conf
Source2: %{name}-gitweb-httpd.conf
Source3: %{name}.sysconfig
Source4: %{name}.inet
Source5: %{name}.init
-URL: http://git.or.cz/
+URL: http://git-scm.com/
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: curl-devel
BuildRequires: expat-devel
BuildRequires: gettext-devel
BuildRequires: openssl-devel
-BuildRequires: perl-Error
+BuildRequires: perl-Error > 0.15
BuildRequires: perl-base
-BuildRequires: python
BuildRequires: rpm-perlprov >= 4.1-13
+BuildRequires: rpm-pythonprov
BuildRequires: rpmbuild(macros) >= 1.264
BuildRequires: zlib-devel
%if %{with doc}
BuildRequires: asciidoc >= 7.1.2-3
+BuildRequires: docbook-dtd45-xml
BuildRequires: xmlto
%endif
%if %{with tests}
+%if %{with tests_cvs}
# tests failed sometimes when using nserver/cvsnt client so enforce pure cvs here
-BuildRequires: cvs-gnu-client >= 1.12
BuildRequires: cvs-gnu-client < 1.13
+BuildRequires: cvs-gnu-client >= 1.12
+%endif
BuildRequires: pdksh >= 5.2.14-46
%endif
Requires: coreutils
-Requires: cvsps >= 2.1-2
Requires: diffutils
Requires: findutils
Requires: grep
Requires: openssh-clients
Requires: perl-Error
-Requires: rcs
Requires: sed
+Suggests: git-core-cvs
+Suggests: git-core-svn
+Suggests: less
+Suggests: rsync
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
# html docs have links to txt files
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 Git
+Group: Development/Tools
+Requires: %{name} = %{version}-%{release}
+
+%description svn
+Subversion support for Git.
+
+%description svn -l pl.UTF-8
+Obsługa Subversion dla Git.
+
+%package cvs
+Summary: CVS support for Git
+Summary(pl.UTF-8): Obsługa CVS dla Git
+Group: Development/Tools
+Requires: %{name} = %{version}-%{release}
+Requires: cvsps >= 2.1-2
+Requires: rcs
+
+%description cvs
+CVS support for Git.
+
+%description cvs -l pl.UTF-8
+Obsługa CVS dla Git.
+
+%package arch
+Summary: Git tools for importing Arch repositories
+Group: Development/Tools
+Requires: %{name} = %{version}-%{release}
+Requires: tla
+
+%description arch
+Git tools for importing Arch repositories.
+
+%package email
+Summary: Git tools for sending email
+Group: Development/Tools
+Requires: %{name} = %{version}-%{release}
+
+%description email
+Git tools for sending email.
+
%package -n bash-completion-git
Summary: bash-completion for git
Summary(pl.UTF-8): 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: %{name} = %{version}-%{release}
Obsoletes: perl-git-core
%description -n perl-Git
--with-openssl
%{__make} \
+ BLK_SHA1=1 \
INSTALLDIRS=vendor \
GITWEB_CONFIG="%{webappdir}/gitweb.conf" \
GITWEB_PROJECTROOT="/var/lib/git" \
GITWEB_LOGO="/gitweb/git-logo.png" \
GITWEB_FAVICON="/gitweb/git-favicon.png"
-%{?with_doc:%{__make} -C Documentation}
+# use DOCBOOK_XSL_172=1 to fix 'the ".ft C" problem' in generated manpages.
+%{?with_doc:%{__make} -C Documentation V=1 DOCBOOK_XSL_172=1}
-%{?with_tests:%{__make} test}
+%if %{with tests}
+%if %{without tests_cvs}
+rm t/t*cvs*.sh
+%endif
+%{__make} test
+%endif
%install
rm -rf $RPM_BUILD_ROOT
install -d $RPM_BUILD_ROOT{%{_includedir}/%{name}/xdiff,%{_localstatedir}/lib/git}
install -d $RPM_BUILD_ROOT{%{appdir},%{cgibindir},%{webappdir}}
-install -d $RPM_BUILD_ROOT%{_datadir}/vim/vimfiles/syntax
-install -d $RPM_BUILD_ROOT%{_sysconfdir}/bash_completion.d
install -d $RPM_BUILD_ROOT/etc/{sysconfig/rc-inetd,rc.d/init.d}
%{__make} install \
install xdiff/lib.a $RPM_BUILD_ROOT%{_libdir}/libgit_xdiff.a
# bash completion
-install contrib/completion/git-completion.bash $RPM_BUILD_ROOT%{_sysconfdir}/bash_completion.d
+install -d $RPM_BUILD_ROOT%{_sysconfdir}/bash_completion.d
+cp -a contrib/completion/git-completion.bash $RPM_BUILD_ROOT%{_sysconfdir}/bash_completion.d
# vim syntax
-cat > $RPM_BUILD_ROOT/%{_datadir}/vim/vimfiles/syntax/gitcommit.vim << 'EOF'
+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
EOF
# gitweb
-install gitweb/*.css gitweb/*.png $RPM_BUILD_ROOT%{appdir}
-install gitweb/gitweb.cgi $RPM_BUILD_ROOT%{cgibindir}
-install %{SOURCE1} $RPM_BUILD_ROOT%{webappdir}/gitweb.conf
-install %{SOURCE2} $RPM_BUILD_ROOT%{webappdir}/apache.conf
-install %{SOURCE2} $RPM_BUILD_ROOT%{webappdir}/httpd.conf
+install -p gitweb/gitweb.cgi $RPM_BUILD_ROOT%{cgibindir}
+cp -a gitweb/*.css gitweb/*.png $RPM_BUILD_ROOT%{appdir}
+cp -a %{SOURCE1} $RPM_BUILD_ROOT%{webappdir}/gitweb.conf
+cp -a %{SOURCE2} $RPM_BUILD_ROOT%{webappdir}/apache.conf
+cp -a %{SOURCE2} $RPM_BUILD_ROOT%{webappdir}/httpd.conf
# gitview
-install contrib/gitview/gitview $RPM_BUILD_ROOT%{_bindir}
+install -p contrib/gitview/gitview $RPM_BUILD_ROOT%{_bindir}
# git-daemon related files
-install %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/git-daemon
-install %{SOURCE4} $RPM_BUILD_ROOT/etc/sysconfig/rc-inetd/git-daemon
-install %{SOURCE5} $RPM_BUILD_ROOT/etc/rc.d/init.d/git-daemon
+cp -a %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/git-daemon
+cp -a %{SOURCE4} $RPM_BUILD_ROOT/etc/sysconfig/rc-inetd/git-daemon
+install -p %{SOURCE5} $RPM_BUILD_ROOT/etc/rc.d/init.d/git-daemon
# paths cleanup
-sed -e 's,@libdir@,%{_libdir},g' -i $RPM_BUILD_ROOT/etc/rc.d/init.d/git-daemon
+sed -e 's,@libdir@,%{_libdir},g' -i $RPM_BUILD_ROOT/etc/rc.d/init.d/git-daemon
sed -e 's,@libdir@,%{_libdir},g' -i $RPM_BUILD_ROOT/etc/sysconfig/rc-inetd/git-daemon
+# 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
+
# remove unneeded files
-rm -f $RPM_BUILD_ROOT%{perl_archlib}/perllocal.pod
-rm -f $RPM_BUILD_ROOT%{perl_vendorarch}/auto/Git/.packlist
-rm -f $RPM_BUILD_ROOT%{perl_vendorlib}/Error.pm
-rm -f $RPM_BUILD_ROOT%{_mandir}/man3/private-Error.3*
+rm $RPM_BUILD_ROOT%{perl_archlib}/perllocal.pod
+rm $RPM_BUILD_ROOT%{perl_vendorarch}/auto/Git/.packlist
%clean
rm -rf $RPM_BUILD_ROOT
%doc Documentation/RelNotes*
%doc Documentation/*.html Documentation/howto Documentation/technical
%{_mandir}/man1/git-*.1*
+%if 0
+# rpm doesn't support exclude for %%doc
+%exclude Documentation/*svn*.html
+%exclude Documentation/*git-cvs*.html
+%exclude Documentation/git-archimport.html
+%endif
+%exclude %{_mandir}/man1/git-svn.1*
+%exclude %{_mandir}/man1/git-cvs*.1*
%{_mandir}/man1/git.1*
%{_mandir}/man5/gitattributes.5*
%{_mandir}/man5/githooks.5*
%{_mandir}/man5/gitrepository-layout.5*
%{_mandir}/man7/gitcli.7*
%{_mandir}/man7/gitcore-tutorial.7*
-%{_mandir}/man7/gitcvs-migration.7*
%{_mandir}/man7/gitdiffcore.7*
%{_mandir}/man7/gitglossary.7*
%{_mandir}/man7/gittutorial-2.7*
%attr(755,root,root) %{_bindir}/git-*
%dir %{_libdir}/%{name}
%attr(755,root,root) %{_libdir}/%{name}/*-*
+%attr(755,root,root) %{_libdir}/%{name}/git
%exclude %{_libdir}/%{name}/git-gui
+%exclude %{_libdir}/%{name}/git-svn
+%exclude %{_libdir}/%{name}/git-archimport
+%exclude %{_libdir}/%{name}/git-cvs*
+%exclude %{_libdir}/%{name}/*email*
%{_datadir}/%{name}
%{_localstatedir}/lib/git
%lang(de) %{_datadir}/gitk/lib/msgs/de.msg
%lang(es) %{_datadir}/gitk/lib/msgs/es.msg
%lang(it) %{_datadir}/gitk/lib/msgs/it.msg
+%lang(ru) %{_datadir}/gitk/lib/msgs/ru.msg
%lang(sv) %{_datadir}/gitk/lib/msgs/sv.msg
%files gitweb
%lang(sv) %{_datadir}/git-gui/lib/msgs/sv.msg
%lang(zh_cn) %{_datadir}/git-gui/lib/msgs/zh_cn.msg
+%files svn
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/%{name}/git-svn
+%if %{with doc}
+%{_mandir}/man1/git-svn.1*
+%doc Documentation/*svn*.html
+%endif
+
+%files cvs
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/%{name}/git-cvs*
+%if %{with doc}
+%doc Documentation/*git-cvs*.html
+%{_mandir}/man1/git-cvs*.1*
+%{_mandir}/man7/gitcvs-migration.7*
+%endif
+
+%files arch
+%defattr(644,root,root,755)
+%doc Documentation/git-archimport.txt
+%attr(755,root,root) %{_libdir}/%{name}/git-archimport
+%if %{with doc}
+%doc Documentation/git-archimport.html
+%{_mandir}/man1/git-archimport.1*
+%endif
+
+%files email
+%defattr(644,root,root,755)
+%doc Documentation/*email*.txt
+%attr(755,root,root) %{_libdir}/%{name}/*email*
+%if %{with doc}
+%doc Documentation/*email*.html
+%{_mandir}/man1/*email*.1*
+%endif
+
%files -n bash-completion-git
%defattr(644,root,root,755)
%{_sysconfdir}/bash_completion.d/*
%files -n vim-syntax-gitcommit
%defattr(644,root,root,755)
%doc contrib/vim/README
-%{_datadir}/vim/vimfiles/syntax/*
+%{_datadir}/vim/vimfiles/syntax/*.vim