Add dev-qt from an older version of the gentoo repo

Qt5 has been removed, we restore it since we still use it.
This commit is contained in:
2026-07-03 09:45:00 +02:00
parent 2247967dd3
commit d5c461ec31
587 changed files with 30457 additions and 0 deletions

View File

@ -0,0 +1,7 @@
DIST qtwayland-5.15.16-gentoo-kde-2.tar.xz 47116 BLAKE2B 30646c02214167b1891b84873f7d10812d3aa1894db1a246771a2df2a799d1768c857a623153d862e15f6a7ed7b784738c8afdc5f4968e57a7e2296735d69876 SHA512 c3af344eb647fb16f1237387345ee4e56e2efa7376f10d46d09de34c77add092cb50acf29d180fa61ab33331fee959ab187339b05b6fa0b9d4fda6f0c28b600b
DIST qtwayland-5.15.17-gentoo-kde-1.tar.xz 46680 BLAKE2B 2e97725802dbd78406c0b4e93837270fd56d0fa05347c7ed3e96d0271c1c8235cc8872ebc3c8a9f0ca601c3b7eba913359d22abc218d9b267d2d17d486a7ee50 SHA512 5fade3bdaad67b202038d8a7b961c9d8e1a1df028d51f6f1d700386e7d3863d9e2e07b039e0dad8ced7c5488cc44f9f50150aba8cbe3cbc037bc0d0d23991d65
DIST qtwayland-everywhere-opensource-src-5.15.16.tar.xz 561148 BLAKE2B a095051245e0ba0f0a27c7da703628e67b30465e12de06c1662dea3a3d74163cc67baa004f0cbab01bf5b70c6d2bdea289278859b2713a00f595cc51bb6f654a SHA512 9ce2bca54aa0e17be17383fccd6caca721db5b54f8905ec86cf871ed0e2414e6bc86878b9cc5167c322153467076b2afdcd6163a8fb2feb6b19cef11c3a29247
DIST qtwayland-everywhere-opensource-src-5.15.17.tar.xz 563036 BLAKE2B e3cf9879cb80ca0c07cbe99bbb81fd01efd9c2f42cd03d3d8e4148db13a3e69aee0e644d71c68a798ef85cad874ef205ca5063724363b7a0d88d7879f5e02c11 SHA512 1b0fecff83f619c2c56b5b8894678a70288109e6146d0672086ce105a7916a4ad6dca83aa3d6601d2e3b05c7f271a2ac403762096246461eb1f203d02eb4e192
DIST qtwayland-everywhere-src-6.8.2.tar.xz 1138764 BLAKE2B a2311698c23d00e81dff3b2e7140dc5cd2c2006c713d2e777fc032a407ca393914f0a68a92d1c7e3ccdb668d498fa10a67d61e4419eb341705678b843149ec89 SHA512 b11a2a9189939b9deb000d6dc517242290fbba228e4a0bb2c5097c20aac79431b1398d940ed145a9fd308ae73605dd7df6cf89643de92c158b7ae92a948db954
DIST qtwayland-everywhere-src-6.8.3.tar.xz 1141132 BLAKE2B 0a1a8b1bba5d1ad398943820c8375777a71ef3d00d48a6569708950d2dcffe7ee7f99bbbfdf4431264b0c0f75e2e3668b3d60269d90f6f7cbb6ce46dccacedae SHA512 2edb6d3e85c06bcf689c3acfcc38b6ff0505569dfeec8bfb5a434fad563087ff917875ea56e639405af3cca8adc98206ab9f68dfaf8e2449300d010ffbb16699
DIST qtwayland-everywhere-src-6.9.0.tar.xz 1152368 BLAKE2B 80ac81020389719dd8ccd5abd9a1979b3b82a8b8b5a2d4e9befa478b3b304e1b791a449ac131f36e06f455ae1b3872ad87feb4660aebc1407c82da7f7d80d01e SHA512 a5e8af98030030b34f644bb963d8e901017c17e21f892bdd2d99ddbe9664a1798f6e216d4f56f748a143983c1565a7f40900059facc623409fa6098f34d0c1c7

View File

