Perl / perl5

🐪 The Perl programming language
https://dev.perl.org/perl5/
Other
2.12k stars 584 forks source link

Not OK: perl v5.7.0 +SUIDMAIL +DEVEL6788 on dos-djgpp djgpp (UNINSTALLED) [PATCH] #2462

Closed p5pRT closed 21 years ago

p5pRT commented 24 years ago

Migrated from rt.perl.org#3892 (status was 'resolved')

Searchable as RT3892$

p5pRT commented 24 years ago

From ml1050@freemail.hu

Hi\,

here is an update for dos-djgpp. This fixes some build problems and most of the broken test cases. However\, my dosemu session hangs on the Storable tests... Trying to debug it.

Laszlo

patch attached below (apply with -p0) :

lib/File/Temp.pm t/pragma/warn/pp_sys t/lib/posix.t t/lib/ftmp-security.t pod/buildtoc.PL djgpp/config.over

--8\<-- patch starts here

Inline Patch ```diff --- lib/File/Temp.pm~ Wed Aug 23 15:19:06 2000 +++ lib/File/Temp.pm Sat Aug 26 19:22:13 2000 @@ -674,7 +674,7 @@ sub _can_unlink_opened_file { - if ($^O eq 'MSWin32' || $^O eq 'os2' || $^O eq 'VMS') { + if ($^O eq 'MSWin32' || $^O eq 'os2' || $^O eq 'VMS' || $^O eq 'dos') { return 0; } else { return 1; @@ -698,7 +698,7 @@ return 1 if $level == STANDARD; # Currently, the systems that can do HIGH or MEDIUM are identical - if ( $^O eq 'MSWin32' || $^O eq 'os2' || $^O eq 'cygwin') { + if ( $^O eq 'MSWin32' || $^O eq 'os2' || $^O eq 'cygwin' || $^O eq 'dos') { return 0; } else { return 1; @@ -1494,6 +1494,8 @@ @okstat = (0, 2..$#fh); } elsif ($^O eq 'VMS') { # device and file ID are sufficient @okstat = (0, 1); + } elsif ($^O eq 'dos') { + @okstat = (0,2..7,11..$#fh); } # Now compare each entry explicitly by number --- t/pragma/warn/pp_sys~ Wed Aug 23 15:25:14 2000 +++ t/pragma/warn/pp_sys Sat Aug 26 22:26:23 2000 @@ -382,6 +382,13 @@ ######## # pp_sys.c [pp_sysread] use warnings 'io' ; +if ($^O eq 'dos') { + print <$file") ; my $a = sysread(F, $a,10) ; --- t/lib/posix.t~ Wed Aug 23 15:24:28 2000 +++ t/lib/posix.t Sat Aug 26 22:16:30 2000 @@ -17,6 +17,7 @@ print "1..27\n"; $Is_W32 = $^O eq 'MSWin32'; +$Is_Dos = $^O eq 'dos'; $testfd = open("TEST", O_RDONLY, 0) and print "ok 1\n"; read($testfd, $buffer, 9) if $testfd > 2; @@ -24,6 +25,11 @@ write(1,"ok 3\nnot ok 3\n", 5); +if ($Is_Dos) { + for (4..5) { + print "ok $_ # skipped, no pipe() support on dos\n"; + } +} else { @fds = POSIX::pipe(); print $fds[0] > $testfd ? "ok 4\n" : "not ok 4\n"; CORE::open($reader = \*READER, "<&=".$fds[0]); @@ -32,10 +38,11 @@ close $writer; print <$reader>; close $reader; +} -if ($Is_W32) { +if ($Is_W32 || $Is_Dos) { for (6..11) { - print "ok $_ # skipped, no sigaction support on win32\n"; + print "ok $_ # skipped, no sigaction support on win32/dos\n"; } } else { --- t/lib/ftmp-security.t~ Wed Aug 23 15:24:26 2000 +++ t/lib/ftmp-security.t Sat Aug 26 22:10:35 2000 @@ -25,7 +25,7 @@ ok(1); # The high security tests must currently be skipped on Windows -my $skipplat = ( ($^O eq 'MSWin32' || $^O eq 'os2') ? 1 : 0 ); +my $skipplat = ( ($^O eq 'MSWin32' || $^O eq 'os2' || $^O eq 'dos') ? 1 : 0 ); # Can not run high security tests in perls before 5.6.0 my $skipperl = ($] < 5.006 ? 1 : 0 ); --- pod/buildtoc.PL~ Wed Aug 23 15:22:06 2000 +++ pod/buildtoc.PL Sat Aug 26 17:57:49 2000 @@ -472,3 +472,7 @@ !NO!SUBS! +close OUT or die "Can't close $file: $!"; +chmod 0755, $file or die "Can't reset permissions for $file: $!\n"; +exec("$Config{'eunicefix'} $file") if $Config{'eunicefix'} ne ':'; +chdir $origdir; --- djgpp/config.over~ Wed Aug 23 15:16:20 2000 +++ djgpp/config.over Sat Aug 26 17:54:27 2000 @@ -34,7 +34,8 @@ -e 's=file/=='\ -e 's=File/=='\ -e 's=glob=='\ - -e 's=Glob==' + -e 's=Glob=='\ + -e 's/storable/Storable/' } static_ext=$(repair "$static_ext") extensions=$(repair "$extensions") --8<-- end of patch ```
Perl Info ``` Flags: category=install severity=none Site configuration information for perl v5.7.0: Configured by ml1050 at Sat Aug 26 18:02:44 2000. Summary of my perl5 (revision 5.0 version 7 subversion 0) configuration: Platform: osname=dos, osvers=djgpp, archname=dos-djgpp uname='ibmpcdos pc 6 00 pc ' config_args='-dEs' hint=recommended, useposix=true, d_sigaction=define usethreads=undef use5005threads=undef useithreads=undef usemultiplicity=undef useperlio=undef d_sfio=undef uselargefiles=define use64bitint=undef use64bitall=undef uselongdouble=undef usesocks=undef Compiler: cc='gcc', optimize='-O2 -malign-loops=2 -malign-jumps=2 -malign-functions=2', gccversion=2.95.2 19991024 (release), gccosandvers= cppflags='-DPERL_EXTERNAL_GLOB -fno-strict-aliasing' ccflags ='-DPERL_EXTERNAL_GLOB -fno-strict-aliasing' stdchar='char', d_stdstdio=undef, usevfork=false intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234 d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12 ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=4 alignbytes=4, usemymalloc=n, prototype=define Linker and Libraries: ld='ld', ldflags ='-s' libpth=c:/djgpp/lib libs=-lm -lc libc=c:/djgpp/lib/libc.a, so=none, useshrplib=false, libperl=libperl.a Dynamic Linking: dlsrc=dl_none.xs, dlext=none, d_dlsymun=undef, ccdlflags='' cccdlflags='', lddlflags='' Locally applied patches: SUIDMAIL - fixes for suidperl security DEVEL6788 @INC for perl v5.7.0: lib ./lib/perl5 ./lib/perl5/site ./lib/perl5/site c:/djgpp/lib/perl5/site . Environment for perl v5.7.0: HOME=c:/djgpp LANG (unset) LANGUAGE (unset) LD_LIBRARY_PATH (unset) LOGDIR (unset) PATH=c:\djgpp\bin;c:\util;c:\shez PERL_BADLANG (unset) SHELL=c:/djgpp/bin/sh.exe ```
p5pRT commented 24 years ago

From @jhi

Applied\, thanks.