summaryrefslogtreecommitdiff
path: root/qt5
diff options
context:
space:
mode:
authorDanny Rawlins <monster.romster@gmail.com>2020-05-24 23:45:31 +1000
committerDanny Rawlins <monster.romster@gmail.com>2020-05-24 23:45:31 +1000
commit7b9257ce5fe372c607082806eb9a8049564dd390 (patch)
tree96507bab9b3340c95eea10f49bf23a05d6e6a75a /qt5
parent928916a487aec59d7af2a2b9cc35e600d8ff80fb (diff)
downloadopt-7b9257ce5fe372c607082806eb9a8049564dd390.tar.gz
opt-7b9257ce5fe372c607082806eb9a8049564dd390.tar.xz
qt5: https://codereview.qt-project.org/c/qt/qtbase/+/299182 IBus: Use WAYLAND_DISPLAY on Wayland sessions to make up socket names
Diffstat (limited to 'qt5')
-rw-r--r--qt5/.signature5
-rw-r--r--qt5/Pkgfile6
-rw-r--r--qt5/qt5-base-QTBUG-82910.patch75
3 files changed, 83 insertions, 3 deletions
diff --git a/qt5/.signature b/qt5/.signature
index bab78b670..e5db90f42 100644
--- a/qt5/.signature
+++ b/qt5/.signature
@@ -1,6 +1,7 @@
untrusted comment: verify with /etc/ports/opt.pub
-RWSE3ohX2g5d/YHniSBzM38EM2TXXhR1uCsw21iCELOMN09/RZ1vBuMWra1dU0AR1PXwnTvCCe0gDcWt2F3TcNi4FfrGF1nxOwU=
-SHA256 (Pkgfile) = a0b97bab515e8ffb451985fc1c4d46a3e6fe338caf201f2dee0747718ab8958a
+RWSE3ohX2g5d/WV0ZwJTXSeYycMYVFBGFGD5jIcyH8dUJag+KSJmaIf8Mz/hcH8XuXGNw3VWCARJL4ekyBopwiut7V+KS63DAQY=
+SHA256 (Pkgfile) = b44c091a27f6e74eaaf20e1568635f0987bf4bb84578c74d41c699916f68c797
SHA256 (.footprint) = 096374fcbe6517602c41115147d73f1d171327e94eb708881a55eb31b3fd025a
SHA256 (qt-everywhere-src-5.14.2.tar.xz) = c6fcd53c744df89e7d3223c02838a33309bd1c291fcb6f9341505fe99f7f19fa
SHA256 (qt5-logo.png) = ae1335ecd1cd2d17032184895ab298a636cdfa8121b0ed71307c4f2b23ec928e
+SHA256 (qt5-base-QTBUG-82910.patch) = abb94453c9fe54fde4811bc5475b88796c8db1f5cd75ddc68918aff20139b1aa
diff --git a/qt5/Pkgfile b/qt5/Pkgfile
index fe974be25..dd20efa40 100644
--- a/qt5/Pkgfile
+++ b/qt5/Pkgfile
@@ -8,11 +8,15 @@ name=qt5
version=5.14.2
release=1
source=(https://download.qt.io/official_releases/qt/${version::4}/$version/single/qt-everywhere-src-$version.tar.xz
- qt5-logo.png)
+ qt5-logo.png
+ qt5-base-QTBUG-82910.patch)
build() {
cd qt-everywhere-src-$version
+ # https://codereview.qt-project.org/c/qt/qtbase/+/299182
+ patch -d qtbase -p1 -i $SRC/qt5-base-QTBUG-82910.patch
+
export PYTHON='/usr/bin/python3'
mkdir $SRC/bin
ln -s /usr/bin/python3 $SRC/bin/python
diff --git a/qt5/qt5-base-QTBUG-82910.patch b/qt5/qt5-base-QTBUG-82910.patch
new file mode 100644
index 000000000..260b7c248
--- /dev/null
+++ b/qt5/qt5-base-QTBUG-82910.patch
@@ -0,0 +1,75 @@
+From 54aa63be9b74e8de72db9efbe6809ab1a97b29a7 Mon Sep 17 00:00:00 2001
+From: Takao Fujiwara <takao.fujiwara1@gmail.com>
+Date: Mon, 11 May 2020 21:14:01 +0900
+Subject: [PATCH] IBus: Use WAYLAND_DISPLAY on Wayland sessions to make up
+ socket names
+
+A recent change in IBus made it prefer the WAYLAND_DISPLAY envvar in
+order to compose its socket path for Wayland sessions. This is because
+DISPLAY is unreliable in those environment: It might not be there, there
+might be several displays pointing to the same Xwayland server (as it's
+the case in GNOME 3.36), or there might even be multiple Xwayland servers
+(eg. to enforce inter-app isolation with X11 apps).
+
+Fixes: QTBUG-82910
+Pick-To: 5.15
+Change-Id: I4883b5d06863ba284883dd95281bed2ce7203e29
+Reviewed-by: Lars Knoll <lars.knoll@qt.io>
+---
+ .../ibus/qibusplatforminputcontext.cpp | 38 +++++++++++++++-------
+ 1 file changed, 27 insertions(+), 11 deletions(-)
+
+diff --git a/src/plugins/platforminputcontexts/ibus/qibusplatforminputcontext.cpp b/src/plugins/platforminputcontexts/ibus/qibusplatforminputcontext.cpp
+index 47ac54927bc..16c0ebfe213 100644
+--- a/src/plugins/platforminputcontexts/ibus/qibusplatforminputcontext.cpp
++++ b/src/plugins/platforminputcontexts/ibus/qibusplatforminputcontext.cpp
+@@ -712,19 +712,35 @@ void QIBusPlatformInputContextPrivate::createBusProxy()
+
+ QString QIBusPlatformInputContextPrivate::getSocketPath()
+ {
+- QByteArray display(qgetenv("DISPLAY"));
+- QByteArray host = "unix";
++ QByteArray display;
+ QByteArray displayNumber = "0";
++ bool isWayland = false;
++
++ if (qEnvironmentVariableIsSet("IBUS_ADDRESS_FILE")) {
++ QByteArray path = qgetenv("IBUS_ADDRESS_FILE");
++ return QString::fromLocal8Bit(path);
++ } else if (qEnvironmentVariableIsSet("WAYLAND_DISPLAY")) {
++ display = qgetenv("WAYLAND_DISPLAY");
++ isWayland = true;
++ } else {
++ display = qgetenv("DISPLAY");
++ }
++ QByteArray host = "unix";
++
++ if (isWayland) {
++ displayNumber = display;
++ } else {
++ int pos = display.indexOf(':');
++ if (pos > 0)
++ host = display.left(pos);
++ ++pos;
++ int pos2 = display.indexOf('.', pos);
++ if (pos2 > 0)
++ displayNumber = display.mid(pos, pos2 - pos);
++ else
++ displayNumber = display.mid(pos);
++ }
+
+- int pos = display.indexOf(':');
+- if (pos > 0)
+- host = display.left(pos);
+- ++pos;
+- int pos2 = display.indexOf('.', pos);
+- if (pos2 > 0)
+- displayNumber = display.mid(pos, pos2 - pos);
+- else
+- displayNumber = display.mid(pos);
+ if (debug)
+ qDebug() << "host=" << host << "displayNumber" << displayNumber;
+
+--
+2.16.3
+

Generated by cgit