{ naersk, fenix , system, stdenv, fetchFromGitHub, buildEnv , pkg-config, gettext, wasm-pack, wasm-bindgen-cli , openssl, postgresql }: let rust = fenix.packages.${system}.complete.withComponents [ "cargo" "rustc" ]; naersk-lib = naersk.lib."${system}".override { cargo = rust; rustc = rust; }; rust-wasm = with fenix.packages.${system}; combine [ minimal.rustc minimal.cargo targets.wasm32-unknown-unknown.latest.rust-std ]; naersk-lib-wasm = naersk.lib."${system}".override { cargo = rust-wasm; rustc = rust-wasm; }; conv = fetchFromGitHub { owner = "DanielKeep"; repo = "rust-conv"; rev = "90a1e85edcc6d63616436a6049b08ba87c76d703"; sha256 = "029xq9cabz3scbmd84b8qkrg0q7x6fm27ijq869lkpq8bwjxvcb6"; }; version = "0.7.0"; src = stdenv.mkDerivation { pname = "plume-src"; inherit version; src = fetchFromGitHub { owner = "Plume-org"; repo = "Plume"; rev = version; sha256 = "00hl81dvcybbybwfha7x2y8mz4qlmqip76610va73j6xcjsvj4fq"; }; phases = [ "unpackPhase" "patchPhase" "installPhase" ]; patches = [ ./0001-cargo-update.patch ]; postPatch = '' ln -s ${conv} rust-conv ''; installPhase = "cp -ar . $out"; }; plume = naersk-lib.buildPackage { pname = "plume"; inherit src version; nativeBuildInputs = [ pkg-config gettext ]; buildInputs = [ openssl postgresql ]; overrideMain = oa: { installPhase = '' ${oa.installPhase} mkdir -p $out/share/plume cp -ar static $out/share/plume/ ''; }; }; plm = naersk-lib.buildPackage { pname = "plm"; root = src; nativeBuildInputs = [ pkg-config ]; buildInputs = [ openssl postgresql ]; cargoBuildOptions = x: x ++ [ "--package=plume-cli" ]; }; plume-front = naersk-lib-wasm.buildPackage { pname = "plume-front"; root = src; nativeBuildInputs = [ gettext wasm-pack wasm-bindgen-cli ]; CARGO_BUILD_TARGET = "wasm32-unknown-unknown"; cargoBuildOptions = x: x ++ [ "--package=plume-front" ]; copyLibs = true; overrideMain = oa: { buildPhase = '' substituteInPlace plume-front/Cargo.toml \ --replace '"cdylib"' '"cdylib", "rlib"' cat >>plume-front/Cargo.toml <