syndicate-flake/overlay.nix

88 lines
2.7 KiB
Nix

final: prev:
let
nimOverlay = final': prev': {
nix_actor = final'.callPackage ./packages/nix_actor { };
noiseprotocol = final'.callPackage ./packages/nim/noiseprotocol { };
syndicate_utils = final'.callPackage ./packages/syndicate_utils-nim { };
syndicated-open = final'.callPackage ./packages/syndicated-open { };
xdg_open_ng =
builtins.trace "xdg_open_ng has been renamed to syndicated-open"
final'.syndicated-open;
};
rustPkgs = let
overlay = import (prev.fetchFromGitHub {
owner = "oxalica";
repo = "rust-overlay";
rev = "a2ccfb2134622b28668a274e403ba6f075ae1223";
hash = "sha256-9honwiIeMbBKi7FzfEy89f1ShUiXz/gVxZSS048pKyc=";
});
in final.extend overlay;
rust' = rustPkgs.rust-bin.nightly.latest.default;
in {
lib = prev.lib.extend (import ./lib.nix);
acpi_actor = final.nim2Packages.callPackage ./packages/acpi_actor { };
fontconfig_actor =
final.nim2Packages.callPackage ./packages/fontconfig_actor { };
libnotify_actor =
final.nim2Packages.callPackage ./packages/libnotify_actor { };
nimFlagsFromLockFile = let
fetchDependency = let
methods = {
fetchzip = { url, sha256, ... }:
final.fetchzip {
name = "source";
inherit url sha256;
};
git = { fetchSubmodules, leaveDotGit, rev, sha256, url, ... }:
final.fetchgit {
inherit fetchSubmodules leaveDotGit rev sha256 url;
};
};
in attrs@{ method, ... }: methods.${method} attrs // attrs;
in lockFile:
with builtins;
final.lib.pipe lockFile [
readFile
fromJSON
(getAttr "depends")
(map fetchDependency)
(map ({ outPath, srcDir, ... }: ''--path:"${outPath}/${srcDir}"''))
];
nimPackages = prev.nimPackages.overrideScope' nimOverlay;
nim2Packages = prev.nim2Packages.overrideScope' nimOverlay;
inherit (final.nim2Packages) nix_actor;
noise-c = final.callPackage ./packages/noise-c { };
preserves-tools = final.callPackage ./packages/preserves-tools { };
python3Packages = prev.python3Packages.overrideScope (final': prev': {
preserves = final'.callPackage ./packages/preserves-py { };
syndicate-py = final'.callPackage ./packages/syndicate-py { };
synit-daemons = final'.callPackage ./packages/synit-daemons-py { };
});
sqlite_actor = final.nim2Packages.callPackage ./packages/sqlite_actor { };
squeak = final.callPackage ./packages/squeak { };
squeaker = final.python3Packages.callPackage ./packages/squeaker { };
syndicate-server =
final.callPackage ./packages/syndicate-server { rust = rust'; };
synit-pid1 = final.callPackage ./packages/synit-pid1 { };
xapian_actor = final.nim2Packages.callPackage ./packages/xapian_actor { };
}