Re: OpenBSD perl 5.32.1 - Call for Testing

2021-02-27 Thread George Koehler
On Fri, 26 Feb 2021 11:31:07 -0800
Andrew Hewus Fresh  wrote:

> On Sat, Feb 20, 2021 at 02:11:45PM -0800, Andrew Hewus Fresh wrote:
> > I've probably missed making it in for 6.9, but it is again time for
> > testing a perl update so it can become /usr/bin/perl
> 
> It was pointed out that there is still time to get this in for 6.9, and
> sthen@ says it looks OK in a bulk ports build, so I'll be working on
> preparing the import this weekend.  Please let me know of any reasons
> to hold off.

Good news that ports can build.  I had moved my amd64 and powerpc64
to perl 5.32.1, but have not yet built any ports.  I will move my
macppc to 5.32.1 sometime after your import it.--George



Re: OpenBSD perl 5.32.1 - Call for Testing

2021-02-26 Thread Andrew Hewus Fresh
On Sat, Feb 20, 2021 at 02:11:45PM -0800, Andrew Hewus Fresh wrote:
> I've probably missed making it in for 6.9, but it is again time for
> testing a perl update so it can become /usr/bin/perl

It was pointed out that there is still time to get this in for 6.9, and
sthen@ says it looks OK in a bulk ports build, so I'll be working on
preparing the import this weekend.  Please let me know of any reasons
to hold off.



> 
> Several good changes this time:
> https://metacpan.org/pod/distribution/perl/pod/perl5320delta.pod
> https://metacpan.org/pod/release/SHAY/perl-5.32.1/pod/perldelta.pod
> 
> * A new "isa" operator
> * A new feature "no indirect" that disables indirect object notation
> * Chained comparisons ( $x < $y <= $z )
> * Unicode 13.0
> * IO::Compress now comes with the streamzip utility.
> 
> Plus a bunch of other unicode and regex things as well as new versions
> of many modules.
> 
> It also includes the recent PERL_HASH fix for 64bit strict alignment
> architectures and removes several local patches that were merged
> upstream.
> 
> It would be nice to get feedback on some of the architectures I don't
> have, and a bulk ports build to see what sort of fallout happens there.
> 
> The logs for what I do have are here:
> https://github.com/afresh1/OpenBSD-perl/tree/blead/build_logs/perl-5.32.1
> 
> Which are alpha, amd64, arm64, armv7, macppc, octeon, and sparc64.
> 
> The issues I had in 5.30 with capturing output from forked processes on my
> alpha are still there, could just be that it's slow.
> 
> For running the perl test suite, you can follow the instructions on
> github, repeated here:
> 
> https://github.com/afresh1/OpenBSD-perl
> 
> download the patches and scripts
>   https://github.com/afresh1/OpenBSD-perl/archive/blead.tar.gz
>   and extract someplace
>   or git clone https://github.com/afresh1/OpenBSD-perl.git
> download perl-5.30.0.tar.gz into the same directory
> https://cpan.metacpan.org/authors/id/S/SH/SHAY/perl-5.32.1.tar.gz
> cd to someplace you have room
> run /path/to/OpenBSD-perl/build_perl
> wait
> send me the log file(s) it generates
> 
> 
> You can download a pre-patched version of perl that can be extracted to 
> replace
> src/gnu/usr.bin/perl for building a system with the new perl:
> https://cvs.afresh1.com/~andrew/perl-update/OpenBSD-perl-5.32.1.tar.gz
> 
> I also have what should be a mostly correct sets/lists patch for building a 
> release.
> https://cvs.afresh1.com/~andrew/perl-update/OpenBSD-perl-5.32.1-sets.patch
> 
> There are also several files that are no longer part of the perl distribution:
> 
> rm -r /usr/bin/podselect \
>   /usr/lib/libperl.so.20.0 \
>   /usr/lib/libperl.so.21.0 \
>   /usr/libdata/perl5/*/CORE/dquote_inline.h \
>   /usr/libdata/perl5/*/Tie \
>   /usr/libdata/perl5/*/auto/Tie \
>   /usr/libdata/perl5/Pod/Find.pm \
>   /usr/libdata/perl5/Pod/InputObjects.pm \
>   /usr/libdata/perl5/Pod/ParseUtils.pm \
>   /usr/libdata/perl5/Pod/Parser.pm \
>   /usr/libdata/perl5/Pod/PlainText.pm \
>   /usr/libdata/perl5/Pod/Select.pm \
>   /usr/libdata/perl5/pod/perlce.pod \
>   /usr/libdata/perl5/unicore/Heavy.pl \
>   /usr/libdata/perl5/unicore/lib/Lb/EB.pl \
>   /usr/libdata/perl5/unicore/lib/Perl/_PerlNon.pl \
>   /usr/libdata/perl5/unicore/lib/Sc/Armn.pl \
>   /usr/libdata/perl5/utf8_heavy.pl \
>   /usr/share/man/man1/podselect.1 \
>   /usr/share/man/man3p/Pod::Find.3p \
>   /usr/share/man/man3p/Pod::InputObjects.3p \
>   /usr/share/man/man3p/Pod::ParseUtils.3p \
>   /usr/share/man/man3p/Pod::Parser.3p \
>   /usr/share/man/man3p/Pod::PlainText.3p \
>   /usr/share/man/man3p/Pod::Select.3p
> 
> 
> There's also patch file that should apply to a -current tree updating to
> perl 5.32.1.  You'll still need the sets lists patch if you're planning
> to build a release.
> 
> https://cvs.afresh1.com/~andrew/perl-update/OpenBSD-perl-5.32.1.patch
> 
> Unfortunately the patch doesn't actually apply due to non-ascii files in
> the diff, not quite sure the magic incantation to make that work, so I
> recommend replacing src/gnu/usr.bin/perl with the extracted tar.gz
> linked above.
> 
> If it did apply, you would copy the patch to /usr/src/perl-5.32.1.patch
> (or adjust the paths below)
> 
> cd /usr/src/
> patch -p0 -uNE < perl-5.32.1.patch
> 
> # Remove patch cruft
> find gnu/usr.bin/perl -name '*.orig' -delete
> 
> # Add and remove binary and zero sized files that patch doesn't understand
> grep -B1 -e '^Index:' -e 'Binary files /tmp/.* and /dev/null differ' \
> perl-5.32.1.patch | sed -ne 's/^diff -N //p' |
> while read f; do if [ -e $f ]; then rm $f; else touch $f; fi; done
> 
> cd gnu/usr.bin/perl && find -d . \
> \( -type d -o -path '*/CVS' -prune \) \
> ! -name CVS \
> -exec test -e {}/CVS \; \
> -execdir sh -c 'test $( ls -1 {} | grep -v '^CVS/$' | wc -l ) -eq 0' \; \
> -e

