Merge pull request #55 from privatevoid-net/updates-20230108
Updates 20230108
This commit is contained in:
commit
e571a017bb
22 changed files with 423 additions and 392 deletions
|
@ -3,7 +3,6 @@
|
|||
let
|
||||
mapAgents = lib.flip lib.mapAttrs config.services.hercules-ci-agents;
|
||||
|
||||
#lib.foldl' (a: b: a // b) {} (lib.attrValues (lib.mapAttrs (basename: basevalue: lib.mapAttrs' (n: v: lib.nameValuePair "${n}-${basename}" v) basevalue) x));
|
||||
mergeMap = f: let
|
||||
outputs = mapAgents f;
|
||||
in lib.pipe outputs [
|
||||
|
@ -38,12 +37,6 @@ in
|
|||
group = "hci-${name}";
|
||||
};
|
||||
});
|
||||
services.hercules-ci-agents.private-void = {
|
||||
settings = {
|
||||
clusterJoinTokenPath = config.age.secrets.hci-token-private-void.path;
|
||||
binaryCachesPath = config.age.secrets.hci-cache-config-private-void.path;
|
||||
};
|
||||
};
|
||||
systemd.services = mergeMap (name: _: {
|
||||
hercules-ci-agent = {
|
||||
# hercules-ci-agent-restarter should take care of this
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
{ config, inputs, pkgs, ... }:
|
||||
{ config, lib, inputs, pkgs, ... }:
|
||||
|
||||
{
|
||||
services.hercules-ci-agents.max = {
|
||||
package = lib.mkForce inputs.self.packages.${pkgs.system}.hercules-ci-agent;
|
||||
settings = {
|
||||
clusterJoinTokenPath = config.age.secrets.hci-token-max.path;
|
||||
binaryCachesPath = config.age.secrets.hci-cache-config-max.path;
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
{ config, inputs, pkgs, ... }:
|
||||
{ config, lib, inputs, pkgs, ... }:
|
||||
|
||||
{
|
||||
services.hercules-ci-agents.nixpak = {
|
||||
package = lib.mkForce inputs.self.packages.${pkgs.system}.hercules-ci-agent;
|
||||
settings = {
|
||||
clusterJoinTokenPath = config.age.secrets.hci-token-nixpak.path;
|
||||
binaryCachesPath = config.age.secrets.hci-cache-config-nixpak.path;
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
{ config, inputs, pkgs, ... }:
|
||||
{ config, lib, inputs, pkgs, ... }:
|
||||
|
||||
{
|
||||
services.hercules-ci-agents.private-void = {
|
||||
package = lib.mkForce inputs.self.packages.${pkgs.system}.hercules-ci-agent;
|
||||
settings = {
|
||||
clusterJoinTokenPath = config.age.secrets.hci-token-private-void.path;
|
||||
binaryCachesPath = config.age.secrets.hci-cache-config-private-void.path;
|
||||
|
|
66
flake.lock
66
flake.lock
|
@ -121,19 +121,17 @@
|
|||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"poetry2nix": [
|
||||
"poetry2nix"
|
||||
],
|
||||
"poetry2nix": "poetry2nix",
|
||||
"pre-commit-hooks": [
|
||||
"blank"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1672407173,
|
||||
"narHash": "sha256-lmUyHBOtD2XuXqthfXOo5ofv4+tRJV9LF0W8Urn3e6o=",
|
||||
"lastModified": 1672661134,
|
||||
"narHash": "sha256-WqBUyKeiv+jI11ug+qP0OnZ4nngK6eBRVTGHgdzEGvc=",
|
||||
"owner": "nix-community",
|
||||
"repo": "dream2nix",
|
||||
"rev": "7ca3383c2ca2b49b5a0990fc898e4f2fa7848e62",
|
||||
"rev": "9f6911c78dcb0832f7fcc955e847db1a5a9ce29a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -349,11 +347,11 @@
|
|||
},
|
||||
"locked": {
|
||||
"host": "git.privatevoid.net",
|
||||
"lastModified": 1671896375,
|
||||
"narHash": "sha256-TmPI8DOUy+CBnMo6j7ZZ3LT42eo6l3DvqunpLkiW4Is=",
|
||||
"lastModified": 1673041460,
|
||||
"narHash": "sha256-D1KJzWwgXD6/fh8DSFbLD3v4BSOPOSvjZIjvmC7u2bs=",
|
||||
"owner": "max",
|
||||
"repo": "nix-super",
|
||||
"rev": "8cc8551afdf9197dc13c0252c4bc07cab8af88e1",
|
||||
"rev": "1c35324a97a725fe261643ca4dee2128f3af79a6",
|
||||
"type": "gitlab"
|
||||
},
|
||||
"original": {
|
||||
|
@ -363,39 +361,13 @@
|
|||
"type": "gitlab"
|
||||
}
|
||||
},
|
||||
"nixos-command": {
|
||||
"inputs": {
|
||||
"flake-utils": [
|
||||
"repin-flake-utils"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"poetry2nix": [
|
||||
"poetry2nix"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1662057103,
|
||||
"narHash": "sha256-8czeYcJPbKFcX/F/GuBjgIOXzqNwqr0iOjY5mImgSaM=",
|
||||
"owner": "max-privatevoid",
|
||||
"repo": "nixos-command",
|
||||
"rev": "9d1015b4d366fab6ae46f830e1699a7b9b5dea18",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "max-privatevoid",
|
||||
"repo": "nixos-command",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1672437037,
|
||||
"narHash": "sha256-mVMu/vwx0/bLHD7J7xlItIJpauoMi4V5s26Kh/UzX+s=",
|
||||
"lastModified": 1673163619,
|
||||
"narHash": "sha256-B33PFBL64ZgTWgMnhFL3jgheAN/DjHPsZ1Ih3z0VE5I=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "9af32915445545bf1710d419c0a7918da6acb869",
|
||||
"rev": "8c54d842d9544361aac5f5b212ba04e4089e8efe",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -406,24 +378,18 @@
|
|||
}
|
||||
},
|
||||
"poetry2nix": {
|
||||
"inputs": {
|
||||
"flake-utils": [
|
||||
"repin-flake-utils"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1671550109,
|
||||
"narHash": "sha256-4Iixlro1t75ze8TqXvfz0HTZ9TOBav3vMTuwuYqsxRE=",
|
||||
"lastModified": 1666918719,
|
||||
"narHash": "sha256-BkK42fjAku+2WgCOv2/1NrPa754eQPV7gPBmoKQBWlc=",
|
||||
"owner": "nix-community",
|
||||
"repo": "poetry2nix",
|
||||
"rev": "f18984f99c67654a1f9fbde463c88a319a2c843e",
|
||||
"rev": "289efb187123656a116b915206e66852f038720e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"ref": "1.36.0",
|
||||
"repo": "poetry2nix",
|
||||
"type": "github"
|
||||
}
|
||||
|
@ -480,9 +446,7 @@
|
|||
"nar-serve": "nar-serve",
|
||||
"nix-filter": "nix-filter",
|
||||
"nix-super": "nix-super",
|
||||
"nixos-command": "nixos-command",
|
||||
"nixpkgs": "nixpkgs",
|
||||
"poetry2nix": "poetry2nix",
|
||||
"repin-flake-utils": "repin-flake-utils"
|
||||
}
|
||||
}
|
||||
|
|
18
flake.nix
18
flake.nix
|
@ -139,7 +139,6 @@
|
|||
gomod2nix.follows = "blank";
|
||||
mach-nix.follows = "blank";
|
||||
nix-pypi-fetcher.follows = "blank";
|
||||
poetry2nix.follows = "poetry2nix";
|
||||
pre-commit-hooks.follows = "blank";
|
||||
};
|
||||
};
|
||||
|
@ -190,23 +189,6 @@
|
|||
|
||||
blank.url = "github:divnix/blank";
|
||||
|
||||
poetry2nix = {
|
||||
url = "github:nix-community/poetry2nix";
|
||||
inputs = {
|
||||
nixpkgs.follows = "nixpkgs";
|
||||
flake-utils.follows = "repin-flake-utils";
|
||||
};
|
||||
};
|
||||
|
||||
nixos-command = {
|
||||
url = "github:max-privatevoid/nixos-command";
|
||||
inputs = {
|
||||
flake-utils.follows = "repin-flake-utils";
|
||||
nixpkgs.follows = "nixpkgs";
|
||||
poetry2nix.follows = "poetry2nix";
|
||||
};
|
||||
};
|
||||
|
||||
drv-parts = {
|
||||
url = "github:DavHau/drv-parts";
|
||||
inputs = {
|
||||
|
|
|
@ -1,9 +1,6 @@
|
|||
{ inputs, pkgs, ... }:
|
||||
|
||||
{
|
||||
environment.systemPackages = [
|
||||
inputs.nixos-command.packages.${pkgs.system}.nixos-command
|
||||
];
|
||||
systemd.targets.maintenance = {
|
||||
unitConfig.AllowIsolate = true;
|
||||
wants = [
|
||||
|
|
|
@ -1,17 +1,18 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./options.nix
|
||||
|
||||
./drv-parts
|
||||
];
|
||||
perSystem = { pkgs, ... }: {
|
||||
imports = [
|
||||
./options.nix
|
||||
];
|
||||
|
||||
builders = rec {
|
||||
fetchAsset = pkgs.callPackage ./fetch-asset { };
|
||||
builders = rec {
|
||||
fetchAsset = pkgs.callPackage ./fetch-asset { };
|
||||
|
||||
hydrateAssetDirectory = pkgs.callPackage ./hydrate-asset-directory {
|
||||
inherit fetchAsset;
|
||||
hydrateAssetDirectory = pkgs.callPackage ./hydrate-asset-directory {
|
||||
inherit fetchAsset;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,11 +1,12 @@
|
|||
{ config, inputs, ... }:
|
||||
|
||||
{ inputs, ... }:
|
||||
{
|
||||
imports = [
|
||||
./backends
|
||||
./dependency-sets
|
||||
];
|
||||
_module.args = {
|
||||
drv-backends = inputs.drv-parts.drv-backends // config.drv-backends;
|
||||
perSystem = { config, ... }: {
|
||||
imports = [
|
||||
./backends
|
||||
./dependency-sets
|
||||
];
|
||||
_module.args = {
|
||||
drv-backends = inputs.drv-parts.drv-backends // config.drv-backends;
|
||||
};
|
||||
};
|
||||
}
|
||||
}
|
|
@ -1,15 +1,18 @@
|
|||
{ filters, pkgs, self, self', ... }:
|
||||
{
|
||||
checks = filters.doFilter filters.checks {
|
||||
keycloak = pkgs.callPackage ./keycloak-custom-jre.nix {
|
||||
jre = self'.packages.jre17_standard;
|
||||
};
|
||||
{ self, ... }:
|
||||
|
||||
patroni = pkgs.callPackage ./patroni.nix {
|
||||
patroniModule = self.nixosModules.patroni;
|
||||
};
|
||||
tempo = pkgs.callPackage ./tempo.nix {
|
||||
inherit (self'.packages) tempo;
|
||||
{
|
||||
perSystem = { filters, pkgs, self', ... }: {
|
||||
checks = filters.doFilter filters.checks {
|
||||
keycloak = pkgs.callPackage ./keycloak-custom-jre.nix {
|
||||
jre = self'.packages.jre17_standard;
|
||||
};
|
||||
|
||||
patroni = pkgs.callPackage ./patroni.nix {
|
||||
patroniModule = self.nixosModules.patroni;
|
||||
};
|
||||
tempo = pkgs.callPackage ./tempo.nix {
|
||||
inherit (self'.packages) tempo;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,67 +1,70 @@
|
|||
{ lib, config, inputs', system, ... }:
|
||||
with lib;
|
||||
let
|
||||
inherit (inputs'.devshell.legacyPackages) mkShell;
|
||||
{ lib, ... }:
|
||||
|
||||
wrapInAttrs = value: if builtins.isAttrs value then value else { inherit value; };
|
||||
{
|
||||
perSystem = { config, inputs', system, ... }:
|
||||
with lib;
|
||||
let
|
||||
inherit (inputs'.devshell.legacyPackages) mkShell;
|
||||
|
||||
wrapPackage = package: { inherit package; };
|
||||
wrapInAttrs = value: if builtins.isAttrs value then value else { inherit value; };
|
||||
|
||||
injectAttrName = name: value: { inherit name; } // wrapInAttrs value;
|
||||
wrapPackage = package: { inherit package; };
|
||||
|
||||
mkNamedAttrs = builtins.mapAttrs injectAttrName;
|
||||
injectAttrName = name: value: { inherit name; } // wrapInAttrs value;
|
||||
|
||||
attrsToNamedList = attrs: builtins.attrValues (mkNamedAttrs attrs);
|
||||
mkNamedAttrs = builtins.mapAttrs injectAttrName;
|
||||
|
||||
mkProjectShell =
|
||||
{
|
||||
packages ? [],
|
||||
tools ? [],
|
||||
commands ? {},
|
||||
env ? {},
|
||||
config ? {}
|
||||
}:
|
||||
mkShell {
|
||||
imports = [
|
||||
config
|
||||
{
|
||||
commands = map wrapPackage tools;
|
||||
}
|
||||
{
|
||||
inherit packages;
|
||||
commands = attrsToNamedList commands;
|
||||
env = attrsToNamedList env;
|
||||
}
|
||||
];
|
||||
attrsToNamedList = attrs: builtins.attrValues (mkNamedAttrs attrs);
|
||||
|
||||
mkProjectShell =
|
||||
{
|
||||
packages ? [],
|
||||
tools ? [],
|
||||
commands ? {},
|
||||
env ? {},
|
||||
config ? {}
|
||||
}:
|
||||
mkShell {
|
||||
imports = [
|
||||
config
|
||||
{
|
||||
commands = map wrapPackage tools;
|
||||
}
|
||||
{
|
||||
inherit packages;
|
||||
commands = attrsToNamedList commands;
|
||||
env = attrsToNamedList env;
|
||||
}
|
||||
];
|
||||
};
|
||||
in {
|
||||
options.projectShells = mkOption {
|
||||
default = {};
|
||||
type = types.attrsOf (types.submodule {
|
||||
options = {
|
||||
packages = mkOption {
|
||||
default = [];
|
||||
type = types.listOf types.package;
|
||||
};
|
||||
tools = mkOption {
|
||||
default = [];
|
||||
type = types.listOf types.package;
|
||||
};
|
||||
commands = mkOption {
|
||||
default = {};
|
||||
type = types.attrsOf types.attrs;
|
||||
};
|
||||
env = mkOption {
|
||||
default = {};
|
||||
type = with types; attrsOf (oneOf [ attrs str ] );
|
||||
};
|
||||
config = mkOption {
|
||||
default = {};
|
||||
type = types.anything;
|
||||
};
|
||||
};
|
||||
});
|
||||
};
|
||||
config.devShells = lib.mkIf (system == "x86_64-linux") (mapAttrs (_: mkProjectShell) config.projectShells);
|
||||
};
|
||||
in {
|
||||
options.projectShells = mkOption {
|
||||
default = {};
|
||||
type = types.attrsOf (types.submodule {
|
||||
options = {
|
||||
packages = mkOption {
|
||||
default = [];
|
||||
type = types.listOf types.package;
|
||||
};
|
||||
tools = mkOption {
|
||||
default = [];
|
||||
type = types.listOf types.package;
|
||||
};
|
||||
commands = mkOption {
|
||||
default = {};
|
||||
type = types.attrsOf types.attrs;
|
||||
};
|
||||
env = mkOption {
|
||||
default = {};
|
||||
type = with types; attrsOf (oneOf [ attrs str ] );
|
||||
};
|
||||
config = mkOption {
|
||||
default = {};
|
||||
type = types.anything;
|
||||
};
|
||||
};
|
||||
});
|
||||
};
|
||||
config.devShells = lib.mkIf (system == "x86_64-linux") (mapAttrs (_: mkProjectShell) config.projectShells);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,40 +1,42 @@
|
|||
{ inputs, lib, pkgs, ... }:
|
||||
{ lib, inputs, ... }:
|
||||
|
||||
{
|
||||
projectShells.hyprspace = {
|
||||
tools = [
|
||||
pkgs.go_1_18
|
||||
];
|
||||
env.GOPATH.eval = "$REPO_DATA_DIR/go";
|
||||
};
|
||||
packages.hyprspace = with pkgs; buildGo118Module {
|
||||
pname = "hyprspace";
|
||||
version = "0.3.2";
|
||||
|
||||
src = with inputs.nix-filter.lib; let
|
||||
dirs = map inDirectory;
|
||||
in filter {
|
||||
root = ./.;
|
||||
include = [
|
||||
"go.mod"
|
||||
"go.sum"
|
||||
(matchExt "go")
|
||||
] ++ (dirs [
|
||||
"cli"
|
||||
"config"
|
||||
"p2p"
|
||||
"tun"
|
||||
]);
|
||||
perSystem = { pkgs, ... }: {
|
||||
projectShells.hyprspace = {
|
||||
tools = [
|
||||
pkgs.go_1_18
|
||||
];
|
||||
env.GOPATH.eval = "$REPO_DATA_DIR/go";
|
||||
};
|
||||
packages.hyprspace = with pkgs; buildGo118Module {
|
||||
pname = "hyprspace";
|
||||
version = "0.3.2";
|
||||
|
||||
vendorSha256 = "sha256-BiNWV/uNPnplwNfAvqf/Xc9ReFkLhHWVVeZrb/NI4bE=";
|
||||
src = with inputs.nix-filter.lib; let
|
||||
dirs = map inDirectory;
|
||||
in filter {
|
||||
root = ./.;
|
||||
include = [
|
||||
"go.mod"
|
||||
"go.sum"
|
||||
(matchExt "go")
|
||||
] ++ (dirs [
|
||||
"cli"
|
||||
"config"
|
||||
"p2p"
|
||||
"tun"
|
||||
]);
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "A Lightweight VPN Built on top of Libp2p for Truly Distributed Networks.";
|
||||
homepage = "https://github.com/hyprspace/hyprspace";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ yusdacra ];
|
||||
platforms = platforms.linux ++ platforms.darwin;
|
||||
vendorSha256 = "sha256-BiNWV/uNPnplwNfAvqf/Xc9ReFkLhHWVVeZrb/NI4bE=";
|
||||
|
||||
meta = with lib; {
|
||||
description = "A Lightweight VPN Built on top of Libp2p for Truly Distributed Networks.";
|
||||
homepage = "https://github.com/hyprspace/hyprspace";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ yusdacra ];
|
||||
platforms = platforms.linux ++ platforms.darwin;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,58 +1,59 @@
|
|||
{ inputs, lib, pkgs, ... }:
|
||||
|
||||
{ inputs, ... }:
|
||||
{
|
||||
projectShells.ipfs-cluster = {
|
||||
tools = [
|
||||
pkgs.go_1_19
|
||||
pkgs.gnumake
|
||||
pkgs.gcc
|
||||
];
|
||||
env.GOPATH.eval = "$REPO_DATA_DIR/go";
|
||||
};
|
||||
packages.ipfs-cluster = with pkgs; buildGo119Module {
|
||||
pname = "ipfs-cluster";
|
||||
version = "1.0.2";
|
||||
|
||||
src = with inputs.nix-filter.lib; filter {
|
||||
root = ./.;
|
||||
include = [
|
||||
"go.mod"
|
||||
"go.sum"
|
||||
(matchExt "go")
|
||||
] ++ (map inDirectory [
|
||||
"adder"
|
||||
"allocator"
|
||||
"api"
|
||||
"cmd"
|
||||
"cmdutils"
|
||||
"config"
|
||||
"consensus"
|
||||
"datastore"
|
||||
"docker"
|
||||
"informer"
|
||||
"ipfsconn"
|
||||
"monitor"
|
||||
"observations"
|
||||
"pintracker"
|
||||
"pstoremgr"
|
||||
"rpcutil"
|
||||
"sharness"
|
||||
"state"
|
||||
"test"
|
||||
"version"
|
||||
]);
|
||||
perSystem = { lib, pkgs, ... }: {
|
||||
projectShells.ipfs-cluster = {
|
||||
tools = [
|
||||
pkgs.go_1_19
|
||||
pkgs.gnumake
|
||||
pkgs.gcc
|
||||
];
|
||||
env.GOPATH.eval = "$REPO_DATA_DIR/go";
|
||||
};
|
||||
packages.ipfs-cluster = with pkgs; buildGo119Module {
|
||||
pname = "ipfs-cluster";
|
||||
version = "1.0.2";
|
||||
|
||||
vendorSha256 = "sha256-EpZQ7br+ChoAGIj0g6pdpWvFeOFOn2i+6YRBgtzoO+A=";
|
||||
src = with inputs.nix-filter.lib; filter {
|
||||
root = ./.;
|
||||
include = [
|
||||
"go.mod"
|
||||
"go.sum"
|
||||
(matchExt "go")
|
||||
] ++ (map inDirectory [
|
||||
"adder"
|
||||
"allocator"
|
||||
"api"
|
||||
"cmd"
|
||||
"cmdutils"
|
||||
"config"
|
||||
"consensus"
|
||||
"datastore"
|
||||
"docker"
|
||||
"informer"
|
||||
"ipfsconn"
|
||||
"monitor"
|
||||
"observations"
|
||||
"pintracker"
|
||||
"pstoremgr"
|
||||
"rpcutil"
|
||||
"sharness"
|
||||
"state"
|
||||
"test"
|
||||
"version"
|
||||
]);
|
||||
};
|
||||
|
||||
doCheck = false;
|
||||
vendorSha256 = "sha256-EpZQ7br+ChoAGIj0g6pdpWvFeOFOn2i+6YRBgtzoO+A=";
|
||||
|
||||
meta = with lib; {
|
||||
description = "Allocate, replicate, and track Pins across a cluster of IPFS daemons";
|
||||
homepage = "https://ipfscluster.io";
|
||||
license = licenses.mit;
|
||||
platforms = platforms.unix;
|
||||
maintainers = with maintainers; [ Luflosi jglukasik ];
|
||||
};
|
||||
doCheck = false;
|
||||
|
||||
meta = with lib; {
|
||||
description = "Allocate, replicate, and track Pins across a cluster of IPFS daemons";
|
||||
homepage = "https://ipfscluster.io";
|
||||
license = licenses.mit;
|
||||
platforms = platforms.unix;
|
||||
maintainers = with maintainers; [ Luflosi jglukasik ];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
perSystem = { filters, inputs', ... }:
|
||||
perSystem = { filters, inputs', lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
tools = import ./lib/tools.nix;
|
||||
|
@ -14,7 +14,19 @@
|
|||
|
||||
agenix = packages.agenix.agenix.override { nix = nix-super; };
|
||||
|
||||
hercules-ci-agent = packages.hercules-ci-agent.hercules-ci-agent;
|
||||
# hci-agent's build code does some funny shenanigans
|
||||
hercules-ci-agent = let
|
||||
original = packages.hercules-ci-agent.hercules-ci-agent;
|
||||
patchedNix = patch-rename-direct original.nix ({ version, ...}: "nix-${version}_hci1") "patches/extra/hercules-ci-agent/nix";
|
||||
in (original.override {
|
||||
# for hercules-ci-cnix-expr, hercules-ci-cnix-store
|
||||
nix = patchedNix;
|
||||
# for cachix
|
||||
pkgs = pkgs // { nix = patchedNix; };
|
||||
}).overrideAttrs (old: {
|
||||
# for hercules-ci-agent
|
||||
buildInputs = (lib.remove original.nix old.buildInputs) ++ [ patchedNix ];
|
||||
});
|
||||
|
||||
hci = packages.hercules-ci-agent.hercules-ci-cli;
|
||||
};
|
||||
|
|
|
@ -1,7 +0,0 @@
|
|||
final: prev: {
|
||||
py-multibase = prev.py-multibase.overridePythonAttrs (old: {
|
||||
nativeBuildInputs = (old.nativeBuildInputs or []) ++ [
|
||||
final.pytestrunner
|
||||
];
|
||||
});
|
||||
}
|
|
@ -1,6 +1,17 @@
|
|||
{ inputs, self, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./checks
|
||||
./modules/devshell.nix
|
||||
./build-support
|
||||
|
||||
./networking/hyprspace/project.nix
|
||||
./networking/ipfs-cluster/project.nix
|
||||
./servers/reflex-cache/project.nix
|
||||
./websites/landing/project.nix
|
||||
./websites/stop-using-nix-env/project.nix
|
||||
];
|
||||
perSystem = { filters, pkgs, self', ... }:
|
||||
let
|
||||
inherit (self'.packages) nix-super;
|
||||
|
@ -14,25 +25,8 @@
|
|||
overridesDirs = [ ./dream2nix-overrides ];
|
||||
};
|
||||
};
|
||||
poetry2nix = pkgs.poetry2nix.overrideScope' (final: prev: {
|
||||
defaultPoetryOverrides = prev.defaultPoetryOverrides.extend (import ./poetry2nix-overrides);
|
||||
});
|
||||
|
||||
in
|
||||
{
|
||||
_module.args = { inherit inputs self; };
|
||||
|
||||
imports = [
|
||||
./checks
|
||||
./modules/devshell.nix
|
||||
./build-support
|
||||
|
||||
./networking/hyprspace/project.nix
|
||||
./networking/ipfs-cluster/project.nix
|
||||
./servers/reflex-cache/project.nix
|
||||
./websites/landing/project.nix
|
||||
./websites/stop-using-nix-env/project.nix
|
||||
];
|
||||
packages = filters.doFilter filters.packages rec {
|
||||
cinny = pkgs.callPackage ./web-apps/cinny { inherit pins; };
|
||||
|
||||
|
|
|
@ -1,38 +1,40 @@
|
|||
{ config, drv-backends, inputs, lib, pkgs, ... }:
|
||||
{ inputs, ... }:
|
||||
|
||||
let
|
||||
deps = with config.dependencySets.python3Packages; [
|
||||
poetry-core
|
||||
requests-unixsocket
|
||||
py-multibase
|
||||
py-multiaddr
|
||||
];
|
||||
|
||||
pythonForDev = pkgs.python3.withPackages (lib.const deps);
|
||||
in
|
||||
{
|
||||
projectShells.reflex-cache = {
|
||||
tools = [
|
||||
pythonForDev
|
||||
perSystem = { config, drv-backends, lib, pkgs, ... }: let
|
||||
deps = with config.dependencySets.python3Packages; [
|
||||
poetry-core
|
||||
requests-unixsocket
|
||||
py-multibase
|
||||
py-multiaddr
|
||||
];
|
||||
env.PYTHON = pythonForDev.interpreter;
|
||||
commands.reflex.command = "${pythonForDev.interpreter} -m reflex_cache.main";
|
||||
};
|
||||
drvs.reflex-cache = { dependencySets, ... }: {
|
||||
imports = [
|
||||
drv-backends.buildPythonPackage
|
||||
];
|
||||
pyprojectToml = ./pyproject.toml;
|
||||
inherit (pkgs) stdenv;
|
||||
|
||||
propagatedBuildInputs = deps;
|
||||
|
||||
src = with inputs.nix-filter.lib; filter {
|
||||
root = ./.;
|
||||
include = [
|
||||
"pyproject.toml"
|
||||
(inDirectory "reflex_cache")
|
||||
pythonForDev = pkgs.python3.withPackages (lib.const deps);
|
||||
in
|
||||
{
|
||||
projectShells.reflex-cache = {
|
||||
tools = [
|
||||
pythonForDev
|
||||
];
|
||||
env.PYTHON = pythonForDev.interpreter;
|
||||
commands.reflex.command = "${pythonForDev.interpreter} -m reflex_cache.main";
|
||||
};
|
||||
drvs.reflex-cache = { dependencySets, ... }: {
|
||||
imports = [
|
||||
drv-backends.buildPythonPackage
|
||||
];
|
||||
pyprojectToml = ./pyproject.toml;
|
||||
inherit (pkgs) stdenv;
|
||||
|
||||
propagatedBuildInputs = deps;
|
||||
|
||||
src = with inputs.nix-filter.lib; filter {
|
||||
root = ./.;
|
||||
include = [
|
||||
"pyproject.toml"
|
||||
(inDirectory "reflex_cache")
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
}
|
|
@ -22,9 +22,9 @@
|
|||
"repo": "excalidraw"
|
||||
},
|
||||
"branch": "master",
|
||||
"revision": "5fcf6a48452b1805323b31e1a7773eec9193ff9c",
|
||||
"url": "https://github.com/excalidraw/excalidraw/archive/5fcf6a48452b1805323b31e1a7773eec9193ff9c.tar.gz",
|
||||
"hash": "1cbzkcxwyycz2nd7i0pj4w8a7jjx2l0q2kwv2dp5g6vpydlw18iw"
|
||||
"revision": "06b45e0cfc9bc93b3565acee2932d643169fb298",
|
||||
"url": "https://github.com/excalidraw/excalidraw/archive/06b45e0cfc9bc93b3565acee2932d643169fb298.tar.gz",
|
||||
"hash": "1xfh90kyxfvpy5vyym1g9rz62zz1zgawyq14rfcjpjrybvqzz18s"
|
||||
},
|
||||
"searxng": {
|
||||
"type": "Git",
|
||||
|
@ -34,9 +34,9 @@
|
|||
"repo": "searxng"
|
||||
},
|
||||
"branch": "master",
|
||||
"revision": "e8f72d705209bee09738ba050aeb75927d663c84",
|
||||
"url": "https://github.com/searxng/searxng/archive/e8f72d705209bee09738ba050aeb75927d663c84.tar.gz",
|
||||
"hash": "05rrwfd88h6n0xpy3idwvlnf7vsw96l5gyb6l2smkbs1rsyyr9nk"
|
||||
"revision": "54e63839db9f99611127c058c0989721b4d3d19b",
|
||||
"url": "https://github.com/searxng/searxng/archive/54e63839db9f99611127c058c0989721b4d3d19b.tar.gz",
|
||||
"hash": "1scmpvrl5a5smw96k14f817cz3n7lssq0i7v8wc3fdmn1fs5vgfm"
|
||||
},
|
||||
"stevenblack-hosts": {
|
||||
"type": "GitRelease",
|
||||
|
@ -47,10 +47,10 @@
|
|||
},
|
||||
"pre_releases": false,
|
||||
"version_upper_bound": null,
|
||||
"version": "3.11.45",
|
||||
"revision": "5ad27300a3c2dbd267b4593226b9c35680e2204f",
|
||||
"url": "https://api.github.com/repos/StevenBlack/hosts/tarball/3.11.45",
|
||||
"hash": "0rsflfp1wm8c7h8jpywvrh3gbqivzjjj7d9nakfjsa2ipvfg8clj"
|
||||
"version": "3.11.50",
|
||||
"revision": "0b190200ac4b0fdd788a9334bd6235eb53242b5c",
|
||||
"url": "https://api.github.com/repos/StevenBlack/hosts/tarball/3.11.50",
|
||||
"hash": "1vwc22bg88hbc2dvxhcpaz02md0fhr97vqbf2jwgrp565pnfcflc"
|
||||
},
|
||||
"tempo": {
|
||||
"type": "GitRelease",
|
||||
|
@ -75,10 +75,10 @@
|
|||
},
|
||||
"pre_releases": false,
|
||||
"version_upper_bound": null,
|
||||
"version": "1.19.2",
|
||||
"revision": "aec80b53d53454a103490f91ef469e975062a24c",
|
||||
"url": "https://api.github.com/repos/louislam/uptime-kuma/tarball/1.19.2",
|
||||
"hash": "1hhbh9a5w3ilrfmccwbjsc7qpadccc12l0aglh5acnq2gcxkfr69"
|
||||
"version": "1.19.3",
|
||||
"revision": "b8e8c1b9dbb1cd74f6a5ba02c49367ead506370c",
|
||||
"url": "https://api.github.com/repos/louislam/uptime-kuma/tarball/1.19.3",
|
||||
"hash": "19r1npkk73karlbb0vwbyfr31k2rl18ily7rwwvqqjazmgp0j32n"
|
||||
}
|
||||
},
|
||||
"version": 2
|
||||
|
|
|
@ -1,18 +1,27 @@
|
|||
{ lib, nixosTests, python3, python3Packages, npins, pins }:
|
||||
|
||||
with python3Packages;
|
||||
let
|
||||
pin = pins.searxng;
|
||||
repo = pin.repository;
|
||||
in with python3Packages;
|
||||
|
||||
toPythonModule (buildPythonApplication {
|
||||
toPythonModule (buildPythonApplication rec {
|
||||
pname = "searxng";
|
||||
version = "1.0.0pre_${builtins.substring 0 7 pins.searxng.revision}";
|
||||
version = "1.0.0pre_${builtins.substring 0 7 pin.revision}";
|
||||
|
||||
src = npins.mkSource pins.searxng;
|
||||
|
||||
postPatch = ''
|
||||
sed -i \
|
||||
-e 's/==.*$//' \
|
||||
-e 's/fasttext-wheel/fasttext/g' \
|
||||
-e 's/fasttext-predict/fasttext/g' \
|
||||
requirements.txt
|
||||
cat >searx/version_frozen.py <<EOF
|
||||
VERSION_STRING="${version}"
|
||||
VERSION_TAG="${pin.revision}"
|
||||
GIT_URL="https://github.com/${repo.owner}/${repo.repo}"
|
||||
GIT_BRANCH="${pin.branch}"
|
||||
EOF
|
||||
'';
|
||||
|
||||
preBuild = ''
|
||||
|
|
|
@ -1,54 +1,55 @@
|
|||
{ builders, lib, pkgs, self', ... }:
|
||||
let
|
||||
configFile = pkgs.writeText "hugo-config.json" (builtins.toJSON {
|
||||
title = "Private Void | Zero-maintenance perfection";
|
||||
baseURL = "https://www.privatevoid.net/";
|
||||
languageCode = "en-us";
|
||||
disableKinds = [
|
||||
"page"
|
||||
"RSS"
|
||||
"section"
|
||||
"sitemap"
|
||||
"taxonomy"
|
||||
"taxonomyTerm"
|
||||
];
|
||||
});
|
||||
hugoArgs = [
|
||||
"--config" configFile
|
||||
];
|
||||
hugoArgsStr = lib.concatStringsSep " " hugoArgs;
|
||||
in
|
||||
{
|
||||
projectShells.landing = {
|
||||
commands.hugo = {
|
||||
help = pkgs.hugo.meta.description;
|
||||
command = "exec ${pkgs.hugo}/bin/hugo ${hugoArgsStr} \"$@\"";
|
||||
};
|
||||
tools = with self'.packages; [
|
||||
dvc
|
||||
];
|
||||
};
|
||||
|
||||
packages.landing = with pkgs; let
|
||||
site = stdenvNoCC.mkDerivation rec {
|
||||
pname = "private-void-landing-page";
|
||||
version = "0.0.0";
|
||||
src = builders.hydrateAssetDirectory ./.;
|
||||
nativeBuildInputs = [
|
||||
hugo
|
||||
perSystem = { builders, lib, pkgs, self', ... }: let
|
||||
configFile = pkgs.writeText "hugo-config.json" (builtins.toJSON {
|
||||
title = "Private Void | Zero-maintenance perfection";
|
||||
baseURL = "https://www.privatevoid.net/";
|
||||
languageCode = "en-us";
|
||||
disableKinds = [
|
||||
"page"
|
||||
"RSS"
|
||||
"section"
|
||||
"sitemap"
|
||||
"taxonomy"
|
||||
"taxonomyTerm"
|
||||
];
|
||||
buildCommand = ''
|
||||
unpackPhase
|
||||
mkdir -p $out/share/www
|
||||
hugo ${hugoArgsStr} -s $sourceRoot -d $out/share/www/${pname}
|
||||
'';
|
||||
passthru = {
|
||||
webroot = "${site}/share/www/${site.pname}";
|
||||
serve = writeShellScriptBin "serve-site" ''
|
||||
command -v xdg-open >/dev/null && xdg-open http://127.0.0.1:1314 || true
|
||||
${darkhttpd}/bin/darkhttpd ${site.webroot} --addr 127.0.0.1 --port 1314
|
||||
'';
|
||||
});
|
||||
hugoArgs = [
|
||||
"--config" configFile
|
||||
];
|
||||
hugoArgsStr = lib.concatStringsSep " " hugoArgs;
|
||||
in
|
||||
{
|
||||
projectShells.landing = {
|
||||
commands.hugo = {
|
||||
help = pkgs.hugo.meta.description;
|
||||
command = "exec ${pkgs.hugo}/bin/hugo ${hugoArgsStr} \"$@\"";
|
||||
};
|
||||
tools = with self'.packages; [
|
||||
dvc
|
||||
];
|
||||
};
|
||||
in site;
|
||||
|
||||
packages.landing = with pkgs; let
|
||||
site = stdenvNoCC.mkDerivation rec {
|
||||
pname = "private-void-landing-page";
|
||||
version = "0.0.0";
|
||||
src = builders.hydrateAssetDirectory ./.;
|
||||
nativeBuildInputs = [
|
||||
hugo
|
||||
];
|
||||
buildCommand = ''
|
||||
unpackPhase
|
||||
mkdir -p $out/share/www
|
||||
hugo ${hugoArgsStr} -s $sourceRoot -d $out/share/www/${pname}
|
||||
'';
|
||||
passthru = {
|
||||
webroot = "${site}/share/www/${site.pname}";
|
||||
serve = writeShellScriptBin "serve-site" ''
|
||||
command -v xdg-open >/dev/null && xdg-open http://127.0.0.1:1314 || true
|
||||
${darkhttpd}/bin/darkhttpd ${site.webroot} --addr 127.0.0.1 --port 1314
|
||||
'';
|
||||
};
|
||||
};
|
||||
in site;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,19 +1,19 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
packages.stop-using-nix-env = let
|
||||
site = with pkgs; stdenvNoCC.mkDerivation rec {
|
||||
pname = "stop-using-nix-env";
|
||||
version = "1.2.0";
|
||||
src = ./src;
|
||||
buildCommand = ''
|
||||
install -Dm644 $src/* -t $out/share/www/${pname}
|
||||
substituteInPlace $out/share/www/${pname}/index.html \
|
||||
--replace '<!-- VERSION -->' 'Version ${version} |'
|
||||
'';
|
||||
passthru = {
|
||||
webroot = "${site}/share/www/${pname}";
|
||||
perSystem = { pkgs, ... }: {
|
||||
packages.stop-using-nix-env = let
|
||||
site = with pkgs; stdenvNoCC.mkDerivation rec {
|
||||
pname = "stop-using-nix-env";
|
||||
version = "1.2.0";
|
||||
src = ./src;
|
||||
buildCommand = ''
|
||||
install -Dm644 $src/* -t $out/share/www/${pname}
|
||||
substituteInPlace $out/share/www/${pname}/index.html \
|
||||
--replace '<!-- VERSION -->' 'Version ${version} |'
|
||||
'';
|
||||
passthru = {
|
||||
webroot = "${site}/share/www/${pname}";
|
||||
};
|
||||
};
|
||||
};
|
||||
in site;
|
||||
in site;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -0,0 +1,70 @@
|
|||
diff --git a/src/libstore/nar-info-disk-cache.cc b/src/libstore/nar-info-disk-cache.cc
|
||||
index f4ea739b05d..3e0689534b6 100644
|
||||
--- a/src/libstore/nar-info-disk-cache.cc
|
||||
+++ b/src/libstore/nar-info-disk-cache.cc
|
||||
@@ -166,16 +166,37 @@ class NarInfoDiskCacheImpl : public NarInfoDiskCache
|
||||
return i->second;
|
||||
}
|
||||
|
||||
+ std::optional<Cache> queryCacheRaw(State & state, const std::string & uri)
|
||||
+ {
|
||||
+ auto i = state.caches.find(uri);
|
||||
+ if (i == state.caches.end()) {
|
||||
+ auto queryCache(state.queryCache.use()(uri)(time(0) - cacheInfoTtl));
|
||||
+ if (!queryCache.next())
|
||||
+ return std::nullopt;
|
||||
+ state.caches.emplace(uri,
|
||||
+ Cache{(int) queryCache.getInt(0), queryCache.getStr(1), queryCache.getInt(2) != 0, (int) queryCache.getInt(3)});
|
||||
+ }
|
||||
+ return getCache(state, uri);
|
||||
+ }
|
||||
+
|
||||
void createCache(const std::string & uri, const Path & storeDir, bool wantMassQuery, int priority) override
|
||||
{
|
||||
retrySQLite<void>([&]() {
|
||||
auto state(_state.lock());
|
||||
+ SQLiteTxn txn(state->db);
|
||||
+
|
||||
+ // To avoid the race, we have to check if maybe someone hasn't yet created
|
||||
+ // the cache for this URI in the meantime.
|
||||
+ auto cache(queryCacheRaw(*state, uri));
|
||||
|
||||
- // FIXME: race
|
||||
+ if (cache)
|
||||
+ return;
|
||||
|
||||
state->insertCache.use()(uri)(time(0))(storeDir)(wantMassQuery)(priority).exec();
|
||||
assert(sqlite3_changes(state->db) == 1);
|
||||
state->caches[uri] = Cache{(int) sqlite3_last_insert_rowid(state->db), storeDir, wantMassQuery, priority};
|
||||
+
|
||||
+ txn.commit();
|
||||
});
|
||||
}
|
||||
|
||||
@@ -183,21 +204,12 @@ class NarInfoDiskCacheImpl : public NarInfoDiskCache
|
||||
{
|
||||
return retrySQLite<std::optional<CacheInfo>>([&]() -> std::optional<CacheInfo> {
|
||||
auto state(_state.lock());
|
||||
-
|
||||
- auto i = state->caches.find(uri);
|
||||
- if (i == state->caches.end()) {
|
||||
- auto queryCache(state->queryCache.use()(uri)(time(0) - cacheInfoTtl));
|
||||
- if (!queryCache.next())
|
||||
- return std::nullopt;
|
||||
- state->caches.emplace(uri,
|
||||
- Cache{(int) queryCache.getInt(0), queryCache.getStr(1), queryCache.getInt(2) != 0, (int) queryCache.getInt(3)});
|
||||
- }
|
||||
-
|
||||
- auto & cache(getCache(*state, uri));
|
||||
-
|
||||
+ auto cache(queryCacheRaw(*state, uri));
|
||||
+ if (!cache)
|
||||
+ return std::nullopt;
|
||||
return CacheInfo {
|
||||
- .wantMassQuery = cache.wantMassQuery,
|
||||
- .priority = cache.priority
|
||||
+ .wantMassQuery = cache->wantMassQuery,
|
||||
+ .priority = cache->priority
|
||||
};
|
||||
});
|
||||
}
|
Loading…
Reference in a new issue