Merge 8037b1aab1 into haskell-updates

This commit is contained in:
nixpkgs-ci[bot] 2026-07-02 00:50:41 +00:00 committed by GitHub
commit 3f49232af6
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
307 changed files with 5674 additions and 3399 deletions

View file

@ -22,17 +22,6 @@
- doc/**/*
- nixos/doc/**/*
"backport release-25.11":
- all:
- changed-files:
- any-glob-to-any-file:
- .github/actions/**/*
- .github/workflows/*
- .github/labeler*.yml
- ci/**/*.*
- maintainers/github-teams.json
- base-branch: ['master']
"backport release-26.05":
- all:
- changed-files:

View file

@ -31,12 +31,6 @@ jobs:
max-parallel: 1
matrix:
pairs:
- from: release-25.11
into: staging-next-25.11
- from: staging-next-25.11
into: staging-25.11
- from: release-25.11
into: staging-nixos-25.11
- from: release-26.05
into: staging-next-26.05
- from: staging-next-26.05

View file

@ -38,6 +38,17 @@ let
check = treefmt.check nixFilesSrc;
};
# nixos-render-docs and nixos-render-docs-redirects
# Should be used from tree to build the matching in-tree documentation
docPkgs = pkgs.extend (
final: prev: {
nixos-render-docs = final.callPackage ../pkgs/by-name/ni/nixos-render-docs/package.nix { };
nixos-render-docs-redirects =
final.callPackage ../pkgs/by-name/ni/nixos-render-docs-redirects/package.nix
{ };
}
);
in
rec {
inherit pkgs fmt;
@ -53,7 +64,7 @@ rec {
# CI jobs
lib-tests = import ../lib/tests/release.nix { inherit pkgs; };
manual-nixos = (import ../nixos/release.nix { }).manual.${system} or null;
manual-nixpkgs = (import ../doc { inherit pkgs; });
manual-nixpkgs = (import ../doc { pkgs = docPkgs; });
nixpkgs-vet = pkgs.callPackage ./nixpkgs-vet.nix {
nix = pkgs.nixVersions.latest;
};

View file

@ -100,6 +100,7 @@ let
myChunk=$2
system=$3
outputDir=$4
preEvalFile=$5
# Default is 5, higher values effectively disable the warning.
# This randomly breaks Eval.
@ -121,12 +122,12 @@ let
--show-trace \
--arg chunkSize "$chunkSize" \
--arg myChunk "$myChunk" \
--arg preEvalFile "${preEvalFile}" \
--arg preEvalFile "$preEvalFile" \
--arg systems "[ \"$system\" ]" \
--arg includeBroken ${lib.boolToString includeBroken} \
--argstr extraNixpkgsConfigJson ${lib.escapeShellArg (builtins.toJSON extraNixpkgsConfig)} \
-I ${nixpkgs} \
-I ${preEvalFile} \
-I "$preEvalFile" \
> "$outputDir/result/$myChunk" \
2> "$outputDir/stderr/$myChunk"
exitCode=$?
@ -164,12 +165,6 @@ let
echo "System: $evalSystem"
cores=$NIX_BUILD_CORES
echo "Cores: $cores"
attrCount=$(jq '.paths | length' "${preEvalFile}")
echo "Attribute count: $attrCount"
echo "Chunk size: $chunkSize"
# Same as `attrCount / chunkSize` but rounded up
chunkCount=$(( (attrCount - 1) / chunkSize + 1 ))
echo "Chunk count: $chunkCount"
mkdir -p $out/${evalSystem}
@ -190,29 +185,61 @@ let
done
) &
seq_end=$(( chunkCount - 1 ))
chunkedEval() {
local chunkOutputDir=$1
local preEvalFile=$2
${lib.optionalString quickTest ''
seq_end=0
''}
local attrCount=$(jq '.paths | length' "$preEvalFile")
echo "Attribute count: $attrCount"
echo "Chunk size: $chunkSize"
# Same as `attrCount / chunkSize` but rounded up
local chunkCount=$(( (attrCount - 1) / chunkSize + 1 ))
echo "Chunk count: $chunkCount"
chunkOutputDir=$(mktemp -d)
mkdir "$chunkOutputDir"/{result,stats,timestats,stderr}
local seq_end=$(( chunkCount - 1 ))
${lib.optionalString quickTest ''
seq_end=0
''}
seq -w 0 "$seq_end" |
command time -f "%e" -o "$out/${evalSystem}/total-time" \
xargs -I{} -P"$cores" \
${singleChunk} "$chunkSize" {} "$evalSystem" "$chunkOutputDir"
mkdir -p "$chunkOutputDir"/{result,stats,timestats,stderr}
cp -r "$chunkOutputDir"/stats $out/${evalSystem}/stats-by-chunk
seq -w 0 "$seq_end" |
xargs -I{} -P"$cores" \
${singleChunk} "$chunkSize" {} "$evalSystem" "$chunkOutputDir" "$preEvalFile"
if (( chunkSize * chunkCount != attrCount )); then
# A final incomplete chunk would mess up the stats, don't include it
rm "$chunkOutputDir"/stats/"$seq_end"
fi
if (( chunkSize * chunkCount != attrCount )); then
# A final incomplete chunk would mess up the stats, don't include it
rm "$chunkOutputDir"/stats/"$seq_end"
fi
}
cat "$chunkOutputDir"/result/* | jq -s 'add | map_values(.outputs)' > $out/${evalSystem}/paths.json
cat "$chunkOutputDir"/result/* | jq -s 'add | map_values(.meta)' > $out/${evalSystem}/meta.json
chunkOutputDirs=$(mktemp -d)
# Preparation for the second eval
disallowedAttributesPreEvalFile=$(mktemp)
jq '{
paths: (.attrPathsDisallowedForInternalUse | map(.attrPath)),
attrPathsDisallowedForInternalUse: []
}' ${preEvalFile} > "$disallowedAttributesPreEvalFile"
startEpoch=$(date +%s)
# The first eval evaluates only attributes that are not disallowed for internal Nixpkgs use, ensuring that they don't depend on disallowed attributes
# Because the first eval doesn't evaluate the disallowed attributes themselves, but we still want to check that they don't fail evaluation, we evaluate them separately in a second eval
# The reason we need two evals is because we want disallowed attributes to be able to depend on other disallowed attributes, which inherently needs a separate Nixpkgs instantiation
# And while we could interleave that instantiation into a single eval, that would ~double memory usage for all chunks, while doing it separately doesn't
echo "Evaluating the internally allowed attributes"
chunkedEval "$chunkOutputDirs"/allowed ${preEvalFile}
echo "Evaluating the internally disallowed attributes"
chunkedEval "$chunkOutputDirs"/disallowed "$disallowedAttributesPreEvalFile"
echo $(( $(date +%s) - startEpoch )) > "$out/${evalSystem}/total-time"
# We only use the stats from the allowed attrs eval, because the disallowed attrs are generally not even a full chunk
cp -r "$chunkOutputDirs"/allowed/stats $out/${evalSystem}/stats-by-chunk
cat "$chunkOutputDirs"/*/result/* | jq -s 'add | map_values(.outputs)' > $out/${evalSystem}/paths.json
cat "$chunkOutputDirs"/*/result/* | jq -s 'add | map_values(.meta)' > $out/${evalSystem}/meta.json
'';
diff = callPackage ./diff.nix { };

View file

@ -204,25 +204,9 @@ following are specific to `buildPythonPackage`:
* `setupPyGlobalFlags ? []`: List of flags passed to `setup.py` command.
* `setupPyBuildFlags ? []`: List of flags passed to `setup.py build_ext` command.
##### Using fixed-point arguments {#buildpythonpackage-fixed-point-arguments}
##### Writing override-compatible packages {#buildpythonpackage-fixed-point-arguments}
Both `buildPythonPackage` and `buildPythonApplication` support [fixed-point arguments](#chap-build-helpers-finalAttrs), similar to `stdenv.mkDerivation`.
This allows you to reference the final attributes of the derivation.
Instead of using `rec`:
```nix
buildPythonPackage rec {
pname = "pyspread";
version = "2.4";
src = fetchPypi {
inherit pname version;
hash = "sha256-...";
};
}
```
You can use the `finalAttrs` pattern:
Use `finalAttrs` to make a package easy to update and override:
```nix
buildPythonPackage (finalAttrs: {
@ -236,7 +220,9 @@ buildPythonPackage (finalAttrs: {
})
```
See the [general documentation on fixed-point arguments](#chap-build-helpers-finalAttrs) for more details on the benefits of this pattern.
When a downstream callsite *overrides* `version` the override becomes visible as `finalAttrs.version`.
Both `buildPythonPackage` and `buildPythonApplication` support [fixed-point arguments](#chap-build-helpers-finalAttrs), similar to `stdenv.mkDerivation`.
::: {.note}

View file

@ -6,7 +6,6 @@ let
isString
mapAttrs
removeAttrs
throwIfNot
;
showMaybeAttrPosPre =
@ -108,18 +107,18 @@ in
# attrset spine returned by lazyDerivation does not depend on it.
# Instead, the individual derivation attributes do depend on it.
checked =
throwIfNot (derivation.type or null == "derivation") "lazyDerivation: input must be a derivation."
throwIfNot
# NOTE: Technically we could require our outputs to be a subset of the
# actual ones, or even leave them unchecked and fail on a lazy basis.
# However, consider the case where an output is added in the underlying
# derivation, such as dev. lazyDerivation would remove it and cause it
# to fail as a buildInputs item, without any indication as to what
# happened. Hence the more stringent condition. We could consider
# adding a flag to control this behavior if there's a valid case for it,
# but the documentation must have a note like this.
(derivation.outputs == outputs)
''
if derivation.type or null != "derivation" then
throw "lazyDerivation: input must be a derivation."
# NOTE: Technically we could require our outputs to be a subset of the
# actual ones, or even leave them unchecked and fail on a lazy basis.
# However, consider the case where an output is added in the underlying
# derivation, such as dev. lazyDerivation would remove it and cause it
# to fail as a buildInputs item, without any indication as to what
# happened. Hence the more stringent condition. We could consider
# adding a flag to control this behavior if there's a valid case for it,
# but the documentation must have a note like this.
else if derivation.outputs != outputs then
throw ''
lib.lazyDerivation: The derivation ${derivation.name or "<unknown>"} has outputs that don't match the assumed outputs.
Assumed outputs passed to lazyDerivation${showMaybeAttrPosPre ",\n at " "outputs" args}:
@ -142,6 +141,7 @@ in
If none of the above works for you, replace the lib.lazyDerivation call by the
expression in the derivation argument.
''
else
derivation;
in
{

View file

@ -22,7 +22,6 @@ let
concatMapStringsSep
head
length
throwIf
;
inherit (lib.attrsets)
attrsToList
@ -130,7 +129,7 @@ rec {
hashesAsNVPairs = attrsToList (intersectAttrs hashSet args);
in
if hashesAsNVPairs == [ ] then
throwIf required "fetcher called without `hash`" null
if required then throw "fetcher called without `hash`" else null
else if length hashesAsNVPairs != 1 then
throw "fetcher called with mutually-incompatible arguments: ${
concatMapStringsSep ", " (a: a.name) hashesAsNVPairs

View file

@ -24,7 +24,6 @@ let
inherit (lib)
addErrorContext
any
assertMsg
attrNames
attrValues
concatLists
@ -64,7 +63,6 @@ let
reverseList
splitString
tail
toList
;
inherit (lib.strings)
@ -849,7 +847,7 @@ rec {
_type == "lua-inline";
generatedBindings =
assert assertMsg (badVarNames == [ ]) "Bad Lua var names: ${toPretty { } badVarNames}";
assert badVarNames == [ ] || throw "Bad Lua var names: ${toPretty { } badVarNames}";
concatStrings (mapAttrsToList (key: value: "${indent}${key} = ${toLua innerArgs value}\n") v);
# https://en.wikibooks.org/wiki/Lua_Programming/variable#Variable_names

View file

@ -191,10 +191,15 @@ rec {
mkArray =
elems:
let
vs = map mkValue (lib.throwIf (elems == [ ]) "Please create empty array with mkEmptyArray." elems);
elemType = lib.throwIfNot (lib.all (t: (head vs).type == t) (
map (v: v.type) vs
)) "Elements in a list should have same type." (head vs).type;
vs = map mkValue (
if elems == [ ] then throw "Please create empty array with mkEmptyArray." else elems
);
firstType = (head vs).type;
elemType =
if lib.any (v: v.type != firstType) vs then
throw "Elements in a list should have same type."
else
firstType;
in
mkPrimitive (type.arrayOf elemType) vs
// {

View file

@ -1848,7 +1848,7 @@ rec {
*/
last =
list:
assert lib.assertMsg (list != [ ]) "lists.last: list must not be empty!";
assert list != [ ] || throw "lists.last: list must not be empty!";
elemAt list (length list - 1);
/**
@ -1881,7 +1881,7 @@ rec {
*/
init =
list:
assert lib.assertMsg (list != [ ]) "lists.init: list must not be empty!";
assert list != [ ] || throw "lists.init: list must not be empty!";
genList (elemAt list) (length list - 1);
/**
@ -2157,7 +2157,8 @@ rec {
*/
replaceElemAt =
list: idx: newElem:
assert lib.assertMsg (idx >= 0 && idx < length list)
"'lists.replaceElemAt' called with index ${toString idx} on a list of size ${toString (length list)}";
assert
idx >= 0 && idx < length list
|| throw "'lists.replaceElemAt' called with index ${toString idx} on a list of size ${toString (length list)}";
genList (i: if i == idx then newElem else elemAt list i) (length list);
}

View file

