mirror of
https://github.com/NixOS/nixpkgs.git
synced 2026-08-26 10:14:48 +00:00
Merge bb525e0730 into haskell-updates
This commit is contained in:
@@ -31,6 +31,7 @@ runCommand "nixpkgs-vet"
|
||||
env.NIXPKGS_VET_NIX_PACKAGE = nix;
|
||||
}
|
||||
''
|
||||
export NIX_STORE_DIR=$(mktemp -d)
|
||||
export NIX_STATE_DIR=$(mktemp -d)
|
||||
$NIXPKGS_VET_NIX_PACKAGE/bin/nix-store --init
|
||||
|
||||
|
||||
@@ -16,11 +16,6 @@
|
||||
+nixpkgs.url = "https://channels.nixos.org/nixos-26.05/nixexprs.tar.zst";
|
||||
```
|
||||
|
||||
- Emacs has been updated to 31.1.
|
||||
This introduces some backwards‐incompatible changes; see the NEWS for details.
|
||||
NEWS can be viewed from Emacs by typing `C-h n`, or by clicking `Help->Emacs News` from the menu bar.
|
||||
It can also be browsed [online](https://cgit.git.savannah.gnu.org/cgit/emacs.git/tree/etc/NEWS?h=emacs-31).
|
||||
|
||||
- `sing-box` now supports NaïveProxy outbounds.
|
||||
|
||||
## Backward Incompatibilities {#sec-nixpkgs-release-26.11-incompatibilities}
|
||||
@@ -147,6 +142,8 @@
|
||||
[pnpm `fetcherVersion` section](#javascript-pnpm-fetcherVersion) of the manual
|
||||
for details.
|
||||
|
||||
- `makeSetupHook` now uses structured attributes and only makes substitutions based on the values of the `substitutions` argument - other derivation attributes are no longer considered.
|
||||
|
||||
- `rebuilderd` has been updated to 0.27.0 introducing breaking changes. See upstream changelog for details: [0.26.0](https://github.com/kpcyrd/rebuilderd/releases/tag/v0.26.0), [0.27.0](https://github.com/kpcyrd/rebuilderd/releases/tag/v0.27.0)
|
||||
|
||||
- Starting with v14, `flameshot` will primarily utilise xdg-desktop-portal calls for screenshotting. This will directly affect users on X11 window managers due to the lack of a compatible portal with Screenshot feature. See [upstream changelog](https://github.com/flameshot-org/flameshot/releases/tag/v14.0.0) or [NixOS Flameshot](https://wiki.nixos.org/wiki/Flameshot) wiki page for workarounds.
|
||||
|
||||
@@ -21702,6 +21702,12 @@
|
||||
name = "Oops418";
|
||||
githubId = 93655215;
|
||||
};
|
||||
opdavies = {
|
||||
email = "oliver+github@oliverdavies.uk";
|
||||
github = "opdavies";
|
||||
githubId = 339813;
|
||||
name = "Oliver Davies";
|
||||
};
|
||||
opeik = {
|
||||
email = "sandro@stikic.com";
|
||||
github = "opeik";
|
||||
@@ -23084,6 +23090,12 @@
|
||||
name = "Pradyuman Vig";
|
||||
keys = [ { fingerprint = "240B 57DE 4271 2480 7CE3 EAC8 4F74 D536 1C4C A31E"; } ];
|
||||
};
|
||||
prauscher = {
|
||||
email = "prauscher@prauscher.de";
|
||||
github = "prauscher";
|
||||
githubId = 175521;
|
||||
name = "Patrick Rauscher";
|
||||
};
|
||||
preisschild = {
|
||||
email = "florian@florianstroeger.com";
|
||||
github = "Preisschild";
|
||||
@@ -23432,12 +23444,6 @@
|
||||
github = "pyle";
|
||||
githubId = 7279609;
|
||||
};
|
||||
pyrotelekinetic = {
|
||||
name = "Clover Ison";
|
||||
email = "clover@isons.org";
|
||||
github = "pyrotelekinetic";
|
||||
githubId = 29682759;
|
||||
};
|
||||
pyrox0 = {
|
||||
name = "Pyrox";
|
||||
email = "pyrox@pyrox.dev";
|
||||
@@ -29386,6 +29392,12 @@
|
||||
github = "tpwrules";
|
||||
githubId = 208010;
|
||||
};
|
||||
tr3foil = {
|
||||
name = "Clover Ison";
|
||||
email = "clover@isons.org";
|
||||
github = "tr3foil";
|
||||
githubId = 29682759;
|
||||
};
|
||||
transcaffeine = {
|
||||
name = "transcaffeine";
|
||||
email = "transcaffeine@finally.coffee";
|
||||
|
||||
@@ -54,6 +54,8 @@
|
||||
|
||||
- [mail-tlsa-check-exporter](https://github.com/ietf-tools/mail-tlsa-check-exporter), validates SMTP / IMAP server certificates against a TLSA record as a Prometheus exporter. Available as [services.prometheus.exporters.mail-tlsa-check](#opt-services.prometheus.exporters.mail-tlsa-check.enable).
|
||||
|
||||
- [snowflake-prometheus-exporter](https://github.com/grafana/snowflake-prometheus-exporter), a Prometheus exporter for Snowflake metrics. Available as [services.prometheus.exporters.snowflake](#opt-services.prometheus.exporters.snowflake.enable).
|
||||
|
||||
- [feishin](https://github.com/jeffvli/feishin), a modern self-hosted music player. Available as [services.feishin](#opt-services.feishin.enable).
|
||||
|
||||
- [CastSponsorSkip](https://github.com/gabe565/CastSponsorSkip/), skips YouTube sponsorships (and sometimes ads) on all local Google Cast devices.
|
||||
@@ -110,6 +112,8 @@
|
||||
|
||||
- [Rundeck](https://www.rundeck.com), Self-Service Operations [services.rundeck](#opt-services.rundeck.enable).
|
||||
|
||||
- [yet-another-cloudwatch-exporter](https://github.com/prometheus-community/yet-another-cloudwatch-exporter), a Prometheus exporter for AWS CloudWatch metrics. Available as [services.prometheus.exporters.yace](#opt-services.prometheus.exporters.yace.enable).
|
||||
|
||||
## Backward Incompatibilities {#sec-release-26.11-incompatibilities}
|
||||
|
||||
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
|
||||
@@ -199,6 +203,8 @@
|
||||
|
||||
- `services.pfix-srsd` and the supporting `pfixtools` package have been removed, as the project is dormant and does not support pcre2. `services.postsrsd` is the recommended replacement for Sender Rewriting Scheme support with Postfix.
|
||||
|
||||
- `services.quake3-server.port` has been removed in favor of the structured [](#opt-services.quake3-server.settings.net_port) option. Use `services.quake3-server.settings.net_port` to set any custom UDP port directly.
|
||||
|
||||
- Package `overseerr` has been removed as the `overseerr` and `jellyseerr` projects were merged under `seerr`.
|
||||
|
||||
- The papra NixOS module is now hardening the systemd unit by default. If this breaks any of the configured directories, please reconfigure them through `services.papra.environment` to enable sandbox passthrough.
|
||||
|
||||
@@ -7,20 +7,15 @@ testModuleArgs@{
|
||||
...
|
||||
}:
|
||||
let
|
||||
inherit (lib) mkOption types;
|
||||
inherit (types) either lines functionTo;
|
||||
inherit (lib) mkOption types const;
|
||||
inherit (types) coercedTo lines functionTo;
|
||||
in
|
||||
{
|
||||
options = {
|
||||
testScript = mkOption {
|
||||
type = either lines (functionTo lines);
|
||||
apply =
|
||||
v:
|
||||
if lib.isFunction v then
|
||||
# Only pass args the testScript function expects.
|
||||
args: v (builtins.intersectAttrs (lib.functionArgs v) args)
|
||||
else
|
||||
v;
|
||||
type = coercedTo lines const (functionTo lines);
|
||||
# Only pass args the testScript function expects.
|
||||
apply = v: args: v (builtins.intersectAttrs (lib.functionArgs v) args);
|
||||
description = ''
|
||||
A series of python declarations and statements that you write to perform
|
||||
the test.
|
||||
@@ -50,23 +45,19 @@ in
|
||||
withoutTestScriptReferences.includeTestScriptReferences = false;
|
||||
withoutTestScriptReferences.testScript = lib.mkForce "testscript omitted";
|
||||
|
||||
testScriptString =
|
||||
if lib.isFunction config.testScript then
|
||||
config.testScript {
|
||||
nodes = lib.mapAttrs (
|
||||
k: v:
|
||||
if v.virtualisation.useNixStoreImage then
|
||||
# prevent infinite recursion when testScript would
|
||||
# reference v's toplevel
|
||||
config.withoutTestScriptReferences.nodesCompat.${k}
|
||||
else
|
||||
# reuse memoized config
|
||||
v
|
||||
) config.nodesCompat;
|
||||
containers = config.containers;
|
||||
}
|
||||
else
|
||||
config.testScript;
|
||||
testScriptString = config.testScript {
|
||||
nodes = lib.mapAttrs (
|
||||
k: v:
|
||||
if v.virtualisation.useNixStoreImage then
|
||||
# prevent infinite recursion when testScript would
|
||||
# reference v's toplevel
|
||||
config.withoutTestScriptReferences.nodesCompat.${k}
|
||||
else
|
||||
# reuse memoized config
|
||||
v
|
||||
) config.nodesCompat;
|
||||
containers = config.containers;
|
||||
};
|
||||
|
||||
nodeDefaults =
|
||||
{ config, name, ... }:
|
||||
|
||||
@@ -58,7 +58,7 @@ let
|
||||
example = lib.literalExpression ''
|
||||
{
|
||||
"/EFI/BOOT/BOOTX64.EFI".source =
|
||||
"''${pkgs.systemd}/lib/systemd/boot/efi/systemd-bootx64.efi";
|
||||
"''${config.systemd.package}/lib/systemd/boot/efi/systemd-bootx64.efi";
|
||||
|
||||
"/loader/entries/nixos.conf".source = systemdBootEntry;
|
||||
}
|
||||
@@ -227,7 +227,7 @@ in
|
||||
"10-esp" = {
|
||||
contents = {
|
||||
"/EFI/BOOT/BOOTX64.EFI".source =
|
||||
"''${pkgs.systemd}/lib/systemd/boot/efi/systemd-bootx64.efi";
|
||||
"''${config.systemd.package}/lib/systemd/boot/efi/systemd-bootx64.efi";
|
||||
};
|
||||
repartConfig = {
|
||||
Type = "esp";
|
||||
|
||||
@@ -1084,6 +1084,7 @@
|
||||
./services/monitoring/nezha.nix
|
||||
./services/monitoring/ocsinventory-agent.nix
|
||||
./services/monitoring/opentelemetry-collector.nix
|
||||
./services/monitoring/orbit.nix
|
||||
./services/monitoring/osquery.nix
|
||||
./services/monitoring/parsedmarc.nix
|
||||
./services/monitoring/perses.nix
|
||||
|
||||
@@ -108,7 +108,7 @@ in
|
||||
DynamicUser = true;
|
||||
ExecStart = lib.getExe cfg.package;
|
||||
LockPersonality = true;
|
||||
MemoryDenyWriteExecute = true;
|
||||
MemoryDenyWriteExecute = false; # pcre2 jit
|
||||
PrivateDevices = true;
|
||||
ProtectClock = true;
|
||||
ProtectControlGroups = true;
|
||||
|
||||
@@ -154,7 +154,7 @@ let
|
||||
script =
|
||||
"exec "
|
||||
+ lib.optionalString cfg.inhibitsSleep ''
|
||||
${pkgs.systemd}/bin/systemd-inhibit \
|
||||
${config.systemd.package}/bin/systemd-inhibit \
|
||||
--who="borgbackup" \
|
||||
--what="sleep" \
|
||||
--why="Scheduled backup" \
|
||||
|
||||
@@ -392,7 +392,7 @@ in
|
||||
let
|
||||
extraOptions = lib.concatMapStrings (arg: " -o ${arg}") backup.extraOptions;
|
||||
inhibitCmd = lib.concatStringsSep " " [
|
||||
"${pkgs.systemd}/bin/systemd-inhibit"
|
||||
"${config.systemd.package}/bin/systemd-inhibit"
|
||||
"--mode='block'"
|
||||
"--who='restic'"
|
||||
"--what='sleep'"
|
||||
|
||||
@@ -752,7 +752,7 @@ in
|
||||
"AF_INET6"
|
||||
];
|
||||
LockPersonality = true;
|
||||
MemoryDenyWriteExecute = true;
|
||||
MemoryDenyWriteExecute = false; # pcre2 jit
|
||||
RestrictRealtime = true;
|
||||
RestrictSUIDSGID = true;
|
||||
PrivateMounts = true;
|
||||
|
||||
@@ -291,7 +291,7 @@ in
|
||||
};
|
||||
initial_session = mkIf (cfgAutoLogin.enable && (cfgAutoLogin.user != null)) {
|
||||
inherit (cfgAutoLogin) user;
|
||||
command = ''${getExe pkgs.bash} -lc "${pkgs.systemd}/bin/systemd-cat $(<${autoLoginCommand})"'';
|
||||
command = ''${getExe pkgs.bash} -lc "${config.systemd.package}/bin/systemd-cat $(<${autoLoginCommand})"'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -15,9 +15,16 @@ let
|
||||
;
|
||||
cfg = config.services.quake3-server;
|
||||
|
||||
configFile = pkgs.writeText "q3ds-extra.cfg" ''
|
||||
set net_port ${toString cfg.port}
|
||||
toQuake3Value = value: if lib.isBool value then (if value then "1" else "0") else toString value;
|
||||
|
||||
toQuake3Config =
|
||||
settings:
|
||||
lib.concatStrings (
|
||||
lib.mapAttrsToList (name: value: ''seta ${name} "${toQuake3Value value}"'' + "\n") settings
|
||||
);
|
||||
|
||||
configFile = pkgs.writeText "q3ds-extra.cfg" ''
|
||||
${toQuake3Config cfg.settings}
|
||||
${cfg.extraConfig}
|
||||
'';
|
||||
|
||||
@@ -50,19 +57,19 @@ let
|
||||
'';
|
||||
in
|
||||
{
|
||||
|
||||
imports = [
|
||||
(lib.mkRenamedOptionModule
|
||||
[ "services" "quake3-server" "port" ]
|
||||
[ "services" "quake3-server" "settings" "net_port" ]
|
||||
)
|
||||
];
|
||||
|
||||
options = {
|
||||
services.quake3-server = {
|
||||
enable = mkEnableOption "Quake 3 dedicated server";
|
||||
package = lib.mkPackageOption pkgs "ioquake3" { };
|
||||
|
||||
port = mkOption {
|
||||
type = types.port;
|
||||
default = 27960;
|
||||
description = ''
|
||||
UDP Port the server should listen on.
|
||||
'';
|
||||
};
|
||||
|
||||
openFirewall = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
@@ -71,16 +78,59 @@ in
|
||||
'';
|
||||
};
|
||||
|
||||
settings = mkOption {
|
||||
type = types.submodule {
|
||||
freeformType = types.attrsOf (
|
||||
types.nullOr (
|
||||
types.oneOf [
|
||||
types.str
|
||||
types.bool
|
||||
types.int
|
||||
types.float
|
||||
types.port
|
||||
]
|
||||
)
|
||||
);
|
||||
options = {
|
||||
net_port = lib.mkOption {
|
||||
type = lib.types.port;
|
||||
default = 27960;
|
||||
description = "UDP port for the dedicated server to bind to.";
|
||||
};
|
||||
};
|
||||
};
|
||||
default = { };
|
||||
example = {
|
||||
sv_hostname = "My Quake 3 server";
|
||||
g_gametype = 0;
|
||||
sv_pure = true;
|
||||
};
|
||||
description = ''
|
||||
Quake 3 cvars set via `seta` on server start (i.e. persisted,
|
||||
archive-flagged cvars – the vast majority of server settings).
|
||||
Note that options changed via RCON will not be persisted. To list
|
||||
all possible options, use "cvarlist 1" via RCON.
|
||||
'';
|
||||
};
|
||||
|
||||
extraConfig = mkOption {
|
||||
type = types.lines;
|
||||
default = "";
|
||||
example = ''
|
||||
seta rconPassword "superSecret" // sets RCON password for remote console
|
||||
seta sv_hostname "My Quake 3 server" // name that appears in server list
|
||||
// map rotation and other things that don't map onto plain cvars
|
||||
set d1 "map q3dm1 ; set nextmap vstr d2"
|
||||
set d2 "map q3dm7 ; set nextmap vstr d1"
|
||||
vstr d1
|
||||
|
||||
// rarely needed: cvars with a non-seta flag
|
||||
sets sv_privatePassword "hidden"
|
||||
'';
|
||||
description = ''
|
||||
Extra configuration options. Note that options changed via RCON will not be persisted. To list all possible
|
||||
options, use "cvarlist 1" via RCON.
|
||||
Extra configuration lines appended after `settings`, for anything
|
||||
that isn't a plain persisted cvar: map-rotation scripts, `exec`,
|
||||
`vstr`, aliases, or cvars that need `set`/`sets`/`sett`/`setu`
|
||||
instead of `seta`. Note that options changed via RCON will not be
|
||||
persisted. To list all possible options, use "cvarlist 1" via RCON.
|
||||
'';
|
||||
};
|
||||
|
||||
@@ -103,7 +153,7 @@ in
|
||||
baseq3InStore = builtins.typeOf cfg.baseq3 == "set";
|
||||
in
|
||||
mkIf cfg.enable {
|
||||
networking.firewall.allowedUDPPorts = mkIf cfg.openFirewall [ cfg.port ];
|
||||
networking.firewall.allowedUDPPorts = mkIf cfg.openFirewall [ cfg.settings.net_port ];
|
||||
|
||||
systemd.services.q3ds = {
|
||||
description = "Quake 3 dedicated server";
|
||||
@@ -115,7 +165,7 @@ in
|
||||
serviceConfig = with lib; {
|
||||
Restart = "always";
|
||||
DynamicUser = true;
|
||||
WorkingDirectory = home;
|
||||
WorkingDirectory = if baseq3InStore then home else cfg.baseq3;
|
||||
|
||||
# It is possible to alter configuration files via RCON. To ensure reproducibility we have to prevent this
|
||||
ReadOnlyPaths = if baseq3InStore then home else cfg.baseq3;
|
||||
|
||||
@@ -332,7 +332,7 @@
|
||||
# devices needed here become available. This is terribly broken and
|
||||
# essentially no better than a random sleep(). See PR #452645 for
|
||||
# an attempt to fix this issue.
|
||||
ExecStartPre = "-${lib.getExe' pkgs.systemd "udevadm"} settle --timeout=180";
|
||||
ExecStartPre = "-${lib.getExe' config.systemd.package "udevadm"} settle --timeout=180";
|
||||
ExecStart =
|
||||
let
|
||||
script = pkgs.callPackage ./cdi-generate.nix {
|
||||
|
||||
@@ -405,17 +405,17 @@ in
|
||||
commands = [
|
||||
{
|
||||
# Ability to restart homebridge service
|
||||
command = "${pkgs.systemd}/bin/systemctl restart homebridge";
|
||||
command = "${config.systemd.package}/bin/systemctl restart homebridge";
|
||||
options = [ "NOPASSWD" ];
|
||||
}
|
||||
{
|
||||
# Ability to shutdown server
|
||||
command = "${pkgs.systemd}/bin/shutdown -h now";
|
||||
command = "${config.systemd.package}/bin/shutdown -h now";
|
||||
options = [ "NOPASSWD" ];
|
||||
}
|
||||
{
|
||||
# Ability to restart server
|
||||
command = "${pkgs.systemd}/bin/shutdown -r now";
|
||||
command = "${config.systemd.package}/bin/shutdown -r now";
|
||||
options = [ "NOPASSWD" ];
|
||||
}
|
||||
];
|
||||
|
||||
@@ -355,7 +355,7 @@ in
|
||||
PrivateDevices = true;
|
||||
ProtectSystem = "full";
|
||||
CapabilityBoundingSet = [ "~CAP_NET_ADMIN CAP_SYS_ADMIN CAP_SYS_BOOT CAP_SYS_MODULE" ];
|
||||
MemoryDenyWriteExecute = true;
|
||||
MemoryDenyWriteExecute = false; # pcre2 jit
|
||||
ProtectKernelModules = true;
|
||||
ProtectKernelTunables = true;
|
||||
ProtectControlGroups = true;
|
||||
|
||||
@@ -1061,7 +1061,7 @@ in
|
||||
"CAP_SYS_RESOURCE"
|
||||
];
|
||||
LockPersonality = true;
|
||||
MemoryDenyWriteExecute = true;
|
||||
MemoryDenyWriteExecute = false; # pcre2 jit
|
||||
NoNewPrivileges = false; # e.g for sendmail
|
||||
OOMPolicy = "continue";
|
||||
PrivateTmp = true;
|
||||
|
||||
@@ -1011,7 +1011,7 @@ in
|
||||
PrivateDevices = true;
|
||||
ProtectSystem = "full";
|
||||
CapabilityBoundingSet = [ "~CAP_NET_ADMIN CAP_SYS_ADMIN CAP_SYS_BOOT CAP_SYS_MODULE" ];
|
||||
MemoryDenyWriteExecute = true;
|
||||
MemoryDenyWriteExecute = false; # pcre2 jit
|
||||
ProtectKernelModules = true;
|
||||
ProtectKernelTunables = true;
|
||||
ProtectControlGroups = true;
|
||||
|
||||
@@ -96,7 +96,7 @@ in
|
||||
ln -s ${lib.getExe cfg.blenderPackage} BlenderData/nix-blender-linux64/blender
|
||||
''
|
||||
+ lib.optionalString (cfg.basicSecurityPasswordFile != null) ''
|
||||
BLENDFARM_PASSWORD=$(${pkgs.systemd}/bin/systemd-creds cat BLENDFARM_PASS_FILE)
|
||||
BLENDFARM_PASSWORD=$(${config.systemd.package}/bin/systemd-creds cat BLENDFARM_PASS_FILE)
|
||||
sed -i "s/null/\"$BLENDFARM_PASSWORD\"/g" ServerSettings
|
||||
'';
|
||||
serviceConfig = {
|
||||
|
||||
@@ -78,7 +78,7 @@ in
|
||||
export CLOUDFLARE_EMAIL="${cfg.email}"
|
||||
''}
|
||||
${lib.optionalString (cfg.apiTokenFile != null) ''
|
||||
export CLOUDFLARE_APITOKEN=$(${pkgs.systemd}/bin/systemd-creds cat CLOUDFLARE_APITOKEN_FILE)
|
||||
export CLOUDFLARE_APITOKEN=$(${config.systemd.package}/bin/systemd-creds cat CLOUDFLARE_APITOKEN_FILE)
|
||||
''}
|
||||
${pkgs.cfdyndns}/bin/cfdyndns
|
||||
'';
|
||||
|
||||
@@ -96,7 +96,7 @@ in
|
||||
startAt = "*:0/5";
|
||||
path = [
|
||||
pkgs.gnused
|
||||
pkgs.systemd
|
||||
config.systemd.package
|
||||
pkgs.curl
|
||||
pkgs.gawk
|
||||
duckdns
|
||||
|
||||
@@ -777,7 +777,7 @@ in
|
||||
];
|
||||
RestrictNamespaces = true;
|
||||
LockPersonality = true;
|
||||
MemoryDenyWriteExecute = true;
|
||||
MemoryDenyWriteExecute = false; # pcre2 jit
|
||||
RestrictRealtime = true;
|
||||
RestrictSUIDSGID = true;
|
||||
RemoveIPC = true;
|
||||
|
||||
@@ -953,7 +953,7 @@ in
|
||||
++ lib.optional (useSendmail && config.services.postfix.enable) "AF_NETLINK";
|
||||
RestrictNamespaces = true;
|
||||
LockPersonality = true;
|
||||
MemoryDenyWriteExecute = true;
|
||||
MemoryDenyWriteExecute = false; # pcre2 jit
|
||||
RestrictRealtime = true;
|
||||
RestrictSUIDSGID = true;
|
||||
RemoveIPC = true;
|
||||
|
||||
182
nixos/modules/services/monitoring/orbit.nix
Normal file
182
nixos/modules/services/monitoring/orbit.nix
Normal file
@@ -0,0 +1,182 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
cfg = config.services.orbit;
|
||||
in
|
||||
{
|
||||
options.services.orbit = {
|
||||
enable = lib.mkEnableOption "Fleet Orbit agent" // {
|
||||
description = "Enable the Fleet Orbit agent.";
|
||||
example = lib.literalExpression ''
|
||||
# Use an enrollment secret from a plaintext file managed outside the Nix store.
|
||||
{
|
||||
services.orbit = {
|
||||
enable = true;
|
||||
fleetUrl = "https://fleet.example.com";
|
||||
enrollSecretPath = "/etc/fleet/enroll-secret";
|
||||
|
||||
desktop.enable = true;
|
||||
};
|
||||
}
|
||||
|
||||
# Use an enrollment secret from sops-nix.
|
||||
{ config, ... }:
|
||||
{
|
||||
sops.secrets.fleet-orbit-enroll-secret = { };
|
||||
|
||||
services.orbit = {
|
||||
enable = true;
|
||||
fleetUrl = "https://fleet.example.com";
|
||||
enrollSecretPath = config.sops.secrets.fleet-orbit-enroll-secret.path;
|
||||
|
||||
desktop.enable = true;
|
||||
};
|
||||
}
|
||||
'';
|
||||
};
|
||||
|
||||
orbitPackage = lib.mkPackageOption pkgs "fleet-orbit" { };
|
||||
|
||||
osqueryPackage = lib.mkPackageOption pkgs "osquery" { };
|
||||
|
||||
desktop = {
|
||||
enable = lib.mkEnableOption "Fleet Desktop tray application";
|
||||
|
||||
package = lib.mkPackageOption pkgs "fleet-desktop" { };
|
||||
|
||||
alternativeBrowserHost = lib.mkOption {
|
||||
type = lib.types.nullOr lib.types.str;
|
||||
default = null;
|
||||
example = "fleet-browser.example.com";
|
||||
description = ''
|
||||
Alternative host to use for Fleet Desktop browser URLs. This can be
|
||||
required when Fleet uses TLS client authentication.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
fleetUrl = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
example = "https://fleet.example.com";
|
||||
description = "The base URL of the Fleet server.";
|
||||
};
|
||||
|
||||
enrollSecretPath = lib.mkOption {
|
||||
type = lib.types.path;
|
||||
example = "/run/secrets/fleet-enroll-secret";
|
||||
description = ''
|
||||
Path to a file containing the enroll secret for authenticating to the Fleet server.
|
||||
This should point to a secret outside the Nix store, for example a sops-nix or agenix
|
||||
secret path.
|
||||
'';
|
||||
};
|
||||
|
||||
fleetCertificate = lib.mkOption {
|
||||
type = lib.types.path;
|
||||
default = "${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt";
|
||||
defaultText = lib.literalExpression "\"\${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt\"";
|
||||
description = "Path to the Fleet server certificate chain.";
|
||||
};
|
||||
|
||||
debug = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
description = "Enable debug logging.";
|
||||
};
|
||||
|
||||
devMode = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
description = "Run Orbit in development mode.";
|
||||
};
|
||||
|
||||
enableScripts = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
description = "Enable Fleet script execution.";
|
||||
};
|
||||
|
||||
endUserEmail = lib.mkOption {
|
||||
type = lib.types.nullOr lib.types.str;
|
||||
default = null;
|
||||
example = "user@example.com";
|
||||
description = "End-user email to pass to Orbit.";
|
||||
};
|
||||
|
||||
fleetManagedHostIdentityCertificate = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Configure Orbit to use Fleet-managed host identity certificates.
|
||||
This requires a Fleet Enterprise Edition subscription.
|
||||
'';
|
||||
};
|
||||
|
||||
hostIdentifier = lib.mkOption {
|
||||
type = lib.types.nullOr (
|
||||
lib.types.enum [
|
||||
"uuid"
|
||||
"instance"
|
||||
]
|
||||
);
|
||||
default = null;
|
||||
example = "uuid";
|
||||
description = "Host identifier mode to use when Orbit and osquery enroll to Fleet.";
|
||||
};
|
||||
|
||||
insecure = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
description = "Disable TLS certificate verification.";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
systemd.services.orbit = {
|
||||
description = "Fleet Orbit agent";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "network-online.target" ];
|
||||
wants = [ "network-online.target" ];
|
||||
|
||||
environment = lib.filterAttrs (_: value: value != null) {
|
||||
ORBIT_FLEET_URL = cfg.fleetUrl;
|
||||
ORBIT_ENROLL_SECRET_PATH = "%d/enroll-secret";
|
||||
ORBIT_FLEET_CERTIFICATE = cfg.fleetCertificate;
|
||||
ORBIT_DEBUG = lib.boolToString cfg.debug;
|
||||
ORBIT_DEV_MODE = lib.boolToString cfg.devMode;
|
||||
ORBIT_ENABLE_SCRIPTS = lib.boolToString cfg.enableScripts;
|
||||
ORBIT_END_USER_EMAIL = cfg.endUserEmail;
|
||||
ORBIT_FLEET_MANAGED_HOST_IDENTITY_CERTIFICATE = lib.boolToString cfg.fleetManagedHostIdentityCertificate;
|
||||
ORBIT_HOST_IDENTIFIER = cfg.hostIdentifier;
|
||||
ORBIT_INSECURE = lib.boolToString cfg.insecure;
|
||||
ORBIT_FLEET_DESKTOP_ALTERNATIVE_BROWSER_HOST = cfg.desktop.alternativeBrowserHost;
|
||||
|
||||
ORBIT_DISABLE_KEYSTORE = "true";
|
||||
ORBIT_DISABLE_UPDATES = "true";
|
||||
ORBIT_FLEET_DESKTOP = lib.boolToString cfg.desktop.enable;
|
||||
ORBIT_LOG_FILE = "/var/log/orbit/orbit.log";
|
||||
ORBIT_OSQUERY_DB = "/var/lib/orbit/osquery.db";
|
||||
ORBIT_ROOT_DIR = "/var/lib/orbit";
|
||||
NIX_ORBIT_OSQUERYD_PATH = lib.getExe' cfg.osqueryPackage "osqueryd";
|
||||
NIX_ORBIT_OSQUERY_LOG_PATH = "/var/log/orbit/osquery";
|
||||
NIX_ORBIT_DESKTOP_PATH = if cfg.desktop.enable then lib.getExe cfg.desktop.package else null;
|
||||
};
|
||||
|
||||
serviceConfig = {
|
||||
ExecStart = lib.getExe cfg.orbitPackage;
|
||||
LoadCredential = [ "enroll-secret:${cfg.enrollSecretPath}" ];
|
||||
StateDirectory = "orbit";
|
||||
LogsDirectory = "orbit";
|
||||
TimeoutStartSec = 0;
|
||||
Restart = "always";
|
||||
RestartSec = 60;
|
||||
KillMode = "control-group";
|
||||
KillSignal = "SIGTERM";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -121,6 +121,7 @@ let
|
||||
"smartctl"
|
||||
"smokeping"
|
||||
"snmp"
|
||||
"snowflake"
|
||||
"speedtest"
|
||||
"sql"
|
||||
"statsd"
|
||||
@@ -135,6 +136,7 @@ let
|
||||
"varnish"
|
||||
"wireguard"
|
||||
"xray"
|
||||
"yace"
|
||||
"zfs-siebenmann"
|
||||
"zfs"
|
||||
]
|
||||
|
||||
@@ -0,0 +1,91 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
cfg = config.services.prometheus.exporters.snowflake;
|
||||
inherit (lib)
|
||||
mkIf
|
||||
mkOption
|
||||
types
|
||||
optional
|
||||
escapeShellArg
|
||||
concatStringsSep
|
||||
getExe
|
||||
;
|
||||
|
||||
# The private key is passed to systemd via LoadCredential, which exposes it in
|
||||
# the per-service credentials directory (`%d`) readable by the service even
|
||||
# under DynamicUser.
|
||||
args = [
|
||||
"--web.listen-address ${cfg.listenAddress}:${toString cfg.port}"
|
||||
"--account ${escapeShellArg cfg.account}"
|
||||
"--username ${escapeShellArg cfg.username}"
|
||||
"--warehouse ${escapeShellArg cfg.warehouse}"
|
||||
"--role ${escapeShellArg cfg.role}"
|
||||
]
|
||||
++ optional (cfg.privateKeyFile != null) "--private-key-path=%d/snowflake-private-key"
|
||||
++ cfg.extraFlags;
|
||||
in
|
||||
{
|
||||
port = 9975;
|
||||
extraOpts = {
|
||||
account = mkOption {
|
||||
type = types.str;
|
||||
example = "xy12345.us-east-1";
|
||||
description = "Snowflake account to collect metrics for (`--account`).";
|
||||
};
|
||||
username = mkOption {
|
||||
type = types.str;
|
||||
description = "Username used when querying metrics (`--username`).";
|
||||
};
|
||||
warehouse = mkOption {
|
||||
type = types.str;
|
||||
description = "Warehouse used when querying metrics (`--warehouse`).";
|
||||
};
|
||||
role = mkOption {
|
||||
type = types.str;
|
||||
default = "ACCOUNTADMIN";
|
||||
description = "Role used when querying metrics (`--role`).";
|
||||
};
|
||||
privateKeyFile = mkOption {
|
||||
type = types.nullOr types.path;
|
||||
default = null;
|
||||
example = "/run/secrets/snowflake-exporter.p8";
|
||||
description = ''
|
||||
Path to the user's RSA private key for key-pair authentication. The file
|
||||
is passed to the service via {manpage}`systemd.exec(5)` credentials, so
|
||||
it is read only by the exporter and never copied into the world-readable
|
||||
Nix store. If the key is encrypted, supply its password via
|
||||
{option}`environmentFile` (`SNOWFLAKE_EXPORTER_PRIVATE_KEY_PASSWORD`).
|
||||
|
||||
Mutually exclusive with password authentication; when set, do not also
|
||||
provide `SNOWFLAKE_EXPORTER_PASSWORD`.
|
||||
'';
|
||||
};
|
||||
environmentFile = mkOption {
|
||||
type = types.nullOr types.path;
|
||||
default = null;
|
||||
example = "/run/secrets/snowflake-exporter.env";
|
||||
description = ''
|
||||
Path to an environment file, as defined in {manpage}`systemd.exec(5)`,
|
||||
used to pass secrets without exposing them in the world-readable Nix
|
||||
store or the process's command line. For password authentication set
|
||||
`SNOWFLAKE_EXPORTER_PASSWORD`; for an encrypted key (see
|
||||
{option}`privateKeyFile`) set `SNOWFLAKE_EXPORTER_PRIVATE_KEY_PASSWORD`.
|
||||
'';
|
||||
};
|
||||
};
|
||||
serviceOpts = {
|
||||
serviceConfig = {
|
||||
EnvironmentFile = mkIf (cfg.environmentFile != null) [ cfg.environmentFile ];
|
||||
LoadCredential = mkIf (cfg.privateKeyFile != null) [
|
||||
"snowflake-private-key:${cfg.privateKeyFile}"
|
||||
];
|
||||
ExecStart = "${getExe pkgs.prometheus-snowflake-exporter} ${concatStringsSep " " args}";
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
cfg = config.services.prometheus.exporters.yace;
|
||||
inherit (lib)
|
||||
mkIf
|
||||
mkOption
|
||||
types
|
||||
escapeShellArg
|
||||
concatStringsSep
|
||||
getExe
|
||||
;
|
||||
in
|
||||
{
|
||||
port = 5000;
|
||||
extraOpts = {
|
||||
configFile = mkOption {
|
||||
type = types.path;
|
||||
description = ''
|
||||
Path to the YACE configuration file, defining which CloudWatch
|
||||
metrics to scrape. See
|
||||
<https://github.com/prometheus-community/yet-another-cloudwatch-exporter#configuration>
|
||||
for the format. AWS credentials are supplied separately via the
|
||||
environment (see {option}`environmentFile`, an IMDS instance role,
|
||||
or the usual `AWS_*` variables).
|
||||
'';
|
||||
};
|
||||
environmentFile = mkOption {
|
||||
type = types.nullOr types.path;
|
||||
default = null;
|
||||
example = "/run/secrets/yace.env";
|
||||
description = ''
|
||||
Path to an environment file, as defined in {manpage}`systemd.exec(5)`,
|
||||
used to pass AWS credentials (e.g. `AWS_ACCESS_KEY_ID`,
|
||||
`AWS_SECRET_ACCESS_KEY`, `AWS_REGION`) to the exporter without exposing
|
||||
them in the world-readable Nix store. Not needed on EC2 with an IMDS
|
||||
instance role.
|
||||
'';
|
||||
};
|
||||
};
|
||||
serviceOpts = {
|
||||
serviceConfig = {
|
||||
EnvironmentFile = mkIf (cfg.environmentFile != null) [ cfg.environmentFile ];
|
||||
ExecStart = concatStringsSep " " (
|
||||
[
|
||||
(getExe pkgs.yet-another-cloudwatch-exporter)
|
||||
"--config.file ${escapeShellArg cfg.configFile}"
|
||||
"--listen-address ${cfg.listenAddress}:${toString cfg.port}"
|
||||
]
|
||||
++ cfg.extraFlags
|
||||
);
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -361,7 +361,7 @@ let
|
||||
MONITOR = <generated from config.power.ups.upsmon.monitor>
|
||||
NOTIFYCMD = "''${cfg.package}/bin/upssched";
|
||||
POWERDOWNFLAG = "/run/killpower";
|
||||
SHUTDOWNCMD = "''${pkgs.systemd}/bin/shutdown now";
|
||||
SHUTDOWNCMD = "''${config.systemd.package}/bin/shutdown now";
|
||||
}
|
||||
'';
|
||||
description = "Additional settings to add to `upsmon.conf`.";
|
||||
@@ -398,7 +398,7 @@ let
|
||||
);
|
||||
NOTIFYCMD = lib.mkDefault "${cfg.package}/bin/upssched";
|
||||
POWERDOWNFLAG = lib.mkDefault "/run/killpower";
|
||||
SHUTDOWNCMD = lib.mkDefault "${pkgs.systemd}/bin/shutdown now";
|
||||
SHUTDOWNCMD = lib.mkDefault "${config.systemd.package}/bin/shutdown now";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -120,7 +120,7 @@ in
|
||||
else
|
||||
"-o \"UserKnownHostsFile=/dev/null\" -o \"StrictHostKeyChecking=no\"";
|
||||
ready = pkgs.writers.writeBash "systemd-signal-ready" ''
|
||||
${pkgs.systemd}/bin/systemd-notify --ready
|
||||
${config.systemd.package}/bin/systemd-notify --ready
|
||||
'';
|
||||
in
|
||||
''
|
||||
|
||||
@@ -97,7 +97,7 @@ in
|
||||
source = pkgs.writeShellScript "restart-clatd" ''
|
||||
[ "$DEVICE_IFACE" = "${cfg.settings.clat-dev or "clat"}" ] && exit 0
|
||||
[ "$2" != "up" ] && [ "$2" != "down" ] && exit 0
|
||||
${pkgs.systemd}/bin/systemctl restart clatd.service
|
||||
${config.systemd.package}/bin/systemctl restart clatd.service
|
||||
'';
|
||||
}
|
||||
];
|
||||
|
||||
@@ -73,6 +73,8 @@ in
|
||||
"${cfg.rootDir}"
|
||||
"/etc/resolv.conf"
|
||||
];
|
||||
# warp-svc uses this absolute FHS path instead of looking up nft in PATH.
|
||||
BindReadOnlyPaths = [ "${lib.getExe pkgs.nftables}:/usr/sbin/nft" ];
|
||||
CapabilityBoundingSet = caps;
|
||||
AmbientCapabilities = caps;
|
||||
Restart = "always";
|
||||
|
||||
@@ -302,7 +302,7 @@ in
|
||||
]
|
||||
++ lib.optional cfg.setHostname (
|
||||
pkgs.writeShellScriptBin "hostname" ''
|
||||
${lib.getExe' pkgs.systemd "hostnamectl"} set-hostname --transient $1
|
||||
${lib.getExe' config.systemd.package "hostnamectl"} set-hostname --transient $1
|
||||
''
|
||||
);
|
||||
|
||||
|
||||
@@ -273,7 +273,7 @@ in
|
||||
ProtectSystem = "strict";
|
||||
DevicePolicy = "closed";
|
||||
LockPersonality = true;
|
||||
MemoryDenyWriteExecute = true;
|
||||
MemoryDenyWriteExecute = false; # pcre2 jit
|
||||
ProtectHostname = true;
|
||||
ProtectProc = true;
|
||||
ProtectKernelLogs = true;
|
||||
|
||||
@@ -31,7 +31,8 @@ let
|
||||
format = pkgs.formats.keyValue { };
|
||||
settingsFile = format.generate "pocket-id-env-vars" cfg.settings;
|
||||
|
||||
exportCredentials = n: _: ''export ${n}="$(${pkgs.systemd}/bin/systemd-creds cat ${n}_FILE)"'';
|
||||
exportCredentials =
|
||||
n: _: ''export ${n}="$(${config.systemd.package}/bin/systemd-creds cat ${n}_FILE)"'';
|
||||
exportAllCredentials = vars: lib.concatStringsSep "\n" (lib.mapAttrsToList exportCredentials vars);
|
||||
getLoadCredentialList = lib.mapAttrsToList (n: v: "${n}_FILE:${v}") cfg.credentials;
|
||||
in
|
||||
|
||||
@@ -9,7 +9,8 @@ let
|
||||
meiliCfg = config.services.meilisearch;
|
||||
format = pkgs.formats.yaml { };
|
||||
configFile = format.generate "librechat.yaml" cfg.settings;
|
||||
exportCredentials = n: _: ''export ${n}="$(${pkgs.systemd}/bin/systemd-creds cat ${n}_FILE)"'';
|
||||
exportCredentials =
|
||||
n: _: ''export ${n}="$(${config.systemd.package}/bin/systemd-creds cat ${n}_FILE)"'';
|
||||
exportAllCredentials = vars: lib.concatStringsSep "\n" (lib.mapAttrsToList exportCredentials vars);
|
||||
getLoadCredentialList = lib.mapAttrsToList (n: v: "${n}_FILE:${v}") cfg.credentials;
|
||||
in
|
||||
|
||||
@@ -1626,11 +1626,7 @@ in
|
||||
];
|
||||
RestrictNamespaces = true;
|
||||
LockPersonality = true;
|
||||
MemoryDenyWriteExecute =
|
||||
!(
|
||||
(builtins.any (mod: (mod.allowMemoryWriteExecute or false)) cfg.package.modules)
|
||||
|| (lib.getName cfg.package == "openresty")
|
||||
);
|
||||
MemoryDenyWriteExecute = false; # for pcre2 & several plugins
|
||||
RestrictRealtime = true;
|
||||
RestrictSUIDSGID = true;
|
||||
RemoveIPC = true;
|
||||
|
||||
@@ -139,7 +139,7 @@ in
|
||||
"AF_INET6"
|
||||
];
|
||||
LockPersonality = true;
|
||||
MemoryDenyWriteExecute = true;
|
||||
MemoryDenyWriteExecute = false; # pcre2 jit
|
||||
RestrictRealtime = true;
|
||||
RestrictSUIDSGID = true;
|
||||
PrivateMounts = true;
|
||||
|
||||
@@ -55,7 +55,7 @@ in
|
||||
|
||||
storePaths = [
|
||||
cfg.package
|
||||
"${pkgs.systemd}/lib/systemd/systemd-reply-password"
|
||||
"${config.systemd.package}/lib/systemd/systemd-reply-password"
|
||||
"${pkgs.jose}/bin/jose"
|
||||
"${pkgs.curl}/bin/curl"
|
||||
"${pkgs.cryptsetup}/bin/cryptsetup"
|
||||
|
||||
@@ -92,7 +92,7 @@ in
|
||||
systemd.services.systemd-journal-gatewayd.serviceConfig.ExecStart = [
|
||||
# Clear the default command line
|
||||
""
|
||||
"${pkgs.systemd}/lib/systemd/systemd-journal-gatewayd ${cliArgs}"
|
||||
"${config.systemd.package}/lib/systemd/systemd-journal-gatewayd ${cliArgs}"
|
||||
];
|
||||
|
||||
systemd.sockets.systemd-journal-gatewayd = {
|
||||
|
||||
@@ -123,7 +123,7 @@ in
|
||||
systemd.services.systemd-journal-remote.serviceConfig.ExecStart = [
|
||||
# Clear the default command line
|
||||
""
|
||||
"${pkgs.systemd}/lib/systemd/systemd-journal-remote ${cliArgs}"
|
||||
"${config.systemd.package}/lib/systemd/systemd-journal-remote ${cliArgs}"
|
||||
];
|
||||
|
||||
systemd.sockets.systemd-journal-remote = {
|
||||
|
||||
@@ -1330,6 +1330,7 @@ in
|
||||
openvswitch = runTest ./openvswitch.nix;
|
||||
optee = runTestOn [ "aarch64-linux" ] ./optee.nix;
|
||||
orangefs = runTest ./orangefs.nix;
|
||||
orbit = runTestOn [ "x86_64-linux" ] ./orbit.nix;
|
||||
orthanc = runTest ./orthanc.nix;
|
||||
os-prober = handleTestOn [ "x86_64-linux" ] ./os-prober.nix { };
|
||||
osquery = handleTestOn [ "x86_64-linux" ] ./osquery.nix { };
|
||||
|
||||
@@ -57,7 +57,7 @@ in
|
||||
in
|
||||
{
|
||||
"/EFI/BOOT/BOOT${lib.toUpper efiArch}.EFI".source =
|
||||
"${pkgs.systemd}/lib/systemd/boot/efi/systemd-boot${efiArch}.efi";
|
||||
"${config.systemd.package}/lib/systemd/boot/efi/systemd-boot${efiArch}.efi";
|
||||
|
||||
"/EFI/Linux/${config.system.boot.loader.ukiFile}".source =
|
||||
"${config.system.build.uki}/${config.system.boot.loader.ukiFile}";
|
||||
|
||||
47
nixos/tests/orbit.nix
Normal file
47
nixos/tests/orbit.nix
Normal file
@@ -0,0 +1,47 @@
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
name = "orbit";
|
||||
|
||||
nodes.machine =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
environment.etc."fleet/enroll-secret".text = "test-secret";
|
||||
|
||||
services.orbit = {
|
||||
enable = true;
|
||||
orbitPackage = pkgs.writeShellApplication {
|
||||
name = "orbit";
|
||||
text = ''
|
||||
test "$ORBIT_FLEET_URL" = "https://fleet.example.test"
|
||||
test -r "$ORBIT_ENROLL_SECRET_PATH"
|
||||
test "$(cat "$ORBIT_ENROLL_SECRET_PATH")" = "test-secret"
|
||||
test -x "$NIX_ORBIT_OSQUERYD_PATH"
|
||||
sleep infinity
|
||||
'';
|
||||
};
|
||||
osqueryPackage = pkgs.writeShellApplication {
|
||||
name = "osqueryd";
|
||||
text = "echo osquery";
|
||||
};
|
||||
desktop = {
|
||||
enable = true;
|
||||
package = pkgs.writeShellApplication {
|
||||
name = "fleet-desktop";
|
||||
text = "echo fleet-desktop";
|
||||
};
|
||||
alternativeBrowserHost = "fleet-browser.example.test";
|
||||
};
|
||||
fleetUrl = "https://fleet.example.test";
|
||||
enrollSecretPath = "/etc/fleet/enroll-secret";
|
||||
debug = true;
|
||||
enableScripts = true;
|
||||
hostIdentifier = "uuid";
|
||||
};
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
machine.start()
|
||||
machine.wait_for_unit("orbit.service")
|
||||
'';
|
||||
}
|
||||
@@ -1803,6 +1803,34 @@ let
|
||||
'';
|
||||
};
|
||||
|
||||
snowflake =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
exporterConfig = {
|
||||
enable = true;
|
||||
account = "dummy";
|
||||
username = "dummy";
|
||||
warehouse = "dummy";
|
||||
# key-pair auth: exercises the LoadCredential + `%d` wiring. The key is
|
||||
# never parsed until a scrape, so a dummy file is enough to boot.
|
||||
privateKeyFile = pkgs.writeText "snowflake-key.p8" "dummy";
|
||||
environmentFile = pkgs.writeText "snowflake-exporter.env" ''
|
||||
SNOWFLAKE_EXPORTER_PRIVATE_KEY_PASSWORD=dummy
|
||||
'';
|
||||
};
|
||||
# Only the landing page is checked. Scraping `/metrics` would run the
|
||||
# collector, which synchronously queries Snowflake and blocks until the
|
||||
# driver's login timeout (~45s) with no reachable server. Booting with
|
||||
# key-pair auth already exercises config validation and the
|
||||
# LoadCredential/environmentFile wiring; the landing page confirms the
|
||||
# exporter booted and is serving.
|
||||
exporterTest = ''
|
||||
wait_for_unit("prometheus-snowflake-exporter.service")
|
||||
wait_for_open_port(9975)
|
||||
succeed("curl -sSf http://localhost:9975/ | grep -i 'Snowflake exporter'")
|
||||
'';
|
||||
};
|
||||
|
||||
sql =
|
||||
{ ... }:
|
||||
{
|
||||
@@ -2141,6 +2169,30 @@ let
|
||||
'';
|
||||
};
|
||||
|
||||
yace =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
exporterConfig = {
|
||||
enable = true;
|
||||
configFile = pkgs.writeText "yace-config.yml" ''
|
||||
apiVersion: v1alpha1
|
||||
sts-region: us-east-1
|
||||
discovery:
|
||||
jobs:
|
||||
- type: AWS/EC2
|
||||
regions: [us-east-1]
|
||||
metrics:
|
||||
- name: CPUUtilization
|
||||
statistics: [Average]
|
||||
'';
|
||||
};
|
||||
exporterTest = ''
|
||||
wait_for_unit("prometheus-yace-exporter.service")
|
||||
wait_for_open_port(5000)
|
||||
succeed("curl -sSf http://localhost:5000/metrics")
|
||||
'';
|
||||
};
|
||||
|
||||
zfs =
|
||||
{ ... }:
|
||||
{
|
||||
|
||||
@@ -20,7 +20,6 @@
|
||||
flow.configuration.services.scx.scheduler = "scx_flow";
|
||||
forge.configuration.services.scx.scheduler = "scx_forge";
|
||||
lavd.configuration.services.scx.scheduler = "scx_lavd";
|
||||
mlfq.configuration.services.scx.scheduler = "scx_mlfq";
|
||||
p2dq.configuration.services.scx.scheduler = "scx_p2dq";
|
||||
pandemonium.configuration.services.scx.scheduler = "scx_pandemonium";
|
||||
rlfifo.configuration.services.scx.scheduler = "scx_rlfifo";
|
||||
@@ -41,7 +40,6 @@
|
||||
"flow",
|
||||
"forge",
|
||||
"lavd",
|
||||
"mlfq",
|
||||
"p2dq",
|
||||
"pandemonium",
|
||||
"rlfifo",
|
||||
|
||||
@@ -15316,6 +15316,20 @@ final: prev: {
|
||||
meta.hydraPlatforms = [ ];
|
||||
};
|
||||
|
||||
profile-nvim = buildVimPlugin {
|
||||
pname = "profile.nvim";
|
||||
version = "0-unstable-2025-03-05";
|
||||
src = fetchFromGitHub {
|
||||
owner = "stevearc";
|
||||
repo = "profile.nvim";
|
||||
rev = "30433d7513f0d14665c1cfcea501c90f8a63e003";
|
||||
hash = "sha256-2Mk6VbC+K/WhTWF+yHyDhQKJhTi2rpo8VJsnO7ofHXs=";
|
||||
};
|
||||
meta.homepage = "https://github.com/stevearc/profile.nvim/";
|
||||
meta.license = getLicenseFromSpdxId "MIT";
|
||||
meta.hydraPlatforms = [ ];
|
||||
};
|
||||
|
||||
project-nvim = buildVimPlugin {
|
||||
pname = "project.nvim";
|
||||
version = "6.0.2-1";
|
||||
|
||||
@@ -1092,6 +1092,7 @@ https://github.com/sotte/presenting.vim/,,
|
||||
https://github.com/ewilazarus/preto/,,
|
||||
https://github.com/anuvyklack/pretty-fold.nvim/,,
|
||||
https://github.com/vim-scripts/prev_indent/,,
|
||||
https://github.com/stevearc/profile.nvim/,,
|
||||
https://github.com/DrKJeff16/project.nvim/,,
|
||||
https://github.com/GnikDroy/projections.nvim/,,
|
||||
https://github.com/kevinhwang91/promise-async/,,
|
||||
|
||||
@@ -21,22 +21,22 @@ vscode-utils.buildVscodeMarketplaceExtension (finalAttrs: {
|
||||
sources = {
|
||||
"x86_64-linux" = {
|
||||
arch = "linux-x64";
|
||||
hash = "sha256-oOytttotGI7f4RlnNBRM6TvXaXUht6v99Kzxc9GP404=";
|
||||
hash = "sha256-Yabd8DFEh1wq0K4IQPFUBNFDkyHhXl695wSfKa5RX7k=";
|
||||
};
|
||||
"aarch64-linux" = {
|
||||
arch = "linux-arm64";
|
||||
hash = "sha256-9Ne1PGz0k1E1wY/HhoR5mqB3SFQiFkHt236+L5jXE60=";
|
||||
hash = "sha256-gzMUtolNlNxFUofsL9JgOnaxfUGeSxFQY7C4smJ8fr8=";
|
||||
};
|
||||
"aarch64-darwin" = {
|
||||
arch = "darwin-arm64";
|
||||
hash = "sha256-2nwDsS4tVRikMZWZW4TKshQE7HVeQ/yY7CxpGg0os7w=";
|
||||
hash = "sha256-U8S7U5sYj9LukYfmC2yyUjeenAYYHsMrx8snhXqATck=";
|
||||
};
|
||||
};
|
||||
in
|
||||
{
|
||||
name = "claude-code";
|
||||
publisher = "anthropic";
|
||||
version = "2.1.238";
|
||||
version = "2.1.245";
|
||||
}
|
||||
// sources.${stdenvNoCC.hostPlatform.system}
|
||||
or (throw "Unsupported system ${stdenvNoCC.hostPlatform.system}");
|
||||
|
||||
@@ -8,13 +8,13 @@
|
||||
}:
|
||||
mkLibretroCore {
|
||||
core = "mednafen-psx" + lib.optionalString withHw "-hw";
|
||||
version = "0-unstable-2026-08-07";
|
||||
version = "0-unstable-2026-08-23";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "libretro";
|
||||
repo = "beetle-psx-libretro";
|
||||
rev = "ed640fac8986d7813e4db6604544a6aafddd3018";
|
||||
hash = "sha256-dwat09yGQ0OnF8GaglqCVlgcoyAfqhleqD/mMlgHh1w=";
|
||||
rev = "ef51860dbd71ad6b7ce67115d4780c2ee321d968";
|
||||
hash = "sha256-Yzzh/1+ZcySuFwXCEravLjLRJHbIMpf3rr7Mj0p9JM0=";
|
||||
};
|
||||
|
||||
extraBuildInputs = lib.optionals withHw [
|
||||
|
||||
@@ -5,13 +5,13 @@
|
||||
}:
|
||||
mkLibretroCore {
|
||||
core = "bluemsx";
|
||||
version = "0-unstable-2026-07-29";
|
||||
version = "0-unstable-2026-08-23";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "libretro";
|
||||
repo = "bluemsx-libretro";
|
||||
rev = "0f32f52c48d3e772bfdf0379756f81f00b4e08bc";
|
||||
hash = "sha256-4XjaPkv5Tm58nhU6JUdiZXbto/uePljwXpcePRCqVus=";
|
||||
rev = "e3086eb5d36d77fa11704cf53dc176686e70127d";
|
||||
hash = "sha256-cwyXtawCUyM/ISswY+O3bzGFX0wNayb/VAIv99E9esI=";
|
||||
};
|
||||
|
||||
meta = {
|
||||
|
||||
@@ -8,13 +8,13 @@
|
||||
}:
|
||||
mkLibretroCore {
|
||||
core = "flycast";
|
||||
version = "0-unstable-2026-08-07";
|
||||
version = "0-unstable-2026-08-23";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "flyinghead";
|
||||
repo = "flycast";
|
||||
rev = "a172e0001351dfbc49b86860a13d5390b1c493fe";
|
||||
hash = "sha256-0vBKit2Ce5ihTtQjOrbwrFBEg1Qig/8+H86eJb7EjZs=";
|
||||
rev = "c3763d8fc4208dd6f8f0bc456383543b8406a8a0";
|
||||
hash = "sha256-/QfEDbodvtrfxe2qEqselWFyv6Lx77Z3fJOZhgwMAIk=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -10,11 +10,11 @@
|
||||
buildMozillaMach rec {
|
||||
pname = "firefox-beta";
|
||||
binaryName = "firefox-beta";
|
||||
version = "154.0b10";
|
||||
version = "155.0b4";
|
||||
applicationName = "Firefox Beta";
|
||||
src = fetchurl {
|
||||
url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
|
||||
sha512 = "ddbe3ff45217a16df9eecfac52fcb12425accae76457e7054b20bd085f5b22908940a20448f213c3dc62d1276bb1c81f38194432336ba97459b2c17393ebd3cd";
|
||||
sha512 = "6c1536924b955f856bc629cdf563ab9d4a87058fac7acf8db008bfe5a1f19defd004116bb3673fd23b62e1e00ca21acbcc7153d85dfa522eb3def6c85065b01b";
|
||||
};
|
||||
|
||||
meta = {
|
||||
|
||||
@@ -10,13 +10,13 @@
|
||||
buildMozillaMach rec {
|
||||
pname = "firefox-devedition";
|
||||
binaryName = "firefox-devedition";
|
||||
version = "154.0b10";
|
||||
version = "155.0b4";
|
||||
applicationName = "Firefox Developer Edition";
|
||||
requireSigning = false;
|
||||
branding = "browser/branding/aurora";
|
||||
src = fetchurl {
|
||||
url = "mirror://mozilla/devedition/releases/${version}/source/firefox-${version}.source.tar.xz";
|
||||
sha512 = "e2275579e4769a0690010d8fbba528a0e347d86f0dc981d1702b3e627d9c73f3fd7399d3e618c514bf6a3c0059fa3aa5a29f9cdec802e52955a03b1122ca8d39";
|
||||
sha512 = "d2b58b520393848c110714537aec2c71d1244d7439c8c62e85bf123a3f3ade3db8a31617c242d9803306f1655237666948aaa55b780f8743ab57fc406a6ea906";
|
||||
};
|
||||
|
||||
# buildMozillaMach sets MOZ_APP_REMOTINGNAME during configuration, but
|
||||
|
||||
@@ -9,10 +9,10 @@
|
||||
|
||||
buildMozillaMach rec {
|
||||
pname = "firefox";
|
||||
version = "154.0";
|
||||
version = "154.0.1";
|
||||
src = fetchurl {
|
||||
url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
|
||||
sha512 = "a77cd664982add628681167ef5939bd6bf0c894aa380cca66f9b5fb265947874d1e819d42264f1dd07c843f8a6dc020da268cca9ff1e064fca019de91af9b996";
|
||||
sha512 = "9141e34978c2ecbe1b267b3cc63136142625734618e67cbbbf6536e1427af66d01f19851200eba0db7c715991f39e7d5d0200abb9e2cd7c15d58a8a411b1b412";
|
||||
};
|
||||
|
||||
meta = {
|
||||
|
||||
@@ -382,13 +382,13 @@
|
||||
"vendorHash": "sha256-y9GRTuoh1X6GfGkGZbPpO500y8DoJS1dnwZL3BCTUcY="
|
||||
},
|
||||
"equinix_equinix": {
|
||||
"hash": "sha256-HwPjxVWIqWxpdIElMgDmOUx7KXr5VEwLVNbTLeEgRRo=",
|
||||
"hash": "sha256-gPuRvWQiJZdyUGTNMCQSEFmbqC5ralxroBSbBprFe/8=",
|
||||
"homepage": "https://registry.terraform.io/providers/equinix/equinix",
|
||||
"owner": "equinix",
|
||||
"repo": "terraform-provider-equinix",
|
||||
"rev": "v5.1.0",
|
||||
"rev": "v5.2.0",
|
||||
"spdx": "MIT",
|
||||
"vendorHash": "sha256-8v7+xVF/X9q7VmjQD4azGIggWpgPGuoNSWetsbKN7LA="
|
||||
"vendorHash": "sha256-JnbQPQi/dy3pEwurlzIcfBdbAfvYJVsoLYnvJPX3sjc="
|
||||
},
|
||||
"exoscale_exoscale": {
|
||||
"hash": "sha256-QIYIqJI/xznbkqR8E8R2LwF15M6ZdEntQ8JtdIwZypM=",
|
||||
@@ -580,13 +580,13 @@
|
||||
"vendorHash": "sha256-gv54RqpkWri5yL40ajcLnqzF0XvMEzFoFEEV2/g1paE="
|
||||
},
|
||||
"hashicorp_google": {
|
||||
"hash": "sha256-GWC0PIYMAhI9KO2j5yI7W7v0el8u9d1qqUyaWq/sodo=",
|
||||
"hash": "sha256-Ed/D/c8Ut4gR+VAonZbqvgK/MKVLRryloO+7hvzn5G8=",
|
||||
"homepage": "https://registry.terraform.io/providers/hashicorp/google",
|
||||
"owner": "hashicorp",
|
||||
"repo": "terraform-provider-google",
|
||||
"rev": "v7.44.0",
|
||||
"rev": "v7.45.0",
|
||||
"spdx": "MPL-2.0",
|
||||
"vendorHash": "sha256-gy+Tn9L2NYRYnmYGcb2jqTTXJDzMqHtm2EgSQZunbjg="
|
||||
"vendorHash": "sha256-d4nO4QTeHyVNdU1JFzQdU4UTisoY1tjv7GVCRNRtNC8="
|
||||
},
|
||||
"hashicorp_google-beta": {
|
||||
"hash": "sha256-WjgVh6LHcNmTT6Fg2FWmtMacCokaNuZTI9ZEcMoD7uo=",
|
||||
@@ -1058,11 +1058,11 @@
|
||||
"vendorHash": null
|
||||
},
|
||||
"oracle_oci": {
|
||||
"hash": "sha256-YcKLw5PotrwRdGEmPzy1Ka/doJ9fDbKuP6Q9Dw24mG0=",
|
||||
"hash": "sha256-3/apEon1W1iaB7UIkYgI4POV+f1uVDVXX4V6dyeqsLk=",
|
||||
"homepage": "https://registry.terraform.io/providers/oracle/oci",
|
||||
"owner": "oracle",
|
||||
"repo": "terraform-provider-oci",
|
||||
"rev": "v8.27.0",
|
||||
"rev": "v8.28.0",
|
||||
"spdx": "MPL-2.0",
|
||||
"vendorHash": null
|
||||
},
|
||||
|
||||
@@ -112,8 +112,8 @@ rec {
|
||||
thunderbird-140 = common {
|
||||
applicationName = "Thunderbird ESR";
|
||||
|
||||
version = "140.13.0esr";
|
||||
sha512 = "778d2fc2837ba367e90c4336f3873da5a0823c182e2f50aa9373cd1ee9ee2b5310372ad9d33e1e11978791b67de4a6952d3036ff7d57b257a06f49c8cd4a830e";
|
||||
version = "140.14.0esr";
|
||||
sha512 = "4c95b1ca3fc7f6429b2360a7e732635bdfb60927622a7da4d8af9ca2abd550611b91763c587cddad5d51c0dd4e905ba8e106da3cd21591a1bec3dba1b9a2502d";
|
||||
|
||||
updateScript = callPackage ./update.nix {
|
||||
attrPath = "thunderbirdPackages.thunderbird-140";
|
||||
|
||||
@@ -478,6 +478,8 @@ stdenvNoCC.mkDerivation {
|
||||
apple-sdk.__spliced.buildTarget or apple-sdk;
|
||||
};
|
||||
|
||||
__structuredAttrs = true;
|
||||
|
||||
meta =
|
||||
let
|
||||
bintools_ = optionalAttrs (bintools != null) bintools;
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
makeSetupHook {
|
||||
name = "dotnet-hook";
|
||||
substitutions = {
|
||||
dotnetRuntime = dotnet-runtime;
|
||||
dotnetRuntime = lib.defaultTo "" dotnet-runtime;
|
||||
wrapperPath = lib.makeBinPath [
|
||||
which
|
||||
coreutils
|
||||
|
||||
@@ -124,16 +124,12 @@ rec {
|
||||
name,
|
||||
constituents,
|
||||
meta ? { },
|
||||
# Interpret string constituents as fnmatch patterns matched
|
||||
# against all job names of the jobset.
|
||||
globConstituents ? false,
|
||||
}:
|
||||
pkgs.runCommand name
|
||||
{
|
||||
inherit constituents meta;
|
||||
preferLocalBuild = true;
|
||||
_hydraAggregate = true;
|
||||
_hydraGlobConstituents = globConstituents;
|
||||
}
|
||||
''
|
||||
mkdir -p $out/nix-support
|
||||
|
||||
@@ -735,7 +735,6 @@ rec {
|
||||
meta ? { },
|
||||
passthru ? { },
|
||||
substitutions ? { },
|
||||
__structuredAttrs ? false,
|
||||
}@args:
|
||||
script:
|
||||
runCommand name
|
||||
@@ -745,10 +744,6 @@ rec {
|
||||
# Make the position of the derivation accurate.
|
||||
# Since not having `name` is deprecated, this should be fairly accurate.
|
||||
pos = lib.unsafeGetAttrPos "name" args;
|
||||
# TODO(@Artturin:) substitutions should be inside the env attrset
|
||||
# but users are likely passing non-substitution arguments through substitutions
|
||||
# turn off __structuredAttrs to unbreak substituteAll
|
||||
inherit __structuredAttrs;
|
||||
pname = name;
|
||||
version = "26.05pre-git";
|
||||
inherit meta;
|
||||
@@ -756,6 +751,7 @@ rec {
|
||||
inherit propagatedBuildInputs;
|
||||
inherit propagatedNativeBuildInputs;
|
||||
strictDeps = true;
|
||||
__structuredAttrs = true;
|
||||
# TODO 2023-01, no backport: simplify to inherit passthru;
|
||||
passthru =
|
||||
passthru
|
||||
@@ -771,7 +767,9 @@ rec {
|
||||
recordPropagatedDependencies
|
||||
''
|
||||
+ lib.optionalString (substitutions != { }) ''
|
||||
substituteAll ${script} $out/nix-support/setup-hook
|
||||
substitute ${script} $out/nix-support/setup-hook ${
|
||||
lib.concatMapAttrsStringSep " " (name: _: "--subst-var ${name}") substitutions
|
||||
}
|
||||
''
|
||||
);
|
||||
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
libpulseaudio,
|
||||
libzip,
|
||||
nlohmann_json,
|
||||
stb,
|
||||
SDL2,
|
||||
spdlog,
|
||||
tinyxml-2,
|
||||
@@ -89,12 +90,6 @@ let
|
||||
'';
|
||||
};
|
||||
|
||||
stb' = fetchurl {
|
||||
name = "stb_image.h";
|
||||
url = "https://raw.githubusercontent.com/nothings/stb/0bc88af4de5fb022db643c2d8e549a0927749354/stb_image.h";
|
||||
hash = "sha256-xUsVponmofMsdeLsI6+kQuPg436JS3PBl00IZ5sg3Vw=";
|
||||
};
|
||||
|
||||
stormlib' = applyPatches {
|
||||
src = fetchFromGitHub {
|
||||
owner = "ladislav-zezula";
|
||||
@@ -220,7 +215,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
preConfigure = ''
|
||||
# mirror 2ship's stb
|
||||
mkdir stb
|
||||
cp ${stb'} ./stb/${stb'.name}
|
||||
cp ${stb}/include/stb/stb_image.h ./stb/stb_image.h
|
||||
cp ${stb_impl} ./stb/${stb_impl.name}
|
||||
substituteInPlace libultraship/cmake/dependencies/common.cmake \
|
||||
--replace-fail "\''${STB_DIR}" "$(readlink -f ./stb)"
|
||||
|
||||
@@ -45,6 +45,8 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
};
|
||||
};
|
||||
|
||||
__structuredAttrs = true;
|
||||
|
||||
meta = {
|
||||
description = "Open-source collection of C++ code designed to augment the C++ standard library";
|
||||
homepage = "https://abseil.io/";
|
||||
|
||||
@@ -50,6 +50,8 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
};
|
||||
};
|
||||
|
||||
__structuredAttrs = true;
|
||||
|
||||
meta = {
|
||||
description = "Open-source collection of C++ code designed to augment the C++ standard library";
|
||||
homepage = "https://abseil.io/";
|
||||
|
||||
@@ -39,6 +39,8 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
buildInputs = [ gtest ];
|
||||
|
||||
__structuredAttrs = true;
|
||||
|
||||
meta = {
|
||||
description = "Open-source collection of C++ code designed to augment the C++ standard library";
|
||||
homepage = "https://abseil.io/";
|
||||
|
||||
@@ -14,13 +14,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "ada";
|
||||
version = "3.4.4";
|
||||
version = "4.0.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ada-url";
|
||||
repo = "ada";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-kfUbsqQ+CsqnySKgeL1GFJLcDe1Irivp4CoZG93BZYg=";
|
||||
hash = "sha256-TvjoLUKO2+YgS1mlyglLb+rBLTO/SWSBVA2S34Z6kMI=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "adhammer";
|
||||
version = "1.3.10";
|
||||
version = "1.4.2";
|
||||
|
||||
__structuredAttrs = true;
|
||||
|
||||
@@ -18,10 +18,10 @@ rustPlatform.buildRustPackage (finalAttrs: {
|
||||
owner = "icedracon";
|
||||
repo = "adhammer";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-QQjiyvj3e5unEsh17UyKck2rs8oKeLO5eodBG7cn1LQ=";
|
||||
hash = "sha256-Jn3hmCSpc/9zxfIzebrCkDOgZ4HzfXdKOcJSXNvxZGM=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-Ebkvxl/JyiZ84ucv7FmOluHTqYd14I3B6z53QNmVQZw=";
|
||||
cargoHash = "sha256-037x5bhTizcCqW/pszIadAVA9ElQzJOQ9W1dh5Kpg9Y=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
fetchurl,
|
||||
alsa-lib,
|
||||
alsa-plugins,
|
||||
bashNonInteractive,
|
||||
gettext,
|
||||
makeWrapper,
|
||||
pkg-config,
|
||||
@@ -45,6 +46,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
pkg-config
|
||||
];
|
||||
buildInputs = [
|
||||
bashNonInteractive
|
||||
alsa-lib
|
||||
ncurses
|
||||
libsamplerate
|
||||
|
||||
@@ -24,11 +24,7 @@ let
|
||||
llvmPackages = llvmPackages_21;
|
||||
llvmMajorVersion = lib.versions.major llvmPackages.llvm.version;
|
||||
arch = stdenv.hostPlatform.parsed.cpu.name;
|
||||
triplet = lib.getAttr arch {
|
||||
"x86_64" = "x86_64-unknown-linux-gnu";
|
||||
"aarch64" = "aarch64-unknown-linux-gnu";
|
||||
"riscv64" = "riscv64-unknown-linux-gnu";
|
||||
};
|
||||
triplet = stdenv.hostPlatform.config;
|
||||
|
||||
clang = symlinkJoin {
|
||||
name = "angle-clang-llvm-join";
|
||||
@@ -115,30 +111,32 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
./fix-uninitialized-const-pointer-error-001.patch
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace build/config/clang/BUILD.gn \
|
||||
--replace-fail \
|
||||
"_dir = \"${triplet}\"" \
|
||||
"_dir = \"${triplet}\"
|
||||
_suffix = \"-${arch}\""
|
||||
postPatch =
|
||||
lib.optionalString stdenv.hostPlatform.isLinux ''
|
||||
substituteInPlace build/config/clang/BUILD.gn \
|
||||
--replace-fail \
|
||||
"_dir = \"${triplet}\"" \
|
||||
"_dir = \"${triplet}\"
|
||||
_suffix = \"-${arch}\""
|
||||
''
|
||||
+ ''
|
||||
# Don't precompile Metal shaders, because the compiler is non-free.
|
||||
substituteInPlace src/libANGLE/renderer/metal/metal_backend.gni \
|
||||
--replace-fail \
|
||||
"metal_internal_shader_compilation_supported =" \
|
||||
"metal_internal_shader_compilation_supported = false &&"
|
||||
|
||||
# Don't precompile Metal shaders, because the compiler is non-free.
|
||||
substituteInPlace src/libANGLE/renderer/metal/metal_backend.gni \
|
||||
--replace-fail \
|
||||
"metal_internal_shader_compilation_supported =" \
|
||||
"metal_internal_shader_compilation_supported = false &&"
|
||||
cat > build/config/gclient_args.gni <<EOF
|
||||
# Generated from 'DEPS'
|
||||
checkout_angle_internal = false
|
||||
checkout_angle_mesa = false
|
||||
checkout_angle_restricted_traces = false
|
||||
generate_location_tags = false
|
||||
EOF
|
||||
|
||||
cat > build/config/gclient_args.gni <<EOF
|
||||
# Generated from 'DEPS'
|
||||
checkout_angle_internal = false
|
||||
checkout_angle_mesa = false
|
||||
checkout_angle_restricted_traces = false
|
||||
generate_location_tags = false
|
||||
EOF
|
||||
|
||||
# For sandboxed build on darwin.
|
||||
patchShebangs build/toolchain/apple
|
||||
'';
|
||||
# For sandboxed build on darwin.
|
||||
patchShebangs build/toolchain/apple
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
@@ -22,8 +22,12 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
ninja
|
||||
];
|
||||
|
||||
strictDeps = true;
|
||||
|
||||
doCheck = true;
|
||||
|
||||
__structuredAttrs = true;
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/argp-standalone/argp-standalone";
|
||||
description = "Standalone version of arguments parsing functions from Glibc";
|
||||
|
||||
@@ -151,7 +151,7 @@ python3.pkgs.buildPythonApplication (finalAttrs: {
|
||||
src = fetchFromGitHub {
|
||||
owner = "asciidoc-py";
|
||||
repo = "asciidoc-py";
|
||||
rev = finalAttrs.version;
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-td3C7xTWfSzdo9Bbz0dHW2oPaCQYmUE9H2sUFfg5HH0=";
|
||||
};
|
||||
|
||||
@@ -320,6 +320,8 @@ python3.pkgs.buildPythonApplication (finalAttrs: {
|
||||
runHook postCheck
|
||||
'';
|
||||
|
||||
__structuredAttrs = true;
|
||||
|
||||
meta = {
|
||||
description = "Text-based document generation system";
|
||||
longDescription = ''
|
||||
|
||||
@@ -15,6 +15,8 @@ stdenv.mkDerivation {
|
||||
|
||||
buildInputs = [ pythonEnv ];
|
||||
|
||||
strictDeps = true;
|
||||
|
||||
src = ./source;
|
||||
|
||||
buildPhase = ''
|
||||
@@ -33,6 +35,8 @@ stdenv.mkDerivation {
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
__structuredAttrs = true;
|
||||
|
||||
meta = {
|
||||
description = "Automatically patch ELF binaries using patchelf";
|
||||
mainProgram = "auto-patchelf";
|
||||
|
||||
@@ -240,6 +240,35 @@ def find_first_matching_rpath_with_origin(binary: Path, lib_dir: Path, rpaths: l
|
||||
return Path(rpath)
|
||||
return None
|
||||
|
||||
|
||||
def relativize_rpath_to_origin(*, binary_path: Path, rpath_entries: list[Path], containing_path: Path) -> list[Path]:
|
||||
"""
|
||||
Rewrite absolute RPATH entries to use $ORIGIN when the entry sits
|
||||
under containing_path (the --paths entry the binary was found
|
||||
under).
|
||||
|
||||
The resulting RPATH is relocatable: as long as the directory layout
|
||||
within containing_path is preserved, the whole tree can be moved
|
||||
and the binary will still find its dependencies.
|
||||
|
||||
Entries that already contain $ORIGIN are left untouched.
|
||||
Entries outside containing_path are also left absolute.
|
||||
"""
|
||||
containing_norm: Path = Path(os.path.normpath(containing_path))
|
||||
new_rpath_entries: list[Path] = []
|
||||
for entry in rpath_entries:
|
||||
if "$ORIGIN" in entry.as_posix():
|
||||
new_rpath_entries.append(entry)
|
||||
continue
|
||||
entry_norm: Path = Path(os.path.normpath(entry))
|
||||
if not entry_norm.is_relative_to(containing_norm):
|
||||
new_rpath_entries.append(entry)
|
||||
continue
|
||||
rel = os.path.relpath(entry_norm, binary_path.parent)
|
||||
new_rpath_entries.append(Path("$ORIGIN") / rel)
|
||||
return new_rpath_entries
|
||||
|
||||
|
||||
class Event(Protocol):
|
||||
"""Protocol for loggable events that occur during the auto-patchelf process."""
|
||||
def to_human_readable_str(self) -> str: ...
|
||||
@@ -317,7 +346,18 @@ class Logger:
|
||||
|
||||
|
||||
|
||||
def auto_patchelf_file(logger: Logger, path: Path, runtime_deps: list[Path], append_rpaths: list[Path] = [], keep_libc: bool = False, preserve_origin: bool = False, extra_args: list[str] = []) -> list[Dependency]:
|
||||
def auto_patchelf_file(
|
||||
*,
|
||||
logger: Logger,
|
||||
runtime_deps: list[Path],
|
||||
append_rpaths: list[Path] = [],
|
||||
keep_libc: bool = False,
|
||||
preserve_origin: bool = False,
|
||||
relativize_rpath: bool = False,
|
||||
extra_args: list[str] = [],
|
||||
path: Path,
|
||||
containing_path: Path
|
||||
) -> list[Dependency]:
|
||||
try:
|
||||
with open_elf(path) as elf:
|
||||
|
||||
@@ -436,6 +476,9 @@ def auto_patchelf_file(logger: Logger, path: Path, runtime_deps: list[Path], app
|
||||
if "$ORIGIN" in existing_rpath:
|
||||
rpath.append(Path(existing_rpath))
|
||||
|
||||
if relativize_rpath:
|
||||
rpath = relativize_rpath_to_origin(binary_path=path, rpath_entries=rpath, containing_path=containing_path)
|
||||
|
||||
# Dedup the rpath
|
||||
rpath_str = ":".join(dict.fromkeys(map(Path.as_posix, rpath)))
|
||||
|
||||
@@ -458,6 +501,7 @@ def auto_patchelf(
|
||||
append_rpaths: list[Path] = [],
|
||||
keep_libc: bool = False,
|
||||
preserve_origin: bool = False,
|
||||
relativize_rpath: bool = False,
|
||||
add_existing: bool = True,
|
||||
extra_args: list[str] = []) -> None:
|
||||
|
||||
@@ -472,9 +516,20 @@ def auto_patchelf(
|
||||
populate_cache(lib_dirs)
|
||||
|
||||
dependencies = []
|
||||
for path in chain.from_iterable(glob(p, '*', recursive) for p in paths_to_patch):
|
||||
if not path.is_symlink() and path.is_file():
|
||||
dependencies += auto_patchelf_file(logger, path, runtime_deps, append_rpaths, keep_libc, preserve_origin, extra_args)
|
||||
for containing_path in paths_to_patch:
|
||||
for path in glob(containing_path, '*', recursive):
|
||||
if not path.is_symlink() and path.is_file():
|
||||
dependencies += auto_patchelf_file(
|
||||
logger=logger,
|
||||
runtime_deps=runtime_deps,
|
||||
append_rpaths=append_rpaths,
|
||||
keep_libc=keep_libc,
|
||||
preserve_origin=preserve_origin,
|
||||
relativize_rpath=relativize_rpath,
|
||||
extra_args=extra_args,
|
||||
path=path,
|
||||
containing_path=containing_path
|
||||
)
|
||||
|
||||
missing = [dep for dep in dependencies if not dep.found]
|
||||
|
||||
@@ -560,6 +615,12 @@ def main() -> None:
|
||||
action="store_true",
|
||||
help="When possible, replace absolute RPATH entries with original $ORIGIN entries that resolve to the same directory.",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--relativize-rpath",
|
||||
dest="relativize_rpath",
|
||||
action="store_true",
|
||||
help="Rewrite absolute RPATH entries to use $ORIGIN when the binary and the entry live under the same --paths root, so the patched tree is relocatable.",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--ignore-existing",
|
||||
dest="add_existing",
|
||||
@@ -597,6 +658,7 @@ def main() -> None:
|
||||
append_rpaths=args.append_rpaths,
|
||||
keep_libc=args.keep_libc,
|
||||
preserve_origin=args.preserve_origin,
|
||||
relativize_rpath=args.relativize_rpath,
|
||||
add_existing=args.add_existing,
|
||||
extra_args=args.extra_args)
|
||||
|
||||
|
||||
@@ -28,6 +28,8 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
buildInputs = [ xz ];
|
||||
|
||||
__structuredAttrs = true;
|
||||
|
||||
meta = {
|
||||
description = "Archive of autoconf m4 macros";
|
||||
homepage = "https://www.gnu.org/software/autoconf-archive/";
|
||||
|
||||
@@ -28,10 +28,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
"host"
|
||||
];
|
||||
|
||||
# there's a /bin/sh shebang in bin/yacc which when no strictDeps is patched with the build stdenv shell
|
||||
# however when cross-compiling it would still be patched with the build stdenv shell which would be wrong
|
||||
# cannot add bash to buildInputs due to infinite recursion
|
||||
strictDeps = stdenv.hostPlatform != stdenv.buildPlatform;
|
||||
strictDeps = true;
|
||||
|
||||
nativeBuildInputs = [
|
||||
m4
|
||||
@@ -40,6 +37,13 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
++ lib.optional stdenv.hostPlatform.isSunOS help2man;
|
||||
propagatedBuildInputs = [ m4 ];
|
||||
|
||||
# there's a /bin/sh shebang in bin/yacc which when no strictDeps is patched with the build stdenv shell
|
||||
# however when cross-compiling it would still be patched with the build stdenv shell which would be wrong
|
||||
# cannot add bash to buildInputs due to infinite recursion
|
||||
postFixup = lib.optionalString (lib.systems.equals stdenv.buildPlatform stdenv.hostPlatform) ''
|
||||
patchShebangs --build $out/bin/yacc
|
||||
'';
|
||||
|
||||
enableParallelBuilding = true;
|
||||
# tests are flaky / timing sensitive on FreeBSD
|
||||
enableParallelChecking = !stdenv.hostPlatform.isFreeBSD;
|
||||
@@ -50,6 +54,8 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
# TODO: enable doInstallCheck unconditionally when fixed upstream.
|
||||
doInstallCheck = !stdenv.cc.isClang;
|
||||
|
||||
__structuredAttrs = true;
|
||||
|
||||
meta = {
|
||||
homepage = "https://www.gnu.org/software/bison/";
|
||||
description = "Yacc-compatible parser generator";
|
||||
|
||||
@@ -23,7 +23,7 @@ stdenv.mkDerivation {
|
||||
useBoost.src or (fetchFromGitHub {
|
||||
owner = "boostorg";
|
||||
repo = "build";
|
||||
rev = defaultVersion;
|
||||
tag = defaultVersion;
|
||||
sha256 = "1r4rwlq87ydmsdqrik4ly5iai796qalvw7603mridg2nwcbbnf54";
|
||||
});
|
||||
|
||||
@@ -58,6 +58,8 @@ stdenv.mkDerivation {
|
||||
bison
|
||||
];
|
||||
|
||||
strictDeps = true;
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
./bootstrap.sh
|
||||
@@ -76,6 +78,8 @@ stdenv.mkDerivation {
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
__structuredAttrs = true;
|
||||
|
||||
meta = {
|
||||
homepage = "https://www.boost.org/build/";
|
||||
license = lib.licenses.boost;
|
||||
|
||||
@@ -32,6 +32,8 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
||||
strictDeps = true;
|
||||
|
||||
cmakeFlags = lib.optional staticOnly "-DBUILD_SHARED_LIBS=OFF";
|
||||
|
||||
outputs = [
|
||||
@@ -60,6 +62,8 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
updateScript = nix-update-script { };
|
||||
};
|
||||
|
||||
__structuredAttrs = true;
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/google/brotli";
|
||||
changelog = "https://github.com/google/brotli/blob/${finalAttrs.src.tag}/CHANGELOG.md";
|
||||
|
||||
@@ -8,16 +8,16 @@
|
||||
}:
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "bsky-cli";
|
||||
version = "0.0.81";
|
||||
version = "0.0.82";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mattn";
|
||||
repo = "bsky";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-Su2AhHaIozuqTzK1vyAjZR/a01j0dnlayV14Q7hTcCU=";
|
||||
hash = "sha256-2Qtr9Q01ZbjfrZFw8315hDGiX2CmyQ0ru1MhqTvdjVw=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-jGeKaAR0rAqrhoUx/FqdDwdOxA/WioppFjGyi/PsIQs=";
|
||||
vendorHash = "sha256-pICYDE5rpGdyII53Ucxx2u51MG604/yjz9W9xsO3ZLs=";
|
||||
|
||||
buildInputs = [
|
||||
libpcap
|
||||
|
||||
@@ -44,7 +44,7 @@ buildGoModule (finalAttrs: {
|
||||
|
||||
preCheck = ''
|
||||
# Some tests take longer depending on builder load.
|
||||
substituteInPlace private/bufpkg/bufcheck/lint_test.go \
|
||||
substituteInPlace private/bufpkg/bufcheck/lint_test.go private/bufpkg/bufcheck/breaking_test.go \
|
||||
--replace-fail 'context.WithTimeout(t.Context(), 60*time.Second)' \
|
||||
'context.WithTimeout(t.Context(), 600*time.Second)'
|
||||
# For WebAssembly runtime tests
|
||||
|
||||
@@ -70,6 +70,8 @@ stdenv.mkDerivation {
|
||||
|
||||
nativeBuildInputs = [ buildcatrust ];
|
||||
|
||||
strictDeps = true;
|
||||
|
||||
buildPhase = ''
|
||||
mkdir unbundled hashed
|
||||
buildcatrust \
|
||||
@@ -247,5 +249,7 @@ stdenv.mkDerivation {
|
||||
};
|
||||
};
|
||||
|
||||
__structuredAttrs = true;
|
||||
|
||||
inherit meta;
|
||||
}
|
||||
|
||||
@@ -6,13 +6,13 @@
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "cargo-sort";
|
||||
version = "2.1.3";
|
||||
version = "2.1.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "devinr528";
|
||||
repo = "cargo-sort";
|
||||
rev = "v${finalAttrs.version}";
|
||||
sha256 = "sha256-PtBjs+mqrz9z6tkpajx/OYQATJP81vi4ColjFXr9Rv0=";
|
||||
sha256 = "sha256-xT+fWwd92Ll9zcz7FKpQbHKjUGXNOSuCGpFuJ3DQTJY=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-ygMtfhwoUEIZx+q6KB5yOr8/Fj5FRMIs7dXlYDUKb2U=";
|
||||
|
||||
@@ -12,14 +12,18 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
src = fetchFromGitHub {
|
||||
owner = "catchorg";
|
||||
repo = "Catch2";
|
||||
rev = "v${finalAttrs.version}";
|
||||
sha256 = "sha256-XnT2ziES94Y4uzWmaxSw7nWegJFQjAqFUG8PkwK5nLU=";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-XnT2ziES94Y4uzWmaxSw7nWegJFQjAqFUG8PkwK5nLU=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
||||
strictDeps = true;
|
||||
|
||||
cmakeFlags = [ "-H.." ];
|
||||
|
||||
__structuredAttrs = true;
|
||||
|
||||
meta = {
|
||||
description = "Multi-paradigm automated test framework for C++ and Objective-C (and, maybe, C)";
|
||||
homepage = "http://catch-lib.net";
|
||||
|
||||
@@ -6,8 +6,6 @@
|
||||
makeSetupHook {
|
||||
name = "check-phase-thread-limit-hook";
|
||||
|
||||
__structuredAttrs = true;
|
||||
|
||||
meta = {
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ grimmauld ];
|
||||
|
||||
@@ -8,14 +8,14 @@
|
||||
}:
|
||||
|
||||
maven.buildMavenPackage (finalAttrs: {
|
||||
version = "13.10.0";
|
||||
version = "14.0.0";
|
||||
pname = "checkstyle";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "checkstyle";
|
||||
repo = "checkstyle";
|
||||
tag = "checkstyle-${finalAttrs.version}";
|
||||
hash = "sha256-RJ0ALYE+X2wUdFB4WpGIKYYeRau7AHr5m2Qk3amiXX4=";
|
||||
hash = "sha256-8XrYOILxxPMFkSjJyFULzFiqF1T63F/PIzPiRevUYws=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
@@ -23,7 +23,7 @@ maven.buildMavenPackage (finalAttrs: {
|
||||
./drop-nexus-codehaus-snapshot-plugin-repository.patch
|
||||
];
|
||||
|
||||
mvnHash = "sha256-NWTabR7E3aXkLaERZmolOoWPzERnOT/1q7+DW815p9U=";
|
||||
mvnHash = "sha256-8HMUvqhvI8dl2E4uPj3qmgwnyY5fAMtbTbXm67P1Wpo=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
maven
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
fetchpatch,
|
||||
fetchurl,
|
||||
cmake,
|
||||
ninja,
|
||||
@@ -17,23 +16,15 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "chromaprint";
|
||||
version = "1.6.0";
|
||||
version = "1.6.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "acoustid";
|
||||
repo = "chromaprint";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-G3HIMgbjaAXsC+8nt7mkj58xA62qwA8FC+PfTGblhNg=";
|
||||
hash = "sha256-Es903zeZ++9/Xb/npUU3rB0V87DVqwT9uTMbQdSzfJI=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# fix generated pkg-config files
|
||||
(fetchpatch {
|
||||
url = "https://github.com/acoustid/chromaprint/commit/782ef6bb5f6498e35f8e275f76998fbd5ffa36d6.patch";
|
||||
hash = "sha256-drUfAMzTrqqB5UbzOnfPq6XD3HI+3sxyJJSTCa0BmD8=";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
ninja
|
||||
|
||||
@@ -1,57 +1,51 @@
|
||||
{
|
||||
"version": "2.1.238",
|
||||
"commit": "46283063a4c23f7afadb8440f549264ad93b7c06",
|
||||
"buildDate": "2026-08-20T15:26:31Z",
|
||||
"version": "2.1.245",
|
||||
"commit": "28b7e8c41235a9e2fcb24248e60c4cc2d29c853a",
|
||||
"buildDate": "2026-08-25T04:08:50Z",
|
||||
"platforms": {
|
||||
"darwin-arm64": {
|
||||
"binary": "claude",
|
||||
"checksum": "1c196c456373b57818ae87df84aecee96cb659448c0d6a6bbb401ac5758431b2",
|
||||
"size": 321263536
|
||||
"checksum": "9f7c2260251765a18d0b35198669dacc1912f6e8129a3b01f6b58d93365ff1f1",
|
||||
"size": 376109392
|
||||
},
|
||||
"darwin-x64": {
|
||||
"binary": "claude",
|
||||
"checksum": "d10bc7bb1720435f8830aa3ee74085f09348d2b1a2a152bdee251b770d76cc73",
|
||||
"size": 329970544
|
||||
"checksum": "de044bb543e826352f31587a74356e1b2dae94dc1b9c960a362d9f07df96c2a7",
|
||||
"size": 385137136
|
||||
},
|
||||
"linux-arm64": {
|
||||
"binary": "claude",
|
||||
"checksum": "28d736120a6b14c5eae1ad1470e73371818c9c2fa41e0b3c7040207aa2d4edee",
|
||||
"size": 335993064
|
||||
"checksum": "d0da299303d710a7cc5cdece9629958f5128ce1a727e15463c651ed5cf385c7f",
|
||||
"size": 389077224
|
||||
},
|
||||
"linux-x64": {
|
||||
"binary": "claude",
|
||||
"checksum": "0933b286cf94e1b2504b35ac165ab76b8f822735d53371c56393988c23040d58",
|
||||
"size": 338860336
|
||||
"checksum": "16ad2b94deaf7b29abed966d981c9991a47af0420f5be8ed4a3f83bea9f678bc",
|
||||
"size": 391948592
|
||||
},
|
||||
"linux-arm64-musl": {
|
||||
"binary": "claude",
|
||||
"checksum": "a47d45149ea7c74e4474bce3c7628c4643b0541801b42053d6e26fd5e3203fdd",
|
||||
"size": 329137944
|
||||
"checksum": "8707fbe629fdd9876d9c356baa833a697dac76cd9a7157088f667199b8492851",
|
||||
"size": 382222104
|
||||
},
|
||||
"linux-x64-musl": {
|
||||
"binary": "claude",
|
||||
"checksum": "33546c2f7947bbfdb46a969123c5329e607c414045cd3645a29aa3cfe023c6ab",
|
||||
"size": 332988384
|
||||
"checksum": "d25564bc5d84ec988a762cfe25fe51cb706b96eaec614f704ddbf653ab08ba00",
|
||||
"size": 386060256
|
||||
},
|
||||
"win32-x64": {
|
||||
"binary": "claude.exe",
|
||||
"checksum": "223bc058b5aef48138876e28de5d00387e4fd7362a18e733143bf00819c01aab",
|
||||
"size": 334150816
|
||||
"checksum": "d1649bf5261792fee7e1a1b63fdd2197082adec36ce9701aa0c1723bdcd2348a",
|
||||
"size": 384213664
|
||||
},
|
||||
"win32-arm64": {
|
||||
"binary": "claude.exe",
|
||||
"checksum": "645800d24201c93e5fd6f4308e0292bba9a75900693667401cdffb4361f8e616",
|
||||
"size": 322051744
|
||||
"checksum": "9cff8169be24a8b3e59e89e58d9e3d37f3c17ca1b3a149e60666fe53c789d80a",
|
||||
"size": 372111520
|
||||
}
|
||||
},
|
||||
"sdkCompat": {
|
||||
"testedWrapperVersions": [
|
||||
"0.3.201",
|
||||
"0.3.202",
|
||||
"0.3.204",
|
||||
"0.3.205",
|
||||
"0.3.206",
|
||||
"0.3.207",
|
||||
"0.3.208",
|
||||
"0.3.209",
|
||||
"0.3.210",
|
||||
@@ -67,6 +61,8 @@
|
||||
"0.3.221",
|
||||
"0.3.222",
|
||||
"0.3.223",
|
||||
"0.3.224",
|
||||
"0.3.225",
|
||||
"0.3.226",
|
||||
"0.3.227"
|
||||
],
|
||||
|
||||
@@ -13,12 +13,12 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "clboss";
|
||||
version = "0.16.2";
|
||||
version = "0.16.3";
|
||||
|
||||
# The release tarball includes the pre-generated file `commit_hash.h` that is required for building
|
||||
src = fetchzip {
|
||||
url = "https://github.com/ZmnSCPxj/clboss/releases/download/v${finalAttrs.version}/clboss-v${finalAttrs.version}.tar.gz";
|
||||
hash = "sha256-I83OH+31oqx2FSjzEIsz7uOko3/MbUqjrZ+xZTXxtto=";
|
||||
hash = "sha256-lniKkyynkyzFBJBRTaPiGTVG9semZDhjpCxjyRDzt/g=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -3,18 +3,19 @@
|
||||
lib,
|
||||
autoPatchelfHook,
|
||||
versionCheckHook,
|
||||
copyDesktopItems,
|
||||
desktop-file-utils,
|
||||
dbus,
|
||||
dpkg,
|
||||
fetchurl,
|
||||
gtk3,
|
||||
libayatana-appindicator,
|
||||
libpcap,
|
||||
makeDesktopItem,
|
||||
makeWrapper,
|
||||
nftables,
|
||||
nss,
|
||||
openssl,
|
||||
tpm2-tss,
|
||||
webkitgtk_4_1,
|
||||
writeShellApplication,
|
||||
curl,
|
||||
jq,
|
||||
@@ -26,19 +27,21 @@
|
||||
}:
|
||||
|
||||
let
|
||||
version = "2026.3.846.0";
|
||||
version = "2026.7.1343.0";
|
||||
sources = {
|
||||
x86_64-linux = fetchurl {
|
||||
url = "https://pkg.cloudflareclient.com/pool/noble/main/c/cloudflare-warp/cloudflare-warp_${version}_amd64.deb";
|
||||
hash = "sha256-1SKTK0QW+3CcqBLqHbIsPny/6ekyjZe9qRcjYOMnR58=";
|
||||
name = "cloudflare-warp_${version}_amd64.deb";
|
||||
url = "https://downloads.cloudflareclient.com/v1/download/noble-intel/version/${version}";
|
||||
hash = "sha256-C0u01lhECaHPBDHPIc+yOlDYyHepwCBzJxEaHAV7EF4=";
|
||||
};
|
||||
aarch64-linux = fetchurl {
|
||||
url = "https://pkg.cloudflareclient.com/pool/noble/main/c/cloudflare-warp/cloudflare-warp_${version}_arm64.deb";
|
||||
hash = "sha256-0zYsyZbX8qq/P+GHW4UHSTy2OsDa4fJAVjHcRbpHtSc=";
|
||||
name = "cloudflare-warp_${version}_arm64.deb";
|
||||
url = "https://downloads.cloudflareclient.com/v1/download/noble-arm/version/${version}";
|
||||
hash = "sha256-NT9VUPzTn7dTKyCn+0v81ekN9EKhzeojR2P096amQTQ=";
|
||||
};
|
||||
aarch64-darwin = fetchurl {
|
||||
url = "https://downloads.cloudflareclient.com/v1/download/macos/version/${version}";
|
||||
hash = "sha256-cDmoM0nIYYQyurJeeiVSX0IWJdIY0pVLmjIae5mEXI4=";
|
||||
hash = "sha256-tmUwWC8ejsE2bNhFkMBr5SzCnXLOux+wh3nZ9BBDKd4=";
|
||||
};
|
||||
};
|
||||
in
|
||||
@@ -64,7 +67,6 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
versionCheckHook
|
||||
]
|
||||
++ lib.optionals (!headless && stdenv.hostPlatform.isLinux) [
|
||||
copyDesktopItems
|
||||
desktop-file-utils
|
||||
];
|
||||
|
||||
@@ -74,31 +76,18 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
libpcap
|
||||
openssl
|
||||
nss
|
||||
tpm2-tss
|
||||
(lib.getLib stdenv.cc.cc)
|
||||
]
|
||||
++ lib.optionals (!headless) [
|
||||
gtk3
|
||||
libayatana-appindicator
|
||||
webkitgtk_4_1
|
||||
]
|
||||
);
|
||||
|
||||
desktopItems = lib.optionals (!headless) [
|
||||
(makeDesktopItem {
|
||||
name = "com.cloudflare.WarpCli";
|
||||
desktopName = "Cloudflare Zero Trust Team Enrollment";
|
||||
categories = [
|
||||
"Utility"
|
||||
"Security"
|
||||
"ConsoleOnly"
|
||||
];
|
||||
noDisplay = true;
|
||||
mimeTypes = [ "x-scheme-handler/com.cloudflare.warp" ];
|
||||
exec = "warp-cli --accept-tos registration token %u";
|
||||
startupNotify = false;
|
||||
terminal = true;
|
||||
})
|
||||
];
|
||||
|
||||
autoPatchelfIgnoreMissingDeps = [
|
||||
"libjvm.so"
|
||||
"libpcap.so.0.8"
|
||||
];
|
||||
|
||||
@@ -137,6 +126,9 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
mv lib/systemd/system $out/lib/systemd/
|
||||
substituteInPlace $out/lib/systemd/system/warp-svc.service \
|
||||
--replace-fail "ExecStart=" "ExecStart=$out"
|
||||
substituteInPlace $out/share/applications/com.cloudflare.WarpTaskbar.desktop \
|
||||
$out/share/applications/com.cloudflare.warp.desktop \
|
||||
--replace-fail "Exec=" "Exec=$out"
|
||||
${lib.optionalString (!headless) ''
|
||||
substituteInPlace $out/lib/systemd/user/warp-taskbar.service \
|
||||
--replace-fail "ExecStart=" "ExecStart=$out" \
|
||||
@@ -155,7 +147,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
rm -r $out/etc
|
||||
rm -r $out/share/applications
|
||||
rm -r $out/share/icons
|
||||
rm -r $out/share/warp
|
||||
rm -r $out/lib/warp
|
||||
''}
|
||||
|
||||
runHook postInstall
|
||||
@@ -165,6 +157,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
wrapProgram $out/bin/warp-svc --prefix PATH : ${lib.makeBinPath [ nftables ]}
|
||||
${lib.optionalString (!headless) ''
|
||||
wrapProgram $out/bin/warp-cli --prefix PATH : ${lib.makeBinPath [ desktop-file-utils ]}
|
||||
wrapProgram $out/bin/warp-taskbar --prefix LD_LIBRARY_PATH : $out/lib/warp/lib
|
||||
''}
|
||||
'';
|
||||
|
||||
|
||||
@@ -9,18 +9,18 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "cnspec";
|
||||
version = "13.35.2";
|
||||
version = "13.36.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mondoohq";
|
||||
repo = "cnspec";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-V3fVmIrrbTQhbOMFKmsUHkRADlcPadCi5zwr2WXwzAM=";
|
||||
hash = "sha256-KDubdJ+OgXRxe2DX/8lDGITdl57ViZ8FPgrNNefKI3I=";
|
||||
};
|
||||
|
||||
proxyVendor = true;
|
||||
|
||||
vendorHash = "sha256-WA4O3WITS4QW/yVQ8qcpgvSir77iWG7wRmS5JKML2zw=";
|
||||
vendorHash = "sha256-2YccHGxnVz/4sHAjmOSSJ+W3tAKVQOPTl0NchKycHjI=";
|
||||
|
||||
subPackages = [ "apps/cnspec" ];
|
||||
|
||||
|
||||
@@ -83,7 +83,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
# sandbox does not allow setgid
|
||||
sed '2i echo Skipping chmod setgid test && exit 77' -i ./tests/chmod/setgid.sh
|
||||
substituteInPlace ./tests/install/install-C.sh \
|
||||
--replace 'mode3=2755' 'mode3=1755'
|
||||
--replace-fail 'mode3=2755' 'mode3=1755'
|
||||
|
||||
# Fails on systems with a rootfs. Looks like a bug in the test, see
|
||||
# https://lists.gnu.org/archive/html/bug-coreutils/2019-12/msg00000.html
|
||||
@@ -162,6 +162,8 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
# TODO(@Ericson2314): Investigate whether Darwin could benefit too
|
||||
++ optional (isCross && stdenv.hostPlatform.libc != "glibc") libiconv;
|
||||
|
||||
strictDeps = true;
|
||||
|
||||
hardeningDisable = [ "trivialautovarinit" ];
|
||||
|
||||
configureFlags = [
|
||||
@@ -271,6 +273,8 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
'';
|
||||
};
|
||||
|
||||
__structuredAttrs = true;
|
||||
|
||||
meta = {
|
||||
homepage = "https://www.gnu.org/software/coreutils/";
|
||||
description = "GNU Core Utilities";
|
||||
|
||||
@@ -4,18 +4,29 @@
|
||||
buildGoModule,
|
||||
callPackage,
|
||||
fetchFromGitHub,
|
||||
fetchpatch,
|
||||
applyPatches,
|
||||
lib,
|
||||
nixosTests,
|
||||
stdenvNoCC,
|
||||
}:
|
||||
|
||||
let
|
||||
version = "2024.9.2";
|
||||
src = fetchFromGitHub {
|
||||
owner = "cortezaproject";
|
||||
repo = "corteza";
|
||||
tag = version;
|
||||
hash = "sha256-1mekSiRfFSNa/6MSzwRrI3rb9GHABkn3i1b6tX+73fI=";
|
||||
version = "2024.9.9";
|
||||
src = applyPatches {
|
||||
src = fetchFromGitHub {
|
||||
owner = "cortezaproject";
|
||||
repo = "corteza";
|
||||
tag = version;
|
||||
hash = "sha256-r6/z5yplkT2d1iEhA4S29C1LcbdEJQiOWr0JRP5Pvb0=";
|
||||
};
|
||||
patches = [
|
||||
# CVE-2026-6093
|
||||
(fetchpatch {
|
||||
url = "https://github.com/cortezaproject/corteza/commit/64b58b9d7324e77248bacd183fb994ff338091ec.patch";
|
||||
hash = "sha256-0Ume1zkksS3kwf6QS6T5lDXklAboZVlTt5ZJReqwu3w=";
|
||||
})
|
||||
];
|
||||
};
|
||||
meta = {
|
||||
description = "Low-code platform";
|
||||
@@ -47,13 +58,13 @@ let
|
||||
};
|
||||
|
||||
webApps = lib.mapAttrs mkWebApp {
|
||||
admin = "sha256-34lfnK2mecvu1Lgg9IM61+fbnqRgZC/Agi7iyugn0fM=";
|
||||
compose = "sha256-1/Fyl6Z27TtZzNBeerKYNs4VhLWEW3wJyr0SCapzc9E=";
|
||||
discovery = "sha256-mL+ibAgVFCRV5AvN0VZc4LCCY8hyaIC8gOlgEdXayuU=";
|
||||
one = "sha256-SuGf72y4PXatZJQgbW5X4mPjtJmQlpwbjfFYCEZElBU=";
|
||||
privacy = "sha256-yHi6pq0OKCh+2reygNL7TvwULCHwxeD8BXVVMjlnpLc=";
|
||||
reporter = "sha256-AWKSzULOTdUZ5wdlTo8dJwVGc7RlYbimR4YF4ZAN1pQ=";
|
||||
workflow = "sha256-cxD2mG4uuO8KT1r2Y4opPlY84Hvqu7cbWh2BSo8CcEc=";
|
||||
admin = "sha256-fen4KxPbYpH0ikWco1w3Zr+4WeghFITdmsOqHMGa3gA=";
|
||||
compose = "sha256-UHhyzCeSWTROgzULYkDKN/2hgZ25aDZ7roHTLkt466o=";
|
||||
discovery = "sha256-GHmALrqLTBie0VTDmZz4zJ9Ls2JYsfV0A3VkRwCKSuQ=";
|
||||
one = "sha256-GHCtouGYrFgghWlBVbF5rD9cXrAfleVVxVqZtuLOSr0=";
|
||||
privacy = "sha256-PlmeAJZY/S+osdM650tpJI3XSOanc80WYuMQ6jsiJwQ=";
|
||||
reporter = "sha256-4O6FEF7Ol4V0FxznKGISaIA0w68XL0E3HvQ8bbt2klE=";
|
||||
workflow = "sha256-2vyx3lCxICtVlRFLPkpy0fzXZ9W4li9ESm9sJzInc8g=";
|
||||
};
|
||||
|
||||
server-webconsole = callPackage ./buildYarnDistOnly.nix {
|
||||
@@ -67,8 +78,8 @@ let
|
||||
corteza-locale = fetchFromGitHub {
|
||||
owner = "cortezaproject";
|
||||
repo = "corteza-locale";
|
||||
rev = "64b6d5d562dce642652db55949231abf8b9af4ef";
|
||||
sha256 = "sha256-OKr/M91sEDlTwYBiDXwWkShlfazJBm21G0uU429fjW0=";
|
||||
rev = "57b1f2403207c44055ebce19d95cedd5573f39df";
|
||||
sha256 = "sha256-j+mfWG6tED8AACkUcRWpol2G05qknTxp8b+kwu7c2NA=";
|
||||
};
|
||||
|
||||
corteza-webapp = stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
@@ -116,6 +127,7 @@ let
|
||||
cp -r ${server-webconsole}/* webconsole/dist/
|
||||
''
|
||||
+ lib.optionalString withLocales ''
|
||||
chmod -R u+w pkg/locale/src
|
||||
cp -r ${corteza-locale}/src/* pkg/locale/src/
|
||||
'';
|
||||
|
||||
|
||||
@@ -2,7 +2,9 @@
|
||||
lib,
|
||||
stdenv,
|
||||
fetchurl,
|
||||
fetchpatch,
|
||||
autoreconfHook,
|
||||
texinfo,
|
||||
|
||||
# for passthru.tests
|
||||
git,
|
||||
@@ -20,7 +22,29 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
hash = "sha256-k3YQuXwymh7JJoVT+3gAN7z/8Nz/6XJevE/ZwaqQdds=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ autoreconfHook ];
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
name = "CVE-2026-66484.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/cpio.git/patch/?id=e2b9cbdd3354d2b1569b7390d1bc15c1930559ad";
|
||||
hash = "sha256-WjphVpMaI/ePg8MTZx+vvilKzpRAAzhAFwCwrbsPLRE=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "CVE-2026-66485.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/cpio.git/patch/?id=3cd514031371d8aeeaf2048aa10103e02831aaa9";
|
||||
hash = "sha256-YDlROEYYlZERNzzlx1cQD29gV5IrU01aVcZ/sKpWrRo=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "CVE-2026-66486.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/cpio.git/patch/?id=2ff9600c9ef32e88759843cdbde74c8db5ae9b30";
|
||||
excludes = [ "NEWS" ];
|
||||
hash = "sha256-qi9/9xhKnIyPpji63RgzbnnHZsJgwRnQVMaMiLxQipk=";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoreconfHook
|
||||
texinfo # for makeinfo
|
||||
];
|
||||
|
||||
separateDebugInfo = true;
|
||||
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
From 8be99f5972826c25378bccb9fbd7291623c7b2a7 Mon Sep 17 00:00:00 2001
|
||||
From: Moraxyc <i@qaq.li>
|
||||
Date: Fri, 9 May 2025 13:39:17 +0800
|
||||
Subject: [PATCH] Compatibility with boost 1.83
|
||||
|
||||
---
|
||||
boost/network/protocol/http/server/impl/parsers.ipp | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/boost/network/protocol/http/server/impl/parsers.ipp b/boost/network/protocol/http/server/impl/parsers.ipp
|
||||
index c31e60e..3272c2f 100755
|
||||
--- a/boost/network/protocol/http/server/impl/parsers.ipp
|
||||
+++ b/boost/network/protocol/http/server/impl/parsers.ipp
|
||||
@@ -13,6 +13,7 @@
|
||||
#include <tuple>
|
||||
#include <boost/fusion/include/std_tuple.hpp>
|
||||
#include <boost/network/protocol/http/message/header.hpp>
|
||||
+#include <boost/regex/pending/unicode_iterator.hpp>
|
||||
|
||||
#ifdef BOOST_NETWORK_NO_LIB
|
||||
#ifndef BOOST_NETWORK_INLINE
|
||||
@@ -32,7 +33,7 @@ typedef std::basic_string<uint32_t> u32_string;
|
||||
template <> // <typename Attrib, typename T, typename Enable>
|
||||
struct assign_to_container_from_value<std::string, u32_string, void> {
|
||||
static void call(u32_string const& val, std::string& attr) {
|
||||
- u32_to_u8_iterator<u32_string::const_iterator> begin = val.begin(),
|
||||
+ boost::u32_to_u8_iterator<u32_string::const_iterator> begin = val.begin(),
|
||||
end = val.end();
|
||||
for (; begin != end; ++begin) attr += *begin;
|
||||
}
|
||||
--
|
||||
2.48.1
|
||||
|
||||
@@ -1,62 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
cmake,
|
||||
boost186,
|
||||
openssl,
|
||||
llvmPackages_18,
|
||||
}:
|
||||
let
|
||||
# std::char_traits has been removed
|
||||
stdenvForCppNetlib = if stdenv.hostPlatform.isDarwin then llvmPackages_18.stdenv else stdenv;
|
||||
in
|
||||
stdenvForCppNetlib.mkDerivation rec {
|
||||
pname = "cpp-netlib";
|
||||
version = "0.13.0-final";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "cpp-netlib";
|
||||
repo = "cpp-netlib";
|
||||
tag = "cpp-netlib-${version}";
|
||||
sha256 = "18782sz7aggsl66b4mmi1i0ijwa76iww337fi9sygnplz2hs03a3";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
patches = [
|
||||
# 'u32_to_u8_iterator' was not declared
|
||||
./0001-Compatibility-with-boost-1.83.patch
|
||||
];
|
||||
|
||||
# CMake 2.8 is deprecated and is no longer supported by CMake > 4
|
||||
# https://github.com/NixOS/nixpkgs/issues/445447
|
||||
postPatch = ''
|
||||
substituteInPlace CMakeLists.txt --replace-fail \
|
||||
"cmake_minimum_required(VERSION 2.8)" \
|
||||
"cmake_minimum_required(VERSION 3.10)"
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
buildInputs = [
|
||||
# io_service.hpp has been removed in boost 1.87+
|
||||
boost186
|
||||
openssl
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
"-DCPP-NETLIB_BUILD_SHARED_LIBS=ON"
|
||||
# fatal error: 'boost/asio/stream_socket_service.hpp' file not found
|
||||
"-DCPP-NETLIB_BUILD_EXAMPLES=OFF"
|
||||
"-DCPP-NETLIB_BUILD_TESTS=OFF"
|
||||
];
|
||||
|
||||
# Most tests make network GET requests to various websites
|
||||
doCheck = false;
|
||||
|
||||
meta = {
|
||||
description = "Collection of open-source libraries for high level network programming";
|
||||
homepage = "https://cpp-netlib.org";
|
||||
license = lib.licenses.boost;
|
||||
platforms = lib.platforms.all;
|
||||
};
|
||||
}
|
||||
@@ -17,13 +17,13 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "cri-o";
|
||||
version = "1.36.3";
|
||||
version = "1.36.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "cri-o";
|
||||
repo = "cri-o";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-AhsSi79HUbNvPoa7duOl9290ZjKss2a6RLvRPHDh6Sg=";
|
||||
hash = "sha256-GgjOY+TE9RcLjy9aSu8Um0Zdzd0juxbTaoT8ljThqws=";
|
||||
};
|
||||
vendorHash = null;
|
||||
|
||||
|
||||
@@ -14,13 +14,13 @@
|
||||
|
||||
buildDotnetModule rec {
|
||||
pname = "crossmacro-daemon";
|
||||
version = "1.2.1";
|
||||
version = "1.3.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "alper-han";
|
||||
repo = "CrossMacro";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-lMXp7ItwpZ14ATRKuR7Q8/FhfMNQ+YCgHL13oj6iBNs=";
|
||||
hash = "sha256-2L25A2OO2Ju6n1QlblNBtKva1PfbidFz/QESjLBVuSU=";
|
||||
};
|
||||
|
||||
projectFile = "src/CrossMacro.Daemon/CrossMacro.Daemon.csproj";
|
||||
@@ -44,7 +44,16 @@ buildDotnetModule rec {
|
||||
zlib
|
||||
];
|
||||
|
||||
dotnetFlags = [ "-p:Version=${version}" ];
|
||||
dotnetFlags = [
|
||||
"-p:PublishAot=true"
|
||||
"-p:PublishReadyToRun=false"
|
||||
"-p:OptimizationPreference=Speed"
|
||||
"-p:StripSymbols=true"
|
||||
"-p:IlcTrimMetadata=true"
|
||||
"-p:DebugType=None"
|
||||
"-p:DebugSymbols=false"
|
||||
"-p:Version=${version}"
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
install -Dm644 scripts/assets/io.github.alper_han.crossmacro.policy \
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "cryptsetup";
|
||||
version = "2.8.6";
|
||||
version = "2.8.7";
|
||||
|
||||
outputs = [
|
||||
"bin"
|
||||
@@ -39,7 +39,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
url =
|
||||
"mirror://kernel/linux/utils/cryptsetup/v${lib.versions.majorMinor finalAttrs.version}/"
|
||||
+ "cryptsetup-${finalAttrs.version}.tar.xz";
|
||||
hash = "sha256-gAQmX9mTiF0I97Yz2+BWhR3hohAwdhOk693HQ/zO/lo=";
|
||||
hash = "sha256-53bw04HobKYQQsRXBpSR/o4KwoZ4DHw7Hk+ZIavJYdo=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
||||
@@ -33,11 +33,5 @@ buildDotnetGlobalTool (finalAttrs: {
|
||||
license = lib.licenses.mit;
|
||||
platforms = lib.platforms.unix;
|
||||
maintainers = with lib.maintainers; [ GaetanLepage ];
|
||||
badPlatforms = [
|
||||
# Crashes immediately at runtime
|
||||
# terminated by signal SIGKILL (Forced quit)
|
||||
# https://github.com/razzmatazz/csharp-language-server/issues/211
|
||||
"aarch64-darwin"
|
||||
];
|
||||
};
|
||||
})
|
||||
|
||||
@@ -19,11 +19,15 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
];
|
||||
buildInputs = [ libtool ];
|
||||
|
||||
strictDeps = true;
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/cunit/CUnit/${finalAttrs.version}/CUnit-${finalAttrs.version}.tar.bz2";
|
||||
sha256 = "057j82da9vv4li4z5ri3227ybd18nzyq81f6gsvhifs5z0vr3cpm";
|
||||
};
|
||||
|
||||
__structuredAttrs = true;
|
||||
|
||||
meta = {
|
||||
description = "Unit Testing Framework for C";
|
||||
|
||||
|
||||
@@ -14,7 +14,6 @@
|
||||
systemdLibs,
|
||||
acl,
|
||||
gmp,
|
||||
darwin,
|
||||
libusb1 ? null,
|
||||
gnutls ? null,
|
||||
avahi ? null,
|
||||
@@ -40,6 +39,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
"lib"
|
||||
"dev"
|
||||
"man"
|
||||
"doc"
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user