1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-12-01 01:17:02 +00:00

Update to 5.22.2.

Sponsored by:	Absolight
This commit is contained in:
Mathieu Arnold 2016-04-30 18:51:28 +00:00
parent 70412f689b
commit 8efb9f3884
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=414355
6 changed files with 11 additions and 109 deletions

View File

@ -1,2 +1,2 @@
SHA256 (perl/perl-5.22.1.tar.xz) = 9e87317d693ce828095204be0d09af8d60b8785533fadea1a82b6f0e071e5c79
SIZE (perl/perl-5.22.1.tar.xz) = 11223940
SHA256 (perl/perl-5.22.2.tar.xz) = b34dab1eabec056bec5a6682a57b55dab1bcf6afc60b098c9e2d99433dedc295
SIZE (perl/perl-5.22.2.tar.xz) = 11224216

View File

@ -1,100 +0,0 @@
commit 58eaa1131a38c16ee4a66d0bc36288cfde1a39bf
Author: Tony Cook <tony@develop-help.com>
Date: 2016-01-27 11:52:15 +1100
remove duplicate environment variables from environ
If we see duplicate environment variables while iterating over
environ[]:
a) make sure we use the same value in %ENV that getenv() returns.
Previously on a duplicate, %ENV would have the last entry for the name
from environ[], but a typical getenv() would return the first entry.
Rather than assuming all getenv() implementations return the first entry
explicitly call getenv() to ensure they agree.
b) remove duplicate entries from environ
Previously if there was a duplicate definition for a name in environ[]
setting that name in %ENV could result in an unsafe value being passed
to a child process, so ensure environ[] has no duplicates.
diff --git perl.c perl.c
index 16a6ca4..8ef7474 100644
--- perl.c
+++ perl.c
@@ -4298,23 +4298,70 @@ S_init_postdump_symbols(pTHX_ int argc, char **argv, char **env)
}
if (env) {
char *s, *old_var;
+ STRLEN nlen;
SV *sv;
+ HV *dups = newHV();
+
for (; *env; env++) {
old_var = *env;
if (!(s = strchr(old_var,'=')) || s == old_var)
continue;
+ nlen = s - old_var;
#if defined(MSDOS) && !defined(DJGPP)
*s = '\0';
(void)strupr(old_var);
*s = '=';
#endif
- sv = newSVpv(s+1, 0);
- (void)hv_store(hv, old_var, s - old_var, sv, 0);
+ if (hv_exists(hv, old_var, nlen)) {
+ const char *name = savepvn(old_var, nlen);
+
+ /* make sure we use the same value as getenv(), otherwise code that
+ uses getenv() (like setlocale()) might see a different value to %ENV
+ */
+ sv = newSVpv(PerlEnv_getenv(name), 0);
+
+ /* keep a count of the dups of this name so we can de-dup environ later */
+ if (hv_exists(dups, name, nlen))
+ ++SvIVX(*hv_fetch(dups, name, nlen, 0));
+ else
+ (void)hv_store(dups, name, nlen, newSViv(1), 0);
+
+ Safefree(name);
+ }
+ else {
+ sv = newSVpv(s+1, 0);
+ }
+ (void)hv_store(hv, old_var, nlen, sv, 0);
if (env_is_not_environ)
mg_set(sv);
}
+ if (HvKEYS(dups)) {
+ /* environ has some duplicate definitions, remove them */
+ HE *entry;
+ hv_iterinit(dups);
+ while ((entry = hv_iternext_flags(dups, 0))) {
+ STRLEN nlen;
+ const char *name = HePV(entry, nlen);
+ IV count = SvIV(HeVAL(entry));
+ IV i;
+ SV **valp = hv_fetch(hv, name, nlen, 0);
+
+ assert(valp);
+
+ /* try to remove any duplicate names, depending on the
+ * implementation used in my_setenv() the iteration might
+ * not be necessary, but let's be safe.
+ */
+ for (i = 0; i < count; ++i)
+ my_setenv(name, 0);
+
+ /* and set it back to the value we set $ENV{name} to */
+ my_setenv(name, SvPV_nolen(*valp));
+ }
+ }
+ SvREFCNT_dec_NN(dups);
}
#endif /* USE_ENVIRON_ARRAY */
#endif /* !PERL_MICRO */

View File

@ -1,6 +1,6 @@
--- Configure.orig 2015-04-15 07:47:18 UTC
--- Configure.orig 2016-04-08 21:45:19 UTC
+++ Configure
@@ -3833,7 +3833,10 @@ esac
@@ -3834,7 +3834,10 @@ esac
. ./posthint.sh
: who configured the system
@ -12,7 +12,7 @@
case "$cf_by" in
"")
cf_by=`(logname) 2>/dev/null`
@@ -5014,7 +5017,7 @@ esac
@@ -5015,7 +5018,7 @@ esac
: Now check and see which directories actually exist, avoiding duplicates
for xxx in $dlist
do
@ -21,7 +21,7 @@
case " $libpth " in
*" $xxx "*) ;;
*) libpth="$libpth $xxx";;
@@ -9515,8 +9518,7 @@ prefixvar=siteman3dir
@@ -9564,8 +9567,7 @@ prefixvar=siteman3dir
: determine where add-on public executable scripts go
case "$sitescript" in

View File

@ -1,6 +1,6 @@
--- t/porting/customized.dat.orig 2015-05-18 21:39:15 UTC
--- t/porting/customized.dat.orig 2015-10-31 13:36:16 UTC
+++ t/porting/customized.dat
@@ -13,7 +13,7 @@ ExtUtils::MakeMaker cpan/ExtUtils-MakeMa
@@ -14,7 +14,7 @@ ExtUtils::MakeMaker cpan/ExtUtils-MakeMa
ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mksymlists.pm ab80029ab16d38d4f2e41dc88d2ceb9f3790e477
ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM.pm 453e0abbc4bb38db4c0820ad5c4846f313b66291
ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_AIX.pm c1b1babda8f43ae7a2caba1cb4f70f92af5a0e34

View File

@ -1448,6 +1448,7 @@ etc/man.d/perl%%PKGNAMESUFFIX%%.conf
%%PRIV_LIB%%/pod/perl5203delta.pod
%%PRIV_LIB%%/pod/perl5220delta.pod
%%PRIV_LIB%%/pod/perl5221delta.pod
%%PRIV_LIB%%/pod/perl5222delta.pod
%%PRIV_LIB%%/pod/perl561delta.pod
%%PRIV_LIB%%/pod/perl56delta.pod
%%PRIV_LIB%%/pod/perl581delta.pod
@ -2066,6 +2067,7 @@ etc/man.d/perl%%PKGNAMESUFFIX%%.conf
%%MAN1%%/perl5203delta.1.gz
%%MAN1%%/perl5220delta.1.gz
%%MAN1%%/perl5221delta.1.gz
%%MAN1%%/perl5222delta.1.gz
%%MAN1%%/perl561delta.1.gz
%%MAN1%%/perl56delta.1.gz
%%MAN1%%/perl581delta.1.gz

View File

@ -1,2 +1,2 @@
PERL_VERSION= 5.22.1
PERL_VERSION= 5.22.2
PERL5_DEPEND= perl5>=5.22<5.23