fishnet: 2.2.6 -> 2.4.0, fix build

fishnet-assets has been archived in favor of a submodule-based approach where
Stockfish and Fairy-Stockfish are built from source. This means we now need
to fetch the NNUE file, similar to Stockfish's standalone derivation.
This commit is contained in:
Ryan Burns 2021-09-18 19:56:43 -07:00
parent 48bf1250a8
commit f73f35b8c8
2 changed files with 13 additions and 70 deletions

View file

@ -1,58 +0,0 @@
{ lib
, stdenv
, fetchFromGitHub
, xz
, autoPatchelfHook }:
# Assets for fishnet: A collection of pre-built compressed stockfish binaries.
# We have to decompress them, patch them using auto-patchelf and compress them
# again so that a selection of them can be embedded into the fishnet binary.
stdenv.mkDerivation rec {
pname = "fishnet-assets";
version = "unstable-2020-03-27";
src = fetchFromGitHub {
owner = "niklasf";
repo = pname;
rev = "a1fe3ec6074ad9dc43e6d46e0d42fab5d7cce12c";
sha256 = "1548wj2bs89b5w42z3c98hpnbln5w8p1909wyl7a63d8vkvnyn5l";
};
relAssetsPath = "share/${pname}";
nativeBuildInputs = [ xz autoPatchelfHook ];
postPatch = ''
# Delete packed .exe files and all non .xz files (documentation and readme)
rm *.exe.xz
find \! -name "*.xz" -delete
# Extract .xz files, except *.nnue.xz
# We don't have to unpack the latter and it takes ages to repack
find -name "*.xz" \! -name "*.nnue.xz" | xargs unxz -v
'';
dontBuild = true;
installPhase = ''
mkdir -p $out/${relAssetsPath}
cp ./* $out/${relAssetsPath}
'';
preFixup = ''
gatherLibraries '${stdenv.cc.cc.lib}'
'';
doDist = true;
distPhase = ''
# repack assets
find $out/${relAssetsPath} -type f \! -name "*.xz" | xargs xz -v
'';
meta = with lib; {
description = "Assets for fishnet, only required during build";
homepage = "https://github.com/niklasf/fishnet-assets";
license = licenses.gpl3Only;
maintainers = with maintainers; [ tu-maurice ];
platforms = [ "x86_64-linux" ];
};
}

View file

@ -2,33 +2,34 @@
, stdenv , stdenv
, rustPlatform , rustPlatform
, fetchFromGitHub , fetchFromGitHub
, xz , fetchurl
, autoPatchelfHook }: }:
let let
assets = import ./assets.nix { nnueFile = "nn-6762d36ad265.nnue";
inherit lib stdenv fetchFromGitHub xz autoPatchelfHook; nnue = fetchurl {
url = "https://tests.stockfishchess.org/api/nn/${nnueFile}";
sha256 = "0727dsxfpns9fkyir95fybibqmigk5h45k154b2c5rk5s9md6qk7";
}; };
in in
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "fishnet"; pname = "fishnet";
version = "2.2.6"; version = "2.4.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "niklasf"; owner = "niklasf";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "0dmc58wzv758b82pjpfzcfi0hr14hqcr61cd9v5xlgk5w78cisjq"; sha256 = "sha256-1Gl2vJFn9yVYH62yBJefAOBX/jJaFAdSZj2Lj3imcps=";
fetchSubmodules = true;
}; };
cargoSha256 = "1s37b0w1aav6gz399zncfp0zqh5sfy0zmabhl7n8p5cwlmlvnlsj"; postPatch = ''
cp -v '${nnue}' 'Stockfish/src/${nnueFile}'
preBuild = '' cp -v '${nnue}' 'Fairy-Stockfish/src/${nnueFile}'
rmdir ./assets
ln -snf ${assets}/${assets.relAssetsPath} ./assets
''; '';
passthru.assets = assets; cargoSha256 = "sha256-/s7Yyi2FUh+EDvgaHLgZ/FA6kk2FQrZr3L3B76fqTuc=";
meta = with lib; { meta = with lib; {
description = "Distributed Stockfish analysis for lichess.org"; description = "Distributed Stockfish analysis for lichess.org";