Merge master into staging-next

Changed files
+410 -47
lib
maintainers
nixos
pkgs
applications
audio
reaper
networking
cluster
terraform
version-management
video
streamlink
virtualization
by-name
co
cosmic-icons
development
compilers
owl-lisp
misc
brev-cli
python-modules
pandas
tools
bbin
fblog
language-servers
jq-lsp
spring-boot-cli
servers
sql
tools
admin
triton
wander
text
ispell
top-level
+53
lib/fileset/default.nix
···
_fileFilter
_printFileset
_intersection
+
_difference
;
inherit (builtins)
···
];
in
_intersection
+
(elemAt filesets 0)
+
(elemAt filesets 1);
+
+
/*
+
The file set containing all files from the first file set that are not in the second file set.
+
See also [Difference (set theory)](https://en.wikipedia.org/wiki/Complement_(set_theory)#Relative_complement).
+
+
The given file sets are evaluated as lazily as possible,
+
with the first argument being evaluated first if needed.
+
+
Type:
+
union :: FileSet -> FileSet -> FileSet
+
+
Example:
+
# Create a file set containing all files from the current directory,
+
# except ones under ./tests
+
difference ./. ./tests
+
+
let
+
# A set of Nix-related files
+
nixFiles = unions [ ./default.nix ./nix ./tests/default.nix ];
+
in
+
# Create a file set containing all files under ./tests, except ones in `nixFiles`,
+
# meaning only without ./tests/default.nix
+
difference ./tests nixFiles
+
*/
+
difference =
+
# The positive file set.
+
# The result can only contain files that are also in this file set.
+
#
+
# This argument can also be a path,
+
# which gets [implicitly coerced to a file set](#sec-fileset-path-coercion).
+
positive:
+
# The negative file set.
+
# The result will never contain files that are also in this file set.
+
#
+
# This argument can also be a path,
+
# which gets [implicitly coerced to a file set](#sec-fileset-path-coercion).
+
negative:
+
let
+
filesets = _coerceMany "lib.fileset.difference" [
+
{
+
context = "first argument (positive set)";
+
value = positive;
+
}
+
{
+
context = "second argument (negative set)";
+
value = negative;
+
}
+
];
+
in
+
_difference
(elemAt filesets 0)
(elemAt filesets 1);
+80
lib/fileset/internal.nix
···
# In all other cases it's the rhs
rhs;
+
# Compute the set difference between two file sets.
+
# The filesets must already be coerced and validated to be in the same filesystem root.
+
# Type: Fileset -> Fileset -> Fileset
+
_difference = positive: negative:
+
let
+
# The common base components prefix, e.g.
+
# (/foo/bar, /foo/bar/baz) -> /foo/bar
+
# (/foo/bar, /foo/baz) -> /foo
+
commonBaseComponentsLength =
+
# TODO: Have a `lib.lists.commonPrefixLength` function such that we don't need the list allocation from commonPrefix here
+
length (
+
commonPrefix
+
positive._internalBaseComponents
+
negative._internalBaseComponents
+
);
+
+
# We need filesetTree's with the same base to be able to compute the difference between them
+
# This here is the filesetTree from the negative file set, but for a base path that matches the positive file set.
+
# Examples:
+
# For `difference /foo /foo/bar`, `negativeTreeWithPositiveBase = { bar = "directory"; }`
+
# because under the base path of `/foo`, only `bar` from the negative file set is included
+
# For `difference /foo/bar /foo`, `negativeTreeWithPositiveBase = "directory"`
+
# because under the base path of `/foo/bar`, everything from the negative file set is included
+
# For `difference /foo /bar`, `negativeTreeWithPositiveBase = null`
+
# because under the base path of `/foo`, nothing from the negative file set is included
+
negativeTreeWithPositiveBase =
+
if commonBaseComponentsLength == length positive._internalBaseComponents then
+
# The common prefix is the same as the positive base path, so the second path is equal or longer.
+
# We need to _shorten_ the negative filesetTree to the same base path as the positive one
+
# E.g. for `difference /foo /foo/bar` the common prefix is /foo, equal to the positive file set's base
+
# So we need to shorten the base of the tree for the negative argument from /foo/bar to just /foo
+
_shortenTreeBase positive._internalBaseComponents negative
+
else if commonBaseComponentsLength == length negative._internalBaseComponents then
+
# The common prefix is the same as the negative base path, so the first path is longer.
+
# We need to lengthen the negative filesetTree to the same base path as the positive one.
+
# E.g. for `difference /foo/bar /foo` the common prefix is /foo, equal to the negative file set's base
+
# So we need to lengthen the base of the tree for the negative argument from /foo to /foo/bar
+
_lengthenTreeBase positive._internalBaseComponents negative
+
else
+
# The common prefix is neither the first nor the second path.
+
# This means there's no overlap between the two file sets,
+
# and nothing from the negative argument should get removed from the positive one
+
# E.g for `difference /foo /bar`, we remove nothing to get the same as `/foo`
+
null;
+
+
resultingTree =
+
_differenceTree
+
positive._internalBase
+
positive._internalTree
+
negativeTreeWithPositiveBase;
+
in
+
# If the first file set is empty, we can never have any files in the result
+
if positive._internalIsEmptyWithoutBase then
+
_emptyWithoutBase
+
# If the second file set is empty, nothing gets removed, so the result is just the first file set
+
else if negative._internalIsEmptyWithoutBase then
+
positive
+
else
+
# We use the positive file set base for the result,
+
# because only files from the positive side may be included,
+
# which is what base path is for
+
_create positive._internalBase resultingTree;
+
+
# Computes the set difference of two filesetTree's
+
# Type: Path -> filesetTree -> filesetTree
+
_differenceTree = path: lhs: rhs:
+
# If the lhs doesn't have any files, or the right hand side includes all files
+
if lhs == null || isString rhs then
+
# The result will always be empty
+
null
+
# If the right hand side has no files
+
else if rhs == null then
+
# The result is always the left hand side, because nothing gets removed
+
lhs
+
else
+
# Otherwise we always have two attribute sets to recurse into
+
mapAttrs (name: lhsValue:
+
_differenceTree (path + "/${name}") lhsValue (rhs.${name} or null)
+
) (_directoryEntries path lhs);
+
_fileFilter = predicate: fileset:
let
recurse = path: tree:
+98
lib/fileset/tests.sh
···
)
checkFileset 'intersection (unions [ ./a/b ./c/d ./c/e ]) (unions [ ./a ./c/d/f ./c/e ])'
+
## Difference
+
+
# Subtracting something from itself results in nothing
+
tree=(
+
[a]=0
+
)
+
checkFileset 'difference ./. ./.'
+
+
# The tree of the second argument should not be evaluated if not needed
+
checkFileset 'difference _emptyWithoutBase (_create ./. (abort "This should not be used!"))'
+
checkFileset 'difference (_create ./. null) (_create ./. (abort "This should not be used!"))'
+
+
# Subtracting nothing gives the same thing back
+
tree=(
+
[a]=1
+
)
+
checkFileset 'difference ./. _emptyWithoutBase'
+
checkFileset 'difference ./. (_create ./. null)'
+
+
# Subtracting doesn't influence the base path
+
mkdir a b
+
touch {a,b}/x
+
expectEqual 'toSource { root = ./a; fileset = difference ./a ./b; }' 'toSource { root = ./a; fileset = ./a; }'
+
rm -rf -- *
+
+
# Also not the other way around
+
mkdir a
+
expectFailure 'toSource { root = ./a; fileset = difference ./. ./a; }' 'lib.fileset.toSource: `fileset` could contain files in '"$work"', which is not under the `root` \('"$work"'/a\). Potential solutions:
+
\s*- Set `root` to '"$work"' or any directory higher up. This changes the layout of the resulting store path.
+
\s*- Set `fileset` to a file set that cannot contain files outside the `root` \('"$work"'/a\). This could change the files included in the result.'
+
rm -rf -- *
+
+
# Difference actually works
+
# We test all combinations of ./., ./a, ./a/x and ./b
+
tree=(
+
[a/x]=0
+
[a/y]=0
+
[b]=0
+
[c]=0
+
)
+
checkFileset 'difference ./. ./.'
+
checkFileset 'difference ./a ./.'
+
checkFileset 'difference ./a/x ./.'
+
checkFileset 'difference ./b ./.'
+
checkFileset 'difference ./a ./a'
+
checkFileset 'difference ./a/x ./a'
+
checkFileset 'difference ./a/x ./a/x'
+
checkFileset 'difference ./b ./b'
+
tree=(
+
[a/x]=0
+
[a/y]=0
+
[b]=1
+
[c]=1
+
)
+
checkFileset 'difference ./. ./a'
+
tree=(
+
[a/x]=1
+
[a/y]=1
+
[b]=0
+
[c]=0
+
)
+
checkFileset 'difference ./a ./b'
+
tree=(
+
[a/x]=1
+
[a/y]=0
+
[b]=0
+
[c]=0
+
)
+
checkFileset 'difference ./a/x ./b'
+
tree=(
+
[a/x]=0
+
[a/y]=1
+
[b]=0
+
[c]=0
+
)
+
checkFileset 'difference ./a ./a/x'
+
tree=(
+
[a/x]=0
+
[a/y]=0
+
[b]=1
+
[c]=0
+
)
+
checkFileset 'difference ./b ./a'
+
checkFileset 'difference ./b ./a/x'
+
tree=(
+
[a/x]=0
+
[a/y]=1
+
[b]=1
+
[c]=1
+
)
+
checkFileset 'difference ./. ./a/x'
+
tree=(
+
[a/x]=1
+
[a/y]=1
+
[b]=0
+
[c]=1
+
)
+
checkFileset 'difference ./. ./b'
## File filter
+8 -2
lib/tests/filesystem.sh
···
expectSuccess "pathType $PWD/regular" '"regular"'
expectSuccess "pathType $PWD/symlink" '"symlink"'
expectSuccess "pathType $PWD/fifo" '"unknown"'
-
# Different errors depending on whether the builtins.readFilePath primop is available or not
-
expectFailure "pathType $PWD/non-existent" "error: (evaluation aborted with the following error message: 'lib.filesystem.pathType: Path $PWD/non-existent does not exist.'|getting status of '$PWD/non-existent': No such file or directory)"
+
+
# Only check error message when a Nixpkgs-specified error is thrown,
+
# which is only the case when `readFileType` is not available
+
# and the fallback implementation needs to be used.
+
if [[ "$(nix-instantiate --eval --expr 'builtins ? readFileType')" == false ]]; then
+
expectFailure "pathType $PWD/non-existent" \
+
"error: evaluation aborted with the following error message: 'lib.filesystem.pathType: Path $PWD/non-existent does not exist.'"
+
fi
expectSuccess "pathIsDirectory /." "true"
expectSuccess "pathIsDirectory $PWD/directory" "true"
+6
maintainers/maintainer-list.nix
···
githubId = 7075751;
name = "Patrick Hilhorst";
+
sysedwinistrator = {
+
email = "edwin.mowen@gmail.com";
+
github = "sysedwinistrator";
+
githubId = 71331875;
+
name = "Edwin Mackenzie-Owen";
+
};
szczyp = {
email = "qb@szczyp.com";
github = "Szczyp";
+1 -1
nixos/tests/predictable-interface-names.nix
···
networking.useDHCP = !withNetworkd;
# Check if predictable interface names are working in stage-1
-
boot.initrd.postDeviceCommands = script;
+
boot.initrd.postDeviceCommands = lib.mkIf (!systemdStage1) script;
boot.initrd.systemd = lib.mkIf systemdStage1 {
enable = true;
+3 -3
pkgs/applications/audio/reaper/default.nix
···
in
stdenv.mkDerivation rec {
pname = "reaper";
-
version = "7.0";
+
version = "7.02";
src = fetchurl {
url = url_for_platform version stdenv.hostPlatform.qemuArch;
hash = {
-
x86_64-linux = "sha256-lHXy1xSwhNht6dt30e35nE1ZpOm8oTMMpoZJI7ELsjg=";
-
aarch64-linux = "sha256-a/e8DQ9NvbLyZHqg7pUxm+kV7i5vKCjeq9EOO0/5TJk=";
+
x86_64-linux = "sha256-86BGWaZ+zkxgC1Tz14lkBniwhs26G4EPpG2LjsSe9io=";
+
aarch64-linux = "sha256-kJfy4ji5YBv5ztilkAIuPswu3O9pwBL0coD6wU1gU5c=";
}.${stdenv.hostPlatform.system};
};
+3 -3
pkgs/applications/networking/cluster/terraform/default.nix
···
mkTerraform = attrs: pluggable (generic attrs);
terraform_1 = mkTerraform {
-
version = "1.6.2";
-
hash = "sha256-24B8YlorL00OqmYYVM1xg5dM9hZ4enDWJ1XIGmeEAiM=";
-
vendorHash = "sha256-fIirGWt4Os2uZHo4ui7wmZEp+DRUHu/0p+cQCbUbzjc=";
+
version = "1.6.3";
+
hash = "sha256-2ai0WAknz4rt33BuBoqnTCsfPNHmet9+PdgYeeJKQkQ=";
+
vendorHash = "sha256-ZtaXUX0PgL1nwXgohcfCyj/fLPAodx8amHEsQnlOQrc=";
patches = [ ./provider-path-0_15.patch ];
passthru = {
inherit plugins;
+3 -3
pkgs/applications/version-management/gh/default.nix
···
buildGoModule rec {
pname = "gh";
-
version = "2.37.0";
+
version = "2.38.0";
src = fetchFromGitHub {
owner = "cli";
repo = "cli";
rev = "v${version}";
-
hash = "sha256-EAvBPUm2U31gzpfyjEPClT1lbBYiITXpdc+T3nUMOeg=";
+
hash = "sha256-t+JpCxJM2PO9nT9nYn/Rsz/s2lQQviggbjuEy0OQV88=";
};
-
vendorHash = "sha256-G3cpR5S+upk3js5anZHXxcRayTEGMqnBpmtp4HO0pjQ=";
+
vendorHash = "sha256-XZhZDYdbjA/1g7/mPxm5u1b+z/TmwoH60/sJZ63LQMg=";
nativeBuildInputs = [ installShellFiles ];
+2 -6
pkgs/applications/video/streamlink/default.nix
···
python3Packages.buildPythonApplication rec {
pname = "streamlink";
-
version = "6.2.1";
+
version = "6.3.1";
format = "pyproject";
src = fetchPypi {
inherit pname version;
-
hash = "sha256-64Jmkva7L0oaik1UcCTQlUricL2us+O5CEc6pVsgnRI=";
+
hash = "sha256-k8Dfrl0Xie5zF/GhVdP/RKGajDyGblAwu49UekX1WEQ=";
};
nativeCheckInputs = with python3Packages; [
···
freezegun
pytest-asyncio
pytest-trio
-
];
-
-
nativeBuildInputs = with python3Packages; [
-
versioningit
];
propagatedBuildInputs = (with python3Packages; [
+2 -2
pkgs/applications/virtualization/crun/default.nix
···
in
stdenv.mkDerivation rec {
pname = "crun";
-
version = "1.11";
+
version = "1.11.1";
src = fetchFromGitHub {
owner = "containers";
repo = pname;
rev = version;
-
hash = "sha256-38IqVt/XZeZQRXjiPNz4qDibBHMBVZwzAcxrobzEWdI=";
+
hash = "sha256-D4Y+n/6R2v3U/BhYQitsHd6ckda1vfAzciFbTM/1J80=";
fetchSubmodules = true;
};
+2 -2
pkgs/applications/virtualization/runc/default.nix
···
buildGoModule rec {
pname = "runc";
-
version = "1.1.9";
+
version = "1.1.10";
src = fetchFromGitHub {
owner = "opencontainers";
repo = "runc";
rev = "v${version}";
-
hash = "sha256-9vNzKoG+0Ze4+dhluNM6QtsUjV8/bpkuvEF8ASBfBRo=";
+
hash = "sha256-YoRwr5imolblix1st/YeVTrAUdQXTqrx1BdNMdYlt/0=";
};
vendorHash = null;
+42
pkgs/by-name/co/cosmic-icons/package.nix
···
+
{ lib
+
, stdenvNoCC
+
, fetchFromGitHub
+
, just
+
, pop-icon-theme
+
, hicolor-icon-theme
+
}:
+
stdenvNoCC.mkDerivation rec {
+
pname = "cosmic-icons";
+
version = "unstable-2023-08-30";
+
+
src = fetchFromGitHub {
+
owner = "pop-os";
+
repo = pname;
+
rev = "14d8e2048087be1ad444f9b3ebb75885509f72c6";
+
sha256 = "sha256-WbdgHmTn403x95x9wEYL0T9ksbN+YLzEB2yE0UrF9T0=";
+
};
+
+
nativeBuildInputs = [ just ];
+
+
justFlags = [
+
"--set"
+
"prefix"
+
(placeholder "out")
+
];
+
+
propagatedBuildInputs = [
+
pop-icon-theme
+
hicolor-icon-theme
+
];
+
+
dontDropIconThemeCache = true;
+
+
meta = with lib; {
+
description = "System76 Cosmic icon theme for Linux";
+
homepage = "https://github.com/pop-os/cosmic-icons";
+
license = with licenses; [
+
cc-by-sa-40
+
];
+
maintainers = with maintainers; [ a-kenji ];
+
};
+
}
+2 -2
pkgs/development/compilers/owl-lisp/default.nix
···
stdenv.mkDerivation rec {
pname = "owl-lisp";
-
version = "0.2.1";
+
version = "0.2.2";
src = fetchFromGitLab {
owner = "owl-lisp";
repo = "owl";
rev = "v${version}";
-
sha256 = "sha256-TQOj3DYmzFT4ClZ/sBAOs5XJWRgGTaVQjH+8JotSb1A=";
+
sha256 = "sha256-GfvOkYLo8fgAvGuUa59hDy+sWJSwyntwqMO8TAK/lUo=";
};
nativeBuildInputs = [ which ];
+2 -2
pkgs/development/misc/brev-cli/default.nix
···
buildGoModule rec {
pname = "brev-cli";
-
version = "0.6.262";
+
version = "0.6.264";
src = fetchFromGitHub {
owner = "brevdev";
repo = pname;
rev = "v${version}";
-
sha256 = "sha256-JzAhoeEwSqeZOVXZCVw/MmpUMh/ufEa8CdOYc1mvReY=";
+
sha256 = "sha256-bE1tQgFg01FsR/rYgKZCDkhor0NZrHN3ACDbXHcpO6Q=";
};
vendorHash = "sha256-IR/tgqh8rS4uN5jSOcopCutbHCKHSU9icUfRhOgu4t8=";
+5 -3
pkgs/development/python-modules/pandas/default.nix
···
"test_binops"
# These tests are unreliable on aarch64-darwin. See https://github.com/pandas-dev/pandas/issues/38921.
"test_rolling"
+
] ++ lib.optional stdenv.is32bit [
+
# https://github.com/pandas-dev/pandas/issues/37398
+
"test_rolling_var_numerical_issues"
];
# Tests have relative paths, and need to reference compiled C extensions
···
];
meta = with lib; {
-
# https://github.com/pandas-dev/pandas/issues/14866
-
# pandas devs are no longer testing i686 so safer to assume it's broken
-
broken = stdenv.isi686;
+
# pandas devs no longer test i686, it's commonly broken
+
# broken = stdenv.isi686;
changelog = "https://pandas.pydata.org/docs/whatsnew/index.html";
description = "Powerful data structures for data analysis, time series, and statistics";
downloadPage = "https://github.com/pandas-dev/pandas";
+7 -2
pkgs/development/tools/bbin/default.nix
···
{ lib
, stdenvNoCC
, fetchFromGitHub
+
, gitUpdater
, makeWrapper
, babashka-unwrapped
}:
stdenvNoCC.mkDerivation rec {
pname = "bbin";
-
version = "0.1.5";
+
version = "0.2.1";
src = fetchFromGitHub {
owner = "babashka";
repo = "bbin";
rev = "v${version}";
-
sha256 = "sha256-5hohAr6a8C9jPwhQi3E66onSa6+P9plS939fQM/fl9Q=";
+
sha256 = "sha256-mF8+Fm1vwLUw5l2PqV+vFFlr6y2JpKBwc+J3PdKQ6Fo=";
};
nativeBuildInputs = [ makeWrapper ];
···
runHook postInstall
'';
+
+
passthru = {
+
updateScript = gitUpdater { rev-prefix = "v"; };
+
};
meta = with lib; {
homepage = "https://github.com/babashka/bbin";
+3 -3
pkgs/development/tools/fblog/default.nix
···
rustPlatform.buildRustPackage rec {
pname = "fblog";
-
version = "4.4.0";
+
version = "4.5.0";
src = fetchFromGitHub {
owner = "brocode";
repo = pname;
rev = "v${version}";
-
hash = "sha256-f4iJ9Fp6Rd1jv2ywRCjvFHjbdCGb116NiQ42fvQUE8A=";
+
hash = "sha256-T0NvcNg2UeUpEf1hjSdoaUkIzCAP29vo6edfeno/oyo=";
};
-
cargoHash = "sha256-dt8OMlqNxd78sDxMPHG6jHEmF4LuFIMSo0BuQDWOM6o=";
+
cargoHash = "sha256-3/j/TjsQjXFe+rTfCncjoownXzaUiUBUkCXbFc5RM2o=";
meta = with lib; {
description = "A small command-line JSON log viewer";
+26
pkgs/development/tools/language-servers/jq-lsp/default.nix
···
+
{ lib
+
, buildGoModule
+
, fetchFromGitHub
+
}:
+
+
buildGoModule {
+
pname = "jq-lsp";
+
version = "unstable-2023-10-27";
+
+
src = fetchFromGitHub {
+
owner = "wader";
+
repo = "jq-lsp";
+
rev = "b4707e7776a4eb3093b1a7533ebd41368240095a";
+
hash = "sha256-AU4xGweeFx+kSsrqkTtSjl+N77cITF/qvAVZGUZY5SE=";
+
};
+
+
vendorHash = "sha256-ppQ81uERHBgOr/bm/CoDSWcK+IqHwvcL6RFi0DgoLuw=";
+
+
meta = with lib; {
+
description = "jq language server";
+
homepage = "https://github.com/wader/jq-lsp";
+
license = licenses.mit;
+
maintainers = with maintainers; [ sysedwinistrator ];
+
mainProgram = "jq-lsp";
+
};
+
}
+21 -6
pkgs/development/tools/spring-boot-cli/default.nix
···
-
{ lib, stdenv, fetchzip, jdk, makeWrapper, installShellFiles, coreutils }:
+
{ lib, stdenv, fetchzip, jdk, makeWrapper, installShellFiles, coreutils, testers, gitUpdater }:
-
stdenv.mkDerivation rec {
+
stdenv.mkDerivation (finalAttrs: {
pname = "spring-boot-cli";
-
version = "2.3.2";
+
version = "3.1.5";
src = fetchzip {
-
url = "https://repo.spring.io/release/org/springframework/boot/${pname}/${version}.RELEASE/${pname}-${version}.RELEASE-bin.zip";
-
sha256 = "1zqfnxz57234227rp303iwis0mjkkjkpcqnj9jgw78gykjnqdmmq";
+
url = "mirror://maven/org/springframework/boot/${finalAttrs.pname}/${finalAttrs.version}/${finalAttrs.pname}-${finalAttrs.version}-bin.zip";
+
hash = "sha256-5Q6bAuEEBkiRHjX8Ie5FFhPfzwKRdlNIQucTqDEIZuQ=";
};
nativeBuildInputs = [ makeWrapper installShellFiles ];
···
runHook postInstall
'';
+
passthru = {
+
tests.version = testers.testVersion {
+
package = finalAttrs.finalPackage;
+
command = "${lib.getExe finalAttrs.finalPackage} --version";
+
version = "v${finalAttrs.version}";
+
};
+
updateScript = gitUpdater {
+
url = "https://github.com/spring-projects/spring-boot";
+
ignoredVersions = ".*-(RC|M).*";
+
rev-prefix = "v";
+
};
+
};
+
meta = with lib; {
description = ''
CLI which makes it easy to create spring-based applications
···
a command line tool that runs “spring scripts”.
'';
homepage = "https://spring.io/projects/spring-boot";
+
changelog = "https://github.com/spring-projects/spring-boot/releases/tag/v${finalAttrs.version}";
sourceProvenance = with sourceTypes; [ binaryBytecode ];
+
mainProgram = "spring";
license = licenses.asl20;
platforms = platforms.all;
maintainers = with maintainers; [ moaxcp ];
};
-
}
+
})
+30
pkgs/servers/sql/postgresql/ext/pg_embedding.nix
···
+
{ lib, stdenv, fetchFromGitHub, postgresql }:
+
+
stdenv.mkDerivation rec {
+
pname = "pg_embedding";
+
version = "0.3.6";
+
+
src = fetchFromGitHub {
+
owner = "neondatabase";
+
repo = pname;
+
rev = version;
+
hash = "sha256-NTBxsQB8mR7e/CWwkCEyDiYhi3Nxl/aKgRBwqc0THcI=";
+
};
+
+
buildInputs = [ postgresql ];
+
+
installPhase = ''
+
install -D -t $out/lib *.so
+
install -D -t $out/share/postgresql/extension *.sql
+
install -D -t $out/share/postgresql/extension *.control
+
'';
+
+
meta = with lib; {
+
description = "PostgreSQL extension implementing the HNSW algorithm for vector similarity search";
+
homepage = "https://github.com/neondatabase/pg_embedding";
+
maintainers = with maintainers; [ ivan ];
+
platforms = postgresql.meta.platforms;
+
license = licenses.asl20;
+
broken = versionOlder postgresql.version "12";
+
};
+
}
+2
pkgs/servers/sql/postgresql/packages.nix
···
pg_ed25519 = super.callPackage ./ext/pg_ed25519.nix { };
+
pg_embedding = super.callPackage ./ext/pg_embedding.nix { };
+
pg_hint_plan = super.callPackage ./ext/pg_hint_plan.nix { };
pg_ivm = super.callPackage ./ext/pg_ivm.nix { };
+3 -3
pkgs/tools/admin/triton/default.nix
···
buildNpmPackage rec {
pname = "triton";
-
version = "7.15.4";
+
version = "7.16.0";
src = fetchFromGitHub {
owner = "TritonDataCenter";
repo = "node-triton";
rev = version;
-
hash = "sha256-RjYJT8Iw9JZzvd2d9zh2CS27qUx12nDi12k+YuTh7tk=";
+
hash = "sha256-JjQAf1pbNraatWvrfys3ydqk3FPOoJ5XWJH/4qgfINk=";
};
-
npmDepsHash = "sha256-2ZTTgJ4LzmlfFoNNNPrrmna5pbREshdw5x9w5N7nasc=";
+
npmDepsHash = "sha256-E5yJwLSNLkK3OfwJrm59C4qfrd2y3nw/45B68MVBqV8=";
dontBuild = true;
+2 -2
pkgs/tools/admin/wander/default.nix
···
buildGoModule rec {
pname = "wander";
-
version = "0.11.1";
+
version = "0.11.2";
src = fetchFromGitHub {
owner = "robinovitch61";
repo = pname;
rev = "v${version}";
-
sha256 = "sha256-EIMHCal4jt8tMEfx2Lol2/7IK8uROaNC1ABB+0d0YTg=";
+
sha256 = "sha256-zAvPtTUrSHeIMy9MgJviyMvMJ0Ny5Nkx6oLwWPSc9bE=";
};
vendorHash = "sha256-SqDGXV8MpvEQFAkcE1NWvWjdzYsvbO5vA6k+hpY0js0=";
+2 -2
pkgs/tools/text/ispell/default.nix
···
stdenv.mkDerivation rec {
pname = "ispell";
-
version = "3.4.05";
+
version = "3.4.06";
src = fetchurl {
url = "https://www.cs.hmc.edu/~geoff/tars/${pname}-${version}.tar.gz";
-
sha256 = "sha256-zwxt7eP9JfraQ3XYasr+WDy5bY/lRt50apLrtt+JVgI=";
+
sha256 = "sha256-F8kWM9TIB1rMUDFjoWRj/FSrHHRTKArTnNPbdceD66Y=";
};
buildInputs = [ bison ncurses ];
+2
pkgs/top-level/all-packages.nix
···
j2cli = with python3Packages; toPythonApplication j2cli;
+
jq-lsp = callPackage ../development/tools/language-servers/jq-lsp { };
+
jquake = callPackage ../applications/misc/jquake { };
jstest-gtk = callPackage ../tools/misc/jstest-gtk { };