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