Date: Sat, 8 Oct 2022 13:36:58 +0900 From: Tatsuki Makino <tatsuki_makino@hotmail.com> To: Shane Ambler <FreeBSD@ShaneWare.Biz> Cc: ports@freebsd.org Subject: Re: Python version dependencies in pkg Message-ID: <PSAPR03MB5639E515CAF178CBFFBC5836FA5E9@PSAPR03MB5639.apcprd03.prod.outlook.com> In-Reply-To: <ac71f8a1-4509-fca2-6cd5-a1e44b5e7120@ShaneWare.Biz> References: <8B490359-27A3-410C-AE98-C1362D4FA9F0@gushi.org> <CAN6yY1sGnDF-oReRMFeVz78oGoTfUvsvwUOQwoBZWN9ibjTw3A@mail.gmail.com> <B2A3A400-F21A-4E92-8116-41E7945E4E5C@gushi.org> <CAN6yY1ujCH9Xnv3QN-GF8hN75v%2BxGkOTHrsr25jzxGNGdYW2vQ@mail.gmail.com> <89D2B2D7-FA3D-46F5-A93B-4846950A157C@gushi.org> <65597c37-813b-d0ed-ea9f-8591b68cf097@gwdg.de> <20220929083939.Horde.Viq2uLBgUctcrsgmaJxN_1u@webmail.leidinger.net> <F4395689-FFD7-4591-BE5C-3F15983BF82D@gushi.org> <PSAPR03MB5639D5A4E9655F3AE61361E6FA579@PSAPR03MB5639.apcprd03.prod.outlook.com> <1fdde4e6-fa80-720f-7c85-8417d2a3b642@ShaneWare.Biz> <PSAPR03MB5639F69C594D482C7A152DC0FA569@PSAPR03MB5639.apcprd03.prod.outlook.com> <adf633cd-9c47-c1a1-0201-3121d55f60e3@ShaneWare.Biz> <PSAPR03MB56396A36ED700020784DBDD3FA5B9@PSAPR03MB5639.apcprd03.prod.outlook.com> <ac71f8a1-4509-fca2-6cd5-a1e44b5e7120@ShaneWare.Biz>
next in thread | previous in thread | raw e-mail | index | archive | help
Shane Ambler wrote on 2022/10/04 15:49: > On 3/10/22 2:06 pm, Tatsuki Makino wrote: >> # make -C /usr/ports/multimedia/libopenshot/ install FLAVOR=py310 >> ===> py310-libopenshot-0.2.7_4 Unknown flavor 'py310', possible flavors: >> py39. >> *** Error code 1 > > That error indicates a flavour that is not supported. For example a port > specifying USES=python:3.9 means py39 is the only supported flavor so > building with py310 would fail. USES=python:3.8-3.10 would build for > py39 and py310 but fail for py311 > > So it isn't an option you can set globally, you only use it to build one > flavour of the one port at a time, although you can set it in env so > that it carries through to install deps that require and support the > same flavour. Useful when first creating a port, sometimes for new > versions, after that you use poudriere to test build all available > flavours. This is the behavior that causes the difference between USE_PYTHON=allflavors and -D BUILD_ALL_PYTHON_FLAVORS, which I am relentlessly :) repeating. Specifically here: https://cgit.freebsd.org/ports/tree/Mk/Uses/python.mk?id=7d48381cbd686ee8d77871bc25cf1e926a314f85#n414 If the above variables are not defined here, FLAVORS will be narrowed down to only the PYTHON{,[23]}_DEFAULT flavors. Currently _PYTHON_ARGS defaults to 3.7+, so only py39 remains. If FLAVOR that does not exist in FLAVORS is specified, IGNORE is defined here. https://cgit.freebsd.org/ports/tree/Mk/bsd.port.mk?id=b74ed0f79d32e7564969faac41a2e1083bbc49f4#n1474 > Instead of building flavours, you can use pkg to install all flavours > that are available in the pkg repo. > > pkg search numpy > > pkg install py38-numpy py39-numpy Thus, py-numpy is USE_PYTHON=allflavors, so all FLAVOR packages exist, but only py39- packages are made for those that are not allflavors. For poudriere, to remove that restriction, write BUILD_ALL_PYTHON_FLAVORS= in /usr/local/etc/poudriere.d/*make.conf. Then, once the bulk of category/usespythonport@py310 by poudriere is started, all the necessary py310-packages can be made. poudriere bulk -j jail multimedia/openshot@py310 And, my this part >> Next. >> As long as FLAVOR was only used for Python, there was no problem. >> But now FLAVOR has the following just for what I know. >> devel/llvm-devel, editors/emacs, graphics/evince, graphics/gpu-firmware-*-kmod... and what else was there? :) >> I don't know if the make variable FLAVOR is something that can have more than one FLAVOR in it. >> Python and PHP seem to have a part where it puts the FLAVOR for itself into another variable like PY_FLAVOR or PHP_FLAVOR. >> However, sometimes FLAVOR is used without considering the possibility that it may contain unrelated FLAVOR or multiple FLAVORs in other cases. As another example, I am building evince-lite (graphics/evince@lite) and my question is what if evince starts requiring llvm-devel to build it? I think it is just a matter of writing BUILD_DEPENDS=llvm-config-devel:devel/llvm-devel@default However, in that case, I think the variable FLAVOR would no longer be something the user is allowed to touch. I'm not sure :) I don't know if I explained it well :) I think I'm not derailing from one of the original questions of this topic, about the python version being only 3.9 :) Regards.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?PSAPR03MB5639E515CAF178CBFFBC5836FA5E9>