Browse Source

perl-5.26.2-1

git-svn-id: http://trac.vinelinux.org/repos/projects/specs@12234 ec354946-7b23-47d6-9f5a-488ba84defc7
tomop 4 years ago
parent
commit
b08a9c737b
1 changed files with 334 additions and 111 deletions
  1. 334 111
      p/perl/perl-vl.spec

+ 334 - 111
p/perl/perl-vl.spec

@@ -3,22 +3,21 @@
 %define largefiles 1
 
 %define multilib_64_archs x86_64 s390x ppc64 sparc64
-%define perl_archname %{_arch}-%{_os}-thread-multi
-%define new_perl_lib  $RPM_BUILD_ROOT%{_libdir}/perl5/%{version}:$RPM_BUILD_ROOT%{_prefix}/lib/perl5/%{version}
-%define comp_perl_lib $RPM_BUILD_ROOT%{_prefix}/lib/perl5/%{version}:$RPM_BUILD_ROOT%{_prefix}/lib/perl5/%{version}
-%define new_arch_lib  $RPM_BUILD_ROOT%{_libdir}/perl5/%{version}/%{perl_archname}
-%define comp_arch_lib $RPM_BUILD_ROOT%{_prefix}/lib/perl5/%{version}/%{perl_archname}
-%define new_perl_flags LD_PRELOAD=/%{new_arch_lib}/CORE/libperl.so LD_LIBRARY_PATH=%{new_arch_lib}/CORE PERL5LIB=%{new_perl_lib}:%{comp_perl_lib}
-%define new_perl %{new_perl_flags} $RPM_BUILD_ROOT/%{_bindir}/perl
-
-%define perl_version 5.16.3
-%define perlrel 3
+%ifarch %{ix86}
+#global arch_suffix -64int
+%global arch_suffix %{nil}
+%else
+%global arch_suffix %{nil}
+%endif
+
+%define perl_version 5.26.2
+%define perlrel 1
 %define perl_epoch 2
 
 Provides: perl(:WITH_PERLIO)
 
 %if %{threading}
-%define thread_arch -thread-multi
+%define thread_arch -thread-multi%{arch_suffix}
 Provides: perl(:WITH_ITHREADS)
 Provides: perl(:WITH_THREADS)
 %else
@@ -27,6 +26,15 @@ Provides: perl(:WITHOUT_ITHREADS)
 Provides: perl(:WITHOUT_THREADS)
 %endif
 
+%global perl_archname %{_arch}-%{_os}%{thread_arch}
+
+%global new_perl_lib  %{buildroot}%{_libdir}/perl5/%{version}:%{buildroot}%{_prefix}/lib/perl5/%{version}
+%global comp_perl_lib %{buildroot}%{_prefix}/lib/perl5/%{version}:%{buildroot}%{_prefix}/lib/perl5/%{version}
+%global new_arch_lib  %{buildroot}%{_libdir}/perl5/%{version}/%{perl_archname}
+%global comp_arch_lib %{buildroot}%{_prefix}/lib/perl5/%{version}/%{perl_archname}
+%global new_perl_flags LD_PRELOAD=/%{new_arch_lib}/CORE/libperl.so LD_LIBRARY_PATH=%{new_arch_lib}/CORE PERL5LIB=%{new_perl_lib}:%{comp_perl_lib}
+%global new_perl %{new_perl_flags} %{buildroot}/%{_bindir}/perl
+
 %if %{largefiles}
 Provides: perl(:WITH_LARGEFILES)
 %else
@@ -47,20 +55,10 @@ Source0:      ftp://ftp.perl.org/pub/perl/CPAN/src/perl-%{perl_version}.tar.bz2
 Source10:     system-owned-directories
 Source11:     filter-depends.sh
 Source12:     perl-5.8.0-libnet.cfg
-Patch4:       perl-5.6.1-prereq.patch
-Patch6:       perl-5.8.0-fhs.patch
-Patch7:       perl-5.6.0-buildroot.patch
-#Patch8:      perl-5.8.0-errno.patch
-Patch9:       perl-5.7.3-syslog.patch
 
