Compare commits

..

1 Commits

Author SHA1 Message Date
Sandro
51a9e8c3db nixos/installer: fix defaultText rendering as plain string 2026-06-11 17:24:36 +02:00
431 changed files with 4406 additions and 6212 deletions

View File

@@ -30,7 +30,128 @@ let
inherit (pinned.treefmt-nix) url;
sha256 = pinned.treefmt-nix.hash;
};
treefmtEval = (import treefmtNixSrc).evalModule pkgs ./treefmt.nix;
treefmtEval = (import treefmtNixSrc).evalModule pkgs {
# Important: The auto-rebase script uses `git filter-branch --tree-filter`,
# which creates trees within the Git repository under `.git-rewrite/t`,
# notably without having a `.git` themselves.
# So if this projectRootFile were the default `.git/config`,
# having the auto-rebase script use treefmt on such a tree would make it
# format all files in the _parent_ Git tree as well.
projectRootFile = ".git-blame-ignore-revs";
# Be a bit more verbose by default, so we can see progress happening
settings.verbose = 1;
# By default it's info, which is too noisy since we have many unmatched files
settings.on-unmatched = "debug";
programs.actionlint.enable = true;
programs.biome = {
enable = true;
# Disable settings validation because its inputs are liable to hash mismatch
validate.enable = false;
settings.formatter = {
useEditorconfig = true;
};
settings.javascript.formatter = {
quoteStyle = "single";
semicolons = "asNeeded";
};
settings.json.formatter.enabled = false;
};
settings.formatter.biome.excludes = [
"*.min.js"
"pkgs/*"
];
programs.keep-sorted.enable = true;
# This uses nixfmt underneath, the default formatter for Nix code.
# See https://github.com/NixOS/nixfmt
programs.nixfmt = {
enable = true;
package = pkgs.nixfmt;
};
programs.yamlfmt = {
enable = true;
settings.formatter = {
retain_line_breaks = true;
};
};
settings.formatter.yamlfmt.excludes = [
# Aligns comments with whitespace
"pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml"
# TODO: Fix formatting for auto-generated file
"pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml"
];
programs.nixf-diagnose = {
enable = true;
ignore = [
# Rule names can currently be looked up here:
# https://github.com/nix-community/nixd/blob/main/libnixf/src/Basic/diagnostic.py
# TODO: Remove the following and fix things.
"sema-unused-def-lambda-noarg-formal"
"sema-unused-def-lambda-witharg-arg"
"sema-unused-def-lambda-witharg-formal"
"sema-unused-def-let"
# Keep this rule, because we have `lib.or`.
"or-identifier"
# TODO: remove after outstanding prelude diagnostics issues are fixed:
# https://github.com/nix-community/nixd/issues/761
# https://github.com/nix-community/nixd/issues/762
"sema-primop-removed-prefix"
"sema-primop-overridden"
"sema-constant-overridden"
"sema-primop-unknown"
];
};
settings.formatter.nixf-diagnose = {
# Ensure nixfmt cleans up after nixf-diagnose.
priority = -1;
excludes = [
# Auto-generated; violates sema-extra-with
# Can only sensibly be removed when --auto-fix supports multiple fixes at once:
# https://github.com/inclyc/nixf-diagnose/issues/13
"pkgs/servers/home-assistant/component-packages.nix"
# https://github.com/nix-community/nixd/issues/708
"nixos/maintainers/scripts/azure-new/examples/basic/system.nix"
];
};
settings.formatter.editorconfig-checker = {
command = "${pkgs.lib.getExe pkgs.editorconfig-checker}";
options = [
"-disable-indent-size"
# TODO: Remove this once this upstream issue is fixed:
# https://github.com/editorconfig-checker/editorconfig-checker/issues/505
"-disable-charset"
];
includes = [ "*" ];
priority = 1;
};
# TODO: Upstream this into treefmt-nix eventually:
# https://github.com/numtide/treefmt-nix/issues/387
settings.formatter.markdown-code-runner = {
command = pkgs.lib.getExe pkgs.markdown-code-runner;
options =
let
config = pkgs.writers.writeTOML "markdown-code-runner-config" {
presets.nixfmt = {
language = "nix";
command = [ (pkgs.lib.getExe pkgs.nixfmt) ];
};
};
in
[ "--config=${config}" ];
includes = [ "*.md" ];
};
programs.zizmor.enable = true;
};
fs = pkgs.lib.fileset;
nixFilesSrc = fs.toSource {
root = ../.;

View File

@@ -9,9 +9,9 @@
},
"branch": "nixpkgs-unstable",
"submodules": false,
"revision": "8c91a71d13451abc40eb9dae8910f972f979852f",
"url": "https://github.com/NixOS/nixpkgs/archive/8c91a71d13451abc40eb9dae8910f972f979852f.tar.gz",
"hash": "sha256-fnzKKPvS+oieI/pTzotA5tkoM47EB1NpaBcgk4R97hE="
"revision": "cbb5cf358f50aa6acc9efd6113b7bcfbc352cd73",
"url": "https://github.com/NixOS/nixpkgs/archive/cbb5cf358f50aa6acc9efd6113b7bcfbc352cd73.tar.gz",
"hash": "sha256-IX7G1dlKrOqPOImfbo7ADDfV5yU1+j+MRChI3TL4tAA="
},
"treefmt-nix": {
"type": "Git",

View File

@@ -1,122 +0,0 @@
{ pkgs, ... }: {
# Important: The auto-rebase script uses `git filter-branch --tree-filter`,
# which creates trees within the Git repository under `.git-rewrite/t`,
# notably without having a `.git` themselves.
# So if this projectRootFile were the default `.git/config`,
# having the auto-rebase script use treefmt on such a tree would make it
# format all files in the _parent_ Git tree as well.
projectRootFile = ".git-blame-ignore-revs";
# Be a bit more verbose by default, so we can see progress happening
settings.verbose = 1;
# By default it's info, which is too noisy since we have many unmatched files
settings.on-unmatched = "debug";
programs.actionlint.enable = true;
programs.biome = {
enable = true;
# Disable settings validation because its inputs are liable to hash mismatch
validate.enable = false;
settings.formatter = {
useEditorconfig = true;
};
settings.javascript.formatter = {
quoteStyle = "single";
semicolons = "asNeeded";
};
settings.json.formatter.enabled = false;
};
settings.formatter.biome.excludes = [
"*.min.js"
"pkgs/*"
];
programs.keep-sorted.enable = true;
# This uses nixfmt underneath, the default formatter for Nix code.
# See https://github.com/NixOS/nixfmt
programs.nixfmt = {
enable = true;
package = pkgs.nixfmt;
};
programs.yamlfmt = {
enable = true;
settings.formatter = {
retain_line_breaks = true;
};
};
settings.formatter.yamlfmt.excludes = [
# Aligns comments with whitespace
"pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml"
# TODO: Fix formatting for auto-generated file
"pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml"
];
programs.nixf-diagnose = {
enable = true;
ignore = [
# Rule names can currently be looked up here:
# https://github.com/nix-community/nixd/blob/main/libnixf/src/Basic/diagnostic.py
# TODO: Remove the following and fix things.
"sema-unused-def-lambda-noarg-formal"
"sema-unused-def-lambda-witharg-arg"
"sema-unused-def-lambda-witharg-formal"
"sema-unused-def-let"
# Keep this rule, because we have `lib.or`.
"or-identifier"
# TODO: remove after outstanding prelude diagnostics issues are fixed:
# https://github.com/nix-community/nixd/issues/761
# https://github.com/nix-community/nixd/issues/762
"sema-primop-removed-prefix"
"sema-primop-overridden"
"sema-constant-overridden"
"sema-primop-unknown"
];
};
settings.formatter.nixf-diagnose = {
# Ensure nixfmt cleans up after nixf-diagnose.
priority = -1;
excludes = [
# Auto-generated; violates sema-extra-with
# Can only sensibly be removed when --auto-fix supports multiple fixes at once:
# https://github.com/inclyc/nixf-diagnose/issues/13
"pkgs/servers/home-assistant/component-packages.nix"
# https://github.com/nix-community/nixd/issues/708
"nixos/maintainers/scripts/azure-new/examples/basic/system.nix"
];
};
settings.formatter.editorconfig-checker = {
command = "${pkgs.lib.getExe pkgs.editorconfig-checker}";
options = [
"-disable-indent-size"
# TODO: Remove this once this upstream issue is fixed:
# https://github.com/editorconfig-checker/editorconfig-checker/issues/505
"-disable-charset"
];
includes = [ "*" ];
priority = 1;
};
# TODO: Upstream this into treefmt-nix eventually:
# https://github.com/numtide/treefmt-nix/issues/387
settings.formatter.markdown-code-runner = {
command = pkgs.lib.getExe pkgs.markdown-code-runner;
options =
let
config = pkgs.writers.writeTOML "markdown-code-runner-config" {
presets.nixfmt = {
language = "nix";
command = [ (pkgs.lib.getExe pkgs.nixfmt) ];
};
};
in
[ "--config=${config}" ];
includes = [ "*.md" ];
};
programs.zizmor.enable = true;
}

View File

@@ -26,10 +26,6 @@
- `linux-kernel.DTB` is available as the `buildDTBs` parameter and passthru attribute on the kernel builders.
- `linux-kernel.{autoModules,preferBuiltin,extraConfig}` were already available as kernel builder parameters.
- The `img` argument of `vmTools` has been renamed to `kernelImage`, as it collided with the top-level `img` package.
Additionally, the kernel module tree used inside the VM has been split out of the `kernel` argument into a new `kernelModules` argument (defaulting to `kernel`).
Callers that overrode `kernel` with a module tree (e.g. from `pkgs.aggregateModules`) to make extra modules available must now pass it via `kernelModules` instead, keeping `kernel` pointing at a bootable kernel derivation.
- The ARMv5 Linux kernel build now uses a standard configuration and generates a standard compressed image instead of the deprecated legacy UBoot image format.
`lib.systems.{examples,platforms}.{sheevaplug,pogoplug4}` have been unified into `lib.systems.examples.armv5tel-multiplatform`.
Note that there is no official support for ARMv5 and it is not possible to build even a simple NixOS configuration out of the box.

View File

@@ -5103,6 +5103,12 @@
githubId = 68112;
name = "Simon";
};
cirno-999 = {
email = "reverene@protonmail.com";
github = "cirno-999";
githubId = 73712874;
name = "cirno-999";
};
citadelcore = {
email = "alex@arctarus.co.uk";
github = "RealityAnomaly";
@@ -11900,6 +11906,12 @@
github = "ivan-timokhin";
githubId = 9802104;
};
ivan-tkatchev = {
email = "tkatchev@gmail.com";
github = "ivan-tkatchev";
githubId = 650601;
name = "Ivan Tkatchev";
};
ivan770 = {
email = "ivan@ivan770.me";
github = "ivan770";
@@ -19796,11 +19808,6 @@
github = "nigelgbanks";
githubId = 487373;
};
nikhilmaddirala = {
name = "Nikhil Maddirala";
github = "nikhilmaddirala";
githubId = 4138581;
};
nikitavoloboev = {
email = "nikita.voloboev@gmail.com";
github = "nikivdev";
@@ -27119,7 +27126,7 @@
email = "taranarmo@gmail.com";
github = "taranarmo";
githubId = 11619234;
name = "Sergei Volkov";
name = "Sergey Volkov";
};
tarantoj = {
email = "taranto.james@gmail.com";

View File

@@ -24,8 +24,6 @@
- Support for the legacy UBoot image format has been removed from the initrd generators, as it is deprecated upstream and no longer used by any platform in Nixpkgs.
- Rustical migrates from `settings.http.host` and `settings.http.port` to `settings.http.bind` to support UNIX domain sockets as well as TCP sockets in one setting.
- `services.llama-cpp` is now configured using structured `services.llama-cpp.settings` attribute.
- Python 2 has been removed from the top-level package set, as it is long past end-of-life. The `python2`, `python27`, `python2Full`, `python27Full`, `python2Packages`, and `python27Packages` attributes, along with the legacy `python`, `pythonFull`, and `pythonPackages` aliases, now throw an error directing you to `python3`. The `isPy2` and `isPy27` package flags have been removed accordingly. The only remaining Python 2 interpreter is vendored inside the `resholve` package for its `oil` dependency and is not exposed for general use.
@@ -36,8 +34,6 @@
- `services.firezone.server.provision` has been removed due to it being unmaintanable. Remove all uses of provisioning and use the WebUI to configure firezone.
- The `services.syncthing` module now updates the Syncthing REST API using partial updates (`PATCH`) instead of full replacements (`PUT`) for general settings. Updating these settings was broken and prone to errors after updates, see [#428808](https://github.com/NixOS/nixpkgs/issues/428808) and [#528889](https://github.com/NixOS/nixpkgs/issues/528889). As a result, settings modified manually through the Syncthing Web UI that are not explicitly defined in your Nix configuration will now persist across rebuilds.
## Other Notable Changes {#sec-release-26.11-notable-changes}
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->

View File

@@ -262,8 +262,7 @@ let
"virtiofs"
"zfs"
];
kernel = config.boot.kernelPackages.kernel;
kernelModules = modulesTree;
kernel = modulesTree;
}).runInLinuxVM
(
pkgs.runCommand name

View File

@@ -250,8 +250,7 @@ let
"virtiofs"
"zfs"
];
kernel = config.boot.kernelPackages.kernel;
kernelModules = modulesTree;
kernel = modulesTree;
}).runInLinuxVM
(
pkgs.runCommand name

View File

@@ -14,7 +14,6 @@ let
escapeShellArg
filter
flatten
foldl'
getName
hasPrefix
hasSuffix
@@ -32,13 +31,13 @@ let
nameValuePair
optionalString
removePrefix
removeSuffix
replaceStrings
splitString
stringToCharacters
types
;
inherit (lib.strings) toJSON escapeC;
inherit (lib.strings) toJSON normalizePath escapeC;
in
let
@@ -99,60 +98,26 @@ let
|| hasPrefix a'.mountPoint b'.mountPoint
|| any (hasPrefix a'.mountPoint) b'.depends;
# Escape a path according to the systemd rules.
# Escape a path according to the systemd rules. FIXME: slow
# The rules are described in systemd.unit(5) as follows:
# The escaping algorithm operates as follows: given a string, any "/" character is replaced by "-", and all other characters which are not ASCII alphanumerics, ":", "_" or "." are replaced by C-style "\x2d" escapes. In addition, "." is replaced with such a C-style escape when it would appear as the first character in the escaped string.
# When the input qualifies as absolute file system path, this algorithm is extended slightly: the path to the root directory "/" is encoded as single dash "-". In addition, any leading, trailing or duplicate "/" characters are removed from the string before transformation. Example: /foo//bar/baz/ becomes "foo-bar-baz".
escapeSystemdPath =
let
# These don't depend on the path being escaped, so build them once
# rather than on every call.
escapeChar = escapeC (stringToCharacters " !\"#$%&'()*+,;<=>?@[\\]^`{|}~-");
escapeLeadingDot = escapeC [ "." ] ".";
slashesToDashes = replaceStrings [ "/" ] [ "-" ];
replacePrefix =
p: r: s:
(if hasPrefix p s then r + removePrefix p s else s);
in
s:
let
isAbsolute = hasPrefix "/" s;
# path_simplify(): collapse duplicate slashes and drop "." components.
rawComponents = filter (c: c != "" && c != ".") (splitString "/" s);
# systemd accepts ".." only where it is redundant: a leading ".." in an
# absolute path refers to the root's parent, i.e. the root itself, and is
# dropped. Any other ".." cannot be resolved without the filesystem, so
# the path is not normalized and systemd-escape errors on it.
simplified =
foldl'
(
acc: c:
if c == ".." then
# A leading ".." in an absolute path is the only redundant case.
if isAbsolute && acc.components == [ ] then acc else acc // { normalized = false; }
else
acc // { components = acc.components ++ [ c ]; }
)
{
components = [ ];
normalized = true;
}
rawComponents;
notNormalized = throw "escapeSystemdPath: ${s} is not a normalized path";
simplifiedPath =
if !simplified.normalized then
notNormalized
else if simplified.components != [ ] then
concatStringsSep "/" simplified.components
# The root directory, and - matching systemd-escape - the empty string.
else if isAbsolute || s == "" then
"/"
# A relative path that reduces to nothing (e.g. "."), which has no
# valid escaping.
else
notNormalized;
replacePrefix =
p: r: s:
(if (hasPrefix p s) then r + (removePrefix p s) else s);
trim = s: removeSuffix "/" (removePrefix "/" s);
normalizedPath = normalizePath s;
in
slashesToDashes (replacePrefix "." escapeLeadingDot (escapeChar simplifiedPath));
replaceStrings [ "/" ] [ "-" ] (
replacePrefix "." (escapeC [ "." ] ".") (
escapeC (stringToCharacters " !\"#$%&'()*+,;<=>=@[\\]^`{|}~-") (
if normalizedPath == "/" then normalizedPath else trim normalizedPath
)
)
);
# Quotes an argument for use in Exec* service lines.
# systemd accepts "-quoted strings with escape sequences, toJSON produces

View File

@@ -287,7 +287,7 @@ in
{
options.system.tools.${name}.enable = lib.mkEnableOption "${name} script" // {
default = config.nix.enable && !config.system.disableInstallerTools;
defaultText = "config.nix.enable && !config.system.disableInstallerTools";
defaultText = lib.literalExpression "config.nix.enable && !config.system.disableInstallerTools";
};
config = lib.mkIf config.system.tools.${name}.enable {

View File

@@ -107,9 +107,9 @@ in
services.displayManager.sessionPackages = [ cfg.package ];
systemd = lib.mkIf cfg.systemd.setPath.enable {
user.settings.Manager = {
DefaultEnvironment = "PATH=/run/wrappers/bin:/etc/profiles/per-user/%u/bin:/nix/var/nix/profiles/default/bin:/run/current-system/sw/bin:$PATH";
};
user.extraConfig = ''
DefaultEnvironment="PATH=/run/wrappers/bin:/etc/profiles/per-user/%u/bin:/nix/var/nix/profiles/default/bin:/run/current-system/sw/bin:$PATH"
'';
};
}

View File

@@ -164,7 +164,7 @@ in
};
};
networking.firewall.allowedTCPPorts = lib.optional cfg.openFirewall cfg.settings.port;
networking.firewall.allowedTCPPorts = lib.optional cfg.openFirewall cfg.port;
};
meta.maintainers = with lib.maintainers; [

View File

@@ -133,7 +133,6 @@ let
"v2ray"
"varnish"
"wireguard"
"xray"
"zfs-siebenmann"
"zfs"
]

