Bug 232745 (pyqt-concurrent) - [exp-run] pyqt: change install directories for flavor suppport [and update to 5.10.2]
Summary: [exp-run] pyqt: change install directories for flavor suppport [and update to...
Status: Closed FIXED
Alias: pyqt-concurrent
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: Tobias C. Berner
URL: https://reviews.freebsd.org/D8714
Keywords:
Depends on:
Blocks: 219641 233311 233312 233313
  Show dependency treegraph
 
Reported: 2018-10-27 17:44 UTC by Tobias C. Berner
Modified: 2018-11-23 21:21 UTC (History)
3 users (show)

See Also:
antoine: exp-run+


Attachments
v1 (370.47 KB, patch)
2018-10-27 17:44 UTC, Tobias C. Berner
no flags Details | Diff
v2 (373.94 KB, patch)
2018-11-17 20:18 UTC, Tobias C. Berner
no flags Details | Diff
v3 (374.10 KB, patch)
2018-11-19 18:29 UTC, Tobias C. Berner
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Tobias C. Berner freebsd_committer 2018-10-27 17:44:14 UTC
Created attachment 198692 [details]
v1

Hi there

kde@ would like to ask for an exp-run of the attached patch.
It changes the install directories to allow for concurrent installation of PyQt5 with different Python flavors.

The patch is attached, and can also be found here:
https://people.freebsd.org/~tcberner/patches/py-qt-concurrent.v1.diff


Known issue: py-qt5-webengine is broken.


Thanks, 
Tobias
Comment 2 Antoine Brodin freebsd_committer 2018-10-31 13:33:08 UTC
New failures on 12.1 i386:

+ {"origin"=>"audio/cadence", "phase"=>"build", "errortype"=>"process_failed"}
+ {"origin"=>"audio/carla", "phase"=>"package", "errortype"=>"???"}
+ {"origin"=>"www/py-qt5-webengine", "flavor"=>"py36", "phase"=>"build", "errortype"=>"clang"}
+ {"origin"=>"www/py-qt5-webengine", "phase"=>"build", "errortype"=>"clang"}

New failure logs on 12.1 i386:

http://package23.nyi.freebsd.org/data/112i386-default-PR232745-51/2018-10-30_17h57m19s/logs/errors/cadence-0.9.0.7.log
http://package23.nyi.freebsd.org/data/112i386-default-PR232745-51/2018-10-30_17h57m19s/logs/errors/Carla-1.9.12_1.log
http://package23.nyi.freebsd.org/data/112i386-default-PR232745-51/2018-10-30_17h57m19s/logs/errors/py27-qt5-webengine-5.10.1_5.log
http://package23.nyi.freebsd.org/data/112i386-default-PR232745-51/2018-10-30_17h57m19s/logs/errors/py36-qt5-webengine-5.10.1_5.log

Around 15 ports skipped due to those failures
Comment 3 Tobias C. Berner freebsd_committer 2018-11-17 20:18:32 UTC
Created attachment 199300 [details]
v2

Moin moin

https://people.freebsd.org/~tcberner/patches/py-qt-concurrent.v2.diff

This version fixes carla and cadence and marks webengine explicitely broken. 
Further, libries of py-qt5-qml and py-qt5-designerplugin are moved so that everything should be coinstallable now...




mfg Tobias
Comment 4 Rainer Hurling 2018-11-17 20:54:53 UTC
(In reply to Tobias C. Berner from comment #3)

>This version fixes carla and cadence and marks webengine explicitely broken. 
>Further, libries of py-qt5-qml and py-qt5-designerplugin are moved so that everything should be coinstallable now...


Don't know, if I misunderstood the above statement. But pyqt-concurrent is only working for one version, @py27 _or_ @py36, as reported in bug #219641, comment #33

===>  Installing for py36-qt5-core-5.9.2_6
===>  Checking if py36-qt5-core already installed
===>   Registering installation for py36-qt5-core-5.9.2_6 as automatic
Installing py36-qt5-core-5.9.2_6...
pkg-static: py36-qt5-core-5.9.2_6 conflicts with py27-qt5-core-5.9.2_6 (installs files into the same place).  Problematic file: /usr/local/bin/pyuic5
*** Error code 70
Comment 5 Tobias C. Berner freebsd_committer 2018-11-17 21:42:45 UTC
(In reply to Rainer Hurling from comment #4)
If you use the attached patch, then no, then you can install as many py-qt versions as you please.

You would also have py-qt5-5.10.1 in that case :)


mfg Tobias
Comment 6 Rainer Hurling 2018-11-18 09:06:11 UTC
(In reply to Tobias C. Berner from comment #5)

>If you use the attached patch, then no, then you can install
>as many py-qt >versions as you please.
> 
>You would also have py-qt5-5.10.1 in that case :)

Yes, you are right. After reapplying your patch v2 and recompiling all py-qt5 ports, it works. Now I have py36-qt5-core-5.10.1 and so on, parallel installed to py27-qt5-core-5.10.1  :))

