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 {} \;


Reply via email to