-# gcc 5 patch from upstream
-Patch10:      perl-5.16.3-gcc5.patch
-Patch11:      perl-5.18.2-Pass-fwrapv-to-stricter-GCC-4.9.patch
-
-## from CentOS 7 Open QA – c7.00.04: perl-5.16.3-283.el7
-Patch13:      perl-perlbug-tag.patch
-
-%define __perl_requires %{SOURCE11}
+%if %{_dist_release} < "vl7"
+%global __perl_requires %{SOURCE11}
+%endif
 
 Conflicts: perl-NDBM_File <= 1:1.75-34.99.6
 
@@ -74,7 +72,6 @@ Obsoletes: perl-Time-HiRes
 Provides: perl-MIME-Base64
 Provides: perl-libnet
 ## perl-5.10.0
-Obsoletes: perl-Module-Build <= 0.2806-0vl1
 Obsoletes: perl-Archive-Tar <= 1.38-0vl2
 Obsoletes: perl-IO-Compress-Base <= 2.008-0vl1
 Obsoletes: perl-Compress-Raw-Zlib <= 2.008-0vl1
@@ -82,7 +79,7 @@ Obsoletes: perl-IO-Compress-Zlib <= 2.008-0vl1
 Obsoletes: perl-Compress-Zlib <= 2.008-0vl1
 Obsoletes: perl-IO-Zlib <= 1.09-0vl1
 Obsoletes: perl-version <= 0.42-0vl3
-Provides: perl-Module-Build
+Obsoletes: perl-Encode <= 2.98-1vl7
 Provides: perl-Archive-Tar
 Provides: perl-IO-Compress-Base
 Provides: perl-Compress-Raw-Zlib
@@ -90,61 +87,227 @@ Provides: perl-IO-Compress-Zlib
 Provides: perl-Compress-Zlib
 Provides: perl-IO-Zlib
 Provides: perl-version
+Provides: perl-Encode
 
 # Vine: provide archlibdir itself since Vine's aptdata don't have filelists
 Provides: %{_libdir}/perl5/%{perl_version}/%{_arch}-%{_os}%{thread_arch}
 
-# Configure doesn't listen well when we say no ndbm.  When it links in, it then conflicts with berkeley db.  oops.
-Patch16: perl-5.8.0-nondbm.patch
-
-# make sure we get the proper ldflags on libperl.so
-Patch17: perl-5.8.0-sharedlinker.patch
+# Filter dependencies on private modules. Generator:
+# for F in $(find lib -type f); do perl -e '$/ = undef; $_ = <>; if (/^package #\R([\w:]*);/m) { print qq{|^perl\\\\($1\\\\)} }' "$F"; done
 
-# work around annoying rpath issue
-Patch21: perl-5.8.0-rpath-make.patch
+# patches imported from Fedora/RHEL
 
-# bugzilla 101767, make sure threads.so links directly to -lpthread
-Patch22: perl-5.8.1-lpthread-link.patch
+# Removes date check, Fedora/RHEL specific
+Patch1:         perl-perlbug-tag.patch
 
-# arch-specific patches
-Patch101: perl-5.8.0-libdir64.patch
+# Fedora/RHEL only (64bit only)
+Patch3:         perl-5.8.0-libdir64.patch
 
-## patches from Fedora
-# Fedora/RHEL specific (use libresolv instead of libbind)
-Patch1006:         perl-5.8.6-libresolv.patch
+# Fedora/RHEL specific (use libresolv instead of libbind), bug #151127
+Patch4:         perl-5.10.0-libresolv.patch
 
 # FIXME: May need the "Fedora" references removed before upstreaming
-Patch1007:         perl-5.12.3-USE_MM_LD_RUN_PATH.patch
+# patches ExtUtils-MakeMaker
+Patch5:         perl-USE_MM_LD_RUN_PATH.patch
 
