Skip to content

overlays has no effect #31

Description

@milahu

im trying to build popcorn-desktop

first it failed with

Error: Failed to parse resolved source: git+ssh://git@github.com/adam-lynch/node-temp.git#279c1350cb7e4f02515d91da9e35d39a40774016

so i patched yarn.lock with

yarn.lock.patch
diff --git a/yarn.lock b/yarn.lock
index 370b9c7..643a3fd 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -7176,7 +7176,8 @@ teex@^1.0.1:
 
 "temp@github:adam-lynch/node-temp#remove_tmpdir_dep":
   version "0.8.3"
-  resolved "git+ssh://git@github.com/adam-lynch/node-temp.git#279c1350cb7e4f02515d91da9e35d39a40774016"
+  resolved "https://github.com/adam-lynch/node-temp/archive/279c1350cb7e4f02515d91da9e35d39a40774016.tar.gz"
+  integrity sha256-0sv2nivr5i8hr312i4im8yb7s83plpaa92xd695kcbm9zpam64rp
   dependencies:
     rimraf "~2.2.6"
 
@@ -7948,7 +7949,8 @@ vinyl@^3.0.0:
 
 "vtt.js@git+https://github.com/gkatsev/vtt.js.git#vjs-v0.12.1":
   version "0.12.1"
-  resolved "git+ssh://git@github.com/gkatsev/vtt.js.git#8ea664e257ec7b5c092f58ac989e3134ff536a7a"
+  resolved "https://github.com/videojs/vtt.js/archive/8ea664e257ec7b5c092f58ac989e3134ff536a7a.tar.gz"
+  integrity sha256-19ifc02d82v1cn7zxamk1vcinpjiv26ppbnnab7alwagm27il9zm
 
 w-json@^1.3.10:
   version "1.3.10"

then it failed with

Failed to infer sha256 hash of the @fortawesome/fontawesome-free@6.4.0 package source from
https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-6.4.0.tgz.

Override "@fortawesome/fontawesome-free@6.4.0".src.sha256 attribute in order to provide this missing piece to Nix.
For example:

self: super: {
    "@fortawesome/fontawesome-free@6.4.0" = super."@fortawesome/fontawesome-free@6.4.0".override (x: {
        # The sha256 value is obtained via
        #   nix-prefetch-url https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-6.4.0.tgz
        src = x.src.override {
        sha256 = "<sha256>";
        };
    });
}

so i added an overlay, but the build still fails with the same error "Failed to infer sha256 hash"

also, the "Failed to infer sha256 hash" error is wrong, becaue the lockfile has

"@fortawesome/fontawesome-free@^6.4":
  version "6.4.0"
  resolved "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-6.4.0.tgz"
  integrity sha512-0NyytTlPJwB/BF5LtRV8rrABDbe3TdTXqNB3PdZ+UUUZAEIrdOJdmABqKjt4AXwIoJNaRVVZEXxpNrqvE1GAYQ==
popcorn-desktop.nix
{
  lib,
  stdenv,
  fetchFromGitHub,
  npmlock2nix,
  js2nix,
  yarn,
  nodePackages,
  writeText,
}:

let
  js2nix_env = js2nix {
    package-json = ./package.json;
    yarn-lock = ./yarn.lock;
    overlays = [
      (self: super: {
        # fix: Failed to infer sha256 hash
        "@fortawesome/fontawesome-free@6.4.0" = super."@fortawesome/fontawesome-free@6.4.0".override (x: {
          # nix-prefetch-url https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-6.4.0.tgz
          src = x.src.override {
            sha256 = "18nzcnafiiqs6li857svmkh83l4z9wkkc0f7dzsva09kg9cq2miq";
          };
        });
        # fix: Error: Failed to parse resolved source
        "temp@github:adam-lynch/node-temp#remove_tmpdir_dep" = super."temp@github:adam-lynch/node-temp#remove_tmpdir_dep".override (x: {
          src = x.src.override {
            url = "https://github.com/adam-lynch/node-temp/archive/279c1350cb7e4f02515d91da9e35d39a40774016.tar.gz";
            sha256 = "0sv2nivr5i8hr312i4im8yb7s83plpaa92xd695kcbm9zpam64rp";
          };
        });
        # fix: Error: Failed to parse resolved source
        "git+https://github.com/gkatsev/vtt.js.git#vjs-v0.12.1" = super."git+https://github.com/gkatsev/vtt.js.git#vjs-v0.12.1".override (x: {
          src = x.src.override {
            url = "https://github.com/videojs/vtt.js/archive/8ea664e257ec7b5c092f58ac989e3134ff536a7a.tar.gz";
            sha256 = "19ifc02d82v1cn7zxamk1vcinpjiv26ppbnnab7alwagm27il9zm";
          };
        });
      })
    ];
  };
in

stdenv.mkDerivation rec {
  pname = "popcorn-desktop";
  version = "0.5.1";

  src = fetchFromGitHub {
    owner = "popcorn-official";
    repo = "popcorn-desktop";
    rev = "v${version}";
    hash = "sha256-lCy2BbqeTF92Fvc7sdoNbhrdzXKiR364Q3JVouQD7F0=";
  };

  nativeBuildInputs = [
    nodePackages.npm
  ];

  postPatch = ''
    ln -s ${js2nix_env.nodeModules} node_modules
  '';

  buildPhase = ''
    npm build
  '';

  installPhase = ''
    cp -r . $out
  '';

  meta = {
    description = "BitTorrent client and media player";
    homepage = "https://github.com/popcorn-official/popcorn-desktop";
    changelog = "https://github.com/popcorn-official/popcorn-desktop/blob/${src.rev}/CHANGELOG.md";
    license = lib.licenses.gpl3Only;
    maintainers = with lib.maintainers; [ ];
    mainProgram = "popcorn-desktop";
    platforms = lib.platforms.all;
  };
}
yarn.lock - relevant parts
"@fortawesome/fontawesome-free@^6.4":
  version "6.4.0"
  resolved "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-6.4.0.tgz"
  integrity sha512-0NyytTlPJwB/BF5LtRV8rrABDbe3TdTXqNB3PdZ+UUUZAEIrdOJdmABqKjt4AXwIoJNaRVVZEXxpNrqvE1GAYQ==

"temp@github:adam-lynch/node-temp#remove_tmpdir_dep":
  version "0.8.3"
  resolved "git+ssh://git@github.com/adam-lynch/node-temp.git#279c1350cb7e4f02515d91da9e35d39a40774016"
  dependencies:
    rimraf "~2.2.6"

"vtt.js@git+https://github.com/gkatsev/vtt.js.git#vjs-v0.12.1":
  version "0.12.1"
  resolved "git+ssh://git@github.com/gkatsev/vtt.js.git#8ea664e257ec7b5c092f58ac989e3134ff536a7a"

nw-builder@^3.7.4:
  version "3.7.4"
  resolved "https://registry.npmjs.org/nw-builder/-/nw-builder-3.7.4.tgz"
  integrity sha512-rkjoeGBl8YmFobIcsnJZsawr6yBvLJ74ml+j04LRDVRsqevDspih6zI1+ybA28RLLrcqzgR7nJivKaUlAcuS7g==
  dependencies:
    temp "github:adam-lynch/node-temp#remove_tmpdir_dep"

video.js@^4.12.5:
  version "4.12.15"
  resolved "https://registry.npmjs.org/video.js/-/video.js-4.12.15.tgz"
  integrity sha1-KQ7+MPmdyaSs6Mdz3sJU3+5DTec=
  dependencies:
    vtt.js "git+https://github.com/gkatsev/vtt.js.git#vjs-v0.12.1"

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions