Merge master into staging-next

This commit is contained in:
nixpkgs-ci[bot]
2026-08-13 00:21:43 +00:00
committed by GitHub
190 changed files with 2004 additions and 821 deletions

View File

@@ -349,24 +349,33 @@ rec {
```
*/
_normaliseTreeFilter =
path: tree:
if tree == "directory" || isAttrs tree then
let
entries = _directoryEntries path tree;
normalisedSubtrees = mapAttrs (name: _normaliseTreeFilter (path + "/${name}")) entries;
subtreeValues = attrValues normalisedSubtrees;
in
# This triggers either when all files in a directory are filtered out
# Or when the directory doesn't contain any files at all
if all isNull subtreeValues then
null
# Triggers when we have the same as a `readDir path`, so we can turn it back into an equivalent "directory".
else if all isString subtreeValues then
"directory"
else
normalisedSubtrees
else
tree;
let
# Recurses into a tree that's already known to be a directory (either a "directory" or an attrset).
#
# Only directories need to be recursed into:
# Files are either null (excluded) or a file type string (included), which are already normalised.
#
# Checking this in the caller instead of here also avoids the thunk allocation for the path concatenation below.
recurse =
path: tree:
let
normalisedSubtrees = mapAttrs (
name: subtree:
if subtree == "directory" || isAttrs subtree then recurse (path + "/${name}") subtree else subtree
) (_directoryEntries path tree);
subtreeValues = attrValues normalisedSubtrees;
in
# This triggers either when all files in a directory are filtered out
# Or when the directory doesn't contain any files at all
if all isNull subtreeValues then
null
# Triggers when we have the same as a `readDir path`, so we can turn it back into an equivalent "directory".
else if all isString subtreeValues then
"directory"
else
normalisedSubtrees;
in
path: tree: if tree == "directory" || isAttrs tree then recurse path tree else tree;
/**
A minimal normalisation of a filesetTree, intended for pretty-printing:
@@ -526,6 +535,9 @@ rec {
else
"/" + concatStringsSep "/" fileset._internalBaseComponents + "/";
getBaseStringPrefix = substring 0 baseLength;
removeBaseStringPrefix = substring baseLength (-1);
baseLength = stringLength baseString;
# Check whether a list of path components under the base path exists in the tree.
@@ -551,7 +563,12 @@ rec {
# or a string ("directory" or "regular", etc.) in which case it's included
localTree != null;
in
recurse 0 tree;
# Start by recursing into the first element. This is guaranteed to be
# safe. components will never be empty (builtins.split can't make an
# empty list). Tree can be something other than an attrset, but if so,
# the isAttrs check will fail when being passed `or tree`, and the index
# being ahead doesn't matter.
recurse 2 (tree.${head components} or tree);
# Filter suited when there's no files
empty = _: _: false;
@@ -569,25 +586,34 @@ rec {
pathSlash = path + "/";
in
(
# Same as `hasPrefix baseString pathSlash`, but more efficient.
# The path is either the base itself or underneath it,
# but only on the few paths above it, so its checked first.
# With base /foo/bar this matches /foo/bar and /foo/bar/baz
# hasPrefix "/foo/bar/" "/foo/bar/baz/"
if getBaseStringPrefix pathSlash == baseString then
if pathSlash == baseString then
# The path is the base directory itself, which is always included
true
else
# Same as `removePrefix baseString path`, but more efficient.
# From the above code we know that hasPrefix baseString pathSlash holds, so this is safe.
# We don't use pathSlash here because we only needed the trailing slash for the prefix matching.
# With base /foo and path /foo/bar/baz this gives
# inTree (split "/" (removePrefix "/foo/" "/foo/bar/baz"))
# == inTree (split "/" "bar/baz")
# == inTree [ "bar" "baz" ]
inTree (split "/" (removeBaseStringPrefix path))
# Same as `hasPrefix pathSlash baseString`, but more efficient.
# The path is a proper ancestor of the base, which needs to be included for the base to be reachable:
# With base /foo/bar we need to include /foo:
# hasPrefix "/foo/" "/foo/bar/"
if substring 0 (stringLength pathSlash) baseString == pathSlash then
else if substring 0 (stringLength pathSlash) baseString == pathSlash then
true
# Same as `! hasPrefix baseString pathSlash`, but more efficient.
# With base /foo/bar we need to exclude /baz
# ! hasPrefix "/baz/" "/foo/bar/"
else if substring 0 baseLength pathSlash != baseString then
false
else
# Same as `removePrefix baseString path`, but more efficient.
# From the above code we know that hasPrefix baseString pathSlash holds, so this is safe.
# We don't use pathSlash here because we only needed the trailing slash for the prefix matching.
# With base /foo and path /foo/bar/baz this gives
# inTree (split "/" (removePrefix "/foo/" "/foo/bar/baz"))
# == inTree (split "/" "bar/baz")
# == inTree [ "bar" "baz" ]
inTree (split "/" (substring baseLength (-1) path))
# The path is unrelated to the base, so nothing from it is included
# With base /foo/bar this matches e.g. /baz
false
)
# This is a way have an additional check in case the above is true without any significant performance cost
&& (
@@ -802,21 +828,34 @@ rec {
*/
_unionTrees =
trees:
let
stringIndex = findFirstIndex isString null trees;
withoutNull = filter (tree: tree != null) trees;
in
if stringIndex != null then
if length trees == 1 then
# The union of a single tree simply returns the first element
head trees
else
let
# Like lib.findFirstIndex but without indexing.
# This is a hot path so the indexing arithmetic adds up.
firstStr = foldl' (
found: tree:
if found != null then
found
else if isString tree then
tree
else
found # null
) null trees;
nonNulls = filter (tree: tree != null) trees;
in
# If there's a string, it's always a fully included tree (dir or file),
# no need to look at other elements
elemAt trees stringIndex
else if withoutNull == [ ] then
# If all trees are null, then the resulting tree is also null
null
else
# The non-null elements have to be attribute sets representing partial trees
# We need to recurse into those
zipAttrsWith (name: _unionTrees) withoutNull;
if firstStr != null then
firstStr
else if nonNulls == [ ] then
null
else
# The non-null elements have to be attribute sets representing partial trees
# We need to recurse into those
zipAttrsWith (name: _unionTrees) nonNulls;
/**
Computes the intersection of two filesets.

View File

@@ -151,7 +151,24 @@ let
);
# Derived meta-data
useLLVM = final.isFreeBSD || final.isOpenBSD;
useLLVM =
final.isFreeBSD
|| final.isOpenBSD
|| final.isUefi
|| final.isMsvc
||
# because GCC does not support this platform yet
(with final; isWindows && isAarch64);
# Use the split GCC package set (`gccNGPackages`) instead of the
# monolithic `gcc`. No platform selects it yet; it is opt-in, set
# explicitly on a platform spec, so that the split set can be exercised
# before anything depends on it.
#
# I (@Ericson2314) plan on making obscure low-tier platforms (e.g.
# NetBSD) use it soon, so we can dogfood GCC NG and thereby iron out its
# bugs.
useGccNG = false;
libc =
if final.isDarwin then
@@ -176,9 +193,7 @@ let
"uclibc"
else if final.isAndroid then
"bionic"
else if
final.isLinux # default
then
else if final.isLinux then
"glibc"
else if final.isFreeBSD then
"fblibc"
@@ -190,6 +205,8 @@ let
"avrlibc"
else if final.isGhcjs then
null
else if final.isUefi then
null
else if final.isNone then
"newlib"
# TODO(@Ericson2314) think more about other operating systems

View File

@@ -93,7 +93,6 @@ rec {
config = "aarch64-unknown-linux-android";
androidSdkVersion = "35";
androidNdkVersion = "27";
libc = "bionic";
useAndroidPrebuilt = false;
useLLVM = true;
};
@@ -169,22 +168,18 @@ rec {
riscv64-embedded = {
config = "riscv64-none-elf";
libc = "newlib";
};
riscv32-embedded = {
config = "riscv32-none-elf";
libc = "newlib";
};
mips64-embedded = {
config = "mips64-none-elf";
libc = "newlib";
};
mips-embedded = {
config = "mips-none-elf";
libc = "newlib";
};
# https://github.com/loongson/la-softdev-convention/blob/master/la-softdev-convention.adoc#10-operating-system-package-build-requirements
@@ -201,17 +196,17 @@ rec {
mmix = {
config = "mmix-unknown-mmixware";
# Not `isNone`: the OS here is `mmixware`, so the bare-metal default does
# not apply.
libc = "newlib";
};
rx-embedded = {
config = "rx-none-elf";
libc = "newlib";
};
msp430 = {
config = "msp430-elf";
libc = "newlib";
};
avr = {
@@ -220,12 +215,10 @@ rec {
vc4 = {
config = "vc4-elf";
libc = "newlib";
};
or1k = {
config = "or1k-elf";
libc = "newlib";
};
m68k = {
@@ -250,7 +243,6 @@ rec {
arm-embedded = {
config = "arm-none-eabi";
libc = "newlib";
};
arm-embedded-nano = {
config = "arm-none-eabi";
@@ -258,7 +250,6 @@ rec {
};
armhf-embedded = {
config = "arm-none-eabihf";
libc = "newlib";
# GCC8+ does not build without this
# (https://www.mail-archive.com/gcc-bugs@gcc.gnu.org/msg552339.html):
gcc = {
@@ -269,38 +260,31 @@ rec {
aarch64-embedded = {
config = "aarch64-none-elf";
libc = "newlib";
rust.rustcTarget = "aarch64-unknown-none";
};
aarch64be-embedded = {
config = "aarch64_be-none-elf";
libc = "newlib";
};
ppc-embedded = {
config = "powerpc-none-eabi";
libc = "newlib";
};
ppcle-embedded = {
config = "powerpcle-none-eabi";
libc = "newlib";
};
i686-embedded = {
config = "i686-elf";
libc = "newlib";
};
x86_64-embedded = {
config = "x86_64-elf";
libc = "newlib";
};
microblaze-embedded = {
config = "microblazeel-none-elf";
libc = "newlib";
};
#
@@ -338,16 +322,10 @@ rec {
x86_64-unknown-uefi = {
config = "x86_64-unknown-uefi";
libc = null;
useLLVM = true;
linker = "lld";
};
aarch64-unknown-uefi = {
config = "aarch64-unknown-uefi";
libc = null;
useLLVM = true;
linker = "lld";
};
#
@@ -382,12 +360,11 @@ rec {
};
# mingw-w64 with ucrt for Aarch64, default compiler (which is LLVM
# because GCC does not support this platform yet).
# see ./default.nix).
mingw-ucrt-aarch64 = {
config = "aarch64-w64-mingw32";
libc = "ucrt";
rust.rustcTarget = "aarch64-pc-windows-gnullvm";
useLLVM = true;
};
# mingw-64 back compat
@@ -400,12 +377,10 @@ rec {
# Target the MSVC ABI
x86_64-windows = {
config = "x86_64-pc-windows-msvc";
useLLVM = true;
};
aarch64-windows = {
config = "aarch64-pc-windows-msvc";
useLLVM = true;
};
x86_64-cygwin = {
@@ -416,12 +391,10 @@ rec {
aarch64-freebsd = {
config = "aarch64-unknown-freebsd";
useLLVM = true;
};
x86_64-freebsd = {
config = "x86_64-unknown-freebsd";
useLLVM = true;
};
x86_64-netbsd = {

View File

@@ -63,6 +63,12 @@
{
# keep-sorted start case=no numeric=no block=yes
"3mp3ri0r" = {
email = "christoforus@xendit.co";
github = "3mp3ri0r";
githubId = 3140815;
name = "Christoforus Surjoputro";
};
_0b11stan = {
name = "Tristan Auvinet Pinaudeau";
email = "tristan@tic.sh";
@@ -7123,6 +7129,12 @@
githubId = 15774340;
name = "Thomas Depierre";
};
dibenzepin = {
name = "Fumnanya";
email = "fmowete@outlook.com";
github = "dibenzepin";
githubId = 87488715;
};
DictXiong = {
email = "me@beardic.cn";
github = "DictXiong";
@@ -22807,12 +22819,6 @@
githubId = 4201956;
name = "pongo1231";
};
poopsicles = {
name = "Fumnanya";
email = "fmowete@outlook.com";
github = "dibenzepin";
githubId = 87488715;
};
PopeRigby = {
name = "PopeRigby";
github = "poperigby";

View File

@@ -395,7 +395,7 @@ have a predefined type and string generator already declared under
`mkRaw pythonCode`
: Outputs the given string as raw Python code
: Outputs the given string as raw Python code. Note that the final result will be stripped of any comments.
`_imports`

View File

@@ -0,0 +1,57 @@
# State revision {#sec-state-revision}
NixOS includes a {option}`system.stateVersion` option, used by some modules for a
variety of reasons related to non-backward-compatible changes to software or
the module itself.
Module authors are discouraged from adding new uses of
{option}`system.stateVersion` to their module.
However, when the alternatives are impractical, modules that wish to consume
{option}`system.stateVersion` should instead define their own `stateRevision`
option using `utils.mkStateRevisionOption`.
There should be no uses of `config.system.stateVersion` directly in the module.
(Note the name difference: the {option}`system.stateVersion` option, with a V,
takes a value that looks like "YY.MM".
A `stateRevision` option, with an R, takes a non-negative integer value.)
Modules should also add the value of their `stateRevision` option to
`system.moduleStateRevisions."your.module.stateRevision"`, when the module is
enabled.
This is a purely informative option that exists to help describe the effects of
changing {option}`system.stateVersion`.
Example:
```nix
{
lib,
config,
utils,
...
}:
let
cfg = config.services.whatever;
in
{
options.services.whatever = {
enable = lib.mkEnableOption "whatever, a service that does whatever";
stateRevision = utils.mkStateRevisionOption {
descriptionName = "the whatever service";
migrations = {
"26.05" = "Rename `/var/lib/old_name` to `/var/lib/new_name`.";
};
};
};
config = lib.mkIf cfg.enable {
systemd.services.whatever = {
# ...
serviceConfig.StateDirectory = if cfg.stateRevision < 1 then "old_name" else "new_name";
};
# Important: this is inside the `lib.mkIf cfg.enable`
system.moduleStateRevisions."services.whatever.stateRevision" = cfg.stateRevision;
};
}
```

View File

@@ -220,4 +220,5 @@ importing-modules.section.md
replace-modules.section.md
freeform-modules.section.md
settings-options.section.md
state-revision.section.md
```

View File

@@ -253,6 +253,9 @@
"sec-override-nixos-test": [
"index.html#sec-override-nixos-test"
],
"sec-state-revision": [
"index.html#sec-state-revision"
],
"sec-wireless-declarative": [
"index.html#sec-wireless-declarative"
],

View File

@@ -60,7 +60,7 @@ buildPythonApplication {
util-linux
vde2
]
++ lib.optionals stdenv.isLinux [
++ lib.optionals stdenv.hostPlatform.isLinux [
vhost-device-vsock
]
++ lib.optionals enableNspawn [

View File

@@ -6,8 +6,10 @@
let
inherit (lib)
all
any
attrNames
concatImapStringsSep
concatMapStringsSep
concatStringsSep
elem
@@ -27,8 +29,11 @@ let
isList
isPath
isString
length
listToAttrs
literalMD
mapAttrs
mkOption
nameValuePair
optionalString
removePrefix
@@ -36,8 +41,10 @@ let
splitString
stringToCharacters
types
versionOlder
;
inherit (lib.lists) findFirstIndex;
inherit (lib.strings) toJSON escapeC;
in
@@ -604,6 +611,122 @@ let
lib.listToAttrs
];
};
/**
Creates a per-module `stateRevision` option that takes an int value, with a
default that is derived from `system.stateVersion`.
# Inputs
`descriptionName`
: A human-friendly name for your module, used for the description of the
created option.
`migrations`
: Attribute set that maps from values of `system.stateVersion`
(representing the breakpoints at which the default value of this option
will change) to Markdown instructions to users for manually migrating
their data to this breakpoint. The migration instructions will be
included in the NixOS documentation for this option. (These instructions
must only contain Markdown inlines, because they will be rendered as
items in an ordered list. In particular, nested lists will not render
correctly.)
`migrations` will also be exposed as an attribute on the result.
# Examples
:::{.example}
## `lib.options.mkStateRevisionOption` usage example
```nix
exampleModule =
{ lib, config, utils, ... }:
{
options.services.whatever = {
stateRevision = utils.mkStateRevisionOption {
descriptionName = "the whatever service";
migrations = {
"26.05" = "Rename `/var/lib/old_name` to `/var/lib/new_name`.";
"26.11" = "Run the `upgrade_whatever` utility.";
};
};
};
};
}
(pkgs.nixos [
exampleModule
{ system.stateVersion = "25.11"; }
]).config.services.whatever.stateRevision # => 0
(pkgs.nixos [
exampleModule
{ system.stateVersion = "26.05"; }
]).config.services.whatever.stateRevision # => 1
(pkgs.nixos [
exampleModule
{ system.stateVersion = "27.05"; }
]).config.services.whatever.stateRevision # => 2
```
:::
Modules should use this function when they change how data managed by the
module is persisted on the system between NixOS releases.
The default value of the option will be the number of attributes in the
`migrations` parameter with name less than or equal to the value of
`system.stateVersion`.
When using this function, don't forget to add the option's value to
`system.moduleStateRevisions."your.module.stateRevision"` when your module is
enabled.
*/
mkStateRevisionOption =
{
descriptionName,
migrations,
}:
let
versions = attrNames migrations;
maxVal = length versions;
in
assert all (v: builtins.match "[0-9]{2}\\.[0-9]{2}" v != null) versions;
mkOption {
type = types.ints.between 0 maxVal;
description = ''
This option versions the format of state persisted by
${descriptionName}. Its default value depends on the value of
{option}`system.stateVersion`.
Users who wish to increment this option will need to take manual
migration steps to preserve their data. **If you perform these
migrations, rolling back to an older generation will require also
reversing the migrations to the state expected by that generation.**
The migrations needed to advance to each value of this option are as
follows (perform all instructions after the row for the current
`stateRevision`, up to and including the row for the new
`stateRevision`):
0. (none)
${concatImapStringsSep "\n" (
v: sv: "${toString v}. ${replaceStrings [ "\n" ] [ " " ] migrations.${sv}}"
) versions}
Note that you do **not** need to change {option}`system.stateVersion`
in order to update this option. {option}`system.stateVersion` only
determines the default value of this option. Most users should not
change {option}`system.stateVersion` at all.
'';
default = findFirstIndex (versionOlder config.system.stateVersion) maxVal versions;
defaultText = literalMD ''
If {option}`system.stateVersion` is:
${concatImapStringsSep "\n" (v: sv: "* &lt;${sv}: ${toString (v - 1)}") versions}
* otherwise: ${toString maxVal}
'';
}
// {
inherit migrations;
};
};
in
utils

View File

@@ -482,7 +482,7 @@ in
combineIcdPkgs =
icd: pkgs:
pkgs.symlinkJoin {
name = "nvidia-egl-external-platforms${lib.optionalString pkgs.stdenv.is32bit "-x32"}";
name = "nvidia-egl-external-platforms${lib.optionalString pkgs.stdenv.hostPlatform.is32bit "-x32"}";
paths = lib.attrVals icd pkgs;
# Remediate reversed priorities in pre-595 drivers,
# https://github.com/NixOS/nixpkgs/pull/497342#issuecomment-4034876793

View File

@@ -254,6 +254,30 @@ in
'';
};
moduleStateRevisions = mkOption {
type =
let
baseType = types.attrsOf types.ints.unsigned;
isStateRevisionOption = x: lib.isOption x && x ? migrations;
in
types.addCheck baseType (
attrs:
builtins.all (
attrPath: isStateRevisionOption (lib.attrByPath (lib.splitString "." attrPath) null options)
) (builtins.attrNames attrs)
)
// {
description = "${baseType.description}, in which every attribute name is the path to an option created with mkStateRevisionOption";
};
default = { };
internal = true;
description = ''
NixOS modules should set attributes on this option. Users should leave
it alone. Future tooling may use it to determine the consequences of
updating {option}`system.stateVersion`.
'';
};
configurationRevision = mkOption {
type = types.nullOr types.str;
default = null;

View File

@@ -79,7 +79,7 @@ in
};
firstUid = mkOption {
type = types.numbers.between 1000 65533;
type = types.ints.between 1000 65533;
default = 60000;
description = ''
Start of block of UIDs reserved for sandboxes.
@@ -87,7 +87,7 @@ in
};
firstGid = mkOption {
type = types.numbers.between 1000 65533;
type = types.ints.between 1000 65533;
default = 60000;
description = ''
Start of block of GIDs reserved for sandboxes.
@@ -95,7 +95,7 @@ in
};
numBoxes = mkOption {
type = types.numbers.between 1000 65533;
type = types.ints.between 1000 65533;
default = 1000;
description = ''
Number of UIDs and GIDs to reserve, starting from

View File

@@ -574,7 +574,7 @@ in
# and automatically migrates when needed (e.g. with v2 -> v3 swapping from Whoosh to Tantivy)
${lib.getExe cfg.package} document_index reindex --if-needed --no-progress-bar
if ${lib.boolToString (cfg.passwordFile != null)} || [[ -n $PAPERLESS_ADMIN_PASSWORD ]]; then
if ${lib.boolToString (cfg.passwordFile != null)} || [[ -n ''${PAPERLESS_ADMIN_PASSWORD-} ]]; then
export PAPERLESS_ADMIN_USER="''${PAPERLESS_ADMIN_USER:-admin}"
if [[ -e $CREDENTIALS_DIRECTORY/PAPERLESS_ADMIN_PASSWORD ]]; then
PAPERLESS_ADMIN_PASSWORD=$(cat "$CREDENTIALS_DIRECTORY/PAPERLESS_ADMIN_PASSWORD")

View File

@@ -2,13 +2,14 @@
config,
pkgs,
lib,
utils,
...
}:
let
cfg = config.services.seerr;
# 26.05 introduced a breaking change which is guarded behind stateVersion to avoid
# breaking users.
useNewConfigLocation = lib.versionAtLeast config.system.stateVersion "26.05";
# 26.05 introduced a breaking change which is guarded behind stateRevision to
# avoid breaking users.
useNewConfigLocation = cfg.stateRevision >= 1;
in
{
imports = [
@@ -39,8 +40,23 @@ in
configDir = lib.mkOption {
type = lib.types.path;
default = if useNewConfigLocation then "/var/lib/seerr/" else "/var/lib/jellyseerr/config";
defaultText = lib.literalMD "{file}`/var/lib/seerr` (or {file}`/var/lib/jellyseerr/config` if {option}`services.seerr.stateRevision` < 1)";
description = "Config data directory";
};
stateRevision = utils.mkStateRevisionOption {
descriptionName = "Seerr";
migrations = {
"26.05" = ''
Move {file}`/var/lib/private/jellyseerr/config` to
{file}`/var/lib/private/seerr`, if you have not set
{option}`services.seerr.configDir`. (If you have set
{option}`services.seerr.configDir`, you should also have forced
{option}`systemd.services.seerr.serviceConfig.StateDirectory`, and in
that case `stateRevision` does not affect your configuration.)
'';
};
};
};
config = lib.mkIf cfg.enable {
@@ -81,5 +97,7 @@ in
networking.firewall = lib.mkIf cfg.openFirewall {
allowedTCPPorts = [ cfg.port ];
};
system.moduleStateRevisions."services.seerr.stateRevision" = cfg.stateRevision;
};
}

