Skip to content

deezer-desktop: init at 7.1.100#488329

Merged
SuperSandro2000 merged 1 commit intoNixOS:masterfrom
FelixLusseau:add-deezer
Mar 8, 2026
Merged

deezer-desktop: init at 7.1.100#488329
SuperSandro2000 merged 1 commit intoNixOS:masterfrom
FelixLusseau:add-deezer

Conversation

@FelixLusseau
Copy link
Contributor

@FelixLusseau FelixLusseau commented Feb 8, 2026

This is an UNOFFICIAL linux port (legal notice) of the official windows-only Deezer app. Being based on the native Windows app, it allows downloading your songs to listen to them offline!
https://github.com/aunetx/deezer-linux

Things done

  • Built on platform:
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • Tested, as applicable:
  • Ran nixpkgs-review on this PR. See nixpkgs-review usage.
  • Tested basic functionality of all binary files, usually in ./result/bin/.
  • Nixpkgs Release Notes
    • Package update: when the change is major or breaking.
  • NixOS Release Notes
    • Module addition: when adding a new NixOS module.
    • Module update: when the change is significant.
  • Fits CONTRIBUTING.md, pkgs/README.md, maintainers/README.md and other READMEs.

@nixpkgs-ci nixpkgs-ci bot added 8.has: package (new) This PR adds a new package 10.rebuild-linux: 1-10 This PR causes between 1 and 10 packages to rebuild on Linux. 10.rebuild-darwin: 0 This PR does not cause any packages to rebuild on Darwin. 10.rebuild-linux: 1 This PR causes 1 package to rebuild on Linux. 9.needs: reviewer This PR currently has no reviewers requested and needs attention. labels Feb 8, 2026
@FelixLusseau FelixLusseau added the backport release-25.11 Backport PR automatically label Feb 8, 2026
@FelixLusseau
Copy link
Contributor Author

nixpkgs-review result

Generated using nixpkgs-review-gha

Command: nixpkgs-review pr 488329
Commit: 2ad0db34f252591a2855ec156454d478570b8284 (subsequent changes)
Merge: ab9612f6e7325925f262519f64b427ff415a9a84

Logs: https://github.com/FelixLusseau/nixpkgs-review-gha/actions/runs/21798894298


x86_64-linux

✅ 1 package built:
  • deezer

aarch64-linux

✅ 1 package built:
  • deezer

x86_64-darwin

No rebuilds


aarch64-darwin

No rebuilds

@liberodark
Copy link
Contributor

nixpkgs-review result

Generated using nixpkgs-review-gha

Command: nixpkgs-review pr 488329
Commit: 2ad0db34f252591a2855ec156454d478570b8284 (subsequent changes)
Merge: 9a5477d0bd10453a3385c9fd382455311ed1e695

Logs: https://github.com/liberodark/nixpkgs-review-gha/actions/runs/21817467966


x86_64-linux

✅ 1 package built:
  • deezer

aarch64-linux

✅ 1 package built:
  • deezer

x86_64-darwin

No rebuilds


aarch64-darwin

No rebuilds

Copy link
Contributor

@RossSmyth RossSmyth left a comment

Choose a reason for hiding this comment

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

Hello, I am someone working on Electron packaging within Nixpkgs. I have some PRs open for automating some of this. But basically:

  1. Most of your buildInputs can be removed
  2. Just write something like cp resources{,.pak} "$out/share/deezer-desktop"
  3. Then have Nixpkgs Electron call it. Something like:
makeWrapper "${lib.getExe electron}" "$out/bin/deezer-desktop" \
  --inherit-argv0 \
  --add-flag "$out/share/deezer-desktop/resources/app.asar" \
  --set-default ELECTRON_FORCE_IS_PACKAGED 1

then still copy the desktop file and icons as appropriate.

This means that your application will receive Electron security patches when the occur, not just whenever this package updates. It is then likely you won't need most or all your buildInputs.

@nixpkgs-ci nixpkgs-ci bot removed the 9.needs: reviewer This PR currently has no reviewers requested and needs attention. label Feb 18, 2026
@FelixLusseau FelixLusseau marked this pull request as draft February 20, 2026 12:54
@FelixLusseau FelixLusseau changed the title deezer: init at 7.1.60 deezer-desktop: init at 7.1.70 Feb 20, 2026
@FelixLusseau
Copy link
Contributor Author

FelixLusseau commented Feb 20, 2026

Hello, I am someone working on Electron packaging within Nixpkgs. I have some PRs open for automating some of this. But basically:

  1. Most of your buildInputs can be removed
  2. Just write something like cp resources{,.pak} "$out/share/deezer-desktop"
  3. Then have Nixpkgs Electron call it. Something like:
makeWrapper "${lib.getExe electron}" "$out/bin/deezer-desktop" \
  --inherit-argv0 \
  --add-flag "$out/share/deezer-desktop/resources/app.asar" \
  --set-default ELECTRON_FORCE_IS_PACKAGED 1

then still copy the desktop file and icons as appropriate.

This means that your application will receive Electron security patches when the occur, not just whenever this package updates. It is then likely you won't need most or all your buildInputs.

Hi @RossSmyth ,

Good idea thank you for the suggestion.

I did the modifications you proposed, it simplifies a lot, but I have now a problem when the application is starting. The official Electron cannot load the systray.png icon because the resources path is defined to itself and not to mine.

❯ deezer-desktop
13:47:27.399 › Init App
(node:138859) UnhandledPromiseRejectionWarning: Error: Failed to load image from path '/nix/store/6ppl38w30hiygnhzkxagm6yrw9jdl15x-electron-unwrapped-38.7.2/libexec/electron/resources/linux/systray.png'
    at TrayService.init (/nix/store/ffxw5dysivcsw0y18fysxl255rkjyjdq-deezer-desktop-7.1.70/share/deezer-desktop/resources/app.asar/build/main.js:2246:25)
    at Object.<anonymous> (/nix/store/ffxw5dysivcsw0y18fysxl255rkjyjdq-deezer-desktop-7.1.70/share/deezer-desktop/resources/app.asar/build/main.js:2934:25)
    at Generator.next (<anonymous>)
    at fulfilled (/nix/store/ffxw5dysivcsw0y18fysxl255rkjyjdq-deezer-desktop-7.1.70/share/deezer-desktop/resources/app.asar/build/main.js:2836:26)
(Use `electron --trace-warnings ...` to show where the warning was created)
(node:138859) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
^C

Do you have ideas to solve that ?

Due to the Deezer license, we are not really allowed to modify the app.asar...

I drafted this PR until we resolve this.

@RossSmyth
Copy link
Contributor

Try removing --inherit-argv0

@FelixLusseau
Copy link
Contributor Author

Same error...

@RossSmyth
Copy link
Contributor

is it exactly the same, or are the paths different?

@RossSmyth
Copy link
Contributor

RossSmyth commented Feb 20, 2026

You may be able to mess with argv0 to get it to work, another option is unpacking the asar and patching the getAppIcon function to be harcoded to the icon path.

Something like:

  function getAppIcon(app) {
    let appIcon = "";
    switch (getPlatformName()) {
      case PLATFORM.WINDOWS:
        appIcon = "win/systray.png";
        break;
      case PLATFORM.DARWIN:
        appIcon = "mac/trayTemplate.png";
        break;
      case PLATFORM.LINUX:
        appIcon = "linux/systray.png";
    }
    return external_path_default().join(
      isDev(app)
        ? external_path_default().join(app.getAppPath(), "resources")
        : process.resourcesPath,
      appIcon
    );
  }

->

  function getAppIcon(app) {
    let appIcon = "";
    switch (getPlatformName()) {
      case PLATFORM.WINDOWS:
        appIcon = "win/systray.png";
        break;
      case PLATFORM.DARWIN:
        appIcon = "mac/trayTemplate.png";
        break;
      case PLATFORM.LINUX:
        appIcon = "linux/systray.png";
    }
    return "$out/path/to/icon"
    );
  }

@FelixLusseau FelixLusseau changed the title deezer-desktop: init at 7.1.70 deezer-desktop: init at 7.1.80 Feb 21, 2026
@FelixLusseau
Copy link
Contributor Author

I opened a PR aunetx/deezer-linux#215 to implement properly a patch ! I will keep updated the feedbacks here.

@RossSmyth
Copy link
Contributor

RossSmyth commented Feb 21, 2026

I would just vendor the patch and apply it after unpacking the asar. But having a PR open is good too.

@FelixLusseau
Copy link
Contributor Author

Yes I managed to repair the build using this but Deezer is unfree so I think that it is better to add a patch where there are patches instead of taking the responsibility of opening ourself the asar on Nixpkgs

@FelixLusseau
Copy link
Contributor Author

Hi,

The upstream PR has been accepted and merged. The next Deezer release will be published within 1 or 2 weeks. Then the deezer-linux project will be released with my patch.
I will update the Derivation with the new version to allow a new review at this moment.

Thank you for your suggestions !

@FelixLusseau FelixLusseau changed the title deezer-desktop: init at 7.1.80 deezer-desktop: init at 7.1.90 Mar 5, 2026
@FelixLusseau FelixLusseau marked this pull request as ready for review March 5, 2026 22:24
@FelixLusseau FelixLusseau requested a review from RossSmyth March 5, 2026 22:24
@FelixLusseau
Copy link
Contributor Author

Hi @RossSmyth @SuperSandro2000 ,

The PR is now ready for rereview with your suggested changes applied.
The upstream package is now containing my patch for Systray icon so all is good.

Thanks again for the feedbacks :)

@FelixLusseau
Copy link
Contributor Author

nixpkgs-review result

Generated using nixpkgs-review-gha

Command: nixpkgs-review pr 488329
Commit: c4526193af0cc5f4319bff6b2a196adf2202ad91 (subsequent changes)
Merge: 394d4ba487853cf4be555deac809bf14cf7e9ff6

Logs: https://github.com/FelixLusseau/nixpkgs-review-gha/actions/runs/22739708489


x86_64-linux

✅ 1 package built:
  • deezer-desktop

aarch64-linux

✅ 1 package built:
  • deezer-desktop

x86_64-darwin

No rebuilds


aarch64-darwin

No rebuilds

@FelixLusseau FelixLusseau changed the title deezer-desktop: init at 7.1.90 deezer-desktop: init at 7.1.100 Mar 7, 2026
@SuperSandro2000 SuperSandro2000 added this pull request to the merge queue Mar 8, 2026
Merged via the queue into NixOS:master with commit 16c5074 Mar 8, 2026
29 of 32 checks passed
@nixpkgs-ci
Copy link
Contributor

nixpkgs-ci bot commented Mar 8, 2026

Successfully created backport PR for release-25.11:

@github-actions github-actions bot added the 8.has: port to stable This PR already has a backport to the stable release. label Mar 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

8.has: package (new) This PR adds a new package 8.has: port to stable This PR already has a backport to the stable release. 10.rebuild-darwin: 0 This PR does not cause any packages to rebuild on Darwin. 10.rebuild-linux: 1-10 This PR causes between 1 and 10 packages to rebuild on Linux. 10.rebuild-linux: 1 This PR causes 1 package to rebuild on Linux. backport release-25.11 Backport PR automatically

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants