From 25e5a6599437664a3eff8d9f8a966adc896e09e8 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Mon, 11 Dec 2023 17:14:47 +0000 Subject: gentoo auto-resync : 11:12:2023 - 17:14:47 --- app-i18n/fcitx-qt/Manifest | 4 + app-i18n/fcitx-qt/fcitx-qt-5.1.3.ebuild | 63 ++++++++ ...t-5.1.3-make-qwayland-workaround-optional.patch | 158 +++++++++++++++++++++ app-i18n/fcitx-qt/metadata.xml | 24 ++++ 4 files changed, 249 insertions(+) create mode 100644 app-i18n/fcitx-qt/Manifest create mode 100644 app-i18n/fcitx-qt/fcitx-qt-5.1.3.ebuild create mode 100644 app-i18n/fcitx-qt/files/fcitx-qt-5.1.3-make-qwayland-workaround-optional.patch create mode 100644 app-i18n/fcitx-qt/metadata.xml (limited to 'app-i18n/fcitx-qt') diff --git a/app-i18n/fcitx-qt/Manifest b/app-i18n/fcitx-qt/Manifest new file mode 100644 index 000000000000..93985a203a64 --- /dev/null +++ b/app-i18n/fcitx-qt/Manifest @@ -0,0 +1,4 @@ +AUX fcitx-qt-5.1.3-make-qwayland-workaround-optional.patch 6573 BLAKE2B 86d44e52b496d5d2ec737282e769069851f328005f0f596de063737312055d83cc400026bc7d7829ea502e3ccf8713e84ff46d6bd6505f9f4fc281dec7997657 SHA512 71eaf7f6ad98a5cbcf9fc3c624b00abba2c42d7551138c24e5f2d032a262567421585b88c443ff14b6d59430205d0a12ae0ff18dc13e0ac47645c25263066984 +DIST fcitx-qt-5.1.3.tar.xz 92312 BLAKE2B 84dda11e955ab1317379e0f5a0e95efb1b3108844b52c0e8fd08a02f0d5d6d16094c8729820ad7dce51e3d77994c217710f69edff4d566251f9272a125ffc936 SHA512 7d02409ac8359cea5e199f16b3b06ecfe47886edb00bb2163f9fbe1c319bbef425387e58db25fdfcd2b35261eada35f2acfb93ff0b65ed497da62d35363e8947 +EBUILD fcitx-qt-5.1.3.ebuild 1322 BLAKE2B e76b69aee1d85494f2ccec2d58c2ec306811580243e1eb6bdf9f8844d4260f16313847ef80f519bcbb4d57b1ec22856d58de3c1305089dd773677fddd6c365b8 SHA512 e2859f3f7fd9eaca43d6ac89770fa9078e00b194f7bd2fe8e32bdb7f2254f3f0d2166a823ae4e4cda68d20d0872a353ab8cf32382323f81c5b7f87ed6028cbc7 +MISC metadata.xml 746 BLAKE2B e08a44b85b899bb04c0683bea836d0c79cdba1b82e0e6a2ecd85e32f258bd8b2e305cc9a95465b34fb73707c718e1e27a2835d8b3afb98c9aa184a7efc0f55da SHA512 81b171a9e601eba0ee1df96f7662f3486a30236a9faed67c274446f75d998529eb37233c928307db3875349afec1db704e25149d67ff45055bd7d0bd09047c45 diff --git a/app-i18n/fcitx-qt/fcitx-qt-5.1.3.ebuild b/app-i18n/fcitx-qt/fcitx-qt-5.1.3.ebuild new file mode 100644 index 000000000000..e231ad2105f7 --- /dev/null +++ b/app-i18n/fcitx-qt/fcitx-qt-5.1.3.ebuild @@ -0,0 +1,63 @@ +# Copyright 2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MY_PN="fcitx5-qt" + +inherit cmake + +DESCRIPTION="Qt library and IM module for fcitx5" +HOMEPAGE="https://github.com/fcitx/fcitx5-qt" +SRC_URI="https://download.fcitx-im.org/fcitx5/${MY_PN}/${MY_PN}-${PV}.tar.xz -> ${P}.tar.xz" + +LICENSE="BSD LGPL-2.1+" +SLOT="5" +KEYWORDS="~amd64 ~x86" +IUSE="+qt5 onlyplugin staticplugin qt6 wayland" +REQUIRED_USE=" + || ( qt5 qt6 ) + staticplugin? ( onlyplugin ) +" + +RDEPEND=" + x11-libs/libX11 + x11-libs/libxcb + x11-libs/libxkbcommon + !onlyplugin? ( + >=app-i18n/fcitx-5.1.5:5 + qt5? ( dev-qt/qtconcurrent:5 ) + ) + qt5? ( + dev-qt/qtcore:5 + dev-qt/qtdbus:5 + dev-qt/qtgui:5= + dev-qt/qtwidgets:5 + ) + qt6? ( + dev-qt/qtbase:6[dbus,gui,widgets,wayland?] + wayland? ( dev-qt/qtwayland:6 ) + ) +" +DEPEND="${RDEPEND}" +BDEPEND=" + kde-frameworks/extra-cmake-modules:0 + virtual/pkgconfig + !onlyplugin? ( sys-devel/gettext ) +" + +S="${WORKDIR}/${MY_PN}-${PV}" + +PATCHES="${FILESDIR}/${P}-make-qwayland-workaround-optional.patch" + +src_configure() { + local mycmakeargs=( + -DENABLE_QT4=no + -DENABLE_QT5=$(usex qt5) + -DENABLE_QT6=$(usex qt6) + -DENABLE_QT6_WAYLAND_WORKAROUND=$(usex wayland) + -DBUILD_ONLY_PLUGIN=$(usex onlyplugin) + -DBUILD_STATIC_PLUGIN=$(usex staticplugin) + ) + cmake_src_configure +} diff --git a/app-i18n/fcitx-qt/files/fcitx-qt-5.1.3-make-qwayland-workaround-optional.patch b/app-i18n/fcitx-qt/files/fcitx-qt-5.1.3-make-qwayland-workaround-optional.patch new file mode 100644 index 000000000000..0ef5fc8652a7 --- /dev/null +++ b/app-i18n/fcitx-qt/files/fcitx-qt-5.1.3-make-qwayland-workaround-optional.patch @@ -0,0 +1,158 @@ +Backport of https://github.com/fcitx/fcitx5-qt/commit/af535e7e106f69e7dc6dc28db3653601d1e6156a + +Backport upstream commit af535e7e making QtWayland optional. +All QtWayland-related code is guarded behind `isWayland` checks anyways. +This benefits users of pure X11 setups. + +Author: Lucio Sauer + +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -16,6 +16,7 @@ option(ENABLE_QT6 "Enable Qt 6" Off) + option(BUILD_ONLY_PLUGIN "Build only plugin" Off) + option(BUILD_STATIC_PLUGIN "Build plugin as static" Off) + option(WITH_FCITX_PLUGIN_NAME "Enable plugin name with fcitx" On) ++option(ENABLE_QT6_WAYLAND_WORKAROUND "Enable Qt6 Wayland workaround" On) + + if (BUILD_ONLY_PLUGIN) + set(LIBRARY_TYPE OBJECT) +--- a/qt5/platforminputcontext/fcitxcandidatewindow.cpp ++++ b/qt5/platforminputcontext/fcitxcandidatewindow.cpp +@@ -21,7 +21,7 @@ + #include + #include + +-#if QT_VERSION >= QT_VERSION_CHECK(6, 6, 0) ++#if defined(FCITX_ENABLE_QT6_WAYLAND_WORKAROUND) && QT_VERSION >= QT_VERSION_CHECK(6, 6, 0) + #include + #include + #include +@@ -34,7 +34,7 @@ namespace fcitx { + + namespace { + +-#if QT_VERSION >= QT_VERSION_CHECK(6, 6, 0) ++#if defined(FCITX_ENABLE_QT6_WAYLAND_WORKAROUND) && QT_VERSION >= QT_VERSION_CHECK(6, 6, 0) + class XdgWmBase : public QtWayland::xdg_wm_base { + public: + using xdg_wm_base::xdg_wm_base; +@@ -120,7 +120,7 @@ FcitxCandidateWindow::FcitxCandidateWindow(QWindow *window, + // Not using Qt::BypassWindowManagerHint ensures wayland handle + // fractional scale. + setFlags(Qt::ToolTip | commonFlags); +-#if QT_VERSION >= QT_VERSION_CHECK(6, 6, 0) ++#if defined(FCITX_ENABLE_QT6_WAYLAND_WORKAROUND) && QT_VERSION >= QT_VERSION_CHECK(6, 6, 0) + if (auto instance = QtWaylandClient::QWaylandIntegration::instance()) { + for (QtWaylandClient::QWaylandDisplay::RegistryGlobal global : + instance->display()->globals()) { +@@ -132,7 +132,6 @@ FcitxCandidateWindow::FcitxCandidateWindow(QWindow *window, + } + } + } +-#if QT_VERSION >= QT_VERSION_CHECK(6, 6, 0) + setProperty("_q_waylandPopupAnchor", + QVariant::fromValue(Qt::BottomEdge | Qt::LeftEdge)); + setProperty("_q_waylandPopupGravity", +@@ -142,7 +141,6 @@ FcitxCandidateWindow::FcitxCandidateWindow(QWindow *window, + static_cast( + QtWayland::xdg_positioner::constraint_adjustment_slide_x | + QtWayland::xdg_positioner::constraint_adjustment_flip_y)); +-#endif + #endif + } else { + // Qt::Popup ensures X11 doesn't apply tooltip animation under kwin. +@@ -484,7 +482,7 @@ void FcitxCandidateWindow::updateClientSideUI( + QRect cursorRect = context_->cursorRectangleWrapper(); + QRect screenGeometry; + +-#if QT_VERSION >= QT_VERSION_CHECK(6, 6, 0) ++#if defined(FCITX_ENABLE_QT6_WAYLAND_WORKAROUND) && QT_VERSION >= QT_VERSION_CHECK(6, 6, 0) + if (isWayland_) { + auto waylandWindow = + static_cast(window->handle()); +@@ -520,12 +518,10 @@ void FcitxCandidateWindow::updateClientSideUI( + } + bool wasVisible = isVisible(); + bool cursorRectChanged = false; +-#if QT_VERSION >= QT_VERSION_CHECK(6, 6, 0) + if (property("_q_waylandPopupAnchorRect") != cursorRect) { + cursorRectChanged = true; + setProperty("_q_waylandPopupAnchorRect", cursorRect); + } +-#endif + // This try to ensure xdg_popup is available. + show(); + xdg_popup *xdgPopup = static_cast( +@@ -553,7 +549,6 @@ void FcitxCandidateWindow::updateClientSideUI( + positioner->destroy(); + return; + } +-#if QT_VERSION >= QT_VERSION_CHECK(6, 6, 0) + // Check if we need remap. + // If it was invisible, nothing need to be done. + // If cursor rect changed, the window must be remapped. +@@ -570,7 +565,6 @@ void FcitxCandidateWindow::updateClientSideUI( + show(); + } + return; +-#endif + } + #endif + // Try to apply the screen edge detection over the window, because if we +--- a/qt5/platforminputcontext/fcitxcandidatewindow.h ++++ b/qt5/platforminputcontext/fcitxcandidatewindow.h +@@ -19,7 +19,7 @@ + #include + #include + +-#if QT_VERSION >= QT_VERSION_CHECK(6, 6, 0) ++#if defined(FCITX_ENABLE_QT6_WAYLAND_WORKAROUND) && QT_VERSION >= QT_VERSION_CHECK(6, 6, 0) + #include + #endif + +@@ -93,7 +93,7 @@ public Q_SLOTS: + std::vector candidateRegions_; + QPointer parent_; + +-#if QT_VERSION >= QT_VERSION_CHECK(6, 6, 0) ++#if defined(FCITX_ENABLE_QT6_WAYLAND_WORKAROUND) && QT_VERSION >= QT_VERSION_CHECK(6, 6, 0) + QScopedPointer xdgWmBase_; + #endif + }; +--- a/qt6/CMakeLists.txt ++++ b/qt6/CMakeLists.txt +@@ -1,8 +1,10 @@ + + find_package(Qt6 ${REQUIRED_QT6_VERSION} CONFIG REQUIRED Core DBus Widgets) + find_package(Qt6Gui ${REQUIRED_QT6_VERSION} REQUIRED Private) +-find_package(Qt6WaylandClient ${REQUIRED_QT6_VERSION} REQUIRED Private) +-find_package(Qt6WaylandGlobalPrivate ${REQUIRED_QT6_VERSION} REQUIRED) ++if (ENABLE_QT6_WAYLAND_WORKAROUND) ++ find_package(Qt6WaylandClient ${REQUIRED_QT6_VERSION} REQUIRED Private) ++ find_package(Qt6WaylandGlobalPrivate ${REQUIRED_QT6_VERSION} REQUIRED) ++endif() + + add_subdirectory(dbusaddons) + add_subdirectory(platforminputcontext) +--- a/qt6/platforminputcontext/CMakeLists.txt ++++ b/qt6/platforminputcontext/CMakeLists.txt +@@ -49,11 +49,16 @@ target_link_libraries(fcitx5platforminputcontextplugin-qt6 + XCB::XCB + Fcitx5Qt6::DBusAddons + XKBCommon::XKBCommon +- Qt6::WaylandGlobalPrivate +- Qt6::WaylandClient +- Qt6::WaylandClientPrivate + ) + ++if (ENABLE_QT6_WAYLAND_WORKAROUND) ++ target_compile_definitions(fcitx5platforminputcontextplugin-qt6 PRIVATE "-DFCITX_ENABLE_QT6_WAYLAND_WORKAROUND") ++ target_link_libraries(fcitx5platforminputcontextplugin-qt6 ++ Qt6::WaylandGlobalPrivate ++ Qt6::WaylandClient ++ Qt6::WaylandClientPrivate) ++endif() ++ + get_target_property(_QT6_QMAKE_EXECUTABLE Qt6::qmake LOCATION) + execute_process( + COMMAND ${_QT6_QMAKE_EXECUTABLE} -query "QT_INSTALL_PLUGINS" diff --git a/app-i18n/fcitx-qt/metadata.xml b/app-i18n/fcitx-qt/metadata.xml new file mode 100644 index 000000000000..446ffdc2c7c1 --- /dev/null +++ b/app-i18n/fcitx-qt/metadata.xml @@ -0,0 +1,24 @@ + + + + + tanekliang@gmail.com + Yongxiang Liang + + + proxy-maint@gentoo.org + Proxy Maintainers + + + cjk@gentoo.org + Cjk + + + Build only plugin + Build support for QT6 + Build plugin as static + + + fcitx/fcitx5-qt + + -- cgit v1.2.3