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
 }

Reply via email to