commit: 6fed1bde14cd4b9a885215fb0643cad74b25d51f Author: John Helmert III <ajak <AT> gentoo <DOT> org> AuthorDate: Sat May 11 17:22:05 2024 +0000 Commit: John Helmert III <ajak <AT> gentoo <DOT> org> CommitDate: Sat May 11 17:23:20 2024 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6fed1bde
app-misc/ckb: fix ODR build failure Closes: https://bugs.gentoo.org/924410 Signed-off-by: John Helmert III <ajak <AT> gentoo.org> app-misc/ckb/ckb-0.6.0-r2.ebuild | 77 ++++++++++++++++++++++++++++++++++ app-misc/ckb/files/ckb-0.6.0-odr.patch | 32 ++++++++++++++ 2 files changed, 109 insertions(+) diff --git a/app-misc/ckb/ckb-0.6.0-r2.ebuild b/app-misc/ckb/ckb-0.6.0-r2.ebuild new file mode 100644 index 000000000000..c70828a260ad --- /dev/null +++ b/app-misc/ckb/ckb-0.6.0-r2.ebuild @@ -0,0 +1,77 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake udev xdg + +DESCRIPTION="Corsair K65/K70/K95 Driver" +HOMEPAGE="https://github.com/ckb-next/ckb-next" + +if [[ ${PV} == "9999" ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/ckb-next/ckb-next.git" +else + SRC_URI="https://github.com/ckb-next/ckb-next/archive/v${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="~amd64" + S="${WORKDIR}/${PN}-next-${PV}" +fi + +LICENSE="GPL-2" +SLOT="0" +IUSE="systemd" + +RDEPEND=" + dev-libs/libdbusmenu-qt + dev-libs/quazip:0=[qt5(+)] + dev-qt/qtcore:5 + dev-qt/qtdbus:5 + dev-qt/qtgui:5 + dev-qt/qtnetwork:5 + dev-qt/qtwidgets:5 + dev-qt/qtx11extras:5 + || ( + media-libs/libpulse + media-sound/apulse[sdk] + ) + virtual/libudev:= + x11-libs/libxcb:= + x11-libs/xcb-util-wm" +DEPEND="${RDEPEND}" +BDEPEND="dev-qt/linguist-tools:5" + +PATCHES=( + "${FILESDIR}/${P}-fix-bashism.patch" + "${FILESDIR}/${P}-odr.patch" +) + +src_configure() { + local mycmakeargs=( + -DDISABLE_UPDATER=yes + -DFORCE_INIT_SYSTEM=$(usex systemd systemd openrc) + ) + cmake_src_configure +} + +src_install() { + cmake_src_install + dodoc CHANGELOG.md +} + +pkg_postinst() { + udev_reload + + if [[ -z "${REPLACING_VERSIONS}" ]]; then + elog "The ckb daemon will have to be started before use:" + elog + if use systemd ; then + elog "# systemctl start ckb-next-daemon" + else + elog "# rc-config start ckb-next-daemon" + fi + fi +} + +pkg_postrm() { + udev_reload +} diff --git a/app-misc/ckb/files/ckb-0.6.0-odr.patch b/app-misc/ckb/files/ckb-0.6.0-odr.patch new file mode 100644 index 000000000000..9547fe4edaf9 --- /dev/null +++ b/app-misc/ckb/files/ckb-0.6.0-odr.patch @@ -0,0 +1,32 @@ +https://bugs.gentoo.org/924410 + +From c5b68a00867b2add28bfd62430c45781ac2e9cb8 Mon Sep 17 00:00:00 2001 +From: John Helmert III <[email protected]> +Date: Fri, 16 Feb 2024 22:14:24 -0800 +Subject: [PATCH] ckbsettingswriter: mirror QT version guards from ckbsettings + +The differing definitions between ckbsettingswriter.cpp and +ckbsettings.cpp trigger compilation errors with -Werror=odr. + +Signed-off-by: John Helmert III <[email protected]> +--- a/src/gui/ckbsettingswriter.cpp ++++ b/src/gui/ckbsettingswriter.cpp +@@ -1,9 +1,18 @@ + #include "ckbsettingswriter.h" ++ ++#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0) ++#include <QRecursiveMutex> ++#else + #include <QMutex> ++#endif + + // Mirror ckbsettings.cpp + extern QAtomicInt cacheWritesInProgress; ++#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0) ++extern QRecursiveMutex settingsMutex, settingsCacheMutex; ++#else + extern QMutex settingsMutex, settingsCacheMutex; ++#endif + #define lockMutex QMutexLocker locker(backing == _globalSettings ? &mutex : 0) + #define lockMutexStatic QMutexLocker locker(&settingsMutex) + #define lockMutexStatic2 QMutexLocker locker2(&settingsMutex)
