librepods icon indicating copy to clipboard operation
librepods copied to clipboard

linux: add build requirement to Linux instructions

Open yarcod opened this issue 2 months ago • 5 comments

There was a missing package needed for compiling the Linux version under Ubuntu.

Summary by CodeRabbit

  • Documentation
    • Updated Linux installation prerequisites and setup documentation with clarified package requirements, including additional development libraries for improved setup guidance.

✏️ Tip: You can customize this high-level summary in your review settings.

yarcod avatar Dec 10 '25 12:12 yarcod

📝 Walkthrough

Walkthrough

Updates documentation for Linux prerequisites by adding qt6-tools-dev to build commands and introducing new prerequisite sections for OpenSSL, Libpulse, and CMake with accompanying code examples and minor formatting adjustments.

Changes

Cohort / File(s) Change Summary
Linux Documentation
linux/README.md
Updated prerequisite instructions with qt6-tools-dev addition to Debian/Fedora build commands; added new sections for OpenSSL, Libpulse, and CMake dependencies with code examples; reflowed bullet points under "Hearing Aid features"

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'linux: add build requirement to Linux instructions' directly matches the main objective of the PR—adding missing build requirements (qt6-tools-dev, OpenSSL headers, Libpulse headers, and CMake) to the Linux build documentation.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • [ ] Create PR with unit tests
  • [ ] Post copyable unit tests in a comment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

coderabbitai[bot] avatar Dec 10 '25 12:12 coderabbitai[bot]

I found the same issue and needed to obtain the referenced dependency.

Kaden-Beck avatar Dec 10 '25 22:12 Kaden-Beck

I just went to install on my main laptop, which uses Fedora 43 (which installed perfectly fine on 42 on my second laptop), and am getting this error:

14:20:19 ~/dev/librepods/linux/build:main $ cmake ..
-- The CXX compiler identification is GNU 15.2.1
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- Performing Test HAVE_STDATOMIC
-- Performing Test HAVE_STDATOMIC - Success
-- Found WrapAtomic: TRUE
-- Found OpenGL: /usr/lib64/libOpenGL.so
-- Found WrapOpenGL: TRUE
-- Found WrapVulkanHeaders: /usr/include
-- Could NOT find Qt6LinguistTools (missing: Qt6LinguistTools_DIR)
CMake Error at CMakeLists.txt:7 (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 required Qt component "LinguistTools".

  Expected Config file at
  "/usr/lib64/cmake/Qt6LinguistTools/Qt6LinguistToolsConfig.cmake" does NOT
  exist



  Configuring with --debug-find-pkg=Qt6LinguistTools might reveal details why
  the package was not found.

  Configuring with -DQT_DEBUG_FIND_PACKAGE=ON will print the values of some
  of the path variables that find_package uses to try and find the package.



-- Configuring incomplete, errors occurred!

I'm trying to figure out what package is missing from the Fedora RPM. I thought qt6-linguist would be enough, but apparently not.

Just thought I'd mention it.

Johnsoct avatar Dec 12 '25 19:12 Johnsoct

I just went to install on my main laptop, which uses Fedora 43 (which installed perfectly fine on 42 on my second laptop), and am getting this error:

14:20:19 ~/dev/librepods/linux/build:main $ cmake ..
-- The CXX compiler identification is GNU 15.2.1
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- Performing Test HAVE_STDATOMIC
-- Performing Test HAVE_STDATOMIC - Success
-- Found WrapAtomic: TRUE
-- Found OpenGL: /usr/lib64/libOpenGL.so
-- Found WrapOpenGL: TRUE
-- Found WrapVulkanHeaders: /usr/include
-- Could NOT find Qt6LinguistTools (missing: Qt6LinguistTools_DIR)
CMake Error at CMakeLists.txt:7 (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 required Qt component "LinguistTools".

  Expected Config file at
  "/usr/lib64/cmake/Qt6LinguistTools/Qt6LinguistToolsConfig.cmake" does NOT
  exist



  Configuring with --debug-find-pkg=Qt6LinguistTools might reveal details why
  the package was not found.

  Configuring with -DQT_DEBUG_FIND_PACKAGE=ON will print the values of some
  of the path variables that find_package uses to try and find the package.



-- Configuring incomplete, errors occurred!

I'm trying to figure out what package is missing from the Fedora RPM. I thought qt6-linguist would be enough, but apparently not.

Just thought I'd mention it.

I did also ensure I followed each step of the build requirements:

14:22:09 ~/dev/librepods/linux/build:main $  sudo dnf install qt6-qtbase-devel qt6-qtconnectivity-devel \
> qt6-qtmultimedia-devel qt6-qtdeclarative-devel
Updating and loading repositories:
Repositories loaded.
Package "qt6-qtbase-devel-6.10.1-2.fc43.x86_64" is already installed.
Package "qt6-qtconnectivity-devel-6.10.1-1.fc43.x86_64" is already installed.
Package "qt6-qtmultimedia-devel-6.10.1-1.fc43.x86_64" is already installed.
Package "qt6-qtdeclarative-devel-6.10.1-2.fc43.x86_64" is already installed.

Nothing to do.
14:23:22 ~/dev/librepods/linux/build:main $ sudo dnf install openssl-devel
Updating and loading repositories:
Repositories loaded.
Package "openssl-devel-1:3.5.4-1.fc43.x86_64" is already installed.

Nothing to do.
14:23:33 ~/dev/librepods/linux/build:main $ sudo dnf install pulseaudio-libs-devel
Updating and loading repositories:
Repositories loaded.
Package "pulseaudio-libs-devel-17.0-7.fc43.x86_64" is already installed.

Nothing to do.
14:23:39 ~/dev/librepods/linux/build:main $ sudo dnf install cmake
Updating and loading repositories:
Repositories loaded.
Package "cmake-3.31.6-4.fc43.x86_64" is already installed.

Nothing to do.
14:23:43 ~/dev/librepods/linux/build:main $

Johnsoct avatar Dec 12 '25 19:12 Johnsoct

This will only work for the qt6 version of librepods. There is currently a rewrite using Rust + iced (#241) which will changes some of these requirements.

doprz avatar Dec 13 '25 03:12 doprz