Package Details: hyperion.ng-git 2.0.12.r4.17582ac3-2

Git Clone URL: https://aur.archlinux.org/hyperion.ng-git.git (read-only, click to copy)
Package Base: hyperion.ng-git
Description: The reworked version (next generation) of Hyperion, ambient light software
Upstream URL: https://github.com/hyperion-project/hyperion.ng
Licenses: MIT
Conflicts: hyperion, hyperion-git
Provides: hyperion
Submitter: Jake
Maintainer: Jake
Last Packager: Jake
Votes: 3
Popularity: 0.065171
First Submitted: 2016-10-29 22:39 (UTC)
Last Updated: 2022-05-31 23:34 (UTC)

Latest Comments

Brassn commented on 2022-06-05 01:36 (UTC) (edited on 2022-06-05 01:38 (UTC) by Brassn)

Fails to compile on my rpi4

/usr/include/c++/12.1.0/bits/char_traits.h:431:56: error: ‘void* __builtin_memcpy(void*, const void*, unsigned int)’ accessing 2147483650 or more bytes at offsets [-1073741822, 3221225470] and [-1073741823, 1073741824] overlaps 2147483653 bytes at offset -3 [-Werror=restrict]
  431 |         return static_cast<char_type*>(__builtin_memcpy(__s1, __s2, __n));
      |                                  ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~

I only managed to compile by disabling flatbuffer and protobuf configuring cmake inside build() in PKGBUILD like this

  cmake -DCMAKE_BUILD_TYPE=Release \
        -DPROTOBUF_PROTOC_EXECUTABLE=/usr/bin/protoc \
        -DUSE_SYSTEM_PROTO_LIBS=OFF \
        -DUSE_SYSTEM_MBEDTLS_LIBS=ON \
        -D ENABLE_FLATBUF_CONNECT=OFF \
        -D ENABLE_FORWARDER=OFF \
        -D ENABLE_FLATBUF_SERVER=OFF \
        -D ENABLE_PROTOBUF_SERVER=OFF \
        ..

unformatted commented on 2022-05-04 10:48 (UTC)

I just tried upgrading again an now I'm on ..r4.. version and RPI SPI section is back again. I have no idea how I ended up with ..r8.. or ..r20.. version previously, but everything is working now.

unformatted commented on 2022-02-20 12:14 (UTC)

Few days ago I ugpraded to latest version (see previous comment) and reported hyperion working but that was on my test PC using the web configuration LED visualization window. Today I upgraded my living room PC which has the actual LED strip attached but the LED's don't work (visualization window is ok).

I use apa102 but I noticed I cannot select this anymore with the ..r20.. version! I could choose apa102 on previous ..r8..version under controller type "RPI SPI" but that option is gone now. How do I get apa102 to work?

unformatted commented on 2022-02-18 13:31 (UTC)

I use package-query -Au to check for changed AUR packages. I was using ..r8.. version, I just downloaded and build and now I have ..r20.. version which is working. I notice on this webpage it says ..r4.. version, maybe that's why package-query -Au did not pick it up. Anyway, thanks for your time.

Jake commented on 2022-02-17 19:25 (UTC) (edited on 2022-02-17 19:34 (UTC) by Jake)

@Rob_H: That is interesting, it automatically picks qt5 for me and builds still fine -- Found Qt Version: 5.15.2. If I install qt6-base without serialport it builds with qt5 anyway. Only if I remove qt5-base I can reproduce this, but this should not be possible with the current qt5 dependency. Will do more experiments in a chroot. Maybe you have an idea? Do you have both qt 5 and 6 installed?

Edit, it should indeed prefer qt6, from here:

find_package(QT NAMES Qt6 Qt5 COMPONENTS Core Gui Network Sql Widgets REQUIRED)

https://doc-snapshots.qt.io/qt6-dev/cmake-qt5-and-qt6-compatibility.html So the behavior you see is normal.

@unformatted: Can't reproduce, build detects it correctly: -- Found Python3: /usr/bin/python3.10 (found suitable version "3.10.2", minimum required is "3.5") found components: Interpreter Development Development.Module Development.Embed

and output is fine:

ldd /bin/hyperion-remote 
        linux-vdso.so.1 (0x00007ffc92f3d000)
        libpython3.10.so.1.0 => /bin/../lib/libpython3.10.so.1.0 (0x00007fca66768000)
        ...

Of course after that it also runs normally. Are you sure you properly rebuild? Looks like an old pkg to me.

unformatted commented on 2022-02-17 08:31 (UTC)

After upgrading my RPi4 running arch ARM with kodi and hyperion.ng, hyperion does not start anymore. The previous upgrade was on 2021-12-26 and working. I start hyperion manually from kodi script mapped to my remote. This package is supposed to be rebuild for python 3.10 but hyperion-remote expects libpython3.9.so.1.0 library. This happens:

[user@PC19 ~]$ systemctl --user start hyperion.service
[user@PC19 ~]$ systemctl --user status hyperion.service
× hyperion.service - Hyperion ambient light systemd service
Loaded: loaded (/home/user/.config/systemd/user/hyperion.service; bad; vendor preset: enabled)
Active: failed (Result: exit-code) since Tue 2022-02-15 13:21:05 CET; 2s ago
Docs: https://docs.hyperion-project.org
Process: 492 ExecStart=/usr/bin/hyperiond (code=exited, status=127)
Main PID: 492 (code=exited, status=127)
CPU: 4ms

Feb 15 13:21:05 PC19 systemd[378]: hyperion.service: Scheduled restart job, restart counter is at 3.
Feb 15 13:21:05 PC19 systemd[378]: Stopped Hyperion ambient light systemd service.
Feb 15 13:21:05 PC19 systemd[378]: hyperion.service: Start request repeated too quickly.
Feb 15 13:21:05 PC19 systemd[378]: hyperion.service: Failed with result 'exit-code'.
Feb 15 13:21:05 PC19 systemd[378]: Failed to start Hyperion ambient light systemd service.