@ -0,0 +1,262 @@
Not essential to backport the update, but KDE upstream recommends
it to avoid warnings.
https://codereview.qt-project.org/c/qt/qtwayland/+/574283
--- a/src/3rdparty/protocol/wayland/wayland.xml
+++ b/src/3rdparty/protocol/wayland/wayland.xml
@@ -49 +49 @@
- The callback_data passed in the callback is the event serial.
+ The callback_data passed in the callback is undefined and should be ignored.
@@ -215 +215 @@
- <interface name="wl_shm_pool" version="1">
+ <interface name="wl_shm_pool" version="2">
@@ -265,5 +265,5 @@
- This request only changes the amount of bytes that are mmapped
- by the server and does not touch the file corresponding to the
- file descriptor passed at creation time. It is the client's
- responsibility to ensure that the file is at least as big as
- the new pool size.
+ This request only changes the amount of bytes that are mmapped
+ by the server and does not touch the file corresponding to the
+ file descriptor passed at creation time. It is the client's
+ responsibility to ensure that the file is at least as big as
+ the new pool size.
@@ -275 +275 @@
- <interface name="wl_shm" version="1">
+ <interface name="wl_shm" version="2">
@@ -421,0 +422,15 @@
+ <entry name="c1" value="0x20203143" summary="[7:0] C0:C1:C2:C3:C4:C5:C6:C7 1:1:1:1:1:1:1:1 eight pixels/byte"/>
+ <entry name="c2" value="0x20203243" summary="[7:0] C0:C1:C2:C3 2:2:2:2 four pixels/byte"/>
+ <entry name="c4" value="0x20203443" summary="[7:0] C0:C1 4:4 two pixels/byte"/>
+ <entry name="d1" value="0x20203144" summary="[7:0] D0:D1:D2:D3:D4:D5:D6:D7 1:1:1:1:1:1:1:1 eight pixels/byte"/>
+ <entry name="d2" value="0x20203244" summary="[7:0] D0:D1:D2:D3 2:2:2:2 four pixels/byte"/>
+ <entry name="d4" value="0x20203444" summary="[7:0] D0:D1 4:4 two pixels/byte"/>
+ <entry name="d8" value="0x20203844" summary="[7:0] D"/>
+ <entry name="r1" value="0x20203152" summary="[7:0] R0:R1:R2:R3:R4:R5:R6:R7 1:1:1:1:1:1:1:1 eight pixels/byte"/>
+ <entry name="r2" value="0x20203252" summary="[7:0] R0:R1:R2:R3 2:2:2:2 four pixels/byte"/>
+ <entry name="r4" value="0x20203452" summary="[7:0] R0:R1 4:4 two pixels/byte"/>
+ <entry name="r10" value="0x20303152" summary="[15:0] x:R 6:10 little endian"/>
+ <entry name="r12" value="0x20323152" summary="[15:0] x:R 4:12 little endian"/>
+ <entry name="avuy8888" value="0x59555641" summary="[31:0] A:Cr:Cb:Y 8:8:8:8 little endian"/>
+ <entry name="xvuy8888" value="0x59555658" summary="[31:0] X:Cr:Cb:Y 8:8:8:8 little endian"/>
+ <entry name="p030" value="0x30333050" summary="2x2 subsampled Cr:Cb plane 10 bits per channel packed"/>
@@ -444,0 +460,11 @@
+
+ <!-- Version 2 additions -->
+
+ <request name="release" type="destructor" since="2">
+ <description summary="release the shm object">
+ Using this request a client can tell the server that it is not going to
+ use the shm object anymore.
+
+ Objects created via this interface remain unaffected.
+ </description>
+ </request>
@@ -456,3 +482,5 @@
- If the buffer uses a format that has an alpha channel, the alpha channel
- is assumed to be premultiplied in the color channels unless otherwise
- specified.
+ Color channels are assumed to be electrical rather than optical (in other
+ words, encoded with a transfer function) unless otherwise specified. If
+ the buffer uses a format that has an alpha channel, the alpha channel is
+ assumed to be premultiplied into the electrical color channel values
+ (after transfer function encoding) unless otherwise specified.
@@ -849,0 +878 @@
+ <entry name="used_source" value="1" summary="source has already been used"/>
@@ -871 +900 @@
- hotspot, but subsequent wl_surface.attach request can move the
+ hotspot, but subsequent wl_surface.offset requests can move the
@@ -878,0 +908,4 @@
+
+ The given source may not be used in any further set_selection or
+ start_drag requests. Attempting to reuse a previously-used source
+ may send a used_source error.
@@ -891,0 +925,4 @@
+
+ The given source may not be used in any further set_selection or
+ start_drag requests. Attempting to reuse a previously-used source
+ may send a used_source error.
@@ -1414 +1451 @@
- summary="surface was destroyed before its role object"/>
+ summary="surface was destroyed before its role object"/>
@@ -1443,3 +1480,3 @@
- 'invalid_offset' error being raised. The x and y arguments are ignored
- and do not change the pending state. To achieve equivalent semantics,
- use wl_surface.offset.
+ 'invalid_offset' error being raised. The x and y arguments are ignored
+ and do not change the pending state. To achieve equivalent semantics,
+ use wl_surface.offset.
@@ -1481,0 +1519,7 @@
+
+ If a pending wl_buffer has been destroyed, the result is not specified.
+ Many compositors are known to remove the surface content on the following
+ wl_surface.commit, but this behaviour is not universal. Clients seeking to
+ maximise compatibility should not destroy pending buffers and should
+ ensure that they explicitly remove content from surfaces, even after
+ destroying buffers.
@@ -1621,10 +1665,12 @@
- as opposed to the current state in use by the compositor. A commit
- request atomically applies all pending state, replacing the current
- state. After commit, the new pending state is as documented for each
- related request.
-
- On commit, a pending wl_buffer is applied first, and all other state
- second. This means that all coordinates in double-buffered state are
- relative to the new wl_buffer coming into use, except for
- wl_surface.attach itself. If there is no pending wl_buffer, the
- coordinates are relative to the current surface contents.
+ as opposed to the active state in use by the compositor.
+
+ A commit request atomically creates a content update from the pending
+ state, even if the pending state has not been touched. The content
+ update is placed in a queue until it becomes active. After commit, the
+ new pending state is as documented for each related request.
+
+ When the content update is applied, the wl_buffer is applied before all
+ other state. This means that all coordinates in double-buffered state
+ are relative to the newly attached wl_buffers, except for
+ wl_surface.attach itself. If there is no newly attached wl_buffer, the
+ coordinates are relative to the previous content update.
@@ -1669,4 +1715,6 @@
- This request sets an optional transformation on how the compositor
- interprets the contents of the buffer attached to the surface. The
- accepted values for the transform parameter are the values for
- wl_output.transform.
+ This request sets the transformation that the client has already applied
+ to the content of the buffer. The accepted values for the transform
+ parameter are the values for wl_output.transform.
+
+ The compositor applies the inverse of this transformation whenever it
+ uses the buffer contents.
@@ -1728 +1776 @@
- If scale is not positive the invalid_scale protocol error is
+ If scale is not greater than 0 the invalid_scale protocol error is
@@ -1732 +1780 @@
- summary="positive scale for interpreting buffer contents"/>
+ summary="scale for interpreting buffer contents"/>
@@ -1804,0 +1853,3 @@
+ Before receiving this event the preferred buffer scale for this surface
+ is 1.
+
@@ -1808,0 +1860,2 @@
+
+ The compositor shall emit a scale value greater than 0.
@@ -1818,3 +1871,6 @@
- It is intended that transform aware clients use this event to apply the
- transform to their content and use wl_surface.set_buffer_transform to
- indicate the transform they have rendered with.
+ Before receiving this event the preferred buffer transform for this
+ surface is normal.
+
+ Applying this transformation to the surface buffer contents and using
+ wl_surface.set_buffer_transform might allow the compositor to use the
+ surface buffer more efficiently.
@@ -1995 +2051 @@
- On surface.attach requests to the pointer surface, hotspot_x
+ On wl_surface.offset requests to the pointer surface, hotspot_x
@@ -1997 +2053 @@
- passed to the request. Attach must be confirmed by
+ passed to the request. The offset must be applied by
@@ -2251 +2307 @@
- <event name="axis_discrete" since="5">
+ <event name="axis_discrete" since="5" deprecated-since="8">
@@ -2376,0 +2433,10 @@
+
+ Each wl_keyboard has the following logical state:
+
+ - an active surface (possibly null),
+ - the keys currently logically down,
+ - the active modifiers,
+ - the active group.
+
+ By default, the active surface is null, the keys currently logically down
+ are empty, the active modifiers and the active group are 0.
@@ -2410,0 +2477,5 @@
+
+ In the wl_keyboard logical state, this event sets the active surface to
+ the surface argument and the keys currently logically down to the keys
+ in the keys argument. The compositor must not send this event if the
+ wl_keyboard already had an active surface immediately before this event.
@@ -2414 +2485 @@
- <arg name="keys" type="array" summary="the currently pressed keys"/>
+ <arg name="keys" type="array" summary="the keys currently logically down"/>
@@ -2425,2 +2496,4 @@
- After this event client must assume that all keys, including modifiers,
- are lifted and also it must stop key repeating if there's some going on.
+ In the wl_keyboard logical state, this event resets all values to their
+ defaults. The compositor must not send this event if the active surface
+ of the wl_keyboard was not equal to the surface argument immediately
+ before this event.
@@ -2450,0 +2524,9 @@
+
+ In the wl_keyboard logical state, this event adds the key to the keys
+ currently logically down (if the state argument is pressed) or removes
+ the key from the keys currently logically down (if the state argument is
+ released). The compositor must not send this event if the wl_keyboard
+ did not have an active surface immediately before this event. The
+ compositor must not send this event if state is pressed (resp. released)
+ and the key was already logically down (resp. was not logically down)
+ immediately before this event.
@@ -2461,0 +2544,11 @@
+
+ The compositor may send this event without a surface of the client
+ having keyboard focus, for example to tie modifier information to
+ pointer focus instead. If a modifier event with pressed modifiers is sent
+ without a prior enter event, the client can assume the modifier state is
+ valid until it receives the next wl_keyboard.modifiers event. In order to
+ reset the modifier state again, the compositor can send a
+ wl_keyboard.modifiers event with no pressed modifiers.
+
+ In the wl_keyboard logical state, this event updates the modifiers and
+ group.
@@ -2568,0 +2662,2 @@
+
+ No frame event is required after the cancel event.
@@ -2668,4 +2763,3 @@
- <description summary="transform from framebuffer to output">
- This describes the transform that a compositor will apply to a
- surface to compensate for the rotation or mirroring of an
- output device.
+ <description summary="transformation applied to buffer contents">
+ This describes transformations that clients and compositors apply to
+ buffer contents.
@@ -2702,0 +2797,4 @@
+ Clients should use wl_surface.preferred_buffer_transform instead of the
+ transform advertised by this event to find the preferred buffer
+ transform to use for a surface.
+
@@ -2725 +2823 @@
- summary="transform that maps framebuffer to output"/>
+ summary="additional transformation applied to buffer contents during presentation"/>
@@ -2798,2 +2896,3 @@
- later. If it is not sent, the client should assume a
- scale of 1.
+ later. The compositor will emit a non-zero, positive
+ value for scale. If it is not sent, the client should
+ assume a scale of 1.
@@ -2807,6 +2906,3 @@
- It is intended that scaling aware clients track the
- current output of a surface, and if it is on a scaled
- output it should use wl_surface.set_buffer_scale with
- the scale of the output. That way the compositor can
- avoid scaling the surface, and the client can supply
- a higher detail image.
+ Clients should use wl_surface.preferred_buffer_scale
+ instead of this event to find the preferred buffer
+ scale to use for a surface.
@@ -3037,0 +3134,5 @@
+
+ A sub-surface never has the keyboard focus of any seat.
+
+ The wl_surface.offset request is ignored: clients must use set_position
+ instead to move the sub-surface.
@@ -3063,3 +3164 @@
- parent surface is applied. When this happens depends on whether the
- parent surface is in synchronized mode or not. See
- wl_subsurface.set_sync and wl_subsurface.set_desync for details.
+ parent surface is applied.
@@ -3088,3 +3187 @@
- surface is applied. When this happens depends on whether the parent
- surface is in synchronized mode or not. See wl_subsurface.set_sync and
- wl_subsurface.set_desync for details.
+ surface is applied.

