Merge 72469b3966 into haskell-updates

This commit is contained in:
nixpkgs-ci[bot]
2025-08-29 00:21:11 +00:00
committed by GitHub
199 changed files with 3100 additions and 930 deletions
+30 -11
View File
@@ -2,25 +2,44 @@
The code in this directory is used by the [eval.yml](../../.github/workflows/eval.yml) GitHub Actions workflow to evaluate the majority of Nixpkgs for all PRs, effectively making sure that when the development branches are processed by Hydra, no evaluation failures are encountered.
Furthermore it also allows local evaluation using
Furthermore it also allows local evaluation using:
```
nix-build ci -A eval.full \
--max-jobs 4 \
--cores 2 \
--arg chunkSize 10000 \
--arg evalSystems '["x86_64-linux" "aarch64-darwin"]'
nix-build ci -A eval.baseline
```
The most important two arguments are:
- `--arg evalSystems`: The set of systems for which `nixpkgs` should be evaluated.
Defaults to the four official platforms (`x86_64-linux`, `aarch64-linux`, `x86_64-darwin` and `aarch64-darwin`).
Example: `--arg evalSystems '["x86_64-linux" "aarch64-darwin"]'`
- `--arg quickTest`: Enables testing a single chunk of the current system only for quick iteration.
Example: `--arg quickTest true`
The following arguments can be used to fine-tune performance:
- `--max-jobs`: The maximum number of derivations to run at the same time.
Only each [supported system](../supportedSystems.json) gets a separate derivation, so it doesn't make sense to set this higher than that number.
- `--cores`: The number of cores to use for each job.
Recommended to set this to the amount of cores on your system divided by `--max-jobs`.
- `chunkSize`: The number of attributes that are evaluated simultaneously on a single core.
- `--arg chunkSize`: The number of attributes that are evaluated simultaneously on a single core.
Lowering this decreases memory usage at the cost of increased evaluation time.
If this is too high, there won't be enough chunks to process them in parallel, and will also increase evaluation time.
- `evalSystems`: The set of systems for which `nixpkgs` should be evaluated.
Defaults to the four official platforms (`x86_64-linux`, `aarch64-linux`, `x86_64-darwin` and `aarch64-darwin`).
A good default is to set `chunkSize` to 10000, which leads to about 3.6GB max memory usage per core, so suitable for fully utilising machines with 4 cores and 16GB memory, 8 cores and 32GB memory or 16 cores and 64GB memory.
The default is 5000.
Example: `--arg chunkSize 10000`
Note that 16GB memory is the recommended minimum, while with less than 8GB memory evaluation time suffers greatly.
## Local eval with rebuilds / comparison
To compare two commits locally, first run the following on the baseline commit:
```
BASELINE=$(nix-build ci -A eval.baseline --no-out-link)
```
Then, on the commit with your changes:
```
nix-build ci -A eval.full --arg baseline $BASELINE
```
Keep in mind to otherwise pass the same set of arguments for both commands (`evalSystems`, `quickTest`, `chunkSize`).
+27 -11
View File
@@ -240,29 +240,44 @@ let
compare = callPackage ./compare { };
baseline =
{
# Whether to evaluate on a specific set of systems, by default all are evaluated
evalSystems ? if quickTest then [ "x86_64-linux" ] else supportedSystems,
# The number of attributes per chunk, see ./README.md for more info.
chunkSize ? 5000,
quickTest ? false,
}:
symlinkJoin {
name = "nixpkgs-eval-baseline";
paths = map (
evalSystem:
singleSystem {
inherit quickTest evalSystem chunkSize;
}
) evalSystems;
};
full =
{
# Whether to evaluate on a specific set of systems, by default all are evaluated
evalSystems ? if quickTest then [ "x86_64-linux" ] else supportedSystems,
# The number of attributes per chunk, see ./README.md for more info.
chunkSize,
chunkSize ? 5000,
quickTest ? false,
baseline,
}:
let
diffs = symlinkJoin {
name = "diffs";
name = "nixpkgs-eval-diffs";
paths = map (
evalSystem:
let
eval = singleSystem {
inherit quickTest evalSystem chunkSize;
};
in
diff {
inherit evalSystem;
# Local "full" evaluation doesn't do a real diff.
beforeDir = eval;
afterDir = eval;
beforeDir = baseline;
afterDir = singleSystem {
inherit quickTest evalSystem chunkSize;
};
}
) evalSystems;
};
@@ -280,7 +295,8 @@ in
combine
compare
# The above three are used by separate VMs in a GitHub workflow,
# while the below is intended for testing on a single local machine
# while the below are intended for testing on a single local machine
baseline
full
;
}
+4
View File
@@ -27,7 +27,11 @@
- GCC 9, 10, 11, and 12 have been removed, as they have reached endoflife upstream and are no longer supported.
- `base16-builder` node package has been removed due to lack of upstream maintenance.
- `buildGoModule` now warns if `<pkg>.passthru.overrideModAttrs` is lost during the overriding of its result packages.
- `gentium` package now provides `Gentium-*.ttf` files, and not `GentiumPlus-*.ttf` files like before. The font identifiers `Gentium Plus*` are available in the `gentium-plus` package, and if you want to use the more recently updated package `gentium` [by sil](https://software.sil.org/gentium/), you should update your configuration files to use the `Gentium` font identifier.
- `space-orbit` package has been removed due to lack of upstream maintenance. Debian upstream stopped tracking it in 2011.
- Derivations setting both `separateDebugInfo` and one of `allowedReferences`, `allowedRequisites`, `disallowedReferences` or `disallowedRequisites` must now set `__structuredAttrs` to `true`. The effect of reference whitelisting or blacklisting will be disabled on the `debug` output created by `separateDebugInfo`.
+10 -2
View File
@@ -31,7 +31,7 @@ Most unfree licenses prohibit either executing or distributing the software.
## Installing broken packages {#sec-allow-broken}
There are two ways to try compiling a package which has been marked as broken.
There are several ways to try compiling a package which has been marked as broken.
- For allowing the build of a broken package once, you can use an environment variable for a single invocation of the nix tools:
@@ -39,7 +39,15 @@ There are two ways to try compiling a package which has been marked as broken.
$ export NIXPKGS_ALLOW_BROKEN=1
```
- For permanently allowing broken packages to be built, you may add `allowBroken = true;` to your user's configuration file, like this:
- For permanently allowing broken packages that match some condition to be built, you may add `allowBrokenPredicate` to your user's configuration file with the desired condition, for example:
```nix
{
allowBrokenPredicate = pkg: builtins.elem (pkgs.lib.getName pkg) [ "hello" ];
}
```
- For permanently allowing all broken packages to be built, you may add `allowBroken = true;` to your user's configuration file, like this:
```nix
{ allowBroken = true; }
+46 -3
View File
@@ -1121,6 +1121,7 @@ let
files = map (def: def.file) res.defsFinal;
definitionsWithLocations = res.defsFinal;
inherit (res) isDefined;
inherit (res.checkedAndMerged) valueMeta;
# This allows options to be correctly displayed using `${options.path.to.it}`
__toString = _: showOption loc;
};
@@ -1164,7 +1165,14 @@ let
# Type-check the remaining definitions, and merge them. Or throw if no definitions.
mergedValue =
if isDefined then
if all (def: type.check def.value) defsFinal then
if type.merge ? v2 then
# check and merge share the same closure
# .headError is either not-present, null, or a string describing the error
if checkedAndMerged.headError or null != null then
throw "A definition for option `${showOption loc}' is not of type `${type.description}'. TypeError: ${checkedAndMerged.headError.message}"
else
checkedAndMerged.value
else if all (def: type.check def.value) defsFinal then
type.merge loc defsFinal
else
let
@@ -1177,6 +1185,43 @@ let
throw
"The option `${showOption loc}' was accessed but has no value defined. Try setting the option.";
checkedAndMerged =
(
# This function (which is immediately applied) checks that type.merge
# returns the proper attrset.
# Once use of the merge.v2 feature has propagated, consider removing this
# for an estimated one thousandth performance improvement (NixOS by nr.thunks).
{
headError,
value,
valueMeta,
}@args:
args
)
(
if type.merge ? v2 then
let
r = type.merge.v2 {
inherit loc;
defs = defsFinal;
};
in
r
// {
valueMeta = r.valueMeta // {
_internal = {
inherit type;
};
};
}
else
{
headError = null;
value = mergedValue;
valueMeta = { };
}
);
isDefined = defsFinal != [ ];
optionalValue = if isDefined then { value = mergedValue; } else { };
@@ -1586,13 +1631,11 @@ let
New option path as list of strings.
*/
to,
/**
Release number of the first release that contains the rename, ignoring backports.
Set it to the upcoming release, matching the nixpkgs/.version file.
*/
sinceRelease,
}:
doRename {
inherit from to;
+379
View File
@@ -0,0 +1,379 @@
{
pkgs ? import ../.. { },
currLibPath ? ../.,
prevLibPath ? "${
pkgs.fetchFromGitHub {
owner = "nixos";
repo = "nixpkgs";
# Parent commit of [#391544](https://github.com/NixOS/nixpkgs/pull/391544)
# Which was before the type.merge.v2 introduction
rev = "bcf94dd3f07189b7475d823c8d67d08b58289905";
hash = "sha256-MuMiIY3MX5pFSOCvutmmRhV6RD0R3CG0Hmazkg8cMFI=";
}
}/lib",
}:
let
lib = import currLibPath;
lib_with_merge_v2 = lib;
lib_with_merge_v1 = import prevLibPath;
getMatrix =
{
getType ? null,
# If getType is set this is only used as test prefix
# And the type from getType is used
outerTypeName,
innerTypeName,
value,
testAttrs,
}:
let
evalModules.call_v1 = lib_with_merge_v1.evalModules;
evalModules.call_v2 = lib_with_merge_v2.evalModules;
outerTypes.outer_v1 = lib_with_merge_v1.types;
outerTypes.outer_v2 = lib_with_merge_v2.types;
innerTypes.inner_v1 = lib_with_merge_v1.types;
innerTypes.inner_v2 = lib_with_merge_v2.types;
in
lib.mapAttrs (
_: evalModules:
lib.mapAttrs (
_: outerTypes:
lib.mapAttrs (_: innerTypes: {
"test_${outerTypeName}_${innerTypeName}" = testAttrs // {
expr =
(evalModules {
modules = [
(m: {
options.foo = m.lib.mkOption {
type =
if getType != null then
getType outerTypes innerTypes
else
outerTypes.${outerTypeName} innerTypes.${innerTypeName};
default = value;
};
})
];
}).config.foo;
};
}) innerTypes
) outerTypes
) evalModules;
in
{
# AttrsOf string
attrsOf_str_ok = getMatrix {
outerTypeName = "attrsOf";
innerTypeName = "str";
value = {
bar = "test";
};
testAttrs = {
expected = {
bar = "test";
};
};
};
attrsOf_str_err_inner = getMatrix {
outerTypeName = "attrsOf";
innerTypeName = "str";
value = {
bar = 1; # not a string
};
testAttrs = {
expectedError = {
type = "ThrownError";
msg = "A definition for option `foo.bar' is not of type `string'.*";
};
};
};
attrsOf_str_err_outer = getMatrix {
outerTypeName = "attrsOf";
innerTypeName = "str";
value = [ "foo" ]; # not an attrset
testAttrs = {
expectedError = {
type = "ThrownError";
msg = "A definition for option `foo' is not of type `attribute set of string'.*";
};
};
};
# listOf string
listOf_str_ok = getMatrix {
outerTypeName = "listOf";
innerTypeName = "str";
value = [
"foo"
"bar"
];
testAttrs = {
expected = [
"foo"
"bar"
];
};
};
listOf_str_err_inner = getMatrix {
outerTypeName = "listOf";
innerTypeName = "str";
value = [
"foo"
1
]; # not a string
testAttrs = {
expectedError = {
type = "ThrownError";
msg = ''A definition for option `foo."\[definition 1-entry 2\]"' is not of type `string'.'';
};
};
};
listOf_str_err_outer = getMatrix {
outerTypeName = "listOf";
innerTypeName = "str";
value = {
foo = 42;
}; # not a list
testAttrs = {
expectedError = {
type = "ThrownError";
msg = "A definition for option `foo' is not of type `list of string'.*";
};
};
};
attrsOf_submodule_ok = getMatrix {
getType =
a: b:
a.attrsOf (
b.submodule (m: {
options.nested = m.lib.mkOption {
type = m.lib.types.str;
};
})
);
outerTypeName = "attrsOf";
innerTypeName = "submodule";
value = {
foo = {
nested = "test1";
};
bar = {
nested = "test2";
};
};
testAttrs = {
expected = {
foo = {
nested = "test1";
};
bar = {
nested = "test2";
};
};
};
};
attrsOf_submodule_err_inner = getMatrix {
outerTypeName = "attrsOf";
innerTypeName = "submodule";
getType =
a: b:
a.attrsOf (
b.submodule (m: {
options.nested = m.lib.mkOption {
type = m.lib.types.str;
};
})
);
value = {
foo = [ 1 ]; # not a submodule
bar = {
nested = "test2";
};
};
testAttrs = {
expectedError = {
type = "ThrownError";
msg = "A definition for option `foo.foo' is not of type `submodule'.*";
};
};
};
attrsOf_submodule_err_outer = getMatrix {
outerTypeName = "attrsOf";
innerTypeName = "submodule";
getType =
a: b:
a.attrsOf (
b.submodule (m: {
options.nested = m.lib.mkOption {
type = m.lib.types.str;
};
})
);
value = [ 123 ]; # not an attrsOf
testAttrs = {
expectedError = {
type = "ThrownError";
msg = ''A definition for option `foo' is not of type `attribute set of \(submodule\).*'';
};
};
};
# either
either_str_attrsOf_ok = getMatrix {
outerTypeName = "either";
innerTypeName = "str_or_attrsOf_str";
getType = a: b: a.either b.str (b.attrsOf a.str);
value = "string value";
testAttrs = {
expected = "string value";
};
};
either_str_attrsOf_err_1 = getMatrix {
outerTypeName = "either";
innerTypeName = "str_or_attrsOf_str";
getType = a: b: a.either b.str (b.attrsOf a.str);
value = 1;
testAttrs = {
expectedError = {
type = "ThrownError";
msg = "A definition for option `foo' is not of type `string or attribute set of string'.*";
};
};
};
either_str_attrsOf_err_2 = getMatrix {
outerTypeName = "either";
innerTypeName = "str_or_attrsOf_str";
getType = a: b: a.either b.str (b.attrsOf a.str);
value = {
bar = 1; # not a string
};
testAttrs = {
expectedError = {
type = "ThrownError";
msg = "A definition for option `foo.bar' is not of type `string'.*";
};
};
};
# Coereced to
coerce_attrsOf_str_to_listOf_str_run = getMatrix {
outerTypeName = "coercedTo";
innerTypeName = "attrsOf_str->listOf_str";
getType = a: b: a.coercedTo (b.attrsOf b.str) builtins.attrValues (b.listOf b.str);
value = {
bar = "test1"; # coerced to listOf string
foo = "test2"; # coerced to listOf string
};
testAttrs = {
expected = [
"test1"
"test2"
];
};
};
coerce_attrsOf_str_to_listOf_str_final = getMatrix {
outerTypeName = "coercedTo";
innerTypeName = "attrsOf_str->listOf_str";
getType = a: b: a.coercedTo (b.attrsOf b.str) (abort "This shouldnt run") (b.listOf b.str);
value = [
"test1"
"test2"
]; # already a listOf string
testAttrs = {
expected = [
"test1"
"test2"
]; # Order should be kept
};
};
coerce_attrsOf_str_to_listOf_err_coercer_input = getMatrix {
outerTypeName = "coercedTo";
innerTypeName = "attrsOf_str->listOf_str";
getType = a: b: a.coercedTo (b.attrsOf b.str) builtins.attrValues (b.listOf b.str);
value = [
{ }
{ }
]; # not coercible to listOf string, with the given coercer
testAttrs = {
expectedError = {
type = "ThrownError";
msg = ''A definition for option `foo."\[definition 1-entry 1\]"' is not of type `string'.*'';
};
};
};
coerce_attrsOf_str_to_listOf_err_coercer_ouput = getMatrix {
outerTypeName = "coercedTo";
innerTypeName = "attrsOf_str->listOf_str";
getType = a: b: a.coercedTo (b.attrsOf b.str) builtins.attrValues (b.listOf b.str);
value = {
foo = {
bar = 1;
}; # coercer produces wrong type -> [ { bar = 1; } ]
};
testAttrs = {
expectedError = {
type = "ThrownError";
msg = ''A definition for option `foo."\[definition 1-entry 1\]"' is not of type `string'.*'';
};
};
};
coerce_str_to_int_coercer_ouput = getMatrix {
outerTypeName = "coercedTo";
innerTypeName = "int->str";
getType = a: b: a.coercedTo b.int builtins.toString a.str;
value = [ ];
testAttrs = {
expectedError = {
type = "ThrownError";
msg = ''A definition for option `foo' is not of type `string or signed integer convertible to it.*'';
};
};
};
# Submodule
submodule_with_ok = getMatrix {
outerTypeName = "submoduleWith";
innerTypeName = "mixed_types";
getType =
a: b:
a.submodule (m: {
options.attrs = m.lib.mkOption {
type = b.attrsOf b.str;
};
options.list = m.lib.mkOption {
type = b.listOf b.str;
};
options.either = m.lib.mkOption {
type = b.either a.str a.int;
};
});
value = {
attrs = {
foo = "bar";
};
list = [
"foo"
"bar"
];
either = 123; # int
};
testAttrs = {
expected = {
attrs = {
foo = "bar";
};
list = [
"foo"
"bar"
];
either = 123;
};
};
};
}
+22 -2
View File
@@ -345,14 +345,14 @@ checkConfigOutput '^true$' "$@" ./define-module-check.nix
set --
checkConfigOutput '^"42"$' config.value ./declare-coerced-value.nix
checkConfigOutput '^"24"$' config.value ./declare-coerced-value.nix ./define-value-string.nix
checkConfigError 'A definition for option .* is not.*string or signed integer convertible to it.*. Definition values:\n\s*- In .*: \[ \]' config.value ./declare-coerced-value.nix ./define-value-list.nix
checkConfigError 'A definition for option .*. is not of type .*.\n\s*- In .*: \[ \]' config.value ./declare-coerced-value.nix ./define-value-list.nix
# Check coerced option merging.
checkConfigError 'The option .value. in .*/declare-coerced-value.nix. is already declared in .*/declare-coerced-value-no-default.nix.' config.value ./declare-coerced-value.nix ./declare-coerced-value-no-default.nix
# Check coerced value with unsound coercion
checkConfigOutput '^12$' config.value ./declare-coerced-value-unsound.nix
checkConfigError 'A definition for option .* is not of type .*. Definition values:\n\s*- In .*: "1000"' config.value ./declare-coerced-value-unsound.nix ./define-value-string-bigint.nix
checkConfigError 'A definition for option .* is not of type .*.\n\s*- In .*: "1000"' config.value ./declare-coerced-value-unsound.nix ./define-value-string-bigint.nix
checkConfigError 'toInt: Could not convert .* to int' config.value ./declare-coerced-value-unsound.nix ./define-value-string-arbitrary.nix
# Check `graph` attribute
@@ -761,6 +761,26 @@ checkConfigOutput '"bar"' config.sub.conditionalImportAsNixos.foo ./specialArgs-
checkConfigError 'attribute .*bar.* not found' config.sub.conditionalImportAsNixos.bar ./specialArgs-class.nix
checkConfigError 'attribute .*foo.* not found' config.sub.conditionalImportAsDarwin.foo ./specialArgs-class.nix
checkConfigOutput '"foo"' config.sub.conditionalImportAsDarwin.bar ./specialArgs-class.nix
# Check that some types expose the 'valueMeta'
checkConfigOutput '\{\}' options.str.valueMeta ./types-valueMeta.nix
checkConfigOutput '["foo", "bar"]' config.attrsOfResult ./types-valueMeta.nix
checkConfigOutput '2' config.listOfResult ./types-valueMeta.nix
# Check that composed types expose the 'valueMeta'
# attrsOf submodule (also on merged options,types)
checkConfigOutput '42' options.attrsOfModule.valueMeta.attrs.foo.configuration.options.bar.value ./composed-types-valueMeta.nix
checkConfigOutput '42' options.mergedAttrsOfModule.valueMeta.attrs.foo.configuration.options.bar.value ./composed-types-valueMeta.nix
# listOf submodule (also on merged options,types)
checkConfigOutput '42' config.listResult ./composed-types-valueMeta.nix
checkConfigOutput '42' config.mergedListResult ./composed-types-valueMeta.nix
# Add check
checkConfigOutput '^0$' config.v1CheckedPass ./add-check.nix
checkConfigError 'A definition for option .* is not of type .signed integer.*' config.v1CheckedFail ./add-check.nix
checkConfigOutput '^true$' config.v2checkedPass ./add-check.nix
checkConfigError 'A definition for option .* is not of type .attribute set of signed integer.*' config.v2checkedFail ./add-check.nix
cat <<EOF
====== module tests ======
+36
View File
@@ -0,0 +1,36 @@
(
{ lib, ... }:
let
inherit (lib) types mkOption;
inherit (types) addCheck int attrsOf;
# type with a v1 merge
v1Type = addCheck int (v: v == 0);
# type with a v2 merge
v2Type = addCheck (attrsOf int) (v: v ? foo);
in
{
options.v1CheckedPass = mkOption {
type = v1Type;
default = 0;
};
options.v1CheckedFail = mkOption {
type = v1Type;
default = 1;
};
options.v2checkedPass = mkOption {
type = v2Type;
default = {
foo = 1;
};
# plug the value to make test script regex simple
apply = v: v.foo == 1;
};
options.v2checkedFail = mkOption {
type = v2Type;
default = { };
apply = v: lib.deepSeq v v;
};
}
)
@@ -0,0 +1,75 @@
{ lib, ... }:
let
inherit (lib) types mkOption;
attrsOfModule = mkOption {
type = types.attrsOf (
types.submodule {
options.bar = mkOption {
type = types.int;
};
}
);
};
listOfModule = mkOption {
type = types.listOf (
types.submodule {
options.bar = mkOption {
type = types.int;
};
}
);
};
in
{
imports = [
# Module A
({
options.attrsOfModule = attrsOfModule;
options.mergedAttrsOfModule = attrsOfModule;
options.listOfModule = listOfModule;
options.mergedListOfModule = listOfModule;
})
# Module B
({
options.mergedAttrsOfModule = attrsOfModule;
options.mergedListOfModule = listOfModule;
})
# Values
# It is important that the value is defined in a separate module
# Without valueMeta the actual value and sub-options wouldn't be accessible via:
# options.attrsOfModule.type.getSubOptions
({
attrsOfModule = {
foo.bar = 42;
};
mergedAttrsOfModule = {
foo.bar = 42;
};
})
(
{ options, ... }:
{
config.listOfModule = [
{
bar = 42;
}
];
config.mergedListOfModule = [
{
bar = 42;
}
];
# Result options to expose the list module to bash as plain attribute path
options.listResult = mkOption {
default = (builtins.head options.listOfModule.valueMeta.list).configuration.options.bar.value;
};
options.mergedListResult = mkOption {
default = (builtins.head options.mergedListOfModule.valueMeta.list).configuration.options.bar.value;
};
}
)
];
}
+60
View File
@@ -0,0 +1,60 @@
{ lib, ... }:
let
inherit (lib) types mkOption;
inherit (types)
# attrsOf uses attrsWith internally
attrsOf
listOf
submoduleOf
str
;
in
{
imports = [
(
{ options, ... }:
{
# Should have an empty valueMeta
options.str = mkOption {
type = str;
};
# Should have some valueMeta which is an attribute set of the nested valueMeta
options.attrsOf = mkOption {
type = attrsOf str;
default = {
foo = "foo";
bar = "bar";
};
};
options.attrsOfResult = mkOption {
default = builtins.attrNames options.attrsOf.valueMeta.attrs;
};
# Should have some valueMeta which is the list of the nested valueMeta of types.str
# [ {} {} ]
options.listOf = mkOption {
type = listOf str;
default = [
"foo"
"bar"
];
};
options.listOfResult = mkOption {
default = builtins.length options.listOf.valueMeta.list;
};
# Should have some valueMeta which is the submodule evaluation
# { _module, options, config, ...}
options.submoduleOf = mkOption {
type = submoduleOf {
options.str = mkOption {
type = str;
};
};
};
}
)
];
}
+25
View File
@@ -0,0 +1,25 @@
{
pkgs ? import ../.. { },
}:
let
prevNixpkgs = pkgs.fetchFromGitHub {
owner = "nixos";
repo = "nixpkgs";
# Parent commit of [#391544](https://github.com/NixOS/nixpkgs/pull/391544)
# Which was before the type.merge.v2 introduction
rev = "bcf94dd3f07189b7475d823c8d67d08b58289905";
hash = "sha256-MuMiIY3MX5pFSOCvutmmRhV6RD0R3CG0Hmazkg8cMFI=";
};
in
(pkgs.runCommand "lib-cross-eval-merge-v2"
{
nativeBuildInputs = [ pkgs.nix-unit ];
}
''
export HOME=$TMPDIR
nix-unit --eval-store "$HOME" ${./checkAndMergeCompat.nix} \
--arg currLibPath "${../.}" \
--arg prevLibPath "${prevNixpkgs}/lib"
mkdir $out
''
)
+3
View File
@@ -29,6 +29,9 @@ in
pkgsBB.symlinkJoin {
name = "nixpkgs-lib-tests";
paths = map testWithNix nixVersions ++ [
(import ./nix-unit.nix {
inherit pkgs;
})
(import ./maintainers.nix {
inherit pkgs;
lib = import ../.;
+201 -76
View File
@@ -20,7 +20,6 @@ let
toList
;
inherit (lib.lists)
all
concatLists
count
elemAt
@@ -48,6 +47,7 @@ let
mergeOneOption
mergeUniqueOption
showFiles
showDefs
showOption
;
inherit (lib.strings)
@@ -99,6 +99,13 @@ let
}is accessed, use `${lib.optionalString (loc != null) "type."}nestedTypes.elemType` instead.
'' payload.elemType;
checkDefsForError =
check: loc: defs:
let
invalidDefs = filter (def: !check def.value) defs;
in
if invalidDefs != [ ] then { message = "Definition values: ${showDefs invalidDefs}"; } else null;
outer_types = rec {
isType = type: x: (x._type or "") == type;
@@ -705,26 +712,36 @@ let
}";
descriptionClass = "composite";
check = isList;
merge =
loc: defs:
map (x: x.value) (
filter (x: x ? value) (
concatLists (
imap1 (
n: def:
merge = {
__functor =
self: loc: defs:
(self.v2 { inherit loc defs; }).value;
v2 =
{ loc, defs }:
let
evals = filter (x: x.optionalValue ? value) (
concatLists (
imap1 (
m: def':
(mergeDefinitions (loc ++ [ "[definition ${toString n}-entry ${toString m}]" ]) elemType [
{
inherit (def) file;
value = def';
}
]).optionalValue
) def.value
) defs
)
)
);
n: def:
imap1 (
m: def':
(mergeDefinitions (loc ++ [ "[definition ${toString n}-entry ${toString m}]" ]) elemType [
{
inherit (def) file;
value = def';
}
])
) def.value
) defs
)
);
in
{
headError = checkDefsForError check loc defs;
value = map (x: x.optionalValue.value or x.mergedValue) evals;
valueMeta.list = map (v: v.checkedAndMerged.valueMeta) evals;
};
};
emptyValue = {
value = [ ];
};
@@ -801,42 +818,43 @@ let
lazy ? false,
placeholder ? "name",
}:
mkOptionType {
mkOptionType rec {
name = if lazy then "lazyAttrsOf" else "attrsOf";
description =
(if lazy then "lazy attribute set" else "attribute set")
+ " of ${optionDescriptionPhrase (class: class == "noun" || class == "composite") elemType}";
descriptionClass = "composite";
check = isAttrs;
merge =
if lazy then
(
# Lazy merge Function
loc: defs:
zipAttrsWith
(
name: defs:
let
merged = mergeDefinitions (loc ++ [ name ]) elemType defs;
# mergedValue will trigger an appropriate error when accessed
in
merged.optionalValue.value or elemType.emptyValue.value or merged.mergedValue
)
# Push down position info.
(pushPositions defs)
)
else
(
# Non-lazy merge Function
loc: defs:
mapAttrs (n: v: v.value) (
filterAttrs (n: v: v ? value) (
zipAttrsWith (name: defs: (mergeDefinitions (loc ++ [ name ]) elemType (defs)).optionalValue)
# Push down position info.
(pushPositions defs)
)
)
);
merge = {
__functor =
self: loc: defs:
(self.v2 { inherit loc defs; }).value;
v2 =
{ loc, defs }:
let
evals =
if lazy then
zipAttrsWith (name: defs: mergeDefinitions (loc ++ [ name ]) elemType defs) (pushPositions defs)
else
# Filtering makes the merge function more strict
# Meaning it is less lazy
filterAttrs (n: v: v.optionalValue ? value) (
zipAttrsWith (name: defs: mergeDefinitions (loc ++ [ name ]) elemType defs) (pushPositions defs)
);
in
{
headError = checkDefsForError check loc defs;
value = mapAttrs (
n: v:
if lazy then
v.optionalValue.value or elemType.emptyValue.value or v.mergedValue
else
v.optionalValue.value
) evals;
valueMeta.attrs = mapAttrs (n: v: v.checkedAndMerged.valueMeta) evals;
};
};
emptyValue = {
value = { };
};
@@ -1218,6 +1236,7 @@ let
name = "submodule";
check = x: isAttrs x || isFunction x || path.check x;
in
mkOptionType {
inherit name;
@@ -1229,13 +1248,25 @@ let
docsEval = base.extendModules { modules = [ noCheckForDocsModule ]; };
in
docsEval._module.freeformType.description or name;
check = x: isAttrs x || isFunction x || path.check x;
merge =
loc: defs:
(base.extendModules {
modules = [ { _module.args.name = last loc; } ] ++ allModules defs;
prefix = loc;
}).config;
inherit check;
merge = {
__functor =
self: loc: defs:
(self.v2 { inherit loc defs; }).value;
v2 =
{ loc, defs }:
let
configuration = base.extendModules {
modules = [ { _module.args.name = last loc; } ] ++ allModules defs;
prefix = loc;
};
in
{
headError = checkDefsForError check loc defs;
value = configuration.config;
valueMeta = { inherit configuration; };
};
};
emptyValue = {
value = { };
};
@@ -1383,17 +1414,50 @@ let
}";
descriptionClass = "conjunction";
check = x: t1.check x || t2.check x;
merge =
loc: defs:
let
defList = map (d: d.value) defs;
in
if all (x: t1.check x) defList then
t1.merge loc defs
else if all (x: t2.check x) defList then
t2.merge loc defs
else
mergeOneOption loc defs;
merge = {
__functor =
self: loc: defs:
(self.v2 { inherit loc defs; }).value;
v2 =
{ loc, defs }:
let
t1CheckedAndMerged =
if t1.merge ? v2 then
t1.merge.v2 { inherit loc defs; }
else
{
value = t1.merge loc defs;
headError = checkDefsForError t1.check loc defs;
valueMeta = { };
};
t2CheckedAndMerged =
if t2.merge ? v2 then
t2.merge.v2 { inherit loc defs; }
else
{
value = t2.merge loc defs;
headError = checkDefsForError t2.check loc defs;
valueMeta = { };
};
checkedAndMerged =
if t1CheckedAndMerged.headError == null then
t1CheckedAndMerged
else if t2CheckedAndMerged.headError == null then
t2CheckedAndMerged
else
rec {
valueMeta = {
inherit headError;
};
headError = {
message = "The option `${showOption loc}` is neither a value of type `${t1.description}` nor `${t2.description}`, Definition values: ${showDefs defs}";
};
value = abort "(t.merge.v2 defs).value must only be accessed when `.headError == null`. This is a bug in code that consumes a module system type.";
};
in
checkedAndMerged;
};
typeMerge =
f':
let
@@ -1434,12 +1498,47 @@ let
optionDescriptionPhrase (class: class == "noun") coercedType
} convertible to it";
check = x: (coercedType.check x && finalType.check (coerceFunc x)) || finalType.check x;
merge =
loc: defs:
let
coerceVal = val: if coercedType.check val then coerceFunc val else val;
in
finalType.merge loc (map (def: def // { value = coerceVal def.value; }) defs);
merge = {
__functor =
self: loc: defs:
(self.v2 { inherit loc defs; }).value;
v2 =
{ loc, defs }:
let
finalDefs = (
map (
def:
def
// {
value =
let
merged = coercedType.merge.v2 {
inherit loc;
defs = [ def ];
};
in
if coercedType.merge ? v2 then
if merged.headError == null then coerceFunc def.value else def.value
else if coercedType.check def.value then
coerceFunc def.value
else
def.value;
}
) defs
);
in
if finalType.merge ? v2 then
finalType.merge.v2 {
inherit loc;
defs = finalDefs;
}
else
{
value = finalType.merge loc finalDefs;
valueMeta = { };
headError = checkDefsForError check loc defs;
};
};
emptyValue = finalType.emptyValue;
getSubOptions = finalType.getSubOptions;
getSubModules = finalType.getSubModules;
@@ -1451,6 +1550,7 @@ let
nestedTypes.coercedType = coercedType;
nestedTypes.finalType = finalType;
};
/**
Augment the given type with an additional type check function.
@@ -1459,8 +1559,33 @@ let
Fixing is not trivial, we appreciate any help!
:::
*/
addCheck = elemType: check: elemType // { check = x: elemType.check x && check x; };
addCheck =
elemType: check:
if elemType.merge ? v2 then
elemType
// {
check = x: elemType.check x && check x;
merge = {
__functor =
self: loc: defs:
(self.v2 { inherit loc defs; }).value;
v2 =
{ loc, defs }:
let
orig = elemType.merge.v2 { inherit loc defs; };
headError' = if orig.headError != null then orig.headError else checkDefsForError check loc defs;
in
orig
// {
headError = headError';
};
};
}
else
elemType
// {
check = x: elemType.check x && check x;
};
};
/**
+6
View File
@@ -22358,6 +22358,12 @@
githubId = 2660;
name = "Russell Sim";
};
RustyNova = {
email = "rusty.nova.jsb@gmail.com";
github = "RustyNova016";
githubId = 50844553;
name = "RustyNova";
};
rutherther = {
name = "Rutherther";
email = "rutherther@proton.me";
-1
View File
@@ -421,7 +421,6 @@ with lib.maintainers;
frlan
leona
osnyx
ma27
];
scope = "Team for Flying Circus employees who collectively maintain packages.";
shortName = "Flying Circus employees";
+1 -8
View File
@@ -123,18 +123,11 @@ in
wantedBy = [ "multi-user.target" ];
restartTriggers = [ config.environment.etc."exim.conf".source ];
serviceConfig = {
ExecStartPre = "+${coreutils}/bin/install --group=${cfg.group} --owner=${cfg.user} --mode=0700 --directory ${cfg.spoolDir}";
ExecStart = "!${cfg.package}/bin/exim -bdf -q${cfg.queueRunnerInterval}";
ExecReload = "!${coreutils}/bin/kill -HUP $MAINPID";
User = cfg.user;
};
preStart = ''
if ! test -d ${cfg.spoolDir}; then
${coreutils}/bin/mkdir -p ${cfg.spoolDir}
${coreutils}/bin/chown ${cfg.user}:${cfg.group} ${cfg.spoolDir}
fi
'';
};
};
}
+2 -1
View File
@@ -481,7 +481,6 @@ in
settings.Manager.DefaultEnvironment = "PATH=/bin:/sbin";
contents = {
"/tmp/.keep".text = "systemd requires the /tmp mount point in the initrd cpio archive";
"/init".source = "${cfg.package}/lib/systemd/systemd";
"/etc/systemd/system".source = stage1Units;
@@ -503,6 +502,8 @@ in
"/bin".source = "${initrdBinEnv}/bin";
"/sbin".source = "${initrdBinEnv}/sbin";
"/usr/bin".source = "${initrdBinEnv}/bin";
"/usr/sbin".source = "${initrdBinEnv}/sbin";
"/etc/os-release".source = config.boot.initrd.osRelease;
"/etc/initrd-release".source = config.boot.initrd.osRelease;
+1 -1
View File
@@ -73,7 +73,7 @@ let
type:
makeTest {
name = "oci-containers-podman-rootless-${type}";
meta.maintainers = lib.teams.flyingcircus.members;
meta.maintainers = lib.teams.flyingcircus.members ++ [ lib.maintainers.ma27 ];
nodes = {
podman =
{ pkgs, ... }:
@@ -18,13 +18,13 @@
stdenv.mkDerivation rec {
pname = "timeshift";
version = "25.07.5";
version = "25.07.6";
src = fetchFromGitHub {
owner = "linuxmint";
repo = "timeshift";
rev = version;
hash = "sha256-AXtHs19DeSF2v5v4aBchGlsO59Z7h5OfmAaDb9SjwSc=";
hash = "sha256-M3r5CUSMF2Es1EDolmZAwqj2uX76wARk5oefqdf2eYk=";
};
postPatch = ''
@@ -23,7 +23,7 @@
stdenv.mkDerivation (finalAttrs: {
pname = "palemoon-bin";
version = "33.8.1.2";
version = "33.8.2";
src = finalAttrs.passthru.sources."gtk${if withGTK3 then "3" else "2"}";
@@ -173,11 +173,11 @@ stdenv.mkDerivation (finalAttrs: {
{
gtk3 = fetchzip {
urls = urlRegionVariants "gtk3";
hash = "sha256-qgabtZ/8nBaOGP0pIXd/byd9XCxulT8w+7uczJE4SAg=";
hash = "sha256-W5N2OzHTYhJ7Lha/iduN7JPcczF+VPU9I36BAUiXUmU=";
};
gtk2 = fetchzip {
urls = urlRegionVariants "gtk2";
hash = "sha256-qeA8EYRY9STsezWrvlVt73fgxPB0mynkxtTV71HFMgU=";
hash = "sha256-RmX/yCWHzZEdkh6TnUQ/guIc7+iEdpK8ANhJxL3MbzI=";
};
};
@@ -13,13 +13,13 @@
stdenv.mkDerivation rec {
pname = "helm-secrets";
version = "4.6.5";
version = "4.6.6";
src = fetchFromGitHub {
owner = "jkroepke";
repo = pname;
rev = "v${version}";
hash = "sha256-gSWavqvKdVBRF182fzEiRqEVg8douzEcpKiOdmSZ9hg=";
hash = "sha256-sAGENuyg2t/H7BYF+Y+Nk3SB2/PA/V+L374iXmppkqc=";
};
nativeBuildInputs = [ makeWrapper ];
@@ -335,13 +335,13 @@
"vendorHash": "sha256-ZCMSmOCPEMxCSpl3DjIUGPj1W/KNJgyjtHpmQ19JquA="
},
"datadog": {
"hash": "sha256-kn9qUKvCV0vbOHDsgByO8MAJA/xwEzoBzRO9poWs0V0=",
"hash": "sha256-Zfsxcfi55RjG5Jq/MnDZ8yfOjg78ORrUMhK300EFxes=",
"homepage": "https://registry.terraform.io/providers/DataDog/datadog",
"owner": "DataDog",
"repo": "terraform-provider-datadog",
"rev": "v3.71.0",
"rev": "v3.72.0",
"spdx": "MPL-2.0",
"vendorHash": "sha256-0aYkDyqpXzGXZR4ua4rru9Bwt5R+UjDdozO8ZnHm1xQ="
"vendorHash": "sha256-Zi1SyC2SdYBMO0r7QVYS51XOodRG1JHcuIrMu0JRkn0="
},
"deno": {
"hash": "sha256-7IvJrhXMeAmf8e21QBdYNSJyVMEzLpat4Tm4zHWglW8=",
@@ -1147,13 +1147,13 @@
"vendorHash": "sha256-39OiEYntUmX2fJZh7G/LcCNFXFmHwdLgFGYz6BUEyOA="
},
"routeros": {
"hash": "sha256-q0ZRAip6mgHkdBcns8G7VlDnMNB+ux6ITKwcSL4WrcY=",
"hash": "sha256-XKKbw8tMtRkOU2lJEieK3CEokNAkiS1Wr1l5XnKW8qI=",
"homepage": "https://registry.terraform.io/providers/terraform-routeros/routeros",
"owner": "terraform-routeros",
"repo": "terraform-provider-routeros",
"rev": "v1.86.2",
"rev": "v1.86.3",
"spdx": "MPL-2.0",
"vendorHash": "sha256-et1xqcaCKTRz9bJjTlRnxhXBoc6PaeSwJgBI4pAzcdg="
"vendorHash": "sha256-Je7pWso3kDttP5Isn3Atryg3RZOlvj3g6nTTzuvpA5Y="
},
"rundeck": {
"hash": "sha256-g8unbz8+UGLiAOJju6E2bLkygvZgHkv173PdMDefmrc=",
-1
View File
@@ -314,7 +314,6 @@ stdenv.mkDerivation (finalAttrs: {
maintainers = with lib.maintainers; [
fpletz
globin
ma27
SchweGELBin
];
platforms = lib.platforms.unix;
@@ -16,14 +16,14 @@
stdenv.mkDerivation (finalAttrs: {
pname = "wf-shell";
version = "0.9.0";
version = "0.10.0";
src = fetchFromGitHub {
owner = "WayfireWM";
repo = "wf-shell";
rev = "v${finalAttrs.version}";
fetchSubmodules = true;
hash = "sha256-J5KmUxM/mU5I1YfkfwZgbK7VxMTKKKGGvxYS5Rnbqnc=";
hash = "sha256-PLTeFGecxVwU2LdwnDwiWB1OcbaZjJemMpT0pcCFf/w=";
};
nativeBuildInputs = [
@@ -444,7 +444,20 @@ buildStdenv.mkDerivation {
# linking firefox hits the vm.max_map_count kernel limit with the default musl allocator
# TODO: Default vm.max_map_count has been increased, retest without this
export LD_PRELOAD=${mimalloc}/lib/libmimalloc.so
'';
''
+
# fileport.h was exposed in SDK 15.4 but we have only 15.2 in nixpkgs so far.
lib.optionalString
(
stdenv.hostPlatform.isDarwin
&& lib.versionAtLeast version "143"
&& lib.versionOlder apple-sdk_15.version "15.4"
)
''
mkdir -p xnu/sys
cp ${apple-sdk_15.sourceRelease "xnu"}/bsd/sys/fileport.h xnu/sys
export CXXFLAGS="-isystem $(pwd)/xnu"
'';
# firefox has a different definition of configurePlatforms from nixpkgs, see configureFlags
configurePlatforms = [ ];
+9 -1
View File
@@ -202,7 +202,15 @@ lib.extendMkDerivation {
outputHashAlgo = if finalAttrs.vendorHash == "" then "sha256" else null;
# in case an overlay clears passthru by accident, don't fail evaluation
}).overrideAttrs
(finalAttrs.passthru.overrideModAttrs or overrideModAttrs);
(
let
pos = builtins.unsafeGetAttrPos "passthru" finalAttrs;
posString =
if pos == null then "unknown" else "${pos.file}:${toString pos.line}:${toString pos.column}";
in
finalAttrs.passthru.overrideModAttrs
or (lib.warn "buildGoModule: ${finalAttrs.name or finalAttrs.pname}: passthru.overrideModAttrs missing after overrideAttrs. Last overridden at ${posString}." overrideModAttrs)
);
nativeBuildInputs = [ go ] ++ nativeBuildInputs;
+2 -1
View File
@@ -100,7 +100,8 @@ runCommand name
++ lib.optional makeUInitrd ubootTools;
})
''
mkdir -p ./root/var/empty
mkdir -p ./root/{run,tmp,var/empty}
ln -s ../run ./root/var/run
make-initrd-ng "$contentsPath" ./root
mkdir "$out"
(cd root && find . -exec touch -h -d '@1' '{}' +)
+2 -2
View File
@@ -7,13 +7,13 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "action-validator";
version = "0.7.1";
version = "0.8.0";
src = fetchFromGitHub {
owner = "mpalmer";
repo = "action-validator";
tag = "v${finalAttrs.version}";
hash = "sha256-pqWowcc/3NHtVcNDZ+4opgtwttcKdUVoi4qkv56JvY4=";
hash = "sha256-irBK27De9W5BSNIQynguOY8oPgA7K03dleE/0YvY75o=";
fetchSubmodules = true;
};
@@ -1,34 +0,0 @@
From 2bbe75fe0bc87ab4c1e16c5a18c6200224391629 Mon Sep 17 00:00:00 2001
From: Nicole Patricia Mazzuca <nicole@streganil.no>
Date: Fri, 9 May 2025 09:32:21 +0200
Subject: [PATCH] open: fix opening text/html messages
This fixes a bug introduced in 93bec0de8ed5ab3d6b1f01026fe2ef20fa154329:
aerc started using `path.Base(<part>)`, which returns `"."` on an empty
path, but still checked for `""` two lines later.
On macOS, the result is that aerc attempts to open the directory:
```
open /var/folders/vn/hs0zvdsx3vq6svvry8s1bnym0000gn/T/aerc-4229266673: is a directory
```
Signed-off-by: Nicole Patricia Mazzuca <nicole@streganil.no>
Acked-by: Robin Jarry <robin@jarry.cc>
---
commands/msgview/open.go | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/commands/msgview/open.go b/commands/msgview/open.go
index a6e43cb8da5fd49d2aa562d4c25ee2d597deefc3..7c770d4a90b771e3a18dfcb327f5e9306d5b5fa7 100644
--- a/commands/msgview/open.go
+++ b/commands/msgview/open.go
@@ -59,7 +59,7 @@ func (o Open) Execute(args []string) error {
}
filename := path.Base(part.FileName())
var tmpFile *os.File
- if filename == "" {
+ if filename == "." {
extension := ""
if exts, _ := mime.ExtensionsByType(mimeType); len(exts) > 0 {
extension = exts[0]
@@ -1,41 +0,0 @@
From 93bec0de8ed5ab3d6b1f01026fe2ef20fa154329 Mon Sep 17 00:00:00 2001
From: Robin Jarry <robin@jarry.cc>
Date: Wed, 9 Apr 2025 10:49:24 +0200
Subject: [PATCH] open: only use part basename for temp file
When an attachment part has a name such as "/tmp/55208186_AllDocs.pdf",
aerc creates a temp folder and tries to store the file by blindly
concatenating the path as follows:
/tmp/aerc-3444057757/tmp/55208186_AllDocs.pdf
And when writing to this path, it gets a "No such file or directory"
error because the intermediate "tmp" subfolder isn't created.
Reported-by: Erik Colson <eco@ecocode.net>
Signed-off-by: Robin Jarry <robin@jarry.cc>
---
commands/msgview/open.go | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/commands/msgview/open.go b/commands/msgview/open.go
index 4293b7e4892c137a7f3fbbe79245ffb6733b2671..a6e43cb8da5fd49d2aa562d4c25ee2d597deefc3 100644
--- a/commands/msgview/open.go
+++ b/commands/msgview/open.go
@@ -5,6 +5,7 @@ import (
"io"
"mime"
"os"
+ "path"
"path/filepath"
"git.sr.ht/~rjarry/aerc/app"
@@ -56,7 +57,7 @@ func (o Open) Execute(args []string) error {
app.PushError(err.Error())
return
}
- filename := part.FileName()
+ filename := path.Base(part.FileName())
var tmpFile *os.File
if filename == "" {
extension := ""
+4 -11
View File
@@ -16,31 +16,24 @@
buildGoModule (finalAttrs: {
pname = "aerc";
version = "0.20.1";
version = "0.21.0";
src = fetchFromSourcehut {
owner = "~rjarry";
repo = "aerc";
rev = finalAttrs.version;
hash = "sha256-IBTM3Ersm8yUCgiBLX8ozuvMEbfmY6eW5xvJD20UgRA=";
hash = "sha256-UBXMAIuB0F7gG0dkpEF/3V4QK6FEbQw2ZLGGmRF884I=";
};
proxyVendor = true;
vendorHash = "sha256-O1j0J6vCE6rap5/fOTxlUpXAG5mgZf8CfNOB4VOBxms=";
vendorHash = "sha256-E/DnfiHoDDNNoaNGZC/nvs8DiJ8F2+H2FzxpU7nK+bE=";
nativeBuildInputs = [
scdoc
python3Packages.wrapPython
];
patches = [
./runtime-libexec.patch
# TODO remove these with the next release
# they resolve a path injection vulnerability when saving attachments (CVE-2025-49466)
./basename-temp-file.patch
./basename-temp-file-fixup.patch
];
patches = [ ./runtime-libexec.patch ];
postPatch = ''
substituteAllInPlace config/aerc.conf
+8 -1
View File
@@ -21,6 +21,10 @@ rustPlatform.buildRustPackage (finalAttrs: {
cargoHash = "sha256-TyxeuDMmoRvIVaapA/KstFnARPpPv9h19Bg3/XnwQWs=";
buildNoDefaultFeatures = true;
# Would be cleaner with an "--all-features" option
buildFeatures = [ "full" ];
nativeBuildInputs = [
pkg-config
];
@@ -39,7 +43,10 @@ rustPlatform.buildRustPackage (finalAttrs: {
changelog = "https://github.com/RustyNova016/Alistral/blob/${finalAttrs.src.tag}/CHANGELOG.md";
description = "Power tools for Listenbrainz";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ jopejoe1 ];
maintainers = with lib.maintainers; [
jopejoe1
RustyNova
];
mainProgram = "alistral";
};
})
+224 -4
View File
@@ -5,7 +5,7 @@
"packages": {
"": {
"dependencies": {
"@sourcegraph/amp": "^0.0.1755532879-g2b6e3d"
"@sourcegraph/amp": "^0.0.1756368086-g6e639d"
}
},
"node_modules/@colors/colors": {
@@ -37,11 +37,231 @@
"node": ">= 10"
}
},
"node_modules/@napi-rs/keyring": {
"version": "1.1.9",
"resolved": "https://registry.npmjs.org/@napi-rs/keyring/-/keyring-1.1.9.tgz",
"integrity": "sha512-qjg04yaJ/gFqgG7wDqLlWBvZpsjvYDtwL+xOr2vSM2JrhojuIKsw7pH013U7xJOradTVGeQqhwqgZtt2IblgOw==",
"license": "MIT",
"engines": {
"node": ">= 10"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/Brooooooklyn"
},
"optionalDependencies": {
"@napi-rs/keyring-darwin-arm64": "1.1.9",
"@napi-rs/keyring-darwin-x64": "1.1.9",
"@napi-rs/keyring-freebsd-x64": "1.1.9",
"@napi-rs/keyring-linux-arm-gnueabihf": "1.1.9",
"@napi-rs/keyring-linux-arm64-gnu": "1.1.9",
"@napi-rs/keyring-linux-arm64-musl": "1.1.9",
"@napi-rs/keyring-linux-riscv64-gnu": "1.1.9",
"@napi-rs/keyring-linux-x64-gnu": "1.1.9",
"@napi-rs/keyring-linux-x64-musl": "1.1.9",
"@napi-rs/keyring-win32-arm64-msvc": "1.1.9",
"@napi-rs/keyring-win32-ia32-msvc": "1.1.9",
"@napi-rs/keyring-win32-x64-msvc": "1.1.9"
}
},
"node_modules/@napi-rs/keyring-darwin-arm64": {
"version": "1.1.9",
"resolved": "https://registry.npmjs.org/@napi-rs/keyring-darwin-arm64/-/keyring-darwin-arm64-1.1.9.tgz",
"integrity": "sha512-/lVnrSFrut+8pQC6IcqlfHKzcEmf2XvQDOZPB5X4vI23GrNXBd56EuBlFPdTBtx46A8Bn+Aqi6pS8cnprHtcCw==",
"cpu": [
"arm64"
],
"license": "MIT",
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": ">= 10"
}
},
"node_modules/@napi-rs/keyring-darwin-x64": {
"version": "1.1.9",
"resolved": "https://registry.npmjs.org/@napi-rs/keyring-darwin-x64/-/keyring-darwin-x64-1.1.9.tgz",
"integrity": "sha512-G3PiFZTAFTzUnpSB31A/UaPjl48/3sDTLmLxaAZBEk7HcOyBnL31gA1YqhDCO7F2y5sD5TWiFiuID9MyqYOcjw==",
"cpu": [
"x64"
],
"license": "MIT",
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": ">= 10"
}
},
"node_modules/@napi-rs/keyring-freebsd-x64": {
"version": "1.1.9",
"resolved": "https://registry.npmjs.org/@napi-rs/keyring-freebsd-x64/-/keyring-freebsd-x64-1.1.9.tgz",
"integrity": "sha512-R4XbvRhEzQyOy4yM+SMDgk8BgkLPkIzXGwR6QR0wJ2YrPeBx3F2TrgdHfsIGSn/X5Axg/2UlrCiZVciZ5BmusA==",
"cpu": [
"x64"
],
"license": "MIT",
"optional": true,
"os": [
"freebsd"
],
"engines": {
"node": ">= 10"
}
},
"node_modules/@napi-rs/keyring-linux-arm-gnueabihf": {
"version": "1.1.9",
"resolved": "https://registry.npmjs.org/@napi-rs/keyring-linux-arm-gnueabihf/-/keyring-linux-arm-gnueabihf-1.1.9.tgz",
"integrity": "sha512-UrKy110I+zQyBtw4HLVUqZ1jDq11K3PmQIYgWAJNwB5VQOj4IQ63zLxk4V01Jx4bNOJmGNlvHDJUAyh/lC5Yww==",
"cpu": [
"arm"
],
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">= 10"
}
},
"node_modules/@napi-rs/keyring-linux-arm64-gnu": {
"version": "1.1.9",
"resolved": "https://registry.npmjs.org/@napi-rs/keyring-linux-arm64-gnu/-/keyring-linux-arm64-gnu-1.1.9.tgz",
"integrity": "sha512-yOrhVpNGexDYzybe3dhmHQRPBDjlZPtJDE+eGSi1JwEqYlWDB+4IWjRsetxnO63DhnMFRLeMTdwWghsYrA7VwA==",
"cpu": [
"arm64"
],
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">= 10"
}
},
"node_modules/@napi-rs/keyring-linux-arm64-musl": {
"version": "1.1.9",
"resolved": "https://registry.npmjs.org/@napi-rs/keyring-linux-arm64-musl/-/keyring-linux-arm64-musl-1.1.9.tgz",
"integrity": "sha512-82EcuzoV/+Dxwi1HHhrEEprN5Ou7OsRKyTJSaRqiVuGvLaQDUhZX/4zXTTh4Pz24m22Q4aoJogafS31w8iKGGw==",
"cpu": [
"arm64"
],
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">= 10"
}
},
"node_modules/@napi-rs/keyring-linux-riscv64-gnu": {
"version": "1.1.9",
"resolved": "https://registry.npmjs.org/@napi-rs/keyring-linux-riscv64-gnu/-/keyring-linux-riscv64-gnu-1.1.9.tgz",
"integrity": "sha512-Q1ar7DszC1X8FW6w7Ql7b72GFeAUxkTiOuxXChCFBy7eWCQSDrr52ZLroIowp82RmkQLZebnK+IwSssD2Ntoag==",
"cpu": [
"riscv64"
],
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">= 10"
}
},
"node_modules/@napi-rs/keyring-linux-x64-gnu": {
"version": "1.1.9",
"resolved": "https://registry.npmjs.org/@napi-rs/keyring-linux-x64-gnu/-/keyring-linux-x64-gnu-1.1.9.tgz",
"integrity": "sha512-LMvrYt1ho3pEDECssA7ATbcMDgayEUwwSD+UfrC7Hj1+C6dlvipwt5njwUDCno2OeXbjjisCo4CR9fDmXa4sZA==",
"cpu": [
"x64"
],
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">= 10"
}
},
"node_modules/@napi-rs/keyring-linux-x64-musl": {
"version": "1.1.9",
"resolved": "https://registry.npmjs.org/@napi-rs/keyring-linux-x64-musl/-/keyring-linux-x64-musl-1.1.9.tgz",
"integrity": "sha512-x2i/TgS2/fM+6LRj1MrtVC580sepz5GcxbSCXpttx2H58uZKBF0vVM9HDPHoKP2w5++fyrA17eltJNYN3Ob46A==",
"cpu": [
"x64"
],
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">= 10"
}
},
"node_modules/@napi-rs/keyring-win32-arm64-msvc": {
"version": "1.1.9",
"resolved": "https://registry.npmjs.org/@napi-rs/keyring-win32-arm64-msvc/-/keyring-win32-arm64-msvc-1.1.9.tgz",
"integrity": "sha512-14t6p8CTBNfGzLO5LXqurT+pAOf/ocGjOM/qiG/LW+jPkhyJYBNI9e3HKq3QX+ObbnxVpt4fAY02b4XLt7EWig==",
"cpu": [
"arm64"
],
"license": "MIT",
"optional": true,
"os": [
"win32"
],
"engines": {
"node": ">= 10"
}
},
"node_modules/@napi-rs/keyring-win32-ia32-msvc": {
"version": "1.1.9",
"resolved": "https://registry.npmjs.org/@napi-rs/keyring-win32-ia32-msvc/-/keyring-win32-ia32-msvc-1.1.9.tgz",
"integrity": "sha512-7+7aXz5op6PtOnWYcK1GYXWQlk2zfpdPt9taLqmCCVpk1g4m3Gw1wyKyQxjrg9clHWdNhdWxhFEA0osDxG8/Eg==",
"cpu": [
"ia32"
],
"license": "MIT",
"optional": true,
"os": [
"win32"
],
"engines": {
"node": ">= 10"
}
},
"node_modules/@napi-rs/keyring-win32-x64-msvc": {
"version": "1.1.9",
"resolved": "https://registry.npmjs.org/@napi-rs/keyring-win32-x64-msvc/-/keyring-win32-x64-msvc-1.1.9.tgz",
"integrity": "sha512-P1wsSrSqDqvcXLL7yiH2RsO3De65wuEQj1ZjV9s1MHfEP5dIdriNYZfFsRBlOsl32GoK3qFzsuH5DTVviGEHSw==",
"cpu": [
"x64"
],
"license": "MIT",
"optional": true,
"os": [
"win32"
],
"engines": {
"node": ">= 10"
}
},
"node_modules/@sourcegraph/amp": {
"version": "0.0.1755532879-g2b6e3d",
"resolved": "https://registry.npmjs.org/@sourcegraph/amp/-/amp-0.0.1755532879-g2b6e3d.tgz",
"integrity": "sha512-Xv3C/E6KHlq0gpEzMqaK9Fo3QhmvftBH8TcJGk5oGLhxEh/u49kRTifojDNjOh3A3HWneB1/SoYqLplOKn5QFg==",
"version": "0.0.1756368086-g6e639d",
"resolved": "https://registry.npmjs.org/@sourcegraph/amp/-/amp-0.0.1756368086-g6e639d.tgz",
"integrity": "sha512-sa+T/xmsz63BmdbVn8oaaq3ZgCiLQXdCO/++JPNjC7OD6UaTWWcvAhJ+Kbb5/XQDG190CMLCtWOrp8kSZK8jcQ==",
"dependencies": {
"@napi-rs/keyring": "^1.1.9",
"ansi-regex": "^6.1.0",
"commander": "^11.1.0",
"jsonc-parser": "^3.3.1",
+3 -3
View File
@@ -9,11 +9,11 @@
buildNpmPackage (finalAttrs: {
pname = "amp-cli";
version = "0.0.1755532879-g2b6e3d";
version = "0.0.1756368086-g6e639d";
src = fetchzip {
url = "https://registry.npmjs.org/@sourcegraph/amp/-/amp-${finalAttrs.version}.tgz";
hash = "sha256-i3YZcyaeq8CkMsEKhJg/39/0ijJGym2DcRFsZpBRXe0=";
hash = "sha256-ekSRtSwoPBL+SKkqqdTnMWZkLfF8SxYcrFPU2hpewC8=";
};
postPatch = ''
@@ -45,7 +45,7 @@ buildNpmPackage (finalAttrs: {
chmod +x bin/amp-wrapper.js
'';
npmDepsHash = "sha256-pZNvuSf9ioiv3UPmtdbXC0RXgtelrBl5ZtW/y/KnSqQ=";
npmDepsHash = "sha256-qQSn1sH1rjbKCEYdWZTgixBS6pe+scMnBofmpUYK7A0=";
propagatedBuildInputs = [
ripgrep
+2 -2
View File
@@ -12,11 +12,11 @@
stdenv.mkDerivation (finalAttrs: {
pname = "avrdudess";
version = "2.19";
version = "2.20";
src = fetchurl {
url = "https://github.com/ZakKemble/AVRDUDESS/releases/download/v${finalAttrs.version}/AVRDUDESS-${finalAttrs.version}-portable.zip";
hash = "sha256-CXwwbg2hEMzt30j6AO7+v/8WfRsHzNhDgLc9W8/CQzI=";
hash = "sha256-t89iSLjbb7eIQIwB0oEXhNHnzpTEHJhS0P53kOVJ3qY=";
};
nativeBuildInputs = [ unzip ];
+5 -5
View File
@@ -3,24 +3,24 @@
let
pname = "brave";
version = "1.81.136";
version = "1.81.137";
allArchives = {
aarch64-linux = {
url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-browser_${version}_arm64.deb";
hash = "sha256-IU05OLT0IyRAiT10tEOayXpPi7iZBmDnp4n4AI+hVr0=";
hash = "sha256-zbnE54nPc7BeoLn6KVVoNTUNpU8Jq7YreIJ2hkFLRm4=";
};
x86_64-linux = {
url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-browser_${version}_amd64.deb";
hash = "sha256-z6nMg8twkUv1CtboxzuOYwyfgUkgEV7XAKoBE26VKY4=";
hash = "sha256-v4sZwRMc54oolkoaH6QH2AIY8Ad8yCYGK3Cf6CBDqPo=";
};
aarch64-darwin = {
url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-v${version}-darwin-arm64.zip";
hash = "sha256-5a0YLUokVoiUB9jf/osDfHH11KKUJJSbAqIEjoBNiEs=";
hash = "sha256-kPKJVk4Kt2s8fpwlChZiLhnjW6W7fq7SsolEZUx83/c=";
};
x86_64-darwin = {
url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-v${version}-darwin-x64.zip";
hash = "sha256-apW6RXQ15cbUoGHY6ZTQDb1zTXoifcvTECcOFuVLbho=";
hash = "sha256-GaQ9Tgw5sHJOMdMYYS8Wz7RJn1baKwHGXMCcW0DDDsA=";
};
};
+3 -3
View File
@@ -6,16 +6,16 @@
rustPlatform.buildRustPackage rec {
pname = "cargo-llvm-lines";
version = "0.4.43";
version = "0.4.44";
src = fetchFromGitHub {
owner = "dtolnay";
repo = "cargo-llvm-lines";
rev = version;
hash = "sha256-fYoVPm3RxR1LZ8wJQpXQG3g69Fh7LLFwXZXmj+kr8zc=";
hash = "sha256-keV3k+9FDULouiYCw07aaStGIt99Xa0xgexSfvehs1E=";
};
cargoHash = "sha256-yhZ2MKswFvzkMamI9np7CRsQO4D/sldumaLPzSNsHgA=";
cargoHash = "sha256-PJ68n4ANiA6/z/oK1WrdeEWS+ttSNRYdXsBx7tXhANQ=";
meta = with lib; {
description = "Count the number of lines of LLVM IR across all instantiations of a generic function";
+3 -3
View File
@@ -8,13 +8,13 @@
}:
ocamlPackages.buildDunePackage {
pname = "cerberus";
version = "0-unstable-2025-07-25";
version = "0-unstable-2025-08-18";
src = fetchFromGitHub {
owner = "rems-project";
repo = "cerberus";
rev = "9f8f2d375366e8c6c3c60dcf2da757344d877b14";
hash = "sha256-wwc2XXQ3AdXBhBX7FPhpm56w3g9rrC8tESelcXSwjPE=";
rev = "9eb2ce27adc4a45c69da347c660d9b5477d764a8";
hash = "sha256-++fCZvk4ee166eciipTQ8GId6DWrG6aonAzHpK/10f0=";
};
minimalOCamlVersion = "4.12";
+4 -4
View File
@@ -21,18 +21,18 @@
rustPlatform.buildRustPackage {
pname = "crosvm";
version = "0-unstable-2025-08-07";
version = "0-unstable-2025-08-18";
src = fetchgit {
url = "https://chromium.googlesource.com/chromiumos/platform/crosvm";
rev = "d919101220206d300875464a623b220dddc45fb6";
hash = "sha256-2q8TwBwGsUC7if/lm9yhVJCxZiAqR6JHLZCvlpGqkZ0=";
rev = "44659aa08a8c89c3dad2e468ff57cdb639c80732";
hash = "sha256-bYTZ1R/WPUUZoxmdreFGaRt9epAI+mcIrEvs5RJPUeA=";
fetchSubmodules = true;
};
separateDebugInfo = true;
cargoHash = "sha256-k4lVgUNvQ8ySYs33nlyTcUgGxtXpiNEG/cFCAJNpJ+c=";
cargoHash = "sha256-94m7vl3a35pUKxDlQDPY6Ag5HniZyLZ1+vfcJj7cKhk=";
nativeBuildInputs = [
pkg-config
+3 -3
View File
@@ -7,16 +7,16 @@
buildGoModule rec {
pname = "ctlptl";
version = "0.8.42";
version = "0.8.43";
src = fetchFromGitHub {
owner = "tilt-dev";
repo = "ctlptl";
rev = "v${version}";
hash = "sha256-aMpQbWdAIRQ8mBQkzf3iGsLezU7jHVQK2KXzyBnUFJ0=";
hash = "sha256-NQLVwa/JLawLM5ImcRlG/XBLZBkS0fhy2gmu5v00w1k=";
};
vendorHash = "sha256-kxayiAymEHnZ+b/a7JgUx3/I5gnNEdg+Vg5ymMO9JG8=";
vendorHash = "sha256-ENSW2JGcMjg83/vsmIa4C181WOkZQrRpSVZdfWXl4JY=";
nativeBuildInputs = [ installShellFiles ];
+3 -3
View File
@@ -24,13 +24,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "cubeb";
version = "0-unstable-2025-08-13";
version = "0-unstable-2025-08-21";
src = fetchFromGitHub {
owner = "mozilla";
repo = "cubeb";
rev = "46b2f23a2929fc367a8cd07a43975dda1e2ebc69";
hash = "sha256-7Y1Sshr1TXBhuNS/tmbT4UL74TycWZvTVyz1yYSXhbY=";
rev = "e39320b5b8a558de880d27af6e9cafac01cdc6ba";
hash = "sha256-aSdtaV2/xEYVL/5UXDhYBHYblS1ZZXk8fgBRq6DReX8=";
};
outputs = [
+2 -2
View File
@@ -23,13 +23,13 @@ let
in
buildDartApplication rec {
pname = "dart-sass";
version = "1.90.0";
version = "1.91.0";
src = fetchFromGitHub {
owner = "sass";
repo = "dart-sass";
tag = version;
hash = "sha256-ChHaFjuEhDpx2MVbsNNrFIg7LQ6tY/9BsWSF3MFofN0=";
hash = "sha256-a1yFDSvuEy/Xaksx9JgzcSOAigD3u3GDtWAJuB8osys=";
};
pubspecLock = lib.importJSON ./pubspec.lock.json;
+8 -8
View File
@@ -464,11 +464,11 @@
"dependency": "transitive",
"description": {
"name": "petitparser",
"sha256": "9436fe11f82d7cc1642a8671e5aa4149ffa9ae9116e6cf6dd665fc0653e3825c",
"sha256": "1a97266a94f7350d30ae522c0af07890c70b8e62c71e8e3920d1db4d23c057d1",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "7.0.0"
"version": "7.0.1"
},
"pool": {
"dependency": "direct main",
@@ -484,11 +484,11 @@
"dependency": "direct main",
"description": {
"name": "protobuf",
"sha256": "6153efcc92a06910918f3db8231fd2cf828ac81e50ebd87adc8f8a8cb3caff0e",
"sha256": "de9c9eb2c33f8e933a42932fe1dc504800ca45ebc3d673e6ed7f39754ee4053e",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "4.1.1"
"version": "4.2.0"
},
"protoc_plugin": {
"dependency": "direct dev",
@@ -744,11 +744,11 @@
"dependency": "direct main",
"description": {
"name": "watcher",
"sha256": "0b7fd4a0bbc4b92641dbf20adfd7e3fd1398fe17102d94b674234563e110088a",
"sha256": "5bf046f41320ac97a469d506261797f35254fa61c641741ef32dacda98b7d39c",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.1.2"
"version": "1.1.3"
},
"web": {
"dependency": "transitive",
@@ -794,11 +794,11 @@
"dependency": "transitive",
"description": {
"name": "xml",
"sha256": "3202a47961c1a0af6097c9f8c1b492d705248ba309e6f7a72410422c05046851",
"sha256": "971043b3a0d3da28727e40ed3e0b5d18b742fa5a68665cca88e74b7876d5e025",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "6.6.0"
"version": "6.6.1"
},
"yaml": {
"dependency": "direct dev",
+3 -3
View File
@@ -6,16 +6,16 @@
buildGoModule rec {
pname = "ddns-go";
version = "6.12.2";
version = "6.12.4";
src = fetchFromGitHub {
owner = "jeessy2";
repo = "ddns-go";
rev = "v${version}";
hash = "sha256-xAwbpe3sqSTDOruUBTY3mqDRxyiwYqJ9PkT157OOyFg=";
hash = "sha256-MtnX8/xrslpQYyj2/TIG6x6BNWSLw0dajTB/D02+sRY=";
};
vendorHash = "sha256-0HH5KkMVQzD/xyaue9Sh6CE5dI/aZJMwei7ynhzp9dc=";
vendorHash = "sha256-f94Ox/8MQgy3yyLRTK0WFHebntSUAGlbr4/IY+wrz4w=";
ldflags = [
"-X main.version=${version}"
+2 -2
View File
@@ -28,14 +28,14 @@
stdenv.mkDerivation (finalAttrs: {
pname = "deja-dup";
version = "48.3";
version = "48.4";
src = fetchFromGitLab {
domain = "gitlab.gnome.org";
owner = "World";
repo = "deja-dup";
rev = finalAttrs.version;
hash = "sha256-3tjJljCdugfjfysd0afUYY7Gc1UcaP4w4jgxVDr5tBM=";
hash = "sha256-hFmuJqUHBMSsQW+a9GjI82wNOQjHt5f3rEkGUxYA6Y0=";
};
patches = [
+3 -3
View File
@@ -7,13 +7,13 @@
}:
buildGoModule (finalAttrs: {
pname = "dns-collector";
version = "1.9.0";
version = "1.10.0";
src = fetchFromGitHub {
owner = "dmachard";
repo = "dns-collector";
tag = "v${finalAttrs.version}";
hash = "sha256-ebl/edMN45oLV1pN6mCaOSgxSSyAugsBP2sQWbIiPTI=";
hash = "sha256-99mVCuoog9ZkJoCCcUWkRJ2vA0IwftEcsSl6I02Qd4A=";
};
subPackages = [ "." ];
@@ -27,7 +27,7 @@ buildGoModule (finalAttrs: {
"-X github.com/prometheus/common/version.Version=${finalAttrs.version}"
];
vendorHash = "sha256-Y0LOtyRJWOFAQwfg8roisSer0oCxPiaYICE1FY/SEF8=";
vendorHash = "sha256-se4vNVydYFYk07Shb3eRLnVmE82HG36cwFRYCdZiZPM=";
passthru.updateScript = nix-update-script { };
+3 -3
View File
@@ -6,15 +6,15 @@
buildGoModule rec {
pname = "doc2go";
version = "0.8.1";
version = "0.9.1";
src = fetchFromGitHub {
owner = "abhinav";
repo = "doc2go";
rev = "v${version}";
hash = "sha256-b4L20/9jm+bFGdNsHmcwSnzcmr3Il9XoV20284Ba8PU=";
hash = "sha256-vxGzDHTtA6GgyAq1bcXL1Jrn4H6ug/ZeHl+aWezOYGo=";
};
vendorHash = "sha256-d5ZRMFi7GIfDHsYRNvMnDdfnGhTM1sA0WDYD2aDoEd0=";
vendorHash = "sha256-GuBjImliR3iOthOL1/4AtH2ldf5AecYXPoexHGxm4zs=";
ldflags = [
"-s"
+2 -2
View File
@@ -17,14 +17,14 @@
python3Packages.buildPythonApplication rec {
pname = "drum-machine";
version = "1.3.1";
version = "1.4.0";
pyproject = false;
src = fetchFromGitHub {
owner = "Revisto";
repo = "drum-machine";
tag = "v${version}";
hash = "sha256-/ziI2rRuhGG/7VZbZi6lr+Lmbo2kt9VxH9bqtCdreQs=";
hash = "sha256-5NzbjPzmrsF/xKLBwQ4MDPxz6OjBHioO7vcLMzMhidA=";
};
strictDeps = true;
+3 -3
View File
@@ -11,13 +11,13 @@
rustPlatform.buildRustPackage rec {
pname = "easytier";
version = "2.4.2";
version = "2.4.3";
src = fetchFromGitHub {
owner = "EasyTier";
repo = "EasyTier";
tag = "v${version}";
hash = "sha256-N/WOkCaAEtPXJWdZ2452KTQmfFu+tZcH267p3azyntQ=";
hash = "sha256-0TuRNxf8xDhwUjBXJsv7dhgeYjr/voIt+/0tinImUhA=";
};
# remove if rust 1.89 merged
@@ -28,7 +28,7 @@ rustPlatform.buildRustPackage rec {
--replace-fail 'rust-version = "1.89.0"' ""
'';
cargoHash = "sha256-Z4Q8ZPXPpA5OHkP2j389a6/Cdn9VmULf8sr1vPTelnw=";
cargoHash = "sha256-FQC3JD051fEZQO9UriNzJPrxE0QcSQ8p3VTk3tQGPBc=";
nativeBuildInputs = [
protobuf
+3 -3
View File
@@ -7,16 +7,16 @@
buildGoModule rec {
pname = "fabric-ai";
version = "1.4.291";
version = "1.4.301";
src = fetchFromGitHub {
owner = "danielmiessler";
repo = "fabric";
tag = "v${version}";
hash = "sha256-wHvb/Q3AtObr1KJPayX0N95ALcZZdD8TU3VT/NgS3oY=";
hash = "sha256-sSsDgyG6ZW/xDO/VOPTMuSs5O8tbPvCW3d2DkjlZPiI=";
};
vendorHash = "sha256-iTiDYKh2VZYXgg09zezHMlsA7PnEH3hWHlpLr/nOHbY=";
vendorHash = "sha256-3FVOHHNTshg+NKi7zo0ia7xKCaSF0FDatQQQUKaKaXQ=";
# Fabric introduced plugin tests that fail in the nix build sandbox.
doCheck = false;
@@ -0,0 +1,22 @@
# Described on https://github.com/patjak/facetimehd/wiki/Extracting-the-sensor-calibration-files
#
# The whole download is 518MB; the deflate stream we're interested in is 1.2MB.
urlRoot="https://download.info.apple.com/Mac_OS_X/031-30890-20150812-ea191174-4130-11e5-a125-930911ba098f"
curl --insecure -o bootcamp.zip "$urlRoot/bootcamp$version.zip" -r 2338085-3492508
# Add appropriate headers and footers so that zcat extracts cleanly
{ printf '\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\x00'
cat bootcamp.zip
printf '\x51\x1f\x86\x78\xcf\x5b\x12\x00'
} | zcat > AppleCamera64.exe
unrar x AppleCamera64.exe AppleCamera.sys
# These offsets and sizes are from the wiki also
dd bs=1 skip=1663920 count=33060 if=AppleCamera.sys of=9112_01XX.dat
dd bs=1 skip=1644880 count=19040 if=AppleCamera.sys of=1771_01XX.dat
dd bs=1 skip=1606800 count=19040 if=AppleCamera.sys of=1871_01XX.dat
dd bs=1 skip=1625840 count=19040 if=AppleCamera.sys of=1874_01XX.dat
mkdir -p "$out/lib/firmware/facetimehd"
cp -a *.dat "$out/lib/firmware/facetimehd"
@@ -1,98 +1,36 @@
{
lib,
stdenvNoCC,
fetchurl,
curl,
unrar-wrapper,
pkgs,
}:
let
stdenvNoCC.mkDerivation {
pname = "facetimehd-calibration";
version = "5.1.5769";
# Described on https://github.com/patjak/facetimehd/wiki/Extracting-the-sensor-calibration-files
# This is a special sort of fixed-output derivation
outputHash = "sha256-KQBIlpa68wjQNgBiEnLtl6iEYseNrTlSdq9wiNni16k=";
outputHashMode = "recursive";
# From the wiki page, range extracted with binwalk:
zipUrl = "https://download.info.apple.com/Mac_OS_X/031-30890-20150812-ea191174-4130-11e5-a125-930911ba098f/bootcamp${version}.zip";
zipRange = "2338085-3492508"; # the whole download is 518MB, this deflate stream is 1.2MB
__structuredAttrs = true;
builder = ./builder.sh;
# CRC and length from the ZIP entry header (not strictly necessary, but makes it extract cleanly):
gzFooter = ''\x51\x1f\x86\x78\xcf\x5b\x12\x00'';
# Also from the wiki page:
calibrationFiles = [
{
file = "1771_01XX.dat";
offset = "1644880";
size = "19040";
}
{
file = "1871_01XX.dat";
offset = "1606800";
size = "19040";
}
{
file = "1874_01XX.dat";
offset = "1625840";
size = "19040";
}
{
file = "9112_01XX.dat";
offset = "1663920";
size = "33060";
}
nativeBuildInputs = [
curl
unrar-wrapper
];
in
stdenvNoCC.mkDerivation {
pname = "facetimehd-calibration";
inherit version;
src = fetchurl {
url = zipUrl;
sha256 = "1dzyv457fp6d8ly29sivqn6llwj5ydygx7p8kzvdnsp11zvid2xi";
curlOpts = "-r ${zipRange}";
};
dontUnpack = true;
dontInstall = true;
nativeBuildInputs = [ unrar-wrapper ];
buildPhase = ''
{ printf '\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\x00'
cat $src
printf '${gzFooter}'
} | zcat > AppleCamera64.exe
unrar x AppleCamera64.exe AppleCamera.sys
mkdir -p $out/lib/firmware/facetimehd
''
+ lib.concatMapStrings (
{
file,
offset,
size,
}:
''
dd bs=1 skip=${offset} count=${size} if=AppleCamera.sys of=$out/lib/firmware/facetimehd/${file}
''
) calibrationFiles;
meta = with lib; {
meta = {
description = "facetimehd calibration";
homepage = "https://support.apple.com/kb/DL1837";
license = licenses.unfree;
maintainers = with maintainers; [
license = lib.licenses.unfree;
maintainers = with lib.maintainers; [
alexshpilkin
womfoo
grahamc
];
platforms = [
"i686-linux"
"x86_64-linux"
];
platforms = lib.platforms.all;
sourceProvenance = with lib.sourceTypes; [ binaryFirmware ];
};
}
@@ -13,13 +13,13 @@
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "firefly-iii-data-importer";
version = "1.7.9";
version = "1.7.10";
src = fetchFromGitHub {
owner = "firefly-iii";
repo = "data-importer";
tag = "v${finalAttrs.version}";
hash = "sha256-CKw4FnEJVZHt7W7kxJRjTx0lW3akYap7VVil5cFSJZU=";
hash = "sha256-6C9ztbmYONhnNPZtZC0dQzU5qM8fqyigPVDKBhO7x8Y=";
};
buildInputs = [ php84 ];
@@ -38,12 +38,12 @@ stdenvNoCC.mkDerivation (finalAttrs: {
composerStrictValidation = true;
strictDeps = true;
vendorHash = "sha256-0qfpta3l7KXofzAw7V14KU9mRzPPSoh9435Z+Xj3cqU=";
vendorHash = "sha256-WCh0NeTfunWrh2gur7+2Otcoa3U21ldi4JvualiatG8=";
npmDeps = fetchNpmDeps {
inherit (finalAttrs) src;
name = "${finalAttrs.pname}-npm-deps";
hash = "sha256-hY7QcQiDIJhGJk4X4lQ3qDn9WHwMF+jn2NDkKsHXeHY=";
hash = "sha256-NELRAxCnvUNC1LTfktufkcNc/R8gkn6S/jt7VlOWRtg=";
};
composerRepository = php84.mkComposerRepository {
+1
View File
@@ -19,6 +19,7 @@ python3Packages.buildPythonApplication rec {
postPatch = ''
sed -i -e 's/==.*"/"/' -e '/packages=\[/a "friture.playback",' pyproject.toml
sed -i -e 's/tostring/tobytes/' friture/spectrogram_image.py
'';
nativeBuildInputs =
+2 -2
View File
@@ -8,13 +8,13 @@
buildGoModule rec {
pname = "ginkgo";
version = "2.24.0";
version = "2.25.1";
src = fetchFromGitHub {
owner = "onsi";
repo = "ginkgo";
rev = "v${version}";
sha256 = "sha256-uFWoIkUTDx9egox3pZ3J6rmyz/1K5OnPPLW20YVapf0=";
sha256 = "sha256-r8BCzQUO72d0FMw8gVjFVhiU5Ch/or4B7L6sxDADKQ4=";
};
vendorHash = "sha256-dpTueiGR0sibaTnVJxHLTTK7cp8MbAO992qIsXBKufM=";
+2 -2
View File
@@ -7,7 +7,7 @@
}:
let
version = "18.2.2";
version = "18.2.5";
package_version = "v${lib.versions.major version}";
gitaly_package = "gitlab.com/gitlab-org/gitaly/${package_version}";
@@ -21,7 +21,7 @@ let
owner = "gitlab-org";
repo = "gitaly";
rev = "v${version}";
hash = "sha256-+OmduG9neb15m3i57qPfE42HI4w/zgmA5T6bhlwzrT0=";
hash = "sha256-/AyWxFUyNC0RCM4WMSlPrlh9okyZBacR2sPyzl9y4D0=";
};
vendorHash = "sha256-RjDV4NGmmdT9STQBHiYf3UUYwPmuSg6970/W/ekxin0=";
@@ -6,24 +6,18 @@
buildGoModule rec {
pname = "gitlab-container-registry";
version = "4.26.0";
rev = "v${version}-gitlab";
version = "4.27.0";
rev = "v${version}-gitlab-ahmed-master-test";
# nixpkgs-update: no auto update
src = fetchFromGitLab {
owner = "gitlab-org";
repo = "container-registry";
inherit rev;
hash = "sha256-XACKJW5sRXNM4Q24DXEVtjzhVfxoBd+JWHJr1s01ocA=";
hash = "sha256-lcM0HjseQ4N7rndDx95aC6MWb+Ggwz3UIhSvbC8oxus=";
};
patches = [
# https://gitlab.com/gitlab-org/container-registry/-/merge_requests/2447
# Can be removed with next released when merged
./fix-broken-urlcache-tests.diff
];
vendorHash = "sha256-J4p3vXLmDFYl/z6crqanlmG1FB4Dq04HLx9IhC3usQ4=";
vendorHash = "sha256-ALPK9h5Isniis7QPz9DXokeBd+hWMDJ7ts9/sGNrFMk=";
checkFlags =
let
+2 -2
View File
@@ -6,14 +6,14 @@
buildGoModule rec {
pname = "gitlab-pages";
version = "18.2.2";
version = "18.2.5";
# nixpkgs-update: no auto update
src = fetchFromGitLab {
owner = "gitlab-org";
repo = "gitlab-pages";
rev = "v${version}";
hash = "sha256-PPa9SYyE3G+peP2xSpNw7WDDO7WiWKSRpd5tBODkA0g=";
hash = "sha256-21IsNcVkhtncum2miTOjuCcM681qYa+8e/5CCEiqz/Q=";
};
vendorHash = "sha256-OubXCpvGtGqegQmdb6R1zw/0DfQ4FdbJGt7qYYRnWnA=";
+3 -3
View File
@@ -8,14 +8,14 @@
buildGoModule rec {
pname = "gitlab-shell";
version = "14.43.0";
version = "14.44.0";
# nixpkgs-update: no auto update
src = fetchFromGitLab {
owner = "gitlab-org";
repo = "gitlab-shell";
rev = "v${version}";
hash = "sha256-JBcfsOLutxHUk5z+vXP8CnVSmJazhqJk4fZ0vONIswo=";
hash = "sha256-y3CTfYN2QCWm2n534Bb8uS0Bzn4BsBuMtxAyuU3f+oI=";
};
buildInputs = [
@@ -27,7 +27,7 @@ buildGoModule rec {
./remove-hardcoded-locations.patch
];
vendorHash = "sha256-zuxgWBrrftkNjMhAXs8cAcQmb8RLQqvnFhU0HnUUcTA=";
vendorHash = "sha256-flLt2LdcSDIuoUr4mwfv6LOV9GPewf+o0rb8kyBsgSk=";
subPackages = [
"cmd/gitlab-shell"
+7 -7
View File
@@ -1,15 +1,15 @@
{
"version": "18.2.2",
"repo_hash": "0fqpfprxmgxaz5g0d5z4gsir1zj9fkhli7iq1ahx413ymsiqrxd0",
"version": "18.2.5",
"repo_hash": "1q9scfy1r9570gvm3dyrsg2cmpyx94a33w6418q1gy0msiqncnqd",
"yarn_hash": "0c6njrciqcjaswh784yxly4qza6k2ghq1ljbdkcn65cna4f4hwgk",
"owner": "gitlab-org",
"repo": "gitlab",
"rev": "v18.2.2-ee",
"rev": "v18.2.5-ee",
"passthru": {
"GITALY_SERVER_VERSION": "18.2.2",
"GITLAB_PAGES_VERSION": "18.2.2",
"GITLAB_SHELL_VERSION": "14.43.0",
"GITALY_SERVER_VERSION": "18.2.5",
"GITLAB_PAGES_VERSION": "18.2.5",
"GITLAB_SHELL_VERSION": "14.44.0",
"GITLAB_ELASTICSEARCH_INDEXER_VERSION": "5.7.0",
"GITLAB_WORKHORSE_VERSION": "18.2.2"
"GITLAB_WORKHORSE_VERSION": "18.2.5"
}
}
@@ -10,7 +10,7 @@ in
buildGoModule rec {
pname = "gitlab-workhorse";
version = "18.2.2";
version = "18.2.5";
# nixpkgs-update: no auto update
src = fetchFromGitLab {
+1 -1
View File
@@ -2415,4 +2415,4 @@ DEPENDENCIES
yard (~> 0.9)
BUNDLED WITH
2.6.9
2.7.1
+1 -1
View File
@@ -44,7 +44,7 @@ class GitLabRepo:
# sort, but ignore v, -ee and -gitlab for sorting comparisons
versions.sort(
key=lambda x: Version(
x.replace("v", "").replace("-ee", "").replace("-gitlab", "")
x.replace("v", "").replace("-ee", "").replace("-gitlab", "").replace("-ahmed-master-test", "")
),
reverse=True,
)
+2 -2
View File
@@ -22,14 +22,14 @@
stdenv.mkDerivation rec {
pname = "grandorgue";
version = "3.16.0-1";
version = "3.16.1-1";
src = fetchFromGitHub {
owner = "GrandOrgue";
repo = "grandorgue";
tag = version;
fetchSubmodules = true;
hash = "sha256-O+gtyf85E/2hV3E4nc489j2EukRRQ49pPaCSB0j68C8=";
hash = "sha256-GaO05zFurxnOOUjUpeR5j0lP4EYR/EgxFpdgwfYHG9M=";
};
patches = [ ./darwin-fixes.patch ];
+4 -4
View File
@@ -11,18 +11,18 @@
}:
let
pname = "homebox";
version = "0.20.2";
version = "0.21.0";
src = fetchFromGitHub {
owner = "sysadminsmedia";
repo = "homebox";
tag = "v${version}";
hash = "sha256-6AJYC5SIITLBgYOq8TdwxAvRcyg8MOoA7WUDar9jSxM=";
hash = "sha256-JA0LawQHWLCJQno1GsajVSsLG3GGgDp2ttIa2xELX48=";
};
in
buildGoModule {
inherit pname version src;
vendorHash = "sha256-GTSFpfql0ebXtZC3LeIZo8VbCZdsbemNK5EarDTRAf0=";
vendorHash = "sha256-fklNsQEqAjbiaAwTAh5H3eeANkNRDVRuJZ8ithJsfZs=";
modRoot = "backend";
# the goModules derivation inherits our buildInputs and buildPhases
# Since we do pnpm thing in those it fails if we don't explicitly remove them
@@ -39,7 +39,7 @@ buildGoModule {
inherit pname version;
src = "${src}/frontend";
fetcherVersion = 1;
hash = "sha256-gHQ8Evo31SFmnBHtLDY5j5zZwwVS4fmkT+9VHZJWhfs=";
hash = "sha256-gHx4HydL33i1SqzG1PChnlWdlO5NFa5F/R5Yq3mS4ng=";
};
pnpmRoot = "../frontend";
+4 -14
View File
@@ -2,7 +2,6 @@
lib,
rustPlatform,
fetchFromGitHub,
fetchpatch2,
pkg-config,
installShellFiles,
libxml2,
@@ -13,30 +12,21 @@
rustPlatform.buildRustPackage rec {
pname = "hurl";
version = "6.1.1";
version = "7.0.0";
src = fetchFromGitHub {
owner = "Orange-OpenSource";
repo = "hurl";
tag = version;
hash = "sha256-NtvBw8Nb2eZN0rjVL/LPyIdY5hBJGnz/cDun6VvwYZE=";
hash = "sha256-dmPXI2RHEi/wcdVVwBRtBgNXyBXFnm44236pqYjxgBs=";
};
cargoHash = "sha256-WyNActmsHpr5fgN1a3X9ApEACWFVJMVoi4fBvKhGgZ0=";
patches = [
# Fix build with libxml-2.14, remove after next hurl release
# https://github.com/Orange-OpenSource/hurl/pull/3977
(fetchpatch2 {
name = "fix-libxml_2_14";
url = "https://github.com/Orange-OpenSource/hurl/commit/7c7b410c3017aeab0dfc74a6144e4cb8e186a10a.patch?full_index=1";
hash = "sha256-XjnCRIMwzfgUMIhm6pQ90pzA+c2U0EuhyvLUZDsI2GI=";
})
];
cargoHash = "sha256-1bZaSdMJe39cDEOoqW82zS5NvOlZDGe1ia56BjXddyc=";
nativeBuildInputs = [
pkg-config
installShellFiles
rustPlatform.bindgenHook
];
buildInputs = [
+2 -2
View File
@@ -18,13 +18,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "hwloc";
version = "2.12.1";
version = "2.12.2";
src = fetchFromGitHub {
owner = "open-mpi";
repo = "hwloc";
tag = "hwloc-${finalAttrs.version}";
hash = "sha256-MM0xDysXv4eayi+y2YIP9CMohPe7gfvhltYUxuApRow=";
hash = "sha256-xLrhffz6pDSjkvAsPWSM3m8OxMV14/6kUgWOlI2u6go=";
};
configureFlags = [
+2 -2
View File
@@ -15,13 +15,13 @@
stdenv.mkDerivation rec {
pname = "hypnotix";
version = "5.1";
version = "5.2";
src = fetchFromGitHub {
owner = "linuxmint";
repo = "hypnotix";
rev = version;
hash = "sha256-XXfZDFvHrGk+RFSQPldI/G4xhPm8lafZyBVCDtzvyoI=";
hash = "sha256-QOUCpmq89XrWJVHyqSFbFD3a4y9UNgeMVXSr2H8TBeY=";
};
patches = [
@@ -6,16 +6,16 @@
rustPlatform.buildRustPackage rec {
pname = "hyprland-per-window-layout";
version = "2.15";
version = "2.16";
src = fetchFromGitHub {
owner = "coffebar";
repo = "hyprland-per-window-layout";
rev = version;
hash = "sha256-SOT2nrk2JKTzKE1QNhjAY9zjyG5z5nYFz7RJRrS3Tsk=";
hash = "sha256-+1gmLNWuV5DhXjC6aRD1rHIOpX+OCX1Ak45pi+ixIFw=";
};
cargoHash = "sha256-VzxO5xn864gnMR62iszTNwz1tU7A59dhQspsla90aRs=";
cargoHash = "sha256-k8YNGqKw5MPHdXye8loqGkexY75jjkJSnzaWmye945I=";
meta = with lib; {
description = "Per window keyboard layout (language) for Hyprland wayland compositor";
+3 -3
View File
@@ -10,16 +10,16 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "kdlfmt";
version = "0.1.2";
version = "0.1.3";
src = fetchFromGitHub {
owner = "hougesen";
repo = "kdlfmt";
tag = "v${finalAttrs.version}";
hash = "sha256-xDv93cxCEaBybexleyTtcCCKHy2OL3z/BG2gJ7uqIrU=";
hash = "sha256-D/fv6dS17DUYGSKW4nGUdqxTQ68tOdZkSlvNbfV9lY0=";
};
cargoHash = "sha256-TwZ/0G3lTCoj01e/qGFRxJCfe4spOpG/55GKhoI0img=";
cargoHash = "sha256-78AVptP4+2LHEDhn0VWp4xVIT2QzEo9B4lp6h65OamY=";
nativeBuildInputs = [ installShellFiles ];
+2 -2
View File
@@ -29,11 +29,11 @@
stdenv.mkDerivation (finalAttrs: {
pname = "kea";
version = "3.0.0"; # only even minor versions are stable
version = "3.0.1"; # only even minor versions are stable
src = fetchurl {
url = "https://ftp.isc.org/isc/kea/${finalAttrs.version}/kea-${finalAttrs.version}.tar.xz";
hash = "sha256-v5Y9HhCVHYxXDGBCr8zyfHCdReA4E70mOde7HPxP7nY=";
hash = "sha256-7IT+xLt/a50VqC51Wlcek0jrTW+8Yrs/bxKWzXokxWY=";
};
patches = [
+2 -2
View File
@@ -23,7 +23,7 @@
python3.pkgs.buildPythonApplication rec {
pname = "komikku";
version = "1.85.0";
version = "1.86.0";
pyproject = false;
src = fetchFromGitea {
@@ -31,7 +31,7 @@ python3.pkgs.buildPythonApplication rec {
owner = "valos";
repo = "Komikku";
tag = "v${version}";
hash = "sha256-ll6F6aVOoqRxzoTrBHdkUAV8CWFVPSt8mNPRqPw4oec=";
hash = "sha256-LIiwQVXT0RWCli9twFA+cmf/LzKK9JjbRVA2xVu/XX4=";
};
nativeBuildInputs = [
+2 -2
View File
@@ -11,13 +11,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "libmsquic";
version = "2.5.3";
version = "2.5.4";
src = fetchFromGitHub {
owner = "microsoft";
repo = "msquic";
tag = "v${finalAttrs.version}";
hash = "sha256-rL4uKcPx3IUzBDp8uGW2VprVyYuTD5p73WbdW+ebSGg=";
hash = "sha256-si9g67j/A6sbsCWWxs2YhZpXhx34GpxWNOFnWtaqnEQ=";
fetchSubmodules = true;
};
+44 -2
View File
@@ -4,19 +4,27 @@
fetchFromGitHub,
imagemagick,
source-code-pro,
python3Packages,
nix-update-script,
nixos-icons,
withBranding ? true,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "m1n1";
version = "1.4.21";
version = "1.5.0";
src = fetchFromGitHub {
owner = "AsahiLinux";
repo = "m1n1";
tag = "v${finalAttrs.version}";
hash = "sha256-0ZnDexY/Sf2TJFfUv/YelCctFJVENffWqBU0r0azD0M=";
hash = "sha256-J1PZVaEdI6gx/qzsoVW1ehRQ/ZDKzdC1NgIGgBqxQ+0=";
};
postPatch = lib.optionalString withBranding ''
ln -s ${nixos-icons}/share/icons/hicolor/128x128/apps/nix-snowflake.png data/custom_128.png
ln -s ${nixos-icons}/share/icons/hicolor/256x256/apps/nix-snowflake.png data/custom_256.png
'';
nativeBuildInputs = [
imagemagick
];
@@ -32,6 +40,7 @@ stdenv.mkDerivation (finalAttrs: {
makeFlags = [
"ARCH=${stdenv.cc.targetPrefix}"
"RELEASE=1"
(lib.optionalString withBranding "LOGO=custom")
];
enableParallelBuilding = true;
@@ -47,12 +56,45 @@ stdenv.mkDerivation (finalAttrs: {
runHook postInstall
'';
doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
nativeCheckInputs = with python3Packages; [
pytest
];
checkInputs = with python3Packages; [
construct
pyserial
];
checkPhase = ''
runHook preCheck
pytest
runHook postCheck
'';
passthru = {
updateScript = nix-update-script { };
};
meta = {
description = "Bootloader to bridge the Apple (XNU) boot to Linux boot";
longDescription = ''
m1n1 is the bootloader developed by the Asahi Linux project to
bridge the Apple (XNU) boot ecosystem to the Linux boot ecosystem.
What it does:
- Initializes hardware
- Puts up a pretty Nix logo
- Loads embedded (appended) payloads, which can be:
- Device Trees (FDTs), with automatic selection based on the platform
- Initramfs images (compressed CPIO archives)
- Kernel images in Linux ARM64 boot format (optionally compressed)
- Configuration statements
'';
homepage = "https://github.com/AsahiLinux/m1n1";
changelog = "https://github.com/AsahiLinux/m1n1/releases/tag/${finalAttrs.src.tag}";
license = with lib.licenses; [
+2 -2
View File
@@ -9,14 +9,14 @@
stdenv.mkDerivation (finalAttrs: {
pname = "mfaktc";
version = "0.23.5";
version = "0.23.6";
src = fetchFromGitHub {
owner = "primesearch";
repo = "mfaktc";
tag = "${finalAttrs.version}";
fetchSubmodules = true;
hash = "sha256-NUcRd+WvmRjXC7rfOKFw4mue7V9oobsy/OTHHEoaiHo=";
hash = "sha256-+oO2zMGxcnkEUlD1q5Sy79aXp7BtGTTsvbKjPqBt7sw=";
};
enableParallelBuilding = true;
+2 -2
View File
@@ -9,11 +9,11 @@
stdenv.mkDerivation rec {
pname = "micronaut";
version = "4.9.2";
version = "4.9.3";
src = fetchzip {
url = "https://github.com/micronaut-projects/micronaut-starter/releases/download/v${version}/micronaut-cli-${version}.zip";
sha256 = "sha256-9TWTihFiEdpGduj14FYQI1SWTlIh6eexwLvVucXMHdY=";
sha256 = "sha256-y4ktyf/ydkL20k8ifgQfHJqZ2NhhNzPM0qWgEjbnZnI=";
};
nativeBuildInputs = [
+3 -3
View File
@@ -10,14 +10,14 @@
stdenvNoCC.mkDerivation {
pname = "mint-l-icons";
version = "1.7.5";
version = "1.7.6";
src = fetchFromGitHub {
owner = "linuxmint";
repo = "mint-l-icons";
# They don't really do tags, this is just a named commit.
rev = "64ee205dc270b13f3816030330eed108eaa30360";
hash = "sha256-4tavRQ1bWzVYcAAJtZ4avRHcBB+oTDhdXp6dlSGO4C8=";
rev = "b046353fa23951746e9bfa3d54f745819802649e";
hash = "sha256-b+7YgIUGD2m92lzcnoVDk4K+f80zzv1tzEfeXPKAKFc=";
};
propagatedBuildInputs = [
+2 -2
View File
@@ -9,13 +9,13 @@
stdenvNoCC.mkDerivation rec {
pname = "mint-l-theme";
version = "2.0.0";
version = "2.0.1";
src = fetchFromGitHub {
owner = "linuxmint";
repo = "mint-l-theme";
rev = version;
hash = "sha256-G2wwzt02WVVsKjY7tHAfRzxUIa3OUKkYiazUFTDeR9Q=";
hash = "sha256-3suLa8el58t5J6aJaH3Z4+tTqoCpD1Uvy2uzaVgIfVo=";
};
nativeBuildInputs = [
+2 -2
View File
@@ -8,13 +8,13 @@
stdenvNoCC.mkDerivation rec {
pname = "mint-themes";
version = "2.3.1";
version = "2.3.2";
src = fetchFromGitHub {
owner = "linuxmint";
repo = "mint-themes";
rev = version;
hash = "sha256-oBedc+laKUxCUqDmLXomu8oPEjXckznNSjm/DYDxKhM=";
hash = "sha256-99bE20XheHzEa2IIlXqdTHs044FRqI3O1xOLkhEC/gY=";
};
nativeBuildInputs = [
+2 -2
View File
@@ -10,13 +10,13 @@
stdenvNoCC.mkDerivation rec {
pname = "mint-y-icons";
version = "1.8.5";
version = "1.8.6";
src = fetchFromGitHub {
owner = "linuxmint";
repo = "mint-y-icons";
rev = version;
hash = "sha256-p+VnEsmFcPyyLLh2bC4zKPUaa/qQzZdx9DE9y+M3EMI=";
hash = "sha256-CCkyv0NAfs1sNNiZfAvWgdFILypKk44YyY3cBiSaEZY=";
};
propagatedBuildInputs = [
+3 -3
View File
@@ -17,12 +17,12 @@ let
in
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "models-dev";
version = "0-unstable-2025-08-26";
version = "0-unstable-2025-08-27";
src = fetchFromGitHub {
owner = "sst";
repo = "models.dev";
rev = "cf6249c3930608772771c160b5a177c6bcff5801";
hash = "sha256-yZA8LsMMvTs/wYW2lO7hl7/79WSk+jL87FMKAcC7/AE=";
rev = "58cb8fe59ed6c1cbd64ae27a401286bd7cb39f23";
hash = "sha256-jGMZvpcpuW2ALGYkYF67HO7sV/XivWXPBqOedGazCAs=";
};
node_modules = stdenvNoCC.mkDerivation {
+2 -2
View File
@@ -13,14 +13,14 @@
}:
python3Packages.buildPythonApplication rec {
pname = "mopidy-argos";
version = "1.16.0";
version = "1.16.1";
pyproject = false; # Built with meson
src = fetchFromGitHub {
owner = "orontee";
repo = "argos";
tag = "v${version}";
hash = "sha256-wmAGzURFPseBxBD6mW4rAHPrxmQHx03DQxvTBF3T/pg=";
hash = "sha256-29P8cacYE07fMmSElAzVHC2+hwhyjuplcJjKikHPCwA=";
};
postPatch = ''
patchShebangs build-aux/meson/postinstall.py
+2 -2
View File
@@ -9,13 +9,13 @@
let
name = "multipass";
version = "1.16.0";
version = "1.16.1";
multipass_src = fetchFromGitHub {
owner = "canonical";
repo = "multipass";
rev = "refs/tags/v${version}";
hash = "sha256-7P7LZEvZ+ygM0G8C/gMIwq5BOSs4wSVEBNgsaZzBbOk=";
hash = "sha256-DryVXuyAdjk+KhJZYqGh/r1H50rwM16vJ9igLtftgDY=";
fetchSubmodules = true;
};
+2 -2
View File
@@ -6,13 +6,13 @@
buildGoModule rec {
pname = "nova";
version = "3.11.7";
version = "3.11.8";
src = fetchFromGitHub {
owner = "FairwindsOps";
repo = "nova";
rev = "v${version}";
hash = "sha256-5N4WHb5IWvUIg4i0XqSUWCLZM2rXPAiy2JVGlddvLFQ=";
hash = "sha256-2iFDTCjBnMf0FglHTZq9v+yyzCqvrT1vhDkpAL6yG6Y=";
};
vendorHash = "sha256-+cw2NclPLT9S1iakK2S5uc+nFE84MIl6QOH/L0kgoHE=";
@@ -11,7 +11,7 @@
python3Packages.buildPythonApplication rec {
pname = "openapi-python-client";
version = "0.25.3";
version = "0.26.0";
pyproject = true;
src = fetchFromGitHub {
@@ -19,7 +19,7 @@ python3Packages.buildPythonApplication rec {
owner = "openapi-generators";
repo = "openapi-python-client";
tag = "v${version}";
hash = "sha256-6lGzAMt7c811u3Zooyn+HftoJNK3DHyjSO6lnOoDUus=";
hash = "sha256-kDULsu9mGxMu23kczVadwXLchYJiATJ2j6qU/8AKOSo=";
};
nativeBuildInputs = [
+2 -2
View File
@@ -28,12 +28,12 @@
stdenv.mkDerivation (finalAttrs: {
pname = "orthanc";
version = "1.12.8";
version = "1.12.9";
src = fetchhg {
url = "https://orthanc.uclouvain.be/hg/orthanc/";
rev = "Orthanc-${finalAttrs.version}";
hash = "sha256-ktfTqCid/0aYAp5HPB7niZ1sw+zMNmd5mhZrXRbMGyk=";
hash = "sha256-IBULO03og+aXmpYAXZdsesTFkc7HkeXol+A7yzDzcfQ=";
};
outputs = [
+2 -2
View File
@@ -11,13 +11,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "osqp-eigen";
version = "0.10.2";
version = "0.10.3";
src = fetchFromGitHub {
owner = "robotology";
repo = "osqp-eigen";
rev = "v${finalAttrs.version}";
hash = "sha256-kK3Le8BSh81LbzjUaV6bQu2S9FfvpnC2NpM0ICfrr9c=";
hash = "sha256-2H7B+e6/AUjAxMmRe2OEBImV/FOBxv9tZQLoEg7mmGg=";
};
cmakeFlags = [
+3 -3
View File
@@ -12,16 +12,16 @@
buildGoModule rec {
pname = "ov";
version = "0.42.1";
version = "0.43.0";
src = fetchFromGitHub {
owner = "noborus";
repo = "ov";
tag = "v${version}";
hash = "sha256-CGsqH8jaMm8eybRRcr//Wot2rXdDb+8ofIuuV9dWlgo=";
hash = "sha256-Da1UTFLDy+f75N0m16jZq2ccNKt/0XMvW2/YIxv8W4E=";
};
vendorHash = "sha256-tYWLULiYnVsW+9Hwy1JnMGYDduAlfoW7fgy0H8Zh9FI=";
vendorHash = "sha256-Jko2nKmqx8ly6QLSKxarucpADHDoDG+Q6bRHR7w7yVk=";
ldflags = [
"-s"
+3 -3
View File
@@ -39,13 +39,13 @@
let
pname = "pcloud";
version = "1.14.14";
code = "XZwGnW5ZrhkOy46busjMNcycWKNcbV5sKHb7";
version = "1.14.15";
code = "XZnIXD5ZeetbMDef3yJKjqE1C5hem0svBpPy";
# Archive link's codes: https://www.pcloud.com/release-notes/linux.html
src = fetchzip {
url = "https://api.pcloud.com/getpubzip?code=${code}&filename=pcloud-${version}.zip";
hash = "sha256-dWdv3Tvv34oFoolEVk1BHIymQOgHDEeum4fRELjyE/s=";
hash = "sha256-/9JPGA4He1XXy5OhZvfWok3mjnbPZadXK2M8Irf363k=";
};
appimageContents = appimageTools.extractType2 {
+2 -2
View File
@@ -34,13 +34,13 @@
stdenv.mkDerivation rec {
pname = "pix";
version = "3.4.6";
version = "3.4.7";
src = fetchFromGitHub {
owner = "linuxmint";
repo = "pix";
rev = version;
hash = "sha256-jlaqlA3akRNnBPTdtkWl+0NXqFbYw9uJKRfE/oTJMSg=";
hash = "sha256-Z8JGss5DA4Lsj7fhjRztF6Y+zYjZuIbmYRo7wvwxB8k=";
};
nativeBuildInputs = [
+2 -4
View File
@@ -22,20 +22,19 @@
libportal-gtk4,
libsecret,
libsoup_3,
pantheon,
sqlite,
webkitgtk_6_0,
}:
stdenv.mkDerivation rec {
pname = "planify";
version = "4.13.2";
version = "4.13.4";
src = fetchFromGitHub {
owner = "alainm23";
repo = "planify";
rev = version;
hash = "sha256-bQ7kKUdInf6ZYO0X6kwW0HbuciiXhGyAdvnPcT0MllM=";
hash = "sha256-lHjMOpCr6ya0k5NMaiZW7jz0EGVUEADA7od87W8DcT8=";
};
nativeBuildInputs = [
@@ -64,7 +63,6 @@ stdenv.mkDerivation rec {
libportal-gtk4
libsecret
libsoup_3
pantheon.granite7
sqlite
webkitgtk_6_0
];
+2 -2
View File
@@ -16,14 +16,14 @@
tcl.mkTclDerivation rec {
pname = "remind";
version = "06.00.00";
version = "06.00.01";
src = fetchFromGitea {
domain = "git.skoll.ca";
owner = "Skollsoft-Public";
repo = "Remind";
rev = version;
hash = "sha256-b0S8DgEqsgP201P04Kim06/WAU7QkihnYOcAvW8oNUQ=";
hash = "sha256-+0G7Bz5vAAKCPVznYWdX5NKXVGrZ86oHx2sevOzPcBI=";
};
propagatedBuildInputs = lib.optionals withGui [
@@ -7,13 +7,13 @@
stdenvNoCC.mkDerivation {
pname = "roddhjav-apparmor-rules";
version = "0-unstable-2025-08-15";
version = "0-unstable-2025-08-25";
src = fetchFromGitHub {
owner = "roddhjav";
repo = "apparmor.d";
rev = "b0c661931af5b376f79d1dadff684e3d165b4f64";
hash = "sha256-+FabuUU/OUiVks7rIGcpRUC8Ngh5GMevkuDj5kvdaPg=";
rev = "7ecc84d3b0e13f5d346a906dceda14321fddae1a";
hash = "sha256-XOatGZxhlcd1JXYJzgye/2Dok+Jmppj4cJuiYy6uhxc=";
};
dontConfigure = true;
+3 -3
View File
@@ -5,7 +5,7 @@
}:
let
pname = "saucectl";
version = "0.196.0";
version = "0.197.0";
in
buildGoModule {
inherit pname version;
@@ -14,7 +14,7 @@ buildGoModule {
owner = "saucelabs";
repo = "saucectl";
tag = "v${version}";
hash = "sha256-UqGz5pzhICHJ7zRHZYgtf44xUqd15FgtPuG1/6Nc0PQ=";
hash = "sha256-VUP/wSG7i4h/bMyu3dbdCCbnU+/v80WiXUG4akXxaLs=";
};
ldflags = [
@@ -22,7 +22,7 @@ buildGoModule {
"-X github.com/saucelabs/saucectl/internal/version.GitCommit=${version}"
];
vendorHash = "sha256-zRmTAb4Y86bQHW8oEf3oJqYQv81k1PkvjWnGAy2ZOLM=";
vendorHash = "sha256-n/GblPFolUD+noxGI4yZbOGdAUxM0DXtpCybS+E0k3I=";
checkFlags = [ "-skip=^TestNewRequestWithContext$" ];
+4 -4
View File
@@ -7,16 +7,16 @@
buildGoModule {
pname = "scion-apps";
version = "unstable-2024-04-05";
version = "unstable-2025-03-12";
src = fetchFromGitHub {
owner = "netsec-ethz";
repo = "scion-apps";
rev = "cb0dc365082788bcc896f0b55c4807b72c2ac338";
hash = "sha256-RzWtnUpZfwryOfumgXHV5QMceLY51Zv3KI0K6WLz8rs=";
rev = "55667b489898af09ae9d8290410da0be176549f9";
hash = "sha256-Tj0vtdYDmKbMpcO+t9KrtFewqdjusr0JRXpX6gY69WM=";
};
vendorHash = "sha256-bz4vtELxrDfebk+00w9AcEiK/4skO1mE3lBDU1GkOrk=";
vendorHash = "sha256-om6ArtnKC9Gm5BdAqW57BnE0BsOmSPAAIPDDrQ5ZmJA=";
postPatch = ''
substituteInPlace webapp/web/tests/health/scmpcheck.sh \
@@ -7,13 +7,13 @@
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "sdl_gamecontrollerdb";
version = "0-unstable-2025-08-17";
version = "0-unstable-2025-08-25";
src = fetchFromGitHub {
owner = "mdqinc";
repo = "SDL_GameControllerDB";
rev = "481a5acb7b3211d6b0c45a7b7fc5f59ac1bc62d8";
hash = "sha256-DEHHd4E5eOJ0AvOOZFPxxcfFKtSJzCFzIG5+J60VHHs=";
rev = "992a0caf690e32a332a9707c355a4444516a2764";
hash = "sha256-hv1xtAXpSQlzO1nSUkFaeoth4o0V7aUjzZgqnehezaY=";
};
dontBuild = true;
+3 -3
View File
@@ -10,16 +10,16 @@
buildGoModule (finalAttrs: {
pname = "sing-box";
version = "1.12.3";
version = "1.12.4";
src = fetchFromGitHub {
owner = "SagerNet";
repo = "sing-box";
tag = "v${finalAttrs.version}";
hash = "sha256-OHhCC+tSDZRSDN9i3L6NtwgarBKHv+KGNyPhHttqo4g=";
hash = "sha256-Pc6aszIzu9GZha7I59yGasVVKHUeLPiW34zALFTM8Ec=";
};
vendorHash = "sha256-Y/UP2rbee4WSctelk9QddMXciucz5dNLOLDDWtEFfLU=";
vendorHash = "sha256-I/J1ht++GqxVlc83GxmLxzI7S980AbMwvrrVD867ll4=";
tags = [
"with_quic"
@@ -6,7 +6,7 @@
pkg-config,
which,
zip,
wxGTK,
wxGTK32,
gtk3,
sfml_2,
fluidsynth,
@@ -40,7 +40,7 @@ stdenv.mkDerivation {
];
buildInputs = [
wxGTK
wxGTK32
gtk3
sfml_2
fluidsynth
@@ -53,8 +53,8 @@ stdenv.mkDerivation {
];
cmakeFlags = [
"-DwxWidgets_LIBRARIES=${wxGTK}/lib"
(lib.cmakeFeature "CL_WX_CONFIG" (lib.getExe' (lib.getDev wxGTK) "wx-config"))
"-DwxWidgets_LIBRARIES=${wxGTK32}/lib"
(lib.cmakeFeature "CL_WX_CONFIG" (lib.getExe' (lib.getDev wxGTK32) "wx-config"))
];
env.NIX_CFLAGS_COMPILE = "-Wno-narrowing";
@@ -72,7 +72,9 @@ stdenv.mkDerivation {
meta = {
description = "Doom editor";
homepage = "http://slade.mancubus.net/";
mainProgram = "slade";
license = lib.licenses.gpl2Only; # https://github.com/sirjuddington/SLADE/issues/1754
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [ Gliczy ];
};
}
@@ -6,7 +6,7 @@
pkg-config,
which,
zip,
wxGTK,
wxGTK32,
gtk3,
sfml_2,
fluidsynth,
@@ -19,14 +19,14 @@
wrapGAppsHook3,
}:
stdenv.mkDerivation rec {
stdenv.mkDerivation (finalAttrs: {
pname = "slade";
version = "3.2.7";
src = fetchFromGitHub {
owner = "sirjuddington";
repo = "SLADE";
rev = version;
tag = finalAttrs.version;
hash = "sha256-+i506uzO2q/9k7en6CKs4ui9gjszrMOYwW+V9W5Lvns=";
};
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
];
buildInputs = [
wxGTK
wxGTK32
gtk3
sfml_2
fluidsynth
@@ -52,8 +52,8 @@ stdenv.mkDerivation rec {
];
cmakeFlags = [
"-DwxWidgets_LIBRARIES=${wxGTK}/lib"
(lib.cmakeFeature "CL_WX_CONFIG" (lib.getExe' (lib.getDev wxGTK) "wx-config"))
"-DwxWidgets_LIBRARIES=${wxGTK32}/lib"
(lib.cmakeFeature "CL_WX_CONFIG" (lib.getExe' (lib.getDev wxGTK32) "wx-config"))
];
env.NIX_CFLAGS_COMPILE = "-Wno-narrowing";
@@ -67,8 +67,10 @@ stdenv.mkDerivation rec {
meta = {
description = "Doom editor";
homepage = "http://slade.mancubus.net/";
changelog = "https://github.com/sirjuddington/SLADE/releases/tag/${finalAttrs.version}";
mainProgram = "slade";
license = lib.licenses.gpl2Only; # https://github.com/sirjuddington/SLADE/issues/1754
platforms = lib.platforms.linux;
maintainers = [ ];
maintainers = with lib.maintainers; [ Gliczy ];
};
}
})
+2 -2
View File
@@ -17,14 +17,14 @@
python3Packages.buildPythonApplication rec {
pname = "speedtest";
version = "1.3.0";
version = "1.4.0";
pyproject = false;
src = fetchFromGitHub {
owner = "Ketok4321";
repo = "speedtest";
tag = "v${version}";
hash = "sha256-BFPOumMuFKttw8+Jp4c2d9r9C2eIzEX52SNdASdNldw=";
hash = "sha256-00qHHCGXAzV38BLUIENwxmWUhp+t7BsM7w6xu1Xs/UA=";
};
postPatch = ''

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