-# Skip hostname tests, since hostname lookup isn't available in Fedora
-# buildroots by design.
-Patch1008:         perl-5.12.3-disable_test_hosts.patch
+# Provide maybe_command independently, bug #1129443
+Patch6:         perl-5.22.1-Provide-ExtUtils-MM-methods-as-standalone-ExtUtils-M.patch
 
 # The Fedora builders started randomly failing this futime test
 # only on x86_64, so we just don't run it. Works fine on normal
 # systems.
-Patch1010:        perl-5.10.0-x86_64-io-test-failure.patch
+Patch7:         perl-5.10.0-x86_64-io-test-failure.patch
+
+# switch off test, which is failing only on koji (fork)
+Patch8:         perl-5.14.1-offtest.patch
+
+# Define SONAME for libperl.so
+Patch15:        perl-5.16.3-create_libperl_soname.patch
+
+# Install libperl.so to -Dshrpdir value
+Patch16:        perl-5.22.0-Install-libperl.so-to-shrpdir-on-Linux.patch
+
+# Document Math::BigInt::CalcEmu requires Math::BigInt, rhbz#959096,
+# CPAN RT#85015
+Patch22:        perl-5.18.1-Document-Math-BigInt-CalcEmu-requires-Math-BigInt.patch
+
+# Make *DBM_File desctructors thread-safe, bug #1107543, RT#61912
+Patch26:        perl-5.18.2-Destroy-GDBM-NDBM-ODBM-SDBM-_File-objects-only-from-.patch
+
+# Replace ExtUtils::MakeMaker dependency with ExtUtils::MM::Utils.
+# This allows not to require perl-devel. Bug #1129443
+Patch30:        perl-5.22.1-Replace-EU-MM-dependnecy-with-EU-MM-Utils-in-IPC-Cmd.patch
+
+# Make File::Glob more resistant against degenerative matching, RT#131211,
+# in upstream after 5.27.0
+Patch31:        perl-5.27.0-perl-131211-fixup-File-Glob-degenerate-matching.patch
+
+# Fix glob UTF-8 flag on a glob reassignment, RT#131263,
+# in upstream after 5.27.0
+Patch36:        perl-5.26.0-perl-131263-clear-the-UTF8-flag-on-a-glob-if-it-isn-.patch
+
+# Fix handling backslashes in PATH environment variable when executing
+# "perl -S", RT#129183, in upstream after 5.27.0
+Patch38:        perl-5.27.0-perl-129183-don-t-treat-as-an-escape-in-PATH-for-S.patch
+
+# Fix reporting malformed UTF-8 character, RT#131646, in upstream after 5.27.1
+Patch43:        perl-5.27.1-t-lib-warnings-utf8-Fix-test.patch
+
+# Fix File::Glob rt131211.t test random failures, in upstream after 5.27.1
+Patch45:        perl-5.27.1-File-Glob-tweak-rt131211.t-to-be-less-sensitive-on-w.patch
+
+# Fix t/op/hash.t test random failures, in upstream after 5.27.1
+Patch46:        perl-5.26.0-t-op-hash.t-fixup-intermittently-failing-test.patch
+
+# Parse caret variables with subscripts as normal variables inside ${...}
+# escaping, RT#131664, in upstream after 5.27.1
+Patch47:        perl-5.26.2-RC1-Parse-caret-vars-with-subscripts-the-same-as-normal-.patch
+Patch48:        perl-5.26.2-RC1-add-an-additional-test-for-whitespace-tolerance-in-c.patch
+
+# Do not display too many bytes when reporting malformed UTF-8 character,
+# in upstream after 5.27.1
+Patch49:        perl-5.27.1-utf8n_to_uvchr-Don-t-display-too-many-bytes-in-msg.patch
+
+# Fix error message for "our sub foo::bar", RT#131679, in upstream after 5.27.1
+Patch51:        perl-5.27.1-perl-131679-Fix-our-sub-foo-bar-message.patch
+
+# Fix executing arybase::_tie_it() in Safe compartement, RT#131588,
+# not yet accepted by upstream
+Patch52:        perl-5.26.0-perl-131588-be-a-little-more-careful-in-arybase-_tie.patch
+
+# Fix splitting non-ASCII strings if unicode_strings feature is enabled,
+# RT#130907 in upstream after 5.27.1
+Patch54:        perl-5.27.1-RT-130907-Fix-the-Unicode-Bug-in-split.patch
+
+# Fix compiler warnings in code generated by ExtUtils::Constant, CPAN RT#63832,
+# in upstream after 5.27.2
+Patch55:        perl-5.27.2-Avoid-compiler-warnings-due-to-mismatched-types-in-p.patch
+
+# Fix compiler warnings in code generated by ExtUtils::Constant, CPAN RT#101487,
+# in upstream after 5.27.2
+Patch56:        perl-5.27.2-EU-Constant-avoid-uninit-warning.patch
+
+# Fix unreliable Time-HiRes tests, CPAN RT#122819, in Time-HiRes-1.9746
+Patch58:        perl-5.26.0-Time-HiRes-Fix-unreliable-t-usleep.t-and-t-utime.t.patch
+
+# Fix Term::ReadLine not to create spurious &STDERR files, RT#132008,
+# in upstream after 5.27.3
+Patch61:        perl-5.27.3-perl-132008-try-to-prevent-the-similar-mistakes-in-t.patch
+
+# Fix an overflow when parsing a character range with no preceding character,
+# RT#132245, in upstream after 5.27.5
+Patch64:        perl-5.26.1-perl-132245-don-t-try-to-process-a-char-range-with-n.patch
+
+# Fix walking symbol table for ISA in Carp, in upstream after 5.27.5
+Patch65:        perl-5.27.5-Carp-Don-t-choke-on-ISA-constant.patch
+
+# Fix handling file names with null bytes in stat and lstat functions,
+# RT#131895, in upstream after 5.27.5
+Patch66:        perl-5.26.1-perl-131895-fail-stat-on-names-with-0-embedded.patch
+
+# Fix a crash when untying an object witout a stash, in upstream after 5.27.5
+Patch67:        perl-5.27.5-Avoid-a-segfault-when-untying-an-object.patch
 
