diff options
author | 2021-01-13 23:16:40 +0100 | |
---|---|---|
committer | 2021-01-13 23:17:22 +0100 | |
commit | ac39bc7536fb345ed687e5238fff74081de4b65f (patch) | |
tree | e6f925d9b396aadf5cf92a181e7ef7730dde7ba3 /media-plugins | |
parent | net-im/prosody-modules: drop, in tree now (diff) | |
download | gerislay-ac39bc7536fb345ed687e5238fff74081de4b65f.tar.gz gerislay-ac39bc7536fb345ed687e5238fff74081de4b65f.tar.bz2 gerislay-ac39bc7536fb345ed687e5238fff74081de4b65f.zip |
media-plugins/hyperion: update to hyperion.ng
Signed-off-by: Gerion Entrup <gerion.entrup@flump.de>
Diffstat (limited to 'media-plugins')
6 files changed, 246 insertions, 38 deletions
diff --git a/media-plugins/hyperion/Manifest b/media-plugins/hyperion/Manifest index 4263dc7..5d80302 100644 --- a/media-plugins/hyperion/Manifest +++ b/media-plugins/hyperion/Manifest @@ -1,2 +1,6 @@ +AUX 0001-CMake-prevent-lib-copies-for-package-creation.patch 1006 BLAKE2B a88281a4b39570be849daba0d9e84554f7177a9f32ab32dec277cb379f754648b0a386ed2d3aa0c99a456b642f8608893806fba2d16b0c039eadfc28386a6b5d SHA512 1e2d19de445b16df491133c18634d11b35460d3b11407b61006e4909d1a769cb6f2973a48eba8e7b564f3e1604ed76952aec6e3c9a30c2f816c930570287f35f +AUX 0001-Cmake-fix-rpath.patch 1066 BLAKE2B 1ca9a013ef64c709464f709410f71cb9f5d72070d28c7d7e3c1c723964f8190eacd818a0efbf8fb05861508ca1745bcc28a8ef8941f754101dd96dc355dfdbe9 SHA512 5a7503f7d7f35a0fb5721899ab9ddae6ebf84a0e114da2a3f0ed13c942d4d2772eb8052efddd8cd03db6b06554a3d1da2790a828a143410d4d64be12d0c07e61 +AUX 0001-Proto-fix-Error-macro-conflict.patch 2492 BLAKE2B f32a90de8092da740d44ea179b87bcc5580c61d9225deb3077888044cdc5a308db518bb19a267810e9909fc98a1cf1928624f9317c3601d3bb7b598a765697c6 SHA512 656a81d27ce088d99bd3b22eecceb2b51d382d500553a8eedcfdb726c051b37bcd9a0ad937e077298ef4ddc9973cc7eab94fdbb6a5f0eb94b4a9e67260cfcf0e AUX hyperion.initd 465 BLAKE2B 32b0a8272f7b91aef3f02100d3a271f7ae569c24efe38ae1246b3bae5c39d51c6537d13664f482900de16bb012109c7594318116206cc3534b9a0e58ac3a062f SHA512 df1a0c5c0bca4585be5014807f280cbf3cd22298ef6feebcb9fc01bdf7b207186510aad7987bc49e3b0cf3d18dce05829ae3b3d4fc2969e38682ce9ec5a86998 -EBUILD hyperion-9999.ebuild 1781 BLAKE2B 7a2223a17357e155c9b65b0d2d7021e54c90949313c57ce5743878a4de6fc2b13a6ae4a26d8ec0b796d8e26354faa4ddc55c56cc97a0ce730fda02e1c62d6db6 SHA512 246d41f9316351baf17c513bfd9e9214181f539d2f062251ff54b63f5873974d3221fb6074f051f41ab021c305a5bb86d5d9c8ceef9ba38be381509a5d1b86e6 +EBUILD hyperion-9999.ebuild 2688 BLAKE2B 29bb0be8b1ce0acd4f43b53a861b43c1bf86cc92bb0209d9e7723ab2cf34198082a7a91da72758ef34ef72cc9ce3dadf765b1d49250729dcec5af380bc47898a SHA512 b2080664da9c561cdbd179ca7f30d90b4f46afc2715d8c17f0fe9a9ce769a9b40c57016dd9c79c0a1ed0fd39cdf9c3cfc541641f83d936ea21d1b21b3446498e +MISC metadata.xml 605 BLAKE2B cca61cdcb5dfa7ce9424cbd9551a1f0b6ad0ee5e09b24922d44860b797d34c90b4e16790f3b5bac278271cb909627c3b5eb1248b8e75d1aa1aa5a911554a1b3b SHA512 3e648db4b0063e5d53722f5a3859b52761655d950cf8c9f975190f44a63c9ce2451d3039b474515f9c3f6df7c8e7a0b7f7870468da988061eecc8de7090e212a diff --git a/media-plugins/hyperion/files/0001-CMake-prevent-lib-copies-for-package-creation.patch b/media-plugins/hyperion/files/0001-CMake-prevent-lib-copies-for-package-creation.patch new file mode 100644 index 0000000..2103493 --- /dev/null +++ b/media-plugins/hyperion/files/0001-CMake-prevent-lib-copies-for-package-creation.patch @@ -0,0 +1,34 @@ +From 5c41b1a49bbacd3a1eb0ca08a50eb9573bdd5380 Mon Sep 17 00:00:00 2001 +From: Gerion Entrup <gerion.entrup@flump.de> +Date: Wed, 13 Jan 2021 22:44:09 +0100 +Subject: [PATCH] CMake: prevent lib copies for package creation + +--- + src/hyperiond/CMakeLists.txt | 14 +++++++------- + 1 file changed, 7 insertions(+), 7 deletions(-) + +diff --git a/src/hyperiond/CMakeLists.txt b/src/hyperiond/CMakeLists.txt +index 02bce862..57e26a95 100644 +--- a/src/hyperiond/CMakeLists.txt ++++ b/src/hyperiond/CMakeLists.txt +@@ -147,10 +147,10 @@ if(WIN32) + endif() + + # Deploy all dependencies for package creation (not for OSX) +-include(${CMAKE_SOURCE_DIR}/cmake/Dependencies.cmake) +- +-if (NOT ENABLE_OSX AND NOT WIN32) # Unix +- DeployUnix("hyperiond") +-elseif(WIN32) # Windows +- DeployWindows("hyperiond") +-endif () ++# include(${CMAKE_SOURCE_DIR}/cmake/Dependencies.cmake) ++# ++# if (NOT ENABLE_OSX AND NOT WIN32) # Unix ++# DeployUnix("hyperiond") ++# elseif(WIN32) # Windows ++# DeployWindows("hyperiond") ++# endif () +-- +2.26.2 + diff --git a/media-plugins/hyperion/files/0001-Cmake-fix-rpath.patch b/media-plugins/hyperion/files/0001-Cmake-fix-rpath.patch new file mode 100644 index 0000000..3d0f44f --- /dev/null +++ b/media-plugins/hyperion/files/0001-Cmake-fix-rpath.patch @@ -0,0 +1,35 @@ +From c832778b4c9a2096322dd5c15b18fb8f5bc4281b Mon Sep 17 00:00:00 2001 +From: Gerion Entrup <gerion.entrup@flump.de> +Date: Wed, 13 Jan 2021 22:48:00 +0100 +Subject: [PATCH] Cmake: fix rpath + +--- + CMakeLists.txt | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 62200bb2..de1cd319 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -355,12 +355,12 @@ if (NOT CMAKE_CXX_COMPILER_ID MATCHES "MSVC") + endif() + + # setup -rpath to search for shared libs in BINARY/../lib folder +-if (UNIX AND NOT APPLE) +- SET(CMAKE_SKIP_BUILD_RPATH FALSE) +- SET(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE) +- SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_RPATH}:$ORIGIN/../lib") +- SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) +-endif () ++#if (UNIX AND NOT APPLE) ++# SET(CMAKE_SKIP_BUILD_RPATH FALSE) ++# SET(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE) ++# SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_RPATH}:$ORIGIN/../lib") ++# SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) ++#endif () + + # add QT5 dependency + IF ( CMAKE_CROSSCOMPILING ) +-- +2.26.2 + diff --git a/media-plugins/hyperion/files/0001-Proto-fix-Error-macro-conflict.patch b/media-plugins/hyperion/files/0001-Proto-fix-Error-macro-conflict.patch new file mode 100644 index 0000000..c904ff2 --- /dev/null +++ b/media-plugins/hyperion/files/0001-Proto-fix-Error-macro-conflict.patch @@ -0,0 +1,79 @@ +From 559fd409d332e56dd0ad56aa89bcaaa8c533677a Mon Sep 17 00:00:00 2001 +From: Gerion Entrup <gerion.entrup@flump.de> +Date: Wed, 13 Jan 2021 19:48:57 +0100 +Subject: [PATCH] Proto*: fix Error macro conflict + +utils/Logger.h contains a preprocessor macro Error() for easy logging. +However, the upstream protobuf/io/coded_stream.h also defines a private +function Error() in one of it's classes that conflicts with this macro. + +Unfortunate include orders results then in a build error. This commit +reorders the includes to prevent the error. It also defines an extra +`#undef Error` before including upstream protobuf to make the problem +more visible. + +Fixes: #882 +--- + libsrc/protoserver/ProtoClientConnection.cpp | 7 ++++--- + libsrc/protoserver/ProtoClientConnection.h | 7 ++++--- + libsrc/protoserver/ProtoServer.cpp | 2 +- + 3 files changed, 9 insertions(+), 7 deletions(-) + +diff --git a/libsrc/protoserver/ProtoClientConnection.cpp b/libsrc/protoserver/ProtoClientConnection.cpp +index e8bf1d91..051ca3e7 100644 +--- a/libsrc/protoserver/ProtoClientConnection.cpp ++++ b/libsrc/protoserver/ProtoClientConnection.cpp +@@ -1,12 +1,13 @@ +-// project includes +-#include "ProtoClientConnection.h" +- + // qt + #include <QTcpSocket> + #include <QHostAddress> + #include <QTimer> + #include <QRgb> + ++// project includes ++#include "ProtoClientConnection.h" ++ ++ + // TODO Remove this class if third-party apps have been migrated (eg. Hyperion Android Grabber, Windows Screen grabber etc.) + + ProtoClientConnection::ProtoClientConnection(QTcpSocket* socket, int timeout, QObject *parent) +diff --git a/libsrc/protoserver/ProtoClientConnection.h b/libsrc/protoserver/ProtoClientConnection.h +index 6d8ce378..6ee947ab 100644 +--- a/libsrc/protoserver/ProtoClientConnection.h ++++ b/libsrc/protoserver/ProtoClientConnection.h +@@ -1,14 +1,15 @@ + #pragma once + ++// protobuffer PROTO ++#undef Error ++#include "message.pb.h" ++ + // util + #include <utils/Logger.h> + #include <utils/Image.h> + #include <utils/ColorRgb.h> + #include <utils/Components.h> + +-// protobuffer PROTO +-#include "message.pb.h" +- + class QTcpSocket; + class QTimer; + +diff --git a/libsrc/protoserver/ProtoServer.cpp b/libsrc/protoserver/ProtoServer.cpp +index 7bfc2954..fb45ae60 100644 +--- a/libsrc/protoserver/ProtoServer.cpp ++++ b/libsrc/protoserver/ProtoServer.cpp +@@ -1,5 +1,5 @@ +-#include <protoserver/ProtoServer.h> + #include "ProtoClientConnection.h" ++#include <protoserver/ProtoServer.h> + + // util + #include <utils/NetOrigin.h> +-- +2.26.2 + diff --git a/media-plugins/hyperion/hyperion-9999.ebuild b/media-plugins/hyperion/hyperion-9999.ebuild index b168340..4e2cff7 100644 --- a/media-plugins/hyperion/hyperion-9999.ebuild +++ b/media-plugins/hyperion/hyperion-9999.ebuild @@ -1,72 +1,111 @@ -# Copyright 1999-2017 Gentoo Foundation +# Copyright 1999-2021 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -EAPI=6 +EAPI=7 -inherit git-r3 cmake-utils systemd user +inherit git-r3 cmake systemd -DESCRIPTION="An opensource 'AmbiLight' implementation supported by many devices" +DESCRIPTION="An opensource 'AmbiLight' implementation (next generation)" HOMEPAGE="https://hyperion-project.org/" SRC_URI="" -EGIT_REPO_URI="https://github.com/hyperion-project/${PN}" +EGIT_REPO_URI="https://github.com/hyperion-project/${PN}.ng" EGIT_SUBMODULES=() +if [[ ${PV} != 9999 ]]; then + MY_PV="${PV/_/-}" + MY_PV="${MY_PV/alpha9/alpha.9}" + EGIT_COMMIT="${MY_PV}" +fi + LICENSE="MIT" SLOT="0" KEYWORDS="" -IUSE="dispmanx framebuffer spi vfl X" +IUSE="cec +spi tinkerforge +qt-grabber +usb +v4l +xcb +zeroconf" -DEPEND="x11-libs/libXrender - dev-util/cmake - virtual/libusb - dev-libs/icu +# currently only platform x11 is supported +# TODO extend for rpi amlogic amlogic64 + +DEPEND=" + dev-lang/python + dev-libs/protobuf dev-qt/qtcore:5 dev-qt/qtgui:5 - dev-qt/qtwidgets:5 dev-qt/qtnetwork:5 dev-qt/qtserialport:5 - dev-lang/python - net-dns/avahi - dev-libs/protobuf" -RDEPEND="${DEPEND}" + dev-qt/qtsql:5 + dev-qt/qtsvg:5 + dev-qt/qtx11extras:5 + dev-libs/flatbuffers + dev-util/cmake + net-libs/mbedtls + dev-libs/openssl + sys-libs/zlib + sys-apps/dbus + v4l? ( virtual/jpeg ) + zeroconf? ( net-dns/avahi[mdnsresponder-compat] ) + cec? ( dev-libs/libcec ) + xcb? ( + x11-libs/xcb-util-image + x11-libs/libxcb + x11-libs/xcb-util + x11-libs/xcb-util-renderutil + x11-libs/libXrandr + x11-libs/libXrender + ) + usb? ( virtual/libusb ) +" +RDEPEND=" + acct-user/hyperion + ${DEPEND} +" -pkg_setup() { - HYPERION_HOME="/var/lib/hyperion" - ebegin "Creating hyperion user and group" - enewgroup ${PN} - enewuser ${PN} -1 -1 "${HYPERION_HOME}" ${PN} - eend $? -} +PATCHES=( + "${FILESDIR}"/0001-Proto-fix-Error-macro-conflict.patch + "${FILESDIR}"/0001-CMake-prevent-lib-copies-for-package-creation.patch + "${FILESDIR}"/0001-Cmake-fix-rpath.patch +) src_configure() { local mycmakeargs=( - -DENABLE_DISPMANX="$(usex dispmanx)" - -DENABLE_FB="$(usex framebuffer)" - -DENABLE_SPIDEV="$(usex spi)" - -DENABLE_QT5=yes - -DENABLE_VFL2="$(usex vfl)" - -DENABLE_X11="$(usex X)" -DCMAKE_BUILD_TYPE=Release + -DPLATFORM=x11 + -DBUILD_SHARED_LIBS=off + -DENABLE_AMLOGIC=off + -DENABLE_OSX=off + -DENABLE_X11=on + -DENABLE_EXPERIMENTAL=off + -DENABLE_DISPMANX=off # rpi lib + -DENABLE_DX=off # DirectX + -DENABLE_PROFILER=off # DirectX + -DENABLE_WS281XPWM=off # rpi lib + -DENABLE_FB=on + -DENABLE_QT=$(usex qt-grabber) + -DENABLE_TINKERFORGE=$(usex tinkerforge) + -DENABLE_XCB=$(usex xcb) + -DENABLE_AVAHI=$(usex zeroconf) + -DENABLE_CEC="$(usex cec)" + -DENABLE_SPIDEV="$(usex spi)" + -DENABLE_USB_HID="$(usex usb)" + -DENABLE_V4L2="$(usex v4l)" -DUSE_SYSTEM_PROTO_LIBS=on + -DUSE_SYSTEM_FLATBUFFERS_LIBS=on + -DUSE_SYSTEM_MBEDTLS_LIBS=on -DUSE_SHARED_AVAHI_LIBS=on - -DPROTOBUF_PROTOC_EXECUTABLE=/usr/bin/protoc - -DPLATFORM=x86 -Wno-dev ) - cmake-utils_src_configure + cmake_src_configure } src_install() { - cmake-utils_src_install + cmake_src_install insinto /etc/hyperion - doins "${S}/config/hyperion.config.json.example" - ewarn "In /etc/hyperion/ an example config file is provided. The config" - ewarn "file is also creatable with the GUI program HyperCon." + doins "${S}/config/hyperion.config.json.default" + doins "${S}/config/hyperion.config.json.commented" + ewarn "An example config file is provided in /etc/hyperion." ewarn "To allow access to certain input devices you have add the hyperion" ewarn "user to the uucp group: usermod -G uucp hyperion" newinitd "${FILESDIR}"/hyperion.initd hyperion - - systemd_newunit "${S}/bin/service/hyperion.systemd.sh" hyperion.service + systemd_newunit "${S}/share/hyperion/service/hyperion.systemd" hyperion.service } diff --git a/media-plugins/hyperion/metadata.xml b/media-plugins/hyperion/metadata.xml new file mode 100644 index 0000000..0ed7f1f --- /dev/null +++ b/media-plugins/hyperion/metadata.xml @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>gerion.entrup@flump.de</email> + <name>Gerion Entrup</name> + </maintainer> + <use> + <flag name="cec">Enable CEC control via <pkg>dev-libs/libcec</pkg></flag> + <flag name="spi">Enable the SPIDEV device</flag> + <flag name="tinkerforge">Enable the TINKERFORGE device</flag> + <flag name="qt-grabber">Enable the qt grabber</flag> + </use> + <upstream> + <remote-id type="github">hyperion-project/hyperion.ng</remote-id> + </upstream> +</pkgmetadata> |