LINUX.ORG.RU

Nixos: установка vot

 


0

1

cat overlay/vot/default.nix

{ buildNpmPackage, fetchurl, lib, nodejs, cacert }:

buildNpmPackage rec {
  pname = "vot-cli";
  version = "1.4.3";

  src = fetchurl {
    url = "https://registry.npmjs.org/${pname}/-/${pname}-${version}.tgz";
    hash = "sha256-eOUfy6l48MD9IcWiFlC142vXvo5XobKTJ2uC6xzDGS4=";
  };

  nativeBuildInputs = [ cacert ];

  postPatch = ''
    export HOME=$TMPDIR
    export SSL_CERT_FILE=${cacert}/etc/ssl/certs/ca-bundle.crt
    ${nodejs}/bin/npm install --package-lock-only --no-audit --no-fund --ignore-scripts
  '';

  npmDepsHash = "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=";

  meta = {
    description = "Voice Over Translation CLI tool";
    homepage = "https://www.npmjs.com/package/vot-cli";
    license = lib.licenses.mit;
    platforms = lib.platforms.all;
  };
}
cd /pkg/overlay/vot
nix-build -E 'with import <nixpkgs> {}; callPackage ./default.nix { }'

out:
nix-build -E 'with import <nixpkgs> {}; callPackage ./default.nix { }'
these 2 derivations will be built:
  /nix/store/0r4nlif14aid7wbxmkd6i7rvb2jga1z2-vot-cli-1.4.3-npm-deps.drv
  /nix/store/7chl5iwlfgx477711aq3zpn9armmf6yf-vot-cli-1.4.3.drv
building '/nix/store/0r4nlif14aid7wbxmkd6i7rvb2jga1z2-vot-cli-1.4.3-npm-deps.drv'...
Running phase: unpackPhase
unpacking source archive /nix/store/g13fld7r6yx3wadh2can68aa49yz4jca-vot-cli-1.4.3.tgz
source root is package
setting SOURCE_DATE_EPOCH to timestamp 499162500 of file "package/test/test-youtube.ps1"
Running phase: patchPhase <-- зависает тут

Как правильно сделать? Так-то оно в дистрибах ставилось npm install --global vot-cli

★★★★

Внутри nix build не будет доступа к сети, package-lock.json нужно сгенерировать заранее и сделать что-то вроде такого:

postPatch = ''
  ln -s ${./package-lock.json} package-lock.json
''
kneedeep
()