-# This patch enable to build with libxcrypt
-Patch1011: 0001-pp-Guard-fix-for-really-old-bug-in-glibc-libcrypt.patch
+# Fix deparsing of transliterations with unprintable characters, RT#132405,
+# in upstream after 5.27.5
+Patch68:        perl-5.26.1-Fix-deparsing-of-transliterations-with-unprintable-c.patch
 
-## patch(es) from CentOS
-# perl-5.16.3-283.el7
-Patch7000: porting-podcheck-regen.patch
+# Fix error reporting on do() on a directory, RT#125774,
+# in upstream after 5.27.5
+Patch69:        perl-5.26.1-fix-do-dir-returning-no.patch
+
+# Fix stack manipulation when a lexical subroutine is defined in a do block in
+# a member of an iteration list, RT#132442, in upstream after 5.27.5
+Patch70:        perl-5.27.5-perl-132442-Fix-stack-with-do-my-sub-l-1.patch
+
+# Fix setting $! when statting a closed filehandle, RT#108288,
+# in upstream after 5.27.5
+Patch71:        perl-5.26.1-set-when-statting-a-closed-filehandle.patch
+
+# Fix tainting of s/// with overloaded replacement, RT#115266,
+# in upstream after 5.27.5
+Patch72:        perl-5.27.5-fix-tainting-of-s-with-overloaded-replacement.patch
+
+# Expand system() arguments before a fork, RT#121105,
+# in upstream after 5.27.6
+Patch73:        perl-5.26.2-RC1-perform-system-arg-processing-before-fork.patch
+# in upstream after 5.27.7
+Patch74:        perl-5.27.7-preserve-numericness-of-system-args-on-Win32.patch
+Patch75:        perl-5.27.7-Reenable-numeric-first-argument-of-system-on-VMS.patch
+
+# Avoid undefined behavior when copying memory in Glob and pp_caller,
+# RT#131746, in upstream after 5.27.3
+Patch76:        perl-5.26.1-perl-131746-avoid-undefined-behaviour-in-Copy-etc.patch
+Patch77:        perl-5.27.3-avoid-the-address-of-.-will-always-evaluate-as-.-war.patch
+
+# Conditionalize a fix for an old and long fixed bug
+# in libcrypt / glibc, rhbz#1536752, RT#133184, in upstream after 5.27.11
+Patch78:        perl-5.26.1-guard_old_libcrypt_fix.patch
+
+# Link XS modules to pthread library to fix linking with -z defs,
+# <https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/message/3RHZEHLRUHJFF2XGHI5RB6YPDNLDR4HG/>
+Patch79:        perl-5.27.8-hints-linux-Add-lphtread-to-lddlflags.patch
+
+# Fix parsing braced subscript after parentheses, RT#8045,
+# in upstream after 5.27.7
+Patch80:        perl-5.26.1-fix-parsing-of-braced-subscript-after-parens.patch
+
+# Do not clobber file bytes in :encoding layer, RT#132833,
+# in upstream after 5.27.8
+Patch81:        perl-5.27.8-don-t-clobber-file-bytes-in-encoding-layer.patch
+
+# Fix line numbers in multi-line s///, RT#131930, in upstream after 5.27.9
+Patch82:        perl-5.27.9-fix-line-numbers-in-multi-line-s.patch
+
+# Fix parsing extended bracketed character classes, RT#132167,
+# in upstream after 5.27.10
+Patch83:        perl-5.27.10-PATCH-perl-132167-Parse-error-in-regex_sets.patch
+
+# Fix a possibly unitialized memory read in the Perl parser, RT#133074,
+# in upstream after 5.27.10
+Patch84:        perl-5.27.10-PATCH-perl-133074-5.26.1-some-coverity-fixes.patch
+
+# Fix an infinite loop in the regular expression compiler, RT#133185,
+# in upstream after 5.27.11
+Patch85:        perl-5.26.2-PATCH-perl-133185-Infinite-loop-in-qr.patch
+
+# Adjust tests to gdbm-1.15, RT#133295
+Patch86:        perl-5.29.0-Remove-ext-GDBM_File-t-fatal.t.patch
+
+# Fix an integer wrap when allocating memory for an environment variable,
+# RT#133204, in upstream after 5.29.0
+Patch87:        perl-5.26.2-Perl_my_setenv-handle-integer-wrap.patch
+
+# Fix printing a warning about a wide character when matching a regular
+# expression while ISO-8859-1 locale is in effect, in upstream after 5.29.0
+Patch88:        perl-5.29.0-regexec.c-Call-macro-with-correct-args.patch
+
+# Fix invoking a check for wide characters while ISO-8859-1 locale is in effect,
+# in upstream after 5.29.0
+Patch89:        perl-5.26.2-perl.h-Add-parens-around-macro-arguments.patch
+
+# Pass the correct CFLAGS to dtrace
+Patch90:        perl-5.26.2-Pass-CFLAGS-to-dtrace.patch
+
+# Link XS modules to libperl.so with EU::CBuilder on Linux, bug #960048
+Patch200:       perl-5.16.3-Link-XS-modules-to-libperl.so-with-EU-CBuilder-on-Li.patch
+
+# Link XS modules to libperl.so with EU::MM on Linux, bug #960048
+Patch201:       perl-5.16.3-Link-XS-modules-to-libperl.so-with-EU-MM-on-Linux.patch
+
+# Vine
+# (nothing)
 
 ## security
