]> git.pld-linux.org Git - packages/git-core.git/blobdiff - git-core.spec
up to 2.17.1 (fixes CVE-2018-11233 CVE-2018-11235)
[packages/git-core.git] / git-core.spec
index 703539f365b6bce27ee46149d55ed10001eaecf4..b92f2d570d950521ff71873e6fe991dbc489165c 100644 (file)
@@ -6,6 +6,7 @@
 %bcond_without doc             # skip building/packaging docs/manuals (takes some time)
 %bcond_without pcre            # perl-compatible regexes support
 %bcond_without gnome_keyring   # build without gnome keyring support
+%bcond_without tk              # build without the Tcl/Tk interface
 
 # for AC: --without doc --without gnome_keyring --without tests
 
 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:       2.0.2
+Version:       2.17.1
 Release:       1
 License:       GPL v2
 Group:         Development/Tools
-Source0:       http://www.kernel.org/pub/software/scm/git/git-%{version}.tar.gz
-# Source0-md5: 83fd72ae57b7c01bcea3e2d616b40928
+Source0:       http://www.kernel.org/pub/software/scm/git/git-%{version}.tar.xz
+# Source0-md5: 5179245515c637357b4a134e8d4e9a6f
 Source1:       %{name}-gitweb.conf
 Source2:       %{name}-gitweb-httpd.conf
 Source3:       %{name}-gitweb-lighttpd.conf
@@ -26,30 +27,36 @@ 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
-Patch3:                cherry-picked-commitlog.patch
-Patch4:                %{name}-svn-exit-errors.patch
+Patch0:                %{name}-key-bindings.patch
+Patch1:                %{name}-sysconfdir.patch
+Patch2:                cherry-picked-commitlog.patch
 URL:           http://git-scm.com/
 BuildRequires: autoconf >= 2.59
 BuildRequires: automake
 BuildRequires: curl-devel
 BuildRequires: expat-devel
+%if "%{pld_release}" == "ac"
 BuildRequires: gettext-devel
+%else
+BuildRequires: gettext-tools
+%endif
 %if %{with gnome_keyring}
 BuildRequires: libgnome-keyring-devel
 BuildRequires: pkgconfig
 %endif
 BuildRequires: openssl-devel
-%{?with_pcre:BuildRequires:    pcre-devel}
+%{?with_pcre:BuildRequires:    pcre2-8-devel}
 BuildRequires: perl-Error > 0.15
+BuildRequires: perl-MailTools
 BuildRequires: perl-base
 BuildRequires: python-devel
 BuildRequires: rpm-perlprov >= 4.1-13
 BuildRequires: rpm-pythonprov
 BuildRequires: rpmbuild(macros) >= 1.673
-BuildRequires: tcl
+%if %{with tk}
+# wish
+BuildRequires: tk
+%endif
 BuildRequires: zlib-devel
 %if %{with doc}
 BuildRequires: asciidoc >= 7.1.2-3
@@ -62,16 +69,16 @@ BuildRequires:      xmlto
 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
 # git-sh-setup: sane_grep
 Requires:      grep
 # git-pull: printf
 Requires:      coreutils
-Requires:      openssh-clients
-Requires:      perl-Error
-Requires:      perl-Git = %{version}-%{release}
 Requires:      sed
 Suggests:      git-core-bzr
 Suggests:      git-core-cvs
@@ -79,18 +86,26 @@ Suggests:   git-core-hg
 Suggests:      git-core-p4
 Suggests:      git-core-svn
 Suggests:      less
+Suggests:      openssh-clients
+Suggests:      perl-Git = %{version}-%{release}
 Suggests:      rsync
+Obsoletes:     git-core-gitview
 Obsoletes:     python-Git
+Conflicts:     perl-Git < %{version}
 BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
 # html docs have links to txt files
 %define                _noautocompressdoc      *.txt
 
+# do not generate perl dependency, git add -p support is optional
+# skip dependency generation from templates
+%define                _noautoreqfiles %{_libexecdir}/%{name}/git-add--interactive %{_datadir}/%{name}/templates
+
 %define                webapp          gitweb
 %define                webappdir       %{_sysconfdir}/webapps/%{webapp}
 %define                appdir          %{_datadir}/%{webapp}
 %define                cgibindir       %{_prefix}/lib/cgi-bin
-%define                gitcoredir      %{_libdir}/%{name}
+%define                gitcoredir      %{_libexecdir}/%{name}
 
 %description
 "git" can mean anything, depending on your mood.
@@ -129,6 +144,9 @@ katalogu.
 Summary:       Documentation for git-core
 Summary(pl.UTF-8):     Dokumentacja do git-core
 Group:         Documentation
+%if "%{_rpmversion}" >= "5"
+BuildArch:     noarch
+%endif
 
 %description doc
 Documentation for git-core.
@@ -136,9 +154,6 @@ Documentation for git-core.
 %description doc -l pl.UTF-8
 Dokumentacja do git-core.
 
-%description doc -l fr.UTF-8
-Javadoc pour git-core.
-
 %package daemon-inetd
 Summary:       Files necessary to run git-daemon as an inetd service
 Summary(pl.UTF-8):     Pliki niezbędne do uruchomienia git-daemona w trybie usługi inetd
@@ -196,6 +211,9 @@ Summary(pl.UTF-8):  Napisany w Tcl/Tk interfejs do systemu kontroli wersji Git
 Group:         Development/Tools
 Requires:      %{name} = %{version}-%{release}
 Requires:      tk
+%if "%{_rpmversion}" >= "5"
+BuildArch:     noarch
+%endif
 
 %description gitk
 gitk displays changes in a repository or a selected set of commits.
@@ -233,23 +251,6 @@ This package provides a web interface for browsing git repositories.
 %description gitweb -l pl.UTF-8
 Pakiet ten dostarcza interfejs WWW do przeglądania repozytoriów gita.
 
-%package gitview
-Summary:       A GTK+ based repository browser for git
-Summary(pl.UTF-8):     Oparta na GTK+ przeglądarka repozytorium gita
-Group:         Development/Tools
-Requires:      %{name} = %{version}-%{release}
-Requires:      python >= 1:2.4
-Requires:      python-pycairo >= 1.0
-Requires:      python-pygobject
-Requires:      python-pygtk-gtk >= 2:2.8
-Suggests:      python-gnome-desktop-gtksourceview
-
-%description gitview
-A GTK+ based repository browser for git.
-
-%description gitview -l pl.UTF-8
-Oparta na GTK+ przeglądarka repozytorium gita.
-
 %package gui
 Summary:       Tcl/Tk interface to the Git version control system
 Summary(pl.UTF-8):     Napisany w Tcl/Tk interfejs do systemu kontroli wersji Git
@@ -362,6 +363,9 @@ Summary:    Git tools for sending email
 Summary(pl.UTF-8):     Narzędzia Gita do wysyłania poczty
 Group:         Development/Tools
 Requires:      %{name} = %{version}-%{release}
+Requires:      perl-Error
+Requires:      perl-MailTools
+Suggests:      perl-Net-SMTP-SSL
 
 %description email
 Git tools for sending email.
@@ -390,6 +394,9 @@ Summary:    Perl interface to the Git version control system
 Summary(pl.UTF-8):     Perlowy interfejs do systemu kontroli wersji Git
 Group:         Development/Languages/Perl
 Obsoletes:     perl-git-core
+%if "%{_rpmversion}" >= "5"
+BuildArch:     noarch
+%endif
 
 %description -n perl-Git
 This module provides Perl scripts easy way to interface the Git
@@ -428,31 +435,33 @@ Moduł trzeba zarejestrować poleceniem:
 
 %prep
 %setup -q -n git-%{version}
-%patch0 -p1
-%patch1 -p0
+%patch0 -p0
+%patch1 -p1
 %patch2 -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}
 %configure \
        --sysconfdir=%{_sysconfdir}/git-core \
-       %{?with_pcre:--with-libpcre} \
+       %{?with_pcre:--with-libpcre2} \
        --with-openssl
 
 echo "BLK_SHA1=1" >> config.mak
 
 %{__make} \
-       INSTALLDIRS=vendor \
        GITWEB_CONFIG="%{webappdir}/gitweb.conf" \
        GITWEB_PROJECTROOT="/var/lib/git" \
        GITWEB_CSS="/gitweb/gitweb.css" \
        GITWEB_LOGO="/gitweb/git-logo.png" \
        GITWEB_FAVICON="/gitweb/git-favicon.png" \
+       NO_PERL_CPAN_FALLBACKS=1 \
+       perllibdir=%{perl_vendorlib} \
        V=1
 
 %{__make} -C contrib/subtree
@@ -462,21 +471,27 @@ echo "BLK_SHA1=1" >> config.mak
 %endif
 
 %if %{with doc}
-%{__make} -C Documentation \
+%{__make} doc \
        MAN_BASE_URL=file://%{_docdir}/%{name}-doc-%{version}/ \
        V=1
 %endif
 
 %if %{with tests}
+# t5770 has multiple race conditions making it very unstable
+GIT_SKIP_TESTS=t5570
 %if %{without tests_cvs}
 %{__rm} t/t*cvs*.sh || :
 %endif
-%{!?with_tests_svn:GIT_SKIP_TESTS='t91??'} %{__make} test
+%if %{without tests_svn}
+GIT_SKIP_TESTS="$GIT_SKIP_TESTS t91??"
+%endif
+export GIT_SKIP_TESTS
+%{__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{%{_includedir}/%{name}/xdiff,%{_libdir},%{_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}
@@ -486,11 +501,12 @@ cat << EOF > $RPM_BUILD_ROOT%{_sysconfdir}/git-core/gitconfig
 EOF
 
 %{__make} install \
-       INSTALLDIRS=vendor \
-       DESTDIR=$RPM_BUILD_ROOT
+       DESTDIR=$RPM_BUILD_ROOT \
+       NO_PERL_CPAN_FALLBACKS=1 \
+       perllibdir=%{perl_vendorlib}
 
 %if %{with doc}
-%{__make} -C Documentation install \
+%{__make} install-doc \
        DESTDIR=$RPM_BUILD_ROOT
 %endif
 
@@ -513,14 +529,12 @@ cp -p {Makefile,config.mak,config.mak.autogen,config.mak.uname} $RPM_BUILD_ROOT%
        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}
-# Remove built binary files, otherwise they will be installed in doc
-%{__make} -C contrib/credential/gnome-keyring clean
 %endif
 
 # bash completion
@@ -543,27 +557,39 @@ 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 -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
-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{%{gitcoredir},%{_bindir}}/git-shell
-ln -f $RPM_BUILD_ROOT{%{gitcoredir},%{_bindir}}/git-upload-pack
+sed -e 's,@libdir@/git-core,%{gitcoredir},g' -i $RPM_BUILD_ROOT/etc/rc.d/init.d/git-daemon
+sed -e 's,@libdir@/git-core,%{gitcoredir},g' -i $RPM_BUILD_ROOT/etc/sysconfig/rc-inetd/git-daemon
+
+# same file, link
+ln -sf git $RPM_BUILD_ROOT%{_bindir}/git-receive-pack
+ln -sf git $RPM_BUILD_ROOT%{_bindir}/git-upload-archive
+ln -sf ../..%{gitcoredir}/git-shell $RPM_BUILD_ROOT%{_bindir}/git-shell
+ln -sf ../..%{gitcoredir}/git-upload-pack $RPM_BUILD_ROOT%{_bindir}/git-upload-pack
+ln -sf ../..%{gitcoredir}/git $RPM_BUILD_ROOT%{_bindir}/git
+
+# convert all hardlinks to symlinks, as rpm fails to calculate it properly
+# requiring excessive free space when it may not be available
+# https://bugs.launchpad.net/pld-linux/+bug/1176337
+find $RPM_BUILD_ROOT%{gitcoredir} -samefile $RPM_BUILD_ROOT%{gitcoredir}/git > files
+for f in $(cat files); do
+       f=${f#$RPM_BUILD_ROOT%{gitcoredir}/}
+       test $f = git && continue
+       ln -snf git $RPM_BUILD_ROOT%{gitcoredir}/$f
+done
+
+# few others
+ln -snf git-gui $RPM_BUILD_ROOT%{gitcoredir}/git-citool
+ln -snf git-remote-http $RPM_BUILD_ROOT%{gitcoredir}/git-remote-https
+ln -snf git-remote-http $RPM_BUILD_ROOT%{gitcoredir}/git-remote-ftp
+ln -snf git-remote-http $RPM_BUILD_ROOT%{gitcoredir}/git-remote-ftps
 
 # remove unneeded files
-%{__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,}
@@ -610,7 +636,7 @@ fi
 
 %files -f git.lang
 %defattr(644,root,root,755)
-%doc README contrib
+%doc README.md contrib-doc
 %attr(755,root,root) %{_bindir}/git
 %attr(755,root,root) %{_bindir}/git-receive-pack
 %attr(755,root,root) %{_bindir}/git-shell
@@ -636,9 +662,11 @@ fi
 %{_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/gitsubmodules.7*
 %{_mandir}/man7/gittutorial-2.7*
 %{_mandir}/man7/gittutorial.7*
 %{_mandir}/man7/gitworkflows.7*
@@ -657,6 +685,7 @@ fi
 %exclude %{gitcoredir}/*email*
 %exclude %{gitcoredir}/*p4*
 %exclude %{gitcoredir}/git-archimport
+%exclude %{gitcoredir}/git-citool
 %exclude %{gitcoredir}/git-cvs*
 %exclude %{gitcoredir}/git-gui
 %exclude %{gitcoredir}/git-imap-send
@@ -692,6 +721,7 @@ fi
 %{_libdir}/libgit.a
 %{_libdir}/libgit_xdiff.a
 
+%if %{with tk}
 %files gitk
 %defattr(644,root,root,755)
 %if %{with doc}
@@ -702,6 +732,7 @@ fi
 %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
@@ -709,8 +740,11 @@ fi
 %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(pt_PT) %{_datadir}/gitk/lib/msgs/pt_pt.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
+%endif
 
 %files gitweb
 %defattr(644,root,root,755)
@@ -729,13 +763,10 @@ fi
 %{_mandir}/man5/gitweb.conf.5*
 %endif
 
-%files gitview
-%defattr(644,root,root,755)
-%doc contrib/gitview/gitview.txt
-%attr(755,root,root) %{_bindir}/gitview
-
+%if %{with tk}
 %files gui
 %defattr(644,root,root,755)
+%attr(755,root,root) %{gitcoredir}/git-citool
 %attr(755,root,root) %{gitcoredir}/git-gui
 %dir %{_datadir}/git-gui
 %dir %{_datadir}/git-gui/lib
@@ -752,10 +783,13 @@ fi
 %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(pt) %{_datadir}/git-gui/lib/msgs/pt_pt.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
+%endif
 
 %files arch
 %defattr(644,root,root,755)
@@ -815,7 +849,13 @@ fi
 %dir %{perl_vendorlib}/Git
 %{perl_vendorlib}/Git/I18N.pm
 %{perl_vendorlib}/Git/IndexInfo.pm
-%{_mandir}/man3/Git*.3pm*
+%{perl_vendorlib}/Git/LoadCPAN.pm
+%{perl_vendorlib}/Git/Packet.pm
+%dir %{perl_vendorlib}/Git/LoadCPAN
+%{perl_vendorlib}/Git/LoadCPAN/Error.pm
+%dir %{perl_vendorlib}/Git/LoadCPAN/Mail
+%{perl_vendorlib}/Git/LoadCPAN/Mail/Address.pm
+%{_mandir}/man3/Git.3pm*
 
 %if %{with gnome_keyring}
 %files -n gnome-keyring-git-core
This page took 0.039743 seconds and 4 git commands to generate.