View File

@@ -73,6 +73,7 @@ in
PrivateMounts = true;
PrivateTmp = true;
PrivateUsers = true;
ProcSubset = "pid";
ProtectClock = true;
ProtectControlGroups = "strict";
ProtectHome = true;

View File

@@ -53,6 +53,14 @@ in
The maximum log size.
'';
};
telemetry = lib.mkOption {
default = false;
type = lib.types.bool;
description = ''
Collects anonymous usage data and crash reports.
'';
};
};
};
@@ -71,8 +79,8 @@ in
wantedBy = [ "multi-user.target" ];
after = [ "network.target" ];
serviceConfig = {
Type = "forking";
ExecStart = "${pkgs.eternal-terminal}/bin/etserver --daemon --cfgfile=${pkgs.writeText "et.cfg" ''
Type = "exec";
ExecStart = "${pkgs.eternal-terminal}/bin/etserver --logtostdout --cfgfile=${pkgs.writeText "et.cfg" ''
; et.cfg : Config file for Eternal Terminal
;
@@ -83,15 +91,15 @@ in
verbose = ${toString cfg.verbosity}
silent = ${if cfg.silent then "1" else "0"}
logsize = ${toString cfg.logSize}
telemetry = ${lib.boolToString cfg.telemetry}
''}";
Restart = "on-failure";
KillMode = "process";
};
};
};
};
meta = {
maintainers = [ ];
maintainers = with lib.maintainers; [ tomasrivera ];
};
}

View File