View File

@ -0,0 +1,19 @@
https://bugreports.qt.io/browse/QTBUG-127821
https://codereview.qt-project.org/c/qt/qtwayland/+/623667
--- a/src/client/qwaylandinputdevice.cpp
+++ b/src/client/qwaylandinputdevice.cpp
@@ -1140,8 +1140,10 @@
// If the window has been destroyed, we still need to report an up event, but it can't
// be handled by the destroyed window (obviously), so send the event here instead.
- QWindowSystemInterface::handleMouseEvent(nullptr, event->timestamp, event->local,
- event->global, event->buttons,
- event->button, event->type,
- event->modifiers);// , Qt::MouseEventSource source = Qt::MouseEventNotSynthesized);
+ QWindowSystemInterface::handleMouseEvent(
+ nullptr, event->timestamp,
+ QPointingDevice::primaryPointingDevice(mParent->seatname()), event->local,
+ event->global, event->buttons, event->button, event->type,
+ event->modifiers); // , Qt::MouseEventSource source =
+ // Qt::MouseEventNotSynthesized);
}
delete mFrameData.event;

View File

@ -0,0 +1,60 @@
Backport recommended by KDE[1].
[1] https://invent.kde.org/qt/qt/qtwayland/-/commit/e4556c59f0c8250da7c16759432b2ac0a5ac9d9f
[2] https://mail.kde.org/pipermail/distributions/2025-April/001575.html
From e4556c59f0c8250da7c16759432b2ac0a5ac9d9f Mon Sep 17 00:00:00 2001
From: Vlad Zahorodnii <vlad.zahorodnii@kde.org>
Date: Mon, 31 Mar 2025 11:40:12 +0300
Subject: [PATCH] Client: Reset mFrameCallbackTimedOut when showing a window
When a window is hidden, the corresponding expose event is sent
asynchronously. So, a buffer (and a frame callback) can be attached
after the window is hidden.
QWaylandWindow::initWindow() handles that case by attaching a nil buffer
to the surface, but it skips resetting the frame callback things.
If mFrameCallbackTimedOut is not reset, then the window can get stuck
in the unexposed state and not show up after the second setVisible(true).
This change makes the initWindow() function also reset frame callback
data. It fixes some windows not showing up after remapping them.
--- a/src/client/qwaylandwindow.cpp
+++ b/src/client/qwaylandwindow.cpp
@@ -107,4 +107,5 @@
mSurface->attach(nullptr, 0, 0);
mSurface->commit();
+ resetFrameCallback();
if (window()->type() == Qt::Desktop)
@@ -326,4 +327,13 @@
delete std::exchange(mSubSurfaceWindow, nullptr);
emit surfaceRoleDestroyed();
+
+ resetFrameCallback();
+ mInFrameRender = false;
+ mWaitingToApplyConfigure = false;
+ mExposed = false;
+}
+
+void QWaylandWindow::resetFrameCallback()
+{
{
QMutexLocker lock(&mFrameSyncMutex);
@@ -339,8 +349,5 @@
mFrameCallbackCheckIntervalTimerId = -1;
}
- mInFrameRender = false;
mFrameCallbackTimedOut = false;
- mWaitingToApplyConfigure = false;
- mExposed = false;
}
--- a/src/client/qwaylandwindow_p.h
+++ b/src/client/qwaylandwindow_p.h
@@ -352,4 +352,5 @@
bool shouldCreateSubSurface() const;
void resetSurfaceRole();
+ void resetFrameCallback();
QPlatformScreen *calculateScreenFromSurfaceEvents() const;
void setOpaqueArea(const QRegion &opaqueArea);

View File

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>qt@gentoo.org</email>
<name>Gentoo Qt Project</name>
</maintainer>
<use>
<flag name="compositor">Enable support for the wayland compositor / server APIs</flag>
<flag name="gnome">Build the GNOME-like decoration plugin (loaded by default with GNOME)</flag>
<flag name="qml">Build QML/QtQuick bindings and imports</flag>
<flag name="vulkan">Enable support for Vulkan-based server buffer integration</flag>
</use>
<upstream>
<bugs-to>https://bugreports.qt.io/</bugs-to>
<doc>https://doc.qt.io/</doc>
<remote-id type="github">qt/qtwayland</remote-id>
</upstream>
<slots>
<subslots>
Must only be used by packages that are known to use private parts of the Qt API.
</subslots>
</slots>
</pkgmetadata>

View File

@ -0,0 +1,52 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
if [[ ${PV} != *9999* ]]; then
QT5_KDEPATCHSET_REV=2
KEYWORDS="amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv x86"
fi
inherit qt5-build
DESCRIPTION="Wayland platform plugin for Qt"
SLOT=5/${QT5_PV} # bug 815646
IUSE="compositor vulkan"
RDEPEND="
dev-libs/wayland
=dev-qt/qtcore-${QT5_PV}*:5=
=dev-qt/qtgui-${QT5_PV}*:5=[egl,libinput,vulkan=]
media-libs/libglvnd
x11-libs/libxkbcommon
compositor? ( =dev-qt/qtdeclarative-${QT5_PV}*:5= )
"
DEPEND="${RDEPEND}
vulkan? ( dev-util/vulkan-headers )
"
BDEPEND="dev-util/wayland-scanner"
src_configure() {
local myqmakeargs=(
--
-no-feature-xcomposite-egl
-no-feature-xcomposite-glx
$(qt_use compositor feature-wayland-server)
$(qt_use compositor feature-wayland-dmabuf-server-buffer)
$(qt_use compositor feature-wayland-drm-egl-server-buffer)
$(qt_use compositor feature-wayland-shm-emulation-server-buffer)
)
use compositor && myqmakeargs+=(
$(qt_use vulkan feature-wayland-vulkan-server-buffer)
)
qt5-build_src_configure
}
src_install() {
qt5-build_src_install
rm "${D}${QT5_BINDIR}"/qtwaylandscanner || die
}