-Patch2020: perl-5.12.3_CVE-2012-5195.patch
-Patch2030: perl-5.12.3_CVE-2012-5526.patch
-# from CentOS
-Patch2050: perl-5.17.6-Fix-misparsing-of-maketext-strings.patch
-Patch2060: perl-5.16.3-Perl_my_setenv-handle-integer-wrap.patch
+# (nothing)
+
 
 Buildroot:    %{_tmppath}/%{name}-%{version}-root
 BuildRequires:  gawk, grep, tcsh, gdbm-devel, libdb-devel
 BuildRequires:  rpm-devel, ncurses-devel, zlib-devel, netpbm-devel
 BuildRequires:  libpng-devel, libtiff-devel, libelf, libjpeg-devel
 BuildRequires:  netpbm-devel, e2fsprogs-devel
-BuildRequires:  libxcrypt-devel, libnsl2-devel
+BuildRequires:  libxcrypt-devel, libnsl2-devel, bzip2-devel
 
 # without man installed, the variables installman[13]dir
 # in Config.pm will be undefined. This BuildPreReq will fix it.
@@ -160,10 +323,9 @@ Provides: perl(VMS::Filespec)
 Provides: perl(VMS::Stdio)
 
 # Compat provides
-Provides: perl(:MODULE_COMPAT_5.16.3)
-Provides: perl(:MODULE_COMPAT_5.16.2)
-Provides: perl(:MODULE_COMPAT_5.16.1)
-Provides: perl(:MODULE_COMPAT_5.16.0)
+Provides: perl(:MODULE_COMPAT_5.26.2)
+Provides: perl(:MODULE_COMPAT_5.26.1)
+Provides: perl(:MODULE_COMPAT_5.26.0)
 
 # Threading provides
 Provides: perl(:WITH_ITHREADS)
