Re: Poudriere and Python FLAVORS

From: Julien Cigar <julien_at_perdition.city>
Date: Fri, 07 Apr 2023 14:22:55 UTC
On Fri, Apr 07, 2023 at 04:09:42PM +0200, Julien Cigar wrote:
> On Fri, Apr 07, 2023 at 03:04:13PM +0100, Matthew Seaman wrote:
> > 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
> 
> no, I don't remember having read something about this knob.. is it
> documented somewhere?

with BUILD_ALL_PYTHON_FLAVORS= yes Poudriere builds the py39 flavours of
the packages (although the default version is 3.11) if no flavour is
specified for a port. So it looks like I have to @py311 all my Python
ports if I'm having a DEFAULT_VERSIONS+= python2=2.7 python3=3.11 python=3.11

> 
> > 
> > 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?
> 
> no, it's the pristine clone of the 2023Q2 branch through git
> 
> > 
> > 	Cheers,
> > 
> > 	Matthew
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> 
> 
> 
> 
> -- 
> Julien Cigar
> Belgian Biodiversity Platform (http://www.biodiversity.be)
> PGP fingerprint: EEF9 F697 4B68 D275 7B11  6A25 B2BB 3710 A204 23C0
> No trees were killed in the creation of this message.
> However, many electrons were terribly inconvenienced.



-- 
Julien Cigar
Belgian Biodiversity Platform (http://www.biodiversity.be)
PGP fingerprint: EEF9 F697 4B68 D275 7B11  6A25 B2BB 3710 A204 23C0
No trees were killed in the creation of this message.
However, many electrons were terribly inconvenienced.