Created attachment 199742 [details]
patch SITELIBDIR for @py36
In the process of preparing my new port graphics/qgis with QGIS 3, I found databases/py-psycopg2 as a showstopper, because it is not able to install for flavor @py36.
I think, this is because databases/py-psycopg2@py37 tries to install the Python files wrongly in PYTHON_SITELIBDIR instead of PYTHONPREFIX_SITELIBDIR.
The attached patch seems to solve the problem, now both @py27 and @py36 are installable at the same time.
Tested with Poudriere (F11.2i/a, F12.0-RC1i/a, and HEADi/a).
'portlint -AC' seems fine.
I cannot reproduce the problem.
And our building cluster generates the packages successfully .
(In reply to Sunpoet Po-Chuan Hsieh from comment #1)
I am sorry my analysis in the initial report was wrong, because I did not understand, what happens. Investigating again in this problem turns out, that there is something wrong with the behaviour of portmaster in this situation.
This happens only on real world boxes (not in Poudriere), when I use Portmaster AND @py36 (a non default flavor) is not installed before (first time install):
===> Installing for py36-psycopg2-126.96.36.199
===> Checking if py36-psycopg2 already installed
===> Registering installation for py36-psycopg2-188.8.131.52
===>>> Installation of databases/py-psycopg2@py36 (py27-psycopg2-184.108.40.206) complete
In fact, after that, the correct @py36 flavor is installed:
#pkg info | grep psycopg2
But, in /var/db/pkg there is instead an entry (directory) with the wrong flavor:
#ls -ldU /var/db/pkg/*-psycopg2-*
drwxr-xr-x 2 root wheel 512 3 Dez. 20:36 /var/db/pkg/py27-psycopg2-220.127.116.11
This does not happen, if I install via:
make clean install FLAVOR=py36
or if I reinstall the already existing port a second time with Portmaster.
So it seems, that Portmaster does something wrong here. The right port and flavor is installed, but the bookkeeping under /var/db/pkg is wrong in the first time.