View File

@ -0,0 +1,52 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
if [[ ${PV} != *9999* ]]; then
QT5_KDEPATCHSET_REV=1
KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~x86"
fi
inherit qt5-build
DESCRIPTION="Wayland platform plugin for Qt"
SLOT=5/${QT5_PV} # bug 815646
IUSE="compositor vulkan"
RDEPEND="
dev-libs/wayland
=dev-qt/qtcore-${QT5_PV}*:5=
=dev-qt/qtgui-${QT5_PV}*:5=[egl,libinput,vulkan=]
media-libs/libglvnd
x11-libs/libxkbcommon
compositor? ( =dev-qt/qtdeclarative-${QT5_PV}*:5= )
"
DEPEND="${RDEPEND}
vulkan? ( dev-util/vulkan-headers )
"
BDEPEND="dev-util/wayland-scanner"
src_configure() {
local myqmakeargs=(
--
-no-feature-xcomposite-egl
-no-feature-xcomposite-glx
$(qt_use compositor feature-wayland-server)
$(qt_use compositor feature-wayland-dmabuf-server-buffer)
$(qt_use compositor feature-wayland-drm-egl-server-buffer)
$(qt_use compositor feature-wayland-shm-emulation-server-buffer)
)
use compositor && myqmakeargs+=(
$(qt_use vulkan feature-wayland-vulkan-server-buffer)
)
qt5-build_src_configure
}
src_install() {
qt5-build_src_install
rm "${D}${QT5_BINDIR}"/qtwaylandscanner || die
}

View File

@ -0,0 +1,55 @@
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
# Looking for Qt 6? It is packaged differently to Qt 5 with different
# package names: https://wiki.gentoo.org/wiki/Project:Qt/Qt6_migration_notes
if [[ ${PV} != *9999* ]]; then
QT5_KDEPATCHSET_REV=1
KEYWORDS="amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv x86"
fi
inherit qt5-build
DESCRIPTION="Wayland platform plugin for Qt"
SLOT=5/${QT5_PV} # bug 815646
IUSE="compositor vulkan"
RDEPEND="
dev-libs/wayland
=dev-qt/qtcore-${QT5_PV}*:5=
=dev-qt/qtgui-${QT5_PV}*:5=[egl,libinput,vulkan=]
media-libs/libglvnd
x11-libs/libxkbcommon
compositor? ( =dev-qt/qtdeclarative-${QT5_PV}*:5= )
"
DEPEND="${RDEPEND}
vulkan? ( dev-util/vulkan-headers )
"
BDEPEND="dev-util/wayland-scanner"
src_configure() {
local myqmakeargs=(
--
-no-feature-xcomposite-egl
-no-feature-xcomposite-glx
$(qt_use compositor feature-wayland-server)
$(qt_use compositor feature-wayland-dmabuf-server-buffer)
$(qt_use compositor feature-wayland-drm-egl-server-buffer)
$(qt_use compositor feature-wayland-shm-emulation-server-buffer)
)
use compositor && myqmakeargs+=(
$(qt_use vulkan feature-wayland-vulkan-server-buffer)
)
qt5-build_src_configure
}
src_install() {
qt5-build_src_install
rm "${D}${QT5_BINDIR}"/qtwaylandscanner || die
}

