Merge 72469b3966 into haskell-updates
This commit is contained in:
+30
-11
@@ -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
@@ -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
|
||||
;
|
||||
}
|
||||
|
||||
@@ -27,7 +27,11 @@
|
||||
- GCC 9, 10, 11, and 12 have been removed, as they have reached end‐of‐life 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`.
|
||||
|
||||
@@ -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
@@ -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;
|
||||
|
||||
@@ -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
@@ -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 ======
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
}
|
||||
)
|
||||
];
|
||||
}
|
||||
@@ -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;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
)
|
||||
];
|
||||
}
|
||||
@@ -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
|
||||
''
|
||||
)
|
||||
@@ -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
@@ -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;
|
||||
};
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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
|
||||
'';
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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=",
|
||||
|
||||
@@ -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 = [ ];
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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' '{}' +)
|
||||
|
||||
@@ -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 := ""
|
||||
@@ -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
|
||||
|
||||
@@ -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
@@ -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",
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 ];
|
||||
|
||||
@@ -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=";
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 ];
|
||||
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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}"
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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 { };
|
||||
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 =
|
||||
|
||||
@@ -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=";
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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=";
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -2415,4 +2415,4 @@ DEPENDENCIES
|
||||
yard (~> 0.9)
|
||||
|
||||
BUNDLED WITH
|
||||
2.6.9
|
||||
2.7.1
|
||||
|
||||
@@ -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,
|
||||
)
|
||||
|
||||
@@ -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 ];
|
||||
|
||||
@@ -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";
|
||||
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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 ];
|
||||
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
|
||||
@@ -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; [
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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
|
||||
];
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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$" ];
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 ];
|
||||
};
|
||||
}
|
||||
})
|
||||
@@ -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
Reference in New Issue
Block a user