Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Outdated PKGBUILD on AUR #90

Closed
teohhanhui opened this issue Apr 23, 2019 · 7 comments
Closed

Outdated PKGBUILD on AUR #90

teohhanhui opened this issue Apr 23, 2019 · 7 comments

Comments

@teohhanhui
Copy link
Contributor

PKGBUILD in https://aur.archlinux.org/mingw-w64-angleproject.git is severely outdated. Not sure if there's the same problem with other AUR packages.

Sounds like something that should be automated?

@Martchus
Copy link
Owner

Martchus commented Apr 23, 2019

The version in this repo is indeed differs a little bit from the package found in the AUR. But when I remember correctly I only did some minor adjustments which didn't really do the trick.

And yes, the angleproject package hasn't seen any updates in ages. The reason is that they changed their build system and so far I have lacked the motivation to look into their new build system.

But the plan would be:

  1. Check whether other distros already have an updated version to prevent re-inventing the wheel.
  2. Get rid of patches only added for Qt WebKit. (Even the revived version of Qt WebKit seems to be dead again so I've been dropping this module. Additionally, I'd use the version bundled within WebKit if I'd ever wanted to continue with Qt WebKit.)
  3. Adapt to their new build system which will hopefully handle cross compilation better than the last one. But somehow I doubt it. The last resort would be creating our own CMake project or make use of the qmake project the Qt devs use.

The alternative plan would be using the ANGLE bundled with Qt 5. It might be outdated as well but at least a little bit newer than our version. I think the Qt 5 build would produce ANGLE as a static library. This library could actually be distributed as split package to be used in standalone use-cases as well.

@teohhanhui
Copy link
Contributor Author

I'm actually not interested in angleproject but just want to use the "dynamic" qt5-base. Is there a way to use that without ANGLE? (I actually only want OpenGL with a fallback to the software renderer.)

@teohhanhui
Copy link
Contributor Author

Another somewhat related problem to that is the lack of opengl32sw.dll (llvmpipe driver from mesa) which is included in the official Qt package for Windows.

@Martchus
Copy link
Owner

Martchus commented Apr 23, 2019

I'm actually not interested in angleproject but just want to use the "dynamic" qt5-base. Is there a way to use that without ANGLE? (I actually only want OpenGL with a fallback to the software renderer.)

I thought the software renderer would now always be included. But having a brief look at the documentation it seems to live in its own Qt module: https://doc.qt.io/QtQuick2DRenderer/qtquick2drenderer-installation-guide.html The software renderer is included within the main Qt Quick: https://doc.qt.io/qt-5.9/qtquick-visualcanvas-adaptations-software.html

Not sure whether it works with the configuration of my packages, though.

Another somewhat related problem to that is the lack of opengl32sw.dll (llvmpipe driver from mesa) which is included in the official Qt package for Windows.

That one would need to be packaged as well. The mentioned documentation actually covers the topic "Providing the OpenGL Dependency" as well but only mentions *.so binaries.

@teohhanhui
Copy link
Contributor Author

teohhanhui commented Apr 23, 2019

Sorry, when I said software renderer I meant opengl32sw.dll, not the OpenGL renderer in Qt.

If I understand correctly, I'd need the "dynamic" build of Qt (again, it seems to be the default for the official Windows package) in order to do this: https://doc.qt.io/qt-5/windows-requirements.html#dynamically-loading-graphics-drivers

@Martchus
Copy link
Owner

I've updated my previous comment since it contained a wrong statement.

If you aren't interested in ANGLE itself (like me) it maybe make sense to follow the "the alternative plan" for now.

So I'd say let's focus on the dynamic build and simply let Qt's build system use the bundled ANGLE for it. Not sure when I'll have time for this. But it shouldn't be hard. If you want to try, just get rid of the ANGLE dependency and ANGLE-related patches. In particular one would get rid of 0003-Use-external-ANGLE-library.patch and the line rm -rf src/3rdparty/angle include/QtANGLE/{EGL,GLES2,GLES3,KHR}. Qt's build system should then use the bundled ANGLE automatically (if it requires it).

If you're doing some experiments, please share your results. Likely it makes sense to include the changes here, too. But try to keep the variants "aligned" so that only the package name differs. By the way, I'm using the following script to sync the variants: https://github.com/Martchus/PKGBUILDs/blob/master/devel/qt5/sync-mingw-w64-variants.sh

@Martchus
Copy link
Owner

This might be interesting for you to cross compile opengl32sw.dll: #94 (comment)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants