- Pass the versioned sip-binary to configure.py
- Add USE_PYTHON=concurrent to py-qt5-core to install pyuic5 versioned too
- Make the sip-directory versioned
Details
- Reviewers
adridg fluffy rakuco mat - Group Reviewers
O5: Ports Framework portmgr kde - Commits
- rP485614: pyqt: Change install directories for Python flavor support
I only tested devel/py-sip and devel/py-qt5-core with
DEFAULT_VERSIONS+=python=3.5 python3=3.5 in make.conf
and a make PYTHON_VERSION=2.7 so far.
Diff Detail
- Repository
- rP FreeBSD ports repository
- Lint
Lint Not Applicable - Unit
Tests Not Applicable
Event Timeline
Add concurrent to py-qt5-core too (I added it to py-qt4-core by mistake...
which also needs it.. so lets call it an opportunity ^^)
Of course every py-qt port also requires a PORTREVISION bump (as SIPDIR changed).
- Deinstalled py27-qt5*
- Don't have Python 3.5 installed
- cd devel/py-qt5
- make PYTHON_VERSION=3.5
- builds and installs a bunch of ports, including many py35-qt5-*
- fails in misc/py-qt5-demo
However, building misc/py-qt5-demo on its own (while setting PYTHON_VERSION) does work.
You're absolutely right. There is other stuff that needs to be versioned too, like QSCIDIR.
In devel/py-qt5:
# make PYTHON_VERSION=3.5
yields tons of error messages in misc/py-qt5-demo like this:
pkg-static: Unable to access file /zbigone/src/ports-playground/misc/py-qt5-demo/work/stage/usr/local/share/examples/py-qt5/xmlpatterns/schema/ui_schema.pyc: No such file or directory
Which is fair, since the file is generated like this:
/zbigone/src/ports-playground/misc/py-qt5-demo/work/stage/usr/local/share/examples/py-qt5/xmlpatterns/schema/__pycache__/ui_schema.cpython-35.pyc
So there's more pkg-plist munging to be done, since the do-install step (which uses compileall.py) isn't producing what the plist expects.
FYI, USES=python already has support for that: USE_PYTHON=py3kplist.
Hope this helps.
Add a versioned PLIST_SUB for the api-files installed by the ports.
Instead of installing them to share/qt[45]/qsci/api put them into share/qt[45]/qsci-${PYTHON_VER}/api
(maybe a path structured similarly to PYQT_SIPDIR would be nicer: share/py-qsci-${PYTHON_VER}/PyQt[45]).
I still need to think how to handle for example devel/py-qt5-designerplugin, which installs a shared library, independent of the python version.
Also, maybe there is a better way for all of this...
Now it should be coinstallable: install everything with default (python27), set PYTHON_VERSION to 3.5 and install the other ports seems to work as expected.
- The shared libraries in lang/py-qt5-qml and devel/py-qt[45]-designerplugin have been renamed to carry the python version in them... -- I thought about only adding these ports if the PYTHON_VERSION is the DEFAULT_PYTHON_VERSIONS... but that does not seem proper either. Maybe these renames have to be followed up somehwere else, so far I haven't spotted an issue (rebuilt everything needing pyqt).
- Moved api, doc, sip files around a bit so they are versioned by both the Qt version and the python version used
- Added SIPDIR to desktuils/calibre's MAKE_ENV.
Isn't this largely obsoleted by flavors now? Or have flavors not reached the PyQt bits, and this stuff needs to be reworked to fit?
To check, it would probably be easier to use poudriere bulk -i and only set BUILD_ALL_PYTHON_FLAVORS in make.conf.
- Readd USE_PYTHON flags (I should have checked the output of arc patch ;-) ...)
- Fix deskutils/calibre