Merge df1c5949df into haskell-updates

This commit is contained in:
nixpkgs-ci[bot]
2026-02-07 00:27:00 +00:00
committed by GitHub
1533 changed files with 15342 additions and 8745 deletions
-1
View File
@@ -247,7 +247,6 @@ nixos/modules/installer/tools/nix-fallback-paths.nix @Artturin @Ericson2314 @lo
/pkgs/applications/networking/browsers/firefox/update.nix
/pkgs/applications/networking/browsers/firefox/packages/firefox.nix @mweinelt
/pkgs/applications/networking/browsers/firefox/packages/firefox-esr-*.nix @mweinelt
/pkgs/applications/networking/browsers/librewolf @squalus @DominicWrege @fpletz
/pkgs/applications/networking/browsers/chromium @emilylange @networkException
/nixos/tests/chromium.nix @emilylange @networkException
+5 -1
View File
@@ -122,7 +122,11 @@ async function checkTargetBranch({ github, context, core, dry }) {
].join('\n'),
)
if (maxRebuildCount >= 1000 && !isExemptHomeAssistantUpdate) {
if (
maxRebuildCount >= 1000 &&
!isExemptHomeAssistantUpdate &&
!isExemptKernelUpdate
) {
const desiredBranch =
base === 'master' ? 'staging' : `staging-${split(base).version}`
const body = [
+2 -2
View File
@@ -116,14 +116,14 @@ Here is a second example, this time using a source archive generated with `dune-
buildDunePackage,
}:
buildDunePackage (finalAtts: {
buildDunePackage (finalAttrs: {
pname = "wtf8";
version = "1.0.2";
minimalOCamlVersion = "4.02";
src = fetchurl {
url = "https://github.com/flowtype/ocaml-wtf8/releases/download/v${finalAtts.version}/wtf8-v${finalAtts.version}.tbz";
url = "https://github.com/flowtype/ocaml-wtf8/releases/download/v${finalAttrs.version}/wtf8-v${finalAttrs.version}.tbz";
hash = "sha256-d5/3KUBAWRj8tntr4RkJ74KWW7wvn/B/m1nx0npnzyc=";
};
+17
View File
@@ -9556,6 +9556,12 @@
githubId = 127353;
name = "Geoffrey Huntley";
};
gibbert = {
email = "gbjgms@gmail.com";
github = "zgibberish";
githubId = 67570424;
name = "gibbert";
};
gigahawk = {
email = "Jasper Chan";
name = "jasperchan515@gmail.com";
@@ -11780,6 +11786,12 @@
githubId = 1358764;
name = "Jamie Magee";
};
janhencic = {
name = "Jan Hencic";
email = "jan@hencic.com";
github = "janhencic";
githubId = 61284133;
};
jankaifer = {
name = "Jan Kaifer";
email = "jan@kaifer.cz";
@@ -18651,6 +18663,11 @@
githubId = 50854675;
name = "Nelson Jeppesen";
};
nemin = {
name = "Nemin";
github = "Nemin32";
githubId = 2953293;
};
neosimsim = {
email = "me@abn.sh";
github = "neosimsim";
@@ -105,7 +105,7 @@ In addition to numerous new and upgraded packages, this release has the followin
- [K40-Whisperer](https://www.scorchworks.com/K40whisperer/k40whisperer.html), a program to control cheap Chinese laser cutters. Available as [programs.k40-whisperer.enable](#opt-programs.k40-whisperer.enable). Users must add themselves to the `k40` group to be able to access the device.
- [kanidm](https://kanidm.github.io/kanidm/stable/), an identity management server written in Rust. Available as [services.kanidm](#opt-services.kanidm.enableServer)
- [kanidm](https://kanidm.github.io/kanidm/stable/), an identity management server written in Rust. Available as [services.kanidm](#opt-services.kanidm.server.enable) (renamed to `services.kanidm.server.enable` in 26.05).
- [Maddy](https://maddy.email/), a free an open source mail server. Available as [services.maddy](#opt-services.maddy.enable).
@@ -149,6 +149,11 @@ See <https://github.com/NixOS/nixpkgs/issues/481673>.
- `services.slurm` now supports slurmrestd usage through the `services.slurm.rest` NixOS options.
- `services.kanidm` options for server, client and unix were moved under dedicated namespaces.
For each component `enableComponent` and `componentSettings` are now `component.enable` and
`component.settings`. The unix module now supports using SSH keys from Kanidm via
`services.kanidm.unix.sshIntegration = true`.
- `glibc` has been updated to version 2.42.
This version no longer makes the stack executable when a shared library requires this. A symptom
+5 -5
View File
@@ -772,7 +772,7 @@ let
}
{
name = "kanidm";
enable = config.services.kanidm.enablePam;
enable = config.services.kanidm.unix.enable;
control = "sufficient";
modulePath = "${config.services.kanidm.package}/lib/pam_kanidm.so";
settings = {
@@ -1139,7 +1139,7 @@ let
}
{
name = "kanidm";
enable = config.services.kanidm.enablePam;
enable = config.services.kanidm.unix.enable;
control = "sufficient";
modulePath = "${config.services.kanidm.package}/lib/pam_kanidm.so";
settings = {
@@ -1248,7 +1248,7 @@ let
}
{
name = "kanidm";
enable = config.services.kanidm.enablePam;
enable = config.services.kanidm.unix.enable;
control = "sufficient";
modulePath = "${config.services.kanidm.package}/lib/pam_kanidm.so";
}
@@ -1412,7 +1412,7 @@ let
}
{
name = "kanidm";
enable = config.services.kanidm.enablePam;
enable = config.services.kanidm.unix.enable;
control = "optional";
modulePath = "${config.services.kanidm.package}/lib/pam_kanidm.so";
}
@@ -2339,7 +2339,7 @@ in
# Include the PAM modules in the system path mostly for the manpages.
[ package ]
++ lib.optional config.users.ldap.enable pam_ldap
++ lib.optional config.services.kanidm.enablePam config.services.kanidm.package
++ lib.optional config.services.kanidm.unix.enable config.services.kanidm.package
++ lib.optional config.services.sssd.enable pkgs.sssd
++ lib.optionals config.security.pam.krb5.enable [
pam_krb5
+2 -1
View File
@@ -1626,7 +1626,8 @@ in
nodejs
gnupg
"${cfg.packages.gitlab}/share/gitlab/vendor/gems/sidekiq-${cfg.packages.gitlab.rubyEnv.gems.sidekiq.version}"
# We currently use the bundled sidekiq, if we use upstream sidekiq again, this needs to include the version
"${cfg.packages.gitlab}/share/gitlab/vendor/gems/sidekiq"
# Needed for GitLab project imports
gnutar
+1 -1
View File
@@ -602,7 +602,7 @@ in
++ lib.optionals (cfg.settings.console.tokenFile != null) [
''
if [ ! -e "${cfg.settings.console.tokenFile}" ]; then
${lib.getExe cscli} console enroll "$(cat ${cfg.settings.console.tokenFile})" --name ${cfg.name}
${lib.getExe cscli} console enroll "$(${lib.getExe' pkgs.coreutils "cat"} ${cfg.settings.console.tokenFile})" --name ${cfg.name}
fi
''
];
+115 -64
View File
@@ -31,6 +31,7 @@ let
mkOption
mkOrder
mkPackageOption
mkRenamedOptionModule
optional
optionals
optionalString
@@ -44,9 +45,9 @@ let
settingsFormat = pkgs.formats.toml { };
# Remove null values, so we can document optional values that don't end up in the generated TOML file.
filterConfig = converge (filterAttrsRecursive (_: v: v != null));
serverConfigFile = settingsFormat.generate "server.toml" (filterConfig cfg.serverSettings);
clientConfigFile = settingsFormat.generate "kanidm-config.toml" (filterConfig cfg.clientSettings);
unixConfigFile = settingsFormat.generate "kanidm-unixd.toml" (filterConfig cfg.unixSettings);
serverConfigFile = settingsFormat.generate "server.toml" (filterConfig cfg.server.settings);
clientConfigFile = settingsFormat.generate "kanidm-config.toml" (filterConfig cfg.client.settings);
unixConfigFile = settingsFormat.generate "kanidm-unixd.toml" (filterConfig cfg.unix.settings);
provisionSecretFiles = filter (x: x != null) (
[
cfg.provision.idmAdminPasswordFile
@@ -56,11 +57,11 @@ let
++ mapAttrsToList (_: x: x.basicSecretFile) cfg.provision.systems.oauth2
);
secretPaths = [
cfg.serverSettings.tls_chain
cfg.serverSettings.tls_key
cfg.server.settings.tls_chain
cfg.server.settings.tls_key
]
++ optionals cfg.provision.enable provisionSecretFiles;
enableServerBackup = cfg.enableServer && (cfg.serverSettings.online_backup.versions != 0);
enableServerBackup = cfg.server.enable && (cfg.server.settings.online_backup.versions != 0);
# Merge bind mount paths and remove paths where a prefix is already mounted.
# This makes sure that if e.g. the tls_chain is in the nix store and /nix/store is already in the mount
@@ -218,7 +219,7 @@ let
serverPort =
let
address = cfg.serverSettings.bindaddress;
address = cfg.server.settings.bindaddress;
in
# ipv6:
if hasInfix "]:" address then
@@ -230,19 +231,42 @@ let
# default is 8443
else
throw "Address not parseable as IPv4 nor IPv6.";
addKaniSshKeys = cfg.unix.enable && cfg.unix.sshIntegration;
in
{
options.services.kanidm = {
enableClient = mkEnableOption "the Kanidm client";
enableServer = mkEnableOption "the Kanidm server";
enablePam = mkEnableOption "the Kanidm PAM and NSS integration";
imports = [
(mkRenamedOptionModule
[ "services" "kanidm" "enableServer" ]
[ "services" "kanidm" "server" "enable" ]
)
(mkRenamedOptionModule
[ "services" "kanidm" "serverSettings" ]
[ "services" "kanidm" "server" "settings" ]
)
(mkRenamedOptionModule
[ "services" "kanidm" "enableClient" ]
[ "services" "kanidm" "client" "enable" ]
)
(mkRenamedOptionModule
[ "services" "kanidm" "clientSettings" ]
[ "services" "kanidm" "client" "settings" ]
)
(mkRenamedOptionModule [ "services" "kanidm" "enablePam" ] [ "services" "kanidm" "unix" "enable" ])
(mkRenamedOptionModule
[ "services" "kanidm" "unixSettings" ]
[ "services" "kanidm" "unix" "settings" ]
)
];
options.services.kanidm = {
package = mkPackageOption pkgs "kanidm" {
example = "kanidm_1_8";
extraDescription = "Must be set to an explicit version.";
};
serverSettings = mkOption {
server.enable = mkEnableOption "the Kanidm server";
server.settings = mkOption {
type = types.submodule {
freeformType = settingsFormat.type;
@@ -270,7 +294,7 @@ in
domain = mkOption {
description = ''
The `domain` that Kanidm manages. Must be below or equal to the domain
specified in `serverSettings.origin`.
specified in `server.settings.origin`.
This can be left at `null`, only if your instance has the role `ReadOnlyReplica`.
While it is possible to change the domain later on, it requires extra steps!
Please consider the warnings and execute the steps described
@@ -345,7 +369,8 @@ in
'';
};
clientSettings = mkOption {
client.enable = mkEnableOption "the Kanidm client";
client.settings = mkOption {
type = types.submodule {
freeformType = settingsFormat.type;
@@ -363,7 +388,11 @@ in
'';
};
unixSettings = mkOption {
unix = {
enable = mkEnableOption "the Kanidm PAM and NSS integration";
sshIntegration = mkEnableOption "Kanidm SSH keys login";
};
unix.settings = mkOption {
type = types.submodule {
freeformType = settingsFormat.type;
@@ -394,7 +423,7 @@ in
instanceUrl = mkOption {
description = "The instance url to which the provisioning tool should connect.";
default = "https://localhost:${serverPort}";
defaultText = "https://localhost:<port from serverSettings.bindaddress>";
defaultText = "https://localhost:<port from server.settings.bindaddress>";
type = types.str;
};
@@ -671,11 +700,11 @@ in
};
};
config = mkIf (cfg.enableClient || cfg.enableServer || cfg.enablePam) {
config = mkIf (cfg.client.enable || cfg.server.enable || cfg.unix.enable) {
warnings = lib.optionals (cfg.package.eolMessage != "") [ cfg.package.eolMessage ];
services.kanidm = {
unixSettings.version = "2";
serverSettings.version = "2";
unix.settings.version = "2";
server.settings.version = "2";
};
assertions =
@@ -699,7 +728,7 @@ in
unknownGroups = subtractLists knownGroups groups;
in
{
assertion = (cfg.enableServer && cfg.provision.enable) -> unknownGroups == [ ];
assertion = (cfg.server.enable && cfg.provision.enable) -> unknownGroups == [ ];
message = "${opt} refers to unknown groups: ${toString unknownGroups}";
};
@@ -709,71 +738,71 @@ in
unknownEntities = subtractLists (attrNames entitiesByName) entities;
in
{
assertion = (cfg.enableServer && cfg.provision.enable) -> unknownEntities == [ ];
assertion = (cfg.server.enable && cfg.provision.enable) -> unknownEntities == [ ];
message = "${opt} refers to unknown entities: ${toString unknownEntities}";
};
in
[
{
assertion = cfg.enablePam -> !(cfg.unixSettings ? pam_allowed_login_groups);
assertion = cfg.unix.enable -> !(cfg.unix.settings ? pam_allowed_login_groups);
message = ''
<option>services.kanidm.unixSettings.pam_allowed_login_groups</option> has been renamed
to <option>services.kanidm.unixSettings.kanidm.pam_allowed_login_groups</option>.
<option>services.kanidm.unix.settings.pam_allowed_login_groups</option> has been renamed
to <option>services.kanidm.unix.settings.kanidm.pam_allowed_login_groups</option>.
Please change your usage.
'';
}
{
assertion =
!cfg.enableServer
|| ((cfg.serverSettings.tls_chain or null) == null)
|| (!isStorePath cfg.serverSettings.tls_chain);
!cfg.server.enable
|| ((cfg.server.settings.tls_chain or null) == null)
|| (!isStorePath cfg.server.settings.tls_chain);
message = ''
<option>services.kanidm.serverSettings.tls_chain</option> points to
<option>services.kanidm.server.settings.tls_chain</option> points to
a file in the Nix store. You should use a quoted absolute path to
prevent this.
'';
}
{
assertion =
!cfg.enableServer
|| ((cfg.serverSettings.tls_key or null) == null)
|| (!isStorePath cfg.serverSettings.tls_key);
!cfg.server.enable
|| ((cfg.server.settings.tls_key or null) == null)
|| (!isStorePath cfg.server.settings.tls_key);
message = ''
<option>services.kanidm.serverSettings.tls_key</option> points to
<option>services.kanidm.server.settings.tls_key</option> points to
a file in the Nix store. You should use a quoted absolute path to
prevent this.
'';
}
{
assertion = !cfg.enableClient || options.services.kanidm.clientSettings.isDefined;
assertion = !cfg.client.enable || options.services.kanidm.client.settings.isDefined;
message = ''
<option>services.kanidm.clientSettings</option> needs to be configured
<option>services.kanidm.client.settings</option> needs to be configured
if the client is enabled.
'';
}
{
assertion = !cfg.enablePam || options.services.kanidm.clientSettings.isDefined;
assertion = !cfg.unix.enable || options.services.kanidm.client.settings.isDefined;
message = ''
<option>services.kanidm.clientSettings</option> needs to be configured
<option>services.kanidm.client.settings</option> needs to be configured
for the PAM daemon to connect to the Kanidm server.
'';
}
{
assertion =
!cfg.enableServer
!cfg.server.enable
|| (
cfg.serverSettings.domain == null
-> cfg.serverSettings.role == "WriteReplica" || cfg.serverSettings.role == "WriteReplicaNoUI"
cfg.server.settings.domain == null
-> cfg.server.settings.role == "WriteReplica" || cfg.server.settings.role == "WriteReplicaNoUI"
);
message = ''
<option>services.kanidm.serverSettings.domain</option> can only be set if this instance
<option>services.kanidm.server.settings.domain</option> can only be set if this instance
is not a ReadOnlyReplica. Otherwise the db would inherit it from
the instance it follows.
'';
}
{
assertion = cfg.provision.enable -> cfg.enableServer;
message = "<option>services.kanidm.provision</option> requires <option>services.kanidm.enableServer</option> to be true";
assertion = cfg.provision.enable -> cfg.server.enable;
message = "<option>services.kanidm.provision</option> requires <option>services.kanidm.server.enable</option> to be true";
}
# If any secret is provisioned, the kanidm package must have some required patches applied to it
{
@@ -844,27 +873,28 @@ in
# At least one group must map to a value in each claim map
(mkIf (cfg.provision.extraJsonFile == null) {
assertion =
(cfg.provision.enable && cfg.enableServer)
(cfg.provision.enable && cfg.server.enable)
-> any (xs: xs != [ ]) (attrValues claimCfg.valuesByGroup);
message = "services.kanidm.provision.systems.oauth2.${oauth2}.claimMaps.${claim} does not specify any values for any group";
})
# Public clients cannot define a basic secret
{
assertion =
(cfg.provision.enable && cfg.enableServer && oauth2Cfg.public) -> oauth2Cfg.basicSecretFile == null;
(cfg.provision.enable && cfg.server.enable && oauth2Cfg.public)
-> oauth2Cfg.basicSecretFile == null;
message = "services.kanidm.provision.systems.oauth2.${oauth2} is a public client and thus cannot specify a basic secret";
}
# Public clients cannot disable PKCE
{
assertion =
(cfg.provision.enable && cfg.enableServer && oauth2Cfg.public)
(cfg.provision.enable && cfg.server.enable && oauth2Cfg.public)
-> !oauth2Cfg.allowInsecureClientDisablePkce;
message = "services.kanidm.provision.systems.oauth2.${oauth2} is a public client and thus cannot disable PKCE";
}
# Non-public clients cannot enable localhost redirects
{
assertion =
(cfg.provision.enable && cfg.enableServer && !oauth2Cfg.public)
(cfg.provision.enable && cfg.server.enable && !oauth2Cfg.public)
-> !oauth2Cfg.enableLocalhostRedirects;
message = "services.kanidm.provision.systems.oauth2.${oauth2} is a non-public client and thus cannot enable localhost redirects";
}
@@ -874,17 +904,17 @@ in
)
);
environment.systemPackages = mkIf cfg.enableClient [ cfg.package ];
environment.systemPackages = mkIf cfg.client.enable [ cfg.package ];
systemd.tmpfiles.settings."10-kanidm" = mkIf enableServerBackup {
${cfg.serverSettings.online_backup.path}.d = {
${cfg.server.settings.online_backup.path}.d = {
mode = "0700";
user = "kanidm";
group = "kanidm";
};
};
systemd.services.kanidm = mkIf cfg.enableServer {
systemd.services.kanidm = mkIf cfg.server.enable {
description = "kanidm identity management daemon";
wantedBy = [ "multi-user.target" ];
after = [ "network.target" ];
@@ -915,10 +945,10 @@ in
BindPaths =
[ ]
# To store backups
++ optional enableServerBackup cfg.serverSettings.online_backup.path
++ optional enableServerBackup cfg.server.settings.online_backup.path
++ optional (
cfg.enablePam && cfg.unixSettings ? home_mount_prefix
) cfg.unixSettings.home_mount_prefix;
cfg.unix.enable && cfg.unix.settings ? home_mount_prefix
) cfg.unix.settings.home_mount_prefix;
AmbientCapabilities = [ "CAP_NET_BIND_SERVICE" ];
CapabilityBoundingSet = [ "CAP_NET_BIND_SERVICE" ];
@@ -936,7 +966,7 @@ in
];
};
systemd.services.kanidm-unixd = mkIf cfg.enablePam {
systemd.services.kanidm-unixd = mkIf cfg.unix.enable {
description = "Kanidm PAM daemon";
wantedBy = [ "multi-user.target" ];
after = [ "network.target" ];
@@ -979,7 +1009,7 @@ in
environment.RUST_LOG = "info";
};
systemd.services.kanidm-unixd-tasks = mkIf cfg.enablePam {
systemd.services.kanidm-unixd-tasks = mkIf cfg.unix.enable {
description = "Kanidm PAM home management daemon";
wantedBy = [ "multi-user.target" ];
after = [
@@ -1033,25 +1063,26 @@ in
# These paths are hardcoded
environment.etc = mkMerge [
(mkIf cfg.enableServer { "kanidm/server.toml".source = serverConfigFile; })
(mkIf options.services.kanidm.clientSettings.isDefined {
(mkIf cfg.server.enable { "kanidm/server.toml".source = serverConfigFile; })
(mkIf options.services.kanidm.client.settings.isDefined {
"kanidm/config".source = clientConfigFile;
})
(mkIf cfg.enablePam { "kanidm/unixd".source = unixConfigFile; })
(mkIf cfg.unix.enable { "kanidm/unixd".source = unixConfigFile; })
];
system.nssModules = mkIf cfg.enablePam [ cfg.package ];
system.nssModules = mkIf cfg.unix.enable [ cfg.package ];
# Needs to be before "files" which is `mkBefore`
system.nssDatabases.group = mkOrder 490 (optional cfg.enablePam "kanidm");
system.nssDatabases.passwd = mkOrder 490 (optional cfg.enablePam "kanidm");
system.nssDatabases.group = mkOrder 490 (optional cfg.unix.enable "kanidm");
system.nssDatabases.passwd = mkOrder 490 (optional cfg.unix.enable "kanidm");
users.groups = mkMerge [
(mkIf cfg.enableServer { kanidm = { }; })
(mkIf cfg.enablePam { kanidm-unixd = { }; })
(mkIf cfg.server.enable { kanidm = { }; })
(mkIf cfg.unix.enable { kanidm-unixd = { }; })
(mkIf addKaniSshKeys { kanidm-authorized-keys = { }; })
];
users.users = mkMerge [
(mkIf cfg.enableServer {
(mkIf cfg.server.enable {
kanidm = {
description = "Kanidm server";
isSystemUser = true;
@@ -1059,14 +1090,34 @@ in
packages = [ cfg.package ];
};
})
(mkIf cfg.enablePam {
(mkIf cfg.unix.enable {
kanidm-unixd = {
description = "Kanidm PAM daemon";
isSystemUser = true;
group = "kanidm-unixd";
};
})
(mkIf addKaniSshKeys {
kanidm-authorized-keys = {
description = "Kanidm authorized keys delegate";
isSystemUser = true;
group = "kanidm-authorized-keys";
};
})
];
# AuthorizedKeysCommand is displeased with `/nix/store` permissions
services.openssh.settings = mkIf addKaniSshKeys {
AuthorizedKeysCommand = "${config.security.wrapperDir}/kanidm_ssh_authorizedkeys %u";
AuthorizedKeysCommandUser = "kanidm-authorized-keys";
};
security.wrappers.kanidm_ssh_authorizedkeys = mkIf addKaniSshKeys {
owner = "root";
group = "root";
permissions = "a+rx";
source = "${cfg.package}/bin/kanidm_ssh_authorizedkeys";
};
};
meta.maintainers = with lib.maintainers; [
@@ -293,9 +293,6 @@ let
) "'dbtableprefix' => '${toString c.dbtableprefix}',"}
${lib.optionalString (c.dbpassFile != null) "'dbpassword' => nix_read_secret('dbpass'),"}
'dbtype' => '${c.dbtype}',
${lib.concatStringsSep "\n" (
lib.mapAttrsToList (name: credential: "'${name}' => nix_read_secret('${name}'),") cfg.secrets
)}
${objectstoreConfig}
];
@@ -304,6 +301,12 @@ let
"impossible: this should never happen (decoding generated settings file %s failed)"
));
$CONFIG = array_replace_recursive($CONFIG, [
${lib.concatStringsSep "\n" (
lib.mapAttrsToList (name: credential: "'${name}' => nix_read_secret('${name}'),") cfg.secrets
)}
]);
${lib.optionalString (cfg.secretFile != null) ''
$CONFIG = array_replace_recursive($CONFIG, nix_read_secret_and_decode_json_file('secret_file'));
''}
+6 -1
View File
@@ -45,6 +45,11 @@ in
type = types.str;
description = "The Hostname under which the frontend is running.";
};
address = mkOption {
type = types.str;
default = "";
description = "The IP address to bind to.";
};
port = mkOption {
type = types.port;
default = 3456;
@@ -105,7 +110,7 @@ in
;
};
service = {
interface = ":${toString cfg.port}";
interface = "${cfg.address}:${toString cfg.port}";
frontendurl = "${cfg.frontendScheme}://${cfg.frontendHostname}/";
};
files = {
@@ -536,7 +536,7 @@ let
ExecStartPre = [ "${preStartScript}/bin/pre-start" ];
TimeoutStartSec = 0;
TimeoutStopSec = 120;
Restart = "always";
Restart = "on-failure";
}
// optionalAttrs (cfg.backend == "podman") {
Environment = "PODMAN_SYSTEMD_UNIT=%n";
+1
View File
@@ -837,6 +837,7 @@ in
kimai = runTest ./kimai.nix;
kismet = runTest ./kismet.nix;
kmonad = runTest ./kmonad.nix;
kmscon = runTest ./kmscon.nix;
knot = runTest ./knot.nix;
komga = runTest ./komga.nix;
komodo-periphery = runTest ./komodo-periphery.nix;
+18 -14
View File
@@ -25,21 +25,25 @@ in
{
services.kanidm = {
package = kanidmPackage;
enableServer = true;
serverSettings = {
origin = "https://${serverDomain}";
domain = serverDomain;
bindaddress = "[::]:443";
ldapbindaddress = "[::1]:636";
tls_chain = "${certsPath}/snakeoil.crt";
tls_key = "${certsPath}/snakeoil.key";
server = {
enable = true;
settings = {
origin = "https://${serverDomain}";
domain = serverDomain;
bindaddress = "[::]:443";
ldapbindaddress = "[::1]:636";
tls_chain = "${certsPath}/snakeoil.crt";
tls_key = "${certsPath}/snakeoil.key";
};
};
# So we can check whether provisioning did what we wanted
enableClient = true;
clientSettings = {
uri = "https://${serverDomain}";
verify_ca = true;
verify_hostnames = true;
client = {
enable = true;
settings = {
uri = "https://${serverDomain}";
verify_ca = true;
verify_hostnames = true;
};
};
};
@@ -289,7 +293,7 @@ in
# We need access to the config file in the test script.
filteredConfig = pkgs.lib.converge (pkgs.lib.filterAttrsRecursive (
_: v: v != null
)) nodes.provision.services.kanidm.serverSettings;
)) nodes.provision.services.kanidm.server.settings;
serverConfigFile = (pkgs.formats.toml { }).generate "server.toml" filteredConfig;
specialisations = "${nodes.provision.system.build.toplevel}/specialisation";
+22 -18
View File
@@ -29,14 +29,16 @@ in
{
services.kanidm = {
package = kanidmPackage;
enableServer = true;
serverSettings = {
origin = "https://${serverDomain}";
domain = serverDomain;
bindaddress = "[::]:443";
ldapbindaddress = "[::1]:636";
tls_chain = "${certsPath}/snakeoil.crt";
tls_key = "${certsPath}/snakeoil.key";
server = {
enable = true;
settings = {
origin = "https://${serverDomain}";
domain = serverDomain;
bindaddress = "[::]:443";
ldapbindaddress = "[::1]:636";
tls_chain = "${certsPath}/snakeoil.crt";
tls_key = "${certsPath}/snakeoil.key";
};
};
};
@@ -59,15 +61,17 @@ in
{
services.kanidm = {
package = kanidmPackage;
enableClient = true;
clientSettings = {
uri = "https://${serverDomain}";
verify_ca = true;
verify_hostnames = true;
};
enablePam = true;
unixSettings = {
kanidm.pam_allowed_login_groups = [ "shell" ];
client = {
enable = true;
settings = {
uri = "https://${serverDomain}";
verify_ca = true;
verify_hostnames = true;
};
unix = {
enable = true;
kanidm.pam_allowed_login_groups = [ "shell" ];
};
};
};
@@ -86,7 +90,7 @@ in
# We need access to the config file in the test script.
filteredConfig = pkgs.lib.converge (pkgs.lib.filterAttrsRecursive (
_: v: v != null
)) nodes.server.services.kanidm.serverSettings;
)) nodes.server.services.kanidm.server.settings;
serverConfigFile = (pkgs.formats.toml { }).generate "server.toml" filteredConfig;
in
''
+43
View File
@@ -0,0 +1,43 @@
{ ... }:
{
name = "kmscon";
nodes.machine =
{
pkgs,
lib,
...
}:
{
imports = [
./common/user-account.nix
];
services.kmscon = {
enable = true;
hwRender = true;
fonts = [
{
name = "JetBrainsMono Nerd Font";
package = pkgs.nerd-fonts.jetbrains-mono;
}
];
package = pkgs.kmscon;
};
};
enableOCR = true;
testScript = ''
machine.succeed(":")
# ^ this create a screen
with subtest("ensure we can open a tty"):
machine.wait_for_text("machine login:")
machine.send_chars("alice\n")
machine.wait_for_text("Password:")
machine.send_chars("foobar\n")
machine.wait_for_text("alice@machine")
machine.screenshot("tty.png")
'';
}
+119 -1
View File
@@ -8,10 +8,34 @@ with import ../../lib/testing-python.nix { inherit system pkgs; };
let
lib = pkgs.lib;
# Generate EAP certificates on the fly (CA, server, and client certs)
eapCerts = pkgs.runCommand "eap-certs" { buildInputs = [ pkgs.openssl ]; } ''
mkdir -p $out
# Create CA certificate
openssl req -x509 -newkey rsa:2048 -days 365000 -nodes \
-keyout $out/ca.key -out $out/ca.cert \
-subj "/CN=ExampleCA"
# Create server certificate
openssl req -newkey rsa:2048 -nodes \
-keyout $out/server.key -out server.csr \
-subj "/CN=server.example.com"
openssl x509 -req -in server.csr -CA $out/ca.cert -CAkey $out/ca.key \
-days 365000 -set_serial 100 -out $out/server.cert
# Create client certificate
openssl req -newkey rsa:2048 -nodes \
-keyout $out/client1.key -out client1.csr \
-subj "/CN=client1.example.com"
openssl x509 -req -in client1.csr -CA $out/ca.cert -CAkey $out/ca.key \
-days 365000 -set_serial 101 -out $out/client1.cert
'';
# this is intended as a client test since you shouldn't use NetworkManager for a router or server
# so using systemd-networkd for the router vm is fine in these tests.
router = import ./router.nix { networkd = true; };
qemu-common = import ../../lib/qemu-common.nix { inherit (pkgs) lib pkgs; };
clientConfig =
extraConfig:
lib.recursiveUpdate {
@@ -180,6 +204,100 @@ let
client.wait_until_succeeds("ping -c 1 fd00:1234:5678:1::23")
'';
};
eap =
let
toBase64Blob =
file:
"data:;base64,"
+ builtins.readFile (
pkgs.runCommand "base64" { } ''
${pkgs.coreutils}/bin/base64 -w0 ${file} > $out
''
);
in
{
name = "eap / 802.1x with secrets in blob encoding";
nodes = {
router = import ./router-eap.nix { inherit eapCerts; };
client = clientConfig {
networking.networkmanager.ensureProfiles.profiles.default = {
ipv4.method = "auto";
"802-1x" = {
eap = "tls";
identity = "client1.example.com";
ca-cert = toBase64Blob "${eapCerts}/ca.cert";
client-cert = toBase64Blob "${eapCerts}/client1.cert";
private-key = toBase64Blob "${eapCerts}/client1.key";
private-key-password-flags = "4";
};
};
networking.wireless = {
# it is a bit unfortunate that wpa-supplicant is equated with
# `wireless` when it also works for wired connections
enable = lib.mkOverride 9 true;
driver = "wired";
};
};
};
testScript = ''
start_all()
client.wait_for_unit("NetworkManager.service")
router.wait_for_unit("freeradius.service")
router.wait_for_unit("hostapd.service")
router.wait_until_succeeds("journalctl -b --unit freeradius.service | grep \"Sent Access-Accept\"")
router.wait_until_succeeds("journalctl -b --unit freeradius.service | grep \"TLS-Client-Cert-Common-Name := \\\"client1.example.com\\\"\"")
'';
};
eapFiles = {
name = "eap / 802.1x with secrets in stored in files";
nodes = {
router = import ./router-eap.nix { inherit eapCerts; };
client = clientConfig {
environment.etc = {
"wpa_supplicant/ca.cert" = {
source = "${eapCerts}/ca.cert";
user = "wpa_supplicant";
mode = "0400";
};
"wpa_supplicant/client1.cert" = {
source = "${eapCerts}/client1.cert";
user = "wpa_supplicant";
mode = "0400";
};
"wpa_supplicant/client1.key" = {
source = "${eapCerts}/client1.key";
user = "wpa_supplicant";
mode = "0400";
};
};
networking.networkmanager.ensureProfiles.profiles.default = {
ipv4.method = "auto";
"802-1x" = {
eap = "tls";
identity = "client1.example.com";
ca-cert = "/etc/wpa_supplicant/ca.cert";
client-cert = "/etc/wpa_supplicant/client1.cert";
private-key = "/etc/wpa_supplicant/client1.key";
private-key-password-flags = "4";
};
};
networking.wireless = {
enable = lib.mkOverride 9 true;
driver = "wired";
};
};
};
testScript = ''
start_all()
client.wait_for_unit("NetworkManager.service")
router.wait_for_unit("freeradius.service")
router.wait_for_unit("hostapd.service")
router.wait_until_succeeds("journalctl -b --unit freeradius.service | grep \"Sent Access-Accept\"")
router.wait_until_succeeds("journalctl -b --unit freeradius.service | grep \"TLS-Client-Cert-Common-Name := \\\"client1.example.com\\\"\"")
'';
};
};
in
lib.mapAttrs (lib.const (
+146
View File
@@ -0,0 +1,146 @@
{ eapCerts }:
{ config, pkgs, ... }:
let
radiusDir =
let
eapConfig = builtins.toFile "eap.conf" ''
eap {
default_eap_type = tls
timer_expire = 60
ignore_unknown_eap_types = no
tls {
# Path to CA certificate
ca_file = ''${certdir}/ca.cert
# Path to server certificate and private key
certificate_file = ''${certdir}/server.cert
private_key_file = ''${certdir}/server.key
# Enable mutual authentication
require_client_cert = yes
# Cipher suite (example)
ciphers = "DEFAULT"
}
}
'';
clientsConfig = builtins.toFile "client.conf" ''
client localhost {
ipaddr = 127.0.0.1
secret = insecure
require_message_authenticator = no
}
'';
# sample users file, not used for eap-tls, only for e.g. eap-ttls
usersConfig = builtins.toFile "users.conf" ''
testuser Cleartext-Password := "supersecret"
'';
# this constructs the freeradius config directory
# it starts with the upstream config, then overwrites certain files
# and uses the generated certs from eapCerts
buildScript = pkgs.writeShellApplication {
name = "builder";
runtimeInputs = [ pkgs.coreutils ];
# https://www.shellcheck.net/wiki/SC2154 -- out is referenced but not assigned.
excludeShellChecks = [ "SC2154" ];
text = ''
cp --recursive ${pkgs.freeradius}/etc/* "$out"
chmod +w -R "$out"
cp --force ${eapCerts}/ca.cert "$out/certs/ca.cert"
cp --force ${eapCerts}/ca.key "$out/certs/ca.key"
cp --force ${eapCerts}/server.cert "$out/certs/server.cert"
cp --force ${eapCerts}/server.key "$out/certs/server.key"
cp --force ${eapConfig} "$out/mods-enabled/eap"
cp --force ${usersConfig} "$out/users"
cp --force ${clientsConfig} "$out/clients.conf"
'';
};
in
derivation {
name = "radius_dir";
builder = "${pkgs.bash}/bin/bash";
args = [ "${buildScript}/bin/builder" ];
inherit (pkgs) system;
};
inherit (pkgs) lib;
vlanIfs = lib.range 1 (lib.length config.virtualisation.vlans);
in
{
virtualisation.vlans = [
1
2
3
];
boot.kernel.sysctl."net.ipv6.conf.all.forwarding" = true;
networking = {
useDHCP = false;
useNetworkd = true;
firewall.checkReversePath = true;
firewall.allowedUDPPorts = [ 547 ];
interfaces = lib.mkOverride 0 (
lib.listToAttrs (
lib.forEach vlanIfs (
n:
lib.nameValuePair "eth${toString n}" {
ipv4.addresses = [
{
address = "192.168.${toString n}.1";
prefixLength = 24;
}
];
ipv6.addresses = [
{
address = "fd00:1234:5678:${toString n}::1";
prefixLength = 64;
}
];
}
)
)
);
};
services.freeradius = {
enable = true;
configDir = radiusDir;
debug = true;
};
# upstream nixpkgs hostapd is focused on Wifi
systemd.services.hostapd =
let
hostapdConfig = builtins.toFile "hostapd.conf" ''
interface=eth1
driver=wired
logger_stdout=-1
logger_stdout_level=1
debug=2
dump_file=/tmp/hostapd.dump
ieee8021x=1
eap_reauth_period=3600
use_pae_group_addr=1
##### RADIUS configuration ####################################################
own_ip_addr=127.0.0.1
nas_identifier=ap.example.com
auth_server_addr=127.0.0.1
auth_server_port=1812
auth_server_shared_secret=insecure
'';
in
{
description = "IEEE 802.11 Host Access-Point Daemon";
wantedBy = [ "multi-user.target" ];
serviceConfig = {
ExecStart = "${pkgs.hostapd}/bin/hostapd ${hostapdConfig}";
Restart = "always";
ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
RuntimeDirectory = "hostapd";
};
};
}
+6 -6
View File
@@ -6,9 +6,9 @@
pkg-config,
glfw,
libvgm,
libX11,
libXau,
libXdmcp,
libx11,
libxau,
libxdmcp,
cppunit,
}:
@@ -55,9 +55,9 @@ stdenv.mkDerivation {
libvgm
]
++ lib.optionals stdenv.hostPlatform.isLinux [
libX11
libXau
libXdmcp
libx11
libxau
libxdmcp
];
checkInputs = [
@@ -7,8 +7,8 @@
ninja,
lv2,
sord,
libX11,
libXext,
libx11,
libxext,
glew,
lv2lint,
pname,
@@ -40,8 +40,8 @@ stdenv.mkDerivation {
buildInputs = [
lv2
sord
libX11
libXext
libx11
libxext
glew
lv2lint
]
@@ -6,8 +6,8 @@
alsa-utils,
fltk,
libjack2,
libXft,
libXpm,
libxft,
libxpm,
libjpeg,
libpng,
libsamplerate,
@@ -37,8 +37,8 @@ stdenv.mkDerivation rec {
alsa-utils
fltk
libjack2
libXft
libXpm
libxft
libxpm
libjpeg
libpng
libsamplerate
@@ -36,8 +36,8 @@
fltk,
libGL,
libjpeg,
libX11,
libXpm,
libx11,
libxpm,
ntk,
# Test dependencies
@@ -116,16 +116,16 @@ stdenv.mkDerivation rec {
++ lib.optionals (guiModule == "fltk") [
fltk
libjpeg
libXpm
libxpm
]
++ lib.optionals (guiModule == "ntk") [
ntk
cairo
libXpm
libxpm
]
++ lib.optionals (guiModule == "zest") [
libGL
libX11
libx11
];
cmakeFlags = [
@@ -8,7 +8,7 @@
ruby,
libGL,
libuv,
libX11,
libx11,
}:
stdenv.mkDerivation rec {
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
buildInputs = [
libGL
libuv
libX11
libx11
];
# Force optimization to fix:
@@ -7,7 +7,7 @@
pkg-config,
qttools,
libxcb,
libXau,
libxau,
pam,
qtbase,
qtdeclarative,
@@ -62,7 +62,7 @@ stdenv.mkDerivation (finalAttrs: {
buildInputs = [
libxcb
libXau
libxau
pam
qtbase
qtdeclarative
@@ -25,12 +25,12 @@
fontsConf,
fontconfig,
freetype,
libX11,
libXext,
libXi,
libXrandr,
libXrender,
libXtst,
libx11,
libxext,
libxi,
libxrandr,
libxrender,
libxtst,
makeFontsConf,
makeWrapper,
ncurses5,
@@ -107,14 +107,14 @@ let
# Crash at startup without these
fontconfig
freetype
libXext
libXi
libXrender
libXtst
libX11
libxext
libxi
libxrender
libxtst
libx11
# Support multiple monitors
libXrandr
libxrandr
# For GTKLookAndFeel
gtk2
@@ -34,7 +34,7 @@
libpng,
libuuid,
libsecret,
libX11,
libx11,
libxcb,
libxkbcommon,
mesa-demos,
@@ -44,15 +44,15 @@
libxcb-image,
libxcb-cursor,
libxkbfile,
libXcomposite,
libXcursor,
libXdamage,
libXext,
libXfixes,
libXi,
libXrandr,
libXrender,
libXtst,
libxcomposite,
libxcursor,
libxdamage,
libxext,
libxfixes,
libxi,
libxrandr,
libxrender,
libxtst,
makeWrapper,
ncurses5,
nspr,
@@ -141,10 +141,10 @@ let
# Crash at startup without these
fontconfig
freetype
libXext
libXi
libXrender
libXtst
libxext
libxi
libxrender
libxtst
libsecret
# No crash, but attempted to load at startup
@@ -159,7 +159,7 @@ let
zlib
pkgsi686Linux.zlib
# Support multiple monitors
libXrandr
libxrandr
# For Android emulator
alsa-lib
@@ -168,7 +168,7 @@ let
libbsd
libpulseaudio
libuuid
libX11
libx11
libxcb
libxkbcommon
libxcb-wm
@@ -179,10 +179,10 @@ let
libice
libsm
libxkbfile
libXcomposite
libXcursor
libXdamage
libXfixes
libxcomposite
libxcursor
libxdamage
libxfixes
libGL
libdrm
libpng
@@ -5,7 +5,7 @@
coreutils,
lazarus,
fpc,
libX11,
libx11,
# GTK2/3
pango,
@@ -68,7 +68,7 @@ stdenv.mkDerivation rec {
++ lib.optional (widgetset == "qt5") libsForQt5.wrapQtAppsHook;
buildInputs = [
libX11
libx11
]
++ lib.optionals (lib.hasPrefix "gtk" widgetset) [
pango
@@ -4,14 +4,14 @@
makeDesktopItem,
freetype,
fontconfig,
libX11,
libXrender,
libx11,
libxrender,
zlib,
jdk,
glib,
glib-networking,
gtk,
libXtst,
libxtst,
libsecret,
gsettings-desktop-schemas,
webkitgtk_4_1,
@@ -52,9 +52,9 @@ stdenv.mkDerivation rec {
gsettings-desktop-schemas
gtk
jdk
libX11
libXrender
libXtst
libx11
libxrender
libxtst
libsecret
zlib
]
@@ -73,8 +73,8 @@ stdenv.mkDerivation rec {
lib.makeLibraryPath [
freetype
fontconfig
libX11
libXrender
libx11
libxrender
zlib
]
} $libCairo
@@ -91,7 +91,7 @@ stdenv.mkDerivation rec {
[
glib
gtk
libXtst
libxtst
libsecret
]
++ lib.optional (webkitgtk_4_1 != null) webkitgtk_4_1
@@ -6,12 +6,12 @@
makeWrapper,
freetype,
fontconfig,
libX11,
libXrender,
libx11,
libxrender,
zlib,
glib,
gtk3,
libXtst,
libxtst,
jdk,
gsettings-desktop-schemas,
webkitgtk_4_1 ? null, # for internal web browser
@@ -56,13 +56,13 @@ let
makeDesktopItem
freetype
fontconfig
libX11
libXrender
libx11
libxrender
zlib
jdk
glib
gtk
libXtst
libxtst
gsettings-desktop-schemas
webkitgtk_4_1
makeWrapper
+13 -13
View File
@@ -30,12 +30,12 @@
harfbuzz,
imagemagick,
jansson,
libXaw,
libXcursor,
libXft,
libXi,
libXpm,
libXrandr,
libxaw,
libxcursor,
libxft,
libxi,
libxpm,
libxrandr,
libgccjit,
libjpeg,
libotf,
@@ -314,7 +314,7 @@ stdenv.mkDerivation (finalAttrs: {
++ lib.optionals withPgtk [
giflib
gtk3
libXpm
libxpm
libjpeg
libpng
librsvg
@@ -335,9 +335,9 @@ stdenv.mkDerivation (finalAttrs: {
++ lib.optionals withX [
Xaw3d
giflib
libXaw
libXpm
libXrandr
libxaw
libxpm
libxrandr
libjpeg
libpng
librsvg
@@ -347,10 +347,10 @@ stdenv.mkDerivation (finalAttrs: {
cairo
]
++ lib.optionals (withX && !withCairo) [
libXft
libxft
]
++ lib.optionals withXinput2 [
libXi
libxi
]
++ lib.optionals withWebkitgtk [
webkitgtk_4_1
@@ -485,7 +485,7 @@ stdenv.mkDerivation (finalAttrs: {
'';
postFixup = lib.optionalString (stdenv.hostPlatform.isLinux && withX && toolkit == "lucid") ''
patchelf --add-rpath ${lib.makeLibraryPath [ libXcursor ]} $out/bin/emacs
patchelf --add-rpath ${lib.makeLibraryPath [ libxcursor ]} $out/bin/emacs
patchelf --add-needed "libXcursor.so.1" "$out/bin/emacs"
'';
@@ -21,7 +21,7 @@
glibcLocales,
fontconfig,
libGL,
libX11,
libx11,
jdk,
vmopts ? null,
@@ -85,7 +85,7 @@ lib.extendMkDerivation {
stdenv.cc.cc
fontconfig
libGL
libX11
libx11
];
nativeBuildInputs = nativeBuildInputs ++ [
@@ -12,7 +12,7 @@
musl,
libice,
libsm,
libX11,
libx11,
dotnetCorePackages,
libxcb-keysyms,
expat,
@@ -75,7 +75,7 @@ in
# Avalonia dependencies needed for dotMemory
libice
libsm
libX11
libx11
];
# NOTE: meta attrs are used for the Linux desktop entries and may cause rebuilds when changed
+14 -14
View File
@@ -16,14 +16,14 @@
perl,
tcl,
ruby,
libX11,
libXext,
libx11,
libxext,
libsm,
libXpm,
libXt,
libXaw,
libXau,
libXmu,
libxpm,
libxt,
libxaw,
libxau,
libxmu,
libsodium,
libice,
wayland-scanner,
@@ -179,13 +179,13 @@ stdenv.mkDerivation {
++ lib.optionals (guiSupport == "gtk2" || guiSupport == "gtk3") [
libsm
libice
libX11
libXext
libXpm
libXt
libXaw
libXau
libXmu
libx11
libxext
libxpm
libxt
libxaw
libxau
libxmu
]
++ lib.optional (guiSupport == "gtk2") gtk2-x11
++ lib.optional (guiSupport == "gtk3") gtk3-x11
@@ -15188,6 +15188,19 @@ final: prev: {
meta.hydraPlatforms = [ ];
};
telescope-ast-grep-nvim = buildVimPlugin {
pname = "telescope-ast-grep.nvim";
version = "0-unstable-2023-11-05";
src = fetchFromGitHub {
owner = "ray-x";
repo = "telescope-ast-grep.nvim";
rev = "fa7d7fa5c723b57bba333429224e99fde2a63632";
hash = "sha256-WPzFG8gdf0XzxsFkxgseOy6GQBu9C2KDOXeasdct0F8=";
};
meta.homepage = "https://github.com/ray-x/telescope-ast-grep.nvim/";
meta.hydraPlatforms = [ ];
};
telescope-asynctasks-nvim = buildVimPlugin {
pname = "telescope-asynctasks.nvim";
version = "0-unstable-2022-04-09";
@@ -1166,6 +1166,7 @@ https://github.com/wellle/targets.vim/,,
https://github.com/tbabej/taskwiki/,,
https://github.com/tomtom/tcomment_vim/,,
https://github.com/nvim-telekasten/telekasten.nvim/,,
https://github.com/ray-x/telescope-ast-grep.nvim/,HEAD,
https://github.com/GustavoKatel/telescope-asynctasks.nvim/,,
https://github.com/nvim-telescope/telescope-cheat.nvim/,,
https://github.com/fannheyward/telescope-coc.nvim/,,
@@ -8,8 +8,8 @@ vscode-utils.buildVscodeMarketplaceExtension {
mktplcRef = {
name = "claude-code";
publisher = "anthropic";
version = "2.1.25";
hash = "sha256-9x9wDngiHfjUHTsUEraF7pUjbHlmcT7VotiPV9bPwIo=";
version = "2.1.34";
hash = "sha256-qCvgb2fs0t3hlI36egvlZYem8CzUKIAipaEZOumDtWk=";
};
postInstall = ''
@@ -481,8 +481,8 @@ let
mktplcRef = {
publisher = "ban";
name = "spellright";
version = "3.0.146";
hash = "sha256-gvj5vWA8VAy5Ohtkn9vsx7MswgVAcxYOLm+ifKhjLz0=";
version = "3.0.148";
hash = "sha256-h1xKEpKg4j7mGw3EQQDPZBDBDY/xjk2lsGk0ktd2ems=";
};
meta = {
description = "Visual Studio Code extension for Spellchecker";
@@ -675,8 +675,8 @@ let
mktplcRef = {
name = "markdown-mermaid";
publisher = "bierner";
version = "1.31.0";
hash = "sha256-7KpyUXR3a7ZD9bcdJ4t5HRjSAlUww8q6XSOcxHCN4Cw=";
version = "1.31.1";
hash = "sha256-K3UXNT3MpGlhyHcx0AYAkCPEJIbYIu3e/ucIAQLwoEQ=";
};
meta = {
changelog = "https://marketplace.visualstudio.com/items/bierner.markdown-mermaid/changelog";
@@ -727,8 +727,8 @@ let
mktplcRef = {
name = "vscode-intelephense-client";
publisher = "bmewburn";
version = "1.16.1";
hash = "sha256-dcfFtVnk5qyCeiM0nZwscKQZDhUXIkg1TJxVUuzA69Q=";
version = "1.16.5";
hash = "sha256-ppWHZFQfC2bje1rNZh8Pu+BKQdAI60kpxRwUg8EfD8M=";
};
meta = {
description = "PHP code intelligence for Visual Studio Code";
@@ -1727,8 +1727,8 @@ let
mktplcRef = {
name = "foam-vscode";
publisher = "foam";
version = "0.29.1";
hash = "sha256-U5DkTMNLoE9TDCa+Womml9ilv162FqVsnkyGsJ80+Ag=";
version = "0.29.2";
hash = "sha256-6Bga51DCHaVn+UV5RPCE7uFsAei/F0xN4Mk4dm52FWs=";
};
meta = {
changelog = "https://marketplace.visualstudio.com/items/foam.foam-vscode/changelog";
@@ -1965,8 +1965,8 @@ let
mktplcRef = {
name = "gitlab-workflow";
publisher = "gitlab";
version = "6.67.5";
hash = "sha256-xttk9mP5XIeeymE0l0TI+JsC862yOaEuwb6HscDyRMU=";
version = "6.68.1";
hash = "sha256-ZNdtaVo3KFGhGX99fGv/aSUcjy636W5e4DctPCMrRtY=";
};
meta = {
description = "GitLab extension for Visual Studio Code";
@@ -4840,8 +4840,8 @@ let
mktplcRef = {
name = "uiua-vscode";
publisher = "uiua-lang";
version = "0.0.67";
hash = "sha256-Q/wJZ+ObCU+hRpZZKQGQtdt99/I6QHkSuHlNy7oe5Pk=";
version = "0.0.68";
hash = "sha256-5qzMT7aue8PO4mpMsoBc/18J7yhxrmKwA+KE+LeK0mU=";
};
meta = {
description = "VSCode language extension for Uiua";
@@ -5215,8 +5215,8 @@ let
mktplcRef = {
name = "csharp-ls";
publisher = "vytautassurvila";
version = "0.0.29";
hash = "sha256-0gh7q/F69OD/soRuZHHxC9PRtOXJmjZjei6IbV82Rgs=";
version = "0.0.30";
hash = "sha256-BVSazrQxVm4yYBVdtFP3Aojl06xI2msFXIGw64LeePY=";
};
meta = {
changelog = "https://github.com/vytautassurvila/vscode-csharp-ls/blob/master/CHANGELOG.md";
@@ -13,7 +13,7 @@ let
buildVscodeLanguagePack =
{
language,
version ? "1.105.2025100809",
version ? "1.108.2026012809",
hash,
}:
buildVscodeMarketplaceExtension {
@@ -41,71 +41,71 @@ in
# French
vscode-language-pack-fr = buildVscodeLanguagePack {
language = "fr";
hash = "sha256-HFpkXUYz7//5KlKe1NjiT/KBFBar9H5ivpltqGOTHJo=";
hash = "sha256-1+aWgvoXR/FqhnIn3OrLOC11jLXVWlO2yecpzr2Waww=";
};
# Italian
vscode-language-pack-it = buildVscodeLanguagePack {
language = "it";
hash = "sha256-YD1jTB9VzWF51QaFPRsEBC1pMkgrs2cl0HFA/PFz3ro=";
hash = "sha256-t6jN3qok7B4/G/IjEXD6THO6c+8X+1gxny6W7qdh5mI=";
};
# German
vscode-language-pack-de = buildVscodeLanguagePack {
language = "de";
hash = "sha256-hIw0nFdYgcyOuJW8k7HRS0sKc0Gsuh7YWyLwQ3Z1FkU=";
hash = "sha256-rZM/T1gbYrtcHNLW0itNdhKcRR938PwK5VBN0xLDIWg=";
};
# Spanish
vscode-language-pack-es = buildVscodeLanguagePack {
language = "es";
hash = "sha256-iO+1Lq/vXkMCGNnj9CovBhLPtbuJtGHSfQnjXypRBcw=";
hash = "sha256-PG3oOCjWRgh1ox6GAPRdZdf8QNP1JsJZznJnM+2Ihl0=";
};
# Russian
vscode-language-pack-ru = buildVscodeLanguagePack {
language = "ru";
hash = "sha256-HxTStM+g/XKJH1twNYMu/V7IM7vBlYF4mfcemV+oOQI=";
hash = "sha256-RPpNet015xGnOszcKfehP9VxnfDAnQJ2A62rVtNBDew=";
};
# Chinese (Simplified)
vscode-language-pack-zh-hans = buildVscodeLanguagePack {
language = "zh-hans";
hash = "sha256-nCPu7pEXpM22M+2IMtuPgxzyEF3R6MPm2CVZAccPdAU=";
hash = "sha256-pm1dCoK4YM8XBM/O6p42R4PYy5f95sLcECHJMAKFt9Q=";
};
# Chinese (Traditional)
vscode-language-pack-zh-hant = buildVscodeLanguagePack {
language = "zh-hant";
hash = "sha256-JKKqrwGn/EMDMot1cIgLpekUVQf4IY+snENeKoE5jYU=";
hash = "sha256-cSM+2W5aCUA77kxgV7vyk7KAoSlkeT+y56ziIPjP9II=";
};
# Japanese
vscode-language-pack-ja = buildVscodeLanguagePack {
language = "ja";
hash = "sha256-6OWcr/XnJsOvRFho+P5Z+ppuAC8d08I3s0YWnLhH874=";
hash = "sha256-UfMMLKHi48Qhgm8PXFAfGFQFX6e8vQsl/RYqha42TOc=";
};
# Korean
vscode-language-pack-ko = buildVscodeLanguagePack {
language = "ko";
hash = "sha256-VqlAaS679KF0ZKlzDT55FIu5GKyzU41y1ptX7t88UHc=";
hash = "sha256-gneZF4CIEDy88juFZBiB9/o/rzTnu2du4aiZ+NH+XlE=";
};
# Czech
vscode-language-pack-cs = buildVscodeLanguagePack {
language = "cs";
hash = "sha256-yFtp+XK7Y2Fi/uYqsh88d3hCRcQJhJOLWvs2pQ05ddo=";
hash = "sha256-ojh2KBEpTTJsAgM2RilGO58kkcWgaFf5nkiiZ4gYNtg=";
};
# Portuguese (Brazil)
vscode-language-pack-pt-br = buildVscodeLanguagePack {
language = "pt-BR";
hash = "sha256-2zM8E832ioa6fqnWzPq+PA/eiEAo8FDNNH/4HJPZIcI=";
hash = "sha256-n55nI9gCxNpr6Pq70qJnmgp2rs0Gcblirg4SaeXAXtE=";
};
# Turkish
vscode-language-pack-tr = buildVscodeLanguagePack {
language = "tr";
hash = "sha256-7ghSb/sQM64wfsRRtS+quAqJEvUdIXAcPCQKJbsDXKc=";
hash = "sha256-S6orhrfCaA4aeLhW3+rdaJb4X8h7IUjfBC9A+QgiQgk=";
};
# Polish
vscode-language-pack-pl = buildVscodeLanguagePack {
language = "pl";
hash = "sha256-/joZpsIAY9Ut67wAbzNTraBgBgtjDAeRoq8PUbP3rSc=";
hash = "sha256-YoNl44f2jEYXIhDKz+xU5fzt/JD6l86dtbqXFKOzHrk=";
};
# Pseudo Language
vscode-language-pack-qps-ploc = buildVscodeLanguagePack {
language = "qps-ploc";
hash = "sha256-xERSh5N5Mbyc977ji0n91ra0RV9ZldJKBzc3IWYWYyo=";
hash = "sha256-onc+lk6itrWP5J17eVLIMcpG1gDM/rpTzKci8m2uBcY=";
};
}
@@ -7,8 +7,8 @@ vscode-utils.buildVscodeMarketplaceExtension {
mktplcRef = {
name = "debugpy";
publisher = "ms-python";
version = "2025.16.0";
hash = "sha256-QPIDUzzwIfzyicsCwqU2u6hVSjCJMInHhHMBqvL8tYs=";
version = "2025.18.0";
hash = "sha256-UegvlhgIjbwv9SgZIdtzX8FDOL9qjBLOFm0jaTexNrQ=";
};
meta = {
@@ -7,8 +7,8 @@ vscode-utils.buildVscodeMarketplaceExtension {
mktplcRef = {
publisher = "ndonfris";
name = "fish-lsp";
version = "0.1.18";
hash = "sha256-skNFNiVx7g/lpsxegTync9yEjt+h/Eb+5TnByeLXSPY=";
version = "0.1.19";
hash = "sha256-xvt8pI+Esqm4klOzSa2GPd4y00lTED5uN+VFCHTY56w=";
};
meta = {
@@ -10,10 +10,10 @@
gtk2,
alsa-lib,
libsm,
libX11,
libx11,
gdk-pixbuf,
pango,
libXinerama,
libxinerama,
mpg123,
runtimeShell,
}:
@@ -27,10 +27,10 @@ let
gtk2
alsa-lib
libsm
libX11
libx11
gdk-pixbuf
pango
libXinerama
libxinerama
];
in
@@ -4,7 +4,7 @@
fetchFromGitHub,
libGL,
libGLU,
libX11,
libx11,
mkLibretroCore,
}:
mkLibretroCore {
@@ -29,7 +29,7 @@ mkLibretroCore {
extraBuildInputs = [
libGL
libGLU
libX11
libx11
];
extraNativeBuildInputs = [ cmake ];
@@ -5,13 +5,13 @@
}:
mkLibretroCore {
core = "snes9x";
version = "0-unstable-2026-01-26";
version = "0-unstable-2026-02-03";
src = fetchFromGitHub {
owner = "snes9xgit";
repo = "snes9x";
rev = "830d8552551d7a71e9d084f727dc15cf15d9796c";
hash = "sha256-Xu3s1z4Pab71D2orv7HyL8b3E59AnQEAil0XeWKfKdw=";
rev = "02f642cdadfaa8f9fa7ec674382d6c70a8b534d6";
hash = "sha256-4BqWxchxdq8pbWw3Iql786Iu/OY5VMT1pF8wowI26h0=";
};
makefile = "Makefile";
+4 -4
View File
@@ -12,8 +12,8 @@
fontconfig,
glm,
installShellFiles,
libXi,
libXinerama,
libxi,
libxinerama,
libjpeg,
libpcap,
libpulseaudio,
@@ -93,8 +93,8 @@ stdenv.mkDerivation rec {
++ lib.optionals stdenv.hostPlatform.isLinux [
alsa-lib
libpulseaudio
libXinerama
libXi
libxinerama
libxi
fontconfig
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
+4 -5
View File
@@ -18,7 +18,7 @@
pkg-config,
nixosTests,
supportFlags,
wineRelease,
pnameSuffix ? "",
patches,
moltenvk,
buildScript ? null,
@@ -95,9 +95,7 @@ stdenv.mkDerivation (
// {
inherit version src;
pname =
prevName
+ lib.optionalString (wineRelease != "stable" && wineRelease != "unstable") "-${wineRelease}";
pname = prevName + pnameSuffix;
# Fixes "Compiler cannot create executables" building wineWow with mingwSupport
strictDeps = true;
@@ -267,7 +265,8 @@ stdenv.mkDerivation (
)
)
);
env.NIX_CFLAGS_COMPILE = lib.optionalString (wineRelease == "yabridge") "-std=gnu17";
# Just here to avoid rebuilds for now.
env.NIX_CFLAGS_COMPILE = "";
# Don't shrink the ELF RPATHs in order to keep the extra RPATH
# elements specified above.
+42 -7
View File
@@ -48,11 +48,38 @@
}:
let
wine-build =
build:
lib.getAttr build (
callPackage ./packages.nix {
inherit wineRelease;
sources = callPackage ./sources.nix { };
# Map user-facing release names to sources, pname suffix, and staging flag
releaseInfo = {
stable = {
src = sources.stable;
useStaging = false;
};
unstable = {
src = sources.unstable;
useStaging = false;
};
# Many versions have a "staging" variant, but when we say "staging",
# the version we want to use is "unstable".
staging = {
src = sources.unstable;
pnameSuffix = "-staging";
useStaging = true;
};
# "yabridge" enables staging too --- we are not interested in
# yabridge without the staging patches applied.
yabridge = {
src = sources.yabridge;
pnameSuffix = "-yabridge";
useStaging = true;
};
};
baseWine = lib.getAttr wineBuild (
callPackage ./packages.nix (
releaseInfo.${wineRelease}
// {
supportFlags = {
inherit
alsaSupport
@@ -90,6 +117,14 @@ let
};
inherit moltenvk;
}
);
)
);
in
wine-build wineBuild
if wineRelease == "yabridge" then
baseWine.overrideAttrs (old: {
env = old.env // {
NIX_CFLAGS_COMPILE = "-std=gnu17";
};
})
else
baseWine
+7 -18
View File
@@ -7,7 +7,9 @@
callPackage,
replaceVars,
moltenvk,
wineRelease ? "stable",
src,
pnameSuffix ? "",
useStaging ? false,
supportFlags,
# Staging native build deps
autoconf,
@@ -18,19 +20,6 @@
}:
let
sources = callPackage ./sources.nix { };
# "staging" of course enables staging, but for "yabridge" we do too
# --- we are not interested in yabridge without the staging patches
# applied.
useStaging = wineRelease == "staging" || wineRelease == "yabridge";
# Map wineRelease to actual source. Many versions have a "staging"
# variant, but when we say "staging", the version we want to use is
# "unstable".
baseRelease = if wineRelease == "staging" then "unstable" else wineRelease;
src = lib.getAttr baseRelease (callPackage ./sources.nix { });
inherit (src)
version
patches
@@ -48,7 +37,7 @@ in
supportFlags
patches
moltenvk
wineRelease
pnameSuffix
useStaging
# Forcing these `nativeBuildInputs` used in the `staging` to come
# from ambient `pkgs`, rather than being provided by
@@ -76,7 +65,7 @@ in
supportFlags
patches
moltenvk
wineRelease
pnameSuffix
useStaging
;
pkgArches = [ pkgs ];
@@ -98,7 +87,7 @@ in
supportFlags
patches
moltenvk
wineRelease
pnameSuffix
useStaging
;
stdenv = stdenv_32bit;
@@ -132,7 +121,7 @@ in
version
patches
moltenvk
wineRelease
pnameSuffix
useStaging
;
supportFlags = supportFlags // {
+2 -2
View File
@@ -254,8 +254,8 @@ rec {
winetricks = fetchFromGitHub rec {
# https://github.com/Winetricks/winetricks/releases
version = "20250102";
hash = "sha256-Km2vVTYsLs091cjmNTW8Kqku3vdsEA0imTtZfqZWDQo=";
version = "20260125";
hash = "sha256-uIBVESebsH7rXnxWd/qlrZxcG7Y486PctHzcLz29HDk=";
owner = "Winetricks";
repo = "winetricks";
rev = version;
+48 -32
View File
@@ -2,20 +2,23 @@
lib,
stdenv,
callPackage,
perl,
which,
coreutils,
zenity,
curl,
cabextract,
unzip,
p7zip,
gnused,
gnugrep,
makeWrapper,
bash,
cabextract,
coreutils,
curl,
gawk,
gnugrep,
gnused,
gnutar,
gzip,
p7zip,
perl,
unzip,
which,
zenity,
unrar-free,
versionCheckHook,
}:
stdenv.mkDerivation rec {
@@ -27,36 +30,49 @@ stdenv.mkDerivation rec {
buildInputs = [
perl
which
];
# coreutils is for sha1sum
pathAdd = lib.makeBinPath [
perl
which
coreutils
zenity
curl
cabextract
unzip
p7zip
gnused
gnugrep
bash
gawk
gnutar
gzip
makeWrapper
];
makeFlags = [ "PREFIX=$(out)" ];
doCheck = false; # requires "bashate"
postInstall = ''
sed -i \
-e '2i PATH="${pathAdd}:$PATH"' \
"$out/bin/winetricks"
doInstallCheck = true;
nativeInstallCheckInputs = [ versionCheckHook ];
postPatch = ''
patchShebangs src/winetricks
substituteInPlace src/winetricks \
--replace-fail 'command -v unrar' 'command -v unrar-free' \
--replace-fail 'w_try unrar' 'w_try unrar-free'
'';
postInstall =
let
runtimeDependencies = [
bash
cabextract
coreutils
curl
gawk
gnugrep
gnused
gnutar
gzip
p7zip
perl
unrar-free
unzip
which
zenity
];
in
''
wrapProgram $out/bin/winetricks \
--prefix PATH : "${lib.makeBinPath runtimeDependencies}" \
--set WINETRICKS_LATEST_VERSION_CHECK "disabled"
'';
passthru = {
inherit (src) updateScript;
};
+2 -2
View File
@@ -6,7 +6,7 @@
libGL,
libGLU,
libpng,
libX11,
libx11,
nasm,
pkg-config,
zlib,
@@ -35,7 +35,7 @@ stdenv.mkDerivation (finalAttrs: {
libGL
libGLU
libpng
libX11
libx11
zlib
];
@@ -9,9 +9,9 @@
zlibSupport ? true,
zlib,
libX11Support ? !stdenv.hostPlatform.isMinGW,
libX11,
libx11,
libXtSupport ? !stdenv.hostPlatform.isMinGW,
libXt,
libxt,
fontconfigSupport ? true,
fontconfig,
freetypeSupport ? true,
@@ -130,8 +130,8 @@ stdenv.mkDerivation (finalAttrs: {
++ lib.optional freetypeSupport freetype
++ lib.optional libjpegSupport libjpeg
++ lib.optional lcms2Support lcms2
++ lib.optional libX11Support libX11
++ lib.optional libXtSupport libXt
++ lib.optional libX11Support libx11
++ lib.optional libXtSupport libxt
++ lib.optional libwebpSupport libwebp;
doCheck = false; # fails 2 out of 76 tests
@@ -9,9 +9,9 @@
zlibSupport ? true,
zlib,
libX11Support ? !stdenv.hostPlatform.isMinGW,
libX11,
libx11,
libXtSupport ? !stdenv.hostPlatform.isMinGW,
libXt,
libxt,
fontconfigSupport ? true,
fontconfig,
freetypeSupport ? true,
@@ -158,8 +158,8 @@ stdenv.mkDerivation (finalAttrs: {
++ lib.optional freetypeSupport freetype
++ lib.optional libjpegSupport libjpeg
++ lib.optional lcms2Support lcms2
++ lib.optional libX11Support libX11
++ lib.optional libXtSupport libXt
++ lib.optional libX11Support libx11
++ lib.optional libXtSupport libxt
++ lib.optional libwebpSupport libwebp
++ lib.optional fftwSupport fftw;
@@ -2,7 +2,7 @@
lib,
stdenv,
fetchurl,
libX11,
libx11,
libxinerama,
imlib2,
}:
@@ -16,7 +16,7 @@ stdenv.mkDerivation {
};
buildInputs = [
libX11
libx11
imlib2
libxinerama
];
@@ -26,7 +26,7 @@ stdenv.mkDerivation {
gcc -g imlibsetroot.c -o imlibsetroot \
-I${imlib2.dev}/include -L${imlib2}/lib -lImlib2 \
-I${libX11.dev}/include -lXinerama -lX11
-I${libx11.dev}/include -lXinerama -lX11
runHook postBuild
'';
@@ -32,7 +32,7 @@
libsigcxx,
libvisio,
libwpg,
libXft,
libxft,
libxml2,
libxslt,
readline,
@@ -160,7 +160,7 @@ stdenv.mkDerivation (finalAttrs: {
libsigcxx
libvisio
libwpg
libXft
libxft
libxml2
libxslt
readline
@@ -12,14 +12,14 @@
libdatrie,
libxkbcommon,
libepoxy,
libXtst,
libxtst,
wrapGAppsHook3,
makeWrapper,
pixman,
libpthread-stubs,
gtkmm3,
libXau,
libXdmcp,
libxau,
libxdmcp,
lcms2,
libiptcdata,
fftw,
@@ -81,12 +81,12 @@ stdenv.mkDerivation rec {
libdatrie
libxkbcommon
libepoxy
libXtst
libxtst
pixman
libpthread-stubs
gtkmm3
libXau
libXdmcp
libxau
libxdmcp
lcms2
libiptcdata
fftw
@@ -5,7 +5,7 @@
fetchpatch,
autoconf,
sane-backends,
libX11,
libx11,
gtk2,
pkg-config,
libusb-compat-0_1 ? null,
@@ -64,7 +64,7 @@ stdenv.mkDerivation rec {
buildInputs = [
sane-backends
libX11
libx11
gtk2
]
++ lib.optional (libusb-compat-0_1 != null) libusb-compat-0_1;
+2 -2
View File
@@ -2,7 +2,7 @@
lib,
stdenv,
fetchFromGitHub,
libXft,
libxft,
imlib2,
giflib,
libexif,
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
preBuild = lib.optionalString (conf != null) "cp ${configFile} config.def.h";
buildInputs = [
libXft
libxft
imlib2
giflib
libexif
@@ -4,10 +4,10 @@
fetchurl,
makeWrapper,
autoPatchelfHook,
libX11,
libXext,
libXrandr,
libXinerama,
libx11,
libxext,
libxrandr,
libxinerama,
libglvnd,
openal,
glibc,
@@ -80,10 +80,10 @@ stdenv.mkDerivation rec {
buildInputs = [
stdenv.cc.cc
libX11
libXext
libXrandr
libXinerama
libx11
libxext
libxrandr
libxinerama
];
dontUnpack = true;
@@ -7,17 +7,17 @@
fontconfig,
zlib,
qtquickcontrols2,
libXinerama,
libxinerama,
libxcb,
libsm,
libXi,
libxi,
libglvnd,
libXext,
libXrandr,
libxext,
libxrandr,
mailspring,
libX11,
libx11,
libice,
libXrender,
libxrender,
autoPatchelfHook,
makeWrapper,
xkeyboard_config,
@@ -52,17 +52,17 @@ let
fontconfig
zlib
qtquickcontrols2
libXinerama
libxinerama
libxcb
libsm
libXi
libxi
libglvnd
libXext
libXrandr
libxext
libxrandr
mailspring
libX11
libx11
libice
libXrender
libxrender
];
installPhase = ''
@@ -109,17 +109,17 @@ buildFHSEnv {
fontconfig
zlib
qtquickcontrols2
libXinerama
libxinerama
libxcb
libsm
libXi
libxi
libglvnd
libXext
libXrandr
libxext
libxrandr
mailspring
libX11
libx11
libice
libXrender
libxrender
openal
];
runScript = "superposition";
@@ -4,10 +4,10 @@
fetchurl,
makeWrapper,
autoPatchelfHook,
libX11,
libXext,
libXrandr,
libXinerama,
libx11,
libxext,
libxrandr,
libxinerama,
libglvnd,
openal,
glibc,
@@ -78,10 +78,10 @@ stdenv.mkDerivation {
buildInputs = [
stdenv.cc.cc
libX11
libXext
libXrandr
libXinerama
libx11
libxext
libxrandr
libxinerama
];
dontUnpack = true;
@@ -4,13 +4,13 @@
fetchFromGitHub,
buildDotnetModule,
dotnetCorePackages,
libX11,
libx11,
libice,
libsm,
libXi,
libXcursor,
libXext,
libXrandr,
libxi,
libxcursor,
libxext,
libxrandr,
fontconfig,
glew,
makeDesktopItem,
@@ -59,13 +59,13 @@ buildDotnetModule rec {
runtimeDeps = [
# Avalonia UI
libX11
libx11
libice
libsm
libXi
libXcursor
libXext
libXrandr
libxi
libxcursor
libxext
libxrandr
fontconfig
glew
];
@@ -16,7 +16,7 @@
fmt,
bzip2,
libiconv,
libXtst,
libxtst,
qtbase,
qtsvg,
qtwebengine,
@@ -62,7 +62,7 @@ stdenv.mkDerivation (finalAttrs: {
hunspell
xz
lzo
libXtst
libxtst
bzip2
libiconv
opencc
@@ -3,7 +3,7 @@
stdenv,
fetchFromGitHub,
pkg-config,
libXtst,
libxtst,
libvorbis,
hunspell,
lzo,
@@ -72,7 +72,7 @@ stdenv.mkDerivation rec {
]
++ lib.optionals stdenv.hostPlatform.isLinux [
qtx11extras
libXtst
libxtst
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
bzip2
@@ -8,10 +8,10 @@
libGLU,
libsm,
libXcomposite,
libXi,
libXrender,
libX11,
libxcomposite,
libxi,
libxrender,
libx11,
libxcb,
sqlite,
@@ -65,10 +65,10 @@ stdenv.mkDerivation rec {
libGL
libGLU
libsm
libX11
libXcomposite
libXi
libXrender
libx11
libxcomposite
libxi
libxrender
libproxy
libxcb
libxml2_13
+2 -2
View File
@@ -16,7 +16,7 @@
zenity,
luajit_2_1,
libGL,
libX11,
libx11,
builderArgs,
}:
@@ -58,7 +58,7 @@ buildDubPackage (
freetype
SDL2
libGL
libX11
libx11
];
dontUseCmakeConfigure = true;
+2 -2
View File
@@ -4,7 +4,7 @@
fetchFromGitHub,
# buildInputs
libXScrnSaver,
libxscrnsaver,
magic-enum,
# nativeBuildInputs
@@ -45,7 +45,7 @@ stdenv.mkDerivation (finalAttrs: {
'';
buildInputs = [
libXScrnSaver
libxscrnsaver
magic-enum
qtbase
qtconnectivity
+11 -11
View File
@@ -10,11 +10,11 @@
openssl,
udev,
libglvnd,
libX11,
libXcursor,
libXi,
libXrandr,
libXfixes,
libx11,
libxcursor,
libxi,
libxrandr,
libxfixes,
libpulseaudio,
libva,
ffmpeg_7,
@@ -43,7 +43,7 @@ stdenvNoCC.mkDerivation {
buildInputs = [
stdenv.cc.cc # libstdc++
libglvnd
libX11
libx11
];
runtimeDependenciesPath = lib.makeLibraryPath [
@@ -58,11 +58,11 @@ stdenvNoCC.mkDerivation {
libpng
libjpeg8
curl
libX11
libXcursor
libXi
libXrandr
libXfixes
libx11
libxcursor
libxi
libxrandr
libxfixes
vulkan-loader
];
@@ -2,8 +2,8 @@
lib,
stdenv,
fetchFromGitHub,
libX11,
libXtst,
libx11,
libxtst,
cmake,
qtbase,
qttools,
@@ -35,8 +35,8 @@ stdenv.mkDerivation rec {
libscrypt
]
++ lib.optionals x11Support [
libX11
libXtst
libx11
libxtst
];
nativeBuildInputs = [
cmake
@@ -5,14 +5,14 @@
libsForQt5,
}:
stdenv.mkDerivation (finalAttr: {
stdenv.mkDerivation (finalAttrs: {
pname = "qtbitcointrader";
version = "1.42.21";
src = fetchFromGitHub {
owner = "JulyIGHOR";
repo = "QtBitcoinTrader";
tag = "v${finalAttr.version}";
tag = "v${finalAttrs.version}";
hash = "sha256-u3+Kwn8KunYUpWCd55TQuVVfoSp8hdti93d6hk7Uqx8=";
};
@@ -24,7 +24,7 @@ stdenv.mkDerivation (finalAttr: {
libsForQt5.qtscript
];
sourceRoot = "${finalAttr.src.name}/src";
sourceRoot = "${finalAttrs.src.name}/src";
configurePhase = ''
runHook preConfigure
+2 -2
View File
@@ -24,7 +24,7 @@
withDrm ? stdenv.hostPlatform.isLinux,
libdrm,
withVidmode ? stdenv.hostPlatform.isLinux,
libXxf86vm,
libxxf86vm,
withGeolocation ? true,
withCoreLocation ? withGeolocation && stdenv.hostPlatform.isDarwin,
@@ -88,7 +88,7 @@ let
++ lib.optional withRandr libxcb
++ lib.optional withGeoclue geoclue
++ lib.optional withDrm libdrm
++ lib.optional withVidmode libXxf86vm
++ lib.optional withVidmode libxxf86vm
++ lib.optional withAppIndicator (
if (pname != "gammastep") then libappindicator else libayatana-appindicator
);
@@ -6,10 +6,10 @@
wrapQtAppsHook,
patchelf,
qt5,
libXtst,
libXext,
libX11,
libXScrnSaver,
libxtst,
libxext,
libx11,
libxscrnsaver,
writeScript,
common-updater-scripts,
curl,
@@ -53,10 +53,10 @@ stdenv.mkDerivation rec {
--set-rpath "${
lib.makeLibraryPath [
qt5.qtbase
libXtst
libXext
libX11
libXScrnSaver
libxtst
libxext
libx11
libxscrnsaver
]
}" \
$out/bin/rescuetime
@@ -24,7 +24,7 @@
qtsvg,
qttools,
qtpositioning,
libXcomposite,
libxcomposite,
bluez,
writeScript,
}:
@@ -89,7 +89,7 @@ let
buildInputs = [
qtbase
qtlocation
libXcomposite
libxcomposite
];
dontWrapQtApps = true;
+2 -2
View File
@@ -11,7 +11,7 @@
gsettings-desktop-schemas,
p7zip,
autoPatchelfHook,
libXxf86vm,
libxxf86vm,
libGL,
copyDesktopItems,
@@ -96,7 +96,7 @@ stdenv.mkDerivation {
p7zip
gtk3
gsettings-desktop-schemas
libXxf86vm
libxxf86vm
];
# upstream targets Java 7 by default
@@ -59,9 +59,9 @@
glib,
gtk3,
dbus-glib,
libXScrnSaver,
libXcursor,
libXtst,
libxscrnsaver,
libxcursor,
libxtst,
libxshmfence,
libGLU,
libGL,
@@ -70,7 +70,7 @@
pciutils,
protobuf,
speechd-minimal,
libXdamage,
libxdamage,
at-spi2-core,
pipewire,
libva,
@@ -365,9 +365,9 @@ let
glib
gtk3
dbus-glib
libXScrnSaver
libXcursor
libXtst
libxscrnsaver
libxcursor
libxtst
libxshmfence
libGLU
libGL
@@ -375,7 +375,7 @@ let
pciutils
protobuf
speechd-minimal
libXdamage
libxdamage
at-spi2-core
pipewire
libva
@@ -425,9 +425,9 @@ let
glib
gtk3
dbus-glib
libXScrnSaver
libXcursor
libXtst
libxscrnsaver
libxcursor
libxtst
libxshmfence
libGLU
libGL
@@ -436,7 +436,7 @@ let
pciutils
protobuf
speechd-minimal
libXdamage
libxdamage
at-spi2-core
pipewire
libva
@@ -9,7 +9,7 @@
curl,
dbus-glib,
gtk3,
libXtst,
libxtst,
libva,
pciutils,
pipewire,
@@ -92,7 +92,7 @@ stdenv.mkDerivation {
adwaita-icon-theme
alsa-lib
dbus-glib
libXtst
libxtst
];
runtimeDependencies = [
curl
@@ -1,11 +0,0 @@
{
"packageVersion": "147.0.1-3",
"source": {
"rev": "147.0.1-3",
"hash": "sha256-0BeC3zlL5cvnpTaPnKn26lT1XlvqBQuMc4rauNbeIIk="
},
"firefox": {
"version": "147.0.1",
"hash": "sha512-8eG8SGRRJU8zsAD7RRP9lIpaboSEGYDudnxC0ybhhW9EqEN8j9v/LLNNF3/qKxkH/Nct0zvOw/Bt242IFRhTqA=="
}
}
@@ -13,7 +13,7 @@
withGTK3 ? true,
gtk3,
libglvnd,
libXt,
libxt,
libpulseaudio,
makeDesktopItem,
wrapGAppsHook3,
@@ -41,7 +41,7 @@ stdenv.mkDerivation (finalAttrs: {
alsa-lib
dbus-glib
gtk2-x11
libXt
libxt
(lib.getLib stdenv.cc.cc)
]
++ lib.optionals withGTK3 [
@@ -1,10 +1,10 @@
{
traefik-crd = {
url = "https://k3s.io/k3s-charts/assets/traefik-crd/traefik-crd-37.1.1+up37.1.0.tgz";
sha256 = "0q568ffjhxmw87fzwafxlxrzx2lgcqlqbwj87pbc2xszh9pyakyd";
url = "https://k3s.io/k3s-charts/assets/traefik-crd/traefik-crd-38.0.201+up38.0.2.tgz";
sha256 = "1fxkdmk859nwn0x9iq0abdwb16njsang7257ppaj9s1if06fsncd";
};
traefik = {
url = "https://k3s.io/k3s-charts/assets/traefik/traefik-37.1.1+up37.1.0.tgz";
sha256 = "0gpcr6zfbncvp2sjjwzg732k4xfr5ba0pbc5x08lgwvibqpp4r27";
url = "https://k3s.io/k3s-charts/assets/traefik/traefik-38.0.201+up38.0.2.tgz";
sha256 = "16kzjy8dgswn4jfx62dn2ihmgpkzcfvjv6ync9zdi397fz32mqjv";
};
}
@@ -1,26 +1,26 @@
{
"airgap-images-amd64-tar-gz": {
"url": "https://github.com/k3s-io/k3s/releases/download/v1.32.11%2Bk3s1/k3s-airgap-images-amd64.tar.gz",
"sha256": "6dfe83a7d8984a5fe6be63a429698ce3fc61761ce68e3f4f2c6f3ff96a349f37"
"url": "https://github.com/k3s-io/k3s/releases/download/v1.32.11%2Bk3s3/k3s-airgap-images-amd64.tar.gz",
"sha256": "572f512cc0bdf89213d2c532e6182d4a291663bb38a51beb57197bf3fb67dd47"
},
"airgap-images-amd64-tar-zst": {
"url": "https://github.com/k3s-io/k3s/releases/download/v1.32.11%2Bk3s1/k3s-airgap-images-amd64.tar.zst",
"sha256": "9b6a7ea64b7b14a6c43613e4e170902e99c600857265875282f8d4b9dfefa6f4"
"url": "https://github.com/k3s-io/k3s/releases/download/v1.32.11%2Bk3s3/k3s-airgap-images-amd64.tar.zst",
"sha256": "a65a1ed1cf081285d4c32ed3989d95cb0a4d90209e99a8765b65d41b02ea059d"
},
"airgap-images-arm-tar-gz": {
"url": "https://github.com/k3s-io/k3s/releases/download/v1.32.11%2Bk3s1/k3s-airgap-images-arm.tar.gz",
"sha256": "cbda428d59a8593267343fb32ad985bf2125f45860425f9b7b31bbea9d305046"
"url": "https://github.com/k3s-io/k3s/releases/download/v1.32.11%2Bk3s3/k3s-airgap-images-arm.tar.gz",
"sha256": "ffaee35854e9bfa6f34fae0a7a2ff81e8909cfb2d5a5bd65df89c03a1ceb1b3a"
},
"airgap-images-arm-tar-zst": {
"url": "https://github.com/k3s-io/k3s/releases/download/v1.32.11%2Bk3s1/k3s-airgap-images-arm.tar.zst",
"sha256": "b1a253aab260beabea305517d8d57cce4594d2e071320d5700d389b29eb3c196"
"url": "https://github.com/k3s-io/k3s/releases/download/v1.32.11%2Bk3s3/k3s-airgap-images-arm.tar.zst",
"sha256": "b92568a2fa8683a5abd29c151d12f2737bf7ac961dfa615a2fa891a66f2d23cf"
},
"airgap-images-arm64-tar-gz": {
"url": "https://github.com/k3s-io/k3s/releases/download/v1.32.11%2Bk3s1/k3s-airgap-images-arm64.tar.gz",
"sha256": "0f6e598bf90b9ced4f1f758db6b0d7f8afbf9b5973d801d8a743c5b27ac3b748"
"url": "https://github.com/k3s-io/k3s/releases/download/v1.32.11%2Bk3s3/k3s-airgap-images-arm64.tar.gz",
"sha256": "cc99b0211110b8dc14c47cde0fe9b93b7e36c2ead64286412a896f6aa8a722cf"
},
"airgap-images-arm64-tar-zst": {
"url": "https://github.com/k3s-io/k3s/releases/download/v1.32.11%2Bk3s1/k3s-airgap-images-arm64.tar.zst",
"sha256": "297beda34a0a2a7ff727fced94dba6f999636a4e9b2cdd6e30840cc0e746a4ee"
"url": "https://github.com/k3s-io/k3s/releases/download/v1.32.11%2Bk3s3/k3s-airgap-images-arm64.tar.zst",
"sha256": "a7ab99f7e2a6cf6ecc833c8ba67ba154b3ff186c58d574fa4bbda2e70dcb55f7"
}
}
@@ -1,20 +1,20 @@
{
k3sVersion = "1.32.11+k3s1";
k3sCommit = "8119508834f2503e3c7bace3125f5db6b038d377";
k3sRepoSha256 = "0fni4sh3a5flyrli7xxd9zxj9sh75kv79msy3zkfbgjxqz7rg4v9";
k3sVendorHash = "sha256-8gzvad5Cpkatc8158m9FBGnkGEbajn30alSPlzhor0E=";
k3sVersion = "1.32.11+k3s3";
k3sCommit = "c9aa1d2889a003715698542826c2af94160ac2e5";
k3sRepoSha256 = "0fi634dnsghjwnp07h6jhknccqlr9n5g3l34sipc41vvfmn4b0k8";
k3sVendorHash = "sha256-qbmqzsd8oMQSFCh7HvjDiYds5gLEIGjjcv4EJbgxfJI=";
chartVersions = import ./chart-versions.nix;
imagesVersions = builtins.fromJSON (builtins.readFile ./images-versions.json);
k3sRootVersion = "0.15.0";
k3sRootSha256 = "008n8xx7x36y9y4r24hx39xagf1dxbp3pqq2j53s9zkaiqc62hd0";
k3sCNIVersion = "1.8.0-k3s1";
k3sCNISha256 = "04xig5spp81l81781ixmk99ghiz8lk0p16zhcbja5mslfdjmc7vg";
k3sCNIVersion = "1.9.0-k3s1";
k3sCNISha256 = "0naqf3jkxz3rd9ljd40wbm8walgi2bx6d1l9wr6mcvrgj7d5g28c";
containerdVersion = "2.1.5-k3s1.32";
containerdSha256 = "1fzld9q0ycfg9b3054qg70mif1p6i7xqikcbabrmxapk81fy83kn";
containerdPackage = "github.com/k3s-io/containerd/v2";
criCtlVersion = "1.31.0-k3s2";
flannelVersion = "v0.27.4";
flannelPluginVersion = "v1.8.0-flannel1";
flannelVersion = "v0.28.0";
flannelPluginVersion = "v1.9.0-flannel1";
kubeRouterVersion = "v2.6.3-k3s1";
criDockerdVersion = "v0.3.19-k3s2.32";
helmJobVersion = "v0.9.12-build20251215";
@@ -1,10 +1,10 @@
{
traefik-crd = {
url = "https://k3s.io/k3s-charts/assets/traefik-crd/traefik-crd-37.1.1+up37.1.0.tgz";
sha256 = "0q568ffjhxmw87fzwafxlxrzx2lgcqlqbwj87pbc2xszh9pyakyd";
url = "https://k3s.io/k3s-charts/assets/traefik-crd/traefik-crd-38.0.201+up38.0.2.tgz";
sha256 = "1fxkdmk859nwn0x9iq0abdwb16njsang7257ppaj9s1if06fsncd";
};
traefik = {
url = "https://k3s.io/k3s-charts/assets/traefik/traefik-37.1.1+up37.1.0.tgz";
sha256 = "0gpcr6zfbncvp2sjjwzg732k4xfr5ba0pbc5x08lgwvibqpp4r27";
url = "https://k3s.io/k3s-charts/assets/traefik/traefik-38.0.201+up38.0.2.tgz";
sha256 = "16kzjy8dgswn4jfx62dn2ihmgpkzcfvjv6ync9zdi397fz32mqjv";
};
}
@@ -1,26 +1,26 @@
{
"airgap-images-amd64-tar-gz": {
"url": "https://github.com/k3s-io/k3s/releases/download/v1.33.7%2Bk3s1/k3s-airgap-images-amd64.tar.gz",
"sha256": "47644f3141878535a1951fdaf03bc485001b50a58b8fb58d97c75c49ea38a1f0"
"url": "https://github.com/k3s-io/k3s/releases/download/v1.33.7%2Bk3s3/k3s-airgap-images-amd64.tar.gz",
"sha256": "130a3b3e51947b7a0beffca422b85c2d3fbe78b1163a0fc069871877021123d3"
},
"airgap-images-amd64-tar-zst": {
"url": "https://github.com/k3s-io/k3s/releases/download/v1.33.7%2Bk3s1/k3s-airgap-images-amd64.tar.zst",
"sha256": "9b6a7ea64b7b14a6c43613e4e170902e99c600857265875282f8d4b9dfefa6f4"
"url": "https://github.com/k3s-io/k3s/releases/download/v1.33.7%2Bk3s3/k3s-airgap-images-amd64.tar.zst",
"sha256": "b0d7062008fa7fcad9ad7c6b60f74ae1c561927dbb5a4105433f5afbd091361b"
},
"airgap-images-arm-tar-gz": {
"url": "https://github.com/k3s-io/k3s/releases/download/v1.33.7%2Bk3s1/k3s-airgap-images-arm.tar.gz",
"sha256": "ee76f65f39a0ca12bbaa6bf9fdd5dc161b553b15a5746d47795cf0113916c063"
"url": "https://github.com/k3s-io/k3s/releases/download/v1.33.7%2Bk3s3/k3s-airgap-images-arm.tar.gz",
"sha256": "6451f4bd29b4ab76dcbfa520d907425976a04e9d5044b969e81fa2dfdc085c20"
},
"airgap-images-arm-tar-zst": {
"url": "https://github.com/k3s-io/k3s/releases/download/v1.33.7%2Bk3s1/k3s-airgap-images-arm.tar.zst",
"sha256": "b1a253aab260beabea305517d8d57cce4594d2e071320d5700d389b29eb3c196"
"url": "https://github.com/k3s-io/k3s/releases/download/v1.33.7%2Bk3s3/k3s-airgap-images-arm.tar.zst",
"sha256": "03a165ad40d022616281fbf329bcfa546b9245a9f431d1c362b86faff72d83dd"
},
"airgap-images-arm64-tar-gz": {
"url": "https://github.com/k3s-io/k3s/releases/download/v1.33.7%2Bk3s1/k3s-airgap-images-arm64.tar.gz",
"sha256": "a2f534291abd4d6491dc669b46e437df1fe0cd7b573485ec30aa813510b22635"
"url": "https://github.com/k3s-io/k3s/releases/download/v1.33.7%2Bk3s3/k3s-airgap-images-arm64.tar.gz",
"sha256": "6243a503de28c17f4b1b16018237a5008bc99983dc3b3b87ed2a1fe790d9e211"
},
"airgap-images-arm64-tar-zst": {
"url": "https://github.com/k3s-io/k3s/releases/download/v1.33.7%2Bk3s1/k3s-airgap-images-arm64.tar.zst",
"sha256": "87db88828e43179ef30a17ba66b416a3e398c4a00673908bd8d39ae4996ce300"
"url": "https://github.com/k3s-io/k3s/releases/download/v1.33.7%2Bk3s3/k3s-airgap-images-arm64.tar.zst",
"sha256": "74713adf726f6b407330b93e252b7a8e0a85204137c8a6f61b66f681b5761c42"
}
}
@@ -1,20 +1,20 @@
{
k3sVersion = "1.33.7+k3s1";
k3sCommit = "0b396d3f7f26e0c2ae5b6a114383830f533938c2";
k3sRepoSha256 = "0jkvm7c333zazabsxrjl6wkdsni1m5g5gamriyyf53lly9935wsf";
k3sVendorHash = "sha256-HpgcO/mUo64mkH38sAURnLOmXdXmHh3o6iDKtQeUt/E=";
k3sVersion = "1.33.7+k3s3";
k3sCommit = "1288e778af2a8ae295c47c213a3d13abd2969cde";
k3sRepoSha256 = "07274x0d0q7cn6x5g8d0zbyf67axrmchhngsjsp3plskyr313hcy";
k3sVendorHash = "sha256-XlZFYEGqoDGFlLJYRJDDoRPWuptFYkZT6axergChFN4=";
chartVersions = import ./chart-versions.nix;
imagesVersions = builtins.fromJSON (builtins.readFile ./images-versions.json);
k3sRootVersion = "0.15.0";
k3sRootSha256 = "008n8xx7x36y9y4r24hx39xagf1dxbp3pqq2j53s9zkaiqc62hd0";
k3sCNIVersion = "1.8.0-k3s1";
k3sCNISha256 = "04xig5spp81l81781ixmk99ghiz8lk0p16zhcbja5mslfdjmc7vg";
k3sCNIVersion = "1.9.0-k3s1";
k3sCNISha256 = "0naqf3jkxz3rd9ljd40wbm8walgi2bx6d1l9wr6mcvrgj7d5g28c";
containerdVersion = "2.1.5-k3s1.33";
containerdSha256 = "15iw6px3710rlsx7j933i07qd4a2r7caagfjbhhfcp33m9k19v7h";
containerdPackage = "github.com/k3s-io/containerd/v2";
criCtlVersion = "1.33.0-k3s2";
flannelVersion = "v0.27.4";
flannelPluginVersion = "v1.8.0-flannel1";
flannelVersion = "v0.28.0";
flannelPluginVersion = "v1.9.0-flannel1";
kubeRouterVersion = "v2.6.3-k3s1";
criDockerdVersion = "v0.3.19-k3s2";
helmJobVersion = "v0.9.12-build20251215";
@@ -1,10 +1,10 @@
{
traefik-crd = {
url = "https://k3s.io/k3s-charts/assets/traefik-crd/traefik-crd-37.1.1+up37.1.0.tgz";
sha256 = "0q568ffjhxmw87fzwafxlxrzx2lgcqlqbwj87pbc2xszh9pyakyd";
url = "https://k3s.io/k3s-charts/assets/traefik-crd/traefik-crd-38.0.201+up38.0.2.tgz";
sha256 = "1fxkdmk859nwn0x9iq0abdwb16njsang7257ppaj9s1if06fsncd";
};
traefik = {
url = "https://k3s.io/k3s-charts/assets/traefik/traefik-37.1.1+up37.1.0.tgz";
sha256 = "0gpcr6zfbncvp2sjjwzg732k4xfr5ba0pbc5x08lgwvibqpp4r27";
url = "https://k3s.io/k3s-charts/assets/traefik/traefik-38.0.201+up38.0.2.tgz";
sha256 = "16kzjy8dgswn4jfx62dn2ihmgpkzcfvjv6ync9zdi397fz32mqjv";
};
}
@@ -1,26 +1,26 @@
{
"airgap-images-amd64-tar-gz": {
"url": "https://github.com/k3s-io/k3s/releases/download/v1.34.3%2Bk3s1/k3s-airgap-images-amd64.tar.gz",
"sha256": "499d7fb0b2eab200e9bf9b3935ce787a7fa0597933dce25ad091703933d6ecc8"
"url": "https://github.com/k3s-io/k3s/releases/download/v1.34.3%2Bk3s3/k3s-airgap-images-amd64.tar.gz",
"sha256": "696c2e10f511295f5e0e6281a2f22eec60b33962d45bc9117703db1ac887e981"
},
"airgap-images-amd64-tar-zst": {
"url": "https://github.com/k3s-io/k3s/releases/download/v1.34.3%2Bk3s1/k3s-airgap-images-amd64.tar.zst",
"sha256": "b8dff3265568e1be66ab72ac0ded68bd266fa37a32c010f1253dba6547a49ce8"
"url": "https://github.com/k3s-io/k3s/releases/download/v1.34.3%2Bk3s3/k3s-airgap-images-amd64.tar.zst",
"sha256": "4805a6c4bfdfd20d3ad42bc14c79e00662739aca275e6a37cd8f3a406fae0f0a"
},
"airgap-images-arm-tar-gz": {
"url": "https://github.com/k3s-io/k3s/releases/download/v1.34.3%2Bk3s1/k3s-airgap-images-arm.tar.gz",
"sha256": "170db25228c873741f895fced05f0e5bdbbddb8ffeb5e0342a5b8e44f3c28757"
"url": "https://github.com/k3s-io/k3s/releases/download/v1.34.3%2Bk3s3/k3s-airgap-images-arm.tar.gz",
"sha256": "a4bc850fcf9b73bf0f45d4a1f50bd612e52d77daa5de5020589e7f99e5d1a3e6"
},
"airgap-images-arm-tar-zst": {
"url": "https://github.com/k3s-io/k3s/releases/download/v1.34.3%2Bk3s1/k3s-airgap-images-arm.tar.zst",
"sha256": "27407fd1553c89b8ccd3b45ad0fbdcd483c1a010e7b28b60b24a8e73b58aa783"
"url": "https://github.com/k3s-io/k3s/releases/download/v1.34.3%2Bk3s3/k3s-airgap-images-arm.tar.zst",
"sha256": "a1b0ac3a00f409fa51e196ea9db5f2282efff00a282ab797bf49b29453bb1379"
},
"airgap-images-arm64-tar-gz": {
"url": "https://github.com/k3s-io/k3s/releases/download/v1.34.3%2Bk3s1/k3s-airgap-images-arm64.tar.gz",
"sha256": "e67cddf839571cd489aef44acb2aca82285a9789a170c1a44d51b7f8b6129883"
"url": "https://github.com/k3s-io/k3s/releases/download/v1.34.3%2Bk3s3/k3s-airgap-images-arm64.tar.gz",
"sha256": "ceea4427499fb39be0bff18f840cf80a091f63e88421bc89fdfceb8017aab59b"
},
"airgap-images-arm64-tar-zst": {
"url": "https://github.com/k3s-io/k3s/releases/download/v1.34.3%2Bk3s1/k3s-airgap-images-arm64.tar.zst",
"sha256": "b6cb3c06f19859d3a5fba54b305097e89d2a86b5bce9e8360a46b9d2e67da565"
"url": "https://github.com/k3s-io/k3s/releases/download/v1.34.3%2Bk3s3/k3s-airgap-images-arm64.tar.zst",
"sha256": "e0cec00a1c19c8c6f7fde7005e325d285f23ff43752cce9ce0796ccb10e9582a"
}
}
@@ -1,20 +1,20 @@
{
k3sVersion = "1.34.3+k3s1";
k3sCommit = "48ffa7b6893f21b919b3029d54c9d9838ae426a1";
k3sRepoSha256 = "1177kzbhp6ihb7dzfdi1a0idgp69y1hwh6wnwvdx1fnivg2gj7aw";
k3sVendorHash = "sha256-dp8SU24nuy3WmG1Zln/J2nVHnVQmVyN78FBOSxNjbF8=";
k3sVersion = "1.34.3+k3s3";
k3sCommit = "2975fb0973ca47f54b1aa2a8c3a976a779f52349";
k3sRepoSha256 = "0bvccp573xihzbnkd3n6xldcxpnlwiz9b5p0fw6sxv69m7jaac2f";
k3sVendorHash = "sha256-R8QXwXmTKsONsbWaedFNDPdYZ82jaQ/T8S9sllqKPjk=";
chartVersions = import ./chart-versions.nix;
imagesVersions = builtins.fromJSON (builtins.readFile ./images-versions.json);
k3sRootVersion = "0.15.0";
k3sRootSha256 = "008n8xx7x36y9y4r24hx39xagf1dxbp3pqq2j53s9zkaiqc62hd0";
k3sCNIVersion = "1.8.0-k3s1";
k3sCNISha256 = "04xig5spp81l81781ixmk99ghiz8lk0p16zhcbja5mslfdjmc7vg";
k3sCNIVersion = "1.9.0-k3s1";
k3sCNISha256 = "0naqf3jkxz3rd9ljd40wbm8walgi2bx6d1l9wr6mcvrgj7d5g28c";
containerdVersion = "2.1.5-k3s1";
containerdSha256 = "0n0g58d352i8wz0bqn87vgrd7z54j268cbmbp19fz68wmifm7fl8";
containerdPackage = "github.com/k3s-io/containerd/v2";
criCtlVersion = "1.34.0-k3s2";
flannelVersion = "v0.27.4";
flannelPluginVersion = "v1.8.0-flannel1";
flannelVersion = "v0.28.0";
flannelPluginVersion = "v1.9.0-flannel1";
kubeRouterVersion = "v2.6.3-k3s1";
criDockerdVersion = "v0.3.19-k3s3";
helmJobVersion = "v0.9.12-build20251215";
@@ -1,10 +1,10 @@
{
traefik-crd = {
url = "https://k3s.io/k3s-charts/assets/traefik-crd/traefik-crd-37.1.1+up37.1.0.tgz";
sha256 = "0q568ffjhxmw87fzwafxlxrzx2lgcqlqbwj87pbc2xszh9pyakyd";
url = "https://k3s.io/k3s-charts/assets/traefik-crd/traefik-crd-38.0.201+up38.0.2.tgz";
sha256 = "1fxkdmk859nwn0x9iq0abdwb16njsang7257ppaj9s1if06fsncd";
};
traefik = {
url = "https://k3s.io/k3s-charts/assets/traefik/traefik-37.1.1+up37.1.0.tgz";
sha256 = "0gpcr6zfbncvp2sjjwzg732k4xfr5ba0pbc5x08lgwvibqpp4r27";
url = "https://k3s.io/k3s-charts/assets/traefik/traefik-38.0.201+up38.0.2.tgz";
sha256 = "16kzjy8dgswn4jfx62dn2ihmgpkzcfvjv6ync9zdi397fz32mqjv";
};
}
@@ -1,26 +1,26 @@
{
"airgap-images-amd64-tar-gz": {
"url": "https://github.com/k3s-io/k3s/releases/download/v1.35.0%2Bk3s1/k3s-airgap-images-amd64.tar.gz",
"sha256": "af7ce67f0a8c457618a492ba995cc645d8ad13512008b88db97719941c39389a"
"url": "https://github.com/k3s-io/k3s/releases/download/v1.35.0%2Bk3s3/k3s-airgap-images-amd64.tar.gz",
"sha256": "8a1c1f25d62d3395fbb2b37d55cf3d836ca4bc68e6358d21b6573f42d295c6f0"
},
"airgap-images-amd64-tar-zst": {
"url": "https://github.com/k3s-io/k3s/releases/download/v1.35.0%2Bk3s1/k3s-airgap-images-amd64.tar.zst",
"sha256": "2e3d6d14bbbeb8c16f1849cca8da48887c5a7ddceb1cc2bf60be63e4fa8c63f3"
"url": "https://github.com/k3s-io/k3s/releases/download/v1.35.0%2Bk3s3/k3s-airgap-images-amd64.tar.zst",
"sha256": "4805a6c4bfdfd20d3ad42bc14c79e00662739aca275e6a37cd8f3a406fae0f0a"
},
"airgap-images-arm-tar-gz": {
"url": "https://github.com/k3s-io/k3s/releases/download/v1.35.0%2Bk3s1/k3s-airgap-images-arm.tar.gz",
"sha256": "82cf1310db1bfac5733c5c16864034c6c7c7affc60c39be610ce7cf169631ef5"
"url": "https://github.com/k3s-io/k3s/releases/download/v1.35.0%2Bk3s3/k3s-airgap-images-arm.tar.gz",
"sha256": "8659dda950ab0ddff37b2c8d59f527489e1accde30f652b6c3b434385825b8b5"
},
"airgap-images-arm-tar-zst": {
"url": "https://github.com/k3s-io/k3s/releases/download/v1.35.0%2Bk3s1/k3s-airgap-images-arm.tar.zst",
"sha256": "27407fd1553c89b8ccd3b45ad0fbdcd483c1a010e7b28b60b24a8e73b58aa783"
"url": "https://github.com/k3s-io/k3s/releases/download/v1.35.0%2Bk3s3/k3s-airgap-images-arm.tar.zst",
"sha256": "fab2006d48153f278332504c1aa8b03e5683c14924f66ecbd5eeb7db3a5dedd9"
},
"airgap-images-arm64-tar-gz": {
"url": "https://github.com/k3s-io/k3s/releases/download/v1.35.0%2Bk3s1/k3s-airgap-images-arm64.tar.gz",
"sha256": "cb3d24f44c9f29da3421e99db0801f2a30b3e16c7032c423a9b631c0fc66a5fa"
"url": "https://github.com/k3s-io/k3s/releases/download/v1.35.0%2Bk3s3/k3s-airgap-images-arm64.tar.gz",
"sha256": "ec9a3d8b04445afe24093dd0f4e65a1da6b3a5d73f3c739746aaa8ec0aaa03cb"
},
"airgap-images-arm64-tar-zst": {
"url": "https://github.com/k3s-io/k3s/releases/download/v1.35.0%2Bk3s1/k3s-airgap-images-arm64.tar.zst",
"sha256": "b6cb3c06f19859d3a5fba54b305097e89d2a86b5bce9e8360a46b9d2e67da565"
"url": "https://github.com/k3s-io/k3s/releases/download/v1.35.0%2Bk3s3/k3s-airgap-images-arm64.tar.zst",
"sha256": "4c6a31ffa5bc267986f47f36396c51232f55b5db22253630bf7e8b48ea41084f"
}
}
@@ -1,20 +1,20 @@
{
k3sVersion = "1.35.0+k3s1";
k3sCommit = "a6c6cd15c0c42ec9fce21f8ad5f42aa74fddb4f2";
k3sRepoSha256 = "0033m0vbysy2bcjfmam387580j1cmq6cys8diismgf8m5s64nivb";
k3sVendorHash = "sha256-S9GkT87C8qbuefH93Y6d0Y95NNuT6paNdDkmSDllFIY=";
k3sVersion = "1.35.0+k3s3";
k3sCommit = "323b95245012f0d56a863d8c23964399814191c2";
k3sRepoSha256 = "1h6az9xj074pj8s60p2yw9gbqz2dabrxvrq41igcw0nq7ymcwaaz";
k3sVendorHash = "sha256-4Qs03mrOJBxsyQe4RrDG9vvS23JwjUPhPec/TebS4Yw=";
chartVersions = import ./chart-versions.nix;
imagesVersions = builtins.fromJSON (builtins.readFile ./images-versions.json);
k3sRootVersion = "0.15.0";
k3sRootSha256 = "008n8xx7x36y9y4r24hx39xagf1dxbp3pqq2j53s9zkaiqc62hd0";
k3sCNIVersion = "1.8.0-k3s1";
k3sCNISha256 = "04xig5spp81l81781ixmk99ghiz8lk0p16zhcbja5mslfdjmc7vg";
k3sCNIVersion = "1.9.0-k3s1";
k3sCNISha256 = "0naqf3jkxz3rd9ljd40wbm8walgi2bx6d1l9wr6mcvrgj7d5g28c";
containerdVersion = "2.1.5-k3s1";
containerdSha256 = "0n0g58d352i8wz0bqn87vgrd7z54j268cbmbp19fz68wmifm7fl8";
containerdPackage = "github.com/k3s-io/containerd/v2";
criCtlVersion = "1.35.0-k3s2";
flannelVersion = "v0.27.4";
flannelPluginVersion = "v1.8.0-flannel1";
flannelVersion = "v0.28.0";
flannelPluginVersion = "v1.9.0-flannel1";
kubeRouterVersion = "v2.6.3-k3s1";
criDockerdVersion = "v0.3.19-k3s3";
helmJobVersion = "v0.9.12-build20251215";
@@ -45,13 +45,13 @@
"vendorHash": "sha256-6sVapd0vqL4xGLqTQS4zQIlnMA8HRmjufDi1lOgldlU="
},
"aliyun_alicloud": {
"hash": "sha256-JcNbhR9qeakHWTDu4tF3Sl2G5zfcohNEsK87znI5hiM=",
"hash": "sha256-NL2UmL4wLBbdT5DW7uGYOBQwPN0nQUP54gtFwc2PcB8=",
"homepage": "https://registry.terraform.io/providers/aliyun/alicloud",
"owner": "aliyun",
"repo": "terraform-provider-alicloud",
"rev": "v1.269.0",
"rev": "v1.270.0",
"spdx": "MPL-2.0",
"vendorHash": "sha256-ogQLStDbsM0aRf4QIbITB8Z+L9DUtZwoAPK6T4xylXI="
"vendorHash": "sha256-Hvk2jckla1LcMankcdUTct8Kea0OznyxDxTJ+UrJHy0="
},
"aminueza_minio": {
"hash": "sha256-rgrX08mO99cl95YTW0rqFH/jJhyxMr/DSIEL5Wg9R9s=",
@@ -526,11 +526,11 @@
"vendorHash": null
},
"hashicorp_azurerm": {
"hash": "sha256-uAaWBctVH61wMz12hX3DnayVn6LK1e3aUM2SQBNx3QQ=",
"hash": "sha256-ZqR6UjG+3KUuqnru5CycUcjWxLwCiQdpsIPR2UiY3g8=",
"homepage": "https://registry.terraform.io/providers/hashicorp/azurerm",
"owner": "hashicorp",
"repo": "terraform-provider-azurerm",
"rev": "v4.58.0",
"rev": "v4.59.0",
"spdx": "MPL-2.0",
"vendorHash": null
},
@@ -1409,11 +1409,11 @@
"vendorHash": "sha256-l6EzevVL6YxLLq9QWcGZv9Go+0sUToLubHbMeNL1vJg="
},
"ucloud_ucloud": {
"hash": "sha256-mPTejWXREIBjEZVb660bUUnyj3z7hgfKPrUsSVvMx7A=",
"hash": "sha256-UOVnfWYhntmRHMApQgemjUBsyUIz0bexsc1gwDGGee4=",
"homepage": "https://registry.terraform.io/providers/ucloud/ucloud",
"owner": "ucloud",
"repo": "terraform-provider-ucloud",
"rev": "v1.39.1",
"rev": "v1.39.2",
"spdx": "MPL-2.0",
"vendorHash": null
},
@@ -32,17 +32,17 @@
libpulseaudio,
libuuid,
libva,
libX11,
libXScrnSaver,
libXcomposite,
libXcursor,
libXdamage,
libXext,
libXfixes,
libXi,
libXrandr,
libXrender,
libXtst,
libx11,
libxscrnsaver,
libxcomposite,
libxcursor,
libxdamage,
libxext,
libxfixes,
libxi,
libxrandr,
libxrender,
libxtst,
libxcb,
libxshmfence,
libgbm,
@@ -116,10 +116,10 @@ stdenv.mkDerivation (finalAttrs: {
cups
libdrm
libuuid
libXdamage
libX11
libXScrnSaver
libXtst
libxdamage
libx11
libxscrnsaver
libxtst
libxcb
libxshmfence
libgbm
@@ -153,24 +153,24 @@ stdenv.mkDerivation (finalAttrs: {
gtk3
libglvnd
libnotify
libX11
libXcomposite
libx11
libxcomposite
libunity
libuuid
libva
libXcursor
libXdamage
libXext
libXfixes
libXi
libXrandr
libXrender
libXtst
libxcursor
libxdamage
libxext
libxfixes
libxi
libxrandr
libxrender
libxtst
nspr
libxcb
pango
pipewire
libXScrnSaver
libxscrnsaver
libappindicator-gtk3
libdbusmenu
wayland
@@ -5,8 +5,8 @@
glew,
gsm,
lib,
libX11,
libXext,
libx11,
libxext,
libopus,
libpulseaudio,
libsForQt5,
@@ -47,8 +47,8 @@ mkLinphoneDerivation (finalAttrs: {
ffmpeg_4
glew
libX11
libXext
libx11
libxext
libpulseaudio
libv4l
speex
@@ -18,8 +18,8 @@
lib,
libice,
libsm,
libXScrnSaver,
libXext,
libxscrnsaver,
libxext,
libgcrypt,
libgnt,
libidn,
@@ -76,8 +76,8 @@ let
gst_all_1.gstreamer
libice
libsm
libXScrnSaver
libXext
libxscrnsaver
libxext
libgnt
libidn
libstartup_notification
@@ -20,8 +20,8 @@
readline,
sqlite,
autoAwaySupport ? true,
libXScrnSaver,
libX11,
libxscrnsaver,
libx11,
notifySupport ? true,
libnotify,
gdk-pixbuf,
@@ -77,8 +77,8 @@ stdenv.mkDerivation (finalAttrs: {
sqlite
]
++ lib.optionals autoAwaySupport [
libXScrnSaver
libX11
libxscrnsaver
libx11
]
++ lib.optionals notifySupport [
libnotify
@@ -11,7 +11,7 @@
qttools,
libidn,
qca-qt5,
libXScrnSaver,
libxscrnsaver,
hunspell,
libsecret,
libgcrypt,
@@ -77,7 +77,7 @@ stdenv.mkDerivation rec {
qtx11extras
libidn
qca-qt5
libXScrnSaver
libxscrnsaver
hunspell
libsecret
libgcrypt
@@ -11,7 +11,7 @@
qtwebengine,
libidn,
qca-qt5,
libXScrnSaver,
libxscrnsaver,
hunspell,
}:
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
qtwebengine
libidn
qca-qt5
libXScrnSaver
libxscrnsaver
hunspell
];
@@ -13,14 +13,14 @@
openh264,
crc32c,
libvpx,
libX11,
libXtst,
libXcomposite,
libXdamage,
libXext,
libXrender,
libXrandr,
libXi,
libx11,
libxtst,
libxcomposite,
libxdamage,
libxext,
libxrender,
libxrandr,
libxi,
glib,
abseil-cpp,
pipewire,
@@ -80,14 +80,14 @@ stdenv.mkDerivation {
abseil-cpp
]
++ lib.optionals stdenv.hostPlatform.isLinux [
libX11
libXtst
libXcomposite
libXdamage
libXext
libXrender
libXrandr
libXi
libx11
libxtst
libxcomposite
libxdamage
libxext
libxrender
libxrandr
libxi
glib
pipewire
libgbm
@@ -11,8 +11,8 @@
cmake,
openssl,
xorgproto,
libX11,
libXScrnSaver,
libx11,
libxscrnsaver,
xz,
zlib,
}:
@@ -39,8 +39,8 @@ stdenv.mkDerivation {
qtwebkit
openssl
xorgproto
libX11
libXScrnSaver
libx11
libxscrnsaver
xz
zlib
];
@@ -7,7 +7,7 @@
pkg-config,
wrapQtAppsHook,
bzip2,
libX11,
libx11,
qtbase,
qttools,
qtmultimedia,
@@ -51,7 +51,7 @@ stdenv.mkDerivation rec {
qtmultimedia
qtscript
bzip2
libX11
libx11
pcre-cpp
libidn
lua5

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