#
# 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)
-#
+%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)
+
%include /usr/lib/rpm/macros.perl
-Summary: The stupid content tracker
-Summary(pl.UTF-8): Prymitywne narzędzie do śledzenia treści
+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.7.3.1
+Version: 1.8.0
Release: 1
License: GPL v2
Group: Development/Tools
-Source0: http://www.kernel.org/pub/software/scm/git/git-%{version}.tar.bz2
-# Source0-md5: 77e1611498919965fb65fd1f229ee155
+Source0: http://git-core.googlecode.com/files/git-%{version}.tar.gz
+# Source0-md5: 12f4d20f34ae37086d86dd3b9d037bba
Source1: %{name}-gitweb.conf
Source2: %{name}-gitweb-httpd.conf
-Source3: %{name}.sysconfig
-Source4: %{name}.inet
-Source5: %{name}.init
+Source3: %{name}-gitweb-lighttpd.conf
+Source4: %{name}.sysconfig
+Source5: %{name}.inet
+Source6: %{name}.init
Patch0: %{name}-tests.patch
-Patch1: %{name}-libcrypto.patch
+Patch1: %{name}-key-bindings.patch
+Patch2: %{name}-sysconfdir.patch
URL: http://git-scm.com/
-BuildRequires: autoconf
+BuildRequires: autoconf >= 2.59
BuildRequires: automake
BuildRequires: curl-devel
BuildRequires: expat-devel
BuildRequires: rpm-perlprov >= 4.1-13
BuildRequires: rpm-pythonprov
BuildRequires: rpmbuild(macros) >= 1.264
+BuildRequires: tcl
BuildRequires: zlib-devel
%if %{with doc}
BuildRequires: asciidoc >= 7.1.2-3
BuildRequires: cvs-gnu-client < 1.13
BuildRequires: cvs-gnu-client >= 1.12
%endif
-BuildRequires: pdksh >= 5.2.14-46
+%{?with_tests_svn:BuildRequires: subversion}
+Conflicts: pdksh < 5.2.14-46
%endif
Requires: coreutils
Requires: diffutils
Requires: grep
Requires: openssh-clients
Requires: perl-Error
+Requires: perl-Git = %{version}-%{release}
Requires: sed
Suggests: git-core-cvs
Suggests: git-core-svn
do uruchomienia git-daemona w trybie usługi samodzielnej.
%package devel
-Summary: Header files for git-core
-Summary(pl.UTF-8): Pliki nagłówkowe dla git-core
+Summary: Git library with header files
+Summary(pl.UTF-8): Biblioteka Gita oraz pliki nagłówkowe
Group: Development/Libraries
Requires: zlib-devel
%description devel
-Header files for git-core.
+Git library with header files.
%description devel -l pl.UTF-8
-Pliki nagłówkowe dla git-core.
+Biblioteka Gita oraz pliki nagłówkowe.
%package gitk
Summary: Tcl/Tk interface to the Git version control system
%package gitweb
Summary: Web frontend to git
-Summary(pl.UTF-8): Webowy frontend do git
+Summary(pl.UTF-8): Frontend WWW do gita
Group: Development/Tools
Requires: %{name} = %{version}-%{release}
Requires: webapps
+Requires: webserver(alias)
+Requires: webserver(cgi)
+Suggests: webserver(setenv)
%description gitweb
This package provides a web interface for browsing git repositories.
%package svn
Summary: Subversion support for Git
-Summary(pl.UTF-8): Obsługa Subversion dla 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 Git.
+Obsługa Subversion dla Gita.
%package cvs
Summary: CVS support for Git
-Summary(pl.UTF-8): Obsługa CVS dla Git
+Summary(pl.UTF-8): Obsługa CVS dla Gita
Group: Development/Tools
Requires: %{name} = %{version}-%{release}
Requires: cvsps >= 2.1-2
CVS support for Git.
%description cvs -l pl.UTF-8
-Obsługa CVS dla Git.
+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
Group: Development/Tools
Requires: %{name} = %{version}-%{release}
Requires: tla
%description arch
Git tools for importing Arch repositories.
+%description arch -l pl.UTF-8
+Narzędzia Gita do importowania repozytoriów Archa.
+
%package email
Summary: Git tools for sending email
+Summary(pl.UTF-8): Narzędzia Gita do wysyłania poczty
Group: Development/Tools
Requires: %{name} = %{version}-%{release}
%description email
Git tools for sending email.
+%description email -l pl.UTF-8
+Narzędzia Gita do wysyłania poczty.
+
%package -n bash-completion-git
Summary: bash-completion for git
Summary(pl.UTF-8): bashowe uzupełnianie nazw dla gita
Group: Applications/Shells
+Requires: %{name} = %{version}-%{release}
Requires: bash-completion
%description -n bash-completion-git
wykonania przy użyciu ogólnego interfejsu poleceń.
%package -n python-Git
-Summary: Python interface to the Git version control system
-Summary(pl.UTF-8): Pythonowy interfejs do systemu kontroli wersji Git
+Summary: Python Git remote helpers for non-git repositories
+Summary(pl.UTF-8): Pythonowe zdalne moduły pomocnicze dla repozytoriów niegitowych
Group: Development/Languages/Python
+Requires: %{name} = %{version}-%{release}
%description -n python-Git
-This module provides Python scripts easy way to interface the Git
-version control system.
+This package contains Python git_repote_helpers package - Git remote
+helpers for non-git repositories.
%description -n python-Git -l pl.UTF-8
-Ten moduł umożliwia skryptom Pythonowym współpracę z systemem kontroli
-wersji Git.
+Ten pakiet zawiera pakiet Pythona git_remote_helpers - zdalne moduły
+pomocnicze Gita dla repozytoriów niegitowych.
%package -n vim-syntax-gitcommit
Summary: Vim syntax: gitcommit
Summary(pl.UTF-8): Składnia dla Vima: gitcommit
Group: Applications/Editors/Vim
+Requires: %{name} = %{version}-%{release}
# for _vimdatadir existence
Requires: vim-rt >= 4:6.3.058-3
%setup -q -n git-%{version}
%patch0 -p1
%patch1 -p0
+%patch2 -p1
%build
%{__aclocal}
%{__autoconf}
%configure \
+ --sysconfdir=%{_sysconfdir}/git-core \
--with-openssl
echo "BLK_SHA1=1" >> config.mak
GITWEB_PROJECTROOT="/var/lib/git" \
GITWEB_CSS="/gitweb/gitweb.css" \
GITWEB_LOGO="/gitweb/git-logo.png" \
- GITWEB_FAVICON="/gitweb/git-favicon.png"
+ GITWEB_FAVICON="/gitweb/git-favicon.png" \
+ V=1
-# 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_doc:%{__make} -C Documentation V=1}
%if %{with tests}
%if %{without tests_cvs}
-rm t/t*cvs*.sh || :
+%{__rm} t/t*cvs*.sh || :
%endif
-%{__make} test
+%{!?with_tests_svn:GIT_SKIP_TESTS='t91??'} %{__make} test
%endif
%install
install -d $RPM_BUILD_ROOT{%{_includedir}/%{name}/xdiff,%{_localstatedir}/lib/git}
install -d $RPM_BUILD_ROOT{%{appdir},%{cgibindir},%{webappdir}}
install -d $RPM_BUILD_ROOT/etc/{sysconfig/rc-inetd,rc.d/init.d}
+install -d $RPM_BUILD_ROOT%{_sysconfdir}/%{name}
+cat << EOF > $RPM_BUILD_ROOT%{_sysconfdir}/git-core/gitconfig
+[init]
+ templatedir = %{_sysconfdir}/%{name}/templates
+EOF
%{__make} install \
INSTALLDIRS=vendor \
DESTDIR=$RPM_BUILD_ROOT
%endif
+# copy templates except sample hooks
+cp -a $RPM_BUILD_ROOT%{_datadir}/%{name}/templates $RPM_BUILD_ROOT%{_sysconfdir}/%{name}
+%{__rm} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/templates/hooks/*.sample
+
# header files and lib
-cp -a *.h $RPM_BUILD_ROOT%{_includedir}/%{name}
+cp -p *.h $RPM_BUILD_ROOT%{_includedir}/%{name}
cp -a compat $RPM_BUILD_ROOT%{_includedir}/%{name}
-cp -a xdiff/*.h $RPM_BUILD_ROOT%{_includedir}/%{name}/xdiff
-cp -a libgit.a $RPM_BUILD_ROOT%{_libdir}
-cp -a xdiff/lib.a $RPM_BUILD_ROOT%{_libdir}/libgit_xdiff.a
+cp -p xdiff/*.h $RPM_BUILD_ROOT%{_includedir}/%{name}/xdiff
+cp -p libgit.a $RPM_BUILD_ROOT%{_libdir}
+cp -p xdiff/lib.a $RPM_BUILD_ROOT%{_libdir}/libgit_xdiff.a
# bash completion
-install -d $RPM_BUILD_ROOT%{_sysconfdir}/bash_completion.d
-cp -a contrib/completion/git-completion.bash $RPM_BUILD_ROOT%{_sysconfdir}/bash_completion.d
+install -d $RPM_BUILD_ROOT/etc/bash_completion.d
+cp -p contrib/completion/git-completion.bash $RPM_BUILD_ROOT/etc/bash_completion.d
# vim syntax
install -d $RPM_BUILD_ROOT%{_datadir}/vim/vimfiles/syntax
EOF
# gitweb
-install -p gitweb/gitweb.cgi $RPM_BUILD_ROOT%{cgibindir}
-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
+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 %{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
# gitview
install -p contrib/gitview/gitview $RPM_BUILD_ROOT%{_bindir}
# git-daemon related files
-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
+cp -a %{SOURCE4} $RPM_BUILD_ROOT/etc/sysconfig/git-daemon
+cp -a %{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
sed -e 's,@libdir@,%{_libdir},g' -i $RPM_BUILD_ROOT/etc/rc.d/init.d/git-daemon
ln -f $RPM_BUILD_ROOT{%{_libdir}/%{name},%{_bindir}}/git-upload-pack
# remove unneeded files
-rm $RPM_BUILD_ROOT%{perl_archlib}/perllocal.pod
-rm $RPM_BUILD_ROOT%{perl_vendorarch}/auto/Git/.packlist
+%{__rm} $RPM_BUILD_ROOT%{perl_archlib}/perllocal.pod
+%{__rm} $RPM_BUILD_ROOT%{perl_vendorarch}/auto/Git/.packlist
%py_postclean
+mv $RPM_BUILD_ROOT%{_localedir}/pt{_PT,}
+%find_lang git
+
%clean
rm -rf $RPM_BUILD_ROOT
%triggerun gitweb -- apache < 2.2.0, apache-base
%webapp_unregister httpd %{webapp}
-%files
+%triggerin gitweb -- lighttpd
+%webapp_register lighttpd %{webapp}
+
+%triggerun gitweb -- lighttpd
+%webapp_unregister lighttpd %{webapp}
+
+%files -f git.lang
%defattr(644,root,root,755)
%doc README contrib
%attr(755,root,root) %{_bindir}/git
%attr(755,root,root) %{_bindir}/git-shell
%attr(755,root,root) %{_bindir}/git-upload-archive
%attr(755,root,root) %{_bindir}/git-upload-pack
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}
%if %{with doc}
%{_mandir}/man1/git-*.1*
+%exclude %{_mandir}/man1/git-archimport.1*
%exclude %{_mandir}/man1/git-svn.1*
%exclude %{_mandir}/man1/git-cvs*.1*
+%exclude %{_mandir}/man1/*email*.1*
+%exclude %{_mandir}/man1/git-remote-helpers.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/gitcredentials.7*
%{_mandir}/man7/gitdiffcore.7*
%{_mandir}/man7/gitglossary.7*
+%{_mandir}/man7/gitnamespaces.7*
%{_mandir}/man7/gitrevisions.7*
%{_mandir}/man7/gittutorial-2.7*
%{_mandir}/man7/gittutorial.7*
%dir %{_libdir}/%{name}
%attr(755,root,root) %{_libdir}/%{name}/*-*
%attr(755,root,root) %{_libdir}/%{name}/git
+%{_libdir}/%{name}/mergetools
%exclude %{_libdir}/%{name}/git-gui
%exclude %{_libdir}/%{name}/git-svn
%exclude %{_libdir}/%{name}/git-archimport
%exclude %{_libdir}/%{name}/git-cvs*
+%exclude %{_libdir}/%{name}/git-instaweb
+%exclude %{_libdir}/%{name}/git-remote-testgit
%exclude %{_libdir}/%{name}/*email*
%{_datadir}/%{name}
%files devel
%defattr(644,root,root,755)
-%{_includedir}/git-core
+%{_includedir}/%{name}
%{_libdir}/libgit.a
%{_libdir}/libgit_xdiff.a
%lang(hu) %{_datadir}/gitk/lib/msgs/hu.msg
%lang(it) %{_datadir}/gitk/lib/msgs/it.msg
%lang(ja) %{_datadir}/gitk/lib/msgs/ja.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
%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
%attr(755,root,root) %{cgibindir}/gitweb.cgi
%{appdir}
+%attr(755,root,root) %{_libdir}/%{name}/git-instaweb
+%if %{with doc}
+%{_mandir}/man1/gitweb.1*
+%{_mandir}/man5/gitweb.conf.5*
+%endif
%files gitview
%defattr(644,root,root,755)
%lang(it) %{_datadir}/git-gui/lib/msgs/it.msg
%lang(ja) %{_datadir}/git-gui/lib/msgs/ja.msg
%lang(nb) %{_datadir}/git-gui/lib/msgs/nb.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(zh_cn) %{_datadir}/git-gui/lib/msgs/zh_cn.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
+%{perl_vendorlib}/Git/SVN
+%{perl_vendorlib}/Git/SVN.pm
%if %{with doc}
%{_mandir}/man1/git-svn.1*
%endif
%files -n bash-completion-git
%defattr(644,root,root,755)
-%{_sysconfdir}/bash_completion.d/*
+/etc/bash_completion.d/git-completion.bash
%files -n perl-Git
%defattr(644,root,root,755)
%{perl_vendorlib}/Git.pm
-%{_mandir}/man3/Git.3pm*
+%dir %{perl_vendorlib}/Git
+%{perl_vendorlib}/Git/I18N.pm
+%{perl_vendorlib}/Git/IndexInfo.pm
+%{_mandir}/man3/Git*.3pm*
%files -n python-Git
%defattr(644,root,root,755)
-%{py_sitescriptdir}/git_remote_helpers*.egg-info
+%attr(755,root,root) %{_libdir}/%{name}/git-remote-testgit
%dir %{py_sitescriptdir}/git_remote_helpers
%{py_sitescriptdir}/git_remote_helpers/*.py[co]
%dir %{py_sitescriptdir}/git_remote_helpers/git
%{py_sitescriptdir}/git_remote_helpers/git/*.py[co]
+%if "%{py_ver}" > "2.4"
+%{py_sitescriptdir}/git_remote_helpers*.egg-info
+%endif
+%if %{with doc}
+%{_mandir}/man1/git-remote-helpers.1*
+%endif
%files -n vim-syntax-gitcommit
%defattr(644,root,root,755)
%doc contrib/vim/README
-%{_datadir}/vim/vimfiles/syntax/*.vim
+%{_datadir}/vim/vimfiles/syntax/gitcommit.vim