It's also not that tough to update portbump to use v5.40 and signatures at the same time. I'm not certain that all the signatures are correct, I didn't test all the flags or paths.
Index: infrastructure/bin/portbump =================================================================== RCS file: /cvs/ports/infrastructure/bin/portbump,v retrieving revision 1.24 diff -u -p -r1.24 portbump --- infrastructure/bin/portbump 21 Dec 2024 11:40:34 -0000 1.24 +++ infrastructure/bin/portbump 7 Feb 2025 23:26:41 -0000 @@ -17,31 +17,22 @@ # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. package Util; -use strict; -use warnings; +use v5.40; -BEGIN { - require Exporter; - our @EXPORT = qw(plibs phash w_stem); -} - -sub plibs { - my $prefix = shift; - print STDERR "$prefix: ".join(", ", @_)."\n"; +sub plibs($prefix, @libs) { + print STDERR "$prefix: ".join(", ", @libs)."\n"; } # prints hash in compact form, for debugging purposes -sub phash { - my $h = shift; +sub phash($h) { "{ ".join (", ", map { $_."=>".(ref($h->{$_}) eq 'HASH' ? phash($h->{$_}) : $h->{$_}) } (sort keys %{$h})) . " }"; } -sub spc_per_tab { 8 } +sub spc_per_tab :prototype() { 8 } -sub expand_tabs { - my $line = shift; +sub expand_tabs($line) { while ($line =~ /\t/) { my $pos = $-[0] + spc_per_tab - 1; $pos -= $pos % spc_per_tab; @@ -50,8 +41,7 @@ sub expand_tabs { return $line; } -sub w_stem { - my @v = @_; +sub w_stem(@v) { for (@v) { s,^.*/,,; s,^([^/<>=]+)(?:[<>=].*)$,$1,; @@ -62,10 +52,7 @@ sub w_stem { ################################################################# package PortHandler; -use strict; -use warnings; - -BEGIN { 'Util'->import(qw(w_stem)); } +use v5.40; # Here is a list of variables that REVISION's are usually placed # near to. Update if you see the "can't find a suitable place for @@ -98,17 +85,15 @@ my @_REV_NEIGHBORS_WEAK = qw( ); my $_rev_neighbors_plain_all = join('|', @_REV_NEIGHBORS, @_REV_NEIGHBORS_WEAK); -sub run_make_in +sub run_make_in($self, $dir, @args) { - my $self = shift; - my $dir = shift; my $pid = open(my $pipe, "-|"); if (!defined $pid) { die "Couldn't start pipe: $!"; } if ($pid == 0) { $ENV{SUBDIR}=$dir if defined $dir; - exec {'make'} ('make', @_); + exec {'make'} ('make', @args); exit(1); } my @lines = <$pipe>; @@ -119,14 +104,12 @@ sub run_make_in return @lines; } -sub run_make +sub run_make($self, @args) { - my $self = shift; - return $self->run_make_in(undef, @_); + return $self->run_make_in(undef, @args); } -sub new { - my ($class, $dir, $tweak_wantlib, $lib_depends_tgt) = @_; +sub new($class, $dir, $tweak_wantlib, $lib_depends_tgt = undef) { die "lib depends target specified without WANTLIB tweaking" if !$tweak_wantlib and defined($lib_depends_tgt); @@ -265,18 +248,15 @@ sub new { return $self; } -sub verbose { - my $self = shift; +sub verbose($self, $set = undef) { my $rv = $self->{verbose}; - $self->{verbose} = $_[0] if defined $_[0]; + $self->{verbose} = $set if defined $set; return $rv; } # Formats and returns string of "var = value" with whitespace adjustment # done like in the sample given line. -sub _adj_whitespace { - my ($self, $var, $value, $wssample) = @_; - +sub _adj_whitespace($self, $var, $value, $wssample = undef) { unless (defined($wssample) and $wssample =~ /^( *)([A-Za-z0-9_+-]+)(\s*)[\+\?\!]*=(\s*)/) { return "$var =\t$value"; @@ -316,9 +296,7 @@ sub _adj_whitespace { return $line.$value; } -sub _is_mpkg_port { - my $self = shift; - +sub _is_mpkg_port($self) { for my $subpkg (keys %{$self->{mpkgs}}) { next if $subpkg eq ""; next if $subpkg eq "-"; @@ -327,10 +305,8 @@ sub _is_mpkg_port { return 0; } -sub _add_new_revs { - my ($self, $out, $lineno, $bumppkgs) = (shift, shift, shift, shift); - - # Note: $lineno is the input file's line number, not output's one. +# Note: $lineno is the input file's line number, not output's one. +sub _add_new_revs($self, $out, $lineno, $bumppkgs) { if ($self->{maxrevsin}->{count} > 1) { return 0 unless $lineno == $self->{maxrevsin}->{blockend}; @@ -357,10 +333,7 @@ sub _add_new_revs { } # un-expand ${MOD*} -sub _unexpand_mod_wantlib { - my $self = shift; - my @libs = @_; - +sub _unexpand_mod_wantlib($self, @libs) { for my $m (keys %{$self->{wantlib_mod}}) { my $nlibs = keys %{$self->{wantlib_mod}->{$m}}; if ($nlibs == 0) { @@ -377,10 +350,7 @@ sub _unexpand_mod_wantlib { return @libs; } -sub _put_wantlib_lines { - my ($self, $out, $bumppkgs, $wl_add, $wl_del, $empty_line) - = @_; - +sub _put_wantlib_lines($self, $out, $bumppkgs, $wl_add, $wl_del, $empty_line) { my $recreate = exists $self->{wantlib_extra}; my %wl_del_hash; if ($recreate) { @@ -554,8 +524,7 @@ sub _put_wantlib_lines { return $nlines; } -sub _init_wantlib { - my ($self, $subpkg) = @_; +sub _init_wantlib($self, $subpkg) { my $rv = 0; if (!exists $self->{wantlib}->{$subpkg}) { $rv = 1; @@ -575,9 +544,7 @@ sub _init_wantlib { # Search for places where new REVISION and WANTLIB marks should be added, # in given makefile, and with what whitespace. # -sub process_makefile { - my ($self, $in) = (shift, shift); - +sub process_makefile($self, $in) { # subpkg => { # line => number of line where subpackage is mentioned # wssample => a line from block to look for whitespace sample in @@ -805,9 +772,9 @@ sub process_makefile { } } -{ my %manual_noticed; -sub _update_shlibs { - my ($self, $shline) = @_; +sub _update_shlibs($self, $shline) { + state %manual_noticed; + my @splitres = split(/\s+/, $shline); my $nchanges = 0; if (scalar(@splitres) % 2 != 0) { @@ -829,12 +796,10 @@ sub _update_shlibs { } } return $nchanges; -} } - -sub update { - my ($self, $in, $out, $bumppkgs, $bumprevs, $removerevs, $bumpshlibs, - $wl_add, $wl_del) = @_; +} +sub update($self, $in, $out, $bumppkgs, $bumprevs, $removerevs, $bumpshlibs, + $wl_add, $wl_del) { if ($self->{tweak_wantlib}) { for my $subpkg (keys %$bumppkgs) { next unless exists $bumppkgs->{$subpkg}; @@ -956,14 +921,12 @@ sub update { ################################################################# package main; -use strict; -use warnings; -use v5.14; +use v5.40; use OpenBSD::Getopt; -sub usage { - print join("\n", @_) if scalar @_; +sub usage(@args) { + print join("\n", @args) if scalar @args; print STDERR "usage: portbump [-dMmrnv] [-o outfile] [-W lib] [-w lib] [dir ...]\n"; exit 1;