From f3c13faa206935a844e09c7dc9d78d6325100ced Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Fri, 16 Feb 2018 15:22:57 -0500 Subject: [PATCH] Update to 2.17.0-rc0 The perl install process was updated to remove the need for ExtUtils::MakeMaker. The main change for us is setting perllibdir to keep the files installed in %{perl_vendorlib}. Manpages for non-public portions of the Git perl modules are no longer built. Anyone who wishes to make use of these modules can read the source files or use pod2man. Set NO_PERL_CPAN_FALLBACKS to ensure we don't package the bundled fallback modules. Also drop now-unneeded commands to remove *.bs, .packlist, and perllocal.pod files. The new install method does not produce these artifacts. --- .rpmlint | 1 + ...-destruction-order-to-avoid-segfault.patch | 40 ------------------- git.spec | 26 ++++++------ sources | 4 +- 4 files changed, 15 insertions(+), 56 deletions(-) delete mode 100644 0001-git-svn-control-destruction-order-to-avoid-segfault.patch diff --git a/.rpmlint b/.rpmlint index 8066d36..caf2fb7 100644 --- a/.rpmlint +++ b/.rpmlint @@ -18,6 +18,7 @@ addFilter("git-gui.noarch: W: desktopfile-without-binary /usr/share/applications # ignore no doc/manpage warnings where we don't expect any documentation addFilter("git-(all|core|gnome-keyring)\..*: W: no-documentation") +addFilter("perl-Git-SVN.noarch: W: no-documentation") addFilter("git-core\..*: W: no-manual-page-for-binary") # nothing provides git-gnome-keyring, it's simply obsolete diff --git a/0001-git-svn-control-destruction-order-to-avoid-segfault.patch b/0001-git-svn-control-destruction-order-to-avoid-segfault.patch deleted file mode 100644 index 8518dd5..0000000 --- a/0001-git-svn-control-destruction-order-to-avoid-segfault.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 7f6f75e97acd25f8e95ce431e16d2e1c2093845d Mon Sep 17 00:00:00 2001 -From: Eric Wong -Date: Mon, 29 Jan 2018 23:11:07 +0000 -Subject: [PATCH] git-svn: control destruction order to avoid segfault - -It seems necessary to control destruction ordering to avoid a -segfault with SVN 1.9.5 when using "git svn branch". I've also -reported the problem against libsvn-perl to Debian [Bug #888791], -but releasing the SVN::Client instance can be beneficial anyways to -save memory. - -ref: https://bugs.debian.org/888791 -Tested-by: Todd Zullinger -Reported-by: brian m. carlson -Signed-off-by: Eric Wong -Signed-off-by: Junio C Hamano -Signed-off-by: Todd Zullinger ---- - git-svn.perl | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/git-svn.perl b/git-svn.perl -index aa242d4f4f..b012980246 100755 ---- a/git-svn.perl -+++ b/git-svn.perl -@@ -1199,6 +1199,11 @@ sub cmd_branch { - $ctx->copy($src, $rev, $dst) - unless $_dry_run; - -+ # Release resources held by ctx before creating another SVN::Ra -+ # so destruction is orderly. This seems necessary with SVN 1.9.5 -+ # to avoid segfaults. -+ $ctx = undef; -+ - $gs->fetch_all; - } - --- -2.16.1 - diff --git a/git.spec b/git.spec index a3a5f75..2617b8c 100644 --- a/git.spec +++ b/git.spec @@ -49,11 +49,11 @@ %endif # Define for release candidates -#global rcrev .rc0 +%global rcrev .rc0 Name: git -Version: 2.16.2 -Release: 1%{?rcrev}%{?dist} +Version: 2.17.0 +Release: 0.0%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -86,8 +86,6 @@ Source99: print-failed-test-output Patch0: git-1.8-gitweb-home-link.patch # https://bugzilla.redhat.com/490602 Patch1: git-cvsimport-Ignore-cvsps-2.2b1-Branches-output.patch -# https://public-inbox.org/git/20180129231653.GA22834@starla/ -Patch2: 0001-git-svn-control-destruction-order-to-avoid-segfault.patch %if %{with docs} BuildRequires: asciidoc >= 8.4.1 @@ -320,8 +318,8 @@ Requires: git = %{version}-%{release} %package -n perl-Git Summary: Perl interface to Git BuildArch: noarch +BuildRequires: perl(Error) Requires: git = %{version}-%{release} -BuildRequires: perl(Error), perl(ExtUtils::MakeMaker) Requires: perl(Error) Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version)) %description -n perl-Git @@ -392,9 +390,11 @@ GITWEB_PROJECTROOT = %{_localstatedir}/lib/git GNU_ROFF = 1 NO_CROSS_DIRECTORY_HARDLINKS = 1 NO_INSTALL_HARDLINKS = 1 +NO_PERL_CPAN_FALLBACKS = 1 PYTHON_PATH = %{__python2} htmldir = %{?_pkgdocdir}%{!?_pkgdocdir:%{_docdir}/%{name}-%{version}} prefix = %{_prefix} +perllibdir = %{perl_vendorlib} gitwebdir = %{_localstatedir}/www/git # Test options @@ -453,7 +453,7 @@ sed -i -e '1s|#!%{__python2}$|#!%{__python3}|' \ %endif %install -make %{?_smp_mflags} INSTALLDIRS=vendor install %{?with_docs:install-doc} +make %{?_smp_mflags} install %{?with_docs:install-doc} # symlink %%{gitexecdir} copies of git, git-shell, and git-upload-pack for i in git git-shell git-upload-pack; do @@ -484,10 +484,6 @@ install -pm 0644 %{SOURCE12} %{buildroot}%{_sysconfdir}/httpd/conf.d/git.conf sed "s|@PROJECTROOT@|%{_localstatedir}/lib/git|g" \ %{SOURCE14} > %{buildroot}%{_sysconfdir}/gitweb.conf -find %{buildroot} -type f -name .packlist -exec rm -f {} ';' -find %{buildroot} -type f -name '*.bs' -empty -exec rm -f {} ';' -find %{buildroot} -type f -name perllocal.pod -exec rm -f {} ';' - # Clean up contrib/subtree to avoid cruft in the git-core-doc docdir # Move git-subtree.txt to Documentation so it can be installed later in docdir mv contrib/subtree/git-subtree.txt Documentation/ @@ -779,11 +775,9 @@ make test || ./print-failed-test-output %{?with_docs:%{_pkgdocdir}/*p4*.html} %files -n perl-Git -f perl-git-files -%exclude %{_mandir}/man3/*Git*SVN*.3pm* -%{?with_docs:%{_mandir}/man3/*Git*.3pm*} +%{?with_docs:%{_mandir}/man3/Git.3pm*} %files -n perl-Git-SVN -f perl-git-svn-files -%{?with_docs:%{_mandir}/man3/*Git*SVN*.3pm*} %files subtree %{gitexecdir}/git-subtree @@ -798,6 +792,10 @@ make test || ./print-failed-test-output %{?with_docs:%{_pkgdocdir}/*svn*.html} %changelog +* Thu Mar 15 2018 Todd Zullinger - 2.17.0-0.0.rc0 +- Update to 2.17.0-rc0 +- Adjust for simplified perl install + * Thu Mar 15 2018 Todd Zullinger - Use symlinks instead of hardlinks for installed binaries diff --git a/sources b/sources index 2a17568..478724d 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.16.2.tar.xz) = ff1bf4b94c09de26acf85b97003582002c232e5861a896d8c2d8dc011cb3d4966b1eb0e74ef94f80426d50bb465bf6c9b6edda13b1e4143f0eb38ee01f4890e4 -SHA512 (git-2.16.2.tar.sign) = 4b5a521e766ce45809fb040657367493403e74eab884fc7572abc691635f197d592ae0801209a801be1d56b5e5ad868515ff7e80e4b562db53f60ecf6c92622c +SHA512 (git-2.17.0.rc0.tar.xz) = 2c444ac785f451719e5b37c1541b371d892a9f346c3f5adaf99166b70e7d0f3e4932f26ac11bc13b20eaa9d3d32b46bb6e17d99b2438a6e41aeebd7853a14b29 +SHA512 (git-2.17.0.rc0.tar.sign) = 049e1bcb8147502d827c16852f920ce4ce907664aebc3cf5edd234006cabbf4f6443ffb58adac3fcbc6b3db0c6ff31a809f023f91c9d1d2ae75033243f0aac59