diff options
author | Danny Rawlins <monster.romster@gmail.com> | 2020-05-24 23:45:31 +1000 |
---|---|---|
committer | Danny Rawlins <monster.romster@gmail.com> | 2020-05-24 23:45:31 +1000 |
commit | 7b9257ce5fe372c607082806eb9a8049564dd390 (patch) | |
tree | 96507bab9b3340c95eea10f49bf23a05d6e6a75a /qt5 | |
parent | 928916a487aec59d7af2a2b9cc35e600d8ff80fb (diff) | |
download | opt-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/.signature | 5 | ||||
-rw-r--r-- | qt5/Pkgfile | 6 | ||||
-rw-r--r-- | qt5/qt5-base-QTBUG-82910.patch | 75 |
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 + |