Re: OpenBSD perl 5.32.1 - Call for Testing

2021-02-20 Thread Stuart Henderson
On 2021/02/20 14:11, Andrew Hewus Fresh wrote:
> Unfortunately the patch doesn't actually apply due to non-ascii files in
> the diff, not quite sure the magic incantation to make that work,

I haven't tried with this, but usually it's "gpatch"



OpenBSD perl 5.32.1 - Call for Testing

2021-02-20 Thread Andrew Hewus Fresh
I've probably missed making it in for 6.9, but it is again time for
testing a perl update so it can become /usr/bin/perl

Several good changes this time:
https://metacpan.org/pod/distribution/perl/pod/perl5320delta.pod
https://metacpan.org/pod/release/SHAY/perl-5.32.1/pod/perldelta.pod

* A new "isa" operator
* A new feature "no indirect" that disables indirect object notation
* Chained comparisons ( $x < $y <= $z )
* Unicode 13.0
* IO::Compress now comes with the streamzip utility.

Plus a bunch of other unicode and regex things as well as new versions
of many modules.

It also includes the recent PERL_HASH fix for 64bit strict alignment
architectures and removes several local patches that were merged
upstream.

It would be nice to get feedback on some of the architectures I don't
have, and a bulk ports build to see what sort of fallout happens there.

The logs for what I do have are here:
https://github.com/afresh1/OpenBSD-perl/tree/blead/build_logs/perl-5.32.1

