app-misc/ckb: fix ODR build failure

Closes: https://bugs.gentoo.org/924410
Signed-off-by: John Helmert III <ajak@gentoo.org>
This commit is contained in:
John Helmert III 2024-05-11 10:22:05 -07:00
parent 3a27b73944
commit 6fed1bde14
No known key found for this signature in database
GPG Key ID: A05EADBE69AFC9B5
2 changed files with 109 additions and 0 deletions

View File

@ -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
}

View File

@ -0,0 +1,32 @@
https://bugs.gentoo.org/924410
From c5b68a00867b2add28bfd62430c45781ac2e9cb8 Mon Sep 17 00:00:00 2001
From: John Helmert III <ajak@gentoo.org>
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 <ajak@gentoo.org>
--- 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)