nixos: мой пользовательский пакет не работает при "сборке груза" - PullRequest
1 голос
/ 06 мая 2019

Я пишу деривацию пакета для установки kryptco / kr , и он завершается ошибкой на этапе cargo build.

kryptco/kr имеет подмодуль kryptco/sigchain, который написан ржавчиной. В Makefile из kryptco/sigchain они используют команду cargo web deploy для создания своего подмодуля. На этом этапе cargo web deploy мой вывод пакета завершается неудачей.

Эти две ошибки были даны.

error: warning: replace for the non root package will be ignored, specify replace at the workspace root:
package:   /build/src/github.com/kryptco/kr/sigchain/sigchain_client/Cargo.toml
workspace: /build/src/github.com/kryptco/kr/sigchain/Cargo.toml
error: failed to fetch `https://github.com/rust-lang/crates.io-index`

Caused by:
  [6] Couldn't resolve host name; class=Net (12)

В предыдущей ошибке говорится о редактировании Cargo.toml и добавлении раздела [replace], но я хочу избежать редактирования исходного кода, если смогу.

В чем причина этих ошибок?

Это мой пакет происхождения:

# Original: https://github.com/bogsen/nixos-public/blob/a0dc497eab5de528ce3006d\
36c52bc601422cf87/pkgs/krypton/default.nix

{ config, lib, pkgs, ... }: with lib; let
  cfg = config.services.krypton;

  cargoWeb = with pkgs; rustPlatform.buildRustPackage rec {
     ...
  };
  dependencies = with pkgs; [
    cargo
    emscripten
    go
    makeWrapper
    perl
  ];

  kr = pkgs.stdenv.mkDerivation {
    name = "kr";

    src = pkgs.fetchFromGitHub {
      owner = "kryptco";
      repo = "kr";
      rev = "2.4.10";
      sha256 = "1xxhlkcw2d52q1y4h40iyvq25804w7hzv0lflqnib68aps491xnj";
      fetchSubmodules = true;
    };

    buildInputs = dependencies ++ [cargoWeb];

    dontBuild = true;

    postUnpack = ''
      # prevent referring /homeless-shelter
      export HOME=$(pwd)

      # https://github.com/kryptco/kr/issues/254#issuecomment-464890476
      sed -i.bak -e '8,11d' source/sigchain/Cargo.toml

      export GOPATH=$(pwd)
      export GOCACHE=$GOPATH/.cache/go-build
      mkdir -p src/github.com/kryptco
      mv source src/github.com/kryptco/kr
      ln -s src/github.com/kryptco/kr source
    '';

    postPatch = ''
      substituteInPlace Makefile --replace sudo ""
    '';

    makeFlags = [ "PREFIX=$(out)" ];
  };
in {
  config = {
    nixpkgs.config.packageOverrides = pkgs: { kr = kr; };
  };
}

И все сообщение об ошибке здесь.

# use rsync so that file modifed times are only updated when the contents change
cd dashboard_yew && cargo web deploy --release --target=wasm32-unknown-emscripten && rsync --checksum --delete -r ../target/deploy/* ../target/deploy-final
error: warning: replace for the non root package will be ignored, specify replace at the workspace root:
package:   /build/src/github.com/kryptco/kr/sigchain/sigchain_client/Cargo.toml
workspace: /build/src/github.com/kryptco/kr/sigchain/Cargo.toml
    Updating crates.io index
warning: spurious network error (2 tries remaining): [6] Couldn't resolve host name; class=Net (12)
warning: spurious network error (1 tries remaining): [6] Couldn't resolve host name; class=Net (12)
error: failed to fetch `https://github.com/rust-lang/crates.io-index`

Caused by:
  [6] Couldn't resolve host name; class=Net (12)

make[1]: *** [Makefile:25: libsigchain-with-dashboard] Error 101
make[1]: Leaving directory '/build/src/github.com/kryptco/kr/sigchain'
make: *** [Makefile:71: all] Error 2
builder for '/nix/store/78r0kh34ljzgfx658f9n99f8lxydjfxy-kr.drv' failed with exit code 2

1 Ответ

0 голосов
/ 15 мая 2019

Не думаю, что вы обойдете редактирование [replace] для файлов конфигурации.Сбой сборки на cargo web deploy из-за устаревшей версии openssl-sys (которая больше не поддерживается). Вот как Parity это исправил .Похоже, что они редактировали файл Cargo.lock, чтобы зависеть от более новых версий этой библиотеки.

...