commit:     dccb01aefb959c564582e182db94b0732005319c
Author:     Alexey Sokolov <alexey+gentoo <AT> asokolov <DOT> org>
AuthorDate: Wed Jan  8 01:19:29 2025 +0000
Commit:     Maciej Barć <xgqt <AT> gentoo <DOT> org>
CommitDate: Thu Jan  9 21:21:58 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=dccb01ae

app-misc/openrgb: fix ODR violations

Closes: https://bugs.gentoo.org/945326
Signed-off-by: Alexey Sokolov <alexey+gentoo <AT> asokolov.org>
Signed-off-by: Maciej Barć <xgqt <AT> gentoo.org>

 app-misc/openrgb/Manifest              |   1 +
 app-misc/openrgb/openrgb-0.9-r2.ebuild | 107 +++++++++++++++++++++++++++++++++
 2 files changed, 108 insertions(+)

diff --git a/app-misc/openrgb/Manifest b/app-misc/openrgb/Manifest
index f543fecc55fd..ef601d6236e9 100644
--- a/app-misc/openrgb/Manifest
+++ b/app-misc/openrgb/Manifest
@@ -1 +1,2 @@
+DIST OpenRGB-0.9-odr.patch 90600 BLAKE2B 
1cb0aaab997da90b5cf6fbf1e971cef6848d4372ba021d27efed070ff2c398074d7b79623a1669995bbdaaacae1c5a9ff09344ef0cab7098e9354f95d005b856
 SHA512 
5f2a5194419d14b97dc2e8ca47a2b9914c01148cfb24d61266a8a9615f6d09509906d7e69d8264ddbde71474955f789925b400f29682d12779c2a3d38a4bd6eb
 DIST OpenRGB-release_0.9.tar.bz2 28689813 BLAKE2B 
9fcf08d5e4d07ffc0f7867516f09044e18ce488bcdd99c8b44e0afe291b8a21a7ba92d6e7fd683ef22462a262004a992621efb59a5df6ed7551f4e9f75843241
 SHA512 
fb1bdbc7bcbd3bac888be313cfb6403a13d39de659ac6993858f9c1b17ad40e9c4a7d4c7c90682181841db1659a0ee298363c442a7120d43347aaf4485e7dccf

diff --git a/app-misc/openrgb/openrgb-0.9-r2.ebuild 
b/app-misc/openrgb/openrgb-0.9-r2.ebuild
new file mode 100644
index 000000000000..2ecef34bd7de
--- /dev/null
+++ b/app-misc/openrgb/openrgb-0.9-r2.ebuild
@@ -0,0 +1,107 @@
+# Copyright 2020-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit check-reqs flag-o-matic qmake-utils udev xdg-utils
+
+if [[ ${PV} == *9999* ]]; then
+       inherit git-r3
+       
EGIT_REPO_URI=${EGIT_REPO_URI:-"https://gitlab.com/CalcProgrammer1/OpenRGB"}
+else
+       
SRC_URI="https://gitlab.com/CalcProgrammer1/OpenRGB/-/archive/release_${PV}/OpenRGB-release_${PV}.tar.bz2
+               https://files.asokolov.org/gentoo/OpenRGB-0.9-odr.patch";
+       S="${WORKDIR}/OpenRGB-release_${PV}"
+       KEYWORDS="~amd64 ~loong ~x86"
+       PATCHES=( "${FILESDIR}"/OpenRGB-0.9-build-system.patch )
+fi
+
+DESCRIPTION="Open source RGB lighting control"
+HOMEPAGE="https://openrgb.org https://gitlab.com/CalcProgrammer1/OpenRGB/";
+LICENSE="GPL-2"
+# subslot is OPENRGB_PLUGIN_API_VERSION from
+# 
https://gitlab.com/CalcProgrammer1/OpenRGB/-/blob/master/OpenRGBPluginInterface.h
+SLOT="0/3"
+
+RDEPEND="
+       dev-cpp/cpp-httplib:=
+       dev-libs/hidapi
+       dev-qt/qtcore:5
+       dev-qt/qtgui:5
+       dev-qt/qtwidgets:5
+       net-libs/mbedtls:0=
+       virtual/libusb:1
+"
+DEPEND="
+       ${RDEPEND}
+       dev-cpp/nlohmann_json
+       dev-libs/mdns
+"
+BDEPEND="
+       dev-qt/linguist-tools:5
+       virtual/pkgconfig
+"
+
+PATCHES+=(
+       "${FILESDIR}"/OpenRGB-0.7-r1-udev.patch
+       "${FILESDIR}"/OpenRGB-0.9-udev-check.patch
+       "${DISTDIR}"/OpenRGB-0.9-odr.patch
+)
+
+CHECKREQS_DISK_BUILD="2G"
+
+src_prepare() {
+       default
+       rm -r dependencies/{httplib,hidapi,libusb,mdns,json,mbedtls}* \
+               || die "Failed to remove unneded deps"
+
+       rm dependencies/hueplusplus-1.0.0/include/json/json.hpp || die
+       echo "#include <nlohmann/json.hpp>" > 
dependencies/hueplusplus-1.0.0/include/json/json.hpp || die
+}
+
+src_configure() {
+       # Some plugins require symbols defined in the main binary.
+       # The upstream build system of plugins bundles OpenRGB as a submodule
+       # instead, and compiles the .cpp file again.
+       append-ldflags -Wl,--export-dynamic
+
+       # > warning: ‘-pipe’ ignored because ‘-save-temps’ specified
+       filter-flags -pipe
+
+       # cpp-httplib >=0.16.0 changed the library name from "httplib" to 
"cpp-httplib".
+       # See bug: https://bugs.gentoo.org/934576
+       local -a libs=()
+       if has_version "<dev-cpp/cpp-httplib-0.16.0" ; then
+               libs+=( -lhttplib )
+       else
+               libs+=( -lcpp-httplib )
+       fi
+
+       eqmake5 \
+               INCLUDEPATH+="${ESYSROOT}/usr/include/nlohmann" \
+               
DEFINES+="OPENRGB_EXTRA_PLUGIN_DIRECTORY=\\\\\"\\\"${EPREFIX}/usr/$(get_libdir)/OpenRGB/plugins\\\\\"\\\""
 \
+               LIBS+="${libs[@]}"
+}
+
+src_install() {
+       emake INSTALL_ROOT="${ED}" install
+
+       dodoc README.md OpenRGB.patch
+
+       rm -r "${ED}"/usr/lib/udev/ || die
+       udev_dorules 60-openrgb.rules
+
+       # This is for plugins. Upstream doesn't install any headers at all.
+       insinto /usr/include/OpenRGB
+       find . -name '*.h' -exec cp --parents '{}' "${ED}/usr/include/OpenRGB/" 
';' || die
+}
+
+pkg_postinst() {
+       xdg_icon_cache_update
+       udev_reload
+}
+
+pkg_postrm() {
+       xdg_icon_cache_update
+       udev_reload
+}

Reply via email to