Merge master into staging-next
This commit is contained in:
@@ -60,6 +60,10 @@
|
||||
|
||||
- [go-httpbin](https://github.com/mccutchen/go-httpbin), a reasonably complete and well-tested golang port of httpbin, with zero dependencies outside the go stdlib. Available as [services.go-httpbin](#opt-services.go-httpbin.enable).
|
||||
|
||||
- [radicle-ci-broker](https://app.radicle.xyz/nodes/seed.radicle.xyz/rad:zwTxygwuz5LDGBq255RA2CbNGrz8), runs CI for repositories in the local [Radicle](https://radicle.xyz/) node. Available as [services.radicle.ci.broker.enable](#opt-services.radicle.ci.broker.enable).
|
||||
|
||||
- [radicle-native-ci](https://app.radicle.xyz/nodes/seed.radicle.xyz/rad:z3qg5TKmN83afz2fj9z3fQjU8vaYE), an adapter for the [Radicle CI broker](https://app.radicle.xyz/nodes/seed.radicle.xyz/rad:zwTxygwuz5LDGBq255RA2CbNGrz8), for performing CI runs locally. Available as [services.radicle.ci.adapters.native](#opt-services.radicle.ci.adapters.native.instances).
|
||||
|
||||
- [llama-swap](https://github.com/mostlygeek/llama-swap), a light weight transparent proxy server that provides automatic model swapping to llama.cpp's server (or any server with an OpenAI compatible endpoint). Available as [](#opt-services.llama-swap.enable).
|
||||
|
||||
- [tuwunel](https://matrix-construct.github.io/tuwunel/), a federated chat server implementing the Matrix protocol, forked from Conduwuit. Available as [services.matrix-tuwunel](#opt-services.matrix-tuwunel.enable).
|
||||
|
||||
@@ -506,6 +506,8 @@
|
||||
./services/continuous-integration/jenkins/default.nix
|
||||
./services/continuous-integration/jenkins/job-builder.nix
|
||||
./services/continuous-integration/jenkins/slave.nix
|
||||
./services/continuous-integration/radicle/adapters/native.nix
|
||||
./services/continuous-integration/radicle/ci-broker.nix
|
||||
./services/continuous-integration/woodpecker/agents.nix
|
||||
./services/continuous-integration/woodpecker/server.nix
|
||||
./services/databases/aerospike.nix
|
||||
|
||||
@@ -0,0 +1,141 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
cfg = config.services.radicle.ci.adapters.native;
|
||||
brokerCfg = config.services.radicle.ci.broker;
|
||||
|
||||
settingsFormat = pkgs.formats.yaml { };
|
||||
|
||||
enabledInstances = lib.filter (instance: instance.enable) (lib.attrValues cfg.instances);
|
||||
in
|
||||
|
||||
{
|
||||
meta.maintainers = with lib.maintainers; [ defelo ];
|
||||
|
||||
options.services.radicle.ci.adapters.native = {
|
||||
instances = lib.mkOption {
|
||||
type = lib.types.attrsOf (
|
||||
lib.types.submodule (
|
||||
{ config, name, ... }:
|
||||
{
|
||||
options = {
|
||||
enable = lib.mkEnableOption "this radicle-native-ci instance" // {
|
||||
default = true;
|
||||
example = false;
|
||||
};
|
||||
|
||||
name = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
description = ''
|
||||
Adapter name that is used in the radicle-ci-broker configuration.
|
||||
Defaults to the attribute name.
|
||||
'';
|
||||
};
|
||||
|
||||
package = lib.mkPackageOption pkgs "radicle-native-ci" { };
|
||||
|
||||
runtimePackages = lib.mkOption {
|
||||
type = lib.types.listOf lib.types.package;
|
||||
description = "Packages added to the adapter's {env}`PATH`.";
|
||||
defaultText = lib.literalExpression ''
|
||||
with pkgs; [
|
||||
bash
|
||||
coreutils
|
||||
curl
|
||||
gawk
|
||||
gitMinimal
|
||||
gnused
|
||||
wget
|
||||
]
|
||||
'';
|
||||
};
|
||||
|
||||
settings = lib.mkOption {
|
||||
type = lib.types.submodule {
|
||||
freeformType = settingsFormat.type;
|
||||
|
||||
options = {
|
||||
state = lib.mkOption {
|
||||
type = lib.types.path;
|
||||
description = "Directory where per-run directories are stored.";
|
||||
defaultText = lib.literalExpression ''"''${config.services.radicle.ci.broker.stateDir}/adapters/native/${config.name}"'';
|
||||
};
|
||||
|
||||
log = lib.mkOption {
|
||||
type = lib.types.path;
|
||||
description = "File where radicle-native-ci should write the run log.";
|
||||
defaultText = lib.literalExpression ''"''${config.services.radicle.ci.broker.logDir}/adapters/native/${config.name}.log"'';
|
||||
};
|
||||
|
||||
base_url = lib.mkOption {
|
||||
type = lib.types.nullOr lib.types.str;
|
||||
description = "Base URL for build logs (mandatory for access from CI broker page).";
|
||||
default = null;
|
||||
};
|
||||
};
|
||||
};
|
||||
description = ''
|
||||
Configuration of radicle-native-ci.
|
||||
See <https://app.radicle.xyz/nodes/seed.radicle.xyz/rad:z3qg5TKmN83afz2fj9z3fQjU8vaYE#configuration> for more information.
|
||||
'';
|
||||
default = { };
|
||||
};
|
||||
};
|
||||
|
||||
config = {
|
||||
name = lib.mkDefault name;
|
||||
|
||||
runtimePackages = with pkgs; [
|
||||
bash
|
||||
coreutils
|
||||
curl
|
||||
gawk
|
||||
gitMinimal
|
||||
gnused
|
||||
wget
|
||||
];
|
||||
|
||||
settings = {
|
||||
state = lib.mkDefault "${brokerCfg.stateDir}/adapters/native/${config.name}";
|
||||
log = lib.mkDefault "${brokerCfg.logDir}/adapters/native/${config.name}.log";
|
||||
};
|
||||
};
|
||||
}
|
||||
)
|
||||
);
|
||||
description = "radicle-native-ci adapter instances.";
|
||||
default = { };
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf (enabledInstances != [ ]) {
|
||||
services.radicle.ci.broker.settings.adapters = lib.listToAttrs (
|
||||
map (
|
||||
instance:
|
||||
lib.nameValuePair instance.name {
|
||||
command = lib.getExe instance.package;
|
||||
config = instance.settings;
|
||||
config_env = "RADICLE_NATIVE_CI";
|
||||
env.PATH = lib.makeBinPath instance.runtimePackages;
|
||||
}
|
||||
) enabledInstances
|
||||
);
|
||||
|
||||
systemd.tmpfiles.settings.radicle-native-ci = lib.listToAttrs (
|
||||
map (
|
||||
instance:
|
||||
lib.nameValuePair (builtins.dirOf instance.settings.log) {
|
||||
d = {
|
||||
user = config.users.users.radicle.name;
|
||||
group = config.users.groups.radicle.name;
|
||||
};
|
||||
}
|
||||
) enabledInstances
|
||||
);
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,256 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
cfg = config.services.radicle.ci.broker;
|
||||
|
||||
settingsFormat = pkgs.formats.json { };
|
||||
configFile = pkgs.runCommand "ci-broker.json" { } (
|
||||
''
|
||||
cp ${settingsFormat.generate "ci-broker.json" cfg.settings} $out
|
||||
''
|
||||
+ lib.optionalString cfg.checkConfig ''
|
||||
${lib.getExe' cfg.package "cib"} --config $out config
|
||||
''
|
||||
);
|
||||
|
||||
RAD_HOME = "/var/lib/radicle";
|
||||
|
||||
# Convenient wrapper to run `cibtool` in the namespaces of `radicle-ci-broker.service`
|
||||
cibtool-system = pkgs.writeShellScriptBin "cibtool-system" ''
|
||||
set -o allexport
|
||||
${lib.toShellVars {
|
||||
inherit RAD_HOME;
|
||||
HOME = RAD_HOME;
|
||||
}}
|
||||
# Note that --env is not used to preserve host's envvars like $TERM
|
||||
exec ${lib.getExe' pkgs.util-linux "nsenter"} -a \
|
||||
-t "$(${lib.getExe' config.systemd.package "systemctl"} show -P MainPID radicle-ci-broker.service)" \
|
||||
-S "$(${lib.getExe' config.systemd.package "systemctl"} show -P UID radicle-ci-broker.service)" \
|
||||
-G "$(${lib.getExe' config.systemd.package "systemctl"} show -P GID radicle-ci-broker.service)" \
|
||||
${lib.getExe' cfg.package "cibtool"} --db ${lib.escapeShellArg cfg.settings.db} "$@"
|
||||
'';
|
||||
in
|
||||
|
||||
{
|
||||
meta.maintainers = with lib.maintainers; [ defelo ];
|
||||
|
||||
options.services.radicle.ci.broker = {
|
||||
enable = lib.mkEnableOption "radicle-ci-broker";
|
||||
|
||||
package = lib.mkPackageOption pkgs "radicle-ci-broker" { };
|
||||
|
||||
stateDir = lib.mkOption {
|
||||
type = lib.types.path;
|
||||
description = "State directory of radicle-ci-broker.";
|
||||
default = "/var/lib/radicle-ci";
|
||||
};
|
||||
|
||||
logDir = lib.mkOption {
|
||||
type = lib.types.path;
|
||||
description = "Log directory of radicle-ci-broker.";
|
||||
default = "/var/log/radicle-ci";
|
||||
};
|
||||
|
||||
enableHardening = lib.mkEnableOption "systemd hardening" // {
|
||||
default = true;
|
||||
example = false;
|
||||
};
|
||||
|
||||
checkConfig =
|
||||
lib.mkEnableOption "checking the {file}`ci-broker.yaml` file resulting from [](#opt-services.radicle.ci.broker.settings)"
|
||||
// {
|
||||
default = true;
|
||||
example = false;
|
||||
};
|
||||
|
||||
settings = lib.mkOption {
|
||||
type = lib.types.submodule {
|
||||
freeformType = settingsFormat.type;
|
||||
|
||||
options = {
|
||||
db = lib.mkOption {
|
||||
type = lib.types.path;
|
||||
description = "Database file path.";
|
||||
defaultText = lib.literalExpression ''"''${config.services.radicle.ci.broker.stateDir}/ci-broker.db"'';
|
||||
};
|
||||
|
||||
report_dir = lib.mkOption {
|
||||
type = lib.types.nullOr lib.types.path;
|
||||
description = "Directory where HTML and JSON report pages are written.";
|
||||
defaultText = lib.literalExpression ''"''${config.services.radicle.ci.broker.stateDir}/reports"'';
|
||||
};
|
||||
|
||||
adapters = lib.mkOption {
|
||||
type = lib.types.attrsOf (
|
||||
lib.types.submodule {
|
||||
freeformType = settingsFormat.type;
|
||||
|
||||
options = {
|
||||
command = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
description = "Adapter command to run.";
|
||||
};
|
||||
env = lib.mkOption {
|
||||
type = lib.types.attrsOf settingsFormat.type;
|
||||
description = "Environment variables to add when running the adapter.";
|
||||
default = { };
|
||||
};
|
||||
};
|
||||
}
|
||||
);
|
||||
description = ''
|
||||
CI adapters.
|
||||
See also the options under [services.radicle.ci.adapters](#opt-services.radicle.ci.adapters.native.instances).
|
||||
'';
|
||||
default = { };
|
||||
};
|
||||
|
||||
triggers = lib.mkOption {
|
||||
type = lib.types.listOf (
|
||||
lib.types.submodule {
|
||||
freeformType = settingsFormat.type;
|
||||
|
||||
options = {
|
||||
adapter = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
description = "Adapter name.";
|
||||
};
|
||||
|
||||
filters = lib.mkOption {
|
||||
type = lib.types.listOf settingsFormat.type;
|
||||
description = "Trigger filter.";
|
||||
};
|
||||
};
|
||||
}
|
||||
);
|
||||
description = "CI triggers.";
|
||||
default = [ ];
|
||||
};
|
||||
};
|
||||
};
|
||||
description = ''
|
||||
Configuration of radicle-ci-broker.
|
||||
See <https://app.radicle.xyz/nodes/seed.radicle.xyz/rad:zwTxygwuz5LDGBq255RA2CbNGrz8/tree/doc/userguide.md#configuration> for more information.
|
||||
'';
|
||||
default = { };
|
||||
example = lib.literalExpression ''
|
||||
{
|
||||
adapters.native = {
|
||||
command = lib.getExe pkgs.radicle-native-ci;
|
||||
config = { };
|
||||
config_env = "RADICLE_NATIVE_CI";
|
||||
env.PATH = lib.makeBinPath (with pkgs; [ bash coreutils ]);
|
||||
};
|
||||
|
||||
triggers = [
|
||||
{
|
||||
adapter = "native";
|
||||
filters = [
|
||||
{
|
||||
And = [
|
||||
{ HasFile = ".radicle/native.yaml"; }
|
||||
{ Node = "z6MkgEMYod7Hxfy9qCvDv5hYHkZ4ciWmLFgfvm3Wn1b2w2FV"; }
|
||||
{
|
||||
Or = [
|
||||
"DefaultBranch"
|
||||
"PatchCreated"
|
||||
"PatchUpdated"
|
||||
];
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
}
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
assertions = [
|
||||
{
|
||||
assertion = config.services.radicle.enable;
|
||||
message = "radicle-ci-broker requires a local radicle node to be running.";
|
||||
}
|
||||
];
|
||||
|
||||
services.radicle.ci.broker.settings = {
|
||||
db = lib.mkDefault "${cfg.stateDir}/ci-broker.db";
|
||||
report_dir = lib.mkDefault "${cfg.stateDir}/reports";
|
||||
};
|
||||
|
||||
systemd.services.radicle-ci-broker = {
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
|
||||
bindsTo = [ "radicle-node.service" ];
|
||||
after = [ "radicle-node.service" ];
|
||||
|
||||
environment = { inherit RAD_HOME; };
|
||||
|
||||
serviceConfig = lib.mkMerge [
|
||||
{
|
||||
User = config.users.users.radicle.name;
|
||||
Group = config.users.groups.radicle.name;
|
||||
Restart = "always";
|
||||
|
||||
StateDirectory = lib.mkIf (cfg.stateDir == "/var/lib/radicle-ci") "radicle-ci";
|
||||
LogsDirectory = lib.mkIf (cfg.logDir == "/var/log/radicle-ci") "radicle-ci";
|
||||
RuntimeDirectory = "radicle-ci-broker";
|
||||
WorkingDirectory = "/run/radicle-ci-broker";
|
||||
|
||||
BindReadOnlyPaths = config.systemd.services.radicle-node.serviceConfig.BindReadOnlyPaths;
|
||||
ReadWritePaths = [ RAD_HOME ];
|
||||
|
||||
ExecStart = "${lib.getExe' cfg.package "cib"} --config ${configFile} process-events";
|
||||
}
|
||||
|
||||
(lib.mkIf cfg.enableHardening {
|
||||
AmbientCapabilities = "";
|
||||
CapabilityBoundingSet = [ "" ];
|
||||
DevicePolicy = "closed";
|
||||
LockPersonality = true;
|
||||
MemoryDenyWriteExecute = true;
|
||||
NoNewPrivileges = true;
|
||||
PrivateDevices = true;
|
||||
PrivateTmp = true;
|
||||
PrivateUsers = true;
|
||||
ProcSubset = "pid";
|
||||
ProtectClock = true;
|
||||
ProtectControlGroups = true;
|
||||
ProtectHome = true;
|
||||
ProtectHostname = true;
|
||||
ProtectKernelLogs = true;
|
||||
ProtectKernelModules = true;
|
||||
ProtectKernelTunables = true;
|
||||
ProtectProc = "invisible";
|
||||
ProtectSystem = "strict";
|
||||
RemoveIPC = true;
|
||||
RestrictAddressFamilies = [ "AF_INET AF_INET6 AF_UNIX" ];
|
||||
RestrictNamespaces = true;
|
||||
RestrictRealtime = true;
|
||||
RestrictSUIDSGID = true;
|
||||
SystemCallArchitectures = "native";
|
||||
SystemCallFilter = [
|
||||
"@system-service"
|
||||
"~@privileged"
|
||||
"~@resources"
|
||||
];
|
||||
UMask = "0066";
|
||||
})
|
||||
];
|
||||
};
|
||||
|
||||
systemd.tmpfiles.settings.radicle-ci-broker.${cfg.settings.report_dir}.d = {
|
||||
user = config.users.users.radicle.name;
|
||||
group = config.users.groups.radicle.name;
|
||||
};
|
||||
|
||||
environment.systemPackages = [ cibtool-system ];
|
||||
};
|
||||
}
|
||||
@@ -1277,6 +1277,7 @@ in
|
||||
radarr = runTest ./radarr.nix;
|
||||
radicale = runTest ./radicale.nix;
|
||||
radicle = runTest ./radicle.nix;
|
||||
radicle-ci-broker = runTest ./radicle-ci-broker.nix;
|
||||
ragnarwm = runTestOn [ "x86_64-linux" "aarch64-linux" ] ./ragnarwm.nix;
|
||||
rasdaemon = runTest ./rasdaemon.nix;
|
||||
rathole = runTest ./rathole.nix;
|
||||
|
||||
@@ -0,0 +1,137 @@
|
||||
{ lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
seed-nid = "z6Mkg52RcwDrPKRzzHaYgBkHH3Gi5p4694fvPstVE9HTyMB6";
|
||||
seed-ssh-keys = import ./ssh-keys.nix pkgs;
|
||||
|
||||
radicleConfig =
|
||||
alias:
|
||||
pkgs.writeText "config.json" (
|
||||
builtins.toJSON {
|
||||
preferredSeeds = [ "${seed-nid}@seed:8776" ];
|
||||
node = { inherit alias; };
|
||||
}
|
||||
);
|
||||
in
|
||||
|
||||
{
|
||||
name = "radicle-ci-broker";
|
||||
meta.maintainers = with lib.maintainers; [ defelo ];
|
||||
|
||||
nodes.seed = {
|
||||
services.radicle = {
|
||||
enable = true;
|
||||
privateKeyFile = seed-ssh-keys.snakeOilEd25519PrivateKey;
|
||||
publicKey = seed-ssh-keys.snakeOilEd25519PublicKey;
|
||||
node.openFirewall = true;
|
||||
settings = {
|
||||
preferredSeeds = [ ];
|
||||
node.alias = "seed";
|
||||
};
|
||||
|
||||
ci = {
|
||||
adapters.native.instances.native = { };
|
||||
broker = {
|
||||
enable = true;
|
||||
settings.triggers = [
|
||||
{
|
||||
adapter = "native";
|
||||
filters = [
|
||||
{
|
||||
And = [
|
||||
{ HasFile = ".radicle/native.yaml"; }
|
||||
"DefaultBranch"
|
||||
];
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
nodes.alice =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
environment.etc."gitconfig".text = ''
|
||||
[init]
|
||||
defaultBranch = main
|
||||
[user]
|
||||
email = root@alice
|
||||
name = alice
|
||||
'';
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
gitMinimal
|
||||
radicle-node
|
||||
radicle-job
|
||||
];
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
import json
|
||||
import time
|
||||
|
||||
start_all()
|
||||
|
||||
seed.wait_for_unit("radicle-ci-broker.service")
|
||||
|
||||
alice.succeed("rad auth --alias alice --stdin </dev/null")
|
||||
alice.copy_from_host("${radicleConfig "alice"}", "/root/.radicle/config.json")
|
||||
alice.succeed("rad node start")
|
||||
|
||||
alice_nid = alice.succeed("rad self --nid").strip()
|
||||
|
||||
alice.succeed("mkdir /tmp/repo")
|
||||
alice.succeed("git -C /tmp/repo init")
|
||||
alice.succeed("mkdir /tmp/repo/.radicle")
|
||||
alice.succeed("echo 'shell: echo -n it works > /run/radicle-ci-broker/result' > /tmp/repo/.radicle/native.yaml")
|
||||
alice.succeed("git -C /tmp/repo add .")
|
||||
alice.succeed("git -C /tmp/repo commit -m init")
|
||||
|
||||
alice.succeed("cd /tmp/repo && rad init --name repo --description \"\" --default-branch main --public")
|
||||
rid = alice.succeed("rad inspect --rid /tmp/repo").strip()
|
||||
|
||||
def git_head():
|
||||
return alice.succeed("git -C /tmp/repo rev-parse HEAD").strip()
|
||||
|
||||
def list_runs(oid):
|
||||
alice.succeed(f"rad sync {rid} -f")
|
||||
jobs = json.loads(alice.succeed(f"rad job --repository {rid} list"))["jobs"]
|
||||
return [
|
||||
{"node_id": run["node_id"], **node_run}
|
||||
for job in jobs if job["oid"] == oid
|
||||
for run in job["runs"] for node_run in run["runs"]
|
||||
]
|
||||
|
||||
def run_succeeded(run):
|
||||
return run["node_id"] == "${seed-nid}" and run["status"] == {"Finished": "Succeeded"}
|
||||
|
||||
def _retry(f):
|
||||
for _ in range(10):
|
||||
if out := f(): return out
|
||||
time.sleep(1)
|
||||
assert False
|
||||
|
||||
assert list_runs(head := git_head()) == []
|
||||
seed.succeed(f"rad-system seed {rid}")
|
||||
assert seed.wait_until_succeeds("cat /run/radicle-ci-broker/result") == "it works"
|
||||
_retry(lambda: len(runs := list_runs(head)) == 1 and run_succeeded(runs[0]))
|
||||
|
||||
alice.succeed("echo 'shell: echo -n second commit > /run/radicle-ci-broker/result2' > /tmp/repo/.radicle/native.yaml")
|
||||
alice.succeed("git -C /tmp/repo add .")
|
||||
alice.succeed("git -C /tmp/repo commit -m 2")
|
||||
assert list_runs(head := git_head()) == []
|
||||
alice.succeed("git -C /tmp/repo push")
|
||||
assert seed.wait_until_succeeds("cat /run/radicle-ci-broker/result2") == "second commit"
|
||||
run = _retry(lambda: len(runs := list_runs(head)) == 1 and run_succeeded(run := runs[0]) and run)
|
||||
|
||||
seed.succeed("rm /run/radicle-ci-broker/result2")
|
||||
seed.fail("cat /run/radicle-ci-broker/result2")
|
||||
seed.succeed(f"cibtool-system trigger --repo repo --node {alice_nid} --commit main")
|
||||
assert seed.wait_until_succeeds("cat /run/radicle-ci-broker/result2") == "second commit"
|
||||
_retry(lambda: len(runs := sorted(list_runs(head), key=run.__ne__)) == 2
|
||||
and runs[0] == run and runs[1]["run_id"] != run["run_id"] and run_succeeded(runs[1]))
|
||||
'';
|
||||
}
|
||||
@@ -7,8 +7,8 @@ vscode-utils.buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
name = "claude-code";
|
||||
publisher = "anthropic";
|
||||
version = "2.0.10";
|
||||
hash = "sha256-wtqtjvU7HZZWUxRRN/H7I0lgCMRzGZy/Mu5s30ZbJ0g=";
|
||||
version = "2.0.14";
|
||||
hash = "sha256-+3GkCBfAAIaORU+qKGv6OmN2w9aXt3QKMgWtyLMJUS0=";
|
||||
};
|
||||
|
||||
meta = {
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
which,
|
||||
openssl,
|
||||
gperf,
|
||||
tinyxml2,
|
||||
tinyxml,
|
||||
tinyxml-2,
|
||||
taglib,
|
||||
libssh,
|
||||
@@ -299,7 +299,7 @@ stdenv.mkDerivation (
|
||||
libdrm
|
||||
openssl
|
||||
gperf
|
||||
tinyxml2
|
||||
tinyxml
|
||||
tinyxml-2
|
||||
taglib
|
||||
libssh
|
||||
|
||||
@@ -6,16 +6,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "cargo-temp";
|
||||
version = "0.3.4";
|
||||
version = "0.3.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "yozhgoor";
|
||||
repo = "cargo-temp";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-SE96RFOW3/BHglOnQa/Hd5rwyzQLQLaa7wlNio57uMI=";
|
||||
hash = "sha256-kCiw3a9C78mcJ2/bX+E5gXZKYcfLXF0crMIZu4cJsdY=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-osGKIskHZAx6gXbpYJua7pL02CdKmiudwnokUSM/U+E=";
|
||||
cargoHash = "sha256-7S7L/OKHTOAP9tbM7+xWhvcYBZScvX6SBW3U1AyFGrs=";
|
||||
|
||||
meta = with lib; {
|
||||
description = "CLI tool that allow you to create a temporary new Rust project using cargo with already installed dependencies";
|
||||
|
||||
+2
-2
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "@anthropic-ai/claude-code",
|
||||
"version": "2.0.1",
|
||||
"version": "2.0.14",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@anthropic-ai/claude-code",
|
||||
"version": "2.0.1",
|
||||
"version": "2.0.14",
|
||||
"license": "SEE LICENSE IN README.md",
|
||||
"bin": {
|
||||
"claude": "cli.js"
|
||||
|
||||
@@ -7,14 +7,14 @@
|
||||
}:
|
||||
buildNpmPackage (finalAttrs: {
|
||||
pname = "claude-code";
|
||||
version = "2.0.11";
|
||||
version = "2.0.14";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://registry.npmjs.org/@anthropic-ai/claude-code/-/claude-code-${finalAttrs.version}.tgz";
|
||||
hash = "sha256-h+xNtaA2X9uFlmQgaRUEXB0utIpC9FT2tn+QnnWMVSs=";
|
||||
hash = "sha256-U/wd00eva/qbSS4LpW1L7nmPW4dT9naffeMkHQ5xr5o=";
|
||||
};
|
||||
|
||||
npmDepsHash = "sha256-DehkeMZvzn+hvcCDzJfd4p9oYc1GSZm8gu8vKS4Uncw=";
|
||||
npmDepsHash = "sha256-ugI5JSCxEneQmIMF2rzOWihMw9RuZjNco4YRNmaQ69A=";
|
||||
|
||||
postPatch = ''
|
||||
cp ${./package-lock.json} package-lock.json
|
||||
|
||||
@@ -0,0 +1,76 @@
|
||||
{
|
||||
lib,
|
||||
rustPlatform,
|
||||
fetchFromRadicle,
|
||||
stdenv,
|
||||
jq,
|
||||
gitMinimal,
|
||||
sqlite,
|
||||
radicle-node,
|
||||
versionCheckHook,
|
||||
nixosTests,
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "radicle-ci-broker";
|
||||
version = "0.21.0";
|
||||
|
||||
src = fetchFromRadicle {
|
||||
seed = "seed.radicle.xyz";
|
||||
repo = "zwTxygwuz5LDGBq255RA2CbNGrz8";
|
||||
node = "z6MkgEMYod7Hxfy9qCvDv5hYHkZ4ciWmLFgfvm3Wn1b2w2FV";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-c0Qo6dnR9rP4mLXODkNZp+AnhKS0tqJeh1KgzfHBRV4=";
|
||||
leaveDotGit = true;
|
||||
postFetch = ''
|
||||
git -C $out rev-parse --short HEAD > $out/.git_head
|
||||
rm -rf $out/.git
|
||||
'';
|
||||
};
|
||||
|
||||
cargoHash = "sha256-9MkZh1hlHgLC9rGmLx5ehtLtZfhXsCqrJrCJNr1edBU=";
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace build.rs \
|
||||
--replace-fail "let hash = " "let hash = \"$(<$src/.git_head)\"; "
|
||||
'';
|
||||
|
||||
preCheck = ''
|
||||
ln -s "$PWD/target/${stdenv.hostPlatform.rust.rustcTarget}/$cargoBuildType" target/debug
|
||||
'';
|
||||
|
||||
nativeCheckInputs = [
|
||||
jq
|
||||
gitMinimal
|
||||
sqlite
|
||||
radicle-node
|
||||
];
|
||||
|
||||
checkFlags = [
|
||||
"--skip=acceptance_criteria_for_upgrades"
|
||||
"--skip=logs_adapter_stderr_output"
|
||||
"--skip=process_queued_events"
|
||||
"--skip=runs_adapter_with_configuration"
|
||||
];
|
||||
|
||||
nativeInstallCheckInputs = [ versionCheckHook ];
|
||||
versionCheckProgramArg = "--version";
|
||||
doInstallCheck = true;
|
||||
|
||||
passthru = {
|
||||
tests = { inherit (nixosTests) radicle-ci-broker; };
|
||||
updateScript = ./update.sh;
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "Radicle CI broker";
|
||||
homepage = "https://app.radicle.xyz/nodes/seed.radicle.xyz/rad:zwTxygwuz5LDGBq255RA2CbNGrz8";
|
||||
changelog = "https://app.radicle.xyz/nodes/seed.radicle.xyz/rad:zwTxygwuz5LDGBq255RA2CbNGrz8/tree/NEWS.md";
|
||||
license = with lib.licenses; [
|
||||
mit
|
||||
asl20
|
||||
];
|
||||
maintainers = with lib.maintainers; [ defelo ];
|
||||
mainProgram = "cib";
|
||||
};
|
||||
})
|
||||
Executable
+18
@@ -0,0 +1,18 @@
|
||||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -i bash -p coreutils gnused gitMinimal nix-update
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
dirname="$(dirname "${BASH_SOURCE[0]}")"
|
||||
|
||||
url=$(nix-instantiate --eval --raw -A radicle-ci-broker.src.url)
|
||||
old_node=$(nix-instantiate --eval --raw -A radicle-ci-broker.src.node)
|
||||
|
||||
ref=$(git ls-remote "$url" 'refs/namespaces/*/refs/tags/v*' \
|
||||
| cut -f2 | grep -Ev '\^\{\}$' | sort -t/ -k6rV | head -1)
|
||||
[[ "$ref" =~ ^refs/namespaces/([^/]+)/refs/tags/v([^/]+)$ ]]
|
||||
new_node="${BASH_REMATCH[1]}"
|
||||
version="${BASH_REMATCH[2]}"
|
||||
|
||||
sed -i "s/${old_node}/${new_node}/g" "${dirname}/package.nix"
|
||||
nix-update --version="$version" radicle-ci-broker
|
||||
@@ -0,0 +1,53 @@
|
||||
{
|
||||
lib,
|
||||
rustPlatform,
|
||||
fetchFromRadicle,
|
||||
radicle-node,
|
||||
gitMinimal,
|
||||
writableTmpDirAsHomeHook,
|
||||
versionCheckHook,
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "radicle-native-ci";
|
||||
version = "0.11.1";
|
||||
|
||||
src = fetchFromRadicle {
|
||||
seed = "seed.radicle.xyz";
|
||||
repo = "z3qg5TKmN83afz2fj9z3fQjU8vaYE";
|
||||
node = "z6MkgEMYod7Hxfy9qCvDv5hYHkZ4ciWmLFgfvm3Wn1b2w2FV";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-OjQBq4QopT4dr1/z73fqlGLjQIjUY51/II9m2qQMW1w=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-zyEdlAXaooEkxD4aZ1poIUX3OwXtP4nFAyOWJDdw1p8=";
|
||||
|
||||
preCheck = ''
|
||||
git config --global user.name nixbld
|
||||
git config --global user.email nixbld@example.com
|
||||
'';
|
||||
|
||||
nativeCheckInputs = [
|
||||
writableTmpDirAsHomeHook
|
||||
radicle-node
|
||||
gitMinimal
|
||||
];
|
||||
|
||||
nativeInstallCheckInputs = [ versionCheckHook ];
|
||||
versionCheckProgramArg = "--version";
|
||||
doInstallCheck = true;
|
||||
|
||||
passthru.updateScript = ./update.sh;
|
||||
|
||||
meta = {
|
||||
description = "Radicle CI adapter for native CI";
|
||||
homepage = "https://app.radicle.xyz/nodes/seed.radicle.xyz/rad:z3qg5TKmN83afz2fj9z3fQjU8vaYE";
|
||||
changelog = "https://app.radicle.xyz/nodes/seed.radicle.xyz/rad:z3qg5TKmN83afz2fj9z3fQjU8vaYE/tree/NEWS.md";
|
||||
license = with lib.licenses; [
|
||||
mit
|
||||
asl20
|
||||
];
|
||||
maintainers = with lib.maintainers; [ defelo ];
|
||||
mainProgram = "radicle-native-ci";
|
||||
};
|
||||
})
|
||||
Executable
+18
@@ -0,0 +1,18 @@
|
||||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -i bash -p coreutils gnused gitMinimal nix-update
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
dirname="$(dirname "${BASH_SOURCE[0]}")"
|
||||
|
||||
url=$(nix-instantiate --eval --raw -A radicle-native-ci.src.url)
|
||||
old_node=$(nix-instantiate --eval --raw -A radicle-native-ci.src.node)
|
||||
|
||||
ref=$(git ls-remote "$url" 'refs/namespaces/*/refs/tags/v*' \
|
||||
| cut -f2 | grep -Ev '\^\{\}$' | sort -t/ -k6rV | head -1)
|
||||
[[ "$ref" =~ ^refs/namespaces/([^/]+)/refs/tags/v([^/]+)$ ]]
|
||||
new_node="${BASH_REMATCH[1]}"
|
||||
version="${BASH_REMATCH[2]}"
|
||||
|
||||
sed -i "s/${old_node}/${new_node}/g" "${dirname}/package.nix"
|
||||
nix-update --version="$version" radicle-native-ci
|
||||
@@ -6,10 +6,10 @@
|
||||
}:
|
||||
let
|
||||
pname = "remnote";
|
||||
version = "1.21.5";
|
||||
version = "1.21.8";
|
||||
src = fetchurl {
|
||||
url = "https://download2.remnote.io/remnote-desktop2/RemNote-${version}.AppImage";
|
||||
hash = "sha256-Tq8qyjlyB/1tQkB5rLVSLy8HbpnfBZ4QmNQB/CVEiN0=";
|
||||
hash = "sha256-KJHdLHmLGYYxv4eKCDoUsTn3bhWg3h8QOlwmtxNFC6Y=";
|
||||
};
|
||||
appimageContents = appimageTools.extractType2 { inherit pname version src; };
|
||||
in
|
||||
|
||||
Generated
+23
-30
@@ -126,13 +126,13 @@
|
||||
},
|
||||
{
|
||||
"pname": "DiscordRichPresence",
|
||||
"version": "1.2.1.24",
|
||||
"hash": "sha256-oRNrlF1/yK0QvrW2+48RsmSg9h9/pDIfA56/bpoHXFU="
|
||||
"version": "1.6.1.70",
|
||||
"hash": "sha256-uXTNIWfZU7Gf/JpXQ5ufKA3SQdXYSkg3yLm5yCrBDd8="
|
||||
},
|
||||
{
|
||||
"pname": "DynamicData",
|
||||
"version": "9.0.4",
|
||||
"hash": "sha256-3pyiJeWRwfaT7p1ArsoR13aI78Jo13aHOEw3BelTS9g="
|
||||
"version": "9.4.1",
|
||||
"hash": "sha256-CX4NQj2LTk/8f4xDE5rUVBsqcY74H/1qUHFTrVX+9/0="
|
||||
},
|
||||
{
|
||||
"pname": "ExCSS",
|
||||
@@ -151,8 +151,8 @@
|
||||
},
|
||||
{
|
||||
"pname": "Gommon",
|
||||
"version": "2.7.1.1",
|
||||
"hash": "sha256-2AnVtyEbg5A+K/LDjgOpKw/CNRDkAhjVa38L5LYYyrw="
|
||||
"version": "2.7.2.1",
|
||||
"hash": "sha256-QxrgAaVuHeUR8QZDHdT/9np9ADrE+nwjw9vT9DhXVf4="
|
||||
},
|
||||
{
|
||||
"pname": "HarfBuzzSharp",
|
||||
@@ -559,11 +559,6 @@
|
||||
"version": "1.1.0",
|
||||
"hash": "sha256-FeM40ktcObQJk4nMYShB61H/E8B7tIKfl9ObJ0IOcCM="
|
||||
},
|
||||
{
|
||||
"pname": "Microsoft.NETCore.Platforms",
|
||||
"version": "2.0.0",
|
||||
"hash": "sha256-IEvBk6wUXSdyCnkj6tHahOJv290tVVT8tyemYcR0Yro="
|
||||
},
|
||||
{
|
||||
"pname": "Microsoft.NETCore.Platforms",
|
||||
"version": "2.1.2",
|
||||
@@ -584,11 +579,6 @@
|
||||
"version": "17.9.0",
|
||||
"hash": "sha256-1BZIY1z+C9TROgdTV/tq4zsPy7Q71GQksr/LoMKAzqU="
|
||||
},
|
||||
{
|
||||
"pname": "Microsoft.Win32.Registry",
|
||||
"version": "4.5.0",
|
||||
"hash": "sha256-WMBXsIb0DgPFPaFkNVxY9b9vcMxPqtgFgijKYMJfV/0="
|
||||
},
|
||||
{
|
||||
"pname": "MsgPack.Cli",
|
||||
"version": "1.0.1",
|
||||
@@ -801,14 +791,27 @@
|
||||
},
|
||||
{
|
||||
"pname": "Ryujinx.LibHac",
|
||||
"version": "0.20.0",
|
||||
"hash": "sha256-msrn9BElOOGtQAz6oK3HbMeyLOQ10Xt8wT0Qyr8NwYU="
|
||||
"version": "0.21.0-alpha.116",
|
||||
"hash": "sha256-ldma+AbTb75/cwWdLbRg5V0eCIqtyovT6zjh50JRvgo=",
|
||||
"url": "https://git.ryujinx.app/api/v4/projects/17/packages/nuget/download/ryujinx.libhac/0.21.0-alpha.116/ryujinx.libhac.0.21.0-alpha.116.nupkg"
|
||||
},
|
||||
{
|
||||
"pname": "Ryujinx.SDL2-CS",
|
||||
"version": "2.30.0-build32",
|
||||
"hash": "sha256-KrrlDq0pXcunnOhJL12dt1CAdNbaupbDlnza5gXuVKE="
|
||||
},
|
||||
{
|
||||
"pname": "Ryujinx.Systems.Update.Common",
|
||||
"version": "1.0.44",
|
||||
"hash": "sha256-gYCmB2nbOlDJAd0hEAAjPXZmju4sd7DH+i6ciBWSRb4=",
|
||||
"url": "https://git.ryujinx.app/api/v4/projects/71/packages/nuget/download/ryujinx.systems.update.common/1.0.44/ryujinx.systems.update.common.1.0.44.nupkg"
|
||||
},
|
||||
{
|
||||
"pname": "Ryujinx.UpdateClient",
|
||||
"version": "1.0.44",
|
||||
"hash": "sha256-b/z8jPkU7Pc10g4gscgl8pD/NtQPT8EDA0SpKVZLW8U=",
|
||||
"url": "https://git.ryujinx.app/api/v4/projects/71/packages/nuget/download/ryujinx.updateclient/1.0.44/ryujinx.updateclient.1.0.44.nupkg"
|
||||
},
|
||||
{
|
||||
"pname": "securifybv.PropertyStore",
|
||||
"version": "0.1.0",
|
||||
@@ -821,8 +824,8 @@
|
||||
},
|
||||
{
|
||||
"pname": "Sep",
|
||||
"version": "0.6.0",
|
||||
"hash": "sha256-O7v1QBhdzoKTq0cGWEvXOk3H6l85TliETqCLeKnhZwE="
|
||||
"version": "0.11.1",
|
||||
"hash": "sha256-GkDWF51QOIKUu55By5ya471KrwXvQbm98DOo/zV0Bew="
|
||||
},
|
||||
{
|
||||
"pname": "shaderc.net",
|
||||
@@ -1149,16 +1152,6 @@
|
||||
"version": "4.3.0",
|
||||
"hash": "sha256-8sDH+WUJfCR+7e4nfpftj/+lstEiZixWUBueR2zmHgI="
|
||||
},
|
||||
{
|
||||
"pname": "System.Security.AccessControl",
|
||||
"version": "4.5.0",
|
||||
"hash": "sha256-AFsKPb/nTk2/mqH/PYpaoI8PLsiKKimaXf+7Mb5VfPM="
|
||||
},
|
||||
{
|
||||
"pname": "System.Security.Principal.Windows",
|
||||
"version": "4.5.0",
|
||||
"hash": "sha256-BkUYNguz0e4NJp1kkW7aJBn3dyH9STwB5N8XqnlCsmY="
|
||||
},
|
||||
{
|
||||
"pname": "System.Text.Encoding",
|
||||
"version": "4.3.0",
|
||||
|
||||
@@ -32,14 +32,14 @@
|
||||
|
||||
buildDotnetModule rec {
|
||||
pname = "ryubing";
|
||||
version = "1.3.2";
|
||||
version = "1.3.3";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
domain = "git.ryujinx.app";
|
||||
owner = "Ryubing";
|
||||
repo = "Ryujinx";
|
||||
tag = version;
|
||||
hash = "sha256-6BCDFd0nU96OgI5lqf4fbyNkG4PS5P4raHVbvBAhB5A=";
|
||||
hash = "sha256-LhQaXxmj5HIgfmrsDN8GhhVXlXHpDO2Q8JtNLaCq0mk=";
|
||||
};
|
||||
|
||||
nativeBuildInputs =
|
||||
|
||||
@@ -4,18 +4,16 @@
|
||||
cmake,
|
||||
pkg-config,
|
||||
fetchFromGitHub,
|
||||
makeDesktopItem,
|
||||
alsa-lib,
|
||||
speex,
|
||||
libopus,
|
||||
curl,
|
||||
gsm,
|
||||
libgcrypt,
|
||||
libgpiod_1,
|
||||
libsigcxx,
|
||||
popt,
|
||||
qtbase,
|
||||
qttools,
|
||||
wrapQtAppsHook,
|
||||
qt5,
|
||||
rtl-sdr,
|
||||
tcl,
|
||||
doxygen,
|
||||
@@ -23,68 +21,53 @@
|
||||
jsoncpp,
|
||||
}:
|
||||
|
||||
let
|
||||
desktopItem = makeDesktopItem rec {
|
||||
name = "Qtel";
|
||||
exec = "qtel";
|
||||
icon = "qtel";
|
||||
desktopName = name;
|
||||
genericName = "EchoLink Client";
|
||||
categories = [
|
||||
"HamRadio"
|
||||
"Qt"
|
||||
"Network"
|
||||
];
|
||||
};
|
||||
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "svxlink";
|
||||
version = "25.05.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "sm0svx";
|
||||
repo = "svxlink";
|
||||
tag = version;
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-OyAR/6heGX6J53p6x+ZPXY6nzSv22umMTg0ISlWcjp8=";
|
||||
};
|
||||
|
||||
sourceRoot = "${finalAttrs.src.name}/src";
|
||||
|
||||
cmakeFlags = [
|
||||
"-DDO_INSTALL_CHOWN=NO"
|
||||
"-DRTLSDR_LIBRARIES=${rtl-sdr}/lib/librtlsdr.so"
|
||||
"-DRTLSDR_INCLUDE_DIRS=${rtl-sdr}/include"
|
||||
"../src"
|
||||
(lib.cmakeBool "DO_INSTALL_CHOWN" false)
|
||||
(lib.cmakeFeature "RTLSDR_LIBRARIES" "${rtl-sdr}/lib/librtlsdr.so")
|
||||
(lib.cmakeFeature "RTLSDR_INCLUDE_DIRS" "${rtl-sdr}/include")
|
||||
];
|
||||
|
||||
dontWrapQtApps = true;
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
pkg-config
|
||||
doxygen
|
||||
groff
|
||||
wrapQtAppsHook
|
||||
pkg-config
|
||||
qt5.qttools
|
||||
qt5.wrapQtAppsHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
alsa-lib
|
||||
curl
|
||||
gsm
|
||||
jsoncpp
|
||||
libgcrypt
|
||||
libsigcxx
|
||||
libgpiod_1
|
||||
libopus
|
||||
libsigcxx
|
||||
popt
|
||||
qtbase
|
||||
qttools
|
||||
qt5.qtbase
|
||||
rtl-sdr
|
||||
speex
|
||||
tcl
|
||||
jsoncpp
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
rm -rf $out/share/applications
|
||||
ln -s ${desktopItem}/share/applications $out/share/applications
|
||||
wrapQtApp $out/bin/qtel
|
||||
'';
|
||||
|
||||
@@ -94,9 +77,9 @@ stdenv.mkDerivation rec {
|
||||
Advanced repeater controller and EchoLink software for Linux including a
|
||||
GUI, Qtel - The Qt EchoLink client
|
||||
'';
|
||||
homepage = "http://www.svxlink.org/";
|
||||
license = with lib.licenses; [ gpl2 ];
|
||||
homepage = "https://www.svxlink.org/";
|
||||
license = with lib.licenses; [ gpl2Plus ];
|
||||
maintainers = with lib.maintainers; [ zaninime ];
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
}
|
||||
})
|
||||
@@ -15,7 +15,7 @@
|
||||
protobuf,
|
||||
sqlite,
|
||||
wrapQtAppsHook,
|
||||
tinyxml2,
|
||||
tinyxml,
|
||||
target ? "client",
|
||||
}:
|
||||
|
||||
@@ -77,7 +77,7 @@ mkDerivation rec {
|
||||
protobuf
|
||||
qtbase
|
||||
sqlite
|
||||
tinyxml2
|
||||
tinyxml
|
||||
];
|
||||
|
||||
qmakeFlags = [
|
||||
|
||||
@@ -18,13 +18,13 @@
|
||||
buildHomeAssistantComponent rec {
|
||||
owner = "blakeblackshear";
|
||||
domain = "frigate";
|
||||
version = "5.9.4";
|
||||
version = "5.10.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "blakeblackshear";
|
||||
repo = "frigate-hass-integration";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-LzrIvHJMB6mFAEfKoMIs0wL+xbEjoBIx48pSEcCHmg4=";
|
||||
hash = "sha256-rhYShAb251LfcrBjarcle041AWVSEi0wqc9/W1SlgUo=";
|
||||
};
|
||||
|
||||
dependencies = [ hass-web-proxy-lib ];
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
gettext,
|
||||
fuse,
|
||||
openssl,
|
||||
tinyxml2,
|
||||
tinyxml-2,
|
||||
gtest,
|
||||
}:
|
||||
|
||||
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
|
||||
buildInputs = [
|
||||
fuse
|
||||
openssl
|
||||
tinyxml2
|
||||
tinyxml-2
|
||||
gtest
|
||||
];
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -2609,6 +2609,7 @@ mapAliases {
|
||||
timescale-prometheus = throw "'timescale-prometheus' has been renamed to/replaced by 'promscale'"; # Converted to throw 2024-10-17
|
||||
tightvnc = throw "'tightvnc' has been removed as the version 1.3 is not maintained upstream anymore and is insecure"; # Added 2024-08-22
|
||||
timelens = throw "'timelens' has been removed due to lack of upstream maintenance"; # Added 2025-01-25
|
||||
tinyxml2 = throw "The 'tinyxml2' alias has been removed, use 'tinyxml' for https://sourceforge.net/projects/tinyxml/ or 'tinyxml-2' for https://github.com/leethomason/tinyxml2"; # Added 2025-10-11
|
||||
tix = tclPackages.tix; # Added 2024-10-02
|
||||
tkcvs = tkrev; # Added 2022-03-07
|
||||
tkgate = throw "'tkgate' has been removed as it is unmaintained"; # Added 2025-05-17
|
||||
|
||||
@@ -2703,9 +2703,7 @@ with pkgs;
|
||||
|
||||
emborg = python3Packages.callPackage ../development/python-modules/emborg { };
|
||||
|
||||
encfs = callPackage ../tools/filesystems/encfs {
|
||||
tinyxml2 = tinyxml-2;
|
||||
};
|
||||
encfs = callPackage ../tools/filesystems/encfs { };
|
||||
|
||||
ethercalc = callPackage ../servers/web-apps/ethercalc { };
|
||||
|
||||
@@ -8736,8 +8734,6 @@ with pkgs;
|
||||
|
||||
structuresynth = libsForQt5.callPackage ../development/libraries/structuresynth { };
|
||||
|
||||
svxlink = libsForQt5.callPackage ../applications/radio/svxlink { };
|
||||
|
||||
szurubooru = callPackage ../servers/web-apps/szurubooru { };
|
||||
|
||||
tclap = tclap_1_2;
|
||||
@@ -8746,9 +8742,7 @@ with pkgs;
|
||||
|
||||
tclap_1_4 = callPackage ../development/libraries/tclap/1.4.nix { };
|
||||
|
||||
tinyxml = tinyxml2;
|
||||
|
||||
tinyxml2 = callPackage ../development/libraries/tinyxml/2.6.2.nix { };
|
||||
tinyxml = callPackage ../development/libraries/tinyxml/2.6.2.nix { };
|
||||
|
||||
tk = tk-8_6;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user