fredrikaverpil / pyside2-wheels

Unofficial PySide2 wheel building with Travis CI and AppVeyor
41 stars 6 forks source link

Ubuntu 16.04, CMake warnings: "Could not find a package configuration file..." #4

Closed fredrikaverpil closed 6 years ago

fredrikaverpil commented 8 years ago

Reported: https://bugreports.qt.io/browse/PYSIDE-343

Getting lots of these (link to Travis log):

CMake Warning at cmake/Macros/FindQt5Extra.cmake:7 (find_package):
  By not providing "FindQt5Multimedia.cmake" in CMAKE_MODULE_PATH this
  project has asked CMake to find a package configuration file provided by
  "Qt5Multimedia", but CMake did not find one.
  Could not find a package configuration file provided by "Qt5Multimedia"
  with any of the following names:
    Qt5MultimediaConfig.cmake
    qt5multimedia-config.cmake
  Add the installation prefix of "Qt5Multimedia" to CMAKE_PREFIX_PATH or set
  "Qt5Multimedia_DIR" to a directory containing one of the above files.  If
  "Qt5Multimedia" provides a separate development package or SDK, be sure it
  has been installed.
Call Stack (most recent call first):
  CMakeLists.txt:72 (include)

...and lots of modules are skipped:

module Qt5Core found
module Qt5Concurrent found
module Qt5Gui found
module Qt5Widgets found
module Qt5PrintSupport found
-- optional module Qt5Svg skipped
-- optional module Qt5Designer skipped
-- optional module Qt5UiTools skipped
-- optional module Qt5WebKit skipped
-- optional module Qt5WebKitWidgets skipped
-- optional module Qt5Script skipped
-- optional module Qt5ScriptTools skipped
-- optional module Qt5Help skipped
-- optional module Qt5Multimedia skipped
-- optional module Qt5Quick skipped
-- optional module Qt5Qml skipped
-- optional module Qt5QuickWidgets skipped
-- optional module Qt5WebEngineWidgets skipped
-- optional module Qt5WebChannel skipped
-- optional module Qt5WebSockets skipped
-- optional module Qt5X11Extras skipped
module Qt5Xml found
module Qt5XmlPatterns found
module Qt5PrintSupport found
module Qt5Sql found
module Qt5Test found
module Qt5Network found
fredrikaverpil commented 8 years ago

@willjp stumbled upon this issue in the Qt.py project: https://github.com/mottosso/Qt.py/issues/149

leycec commented 7 years ago

Is this still an open issue, Fred? If so, I'd be happy to lend another hand here. By which I mean, I'd have to lend another hand here. Our downstream project requires PySide2 bindings for various optional Qt dependencies that appear to have been skipped (namely Qt5Help, Qt5Multimedia, and Qt5Svg).

I'm intimately familiar shudder with the PySide2 CMakeLists.txt logic responsible for dependency detection. I note that the Ubuntu PPAs you've leveraged to install the full-stack version of Qt 5.6.2 appear to provide the necessary dependencies, which is nice. Presumably, either:

Is this something I should plumb deeper into? 🚽

fredrikaverpil commented 7 years ago

I recently restructured the README.md to make it easier to digest. I extracted the modules lists from each build for Ubuntu here: https://github.com/fredrikaverpil/pyside2-wheels/blob/master/UBUNTU.md

I think this issue can be closed, but please do have a look.

fredrikaverpil commented 7 years ago

I just read the intro readme, but wow, that's one hell of a cool project!

Are you using PPAs or are you building Qt from source there? It's a bit short term to use the PPAs, I've found. Stephan's PPA for Trusty has recently had the QtUiTools module removed as Qt Creator doesn't build anymore on Trusty: https://github.com/fredrikaverpil/pyside2-wheels/issues/74#issuecomment-323589778

I'm co-authoring another project in which I build Qt5.6 and PySide2 (5.6 branch) from source. You may be interested in doing the same to make sure you don't get issues from PPAs, such as that one. See here: https://github.com/fredrikaverpil/pyside2-wheels/issues/80

In this project, I use PPAs, just to provide a sane way of getting up and running with PySide2. It's not an ideal solution, as you know - but the quickest one I've found.

leycec commented 7 years ago

I just read the intro readme, but wow, that's one hell of a cool project!

Aww, shucks! It'll be even cooler when it actually works. </longform_sigh>

Thanks to your Sisyphean efforts, we're considerably closer than we were a week ago. It feels like a year.

Are you using PPAs or are you building Qt from source there?

PPAs, for the moment. Incumbent laziness is our primary strength and weakness. You can view our ad-hoc brute-force Python 3.5 + Ubuntu 16.04 shell script installer, if you have a stiff stomach. As the familiar term "shell script" implies, it's pretty... not pretty.

We eventually intend to maintain a proper PPA or post-PPA snap. The current installers are only to get us over the short-term hump. Because grad student whinging knows no borders.

It's a bit short term to use the PPAs, I've found. Stephan's PPA for Trusty has recently had the QtUiTools module removed as Qt Creator doesn't build anymore on Trusty:

That's... really good to know. I'm thankful that he's at least attempted to preserve Qt for obsolete Ubuntu LTS releases. But still. Not good.

I'm co-authoring another project in which I build Qt5.6 and PySide2 (5.6 branch) from source.

Right. I briefly noted that. Would you be interested, perhaps, in extrapolating your existing work for us into a full-fledged PySide2 PPA or snap? Thomas Pietrowski's competing PySide2 PPA is functionally broken in numerous ways – and he's unresponsive on GitHub. ...that never helps.

I assume the only sane answer is: "Interested, but unwilling unless you direct deposit into my totally legit Nigerian bank account." That's my answer, too!

fredrikaverpil commented 7 years ago

Incumbent laziness is our primary strength and weakness

Absolutely. But that's also defining a healthy human being. 😉

Would you be interested, perhaps, in extrapolating your existing work for us into a full-fledged PPA or snap?

I actually imagine it not being too difficult to do that on Ubuntu/Debian the only thing changing is the yum install (into apt-get install) for the prerequisites. And those apt-get install packages are (quite unexpectedly) provided by the Qt docs.

I'd be happy to help you out any way I can. But I can't take on more projects...


It's at this point I alway struggle not to mention considering PyQt5 (sorry). It's pip-installable and just works. If you use conda, you can just conda create -n myenv python=3.5 pyqt=5.6 and you're done.

It's such a shame that we are now discussing a new PPA when we should probably re-write setup.py ourselves instead to solve all of our problems by publishing portable (but unofficial) wheels on PyPi. But building everything from source is actually simpler. ðŸ˜