From 5eb22ffbfafc558a66943e666c415a9749a39e2b Mon Sep 17 00:00:00 2001 From: Martin Jansa Date: Sat, 20 Jul 2013 14:39:37 +0200 Subject: [PATCH] qtwayland: add second recipe with latest SRCREV, compatible with qt5 5.1.0 Signed-off-by: Martin Jansa --- ...should-not-be-a-mandatory-dependency.patch | 46 ++++++++++++ ...hing-this-out-as-Qt5.0.0-does-not-ha.patch | 33 +++++++++ ...eKHR-requires-the-context-to-be-NULL.patch | 71 +++++++++++++++++++ ...ylandscanner-tool-to-the-native-side.patch | 0 ...should-not-be-a-mandatory-dependency.patch | 0 ...hing-this-out-as-Qt5.0.0-does-not-ha.patch | 0 ...eKHR-requires-the-context-to-be-NULL.patch | 0 ...d-precision-qualifier-in-fragment-sh.patch | 0 recipes-qt/qt5/qtwayland-native_git.bb | 4 +- recipes-qt/qt5/qtwayland.inc | 3 - recipes-qt/qt5/qtwayland_5.1.0+git.bb | 15 ++++ recipes-qt/qt5/qtwayland_git.bb | 12 +++- 12 files changed, 177 insertions(+), 7 deletions(-) create mode 100644 recipes-qt/qt5/qtwayland-5.1.0+git/0001-xcbcommon-should-not-be-a-mandatory-dependency.patch create mode 100644 recipes-qt/qt5/qtwayland-5.1.0+git/0002-Temporarily-patching-this-out-as-Qt5.0.0-does-not-ha.patch create mode 100644 recipes-qt/qt5/qtwayland-5.1.0+git/0003-eglCreateImageKHR-requires-the-context-to-be-NULL.patch rename recipes-qt/qt5/{qtwayland => qtwayland-git}/0001-Install-the-qtwaylandscanner-tool-to-the-native-side.patch (100%) rename recipes-qt/qt5/{qtwayland => qtwayland-git}/0001-xcbcommon-should-not-be-a-mandatory-dependency.patch (100%) rename recipes-qt/qt5/{qtwayland => qtwayland-git}/0002-Temporarily-patching-this-out-as-Qt5.0.0-does-not-ha.patch (100%) rename recipes-qt/qt5/{qtwayland => qtwayland-git}/0003-eglCreateImageKHR-requires-the-context-to-be-NULL.patch (100%) rename recipes-qt/qt5/{qtwayland => qtwayland-git}/0004-EGL-Specify-vec2d-precision-qualifier-in-fragment-sh.patch (100%) create mode 100644 recipes-qt/qt5/qtwayland_5.1.0+git.bb diff --git a/recipes-qt/qt5/qtwayland-5.1.0+git/0001-xcbcommon-should-not-be-a-mandatory-dependency.patch b/recipes-qt/qt5/qtwayland-5.1.0+git/0001-xcbcommon-should-not-be-a-mandatory-dependency.patch new file mode 100644 index 0000000000..0571ea5e83 --- /dev/null +++ b/recipes-qt/qt5/qtwayland-5.1.0+git/0001-xcbcommon-should-not-be-a-mandatory-dependency.patch @@ -0,0 +1,46 @@ +From 7f97da120b5b3dde22c9d89a8da8a4f35a9f2a26 Mon Sep 17 00:00:00 2001 +From: Mikko Levonmaa +Date: Tue, 19 Feb 2013 11:16:05 -0800 +Subject: [PATCH 1/3] xcbcommon should not be a mandatory dependency + +Not all platforms that use qtwayland depend on xcbcommon to be present +for them to be functional + +This change won't be needed when this commit from dev branch is merged +to stable: +commit 894adf8a447865119be7c6c4d01577d8032f4177 +Author: Oswald Buddenhagen +Date: Mon Apr 8 12:54:58 2013 +0200 + +make failure to configure wayland non-fatal for a top-level build of qt + +Signed-off-by: Martin Jansa +--- + qtwayland.pro | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/qtwayland.pro b/qtwayland.pro +index 24e104b..66dd38a 100644 +--- a/qtwayland.pro ++++ b/qtwayland.pro +@@ -11,7 +11,7 @@ qtCompileTest(xcomposite) + load(qt_parts) + + !config_wayland { +- error(QtWayland requires Wayland 1.0.3 or higher) ++ error("QtWayland requires Wayland 1.0.3 or higher") + } + + !config_xkbcommon { +@@ -19,7 +19,7 @@ load(qt_parts) + } + + !config_wayland_scanner { +- error(QtWayland requires wayland-scanner) ++ error("QtWayland requires wayland-scanner") + } + + !config_wayland_egl { +-- +1.8.2.1 + diff --git a/recipes-qt/qt5/qtwayland-5.1.0+git/0002-Temporarily-patching-this-out-as-Qt5.0.0-does-not-ha.patch b/recipes-qt/qt5/qtwayland-5.1.0+git/0002-Temporarily-patching-this-out-as-Qt5.0.0-does-not-ha.patch new file mode 100644 index 0000000000..771729086f --- /dev/null +++ b/recipes-qt/qt5/qtwayland-5.1.0+git/0002-Temporarily-patching-this-out-as-Qt5.0.0-does-not-ha.patch @@ -0,0 +1,33 @@ +From 5b7c89d211a193acfd182eb0519b658629af3193 Mon Sep 17 00:00:00 2001 +From: Mikko Levonmaa +Date: Fri, 1 Mar 2013 13:00:53 -0800 +Subject: [PATCH 2/3] Temporarily patching this out as Qt5.0.0 does not have + qtHaveModule + +Signed-off-by: Martin Jansa +--- + src/compositor/compositor_api/compositor_api.pri | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/compositor/compositor_api/compositor_api.pri b/src/compositor/compositor_api/compositor_api.pri +index f0bbe76..e7905e5 100644 +--- a/src/compositor/compositor_api/compositor_api.pri ++++ b/src/compositor/compositor_api/compositor_api.pri +@@ -12,7 +12,7 @@ SOURCES += \ + + QT += core-private + +-qtHaveModule(quick) { ++#qtHaveModule(quick) { + SOURCES += \ + compositor_api/qwaylandsurfaceitem.cpp \ + compositor_api/qwaylandsurfacenode.cpp \ +@@ -27,4 +27,4 @@ qtHaveModule(quick) { + + QT += qml quick + QT += quick-private gui-private +-} ++#} +-- +1.8.2.1 + diff --git a/recipes-qt/qt5/qtwayland-5.1.0+git/0003-eglCreateImageKHR-requires-the-context-to-be-NULL.patch b/recipes-qt/qt5/qtwayland-5.1.0+git/0003-eglCreateImageKHR-requires-the-context-to-be-NULL.patch new file mode 100644 index 0000000000..58f82663f2 --- /dev/null +++ b/recipes-qt/qt5/qtwayland-5.1.0+git/0003-eglCreateImageKHR-requires-the-context-to-be-NULL.patch @@ -0,0 +1,71 @@ +From 2d707f8dc9f0658d889aef4f4c5a62595598402c Mon Sep 17 00:00:00 2001 +From: Mikko Levonmaa +Date: Wed, 6 Mar 2013 10:18:49 -0800 +Subject: [PATCH 3/3] eglCreateImageKHR requires the context to be NULL + +As per the EGL spec the context passed to that function should +be null. + +Signed-off-by: Martin Jansa +--- + .../wayland-egl/waylandeglintegration.cpp | 16 ++-------------- + 1 file changed, 2 insertions(+), 14 deletions(-) + +diff --git a/src/plugins/waylandcompositors/wayland-egl/waylandeglintegration.cpp b/src/plugins/waylandcompositors/wayland-egl/waylandeglintegration.cpp +index 73877c4..16e77fb 100644 +--- a/src/plugins/waylandcompositors/wayland-egl/waylandeglintegration.cpp ++++ b/src/plugins/waylandcompositors/wayland-egl/waylandeglintegration.cpp +@@ -101,7 +101,6 @@ public: + + PFNGLEGLIMAGETARGETTEXTURE2DOESPROC gl_egl_image_target_texture_2d; + +- QPlatformNativeInterface::NativeResourceForContextFunction get_egl_context; + }; + + WaylandEglIntegration::WaylandEglIntegration() +@@ -121,10 +120,6 @@ void WaylandEglIntegration::initializeHardware(QtWayland::Display *waylandDispla + const char *extensionString = eglQueryString(d->egl_display, EGL_EXTENSIONS); + if (extensionString && strstr(extensionString, "EGL_WL_bind_wayland_display")) + { +- d->get_egl_context = nativeInterface->nativeResourceFunctionForContext("get_egl_context"); +- if (!d->get_egl_context) { +- qWarning("Failed to retrieve the get_egl_context function"); +- } + d->egl_bind_wayland_display = + reinterpret_cast(eglGetProcAddress("eglBindWaylandDisplayWL")); + d->egl_unbind_wayland_display = +@@ -137,7 +132,6 @@ void WaylandEglIntegration::initializeHardware(QtWayland::Display *waylandDispla + reinterpret_cast(eglGetProcAddress("glEGLImageTargetTexture2DOES")); + + if (d->egl_bind_wayland_display +- && d->get_egl_context + && d->egl_unbind_wayland_display + && d->egl_create_image + && d->egl_destroy_image +@@ -162,10 +156,7 @@ GLuint WaylandEglIntegration::createTextureFromBuffer(wl_buffer *buffer, QOpenGL + return 0; + } + +- QPlatformNativeInterface *nativeInterface = QGuiApplication::platformNativeInterface(); +- EGLContext egl_context = d->get_egl_context(context); +- +- EGLImageKHR image = d->egl_create_image(d->egl_display, egl_context, ++ EGLImageKHR image = d->egl_create_image(d->egl_display, NULL, + EGL_WAYLAND_BUFFER_WL, + buffer, NULL); + +@@ -229,10 +220,7 @@ void *WaylandEglIntegration::lockNativeBuffer(struct wl_buffer *buffer, QOpenGLC + { + Q_D(const WaylandEglIntegration); + +- QPlatformNativeInterface *nativeInterface = QGuiApplication::platformNativeInterface(); +- EGLContext egl_context = d->get_egl_context(context); +- +- EGLImageKHR image = d->egl_create_image(d->egl_display, egl_context, ++ EGLImageKHR image = d->egl_create_image(d->egl_display, NULL, + EGL_WAYLAND_BUFFER_WL, + buffer, NULL); + return image; +-- +1.8.2.1 + diff --git a/recipes-qt/qt5/qtwayland/0001-Install-the-qtwaylandscanner-tool-to-the-native-side.patch b/recipes-qt/qt5/qtwayland-git/0001-Install-the-qtwaylandscanner-tool-to-the-native-side.patch similarity index 100% rename from recipes-qt/qt5/qtwayland/0001-Install-the-qtwaylandscanner-tool-to-the-native-side.patch rename to recipes-qt/qt5/qtwayland-git/0001-Install-the-qtwaylandscanner-tool-to-the-native-side.patch diff --git a/recipes-qt/qt5/qtwayland/0001-xcbcommon-should-not-be-a-mandatory-dependency.patch b/recipes-qt/qt5/qtwayland-git/0001-xcbcommon-should-not-be-a-mandatory-dependency.patch similarity index 100% rename from recipes-qt/qt5/qtwayland/0001-xcbcommon-should-not-be-a-mandatory-dependency.patch rename to recipes-qt/qt5/qtwayland-git/0001-xcbcommon-should-not-be-a-mandatory-dependency.patch diff --git a/recipes-qt/qt5/qtwayland/0002-Temporarily-patching-this-out-as-Qt5.0.0-does-not-ha.patch b/recipes-qt/qt5/qtwayland-git/0002-Temporarily-patching-this-out-as-Qt5.0.0-does-not-ha.patch similarity index 100% rename from recipes-qt/qt5/qtwayland/0002-Temporarily-patching-this-out-as-Qt5.0.0-does-not-ha.patch rename to recipes-qt/qt5/qtwayland-git/0002-Temporarily-patching-this-out-as-Qt5.0.0-does-not-ha.patch diff --git a/recipes-qt/qt5/qtwayland/0003-eglCreateImageKHR-requires-the-context-to-be-NULL.patch b/recipes-qt/qt5/qtwayland-git/0003-eglCreateImageKHR-requires-the-context-to-be-NULL.patch similarity index 100% rename from recipes-qt/qt5/qtwayland/0003-eglCreateImageKHR-requires-the-context-to-be-NULL.patch rename to recipes-qt/qt5/qtwayland-git/0003-eglCreateImageKHR-requires-the-context-to-be-NULL.patch diff --git a/recipes-qt/qt5/qtwayland/0004-EGL-Specify-vec2d-precision-qualifier-in-fragment-sh.patch b/recipes-qt/qt5/qtwayland-git/0004-EGL-Specify-vec2d-precision-qualifier-in-fragment-sh.patch similarity index 100% rename from recipes-qt/qt5/qtwayland/0004-EGL-Specify-vec2d-precision-qualifier-in-fragment-sh.patch rename to recipes-qt/qt5/qtwayland-git/0004-EGL-Specify-vec2d-precision-qualifier-in-fragment-sh.patch diff --git a/recipes-qt/qt5/qtwayland-native_git.bb b/recipes-qt/qt5/qtwayland-native_git.bb index 090faafa80..20cd2519c2 100644 --- a/recipes-qt/qt5/qtwayland-native_git.bb +++ b/recipes-qt/qt5/qtwayland-native_git.bb @@ -2,6 +2,8 @@ require qt5-git.inc require ${PN}.inc # qtwayland wasn't released yet, last tag before this SRCREV is 5.0.0-beta1 -PV = "4.999+5.0.0-beta1+git${SRCPV}" +# this PV is only to indicate that this recipe is compatible with qt5 5.1.0 +# while qtwayland_git stays compatible with 5.0.2 +PV = "5.1.0+git${SRCPV}" SRCREV = "ede872db1cdfdc2810c2dd29edd5fb6e1cdac0f5" diff --git a/recipes-qt/qt5/qtwayland.inc b/recipes-qt/qt5/qtwayland.inc index 7cf39351e7..3ae98edebe 100644 --- a/recipes-qt/qt5/qtwayland.inc +++ b/recipes-qt/qt5/qtwayland.inc @@ -13,13 +13,10 @@ LIC_FILES_CHKSUM = "file://${S}/src/compositor/compositor_api/qwaylandsurfacenod XKB_DEPENDS = "libxkbcommon xproto" DEPENDS += "qtbase qtdeclarative wayland wayland-native ${XKB_DEPENDS}" -INC_PR = "r1" - SRC_URI += " \ file://0001-xcbcommon-should-not-be-a-mandatory-dependency.patch \ file://0002-Temporarily-patching-this-out-as-Qt5.0.0-does-not-ha.patch \ file://0003-eglCreateImageKHR-requires-the-context-to-be-NULL.patch \ - file://0004-EGL-Specify-vec2d-precision-qualifier-in-fragment-sh.patch \ " QT_WAYLAND_CONFIG ?= "wayland-compositor" diff --git a/recipes-qt/qt5/qtwayland_5.1.0+git.bb b/recipes-qt/qt5/qtwayland_5.1.0+git.bb new file mode 100644 index 0000000000..aaa439cf80 --- /dev/null +++ b/recipes-qt/qt5/qtwayland_5.1.0+git.bb @@ -0,0 +1,15 @@ +require qt5-git.inc +require ${PN}.inc + +FILESEXTRAPATHS =. "${FILE_DIRNAME}/${BPN}-5.1.0+git:" + +DEPENDS += "qtwayland-native" + +# qtwayland wasn't released yet, last tag before this SRCREV is 5.0.0-beta1 +# this PV is only to indicate that this recipe is compatible with qt5 5.1.0 +# while qtwayland_git stays compatible with 5.0.2 +PV = "5.1.0+git${SRCPV}" + +# newer revisions depend on newer wayland-1.1 APIs +SRCREV = "87dba733acfddecd8562e8e26ce5f994aa499fe3" +# SRCREV = "ede872db1cdfdc2810c2dd29edd5fb6e1cdac0f5" diff --git a/recipes-qt/qt5/qtwayland_git.bb b/recipes-qt/qt5/qtwayland_git.bb index f91df4d570..170b3673ec 100644 --- a/recipes-qt/qt5/qtwayland_git.bb +++ b/recipes-qt/qt5/qtwayland_git.bb @@ -1,13 +1,19 @@ require qt5-git.inc require ${PN}.inc -# qtwayland wasn't released yet, last tag before this SRCREV is 5.0.0-beta1 -PV = "4.999+5.0.0-beta1+git${SRCPV}" +# qtwayland wasn't released yet, last tag before this SRCREV is 5.0.0-beta1, +# but we'll use 5.0.2+git to indicate this version is compatible with 5.0.2 +PV = "5.0.2+git${SRCPV}" -PR = "${INC_PR}.1" +# drop when bumping SRCREV +PR = "r2" SRCREV = "5cb159395eccb1d96fb73a78e499eef30aacb46d" +SRC_URI += " \ + file://0004-EGL-Specify-vec2d-precision-qualifier-in-fragment-sh.patch \ +" + do_configure_prepend() { # Temporary hack to get qtwayland build for Qt 5.0.2 if ! grep -q MODULE_VERSION ${S}/.qmake.conf; then