Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Executables installed to non-standard location #1638

Open
1 task done
christian-heusel opened this issue Sep 6, 2023 · 2 comments
Open
1 task done

Executables installed to non-standard location #1638

christian-heusel opened this issue Sep 6, 2023 · 2 comments

Comments

@christian-heusel
Copy link

  • I confirm that this is an issue rather than a question.

Bug report

Hyperion installs executables to /usr/share/hyperion/bin and just symlinks them to /usr/bin

Steps to reproduce

Build the application like you normally would and like we do in the ArchLinux PKGBUILD:

$ cmake -DCMAKE_INSTALL_PREFIX="/usr/" \
     -DCMAKE_BUILD_TYPE=Release \
     -DENABLE_QT5=ON \
     -DPLATFORM=x86 \
     -DPROTOBUF_PROTOC_EXECUTABLE=/usr/bin/protoc \
     -DUSE_SYSTEM_PROTO_LIBS=ON \
     -DUSE_SYSTEM_FLATBUFFERS_LIBS=ON \
     -DUSE_SYSTEM_QMDNS_LIBS=ON \
     -DUSE_SYSTEM_MBEDTLS_LIBS=ON \
     -DENABLE_DEPLOY_DEPENDENCIES=OFF \
     ..
$ make
$ make install

See that the binaries are installed to /usr/share/hyperion/bin and that /usr/bin/ just contains symlinks to the afforementioned location.

What is expected?

The compiled binaries should be installed to /usr/bin instead of /usr/share/hyperion/bin as per the Filesystem Hierarchy Standard and the Arch Packaging Guidelines:

  • /usr/share: Architecture-independent (shared) data.
  • /usr/bin: Non-essential command binaries (not needed in single-user mode); for all users.

This was noticed because we have tooling in archlinux that scans through the binaries and notifies us when there are rebuilds needed (i.e. in this case for a protobuf update) where hyperion was missed because it has its binaries in this non-standard location.

We can of course patch the install step downstream, but in my opinion it would be best just to fix it here 👍🏻

What is actually happening?

See above

System

Hyperion Server:
- Build:              ()
- Build time:        Sep  6 2023 11:03:54
- Git Remote:        
- Version:           2.0.15
- UI Lang:           en (BrowserLang: en-US)
- UI Access:         default
- Avail Screen Cap.: framebuffer,qt
- Avail Video  Cap.: v4l2
- Avail Audio  Cap.: audio
- Avail Services:    boblight,cec,effectengine,forwarder,flatbuffer,protobuffer,mDNS,SSDP,borderdetection
- Config path:       /home/chris/.hyperion
- Database:          read/write

Hyperion Server OS:
- Distribution:      Arch Linux
- Architecture:      x86_64
- CPU Model:         AMD Ryzen 5 5500U with Radeon Graphics
- CPU Type:          104
- Kernel:            linux (6.5.1-arch1-1 (WS: 64))
- Root/Admin:        false
- Qt Version:        5.15.10
- Python Version:    3.11.5
- Browser:           Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/117.0
@christian-heusel christian-heusel changed the title Executables installed to wrong directory Executables installed to non-standard location Sep 6, 2023
@Lord-Grey
Copy link
Collaborator

Hi @christian-heusel
Just for my education… if I look at the FHS custom packages should go to /opt.
Why are you not asking having Hyperion to be installed there?

@christian-heusel
Copy link
Author

christian-heusel commented Dec 9, 2023

@Lord-Grey usually only really big bundled packages (i.e. Android Studio, Zoom), which also ship their own dependency in the bundle, go to /opt/ and package-manager installed things which also link against the dependencies in /usr/lib go into /usr/bin.

I also already tried to provide some reasoning in the initial issue 😊

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants