Page MenuHomeFreeBSD

Set BUILD_ALL_PYTHON_FLAVORS when looking for ports flavors
Needs ReviewPublic

Authored by flo on Apr 12 2021, 8:54 PM.

Details

Reviewers
mat
Summary

If we don't set BUILD_ALL_PYTHON_FLAVORS when looking for ports flavors we get a load of false positives. In my case Python 3.7 was the default and MOVEDlint complained about a lot of ports not having a py36 flavor.

Not sure if we want to special case python in MOVEDlint, but this looked like a sensible and non invasive way.

Diff Detail

Repository
R11 FreeBSD ports repository
Lint
Lint Skipped
Unit
Unit Tests Skipped

Event Timeline

flo requested review of this revision.Apr 12 2021, 8:54 PM
flo created this revision.

I don't think it makes much sense to do this, because when Python 3.6 goes away, then what do we do?

In D29735#667022, @mat wrote:

I don't think it makes much sense to do this, because when Python 3.6 goes away, then what do we do?

Well, this will be a recurring problem. When we set Python 3.8 as default but haven't removed 3.7, yet. And there are 'Moved to' ports that reference the py37 flavor. MOVEDlint currently spews out 130 false positives, because it doesn't know the py36 flavor. It could also potentially affect Python version > the default Python version.

Well, same problem with older php versions for example, and probably other flavors too.

I really don't think this is the solution, it just masks a bit of the problem.

No, it appears that only Python is special, in that it does not show all favors by default, this demonstrates the problem I'm trying to fix. MOVEDlint cannot see all flavors while running, so cannot sensibly verify all ports, and generates false positives.

flo@poudriere:~/dev/checkouts/ports-dev/www/pecl-http % make -V FLAVORS
php74 php73
flo@poudriere:~/dev/checkouts/ports-dev/www/unit-python % make -V FLAVORS
py37
flo@poudriere:~/dev/checkouts/ports-dev/www/unit-python % make -DBUILD_ALL_PYTHON_FLAVORS -V FLAVORS
py37 py38 py39 py36

Well, no, I am quite sure that same problem exists for php, thing is, it does not show because, for example, this entry:

databases/php71-memcache|databases/php-memcache@php71|2018-03-08|Merge into a flavorized version

is hidden by that entry:

databases/php-memcache|databases/pecl-memcache|2019-12-30|Development from websupport.sk is the official PECL repository now

Probably because flavors are not transitive.

That's a completely different problem. One that should be fixed eventually. I fixed some of those (not masked by other entries) in D29737. Those masked are indeed an interesting issue I hadn't thought about, yet.

Like i already tried to explain I'm trying to fix the false positives (130 lines of those) that are currently generated by MOVEDlint wrt. the py36 flavor.

9642: security/py-ecdsa does not have the py36 flavor
9643: security/py-libnacl does not have the py36 flavor
9644: security/py-openssl does not have the py36 flavor

Python 3.6 is still in the tree. These are cause because for whatever reason not all python flavors are listed when running make -VFLAVORS in python ports. That only happens when BUILD_ALL_PYTHON_FLAVORS is set, and other flavors do not need a special knob for all flavors being listed.