@@ -90,6 +90,7 @@ let
"unixd"
"slotmem_shm"
"socache_shmcb"
"systemd"
"mpm_${cfg.mpm}"
]
++ (if cfg.mpm == "prefork" then [ "cgi" ] else [ "cgid" ])
@@ -992,12 +993,12 @@ in
'';
serviceConfig = {
ExecStart = "@${pkg}/bin/httpd httpd -f /etc/httpd/httpd.conf";
ExecStop = "${pkg}/bin/httpd -f /etc/httpd/httpd.conf -k graceful-stop";
ExecStart = "${pkg}/bin/httpd -D FOREGROUND -f /etc/httpd/httpd.conf";
ExecReload = "${pkg}/bin/httpd -f /etc/httpd/httpd.conf -k graceful";
KillMode = "mixed";
User = cfg.user;
Group = cfg.group;
Type = "forking";
Type = "notify";
PIDFile = "${runtimeDir}/httpd.pid";
Restart = "always";
RestartSec = "5s";

View File

@@ -1059,6 +1059,7 @@ in
modularService = pkgs.callPackage ../modules/system/service/systemd/test.nix {
inherit evalSystem;
};
moduleStateRevisions = pkgs.callPackage ./moduleStateRevisions.nix { };
molly-brown = runTest ./molly-brown.nix;
mollysocket = runTest ./mollysocket.nix;
monado = runTest ./monado.nix;
@@ -1234,6 +1235,7 @@ in
ntfy-sh-migration = handleTest ./ntfy-sh-migration.nix { };
ntpd = runTest ./ntpd.nix;
ntpd-rs = runTest ./ntpd-rs.nix;
nullmailer = runTest ./nullmailer.nix;
nushell = runTest ./nushell.nix;
nvidia-container-toolkit = runTest ./nvidia-container-toolkit.nix;
nvme-rs = runTest ./nvme-rs.nix;
@@ -1841,7 +1843,7 @@ in
userborn-mutable-users = runTest ./userborn-mutable-users.nix;
userborn-static = runTest ./userborn-static.nix;
ustreamer = runTest ./ustreamer.nix;
utils = import ./utils { inherit runTest; };
utils = pkgs.callPackage ./utils { inherit runTest; };
utmp = runTest ./utmp.nix;
uwsgi = runTest ./uwsgi.nix;
v2ray = runTest ./v2ray.nix;

View File

@@ -0,0 +1,25 @@
{
lib,
emptyFile,
nixos,
}:
let
evalModuleStateRevisions =
cfg:
(nixos [
{ system.stateVersion = lib.trivial.release; }
cfg
]).config.system.moduleStateRevisions;
# For modules that follow the <module>.enable, <module>.stateRevision pattern:
testModule =
path:
evalModuleStateRevisions (lib.setAttrByPath path { enable = true; })
? "${builtins.concatStringsSep "." path}.stateRevision";
in
assert evalModuleStateRevisions { } == { };
assert testModule [
"services"
"seerr"
];
emptyFile

View File

@@ -0,0 +1,85 @@
{ lib, ... }:
{
name = "nullmailer";
meta = {
maintainers = with lib.maintainers; [ h7x4 ];
};
nodes = {
mail =
{ config, ... }:
{
imports = [ ./common/user-account.nix ];
virtualisation.vlans = [ 1 ];
networking = {
useNetworkd = true;
useDHCP = false;
firewall.allowedTCPPorts = [ 25 ];
domain = "example.com";
hosts."10.0.0.2" = [ "machine.example.com" ];
};
systemd.network.networks."01-eth1" = {
name = "eth1";
networkConfig.Address = "10.0.0.1/24";
};
services.postfix = {
enable = true;
localRecipients = [ "alice" ];
settings = {
main = {
myhostname = config.networking.hostName;
mydomain = config.networking.domain;
mynetworks = [ "0.0.0.0/0" ];
mydestination = [ "$mydomain" ];
smtpd_recipient_restrictions = "permit_mynetworks, reject";
};
};
};
};
machine =
{ config, ... }:
{
virtualisation.vlans = [ 1 ];
networking = {
useNetworkd = true;
useDHCP = false;
domain = "example.com";
hosts."10.0.0.1" = [ "mail.example.com" ];
};
systemd.network.networks."01-eth1" = {
name = "eth1";
networkConfig.Address = "10.0.0.2/24";
};
services.nullmailer = {
enable = true;
config = {
me = "${config.networking.fqdn}";
remotes = "mail.example.com smtp --port=25";
};
};
};
};
testScript = ''
start_all()
machine.wait_for_open_port(25, "mail.example.com")
machine.wait_for_unit("nullmailer.service")
machine.succeed('printf "To: alice@example.com\r\n\r\nthis is the body of the email" | sendmail -t -i -f sender@example.com')
mail.wait_for_console_text("delivered to maildir")
print(mail.succeed("grep 'this is the body of the email' /var/spool/mail/alice/new/*"))
'';
}

View File

@@ -41,6 +41,7 @@ in
};
};
networking.useNetworkd = true;
networking.firewall.allowedUDPPorts = [ 9999 ];
systemd.network = {
@@ -72,6 +73,7 @@ in
server = {
imports = [ (shared server) ];
networking.useNetworkd = true;
networking.firewall.allowedUDPPorts = [ server.wg.listen ];
systemd.network.netdevs."10-${deviceName}" = {
@@ -118,7 +120,7 @@ in
testScript =
{ ... }:
''
from os import system
import subprocess
# Full path to rosenpass in the store, to avoid fiddling with `$PATH`.
rosenpass = "${pkgs.rosenpass}/bin/rosenpass"
@@ -137,7 +139,10 @@ in
for (name, machine, remote) in [("server", server, client), ("client", client, server)]:
pk, sk = f"{name}.pqpk", f"{name}.pqsk"
system(f"{rosenpass} gen-keys --force --secret-key {sk} --public-key {pk}")
subprocess.run(
[rosenpass, "gen-keys", "--force", "--secret-key", sk, "--public-key", pk],
check=True,
)
machine.copy_from_host(sk, f"{etc}/pqsk")
machine.copy_from_host(pk, f"{etc}/pqpk")
remote.copy_from_host(pk, f"{etc}/peers/{name}/pqpk")

View File

@@ -1,5 +1,9 @@
{ runTest }:
{
callPackage,
runTest,
}:
{
genJqSecretsReplacement = runTest ./genJqSecretsReplacement.nix;
mkStateRevisionOption = callPackage ./mkStateRevisionOption.nix { };
}

View File

@@ -0,0 +1,39 @@
{
emptyFile,
nixos,
}:
let
result = nixos (
{ utils, ... }:
{
options = {
stateRevision1 = utils.mkStateRevisionOption {
descriptionName = "...";
migrations = {
"27.05" = "...";
};
};
stateRevision2 = utils.mkStateRevisionOption {
descriptionName = "...";
migrations = {
"26.11" = "...";
};
};
stateRevision3 = utils.mkStateRevisionOption {
descriptionName = "...";
migrations = {
"24.05" = "...";
"27.05" = "...";
};
};
};
config.system.stateVersion = "26.11";
}
);
inherit (result) config options;
in
assert config.stateRevision1 == 0;
assert config.stateRevision2 == 1;
assert config.stateRevision3 == 1;
assert options.stateRevision1.migrations == { "27.05" = "..."; };
emptyFile

View File

@@ -9,13 +9,13 @@
stdenv.mkDerivation {
pname = "deadbeef-playlist-manager-plugin";
version = "unstable-2021-05-02";
version = "1-unstable-2021-05-02";
src = fetchFromGitHub {
owner = "kpcee";
repo = "deadbeef-playlist-manager";
rev = "b1393022b2d9ea0a19b845420146e0fc56cd9c0a";
sha256 = "sha256-dsKthlQ0EuX4VhO8K9VTyX3zN8ytzDUbSi/xSMB4xRw=";
hash = "sha256-dsKthlQ0EuX4VhO8K9VTyX3zN8ytzDUbSi/xSMB4xRw=";
};
nativeBuildInputs = [

View File

@@ -1190,8 +1190,8 @@ let
mktplcRef = {
publisher = "DanielSanMedium";
name = "dscodegpt";
version = "3.24.39";
hash = "sha256-r1XkER09s+38uCbUxK9MM5bHRNp3UnMj6VJCHUMZM1Q=";
version = "3.24.43";
hash = "sha256-Y3pCg0qauVu4K6qz610QGRizyodnRpDigGSSIn6m6gw=";
};
meta = {
changelog = "https://marketplace.visualstudio.com/items/DanielSanMedium.dscodegpt/changelog";
@@ -1242,8 +1242,8 @@ let
mktplcRef = {
name = "databricks";
publisher = "databricks";
version = "2.12.4";
hash = "sha256-29xG0/AhBhidM8Hd7vHUWxESCDt8MwACIkBpmfvhD2Q=";
version = "2.13.0";
hash = "sha256-4Fa1UABo7JUO7+IECjsYEq9zyscHTGUlrUCa3aBdhoI=";
};
meta = {
changelog = "https://marketplace.visualstudio.com/items/databricks.databricks/changelog";

View File

@@ -14,15 +14,15 @@ let
{
x86_64-linux = {
arch = "linux-x64";
hash = "sha256-jAQJh1JqomJDUFeb2N452ICo0azFelT8vHvEsBqXi8w=";
hash = "sha256-3FE2tZtkDZttZlD7foqt1qgcb1w37mT0/RC30HYEvNA=";
};
aarch64-linux = {
arch = "linux-arm64";
hash = "sha256-Z3cRojI4mCCS2t3aLojgImULQOobq5liDwoeHuzKEhY=";
hash = "sha256-xxniWRtMkh3NE9OWJkR9xUARJTBnQkoTRlXrQa95K/k=";
};
aarch64-darwin = {
arch = "darwin-arm64";
hash = "sha256-rHgMl71YCs9ea0nFnx+E2U8isL4zQzIvvE9tgxM7IiA=";
hash = "sha256-/pj6HPuqvAYXrBVX/FoOZRDYL5xvdnM+PPM27/5+hxw=";
};
}
.${system} or (throw "Unsupported system: ${system}");
@@ -34,7 +34,7 @@ vscode-utils.buildVscodeMarketplaceExtension (finalAttrs: {
# Please update the corresponding binary (typos-lsp)
# when updating this extension.
# See pkgs/by-name/ty/typos-lsp/package.nix
version = "0.1.51";
version = "0.1.55";
inherit (extInfo) hash arch;
};

View File

@@ -7,15 +7,15 @@
let
supported = {
x86_64-linux = {
hash = "sha256-LuES+anP3Kd1uOZrteb3yy5nsec5gAX0PYeslJ8orBg=";
hash = "sha256-Fy745lZuOz7lLPRp6XXmHGr9asLj2kynlJbaHe6kgCg=";
arch = "linux-x64";
};
aarch64-linux = {
hash = "sha256-vMLc5Yhtif8jN9V7DXER8BxFxYYv3sY7yKNMvse6CmQ=";
hash = "sha256-AULA4binavpDoxwpfpdBnl81HshNuChYiyOjte+aQw4=";
arch = "linux-arm64";
};
aarch64-darwin = {
hash = "sha256-0ktwL6NkSGrpIUzc0IARoql2hxcluxvK0CTZkX4UEUE=";
hash = "sha256-DKu+dUPCDNOCm1KlpNIeIPmIAFYbVQLD8w4Q3dy3pPI=";
arch = "darwin-arm64";
};
};
@@ -30,7 +30,7 @@ vscode-utils.buildVscodeMarketplaceExtension {
mktplcRef = base // {
name = "tombi";
publisher = "tombi-toml";
version = "1.2.5";
version = "1.2.8";
};
meta = {
description = "TOML Language Server";

View File

@@ -1,10 +1,10 @@
{
"chromium": {
"version": "151.0.7922.108",
"version": "151.0.7922.137",
"chromedriver": {
"version": "151.0.7922.109",
"hash_darwin": "sha256-VzMu90gOs02icI3PgvpNYXeE5c0QjCVB9CpM287roZo=",
"hash_darwin_aarch64": "sha256-5djEbPAayOVr8hr2VfXvlU4W6F+Kd/wiCt5NvQtgoOY="
"version": "151.0.7922.138",
"hash_darwin": "sha256-SW+gKW+GuPwVrJwFdFw6WmECOVXzfRT6tWCIRHoYrok=",
"hash_darwin_aarch64": "sha256-qUVhQo3JTPU5MP0RkVSAyk3iQTy/MWvE7Kab1BoI+Vg="
},
"deps": {
"depot_tools": {
@@ -21,8 +21,8 @@
"DEPS": {
"src": {
"url": "https://chromium.googlesource.com/chromium/src.git",
"rev": "4744b886309d987d292e43232776d2206cccb13d",
"hash": "sha256-1i2IAA5sXyMPBzh6xOIY3CllEDtIS9Buk8Z2Vm1JnYw=",
"rev": "8f5d36bc16f57115aeeff34baf4ad6aa964d509c",
"hash": "sha256-OSqLGAnfiGRVC4RRMnjXFx0JvKh2qY+9zlf2xJZT19Q=",
"recompress": true
},
"src/third_party/clang-format/script": {
@@ -657,8 +657,8 @@
},
"src/third_party/skia": {
"url": "https://skia.googlesource.com/skia.git",
"rev": "86bb2f25f46f4d620b4a26e738f59a9b6c22d2eb",
"hash": "sha256-tnUcFuwWtw0uGNIsU38M54V1MAYFs7/2yjP9Cs1fEHo="
"rev": "66cca05ab345fb894cc80ed412e2fa79f687f5d9",
"hash": "sha256-lDMn7ReDCdGKGmypIZszE29DWGFebJemFPluKZYeg7k="
},
"src/third_party/smhasher/src": {
"url": "https://chromium.googlesource.com/external/smhasher.git",
@@ -827,8 +827,8 @@
},
"src/v8": {
"url": "https://chromium.googlesource.com/v8/v8.git",
"rev": "20ad8d002c17ccc7ccfbefc6c4dcf1242fe80921",
"hash": "sha256-J2dblSPMoZTpotDpuPp6beRYv+KtCirqNxEGEQKpqcQ="
"rev": "00c2754b59cf5f79b323950c63b07cfb1a8377d4",
"hash": "sha256-dXWiFX049YVnrtNdEznEiwT8lDyGJn9BEehB2yhCxqI="
},
"src/agents/shared": {
"url": "https://chromium.googlesource.com/chromium/agents.git",
@@ -838,7 +838,7 @@
}
},
"ungoogled-chromium": {
"version": "151.0.7922.108",
"version": "151.0.7922.137",
"deps": {
"depot_tools": {
"rev": "94e89b10b92cc9d6e58fc8d1b6474b7d29e8a114",
@@ -850,16 +850,16 @@
"hash": "sha256-T2LdISIkp8fcUli5ZetTqrESBAc7coJhWdJv7I+o9kk="
},
"ungoogled-patches": {
"rev": "151.0.7922.108-1",
"hash": "sha256-EhnX4fkuKTTIF6wztKWitrjNzKUf36fAnr7lUkJqJtQ="
"rev": "151.0.7922.137-1",
"hash": "sha256-QIkhRquVqD22P1UBJ+Qv0LEI118v7PDt3hQCIl1ScQ4="
},
"npmHash": "sha256-pF0JtwFpPC4/fodbhSJnQKkczA9WlDg4VqEAy9aDVLg="
},
"DEPS": {
"src": {
"url": "https://chromium.googlesource.com/chromium/src.git",
"rev": "4744b886309d987d292e43232776d2206cccb13d",
"hash": "sha256-1i2IAA5sXyMPBzh6xOIY3CllEDtIS9Buk8Z2Vm1JnYw=",
"rev": "8f5d36bc16f57115aeeff34baf4ad6aa964d509c",
"hash": "sha256-OSqLGAnfiGRVC4RRMnjXFx0JvKh2qY+9zlf2xJZT19Q=",
"recompress": true
},
"src/third_party/clang-format/script": {
@@ -1494,8 +1494,8 @@
},
"src/third_party/skia": {
"url": "https://skia.googlesource.com/skia.git",
"rev": "86bb2f25f46f4d620b4a26e738f59a9b6c22d2eb",
"hash": "sha256-tnUcFuwWtw0uGNIsU38M54V1MAYFs7/2yjP9Cs1fEHo="
"rev": "66cca05ab345fb894cc80ed412e2fa79f687f5d9",
"hash": "sha256-lDMn7ReDCdGKGmypIZszE29DWGFebJemFPluKZYeg7k="
},
"src/third_party/smhasher/src": {
"url": "https://chromium.googlesource.com/external/smhasher.git",
@@ -1664,8 +1664,8 @@
},
"src/v8": {
"url": "https://chromium.googlesource.com/v8/v8.git",
"rev": "20ad8d002c17ccc7ccfbefc6c4dcf1242fe80921",
"hash": "sha256-J2dblSPMoZTpotDpuPp6beRYv+KtCirqNxEGEQKpqcQ="
"rev": "00c2754b59cf5f79b323950c63b07cfb1a8377d4",
"hash": "sha256-dXWiFX049YVnrtNdEznEiwT8lDyGJn9BEehB2yhCxqI="
},
"src/agents/shared": {
"url": "https://chromium.googlesource.com/chromium/agents.git",

View File

@@ -337,13 +337,13 @@
"vendorHash": "sha256-fP6brpY/wRI1Yjgapzi+FfOci65gxWeOZulXbGdilrE="
},
"dnsimple_dnsimple": {
"hash": "sha256-8ZanbgHaszFiorzY/ulpVvUesmyx7O3SKXmwOi5WUSU=",
"hash": "sha256-YkoBGPcNKBeAHWcsRldHSsZ/hvWngCiySjK5zzI9jNE=",
"homepage": "https://registry.terraform.io/providers/dnsimple/dnsimple",
"owner": "dnsimple",
"repo": "terraform-provider-dnsimple",
"rev": "v2.1.2",
"rev": "v2.2.0",
"spdx": "MPL-2.0",
"vendorHash": "sha256-1CpswocnTe6aj4TP7fMGy6mv0d/yX8FcYAKkAW5k7kk="
"vendorHash": "sha256-SuwDjQMgzcnNsBf/wXZvys6VINgnFeaWcV7jIMbNXo8="
},
"dnsmadeeasy_dme": {
"hash": "sha256-JH9YcM9Fvd1x0BJpLUZCm6a9hZZxySrkFVLP89FO3fU=",
@@ -409,13 +409,13 @@
"vendorHash": null
},
"fastly_fastly": {
"hash": "sha256-fblscW6k/iWGr3HTLASrfD11asYsssDuXkGUnzGoUFY=",
"hash": "sha256-n1C/sRIPaZJJ/0irMNhDbi+hzXaof0+Kgu7XgDkGS3o=",
"homepage": "https://registry.terraform.io/providers/fastly/fastly",
"owner": "fastly",
"repo": "terraform-provider-fastly",
"rev": "v9.4.0",
"rev": "v9.6.0",
"spdx": "MPL-2.0",
"vendorHash": "sha256-DhETt9f9GaAI5V/A53H3Bhph9uZyffUM1bsWDrW4CLE="
"vendorHash": "sha256-tDiNj7Xbda10gUBYJ1bwzlYsrwa2ZSK9ZxsbXziI2pU="
},
"flexibleenginecloud_flexibleengine": {
"hash": "sha256-yEZ9JiUSqFFbfqzOOD59ZBv4yFCeUBBKlp6aiUqDqiM=",
@@ -1247,13 +1247,13 @@
"vendorHash": "sha256-gva4QLCNANCaDSjv84N2oFv9VlsU8oUZOUTx6nTRIcA="
},
"splunk-terraform_signalfx": {
"hash": "sha256-xdB2VAacBGFAeVd60Zy6MWSmx6BFJ7ciZKSTXYdRZY0=",
"hash": "sha256-KoPLEVzR/MtMTrufqvxrOuVsfjCUXQ9UMbqjosAy2oc=",
"homepage": "https://registry.terraform.io/providers/splunk-terraform/signalfx",
"owner": "splunk-terraform",
"repo": "terraform-provider-signalfx",
"rev": "v9.33.0",
"rev": "v9.34.0",
"spdx": "MPL-2.0",
"vendorHash": "sha256-m7Op/K3Xo9nKgVg9bTHmpmPiFpCB6Ek/kgj76P+ViGQ="
"vendorHash": "sha256-mNEzE2eACy63BGoFOamG52JD8mvC7okhSN9hMuesTlg="
},
"spotinst_spotinst": {
"hash": "sha256-pkYrrtsbIHSyy/TjoHBegrwwwIi6Vn6aT4Ic3C/QgyY=",
@@ -1283,11 +1283,11 @@
"vendorHash": "sha256-nbiLH+J051XxTx+z8xGrp/DPYB7g9S4clFSWcZUKnAg="
},
"sysdiglabs_sysdig": {
"hash": "sha256-VeIgHhCHyNgAcv2NIBAWCJIwGHE3nqYeCxGd4VSUymU=",
"hash": "sha256-MfwzmTzikzZAg0U7W5Dmjww6Oadnr4Oq+uIQSZaRHEo=",
"homepage": "https://registry.terraform.io/providers/sysdiglabs/sysdig",
"owner": "sysdiglabs",
"repo": "terraform-provider-sysdig",
"rev": "v3.9.0",
"rev": "v3.9.1",
"spdx": "MPL-2.0",
"vendorHash": "sha256-HjrB7C0KaLJz9NVLfZdq5EZbNbF9lJPxSkQwnWUF978="
},

View File

@@ -7,7 +7,7 @@
mkHyprlandPlugin (finalAttrs: {
pluginName = "hypr-darkwindow";
version = "0.56.1";
version = "0.56.2";
src = fetchFromGitHub {
owner = "micha4w";

View File

@@ -804,9 +804,15 @@ stdenvNoCC.mkDerivation {
include -cxx-isystem "${getDev libcxx}/include/c++/v1" >> $out/nix-support/libcxx-cxxflags
echo "-stdlib=libc++" >> $out/nix-support/libcxx-ldflags
''
# GCC NG friendly libc++
# This is the GCC NG case, libstdc++ is being built as a separate package.
#
# Point at `include-cxx`, not `include`. `libcxx` is also a propagated
# target-target dep, so the generic setup hook puts its `include` on the *C*
# include path -- and libstdc++ ships headers named after C headers
# (`math.h`, `stdlib.h`, `stdckdint.h`, ...) that are only meant to shadow
# the C ones in C++. A sibling directory the setup hook ignores is enough.
+ optionalString (libcxx != null && libcxx.isGNU or false) ''
include -isystem "${getDev libcxx}/include" >> $out/nix-support/libcxx-cxxflags
include -isystem "${getDev libcxx}/include-cxx" >> $out/nix-support/libcxx-cxxflags
''
##

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.38.1";
sources = {
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-RmpJkrrLrKwbmbw50+sTg0aFa0+M2EFPZ6+QSc3aV5M=" "zip";
i686-linux = fetch "linux_386" "sha256-hnpVsbNgofmfw/XobVZ2MnbGIcAjxH1MvVJNc5T1kuk=" "zip";
x86_64-linux = fetch "linux_amd64" "sha256-k268YiTC/2MJZhVqMI/e9bsrf4Sr4Wj8M/h/hbmmcqY=" "zip";
aarch64-darwin =
fetch "apple_universal" "sha256-vp1Y1M6DUanx1CAVhLrqgBovwws6Y/5jOgnwTZE8Hhc="
fetch "apple_universal" "sha256-pLlEsqCL5j9QCuLkQxK/Mmz647lKbCYhOUiPch2MMuE="
"pkg";
};
platforms = builtins.attrNames sources;

View File

@@ -27,7 +27,7 @@ replace_sha() {
sed -i "s|\"$1\" \"sha256-.\{44\}\"|\"$1\" \"$2\"|" "$NIX_DRV"
}
CLI_VERSION="$(curl -Ls https://app-updates.agilebits.com/product_history/CLI2 | xq -q 'h3' | head -n1)"
CLI_VERSION="$(curl -Ls https://app-updates.agilebits.com/product_history/CLI2 | xq -q 'article:not(.beta) h3' | head -n1)"
CLI_LINUX_AARCH64_SHA256=$(fetch_linux "$CLI_VERSION" "linux_arm64")
CLI_LINUX_I686_SHA256=$(fetch_linux "$CLI_VERSION" "linux_386")

View File

@@ -11,16 +11,16 @@
buildGoModule (finalAttrs: {
pname = "aks-mcp-server";
version = "0.0.19";
version = "0.0.20";
src = fetchFromGitHub {
owner = "Azure";
repo = "aks-mcp";
rev = "v${finalAttrs.version}";
hash = "sha256-Zu/caWrTuyzS4ejJ5LTOCyLTsmJOFrkX0kUGM0zDfFs=";
hash = "sha256-K0BVDH0HT4kQBGMpVDtLihDCPlpcVpdGEF7f5DY8SvQ=";
};
vendorHash = "sha256-eipcHVKKHBOey2fUGB4lf2pE/wdwGgsbYvCrvDG1JK8=";
vendorHash = "sha256-EdDiLibw3OXtTmAaD6PIi6xiW7+x8TUeAezdjpu8IjY=";
subPackages = [ "cmd/aks-mcp" ];

View File

@@ -57,7 +57,7 @@ stdenv.mkDerivation {
php
];
postPatch = lib.optionalString stdenv.isAarch64 ''
postPatch = lib.optionalString stdenv.hostPlatform.isAarch64 ''
substituteInPlace support/xhpast/Makefile \
--replace "-minline-all-stringops" ""
'';

View File

@@ -12,7 +12,7 @@
}:
stdenv.mkDerivation (finalAttrs: {
name = "awk-language-server";
pname = "awk-language-server";
version = "0.10.6";
src = fetchFromGitHub {

View File

@@ -105,7 +105,7 @@ stdenv.mkDerivation (finalAttrs: {
bzip2
sqlite
]
++ lib.optionals stdenv.isDarwin [
++ lib.optionals stdenv.hostPlatform.isDarwin [
llvmPackages.openmp
];

View File

@@ -6,14 +6,14 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "cargo-chef";
version = "0.1.77";
version = "0.1.78";
src = fetchCrate {
inherit (finalAttrs) pname version;
hash = "sha256-R2on81B11ploV9QwiV5VCvRUCLQWbP21dazNliqkhGA=";
hash = "sha256-gFtmKaznJNlmhlCzpHraEdZfDV5fAwYVphJo29qcftw=";
};
cargoHash = "sha256-iOZjyqoykCwrNsXN7nMF6deuSSlyD6r2+atxPeNmX2c=";
cargoHash = "sha256-m29qIc/TsmropBMFeyEPIWwQgFh9PKqUexFRrbGFHSg=";
meta = {
description = "Cargo-subcommand to speed up Rust Docker builds using Docker layer caching";

View File

@@ -6,14 +6,14 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "cargo-rdme";
version = "2.1.0";
version = "2.2.0";
src = fetchCrate {
inherit (finalAttrs) pname version;
hash = "sha256-U5JD3VMuIagaMKxHoRRhbFyl7keuaJ0zNzD3Hjhxe/Y=";
hash = "sha256-f0MxJVWTcBNiURJFE60Xbv0/xcj51ZoZmJEzvIP79f4=";
};
cargoHash = "sha256-Es1K4MmThAS9whsfSQ8dUtjPjunCDCQc5FU8vsbeJPw=";
cargoHash = "sha256-U2tw/tzFSktrKAIUk4fxyRCMVuw98uHXDkZ/YpC2aCA=";
meta = {
description = "Cargo command to create the README.md from your crate's documentation";

View File

@@ -7,7 +7,7 @@
stdenv.mkDerivation {
pname = "carps-cups";
version = "unstable-2018-03-05";
version = "0-unstable-2018-03-05";
src = fetchFromGitHub {
owner = "ondrej-zary";
@@ -35,8 +35,8 @@ stdenv.mkDerivation {
meta = {
description = "CUPS Linux drivers for Canon printers";
homepage = "https://www.canon.com/";
license = lib.licenses.gpl3Plus;
homepage = "https://github.com/ondrej-zary/carps-cups";
license = lib.licenses.gpl3Only;
broken = stdenv.hostPlatform.isDarwin;
maintainers = with lib.maintainers; [
ewok

View File

@@ -9,16 +9,16 @@
}:
rustPlatform.buildRustPackage rec {
pname = "chirpstack-mqtt-forwarder";
version = "4.6.0";
version = "4.6.1";
src = fetchFromGitHub {
owner = "chirpstack";
repo = "chirpstack-mqtt-forwarder";
rev = "v${version}";
hash = "sha256-frEwQrGfB1J7ZY5jSkmgAyyCJwWUyu29QuZqMWlOPSk=";
hash = "sha256-xt94DxiDkyS0o9sSV6ye1vRi08ey4rmh1acpNI38fUE=";
};
cargoHash = "sha256-5/8f5eSLfCu8fOfT+jTEfJj+fSB6rJt34C6eJwyFIfo=";
cargoHash = "sha256-qGN6AhPV6EOEo5xdwlHCENUmKzWhquOXCvXP7X0Y2WE=";
nativeBuildInputs = [ protobuf ];

View File

@@ -77,7 +77,7 @@ stdenv.mkDerivation (finalAttrs: {
darwin
illumos
];
broken = stdenv.isDarwin;
broken = stdenv.hostPlatform.isDarwin;
maintainers = with lib.maintainers; [
thoughtpolice
vifino

View File

@@ -24,7 +24,7 @@ stdenv.mkDerivation {
substituteInPlace Makefile \
--replace-fail '$(eflags)$(ncursesw_macros)' '$(eflags) $(ncursesw_macros)'
''
+ lib.optionalString stdenv.isDarwin ''
+ lib.optionalString stdenv.hostPlatform.isDarwin ''
substituteInPlace Makefile \
--replace-fail '-lncursesw' '-lncurses'
'';

View File

@@ -7,13 +7,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "croncpp";
version = "2023.03.30";
version = "2026.08.12";
src = fetchFromGitHub {
owner = "mariusbancila";
repo = "croncpp";
tag = "v${finalAttrs.version}";
hash = "sha256-SBjNzy54OGEMemBp+c1gaH90Dc7ySL915z4E64cBWTI=";
hash = "sha256-qdl9494mpmozt6Rmd20MUeGeILWmNGHaxDgW2JnlUvs=";
};
nativeBuildInputs = [ cmake ];

View File

@@ -42,6 +42,6 @@ stdenv.mkDerivation (finalAttrs: {
'';
license = lib.licenses.zlib;
maintainers = [ lib.maintainers.jpdoyle ];
platforms = lib.platforms.linux;
platforms = lib.platforms.linux ++ lib.platforms.darwin;
};
})

View File

@@ -56,7 +56,7 @@ let
davinci = (
stdenv.mkDerivation rec {
pname = "davinci-resolve${lib.optionalString studioVariant "-studio"}";
version = "21.0.3";
version = "21.0.4";
nativeBuildInputs = [
appimageTools.appimage-exec
@@ -78,9 +78,9 @@ let
outputHashAlgo = "sha256";
outputHash =
if studioVariant then
"sha256-pEJF+FQlBngEi5YlKq/pFNCzBiQgqjQrTnfrlKEEi6s="
"sha256-FwaSnK3DAIRGCz6kiWxE4o0Cd0en2qoyuWCDHat1xHQ="
else
"sha256-3SymaLm3ibyk8yOWcUS9fOfnKEmgVA5XXc5tls27qfo=";
"sha256-oX/abUHhnl1AW3xb53x8l7WIdSKc9e2Ocp0qtGAOv/A=";
impureEnvVars = lib.fetchers.proxyImpureEnvVars;

View File

@@ -30,7 +30,7 @@ stdenv.mkDerivation (finalAttrs: {
'';
configureScript = "../configure";
doCheck = !(with stdenv; isDarwin && isAarch64);
doCheck = !(with stdenv.hostPlatform; isDarwin && isAarch64);
# Note: The test-suite *requires* /dev/pts among the `build-chroot-dirs' of
# the build daemon when building in a chroot. See

View File

@@ -28,7 +28,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
cp -r install-cli.nix cli.nix default.nix disk-deactivate lib $out/share/disko
scripts=(disko)
${lib.optionalString (!stdenvNoCC.isDarwin) ''
${lib.optionalString (!stdenvNoCC.hostPlatform.isDarwin) ''
scripts+=(disko-install)
''}
@@ -44,7 +44,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
coreutils
xcp
]
++ lib.optional (!stdenvNoCC.isDarwin) nixos-install
++ lib.optional (!stdenvNoCC.hostPlatform.isDarwin) nixos-install
)
}
done
@@ -54,7 +54,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
installCheckPhase = ''
runHook preInstallCheck
$out/bin/disko --help
${lib.optionalString (!stdenvNoCC.isDarwin) ''
${lib.optionalString (!stdenvNoCC.hostPlatform.isDarwin) ''
$out/bin/disko-install --help
''}
runHook postInstallCheck

View File

@@ -44,7 +44,7 @@ stdenv.mkDerivation (finalAttrs: {
runHook postBuild
'';
postFixup = lib.optionalString stdenv.isLinux ''
postFixup = lib.optionalString stdenv.hostPlatform.isLinux ''
patchelf $out/bin/eepers \
--add-needed libwayland-client.so \
--add-needed libwayland-cursor.so \

View File

@@ -7,7 +7,7 @@
buildNpmPackage (finalAttrs: {
pname = "freifunk-meshviewer";
version = "13.1.0";
version = "13.2.0";
strictDeps = true;
__structuredAttrs = true;
@@ -16,10 +16,10 @@ buildNpmPackage (finalAttrs: {
owner = "freifunk";
repo = "meshviewer";
tag = "v${finalAttrs.version}";
sha256 = "sha256-u9lX7B402KFOHyaReyg3f5rDYDshbO/lyMYo7XxgJR8=";
sha256 = "sha256-ni5Ln9K+Bqq88oi+nwOyCqibJz3TesVreHDWEec6Xzk=";
};
npmDepsHash = "sha256-BaFtFdOu+WArH75nPtasSpecdGjMxTchFcF+K7krNpM=";
npmDepsHash = "sha256-gdGaJSwT5EYcrL/VBId4c6VFmyEbQ9v2LEJP1jc8yO8=";
installPhase = ''
mkdir -p $out/share/freifunk-meshviewer/

View File

@@ -10,13 +10,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "gcli";
version = "2.12.0";
version = "2.13.0";
src = fetchFromSourcehut {
owner = "~herrhotzenplotz";
repo = "gcli";
rev = "v${finalAttrs.version}";
hash = "sha256-k691ocg5rkvGJZDp6X9PRIDaNvVPLcJRoXvwPbyxjLE=";
hash = "sha256-Ow899ehIln+2E5j/MNA7XCRSBNCeaJ16ePR/u0qXvos=";
};
nativeBuildInputs = [

View File

@@ -1,20 +1,15 @@
{
lib,
stdenv,
gcc13Stdenv,
fetchFromGitHub,
fetchpatch,
libx11,
xorgproto,
cairo,
lv2,
pkg-config,
}:
let
# see: https://github.com/brummer10/GxMatchEQ.lv2/issues/8
# Use gcc13 on Linux, but default stdenv (clang) elsewhere
buildStdenv = if stdenv.hostPlatform.isLinux then gcc13Stdenv else stdenv;
in
buildStdenv.mkDerivation (finalAttrs: {
stdenv.mkDerivation (finalAttrs: {
pname = "GxMatchEQ.lv2";
version = "0.1";
@@ -25,6 +20,22 @@ buildStdenv.mkDerivation (finalAttrs: {
hash = "sha256-4jg6DYkNRuNuQpOnsZfwJAZljBmBRzS6NcJKjv+r7Ss=";
};
patches = [
# _LV2UI_Descriptor was mistakenly used instead of LV2UI_Descriptor in one
# signature.
(fetchpatch {
name = "use-lv2ui_descriptor-name.patch";
url = "https://github.com/brummer10/GxMatchEQ.lv2/commit/4ca70be32220729a5253c0bb46f5aded5ba3d00a.patch";
hash = "sha256-EKlv6UptUpP+LOG7S30L21o0/upeDj6WB1PZ44XtNRU=";
})
];
# without the Xresource.h header, compilation on gcc versions > 13 fails with
# gui/gx_matcheq_x11ui.c:360:27: error: implicit declaration of function 'XrmUniqueQuark' [-Wimplicit-function-declaration]
postPatch = ''
sed -e '1i #include <X11/Xresource.h>' -i gui/gx_matcheq_x11ui.c
'';
nativeBuildInputs = [ pkg-config ];
buildInputs = [
libx11

View File

@@ -33,7 +33,7 @@ appimageTools.wrapType2 {
meta = {
description = "UI for the Handheld Daemon";
homepage = "https://github.com/hhd-dev/hhd-ui";
license = lib.licenses.gpl3Only;
license = lib.licenses.lgpl21Plus;
maintainers = with lib.maintainers; [ toast ];
mainProgram = "hhd-ui";
platforms = [ "x86_64-linux" ];

View File

@@ -71,6 +71,16 @@ stdenv.mkDerivation {
writableTmpDirAsHomeHook
];
# Teach `hunk skill path` to find the FHS layout under share/skills/$pname
# (https://github.com/NixOS/nixpkgs/issues/547426) instead of $out/skills.
postPatch = ''
substituteInPlace src/core/paths.ts \
--replace-fail \
'join("node_modules", "hunkdiff", HUNK_REVIEW_SKILL_RELATIVE_PATH),' \
'join("node_modules", "hunkdiff", HUNK_REVIEW_SKILL_RELATIVE_PATH),
join("share", "skills", "hunk", "hunk-review", "SKILL.md"),'
'';
configurePhase = ''
runHook preConfigure
@@ -100,9 +110,8 @@ stdenv.mkDerivation {
runHook preInstall
install -Dm755 hunk $out/bin/hunk
mkdir -p $out/share/hunk
cp -R skills $out/share/hunk/skills
ln -s share/hunk/skills $out/skills
mkdir -p $out/share/skills/hunk/hunk-review
cp skills/hunk-review/SKILL.md $out/share/skills/hunk/hunk-review/SKILL.md
runHook postInstall
'';

View File

@@ -8,18 +8,18 @@
buildGoModule (finalAttrs: {
pname = "keepassxc-go";
version = "1.6.0";
version = "1.7.0";
src = fetchFromGitHub {
owner = "MarkusFreitag";
repo = "keepassxc-go";
rev = "v${finalAttrs.version}";
hash = "sha256-Z4SbPxhs+umsUlby7idxofCjP+uLPvp/2oUCpnAS2/A=";
hash = "sha256-0VQw12o4XTzKOz+45sHIKSsIjBxDcdxtgYUItFznsO4=";
};
nativeBuildInputs = [ installShellFiles ];
vendorHash = "sha256-+cgf2FxpbLu+Yuhk6T0ZBnDH7We2DVu65xFaruk9I0E=";
vendorHash = "sha256-p7Lj2x0+F3kmAMi+2gtBYkg1w8jmgWm3kgYAoIagERs=";
checkFlags = [
# Test tries to monkey-patch the stdlib, fails with permission denied error.

View File

@@ -10,14 +10,14 @@
python3Packages.buildPythonApplication (finalAttrs: {
pname = "keepmenu";
version = "1.4.2";
version = "1.5.1";
pyproject = true;
src = fetchFromGitHub {
owner = "firecat53";
repo = "keepmenu";
rev = finalAttrs.version;
hash = "sha256-Kzt2RqyYvOWnbkflwTHzlnpUaruVQvdGys57DDpH9o8=";
hash = "sha256-MUtwQ9V5PcczR2mISMs8EcFGkDAPmuYSvNW+COC4Bhw=";
};
nativeBuildInputs = with python3Packages; [

View File

@@ -52,7 +52,7 @@ stdenv.mkDerivation (finalAttrs: {
dontStrip = true;
passthru = {
tests.boot = lib.optional stdenv.isDarwin (
tests.boot = lib.optional stdenv.hostPlatform.isDarwin (
callPackage ./boot-test.nix { krunkit = finalAttrs.finalPackage; }
);
updateScript = nix-update-script { };

View File

@@ -17,7 +17,7 @@ buildNpmPackage (finalAttrs: {
src
sourceRoot
;
hash = "sha256-PArNKjdLqKJSEEKe94mguzKiNSwpYk56inenU3GL1mI=";
hash = "sha256-ZvdfLM0GlIZPaKbpDK9ymSgARVMsJE+cop8lKq3R7fE=";
};
npmBuildScript = "build";

View File

@@ -22,7 +22,7 @@ buildNpmPackage (finalAttrs: {
pname = "${finalAttrs.pname}-npm-deps";
inherit version src;
inherit (finalAttrs) sourceRoot;
hash = "sha256-rqtLjMp0nCfo1wDAeB5WxVtmL/TR3Ky3qaMaBohnH1M=";
hash = "sha256-Ojk0giCc7tTFAGOIisirMywfe5j7JCKoTnWGk/hR+U8=";
};
npmBuildScript = "build";

View File

@@ -6,13 +6,13 @@
python3,
}:
let
version = "1.25.2";
version = "1.26.0";
src = fetchFromGitHub {
owner = "suitenumerique";
repo = "meet";
tag = "v${version}";
hash = "sha256-gtChKd6sr2nHEmi0Z/nbuCCNsOD8iVIAFjqonZFgQ/Y=";
hash = "sha256-WiyVSqkyKDXYYPvzcA/fHcxQJrUThNGfNu+z/KcHK3g=";
};
meta = {

View File

@@ -8,13 +8,13 @@
}:
buildGoModule (finalAttrs: {
pname = "lazygit";
version = "0.64.0";
version = "0.64.1";
src = fetchFromGitHub {
owner = "jesseduffield";
repo = "lazygit";
tag = "v${finalAttrs.version}";
hash = "sha256-iN1QEZBS4TxfBMe3+NoYx33wIrgLUSG7I8rNBSTinfc=";
hash = "sha256-UYyIrSHk+efKvHvxQs7FsOGA7e0uM9mg+1O1WRJIeEU=";
};
vendorHash = null;

View File

@@ -6,12 +6,15 @@
zstd,
}:
stdenvNoCC.mkDerivation rec {
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "libertinus";
version = "7.051";
__structuredAttrs = true;
strictDeps = true;
src = fetchurl {
url = "https://github.com/alerque/libertinus/releases/download/v${version}/Libertinus-${version}.tar.zst";
url = "https://github.com/alerque/libertinus/releases/download/v${finalAttrs.version}/Libertinus-${finalAttrs.version}.tar.zst";
hash = "sha256-JQZ3ySnTd1owkTZDWUN5ryZKwu8oAQNaody+MLm+I6Y=";
};
@@ -38,4 +41,4 @@ stdenvNoCC.mkDerivation rec {
maintainers = with lib.maintainers; [ siddharthist ];
platforms = lib.platforms.all;
};
}
})

View File

@@ -173,7 +173,7 @@ stdenv.mkDerivation rec {
# FIXME x86_64-darwin:
# https://github.com/NixOS/nixpkgs/pull/204030#issuecomment-1352768690
doCheck = with stdenv; !(hostPlatform.isi686 || isDarwin && isx86_64);
doCheck = with stdenv.hostPlatform; !(isi686 || isDarwin && isx86_64);
disabledTests = lib.optionals stdenv.hostPlatform.isBigEndian [
# https://github.com/libjxl/libjxl/issues/3629

View File

@@ -7,13 +7,13 @@
stdenvNoCC.mkDerivation {
pname = "libretro-shaders-slang";
version = "0-unstable-2026-08-03";
version = "0-unstable-2026-08-08";
src = fetchFromGitHub {
owner = "libretro";
repo = "slang-shaders";
rev = "620114039b453ebb2e3de1a5846b0d9b05676bf4";
hash = "sha256-ox5Mo9ShWAVQDT6tboA72Mugny3aCQaN1QLpTs4bR6Y=";
rev = "a7f04a0698908015c6f9e3a3f446b3d17083269c";
hash = "sha256-Zz5EqEyGZwMZcFgowUpW2b3/cRcmOHL5R/Z78sg4dm8=";
};
dontConfigure = true;

View File

@@ -14,7 +14,7 @@
stdenv.mkDerivation (finalAttrs: {
pname = "libtorrent-rakshasa";
version = "0.16.19";
version = "0.16.20";
__structuredAttrs = true;
@@ -22,7 +22,7 @@ stdenv.mkDerivation (finalAttrs: {
owner = "rakshasa";
repo = "libtorrent";
tag = "v${finalAttrs.version}";
hash = "sha256-D+RPDp8r2ZKhNpiLKpm269h/5MBN+QhHf/qeXEzM92M=";
hash = "sha256-PEldSXGOFCOa1zo/9wT3efUvf3ZZ9gqZLqioXOdFnt0=";
};
strictDeps = true;

View File

@@ -13,7 +13,7 @@ stdenv.mkDerivation (finalAttrs: {
sha256 = "sha256-Wf/rGjUXr+RZmHFL6EGSYKQ2MvfOwI8LAmwezN/1fPw=";
};
buildFlags = with stdenv; [
buildFlags = with stdenv.hostPlatform; [
(
if isDarwin then
"osx"

View File

@@ -6,21 +6,21 @@
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "luwen";
version = "0.8.5";
version = "0.9.0";
__structuredAttrs = true;
src = fetchFromGitHub {
owner = "tenstorrent";
repo = "luwen";
tag = "v${finalAttrs.version}";
hash = "sha256-lY7cZ+8C0UEGGYxufl4Vi8g0L4AJFXaGqn7XE2ivTcQ=";
hash = "sha256-pc/7G9YxBTg2uYn47ONxI7zsfdK3Ex4zndLASRtDQyk=";
};
nativeBuildInputs = [
protobuf
];
cargoHash = "sha256-QBGXbRiBk4WIQFopq1OccmUHgx5GzR/PKhMH4Ie+fyg=";
cargoHash = "sha256-2ibAZnfv++eyCB57F0uD7XFJ3MP9SnAApOn6uelo3Po=";
meta = {
description = "Tenstorrent system interface tools";

View File

@@ -42,7 +42,7 @@ stdenv.mkDerivation {
cmake
pkg-config
]
++ lib.optionals stdenv.isLinux [
++ lib.optionals stdenv.hostPlatform.isLinux [
autoPatchelfHook
];
@@ -64,7 +64,7 @@ stdenv.mkDerivation {
xz
zlib
]
++ lib.optionals stdenv.isDarwin [
++ lib.optionals stdenv.hostPlatform.isDarwin [
libiconv
];
@@ -99,7 +99,7 @@ stdenv.mkDerivation {
# Transforms 'NAMES libfoo.a libfoo' into 'NAMES foo'
sed -i -E 's/NAMES lib([a-zA-Z0-9]+)\.a lib\1/NAMES \1/g' CMakeLists.txt
''
+ lib.optionalString stdenv.isDarwin ''
+ lib.optionalString stdenv.hostPlatform.isDarwin ''
# UUID_LIB is provided by system frameworks
substituteInPlace CMakeLists.txt \
--replace-fail "find_library(UUID_LIB NAMES uuid)" "set(UUID_LIB \"\")"

View File

@@ -6,7 +6,7 @@
maven,
}:
let
version = "8.57";
version = "8.58";
in
maven.buildMavenPackage {
pname = "megabasterd";
@@ -16,7 +16,7 @@ maven.buildMavenPackage {
owner = "tonikelope";
repo = "megabasterd";
tag = "v${version}";
hash = "sha256-6PKBzQA3lBa9/7J8bymGmnW3OPsRV4GgZ7dc7H6fOuE=";
hash = "sha256-cF0OU/b4BthRmWYUB0ZjE/gRO//T73njgp3iZt+USgA=";
};
mvnHash = "sha256-JZ8INISDHPVhxylKwQc2DybPqxfwcGpkWxDhq8Fpqt8=";

View File

@@ -8,16 +8,16 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "metapac";
version = "0.10.0";
version = "0.10.1";
src = fetchFromGitHub {
owner = "ripytide";
repo = "metapac";
tag = "v${finalAttrs.version}";
hash = "sha256-zp45oaLRHv6NdBQEpTEtG93gF04V8YayluXO2IV8LkI=";
hash = "sha256-6Nw4CUTx0/KcHHguRrUH6Sa+DZhPJqdsTEeVBb0eEqw=";
};
cargoHash = "sha256-sw9MPnhbQPifkDJoO33RbMBtTsSyRmuiNVyjlteAAcM=";
cargoHash = "sha256-hUd9qWXXErOyJV0mjmkMUb8KPuUhp1XI3GNYwpt1Xow=";
nativeInstallCheckInputs = [ versionCheckHook ];
doInstallCheck = true;

View File

@@ -72,7 +72,7 @@ let
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
maintainers = with lib.maintainers; [
piotrkwiecinski
poopsicles
dibenzepin
];
platforms = lib.platforms.linux ++ lib.platforms.darwin;
};

View File

@@ -174,7 +174,14 @@ stdenv.mkDerivation (finalAttrs: {
install -D ${tree_h} $dev/include/sys/tree.h
'';
passthru.linuxHeaders = linuxHeaders;
passthru = {
linuxHeaders = linuxHeaders;
# musl's threads are POSIX threads. `libgcc` and `libstdc++` have to be
# configured for the same threading model as each other, so rather than
# have each guess, they take it from the libc they are built against.
threadModel = "posix";
};
meta = {
description = "Efficient, small, quality libc implementation";

View File

@@ -6,16 +6,16 @@
buildGoModule (finalAttrs: {
pname = "namespace-cli";
version = "0.0.551";
version = "0.0.556";
src = fetchFromGitHub {
owner = "namespacelabs";
repo = "foundation";
tag = "v${finalAttrs.version}";
hash = "sha256-utBatGjHNLTT+hdYde5NIZmD7c+oS9zFl9dCyrtMx2s=";
hash = "sha256-Vq9aOhQKz2nyjy+zXnaUxGbTrPBmyWeR0n26kReRd3I=";
};
vendorHash = "sha256-1MjkgJvn2u2zcO6lMAHdEbiGVp24D3Gv98GQZxGk27Y=";
vendorHash = "sha256-x4GWkINfOzcLFg7mCHG80Dpz7tkdcEDMj1oPAXM2n8w=";
subPackages = [
"cmd/nsc"

View File

@@ -7,16 +7,16 @@
buildGoModule (finalAttrs: {
pname = "nats-server";
version = "2.14.4";
version = "2.14.5";
src = fetchFromGitHub {
owner = "nats-io";
repo = "nats-server";
rev = "v${finalAttrs.version}";
hash = "sha256-Jbw+R1na8tjTLyKJC/KDPhA1G1jgNxMhC+xD38IWH2k=";
hash = "sha256-rsbvFUJcprWEZx0SPfIr+M0IyyCYbDncBLenOBniumM=";
};
vendorHash = "sha256-Lmbacb85+hTe4QoeO72aPOytZQiMQCymOelmGwh0/2E=";
vendorHash = "sha256-VB4x100hSSsY6fqODuIefanzchOHlfyfJrNSJUea42U=";
doCheck = false;

View File

@@ -69,7 +69,7 @@ stdenv.mkDerivation (finalAttrs: {
meta = {
homepage = "https://github.com/BratishkaErik/ncdu";
description = "Disk usage analyzer with an ncurses interface";
changelog = "https://github.com/BratishkaErik/ncdu/releases";
changelog = "https://github.com/BratishkaErik/ncdu/releases/${finalAttrs.src.tag}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
pSub

View File

@@ -6,13 +6,13 @@
buildGoModule (finalAttrs: {
pname = "nerva";
version = "1.64.2";
version = "1.64.3";
src = fetchFromGitHub {
owner = "praetorian-inc";
repo = "nerva";
tag = "v${finalAttrs.version}";
hash = "sha256-vZ03tcYvo+0s/ix+TCLUm9xAyi22mYXYm/15IYMomtE=";
hash = "sha256-LqJrrZg/UyMqDYuESHqHR0jOAe7gmGKJToNUg/ABOcc=";
};
vendorHash = "sha256-Z0MSD+1/1VzrJ+pz5x0JvxrCxtJe59ckaTqHK/+TVN8=";

View File

@@ -14,7 +14,7 @@ resholve.mkDerivation (finalAttrs: {
src = fetchFromGitHub {
owner = "nix-community";
repo = "nix-direnv";
rev = finalAttrs.version;
tag = finalAttrs.version;
hash = "sha256-dNJeSRuuqA2avtLpTse7mTTmnYdVnC5BxRsofuLXiqE=";
};
@@ -68,6 +68,7 @@ resholve.mkDerivation (finalAttrs: {
meta = {
description = "Fast, persistent use_nix implementation for direnv";
homepage = "https://github.com/nix-community/nix-direnv";
changelog = "https://github.com/nix-community/nix-direnv/releases/${finalAttrs.version}";
license = lib.licenses.mit;
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [

View File

@@ -4,6 +4,7 @@
lib,
tls ? true,
gnutls,
nixosTests,
}:
gccStdenv.mkDerivation (finalAttrs: {
@@ -42,6 +43,8 @@ gccStdenv.mkDerivation (finalAttrs: {
enableParallelBuilding = true;
passthru.tests.nixos = nixosTests.nullmailer;
meta = {
homepage = "http://untroubled.org/nullmailer/";
description = ''

View File

@@ -10,7 +10,7 @@ stdenv.mkDerivation (finalAttrs: {
version = "2.7.0";
src =
with stdenv;
with stdenv.hostPlatform;
fetchurl (
if isx86_64 && isLinux then
{

View File

@@ -25,7 +25,7 @@
pythonSupport ? (stdenv.buildPlatform.canExecute stdenv.hostPlatform),
cudaSupport ? config.cudaSupport,
ncclSupport ? cudaSupport && cudaPackages.nccl.meta.available,
openvinoSupport ? stdenv.isLinux,
openvinoSupport ? stdenv.hostPlatform.isLinux,
rocmSupport ? config.rocmSupport,
coremlSupport ? stdenv.hostPlatform.isDarwin,
withFullProtobuf ? false,

View File

@@ -84,11 +84,6 @@ buildGoModule (finalAttrs: {
getGoDirs() {
go list ./... | grep -v -e e2e ${lib.optionalString stdenv.hostPlatform.isDarwin "-e wasm"}
}
''
# remove tests that have "too many open files"/"no space left on device" issues on darwin in hydra
+ lib.optionalString stdenv.hostPlatform.isDarwin ''
rm v1/server/server_test.go
rm v1/server/server_bench_test.go
'';
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''

View File

@@ -20,7 +20,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
pnpm = pnpm_11;
sourceRoot = "${finalAttrs.src.name}/${finalAttrs.pnpmRoot}";
fetcherVersion = 4;
hash = "sha256-buDYvRw4NTLxFSdDRZHiuXMVe9fJbe2iu5hr+zh6KLs=";
hash = "sha256-rj6KFrzuINVpxrrel2p2iWtJVH8Zg1jrZEIAs8S+8Qs=";
};
nativeBuildInputs = [

View File

@@ -28,13 +28,13 @@ let
in
buildGoModule (finalAttrs: {
pname = "opencloud";
version = "7.3.0";
version = "7.4.0";
src = fetchFromGitHub {
owner = "opencloud-eu";
repo = "opencloud";
tag = "v${finalAttrs.version}";
hash = "sha256-2YwDH4qD4PCbfi/nNGPqwtJIpf8MPMGrVRslNWOoDPM=";
hash = "sha256-/j3aXAzsIWPHNIRcHLlbi6Y53be5d5GBqrVIZCk0bEw=";
};
postPatch = ''

View File

@@ -10,20 +10,20 @@
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "opencloud-web";
version = "7.2.0";
version = "7.3.0";
src = fetchFromGitHub {
owner = "opencloud-eu";
repo = "web";
tag = "v${finalAttrs.version}";
hash = "sha256-BiOue8+zQ3+6RLiDbLMnxKEen2aav3bljji4d+0Hr5c=";
hash = "sha256-v1VmX3q2YQUd3PvRVVEvDvpsgVcNklflXRXRvtHOuCU=";
};
pnpmDeps = fetchPnpmDeps {
inherit (finalAttrs) pname version src;
pnpm = pnpm_11;
fetcherVersion = 4;
hash = "sha256-gCsgnOEi9rvtwTZy8J/i63D92Gl2V9ZihxCJ+Y5hLUE=";
hash = "sha256-Y/Xz62ZS7pU6WB3dxewfhNI4POW/r/DGodpEy+xw/ww=";
};
nativeBuildInputs = [

View File

@@ -7,13 +7,13 @@
openttd.overrideAttrs (oldAttrs: rec {
pname = "openttd-jgrpp";
version = "0.73.0";
version = "0.73.1";
src = fetchFromGitHub {
owner = "JGRennison";
repo = "OpenTTD-patches";
rev = "jgrpp-${version}";
hash = "sha256-eFUKJSpHLhyGXvKo/uSB01+5nGv5Y7yUTIU3U81Qx5U=";
hash = "sha256-L99u4J/yiaQB2TTP63gIX6N4OrVOuM4/1bpLkCzVvXU=";
};
patches = [ ];

View File

@@ -1,41 +0,0 @@
{
lib,
swiftPackages,
fetchFromGitHub,
}:
let
inherit (swiftPackages) stdenv swift;
inherit (stdenv.hostPlatform) darwinArch;
in
stdenv.mkDerivation {
pname = "openwith";
version = "unstable-2022-10-28";
src = fetchFromGitHub {
owner = "jdek";
repo = "openwith";
rev = "a8a99ba0d1cabee7cb470994a1e2507385c30b6e";
hash = "sha256-lysleg3qM2MndXeKjNk+Y9Tkk40urXA2ZdxY5KZNANo=";
};
nativeBuildInputs = [ swift ];
makeFlags = [ "openwith_${darwinArch}" ];
installPhase = ''
runHook preInstall
install openwith_${darwinArch} -D $out/bin/openwith
runHook postInstall
'';
meta = {
description = "Utility to specify which application bundle should open specific file extensions";
homepage = "https://github.com/jdek/openwith";
license = lib.licenses.unlicense;
maintainers = with lib.maintainers; [ zowoq ];
platforms = [
"aarch64-darwin"
];
};
}

View File

@@ -36,7 +36,7 @@ stdenv.mkDerivation (finalAttrs: {
(lib.cmakeBool "PCB2GCODE_COMPILE_WARNING_AS_ERROR" false)
];
preConfigure = lib.optionalString stdenv.isDarwin ''
preConfigure = lib.optionalString stdenv.hostPlatform.isDarwin ''
export CXXFLAGS="$CXXFLAGS -fpermissive -Wno-error=c++20-extensions -Wno-error=invalid-constexpr"
'';

View File

@@ -12,13 +12,13 @@ let
in
buildNpmPackage rec {
pname = "piped";
version = "0-unstable-2026-07-06";
version = "0-unstable-2026-08-09";
src = fetchFromGitHub {
owner = "TeamPiped";
repo = "piped";
rev = "335b10d0c02e407b4ba9113e32912b0d783ad455";
hash = "sha256-vcXmsgDZJ3v/1XNXtU3v9GWlDJBatXK9peTPVQe5De0=";
rev = "5ef4a0d0072753521cb7584075346623b8282402";
hash = "sha256-8vuanaSjspGkminCO2fTrGhecpoGgTcpEtl7YT2ZDYA=";
};
nativeBuildInputs = [ pnpm ];
@@ -39,7 +39,7 @@ buildNpmPackage rec {
pnpm
;
fetcherVersion = 4;
hash = "sha256-55nG7tfXtxnyfZop+8Wg8rSFOHQi0TjRc0QT16erX1E=";
hash = "sha256-mBEzm+GzF/V3W/6JPOn81YawAMaSTw8THtOUb3qtmvc=";
};
passthru.updateScript = nix-update-script {

View File

@@ -0,0 +1,48 @@
{
lib,
buildGoModule,
fetchFromGitHub,
nix-update-script,
versionCheckHook,
}:
buildGoModule (finalAttrs: {
pname = "prometheus-snowflake-exporter";
# No tagged release upstream (only a moving `latest` tag), so pin the commit and
# use nixpkgs' unstable versioning. Bump the date + rev on update.
version = "0-unstable-2026-07-02";
__structuredAttrs = true;
src = fetchFromGitHub {
owner = "grafana";
repo = "snowflake-prometheus-exporter";
rev = "d9447d3401aa81b26c091775606c502bf8e2d7cd";
hash = "sha256-3yaZ2kk2k5ivUNgRNazYjA38zY4dvsTOrkvftQpCW5A=";
};
vendorHash = "sha256-HvlZ5g1LqAoXuFuidmHCMTeFfivqUR2ryAh0hQayxnc=";
ldflags = [
"-s"
"-w"
"-X github.com/prometheus/common/version.Version=${finalAttrs.version}"
"-X github.com/prometheus/common/version.Branch=master"
"-X github.com/prometheus/common/version.BuildUser=nixbld@nixpkgs"
];
nativeInstallCheckInputs = [ versionCheckHook ];
doInstallCheck = true;
passthru.updateScript = nix-update-script {
extraArgs = [ "--version=branch" ];
};
meta = {
description = "Prometheus exporter for Snowflake metrics";
homepage = "https://github.com/grafana/snowflake-prometheus-exporter";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ rhousand ];
mainProgram = "snowflake-exporter";
};
})

View File

@@ -14,14 +14,14 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "radicle-ci-broker";
version = "0.30.0";
version = "0.31.0";
src = fetchFromRadicle {
seed = "seed.radicle.dev";
repo = "zwTxygwuz5LDGBq255RA2CbNGrz8";
node = "z6MkgEMYod7Hxfy9qCvDv5hYHkZ4ciWmLFgfvm3Wn1b2w2FV";
tag = "v${finalAttrs.version}";
hash = "sha256-30+s//C9uMpGgA976RRduHmnmF6YEYmmG+V5P/1TYhA=";
hash = "sha256-yY2ke4JBAn0ZTaZ7HV8GCPF5Yqj1j+7GvjFXQQVM3ME=";
leaveDotGit = true;
postFetch = ''
git -C $out rev-parse --short HEAD > $out/.git_head
@@ -29,7 +29,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
'';
};
cargoHash = "sha256-9DzdeJcjl8IpmDR+kXdbEHrGi/5e9P26HsZJ9OPZRSA=";
cargoHash = "sha256-+XB2+k18gWEO7tpsQK+ua133PcZ0mxV+txle7VutXIk=";
postPatch = ''
substituteInPlace build.rs \

View File

@@ -15,9 +15,9 @@
xdg-utils,
versionCheckHook,
version ? "1.10.0",
srcHash ? "sha256-msKnRL6T9Z+bSxknRvhKSE6rDlGA0e8aWwM1/PhUzZw=",
cargoHash ? "sha256-g23LqCXZt+/JX+1Nb9JCORxI0P/LJL2MZHg3lATKLd8=",
version ? "1.10.1",
srcHash ? "sha256-F+64o9z/al0iaLFyQHAYk/3jjf5T0FdgqaU3nEWIheg=",
cargoHash ? "sha256-TLffetbkVwIbUDoI+96T99+lfYu2SIpGtwC0DbuJXnU=",
updateScript ? ./update.sh,
}:

View File

@@ -1,8 +1,8 @@
{ radicle-node }:
radicle-node.override {
version = "1.10.0";
srcHash = "sha256-msKnRL6T9Z+bSxknRvhKSE6rDlGA0e8aWwM1/PhUzZw=";
cargoHash = "sha256-g23LqCXZt+/JX+1Nb9JCORxI0P/LJL2MZHg3lATKLd8=";
version = "1.10.1";
srcHash = "sha256-F+64o9z/al0iaLFyQHAYk/3jjf5T0FdgqaU3nEWIheg=";
cargoHash = "sha256-TLffetbkVwIbUDoI+96T99+lfYu2SIpGtwC0DbuJXnU=";
updateScript = ./update-unstable.sh;
}

View File

@@ -15,7 +15,7 @@
}:
let
theStdenv = if stdenv.isDarwin then gcc14Stdenv else stdenv;
theStdenv = if stdenv.hostPlatform.isDarwin then gcc14Stdenv else stdenv;
in
theStdenv.mkDerivation (finalAttrs: {
pname = "reprepro";

View File

@@ -40,7 +40,7 @@
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "rerun";
version = "0.35.0";
version = "0.36.0";
__structuredAttrs = true;
@@ -53,7 +53,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
owner = "rerun-io";
repo = "rerun";
tag = finalAttrs.version;
hash = "sha256-PPur5of8zoStXl+3Eq/sgDZ0E9ADUnks6nJ55mzJTuI=";
hash = "sha256-t/OvWxMFfkTKrTYvaw7xcmL6oDyNaKoyW0sa/n5yVMs=";
};
# The path in `build.rs` is wrong for some reason, so we patch it to make the passthru tests work
@@ -62,7 +62,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
--replace-fail '"rerun_sdk/rerun_cli/rerun"' '"rerun_sdk/rerun"'
'';
cargoHash = "sha256-yapmDUOCCqvxmFFe/nQjeBWytTEnMw2opd/U7aXI4jQ=";
cargoHash = "sha256-VXKMEilmgHLHAq6Y7gDvKNJywRIV4fv/XHmNFCMjJws=";
cargoBuildFlags = [
"--package"

View File

@@ -51,6 +51,6 @@ stdenv.mkDerivation (finalAttrs: {
description = "Console utility and library for computing and verifying hash sums of files";
license = lib.licenses.bsd0;
platforms = lib.platforms.all;
maintainers = [ ];
maintainers = with lib.maintainers; [ graysontinker ];
};
})

View File

@@ -5,10 +5,10 @@
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "rime-moegirl";
version = "20260713";
version = "20260812";
src = fetchurl {
url = "https://github.com/outloudvi/mw2fcitx/releases/download/${finalAttrs.version}/moegirl.dict.yaml";
hash = "sha256-Fca5vWdmqaRnP6id4TqVGFsTxnynAoQTMgAWntF5eY0=";
hash = "sha256-WDbIdQdBX03NsPxFrs9N166CGDplDN15MOHmY+MuOiQ=";
};
dontUnpack = true;

View File

@@ -6,7 +6,7 @@
stdenvNoCC.mkDerivation rec {
pname = "rizin-sigdb";
version = "unstable-2023-08-23";
version = "0-unstable-2023-08-23";
src = fetchFromGitHub {
owner = "rizinorg";

View File

@@ -0,0 +1,33 @@
{
rustPlatform,
fetchFromGitHub,
lib,
versionCheckHook,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "rmatrix";
version = "0.3.3";
__structuredAttrs = true;
src = fetchFromGitHub {
owner = "Tripstack-Corp";
repo = "rmatrix";
tag = "v${finalAttrs.version}";
hash = "sha256-sViNj7paMY/3x9u6dKHKf+XQRgv+EYsYsooZSTAwrA4=";
};
cargoHash = "sha256-em16fNb4BZeTsZuaT5Bu/u2cc75iSjOcSDYU0qazefM=";
doInstallCheck = true;
nativeInstallCheckInputs = [ versionCheckHook ];
meta = {
description = "Digital rain for modern terminals";
maintainers = with lib.maintainers; [ yarn ];
platforms = lib.platforms.all;
license = lib.licenses.mit;
homepage = "https://github.com/Tripstack-Corp/rmatrix";
mainProgram = "rmatrix";
};
})

View File

@@ -23,7 +23,7 @@
stdenv.mkDerivation (finalAttrs: {
pname = "rtorrent";
version = "0.16.19";
version = "0.16.20";
__structuredAttrs = true;
@@ -31,7 +31,7 @@ stdenv.mkDerivation (finalAttrs: {
owner = "rakshasa";
repo = "rtorrent";
tag = "v${finalAttrs.version}";
hash = "sha256-oMErraDUyCiuRxFZ5CoBvoW9vXHG+eLHnAKzm6kWt2Y=";
hash = "sha256-fwMyzRBMO45djYXGAE8RcadM/lMJ5m9yi9DEomzO1Es=";
};
outputs = [

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