Many thanks for this patch!
Comment 7 Tobias C. Berner freebsd_committer 2018-11-19 18:29:21 UTC
Created attachment 199356 [details]
v3

Sorry, the added configure flags were PyQt5 only.

https://people.freebsd.org/~tcberner/patches/py-qt-concurrent.v3.diff
Comment 8 Rainer Hurling 2018-11-21 20:30:55 UTC
(In reply to Tobias C. Berner from comment #7)

Today I found some time to try patch v3 on a freshly created ports system.

After rebuilding all my installed py*-qt[45] files (about ~ 100), I did some tests with python based plugins on graphics/qgis and some other ports. All seems to work fine.

Many thanks again.
Comment 9 Antoine Brodin freebsd_committer 2018-11-21 20:37:29 UTC
Exp-run looks fine.
Comment 10 Tobias C. Berner freebsd_committer 2018-11-21 21:12:54 UTC
(In reply to Rainer Hurling from comment #8)
Thanks for testing!
Comment 11 commit-hook freebsd_committer 2018-11-22 20:19:23 UTC
A commit references this bug:

Author: tcberner
Date: Thu Nov 22 20:18:49 UTC 2018
New revision: 485614
URL: https://svnweb.freebsd.org/changeset/ports/485614

Log:
  pyqt: Change install directories for Python flavor support

  * PyQt could not be installed for multiple Python versions at
    the same time, as there were conflicting files.

    This patch creates Python-version versioned directories for
    all these, and further installs binaries with a version number.

  * Note, there might be some hickups for software that depends on
    on of the .so's provided by PyQt5, which might not be found
    anymore autmotically, and maybe need some LD-flaggery.

  * Update PyQt5 to 5.10.1

  * Mark www/py-qt5-webengine broken. It is unforuntately no longer
    compatible with the old qt5-webengine-5.9.4 we ship.

  PR:		232745
  Exp-run by:	antoine
  Differential Revision:	https://reviews.freebsd.org/D8714

Changes:
  head/Mk/Uses/pyqt.mk
  head/audio/cadence/Makefile
  head/audio/carla/Makefile
  head/audio/picard/Makefile
  head/audio/puddletag/Makefile
  head/cad/py-pyfda/Makefile
  head/comms/gnuradio/Makefile
  head/comms/py-qt5-serialport/Makefile
  head/comms/py-qt5-serialport/pkg-plist
  head/databases/py-qt4-sql/Makefile
  head/databases/py-qt4-sql/pkg-plist
  head/databases/py-qt5-sql/Makefile
  head/databases/py-qt5-sql/pkg-plist
  head/deskutils/calibre/Makefile
  head/deskutils/treeline/Makefile
  head/devel/hgview/Makefile
  head/devel/ninja-ide/Makefile
  head/devel/plasma/Makefile
  head/devel/py-pykde4-kde4/Makefile
  head/devel/py-qt4/Makefile
  head/devel/py-qt4-assistant/Makefile
  head/devel/py-qt4-assistant/pkg-plist
  head/devel/py-qt4-core/Makefile
  head/devel/py-qt4-core/pkg-plist
  head/devel/py-qt4-dbus/Makefile
  head/devel/py-qt4-dbus/pkg-plist
  head/devel/py-qt4-declarative/Makefile
  head/devel/py-qt4-declarative/pkg-plist
  head/devel/py-qt4-designer/Makefile
  head/devel/py-qt4-designer/pkg-plist
  head/devel/py-qt4-help/Makefile
  head/devel/py-qt4-help/pkg-plist
  head/devel/py-qt4-qscintilla2/Makefile
  head/devel/py-qt4-qscintilla2/pkg-plist
  head/devel/py-qt4-script/Makefile
  head/devel/py-qt4-script/pkg-plist
  head/devel/py-qt4-scripttools/Makefile
  head/devel/py-qt4-scripttools/pkg-plist
  head/devel/py-qt4-test/Makefile
  head/devel/py-qt4-test/pkg-plist
  head/devel/py-qt5/Makefile
  head/devel/py-qt5/distinfo
  head/devel/py-qt5-core/Makefile
  head/devel/py-qt5-core/pkg-plist
  head/devel/py-qt5-dbus/Makefile
  head/devel/py-qt5-dbus/pkg-plist
  head/devel/py-qt5-dbussupport/Makefile
  head/devel/py-qt5-designer/Makefile
  head/devel/py-qt5-designer/pkg-plist
  head/devel/py-qt5-designerplugin/Makefile
  head/devel/py-qt5-help/Makefile
  head/devel/py-qt5-help/pkg-plist
  head/devel/py-qt5-qscintilla2/Makefile
  head/devel/py-qt5-qscintilla2/pkg-plist
  head/devel/py-qt5-test/Makefile
  head/devel/py-qt5-test/pkg-plist
  head/devel/py-sip/Makefile
  head/devel/py-spyder/Makefile
  head/devel/qbzr/Makefile
  head/devel/qct/Makefile
  head/devel/qscintilla2/Makefile
  head/devel/qscintilla2-designerplugin/Makefile
  head/devel/qscintilla2-designerplugin-qt5/Makefile
  head/devel/qscintilla2-qt5/Makefile
  head/devel/tortoisehg/Makefile
  head/devel/vitables/Makefile
  head/editors/leo/Makefile
  head/emulators/fs-uae-launcher/Makefile
  head/emulators/swine/Makefile
  head/finance/bitcoin-armory/Makefile
  head/finance/electrum/Makefile
  head/games/anki/Makefile
  head/games/kajongg/Makefile
  head/games/py-mnemosyne/Makefile
  head/graphics/py-poppler-qt4/Makefile
  head/graphics/py-qt4-svg/Makefile
  head/graphics/py-qt4-svg/pkg-plist
  head/graphics/py-qt5-svg/Makefile
  head/graphics/py-qt5-svg/pkg-plist
  head/graphics/qgis/Makefile
  head/graphics/seexpr/Makefile
  head/lang/py-qt5-qml/Makefile
  head/lang/py-qt5-qml/pkg-plist
  head/math/convertall/Makefile
  head/math/py-matplotlib/Makefile
  head/math/qtiplot/Makefile
  head/math/rpcalc/Makefile
  head/misc/orange3/Makefile
  head/misc/py-QSpectrumAnalyzer/Makefile
  head/misc/py-qt4-demo/Makefile
  head/misc/py-qt4-demo/pkg-plist
  head/misc/py-qt5-demo/Makefile
  head/misc/py-qt5-demo/pkg-plist
  head/misc/urh/Makefile
  head/multimedia/py-openlp/Makefile
  head/multimedia/py-qt4-multimedia/Makefile
  head/multimedia/py-qt4-multimedia/pkg-plist
  head/multimedia/py-qt4-phonon/Makefile
  head/multimedia/py-qt4-phonon/pkg-plist
  head/multimedia/py-qt5-multimedia/Makefile
  head/multimedia/py-qt5-multimedia/pkg-plist
  head/multimedia/py-qt5-multimediawidgets/Makefile
  head/multimedia/py-qt5-multimediawidgets/pkg-plist
  head/net/py-qt4-network/Makefile
  head/net/py-qt4-network/pkg-plist
  head/net/py-qt5-network/Makefile
  head/net/py-qt5-network/pkg-plist
  head/net-im/turpial/Makefile
  head/net-mgmt/nagstamon/Makefile
  head/net-mgmt/onionlauncher/Makefile
  head/net-p2p/bitmessage/Makefile
  head/print/hplip/Makefile
  head/print/py-qt5-printsupport/Makefile
  head/print/py-qt5-printsupport/pkg-plist
  head/science/MOOSE-neural-simulator/Makefile
  head/science/openstructure/Makefile
  head/science/py-pymol/Makefile
  head/science/py-veusz/Makefile
  head/textproc/py-qt4-xml/Makefile
  head/textproc/py-qt4-xml/pkg-plist
  head/textproc/py-qt4-xmlpatterns/Makefile
  head/textproc/py-qt4-xmlpatterns/pkg-plist
  head/textproc/py-qt5-xml/Makefile
  head/textproc/py-qt5-xml/pkg-plist
  head/textproc/py-qt5-xmlpatterns/Makefile
  head/textproc/py-qt5-xmlpatterns/pkg-plist
  head/textproc/retext/Makefile
  head/www/linkchecker/Makefile
  head/www/onionshare/Makefile
  head/www/py-qt4-webkit/Makefile
  head/www/py-qt4-webkit/pkg-plist
  head/www/py-qt5-webchannel/Makefile
  head/www/py-qt5-webchannel/pkg-plist
  head/www/py-qt5-webengine/Makefile
  head/www/py-qt5-webkit/Makefile
  head/www/py-qt5-webkit/pkg-plist
  head/www/py-qt5-webkitwidgets/Makefile
  head/www/py-qt5-webkitwidgets/pkg-plist
  head/www/py-weboob/Makefile
  head/www/qutebrowser/Makefile
  head/x11/py-qt4-opengl/Makefile
  head/x11/py-qt4-opengl/pkg-plist
  head/x11/py-qt5-opengl/Makefile
  head/x11/py-qt5-opengl/pkg-plist
  head/x11-toolkits/py-qt4-gui/Makefile
  head/x11-toolkits/py-qt4-gui/pkg-plist
  head/x11-toolkits/py-qt5-gui/Makefile
  head/x11-toolkits/py-qt5-gui/pkg-plist
  head/x11-toolkits/py-qt5-quick/Makefile
  head/x11-toolkits/py-qt5-quick/pkg-plist
  head/x11-toolkits/py-qt5-quickwidgets/Makefile
  head/x11-toolkits/py-qt5-quickwidgets/pkg-plist
  head/x11-toolkits/py-qt5-widgets/Makefile
  head/x11-toolkits/py-qt5-widgets/pkg-plist
Comment 12 Tobias C. Berner freebsd_committer 2018-11-22 20:20:17 UTC
Thanks for the exp-run.
Comment 13 Rainer Hurling 2018-11-23 20:18:41 UTC
Hi Tobias,

Many many thanks for this long awaited changes. Really appreciated! Now we can install different versions and flavors of PyQT on the same box.

For me, personally, this was the main showstopper for developing a graphics/qgis port for QGIS 3.x. Now I can continue :)

Best wishes,
Rainer
Comment 14 Loïc Bartoletti 2018-11-23 21:21:14 UTC
I join Rainer in these thanks.
Thank you Tobias!