On Tue, Feb 23, 2021 at 07:59:34PM +0000, Stuart Henderson wrote:
> 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?
I have a vague recollection that the "=" versus "?=" thing is handled in
some of the support libraries above the language-specific stuff.
--Kurt
>
> 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]" );
> }
> }
>
>