Merge master into staging-next

Changed files
+1947 -1086
doc
languages-frameworks
lib
nixos
doc
modules
misc
services
desktops
home-automation
networking
tests
pkgs
applications
editors
vscode
extensions
emulators
flycast
misc
camunda-modeler
jetbrains-toolbox
kemai
networking
browsers
firefox
palemoon
cluster
terraform-providers
by-name
ro
rockyou
se
seclists
ui
wo
wordlists
development
compilers
elm
packages
gleam
libraries
boost-ext
boost-sml
cracklib
intel-media-driver
libfive
mobile
maestro
python-modules
aioesphomeapi
bluetooth-data-tools
geoalchemy2
home-assistant-bluetooth
jupyter-cache
labgrid
maison
mechanize
omemo-dr
omrdatasettools
pyatmo
python-jenkins
python-telegram
scikit-rf
tabula-py
tailscale
telegram-text
ulid-transform
wfuzz
skaware-packages
skalibs
tools
build-managers
bazel
bazel_6
rust
cargo-update
viceroy
yarn-berry
games
anki
servers
dns
pdns-recursor
home-assistant
http
apt-cacher-ng
mir
monitoring
nagios
prayer
xmpp
ejabberd
tools
networking
package-management
security
top-level
+7 -7
doc/languages-frameworks/python.section.md
···
```nix
{ lib
-
, python3
, fetchPypi
}:
-
python3.pkgs.buildPythonApplication rec {
pname = "luigi";
version = "2.7.9";
pyproject = true;
···
};
nativeBuildInputs = [
-
python3.pkgs.setuptools
-
python3.pkgs.wheel
];
-
propagatedBuildInputs = with python3.pkgs; [
-
tornado
-
python-daemon
];
meta = with lib; {
···
```nix
{ lib
+
, python3Packages
, fetchPypi
}:
+
python3Packages.buildPythonApplication rec {
pname = "luigi";
version = "2.7.9";
pyproject = true;
···
};
nativeBuildInputs = [
+
python3Packages.setuptools
+
python3Packages.wheel
];
+
propagatedBuildInputs = [
+
python3Packages.tornado
+
python3Packages.python-daemon
];
meta = with lib; {
-1
lib/fileset/README.md
···
- > The file set library is currently somewhat limited but is being expanded to include more functions over time.
in [the manual](../../doc/functions/fileset.section.md)
-
- If/Once a function to convert `lib.sources` values into file sets exists, the `_coerce` and `toSource` functions should be updated to mention that function in the error when such a value is passed
- If/Once a function exists that can optionally include a path depending on whether it exists, the error message for the path not existing in `_coerce` should mention the new function
···
- > The file set library is currently somewhat limited but is being expanded to include more functions over time.
in [the manual](../../doc/functions/fileset.section.md)
- If/Once a function exists that can optionally include a path depending on whether it exists, the error message for the path not existing in `_coerce` should mention the new function
+77 -1
lib/fileset/default.nix
···
inherit (import ./internal.nix { inherit lib; })
_coerce
_coerceMany
_toSourceFilter
_unionMany
_fileFilter
_printFileset
···
sourceFilter = _toSourceFilter fileset;
in
if ! isPath root then
-
if isStringLike root then
throw ''
lib.fileset.toSource: `root` (${toString root}) is a string-like value, but it should be a path instead.
Paths in strings are not supported by `lib.fileset`, use `lib.sources` or derivations instead.''
···
src = root;
filter = sourceFilter;
};
/*
The file set containing all files that are in either of two given file sets.
···
inherit (import ./internal.nix { inherit lib; })
_coerce
+
_singleton
_coerceMany
_toSourceFilter
+
_fromSourceFilter
_unionMany
_fileFilter
_printFileset
···
sourceFilter = _toSourceFilter fileset;
in
if ! isPath root then
+
if root ? _isLibCleanSourceWith then
+
throw ''
+
lib.fileset.toSource: `root` is a `lib.sources`-based value, but it should be a path instead.
+
To use a `lib.sources`-based value, convert it to a file set using `lib.fileset.fromSource` and pass it as `fileset`.
+
Note that this only works for sources created from paths.''
+
else if isStringLike root then
throw ''
lib.fileset.toSource: `root` (${toString root}) is a string-like value, but it should be a path instead.
Paths in strings are not supported by `lib.fileset`, use `lib.sources` or derivations instead.''
···
src = root;
filter = sourceFilter;
};
+
+
/*
+
Create a file set with the same files as a `lib.sources`-based value.
+
This does not import any of the files into the store.
+
+
This can be used to gradually migrate from `lib.sources`-based filtering to `lib.fileset`.
+
+
A file set can be turned back into a source using [`toSource`](#function-library-lib.fileset.toSource).
+
+
:::{.note}
+
File sets cannot represent empty directories.
+
Turning the result of this function back into a source using `toSource` will therefore not preserve empty directories.
+
:::
+
+
Type:
+
fromSource :: SourceLike -> FileSet
+
+
Example:
+
# There's no cleanSource-like function for file sets yet,
+
# but we can just convert cleanSource to a file set and use it that way
+
toSource {
+
root = ./.;
+
fileset = fromSource (lib.sources.cleanSource ./.);
+
}
+
+
# Keeping a previous sourceByRegex (which could be migrated to `lib.fileset.unions`),
+
# but removing a subdirectory using file set functions
+
difference
+
(fromSource (lib.sources.sourceByRegex ./. [
+
"^README\.md$"
+
# This regex includes everything in ./doc
+
"^doc(/.*)?$"
+
])
+
./doc/generated
+
+
# Use cleanSource, but limit it to only include ./Makefile and files under ./src
+
intersection
+
(fromSource (lib.sources.cleanSource ./.))
+
(unions [
+
./Makefile
+
./src
+
]);
+
*/
+
fromSource = source:
+
let
+
# This function uses `._isLibCleanSourceWith`, `.origSrc` and `.filter`,
+
# which are technically internal to lib.sources,
+
# but we'll allow this since both libraries are in the same code base
+
# and this function is a bridge between them.
+
isFiltered = source ? _isLibCleanSourceWith;
+
path = if isFiltered then source.origSrc else source;
+
in
+
# We can only support sources created from paths
+
if ! isPath path then
+
if isStringLike path then
+
throw ''
+
lib.fileset.fromSource: The source origin of the argument is a string-like value ("${toString path}"), but it should be a path instead.
+
Sources created from paths in strings cannot be turned into file sets, use `lib.sources` or derivations instead.''
+
else
+
throw ''
+
lib.fileset.fromSource: The source origin of the argument is of type ${typeOf path}, but it should be a path instead.''
+
else if ! pathExists path then
+
throw ''
+
lib.fileset.fromSource: The source origin (${toString path}) of the argument does not exist.''
+
else if isFiltered then
+
_fromSourceFilter path source.filter
+
else
+
# If there's no filter, no need to run the expensive conversion, all subpaths will be included
+
_singleton path;
/*
The file set containing all files that are in either of two given file sets.
+59 -1
lib/fileset/internal.nix
···
else
value
else if ! isPath value then
-
if isStringLike value then
throw ''
${context} ("${toString value}") is a string-like value, but it should be a file set or a path instead.
Paths represented as strings are not supported by `lib.fileset`, use `lib.sources` or derivations instead.''
···
empty
else
nonEmpty;
# Transforms the filesetTree of a file set to a shorter base path, e.g.
# _shortenTreeBase [ "foo" ] (_create /foo/bar null)
···
else
value
else if ! isPath value then
+
if value ? _isLibCleanSourceWith then
+
throw ''
+
${context} is a `lib.sources`-based value, but it should be a file set or a path instead.
+
To convert a `lib.sources`-based value to a file set you can use `lib.fileset.fromSource`.
+
Note that this only works for sources created from paths.''
+
else if isStringLike value then
throw ''
${context} ("${toString value}") is a string-like value, but it should be a file set or a path instead.
Paths represented as strings are not supported by `lib.fileset`, use `lib.sources` or derivations instead.''
···
empty
else
nonEmpty;
+
+
# Turn a builtins.filterSource-based source filter on a root path into a file set
+
# containing only files included by the filter.
+
# The filter is lazily called as necessary to determine whether paths are included
+
# Type: Path -> (String -> String -> Bool) -> fileset
+
_fromSourceFilter = root: sourceFilter:
+
let
+
# During the recursion we need to track both:
+
# - The path value such that we can safely call `readDir` on it
+
# - The path string value such that we can correctly call the `filter` with it
+
#
+
# While we could just recurse with the path value,
+
# this would then require converting it to a path string for every path,
+
# which is a fairly expensive operation
+
+
# Create a file set from a directory entry
+
fromDirEntry = path: pathString: type:
+
# The filter needs to run on the path as a string
+
if ! sourceFilter pathString type then
+
null
+
else if type == "directory" then
+
fromDir path pathString
+
else
+
type;
+
+
# Create a file set from a directory
+
fromDir = path: pathString:
+
mapAttrs
+
# This looks a bit funny, but we need both the path-based and the path string-based values
+
(name: fromDirEntry (path + "/${name}") (pathString + "/${name}"))
+
# We need to readDir on the path value, because reading on a path string
+
# would be unspecified if there are multiple filesystem roots
+
(readDir path);
+
+
rootPathType = pathType root;
+
+
# We need to convert the path to a string to imitate what builtins.path calls the filter function with.
+
# We don't want to rely on `toString` for this though because it's not very well defined, see ../path/README.md
+
# So instead we use `lib.path.splitRoot` to safely deconstruct the path into its filesystem root and subpath
+
# We don't need the filesystem root though, builtins.path doesn't expose that in any way to the filter.
+
# So we only need the components, which we then turn into a string as one would expect.
+
rootString = "/" + concatStringsSep "/" (components (splitRoot root).subpath);
+
in
+
if rootPathType == "directory" then
+
# We imitate builtins.path not calling the filter on the root path
+
_create root (fromDir root rootString)
+
else
+
# Direct files are always included by builtins.path without calling the filter
+
# But we need to lift up the base path to its parent to satisfy the base path invariant
+
_create (dirOf root)
+
{
+
${baseNameOf root} = rootPathType;
+
};
# Transforms the filesetTree of a file set to a shorter base path, e.g.
# _shortenTreeBase [ "foo" ] (_create /foo/bar null)
+262 -26
lib/fileset/tests.sh
···
#!/usr/bin/env bash
# shellcheck disable=SC2016
# Tests lib.fileset
# Run:
···
fi
}
# Check whether a file set includes/excludes declared paths as expected, usage:
#
# tree=(
···
# [c/d/]= # Declare that directory c/d/ should exist and expect it to be excluded in the store path
# )
# checkFileset './a' # Pass the fileset as the argument
-
declare -A tree
checkFileset() {
# New subshell so that we can have a separate trap handler, see `trap` below
local fileset=$1
# Process the tree into separate arrays for included paths, excluded paths and excluded files.
local -a included=()
local -a excluded=()
local -a excludedFiles=()
-
# Track which paths need to be created
-
local -a dirsToCreate=()
-
local -a filesToCreate=()
for p in "${!tree[@]}"; do
-
# If keys end with a `/` we treat them as directories, otherwise files
-
if [[ "$p" =~ /$ ]]; then
-
dirsToCreate+=("$p")
-
isFile=
-
else
-
filesToCreate+=("$p")
-
isFile=1
-
fi
case "${tree[$p]}" in
1)
included+=("$p")
;;
0)
excluded+=("$p")
-
if [[ -n "$isFile" ]]; then
excludedFiles+=("$p")
fi
;;
···
esac
done
-
# Create all the necessary paths.
-
# This is done with only a fixed number of processes,
-
# in order to not be too slow
-
# Though this does mean we're a bit limited with how many files can be created
-
if (( ${#dirsToCreate[@]} != 0 )); then
-
mkdir -p "${dirsToCreate[@]}"
-
fi
-
if (( ${#filesToCreate[@]} != 0 )); then
-
readarray -d '' -t parentsToCreate < <(dirname -z "${filesToCreate[@]}")
-
mkdir -p "${parentsToCreate[@]}"
-
touch "${filesToCreate[@]}"
-
fi
-
expression="toSource { root = ./.; fileset = $fileset; }"
# We don't have lambda's in bash unfortunately,
···
expectFailure 'toSource { root = "/nix/store/foobar"; fileset = ./.; }' 'lib.fileset.toSource: `root` \(/nix/store/foobar\) is a string-like value, but it should be a path instead.
\s*Paths in strings are not supported by `lib.fileset`, use `lib.sources` or derivations instead.'
# Only paths are accepted as `root`
expectFailure 'toSource { root = 10; fileset = ./.; }' 'lib.fileset.toSource: `root` is of type int, but it should be a path instead.'
···
expectFailure 'toSource { root = ./.; fileset = 10; }' 'lib.fileset.toSource: `fileset` is of type int, but it should be a file set or a path instead.'
expectFailure 'toSource { root = ./.; fileset = "/some/path"; }' 'lib.fileset.toSource: `fileset` \("/some/path"\) is a string-like value, but it should be a file set or a path instead.
\s*Paths represented as strings are not supported by `lib.fileset`, use `lib.sources` or derivations instead.'
# Path coercion errors for non-existent paths
expectFailure 'toSource { root = ./.; fileset = ./a; }' 'lib.fileset.toSource: `fileset` \('"$work"'/a\) is a path that does not exist.'
···
# We need an excluded file so it doesn't print as `(all files in directory)`
touch 0 "${filesToCreate[@]}"
expectTrace 'unions (mapAttrsToList (n: _: ./. + "/${n}") (removeAttrs (builtins.readDir ./.) [ "0" ]))' "$expectedTrace"
rm -rf -- *
# TODO: Once we have combinators and a property testing library, derive property tests from https://en.wikipedia.org/wiki/Algebra_of_sets
···
#!/usr/bin/env bash
# shellcheck disable=SC2016
+
# shellcheck disable=SC2317
+
# shellcheck disable=SC2192
# Tests lib.fileset
# Run:
···
fi
}
+
+
# Create the tree structure declared in the tree variable, usage:
+
#
+
# tree=(
+
# [a/b] = # Declare that file a/b should exist
+
# [c/a] = # Declare that file c/a should exist
+
# [c/d/]= # Declare that directory c/d/ should exist
+
# )
+
# createTree
+
declare -A tree
+
createTree() {
+
# Track which paths need to be created
+
local -a dirsToCreate=()
+
local -a filesToCreate=()
+
for p in "${!tree[@]}"; do
+
# If keys end with a `/` we treat them as directories, otherwise files
+
if [[ "$p" =~ /$ ]]; then
+
dirsToCreate+=("$p")
+
else
+
filesToCreate+=("$p")
+
fi
+
done
+
+
# Create all the necessary paths.
+
# This is done with only a fixed number of processes,
+
# in order to not be too slow
+
# Though this does mean we're a bit limited with how many files can be created
+
if (( ${#dirsToCreate[@]} != 0 )); then
+
mkdir -p "${dirsToCreate[@]}"
+
fi
+
if (( ${#filesToCreate[@]} != 0 )); then
+
readarray -d '' -t parentsToCreate < <(dirname -z "${filesToCreate[@]}")
+
mkdir -p "${parentsToCreate[@]}"
+
touch "${filesToCreate[@]}"
+
fi
+
}
+
# Check whether a file set includes/excludes declared paths as expected, usage:
#
# tree=(
···
# [c/d/]= # Declare that directory c/d/ should exist and expect it to be excluded in the store path
# )
# checkFileset './a' # Pass the fileset as the argument
checkFileset() {
# New subshell so that we can have a separate trap handler, see `trap` below
local fileset=$1
+
# Create the tree
+
createTree
+
# Process the tree into separate arrays for included paths, excluded paths and excluded files.
local -a included=()
local -a excluded=()
local -a excludedFiles=()
for p in "${!tree[@]}"; do
case "${tree[$p]}" in
1)
included+=("$p")
;;
0)
excluded+=("$p")
+
# If keys end with a `/` we treat them as directories, otherwise files
+
if [[ ! "$p" =~ /$ ]]; then
excludedFiles+=("$p")
fi
;;
···
esac
done
expression="toSource { root = ./.; fileset = $fileset; }"
# We don't have lambda's in bash unfortunately,
···
expectFailure 'toSource { root = "/nix/store/foobar"; fileset = ./.; }' 'lib.fileset.toSource: `root` \(/nix/store/foobar\) is a string-like value, but it should be a path instead.
\s*Paths in strings are not supported by `lib.fileset`, use `lib.sources` or derivations instead.'
+
expectFailure 'toSource { root = cleanSourceWith { src = ./.; }; fileset = ./.; }' 'lib.fileset.toSource: `root` is a `lib.sources`-based value, but it should be a path instead.
+
\s*To use a `lib.sources`-based value, convert it to a file set using `lib.fileset.fromSource` and pass it as `fileset`.
+
\s*Note that this only works for sources created from paths.'
+
# Only paths are accepted as `root`
expectFailure 'toSource { root = 10; fileset = ./.; }' 'lib.fileset.toSource: `root` is of type int, but it should be a path instead.'
···
expectFailure 'toSource { root = ./.; fileset = 10; }' 'lib.fileset.toSource: `fileset` is of type int, but it should be a file set or a path instead.'
expectFailure 'toSource { root = ./.; fileset = "/some/path"; }' 'lib.fileset.toSource: `fileset` \("/some/path"\) is a string-like value, but it should be a file set or a path instead.
\s*Paths represented as strings are not supported by `lib.fileset`, use `lib.sources` or derivations instead.'
+
expectFailure 'toSource { root = ./.; fileset = cleanSourceWith { src = ./.; }; }' 'lib.fileset.toSource: `fileset` is a `lib.sources`-based value, but it should be a file set or a path instead.
+
\s*To convert a `lib.sources`-based value to a file set you can use `lib.fileset.fromSource`.
+
\s*Note that this only works for sources created from paths.'
# Path coercion errors for non-existent paths
expectFailure 'toSource { root = ./.; fileset = ./a; }' 'lib.fileset.toSource: `fileset` \('"$work"'/a\) is a path that does not exist.'
···
# We need an excluded file so it doesn't print as `(all files in directory)`
touch 0 "${filesToCreate[@]}"
expectTrace 'unions (mapAttrsToList (n: _: ./. + "/${n}") (removeAttrs (builtins.readDir ./.) [ "0" ]))' "$expectedTrace"
+
rm -rf -- *
+
+
## lib.fileset.fromSource
+
+
# Check error messages
+
expectFailure 'fromSource null' 'lib.fileset.fromSource: The source origin of the argument is of type null, but it should be a path instead.'
+
+
expectFailure 'fromSource (lib.cleanSource "")' 'lib.fileset.fromSource: The source origin of the argument is a string-like value \(""\), but it should be a path instead.
+
\s*Sources created from paths in strings cannot be turned into file sets, use `lib.sources` or derivations instead.'
+
+
expectFailure 'fromSource (lib.cleanSource null)' 'lib.fileset.fromSource: The source origin of the argument is of type null, but it should be a path instead.'
+
+
# fromSource on a path works and is the same as coercing that path
+
mkdir a
+
touch a/b c
+
expectEqual 'trace (fromSource ./.) null' 'trace ./. null'
+
rm -rf -- *
+
+
# Check that converting to a file set doesn't read the included files
+
mkdir a
+
touch a/b
+
run() {
+
expectEqual "trace (fromSource (lib.cleanSourceWith { src = ./a; })) null" "builtins.trace \"$work/a (all files in directory)\" null"
+
rm a/b
+
}
+
withFileMonitor run a/b
+
rm -rf -- *
+
+
# Check that converting to a file set doesn't read entries for directories that are filtered out
+
mkdir -p a/b
+
touch a/b/c
+
run() {
+
expectEqual "trace (fromSource (lib.cleanSourceWith {
+
src = ./a;
+
filter = pathString: type: false;
+
})) null" "builtins.trace \"(empty)\" null"
+
rm a/b/c
+
rmdir a/b
+
}
+
withFileMonitor run a/b
+
rm -rf -- *
+
+
# The filter is not needed on empty directories
+
expectEqual 'trace (fromSource (lib.cleanSourceWith {
+
src = ./.;
+
filter = abort "filter should not be needed";
+
})) null' 'trace _emptyWithoutBase null'
+
+
# Single files also work
+
touch a b
+
expectEqual 'trace (fromSource (cleanSourceWith { src = ./a; })) null' 'trace ./a null'
+
rm -rf -- *
+
+
# For a tree assigning each subpath true/false,
+
# check whether a source filter with those results includes the same files
+
# as a file set created using fromSource. Usage:
+
#
+
# tree=(
+
# [a]=1 # ./a is a file and the filter should return true for it
+
# [b/]=0 # ./b is a directory and the filter should return false for it
+
# )
+
# checkSource
+
checkSource() {
+
createTree
+
+
# Serialise the tree as JSON (there's only minimal savings with jq,
+
# and we don't need to handle escapes)
+
{
+
echo "{"
+
first=1
+
for p in "${!tree[@]}"; do
+
if [[ -z "$first" ]]; then
+
echo ","
+
else
+
first=
+
fi
+
echo "\"$p\":"
+
case "${tree[$p]}" in
+
1)
+
echo "true"
+
;;
+
0)
+
echo "false"
+
;;
+
*)
+
die "Unsupported tree value: ${tree[$p]}"
+
esac
+
done
+
echo "}"
+
} > "$tmp/tree.json"
+
+
# An expression to create a source value with a filter matching the tree
+
sourceExpr='
+
let
+
tree = importJSON '"$tmp"'/tree.json;
+
in
+
cleanSourceWith {
+
src = ./.;
+
filter =
+
pathString: type:
+
let
+
stripped = removePrefix (toString ./. + "/") pathString;
+
key = stripped + optionalString (type == "directory") "/";
+
in
+
tree.${key} or
+
(throw "tree key ${key} missing");
+
}
+
'
+
+
filesetExpr='
+
toSource {
+
root = ./.;
+
fileset = fromSource ('"$sourceExpr"');
+
}
+
'
+
+
# Turn both into store paths
+
sourceStorePath=$(expectStorePath "$sourceExpr")
+
filesetStorePath=$(expectStorePath "$filesetExpr")
+
+
# Loop through each path in the tree
+
while IFS= read -r -d $'\0' subpath; do
+
if [[ ! -e "$sourceStorePath"/"$subpath" ]]; then
+
# If it's not in the source store path, it's also not in the file set store path
+
if [[ -e "$filesetStorePath"/"$subpath" ]]; then
+
die "The store path $sourceStorePath created by $expr doesn't contain $subpath, but the corresponding store path $filesetStorePath created via fromSource does contain $subpath"
+
fi
+
elif [[ -z "$(find "$sourceStorePath"/"$subpath" -type f)" ]]; then
+
# If it's an empty directory in the source store path, it shouldn't be in the file set store path
+
if [[ -e "$filesetStorePath"/"$subpath" ]]; then
+
die "The store path $sourceStorePath created by $expr contains the path $subpath without any files, but the corresponding store path $filesetStorePath created via fromSource didn't omit it"
+
fi
+
else
+
# If it's non-empty directory or a file, it should be in the file set store path
+
if [[ ! -e "$filesetStorePath"/"$subpath" ]]; then
+
die "The store path $sourceStorePath created by $expr contains the non-empty path $subpath, but the corresponding store path $filesetStorePath created via fromSource doesn't include it"
+
fi
+
fi
+
done < <(find . -mindepth 1 -print0)
+
+
rm -rf -- *
+
}
+
+
# Check whether the filter is evaluated correctly
+
tree=(
+
[a]=
+
[b/]=
+
[b/c]=
+
[b/d]=
+
[e/]=
+
[e/e/]=
+
)
+
# We fill out the above tree values with all possible combinations of 0 and 1
+
# Then check whether a filter based on those return values gets turned into the corresponding file set
+
for i in $(seq 0 $((2 ** ${#tree[@]} - 1 ))); do
+
for p in "${!tree[@]}"; do
+
tree[$p]=$(( i % 2 ))
+
(( i /= 2 )) || true
+
done
+
checkSource
+
done
+
+
# The filter is called with the same arguments in the same order
+
mkdir a e
+
touch a/b a/c d e
+
expectEqual '
+
trace (fromSource (cleanSourceWith {
+
src = ./.;
+
filter = pathString: type: builtins.trace "${pathString} ${toString type}" true;
+
})) null
+
' '
+
builtins.seq (cleanSourceWith {
+
src = ./.;
+
filter = pathString: type: builtins.trace "${pathString} ${toString type}" true;
+
}).outPath
+
builtins.trace "'"$work"' (all files in directory)"
+
null
+
'
+
rm -rf -- *
+
+
# Test that if a directory is not included, the filter isn't called on its contents
+
mkdir a b
+
touch a/c b/d
+
expectEqual 'trace (fromSource (cleanSourceWith {
+
src = ./.;
+
filter = pathString: type:
+
if pathString == toString ./a then
+
false
+
else if pathString == toString ./b then
+
true
+
else if pathString == toString ./b/d then
+
true
+
else
+
abort "This filter should not be called with path ${pathString}";
+
})) null' 'trace (_create ./. { b = "directory"; }) null'
+
rm -rf -- *
+
+
# The filter is called lazily:
+
# If a later say intersection removes a part of the tree, the filter won't run on it
+
mkdir a d
+
touch a/{b,c} d/e
+
expectEqual 'trace (intersection ./a (fromSource (lib.cleanSourceWith {
+
src = ./.;
+
filter = pathString: type:
+
if pathString == toString ./a || pathString == toString ./a/b then
+
true
+
else if pathString == toString ./a/c then
+
false
+
else
+
abort "filter should not be called on ${pathString}";
+
}))) null' 'trace ./a/b null'
rm -rf -- *
# TODO: Once we have combinators and a property testing library, derive property tests from https://en.wikipedia.org/wiki/Algebra_of_sets
+16
nixos/doc/manual/development/running-nixos-tests-interactively.section.md
···
Once the connection is established, you can enter commands in the socat terminal
where socat is running.
## Reuse VM state {#sec-nixos-test-reuse-vm-state}
You can re-use the VM states coming from a previous run by setting the
···
Once the connection is established, you can enter commands in the socat terminal
where socat is running.
+
## Port forwarding to NixOS test VMs {#sec-nixos-test-port-forwarding}
+
+
If your test has only a single VM, you may use e.g.
+
+
```ShellSession
+
$ QEMU_NET_OPTS="hostfwd=tcp:127.0.0.1:2222-127.0.0.1:22" ./result/bin/nixos-test-driver
+
```
+
+
to port-forward a port in the VM (here `22`) to the host machine (here port `2222`).
+
+
This naturally does not work when multiple machines are involved,
+
since a single port on the host cannot forward to multiple VMs.
+
+
If the test defines multiple machines, you may opt to _temporarily_ set
+
`virtualisation.forwardPorts` in the test definition for debugging.
+
## Reuse VM state {#sec-nixos-test-reuse-vm-state}
You can re-use the VM states coming from a previous run by setting the
+1 -1
nixos/doc/manual/installation/changing-config.chapter.md
···
port 22 (SSH):
```ShellSession
-
$ QEMU_NET_OPTS="hostfwd=tcp::2222-:22" ./result/bin/run-*-vm
```
allowing you to log in via SSH (assuming you have set the appropriate
···
port 22 (SSH):
```ShellSession
+
$ QEMU_NET_OPTS="hostfwd=tcp:127.0.0.1:2222-127.0.0.1:22" ./result/bin/run-*-vm
```
allowing you to log in via SSH (assuming you have set the appropriate
+6
nixos/doc/manual/release-notes/rl-2311.section.md
···
- All [ROCm](https://rocm.docs.amd.com/en/latest/) packages have been updated to 5.7.0.
- [ROCm](https://rocm.docs.amd.com/en/latest/) package attribute sets are versioned: `rocmPackages` -> `rocmPackages_5`.
- If the user has a custom shell enabled via `users.users.${USERNAME}.shell = ${CUSTOMSHELL}`, the
assertion will require them to also set `programs.${CUSTOMSHELL}.enable =
true`. This is generally safe behavior, but for anyone needing to opt out from
···
- The `junicode` font package has been updated to [major version 2](https://github.com/psb1558/Junicode-font/releases/tag/v2.001), which is now a font family. In particular, plain `Junicode.ttf` no longer exists. In addition, TrueType font files are now placed in `font/truetype` instead of `font/junicode-ttf`; this change does not affect use via `fonts.packages` NixOS option.
## Other Notable Changes {#sec-release-23.11-notable-changes}
- A new option `system.switch.enable` was added. By default, this is option is
···
- `fusuma` now enables the following plugins: [appmatcher](https://github.com/iberianpig/fusuma-plugin-appmatcher), [keypress](https://github.com/iberianpig/fusuma-plugin-keypress), [sendkey](https://github.com/iberianpig/fusuma-plugin-sendkey), [tap](https://github.com/iberianpig/fusuma-plugin-tap) and [wmctrl](https://github.com/iberianpig/fusuma-plugin-wmctrl).
- `services.bitcoind` now properly respects the `enable` option.
## Nixpkgs internals {#sec-release-23.11-nixpkgs-internals}
···
- All [ROCm](https://rocm.docs.amd.com/en/latest/) packages have been updated to 5.7.0.
- [ROCm](https://rocm.docs.amd.com/en/latest/) package attribute sets are versioned: `rocmPackages` -> `rocmPackages_5`.
+
- `yarn-berry` has been updated to 4.0.1. This means that NodeJS versions less than `18.12` are no longer supported by it. More details at the [upstream changelog](https://github.com/yarnpkg/berry/blob/master/CHANGELOG.md).
+
- If the user has a custom shell enabled via `users.users.${USERNAME}.shell = ${CUSTOMSHELL}`, the
assertion will require them to also set `programs.${CUSTOMSHELL}.enable =
true`. This is generally safe behavior, but for anyone needing to opt out from
···
- The `junicode` font package has been updated to [major version 2](https://github.com/psb1558/Junicode-font/releases/tag/v2.001), which is now a font family. In particular, plain `Junicode.ttf` no longer exists. In addition, TrueType font files are now placed in `font/truetype` instead of `font/junicode-ttf`; this change does not affect use via `fonts.packages` NixOS option.
+
- The `prayer` package as well as `services.prayer` have been removed because it's been unmaintained for several years and the author's website has vanished.
+
## Other Notable Changes {#sec-release-23.11-notable-changes}
- A new option `system.switch.enable` was added. By default, this is option is
···
- `fusuma` now enables the following plugins: [appmatcher](https://github.com/iberianpig/fusuma-plugin-appmatcher), [keypress](https://github.com/iberianpig/fusuma-plugin-keypress), [sendkey](https://github.com/iberianpig/fusuma-plugin-sendkey), [tap](https://github.com/iberianpig/fusuma-plugin-tap) and [wmctrl](https://github.com/iberianpig/fusuma-plugin-wmctrl).
- `services.bitcoind` now properly respects the `enable` option.
+
+
- The Home Assistant module now offers support for installing custom components and lovelace modules. Available at [`services.home-assistant.customComponents`](#opt-services.home-assistant.customComponents) and [`services.home-assistant.customLovelaceModules`](#opt-services.home-assistant.customLovelaceModules).
## Nixpkgs internals {#sec-release-23.11-nixpkgs-internals}
+2 -2
nixos/modules/misc/ids.nix
···
#rtkit = 45; # dynamically allocated 2021-09-03
dovecot2 = 46;
dovenull2 = 47;
-
prayer = 49;
mpd = 50;
clamav = 51;
#fprot = 52; # unused
···
#rtkit = 45; # unused
dovecot2 = 46;
dovenull2 = 47;
-
prayer = 49;
mpd = 50;
clamav = 51;
#fprot = 52; # unused
···
#rtkit = 45; # dynamically allocated 2021-09-03
dovecot2 = 46;
dovenull2 = 47;
+
# prayer = 49; # dropped in 23.11
mpd = 50;
clamav = 51;
#fprot = 52; # unused
···
#rtkit = 45; # unused
dovecot2 = 46;
dovenull2 = 47;
+
# prayer = 49; # dropped in 23.11
mpd = 50;
clamav = 51;
#fprot = 52; # unused
-1
nixos/modules/module-list.nix
···
./services/networking/powerdns.nix
./services/networking/pppd.nix
./services/networking/pptpd.nix
-
./services/networking/prayer.nix
./services/networking/privoxy.nix
./services/networking/prosody.nix
./services/networking/quassel.nix
···
./services/networking/powerdns.nix
./services/networking/pppd.nix
./services/networking/pptpd.nix
./services/networking/privoxy.nix
./services/networking/prosody.nix
./services/networking/quassel.nix
+1
nixos/modules/rename.nix
···
(mkRemovedOptionModule [ "services" "riak" ] "The corresponding package was removed from nixpkgs.")
(mkRemovedOptionModule [ "services" "cryptpad" ] "The corresponding package was removed from nixpkgs.")
(mkRemovedOptionModule [ "services" "rtsp-simple-server" ] "Package has been completely rebranded by upstream as mediamtx, and thus the service and the package were renamed in NixOS as well.")
(mkRemovedOptionModule [ "i18n" "inputMethod" "fcitx" ] "The fcitx module has been removed. Please use fcitx5 instead")
(mkRemovedOptionModule [ "services" "dhcpd4" ] ''
···
(mkRemovedOptionModule [ "services" "riak" ] "The corresponding package was removed from nixpkgs.")
(mkRemovedOptionModule [ "services" "cryptpad" ] "The corresponding package was removed from nixpkgs.")
(mkRemovedOptionModule [ "services" "rtsp-simple-server" ] "Package has been completely rebranded by upstream as mediamtx, and thus the service and the package were renamed in NixOS as well.")
+
(mkRemovedOptionModule [ "services" "prayer" ] "The corresponding package was removed from nixpkgs.")
(mkRemovedOptionModule [ "i18n" "inputMethod" "fcitx" ] "The fcitx module has been removed. Please use fcitx5 instead")
(mkRemovedOptionModule [ "services" "dhcpd4" ] ''
+1 -1
nixos/modules/services/desktops/gnome/at-spi2-core.nix
···
})
(mkIf (!config.services.gnome.at-spi2-core.enable) {
-
environment.variables = {
NO_AT_BRIDGE = "1";
GTK_A11Y = "none";
};
···
})
(mkIf (!config.services.gnome.at-spi2-core.enable) {
+
environment.sessionVariables = {
NO_AT_BRIDGE = "1";
GTK_A11Y = "none";
};
+81 -3
nixos/modules/services/home-automation/home-assistant.nix
···
cp ${format.generate "configuration.yaml" filteredConfig} $out
sed -i -e "s/'\!\([a-z_]\+\) \(.*\)'/\!\1 \2/;s/^\!\!/\!/;" $out
'';
-
lovelaceConfig = cfg.lovelaceConfig or {};
lovelaceConfigFile = format.generate "ui-lovelace.yaml" lovelaceConfig;
# Components advertised by the home-assistant package
···
# Respect overrides that already exist in the passed package and
# concat it with values passed via the module.
extraComponents = oldArgs.extraComponents or [] ++ extraComponents;
-
extraPackages = ps: (oldArgs.extraPackages or (_: []) ps) ++ (cfg.extraPackages ps);
}));
in {
imports = [
# Migrations in NixOS 22.05
···
A popular example is `python3Packages.psycopg2`
for PostgreSQL support in the recorder component.
'';
};
···
rm -f "${cfg.configDir}/ui-lovelace.yaml"
ln -s /etc/home-assistant/ui-lovelace.yaml "${cfg.configDir}/ui-lovelace.yaml"
'';
in
(optionalString (cfg.config != null) copyConfig) +
-
(optionalString (cfg.lovelaceConfig != null) copyLovelaceConfig)
;
environment.PYTHONPATH = package.pythonPath;
serviceConfig = let
···
cp ${format.generate "configuration.yaml" filteredConfig} $out
sed -i -e "s/'\!\([a-z_]\+\) \(.*\)'/\!\1 \2/;s/^\!\!/\!/;" $out
'';
+
lovelaceConfig = if (cfg.lovelaceConfig == null) then {}
+
else (lib.recursiveUpdate customLovelaceModulesResources cfg.lovelaceConfig);
lovelaceConfigFile = format.generate "ui-lovelace.yaml" lovelaceConfig;
# Components advertised by the home-assistant package
···
# Respect overrides that already exist in the passed package and
# concat it with values passed via the module.
extraComponents = oldArgs.extraComponents or [] ++ extraComponents;
+
extraPackages = ps: (oldArgs.extraPackages or (_: []) ps)
+
++ (cfg.extraPackages ps)
+
++ (lib.concatMap (component: component.propagatedBuildInputs or []) cfg.customComponents);
}));
+
+
# Create a directory that holds all lovelace modules
+
customLovelaceModulesDir = pkgs.buildEnv {
+
name = "home-assistant-custom-lovelace-modules";
+
paths = cfg.customLovelaceModules;
+
};
+
+
# Create parts of the lovelace config that reference lovelave modules as resources
+
customLovelaceModulesResources = {
+
lovelace.resources = map (card: {
+
url = "/local/nixos-lovelace-modules/${card.entrypoint or card.pname}.js?${card.version}";
+
type = "module";
+
}) cfg.customLovelaceModules;
+
};
in {
imports = [
# Migrations in NixOS 22.05
···
A popular example is `python3Packages.psycopg2`
for PostgreSQL support in the recorder component.
+
'';
+
};
+
+
customComponents = mkOption {
+
type = types.listOf types.package;
+
default = [];
+
example = literalExpression ''
+
with pkgs.home-assistant-custom-components; [
+
prometheus-sensor
+
];
+
'';
+
description = lib.mdDoc ''
+
List of custom component packages to install.
+
+
Available components can be found below `pkgs.home-assistant-custom-components`.
+
'';
+
};
+
+
customLovelaceModules = mkOption {
+
type = types.listOf types.package;
+
default = [];
+
example = literalExpression ''
+
with pkgs.home-assistant-custom-lovelace-modules; [
+
mini-graph-card
+
mini-media-player
+
];
+
'';
+
description = lib.mdDoc ''
+
List of custom lovelace card packages to load as lovelace resources.
+
+
Available cards can be found below `pkgs.home-assistant-custom-lovelace-modules`.
+
+
::: {.note}
+
Automatic loading only works with lovelace in `yaml` mode.
+
:::
'';
};
···
rm -f "${cfg.configDir}/ui-lovelace.yaml"
ln -s /etc/home-assistant/ui-lovelace.yaml "${cfg.configDir}/ui-lovelace.yaml"
'';
+
copyCustomLovelaceModules = if cfg.customLovelaceModules != [] then ''
+
mkdir -p "${cfg.configDir}/www"
+
ln -fns ${customLovelaceModulesDir} "${cfg.configDir}/www/nixos-lovelace-modules"
+
'' else ''
+
rm -f "${cfg.configDir}/www/nixos-lovelace-modules"
+
'';
+
copyCustomComponents = ''
+
mkdir -p "${cfg.configDir}/custom_components"
+
+
# remove components symlinked in from below the /nix/store
+
components="$(find "${cfg.configDir}/custom_components" -maxdepth 1 -type l)"
+
for component in "$components"; do
+
if [[ "$(readlink "$component")" =~ ^${escapeShellArg builtins.storeDir} ]]; then
+
rm "$component"
+
fi
+
done
+
+
# recreate symlinks for desired components
+
declare -a components=(${escapeShellArgs cfg.customComponents})
+
for component in "''${components[@]}"; do
+
path="$(dirname $(find "$component" -name "manifest.json"))"
+
ln -fns "$path" "${cfg.configDir}/custom_components/"
+
done
+
'';
in
(optionalString (cfg.config != null) copyConfig) +
+
(optionalString (cfg.lovelaceConfig != null) copyLovelaceConfig) +
+
copyCustomLovelaceModules +
+
copyCustomComponents
;
environment.PYTHONPATH = package.pythonPath;
serviceConfig = let
-90
nixos/modules/services/networking/prayer.nix
···
-
{ config, lib, pkgs, ... }:
-
-
with lib;
-
-
let
-
-
inherit (pkgs) prayer;
-
-
cfg = config.services.prayer;
-
-
stateDir = "/var/lib/prayer";
-
-
prayerUser = "prayer";
-
prayerGroup = "prayer";
-
-
prayerExtraCfg = pkgs.writeText "extraprayer.cf" ''
-
prefix = "${prayer}"
-
var_prefix = "${stateDir}"
-
prayer_user = "${prayerUser}"
-
prayer_group = "${prayerGroup}"
-
sendmail_path = "/run/wrappers/bin/sendmail"
-
-
use_http_port ${cfg.port}
-
-
${cfg.extraConfig}
-
'';
-
-
prayerCfg = pkgs.runCommand "prayer.cf" { preferLocalBuild = true; } ''
-
# We have to remove the http_port 80, or it will start a server there
-
cat ${prayer}/etc/prayer.cf | grep -v http_port > $out
-
cat ${prayerExtraCfg} >> $out
-
'';
-
-
in
-
-
{
-
-
###### interface
-
-
options = {
-
-
services.prayer = {
-
-
enable = mkEnableOption (lib.mdDoc "the prayer webmail http server");
-
-
port = mkOption {
-
default = 2080;
-
type = types.port;
-
description = lib.mdDoc ''
-
Port the prayer http server is listening to.
-
'';
-
};
-
-
extraConfig = mkOption {
-
type = types.lines;
-
default = "" ;
-
description = lib.mdDoc ''
-
Extra configuration. Contents will be added verbatim to the configuration file.
-
'';
-
};
-
};
-
-
};
-
-
-
###### implementation
-
-
config = mkIf config.services.prayer.enable {
-
environment.systemPackages = [ prayer ];
-
-
users.users.${prayerUser} =
-
{ uid = config.ids.uids.prayer;
-
description = "Prayer daemon user";
-
home = stateDir;
-
};
-
-
users.groups.${prayerGroup} =
-
{ gid = config.ids.gids.prayer; };
-
-
systemd.services.prayer = {
-
wantedBy = [ "multi-user.target" ];
-
serviceConfig.Type = "forking";
-
preStart = ''
-
mkdir -m 0755 -p ${stateDir}
-
chown ${prayerUser}:${prayerGroup} ${stateDir}
-
'';
-
script = "${prayer}/sbin/prayer --config-file=${prayerCfg}";
-
};
-
};
-
}
···
+33
nixos/tests/home-assistant.nix
···
psycopg2
];
config = {
homeassistant = {
name = "Home";
···
inheritParentConfig = true;
configuration.services.home-assistant.config.backup = {};
};
};
testScript = { nodes, ... }: let
···
hass.wait_for_open_port(8123)
hass.succeed("curl --fail http://localhost:8123/lovelace")
with subtest("Check that optional dependencies are in the PYTHONPATH"):
env = get_unit_property("Environment")
python_path = env.split("PYTHONPATH=")[1].split()[0]
···
journal = get_journal_since(cursor)
for domain in ["backup"]:
assert f"Setup of domain {domain} took" in journal, f"{domain} setup missing"
with subtest("Check that no errors were logged"):
hass.fail("journalctl -u home-assistant -o cat | grep -q ERROR")
···
psycopg2
];
+
# test loading custom components
+
customComponents = with pkgs.home-assistant-custom-components; [
+
prometheus-sensor
+
];
+
+
# test loading lovelace modules
+
customLovelaceModules = with pkgs.home-assistant-custom-lovelace-modules; [
+
mini-graph-card
+
];
+
config = {
homeassistant = {
name = "Home";
···
inheritParentConfig = true;
configuration.services.home-assistant.config.backup = {};
};
+
+
specialisation.removeCustomThings = {
+
inheritParentConfig = true;
+
configuration.services.home-assistant = {
+
customComponents = lib.mkForce [];
+
customLovelaceModules = lib.mkForce [];
+
};
+
};
};
testScript = { nodes, ... }: let
···
hass.wait_for_open_port(8123)
hass.succeed("curl --fail http://localhost:8123/lovelace")
+
with subtest("Check that custom components get installed"):
+
hass.succeed("test -f ${configDir}/custom_components/prometheus_sensor/manifest.json")
+
hass.wait_until_succeeds("journalctl -u home-assistant.service | grep -q 'We found a custom integration prometheus_sensor which has not been tested by Home Assistant'")
+
+
with subtest("Check that lovelace modules are referenced and fetchable"):
+
hass.succeed("grep -q 'mini-graph-card-bundle.js' '${configDir}/ui-lovelace.yaml'")
+
hass.succeed("curl --fail http://localhost:8123/local/nixos-lovelace-modules/mini-graph-card-bundle.js")
+
with subtest("Check that optional dependencies are in the PYTHONPATH"):
env = get_unit_property("Environment")
python_path = env.split("PYTHONPATH=")[1].split()[0]
···
journal = get_journal_since(cursor)
for domain in ["backup"]:
assert f"Setup of domain {domain} took" in journal, f"{domain} setup missing"
+
+
with subtest("Check custom components and custom lovelace modules get removed"):
+
cursor = get_journal_cursor()
+
hass.succeed("${system}/specialisation/removeCustomThings/bin/switch-to-configuration test")
+
hass.fail("grep -q 'mini-graph-card-bundle.js' '${configDir}/ui-lovelace.yaml'")
+
hass.fail("test -f ${configDir}/custom_components/prometheus_sensor/manifest.json")
+
wait_for_homeassistant(cursor)
with subtest("Check that no errors were logged"):
hass.fail("journalctl -u home-assistant -o cat | grep -q ERROR")
+6 -6
pkgs/applications/editors/vscode/extensions/default.nix
···
mktplcRef = {
publisher = "github";
name = "copilot";
-
version = "1.126.493";
-
sha256 = "1an7z8z3xz2piw2xz1hdrs6l5rhpyvnjmb650ff2m4k24n01svfy";
};
meta = {
···
mktplcRef = {
publisher = "github";
name = "copilot-chat";
-
version = "0.3.2023061502";
-
sha256 = "sha256-sUoKwlPDMz+iQbmIsD2JhyDwmUQzOyCHXaXCUaizQ7k=";
};
meta = {
description = "GitHub Copilot Chat is a companion extension to GitHub Copilot that houses experimental chat features";
···
mktplcRef = {
name = "uiua-vscode";
publisher = "uiua-lang";
-
version = "0.0.22";
-
sha256 = "sha256-fJcSJwwRVofduWEEMa5f2VrSfyONKPkFl9OW+++lSRw=";
};
meta = {
description = "VSCode language extension for Uiua";
···
mktplcRef = {
publisher = "github";
name = "copilot";
+
version = "1.135.544";
+
sha256 = "sha256-OeG1nkQbQAfu8NuDEA+iaWy0ioFyXPe7Qm/CZIKPiX8=";
};
meta = {
···
mktplcRef = {
publisher = "github";
name = "copilot-chat";
+
version = "0.11.2023111001";
+
sha256 = "sha256-sBDvqqyq0R0ZyS81G61fI9Vd860RIjhNzCqY0bdz1mg=";
};
meta = {
description = "GitHub Copilot Chat is a companion extension to GitHub Copilot that houses experimental chat features";
···
mktplcRef = {
name = "uiua-vscode";
publisher = "uiua-lang";
+
version = "0.0.23";
+
sha256 = "sha256-NauXoYTAka8qXNPYlW5g7r6NNX1x8cnvDRbEGkRsMoY=";
};
meta = {
description = "VSCode language extension for Uiua";
+11 -29
pkgs/applications/emulators/flycast/default.nix
···
, makeWrapper
, alsa-lib
, curl
-
, egl-wayland
, libao
-
, libdecor
-
, libevdev
-
, libffi
-
, libGL
, libpulseaudio
-
, libX11
-
, libXext
-
, libxkbcommon
, libzip
-
, mesa
, miniupnpc
-
, udev
-
, vulkan-headers
, vulkan-loader
-
, wayland
-
, zlib
}:
stdenv.mkDerivation rec {
pname = "flycast";
-
version = "2.1";
src = fetchFromGitHub {
owner = "flyinghead";
repo = "flycast";
-
rev = "V${version}";
-
sha256 = "sha256-PRInOqg9OpaUVLwSj1lOxDtjpVaYehkRsp0jLrVKPyY=";
fetchSubmodules = true;
};
···
buildInputs = [
alsa-lib
curl
-
egl-wayland
libao
-
libdecor
-
libevdev
-
libffi
-
libGL
libpulseaudio
-
libX11
-
libXext
-
libxkbcommon
libzip
-
mesa # for libgbm
miniupnpc
-
udev
-
vulkan-headers
-
wayland
-
zlib
];
postFixup = ''
···
, makeWrapper
, alsa-lib
, curl
, libao
, libpulseaudio
, libzip
+
, lua
, miniupnpc
+
, SDL2
, vulkan-loader
}:
stdenv.mkDerivation rec {
pname = "flycast";
+
version = "2.2";
src = fetchFromGitHub {
owner = "flyinghead";
repo = "flycast";
+
rev = "v${version}";
+
sha256 = "sha256-eQMKaUaZ1b0oXre4Ouli4qIyNaG64KntyRGk3/YIopc=";
fetchSubmodules = true;
};
···
buildInputs = [
alsa-lib
curl
libao
libpulseaudio
libzip
+
lua
miniupnpc
+
SDL2
+
];
+
+
cmakeFlags = [
+
"-DUSE_HOST_SDL=ON"
];
postFixup = ''
+2 -2
pkgs/applications/misc/camunda-modeler/default.nix
···
stdenvNoCC.mkDerivation rec {
pname = "camunda-modeler";
-
version = "5.16.0";
src = fetchurl {
url = "https://github.com/camunda/camunda-modeler/releases/download/v${version}/camunda-modeler-${version}-linux-x64.tar.gz";
-
hash = "sha256-Y+v/r5bhtgXBjRQic0s5FA+KMWx5R7DOK+qZ9Izdnb0=";
};
sourceRoot = "camunda-modeler-${version}-linux-x64";
···
stdenvNoCC.mkDerivation rec {
pname = "camunda-modeler";
+
version = "5.17.0";
src = fetchurl {
url = "https://github.com/camunda/camunda-modeler/releases/download/v${version}/camunda-modeler-${version}-linux-x64.tar.gz";
+
hash = "sha256-yxph3Aor5nZOhu2PY4MGcfScaz9w24JXqXbhT+QKlNI=";
};
sourceRoot = "camunda-modeler-${version}-linux-x64";
+2 -2
pkgs/applications/misc/jetbrains-toolbox/default.nix
···
}:
let
pname = "jetbrains-toolbox";
-
version = "2.0.5.17700";
src = fetchzip {
url = "https://download.jetbrains.com/toolbox/jetbrains-toolbox-${version}.tar.gz";
-
sha256 = "sha256-BO9W9miQUltsg1tCyTl9j5xRCJUCsO02hUKDCYt7hd8=";
stripRoot = false;
};
···
}:
let
pname = "jetbrains-toolbox";
+
version = "2.1.0.18144";
src = fetchzip {
url = "https://download.jetbrains.com/toolbox/jetbrains-toolbox-${version}.tar.gz";
+
sha256 = "sha256-K65naW+RWAy4uxQq2GQmL0kwCH+G73ez1kgTtnTwjEw=";
stripRoot = false;
};
-38
pkgs/applications/misc/kemai/000-cmake-disable-conan.diff
···
-
diff --git a/CMakeLists.txt b/CMakeLists.txt
-
index ce78a9d..3cd51e0 100644
-
--- a/CMakeLists.txt
-
+++ b/CMakeLists.txt
-
@@ -8,18 +8,21 @@ list(APPEND CMAKE_PREFIX_PATH ${CMAKE_BINARY_DIR})
-
# Common configuration
-
set(CMAKE_CXX_STANDARD 20)
-
set(CMAKE_CXX_STANDARD_REQUIRED ON)
-
-
-
-# Setup Conan
-
-if(NOT EXISTS "${CMAKE_BINARY_DIR}/conan.cmake")
-
- message(STATUS "Downloading conan.cmake from https://github.com/conan-io/cmake-conan")
-
- file(DOWNLOAD "https://raw.githubusercontent.com/conan-io/cmake-conan/0.18.1/conan.cmake"
-
- "${CMAKE_BINARY_DIR}/conan.cmake"
-
- TLS_VERIFY ON)
-
-endif()
-
-include(${CMAKE_BINARY_DIR}/conan.cmake)
-
-
-
-conan_cmake_autodetect(settings)
-
-conan_cmake_install(PATH_OR_REFERENCE ${CMAKE_SOURCE_DIR} BUILD missing SETTINGS ${settings})
-
+set(USE_CONAN ON CACHE BOOL "Use conan for dependency managment")
-
+
-
+if(USE_CONAN)
-
+ # Setup Conan
-
+ if(NOT EXISTS "${CMAKE_BINARY_DIR}/conan.cmake")
-
+ message(STATUS "Downloading conan.cmake from https://github.com/conan-io/cmake-conan")
-
+ file(DOWNLOAD "https://raw.githubusercontent.com/conan-io/cmake-conan/0.18.1/conan.cmake"
-
+ "${CMAKE_BINARY_DIR}/conan.cmake"
-
+ TLS_VERIFY ON)
-
+ endif()
-
+ include(${CMAKE_BINARY_DIR}/conan.cmake)
-
+
-
+ conan_cmake_autodetect(settings)
-
+ conan_cmake_install(PATH_OR_REFERENCE ${CMAKE_SOURCE_DIR} BUILD missing SETTINGS ${settings})
-
+endif ()
-
-
# Setup Qt
-
set(CMAKE_AUTOMOC ON)
···
+22 -4
pkgs/applications/misc/kemai/default.nix
···
{ lib
, stdenv
, fetchFromGitHub
, cmake
, magic-enum
, spdlog
, qtbase
, qtconnectivity
, qttools
, qtlanguageserver
, wrapQtAppsHook
, libXScrnSaver
, nix-update-script
···
stdenv.mkDerivation rec {
pname = "kemai";
-
version = "0.9.2";
src = fetchFromGitHub {
owner = "AlexandrePTJ";
repo = "kemai";
rev = version;
-
hash = "sha256-PDjNO2iMPK0J3TSHVZ/DW3W0GkdB8yNZYoTGEd2snac=";
};
buildInputs = [
qtbase
qtconnectivity
···
qtlanguageserver
libXScrnSaver
magic-enum
spdlog
];
-
cmakeFlags = [ "-DUSE_CONAN=OFF" ];
-
patches = [ ./000-cmake-disable-conan.diff ];
nativeBuildInputs = [ cmake wrapQtAppsHook ];
···
license = licenses.mit;
maintainers = with maintainers; [ poelzi ];
platforms = platforms.unix;
};
}
···
{ lib
, stdenv
, fetchFromGitHub
+
, fetchpatch
, cmake
, magic-enum
+
, range-v3
, spdlog
, qtbase
, qtconnectivity
, qttools
, qtlanguageserver
+
, qtwayland
, wrapQtAppsHook
, libXScrnSaver
, nix-update-script
···
stdenv.mkDerivation rec {
pname = "kemai";
+
version = "0.10.0";
src = fetchFromGitHub {
owner = "AlexandrePTJ";
repo = "kemai";
rev = version;
+
hash = "sha256-wclBAgeDyAIw/nGF6lzIwbwdoZMBTu+tjxsnIxIkODM=";
};
+
patches = [
+
# Backport the fix for an issue where LICENSE.txt ends up in /bin
+
# Remove in next release
+
(fetchpatch {
+
url = "https://github.com/AlexandrePTJ/kemai/commit/e279679dd7308efebe004252d168d7308f3b99ce.patch";
+
hash = "sha256-5cmRRMVATf4ul4HhaQKiE0yTN2qd+MfNFQzGTLLpOyg=";
+
})
+
];
+
buildInputs = [
qtbase
qtconnectivity
···
qtlanguageserver
libXScrnSaver
magic-enum
+
range-v3
spdlog
+
] ++ lib.optional stdenv.hostPlatform.isLinux qtwayland;
+
cmakeFlags = [
+
"-DFETCHCONTENT_FULLY_DISCONNECTED=ON"
+
"-DFETCHCONTENT_QUIET=OFF"
+
"-DFETCHCONTENT_TRY_FIND_PACKAGE_MODE=ALWAYS"
];
nativeBuildInputs = [ cmake wrapQtAppsHook ];
···
license = licenses.mit;
maintainers = with maintainers; [ poelzi ];
platforms = platforms.unix;
+
broken = stdenv.isDarwin;
+
mainProgram = "Kemai";
};
}
+3
pkgs/applications/networking/browsers/firefox/common.nix
···
preBuild = ''
cd mozobj
'';
postBuild = ''
···
preBuild = ''
cd mozobj
+
'' + lib.optionalString (lib.versionAtLeast version "120") ''
+
# https://bugzilla.mozilla.org/show_bug.cgi?id=1864083
+
export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE $(pkg-config dbus-1 --cflags)"
'';
postBuild = ''
+4 -4
pkgs/applications/networking/browsers/firefox/packages.nix
···
firefox-beta = buildMozillaMach rec {
pname = "firefox-beta";
-
version = "119.0b9";
applicationName = "Mozilla Firefox Beta";
src = fetchurl {
url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
-
sha512 = "11d07474e3ca72a4e2f60053882e09a215e0d29d6830d0cd41447bb67370118356090af7adcbacd7703ad9fcdda83c9f909419c86b8f3bf2eacd9ca3d3aa3f54";
};
meta = {
···
firefox-devedition = (buildMozillaMach rec {
pname = "firefox-devedition";
-
version = "119.0b9";
applicationName = "Mozilla Firefox Developer Edition";
branding = "browser/branding/aurora";
src = fetchurl {
url = "mirror://mozilla/devedition/releases/${version}/source/firefox-${version}.source.tar.xz";
-
sha512 = "ce3e2adb3171aa05c7af3b7a4ea25eaafbc109c522b90e26aad577192a0902000fb7d705fa5707a9a7d0be2ab1c0cddc5a98abbe6549e1377c0a1d765bda62eb";
};
meta = {
···
firefox-beta = buildMozillaMach rec {
pname = "firefox-beta";
+
version = "120.0b9";
applicationName = "Mozilla Firefox Beta";
src = fetchurl {
url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
+
sha512 = "7ac5562ce393ea84663eac5c6ee1a0ca527ff4a8a9ec6aaaef37213ff071076846949e80af21d95ec8e32d3cbc740b772a9d7cc54965b7bbc8e015da22ae927f";
};
meta = {
···
firefox-devedition = (buildMozillaMach rec {
pname = "firefox-devedition";
+
version = "120.0b9";
applicationName = "Mozilla Firefox Developer Edition";
branding = "browser/branding/aurora";
src = fetchurl {
url = "mirror://mozilla/devedition/releases/${version}/source/firefox-${version}.source.tar.xz";
+
sha512 = "07bf1a58550e70c683719adef55fa3d1ee06876e0cb086c28242879c683269c4aa784b1dce639218b3ad24a546192088fe5224a52e13a0086f205ec5470e2428";
};
meta = {
+3 -3
pkgs/applications/networking/browsers/palemoon/bin.nix
···
stdenv.mkDerivation (finalAttrs: {
pname = "palemoon-bin";
-
version = "32.4.1";
src = fetchzip {
urls = [
···
"https://rm-us.palemoon.org/release/palemoon-${finalAttrs.version}.linux-x86_64-gtk${if withGTK3 then "3" else "2"}.tar.xz"
];
hash = if withGTK3 then
-
"sha256-c/rfnMpiLWqlNZppqPRNWXsgAQ1FofAdel5EFnK+mrY="
else
-
"sha256-27njFdqq2DUctlz/UOtH5tlOduQNpoapuCYS+48K9dk=";
};
preferLocalBuild = true;
···
stdenv.mkDerivation (finalAttrs: {
pname = "palemoon-bin";
+
version = "32.5.0";
src = fetchzip {
urls = [
···
"https://rm-us.palemoon.org/release/palemoon-${finalAttrs.version}.linux-x86_64-gtk${if withGTK3 then "3" else "2"}.tar.xz"
];
hash = if withGTK3 then
+
"sha256-1MJ5K9Zc/BHeQwwlq3XyUV8XTFEpPytNyTnsDpE1tBI="
else
+
"sha256-xXunZTqoc2A+ilosRUUluxDwewD3xwITF5nb5Lbyv7Y=";
};
preferLocalBuild = true;
+1
pkgs/applications/networking/cluster/terraform-providers/default.nix
···
removed = name: date: throw "the ${name} terraform provider removed from nixpkgs on ${date}";
in
lib.optionalAttrs config.allowAliases {
ksyun = removed "ksyun" "2023/04";
};
···
removed = name: date: throw "the ${name} terraform provider removed from nixpkgs on ${date}";
in
lib.optionalAttrs config.allowAliases {
+
fly = archived "fly" "2023/10";
ksyun = removed "ksyun" "2023/04";
};
-9
pkgs/applications/networking/cluster/terraform-providers/providers.json
···
"spdx": "MPL-2.0",
"vendorHash": "sha256-RqYzqKPzb5GcrzHnEDZC7GaBt1zP8g28Wo3WNAe07Ck="
},
-
"fly": {
-
"hash": "sha256-9QB2fbggCKcJz8tkSYgq/X8r+MB2M76VCWXgsHARTkU=",
-
"homepage": "https://registry.terraform.io/providers/fly-apps/fly",
-
"owner": "fly-apps",
-
"repo": "terraform-provider-fly",
-
"rev": "v0.0.23",
-
"spdx": "BSD-3-Clause",
-
"vendorHash": "sha256-f+Z6Y2WPxqJoHoCwuK6sgFa8nUnkW/WwrD55dtU0wtM="
-
},
"fortios": {
"hash": "sha256-RpcKMndbO3wbkHmrINkbsQ+UeFsZrQ7x02dv8ZpFMec=",
"homepage": "https://registry.terraform.io/providers/fortinetdev/fortios",
···
"spdx": "MPL-2.0",
"vendorHash": "sha256-RqYzqKPzb5GcrzHnEDZC7GaBt1zP8g28Wo3WNAe07Ck="
},
"fortios": {
"hash": "sha256-RpcKMndbO3wbkHmrINkbsQ+UeFsZrQ7x02dv8ZpFMec=",
"homepage": "https://registry.terraform.io/providers/fortinetdev/fortios",
+20
pkgs/by-name/ro/rockyou/package.nix
···
···
+
{ seclists
+
, stdenvNoCC
+
}:
+
stdenvNoCC.mkDerivation {
+
pname = "rockyou";
+
inherit (seclists) version src;
+
+
installPhase = ''
+
runHook preInstall
+
+
mkdir -p $out/share/wordlists/
+
tar -xvzf ${seclists}/share/wordlists/seclists/Passwords/Leaked-Databases/rockyou.txt.tar.gz -C $out/share/wordlists/
+
+
runHook postInstall
+
'';
+
+
meta = seclists.meta // {
+
description = "A famous wordlist often used for brute force attacks";
+
};
+
}
+34
pkgs/by-name/se/seclists/package.nix
···
···
+
{ lib
+
, fetchFromGitHub
+
, stdenvNoCC
+
}:
+
+
stdenvNoCC.mkDerivation {
+
pname = "seclists";
+
version = "2023.2";
+
+
src = fetchFromGitHub {
+
owner = "danielmiessler";
+
repo = "SecLists";
+
rev = "2023.2";
+
hash = "sha256-yVxb5GaQDuCsyjIV+oZzNUEFoq6gMPeaIeQviwGdAgY=";
+
};
+
+
installPhase = ''
+
runHook preInstall
+
+
mkdir -p $out/share/wordlists/seclists
+
find . -maxdepth 1 -type d -regextype posix-extended -regex '^./[A-Z].*' -exec cp -R {} $out/share/wordlists/seclists \;
+
find $out/share/wordlists/seclists -name "*.md" -delete
+
+
runHook postInstall
+
'';
+
+
meta = with lib; {
+
description = "A collection of multiple types of lists used during security assessments, collected in one place";
+
homepage = "https://github.com/danielmiessler/seclists";
+
license = licenses.mit;
+
maintainers = with maintainers; [ tochiaha janik pamplemousse ];
+
};
+
}
+
+3 -3
pkgs/by-name/ui/uiua/package.nix
···
rustPlatform.buildRustPackage rec {
pname = "uiua";
-
version = "0.1.0";
src = fetchFromGitHub {
owner = "uiua-lang";
repo = "uiua";
rev = version;
-
hash = "sha256-ZoiT7Yf8Mdwh2vBkRCDxhkbvTkekhTopFNWjUnyoPUQ=";
};
-
cargoHash = "sha256-My/15zNfEqt+a0jganS6LfFiEXENUaPTcyz6SBL0oKo=";
nativeBuildInputs = lib.optionals stdenv.isDarwin [
rustPlatform.bindgenHook
···
rustPlatform.buildRustPackage rec {
pname = "uiua";
+
version = "0.2.0";
src = fetchFromGitHub {
owner = "uiua-lang";
repo = "uiua";
rev = version;
+
hash = "sha256-RAMQC9weEvTV44nAXjwMYv+4O5aSNNM5UOf/xBb4SBE=";
};
+
cargoHash = "sha256-ZBedAIHwbRiR9i6w0CWIiE+OJvTkmxiEihn7zLAV/Dg=";
nativeBuildInputs = lib.optionals stdenv.isDarwin [
rustPlatform.bindgenHook
+70
pkgs/by-name/wo/wordlists/package.nix
···
···
+
{ lib
+
, callPackage
+
, nmap
+
, rockyou
+
, runtimeShell
+
, seclists
+
, symlinkJoin
+
, tree
+
, wfuzz
+
, lists ? [
+
nmap
+
rockyou
+
seclists
+
wfuzz
+
]
+
}:
+
+
symlinkJoin rec {
+
pname = "wordlists";
+
version = "unstable-2023-10-10";
+
+
name = "${pname}-${version}";
+
paths = lists;
+
+
postBuild = ''
+
mkdir -p $out/bin
+
+
# Create a command to show the location of the links.
+
cat >> $out/bin/wordlists << __EOF__
+
#!${runtimeShell}
+
${tree}/bin/tree ${placeholder "out"}/share/wordlists
+
__EOF__
+
chmod +x $out/bin/wordlists
+
+
# Create a handy command for easy access to the wordlists.
+
# e.g.: `cat "$(wordlists_path)/rockyou.txt"`, or `ls "$(wordlists_path)/dirbuster"`
+
cat >> $out/bin/wordlists_path << __EOF__
+
#!${runtimeShell}
+
printf "${placeholder "out"}/share/wordlists\n"
+
__EOF__
+
chmod +x $out/bin/wordlists_path
+
'';
+
+
meta = with lib; {
+
description = "A collection of wordlists useful for security testing";
+
longDescription = ''
+
The `wordlists` package provides two scripts. One is called {command}`wordlists`,
+
and it will list a tree of all the wordlists installed. The other one is
+
called {command}`wordlists_path` which will print the path to the nix store
+
location of the lists. You can for example do
+
{command}`$(wordlists_path)/rockyou.txt` to get the location of the
+
[rockyou](https://en.wikipedia.org/wiki/RockYou#Data_breach)
+
wordlist. If you want to modify the available wordlists you can override
+
the `lists` attribute`. In your nixos configuration this would look
+
similiar to this:
+
+
```nix
+
environment.systemPackages = [
+
(pkgs.wordlists.override { lists = with pkgs; [ rockyou ] })
+
]
+
```
+
+
you can use this with nix-shell by doing:
+
{command}`nix-shell -p 'wordlists.override { lists = with (import <nixpkgs> {}); [ nmap ]; }'
+
If you want to add a new package that provides wordlist/s the convention
+
is to copy it to {file}`$out/share/wordlists/myNewWordlist`.
+
'';
+
maintainers = with maintainers; [ janik pamplemousse ];
+
};
+
}
+5 -5
pkgs/development/compilers/elm/packages/lamdera.nix
···
arch = if stdenv.isAarch64 then "arm64" else "x86_64";
hashes =
{
-
"x86_64-linux" = "b13110bacc3f71c2a3e12c52172a821a85cc13243a95249ca18c8beb296c0ce8";
-
"aarch64-linux" = "afbc71f0570b86215942d1b4207fe3de0299e6fdfd2e6caac78bf688c81b9bd1";
-
"x86_64-darwin" = "50a3df09b02b34e1653beb1507c6de0f332674e088ded7c66af4e5987753304e";
-
"aarch64-darwin" = "174a5bfec355361c4f030861405513818be25fd7e4325f7221aa71ebd27475d3";
};
in
stdenv.mkDerivation rec {
pname = "lamdera";
-
version = "1.2.0";
src = fetchurl {
url = "https://static.lamdera.com/bin/lamdera-${version}-${os}-${arch}";
···
arch = if stdenv.isAarch64 then "arm64" else "x86_64";
hashes =
{
+
"x86_64-linux" = "a51d5b9a011c54b0001ff3273cee027774686e233adadb20b1978d2cabfe32a6";
+
"aarch64-linux" = "8904ce928f60e06df1f06b3af5ee5eb320c388922aa38b698d823df1d73e8e49";
+
"x86_64-darwin" = "b4d1bb5ddc3503862750e5b241f74c22dc013792bc4f410dd914a5216e20ed2f";
+
"aarch64-darwin" = "6d20e384dae90bb994c3f1e866c964124c7e8a51e9e08bad0e90a2b560bb5a18";
};
in
stdenv.mkDerivation rec {
pname = "lamdera";
+
version = "1.2.1";
src = fetchurl {
url = "https://static.lamdera.com/bin/lamdera-${version}-${os}-${arch}";
+2 -2
pkgs/development/compilers/gleam/default.nix
···
, pkg-config
, openssl
, Security
-
, libiconv
, nix-update-script
}:
rustPlatform.buildRustPackage rec {
···
nativeBuildInputs = [ git pkg-config ];
buildInputs = [ openssl ] ++
-
lib.optionals stdenv.isDarwin [ Security libiconv ];
cargoHash = "sha256-ffnDTGg+m0NUhG2BYjsXb2fWHeQmtDcBGqQDLqwZMWI=";
···
, pkg-config
, openssl
, Security
, nix-update-script
+
, SystemConfiguration
}:
rustPlatform.buildRustPackage rec {
···
nativeBuildInputs = [ git pkg-config ];
buildInputs = [ openssl ] ++
+
lib.optionals stdenv.isDarwin [ Security SystemConfiguration ];
cargoHash = "sha256-ffnDTGg+m0NUhG2BYjsXb2fWHeQmtDcBGqQDLqwZMWI=";
+3 -5
pkgs/development/libraries/boost-ext/boost-sml/default.nix
···
stdenv.mkDerivation rec {
pname = "boost-sml";
-
# This is first commit since 1.1.6 that passes all tests (test_policies_logging is commented out)
-
version = "1.1.6";
-
working_tests = "24d762d1901f4f6afaa5c5e0d1b7b77537964694";
src = fetchFromGitHub {
owner = "boost-ext";
repo = "sml";
-
rev = "${working_tests}";
-
hash = "sha256-ZhIfyYdzrzPTAYevOz5I6tAcUiLRMV8HENKX9jychEY=";
};
buildInputs = [ boost ];
···
stdenv.mkDerivation rec {
pname = "boost-sml";
+
version = "1.1.9";
src = fetchFromGitHub {
owner = "boost-ext";
repo = "sml";
+
rev = "v${version}";
+
hash = "sha256-RYgSpnsmgZybpkJALIzxpkDRfe9QF2FHG+nA3msFaK0=";
};
buildInputs = [ boost ];
+2 -2
pkgs/development/libraries/cracklib/default.nix
···
let version = "2.9.11"; in
{ stdenv, lib, buildPackages, fetchurl, zlib, gettext
-
, wordlists ? [ (fetchurl {
url = "https://github.com/cracklib/cracklib/releases/download/v${version}/cracklib-words-${version}.gz";
hash = "sha256-popxGjE1c517Z+nzYLM/DU7M+b1/rE0XwNXkVqkcUXo=";
}) ]
···
patchShebangs util
'' + ''
-
ln -vs ${toString wordlists} dicts/
'';
postInstall = ''
···
let version = "2.9.11"; in
{ stdenv, lib, buildPackages, fetchurl, zlib, gettext
+
, lists ? [ (fetchurl {
url = "https://github.com/cracklib/cracklib/releases/download/v${version}/cracklib-words-${version}.gz";
hash = "sha256-popxGjE1c517Z+nzYLM/DU7M+b1/rE0XwNXkVqkcUXo=";
}) ]
···
patchShebangs util
'' + ''
+
ln -vs ${toString lists} dicts/
'';
postInstall = ''
+4 -4
pkgs/development/libraries/intel-media-driver/default.nix
···
stdenv.mkDerivation rec {
pname = "intel-media-driver";
-
version = "23.1.6";
outputs = [ "out" "dev" ];
···
owner = "intel";
repo = "media-driver";
rev = "intel-media-${version}";
-
sha256 = "sha256-Z1xBU+4SdwknXpYUS8EwEURNIsg2+R/U0CcW3FW325M=";
};
patches = [
# fix platform detection
(fetchpatch {
-
url = "https://salsa.debian.org/multimedia-team/intel-media-driver-non-free/-/raw/04ffb03f744780a55aba311c612d708b00584bb7/debian/patches/0002-Remove-settings-based-on-ARCH.patch";
-
sha256 = "sha256-o/Pg0S53SYh3O7L+AwxOPl1Bx4TS6iKB8ql8GhhHI/o=";
})
];
···
stdenv.mkDerivation rec {
pname = "intel-media-driver";
+
version = "23.3.5";
outputs = [ "out" "dev" ];
···
owner = "intel";
repo = "media-driver";
rev = "intel-media-${version}";
+
hash = "sha256-7OdLpqO2evNeyxceOtHEI7sJCVybqvrcM1ZZx8bI4xw=";
};
patches = [
# fix platform detection
(fetchpatch {
+
url = "https://salsa.debian.org/multimedia-team/intel-media-driver-non-free/-/raw/7376a99f060c26d6be8e56674da52a61662617b9/debian/patches/0002-Remove-settings-based-on-ARCH.patch";
+
hash = "sha256-57yePuHWYb3XXrB4MjYO2h6jbqfs4SGTLlLG91el8M4=";
})
];
+29 -3
pkgs/development/libraries/libfive/default.nix
···
, libpng
, boost
, guile
, qtbase
, darwin
}:
···
hash = "sha256-OITy3fJx+Z6856V3D/KpSQRJztvOdJdqUv1c65wNgCc=";
};
-
nativeBuildInputs = [ wrapQtAppsHook cmake ninja pkg-config ];
-
buildInputs = [ eigen zlib libpng boost guile qtbase ]
++ lib.optionals stdenv.isDarwin [ darwin.apple_sdk_11_0.frameworks.Cocoa ];
preConfigure = ''
···
--replace "LIBFIVE_STDLIB_DIR=$<TARGET_FILE_DIR:libfive-stdlib>" \
"LIBFIVE_STDLIB_DIR=$out/lib"
export XDG_CACHE_HOME=$(mktemp -d)/.cache
'';
···
'' + ''
# Link "Studio" binary to "libfive-studio" to be more obvious:
ln -s "$out/bin/Studio" "$out/bin/libfive-studio"
'';
meta = with lib; {
description = "Infrastructure for solid modeling with F-Reps in C, C++, and Guile";
homepage = "https://libfive.com/";
-
maintainers = with maintainers; [ hodapp kovirobi ];
license = with licenses; [ mpl20 gpl2Plus ];
platforms = with platforms; all;
};
···
, libpng
, boost
, guile
+
, python
, qtbase
, darwin
}:
···
hash = "sha256-OITy3fJx+Z6856V3D/KpSQRJztvOdJdqUv1c65wNgCc=";
};
+
nativeBuildInputs = [ wrapQtAppsHook cmake ninja pkg-config python.pkgs.pythonImportsCheckHook ];
+
buildInputs = [ eigen zlib libpng boost guile python qtbase ]
++ lib.optionals stdenv.isDarwin [ darwin.apple_sdk_11_0.frameworks.Cocoa ];
preConfigure = ''
···
--replace "LIBFIVE_STDLIB_DIR=$<TARGET_FILE_DIR:libfive-stdlib>" \
"LIBFIVE_STDLIB_DIR=$out/lib"
+
substituteInPlace libfive/bind/python/CMakeLists.txt \
+
--replace ' ''${PYTHON_SITE_PACKAGES_DIR}' \
+
" $out/${python.sitePackages}" \
+
+
substituteInPlace libfive/bind/python/libfive/ffi.py \
+
--replace "os.path.join('libfive', folder)" \
+
"os.path.join('$out/${python.sitePackages}/libfive', folder)" \
+
export XDG_CACHE_HOME=$(mktemp -d)/.cache
'';
···
'' + ''
# Link "Studio" binary to "libfive-studio" to be more obvious:
ln -s "$out/bin/Studio" "$out/bin/libfive-studio"
+
+
# Create links since libfive looks for the library in a specific path.
+
mkdir -p "$out/${python.sitePackages}/libfive/src"
+
ln -s "$out"/lib/libfive.* "$out/${python.sitePackages}/libfive/src/"
+
mkdir -p "$out/${python.sitePackages}/libfive/stdlib"
+
ln -s "$out"/lib/libfive-stdlib.* "$out/${python.sitePackages}/libfive/stdlib/"
+
+
# Create links so Studio can find the bindings.
+
mkdir -p "$out/libfive/bind"
+
ln -s "$out/${python.sitePackages}" "$out/libfive/bind/python"
'';
+
pythonImportsCheck = [
+
"libfive"
+
"libfive.runner"
+
"libfive.shape"
+
"libfive.stdlib"
+
];
+
meta = with lib; {
description = "Infrastructure for solid modeling with F-Reps in C, C++, and Guile";
homepage = "https://libfive.com/";
+
maintainers = with maintainers; [ hodapp kovirobi wulfsta ];
license = with licenses; [ mpl20 gpl2Plus ];
platforms = with platforms; all;
};
+2 -2
pkgs/development/mobile/maestro/default.nix
···
stdenv.mkDerivation rec {
pname = "maestro";
-
version = "1.34.0";
src = fetchurl {
url = "https://github.com/mobile-dev-inc/maestro/releases/download/cli-${version}/maestro.zip";
-
sha256 = "1qbva38lcy1rm5k6r207hk3nqrr07h7x9sdppz4w5f37q0ll986r";
};
dontUnpack = true;
···
stdenv.mkDerivation rec {
pname = "maestro";
+
version = "1.34.1";
src = fetchurl {
url = "https://github.com/mobile-dev-inc/maestro/releases/download/cli-${version}/maestro.zip";
+
sha256 = "0whnhcf7a3j01693254qqwfk9d3xa4icv4kyqkn4ihxyibznb91d";
};
dontUnpack = true;
+2 -2
pkgs/development/python-modules/aioesphomeapi/default.nix
···
buildPythonPackage rec {
pname = "aioesphomeapi";
-
version = "18.2.1";
pyproject = true;
disabled = pythonOlder "3.9";
···
owner = "esphome";
repo = pname;
rev = "refs/tags/v${version}";
-
hash = "sha256-PW3/V4PTm+UxTsfSSvOEX+FGcuF4m+mDOz6Z/AzB2qk=";
};
nativeBuildInputs = [
···
buildPythonPackage rec {
pname = "aioesphomeapi";
+
version = "18.2.4";
pyproject = true;
disabled = pythonOlder "3.9";
···
owner = "esphome";
repo = pname;
rev = "refs/tags/v${version}";
+
hash = "sha256-m82UfhcmAFBDfSVmia6nhBB2qyQjSZJbXtzD/sGeqk4=";
};
nativeBuildInputs = [
+2 -2
pkgs/development/python-modules/bluetooth-data-tools/default.nix
···
buildPythonPackage rec {
pname = "bluetooth-data-tools";
-
version = "1.13.0";
format = "pyproject";
disabled = pythonOlder "3.9";
···
owner = "Bluetooth-Devices";
repo = pname;
rev = "refs/tags/v${version}";
-
hash = "sha256-qvr4CYOMgyTEFONpe6KA176H56+w6RHThAyUthIzszE=";
};
# The project can build both an optimized cython version and an unoptimized
···
buildPythonPackage rec {
pname = "bluetooth-data-tools";
+
version = "1.14.0";
format = "pyproject";
disabled = pythonOlder "3.9";
···
owner = "Bluetooth-Devices";
repo = pname;
rev = "refs/tags/v${version}";
+
hash = "sha256-eO17EuZ9K6tLAyEGmTaxw1Cxfz3XPPwNCcIwZ2/uHug=";
};
# The project can build both an optimized cython version and an unoptimized
+22 -18
pkgs/development/python-modules/geoalchemy2/default.nix
···
{ lib
, buildPythonPackage
-
, fetchPypi
, packaging
, setuptools-scm
, shapely
, sqlalchemy
, alembic
-
, psycopg2
, pytestCheckHook
, pythonOlder
}:
···
buildPythonPackage rec {
pname = "geoalchemy2";
version = "0.14.2";
-
format = "setuptools";
disabled = pythonOlder "3.7";
-
src = fetchPypi {
-
pname = "GeoAlchemy2";
-
inherit version;
-
hash = "sha256-jKAj3LmjbG0xLztK7mMdZjhSZOL8n+sKsPRG61YJQH0=";
};
nativeBuildInputs = [
setuptools-scm
];
propagatedBuildInputs = [
packaging
-
shapely
-
sqlalchemy
];
nativeCheckInputs = [
alembic
-
psycopg2
pytestCheckHook
-
];
-
pytestFlagsArray = [
-
# tests require live postgis database
-
"--deselect=tests/test_pickle.py::TestPickle::test_pickle_unpickle"
-
"--deselect=tests/gallery/test_specific_compilation.py::test_specific_compilation"
-
];
disabledTestPaths = [
# tests require live databases
···
"tests/gallery/test_length_at_insert.py"
"tests/gallery/test_insert_raster.py"
"tests/gallery/test_orm_mapped_v2.py"
"tests/gallery/test_summarystatsagg.py"
"tests/gallery/test_type_decorator.py"
"tests/test_functional.py"
"tests/test_functional_postgresql.py"
"tests/test_functional_mysql.py"
"tests/test_alembic_migrations.py"
];
pythonImportsCheck = [
"geoalchemy2"
];
meta = with lib; {
description = "Toolkit for working with spatial databases";
-
homepage = "https://geoalchemy-2.readthedocs.io/";
changelog = "https://github.com/geoalchemy/geoalchemy2/releases/tag/${version}";
license = licenses.mit;
-
maintainers = with maintainers; [ ];
};
}
···
{ lib
, buildPythonPackage
+
, fetchFromGitHub
, packaging
+
, setuptools
, setuptools-scm
, shapely
, sqlalchemy
, alembic
, pytestCheckHook
, pythonOlder
}:
···
buildPythonPackage rec {
pname = "geoalchemy2";
version = "0.14.2";
+
pyproject = true;
disabled = pythonOlder "3.7";
+
src = fetchFromGitHub {
+
owner = "geoalchemy";
+
repo = "geoalchemy2";
+
rev = "refs/tags/${version}";
+
hash = "sha256-C/F1hpL2DnzC4UPAGGFntlQlULCx5Ufzkw7EIrzRV7I=";
};
nativeBuildInputs = [
+
setuptools
setuptools-scm
];
propagatedBuildInputs = [
+
sqlalchemy
packaging
];
nativeCheckInputs = [
alembic
pytestCheckHook
+
] ++ passthru.optional-dependencies.shapely;
+
env = {
+
SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
};
disabledTestPaths = [
# tests require live databases
···
"tests/gallery/test_length_at_insert.py"
"tests/gallery/test_insert_raster.py"
"tests/gallery/test_orm_mapped_v2.py"
+
"tests/gallery/test_specific_compilation.py"
"tests/gallery/test_summarystatsagg.py"
"tests/gallery/test_type_decorator.py"
"tests/test_functional.py"
"tests/test_functional_postgresql.py"
"tests/test_functional_mysql.py"
"tests/test_alembic_migrations.py"
+
"tests/test_pickle.py"
];
pythonImportsCheck = [
"geoalchemy2"
];
+
passthru.optional-dependencies = {
+
shapely = [ shapely ];
+
};
+
meta = with lib; {
description = "Toolkit for working with spatial databases";
+
homepage = "https://geoalchemy-2.readthedocs.io/";
changelog = "https://github.com/geoalchemy/geoalchemy2/releases/tag/${version}";
license = licenses.mit;
+
maintainers = with maintainers; [ nickcao ];
};
}
+2 -2
pkgs/development/python-modules/home-assistant-bluetooth/default.nix
···
buildPythonPackage rec {
pname = "home-assistant-bluetooth";
-
version = "1.10.3";
format = "pyproject";
disabled = pythonOlder "3.9";
···
owner = "home-assistant-libs";
repo = pname;
rev = "refs/tags/v${version}";
-
hash = "sha256-77RrqmoCftPc48fFtuuFo0KqGX3n+6aDx2RFkwGCNzQ=";
};
postPatch = ''
···
buildPythonPackage rec {
pname = "home-assistant-bluetooth";
+
version = "1.10.4";
format = "pyproject";
disabled = pythonOlder "3.9";
···
owner = "home-assistant-libs";
repo = pname;
rev = "refs/tags/v${version}";
+
hash = "sha256-7gkesxQI6QBxyQpHlSSh1w6MDeid0dSdXn+jnxvafD0=";
};
postPatch = ''
+7 -5
pkgs/development/python-modules/jupyter-cache/default.nix
···
buildPythonPackage rec {
pname = "jupyter-cache";
-
version = "0.6.1";
-
format = "pyproject";
-
disabled = pythonOlder "3.7";
src = fetchPypi {
-
inherit pname version;
-
sha256 = "sha256-Jvg5ARQ+30ry8/9akeLSrSmORuLO4DyAcdN6I6Y8y/w=";
};
nativeBuildInputs = [
···
meta = with lib; {
description = "A defined interface for working with a cache of jupyter notebooks";
homepage = "https://github.com/executablebooks/jupyter-cache";
license = licenses.mit;
maintainers = with maintainers; [ marsam ];
};
···
buildPythonPackage rec {
pname = "jupyter-cache";
+
version = "1.0.0";
+
pyproject = true;
+
disabled = pythonOlder "3.9";
src = fetchPypi {
+
inherit version;
+
pname = "jupyter_cache";
+
hash = "sha256-0Pp9dTPNV5gZjYiJMYJpqME4LtOyL2IsCak1ZSH0hoc=";
};
nativeBuildInputs = [
···
meta = with lib; {
description = "A defined interface for working with a cache of jupyter notebooks";
homepage = "https://github.com/executablebooks/jupyter-cache";
+
changelog = "https://github.com/executablebooks/jupyter-cache/blob/v${version}/CHANGELOG.md";
license = licenses.mit;
maintainers = with maintainers; [ marsam ];
};
-33
pkgs/development/python-modules/labgrid/0001-serialdriver-remove-pyserial-version-check.patch
···
-
From 75baa1751973378cb96fb204b0a18a74e5caa2d1 Mon Sep 17 00:00:00 2001
-
From: Rouven Czerwinski <r.czerwinski@pengutronix.de>
-
Date: Wed, 17 Feb 2021 14:03:20 +0100
-
Subject: [PATCH] serialdriver: remove pyserial version check
-
-
This check isn't required on NixOS, since pyserial within NixOS already
-
contains the patches.
-
-
Signed-off-by: Rouven Czerwinski <r.czerwinski@pengutronix.de>
-
---
-
labgrid/driver/serialdriver.py | 6 ------
-
1 file changed, 6 deletions(-)
-
-
diff --git a/labgrid/driver/serialdriver.py b/labgrid/driver/serialdriver.py
-
index 126f674e..59a92269 100644
-
--- a/labgrid/driver/serialdriver.py
-
+++ b/labgrid/driver/serialdriver.py
-
@@ -27,12 +27,6 @@ class SerialDriver(ConsoleExpectMixin, Driver, ConsoleProtocol):
-
bindings = {"port": "SerialPort", }
-
else:
-
bindings = {"port": {"SerialPort", "NetworkSerialPort"}, }
-
- if version.parse(serial.__version__) != version.Version('3.4.0.1'):
-
- message = ("The installed pyserial version does not contain important RFC2217 fixes.\n"
-
- "You can install the labgrid fork via:\n"
-
- "pip uninstall pyserial\n"
-
- "pip install https://github.com/labgrid-project/pyserial/archive/v3.4.0.1.zip#egg=pyserial\n") # pylint: disable=line-too-long
-
- warnings.warn(message)
-
-
txdelay = attr.ib(default=0.0, validator=attr.validators.instance_of(float))
-
timeout = attr.ib(default=3.0, validator=attr.validators.instance_of(float))
-
--
-
2.30.0
-
···
+7 -5
pkgs/development/python-modules/labgrid/default.nix
···
, pyusb
, pyyaml
, requests
, setuptools-scm
, xmodem
}:
···
sha256 = "sha256-yhlBqqCLOt6liw4iv8itG6E4QfIa7cW76QJqefUM5dw=";
};
-
patches = [
-
# Pyserial within Nixpkgs already includes the necessary fix, remove the
-
# pyserial version check from labgrid.
-
./0001-serialdriver-remove-pyserial-version-check.patch
];
-
nativeBuildInputs = [ setuptools-scm ];
propagatedBuildInputs = [
ansicolors
···
, pyusb
, pyyaml
, requests
+
, setuptools
, setuptools-scm
+
, wheel
, xmodem
}:
···
sha256 = "sha256-yhlBqqCLOt6liw4iv8itG6E4QfIa7cW76QJqefUM5dw=";
};
+
nativeBuildInputs = [
+
setuptools
+
setuptools-scm
+
wheel
];
+
pyproject = true;
propagatedBuildInputs = [
ansicolors
+4 -4
pkgs/development/python-modules/maison/default.nix
···
buildPythonPackage rec {
pname = "maison";
-
version = "1.4.0";
-
format = "pyproject";
disabled = pythonOlder "3.7";
src = fetchFromGitHub {
owner = "dbatten5";
-
repo = pname;
rev = "refs/tags/v${version}";
-
hash = "sha256-Ny/n1vDWS6eA9zLIB0os5zrbwvutb+7sQ6iPXeid1M0=";
};
nativeBuildInputs = [
···
buildPythonPackage rec {
pname = "maison";
+
version = "1.4.1";
+
pyproject = true;
disabled = pythonOlder "3.7";
src = fetchFromGitHub {
owner = "dbatten5";
+
repo = "maison";
rev = "refs/tags/v${version}";
+
hash = "sha256-uJW+7+cIt+jnbiC+HvT7KzyNk1enEtELTxtfc4eXAPU=";
};
nativeBuildInputs = [
+37 -6
pkgs/development/python-modules/mechanize/default.nix
···
, buildPythonPackage
, fetchPypi
, html5lib
}:
buildPythonPackage rec {
pname = "mechanize";
-
version = "0.4.8";
src = fetchPypi {
inherit pname version;
-
hash = "sha256-XoasB3c1fgBusEzSj37Z+BHUjf+mA9OJGsbSuSKA3JE=";
};
-
propagatedBuildInputs = [ html5lib ];
-
doCheck = false;
meta = with lib; {
description = "Stateful programmatic web browsing in Python";
homepage = "https://github.com/python-mechanize/mechanize";
-
license = "BSD-style";
};
-
}
···
, buildPythonPackage
, fetchPypi
, html5lib
+
, pytestCheckHook
+
, pythonOlder
+
, setuptools
}:
buildPythonPackage rec {
pname = "mechanize";
+
version = "0.4.9";
+
pyproject = true;
+
+
disabled = pythonOlder "3.7";
src = fetchPypi {
inherit pname version;
+
hash = "sha256-aaXtsJYvkh6LEINzaMIkLYrQSfC5H/aZzn9gG/xDFSE=";
};
+
nativeBuildInputs = [
+
setuptools
+
];
+
+
propagatedBuildInputs = [
+
html5lib
+
];
+
+
nativeCheckInputs = [
+
pytestCheckHook
+
];
+
+
pythonImportsCheck = [
+
"mechanize"
+
];
+
+
disabledTestPaths = [
+
# Tests require network access
+
"test/test_urllib2_localnet.py"
+
"test/test_functional.py"
+
];
+
disabledTests = [
+
# Tests require network access
+
"test_pickling"
+
"test_password_manager"
+
];
meta = with lib; {
description = "Stateful programmatic web browsing in Python";
homepage = "https://github.com/python-mechanize/mechanize";
+
changelog = "https://github.com/python-mechanize/mechanize/blob/v${version}/ChangeLog";
+
license = licenses.bsd3;
+
maintainers = with maintainers; [ ];
};
}
+30 -5
pkgs/development/python-modules/omemo-dr/default.nix
···
-
{ lib, buildPythonPackage, fetchPypi, cryptography, protobuf }:
buildPythonPackage rec {
pname = "omemo-dr";
-
version = "1.0.0";
src = fetchPypi {
inherit pname version;
-
hash = "sha256-sP5QI+lHoXt0D7ftSqJGEg1vIdgZtYEulN/JVwUgvmE=";
};
propagatedBuildInputs = [
cryptography
protobuf
];
-
meta = {
description = "OMEMO Double Ratchet";
-
license = lib.licenses.lgpl3;
homepage = "https://dev.gajim.org/gajim/omemo-dr/";
};
}
···
+
{ lib
+
, buildPythonPackage
+
, cryptography
+
, fetchPypi
+
, protobuf
+
, pytestCheckHook
+
, pythonOlder
+
, setuptools
+
}:
buildPythonPackage rec {
pname = "omemo-dr";
+
version = "1.0.1";
+
pyproject = true;
+
+
disabled = pythonOlder "3.10";
src = fetchPypi {
inherit pname version;
+
hash = "sha256-KoqMdyMdc5Sb3TdSeNTVomElK9ruUstiQayyUcIC02E=";
};
+
nativeBuildInputs = [
+
setuptools
+
];
+
propagatedBuildInputs = [
cryptography
protobuf
];
+
nativeCheckInputs = [
+
pytestCheckHook
+
];
+
+
pythonImportsCheck = [
+
"omemo_dr"
+
];
+
+
meta = with lib; {
description = "OMEMO Double Ratchet";
homepage = "https://dev.gajim.org/gajim/omemo-dr/";
+
changelog = "https://dev.gajim.org/gajim/omemo-dr/-/blob/v${version}/CHANGELOG.md";
+
license = licenses.gpl3Only;
+
maintainers = with maintainers; [ ];
};
}
+2 -2
pkgs/development/python-modules/omrdatasettools/default.nix
···
buildPythonPackage rec {
pname = "omrdatasettools";
-
version = "1.3.1";
src = fetchPypi {
inherit pname version;
-
sha256 = "0cdq02jp8vh78yjq9bncjjl0pb554idrcxkd62rzwk4l6ss2fkw5";
};
propagatedBuildInputs = [
···
buildPythonPackage rec {
pname = "omrdatasettools";
+
version = "1.4.0";
src = fetchPypi {
inherit pname version;
+
sha256 = "sha256-kUUcbti29uDnSEvCubMAUnptlaZGpEsW2IBGSAGnGyQ=";
};
propagatedBuildInputs = [
+2 -2
pkgs/development/python-modules/pyatmo/default.nix
···
buildPythonPackage rec {
pname = "pyatmo";
-
version = "7.5.0";
format = "pyproject";
disabled = pythonOlder "3.8";
···
owner = "jabesq";
repo = "pyatmo";
rev = "refs/tags/v${version}";
-
hash = "sha256-GucatimZTg0Fggrz4bG1x6YSa3wE/uLGB4ufil/km3w=";
};
SETUPTOOLS_SCM_PRETEND_VERSION = version;
···
buildPythonPackage rec {
pname = "pyatmo";
+
version = "7.6.0";
format = "pyproject";
disabled = pythonOlder "3.8";
···
owner = "jabesq";
repo = "pyatmo";
rev = "refs/tags/v${version}";
+
hash = "sha256-rAmSxayXljOJchiMtSOgnotzQmapK2n86HwNi9HJX68=";
};
SETUPTOOLS_SCM_PRETEND_VERSION = version;
+2 -2
pkgs/development/python-modules/python-jenkins/default.nix
···
buildPythonPackage rec {
pname = "python-jenkins";
-
version = "1.8.1";
src = fetchPypi {
inherit pname version;
-
hash = "sha256-/18dklOdkD+GmwLq8rExREfm1tePdn7c/dkpZ9UyucY=";
};
# test uses timeout mechanism unsafe for use with the "spawn"
···
buildPythonPackage rec {
pname = "python-jenkins";
+
version = "1.8.2";
src = fetchPypi {
inherit pname version;
+
hash = "sha256-VufauwYHvbjh1vxtLUMBq+2+2RZdorIG+svTBxy27ss=";
};
# test uses timeout mechanism unsafe for use with the "spawn"
+18 -14
pkgs/development/python-modules/python-telegram/default.nix
···
{ lib
, stdenv
-
, fetchpatch
, buildPythonPackage
-
, fetchPypi
, pythonOlder
, setuptools
, tdlib
}:
buildPythonPackage rec {
···
version = "0.18.0";
disabled = pythonOlder "3.6";
-
src = fetchPypi {
-
inherit pname version;
-
hash = "sha256-UbJW/op01qe/HchfJUlBPBY9/W8NbZkEmFM8gZ5+EmI=";
};
-
patches = [
-
# Search for the system library first, and fallback to the embedded one if the system was not found
-
(fetchpatch {
-
url = "https://github.com/alexander-akhmetov/python-telegram/commit/b0af0985910ebb8940cff1b92961387aad683287.patch";
-
hash = "sha256-ZqsntaiC2y9l034gXDMeD2BLO/RcsbBII8FomZ65/24=";
-
})
-
];
-
postPatch = ''
# Remove bundled libtdjson
rm -fr telegram/lib
substituteInPlace telegram/tdjson.py \
-
--replace "ctypes.util.find_library(\"libtdjson\")" \
"\"${tdlib}/lib/libtdjson${stdenv.hostPlatform.extensions.sharedLibrary}\""
'';
propagatedBuildInputs = [
setuptools
];
pythonImportsCheck = [
···
{ lib
, stdenv
, buildPythonPackage
+
, fetchFromGitHub
, pythonOlder
, setuptools
, tdlib
+
, telegram-text
+
, pytestCheckHook
}:
buildPythonPackage rec {
···
version = "0.18.0";
disabled = pythonOlder "3.6";
+
src = fetchFromGitHub {
+
owner = "alexander-akhmetov";
+
repo = "python-telegram";
+
rev = version;
+
hash = "sha256-2Q0nUZ2TMVWznd05+fqYojkRn4xfFZJrlqb1PMuBsAY=";
};
postPatch = ''
# Remove bundled libtdjson
rm -fr telegram/lib
substituteInPlace telegram/tdjson.py \
+
--replace "ctypes.util.find_library(\"tdjson\")" \
"\"${tdlib}/lib/libtdjson${stdenv.hostPlatform.extensions.sharedLibrary}\""
'';
propagatedBuildInputs = [
setuptools
+
telegram-text
+
];
+
+
nativeCheckInputs = [
+
pytestCheckHook
+
];
+
+
disabledTests = [
+
"TestGetTdjsonTdlibPath"
];
pythonImportsCheck = [
+11 -3
pkgs/development/python-modules/scikit-rf/default.nix
···
, setuptools
, pytestCheckHook
, pytest-cov
}:
buildPythonPackage rec {
pname = "scikit-rf";
-
version = "0.29.0";
-
format = "pyproject";
disabled = pythonOlder "3.7";
···
owner = "scikit-rf";
repo = pname;
rev = "refs/tags/v${version}";
-
hash = "sha256-rBOw1rIEF8Ia6xXlXxVzRRiUxrOjOAlipFuKiL+gRl0=";
};
buildInputs = [
···
coverage
flake8
pytest-cov
nbval
matplotlib
pyvisa
···
checkInputs = [
pytestCheckHook
];
pythonImportsCheck = [
"skrf"
···
, setuptools
, pytestCheckHook
, pytest-cov
+
, pytest-mock
}:
buildPythonPackage rec {
pname = "scikit-rf";
+
version = "0.29.1";
+
pyproject = true;
disabled = pythonOlder "3.7";
···
owner = "scikit-rf";
repo = pname;
rev = "refs/tags/v${version}";
+
hash = "sha256-sLE6rcBGUKmk5y7oO06rHON3GVIjcvnKlr6Tgddj64Y=";
};
buildInputs = [
···
coverage
flake8
pytest-cov
+
pytest-mock
nbval
matplotlib
pyvisa
···
checkInputs = [
pytestCheckHook
];
+
+
# test_calibration.py generates a divide by zero error on darwin
+
# https://github.com/scikit-rf/scikit-rf/issues/972
+
disabledTestPaths =
+
lib.optional (stdenv.isAarch64 && stdenv.isDarwin)
+
"skrf/calibration/tests/test_calibration.py";
pythonImportsCheck = [
"skrf"
+17 -9
pkgs/development/python-modules/tabula-py/default.nix
···
, pandas
, pytestCheckHook
, pythonOlder
, setuptools-scm
-
, setuptools
}:
buildPythonPackage rec {
pname = "tabula-py";
-
version = "2.8.1";
format = "pyproject";
disabled = pythonOlder "3.8";
···
owner = "chezou";
repo = pname;
rev = "refs/tags/v${version}";
-
hash = "sha256-QqTfbSwGaNRXBiAzB1fsEawxCvlIunB1j2jSFD9imPI=";
};
-
patches = [
-
./java-interpreter-path.patch
-
];
-
postPatch = ''
-
sed -i 's|@JAVA@|${jre}/bin/java|g' $(find -name '*.py')
'';
SETUPTOOLS_SCM_PRETEND_VERSION = version;
nativeBuildInputs = [
setuptools-scm
];
propagatedBuildInputs = [
distro
numpy
pandas
-
setuptools
];
nativeCheckInputs = [
···
"test_read_pdf_with_remote_template"
"test_read_remote_pdf"
"test_read_remote_pdf_with_custom_user_agent"
];
meta = with lib; {
···
, pandas
, pytestCheckHook
, pythonOlder
+
, setuptools
, setuptools-scm
+
, jpype1
}:
buildPythonPackage rec {
pname = "tabula-py";
+
version = "2.8.2";
format = "pyproject";
disabled = pythonOlder "3.8";
···
owner = "chezou";
repo = pname;
rev = "refs/tags/v${version}";
+
hash = "sha256-Zrq1i+HYXXNulyZ/fv00AgVd7ODj3rP9orLq5rT3ERU=";
};
postPatch = ''
+
substituteInPlace tabula/backend.py \
+
--replace '"java"' '"${lib.getExe jre}"'
'';
SETUPTOOLS_SCM_PRETEND_VERSION = version;
nativeBuildInputs = [
+
setuptools
setuptools-scm
];
+
buildInputs = [
+
jre
+
];
+
propagatedBuildInputs = [
distro
numpy
pandas
+
jpype1
];
nativeCheckInputs = [
···
"test_read_pdf_with_remote_template"
"test_read_remote_pdf"
"test_read_remote_pdf_with_custom_user_agent"
+
# not sure what it checks
+
# probably related to jpype, but we use subprocess instead
+
# https://github.com/chezou/tabula-py/issues/352#issuecomment-1730791540
+
# Failed: DID NOT RAISE <class 'RuntimeError'>
+
"test_read_pdf_with_silent_true"
];
meta = with lib; {
-54
pkgs/development/python-modules/tabula-py/java-interpreter-path.patch
···
-
diff -ru origsource/tabula/io.py source/tabula/io.py
-
--- origsource/tabula/io.py 2022-11-23 17:19:35.419837514 +0100
-
+++ source/tabula/io.py 2022-11-23 17:22:08.204194807 +0100
-
@@ -79,7 +79,7 @@
-
)
-
)
-
-
- args = ["java"] + java_options + ["-jar", _jar_path()] + options.build_option_list()
-
+ args = ["@JAVA@"] + java_options + ["-jar", _jar_path()] + options.build_option_list()
-
if path:
-
args.append(path)
-
-
diff -ru origsource/tabula/util.py source/tabula/util.py
-
--- origsource/tabula/util.py 2022-11-23 17:19:35.422837521 +0100
-
+++ source/tabula/util.py 2022-11-23 17:21:41.514132392 +0100
-
@@ -26,7 +26,7 @@
-
-
try:
-
res = subprocess.check_output(
-
- ["java", "-version"], stderr=subprocess.STDOUT
-
+ ["@JAVA@", "-version"], stderr=subprocess.STDOUT
-
).decode()
-
-
except FileNotFoundError:
-
diff -ru origsource/tests/test_read_pdf_table.py source/tests/test_read_pdf_table.py
-
--- origsource/tests/test_read_pdf_table.py 2022-11-23 17:19:35.422837521 +0100
-
+++ source/tests/test_read_pdf_table.py 2022-11-23 17:21:22.008086776 +0100
-
@@ -281,7 +281,7 @@
-
-
tabula.read_pdf(self.pdf_path, encoding="utf-8")
-
-
- target_args = ["java"]
-
+ target_args = ["@JAVA@"]
-
if platform.system() == "Darwin":
-
target_args += ["-Djava.awt.headless=true"]
-
target_args += [
-
@@ -355,7 +355,7 @@
-
-
tabula.read_pdf(self.pdf_path, encoding="utf-8", silent=False)
-
-
- target_args = ["java"]
-
+ target_args = ["@JAVA@"]
-
if platform.system() == "Darwin":
-
target_args += ["-Djava.awt.headless=true"]
-
target_args += [
-
@@ -382,7 +382,7 @@
-
-
tabula.read_pdf(self.pdf_path, encoding="utf-8", silent=True)
-
-
- target_args = ["java"]
-
+ target_args = ["@JAVA@"]
-
if platform.system() == "Darwin":
-
target_args += ["-Djava.awt.headless=true"]
-
target_args += [
···
+8 -6
pkgs/development/python-modules/tailscale/default.nix
···
, aresponses
, buildPythonPackage
, fetchFromGitHub
, poetry-core
-
, pydantic
, pytest-asyncio
, pytestCheckHook
, pythonOlder
···
buildPythonPackage rec {
pname = "tailscale";
-
version = "0.3.0";
format = "pyproject";
-
disabled = pythonOlder "3.8";
src = fetchFromGitHub {
owner = "frenck";
repo = "python-tailscale";
rev = "refs/tags/v${version}";
-
hash = "sha256-gGDsVGsCBZi/pxD0cyH3+xrvHVBC+wJCcl/NGqsTqiE=";
};
postPatch = ''
# Upstream doesn't set a version for the pyproject.toml
substituteInPlace pyproject.toml \
-
--replace "0.0.0" "${version}" \
--replace "--cov" ""
'';
···
propagatedBuildInputs = [
aiohttp
-
pydantic
yarl
];
···
, aresponses
, buildPythonPackage
, fetchFromGitHub
+
, mashumaro
+
, orjson
, poetry-core
, pytest-asyncio
, pytestCheckHook
, pythonOlder
···
buildPythonPackage rec {
pname = "tailscale";
+
version = "0.6.0";
format = "pyproject";
+
disabled = pythonOlder "3.11";
src = fetchFromGitHub {
owner = "frenck";
repo = "python-tailscale";
rev = "refs/tags/v${version}";
+
hash = "sha256-wO6yMMU5fxk8GQ0e4ZCse2atlR4wrzulZOFXkVKAsmU=";
};
postPatch = ''
# Upstream doesn't set a version for the pyproject.toml
substituteInPlace pyproject.toml \
+
--replace 'version = "0.0.0"' 'version = "${version}"' \
--replace "--cov" ""
'';
···
propagatedBuildInputs = [
aiohttp
+
mashumaro
+
orjson
yarl
];
+39
pkgs/development/python-modules/telegram-text/default.nix
···
···
+
{ lib
+
, stdenv
+
, buildPythonPackage
+
, fetchFromGitHub
+
, pythonOlder
+
, poetry-core
+
, pytestCheckHook
+
}:
+
+
buildPythonPackage rec {
+
pname = "telegram-text";
+
version = "0.1.2";
+
pyproject = true;
+
disabled = pythonOlder "3.7";
+
+
src = fetchFromGitHub {
+
owner = "SKY-ALIN";
+
repo = "telegram-text";
+
rev = "v${version}";
+
hash = "sha256-p8SVQq7IvkVuOFE8VDugROLY5Wk0L2HmXyacTzFFSP4=";
+
};
+
+
nativeBuildInputs = [
+
poetry-core
+
];
+
+
nativeCheckInputs = [
+
pytestCheckHook
+
];
+
+
meta = with lib; {
+
description = "Python markup module for Telegram messenger";
+
downloadPage = "https://github.com/SKY-ALIN/telegram-text";
+
homepage = "https://telegram-text.alinsky.tech/";
+
changelog = "https://github.com/SKY-ALIN/telegram-text/blob/v${version}/CHANGELOG.md";
+
license = licenses.mit;
+
maintainers = with maintainers; [ sikmir ];
+
};
+
}
+2 -2
pkgs/development/python-modules/ulid-transform/default.nix
···
buildPythonPackage rec {
pname = "ulid-transform";
-
version = "0.8.1";
format = "pyproject";
disabled = pythonOlder "3.9";
···
owner = "bdraco";
repo = pname;
rev = "refs/tags/v${version}";
-
hash = "sha256-isngr9CZ2YYuq+5s3p4HXrTU20vPqZGZ1r8mBoVkxiI=";
};
nativeBuildInputs = [
···
buildPythonPackage rec {
pname = "ulid-transform";
+
version = "0.9.0";
format = "pyproject";
disabled = pythonOlder "3.9";
···
owner = "bdraco";
repo = pname;
rev = "refs/tags/v${version}";
+
hash = "sha256-r9uxPXpmQSsL1rX4d9TH87olFbZugdGdNG++Ygjie1I=";
};
nativeBuildInputs = [
+5
pkgs/development/python-modules/wfuzz/default.nix
···
"wfuzz"
];
meta = with lib; {
description = "Web content fuzzer to facilitate web applications assessments";
longDescription = ''
···
"wfuzz"
];
+
postInstall = ''
+
mkdir -p $out/share/wordlists/wfuzz
+
cp -R -T "wordlist" "$out/share/wordlists/wfuzz"
+
'';
+
meta = with lib; {
description = "Web content fuzzer to facilitate web applications assessments";
longDescription = ''
+16 -1
pkgs/development/skaware-packages/skalibs/default.nix
···
-
{ skawarePackages, pkgs }:
with skawarePackages;
···
# Empty the default path, which would be "/usr/bin:bin".
# It would be set when PATH is empty. This hurts hermeticity.
"--with-default-path="
];
postInstall = ''
···
+
{ lib
+
, stdenv
+
, skawarePackages
+
, pkgs
+
}:
with skawarePackages;
···
# Empty the default path, which would be "/usr/bin:bin".
# It would be set when PATH is empty. This hurts hermeticity.
"--with-default-path="
+
+
] ++ lib.optionals (stdenv.buildPlatform.config != stdenv.hostPlatform.config) [
+
# ./configure: sysdep posixspawnearlyreturn cannot be autodetected
+
# when cross-compiling. Please manually provide a value with the
+
# --with-sysdep-posixspawnearlyreturn=yes|no|... option.
+
#
+
# posixspawnearlyreturn: `yes` if the target has a broken
+
# `posix_spawn()` implementation that can return before the
+
# child has successfully exec'ed. That happens with old glibcs
+
# and some virtual platforms.
+
"--with-sysdep-posixspawnearlyreturn=no"
];
postInstall = ''
+16 -5
pkgs/development/tools/build-managers/bazel/bazel_6/default.nix
···
, file
, substituteAll
, writeTextFile
}:
let
···
];
defaultShellPath = lib.makeBinPath defaultShellUtils;
platforms = lib.platforms.linux ++ lib.platforms.darwin;
···
# If you add more replacements here, you must change the grep above!
# Only files containing /bin are taken into account.
substituteInPlace "$path" \
-
--replace /bin/bash ${bash}/bin/bash \
-
--replace "/usr/bin/env bash" ${bash}/bin/bash \
--replace "/usr/bin/env python" ${python3}/bin/python \
--replace /usr/bin/env ${coreutils}/bin/env \
--replace /bin/true ${coreutils}/bin/true
···
# bazel test runner include references to /bin/bash
substituteInPlace tools/build_rules/test_rules.bzl \
-
--replace /bin/bash ${bash}/bin/bash
for i in $(find tools/cpp/ -type f)
do
substituteInPlace $i \
-
--replace /bin/bash ${bash}/bin/bash
done
# Fixup scripts that generate scripts. Not fixed up by patchShebangs below.
substituteInPlace scripts/bootstrap/compile.sh \
-
--replace /bin/bash ${bash}/bin/bash
# add nix environment vars to .bazelrc
cat >> .bazelrc <<EOF
···
, file
, substituteAll
, writeTextFile
+
, writeShellApplication
}:
let
···
];
defaultShellPath = lib.makeBinPath defaultShellUtils;
+
+
bashWithDefaultShellUtils = writeShellApplication {
+
name = "bash";
+
text = ''
+
if [[ "$PATH" == "/no-such-path" ]]; then
+
export PATH=${defaultShellPath}
+
fi
+
exec ${bash}/bin/bash "$@"
+
'';
+
};
platforms = lib.platforms.linux ++ lib.platforms.darwin;
···
# If you add more replacements here, you must change the grep above!
# Only files containing /bin are taken into account.
substituteInPlace "$path" \
+
--replace /bin/bash ${bashWithDefaultShellUtils}/bin/bash \
+
--replace "/usr/bin/env bash" ${bashWithDefaultShellUtils}/bin/bash \
--replace "/usr/bin/env python" ${python3}/bin/python \
--replace /usr/bin/env ${coreutils}/bin/env \
--replace /bin/true ${coreutils}/bin/true
···
# bazel test runner include references to /bin/bash
substituteInPlace tools/build_rules/test_rules.bzl \
+
--replace /bin/bash ${bashWithDefaultShellUtils}/bin/bash
for i in $(find tools/cpp/ -type f)
do
substituteInPlace $i \
+
--replace /bin/bash ${bashWithDefaultShellUtils}/bin/bash
done
# Fixup scripts that generate scripts. Not fixed up by patchShebangs below.
substituteInPlace scripts/bootstrap/compile.sh \
+
--replace /bin/bash ${bashWithDefaultShellUtils}/bin/bash
# add nix environment vars to .bazelrc
cat >> .bazelrc <<EOF
+3 -3
pkgs/development/tools/rust/cargo-update/default.nix
···
rustPlatform.buildRustPackage rec {
pname = "cargo-update";
-
version = "13.1.0";
src = fetchCrate {
inherit pname version;
-
sha256 = "sha256-2j35R7QTn7Z3yqzOU+VWAoZfYodecDt45Plx/D7+GyU=";
};
-
cargoHash = "sha256-OEv9LOep4YNWY7oixY5zD9QgxqSYTrcf5oSXpxvnKIs=";
nativeBuildInputs = [
cmake
···
rustPlatform.buildRustPackage rec {
pname = "cargo-update";
+
version = "13.2.0";
src = fetchCrate {
inherit pname version;
+
sha256 = "sha256-yMHGn/RPtYuxS3rHzm87mW7nBUEaSOGsCT7Ckxvhabk=";
};
+
cargoHash = "sha256-hO2W0NRV9fGHnnS1kOkQ+e0sFzVSBQk3MOm8qDYbA00=";
nativeBuildInputs = [
cmake
+3 -3
pkgs/development/tools/viceroy/default.nix
···
rustPlatform.buildRustPackage rec {
pname = "viceroy";
-
version = "0.9.2";
src = fetchFromGitHub {
owner = "fastly";
repo = pname;
rev = "v${version}";
-
hash = "sha256-vMyNsLXMJk8MTiZYRiGQpOLZfeJbKlYcG1U8xTQIty0=";
};
buildInputs = lib.optional stdenv.isDarwin Security;
-
cargoHash = "sha256-+v2P9ISSA7Xy5fTjfVNETAStPo19dLxv5K57MC/GU4E=";
cargoTestFlags = [
"--package viceroy-lib"
···
rustPlatform.buildRustPackage rec {
pname = "viceroy";
+
version = "0.9.3";
src = fetchFromGitHub {
owner = "fastly";
repo = pname;
rev = "v${version}";
+
hash = "sha256-LOm4d6SV5rlb7NovhSp7V0JIaOfHIZOqeIcpIvTsZsA=";
};
buildInputs = lib.optional stdenv.isDarwin Security;
+
cargoHash = "sha256-Pz+jA4uC/40mj5Jn/lB+XcoN/QSD23iLwsEowTUI0pg=";
cargoTestFlags = [
"--package viceroy-lib"
+4 -4
pkgs/development/tools/yarn-berry/default.nix
···
stdenv.mkDerivation rec {
name = "yarn-berry";
-
version = "3.4.1";
src = fetchFromGitHub {
owner = "yarnpkg";
repo = "berry";
rev = "@yarnpkg/cli/${version}";
-
hash = "sha256-eBBB/F+mnGi93Qf23xgt306/ogoV76RXOM90O14u5Tw=";
};
buildInputs = [
···
runHook postInstall
'';
-
meta = with lib; {
homepage = "https://yarnpkg.com/";
description = "Fast, reliable, and secure dependency management.";
license = licenses.bsd2;
-
maintainers = with maintainers; [ ryota-ka ];
platforms = platforms.unix;
};
}
···
stdenv.mkDerivation rec {
name = "yarn-berry";
+
version = "4.0.1";
src = fetchFromGitHub {
owner = "yarnpkg";
repo = "berry";
rev = "@yarnpkg/cli/${version}";
+
hash = "sha256-9QNeXamNqRx+Bfg8nAhnImPuNFyqrHIs1eF9prSwIR4=";
};
buildInputs = [
···
runHook postInstall
'';
+
meta = with lib; {
homepage = "https://yarnpkg.com/";
description = "Fast, reliable, and secure dependency management.";
license = licenses.bsd2;
+
maintainers = with maintainers; [ ryota-ka thehedgeh0g ];
platforms = platforms.unix;
};
}
+5 -5
pkgs/games/anki/bin.nix
···
let
pname = "anki-bin";
# Update hashes for both Linux and Darwin!
-
version = "23.10";
sources = {
linux = fetchurl {
url = "https://github.com/ankitects/anki/releases/download/${version}/anki-${version}-linux-qt6.tar.zst";
-
sha256 = "sha256-dfL95UKu6kwD4WHLtXlIdkf5UItEtW2WCAKP7YGlCtc=";
};
# For some reason anki distributes completely separate dmg-files for the aarch64 version and the x86_64 version
darwin-x86_64 = fetchurl {
url = "https://github.com/ankitects/anki/releases/download/${version}/anki-${version}-mac-intel-qt6.dmg";
-
sha256 = "sha256-Y8BZ7EA6Dn4+5kMCFyuXi17XDLn9YRxqVGautt9WUOo=";
};
darwin-aarch64 = fetchurl {
url = "https://github.com/ankitects/anki/releases/download/${version}/anki-${version}-mac-apple-qt6.dmg";
-
sha256 = "sha256-IrKWJ16gMCR2MH8dgYUCtMj6mDQP18+HQr17hfekPIs=";
};
};
···
meta = with lib; {
inherit (anki.meta) license homepage description longDescription;
platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-darwin" ];
-
maintainers = with maintainers; [ mahmoudk1000 atemu ];
};
passthru = { inherit sources; };
···
let
pname = "anki-bin";
# Update hashes for both Linux and Darwin!
+
version = "23.10.1";
sources = {
linux = fetchurl {
url = "https://github.com/ankitects/anki/releases/download/${version}/anki-${version}-linux-qt6.tar.zst";
+
sha256 = "sha256-Kv0SH+bLnBSM/tYHe2kEJc4n7izZTBNWQs2nm/teLEU=";
};
# For some reason anki distributes completely separate dmg-files for the aarch64 version and the x86_64 version
darwin-x86_64 = fetchurl {
url = "https://github.com/ankitects/anki/releases/download/${version}/anki-${version}-mac-intel-qt6.dmg";
+
sha256 = "sha256-MSlKsEv4N/H7G1bUOBlPBXerpHIW32P6Va02aRq1+54=";
};
darwin-aarch64 = fetchurl {
url = "https://github.com/ankitects/anki/releases/download/${version}/anki-${version}-mac-apple-qt6.dmg";
+
sha256 = "sha256-jEm9WJBXx77KpldzBuxK1Pu6VGiARZPnRmMhEjZdm1I=";
};
};
···
meta = with lib; {
inherit (anki.meta) license homepage description longDescription;
platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-darwin" ];
+
maintainers = with maintainers; [ mahmoudk1000 ];
};
passthru = { inherit sources; };
+2 -2
pkgs/servers/dns/pdns-recursor/default.nix
···
stdenv.mkDerivation rec {
pname = "pdns-recursor";
-
version = "4.9.1";
src = fetchurl {
url = "https://downloads.powerdns.com/releases/pdns-recursor-${version}.tar.bz2";
-
sha256 = "sha256-Ch7cE+jyvWYfOeMWOH2UHiLeagO4p6L8Zi/fi5Quor4=";
};
nativeBuildInputs = [ pkg-config ];
···
stdenv.mkDerivation rec {
pname = "pdns-recursor";
+
version = "4.9.2";
src = fetchurl {
url = "https://downloads.powerdns.com/releases/pdns-recursor-${version}.tar.bz2";
+
sha256 = "sha256-TLgYBFjs+1KKPZo0uihEts0u1pyhxGHd4koOvWaCkUQ=";
};
nativeBuildInputs = [ pkg-config ];
+46
pkgs/servers/home-assistant/build-custom-component/check_manifest.py
···
···
+
#!/usr/bin/env python3
+
+
import json
+
import importlib_metadata
+
import sys
+
+
from packaging.requirements import Requirement
+
+
+
def check_requirement(req: str):
+
# https://packaging.pypa.io/en/stable/requirements.html
+
requirement = Requirement(req)
+
try:
+
version = importlib_metadata.distribution(requirement.name).version
+
except importlib_metadata.PackageNotFoundError:
+
print(f" - Dependency {requirement.name} is missing", file=sys.stderr)
+
return False
+
+
# https://packaging.pypa.io/en/stable/specifiers.html
+
if not version in requirement.specifier:
+
print(
+
f" - {requirement.name}{requirement.specifier} expected, but got {version}",
+
file=sys.stderr,
+
)
+
return False
+
+
return True
+
+
+
def check_manifest(manifest_file: str):
+
with open(manifest_file) as fd:
+
manifest = json.load(fd)
+
if "requirements" in manifest:
+
ok = True
+
for requirement in manifest["requirements"]:
+
ok &= check_requirement(requirement)
+
if not ok:
+
print("Manifest requirements are not met", file=sys.stderr)
+
sys.exit(1)
+
+
+
if __name__ == "__main__":
+
if len(sys.argv) < 2:
+
raise RuntimeError(f"Usage {sys.argv[0]} <manifest>")
+
manifest_file = sys.argv[1]
+
check_manifest(manifest_file)
+38
pkgs/servers/home-assistant/build-custom-component/default.nix
···
···
+
{ lib
+
, home-assistant
+
, makeSetupHook
+
}:
+
+
{ pname
+
, version
+
, format ? "other"
+
, ...
+
}@args:
+
+
let
+
manifestRequirementsCheckHook = import ./manifest-requirements-check-hook.nix {
+
inherit makeSetupHook;
+
inherit (home-assistant) python;
+
};
+
in
+
home-assistant.python.pkgs.buildPythonPackage (
+
{
+
inherit format;
+
+
installPhase = ''
+
runHook preInstall
+
+
mkdir $out
+
cp -r $src/custom_components/ $out/
+
+
runHook postInstall
+
'';
+
+
nativeCheckInputs = with home-assistant.python.pkgs; [
+
importlib-metadata
+
manifestRequirementsCheckHook
+
packaging
+
] ++ (args.nativeCheckInputs or []);
+
+
} // builtins.removeAttrs args [ "nativeCheckInputs" ]
+
)
+11
pkgs/servers/home-assistant/build-custom-component/manifest-requirements-check-hook.nix
···
···
+
{ python
+
, makeSetupHook
+
}:
+
+
makeSetupHook {
+
name = "manifest-requirements-check-hook";
+
substitutions = {
+
pythonCheckInterpreter = python.interpreter;
+
checkManifest = ./check_manifest.py;
+
};
+
} ./manifest-requirements-check-hook.sh
+25
pkgs/servers/home-assistant/build-custom-component/manifest-requirements-check-hook.sh
···
···
+
# Setup hook to check HA manifest requirements
+
echo "Sourcing manifest-requirements-check-hook"
+
+
function manifestCheckPhase() {
+
echo "Executing manifestCheckPhase"
+
runHook preCheck
+
+
manifests=$(shopt -s nullglob; echo $out/custom_components/*/manifest.json)
+
+
if [ ! -z "$manifests" ]; then
+
echo Checking manifests $manifests
+
@pythonCheckInterpreter@ @checkManifest@ $manifests
+
else
+
echo "No custom component manifests found in $out" >&2
+
exit 1
+
fi
+
+
runHook postCheck
+
echo "Finished executing manifestCheckPhase"
+
}
+
+
if [ -z "${dontCheckManifest-}" ] && [ -z "${installCheckPhase-}" ]; then
+
echo "Using manifestCheckPhase"
+
preDistPhases+=" manifestCheckPhase"
+
fi
+2 -1
pkgs/servers/home-assistant/component-packages.nix
···
# Do not edit!
{
-
version = "2023.11.1";
components = {
"3_day_blinds" = ps: with ps; [
];
"abode" = ps: with ps; [
jaraco-abode
];
"accuweather" = ps: with ps; [
accuweather
···
# Do not edit!
{
+
version = "2023.11.2";
components = {
"3_day_blinds" = ps: with ps; [
];
"abode" = ps: with ps; [
jaraco-abode
+
jaraco-functools
];
"accuweather" = ps: with ps; [
accuweather
+57
pkgs/servers/home-assistant/custom-components/README.md
···
···
+
# Packaging guidelines
+
+
## buildHomeAssistantComponent
+
+
Custom components should be packaged using the
+
`buildHomeAssistantComponent` function, that is provided at top-level.
+
It builds upon `buildPythonPackage` but uses a custom install and check
+
phase.
+
+
Python runtime dependencies can be directly consumed as unqualified
+
function arguments. Pass them into `propagatedBuildInputs`, for them to
+
be available to Home Assistant.
+
+
Out-of-tree components need to use python packages from
+
`home-assistant.python.pkgs` as to not introduce conflicting package
+
versions into the Python environment.
+
+
+
**Example Boilerplate:**
+
+
```nix
+
{ lib
+
, buildHomeAssistantcomponent
+
, fetchFromGitHub
+
}:
+
+
buildHomeAssistantComponent {
+
# pname, version
+
+
src = fetchFromGithub {
+
# owner, repo, rev, hash
+
};
+
+
propagatedBuildInputs = [
+
# python requirements, as specified in manifest.json
+
];
+
+
meta = with lib; {
+
# changelog, description, homepage, license, maintainers
+
}
+
}
+
+
## Package name normalization
+
+
Apply the same normalization rules as defined for python packages in
+
[PEP503](https://peps.python.org/pep-0503/#normalized-names).
+
The name should be lowercased and dots, underlines or multiple
+
dashes should all be replaced by a single dash.
+
+
## Manifest check
+
+
The `buildHomeAssistantComponent` builder uses a hook to check whether
+
the dependencies specified in the `manifest.json` are present and
+
inside the specified version range.
+
+
There shouldn't be a need to disable this hook, but you can set
+
`dontCheckManifest` to `true` in the derivation to achieve that.
+6
pkgs/servers/home-assistant/custom-components/default.nix
···
···
+
{ callPackage
+
}:
+
+
{
+
prometheus-sensor = callPackage ./prometheus-sensor {};
+
}
+26
pkgs/servers/home-assistant/custom-components/prometheus-sensor/default.nix
···
···
+
{ lib
+
, fetchFromGitHub
+
, buildHomeAssistantComponent
+
}:
+
+
buildHomeAssistantComponent rec {
+
pname = "prometheus-sensor";
+
version = "1.0.0";
+
+
src = fetchFromGitHub {
+
owner = "mweinelt";
+
repo = "ha-prometheus-sensor";
+
rev = "refs/tags/${version}";
+
hash = "sha256-10COLFXvmpm8ONLyx5c0yiQdtuP0SC2NKq/ZYHro9II=";
+
};
+
+
dontBuild = true;
+
+
meta = with lib; {
+
changelog = "https://github.com/mweinelt/ha-prometheus-sensor/blob/${version}/CHANGELOG.md";
+
description = "Import prometheus query results into Home Assistant";
+
homepage = "https://github.com/mweinelt/ha-prometheus-sensor";
+
maintainers = with maintainers; [ hexa ];
+
license = licenses.mit;
+
};
+
}
+13
pkgs/servers/home-assistant/custom-lovelace-modules/README.md
···
···
+
# Packaging guidelines
+
+
## Entrypoint
+
+
Every lovelace module has an entrypoint in the form of a `.js` file. By
+
default the nixos module will try to load `${pname}.js` when a module is
+
configured.
+
+
The entrypoint used can be overridden in `passthru` like this:
+
+
```nix
+
passthru.entrypoint = "demo-card-bundle.js";
+
```
+8
pkgs/servers/home-assistant/custom-lovelace-modules/default.nix
···
···
+
{ callPackage
+
}:
+
+
{
+
mini-graph-card = callPackage ./mini-graph-card {};
+
+
mini-media-player = callPackage ./mini-media-player {};
+
}
+38
pkgs/servers/home-assistant/custom-lovelace-modules/mini-graph-card/default.nix
···
···
+
{ lib
+
, buildNpmPackage
+
, fetchFromGitHub
+
}:
+
+
buildNpmPackage rec {
+
pname = "mini-graph-card";
+
version = "0.11.0";
+
+
src = fetchFromGitHub {
+
owner = "kalkih";
+
repo = "mini-graph-card";
+
rev = "refs/tags/v${version}";
+
hash = "sha256-AC4VawRtWTeHbFqDJ6oQchvUu08b4F3ManiPPXpyGPc=";
+
};
+
+
npmDepsHash = "sha256-0ErOTkcCnMqMTsTkVL320SxZaET/izFj9GiNWC2tQtQ=";
+
+
installPhase = ''
+
runHook preInstall
+
+
mkdir $out
+
cp -v dist/mini-graph-card-bundle.js $out/
+
+
runHook postInstall
+
'';
+
+
passthru.entrypoint = "mini-graph-card-bundle.js";
+
+
meta = with lib; {
+
changelog = "https://github.com/kalkih/mini-graph-card/releases/tag/v${version}";
+
description = "Minimalistic graph card for Home Assistant Lovelace UI";
+
homepage = "https://github.com/kalkih/mini-graph-card";
+
maintainers = with maintainers; [ hexa ];
+
license = licenses.mit;
+
};
+
}
+
+37
pkgs/servers/home-assistant/custom-lovelace-modules/mini-media-player/default.nix
···
···
+
{ lib
+
, buildNpmPackage
+
, fetchFromGitHub
+
}:
+
+
buildNpmPackage rec {
+
pname = "mini-media-player";
+
version = "1.16.5";
+
+
src = fetchFromGitHub {
+
owner = "kalkih";
+
repo = "mini-media-player";
+
rev = "v${version}";
+
hash = "sha256-ydkY7Qx2GMh4CpvvBAQubJ7PlxSscDZRJayn82bOczM=";
+
};
+
+
npmDepsHash = "sha256-v9NvZOrQPMOoG3LKACnu79jKgZtcnGiopWad+dFbplw=";
+
+
installPhase = ''
+
runHook preInstall
+
+
mkdir $out
+
cp -v ./dist/mini-media-player-bundle.js $out/
+
+
runHook postInstall
+
'';
+
+
passthru.entrypoint = "mini-media-player-bundle.js";
+
+
meta = with lib; {
+
changelog = "https://github.com/kalkih/mini-media-player/releases/tag/v${version}";
+
description = "Minimalistic media card for Home Assistant Lovelace UI";
+
homepage = "https://github.com/kalkih/mini-media-player";
+
license = licenses.mit;
+
maintainers = with maintainers; [ hexa ];
+
};
+
}
+18 -22
pkgs/servers/home-assistant/default.nix
···
, callPackage
, fetchFromGitHub
, fetchPypi
-
, fetchpatch
, python311
, substituteAll
, ffmpeg-headless
···
};
});
py-synologydsm-api = super.py-synologydsm-api.overridePythonAttrs (oldAttrs: rec {
version = "2.1.4";
src = fetchFromGitHub {
···
doCheck = false;
});
-
# Pinned due to API changes in 0.3.0
-
tailscale = super.tailscale.overridePythonAttrs (oldAttrs: rec {
-
version = "0.2.0";
-
src = fetchFromGitHub {
-
owner = "frenck";
-
repo = "python-tailscale";
-
rev = "refs/tags/v${version}";
-
hash = "sha256-/tS9ZMUWsj42n3MYPZJYJELzX3h02AIHeRZmD2SuwWE=";
-
};
-
});
-
# Pinned due to API changes ~1.0
vultr = super.vultr.overridePythonAttrs (oldAttrs: rec {
version = "0.1.2";
···
extraBuildInputs = extraPackages python.pkgs;
# Don't forget to run parse-requirements.py after updating
-
hassVersion = "2023.11.1";
in python.pkgs.buildPythonApplication rec {
pname = "homeassistant";
···
# Primary source is the pypi sdist, because it contains translations
src = fetchPypi {
inherit pname version;
-
hash = "sha256-4OIvY6blun++7JDY+B0Cjrr4yNgnjTd8G55SWkhS3Cs=";
};
# Secondary source is git for tests
···
owner = "home-assistant";
repo = "core";
rev = "refs/tags/${version}";
-
hash = "sha256-Z/CV1sGdJsdc4OxUZulC0boHaMP7WpajbY8Y6R9Q//I=";
};
nativeBuildInputs = with python.pkgs; [
···
# leave this in, so users don't have to constantly update their downstream patch handling
patches = [
(substituteAll {
src = ./patches/ffmpeg-path.patch;
ffmpeg = "${lib.getBin ffmpeg-headless}/bin/ffmpeg";
-
})
-
(fetchpatch {
-
# freeze time in litterrobot tests
-
# https://github.com/home-assistant/core/pull/103444
-
name = "home-assistant-litterrobot-freeze-test-time.patch";
-
url = "https://github.com/home-assistant/core/commit/806205952ff863e2cf1875be406ea0254be5f13a.patch";
-
hash = "sha256-OVbmJWy275nYWrif9awAGIYlgZqrRPcYBhB0Vil8rmk=";
})
];
···
"--deselect=tests/helpers/test_entity_registry.py::test_get_or_create_updates_data"
# AssertionError: assert 2 == 1
"--deselect=tests/helpers/test_entity_values.py::test_override_single_value"
# tests are located in tests/
"tests"
];
···
, callPackage
, fetchFromGitHub
, fetchPypi
, python311
, substituteAll
, ffmpeg-headless
···
};
});
+
psutil = super.psutil.overridePythonAttrs (oldAttrs: rec {
+
version = "5.9.6";
+
src = fetchPypi {
+
pname = "psutil";
+
inherit version;
+
hash = "sha256-5Lkt3NfdTN0/kAGA6h4QSTLHvOI0+4iXbio7KWRBIlo=";
+
};
+
});
+
py-synologydsm-api = super.py-synologydsm-api.overridePythonAttrs (oldAttrs: rec {
version = "2.1.4";
src = fetchFromGitHub {
···
doCheck = false;
});
# Pinned due to API changes ~1.0
vultr = super.vultr.overridePythonAttrs (oldAttrs: rec {
version = "0.1.2";
···
extraBuildInputs = extraPackages python.pkgs;
# Don't forget to run parse-requirements.py after updating
+
hassVersion = "2023.11.2";
in python.pkgs.buildPythonApplication rec {
pname = "homeassistant";
···
# Primary source is the pypi sdist, because it contains translations
src = fetchPypi {
inherit pname version;
+
hash = "sha256-cnneRq0hIyvgKo0du/52ze0IVs8TgTPNQM3T1kyy03s=";
};
# Secondary source is git for tests
···
owner = "home-assistant";
repo = "core";
rev = "refs/tags/${version}";
+
hash = "sha256-OljfYmlXSJVoWWsd4jcSF4nI/FXHqRA8e4LN5AaPVv8=";
};
nativeBuildInputs = with python.pkgs; [
···
# leave this in, so users don't have to constantly update their downstream patch handling
patches = [
+
# Follow symlinks in /var/lib/hass/www
+
./patches/static-symlinks.patch
+
+
# Patch path to ffmpeg binary
(substituteAll {
src = ./patches/ffmpeg-path.patch;
ffmpeg = "${lib.getBin ffmpeg-headless}/bin/ffmpeg";
})
];
···
"--deselect=tests/helpers/test_entity_registry.py::test_get_or_create_updates_data"
# AssertionError: assert 2 == 1
"--deselect=tests/helpers/test_entity_values.py::test_override_single_value"
+
# AssertionError: assert 'WARNING' not in '2023-11-10 ...nt abc[L]>\n'"
+
"--deselect=tests/helpers/test_script.py::test_multiple_runs_repeat_choose"
# tests are located in tests/
"tests"
];
+2 -2
pkgs/servers/home-assistant/frontend.nix
···
# the frontend version corresponding to a specific home-assistant version can be found here
# https://github.com/home-assistant/home-assistant/blob/master/homeassistant/components/frontend/manifest.json
pname = "home-assistant-frontend";
-
version = "20231030.1";
format = "wheel";
src = fetchPypi {
···
pname = "home_assistant_frontend";
dist = "py3";
python = "py3";
-
hash = "sha256-S363j7HnOxLqCBaml1Kb9xfY0AaqBIgj09NutByn6Xo=";
};
# there is nothing to strip in this package
···
# the frontend version corresponding to a specific home-assistant version can be found here
# https://github.com/home-assistant/home-assistant/blob/master/homeassistant/components/frontend/manifest.json
pname = "home-assistant-frontend";
+
version = "20231030.2";
format = "wheel";
src = fetchPypi {
···
pname = "home_assistant_frontend";
dist = "py3";
python = "py3";
+
hash = "sha256-qzodzqWpAXZjwBJkiCyBi5zzfpEqqtauJn2PKZ5UtJ0=";
};
# there is nothing to strip in this package
+15 -1
pkgs/servers/home-assistant/parse-requirements.py
···
],
}
def run_sync(cmd: List[str]) -> None:
···
Version.parse(our_version)
except InvalidVersion:
print(f"Attribute {attr_name} has invalid version specifier {our_version}", file=sys.stderr)
-
attr_outdated = True
else:
attr_outdated = Version.parse(our_version) < Version.parse(required_version)
finally:
···
],
}
+
# Sometimes we have unstable versions for libraries that are not
+
# well-maintained. This allows us to mark our weird version as newer
+
# than a certain wanted version
+
OUR_VERSION_IS_NEWER_THAN = {
+
"blinkstick": "1.2.0",
+
"gps3": "0.33.3",
+
"pybluez": "0.22",
+
}
+
def run_sync(cmd: List[str]) -> None:
···
Version.parse(our_version)
except InvalidVersion:
print(f"Attribute {attr_name} has invalid version specifier {our_version}", file=sys.stderr)
+
+
# allow specifying that our unstable version is newer than some version
+
if newer_than_version := OUR_VERSION_IS_NEWER_THAN.get(attr_name):
+
attr_outdated = Version.parse(newer_than_version) < Version.parse(required_version)
+
else:
+
attr_outdated = True
else:
attr_outdated = Version.parse(our_version) < Version.parse(required_version)
finally:
+37
pkgs/servers/home-assistant/patches/static-symlinks.patch
···
···
+
diff --git a/homeassistant/components/frontend/__init__.py b/homeassistant/components/frontend/__init__.py
+
index 2ec991750f..9a937006ce 100644
+
--- a/homeassistant/components/frontend/__init__.py
+
+++ b/homeassistant/components/frontend/__init__.py
+
@@ -383,7 +383,7 @@ async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool:
+
+
local = hass.config.path("www")
+
if os.path.isdir(local):
+
- hass.http.register_static_path("/local", local, not is_dev)
+
+ hass.http.register_static_path("/local", local, not is_dev, follow_symlinks=True)
+
+
# Can be removed in 2023
+
hass.http.register_redirect("/config/server_control", "/developer-tools/yaml")
+
diff --git a/homeassistant/components/http/__init__.py b/homeassistant/components/http/__init__.py
+
index 122b7b79ce..3cf2b7e0db 100644
+
--- a/homeassistant/components/http/__init__.py
+
+++ b/homeassistant/components/http/__init__.py
+
@@ -411,16 +411,16 @@ class HomeAssistantHTTP:
+
)
+
+
def register_static_path(
+
- self, url_path: str, path: str, cache_headers: bool = True
+
+ self, url_path: str, path: str, cache_headers: bool = True, follow_symlinks: bool = False
+
) -> None:
+
"""Register a folder or file to serve as a static path."""
+
if os.path.isdir(path):
+
if cache_headers:
+
resource: CachingStaticResource | web.StaticResource = (
+
- CachingStaticResource(url_path, path)
+
+ CachingStaticResource(url_path, path, follow_symlinks=follow_symlinks)
+
)
+
else:
+
- resource = web.StaticResource(url_path, path)
+
+ resource = web.StaticResource(url_path, path, follow_symlinks=follow_symlinks)
+
self.app.router.register_resource(resource)
+
self.app["allow_configured_cors"](resource)
+
return
+2 -2
pkgs/servers/home-assistant/stubs.nix
···
buildPythonPackage rec {
pname = "homeassistant-stubs";
-
version = "2023.11.1";
format = "pyproject";
disabled = python.version != home-assistant.python.version;
···
owner = "KapJI";
repo = "homeassistant-stubs";
rev = "refs/tags/${version}";
-
hash = "sha256-eLmWOMKLzhZ7M/gdUHhlDZ3T+N4h5aHxMwOI8ZUepps=";
};
nativeBuildInputs = [
···
buildPythonPackage rec {
pname = "homeassistant-stubs";
+
version = "2023.11.2";
format = "pyproject";
disabled = python.version != home-assistant.python.version;
···
owner = "KapJI";
repo = "homeassistant-stubs";
rev = "refs/tags/${version}";
+
hash = "sha256-stVfFXb5QfC+wZUSk53+jt/hb8kO1gCcgeOnHHpNlWE=";
};
nativeBuildInputs = [
+12 -1
pkgs/servers/http/apt-cacher-ng/default.nix
···
-
{ lib, stdenv
, bzip2
, cmake
, doxygen
, fetchurl
, fuse
, libevent
, xz
···
url = "https://ftp.debian.org/debian/pool/main/a/apt-cacher-ng/apt-cacher-ng_${version}.orig.tar.xz";
sha256 = "0pwsj9rf6a6q7cnfbpcrfq2gjcy7sylqzqqr49g2zi39lrrh8533";
};
nativeBuildInputs = [ cmake doxygen pkg-config ];
buildInputs = [ bzip2 fuse libevent xz openssl systemd tcp_wrappers zlib c-ares ];
···
+
{ lib
+
, stdenv
, bzip2
, cmake
, doxygen
, fetchurl
+
, fetchpatch
, fuse
, libevent
, xz
···
url = "https://ftp.debian.org/debian/pool/main/a/apt-cacher-ng/apt-cacher-ng_${version}.orig.tar.xz";
sha256 = "0pwsj9rf6a6q7cnfbpcrfq2gjcy7sylqzqqr49g2zi39lrrh8533";
};
+
+
patches = [
+
# this patch fixes the build for glibc >= 2.38
+
(fetchpatch {
+
name = "strlcpy-glibc238.patch";
+
url = "https://bugs.debian.org/cgi-bin/bugreport.cgi?att=0;bug=1052360;msg=10";
+
hash = "sha256-uhQj+ZcHCV36Tm0pF/+JG59bSaRdTZCrMcKL3YhZTk8=";
+
})
+
];
nativeBuildInputs = [ cmake doxygen pkg-config ];
buildInputs = [ bzip2 fuse libevent xz openssl systemd tcp_wrappers zlib c-ares ];
+15 -15
pkgs/servers/mir/default.nix
···
{ stdenv
, lib
, fetchFromGitHub
, gitUpdater
, testers
, cmake
, pkg-config
, python3
-
, doxygen
-
, libxslt
, boost
, egl-wayland
, freetype
···
stdenv.mkDerivation (finalAttrs: {
pname = "mir";
-
version = "2.14.1";
src = fetchFromGitHub {
owner = "MirServer";
repo = "mir";
rev = "v${finalAttrs.version}";
-
hash = "sha256-IEGeZVNxwzHn5GASCyjNuQsnCzzfQBHdC33MWVMeZws=";
};
postPatch = ''
# Fix scripts that get run in tests
patchShebangs tools/detect_fd_leaks.bash tests/acceptance-tests/wayland-generator/test_wayland_generator.sh.in
···
substituteInPlace src/platform/graphics/CMakeLists.txt \
--replace "/usr/include/drm/drm_fourcc.h" "${lib.getDev libdrm}/include/libdrm/drm_fourcc.h" \
--replace "/usr/include/libdrm/drm_fourcc.h" "${lib.getDev libdrm}/include/libdrm/drm_fourcc.h"
-
-
# Fix date in generated docs not honouring SOURCE_DATE_EPOCH
-
# Install docs to correct dir
-
substituteInPlace cmake/Doxygen.cmake \
-
--replace '"date"' '"date" "--date=@'"$SOURCE_DATE_EPOCH"'"' \
-
--replace "\''${CMAKE_INSTALL_PREFIX}/share/doc/mir-doc" "\''${CMAKE_INSTALL_DOCDIR}"
'';
strictDeps = true;
nativeBuildInputs = [
cmake
-
doxygen
glib # gdbus-codegen
-
libxslt
lttng-ust # lttng-gen-tp
pkg-config
(python3.withPackages (ps: with ps; [
···
wlcs
];
-
buildFlags = [ "all" "doc" ];
-
cmakeFlags = [
"-DMIR_PLATFORM='gbm-kms;x11;eglstream-kms;wayland'"
"-DMIR_ENABLE_TESTS=${if finalAttrs.doCheck then "ON" else "OFF"}"
# BadBufferTest.test_truncated_shm_file *doesn't* throw an error as the test expected, mark as such
···
export XDG_RUNTIME_DIR=/tmp
'';
-
outputs = [ "out" "dev" "doc" ];
passthru = {
tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
···
{ stdenv
, lib
, fetchFromGitHub
+
, fetchpatch
, gitUpdater
, testers
, cmake
, pkg-config
, python3
, boost
, egl-wayland
, freetype
···
stdenv.mkDerivation (finalAttrs: {
pname = "mir";
+
version = "2.15.0";
src = fetchFromGitHub {
owner = "MirServer";
repo = "mir";
rev = "v${finalAttrs.version}";
+
hash = "sha256-c1+gxzLEtNCjR/mx76O5QElQ8+AO4WsfcG7Wy1+nC6E=";
};
+
patches = [
+
# Fix gbm-kms tests
+
# Remove when version > 2.15.0
+
(fetchpatch {
+
name = "0001-mir-Fix-the-signature-of-drmModeCrtcSetGamma.patch";
+
url = "https://github.com/MirServer/mir/commit/98250e9c32c5b9b940da2fb0a32d8139bbc68157.patch";
+
hash = "sha256-tTtOHGNue5rsppOIQSfkOH5sVfFSn/KPGHmubNlRtLI=";
+
})
+
];
+
postPatch = ''
# Fix scripts that get run in tests
patchShebangs tools/detect_fd_leaks.bash tests/acceptance-tests/wayland-generator/test_wayland_generator.sh.in
···
substituteInPlace src/platform/graphics/CMakeLists.txt \
--replace "/usr/include/drm/drm_fourcc.h" "${lib.getDev libdrm}/include/libdrm/drm_fourcc.h" \
--replace "/usr/include/libdrm/drm_fourcc.h" "${lib.getDev libdrm}/include/libdrm/drm_fourcc.h"
'';
strictDeps = true;
nativeBuildInputs = [
cmake
glib # gdbus-codegen
lttng-ust # lttng-gen-tp
pkg-config
(python3.withPackages (ps: with ps; [
···
wlcs
];
cmakeFlags = [
+
"-DBUILD_DOXYGEN=OFF"
"-DMIR_PLATFORM='gbm-kms;x11;eglstream-kms;wayland'"
"-DMIR_ENABLE_TESTS=${if finalAttrs.doCheck then "ON" else "OFF"}"
# BadBufferTest.test_truncated_shm_file *doesn't* throw an error as the test expected, mark as such
···
export XDG_RUNTIME_DIR=/tmp
'';
+
outputs = [ "out" "dev" ];
passthru = {
tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
+48 -13
pkgs/servers/monitoring/nagios/default.nix
···
-
{ lib, stdenv, fetchurl, perl, php, gd, libpng, zlib, unzip, nixosTests }:
stdenv.mkDerivation rec {
pname = "nagios";
-
version = "4.4.6";
-
src = fetchurl {
-
url = "mirror://sourceforge/nagios/nagios-4.x/${pname}-${version}/${pname}-${version}.tar.gz";
-
sha256 = "1x5hb97zbvkm73q53ydp1gwj8nnznm72q9c4rm6ny7phr995l3db";
};
patches = [ ./nagios.patch ];
nativeBuildInputs = [ unzip ];
-
buildInputs = [ php perl gd libpng zlib ];
-
configureFlags = [ "--localstatedir=/var/lib/nagios" ];
buildFlags = [ "all" ];
# Do not create /var directories
···
sed -i 's@/bin/@@g' $out/etc/objects/commands.cfg
'';
-
passthru.tests = {
-
inherit (nixosTests) nagios;
};
meta = {
description = "A host, service and network monitoring program";
-
homepage = "https://www.nagios.org/";
-
license = lib.licenses.gpl2;
-
platforms = lib.platforms.linux;
-
maintainers = with lib.maintainers; [ immae thoughtpolice relrod ];
};
}
···
+
{ lib
+
, stdenv
+
, fetchFromGitHub
+
, perl
+
, php
+
, gd
+
, libpng
+
, openssl
+
, zlib
+
, unzip
+
, nixosTests
+
, nix-update-script
+
}:
stdenv.mkDerivation rec {
pname = "nagios";
+
version = "4.4.14";
+
src = fetchFromGitHub {
+
owner = "NagiosEnterprises";
+
repo = "nagioscore";
+
rev = "refs/tags/nagios-${version}";
+
hash = "sha256-EJKMgU3Nzfefq2VXxBrfDDrQZWZvj7HqKnWR9j75fGI=";
};
patches = [ ./nagios.patch ];
nativeBuildInputs = [ unzip ];
+
+
buildInputs = [
+
php
+
perl
+
gd
+
libpng
+
openssl
+
zlib
+
];
+
+
configureFlags = [
+
"--localstatedir=/var/lib/nagios"
+
"--with-ssl=${openssl.dev}"
+
"--with-ssl-inc=${openssl.dev}/include"
+
"--with-ssl-lib=${lib.getLib openssl}/lib"
+
];
buildFlags = [ "all" ];
# Do not create /var directories
···
sed -i 's@/bin/@@g' $out/etc/objects/commands.cfg
'';
+
passthru = {
+
tests = {
+
inherit (nixosTests) nagios;
+
};
+
updateScript = nix-update-script {
+
extraArgs = [ "--version-regex" "nagios-(.*)" ];
+
};
};
meta = {
description = "A host, service and network monitoring program";
+
homepage = "https://www.nagios.org/";
+
changelog = "https://github.com/NagiosEnterprises/nagioscore/blob/nagios-${version}/Changelog";
+
license = lib.licenses.gpl2;
+
platforms = lib.platforms.linux;
+
mainProgram = "nagios";
+
maintainers = with lib.maintainers; [ immae thoughtpolice relrod anthonyroussel ];
};
}
-56
pkgs/servers/prayer/default.nix
···
-
{ lib, stdenv, fetchurl, fetchpatch, perl, openssl, db, zlib, uwimap, html-tidy, pam}:
-
-
let
-
ssl = lib.optionals uwimap.withSSL
-
"-e 's/CCLIENT_SSL_ENABLE.*= false/CCLIENT_SSL_ENABLE=true/'";
-
in
-
stdenv.mkDerivation rec {
-
pname = "prayer";
-
version = "1.3.5";
-
-
src = fetchurl {
-
url = "ftp://ftp.csx.cam.ac.uk/pub/software/email/prayer/${pname}-${version}.tar.gz";
-
sha256 = "135fjbxjn385b6cjys6qhbwfw61mdcl2akkll4jfpdzfvhbxlyda";
-
};
-
-
patches = [
-
./install.patch
-
-
# fix build errors which result from openssl changes
-
(fetchpatch {
-
url = "https://sources.debian.org/data/main/p/prayer/1.3.5-dfsg1-6/debian/patches/disable_ssl3.patch";
-
sha256 = "1rx4bidc9prh4gffipykp144cyi3zd6qzd990s2aad3knzv5bkdd";
-
})
-
(fetchpatch {
-
url = "https://sources.debian.org/data/main/p/prayer/1.3.5-dfsg1-6/debian/patches/openssl1.1.patch";
-
sha256 = "0zinylvq3bcifdmki867gir49pbjx6qb5h019hawwif2l4jmlxw1";
-
})
-
];
-
-
postPatch = ''
-
sed -i -e s/gmake/make/ -e 's/LDAP_ENABLE.*= true/LDAP_ENABLE=false/' \
-
${ssl} \
-
-e 's/CCLIENT_LIBS=.*/CCLIENT_LIBS=-lc-client/' \
-
-e 's,^PREFIX .*,PREFIX='$out, \
-
-e 's,^CCLIENT_DIR=.*,CCLIENT_DIR=${uwimap}/include/c-client,' \
-
Config
-
sed -i -e s,/usr/bin/perl,${perl}/bin/perl, \
-
templates/src/*.pl
-
sed -i -e '/<stropts.h>/d' lib/os_linux.h
-
'' + /* html-tidy updates */ ''
-
substituteInPlace ./session/html_secure_tidy.c \
-
--replace buffio.h tidybuffio.h
-
'';
-
-
buildInputs = [ openssl db zlib uwimap html-tidy pam ];
-
nativeBuildInputs = [ perl ];
-
-
NIX_LDFLAGS = "-lpam";
-
-
meta = {
-
homepage = "http://www-uxsup.csx.cam.ac.uk/~dpc22/prayer/";
-
description = "Yet another Webmail interface for IMAP servers on Unix systems written in C";
-
license = lib.licenses.gpl2Plus;
-
platforms = lib.platforms.linux;
-
};
-
}
···
-170
pkgs/servers/prayer/install.patch
···
-
diff --git a/accountd/Makefile b/accountd/Makefile
-
index c3e8107..7946776 100644
-
--- a/accountd/Makefile
-
+++ b/accountd/Makefile
-
@@ -75,6 +75,6 @@ clean:
-
-rm -f prayer-accountd test core *.o *~ \#*\#
-
-
install:
-
- $(INSTALL) -m 755 -o ${RO_USER} -g ${RW_GROUP} \
-
+ $(INSTALL) -m 755 \
-
prayer-accountd ${BROOT}${BIN_DIR}
-
-
diff --git a/files/Makefile b/files/Makefile
-
index 743d0ed..7eff064 100644
-
--- a/files/Makefile
-
+++ b/files/Makefile
-
@@ -52,20 +52,20 @@ distclean:
-
-
install-cert:
-
if [ -f certs/prayer.pem ]; then \
-
- $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) \
-
+ $(INSTALL) \
-
-m $(PRIVATE_FILE) certs/prayer.pem ${BROOT}${PREFIX}/certs; \
-
fi
-
-
install-config: etc/prayer.cf
-
- $(INSTALL) -D -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
-
+ $(INSTALL) -D -m $(PUBLIC_FILE) \
-
etc/prayer.cf ${BROOT}${PRAYER_CONFIG_FILE}
-
-
install-aconfig:
-
- $(INSTALL) -D -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
-
+ $(INSTALL) -D -m $(PUBLIC_FILE) \
-
etc/prayer-accountd.cf ${BROOT}${ACCOUNTD_CONFIG_FILE}
-
-
install-motd:
-
- $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_FILE) \
-
+ $(INSTALL) -m $(PUBLIC_FILE) \
-
etc/motd.html ${BROOT}${PREFIX}/etc
-
-
install:
-
@@ -83,6 +83,6 @@ install:
-
if [ ! -f $(BROOT)$(PREFIX)/etc/motd.html ]; then $(MAKE) install-motd; fi
-
-
redhat-install-init.d:
-
- install -D -o root -g root -m 755 \
-
+ install -D -m 755 \
-
./init.d/prayer $(BROOT)/etc/rc.d/init.d/prayer
-
#chkconfig prayer --level 2345 on
-
diff --git a/files/install.sh b/files/install.sh
-
index 8d1d1f4..0804a08 100755
-
--- a/files/install.sh
-
+++ b/files/install.sh
-
@@ -2,8 +2,6 @@
-
#
-
# $Cambridge: hermes/src/prayer/files/install.sh,v 1.7 2008/09/16 09:59:56 dpc22 Exp $
-
-
-PATH=/bin:/sbin/:/usr/bin:/usr/sbin
-
-
-
error=0
-
-
if [ "x$PREFIX" = "x" ]; then
-
@@ -55,24 +53,20 @@ if [ $error != 0 ]; then
-
exit 1
-
fi
-
-
-if [ ! -d ${VAR_PREFIX} -a `whoami` = "root" ]; then
-
- ${INSTALL} -d -o ${RW_USER} -g ${RW_GROUP} -m ${PRIVATE_DIR} ${VAR_PREFIX}
-
-fi
-
-
-
if [ ! -d ${PREFIX} ]; then
-
- ${INSTALL} -d -o ${RO_USER} -g ${RO_GROUP} -m ${PUBLIC_DIR} ${PREFIX}
-
+ ${INSTALL} -d -m ${PUBLIC_DIR} ${PREFIX}
-
fi
-
-
if [ ! -d ${PREFIX}/etc ]; then
-
- ${INSTALL} -d -o ${RO_USER} -g ${RO_GROUP} -m ${PUBLIC_DIR} ${PREFIX}/etc
-
+ ${INSTALL} -d -m ${PUBLIC_DIR} ${PREFIX}/etc
-
fi
-
-
if [ ! -d ${PREFIX}/certs ]; then
-
- ${INSTALL} -d -o ${RO_USER} -g ${RO_GROUP} -m ${PRIVATE_DIR} ${PREFIX}/certs
-
+ ${INSTALL} -d -m ${PRIVATE_DIR} ${PREFIX}/certs
-
fi
-
-
if [ ! -d ${BIN_DIR} ]; then
-
- ${INSTALL} -d -o ${RO_USER} -g ${RO_GROUP} -m ${PUBLIC_DIR} ${BIN_DIR}
-
+ ${INSTALL} -d -m ${PUBLIC_DIR} ${BIN_DIR}
-
fi
-
-
for i in icons static
-
@@ -83,5 +77,4 @@ do
-
fi
-
echo Copying ${i}
-
(tar cf - ${i}) | (cd ${PREFIX} ; tar xf -)
-
- (cd ${PREFIX}; chown -R ${RO_USER}:${RO_GROUP} ${i})
-
done
-
diff --git a/servers/Makefile b/servers/Makefile
-
index 021aed5..5ccbd08 100644
-
--- a/servers/Makefile
-
+++ b/servers/Makefile
-
@@ -107,13 +107,13 @@ clean:
-
-rm -f $(BIN) core *.o *.flc *~ \#*\#
-
-
install: all
-
- $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_DIR) -d \
-
+ $(INSTALL) -m $(PUBLIC_DIR) -d \
-
$(BROOT)$(BIN_DIR)
-
- $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_EXEC) \
-
+ $(INSTALL) -m $(PUBLIC_EXEC) \
-
prayer $(BROOT)$(BIN_DIR)
-
- $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_EXEC) \
-
+ $(INSTALL) -m $(PUBLIC_EXEC) \
-
prayer-chroot $(BROOT)$(BIN_DIR)
-
- $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_EXEC) \
-
+ $(INSTALL) -m $(PUBLIC_EXEC) \
-
prayer-session $(BROOT)$(BIN_DIR)
-
-
prayer: $(PRAYER_OBJS) prayer_main.o
-
diff --git a/templates/cam/Makefile b/templates/cam/Makefile
-
index 9f4122a..396b628 100644
-
--- a/templates/cam/Makefile
-
+++ b/templates/cam/Makefile
-
@@ -124,7 +124,7 @@ _template_index.c:
-
$(COMPILE) $(TYPE) $@ $*
-
-
install:
-
- $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_DIR) -d \
-
+ $(INSTALL) -m $(PUBLIC_DIR) -d \
-
$(BROOT)$(PREFIX)/templates/$(TYPE)
-
cp *.t $(BROOT)$(PREFIX)/templates/$(TYPE)
-
cp *.vars $(BROOT)$(PREFIX)/templates/$(TYPE)
-
diff --git a/templates/old/Makefile b/templates/old/Makefile
-
index 31016cf..288a64c 100644
-
--- a/templates/old/Makefile
-
+++ b/templates/old/Makefile
-
@@ -123,7 +123,7 @@ _template_index.c:
-
$(COMPILE) $(TYPE) $@ $*
-
-
install:
-
- $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_DIR) -d \
-
+ $(INSTALL) -m $(PUBLIC_DIR) -d \
-
$(BROOT)$(PREFIX)/templates/$(TYPE)
-
cp *.t $(BROOT)$(PREFIX)/templates/$(TYPE)
-
cp *.vars $(BROOT)$(PREFIX)/templates/$(TYPE)
-
diff --git a/utils/Makefile b/utils/Makefile
-
index 9c79916..ef82481 100644
-
--- a/utils/Makefile
-
+++ b/utils/Makefile
-
@@ -72,15 +72,15 @@ clean:
-
-rm -f $(BIN) core *.o *.flc *~ \#*\#
-
-
install: all
-
- $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_DIR) -d \
-
+ $(INSTALL) -m $(PUBLIC_DIR) -d \
-
$(BROOT)$(BIN_DIR)
-
- $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_EXEC) \
-
+ $(INSTALL) -m $(PUBLIC_EXEC) \
-
prayer-ssl-prune $(BROOT)$(BIN_DIR)
-
- $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_EXEC) \
-
+ $(INSTALL) -m $(PUBLIC_EXEC) \
-
prayer-sem-prune $(BROOT)$(BIN_DIR)
-
- $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_EXEC) \
-
+ $(INSTALL) -m $(PUBLIC_EXEC) \
-
prayer-db-prune $(BROOT)$(BIN_DIR)
-
- $(INSTALL) -o $(RO_USER) -g $(RO_GROUP) -m $(PUBLIC_EXEC) \
-
+ $(INSTALL) -m $(PUBLIC_EXEC) \
-
prayer-cyclog $(BROOT)$(BIN_DIR)
-
-
prayer-ssl-prune: $(PRUNE_OBJS)
···
+2 -1
pkgs/servers/xmpp/ejabberd/default.nix
···
{ stdenv, writeScriptBin, makeWrapper, lib, fetchurl, git, cacert, libpng, libjpeg, libwebp
, erlang, openssl, expat, libyaml, bash, gnused, gnugrep, coreutils, util-linux, procps, gd
, flock, autoreconfHook
, nixosTests
, withMysql ? false
, withPgsql ? false
···
}:
let
-
ctlpath = lib.makeBinPath [ bash gnused gnugrep coreutils util-linux procps ];
in stdenv.mkDerivation rec {
pname = "ejabberd";
version = "23.01";
···
{ stdenv, writeScriptBin, makeWrapper, lib, fetchurl, git, cacert, libpng, libjpeg, libwebp
, erlang, openssl, expat, libyaml, bash, gnused, gnugrep, coreutils, util-linux, procps, gd
, flock, autoreconfHook
+
, gawk
, nixosTests
, withMysql ? false
, withPgsql ? false
···
}:
let
+
ctlpath = lib.makeBinPath [ bash gnused gnugrep gawk coreutils util-linux procps ];
in stdenv.mkDerivation rec {
pname = "ejabberd";
version = "23.01";
+407 -314
pkgs/tools/networking/veilid/Cargo.lock
···
[[package]]
name = "ahash"
-
version = "0.7.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47"
dependencies = [
"getrandom",
"once_cell",
···
[[package]]
name = "ahash"
-
version = "0.8.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f"
dependencies = [
"cfg-if 1.0.0",
"getrandom",
"once_cell",
"version_check 0.9.4",
]
[[package]]
···
[[package]]
name = "async-executor"
-
version = "1.5.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "2c1da3ae8dabd9c00f453a329dfe1fb28da3c0a72e2478cdcd93171740c20499"
dependencies = [
-
"async-lock",
"async-task",
"concurrent-queue",
"fastrand 2.0.1",
-
"futures-lite",
"slab",
]
···
dependencies = [
"async-channel",
"async-executor",
-
"async-io",
-
"async-lock",
"blocking",
-
"futures-lite",
"once_cell",
]
···
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af"
dependencies = [
-
"async-lock",
"autocfg",
"cfg-if 1.0.0",
"concurrent-queue",
-
"futures-lite",
"log",
"parking",
-
"polling",
-
"rustix 0.37.25",
"slab",
-
"socket2 0.4.9",
"waker-fn",
]
[[package]]
name = "async-lock"
version = "2.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
···
]
[[package]]
name = "async-process"
version = "1.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ea6438ba0a08d81529c69b36700fa2f95837bfe3e776ab39cde9c14d9149da88"
dependencies = [
-
"async-io",
-
"async-lock",
"async-signal",
"blocking",
"cfg-if 1.0.0",
-
"event-listener 3.0.0",
-
"futures-lite",
-
"rustix 0.38.19",
"windows-sys 0.48.0",
]
[[package]]
name = "async-signal"
-
version = "0.2.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "d2a5415b7abcdc9cd7d63d6badba5288b2ca017e3fbd4173b8f405449f1a2399"
dependencies = [
-
"async-io",
-
"async-lock",
"atomic-waker",
"cfg-if 1.0.0",
"futures-core",
"futures-io",
-
"rustix 0.38.19",
"signal-hook-registry",
"slab",
"windows-sys 0.48.0",
···
"async-attributes",
"async-channel",
"async-global-executor",
-
"async-io",
-
"async-lock",
"async-process",
"crossbeam-utils",
"futures-channel",
"futures-core",
"futures-io",
-
"futures-lite",
"gloo-timers",
"kv-log-macro",
"log",
···
[[package]]
name = "async-std-resolver"
-
version = "0.23.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "63547755965f54b682ed0fcb3fa467905fe071ef8feff2d59f24c7afc59661bc"
dependencies = [
"async-std",
"async-trait",
"futures-io",
"futures-util",
"pin-utils",
-
"socket2 0.5.4",
"trust-dns-resolver",
]
···
dependencies = [
"proc-macro2",
"quote",
-
"syn 2.0.38",
]
[[package]]
name = "async-task"
-
version = "4.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "b9441c6b2fe128a7c2bf680a44c34d0df31ce09e5b7e401fcca3faa483dbc921"
[[package]]
name = "async-tls"
version = "0.12.0"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "cfeefd0ca297cbbb3bd34fd6b228401c2a5177038257afd751bc29f0a2da4795"
dependencies = [
"futures-core",
"futures-io",
"rustls",
"rustls-pemfile",
-
"webpki",
"webpki-roots 0.22.6",
]
···
dependencies = [
"proc-macro2",
"quote",
-
"syn 2.0.38",
]
[[package]]
···
[[package]]
name = "base64"
-
version = "0.21.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "9ba43ea6f343b788c8764558649e08df62f86c6ef251fdaeb1ffd010a9ae50a2"
[[package]]
name = "base64ct"
···
[[package]]
name = "bitflags"
-
version = "2.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635"
[[package]]
name = "blake2"
···
dependencies = [
"proc-macro2",
"quote",
-
"syn 2.0.38",
]
[[package]]
···
checksum = "8c36a4d0d48574b3dd360b4b7d95cc651d2b6557b6402848a27d4b228a473e2a"
dependencies = [
"async-channel",
-
"async-lock",
"async-task",
"fastrand 2.0.1",
"futures-io",
-
"futures-lite",
"piper",
"tracing",
]
···
[[package]]
name = "capnp"
-
version = "0.18.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "9eddbd729bd9742aa22d29e871a42ffea7f216a4ddbfdaf09ea88150ef2e7f76"
dependencies = [
"embedded-io",
]
···
[[package]]
name = "clap"
-
version = "4.4.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "d04704f56c2cde07f43e8e2c154b43f216dc5c92fc98ada720177362f953b956"
dependencies = [
"clap_builder",
"clap_derive",
···
[[package]]
name = "clap_builder"
-
version = "4.4.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "0e231faeaca65ebd1ea3c737966bf858971cd38c3849107aa3ea7de90a804e45"
dependencies = [
"anstream",
"anstyle",
···
[[package]]
name = "clap_derive"
-
version = "4.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "0862016ff20d69b84ef8247369fabf5c008a7417002411897d40ee1f4532b873"
dependencies = [
"heck",
"proc-macro2",
"quote",
-
"syn 2.0.38",
]
[[package]]
name = "clap_lex"
-
version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "cd7cc57abe963c6d3b9d8be5b06ba7c8957a930305ca90304f24ef040aa6f961"
[[package]]
name = "clipboard-win"
···
[[package]]
name = "cpufeatures"
-
version = "0.2.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1"
dependencies = [
"libc",
]
···
]
[[package]]
name = "ctrlc"
version = "3.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
···
version = "0.20.0"
source = "git+https://gitlab.com/veilid/cursive.git#a76fc9050f69edf56bc37efc63194050b9f222e4"
dependencies = [
-
"ahash 0.8.3",
"async-std",
"cfg-if 1.0.0",
"crossbeam-channel",
···
version = "0.3.7"
source = "git+https://gitlab.com/veilid/cursive.git#a76fc9050f69edf56bc37efc63194050b9f222e4"
dependencies = [
-
"ahash 0.8.3",
"ansi-parser",
"async-std",
"crossbeam-channel",
···
[[package]]
name = "curve25519-dalek-derive"
-
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "83fdaf97f4804dcebfa5862639bc9ce4121e82140bec2a987ac5140294865b5b"
dependencies = [
"proc-macro2",
"quote",
-
"syn 2.0.38",
]
[[package]]
···
"ident_case",
"proc-macro2",
"quote",
-
"syn 2.0.38",
]
[[package]]
···
dependencies = [
"darling_core 0.20.3",
"quote",
-
"syn 2.0.38",
]
[[package]]
···
checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856"
dependencies = [
"cfg-if 1.0.0",
-
"hashbrown 0.14.1",
"lock_api",
"once_cell",
-
"parking_lot_core 0.9.8",
]
[[package]]
···
[[package]]
name = "dyn-clone"
-
version = "1.0.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "23d2f3407d9a573d666de4b5bdf10569d73ca9478087346697dcbae6244bfbcd"
[[package]]
name = "ed25519"
-
version = "2.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "60f6d271ca33075c88028be6f04d502853d63a5ece419d269c15315d4fc1cf1d"
dependencies = [
"pkcs8",
"signature",
···
"heck",
"proc-macro2",
"quote",
-
"syn 2.0.38",
]
[[package]]
name = "enum-map"
-
version = "2.6.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "c188012f8542dee7b3996e44dd89461d64aa471b0a7c71a1ae2f595d259e96e5"
dependencies = [
"enum-map-derive",
]
···
dependencies = [
"proc-macro2",
"quote",
-
"syn 2.0.38",
]
[[package]]
···
"darling 0.20.3",
"proc-macro2",
"quote",
-
"syn 2.0.38",
]
[[package]]
···
[[package]]
name = "event-listener"
-
version = "3.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "29e56284f00d94c1bc7fd3c77027b4623c88c1f53d8d2394c6199f2921dea325"
dependencies = [
"concurrent-queue",
"parking",
···
]
[[package]]
name = "eyre"
version = "0.6.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
···
[[package]]
name = "fdeflate"
-
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "d329bdeac514ee06249dabc27877490f17f5d371ec693360768b838e19f3ae10"
dependencies = [
"simd-adler32",
]
···
[[package]]
name = "fiat-crypto"
-
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "d0870c84016d4b481be5c9f323c24f65e31e901ae618f0e80f4308fb00de1d2d"
[[package]]
name = "flate2"
···
"futures-core",
"futures-sink",
"nanorand",
-
"spin 0.9.8",
]
[[package]]
···
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2eeb4ed9e12f43b7fa0baae3f9cdda28352770132ef2e09a23760c29cae8bd47"
dependencies = [
-
"rustix 0.38.19",
"windows-sys 0.48.0",
]
[[package]]
name = "futures"
-
version = "0.3.28"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40"
dependencies = [
"futures-channel",
"futures-core",
···
[[package]]
name = "futures-channel"
-
version = "0.3.28"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2"
dependencies = [
"futures-core",
"futures-sink",
···
[[package]]
name = "futures-core"
-
version = "0.3.28"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c"
[[package]]
name = "futures-executor"
-
version = "0.3.28"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0"
dependencies = [
"futures-core",
"futures-task",
···
[[package]]
name = "futures-io"
-
version = "0.3.28"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964"
[[package]]
name = "futures-lite"
···
]
[[package]]
name = "futures-macro"
-
version = "0.3.28"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72"
dependencies = [
"proc-macro2",
"quote",
-
"syn 2.0.38",
]
[[package]]
name = "futures-sink"
-
version = "0.3.28"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e"
[[package]]
name = "futures-task"
-
version = "0.3.28"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65"
[[package]]
name = "futures-timer"
···
[[package]]
name = "futures-util"
-
version = "0.3.28"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533"
dependencies = [
"futures-channel",
"futures-core",
···
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
dependencies = [
-
"ahash 0.7.6",
]
[[package]]
name = "hashbrown"
-
version = "0.14.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "7dfda62a12f55daeae5015f81b0baea145391cb4520f86c248fc615d72640d12"
dependencies = [
-
"ahash 0.8.3",
"allocator-api2",
]
···
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e8094feaf31ff591f651a2664fb9cfd92bba7a60ce3197265e9482ebe753c8f7"
dependencies = [
-
"hashbrown 0.14.1",
]
[[package]]
···
"httpdate",
"itoa",
"pin-project-lite",
-
"socket2 0.4.9",
"tokio",
"tower-service",
"tracing",
···
[[package]]
name = "iana-time-zone"
-
version = "0.1.57"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "2fad5b825842d2b38bd206f3e81d6957625fd7f0a361e345c30e01a0ae2dd613"
dependencies = [
"android_system_properties",
"core-foundation-sys",
"iana-time-zone-haiku",
"js-sys",
"wasm-bindgen",
-
"windows 0.48.0",
]
[[package]]
···
[[package]]
name = "indexmap"
-
version = "2.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "8adf3ddd720272c6ea8bf59463c04e0f93d0bbf7c5439b691bca2987e0270897"
dependencies = [
"equivalent",
-
"hashbrown 0.14.1",
]
[[package]]
···
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f"
dependencies = [
-
"socket2 0.5.4",
"widestring",
"windows-sys 0.48.0",
"winreg",
···
[[package]]
name = "ipnet"
-
version = "2.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "28b29a3cd74f0f4598934efe3aeba42bae0eb4680554128851ebbecb02af14e6"
[[package]]
name = "itertools"
···
[[package]]
name = "js-sys"
-
version = "0.3.64"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a"
dependencies = [
"wasm-bindgen",
]
···
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d93d243dfa1643389f8b981ddc07b2a7c533f0fae38b3f5831b004b2cc7f6353"
dependencies = [
-
"async-lock",
"flume",
"futures",
"js-sys",
···
[[package]]
name = "libc"
-
version = "0.2.149"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "a08173bc88b7955d1b3145aa561539096c421ac8debde8cbc3612ec635fee29b"
[[package]]
name = "libloading"
···
dependencies = [
"cfg-if 1.0.0",
"winapi",
]
[[package]]
···
[[package]]
name = "lock_api"
-
version = "0.4.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16"
dependencies = [
"autocfg",
"scopeguard",
···
[[package]]
name = "mio"
-
version = "0.8.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2"
dependencies = [
"libc",
"log",
···
checksum = "b1bb540dc6ef51cfe1916ec038ce7a620daf3a111e2502d745197cd53d6bca15"
dependencies = [
"libc",
-
"socket2 0.4.9",
]
[[package]]
···
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6471bf08e7ac0135876a9581bf3217ef0333c191c128d34878079f42ee150411"
dependencies = [
-
"async-io",
"bytes",
"futures",
"libc",
···
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053"
dependencies = [
-
"bitflags 2.4.0",
"cfg-if 1.0.0",
"libc",
]
···
[[package]]
name = "parking"
-
version = "2.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "e52c774a4c39359c1d1c52e43f73dd91a75a614652c825408eec30c95a9b2067"
[[package]]
name = "parking_lot"
···
checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
dependencies = [
"lock_api",
-
"parking_lot_core 0.9.8",
]
[[package]]
···
[[package]]
name = "parking_lot_core"
-
version = "0.9.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447"
dependencies = [
"cfg-if 1.0.0",
"libc",
-
"redox_syscall 0.3.5",
"smallvec",
"windows-targets 0.48.5",
]
···
[[package]]
name = "pest"
-
version = "2.7.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "c022f1e7b65d6a24c0dbbd5fb344c66881bc01f3e5ae74a1c8100f2f985d98a4"
dependencies = [
"memchr",
"thiserror",
···
[[package]]
name = "pest_derive"
-
version = "2.7.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "35513f630d46400a977c4cb58f78e1bfbe01434316e60c37d27b9ad6139c66d8"
dependencies = [
"pest",
"pest_generator",
···
[[package]]
name = "pest_generator"
-
version = "2.7.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "bc9fc1b9e7057baba189b5c626e2d6f40681ae5b6eb064dc7c7834101ec8123a"
dependencies = [
"pest",
"pest_meta",
"proc-macro2",
"quote",
-
"syn 2.0.38",
]
[[package]]
name = "pest_meta"
-
version = "2.7.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "1df74e9e7ec4053ceb980e7c0c8bd3594e977fde1af91daba9c928e8e8c6708d"
dependencies = [
"once_cell",
"pest",
···
dependencies = [
"proc-macro2",
"quote",
-
"syn 2.0.38",
]
[[package]]
···
[[package]]
name = "platforms"
-
version = "3.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "4503fa043bf02cee09a9582e9554b4c6403b2ef55e4612e96561d294419429f8"
[[package]]
name = "png"
···
]
[[package]]
name = "poly1305"
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
···
"itertools 0.11.0",
"proc-macro2",
"quote",
-
"syn 2.0.38",
]
[[package]]
···
[[package]]
name = "redox_syscall"
-
version = "0.3.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
dependencies = [
"bitflags 1.3.2",
]
[[package]]
name = "redox_users"
-
version = "0.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b"
dependencies = [
"getrandom",
-
"redox_syscall 0.2.16",
"thiserror",
]
[[package]]
name = "regex"
-
version = "1.10.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "aaac441002f822bc9705a681810a4dd2963094b9ca0ddc41cb963a4c189189ea"
dependencies = [
"aho-corasick",
"memchr",
-
"regex-automata 0.4.2",
"regex-syntax 0.8.2",
]
···
[[package]]
name = "regex-automata"
-
version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "5011c7e263a695dc8ca064cddb722af1be54e517a280b12a5356f98366899e5d"
dependencies = [
"aho-corasick",
"memchr",
···
[[package]]
name = "ring"
-
version = "0.16.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc"
-
dependencies = [
-
"cc",
-
"libc",
-
"once_cell",
-
"spin 0.5.2",
-
"untrusted 0.7.1",
-
"web-sys",
-
"winapi",
-
]
-
-
[[package]]
-
name = "ring"
-
version = "0.17.3"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "9babe80d5c16becf6594aa32ad2be8fe08498e7ae60b77de8df700e67f191d7e"
dependencies = [
"cc",
"getrandom",
"libc",
-
"spin 0.9.8",
-
"untrusted 0.9.0",
"windows-sys 0.48.0",
]
···
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "549b9d036d571d42e6e85d1c1425e2ac83491075078ca9a15be021c56b1641f2"
dependencies = [
-
"bitflags 2.4.0",
"fallible-iterator",
"fallible-streaming-iterator",
"hashlink",
···
[[package]]
name = "rustix"
-
version = "0.37.25"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "d4eb579851244c2c03e7c24f501c3432bed80b8f720af1d6e5b0e0f01555a035"
dependencies = [
"bitflags 1.3.2",
"errno",
···
[[package]]
name = "rustix"
-
version = "0.38.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "745ecfa778e66b2b63c88a61cb36e0eea109e803b0b86bf9879fbc77c70e86ed"
dependencies = [
-
"bitflags 2.4.0",
"errno",
"libc",
"linux-raw-sys 0.4.10",
···
[[package]]
name = "rustls"
-
version = "0.20.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "1b80e3dec595989ea8510028f30c408a4630db12c9cbb8de34203b89d6577e99"
dependencies = [
"log",
-
"ring 0.16.20",
"sct",
-
"webpki",
]
[[package]]
···
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2d3987094b1d07b653b7dfdc3f70ce9a1da9c51ac18c1b06b662e4f9a0e9f4b2"
dependencies = [
-
"base64 0.21.4",
]
[[package]]
···
[[package]]
name = "sct"
-
version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4"
dependencies = [
-
"ring 0.16.20",
-
"untrusted 0.7.1",
]
[[package]]
···
[[package]]
name = "serde"
-
version = "1.0.189"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "8e422a44e74ad4001bdc8eede9a4570ab52f71190e9c076d14369f38b9200537"
dependencies = [
"serde_derive",
]
···
[[package]]
name = "serde-wasm-bindgen"
-
version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "30c9933e5689bd420dc6c87b7a1835701810cbc10cd86a26e4da45b73e6b1d78"
dependencies = [
"js-sys",
"serde",
···
[[package]]
name = "serde_derive"
-
version = "1.0.189"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "1e48d1f918009ce3145511378cf68d613e3b3d9137d67272562080d68a2b32d5"
dependencies = [
"proc-macro2",
"quote",
-
"syn 2.0.38",
]
[[package]]
···
dependencies = [
"proc-macro2",
"quote",
-
"syn 2.0.38",
]
[[package]]
name = "serde_json"
-
version = "1.0.107"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "6b420ce6e3d8bd882e9b243c6eed35dbc9a6110c9769e74b584e0d68d1f20c65"
dependencies = [
"itoa",
"ryu",
···
[[package]]
name = "serde_repr"
-
version = "0.1.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "8725e1dfadb3a50f7e5ce0b1a540466f6ed3fe7a0fca2ac2b8b831d31316bd00"
dependencies = [
"proc-macro2",
"quote",
-
"syn 2.0.38",
]
[[package]]
name = "serde_spanned"
-
version = "0.6.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "96426c9936fd7a0124915f9185ea1d20aa9445cc9821142f0a73bc9207a2e186"
dependencies = [
"serde",
]
[[package]]
name = "serde_yaml"
-
version = "0.9.25"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "1a49e178e4452f45cb61d0cd8cebc1b0fafd3e41929e996cef79aa3aca91f574"
dependencies = [
-
"indexmap 2.0.2",
"itoa",
"ryu",
"serde",
···
dependencies = [
"proc-macro2",
"quote",
-
"syn 2.0.38",
]
[[package]]
···
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0c4aa94397e2023af5b7cff5b8d4785e935cfb77f0e4aab0cae3b26258ace556"
dependencies = [
-
"async-io",
-
"futures-lite",
"libc",
"signal-hook",
]
···
[[package]]
name = "socket2"
-
version = "0.4.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662"
dependencies = [
"libc",
"winapi",
···
[[package]]
name = "socket2"
-
version = "0.5.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "4031e820eb552adee9295814c0ced9e5cf38ddf1e8b7d566d6de8e2538ea989e"
dependencies = [
"libc",
"windows-sys 0.48.0",
···
[[package]]
name = "spin"
-
version = "0.5.2"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
-
-
[[package]]
-
name = "spin"
version = "0.9.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
···
[[package]]
name = "syn"
-
version = "2.0.38"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "e96b79aaa137db8f61e26363a0c9b47d8b4ec75da28b7d1d614c2303e232408b"
dependencies = [
"proc-macro2",
"quote",
···
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7"
dependencies = [
-
"rustix 0.38.19",
"windows-sys 0.48.0",
]
···
[[package]]
name = "thiserror"
-
version = "1.0.49"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "1177e8c6d7ede7afde3585fd2513e611227efd6481bd78d2e82ba1ce16557ed4"
dependencies = [
"thiserror-impl",
]
[[package]]
name = "thiserror-impl"
-
version = "1.0.49"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "10712f02019e9288794769fba95cd6847df9874d49d871d062172f9dd41bc4cc"
dependencies = [
"proc-macro2",
"quote",
-
"syn 2.0.38",
]
[[package]]
···
"parking_lot 0.12.1",
"pin-project-lite",
"signal-hook-registry",
-
"socket2 0.5.4",
"tokio-macros",
"tracing",
"windows-sys 0.48.0",
···
dependencies = [
"proc-macro2",
"quote",
-
"syn 2.0.38",
]
[[package]]
···
[[package]]
name = "tokio-util"
-
version = "0.7.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "1d68074620f57a0b21594d9735eb2e98ab38b17f80d3fcb189fca266771ca60d"
dependencies = [
"bytes",
"futures-core",
···
[[package]]
name = "toml_datetime"
-
version = "0.6.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b"
dependencies = [
"serde",
]
···
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
dependencies = [
-
"indexmap 2.0.2",
"serde",
"serde_spanned",
"toml_datetime",
···
dependencies = [
"async-trait",
"axum",
-
"base64 0.21.4",
"bytes",
"futures-core",
"futures-util",
···
"async-stream",
"async-trait",
"axum",
-
"base64 0.21.4",
"bytes",
"h2",
"http",
···
[[package]]
name = "tracing"
-
version = "0.1.39"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "ee2ef2af84856a50c1d430afce2fdded0a4ec7eda868db86409b4543df0797f9"
dependencies = [
"log",
"pin-project-lite",
···
dependencies = [
"proc-macro2",
"quote",
-
"syn 2.0.38",
]
[[package]]
···
[[package]]
name = "tracing-log"
-
version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922"
dependencies = [
-
"lazy_static",
"log",
"tracing-core",
]
···
[[package]]
name = "trust-dns-proto"
-
version = "0.23.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "559ac980345f7f5020883dd3bcacf176355225e01916f8c2efecad7534f682c6"
dependencies = [
"async-trait",
"cfg-if 1.0.0",
···
[[package]]
name = "trust-dns-resolver"
-
version = "0.23.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "c723b0e608b24ad04c73b2607e0241b2c98fd79795a95e98b068b6966138a29d"
dependencies = [
"cfg-if 1.0.0",
"futures-util",
···
"proc-macro2",
"quote",
"serde_derive_internals 0.28.0",
-
"syn 2.0.38",
]
[[package]]
···
[[package]]
name = "untrusted"
-
version = "0.7.1"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a"
-
-
[[package]]
-
name = "untrusted"
version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
···
[[package]]
name = "value-bag"
-
version = "1.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "d92ccd67fb88503048c01b59152a04effd0782d035a83a6d256ce6085f08f4a3"
[[package]]
name = "vcpkg"
···
[[package]]
name = "veilid-cli"
-
version = "0.2.4"
dependencies = [
"arboard",
"async-std",
"async-tungstenite",
"cfg-if 1.0.0",
"chrono",
-
"clap 4.4.6",
"config",
"crossbeam-channel",
"cursive",
···
[[package]]
name = "veilid-core"
-
version = "0.2.4"
dependencies = [
"argon2",
-
"async-io",
-
"async-lock",
"async-std",
"async-std-resolver",
"async-tls",
···
"send_wrapper 0.6.0",
"serde",
"serde-big-array",
-
"serde-wasm-bindgen 0.6.0",
"serde_bytes",
"serde_json",
"serial_test",
"shell-words",
"simplelog",
-
"socket2 0.5.4",
"static_assertions",
"stop-token",
"thiserror",
···
"webpki-roots 0.25.2",
"wee_alloc",
"winapi",
-
"windows 0.51.1",
"windows-permissions",
"ws_stream_wasm",
"x25519-dalek",
···
[[package]]
name = "veilid-flutter"
-
version = "0.2.4"
dependencies = [
"allo-isolate",
"async-std",
"backtrace",
"cfg-if 1.0.0",
"data-encoding",
"ffi-support",
"futures-util",
"hostname",
"jni",
"lazy_static",
"opentelemetry",
"opentelemetry-otlp",
"opentelemetry-semantic-conventions",
"paranoid-android",
"parking_lot 0.12.1",
"serde",
···
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6a3dabbda02cfe176635dcaa18a021416ff2eb4d0b47a913e3fdc7f62049d7b1"
dependencies = [
-
"hashbrown 0.14.1",
"serde",
]
···
[[package]]
name = "veilid-server"
-
version = "0.2.4"
dependencies = [
"ansi_term",
"async-std",
"async-tungstenite",
"backtrace",
"cfg-if 1.0.0",
-
"clap 4.4.6",
"color-eyre",
"config",
"console-subscriber",
···
[[package]]
name = "veilid-tools"
-
version = "0.2.4"
dependencies = [
"android_logger 0.13.3",
-
"async-lock",
"async-std",
"async_executors",
"backtrace",
···
[[package]]
name = "veilid-wasm"
-
version = "0.2.4"
dependencies = [
"cfg-if 1.0.0",
"console_error_panic_hook",
···
"parking_lot 0.12.1",
"send_wrapper 0.6.0",
"serde",
-
"serde-wasm-bindgen 0.6.0",
"serde_bytes",
"serde_json",
"tracing",
···
[[package]]
name = "wasm-bindgen"
-
version = "0.2.87"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342"
dependencies = [
"cfg-if 1.0.0",
"serde",
···
[[package]]
name = "wasm-bindgen-backend"
-
version = "0.2.87"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd"
dependencies = [
"bumpalo",
"log",
"once_cell",
"proc-macro2",
"quote",
-
"syn 2.0.38",
"wasm-bindgen-shared",
]
[[package]]
name = "wasm-bindgen-futures"
-
version = "0.4.37"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "c02dbc21516f9f1f04f187958890d7e6026df8d16540b7ad9492bc34a67cea03"
dependencies = [
"cfg-if 1.0.0",
"js-sys",
···
[[package]]
name = "wasm-bindgen-macro"
-
version = "0.2.87"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d"
dependencies = [
"quote",
"wasm-bindgen-macro-support",
···
[[package]]
name = "wasm-bindgen-macro-support"
-
version = "0.2.87"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
dependencies = [
"proc-macro2",
"quote",
-
"syn 2.0.38",
"wasm-bindgen-backend",
"wasm-bindgen-shared",
]
[[package]]
name = "wasm-bindgen-shared"
-
version = "0.2.87"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1"
[[package]]
name = "wasm-bindgen-test"
-
version = "0.3.37"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "6e6e302a7ea94f83a6d09e78e7dc7d9ca7b186bc2829c24a22d0753efd680671"
dependencies = [
"console_error_panic_hook",
"js-sys",
···
[[package]]
name = "wasm-bindgen-test-macro"
-
version = "0.3.37"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "ecb993dd8c836930ed130e020e77d9b2e65dd0fbab1b67c790b0f5d80b11a575"
dependencies = [
"proc-macro2",
"quote",
]
[[package]]
···
[[package]]
name = "web-sys"
-
version = "0.3.64"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b"
dependencies = [
"js-sys",
"wasm-bindgen",
···
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ed63aea5ce73d0ff405984102c42de94fc55a6b75765d621c65262469b3c9b53"
dependencies = [
-
"ring 0.17.3",
-
"untrusted 0.9.0",
]
[[package]]
···
"either",
"home",
"once_cell",
-
"rustix 0.38.19",
]
[[package]]
···
[[package]]
name = "windows"
-
version = "0.48.0"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f"
-
dependencies = [
-
"windows-targets 0.48.5",
-
]
-
-
[[package]]
-
name = "windows"
version = "0.51.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ca229916c5ee38c2f2bc1e9d8f04df975b4bd93f9955dc69fabb5d91270045c9"
···
[[package]]
name = "winnow"
-
version = "0.5.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "a3b801d0e0a6726477cc207f60162da452f3a95adb368399bef20a946e06f65c"
dependencies = [
"memchr",
]
···
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9cbeb2291cd7267a94489b71376eda33496c1b9881adf6b36f26cc2779f3fc49"
dependencies = [
-
"async-io",
"byteorder",
"derivative",
"enumflags2",
···
"nb-connect",
"nix 0.22.3",
"once_cell",
-
"polling",
"scoped-tls",
"serde",
"serde_repr",
···
]
[[package]]
name = "zeroize"
version = "1.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
···
dependencies = [
"proc-macro2",
"quote",
-
"syn 2.0.38",
]
[[package]]
···
[[package]]
name = "ahash"
+
version = "0.7.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "5a824f2aa7e75a0c98c5a504fceb80649e9c35265d44525b5f94de4771a395cd"
dependencies = [
"getrandom",
"once_cell",
···
[[package]]
name = "ahash"
+
version = "0.8.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "91429305e9f0a25f6205c5b8e0d2db09e0708a7a6df0f42212bb56c32c8ac97a"
dependencies = [
"cfg-if 1.0.0",
"getrandom",
"once_cell",
"version_check 0.9.4",
+
"zerocopy",
]
[[package]]
···
[[package]]
name = "async-executor"
+
version = "1.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "4b0c4a4f319e45986f347ee47fef8bf5e81c9abc3f6f58dc2391439f30df65f0"
dependencies = [
+
"async-lock 2.8.0",
"async-task",
"concurrent-queue",
"fastrand 2.0.1",
+
"futures-lite 1.13.0",
"slab",
]
···
dependencies = [
"async-channel",
"async-executor",
+
"async-io 1.13.0",
+
"async-lock 2.8.0",
"blocking",
+
"futures-lite 1.13.0",
"once_cell",
]
···
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af"
dependencies = [
+
"async-lock 2.8.0",
"autocfg",
"cfg-if 1.0.0",
"concurrent-queue",
+
"futures-lite 1.13.0",
"log",
"parking",
+
"polling 2.8.0",
+
"rustix 0.37.27",
"slab",
+
"socket2 0.4.10",
"waker-fn",
]
[[package]]
+
name = "async-io"
+
version = "2.2.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "41ed9d5715c2d329bf1b4da8d60455b99b187f27ba726df2883799af9af60997"
+
dependencies = [
+
"async-lock 3.0.0",
+
"cfg-if 1.0.0",
+
"concurrent-queue",
+
"futures-io",
+
"futures-lite 2.0.1",
+
"parking",
+
"polling 3.3.0",
+
"rustix 0.38.21",
+
"slab",
+
"tracing",
+
"waker-fn",
+
"windows-sys 0.48.0",
+
]
+
+
[[package]]
name = "async-lock"
version = "2.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
···
]
[[package]]
+
name = "async-lock"
+
version = "3.0.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "45e900cdcd39bb94a14487d3f7ef92ca222162e6c7c3fe7cb3550ea75fb486ed"
+
dependencies = [
+
"event-listener 3.0.1",
+
"event-listener-strategy",
+
"pin-project-lite",
+
]
+
+
[[package]]
name = "async-process"
version = "1.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ea6438ba0a08d81529c69b36700fa2f95837bfe3e776ab39cde9c14d9149da88"
dependencies = [
+
"async-io 1.13.0",
+
"async-lock 2.8.0",
"async-signal",
"blocking",
"cfg-if 1.0.0",
+
"event-listener 3.0.1",
+
"futures-lite 1.13.0",
+
"rustix 0.38.21",
"windows-sys 0.48.0",
]
[[package]]
name = "async-signal"
+
version = "0.2.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "9e47d90f65a225c4527103a8d747001fc56e375203592b25ad103e1ca13124c5"
dependencies = [
+
"async-io 2.2.0",
+
"async-lock 2.8.0",
"atomic-waker",
"cfg-if 1.0.0",
"futures-core",
"futures-io",
+
"rustix 0.38.21",
"signal-hook-registry",
"slab",
"windows-sys 0.48.0",
···
"async-attributes",
"async-channel",
"async-global-executor",
+
"async-io 1.13.0",
+
"async-lock 2.8.0",
"async-process",
"crossbeam-utils",
"futures-channel",
"futures-core",
"futures-io",
+
"futures-lite 1.13.0",
"gloo-timers",
"kv-log-macro",
"log",
···
[[package]]
name = "async-std-resolver"
+
version = "0.23.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "0928198152da571a19145031360f34fc7569ef2dc387681565f330c811a5ba9b"
dependencies = [
"async-std",
"async-trait",
"futures-io",
"futures-util",
"pin-utils",
+
"socket2 0.5.5",
"trust-dns-resolver",
]
···
dependencies = [
"proc-macro2",
"quote",
+
"syn 2.0.39",
]
[[package]]
name = "async-task"
+
version = "4.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "b4eb2cdb97421e01129ccb49169d8279ed21e829929144f4a22a6e54ac549ca1"
[[package]]
name = "async-tls"
version = "0.12.0"
+
source = "git+https://github.com/async-rs/async-tls?rev=c58588a#c58588a276e6180f3ef99f4ec3bf9176c5f0f58c"
dependencies = [
"futures-core",
"futures-io",
"rustls",
"rustls-pemfile",
"webpki-roots 0.22.6",
]
···
dependencies = [
"proc-macro2",
"quote",
+
"syn 2.0.39",
]
[[package]]
···
[[package]]
name = "base64"
+
version = "0.21.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9"
[[package]]
name = "base64ct"
···
[[package]]
name = "bitflags"
+
version = "2.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
[[package]]
name = "blake2"
···
dependencies = [
"proc-macro2",
"quote",
+
"syn 2.0.39",
]
[[package]]
···
checksum = "8c36a4d0d48574b3dd360b4b7d95cc651d2b6557b6402848a27d4b228a473e2a"
dependencies = [
"async-channel",
+
"async-lock 2.8.0",
"async-task",
"fastrand 2.0.1",
"futures-io",
+
"futures-lite 1.13.0",
"piper",
"tracing",
]
···
[[package]]
name = "capnp"
+
version = "0.18.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "499cea1db22c19b7a823fa4876330700077b388cc7de2c5477028df00bcb4ae4"
dependencies = [
"embedded-io",
]
···
[[package]]
name = "clap"
+
version = "4.4.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "ac495e00dcec98c83465d5ad66c5c4fabd652fd6686e7c6269b117e729a6f17b"
dependencies = [
"clap_builder",
"clap_derive",
···
[[package]]
name = "clap_builder"
+
version = "4.4.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "c77ed9a32a62e6ca27175d00d29d05ca32e396ea1eb5fb01d8256b669cec7663"
dependencies = [
"anstream",
"anstyle",
···
[[package]]
name = "clap_derive"
+
version = "4.4.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442"
dependencies = [
"heck",
"proc-macro2",
"quote",
+
"syn 2.0.39",
]
[[package]]
name = "clap_lex"
+
version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1"
[[package]]
name = "clipboard-win"
···
[[package]]
name = "cpufeatures"
+
version = "0.2.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0"
dependencies = [
"libc",
]
···
]
[[package]]
+
name = "ctor"
+
version = "0.2.5"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "37e366bff8cd32dd8754b0991fb66b279dc48f598c3a18914852a6673deef583"
+
dependencies = [
+
"quote",
+
"syn 2.0.39",
+
]
+
+
[[package]]
name = "ctrlc"
version = "3.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
···
version = "0.20.0"
source = "git+https://gitlab.com/veilid/cursive.git#a76fc9050f69edf56bc37efc63194050b9f222e4"
dependencies = [
+
"ahash 0.8.6",
"async-std",
"cfg-if 1.0.0",
"crossbeam-channel",
···
version = "0.3.7"
source = "git+https://gitlab.com/veilid/cursive.git#a76fc9050f69edf56bc37efc63194050b9f222e4"
dependencies = [
+
"ahash 0.8.6",
"ansi-parser",
"async-std",
"crossbeam-channel",
···
[[package]]
name = "curve25519-dalek-derive"
+
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3"
dependencies = [
"proc-macro2",
"quote",
+
"syn 2.0.39",
]
[[package]]
···
"ident_case",
"proc-macro2",
"quote",
+
"syn 2.0.39",
]
[[package]]
···
dependencies = [
"darling_core 0.20.3",
"quote",
+
"syn 2.0.39",
]
[[package]]
···
checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856"
dependencies = [
"cfg-if 1.0.0",
+
"hashbrown 0.14.2",
"lock_api",
"once_cell",
+
"parking_lot_core 0.9.9",
]
[[package]]
···
[[package]]
name = "dyn-clone"
+
version = "1.0.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "545b22097d44f8a9581187cdf93de7a71e4722bf51200cfaba810865b49a495d"
[[package]]
name = "ed25519"
+
version = "2.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53"
dependencies = [
"pkcs8",
"signature",
···
"heck",
"proc-macro2",
"quote",
+
"syn 2.0.39",
]
[[package]]
name = "enum-map"
+
version = "2.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "53337c2dbf26a3c31eccc73a37b10c1614e8d4ae99b6a50d553e8936423c1f16"
dependencies = [
"enum-map-derive",
]
···
dependencies = [
"proc-macro2",
"quote",
+
"syn 2.0.39",
]
[[package]]
···
"darling 0.20.3",
"proc-macro2",
"quote",
+
"syn 2.0.39",
]
[[package]]
···
[[package]]
name = "event-listener"
+
version = "3.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "01cec0252c2afff729ee6f00e903d479fba81784c8e2bd77447673471fdfaea1"
dependencies = [
"concurrent-queue",
"parking",
···
]
[[package]]
+
name = "event-listener-strategy"
+
version = "0.3.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "d96b852f1345da36d551b9473fa1e2b1eb5c5195585c6c018118bc92a8d91160"
+
dependencies = [
+
"event-listener 3.0.1",
+
"pin-project-lite",
+
]
+
+
[[package]]
name = "eyre"
version = "0.6.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
···
[[package]]
name = "fdeflate"
+
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "64d6dafc854908ff5da46ff3f8f473c6984119a2876a383a860246dd7841a868"
dependencies = [
"simd-adler32",
]
···
[[package]]
name = "fiat-crypto"
+
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "a481586acf778f1b1455424c343f71124b048ffa5f4fc3f8f6ae9dc432dcb3c7"
[[package]]
name = "flate2"
···
"futures-core",
"futures-sink",
"nanorand",
+
"spin",
]
[[package]]
···
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2eeb4ed9e12f43b7fa0baae3f9cdda28352770132ef2e09a23760c29cae8bd47"
dependencies = [
+
"rustix 0.38.21",
"windows-sys 0.48.0",
]
[[package]]
name = "futures"
+
version = "0.3.29"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "da0290714b38af9b4a7b094b8a37086d1b4e61f2df9122c3cad2577669145335"
dependencies = [
"futures-channel",
"futures-core",
···
[[package]]
name = "futures-channel"
+
version = "0.3.29"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb"
dependencies = [
"futures-core",
"futures-sink",
···
[[package]]
name = "futures-core"
+
version = "0.3.29"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c"
[[package]]
name = "futures-executor"
+
version = "0.3.29"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "0f4fb8693db0cf099eadcca0efe2a5a22e4550f98ed16aba6c48700da29597bc"
dependencies = [
"futures-core",
"futures-task",
···
[[package]]
name = "futures-io"
+
version = "0.3.29"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa"
[[package]]
name = "futures-lite"
···
]
[[package]]
+
name = "futures-lite"
+
version = "2.0.1"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "d3831c2651acb5177cbd83943f3d9c8912c5ad03c76afcc0e9511ba568ec5ebb"
+
dependencies = [
+
"futures-core",
+
"pin-project-lite",
+
]
+
+
[[package]]
name = "futures-macro"
+
version = "0.3.29"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb"
dependencies = [
"proc-macro2",
"quote",
+
"syn 2.0.39",
]
[[package]]
name = "futures-sink"
+
version = "0.3.29"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817"
[[package]]
name = "futures-task"
+
version = "0.3.29"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2"
[[package]]
name = "futures-timer"
···
[[package]]
name = "futures-util"
+
version = "0.3.29"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104"
dependencies = [
"futures-channel",
"futures-core",
···
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
dependencies = [
+
"ahash 0.7.7",
]
[[package]]
name = "hashbrown"
+
version = "0.14.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "f93e7192158dbcda357bdec5fb5788eebf8bbac027f3f33e719d29135ae84156"
dependencies = [
+
"ahash 0.8.6",
"allocator-api2",
]
···
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e8094feaf31ff591f651a2664fb9cfd92bba7a60ce3197265e9482ebe753c8f7"
dependencies = [
+
"hashbrown 0.14.2",
]
[[package]]
···
"httpdate",
"itoa",
"pin-project-lite",
+
"socket2 0.4.10",
"tokio",
"tower-service",
"tracing",
···
[[package]]
name = "iana-time-zone"
+
version = "0.1.58"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "8326b86b6cff230b97d0d312a6c40a60726df3332e721f72a1b035f451663b20"
dependencies = [
"android_system_properties",
"core-foundation-sys",
"iana-time-zone-haiku",
"js-sys",
"wasm-bindgen",
+
"windows-core",
]
[[package]]
···
[[package]]
name = "indexmap"
+
version = "2.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f"
dependencies = [
"equivalent",
+
"hashbrown 0.14.2",
]
[[package]]
···
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f"
dependencies = [
+
"socket2 0.5.5",
"widestring",
"windows-sys 0.48.0",
"winreg",
···
[[package]]
name = "ipnet"
+
version = "2.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3"
[[package]]
name = "itertools"
···
[[package]]
name = "js-sys"
+
version = "0.3.65"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "54c0c35952f67de54bb584e9fd912b3023117cbafc0a77d8f3dee1fb5f572fe8"
dependencies = [
"wasm-bindgen",
]
···
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d93d243dfa1643389f8b981ddc07b2a7c533f0fae38b3f5831b004b2cc7f6353"
dependencies = [
+
"async-lock 2.8.0",
"flume",
"futures",
"js-sys",
···
[[package]]
name = "libc"
+
version = "0.2.150"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c"
+
+
[[package]]
+
name = "libc-print"
+
version = "0.1.22"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "c17f111e2175c779daaf5e89fe3a3b0776b0adec218bc1159c56e4d3f58032f5"
+
dependencies = [
+
"libc",
+
]
[[package]]
name = "libloading"
···
dependencies = [
"cfg-if 1.0.0",
"winapi",
+
]
+
+
[[package]]
+
name = "libredox"
+
version = "0.0.1"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8"
+
dependencies = [
+
"bitflags 2.4.1",
+
"libc",
+
"redox_syscall 0.4.1",
]
[[package]]
···
[[package]]
name = "lock_api"
+
version = "0.4.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45"
dependencies = [
"autocfg",
"scopeguard",
···
[[package]]
name = "mio"
+
version = "0.8.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "3dce281c5e46beae905d4de1870d8b1509a9142b62eedf18b443b011ca8343d0"
dependencies = [
"libc",
"log",
···
checksum = "b1bb540dc6ef51cfe1916ec038ce7a620daf3a111e2502d745197cd53d6bca15"
dependencies = [
"libc",
+
"socket2 0.4.10",
]
[[package]]
···
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6471bf08e7ac0135876a9581bf3217ef0333c191c128d34878079f42ee150411"
dependencies = [
+
"async-io 1.13.0",
"bytes",
"futures",
"libc",
···
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053"
dependencies = [
+
"bitflags 2.4.1",
"cfg-if 1.0.0",
"libc",
]
···
[[package]]
name = "parking"
+
version = "2.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae"
[[package]]
name = "parking_lot"
···
checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
dependencies = [
"lock_api",
+
"parking_lot_core 0.9.9",
]
[[package]]
···
[[package]]
name = "parking_lot_core"
+
version = "0.9.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
dependencies = [
"cfg-if 1.0.0",
"libc",
+
"redox_syscall 0.4.1",
"smallvec",
"windows-targets 0.48.5",
]
···
[[package]]
name = "pest"
+
version = "2.7.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "ae9cee2a55a544be8b89dc6848072af97a20f2422603c10865be2a42b580fff5"
dependencies = [
"memchr",
"thiserror",
···
[[package]]
name = "pest_derive"
+
version = "2.7.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "81d78524685f5ef2a3b3bd1cafbc9fcabb036253d9b1463e726a91cd16e2dfc2"
dependencies = [
"pest",
"pest_generator",
···
[[package]]
name = "pest_generator"
+
version = "2.7.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "68bd1206e71118b5356dae5ddc61c8b11e28b09ef6a31acbd15ea48a28e0c227"
dependencies = [
"pest",
"pest_meta",
"proc-macro2",
"quote",
+
"syn 2.0.39",
]
[[package]]
name = "pest_meta"
+
version = "2.7.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "7c747191d4ad9e4a4ab9c8798f1e82a39affe7ef9648390b7e5548d18e099de6"
dependencies = [
"once_cell",
"pest",
···
dependencies = [
"proc-macro2",
"quote",
+
"syn 2.0.39",
]
[[package]]
···
[[package]]
name = "platforms"
+
version = "3.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "14e6ab3f592e6fb464fc9712d8d6e6912de6473954635fd76a589d832cffcbb0"
[[package]]
name = "png"
···
]
[[package]]
+
name = "polling"
+
version = "3.3.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "e53b6af1f60f36f8c2ac2aad5459d75a5a9b4be1e8cdd40264f315d78193e531"
+
dependencies = [
+
"cfg-if 1.0.0",
+
"concurrent-queue",
+
"pin-project-lite",
+
"rustix 0.38.21",
+
"tracing",
+
"windows-sys 0.48.0",
+
]
+
+
[[package]]
name = "poly1305"
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
···
"itertools 0.11.0",
"proc-macro2",
"quote",
+
"syn 2.0.39",
]
[[package]]
···
[[package]]
name = "redox_syscall"
+
version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
dependencies = [
"bitflags 1.3.2",
]
[[package]]
name = "redox_users"
+
version = "0.4.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4"
dependencies = [
"getrandom",
+
"libredox",
"thiserror",
]
[[package]]
name = "regex"
+
version = "1.10.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343"
dependencies = [
"aho-corasick",
"memchr",
+
"regex-automata 0.4.3",
"regex-syntax 0.8.2",
]
···
[[package]]
name = "regex-automata"
+
version = "0.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f"
dependencies = [
"aho-corasick",
"memchr",
···
[[package]]
name = "ring"
+
version = "0.17.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "fb0205304757e5d899b9c2e448b867ffd03ae7f988002e47cd24954391394d0b"
dependencies = [
"cc",
"getrandom",
"libc",
+
"spin",
+
"untrusted",
"windows-sys 0.48.0",
]
···
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "549b9d036d571d42e6e85d1c1425e2ac83491075078ca9a15be021c56b1641f2"
dependencies = [
+
"bitflags 2.4.1",
"fallible-iterator",
"fallible-streaming-iterator",
"hashlink",
···
[[package]]
name = "rustix"
+
version = "0.37.27"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2"
dependencies = [
"bitflags 1.3.2",
"errno",
···
[[package]]
name = "rustix"
+
version = "0.38.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "2b426b0506e5d50a7d8dafcf2e81471400deb602392c7dd110815afb4eaf02a3"
dependencies = [
+
"bitflags 2.4.1",
"errno",
"libc",
"linux-raw-sys 0.4.10",
···
[[package]]
name = "rustls"
+
version = "0.21.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "446e14c5cda4f3f30fe71863c34ec70f5ac79d6087097ad0bb433e1be5edf04c"
dependencies = [
"log",
+
"ring",
+
"rustls-webpki",
"sct",
]
[[package]]
···
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2d3987094b1d07b653b7dfdc3f70ce9a1da9c51ac18c1b06b662e4f9a0e9f4b2"
dependencies = [
+
"base64 0.21.5",
+
]
+
+
[[package]]
+
name = "rustls-webpki"
+
version = "0.101.7"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765"
+
dependencies = [
+
"ring",
+
"untrusted",
]
[[package]]
···
[[package]]
name = "sct"
+
version = "0.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414"
dependencies = [
+
"ring",
+
"untrusted",
]
[[package]]
···
[[package]]
name = "serde"
+
version = "1.0.191"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "a834c4821019838224821468552240d4d95d14e751986442c816572d39a080c9"
dependencies = [
"serde_derive",
]
···
[[package]]
name = "serde-wasm-bindgen"
+
version = "0.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "17ba92964781421b6cef36bf0d7da26d201e96d84e1b10e7ae6ed416e516906d"
dependencies = [
"js-sys",
"serde",
···
[[package]]
name = "serde_derive"
+
version = "1.0.191"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "46fa52d5646bce91b680189fe5b1c049d2ea38dabb4e2e7c8d00ca12cfbfbcfd"
dependencies = [
"proc-macro2",
"quote",
+
"syn 2.0.39",
]
[[package]]
···
dependencies = [
"proc-macro2",
"quote",
+
"syn 2.0.39",
]
[[package]]
name = "serde_json"
+
version = "1.0.108"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b"
dependencies = [
"itoa",
"ryu",
···
[[package]]
name = "serde_repr"
+
version = "0.1.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "3081f5ffbb02284dda55132aa26daecedd7372a42417bbbab6f14ab7d6bb9145"
dependencies = [
"proc-macro2",
"quote",
+
"syn 2.0.39",
]
[[package]]
name = "serde_spanned"
+
version = "0.6.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "12022b835073e5b11e90a14f86838ceb1c8fb0325b72416845c487ac0fa95e80"
dependencies = [
"serde",
]
[[package]]
name = "serde_yaml"
+
version = "0.9.27"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "3cc7a1570e38322cfe4154732e5110f887ea57e22b76f4bfd32b5bdd3368666c"
dependencies = [
+
"indexmap 2.1.0",
"itoa",
"ryu",
"serde",
···
dependencies = [
"proc-macro2",
"quote",
+
"syn 2.0.39",
]
[[package]]
···
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0c4aa94397e2023af5b7cff5b8d4785e935cfb77f0e4aab0cae3b26258ace556"
dependencies = [
+
"async-io 1.13.0",
+
"futures-lite 1.13.0",
"libc",
"signal-hook",
]
···
[[package]]
name = "socket2"
+
version = "0.4.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d"
dependencies = [
"libc",
"winapi",
···
[[package]]
name = "socket2"
+
version = "0.5.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9"
dependencies = [
"libc",
"windows-sys 0.48.0",
···
[[package]]
name = "spin"
version = "0.9.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
···
[[package]]
name = "syn"
+
version = "2.0.39"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a"
dependencies = [
"proc-macro2",
"quote",
···
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7"
dependencies = [
+
"rustix 0.38.21",
"windows-sys 0.48.0",
]
···
[[package]]
name = "thiserror"
+
version = "1.0.50"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2"
dependencies = [
"thiserror-impl",
]
[[package]]
name = "thiserror-impl"
+
version = "1.0.50"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8"
dependencies = [
"proc-macro2",
"quote",
+
"syn 2.0.39",
]
[[package]]
···
"parking_lot 0.12.1",
"pin-project-lite",
"signal-hook-registry",
+
"socket2 0.5.5",
"tokio-macros",
"tracing",
"windows-sys 0.48.0",
···
dependencies = [
"proc-macro2",
"quote",
+
"syn 2.0.39",
]
[[package]]
···
[[package]]
name = "tokio-util"
+
version = "0.7.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15"
dependencies = [
"bytes",
"futures-core",
···
[[package]]
name = "toml_datetime"
+
version = "0.6.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1"
dependencies = [
"serde",
]
···
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
dependencies = [
+
"indexmap 2.1.0",
"serde",
"serde_spanned",
"toml_datetime",
···
dependencies = [
"async-trait",
"axum",
+
"base64 0.21.5",
"bytes",
"futures-core",
"futures-util",
···
"async-stream",
"async-trait",
"axum",
+
"base64 0.21.5",
"bytes",
"h2",
"http",
···
[[package]]
name = "tracing"
+
version = "0.1.40"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
dependencies = [
"log",
"pin-project-lite",
···
dependencies = [
"proc-macro2",
"quote",
+
"syn 2.0.39",
]
[[package]]
···
[[package]]
name = "tracing-log"
+
version = "0.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "f751112709b4e791d8ce53e32c4ed2d353565a795ce84da2285393f41557bdf2"
dependencies = [
"log",
+
"once_cell",
"tracing-core",
]
···
[[package]]
name = "trust-dns-proto"
+
version = "0.23.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "3119112651c157f4488931a01e586aa459736e9d6046d3bd9105ffb69352d374"
dependencies = [
"async-trait",
"cfg-if 1.0.0",
···
[[package]]
name = "trust-dns-resolver"
+
version = "0.23.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "10a3e6c3aff1718b3c73e395d1f35202ba2ffa847c6a62eea0db8fb4cfe30be6"
dependencies = [
"cfg-if 1.0.0",
"futures-util",
···
"proc-macro2",
"quote",
"serde_derive_internals 0.28.0",
+
"syn 2.0.39",
]
[[package]]
···
[[package]]
name = "untrusted"
version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
···
[[package]]
name = "value-bag"
+
version = "1.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "4a72e1902dde2bd6441347de2b70b7f5d59bf157c6c62f0c44572607a1d55bbe"
[[package]]
name = "vcpkg"
···
[[package]]
name = "veilid-cli"
+
version = "0.2.5"
dependencies = [
"arboard",
"async-std",
"async-tungstenite",
"cfg-if 1.0.0",
"chrono",
+
"clap 4.4.7",
"config",
"crossbeam-channel",
"cursive",
···
[[package]]
name = "veilid-core"
+
version = "0.2.5"
dependencies = [
"argon2",
+
"async-io 1.13.0",
+
"async-lock 2.8.0",
"async-std",
"async-std-resolver",
"async-tls",
···
"send_wrapper 0.6.0",
"serde",
"serde-big-array",
+
"serde-wasm-bindgen 0.6.1",
"serde_bytes",
"serde_json",
"serial_test",
"shell-words",
"simplelog",
+
"socket2 0.5.5",
"static_assertions",
"stop-token",
"thiserror",
···
"webpki-roots 0.25.2",
"wee_alloc",
"winapi",
+
"windows",
"windows-permissions",
"ws_stream_wasm",
"x25519-dalek",
···
[[package]]
name = "veilid-flutter"
+
version = "0.2.5"
dependencies = [
"allo-isolate",
+
"android_log-sys 0.3.1",
"async-std",
"backtrace",
"cfg-if 1.0.0",
+
"ctor",
"data-encoding",
"ffi-support",
"futures-util",
"hostname",
"jni",
"lazy_static",
+
"libc-print",
"opentelemetry",
"opentelemetry-otlp",
"opentelemetry-semantic-conventions",
+
"oslog",
"paranoid-android",
"parking_lot 0.12.1",
"serde",
···
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6a3dabbda02cfe176635dcaa18a021416ff2eb4d0b47a913e3fdc7f62049d7b1"
dependencies = [
+
"hashbrown 0.14.2",
"serde",
]
···
[[package]]
name = "veilid-server"
+
version = "0.2.5"
dependencies = [
"ansi_term",
"async-std",
"async-tungstenite",
"backtrace",
"cfg-if 1.0.0",
+
"clap 4.4.7",
"color-eyre",
"config",
"console-subscriber",
···
[[package]]
name = "veilid-tools"
+
version = "0.2.5"
dependencies = [
"android_logger 0.13.3",
+
"async-lock 2.8.0",
"async-std",
"async_executors",
"backtrace",
···
[[package]]
name = "veilid-wasm"
+
version = "0.2.5"
dependencies = [
"cfg-if 1.0.0",
"console_error_panic_hook",
···
"parking_lot 0.12.1",
"send_wrapper 0.6.0",
"serde",
+
"serde-wasm-bindgen 0.6.1",
"serde_bytes",
"serde_json",
"tracing",
···
[[package]]
name = "wasm-bindgen"
+
version = "0.2.88"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "7daec296f25a1bae309c0cd5c29c4b260e510e6d813c286b19eaadf409d40fce"
dependencies = [
"cfg-if 1.0.0",
"serde",
···
[[package]]
name = "wasm-bindgen-backend"
+
version = "0.2.88"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "e397f4664c0e4e428e8313a469aaa58310d302159845980fd23b0f22a847f217"
dependencies = [
"bumpalo",
"log",
"once_cell",
"proc-macro2",
"quote",
+
"syn 2.0.39",
"wasm-bindgen-shared",
]
[[package]]
name = "wasm-bindgen-futures"
+
version = "0.4.38"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "9afec9963e3d0994cac82455b2b3502b81a7f40f9a0d32181f7528d9f4b43e02"
dependencies = [
"cfg-if 1.0.0",
"js-sys",
···
[[package]]
name = "wasm-bindgen-macro"
+
version = "0.2.88"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "5961017b3b08ad5f3fe39f1e79877f8ee7c23c5e5fd5eb80de95abc41f1f16b2"
dependencies = [
"quote",
"wasm-bindgen-macro-support",
···
[[package]]
name = "wasm-bindgen-macro-support"
+
version = "0.2.88"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "c5353b8dab669f5e10f5bd76df26a9360c748f054f862ff5f3f8aae0c7fb3907"
dependencies = [
"proc-macro2",
"quote",
+
"syn 2.0.39",
"wasm-bindgen-backend",
"wasm-bindgen-shared",
]
[[package]]
name = "wasm-bindgen-shared"
+
version = "0.2.88"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "0d046c5d029ba91a1ed14da14dca44b68bf2f124cfbaf741c54151fdb3e0750b"
[[package]]
name = "wasm-bindgen-test"
+
version = "0.3.38"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "c6433b7c56db97397842c46b67e11873eda263170afeb3a2dc74a7cb370fee0d"
dependencies = [
"console_error_panic_hook",
"js-sys",
···
[[package]]
name = "wasm-bindgen-test-macro"
+
version = "0.3.38"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "493fcbab756bb764fa37e6bee8cec2dd709eb4273d06d0c282a5e74275ded735"
dependencies = [
"proc-macro2",
"quote",
+
"syn 2.0.39",
]
[[package]]
···
[[package]]
name = "web-sys"
+
version = "0.3.65"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "5db499c5f66323272151db0e666cd34f78617522fb0c1604d31a27c50c206a85"
dependencies = [
"js-sys",
"wasm-bindgen",
···
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ed63aea5ce73d0ff405984102c42de94fc55a6b75765d621c65262469b3c9b53"
dependencies = [
+
"ring",
+
"untrusted",
]
[[package]]
···
"either",
"home",
"once_cell",
+
"rustix 0.38.21",
]
[[package]]
···
[[package]]
name = "windows"
version = "0.51.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ca229916c5ee38c2f2bc1e9d8f04df975b4bd93f9955dc69fabb5d91270045c9"
···
[[package]]
name = "winnow"
+
version = "0.5.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "829846f3e3db426d4cee4510841b71a8e58aa2a76b1132579487ae430ccd9c7b"
dependencies = [
"memchr",
]
···
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9cbeb2291cd7267a94489b71376eda33496c1b9881adf6b36f26cc2779f3fc49"
dependencies = [
+
"async-io 1.13.0",
"byteorder",
"derivative",
"enumflags2",
···
"nb-connect",
"nix 0.22.3",
"once_cell",
+
"polling 2.8.0",
"scoped-tls",
"serde",
"serde_repr",
···
]
[[package]]
+
name = "zerocopy"
+
version = "0.7.25"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "8cd369a67c0edfef15010f980c3cbe45d7f651deac2cd67ce097cd801de16557"
+
dependencies = [
+
"zerocopy-derive",
+
]
+
+
[[package]]
+
name = "zerocopy-derive"
+
version = "0.7.25"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "c2f140bda219a26ccc0cdb03dba58af72590c53b22642577d88a927bc5c87d6b"
+
dependencies = [
+
"proc-macro2",
+
"quote",
+
"syn 2.0.39",
+
]
+
+
[[package]]
name = "zeroize"
version = "1.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
···
dependencies = [
"proc-macro2",
"quote",
+
"syn 2.0.39",
]
[[package]]
+3 -2
pkgs/tools/networking/veilid/default.nix
···
rustPlatform.buildRustPackage rec {
pname = "veilid";
-
version = "0.2.4";
src = fetchFromGitLab {
owner = "veilid";
repo = pname;
rev = "v${version}";
-
sha256 = "sha256-DQ/rFxUByPlZOHOLBO9OenT2WPiaBKl45ANiH+YkQ08=";
};
cargoLock = {
lockFile = ./Cargo.lock;
outputHashes = {
"cursive-0.20.0" = "sha256-jETyRRnzt7OMkTo4LRfeRr37oPJpn9R2soxkH7tzGy8=";
"cursive-flexi-logger-view-0.5.0" = "sha256-zFpfVFNZNNdNMdpJbaT4O2pMYccGEAGnvYzpRziMwfQ=";
"cursive_buffered_backend-0.6.1" = "sha256-+sTJnp570HupwaJxV2x+oKyLwNmqQ4HqOH2P1s9Hhw8=";
···
rustPlatform.buildRustPackage rec {
pname = "veilid";
+
version = "0.2.5";
src = fetchFromGitLab {
owner = "veilid";
repo = pname;
rev = "v${version}";
+
sha256 = "sha256-jcSoZhAAoiKn3Jsov4Q0vunPRC+JwX8O0vYZDT5uO0I=";
};
cargoLock = {
lockFile = ./Cargo.lock;
outputHashes = {
+
"async-tls-0.12.0" = "sha256-SAirarvQKsYLftr3u29czQFBwVZgl2cSCUqC0/Qgye0=";
"cursive-0.20.0" = "sha256-jETyRRnzt7OMkTo4LRfeRr37oPJpn9R2soxkH7tzGy8=";
"cursive-flexi-logger-view-0.5.0" = "sha256-zFpfVFNZNNdNMdpJbaT4O2pMYccGEAGnvYzpRziMwfQ=";
"cursive_buffered_backend-0.6.1" = "sha256-+sTJnp570HupwaJxV2x+oKyLwNmqQ4HqOH2P1s9Hhw8=";
+14 -26
pkgs/tools/package-management/apx/default.nix
···
{ lib
, buildGoModule
, fetchFromGitHub
-
, makeWrapper
-
, installShellFiles
-
, docker
, distrobox
}:
buildGoModule rec {
pname = "apx";
-
version = "1.8.2";
src = fetchFromGitHub {
owner = "Vanilla-OS";
repo = pname;
-
rev = "refs/tags/${version}";
-
hash = "sha256-nBhSl4r7LlgCA5/HCLpOleihE5n/JCJgf43KdCklQbg=";
};
vendorHash = null;
ldflags = [ "-s" "-w" ];
-
nativeBuildInputs = [
-
makeWrapper
-
installShellFiles
-
];
postInstall = ''
-
mkdir -p $out/etc/apx
-
-
cat > "$out/etc/apx/config.json" <<EOF
-
{
-
"containername": "apx_managed",
-
"image": "docker.io/library/ubuntu",
-
"pkgmanager": "apt",
-
"distroboxpath": "${distrobox}/bin/distrobox"
-
}
-
EOF
-
-
wrapProgram $out/bin/apx --prefix PATH : ${lib.makeBinPath [ docker distrobox ]}
-
-
installManPage man/de/man1/apx.1 man/es/man1/apx.1 man/fr/man1/apx.1 man/it/man1/apx.1 man/man1/apx.1 man/nl/man1/apx.1 man/pl/man1/apx.1 man/pt/man1/apx.1 man/pt_BR/man1/apx.1 man/ro/man1/apx.1 man/ru/man1/apx.1 man/sv/man1/apx.1 man/tr/man1/apx.1
'';
meta = with lib; {
description = "The Vanilla OS package manager";
homepage = "https://github.com/Vanilla-OS/apx";
-
changelog = "https://github.com/Vanilla-OS/apx/releases/tag/${version}";
license = licenses.gpl3Only;
-
maintainers = with maintainers; [ dit7ya ];
};
}
···
{ lib
, buildGoModule
, fetchFromGitHub
, distrobox
}:
buildGoModule rec {
pname = "apx";
+
version = "2.0.0";
src = fetchFromGitHub {
owner = "Vanilla-OS";
repo = pname;
+
rev = "v${version}";
+
hash = "sha256-3CelqEntpfld0n+Ewg7NCkowVjgCf5b6StfSkYbgV5k=";
};
vendorHash = null;
ldflags = [ "-s" "-w" ];
+
postPatch = ''
+
substituteInPlace config/apx.json \
+
--replace "/usr/share/apx/distrobox" "${distrobox}/bin/distrobox" \
+
--replace "/usr/share/apx" "$out/bin/apx"
+
substituteInPlace settings/config.go \
+
--replace "/usr/share/apx/" "$out/share/apx/"
+
'';
postInstall = ''
+
install -D config/apx.json -t $out/share/apx/
+
install -D man/man1/apx.1 -t $out/man/man1/
'';
meta = with lib; {
description = "The Vanilla OS package manager";
homepage = "https://github.com/Vanilla-OS/apx";
+
changelog = "https://github.com/Vanilla-OS/apx/releases/tag/v${version}";
license = licenses.gpl3Only;
+
maintainers = with maintainers; [ dit7ya jgarcia ];
};
}
+4
pkgs/tools/security/nmap/default.nix
···
"--without-zenmap"
];
makeFlags = lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
"AR=${stdenv.cc.bintools.targetPrefix}ar"
"RANLIB=${stdenv.cc.bintools.targetPrefix}ranlib"
···
"--without-zenmap"
];
+
postInstall = ''
+
install -m 444 -D nselib/data/passwords.lst $out/share/wordlists/nmap.lst
+
'';
+
makeFlags = lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
"AR=${stdenv.cc.bintools.targetPrefix}ar"
"RANLIB=${stdenv.cc.bintools.targetPrefix}ranlib"
+1
pkgs/top-level/aliases.nix
···
pinentry_qt = throw "'pinentry_qt' has been renamed to/replaced by 'pinentry-qt'"; # Converted to throw 2023-09-10
pinentry_qt5 = pinentry-qt; # Added 2020-02-11
poetry2nix = throw "poetry2nix is now maintained out-of-tree. Please use https://github.com/nix-community/poetry2nix/"; # Added 2023-10-26
privacyidea = throw "privacyidea has been removed from nixpkgs"; # Added 2023-10-31
probe-rs-cli = throw "probe-rs-cli is now part of the probe-rs package"; # Added 2023-07-03
processing3 = throw "'processing3' has been renamed to/replaced by 'processing'"; # Converted to throw 2023-09-10
···
pinentry_qt = throw "'pinentry_qt' has been renamed to/replaced by 'pinentry-qt'"; # Converted to throw 2023-09-10
pinentry_qt5 = pinentry-qt; # Added 2020-02-11
poetry2nix = throw "poetry2nix is now maintained out-of-tree. Please use https://github.com/nix-community/poetry2nix/"; # Added 2023-10-26
+
prayer = throw "prayer has been removed from nixpkgs"; # Added 2023-11-09
privacyidea = throw "privacyidea has been removed from nixpkgs"; # Added 2023-10-31
probe-rs-cli = throw "probe-rs-cli is now part of the probe-rs package"; # Added 2023-07-03
processing3 = throw "'processing3' has been renamed to/replaced by 'processing'"; # Converted to throw 2023-09-10
+12 -4
pkgs/top-level/all-packages.nix
···
gforth = callPackage ../development/compilers/gforth { };
gleam = callPackage ../development/compilers/gleam {
-
inherit (darwin.apple_sdk.frameworks) Security;
};
gmqcc = callPackage ../development/compilers/gmqcc { };
···
libfabric = callPackage ../development/libraries/libfabric { };
-
libfive = qt6Packages.callPackage ../development/libraries/libfive { };
libfixposix = callPackage ../development/libraries/libfixposix { };
···
home-assistant = callPackage ../servers/home-assistant { };
home-assistant-cli = callPackage ../servers/home-assistant/cli.nix { };
home-assistant-component-tests = recurseIntoAttrs home-assistant.tests.components;
···
powertop = callPackage ../os-specific/linux/powertop { };
pps-tools = callPackage ../os-specific/linux/pps-tools { };
-
-
prayer = callPackage ../servers/prayer { };
procps = if stdenv.isLinux
then callPackage ../os-specific/linux/procps-ng { }
···
gforth = callPackage ../development/compilers/gforth { };
gleam = callPackage ../development/compilers/gleam {
+
inherit (darwin.apple_sdk.frameworks) Security SystemConfiguration;
};
gmqcc = callPackage ../development/compilers/gmqcc { };
···
libfabric = callPackage ../development/libraries/libfabric { };
+
libfive = qt6Packages.callPackage ../development/libraries/libfive {
+
python = python3;
+
};
libfixposix = callPackage ../development/libraries/libfixposix { };
···
home-assistant = callPackage ../servers/home-assistant { };
+
buildHomeAssistantComponent = callPackage ../servers/home-assistant/build-custom-component { };
+
home-assistant-custom-components = lib.recurseIntoAttrs
+
(callPackage ../servers/home-assistant/custom-components {
+
inherit (home-assistant.python.pkgs) callPackage;
+
});
+
home-assistant-custom-lovelace-modules = lib.recurseIntoAttrs
+
(callPackage ../servers/home-assistant/custom-lovelace-modules {});
+
home-assistant-cli = callPackage ../servers/home-assistant/cli.nix { };
home-assistant-component-tests = recurseIntoAttrs home-assistant.tests.components;
···
powertop = callPackage ../os-specific/linux/powertop { };
pps-tools = callPackage ../os-specific/linux/pps-tools { };
procps = if stdenv.isLinux
then callPackage ../os-specific/linux/procps-ng { }
+6
pkgs/top-level/python-packages.nix
···
pythonSupport = true;
});
libgpiod = callPackage ../development/python-modules/libgpiod {
inherit (pkgs) libgpiod;
};
···
teletype = callPackage ../development/python-modules/teletype { };
telfhash = callPackage ../development/python-modules/telfhash { };
temescal = callPackage ../development/python-modules/temescal { };
···
pythonSupport = true;
});
+
libfive = toPythonModule (pkgs.libfive.override {
+
inherit python;
+
});
+
libgpiod = callPackage ../development/python-modules/libgpiod {
inherit (pkgs) libgpiod;
};
···
teletype = callPackage ../development/python-modules/teletype { };
telfhash = callPackage ../development/python-modules/telfhash { };
+
+
telegram-text = callPackage ../development/python-modules/telegram-text { };
temescal = callPackage ../development/python-modules/temescal { };