Merge master into staging-nixos
This commit is contained in:
@@ -206,6 +206,8 @@ of pulling the upstream container image from Docker Hub. If you want the old beh
|
||||
|
||||
- `rocmPackages_6` has been removed. `rocmPackages` has been updated to ROCm 7.x. Out of tree packages may rely on obsolete hipblas APIs or compile time constant warp size and need to be updated.
|
||||
|
||||
- `services.prometheus.exporters.rspamd` has been removed. It relied on the Rspamd /stat endpoint via the JSON exporter. You can use the Rspamd [/metrics](https://docs.rspamd.com/developers/protocol#controller-http-endpoints) endpoint directly instead.
|
||||
|
||||
- The Bash implementation of the `nixos-rebuild` program is removed. All switchable systems now use the Python rewrite. Any prior usage of `system.rebuild.enableNg` must now be removed. If you have any outstanding issues with the new implementation, please open an issue on GitHub.
|
||||
|
||||
- `services.desktopManager.gnome` no longer installs the Geary e-mail client since it is not part of the GNOME [core applications](https://apps.gnome.org/) list. Geary's position in the default favorite apps section has been replaced by GNOME Text Editor. To keep it installed, add `programs.geary.enable = true;` to your configuration.
|
||||
|
||||
@@ -110,7 +110,6 @@ let
|
||||
"rasdaemon"
|
||||
"redis"
|
||||
"restic"
|
||||
"rspamd"
|
||||
"rtl_433"
|
||||
"sabnzbd"
|
||||
"scaphandre"
|
||||
@@ -398,6 +397,10 @@ in
|
||||
(lib.mkRemovedOptionModule [ "tor" ] ''
|
||||
The Tor exporter has been removed, as it was broken and unmaintained.
|
||||
'')
|
||||
(lib.mkRemovedOptionModule [ "rspamd" ] ''
|
||||
The Rspamd exporter has been removed. You can use the Rspamd /metrics endpoint directly instead:
|
||||
https://docs.rspamd.com/developers/protocol#controller-http-endpoints
|
||||
'')
|
||||
];
|
||||
};
|
||||
description = "Prometheus exporter configuration";
|
||||
|
||||
@@ -1,119 +0,0 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
options,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
cfg = config.services.prometheus.exporters.rspamd;
|
||||
inherit (lib)
|
||||
mkOption
|
||||
types
|
||||
replaceStrings
|
||||
mkRemovedOptionModule
|
||||
recursiveUpdate
|
||||
concatStringsSep
|
||||
literalExpression
|
||||
;
|
||||
|
||||
mkFile = conf: pkgs.writeText "rspamd-exporter-config.yml" (builtins.toJSON conf);
|
||||
|
||||
generateConfig = extraLabels: {
|
||||
modules.default.metrics =
|
||||
(map
|
||||
(path: {
|
||||
name = "rspamd_${replaceStrings [ "[" "." " " "]" "\\" "'" ] [ "_" "_" "_" "" "" "" ] path}";
|
||||
path = "{ .${path} }";
|
||||
labels = extraLabels;
|
||||
})
|
||||
[
|
||||
"actions['add\\ header']"
|
||||
"actions['no\\ action']"
|
||||
"actions['rewrite\\ subject']"
|
||||
"actions['soft\\ reject']"
|
||||
"actions.greylist"
|
||||
"actions.reject"
|
||||
"bytes_allocated"
|
||||
"chunks_allocated"
|
||||
"chunks_freed"
|
||||
"chunks_oversized"
|
||||
"connections"
|
||||
"control_connections"
|
||||
"ham_count"
|
||||
"learned"
|
||||
"pools_allocated"
|
||||
"pools_freed"
|
||||
"read_only"
|
||||
"scanned"
|
||||
"shared_chunks_allocated"
|
||||
"spam_count"
|
||||
"total_learns"
|
||||
]
|
||||
)
|
||||
++ [
|
||||
{
|
||||
name = "rspamd_statfiles";
|
||||
type = "object";
|
||||
path = "{.statfiles[*]}";
|
||||
labels = recursiveUpdate {
|
||||
symbol = "{.symbol}";
|
||||
type = "{.type}";
|
||||
} extraLabels;
|
||||
values = {
|
||||
revision = "{.revision}";
|
||||
size = "{.size}";
|
||||
total = "{.total}";
|
||||
used = "{.used}";
|
||||
languages = "{.languages}";
|
||||
users = "{.users}";
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
in
|
||||
{
|
||||
port = 7980;
|
||||
extraOpts = {
|
||||
extraLabels = mkOption {
|
||||
type = types.attrsOf types.str;
|
||||
default = {
|
||||
host = config.networking.hostName;
|
||||
};
|
||||
defaultText = literalExpression "{ host = config.networking.hostName; }";
|
||||
example = literalExpression ''
|
||||
{
|
||||
host = config.networking.hostName;
|
||||
custom_label = "some_value";
|
||||
}
|
||||
'';
|
||||
description = "Set of labels added to each metric.";
|
||||
};
|
||||
};
|
||||
serviceOpts.serviceConfig.ExecStart = ''
|
||||
${pkgs.prometheus-json-exporter}/bin/json_exporter \
|
||||
--config.file ${mkFile (generateConfig cfg.extraLabels)} \
|
||||
--web.listen-address "${cfg.listenAddress}:${toString cfg.port}" \
|
||||
${concatStringsSep " \\\n " cfg.extraFlags}
|
||||
'';
|
||||
|
||||
imports = [
|
||||
(mkRemovedOptionModule [ "url" ] ''
|
||||
This option was removed. The URL of the rspamd metrics endpoint
|
||||
must now be provided to the exporter by prometheus via the url
|
||||
parameter `target'.
|
||||
|
||||
In prometheus a scrape URL would look like this:
|
||||
|
||||
http://some.rspamd-exporter.host:7980/probe?target=http://some.rspamd.host:11334/stat
|
||||
|
||||
For more information, take a look at the official documentation
|
||||
(https://github.com/prometheus-community/json_exporter) of the json_exporter.
|
||||
'')
|
||||
{
|
||||
options.warnings = options.warnings;
|
||||
options.assertions = options.assertions;
|
||||
}
|
||||
];
|
||||
}
|
||||
@@ -1540,26 +1540,6 @@ let
|
||||
'';
|
||||
};
|
||||
|
||||
rspamd =
|
||||
{ ... }:
|
||||
{
|
||||
exporterConfig = {
|
||||
enable = true;
|
||||
};
|
||||
metricProvider = {
|
||||
services.rspamd.enable = true;
|
||||
};
|
||||
exporterTest = ''
|
||||
wait_for_unit("rspamd.service")
|
||||
wait_for_unit("prometheus-rspamd-exporter.service")
|
||||
wait_for_open_port(11334)
|
||||
wait_for_open_port(7980)
|
||||
wait_until_succeeds(
|
||||
"curl -sSf 'localhost:7980/probe?target=http://localhost:11334/stat' | grep 'rspamd_scanned{host=\"rspamd\"} 0'"
|
||||
)
|
||||
'';
|
||||
};
|
||||
|
||||
rtl_433 =
|
||||
{ ... }:
|
||||
{
|
||||
|
||||
@@ -5,13 +5,13 @@
|
||||
}:
|
||||
mkLibretroCore {
|
||||
core = "gpsp";
|
||||
version = "0-unstable-2026-01-27";
|
||||
version = "0-unstable-2026-03-31";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "libretro";
|
||||
repo = "gpsp";
|
||||
rev = "602512d7c687acb84cd56265cbcf2d7b7c75fb37";
|
||||
hash = "sha256-YloLG2anJJ1hcVltN+d8XsshgZoDBrFRgRoQA7mfhN8=";
|
||||
rev = "6373ff347a07ac17c50a00f20aa63d29c080abcf";
|
||||
hash = "sha256-1aLSJ0oB8WJnIfKHHdwBQ52uVPs1XiFZvgFgrF9zUoA=";
|
||||
};
|
||||
|
||||
makefile = "Makefile";
|
||||
|
||||
@@ -5,13 +5,13 @@
|
||||
}:
|
||||
mkLibretroCore {
|
||||
core = "mame2003-plus";
|
||||
version = "0-unstable-2026-03-10";
|
||||
version = "0-unstable-2026-04-04";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "libretro";
|
||||
repo = "mame2003-plus-libretro";
|
||||
rev = "53453e57676ff31131441f08c0b734c9ad84e4f0";
|
||||
hash = "sha256-IpVv/bpT7AHF8QaGFGgTWei5JKuy7H5/O70W2n88s1c=";
|
||||
rev = "3da943f4bcf264c7af83a07b78617e98ce3822cd";
|
||||
hash = "sha256-3hJj8BLePPdEEsQriHSWhIMhamr7pvpKswP5/RxtjcM=";
|
||||
};
|
||||
|
||||
makefile = "Makefile";
|
||||
|
||||
@@ -5,13 +5,13 @@
|
||||
}:
|
||||
mkLibretroCore {
|
||||
core = "quicknes";
|
||||
version = "0-unstable-2024-10-21";
|
||||
version = "0-unstable-2026-03-31";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "libretro";
|
||||
repo = "QuickNES_Core";
|
||||
rev = "dbf19f73e3eb9701d1c7f5898f57c097e05c9fbd";
|
||||
hash = "sha256-oFQUMp1imc8JCsQYCy1BtIUmTC+u0VcoYHpWzUpKNb4=";
|
||||
rev = "71782569078f29214017a966b0f992b9e512bf19";
|
||||
hash = "sha256-Bx1iZcrUG5B/wjeWf2hZEAIocM7dKgRwRPqpGzS2Cgc=";
|
||||
};
|
||||
|
||||
makefile = "Makefile";
|
||||
|
||||
@@ -5,13 +5,13 @@
|
||||
}:
|
||||
mkLibretroCore {
|
||||
core = "smsplus";
|
||||
version = "0-unstable-2024-10-21";
|
||||
version = "0-unstable-2026-03-31";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "libretro";
|
||||
repo = "smsplus-gx";
|
||||
rev = "c642bbd0680b5959180a420036108893d0aec961";
|
||||
hash = "sha256-SHBrwzLyVZ4Tp/kVCnr4xj2B3pmdg+JUmZUM7hYao64=";
|
||||
rev = "41212ee3309fcf84ef0c04317a0916f0e1252c00";
|
||||
hash = "sha256-7IKnFdSYCVrwjvtP4cTxQCCKANYSVVR6IwrhnjzqPPg=";
|
||||
};
|
||||
|
||||
meta = {
|
||||
|
||||
@@ -5,13 +5,13 @@
|
||||
}:
|
||||
mkLibretroCore {
|
||||
core = "snes9x2002";
|
||||
version = "0-unstable-2024-10-21";
|
||||
version = "0-unstable-2026-03-31";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "libretro";
|
||||
repo = "snes9x2002";
|
||||
rev = "a0709ec7dcd6de2fbebb43106bd757b649e3b7cf";
|
||||
hash = "sha256-rrMPhXIsQ48fVvjgZgC3xeqm9k9kwe43oZNzs2d/h1Q=";
|
||||
rev = "15826a2afc1474b30c310502b5dbe25c639be59d";
|
||||
hash = "sha256-LVTtpnmZzmKCohFwc74qLMR6cN4ntT/o/OUQOg6mdU0=";
|
||||
};
|
||||
|
||||
makefile = "Makefile";
|
||||
|
||||
@@ -5,13 +5,13 @@
|
||||
}:
|
||||
mkLibretroCore rec {
|
||||
core = "snes9x2010";
|
||||
version = "0-unstable-2024-11-19";
|
||||
version = "0-unstable-2026-03-31";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "libretro";
|
||||
repo = "snes9x2010";
|
||||
rev = "f9ae8fd28b13070a945a829ccf41cbf90a21d0f7";
|
||||
hash = "sha256-nsExAYnzDenPvXzeN60jGykRTrCGMi/mRPV+vgS8ZtE=";
|
||||
rev = "693c0dd2a3004a6332a076a08d14c78086f26bc1";
|
||||
hash = "sha256-/+VdaLY6JycN2o1/LOPFIOmcp6ZVAqpX1MVuHN3B/Nc=";
|
||||
};
|
||||
|
||||
makeFlags = [ "GIT_VERSION=${builtins.substring 0 7 src.rev}" ];
|
||||
|
||||
@@ -5,13 +5,13 @@
|
||||
}:
|
||||
mkLibretroCore {
|
||||
core = "virtualjaguar";
|
||||
version = "0-unstable-2024-10-21";
|
||||
version = "0-unstable-2026-04-03";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "libretro";
|
||||
repo = "virtualjaguar-libretro";
|
||||
rev = "48096c1f6f8b98cfff048a5cb4e6a86686631072";
|
||||
hash = "sha256-DLBQQARHqupGGQS8YznDSSMuxQliyt5apGA4Ku2jlYo=";
|
||||
rev = "68265f930f6120f8f05c1f71c9fc9e417dab0d28";
|
||||
hash = "sha256-BWpOm0DECqTqbQ1FR9YgjxjsxU7LdB4MlYHzGatcrJk=";
|
||||
};
|
||||
|
||||
makefile = "Makefile";
|
||||
|
||||
@@ -37,6 +37,9 @@ let
|
||||
|
||||
pythonRemoveDeps = [
|
||||
"importlib-resources"
|
||||
"tree-sitter-c-sharp"
|
||||
"tree-sitter-embedded-template"
|
||||
"tree-sitter-yaml"
|
||||
];
|
||||
|
||||
build-system = with python3Packages; [ setuptools-scm ];
|
||||
@@ -200,6 +203,10 @@ let
|
||||
"test_main_exit_calls_version_check"
|
||||
# AssertionError: assert 2 == 1
|
||||
"test_simple_send_non_retryable_error"
|
||||
# Upstream tests incompatible with current litellm version
|
||||
"test_max_context_tokens"
|
||||
"test_cmd_tokens_output"
|
||||
"test_cmd_read_only_with_image_file"
|
||||
]
|
||||
++ lib.optionals stdenv.hostPlatform.isDarwin [
|
||||
# Tests fails on darwin
|
||||
|
||||
@@ -7,16 +7,16 @@
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
# Renaming it to amber-secret because another package named amber exists
|
||||
pname = "amber-secret";
|
||||
version = "0.1.7";
|
||||
version = "0.1.8";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "fpco";
|
||||
repo = "amber";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-nduSnDhLvHpZD7Y1zeZC4nNL7P1qfLWc0yMpsdqrKHM=";
|
||||
hash = "sha256-nBC/IJgad7/LaKfQ4d+aynKmzwd2t3VcPcUVlWHByzI=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-Gwj0rnbKWifja5NJwskcrFpPoK15HjSQHXolGbgV784=";
|
||||
cargoHash = "sha256-svHEeCcudQ4fXxAcYkz8Y8NJ8ATQacXIWXF1c5shom0=";
|
||||
|
||||
meta = {
|
||||
description = "Manage secret values in-repo via public key cryptography";
|
||||
|
||||
@@ -6,16 +6,16 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "cdncheck";
|
||||
version = "1.2.28";
|
||||
version = "1.2.30";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "projectdiscovery";
|
||||
repo = "cdncheck";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-G0h/0HEPE0kOPfCJIFCXZnqeyCYs7JdnlNjusk9+Nzw=";
|
||||
hash = "sha256-CzTwax3XuUt5ZJsYXIbXHz3czev6natd1WsTQIrokEE=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-bYN119IyOkO9w+CWGwnCOXqpo4QHJV6iDuToMnTo0og=";
|
||||
vendorHash = "sha256-z/wOCtd39ENUe8WQUst4uhl8R6RwCDdcUC4OZcRJWSs=";
|
||||
|
||||
subPackages = [ "cmd/cdncheck/" ];
|
||||
|
||||
|
||||
@@ -13,14 +13,14 @@
|
||||
|
||||
python3Packages.buildPythonApplication (finalAttrs: {
|
||||
pname = "censor";
|
||||
version = "0.6.0";
|
||||
version = "0.7.0";
|
||||
pyproject = false;
|
||||
|
||||
src = fetchFromCodeberg {
|
||||
owner = "censor";
|
||||
repo = "Censor";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-r5GhPr7dFLVy8nyKWg0poZSjWVrLrpnUHhe4MdEThvM=";
|
||||
hash = "sha256-ALWctGCV1ttocbjD+F1cV9kMnb/WfWXYzv96j+KAhmk=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -6,18 +6,18 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "cnspec";
|
||||
version = "13.2.0";
|
||||
version = "13.3.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mondoohq";
|
||||
repo = "cnspec";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-z02BAKPPWqKUiCotgGr+kOIg8omXjyXnLze/RaNdWc0=";
|
||||
hash = "sha256-yCxry1f5CEF51WSgrYN1m9F8YpVjtt+UNZG978nPXbY=";
|
||||
};
|
||||
|
||||
proxyVendor = true;
|
||||
|
||||
vendorHash = "sha256-EgSj4EL6s30u4p5tNOJMyH4h+DM1O8UMg8iveRi6hJA=";
|
||||
vendorHash = "sha256-wgebRTa1ox+LUzxlYLb3pqcLEF/uUushZ1Oq2mvRGCk=";
|
||||
|
||||
subPackages = [ "apps/cnspec" ];
|
||||
|
||||
|
||||
@@ -6,29 +6,38 @@
|
||||
|
||||
python3.pkgs.buildPythonApplication (finalAttrs: {
|
||||
pname = "docstrfmt";
|
||||
version = "1.11.0";
|
||||
version = "2.0.2";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "LilSpazJoekp";
|
||||
repo = "docstrfmt";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-5Yx+omXZSlpJSzA4dTY/JdfmHQshM7qI++OVvqYg1jc=";
|
||||
hash = "sha256-N2uPFOdDvAUL9eV4kn8MYM6OTMWJm24inlyY+k9Eqm8=";
|
||||
};
|
||||
|
||||
build-system = [
|
||||
python3.pkgs.flit-core
|
||||
];
|
||||
|
||||
pythonRelaxDeps = [
|
||||
# https://github.com/LilSpazJoekp/docstrfmt/issues/186
|
||||
"types-docutils"
|
||||
];
|
||||
|
||||
dependencies = with python3.pkgs; [
|
||||
black
|
||||
click
|
||||
coverage
|
||||
docutils
|
||||
docutils-stubs
|
||||
libcst
|
||||
platformdirs
|
||||
roman
|
||||
sphinx
|
||||
tabulate
|
||||
toml
|
||||
tomli
|
||||
types-docutils
|
||||
];
|
||||
|
||||
nativeCheckInputs = with python3.pkgs; [
|
||||
|
||||
Generated
+552
-573
File diff suppressed because it is too large
Load Diff
@@ -6,13 +6,13 @@
|
||||
}:
|
||||
buildNpmPackage rec {
|
||||
pname = "eslint";
|
||||
version = "10.1.0";
|
||||
version = "10.2.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "eslint";
|
||||
repo = "eslint";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-VO7Q+3utTp9+Z/EcN4jwNafbOwdeeCCJb8dtPMcvyjE=";
|
||||
hash = "sha256-JsfiBU+BiqiBAIc4DwxXYl/wtBoM9bQntiem1+vi+/s=";
|
||||
};
|
||||
|
||||
# NOTE: Generating lock-file
|
||||
@@ -24,7 +24,7 @@ buildNpmPackage rec {
|
||||
cp ${./package-lock.json} package-lock.json
|
||||
'';
|
||||
|
||||
npmDepsHash = "sha256-AXUh8KPqsv4tHGCHvdxjqVV+PRCtkyOuGtWSpoBwKX0=";
|
||||
npmDepsHash = "sha256-qpxHGNBRWN3hys5R+zJR870xIoN5VL6U3dUnKrIH0go=";
|
||||
npmInstallFlags = [ "--omit=dev" ];
|
||||
|
||||
dontNpmBuild = true;
|
||||
|
||||
@@ -0,0 +1,66 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
|
||||
cmake,
|
||||
pkg-config,
|
||||
|
||||
libGL,
|
||||
libx11,
|
||||
vulkan-headers,
|
||||
vulkan-loader,
|
||||
|
||||
callPackage,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "felix86";
|
||||
version = "26.04";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "OFFTKP";
|
||||
repo = "felix86";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-onhPibvO74yo95zop7EhG+EILn4M70X9ivhS9I+fIBY=";
|
||||
};
|
||||
|
||||
strictDeps = true;
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
pkg-config
|
||||
vulkan-headers
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
libGL
|
||||
libx11
|
||||
vulkan-loader
|
||||
];
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
install -Dm755 felix86 $out/bin/felix86
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
cmakeFlags = [
|
||||
(lib.cmakeBool "ZYDIS_BUILD_DOXYGEN" false)
|
||||
(lib.cmakeBool "BUILD_TESTS" true)
|
||||
];
|
||||
|
||||
passthru.tests = callPackage ./test.nix { };
|
||||
|
||||
meta = {
|
||||
description = "x86 and x86-64 userspace emulator for RISC-V Linux";
|
||||
homepage = "https://github.com/OFFTKP/felix86";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ eljamm ];
|
||||
teams = with lib.teams; [ ngi ];
|
||||
mainProgram = "felix86";
|
||||
platforms = [ "riscv64-linux" ];
|
||||
};
|
||||
})
|
||||
@@ -0,0 +1,35 @@
|
||||
{
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
pkgs.testers.nixosTest {
|
||||
name = "felix86";
|
||||
|
||||
nodes.machine =
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
boot.binfmt.emulatedSystems = [ "riscv64-linux" ];
|
||||
|
||||
environment.systemPackages = [
|
||||
pkgs.pkgsCross.riscv64.felix86
|
||||
];
|
||||
};
|
||||
|
||||
testScript =
|
||||
# python
|
||||
''
|
||||
machine.wait_for_unit("multi-user.target")
|
||||
machine.succeed("felix86 --help")
|
||||
'';
|
||||
|
||||
interactive.nodes.machine = {
|
||||
virtualisation.graphics = false;
|
||||
environment.systemPackages = [ pkgs.binutils ];
|
||||
};
|
||||
interactive.sshBackdoor.enable = true;
|
||||
}
|
||||
@@ -17,12 +17,12 @@ buildGoModule (
|
||||
in
|
||||
{
|
||||
pname = "fmd-server";
|
||||
version = "0.14.1";
|
||||
version = "0.14.2";
|
||||
src = fetchFromGitLab {
|
||||
owner = "fmd-foss";
|
||||
repo = "fmd-server";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-UmiYtriLC9qztv7nW+1tFpYv9I0NAOsApAJWP72OINg=";
|
||||
hash = "sha256-zAGwKOfPu7AEYhaDxx1P3EoA1K9p/f3Vwh7GrynqKho=";
|
||||
};
|
||||
|
||||
pnpmDeps = fetchPnpmDeps {
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
buildGo126Module,
|
||||
}:
|
||||
|
||||
buildGo126Module (finalAttrs: {
|
||||
version = "3.1.665";
|
||||
pname = "ipsw";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "blacktop";
|
||||
repo = "ipsw";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-Oxf+hpNo/Li/S0kVjekp2RArGrYQP7voNBSTz3/Gr+Q=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-rzOw51n8G9H5Sxr2rCevrmG6z2SqKZOjluYwJzYiY70=";
|
||||
|
||||
ldflags = [
|
||||
"-s"
|
||||
"-w"
|
||||
"-X github.com/blacktop/ipsw/cmd/ipsw/cmd.AppVersion==${finalAttrs.version}"
|
||||
"-X github.com/blacktop/ipsw/cmd/ipsw/cmd.AppBuildCommit==${finalAttrs.src.tag}"
|
||||
];
|
||||
|
||||
subPackages = [
|
||||
"cmd/ipsw"
|
||||
];
|
||||
|
||||
meta = {
|
||||
description = "iOS/macOS Research Swiss Army Knife";
|
||||
homepage = "https://blacktop.github.io/ipsw";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = [ lib.maintainers.viraptor ];
|
||||
platforms = lib.platforms.unix;
|
||||
mainProgram = "ipsw";
|
||||
};
|
||||
})
|
||||
@@ -13,7 +13,7 @@
|
||||
}:
|
||||
buildNpmPackage (finalAttrs: {
|
||||
pname = "jellyfin-web";
|
||||
version = "10.11.7";
|
||||
version = "10.11.8";
|
||||
|
||||
src =
|
||||
assert finalAttrs.version == jellyfin.version;
|
||||
@@ -21,7 +21,7 @@ buildNpmPackage (finalAttrs: {
|
||||
owner = "jellyfin";
|
||||
repo = "jellyfin-web";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-DA3UDAcaHyxJmLfw8mRgRNxwOiGu6QIm9QHDrMAaG1w=";
|
||||
hash = "sha256-Nrh4BNlhJyzj9cXQ6Yr7349r5H+4r9W3aldcg9+J6dU=";
|
||||
};
|
||||
|
||||
nodejs = nodejs_20; # does not build with 22
|
||||
@@ -31,7 +31,7 @@ buildNpmPackage (finalAttrs: {
|
||||
--replace-fail "git describe --always --dirty" "echo ${finalAttrs.src.rev}" \
|
||||
'';
|
||||
|
||||
npmDepsHash = "sha256-U90aZ3Kym0yxcsNUSAdm3P3XU6Nb2GjEru64wODrm8M=";
|
||||
npmDepsHash = "sha256-oxytp6n/4X1bhpfFqpqMAji86sbjV669F324zY3hoK4=";
|
||||
|
||||
preBuild = ''
|
||||
# using sass-embedded fails at executing node_modules/sass-embedded-linux-x64/dart-sass/src/dart
|
||||
|
||||
@@ -14,13 +14,13 @@
|
||||
|
||||
buildDotnetModule (finalAttrs: {
|
||||
pname = "jellyfin";
|
||||
version = "10.11.7"; # ensure that jellyfin-web has matching version
|
||||
version = "10.11.8"; # ensure that jellyfin-web has matching version
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jellyfin";
|
||||
repo = "jellyfin";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-u2J55xGjjHwT+nrGvmO01JUS9edaxzYcTdoau3xqnDM=";
|
||||
hash = "sha256-wBf561mZvC65Hu4MHHSu8YeILQDp/WN9vGA+JxGXwE8=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ sqlite ];
|
||||
|
||||
@@ -23,11 +23,11 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "kstars";
|
||||
version = "3.8.1";
|
||||
version = "3.8.2";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://kde/stable/kstars/${finalAttrs.version}/kstars-${finalAttrs.version}.tar.xz";
|
||||
hash = "sha256-1f40IdBzjKV2dt1TZtIwLE+ivuPkb0GMWM02Az0Sauo=";
|
||||
hash = "sha256-rKP2YsBjccPu/NVTo6aHyUulinrkYNDGOQf2y59pztk=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = with kdePackages; [
|
||||
|
||||
@@ -19,13 +19,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "lua-language-server";
|
||||
version = "3.17.1";
|
||||
version = "3.18.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "luals";
|
||||
repo = "lua-language-server";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-NfxBiXiGF4+meXTwp6We9+bmHW7Z9ZcxvRXAGwWAULo=";
|
||||
hash = "sha256-5N27/bGMEQDXUD9amXgGVO8dtiV/7c/8sfSPEhit8gc=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
|
||||
@@ -16,13 +16,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "memorado";
|
||||
version = "0.6";
|
||||
version = "0.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "wbernard";
|
||||
repo = "Memorado";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-pHbZ8zBfgAHLmCaMRS4MS/awFat41OG++hSSHz3k2KM=";
|
||||
hash = "sha256-/AGrtVULG8rnfdd3dYqftv2YU+SjhdCQMQSlc8oY8zI=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -10,13 +10,13 @@
|
||||
}:
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "metacubexd";
|
||||
version = "1.241.3";
|
||||
version = "1.244.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "MetaCubeX";
|
||||
repo = "metacubexd";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-oR8rhD/wPgm14rG5ic8Dx4WNCnpmxapzUWomqAC3708=";
|
||||
hash = "sha256-IDbAxFplMh1mDVobiHgIghjjgy4WyOLxRbJdMR6gcTQ=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
@@ -29,7 +29,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
inherit (finalAttrs) pname version src;
|
||||
pnpm = pnpm_10;
|
||||
fetcherVersion = 3;
|
||||
hash = "sha256-i6MSmv6dS/bkpKvId6oroKPAtFYk5OUIvUWyfFa/NJU=";
|
||||
hash = "sha256-BXyKwwhktRAQ/Eol48iKzD5h4iHYB/p2jJHCuXbZ8Js=";
|
||||
};
|
||||
|
||||
buildPhase = ''
|
||||
|
||||
@@ -5,22 +5,15 @@
|
||||
lzip,
|
||||
ncurses,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "moe";
|
||||
version = "1.15";
|
||||
version = "1.16";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnu/moe/moe-${finalAttrs.version}.tar.lz";
|
||||
hash = "sha256-QfjIsJnOMEeUXKTgl6YNkkPpxz+7JowZShLaiw2fCmY=";
|
||||
hash = "sha256-TCXNeJGScq6+wKf4wSYBG7Wktdh0IoB6NCMhbwoXqGg=";
|
||||
};
|
||||
|
||||
prePatch = ''
|
||||
substituteInPlace window_vector.cc --replace \
|
||||
"insert( 0U, 1," \
|
||||
"insert( 0U, 1U,"
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
lzip
|
||||
];
|
||||
@@ -44,9 +37,8 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
delimiter matching, text conversion from/to UTF-8, romanization, etc.
|
||||
'';
|
||||
license = lib.licenses.gpl2Plus;
|
||||
maintainers = [ ];
|
||||
maintainers = with lib.maintainers; [ videl ];
|
||||
platforms = lib.platforms.unix;
|
||||
mainProgram = "moe";
|
||||
};
|
||||
})
|
||||
# TODO: a configurable, global moerc file
|
||||
|
||||
@@ -13,13 +13,13 @@ assert blas.isILP64 == lapack.isILP64;
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "mopac";
|
||||
version = "23.2.3";
|
||||
version = "23.2.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "openmopac";
|
||||
repo = "mopac";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-wQinzdy0zPe9ZMZuxwkDIb0vjIkW9fcSwrkAZzM4iv8=";
|
||||
hash = "sha256-Pc9o2ZEHNhU0Dy36vR8egt6hSbTdVmRhSHXB+zNexi0=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -0,0 +1,126 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
rustPlatform,
|
||||
fetchFromGitHub,
|
||||
cargo-tauri,
|
||||
pnpm_10,
|
||||
fetchPnpmDeps,
|
||||
pnpmConfigHook,
|
||||
nodejs,
|
||||
pkg-config,
|
||||
jq,
|
||||
moreutils,
|
||||
glib-networking,
|
||||
openssl,
|
||||
webkitgtk_4_1,
|
||||
libayatana-appindicator,
|
||||
wrapGAppsHook4,
|
||||
desktop-file-utils,
|
||||
xdg-utils,
|
||||
nix-update-script,
|
||||
}:
|
||||
let
|
||||
pnpm = pnpm_10;
|
||||
in
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "motrix-next";
|
||||
version = "3.6.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "AnInsomniacy";
|
||||
repo = "motrix-next";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-DeqHF36iH2kPi4F7RU5Ipde0lnwGWJqHfu4kz3znexg=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-v+0dWo3w42wglv23Ydj0+Cb5HXF2fZ4Z0DC8EIsN5ww=";
|
||||
|
||||
pnpmDeps = fetchPnpmDeps {
|
||||
inherit (finalAttrs)
|
||||
pname
|
||||
version
|
||||
src
|
||||
;
|
||||
inherit pnpm;
|
||||
hash = "sha256-WvcN4LLRKiOxYEjImZ7VerwHFj33ELJvDKyP3F2UYG8=";
|
||||
fetcherVersion = 3;
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
cargo-tauri.hook
|
||||
|
||||
pnpmConfigHook
|
||||
pnpm
|
||||
nodejs
|
||||
|
||||
pkg-config
|
||||
jq
|
||||
moreutils
|
||||
]
|
||||
++ lib.optionals stdenv.hostPlatform.isLinux [ wrapGAppsHook4 ];
|
||||
|
||||
# we don't want to wrap aria2c
|
||||
dontWrapGApps = true;
|
||||
|
||||
buildInputs = lib.optionals stdenv.hostPlatform.isLinux [
|
||||
glib-networking
|
||||
openssl
|
||||
webkitgtk_4_1
|
||||
libayatana-appindicator
|
||||
];
|
||||
|
||||
cargoRoot = "src-tauri";
|
||||
buildAndTestSubdir = finalAttrs.cargoRoot;
|
||||
|
||||
checkFlags = lib.optional stdenv.hostPlatform.isDarwin "--skip=commands::protocol::tests::macos_tests::get_default_handler_bundle_id_returns_some_for_https";
|
||||
|
||||
# Deactivate the upstream update mechanism
|
||||
postPatch = ''
|
||||
jq '
|
||||
.bundle.createUpdaterArtifacts = false |
|
||||
.plugins.updater = {"active": false, "pubkey": "", "endpoints": []}
|
||||
' \
|
||||
src-tauri/tauri.conf.json | sponge src-tauri/tauri.conf.json
|
||||
'';
|
||||
|
||||
preFixup = lib.optionalString stdenv.hostPlatform.isLinux ''
|
||||
gappsWrapperArgs+=(
|
||||
--prefix LD_LIBRARY_PATH : ${
|
||||
lib.makeLibraryPath [
|
||||
libayatana-appindicator
|
||||
]
|
||||
}
|
||||
--suffix PATH : ${
|
||||
lib.makeBinPath [
|
||||
desktop-file-utils
|
||||
xdg-utils
|
||||
]
|
||||
}
|
||||
# Tricky way to make the protocol handler desktop file point to the wrapper
|
||||
--set-default APPIMAGE $out/bin/motrix-next
|
||||
)
|
||||
wrapGApp $out/bin/motrix-next
|
||||
'';
|
||||
|
||||
passthru.updateScript = nix-update-script { extraArgs = [ "--use-github-releases" ]; };
|
||||
|
||||
meta = {
|
||||
description = "Full-featured download manager, rebuilt from scratch with Tauri 2, Vue 3, and Rust";
|
||||
homepage = "https://github.com/AnInsomniacy/motrix-next";
|
||||
changelog = "https://github.com/AnInsomniacy/motrix-next/releases/tag/v${finalAttrs.version}";
|
||||
license = with lib.licenses; [
|
||||
mit
|
||||
gpl2Plus
|
||||
];
|
||||
sourceProvenance = with lib.sourceTypes; [
|
||||
fromSource
|
||||
# ships an upstream-provided aria2c binary (statically linked, max connections increased)
|
||||
# source for this binary: https://github.com/AnInsomniacy/aria2-builder
|
||||
binaryNativeCode
|
||||
];
|
||||
maintainers = with lib.maintainers; [ ccicnce113424 ];
|
||||
mainProgram = "motrix-next";
|
||||
platforms = with lib.platforms; linux ++ darwin;
|
||||
};
|
||||
})
|
||||
@@ -10,13 +10,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "netgen";
|
||||
version = "1.5.316";
|
||||
version = "1.5.318";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "RTimothyEdwards";
|
||||
repo = "netgen";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-Cw/JZXzkvstfCD3oyWhZ3sWZcXtpGBkZhZIHjq2vQ6Q=";
|
||||
hash = "sha256-JefKDDzavI/fFJ0nsL6n3z4NHTAVWpOEyMxffYVHLac=";
|
||||
};
|
||||
|
||||
strictDeps = true;
|
||||
|
||||
@@ -1,20 +1,35 @@
|
||||
{
|
||||
lib,
|
||||
buildDotnetModule,
|
||||
stdenv,
|
||||
dotnetCorePackages,
|
||||
buildDotnetModule,
|
||||
fetchFromGitHub,
|
||||
glibcLocales,
|
||||
gtk4,
|
||||
glib,
|
||||
intltool,
|
||||
libadwaita,
|
||||
intltool,
|
||||
wrapGAppsHook4,
|
||||
nix-update-script,
|
||||
|
||||
# Darwin transitive deps
|
||||
graphene,
|
||||
gettext,
|
||||
pango,
|
||||
gdk-pixbuf,
|
||||
cairo,
|
||||
harfbuzz,
|
||||
fribidi,
|
||||
fontconfig,
|
||||
freetype,
|
||||
libthai,
|
||||
pcre2,
|
||||
libepoxy,
|
||||
}:
|
||||
|
||||
buildDotnetModule rec {
|
||||
pname = "Pinta";
|
||||
version = "3.1.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "PintaProject";
|
||||
repo = "Pinta";
|
||||
@@ -31,6 +46,22 @@ buildDotnetModule rec {
|
||||
gtk4
|
||||
glib
|
||||
libadwaita
|
||||
]
|
||||
++ lib.optionals stdenv.isDarwin [
|
||||
# Transitive dylib deps that Pinta's NativeImportResolver dlopen's by bare name.
|
||||
# These are not pulled in by wrapGAppsHook4's LD_LIBRARY_PATH on Darwin, so symlink is needed.
|
||||
graphene
|
||||
gettext
|
||||
pango
|
||||
gdk-pixbuf
|
||||
cairo
|
||||
harfbuzz
|
||||
fribidi
|
||||
fontconfig
|
||||
freetype
|
||||
libthai
|
||||
pcre2
|
||||
libepoxy
|
||||
];
|
||||
|
||||
buildInputs = runtimeDeps;
|
||||
@@ -38,63 +69,74 @@ buildDotnetModule rec {
|
||||
dotnet-sdk = dotnetCorePackages.sdk_8_0;
|
||||
dotnet-runtime = dotnetCorePackages.runtime_8_0;
|
||||
|
||||
# How-to update deps:
|
||||
# $ nix-build -A pinta.fetch-deps
|
||||
# $ ./result
|
||||
# TODO: create update script
|
||||
nugetDeps = ./deps.json;
|
||||
|
||||
projectFile = "Pinta";
|
||||
|
||||
# https://github.com/NixOS/nixpkgs/issues/38991
|
||||
# bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
|
||||
env.LOCALE_ARCHIVE = "${glibcLocales}/lib/locale/locale-archive";
|
||||
env = lib.optionalAttrs (!stdenv.isDarwin) {
|
||||
LOCALE_ARCHIVE = "${glibcLocales}/lib/locale/locale-archive";
|
||||
};
|
||||
|
||||
dotnetFlags = [ "-p:BuildTranslations=true" ];
|
||||
|
||||
# Do the autoreconf/Makefile job manually
|
||||
# TODO: use upstream build system
|
||||
postBuild = ''
|
||||
# Substitute translation placeholders
|
||||
intltool-merge -x po/ xdg/com.github.PintaProject.Pinta.metainfo.xml.in xdg/com.github.PintaProject.Pinta.metainfo.xml
|
||||
intltool-merge -d po/ xdg/com.github.PintaProject.Pinta.desktop.in xdg/com.github.PintaProject.Pinta.desktop
|
||||
|
||||
# Build translations
|
||||
dotnet build Pinta \
|
||||
--no-restore \
|
||||
-p:ContinuousIntegrationBuild=true \
|
||||
-p:Deterministic=true \
|
||||
-target:CompileTranslations,PublishTranslations \
|
||||
-p:BuildTranslations=true \
|
||||
-p:PublishDir="$NIX_BUILD_TOP/source/publish"
|
||||
'';
|
||||
|
||||
postFixup = ''
|
||||
# Rename the binary
|
||||
mv "$out/bin/Pinta" "$out/bin/pinta"
|
||||
# Two-step rename needed on macOS: 'Pinta' is the same as 'pinta' on case-insensitive filesystems.
|
||||
mv "$out/bin/Pinta" "$out/bin/pinta_tmp"
|
||||
mv "$out/bin/pinta_tmp" "$out/bin/pinta"
|
||||
|
||||
# Copy runtime icons
|
||||
for i in "Pinta.Resources/icons/hicolor/"*; do
|
||||
res="$(basename $i)"
|
||||
mkdir -p "$out/share/icons/hicolor/$res"
|
||||
cp -rv "Pinta.Resources/icons/hicolor/$res/"* "$out/share/icons/hicolor/$res/"
|
||||
done
|
||||
|
||||
# Install
|
||||
# Use icons from the dotnet publish output (already at $out/lib/Pinta/icons/).
|
||||
mkdir -p "$out/share/icons"
|
||||
cp -r "$out/lib/Pinta/icons/." "$out/share/icons/"
|
||||
''
|
||||
+ lib.optionalString (!stdenv.isDarwin) ''
|
||||
dotnet build installer/linux/install.proj \
|
||||
-target:Install \
|
||||
-p:ContinuousIntegrationBuild=true \
|
||||
-p:Deterministic=true \
|
||||
-p:SourceDir="$NIX_BUILD_TOP/source" \
|
||||
-p:PublishDir="$NIX_BUILD_TOP/source/publish" \
|
||||
-p:PublishDir="$out/lib/Pinta" \
|
||||
-p:InstallPrefix="$out"
|
||||
''
|
||||
+ lib.optionalString stdenv.isDarwin ''
|
||||
# Symlink all dylibs from runtimeDeps into the assembly dir.
|
||||
# GirCore and Pinta's own NativeImportResolver both search here by bare name.
|
||||
for dir in ${lib.concatMapStringsSep " " (d: "${lib.getLib d}/lib") runtimeDeps}; do
|
||||
for dylib in "$dir"/*.dylib; do
|
||||
[ -e "$dylib" ] || continue
|
||||
ln -sf "$dylib" "$out/lib/Pinta/$(basename "$dylib")"
|
||||
done
|
||||
done
|
||||
|
||||
APP="$out/Applications/Pinta.app/Contents"
|
||||
mkdir -p "$APP/MacOS" "$APP/Resources"
|
||||
|
||||
cp "$NIX_BUILD_TOP/source/installer/macos/Info.plist" "$APP/Info.plist"
|
||||
cp "$NIX_BUILD_TOP/source/installer/macos/pinta.icns" "$APP/Resources/pinta.icns"
|
||||
|
||||
ln -s "$out/bin/pinta" "$APP/MacOS/pinta"
|
||||
ln -s "$out/share" "$APP/Resources/share"
|
||||
ln -s "$out/lib" "$APP/Resources/lib"
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = nix-update-script { };
|
||||
};
|
||||
|
||||
meta = {
|
||||
homepage = "https://www.pinta-project.com/";
|
||||
description = "Drawing/editing program modeled after Paint.NET";
|
||||
changelog = "https://github.com/PintaProject/Pinta/releases/tag/${version}";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ thiagokokada ];
|
||||
platforms = lib.platforms.linux;
|
||||
maintainers = with lib.maintainers; [
|
||||
thiagokokada
|
||||
philocalyst
|
||||
];
|
||||
platforms = lib.platforms.unix;
|
||||
mainProgram = "pinta";
|
||||
};
|
||||
}
|
||||
|
||||
@@ -20,21 +20,23 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "pmix";
|
||||
version = "5.0.10";
|
||||
version = "6.1.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
repo = "openpmix";
|
||||
owner = "openpmix";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-i7DZCJeNwjcRYCp3t0GlKM1V1rU/ws22u5Ct/JZ5P1Q=";
|
||||
hash = "sha256-wMVppqSXpQeBgkwna+jaU5kY03WHbGwMQQrouCyGROo=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
outputs = [ "out" ] ++ lib.optionals stdenv.hostPlatform.isLinux [ "dev" ];
|
||||
|
||||
postPatch = ''
|
||||
patchShebangs ./autogen.pl
|
||||
patchShebangs ./config
|
||||
patchShebangs --build ./autogen.pl
|
||||
patchShebangs --build ./config
|
||||
patchShebangs --build ./contrib
|
||||
patchShebangs --build ./src/util/convert-help.py
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
autoconf,
|
||||
automake,
|
||||
libtool,
|
||||
pkg-config,
|
||||
gitMinimal,
|
||||
perl,
|
||||
python3,
|
||||
@@ -18,13 +19,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "prrte";
|
||||
version = "3.0.13";
|
||||
version = "4.1.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "openpmix";
|
||||
repo = "prrte";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-T/iHmSO2isyIjsaiTrNYeTiBobM/9eg7gTP12m7ehno=";
|
||||
hash = "sha256-FO2dFqvJ3Ahc7rE2gAiQhmM5GTc7LJ8nE4y5fe+FgDg=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
@@ -46,10 +47,12 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
preConfigure = ''
|
||||
./autogen.pl
|
||||
patchShebangs --build ./src/util/prte-convert-help.py
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
moveToOutput "bin/prte_info" "''${!outputDev}"
|
||||
moveToOutput "bin/prte-info" "''${!outputDev}"
|
||||
# Fix a broken symlink, created due to FHS assumptions
|
||||
rm "$out/bin/pcc"
|
||||
ln -s ${lib.getDev pmix}/bin/pmixcc "''${!outputDev}"/bin/pcc
|
||||
@@ -66,6 +69,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
libtool
|
||||
flex
|
||||
gitMinimal
|
||||
pkg-config
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
|
||||
@@ -12,11 +12,11 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "qsynth";
|
||||
version = "1.0.4";
|
||||
version = "1.0.5";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/qsynth/qsynth-${finalAttrs.version}.tar.gz";
|
||||
hash = "sha256-nP08/Vzlf0WVSaPhCRgGqy/rsFRKH0OJfinvnx7tbww=";
|
||||
hash = "sha256-s1z3gjKZKmsPYFrB6TFHijMUeL9xovSudQ1xphJK3Ng=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -13,13 +13,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "radcli";
|
||||
version = "1.4.0";
|
||||
version = "1.5.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "radcli";
|
||||
repo = "radcli";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-YnZkFYTiU2VNKxuP+JTnH64XYTB/+imeMKN1mZN9VCQ=";
|
||||
hash = "sha256-PpPKNH9gDE9FewDCeBCog3p5C6FBBYBPVnhahVHYKnA=";
|
||||
};
|
||||
|
||||
postUnpack = ''
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
stdenv,
|
||||
}:
|
||||
let
|
||||
version = "2.62.1641";
|
||||
version = "2.64.1646";
|
||||
urlVersion = builtins.replaceStrings [ "." ] [ "0" ] version;
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
@@ -25,7 +25,7 @@ stdenv.mkDerivation {
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://download.roonlabs.com/updates/production/RoonServer_linuxx64_${urlVersion}.tar.bz2";
|
||||
hash = "sha256-DX05i4bgTar2d2xHyEqFXNlQ86FladX/xoEC4YLIxnI=";
|
||||
hash = "sha256-tvNjz31xIo7UAB0t0seOfjiS7Qx6DPVu8VTBLK5ZjEo=";
|
||||
};
|
||||
|
||||
dontConfigure = true;
|
||||
|
||||
@@ -15,11 +15,11 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "samplv1";
|
||||
version = "1.3.2";
|
||||
version = "1.4.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/samplv1/samplv1-${finalAttrs.version}.tar.gz";
|
||||
hash = "sha256-YCxt9RAP02uAigddA6HjBt2ryM6MyOtI3L2eLg0AhFg=";
|
||||
hash = "sha256-siuzbsAkQi909/jBNtz/Lb8gMtxyxh+tiRGuvZ9JUts=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
fetchpatch,
|
||||
runCommand,
|
||||
config,
|
||||
pkg-config,
|
||||
@@ -62,18 +61,18 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
prePatch = ''
|
||||
substituteInPlace src/common/env.c \
|
||||
--replace "/bin/echo" "${lib.getExe' coreutils "echo"}"
|
||||
--replace-fail "/bin/echo" "${lib.getExe' coreutils "echo"}"
|
||||
|
||||
# Autoconf does not support split packages for pmix (libs and headers).
|
||||
# Fix the path to the pmix libraries, so dlopen can find it.
|
||||
substituteInPlace src/plugins/mpi/pmix/mpi_pmix.c \
|
||||
--replace 'xstrfmtcat(full_path, "%s/", PMIXP_LIBPATH)' \
|
||||
'xstrfmtcat(full_path, "${lib.getLib pmix}/lib/")'
|
||||
--replace-fail 'xstrfmtcat(full_path, "%s/", PMIXP_LIBPATH)' \
|
||||
'xstrfmtcat(full_path, "${lib.getLib pmix}/lib/")'
|
||||
|
||||
''
|
||||
+ (lib.optionalString enableX11 ''
|
||||
substituteInPlace src/common/x11_util.c \
|
||||
--replace '"/usr/bin/xauth"' '"${lib.getExe xauth}"'
|
||||
--replace-fail '"/usr/bin/xauth"' '"${lib.getExe xauth}"'
|
||||
'');
|
||||
|
||||
# nixos test fails to start slurmd with 'undefined symbol: slurm_job_preempt_mode'
|
||||
|
||||
@@ -206,6 +206,9 @@ python.pkgs.buildPythonApplication rec {
|
||||
"test_get_reranker"
|
||||
"test_query_tool_success"
|
||||
"test_supported_rerankers_initialization"
|
||||
# tree-sitter-language-pack 1.x.x raises LanguageNotFoundError for unknown
|
||||
# languages here, while this test still expects LookupError.
|
||||
"test_treesitter_chunker_parser_from_config_no_parser_found_error"
|
||||
];
|
||||
|
||||
passthru = {
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
evaluate,
|
||||
parameterized,
|
||||
pytestCheckHook,
|
||||
torchvision,
|
||||
transformers,
|
||||
config,
|
||||
cudatoolkit,
|
||||
@@ -62,6 +63,7 @@ buildPythonPackage (finalAttrs: {
|
||||
evaluate
|
||||
parameterized
|
||||
pytestCheckHook
|
||||
torchvision
|
||||
transformers
|
||||
writableTmpDirAsHomeHook
|
||||
];
|
||||
|
||||
@@ -16,14 +16,14 @@
|
||||
|
||||
buildPythonPackage (finalAttrs: {
|
||||
pname = "agentic-threat-hunting-framework";
|
||||
version = "0.7.2";
|
||||
version = "0.11.1";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Nebulock-Inc";
|
||||
repo = "agentic-threat-hunting-framework";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-HFPPEonSRWTU+Cm/B657En78avehebGbWrsAfr+WmI8=";
|
||||
hash = "sha256-dqiWldjPv5iU6OGsoZ4fTdw6dXbu/duFHt19qcPfVjk=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
fetchPypi,
|
||||
setuptools,
|
||||
pytestCheckHook,
|
||||
fetchpatch2,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
@@ -16,6 +17,20 @@ buildPythonPackage rec {
|
||||
hash = "sha256-VLaQgJ8MVqswhaGOFaDDgE1KDRJ/OK7wtc9fhZ0PZjk=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
(fetchpatch2 {
|
||||
# Set prog in ArgumentParser explicitly to fix test failure with Python 3.14
|
||||
# https://github.com/ulif/diceware/issues/122
|
||||
url = "https://github.com/ulif/diceware/commit/77d98606748df7755f36ebbb3bd838b1cdd80c61.patch";
|
||||
includes = [ "diceware/__init__.py" ];
|
||||
hunks = [
|
||||
2
|
||||
3
|
||||
];
|
||||
hash = "sha256-yXGotV/tq7/vCYhY+1OZgCW3r6/SXTTvsHIU/jywbHc=";
|
||||
})
|
||||
];
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
dependencies = [ setuptools ];
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
|
||||
# build-system
|
||||
setuptools,
|
||||
|
||||
# dependencies
|
||||
docutils,
|
||||
}:
|
||||
|
||||
buildPythonPackage (finalAttrs: {
|
||||
pname = "docutils-stubs";
|
||||
version = "0.0.22";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "tk0miya";
|
||||
repo = "docutils-stubs";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-ng/f5e8ElFGNqtpdiQsv897TNkJ4gd++HAxON2l+80s=";
|
||||
};
|
||||
|
||||
build-system = [
|
||||
setuptools
|
||||
];
|
||||
|
||||
dependencies = [
|
||||
docutils
|
||||
];
|
||||
|
||||
# Module doesn't have tests
|
||||
doCheck = false;
|
||||
|
||||
meta = {
|
||||
description = "PEP 561 based Type information for docutils";
|
||||
homepage = "https://github.com/tk0miya/docutils-stubs";
|
||||
license = lib.licenses.unlicense;
|
||||
maintainers = with lib.maintainers; [ doronbehar ];
|
||||
};
|
||||
})
|
||||
@@ -24,7 +24,7 @@
|
||||
tf-keras,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
buildPythonPackage (finalAttrs: {
|
||||
pname = "energyflow";
|
||||
version = "1.4.0";
|
||||
pyproject = true;
|
||||
@@ -32,7 +32,7 @@ buildPythonPackage rec {
|
||||
src = fetchFromGitHub {
|
||||
owner = "pkomiske";
|
||||
repo = "EnergyFlow";
|
||||
tag = "v${version}";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-4RzhpeOOty8IaVGByHD+PyeaeWgR7ZF98mSCJYoM9wY=";
|
||||
};
|
||||
|
||||
@@ -65,7 +65,7 @@ buildPythonPackage rec {
|
||||
pytestCheckHook
|
||||
tf-keras
|
||||
]
|
||||
++ lib.concatAttrValues optional-dependencies;
|
||||
++ lib.concatAttrValues finalAttrs.passthru.optional-dependencies;
|
||||
|
||||
disabledTests = [
|
||||
# Issues with array
|
||||
@@ -73,6 +73,11 @@ buildPythonPackage rec {
|
||||
"test_gdim"
|
||||
"test_n_jobs"
|
||||
"test_periodic_phi"
|
||||
|
||||
# NameError: name '_distance_wrap' is not defined
|
||||
"test_emd_byhand_1_1"
|
||||
"test_emd_return_flow"
|
||||
"test_emde"
|
||||
]
|
||||
++ lib.optionals stdenv.hostPlatform.isDarwin [
|
||||
# RuntimeError: EMDStatus - Infeasible
|
||||
@@ -86,8 +91,8 @@ buildPythonPackage rec {
|
||||
meta = {
|
||||
description = "Python package for the EnergyFlow suite of tools";
|
||||
homepage = "https://energyflow.network/";
|
||||
changelog = "https://github.com/thaler-lab/EnergyFlow/releases/tag/v${version}";
|
||||
changelog = "https://github.com/thaler-lab/EnergyFlow/releases/tag/${finalAttrs.src.tag}";
|
||||
license = lib.licenses.gpl3Only;
|
||||
maintainers = with lib.maintainers; [ veprbl ];
|
||||
};
|
||||
}
|
||||
})
|
||||
|
||||
@@ -9,14 +9,14 @@
|
||||
|
||||
buildPythonPackage (finalAttrs: {
|
||||
pname = "hf-xet";
|
||||
version = "1.4.2";
|
||||
version = "1.4.3";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "huggingface";
|
||||
repo = "xet-core";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-UdHEpJztlVI8LPs8Ne9sKe1Nv3kVVk4YLxQ3W8sUPbQ=";
|
||||
hash = "sha256-zAliMR2d2j6ynHQmAljQ8XgDyjuPxNawI1bZks5aRgs=";
|
||||
};
|
||||
|
||||
sourceRoot = "${finalAttrs.src.name}/hf_xet";
|
||||
@@ -28,7 +28,7 @@ buildPythonPackage (finalAttrs: {
|
||||
src
|
||||
sourceRoot
|
||||
;
|
||||
hash = "sha256-GV+XY5uV57yQWVGdRLpGU3eD8Gz2gy6p7OHlF+mlJI4=";
|
||||
hash = "sha256-TOgBT0l7TvJamVdIAdAUFRWs8AMRRY+Ydoh6e+3dEp0=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -25,6 +25,9 @@
|
||||
toml,
|
||||
fastai,
|
||||
fastcore,
|
||||
# gradio
|
||||
gradio,
|
||||
requests,
|
||||
# mcp
|
||||
mcp,
|
||||
|
||||
@@ -34,14 +37,14 @@
|
||||
|
||||
buildPythonPackage (finalAttrs: {
|
||||
pname = "huggingface-hub";
|
||||
version = "1.5.0";
|
||||
version = "1.9.0";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "huggingface";
|
||||
repo = "huggingface_hub";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-XuqZvTu3DuncGpRWXipxtDLY2alY7QVm89ZmpgTdfVo=";
|
||||
hash = "sha256-7spvenDWuSDVTlcbOQd8oJ3bwzsyuQDIyMiVSyFIhuQ=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
@@ -72,6 +75,10 @@ buildPythonPackage (finalAttrs: {
|
||||
fastai
|
||||
fastcore
|
||||
];
|
||||
gradio = [
|
||||
gradio
|
||||
requests
|
||||
];
|
||||
hf_xet = [
|
||||
hf-xet
|
||||
];
|
||||
|
||||
@@ -8,14 +8,14 @@
|
||||
|
||||
buildPythonPackage (finalAttrs: {
|
||||
pname = "iamdata";
|
||||
version = "0.1.202604041";
|
||||
version = "0.1.202604051";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "cloud-copilot";
|
||||
repo = "iam-data-python";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-nFV0iZr01YkjAFXjkYmgFHuUNhGsX2pHjSiRrlyt6uI=";
|
||||
hash = "sha256-mMIHQGLMOpxq1ql3fEArQWJ9YDg64JCTaDfXiIluOcA=";
|
||||
};
|
||||
|
||||
__darwinAllowLocalNetworking = true;
|
||||
|
||||
@@ -1,25 +1,39 @@
|
||||
{
|
||||
lib,
|
||||
autograd,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
cvxopt,
|
||||
|
||||
# build-system
|
||||
cython,
|
||||
numpy,
|
||||
setuptools,
|
||||
|
||||
# dependencies
|
||||
scipy,
|
||||
|
||||
# optional-dependencies
|
||||
# backend-jax
|
||||
jax,
|
||||
jaxlib,
|
||||
matplotlib,
|
||||
numpy,
|
||||
# backend-tf
|
||||
tensorflow,
|
||||
# backend-torch
|
||||
torch,
|
||||
# cvxopt
|
||||
cvxopt,
|
||||
# dr
|
||||
scikit-learn,
|
||||
pymanopt,
|
||||
autograd,
|
||||
# plot
|
||||
matplotlib,
|
||||
|
||||
# tests
|
||||
pytestCheckHook,
|
||||
pytest-cov-stub,
|
||||
scikit-learn,
|
||||
scipy,
|
||||
setuptools,
|
||||
tensorflow,
|
||||
torch,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
buildPythonPackage (finalAttrs: {
|
||||
pname = "pot";
|
||||
version = "0.9.6.post1";
|
||||
pyproject = true;
|
||||
@@ -27,14 +41,23 @@ buildPythonPackage rec {
|
||||
src = fetchFromGitHub {
|
||||
owner = "PythonOT";
|
||||
repo = "POT";
|
||||
tag = version;
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-db4fKXqvg9DEmbI/RTQWcOdw+3ccPk74ME0VDsXZlsQ=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace setup.cfg \
|
||||
--replace-fail " --durations=20" "" \
|
||||
--replace-fail " --junit-xml=junit-results.xml" ""
|
||||
|
||||
# we don't need setup.py to find the macos sdk for us
|
||||
sed -i '/sdk_path/d' setup.py
|
||||
'';
|
||||
|
||||
build-system = [
|
||||
setuptools
|
||||
cython
|
||||
numpy
|
||||
setuptools
|
||||
];
|
||||
|
||||
dependencies = [
|
||||
@@ -62,19 +85,6 @@ buildPythonPackage rec {
|
||||
# torch-geometric
|
||||
];
|
||||
plot = [ matplotlib ];
|
||||
all =
|
||||
with optional-dependencies;
|
||||
(
|
||||
backend-numpy
|
||||
++ backend-jax
|
||||
++ backend-cupy
|
||||
++ backend-tf
|
||||
++ backend-torch
|
||||
++ optional-dependencies.cvxopt
|
||||
++ dr
|
||||
++ gnn
|
||||
++ plot
|
||||
);
|
||||
};
|
||||
|
||||
nativeCheckInputs = [
|
||||
@@ -82,15 +92,6 @@ buildPythonPackage rec {
|
||||
pytest-cov-stub
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace setup.cfg \
|
||||
--replace " --durations=20" "" \
|
||||
--replace " --junit-xml=junit-results.xml" ""
|
||||
|
||||
# we don't need setup.py to find the macos sdk for us
|
||||
sed -i '/sdk_path/d' setup.py
|
||||
'';
|
||||
|
||||
# need to run the tests with the built package next to the test directory
|
||||
preCheck = ''
|
||||
pushd build/lib.*
|
||||
@@ -99,6 +100,7 @@ buildPythonPackage rec {
|
||||
|
||||
postCheck = ''
|
||||
popd
|
||||
rm -rf ot
|
||||
'';
|
||||
|
||||
disabledTests = [
|
||||
@@ -125,8 +127,18 @@ buildPythonPackage rec {
|
||||
"test_wasserstein_1d_type_devices"
|
||||
"test_wasserstein"
|
||||
"test_weak_ot_bakends"
|
||||
|
||||
# TypeError: Only integers, slices...
|
||||
"test_emd1d_device_tf"
|
||||
|
||||
# ValueError: setting an array element with a sequence
|
||||
"test_fully_relaxed_path"
|
||||
"test_pointwise_gromov"
|
||||
"test_semi_relaxed_path"
|
||||
|
||||
# ValueError: Unknown Distance Metric: sokalmichener
|
||||
"test_dist"
|
||||
"test_dist_vs_cdist"
|
||||
];
|
||||
|
||||
pythonImportsCheck = [
|
||||
@@ -137,7 +149,9 @@ buildPythonPackage rec {
|
||||
meta = {
|
||||
description = "Python Optimal Transport Library";
|
||||
homepage = "https://pythonot.github.io/";
|
||||
downloadPage = "https://github.com/PythonOT/POT";
|
||||
changelog = "https://github.com/PythonOT/POT/blob/${finalAttrs.src.tag}/RELEASES.md";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ yl3dy ];
|
||||
};
|
||||
}
|
||||
})
|
||||
|
||||
@@ -12,14 +12,14 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "pyanglianwater";
|
||||
version = "3.1.2";
|
||||
version = "3.2.0";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "pantherale0";
|
||||
repo = "pyanglianwater";
|
||||
tag = version;
|
||||
hash = "sha256-Qe1LrM6pwuaWBQYRc7t1xJ38rIT1VlexkRcOGPX/BlA=";
|
||||
hash = "sha256-q6a6YVXjRx7Q2SdWoLzrlOUQ96AjgSjvmfDKz5Fk23g=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
fetchpatch,
|
||||
|
||||
# build-system
|
||||
setuptools,
|
||||
@@ -13,35 +12,27 @@
|
||||
joblib,
|
||||
numpy,
|
||||
packaging,
|
||||
sentencepiece,
|
||||
requests,
|
||||
scipy,
|
||||
sentencepiece,
|
||||
soundfile,
|
||||
torch,
|
||||
torchaudio,
|
||||
tqdm,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
buildPythonPackage (finalAttrs: {
|
||||
pname = "speechbrain";
|
||||
version = "1.0.3";
|
||||
version = "1.1.0";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "speechbrain";
|
||||
repo = "speechbrain";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-H45kTOIO6frbrRu+TP+udn1z60ZEcrShNB9iTCLInQs=";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-98g9HSCD6ahsmCSKSKIY1okYOuzUqVuJO9N9WUiZMPk=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# https://github.com/speechbrain/speechbrain/pull/2988
|
||||
(fetchpatch {
|
||||
name = "torchaudio-2.9-compat.patch";
|
||||
url = "https://github.com/speechbrain/speechbrain/commit/927530fa95e238fbc396000618e839a4a986dd7d.patch";
|
||||
excludes = [ "pyproject.toml" ];
|
||||
hash = "sha256-TJxBQLggX2ZHppUJwMcg9+A9r0r+D20XUfivBFW7y/U=";
|
||||
})
|
||||
];
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
dependencies = [
|
||||
@@ -50,22 +41,24 @@ buildPythonPackage rec {
|
||||
joblib
|
||||
numpy
|
||||
packaging
|
||||
sentencepiece
|
||||
requests
|
||||
scipy
|
||||
sentencepiece
|
||||
soundfile
|
||||
torch
|
||||
torchaudio
|
||||
tqdm
|
||||
];
|
||||
|
||||
doCheck = false; # requires sox backend
|
||||
|
||||
pythonImportsCheck = [ "speechbrain" ];
|
||||
|
||||
doCheck = false; # requires sox backend
|
||||
|
||||
meta = {
|
||||
description = "PyTorch-based Speech Toolkit";
|
||||
homepage = "https://speechbrain.github.io";
|
||||
changelog = "https://github.com/speechbrain/speechbrain/releases/tag/v${version}";
|
||||
changelog = "https://github.com/speechbrain/speechbrain/releases/tag/${finalAttrs.src.tag}";
|
||||
license = lib.licenses.asl20;
|
||||
maintainers = with lib.maintainers; [ GaetanLepage ];
|
||||
};
|
||||
}
|
||||
})
|
||||
|
||||
@@ -9,14 +9,14 @@
|
||||
|
||||
buildPythonPackage (finalAttrs: {
|
||||
pname = "tencentcloud-sdk-python";
|
||||
version = "3.1.70";
|
||||
version = "3.1.71";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "TencentCloud";
|
||||
repo = "tencentcloud-sdk-python";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-4FJtabE6XZ+22AUT/l/t5cujaL8tfLiyCiVEAvnQjsU=";
|
||||
hash = "sha256-zWzwpELLEtkGMtDWBR5v3Z5I47hzZGGGEgG4VC/dN5c=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
@@ -85,6 +85,7 @@
|
||||
gitpython,
|
||||
urllib3,
|
||||
libcst,
|
||||
tomli,
|
||||
# opentelemetry
|
||||
opentelemetry-api,
|
||||
opentelemetry-exporter-otlp,
|
||||
@@ -93,14 +94,14 @@
|
||||
|
||||
buildPythonPackage (finalAttrs: {
|
||||
pname = "transformers";
|
||||
version = "5.3.0";
|
||||
version = "5.5.0";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "huggingface";
|
||||
repo = "transformers";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-5FzsPIG4dFTR2WgcZbdmVwwwY9Dkqu5aprl5uIIalD0=";
|
||||
hash = "sha256-2fOCORAsQDKxp6EPe1OHysPWb/q168z6sCYg89tRXdU=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
@@ -191,6 +192,10 @@ buildPythonPackage (finalAttrs: {
|
||||
urllib3
|
||||
libcst
|
||||
rich
|
||||
tomli
|
||||
];
|
||||
docs = [
|
||||
# hf-docs-builder
|
||||
];
|
||||
benchmark = [
|
||||
# optimum-benchmark
|
||||
|
||||
@@ -1,85 +1,159 @@
|
||||
{
|
||||
lib,
|
||||
buildPackages,
|
||||
buildPythonPackage,
|
||||
fetchPypi,
|
||||
fetchFromGitHub,
|
||||
fetchurl,
|
||||
python,
|
||||
pytestCheckHook,
|
||||
nix-update-script,
|
||||
|
||||
# build-system
|
||||
cython,
|
||||
setuptools,
|
||||
typing-extensions,
|
||||
|
||||
# dependencies
|
||||
rustPlatform,
|
||||
stdenv,
|
||||
tree-sitter,
|
||||
tree-sitter-c-sharp,
|
||||
tree-sitter-embedded-template,
|
||||
tree-sitter-yaml,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "tree-sitter-language-pack";
|
||||
version = "0.13.0";
|
||||
pyproject = true;
|
||||
let
|
||||
parserReleaseUrl =
|
||||
version: "https://github.com/kreuzberg-dev/tree-sitter-language-pack/releases/download/v${version}";
|
||||
|
||||
# Using the GitHub sources necessitates fetching the treesitter grammar parsers by using a vendored script.
|
||||
# The pypi archive has the benefit of already vendoring those dependencies which makes packaging easier on our side
|
||||
# See: https://github.com/Goldziher/tree-sitter-language-pack/blob/main/scripts/clone_vendors.py
|
||||
src = fetchPypi {
|
||||
pname = "tree_sitter_language_pack";
|
||||
inherit version;
|
||||
hash = "sha256-AyA0xeJ7H24AcwuefC28ggO0cA0MaB/QGdbe/PYRg+w=";
|
||||
parserBundleSpecs = {
|
||||
aarch64-darwin = {
|
||||
suffix = "macos-arm64";
|
||||
hash = "sha256-pYrgwhb3BkOEqot5JBi26aXBciGt7/zP/1+HcQT2vsw=";
|
||||
};
|
||||
aarch64-linux = {
|
||||
suffix = "linux-aarch64";
|
||||
hash = "sha256-t1rWm19iExYAZXluMQqlt9bOkEC2UumcxDov8YmYEEQ=";
|
||||
};
|
||||
x86_64-linux = {
|
||||
suffix = "linux-x86_64";
|
||||
hash = "sha256-o4IpLZDitTsHfF2KMnyB3Wry7Hig7Byxd0JLcZPybJ0=";
|
||||
};
|
||||
};
|
||||
in
|
||||
buildPythonPackage (finalAttrs: {
|
||||
pname = "tree-sitter-language-pack";
|
||||
pyproject = true;
|
||||
version = "1.4.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kreuzberg-dev";
|
||||
repo = "tree-sitter-language-pack";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-kN2htitEOo+JF6DCrC4RHmHkZXnUA0fUo2jSbMELQHI=";
|
||||
};
|
||||
|
||||
# Upstream bumped dependencies aggressively, but we can still use older
|
||||
# versions since the newer ones aren’t packaged in nixpkgs. We can't use
|
||||
# pythonRelaxDepsHook here because it runs in postBuild, while the dependency
|
||||
# check occurs during the build phase.
|
||||
postPatch = ''
|
||||
substituteInPlace pyproject.toml \
|
||||
--replace-fail "typing-extensions>=4.15.0" "typing-extensions>=4.14.1"
|
||||
'';
|
||||
cargoDeps = rustPlatform.fetchCargoVendor {
|
||||
inherit (finalAttrs)
|
||||
pname
|
||||
version
|
||||
src
|
||||
;
|
||||
hash = "sha256-ii3rvAfs4xMSyEEDjUrjL2SAONd0ARCVhwQNCJLwuCk=";
|
||||
};
|
||||
|
||||
nativeCheckInputs = [
|
||||
pytestCheckHook
|
||||
buildAndTestSubdir = "crates/ts-pack-python";
|
||||
|
||||
# Pin the release metadata and per-platform parser archive so runtime use stays offline.
|
||||
parserManifest = fetchurl {
|
||||
url = "${parserReleaseUrl finalAttrs.version}/parsers.json";
|
||||
hash = "sha256-8utASonvrLzOjxZcmRuzuFSGtYe5sEoMU+xz++bfmkk=";
|
||||
};
|
||||
|
||||
parserBundle =
|
||||
let
|
||||
spec =
|
||||
parserBundleSpecs.${stdenv.hostPlatform.system}
|
||||
or (throw "tree-sitter-language-pack parser bundle is unavailable for ${stdenv.hostPlatform.system}");
|
||||
in
|
||||
fetchurl {
|
||||
url = "${parserReleaseUrl finalAttrs.version}/parsers-${spec.suffix}.tar.zst";
|
||||
inherit (spec) hash;
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
buildPackages.zstd
|
||||
rustPlatform.cargoSetupHook
|
||||
rustPlatform.maturinBuildHook
|
||||
];
|
||||
|
||||
build-system = [
|
||||
cython
|
||||
setuptools
|
||||
typing-extensions
|
||||
nativeCheckInputs = [ pytestCheckHook ];
|
||||
|
||||
dependencies = [ tree-sitter ];
|
||||
|
||||
disabledTests = [
|
||||
# tree-sitter-language-pack 1.4.1 upstream smoke tests expect these aliases
|
||||
# to resolve directly in the offline cache, but the packaged bundle still
|
||||
# exposes the underlying parser library names.
|
||||
"test_get_language_returns_non_none"
|
||||
"test_get_parser_for_previously_broken_languages"
|
||||
"test_has_language_for_previously_broken"
|
||||
];
|
||||
|
||||
dependencies = [
|
||||
tree-sitter
|
||||
tree-sitter-c-sharp
|
||||
tree-sitter-embedded-template
|
||||
tree-sitter-yaml
|
||||
];
|
||||
|
||||
pythonRelaxDeps = [
|
||||
"tree-sitter"
|
||||
"tree-sitter-embedded-template"
|
||||
"tree-sitter-yaml"
|
||||
];
|
||||
|
||||
pythonImportsCheck = [
|
||||
"tree_sitter_language_pack"
|
||||
"tree_sitter_language_pack.bindings"
|
||||
];
|
||||
|
||||
# make sure import the built version, not the source one
|
||||
preCheck = ''
|
||||
rm -r tree_sitter_language_pack
|
||||
# Mirror the upstream cache layout: libs live in cache_dir, while the manifest
|
||||
# is expected at cache_dir/../manifest.json.
|
||||
cacheRoot=$PWD/.tree-sitter-language-pack-cache
|
||||
cacheDir="$cacheRoot/libs"
|
||||
mkdir -p "$cacheDir"
|
||||
cp ${finalAttrs.parserManifest} "$cacheRoot/manifest.json"
|
||||
${lib.getExe buildPackages.zstd} -d -c ${finalAttrs.parserBundle} | tar -xvf - -C "$cacheDir" >/dev/null
|
||||
|
||||
# Upstream smoke tests call download APIs even when the parsers are already
|
||||
# available locally, so point them at the pre-fetched cache and short-circuit
|
||||
# redundant network downloads during pytest.
|
||||
cat > conftest.py <<EOF
|
||||
import json
|
||||
from pathlib import Path
|
||||
|
||||
import tree_sitter_language_pack as tslp
|
||||
|
||||
_cache_dir = Path(r"$cacheDir")
|
||||
_manifest_path = _cache_dir.parent / "manifest.json"
|
||||
|
||||
tslp.configure(cache_dir=str(_cache_dir))
|
||||
|
||||
def _manifest_languages():
|
||||
return sorted(json.loads(_manifest_path.read_text())["languages"].keys())
|
||||
|
||||
def _download(names):
|
||||
return 0
|
||||
|
||||
def _download_all():
|
||||
return 0
|
||||
|
||||
tslp.manifest_languages = _manifest_languages
|
||||
tslp.download = _download
|
||||
tslp.download_all = _download_all
|
||||
EOF
|
||||
'';
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
pytestFlagsArray = [
|
||||
"e2e/python/tests"
|
||||
"tests/test_apps/python/smoke_test.py"
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
cacheRoot=$out/share/tree-sitter-language-pack
|
||||
cacheDir="$cacheRoot/libs"
|
||||
mkdir -p "$cacheDir"
|
||||
cp ${finalAttrs.parserManifest} "$cacheRoot/manifest.json"
|
||||
${lib.getExe buildPackages.zstd} -d -c ${finalAttrs.parserBundle} | tar -xvf - -C "$cacheDir" >/dev/null
|
||||
|
||||
# Make the installed package default to the pre-fetched cache in $out.
|
||||
substituteInPlace $out/${python.sitePackages}/tree_sitter_language_pack/__init__.py \
|
||||
--replace-fail 'SupportedLanguage: TypeAlias = str' $'configure(cache_dir="'$cacheDir$'")\n\nSupportedLanguage: TypeAlias = str'
|
||||
'';
|
||||
|
||||
pythonImportsCheck = [ "tree_sitter_language_pack" ];
|
||||
|
||||
passthru.updateScript = ./update.sh;
|
||||
|
||||
meta = {
|
||||
description = "Comprehensive collection of tree-sitter languages";
|
||||
homepage = "https://github.com/Goldziher/tree-sitter-language-pack";
|
||||
changelog = "https://github.com/Goldziher/tree-sitter-language-pack/releases/tag/v${version}";
|
||||
description = "Comprehensive collection of tree-sitter language parsers with polyglot bindings";
|
||||
homepage = "https://github.com/kreuzberg-dev/tree-sitter-language-pack";
|
||||
changelog = "https://github.com/kreuzberg-dev/tree-sitter-language-pack/releases/tag/v${finalAttrs.version}";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ yzx9 ];
|
||||
platforms = builtins.attrNames parserBundleSpecs;
|
||||
};
|
||||
}
|
||||
})
|
||||
|
||||
@@ -0,0 +1,86 @@
|
||||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -I nixpkgs=./. -i bash -p bash curl jq gnused coreutils nix nix-update
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
PACKAGE_DIR="$(cd -- "$(dirname "$0")" >/dev/null 2>&1 && pwd -P)"
|
||||
NIXPKGS_ROOT="$(cd -- "$PACKAGE_DIR/../../../.." >/dev/null 2>&1 && pwd -P)"
|
||||
PACKAGE_FILE="$PACKAGE_DIR/default.nix"
|
||||
ATTR_PATH="${UPDATE_NIX_ATTR_PATH:-python3Packages.tree-sitter-language-pack}"
|
||||
|
||||
latest_version() {
|
||||
curl -sL ${GITHUB_TOKEN:+ -H "Authorization: Bearer $GITHUB_TOKEN"} \
|
||||
"https://api.github.com/repos/kreuzberg-dev/tree-sitter-language-pack/releases/latest" \
|
||||
| jq -r '.tag_name | sub("^v"; "")'
|
||||
}
|
||||
|
||||
replace_value() {
|
||||
local pattern="$1"
|
||||
local replacement="$2"
|
||||
sed -i "s|$pattern|$replacement|g" "$PACKAGE_FILE"
|
||||
}
|
||||
|
||||
replace_perl() {
|
||||
local pattern="$1"
|
||||
local replacement="$2"
|
||||
perl -0pi -e "s|$pattern|$replacement|s" "$PACKAGE_FILE"
|
||||
}
|
||||
|
||||
prefetch_sri() {
|
||||
local url="$1"
|
||||
local hash
|
||||
hash="$(nix-prefetch-url --type sha256 "$url")"
|
||||
nix hash convert --hash-algo sha256 --to sri "$hash"
|
||||
}
|
||||
|
||||
version="${1:-$(latest_version)}"
|
||||
|
||||
if [[ "$version" == "${UPDATE_NIX_OLD_VERSION:-}" ]]; then
|
||||
echo "$ATTR_PATH is already at $version"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
nix-update "$ATTR_PATH" --version "$version"
|
||||
|
||||
release_url="https://github.com/kreuzberg-dev/tree-sitter-language-pack/releases/download/v$version"
|
||||
|
||||
manifest_hash="$(prefetch_sri "$release_url/parsers.json")"
|
||||
aarch64_darwin_hash="$(prefetch_sri "$release_url/parsers-macos-arm64.tar.zst")"
|
||||
aarch64_linux_hash="$(prefetch_sri "$release_url/parsers-linux-aarch64.tar.zst")"
|
||||
x86_64_linux_hash="$(prefetch_sri "$release_url/parsers-linux-x86_64.tar.zst")"
|
||||
|
||||
replace_perl '(parserManifest = fetchurl \{\n url = "\$\{parserReleaseUrl finalAttrs\.version\}/parsers\.json";\n hash = ")[^"]*(";)' "\${1}$manifest_hash\${2}"
|
||||
replace_perl '(aarch64-darwin = \{\n suffix = "macos-arm64";\n hash = ")[^"]*(";)' "\${1}$aarch64_darwin_hash\${2}"
|
||||
replace_perl '(aarch64-linux = \{\n suffix = "linux-aarch64";\n hash = ")[^"]*(";)' "\${1}$aarch64_linux_hash\${2}"
|
||||
replace_perl '(x86_64-linux = \{\n suffix = "linux-x86_64";\n hash = ")[^"]*(";)' "\${1}$x86_64_linux_hash\${2}"
|
||||
|
||||
old_cargo_hash="$(
|
||||
perl -0ne 'print "$1\n" if /cargoDeps = rustPlatform\.fetchCargoVendor \{\n(?:.*\n)*? hash = "([^"]+)";/s' "$PACKAGE_FILE"
|
||||
)"
|
||||
fake_hash='sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA='
|
||||
replace_value "$old_cargo_hash" "$fake_hash"
|
||||
|
||||
set +e
|
||||
build_output="$(
|
||||
cd "$NIXPKGS_ROOT" &&
|
||||
nix build ".#$ATTR_PATH" 2>&1 >/dev/null
|
||||
)"
|
||||
build_status=$?
|
||||
set -e
|
||||
|
||||
if [[ $build_status -eq 0 ]]; then
|
||||
echo "expected cargo hash mismatch build to fail, but it succeeded" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
new_cargo_hash="$(printf '%s\n' "$build_output" | sed -n 's/.*got:[[:space:]]*\(sha256-[A-Za-z0-9+/=]*\).*/\1/p' | head -n1)"
|
||||
|
||||
if [[ -z "$new_cargo_hash" ]]; then
|
||||
printf '%s\n' "$build_output" >&2
|
||||
echo "failed to extract cargo hash from build output" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
replace_value "$fake_hash" "$new_cargo_hash"
|
||||
|
||||
echo "updated $ATTR_PATH to $version"
|
||||
@@ -18,6 +18,8 @@
|
||||
pyannote-audio,
|
||||
torch,
|
||||
torchaudio,
|
||||
torchcodec,
|
||||
torchvision,
|
||||
transformers,
|
||||
triton,
|
||||
|
||||
@@ -25,6 +27,9 @@
|
||||
ffmpeg,
|
||||
ctranslate2-cpp, # alias for `pkgs.ctranslate2`, required due to colliding with the `ctranslate2` Python module.
|
||||
|
||||
# tests
|
||||
versionCheckHook,
|
||||
|
||||
# enable GPU support
|
||||
cudaSupport ? torch.cudaSupport,
|
||||
}:
|
||||
@@ -39,14 +44,14 @@ let
|
||||
in
|
||||
buildPythonPackage (finalAttrs: {
|
||||
pname = "whisperx";
|
||||
version = "3.8.1";
|
||||
version = "3.8.5";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "m-bain";
|
||||
repo = "whisperX";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-2HjQtb8k3px0kqXowKtCXkiG2GuKLCuCtDOPYYa/tbc=";
|
||||
hash = "sha256-dFjB0X7JUqv7r64QLbsQwJNRWti+xGUOWKkhOxJE1tg=";
|
||||
};
|
||||
|
||||
# As `makeWrapperArgs` does not apply to the module, and whisperx depends on `ffmpeg`,
|
||||
@@ -61,6 +66,7 @@ buildPythonPackage (finalAttrs: {
|
||||
build-system = [ setuptools ];
|
||||
|
||||
pythonRelaxDeps = [
|
||||
"huggingface-hub"
|
||||
"torch"
|
||||
"torchaudio"
|
||||
];
|
||||
@@ -75,14 +81,18 @@ buildPythonPackage (finalAttrs: {
|
||||
pyannote-audio
|
||||
torch
|
||||
torchaudio
|
||||
torchcodec
|
||||
torchvision
|
||||
transformers
|
||||
]
|
||||
++ lib.optionals (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isx86_64) [
|
||||
triton
|
||||
];
|
||||
|
||||
# No tests in repository
|
||||
doCheck = false;
|
||||
# No python tests in repository
|
||||
nativeCheckInputs = [
|
||||
versionCheckHook
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "whisperx" ];
|
||||
|
||||
|
||||
+3
-3
@@ -6,16 +6,16 @@
|
||||
|
||||
buildNpmPackage rec {
|
||||
pname = "material-you-utilities";
|
||||
version = "2.1.4";
|
||||
version = "2.1.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Nerwyn";
|
||||
repo = "material-you-utilities";
|
||||
tag = version;
|
||||
hash = "sha256-/GsZjH6BQUlPjVzvdbAF1OMygA0m67FkQoKcmVOngow=";
|
||||
hash = "sha256-Z4O7HsV20/5aUvblzR7SLLONr3PrV1Jk91D2badaDl8=";
|
||||
};
|
||||
|
||||
npmDepsHash = "sha256-+stnR6EFH/5JnbkxZ1y9Nv4MeZKmqHzvHrR9pA9lAys=";
|
||||
npmDepsHash = "sha256-omcnqwwJPYWF2A0hn4ob+mro6cX/ohIh15MrWoLcSzU=";
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
@@ -4591,6 +4591,8 @@ self: super: with self; {
|
||||
|
||||
docutils = callPackage ../development/python-modules/docutils { };
|
||||
|
||||
docutils-stubs = callPackage ../development/python-modules/docutils-stubs { };
|
||||
|
||||
docx2python = callPackage ../development/python-modules/docx2python { };
|
||||
|
||||
docx2txt = callPackage ../development/python-modules/docx2txt { };
|
||||
|
||||
@@ -18,6 +18,7 @@ lib: pkgs: actuallySplice:
|
||||
|
||||
let
|
||||
inherit (lib.customisation) mapCrossIndex renameCrossIndexFrom;
|
||||
inherit (lib) mapAttrs;
|
||||
|
||||
spliceReal =
|
||||
inputs:
|
||||
@@ -31,8 +32,6 @@ let
|
||||
# The same pkgs sets one probably intends
|
||||
// inputs.buildHost
|
||||
// inputs.hostTarget;
|
||||
# perf: mapAttrs defers merge calls until a key is selected, avoiding
|
||||
# ~60k eager closures that listToAttrs+map would create.
|
||||
merge =
|
||||
name: defaultValue:
|
||||
let
|
||||
@@ -66,7 +65,7 @@ let
|
||||
# `__functor__` for functions instead.
|
||||
defaultValue;
|
||||
in
|
||||
builtins.mapAttrs merge mash;
|
||||
mapAttrs merge mash;
|
||||
|
||||
splicePackages =
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user