{ lib, buildNimPackage, fetchFromGitea, fetchFromGitHub }: let compiler = fetchFromGitHub { owner = "nim-lang"; repo = "nim"; rev = "v1.6.0"; hash = "sha256-C9oveXIufv0HqMQw6eNmLbku4Sd7r28PKcRILvKYzn0="; }; npeg = fetchFromGitHub { owner = "zevv"; repo = "npeg"; rev = "0.25.0"; hash = "sha256-E/0hCz0XsoAb/bAksqrKTyi8/FwBdP8kT6uUUAdru68="; }; in buildNimPackage rec { pname = "preserves"; version = "3.3.0"; src = fetchFromGitea { domain = "git.syndicate-lang.org"; owner = "ehmry"; repo = "${pname}-nim"; rev = "nim-${pname}-${version}"; sha256 = "sha256-bKALG3Gfq6Pezu9KH6LPc4L57iapILkClbEJVmlQsBY="; }; propagatedBuildInputs = [ compiler npeg ]; preConfigure = "substituteInPlace preserves.nimble --replace '# bin ' 'bin '"; postInstall = '' pushd $out/bin for link in preserves_decode preserves_from_json preserves_to_json; do ln -s preserves_encode $link done popd ''; doCheck = true; meta = src.meta // { maintainers = [ lib.maintainers.ehmry ]; license = lib.licenses.unlicense; }; }