@ -12,7 +12,6 @@ let
all
isDerivation
getBin
assertMsg
;
inherit (lib.attrsets) mapAttrs' filterAttrs;
inherit (builtins)
@ -571,12 +570,15 @@ rec {
*/
getExe' =
x: y:
assert assertMsg (isDerivation x)
"lib.meta.getExe': The first argument is of type ${typeOf x}, but it should be a derivation instead.";
assert assertMsg (isString y)
"lib.meta.getExe': The second argument is of type ${typeOf y}, but it should be a string instead.";
assert assertMsg (match ".*/.*" y == null)
"lib.meta.getExe': The second argument \"${y}\" is a nested path with a \"/\" character, but it should just be the name of the executable instead.";
assert
isDerivation x
|| throw "lib.meta.getExe': The first argument is of type ${typeOf x}, but it should be a derivation instead.";
assert
isString y
|| throw "lib.meta.getExe': The second argument is of type ${typeOf y}, but it should be a string instead.";
assert
match ".*/.*" y == null
|| throw "lib.meta.getExe': The second argument \"${y}\" is a nested path with a \"/\" character, but it should just be the name of the executable instead.";
"${getBin x}/bin/${y}";
/**

View file

@ -46,7 +46,6 @@ let
setAttrByPath
substring
take
throwIfNot
trace
typeOf
types
@ -680,8 +679,11 @@ let
config = addFreeformType (addMeta (m.config or { }));
}
else
# shorthand syntax
throwIfNot (isAttrs m) "module ${file} (${key}) does not look like a module." {
# shorthand syntax
if !isAttrs m then
throw "module ${file} (${key}) does not look like a module."
else
{
_file = toString m._file or file;
_class = m._class or null;
key = toString m.key or key;

View file

@ -104,9 +104,9 @@ let
*/
parseExpandedIpv6 =
addr:
assert lib.assertMsg (
assert
length addr == ipv6Pieces
) "parseExpandedIpv6: expected list of integers with ${ipv6Pieces} elements";
|| throw "parseExpandedIpv6: expected list of integers with ${ipv6Pieces} elements";
let
u16FromHexStr =
hex:

View file

@ -32,10 +32,6 @@ let
substring
;
inherit (lib.asserts)
assertMsg
;
inherit (lib.path.subpath)
isValid
;
@ -238,11 +234,14 @@ in
path:
# The subpath string to append
subpath:
assert assertMsg (isPath path)
"lib.path.append: The first argument is of type ${builtins.typeOf path}, but a path was expected";
assert assertMsg (isValid subpath) ''
lib.path.append: Second argument is not a valid subpath string:
${subpathInvalidReason subpath}'';
assert
isPath path
|| throw "lib.path.append: The first argument is of type ${builtins.typeOf path}, but a path was expected";
assert
isValid subpath
|| throw ''
lib.path.append: Second argument is not a valid subpath string:
${subpathInvalidReason subpath}'';
path + ("/" + subpath);
/**
@ -285,21 +284,25 @@ in
*/
hasPrefix =
path1:
assert assertMsg (isPath path1)
"lib.path.hasPrefix: First argument is of type ${typeOf path1}, but a path was expected";
assert
isPath path1
|| throw "lib.path.hasPrefix: First argument is of type ${typeOf path1}, but a path was expected";
let
path1Deconstructed = deconstructPath path1;
in
path2:
assert assertMsg (isPath path2)
"lib.path.hasPrefix: Second argument is of type ${typeOf path2}, but a path was expected";
assert
isPath path2
|| throw "lib.path.hasPrefix: Second argument is of type ${typeOf path2}, but a path was expected";
let
path2Deconstructed = deconstructPath path2;
in
assert assertMsg (path1Deconstructed.root == path2Deconstructed.root) ''
lib.path.hasPrefix: Filesystem roots must be the same for both paths, but paths with different roots were given:
first argument: "${toString path1}" with root "${toString path1Deconstructed.root}"
second argument: "${toString path2}" with root "${toString path2Deconstructed.root}"'';
assert
path1Deconstructed.root == path2Deconstructed.root
|| throw ''
lib.path.hasPrefix: Filesystem roots must be the same for both paths, but paths with different roots were given:
first argument: "${toString path1}" with root "${toString path1Deconstructed.root}"
second argument: "${toString path2}" with root "${toString path2Deconstructed.root}"'';
take (length path1Deconstructed.components) path2Deconstructed.components
== path1Deconstructed.components;
@ -344,15 +347,17 @@ in
*/
removePrefix =
path1:
assert assertMsg (isPath path1)
"lib.path.removePrefix: First argument is of type ${typeOf path1}, but a path was expected.";
assert
isPath path1
|| throw "lib.path.removePrefix: First argument is of type ${typeOf path1}, but a path was expected.";
let
path1Deconstructed = deconstructPath path1;
path1Length = length path1Deconstructed.components;
in
path2:
assert assertMsg (isPath path2)
"lib.path.removePrefix: Second argument is of type ${typeOf path2}, but a path was expected.";
assert
isPath path2
|| throw "lib.path.removePrefix: Second argument is of type ${typeOf path2}, but a path was expected.";
let
path2Deconstructed = deconstructPath path2;
success = take path1Length path2Deconstructed.components == path1Deconstructed.components;
@ -362,10 +367,12 @@ in
else
throw ''lib.path.removePrefix: The first path argument "${toString path1}" is not a component-wise prefix of the second path argument "${toString path2}".'';
in
assert assertMsg (path1Deconstructed.root == path2Deconstructed.root) ''
lib.path.removePrefix: Filesystem roots must be the same for both paths, but paths with different roots were given:
first argument: "${toString path1}" with root "${toString path1Deconstructed.root}"
second argument: "${toString path2}" with root "${toString path2Deconstructed.root}"'';
assert
path1Deconstructed.root == path2Deconstructed.root
|| throw ''
lib.path.removePrefix: Filesystem roots must be the same for both paths, but paths with different roots were given:
first argument: "${toString path1}" with root "${toString path1Deconstructed.root}"
second argument: "${toString path2}" with root "${toString path2Deconstructed.root}"'';
joinRelPath components;
/**
@ -422,8 +429,9 @@ in
splitRoot =
# The path to split the root off of
path:
assert assertMsg (isPath path)
"lib.path.splitRoot: Argument is of type ${typeOf path}, but a path was expected";
assert
isPath path
|| throw "lib.path.splitRoot: Argument is of type ${typeOf path}, but a path was expected";
let
deconstructed = deconstructPath path;
in
@ -494,14 +502,15 @@ in
let
deconstructed = deconstructPath path;
in
assert assertMsg (isPath path)
"lib.path.hasStorePathPrefix: Argument is of type ${typeOf path}, but a path was expected";
assert assertMsg
assert
isPath path
|| throw "lib.path.hasStorePathPrefix: Argument is of type ${typeOf path}, but a path was expected";
assert
# This function likely breaks or needs adjustment if used with other filesystem roots, if they ever get implemented.
# Let's try to error nicely in such a case, though it's unclear how an implementation would work even and whether this could be detected.
# See also https://github.com/NixOS/nix/pull/6530#discussion_r1422843117
(deconstructed.root == /. && toString deconstructed.root == "/")
"lib.path.hasStorePathPrefix: Argument has a filesystem root (${toString deconstructed.root}) that's not /, which is currently not supported.";
deconstructed.root == /. && toString deconstructed.root == "/"
|| throw "lib.path.hasStorePathPrefix: Argument has a filesystem root (${toString deconstructed.root}) that's not /, which is currently not supported.";
componentsHaveStorePathPrefix deconstructed.components;
/**
@ -702,9 +711,11 @@ in
subpath.components =
# The subpath string to split into components
subpath:
assert assertMsg (isValid subpath) ''
lib.path.subpath.components: Argument is not a valid subpath string:
${subpathInvalidReason subpath}'';
assert
isValid subpath
|| throw ''
lib.path.subpath.components: Argument is not a valid subpath string:
${subpathInvalidReason subpath}'';
splitRelPath subpath;
/**
@ -799,9 +810,11 @@ in
subpath.normalise =
# The subpath string to normalise
subpath:
assert assertMsg (isValid subpath) ''
lib.path.subpath.normalise: Argument is not a valid subpath string:
${subpathInvalidReason subpath}'';
assert
isValid subpath
|| throw ''
lib.path.subpath.normalise: Argument is not a valid subpath string:
${subpathInvalidReason subpath}'';
joinRelPath (splitRelPath subpath);
}

View file

@ -1589,15 +1589,14 @@ rec {
*/
toSentenceCase =
str:
lib.throwIfNot (isString str)
"toSentenceCase does only accepts string values, but got ${typeOf str}"
(
let
firstChar = substring 0 1 str;
rest = substring 1 (-1) str; # -1 takes till the end of the string
in
toUpper firstChar + toLower rest
);
if !isString str then
throw "toSentenceCase does only accepts string values, but got ${typeOf str}"
else
let
firstChar = substring 0 1 str;
rest = substring 1 (-1) str; # -1 takes till the end of the string
in
toUpper firstChar + toLower rest;
/**
Converts a string to camelCase. Handles snake_case, PascalCase,
@ -1633,7 +1632,9 @@ rec {
*/
toCamelCase =
str:
lib.throwIfNot (isString str) "toCamelCase does only accepts string values, but got ${typeOf str}" (
if !isString str then
throw "toCamelCase does only accepts string values, but got ${typeOf str}"
else
let
separators = splitStringBy (
prev: curr:
@ -1653,8 +1654,7 @@ rec {
first = if length parts > 0 then toLower (head parts) else "";
rest = if length parts > 1 then map toSentenceCase (tail parts) else [ ];
in
concatStrings ([ first ] ++ rest)
);
concatStrings ([ first ] ++ rest);
/**
Appends string context from string like object `src` to `target`.
@ -2532,8 +2532,9 @@ rec {
strw = lib.stringLength str;
reqWidth = width - (lib.stringLength filler);
in
assert lib.assertMsg (strw <= width)
"fixedWidthString: requested string length (${toString width}) must not be shorter than actual length (${toString strw})";
assert
strw <= width
|| throw "fixedWidthString: requested string length (${toString width}) must not be shorter than actual length (${toString strw})";
if strw == width then str else filler + fixedWidthString reqWidth filler str;
/**

View file

@ -474,7 +474,7 @@ in
*/
oldestSupportedRelease =
# Update on master only. Do not backport.
2511;
2605;
/**
Whether a feature is supported in all supported releases (at the time of

View file

@ -21,7 +21,6 @@ let
isString
substring
sort
throwIf
toDerivation
toList
types
@ -408,7 +407,7 @@ rec {
betweenDesc = lowest: highest: "${toString lowest} and ${toString highest} (both inclusive)";
between =
lowest: highest:
assert lib.assertMsg (lowest <= highest) "ints.between: lowest must be smaller than highest";
assert lowest <= highest || throw "ints.between: lowest must be smaller than highest";
addCheck int (x: x >= lowest && x <= highest)
// {
name = "intBetween";
@ -495,7 +494,7 @@ rec {
{
between =
lowest: highest:
assert lib.assertMsg (lowest <= highest) "numbers.between: lowest must be smaller than highest";
assert lowest <= highest || throw "numbers.between: lowest must be smaller than highest";
addCheck number (x: x >= lowest && x <= highest)
// {
name = "numberBetween";
@ -660,10 +659,10 @@ rec {
inStore ? null,
absolute ? null,
}:
throwIf (inStore != null && absolute != null && inStore && !absolute)
"In pathWith, inStore means the path must be absolute"
mkOptionType
{
if inStore != null && absolute != null && inStore && !absolute then
throw "In pathWith, inStore means the path must be absolute"
else
mkOptionType {
name = "path";
description = (
(if absolute == null then "" else (if absolute then "absolute " else "relative "))
@ -1079,8 +1078,8 @@ rec {
builtins.addErrorContext
"while checking that attrTag tag ${lib.strings.escapeNixIdentifier n} is an option with a type${inAttrPosSuffix tags_ n}"
(
throwIf (opt._type or null != "option")
"In attrTag, each tag value must be an option, but tag ${lib.strings.escapeNixIdentifier n} ${
if opt._type or null != "option" then
throw "In attrTag, each tag value must be an option, but tag ${lib.strings.escapeNixIdentifier n} ${
if opt ? _type then
if opt._type == "option-type" then
"was a bare type, not wrapped in mkOption."
@ -1089,23 +1088,24 @@ rec {
else
"was not."
}"
else
opt
// {
declarations =
opt.declarations or (
let
pos = builtins.unsafeGetAttrPos n tags_;
in
if pos == null then [ ] else [ pos.file ]
);
declarationPositions =
opt.declarationPositions or (
let
pos = builtins.unsafeGetAttrPos n tags_;
in
if pos == null then [ ] else [ pos ]
);
}
// {
declarations =
opt.declarations or (
let
pos = builtins.unsafeGetAttrPos n tags_;
in
if pos == null then [ ] else [ pos.file ]
);
declarationPositions =
opt.declarationPositions or (
let
pos = builtins.unsafeGetAttrPos n tags_;
in
if pos == null then [ ] else [ pos ]
);
}
)
) tags_;
choicesStr = concatMapStringsSep ", " lib.strings.escapeNixIdentifier (attrNames tags);
@ -1728,9 +1728,9 @@ rec {
# converted to `finalType` using `coerceFunc`.
coercedTo =
coercedType: coerceFunc: finalType:
assert lib.assertMsg (
assert
coercedType.getSubModules == null
) "coercedTo: coercedType must not have submodules (its a ${coercedType.description})";
|| throw "coercedTo: coercedType must not have submodules (its a ${coercedType.description})";
mkOptionType rec {
name = "coercedTo";
description = "${optionDescriptionPhrase (class: class == "noun") finalType} or ${

View file

@ -814,6 +814,12 @@
github = "aftix";
githubId = 4008299;
};
agarmu = {
name = "Mukul Agarwal";
email = "vcs@agarmu.com";
github = "agarmu";
githubId = 55563106;
};
agbrooks = {
email = "andrewgrantbrooks@gmail.com";
github = "agbrooks";
@ -876,6 +882,12 @@
matrix = "aiya:catgirl.cloud";
name = "aiya";
};
aietes = {
email = "stefan@standa.de";
github = "Aietes";
githubId = 5823770;
name = "Stefan Krüger";
};
aij = {
email = "aij+git@mrph.org";
github = "aij";
@ -5753,6 +5765,12 @@
githubId = 4162215;
keys = [ { fingerprint = "CE97 9DEE 904C 26AA 3716 78C2 96A4 38F9 EE72 572F"; } ];
};
croots = {
name = "Cameron Roots";
github = "croots";
githubId = 38054423;
keys = [ { fingerprint = "8496 ECF3 0961 115C A6DE 919F A01D C430 0605 1618"; } ];
};
crop = {
email = "crop_tech@proton.me";
name = "crop";
@ -8297,6 +8315,12 @@
githubId = 7820865;
name = "Eric Dallo";
};
erics118 = {
name = "Eric Shen";
github = "erics118";
githubId = 52634785;
email = "ericshen118@gmail.com";
};
ericson2314 = {
email = "John.Ericson@Obsidian.Systems";
matrix = "@Ericson2314:matrix.org";
@ -9327,7 +9351,7 @@
fraioveio = {
email = "francesco@vecchia.lol";
github = "FraioVeio";
githubId = 181361445;
githubId = 44584365;
name = "Francesco Vecchia";
};
franciscod = {
@ -9364,6 +9388,12 @@
github = "frectonz";
githubId = 53809656;
};
fred441a = {
email = "frederik@altofte.dk";
github = "fred441a";
githubId = 10808098;
name = "Frederik Hansen";
};
fredeb = {
email = "frederikbraendstrup@gmail.com";
github = "FredeHoey";
@ -13634,6 +13664,11 @@
githubId = 4611077;
name = "Raymond Gauthier";
};
jromer = {
github = "jelleromer";
githubId = 11951893;
name = "Jelle Römer";
};
jrpotter = {
email = "jrpotter2112@gmail.com";
github = "jrpotter";
@ -13926,6 +13961,13 @@
githubId = 2396926;
name = "Justin Woo";
};
justkrysteq = {
email = "justkrysteq@proton.me";
github = "justkrysteq";
githubId = 43525126;
name = "Krysteq";
matrix = "@krysteq:matrix.org";
};
jvanbruegge = {
email = "supermanitu@gmail.com";
github = "jvanbruegge";
@ -15771,6 +15813,17 @@
githubId = 124475;
name = "Olli Helenius";
};
ligerothetiger = {
email = "ligero@ligerothetiger.com";
name = "LigeroTheTiger";
github = "LigeroTheTiger";
githubId = 42996211;
keys = [
{
fingerprint = "5zLV9yqjL18GsG1qan0tGM5341niQNYnU/hiBCscn04";
}
];
};
lightbulbjim = {
email = "chris@killred.net";
github = "lightbulbjim";
@ -17878,6 +17931,12 @@
github = "merrkry";
githubId = 124278440;
};
mert-kurttutan = {
email = "mert-kurttutan@gmail.com";
name = "Mert Kurttutan";
github = "mert-kurttutan";
githubId = 88637659;
};
messemar = {
email = "martin.messer@cyberus-technology.de";
name = "messemar";
@ -19222,6 +19281,12 @@
githubId = 61601147;
name = "basti n00b0ss";
};
n0pl4c3 = {
email = "mail@n0pl4c3.net";
github = "n0pl4c3";
githubId = 69087176;
name = "n0pl4c3";
};
n3oney = {
name = "Michał Minarowski";
email = "nixpkgs@neoney.dev";
@ -24989,6 +25054,12 @@
githubId = 149248;
name = "Christian Rackerseder";
};
screwys = {
email = "screwygit@proton.me";
github = "screwys";
githubId = 254296947;
name = "screwy";
};
Scriptkiddi = {
email = "nixos@scriptkiddi.de";
matrix = "@fritz.otlinghaus:helsinki-systems.de";
@ -25226,6 +25297,13 @@
githubId = 35622998;
name = "Suwon Park";
};
sepointon = {
email = "sampointon@gmail.com";
github = "sepointon";
githubId = 209542026;
matrix = "sampointon:matrix.org";
name = "Sam Pointon";
};
seppeljordan = {
email = "sebastian.jordan.mail@googlemail.com";
github = "seppeljordan";
@ -27442,6 +27520,12 @@
github = "tembleking";
githubId = 2988780;
};
temidaradev = {
name = "temidaradev";
email = "temidaradev@proton.me";
github = "temidaradev";
githubId = 118509044;
};
tengkuizdihar = {
name = "Tengku Izdihar";
email = "tengkuizdihar@gmail.com";
@ -30072,6 +30156,11 @@
githubId = 168610;
name = "Ricardo M. Correia";
};
wjohnsto = {
name = "Will Johnston";
github = "wjohnsto";
githubId = 785258;
};
wkral = {
email = "william.kral@gmail.com";
github = "wkral";
@ -30577,6 +30666,12 @@
github = "yarektyshchenko";
githubId = 185304;
};
yarn = {
name = "yarncat";
github = "yaaaarn";
githubId = 30006414;
email = "nix@yarncat.moe";
};
yarny = {
github = "Yarny0";
githubId = 41838844;

View file

@ -2250,6 +2250,30 @@ in
'';
};
prompt = lib.mkOption {
default = null;
type = with lib.types; nullOr str;
description = ''
Set individual prompt message for interactive mode.
By setting this option, you can set a message to be shown by the
{option}`security.pam.u2f.settings.interactive` option.
Requires {option}`security.pam.u2f.settings.interactive` to be set to `true`.
'';
};
cue_prompt = lib.mkOption {
default = null;
type = with lib.types; nullOr str;
description = ''
Set individual prompt message for cue mode.
By setting this option, you can set a message to be shown by the
{option}`security.pam.u2f.settings.cue` option.
Requires {option}`security.pam.u2f.settings.cue` to be set to `true`.
'';
};
cue = lib.mkOption {
default = false;
type = lib.types.bool;

View file

@ -621,7 +621,7 @@ in
PrivateNetwork = false;
};
environment = env // {
PYTHONPATH = "${cfg.package.python.pkgs.makePythonPath cfg.package.propagatedBuildInputs}:${cfg.package}/lib/paperless-ngx/src";
PYTHONPATH = "${cfg.package.python.pkgs.makePythonPath cfg.package.passthru.dependencies}:${cfg.package}/lib/paperless-ngx/src";
};
# Allow the web interface to access the private /tmp directory of the server.
# This is required to support uploading files via the web interface.

View file

@ -421,10 +421,7 @@ in
ExecStart = "${data.package}/bin/tincd -D -U tinc-${network} -n ${network} ${optionalString (data.chroot) "-R"} --pidfile /run/tinc.${network}.pid -d ${toString data.debugLevel}";
};
preStart = ''
mkdir -p /etc/tinc/${network}/hosts
chown tinc-${network} /etc/tinc/${network}/hosts
mkdir -p /etc/tinc/${network}/invitations
chown tinc-${network} /etc/tinc/${network}/invitations
install -d -o tinc-${network} /etc/tinc/${network} /etc/tinc/${network}/hosts /etc/tinc/${network}/invitations
# Determine how we should generate our keys
if type tinc >/dev/null 2>&1; then

View file

@ -24,6 +24,7 @@ let
getExe
types
maintainers
makeBinPath
;
cfg = config.services.wivrn;
configFormat = pkgs.formats.json { };
@ -63,13 +64,24 @@ let
enabledConfig = optionalString cfg.config.enable "-f ${configFile}";
# Manage server executables and flags
serverExec = concatStringsSep " " (
serverCmdline = concatStringsSep " " (
[
serverPackageExe
enabledConfig
]
++ cfg.extraServerFlags
);
serverExec =
if cfg.steam.enable then
lib.getExe (
pkgs.writeShellScriptBin "start-wivrn-server" ''
# The server needs Steam in PATH to open Steam games from the application launcher
export PATH="${makeBinPath [ cfg.steam.package ]}:$PATH"
exec -a wivrn-server ${serverCmdline}
''
)
else
serverCmdline;
in
{
imports = [
@ -184,6 +196,11 @@ in
IPC_EXIT_ON_DISCONNECT = "off";
PRESSURE_VESSEL_IMPORT_OPENXR_1_RUNTIMES = mkIf cfg.steam.importOXRRuntimes "1";
} cfg.monadoEnvironment;
# WiVRn scans for .desktop files in $XDG_DATA_DIRS for the application launcher,
# which will execute the command in Exec when selected in the headset. If the
# Exec path isn't absolute, it will be resolved relative to $PATH, so we must
# not override the value of $PATH.
enableDefaultPath = false;
serviceConfig = (
if cfg.highPriority then
{
@ -211,8 +228,6 @@ in
RestrictSUIDSGID = true;
}
);
# Needs Steam in the PATH to allow launching games from the headset
path = mkIf cfg.steam.enable [ cfg.steam.package ];
wantedBy = mkIf cfg.autoStart [ "default.target" ];
restartTriggers = [
cfg.package

View file

@ -243,6 +243,38 @@ def run(
return subprocess.run(cmd, check=True, text=True, stdout=stdout, stderr=sys.stderr)
def bootctl_varlink_call(method: str, parameters: dict[str, Any]) -> dict[str, Any]:
# Spawn bootctl as a Varlink server on stdio, mirroring what varlinkctl
# does when given an executable path. We cannot talk to a running
# systemd-bootctl.socket because that would use bootctl from the booted
# system rather than the closure we are switching to, does not let us set
# SYSTEMD_ESP_PATH/SYSTEMD_XBOOTLDR_PATH, and is unavailable inside
# nixos-enter anyway.
env = os.environ | {
"SYSTEMD_VARLINK_LISTEN": "-",
"SYSTEMD_ESP_PATH": str(EFI_SYS_MOUNT_POINT),
}
if BOOT_MOUNT_POINT != EFI_SYS_MOUNT_POINT:
env["SYSTEMD_XBOOTLDR_PATH"] = str(BOOT_MOUNT_POINT)
proc = subprocess.Popen(
[f"{SYSTEMD}/bin/bootctl"],
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
stderr=sys.stderr,
env=env,
)
assert proc.stdin is not None and proc.stdout is not None
request = json.dumps({"method": method, "parameters": parameters}).encode()
out, _ = proc.communicate(request + b"\0")
reply, _, _ = out.partition(b"\0")
if not reply:
raise RuntimeError(
f"bootctl exited with status {proc.returncode} without a Varlink reply"
)
return json.loads(reply)
def generation_dir(profile: str | None, generation: int) -> Path:
if profile:
return Path(
@ -479,55 +511,29 @@ def install_bootloader(args: argparse.Namespace) -> None:
+ ["install"]
)
else:
# Update bootloader to latest if needed
available_out = run(
[f"{SYSTEMD}/bin/bootctl", "--version"], stdout=subprocess.PIPE
).stdout.split()[2]
installed_out = run(
[f"{SYSTEMD}/bin/bootctl", f"--esp-path={EFI_SYS_MOUNT_POINT}", "status"],
stdout=subprocess.PIPE,
).stdout
# Let bootctl compare versions itself. Over Varlink, an already
# current binary comes back as an io.systemd.System error carrying
# ESTALE, which we can tell apart from real failures.
params: dict[str, Any] = {"operation": "update"}
if not CAN_TOUCH_EFI_VARIABLES:
params["touchVariables"] = False
if GRACEFUL:
params["graceful"] = True
reply = bootctl_varlink_call("io.systemd.BootControl.Install", params)
# See status_binaries() in systemd bootctl.c for code which generates this
# Matches
# Available Boot Loaders on ESP:
# ESP: /boot (/dev/disk/by-partuuid/9b39b4c4-c48b-4ebf-bfea-a56b2395b7e0)
# File: └─/EFI/systemd/systemd-bootx64.efi (systemd-boot 255.2)
# But also:
# Available Boot Loaders on ESP:
# ESP: /boot (/dev/disk/by-partuuid/9b39b4c4-c48b-4ebf-bfea-a56b2395b7e0)
# File: ├─/EFI/systemd/HashTool.efi
# └─/EFI/systemd/systemd-bootx64.efi (systemd-boot 255.2)
installed_match = re.search(
r"^\W+.*/EFI/(?:BOOT|systemd)/.*\.efi \(systemd-boot ([\d.]+[^)]*)\)$",
installed_out,
re.IGNORECASE | re.MULTILINE,
)
available_match = re.search(r"^\((.*)\)$", available_out)
if installed_match is None:
raise Exception(
"Could not find any previously installed systemd-boot. If you are switching to systemd-boot from a different bootloader, you need to run `nixos-rebuild switch --install-bootloader`"
)
if available_match is None:
raise Exception("could not determine systemd-boot version")
installed_version = installed_match.group(1)
available_version = available_match.group(1)
if installed_version < available_version:
print(
"updating systemd-boot from %s to %s"
% (installed_version, available_version),
file=sys.stderr,
)
run(
[f"{SYSTEMD}/bin/bootctl", f"--esp-path={EFI_SYS_MOUNT_POINT}"]
+ bootctl_flags
+ ["update"]
)
error = reply.get("error")
if error is not None:
error_params = reply.get("parameters") or {}
if (
error == "io.systemd.System"
and error_params.get("errno") == errno.ESTALE
):
# Same or newer boot loader version already in place.
pass
else:
raise RuntimeError(
f"bootctl update failed: {error} {json.dumps(error_params)}"
)
(BOOT_MOUNT_POINT / NIXOS_DIR).mkdir(parents=True, exist_ok=True)
(BOOT_MOUNT_POINT / "loader/entries").mkdir(parents=True, exist_ok=True)

View file

@ -623,6 +623,7 @@ in
flannel = runTestOn [ "x86_64-linux" ] ./flannel.nix;
flap-alerted = runTest ./flap-alerted.nix;
flaresolverr = runTest ./flaresolverr.nix;
flarum = runTest ./flarum.nix;
flood = runTest ./flood.nix;
fluent-bit = runTest ./fluent-bit.nix;
fluentd = runTest ./fluentd.nix;

52
nixos/tests/flarum.nix Normal file
View file

@ -0,0 +1,52 @@
{ lib, ... }:
{
name = "flarum";
meta = {
maintainers = with lib.maintainers; [
fsagbuya
jasonodoom
];
};
nodes.machine =
{ ... }:
{
# Flarum installs and migrates the database on first boot and runs a
# MariaDB server alongside PHP-FPM and nginx, so give the VM some headroom.
virtualisation.memorySize = 2048;
services.flarum = {
enable = true;
forumTitle = "NixOS Flarum Test Forum";
domain = "localhost";
baseUrl = "http://localhost";
# Run `flarum install` against the locally provisioned MariaDB. Safe here
# because the VM always starts from a fresh, empty database.
createDatabaseLocally = true;
adminUser = "admin";
adminEmail = "admin@example.com";
# Flarum rejects admin passwords shorter than 8 characters.
initialAdminPassword = "flarum-admin-password";
};
};
testScript = ''
start_all()
# PHP-FPM is ordered after the oneshot installer (Type=oneshot, no
# RemainAfterExit), so waiting on it implies the install/migrate finished.
machine.wait_for_unit("phpfpm-flarum.service")
machine.wait_for_unit("nginx.service")
machine.wait_for_open_port(80)
# The forum front page is server-rendered and embeds the configured title.
machine.wait_until_succeeds("curl -sf http://localhost/ -o /dev/null")
machine.succeed("curl -sf http://localhost/ | grep -F 'NixOS Flarum Test Forum'")
# The admin API endpoint should respond, confirming the app booted cleanly.
machine.succeed("curl -sf http://localhost/api -o /dev/null")
'';
}

View file

@ -67,7 +67,7 @@ in
name = "matrix-authentication-service-upstream";
meta = {
maintainers = pkgs.matrix-authentication-service.meta.maintainers ++ lib.teams.matrix.members;
teams = [ lib.teams.matrix ];
};
nodes = {

View file

@ -478,7 +478,6 @@ in
return machine.succeed("/run/current-system/bin/switch-to-configuration boot 2>&1")
output = switch()
assert "updating systemd-boot from ${oldVersion} to " in output, "Couldn't find systemd-boot update message"
assert 'to "/boot/EFI/systemd/systemd-bootx64.efi"' in output, "systemd-boot not copied to to /boot/EFI/systemd/systemd-bootx64.efi"
assert 'to "/boot/EFI/BOOT/BOOTX64.EFI"' in output, "systemd-boot not copied to to /boot/EFI/BOOT/BOOTX64.EFI"
@ -489,9 +488,12 @@ in
"mv /boot/EFI/BOOT/bootx64.efi.new /boot/EFI/BOOT/bootx64.efi",
)
output = switch()
assert "updating systemd-boot from ${oldVersion} to " in output, "Couldn't find systemd-boot update message"
assert 'to "/boot/EFI/systemd/systemd-bootx64.efi"' in output, "systemd-boot not copied to to /boot/EFI/systemd/systemd-bootx64.efi"
assert 'to "/boot/EFI/BOOT/BOOTX64.EFI"' in output, "systemd-boot not copied to to /boot/EFI/BOOT/BOOTX64.EFI"
with subtest("Test that switching with an up-to-date bootloader is a no-op"):
output = machine.succeed("/run/current-system/bin/switch-to-configuration boot 2>&1")
assert "same boot loader version in place already" in output, "Expected bootctl to skip already-current binary"
'';
}
);

View file

@ -29,8 +29,8 @@ in
];
};
nodes = {
victoriametrics =
containers = {
vmserver =
{ pkgs, ... }:
{
environment.systemPackages = [ pkgs.jq ];
@ -55,14 +55,14 @@ in
node.wait_for_unit("prometheus-node-exporter")
node.wait_for_open_port(${toString nodeExporterPort})
victoriametrics.wait_for_unit("victoriametrics")
victoriametrics.wait_for_open_port(8428)
vmserver.wait_for_unit("victoriametrics")
vmserver.wait_for_open_port(8428)
promscrape_config = victoriametrics.succeed("journalctl -u victoriametrics -o cat | grep 'promscrape.config'")
promscrape_config = vmserver.succeed("journalctl -u victoriametrics -o cat | grep 'promscrape.config'")
assert '${toString promscrapeConfigYaml}' in promscrape_config
victoriametrics.wait_until_succeeds(
vmserver.wait_until_succeeds(
"curl -sf 'http://localhost:8428/api/v1/query?query=node_exporter_build_info\{instance=\"node:9100\"\}' | "
+ "jq '.data.result[0].value[1]' | grep '\"1\"'"
)

View file

@ -14,8 +14,8 @@ in
];
};
nodes = {
victoriametrics =
containers = {
vmserver =
{ pkgs, ... }:
{
environment.systemPackages = [ pkgs.jq ];
@ -34,7 +34,7 @@ in
services.vmagent = {
enable = true;
remoteWrite = {
url = "http://victoriametrics:8428/api/v1/write";
url = "http://vmserver:8428/api/v1/write";
basicAuthUsername = username;
basicAuthPasswordFile = toString passwordFile;
};
@ -71,13 +71,13 @@ in
node.wait_for_unit("prometheus-node-exporter")
node.wait_for_open_port(9100)
victoriametrics.wait_for_unit("victoriametrics")
victoriametrics.wait_for_open_port(8428)
vmserver.wait_for_unit("victoriametrics")
vmserver.wait_for_open_port(8428)
vmagent.wait_for_unit("vmagent")
# check remote write
victoriametrics.wait_until_succeeds(
vmserver.wait_until_succeeds(
"curl --user '${username}:${password}' -sf 'http://localhost:8428/api/v1/query?query=node_exporter_build_info\{instance=\"node:9100\"\}' | "
+ "jq '.data.result[0].value[1]' | grep '\"1\"'"
)

View file

@ -9,8 +9,8 @@
];
};
nodes = {
victoriametrics =
containers = {
vmserver =
{ config, pkgs, ... }:
{
environment.systemPackages = [ pkgs.jq ];
@ -27,7 +27,7 @@
static_configs = [
{
targets = [
"alertmanager:${toString config.services.prometheus.alertmanager.port}"
"alert:${toString config.services.prometheus.alertmanager.port}"
];
}
];
@ -51,7 +51,7 @@
settings = {
"datasource.url" = "http://localhost:8428"; # victoriametrics' api
"notifier.url" = [
"http://alertmanager:${toString config.services.prometheus.alertmanager.port}"
"http://alert:${toString config.services.prometheus.alertmanager.port}"
]; # alertmanager's api
rule = [
(pkgs.writeText "instance-down.yml" ''
@ -71,7 +71,7 @@
};
};
alertmanager = {
alert = {
services.prometheus.alertmanager = {
enable = true;
openFirewall = true;
@ -115,33 +115,33 @@
};
testScript = ''
alertmanager.wait_for_unit("alertmanager")
alertmanager.wait_for_open_port(9093)
alertmanager.wait_until_succeeds("curl -s http://127.0.0.1:9093/-/ready")
alert.wait_for_unit("alertmanager")
alert.wait_for_open_port(9093)
alert.wait_until_succeeds("curl -s http://127.0.0.1:9093/-/ready")
logger.wait_for_unit("alertmanager-webhook-logger")
logger.wait_for_open_port(6725)
victoriametrics.wait_for_unit("victoriametrics")
victoriametrics.wait_for_unit("vmalert")
victoriametrics.wait_for_open_port(8428)
vmserver.wait_for_unit("victoriametrics")
vmserver.wait_for_unit("vmalert")
vmserver.wait_for_open_port(8428)
victoriametrics.wait_until_succeeds(
vmserver.wait_until_succeeds(
"curl -sf 'http://127.0.0.1:8428/api/v1/query?query=count(up\{job=\"alertmanager\"\}==1)' | "
+ "jq '.data.result[0].value[1]' | grep '\"1\"'"
)
victoriametrics.wait_until_succeeds(
vmserver.wait_until_succeeds(
"curl -sf 'http://127.0.0.1:8428/api/v1/query?query=sum(alertmanager_build_info)%20by%20(version)' | "
+ "jq '.data.result[0].metric.version' | grep '\"${pkgs.prometheus-alertmanager.version}\"'"
)
victoriametrics.wait_until_succeeds(
vmserver.wait_until_succeeds(
"curl -sf 'http://127.0.0.1:8428/api/v1/query?query=count(up\{job=\"node\"\}!=1)' | "
+ "jq '.data.result[0].value[1]' | grep '\"1\"'"
)
victoriametrics.wait_until_succeeds(
vmserver.wait_until_succeeds(
"curl -sf 'http://127.0.0.1:8428/api/v1/query?query=alertmanager_notifications_total\{integration=\"webhook\"\}' | "
+ "jq '.data.result[0].value[1]' | grep -v '\"0\"'"
)
@ -152,6 +152,6 @@
logger.log(logger.succeed("systemd-analyze security alertmanager-webhook-logger.service | grep -v ''"))
alertmanager.log(alertmanager.succeed("systemd-analyze security alertmanager.service | grep -v ''"))
alert.log(alert.succeed("systemd-analyze security alertmanager.service | grep -v ''"))
'';
}

View file

@ -1,6 +1,5 @@
{ pkgs, lib, ... }:
let
customSettings = {
pageInfo = {
title = "My Custom Dashy Title";
@ -45,29 +44,29 @@ in
}
];
};
nodes = {
machine = { };
containers = {
container = { };
machine-custom = {
custom = {
services.dashy.settings = customSettings;
};
};
testScript = ''
start_all()
machine.wait_for_unit("nginx.service")
machine.wait_for_open_port(80)
container.wait_for_unit("nginx.service")
container.wait_for_open_port(80)
actual = machine.succeed("curl -v --stderr - http://dashy.local/", timeout=10)
actual = container.succeed("curl -v --stderr - http://dashy.local/", timeout=10)
expected = "<title>Dashy</title>"
assert expected in actual, \
f"unexpected reply from Dashy, expected: '{expected}' got: '{actual}'"
machine_custom.wait_for_unit("nginx.service")
machine_custom.wait_for_open_port(80)
custom.wait_for_unit("nginx.service")
custom.wait_for_open_port(80)
actual_custom = machine_custom.succeed("curl -s --stderr - http://dashy.local/conf.yml", timeout=10).strip()
expected_custom = machine_custom.succeed("cat ${customSettingsYaml}").strip()
actual_custom = custom.succeed("curl -s --stderr - http://dashy.local/conf.yml", timeout=10).strip()
expected_custom = custom.succeed("cat ${customSettingsYaml}").strip()
assert expected_custom == actual_custom, \
f"unexpected reply from Dashy, expected: '{expected_custom}' got: '{actual_custom}'"

View file

@ -21,26 +21,26 @@ vscode-utils.buildVscodeMarketplaceExtension (finalAttrs: {
sources = {
"x86_64-linux" = {
arch = "linux-x64";
hash = "sha256-wlsp+GNwhobe7RW2RsBAiSyAjhzJ7w5r9U6LCCpiBA0=";
hash = "sha256-fgIxS3c3+teMTMCXzRINFuV1aebJAQFIXfXC7Q2zHhg=";
};
"aarch64-linux" = {
arch = "linux-arm64";
hash = "sha256-emj4el3Sy0bWMp+XaU96cS0rOP/b2kthmUHDpuhbinM=";
hash = "sha256-LdSx/7CspsT5hff6oQKRFmxQS+vi0kpvCgbcq8OQSAA=";
};
"x86_64-darwin" = {
arch = "darwin-x64";
hash = "sha256-zbfo97wQmyrN1QWbP/ZyAcJrYc5TbTge7WncLt+HOcg=";
hash = "sha256-ct7RcbzKHiZ/PRl42IFoHroR4i4gDVuHSX1t4FDN+R0=";
};
"aarch64-darwin" = {
arch = "darwin-arm64";
hash = "sha256-NScb6fr1OIr1jCo8Gdi71r84e2uT2mrO75JBVPFgdek=";
hash = "sha256-N/AeA4E0tSHH3lrPhuyqPDl5nE+aNK/ntsW4ai+Sf5s=";
};
};
in
{
name = "claude-code";
publisher = "anthropic";
version = "2.1.196";
version = "2.1.197";
}
// sources.${stdenvNoCC.hostPlatform.system}
or (throw "Unsupported system ${stdenvNoCC.hostPlatform.system}");

View file

@ -16,7 +16,7 @@ assert lib.versionAtLeast python3.version "3.5";
let
publisher = "vadimcn";
pname = "vscode-lldb";
version = "1.12.1";
version = "1.12.2";
vscodeExtUniqueId = "${publisher}.${pname}";
vscodeExtPublisher = publisher;
@ -26,7 +26,7 @@ let
owner = "vadimcn";
repo = "codelldb";
rev = "v${version}";
hash = "sha256-B8iCy4NXG7IzJVncbYm5VoAMfhMfxGF+HW7M5sVn5b0=";
hash = "sha256-7//+y02rfDloeNADpoM8tist7fPstBZ2Eqt4dM5dCaE=";
};
lldb = llvmPackages_19.lldb;
@ -181,7 +181,7 @@ stdenv.mkDerivation {
description = "Native debugger extension for VSCode based on LLDB";
homepage = "https://github.com/vadimcn/vscode-lldb";
license = [ lib.licenses.mit ];
maintainers = [ lib.maintainers.r4v3n6101 ];
maintainers = [ ];
platforms = lib.platforms.all;
};
}

View file

@ -480,13 +480,15 @@ let
# BUNDLE_WIDEVINE_CDM build flag does work in the way we want though.
# We also need enable_widevine_cdm_component to be false. Unfortunately it isn't exposed as gn
# flag (declare_args) so we simply hardcode it to false.
./patches/widevine-disable-auto-download-allow-bundle.patch
./patches/${lib.optionalString (chromiumVersionAtLeast "150") "chromium-150-"}widevine-disable-auto-download-allow-bundle.patch
]
++ [
++ lib.optionals (!chromiumVersionAtLeast "150") [
# Required to fix the build with a more recent wayland-protocols version
# (we currently package 1.26 in Nixpkgs while Chromium bundles 1.21):
# Source: https://bugs.chromium.org/p/angleproject/issues/detail?id=7582#c1
./patches/angle-wayland-include-protocol.patch
]
++ [
# Chromium reads initial_preferences from its own executable directory
# This patch modifies it to read /etc/chromium/initial_preferences
./patches/chromium-initial-prefs.patch
@ -504,11 +506,16 @@ let
# allowing us to use our rustc and our clang.
./patches/chromium-140-rust.patch
]
++ lib.optionals (chromiumVersionAtLeast "141") [
++ lib.optionals (versionRange "141" "150") [
# Rebased variant of the patch above due to
# https://chromium-review.googlesource.com/c/chromium/src/+/6897026
./patches/chromium-141-rust.patch
]
++ lib.optionals (chromiumVersionAtLeast "150") [
# Rebased variant of the patch above due to
# https://chromium-review.googlesource.com/c/chromium/src/+/7858711
./patches/chromium-150-rust.patch
]
++ lib.optionals (!chromiumVersionAtLeast "145" && stdenv.hostPlatform.isAarch64) [
# Reverts decommit pooled pages which causes random crashes of tabs on systems
# with page sizes different than 4k. It 'supports' runtime page sizes, but has
@ -676,6 +683,17 @@ let
revert = true;
hash = "sha256-7xg8IZ2gO+Wtnv7lWLVE3lLpcmMgvtDtcWwUuMBzkrE=";
})
]
++ lib.optionals (versionRange "150" "151") [
# ninja: Entering directory `out/Release'
# ninja: error: 'ar', needed by 'default_for_rust_host_build_tools/obj/build/rust/allocator/liballoc_error_handler_impl.a', missing and no known rule to make it
(fetchpatch {
name = "chromium-150-backport-build--Omit-ar-from-inputs-when-resolved-via--PATH.patch";
# https://chromium-review.googlesource.com/c/chromium/src/+/7904982
url = "https://chromium.googlesource.com/chromium/src/+/60f987d8d5f7272793a40290d060b8f50933f825^!?format=TEXT";
decode = "base64 -d";
hash = "sha256-MryWxSwBxSIONhl3X1cDxTWwNWy8a4yt/sqkrueSUNs=";
})
];
postPatch =
@ -910,6 +928,12 @@ let
# TODO: remove opt-out of https://chromium.googlesource.com/chromium/src/+/main/docs/modules.md
use_clang_modules = false;
}
// lib.optionalAttrs (chromiumVersionAtLeast "150") {
# ERROR at //build/modules/BUILD.gn:80:23: Directory does not exist: /usr/include/
# system_headers += expand_directory("${sysroot}/${root_include_dir}", true)
# ^------------------------------------------------------
use_unified_system_module = false;
}
// {
use_qt5 = false;
use_qt6 = false;
@ -986,24 +1010,34 @@ let
runHook postConfigure
'';
# Chromium expects nightly/bleeding edge rustc features to be available.
# Our rustc in nixpkgs follows stable, but since bootstrapping rustc requires
# nightly features too, we can (ab-)use RUSTC_BOOTSTRAP here as well to
# enable those features in our stable builds.
env.RUSTC_BOOTSTRAP = 1;
# Mute some warnings that are enabled by default. This is useful because
# our Clang is always older than Chromium's and the build logs have a size
# of approx. 25 MB without this option (and this saves e.g. 66 %).
env.NIX_CFLAGS_COMPILE =
"-Wno-unknown-warning-option -Wno-unused-command-line-argument -Wno-shadow"
# warning: '_LIBCPP_HARDENING_MODE' macro redefined [-Wmacro-redefined]
# because of hardeningDisable = [ "strictflexarrays1" ];
+ lib.optionalString (chromiumVersionAtLeast "149") " -Wno-macro-redefined";
env.BUILD_CC = "$CC_FOR_BUILD";
env.BUILD_CXX = "$CXX_FOR_BUILD";
env.BUILD_AR = "$AR_FOR_BUILD";
env.BUILD_NM = "$NM_FOR_BUILD";
env.BUILD_READELF = "$READELF_FOR_BUILD";
env = {
# Chromium expects nightly/bleeding edge rustc features to be available.
# Our rustc in nixpkgs follows stable, but since bootstrapping rustc requires
# nightly features too, we can (ab-)use RUSTC_BOOTSTRAP here as well to
# enable those features in our stable builds.
RUSTC_BOOTSTRAP = 1;
# Mute some warnings that are enabled by default. This is useful because
# our Clang is always older than Chromium's and the build logs have a size
# of approx. 25 MB without this option (and this saves e.g. 66 %).
NIX_CFLAGS_COMPILE =
"-Wno-unknown-warning-option -Wno-unused-command-line-argument -Wno-shadow"
# warning: '_LIBCPP_HARDENING_MODE' macro redefined [-Wmacro-redefined]
# because of hardeningDisable = [ "strictflexarrays1" ];
+ lib.optionalString (chromiumVersionAtLeast "149") " -Wno-macro-redefined";
BUILD_CC = "$CC_FOR_BUILD";
BUILD_CXX = "$CXX_FOR_BUILD";
BUILD_AR = "$AR_FOR_BUILD";
BUILD_NM = "$NM_FOR_BUILD";
BUILD_READELF = "$READELF_FOR_BUILD";
}
// lib.optionalAttrs (chromiumVersionAtLeast "150") {
# [56385/56385] LINK ./chrome
# FAILED: [code=1] chrome
# /nix/store/[...]/bin/ld.lld: line 288: /nix/store/[...]/bin/ld.lld: Argument list too long
NIX_LD_USE_RESPONSE_FILE = 1;
};
buildPhase =
let

View file

@ -43,7 +43,14 @@ class Repo:
)
deps_file = self.get_file("DEPS")
evaluated = gclient_eval.Parse(deps_file, vars_override=repo_vars, filename="DEPS")
evaluated = gclient_eval.Parse(
deps_file,
filename="DEPS",
vars_override=repo_vars,
# KeyError: "host_cpu was used as a variable, but was not declared in the vars dict (file 'DEPS', line 114)"
# https://chromium.googlesource.com/webpagereplay.git/+/b2b856131e36c99e9de9c419fe8ca02f857082ba/DEPS#114
builtin_vars= {"host_cpu": "*host_cpu_placeholder*"} if path == "src/third_party/webpagereplay" else None,
)
repo_vars = dict(evaluated.get("vars", {})) | repo_vars

View file

@ -1,6 +1,6 @@
{
"chromium": {
"version": "149.0.7827.200",
"version": "150.0.7871.46",
"chromedriver": {
"version": "149.0.7827.201",
"hash_darwin": "sha256-MHCcid+7wdYm8uIdrUIlXrk8ADHNUUXzPyMPFGP98WY=",
@ -8,21 +8,21 @@
},
"deps": {
"depot_tools": {
"rev": "45dedc4c3b87c982fd846b3dc599b233ed3aff90",
"hash": "sha256-Ttklyw6IdNeMExlzeiQg/qsCkTmqVhUJ34MFgYmCWD4="
"rev": "f4fadaf6a5ba1bced9d3d9021060667b563bf583",
"hash": "sha256-3atvbwYnFTA40MonAxSQWkF58Jku7O7fUzelGPQvDyY="
},
"gn": {
"version": "0-unstable-2026-05-01",
"rev": "1740f5c25bcac5a650ee3d1c1ec22bfa25fcd756",
"hash": "sha256-oFs7fZAZEs/gQ7X1A4uigo9+Y+iEN9sMMQYwAjEuD04="
"version": "0-unstable-2026-05-27",
"rev": "3357c4f51b1a9e676378c695dd9c7e9911c35ee6",
"hash": "sha256-/1A+DkzAQj2zGPe/A/G0Z3VrYJXUxq4Hd/+d/o5p3G8="
},
"npmHash": "sha256-pF0JtwFpPC4/fodbhSJnQKkczA9WlDg4VqEAy9aDVLg="
},
"DEPS": {
"src": {
"url": "https://chromium.googlesource.com/chromium/src.git",
"rev": "c35c164b1b6d1adca9eddf914ed6d0d0743dba6a",
"hash": "sha256-b2gBRUzRjqVZEb/tWUL1JF6Afq5gHJ3aOM02My1FyYU=",
"rev": "5b586c06e0d27582900f17e2d59c5370d8d6e0bb",
"hash": "sha256-OAZNyZtR5WFWW42r74RSy9fT7Eb7CNZwzoIHhuoqR28=",
"recompress": true
},
"src/third_party/clang-format/script": {
@ -32,13 +32,13 @@
},
"src/third_party/compiler-rt/src": {
"url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/compiler-rt.git",
"rev": "0408cce08083f3d81379ed7d9f5bd26c03e1495b",
"hash": "sha256-kR5osTmp2girvNRVHzEKMZDCelgux9RrRuMoXMCRSGM="
"rev": "03641f7a5b05e48e318d64369057db577cafc594",
"hash": "sha256-KnWESGG6aI0S+fkJ3/T1x4QSiIYaOOvWUAm6l6l9iME="
},
"src/third_party/libc++/src": {
"url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git",
"rev": "be1c391acca009d8d80535ce924e3d285451cdfa",
"hash": "sha256-zKb9PUiiBvhVhWnbQwR8uOFJ9gt3uYmfJ4M9ijpgKRc="
"rev": "5abc7f839700f0f17338434e1c1c6a8c87c00c11",
"hash": "sha256-vT1km7JgVpotDoNK+ae1gplSHcwrVNLsv/QAFUrDsIM="
},
"src/third_party/libc++abi/src": {
"url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git",
@ -47,13 +47,13 @@
},
"src/third_party/libunwind/src": {
"url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libunwind.git",
"rev": "71192be150bbe04d87bb5298512d464e38d2f654",
"hash": "sha256-PxXemxdWZoEavKDOovi67IVWEr2YW8YK2F0LXM3LZPw="
"rev": "d6c7a21e978f0adaa43accaad53bc64f0b64f6ec",
"hash": "sha256-EuaVSYiR7qrlYqBR0UqdWCvwdzJSn0RS2wC/lnP19AE="
},
"src/third_party/llvm-libc/src": {
"url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libc.git",
"rev": "deb95b5e48e875920a2eaae799c8dbcd76a6a4db",
"hash": "sha256-oAgIT3+vjBrX86jgi/Pb0SCyco0lozjBjXlrKm6i56M="
"rev": "6e5ec6f78d8b9f2e8a50fcc5692d1fc8b2964bde",
"hash": "sha256-qrkx8Z1fc088Ja32obIUPxDwklI7i1wdEw051UZ08u8="
},
"src/chrome/test/data/perf/canvas_bench": {
"url": "https://chromium.googlesource.com/chromium/canvas_bench.git",
@ -72,8 +72,8 @@
},
"src/docs/website": {
"url": "https://chromium.googlesource.com/website.git",
"rev": "c9a9ad55e9ec9934244e58a5a8cab9a295526010",
"hash": "sha256-2GKWEnlExrTzoIYMxeP4n2klLLT/phB5ZVJ5Nj3/aoY="
"rev": "3da515a67f412be05ea1ea6b39832a69aef8f54e",
"hash": "sha256-wrkFsPX7jrsjD/Ow1gna/xLvk0E49m5GVxP1G7Vx7HM="
},
"src/media/cdm/api": {
"url": "https://chromium.googlesource.com/chromium/cdm.git",
@ -82,8 +82,8 @@
},
"src/net/third_party/quiche/src": {
"url": "https://quiche.googlesource.com/quiche.git",
"rev": "fafc2fe9efc9f2e28a0815229fc14ca30c266ba8",
"hash": "sha256-4UmjE41MOFCBa3APDMyyJwkeV6LhHl5UsMxZpPRDsRY="
"rev": "997d654308b6a1a17435e472ef5190aecb12e3eb",
"hash": "sha256-xgDgW2foZZEWpr0ibSG21kf028FN07/1ecOqFCkNj/I="
},
"src/testing/libfuzzer/fuzzers/wasm_corpus": {
"url": "https://chromium.googlesource.com/v8/fuzzer_wasm_corpus.git",
@ -92,8 +92,8 @@
},
"src/third_party/angle": {
"url": "https://chromium.googlesource.com/angle/angle.git",
"rev": "355cc61af2aadd8f0494800325b2bf9908138108",
"hash": "sha256-fgaCyO0oaz90aTaWMHH8ocySA0hXDHsPEl6vtMj4BY0="
"rev": "bbf3d8a4755268f016087be2f56099fa5a5f3f6e",
"hash": "sha256-8iuHtNgHumlMXeXj2k0ZPcvnTeJ00di298+789OjScs="
},
"src/third_party/angle/third_party/glmark2/src": {
"url": "https://chromium.googlesource.com/external/github.com/glmark2/glmark2",
@ -107,13 +107,18 @@
},
"src/third_party/angle/third_party/VK-GL-CTS/src": {
"url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS",
"rev": "3fe33a325af90c1c820b1e8109f11ea0f4b60c9b",
"hash": "sha256-JgOdlwtjC5HiCWBAaeM+Ffp9KlbI7+erT0ZRZBlWxXI="
"rev": "01471f4b3846c97eceb5b16b8acad950808791b2",
"hash": "sha256-SrL+G3osTtJGQslfCBEYbslb2kWtHRrwO87PHi+5o6E="
},
"src/third_party/anonymous_tokens/src": {
"url": "https://chromium.googlesource.com/external/github.com/google/anonymous-tokens.git",
"rev": "208ea23596884f6d86476ea88b64e7931cdec08a",
"hash": "sha256-HLUX0mUzA3xcXbw71sIxFBNEkL8x86urcdJH2Yuuy04="
"rev": "92d1fdf881a932e7aa2a9b20e006136a659c7a20",
"hash": "sha256-llPt+UR8hY0yaJkYmq+A3ZfRRReuaXN09qpap6C28jc="
},
"src/third_party/aria-practices/src": {
"url": "https://chromium.googlesource.com/external/github.com/w3c/aria-practices.git",
"rev": "7b134ce6d19497cce8a67db4a9f59980baf853dc",
"hash": "sha256-POnvoO1KfzJj4CbcMPI0pUTRk5EtHLTOyKKmJCZdXOc="
},
"src/third_party/readability/src": {
"url": "https://chromium.googlesource.com/external/github.com/mozilla/readability.git",
@ -127,13 +132,13 @@
},
"src/third_party/dav1d/libdav1d": {
"url": "https://chromium.googlesource.com/external/github.com/videolan/dav1d.git",
"rev": "5cfc3832687e3229117203905faf5425ac6bc0d7",
"hash": "sha256-MWDDrb8P5AIFszY0u5gCrK+kZlbYffIt9Y1b/thXL7I="
"rev": "62501cc7db378532d7e85ea434b70d57e1ba2cb0",
"hash": "sha256-5cpKTUnhR+QzQJR4KbAvdvqsWnT1fpH0g9MObv8Nx0c="
},
"src/third_party/dawn": {
"url": "https://dawn.googlesource.com/dawn.git",
"rev": "54b4153cfef88e048f365f99b962478f0087dfe8",
"hash": "sha256-Bv30zz/pCNVzUl+mKCpusWc94poytv9ZFelZIcs+2B8="
"rev": "01249a97332468dbdd6cf5edb8dd7bae77875de5",
"hash": "sha256-tzomo+GTec2zixxk61gtlma/sjcBImgbLMwA+mIp1LM="
},
"src/third_party/dawn/third_party/glfw3/src": {
"url": "https://chromium.googlesource.com/external/github.com/glfw/glfw",
@ -142,8 +147,8 @@
},
"src/third_party/dawn/third_party/directx-shader-compiler/src": {
"url": "https://chromium.googlesource.com/external/github.com/microsoft/DirectXShaderCompiler",
"rev": "d73829d4e677ef00931e8e57de6d544396ab46cb",
"hash": "sha256-BIXNgVeF5x3BZWFWZ1Gz+zpNSOEl+hZWB0GgMEaNS2w="
"rev": "35c1b99e9e552267da5efaea07c003e322d65777",
"hash": "sha256-pzBk+jUp/FUV8ahHquE0942Qw/DjAUemSM9fxdFJ0JA="
},
"src/third_party/dawn/third_party/directx-headers/src": {
"url": "https://chromium.googlesource.com/external/github.com/microsoft/DirectX-Headers",
@ -152,8 +157,8 @@
},
"src/third_party/dawn/third_party/OpenGL-Registry/src": {
"url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/OpenGL-Registry",
"rev": "9cb90ca4902d588bef3c830fbb1da484893bd5fb",
"hash": "sha256-mWVORjrbNFINr5WKAIDVnPs2T+96vkxWqZdJwp8oT9I="
"rev": "a30033d3e812c9bf10094f1010374a6b15e192eb",
"hash": "sha256-xLacUOSy783bCtv+wUnjVnNLwTQ3eLwUJtYXmELqekY="
},
"src/third_party/dawn/third_party/EGL-Registry/src": {
"url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/EGL-Registry",
@ -162,8 +167,8 @@
},
"src/third_party/dawn/third_party/webgpu-cts": {
"url": "https://chromium.googlesource.com/external/github.com/gpuweb/cts",
"rev": "5c6b119c4fa0d9059c45f7637df1fe26fc80a6e4",
"hash": "sha256-9DAdS2u2YtrCFJu0KTuwRJjTUNexFxdmnn7LkwQ+KiQ="
"rev": "f08551b0fc4d6cfa5ba582a0235b571aa363102d",
"hash": "sha256-f5kWMnaod/Ved1Fz/vTkdL0ihSUnNM8XN5Ht3Vs1YpU="
},
"src/third_party/dawn/third_party/webgpu-headers/src": {
"url": "https://chromium.googlesource.com/external/github.com/webgpu-native/webgpu-headers",
@ -187,8 +192,8 @@
},
"src/third_party/boringssl/src": {
"url": "https://boringssl.googlesource.com/boringssl.git",
"rev": "65818adf16411ca394625f5747a1af28faf95d2c",
"hash": "sha256-tcTTzQnBp8Od1jdDMrFoCr9bnW0OCjGqUjH3QMnusmo="
"rev": "3a9254f16eda7a4c5d2260039ff23456a0a34de4",
"hash": "sha256-JuMnNppWhIFHYfk6ANIZLC7ABhqMseoV5LYV7slevBE="
},
"src/third_party/breakpad/breakpad": {
"url": "https://chromium.googlesource.com/breakpad/breakpad.git",
@ -202,13 +207,8 @@
},
"src/third_party/catapult": {
"url": "https://chromium.googlesource.com/catapult.git",
"rev": "6e4188cabb4f37314ea41e9adfcb2cf9b64e2641",
"hash": "sha256-/kleYYllR22KjxHT2gTMGf6LEUZ1Ud7j593fIIAgqAA="
},
"src/third_party/catapult/third_party/webpagereplay": {
"url": "https://chromium.googlesource.com/webpagereplay.git",
"rev": "b7ac48f52cd298e966a76eb054412915c3e445d4",
"hash": "sha256-smtwB6vzLgCAePz0jNfrpm8TxrxBnBkigLxERhxUEvE="
"rev": "2852bb7e91e4995502ffb72b7ed21412ee157914",
"hash": "sha256-XYufVvzOXD4voZUWUvumQQqLNsx9sy0QmQzNzrgNEWg="
},
"src/third_party/ced/src": {
"url": "https://chromium.googlesource.com/external/github.com/google/compact_enc_det.git",
@ -227,13 +227,13 @@
},
"src/third_party/cpu_features/src": {
"url": "https://chromium.googlesource.com/external/github.com/google/cpu_features.git",
"rev": "d3b2440fcfc25fe8e6d0d4a85f06d68e98312f5b",
"hash": "sha256-IBJc1sHHh4G3oTzQm1RAHHahsEECC+BDl14DHJ8M1Ys="
"rev": "81d13c49649f0714dd41fb56bb246398b6584085",
"hash": "sha256-TrC1WMLAhko57rAyDCiAC/IJ0unAqVhyjkh7gKibyi4="
},
"src/third_party/cpuinfo/src": {
"url": "https://chromium.googlesource.com/external/github.com/pytorch/cpuinfo.git",
"rev": "3681f0ce1446167d01dfe125d6db96ba2ac31c3c",
"hash": "sha256-PhWbzQgZSUb3eVyx+JTSnxVOAC2WzL2Dw1I9/6LEIsw="
"rev": "ea6b9f1bb6e1001d8b21574d5bc78ddef62e499d",
"hash": "sha256-/QsOjDik0TnH3FnK7LOwsJkvX+O+2DRFX4eF3MxD3fc="
},
"src/third_party/crc32c/src": {
"url": "https://chromium.googlesource.com/external/github.com/google/crc32c.git",
@ -242,28 +242,28 @@
},
"src/third_party/cros_system_api": {
"url": "https://chromium.googlesource.com/chromiumos/platform2/system_api.git",
"rev": "7ecd2b41460516ecd7b7d6e5c298db25e1436b6f",
"hash": "sha256-ehbAXv4DZStWDMC3iOjmWkAc4PhAamyI4C9bdXO7FfA="
"rev": "1c69e700a01a7fd3dd331f526c8a31ac1e5e49d0",
"hash": "sha256-qIwUs0KVU9xYFLN3UUayPLfz0ObA+EN6owKPW61J/5w="
},
"src/third_party/crossbench": {
"url": "https://chromium.googlesource.com/crossbench.git",
"rev": "cecd70a5f49f777f603d38d11ac1f66c03c3e8af",
"hash": "sha256-zLwIY8fQVebkfN4KFMbitZODhmiN65JK2s9IG/5Cd+o="
"rev": "7d52b4ffbc319a7d5a0e0a0ebff744e5281d60c5",
"hash": "sha256-iwwvvIOuRMo/ZEu8Gk0lZaS4P5uGt8zpnYMChpZPcUo="
},
"src/third_party/crossbench-web-tests": {
"url": "https://chromium.googlesource.com/chromium/web-tests.git",
"rev": "baf176aadedccc44329231d5dd40346874c2a63e",
"hash": "sha256-oY1/uGB6ykePIklWe35rmJWsnpu/wjkER4TJeP4TTdw="
"rev": "7b3de17542cc613aaddbfc72c6e12be37eed7b73",
"hash": "sha256-7ly4vaK+Pj4y91t6Q+igQ0890CqKyu9jNBhJnxbNGjI="
},
"src/third_party/depot_tools": {
"url": "https://chromium.googlesource.com/chromium/tools/depot_tools.git",
"rev": "45dedc4c3b87c982fd846b3dc599b233ed3aff90",
"hash": "sha256-Ttklyw6IdNeMExlzeiQg/qsCkTmqVhUJ34MFgYmCWD4="
"rev": "f4fadaf6a5ba1bced9d3d9021060667b563bf583",
"hash": "sha256-3atvbwYnFTA40MonAxSQWkF58Jku7O7fUzelGPQvDyY="
},
"src/third_party/devtools-frontend/src": {
"url": "https://chromium.googlesource.com/devtools/devtools-frontend",
"rev": "33c2f401a9c8ddad2159eb0ab83aa244a5247361",
"hash": "sha256-M9aULI+HECgA0ptAG47OPK0QuB+xzmb29iOtJ3whpB0="
"rev": "1d67dc0dafa344bbd6ca75c124e2d6d9d53074d8",
"hash": "sha256-VBXch2YwnKm+lMcZ5L0SlW+vAYeaSwgZvcOhg1TE5/A="
},
"src/third_party/dom_distiller_js/dist": {
"url": "https://chromium.googlesource.com/chromium/dom-distiller/dist.git",
@ -277,8 +277,8 @@
},
"src/third_party/eigen3/src": {
"url": "https://chromium.googlesource.com/external/gitlab.com/libeigen/eigen.git",
"rev": "2cf9891537250255f50df5109ffe9e700e2a73de",
"hash": "sha256-1bu1Y9itHIKcwY5J0sF08DSyfElLHiZ6SRsNZkFjz8o="
"rev": "662ba79d796a2851b10cdafc6668e45b65b1120f",
"hash": "sha256-6bZFDeo7TqWNunkkQv8OJ+7/hfKwoIUtqZoXaeLp6M8="
},
"src/third_party/farmhash/src": {
"url": "https://chromium.googlesource.com/external/github.com/google/farmhash.git",
@ -287,18 +287,18 @@
},
"src/third_party/fast_float/src": {
"url": "https://chromium.googlesource.com/external/github.com/fastfloat/fast_float.git",
"rev": "05087a303dad9c98768b33c829d398223a649bc6",
"hash": "sha256-ZQm8kDMYdwjKugc2vBG5mwTqXa01u6hODQc/Tai2I9A="
"rev": "cfd12ebcf1f82c4fd44a950b1815dd0549bc8d89",
"hash": "sha256-hzoB+Mmok3oe6B494uLc5ReWpUcB89zCGPYw4gvanK0="
},
"src/third_party/federated_compute/src": {
"url": "https://chromium.googlesource.com/external/github.com/google-parfait/federated-compute.git",
"rev": "3112513bf1a80872311e7718c5385f535a819b89",
"hash": "sha256-jnG3PCxjaYcClRgzOfIkHbbD3xU9TDLyQR3VZUwHIgU="
"rev": "8de5837b817f28abc54a387a9417631b905ba90a",
"hash": "sha256-GZYo0FjgW8XCplAi6jzzruwDlIzsWjNEVQuCwXBCPz8="
},
"src/third_party/ffmpeg": {
"url": "https://chromium.googlesource.com/chromium/third_party/ffmpeg.git",
"rev": "f45bab87ce4c5fafc67fd53fcde777578d01bfa0",
"hash": "sha256-fsZSqmG6vFOPJYuBgG6OSWkzRu27B3mv/PqAP8s4ARk="
"rev": "ad41607c61898cf7150e0fb20fe4bbabd44922a3",
"hash": "sha256-41qpsOTedB51WMzzHXDiXA19OIzA7wG/Qgbz6IkmWpk="
},
"src/third_party/flac": {
"url": "https://chromium.googlesource.com/chromium/deps/flac.git",
@ -327,8 +327,8 @@
},
"src/third_party/freetype/src": {
"url": "https://chromium.googlesource.com/chromium/src/third_party/freetype2.git",
"rev": "b6bcd2177f72bb4842c7701d7b7f633bb3fc951a",
"hash": "sha256-TUz3yUD9HxqUMCOpLk74rEf8J0tMTh4ZCuD94AD4+q4="
"rev": "b08a2eb0dd37f4a6c886fa5b0ecf5b3e1d27aac7",
"hash": "sha256-xnYeUAJx5n8LSg04AknfiudonfmlUdlj8nzHzSZi65I="
},
"src/third_party/fxdiv/src": {
"url": "https://chromium.googlesource.com/external/github.com/Maratyszcza/FXdiv.git",
@ -337,13 +337,13 @@
},
"src/third_party/harfbuzz/src": {
"url": "https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git",
"rev": "e6741e2205309752839da60ff075b7fa2e7cddd3",
"hash": "sha256-XjUuY17fcZi+dIZFojq+eDsDVrBxtAWRydPdudt56+8="
"rev": "d639197ed529b05c27f38ebaab365a621d5edad5",
"hash": "sha256-uT4zK2hwHzEH6Nrd2rAeyzpQA1TmwtrdcujKYEUbLsY="
},
"src/third_party/ink/src": {
"url": "https://chromium.googlesource.com/external/github.com/google/ink.git",
"rev": "a988417b6d0b1ea03fb0b40269fbc42313acc6fd",
"hash": "sha256-6O+N/ULn8sqsdgFw7VZ7TMjWvCAZbYo398PruPScU/k="
"rev": "0f9c6172b2ccc6b830ae313d522caf09e6933e06",
"hash": "sha256-LF+OcqNeg+KRuYmGuMZb4tmnr53sZHn/ZW1jg9ArPfc="
},
"src/third_party/instrumented_libs": {
"url": "https://chromium.googlesource.com/chromium/third_party/instrumented_libraries.git",
@ -367,8 +367,8 @@
},
"src/third_party/libgav1/src": {
"url": "https://chromium.googlesource.com/codecs/libgav1.git",
"rev": "40f58ed32ff39071c3f2a51056dbc49a070af0dc",
"hash": "sha256-gisU0p0HDL7Po/ZXIIZVOTnxnOuVvSE/FYo9DaEUFfo="
"rev": "66ac17620652635392f6ab24065c77b035e281c9",
"hash": "sha256-6/zMaX2DPSKpsaqirhrgi3nL/88Qr2VXacmyL5IyJ3U="
},
"src/third_party/googletest/src": {
"url": "https://chromium.googlesource.com/external/github.com/google/googletest.git",
@ -392,8 +392,8 @@
},
"src/third_party/jsoncpp/source": {
"url": "https://chromium.googlesource.com/external/github.com/open-source-parsers/jsoncpp.git",
"rev": "42e892d96e47b1f6e29844cc705e148ec4856448",
"hash": "sha256-bSLNcoYBz3QCt5VuTR056V9mU2PmBuYBa0W6hFg2m8Q="
"rev": "d4d072177213b117fb81d4cfda140de090616161",
"hash": "sha256-q+DOwkjRlHacgfWf5UVY02aqfnKK9M/1YRBX6aMce9g="
},
"src/third_party/leveldatabase/src": {
"url": "https://chromium.googlesource.com/external/leveldb.git",
@ -407,8 +407,8 @@
},
"src/third_party/fuzztest/src": {
"url": "https://chromium.googlesource.com/external/github.com/google/fuzztest.git",
"rev": "e24a91020ab19c3d6f590bd0911b7acb492f81be",
"hash": "sha256-wFjuvJzGEaal+pIo5UtkdLHYTpoWxRE6Vf5OGLObGQk="
"rev": "da27bcae1a8902af1ae6a5c55d3674f22709bbf5",
"hash": "sha256-317zRhJPc0D9A58W8fdCGFmpNZ5vACfd/tlZOsp/Cvw="
},
"src/third_party/domato/src": {
"url": "https://chromium.googlesource.com/external/github.com/googleprojectzero/domato.git",
@ -417,18 +417,18 @@
},
"src/third_party/libaddressinput/src": {
"url": "https://chromium.googlesource.com/external/libaddressinput.git",
"rev": "e20690c8d5178bb282641d5eb06ef0298ff4cbc5",
"hash": "sha256-rX7LQNUgk5ZljUrayD1a/SUrBrvpomW0Cs0KBw3lYu4="
"rev": "81eb9628382b07d371d8ea0b11badf7de3857fd5",
"hash": "sha256-6yDZpZ+CwxGqNO4+lZLFB6ESREeVku1BoOMtR+hKQ3I="
},
"src/third_party/libaom/source/libaom": {
"url": "https://aomedia.googlesource.com/aom.git",
"rev": "33dba9e12a9f12e737eaa7c2624e8c580950a89a",
"hash": "sha256-01DbV0kQFg1yyFpVeo82KBoZHhizA7xnZ1qOuu4HTcs="
"rev": "137bcff61e73fdd2836dc04e8258bfb49cef595e",
"hash": "sha256-oDubKvgqMk3w0luM//rR3NnCOk1h/WVTyRkuCmYASrw="
},
"src/third_party/crabbyavif/src": {
"url": "https://chromium.googlesource.com/external/github.com/webmproject/CrabbyAvif.git",
"rev": "c433c9a32320aed983e4106931596fbbae3f77ee",
"hash": "sha256-yw1cXB6s6biD2vj2K/3sVbKiaNK7bt+NkbQovbYlJ2Q="
"rev": "5e140b5abb9a91eb25b5ef66d29f6ee784ab7eab",
"hash": "sha256-tN+2YH2O9FTV50o4OVhKcKdwRwTI8NuNA0WqljUcrmo="
},
"src/third_party/nearby/src": {
"url": "https://chromium.googlesource.com/external/github.com/google/nearby-connections.git",
@ -442,8 +442,8 @@
},
"src/third_party/jetstream/main": {
"url": "https://chromium.googlesource.com/external/github.com/WebKit/JetStream.git",
"rev": "de88e36ae91d5bd13126fa4cc4b0e0346d779842",
"hash": "sha256-ZpU0ONqIVmY2VR0MxqtYj8KPNlK0L21gLJuT/Ff7KI8="
"rev": "b7babdf323e64e69bd2f6c376189c15825f5c73a",
"hash": "sha256-s6UMdUYWZqk/MbhyCi2zdQNgni98gGsYxcuUh/5AUy0="
},
"src/third_party/jetstream/v2.2": {
"url": "https://chromium.googlesource.com/external/github.com/WebKit/JetStream.git",
@ -482,8 +482,8 @@
},
"src/third_party/cros-components/src": {
"url": "https://chromium.googlesource.com/external/google3/cros_components.git",
"rev": "e580888fcc1c108e25c218ccf8b7a4372de18d57",
"hash": "sha256-p0Wfvhg/j8v9xL9Pueo7xPVHBKowOLI00AeIZXPQw4k="
"rev": "0abb2efaa3d16db861c9710b193c39e657ac3bdf",
"hash": "sha256-viuntf6umyLZwDR9BXG+ZOakp9f8rvpZYDBYAUkKzL4="
},
"src/third_party/libdrm/src": {
"url": "https://chromium.googlesource.com/chromiumos/third_party/libdrm.git",
@ -492,8 +492,8 @@
},
"src/third_party/expat/src": {
"url": "https://chromium.googlesource.com/external/github.com/libexpat/libexpat.git",
"rev": "f31adfd584b7f6c50bbf4d22eb928538ffc9145a",
"hash": "sha256-tLz4RejYQ/kFXhsWTduuGcinfUkqxYKPCpsou+WlvBc="
"rev": "9bdfbc77e3355405ceefbe59420abed953a5657e",
"hash": "sha256-veGg5/QjtBSmxYa8IyHF0NxEdJzlcJSZfzw8ay3ASVU="
},
"src/third_party/libipp/libipp": {
"url": "https://chromium.googlesource.com/chromiumos/platform2/libipp.git",
@ -502,8 +502,8 @@
},
"src/third_party/libjpeg_turbo": {
"url": "https://chromium.googlesource.com/chromium/deps/libjpeg_turbo.git",
"rev": "d1f5f2393e0d51f840207342ae86e55a86443288",
"hash": "sha256-KGeB/lTjhm8DQBDZVSPENvZEGSHeLTkviJrYsFh5vEM="
"rev": "640f254ad0fa03f6b1f29f89b7dd9366f2f6e533",
"hash": "sha256-wor4RTF3/5BFL9EWcGEofY+M4HN2+/KJUaOY+u86K5Q="
},
"src/third_party/liblouis/src": {
"url": "https://chromium.googlesource.com/external/liblouis-github.git",
@ -512,8 +512,8 @@
},
"src/third_party/libphonenumber/src": {
"url": "https://chromium.googlesource.com/external/libphonenumber.git",
"rev": "ade546d8856475d0493863ee270eb3be9628106b",
"hash": "sha256-cLtsM35Ir3iG3j8+Cy2McL1ysRB0Y1PXealAKl05Twg="
"rev": "c25558e39e2bcc9f26f7a2a1ef804324169eaf8f",
"hash": "sha256-Lr/gB5Em+TE092McPwJdOU0Ab4zyP4/2ZxlavMZMm+s="
},
"src/third_party/libprotobuf-mutator/src": {
"url": "https://chromium.googlesource.com/external/github.com/google/libprotobuf-mutator.git",
@ -537,8 +537,8 @@
},
"src/third_party/libvpx/source/libvpx": {
"url": "https://chromium.googlesource.com/webm/libvpx.git",
"rev": "d1268a5f3f3553ad7735911c614e8548381ca3cd",
"hash": "sha256-6IZTDhtjVWiqTv+jUC6Wr/tSqvql3thi9+mt+M3ixt4="
"rev": "5f00413667d19ad683674524a9d03543d86d188b",
"hash": "sha256-uTteQ+z7t5KOtPuBoZazmonRHd8jGS1/YZAq+RAvhX4="
},
"src/third_party/libwebm/source": {
"url": "https://chromium.googlesource.com/webm/libwebm.git",
@ -552,8 +552,8 @@
},
"src/third_party/libyuv": {
"url": "https://chromium.googlesource.com/libyuv/libyuv.git",
"rev": "644251f252a84bf8ce91ff0aca86a9b16b069ab8",
"hash": "sha256-DsoOY8bg0sPOF8tF67Gk7fRqdQzG1hc9fVMlZVjKWU4="
"rev": "3c5fa6ef272f6077d76816ee3d6a697ef1d6d272",
"hash": "sha256-FXFSC9dRb/KhSQdhJUqKEUpZbzU8ZpVnoSXtF/HPiJI="
},
"src/third_party/lss": {
"url": "https://chromium.googlesource.com/linux-syscall-support.git",
@ -572,8 +572,8 @@
},
"src/third_party/nasm": {
"url": "https://chromium.googlesource.com/chromium/deps/nasm.git",
"rev": "358842b6b7dd69b2ed635bef17f941e030a05e5f",
"hash": "sha256-YwjwubijMZ9OvYeMUVMSunWZ2VCuqUFEOyv/MK/oojc="
"rev": "525a09a813be0f75b646ee93fc2a31c27b87d722",
"hash": "sha256-uC6bGxSdz1V2SXIQjMsDd6555b3gAPN1Y0ZQtWoqDww="
},
"src/third_party/neon_2_sse/src": {
"url": "https://chromium.googlesource.com/external/github.com/intel/ARM_NEON_2_x86_SSE.git",
@ -587,8 +587,8 @@
},
"src/third_party/openscreen/src": {
"url": "https://chromium.googlesource.com/openscreen",
"rev": "684bcd767271a21f3e5d475b17a0fd862f16c65e",
"hash": "sha256-Yjz2E1/h+zp7L2x0zE0l+ktQIiSrJ4ZknXOhaVPKQVE="
"rev": "37ff938a93cb04c6b77e019b52328c8e9b320317",
"hash": "sha256-M57un/TVQPfTnKScVHS1VK1cUs8F/YPT3TwMVdo+mhM="
},
"src/third_party/openscreen/src/buildtools": {
"url": "https://chromium.googlesource.com/chromium/src/buildtools",
@ -602,13 +602,13 @@
},
"src/third_party/pdfium": {
"url": "https://pdfium.googlesource.com/pdfium.git",
"rev": "be702d63baba7507bb1f6f6ff2d35be9c133c08c",
"hash": "sha256-hXqSJn1C0ISLWx68UicggiL8xzgQX2Y8l75vtpJgHeU="
"rev": "c052afb72a08d79a26bcf3103d11f344981b09f1",
"hash": "sha256-zqfErp0pDXHXIvRpZ1TJu2UGXNZjATRbPgQWTniKTJs="
},
"src/third_party/perfetto": {
"url": "https://chromium.googlesource.com/external/github.com/google/perfetto.git",
"rev": "97c58a94bb6495c4e202467fb1c55eaa22b5670f",
"hash": "sha256-qtClkWAluLDRZn7yrHLU7qp9szP+/WsiG5JZZzRKd38="
"rev": "9ede949f025303868fa0c42418f122ac47312539",
"hash": "sha256-IRzEqgunO4Nfz+FkYir8G/Ht+Zsn6wpzncgkEFpsC+k="
},
"src/third_party/protobuf-javascript/src": {
"url": "https://chromium.googlesource.com/external/github.com/protocolbuffers/protobuf-javascript",
@ -617,8 +617,8 @@
},
"src/third_party/pthreadpool/src": {
"url": "https://chromium.googlesource.com/external/github.com/google/pthreadpool.git",
"rev": "a56dcd79c699366e7ac6466792c3025883ff7704",
"hash": "sha256-WfyuPfII4eSmLskZV0TAcu4K6OyW38TjkDHm+VUx5eY="
"rev": "02460584c6092e527c8b89f7df4de143d70e801f",
"hash": "sha256-4EHJzZT+Gbhs8SkOhjSvDIPEqIQU93oJmtF3c/T+qjw="
},
"src/third_party/pyelftools": {
"url": "https://chromium.googlesource.com/chromiumos/third_party/pyelftools.git",
@ -647,13 +647,18 @@
},
"src/third_party/search_engines_data/resources": {
"url": "https://chromium.googlesource.com/external/search_engines_data.git",
"rev": "2345fee6ce4ae24d9c365d5c0884ece593c55c67",
"hash": "sha256-5qkra6FURaMvEOk+ZKMRH1hc8ixEnk3u4rxNm0G8tuQ="
"rev": "1aab872af8d44dcf59362d7ba8255922f74fafde",
"hash": "sha256-5/XnNx6Pyk4KBb9krVo9u6i7LWNrsLLOIi4qhEY2PZc="
},
"src/third_party/sframe/src": {
"url": "https://chromium.googlesource.com/external/github.com/cisco/sframe",
"rev": "b14090904433bed0d4ec3f875b9b39f3e0555930",
"hash": "sha256-bw+6ycUpnFZJhtXFUzr7XTOljNrs+7oFdVY+LN0Rqek="
},
"src/third_party/skia": {
"url": "https://skia.googlesource.com/skia.git",
"rev": "75c589e1f436688fca8f5b7f7a8affeafaa4f923",
"hash": "sha256-x0jEek7iJv7WBNdkOUPc5VvIYJw9QPzzTChFUofqErM="
"rev": "14d05ec761901b6e9e9193af8b347ab3a7f6fed0",
"hash": "sha256-KZGrztOKaT368KSCxiJAqnsgINpNODUlaXnH/maQNIA="
},
"src/third_party/smhasher/src": {
"url": "https://chromium.googlesource.com/external/smhasher.git",
@ -667,13 +672,13 @@
},
"src/third_party/sqlite/src": {
"url": "https://chromium.googlesource.com/chromium/deps/sqlite.git",
"rev": "508ab21dc25702ed6690c4dd77da209a6bcd1239",
"hash": "sha256-SfvLfBKdPjFvZ7CzUeFMcyoHdCzQgNRQwZyzb6MRtJg="
"rev": "fc121d7d03cd6cbf499ec06a5112b263471b1181",
"hash": "sha256-hf9PxQhXEKT49GbkFYCvRPBT0Qu+hDnDpebI92yO1Oo="
},
"src/third_party/swiftshader": {
"url": "https://swiftshader.googlesource.com/SwiftShader.git",
"rev": "f9d5d49a3c599a315e3493dc1e9b5309cffb3305",
"hash": "sha256-kBfqgXXJeEPT80mu6CJ2Bwmdv/y8jVzM6TedMXbzo4o="
"rev": "fce27a96526f54c6d31fdccf57629788e3712220",
"hash": "sha256-bmXZLpz3wv7eQWoqTjZmjwnnILWSIjZ8iqo8CeLk5fw="
},
"src/third_party/text-fragments-polyfill/src": {
"url": "https://chromium.googlesource.com/external/github.com/GoogleChromeLabs/text-fragments-polyfill.git",
@ -682,23 +687,23 @@
},
"src/third_party/tflite/src": {
"url": "https://chromium.googlesource.com/external/github.com/tensorflow/tensorflow.git",
"rev": "2216f531fb72119745382c62f232acf9790f4b6e",
"hash": "sha256-zySLNPmug5HS5pwJ/lEMAWjjZSOuxdTgup7Y90k7NZI="
"rev": "999d49c10046e240cd5366d349d3a5f6af16a0d4",
"hash": "sha256-eSqaWXtzZ4Bi9ilaJYGdZamzUjmo+AtDZ9KeZhsc/fY="
},
"src/third_party/litert/src": {
"url": "https://chromium.googlesource.com/external/github.com/google-ai-edge/LiteRT.git",
"rev": "9b5418dd7a1a318eed20395743dcc868df17d8b0",
"hash": "sha256-80amwDPF3RrcoTaTQsunNmlvBGs6KCv369FW3J/Xcts="
"rev": "09b4b05203fd7a9402ffcce9cc736d887ff7e3fc",
"hash": "sha256-skMOzpsn67mmOAp7Mf6UrJdi2lbiQQ8b6kBy4Ik2ED8="
},
"src/third_party/vulkan-deps": {
"url": "https://chromium.googlesource.com/vulkan-deps",
"rev": "d234b7b29748c07ef389279dd24f533ebd04cadc",
"hash": "sha256-w49HOjPixSI/C5IGlxQMj/Ol9f/Lr2zI2oMhQzzu1zk="
"rev": "669a28b1f31f89bfc46b74791f127bcc5e5b2f06",
"hash": "sha256-lsR+sh+XQP/wKgkBbie6Gp+kQNFnnC8TeNWpiWTdevw="
},
"src/third_party/glslang/src": {
"url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang",
"rev": "458ff50a67cb69371850068a62b78f1990a1ff9a",
"hash": "sha256-2WauVjAEeZn16b4fE4ImKPX3wjDmeN92mqWi3NMiXSw="
"rev": "f6d9303ddaf2e879b9155f7186cd234f5a79079c",
"hash": "sha256-ru3QVyyyqxZRcvSpy9pYhHHhkjuLVhQbgOT/vQJ/oIw="
},
"src/third_party/spirv-cross/src": {
"url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross",
@ -707,43 +712,43 @@
},
"src/third_party/spirv-headers/src": {
"url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers",
"rev": "126038020c2bd47efaa942ccc364ca5353ffccde",
"hash": "sha256-QBX2M+ZSWgVvCx58NeDIdf6mIkdJbecDktBfUWGPvNc="
"rev": "1e770e7de8373a8dd49f23416cf7ca4001d01040",
"hash": "sha256-t8Shkoa90TJt1MbTOefnLaguW4eYKsRFO1Jd0AUc70Y="
},
"src/third_party/spirv-tools/src": {
"url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools",
"rev": "2ec8457ab33d539b6f1fecc998360c0b8b05ed4f",
"hash": "sha256-9TBb/gnDXgZRZXhF27KEQ0XQI5itRHKJQjLrkFDQq7Q="
"rev": "b38c4f83024546d4000b2db8e2294cf81b7f26e0",
"hash": "sha256-q5G4B75xBIXl1aG/vzbIDrc3Hs/MFoQ4nwh4ozb8hys="
},
"src/third_party/vulkan-headers/src": {
"url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers",
"rev": "f6a6f7ab165cedbfa2a7d0c93fe27a2d01ce09c8",
"hash": "sha256-ZbjmxbRUiVJADNRWziCH0UIM09qKf+lm9PRnWOhZFhQ="
"rev": "015e25c3c91b70eb1a754d36fb14c4ba6ad9b0b9",
"hash": "sha256-pUxPwFGbOzP8ymTooeA1slFWEFsRoqUROSnndVtLiY8="
},
"src/third_party/vulkan-loader/src": {
"url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader",
"rev": "15a84652b94e465e9a7b25eb507193929863bc2f",
"hash": "sha256-pdC3YCM0Nzeabi5TPD+qR5PVdsxmWMnf2L9HsOcbv84="
"rev": "cf0cf82ea16c0ff0be75940f282540d6085b2d3b",
"hash": "sha256-uyoysS7lSBNDRfvcwPT+gQqhE20UxiYUEw1UXnYS3fY="
},
"src/third_party/vulkan-tools/src": {
"url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools",
"rev": "7c46da2b39036a80ce088576d5794bf39e667f56",
"hash": "sha256-nAyNVveeGg9sA0E37YiEPm+UdKsy48nAOjnUYHQnuqw="
"rev": "e3d18f90c0b8ef1f52539e0674a42f0adfe30381",
"hash": "sha256-Hs9N0FM3eWWjLm4BrDJoZIrsPDVFx0iRAJeQ4gHTM7o="
},
"src/third_party/vulkan-utility-libraries/src": {
"url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries",
"rev": "2c909c1ab6f9c6caba39a84a4887186b3fafdead",
"hash": "sha256-k3xeKHQbd2rTQJsOZKXEMPrYjcHwoCC1N12F6AIP6Ho="
"rev": "8383c46b129c2b3a5f3833e602d946d2fcc57e39",
"hash": "sha256-ZBie5uDTVEehxRQW1GZY5Ki/bnp82LoW3jfMUFL0O9A="
},
"src/third_party/vulkan-validation-layers/src": {
"url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers",
"rev": "b105d8ea361af258abed65efb5a1565c031dcf1c",
"hash": "sha256-GgznBGYgnCFMNaqAOQ15dlw2dOFfSp3mAV2KokVLzgk="
"rev": "044eaba8a34a6e3bfb1d6aafac7c01068813a2b6",
"hash": "sha256-i3hochkK0LZPg8CsZMFkAL+8tf8QuuwtApAc4FDd0RM="
},
"src/third_party/vulkan_memory_allocator": {
"url": "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator.git",
"rev": "cb0597213b0fcb999caa9ed08c2f88dc45eb7d50",
"hash": "sha256-yBCs3zfqs/60htsZAOscjcyKhVbAWE6znweuXcs1oKo="
"rev": "7e55b011e16182fc349149abbd3aaf3b1db46421",
"hash": "sha256-fOnFkcQDEGIe5yB507qnP9nA1LBBPFblncNiJ8JxAwI="
},
"src/third_party/wayland/src": {
"url": "https://chromium.googlesource.com/external/anongit.freedesktop.org/git/wayland/wayland.git",
@ -777,18 +782,23 @@
},
"src/third_party/webgpu-cts/src": {
"url": "https://chromium.googlesource.com/external/github.com/gpuweb/cts.git",
"rev": "3b327ebc44f11212fd3872972a6dd394634fb9e3",
"hash": "sha256-RSZVKv2Z0pg2cGa3Elr2r5VZqdxlRJ+6mzm1Au1qg1I="
"rev": "b507bd117e53db86f2fb52d0d858d3ae7d684a85",
"hash": "sha256-6Y5Z0ErtsZdbuWTHa+PEiOxcZSbjBcnuOHbgtI1/+80="
},
"src/third_party/webpagereplay": {
"url": "https://chromium.googlesource.com/webpagereplay.git",
"rev": "b7ac48f52cd298e966a76eb054412915c3e445d4",
"hash": "sha256-smtwB6vzLgCAePz0jNfrpm8TxrxBnBkigLxERhxUEvE="
"rev": "b2b856131e36c99e9de9c419fe8ca02f857082ba",
"hash": "sha256-+hcaP7C5Eh3SLl5B8mRgOVdM/tvnFnb/oqUIWPoe0NA="
},
"src/third_party/webpagereplay/third_party/clang-format/script": {
"url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/clang/tools/clang-format.git",
"rev": "6eddfb5ec5f92127a531eda66c568d3a11e7ec11",
"hash": "sha256-Cm6BOOlEyD0kdYxMSmk6Fj1Dnfs3zCzXsm+BOXgBme0="
},
"src/third_party/webrtc": {
"url": "https://webrtc.googlesource.com/src.git",
"rev": "28311abc149a9bb7e6761a3d54f362a8d77e6793",
"hash": "sha256-WuaxKrbISJ1nwyoj2sPAhGCNz33xEYSX1WlDiM+zxpw="
"rev": "1f975dfd761af6e5d76d28333191973b258d82a8",
"hash": "sha256-ucH+9HBkFyOKEItAWVoYmEzyU7h/UgWIvp/eC/JqGWU="
},
"src/third_party/wuffs/src": {
"url": "https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c.git",
@ -802,8 +812,8 @@
},
"src/third_party/xnnpack/src": {
"url": "https://chromium.googlesource.com/external/github.com/google/XNNPACK.git",
"rev": "2ad25fc09167df69c6c02eb8082a0b9658dd5e80",
"hash": "sha256-vBMGBXzJPCcsc2kMyGecjti68oZHWUwJKd7tkKub6kg="
"rev": "56ac34b3f45fae2eca1f32584f7f0b279be2cf1f",
"hash": "sha256-uw3r5g5rWamlFubBkXDb4KRx3hkOAoQyFo8l95GYGZI="
},
"src/third_party/libei/src": {
"url": "https://chromium.googlesource.com/external/gitlab.freedesktop.org/libinput/libei.git",
@ -812,13 +822,18 @@
},
"src/third_party/zstd/src": {
"url": "https://chromium.googlesource.com/external/github.com/facebook/zstd.git",
"rev": "3ae099b48dfcfe02b1b3ba81ab85457f8a922e9f",
"hash": "sha256-futF0sM6z9HAl6AMJwUULBRByN92FTBjRIzYb2vBFGg="
"rev": "5233c58e6ca0b1c4c6b353ad79649191ed195bdc",
"hash": "sha256-vEl0s7Mjh+5rciOMxm99PNWiamtCk+sTN4lRYKCIZ+8="
},
"src/v8": {
"url": "https://chromium.googlesource.com/v8/v8.git",
"rev": "933ce636c562cd54d68e7f7c93ab5cdffd685fca",
"hash": "sha256-zYArO6QS9nDIVWPINRVaDN1uX8X/wchBDeZHPZnwHYk="
"rev": "968f19a8970f8d91702d86f0ec1522f3909781b7",
"hash": "sha256-x3rCWvC3hEjyJq6PNThhZEp4oRF9Y1JJEPnZTqVNVrY="
},
"src/agents/shared": {
"url": "https://chromium.googlesource.com/chromium/agents.git",
"rev": "e75efa515896f6bf1dea92eaffbcf8ee711a65d8",
"hash": "sha256-z2GrzF8jDkdfBdq1HP3gTgQpoqjmhc80kEZBmlue0os="
}
}
},

View file

@ -0,0 +1,21 @@
diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
index e1da11405c1f667280099ee815abc5349d1ad1bd..202992dbbe1c2a70eb6d8b559568d388f98b28f6 100644
--- a/build/config/compiler/BUILD.gn
+++ b/build/config/compiler/BUILD.gn
@@ -1678,16 +1678,6 @@ config("runtime_library") {
configs += [ "//build/config/c++:runtime_library" ]
}
- # Rust and C++ both provide intrinsics for LLVM to call for math operations.
- # We want to use the C++ intrinsics, not the ones in the Rust
- # compiler_builtins library. The Rust symbols are marked as weak, so that they
- # can be replaced by the C++ symbols. This config ensures the C++ symbols
- # exist and are strong in order to cause that replacement to occur by
- # explicitly linking in clang's compiler-rt library.
- if (is_clang && !(is_a_target_toolchain && is_cronet_build)) {
- configs += [ "//build/config/clang:compiler_builtins" ]
- }
-
# TODO(crbug.com/40570904): Come up with a better name for is POSIX + Fuchsia
# configuration.
if (is_posix || is_fuchsia) {

View file

@ -0,0 +1,27 @@
diff --git a/third_party/widevine/cdm/BUILD.gn b/third_party/widevine/cdm/BUILD.gn
index 6d18f9fa163718d95610de9b6229dd38478543c7..93884543edcaa7211f4a7d61175bc068c6fd7dd4 100644
--- a/third_party/widevine/cdm/BUILD.gn
+++ b/third_party/widevine/cdm/BUILD.gn
@@ -19,7 +19,7 @@ buildflag_header("buildflags") {
flags = [
"ENABLE_WIDEVINE=$enable_widevine",
- "BUNDLE_WIDEVINE_CDM=$bundle_widevine_cdm",
+ "BUNDLE_WIDEVINE_CDM=true",
"ENABLE_WIDEVINE_CDM_COMPONENT=$enable_widevine_cdm_component",
"ENABLE_MEDIA_FOUNDATION_WIDEVINE_CDM=$enable_media_foundation_widevine_cdm",
]
diff --git a/third_party/widevine/cdm/widevine.gni b/third_party/widevine/cdm/widevine.gni
index 927b2e4809cf76e6b3ef51ee6cd2bbd04a92d60b..41761d10a4105a20fc4acf35f761c7ab23f867dd 100644
--- a/third_party/widevine/cdm/widevine.gni
+++ b/third_party/widevine/cdm/widevine.gni
@@ -40,8 +40,7 @@ enable_library_widevine_cdm =
# Widevine CDM can be deployed as a component. Currently only supported on
# desktop platforms. The CDM can be bundled regardless whether it's a
# component. See below.
-enable_widevine_cdm_component =
- enable_library_widevine_cdm && (is_win || is_mac || is_linux || is_chromeos)
+enable_widevine_cdm_component = false
# Enable (Windows) Media Foundation Widevine CDM component.
declare_args() {

View file

@ -2,7 +2,6 @@
buildGoModule,
fetchFromGitHub,
lib,
yq-go,
nix-update-script,
}:
@ -22,21 +21,29 @@ buildGoModule {
vendorHash = "sha256-4ckjM520MGYb64LbjYURe7AIScm4aGbj81rGKSSYaAo=";
# NOTE: Remove the install and upgrade hooks.
postPatch = ''
sed -i '/^hooks:/,+2 d' plugin.yaml
# Remove the install and upgrade hooks.
sed -i '/^platformHooks:[[:space:]]*$/,/^[^[:space:]]/d' plugin.yaml
# Remove the per-platform commands
sed -i '/^platformCommand:[[:space:]]*$/,/^[^[:space:]]/d' plugin.yaml
# Add a simple runtime config
cat <<'EOF' >> ./plugin.yaml
platformCommand:
- command: "''$HELM_PLUGIN_DIR/helm-unittest"
EOF
'';
postInstall = ''
install -dm755 $out/helm-unittest
mv $out/bin/helm-unittest $out/helm-unittest/untt
rmdir $out/bin
install -m644 -Dt $out/helm-unittest plugin.yaml
'';
subPackages = [ "cmd/helm-unittest" ];
nativeCheckInputs = [
yq-go
];
installPhase = ''
runHook preInstall
install -dm755 "$out/helm-unittest"
install -m755 -Dt "$out/helm-unittest" "$GOPATH/bin/helm-unittest"
install -m644 -Dt "$out/helm-unittest" ./plugin.yaml
runHook postInstall
'';
passthru = {
updateScript = nix-update-script { };

View file

@ -355,11 +355,11 @@
"vendorHash": null
},
"dopplerhq_doppler": {
"hash": "sha256-vYLNRSk8U9Ez5+LrC9cr6Ux32p7n93WOJaM4lY7ghE0=",
"hash": "sha256-SS2S4JGG1Xu0p4k6lVlTr173Xanwc6hZ0A3osEWGdEg=",
"homepage": "https://registry.terraform.io/providers/DopplerHQ/doppler",
"owner": "DopplerHQ",
"repo": "terraform-provider-doppler",
"rev": "v1.21.3",
"rev": "v1.21.4",
"spdx": "Apache-2.0",
"vendorHash": "sha256-B8mYLd4VdADWoQLWiCM85VQrBfDdlYQ0wkCp9eUBQ4U="
},
@ -968,13 +968,13 @@
"vendorHash": "sha256-OAd8SeTqTrH0kMoM2LsK3vM2PI23b3gl57FaJYM9hM0="
},
"newrelic_newrelic": {
"hash": "sha256-sUawDMMhwCo2xqnPNiaRMGKo3rRxNGjLEl2NYwfVuMk=",
"hash": "sha256-/y3BdJAwmmR9FHzbYh+2EBAae+WQp5+wubPEh6Tw98s=",
"homepage": "https://registry.terraform.io/providers/newrelic/newrelic",
"owner": "newrelic",
"repo": "terraform-provider-newrelic",
"rev": "v3.93.2",
"rev": "v3.94.0",
"spdx": "MPL-2.0",
"vendorHash": "sha256-fCdwTWYbwuJUh+9WeVN5WmpPxdop49oHZ2cUm3K5w6w="
"vendorHash": "sha256-gbkuHyFBc1WUbtDFXnyzUlYdIvyFPwBHd+gg7VPenb4="
},
"ns1-terraform_ns1": {
"hash": "sha256-6w0r6QXm16h4I4PFj80dJhTDbF4FPMjJalO0TfXGBEA=",

View file

@ -91,8 +91,8 @@ rec {
thunderbird-140 = common {
applicationName = "Thunderbird ESR";
version = "140.12.0esr";
sha512 = "ccbcc305d5cc10aa01aa5071f40a21b42de0300d9ad6763c4fc4ad71bf797566f2380c8fd84d46952e7c4eae0a35905173e6906b108192833660eae2ceea7b51";
version = "140.12.1esr";
sha512 = "24e795483ba7bc112c0debe1becdaf79cc2de95703b9ee726d0216bfc1db7b33c169503f83ac867e5998a8d1d0284a6ef12c7d35d98b10d6432497c2db237477";
updateScript = callPackage ./update.nix {
attrPath = "thunderbirdPackages.thunderbird-140";

View file

@ -7,6 +7,7 @@
pkg-config,
wrapQtAppsHook,
nix-update-script,
grim,
hyprland,
hyprland-protocols,
hyprlang,
@ -81,7 +82,12 @@ stdenv.mkDerivation (finalAttrs: {
}
wrapProgramShell $out/libexec/xdg-desktop-portal-hyprland \
--prefix PATH ":" ${lib.makeBinPath [ (placeholder "out") ]}
--prefix PATH ":" ${
lib.makeBinPath [
(placeholder "out")
grim
]
}
'';
passthru = {

View file

@ -10,13 +10,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "4ti2";
version = "1.6.14";
version = "1.6.15";
src = fetchFromGitHub {
owner = "4ti2";
repo = "4ti2";
tag = "Release_${builtins.replaceStrings [ "." ] [ "_" ] finalAttrs.version}";
hash = "sha256-bFvq90hLLGty7p6NLxOARVvKdizg3bp2NkP9nZpVFzQ=";
hash = "sha256-6X8zNp68KlKxplg1rdcotmXyIZE27POJs9/3n2BZLZE=";
};
postPatch = ''

View file

@ -6,19 +6,19 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "aaa";
version = "1.1.1";
version = "2.1.0";
src = fetchFromGitHub {
owner = "asciimoth";
repo = "aaa";
tag = "v${finalAttrs.version}";
sha256 = "sha256-gIOlPjZOcmVLi9oOn4gBv6F+3Eq6t5b/3fKzoFqxclw=";
tag = "${finalAttrs.version}";
sha256 = "sha256-z8PXkX6Bh3oD8tRf+tsLJHbx5wIz2mBYhJSEL88hBDc=";
};
cargoHash = "sha256-CHX+Ugy4ND36cpxNEFpnqid6ALHMPXmfXi+D4aktPRk=";
cargoHash = "sha256-dt3nbVS8i075O8m9x+FsDi3VeihVKVIV0wnPqyYUaIk=";
meta = {
description = "Terminal viewer for 3a format";
description = "Swiss Army knife for animated ascii art";
homepage = "https://github.com/asciimoth/aaa";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ asciimoth ];

View file

@ -0,0 +1,36 @@
{
lib,
rustPlatform,
fetchFromGitHub,
versionCheckHook,
nix-update-script,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "abtop";
version = "0.5.1";
__structuredAttrs = true;
src = fetchFromGitHub {
owner = "graykode";
repo = "abtop";
tag = "v${finalAttrs.version}";
hash = "sha256-2m0FYv2HouFqnmDaG6ounc8VJxlEK3N3uTBZyNiFwzI=";
};
cargoHash = "sha256-0sAjql2pH41dHdmV0uC4jjj6J1OFjMdEY1B+4C4id3Y=";
doInstallCheck = true;
nativeInstallCheckInputs = [ versionCheckHook ];
passthru.updateScript = nix-update-script { };
meta = {
description = "Like htop, but for AI coding agents";
homepage = "https://github.com/graykode/abtop";
changelog = "https://github.com/graykode/abtop/releases/tag/${finalAttrs.src.tag}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ Br1ght0ne ];
mainProgram = "abtop";
};
})

View file

@ -1,21 +1,21 @@
{
"version": "1.3.20-stable",
"version": "1.3.21-stable",
"sources": {
"aarch64-darwin": {
"url": "https://acli.atlassian.com/darwin/1.3.20-stable/acli_1.3.20-stable_darwin_arm64.tar.gz",
"sha256": "5fca5f021b8202f77f60ecc0ded293fb4af67afdb462ed20dce990cfedc49517"
"url": "https://acli.atlassian.com/darwin/1.3.21-stable/acli_1.3.21-stable_darwin_arm64.tar.gz",
"sha256": "39687d1c18054736f7264d76d33ceb89e8ebf480fbbba9541d9fefdda94ded66"
},
"aarch64-linux": {
"url": "https://acli.atlassian.com/linux/1.3.20-stable/acli_1.3.20-stable_linux_arm64.tar.gz",
"sha256": "2209f6ab1f7fb4c16247e30115d0ff7c1511161aeae4d166e0e79ec81125a4b1"
"url": "https://acli.atlassian.com/linux/1.3.21-stable/acli_1.3.21-stable_linux_arm64.tar.gz",
"sha256": "b6104cd1737613fe4b24c20619965bb59b7b9bc09e39fb95f41a671b2b320ab8"
},
"x86_64-darwin": {
"url": "https://acli.atlassian.com/darwin/1.3.20-stable/acli_1.3.20-stable_darwin_amd64.tar.gz",
"sha256": "4b9c4faa0d635b6e9194b101d4826b26cd6a15c46313f6a5f9436e20e8a48b78"
"url": "https://acli.atlassian.com/darwin/1.3.21-stable/acli_1.3.21-stable_darwin_amd64.tar.gz",
"sha256": "75f08d45886f770117405bb5b053bfa4c8e98045afe3dfa965905fabd8825f5c"
},
"x86_64-linux": {
"url": "https://acli.atlassian.com/linux/1.3.20-stable/acli_1.3.20-stable_linux_amd64.tar.gz",
"sha256": "4e0190233a58276001a3cdff23e4be5e30844f98c639c49cfdeb581b9eb147aa"
"url": "https://acli.atlassian.com/linux/1.3.21-stable/acli_1.3.21-stable_linux_amd64.tar.gz",
"sha256": "f158f6e8f6ae7e279d1ced8ce85a93647aa70c42c29f0d5ad303ebd3c727f956"
}
}
}

View file

@ -7,7 +7,7 @@
python3Packages.buildPythonApplication (finalAttrs: {
pname = "adscan";
version = "9.1.1";
version = "9.2.0";
pyproject = true;
__structuredAttrs = true;
@ -16,7 +16,7 @@ python3Packages.buildPythonApplication (finalAttrs: {
owner = "ADScanPro";
repo = "adscan";
tag = "v${finalAttrs.version}";
hash = "sha256-lVoDPRw2NQBQJo37uKT807HXN28cDFxiWwedTiYhojc=";
hash = "sha256-28v36+sbgt/xaE8N7w4o0WTMYd95QsW190VPhOgL3+8=";
};
pythonRelaxDeps = [ "credsweeper" ];

View file

@ -8,11 +8,11 @@
stdenv.mkDerivation (finalAttrs: {
pname = "allure";
version = "2.43.0";
version = "2.44.0";
src = fetchurl {
url = "https://github.com/allure-framework/allure2/releases/download/${finalAttrs.version}/allure-${finalAttrs.version}.tgz";
hash = "sha256-Hrp4vTrtdPNSRpMVCdQKBg9v8He6VyhHiThGiPMQdsg=";
hash = "sha256-cCGpCCjADNbsmSAnzOSOipS9h/rUPQwtysR5XK3BeNc=";
};
dontConfigure = true;

View file

@ -27,7 +27,7 @@ let
in
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "amp-cli";
version = "0.0.1782120930-g64087b";
version = "0.0.1782851652-gfd0e56";
src = finalAttrs.passthru.sources.${stdenvNoCC.hostPlatform.system};
@ -78,10 +78,10 @@ stdenvNoCC.mkDerivation (finalAttrs: {
url = "https://static.ampcode.com/cli/${finalAttrs.version}/amp-${platform}.gz";
hash =
{
x86_64-linux = "sha256-Ye1ch/mmhFelSv77Yy+fbpiBUlXzInACp2Hux+CLQzk=";
aarch64-linux = "sha256-cGV6tqiaHDjSCjhlSgAf0wIcOXY0Y78G2IT0ZQ5uuNk=";
x86_64-darwin = "sha256-5UmALYPSfUceumD4puKbMY+VwUsmAojHuu3pNXxVOr4=";
aarch64-darwin = "sha256-zzpPWKfYHAEXLNvAucVOwm0HE8Ui3Ai31XMs+utlXF4=";
x86_64-linux = "sha256-uLHPYfZyQAj562Zoq9ooTEBuQxCcAPBbsf9plhvn+TQ=";
aarch64-linux = "sha256-1hUKxNMJrh3m8G/4BpRrZSWaKTzQajFmtgayv04E5mM=";
x86_64-darwin = "sha256-BeQFup4s33TJnIvpsDsgUA9USWrlV+lQdSmR/FSfbis=";
aarch64-darwin = "sha256-AfiAUS8KAnGE/a3Q3mZV5Fa0htf2t1HP0LrC9vx1YF0=";
}
.${system'};
}

View file

@ -0,0 +1,28 @@
{
lib,
anki-utils,
fetchFromGitHub,
nix-update-script,
}:
anki-utils.buildAnkiAddon (finalAttrs: {
pname = "advanced-browser";
version = "4.5";
src = fetchFromGitHub {
owner = "AnKing-VIP";
repo = "advanced-browser";
tag = "v${finalAttrs.version}";
hash = "sha256-oVL+Y96/d+uD8s6yjz6L7zWV2G6PgP7ZfIiEAAZR2T4=";
};
passthru.updateScript = nix-update-script { };
meta = {
description = "Adds more sorting options to the browser";
longDescription = ''
A general overview of the functionality can be found [here](https://ankiweb.net/shared/info/874215009).
The options to configure this add-on can be found [here](https://github.com/AnKing-VIP/advanced-browser/blob/v${finalAttrs.version}/advancedbrowser/config.md).
'';
homepage = "https://ankiweb.net/shared/info/874215009";
downloadPage = "https://github.com/AnKing-VIP/advanced-browser";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ n0pl4c3 ];
};
})

View file

@ -4,6 +4,8 @@
{
adjust-sound-volume = callPackage ./adjust-sound-volume { };
advanced-browser = callPackage ./advanced-browser { };
ajt-card-management = callPackage ./ajt-card-management { };
anki-connect = callPackage ./anki-connect { };

View file

@ -17,6 +17,7 @@ python3.pkgs.buildPythonApplication (finalAttrs: {
};
pythonRelaxDeps = [
"pytenable"
"typer"
"validators"
];

View file

@ -11,16 +11,16 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "avml";
version = "0.18.0";
version = "0.19.0";
src = fetchFromGitHub {
owner = "microsoft";
repo = "avml";
tag = "v${finalAttrs.version}";
hash = "sha256-d8H+UPCH3yyBNndlGzamgaPlhmvP4rcUSAywx8vYky0=";
hash = "sha256-2oVqweq06pzFVcUVq1lCJ4rGmiZG0A7xq6g1RSwR12M=";
};
cargoHash = "sha256-LxoyvjFVn69s9Wf8pF+9wBgOV4fJ/th6GPzLW6hbz0E=";
cargoHash = "sha256-40NKzbxNY9t5e7OJnw9Kfvx86YsPAolcezeWeFsD0C4=";
nativeBuildInputs = [ pkg-config ];
buildInputs = [ openssl ];

View file

@ -0,0 +1,121 @@
{
fetchFromGitHub,
buildNpmPackage,
python3,
stdenv,
makeWrapper,
lib,
ffmpeg,
}:
let
version = "0.2.4.8";
src = fetchFromGitHub {
owner = "maziggy";
repo = "bambuddy";
tag = "v${version}";
hash = "sha256-6qeIidvi62NUok7I9UQ8DblT0/Wscju4FMnVuPXzMdM=";
};
frontend = buildNpmPackage {
pname = "bambuddy-frontend";
inherit version src;
sourceRoot = "${src.name}/frontend";
npmDepsHash = "sha256-/22FkXus5f3wYivyadZWU6ZKPYFLF8xA8mkVGxvdXm0=";
preBuild = "chmod -R u+w ../static";
installPhase = ''
runHook preInstall
mkdir -p $out
cp -r ../static/. $out/
runHook postInstall
'';
};
# https://github.com/maziggy/bambuddy/blob/main/requirements.txt
python = python3.withPackages (
ps: with ps; [
aiofiles
aioftp
aiosqlite
asyncpg
asyncssh
bcrypt
cryptography
curl-cffi
defusedxml
fastapi
fast-simplification
greenlet
httpx
ldap3
lxml
matplotlib
networkx
numpy
opencv4
openpyxl
paho-mqtt
passlib
pillow
psutil
pydantic
pydantic-settings
pyftpdlib
pyjwt
pyopenssl
pyotp
python-multipart
pywebpush
qrcode
reportlab
sqlalchemy
trimesh
uvicorn
websockets
]
);
in
stdenv.mkDerivation {
pname = "bambuddy";
inherit version src;
strictDeps = true;
__structuredAttrs = true;
nativeBuildInputs = [ makeWrapper ];
installPhase = ''
runHook preInstall
mkdir -p $out/lib/bambuddy
cp -r . $out/lib/bambuddy/
rm -rf $out/lib/bambuddy/static
ln -s ${frontend} $out/lib/bambuddy/static
mkdir -p $out/bin
makeWrapper ${lib.getExe' python "uvicorn"} $out/bin/bambuddy \
--chdir "$out/lib/bambuddy" \
--prefix PYTHONPATH : "$out/lib/bambuddy" \
--prefix PATH : ${ffmpeg}/bin \
--add-flags "backend.app.main:app"
runHook postInstall
'';
meta = {
description = "Self-hosted command center for Bambu Lab";
homepage = "https://bambuddy.cool/";
changelog = "https://github.com/maziggy/bambuddy/blob/v${version}/CHANGELOG.md";
license = lib.licenses.agpl3Only;
maintainers = with lib.maintainers; [ onatustun ];
mainProgram = "bambuddy";
platforms = with lib.platforms; linux ++ darwin;
};
}

View file

@ -0,0 +1,80 @@
{
lib,
fetchFromGitHub,
rustPlatform,
mold,
nix-update-script,
versionCheckHook,
rustc,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "bencher-cli";
version = "0.6.8";
__structuredAttrs = true;
strictDeps = true;
src = fetchFromGitHub {
owner = "bencherdev";
repo = "bencher";
rev = "v${finalAttrs.version}";
hash = "sha256-MlRj56QXRrvfBxi6+B6vpEKlDWMFB+V1CzQYOiGFpHE=";
};
cargoHash = "sha256-biCHEePgVxrnGUj94bwWrp9GVhspiMjcMRdp3A7O2h0=";
nativeBuildInputs = [ mold ];
nativeInstallCheckInputs = [ versionCheckHook ];
doInstallCheck = true;
cargoBuildFlags = [ "--package=bencher_cli" ];
cargoTestFlags = [ "--package=bencher_cli" ];
# Build the open-source version
buildNoDefaultFeatures = true;
checkNoDefaultFeatures = finalAttrs.buildNoDefaultFeatures;
postPatch = lib.optionalString finalAttrs.buildNoDefaultFeatures ''
# Replaces the proprietary Rust files with empty files
# This is just a safeguard, the build shouldn't touch these files anyways
echo "find . -path '*/plus/*' -type f ! -name Cargo.toml -exec truncate -s 0 {} +"
find . -path '*/plus/*' -type f ! -name Cargo.toml -exec truncate -s 0 {} +
'';
passthru.updateScript = nix-update-script { };
meta = {
description = "Command-Line interface for the Bencher continuous benchmarking platform";
mainProgram = "bencher";
longDescription = ''
Bencher is a suite of continuous benchmarking tools.
Bencher allows you to detect and prevent performance regressions
*before* they hit production.
- Run: Run your benchmarks locally or in CI using your favorite
benchmarking tools. The bencher CLI simply wraps your existing
benchmark harness and stores its results.
- Track: Track the results of your benchmarks over time. Monitor, query,
and graph the results using the Bencher web console based on the source
branch, testbed, benchmark, and measure.
- Catch: Catch performance regressions in CI. Bencher uses state of the
art, customizable analytics to detect performance regressions before
they make it to production.
Bencher's source repo includes non-free features, included in the build
as the Cargo feature "plus".
Files in the plus directories are proprietary, while the other files
are dual Apache-2.0/MIT licensed.
The Nix derivation does not compile the proprietary features.
'';
homepage = "https://bencher.dev";
license =
if finalAttrs.buildNoDefaultFeatures then
lib.licenses.OR [
lib.licenses.asl20
lib.licenses.mit
]
else
lib.licenses.unfree;
platforms = rustc.meta.platforms;
maintainers = [ lib.maintainers.skyesoss ];
};
})

View file

@ -13,7 +13,7 @@
let
pname = "bitcomet";
version = "2.19.2";
version = "2.21.2";
meta = {
homepage = "https://www.bitcomet.com";
@ -45,8 +45,8 @@ let
fetchurl {
url = "https://download.bitcomet.com/linux/${arch}/BitComet-${version}-${arch}.deb";
hash = selectSystem {
x86_64-linux = "sha256-26hpKNCetqV0whfzNo950EAmK+LKC1RsN5f/9HU9zKs=";
aarch64-linux = "sha256-VrrjQ4dcj0XL2xmNspo2mJ+3BVy9vKyVw6QaHkha0LY=";
x86_64-linux = "sha256-qHPr4G921W1Pl7n0Wv98yLRbsAkJBrOcyg9kHHjtBGc=";
aarch64-linux = "sha256-VC/dvAGmhqlmZT5XB41x/fTGvMZjYCuz/tSp9MYFUHo=";
};
};

View file

@ -0,0 +1,94 @@
{
stdenv,
lib,
fetchFromGitHub,
callPackage,
nix-update-script,
libz,
libtool,
perl,
R,
bowtie2,
which,
ghostscript,
makeWrapper,
autoreconfHook,
versionCheckHook,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "breseq";
version = "0.39.0";
strictDeps = true;
__structuredAttrs = true;
src = fetchFromGitHub {
owner = "barricklab";
repo = "breseq";
tag = "v${finalAttrs.version}";
hash = "sha256-DsDX2oGn7Ex50Wnp1phJjCziCzZIeeZOHriUGJbejsk=";
};
buildInputs = [
perl
libz
libtool
];
nativeBuildInputs = [
makeWrapper
autoreconfHook
];
postInstall = ''
# Make wrappers
wrapProgram $out/bin/breseq --prefix PATH : ${
lib.makeBinPath [
which
ghostscript
bowtie2
R
]
}
wrapProgram $out/bin/gdtools --prefix PATH : ${
lib.makeBinPath [
which
ghostscript
bowtie2
R
]
}
# Copy over tests (incl necessary datasets) and license
cp LICENSE $out/license
mkdir $out/tests
mkdir $out/tests/data
cp tests/data/tmv_plasmid $out/tests/data/tmv_plasmid -r
cp tests/data/lambda $out/tests/data/lambda -r
cp tests/common.sh $out/tests/common.sh
cp tests/tmv_plasmid_circular_deletion $out/tests/tmv_plasmid_circular_deletion -r
cp tests/gdtools_compare_1 $out/tests/gdtools_compare_1 -r
'';
nativeInstallCheckInputs = [
versionCheckHook
];
doInstallCheck = true;
passthru.tests = {
breseq_works = callPackage ./tests/breseq.nix { };
gdtools_works = callPackage ./tests/gdtools.nix { };
};
passthru.updateScript = nix-update-script { };
meta = {
description = "Computational pipeline for finding mutations relative to a reference sequence in short-read DNA re-sequencing data";
mainProgram = "breseq";
homepage = "https://github.com/barricklab/breseq";
license = with lib.licenses; [
gpl2Plus # See barricklab/breseq#398
];
maintainers = with lib.maintainers; [ croots ];
platforms = lib.platforms.all;
};
})

View file

@ -0,0 +1,21 @@
{
runCommand,
breseq,
}:
let
inherit (breseq) pname version;
in
runCommand "breseq-tests" { meta.timeout = 60; } ''
echo "Testing breseq - breseq executable"
export TESTBINPREFIX=${breseq}/bin
cp ${breseq}/tests $PWD/breseqtests -r
chmod -R +w $PWD/breseqtests
output=$($PWD/breseqtests/tmv_plasmid_circular_deletion/testcmd.sh 2>&1) || {
echo "$output"
echo "Error testing breseq - breseq executable"
exit 1
}
touch $out
''

View file

@ -0,0 +1,21 @@
{
runCommand,
breseq,
}:
let
inherit (breseq) pname version;
in
runCommand "breseq-tests" { meta.timeout = 60; } ''
echo "Testing breseq - gdtools executable"
export TESTBINPREFIX=${breseq}/bin
cp ${breseq}/tests $PWD/breseqtests -r
chmod -R +w $PWD/breseqtests
output=$($PWD/breseqtests/gdtools_compare_1/testcmd.sh 2>&1) || {
echo "$output"
echo "Error testing breseq - gdtools executable"
exit 1
}
touch $out
''

View file

@ -6,13 +6,13 @@
buildGoModule (finalAttrs: {
pname = "butane";
version = "0.28.0";
version = "0.29.0";
src = fetchFromGitHub {
owner = "coreos";
repo = "butane";
rev = "v${finalAttrs.version}";
hash = "sha256-Cej00ugyOtjPys0E67z0oapwABdQxRuN4lOGu1qrtf8=";
hash = "sha256-lijMfxhUBopwbfEP4fEgszXh7zaRz7Xy1Y8PmatXXTE=";
};
vendorHash = null;

View file

@ -1,6 +1,5 @@
{
lib,
stdenv,
fetchCrate,
fetchurl,
rustPlatform,
@ -8,28 +7,31 @@
openssl,
nix-update-script,
}:
let
# That is from cargoDeps/risc0-circuit-recursion/build.rs
src-recursion-hash = "744b999f0a35b3c86753311c7efb2a0054be21727095cf105af6ee7d3f4d8849";
src-recursion = fetchurl {
name = "cargo-risczero-recursion-source";
url = "https://risc0-artifacts.s3.us-west-2.amazonaws.com/zkr/${src-recursion-hash}.zip";
outputHash = src-recursion-hash; # This hash should be the same as src-recuresion-hash
outputHashAlgo = "sha256";
};
in
rustPlatform.buildRustPackage rec {
rustPlatform.buildRustPackage (finalAttrs: {
pname = "cargo-risczero";
version = "1.1.2";
version = "3.0.5";
src = fetchCrate {
inherit pname version;
hash = "sha256-YZ3yhj1VLxl3Fg/yWhqrZXxIQ7oK6Gdo0NU39oDvoo8=";
};
src-recursion-hash = "28e4eeff7a8f73d27408d99a1e3e8842c79a5f4353e5117ec0b7ffaa7c193612"; # That is from cargoDeps/risc0-circuit-recursion/build.rs
src-recursion = fetchurl {
url = "https://risc0-artifacts.s3.us-west-2.amazonaws.com/zkr/${src-recursion-hash}.zip";
hash = "sha256-KOTu/3qPc9J0CNmaHj6IQseaX0NT5RF+wLf/qnwZNhI="; # This hash should be the same as src-recuresion-hash
inherit (finalAttrs) pname version;
hash = "sha256-1tuY+XoZpilak9gc5vDnRDEB1SK+itBWoGNxwefT6xo=";
};
env = {
RECURSION_SRC_PATH = src-recursion;
};
cargoHash = "sha256-r2bs1MT2jBK4ATUKyRGLEAFCHNaGnnQ4jbQOKbQbldY=";
cargoHash = "sha256-ayKQvhjYawPEl9ryVmDx4J93/EGPSeKds0mOnkRI2Fo=";
nativeBuildInputs = [
pkg-config
@ -39,9 +41,6 @@ rustPlatform.buildRustPackage rec {
openssl
];
# The tests require network access which is not available in sandboxed Nix builds.
doCheck = false;
passthru.updateScript = nix-update-script { };
meta = {
@ -51,4 +50,4 @@ rustPlatform.buildRustPackage rec {
license = with lib.licenses; [ asl20 ];
maintainers = [ ];
};
}
})

View file

@ -6,14 +6,14 @@
python3.pkgs.buildPythonApplication (finalAttrs: {
pname = "cfripper";
version = "1.20.1";
version = "1.21.0";
pyproject = true;
src = fetchFromGitHub {
owner = "Skyscanner";
repo = "cfripper";
tag = "v${finalAttrs.version}";
hash = "sha256-HE9n28q1HX1HRSiXyEuUrAJGp4d5i1e0lROcsqpsobA=";
hash = "sha256-psuUG8Kk+pl9Qv9vpH7yCn2X6leciftgFN1Ft+zEgtg=";
};
pythonRelaxDeps = [

View file

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

View file

@ -8,17 +8,17 @@
}:
maven.buildMavenPackage (finalAttrs: {
version = "13.6.0";
version = "13.7.0";
pname = "checkstyle";
src = fetchFromGitHub {
owner = "checkstyle";
repo = "checkstyle";
tag = "checkstyle-${finalAttrs.version}";
hash = "sha256-5E3GTE4fPmJYoSm2lK4tW1Dcu+SuyQKL396JLg3J22E=";
hash = "sha256-BrgjkqkVnLYMlouyopUoCTby2z4YWZl4UK7m3Ktm5bE=";
};
mvnHash = "sha256-r0adD/80UguRCIznE6hGdhRifm29GxMhQRSmd2/nabc=";
mvnHash = "sha256-IKO61ugVjF03zA6pCwYKmwMVx/Ogy8hrt70ArOUm0NA=";
nativeBuildInputs = [
maven

View file

@ -1,47 +1,47 @@
{
"version": "2.1.196",
"commit": "a4ca500badcac68511fb5f04303e32e4360f3dfb",
"buildDate": "2026-06-29T01:55:28Z",
"version": "2.1.197",
"commit": "c8fd8048f30950a21d28734718275aa7e97f5143",
"buildDate": "2026-06-29T19:16:30Z",
"platforms": {
"darwin-arm64": {
"binary": "claude",
"checksum": "6fc6e61ab7582c2bf241225ff90d9f79e91d69380cb9589fc9dedd3a30070f5a",
"size": 225782608
"checksum": "8cc0c4d1e4eb1dca3b0cc92ab02ee3505de764e023f8c901761c167b72041fb8",
"size": 227251472
},
"darwin-x64": {
"binary": "claude",
"checksum": "32c74d66e27b9ca77aea638fc46cb11c90470bd0d294b2a981065da8896d1ee0",
"size": 235139408
"checksum": "5e8a57cc7a92377f0744fa4c79191cf93d4b26c79cb919b07a407511fed1be26",
"size": 235288016
},
"linux-arm64": {
"binary": "claude",
"checksum": "05aa9189d335d1e921ca9608acd699193e661559aff56704456ce5bda6fd4dd8",
"size": 242203376
"checksum": "fb48473c467c27615ac799a754f4ef0b68c363e4596cefbb59c3815d51a0cc8a",
"size": 242334448
},
"linux-x64": {
"binary": "claude",
"checksum": "eb933c6dd5534db89b83ba09009d5c0932bd1395f7e3bb0f34ba37eec37bbade",
"size": 245373752
"checksum": "f54e69cbc89b2da61a415700af7ff52a147e862517d4f1b0eecf768448cf7f83",
"size": 245517112
},
"linux-arm64-musl": {
"binary": "claude",
"checksum": "0591ff8e1378d3773c85456d0c812bf79b333cac2d06396cd076ecfc75022ba4",
"size": 235451576
"checksum": "acb885610ba06d90c46206ded9b14121bc30e96affecbfb3c37d511bf02af2bd",
"size": 235582648
},
"linux-x64-musl": {
"binary": "claude",
"checksum": "fa7e93303ea5eda7defce9f70f360c1f951b06f9f36b03296baffbade512049f",
"size": 240058752
"checksum": "2f610c0f81341052426981b5dc59277a33e6ec3df924071b24edbc05e6a096dc",
"size": 240202112
},
"win32-x64": {
"binary": "claude.exe",
"checksum": "180d7b279455e8b89d4353a5146447be2f80b80fb0db14bdc6dd9cb98c0aef09",
"size": 235977376
"checksum": "038bd9fe90c60304601e19751269a50d62925c541dd6a2b3da5274549e9416ee",
"size": 236121248
},
"win32-arm64": {
"binary": "claude.exe",
"checksum": "882ed64ae93385067bff7b1e1d1975898f1cbca739dff322e0e370cd2db3e6ed",
"size": 230444704
"checksum": "8d2baeaf77b0e79ea33cf5ce78a37e64804c3a26d63d35355a830fda404a4f61",
"size": 230588064
}
}
}

View file

@ -6,18 +6,18 @@
buildGoModule (finalAttrs: {
pname = "cnspec";
version = "13.25.0";
version = "13.27.0";
src = fetchFromGitHub {
owner = "mondoohq";
repo = "cnspec";
tag = "v${finalAttrs.version}";
hash = "sha256-6DyF9gOXZfN5wUpUtTO/Pj8wOcHbTRbZbTCYF3t9clE=";
hash = "sha256-t/ugT15QxiwMJybX2mIwgx0wGQETLFJWplxNEosTq4A=";
};
proxyVendor = true;
vendorHash = "sha256-q9ur5wbiJGZ8K0dI3xjpB4RsnEkoQetZu6Kj7IB7kEc=";
vendorHash = "sha256-M2f2HApngE8GJRXy53u7bif1puNTE6BV6oxmnvSSS6Y=";
subPackages = [ "apps/cnspec" ];

View file

@ -53,13 +53,13 @@ in
stdenv.mkDerivation (finalAttrs: {
pname = "cockpit";
version = "363.1";
version = "364";
src = fetchFromGitHub {
owner = "cockpit-project";
repo = "cockpit";
tag = finalAttrs.version;
hash = "sha256-w9+S3qc95gcNvVLGMdWlRxKXhNjZbcgKSGxlSvNJp9o=";
hash = "sha256-TAX0N6ZQWGr17GpyJS23Q5ES3USU2hxSiI867n6G17I=";
fetchSubmodules = true;
};

File diff suppressed because it is too large Load diff

View file

@ -4,31 +4,30 @@
rustPlatform,
pkg-config,
openssl,
perl,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "code2prompt";
version = "1.1.0";
version = "4.2.0";
src = fetchFromGitHub {
owner = "mufeedvh";
repo = "code2prompt";
rev = "v${finalAttrs.version}";
hash = "sha256-KZqh0Vq4Mn56PhUO1JUzVpNBAGOZqUAsj31Cj5K+Lyk=";
tag = "v${finalAttrs.version}";
hash = "sha256-Gh8SsSTZW7QlyyC3SWJ5pOK2x85/GT7+LPJn2Jeczpc=";
};
cargoLock = {
lockFile = ./Cargo.lock;
};
cargoHash = "sha256-t4HpGqojIkw9OBUAYz4ZEaB7XyHQxkFB2HtlkGKbe2s=";
postPatch = ''
# src is missing Cargo.lock
ln -s ${./Cargo.lock} Cargo.lock
'';
nativeBuildInputs = [
pkg-config
perl
];
nativeBuildInputs = [ pkg-config ];
buildInputs = [ openssl ];
buildInputs = [
openssl
];
meta = {
description = "CLI tool that converts your codebase into a single LLM prompt with a source tree, prompt templating, and token counting";

View file

@ -11,13 +11,13 @@
buildGoModule (finalAttrs: {
pname = "coroot";
version = "1.22.0";
version = "1.23.2";
src = fetchFromGitHub {
owner = "coroot";
repo = "coroot";
rev = "v${finalAttrs.version}";
hash = "sha256-FntRLdYazY/FeZrOp+DEV3eaaVhn5hxlE4dkUGbemTc=";
hash = "sha256-aOTn7keIM5xTcYLOUW+8pmfpXyMSE/+Yq42Uitlr4OE=";
};
vendorHash = "sha256-npMQah59pJqF6wgD2dlEleneIZbP/atDGEpjjb+KCpI=";

View file

@ -51,13 +51,6 @@ stdenv'.mkDerivation (finalAttrs: {
'CMAKE_MINIMUM_REQUIRED(VERSION 3.10 FATAL_ERROR)'
sed -e '1i #include <cstdint>' -i third_party/cxxopts/include/cxxopts.hpp
# Prevent setting the default nvcc arch flags, which can be
# ones that don't work with the current CUDA version
substituteInPlace CMakeLists.txt \
--replace-fail \
'list(APPEND CUDA_NVCC_FLAGS ''${ARCH_FLAGS})' \
""
'';
nativeBuildInputs = [

View file

@ -7,7 +7,7 @@
python3Packages.buildPythonApplication (finalAttrs: {
pname = "daktari";
version = "0.0.335";
version = "0.0.340";
pyproject = true;
__structuredAttrs = true;
@ -15,7 +15,7 @@ python3Packages.buildPythonApplication (finalAttrs: {
owner = "genio-learn";
repo = "daktari";
tag = "v${finalAttrs.version}";
hash = "sha256-yIhtP5k1qoy59qR10Pv6dqh7X8MACvQRsSAJR/6kEJ4=";
hash = "sha256-gHBpezrya7i4Gh3dQHynS5vJtBhvXndruGsRRBBRde8=";
};
patches = [ ./optional-pyclip.patch ];

View file

@ -1,10 +1,13 @@
{
lib,
buildGoModule,
fetchFromGitHub,
openssl,
pkg-config,
rustPlatform,
versionCheckHook,
}:
buildGoModule (finalAttrs: {
rustPlatform.buildRustPackage (finalAttrs: {
pname = "dalfox";
version = "3.1.2";
@ -15,20 +18,24 @@ buildGoModule (finalAttrs: {
hash = "sha256-0amVlnLwwb7YAUbTce9gRmjv3W1FMgc2/XZQKCettTY=";
};
vendorHash = null;
cargoHash = "sha256-pxlUEGCrJjoakAVpXFq2q73wEWiODsHvdax12quDlec=";
ldflags = [
"-w"
"-s"
];
nativeBuildInputs = [ pkg-config ];
# Tests require network access
buildInputs = [ openssl ];
nativeInstallCheckInputs = [ versionCheckHook ];
# Many unit tests perform live HTTP requests / OOB interactsh lookups and
# fail in the sandbox.
doCheck = false;
doInstallCheck = true;
meta = {
description = "Tool for analysing parameter and XSS scanning";
description = "Tool for analyzing parameter and XSS scanning";
homepage = "https://github.com/hahwul/dalfox";
changelog = "https://github.com/hahwul/dalfox/releases/tag/v${finalAttrs.version}";
changelog = "https://github.com/hahwul/dalfox/releases/tag/${finalAttrs.src.tag}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ fab ];
mainProgram = "dalfox";

View file

@ -9,13 +9,13 @@
buildGoModule (finalAttrs: {
pname = "deck";
version = "1.63.0";
version = "1.64.0";
src = fetchFromGitHub {
owner = "Kong";
repo = "deck";
tag = "v${finalAttrs.version}";
hash = "sha256-WmzjFMOOyx65EGnHdn9pWItFh1HVIp1DbNNwtQrPnPQ=";
hash = "sha256-nVV1nNOQ5zqywUXg3vdyiudryWVRKiDWU0Yc8b0albo=";
};
nativeBuildInputs = [ installShellFiles ];
@ -28,7 +28,7 @@ buildGoModule (finalAttrs: {
];
proxyVendor = true; # darwin/linux hash mismatch
vendorHash = "sha256-YJ8Q/m+yL9x5CYnIOtYWNYcVUy4lHm/IYSm7kNZqqt4=";
vendorHash = "sha256-lo+1ijaWod0UB2PXzmg806q2KYrVu9yNgkI/Nq2lyq4=";
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
installShellCompletion --cmd deck \

View file

@ -9,13 +9,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "dethrace";
version = "0.9.0";
version = "0.10.1";
src = fetchFromGitHub {
owner = "dethrace-labs";
repo = "dethrace";
tag = "v${finalAttrs.version}";
hash = "sha256-+C3NyRLmvXrkZuhLGwIIHFWjXLMpt3srLZCVrxRUlkA=";
hash = "sha256-SGQGErlmsJEhjdvZa2YPJWwNFuZR4RL81W7meilw8t0=";
fetchSubmodules = true;
};

View file

@ -1,97 +0,0 @@
From fade8d04bfdbf473f3930feba7183957372e7fa7 Mon Sep 17 00:00:00 2001
From: Michael Daniels <mdaniels5757@gmail.com>
Date: Sun, 28 Jun 2026 16:20:43 -0400
Subject: [PATCH] fix tests with zipdetails 4.006
---
tests/comparators/test_zip.py | 3 ++-
tests/data/zip2_zipdetails_expected_diff | 2 +-
tests/data/zip_zipdetails_expected_diff | 10 +++++-----
3 files changed, 8 insertions(+), 7 deletions(-)
diff --git a/tests/comparators/test_zip.py b/tests/comparators/test_zip.py
index 75ec38be..ecff1930 100644
--- a/tests/comparators/test_zip.py
+++ b/tests/comparators/test_zip.py
@@ -81,7 +81,7 @@ def differences2(zip1, zip3):
@skip_unless_tools_exist("zipinfo", "zipdetails")
-@skip_unless_tool_is_at_least("zipdetails", zipdetails_version, "4.004")
+@skip_unless_tool_is_at_least("zipdetails", zipdetails_version, "4.006")
@skip_unless_tool_is_at_least("perl", io_compress_zip_version, "2.212")
def test_metadata(differences):
assert_diff(differences[0], "zip_zipinfo_expected_diff")
@@ -96,6 +96,7 @@ def test_compressed_files(differences):
@skip_unless_tools_exist("zipinfo", "bsdtar", "zipdetails")
+@skip_unless_tool_is_at_least("zipdetails", zipdetails_version, "4.006")
@skip_unless_tool_is_at_least("perl", io_compress_zip_version, "2.212")
def test_extra_fields(differences2):
assert_diff(differences2[0], "zip_bsdtar_expected_diff")
diff --git a/tests/data/zip2_zipdetails_expected_diff b/tests/data/zip2_zipdetails_expected_diff
index 291dca88..281cf6c5 100644
--- a/tests/data/zip2_zipdetails_expected_diff
+++ b/tests/data/zip2_zipdetails_expected_diff
@@ -5,7 +5,7 @@
#
0064 Extra ID #1 5455 (21589) 'Extended Timestamp [UT]'
0066 Length 0009 (9)
- 0068 Flags 03 (3) 'Modification Access'
+ 0068 Flags 03 (3) 'Modification & Access'
-0069 Modification Time 558AB455 (1435153493) 'Wed Jun 24 13:44:53 2015'
-006D Access Time 558AB45F (1435153503) 'Wed Jun 24 13:45:03 2015'
+0069 Modification Time 41414141 (1094795585) 'Fri Sep 10 05:53:05 2004'
diff --git a/tests/data/zip_zipdetails_expected_diff b/tests/data/zip_zipdetails_expected_diff
index 978c2583..50df2696 100644
--- a/tests/data/zip_zipdetails_expected_diff
+++ b/tests/data/zip_zipdetails_expected_diff
@@ -23,7 +23,7 @@
#
0064 Extra ID #1 5455 (21589) 'Extended Timestamp [UT]'
0066 Length 0009 (9)
- 0068 Flags 03 (3) 'Modification Access'
+ 0068 Flags 03 (3) 'Modification & Access'
-0069 Modification Time 558AB455 (1435153493) 'Wed Jun 24 13:44:53 2015'
+0069 Modification Time 558AB474 (1435153524) 'Wed Jun 24 13:45:24 2015'
006D Access Time 558AB45F (1435153503) 'Wed Jun 24 13:45:03 2015'
@@ -85,7 +85,7 @@
#
-01BF Extra ID #1 5455 (21589) 'Extended Timestamp [UT]'
-01C1 Length 0005 (5)
--01C3 Flags 03 (3) 'Modification Access'
+-01C3 Flags 03 (3) 'Modification & Access'
-01C4 Modification Time 558AB455 (1435153493) 'Wed Jun 24 13:44:53 2015'
-01C8 Extra ID #2 7875 (30837) 'Unix Extra type 3 [ux]'
-01CA Length 000B (11)
@@ -96,7 +96,7 @@
-01D3 GID 000003E8 (1000)
+024E Extra ID #1 5455 (21589) 'Extended Timestamp [UT]'
+0250 Length 0005 (5)
-+0252 Flags 03 (3) 'Modification Access'
++0252 Flags 03 (3) 'Modification & Access'
+0253 Modification Time 558AB455 (1435153493) 'Wed Jun 24 13:44:53 2015'
+0257 Extra ID #2 7875 (30837) 'Unix Extra type 3 [ux]'
+0259 Length 000B (11)
@@ -163,7 +163,7 @@
#
-020D Extra ID #1 5455 (21589) 'Extended Timestamp [UT]'
-020F Length 0005 (5)
--0211 Flags 03 (3) 'Modification Access'
+-0211 Flags 03 (3) 'Modification & Access'
-0212 Modification Time 558AB455 (1435153493) 'Wed Jun 24 13:44:53 2015'
-0216 Extra ID #2 7875 (30837) 'Unix Extra type 3 [ux]'
-0218 Length 000B (11)
@@ -174,7 +174,7 @@
-0221 GID 000003E8 (1000)
+029C Extra ID #1 5455 (21589) 'Extended Timestamp [UT]'
+029E Length 0005 (5)
-+02A0 Flags 03 (3) 'Modification Access'
++02A0 Flags 03 (3) 'Modification & Access'
+02A1 Modification Time 558AB474 (1435153524) 'Wed Jun 24 13:45:24 2015'
+02A5 Extra ID #2 7875 (30837) 'Unix Extra type 3 [ux]'
+02A7 Length 000B (11)
--
2.54.0

View file

@ -109,12 +109,12 @@ in
# Note: when upgrading this package, please run the list-missing-tools.sh script as described below!
python.pkgs.buildPythonApplication rec {
pname = "diffoscope";
version = "322";
version = "323";
pyproject = true;
src = fetchurl {
url = "https://diffoscope.org/archive/diffoscope-${version}.tar.bz2";
hash = "sha256-dina2JdbLL/jfo4eMuUo62KggST95w0b7oonY86zjgk=";
hash = "sha256-TFSeCS7D2D496rUrosYAWP4kHsu6x386c8AJ5c4aKYs=";
};
outputs = [
@ -124,10 +124,6 @@ python.pkgs.buildPythonApplication rec {
patches = [
./ignore_links.patch
# Remove flags output from an OCaml test's diff, as it's Debian-specific
./remove-flags-from-ocaml-diff.patch
# https://salsa.debian.org/reproducible-builds/diffoscope/-/merge_requests/166
./fix-tests-with-zipdetails-4.006.patch
];
postPatch = ''

View file

@ -1,27 +0,0 @@
From 18cf9ab675691c7173a9b7fafd6d521c3ea75862 Mon Sep 17 00:00:00 2001
From: Michael Daniels <mdaniels5757@gmail.com>
Date: Sat, 20 Jun 2026 11:42:29 -0400
Subject: [PATCH] tests/data/ocaml_expected_diff: remove flags from diff
This output comes from a Debian-specific OCaml patch, see
https://salsa.debian.org/ocaml-team/ocaml/-/blob/archive/debian/5.4.1-1/debian/patches/Print-.cmi-flags-in-objinfo.patch
---
tests/data/ocaml_expected_diff | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/tests/data/ocaml_expected_diff b/tests/data/ocaml_expected_diff
index 79631882..a48de841 100644
--- a/tests/data/ocaml_expected_diff
+++ b/tests/data/ocaml_expected_diff
@@ -1,7 +1,6 @@
-@@ -1,6 +1,6 @@
+@@ -1,5 +1,5 @@
-Unit name: Test1
+Unit name: Test2
- Flags: [ Alerts _ ]
Interfaces imported:
- 351c2dc2fb4a56dac258b47c26262db6 Test1
+ ac02205dc900024a67ede9f394c59d72 Test2
--
2.54.0

View file

@ -0,0 +1,128 @@
{
lib,
fetchurl,
stdenvNoCC,
installShellFiles,
autoPatchelfHook,
makeWrapper,
gccForLibs,
e2fsprogs,
lz4,
xxhash,
zlib,
zstd,
versionCheckHook,
nix-update-script,
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "docker-sbx";
version = "0.34.0";
src =
if stdenvNoCC.hostPlatform.system == "x86_64-linux" then
fetchurl {
url = "https://github.com/docker/sbx-releases/releases/download/v${finalAttrs.version}/DockerSandboxes-linux-amd64.tar.gz";
hash = "sha256-5H9LOyKi0/SBVJ0ld6OkcP1h9r9eHrAb4fsVVVdMusg=";
}
else if stdenvNoCC.hostPlatform.system == "aarch64-linux" then
fetchurl {
url = "https://github.com/docker/sbx-releases/releases/download/v${finalAttrs.version}/DockerSandboxes-linux-arm64.tar.gz";
hash = "sha256-dZ/ttnmaf62rA5Cs8YSmZGHVQoy9PQh3Ok/AnIjCqZ4=";
}
else if stdenvNoCC.hostPlatform.system == "aarch64-darwin" then
fetchurl {
url = "https://github.com/docker/sbx-releases/releases/download/v${finalAttrs.version}/DockerSandboxes-darwin.tar.gz";
hash = "sha256-aBh6NbtQ5o2zxuR+d1U1gZpm2bch/J3Y8GZ73DeUBUk=";
}
else
throw "Unsupported host platform ${stdenvNoCC.hostPlatform.system}";
strictDeps = true;
__structuredAttrs = true;
sourceRoot = if stdenvNoCC.hostPlatform.isDarwin then "." else null;
nativeBuildInputs = [
installShellFiles
versionCheckHook
]
++ lib.optionals stdenvNoCC.hostPlatform.isLinux [
autoPatchelfHook
makeWrapper
e2fsprogs
];
buildInputs = lib.optionals stdenvNoCC.hostPlatform.isLinux [
lz4
zlib
zstd
xxhash
gccForLibs
];
dontBuild = true;
doInstallCheck = true;
versionCheckProgramArg = "version";
versionCheckKeepEnvironment = [ "HOME" ];
preVersionCheck = ''
export HOME=$TMPDIR
'';
installPhase =
if stdenvNoCC.hostPlatform.isLinux then
''
runHook preInstall
PREFIX=$out bash ./install.sh
wrapProgram $out/bin/sbx \
--prefix PATH : ${lib.makeBinPath [ e2fsprogs ]}
${lib.optionalString (stdenvNoCC.buildPlatform.canExecute stdenvNoCC.hostPlatform) ''
export HOME=$TMPDIR
$out/bin/sbx completion bash > sbx.bash
$out/bin/sbx completion fish > sbx.fish
$out/bin/sbx completion zsh > sbx.zsh
installShellCompletion sbx.{bash,fish,zsh}
''}
runHook postInstall
''
else
''
runHook preInstall
mkdir -pv $out
cp -rv bin libexec $out
installShellCompletion \
--bash --name sbx.bash completions/bash/sbx \
--zsh --name _sbx completions/zsh/_sbx \
--fish --name sbx.fish completions/fish/sbx.fish
runHook postInstall
'';
passthru.updateScript = nix-update-script { };
meta = {
description = "Safe environments for agents";
longDescription = ''
Docker Sandboxes provides sandboxes with controlled access to your
filesystem, network, and tools. This means your agents can work
autonomously without putting your machine or data at risk.
'';
homepage = "https://docs.docker.com/reference/cli/sbx/";
changelog = "https://github.com/docker/sbx-releases/releases/tag/v${finalAttrs.version}";
mainProgram = "sbx";
platforms = [
"x86_64-linux"
"aarch64-linux"
"aarch64-darwin"
];
license = lib.licenses.unfree;
maintainers = [
lib.maintainers.skyesoss
lib.maintainers.erics118
];
};
})

View file

@ -31,7 +31,7 @@ stdenv.mkDerivation (finalAttrs: {
];
postUnpack = ''
rm source/{dumpifs,exMifsLzo,uuu,zzz}
rm ${finalAttrs.src.name}/{dumpifs,exMifsLzo,uuu,zzz}
'';
patches = [ ./package.patch ];

View file

@ -10,20 +10,20 @@
let
pname = "electron-mail";
version = "5.3.7";
version = "5.3.8";
sources = {
x86_64-linux = fetchurl {
url = "https://github.com/vladimiry/ElectronMail/releases/download/v${version}/electron-mail-${version}-linux-x86_64.AppImage";
hash = "sha256-VJbCQ/4yIuBE4NPDFUbp8t2G/QjUclphH/MghvamDVo=";
hash = "sha256-twqB1D3zLlZJuxQWD4dGF70w57yYv6i3abGBidERsss=";
};
aarch64-darwin = fetchurl {
url = "https://github.com/vladimiry/ElectronMail/releases/download/v${version}/electron-mail-${version}-mac-arm64.dmg";
hash = "sha256-ulB+dlp6ZBhcBJiLY4k+E/oEWy9XSIuIzd5rTzEq9+4=";
hash = "sha256-V32Wi0oCU9dLfzqxg3OdseiILX7wPiBGNz7KuG0vlZY=";
};
x86_64-darwin = fetchurl {
url = "https://github.com/vladimiry/ElectronMail/releases/download/v${version}/electron-mail-${version}-mac-x64.dmg";
hash = "sha256-LbAqUj34m8qSq8sQ1xgCQj9+MfJHoFDRMq+/waMKtzM=";
hash = "sha256-I1UvFMSdAwkqgkhn+mkBGslA8v+VTajO/Za0lJ5uYZ8=";
};
};

View file

@ -6,14 +6,14 @@
python3.pkgs.buildPythonApplication (finalAttrs: {
pname = "embedxpl";
version = "3.8.1";
version = "3.8.8";
pyproject = true;
src = fetchFromGitHub {
owner = "mrhenrike";
repo = "EmbedXPL-Forge";
tag = "v${finalAttrs.version}";
hash = "sha256-y3Ftmqb5RnY1U2uqrq4Olyr0I0ZVJo/pgMY7RpbZqlU=";
hash = "sha256-L3gY2wna1V7nF/vGwr1hzq8WeQxTTsvgKMAatVUKZ9E=";
};
__structuredAttrs = true;

View file

@ -7,13 +7,13 @@
}:
llvmPackages.stdenv.mkDerivation rec {
pname = "enzyme";
version = "0.0.271";
version = "0.0.277";
src = fetchFromGitHub {
owner = "EnzymeAD";
repo = "Enzyme";
rev = "v${version}";
hash = "sha256-R3hdy6VSTHBe2ei4aysJhrc++ptQioVe88p/c2CuUP4=";
hash = "sha256-GAICiChPRRFBsZsQtCpPBzNvjWpx5YSAlwYL0/fEe5A=";
};
postPatch = ''

View file

@ -2,6 +2,7 @@
lib,
fetchFromGitHub,
python3,
writableTmpDirAsHomeHook,
}:
python3.pkgs.buildPythonApplication (finalAttrs: {
@ -21,6 +22,7 @@ python3.pkgs.buildPythonApplication (finalAttrs: {
--replace-fail '"pytest-runner",' "" '';
pythonRelaxDeps = [
"pytenable"
"python-socketio"
];
@ -28,13 +30,9 @@ python3.pkgs.buildPythonApplication (finalAttrs: {
"python-owasp-zap-v2.4"
];
build-system = with python3.pkgs; [
setuptools-scm
];
build-system = with python3.pkgs; [ setuptools-scm ];
nativeBuildInputs = [
python3.pkgs.python-owasp-zap-v2-4
];
nativeBuildInputs = with python3.pkgs; [ python-owasp-zap-v2-4 ];
dependencies = with python3.pkgs; [
aiohttp
@ -57,12 +55,9 @@ python3.pkgs.buildPythonApplication (finalAttrs: {
nativeCheckInputs = with python3.pkgs; [
pytest-asyncio
pytestCheckHook
writableTmpDirAsHomeHook
];
preCheck = ''
export HOME=$(mktemp -d);
'';
disabledTests = [
"test_execute_agent"
"SSL"
@ -74,14 +69,12 @@ python3.pkgs.buildPythonApplication (finalAttrs: {
"tests/unittests/test_import_official_executors.py"
];
pythonImportsCheck = [
"faraday_agent_dispatcher"
];
pythonImportsCheck = [ "faraday_agent_dispatcher" ];
meta = {
description = "Tool to send result from tools to the Faraday Platform";
homepage = "https://github.com/infobyte/faraday_agent_dispatcher";
changelog = "https://github.com/infobyte/faraday_agent_dispatcher/releases/tag/${finalAttrs.version}";
changelog = "https://github.com/infobyte/faraday_agent_dispatcher/releases/tag/${finalAttrs.src.tag}";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ fab ];
mainProgram = "faraday-dispatcher";

View file

@ -7,14 +7,14 @@
python3.pkgs.buildPythonApplication (finalAttrs: {
pname = "fetchtastic";
version = "0.10.10";
version = "0.10.11";
pyproject = true;
src = fetchFromGitHub {
owner = "jeremiah-k";
repo = "fetchtastic";
tag = finalAttrs.version;
hash = "sha256-ImXBH1mvJE+Ae7fUqR/Z381TKGt6hq0BRHhdtOz3YO4=";
hash = "sha256-/kp9bfJJLffZp+9dEY7G+RQmE43XXwNozkDYjeAjPkc=";
};
pythonRelaxDeps = [ "platformdirs" ];

View file

@ -2,6 +2,7 @@
lib,
php,
fetchFromGitHub,
nixosTests,
}:
php.buildComposerProject2 (finalAttrs: {
@ -19,6 +20,8 @@ php.buildComposerProject2 (finalAttrs: {
composerStrictValidation = false;
vendorHash = "sha256-EHl+Mr6y5A51EpLPAWUGtiPkLOky6KvsSY4JWHeyO28=";
passthru.tests.module = nixosTests.flarum;
meta = {
changelog = "https://github.com/flarum/framework/blob/main/CHANGELOG.md";
description = "Delightfully simple discussion platform for your website";

View file

@ -12,7 +12,7 @@
buildGoModule rec {
pname = "flyctl";
version = "0.4.60";
version = "0.4.63";
src = fetchFromGitHub {
owner = "superfly";
@ -22,11 +22,11 @@ buildGoModule rec {
cd "$out"
git rev-parse HEAD > COMMIT
'';
hash = "sha256-ToKKn3Scj++VLv0SCMNQHkbffs2aADto0tLv80aFqzc=";
hash = "sha256-dGqL6lKx67VzlfHvaCpOTpHtFao99zLIYXiORPHP5e8=";
};
proxyVendor = true;
vendorHash = "sha256-XBpLOhC3fY18o0tQZXgyKrQRgd84U5SRo6Rrgkuq4f8=";
vendorHash = "sha256-X6cEAaUIHTJoNwoBlGFZUA4M8/AnRY3oTiWW7/03PXY=";
subPackages = [ "." ];

View file

@ -8,13 +8,13 @@
buildGoModule (finalAttrs: {
pname = "forgejo-mcp";
version = "2.30.0";
version = "2.30.1";
src = fetchFromCodeberg {
owner = "goern";
repo = "forgejo-mcp";
tag = "v${finalAttrs.version}";
hash = "sha256-DV8lL6Q/0gD8mFn3q5UusHv8ahNtmk9t9vtbhpvpxBs=";
hash = "sha256-Xi75PFZuNKDfxFhnwYsArD9GphrRLxJlFZgzocMR4C4=";
};
vendorHash = "sha256-QDJRbF4mZzBv1vxvo1ZQJaUJayRHj1jMgjaRfAmLMik=";

View file

@ -16,24 +16,24 @@
let
pname = "freelens-bin";
version = "1.10.1";
version = "1.10.2";
sources = {
x86_64-linux = {
url = "https://github.com/freelensapp/freelens/releases/download/v${version}/Freelens-${version}-linux-amd64.AppImage";
hash = "sha256-Hbu28vbgaSEjJTAVSfHJ3cZGd2PRU0ex7dNv0wo1SrI=";
hash = "sha256-l+6QnlDnNs2t4auJRS0MLy592OfQDd0tDNqiVH5xJ3g=";
};
aarch64-linux = {
url = "https://github.com/freelensapp/freelens/releases/download/v${version}/Freelens-${version}-linux-arm64.AppImage";
hash = "sha256-JrApeOjMXNNi/wCq6vY6rYpPGgMWti0H+2i7QNEXaTc=";
hash = "sha256-Pw6RPa6T9jN7XAfOqj6lDFzTqhwOT1DgK35cANyBAOE=";
};
x86_64-darwin = {
url = "https://github.com/freelensapp/freelens/releases/download/v${version}/Freelens-${version}-macos-amd64.dmg";
hash = "sha256-BIBEaQFny/DvzrvsC38UPiIqBFaxUO/DOVQTIe2gL+Q=";
hash = "sha256-6qn/3Zly7nvj9XxihUdmkguLWw0a7Y321Xv7EnJzjkc=";
};
aarch64-darwin = {
url = "https://github.com/freelensapp/freelens/releases/download/v${version}/Freelens-${version}-macos-arm64.dmg";
hash = "sha256-5duswriuDmL92tXqLckBhH2RMPFDqFRG/WW9oYMClGY=";
hash = "sha256-ARIvUMkkdUK5O6xdplXJ/JkPdezO/16HvO2P21W6y8I=";
};
};

View file

@ -83,7 +83,7 @@ stdenv.mkDerivation (finalAttrs: {
meta = {
homepage = "https://davidgriffith.gitlab.io/frotz/";
changelog = "https://gitlab.com/DavidGriffith/frotz/-/raw/${finalAttrs.version}/NEWS";
changelog = "https://gitlab.com/DavidGriffith/frotz/-/raw/${finalAttrs.version}/ChangeLog";
description = "Z-machine interpreter for Infocom games and other interactive fiction (${frontend})";
mainProgram = progName;
platforms = lib.platforms.unix;

View file

@ -0,0 +1,50 @@
{
lib,
stdenvNoCC,
fetchurl,
undmg,
makeWrapper,
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "gamemac";
version = "0.8.328";
src = fetchurl {
name = "GameHub_en_${finalAttrs.version}.dmg";
url = "https://gamehub-cdn.masnet.cn/uploads/upgrade/20260618/b616a96780c249a789d95f7b897333cb.dmg";
hash = "sha256-uo/kr9PAFREfbkXX9hpJJNT6OZDv3jnOuZgc2fwtSyM=";
};
strictDeps = true;
__structuredAttrs = true;
nativeBuildInputs = [
undmg
makeWrapper
];
sourceRoot = ".";
installPhase = ''
runHook preInstall
mkdir -p "$out/Applications" "$out/bin"
mv GameHub.app "$out/Applications/"
makeWrapper "$out/Applications/GameHub.app/Contents/MacOS/GameHub" "$out/bin/GameHub"
runHook postInstall
'';
passthru.updateScript = ./update.sh;
meta = {
description = "Play mobile games natively on macOS";
homepage = "https://www.gamemac.com/en/";
license = lib.licenses.unfree;
maintainers = with lib.maintainers; [ damidoug ];
mainProgram = "GameHub";
platforms = lib.platforms.darwin;
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
};
})

View file

@ -0,0 +1,32 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p bash curl gnused nix
set -euo pipefail
cd "$(dirname "${BASH_SOURCE[0]}")"
ROLLING_URL="https://api-international-gamehub.xiaoji.com/game/download/mac/en"
UA="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"
# Resolve rolling URL to stable CDN URL (strip query string)
DIRECT_URL=$(curl -fsSL -A "$UA" -w "%{url_effective}" -o /dev/null "$ROLLING_URL")
CDN_URL="${DIRECT_URL%%\?*}"
# Extract version from CDN filename (e.g. .../GameHub_en_0.8.328.dmg)
VERSION=$(basename "$CDN_URL" | grep -oE '[0-9]+\.[0-9]+\.[0-9]+')
CURRENT=$(grep 'version = ' package.nix | head -1 | grep -oE '"[0-9.]+"' | tr -d '"')
if [ "$VERSION" = "$CURRENT" ]; then
echo "Already at $VERSION"
exit 0
fi
HASH=$(nix-prefetch-url --name "GameHub_en_${VERSION}.dmg" --type sha256 "$CDN_URL")
SRI=$(nix-hash --to-sri --type sha256 "$HASH")
sed -i \
-e "s|version = \"[^\"]*\"|version = \"$VERSION\"|" \
-e "s|https://gamehub-cdn\.masnet\.cn/uploads/upgrade/[^\"]*|$CDN_URL|" \
-e "s|hash = \"sha256-[^\"]*\"|hash = \"$SRI\"|" \
package.nix
echo "Updated $CURRENT -> $VERSION"

View file

@ -9,16 +9,16 @@
buildGoModule (finalAttrs: {
pname = "gcx";
version = "0.4.0";
version = "0.4.2";
src = fetchFromGitHub {
owner = "grafana";
repo = "gcx";
tag = "v${finalAttrs.version}";
hash = "sha256-6ZKlNLtP3dwPAIXGnupIk0wuXs+qMy2d2OreKfKJlxM=";
hash = "sha256-Gf05N13ZJLjB55eCcIfXIoJn3CVAAR5mcFyEq8s+RxY=";
};
vendorHash = "sha256-FzhQfooCApBsnNH/cZYFfy3m4cDSBVX9ueaWfhTgx1k=";
vendorHash = "sha256-JioNpEqGFxD6Gg84ZZ/9OrETxTGn2V+HMlGGiiZfeIo=";
subPackages = [ "cmd/gcx" ];

View file

@ -12,13 +12,13 @@
buildNpmPackage (finalAttrs: {
pname = "ghostfolio";
version = "3.13.0";
version = "3.18.0";
src = fetchFromGitHub {
owner = "ghostfolio";
repo = "ghostfolio";
tag = finalAttrs.version;
hash = "sha256-tPVGMAP45x/4NTL8px9jEbW6hQyhiOYiZp0tuDdfYL8=";
hash = "sha256-BSH7NQV2iTmfGE6dHQEeObQQ5CkKZxsgHAbrjElHHHE=";
# populate values that require us to use git. By doing this in postFetch we
# can delete .git afterwards and maintain better reproducibility of the src.
leaveDotGit = true;
@ -28,7 +28,7 @@ buildNpmPackage (finalAttrs: {
'';
};
npmDepsHash = "sha256-0/tHzfJrotlCxhiiVC6yddlj62Ef6IAeaZf/xufFiWU=";
npmDepsHash = "sha256-0Si+3zHyGoMbgEpNWdZVp+obNE0oqM8ghYDZvloJU5g=";
postPatch = ''
substituteInPlace replace.build.mjs \

View file

@ -9,14 +9,14 @@
python3.pkgs.buildPythonApplication (finalAttrs: {
pname = "git-machete";
version = "3.41.0";
version = "3.44.0";
pyproject = true;
src = fetchFromGitHub {
owner = "virtuslab";
repo = "git-machete";
tag = "v${finalAttrs.version}";
hash = "sha256-3BofEBgHgtdpQeaMx1BaNtDQ/HmX3GYagKOVHGq1+os=";
hash = "sha256-3yUzHzhc6qHw8jPbO9ZMsffhXgEyAlT2NzYCuC9/qsc=";
};
build-system = with python3.pkgs; [ setuptools ];

View file

@ -9,7 +9,7 @@
}:
let
version = "6.4.3";
version = "6.5.2";
in
rustPlatform.buildRustPackage {
pname = "git-mit";
@ -19,10 +19,10 @@ rustPlatform.buildRustPackage {
owner = "PurpleBooth";
repo = "git-mit";
tag = "v${version}";
hash = "sha256-Id7S0qE1020pPMoyCl8jkHWrbdOb6FZHLNsqRvwjpf8=";
hash = "sha256-5tVNCvaNxW9Ko+x2GWi3fMpyuwxgjMNLTED6gvxagnI=";
};
cargoHash = "sha256-edKtumK9HGIXHy/ZdxZ1+lxYi+cS5G129E+WK9/JE10=";
cargoHash = "sha256-gSvFdvW+XW0MGFkwAkVrcC1ETjoGaFJxioD9ENEpml4=";
nativeBuildInputs = [ pkg-config ];

View file

@ -8,13 +8,13 @@
buildGoModule (finalAttrs: {
pname = "github-mcp-server";
version = "1.4.0";
version = "1.5.0";
src = fetchFromGitHub {
owner = "github";
repo = "github-mcp-server";
tag = "v${finalAttrs.version}";
hash = "sha256-5INN7B/F1KcyZwZ3xeOBiCnfAdK1PXVnMZf3t8JIk6I=";
hash = "sha256-O8ooNaFmWXMhsn7UQITgo48VkdYbVTCC4WkHoU9abyo=";
};
vendorHash = "sha256-J1hC4hdEKLENXLJrsyV41TaJ9+2CuPz5KoIMm2mXvTE=";

View file

@ -2,7 +2,7 @@
lib,
stdenv,
fetchFromGitHub,
pnpm_10_29_2,
pnpm_10,
fetchPnpmDeps,
pnpmConfigHook,
nodejs,
@ -14,7 +14,7 @@
nix-update-script,
}:
let
pnpm = pnpm_10_29_2;
pnpm = pnpm_10;
in
stdenv.mkDerivation (finalAttrs: {
pname = "gitify";

View file

@ -0,0 +1,38 @@
{
lib,
buildGoModule,
fetchFromGitHub,
nix-update-script,
}:
buildGoModule (finalAttrs: {
pname = "gitlab-ci-validate";
version = "0.6.0";
__structuredAttrs = true;
src = fetchFromGitHub {
owner = "Code0x58";
repo = "gitlab-ci-validate";
tag = "v${finalAttrs.version}";
hash = "sha256-j32knPhVio2OTATkW1Z3SMMYwl9u6Lh00Rell/knQ/0=";
};
vendorHash = "sha256-/+iu9SIaLtE51xcEzgA8dCp0eTAoPskp4xGlm1bsXTs=";
ldflags = [
"-s"
"-w"
"-X=main.version=${finalAttrs.version}"
];
passthru.updateScript = nix-update-script { };
meta = {
description = "Command line tool to validate .gitlab-ci.yml files";
homepage = "https://github.com/Code0x58/gitlab-ci-validate";
changelog = "https://github.com/Code0x58/gitlab-ci-validate/releases/tag/${finalAttrs.src.tag}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ drupol ];
mainProgram = "gitlab-ci-validate";
};
})

View file

@ -10,13 +10,13 @@
buildNpmPackage (finalAttrs: {
pname = "glitchtip-frontend";
version = "6.1.8";
version = "6.2.0";
src = fetchFromGitLab {
owner = "glitchtip";
repo = "glitchtip-frontend";
tag = "v${finalAttrs.version}";
hash = "sha256-y8NPj1xjGnGS9yBFaRjFRxLdTGrAq08T9N7cZN5IeSc=";
hash = "sha256-iKY1w9lmfuyvDblH/TlnUwAnda17qWGxmx1qtmQRENg=";
};
nodejs = nodejs_22;
@ -25,7 +25,7 @@ buildNpmPackage (finalAttrs: {
name = "${finalAttrs.pname}-${finalAttrs.version}-npm-deps";
inherit (finalAttrs) src;
npmDepsFetcherVersion = 3;
hash = "sha256-AIzPJpNvGV/U71UFAUwOqx8kb31s7LXhMha4bXV+oCU=";
hash = "sha256-V9aRKoJ6+BN/q7NS21eZBopzkWje8sOGGL1AgO4cUM0=";
};
postPatch = ''

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