View File

@ -0,0 +1,39 @@
# Copyright 2021-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit qt6-build
DESCRIPTION="Toolbox for making Qt based Wayland compositors"
if [[ ${QT6_BUILD_TYPE} == release ]]; then
KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv x86"
fi
IUSE="gnome qml"
RDEPEND="
dev-libs/wayland
~dev-qt/qtbase-${PV}:6[gui,opengl,wayland]
media-libs/libglvnd
x11-libs/libxkbcommon
qml? ( ~dev-qt/qtdeclarative-${PV}:6 )
gnome? (
~dev-qt/qtbase-${PV}:6[dbus]
~dev-qt/qtsvg-${PV}:6
)
"
DEPEND="${RDEPEND}"
BDEPEND="
dev-util/wayland-scanner
"
src_configure() {
local mycmakeargs=(
$(cmake_use_find_package qml Qt6Quick)
$(qt_feature gnome wayland_decoration_adwaita)
)
qt6-build_src_configure
}

View File

@ -0,0 +1,39 @@
# Copyright 2021-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit qt6-build
DESCRIPTION="Toolbox for making Qt based Wayland compositors"
if [[ ${QT6_BUILD_TYPE} == release ]]; then
KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv x86"
fi
IUSE="gnome qml"
RDEPEND="
dev-libs/wayland
~dev-qt/qtbase-${PV}:6[gui,opengl,wayland]
media-libs/libglvnd
x11-libs/libxkbcommon
qml? ( ~dev-qt/qtdeclarative-${PV}:6 )
gnome? (
~dev-qt/qtbase-${PV}:6[dbus]
~dev-qt/qtsvg-${PV}:6
)
"
DEPEND="${RDEPEND}"
BDEPEND="
dev-util/wayland-scanner
"
src_configure() {
local mycmakeargs=(
$(cmake_use_find_package qml Qt6Quick)
$(qt_feature gnome wayland_decoration_adwaita)
)
qt6-build_src_configure
}

View File

@ -0,0 +1,39 @@
# Copyright 2021-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit qt6-build
DESCRIPTION="Toolbox for making Qt based Wayland compositors"
if [[ ${QT6_BUILD_TYPE} == release ]]; then
KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
fi
IUSE="gnome qml"
RDEPEND="
dev-libs/wayland
~dev-qt/qtbase-${PV}:6[gui,opengl,wayland]
media-libs/libglvnd
x11-libs/libxkbcommon
qml? ( ~dev-qt/qtdeclarative-${PV}:6 )
gnome? (
~dev-qt/qtbase-${PV}:6[dbus]
~dev-qt/qtsvg-${PV}:6
)
"
DEPEND="${RDEPEND}"
BDEPEND="
dev-util/wayland-scanner
"
src_configure() {
local mycmakeargs=(
$(cmake_use_find_package qml Qt6Quick)
$(qt_feature gnome wayland_decoration_adwaita)
)
qt6-build_src_configure
}

View File

@ -0,0 +1,39 @@
# Copyright 2021-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit qt6-build
DESCRIPTION="Toolbox for making Qt based Wayland compositors"
if [[ ${QT6_BUILD_TYPE} == release ]]; then
KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
fi
IUSE="gnome qml"
RDEPEND="
dev-libs/wayland
~dev-qt/qtbase-${PV}:6[gui,opengl,wayland]
media-libs/libglvnd
x11-libs/libxkbcommon
qml? ( ~dev-qt/qtdeclarative-${PV}:6 )
gnome? (
~dev-qt/qtbase-${PV}:6[dbus]
~dev-qt/qtsvg-${PV}:6
)
"
DEPEND="${RDEPEND}"
BDEPEND="
dev-util/wayland-scanner
"
src_configure() {
local mycmakeargs=(
$(cmake_use_find_package qml Qt6Quick)
$(qt_feature gnome wayland_decoration_adwaita)
)
qt6-build_src_configure
}

View File

