Skip to content

Conversation

@ranaaditya
Copy link

@ranaaditya ranaaditya commented Dec 13, 2025

  1. Add : Missing Libs in debian linux build (attaching initial failed build logs)
  2. Add Desktop Entry with Icon (Optional - users can run a command to have it) - its hard to go to build folders and rerun the commands for naive users instead anyone can have the Desktop Entry Like normal apps.

Failed Build Logs:

View build error log
~/librepods/librepods/linux/build$ cmake ..
-- Could NOT find XKB (missing: XKB_LIBRARY XKB_INCLUDE_DIR) (Required is at least version "0.5.0")
-- Could NOT find Qt6LinguistTools (missing: Qt6LinguistTools_DIR)
CMake Error at CMakeLists.txt:7 (find_package):
  Found package configuration file: /usr/lib/x86_64-linux-gnu/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/lib/x86_64-linux-gnu/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!


<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit

* **Documentation**
  * Expanded Linux build prerequisites to include additional Qt6 development tools and build dependencies.
  * Added optional setup steps to install a system-wide desktop entry and icon, plus instructions to launch the app from the desktop menu.

* **Chores**
  * Added a post-install step to refresh system icon caches and the desktop database on Linux.

<sub>✏️ Tip: You can customize this high-level summary in your review settings.</sub>
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

@coderabbitai
Copy link

coderabbitai bot commented Dec 13, 2025

📝 Walkthrough

Walkthrough

Adds a post-install step in Linux packaging to refresh icon caches and the desktop database, reformats install blocks in the CMake file, and expands Linux README with additional Debian build prerequisites and optional system-wide install/setup instructions.

Changes

Cohort / File(s) Summary
Linux Build Configuration
linux/CMakeLists.txt
Adds a post-install block that updates icon caches and the desktop database; reformats install(...) blocks by moving closing parentheses to their own lines without changing install destinations.
Linux Setup Documentation
linux/README.md
Expands Debian prerequisites to include additional Qt6 tooling/dev and build packages (qt6-base-dev-tools, qt6-tools-dev, qt6-tools-dev-tools, qt6-l10n-tools, libxkbcommon-dev, build-essential, cmake, ninja-build) and adds optional system-wide install instructions (sudo make install) and desktop-launch guidance.

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 describes missing libraries for Debian builds and a desktop entry addition, which aligns with the main changes of adding dependencies and installing desktop entry functionality.
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

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 87e7ec3 and 2b033da.

📒 Files selected for processing (1)
  • linux/README.md (2 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • linux/README.md

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.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
linux/CMakeLists.txt (1)

83-122: Use optional cache-update tools to avoid installation failures on systems where they're unavailable.

update-icon-caches is Debian/Ubuntu-specific and won't exist on Arch Linux or Fedora, causing make install to fail on those systems. Since this project targets multiple distributions, these cache updates should be best-effort. Use find_program to detect tool availability and skip gracefully if missing:

 install(CODE "
     message(STATUS \"Updating icon cache...\")
-    execute_process(COMMAND update-icon-caches ${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor)
+    find_program(GTK_UPDATE_ICON_CACHE gtk-update-icon-cache)
+    if(GTK_UPDATE_ICON_CACHE)
+      execute_process(
+        COMMAND \"${GTK_UPDATE_ICON_CACHE}\" -f -t \"${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor\"
+        RESULT_VARIABLE _icon_cache_rc
+      )
+    else()
+      message(STATUS \"gtk-update-icon-cache not found; skipping.\")
+    endif()

     message(STATUS \"Updating desktop database...\")
-    execute_process(COMMAND update-desktop-database ${CMAKE_INSTALL_DATAROOTDIR}/applications)
+    find_program(UPDATE_DESKTOP_DB update-desktop-database)
+    if(UPDATE_DESKTOP_DB)
+      execute_process(
+        COMMAND \"${UPDATE_DESKTOP_DB}\" \"${CMAKE_INSTALL_DATAROOTDIR}/applications\"
+        RESULT_VARIABLE _desktop_db_rc
+      )
+    else()
+      message(STATUS \"update-desktop-database not found; skipping.\")
+    endif()
 ")
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between dcbbb2c and 7b99d41.

📒 Files selected for processing (2)
  • linux/CMakeLists.txt (2 hunks)
  • linux/README.md (2 hunks)
🧰 Additional context used
🪛 markdownlint-cli2 (0.18.1)
linux/README.md

90-90: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


94-94: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🔇 Additional comments (1)
linux/README.md (1)

26-30: Debian prerequisites update matches the reported build failures (XKB + Qt6 LinguistTools).
Adding libxkbcommon-dev and the Qt6 tools/l10n packages is aligned with the missing XKB + Qt6LinguistTools errors.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 7b99d41 and 87e7ec3.

📒 Files selected for processing (1)
  • linux/README.md (2 hunks)
🧰 Additional context used
🪛 markdownlint-cli2 (0.18.1)
linux/README.md

90-90: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🔇 Additional comments (1)
linux/README.md (1)

26-29: Debian prerequisites additions address build failures.

The expansion to include qt6-base-dev-tools, qt6-tools-dev, qt6-tools-dev-tools, qt6-l10n-tools, libxkbcommon-dev, and standard build tools (build-essential, cmake, ninja-build) directly resolves the missing XKB and Qt6LinguistTools errors from the failed build logs. The changes align with the PR objectives.

@ranaaditya
Copy link
Author

Hi @kavishdevar , this is a great project, I recently used for my airbuds 4 ANC both on android + Linux - works pretty well and loved it.

I have rasied this PR keeping in mind - naive users don't know how to make desktop entry and this could be a barrier in wider adoption of the project !

Also faced a build issue which this PR would fix.

Thanks,
Happy Coding !

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant