Merge commit '27e297b7b345fb371054b9f02e1fc04e002f5df1' into haskell-updates
This commit is contained in:
@@ -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}
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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 ];
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 can’t use the customized `cfg.package` when
|
||||
# cross‐compiling. 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 can’t use the customized `cfg.package` when
|
||||
# cross‐compiling. 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" ];
|
||||
};
|
||||
})
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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}"
|
||||
|
||||
@@ -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 ];
|
||||
};
|
||||
}
|
||||
@@ -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
|
||||
|
||||
@@ -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,7 +1,7 @@
|
||||
{ lib, ... }:
|
||||
{
|
||||
name = "flaresolverr";
|
||||
meta.maintainers = [ ];
|
||||
meta.maintainers = with lib.maintainers; [ diogotcorreia ];
|
||||
|
||||
nodes.machine =
|
||||
{ pkgs, ... }:
|
||||
|
||||
+56
-2
@@ -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"
|
||||
'';
|
||||
}
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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")
|
||||
'';
|
||||
}
|
||||
@@ -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:")
|
||||
|
||||
@@ -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 ];
|
||||
|
||||
@@ -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"
|
||||
];
|
||||
|
||||
@@ -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 = [ ];
|
||||
};
|
||||
}
|
||||
+19
@@ -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 ];
|
||||
};
|
||||
}
|
||||
+19
@@ -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"
|
||||
|
||||
@@ -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";
|
||||
|
||||
+397
-397
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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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 =
|
||||
(
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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";
|
||||
};
|
||||
})
|
||||
@@ -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 { };
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 ];
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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 = ''
|
||||
|
||||
@@ -216,7 +216,7 @@ stdenv.mkDerivation (
|
||||
}"
|
||||
'';
|
||||
|
||||
LINKFLAGS = "-lpthread";
|
||||
env.LINKFLAGS = "-lpthread";
|
||||
|
||||
meta = {
|
||||
description = "Multi-track hard disk recording software";
|
||||
|
||||
@@ -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
|
||||
@@ -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" ];
|
||||
|
||||
@@ -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; };
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -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" ];
|
||||
|
||||
@@ -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" ];
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
@@ -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);
|
||||
@@ -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" ];
|
||||
|
||||
@@ -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
Reference in New Issue
Block a user