@ -0,0 +1,72 @@
# Copyright 2021-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit qt6-build
DESCRIPTION="Wayland platform plugin for Qt"
if [[ ${QT6_BUILD_TYPE} == release ]]; then
KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv x86"
fi
IUSE="accessibility compositor gnome qml vulkan"
RDEPEND="
dev-libs/wayland
~dev-qt/qtbase-${PV}:6[accessibility=,gui,opengl,vulkan=,wayland]
media-libs/libglvnd
x11-libs/libxkbcommon
compositor? (
qml? ( ~dev-qt/qtdeclarative-${PV}:6 )
)
gnome? (
~dev-qt/qtbase-${PV}:6[dbus]
~dev-qt/qtsvg-${PV}:6
)
"
DEPEND="
${RDEPEND}
vulkan? ( dev-util/vulkan-headers )
"
BDEPEND="dev-util/wayland-scanner"
CMAKE_SKIP_TESTS=(
# segfaults for not-looked-into reasons, but not considered
# an issue given >=seatv5 exists since wayland-1.10 (2016)
tst_seatv4
# needs a compositor/opengl, skip the extra trouble
tst_surface
tst_xdgdecorationv1
# known failing with wayland-1.23.0 (or at least with offscreen), not
# believed to result in critical runtime issues so skip until this is
# looked at upstream (https://bugreports.qt.io/browse/QTBUG-126379)
tst_client
tst_compositor
tst_scaling
)
PATCHES=(
"${FILESDIR}"/${PN}-6.8.0-wayland.xml-1.23.0.patch
"${FILESDIR}"/${PN}-6.8.2-QTBUG-127821.patch
)
src_configure() {
local mycmakeargs=(
$(cmake_use_find_package compositor Qt6Quick)
$(cmake_use_find_package qml Qt6Quick)
$(qt_feature compositor wayland_server)
$(qt_feature gnome wayland_decoration_adwaita)
)
qt6-build_src_configure
}
src_test() {
# users' session setting may break tst_clientextension (bug #927030)
unset DESKTOP_SESSION XDG_CURRENT_DESKTOP
unset GNOME_DESKTOP_SESSION_ID KDE_FULL_SESSION
qt6-build_src_test
}

View File

@ -0,0 +1,71 @@
# Copyright 2021-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit qt6-build
DESCRIPTION="Wayland platform plugin for Qt"
if [[ ${QT6_BUILD_TYPE} == release ]]; then
KEYWORDS="amd64 arm arm64 ~loong ~ppc ppc64 ~riscv x86"
fi
IUSE="accessibility compositor gnome qml vulkan"
RDEPEND="
dev-libs/wayland
~dev-qt/qtbase-${PV}:6[accessibility=,gui,opengl,vulkan=,wayland]
media-libs/libglvnd
x11-libs/libxkbcommon
compositor? (
qml? ( ~dev-qt/qtdeclarative-${PV}:6 )
)
gnome? (
~dev-qt/qtbase-${PV}:6[dbus]
~dev-qt/qtsvg-${PV}:6
)
"
DEPEND="
${RDEPEND}
vulkan? ( dev-util/vulkan-headers )
"
BDEPEND="dev-util/wayland-scanner"
CMAKE_SKIP_TESTS=(
# segfaults for not-looked-into reasons, but not considered
# an issue given >=seatv5 exists since wayland-1.10 (2016)
tst_seatv4
# needs a compositor/opengl, skip the extra trouble
tst_surface
tst_xdgdecorationv1
# known failing with wayland-1.23.0 (or at least with offscreen), not
# believed to result in critical runtime issues so skip until this is
# looked at upstream (https://bugreports.qt.io/browse/QTBUG-126379)
tst_client
tst_compositor
tst_scaling
)
PATCHES=(
"${FILESDIR}"/${PN}-6.8.0-wayland.xml-1.23.0.patch
)
src_configure() {
local mycmakeargs=(
$(cmake_use_find_package compositor Qt6Quick)
$(cmake_use_find_package qml Qt6Quick)
$(qt_feature compositor wayland_server)
$(qt_feature gnome wayland_decoration_adwaita)
)
qt6-build_src_configure
}
src_test() {
# users' session setting may break tst_clientextension (bug #927030)
unset DESKTOP_SESSION XDG_CURRENT_DESKTOP
unset GNOME_DESKTOP_SESSION_ID KDE_FULL_SESSION
qt6-build_src_test
}

View File

