commit: 65aef5dafc07f7cadbf8d2a9817b9aa4425c294b
Author: Alexey Sokolov <sokolov <AT> google <DOT> com>
AuthorDate: Tue Jun 22 21:14:47 2021 +0000
Commit: Patrick McLean <chutzpah <AT> gentoo <DOT> org>
CommitDate: Tue Jun 22 23:00:00 2021 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=65aef5da
app-misc/openrgb: allow installing plugins
Package-Manager: Portage-3.0.20, Repoman-3.0.2
Signed-off-by: Alexey Sokolov <alexey+gentoo <AT> asokolov.org>
Signed-off-by: Patrick McLean <chutzpah <AT> gentoo.org>
app-misc/openrgb/files/OpenRGB-0.6-plugins.patch | 24 +++++++++++++++++++
.../{openrgb-9999.ebuild => openrgb-0.6-r1.ebuild} | 27 ++++++++++++++++++----
app-misc/openrgb/openrgb-9999.ebuild | 24 ++++++++++++++++---
3 files changed, 67 insertions(+), 8 deletions(-)
diff --git a/app-misc/openrgb/files/OpenRGB-0.6-plugins.patch
b/app-misc/openrgb/files/OpenRGB-0.6-plugins.patch
new file mode 100644
index 00000000000..ccc83de27eb
--- /dev/null
+++ b/app-misc/openrgb/files/OpenRGB-0.6-plugins.patch
@@ -0,0 +1,24 @@
+Allow installation of plugins not only in ~/.config
+
+Used by app-misc/openrgb-plugin-* packages
+
+diff --git a/PluginManager.cpp b/PluginManager.cpp
+index b424b8b..991fb75 100644
+--- a/PluginManager.cpp
++++ b/PluginManager.cpp
+@@ -15,7 +15,8 @@ void PluginManager::ScanAndLoadPlugins(bool dark_theme)
+
\*--------------------------------------------------------------------------------------*/
+ OpenRGBPluginInterface *OpenRGBPlugin = nullptr;
+
+- const QDir pluginsDir =
QString().fromStdString(ResourceManager::get()->GetConfigurationDirectory()) +
"plugins/";
++ for (const QDir pluginsDir :
{QString().fromStdString(ResourceManager::get()->GetConfigurationDirectory()) +
"plugins/",
++
QString().fromStdString(GENTOO_PLUGINS_DIR)}) {
+
+ std::vector<std::string> FileList;
+
+@@ -54,4 +56,5 @@ void PluginManager::ScanAndLoadPlugins(bool dark_theme)
+ std::cout << loader.errorString().toStdString() << std::endl;
+ }
+ }
++ }
+ }
diff --git a/app-misc/openrgb/openrgb-9999.ebuild
b/app-misc/openrgb/openrgb-0.6-r1.ebuild
similarity index 55%
copy from app-misc/openrgb/openrgb-9999.ebuild
copy to app-misc/openrgb/openrgb-0.6-r1.ebuild
index c1f1eb4bbcb..9384eedb4eb 100644
--- a/app-misc/openrgb/openrgb-9999.ebuild
+++ b/app-misc/openrgb/openrgb-0.6-r1.ebuild
@@ -3,7 +3,7 @@
EAPI=7
-inherit qmake-utils
+inherit flag-o-matic qmake-utils
if [[ ${PV} == *9999* ]]; then
inherit git-r3
@@ -20,14 +20,13 @@ fi
DESCRIPTION="Open source RGB lighting control that doesn't depend on
manufacturer software"
HOMEPAGE="https://gitlab.com/CalcProgrammer1/OpenRGB/"
LICENSE="GPL-2"
-SLOT="0"
+SLOT="0/1"
RDEPEND="
dev-libs/hidapi:=
dev-qt/qtcore:5
dev-qt/qtgui:5
dev-qt/qtwidgets:5
- net-libs/mbedtls:=
virtual/libusb:1
"
DEPEND="
@@ -40,19 +39,37 @@ BDEPEND="
PATCHES+=(
"${FILESDIR}"/OpenRGB-0.6-pkgconf.patch
+ "${FILESDIR}"/OpenRGB-0.6-plugins.patch
)
src_prepare() {
default
- rm -r dependencies/{hidapi,libusb,json,mbedtls}* || die
+ rm -r dependencies/{hidapi,libusb,json}* || die
}
src_configure() {
- eqmake5 INCLUDEPATH+="${ESYSROOT}/usr/include/nlohmann"
+ # Some plugins require symbols defined in the main binary.
+ # The official build system bundles OpenRGB as a submodule instead, and
+ # compiles the .cpp file again.
+ append-ldflags -Wl,--export-dynamic
+
+ eqmake5 \
+ INCLUDEPATH+="${ESYSROOT}/usr/include/nlohmann" \
+
DEFINES+="GENTOO_PLUGINS_DIR=\\\\\"\\\"${EPREFIX}/usr/$(get_libdir)/OpenRGB/plugins\\\\\"\\\""
}
src_install() {
emake INSTALL_ROOT="${ED}" install
dodoc README.md OpenRGB.patch
+
+ # This is for plugins. Upstream doesn't install any headers at all.
+ insinto /usr/include/OpenRGB
+ doins *.h
+ insinto /usr/include/OpenRGB/RGBController
+ doins RGBController/*.h
+ insinto /usr/include/OpenRGB/i2c_smbus
+ doins i2c_smbus/*.h
+ insinto /usr/include/OpenRGB/net_port
+ doins net_port/*.h
}
diff --git a/app-misc/openrgb/openrgb-9999.ebuild
b/app-misc/openrgb/openrgb-9999.ebuild
index c1f1eb4bbcb..853ad8e0414 100644
--- a/app-misc/openrgb/openrgb-9999.ebuild
+++ b/app-misc/openrgb/openrgb-9999.ebuild
@@ -3,7 +3,7 @@
EAPI=7
-inherit qmake-utils
+inherit flag-o-matic qmake-utils
if [[ ${PV} == *9999* ]]; then
inherit git-r3
@@ -20,7 +20,7 @@ fi
DESCRIPTION="Open source RGB lighting control that doesn't depend on
manufacturer software"
HOMEPAGE="https://gitlab.com/CalcProgrammer1/OpenRGB/"
LICENSE="GPL-2"
-SLOT="0"
+SLOT="0/1"
RDEPEND="
dev-libs/hidapi:=
@@ -40,6 +40,7 @@ BDEPEND="
PATCHES+=(
"${FILESDIR}"/OpenRGB-0.6-pkgconf.patch
+ "${FILESDIR}"/OpenRGB-0.6-plugins.patch
)
src_prepare() {
@@ -48,11 +49,28 @@ src_prepare() {
}
src_configure() {
- eqmake5 INCLUDEPATH+="${ESYSROOT}/usr/include/nlohmann"
+ # Some plugins require symbols defined in the main binary.
+ # The official build system bundles OpenRGB as a submodule instead, and
+ # compiles the .cpp file again.
+ append-ldflags -Wl,--export-dynamic
+
+ eqmake5 \
+ INCLUDEPATH+="${ESYSROOT}/usr/include/nlohmann" \
+
DEFINES+="GENTOO_PLUGINS_DIR=\\\\\"\\\"${EPREFIX}/usr/$(get_libdir)/OpenRGB/plugins\\\\\"\\\""
}
src_install() {
emake INSTALL_ROOT="${ED}" install
dodoc README.md OpenRGB.patch
+
+ # This is for plugins. Upstream doesn't install any headers at all.
+ insinto /usr/include/OpenRGB
+ doins *.h
+ insinto /usr/include/OpenRGB/RGBController
+ doins RGBController/*.h
+ insinto /usr/include/OpenRGB/i2c_smbus
+ doins i2c_smbus/*.h
+ insinto /usr/include/OpenRGB/net_port
+ doins net_port/*.h
}