View File

@@ -1,86 +0,0 @@
{
config,
lib,
pkgs,
options,
...
}:
let
cfg = config.services.prometheus.exporters.xray;
inherit (lib)
mkOption
types
concatStringsSep
optionalString
;
in
{
port = 9550;
extraOpts = {
xrayEndpoint = mkOption {
type = types.str;
default = "127.0.0.1:8080";
description = ''
Xray gRPC API endpoint.
'';
};
metricsPath = mkOption {
type = types.str;
default = "/scrape";
description = ''
Path under which to expose metrics.
'';
};
scrapeTimeout = mkOption {
type = types.int;
default = 5;
description = ''
Timeout in seconds for every individual scrape.
'';
};
logPath = mkOption {
type = types.str;
default = "/var/log/xray/access.log";
description = ''
Path to Xray access log file. Set to empty string to disable user metrics.
'';
};
logTimeWindow = mkOption {
type = types.int;
default = 5;
description = ''
Time window in minutes for user metrics.
'';
};
withUserMetrics = mkOption {
type = types.bool;
default = false;
description = ''
Collect user metrics from the Xray access log.
'';
};
};
serviceOpts = {
serviceConfig = {
ExecStart = ''
${pkgs.prometheus-xray-exporter}/bin/xray-exporter \
--listen ${cfg.listenAddress}:${toString cfg.port} \
--metrics-path ${cfg.metricsPath} \
--xray-endpoint ${cfg.xrayEndpoint} \
--scrape-timeout ${toString cfg.scrapeTimeout} \
${optionalString (cfg.logPath != "") "--log-path ${cfg.logPath}"} \
--log-time-window ${toString cfg.logTimeWindow} \
${optionalString cfg.withUserMetrics "--with-user-metrics"} \
${concatStringsSep " \\\n " cfg.extraFlags}
'';
};
};
}

View File

@@ -68,10 +68,13 @@ in
# when the master process receives USR2, it reloads itself using exec(argv[0]),
# so we create a symlink there and update it before reloading
"${pkgs.coreutils}/bin/ln -sf ${lib.getExe cfg.package} /run/haproxy/haproxy"
# when running the config test, don't be quiet so we can see what goes wrong
"/run/haproxy/haproxy -c -f ${haproxyCfg}"
];
ExecStart = "/run/haproxy/haproxy -Ws -f /etc/haproxy.cfg -p /run/haproxy/haproxy.pid";
# support reloading
ExecReload = [
"${lib.getExe cfg.package} -c -f ${haproxyCfg}"
"${pkgs.coreutils}/bin/ln -sf ${lib.getExe cfg.package} /run/haproxy/haproxy"
"${pkgs.coreutils}/bin/kill -USR2 $MAINPID"
];

View File

