syndicate-flake/flake.nix

152 lines
5.1 KiB
Nix
Raw Normal View History

2021-09-02 10:16:35 +00:00
{
description = "Syndicate utilities";
2021-09-02 10:16:35 +00:00
2023-05-15 21:35:09 +00:00
inputs = {
nixpkgs.url = "github:ehmry/nixpkgs/nim";
2023-05-15 21:35:09 +00:00
rust = {
url = "github:oxalica/rust-overlay";
inputs.nixpkgs.follows = "nixpkgs";
};
2022-09-06 16:18:29 +00:00
};
2021-09-02 10:16:35 +00:00
2022-03-14 19:12:50 +00:00
outputs = { self, nixpkgs, rust }: {
lib = nixpkgs.lib.extend (import ./lib.nix);
overlays.default = final: prev:
2023-08-10 10:46:11 +00:00
let
rust' = (prev.extend rust.overlay).rust-bin.nightly.latest.default;
2023-04-05 20:10:44 +00:00
2023-08-10 10:46:11 +00:00
nimOverlay = final': prev': {
noiseprotocol = final'.callPackage ./packages/nim/noiseprotocol { };
preserves = prev'.preserves.overrideAttrs (finalAttrs: prevAttrs: {
pname = "preserves";
version = "20230806";
src = final.fetchFromGitea {
domain = "git.syndicate-lang.org";
owner = "ehmry";
repo = "preserves-nim";
rev = finalAttrs.version;
hash = "sha256-kSIGqdcbrrdDiD7AbH0jOuqxywqbS7htBRBdJc1RO3U=";
};
nimFlags = [ "--path:${final'.nim.passthru.nim}/nim" ];
});
syndicate = prev'.syndicate.overrideAttrs (finalAttrs: prevAttrs: {
version = "20230816";
src = final.fetchFromGitea {
domain = "git.syndicate-lang.org";
owner = "ehmry";
repo = "${finalAttrs.pname}-nim";
rev = finalAttrs.version;
hash = "sha256-0zZngM2OFicDNisZVAKMS1yOfgf3huL21uA4AU1lWMg=";
};
nimFlags = [ ];
});
2023-05-02 12:57:27 +00:00
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;
2023-08-10 10:46:11 +00:00
};
in {
inherit (self) lib;
acpi_actor = final.nim2Packages.callPackage ./packages/acpi_actor { };
fontconfig_actor =
final.nim2Packages.callPackage ./packages/fontconfig_actor { };
libnotify_actor =
final.nim2Packages.callPackage ./packages/libnotify_actor { };
nimPackages = prev.nimPackages.overrideScope' nimOverlay;
nim2Packages = prev.nim2Packages.overrideScope' nimOverlay;
2021-09-02 10:16:35 +00:00
2023-08-10 10:46:11 +00:00
nix_actor = final.nim2Packages.callPackage ./packages/nix_actor { };
2023-05-30 12:42:29 +00:00
2023-05-09 11:00:56 +00:00
noise-c = final.callPackage ./packages/noise-c { };
python3Packages = prev.python3Packages.overrideScope (final': prev': {
preserves = final'.callPackage ./packages/preserves-py { };
syndicate = final'.callPackage ./packages/syndicate-py { };
});
2022-03-14 19:13:50 +00:00
2023-05-02 12:57:27 +00:00
preserves-tools =
final.callPackage ./packages/preserves-tools { rust = rust'; };
2022-03-25 14:34:50 +00:00
2023-05-27 22:15:14 +00:00
sqlite_actor =
2023-08-10 10:46:11 +00:00
final.nim2Packages.callPackage ./packages/sqlite_actor { };
2023-05-27 22:15:14 +00:00
2023-05-02 12:57:27 +00:00
squeak = final.callPackage ./packages/squeak { };
squeaker = final.python3Packages.callPackage ./packages/squeaker { };
2022-03-25 14:34:50 +00:00
2022-03-14 19:12:50 +00:00
syndicate-server =
2023-05-02 12:57:27 +00:00
final.callPackage ./packages/syndicate-server { rust = rust'; };
synit-pid1 = final.callPackage ./packages/synit-pid1 { rust = rust'; };
2023-06-17 09:47:20 +00:00
xapian_actor =
2023-08-10 10:46:11 +00:00
final.nim2Packages.callPackage ./packages/xapian_actor { };
2022-03-14 19:12:50 +00:00
};
legacyPackages =
self.lib.mapAttrs (system: pkgs: pkgs.extend self.overlays.default) {
inherit (nixpkgs.legacyPackages) x86_64-linux;
};
2022-03-14 19:12:50 +00:00
packages = self.lib.mapAttrs (system: pkgs:
with pkgs; {
2023-05-09 11:00:56 +00:00
inherit fontconfig_actor libnotify_actor noise-c preserves-tools squeak
squeaker syndicate-server;
2023-08-10 10:46:11 +00:00
inherit (nim2Packages) syndicate_utils xdg_open_ng;
preserves-nim = nim2Packages.preserves;
2022-03-14 19:13:50 +00:00
preserves-py = python3Packages.preserves;
2023-08-10 10:46:11 +00:00
syndicate-nim = nim2Packages.syndicate;
2022-03-14 19:13:50 +00:00
syndicate-py = python3Packages.syndicate;
2022-03-14 19:12:50 +00:00
}) self.legacyPackages;
nixosModules.default = self.nixosModules.syndicate-server;
2022-03-14 19:12:50 +00:00
nixosModules.syndicate-server =
# A little hack to apply our overlay to this module only.
{ config, lib, pkgs, ... }:
(import ./nixos/syndicate-server.nix) {
2022-03-14 19:12:50 +00:00
inherit config lib;
pkgs = pkgs.extend self.overlays.default;
};
devShells = self.lib.mapAttrs (system: pkgs:
with pkgs; {
default =
mkShell { packages = builtins.attrValues self.packages.${system}; };
}) self.legacyPackages;
2022-06-29 13:48:45 +00:00
checks = self.lib.mapAttrs (system: pkgs':
with import (nixpkgs + "/nixos/lib/testing-python.nix") {
inherit system;
pkgs = pkgs';
}; {
simple = simpleTest {
name = "http";
nodes.machine = { config, pkgs, ... }: {
imports = [ self.nixosModules.syndicate-server ];
nixpkgs.pkgs = pkgs';
services.syndicate.tty1 = {
enable = true;
user = "loser";
config = [ ];
};
users.users.loser.isNormalUser = true;
};
testScript = ''
machine.wait_for_job("syndicate-tty1")
'';
};
2022-06-29 13:48:45 +00:00
}) { inherit (self.legacyPackages) x86_64-linux; };
2022-03-14 19:12:50 +00:00
};
2021-09-02 10:16:35 +00:00
}