Compare commits
No commits in common. "c8" and "c8s" have entirely different histories.
5
.gitignore
vendored
5
.gitignore
vendored
@ -1 +1,4 @@
|
||||
SOURCES/perl-5.26.3.tar.bz2
|
||||
/perl-5.26.1.tar.bz2
|
||||
/perl-5.26.2-RC1.tar.bz2
|
||||
/perl-5.26.2.tar.bz2
|
||||
/perl-5.26.3.tar.bz2
|
||||
|
@ -1 +0,0 @@
|
||||
4c61872bab631427cbb5b519ef8809d3a4c7f921 SOURCES/perl-5.26.3.tar.bz2
|
29
STAGE2-perl
Normal file
29
STAGE2-perl
Normal file
@ -0,0 +1,29 @@
|
||||
#requires gdbm
|
||||
|
||||
mcd $BUILDDIR/perl
|
||||
|
||||
GV=$(cd $SRC; echo perl-*)
|
||||
SONAME_VER=`echo $GV | cut -f2- -d'-' | sed 's/^\\([^.]*\\.[^.]*\\).*/\\1/'`
|
||||
PERL_VER=`echo $GV | cut -f2- -d'-'`
|
||||
|
||||
cd $SRC/$GV
|
||||
|
||||
sh $SRC/$GV/Configure -des -Dprefix=/usr -Dlibpth="/usr/local/lib$SUFFIX /lib$SUFFIX /usr/lib$SUFFIX" -Darchlib="/usr/lib$SUFFIX/perl5" -Dsitelib="/usr/local/share/perl5" -DDEBUGGING=-g -Dcc=gcc -Dmyhostname=localhost -Dperladmin=root@localhost -Duseshrplib -Dusethreads -Duseithreads -Uusedtrace -Duselargefiles -Dd_semctl_semun -Di_db -Ui_ndbm -Di_gdbm -Di_shadow -Di_syslog -Dman3ext=3pm -Duseperlio -Dinstallusrbinperl=n -Ubincompat5005 -Uversiononly -Dd_gethostent_r_proto -Ud_endhostent_r_proto -Ud_sethostent_r_proto -Ud_endprotoent_r_proto -Ud_setprotoent_r_proto -Ud_endservent_r_proto -Ud_setservent_r_proto
|
||||
|
||||
BUILD_BZIP2=0
|
||||
BZIP2_LIB=%{_libdir}
|
||||
export BUILD_BZIP2 BZIP2_LIB
|
||||
|
||||
ln -sf libperl.so libperl.so.${SONAME_VER}
|
||||
|
||||
make
|
||||
|
||||
rm -f /usr/lib${SUFFIX}/perl5/CORE/libperl.so
|
||||
|
||||
make install
|
||||
|
||||
rm -f /usr/lib${SUFFIX}/libperl.so.${PERL_VER}
|
||||
mv /usr/lib${SUFFIX}/perl5/CORE/libperl.so /usr/lib${SUFFIX}/libperl.so.${PERL_VER}
|
||||
ln -sf libperl.so.${PERL_VER} /usr/lib${SUFFIX}/libperl.so.${SONAME_VER}
|
||||
ln -sf libperl.so.${PERL_VER} /usr/lib${SUFFIX}/libperl.so
|
||||
ln -sf libperl.so.${PERL_VER} /usr/lib${SUFFIX}/perl5/CORE/libperl.so
|
11
checkemptydirs
Executable file
11
checkemptydirs
Executable file
@ -0,0 +1,11 @@
|
||||
#!/bin/bash
|
||||
for P in "$@"; do
|
||||
echo "Empty directories in RPM package $P:"
|
||||
|
||||
for D in $(rpm -qlvp "$P" | \
|
||||
perl -ne \
|
||||
'if (/\Adrwx/) {$n=${[split /\s+/]}[8]; print qq{$n\n}}' | \
|
||||
sort -f); do
|
||||
test $(rpm -qlp "$P" | grep -c -F "$D/") == 0 && echo "$D";
|
||||
done
|
||||
done
|
93
checkpackageversion
Executable file
93
checkpackageversion
Executable file
@ -0,0 +1,93 @@
|
||||
#!/usr/bin/perl
|
||||
use strict;
|
||||
use warnings;
|
||||
use utf8;
|
||||
|
||||
use RPM2;
|
||||
|
||||
for my $rpm_file (@ARGV) {
|
||||
my $package = RPM2->open_package($rpm_file)
|
||||
or die q{Could not open `} . $rpm_file . q{'.};
|
||||
|
||||
my $package_name = $package->tag('NAME');
|
||||
my $package_version = $package->tag('VERSION');
|
||||
|
||||
my $module_name = $package_name;
|
||||
$module_name =~ s/^([^-]+)-(.*)/$1($2)/;
|
||||
$module_name =~ s/-/::/g;
|
||||
|
||||
my @names = $package->tag('PROVIDENAME');
|
||||
my @flags = $package->tag('PROVIDEFLAGS');
|
||||
my @versions = $package->tag('PROVIDEVERSION');
|
||||
if (!($#names == $#flags) && ($#names == $#versions)) {
|
||||
die (q{Inconsistent number of provides names, flags, and versions in `}
|
||||
. $rpm_file . q{'.});
|
||||
}
|
||||
|
||||
my $found = 0;
|
||||
for my $name (@names) {
|
||||
my $flag = shift @flags;
|
||||
my $version = shift @versions;
|
||||
if ($name eq $module_name) {
|
||||
$found = 1;
|
||||
|
||||
if (($flag & 0x8) && (($flag & (0x2+0x4)) == 0)) {
|
||||
if (!($package_version eq $version)) {
|
||||
print $rpm_file . q{: Package version `} .
|
||||
$package_version . q{' differs from `} .
|
||||
$module_name . q{' module version `} .
|
||||
$version . q{'.} . "\n";
|
||||
}
|
||||
last;
|
||||
} else {
|
||||
print $rpm_file . q{: `} . $module_name .
|
||||
q{' in list of provides is not qualified (};
|
||||
printf '0x%x', $flag;
|
||||
print q{) as equaled.} . "\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($found == 0) {
|
||||
print $rpm_file . q{: missing `} . $module_name .
|
||||
q{' in list of provides.} . "\n";
|
||||
}
|
||||
}
|
||||
|
||||
__END__
|
||||
=encoding utf8
|
||||
|
||||
=head1 NAME
|
||||
|
||||
checkpackageversion - Check a RPM package version matches main Perl module
|
||||
version
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
checkpackageversion RPM_PACKAGE...
|
||||
|
||||
It opens each RPM_PACKAGE, guesses a main Perl module from package name, finds
|
||||
it in list of provides (e.g. perl-Foo-Bar → perl(Foo::Bar) and compares
|
||||
versions. It reports any irregularities to standard output.
|
||||
|
||||
Petr Písař <ppisar@redhat.com>
|
||||
|
||||
=head1 COPYING
|
||||
|
||||
Copyright (C) 2011 Petr Písař <ppisar@redhat.com>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
=cut
|
||||
|
39
clean-manifest.pl
Normal file
39
clean-manifest.pl
Normal file
@ -0,0 +1,39 @@
|
||||
#!/usr/bin/perl -w
|
||||
use strict;
|
||||
|
||||
my ($arch, $patfile, $infile, $outfile, $libdir, $thread_arch) = @ARGV;
|
||||
|
||||
if (not $arch or not $patfile or not $infile or not $outfile or not $libdir) {
|
||||
die "Usage: $0 arch thread_arch pattern-file in-file out-file libdir [ threadarch ]";
|
||||
}
|
||||
|
||||
$thread_arch ||= '';
|
||||
|
||||
open IN, "<$infile"
|
||||
or die "Can't open $infile: $!";
|
||||
open OUT, ">$outfile"
|
||||
or die "Can't open $outfile: $!";
|
||||
open PATTERN, "<$patfile"
|
||||
or die "Can't open $patfile: $!";
|
||||
|
||||
my @patterns = <PATTERN>;
|
||||
chomp @patterns;
|
||||
for my $p (@patterns) {
|
||||
$p =~ s/%{_libdir}/$libdir/g;
|
||||
$p =~ s/%{_arch}/$arch/g;
|
||||
$p =~ s/%{thread_arch}/$thread_arch/g;
|
||||
}
|
||||
|
||||
my %exclude = map { $_ => 1 } @patterns;
|
||||
|
||||
close PATTERN;
|
||||
|
||||
while(<IN>) {
|
||||
chomp;
|
||||
|
||||
print OUT "$_\n"
|
||||
unless exists $exclude{$_}
|
||||
}
|
||||
|
||||
close IN;
|
||||
close OUT;
|
33
diffrpms
Executable file
33
diffrpms
Executable file
@ -0,0 +1,33 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [ "$#" != 2 ]; then
|
||||
cat<<EOM
|
||||
Usage: $(basename $0) OLD_RELEASE NEW_RELEASE
|
||||
|
||||
Compares corresponding RPM packages produced in OLD_RELASE and NEW_RELEASE.
|
||||
The same version strings are assumed.
|
||||
EOM
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
OLD_RELEASE="$1"
|
||||
NEW_RELEASE="$2"
|
||||
|
||||
function process_dir() {
|
||||
for F in $(ls $1/* | sed -r 's/-[0-9].*//' | sort | uniq ); do
|
||||
OLD_RPM=$(echo ${F}-[0-9]*-${OLD_RELEASE}.*)
|
||||
NEW_RPM=$(echo ${F}-[0-9]*-${NEW_RELEASE}.*)
|
||||
|
||||
test \( ! -e "$OLD_RPM" \) -a \( ! -e "$NEW_RPM" \) && continue
|
||||
if [ ! -e "$OLD_RPM" ]; then echo "+ Package ${F}"; continue; fi
|
||||
if [ ! -e "$NEW_RPM" ]; then echo "- Package ${F}"; continue; fi
|
||||
|
||||
DIFF=$(rpmdiff -i S -i 5 -i T "$OLD_RPM" "$NEW_RPM" | \
|
||||
grep -vE 'REQUIRES perl = | REQUIRES rpmlib\(' )
|
||||
|
||||
test -n "$DIFF" && printf '* %s:\n%s\n' "$F" "$DIFF"
|
||||
done
|
||||
}
|
||||
|
||||
process_dir 'x86_64'
|
||||
process_dir 'noarch'
|
10
gating.yaml
Normal file
10
gating.yaml
Normal file
@ -0,0 +1,10 @@
|
||||
--- !Policy
|
||||
product_versions:
|
||||
- rhel-8
|
||||
decision_context: osci_compose_gate
|
||||
rules:
|
||||
- !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.acceptance-tier.functional}
|
||||
- !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tier1.functional}
|
||||
- !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tier2.functional}
|
||||
- !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tier3.functional}
|
||||
- !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tiers-no-perlcore.functional}
|
163
generatedependencies
Executable file
163
generatedependencies
Executable file
@ -0,0 +1,163 @@
|
||||
#!/usr/bin/perl
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
# Split "A B >= 1" dependencies string into ("A", "B >= 1") list.
|
||||
sub appendsymbols {
|
||||
my ($array, $line) = @_;
|
||||
my $qualified;
|
||||
my $dependency;
|
||||
for my $token (split(/\s/, $line)) {
|
||||
if ($token =~ /\A[<>]?=\z/) {
|
||||
$qualified = 1;
|
||||
$dependency .= ' ' . $token;
|
||||
next;
|
||||
}
|
||||
if (!$qualified) {
|
||||
if (defined $dependency) {
|
||||
push @$array, $dependency;
|
||||
}
|
||||
$dependency = $token;
|
||||
next;
|
||||
}
|
||||
if ($qualified) {
|
||||
$qualified = 0;
|
||||
$dependency .= ' ' . $token;
|
||||
push @$array, $dependency;
|
||||
$dependency = undef;
|
||||
next;
|
||||
}
|
||||
}
|
||||
if (defined $dependency) {
|
||||
push @$array, $dependency;
|
||||
}
|
||||
}
|
||||
|
||||
# Return true if the argument is a Perl dependency. Otherwise return false.
|
||||
sub is_perl_dependency {
|
||||
my $dependency = shift;
|
||||
return ($dependency =~ /\Aperl\(/);
|
||||
}
|
||||
|
||||
my $file = shift @ARGV;
|
||||
if (!defined $file) {
|
||||
die "Missing an argument with an RPM build log!\n"
|
||||
}
|
||||
|
||||
# Parse build log
|
||||
open(my $log, '<', $file) or die "Could not open `$file': $!\n";
|
||||
my ($package, %packages);
|
||||
while (!eof($log)) {
|
||||
defined($_ = <$log>) or die "Error while reading from `$file': $!\n";
|
||||
chomp;
|
||||
|
||||
if (/\AProcessing files: ([\S]+)-[^-]+-[^-]+$/) {
|
||||
$package = $1;
|
||||
$packages{$package}{requires} = [];
|
||||
$packages{$package}{provides} = [];
|
||||
} elsif ($package && /\AProvides: (.*)\z/) {
|
||||
appendsymbols($packages{$package}{provides}, $1);
|
||||
} elsif ($package && /\ARequires: (.*)\z/) {
|
||||
appendsymbols($packages{$package}{requires}, $1);
|
||||
}
|
||||
}
|
||||
close($log);
|
||||
|
||||
# Save dependencies into file
|
||||
my $filename = 'gendep.macros';
|
||||
open (my $gendep, '>', $filename) or
|
||||
die "Could not open `$filename' for writing: $!\n";
|
||||
for my $package (sort keys %packages) {
|
||||
# Macro name
|
||||
my $macro = 'gendep_' . $package;
|
||||
$macro =~ s/[+-]/_/g;
|
||||
$gendep->print("%global $macro \\\n");
|
||||
# Macro value
|
||||
for my $dependency (@{$packages{$package}{requires}}) {
|
||||
if (is_perl_dependency($dependency)) {
|
||||
$gendep->print("Requires: $dependency \\\n");
|
||||
}
|
||||
}
|
||||
for my $dependency (@{$packages{$package}{provides}}) {
|
||||
if (is_perl_dependency($dependency)) {
|
||||
$gendep->print("Provides: $dependency \\\n");
|
||||
}
|
||||
}
|
||||
# Macro trailer
|
||||
$gendep->print("%{nil}\n");
|
||||
}
|
||||
close($gendep) or die "Could not close `$filename': $!\n";
|
||||
|
||||
|
||||
__END__
|
||||
=encoding utf8
|
||||
|
||||
=head1 NAME
|
||||
|
||||
generatedependencies - Distil generated Perl dependencies from a build log
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
B<generatedependencies> I<BUILD_LOG>
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
It opens specified RPM build log I<BUILD_LOG>. It locates a protocol about
|
||||
autogenerated dependencies. It stores the reported dependencies into F<./gendep.macros> file.
|
||||
|
||||
The output file will define macros C<gendep_I<BINARY_PACKAGE_NAME>>. A macro
|
||||
for each binary package. The macro name will use underscores instead of
|
||||
hyphens or other SPEC language special characters.
|
||||
|
||||
It will ignore non-Perl dependencies (not C<perl(*)>) as they do not come from
|
||||
Perl dependency generator.
|
||||
|
||||
=head1 EXIT CODE
|
||||
|
||||
Returns zero, if no error occurred. Otherwise non-zero code is returned.
|
||||
|
||||
=head1 EXAMPLE
|
||||
|
||||
The invocation is:
|
||||
|
||||
$ generatedependencies .build-5.24.0-364.fc25.log
|
||||
|
||||
The output is:
|
||||
|
||||
$ grep -A5 perl_Devel_Peek gendep.macros
|
||||
%global gendep_perl_Devel_Peek \
|
||||
Requires: perl(Exporter) \
|
||||
Requires: perl(XSLoader) \
|
||||
Provides: perl(Devel::Peek) = 1.23 \
|
||||
%nil{}
|
||||
%global gendep_perl_Devel_SelfStubber \
|
||||
|
||||
|
||||
The output can be used in a spec file like:
|
||||
|
||||
Name: perl
|
||||
Source0: gendep.macros
|
||||
%include %{SOURCE0}
|
||||
%package Devel-Peek
|
||||
%gendep_Devel_Peek
|
||||
%package Devel-SelfStubber
|
||||
%gendep_Devel_SelfStubber
|
||||
|
||||
=head1 COPYING
|
||||
|
||||
Copyright (C) 2016 Petr Písař <ppisar@redhat.com>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
=cut
|
182
perl-5.26.2-Perl_my_setenv-handle-integer-wrap.patch
Normal file
182
perl-5.26.2-Perl_my_setenv-handle-integer-wrap.patch
Normal file
@ -0,0 +1,182 @@
|
||||
From c3ae24b135b28366330eb3dd4b8d61a0f0ee34d5 Mon Sep 17 00:00:00 2001
|
||||
From: David Mitchell <davem@iabyn.com>
|
||||
Date: Fri, 29 Jun 2018 13:37:03 +0100
|
||||
Subject: [PATCH] Perl_my_setenv(); handle integer wrap
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
RT #133204
|
||||
|
||||
Wean this function off int/I32 and onto UV/Size_t.
|
||||
Also, replace all malloc-ish calls with a wrapper that does
|
||||
overflow checks,
|
||||
|
||||
In particular, it was doing (nlen + vlen + 2) which could wrap when
|
||||
the combined length of the environment variable name and value
|
||||
exceeded around 0x7fffffff.
|
||||
|
||||
The wrapper check function is probably overkill, but belt and braces...
|
||||
|
||||
NB this function has several variant parts, #ifdef'ed by platform
|
||||
type; I have blindly changed the parts that aren't compiled under linux.
|
||||
|
||||
Petr Písař: Ported to 5.26.2 from upstream 34716e2a6ee commit.
|
||||
|
||||
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||
---
|
||||
util.c | 76 ++++++++++++++++++++++++++++++++++++++++++++++--------------------
|
||||
1 file changed, 53 insertions(+), 23 deletions(-)
|
||||
|
||||
diff --git a/util.c b/util.c
|
||||
index 69763bc..1e0c95f 100644
|
||||
--- a/util.c
|
||||
+++ b/util.c
|
||||
@@ -2064,8 +2064,40 @@ Perl_new_warnings_bitfield(pTHX_ STRLEN *buffer, const char *const bits,
|
||||
*(s+(nlen+1+vlen)) = '\0'
|
||||
|
||||
#ifdef USE_ENVIRON_ARRAY
|
||||
- /* VMS' my_setenv() is in vms.c */
|
||||
+
|
||||
+/* small wrapper for use by Perl_my_setenv that mallocs, or reallocs if
|
||||
+ * 'current' is non-null, with up to three sizes that are added together.
|
||||
+ * It handles integer overflow.
|
||||
+ */
|
||||
+static char *
|
||||
+S_env_alloc(void *current, Size_t l1, Size_t l2, Size_t l3, Size_t size)
|
||||
+{
|
||||
+ void *p;
|
||||
+ Size_t sl, l = l1 + l2;
|
||||
+
|
||||
+ if (l < l2)
|
||||
+ goto panic;
|
||||
+ l += l3;
|
||||
+ if (l < l3)
|
||||
+ goto panic;
|
||||
+ sl = l * size;
|
||||
+ if (sl < l)
|
||||
+ goto panic;
|
||||
+
|
||||
+ p = current
|
||||
+ ? safesysrealloc(current, sl)
|
||||
+ : safesysmalloc(sl);
|
||||
+ if (p)
|
||||
+ return (char*)p;
|
||||
+
|
||||
+ panic:
|
||||
+ croak_memory_wrap();
|
||||
+}
|
||||
+
|
||||
+
|
||||
+/* VMS' my_setenv() is in vms.c */
|
||||
#if !defined(WIN32) && !defined(NETWARE)
|
||||
+
|
||||
void
|
||||
Perl_my_setenv(pTHX_ const char *nam, const char *val)
|
||||
{
|
||||
@@ -2081,28 +2113,27 @@ Perl_my_setenv(pTHX_ const char *nam, const char *val)
|
||||
#ifndef PERL_USE_SAFE_PUTENV
|
||||
if (!PL_use_safe_putenv) {
|
||||
/* most putenv()s leak, so we manipulate environ directly */
|
||||
- I32 i;
|
||||
- const I32 len = strlen(nam);
|
||||
- int nlen, vlen;
|
||||
+ UV i;
|
||||
+ Size_t vlen, nlen = strlen(nam);
|
||||
|
||||
/* where does it go? */
|
||||
for (i = 0; environ[i]; i++) {
|
||||
- if (strnEQ(environ[i],nam,len) && environ[i][len] == '=')
|
||||
+ if (strnEQ(environ[i], nam, nlen) && environ[i][nlen] == '=')
|
||||
break;
|
||||
}
|
||||
|
||||
if (environ == PL_origenviron) { /* need we copy environment? */
|
||||
- I32 j;
|
||||
- I32 max;
|
||||
+ UV j, max;
|
||||
char **tmpenv;
|
||||
|
||||
max = i;
|
||||
while (environ[max])
|
||||
max++;
|
||||
- tmpenv = (char**)safesysmalloc((max+2) * sizeof(char*));
|
||||
+ /* XXX shouldn't that be max+1 rather than max+2 ??? - DAPM */
|
||||
+ tmpenv = (char**)S_env_alloc(NULL, max, 2, 0, sizeof(char*));
|
||||
for (j=0; j<max; j++) { /* copy environment */
|
||||
- const int len = strlen(environ[j]);
|
||||
- tmpenv[j] = (char*)safesysmalloc((len+1)*sizeof(char));
|
||||
+ const Size_t len = strlen(environ[j]);
|
||||
+ tmpenv[j] = S_env_alloc(NULL, len, 1, 0, 1);
|
||||
Copy(environ[j], tmpenv[j], len+1, char);
|
||||
}
|
||||
tmpenv[max] = NULL;
|
||||
@@ -2121,15 +2152,15 @@ Perl_my_setenv(pTHX_ const char *nam, const char *val)
|
||||
#endif
|
||||
}
|
||||
if (!environ[i]) { /* does not exist yet */
|
||||
- environ = (char**)safesysrealloc(environ, (i+2) * sizeof(char*));
|
||||
+ environ = (char**)S_env_alloc(environ, i, 2, 0, sizeof(char*));
|
||||
environ[i+1] = NULL; /* make sure it's null terminated */
|
||||
}
|
||||
else
|
||||
safesysfree(environ[i]);
|
||||
- nlen = strlen(nam);
|
||||
+
|
||||
vlen = strlen(val);
|
||||
|
||||
- environ[i] = (char*)safesysmalloc((nlen+vlen+2) * sizeof(char));
|
||||
+ environ[i] = S_env_alloc(NULL, nlen, vlen, 2, 1);
|
||||
/* all that work just for this */
|
||||
my_setenv_format(environ[i], nam, nlen, val, vlen);
|
||||
} else {
|
||||
@@ -2154,22 +2185,21 @@ Perl_my_setenv(pTHX_ const char *nam, const char *val)
|
||||
if (environ) /* old glibc can crash with null environ */
|
||||
(void)unsetenv(nam);
|
||||
} else {
|
||||
- const int nlen = strlen(nam);
|
||||
- const int vlen = strlen(val);
|
||||
- char * const new_env =
|
||||
- (char*)safesysmalloc((nlen + vlen + 2) * sizeof(char));
|
||||
+ const Size_t nlen = strlen(nam);
|
||||
+ const Size_t vlen = strlen(val);
|
||||
+ char * const new_env = S_env_alloc(NULL, nlen, vlen, 2, 1);
|
||||
my_setenv_format(new_env, nam, nlen, val, vlen);
|
||||
(void)putenv(new_env);
|
||||
}
|
||||
# else /* ! HAS_UNSETENV */
|
||||
char *new_env;
|
||||
- const int nlen = strlen(nam);
|
||||
- int vlen;
|
||||
+ const Size_t nlen = strlen(nam);
|
||||
+ Size_t vlen;
|
||||
if (!val) {
|
||||
val = "";
|
||||
}
|
||||
vlen = strlen(val);
|
||||
- new_env = (char*)safesysmalloc((nlen + vlen + 2) * sizeof(char));
|
||||
+ new_env = S_env_alloc(NULL, nlen, vlen, 2, 1);
|
||||
/* all that work just for this */
|
||||
my_setenv_format(new_env, nam, nlen, val, vlen);
|
||||
(void)putenv(new_env);
|
||||
@@ -2192,14 +2222,14 @@ Perl_my_setenv(pTHX_ const char *nam, const char *val)
|
||||
{
|
||||
dVAR;
|
||||
char *envstr;
|
||||
- const int nlen = strlen(nam);
|
||||
- int vlen;
|
||||
+ const Size_t nlen = strlen(nam);
|
||||
+ Size_t vlen;
|
||||
|
||||
if (!val) {
|
||||
val = "";
|
||||
}
|
||||
vlen = strlen(val);
|
||||
- Newx(envstr, nlen+vlen+2, char);
|
||||
+ envstr = S_env_alloc(NULL, nlen, vlen, 2, 1);
|
||||
my_setenv_format(envstr, nam, nlen, val, vlen);
|
||||
(void)PerlEnv_putenv(envstr);
|
||||
Safefree(envstr);
|
||||
--
|
||||
2.14.4
|
||||
|
15
perl-5.8.0-libnet.cfg
Normal file
15
perl-5.8.0-libnet.cfg
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
'pop3_hosts' => [],
|
||||
'ph_hosts' => [],
|
||||
'inet_domain' => undef,
|
||||
'time_hosts' => [],
|
||||
'daytime_hosts' => [],
|
||||
'smtp_hosts' => [],
|
||||
'test_exist' => 1,
|
||||
'test_hosts' => 1,
|
||||
'nntp_hosts' => [],
|
||||
'ftp_testhost' => undef,
|
||||
'snpp_hosts' => [],
|
||||
'ftp_int_passive' => 1,
|
||||
'ftp_ext_passive' => 1,
|
||||
}
|
3
perl.rpmlintrc
Normal file
3
perl.rpmlintrc
Normal file
@ -0,0 +1,3 @@
|
||||
from Config import *
|
||||
addFilter("spelling-error .* (autoloaded|awk|gmtime|groff|libnet|localtime|Memoizing|metapackage|perlbug|perldoc|perlfunc|perlmain|perlpod|perlsub|reachability|rpmbuild|sed|splain|usr|writemain)");
|
||||
addFilter("unexpanded-macro %description .* %INC");
|
1
sources
Normal file
1
sources
Normal file
@ -0,0 +1 @@
|
||||
SHA512 (perl-5.26.3.tar.bz2) = b024556f3a9cd9d55a1b08a52540f8e428f0ea31dcf88df79e3b56724ea880fb07af0a22d22abb40488584b640f66cbdc1d5e13a0226a8dcb628fb1839b1e54e
|
7
system-owned-directories
Normal file
7
system-owned-directories
Normal file
@ -0,0 +1,7 @@
|
||||
%dir /usr
|
||||
%dir /usr/bin
|
||||
%dir /usr/lib
|
||||
%dir /usr/share
|
||||
%dir /usr/share/man
|
||||
%dir /usr/share/man/man1
|
||||
%dir /usr/share/man/man3
|
Loading…
Reference in New Issue
Block a user