-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
fix(vscodedevcontainer): fix-navidrome-build-issues (taglib) - navidrome#4749 #4750
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
fix(vscodedevcontainer): fix-navidrome-build-issues (taglib) - navidrome#4749 #4750
Conversation
…com> fix(vscodedevcontainer): fix-taglib-build-issues - navidrome#4749
Summary of ChangesHello @floatlesss, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request streamlines the development environment setup for Navidrome by resolving persistent TagLib dependency issues within VS Code Dev Containers. It introduces an automated script that detects the container's architecture, downloads the appropriate TagLib binaries, and installs them globally, ensuring a consistent and functional build environment for developers. Highlights
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code Review
This pull request introduces a script to install TagLib within the VS Code development container, addressing build issues. The approach is sound and effectively resolves the problem. I've added a few suggestions to the install-taglib.sh script to enhance its robustness and ensure proper cleanup, such as using set -euo pipefail, redirecting error output, and removing the empty directory after moving its contents. Overall, this is a good fix.
Signed-off-by: floatlesss <117862164+floatlesss@users.noreply.github.com>
Move TagLib installation from postCreateCommand script into the devcontainer Dockerfile to leverage Docker layer caching and simplify setup.\n\nChanges:\n- Install cross-taglib v2.1.1-1 directly in Dockerfile using TARGETARCH for multi-arch support (amd64/arm64).\n- Remove redundant libtag1-dev apt dependency; keep ffmpeg only.\n- Add CROSS_TAGLIB_VERSION as a build arg for consistency with CI/Makefile.\n- Remove postCreateCommand from devcontainer.json and delete install-taglib.sh script.\n\nWhy:\n- Avoid re-downloading TagLib on each container create; benefit from cached image layers.\n- Reduce redundancy and potential version mismatch between apt libtag and cross-taglib.\n- Keep devcontainer aligned with production build approach and CI settings.
|
Hey, thanks for this. I experimented moving the TagLib installation to the Dockerfile, instead of using an external script. It worked on ARM. Can you try on your system? Here are the changes: 342b9eb |
Can confirm that your changes work on amd64. Dev container builds successfully, and so does Navidrome. |
Description
Adds
install-taglib.shand modifiesdevcontainer.json(into.devcontainer/) to runinstall-taglib.shas apostCreateCommand.^This effectively (as tested) downloads and installs TagLib from https://github.com/navidrome/cross-taglib for amd64 or arm64 architectures inside of a VS Code Dev Container.
Related Issues
Fixes #4749
Type of Change
Checklist
Please review and check all that apply:
How to Test
postCreateCommandinstalls TagLib inside the container usinginstall-taglib.sh(into the /usr directory)make setup && make build, (hopefully) no errors due to missing TagLib headers will arise.Additional Notes
install-taglib.shinstalls TagLib into the /usr directory of the container, making TagLib globally accessible to any user inside of the container.