337 lines
10 KiB
RPMSpec
337 lines
10 KiB
RPMSpec
%global gitexecdir %{_libexecdir}/git-core
|
|
Name: git
|
|
Version: 2.27.0
|
|
Release: 2
|
|
Summary: A popular and widely used Version Control System
|
|
License: GPLv2+ or LGPLv2.1
|
|
URL: https://git-scm.com/
|
|
Source0: https://www.kernel.org/pub/software/scm/git/%{name}-%{version}.tar.xz
|
|
Source1: https://www.kernel.org/pub/software/scm/git/%{name}-%{version}.tar.sign
|
|
|
|
Source100: git-gui.desktop
|
|
Source101: git@.service.in
|
|
Source102: git.socket
|
|
|
|
BuildRequires: openssl-devel libcurl-devel expat-devel systemd asciidoc xmlto glib2-devel libsecret-devel pcre-devel desktop-file-utils
|
|
BuildRequires: python3-devel perl-generators perl-interpreter perl-Error perl(Test::More) perl-MailTools perl(Test) gdb
|
|
Requires: less zlib openssh-clients perl(Term::ReadKey) perl-Git
|
|
Obsoletes: %{name}-core %{name}-core-doc %{name}-subtree %{name}-p4 git-cvs < %{version}-%{release}
|
|
Provides: %{name} <= %{version}-%{release} %{name}-core %{name}-subtree %{name}-p4
|
|
|
|
%description
|
|
Git is a free and open source distributed version control system
|
|
designed to handle everything from small to very large projects
|
|
with speed and efficiency.
|
|
Git is easy to learn and has a tiny footprint with lightning fast
|
|
performance. It outclasses SCM tools like Subversion, CVS, Perforce,
|
|
and ClearCase with features like cheap local branching, convenient
|
|
staging areas, and multiple workflows.
|
|
|
|
%package daemon
|
|
Summary: Git server daemon
|
|
Requires: %{name} = %{version}-%{release} systemd
|
|
|
|
%description daemon
|
|
%{summary}.
|
|
|
|
|
|
%package gui
|
|
Summary: Graphical user interface to Git
|
|
BuildArch: noarch
|
|
Requires: %{name} = %{version}-%{release} tk
|
|
|
|
%description gui
|
|
%{summary}.
|
|
|
|
|
|
%package -n gitk
|
|
Summary: TK based graphical tool for visualization of Git
|
|
BuildArch: noarch
|
|
Requires: %{name} = %{version}-%{release} tk
|
|
|
|
%description -n gitk
|
|
%{summary}.
|
|
|
|
|
|
%package web
|
|
Summary: Git web interfaces
|
|
BuildArch: noarch
|
|
Requires: %{name} = %{version}-%{release}
|
|
Obsoletes: gitweb %{name}-instaweb
|
|
Provides: gitweb %{name}-instaweb
|
|
|
|
%description web
|
|
Git web interface allows user browsing git repositories via web service.
|
|
|
|
%package svn
|
|
Summary: Git tools for importing Subversion repositories
|
|
BuildArch: noarch
|
|
Requires: %{name} = %{version}-%{release} subversion perl-TermReadKey perl-Digest-MD5
|
|
|
|
%description svn
|
|
%{summary}.
|
|
|
|
%package email
|
|
Summary: Git tools for sending patches via email
|
|
BuildArch: noarch
|
|
Requires: git = %{version}-%{release}
|
|
Requires: perl-Authen-SASL perl-Net-SMTP-SSL
|
|
|
|
%description email
|
|
%{summary}.
|
|
|
|
%package -n perl-Git
|
|
Summary: Perl interface to Git
|
|
BuildArch: noarch
|
|
Requires: git = %{version}-%{release} perl(:MODULE_COMPAT_%(perl -V:version | cut -d"'" -f 2))
|
|
|
|
%description -n perl-Git
|
|
%{summary}.
|
|
|
|
%package -n perl-Git-SVN
|
|
Summary: Perl interface to Git::SVN
|
|
BuildArch: noarch
|
|
Requires: git = %{version}-%{release} perl(:MODULE_COMPAT_%(perl -V:version | cut -d"'" -f 2))
|
|
|
|
%description -n perl-Git-SVN
|
|
%{summary}.
|
|
|
|
%package help
|
|
Summary: Man pages and documents for Git system
|
|
BuildArch: noarch
|
|
Obsoletes: %{name}-core-doc
|
|
Provides: %{name}-core-doc
|
|
|
|
%description help
|
|
%{summary}.
|
|
|
|
%prep
|
|
%autosetup -n %{name}-%{version} -p1
|
|
|
|
rm -rf perl/Git/LoadCPAN{.pm,/}
|
|
grep -rlZ '^use Git::LoadCPAN::' | xargs -r0 sed -i 's/Git::LoadCPAN:://g'
|
|
|
|
sed -i '/^git-cvs/d' command-list.txt
|
|
|
|
%build
|
|
%configure
|
|
|
|
# Some options can not configure in configure script, so give options here (config.mak included in Makefile)
|
|
cat > config.mak << EOF
|
|
CFLAGS = %{optflags}
|
|
LDFLAGS = %{__global_ldflags}
|
|
NEEDS_CRYPTO_WITH_SSL = 1
|
|
USE_LIBPCRE = 1
|
|
INSTALL_SYMLINKS = 1
|
|
GNU_ROFF = 1
|
|
GITWEB_PROJECTROOT = %{_localstatedir}/lib/git
|
|
PYTHON_PATH = %{__python3}
|
|
htmldir = %{?_pkgdocdir}
|
|
perllibdir = %{perl_vendorlib}
|
|
gitwebdir = %{_localstatedir}/www/git
|
|
NO_PERL_CPAN_FALLBACKS = 1
|
|
EOF
|
|
|
|
# Default using python3
|
|
sed -i '1s@#![ ]*/usr/bin/env python@#!%{__python3}@' \
|
|
contrib/hooks/multimail/git_multimail.py \
|
|
contrib/hooks/multimail/migrate-mailhook-config \
|
|
contrib/hooks/multimail/post-receive.example
|
|
|
|
%make_build
|
|
%make_build -C contrib/subtree/
|
|
%make_build -C contrib/contacts/
|
|
%make_build -C contrib/credential/libsecret/
|
|
%make_build -C contrib/credential/netrc/
|
|
%make_build -C contrib/diff-highlight/
|
|
|
|
%install
|
|
%make_install install-doc
|
|
%make_install -C contrib/subtree/ install-doc
|
|
%make_install -C contrib/contacts/ install-doc
|
|
|
|
install -p -m 644 README.md %{buildroot}%{_pkgdocdir}
|
|
install -p -m 644 gitweb/INSTALL %{buildroot}%{_pkgdocdir}/INSTALL.gitweb
|
|
install -p -m 644 gitweb/README %{buildroot}%{_pkgdocdir}/README.gitweb
|
|
|
|
#setup bash completion
|
|
install -Dpm 644 contrib/completion/git-completion.bash %{buildroot}%{_datadir}/bash-completion/completions/git
|
|
ln -s git %{buildroot}%{_datadir}/bash-completion/completions/gitk
|
|
|
|
# install contrib to git-core
|
|
mkdir -p %{buildroot}%{_datadir}/git-core/contrib/completion
|
|
mv contrib/hooks/multimail/git_multimail{.py,}
|
|
mv contrib/hooks %{buildroot}%{_datadir}/git-core/contrib
|
|
install -p -m 644 contrib/completion/git-completion.tcsh %{buildroot}%{_datadir}/git-core/contrib/completion/
|
|
install -p -m 644 contrib/completion/git-prompt.sh %{buildroot}%{_datadir}/git-core/contrib/completion/
|
|
install -D -p -m 0755 contrib/diff-highlight/diff-highlight %{buildroot}%{_datadir}/git-core/contrib/diff-highlight
|
|
|
|
# install root path for gitweb
|
|
mkdir -p %{buildroot}%{_localstatedir}/lib/git
|
|
|
|
# install config files
|
|
desktop-file-install --dir=%{buildroot}%{_datadir}/applications %{SOURCE100}
|
|
install -D -p -m 644 %{SOURCE101} %{buildroot}%{_unitdir}/git@.service
|
|
install -D -p -m 644 %{SOURCE102} %{buildroot}%{_unitdir}/git.socket
|
|
|
|
install -pm 755 contrib/credential/libsecret/git-credential-libsecret %{buildroot}%{gitexecdir}
|
|
install -pm 755 contrib/credential/netrc/git-credential-netrc %{buildroot}%{gitexecdir}
|
|
|
|
rm -f %{buildroot}%{_bindir}/git-cvsserver
|
|
rm -f %{buildroot}%{gitexecdir}/git-cvs*
|
|
|
|
%find_lang %{name}
|
|
cat %{name}.lang >> git-bin-files
|
|
|
|
# split out bin for primary package
|
|
(find %{buildroot}{%{_bindir},%{gitexecdir}} -type f -o -type l | grep -vE "git-(gui|daemon|cvs|svn|instaweb|citool|send-email)" | \
|
|
sed -e s@^%{buildroot}@@) >> git-bin-files
|
|
|
|
(find %{buildroot}%{perl_vendorlib} -type f | sed -e s@^%{buildroot}@@) > perl-git-files
|
|
(find %{buildroot}%{perl_vendorlib} -mindepth 1 -type d | sed -e 's@^%{buildroot}@%dir @') >> perl-git-files
|
|
# split out perl files for Git and Git::SVN
|
|
grep Git/SVN perl-git-files > perl-git-svn-files
|
|
sed -i "/Git\/SVN/ d" perl-git-files
|
|
|
|
%check
|
|
make test
|
|
|
|
%preun daemon
|
|
%systemd_preun git.socket
|
|
|
|
%post daemon
|
|
%systemd_post git.socket
|
|
|
|
%postun daemon
|
|
%systemd_postun_with_restart git.socket
|
|
|
|
%files -f git-bin-files
|
|
%defattr(-,root,root)
|
|
%{_datadir}/git-core/
|
|
%{_datadir}/bash-completion/completions
|
|
%doc README.md
|
|
%license LGPL-2.1 COPYING
|
|
|
|
%files daemon
|
|
%defattr(-,root,root)
|
|
%{_unitdir}/git.socket
|
|
%{_unitdir}/git@.service
|
|
%{gitexecdir}/git-daemon
|
|
%{_localstatedir}/lib/git
|
|
|
|
%files gui
|
|
%defattr(-,root,root)
|
|
%{_datadir}/applications/git-gui.desktop
|
|
%{gitexecdir}/git-gui*
|
|
%{gitexecdir}/git-citool
|
|
%{_datadir}/git-gui/
|
|
|
|
%files -n gitk
|
|
%defattr(-,root,root)
|
|
%{_bindir}/gitk
|
|
%{_datadir}/gitk/
|
|
|
|
%files web
|
|
%defattr(-,root,root)
|
|
%{_pkgdocdir}/*.gitweb
|
|
%{_localstatedir}/www/git/
|
|
%{gitexecdir}/git-instaweb
|
|
|
|
%files svn
|
|
%defattr(-,root,root)
|
|
%{gitexecdir}/git-svn
|
|
|
|
%files email
|
|
%defattr(-,root,root)
|
|
%{gitexecdir}/*email*
|
|
|
|
%files -n perl-Git -f perl-git-files
|
|
|
|
%files -n perl-Git-SVN -f perl-git-svn-files
|
|
|
|
%files help
|
|
%defattr(-,root,root)
|
|
%exclude %{_pkgdocdir}/{README.md,*.gitweb}
|
|
%{_pkgdocdir}/*
|
|
%{_mandir}/man1/git*.1.*
|
|
%{_mandir}/man3/Git.*
|
|
%{_mandir}/man5/git*.5.*
|
|
%{_mandir}/man7/git*.7.*
|
|
|
|
%changelog
|
|
* Fri Sep 25 2020 yang_zhuang_zhuang <yangzhuangzhuang1@huawei.com> - 2.27.0-2
|
|
- Type:bugfix
|
|
- ID:NA
|
|
- SUG:NA
|
|
- DESC:Resolved the problem that a failure message is displayed when the git-daemon package is uninstalled
|
|
|
|
* Tue Jul 28 2020 yang_zhuang_zhuang <yangzhuangzhuang1@huawei.com> - 2.27.0-1
|
|
- Type:enhancement
|
|
- ID:NA
|
|
- SUG:NA
|
|
- DESC:update version to 2.27.0
|
|
|
|
* Thu May 14 2020 gaihuiying <gaihuiying1@huawei.com> - 2.23.0-16
|
|
- Type:cves
|
|
- ID:CVE-2020-11008
|
|
- SUG:NA
|
|
- DESC:fix CVE-2020-11008
|
|
credential: detect unrepresentable values when parsin urls
|
|
fsck: detect gitmodules URLs with embedded newlines
|
|
|
|
* Fri Apr 17 2020 openEuler Buildteam <buildteam@openeuler.org> - 2.23.0-15
|
|
- Type:cves
|
|
- ID:CVE-2020-5260
|
|
- SUG:NA
|
|
- DESC:fix CVE-2020-5260
|
|
|
|
* Wed Apr 15 2020 openEuler Buildteam <buildteam@openeuler.org> - 2.23.0-14
|
|
- Type:bugfix
|
|
- ID:NA
|
|
- SUG:NA
|
|
- DESC:reset bash completion
|
|
|
|
* Tue Apr 14 2020 openEuler Buildteam <buildteam@openeuler.org> - 2.23.0-13
|
|
- Type:bugfix
|
|
- ID:NA
|
|
- SUG:NA
|
|
- DESC:setup bash completion
|
|
|
|
* Thu Mar 19 2020 openEuler Buildteam <buildteam@openeuler.org> - 2.23.0-12
|
|
- skip updating the preference during running test suite
|
|
|
|
* Sat Mar 14 2020 openEuler Buildteam <buildteam@openeuler.org> - 2.23.0-11
|
|
- add build requires of gdb
|
|
|
|
* Mon Feb 24 2020 openEuler Buildteam <buildteam@openeuler.org> - 2.23.0-10
|
|
- delete cvs subpackage
|
|
|
|
* Mon Feb 03 2020 openEuler Buildteam <buildteam@openeuler.org> - 2.23.0-9
|
|
- fix CVE-2019-1348 CVE-2019-1349 CVE-2019-1350 CVE-2019-1351 CVE-2019-1352
|
|
CVE-2019-1353 CVE-2019-1354 CVE-2019-1387 CVE-2019-19604
|
|
fix test error
|
|
|
|
* Thu Jan 09 2020 openEuler Buildteam <buildteam@openeuler.org> - 2.23.0-8
|
|
- Delete unneeded files
|
|
|
|
* Thu Dec 5 2019 shenyangyang <shenyangyang4@huawei.com> - 2.23.0-7
|
|
- Add requires and two files in %{_libexecdir}/git-core
|
|
|
|
* Thu Dec 5 2019 shenyangyang <shenyangyang4@huawei.com> - 2.23.0-6
|
|
- Delete the perl(Error*) module that provided by perl-Git
|
|
|
|
* Thu Oct 31 2019 openEuler Buildteam <buildteam@openeuler.org> - 2.23.0-5
|
|
- Modify installation of contrib and templates
|
|
|
|
* Wed Sep 25 2019 openEuler Buildteam <buildteam@openeuler.org> - 2.23.0-4
|
|
- Modify license
|
|
|
|
* Wed Sep 4 2019 openEuler Buildteam <buildteam@openeuler.org> - 2.23.0-3
|
|
- Split out perl-Git-SVN
|
|
|
|
* Wed Sep 4 2019 openEuler Buildteam <buildteam@openeuler.org> - 2.23.0-2
|
|
- Split Package
|
|
|
|
* Sat Aug 31 2019 openEuler Buildteam <buildteam@openeuler.org> - 2.23.0-1
|
|
- Package init
|