@@ -24,9 +24,6 @@ let
rc-manager = if config.networking.resolvconf.enable then "resolvconf" else "unmanaged";
};
keyfile = {
# NM's compiled-in default; made explicit so the tmpfiles rule below
# can follow it when the user redirects the keyfile store elsewhere.
path = "/etc/NetworkManager/system-connections";
unmanaged-devices = if cfg.unmanaged == [ ] then null else lib.concatStringsSep ";" cfg.unmanaged;
};
logging = {
@@ -604,27 +601,13 @@ in
systemd.packages = packages;
systemd.tmpfiles.settings.networkmanager = {
${configAttrs.keyfile.path}.d = {
mode = "0700";
user = "root";
group = "root";
};
# for dnsmasq.leases
"/var/lib/misc".d = {
mode = "0755";
user = "root";
group = "root";
};
systemd.tmpfiles.rules = [
"d /etc/NetworkManager/system-connections 0700 root root -"
"d /var/lib/misc 0755 root root -" # for dnsmasq.leases
# ppp isn't able to mkdir that directory at runtime
"/run/pppd/lock".d = {
mode = "0700";
user = "root";
group = "root";
};
};
systemd.tmpfiles.rules = pluginTmpfilesRules;
"d /run/pppd/lock 0700 root root -"
]
++ pluginTmpfilesRules;
systemd.services.NetworkManager = {
wantedBy = [ "multi-user.target" ];

View File

@@ -6,13 +6,15 @@
...
}:
with lib;
let
cfg = config.services.syncthing;
opt = options.services.syncthing;
defaultUser = "syncthing";
defaultGroup = defaultUser;
settingsFormat = pkgs.formats.json { };
cleanedConfig = lib.converge (lib.filterAttrsRecursive (_: v: v != null && v != { })) cfg.settings;
cleanedConfig = converge (filterAttrsRecursive (_: v: v != null && v != { })) cfg.settings;
isUnixGui = lib.strings.hasPrefix "unix://" cfg.guiAddress;
@@ -33,7 +35,7 @@ let
else
"${cfg.guiAddress}${path}";
devices = lib.mapAttrsToList (
devices = mapAttrsToList (
_: device:
device
// {
@@ -43,10 +45,31 @@ let
anyAutoAccept = builtins.any (dev: dev.autoAcceptFolders) devices;
folders = lib.pipe cfg.settings.folders [
(lib.filterAttrs (_: folder: folder.enable))
builtins.attrValues
];
folders = mapAttrsToList (
_: folder:
folder
//
throwIf (folder ? rescanInterval || folder ? watch || folder ? watchDelay)
''
The options services.syncthing.settings.folders.<name>.{rescanInterval,watch,watchDelay}
were removed. Please use, respectively, {rescanIntervalS,fsWatcherEnabled,fsWatcherDelayS} instead.
''
{
devices =
let
folderDevices = folder.devices;
in
map (
device:
if builtins.isString device then
{ deviceId = cfg.settings.devices.${device}.id; }
else if builtins.isAttrs device then
{ deviceId = cfg.settings.devices.${device.name}.id; } // device
else
throw "Invalid type for devices in folder '${folderName}'; expected list or attrset."
) folderDevices;
}
) (filterAttrs (_: folder: folder.enable) cfg.settings.folders);
jq = "${pkgs.jq}/bin/jq";
grep = lib.getExe pkgs.gnugrep;
@@ -156,7 +179,7 @@ let
[
# Now for each of these attributes, write the curl commands that are
# identical to both folders and devices.
(lib.mapAttrs (
(mapAttrs (
conf_type: s:
# We iterate the `conf` list now, and run a curl -X POST command for each, that
# should update that device/folder only.
@@ -278,7 +301,7 @@ let
+
/*
Now we update the other settings defined in cleanedConfig which are not
"folders", "devices", "guiPasswordFile", or "defaults".
"folders", "devices", or "guiPasswordFile".
*/
(lib.pipe cleanedConfig [
builtins.attrNames
@@ -286,35 +309,14 @@ let
"folders"
"devices"
"guiPasswordFile"
"defaults"
])
(map (subOption: ''
curl -X PATCH -d ${
curl -X PUT -d ${
lib.escapeShellArg (builtins.toJSON cleanedConfig.${subOption})
} ${curlAddressArgs "/rest/config/${subOption}"}
''))
(lib.concatStringsSep "\n")
])
+
# Handle the "defaults" option separately, as it has multiple sub-endpoints.
(lib.optionalString (cleanedConfig ? defaults) (
lib.pipe cleanedConfig.defaults [
builtins.attrNames
(map (
subOption:
let
# /rest/config/defaults/ignores only supports PUT
method = if subOption == "ignores" then "PUT" else "PATCH";
in
''
curl -X ${method} -d ${
lib.escapeShellArg (builtins.toJSON cleanedConfig.defaults.${subOption})
} ${curlAddressArgs "/rest/config/defaults/${subOption}"}
''
))
(lib.concatStringsSep "\n")
]
))
+
# Now we hash the contents of guiPasswordFile and use the result to update the gui password
(lib.optionalString (cfg.guiPasswordFile != null) ''
@@ -335,10 +337,10 @@ in
options = {
services.syncthing = {
enable = lib.mkEnableOption "Syncthing, a self-hosted open-source alternative to Dropbox and Bittorrent Sync";
enable = mkEnableOption "Syncthing, a self-hosted open-source alternative to Dropbox and Bittorrent Sync";
cert = lib.mkOption {
type = lib.types.nullOr lib.types.str;
cert = mkOption {
type = types.nullOr types.str;
default = null;
description = ''
Path to the `cert.pem` file, which will be copied into Syncthing's
@@ -346,8 +348,8 @@ in
'';
};
key = lib.mkOption {
type = lib.types.nullOr lib.types.str;
key = mkOption {
type = types.nullOr types.str;
default = null;
description = ''
Path to the `key.pem` file, which will be copied into Syncthing's
@@ -355,16 +357,16 @@ in
'';
};
guiPasswordFile = lib.mkOption {
type = lib.types.nullOr lib.types.str;
guiPasswordFile = mkOption {
type = types.nullOr types.str;
default = null;
description = ''
Path to file containing the plaintext password for Syncthing's GUI.
'';
};
overrideDevices = lib.mkOption {
type = lib.types.bool;
overrideDevices = mkOption {
type = types.bool;
default = true;
description = ''
Whether to delete the devices which are not configured via the
@@ -374,10 +376,10 @@ in
'';
};
overrideFolders = lib.mkOption {
type = lib.types.bool;
overrideFolders = mkOption {
type = types.bool;
default = !anyAutoAccept;
defaultText = lib.literalMD ''
defaultText = literalMD ''
`true` unless any device has the
[autoAcceptFolders](#opt-services.syncthing.settings.devices._name_.autoAcceptFolders)
option set to `true`.
@@ -390,47 +392,47 @@ in
'';
};
settings = lib.mkOption {
type = lib.types.submodule {
settings = mkOption {
type = types.submodule {
freeformType = settingsFormat.type;
options = {
# global options
options = lib.mkOption {
options = mkOption {
default = { };
description = ''
The options element contains all other global configuration options
'';
type = lib.types.submodule (
{ ... }:
type = types.submodule (
{ name, ... }:
{
freeformType = settingsFormat.type;
options = {
localAnnounceEnabled = lib.mkOption {
type = lib.types.nullOr lib.types.bool;
localAnnounceEnabled = mkOption {
type = types.nullOr types.bool;
default = null;
description = ''
Whether to send announcements to the local LAN, also use such announcements to find other devices.
'';
};
localAnnouncePort = lib.mkOption {
type = lib.types.nullOr lib.types.port;
localAnnouncePort = mkOption {
type = types.nullOr types.port;
default = null;
description = ''
The port on which to listen and send IPv4 broadcast announcements to.
'';
};
relaysEnabled = lib.mkOption {
type = lib.types.nullOr lib.types.bool;
relaysEnabled = mkOption {
type = types.nullOr types.bool;
default = null;
description = ''
When true, relays will be connected to and potentially used for device to device connections.
'';
};
urAccepted = lib.mkOption {
type = lib.types.nullOr lib.types.int;
urAccepted = mkOption {
type = types.nullOr types.int;
default = null;
description = ''
Whether the user has accepted to submit anonymous usage data.
@@ -439,16 +441,16 @@ in
'';
};
limitBandwidthInLan = lib.mkOption {
type = lib.types.nullOr lib.types.bool;
limitBandwidthInLan = mkOption {
type = types.nullOr types.bool;
default = null;
description = ''
Whether to apply bandwidth limits to devices in the same broadcast domain as the local device.
'';
};
maxFolderConcurrency = lib.mkOption {
type = lib.types.nullOr lib.types.int;
maxFolderConcurrency = mkOption {
type = types.nullOr types.int;
default = null;
description = ''
This option controls how many folders may concurrently be in I/O-intensive operations such as syncing or scanning.
@@ -461,7 +463,7 @@ in
};
# device settings
devices = lib.mkOption {
devices = mkOption {
default = { };
description = ''
Peers/devices which Syncthing should communicate with.
@@ -476,30 +478,30 @@ in
addresses = [ "tcp://192.168.0.10:51820" ];
};
};
type = lib.types.attrsOf (
lib.types.submodule (
type = types.attrsOf (
types.submodule (
{ name, ... }:
{
freeformType = settingsFormat.type;
options = {
name = lib.mkOption {
type = lib.types.str;
name = mkOption {
type = types.str;
default = name;
description = ''
The name of the device.
'';
};
id = lib.mkOption {
type = lib.types.str;
id = mkOption {
type = types.str;
description = ''
The device ID. See <https://docs.syncthing.net/dev/device-ids.html>.
'';
};
autoAcceptFolders = lib.mkOption {
type = lib.types.bool;
autoAcceptFolders = mkOption {
type = types.bool;
default = false;
description = ''
Automatically create or share folders that this device advertises at the default path.
@@ -514,7 +516,7 @@ in
};
# folder settings
folders = lib.mkOption {
folders = mkOption {
default = { };
description = ''
Folders which should be shared by Syncthing.
@@ -523,7 +525,7 @@ in
will be reverted on restart if [overrideFolders](#opt-services.syncthing.overrideFolders)
is enabled.
'';
example = lib.literalExpression ''
example = literalExpression ''
{
"/home/user/sync" = {
id = "syncme";
@@ -531,15 +533,15 @@ in
};
}
'';
type = lib.types.attrsOf (
lib.types.submodule (
type = types.attrsOf (
types.submodule (
{ name, ... }:
{
freeformType = settingsFormat.type;
options = {
enable = lib.mkOption {
type = lib.types.bool;
enable = mkOption {
type = types.bool;
default = true;
description = ''
Whether to share this folder.
@@ -548,12 +550,12 @@ in
'';
};
path = lib.mkOption {
path = mkOption {
# TODO for release 23.05: allow relative paths again and set
# working directory to cfg.dataDir
type = lib.types.str // {
check = x: lib.types.str.check x && (lib.substring 0 1 x == "/" || lib.substring 0 2 x == "~/");
description = lib.types.str.description + " starting with / or ~/";
type = types.str // {
check = x: types.str.check x && (substring 0 1 x == "/" || substring 0 2 x == "~/");
description = types.str.description + " starting with / or ~/";
};
default = name;
description = ''
@@ -564,24 +566,24 @@ in
'';
};
id = lib.mkOption {
type = lib.types.str;
id = mkOption {
type = types.str;
default = name;
description = ''
The ID of the folder. Must be the same on all devices.
'';
};
label = lib.mkOption {
type = lib.types.str;
label = mkOption {
type = types.str;
default = name;
description = ''
The label of the folder.
'';
};
type = lib.mkOption {
type = lib.types.enum [
type = mkOption {
type = types.enum [
"sendreceive"
"sendonly"
"receiveonly"
@@ -594,17 +596,17 @@ in
'';
};
devices = lib.mkOption {
type = lib.types.listOf (
lib.types.oneOf [
lib.types.str
(lib.types.submodule (
devices = mkOption {
type = types.listOf (
types.oneOf [
types.str
(types.submodule (
{ ... }:
{
freeformType = settingsFormat.type;
options = {
name = lib.mkOption {
type = lib.types.str;
name = mkOption {
type = types.str;
default = null;
description = ''
The name of a device defined in the
@@ -612,8 +614,8 @@ in
option.
'';
};
encryptionPasswordFile = lib.mkOption {
type = lib.types.nullOr lib.types.externalPath;
encryptionPasswordFile = mkOption {
type = types.nullOr types.externalPath;
default = null;
description = ''
Path to encryption password. If set, the file will be read during
@@ -635,14 +637,14 @@ in
'';
};
versioning = lib.mkOption {
versioning = mkOption {
default = null;
description = ''
How to keep changed/deleted files with Syncthing.
There are 4 different types of versioning with different parameters.
See <https://docs.syncthing.net/users/versioning.html>.
'';
example = lib.literalExpression ''
example = literalExpression ''
[
{
versioning = {
@@ -678,12 +680,13 @@ in
}
]
'';
type = lib.types.nullOr (
lib.types.submodule {
type =
with types;
nullOr (submodule {
freeformType = settingsFormat.type;
options = {
type = lib.mkOption {
type = lib.types.enum [
type = mkOption {
type = enum [
"external"
"simple"
"staggered"
@@ -695,12 +698,11 @@ in
'';
};
};
}
);
});
};
copyOwnershipFromParent = lib.mkOption {
type = lib.types.bool;
copyOwnershipFromParent = mkOption {
type = types.bool;
default = false;
description = ''
On Unix systems, tries to copy file/folder ownership from the parent directory (the directory its located in).
@@ -708,8 +710,8 @@ in
'';
};
ignorePatterns = lib.mkOption {
type = lib.types.nullOr (lib.types.listOf lib.types.str);
ignorePatterns = mkOption {
type = types.nullOr (types.listOf types.str);
default = null;
description = ''
Syncthing can be configured to ignore certain files in a folder using ignore patterns.
@@ -769,8 +771,8 @@ in
};
};
guiAddress = lib.mkOption {
type = lib.types.str;
guiAddress = mkOption {
type = types.str;
default = "127.0.0.1:8384";
apply = x: if lib.strings.hasPrefix "/" x then "unix://${x}" else x;
description = ''
@@ -778,16 +780,16 @@ in
'';
};
systemService = lib.mkOption {
type = lib.types.bool;
systemService = mkOption {
type = types.bool;
default = true;
description = ''
Whether to auto-launch Syncthing as a system service.
'';
};
user = lib.mkOption {
type = lib.types.str;
user = mkOption {
type = types.str;
default = defaultUser;
example = "yourUser";
description = ''
@@ -797,8 +799,8 @@ in
'';
};
group = lib.mkOption {
type = lib.types.str;
group = mkOption {
type = types.str;
default = defaultGroup;
example = "yourGroup";
description = ''
@@ -807,8 +809,8 @@ in
'';
};
all_proxy = lib.mkOption {
type = lib.types.nullOr lib.types.str;
all_proxy = mkOption {
type = with types; nullOr str;
default = null;
example = "socks5://address.com:1234";
description = ''
@@ -819,8 +821,8 @@ in
'';
};
dataDir = lib.mkOption {
type = lib.types.path;
dataDir = mkOption {
type = types.path;
default = "/var/lib/syncthing";
example = "/home/yourUser";
description = ''
@@ -830,15 +832,15 @@ in
configDir =
let
cond = lib.versionAtLeast config.system.stateVersion "19.03";
cond = versionAtLeast config.system.stateVersion "19.03";
in
lib.mkOption {
type = lib.types.path;
mkOption {
type = types.path;
description = ''
The path where the settings and keys will exist.
'';
default = cfg.dataDir + lib.optionalString cond "/.config/syncthing";
defaultText = lib.literalMD ''
default = cfg.dataDir + optionalString cond "/.config/syncthing";
defaultText = literalMD ''
* if `stateVersion >= 19.03`:
config.${opt.dataDir} + "/.config/syncthing"
@@ -848,17 +850,17 @@ in
'';
};
databaseDir = lib.mkOption {
type = lib.types.path;
databaseDir = mkOption {
type = types.path;
description = ''
The directory containing the database and logs.
'';
default = cfg.configDir;
defaultText = lib.literalExpression "config.${opt.configDir}";
defaultText = literalExpression "config.${opt.configDir}";
};
extraFlags = lib.mkOption {
type = lib.types.listOf lib.types.str;
extraFlags = mkOption {
type = types.listOf types.str;
default = [ ];
example = [ "--reset-deltas" ];
description = ''
@@ -866,8 +868,8 @@ in
'';
};
openDefaultPorts = lib.mkOption {
type = lib.types.bool;
openDefaultPorts = mkOption {
type = types.bool;
default = false;
example = true;
description = ''
@@ -881,37 +883,35 @@ in
'';
};
package = lib.mkPackageOption pkgs "syncthing" { };
package = mkPackageOption pkgs "syncthing" { };
};
};
imports = [
(lib.mkRemovedOptionModule [ "services" "syncthing" "useInotify" ] ''
(mkRemovedOptionModule [ "services" "syncthing" "useInotify" ] ''
This option was removed because Syncthing now has the inotify functionality included under the name "fswatcher".
It can be enabled on a per-folder basis through the web interface.
'')
(lib.mkRenamedOptionModule
(mkRenamedOptionModule
[ "services" "syncthing" "extraOptions" ]
[ "services" "syncthing" "settings" ]
)
(lib.mkRenamedOptionModule
(mkRenamedOptionModule
[ "services" "syncthing" "folders" ]
[ "services" "syncthing" "settings" "folders" ]
)
(lib.mkRenamedOptionModule
(mkRenamedOptionModule
[ "services" "syncthing" "devices" ]
[ "services" "syncthing" "settings" "devices" ]
)
(lib.mkRenamedOptionModule
(mkRenamedOptionModule
[ "services" "syncthing" "options" ]
[ "services" "syncthing" "settings" "options" ]
)
]
++
map
(
o: lib.mkRenamedOptionModule [ "services" "syncthing" "declarative" o ] [ "services" "syncthing" o ]
)
(o: mkRenamedOptionModule [ "services" "syncthing" "declarative" o ] [ "services" "syncthing" o ])
[
"cert"
"key"
@@ -924,7 +924,7 @@ in
###### implementation
config = lib.mkIf cfg.enable {
config = mkIf cfg.enable {
assertions = [
{
assertion = !(cfg.overrideFolders && anyAutoAccept);
@@ -941,7 +941,7 @@ in
}
];
networking.firewall = lib.mkIf cfg.openDefaultPorts {
networking.firewall = mkIf cfg.openDefaultPorts {
allowedTCPPorts = [ 22000 ];
allowedUDPPorts = [
21027
@@ -952,7 +952,7 @@ in
environment.systemPackages = [ cfg.package ];
systemd.packages = [ cfg.package ];
users.users = lib.mkIf (cfg.systemService && cfg.user == defaultUser) {
users.users = mkIf (cfg.systemService && cfg.user == defaultUser) {
${defaultUser} = {
group = cfg.group;
home = cfg.dataDir;
@@ -962,14 +962,14 @@ in
};
};
users.groups = lib.mkIf (cfg.systemService && cfg.group == defaultGroup) {
users.groups = mkIf (cfg.systemService && cfg.group == defaultGroup) {
${defaultGroup}.gid = config.ids.gids.syncthing;
};
systemd.services = {
# upstream reference:
# https://github.com/syncthing/syncthing/blob/main/etc/linux-systemd/system/syncthing%40.service
syncthing = lib.mkIf cfg.systemService {
syncthing = mkIf cfg.systemService {
description = "Syncthing service";
after = [ "network.target" ];
environment = {
@@ -986,13 +986,13 @@ in
User = cfg.user;
Group = cfg.group;
ExecStartPre =
lib.mkIf (cfg.cert != null || cfg.key != null)
mkIf (cfg.cert != null || cfg.key != null)
"+${pkgs.writers.writeBash "syncthing-copy-keys" ''
install -dm700 -o ${cfg.user} -g ${cfg.group} ${cfg.configDir}
${lib.optionalString (cfg.cert != null) ''
${optionalString (cfg.cert != null) ''
install -Dm644 -o ${cfg.user} -g ${cfg.group} ${toString cfg.cert} ${cfg.configDir}/cert.pem
''}
${lib.optionalString (cfg.key != null) ''
${optionalString (cfg.key != null) ''
install -Dm600 -o ${cfg.user} -g ${cfg.group} ${toString cfg.key} ${cfg.configDir}/key.pem
''}
''}";
@@ -1034,7 +1034,7 @@ in
];
};
};
syncthing-init = lib.mkIf (cleanedConfig != { }) {
syncthing-init = mkIf (cleanedConfig != { }) {
description = "Syncthing configuration updater";
requisite = [ "syncthing.service" ];
after = [ "syncthing.service" ];
@@ -1050,9 +1050,4 @@ in
};
};
};
meta.maintainers = with lib.maintainers; [
doronbehar
seudonym
];
}

View File

@@ -55,12 +55,12 @@ in
};
http = {
bind = mkOption {
host = mkOption {
type = types.str;
default = "unix:/run/rustical/sock";
example = "[::]:4000";
default = "[::1]";
example = "[::]";
description = ''
Address and port or UNIX socket path to bind the HTTP service to.
Host address to bind the HTTP service to.
:::{.note}
Rustical expects to be hosted behind a reverse proxy that
@@ -69,6 +69,14 @@ in
:::
'';
};
port = mkOption {
type = types.port;
default = 4000;
description = ''
Port to bind the HTTP service to.
'';
};
};
dav_push.enabled = mkOption {
@@ -118,19 +126,6 @@ in
};
config = mkIf cfg.enable {
warnings = lib.optionals (cfg.settings.http ? host || cfg.settings.http ? port) [
''
Rustical 0.13 deprecations
The following options are now deprecated and will be removed in a
future release:
- `services.rustical.settings.http.host`
- `services.rustical.settings.http.port`
Migrate to `services.rustical.settings.http.bind` instead.
''
];
# install the config at a path where the cli will find it
environment.etc."rustical/config.toml".source = configFile;

View File

@@ -370,16 +370,12 @@ in
"sleep.target"
];
script = "${lib.getExe cfg.package} data scrub ${fs}";
serviceConfig = {
Type = "oneshot";
Nice = 19;
IOSchedulingClass = "idle";
ExecStart = lib.join " " [
(lib.getExe cfg.package)
(if lib.versionOlder cfg.package.version "v1.34.0" then "data scrub" else "scrub")
(utils.escapeSystemdExecArg fs)
];
};
};
in

View File

@@ -1585,7 +1585,6 @@ in
sx = runTest ./sx.nix;
sympa = runTest ./sympa.nix;
syncthing = runTest ./syncthing/main.nix;
syncthing-defaults = runTest ./syncthing/defaults.nix;
syncthing-folders = runTest ./syncthing/folders.nix;
syncthing-guiPassword = runTest ./syncthing/guiPassword.nix;
syncthing-guiPasswordFile = runTest ./syncthing/guiPasswordFile.nix;

View File

@@ -89,17 +89,12 @@
else
"nixos-firewall-tool open tcp 80";
reset = if backend == "firewalld" then "firewall-cmd --reload" else "nixos-firewall-tool reset";
# https://github.com/firewalld/firewalld/issues/1571
waitForFirewalld = lib.optionalString (backend == "firewalld") ''
walled.wait_until_succeeds("firewall-cmd --state")
'';
in
''
start_all()
walled.wait_for_unit("${unit}")
walled.wait_for_unit("httpd")
${waitForFirewalld}
attacker.wait_for_unit("network.target")
# Local connections should still work.

View File

@@ -29,8 +29,6 @@
walled.wait_for_unit("firewalld")
walled.wait_for_unit("httpd")
# https://github.com/firewalld/firewalld/issues/1571
walled.wait_until_succeeds("firewall-cmd --state")
open.wait_for_unit("network.target")

View File

@@ -122,7 +122,7 @@ in
];
};
remote-from-file-backup = {
inherit passwordFile pruneOpts;
inherit passwordFile exclude pruneOpts;
initialize = true;
repositoryFile = pkgs.writeText "repositoryFile" remoteFromFileRepository;
paths = [
@@ -130,8 +130,7 @@ in
"/opt/a_dir/a_file_2"
];
dynamicFilesFrom = ''
# all files in /opt except for a_dir and excluded_file_*
find /opt -mindepth 1 -maxdepth 1 ! -name a_dir ! -name excluded_file_*
find /opt -mindepth 1 -maxdepth 1 ! -name a_dir # all files in /opt except for a_dir
'';
};
remote-from-command-backup = {

View File

@@ -1,42 +0,0 @@
{ lib, pkgs, ... }:
let
expectedPath = "/tmp/syncthing-default";
in
{
name = "syncthing-defaults";
meta.maintainers = with pkgs.lib.maintainers; [ seudonym ];
nodes.machine =
{ pkgs, ... }:
{
environment.systemPackages = [
pkgs.libxml2
pkgs.curl
];
services.syncthing = {
enable = true;
settings.defaults.folder.path = expectedPath;
};
};
testScript = ''
import json
machine.wait_for_unit("syncthing.service")
machine.wait_for_unit("syncthing-init.service")
# Get the API key by parsing the config.xml
api_key = machine.succeed(
"xmllint --xpath 'string(configuration/gui/apikey)' /var/lib/syncthing/.config/syncthing/config.xml"
).strip()
# Query the defaults/folder endpoint via Syncthing's REST API
config = json.loads(machine.succeed(
f"curl -Ssf -H 'X-API-Key: {api_key}' http://127.0.0.1:8384/rest/config/defaults/folder"
))
actual_path = config.get('path')
assert actual_path == "${expectedPath}", f"Default folder path is '{actual_path}', but expected '${expectedPath}'"
machine.log(f"Success: Default folder path is correctly set to '{actual_path}'")
'';
}

View File

@@ -36,19 +36,6 @@ in
assert !(builtins.tryEval (utils.escapeSystemdExecArgs [ null ])).success;
assert !(builtins.tryEval (utils.escapeSystemdExecArgs [ false ])).success;
assert !(builtins.tryEval (utils.escapeSystemdExecArgs [ (_: _) ])).success;
# escapeSystemdPath simplifies the path like systemd-escape --path does:
# "." components are dropped and duplicate/leading/trailing slashes removed.
assert utils.escapeSystemdPath "/mnt/./foo" == "mnt-foo";
assert utils.escapeSystemdPath "/foo//bar/baz/" == "foo-bar-baz";
assert utils.escapeSystemdPath "/" == "-";
assert utils.escapeSystemdPath "" == "-";
assert utils.escapeSystemdPath "/.hidden/x" == "\\x2ehidden-x";
assert utils.escapeSystemdPath "/foo?bar" == "foo\\x3fbar";
# A leading ".." in an absolute path is the root's parent, i.e. the root.
assert utils.escapeSystemdPath "/../foo" == "foo";
# Non-normalized paths can't be escaped, matching systemd-escape.
assert !(builtins.tryEval (utils.escapeSystemdPath "/mnt/../foo")).success;
assert !(builtins.tryEval (utils.escapeSystemdPath ".")).success;
{
description = "Echo to the journal";
serviceConfig.Type = "oneshot";

View File

@@ -3,35 +3,28 @@
lib,
...
}:
let
port = "4000";
in
{
name = "rustical";
meta.maintainers = pkgs.rustical.meta.maintainers;
containers.machine =
nodes.machine =
{
pkgs,
...
}:
{
services.rustical = {
enable = true;
settings.http.bind = "[::]:${port}";
};
services.rustical.enable = true;
environment.systemPackages = with pkgs; [ calendar-cli ];
};
testScript =
{
containers,
nodes,
...
}:
let
port = toString nodes.machine.services.rustical.settings.http.port;
url = "http://localhost:${toString port}";
createPrincipalScript = pkgs.writeScript "rustical-create-principal" ''

View File

@@ -26,9 +26,9 @@ let
url = "https://edgedl.me.gvt1.com/android/studio/ide-zips/2026.1.1.7/android-studio-quail1-rc2-linux.tar.gz";
};
latestVersion = {
version = "2026.1.2.7"; # "Android Studio Quail 2 | 2026.1.2 Canary 7"
sha256Hash = "sha256-LHszfAtM5ZLNbTZG0isb+aUW3uwp+zav/igHT4HDeEM=";
url = "https://edgedl.me.gvt1.com/android/studio/ide-zips/2026.1.2.7/android-studio-quail2-canary7-linux.tar.gz";
version = "2026.1.2.4"; # "Android Studio Quail 2 | 2026.1.2 Canary 4"
sha256Hash = "sha256-fnJYHZPy9bOZJ2leG2+Mr5JGH5HMc2HeMeYGHBUxJXo=";
url = "https://edgedl.me.gvt1.com/android/studio/ide-zips/2026.1.2.4/android-studio-quail2-canary4-linux.tar.gz";
};
in
{

View File

@@ -1014,13 +1014,6 @@ assertNoAdditions {
copilot-cmp = super.copilot-cmp.overrideAttrs {
dependencies = [ self.copilot-lua ];
patches = [
(fetchpatch {
name = "fix-deprecated-function-call.patch";
url = "https://github.com/zbirenbaum/copilot-cmp/commit/06430ebf99834ebc5d86c63816e409f4cb51fe79.patch";
sha256 = "sha256-YOJPFC+qbyURFU58tAiAqbamQLmi7ovnJGkOeOTUPH0=";
})
];
};
copilot-lualine = super.copilot-lualine.overrideAttrs {

View File

@@ -21,26 +21,26 @@ vscode-utils.buildVscodeMarketplaceExtension (finalAttrs: {
sources = {
"x86_64-linux" = {
arch = "linux-x64";
hash = "sha256-XA4xSd/sg9vhOGqcCNliHzloBxPZsgXW/dSkKp/RzM0=";
hash = "sha256-R3ab2IeY9QnDhZFk52/05pIv4A+sZU3kJ9Jn5uLRa4Y=";
};
"aarch64-linux" = {
arch = "linux-arm64";
hash = "sha256-l2NjDHBOMBzJT9Pis7sqSuFuG07eZPALximND+hVqDU=";
hash = "sha256-AE6zS8bJ4vec+P36NkxWYQ1tmcJG2WsFkv75+gRlrxA=";
};
"x86_64-darwin" = {
arch = "darwin-x64";
hash = "sha256-hE/1N28f9uAzg2fG3Hrc4z1kW21rdhtCRmF9SphqiFc=";
hash = "sha256-n1qV1Lrl65HSDthMc5/7hLppeNBO6067Z+Rf5+kxfnA=";
};
"aarch64-darwin" = {
arch = "darwin-arm64";
hash = "sha256-68CmDax385o0juoQWNX/NLx+tjIt9YytTHjRZkqAR98=";
hash = "sha256-g+lkUYym43o8cEFseWCrcSUUTx296u8DS9JvnU1dBLU=";
};
};
in
{
name = "claude-code";
publisher = "anthropic";
version = "2.1.175";
version = "2.1.172";
}
// sources.${stdenvNoCC.hostPlatform.system}
or (throw "Unsupported system ${stdenvNoCC.hostPlatform.system}");

View File

@@ -320,8 +320,8 @@ let
mktplcRef = {
name = "vscode-apollo";
publisher = "apollographql";
version = "2.6.6";
hash = "sha256-rvLZoLY0P031ZAjeYXNqPVYwRNkCRYUvedosxM51opc=";
version = "2.6.5";
hash = "sha256-WOt0bY/hi9tLJEo0bTAPLQhgM+2A7JPp0pypX4EcYNo=";
};
meta = {
changelog = "https://marketplace.visualstudio.com/items/apollographql.vscode-apollo/changelog";
@@ -1174,8 +1174,8 @@ let
mktplcRef = {
publisher = "DanielSanMedium";
name = "dscodegpt";
version = "3.22.1";
hash = "sha256-ln9DcfjW0QO7V6hF+QNqy+V13hbjWwhsisrgZPrk1R4=";
version = "3.20.14";
hash = "sha256-jD+e+s4iaX1p+KR3neJUwvPm/DQiX1gSTt595ryw8xE=";
};
meta = {
changelog = "https://marketplace.visualstudio.com/items/DanielSanMedium.dscodegpt/changelog";
@@ -1204,8 +1204,8 @@ let
mktplcRef = {
name = "dart-code";
publisher = "dart-code";
version = "3.136.0";
hash = "sha256-XPajPR0MX6TiUfaCw/+WYyc453cZOMaK1Uen6ND+RKY=";
version = "3.134.0";
hash = "sha256-/tWH2uGfOuyvF8mfga2YdGK1ok2UYQchaOeCC2n+IHk=";
};
meta.license = lib.licenses.mit;
@@ -1226,8 +1226,8 @@ let
mktplcRef = {
name = "databricks";
publisher = "databricks";
version = "2.11.0";
hash = "sha256-9izhQvZmfUVeKS0H89XXkN1bNP4+AZyUuetfD0kRJ/c=";
version = "2.10.8";
hash = "sha256-pBfD6HwPP9CybROC2W27CAq2RSAgRJ3ZrxvUOBzRyC8=";
};
meta = {
changelog = "https://marketplace.visualstudio.com/items/databricks.databricks/changelog";
@@ -1760,8 +1760,8 @@ let
mktplcRef = {
name = "foam-vscode";
publisher = "foam";
version = "0.43.1";
hash = "sha256-rZjdBzqXpSG4aCMjRCmIrWtQdmmh7vEJQLIuH65Ewf0=";
version = "0.42.0";
hash = "sha256-mk4ZgaBxLFPvrm3EU+hdidorhdWp7EGfRP0e/kARd1A=";
};
meta = {
changelog = "https://marketplace.visualstudio.com/items/foam.foam-vscode/changelog";
@@ -2030,8 +2030,8 @@ let
mktplcRef = {
name = "Go";
publisher = "golang";
version = "0.54.0";
hash = "sha256-o1SJjR6eQcGWN9BGoN5CBTdn6RsNG2a0+p/ZDcywzr0=";
version = "0.52.2";
hash = "sha256-8g+r4Mv06Bx1W3yAXWVbtz1B/gXPcRdmaV0tPkTP6Gk=";
};
meta = {
changelog = "https://marketplace.visualstudio.com/items/golang.Go/changelog";
@@ -3587,8 +3587,8 @@ let
mktplcRef = {
name = "vscode-just-syntax";
publisher = "nefrob";
version = "0.10.2";
hash = "sha256-F7H9f24TjB3JtWLVICYwRTjxa+GTOpYN7IzSlU1audo=";
version = "0.10.1";
hash = "sha256-s/JxIALrYb/dew1CdvvM1UmnewyRcJPB/ETJ/Ai2QJA=";
};
meta = {
changelog = "https://marketplace.visualstudio.com/items/nefrob.vscode-just-syntax/changelog";
@@ -4130,8 +4130,8 @@ let
mktplcRef = {
name = "scala";
publisher = "scala-lang";
version = "0.5.10";
hash = "sha256-hGJbu/tRt1Du/OYuui7z/CINlMug/SlUQjPNy8Rvkxg=";
version = "0.5.9";
hash = "sha256-zgCqKwnP7Fm655FPUkD5GL+/goaplST8507X890Tnhc=";
};
meta = {
license = lib.licenses.mit;
@@ -4222,8 +4222,8 @@ let
mktplcRef = {
publisher = "shd101wyy";
name = "markdown-preview-enhanced";
version = "0.8.30";
hash = "sha256-wtI+W+ZNxXv8WonGDmSt1NxeF8WN8fqPCuMougERxDE=";
version = "0.8.27";
hash = "sha256-v4CZul1uuNlMrIgfml9EjUy0I626GkBArNH7F+5Z/dA=";
};
meta = {
description = "Provides a live preview of markdown using either markdown-it or pandoc";
@@ -4534,8 +4534,8 @@ let
mktplcRef = {
name = "svelte-vscode";
publisher = "svelte";
version = "110.2.0";
hash = "sha256-5WCaYhWA6soB2AALFY/5Z7Y8IBAj5/4XSR/I4jHhth8=";
version = "110.1.0";
hash = "sha256-i6FObecuMylaCZYl/KLMscE07JIzQz+NSkfRdxtSfgg=";
};
meta = {
changelog = "https://github.com/sveltejs/language-tools/releases";
@@ -5134,8 +5134,8 @@ let
mktplcRef = {
name = "vscode-java-pack";
publisher = "vscjava";
version = "0.31.0";
hash = "sha256-E0GJoITZIh2XemVpyPh3gAEtlvM2PZHgNzZDctSpwIA=";
version = "0.30.5";
hash = "sha256-MlBACPD880QvsQpPDXe5384dlrMeKMSX1CUSIfzwwPo=";
};
meta = {
description = "Popular extensions for Java development that provides Java IntelliSense, debugging, testing, Maven/Gradle support, project management and more";

View File

@@ -84,8 +84,8 @@ buildVscodeMarketplaceExtension {
mktplcRef = {
name = "remote-ssh";
publisher = "ms-vscode-remote";
version = "0.124.0";
hash = "sha256-GokSJOEpHomkBbkPUBhVXWZCrGbi5oZTlw5PFV12ZBY=";
version = "0.123.0";
hash = "sha256-/9NyRSNUCx65FOA6w86e2DvrynAHRleIULzDpneV25E=";
};
postPatch = ''

View File

@@ -11,7 +11,7 @@ vscode-utils.buildVscodeMarketplaceExtension {
name = "tinymist";
publisher = "myriad-dreamin";
inherit (tinymist) version;
hash = "sha256-13/qw2BZ/WG+TYNVncJ/PuFLaUhlAn63zaa27JcLITE=";
hash = "sha256-8EjKZl0fWpdgaYHeZDTbVS8EpwbVpt9pYWXq85u1bEQ=";
};
__structuredAttrs = true;

View File

@@ -11,22 +11,22 @@ vscode-utils.buildVscodeMarketplaceExtension {
sources = {
"x86_64-linux" = {
arch = "linux-x64";
hash = "sha256-cP/oFn19CZ/G3kjdHNZGqXvoDE1qUtg6xrg/2MO14Lo=";
hash = "sha256-vm12qVJ6+KbyHdzB/Q4SrEZDUKVsKJufjbVn9OBGbns=";
};
"x86_64-darwin" = {
arch = "darwin-x64";
hash = "sha256-wtk8SasxXEQ3pCJpVTWR8wcY/bNaIZmImbAtrFWYWOo=";
hash = "sha256-1dunJX+7oL2RqsK2pCScKAe/O0b3ypfgsuHXoDvvChM=";
};
"aarch64-darwin" = {
arch = "darwin-arm64";
hash = "sha256-XYdwVoDqK+88ZYUm6APyamFNx6XlYjy0R4CIhSMuRmU=";
hash = "sha256-5IG0H3QIY6ll77aZ6/8uFeIpgjupjBx0GfFJaX7Wep4=";
};
};
in
{
publisher = "redhat";
name = "vscode-xml";
version = "0.29.3";
version = "0.29.2";
}
// sources.${stdenvNoCC.hostPlatform.system} or { };

View File

@@ -7,8 +7,8 @@ vscode-utils.buildVscodeMarketplaceExtension {
mktplcRef = {
name = "claude-dev";
publisher = "saoudrizwan";
version = "3.89.2";
hash = "sha256-lDt/xn1PFs0UDg0rOOun8Bl/FTXSjvQ//ETkoHFypAM=";
version = "3.86.2";
hash = "sha256-Peoja4AQUPlwAKeJMOziGjd/WU4wz5B8cplCTh20yTA=";
};
meta = {

View File

@@ -10,8 +10,8 @@ vscode-utils.buildVscodeMarketplaceExtension {
mktplcRef = {
name = "markdown-pdf";
publisher = "yzane";
version = "2.1.0";
hash = "sha256-3N4de2jgLbBlDGouFU7XoH4ElL9En9+2ZprMqoL03/E=";
version = "2.0.1";
hash = "sha256-XykOUbCiTVtfmp5H9UC4gFPBxmrIJR7jv9VvLljOSM0=";
};
nativeBuildInputs = [
jq

View File

@@ -188,7 +188,6 @@ stdenv.mkDerivation (
passthru = {
inherit
executableName
iconName
longName
tests
updateScript

View File

@@ -52,11 +52,6 @@
let
inherit (vscode) executableName longName;
# The wrapped editor may override `iconName` (e.g. code-cursor, windsurf,
# kiro and antigravity-ide all set it to a name without the `vs` prefix). Read
# the real value from the package, falling back to the generic.nix default for
# editors built before `iconName` was exposed via passthru.
iconName = vscode.iconName or "vs${executableName}";
wrappedPkgVersion = lib.getVersion vscode;
wrappedPkgName = lib.removeSuffix "-${wrappedPkgVersion}" vscode.name;
@@ -105,12 +100,7 @@ runCommand "${wrappedPkgName}-with-extensions-${wrappedPkgVersion}"
mkdir -p "$out/share/applications"
mkdir -p "$out/share/pixmaps"
ln -sT "${vscode}/share/pixmaps/${iconName}.png" "$out/share/pixmaps/${iconName}.png"
# Carry over the themed icons too; the .desktop entry's `Icon=` is
# resolved against the icon theme before falling back to pixmaps.
if [ -d "${vscode}/share/icons" ]; then
ln -sT "${vscode}/share/icons" "$out/share/icons"
fi
ln -sT "${vscode}/share/pixmaps/vs${executableName}.png" "$out/share/pixmaps/vs${executableName}.png"
ln -sT "${vscode}/share/applications/${executableName}.desktop" "$out/share/applications/${executableName}.desktop"
ln -sT "${vscode}/share/applications/${executableName}-url-handler.desktop" "$out/share/applications/${executableName}-url-handler.desktop"
makeWrapper "${vscode}/bin/${executableName}" "$out/bin/${executableName}" ${extensionsFlag}

View File

@@ -5,13 +5,13 @@
}:
mkLibretroCore {
core = "mame2003";
version = "0-unstable-2026-06-05";
version = "0-unstable-2026-05-22";
src = fetchFromGitHub {
owner = "libretro";
repo = "mame2003-libretro";
rev = "299789ce642b34c2679cfd89d7ecf06b09851bc1";
hash = "sha256-FX+onEaaQUdcjAvgsrdW0m408oCSXJEJHQncrN2Uk/Y=";
rev = "099c2ef21c67c463a97b9ab19403e58b31c69740";
hash = "sha256-D3/d/TzTjK0t4bh6Il9CMfHTHdYgMsQNE52PxjrXeyE=";
};
# Fix build with GCC 14

View File

@@ -1,10 +1,10 @@
{
"chromium": {
"version": "149.0.7827.114",
"version": "149.0.7827.102",
"chromedriver": {
"version": "149.0.7827.115",
"hash_darwin": "sha256-DOhM1knKphvLNyrkf0uvb9NZ3kBwSuVN5hkQLqAZR1Y=",
"hash_darwin_aarch64": "sha256-HXWvAjMdMMbeF8DsgFKNM+S0ZEYr2M8Wj0uUZC7tmxY="
"version": "149.0.7827.103",
"hash_darwin": "sha256-3ws6RyF5SwjRcdo4IY+MzqcaZ6214dCVV3YB4YL+h6k=",
"hash_darwin_aarch64": "sha256-S8/dGAlipcYXzZIEJEGAnvsu3ilqjnBb8IdXUxGrp2o="
},
"deps": {
"depot_tools": {
@@ -21,8 +21,8 @@
"DEPS": {
"src": {
"url": "https://chromium.googlesource.com/chromium/src.git",
"rev": "5be7af702aa73ed64f47858cecc86290e42f2a20",
"hash": "sha256-R2vnW3Wa+REar23OhyFWzOo44F8NN9IqH7GjWJ1g1lo=",
"rev": "112f665d98a2fe84b156c74fbea2aed742f16c15",
"hash": "sha256-75PYsss5Qob493WCc28XHncjFIlvUr2HQx79w5UmK/k=",
"recompress": true
},
"src/third_party/clang-format/script": {
@@ -823,7 +823,7 @@
}
},
"ungoogled-chromium": {
"version": "149.0.7827.114",
"version": "149.0.7827.53",
"deps": {
"depot_tools": {
"rev": "45dedc4c3b87c982fd846b3dc599b233ed3aff90",
@@ -835,16 +835,16 @@
"hash": "sha256-oFs7fZAZEs/gQ7X1A4uigo9+Y+iEN9sMMQYwAjEuD04="
},
"ungoogled-patches": {
"rev": "149.0.7827.114-1",
"hash": "sha256-F0pIlZM/EBPLIZxD8jyLX7HWe0vFn2HXs2vkM5+Xplg="
"rev": "149.0.7827.53-1",
"hash": "sha256-j4maEZiU38tqs57cTmg8OhIAAQcT+liWU0fDA7GMZHM="
},
"npmHash": "sha256-pF0JtwFpPC4/fodbhSJnQKkczA9WlDg4VqEAy9aDVLg="
},
"DEPS": {
"src": {
"url": "https://chromium.googlesource.com/chromium/src.git",
"rev": "5be7af702aa73ed64f47858cecc86290e42f2a20",
"hash": "sha256-R2vnW3Wa+REar23OhyFWzOo44F8NN9IqH7GjWJ1g1lo=",
"rev": "9d2c8156a72129edca4785abb98866fad60ea338",
"hash": "sha256-RPFeHTWAeJUzbWU7QyRPmT3sqf3bAEuJ7/IJ3TP40pA=",
"recompress": true
},
"src/third_party/clang-format/script": {
@@ -914,8 +914,8 @@
},
"src/third_party/angle": {
"url": "https://chromium.googlesource.com/angle/angle.git",
"rev": "4b8c7f0f321952bba4f81056b4aa57d0d6428642",
"hash": "sha256-ADG0WfkeFRq4NF0m+s3a/N5+u3q4ApExuWUnV3m5uAI="
"rev": "ded782bca9d5f165d1c4a70124cdc5384043a8b3",
"hash": "sha256-7+Hhx/V554hO3zzGuIZswkaRVDElz7ost7vbnf2wyZc="
},
"src/third_party/angle/third_party/glmark2/src": {
"url": "https://chromium.googlesource.com/external/github.com/glmark2/glmark2",
@@ -954,8 +954,8 @@
},
"src/third_party/dawn": {
"url": "https://dawn.googlesource.com/dawn.git",
"rev": "c1179de12ec3ed8feb91e922f12a90ae33f4a8cf",
"hash": "sha256-VFEBqbSsn/3jqRGJgTM/r5DEtfhvTOIfS9fGIKzYo9I="
"rev": "1815a06195d9c74ac737a96f87c05111926e04f8",
"hash": "sha256-71KbW0w60VB67+HM48WpOo18hrVId4/4QBDl+xl5pgo="
},
"src/third_party/dawn/third_party/glfw3/src": {
"url": "https://chromium.googlesource.com/external/github.com/glfw/glfw",
@@ -1374,8 +1374,8 @@
},
"src/third_party/libyuv": {
"url": "https://chromium.googlesource.com/libyuv/libyuv.git",
"rev": "644251f252a84bf8ce91ff0aca86a9b16b069ab8",
"hash": "sha256-DsoOY8bg0sPOF8tF67Gk7fRqdQzG1hc9fVMlZVjKWU4="
"rev": "a7849e8a5e9c996bef2332efae897e7301055a20",
"hash": "sha256-ftOTwWULKNplqjQQ9oM9t+PU3S6/ySDOBoE5E/HWuHg="
},
"src/third_party/lss": {
"url": "https://chromium.googlesource.com/linux-syscall-support.git",
@@ -1429,8 +1429,8 @@
},
"src/third_party/perfetto": {
"url": "https://chromium.googlesource.com/external/github.com/google/perfetto.git",
"rev": "97c58a94bb6495c4e202467fb1c55eaa22b5670f",
"hash": "sha256-qtClkWAluLDRZn7yrHLU7qp9szP+/WsiG5JZZzRKd38="
"rev": "846203c4b3b25f834a0bebc101fa8e1b8f9d0ca9",
"hash": "sha256-YOgOau9vNrOOqyUf6WylI/oQ2drCxoW7jnrHt7fAfQM="
},
"src/third_party/protobuf-javascript/src": {
"url": "https://chromium.googlesource.com/external/github.com/protocolbuffers/protobuf-javascript",
@@ -1474,8 +1474,8 @@
},
"src/third_party/skia": {
"url": "https://skia.googlesource.com/skia.git",
"rev": "92a56ebeef43061f4878aa869aa1f2160265c24c",
"hash": "sha256-QEY9Wy2guRuS4CXeXHUhUNigCJWWndnNCbWQmaSYJ/A="
"rev": "53348aa333da02b77c4b5797e2de722f5abde7d0",
"hash": "sha256-Qh0ytA45zP67VQE417iUtjPcJmJmDzcu4BAatyh6p0w="
},
"src/third_party/smhasher/src": {
"url": "https://chromium.googlesource.com/external/smhasher.git",
@@ -1609,8 +1609,8 @@
},
"src/third_party/webrtc": {
"url": "https://webrtc.googlesource.com/src.git",
"rev": "e8b4d4c5952a8fb7b35c2a6cba4e8c3de2ea2e1e",
"hash": "sha256-94U9URlFGLYe94KCFU0giY9bBbrHNDCBr9GEwbRbOK4="
"rev": "5a7e0ff57a52e12f834d64c57d040d1105ea17f2",
"hash": "sha256-V1accCSU6LV5Ixhd+HBOvqZ7GxT57ALsvaF8ABLIXxM="
},
"src/third_party/wuffs/src": {
"url": "https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c.git",
@@ -1639,8 +1639,8 @@
},
"src/v8": {
"url": "https://chromium.googlesource.com/v8/v8.git",
"rev": "16ef80c1f5d3cfade812bd1743952a4cfd480a31",
"hash": "sha256-GI0NWA0XYGocxZp3+lPen6BkwaG7X3EDaEWM9rejgkI="
"rev": "5a39b146dd810a52812202fae891281d5dc4db7d",
"hash": "sha256-UbX88nE4VyWUm4PvFTOy3mC04MzSdgC006ZpQrEY8cQ="
}
}
}

View File

@@ -16,3 +16,4 @@ treat_warnings_as_errors=false
use_official_google_api_keys=false
use_unofficial_version_number=false
v8_drumbrake_bounds_checks=true
v8_enable_drumbrake=true

View File

@@ -72,15 +72,15 @@ buildGoModule (finalAttrs: {
''
+ lib.optionalString stdenv.hostPlatform.isDarwin ''
# skipping as test fails in sandbox
substituteInPlace pkg/cmd/dependency_build_test.go \
substituteInPlace cmd/helm/dependency_build_test.go \
--replace-fail "TestDependencyBuildCmd" "SkipDependencyBuildCmd"
substituteInPlace pkg/cmd/dependency_update_test.go \
substituteInPlace cmd/helm/dependency_update_test.go \
--replace-fail "TestDependencyUpdateCmd" "SkipDependencyUpdateCmd"
# skipping as test fails in sandbox
substituteInPlace pkg/cmd/install_test.go \
substituteInPlace cmd/helm/install_test.go \
--replace-fail "TestInstall" "SkipInstall"
# skipping as test fails in sandbox
substituteInPlace pkg/cmd/pull_test.go \
substituteInPlace cmd/helm/pull_test.go \
--replace-fail "TestPullCmd" "SkipPullCmd" \
--replace-fail "TestPullWithCredentialsCmd" "SkipPullWithCredentialsCmd"
'';

View File

@@ -110,13 +110,13 @@
"vendorHash": null
},
"bpg_proxmox": {
"hash": "sha256-10cdMZSGJuhUx432/2NazA8T88zclcnbolcU31wfIEM=",
"hash": "sha256-HQDXazrYuO4Sy2p5M3T+ic34GXaLuAt/oPlUPC6kHSk=",
"homepage": "https://registry.terraform.io/providers/bpg/proxmox",
"owner": "bpg",
"repo": "terraform-provider-proxmox",
"rev": "v0.109.0",
"rev": "v0.108.0",
"spdx": "MPL-2.0",
"vendorHash": "sha256-Tx5DjRLZJXm0GjKRaogra7m55Opeu9LVvT25UW5q4D0="
"vendorHash": "sha256-pk4FEx/GpI3pbRt1zXEnTwfEy2renn8gh0mVbBiwUE0="
},
"brightbox_brightbox": {
"hash": "sha256-pwFbCP+qDL/4IUfbPRCkddkbsEEeAu7Wp12/mDL0ABA=",
@@ -128,13 +128,13 @@
"vendorHash": "sha256-/dOiXO2aPkuZaFiwv/6AXJdIADgx8T7eOwvJfBBoqg8="
},
"buildkite_buildkite": {
"hash": "sha256-MoucQgeikKMh4P8nRWIJ5SkLFGeVfDutsSBUSowz6VM=",
"hash": "sha256-R9jG7ww2iEU1qif6NeV0lpgG6Nv5rsh5h+IVhSscuKI=",
"homepage": "https://registry.terraform.io/providers/buildkite/buildkite",
"owner": "buildkite",
"repo": "terraform-provider-buildkite",
"rev": "v1.34.0",
"rev": "v1.33.0",
"spdx": "MIT",
"vendorHash": "sha256-uYyj6GSV5bWEfRTOODMuReEHe9wnF4cVoHM9rBMpgmM="
"vendorHash": "sha256-n6+8mufcH3rNe4yLkc+7NkV7UwNwyIVzDFStSC7iqE4="
},
"camptocamp_pass": {
"hash": "sha256-GQ2g7VyK+eeBqW3LMR4U0gMYsvQnG3y+KEKKkvnmfsk=",
@@ -155,13 +155,13 @@
"vendorHash": "sha256-SO3CX7pZ+q7ytz/55cxTPlW7ByY1zKhxkQxMiqAvm8o="
},
"checkly_checkly": {
"hash": "sha256-9kcZXbrfl8ovrg1w3bWdta/ABnLtVIfseRptZn5NrgI=",
"hash": "sha256-C85OWP4y5Kh4coaUwxW07bgQWrB6LntEKtXia3Xu7Bg=",
"homepage": "https://registry.terraform.io/providers/checkly/checkly",
"owner": "checkly",
"repo": "terraform-provider-checkly",
"rev": "v1.25.0",
"rev": "v1.24.0",
"spdx": null,
"vendorHash": "sha256-7XgTkzYBfkpF8Dd4YsgpB+YIfkANsg/60b3AyO8Y8FA="
"vendorHash": "sha256-CkrDrGP20Gby2wWsl+un3hp3u5gAmWOpjzgs9HQytjg="
},
"ciscodevnet_aci": {
"hash": "sha256-Z3qat3S7dv5kGpc82RxAwlgp3hfscFbkokVsgGnBRHY=",
@@ -319,11 +319,11 @@
"vendorHash": null
},
"digitalocean_digitalocean": {
"hash": "sha256-gvLdDUFg8WoBg8+351CCK84LhLJlsV6Nqm9kbxlQQ50=",
"hash": "sha256-Ekuvv1D3f+ePvTpuye207/y5HGf+2WqtdeFgQCtjQ2w=",
"homepage": "https://registry.terraform.io/providers/digitalocean/digitalocean",
"owner": "digitalocean",
"repo": "terraform-provider-digitalocean",
"rev": "v2.89.0",
"rev": "v2.87.0",
"spdx": "MPL-2.0",
"vendorHash": null
},
@@ -409,13 +409,13 @@
"vendorHash": null
},
"fastly_fastly": {
"hash": "sha256-S6VIwqwTPr276TTqgEFTxhE5c97lCd8/5dJnDGori4s=",
"hash": "sha256-dWT0E6eugOD79Cn51P0KQbwwY1seSL1NvZVzjWxtGNs=",
"homepage": "https://registry.terraform.io/providers/fastly/fastly",
"owner": "fastly",
"repo": "terraform-provider-fastly",
"rev": "v9.2.1",
"rev": "v9.2.0",
"spdx": "MPL-2.0",
"vendorHash": "sha256-8QF9gOuvuZwAoFWePjti4h6VzmA+TGiFaC/ShuEAZqA="
"vendorHash": "sha256-+5eeZdU5iS/StHuo/7KRkdM+DW4IDvJ52BDKNZI7lAc="
},
"flexibleenginecloud_flexibleengine": {
"hash": "sha256-yEZ9JiUSqFFbfqzOOD59ZBv4yFCeUBBKlp6aiUqDqiM=",
@@ -517,13 +517,13 @@
"vendorHash": "sha256-DyYT8SK5/IbkXWvzRTF6TjTi4aIpokLPOz5H/O05YU8="
},
"hashicorp_awscc": {
"hash": "sha256-/4NhHZs/8LwrL+TXoOGyszvHZcKps5tDu7uewKeNmb4=",
"hash": "sha256-ywRxQKGrQ+kT08gNgNgdT5FmvsHYucT/W29+uyz1mwg=",
"homepage": "https://registry.terraform.io/providers/hashicorp/awscc",
"owner": "hashicorp",
"repo": "terraform-provider-awscc",
"rev": "v1.88.0",
"rev": "v1.87.0",
"spdx": "MPL-2.0",
"vendorHash": "sha256-vTJI/71O8u6DqAF3E7pde1Z1qsoyTTJMNen3AvRomls="
"vendorHash": "sha256-Bf2XnjX0G5iufWOi6E/imRQ+qgr8Yse73rrnY8CbSMg="
},
"hashicorp_azuread": {
"hash": "sha256-BkQwLkGu8Xmb4laoXOLDbSPyya5v8HBBNIya5hUBlV8=",
@@ -851,13 +851,13 @@
"vendorHash": "sha256-OgKOjLwDQxJiv+VWdOzjMcUDPu9LOuhyTRyLyM39vLM="
},
"linode_linode": {
"hash": "sha256-aOLto01ntce/l+1ZcQf5Rsdu6ptgpYWpf5JpJ0zRUNs=",
"hash": "sha256-ZDU8rEmbq9tIXq9+jL30i5GnTIWM6lMJ+rljVJhBJis=",
"homepage": "https://registry.terraform.io/providers/linode/linode",
"owner": "linode",
"repo": "terraform-provider-linode",
"rev": "v3.14.1",
"rev": "v3.14.0",
"spdx": "MPL-2.0",
"vendorHash": "sha256-dnvv6sSzEUZ4Hbrq/pAgi/O1RyxCx89omCVzvCe70S0="
"vendorHash": "sha256-6wWNt0TDqqwtRFMCLH81WQ55XLEn4dHx+prM0DA+e4U="
},
"loafoe_htpasswd": {
"hash": "sha256-1HCvAGWsYlcYCA8iOmBb/AawxHPLuoxxQWLzNy0x79M=",
@@ -1175,11 +1175,11 @@
"vendorHash": "sha256-InCRL4k6v0avmnNja+b6Ozg5+injxa8EmrRHIWrq4Ag="
},
"sap_btp": {
"hash": "sha256-kTH3diM9jbncv80+I//mj+zCWGosIXjjMETXa6IS2HU=",
"hash": "sha256-8YQxOUgQkmH7FZFqIbSdR3QfwPcPMIV7fWwnPtfxjbc=",
"homepage": "https://registry.terraform.io/providers/SAP/btp",
"owner": "SAP",
"repo": "terraform-provider-btp",
"rev": "v1.23.1",
"rev": "v1.22.0",
"spdx": "Apache-2.0",
"vendorHash": "sha256-w/AmSHydCeyp/EURgPY2c/E2LjqAXXCORI53X1hEdxY="
},
@@ -1202,13 +1202,13 @@
"vendorHash": "sha256-MIO0VHofPtKPtynbvjvEukMNr5NXHgk7BqwIhbc9+u0="
},
"selectel_selectel": {
"hash": "sha256-xoIwvrjeuY1T+7pyBQfoU8orWC4qMuQ9IgbLYIEzLIA=",
"hash": "sha256-1KHFXjYJIWgdZo5nAsckQI9ff+74yO0A5Q65symJjlw=",
"homepage": "https://registry.terraform.io/providers/selectel/selectel",
"owner": "selectel",
"repo": "terraform-provider-selectel",
"rev": "v8.1.0",
"rev": "v8.0.1",
"spdx": "MPL-2.0",
"vendorHash": "sha256-Y2oj1DIn80CCdJ7ZM/p6sGqT64dGIEFg/vXXSv6B+iE="
"vendorHash": "sha256-ICMbdEr2vGKZ1ETZLmmrW8h+bzPkpSQk9U3qF+LHPzk="
},
"siderolabs_talos": {
"hash": "sha256-/NACmEpodBNx+Q2M9y3JnKpw9a3Y1eFDdTQ+48MXAc8=",

View File

@@ -200,8 +200,8 @@ rec {
mkTerraform = attrs: pluggable (generic attrs);
terraform_1 = mkTerraform {
version = "1.15.6";
hash = "sha256-FH5s0uyRESytv/1xloU3HXuH2ApjBC3FfEqFqIgBgFs=";
version = "1.15.5";
hash = "sha256-U3A+Zwe+oj107z635uxzt4y06hvbv9sfokknYdFIglE=";
vendorHash = "sha256-3y9+KCmvskJ24X4F6gSLglmsl4hUlvzBb/ep4kcbS8A=";
patches = [ ./provider-path-0_15.patch ];
passthru = {

View File

@@ -111,7 +111,6 @@
gpgmepp,
libwebp,
abseil-cpp,
libfreehand,
libepubgen,
libetonyek,
libpng,
@@ -519,7 +518,6 @@ stdenv.mkDerivation (finalAttrs: {
libatomic_ops
libcdr
libcmis
libfreehand
libe-book
libepoxy
libepubgen
@@ -664,7 +662,6 @@ stdenv.mkDerivation (finalAttrs: {
"--with-system-headers"
"--with-system-libabw"
"--with-system-libcmis"
"--with-system-libfreehand"
"--with-system-libepubgen"
"--with-system-libetonyek"
"--with-system-liblangtag"
@@ -682,6 +679,7 @@ stdenv.mkDerivation (finalAttrs: {
# TODO: package these as system libraries
"--without-system-altlinuxhyph"
"--without-system-libeot"
"--without-system-libfreehand"
"--without-system-libmspub"
"--without-system-libnumbertext"
"--without-system-libpagemaker"

View File

@@ -515,25 +515,13 @@ unset XDG_CONFIG_HOME
export GIT_CONFIG_NOSYSTEM=1
# Append a config entry via the GIT_CONFIG_* environment variables. Unlike
# `git config` (writes a single repo) or `git -c` (one invocation), these
# propagate to every git invocation *and* its children, including (nested)
# submodule fetches. Done additively so it composes with any GIT_CONFIG_* the
# caller passes via `impureEnvVars`.
git_config_env(){
export GIT_CONFIG_COUNT=$(( ${GIT_CONFIG_COUNT:-0} + 1 ))
export "GIT_CONFIG_KEY_$(( GIT_CONFIG_COUNT - 1 ))=$1"
export "GIT_CONFIG_VALUE_$(( GIT_CONFIG_COUNT - 1 ))=$2"
}
# Disable maintenance and auto-gc: they're not useful for a short-lived clone,
# and their background/detached processes race the later `.git` removal,
# producing non-deterministic output (and outright failures with nested
# submodules, where the legacy gc.auto path still fires).
# Disable maintenance: it's not useful for a short-lived clone, and
# background maintenance causes non-deterministic builds.
# https://github.com/NixOS/nixpkgs/issues/524215
git_config_env maintenance.auto false
git_config_env gc.auto 0
git_config_env gc.autoDetach false
export GIT_CONFIG_COUNT=$(( ${GIT_CONFIG_COUNT:-0} + 1 ))
# Not the best but generic enough that it will work with `impureEnvVars`
export "GIT_CONFIG_KEY_$(( GIT_CONFIG_COUNT - 1 ))=maintenance.auto"
export "GIT_CONFIG_VALUE_$(( GIT_CONFIG_COUNT - 1 ))=false"
if test -n "$builder"; then
test -n "$out" -a -n "$url" -a -n "$rev" || usage

View File

@@ -52,7 +52,19 @@ in
pnpm-fixup-state-db' =
if pnpm.nodejs-slim or null != null then
pnpm-fixup-state-db.override {
inherit (pnpm) nodejs-slim;
# FIXME: make npm-config-hook accept nodejs-slim
nodejs =
let
inherit (pnpm) nodejs-slim;
in
if nodejs-slim ? paths && builtins.isList nodejs-slim.paths then
# If nodejs-slim has a list `paths` attribute, it's likely a simlinkJoin
nodejs-slim
else
# Otherwise we need to recreate one by overriding the default one
pnpm-fixup-state-db.nodejs.override {
inherit nodejs-slim;
};
}
else
pnpm-fixup-state-db;

View File

@@ -37,44 +37,37 @@
attrs:
let
argsToOverride =
args:
{
name = "${args.name or "${args.pname}-${args.version}"}-source";
argsToOverride = args: {
name = "${args.name or "${args.pname}-${args.version}"}-source";
outputs = [ "out" ];
outputs = [ "out" ];
phases = [
"unpackPhase"
"patchPhase"
"installPhase"
];
separateDebugInfo = false;
phases = [
"unpackPhase"
"patchPhase"
"installPhase"
];
separateDebugInfo = false;
dontUnpack = lib.warnIf (args.dontUnpack or false
) "srcOnly: derivation has dontUnpack set, overriding" false;
dontUnpack = lib.warnIf (args.dontUnpack or false
) "srcOnly: derivation has dontUnpack set, overriding" false;
dontInstall = false;
installPhase = "cp -pr --reflink=auto -- . $out";
dontInstall = false;
installPhase = "cp -pr --reflink=auto -- . $out";
# the original derivation might've set something like outputDev = "lib", but "lib" isn't an output anymore
# some things get confused and error if one of these is set to an output that doesn't exist
# ex: pkgs/build-support/setup-hooks/multiple-outputs.sh
outputDev = "out";
outputBin = "out";
outputInclude = "out";
outputLib = "out";
outputDoc = "out";
outputDevdoc = "out";
outputMan = "out";
outputDevman = "out";
outputInfo = "out";
}
// lib.optionalAttrs (lib.isAttrs args.outputChecks or null) {
# If the original derivation includes outputChecks for output we are removing, we need to reset it to an empty check.
outputChecks = { };
};
# the original derivation might've set something like outputDev = "lib", but "lib" isn't an output anymore
# some things get confused and error if one of these is set to an output that doesn't exist
# ex: pkgs/build-support/setup-hooks/multiple-outputs.sh
outputDev = "out";
outputBin = "out";
outputInclude = "out";
outputLib = "out";
outputDoc = "out";
outputDevdoc = "out";
outputMan = "out";
outputDevman = "out";
outputInfo = "out";
};
in
# If we are passed a derivation (based on stdenv*), we can use overrideAttrs to

View File

@@ -893,7 +893,7 @@ rec {
# Docs in doc/build-helpers/fetchers.chapter.md
# See https://nixos.org/manual/nixpkgs/unstable/#requirefile
requireFile = lib.extendMkDerivation {
constructDrv = stdenvNoCC.mkDerivation;
constructDrv = stdenv.mkDerivation;
excludeDrvArgNames = [
"hash"

View File

@@ -25,7 +25,6 @@ recurseIntoAttrs {
symlinkJoin = recurseIntoAttrs (callPackage ./symlink-join.nix { });
overriding = callPackage ../test-overriding.nix { };
inherit references;
requireFile = callPackage ./requireFile.nix { };
writeCBin = callPackage ./writeCBin.nix { };
writeClosure-union = callPackage ./writeClosure-union.nix {
inherit (references) samples;

View File

@@ -1,22 +0,0 @@
{
pkgsStatic,
lib,
requireFile,
emptyFile,
}:
let
name = "this-is-a-test";
requireFileTest =
requireFile:
requireFile {
inherit name;
url = "this-is-a-test";
hash = lib.fakeHash;
};
requireFile-native = requireFileTest requireFile;
requireFile-static = requireFileTest pkgsStatic.requireFile;
in
assert lib.assertMsg (
requireFile-native.name == name && requireFile-static.name == name
) "requireFile derivation name must be the same across different package sets";
emptyFile

View File

@@ -30,22 +30,7 @@
# ----------------------------
customQemu ? null,
kernel ? linux,
# Name of the kernel image file inside the `kernel` output.
kernelImage ?
kernel.target or (throw ''
vmTools: the `kernel` argument (${kernel.name or "<unknown>"}) has no
`target` attribute, so the kernel image filename cannot be determined.
If you are passing a module tree (e.g. from `pkgs.aggregateModules`) to
make extra modules available, pass it via `kernelModules` instead and
keep `kernel` pointing at a real kernel derivation. Alternatively, pass
`kernelImage` explicitly with the path of the bootable image relative
to the `kernel` derivation output (e.g. "bzImage" or "Image").
''),
# Package providing `lib/modules` for the VM initrd. Override this (e.g.
# with `pkgs.aggregateModules [ ... ]`) to make extra kernel modules
# available inside the VM without replacing the boot kernel.
kernelModules ? kernel,
img ? kernel.target,
storeDir ? builtins.storeDir,
rootModules ? [
"virtio_pci"
@@ -65,9 +50,9 @@ let
qemu = buildPackages.qemu_kvm;
modulesClosure = makeModulesClosure {
kernel = lib.getOutput "modules" kernelModules;
kernel = lib.getOutput "modules" kernel;
inherit rootModules;
firmware = kernelModules;
firmware = kernel;
};
hd = "vda"; # either "sda" or "vda"
@@ -235,7 +220,7 @@ let
fi
# Set up automatic kernel module loading.
export MODULE_DIR=${lib.getOutput "modules" kernelModules}/lib/modules/
export MODULE_DIR=${lib.getOutput "modules" kernel}/lib/modules/
${coreutils}/bin/cat <<EOF > /run/modprobe
#! ${bash}/bin/sh
export MODULE_DIR=$MODULE_DIR
@@ -275,7 +260,7 @@ let
-chardev socket,id=xchg,path=virtio-xchg.sock \
-device vhost-user-fs-pci,chardev=xchg,tag=xchg \
''${diskImage:+-drive file=$diskImage,if=virtio,cache=unsafe,werror=report} \
-kernel ${kernel}/${kernelImage} \
-kernel ${kernel}/${img} \
-initrd ${initrd}/initrd \
-append "console=${qemu-common.qemuSerialDevice} panic=1 command=${stage2Init} mountDisk=$mountDisk loglevel=4" \
$QEMU_OPTS
@@ -432,7 +417,7 @@ let
name = "extract-file";
buildInputs = [ util-linux ];
buildCommand = ''
ln -s ${kernelModules}/lib /lib
ln -s ${kernel}/lib /lib
${kmod}/bin/modprobe loop
${kmod}/bin/modprobe ext4
${kmod}/bin/modprobe hfs
@@ -464,7 +449,7 @@ let
mtdutils
];
buildCommand = ''
ln -s ${kernelModules}/lib /lib
ln -s ${kernel}/lib /lib
${kmod}/bin/modprobe mtd
${kmod}/bin/modprobe mtdram total_size=131072
${kmod}/bin/modprobe mtdchar

View File

@@ -24,13 +24,13 @@ let
if extension == "zip" then fetchzip args else fetchurl args;
pname = "1password-cli";
version = "2.34.1";
version = "2.34.0";
sources = rec {
aarch64-linux = fetch "linux_arm64" "sha256-uEukRq71eeayvNguD9XepvP1Br5AkE2Ag/Chv2idf4A=" "zip";
i686-linux = fetch "linux_386" "sha256-p/F3YZLJnlimrVE2qxTHvIB4m47kuwhoCWTC40VIvMs=" "zip";
x86_64-linux = fetch "linux_amd64" "sha256-oAABMlwwv5X91TT6FK2aPpg+e2CvmHT1rqIVRTjQNCQ=" "zip";
aarch64-linux = fetch "linux_arm64" "sha256-LuOI9r1VRnL9IGsK4vy4ENOS64xdpIZ+ZskIkUJ0s34=" "zip";
i686-linux = fetch "linux_386" "sha256-VvqEyDHEIY3BsgubiJKXql1WEnwXHkSHpFvCcKBIeYw=" "zip";
x86_64-linux = fetch "linux_amd64" "sha256-sbydXPoT0Vo3r2gyZBdl4OMtOejbhvra5JM4wB6Ex5s=" "zip";
aarch64-darwin =
fetch "apple_universal" "sha256-vp1Y1M6DUanx1CAVhLrqgBovwws6Y/5jOgnwTZE8Hhc="
fetch "apple_universal" "sha256-9h+Z7INYcJcWeVQ9QnXKjtT5QyV2J+dP857qSOpBAy8="
"pkg";
x86_64-darwin = aarch64-darwin;
};

View File

@@ -8,16 +8,16 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "ab-av1";
version = "0.11.3";
version = "0.11.2";
src = fetchFromGitHub {
owner = "alexheretic";
repo = "ab-av1";
tag = "v${finalAttrs.version}";
hash = "sha256-lLZAECwF8V19Qx/FugbjLeVns7lhVlwWDTK9cdYb0xo=";
hash = "sha256-kT0BJr4xoYigKObD6vZNRieslaJj/MWuqQmhYLWNwvs=";
};
cargoHash = "sha256-AONJz1BoDi6weHT7W9DmzwoPW5khfgYjDqLNl7OM5bY=";
cargoHash = "sha256-o64GrmHvwF2VUKw+nIRK0jesSuelxNo0TFnyKaP/YlQ=";
nativeBuildInputs = [ installShellFiles ];

View File

@@ -6,18 +6,18 @@
unzip,
}:
stdenv.mkDerivation (finalAttrs: {
stdenv.mkDerivation rec {
pname = "libipasirglucose4";
# This library has no version number AFAICT (beyond generally being based on
# Glucose 4.x), but it was submitted to the 2017 SAT competition so let's use
# that as the version number, I guess.
version = "2017";
libname = finalAttrs.pname + stdenv.hostPlatform.extensions.sharedLibrary;
libname = pname + stdenv.hostPlatform.extensions.sharedLibrary;
src = fetchurl {
url = "https://baldur.iti.kit.edu/sat-competition-2017/solvers/incremental/glucose-ipasir.zip";
hash = "sha256-svGDbCLlPNCg1skHycV9cRS1zecasZodgo3v5Jt6kHU=";
sha256 = "0xchgady9vwdh8frmc8swz6va53igp2wj1y9sshd0g7549n87wdj";
};
nativeBuildInputs = [ unzip ];
@@ -29,13 +29,13 @@ stdenv.mkDerivation (finalAttrs: {
makeFlags = [ "CXX=${stdenv.cc.targetPrefix}c++" ];
postBuild = ''
$CXX -shared -o ${finalAttrs.libname} \
${lib.optionalString (!stdenv.cc.isClang) "-Wl,-soname,${finalAttrs.libname}"} \
$CXX -shared -o ${libname} \
${lib.optionalString (!stdenv.cc.isClang) "-Wl,-soname,${libname}"} \
ipasirglucoseglue.o libipasirglucose4.a
'';
installPhase = ''
install -D ${finalAttrs.libname} $out/lib/${finalAttrs.libname}
install -D ${libname} $out/lib/${libname}
'';
meta = {
@@ -44,4 +44,4 @@ stdenv.mkDerivation (finalAttrs: {
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [ kini ];
};
})
}

View File

@@ -32,15 +32,15 @@ let
'';
in
stdenv.mkDerivation (finalAttrs: {
stdenv.mkDerivation rec {
pname = "acl2";
version = "8.6";
src = fetchFromGitHub {
owner = "acl2-devel";
repo = "acl2-devel";
tag = finalAttrs.version;
hash = "sha256-fF9bbEacwCHP1m/eVgFrTD4Ne7L2mzq0K9vJ1tiy9go=";
rev = version;
sha256 = "sha256-fF9bbEacwCHP1m/eVgFrTD4Ne7L2mzq0K9vJ1tiy9go=";
};
# You can swap this out with any other IPASIR implementation at
@@ -58,7 +58,7 @@ stdenv.mkDerivation (finalAttrs: {
})
(replaceVars ./0001-path-changes-for-nix.patch {
libipasir = "${finalAttrs.libipasir}/lib/${finalAttrs.libipasir.libname}";
libipasir = "${libipasir}/lib/${libipasir.libname}";
libssl = "${lib.getLib openssl}/lib/libssl${stdenv.hostPlatform.extensions.sharedLibrary}";
libcrypto = "${lib.getLib openssl}/lib/libcrypto${stdenv.hostPlatform.extensions.sharedLibrary}";
})
@@ -92,7 +92,7 @@ stdenv.mkDerivation (finalAttrs: {
glucose
minisat
abc-verifier
finalAttrs.libipasir
libipasir
z3
(python3.withPackages (ps: [ ps.z3-solver ]))
];
@@ -115,10 +115,10 @@ stdenv.mkDerivation (finalAttrs: {
# ACL2 and its books need to be built in place in the out directory because
# the proof artifacts are not relocatable. Since ACL2 mostly expects
# everything to exist in the original source tree layout, we put it in
# $out/share/acl2 and create symlinks in $out/bin as necessary.
mkdir -p $out/share/acl2
cp -pR . $out/share/acl2
cd $out/share/acl2
# $out/share/${pname} and create symlinks in $out/bin as necessary.
mkdir -p $out/share/${pname}
cp -pR . $out/share/${pname}
cd $out/share/${pname}
'';
preBuild = "mkdir -p $HOME";
@@ -132,19 +132,19 @@ stdenv.mkDerivation (finalAttrs: {
installPhase = ''
mkdir -p $out/bin
ln -s $out/share/acl2/saved_acl2 $out/bin/acl2
ln -s $out/share/${pname}/saved_acl2 $out/bin/${pname}
''
+ lib.optionalString certifyBooks ''
ln -s $out/share/acl2/books/build/cert.pl $out/bin/acl2-cert
ln -s $out/share/acl2/books/build/clean.pl $out/bin/acl2-clean
ln -s $out/share/${pname}/books/build/cert.pl $out/bin/${pname}-cert
ln -s $out/share/${pname}/books/build/clean.pl $out/bin/${pname}-clean
'';
preDistPhases = [ (if certifyBooks then "certifyBooksPhase" else "removeBooksPhase") ];
certifyBooksPhase = ''
# Certify the community books
pushd $out/share/acl2/books
makeFlags="ACL2=$out/share/acl2/saved_acl2"
pushd $out/share/${pname}/books
makeFlags="ACL2=$out/share/${pname}/saved_acl2"
buildFlags="all"
buildPhase
@@ -157,7 +157,7 @@ stdenv.mkDerivation (finalAttrs: {
removeBooksPhase = ''
# Delete the community books
rm -rf $out/share/acl2/books
rm -rf $out/share/${pname}/books
'';
meta = {
@@ -172,9 +172,9 @@ stdenv.mkDerivation (finalAttrs: {
ACL2 is part of the Boyer-Moore family of provers, for which its authors
have received the 2005 ACM Software System Award.
This package installs the main ACL2 executable acl2, as well as the
build tools cert.pl and clean.pl, renamed to acl2-cert and
acl2-clean.
This package installs the main ACL2 executable ${pname}, as well as the
build tools cert.pl and clean.pl, renamed to ${pname}-cert and
${pname}-clean.
''
+ (
@@ -212,4 +212,4 @@ stdenv.mkDerivation (finalAttrs: {
];
platforms = lib.platforms.all;
};
})
}

View File

@@ -8,11 +8,11 @@
stdenv.mkDerivation (finalAttrs: {
pname = "alglib3";
version = "4.08.0";
version = "4.07.0";
src = fetchurl {
url = "https://www.alglib.net/translator/re/alglib-${finalAttrs.version}.cpp.gpl.tgz";
sha256 = "sha256-mKPtCE+wLFagvBVDida8oQCyO7N0klWkyHFjkip3aoY=";
sha256 = "sha256-y4mlU+4gKwqUFgUHKoVxAjdq5EsMzSJeT6Dg4Llwi/A=";
};
nativeBuildInputs = [

View File

@@ -8,13 +8,13 @@
buildGoModule (finalAttrs: {
pname = "aliyun-cli";
version = "3.3.23";
version = "3.3.18";
src = fetchFromGitHub {
owner = "aliyun";
repo = "aliyun-cli";
tag = "v${finalAttrs.version}";
hash = "sha256-0AsrdD9ans1CmyJVK9tcAKGLeptpxdNAtOUuSv4i4zU=";
hash = "sha256-tTwVcvBk6SMDbDM3dPZZZdkbzlOAwg+K6gbeUc6XEqw=";
fetchSubmodules = true;
};

View File

@@ -30,7 +30,7 @@ buildGoModule (finalAttrs: {
meta = {
description = "HTTP forward proxy with PAC and NTLM authentication support";
homepage = "https://github.com/samuong/alpaca";
changelog = "https://github.com/samuong/alpaca/releases/tag/v${finalAttrs.version}";
changelog = "https://github.com/samuong/alpaca/releases/tag/v${finalAttrs.src.rev}";
license = lib.licenses.asl20;
platforms = lib.platforms.linux ++ lib.platforms.darwin;
maintainers = with lib.maintainers; [ _1nv0k32 ];

View File

@@ -53,13 +53,11 @@ stdenv.mkDerivation (finalAttrs: {
};
meta = {
homepage = "https://www.alsa-project.org/";
homepage = "http://www.alsa-project.org/";
description = "Soundcard firmwares from the alsa project";
license = lib.licenses.gpl2Plus;
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [
nick-linux
];
maintainers = [ ];
sourceProvenance = with lib.sourceTypes; [
binaryFirmware
fromSource

View File

@@ -38,7 +38,7 @@ stdenv.mkDerivation (finalAttrs: {
meta = {
description = "Various plugins for ALSA";
homepage = "https://alsa-project.org/";
homepage = "http://alsa-project.org/";
license = with lib.licenses; [
lgpl21Plus
@@ -46,9 +46,7 @@ stdenv.mkDerivation (finalAttrs: {
gpl2Plus # attributes.m4 & usb_stream.h
];
maintainers = with lib.maintainers; [
nick-linux
];
maintainers = [ ];
platforms = lib.platforms.linux;
};
})

View File

@@ -4,13 +4,13 @@
fetchurl,
}:
gccStdenv.mkDerivation (finalAttrs: {
gccStdenv.mkDerivation rec {
pname = "altermime";
version = "0.3.11";
src = fetchurl {
url = "https://pldaniels.com/altermime/altermime-${finalAttrs.version}.tar.gz";
hash = "sha256-R17ScQWH0k8R0A2vpcP234rHnhO4xdVNLqNVdrV5/Zc=";
url = "https://pldaniels.com/altermime/altermime-${version}.tar.gz";
sha256 = "15zxg6spcmd35r6xbidq2fgcg2nzyv1sbbqds08lzll70mqx4pj7";
};
env.NIX_CFLAGS_COMPILE = toString [
@@ -36,4 +36,4 @@ gccStdenv.mkDerivation (finalAttrs: {
downloadPage = "https://pldaniels.com/altermime/";
mainProgram = "altermime";
};
})
}

View File

@@ -3,34 +3,33 @@
stdenv,
fetchFromGitHub,
meson,
pkg-config,
ninja,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "aml";
version = "1.0.0";
version = "0.3.0";
src = fetchFromGitHub {
owner = "any1";
repo = "aml";
tag = "v${finalAttrs.version}";
hash = "sha256-10gm6YphZrpLShj3NUj/AG24dSVLZAZbbnXr7GiF4DI=";
sha256 = "sha256-BX+MRqvnwwLPhz22m0gfJ2EkW31KQEi/YTgOCMcQk2Q=";
};
nativeBuildInputs = [
meson
pkg-config
ninja
];
strictDeps = true;
__structuredAttrs = true;
meta = {
description = "Andri's Main Loop";
homepage = "https://github.com/any1/aml";
description = "Another main loop";
inherit (finalAttrs.src.meta) homepage;
license = lib.licenses.isc;
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [ nickcao ];
platforms = lib.platforms.unix;
maintainers = [ ];
broken = stdenv.hostPlatform.isDarwin;
};
})

View File

@@ -81,7 +81,7 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "amnezia-vpn";
version = "4.8.18.0";
version = "4.8.15.4";
__structuredAttrs = true;
@@ -89,7 +89,7 @@ stdenv.mkDerivation (finalAttrs: {
owner = "amnezia-vpn";
repo = "amnezia-client";
tag = finalAttrs.version;
hash = "sha256-/A1juZzNWjdShdg41M1nfO3pMukMFzyBjQaZvZjYaJs=";
hash = "sha256-ZUWesEpXb+L7NzL/jkWpS3b4DGq4733T5zc+VXSw9Ic=";
fetchSubmodules = true;
};

View File

@@ -5,12 +5,12 @@
}:
anki-utils.buildAnkiAddon (finalAttrs: {
pname = "anki-quizlet-importer-extended";
version = "2026.06.08";
version = "2026.01.17";
src = fetchFromGitHub {
owner = "sviatoslav-lebediev";
repo = "anki-quizlet-importer-extended";
tag = "v${finalAttrs.version}";
hash = "sha256-f8Y2Tp3Wo41rKhz/YX602xhxvR7xWUOfvjIKuprt/bo=";
hash = "sha256-BTddZColXM193x8xFa1axHeiWukjxXvwkXGpHxsLtR0=";
};
meta = {
description = "Import Quizlet Decks into Anki";

View File

@@ -8,13 +8,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "ansilove";
version = "4.2.2";
version = "4.2.1";
src = fetchFromGitHub {
owner = "ansilove";
repo = "ansilove";
tag = finalAttrs.version;
hash = "sha256-U8SKh+GBwtuJbHeB7x430YmbOdS38CIBsNXCWvs8XY8=";
hash = "sha256-13v2NLVJt11muwocBiQYz/rxQkte/W6LXwB/H/E9Nvk=";
};
nativeBuildInputs = [

View File

@@ -6,7 +6,7 @@
versionCheckHook,
}:
let
wholeVersion = "1.0.8-6513509081677824"; # unfortunately this has dumb versioning
wholeVersion = "1.0.7-5858071034068992"; # unfortunately this has dumb versioning
version = builtins.head (lib.splitString "-" wholeVersion);
throwSystem = throw "Unsupported system: ${stdenvNoCC.hostPlatform.system}";
@@ -14,19 +14,19 @@ let
sourceData = {
x86_64-linux = fetchurl {
url = "https://storage.googleapis.com/antigravity-public/antigravity-cli/${wholeVersion}/linux-x64/cli_linux_x64.tar.gz";
hash = "sha256-/BxcglSN6NqZdEbq50MypFW4bv2bCN37L0PqcuYz+e4=";
hash = "sha256-8kaHmc0XPAPuATHb4rrkMhUzBqaLqi7n1UQPFcRB4Go=";
};
aarch64-linux = fetchurl {
url = "https://storage.googleapis.com/antigravity-public/antigravity-cli/${wholeVersion}/linux-arm/cli_linux_arm64.tar.gz";
hash = "sha256-QWQevvVezRdubRbG3V64C/XMHunfDsdA1OM8yhHoCHA=";
hash = "sha256-3ylG6ZW/9AuKydzzyMLtqC1ec2NnixFG/CJih26S0K0=";
};
aarch64-darwin = fetchurl {
url = "https://storage.googleapis.com/antigravity-public/antigravity-cli/${wholeVersion}/darwin-arm/cli_mac_arm64.tar.gz";
hash = "sha256-j+/brIYCKjIOa0KSGZHt4Ic4tjTzOrfPtA4J8iY9tHE=";
hash = "sha256-e4VhL/9rUNgE2XyW8REz8QXEbzwsUFg41xNpUHfNLK0=";
};
x86_64-darwin = fetchurl {
url = "https://storage.googleapis.com/antigravity-public/antigravity-cli/${wholeVersion}/darwin-x64/cli_mac_x64.tar.gz";
hash = "sha256-0Cp76whEYtBdZS6GOnC+qqICGoqexX+v3KCFJmfaFAU=";
hash = "sha256-SECE7bAd0VneVeAvBs14Ortkcqg8CJy9xcq3ZnuqfKY=";
};
};
in

View File

@@ -7,7 +7,7 @@
stdenv.mkDerivation (finalAttrs: {
pname = "aocl-utils";
version = "5.3";
version = "5.3.0";
src = fetchFromGitHub {
owner = "amd";

View File

@@ -7,11 +7,11 @@
let
pname = "apidog";
version = "2.8.33";
version = "2.8.32";
src = fetchurl {
url = "https://file-assets.apidog.com/download/${version}/Apidog-${version}.AppImage";
hash = "sha256-RimlzPkIAFmsTgtSBocZy4g2S3eCvGq/r993u0Gjj/4=";
hash = "sha256-7MaDC9VsiC+iHe83Vd4vDJQPoDLwUFmCu3R1OwVcTjM=";
};
appimageContents = appimageTools.extract {

View File

@@ -23,13 +23,13 @@
}:
gcc15Stdenv.mkDerivation (finalAttrs: {
pname = "aquamarine";
version = "0.12.1";
version = "0.12.0";
src = fetchFromGitHub {
owner = "hyprwm";
repo = "aquamarine";
tag = "v${finalAttrs.version}";
hash = "sha256-cUQENbJn0PHQUttXame5+PbGGew+BckHZFTfpb8XGI8=";
hash = "sha256-TtAhxedbRAl1u6OyT+4eRxZ417G2NMJNoqEbIhjvWo0=";
};
nativeBuildInputs = [

View File

@@ -3,27 +3,21 @@
stdenv,
fetchFromGitLab,
cmake,
nix-update-script,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "arpa2cm";
version = "1.0.7";
__structuredAttrs = true;
strictDeps = true;
version = "1.0.4";
src = fetchFromGitLab {
owner = "arpa2";
repo = "arpa2cm";
tag = "v${finalAttrs.version}";
hash = "sha256-JkMZUXqmrVzURVi8BJRsHprD4Jz6l83qhPxnOfq4KE4=";
rev = "v${finalAttrs.version}";
hash = "sha256-2vb/7UL+uWGrQNh8yOZ3gih5G1/eOp064hF78SDsPGk=";
};
nativeBuildInputs = [ cmake ];
passthru.updateScript = nix-update-script { };
meta = {
description = "CMake Module library for the ARPA2 project";
longDescription = ''
@@ -39,7 +33,8 @@ stdenv.mkDerivation (finalAttrs: {
'';
homepage = "https://gitlab.com/arpa2/arpa2cm";
license = lib.licenses.bsd2;
maintainers = with lib.maintainers; [ fufexan ];
teams = [ lib.teams.ngi ];
maintainers = with lib.maintainers; [
fufexan
];
};
})

View File

@@ -30,12 +30,10 @@
curl,
texinfo,
texliveSmall,
vulkan-headers,
glfw,
}:
stdenv.mkDerivation (finalAttrs: {
version = "3.12";
version = "3.11";
pname = "asymptote";
outputs = [
@@ -48,7 +46,7 @@ stdenv.mkDerivation (finalAttrs: {
src = fetchurl {
url = "mirror://sourceforge/asymptote/${finalAttrs.version}/asymptote-${finalAttrs.version}.src.tgz";
hash = "sha256-6uwel0Y+8hOjk8OI1GanNHiwgY+UA8liuRJAZZybjxs=";
hash = "sha256-U36fImIb+E8J7g1E3EVcTqkboZODDx12JKB9RxDX59E=";
};
# override with TeX Live containers to avoid building sty, docs from source
@@ -113,8 +111,6 @@ stdenv.mkDerivation (finalAttrs: {
pyqt5
]
))
vulkan-headers
glfw
]
++ lib.optionals stdenv.hostPlatform.isLinux [ libtirpc ];

View File

@@ -9,19 +9,19 @@
buildGoModule (finalAttrs: {
pname = "atlas";
version = "1.2.2";
version = "1.2.1";
src = fetchFromGitHub {
owner = "ariga";
repo = "atlas";
tag = "v${finalAttrs.version}";
hash = "sha256-2wmmvNezi/AJ86r5m0rZOskqxfaT49870Pe615QycHg=";
hash = "sha256-hTRD3QndYlW564UJMhjj7EP+Otlgkt59nGkd5aXbOSU=";
};
modRoot = "cmd/atlas";
proxyVendor = true;
vendorHash = "sha256-9yg8VkRtyaMQjCAAOHIG4A9QSV1VOFOLBK9cTrE83a4=";
vendorHash = "sha256-bPw1Gq+g69W09nU8vbNXwLcLxG4jcQOx9il7X2xZZSg=";
nativeBuildInputs = [ installShellFiles ];

View File

@@ -18,13 +18,13 @@
}:
stdenv.mkDerivation (finalAttrs: {
pname = "attyx";
version = "0.4.5";
version = "0.4.3";
src = fetchFromGitHub {
owner = "semos-labs";
repo = "attyx";
tag = "v${finalAttrs.version}";
hash = "sha256-9/Zl6IrgrT8vHYllCKb977Ar5QRYQiXDmK/g+4YWcqM=";
hash = "sha256-DJe1HreijOwFaqDY+Ai1utiK4u66pUbBkEY6TOat27A=";
};
deps = callPackage ./build.zig.zon.nix { };

View File

@@ -2,7 +2,7 @@
lib,
stdenv,
nodejs,
pnpm_10,
pnpm_9,
fetchPnpmDeps,
pnpmConfigHook,
fetchFromGitHub,
@@ -11,26 +11,26 @@
}:
stdenv.mkDerivation (finalAttrs: {
pname = "autoprefixer";
version = "10.5.0";
version = "10.4.24";
src = fetchFromGitHub {
owner = "postcss";
repo = "autoprefixer";
tag = finalAttrs.version;
hash = "sha256-s152v9sIuQLvhfPsZvQa+O9UhoASgm/e8dnz0t4pP3A=";
rev = finalAttrs.version;
hash = "sha256-9XZWkBDqkaBbIHq3wIbo4neToPM+NCxi9c1AyVqmnvc=";
};
nativeBuildInputs = [
nodejs
pnpmConfigHook
pnpm_10
pnpm_9
];
pnpmDeps = fetchPnpmDeps {
inherit (finalAttrs) pname version src;
pnpm = pnpm_10;
fetcherVersion = 4;
hash = "sha256-Sxt4vtdlMdXxXqt22hfZJskj8mkB5t85IZ5BsbCoDF4=";
pnpm = pnpm_9;
fetcherVersion = 3;
hash = "sha256-PPYyEsc0o5ufBexUdiX9EJLEsQZ0wX7saBzxJGsnseU=";
};
installPhase = ''
@@ -60,9 +60,9 @@ stdenv.mkDerivation (finalAttrs: {
meta = {
description = "Parse CSS and add vendor prefixes to CSS rules using values from the Can I Use website";
homepage = "https://github.com/postcss/autoprefixer";
changelog = "https://github.com/postcss/autoprefixer/releases/tag/${finalAttrs.src.tag}";
changelog = "https://github.com/postcss/autoprefixer/releases/tag/${finalAttrs.version}";
license = lib.licenses.mit;
mainProgram = "autoprefixer";
maintainers = [ lib.maintainers.skohtv ];
maintainers = [ ];
};
})

View File

@@ -174,9 +174,9 @@
confcom = mkAzExtension rec {
pname = "confcom";
version = "2.1.0";
version = "2.0.1";
url = "https://azcliprod.blob.core.windows.net/cli-extensions/confcom-${version}-py3-none-any.whl";
hash = "sha256-mcUYTxpjounvP2500nFgXF+WKERJdLuYXb6zt31v4NA=";
hash = "sha256-Nol3gbwgq76ijbmRyfV64kcArqeCk4/riBr4FxAeNtk=";
description = "Microsoft Azure Command-Line Tools Confidential Container Security Policy Generator Extension";
nativeBuildInputs = [ autoPatchelfHook ];
buildInputs = [ openssl ];

View File

@@ -17,13 +17,13 @@
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "bashunit";
version = "0.39.1";
version = "0.36.0";
src = fetchFromGitHub {
owner = "TypedDevs";
repo = "bashunit";
tag = finalAttrs.version;
hash = "sha256-yMzi2SFEMSNNFztapWavMmbueWwVK0GWjyFR3cJZmTg=";
hash = "sha256-alhqJ7coRk5O4dYGx8m6u8/j7KMfr2m9Jeb5pn0wwiU=";
forceFetchGit = true; # needed to include the tests directory for the check phase
};

View File

@@ -30,18 +30,18 @@
stdenv.mkDerivation (finalAttrs: {
pname = "bcachefs-tools";
version = "1.38.5";
version = "1.38.3";
src = fetchFromGitHub {
owner = "koverstreet";
repo = "bcachefs-tools";
tag = "v${finalAttrs.version}";
hash = "sha256-EXd+BOTAFUddK/4Vwi7GqRqndi2x4bb5gs7IIkMX6HU=";
hash = "sha256-DR/aGCfqXUOubVEVmeJYOiF71rMYRYq8k23EXqluh5k=";
};
cargoDeps = rustPlatform.fetchCargoVendor {
inherit (finalAttrs) src;
hash = "sha256-6uwvwOVPYtegXTPwz2SEeQPC6OrKoFWZrH4Nx+ZVa5A=";
hash = "sha256-aiLSgpK3wadrBvclrQrdCzCiSjLcxg58oeP6ijL+JbY=";
};
postPatch = ''

View File

@@ -5,13 +5,13 @@
}:
buildGoModule (finalAttrs: {
pname = "betula";
version = "1.8.0";
version = "1.7.0";
src = fetchFromSourcehut {
owner = "~bouncepaw";
repo = "betula";
rev = "v${finalAttrs.version}";
hash = "sha256-cZ7xMtJ6I1lvWllwdNSFzeUsvGXWJnUtUR4iPn3oosc=";
hash = "sha256-8iDWWAL8JDZyKl3o0IJsWml410jh3cTPC2AoonvqiTI=";
};
vendorHash = "sha256-HGjaS2Sqsjk/pilt8wtx5Ect8Y8S5638PWEpXCqeZ6w=";

View File

@@ -25,7 +25,7 @@ let
{
x86_64-linux = {
name = "BombSquad_Linux_x86_64";
hash = "sha256-zKZpRsyBCTYDJbTwjaP/HFXfYvD9zBhetUGzriB9754=";
hash = "sha256-Su7xEVzgFBl+Q2iFWdIRbyO8lRs8Xd4KabFhycZUVjs=";
};
aarch64-linux = {
name = "BombSquad_Linux_Arm64";
@@ -45,7 +45,7 @@ stdenv.mkDerivation (finalAttrs: {
# Note: This version trails behind the latest version by one since the latest
# version sometimes gets replaced for minor updates. The builds in /old/ are
# stable.
version = "1.7.63";
version = "1.7.62";
src = fetchurl {
url = "https://files.ballistica.net/bombsquad/builds/old/${archive.name}_${finalAttrs.version}.tar.gz";

View File

@@ -78,6 +78,6 @@ stdenv.mkDerivation {
homepage = "https://www.boost.org/build/";
license = lib.licenses.boost;
platforms = lib.platforms.unix;
maintainers = [ ];
maintainers = with lib.maintainers; [ ivan-tkatchev ];
};
}

View File

@@ -23,13 +23,13 @@
}:
stdenv.mkDerivation (finalAttrs: {
pname = "buildbox";
version = "1.4.8";
version = "1.4.7";
src = fetchFromGitLab {
owner = "BuildGrid";
repo = "buildbox/buildbox";
tag = finalAttrs.version;
hash = "sha256-P7CFgK5CkHAf5gddmm0SBGIkC/AAdCO5pkya/XNuby0=";
hash = "sha256-+OK9rmAGGLq/rJIHs++dbdyvh6WFu+Xhcp48TpnYV0w=";
};
nativeBuildInputs = [

View File

@@ -14,16 +14,16 @@
}:
buildGoModule (finalAttrs: {
pname = "buildkite-agent";
version = "3.127.2";
version = "3.127.1";
src = fetchFromGitHub {
owner = "buildkite";
repo = "agent";
tag = "v${finalAttrs.version}";
hash = "sha256-dSG/F/KtV4nBpm2EeXjGI/2uM2/CgRkjYq5uq7+vZVw=";
hash = "sha256-nG7pvoQfVQrrF+s8Ghc4OITXtW1D0dPAuU3Ef7yDr7E=";
};
vendorHash = "sha256-N4m7Dak0EBkbJtOjatv0GQKsdxt0B/fZn08T9HpAXDA=";
vendorHash = "sha256-Ow2nQAf0G4vsY167S0SbXhPnB6y1qRSf0+EFNPrC2CE=";
postPatch = ''
substituteInPlace clicommand/agent_start.go --replace /bin/bash ${bash}/bin/bash

View File

@@ -10,11 +10,11 @@
stdenvNoCC.mkDerivation rec {
pname = "camunda-modeler";
version = "5.48.0";
version = "5.46.1";
src = fetchurl {
url = "https://github.com/camunda/camunda-modeler/releases/download/v${version}/camunda-modeler-${version}-linux-x64.tar.gz";
hash = "sha256-92KWs2mLcKMhM/v3GRkX5CFcRrtPA1viczZVFkAdVLQ=";
hash = "sha256-uB+EAZgpll81RifNjKp9AkPLupbDLYHG+zFj0atsXRA=";
};
sourceRoot = "camunda-modeler-${version}-linux-x64";

View File

@@ -6,14 +6,14 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "cargo-rdme";
version = "1.5.1";
version = "1.5.0";
src = fetchCrate {
inherit (finalAttrs) pname version;
hash = "sha256-d3WughXxh9cBzy33s3iB75paldZFokGGI1L9yTLGYoc=";
hash = "sha256-TmV6Fc5vlc4fm9w4+iuxmnonwsEbqoJ3jvpIyQOuxjg=";
};
cargoHash = "sha256-26Poh5lUCYi+a+/E7pOYwilKX+eqRmbRNYRFdVfRSCw=";
cargoHash = "sha256-EjIvKf1XgHubvyWPOAjysNH4nD0xqOWYg1FeiPSYh4c=";
meta = {
description = "Cargo command to create the README.md from your crate's documentation";

View File

@@ -35,14 +35,14 @@ let
in
python3.pkgs.buildPythonApplication (finalAttrs: {
pname = "checkov";
version = "3.3.0";
version = "3.2.533";
pyproject = true;
src = fetchFromGitHub {
owner = "bridgecrewio";
repo = "checkov";
tag = finalAttrs.version;
hash = "sha256-1hm3ZNvrO+U3PWb5gBSwKSXgOHQLU4avncSZOH/ijCM=";
hash = "sha256-WuHmMqtDcivwsZpvZB5wQuKWm5BoDSX4LGJEW7oKJrA=";
};
pythonRelaxDeps = [

View File

@@ -1,47 +1,47 @@
{
"version": "2.1.175",
"commit": "0b9163019454512fd2b2ed8e6bef5470f9259f35",
"buildDate": "2026-06-12T01:33:39Z",
"version": "2.1.172",
"commit": "1b719ca2781a2dccc4a769b66bc35b4a60509ad7",
"buildDate": "2026-06-10T16:38:17Z",
"platforms": {
"darwin-arm64": {
"binary": "claude",
"checksum": "6b75bf132c866ed409bf913c318ca32011e73ffb12d3cd67ecc37bc4ee9ec65d",
"size": 224216352
"checksum": "3c31f345575bf6f261c7e19981f6491bb93eeb0ffb499e95033610a7184831ce",
"size": 223390752
},
"darwin-x64": {
"binary": "claude",
"checksum": "3770f2cb42d3f776e62a59aa16230843dc7b8422b36be9b1532e02a6e92e7fa8",
"size": 226734640
"checksum": "c507f98750c5230e4247f7eadff38e4db04c006904f85379e31c5d5e82e1c384",
"size": 225892528
},
"linux-arm64": {
"binary": "claude",
"checksum": "360f1f6f43ec26d9bb6e20e487bf44b753d9b8407e89e74bfeeb79707399f435",
"size": 249476744
"checksum": "4ef0d735bd4180c3bffc381f6dc38df979229a8637d294be751c6043d93d12e1",
"size": 248624776
},
"linux-x64": {
"binary": "claude",
"checksum": "4fc72fa6090c9a03f1850e1b1ccb3d6806bf802b67e3cb9dc5f2ced4b7ed5ca1",
"size": 249566928
"checksum": "c0915dd1691d569aeebc7978b12e029718323685ec0dd4b5c6a453108d6be1f7",
"size": 248743632
},
"linux-arm64-musl": {
"binary": "claude",
"checksum": "27234d99851b2e343184466924d8f5c9318d1cfc4156fc4198c99e26c8a8ab86",
"size": 242331480
"checksum": "6b10aad4270348175206bd2475f82ef3c56007dfb55d7b90f1950dfa8fb9eb40",
"size": 241479512
},
"linux-x64-musl": {
"binary": "claude",
"checksum": "f40f977d2555f349e4d94f6efdc7deece3596c2cffa9d1a6a66b14ee30cfca54",
"size": 243977264
"checksum": "58f2c60711f95e51d86d1af5b915cbdd0458710f1830b7c26d59b78f1ad1f861",
"size": 243153968
},
"win32-x64": {
"binary": "claude.exe",
"checksum": "c1b5b0ae1b607c1f8623d222c9eb6005a35dd6873aa834910a6fb3e00450e096",
"size": 244979872
"checksum": "07132ca4bbef551c92c1ae6ca0220a5e523092c9fa9cf402f65f428450687455",
"size": 244181152
},
"win32-arm64": {
"binary": "claude.exe",
"checksum": "f01eea49c920e990a7c3d2c1071abbc7e79ab54a099380982c11a6f462ca7c4a",
"size": 240943776
"checksum": "1e3e165c03de2af83c1e3516b73890b56e9785a2382338adcc28f41918bf4d2f",
"size": 240146080
}
}
}

View File

@@ -92,7 +92,7 @@ stdenv.mkDerivation (finalAttrs: {
description = "Agentic coding tool that lives in your terminal, understands your codebase, and helps you code faster";
homepage = "https://github.com/anthropics/claude-code";
downloadPage = "https://claude.com/product/claude-code";
changelog = "https://github.com/anthropics/claude-code/blob/v${finalAttrs.version}/CHANGELOG.md";
changelog = "https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md";
license = lib.licenses.unfree;
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
platforms = [

View File

@@ -16,13 +16,13 @@
buildGoModule (finalAttrs: {
pname = "cliamp";
version = "1.57.0";
version = "1.56.0";
src = fetchFromGitHub {
owner = "bjarneo";
repo = "cliamp";
tag = "v${finalAttrs.version}";
hash = "sha256-tfPtc+YgtmuzdWod6EM0MJSoYLxLnQskuNRQbLRp4g8=";
hash = "sha256-07hKE13eX6IWo77mMbgvPgJZjymfsGn9xMN7XIVIB1g=";
};
vendorHash = "sha256-A2Ygc1a9e2flZzaNAEXvr8Ui1cE89TxBfUNALmDzIo0=";

View File

@@ -7,13 +7,13 @@
buildNpmPackage {
pname = "coc-rust-analyzer";
version = "0-unstable-2026-06-09";
version = "0-unstable-2026-06-01";
src = fetchFromGitHub {
owner = "fannheyward";
repo = "coc-rust-analyzer";
rev = "cadaeed1edf1bc289c616d21f5818cf835ae45b2";
hash = "sha256-eo+3K40JhktADVN2SWJg8AQAXBndx6u2L56ZXGbhqdE=";
rev = "c21b850ab4f2c9fc80840450ece29f9abc4e2325";
hash = "sha256-2ntLQ2qBqZZ9vPJHQR0JzqR8wUVRCLRGTEu3Q4Is2Jo=";
};
npmDepsHash = "sha256-4AdpOBXLqWzFQrI7MyWdEqkiE8BuxOV+SmHcFMKlkBk=";

View File

@@ -20,17 +20,17 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "cosmic-applets";
version = "1.0.16";
version = "1.0.13";
# nixpkgs-update: no auto update
src = fetchFromGitHub {
owner = "pop-os";
repo = "cosmic-applets";
tag = "epoch-${finalAttrs.version}";
hash = "sha256-o+rEO+IA337fhpq6TsH+UZEN7kb/PqydlKo77NyCRcM=";
hash = "sha256-JeV29myWGiLagaFOGAtK1MAIJVxYINe5TuNiArfBq54=";
};
cargoHash = "sha256-tbGuyqdDTsKYpKxeAuachwbPHTPhmb9Sg3qzxHYosjo=";
cargoHash = "sha256-gA+dpodk6u8dv9VaKNi/xzI8ys39iztQdia+eGkzXs4=";
separateDebugInfo = true;
__structuredAttrs = true;

View File

@@ -11,17 +11,17 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "cosmic-applibrary";
version = "1.0.16";
version = "1.0.13";
# nixpkgs-update: no auto update
src = fetchFromGitHub {
owner = "pop-os";
repo = "cosmic-applibrary";
tag = "epoch-${finalAttrs.version}";
hash = "sha256-mzHSLZK6HienbPRPetSj+XbPWCnpihEvMx9W9lJWpbA=";
hash = "sha256-IgRKdhs07FK8G4yRb+0d8JFKZv3Zkq/tp2pC4epkxaM=";
};
cargoHash = "sha256-qGx/3w78mgIMqRo1wJA+ULFHWdNW2LKe2Sej4f9KbVs=";
cargoHash = "sha256-uR0wm2+zmcec3esfYwgq4pRqSHkZnd3O8XhgnANf/1Q=";
separateDebugInfo = true;
__structuredAttrs = true;

View File

@@ -13,7 +13,7 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "cosmic-bg";
version = "1.0.16";
version = "1.0.13";
# nixpkgs-update: no auto update
src = fetchFromGitHub {

View File

@@ -20,17 +20,17 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "cosmic-comp";
version = "1.0.16";
version = "1.0.13";
# nixpkgs-update: no auto update
src = fetchFromGitHub {
owner = "pop-os";
repo = "cosmic-comp";
tag = "epoch-${finalAttrs.version}";
hash = "sha256-3WPZk/o+cfq3wwKEuYejMh+pn2o823m98OO3crFaNX4=";
hash = "sha256-sjWNWpwq3fWA7HQV6faP1VTFGfs/e0G0UgHuKk44Kak=";
};
cargoHash = "sha256-ki+unf58rXBCpj5PCpBcg/6FWo16+MdPQWae+w1YkJ8=";
cargoHash = "sha256-G2/nVy9I4iGZiG3+uVMnnqj82Wg2s5/SmNyQERqDhXY=";
separateDebugInfo = true;

View File

@@ -16,17 +16,17 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "cosmic-edit";
version = "1.0.16";
version = "1.0.13";
# nixpkgs-update: no auto update
src = fetchFromGitHub {
owner = "pop-os";
repo = "cosmic-edit";
tag = "epoch-${finalAttrs.version}";
hash = "sha256-almnWrJSV5xZoBDEuk0pfMZ/c00e0xpDNTTbcq+NCYM=";
hash = "sha256-KqdAz5CG9Gdsw/yWHCDhLwXNvmcASyzA6jdpbfcy3pM=";
};
cargoHash = "sha256-/qcpAR2nvC/MYa5QuCLiZFQgos5SlYtspZsNuMLJFHk=";
cargoHash = "sha256-y7EpJrVq5dVP/t3UTsZrPbiHWGsFieLPo/DH0eM5OQE=";
separateDebugInfo = true;

View File

@@ -9,16 +9,16 @@
}:
rustPlatform.buildRustPackage {
pname = "cosmic-ext-applet-sysinfo";
version = "0-unstable-2026-06-05";
version = "0-unstable-2026-05-29";
src = fetchFromGitHub {
owner = "cosmic-utils";
repo = "cosmic-ext-applet-sysinfo";
rev = "681dfcf86009a84ae76573726d227f949930225b";
hash = "sha256-HZZxyAzAwEgGWjPUU6MUhO/yShx423FTpvpImhdjGpk=";
rev = "1dbaad78d7d06f0b2abaee92996c87adc65c6ba3";
hash = "sha256-rOgc5IHsCqUAepfbmsuGL8iJKiH4dkGHT65nXUlXxxI=";
};
cargoHash = "sha256-KVnvyiF2rXb9gio3o+dE9w/zZ5gcad1uEbWHMBC3yDc=";
cargoHash = "sha256-5+QtuxyKOIbzE5piVqeOk6woSm6BGhxFyVJ3xywyeJ0=";
nativeBuildInputs = [
libcosmicAppHook

View File

@@ -9,13 +9,13 @@
}:
rustPlatform.buildRustPackage {
pname = "cosmic-ext-applet-weather";
version = "0-unstable-2026-06-05";
version = "0-unstable-2026-05-29";
src = fetchFromGitHub {
owner = "cosmic-utils";
repo = "cosmic-ext-applet-weather";
rev = "4571eeee76755cc202f11007c4641196ad8a2793";
hash = "sha256-D/uCIJL79AWRIabps8I82wc0yP9CrOimx0g9dEthd08=";
rev = "a93d0703a1b5129ceabc73292c91d6966b03f0b8";
hash = "sha256-qeiZD5HgzNxCn2AdNYAW8G0lvjADppm9JctShVHgJko=";
};
cargoHash = "sha256-AHz4gQGGbVMmr/bbUdkfNQq3zx88+kPenq6kDz8IxN8=";

View File

@@ -12,17 +12,17 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "cosmic-files";
version = "1.0.16";
version = "1.0.13";
# nixpkgs-update: no auto update
src = fetchFromGitHub {
owner = "pop-os";
repo = "cosmic-files";
tag = "epoch-${finalAttrs.version}";
hash = "sha256-2vrk1hYL7E/vVWiLcOYY3O0cmYZyFG4bdkNDFuyA+cA=";
hash = "sha256-/5PPDs2rDEGOMShclh+ZnX28zuF3MbQ7W+Rze1xIPu4=";
};
cargoHash = "sha256-QPFGsn1J0lp5K4gLdar/Z5MmZg+VOoCZd1U8LUuLXqM=";
cargoHash = "sha256-1sY/V+/hd4vzjiufdLR8BIG5FC0F2sLbe8M2VqbinEU=";
separateDebugInfo = true;
__structuredAttrs = true;

View File

@@ -19,14 +19,14 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "cosmic-greeter";
version = "1.0.16";
version = "1.0.13";
# nixpkgs-update: no auto update
src = fetchFromGitHub {
owner = "pop-os";
repo = "cosmic-greeter";
tag = "epoch-${finalAttrs.version}";
hash = "sha256-+6VOv6z61k48hURq4yRRMIFIE8ZrjYGapO5FybWKQTE=";
hash = "sha256-+bxBm/IlOW4XKZhJDlr7Bp5h3sGIdVbTz1If5XWXkek=";
};
cargoHash = "sha256-mfY2hsMxBooRjmTB2jgUIKyKHBpGfZ9Qslwv+2aEQyg=";

View File

@@ -9,7 +9,7 @@
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "cosmic-icons";
version = "1.0.16";
version = "1.0.13";
# nixpkgs-update: no auto update
src = fetchFromGitHub {

View File

@@ -16,7 +16,7 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "cosmic-idle";
version = "1.0.16";
version = "1.0.13";
# nixpkgs-update: no auto update
src = fetchFromGitHub {

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