Merge remote-tracking branch 'origin/master' into staging-next
This commit is contained in:
@@ -171,11 +171,11 @@ jobs:
|
||||
run: |
|
||||
# Get the latest eval.yml workflow run for the PR's target commit
|
||||
if ! run=$(gh api --method GET /repos/"$REPOSITORY"/actions/workflows/eval.yml/runs \
|
||||
-f head_sha="$BASE_SHA" -f event=push \
|
||||
-f head_sha="$TARGET_SHA" -f event=push \
|
||||
--jq '.workflow_runs | sort_by(.run_started_at) | .[-1]') \
|
||||
|| [[ -z "$run" ]]; then
|
||||
echo "Could not find an eval.yml workflow run for $BASE_SHA, cannot make comparison"
|
||||
exit 0
|
||||
echo "Could not find an eval.yml workflow run for $TARGET_SHA, cannot make comparison"
|
||||
exit 1
|
||||
fi
|
||||
echo "Comparing against $(jq .html_url <<< "$run")"
|
||||
runId=$(jq .id <<< "$run")
|
||||
@@ -189,13 +189,13 @@ jobs:
|
||||
|
||||
if [[ "$conclusion" != "success" ]]; then
|
||||
echo "Workflow was not successful (conclusion: $conclusion), cannot make comparison"
|
||||
exit 0
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "targetRunId=$runId" >> "$GITHUB_OUTPUT"
|
||||
env:
|
||||
REPOSITORY: ${{ github.repository }}
|
||||
BASE_SHA: ${{ needs.attrs.outputs.targetSha }}
|
||||
TARGET_SHA: ${{ needs.attrs.outputs.targetSha }}
|
||||
GH_TOKEN: ${{ github.token }}
|
||||
|
||||
- uses: actions/download-artifact@v4
|
||||
|
||||
@@ -5974,6 +5974,12 @@
|
||||
githubId = 523628;
|
||||
name = "Jonathan Strickland";
|
||||
};
|
||||
djds = {
|
||||
email = "git@djds.dev";
|
||||
github = "djds";
|
||||
githubId = 4218822;
|
||||
name = "djds";
|
||||
};
|
||||
Dje4321 = {
|
||||
email = "dje4321@gmail.com";
|
||||
github = "dje4321";
|
||||
|
||||
@@ -149,6 +149,8 @@
|
||||
|
||||
- [git-worktree-switcher](https://github.com/mateusauler/git-worktree-switcher), switch between git worktrees with speed. Available as [programs.git-worktree-switcher](#opt-programs.git-worktree-switcher.enable)
|
||||
|
||||
- [GLPI-Agent](https://github.com/glpi-project/glpi-agent), GLPI Agent. Available as [services.glpiAgent](options.html#opt-services.glpiAgent.enable).
|
||||
|
||||
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
|
||||
|
||||
## Backward Incompatibilities {#sec-release-25.05-incompatibilities}
|
||||
|
||||
@@ -925,6 +925,7 @@
|
||||
./services/monitoring/gatus.nix
|
||||
./services/monitoring/gitwatch.nix
|
||||
./services/monitoring/glances.nix
|
||||
./services/monitoring/glpi-agent.nix
|
||||
./services/monitoring/goss.nix
|
||||
./services/monitoring/grafana-agent.nix
|
||||
./services/monitoring/grafana-image-renderer.nix
|
||||
|
||||
@@ -126,11 +126,8 @@ let
|
||||
network = lib.mkOption {
|
||||
type = lib.types.nullOr (
|
||||
lib.types.enum [
|
||||
"goerli"
|
||||
"holesky"
|
||||
"rinkeby"
|
||||
"yolov2"
|
||||
"ropsten"
|
||||
"sepolia"
|
||||
]
|
||||
);
|
||||
default = null;
|
||||
|
||||
@@ -0,0 +1,156 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
utils,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
cfg = config.services.recyclarr;
|
||||
format = pkgs.formats.yaml { };
|
||||
stateDir = "/var/lib/recyclarr";
|
||||
configPath = "${stateDir}/config.json";
|
||||
in
|
||||
{
|
||||
options.services.recyclarr = {
|
||||
enable = lib.mkEnableOption "recyclarr service";
|
||||
|
||||
package = lib.mkPackageOption pkgs "recyclarr" { };
|
||||
|
||||
configuration = lib.mkOption {
|
||||
type = format.type;
|
||||
default = { };
|
||||
example = {
|
||||
sonarr = [
|
||||
{
|
||||
instance_name = "main";
|
||||
base_url = "http://localhost:8989";
|
||||
api_key = {
|
||||
_secret = "/run/credentials/recyclarr.service/sonarr-api_key";
|
||||
};
|
||||
}
|
||||
];
|
||||
radarr = [
|
||||
{
|
||||
instance_name = "main";
|
||||
base_url = "http://localhost:7878";
|
||||
api_key = {
|
||||
_secret = "/run/credentials/recyclarr.service/radarr-api_key";
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
description = lib.mdDoc ''
|
||||
Recyclarr YAML configuration as a Nix attribute set.
|
||||
|
||||
For detailed configuration options and examples, see the
|
||||
[official configuration reference](https://recyclarr.dev/wiki/yaml/config-reference/).
|
||||
|
||||
The configuration is processed using [utils.genJqSecretsReplacementSnippet](https://github.com/NixOS/nixpkgs/blob/master/nixos/lib/utils.nix#L232-L331) to handle secret substitution.
|
||||
|
||||
To avoid permission issues, secrets should be provided via systemd's credential mechanism:
|
||||
|
||||
```nix
|
||||
systemd.services.recyclarr.serviceConfig.LoadCredential = [
|
||||
"radarr-api_key:''${config.sops.secrets.radarr-api_key.path}"
|
||||
];
|
||||
'';
|
||||
};
|
||||
|
||||
schedule = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "daily";
|
||||
description = "When to run recyclarr in systemd calendar format.";
|
||||
};
|
||||
|
||||
command = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "sync";
|
||||
description = "The recyclarr command to run (e.g., sync).";
|
||||
};
|
||||
|
||||
user = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "recyclarr";
|
||||
description = "User account under which recyclarr runs.";
|
||||
};
|
||||
|
||||
group = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "recyclarr";
|
||||
description = "Group under which recyclarr runs.";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
|
||||
users.users = lib.mkIf (cfg.user == "recyclarr") {
|
||||
recyclarr = {
|
||||
isSystemUser = true;
|
||||
description = "recyclarr user";
|
||||
home = stateDir;
|
||||
group = cfg.group;
|
||||
};
|
||||
};
|
||||
|
||||
users.groups = lib.mkIf (cfg.group == "recyclarr") {
|
||||
${cfg.group} = { };
|
||||
};
|
||||
|
||||
systemd.services.recyclarr = {
|
||||
description = "Recyclarr Service";
|
||||
|
||||
# YAML is a JSON super-set
|
||||
preStart = utils.genJqSecretsReplacementSnippet cfg.configuration configPath;
|
||||
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
User = cfg.user;
|
||||
Group = cfg.group;
|
||||
StateDirectory = "recyclarr";
|
||||
ExecStart = "${lib.getExe cfg.package} ${cfg.command} --app-data ${stateDir} --config ${configPath}";
|
||||
|
||||
ProtectSystem = "strict";
|
||||
ProtectHome = true;
|
||||
PrivateTmp = true;
|
||||
PrivateDevices = true;
|
||||
ProtectHostname = true;
|
||||
ProtectClock = true;
|
||||
ProtectKernelTunables = true;
|
||||
ProtectKernelModules = true;
|
||||
ProtectKernelLogs = true;
|
||||
ProtectControlGroups = true;
|
||||
|
||||
PrivateNetwork = false;
|
||||
RestrictAddressFamilies = [
|
||||
"AF_INET"
|
||||
"AF_INET6"
|
||||
];
|
||||
|
||||
NoNewPrivileges = true;
|
||||
RestrictSUIDSGID = true;
|
||||
RemoveIPC = true;
|
||||
|
||||
ReadWritePaths = [ stateDir ];
|
||||
|
||||
CapabilityBoundingSet = "";
|
||||
|
||||
LockPersonality = true;
|
||||
RestrictRealtime = true;
|
||||
};
|
||||
};
|
||||
|
||||
systemd.timers.recyclarr = {
|
||||
description = "Recyclarr Timer";
|
||||
wantedBy = [ "timers.target" ];
|
||||
partOf = [ "recyclarr.service" ];
|
||||
|
||||
timerConfig = {
|
||||
OnCalendar = cfg.schedule;
|
||||
Persistent = true;
|
||||
RandomizedDelaySec = "5m";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,91 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
cfg = config.services.glpiAgent;
|
||||
|
||||
settingsType =
|
||||
with lib.types;
|
||||
attrsOf (oneOf [
|
||||
bool
|
||||
int
|
||||
str
|
||||
(listOf str)
|
||||
]);
|
||||
|
||||
formatValue =
|
||||
v:
|
||||
if lib.isBool v then
|
||||
if v then "1" else "0"
|
||||
else if lib.isList v then
|
||||
lib.concatStringsSep "," v
|
||||
else
|
||||
toString v;
|
||||
|
||||
configContent = lib.concatStringsSep "\n" (
|
||||
lib.mapAttrsToList (k: v: "${k} = ${formatValue v}") cfg.settings
|
||||
);
|
||||
|
||||
configFile = pkgs.writeText "agent.cfg" configContent;
|
||||
|
||||
in
|
||||
{
|
||||
options = {
|
||||
services.glpiAgent = {
|
||||
enable = lib.mkEnableOption "GLPI Agent";
|
||||
|
||||
package = lib.mkPackageOption pkgs "glpi-agent" { };
|
||||
|
||||
settings = lib.mkOption {
|
||||
type = settingsType;
|
||||
default = { };
|
||||
description = ''
|
||||
GLPI Agent configuration options.
|
||||
See https://glpi-agent.readthedocs.io/en/latest/configuration.html for all available options.
|
||||
|
||||
The 'server' option is mandatory and must point to your GLPI server.
|
||||
'';
|
||||
example = lib.literalExpression ''
|
||||
{
|
||||
server = [ "https://glpi.example.com/inventory" ];
|
||||
delaytime = 3600;
|
||||
tag = "production";
|
||||
logger = [ "stderr" "file" ];
|
||||
debug = 1;
|
||||
"no-category" = [ "printer" "software" ];
|
||||
}
|
||||
'';
|
||||
};
|
||||
|
||||
stateDir = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "/var/lib/glpi-agent";
|
||||
description = "Directory where GLPI Agent stores its state.";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
assertions = [
|
||||
{
|
||||
assertion = cfg.settings ? server;
|
||||
message = "GLPI Agent requires a server to be configured in services.glpiAgent.settings.server";
|
||||
}
|
||||
];
|
||||
|
||||
systemd.services.glpi-agent = {
|
||||
description = "GLPI Agent";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "network.target" ];
|
||||
|
||||
serviceConfig = {
|
||||
ExecStart = "${lib.getExe cfg.package} --conf-file ${configFile} --vardir ${cfg.stateDir} --daemon --no-fork";
|
||||
Restart = "on-failure";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
+23
-2
@@ -15,7 +15,8 @@ import ./make-test-python.nix (
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
services.geth."testnet" = {
|
||||
|
||||
services.geth."holesky" = {
|
||||
enable = true;
|
||||
port = 30304;
|
||||
network = "holesky";
|
||||
@@ -28,15 +29,31 @@ import ./make-test-python.nix (
|
||||
port = 18551;
|
||||
};
|
||||
};
|
||||
|
||||
services.geth."sepolia" = {
|
||||
enable = true;
|
||||
port = 30305;
|
||||
network = "sepolia";
|
||||
http = {
|
||||
enable = true;
|
||||
port = 28545;
|
||||
};
|
||||
authrpc = {
|
||||
enable = true;
|
||||
port = 28551;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
start_all()
|
||||
|
||||
machine.wait_for_unit("geth-mainnet.service")
|
||||
machine.wait_for_unit("geth-testnet.service")
|
||||
machine.wait_for_unit("geth-holesky.service")
|
||||
machine.wait_for_unit("geth-sepolia.service")
|
||||
machine.wait_for_open_port(8545)
|
||||
machine.wait_for_open_port(18545)
|
||||
machine.wait_for_open_port(28545)
|
||||
|
||||
machine.succeed(
|
||||
'geth attach --exec "eth.blockNumber" http://localhost:8545 | grep \'^0$\' '
|
||||
@@ -45,6 +62,10 @@ import ./make-test-python.nix (
|
||||
machine.succeed(
|
||||
'geth attach --exec "eth.blockNumber" http://localhost:18545 | grep \'^0$\' '
|
||||
)
|
||||
|
||||
machine.succeed(
|
||||
'geth attach --exec "eth.blockNumber" http://localhost:28545 | grep \'^0$\' '
|
||||
)
|
||||
'';
|
||||
}
|
||||
)
|
||||
|
||||
@@ -9,7 +9,7 @@ let
|
||||
versions =
|
||||
if stdenv.hostPlatform.isLinux then
|
||||
{
|
||||
stable = "0.0.82";
|
||||
stable = "0.0.83";
|
||||
ptb = "0.0.128";
|
||||
canary = "0.0.581";
|
||||
development = "0.0.68";
|
||||
@@ -26,7 +26,7 @@ let
|
||||
x86_64-linux = {
|
||||
stable = fetchurl {
|
||||
url = "https://stable.dl2.discordapp.net/apps/linux/${version}/discord-${version}.tar.gz";
|
||||
hash = "sha256-L8Lwe5UavmbW1s3gsSJiHjbiZnNtyEsEJzlrN0Fgc3w=";
|
||||
hash = "sha256-thBnSYjYa2QEHyxIhEiA73hMs/S8n808oq8IAKtA7VI=";
|
||||
};
|
||||
ptb = fetchurl {
|
||||
url = "https://ptb.dl2.discordapp.net/apps/linux/${version}/discord-ptb-${version}.tar.gz";
|
||||
|
||||
@@ -75,7 +75,7 @@ stdenv.mkDerivation rec {
|
||||
propagatedBuildInputs = with ocamlPackages; [
|
||||
camlzip
|
||||
menhirLib
|
||||
num
|
||||
(if lib.versionAtLeast version "1.8.0" then zarith else num)
|
||||
re
|
||||
sexplib
|
||||
];
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
{
|
||||
"version": "17.8.0",
|
||||
"repo_hash": "0a6a05hip2f505yvfi4v7849cmpb1kzghsf6ivy6lrhc06ksxs19",
|
||||
"version": "17.8.1",
|
||||
"repo_hash": "17m0aw8gd58gs1vxzk6pbqnhrhkvc172kn47pj5p6sgq3li3mcgf",
|
||||
"yarn_hash": "0d1nzgji3y90gcx92pl0bnqlj5h9ra3r7k1z673fvsj6lzppnx8v",
|
||||
"owner": "gitlab-org",
|
||||
"repo": "gitlab",
|
||||
"rev": "v17.8.0-ee",
|
||||
"rev": "v17.8.1-ee",
|
||||
"passthru": {
|
||||
"GITALY_SERVER_VERSION": "17.8.0",
|
||||
"GITLAB_PAGES_VERSION": "17.8.0",
|
||||
"GITALY_SERVER_VERSION": "17.8.1",
|
||||
"GITLAB_PAGES_VERSION": "17.8.1",
|
||||
"GITLAB_SHELL_VERSION": "14.39.0",
|
||||
"GITLAB_ELASTICSEARCH_INDEXER_VERSION": "5.4.0",
|
||||
"GITLAB_WORKHORSE_VERSION": "17.8.0"
|
||||
"GITLAB_WORKHORSE_VERSION": "17.8.1"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ in
|
||||
buildGoModule rec {
|
||||
pname = "gitlab-workhorse";
|
||||
|
||||
version = "17.8.0";
|
||||
version = "17.8.1";
|
||||
|
||||
# nixpkgs-update: no auto update
|
||||
src = fetchFromGitLab {
|
||||
|
||||
@@ -13,13 +13,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "astroterm";
|
||||
version = "1.0.4";
|
||||
version = "1.0.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "da-luce";
|
||||
repo = "astroterm";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-CYKW/RAQ3a5238cojbpGfTenMQApfaZOHnQMrZ6LWzA=";
|
||||
hash = "sha256-BjqurPp0WI/wI5n2TibnyOqZ3NjRcLYB2MxqqNvTQtw=";
|
||||
};
|
||||
|
||||
bsc5File = fetchurl {
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
lib,
|
||||
python3Packages,
|
||||
fetchFromGitHub,
|
||||
addBinToPathHook,
|
||||
installShellFiles,
|
||||
nix-update-script,
|
||||
}:
|
||||
@@ -24,6 +25,7 @@ python3Packages.buildPythonApplication rec {
|
||||
setuptools
|
||||
]
|
||||
++ [
|
||||
addBinToPathHook
|
||||
installShellFiles
|
||||
];
|
||||
|
||||
@@ -46,7 +48,6 @@ python3Packages.buildPythonApplication rec {
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
export PATH=$out/bin:$PATH
|
||||
installShellCompletion --cmd audible \
|
||||
--bash <(source utils/code_completion/audible-complete-bash.sh) \
|
||||
--fish <(source utils/code_completion/audible-complete-zsh-fish.sh) \
|
||||
|
||||
@@ -126,9 +126,9 @@
|
||||
|
||||
storage-preview = mkAzExtension rec {
|
||||
pname = "storage-preview";
|
||||
version = "1.0.0b2";
|
||||
version = "1.0.0b5";
|
||||
url = "https://azcliprod.blob.core.windows.net/cli-extensions/storage_preview-${version}-py2.py3-none-any.whl";
|
||||
hash = "sha256-Lej6QhYikoowi7cASMP99AQAutOzSv1gHQs6/Ni4J2Q=";
|
||||
hash = "sha256-gs4uQrnpXm03iPyP+i5DnFWvQ43+ZHN4wSZiNRVZU7g=";
|
||||
description = "Provides a preview for upcoming storage features";
|
||||
propagatedBuildInputs = with python3Packages; [ azure-core ];
|
||||
meta.maintainers = with lib.maintainers; [ katexochen ];
|
||||
|
||||
@@ -9,13 +9,13 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "cedar";
|
||||
version = "4.3.0";
|
||||
version = "4.3.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "cedar-policy";
|
||||
repo = "cedar";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-E3x+FfjLNUpfu00D+UALc73STodNW2Kvfo/4x6hORiY=";
|
||||
hash = "sha256-1EJvLQDQQTiNwPe0Ynt6VI3RD/3jGbt/0H7pzGcl1wA=";
|
||||
};
|
||||
|
||||
useFetchCargoVendor = true;
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
fetchpatch,
|
||||
rustPlatform,
|
||||
pkg-config,
|
||||
dtc,
|
||||
@@ -11,25 +10,17 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "cloud-hypervisor";
|
||||
version = "43.0";
|
||||
version = "44.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "cloud-hypervisor";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
hash = "sha256-drxJtlvBpkK3I7Ob3+pH4KLUq53GWXe1pmv7CI3bbP4=";
|
||||
hash = "sha256-2nA8bhezmGa6Gu420nxDrgW0SonTQv1WoGYmBwm7/bI=";
|
||||
};
|
||||
|
||||
cargoPatches = [
|
||||
(fetchpatch {
|
||||
name = "kvm-ioctls-0.19.1.patch";
|
||||
url = "https://github.com/cloud-hypervisor/cloud-hypervisor/commit/eaa21946993276434403d41419a34e564935c8e9.patch";
|
||||
hash = "sha256-G7B0uGl/RAkwub8x1jNNgBrC0dwq/Gv46XpbtTZWD5M=";
|
||||
})
|
||||
];
|
||||
|
||||
useFetchCargoVendor = true;
|
||||
cargoHash = "sha256-F6ukvSwMHRHXoZKgXEFnTAN1B80GsQDW8iqZAvsREr4=";
|
||||
cargoHash = "sha256-e2VbzBPfoy5+YrqZ5mkbxMLpQIOG0x5tIhNG6Tv+u0M=";
|
||||
|
||||
separateDebugInfo = true;
|
||||
|
||||
|
||||
@@ -35,6 +35,8 @@ stdenv.mkDerivation rec {
|
||||
"--with-dnet-libraries=${libdnet}/lib"
|
||||
];
|
||||
|
||||
NIX_CFLAGS_COMPILE = "-Wno-incompatible-pointer-types";
|
||||
|
||||
meta = {
|
||||
description = "Data AcQuisition library (DAQ), for packet I/O";
|
||||
mainProgram = "daq-modules-config";
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
lib,
|
||||
python3Packages,
|
||||
fetchPypi,
|
||||
addBinToPathHook,
|
||||
}:
|
||||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
@@ -32,15 +33,11 @@ python3Packages.buildPythonApplication rec {
|
||||
];
|
||||
|
||||
nativeCheckInputs = with python3Packages; [
|
||||
addBinToPathHook
|
||||
pytestCheckHook
|
||||
testtools
|
||||
];
|
||||
|
||||
# Tests run eliot-tree in out/bin.
|
||||
preCheck = ''
|
||||
export PATH=$out/bin:$PATH
|
||||
'';
|
||||
|
||||
pythonImportsCheck = [ "eliottree" ];
|
||||
|
||||
meta = {
|
||||
|
||||
+46
@@ -0,0 +1,46 @@
|
||||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -i python3 -p nix-prefetch-git
|
||||
|
||||
from dataclasses import dataclass
|
||||
import json
|
||||
import subprocess
|
||||
|
||||
|
||||
@dataclass
|
||||
class GitDependency:
|
||||
name: str
|
||||
url: str
|
||||
revision: str
|
||||
|
||||
|
||||
def get_git_deps(lock_data):
|
||||
for name, data in lock_data["packages"].items():
|
||||
if data["source"] == "git":
|
||||
desc = data["description"]
|
||||
yield GitDependency(
|
||||
name=name,
|
||||
url=desc["url"],
|
||||
revision=desc["resolved-ref"],
|
||||
)
|
||||
|
||||
|
||||
def nix_prefetch_git(url: str, rev: str):
|
||||
result = subprocess.run(
|
||||
["nix-prefetch-git", url, rev],
|
||||
check=True,
|
||||
text=True,
|
||||
stdout=subprocess.PIPE,
|
||||
)
|
||||
return json.loads(result.stdout)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
with open("pubspec.lock.json") as lock_file:
|
||||
lock_data = json.load(lock_file)
|
||||
git_hashes = {}
|
||||
for dep in get_git_deps(lock_data):
|
||||
data = nix_prefetch_git(dep.url, dep.revision)
|
||||
git_hashes[dep.name] = data["hash"]
|
||||
with open("git-hashes.json", "w") as output_file:
|
||||
json.dump(git_hashes, output_file, indent=2)
|
||||
output_file.write("\n")
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"ente_crypto_dart": "sha256-xBBK9BdXh4+OTj+Jkf3zh5sMZjXtvhyuE1R5LFE8iTY=",
|
||||
"flutter_local_authentication": "sha256-r50jr+81ho+7q2PWHLf4VnvNJmhiARZ3s4HUpThCgc0=",
|
||||
"flutter_secure_storage_linux": "sha256-Rp+b6ZRH7F5AnM5UvYzfVjprXkpeeA7V6Ep/oYqDeiM=",
|
||||
"sqflite": "sha256-+XTVtkFJ94VifwnutvUuAqqiyWwrcEiZ3Uz0H4D9zWA="
|
||||
}
|
||||
@@ -17,19 +17,20 @@ let
|
||||
in
|
||||
flutter324.buildFlutterApplication rec {
|
||||
pname = "ente-auth";
|
||||
version = "4.2.8";
|
||||
version = "4.3.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ente-io";
|
||||
repo = "ente";
|
||||
sparseCheckout = [ "auth" ];
|
||||
tag = "auth-v${version}";
|
||||
hash = "sha256-1vIM2MrQF0DO+5SEzIAUeZxOks6PKs3kkTdc09aCk2A=";
|
||||
hash = "sha256-/WWodQcMibwXVexI+XbTZYRkIMtfNHk3bJVBPJHcoqI=";
|
||||
};
|
||||
|
||||
sourceRoot = "${src.name}/auth";
|
||||
|
||||
pubspecLock = lib.importJSON ./pubspec.lock.json;
|
||||
gitHashes = lib.importJSON ./git-hashes.json;
|
||||
|
||||
patches = [
|
||||
# Disable update notifications and auto-update functionality
|
||||
@@ -41,14 +42,6 @@ flutter324.buildFlutterApplication rec {
|
||||
ln -s ${simple-icons} assets/simple-icons
|
||||
'';
|
||||
|
||||
gitHashes = {
|
||||
desktop_webview_window = "sha256-jdNMpzFBgw53asWlGzWUS+hoPdzcL6kcJt2KzjxXf2E=";
|
||||
ente_crypto_dart = "sha256-XBzQ268E0cYljJH6gDS5O0Pmie/GwuhMDlQPfopSqJM=";
|
||||
flutter_local_authentication = "sha256-r50jr+81ho+7q2PWHLf4VnvNJmhiARZ3s4HUpThCgc0=";
|
||||
flutter_secure_storage_linux = "sha256-x45jrJ7pvVyhZlpqRSy3CbwT4Lna6yi/b2IyAilWckg=";
|
||||
sqflite = "sha256-+XTVtkFJ94VifwnutvUuAqqiyWwrcEiZ3Uz0H4D9zWA=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
copyDesktopItems
|
||||
makeWrapper
|
||||
|
||||
@@ -481,7 +481,7 @@
|
||||
"description": {
|
||||
"path": ".",
|
||||
"ref": "HEAD",
|
||||
"resolved-ref": "e2e66ffd03f23bef5e0bb138b5f01b32d8e9b7bb",
|
||||
"resolved-ref": "f91e1545f8263df127762240c4da54a0c42835b2",
|
||||
"url": "https://github.com/ente-io/ente_crypto_dart.git"
|
||||
},
|
||||
"source": "git",
|
||||
@@ -1623,16 +1623,6 @@
|
||||
"source": "hosted",
|
||||
"version": "4.1.0"
|
||||
},
|
||||
"scan": {
|
||||
"dependency": "direct main",
|
||||
"description": {
|
||||
"name": "scan",
|
||||
"sha256": "b343ec36f863a88d41eb4c174b810c055c6bd1f1822b2188ab31aab684fb7cdb",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "1.6.0"
|
||||
},
|
||||
"screen_retriever": {
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
|
||||
@@ -19,16 +19,23 @@ echo "Updating to $short_version"
|
||||
# Subtree needed for lockfile and icons
|
||||
auth_tree="$(gh-curl "https://api.github.com/repos/ente-io/ente/git/trees/$version" | gojq '.tree[] | select(.path == "auth") | .url' --raw-output)"
|
||||
|
||||
pushd "$pkg_dir"
|
||||
|
||||
# Get lockfile, filter out incompatible sqlite dependency and convert to JSON
|
||||
echo "Updating lockfile"
|
||||
pubspec_lock="$(gh-curl "$auth_tree" | gojq '.tree[] | select(.path == "pubspec.lock") | .url' --raw-output)"
|
||||
gh-curl "$pubspec_lock" | gojq '.content | @base64d' --raw-output | gojq --yaml-input 'del(.packages.sqlite3_flutter_libs)' > "$pkg_dir/pubspec.lock.json"
|
||||
gh-curl "$pubspec_lock" | gojq '.content | @base64d' --raw-output | gojq --yaml-input 'del(.packages.sqlite3_flutter_libs)' > pubspec.lock.json
|
||||
|
||||
echo "Updating git hashes"
|
||||
./fetch-git-hashes.py
|
||||
|
||||
# Get rev and hash of simple-icons submodule
|
||||
echo "Updating icons"
|
||||
assets_tree="$(gh-curl "$auth_tree" | gojq '.tree[] | select(.path == "assets") | .url' --raw-output)"
|
||||
simple_icons_rev="$(gh-curl "$assets_tree" | gojq '.tree[] | select(.path == "simple-icons") | .sha' --raw-output)"
|
||||
nix-prefetch-github --rev "$simple_icons_rev" simple-icons simple-icons > "$pkg_dir/simple-icons.json"
|
||||
nix-prefetch-github --rev "$simple_icons_rev" simple-icons simple-icons > simple-icons.json
|
||||
|
||||
popd
|
||||
|
||||
# Update package version and hash
|
||||
echo "Updating package source"
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
libdeflate,
|
||||
bash,
|
||||
coreutils,
|
||||
addBinToPathHook,
|
||||
}:
|
||||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
@@ -54,11 +55,10 @@ python3Packages.buildPythonApplication rec {
|
||||
|
||||
pythonImportsCheck = [ "flye" ];
|
||||
|
||||
nativeCheckInputs = [ python3Packages.pytestCheckHook ];
|
||||
|
||||
preCheck = ''
|
||||
export PATH=$out/bin:$PATH
|
||||
'';
|
||||
nativeCheckInputs = [
|
||||
addBinToPathHook
|
||||
python3Packages.pytestCheckHook
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "De novo assembler for single molecule sequencing reads using repeat graphs";
|
||||
|
||||
@@ -117,7 +117,7 @@ let
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "fwupd";
|
||||
version = "2.0.4";
|
||||
version = "2.0.5";
|
||||
|
||||
# libfwupd goes to lib
|
||||
# daemon, plug-ins and libfwupdplugin go to out
|
||||
@@ -135,7 +135,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
owner = "fwupd";
|
||||
repo = "fwupd";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-0+2B8/ZuniZCeP1LMzLcJsvE3RzlHuw0jd6rlkoW6zY=";
|
||||
hash = "sha256-V07alPn2+bOkKx+oh8qoX4Ie6/5ujO6h/TDzvL3UhvQ=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
fetchFromGitHub,
|
||||
python3,
|
||||
cacert,
|
||||
addBinToPathHook,
|
||||
}:
|
||||
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
@@ -43,17 +44,18 @@ python3.pkgs.buildPythonApplication rec {
|
||||
|
||||
SSL_CERT_FILE = "${cacert}/etc/ssl/certs/ca-bundle.crt";
|
||||
|
||||
nativeCheckInputs = with python3.pkgs; [
|
||||
pytestCheckHook
|
||||
pytest-asyncio
|
||||
];
|
||||
nativeCheckInputs =
|
||||
with python3.pkgs;
|
||||
[
|
||||
pytestCheckHook
|
||||
pytest-asyncio
|
||||
]
|
||||
++ [
|
||||
addBinToPathHook
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "gallia" ];
|
||||
|
||||
preCheck = ''
|
||||
export PATH=$out/bin:$PATH
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Extendable Pentesting Framework for the Automotive Domain";
|
||||
homepage = "https://github.com/Fraunhofer-AISEC/gallia";
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
lib,
|
||||
python3,
|
||||
fetchFromGitHub,
|
||||
addBinToPathHook,
|
||||
writableTmpDirAsHomeHook,
|
||||
}:
|
||||
|
||||
let
|
||||
@@ -31,7 +33,7 @@ python.pkgs.buildPythonApplication rec {
|
||||
src = fetchFromGitHub {
|
||||
owner = "Scony";
|
||||
repo = "godot-gdscript-toolkit";
|
||||
rev = version;
|
||||
tag = version;
|
||||
hash = "sha256-cMGD5Xdf9ElS1NT7Q0NPB//EvUO0MI0VTtps5JRisZ4=";
|
||||
};
|
||||
|
||||
@@ -46,18 +48,16 @@ python.pkgs.buildPythonApplication rec {
|
||||
|
||||
doCheck = true;
|
||||
|
||||
nativeCheckInputs = with python.pkgs; [
|
||||
pytestCheckHook
|
||||
hypothesis
|
||||
];
|
||||
|
||||
preCheck = ''
|
||||
# The tests want to run the installed executables
|
||||
export PATH=$out/bin:$PATH
|
||||
|
||||
# gdtoolkit tries to write cache variables to $HOME/.cache
|
||||
export HOME=$TMP
|
||||
'';
|
||||
nativeCheckInputs =
|
||||
with python.pkgs;
|
||||
[
|
||||
pytestCheckHook
|
||||
hypothesis
|
||||
]
|
||||
++ [
|
||||
addBinToPathHook
|
||||
writableTmpDirAsHomeHook
|
||||
];
|
||||
|
||||
# The tests are not working on NixOS
|
||||
disabledTests = [
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
lib,
|
||||
python3,
|
||||
fetchFromGitHub,
|
||||
addBinToPathHook,
|
||||
writableTmpDirAsHomeHook,
|
||||
}:
|
||||
|
||||
let
|
||||
@@ -30,7 +32,7 @@ python.pkgs.buildPythonApplication rec {
|
||||
src = fetchFromGitHub {
|
||||
owner = "Scony";
|
||||
repo = "godot-gdscript-toolkit";
|
||||
rev = version;
|
||||
tag = version;
|
||||
hash = "sha256-XK6s/WnbTzjCAtV8dbRPLe5olpKUglPLQdttRRMvX70=";
|
||||
};
|
||||
|
||||
@@ -45,18 +47,16 @@ python.pkgs.buildPythonApplication rec {
|
||||
|
||||
doCheck = true;
|
||||
|
||||
nativeCheckInputs = with python.pkgs; [
|
||||
pytestCheckHook
|
||||
hypothesis
|
||||
];
|
||||
|
||||
preCheck = ''
|
||||
# The tests want to run the installed executables
|
||||
export PATH=$out/bin:$PATH
|
||||
|
||||
# gdtoolkit tries to write cache variables to $HOME/.cache
|
||||
export HOME=$TMP
|
||||
'';
|
||||
nativeCheckInputs =
|
||||
with python.pkgs;
|
||||
[
|
||||
pytestCheckHook
|
||||
hypothesis
|
||||
]
|
||||
++ [
|
||||
addBinToPathHook
|
||||
writableTmpDirAsHomeHook
|
||||
];
|
||||
|
||||
# The tests are not working on NixOS
|
||||
disabledTestPaths = [
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
cmake,
|
||||
zlib,
|
||||
enablePython ? true,
|
||||
addBinToPathHook,
|
||||
python3Packages,
|
||||
testers,
|
||||
}:
|
||||
@@ -44,15 +45,16 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
doInstallCheck = enablePython;
|
||||
|
||||
nativeInstallCheckInputs = with python3Packages; [
|
||||
# biopython
|
||||
numpy
|
||||
pytestCheckHook
|
||||
];
|
||||
|
||||
preInstallCheck = ''
|
||||
export PATH=$out/bin:$PATH
|
||||
'';
|
||||
nativeInstallCheckInputs =
|
||||
with python3Packages;
|
||||
[
|
||||
# biopython
|
||||
numpy
|
||||
pytestCheckHook
|
||||
]
|
||||
++ [
|
||||
addBinToPathHook
|
||||
];
|
||||
|
||||
pytestFlagsArray = [ "../tests" ];
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
}:
|
||||
|
||||
let
|
||||
version = "17.8.0";
|
||||
version = "17.8.1";
|
||||
package_version = "v${lib.versions.major version}";
|
||||
gitaly_package = "gitlab.com/gitlab-org/gitaly/${package_version}";
|
||||
|
||||
@@ -21,7 +21,7 @@ let
|
||||
owner = "gitlab-org";
|
||||
repo = "gitaly";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-Ofmhyz4sCcho+tVhAD/X+3BtsrUoysvxHpxwc52Abwc=";
|
||||
hash = "sha256-ahYvfA1PvB/OP3swTABH++pZubejsb3Cohy+Z5fcAo4=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-rR3dsKUoIVDj0NviN8p8g3mSAW8PTNChBacqd23yDf8=";
|
||||
|
||||
@@ -6,14 +6,14 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "gitlab-pages";
|
||||
version = "17.8.0";
|
||||
version = "17.8.1";
|
||||
|
||||
# nixpkgs-update: no auto update
|
||||
src = fetchFromGitLab {
|
||||
owner = "gitlab-org";
|
||||
repo = "gitlab-pages";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-jQwHVSedAtBL5A0Y6OTtpRonSG1k69wdZO011S0D8/E=";
|
||||
hash = "sha256-h+8sgBWYBClrfIsvnD1cUMRE9cxOtfjrGpss2tYdzDg=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-2UtdooVoyoWr4yOPCRBAjkftn29DhJonpJSguHwfHNE=";
|
||||
|
||||
@@ -72,8 +72,8 @@ buildGoModule rec {
|
||||
homepage = "https://geth.ethereum.org/";
|
||||
description = "Official golang implementation of the Ethereum protocol";
|
||||
license = with licenses; [
|
||||
lgpl3Plus
|
||||
gpl3Plus
|
||||
lgpl3Only
|
||||
gpl3Only
|
||||
];
|
||||
maintainers = with maintainers; [ RaghavSood ];
|
||||
mainProgram = "geth";
|
||||
|
||||
@@ -13,13 +13,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "lean4";
|
||||
version = "4.15.0";
|
||||
version = "4.16.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "leanprover";
|
||||
repo = "lean4";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-Xzuk41voBP93vsl3u/bBii9Y6DMfvi6UazKiLLABgHA=";
|
||||
hash = "sha256-RdFTxLk0Yahwhu/oQeTappvWnUtnim63dxN7gmU8Jt8=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
||||
@@ -22,13 +22,13 @@
|
||||
}:
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "mangojuice";
|
||||
version = "0.8.0";
|
||||
version = "0.8.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "radiolamp";
|
||||
repo = "mangojuice";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-LSwn6PIAGX1FIofnmoM2eqnhZBa3gkhlOBUJtdR9gWE=";
|
||||
hash = "sha256-nMLymCOkml5LIvZgvp1NNHyG06KVlmQBMU+N4A4/Xus=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -6,16 +6,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "mubeng";
|
||||
version = "0.21.0";
|
||||
version = "0.22.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kitabisa";
|
||||
repo = "mubeng";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-LApviKG6sgIYtosU0xW4lkBH0iB7MGB4bfG9fPI16iQ=";
|
||||
hash = "sha256-YK3a975l/gMCaWxTB4gEQWAzzX+GRnYSvKksPmp3ZRA=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-Uvxkvj5hodVQ0j05HZdSKammGWy9DxEIBT0VnCW8QuI=";
|
||||
vendorHash = "sha256-qv8gAq7EohMNbwTfLeNhucKAzkYKzRbTpkoG5jTgKI0=";
|
||||
|
||||
ldflags = [
|
||||
"-s"
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
procps,
|
||||
stdenv,
|
||||
versionCheckHook,
|
||||
addBinToPathHook,
|
||||
}:
|
||||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
@@ -77,19 +78,23 @@ python3Packages.buildPythonApplication rec {
|
||||
preCheck = ''
|
||||
chmod -R u+w ../test-data
|
||||
ln -s ../test-data .
|
||||
export PATH=$out/bin:$PATH
|
||||
'';
|
||||
|
||||
# Some tests run subprocess.run() with "ps"
|
||||
nativeCheckInputs = with python3Packages; [
|
||||
procps
|
||||
pytest-cov
|
||||
pytest-xdist
|
||||
pytestCheckHook
|
||||
syrupy
|
||||
pygithub
|
||||
versionCheckHook
|
||||
];
|
||||
nativeCheckInputs =
|
||||
with python3Packages;
|
||||
[
|
||||
procps
|
||||
pytest-cov
|
||||
pytest-xdist
|
||||
pytestCheckHook
|
||||
syrupy
|
||||
pygithub
|
||||
versionCheckHook
|
||||
]
|
||||
++ [
|
||||
addBinToPathHook
|
||||
];
|
||||
|
||||
versionCheckProgramArg = [ "--version" ];
|
||||
|
||||
|
||||
@@ -9,13 +9,13 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "myks";
|
||||
version = "4.3.1";
|
||||
version = "4.4.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mykso";
|
||||
repo = "myks";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-KTz6Tip6kz8AcRW73+MUHUvwr/QT9Z2CvHQNyFXD054=";
|
||||
hash = "sha256-95vqUViXUdLLnpsX81bwS1/EAiJA4XzOCIEd43E4wIQ=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-cTRyQu3lXrIrBHtEYYQIdv0F705KrgyXgDS8meHVRJw=";
|
||||
|
||||
Generated
+41
-6
@@ -779,11 +779,21 @@
|
||||
"version": "2.5.2",
|
||||
"hash": "sha256-idb2hvuDlxl83x0yttGHnTgEQmwLLdUT7QfMeGDXVJE="
|
||||
},
|
||||
{
|
||||
"pname": "Jamarino.IntervalTree",
|
||||
"version": "1.2.2",
|
||||
"hash": "sha256-L8vFWl+1OUviHB+TOkw7Po0+IBLnJMZ1fnvqcYQOuRQ="
|
||||
},
|
||||
{
|
||||
"pname": "JetBrains.Annotations",
|
||||
"version": "2024.3.0",
|
||||
"hash": "sha256-BQYhE7JDJ9Bw588KyWzOvQFvQTiRa0K9maVkI9lZgBc="
|
||||
},
|
||||
{
|
||||
"pname": "Jitbit.FastCache",
|
||||
"version": "1.1.0",
|
||||
"hash": "sha256-UJjNHEyBsi+XRkTF/D5EIIhVMchybD9INtXthXo49bg="
|
||||
},
|
||||
{
|
||||
"pname": "K4os.Compression.LZ4",
|
||||
"version": "1.3.7-beta",
|
||||
@@ -799,6 +809,11 @@
|
||||
"version": "0.3.1",
|
||||
"hash": "sha256-Yyt1uShHigHVCIjPT8jL2Kth9L9yq1MGrCM5w2+tj9o="
|
||||
},
|
||||
{
|
||||
"pname": "LinuxDesktopUtils.XDGDesktopPortal",
|
||||
"version": "1.0.0",
|
||||
"hash": "sha256-DTxWI/DI01Flb4yfSxukaEw6roSzD9iy4Twy1I8/5Mg="
|
||||
},
|
||||
{
|
||||
"pname": "LiveChartsCore",
|
||||
"version": "2.0.0-rc2",
|
||||
@@ -894,6 +909,11 @@
|
||||
"version": "7.0.0",
|
||||
"hash": "sha256-1e031E26iraIqun84ad0fCIR4MJZ1hcQo4yFN+B7UfE="
|
||||
},
|
||||
{
|
||||
"pname": "Microsoft.Bcl.AsyncInterfaces",
|
||||
"version": "8.0.0",
|
||||
"hash": "sha256-9aWmiwMJKrKr9ohD1KSuol37y+jdDxPGJct3m2/Bknw="
|
||||
},
|
||||
{
|
||||
"pname": "Microsoft.Build.Tasks.Git",
|
||||
"version": "8.0.0",
|
||||
@@ -1606,18 +1626,18 @@
|
||||
},
|
||||
{
|
||||
"pname": "NexusMods.MnemonicDB",
|
||||
"version": "0.9.97",
|
||||
"hash": "sha256-b0k/hM6UYvMTZN2QMk53QN9Fw/pomXJ88k9QqfrAF+s="
|
||||
"version": "0.9.98",
|
||||
"hash": "sha256-1B1PBH/iUuLOPsUo5WAsSAkDGWQBTlY8sk/sAiugpB0="
|
||||
},
|
||||
{
|
||||
"pname": "NexusMods.MnemonicDB.Abstractions",
|
||||
"version": "0.9.97",
|
||||
"hash": "sha256-EnWQMeXMKwziMoBXKf7t+Ru6EHZBml4Pt3h1eSP1Ud0="
|
||||
"version": "0.9.98",
|
||||
"hash": "sha256-rZ9UP6BcxYPlHKqyGj0G5q+woEjvpRS/jg69UY4aWDE="
|
||||
},
|
||||
{
|
||||
"pname": "NexusMods.MnemonicDB.SourceGenerator",
|
||||
"version": "0.9.97",
|
||||
"hash": "sha256-KOZVhS3H/qY6bRW9HmSF1Ud4fXv5oEWORDdYET9Ochw="
|
||||
"version": "0.9.98",
|
||||
"hash": "sha256-jP07gJZQ9ZT9DXyWIQOlgmZx0onqiUe3w2JiN55NA94="
|
||||
},
|
||||
{
|
||||
"pname": "NexusMods.Paths",
|
||||
@@ -1639,6 +1659,11 @@
|
||||
"version": "0.15.0",
|
||||
"hash": "sha256-xUZIAND1Ob0SRuoTTuJqw7N2j/4ncIlck3lgfeWxd5M="
|
||||
},
|
||||
{
|
||||
"pname": "NLog",
|
||||
"version": "5.2.8",
|
||||
"hash": "sha256-IrCChiy703DRIebN//M4wwXW7gayuCVD/dHKXCoQcPw="
|
||||
},
|
||||
{
|
||||
"pname": "NLog",
|
||||
"version": "5.3.4",
|
||||
@@ -2164,6 +2189,11 @@
|
||||
"version": "2.88.9",
|
||||
"hash": "sha256-kP5XM5GgwHGfNJfe4T2yO5NIZtiF71Ddp0pd1vG5V/4="
|
||||
},
|
||||
{
|
||||
"pname": "SmartFormat",
|
||||
"version": "3.5.1",
|
||||
"hash": "sha256-NwvJBCT2BBfJgGa/LMbvan0XqZhRBYzlpMLtC3l5SOM="
|
||||
},
|
||||
{
|
||||
"pname": "Spectre.Console",
|
||||
"version": "0.49.1",
|
||||
@@ -3079,6 +3109,11 @@
|
||||
"version": "1.0.64",
|
||||
"hash": "sha256-ykBZOyvaX1/iFmZjue754qJG4jfPx38ZdHevEZvh7w8="
|
||||
},
|
||||
{
|
||||
"pname": "Tmds.DBus.Protocol",
|
||||
"version": "0.18.0",
|
||||
"hash": "sha256-u5bRK7XbxU/NdMu8PZqxb3fmRdPTbimQ/YIe5/scPOo="
|
||||
},
|
||||
{
|
||||
"pname": "Tmds.DBus.Protocol",
|
||||
"version": "0.20.0",
|
||||
|
||||
@@ -25,12 +25,12 @@ let
|
||||
in
|
||||
buildDotnetModule (finalAttrs: {
|
||||
inherit pname;
|
||||
version = "0.7.2";
|
||||
version = "0.7.3";
|
||||
|
||||
src = fetchgit {
|
||||
url = "https://github.com/Nexus-Mods/NexusMods.App.git";
|
||||
rev = "refs/tags/v${finalAttrs.version}";
|
||||
hash = "sha256-Kss1K1ZqXLZ/WbbyY3ZQRe8Kvmjdu3tRGfcagE7Q42Q=";
|
||||
hash = "sha256-p3MTxuLR/mkVrL+hwW2R13/eVHWWulZPRh9OsuHq9kU=";
|
||||
fetchSubmodules = true;
|
||||
fetchLFS = true;
|
||||
};
|
||||
|
||||
@@ -5,13 +5,13 @@
|
||||
}:
|
||||
buildGoModule rec {
|
||||
pname = "nom";
|
||||
version = "2.7.3";
|
||||
version = "2.8.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "guyfedwards";
|
||||
repo = "nom";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-kCvNUvU3fR3v/uRPl3y9HlNXMartNb23kfj1YYY2BWg=";
|
||||
hash = "sha256-2YXecurdmlho5LvkkMc97GiyrSy/kTZINTPtC+J+eL0=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-d5KTDZKfuzv84oMgmsjJoXGO5XYLVKxOB5XehqgRvYw=";
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
nix-update-script,
|
||||
}:
|
||||
let
|
||||
version = "2.6";
|
||||
version = "2.6.1";
|
||||
in
|
||||
python3.pkgs.buildPythonApplication {
|
||||
pname = "novelwriter";
|
||||
@@ -18,7 +18,7 @@ python3.pkgs.buildPythonApplication {
|
||||
owner = "vkbo";
|
||||
repo = "novelWriter";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-eQ0az+4SEpf07rlCHGvK8Fp8ECimpTblWNlxwANNisE=";
|
||||
hash = "sha256-z2iDRTWiqdjEpqCn4pNthNFl/zGGoVLU/XsRJaQ3Ys4=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ qt5.wrapQtAppsHook ];
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
lib,
|
||||
stdenv,
|
||||
fetchurl,
|
||||
fetchpatch,
|
||||
removeReferencesTo,
|
||||
gfortran,
|
||||
perl,
|
||||
@@ -47,6 +48,17 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
sha256 = "sha256-vUGD/LxDR3wlR5m0Kd8abldsBC50otL4s31Tey/5gVc=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# This patch can be removed with the next openmpi update (>5.0.6)
|
||||
# See https://github.com/open-mpi/ompi/issues/12784 and https://github.com/open-mpi/ompi/pull/13003
|
||||
# Fixes issue where the shared memory backing file cannot be created because directory trees are never created
|
||||
(fetchpatch {
|
||||
name = "fix-singletons-session-dir";
|
||||
url = "https://github.com/open-mpi/ompi/commit/4d4f7212decd0d0ca719688b15dc9b3ee7553a52.patch";
|
||||
hash = "sha256-Mb8qXtAUhAQ90v0SdL24BoTASsKRq2Gu8nYqoeSc9DI=";
|
||||
})
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
patchShebangs ./
|
||||
|
||||
|
||||
@@ -2,11 +2,10 @@
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
python3Packages,
|
||||
addBinToPathHook,
|
||||
}:
|
||||
|
||||
with python3Packages;
|
||||
|
||||
buildPythonApplication rec {
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "parquet-tools";
|
||||
version = "0.2.16";
|
||||
|
||||
@@ -27,7 +26,7 @@ buildPythonApplication rec {
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace tests/test_inspect.py \
|
||||
--replace "parquet-cpp-arrow version 5.0.0" "parquet-cpp-arrow version ${pyarrow.version}" \
|
||||
--replace "parquet-cpp-arrow version 5.0.0" "parquet-cpp-arrow version ${python3Packages.pyarrow.version}" \
|
||||
--replace "serialized_size: 2222" "serialized_size: 2221" \
|
||||
--replace "format_version: 1.0" "format_version: 2.6"
|
||||
'';
|
||||
@@ -38,11 +37,11 @@ buildPythonApplication rec {
|
||||
"thrift"
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
nativeBuildInputs = with python3Packages; [
|
||||
poetry-core
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
propagatedBuildInputs = with python3Packages; [
|
||||
boto3
|
||||
colorama
|
||||
halo
|
||||
@@ -52,16 +51,16 @@ buildPythonApplication rec {
|
||||
thrift
|
||||
];
|
||||
|
||||
# TestGetMetaData.test_inspect shells out to `parquet-tools` CLI entrypoint
|
||||
preCheck = ''
|
||||
export PATH=$out/bin:$PATH
|
||||
'';
|
||||
|
||||
nativeCheckInputs = [
|
||||
moto
|
||||
pytest-mock
|
||||
pytestCheckHook
|
||||
];
|
||||
nativeCheckInputs =
|
||||
with python3Packages;
|
||||
[
|
||||
moto
|
||||
pytest-mock
|
||||
pytestCheckHook
|
||||
]
|
||||
++ [
|
||||
addBinToPathHook
|
||||
];
|
||||
|
||||
disabledTests = [
|
||||
# test file is 2 bytes bigger than expected
|
||||
|
||||
@@ -29,13 +29,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "pdal";
|
||||
version = "2.8.3";
|
||||
version = "2.8.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "PDAL";
|
||||
repo = "PDAL";
|
||||
rev = finalAttrs.version;
|
||||
hash = "sha256-i4Kk9T9MwMGshyGtHrSDhnzqeeThRCKXsjpW3rIDVVc=";
|
||||
hash = "sha256-52v7oDmvq820mJ91XAZI1rQEwssWcHagcd2QNVV6zPA=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
{
|
||||
lib,
|
||||
python3,
|
||||
python3Packages,
|
||||
fetchPypi,
|
||||
addBinToPathHook,
|
||||
}:
|
||||
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "pifpaf";
|
||||
version = "3.2.3";
|
||||
format = "setuptools";
|
||||
@@ -14,7 +15,7 @@ python3.pkgs.buildPythonApplication rec {
|
||||
hash = "sha256-L039ZAFnYLCU52h1SczJU0T7+1gufxQlVzQr1EPCqc8=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = with python3.pkgs; [
|
||||
propagatedBuildInputs = with python3Packages; [
|
||||
click
|
||||
daiquiri
|
||||
fixtures
|
||||
@@ -24,14 +25,15 @@ python3.pkgs.buildPythonApplication rec {
|
||||
xattr
|
||||
];
|
||||
|
||||
preCheck = ''
|
||||
export PATH=$out/bin:$PATH
|
||||
'';
|
||||
|
||||
nativeCheckInputs = with python3.pkgs; [
|
||||
requests
|
||||
testtools
|
||||
];
|
||||
nativeCheckInputs =
|
||||
with python3Packages;
|
||||
[
|
||||
requests
|
||||
testtools
|
||||
]
|
||||
++ [
|
||||
addBinToPathHook
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "pifpaf" ];
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
fetchpatch,
|
||||
cmake,
|
||||
gcc,
|
||||
boost,
|
||||
eigen,
|
||||
libxml2,
|
||||
@@ -24,26 +24,28 @@ stdenv.mkDerivation rec {
|
||||
hash = "sha256-KpmcQj8cv5V5OXCMhe2KLTsqUzKWtTeQyP+zg+Y+yd0=";
|
||||
};
|
||||
|
||||
cmakeFlags = [
|
||||
"-DPRECICE_PETScMapping=OFF"
|
||||
"-DBUILD_SHARED_LIBS=ON"
|
||||
"-DPYTHON_LIBRARIES=${python3.libPrefix}"
|
||||
"-DPYTHON_INCLUDE_DIR=${python3}/include/${python3.libPrefix}"
|
||||
patches = lib.optionals (!lib.versionOlder "3.1.2" version) [
|
||||
(fetchpatch {
|
||||
name = "boost-187-fixes.patch";
|
||||
url = "https://github.com/precice/precice/commit/23788e9eeac49a2069e129a0cb1ac846e8cbeb9f.patch";
|
||||
hash = "sha256-Z8qOGOkXoCui8Wy0H/OeE+NaTDvyRuPm2A+VJKtjH4s=";
|
||||
})
|
||||
];
|
||||
|
||||
env.NIX_CFLAGS_COMPILE = toString (
|
||||
lib.optionals stdenv.hostPlatform.isDarwin [ "-D_GNU_SOURCE" ]
|
||||
# libxml2-2.12 changed const qualifiers
|
||||
++ [ "-fpermissive" ]
|
||||
);
|
||||
cmakeFlags = [
|
||||
(lib.cmakeBool "PRECICE_PETScMapping" false)
|
||||
(lib.cmakeBool "BUILD_SHARED_LIBS" true)
|
||||
(lib.cmakeFeature "PYTHON_LIBRARIES" python3.libPrefix)
|
||||
(lib.cmakeFeature "PYTHON_INCLUDE_DIR" "${python3}/include/${python3.libPrefix}")
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
gcc
|
||||
pkg-config
|
||||
python3
|
||||
python3.pkgs.numpy
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
boost
|
||||
eigen
|
||||
|
||||
@@ -6,14 +6,14 @@
|
||||
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
pname = "prowler";
|
||||
version = "5.1.5";
|
||||
version = "5.2.3";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "prowler-cloud";
|
||||
repo = "prowler";
|
||||
tag = version;
|
||||
hash = "sha256-yVoVfJGO+96ck8T63O0ubeTtdhpfziZFHYVXGFNENds=";
|
||||
hash = "sha256-gEkD3lMOLpi2NeZBN4V2RJ/aqcuSLSQFSFYFSyDgizc=";
|
||||
};
|
||||
|
||||
pythonRelaxDeps = true;
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
rainfrog,
|
||||
}:
|
||||
let
|
||||
version = "0.2.11";
|
||||
version = "0.2.13";
|
||||
in
|
||||
rustPlatform.buildRustPackage {
|
||||
inherit version;
|
||||
@@ -19,11 +19,11 @@ rustPlatform.buildRustPackage {
|
||||
owner = "achristmascarl";
|
||||
repo = "rainfrog";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-gtiwkgNyqq+KMATkzaLOjPB6jcjVAM2qq6zwZ1WGkPE=";
|
||||
hash = "sha256-CNxaCA7xrAkSCiVao+s5jAp3fheRCYK+/3Yekr1xUKk=";
|
||||
};
|
||||
|
||||
useFetchCargoVendor = true;
|
||||
cargoHash = "sha256-7LhCNlbO9MTz2SxxQozdyvxG1uBum9oXaUjXXFS0USs=";
|
||||
cargoHash = "sha256-Tl4T5EJGzrPal6ufgbtBwe6wfqI7SC5KbPZslCHe0Qs=";
|
||||
|
||||
buildInputs = lib.optionals stdenv.hostPlatform.isDarwin (
|
||||
with darwin.apple_sdk.frameworks;
|
||||
|
||||
@@ -7,17 +7,17 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "sad";
|
||||
version = "0.4.31";
|
||||
version = "0.4.32";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ms-jpq";
|
||||
repo = "sad";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-frsOfv98VdetlwgNA6O0KEhcCSY9tQeEwkl2am226ko=";
|
||||
hash = "sha256-c5TYIVUrfKrVuyolVe7+EhiM/SOFNahz8X6F8WrKEa0=";
|
||||
};
|
||||
|
||||
useFetchCargoVendor = true;
|
||||
cargoHash = "sha256-ea/jimyghG7bqe9iRhYL13RQ4gwp9Ke3IjpSI8dTyr8=";
|
||||
cargoHash = "sha256-hS66/bPRUpwmW/wSpZCq4kVKFkIhttsozIr3SCyZqQI=";
|
||||
|
||||
nativeBuildInputs = [ python3 ];
|
||||
|
||||
|
||||
@@ -12,18 +12,18 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "shellhub-agent";
|
||||
version = "0.17.2";
|
||||
version = "0.18.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "shellhub-io";
|
||||
repo = "shellhub";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-zMAAimFrOMcBVKuFwl/UpJLEWJHrjH7DNno5KCEvGrM=";
|
||||
hash = "sha256-BIcdloW0ab/hNvgUtjL7Xdz2MNFqKmi+umcUjM5gTR8=";
|
||||
};
|
||||
|
||||
modRoot = "./agent";
|
||||
|
||||
vendorHash = "sha256-jQNWuOwaAx//wDUVOrMc+ETWWbTCTp/SLwL2guERJB8=";
|
||||
vendorHash = "sha256-L+oww1HlPWgAYK16OG5bWiDb/OW7uarY8LZyw9b85ac=";
|
||||
|
||||
ldflags = [
|
||||
"-s"
|
||||
|
||||
@@ -7,13 +7,13 @@
|
||||
}:
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "sqlite_orm";
|
||||
version = "1.9";
|
||||
version = "1.9.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "fnc12";
|
||||
repo = "sqlite_orm";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-jgRCYOtCyXj2E5J3iYBffX2AyBwvhune+i4Pb2eCBrA=";
|
||||
hash = "sha256-tlmUYHH0V4qsKSTdrg/OrS9eOEseIDAIU/HN8YK36go=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -49,7 +49,7 @@ stdenv.mkDerivation rec {
|
||||
passthru.tests = { inherit (nixosTests) taskserver; };
|
||||
|
||||
meta = {
|
||||
description = "Server for synchronising Taskwarrior clients";
|
||||
description = "Server for synchronising Taskwarrior 2 clients";
|
||||
homepage = "https://taskwarrior.org";
|
||||
license = lib.licenses.mit;
|
||||
platforms = lib.platforms.linux;
|
||||
|
||||
@@ -7,12 +7,12 @@
|
||||
|
||||
buildGo123Module rec {
|
||||
pname = "traefik";
|
||||
version = "3.3.2";
|
||||
version = "3.3.3";
|
||||
|
||||
# Archive with static assets for webui
|
||||
src = fetchzip {
|
||||
url = "https://github.com/traefik/traefik/releases/download/v${version}/traefik-v${version}.src.tar.gz";
|
||||
hash = "sha256-7qS+rOBYDyYI8t0rVNmM0sJjGSdtIVelaIJuW1jaL+g=";
|
||||
hash = "sha256-R9fiCLqzrd9SS6LoQt3jOoEchRnPuhmJqIob8JhzqEU=";
|
||||
stripRoot = false;
|
||||
};
|
||||
|
||||
@@ -44,7 +44,10 @@ buildGo123Module rec {
|
||||
description = "Modern reverse proxy";
|
||||
changelog = "https://github.com/traefik/traefik/raw/v${version}/CHANGELOG.md";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ vdemeester ];
|
||||
maintainers = with maintainers; [
|
||||
djds
|
||||
vdemeester
|
||||
];
|
||||
mainProgram = "traefik";
|
||||
};
|
||||
}
|
||||
|
||||
@@ -4,6 +4,8 @@
|
||||
fetchFromGitHub,
|
||||
espeak-ng,
|
||||
tts,
|
||||
addBinToPathHook,
|
||||
writableTmpDirAsHomeHook,
|
||||
}:
|
||||
|
||||
let
|
||||
@@ -111,18 +113,20 @@ python.pkgs.buildPythonApplication rec {
|
||||
doCheck = true;
|
||||
});
|
||||
|
||||
nativeCheckInputs = with python.pkgs; [
|
||||
espeak-ng
|
||||
pytestCheckHook
|
||||
];
|
||||
nativeCheckInputs =
|
||||
with python.pkgs;
|
||||
[
|
||||
espeak-ng
|
||||
pytestCheckHook
|
||||
]
|
||||
++ [
|
||||
addBinToPathHook
|
||||
writableTmpDirAsHomeHook
|
||||
];
|
||||
|
||||
preCheck = ''
|
||||
# use the installed TTS in $PYTHONPATH instead of the one from source to also have cython modules.
|
||||
mv TTS{,.old}
|
||||
export PATH=$out/bin:$PATH
|
||||
|
||||
# numba tries to write to HOME directory
|
||||
export HOME=$TMPDIR
|
||||
|
||||
for file in $(grep -rl 'python TTS/bin' tests); do
|
||||
substituteInPlace "$file" \
|
||||
|
||||
@@ -17,17 +17,17 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "uv";
|
||||
version = "0.5.26";
|
||||
version = "0.5.27";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "astral-sh";
|
||||
repo = "uv";
|
||||
tag = version;
|
||||
hash = "sha256-Rp6DexvMbUdE7i8hik4MC2sW/VFmpxJFfF7ukc49VlE=";
|
||||
hash = "sha256-UqwXLAo99ZtvNNIfd5eO+IfdL2fksf0LTrRU2G1/j/8=";
|
||||
};
|
||||
|
||||
useFetchCargoVendor = true;
|
||||
cargoHash = "sha256-MZKrkxy7bXQ3lTrPwCRT8nAR8fP+SeZmBEMQrXlvkYo=";
|
||||
cargoHash = "sha256-TS823jBGtHNUZzeRJpir6G8F8Cgq7fuxw6pPk8RrE3o=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
|
||||
@@ -9,12 +9,12 @@
|
||||
let
|
||||
generator = pkgsBuildBuild.buildGoModule rec {
|
||||
pname = "v2ray-domain-list-community";
|
||||
version = "20241221105938";
|
||||
version = "20250124154827";
|
||||
src = fetchFromGitHub {
|
||||
owner = "v2fly";
|
||||
repo = "domain-list-community";
|
||||
rev = version;
|
||||
hash = "sha256-k42qnHQY9bfSjyGGtaqKdIxlvU/C7TiN8sD0AiRQmVU=";
|
||||
hash = "sha256-E69X6ktgZvW3xrZl+jmQMoPwRQlqU+0RW2epJHyFgeQ=";
|
||||
};
|
||||
vendorHash = "sha256-NLh14rXRci4hgDkBJVJDIDvobndB7KYRKAX7UjyqSsg=";
|
||||
meta = with lib; {
|
||||
|
||||
@@ -6,10 +6,11 @@
|
||||
}:
|
||||
let
|
||||
pname = "vrcx";
|
||||
version = "2025-01-27T00.10-0ee8137";
|
||||
version = "2025.01.31";
|
||||
filename = builtins.replaceStrings [ "." ] [ "" ] version;
|
||||
src = fetchurl {
|
||||
url = "https://github.com/Natsumi-sama/VRCX/releases/download/${version}/VRCX_${version}.AppImage";
|
||||
hash = "sha256-kaQOME3jBLr7QJjc7rubNqFu3z+LmiP+UHe2EWYC7ek=";
|
||||
hash = "sha256-hrAsy/yv8GW0mIDA5PJLUs4EYNufPiOplLlmb9pFwX4=";
|
||||
url = "https://github.com/vrcx-team/VRCX/releases/download/v${version}/VRCX_${filename}.AppImage";
|
||||
};
|
||||
appimageContents = appimageTools.extract {
|
||||
inherit pname src version;
|
||||
@@ -19,12 +20,13 @@ appimageTools.wrapType2 rec {
|
||||
inherit pname version src;
|
||||
extraPkgs = pkgs: [ dotnet-runtime ];
|
||||
extraInstallCommands = ''
|
||||
install -m 444 -D ${appimageContents}/vrcx.desktop $out/share/applications/vrcx.desktop
|
||||
install -m 444 -D ${appimageContents}/vrcx.desktop \
|
||||
$out/share/applications/vrcx.desktop
|
||||
install -m 444 -D ${appimageContents}/usr/share/icons/hicolor/256x256/apps/vrcx.png \
|
||||
$out/share/icons/hicolor/256x256/apps/vrcx.png
|
||||
|
||||
substituteInPlace $out/share/applications/vrcx.desktop \
|
||||
--replace-fail 'Exec=AppRun' 'Exec=${pname}'
|
||||
# Fix icon path
|
||||
substituteInPlace $out/share/applications/vrcx.desktop \
|
||||
--replace-fail 'Icon=VRCX' "Icon=$out/share/icons/hicolor/256x256/apps/vrcx.png"
|
||||
'';
|
||||
|
||||
@@ -10,17 +10,17 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "waytrogen";
|
||||
version = "0.6.3";
|
||||
version = "0.6.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "nikolaizombie1";
|
||||
repo = "waytrogen";
|
||||
tag = version;
|
||||
hash = "sha256-jkrvtwkzlsQgbw8/N4uzeqQ3fVSur2oa21IOXRRgh9I=";
|
||||
hash = "sha256-JlqRlB/iMeFp229bF4u7M+Z9m9zlizHgqbfmszNwd9k=";
|
||||
};
|
||||
|
||||
useFetchCargoVendor = true;
|
||||
cargoHash = "sha256-iCcYlBqXo76QLuzdd1/YbLL99eCOnniHDAOllX8XyXQ=";
|
||||
cargoHash = "sha256-S4DPvQ2unFt13eLFS91z7TyfFz7uwMMIgsEQ/JPe0e8=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
|
||||
@@ -2,10 +2,12 @@
|
||||
lib,
|
||||
coreutils,
|
||||
fetchFromGitHub,
|
||||
git,
|
||||
gitMinimal,
|
||||
glibcLocales,
|
||||
nix-update-script,
|
||||
pythonPackages,
|
||||
addBinToPathHook,
|
||||
writableTmpDirAsHomeHook,
|
||||
}:
|
||||
|
||||
let
|
||||
@@ -19,7 +21,7 @@ let
|
||||
src = fetchFromGitHub {
|
||||
owner = "xonsh";
|
||||
repo = "xonsh";
|
||||
rev = "refs/tags/${argset.version}";
|
||||
tag = argset.version;
|
||||
hash = "sha256-20egNKlJjJO1wdy1anApz0ADBnaHPUSqhfrsPe3QQIs=";
|
||||
};
|
||||
|
||||
@@ -39,8 +41,10 @@ let
|
||||
|
||||
nativeCheckInputs =
|
||||
[
|
||||
git
|
||||
addBinToPathHook
|
||||
gitMinimal
|
||||
glibcLocales
|
||||
writableTmpDirAsHomeHook
|
||||
]
|
||||
++ (with pythonPackages; [
|
||||
pip
|
||||
@@ -77,6 +81,9 @@ let
|
||||
|
||||
# https://github.com/xonsh/xonsh/issues/5569
|
||||
"test_spec_decorator_alias_output_format"
|
||||
|
||||
# Broken test
|
||||
"test_repath_backslash"
|
||||
];
|
||||
|
||||
disabledTestPaths = [
|
||||
@@ -103,11 +110,6 @@ let
|
||||
patchShebangs .
|
||||
'';
|
||||
|
||||
preCheck = ''
|
||||
export HOME=$TMPDIR
|
||||
export PATH=$out/bin:$PATH
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
shellPath = "/bin/xonsh";
|
||||
python = pythonPackages.python; # To the wrapper
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
{
|
||||
lib,
|
||||
python3,
|
||||
python3Packages,
|
||||
fetchFromGitHub,
|
||||
deterministic-uname,
|
||||
addBinToPathHook,
|
||||
}:
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "zxpy";
|
||||
version = "1.6.4";
|
||||
pyproject = true;
|
||||
@@ -16,18 +18,19 @@ python3.pkgs.buildPythonApplication rec {
|
||||
hash = "sha256-/VITHN517lPUmhLYgJHBYYvvlJdGg2Hhnwk47Mp9uc0=";
|
||||
};
|
||||
|
||||
build-system = [
|
||||
python3.pkgs.setuptools
|
||||
build-system = with python3Packages; [
|
||||
setuptools
|
||||
];
|
||||
|
||||
nativeCheckInputs = [
|
||||
deterministic-uname
|
||||
python3.pkgs.pytestCheckHook
|
||||
];
|
||||
|
||||
preCheck = ''
|
||||
export PATH=$out/bin:$PATH
|
||||
'';
|
||||
nativeCheckInputs =
|
||||
with python3Packages;
|
||||
[
|
||||
deterministic-uname
|
||||
pytestCheckHook
|
||||
]
|
||||
++ [
|
||||
addBinToPathHook
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "zx" ];
|
||||
|
||||
|
||||
@@ -33,11 +33,11 @@ assert (ch4backend.pname == "ucx" || ch4backend.pname == "libfabric");
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "mpich";
|
||||
version = "4.2.3";
|
||||
version = "4.3.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://www.mpich.org/static/downloads/${version}/mpich-${version}.tar.gz";
|
||||
hash = "sha256-egGRgMUdFzitnF2NRSMU3mXoKO4kC8stH4DemmW+iKg=";
|
||||
hash = "sha256-XgQTKYStg8q5zFP3YHLSte9abSSwqf+QR6j/lhIbzGM=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
||||
@@ -11,12 +11,32 @@
|
||||
pycparser,
|
||||
}:
|
||||
|
||||
let
|
||||
version = "1.17.1";
|
||||
in
|
||||
if isPyPy then
|
||||
null
|
||||
buildPythonPackage {
|
||||
pname = "cffi";
|
||||
inherit version;
|
||||
pyproject = false;
|
||||
|
||||
# cffi is bundled with PyPy.
|
||||
dontUnpack = true;
|
||||
|
||||
# Some dependent packages expect to have pycparser available when using cffi.
|
||||
dependencies = [ pycparser ];
|
||||
|
||||
meta = {
|
||||
description = "Foreign Function Interface for Python calling C code (bundled with PyPy, placeholder package)";
|
||||
homepage = "https://cffi.readthedocs.org/";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = lib.teams.python.members;
|
||||
};
|
||||
}
|
||||
else
|
||||
buildPythonPackage rec {
|
||||
pname = "cffi";
|
||||
version = "1.17.1";
|
||||
inherit version;
|
||||
pyproject = true;
|
||||
|
||||
src = fetchPypi {
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
zope-interface,
|
||||
|
||||
daemontools,
|
||||
addBinToPathHook,
|
||||
dask,
|
||||
distributed,
|
||||
hypothesis,
|
||||
@@ -47,6 +48,7 @@ buildPythonPackage rec {
|
||||
];
|
||||
|
||||
nativeCheckInputs = [
|
||||
addBinToPathHook
|
||||
dask
|
||||
distributed
|
||||
hypothesis
|
||||
@@ -60,11 +62,6 @@ buildPythonPackage rec {
|
||||
|
||||
pythonImportsCheck = [ "eliot" ];
|
||||
|
||||
# Tests run eliot-prettyprint in out/bin.
|
||||
preCheck = ''
|
||||
export PATH=$out/bin:$PATH
|
||||
'';
|
||||
|
||||
disabledTests = [
|
||||
# Fails since dask's bump to 2024.12.2
|
||||
# Reported upstream: https://github.com/itamarst/eliot/issues/507
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
numpy,
|
||||
pydantic,
|
||||
jsonschema,
|
||||
opencv-python-headless,
|
||||
sentencepiece,
|
||||
typing-extensions,
|
||||
tiktoken,
|
||||
@@ -37,6 +38,7 @@ buildPythonPackage rec {
|
||||
numpy
|
||||
pydantic
|
||||
jsonschema
|
||||
opencv-python-headless
|
||||
sentencepiece
|
||||
typing-extensions
|
||||
tiktoken
|
||||
|
||||
@@ -1,15 +1,18 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
setuptools,
|
||||
pip,
|
||||
cython,
|
||||
fetchFromGitHub,
|
||||
|
||||
# build-system
|
||||
cython,
|
||||
pip,
|
||||
pkgconfig,
|
||||
setuptools,
|
||||
|
||||
# dependencies
|
||||
mpi4py,
|
||||
numpy,
|
||||
precice,
|
||||
pkgconfig,
|
||||
pythonOlder,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
@@ -17,8 +20,6 @@ buildPythonPackage rec {
|
||||
version = "3.1.2";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "precice";
|
||||
repo = "python-bindings";
|
||||
@@ -26,14 +27,24 @@ buildPythonPackage rec {
|
||||
hash = "sha256-/atuMJVgvY4kgvrB+LuQZmJuSK4O8TJdguC7NCiRS2Y=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
setuptools
|
||||
pip
|
||||
postPatch = ''
|
||||
substituteInPlace pyproject.toml \
|
||||
--replace-fail "setuptools>=61,<72" "setuptools" \
|
||||
--replace-fail "numpy<2" "numpy"
|
||||
'';
|
||||
|
||||
build-system = [
|
||||
cython
|
||||
pip
|
||||
pkgconfig
|
||||
setuptools
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
pythonRelaxDeps = [
|
||||
"numpy"
|
||||
];
|
||||
|
||||
dependencies = [
|
||||
numpy
|
||||
mpi4py
|
||||
precice
|
||||
@@ -44,10 +55,11 @@ buildPythonPackage rec {
|
||||
|
||||
# Do not use pythonImportsCheck because this will also initialize mpi which requires a network interface
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
description = "Python language bindings for preCICE";
|
||||
homepage = "https://github.com/precice/python-bindings";
|
||||
license = licenses.lgpl3Only;
|
||||
maintainers = with maintainers; [ Scriptkiddi ];
|
||||
changelog = "https://github.com/precice/python-bindings/blob/v${version}/CHANGELOG.md";
|
||||
license = lib.licenses.lgpl3Only;
|
||||
maintainers = with lib.maintainers; [ Scriptkiddi ];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,24 +0,0 @@
|
||||
From f6a7748bee79fc2e1898968fef844daacfa7860b Mon Sep 17 00:00:00 2001
|
||||
From: SomeoneSerge <else@someonex.net>
|
||||
Date: Wed, 31 Jul 2024 12:02:53 +0000
|
||||
Subject: [PATCH 1/2] setup.py: don't ask for hipcc --version
|
||||
|
||||
---
|
||||
setup.py | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/setup.py b/setup.py
|
||||
index 72ef26f1..01e006f9 100644
|
||||
--- a/setup.py
|
||||
+++ b/setup.py
|
||||
@@ -279,6 +279,7 @@ def _install_punica() -> bool:
|
||||
|
||||
|
||||
def get_hipcc_rocm_version():
|
||||
+ return "0.0" # `hipcc --version` misbehaves ("unresolved paths") inside the nix sandbox
|
||||
# Run the hipcc --version command
|
||||
result = subprocess.run(['hipcc', '--version'],
|
||||
stdout=subprocess.PIPE,
|
||||
--
|
||||
2.45.1
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
diff --git a/vllm/model_executor/models/registry.py b/vllm/model_executor/models/registry.py
|
||||
index f5a02a5b..e830f987 100644
|
||||
--- a/vllm/model_executor/models/registry.py
|
||||
+++ b/vllm/model_executor/models/registry.py
|
||||
@@ -482,6 +482,7 @@ def _run_in_subprocess(fn: Callable[[], _T]) -> _T:
|
||||
returned = subprocess.run(
|
||||
[sys.executable, "-m", "vllm.model_executor.models.registry"],
|
||||
input=input_bytes,
|
||||
+ env={'PYTHONPATH': ':'.join(sys.path)},
|
||||
capture_output=True)
|
||||
|
||||
# check if the subprocess is successful
|
||||
@@ -0,0 +1,18 @@
|
||||
--- a/setup.py
|
||||
+++ b/setup.py
|
||||
@@ -340,14 +340,7 @@ def _is_hpu() -> bool:
|
||||
out = subprocess.run(["hl-smi"], capture_output=True, check=True)
|
||||
is_hpu_available = out.returncode == 0
|
||||
except (FileNotFoundError, PermissionError, subprocess.CalledProcessError):
|
||||
- if sys.platform.startswith("linux"):
|
||||
- try:
|
||||
- output = subprocess.check_output(
|
||||
- 'lsmod | grep habanalabs | wc -l', shell=True)
|
||||
- is_hpu_available = int(output) > 0
|
||||
- except (ValueError, FileNotFoundError, PermissionError,
|
||||
- subprocess.CalledProcessError):
|
||||
- pass
|
||||
+ is_hpu_available = False
|
||||
return is_hpu_available
|
||||
|
||||
|
||||
@@ -5,14 +5,21 @@
|
||||
buildPythonPackage,
|
||||
pythonRelaxDepsHook,
|
||||
fetchFromGitHub,
|
||||
symlinkJoin,
|
||||
autoAddDriverRunpath,
|
||||
|
||||
# build system
|
||||
packaging,
|
||||
setuptools,
|
||||
wheel,
|
||||
|
||||
# dependencies
|
||||
which,
|
||||
ninja,
|
||||
cmake,
|
||||
packaging,
|
||||
setuptools,
|
||||
setuptools-scm,
|
||||
torch,
|
||||
outlines,
|
||||
wheel,
|
||||
psutil,
|
||||
ray,
|
||||
pandas,
|
||||
@@ -21,43 +28,174 @@
|
||||
numpy,
|
||||
transformers,
|
||||
xformers,
|
||||
xgrammar,
|
||||
fastapi,
|
||||
uvicorn,
|
||||
pydantic,
|
||||
aioprometheus,
|
||||
pynvml,
|
||||
openai,
|
||||
pyzmq,
|
||||
tiktoken,
|
||||
torchaudio,
|
||||
torchvision,
|
||||
py-cpuinfo,
|
||||
lm-format-enforcer,
|
||||
prometheus-fastapi-instrumentator,
|
||||
cupy,
|
||||
writeShellScript,
|
||||
gguf,
|
||||
einops,
|
||||
importlib-metadata,
|
||||
partial-json-parser,
|
||||
compressed-tensors,
|
||||
mistral-common,
|
||||
msgspec,
|
||||
numactl,
|
||||
tokenizers,
|
||||
oneDNN,
|
||||
blake3,
|
||||
depyf,
|
||||
opencv-python-headless,
|
||||
|
||||
config,
|
||||
|
||||
cudaSupport ? config.cudaSupport,
|
||||
cudaPackages ? { },
|
||||
|
||||
# Has to be either rocm or cuda, default to the free one
|
||||
rocmSupport ? !config.cudaSupport,
|
||||
rocmSupport ? config.rocmSupport,
|
||||
rocmPackages ? { },
|
||||
gpuTargets ? [ ],
|
||||
}@args:
|
||||
|
||||
let
|
||||
inherit (lib)
|
||||
lists
|
||||
strings
|
||||
trivial
|
||||
;
|
||||
|
||||
inherit (cudaPackages) cudaFlags;
|
||||
|
||||
shouldUsePkg =
|
||||
pkg: if pkg != null && lib.meta.availableOn stdenv.hostPlatform pkg then pkg else null;
|
||||
|
||||
# see CMakeLists.txt, grepping for GIT_TAG near cutlass
|
||||
# https://github.com/vllm-project/vllm/blob/${version}/CMakeLists.txt
|
||||
cutlass = fetchFromGitHub {
|
||||
owner = "NVIDIA";
|
||||
repo = "cutlass";
|
||||
rev = "refs/tags/v3.5.0";
|
||||
sha256 = "sha256-D/s7eYsa5l/mfx73tE4mnFcTQdYqGmXa9d9TCryw4e4=";
|
||||
tag = "v3.7.0";
|
||||
hash = "sha256-GUTRXmv3DiM/GN5Bvv2LYovMLKZMlMhoKv4O0g627gs=";
|
||||
};
|
||||
|
||||
vllm-flash-attn = stdenv.mkDerivation rec {
|
||||
pname = "vllm-flash-attn";
|
||||
version = "2.6.2";
|
||||
|
||||
# see CMakeLists.txt, grepping for GIT_TAG near vllm-flash-attn
|
||||
# https://github.com/vllm-project/vllm/blob/${version}/CMakeLists.txt
|
||||
src = fetchFromGitHub {
|
||||
owner = "vllm-project";
|
||||
repo = "flash-attention";
|
||||
rev = "d4e09037abf588af1ec47d0e966b237ee376876c";
|
||||
hash = "sha256-KFEsZlrwvCgvPzQ/pCLWcnbGq89mWE3yTDdtJSV9MII=";
|
||||
};
|
||||
|
||||
dontConfigure = true;
|
||||
|
||||
# vllm-flash-attn normally relies on `git submodule update` to fetch cutlass
|
||||
buildPhase = ''
|
||||
rm -rf csrc/cutlass
|
||||
ln -sf ${cutlass} csrc/cutlass
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
cp -rva . $out
|
||||
'';
|
||||
};
|
||||
|
||||
cpuSupport = !cudaSupport && !rocmSupport;
|
||||
|
||||
# https://github.com/pytorch/pytorch/blob/v2.4.0/torch/utils/cpp_extension.py#L1953
|
||||
supportedTorchCudaCapabilities =
|
||||
let
|
||||
real = [
|
||||
"3.5"
|
||||
"3.7"
|
||||
"5.0"
|
||||
"5.2"
|
||||
"5.3"
|
||||
"6.0"
|
||||
"6.1"
|
||||
"6.2"
|
||||
"7.0"
|
||||
"7.2"
|
||||
"7.5"
|
||||
"8.0"
|
||||
"8.6"
|
||||
"8.7"
|
||||
"8.9"
|
||||
"9.0"
|
||||
"9.0a"
|
||||
];
|
||||
ptx = lists.map (x: "${x}+PTX") real;
|
||||
in
|
||||
real ++ ptx;
|
||||
|
||||
# NOTE: The lists.subtractLists function is perhaps a bit unintuitive. It subtracts the elements
|
||||
# of the first list *from* the second list. That means:
|
||||
# lists.subtractLists a b = b - a
|
||||
|
||||
# For CUDA
|
||||
supportedCudaCapabilities = lists.intersectLists cudaFlags.cudaCapabilities supportedTorchCudaCapabilities;
|
||||
unsupportedCudaCapabilities = lists.subtractLists supportedCudaCapabilities cudaFlags.cudaCapabilities;
|
||||
|
||||
isCudaJetson = cudaSupport && cudaPackages.cudaFlags.isJetsonBuild;
|
||||
|
||||
# Use trivial.warnIf to print a warning if any unsupported GPU targets are specified.
|
||||
gpuArchWarner =
|
||||
supported: unsupported:
|
||||
trivial.throwIf (supported == [ ]) (
|
||||
"No supported GPU targets specified. Requested GPU targets: "
|
||||
+ strings.concatStringsSep ", " unsupported
|
||||
) supported;
|
||||
|
||||
# Create the gpuTargetString.
|
||||
gpuTargetString = strings.concatStringsSep ";" (
|
||||
if gpuTargets != [ ] then
|
||||
# If gpuTargets is specified, it always takes priority.
|
||||
gpuTargets
|
||||
else if cudaSupport then
|
||||
gpuArchWarner supportedCudaCapabilities unsupportedCudaCapabilities
|
||||
else if rocmSupport then
|
||||
rocmPackages.clr.gpuTargets
|
||||
else
|
||||
throw "No GPU targets specified"
|
||||
);
|
||||
|
||||
mergedCudaLibraries = with cudaPackages; [
|
||||
cuda_cudart # cuda_runtime.h, -lcudart
|
||||
cuda_cccl
|
||||
libcusparse # cusparse.h
|
||||
libcusolver # cusolverDn.h
|
||||
cuda_nvtx
|
||||
cuda_nvrtc
|
||||
libcublas
|
||||
];
|
||||
|
||||
# Some packages are not available on all platforms
|
||||
nccl = shouldUsePkg (cudaPackages.nccl or null);
|
||||
|
||||
getAllOutputs = p: [
|
||||
(lib.getBin p)
|
||||
(lib.getLib p)
|
||||
(lib.getDev p)
|
||||
];
|
||||
|
||||
in
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "vllm";
|
||||
version = "0.6.2";
|
||||
version = "0.7.1";
|
||||
pyproject = true;
|
||||
|
||||
stdenv = if cudaSupport then cudaPackages.backendStdenv else args.stdenv;
|
||||
@@ -65,30 +203,54 @@ buildPythonPackage rec {
|
||||
src = fetchFromGitHub {
|
||||
owner = "vllm-project";
|
||||
repo = pname;
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-zUkqAPPhDRdN9rDQ2biCl1B+trV0xIHXub++v9zsQGo=";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-CImXKMEv+jHqngvcr8W6fQLiCo1mqmcZ0Ho0bfAgfbg=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
./0001-setup.py-don-t-ask-for-hipcc-version.patch
|
||||
./0002-setup.py-nix-support-respect-cmakeFlags.patch
|
||||
./0003-propagate-pythonpath.patch
|
||||
./0004-drop-lsmod.patch
|
||||
];
|
||||
|
||||
# Ignore the python version check because it hard-codes minor versions and
|
||||
# lags behind `ray`'s python interpreter support
|
||||
postPatch = ''
|
||||
substituteInPlace CMakeLists.txt \
|
||||
--replace-fail \
|
||||
'set(PYTHON_SUPPORTED_VERSIONS' \
|
||||
'set(PYTHON_SUPPORTED_VERSIONS "${lib.versions.majorMinor python.version}"'
|
||||
'';
|
||||
postPatch =
|
||||
''
|
||||
substituteInPlace CMakeLists.txt \
|
||||
--replace-fail \
|
||||
'set(PYTHON_SUPPORTED_VERSIONS' \
|
||||
'set(PYTHON_SUPPORTED_VERSIONS "${lib.versions.majorMinor python.version}"'
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
ninja
|
||||
pythonRelaxDepsHook
|
||||
which
|
||||
] ++ lib.optionals rocmSupport [ rocmPackages.hipcc ];
|
||||
# Relax torch dependency manually because the nonstandard requirements format
|
||||
# is not caught by pythonRelaxDeps
|
||||
substituteInPlace requirements*.txt pyproject.toml \
|
||||
--replace-warn 'torch==2.5.1' 'torch==${lib.getVersion torch}' \
|
||||
--replace-warn 'torch == 2.5.1' 'torch == ${lib.getVersion torch}'
|
||||
''
|
||||
+ lib.optionalString (nccl == null) ''
|
||||
# On platforms where NCCL is not supported (e.g. Jetson), substitute Gloo (provided by Torch)
|
||||
substituteInPlace vllm/distributed/parallel_state.py \
|
||||
--replace-fail '"nccl"' '"gloo"'
|
||||
'';
|
||||
|
||||
nativeBuildInputs =
|
||||
[
|
||||
cmake
|
||||
ninja
|
||||
pythonRelaxDepsHook
|
||||
which
|
||||
]
|
||||
++ lib.optionals rocmSupport [
|
||||
rocmPackages.hipcc
|
||||
]
|
||||
++ lib.optionals cudaSupport [
|
||||
cudaPackages.cuda_nvcc
|
||||
autoAddDriverRunpath
|
||||
]
|
||||
++ lib.optionals isCudaJetson [
|
||||
cudaPackages.autoAddCudaCompatRunpath
|
||||
];
|
||||
|
||||
build-system = [
|
||||
packaging
|
||||
@@ -97,18 +259,22 @@ buildPythonPackage rec {
|
||||
];
|
||||
|
||||
buildInputs =
|
||||
(lib.optionals cudaSupport (
|
||||
with cudaPackages;
|
||||
[
|
||||
cuda_cudart # cuda_runtime.h, -lcudart
|
||||
cuda_cccl
|
||||
libcusparse # cusparse.h
|
||||
libcusolver # cusolverDn.h
|
||||
cuda_nvcc
|
||||
cuda_nvtx
|
||||
libcublas
|
||||
]
|
||||
))
|
||||
[
|
||||
setuptools-scm
|
||||
torch
|
||||
]
|
||||
++ (lib.optionals cpuSupport ([
|
||||
numactl
|
||||
oneDNN
|
||||
]))
|
||||
++ (
|
||||
lib.optionals cudaSupport mergedCudaLibraries
|
||||
++ (with cudaPackages; [
|
||||
nccl
|
||||
cudnn
|
||||
libcufile
|
||||
])
|
||||
)
|
||||
++ (lib.optionals rocmSupport (
|
||||
with rocmPackages;
|
||||
[
|
||||
@@ -123,10 +289,13 @@ buildPythonPackage rec {
|
||||
dependencies =
|
||||
[
|
||||
aioprometheus
|
||||
blake3
|
||||
depyf
|
||||
fastapi
|
||||
lm-format-enforcer
|
||||
numpy
|
||||
openai
|
||||
opencv-python-headless
|
||||
outlines
|
||||
pandas
|
||||
prometheus-fastapi-instrumentator
|
||||
@@ -138,27 +307,64 @@ buildPythonPackage rec {
|
||||
ray
|
||||
sentencepiece
|
||||
tiktoken
|
||||
tokenizers
|
||||
msgspec
|
||||
gguf
|
||||
einops
|
||||
importlib-metadata
|
||||
partial-json-parser
|
||||
compressed-tensors
|
||||
mistral-common
|
||||
torch
|
||||
torchaudio
|
||||
torchvision
|
||||
transformers
|
||||
uvicorn
|
||||
xformers
|
||||
xgrammar
|
||||
]
|
||||
++ uvicorn.optional-dependencies.standard
|
||||
++ aioprometheus.optional-dependencies.starlette
|
||||
++ lib.optionals cudaSupport [
|
||||
cupy
|
||||
pynvml
|
||||
];
|
||||
|
||||
dontUseCmakeConfigure = true;
|
||||
cmakeFlags = [ (lib.cmakeFeature "FETCHCONTENT_SOURCE_DIR_CUTLASS" "${lib.getDev cutlass}") ];
|
||||
cmakeFlags =
|
||||
[
|
||||
(lib.cmakeFeature "FETCHCONTENT_SOURCE_DIR_CUTLASS" "${lib.getDev cutlass}")
|
||||
(lib.cmakeFeature "VLLM_FLASH_ATTN_SRC_DIR" "${lib.getDev vllm-flash-attn}")
|
||||
]
|
||||
++ lib.optionals cudaSupport [
|
||||
(lib.cmakeFeature "TORCH_CUDA_ARCH_LIST" "${gpuTargetString}")
|
||||
(lib.cmakeFeature "CUTLASS_NVCC_ARCHS_ENABLED" "${cudaPackages.cudaFlags.cmakeCudaArchitecturesString
|
||||
}")
|
||||
(lib.cmakeFeature "CUDA_TOOLKIT_ROOT_DIR" "${symlinkJoin {
|
||||
name = "cuda-merged-${cudaPackages.cudaVersion}";
|
||||
paths = builtins.concatMap getAllOutputs mergedCudaLibraries;
|
||||
}}")
|
||||
(lib.cmakeFeature "CAFFE2_USE_CUDNN" "ON")
|
||||
(lib.cmakeFeature "CAFFE2_USE_CUFILE" "ON")
|
||||
(lib.cmakeFeature "CUTLASS_ENABLE_CUBLAS" "ON")
|
||||
]
|
||||
++ lib.optionals cpuSupport [
|
||||
(lib.cmakeFeature "FETCHCONTENT_SOURCE_DIR_ONEDNN" "${lib.getDev oneDNN}")
|
||||
];
|
||||
|
||||
env =
|
||||
lib.optionalAttrs cudaSupport { CUDA_HOME = "${lib.getDev cudaPackages.cuda_nvcc}"; }
|
||||
lib.optionalAttrs cudaSupport {
|
||||
VLLM_TARGET_DEVICE = "cuda";
|
||||
CUDA_HOME = "${lib.getDev cudaPackages.cuda_nvcc}";
|
||||
}
|
||||
// lib.optionalAttrs rocmSupport {
|
||||
VLLM_TARGET_DEVICE = "rocm";
|
||||
# Otherwise it tries to enumerate host supported ROCM gfx archs, and that is not possible due to sandboxing.
|
||||
PYTORCH_ROCM_ARCH = lib.strings.concatStringsSep ";" rocmPackages.clr.gpuTargets;
|
||||
ROCM_HOME = "${rocmPackages.clr}";
|
||||
}
|
||||
// lib.optionalAttrs cpuSupport {
|
||||
VLLM_TARGET_DEVICE = "cpu";
|
||||
};
|
||||
|
||||
pythonRelaxDeps = true;
|
||||
@@ -177,8 +383,8 @@ buildPythonPackage rec {
|
||||
happysalada
|
||||
lach
|
||||
];
|
||||
# RuntimeError: Unknown runtime environment
|
||||
broken = true;
|
||||
# broken = !cudaSupport && !rocmSupport;
|
||||
|
||||
# CPU support relies on unpackaged dependency `intel_extension_for_pytorch`
|
||||
broken = cpuSupport;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -0,0 +1,77 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
buildPythonPackage,
|
||||
fetchPypi,
|
||||
python,
|
||||
pythonOlder,
|
||||
pythonAtLeast,
|
||||
pydantic,
|
||||
sentencepiece,
|
||||
tiktoken,
|
||||
torch,
|
||||
transformers,
|
||||
triton,
|
||||
}:
|
||||
|
||||
let
|
||||
pyShortVersion = "cp" + builtins.replaceStrings [ "." ] [ "" ] python.pythonVersion;
|
||||
platforms = rec {
|
||||
aarch64-darwin = "macosx_13_0_arm64";
|
||||
x86_64-darwin = "macosx_10_15_x86_64";
|
||||
x86_64-linux = "manylinux_2_27_x86_64.manylinux_2_28_x86_64";
|
||||
};
|
||||
platform = platforms.${stdenv.system} or (throw "Unsupported system: ${stdenv.system}");
|
||||
# hashes retrieved via the following command
|
||||
# curl https://pypi.org/pypi/xgrammar/${version}/json | jq -r '.urls[] | "\(.digests.sha256) \(.filename)"'
|
||||
hashes = rec {
|
||||
cp39-aarch64-darwin = "12dd579a7073c14981e01aeee566d20e60001bf90af23024e0e6692a770ff535";
|
||||
cp39-x86_64-darwin = "035ec93306543b99bf2141dcc7f1a6dd0c255753fc8b5a2b5f3289a59fed8e37";
|
||||
cp39-x86_64-linux = "3b3975dcf4b3ed7b16bbe3c068738b09847f841793e1c5e1b4a07dff36bbdc37";
|
||||
cp310-aarch64-darwin = "93bb6c10cbdf1a2bda3b458d97b47436657d780f98dccf3d266e17e13568c0a9";
|
||||
cp310-x86_64-darwin = "5ed31db2669dc499d9d29bb16f30b3395332ff9d0fb80b759697190a5ef5258b";
|
||||
cp310-x86_64-linux = "9c6f571121e4af45e3b5dc55f3dadd751cffff1f85f1c6fc5c4276db2bbed222";
|
||||
cp311-aarch64-darwin = "b293443725eddad31cf7b407bb24d5f3156c4b12a2c8041743cb7068a69fadcb";
|
||||
cp311-x86_64-darwin = "b2106bceb2ce313628af915f2c2b1c9865612026dd3c9feddbfcc69e4ee6c971";
|
||||
cp311-x86_64-linux = "7934c968371d55759cac35be3b218cdf4b13f323f535ea0faa233240bab803b9";
|
||||
cp312-aarch64-darwin = "561f8d4307db8cf5d3c3b3ff46eda6d95379f6e801278dbf9153a9d5e8b6126c";
|
||||
cp312-x86_64-darwin = "6ac3cbb0a82a3a9d07f0739f63b2e26cbef7855149d236057dcc7fee74b37970";
|
||||
cp312-x86_64-linux = "1854d0fe6b908a3d2d42251a62e627224dbf6035a4322b844b1b5a277e3d0461";
|
||||
};
|
||||
hash =
|
||||
hashes."${pyShortVersion}-${stdenv.system}"
|
||||
or (throw "Unsupported Python version: ${python.pythonVersion}");
|
||||
in
|
||||
buildPythonPackage rec {
|
||||
pname = "xgrammar";
|
||||
version = "0.1.11";
|
||||
format = "wheel";
|
||||
|
||||
disabled = pythonOlder "3.9" || pythonAtLeast "3.13";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version format;
|
||||
dist = pyShortVersion;
|
||||
python = pyShortVersion;
|
||||
abi = pyShortVersion;
|
||||
platform = platform;
|
||||
sha256 = hash;
|
||||
};
|
||||
|
||||
pythonImportCheck = [ "xgrammar" ];
|
||||
|
||||
dependencies = [
|
||||
pydantic
|
||||
sentencepiece
|
||||
tiktoken
|
||||
torch
|
||||
transformers
|
||||
triton
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Efficient, Flexible and Portable Structured Generation";
|
||||
homepage = "https://xgrammar.mlc.ai";
|
||||
license = licenses.asl20;
|
||||
};
|
||||
}
|
||||
@@ -10,14 +10,14 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "tuxedo-drivers-${kernel.version}";
|
||||
version = "4.11.3";
|
||||
version = "4.12.1";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
group = "tuxedocomputers";
|
||||
owner = "development/packages";
|
||||
repo = "tuxedo-drivers";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-ylHREVzQY9U/YHmVYQ4qO+A8tUcWXOTspS4g9qn314o=";
|
||||
hash = "sha256-ZsfPs8VvvgguyNLSVi6n5hs0OzNwiK3bkooQ267mKtA=";
|
||||
};
|
||||
|
||||
buildInputs = [ pahole ];
|
||||
@@ -47,6 +47,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
blanky0230
|
||||
keksgesicht
|
||||
xaverdh
|
||||
XBagon
|
||||
];
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
|
||||
@@ -18,13 +18,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "check_ssl_cert";
|
||||
version = "2.85.1";
|
||||
version = "2.86.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "matteocorti";
|
||||
repo = "check_ssl_cert";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-ix3GyY7xIcrdwzECO6kD7fjccf9OK6Ey+NsSWWcH9ns=";
|
||||
hash = "sha256-IXwy6iRjrXVxpZiAYLMVmAgwm7Z8Ck/B0Mwi1UlRcSs=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
@@ -10738,6 +10738,8 @@ with pkgs;
|
||||
openexr = openexr_3;
|
||||
};
|
||||
|
||||
vllm = with python3Packages; toPythonApplication vllm;
|
||||
|
||||
vte-gtk4 = vte.override {
|
||||
gtkVersion = "4";
|
||||
};
|
||||
|
||||
@@ -18395,6 +18395,8 @@ self: super: with self; {
|
||||
inherit (pkgs) xgboost;
|
||||
};
|
||||
|
||||
xgrammar = callPackage ../development/python-modules/xgrammar { };
|
||||
|
||||
xhtml2pdf = callPackage ../development/python-modules/xhtml2pdf { };
|
||||
|
||||
xiaomi-ble = callPackage ../development/python-modules/xiaomi-ble { };
|
||||
|
||||
Reference in New Issue
Block a user