@@ -255,31 +417,70 @@ Perl library directories in /usr/local
 
 %prep
 %setup -q
-%patch7000 -p1
-%patch10 -p1
-%patch11 -p1
-%patch13 -p1
-
-%patch17 -p1 -b .sharedlinker
-
-%patch21 -p1 -b .rpathmake
 
+## patch from Fedora/RHEL
+%patch1 -p1
 %ifarch %{multilib_64_archs}
-%patch101 -p1 -b .libdir64
+%patch3 -p1
 %endif
-
-## patch from Fedora
-%patch1006 -p1
-%patch1007 -p1
-%patch1008 -p1
-%patch1010 -p1
-%patch1011 -p1
+%patch4 -p1
+%patch5 -p1
+%patch6 -p1
+%patch7 -p1
+%patch8 -p1
+%patch15 -p1
+%patch16 -p1
+%patch22 -p1
+%patch26 -p1
+%patch30 -p1
+%patch31 -p1
+%patch36 -p1
+%patch38 -p1
+%patch43 -p1
+%patch45 -p1
+%patch46 -p1
+%patch47 -p1
+%patch48 -p1
+%patch49 -p1
+%patch51 -p1
+%patch52 -p1
+%patch54 -p1
+%patch55 -p1
+%patch56 -p1
+%patch58 -p1
+%patch61 -p1
+%patch64 -p1
+%patch65 -p1
+%patch66 -p1
+%patch67 -p1
+%patch68 -p1
+%patch69 -p1
+%patch70 -p1
+%patch71 -p1
+%patch72 -p1
+%patch73 -p1
+%patch74 -p1
+%patch75 -p1
+%patch76 -p1
+%patch77 -p1
+%patch78 -p1
+%patch79 -p1
+%patch80 -p1
+%patch81 -p1
+%patch82 -p1
+%patch83 -p1
+%patch84 -p1
+%patch85 -p1
+%patch86 -p1
+%patch87 -p1
+%patch88 -p1
+%patch89 -p1
+%patch90 -p1 -b .dtrace
+%patch200 -p1
+%patch201 -p1
 
 ## security patch(es)
-%patch2020 -p1 -b .CVE-2012-5195
-%patch2030 -p1
-%patch2050 -p1 
-%patch2060 -p1 
+# (nothing)
 
 #
 # Candidates for doc recoding (need case by case review):
@@ -290,16 +491,13 @@ recode()
         touch -r "$1" "${1}_"
         mv -f "${1}_" "$1"
 }
-recode README.cn euc-cn
-recode README.jp euc-jp
-recode README.ko euc-kr
 # TODO iconv fail on this one
 ## recode README.tw big5
