Merge commit '27e297b7b345fb371054b9f02e1fc04e002f5df1' into haskell-updates

This commit is contained in:
Michael Daniels
2026-02-21 10:55:26 -05:00
772 changed files with 25642 additions and 21153 deletions
+2 -2
View File
@@ -74,6 +74,8 @@
- `nodePackages.wavedrom-cli` has been removed, as it was unmaintained within nixpkgs.
- All `@tailwindcss` packages in the `nodePackages` set have been removed, as they are libraries that should instead be locked by JS projects that utilize them.
- `arti` has been updated to major version 2, which removed the long-deprecated `proxy.socks_port` and `proxy.dns_port` and the legacy syntax for specifying directory authorities. For more information, see the [changelog for 2.0.0](https://gitlab.torproject.org/tpo/core/arti/-/blob/arti-v2.0.0/CHANGELOG.md).
- `kanata` now requires `karabiner-dk` version 6.0+ or later.
@@ -194,8 +196,6 @@
- `openrgb` was updated to 1.0rc2, which now uses Plugin API version 4.
Some existing OpenRGB plugins may be incompatible or require updates.
- the `neovim` wrapper sets provider-related configuration in its generated config rather than as wrapper arguments. It should not affect configuration unless you set `wrapRc` to false.
- We now use the upstream wrapper script for Gradle, supporting both the `JAVA_HOME` and `GRADLE_OPTS` environment variables.
## Nixpkgs Library {#sec-nixpkgs-release-26.05-lib}
+28 -18
View File
@@ -2548,12 +2548,6 @@
githubId = 6553158;
name = "Joel Höner";
};
atila = {
name = "Átila Saraiva";
email = "atilasaraiva@gmail.com";
github = "AtilaSaraiva";
githubId = 29521461;
};
atkinschang = {
email = "atkinschang+nixpkgs@gmail.com";
github = "AtkinsChang";
@@ -8637,12 +8631,6 @@
githubId = 5198058;
name = "Udo Sauer";
};
fettgoenner = {
email = "paulmatti@protonmail.com";
github = "fettgoenner";
githubId = 92429150;
name = "Paul Meinhold";
};
feyorsh = {
email = "george@feyor.sh";
github = "Feyorsh";
@@ -11831,6 +11819,12 @@
githubId = 1358764;
name = "Jamie Magee";
};
janezp = {
name = "Janez Podhostnik";
email = "janez.podhostnik@ourplace.is";
github = "janezpodhostnik";
githubId = 67895329;
};
janhencic = {
name = "Jan Hencic";
email = "jan@hencic.com";
@@ -13968,6 +13962,11 @@
githubId = 148352;
name = "Jim Fowler";
};
kitsunoff = {
github = "kitsunoff";
githubId = 58953114;
name = "Maxim Belyy";
};
Kitt3120 = {
email = "nixpkgs@schweren.dev";
github = "Kitt3120";
@@ -14836,6 +14835,11 @@
githubId = 736291;
name = "Lee Machin";
};
lefaucheur0769 = {
name = "LeFaucheur0769";
github = "LeFaucheur0769";
githubId = 90474269;
};
legojames = {
github = "jrobinson-uk";
githubId = 4701504;
@@ -17472,6 +17476,12 @@
githubId = 33701036;
name = "Milo Mc";
};
mimahlavacek = {
email = "mima.hlavacek@gmail.com";
github = "mima-hlavacek";
githubId = 55756477;
name = "Míma Hlaváček";
};
mimame = {
email = "miguel.madrid.mencia@gmail.com";
github = "mimame";
@@ -18739,12 +18749,6 @@
githubId = 166791;
name = "Neil Mayhew";
};
nek0 = {
email = "nek0@nek0.eu";
github = "nek0";
githubId = 1859691;
name = "Amedeo Molnár";
};
nekitdev = {
email = "nekit@nekit.dev";
github = "nekitdev";
@@ -21140,6 +21144,12 @@
githubId = 103822;
name = "Patrick Mahoney";
};
pmeinhold = {
email = "paulmatti@protonmail.com";
github = "pmeinhold";
githubId = 92429150;
name = "Paul Meinhold";
};
pmenke = {
email = "nixos@pmenke.de";
github = "pmenke-de";
@@ -28,6 +28,8 @@
- [qui](https://github.com/autobrr/qui), a modern alternative webUI for qBittorrent, with multi-instance support. Written in Go/React. Available as [services.qui](#opt-services.qui.enable).
- [Remark42](https://remark42.com/), a self-hosted comment engine. Available as [services.remark42](#opt-services.remark42.enable).
- [LibreChat](https://www.librechat.ai/), open-source self-hostable ChatGPT clone with Agents and RAG APIs. Available as [services.librechat](#opt-services.librechat.enable).
- [nohang](https://github.com/hakavlad/nohang), a daemon for Linux that prevents out of memory (OOM) situations from affecting system responsiveness. Available as [services.nohang](#opt-services.nohang.enable)
+3 -3
View File
@@ -5,7 +5,7 @@
...
}:
let
pcmciaUtils = pkgs.pcmciaUtils.overrideAttrs {
pcmciautils = pkgs.pcmciautils.overrideAttrs {
inherit (config.hardware.pcmcia) firmware config;
};
in
@@ -48,9 +48,9 @@ in
boot.kernelModules = [ "pcmcia" ];
services.udev.packages = [ pcmciaUtils ];
services.udev.packages = [ pcmciautils ];
environment.systemPackages = [ pcmciaUtils ];
environment.systemPackages = [ pcmciautils ];
};
+15 -1
View File
@@ -228,6 +228,10 @@ in
(mkRenamedOptionModule [ "programs" "info" "enable" ] [ "documentation" "info" "enable" ])
(mkRenamedOptionModule [ "programs" "man" "enable" ] [ "documentation" "man" "enable" ])
(mkRenamedOptionModule [ "services" "nixosManual" "enable" ] [ "documentation" "nixos" "enable" ])
(mkRenamedOptionModule
[ "documentation" "man" "generateCaches" ]
[ "documentation" "man" "cache" "enable" ]
)
(mkRemovedOptionModule [
"documentation"
"nixos"
@@ -261,7 +265,7 @@ in
'';
};
man.generateCaches = mkOption {
man.cache.enable = mkOption {
type = types.bool;
default = false;
description = ''
@@ -273,6 +277,16 @@ in
'';
};
man.cache.generateAtRuntime = mkOption {
type = types.bool;
default = false;
description = ''
Whether to generate the manual page index caches at runtime using
a systemd service. Note that this is currently only supported by the
man-db module.
'';
};
info.enable = mkOption {
type = types.bool;
default = true;
+75 -36
View File
@@ -7,13 +7,14 @@
let
cfg = config.documentation.man.man-db;
cfgm = config.documentation.man;
in
{
options = {
documentation.man.man-db = {
enable = lib.mkEnableOption "man-db as the default man page viewer" // {
default = config.documentation.man.enable;
default = cfgm.enable;
defaultText = lib.literalExpression "config.documentation.man.enable";
example = false;
};
@@ -39,7 +40,7 @@ in
};
defaultText = lib.literalMD "all man pages in {option}`config.environment.systemPackages`";
description = ''
The manual pages to generate caches for if {option}`documentation.man.generateCaches`
The manual pages to generate caches for if {option}`documentation.man.cache.enable`
is enabled. Must be a path to a directory with man pages under
`/share/man`; see the source for an example.
Advanced users can make this a content-addressed derivation to save a few rebuilds.
@@ -65,41 +66,79 @@ in
)
];
config = lib.mkIf cfg.enable {
environment.systemPackages = [ cfg.package ];
environment.etc."man_db.conf".text =
let
# We unfortunately cant use the customized `cfg.package` when
# crosscompiling. Instead we detect that situation and work
# around it by using the vanilla one, like the OpenSSH module.
buildPackage =
if pkgs.stdenv.buildPlatform.canExecute pkgs.stdenv.hostPlatform then
config = lib.mkIf cfg.enable (
lib.mkMerge [
{
environment.systemPackages = [ cfg.package ];
environment.etc."man_db.conf".text =
let
# We unfortunately cant use the customized `cfg.package` when
# crosscompiling. Instead we detect that situation and work
# around it by using the vanilla one, like the OpenSSH module.
buildPackage =
if pkgs.stdenv.buildPlatform.canExecute pkgs.stdenv.hostPlatform then
cfg.package
else
pkgs.buildPackages.man-db;
manualCache =
if (!cfgm.cache.generateAtRuntime) then
pkgs.runCommand "man-cache"
{
nativeBuildInputs = [ buildPackage ];
preferLocalBuild = true;
}
''
echo "MANDB_MAP ${cfg.manualPages}/share/man $out" > man.conf
mandb -C man.conf -pscq
''
else
"/var/cache/man/nixos-mandb";
in
''
# Manual pages paths for NixOS
MANPATH_MAP /run/current-system/sw/bin /run/current-system/sw/share/man
MANPATH_MAP /run/wrappers/bin /run/current-system/sw/share/man
${lib.optionalString cfgm.cache.enable ''
# Manual pages caches for NixOS
MANDB_MAP /run/current-system/sw/share/man ${manualCache}
''}
'';
}
(lib.mkIf (cfgm.enable && cfgm.cache.generateAtRuntime) {
users.users.mandb = {
isSystemUser = true;
group = "mandb";
};
users.groups.mandb = { };
systemd.services.mandb = {
path = [
cfg.package
else
pkgs.buildPackages.man-db;
pkgs.rsync
];
script = ''
rsync \
--checksum --recursive --copy-links --delete --no-times --no-perms --chmod=+w \
${cfg.manualPages}/share/man/ "$CACHE_DIRECTORY/nixos-manpages"
manualCache =
pkgs.runCommand "man-cache"
{
nativeBuildInputs = [ buildPackage ];
preferLocalBuild = true;
}
''
echo "MANDB_MAP ${cfg.manualPages}/share/man $out" > man.conf
mandb -C man.conf -pscq
'';
in
''
# Manual pages paths for NixOS
MANPATH_MAP /run/current-system/sw/bin /run/current-system/sw/share/man
MANPATH_MAP /run/wrappers/bin /run/current-system/sw/share/man
echo "MANDB_MAP $CACHE_DIRECTORY/nixos-manpages $CACHE_DIRECTORY/nixos-mandb" \
> "$RUNTIME_DIRECTORY/man.conf"
${lib.optionalString config.documentation.man.generateCaches ''
# Generated manual pages cache for NixOS (immutable)
MANDB_MAP /run/current-system/sw/share/man ${manualCache}
''}
# Manual pages caches for NixOS
MANDB_MAP /run/current-system/sw/share/man /var/cache/man/nixos
'';
};
mandb -C "$RUNTIME_DIRECTORY/man.conf" -q
'';
serviceConfig = {
CacheDirectory = "man";
RuntimeDirectory = "mandb";
User = "mandb";
BindReadOnlyPaths = [ "/dev/null:/etc/man_db.conf" ]; # mandb will still read /etc/man_db.conf if it exists, even when setting -C path/to/config.conf
ProtectSystem = "strict";
};
wantedBy = [ "default.target" ];
};
})
]
);
}
+2 -2
View File
@@ -60,7 +60,7 @@ in
apply = makeLeadingSlashes;
description = ''
Change the paths where mandoc {manpage}`makewhatis(8)`generates the
manual page index caches. {option}`documentation.man.generateCaches`
manual page index caches. {option}`documentation.man.cache.enable`
should be enabled to allow cache generation. This list should only
include the paths to manpages installed in the system configuration,
i. e. /run/current-system/sw/share/man. {manpage}`makewhatis(8)`
@@ -215,7 +215,7 @@ in
# create mandoc.db for whatis(1), apropos(1) and man(1) -k
# TODO(@sternenseemman): fix symlinked directories not getting indexed,
# see: https://inbox.vuxu.org/mandoc-tech/20210906171231.GF83680@athene.usta.de/T/#e85f773c1781e3fef85562b2794f9cad7b2909a3c
extraSetup = lib.mkIf config.documentation.man.generateCaches ''
extraSetup = lib.mkIf config.documentation.man.cache.enable ''
for man_path in ${
lib.concatMapStringsSep " " (path: "$out" + lib.escapeShellArg path) cfg.cachePath
}
+1
View File
@@ -1738,6 +1738,7 @@
./services/web-apps/privatebin.nix
./services/web-apps/prosody-filer.nix
./services/web-apps/readeck.nix
./services/web-apps/remark42.nix
./services/web-apps/reposilite.nix
./services/web-apps/rimgo.nix
./services/web-apps/rss-bridge.nix
+2 -1
View File
@@ -169,7 +169,8 @@ in
programs.fish.shellAliases = lib.mapAttrs (name: lib.mkDefault) cfge.shellAliases;
# Required for man completions
documentation.man.generateCaches = lib.mkDefault true;
documentation.man.cache.enable = lib.mkDefault true;
documentation.man.cache.generateAtRuntime = lib.mkDefault true;
environment = lib.mkMerge [
(lib.mkIf cfg.useBabelfish {
+2
View File
@@ -294,6 +294,7 @@ in
perms = [
"read"
"add"
"player"
"control"
"admin"
];
@@ -323,6 +324,7 @@ in
permissions = [
"read"
"add"
"player"
"control"
"admin"
];
@@ -46,13 +46,77 @@ in
RestartSec = 5;
Type = "simple";
DynamicUser = true;
UMask = "0077";
RuntimeDirectory = "flaresolverr";
WorkingDirectory = "/run/flaresolverr";
ExecStart = lib.getExe cfg.package;
TimeoutStopSec = 30;
# Systemd hardening
LockPersonality = true;
PrivateDevices = true;
PrivateMounts = true;
PrivateUsers = true;
ProtectClock = true;
ProtectControlGroups = true;
ProtectHome = true;
ProtectHostname = true;
ProtectKernelLogs = true;
ProtectKernelModules = true;
ProtectKernelTunables = true;
ProtectProc = "invisible";
RestrictRealtime = true;
RestrictAddressFamilies = [
"AF_INET"
"AF_INET6"
"AF_UNIX"
];
RestrictNamespaces = [
"net"
"pid"
"user"
];
CapabilityBoundingSet = [
"~CAP_BLOCK_SUSPEND"
"~CAP_BPF"
"~CAP_CHOWN"
"~CAP_IPC_LOCK"
"~CAP_MKNOD"
"~CAP_NET_ADMIN"
"~CAP_NET_RAW"
"~CAP_PERFMON"
"~CAP_SYSLOG"
"~CAP_SYS_ADMIN"
"~CAP_SYS_BOOT"
"~CAP_SYS_MODULE"
"~CAP_SYS_PACCT"
"~CAP_SYS_PTRACE"
"~CAP_SYS_TIME"
"~CAP_WAKE_ALARM"
];
SystemCallFilter = [
"~@chown"
"~@clock"
"~@cpu-emulation"
"~@debug"
"~@keyring"
"~@memlock"
"~@module"
"~@obsolete"
"~@pkey"
"~@raw-io"
"~@reboot"
"~@setuid"
"~@swap"
"~@timer"
];
SystemCallErrorNumber = "EPERM";
SystemCallArchitectures = "native";
};
};
networking.firewall = lib.mkIf cfg.openFirewall { allowedTCPPorts = [ cfg.port ]; };
};
meta.maintainers = with lib.maintainers; [ diogotcorreia ];
}
@@ -8,6 +8,7 @@ let
cfg = config.services.gotenberg;
args = [
"--api-bind-ip=${cfg.bindIP}"
"--api-port=${toString cfg.port}"
"--api-timeout=${cfg.timeout}"
"--api-root-path=${cfg.rootPath}"
+259 -4
View File
@@ -30,8 +30,35 @@ let
path = "${pkg}/lib/node_modules/${pkg.pname}";
}) cfg.customNodes
);
# Runners
runnersCfg = cfg.taskRunners;
runnersEnv = partitionEnv runnersCfg.environment;
commonAllowedEnv = lib.attrNames runnersEnv.regular;
enabledRunners = lib.filterAttrs (_name: runnerCfg: runnerCfg.enable) runnersCfg.runners;
anyRunnerEnabled = runnersCfg.enable && (enabledRunners != { });
runnerTypes = lib.attrNames enabledRunners;
runnersStateDir = "n8n-task-runners";
taskRunnerConfigs = lib.mapAttrsToList (runnerType: runnerCfg: {
runner-type = runnerType;
workdir = "/var/lib/${runnersStateDir}";
command = runnerCfg.command;
args = runnerCfg.args;
allowed-env = commonAllowedEnv;
env-overrides = runnerCfg.environment;
health-check-server-port = toString runnerCfg.healthCheckPort;
}) enabledRunners;
launcherConfigFile = pkgs.writeText "n8n-task-runners.json" (
builtins.toJSON { task-runners = taskRunnerConfigs; }
);
in
{
meta.maintainers = with lib.maintainers; [
sweenu
gepbird
];
imports = [
(lib.mkRemovedOptionModule [ "services" "n8n" "settings" ] "Use services.n8n.environment instead.")
(lib.mkRemovedOptionModule [
@@ -128,13 +155,188 @@ in
When enabled, n8n sends notifications of new versions and security updates.
'';
};
N8N_CUSTOM_EXTENSIONS = lib.mkOption {
internal = true;
type = with lib.types; nullOr path;
default = if cfg.customNodes != [ ] then toString customNodesDir else null;
description = ''
Specify the path to directories containing your custom nodes.
'';
};
N8N_RUNNERS_MODE = lib.mkOption {
internal = true;
type =
with lib.types;
enum [
"internal"
"external"
];
default = if runnersCfg.enable then "external" else "internal";
description = ''
How to launch and run the task runner.
`internal` means n8n will launch a task runner as child process.
`external` means an external orchestrator will launch the task runner.
'';
};
N8N_RUNNERS_BROKER_PORT = lib.mkOption {
type = with lib.types; coercedTo port toString str;
default = 5679;
description = ''
Port the task broker listens on for task runner connections.
'';
};
N8N_RUNNERS_BROKER_LISTEN_ADDRESS = lib.mkOption {
type = lib.types.str;
default = "127.0.0.1";
description = ''
Address the task broker listens on.
'';
};
N8N_RUNNERS_AUTH_TOKEN_FILE = lib.mkOption {
type = with lib.types; nullOr path;
default = null;
description = ''
Path to a file containing the shared authentication token
used between the n8n server (task broker) and the task runners.
This option is required when {option}`services.n8n.taskRunners.enable` is true.
The file should be readable by the service and not stored in the Nix store.
Use tools like `agenix` or `sops-nix` to manage this secret.
'';
};
};
};
default = { };
};
taskRunners = {
enable = lib.mkEnableOption "n8n task runners for sandboxed Code node execution";
launcherPackage = lib.mkPackageOption pkgs "n8n-task-runner-launcher" { };
environment = lib.mkOption {
description = ''
Environment variables for the task runner launcher and runners.
These are common to all runners and passed via `allowed-env` in the launcher config.
See <https://docs.n8n.io/hosting/configuration/environment-variables/task-runners/> for available options.
Environment variables ending with `_FILE` are automatically handled as secrets:
they are loaded via systemd credentials for secure access with `DynamicUser=true`.
Note: The authentication token should be set via {option}`services.n8n.environment.N8N_RUNNERS_AUTH_TOKEN_FILE`.
'';
example = lib.literalExpression ''
{
N8N_RUNNERS_AUTO_SHUTDOWN_TIMEOUT = 15;
N8N_RUNNERS_MAX_CONCURRENCY = 10;
}
'';
type = lib.types.submodule {
freeformType =
with lib.types;
attrsOf (oneOf [
str
(coercedTo int toString str)
(coercedTo bool builtins.toJSON str)
]);
options = {
N8N_RUNNERS_CONFIG_PATH = lib.mkOption {
internal = true;
type = with lib.types; nullOr path;
default = launcherConfigFile;
description = ''
Path to the configuration file for the task runner launcher.
'';
};
N8N_RUNNERS_AUTH_TOKEN_FILE = lib.mkOption {
type = with lib.types; nullOr path;
default = cfg.environment.N8N_RUNNERS_AUTH_TOKEN_FILE;
defaultText = lib.literalExpression "config.services.n8n.environment.N8N_RUNNERS_AUTH_TOKEN_FILE";
description = ''
Path to the authentication token file for the task runner.
'';
};
N8N_RUNNERS_TASK_BROKER_URI = lib.mkOption {
type = lib.types.str;
default = "http://${cfg.environment.N8N_RUNNERS_BROKER_LISTEN_ADDRESS}:${cfg.environment.N8N_RUNNERS_BROKER_PORT}";
defaultText = lib.literalExpression ''"http://''${config.services.n8n.environment.N8N_RUNNERS_BROKER_LISTEN_ADDRESS}:''${config.services.n8n.environment.N8N_RUNNERS_BROKER_PORT}"'';
description = ''
URI of the n8n task broker that the runner connects to.
'';
};
};
};
default = { };
};
runners = lib.mkOption {
type = lib.types.attrsOf (
lib.types.submodule (
{ name, ... }:
{
options = {
enable = lib.mkOption {
type = lib.types.bool;
default = true;
description = ''
Whether to enable the ${name} task runner.
Only takes effect when {option}`services.n8n.taskRunners.enable` is true.
'';
};
command = lib.mkOption {
type = lib.types.str;
description = "Command to execute for this runner.";
};
healthCheckPort = lib.mkOption {
type = lib.types.port;
description = "Port for the runner's health check server.";
};
args = lib.mkOption {
type = with lib.types; listOf str;
default = [ ];
description = "Additional command-line arguments to pass to the task runner.";
};
environment = lib.mkOption {
type = with lib.types; attrsOf str;
default = { };
description = "Environment variables specific to this task runner.";
};
};
}
)
);
default = { };
defaultText = lib.literalExpression ''
{
javascript = {
enable = true;
command = lib.getExe' config.services.n8n.package "n8n-task-runner";
healthCheckPort = 5681;
};
python = {
enable = true;
command = lib.getExe' config.services.n8n.package "n8n-task-runner-python";
healthCheckPort = 5682;
};
}
'';
description = "Configuration for individual task runners.";
};
};
};
config = lib.mkIf cfg.enable {
assertions = [
{
assertion = anyRunnerEnabled -> cfg.environment.N8N_RUNNERS_AUTH_TOKEN_FILE != null;
message = "services.n8n.environment.N8N_RUNNERS_AUTH_TOKEN_FILE must be set when task runners are enabled.";
}
];
systemd.services.n8n = {
description = "n8n service";
after = [ "network.target" ];
@@ -144,15 +346,12 @@ in
// {
HOME = cfg.environment.N8N_USER_FOLDER;
}
// lib.optionalAttrs (cfg.customNodes != [ ]) {
N8N_CUSTOM_EXTENSIONS = toString customNodesDir;
}
// n8nEnv.fileBasedTransformed;
serviceConfig = {
Type = "simple";
ExecStart = lib.getExe cfg.package;
Restart = "on-failure";
StateDirectory = "n8n";
StateDirectory = baseNameOf cfg.environment.N8N_USER_FOLDER;
LoadCredential = lib.mapAttrsToList (
varName: secretPath: "${envVarToCredName varName}:${secretPath}"
@@ -178,6 +377,62 @@ in
};
};
warnings = lib.optional (runnersCfg.enable && !anyRunnerEnabled) ''
services.n8n.taskRunners.enable is true, but both JavaScript and Python runners are disabled.
Enable at least one runner or disable taskRunners.
'';
# We set the defaults here to ease adding attributes
services.n8n.taskRunners.runners = {
javascript = lib.mapAttrs (_: lib.mkDefault) {
enable = true;
command = lib.getExe' cfg.package "n8n-task-runner";
healthCheckPort = 5681;
};
python = lib.mapAttrs (_: lib.mkDefault) {
enable = true;
command = lib.getExe' cfg.package "n8n-task-runner-python";
healthCheckPort = 5682;
};
};
systemd.services.n8n-task-runner = lib.mkIf anyRunnerEnabled {
description = "n8n task runner";
after = [ "n8n.service" ];
requires = [ "n8n.service" ];
wantedBy = [ "multi-user.target" ];
environment = runnersEnv.regular // runnersEnv.fileBasedTransformed;
serviceConfig = {
Type = "simple";
ExecStart = "${lib.getExe runnersCfg.launcherPackage} ${lib.concatStringsSep " " runnerTypes}";
Restart = "on-failure";
StateDirectory = runnersStateDir;
LoadCredential = lib.mapAttrsToList (
varName: secretPath: "${envVarToCredName varName}:${secretPath}"
) runnersEnv.fileBased;
# Hardening
DynamicUser = "true";
NoNewPrivileges = "yes";
PrivateTmp = "yes";
PrivateDevices = "yes";
DevicePolicy = "closed";
ProtectSystem = "strict";
ProtectHome = "read-only";
ProtectControlGroups = "yes";
ProtectKernelModules = "yes";
ProtectKernelTunables = "yes";
RestrictAddressFamilies = "AF_UNIX AF_INET AF_INET6 AF_NETLINK";
RestrictNamespaces = "yes";
RestrictRealtime = "yes";
RestrictSUIDSGID = "yes";
MemoryDenyWriteExecute = "no"; # v8 JIT requires memory segments to be Writable-Executable.
LockPersonality = "yes";
};
};
networking.firewall = lib.mkIf cfg.openFirewall {
allowedTCPPorts = [ (lib.toInt cfg.environment.N8N_PORT) ];
};
@@ -0,0 +1,143 @@
{
config,
lib,
pkgs,
...
}:
let
cfg = config.services.remark42;
siteList = lib.concatStringsSep "," cfg.sites;
in
{
options.services.remark42 = {
enable = lib.mkEnableOption "Remark42 commenting server";
package = lib.mkPackageOption pkgs "remark42" { };
remarkUrl = lib.mkOption {
type = lib.types.str;
example = "https://comments.example.com";
description = ''
Public URL of this Remark42 instance. This is passed to the backend as
`REMARK_URL` and should match the frontend embed config `host`.
'';
};
sites = lib.mkOption {
type = lib.types.listOf lib.types.str;
default = [ "remark" ];
example = [
"blog"
"docs"
];
description = ''
Site IDs served by this instance (passed as `SITE`, comma-separated).
The frontend embed config `site_id` must match one of these values.
'';
};
listenAddress = lib.mkOption {
type = lib.types.str;
default = "127.0.0.1";
example = "0.0.0.0";
description = "Bind address (`REMARK_ADDRESS`).";
};
port = lib.mkOption {
type = lib.types.port;
default = 8080;
description = "Listen port (`REMARK_PORT`).";
};
dataDir = lib.mkOption {
type = lib.types.path;
default = "/var/lib/remark42";
description = ''
Working directory for Remark42. Data files are stored here and
automatic backups will be created in this directory by default.
'';
};
environmentFile = lib.mkOption {
type = lib.types.nullOr lib.types.path;
default = null;
example = "/run/secrets/remark42.env";
description = ''
Optional environment file in systemd `EnvironmentFile=` format.
Use this for secrets to avoid storing them in the Nix store.
'';
};
settings = lib.mkOption {
type = lib.types.attrsOf lib.types.str;
default = { };
example = {
AUTH_ANON = "true";
};
description = "Extra environment variables passed to Remark42.";
};
openFirewall = lib.mkOption {
type = lib.types.bool;
default = false;
description = "Whether to open the firewall for `port`.";
};
};
config = lib.mkIf cfg.enable {
assertions = [
{
assertion = cfg.sites != [ ];
message = "services.remark42.sites must contain at least one site ID.";
}
{
assertion = cfg.environmentFile != null || (cfg.settings ? SECRET);
message = ''
Remark42 requires SECRET.
Provide it via services.remark42.environmentFile (recommended),
or via services.remark42.settings.SECRET (not recommended).
'';
}
];
users.groups.remark42 = { };
users.users.remark42 = {
isSystemUser = true;
group = "remark42";
home = cfg.dataDir;
createHome = true;
description = "Remark42 service user";
};
systemd.services.remark42 = {
description = "Remark42 commenting server";
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
environment = cfg.settings // {
REMARK_URL = cfg.remarkUrl;
SITE = siteList;
REMARK_ADDRESS = cfg.listenAddress;
REMARK_PORT = toString cfg.port;
};
serviceConfig = {
Type = "simple";
User = "remark42";
Group = "remark42";
WorkingDirectory = cfg.dataDir;
ExecStart = "${cfg.package}/bin/remark42 server";
Restart = "on-failure";
RestartSec = "2s";
}
// lib.optionalAttrs (cfg.environmentFile != null) {
EnvironmentFile = cfg.environmentFile;
};
};
networking.firewall.allowedTCPPorts = lib.mkIf cfg.openFirewall [ cfg.port ];
};
}
+6 -1
View File
@@ -713,7 +713,12 @@ in
systemd.managerEnvironment = {
# Doesn't contain systemd itself - everything works so it seems to use the compiled-in value for its tools
# util-linux is needed for the main fsck utility wrapping the fs-specific ones
PATH = lib.makeBinPath (config.system.fsPackages ++ [ cfg.package.util-linux ]);
PATH = lib.makeBinPath (
config.system.fsPackages
++ [ cfg.package.util-linux ]
# systemd-ssh-generator needs sshd in PATH
++ lib.optional config.services.openssh.enable config.services.openssh.package
);
LOCALE_ARCHIVE = "/run/current-system/sw/lib/locale/locale-archive";
TZDIR = "/etc/zoneinfo";
# If SYSTEMD_UNIT_PATH ends with an empty component (":"), the usual unit load path will be appended to the contents of the variable
+1
View File
@@ -1391,6 +1391,7 @@ in
redlib = runTest ./redlib.nix;
redmine = handleTestOn [ "x86_64-linux" "aarch64-linux" ] ./redmine.nix { };
refind = runTest ./refind.nix;
remark42 = runTest ./remark42.nix;
renovate = runTest ./renovate.nix;
replace-dependencies = handleTest ./replace-dependencies { };
reposilite = runTest ./reposilite.nix;
+1 -1
View File
@@ -1,7 +1,7 @@
{ lib, ... }:
{
name = "flaresolverr";
meta.maintainers = [ ];
meta.maintainers = with lib.maintainers; [ diogotcorreia ];
nodes.machine =
{ pkgs, ... }:
+56 -2
View File
@@ -1,12 +1,18 @@
{ lib, pkgs, ... }:
let
port = 5678;
brokerPort = 5679;
webhookUrl = "http://example.com";
secretFile = toString (pkgs.writeText "n8n-encryption-key" "test-encryption-key-12345");
authTokenFile = toString (pkgs.writeText "n8n-runner-auth-token" "test-runner-auth-token-12345");
in
{
name = "n8n";
meta.maintainers = with lib.maintainers; [ k900 ];
meta.maintainers = with lib.maintainers; [
k900
sweenu
gepbird
];
node.pkgsReadOnly = false;
@@ -20,8 +26,26 @@ in
WEBHOOK_URL = webhookUrl;
N8N_TEMPLATES_ENABLED = false;
DB_PING_INTERVAL_SECONDS = 2;
# !!! Don't do this with real keys. The /nix store is world-readable!
# !!! Don't do this with real keys/tokens. The /nix store is world-readable!
N8N_ENCRYPTION_KEY_FILE = secretFile;
N8N_RUNNERS_AUTH_TOKEN_FILE = authTokenFile;
};
taskRunners = {
enable = true;
environment = {
# Common env var for all runners
N8N_RUNNERS_MAX_CONCURRENCY = 10;
};
runners = {
javascript = {
args = [ "--disallow-code-generation-from-strings" ];
environment.NODE_FUNCTION_ALLOW_BUILTIN = "*";
};
python = {
args = [ "--test-arg" ];
environment.N8N_RUNNERS_STDLIB_ALLOW = "*";
};
};
};
};
};
@@ -48,5 +72,35 @@ in
custom_extensions_dir = machine.succeed("grep -oP 'N8N_CUSTOM_EXTENSIONS=\\K[^\"]+' /etc/systemd/system/n8n.service").strip()
machine.succeed(f"test -L {custom_extensions_dir}/n8n-nodes-carbonejs")
machine.succeed(f"test -f {custom_extensions_dir}/n8n-nodes-carbonejs/package.json")
# Test task runner integration on n8n service
machine.succeed("grep -qF 'N8N_RUNNERS_MODE=external' /etc/systemd/system/n8n.service")
machine.succeed("grep -qF 'N8N_RUNNERS_BROKER_PORT=${toString brokerPort}' /etc/systemd/system/n8n.service")
machine.succeed("grep -qF 'LoadCredential=n8n_runners_auth_token_file:${authTokenFile}' /etc/systemd/system/n8n.service")
# Test task runner service
machine.wait_for_unit("n8n-task-runner.service")
machine.succeed("systemctl is-active n8n-task-runner.service")
# Test that both runner types are enabled
machine.succeed("grep -qF 'javascript python' /etc/systemd/system/n8n-task-runner.service")
# Test common environment variables are passed to launcher
machine.succeed("grep -qF 'N8N_RUNNERS_MAX_CONCURRENCY=10' /etc/systemd/system/n8n-task-runner.service")
machine.succeed("grep -qF 'N8N_RUNNERS_TASK_BROKER_URI=http://127.0.0.1:${toString brokerPort}' /etc/systemd/system/n8n-task-runner.service")
# Test auth token is loaded via credentials
machine.succeed("grep -qF 'LoadCredential=n8n_runners_auth_token_file:${authTokenFile}' /etc/systemd/system/n8n-task-runner.service")
# Test launcher config file
config_path = machine.succeed("grep -oP 'N8N_RUNNERS_CONFIG_PATH=\\K[^[:space:]\"]+' /etc/systemd/system/n8n-task-runner.service").strip()
config = machine.succeed(f"cat {config_path}")
assert "NODE_FUNCTION_ALLOW_BUILTIN" in config, "JavaScript env-override not in config"
assert "N8N_RUNNERS_STDLIB_ALLOW" in config, "Python env-override not in config"
assert "N8N_RUNNERS_MAX_CONCURRENCY" in config, "Common allowed-env not in config"
assert "--disallow-code-generation-from-strings" in config, "JavaScript args not in config"
assert "--test-arg" in config, "Python args not in config"
assert '"health-check-server-port":"5681"' in config, "JavaScript health check port not in config"
assert '"health-check-server-port":"5682"' in config, "Python health check port not in config"
'';
}
-5
View File
@@ -218,11 +218,6 @@ in
# wait for the agent to show up
server.wait_until_succeeds("kubectl get node agent")
${lib.optionalString (rancherDistro == "k3s") ''
for m in machines:
m.succeed("k3s check-config")
''}
server.succeed("kubectl cluster-info")
# Also wait for our service account to show up; it takes a sec
server.wait_until_succeeds("kubectl get serviceaccount default")
-3
View File
@@ -84,9 +84,6 @@ in
machine.wait_for_unit("${serviceName}")
machine.succeed("kubectl cluster-info")
machine.fail("sudo -u noprivs kubectl cluster-info")
${lib.optionalString (rancherDistro == "k3s") ''
machine.succeed("k3s check-config")
''}
# Also wait for our service account to show up; it takes a sec
machine.wait_until_succeeds("kubectl get serviceaccount default")
+30
View File
@@ -0,0 +1,30 @@
{ pkgs, ... }:
{
name = "remark42";
nodes.machine =
{ ... }:
{
environment.systemPackages = [ pkgs.curl ];
services.remark42 = {
enable = true;
remarkUrl = "http://127.0.0.1:8080";
sites = [ "remark" ];
environmentFile = pkgs.writeText "remark42.env" ''
SECRET=unit-test-secret
'';
settings.AUTH_ANON = "true";
};
};
testScript = ''
start_all()
machine.wait_for_unit("remark42.service")
machine.wait_for_open_port(8080)
machine.succeed("curl -fsS http://127.0.0.1:8080/web/ | head")
'';
}
+17
View File
@@ -841,6 +841,14 @@ in
assert_lacks(out, "\nrestarting the following units:")
assert_lacks(out, "\nstarting the following units:")
assert_contains(out, "the following new units were started: test.mount\n")
# we can start inactive mounts
machine.succeed("systemctl stop test.mount")
out = switch_to_specialisation("${machine}", "addedMount")
assert_lacks(out, "stopping the following units:")
assert_lacks(out, "NOT restarting the following changed units:")
assert_lacks(out, "\nrestarting the following units:")
assert_lacks(out, "\nstarting the following units:")
assert_contains(out, "the following new units were started: local-fs.target, test.mount\n")
# modify the mountpoint's options
out = switch_to_specialisation("${machine}", "addedMountOptsModified")
assert_lacks(out, "stopping the following units:")
@@ -1444,6 +1452,15 @@ in
switch_to_specialisation("${machine}", "mount")
out = machine.succeed("mount | grep 'on /testmount'")
assert_contains(out, "size=1024k")
# We can start inactive mounts
machine.succeed("systemctl stop testmount.mount")
out = switch_to_specialisation("${machine}", "mount")
assert_lacks(out, "stopping the following units:")
assert_lacks(out, "NOT restarting the following changed units:")
assert_lacks(out, "reloading the following units")
assert_lacks(out, "restarting the following units:")
assert_lacks(out, "starting the following units:")
assert_contains(out, "the following new units were started: testmount.mount\n")
# Changing options reloads the unit
out = switch_to_specialisation("${machine}", "mountOptionsModified")
assert_lacks(out, "stopping the following units:")
+1 -1
View File
@@ -17,7 +17,7 @@ pythonPackages.buildPythonApplication rec {
sha256 = "15461174037d87af93dd59a236d4275c5abf71cea0670ffff24a7d0399a8a2e4";
};
LC_ALL = "en_US.UTF-8";
env.LC_ALL = "en_US.UTF-8";
buildInputs = [ glibcLocales ];
build-system = [ pythonPackages.setuptools ];
+24 -22
View File
@@ -140,21 +140,6 @@ python3.pkgs.buildPythonApplication rec {
pytest-xdist
]);
pytestFlags = [
# missing translation strings in potfiles
"--deselect=tests/test_po.py::TPOTFILESIN::test_missing"
# require networking
"--deselect=tests/plugin/test_covers.py::test_live_cover_download"
"--deselect=tests/test_browsers_iradio.py::TInternetRadio::test_click_add_station"
# upstream does actually not enforce source code linting
"--ignore=tests/quality"
# marked as flaky, breaks in sandbox
"--deselect=tests/test_library_file.py::TWatchedFileLibrary::test_watched_adding"
]
++ lib.optionals (withXineBackend || !withGstPlugins) [
"--ignore=tests/plugin/test_replaygain.py"
];
env.LC_ALL = "en_US.UTF-8";
preCheck = ''
@@ -162,15 +147,32 @@ python3.pkgs.buildPythonApplication rec {
export XDG_DATA_DIRS="$out/share:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_ICON_DIRS:$XDG_DATA_DIRS"
'';
checkPhase = ''
runHook preCheck
checkPhase =
let
pytestFlags = [
# missing translation strings in potfiles
"--deselect=tests/test_po.py::TPOTFILESIN::test_missing"
# require networking
"--deselect=tests/plugin/test_covers.py::test_live_cover_download"
"--deselect=tests/test_browsers_iradio.py::TInternetRadio::test_click_add_station"
# upstream does actually not enforce source code linting
"--ignore=tests/quality"
# marked as flaky, breaks in sandbox
"--deselect=tests/test_library_file.py::TWatchedFileLibrary::test_watched_adding"
]
++ lib.optionals (withXineBackend || !withGstPlugins) [
"--ignore=tests/plugin/test_replaygain.py"
];
in
''
runHook preCheck
xvfb-run -s '-screen 0 1920x1080x24' \
dbus-run-session --config-file=${dbus}/share/dbus-1/session.conf \
pytest $pytestFlags
xvfb-run -s '-screen 0 1920x1080x24' \
dbus-run-session --config-file=${dbus}/share/dbus-1/session.conf \
pytest ${lib.concatStringsSep " " pytestFlags}
runHook postCheck
'';
runHook postCheck
'';
preFixup = lib.optionalString (kakasi != null) ''
gappsWrapperArgs+=(--prefix PATH : ${lib.getBin kakasi})
@@ -139,7 +139,7 @@ stdenv.mkDerivation rec {
# Find FLTK without requiring an OpenGL library in buildInputs
++ lib.optional (guiModule == "fltk") "-DFLTK_SKIP_OPENGL=ON";
CXXFLAGS = [
env.CXXFLAGS = toString [
# GCC 13: error: 'uint8_t' does not name a type
"-include cstdint"
];
@@ -69,7 +69,7 @@ stdenv.mkDerivation rec {
zeromq
];
CXXFLAGS = [
env.CXXFLAGS = toString [
"-I${lib.getDev utf8cpp}/include/utf8cpp"
"-I${lib.getDev cxx-rs}/include"
];
+25 -23
View File
@@ -104,16 +104,13 @@ let
packpathDirs.myNeovimPackages = vimPackageInfo.vimPackage;
finalPackdir = neovimUtils.packDir packpathDirs;
rcContent = lib.concatStringsSep "\n" (
[
providerLuaRc
]
++ lib.optional (luaRcContent != "") luaRcContent
++ lib.optional (neovimRcContent' != "") ''
vim.cmd.source "${writeText "init.vim" neovimRcContent'}"
''
++ lib.optionals autoconfigure vimPackageInfo.pluginAdvisedLua
);
rcContent = ''
${luaRcContent}
''
+ lib.optionalString (neovimRcContent' != "") ''
vim.cmd.source "${writeText "init.vim" neovimRcContent'}"
''
+ lib.optionalString autoconfigure (lib.concatStringsSep "\n" vimPackageInfo.pluginAdvisedLua);
python3Env =
lib.warnIf (attrs ? python3Env)
@@ -128,7 +125,12 @@ let
wrapperArgsStr = if lib.isString wrapperArgs then wrapperArgs else lib.escapeShellArgs wrapperArgs;
generatedWrapperArgs =
generatedWrapperArgs = [
# vim accepts a limited number of commands so we join all the provider ones
"--add-flags"
''--cmd "lua ${providerLuaRc}"''
]
++
lib.optionals
(
finalAttrs.packpathDirs.myNeovimPackages.start != [ ]
@@ -140,17 +142,17 @@ let
"--add-flags"
''--cmd "set rtp^=${finalPackdir}"''
]
++ lib.optionals finalAttrs.withRuby [
"--set"
"GEM_HOME"
"${rubyEnv}/${rubyEnv.ruby.gemPath}"
]
++ lib.optionals (finalAttrs.runtimeDeps != [ ]) [
"--suffix"
"PATH"
":"
(lib.makeBinPath finalAttrs.runtimeDeps)
];
++ lib.optionals finalAttrs.withRuby [
"--set"
"GEM_HOME"
"${rubyEnv}/${rubyEnv.ruby.gemPath}"
]
++ lib.optionals (finalAttrs.runtimeDeps != [ ]) [
"--suffix"
"PATH"
":"
(lib.makeBinPath finalAttrs.runtimeDeps)
];
providerLuaRc = neovimUtils.generateProviderRc {
inherit (finalAttrs)
@@ -179,7 +181,7 @@ let
++ lib.optionals finalAttrs.wrapRc [
"--set-default"
"VIMINIT"
"lua dofile('${writeText "init.lua" finalAttrs.luaRcContent}')"
"lua dofile('${writeText "init.lua" rcContent}')"
]
++ finalAttrs.generatedWrapperArgs;
@@ -12,12 +12,12 @@
pkgs,
}:
let
version = "0.0.27-unstable-2026-02-03";
version = "0.0.27-unstable-2026-02-16";
src = fetchFromGitHub {
owner = "yetone";
repo = "avante.nvim";
rev = "d80b7966c0505809e83e408353bbe8cb3394936d";
hash = "sha256-+IfICc7uBaMV27VJcHlUOxZ2TFQoIHFJPMtoIjjgnZ8=";
rev = "ecc669a87deb2be95db49e53041c05a2d0980fd4";
hash = "sha256-ciBJS6+knAQSZrtxWvSSADCfBLH07OMG+Rl3jrAz49M=";
};
avante-nvim-lib = rustPlatform.buildRustPackage {
pname = "avante-nvim-lib";
@@ -8,8 +8,8 @@ vscode-utils.buildVscodeMarketplaceExtension {
mktplcRef = {
name = "claude-code";
publisher = "anthropic";
version = "2.1.39";
hash = "sha256-8OaNOwG9lRHca/hjqGpmcuY+2OGkv7rPSt0faO72vIc=";
version = "2.1.49";
hash = "sha256-9WwA1TUM/h8kLoZV/ukh/4s3w9DnJ/cVAxypz4jlj6A=";
};
postInstall = ''
@@ -1967,8 +1967,8 @@ let
mktplcRef = {
name = "gitlab-workflow";
publisher = "gitlab";
version = "6.69.3";
hash = "sha256-u9f743vZar9FYWXam94wdF6wBZxp6/fikZM0rGXfces=";
version = "6.71.0";
hash = "sha256-jOD5VFF9g4BNdpm3ZoCi0LPkkBmLZ7vlXVVHgiCGac8=";
};
meta = {
description = "GitLab extension for Visual Studio Code";
@@ -2879,18 +2879,7 @@ let
};
};
mads-hartmann.bash-ide-vscode = buildVscodeMarketplaceExtension {
mktplcRef = {
publisher = "mads-hartmann";
name = "bash-ide-vscode";
version = "1.43.0";
hash = "sha256-IpJCzoYZ+L39HqBts487E00RfVnZhLa9wUYs2FIV9pQ=";
};
meta = {
license = lib.licenses.mit;
maintainers = [ lib.maintainers.kamadorueda ];
};
};
mads-hartmann.bash-ide-vscode = callPackage ./mads-hartmann.bash-ide-vscode { };
marp-team.marp-vscode = buildVscodeMarketplaceExtension {
mktplcRef = {
@@ -3044,6 +3033,8 @@ let
};
};
miguelsolorio.fluent-icons = callPackage ./miguelsolorio.fluent-icons { };
miguelsolorio.min-theme = callPackage ./miguelsolorio.min-theme { };
mikestead.dotenv = buildVscodeMarketplaceExtension {
@@ -3070,25 +3061,14 @@ let
};
};
mkhl.direnv = buildVscodeMarketplaceExtension {
mktplcRef = {
publisher = "mkhl";
name = "direnv";
version = "0.17.0";
hash = "sha256-9sFcfTMeLBGw2ET1snqQ6Uk//D/vcD9AVsZfnUNrWNg=";
};
meta = {
description = "direnv support for Visual Studio Code";
license = lib.licenses.bsd0;
downloadPage = "https://marketplace.visualstudio.com/items?itemName=mkhl.direnv";
maintainers = [ ];
};
};
mkhl.direnv = callPackage ./mkhl.direnv { };
mkhl.shfmt = callPackage ./mkhl.shfmt { };
mongodb.mongodb-vscode = callPackage ./mongodb.mongodb-vscode { };
motivesoft.vscode-man-page-syntax = callPackage ./motivesoft.vscode-man-page-syntax { };
moshfeu.compare-folders = buildVscodeMarketplaceExtension {
mktplcRef = {
name = "compare-folders";
@@ -3606,6 +3586,8 @@ let
};
};
nomicfoundation.hardhat-solidity = callPackage ./nomicfoundation.hardhat-solidity { };
nonylene.dark-molokai-theme = buildVscodeMarketplaceExtension {
mktplcRef = {
name = "dark-molokai-theme";
@@ -8,8 +8,8 @@ vscode-utils.buildVscodeMarketplaceExtension {
mktplcRef = {
name = "basedpyright";
publisher = "detachhead";
version = "1.37.4";
hash = "sha256-OkL0p7SfCinyyIlQN/4Rxc1kXFSSe1X3UuhgNQ17ovo=";
version = "1.38.1";
hash = "sha256-KomVzNgm4CD3AMuJ7myZlU6R4bp97pNlnooYdEepQNo=";
};
meta = {
changelog = "https://github.com/detachhead/basedpyright/releases";
@@ -0,0 +1,32 @@
{
lib,
vscode-utils,
jq,
moreutils,
shfmt,
shellcheck,
}:
vscode-utils.buildVscodeMarketplaceExtension {
mktplcRef = {
publisher = "mads-hartmann";
name = "bash-ide-vscode";
version = "1.43.0";
hash = "sha256-IpJCzoYZ+L39HqBts487E00RfVnZhLa9wUYs2FIV9pQ=";
};
nativeBuildInputs = [
jq
moreutils
];
postInstall = ''
cd "$out/$installPrefix"
jq -e '
.contributes.configuration.properties."bashIde.shellcheckPath".default = "${lib.getExe shellcheck}" |
.contributes.configuration.properties."bashIde.shfmt.path".default = "${lib.getExe shfmt}"
' package.json | sponge package.json
'';
meta = {
license = lib.licenses.mit;
maintainers = [ lib.maintainers.kamadorueda ];
};
}
@@ -0,0 +1,19 @@
{ lib, vscode-utils }:
vscode-utils.buildVscodeMarketplaceExtension (finalAttrs: {
mktplcRef = {
name = "fluent-icons";
publisher = "miguelsolorio";
version = "0.0.19";
hash = "sha256-OfPSh0SapT+YOfi0cz3ep8hEhgCTHpjs1FfmgAyjN58=";
};
meta = {
changelog = "https://github.com/miguelsolorio/vscode-fluent-icons/releases/tag/${finalAttrs.version}";
description = "Fluent product icons for Visual Studio Code";
downloadPage = "https://marketplace.visualstudio.com/items?itemName=miguelsolorio.fluent-icons";
homepage = "https://github.com/miguelsolorio/vscode-fluent-icons";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.iamanaws ];
};
})
@@ -0,0 +1,30 @@
{
lib,
vscode-utils,
jq,
moreutils,
direnv,
}:
vscode-utils.buildVscodeMarketplaceExtension {
mktplcRef = {
publisher = "mkhl";
name = "direnv";
version = "0.17.0";
hash = "sha256-9sFcfTMeLBGw2ET1snqQ6Uk//D/vcD9AVsZfnUNrWNg=";
};
nativeBuildInputs = [
jq
moreutils
];
postInstall = ''
cd "$out/$installPrefix"
jq -e '.contributes.configuration.properties."direnv.path.executable".default = "${lib.getExe direnv}"' package.json | sponge package.json
'';
meta = {
description = "direnv support for Visual Studio Code";
license = lib.licenses.bsd0;
downloadPage = "https://marketplace.visualstudio.com/items?itemName=mkhl.direnv";
maintainers = [ ];
};
}
@@ -0,0 +1,19 @@
{ lib, vscode-utils }:
vscode-utils.buildVscodeMarketplaceExtension {
mktplcRef = {
name = "vscode-man-page-syntax";
publisher = "motivesoft";
version = "1.1.4";
hash = "sha256-Hf6UUXShxhFpOG4aaKqHKoyJ0yqFthzNSVW/JZph43c=";
};
meta = {
changelog = "https://github.com/Motivesoft/vscode-man-page-syntax/blob/main/CHANGELOG.md";
description = "Syntax highlighting support for manpage authoring";
downloadPage = "https://marketplace.visualstudio.com/items?itemName=motivesoft.vscode-man-page-syntax";
homepage = "https://github.com/Motivesoft/vscode-man-page-syntax";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.iamanaws ];
};
}
@@ -0,0 +1,19 @@
{ lib, vscode-utils }:
vscode-utils.buildVscodeMarketplaceExtension {
mktplcRef = {
name = "hardhat-solidity";
publisher = "nomicfoundation";
version = "0.8.26";
hash = "sha256-AXiGdUjoFl0R41bRJeGc1Gqs/O6foDwqiH2MmkKxhdo=";
};
meta = {
changelog = "https://github.com/NomicFoundation/hardhat-vscode/blob/main/client/CHANGELOG.md";
description = "Solidity and Hardhat support for Visual Studio Code";
downloadPage = "https://marketplace.visualstudio.com/items?itemName=nomicfoundation.hardhat-solidity";
homepage = "https://github.com/NomicFoundation/hardhat-vscode";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.iamanaws ];
};
}
@@ -1,14 +1,33 @@
#! /usr/bin/env nix-shell
#!nix-shell -i bash -p bash curl gawk gnugrep gnused jq nix nix-prefetch nix-prefetch-scripts common-updater-scripts
# Script to automatically fetch latest vscode
set -eou pipefail
latestVersion=$(curl --fail --silent https://api.github.com/repos/Microsoft/vscode/releases | jq --raw-output 'map(select(.prerelease==false)) | .[].tag_name' | sort -V | tail -n1)
version="${1:-}"
currentVersion=$(nix eval --raw -f . vscode.version)
echo "latest version: $latestVersion"
if [[ -n "$version" ]]; then
latestVersion="$version"
else
latestVersion=$(curl --fail --silent https://api.github.com/repos/Microsoft/vscode/releases | jq --raw-output 'map(select(.prerelease==false)) | .[].tag_name' | sort -V | tail -n1)
if ! [[ "$latestVersion" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
echo "Error: Invalid version from GitHub API: $latestVersion"
exit 1
fi
fi
echo "target version: $latestVersion"
echo "current version: $currentVersion"
minVersion=$(printf '%s\n' "$currentVersion" "$latestVersion" | sort -V | head -n1)
if [[ "$minVersion" == "$latestVersion" ]] && [[ "$latestVersion" != "$currentVersion" ]]; then
echo "Error: target version '$latestVersion' is less than current version '$currentVersion'"
exit 1
fi
if [[ "$latestVersion" == "$currentVersion" ]]; then
echo "package is up-to-date"
exit 0
@@ -23,4 +42,10 @@ for system in $systems; do
done
rev=$(curl --fail --silent https://api.github.com/repos/Microsoft/vscode/git/ref/tags/$latestVersion | jq --raw-output .object.sha)
update-source-version vscode $rev --version-key=rev --source-key=vscodeServer.src --ignore-same-version --ignore-same-hash
vscodeServerHash=$(nix --extra-experimental-features nix-command hash convert --to sri --hash-algo sha256 $(nix-prefetch-url https://update.code.visualstudio.com/commit:$rev/server-linux-x64/stable))
update-source-version vscode $rev $vscodeServerHash --version-key=rev --source-key=vscodeServer.src --ignore-same-version --ignore-same-hash
echo ""
echo "Update complete! To test the changes:"
echo " 1. Close any running VS Code instances"
echo " 2. Run: NIXPKGS_ALLOW_UNFREE=1 nix run -f . vscode"
+8 -8
View File
@@ -36,20 +36,20 @@ let
hash =
{
x86_64-linux = "sha256-ST5i8gvNtAaBbmcpcg9GJipr8e5d0A0qbdG1P9QViek=";
x86_64-darwin = "sha256-BRGXLasiHZSKsijq02bCa2RbaBc7iC1ZtLe29u4KTH0=";
aarch64-linux = "sha256-7plpHWoi8eYDKQZVV3OCXZJUk8j173M1xpRgTOTsPZ0=";
aarch64-darwin = "sha256-RgfhGjVFmaIAAotTYNPUDrJZ8qj8e4yR9bVfal/Hl6o=";
armv7l-linux = "sha256-Zzz4HsmiWcKiBRE19pGll8BRQy26wbmpuYSi89PDoBo=";
x86_64-linux = "sha256-6zmuYl34QMG3W5h/gCfiW9atK4CpdoQJvttw6y4sy9Q=";
x86_64-darwin = "sha256-0TD+ez+/jc6nZEoZO3j467ouMbmnek6iQQ6SMo57oL0=";
aarch64-linux = "sha256-Cz7mjcm0HcoRK5EA5xi9AHOxbiEOt9JL+Drfd6/tYBw=";
aarch64-darwin = "sha256-8Rfjr8WShCwrJlJapkALNPubPVBpKGZRtHKtTi5Xslc=";
armv7l-linux = "sha256-eUvAvFIP8/5KIIyZFD6VY6RBR97kus6PFb7Inxgh30A=";
}
.${system} or throwSystem;
# Please backport all compatible updates to the stable release.
# This is important for the extension ecosystem.
version = "1.109.2";
version = "1.109.4";
# This is used for VS Code - Remote SSH test
rev = "591199df409fbf59b4b52d5ad4ee0470152a9b31";
rev = "c3a26841a84f20dfe0850d0a5a9bd01da4f003ea";
in
buildVscode {
pname = "vscode" + lib.optionalString isInsiders "-insiders";
@@ -82,7 +82,7 @@ buildVscode {
src = fetchurl {
name = "vscode-server-${rev}.tar.gz";
url = "https://update.code.visualstudio.com/commit:${rev}/server-linux-x64/stable";
hash = "sha256-CbU8VdJETTzpwCpzVgavoeSQMdz3RdwDYJ7wUqs8LJ8=";
hash = "sha256-tv7BPcSnejWzURVB3/HpiyqjjeDxsn4dS/NTonsuEs4=";
};
stdenv = stdenvNoCC;
};
@@ -14,13 +14,13 @@
}:
mkLibretroCore {
core = "play";
version = "0-unstable-2026-02-09";
version = "0-unstable-2026-02-16";
src = fetchFromGitHub {
owner = "jpd002";
repo = "Play-";
rev = "b75abf3f5638df99d69fd9169a1a46bd325c98c0";
hash = "sha256-KdRQPQiLnuO6RCsBjN7Ta1myrQtabrVf+rqlWypi/bw=";
rev = "2a125b5d28cb2c02cbd2fdb00ce268581ffca05b";
hash = "sha256-tYB2xcIU7O6BizHSSS4CPQMbLsnlHZKqcx26WypWt1E=";
fetchSubmodules = true;
};
@@ -116,12 +116,18 @@ stdenv.mkDerivation rec {
"-DCMAKE_OSX_DEPLOYMENT_TARGET=${stdenv.hostPlatform.darwinMinVersion}"
];
CMAKE_CXX_FLAGS = toString [
"-std=c++11"
"-Wno-deprecated-declarations"
"-Wno-unused-result"
];
env.CXXFLAGS = "-include cstdint"; # needed at least with gcc13 on aarch64-linux
env = {
CMAKE_CXX_FLAGS = toString [
"-std=c++11"
"-Wno-deprecated-declarations"
"-Wno-unused-result"
];
# needed at least with gcc13 on aarch64-linux
CXXFLAGS = toString [
"-include"
"cstdint"
];
};
postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
mkdir -p $out/Applications/RawTherapee.app $out/bin
@@ -47,7 +47,7 @@ stdenv.mkDerivation rec {
opencl-headers
];
LIBLEPT_HEADERSDIR = "${leptonica}/include";
env.LIBLEPT_HEADERSDIR = "${leptonica}/include";
meta = {
description = "OCR engine";
@@ -823,7 +823,7 @@
}
},
"ungoogled-chromium": {
"version": "145.0.7632.75",
"version": "145.0.7632.109",
"deps": {
"depot_tools": {
"rev": "fb0b652edba70f5c4ac867f3beca9e535f905b4c",
@@ -835,16 +835,16 @@
"hash": "sha256-SoXVnpCuNee80N4YdsTEHQd3jZNoHOwKVP6O8a67Ym0="
},
"ungoogled-patches": {
"rev": "145.0.7632.75-1",
"hash": "sha256-DlHNbochbPLRdD3wn1lW9S7x4OLzI+1cAMqjeTYNlA4="
"rev": "145.0.7632.109-1",
"hash": "sha256-IKt/88bzppdwewWJpim8JL7u6N42o6W2VygvWd+XdVo="
},
"npmHash": "sha256-13sgV/5BD7QvDLBAEmoLN5vongw+S5v5znvZcctxhWc="
},
"DEPS": {
"src": {
"url": "https://chromium.googlesource.com/chromium/src.git",
"rev": "ab0b95409566de9da1ed76e690022f774aec7793",
"hash": "sha256-VvHDqNTXOFeV+QY3K2O9fTFxDzrkz6qKl9hP8nVDMAw=",
"rev": "61eff07de4f37ac1c6969c91034a447ef6cd394d",
"hash": "sha256-b498JyyvsN/+0Gqjdrq+eT1HW54/ayEENRHa1Sw69Xw=",
"recompress": true
},
"src/third_party/clang-format/script": {
@@ -954,8 +954,8 @@
},
"src/third_party/dawn": {
"url": "https://dawn.googlesource.com/dawn.git",
"rev": "0cf07977de12e7056ab3cbcbf584411e88a1f734",
"hash": "sha256-2OgNRRkpUlkyXAQDSOL4279JAi1C0QbH4MEfNW7WieQ="
"rev": "d9f5a980bb5a4baeb7d9c1fef89a39789a6cd9fb",
"hash": "sha256-DaNsRQm9bR2lfbiP6vWr2R7KD8mYWOaJ72VJyrUkJvI="
},
"src/third_party/dawn/third_party/glfw": {
"url": "https://chromium.googlesource.com/external/github.com/glfw/glfw",
@@ -1079,8 +1079,8 @@
},
"src/third_party/devtools-frontend/src": {
"url": "https://chromium.googlesource.com/devtools/devtools-frontend",
"rev": "cc75f545bcb65238f74fd291833112305ce6915a",
"hash": "sha256-tOE96dcLmUaAVvOo4oGoUrEFpGSH2yxIBtvXSAVzbK0="
"rev": "8eb35b80efbc72ffb3aff36c3c1106fe9269df88",
"hash": "sha256-fzcXSU0kaIZVTQx1L5A0Xmn3HEzUE35mzfsU0YEaxw0="
},
"src/third_party/dom_distiller_js/dist": {
"url": "https://chromium.googlesource.com/chromium/dom-distiller/dist.git",
@@ -1424,8 +1424,8 @@
},
"src/third_party/pdfium": {
"url": "https://pdfium.googlesource.com/pdfium.git",
"rev": "3c679253a9e17c10be696d345c63636b18b7f925",
"hash": "sha256-OW39m1TVJnSdbeVeTCgSxePTqFTOwWqZIrU/5SEioCc="
"rev": "004b47619573a582c076679764e07725ace3e497",
"hash": "sha256-PHu3v/ZeEa11/CTGJh8aJjV/lTIVSJ6W7uH2njsHj1w="
},
"src/third_party/perfetto": {
"url": "https://chromium.googlesource.com/external/github.com/google/perfetto.git",
@@ -1639,8 +1639,8 @@
},
"src/v8": {
"url": "https://chromium.googlesource.com/v8/v8.git",
"rev": "fffd2bdc35a900b4312833885d9d30803580670e",
"hash": "sha256-WqSGzOCvLw6k3t1oNgZV17KY8TVl6j4lJr0NZSVbm4o="
"rev": "a8b42c8fae7c7f1ce4e32b08ee61c22775185c01",
"hash": "sha256-HZ4JbSoMNVqUrCWoxk0/AxzlcpMgKhe/HJ7DGeTeE9M="
}
}
}
@@ -1,26 +1,26 @@
{
"airgap-images-amd64-tar-gz": {
"url": "https://github.com/k3s-io/k3s/releases/download/v1.32.11%2Bk3s3/k3s-airgap-images-amd64.tar.gz",
"sha256": "572f512cc0bdf89213d2c532e6182d4a291663bb38a51beb57197bf3fb67dd47"
"url": "https://github.com/k3s-io/k3s/releases/download/v1.32.12%2Bk3s1/k3s-airgap-images-amd64.tar.gz",
"sha256": "3f45abe980b2a6ba9ba8037d9b5a96ab199ce5ddf53c496e99087422d20f0383"
},
"airgap-images-amd64-tar-zst": {
"url": "https://github.com/k3s-io/k3s/releases/download/v1.32.11%2Bk3s3/k3s-airgap-images-amd64.tar.zst",
"sha256": "a65a1ed1cf081285d4c32ed3989d95cb0a4d90209e99a8765b65d41b02ea059d"
"url": "https://github.com/k3s-io/k3s/releases/download/v1.32.12%2Bk3s1/k3s-airgap-images-amd64.tar.zst",
"sha256": "924ecfe275f8e9e6c03ab52d78901cf7aa32bf5abd1c4294ac8c41d7860865b6"
},
"airgap-images-arm-tar-gz": {
"url": "https://github.com/k3s-io/k3s/releases/download/v1.32.11%2Bk3s3/k3s-airgap-images-arm.tar.gz",
"sha256": "ffaee35854e9bfa6f34fae0a7a2ff81e8909cfb2d5a5bd65df89c03a1ceb1b3a"
"url": "https://github.com/k3s-io/k3s/releases/download/v1.32.12%2Bk3s1/k3s-airgap-images-arm.tar.gz",
"sha256": "fc310a93b1477a9e0e5ad21bc2e1a28dbadd7578923dff594bccc8cf90eb265b"
},
"airgap-images-arm-tar-zst": {
"url": "https://github.com/k3s-io/k3s/releases/download/v1.32.11%2Bk3s3/k3s-airgap-images-arm.tar.zst",
"sha256": "b92568a2fa8683a5abd29c151d12f2737bf7ac961dfa615a2fa891a66f2d23cf"
"url": "https://github.com/k3s-io/k3s/releases/download/v1.32.12%2Bk3s1/k3s-airgap-images-arm.tar.zst",
"sha256": "dcef1d1edf592dce46a6a039576c3169d0caf4eec165c6cbcf1dfbe019b1535d"
},
"airgap-images-arm64-tar-gz": {
"url": "https://github.com/k3s-io/k3s/releases/download/v1.32.11%2Bk3s3/k3s-airgap-images-arm64.tar.gz",
"sha256": "cc99b0211110b8dc14c47cde0fe9b93b7e36c2ead64286412a896f6aa8a722cf"
"url": "https://github.com/k3s-io/k3s/releases/download/v1.32.12%2Bk3s1/k3s-airgap-images-arm64.tar.gz",
"sha256": "a5d645989991207bae3cee1597c8c581908291af912766132d99fae3b103918b"
},
"airgap-images-arm64-tar-zst": {
"url": "https://github.com/k3s-io/k3s/releases/download/v1.32.11%2Bk3s3/k3s-airgap-images-arm64.tar.zst",
"sha256": "a7ab99f7e2a6cf6ecc833c8ba67ba154b3ff186c58d574fa4bbda2e70dcb55f7"
"url": "https://github.com/k3s-io/k3s/releases/download/v1.32.12%2Bk3s1/k3s-airgap-images-arm64.tar.zst",
"sha256": "53e747b44505ddcc239c3d175dfa9f23b925c5018e3f878b0be87af876c4c41b"
}
}
@@ -1,8 +1,8 @@
{
k3sVersion = "1.32.11+k3s3";
k3sCommit = "c9aa1d2889a003715698542826c2af94160ac2e5";
k3sRepoSha256 = "0fi634dnsghjwnp07h6jhknccqlr9n5g3l34sipc41vvfmn4b0k8";
k3sVendorHash = "sha256-qbmqzsd8oMQSFCh7HvjDiYds5gLEIGjjcv4EJbgxfJI=";
k3sVersion = "1.32.12+k3s1";
k3sCommit = "0dc662e80238b7b70d24ad9025a6b64292d14955";
k3sRepoSha256 = "1pmdbzxp968hxya590qhf4sz3gx6yzpwhcg24hkfsxbm9bclrr0g";
k3sVendorHash = "sha256-T5GGzudpTTMb2SBC6+spCo7Q/IOr6LfiWb/oWOcCOv8=";
chartVersions = import ./chart-versions.nix;
imagesVersions = builtins.fromJSON (builtins.readFile ./images-versions.json);
k3sRootVersion = "0.15.0";
@@ -17,5 +17,5 @@
flannelPluginVersion = "v1.9.0-flannel1";
kubeRouterVersion = "v2.6.3-k3s1";
criDockerdVersion = "v0.3.19-k3s2.32";
helmJobVersion = "v0.9.12-build20251215";
helmJobVersion = "v0.9.14-build20260210";
}
@@ -1,26 +1,26 @@
{
"airgap-images-amd64-tar-gz": {
"url": "https://github.com/k3s-io/k3s/releases/download/v1.33.7%2Bk3s3/k3s-airgap-images-amd64.tar.gz",
"sha256": "130a3b3e51947b7a0beffca422b85c2d3fbe78b1163a0fc069871877021123d3"
"url": "https://github.com/k3s-io/k3s/releases/download/v1.33.8%2Bk3s1/k3s-airgap-images-amd64.tar.gz",
"sha256": "e4c4437580f6a2379963ed78d3a58212932fd4c917fc33c0664ce2a8b89fe389"
},
"airgap-images-amd64-tar-zst": {
"url": "https://github.com/k3s-io/k3s/releases/download/v1.33.7%2Bk3s3/k3s-airgap-images-amd64.tar.zst",
"sha256": "b0d7062008fa7fcad9ad7c6b60f74ae1c561927dbb5a4105433f5afbd091361b"
"url": "https://github.com/k3s-io/k3s/releases/download/v1.33.8%2Bk3s1/k3s-airgap-images-amd64.tar.zst",
"sha256": "1760ed5f74a27f4ac5ccac4f8cdf88f2cb5c3bc85ec23674bd499ae3efd93617"
},
"airgap-images-arm-tar-gz": {
"url": "https://github.com/k3s-io/k3s/releases/download/v1.33.7%2Bk3s3/k3s-airgap-images-arm.tar.gz",
"sha256": "6451f4bd29b4ab76dcbfa520d907425976a04e9d5044b969e81fa2dfdc085c20"
"url": "https://github.com/k3s-io/k3s/releases/download/v1.33.8%2Bk3s1/k3s-airgap-images-arm.tar.gz",
"sha256": "6f1ff82e1845d00692f89ad12cf0b0921ae451bae18e8479334a6200312dd746"
},
"airgap-images-arm-tar-zst": {
"url": "https://github.com/k3s-io/k3s/releases/download/v1.33.7%2Bk3s3/k3s-airgap-images-arm.tar.zst",
"sha256": "03a165ad40d022616281fbf329bcfa546b9245a9f431d1c362b86faff72d83dd"
"url": "https://github.com/k3s-io/k3s/releases/download/v1.33.8%2Bk3s1/k3s-airgap-images-arm.tar.zst",
"sha256": "9ae9184211aa4b729cb3c2c659e6442c55bedc7a13720f923898b284b48b87b0"
},
"airgap-images-arm64-tar-gz": {
"url": "https://github.com/k3s-io/k3s/releases/download/v1.33.7%2Bk3s3/k3s-airgap-images-arm64.tar.gz",
"sha256": "6243a503de28c17f4b1b16018237a5008bc99983dc3b3b87ed2a1fe790d9e211"
"url": "https://github.com/k3s-io/k3s/releases/download/v1.33.8%2Bk3s1/k3s-airgap-images-arm64.tar.gz",
"sha256": "a1a00a92559e9a966e882e871163dae7278fea5f20194a37d00cd81fae5dff84"
},
"airgap-images-arm64-tar-zst": {
"url": "https://github.com/k3s-io/k3s/releases/download/v1.33.7%2Bk3s3/k3s-airgap-images-arm64.tar.zst",
"sha256": "74713adf726f6b407330b93e252b7a8e0a85204137c8a6f61b66f681b5761c42"
"url": "https://github.com/k3s-io/k3s/releases/download/v1.33.8%2Bk3s1/k3s-airgap-images-arm64.tar.zst",
"sha256": "df4695448bd8a783cb0e6c91e40aa1abed36b921a121dd1b7f87ff3973faec27"
}
}
@@ -1,8 +1,8 @@
{
k3sVersion = "1.33.7+k3s3";
k3sCommit = "1288e778af2a8ae295c47c213a3d13abd2969cde";
k3sRepoSha256 = "07274x0d0q7cn6x5g8d0zbyf67axrmchhngsjsp3plskyr313hcy";
k3sVendorHash = "sha256-XlZFYEGqoDGFlLJYRJDDoRPWuptFYkZT6axergChFN4=";
k3sVersion = "1.33.8+k3s1";
k3sCommit = "3552cfc26032474faad53ee617fde32ac0c1a222";
k3sRepoSha256 = "00dmd3rfghwi8mq33ksiga1nwpk1swqfdwalgspliy5vhfvwgma8";
k3sVendorHash = "sha256-89C0jv8IUweToIAGyZkaK9o9owm9e8qD4BhJuJw0XVs=";
chartVersions = import ./chart-versions.nix;
imagesVersions = builtins.fromJSON (builtins.readFile ./images-versions.json);
k3sRootVersion = "0.15.0";
@@ -17,5 +17,5 @@
flannelPluginVersion = "v1.9.0-flannel1";
kubeRouterVersion = "v2.6.3-k3s1";
criDockerdVersion = "v0.3.19-k3s2";
helmJobVersion = "v0.9.12-build20251215";
helmJobVersion = "v0.9.14-build20260210";
}
@@ -1,26 +1,26 @@
{
"airgap-images-amd64-tar-gz": {
"url": "https://github.com/k3s-io/k3s/releases/download/v1.34.3%2Bk3s3/k3s-airgap-images-amd64.tar.gz",
"sha256": "696c2e10f511295f5e0e6281a2f22eec60b33962d45bc9117703db1ac887e981"
"url": "https://github.com/k3s-io/k3s/releases/download/v1.34.4%2Bk3s1/k3s-airgap-images-amd64.tar.gz",
"sha256": "ab5da5904db9b41df478fd59e526b5802902650e83a85674c6b19c51ad38b4a4"
},
"airgap-images-amd64-tar-zst": {
"url": "https://github.com/k3s-io/k3s/releases/download/v1.34.3%2Bk3s3/k3s-airgap-images-amd64.tar.zst",
"sha256": "4805a6c4bfdfd20d3ad42bc14c79e00662739aca275e6a37cd8f3a406fae0f0a"
"url": "https://github.com/k3s-io/k3s/releases/download/v1.34.4%2Bk3s1/k3s-airgap-images-amd64.tar.zst",
"sha256": "924ecfe275f8e9e6c03ab52d78901cf7aa32bf5abd1c4294ac8c41d7860865b6"
},
"airgap-images-arm-tar-gz": {
"url": "https://github.com/k3s-io/k3s/releases/download/v1.34.3%2Bk3s3/k3s-airgap-images-arm.tar.gz",
"sha256": "a4bc850fcf9b73bf0f45d4a1f50bd612e52d77daa5de5020589e7f99e5d1a3e6"
"url": "https://github.com/k3s-io/k3s/releases/download/v1.34.4%2Bk3s1/k3s-airgap-images-arm.tar.gz",
"sha256": "2018507533f3aa8c33be81358940d33ec98836f6fbcc463d1c2cfb7f20efb36c"
},
"airgap-images-arm-tar-zst": {
"url": "https://github.com/k3s-io/k3s/releases/download/v1.34.3%2Bk3s3/k3s-airgap-images-arm.tar.zst",
"sha256": "a1b0ac3a00f409fa51e196ea9db5f2282efff00a282ab797bf49b29453bb1379"
"url": "https://github.com/k3s-io/k3s/releases/download/v1.34.4%2Bk3s1/k3s-airgap-images-arm.tar.zst",
"sha256": "2a93722994fb58faa36fa6293a7e454fa1c621eaa0a82e08e996f767e61c0c88"
},
"airgap-images-arm64-tar-gz": {
"url": "https://github.com/k3s-io/k3s/releases/download/v1.34.3%2Bk3s3/k3s-airgap-images-arm64.tar.gz",
"sha256": "ceea4427499fb39be0bff18f840cf80a091f63e88421bc89fdfceb8017aab59b"
"url": "https://github.com/k3s-io/k3s/releases/download/v1.34.4%2Bk3s1/k3s-airgap-images-arm64.tar.gz",
"sha256": "61a8587016aabce6f1d701c679e1d3050adaa7029c3c6dc309940b5764fb9c38"
},
"airgap-images-arm64-tar-zst": {
"url": "https://github.com/k3s-io/k3s/releases/download/v1.34.3%2Bk3s3/k3s-airgap-images-arm64.tar.zst",
"sha256": "e0cec00a1c19c8c6f7fde7005e325d285f23ff43752cce9ce0796ccb10e9582a"
"url": "https://github.com/k3s-io/k3s/releases/download/v1.34.4%2Bk3s1/k3s-airgap-images-arm64.tar.zst",
"sha256": "df4695448bd8a783cb0e6c91e40aa1abed36b921a121dd1b7f87ff3973faec27"
}
}
@@ -1,8 +1,8 @@
{
k3sVersion = "1.34.3+k3s3";
k3sCommit = "2975fb0973ca47f54b1aa2a8c3a976a779f52349";
k3sRepoSha256 = "0bvccp573xihzbnkd3n6xldcxpnlwiz9b5p0fw6sxv69m7jaac2f";
k3sVendorHash = "sha256-R8QXwXmTKsONsbWaedFNDPdYZ82jaQ/T8S9sllqKPjk=";
k3sVersion = "1.34.4+k3s1";
k3sCommit = "c6017918a65c824ce8d321db15267c8a317cd39d";
k3sRepoSha256 = "0b19c1jpkndr6859m745xms1j3hn6bjffdgmv3yl05y6finaqgzq";
k3sVendorHash = "sha256-ZTRcv28rgKslrDRr5y8SnQJpo2ErbURa22l1nv+4QHw=";
chartVersions = import ./chart-versions.nix;
imagesVersions = builtins.fromJSON (builtins.readFile ./images-versions.json);
k3sRootVersion = "0.15.0";
@@ -17,5 +17,5 @@
flannelPluginVersion = "v1.9.0-flannel1";
kubeRouterVersion = "v2.6.3-k3s1";
criDockerdVersion = "v0.3.19-k3s3";
helmJobVersion = "v0.9.12-build20251215";
helmJobVersion = "v0.9.14-build20260210";
}
@@ -75,7 +75,7 @@ buildGoModule (finalAttrs: {
];
# Passing boringcrypto to GOEXPERIMENT variable to build with goboring library
GOEXPERIMENT = "boringcrypto";
env.GOEXPERIMENT = "boringcrypto";
# https://github.com/rancher/rke2/blob/104ddbf3de65ab5490aedff36df2332d503d90fe/scripts/build-binary#L27-L39
ldflags =
@@ -54,11 +54,11 @@
"vendorHash": "sha256-Hvk2jckla1LcMankcdUTct8Kea0OznyxDxTJ+UrJHy0="
},
"aminueza_minio": {
"hash": "sha256-rgrX08mO99cl95YTW0rqFH/jJhyxMr/DSIEL5Wg9R9s=",
"hash": "sha256-46ymgizu1ita4valeUvbCZcBTGHk9n9alUYkr9TG9iI=",
"homepage": "https://registry.terraform.io/providers/aminueza/minio",
"owner": "aminueza",
"repo": "terraform-provider-minio",
"rev": "v3.17.0",
"rev": "v3.20.0",
"spdx": "AGPL-3.0",
"vendorHash": "sha256-AO6reoqxDcPAMXKlqjJLGmhsgFrekaQXjMPm9fxhpFA="
},
@@ -274,13 +274,13 @@
"vendorHash": "sha256-3o6YRDrq4rQhNAFyqiGJrAoxuAykWw85OExRGSE3kGI="
},
"datadog_datadog": {
"hash": "sha256-cK3vueSObBu8m8hszIGxEa7l8+vebkZgSRtcuocnJxY=",
"hash": "sha256-at4p1fQpfA4F6H85jcvhqsZZTrEicF9//3JzhQSEp3s=",
"homepage": "https://registry.terraform.io/providers/DataDog/datadog",
"owner": "DataDog",
"repo": "terraform-provider-datadog",
"rev": "v3.88.0",
"rev": "v3.89.0",
"spdx": "MPL-2.0",
"vendorHash": "sha256-WvN5Z7P2rcyzuOr6ySUC1j9RMPs+BgTQd3iy68QsCqk="
"vendorHash": "sha256-50iJI5K5VdZ4VkiTQ2g4lwEfdjOz7CdRcMhc0NSIeBA="
},
"datadrivers_nexus": {
"hash": "sha256-Lm5CZ+eBDUNIL2KuK/iKc5dTif7P+E9II714vwvYuyU=",
@@ -706,13 +706,13 @@
"vendorHash": null
},
"hetznercloud_hcloud": {
"hash": "sha256-ek9MvDan1LKlVa0XxqRfb2JvJvEtEQ0C+BOSR2ACYcE=",
"hash": "sha256-7c6sOPLH38D2sJsS9VoFl9LkZ0CNp5bFFyrVzPnXPYs=",
"homepage": "https://registry.terraform.io/providers/hetznercloud/hcloud",
"owner": "hetznercloud",
"repo": "terraform-provider-hcloud",
"rev": "v1.60.0",
"rev": "v1.60.1",
"spdx": "MPL-2.0",
"vendorHash": "sha256-baqt8ZBmPQpKZIb/7tb44p7xf8azBawks4mQxtAqIpc="
"vendorHash": "sha256-rd7QuDdq7xRMyaQIDyXY1DI2Tt/wy3oXan/nE0HIyT0="
},
"huaweicloud_huaweicloud": {
"hash": "sha256-vDGr0g/yhLTr+oyXxbM7v2TyecYRAvx40crCi3ug5Lk=",
@@ -751,11 +751,11 @@
"vendorHash": null
},
"integrations_github": {
"hash": "sha256-qf6iGCGE5Hod5PEasxqjdMij+4DS5vDvaiPBKkeQOwU=",
"hash": "sha256-tygj+fCzKhipsyXVMtUxjEy/TvIAGFBPYHwlJJulAVI=",
"homepage": "https://registry.terraform.io/providers/integrations/github",
"owner": "integrations",
"repo": "terraform-provider-github",
"rev": "v6.11.0",
"rev": "v6.11.1",
"spdx": "MIT",
"vendorHash": null
},
@@ -778,13 +778,13 @@
"vendorHash": "sha256-mnKXYT0GfIS+ODzBCS9l4rLF1ugadesmpgdOgj74nLg="
},
"jianyuan_sentry": {
"hash": "sha256-AH7Ef3G1C0jQX4Wprc8J9rP34u+xifzhclqtmVCQmAI=",
"hash": "sha256-J8hINbcBEdukkSLw+nKwbln9EfNh4sIb5F7FPLmXLE4=",
"homepage": "https://registry.terraform.io/providers/jianyuan/sentry",
"owner": "jianyuan",
"repo": "terraform-provider-sentry",
"rev": "v0.14.8",
"rev": "v0.14.9",
"spdx": "MIT",
"vendorHash": "sha256-owQrunW0X87DVdA/A/Pl5MWsVfx8kPL1L/xJYWS5ptI="
"vendorHash": "sha256-ILb6eUVt961ZBcEVKT324OXMxF/d+Wx9tzA3PDTe5iU="
},
"joneshf_openwrt": {
"hash": "sha256-z78IceF2VJtiQpVqC+rTUDsph73LZawIK+az3rEhljA=",
@@ -968,13 +968,13 @@
"vendorHash": "sha256-fh0QEWSwdoWKED/39OBT5kMADbsUDvhJUYMfWR9P5os="
},
"ns1-terraform_ns1": {
"hash": "sha256-pKdybFzTuuD6D76Uhuz+fLN+EmpDxUwjIWXYK6DRKOY=",
"hash": "sha256-MX/Wd9Lztjn7uwDzJjs4bsSSp0PFzUgsu4jXke9jHL8=",
"homepage": "https://registry.terraform.io/providers/ns1-terraform/ns1",
"owner": "ns1-terraform",
"repo": "terraform-provider-ns1",
"rev": "v2.8.0",
"rev": "v2.8.2",
"spdx": "MPL-2.0",
"vendorHash": "sha256-QEzQogxM44Yc2iH6r+AtTYhv0p/T7jDwO5axNQE2sMY="
"vendorHash": "sha256-iFya3JEM2XklfunQq0Mbdar/nyWOQZHfYWa2NWBxzTM="
},
"numtide_linuxbox": {
"hash": "sha256-svQRz1/PdVLpHoxOam1sfRTwHqgqs4ohJQs3IPMMAM4=",
@@ -1076,11 +1076,11 @@
"vendorHash": "sha256-F1AuO/dkldEDRvkwrbq2EjByxjg3K2rohZAM4DzKPUw="
},
"pagerduty_pagerduty": {
"hash": "sha256-dQaXwuT7BsgaC5PeFMqqQ1607E2/BYTA18RL8YycvNw=",
"hash": "sha256-CH0rAsJKP6AogzYJUOHsdGln/DnwyP9WAlOgUEb3ahA=",
"homepage": "https://registry.terraform.io/providers/PagerDuty/pagerduty",
"owner": "PagerDuty",
"repo": "terraform-provider-pagerduty",
"rev": "v3.30.9",
"rev": "v3.31.0",
"spdx": "MPL-2.0",
"vendorHash": null
},
@@ -1130,11 +1130,11 @@
"vendorHash": "sha256-33NOGIvqLpgndG68GxAeoiISjWV7ApR4jmvqyZHjPKo="
},
"rootlyhq_rootly": {
"hash": "sha256-8Y+S+uHrEmVrF95KazomTIVaj6GcwFNN050Jfx2ofpw=",
"hash": "sha256-iNWJBv9idm0BUIeP7HScQP8MtWdyJCUF4p1EdRvgE98=",
"homepage": "https://registry.terraform.io/providers/rootlyhq/rootly",
"owner": "rootlyhq",
"repo": "terraform-provider-rootly",
"rev": "v5.6.0",
"rev": "v5.7.0",
"spdx": "MPL-2.0",
"vendorHash": "sha256-UyfCHBSdGKCulExhUdYfvEab8cVjaHGDfgslRS0d1Co="
},
@@ -1229,13 +1229,13 @@
"vendorHash": "sha256-skswuFKhN4FFpIunbom9rM/FVRJVOFb1WwHeAIaEjn8="
},
"spacelift-io_spacelift": {
"hash": "sha256-qQ8/y1KWHIc6WHEVXfiP6LKC44N8uK47x2Lv7TAMedE=",
"hash": "sha256-W05b6v8OEPLRUzh0w5Wu7bySuaCkrD3Rl9CkomgEyEE=",
"homepage": "https://registry.terraform.io/providers/spacelift-io/spacelift",
"owner": "spacelift-io",
"repo": "terraform-provider-spacelift",
"rev": "v1.43.0",
"rev": "v1.44.0",
"spdx": "MIT",
"vendorHash": "sha256-XNPXjqrrTIC3WrpvDBP7veAYgmYws9FdF4W3j6ewRPk="
"vendorHash": "sha256-E9e4+n12uSc12F428D8Oqe0iquTMywAY4DYWhSC+hmk="
},
"splunk-terraform_signalfx": {
"hash": "sha256-dPhHzWOkNgIxlHSZm88zKkrgaXaXJ6RFdYeqX5zYSfU=",
@@ -1499,12 +1499,12 @@
"vendorHash": "sha256-Z4DfoG4ApXbPNXZs9YvBWQj1bH7moLNI6P+nKDHt/Jc="
},
"yandex-cloud_yandex": {
"hash": "sha256-f/dCdlJfhEWzN+nXKVy9y1zy3SAULuyJFs/XzxoU0Xs=",
"hash": "sha256-dD78ZHMDhSRHzkOs0fIxjZmNCHvWTDIKuVv68Tl7sTY=",
"homepage": "https://registry.terraform.io/providers/yandex-cloud/yandex",
"owner": "yandex-cloud",
"repo": "terraform-provider-yandex",
"rev": "v0.185.0",
"rev": "v0.187.0",
"spdx": "MPL-2.0",
"vendorHash": "sha256-NxFEJxm+6HCtQxSQF65LB+4lsknGSdACokUyBVAJvn0="
"vendorHash": "sha256-ZYVGqcviq7auN2JwqHEFWiFPvy+PkaYV7MamNKF8Frc="
}
}
@@ -106,7 +106,7 @@ stdenv.mkDerivation (finalAttrs: {
doCheck = true;
LC_ALL = "en_US.utf8";
env.LC_ALL = "en_US.utf8";
meta = {
homepage = "https://profanity-im.github.io";
File diff suppressed because it is too large Load Diff
@@ -157,7 +157,7 @@
liberation-sans-narrow,
liberation_ttf_v2,
libertine,
libertine-g,
linux-libertine-g,
noto-fonts,
noto-fonts-lgc-plus,
noto-fonts-cjk-sans,
@@ -206,7 +206,7 @@ let
liberation-sans-narrow
liberation_ttf_v2
libertine
libertine-g
linux-libertine-g
# Font priority issues in some tests in Still
noto-fonts-lgc-plus
(if variant == "fresh" then noto-fonts else (notoSubset [ "Arabic" ]))
@@ -40,7 +40,7 @@ appimageTools.wrapType2 {
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
license = lib.licenses.unfree;
platforms = [ "x86_64-linux" ];
maintainers = with lib.maintainers; [ atila ];
maintainers = [ ];
mainProgram = "mendeley-reference-manager";
};
@@ -5,12 +5,10 @@
cmake,
eigen,
avogadrolibs,
molequeue,
hdf5,
jkqtplotter,
openbabel,
qttools,
wrapQtAppsHook,
qt6,
mesa,
}:
@@ -18,20 +16,20 @@ let
avogadroI18N = fetchFromGitHub {
owner = "OpenChemistry";
repo = "avogadro-i18n";
tag = "1.102.1";
hash = "sha256-doY+AWJ0GiE6VsTolgmFIRcRVl52lTgwNJLpXgVQ57c=";
tag = "1.103.0";
hash = "sha256-gdr0Ed0UWjQB0LQq+6RvlAb8ZNFQAjV9mrgFLePG+CM=";
};
in
stdenv.mkDerivation (finalAttrs: {
pname = "avogadro2";
version = "1.102.1";
version = "1.103.0";
src = fetchFromGitHub {
owner = "OpenChemistry";
repo = "avogadroapp";
rev = finalAttrs.version;
hash = "sha256-nBkOiw6JO/cG1Ob9gw7Tt/076OoRaRRmDc/a9YAfZCA=";
hash = "sha256-nmvK3R966Xv2Xs5wXDh/8itIZLIRqbXHFe8dffFiI+s=";
};
postUnpack = ''
@@ -40,16 +38,15 @@ stdenv.mkDerivation (finalAttrs: {
nativeBuildInputs = [
cmake
wrapQtAppsHook
qt6.wrapQtAppsHook
];
buildInputs = [
avogadrolibs
molequeue
eigen
hdf5
jkqtplotter
qttools
qt6.qttools
];
propagatedBuildInputs = [ openbabel ];
@@ -191,7 +191,7 @@ stdenv.mkDerivation (finalAttrs: {
(lib.cmakeBool "USE_SVMLIGHT" withSvmLight)
];
CXXFLAGS = "-faligned-new";
env.CXXFLAGS = "-faligned-new";
doCheck = true;
@@ -71,7 +71,7 @@ stdenv.mkDerivation rec {
{} +
'';
CXXFLAGS = " --std=c++11 ";
env.CXXFLAGS = " --std=c++11 ";
nativeBuildInputs = [
pkg-config
@@ -42,140 +42,139 @@ let
sha256,
extraPatches ? [ ],
}:
stdenv.mkDerivation (
rec {
inherit version;
pname = "subversion${lib.optionalString (!bdbSupport && perlBindings && pythonBindings) "-client"}";
stdenv.mkDerivation rec {
inherit version;
pname = "subversion${lib.optionalString (!bdbSupport && perlBindings && pythonBindings) "-client"}";
src = fetchurl {
url = "mirror://apache/subversion/subversion-${version}.tar.bz2";
inherit sha256;
};
src = fetchurl {
url = "mirror://apache/subversion/subversion-${version}.tar.bz2";
inherit sha256;
};
# Can't do separate $lib and $bin, as libs reference bins
outputs = [
"out"
"dev"
"man"
];
# Can't do separate $lib and $bin, as libs reference bins
outputs = [
"out"
"dev"
"man"
];
nativeBuildInputs = [
autoconf
libtool
python3
];
nativeBuildInputs = [
autoconf
libtool
python3
];
buildInputs = [
zlib
apr
aprutil
sqlite
openssl
lz4
utf8proc
]
++ lib.optional httpSupport serf
++ lib.optionals pythonBindings [
python3
py3c
]
++ lib.optional perlBindings perl
++ lib.optional saslSupport sasl;
buildInputs = [
zlib
apr
aprutil
sqlite
openssl
lz4
utf8proc
]
++ lib.optional httpSupport serf
++ lib.optionals pythonBindings [
python3
py3c
]
++ lib.optional perlBindings perl
++ lib.optional saslSupport sasl;
patches = [ ./apr-1.patch ] ++ extraPatches;
patches = [ ./apr-1.patch ] ++ extraPatches;
# remove vendored swig-3 files as these will shadow the swig provided
# ones and result in compile errors
postPatch = ''
rm subversion/bindings/swig/proxy/{perlrun.swg,pyrun.swg,python.swg,rubydef.swg,rubyhead.swg,rubytracking.swg,runtime.swg,swigrun.swg}
'';
# remove vendored swig-3 files as these will shadow the swig provided
# ones and result in compile errors
postPatch = ''
rm subversion/bindings/swig/proxy/{perlrun.swg,pyrun.swg,python.swg,rubydef.swg,rubyhead.swg,rubytracking.swg,runtime.swg,swigrun.swg}
'';
env = {
# We are hitting the following issue even with APR 1.6.x
# -> https://issues.apache.org/jira/browse/SVN-4813
# "-P" CPPFLAG is needed to build Python bindings and subversionClient
CPPFLAGS = [ "-P" ];
preConfigure = ''
./autogen.sh
'';
configureFlags = [
(lib.withFeature bdbSupport "berkeley-db")
(lib.withFeatureAs httpServer "apxs" "${apacheHttpd.dev}/bin/apxs")
(lib.withFeatureAs (pythonBindings || perlBindings) "swig" swig)
(lib.withFeatureAs saslSupport "sasl" sasl)
(lib.withFeatureAs httpSupport "serf" serf)
"--with-zlib=${zlib.dev}"
"--with-sqlite=${sqlite.dev}"
"--with-apr=${apr.dev}"
"--with-apr-util=${aprutil.dev}"
]
++ lib.optionals javahlBindings [
"--enable-javahl"
"--with-jdk=${jdk}"
];
preBuild = ''
makeFlagsArray=(APACHE_LIBEXECDIR=$out/modules)
'';
postInstall = ''
if test -n "$pythonBindings"; then
make swig-py swig_pydir=$(toPythonPath $out)/libsvn swig_pydir_extra=$(toPythonPath $out)/svn
make install-swig-py swig_pydir=$(toPythonPath $out)/libsvn swig_pydir_extra=$(toPythonPath $out)/svn
fi
if test -n "$perlBindings"; then
make swig-pl-lib
make install-swig-pl-lib
cd subversion/bindings/swig/perl/native
perl Makefile.PL PREFIX=$out
make install
cd -
fi
mkdir -p $out/share/bash-completion/completions
cp tools/client-side/bash_completion $out/share/bash-completion/completions/subversion
for f in $out/lib/*.la $out/lib/python*/site-packages/*/*.la; do
substituteInPlace $f \
--replace "${expat.dev}/lib" "${expat.out}/lib" \
--replace "${zlib.dev}/lib" "${zlib.out}/lib" \
--replace "${sqlite.dev}/lib" "${sqlite.out}/lib" \
--replace "${openssl.dev}/lib" "${lib.getLib openssl}/lib"
done
'';
inherit perlBindings pythonBindings;
enableParallelBuilding = true;
# Missing install dependencies:
# libtool: error: error: relink 'libsvn_ra_serf-1.la' with the above command before installing it
# make: *** [build-outputs.mk:1316: install-serf-lib] Error 1
enableParallelInstalling = false;
nativeCheckInputs = [ python3 ];
doCheck = false; # fails 10 out of ~2300 tests
passthru.tests = { inherit (nixosTests) svnserve; };
meta = {
description = "Version control system intended to be a compelling replacement for CVS in the open source community";
license = lib.licenses.asl20;
homepage = "https://subversion.apache.org/";
mainProgram = "svn";
maintainers = with lib.maintainers; [ lovek323 ];
platforms = lib.platforms.linux ++ lib.platforms.darwin;
};
CPPFLAGS = toString [ "-P" ];
}
// lib.optionalAttrs stdenv.hostPlatform.isDarwin {
CXX = "clang++";
CC = "clang";
CPP = "clang -E";
CXXCPP = "clang++ -E";
}
);
};
preConfigure = ''
./autogen.sh
'';
configureFlags = [
(lib.withFeature bdbSupport "berkeley-db")
(lib.withFeatureAs httpServer "apxs" "${apacheHttpd.dev}/bin/apxs")
(lib.withFeatureAs (pythonBindings || perlBindings) "swig" swig)
(lib.withFeatureAs saslSupport "sasl" sasl)
(lib.withFeatureAs httpSupport "serf" serf)
"--with-zlib=${zlib.dev}"
"--with-sqlite=${sqlite.dev}"
"--with-apr=${apr.dev}"
"--with-apr-util=${aprutil.dev}"
]
++ lib.optionals javahlBindings [
"--enable-javahl"
"--with-jdk=${jdk}"
];
preBuild = ''
makeFlagsArray=(APACHE_LIBEXECDIR=$out/modules)
'';
postInstall = ''
if test -n "$pythonBindings"; then
make swig-py swig_pydir=$(toPythonPath $out)/libsvn swig_pydir_extra=$(toPythonPath $out)/svn
make install-swig-py swig_pydir=$(toPythonPath $out)/libsvn swig_pydir_extra=$(toPythonPath $out)/svn
fi
if test -n "$perlBindings"; then
make swig-pl-lib
make install-swig-pl-lib
cd subversion/bindings/swig/perl/native
perl Makefile.PL PREFIX=$out
make install
cd -
fi
mkdir -p $out/share/bash-completion/completions
cp tools/client-side/bash_completion $out/share/bash-completion/completions/subversion
for f in $out/lib/*.la $out/lib/python*/site-packages/*/*.la; do
substituteInPlace $f \
--replace "${expat.dev}/lib" "${expat.out}/lib" \
--replace "${zlib.dev}/lib" "${zlib.out}/lib" \
--replace "${sqlite.dev}/lib" "${sqlite.out}/lib" \
--replace "${openssl.dev}/lib" "${lib.getLib openssl}/lib"
done
'';
inherit perlBindings pythonBindings;
enableParallelBuilding = true;
# Missing install dependencies:
# libtool: error: error: relink 'libsvn_ra_serf-1.la' with the above command before installing it
# make: *** [build-outputs.mk:1316: install-serf-lib] Error 1
enableParallelInstalling = false;
nativeCheckInputs = [ python3 ];
doCheck = false; # fails 10 out of ~2300 tests
passthru.tests = { inherit (nixosTests) svnserve; };
meta = {
description = "Version control system intended to be a compelling replacement for CVS in the open source community";
license = lib.licenses.asl20;
homepage = "https://subversion.apache.org/";
mainProgram = "svn";
maintainers = with lib.maintainers; [ lovek323 ];
platforms = lib.platforms.linux ++ lib.platforms.darwin;
};
};
in
{
@@ -85,7 +85,6 @@ stdenv.mkDerivation (finalAttrs: {
homepage = "https://github.com/nowrep/obs-vkcapture";
changelog = "https://github.com/nowrep/obs-vkcapture/releases/tag/v${finalAttrs.version}";
maintainers = with lib.maintainers; [
atila
pedrohlc
];
license = lib.licenses.gpl2Only;
@@ -16,12 +16,12 @@
}:
stdenv.mkDerivation rec {
pname = "vdr-softhddevice";
version = "2.4.6";
version = "2.4.8";
src = fetchFromGitHub {
owner = "ua0lnj";
repo = "vdr-plugin-softhddevice";
sha256 = "sha256-69mLiu/v+iZntrGvL0eNE/dDQwRVIlg5MfsNTr52Ots=";
sha256 = "sha256-pQ437Du++L6KhBCqkHpiYCoT713RAB+rnoGCXr5M0S4=";
rev = "v${version}";
};
@@ -1,67 +0,0 @@
{
lib,
fetchFromGitHub,
stdenv,
lld,
}:
let
arch = stdenv.hostPlatform.qemuArch;
target = ./. + "/${arch}-unknown-none.json";
in
let
cross = import ../../../.. {
system = stdenv.hostPlatform.system;
crossSystem = lib.systems.examples."${arch}-embedded" // {
rust.rustcTarget = "${arch}-unknown-none";
rust.platform =
assert lib.assertMsg (builtins.pathExists target) "Target spec not found";
lib.importJSON target;
};
};
inherit (cross) rustPlatform;
in
rustPlatform.buildRustPackage rec {
pname = "rust-hypervisor-firmware";
version = "0.5.0";
src = fetchFromGitHub {
owner = "cloud-hypervisor";
repo = "rust-hypervisor-firmware";
tag = version;
sha256 = "sha256-iLYmPBJH7I6EJ8VTUbR0+lZaebvbZlRv2KglbjKX76Q=";
};
cargoHash = "sha256-iqsU4t8Zz9UTtAu+a6kqwnPZ6qdGAriQ7hcU58KDQ8M=";
# lld: error: unknown argument '-Wl,--undefined=AUDITABLE_VERSION_INFO'
# https://github.com/cloud-hypervisor/rust-hypervisor-firmware/issues/249
auditable = false;
env = {
RUSTC_BOOTSTRAP = 1;
RUSTFLAGS = "-C linker=lld -C linker-flavor=ld.lld";
};
nativeBuildInputs = [
lld
];
# Tests don't work for `no_std`. See https://os.phil-opp.com/testing/
doCheck = false;
meta = {
homepage = "https://github.com/cloud-hypervisor/rust-hypervisor-firmware";
description = "Simple firmware that is designed to be launched from anything that supports loading ELF binaries and running them with the PVH booting standard";
license = with lib.licenses; [ asl20 ];
maintainers = with lib.maintainers; [ astro ];
platforms = [ "x86_64-none" ];
mainProgram = "hypervisor-fw";
};
}
@@ -1,20 +0,0 @@
{
"llvm-target": "x86_64-unknown-none",
"data-layout": "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128",
"arch": "x86_64",
"target-endian": "little",
"target-pointer-width": "64",
"target-c-int-width": "32",
"os": "none",
"executables": true,
"linker": "rust-lld",
"linker-flavor": "ld.lld",
"panic-strategy": "abort",
"disable-redzone": true,
"features": "-mmx,-sse,+soft-float",
"code-model": "small",
"relocation-model": "pic",
"pre-link-args": {
"ld.lld": ["--script=x86_64-unknown-none.ld"]
}
}
@@ -114,8 +114,6 @@ stdenv.mkDerivation rec {
"doc"
];
FONTCONFIG_FILE = toString fontsConf;
propagatedUserEnvPkgs = [ hicolor-icon-theme ];
buildInputs = [
cairo
@@ -150,11 +148,14 @@ stdenv.mkDerivation rec {
]
++ lib.optional lua.pkgs.isLuaJIT "-DLUA_LIBRARY=${lua}/lib/libluajit-5.1.so";
GI_TYPELIB_PATH = "${pango.out}/lib/girepository-1.0";
# LUA_CPATH and LUA_PATH are used only for *building*, see the --search flags
# below for how awesome finds the libraries it needs at runtime.
LUA_CPATH = "${luaEnv}/lib/lua/${lua.luaversion}/?.so";
LUA_PATH = "${luaEnv}/share/lua/${lua.luaversion}/?.lua;;";
env = {
FONTCONFIG_FILE = toString fontsConf;
GI_TYPELIB_PATH = "${pango.out}/lib/girepository-1.0";
# LUA_CPATH and LUA_PATH are used only for *building*, see the --search flags
# below for how awesome finds the libraries it needs at runtime.
LUA_CPATH = "${luaEnv}/lib/lua/${lua.luaversion}/?.so";
LUA_PATH = "${luaEnv}/share/lua/${lua.luaversion}/?.lua;;";
};
postInstall = ''
# Don't use wrapProgram or the wrapper will duplicate the --search
+1 -1
View File
@@ -603,7 +603,7 @@ stdenvNoCC.mkDerivation {
installPhase =
if targetPlatform.isCygwin then
''
echo addToSearchPath "LINK_DLL_FOLDERS" "${cc_bin}/lib" >> $out
echo addToSearchPath "_linkDeps_inputPath" "${cc_solib}/bin" >> $out
# Work around build failure caused by the gnulib workaround for
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114870. remove after
# gnulib is updated in core packages (e.g. iconv, gnupatch, gnugrep)
+5 -1
View File
@@ -98,6 +98,7 @@ let
"dropAttrs"
"dropDerivationAttrs"
"keepAttrs"
"enableParallelBuilding"
]
++ dropAttrs
) keepAttrs;
@@ -201,7 +202,10 @@ stdenv.mkDerivation (
);
buildInputs =
args.overrideBuildInputs or ([ coq ] ++ (args.buildInputs or [ ]) ++ extraBuildInputs);
inherit enableParallelBuilding;
enableParallelBuilding =
lib.warnIf (args ? enableParallelBuilding && args.enableParallelBuilding == true)
"mkCoqDerivation: enableParallelBuilding is enabled by default; remove the explicit setting"
enableParallelBuilding;
meta =
(
+5 -3
View File
@@ -13,9 +13,11 @@ stdenv.mkDerivation {
dontUnpack = true;
CGO_ENABLED = 0;
GOFLAGS = "-trimpath";
GO111MODULE = "off";
env = {
CGO_ENABLED = 0;
GOFLAGS = "-trimpath";
GO111MODULE = "off";
};
buildPhase = ''
runHook preBuild
+7 -2
View File
@@ -1,4 +1,6 @@
{
stdenv,
config,
runCommand,
testers,
fetchgit,
@@ -239,8 +241,11 @@
withGitConfig =
let
pkgs = import ../../.. {
config.gitConfig = {
url."https://github.com".insteadOf = "https://doesntexist.forsure";
system = stdenv.hostPlatform.system;
config = config // {
gitConfig = {
url."https://github.com".insteadOf = "https://doesntexist.forsure";
};
};
};
in
@@ -1,77 +0,0 @@
# shellcheck shell=bash
addLinkDLLPaths() {
addToSearchPath "LINK_DLL_FOLDERS" "$1/lib"
addToSearchPath "LINK_DLL_FOLDERS" "$1/bin"
}
# shellcheck disable=SC2154
addEnvHooks "$targetOffset" addLinkDLLPaths
addOutputDLLPaths() {
for output in $(getAllOutputNames); do
addToSearchPath "LINK_DLL_FOLDERS" "${!output}/lib"
addToSearchPath "LINK_DLL_FOLDERS" "${!output}/bin"
done
}
postInstallHooks+=(addOutputDLLPaths)
_dllDeps() {
"$OBJDUMP" -p "$1" \
| sed -n 's/.*DLL Name: \(.*\)/\1/p' \
| sort -u
}
_linkDeps() {
local target="$1" dir="$2" check="$3"
echo 'target:' "$target"
local dll
_dllDeps "$target" | while read -r dll; do
echo ' dll:' "$dll"
if [[ -e "$dir/$dll" ]]; then continue; fi
# Locate the DLL - it should be an *executable* file on $LINK_DLL_FOLDERS.
local dllPath
if ! dllPath="$(PATH="$(dirname "$target"):$LINK_DLL_FOLDERS" type -P "$dll")"; then
if [[ -z "$check" || -n "${allowedImpureDLLsMap[$dll]}" ]]; then
continue
fi
echo unable to find "$dll" in "$LINK_DLL_FOLDERS" >&2
exit 1
fi
echo ' linking to:' "$dllPath"
CYGWIN+=\ winsymlinks:nativestrict ln -sr "$dllPath" "$dir"
# That DLL might have its own (transitive) dependencies,
# so add also all DLLs from its directory to be sure.
_linkDeps "$dllPath" "$dir" ""
done
}
linkDLLs() {
# shellcheck disable=SC2154
if [ ! -d "$prefix" ]; then return; fi
(
set -e
shopt -s globstar nullglob
local -a allowedImpureDLLsArray
concatTo allowedImpureDLLsArray allowedImpureDLLs
local -A allowedImpureDLLsMap;
for dll in "${allowedImpureDLLsArray[@]}"; do
allowedImpureDLLsMap[$dll]=1
done
cd "$prefix"
# Iterate over any DLL that we depend on.
local target
for target in {bin,libexec}/**/*.{exe,dll}; do
[[ ! -f "$target" || ! -x "$target" ]] ||
_linkDeps "$target" "$(dirname "$target")" "1"
done
)
}
fixupOutputHooks+=(linkDLLs)
+2 -2
View File
@@ -14,7 +14,7 @@
stdenv.mkDerivation (finalAttrs: {
pname = "1oom";
version = "1.11.7";
version = "1.11.8";
outputs = [
"out"
@@ -25,7 +25,7 @@ stdenv.mkDerivation (finalAttrs: {
owner = "1oom-fork";
repo = "1oom";
tag = "v${finalAttrs.version}";
hash = "sha256-pOEs3HQSxER0wUhasxQUyrktka8cRZCtNER0F01BRvk=";
hash = "sha256-Y29Xc8ylXhpQO7dDl7z7XC7+RB4UOIRksZ8RtfaCiEc=";
};
nativeBuildInputs = [
+36
View File
@@ -0,0 +1,36 @@
{
lib,
rustPlatform,
fetchFromGitHub,
pkg-config,
openssl,
nix-update-script,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "acorns";
version = "1.2.2";
src = fetchFromGitHub {
owner = "redhat-documentation";
repo = "acorns";
tag = "v${finalAttrs.version}";
hash = "sha256-TqLfEiq4FYrc88aJK047n+pjMNkz7/H9AQZ6wxb1dI0=";
};
cargoHash = "sha256-q+XDKVNH1FLggfHlThck3yGDyFL9N7vHlj5cxPCnkdU=";
nativeBuildInputs = [ pkg-config ];
buildInputs = [ openssl ];
meta = {
description = "Generate an AsciiDoc release notes document from tracking tickets";
homepage = "https://redhat-documentation.github.io/acorns/";
downloadPage = "https://github.com/redhat-documentation/acorns";
changelog = "https://github.com/redhat-documentation/acorns/blob/${finalAttrs.src.rev}/CHANGELOG.md";
license = lib.licenses.gpl3Plus;
maintainers = with lib.maintainers; [ iamanaws ];
mainProgram = "acorns";
};
})
+14 -12
View File
@@ -34,21 +34,23 @@ stdenv.mkDerivation (finalAttrs: {
"iasl"
];
env.NIX_CFLAGS_COMPILE = toString [
"-O3"
];
env = {
NIX_CFLAGS_COMPILE = toString [
"-O3"
];
# i686 builds fail with hardening enabled (due to -Wformat-overflow). Disable
# -Werror altogether to make this derivation less fragile to toolchain
# updates.
NOWERROR = "TRUE";
# We can handle stripping ourselves.
# Unless we are on Darwin. Upstream makefiles degrade coreutils install to cp if _APPLE is detected.
INSTALLFLAGS = lib.optionals (!stdenv.hostPlatform.isDarwin) "-m 555";
};
enableParallelBuilding = true;
# i686 builds fail with hardening enabled (due to -Wformat-overflow). Disable
# -Werror altogether to make this derivation less fragile to toolchain
# updates.
NOWERROR = "TRUE";
# We can handle stripping ourselves.
# Unless we are on Darwin. Upstream makefiles degrade coreutils install to cp if _APPLE is detected.
INSTALLFLAGS = lib.optionals (!stdenv.hostPlatform.isDarwin) "-m 555";
installFlags = [ "PREFIX=${placeholder "out"}" ];
passthru.updateScript = nix-update-script { };
-2
View File
@@ -9,7 +9,6 @@
libdrm,
libGL,
atkmm,
pcre,
gtkmm4,
pugixml,
libgbm,
@@ -44,7 +43,6 @@ stdenv.mkDerivation (finalAttrs: {
libdrm
libGL
atkmm
pcre
gtkmm4
pugixml
libgbm
+3 -3
View File
@@ -6,16 +6,16 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "adrs";
version = "0.6.2";
version = "0.7.0";
src = fetchFromGitHub {
owner = "joshrotenberg";
repo = "adrs";
tag = "v${finalAttrs.version}";
hash = "sha256-dHiXnLARzviShnih1gkMehMpsztaofFXToDStd3GWkY=";
hash = "sha256-D1Tg5ep9ri6fj0fLmKqQeMdlAe/Nc38wKTF5dsWxK3k=";
};
cargoHash = "sha256-RThX4n4qn/0cPm8GZLnzbNt5VrMWf0wMXz0G9Im9CHk=";
cargoHash = "sha256-jrKDOLPps/ExGnREQy1yz8Say1bAcvJXHrkLivux4Vg=";
meta = {
description = "Command-line tool for managing Architectural Decision Records";
+2 -2
View File
@@ -8,11 +8,11 @@
stdenv.mkDerivation (finalAttrs: {
pname = "allure";
version = "2.36.0";
version = "2.37.0";
src = fetchurl {
url = "https://github.com/allure-framework/allure2/releases/download/${finalAttrs.version}/allure-${finalAttrs.version}.tgz";
hash = "sha256-sUXVk6v0oJHoyql4i6XKM8D+9jXN/HYCv/mjyhndRxo=";
hash = "sha256-pl0n9X8HnIsazyG7qvJw2wmpwhKa/i7ohlHOsHg9glw=";
};
dontConfigure = true;
+3 -3
View File
@@ -8,12 +8,12 @@
stdenv.mkDerivation {
pname = "althttpd";
version = "0-unstable-2025-08-22";
version = "0-unstable-2026-01-27";
src = fetchfossil {
url = "https://sqlite.org/althttpd/";
rev = "e9bf26f78e1f5792";
hash = "sha256-Q16tqhnPzYrFkrHTC8NBrdpsbrpjPUkdxLwmyYqUHZo=";
rev = "7758535a137da507";
hash = "sha256-9yszcoYpbM9/KDn7zpWgDINZF6azkQVxwlOw7BvRo+4=";
};
buildInputs = [ openssl ];
+4 -3
View File
@@ -144,7 +144,10 @@ stdenv.mkDerivation (finalAttrs: {
useBwrap = false;
};
env.JAVA_HOME = jetbrains.jdk;
env = {
JAVA_HOME = jetbrains.jdk;
ANDROID_SDK_HOME = "$(pwd)";
};
gradleFlags = [
"-Dorg.gradle.java.home=${jetbrains.jdk}"
@@ -257,8 +260,6 @@ stdenv.mkDerivation (finalAttrs: {
ln -sf ${libvlc}/lib $out/lib/app/resources/
'';
ANDROID_SDK_HOME = "$(pwd)";
passthru.updateScript = writeShellScript "update-animeko" ''
${lib.getExe nix-update} animeko
$(nix-build -A animeko.mitmCache.updateScript)
+9 -9
View File
@@ -1,22 +1,22 @@
{
"version": "1.16.5",
"version": "1.18.4",
"vscodeVersion": "1.107.0",
"sources": {
"x86_64-linux": {
"url": "https://edgedl.me.gvt1.com/edgedl/release2/j0qc3/antigravity/stable/1.16.5-6703236727046144/linux-x64/Antigravity.tar.gz",
"sha256": "1953c62452d32a72e595f7fa832c7a7ed9072d22c9cf99df3a22c249a97f5e97"
"url": "https://edgedl.me.gvt1.com/edgedl/release2/j0qc3/antigravity/stable/1.18.4-5780041996042240/linux-x64/Antigravity.tar.gz",
"sha256": "f97d790d1fb74e8ccb9ddb6af301a2b60391aed22f633f1a2baf86862aa65826"
},
"aarch64-linux": {
"url": "https://edgedl.me.gvt1.com/edgedl/release2/j0qc3/antigravity/stable/1.16.5-6703236727046144/linux-arm/Antigravity.tar.gz",
"sha256": "b828e4a6e5133283b418a3e2afd2f97111ffc804cc2eef56c0e2327396b8ad97"
"url": "https://edgedl.me.gvt1.com/edgedl/release2/j0qc3/antigravity/stable/1.18.4-5780041996042240/linux-arm/Antigravity.tar.gz",
"sha256": "eee54e88290cf4b0b8feb56283a04ab31ce4746465ca0bd1afd3e4505b2f95ea"
},
"x86_64-darwin": {
"url": "https://edgedl.me.gvt1.com/edgedl/release2/j0qc3/antigravity/stable/1.16.5-6703236727046144/darwin-x64/Antigravity.zip",
"sha256": "6d859d2427ac9f4cbd435e1568d6a626186e153f38263c4dd3e1c16672f79005"
"url": "https://edgedl.me.gvt1.com/edgedl/release2/j0qc3/antigravity/stable/1.18.4-5780041996042240/darwin-x64/Antigravity.zip",
"sha256": "fdff8b6fdfda9a28ac5a147f174337c3cf515b10cddc8466af5a32c6deaaca87"
},
"aarch64-darwin": {
"url": "https://edgedl.me.gvt1.com/edgedl/release2/j0qc3/antigravity/stable/1.16.5-6703236727046144/darwin-arm/Antigravity.zip",
"sha256": "4b4ece88e76e01ffe7e774a8eadb21134011d0177adb90464ef8f6c2102ff45d"
"url": "https://edgedl.me.gvt1.com/edgedl/release2/j0qc3/antigravity/stable/1.18.4-5780041996042240/darwin-arm/Antigravity.zip",
"sha256": "f1ccd9e3f051431b54b95b905afed8ec1b8b1a3f1bc841b3617b143553fd6f51"
}
}
}
+3 -3
View File
@@ -11,13 +11,13 @@
buildGoModule (finalAttrs: {
pname = "apko";
version = "1.1.6";
version = "1.1.9";
src = fetchFromGitHub {
owner = "chainguard-dev";
repo = "apko";
tag = "v${finalAttrs.version}";
hash = "sha256-7WNWbTs+r3L2O6ixK1yEElwdFfRPqx2yX+nPRy3nSEM=";
hash = "sha256-gYLLKejvyQTbDEua51RxxQy1aSUsp8EJrg/7b5xrEBs=";
# populate values that require us to use git. By doing this in postFetch we
# can delete .git afterwards and maintain better reproducibility of the src.
leaveDotGit = true;
@@ -29,7 +29,7 @@ buildGoModule (finalAttrs: {
find "$out" -name .git -print0 | xargs -0 rm -rf
'';
};
vendorHash = "sha256-mSnEga9JtS1ObMJpS0uo1RZs2ubpTwsErtmD8rMe5gg=";
vendorHash = "sha256-Iv9aRb4soepckHl0cQMb3TqHjiNn19QLFCprTunWiO8=";
excludedPackages = [
"internal/gen-jsonschema"
+1 -1
View File
@@ -50,7 +50,7 @@ stdenv.mkDerivation rec {
'';
# Fontconfig error: Cannot load default config file: No such file: (null)
FONTCONFIG_FILE = makeFontsConf { fontDirectories = [ ]; };
env.FONTCONFIG_FILE = makeFontsConf { fontDirectories = [ ]; };
mesonFlags = [
# "-Dthemes=cinnamon,gnome-shell,gtk2,gtk3,plank,xfwm,metacity"
+11 -10
View File
@@ -192,14 +192,17 @@ stdenv.mkDerivation (
]
++ lib.optional optimize "--optimize";
env.NIX_CFLAGS_COMPILE = toString [
# 'ioprio_set' syscall support:
"-D_GNU_SOURCE"
# compiler doesn't find headers without these:
"-I${lib.getDev serd}/include/serd-0"
"-I${lib.getDev sratom}/include/sratom-0"
"-I${lib.getDev sord}/include/sord-0"
];
env = {
NIX_CFLAGS_COMPILE = toString [
# 'ioprio_set' syscall support:
"-D_GNU_SOURCE"
# compiler doesn't find headers without these:
"-I${lib.getDev serd}/include/serd-0"
"-I${lib.getDev sratom}/include/sratom-0"
"-I${lib.getDev sord}/include/sord-0"
];
LINKFLAGS = "-lpthread";
};
postInstall = ''
# wscript does not install these for some reason
@@ -227,8 +230,6 @@ stdenv.mkDerivation (
}"
'';
LINKFLAGS = "-lpthread";
meta = {
description = "Multi-track hard disk recording software";
longDescription = ''
+1 -1
View File
@@ -216,7 +216,7 @@ stdenv.mkDerivation (
}"
'';
LINKFLAGS = "-lpthread";
env.LINKFLAGS = "-lpthread";
meta = {
description = "Multi-track hard disk recording software";
+14 -8
View File
@@ -40,13 +40,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "art";
version = "1.26.1";
version = "1.26.2";
src = fetchFromGitHub {
owner = "artpixls";
repo = "ART";
tag = finalAttrs.version;
hash = "sha256-Abh3Hj3wKdWNN7rdU61MgkZHmoa7ufYzZGKsrxplkj0=";
hash = "sha256-zjGb5XiXry16xHlrlDw1b3ROYgHuJe3srRFWY/AIBRE=";
};
# Fix the build with CMake 4.
@@ -105,12 +105,18 @@ stdenv.mkDerivation (finalAttrs: {
"-DCTL_INCLUDE_DIR=${color-transformation-language}/include/CTL"
];
CMAKE_CXX_FLAGS = toString [
"-std=c++11"
"-Wno-deprecated-declarations"
"-Wno-unused-result"
];
env.CXXFLAGS = "-include cstdint"; # needed at least with gcc13 on aarch64-linux
env = {
CMAKE_CXX_FLAGS = toString [
"-std=c++11"
"-Wno-deprecated-declarations"
"-Wno-unused-result"
];
# needed at least with gcc13 on aarch64-linux
CXXFLAGS = toString [
"-include"
"cstdint"
];
};
meta = {
description = "Raw converter based on RawTherapee";
@@ -0,0 +1,9 @@
diff --git a/config.yaml b/config.yaml
index 2f07ea7..0f90432 100644
--- a/config.yaml
+++ b/config.yaml
@@ -4,3 +4,4 @@ additionalProperties:
packageName: api
enumClassPrefix: true
useOneOfDiscriminatorLookup: true
+ disallowAdditionalPropertiesIfNotPresent: false
+3
View File
@@ -1,6 +1,7 @@
{
buildGoModule,
authentik,
apiGoVendorHook,
vendorHash,
}:
@@ -9,6 +10,8 @@ buildGoModule {
inherit (authentik) version src;
inherit vendorHash;
nativeBuildInputs = [ apiGoVendorHook ];
env.CGO_ENABLED = 0;
subPackages = [ "cmd/ldap" ];
+4 -3
View File
@@ -1,10 +1,11 @@
{
callPackage,
authentik,
apiGoVendorHook ? authentik.apiGoVendorHook,
vendorHash ? authentik.proxy.vendorHash,
}:
{
ldap = callPackage ./ldap.nix { inherit vendorHash; };
proxy = callPackage ./proxy.nix { inherit vendorHash; };
radius = callPackage ./radius.nix { inherit vendorHash; };
ldap = callPackage ./ldap.nix { inherit apiGoVendorHook vendorHash; };
proxy = callPackage ./proxy.nix { inherit apiGoVendorHook vendorHash; };
radius = callPackage ./radius.nix { inherit apiGoVendorHook vendorHash; };
}
+152 -13
View File
@@ -10,18 +10,23 @@
nodejs_24,
python3,
makeWrapper,
openapi-generator-cli,
go,
typescript,
makeSetupHook,
writeShellScript,
}:
let
nodejs = nodejs_24;
version = "2025.10.1";
version = "2025.12.4";
src = fetchFromGitHub {
owner = "goauthentik";
repo = "authentik";
tag = "version/${version}";
hash = "sha256-HowB6DTGCqz770fKYbnE+rQ11XRV0WSNkLD+HSWZwz8=";
hash = "sha256-alTyrMBbjZbw4jhEna8saabf93sqSrZCu+Z5xH3pZ7M=";
};
meta = {
@@ -39,6 +44,90 @@ let
];
};
client-go = stdenvNoCC.mkDerivation {
pname = "authentik-client-go";
version = "3.${version}";
inherit meta;
src = fetchFromGitHub {
owner = "goauthentik";
repo = "client-go";
tag = "v3.${version}";
hash = "sha256-+/CfOE2HkBU+ZddvdXGenB/z8xNFk8cujpZpMXyh3cY=";
};
patches = [
./client-go-config.patch
];
postPatch = ''
substituteInPlace ./config.yaml \
--replace-fail '/local' "$(pwd)"
'';
nativeBuildInputs = [
openapi-generator-cli
go
];
buildPhase = ''
runHook preBuild
openapi-generator-cli generate \
-i ${src}/schema.yml -o $out \
-g go \
-c ./config.yaml
gofmt -w $out
runHook postBuild
'';
installPhase = ''
runHook preInstall
cp go.mod go.sum $out
cd $out
rm -rf test
rm -f .travis.yml git_push.sh
runHook postInstall
'';
};
client-ts = stdenvNoCC.mkDerivation {
pname = "authentik-client-ts";
inherit version src meta;
postPatch = ''
substituteInPlace ./scripts/api/ts-config.yaml \
--replace-fail '/local' "$(pwd)"
'';
nativeBuildInputs = [
nodejs
openapi-generator-cli
typescript
];
buildPhase = ''
runHook preBuild
openapi-generator-cli generate \
-i ./schema.yml -o $out \
-g typescript-fetch \
-c ./scripts/api/ts-config.yaml \
--additional-properties=npmVersion=${version} \
--git-repo-id authentik --git-user-id goauthentik
cd $out
npm run build
runHook postBuild
'';
};
# prefetch-npm-deps does not save all dependencies even though the lockfile is fine
website-deps = stdenvNoCC.mkDerivation {
pname = "authentik-website-deps";
@@ -48,8 +137,8 @@ let
outputHash =
{
"aarch64-linux" = "sha256-aXXlzTsZp5mOrsxy9oHNzcc+1cFSnbC9RmtawBohmLI=";
"x86_64-linux" = "sha256-Hi0HXzwTLuer0v4IKF3aim0tVe7AVLi67DiMimrIq5s=";
"aarch64-linux" = "sha256-GL5FPIBnoEXYtw8DPJpRPe3tT3qioN4AdoeOmCoiYsM=";
"x86_64-linux" = "sha256-AnceTipq6uUvTbOAZanVshAbAJ9LS1kwImbttTOcWxc=";
}
.${stdenvNoCC.hostPlatform.system} or (throw "authentik-website-deps: unsupported host platform");
@@ -119,8 +208,8 @@ let
outputHash =
{
"aarch64-linux" = "sha256-t/jyzG3ibTW3fu8Gl1tWkSjMG6Lek/7JDccDrZX6sD0=";
"x86_64-linux" = "sha256-8I1YAKvgWjM3p9O1mCetZvhZelrfB31w0ZwkZBUEoh4=";
"aarch64-linux" = "sha256-eZZ5Ynj81KwFsU5emPtYZ2CxO8MFvWbJnCHs+L88KQQ=";
"x86_64-linux" = "sha256-yUAyyO1NFav1EptrRYGSzC8dxCxYVj0FmzHk8IckFZM=";
}
.${stdenvNoCC.hostPlatform.system} or (throw "authentik-webui-deps: unsupported host platform");
outputHashMode = "recursive";
@@ -172,6 +261,10 @@ let
find -type d -name node_modules -prune -print -exec cp -rT {} $buildRoot/{} \;
popd
chmod -R +w node_modules/@goauthentik
rm -R node_modules/@goauthentik/api
ln -sn ${client-ts} node_modules/@goauthentik/api
pushd node_modules/.bin
patchShebangs $(readlink rollup)
patchShebangs $(readlink wireit)
@@ -208,6 +301,21 @@ let
# https://github.com/goauthentik/authentik/pull/16324
django = final.django_5;
ak-guardian = final.buildPythonPackage {
pname = "ak-guardian";
inherit version src meta;
pyproject = true;
sourceRoot = "${src.name}/packages/ak-guardian";
build-system = with final; [ hatchling ];
propagatedBuildInputs = with final; [
django
typing-extensions
];
};
django-channels-postgres = final.buildPythonPackage {
pname = "django-channels-postgres";
inherit version src meta;
@@ -330,14 +438,15 @@ let
pyproject = true;
postPatch = ''
rm lifecycle/system_migrations/tenant_files.py
substituteInPlace authentik/root/settings.py \
--replace-fail 'Path(__file__).absolute().parent.parent.parent' "Path(\"$out\")"
substituteInPlace authentik/lib/default.yml \
--replace-fail '/blueprints' "$out/blueprints" \
--replace-fail './media' '/var/lib/authentik/media'
--replace-fail '/blueprints' "$out/blueprints"
substituteInPlace authentik/stages/email/utils.py \
--replace-fail 'web/' '${webui}/'
# allways allow file upload if the data directoy exists
substituteInPlace authentik/admin/files/backends/file.py \
--replace-fail "and (self._base_dir.is_mount() or (self._base_dir / self.usage.value).is_mount())" ""
'';
build-system = [
@@ -351,6 +460,7 @@ let
dependencies =
with final;
[
ak-guardian
argon2-cffi
cachetools
channels
@@ -364,7 +474,6 @@ let
django-cte
django-dramatiq-postgres
django-filter
django-guardian
django-model-utils
django-pglock
django-pgtrigger
@@ -375,7 +484,6 @@ let
django-tenants
djangoql
djangorestframework
djangorestframework-guardian
docker
drf-orjson-renderer
drf-spectacular
@@ -440,6 +548,31 @@ let
inherit (python.pkgs) authentik-django;
# Provide a setup-hook to configure the Go vendor directory with up-to-date API bindings.
# This is done to avoid the `vendorHash` depending on anything in the `client-go` build (e.g.
# openapi-generator-cli version updates changing the produced content) and invalidating the hash.
apiGoVendorHook =
makeSetupHook
{
name = "authentik-api-go-vendor-hook";
}
(
writeShellScript "authentik-api-go-vendor-hook" ''
authentikApiGoVendorHook() {
chmod -R +w vendor/goauthentik.io/api
rm -rf vendor/goauthentik.io/api/v3
cp -r ${client-go} vendor/goauthentik.io/api/v3
echo "Finished authentikApiGoVendorHook"
}
# don't run for FOD, e.g. the `goModules` build
if [ -z ''${outputHash-} ]; then
postConfigureHooks+=(authentikApiGoVendorHook)
fi
''
);
proxy = buildGoModule {
pname = "authentik-proxy";
inherit version src meta;
@@ -453,9 +586,14 @@ let
--replace-fail './web' "${authentik-django}/web"
'';
nativeBuildInputs = [ apiGoVendorHook ];
env.CGO_ENABLED = 0;
vendorHash = "sha256-m2shrCwoVdbtr8B83ZcAyG+J6dEys2xdjtlfFFF4CDo=";
# calculate the vendorHash without other dependencies, so it is only based on the `go.sum` file
overrideModAttrs.postPatch = "";
vendorHash = "sha256-pdQg02f1K4nOhsnadoplQYOhEybqZxn+yDQRN5RNygM=";
postInstall = ''
mv $out/bin/server $out/bin/authentik
@@ -500,9 +638,10 @@ stdenvNoCC.mkDerivation {
'';
passthru = {
inherit proxy;
inherit proxy apiGoVendorHook;
outposts = callPackages ./outposts.nix {
inherit (proxy) vendorHash;
inherit apiGoVendorHook;
};
};
+3
View File
@@ -1,6 +1,7 @@
{
buildGoModule,
authentik,
apiGoVendorHook,
vendorHash,
}:
@@ -9,6 +10,8 @@ buildGoModule {
inherit (authentik) version src;
inherit vendorHash;
nativeBuildInputs = [ apiGoVendorHook ];
env.CGO_ENABLED = 0;
subPackages = [ "cmd/proxy" ];
+3
View File
@@ -1,6 +1,7 @@
{
buildGoModule,
authentik,
apiGoVendorHook,
vendorHash,
}:
@@ -9,6 +10,8 @@ buildGoModule {
inherit (authentik) version src;
inherit vendorHash;
nativeBuildInputs = [ apiGoVendorHook ];
env.CGO_ENABLED = 0;
subPackages = [ "cmd/radius" ];
+6 -4
View File
@@ -26,10 +26,12 @@ buildGoModule (finalAttrs: {
proxyVendor = true;
vendorHash = "sha256-0+YwlCHjiU46y333RSuaha4pLKFTYlj+M9+TFAALamY=";
# Fix error: 'Caught SIGILL in blst_cgo_init'
# https://github.com/bnb-chain/bsc/issues/1521
CGO_CFLAGS = "-O -D__BLST_PORTABLE__";
CGO_CFLAGS_ALLOW = "-O -D__BLST_PORTABLE__";
env = {
# Fix error: 'Caught SIGILL in blst_cgo_init'
# https://github.com/bnb-chain/bsc/issues/1521
CGO_CFLAGS = "-O -D__BLST_PORTABLE__";
CGO_CFLAGS_ALLOW = "-O -D__BLST_PORTABLE__";
};
ldflags = [
"-s"
+27 -9
View File
@@ -2,9 +2,12 @@
lib,
stdenv,
fetchzip,
autoPatchelfHook,
makeBinaryWrapper,
jq,
dotnet-runtime,
zlib,
runtimeShell,
libzen,
}:
stdenv.mkDerivation {
@@ -17,21 +20,36 @@ stdenv.mkDerivation {
stripRoot = false;
};
nativeBuildInputs = [
autoPatchelfHook
makeBinaryWrapper
jq
];
buildInputs = [
zlib
libzen
stdenv.cc.cc.lib
];
installPhase = ''
runHook preInstall
mkdir -p $out/share/avdump3 $out/bin
mv * $out/share/avdump3
cat > $out/bin/avdump3 <<EOF
#!${runtimeShell}
export LD_LIBRARY_PATH="${lib.makeLibraryPath [ zlib ]}:\$LD_LIBRARY_PATH"
exec ${dotnet-runtime}/bin/dotnet $out/share/avdump3/AVDump3CL.dll "\$@"
EOF
chmod +x $out/bin/avdump3
# The app targets net6.0, which is EOL. Allow roll-forward to whatever
# major version dotnet-runtime provides.
jq '.runtimeOptions.rollForward = "major"' \
$out/share/avdump3/AVDump3CL.runtimeconfig.json > tmp.json
mv tmp.json $out/share/avdump3/AVDump3CL.runtimeconfig.json
makeBinaryWrapper ${dotnet-runtime}/bin/dotnet $out/bin/avdump3 \
--add-flags $out/share/avdump3/AVDump3CL.dll
runHook postInstall
'';
dontPatchELF = true;
meta = {
mainProgram = "avdump3";
description = "Tool for extracting audio/video metadata from media files and uploading it to AniDB";
+1 -1
View File
@@ -17,7 +17,7 @@ python3Packages.buildPythonApplication (finalAttrs: {
hash = "sha256-lm9YANYckyHDoNbB1wytBm55iyBmUuxFPmZupfpReqc=";
};
AWSUME_SKIP_ALIAS_SETUP = 1;
env.AWSUME_SKIP_ALIAS_SETUP = 1;
nativeBuildInputs = [ installShellFiles ];
@@ -0,0 +1,40 @@
From 898cfcc19af66f5a9273cd04b43cf76ae9ec6da9 Mon Sep 17 00:00:00 2001
From: Michael Daniels <mdaniels5757@gmail.com>
Date: Tue, 17 Feb 2026 21:17:33 -0500
Subject: [PATCH] fix error with pytest 4.0
https://docs.pytest.org/en/stable/deprecations.html#pytest-plugins-in-non-top-level-conftest-files
---
test/conftest.py | 1 +
test/integration/conftest.py | 3 ---
2 files changed, 1 insertion(+), 3 deletions(-)
diff --git a/test/conftest.py b/test/conftest.py
index 8f0629b..53f3e32 100644
--- a/test/conftest.py
+++ b/test/conftest.py
@@ -12,6 +12,7 @@ import sys
import pytest
+pytest_plugins = ['b2sdk.v3.testing']
@pytest.hookimpl
def pytest_configure(config):
diff --git a/test/integration/conftest.py b/test/integration/conftest.py
index 1a7226d..035a2be 100755
--- a/test/integration/conftest.py
+++ b/test/integration/conftest.py
@@ -47,9 +47,6 @@ ROOT_PATH = pathlib.Path(__file__).parent.parent.parent
GENERAL_BUCKET_NAME_PREFIX = 'clitst'
-pytest_plugins = ['b2sdk.v3.testing']
-
-
@pytest.fixture(scope='session', autouse=True)
def summary_notes(request, worker_id):
capmanager = request.config.pluginmanager.getplugin('capturemanager')
--
2.51.2
+4 -2
View File
@@ -11,16 +11,18 @@
python3Packages.buildPythonApplication (finalAttrs: {
pname = "backblaze-b2";
version = "4.4.2";
version = "4.5.1";
pyproject = true;
src = fetchFromGitHub {
owner = "Backblaze";
repo = "B2_Command_Line_Tool";
tag = "v${finalAttrs.version}";
hash = "sha256-ut1e/A36Tp4pgwZx+S8nYmjg3k/2CmRpdUfz3iOXTz0=";
hash = "sha256-0BF4+L47Cx7GNGeNm8nJkEfTLYb6jLxSH3WE+h9B6zA=";
};
patches = [ ./0001-fix-error-with-pytest-4.0.patch ];
nativeBuildInputs = with python3Packages; [
installShellFiles
argcomplete
+3 -3
View File
@@ -21,16 +21,16 @@ let
in
buildNpmPackage' rec {
pname = "balena-cli";
version = "23.2.31";
version = "24.0.2";
src = fetchFromGitHub {
owner = "balena-io";
repo = "balena-cli";
rev = "v${version}";
hash = "sha256-hyiMPOTiPgRmCvimepW7tqPoeEr52MLtIFL1t4DDBX8=";
hash = "sha256-E+vwcj6+pYDWlBgXdPagD/VrASelIbRroWC4HAn4c/c=";
};
npmDepsHash = "sha256-zqkrtqQccy08htx24MRoYFglLziDSnr0fldq1uYL5cI=";
npmDepsHash = "sha256-yVxsoemdxCS3oz3ULxPflLLNEdVD2EKRkQa7+7AFdiw=";
makeCacheWritable = true;
+2 -10
View File
@@ -3,7 +3,6 @@
lib,
binutils,
fetchFromGitHub,
fetchpatch,
cmake,
ninja,
pkg-config,
@@ -57,13 +56,13 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "bambu-studio";
version = "02.04.00.70";
version = "02.05.00.67";
src = fetchFromGitHub {
owner = "bambulab";
repo = "BambuStudio";
tag = "v${finalAttrs.version}";
hash = "sha256-BrH8gKbc0y76wbWrQxU+0xMJcYAm4Gi/xmECVf6pGkI=";
hash = "sha256-jLaSUs6OmoD0yw1hOcJarYKfr1rbhB2TwRiBBU0utEI=";
};
nativeBuildInputs = [
@@ -122,13 +121,6 @@ stdenv.mkDerivation (finalAttrs: {
./patches/no-cereal.patch
# Cmake 4 support
./patches/cmake.patch
# Fix build with gcc15
# https://github.com/bambulab/BambuStudio/pull/8555
(fetchpatch {
name = "bambu-studio-include-stdint-header.patch";
url = "https://github.com/bambulab/BambuStudio/commit/434752bf643933f22348d78335abe7f60550e736.patch";
hash = "sha256-vWqTM6IHL/gBncLk6gZHw+dFe0sdVuPdUqYeVJUbTis=";
})
];
doCheck = true;
+4 -1
View File
@@ -33,7 +33,10 @@ buildBazelPackage rec {
"--registry"
"file://${registry}"
];
LIBTOOL = lib.optionalString stdenv.hostPlatform.isDarwin "${cctools}/bin/libtool";
env = lib.optionalAttrs stdenv.hostPlatform.isDarwin {
LIBTOOL = "${cctools}/bin/libtool";
};
postPatch = ''
patchShebangs scripts/create-workspace-status.sh
+1
View File
@@ -68,6 +68,7 @@ stdenv.mkDerivation rec {
homepage = "https://www.bazarr.media/";
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ diogotcorreia ];
mainProgram = "bazarr";
platforms = lib.platforms.all;
};
+38
View File
@@ -0,0 +1,38 @@
Fetched as:
$ curl -L https://patch-diff.githubusercontent.com/raw/koron/bdf2ttf/pull/9.patch
From 87d9f987517c78c444d1d425e33c9a5f06ced3ce Mon Sep 17 00:00:00 2001
From: Sergei Trofimovich <slyich@gmail.com>
Date: Thu, 22 Jan 2026 06:35:12 +0000
Subject: [PATCH] bdf.c: fix the build against -std=c23
`gcc-15` switched to `c23` by default and `bdf2tff`
started to fail the build as:
````
src/bdf.c:131:1: error: conflicting types for 'glyph_open'; have 'bdf_glyph_t *(int, int)' {aka 'struct _bdf_glyph_t *(int, int)'}
131 | glyph_open(int width, int height)
| ^~~~~~~~~~
src/bdf.c:60:25: note: previous declaration of 'glyph_open' with type 'bdf_glyph_t *(void)' {aka 'struct _bdf_glyph_t *(void)'}
60 | static bdf_glyph_t* glyph_open();
| ^~~~~~~~~~
````
THe change fixed explicit prototype for a forward declaration.
---
src/bdf.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/bdf.c b/src/bdf.c
index 0832092..08272ed 100644
--- a/src/bdf.c
+++ b/src/bdf.c
@@ -57,7 +57,7 @@ static width_table_t cell_width_table[] = {
static int bdf_load_fh(bdf_t* font, FILE* fp);
static void count_validglyph(bdf_t* font);
-static bdf_glyph_t* glyph_open();
+static bdf_glyph_t* glyph_open(int width, int height);
static void glyph_close(bdf_glyph_t *glyph);
static char* iscmd(char* target, char* keyword);
static int atoi_next(char** str);
+5
View File
@@ -15,6 +15,11 @@ stdenv.mkDerivation {
hash = "sha256-235BTcTaC/30yLlgo0OO2cp3YCHWa87GFJGBx5lmz6o=";
};
patches = [
# gcc-15 build fix: https://github.com/koron/bdf2ttf/pull/9
./gcc-15.patch
];
dontConfigure = true;
makeFlags = [ "gcc" ];
+2 -2
View File
@@ -9,10 +9,10 @@
}:
let
pname = "beeper";
version = "4.2.547";
version = "4.2.564";
src = fetchurl {
url = "https://beeper-desktop.download.beeper.com/builds/Beeper-${version}-x86_64.AppImage";
hash = "sha256-PuthmxdIuftaK9U9r52Fc9b8JzYPwxezRhWjdyo+nmA=";
hash = "sha256-AvcERjQizf/8MsFjC9NtkMne/2ZFLPxiL0HMQsyo8TE=";
};
appimageContents = appimageTools.extract {
inherit pname version src;

Some files were not shown because too many files have changed in this diff Show More