Re: Poudriere and Python FLAVORS

From: Matthew Seaman <matthew_at_FreeBSD.org>
Date: Fri, 07 Apr 2023 14:04:13 UTC
On 07/04/2023 12:52, Julien Cigar wrote:
> Hello,
> 
> I'm building 2023Q2 through Poudriere with:
> DEFAULT_VERSIONS+= python2=2.7 python3=3.11 python=3.11 pgsql=13 php=8.1
> 
> I'm getting tons of "Ignored: Unknown flavor 'py39', possible flavors:
> py311" (see (1)) for my Python ports (I didn't specified any flavor
> @pyxx)
> 
> I don't understand why:
> - Why does Poudriere tries to build @py39 flavor by default when 3.11 is the
>    default?
> - Why py39 flavor is unknown althoug the default Python version for
>    2023Q2 is 3.9?

Do you have:

BUILD_ALL_PYTHON_FLAVORS= yes

set in a make.conf file anywhere that poudriere could read? ie. 
somewhere under /usr/local/etc/poudriere.d ?

Equivalently some ports have a

USE_PYTHON= allflavors

setting which produces the same effect for just that port.  There's only 
about a dozen ports that do that in the whole tree, but they include 
some really commonly used ones like py-setuptools.

Either of those settings means poudriere will default to building 
modules for all python versions from 3.7 to 3.11 that are supported by 
the module.

If you only want version 3.11 of some modules, then you can add @3.11 to 
an individual port's path in the list you specify, and only that flavour 
will be built.

Note that if a port is not specified explicitly in your list of ports to 
build, but is automatically bought in to resolve dependencies for some 
other port, then it effectively has the @3.11 thing built in, even if 
the port has USE_PYTHON=allflavors set.

I don't see how you are getting "Unknown flavor 'py39'" though.  That 
means some port has somehow ended up with a dependency on eg. 
net/py-pysocks@py39 which shouldn't happen.  Are you using a modified 
ports tree eg. with overlaid or locally modified ports?

	Cheers,

	Matthew