Here's a first cut at fixing python version handling in portgen
now the default has changed to MODPY_DEFAULT_VERSION_3.
For a port with just a py3 version it currently uses
FLAVORS = python3
FLAVOR ?= python3
It ought to use
FLAVORS = python3
FLAVOR = python3
but I can't figure out where it's deciding to use ?= instead of =.
Does anyone see where that's coming from?
Index: infrastructure/lib/OpenBSD/PortGen/Port/PyPI.pm
===================================================================
RCS file: /cvs/ports/infrastructure/lib/OpenBSD/PortGen/Port/PyPI.pm,v
retrieving revision 1.19
diff -u -p -r1.19 PyPI.pm
--- infrastructure/lib/OpenBSD/PortGen//Port/PyPI.pm 30 Apr 2020 23:04:48
-0000 1.19
+++ infrastructure/lib/OpenBSD/PortGen//Port/PyPI.pm 23 Feb 2021 19:54:18
-0000
@@ -115,15 +115,20 @@ sub fill_in_makefile
};
if ( @versions > 1 ) {
+ # XXX needs more when there's something other than just 2+3
shift @versions; # remove default, lowest
$self->{reset_values}{MODPY_VERSION} = 1;
$self->set_other( 'FLAVORS', "python$_" ) for @versions;
$self->set_other( 'FLAVOR', "python$versions[-1]" );
- } elsif ( @versions && $versions[0] != 2 ) {
+ } elsif ( @versions && $versions[0] == 2 ) {
$self->{reset_values}{$_} = 1 for qw( FLAVORS FLAVOR );
$self->set_other(
MODPY_VERSION => "\${MODPY_DEFAULT_VERSION_$_}" )
for @versions;
+ } else {
+ $self->{reset_values}{MODPY_VERSION} = 1;
+ $self->set_other( 'FLAVORS', "python$_" ) for @versions;
+ $self->set_other( 'FLAVOR', "python$versions[-1]" );
}
}