Feature : add Nix build - #263
Conversation
There was a problem hiding this comment.
🟡 Changes recommended
The arm64 build path is currently nonfunctional, and one documented launch command does not launch the application.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Pull request overview
Adds local Nix build support and documents Nixpkgs installation and usage.
Changes:
- Adds a Nix development shell and package derivation.
- Adds x64 and arm64 Nix build targets.
- Documents Nix installation, launching, and local builds.
File summaries
| File | Description |
|---|---|
shell.nix |
Defines Nix build dependencies. |
default.nix |
Packages application resources using Nixpkgs Electron. |
Makefile |
Adds Nix build targets. |
package-append.json |
Adds Electron preparation for Nix. |
README.md |
Documents Nix availability and workflows. |
Review details
- Files reviewed: 5/5 changed files
- Comments generated: 3
- Review effort level: Balanced
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
|
Thanks for the contribution, looks relatively good to me :) I still have a few more questions Is a Nix system required to build the project? Can we/Should we add the What is Nix's governance/security model? Since this is a third-party branch of the project, I need to ensure that it is reliable, secure, and cannot be hijacked by a malicious actor (or else it should be labeled as independent at most). Are updates to the Nix package manager automatic? Who controls them? Who could potentially modify the build script and hijack the project? |
|
Thanks for the Copilot review — very interesting feedback! You are right: Also, we cannot add a A few clarifications about Nixpkgs:
Reference: https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md Updates are automated by R. RyanTM ( I also made a small mistake in my PR description: because Deezer is under a closed license, builds are not cached in the public binary cache. They are built locally from the So the main trust boundary is this upstream repository: any risky change to build instructions should be caught during Nixpkgs review. Finally, as discussed in NixOS/nixpkgs#488329 (review), using Electron from Nixpkgs is considered safer because that Electron package is maintained and patched by the Nix community, instead of relying on a bundled pinned version. Happy to clarify further if needed. (Copilot summary of my first response) |
There was a problem hiding this comment.
🟡 Changes recommended
The x64 target can produce a host-architecture launcher, and the documented temporary launch command fails with default Nix settings.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Review details
- Files reviewed: 5/5 changed files
- Comments generated: 2
- Review effort level: Balanced
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
|
Well, that's it for ai reviews I guess |
josselinonduty
left a comment
There was a problem hiding this comment.
some wording used in readme is still imperfect, but that's non blocking. lgtm
|
Congrats on your |
|
Thank you @josselinonduty 😄 Don't hesitate to reword as you want in a future PR to keep consistency 😉 |
Deezer-Linux is available in Nixpkgs for Nix and NixOS users since March 2026 NixOS/nixpkgs#488329.
This PR aims to add the build instructions and processes for a locally built deezer-linux version for development and contributing purposes.
The Nix's build process just extracts the application components but do not use the packaged Electron. It uses the official version published in Nixpkgs instead.
Updates on Nixpkgs are managed by the bot "R. RyanTM" based on releases from this repository with automatically opened PR (Example : NixOS/nixpkgs#553896). The Nixpkgs CI build the package on their own using the
.tar.xzreleasesand push it to https://cache.nixos.org/.Then, the users can just launch a temporary run with :
Or install it permanently by adding to their
configuration.nixor Flakes :