Which are alpha, amd64, arm64, armv7, macppc, octeon, and sparc64.

The issues I had in 5.30 with capturing output from forked processes on my
alpha are still there, could just be that it's slow.

For running the perl test suite, you can follow the instructions on
github, repeated here:

https://github.com/afresh1/OpenBSD-perl

download the patches and scripts
https://github.com/afresh1/OpenBSD-perl/archive/blead.tar.gz
and extract someplace
or git clone https://github.com/afresh1/OpenBSD-perl.git
download perl-5.30.0.tar.gz into the same directory
https://cpan.metacpan.org/authors/id/S/SH/SHAY/perl-5.32.1.tar.gz
cd to someplace you have room
run /path/to/OpenBSD-perl/build_perl
wait
send me the log file(s) it generates


You can download a pre-patched version of perl that can be extracted to replace
src/gnu/usr.bin/perl for building a system with the new perl:
https://cvs.afresh1.com/~andrew/perl-update/OpenBSD-perl-5.32.1.tar.gz

I also have what should be a mostly correct sets/lists patch for building a 
release.
https://cvs.afresh1.com/~andrew/perl-update/OpenBSD-perl-5.32.1-sets.patch

There are also several files that are no longer part of the perl distribution:

rm -r /usr/bin/podselect \
  /usr/lib/libperl.so.20.0 \
  /usr/lib/libperl.so.21.0 \
  /usr/libdata/perl5/*/CORE/dquote_inline.h \
  /usr/libdata/perl5/*/Tie \
  /usr/libdata/perl5/*/auto/Tie \
  /usr/libdata/perl5/Pod/Find.pm \
  /usr/libdata/perl5/Pod/InputObjects.pm \
  /usr/libdata/perl5/Pod/ParseUtils.pm \
  /usr/libdata/perl5/Pod/Parser.pm \
  /usr/libdata/perl5/Pod/PlainText.pm \
  /usr/libdata/perl5/Pod/Select.pm \
  /usr/libdata/perl5/pod/perlce.pod \
  /usr/libdata/perl5/unicore/Heavy.pl \
  /usr/libdata/perl5/unicore/lib/Lb/EB.pl \
  /usr/libdata/perl5/unicore/lib/Perl/_PerlNon.pl \
  /usr/libdata/perl5/unicore/lib/Sc/Armn.pl \
  /usr/libdata/perl5/utf8_heavy.pl \
  /usr/share/man/man1/podselect.1 \
  /usr/share/man/man3p/Pod::Find.3p \
  /usr/share/man/man3p/Pod::InputObjects.3p \
  /usr/share/man/man3p/Pod::ParseUtils.3p \
  /usr/share/man/man3p/Pod::Parser.3p \
  /usr/share/man/man3p/Pod::PlainText.3p \
  /usr/share/man/man3p/Pod::Select.3p


There's also patch file that should apply to a -current tree updating to
perl 5.32.1.  You'll still need the sets lists patch if you're planning
to build a release.

https://cvs.afresh1.com/~andrew/perl-update/OpenBSD-perl-5.32.1.patch

Unfortunately the patch doesn't actually apply due to non-ascii files in
the diff, not quite sure the magic incantation to make that work, so I
recommend replacing src/gnu/usr.bin/perl with the extracted tar.gz
linked above.

If it did apply, you would copy the patch to /usr/src/perl-5.32.1.patch
(or adjust the paths below)

cd /usr/src/
patch -p0 -uNE < perl-5.32.1.patch

# Remove patch cruft
find gnu/usr.bin/perl -name '*.orig' -delete

# Add and remove binary and zero sized files that patch doesn't understand
grep -B1 -e '^Index:' -e 'Binary files /tmp/.* and /dev/null differ' \
perl-5.32.1.patch | sed -ne 's/^diff -N //p' |
while read f; do if [ -e $f ]; then rm $f; else touch $f; fi; done

cd gnu/usr.bin/perl && find -d . \
\( -type d -o -path '*/CVS' -prune \) \
! -name CVS \
-exec test -e {}/CVS \; \
-execdir sh -c 'test $( ls -1 {} | grep -v '^CVS/$' | wc -l ) -eq 0' \; \
-exec rm -r {} \;