Skip to content

Feature : add Nix build - #263

Merged
josselinonduty merged 5 commits into
aunetx:masterfrom
FelixLusseau:feature/add-nix-build
Aug 30, 2026
Merged

Feature : add Nix build#263
josselinonduty merged 5 commits into
aunetx:masterfrom
FelixLusseau:feature/add-nix-build

Conversation

@FelixLusseau

@FelixLusseau FelixLusseau commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

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.xz releases and push it to https://cache.nixos.org/.

Then, the users can just launch a temporary run with :

nix-shell -p deezer-desktop

Or install it permanently by adding to their configuration.nix or Flakes :

{
  environment.systemPackages = with pkgs; [
    deezer-desktop
  ];
}

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟡 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.

Comment thread README.md Outdated
Comment thread default.nix Outdated
Comment thread Makefile Outdated
@josselinonduty

Copy link
Copy Markdown
Collaborator

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 nixos target to the GitHub release workflow?

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?

@FelixLusseau
FelixLusseau requested a balanced review from Copilot August 29, 2026 23:11

This comment was marked as outdated.

@FelixLusseau

FelixLusseau commented Aug 29, 2026

Copy link
Copy Markdown
Contributor Author

Thanks for the Copilot review — very interesting feedback!

You are right: nix-build requires Nix to be installed (on NixOS or another Linux distribution).

Also, we cannot add a nixos target to this release workflow, because these instructions are intended for local development only.
A dedicated build test could still be added, but this is already covered in Nixpkgs CI.

A few clarifications about Nixpkgs:

  • Nixpkgs is community-maintained.
  • Package updates are reviewed through PRs.
  • Maintainers are requested on reviews for their packages, while merge permissions are handled by contributors with write access.

Reference: https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md

Updates are automated by R. RyanTM (nixpkgs-update), which tracks upstream releases and opens version/hash update PRs (example: NixOS/nixpkgs#553896).
Tool documentation: https://nix-community.github.io/nixpkgs-update/

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 .tar.xz release artifact.

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)

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟡 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

Comment thread README.md Outdated
Comment thread Makefile
FelixLusseau and others added 2 commits August 30, 2026 01:53
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
@FelixLusseau
FelixLusseau requested a balanced review from Copilot August 30, 2026 11:28

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@josselinonduty

Copy link
Copy Markdown
Collaborator

Well, that's it for ai reviews I guess

@josselinonduty josselinonduty left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

some wording used in readme is still imperfect, but that's non blocking. lgtm

@josselinonduty
josselinonduty merged commit 1da2f5b into aunetx:master Aug 30, 2026
1 check passed
@josselinonduty

josselinonduty commented Aug 30, 2026

Copy link
Copy Markdown
Collaborator

Congrats on your first second PR being merged @FelixLusseau :)

@FelixLusseau

Copy link
Copy Markdown
Contributor Author

Thank you @josselinonduty 😄

Don't hesitate to reword as you want in a future PR to keep consistency 😉

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.

3 participants