-recode pod/perlebcdic.pod
-recode pod/perlhack.pod
-recode pod/perlhist.pod
-recode pod/perlthrtut.pod
-recode AUTHORS
+#recode pod/perlebcdic.pod
+#recode pod/perlhack.pod
+#recode pod/perlhist.pod
+#recode pod/perlthrtut.pod
+#recode AUTHORS
 
 find . -name \*.orig -exec rm -fv {} \;
 
@@ -328,6 +526,9 @@ find . -name \*.orig -exec rm -fv {} \;
 %global __requires_exclude %__requires_exclude|^perl\\(Tk\\)
 %global __requires_exclude %__requires_exclude|^perl\\(Tk::Pod\\)
 %global __requires_exclude %__requires_exclude|^perl\\(Your::Module::Here\\)
+%global __requires_exclude %__requires_exclude|^perl\\(Locale::Codes\\)
+%global __requires_exclude %__requires_exclude|^perl\\(Locale::Codes::
+echo "__requires_exclude: %__requires_exclude"
 %else
 cat << EOF > perl-prov
 #!/bin/sh
@@ -356,6 +557,11 @@ sed -i 's|BUILD_ZLIB      = True|BUILD_ZLIB      = False|
     s|LIB             = ./zlib-src|LIB             = %{_libdir}|' \
     cpan/Compress-Raw-Zlib/config.in
 
+# Ensure that we never accidentally bundle zlib or bzip2
+rm -rf cpan/Compress-Raw-Zlib/zlib-src
+rm -rf cpan/Compress-Raw-Bzip2/bzip2-src
+sed -i '/\(bzip2\|zlib\)-src/d' MANIFEST
+
 
 %build
 # for generating makefiles
@@ -371,16 +577,22 @@ echo "RPM Build arch: %{_arch}"
 # arches work correctly :\ the Configure lines below hardcode lib for
 # similar reasons.
 
-/bin/sh Configure -des -Doptimize="$RPM_OPT_FLAGS" \
+/bin/sh Configure -des \
+        -Doptimize="none" \
+        -Dccflags="$RPM_OPT_FLAGS" \
+        -Dldflags="$RPM_LD_FLAGS" \
+        -Dccdlflags="-Wl,--enable-new-dtags $RPM_LD_FLAGS" \
+        -Dlddlflags="-shared $RPM_LD_FLAGS" \
+        -Dshrpdir="%{_libdir}" \
         -Dversion=%{perl_version} \
         -Dmyhostname=localhost \
         -Dperladmin=root@localhost \
         -Dcc='%{__cc}' \
-	-Dcf_by='Vine Linux' \
+        -Dcf_by='Vine Linux' \
         -Dinstallprefix=%{_prefix} \
         -Dprefix=%{_prefix} \
 %ifarch %{multilib_64_archs}
-        -Dlibpth="/lib64 %{_prefix}/lib64" \
+        -Dlibpth="%{_prefix}/local/lib64 /lib64 %{_prefix}/lib64" \
         -Dprivlib="%{_prefix}/lib/perl5/%{perl_version}" \
         -Dsitelib="%{_prefix}/lib/perl5/site_perl/%{perl_version}" \
         -Dvendorlib="%{_prefix}/lib/perl5/vendor_perl/%{perl_version}" \
@@ -420,12 +632,32 @@ echo "RPM Build arch: %{_arch}"
 %endif
         -Dscriptdir='%{_bindir}'
 
+BUILD_BZIP2=0
+BZIP2_LIB=%{_libdir}
+export BUILD_BZIP2 BZIP2_LIB
+
+# Prepapre a symlink from proper DSO name to libperl.so now so that new perl
+# can be executed from make.
+%global soname libperl.so.%(echo '%{perl_version}' | sed 's/^\\([^.]*\\.[^.]*\\).*/\\1/')
+test -L %soname || ln -s libperl.so %soname
+
 make %{?_smp_mflags}
 
 %install
 [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT
 make install DESTDIR=$RPM_BUILD_ROOT
 
+# Make proper DSO names, move libperl to standard path.
+mv "%{new_arch_lib}/CORE/libperl.so" \
+    "$RPM_BUILD_ROOT%{_libdir}/libperl.so.%{perl_version}"
+ln -s "libperl.so.%{perl_version}" "$RPM_BUILD_ROOT%{_libdir}/%{soname}"
+ln -s "libperl.so.%{perl_version}" "$RPM_BUILD_ROOT%{_libdir}/libperl.so"
+# XXX: Keep symlink from original location because various code glues
+# $archlib/CORE/$libperl to get the DSO.
+ln -s "../../../../libperl.so.%{perl_version}" "%{new_arch_lib}/CORE/libperl.so"
+rm -f "%{new_arch_lib}/CORE/%{soname}"
+ln -s "../../../../libperl.so.%{perl_version}" "%{new_arch_lib}/CORE/%{soname}"
+
 %ifarch %{multilib_64_archs}
 mkdir -p -m 755 $RPM_BUILD_ROOT%{_prefix}/lib/perl5/%{perl_version}
 mkdir -p -m 755 $RPM_BUILD_ROOT%{_prefix}/lib/perl5/vendor_perl/%{perl_version}/auto
@@ -482,18 +714,6 @@ find $RPM_BUILD_ROOT -name '*NDBM*' | xargs rm -rfv
 
 find $RPM_BUILD_ROOT -type f -name '*.bs' -a -empty -exec rm -f {} ';'
 
-# Install sample cgi scripts (this used to happen automatically?)
-mkdir -p $RPM_BUILD_ROOT/%{_libdir}/perl5/%{perl_version}/CGI/examples/
-cp -a cpan/CGI/examples/* $RPM_BUILD_ROOT/%{_libdir}/perl5/%{perl_version}/CGI/examples/
-
-# Cleanup binary paths and make cgi files executable
-pushd $RPM_BUILD_ROOT/%{_libdir}/perl5/%{perl_version}/CGI/examples/
-  for i in *.cgi make_links.pl ; do
-    sed -i 's|/usr/local/bin/perl|%{_bindir}/perl|g' $i
-    chmod +x $i
-  done
-popd
-
 # miniperl? As an interpreter? How odd.
 sed -i 's|./miniperl|%{_bindir}/perl|' $RPM_BUILD_ROOT/%{_prefix}/lib/perl5/%{perl_version}/ExtUtils/xsubpp
 chmod +x $RPM_BUILD_ROOT/%{_prefix}/lib/perl5/%{perl_version}/ExtUtils/xsubpp
@@ -537,7 +757,11 @@ chmod -R u+w $RPM_BUILD_ROOT/*
 [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT
 
 %check
-make test
+%{new_perl} -I./lib regen/lib_cleanup.pl
+pushd t
+%{new_perl} -I../lib porting/customized.t --regen
+popd
+LC_ALL=C make test
 
 %post -p /sbin/ldconfig
 
@@ -550,6 +774,7 @@ make test
 %{_mandir}/man3/*.3*
 %{_bindir}/*
 %{_libdir}/perl5
+%{_libdir}/libperl.so*
 %ifarch %{multilib_64_archs}
 %{_prefix}/lib/perl5
 %endif
@@ -561,13 +786,11 @@ make test
 %dir %{_prefix}/local/lib/site_perl/%{perl_version}/%{_arch}-%{_os}%{thread_arch}
 
 %changelog
-* Wed May 15 2019 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 5.16.3-3
-- rebuilt with gdbm-1.18.1.
-- added Patch2060 (CVE-2018-18311).
-- added BR:libxcrypt-devel,libnsl2-devel.
-- added Patch1011 to build with libxcrypt.
-- added Patch10 to build with gcc >= 5.
-- added Patch11 to build with gcc >= 4.9.
+* Thu May 16 2019 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 5.26.2-1
+- new upstream release.
+- added BR:libxcrypt-devel,libnsl2-devel,bzip2-devel.
+- dropped all patches.
+- imported patches from RHEL8 beta.
 
 * Thu Feb  5 2015 Ryoichi INAGAKI <ryo1@toki.waseda.jp> 5.16.3-2
 - rebuilt with libdb 5.3.28