nix-config/overlay/plume/default.nix

74 lines
1.5 KiB
Nix

{ naersk, fenix
, system, stdenv, fetchFromGitHub, buildEnv
, pkg-config, gettext
, openssl, postgresql
}:
let
rust = fenix.packages.${system}.complete.withComponents [
"cargo"
"rustc"
];
naersk-lib = naersk.lib."${system}".override {
cargo = rust;
rustc = rust;
};
conv = fetchFromGitHub {
owner = "DanielKeep";
repo = "rust-conv";
rev = "90a1e85edcc6d63616436a6049b08ba87c76d703";
sha256 = "029xq9cabz3scbmd84b8qkrg0q7x6fm27ijq869lkpq8bwjxvcb6";
};
src = stdenv.mkDerivation {
name = "plume-src";
src = fetchFromGitHub {
owner = "Plume-org";
repo = "Plume";
rev = "33f3bbb774ccbc05636167111db8a601a4bf5fdd";
sha256 = "1zpd7r45axps6wky1nf9ja9kyx8z5gywi5p5fgs1h1lxg9r0sfmw";
};
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;
nativeBuildInputs = [
pkg-config gettext
];
buildInputs = [
openssl
postgresql
];
};
plm = naersk-lib.buildPackage {
pname = "plm";
root = src;
nativeBuildInputs = [
pkg-config
# gettext
];
buildInputs = [
openssl
postgresql
];
cargoBuildOptions = x: x ++ [ "--package=plume-cli" ];
};
in if true then plm else buildEnv {
name = "plume-env";
paths = [ plume plm ];
passthru = { inherit plume plm; };
}