2021-09-02 10:16:35 +00:00
|
|
|
{
|
2021-09-03 08:57:05 +00:00
|
|
|
description = "Syndicate utilities";
|
2021-09-02 10:16:35 +00:00
|
|
|
|
2023-05-15 21:35:09 +00:00
|
|
|
inputs = {
|
2023-06-01 09:30:37 +00:00
|
|
|
nixpkgs.url = "github:NixOS/nixpkgs/release-23.05";
|
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-09-14 20:24:11 +00:00
|
|
|
outputs = { self, nixpkgs, rust }:
|
|
|
|
let inherit (self) lib;
|
|
|
|
in {
|
|
|
|
lib = nixpkgs.lib.extend (import ./lib.nix);
|
2022-03-14 19:12:50 +00:00
|
|
|
|
2022-09-14 20:24:11 +00:00
|
|
|
overlays.default = final: prev:
|
|
|
|
let rust' = (prev.extend rust.overlay).rust-bin.nightly.latest.default;
|
|
|
|
in {
|
|
|
|
lib = prev.lib.extend (import ./lib.nix);
|
2022-03-14 19:12:50 +00:00
|
|
|
|
2022-09-14 20:24:11 +00:00
|
|
|
acpi_actor = final.nimPackages.callPackage ./packages/acpi_actor { };
|
2023-05-07 08:18:13 +00:00
|
|
|
|
2022-09-14 20:24:11 +00:00
|
|
|
fontconfig_actor =
|
|
|
|
final.nimPackages.callPackage ./packages/fontconfig_actor { };
|
2023-04-05 20:13:17 +00:00
|
|
|
|
2022-09-14 20:24:11 +00:00
|
|
|
libnotify_actor =
|
|
|
|
final.nimPackages.callPackage ./packages/libnotify_actor { };
|
2023-04-05 20:10:44 +00:00
|
|
|
|
2022-09-14 20:24:11 +00:00
|
|
|
nimPackages = prev.nimPackages.overrideScope' (final': prev': {
|
|
|
|
noiseprotocol = final'.callPackage ./packages/nim/noiseprotocol { };
|
|
|
|
preserves = final'.callPackage ./packages/preserves-nim { };
|
|
|
|
syndicate = final'.callPackage ./packages/syndicate-nim { };
|
|
|
|
syndicate_utils =
|
|
|
|
final'.callPackage ./packages/syndicate_utils-nim { };
|
|
|
|
xdg_open_ng = final'.callPackage ./packages/xdg_open_ng { };
|
|
|
|
});
|
2021-09-02 10:16:35 +00:00
|
|
|
|
2022-09-14 20:24:11 +00:00
|
|
|
nix_actor = final.nimPackages.callPackage ./packages/nix_actor { };
|
2023-05-30 12:42:29 +00:00
|
|
|
|
2022-09-14 20:24:11 +00:00
|
|
|
noise-c = final.callPackage ./packages/noise-c { };
|
2023-05-09 11:00:56 +00:00
|
|
|
|
2022-09-14 20:24:11 +00:00
|
|
|
python3Packages = prev.python3Packages.overrideScope (final': prev': {
|
|
|
|
preserves = final'.callPackage ./packages/preserves-py { };
|
|
|
|
syndicate = final'.callPackage ./packages/syndicate-py { };
|
|
|
|
synit-daemons = final'.callPackage ./packages/synit-daemons { };
|
|
|
|
});
|
2022-03-14 19:13:50 +00:00
|
|
|
|
2022-09-14 20:24:11 +00:00
|
|
|
preserves-tools =
|
|
|
|
final.callPackage ./packages/preserves-tools { rust = rust'; };
|
2022-03-25 14:34:50 +00:00
|
|
|
|
2022-09-14 20:24:11 +00:00
|
|
|
sqlite_actor =
|
|
|
|
final.nimPackages.callPackage ./packages/sqlite_actor { };
|
2023-05-27 22:15:14 +00:00
|
|
|
|
2022-09-14 20:24:11 +00:00
|
|
|
squeak = final.callPackage ./packages/squeak { };
|
|
|
|
squeaker = final.python3Packages.callPackage ./packages/squeaker { };
|
2022-03-25 14:34:50 +00:00
|
|
|
|
2022-09-14 20:24:11 +00:00
|
|
|
syndicate-server =
|
|
|
|
final.callPackage ./packages/syndicate-server { rust = rust'; };
|
2022-09-14 02:11:34 +00:00
|
|
|
|
2022-09-14 20:24:11 +00:00
|
|
|
synit-pid1 =
|
|
|
|
final.callPackage ./packages/synit-pid1 { rust = rust'; };
|
2023-06-17 09:47:20 +00:00
|
|
|
|
2022-09-14 20:24:11 +00:00
|
|
|
xapian_actor =
|
|
|
|
final.nimPackages.callPackage ./packages/xapian_actor { };
|
|
|
|
};
|
2022-03-14 19:12:50 +00:00
|
|
|
|
2022-09-14 20:24:11 +00:00
|
|
|
legacyPackages =
|
|
|
|
lib.pipe { inherit (nixpkgs.legacyPackages) x86_64-linux; } [
|
|
|
|
(self.lib.mapAttrs (system: pkgs: pkgs.extend self.overlays.default))
|
|
|
|
];
|
|
|
|
|
|
|
|
packages = lib.pipe self.legacyPackages [
|
|
|
|
(self.lib.mapAttrs (system: pkgs:
|
|
|
|
with pkgs; {
|
|
|
|
inherit fontconfig_actor libnotify_actor noise-c preserves-tools
|
|
|
|
squeak squeaker syndicate-server;
|
|
|
|
inherit (nimPackages) syndicate_utils xdg_open_ng;
|
|
|
|
preserves-nim = nimPackages.preserves;
|
|
|
|
preserves-py = python3Packages.preserves;
|
|
|
|
syndicate-nim = nimPackages.syndicate;
|
|
|
|
syndicate-py = python3Packages.syndicate;
|
|
|
|
}))
|
|
|
|
];
|
|
|
|
|
|
|
|
nixosModules = {
|
|
|
|
default = self.nixosModules.syndicate-server;
|
|
|
|
|
|
|
|
syndicate-server =
|
|
|
|
# A little hack to apply our overlay to this module only.
|
|
|
|
{ config, lib, pkgs, ... }:
|
|
|
|
(import ./nixos/syndicate-server.nix) {
|
|
|
|
inherit config lib;
|
|
|
|
pkgs = pkgs.extend self.overlays.default;
|
|
|
|
};
|
|
|
|
|
2023-06-20 13:36:01 +00:00
|
|
|
synit = import ./nixos/modules/synit;
|
2022-03-14 19:12:50 +00:00
|
|
|
|
|
|
|
};
|
|
|
|
|
2022-09-14 20:24:11 +00:00
|
|
|
devShells = self.lib.mapAttrs (system: pkgs:
|
|
|
|
with pkgs; {
|
|
|
|
default =
|
|
|
|
mkShell { packages = builtins.attrValues self.packages.${system}; };
|
|
|
|
}) self.legacyPackages;
|
|
|
|
|
|
|
|
checks = lib.pipe { inherit (self.legacyPackages) x86_64-linux; } [
|
|
|
|
(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")
|
|
|
|
'';
|
2023-05-24 07:24:33 +00:00
|
|
|
};
|
2022-09-14 20:24:11 +00:00
|
|
|
|
|
|
|
synit = simpleTest {
|
|
|
|
name = "synit";
|
2023-06-27 12:12:59 +00:00
|
|
|
nodes.machine = { config, lib, utils, ... }: {
|
2022-09-14 20:24:11 +00:00
|
|
|
imports = [ self.nixosModules.synit ];
|
2023-06-27 12:12:59 +00:00
|
|
|
boot.initrd.verbose = true;
|
2023-07-01 13:42:59 +00:00
|
|
|
boot.initrd.kernelModules =
|
|
|
|
[ "virtio_blk" "ext4" "9p" "9pnet_virtio" "overlay" ];
|
2023-06-27 12:12:59 +00:00
|
|
|
environment.etc."syndicate/services/test-gateway.pr".text = ''
|
|
|
|
<require-service <relay-listener <tcp "192.168.1.1" 9001> $gatekeeper>>
|
|
|
|
<bind <ref { oid: "syndicate" key: #x"" }> $config #f>
|
|
|
|
'';
|
2022-09-14 20:24:11 +00:00
|
|
|
nixpkgs.pkgs = pkgs';
|
2023-06-27 12:12:59 +00:00
|
|
|
synit.logProgram = "${pkgs.busybox}/bin/cat";
|
2022-09-14 20:24:11 +00:00
|
|
|
};
|
|
|
|
testScript = ''
|
|
|
|
start_all()
|
2023-06-27 12:12:59 +00:00
|
|
|
machine.wait_for_open_port(9001)
|
2022-09-14 20:24:11 +00:00
|
|
|
'';
|
|
|
|
};
|
|
|
|
|
|
|
|
}))
|
|
|
|
];
|
|
|
|
};
|
2021-09-02 10:16:35 +00:00
|
|
|
}
|