[user@PC19 ~]$ hyperion-remote -h
hyperion-remote: error while loading shared libraries: libpython3.9.so.1.0: cannot open shared object file: No such file or directory

My system: Linux 5.15.21-3-rpi-ARCH #1 SMP PREEMPT Fri Feb 11 13:59:13 UTC 2022 aarch64 GNU/Linux kodi-rpi 19.3-3 python 3.10.2-1 hyperion.ng-git 2.0.12.r8.c38ec602-1

Rob_H commented on 2022-02-13 19:00 (UTC)

Hey all. Didn't build for me out of the box:

-- Could NOT find Qt6SerialPort (missing: Qt6SerialPort_DIR)
CMake Error at libsrc/leddevice/CMakeLists.txt:11 (find_package):
  Found package configuration file:

    /usr/lib64/cmake/Qt6/Qt6Config.cmake

  but it set Qt6_FOUND to FALSE so package "Qt6" is considered to be NOT
  FOUND.  Reason given by package:

  Failed to find Qt component "SerialPort".

  Expected Config file at
  "/usr/lib64/cmake/Qt6SerialPort/Qt6SerialPortConfig.cmake" does NOT exist

Looks like dependencies need to be updated to point to qt6-serialport instead of qt5-serialport. If I install that, it works. Not sure about the other Qt dependency (qt5-x11extras). I don't see a Qt 6 version of that, but it builds/runs fine without it.

Jake commented on 2021-12-10 23:53 (UTC) (edited on 2021-12-11 22:51 (UTC) by Jake)

Thanks for the hint @stiw47. The systemd files indeed needed adjustments, running as root does not make sense anymore. I changed it to the upstream approach now, so it needs an @ username parameter:

sudo systemctl start hyperiond@$USER.service

But I found that this is also not quite right, for example my Qt theme does not get applied to the tray menu. It is better to use systemd-user directly, I included a unit file as well, anyway it needs some manual commands to setup the homedir:

ln -s /usr/share/hyperion/hyperiond-user.service ~/.config/systemd/user/hyperion.service
systemctl --user daemon-reload
systemctl --user start hyperion.service

All service management commands must include the --user flag and don't need root/sudo at all. This is the approach I would recommend.

stiw47 commented on 2021-12-10 20:47 (UTC) (edited on 2021-12-10 20:49 (UTC) by stiw47)

@Jake: Thanks a lot for your effort to maintain this. Anyway, it seems that with current hyperion.systemd file isn't possible to have other internal capture device except of Framebuffer. I wanted to use Hyperion with internal capture, then found it wasn't possible atm cause only framebuffer was available, then @Lord-Grey from Hyperion forum helped me to change hyperion.systemd file content. This is for "letting you know" purpose, if you are interested to take a look, you can find detailed info here: https://hyperion-project.org/forum/index.php?thread/12471-leds-not-working-on-archlinux-x86-64-with-framebuffer-screen-capture/

Thanks once again for maintaining this.

Bykow commented on 2021-06-25 09:24 (UTC)

@Jake thanks for the update ! Works now.

Jake commented on 2021-06-25 08:53 (UTC) (edited on 2021-06-25 08:54 (UTC) by Jake)

@Bykow,@hcooh: Yes, seems to be a false positive with GCC 11.1: https://github.com/ARMmbed/mbedtls/issues/4130

There are multiple patches in development concerning this, but not in a release yet. The fixes also result in a slight API change.

It should be okay to disable the error through CFLAGS, but another way is to depend/link the mbedtls package from Arch and skip that dependency build altogether. I have pushed the change, let me know if everything works for you now.

hcooh commented on 2021-06-25 06:32 (UTC)

I have the same error as @Bykow, it seems to be due to GCC11 ?

I could get the compilation to finish by adding the following line just above the cmake in the build() function of the PKGBUILD, but probably not the best solution. CFLAGS="${CFLAGS} -Wno-stringop-overflow"

Bykow commented on 2021-06-23 10:26 (UTC) (edited on 2021-06-23 11:37 (UTC) by Bykow)

Does not compile.

PATH/hyperion.ng-git/src/hyperion.ng/build/dependencies/external/mbedtls/src/library/ssl_tls.c:3267:5: error: ‘mbedtls_sha512_finish_ret’ accessing 64 bytes in a region of size 48 [-Werror=stringop-overflow=]
 3267 |     finish( &sha512, padbuf );
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~

Jake commented on 2021-03-09 13:52 (UTC)

Thanks @pety3bi, I added it now.

pety3bi commented on 2021-03-09 00:45 (UTC)

qt5-x11extras is also required, but missing in dependencies

Jake commented on 2020-01-01 14:28 (UTC)

@Elfe: Thanks for the notice, it's updated now.

Elfe commented on 2019-11-24 19:34 (UTC)

Upstream has a patch for python 3.8 support I had to use DUSE_SYSTEM_PROTO_LIBS=OFF as there where build errors The systemd service definition uses rootPath which is an unkown parameter in current git

Jake commented on 2018-08-12 15:47 (UTC) (edited on 2019-05-05 18:32 (UTC) by Jake)

EDIT: Not true anymore, fixed upstream.

Note: Build fails with cmake 3.11.x currently, a workaround is to downgrade to 3.10.

moc_JsonClientConnection.cpp:86:48: error: invalid use of incomplete type 'class QJsonObject'
         case 1: { qint64 _r = _t->sendMessage((*reinterpret_cast< QJsonObject(*)>(_a[1])));

If someone knows how to fix this properly, let me know.