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)

Reply via email to