@ -0,0 +1,71 @@
# Copyright 2021-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit qt6-build
DESCRIPTION="Wayland platform plugin for Qt"
if [[ ${QT6_BUILD_TYPE} == release ]]; then
KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
fi
IUSE="accessibility compositor gnome qml vulkan"
RDEPEND="
dev-libs/wayland
~dev-qt/qtbase-${PV}:6[accessibility=,gui,opengl,vulkan=,wayland]
media-libs/libglvnd
x11-libs/libxkbcommon
compositor? (
qml? ( ~dev-qt/qtdeclarative-${PV}:6 )
)
gnome? (
~dev-qt/qtbase-${PV}:6[dbus]
~dev-qt/qtsvg-${PV}:6
)
"
DEPEND="
${RDEPEND}
vulkan? ( dev-util/vulkan-headers )
"
BDEPEND="dev-util/wayland-scanner"
CMAKE_SKIP_TESTS=(
# segfaults for not-looked-into reasons, but not considered
# an issue given >=seatv5 exists since wayland-1.10 (2016)
tst_seatv4
# needs a compositor/opengl, skip the extra trouble
tst_surface
tst_xdgdecorationv1
# known failing with wayland-1.23.0 (or at least with offscreen), not
# believed to result in critical runtime issues so skip until this is
# looked at upstream (https://bugreports.qt.io/browse/QTBUG-126379)
tst_client
tst_compositor
tst_scaling
)
PATCHES=(
"${FILESDIR}"/${P}-reset-mframe.patch
)
src_configure() {
local mycmakeargs=(
$(cmake_use_find_package compositor Qt6Quick)
$(cmake_use_find_package qml Qt6Quick)
$(qt_feature compositor wayland_server)
$(qt_feature gnome wayland_decoration_adwaita)
)
qt6-build_src_configure
}
src_test() {
# users' session setting may break tst_clientextension (bug #927030)
unset DESKTOP_SESSION XDG_CURRENT_DESKTOP
unset GNOME_DESKTOP_SESSION_ID KDE_FULL_SESSION
qt6-build_src_test
}

View File

@ -0,0 +1,67 @@
# Copyright 2021-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit qt6-build
DESCRIPTION="Wayland platform plugin for Qt"
if [[ ${QT6_BUILD_TYPE} == release ]]; then
KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
fi
IUSE="accessibility compositor gnome qml vulkan"
RDEPEND="
dev-libs/wayland
~dev-qt/qtbase-${PV}:6[accessibility=,gui,opengl,vulkan=,wayland]
media-libs/libglvnd
x11-libs/libxkbcommon
compositor? (
qml? ( ~dev-qt/qtdeclarative-${PV}:6 )
)
gnome? (
~dev-qt/qtbase-${PV}:6[dbus]
~dev-qt/qtsvg-${PV}:6
)
"
DEPEND="
${RDEPEND}
vulkan? ( dev-util/vulkan-headers )
"
BDEPEND="dev-util/wayland-scanner"
CMAKE_SKIP_TESTS=(
# segfaults for not-looked-into reasons, but not considered
# an issue given >=seatv5 exists since wayland-1.10 (2016)
tst_seatv4
# needs a compositor/opengl, skip the extra trouble
tst_surface
tst_xdgdecorationv1
# known failing with wayland-1.23.0 (or at least with offscreen), not
# believed to result in critical runtime issues so skip until this is
# looked at upstream (https://bugreports.qt.io/browse/QTBUG-126379)
tst_client
tst_compositor
tst_scaling
)
src_configure() {
local mycmakeargs=(
$(cmake_use_find_package compositor Qt6Quick)
$(cmake_use_find_package qml Qt6Quick)
$(qt_feature compositor wayland_server)
$(qt_feature gnome wayland_decoration_adwaita)
)
qt6-build_src_configure
}
src_test() {
# users' session setting may break tst_clientextension (bug #927030)
unset DESKTOP_SESSION XDG_CURRENT_DESKTOP
unset GNOME_DESKTOP_SESSION_ID KDE_FULL_SESSION
qt6-build_src_test
}

View File

@ -0,0 +1,67 @@
# Copyright 2021-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit qt6-build
DESCRIPTION="Wayland platform plugin for Qt"
if [[ ${QT6_BUILD_TYPE} == release ]]; then
KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
fi
IUSE="accessibility compositor gnome qml vulkan"
RDEPEND="
dev-libs/wayland
~dev-qt/qtbase-${PV}:6[accessibility=,gui,opengl,vulkan=,wayland]
media-libs/libglvnd
x11-libs/libxkbcommon
compositor? (
qml? ( ~dev-qt/qtdeclarative-${PV}:6 )
)
gnome? (
~dev-qt/qtbase-${PV}:6[dbus]
~dev-qt/qtsvg-${PV}:6
)
"
DEPEND="
${RDEPEND}
vulkan? ( dev-util/vulkan-headers )
"
BDEPEND="dev-util/wayland-scanner"
CMAKE_SKIP_TESTS=(
# segfaults for not-looked-into reasons, but not considered
# an issue given >=seatv5 exists since wayland-1.10 (2016)
tst_seatv4
# needs a compositor/opengl, skip the extra trouble
tst_surface
tst_xdgdecorationv1
# known failing with wayland-1.23.0 (or at least with offscreen), not
# believed to result in critical runtime issues so skip until this is
# looked at upstream (https://bugreports.qt.io/browse/QTBUG-126379)
tst_client
tst_compositor
tst_scaling
)
src_configure() {
local mycmakeargs=(
$(cmake_use_find_package compositor Qt6Quick)
$(cmake_use_find_package qml Qt6Quick)
$(qt_feature compositor wayland_server)
$(qt_feature gnome wayland_decoration_adwaita)
)
qt6-build_src_configure
}
src_test() {
# users' session setting may break tst_clientextension (bug #927030)
unset DESKTOP_SESSION XDG_CURRENT_DESKTOP
unset GNOME_DESKTOP_SESSION_ID KDE_FULL_SESSION
qt6-build_src_test
}