Merge master into staging-nixos

This commit is contained in:
nixpkgs-ci[bot]
2026-03-19 00:26:23 +00:00
committed by GitHub
46 changed files with 1194 additions and 525 deletions
+10
View File
@@ -10579,6 +10579,11 @@
githubId = 982322;
name = "Henrik Olsson";
};
henrikvtcodes = {
github = "henrikvtcodes";
githubId = 22358337;
name = "Henrik VT";
};
henrirosten = {
email = "henri.rosten@unikie.com";
github = "henrirosten";
@@ -11985,6 +11990,11 @@
github = "jaredmontoya";
githubId = 49511278;
};
jasanfarah = {
github = "jasanfarah";
githubId = 69898185;
name = "Jasan Farah";
};
jasoncarr = {
email = "jcarr250@gmail.com";
github = "jasoncarr0";
+1
View File
@@ -1780,6 +1780,7 @@
./services/web-apps/vikunja.nix
./services/web-apps/wakapi.nix
./services/web-apps/weblate.nix
./services/web-apps/websurfx.nix
./services/web-apps/whitebophir.nix
./services/web-apps/whoami.nix
./services/web-apps/wiki-js.nix
+14 -14
View File
@@ -2,6 +2,7 @@
config,
lib,
pkgs,
utils,
...
}:
let
@@ -11,20 +12,17 @@ let
documentationLink = "https://manual.calibre-ebook.com";
generatedDocumentationLink = documentationLink + "/generated/en/calibre-server.html";
execFlags = (
lib.concatStringsSep " " (
lib.mapAttrsToList (k: v: "${k} ${toString v}") (
lib.filterAttrs (name: value: value != null) {
"--listen-on" = cfg.host;
"--port" = cfg.port;
"--auth-mode" = cfg.auth.mode;
"--userdb" = cfg.auth.userDb;
}
)
++ [ (lib.optionalString (cfg.auth.enable == true) "--enable-auth") ]
++ cfg.extraFlags
execFlags =
lib.mapAttrsToList (k: v: "--${k}=${toString v}") (
lib.filterAttrs (name: value: value != null) {
listen-on = cfg.host;
port = cfg.port;
auth-mode = cfg.auth.mode;
userdb = cfg.auth.userDb;
}
)
);
++ lib.optional cfg.auth.enable "--enable-auth"
++ cfg.extraFlags;
in
{
@@ -150,7 +148,9 @@ in
serviceConfig = {
User = cfg.user;
Restart = "always";
ExecStart = "${cfg.package}/bin/calibre-server ${lib.concatStringsSep " " cfg.libraries} ${execFlags}";
ExecStart = utils.escapeSystemdExecArgs (
[ "${cfg.package}/bin/calibre-server" ] ++ execFlags ++ [ "--" ] ++ cfg.libraries
);
};
};
@@ -485,6 +485,7 @@ in
PrivateNetwork = cfg.database.createLocally; # defaultServiceConfig enables this by default, needs to be disabled for remote DBs
};
environment = env;
unitConfig.RequiresMountsFor = defaultServiceConfig.ReadWritePaths;
preStart = ''
# remove old papaerless-manage symlink
@@ -0,0 +1,115 @@
{
config,
lib,
pkgs,
...
}:
let
cfg = config.services.websurfx;
settingsFormat = pkgs.formats.lua { asBindings = true; };
settingsFile = settingsFormat.generate "config.lua" cfg.settings;
in
{
options = {
services.websurfx = {
enable = lib.mkEnableOption "Websurfx, a metasearch engine";
package = lib.mkPackageOption pkgs "websurfx" { };
openFirewall = lib.mkEnableOption "Whether to open the used port in the firewall";
settings = lib.mkOption {
type = lib.types.submodule {
freeformType = settingsFormat.type;
options.binding_ip = lib.mkOption {
type = lib.types.str;
default = "127.0.0.1";
description = "IP address on which the server should be launched";
};
options.port = lib.mkOption {
type = lib.types.port;
default = 4567;
description = "Port on which the server should be launched";
};
};
default = { };
description = ''
Configuration options for Websurfx, see
[websurfx/config.lua](https://github.com/neon-mmd/websurfx/blob/rolling/websurfx/config.lua)
for supported values.
'';
};
};
};
config = lib.mkIf cfg.enable {
services.websurfx.settings = {
# General
logging = lib.mkDefault true;
debug = lib.mkDefault false;
threads = lib.mkDefault 10;
# Server
production_use = lib.mkDefault false;
request_timeout = lib.mkDefault 30;
tcp_connection_keep_alive = lib.mkDefault 30;
pool_idle_connection_timeout = lib.mkDefault 30;
rate_limiter = {
number_of_requests = lib.mkDefault 20;
time_limit = lib.mkDefault 3;
};
https_adaptive_window_size = lib.mkDefault true;
operating_system_tls_certificates = lib.mkDefault true;
number_of_https_connections = lib.mkDefault 10;
client_connection_keep_alive = lib.mkDefault 120;
# Search
safe_search = lib.mkDefault 2;
# Website
colorscheme = lib.mkDefault "catppuccin-mocha";
theme = lib.mkDefault "simple";
animation = lib.mkDefault "simple-frosted-glow";
# Caching
#redis_url = "redis://127.0.0.1:8082"; # The nixpkgs build doesn't have the redis-cache feature enabled
cache_expiry_time = lib.mkDefault 600;
# Search Engines
upstream_search_engines = {
DuckDuckGo = lib.mkDefault true;
Searx = lib.mkDefault false;
Brave = lib.mkDefault false;
Startpage = lib.mkDefault false;
LibreX = lib.mkDefault false;
Mojeek = lib.mkDefault false;
Bing = lib.mkDefault false;
Wikipedia = lib.mkDefault true;
Yahoo = lib.mkDefault false;
};
proxy = lib.mkDefault null;
};
networking.firewall.allowedTCPPorts = lib.mkIf cfg.openFirewall [ cfg.settings.port ];
systemd.services.websurfx = {
description = "Websurfx, a metasearch engine";
serviceConfig = {
ExecStart = lib.getExe cfg.package;
DynamicUser = true;
RuntimeDirectory = "websurfx";
Environment = [ "HOME=%t/websurfx" ];
BindReadOnlyPaths = [ "${settingsFile}:%t/websurfx/.config/websurfx/config.lua" ];
};
wants = [ "network-online.target" ];
after = [ "network-online.target" ];
wantedBy = [ "multi-user.target" ];
};
};
meta.maintainers = [ lib.maintainers.SchweGELBin ];
}
@@ -13,13 +13,13 @@
}:
mkLibretroCore {
core = "ppsspp";
version = "0-unstable-2026-03-10";
version = "0-unstable-2026-03-18";
src = fetchFromGitHub {
owner = "hrydgard";
repo = "ppsspp";
rev = "ab1ee21996b78aaac1f82baa390990c8ce9a9936";
hash = "sha256-mzK+ADPTFCxiPxQDw8CtwJEW0nrX+ozUosV0N/jeMHk=";
rev = "5f6b4daf61ed8f005f759236ea363fa8ee7a1d08";
hash = "sha256-DNsNmtse35Bv3QxhJlYAFe3D0VRhSn2svwfiF+bgxxA=";
fetchSubmodules = true;
};
@@ -1,10 +1,10 @@
{
"chromium": {
"version": "146.0.7680.80",
"version": "146.0.7680.153",
"chromedriver": {
"version": "146.0.7680.80",
"hash_darwin": "sha256-sjCEvFWV07GNhXJ9CfGVtZ6nCeqsqtNtY4sPj/gq13w=",
"hash_darwin_aarch64": "sha256-kTxZJiF7mJlVbkDDFP4ZUB2htBn45se1Wuz28RP8pr8="
"version": "146.0.7680.154",
"hash_darwin": "sha256-jSAe8mkJ0mDqKJyzsaAuGwyG5lwdOHkYDUgxR2G+vJE=",
"hash_darwin_aarch64": "sha256-tCMADPY/Q2sjyHUvZPO9o+ZkLaZ7iTCLrTiPVUYVQr0="
},
"deps": {
"depot_tools": {
@@ -21,8 +21,8 @@
"DEPS": {
"src": {
"url": "https://chromium.googlesource.com/chromium/src.git",
"rev": "f08938029c887ea624da7a1717059788ed95034d",
"hash": "sha256-PCQeTdc6Fl74TLyvxjli4scIUIm0GgZ3e9wbC18Tclw=",
"rev": "85fd829a1b2049479ead5ed578f5ed105a094fe4",
"hash": "sha256-PshNuKAZBXohix711YGjE4X24ixVW29wxgeePNE9Xzs=",
"recompress": true
},
"src/third_party/clang-format/script": {
@@ -92,8 +92,8 @@
},
"src/third_party/angle": {
"url": "https://chromium.googlesource.com/angle/angle.git",
"rev": "1d3190bf5633327395d694d621258978d989dffd",
"hash": "sha256-QVtTxBBox8fiqTj0gjqvYx6HoBSlvuWIe5ki4iCQl08="
"rev": "e05753c6d05b17b23d514038957469c70b75475c",
"hash": "sha256-SMym7PN2acfw84Z95xWSbN/QV5UIDIOztWxFeTCfBsk="
},
"src/third_party/angle/third_party/glmark2/src": {
"url": "https://chromium.googlesource.com/external/github.com/glmark2/glmark2",
@@ -132,8 +132,8 @@
},
"src/third_party/dawn": {
"url": "https://dawn.googlesource.com/dawn.git",
"rev": "c46c81b25577c40de6e7e510743ae0454e0c8351",
"hash": "sha256-Duv3kNulPtVxCLPa3bFIev64O9Y4ObJP/IZz31oPJ0E="
"rev": "3d52cfc8dd0bc2cdbbecd9803cc08102de7e4597",
"hash": "sha256-lyAG9tKBWQ2yy/morStUd0ZKDPT58t8516NDCQG/jZs="
},
"src/third_party/dawn/third_party/glfw": {
"url": "https://chromium.googlesource.com/external/github.com/glfw/glfw",
@@ -422,8 +422,8 @@
},
"src/third_party/libaom/source/libaom": {
"url": "https://aomedia.googlesource.com/aom.git",
"rev": "4018d3b63456eb657475e66c352bfa86f321e0f5",
"hash": "sha256-RuCmzPIR6hW8znjQH4kQqSJmIIJWtMkUQjYEVn3B9AE="
"rev": "446588f90da2e3372a9352d3b2ba8ab3f342c8ce",
"hash": "sha256-hLddZzWBQZ/MEF5fcCiju5ibNPSb+zhahlxdLaczdsE="
},
"src/third_party/crabbyavif/src": {
"url": "https://chromium.googlesource.com/external/github.com/webmproject/CrabbyAvif.git",
@@ -602,8 +602,8 @@
},
"src/third_party/pdfium": {
"url": "https://pdfium.googlesource.com/pdfium.git",
"rev": "67cf48602b0c8aaa9807cd185212ee078eb30b21",
"hash": "sha256-jMoYwf63C0IHx/QcOT+LKCCYN3dJVUhC5COukkhwqx0="
"rev": "bccc616f83aaed08f65d4a707dfe00e24133772b",
"hash": "sha256-yfjXNWczeGwPlnAVB161OsFXiHms2IRstqKmoZ/AWFU="
},
"src/third_party/perfetto": {
"url": "https://chromium.googlesource.com/external/github.com/google/perfetto.git",
@@ -652,8 +652,8 @@
},
"src/third_party/skia": {
"url": "https://skia.googlesource.com/skia.git",
"rev": "248acd90d9a35ac46b2ec30201ae50f301b8a173",
"hash": "sha256-zOL5j9X72ZvYmS8MzQ+pqSkT8AWBz2IwmaH7I3LN1IE="
"rev": "3c7c530c115124b415c1f4e0e35694fbaefd2177",
"hash": "sha256-ObLypxiOKH/YoLw6uUA4MmHM44vA8iPhNCEfFcwip0Q="
},
"src/third_party/smhasher/src": {
"url": "https://chromium.googlesource.com/external/smhasher.git",
@@ -787,8 +787,8 @@
},
"src/third_party/webrtc": {
"url": "https://webrtc.googlesource.com/src.git",
"rev": "d1972add2a63b2a528a6471d447f82e0010b5215",
"hash": "sha256-evtOzxwWgKUaJl9zwpQDqPp1wM7w3DzjRcLg29z9ELQ="
"rev": "b2a90ac0037ee7187102ce2c40e5007216ca9a58",
"hash": "sha256-rX6NEN0RbfHPRqJqkGhypwWt/NcREvPaanL+CDxwhA8="
},
"src/third_party/wuffs/src": {
"url": "https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c.git",
@@ -817,8 +817,8 @@
},
"src/v8": {
"url": "https://chromium.googlesource.com/v8/v8.git",
"rev": "70253f966a7c3936f5a5ff57c6a4a4face1f16ad",
"hash": "sha256-8tA9nWXsiQ2Qt7pbALrhsnNFHOFLw/wlcz5OrFjYEI8="
"rev": "abb5d7b829d60a5dae46fbcee0e9d0d554d3a946",
"hash": "sha256-hnwiRarq+69BECxJ9FQD0XGqqA/OF66RxZUPWTzDaFE="
}
}
},
@@ -310,11 +310,11 @@
"vendorHash": null
},
"digitalocean_digitalocean": {
"hash": "sha256-CNHGuChMDqSFz8YXETfQzgyQw8p8Ua6u3gevFFr69RI=",
"hash": "sha256-QUx+pSj9FyY0+IOUcmBS32qEOgDAGxeQRcio6lQOGN4=",
"homepage": "https://registry.terraform.io/providers/digitalocean/digitalocean",
"owner": "digitalocean",
"repo": "terraform-provider-digitalocean",
"rev": "v2.79.0",
"rev": "v2.80.0",
"spdx": "MPL-2.0",
"vendorHash": null
},
+1
View File
@@ -106,5 +106,6 @@ stdenv.mkDerivation (finalAttrs: {
platforms = lib.platforms.unix;
license = lib.licenses.mit;
homepage = "https://fmv.jku.at/cadical/";
mainProgram = "cadical";
};
})
+2 -1
View File
@@ -41,7 +41,7 @@
}:
mkDerivation {
pname = "codd";
version = "0.1.6";
version = "0.1.8";
src = ./.;
isLibrary = true;
isExecutable = true;
@@ -72,6 +72,7 @@ mkDerivation {
unliftio
unliftio-core
unordered-containers
uuid
vector
];
executableHaskellDepends = [
+3 -3
View File
@@ -14,18 +14,18 @@
##############
let
# Haxl has relatively tight version requirements and is thus often marked as broken.
# Haxl has relatively tight version requirements and is often marked as broken.
haxlJailbroken = haskell.lib.markUnbroken (haskell.lib.doJailbreak haskellPackages.haxl);
generated = haskellPackages.callPackage ./generated.nix { haxl = haxlJailbroken; };
derivationWithVersion = haskell.lib.compose.overrideCabal rec {
version = "0.1.6";
version = "0.1.8";
src = fetchFromGitHub {
owner = "mzabani";
repo = "codd";
tag = "v${version}";
hash = "sha256-KdZCL09TERy/PolQyYYykEbPtG5yhxrLZSSo9n6p2WE=";
hash = "sha256-7MKlR3oepOwlBwiEpzz3NFepEYGqROT5RrYoe/vvBKM=";
};
# We only run codd's tests that don't require postgresql nor strace. We need to support unix sockets in codd's test suite
+5 -5
View File
@@ -184,11 +184,11 @@ let
linux = stdenvNoCC.mkDerivation (finalAttrs: {
inherit pname meta passthru;
version = "146.0.7680.80";
version = "146.0.7680.153";
src = fetchurl {
url = "https://dl.google.com/linux/chrome/deb/pool/main/g/google-chrome-stable/google-chrome-stable_${finalAttrs.version}-1_amd64.deb";
hash = "sha256-Lam/V3YtHyph4RDlz+vGbXESQuRNg+53wqgZoYFcwxU=";
hash = "sha256-b/DLXbvHbjUWFyJTXLoL0I6a/3r1YaVowNqr3oQ0imA=";
};
# With strictDeps on, some shebangs were not being patched correctly
@@ -302,11 +302,11 @@ let
darwin = stdenvNoCC.mkDerivation (finalAttrs: {
inherit pname meta passthru;
version = "146.0.7680.80";
version = "146.0.7680.154";
src = fetchurl {
url = "http://dl.google.com/release2/chrome/dzyizse52hr7lfzvs5c2ypryzq_146.0.7680.80/GoogleChrome-146.0.7680.80.dmg";
hash = "sha256-vKt8bQLAsiwjX2tdrkPjq6uC5wXSk8Jb3dr43ofbEt4=";
url = "http://dl.google.com/release2/chrome/aduhru4wjcwjo2cuql7gnsdev6hq_146.0.7680.154/GoogleChrome-146.0.7680.154.dmg";
hash = "sha256-u/i8fYn53BbQGFlBFTEayNpSQoeNPBJEBXr2KFArgW8=";
};
dontPatch = true;
+38
View File
@@ -0,0 +1,38 @@
{
lib,
buildGoModule,
fetchFromGitHub,
nix-update-script,
}:
buildGoModule (finalAttrs: {
pname = "kamal-proxy";
version = "0.9.1";
src = fetchFromGitHub {
owner = "basecamp";
repo = "kamal-proxy";
tag = "v${finalAttrs.version}";
hash = "sha256-oY1XwhoZx/GMg46nQAOK6tx9VzQoXTNdxE26FjBvbsg=";
};
vendorHash = "sha256-EDPHqVGkZeaV/9p3EywUkQTNbIdBkAjre9oxRi4c+WY=";
subPackages = [ "cmd/kamal-proxy" ];
env.CGO_ENABLED = 0;
ldflags = [ "-s" ];
passthru.updateScript = nix-update-script { };
meta = {
description = "Lightweight proxy server for Kamal";
homepage = "https://github.com/basecamp/kamal-proxy";
changelog = "https://github.com/basecamp/kamal-proxy/releases/tag/v${finalAttrs.version}";
license = lib.licenses.mit;
mainProgram = "kamal-proxy";
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [ jasanfarah ];
};
})
+5
View File
@@ -17,6 +17,11 @@ rustPlatform.buildRustPackage (finalAttrs: {
hash = "sha256-dLBgdcrIp5QM2TVIa86qX7m1c5n+qOIQJtqJPGvIZ+0=";
};
# Temporary fix to get build to pass until https://github.com/moghtech/komodo/pull/1122
patches = [
./rustc-1_9_2-fixes.patch
];
cargoHash = "sha256-jf/Jp28g3inGn5jQp3cACdhl//tbXTMc1vP1K3g/CyQ=";
# disable for check. document generation is fail
@@ -0,0 +1,52 @@
diff --git a/bin/core/src/alert/discord.rs b/bin/core/src/alert/discord.rs
index 427227d..6d19678 100644
--- a/bin/core/src/alert/discord.rs
+++ b/bin/core/src/alert/discord.rs
@@ -230,14 +230,13 @@ pub async fn send_alert(
)
}
AlertData::Custom { message, details } => {
- format!(
- "{level} | {message}{}",
- if details.is_empty() {
- format_args!("")
- } else {
- format_args!("\n{details}")
- }
- )
+ let details_str = if details.is_empty() {
+ String::new()
+ } else {
+ format!("\n{details} f")
+ };
+
+ format!("{level} | {message}{details_str}")
}
AlertData::None {} => Default::default(),
};
diff --git a/bin/core/src/alert/mod.rs b/bin/core/src/alert/mod.rs
index 9eba5da..1f51ac2 100644
--- a/bin/core/src/alert/mod.rs
+++ b/bin/core/src/alert/mod.rs
@@ -474,14 +474,13 @@ fn standard_alert_content(alert: &Alert) -> String {
)
}
AlertData::Custom { message, details } => {
- format!(
- "{level} | {message}{}",
- if details.is_empty() {
- format_args!("")
- } else {
- format_args!("\n{details}")
- }
- )
+ let details_str = if details.is_empty() {
+ String::new()
+ } else {
+ format!("\n{details}")
+ };
+
+ format!("{level} | {message}{details_str}")
}
AlertData::None {} => Default::default(),
}
@@ -13,20 +13,20 @@
stdenv.mkDerivation (finalAttrs: {
pname = "lasuite-docs-collaboration-server";
version = "4.4.0";
version = "4.8.1";
src = fetchFromGitHub {
owner = "suitenumerique";
repo = "docs";
tag = "v${finalAttrs.version}";
hash = "sha256-Cm/Ch7dBKInQYPFGfSlSMLgj8uQR6E3S+6gCFUyvFSU=";
hash = "sha256-R8DO7hsWt8+aKnHFEoZ06f1f+r8dNmNoPZRVBfr9VCY=";
};
sourceRoot = "source/src/frontend";
sourceRoot = "${finalAttrs.src.name}/src/frontend";
offlineCache = fetchYarnDeps {
yarnLock = "${finalAttrs.src}/src/frontend/yarn.lock";
hash = "sha256-JacPecJvdyATea8o1jQOxY9Gzx4kH+HLqE0eq03dzjg=";
hash = "sha256-F8VXjGY6Ct2Y8btqOmxZevCkxBvqg6xWZLYTZA2uUnM=";
};
nativeBuildInputs = [
@@ -12,20 +12,20 @@
stdenv.mkDerivation (finalAttrs: {
pname = "lasuite-docs-frontend";
version = "4.4.0";
version = "4.8.1";
src = fetchFromGitHub {
owner = "suitenumerique";
repo = "docs";
tag = "v${finalAttrs.version}";
hash = "sha256-Cm/Ch7dBKInQYPFGfSlSMLgj8uQR6E3S+6gCFUyvFSU=";
hash = "sha256-R8DO7hsWt8+aKnHFEoZ06f1f+r8dNmNoPZRVBfr9VCY=";
};
sourceRoot = "source/src/frontend";
sourceRoot = "${finalAttrs.src.name}/src/frontend";
offlineCache = fetchYarnDeps {
yarnLock = "${finalAttrs.src}/src/frontend/yarn.lock";
hash = "sha256-JacPecJvdyATea8o1jQOxY9Gzx4kH+HLqE0eq03dzjg=";
hash = "sha256-F8VXjGY6Ct2Y8btqOmxZevCkxBvqg6xWZLYTZA2uUnM=";
};
nativeBuildInputs = [
+6 -4
View File
@@ -11,12 +11,12 @@
yarnConfigHook,
}:
let
version = "4.5.0";
version = "4.8.1";
src = fetchFromGitHub {
owner = "suitenumerique";
repo = "docs";
tag = "v${version}";
hash = "sha256-/mI11ldbYa051WA2hkV7fnc8CJOb0jHra0FJ+eVCqVs=";
hash = "sha256-R8DO7hsWt8+aKnHFEoZ06f1f+r8dNmNoPZRVBfr9VCY=";
};
mail-templates = stdenv.mkDerivation {
@@ -29,7 +29,7 @@ let
offlineCache = fetchYarnDeps {
yarnLock = "${src}/src/mail/yarn.lock";
hash = "sha256-g71OGg0PAo60h0bC+oOyvLvPOCg0pYXuYD8vsR5X9/k=";
hash = "sha256-ag9+g48dWl5Ww/78qqgtcKwiyPVlpNiJ7w7+DPaar2U=";
};
nativeBuildInputs = [
@@ -47,7 +47,7 @@ python3Packages.buildPythonApplication (finalAttrs: {
pyproject = true;
inherit version src;
sourceRoot = "source/src/backend";
sourceRoot = "${finalAttrs.src.name}/src/backend";
patches = [
# Support configuration throught environment variables for SECURE_*
@@ -104,12 +104,14 @@ python3Packages.buildPythonApplication (finalAttrs: {
openai
psycopg
pycrdt
pydantic-ai-slim
pyjwt
pyopenssl
python-magic
redis
requests
sentry-sdk
uvicorn
whitenoise
]
++ celery.optional-dependencies.redis
@@ -0,0 +1,37 @@
{
lib,
rustPlatform,
fetchFromGitHub,
versionCheckHook,
nix-update-script,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "lepton-jpeg-util";
version = "0.5.3";
src = fetchFromGitHub {
owner = "microsoft";
repo = "lepton_jpeg_rust";
tag = "v${finalAttrs.version}";
hash = "sha256-DfVgQGGnrOOa/UdkYHSENbtxkbR0cTe08uglUM2hfGI=";
};
cargoHash = "sha256-AryHUFB6EWSUvKs+lBI16+A27VfRsr6aUtrwsiZxT28=";
buildAndTestSubdir = "util";
nativeInstallCheckInputs = [ versionCheckHook ];
doInstallCheck = true;
passthru.updateScript = nix-update-script { };
meta = {
description = "Port of DropBox Lepton compression to Rust";
changelog = "https://github.com/microsoft/lepton_jpeg_rust/releases/tag/v${finalAttrs.version}";
mainProgram = "lepton_jpeg_util";
homepage = "https://github.com/microsoft/lepton_jpeg_rust";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ skohtv ];
};
})
+2 -2
View File
@@ -18,13 +18,13 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "libredwg";
version = "0.13.3";
version = "0.13.4";
src = fetchFromGitHub {
owner = "LibreDWG";
repo = "libredwg";
tag = finalAttrs.version;
hash = "sha256-FlBHwNsqVSBE8dTDewoKkCbs8Jd/4d69MPpEFzg6Ruc=";
hash = "sha256-FeDQCByFGKfHJDOPQA92GslXZ33nhGfB6/63t2TeugE=";
fetchSubmodules = true;
};
+58 -55
View File
@@ -1,31 +1,31 @@
{
lib,
python3,
fetchPypi,
fetchFromGitHub,
python3,
withE2BE ? true,
}:
let
python = python3.override {
self = python;
packageOverrides = self: super: {
tulir-telethon = self.telethon.overridePythonAttrs (oldAttrs: rec {
version = "1.99.0a6";
pname = "tulir_telethon";
src = fetchPypi {
inherit pname version;
hash = "sha256-ewqc6s5xXquZJTZVBsFmHeamBLDw6PnTSNcmTNKD0sk=";
};
patches = [ ];
doCheck = false;
});
};
};
tulir-telethon = python3.pkgs.telethon.overrideAttrs (
finalAttrs: previousAttrs: {
version = "1.99.0a6";
pname = "tulir_telethon";
src = fetchFromGitHub {
owner = "tulir";
repo = "Telethon";
tag = "v${finalAttrs.version}";
hash = "sha256-ulnA+xKbZDOTzXYmF9oBWNBNhgxSiF+mKx1ijoCyo/w=";
};
dontUsePytestCheck = true;
}
);
in
python.pkgs.buildPythonPackage (finalAttrs: {
python3.pkgs.buildPythonApplication (finalAttrs: {
pname = "mautrix-telegram";
version = "0.15.3";
pyproject = true;
src = fetchFromGitHub {
owner = "mautrix";
@@ -34,47 +34,50 @@ python.pkgs.buildPythonPackage (finalAttrs: {
hash = "sha256-w3BqWyAJV/lZPoOFDzxhootpw451lYruwM9efwS6cEc=";
};
format = "setuptools";
build-system = with python3.pkgs; [ setuptools ];
patches = [ ./0001-Re-add-entrypoint.patch ];
propagatedBuildInputs =
with python.pkgs;
(
[
ruamel-yaml
python-magic
commonmark
aiohttp
yarl
(mautrix.override { withOlm = withE2BE; })
tulir-telethon
asyncpg
mako
setuptools
# speedups
cryptg
aiodns
brotli
# qr_login
pillow
qrcode
# formattednumbers
phonenumbers
# metrics
prometheus-client
# sqlite
aiosqlite
# proxy support
pysocks
]
++ lib.optionals withE2BE [
# e2be
python-olm
pycryptodome
unpaddedbase64
]
);
pythonRelaxDeps = [
"mautrix"
"ruamel.yaml"
];
dependencies =
with python3.pkgs;
[
ruamel-yaml
python-magic
commonmark
aiohttp
yarl
(mautrix.override { withOlm = withE2BE; })
tulir-telethon
asyncpg
mako
setuptools
# speedups
cryptg
aiodns
brotli
# qr_login
pillow
qrcode
# formattednumbers
phonenumbers
# metrics
prometheus-client
# sqlite
aiosqlite
# proxy support
pysocks
]
++ lib.optionals withE2BE [
# e2be
python-olm
pycryptodome
unpaddedbase64
];
# has no tests
doCheck = false;
+27 -3
View File
@@ -12,14 +12,14 @@
python3Packages.buildPythonApplication (finalAttrs: {
pname = "mistral-vibe";
version = "2.4.2";
version = "2.5.0";
pyproject = true;
src = fetchFromGitHub {
owner = "mistralai";
repo = "mistral-vibe";
tag = "v${finalAttrs.version}";
hash = "sha256-r/9kMhkoLfj9oEifFun/bpIQYEouqm9YEiWZVk07+S8=";
hash = "sha256-5su0Qfg3M+Yq4pkptDOJhvM8VFGCaOLeeDijeFeywP4=";
};
build-system = with python3Packages; [
@@ -58,12 +58,14 @@ python3Packages.buildPythonApplication (finalAttrs: {
pyyaml
requests
rich
sounddevice
textual
textual-speedups
tomli-w
tree-sitter
tree-sitter-bash
watchfiles
websockets
zstandard
];
@@ -81,7 +83,29 @@ python3Packages.buildPythonApplication (finalAttrs: {
];
versionCheckKeepEnvironment = [ "HOME" ];
disabledTests = lib.optionals stdenv.hostPlatform.isDarwin [
disabledTests = [
# Fail in the sandbox
# vibe.core.audio_recorder.audio_recorder_port.NoAudioInputDeviceError: No audio input device available
"test_audio_stream_yields_chunks"
"test_auto_stops_after_max_duration"
"test_buffer_mode_audio_stream_yields_nothing"
"test_can_record_multiple_times"
"test_cancel_discards_audio"
"test_manual_stop_prevents_on_expire"
"test_on_expire_receives_audio"
"test_peak_clamps_to_one"
"test_peak_updates_from_callback"
"test_silent_audio_has_zero_peak"
"test_start_sets_recording_state"
"test_start_when_already_recording_raises"
"test_stop_from_event_loop_does_not_block"
"test_stop_returns_empty_data_in_stream_mode"
"test_stop_returns_positive_duration"
"test_stop_returns_valid_wav"
"test_stop_without_drain_returns_promptly"
"test_stream_audio_does_not_leak_into_buffer_recording"
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
# AssertionError
"test_rebuilds_index_when_mass_change_threshold_is_exceeded"
"test_updates_index_incrementally_by_default"
+2 -2
View File
@@ -12,13 +12,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "moosefs";
version = "4.58.3";
version = "4.58.4";
src = fetchFromGitHub {
owner = "moosefs";
repo = "moosefs";
rev = "v${finalAttrs.version}";
sha256 = "sha256-lEnCP+ORWdW52SVO7K3WxcjlFMrQFR9VT8fjquI/fZg=";
sha256 = "sha256-AvY1TOoxxpiqrMqngZe3BTgMuxwltQk1unr/IEfOLt4=";
};
nativeBuildInputs = [
+3 -3
View File
@@ -17,13 +17,13 @@
stdenv.mkDerivation {
pname = "mtPaint";
version = "3.50.12";
version = "3.50.14";
src = fetchFromGitHub {
owner = "wjaguar";
repo = "mtPaint";
rev = "7cae5d663ed835a365d89a535536c39e18862a83";
hash = "sha256-W/MQZ1WqoVMzyEd60rbvA8yieesDc/xfKqbYGZumi2U=";
rev = "8304376e8861a8a603371b0f188db30f9cafdc17";
hash = "sha256-dyBbzEjdgMPlPnjFlJoZOh5qjx/qY94F28jEr2ihLQE=";
};
strictDeps = true;
+27 -20
View File
@@ -71,27 +71,34 @@ rustPlatform.buildRustPackage (finalAttrs: {
nativeInstallCheckInputs = [ versionCheckHook ];
postInstall = lib.optionalString (stdenv.hostPlatform.emulatorAvailable buildPackages) ''
# Run both shell completion and manpage generation tasks. Unlike the
# fine-grained variants, the 'dist' command doesn't allow specifying the
# path but that's fine, because we can simply install them from the implicit
# output directories.
$out/bin/xtask dist
postInstall =
lib.optionalString (stdenv.hostPlatform.emulatorAvailable buildPackages) (
let
emulator = stdenv.hostPlatform.emulator buildPackages;
in
''
# Run both shell completion and manpage generation tasks. Unlike the
# fine-grained variants, the 'dist' command doesn't allow specifying the
# path but that's fine, because we can simply install them from the implicit
# output directories.
${emulator} $out/bin/xtask dist
# The dist task above should've created
# 1. Shell completions in comp/
# 2. The NH manpage (nh.1) in man/
# Let's install those.
# The important thing to note here is that installShellCompletion cannot
# actually load *all* shell completions we generate with 'xtask dist'.
# Elvish, for example isn't supported. So we have to be very explicit
# about what we're installing, or this will fail.
installShellCompletion --cmd ${finalAttrs.meta.mainProgram} ./comp/*.{bash,fish,zsh,nu}
installManPage ./man/nh.1
# Avoid populating PATH with an 'xtask' cmd
rm $out/bin/xtask
'';
# The dist task above should've created
# 1. Shell completions in comp/
# 2. The NH manpage (nh.1) in man/
# Let's install those.
# The important thing to note here is that installShellCompletion cannot
# actually load *all* shell completions we generate with 'xtask dist'.
# Elvish, for example isn't supported. So we have to be very explicit
# about what we're installing, or this will fail.
installShellCompletion --cmd ${finalAttrs.meta.mainProgram} ./comp/*.{bash,fish,zsh,nu}
installManPage ./man/nh.1
''
)
+ ''
# Avoid populating PATH with an 'xtask' cmd
rm $out/bin/xtask
'';
cargoHash = "sha256-BLv69rL5L84wNTMiKHbSumFU4jVQqAiI1pS5oNLY9yE=";
+17 -15
View File
@@ -1,21 +1,16 @@
Remove upstream workarounds for CMake "limitations" that do not appear to exist
in nixpkgs build environment, but rather break the build, presumably because
CMAKE_INSTALL_{BIN,LIB}DIR is an absolute path in our build so
CMAKE_INSTALL_PREFIX has no effect.
diff --git a/devices/CMakeLists.txt b/devices/CMakeLists.txt
index d5111cd..43986ad 100644
index a0ea112..4d03b4f 100644
--- a/devices/CMakeLists.txt
+++ b/devices/CMakeLists.txt
@@ -53,7 +53,6 @@ if(OIDN_DEVICE_CUDA)
-DCMAKE_CXX_COMPILER:FILEPATH=${_host_compiler}
-DCMAKE_TOOLCHAIN_FILE:FILEPATH=${CMAKE_TOOLCHAIN_FILE}
-DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
- -DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_CURRENT_BINARY_DIR}/cuda/preinstall
-DCMAKE_INSTALL_BINDIR:PATH=${CMAKE_INSTALL_BINDIR}
-DCMAKE_INSTALL_LIBDIR:PATH=${CMAKE_INSTALL_LIBDIR}
-DCUDAToolkit_ROOT:PATH=${CUDAToolkit_ROOT}
@@ -69,14 +68,6 @@ if(OIDN_DEVICE_CUDA)
@@ -47,7 +47,6 @@ if(OIDN_DEVICE_CUDA)
-DCMAKE_CXX_COMPILER:FILEPATH=${_host_compiler}
-DCMAKE_TOOLCHAIN_FILE:FILEPATH=${CMAKE_TOOLCHAIN_FILE}
-DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
- -DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_CURRENT_BINARY_DIR}/cuda/preinstall
-DCMAKE_INSTALL_BINDIR:PATH=${CMAKE_INSTALL_BINDIR}
-DCMAKE_INSTALL_LIBDIR:PATH=${CMAKE_INSTALL_LIBDIR}
-DOIDN_ROOT_BINARY_DIR:PATH=${OIDN_ROOT_BINARY_DIR}
@@ -78,14 +77,6 @@ if(OIDN_DEVICE_CUDA)
DEPENDS
OpenImageDenoise_core
)
@@ -30,3 +25,10 @@ index d5111cd..43986ad 100644
endif()
if(OIDN_DEVICE_HIP)
@@ -186,4 +177,4 @@ endif()
if(OIDN_DEVICE_METAL)
add_subdirectory(metal)
-endif()
\ No newline at end of file
+endif()
+8 -4
View File
@@ -19,10 +19,14 @@ stdenv.mkDerivation (finalAttrs: {
# The release tarballs include pretrained weights, which would otherwise need to be fetched with git-lfs
src = fetchzip {
url = "https://github.com/RenderKit/oidn/releases/download/v${finalAttrs.version}/oidn-${finalAttrs.version}.src.tar.gz";
sha256 = "sha256-SM0Bn4qgeqRJAXr2MMjNjfWJVTcciERZxMHiyx4Z1hA=";
hash = "sha256-SM0Bn4qgeqRJAXr2MMjNjfWJVTcciERZxMHiyx4Z1hA=";
};
patches = lib.optional cudaSupport ./cuda.patch;
strictDeps = true;
patches = lib.optionals cudaSupport [
./cuda.patch
];
postPatch = ''
# fix build failure with GCC14
@@ -35,7 +39,7 @@ stdenv.mkDerivation (finalAttrs: {
python3
ispc
]
++ lib.optional cudaSupport cudaPackages.cuda_nvcc
++ lib.optionals cudaSupport [ cudaPackages.cuda_nvcc ]
++ lib.optionals stdenv.hostPlatform.isDarwin [ xcodebuild ];
buildInputs = [
@@ -49,7 +53,7 @@ stdenv.mkDerivation (finalAttrs: {
cmakeFlags = [
(lib.cmakeBool "OIDN_DEVICE_CUDA" cudaSupport)
(lib.cmakeFeature "TBB_INCLUDE_DIR" "${onetbb.dev}/include")
(lib.cmakeFeature "TBB_INCLUDE_DIR" "${lib.getDev onetbb}/include")
(lib.cmakeFeature "TBB_ROOT" "${onetbb}")
];
+3 -2
View File
@@ -94,8 +94,9 @@ stdenv.mkDerivation (finalAttrs: {
};
meta = {
description = "JavaScript formatter with Prettier integration";
homepage = "https://github.com/oxc-project/oxc";
description = "High-performance formatter for the JavaScript ecosystem";
homepage = "https://oxc.rs/docs/guide/usage/formatter";
downloadPage = "https://github.com/oxc-project/oxc";
changelog = "https://github.com/oxc-project/oxc/blob/${finalAttrs.src.tag}/apps/oxfmt/CHANGELOG.md";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ natsukium ];
+6 -6
View File
@@ -5,20 +5,20 @@
ffmpeg,
}:
python3Packages.buildPythonApplication {
python3Packages.buildPythonApplication (finalAttrs: {
pname = "shira";
version = "1.7.1-unstable-2025-08-31";
version = "1.8.2";
pyproject = true;
src = fetchFromGitHub {
owner = "KraXen72";
repo = "shira";
rev = "a7478efa434597324458441f328c1b2f84c04dbc";
hash = "sha256-k15GaOmS0rlQBQldnLo1SzIyCkNQux6P5b7ZG2BIa90=";
tag = "v${finalAttrs.version}";
hash = "sha256-SgxEvIpjRfc0saoarqw8KySwhbk1UYCGjMcbhhWMhZg=";
};
build-system = [
python3Packages.flit-core
python3Packages.hatchling
];
dependencies = with python3Packages; [
@@ -46,4 +46,4 @@ python3Packages.buildPythonApplication {
maintainers = with lib.maintainers; [ thegu5 ];
mainProgram = "shiradl";
};
}
})
+38
View File
@@ -0,0 +1,38 @@
{
lib,
rustPlatform,
fetchFromGitHub,
versionCheckHook,
perl,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "stax";
version = "0.25.1";
src = fetchFromGitHub {
owner = "cesarferreira";
repo = "stax";
tag = "v${finalAttrs.version}";
hash = "sha256-HHunRVDoijBOcIzj0xknj2O+m+A1nmkkxu97XZcvmJw=";
};
nativeBuildInputs = [ perl ];
cargoHash = "sha256-cJmK5uX3HCz4own2UtXFkHdGFETjina2/UW18f/g/bA=";
doInstallCheck = true;
doCheck = false;
nativeInstallCheckInputs = [ versionCheckHook ];
versionCheckProgramArg = "--version";
meta = {
description = "Stacked-branch workflow for Git with an interactive TUI, smart PRs, and safe undo";
homepage = "https://github.com/cesarferreira/stax";
license = lib.licenses.mit;
mainProgram = "stax";
maintainers = with lib.maintainers; [
henrikvtcodes
];
};
})
+2 -2
View File
@@ -8,14 +8,14 @@
python3Packages.buildPythonApplication (finalAttrs: {
pname = "style50";
version = "2.10.4";
version = "2.11.0";
pyproject = true;
src = fetchFromGitHub {
owner = "cs50";
repo = "style50";
tag = "v${finalAttrs.version}";
hash = "sha256-59V3QZMYH5edBXv1GNdoaQxerDfKmLKUZ7VL3cvDvuE=";
hash = "sha256-THmxq69peJwT3XQKEpT+ooBYaDDkn1HHGVH5rvM/FF8=";
};
build-system = [
+3 -3
View File
@@ -9,13 +9,13 @@
}:
stdenv.mkDerivation {
pname = "syspower";
version = "0-unstable-2024-12-10";
version = "0-unstable-2025-12-31";
src = fetchFromGitHub {
owner = "System64fumo";
repo = "syspower";
rev = "323332b4d97a30360455682194ed35868fcbaf71";
hash = "sha256-obL9XUf8kONBWZoyrPvN1PWmEyQx8vMsl6KIneSjkGM=";
rev = "1a74a7895a02363dfcc23bb43cd3f7d7d8ad3320";
hash = "sha256-gLkjyhLA0QDG/89uTp32VEoOlTGaDjqZm1aLy+X36qw=";
};
buildInputs = [
@@ -76,10 +76,7 @@
depsByComponent.${shortName comp} or [ ]
) components;
phases = [
"installPhase"
"fixupPhase"
];
dontUnpack = true;
# See https://software.intel.com/content/www/us/en/develop/documentation/installation-guide-for-intel-oneapi-toolkits-linux/top/installation/install-with-command-line.html
installPhase = ''
@@ -0,0 +1,49 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
# build-system
uv-build,
# dependencies
httpx,
pydantic,
}:
buildPythonPackage (finalAttrs: {
pname = "genai-prices";
version = "0.0.55";
pyproject = true;
src = fetchFromGitHub {
owner = "pydantic";
repo = "genai-prices";
tag = "v${finalAttrs.version}";
hash = "sha256-FxHBVroKC9tgYJ+a429cnv7UVWMBoeTX+BEah7eD9Us=";
};
sourceRoot = "${finalAttrs.src.name}/packages/python";
build-system = [
uv-build
];
dependencies = [
httpx
pydantic
];
pythonImportsCheck = [
"genai_prices"
];
doCheck = false; # no tests
meta = {
description = "Calculate prices for calling LLM inference APIs";
homepage = "https://github.com/pydantic/genai-prices";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ hexa ];
};
})
@@ -0,0 +1,53 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
# build-system
hatchling,
pdm-backend,
uv-dynamic-versioning,
# optional-dependencies
pip,
platformdirs,
wheel,
}:
buildPythonPackage (finalAttrs: {
pname = "griffelib";
version = "2.0.0";
pyproject = true;
src = fetchFromGitHub {
owner = "mkdocstrings";
repo = "griffe";
tag = finalAttrs.version;
hash = "sha256-SiUkgkaHtq2aWraL5BJvItOExTGUQ+e6pQVXEwTM0mk=";
};
sourceRoot = "${finalAttrs.src.name}/packages/griffelib";
build-system = [
hatchling
pdm-backend
uv-dynamic-versioning
];
optional-dependencies.pypi = [
pip
platformdirs
wheel
];
pythonImportsCheck = [
"griffe"
];
meta = {
description = "Signatures for entire Python programs. Extract the structure, the frame, the skeleton of your project, to generate API documentation or find breaking changes in your API";
homepage = "https://github.com/mkdocstrings/griffe";
license = lib.licenses.isc;
maintainers = with lib.maintainers; [ hexa ];
};
})
@@ -0,0 +1,94 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
# build-system
pdm-backend,
# dependencies
anyio,
httpx,
httpx-ws,
msgspec,
typing-extensions,
# tests
pytest-asyncio,
pytestCheckHook,
}:
buildPythonPackage (finalAttrs: {
pname = "lmstudio";
version = "1.5.0";
pyproject = true;
src = fetchFromGitHub {
owner = "lmstudio-ai";
repo = "lmstudio-python";
tag = finalAttrs.version;
hash = "sha256-3LOoCWoQ7eXRPXHRio9Rtle07HcV3ZrWkrtVVY6mvfI=";
};
build-system = [
pdm-backend
];
dependencies = [
anyio
httpx
httpx-ws
msgspec
typing-extensions
];
pythonImportsCheck = [ "lmstudio" ];
nativeCheckInputs = [
pytest-asyncio
pytestCheckHook
];
disabledTests = [
# lmstudio.LMStudioRuntimeError: Local API host port is not yet resolved.
"test_session_disconnected_async"
];
disabledTestPaths = [
# ModuleNotFoundError: No module named 'pytest_subtests'
"tests/async/test_model_catalog_async.py"
"tests/sync/test_model_catalog_sync.py"
"tests/test_inference.py"
# lmstudio.LMStudioRuntimeError: Local API host port is not yet resolved.
"tests/async/test_embedding_async.py"
"tests/async/test_images_async.py"
"tests/async/test_inference_async.py"
"tests/async/test_llm_async.py"
"tests/async/test_model_handles_async.py"
"tests/async/test_repository_async.py"
"tests/async/test_sdk_bypass_async.py"
"tests/sync/test_embedding_sync.py"
"tests/sync/test_images_sync.py"
"tests/sync/test_inference_sync.py"
"tests/sync/test_llm_sync.py"
"tests/sync/test_model_handles_sync.py"
"tests/sync/test_repository_sync.py"
"tests/sync/test_sdk_bypass_sync.py"
"tests/test_convenience_api.py"
"tests/test_logging.py"
"tests/test_plugin_examples.py"
"tests/test_sessions.py"
"tests/test_timeouts.py"
];
__darwinAllowLocalNetworking = true;
meta = {
description = "LM Studio Python SDK";
homepage = "https://github.com/lmstudio-ai/lmstudio-python";
changelog = "https://github.com/lmstudio-ai/lmstudio-python/releases/tag/${finalAttrs.src.tag}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ GaetanLepage ];
};
})
@@ -9,13 +9,10 @@
# dependencies
eval-type-backport,
httpx,
invoke,
opentelemetry-api,
opentelemetry-exporter-otlp-proto-http,
opentelemetry-sdk,
opentelemetry-semantic-conventions,
pydantic,
python-dateutil,
pyyaml,
typing-inspection,
# optional-dependencies
@@ -26,19 +23,20 @@
requests,
# tests
opentelemetry-sdk,
pytestCheckHook,
}:
buildPythonPackage (finalAttrs: {
pname = "mistralai";
version = "1.12.3";
version = "2.0.4";
pyproject = true;
src = fetchFromGitHub {
owner = "mistralai";
repo = "client-python";
tag = "v${finalAttrs.version}";
hash = "sha256-DaCAO4/DoskFuRgNcoLWBuRdnxXfYhsgY/WZu/s1wk0=";
hash = "sha256-SLPLj9rp8TTOSE3ldobBFU1+MpffzH1Bpshw+7LLUvU=";
};
preBuild = ''
@@ -50,18 +48,15 @@ buildPythonPackage (finalAttrs: {
];
pythonRelaxDeps = [
"opentelemetry-exporter-otlp-proto-http"
"opentelemetry-semantic-conventions"
];
dependencies = [
eval-type-backport
httpx
invoke
opentelemetry-api
opentelemetry-exporter-otlp-proto-http
opentelemetry-sdk
opentelemetry-semantic-conventions
pydantic
python-dateutil
pyyaml
typing-inspection
];
@@ -80,7 +75,15 @@ buildPythonPackage (finalAttrs: {
pythonImportsCheck = [ "mistralai" ];
nativeCheckInputs = [
opentelemetry-sdk
pytestCheckHook
]
++ finalAttrs.passthru.optional-dependencies.agents
++ finalAttrs.passthru.optional-dependencies.gcp;
disabledTests = [
# AssertionError: <Response [200 OK]> is not an instance of <class 'mistralai.extra.observability.otel.TracedResponse'>
"TestOtelTracing"
];
meta = {
File diff suppressed because it is too large Load Diff
@@ -32,17 +32,16 @@
pytestCheckHook,
}:
buildPythonPackage rec {
buildPythonPackage (finalAttrs: {
pname = "outlines-core";
version = "0.2.13";
version = "0.2.14";
pyproject = true;
src = fetchFromGitHub {
owner = "dottxt-ai";
repo = "outlines-core";
tag = version;
hash = "sha256-mfw/cOLZPRcL3HWmrm/SyA0zDCPWr5F19EWIUdNu9jM=";
tag = finalAttrs.version;
hash = "sha256-XmXD2tWG2277bC318Bn9RqeEE7j9VdauvWnBmFS8Lsk=";
};
cargoDeps = rustPlatform.importCargoLock {
@@ -53,7 +52,7 @@ buildPythonPackage rec {
substituteInPlace Cargo.toml \
--replace-fail \
'version = "0.0.0"' \
'version = "${version}"'
'version = "${finalAttrs.version}"'
cp --no-preserve=mode ${./Cargo.lock} Cargo.lock
'';
@@ -67,7 +66,7 @@ buildPythonPackage rec {
];
buildInputs = [
openssl.dev
openssl
];
build-system = [
@@ -97,7 +96,10 @@ buildPythonPackage rec {
rm -rf outlines_core
'';
nativeCheckInputs = [ pytestCheckHook ] ++ lib.concatAttrValues optional-dependencies;
nativeCheckInputs = [
pytestCheckHook
]
++ lib.concatAttrValues finalAttrs.passthru.optional-dependencies;
disabledTests = [
# Tests that need to download from Hugging Face Hub.
@@ -116,8 +118,8 @@ buildPythonPackage rec {
meta = {
description = "Structured text generation (core)";
homepage = "https://github.com/outlines-dev/outlines-core";
changelog = "https://github.com/dottxt-ai/outlines-core/releases/tag/${version}";
changelog = "https://github.com/dottxt-ai/outlines-core/releases/tag/${finalAttrs.src.tag}";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ danieldk ];
};
}
})
@@ -31,6 +31,7 @@
google-genai,
iso3166,
jax,
lmstudio,
llama-cpp-python,
mistralai,
ollama,
@@ -41,26 +42,41 @@
tensorflow,
}:
buildPythonPackage rec {
buildPythonPackage (finalAttrs: {
pname = "outlines";
version = "1.2.9";
version = "1.2.12";
pyproject = true;
src = fetchFromGitHub {
owner = "outlines-dev";
repo = "outlines";
tag = version;
hash = "sha256-QuS8IokiOPJeh59+W4FLoE9dvBCChf2li70+Ex3aIwg=";
tag = finalAttrs.version;
hash = "sha256-DPxtvaEbPv3go2WD9lqXB6AfTSmIA+MsqZwxXVcpyXk=";
};
# Fix mistralai>=2.0 compatibility
postPatch = ''
substituteInPlace tests/models/test_mistral_type_adapter.py \
--replace-fail \
"from mistralai import (" \
"from mistralai.client.models import ("
substituteInPlace outlines/models/mistral.py \
--replace-fail \
"from mistralai import UserMessage" \
"from mistralai.client.models import UserMessage"
substituteInPlace outlines/models/mistral.py tests/models/test_mistral.py \
--replace-fail \
"from mistralai import Mistral" \
"from mistralai.client import Mistral"
'';
build-system = [
setuptools
setuptools-scm
];
pythonRelaxDeps = [
"outlines_core"
];
dependencies = [
cloudpickle
datasets
@@ -94,6 +110,7 @@ buildPythonPackage rec {
iso3166
jax
llama-cpp-python
lmstudio
mistralai
ollama
openai
@@ -109,11 +126,17 @@ buildPythonPackage rec {
];
disabledTests = [
# Incompatible with latest mistralai (AssertionError: assert False)
"test_mistral_type_adapter_input_chat"
"test_mistral_type_adapter_input_list"
"test_mistral_type_adapter_input_text"
# Try to dowload models from Hugging Face Hub
"test_application_callable_call"
"test_application_generator_reuse"
"test_application_template_call"
"test_application_template_error"
"test_check_hf_chat_template"
"test_generator_black_box_async_processor"
"test_generator_black_box_sync_processor"
"test_generator_init_multiple_output_type"
@@ -226,8 +249,8 @@ buildPythonPackage rec {
meta = {
description = "Structured text generation";
homepage = "https://github.com/outlines-dev/outlines";
changelog = "https://github.com/dottxt-ai/outlines/releases/tag/${version}";
changelog = "https://github.com/dottxt-ai/outlines/releases/tag/${finalAttrs.src.tag}";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ lach ];
};
}
})
@@ -0,0 +1,62 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
# build-system
hatchling,
uv-dynamic-versioning,
# dependencies
genai-prices,
griffelib,
httpx,
opentelemetry-api,
pydantic-graph,
pydantic,
typing-inspection,
}:
buildPythonPackage (finalAttrs: {
pname = "pydantic-ai-slim";
version = "1.70.0";
pyproject = true;
src = fetchFromGitHub {
owner = "pydantic";
repo = "pydantic-ai";
tag = "v${finalAttrs.version}";
hash = "sha256-eG+v5/v8PxGjTVdUcrwhWfIWHFXwNOLMFHsNK9zH7Wo=";
};
sourceRoot = "${finalAttrs.src.name}/pydantic_ai_slim";
build-system = [
hatchling
uv-dynamic-versioning
];
dependencies = [
genai-prices
griffelib
httpx
opentelemetry-api
pydantic-graph
pydantic
typing-inspection
];
pythonImportsCheck = [
"pydantic_ai"
];
doCheck = false;
meta = {
description = "GenAI Agent Framework, the Pydantic way";
homepage = "https://github.com/pydantic/pydantic-ai";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ hexa ];
};
})
@@ -0,0 +1,55 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
# build-system
hatchling,
uv-dynamic-versioning,
# dependencies
httpx,
logfire-api,
pydantic,
typing-inspection,
}:
buildPythonPackage (finalAttrs: {
pname = "pydantic-graph";
version = "1.70.0";
pyproject = true;
src = fetchFromGitHub {
owner = "pydantic";
repo = "pydantic-ai";
tag = "v${finalAttrs.version}";
hash = "sha256-eG+v5/v8PxGjTVdUcrwhWfIWHFXwNOLMFHsNK9zH7Wo=";
};
sourceRoot = "${finalAttrs.src.name}/pydantic_graph";
build-system = [
hatchling
uv-dynamic-versioning
];
dependencies = [
httpx
logfire-api
pydantic
typing-inspection
];
pythonImportsCheck = [
"pydantic_graph"
];
doCheck = false; # no tests
meta = {
description = "GenAI Agent Framework, the Pydantic way";
homepage = "https://github.com/pydantic/pydantic-ai";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ hexa ];
};
})
@@ -12,14 +12,14 @@
buildPythonPackage rec {
pname = "python-pooldose";
version = "0.8.2";
version = "0.8.6";
pyproject = true;
src = fetchFromGitHub {
owner = "lmaertin";
repo = "python-pooldose";
tag = version;
hash = "sha256-zhEUsbHIe31PQt4p0VhrZN3Y2ifE94br/D2ksRSh6Pg=";
hash = "sha256-MbfFCE88xWGGRkRPqZ9oftaydxs5R2cgIcdU0YqWQi4=";
};
build-system = [ setuptools ];
@@ -12,6 +12,7 @@
psutil,
pydantic,
pytestCheckHook,
pyyaml,
rich,
setuptools-scm,
setuptools,
@@ -22,8 +23,8 @@ let
owner = "emeryberger";
repo = "heap-layers";
name = "Heap-Layers";
rev = "a2048eae91b531dc5d72be7a194e0b333c06bd4c";
sha256 = "sha256-vl3z30CBX7hav/DM/UE0EQ9lLxZF48tMJrYMXuSulyA=";
tag = "v1.0.0";
hash = "sha256-p+8aUC124Digv3c9fZ7lLHg6H8FXoAcAQxlYzf9TYbM=";
};
printf-src = fetchFromGitHub {
@@ -31,20 +32,20 @@ let
repo = "printf";
name = "printf";
tag = "v4.0.0";
sha256 = "sha256-tgLJNJw/dJGQMwCmfkWNBvHB76xZVyyfVVplq7aSJnI=";
hash = "sha256-tgLJNJw/dJGQMwCmfkWNBvHB76xZVyyfVVplq7aSJnI=";
};
in
buildPythonPackage rec {
buildPythonPackage (finalAttrs: {
pname = "scalene";
version = "1.5.55";
version = "2.1.4";
pyproject = true;
src = fetchFromGitHub {
owner = "plasma-umass";
repo = "scalene";
tag = "v${version}";
hash = "sha256-aO7l/paYqbneDArAbXxptIlMGfvc1dAaFLucEj/7xbk=";
tag = "v${finalAttrs.version}";
hash = "sha256-ISXD7QegTL0OvAGS7KYZAk9MAKTr0hMFe/9ws02Ykgk=";
};
patches = [
@@ -52,6 +53,7 @@ buildPythonPackage rec {
];
prePatch = ''
mkdir vendor
cp -r ${heap-layers-src} vendor/Heap-Layers
mkdir vendor/printf
cp ${printf-src}/printf.c vendor/printf/printf.cpp
@@ -60,18 +62,19 @@ buildPythonPackage rec {
sed -i 's/^#define vsnprintf vsnprintf_/\/\/&/' vendor/printf/printf.h
'';
nativeBuildInputs = [
build-system = [
cython
setuptools
setuptools-scm
];
propagatedBuildInputs = [
dependencies = [
cloudpickle
jinja2
numpy
psutil
pydantic
pyyaml
rich
]
++ lib.optionals stdenv.hostPlatform.isLinux [ nvidia-ml-py ];
@@ -97,6 +100,14 @@ buildPythonPackage rec {
"test_nested_package_relative_import"
];
disabledTestPaths = [
# Broken pipe
# https://github.com/plasma-umass/scalene/issues/1017
"tests/test_coverup_50.py"
"tests/test_multiprocessing_spawn.py::TestReplacementSemLockPickling"
"tests/test_multiprocessing_spawn.py::TestSpawnModeIntegration"
];
# remove scalene directory to prevent pytest import confusion
preCheck = ''
rm -rf scalene
@@ -107,7 +118,7 @@ buildPythonPackage rec {
meta = {
description = "High-resolution, low-overhead CPU, GPU, and memory profiler for Python with AI-powered optimization suggestions";
homepage = "https://github.com/plasma-umass/scalene";
changelog = "https://github.com/plasma-umass/scalene/releases/tag/v${version}";
changelog = "https://github.com/plasma-umass/scalene/releases/tag/${finalAttrs.src.tag}";
mainProgram = "scalene";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ sarahec ];
@@ -122,4 +133,4 @@ buildPythonPackage rec {
"aarch64-darwin"
];
};
}
})
@@ -1,8 +1,8 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
fetchpatch,
fetchFromCodeberg,
pythonAtLeast,
openssl,
rsa,
pyaes,
@@ -12,33 +12,19 @@
pytestCheckHook,
}:
buildPythonPackage rec {
buildPythonPackage (finalAttrs: {
pname = "telethon";
version = "1.42.0";
pyproject = true;
src = fetchFromGitHub {
owner = "LonamiWebs";
src = fetchFromCodeberg {
owner = "Lonami";
repo = "Telethon";
tag = "v${version}";
tag = "v${finalAttrs.version}";
hash = "sha256-NMHJkSTGR3/tck0k97EfVN9f85PAWst+EZ6G7Tgrt5s=";
};
patches = [
# https://github.com/LonamiWebs/Telethon/pull/4670
(fetchpatch {
url = "https://github.com/LonamiWebs/Telethon/commit/8e2a46568ef9193f5887aea1abf919ac4ca6d31e.patch";
name = "fix_async_test.patch";
hash = "sha256-oVpLnO4OxNam/mq945OskVEHkbS5TDSUXk/0xPHVv3I=";
})
]
++ lib.optionals (lib.versionOlder version "1.40.1") [
(fetchpatch {
url = "https://github.com/LonamiWebs/Telethon/commit/ae9c798e2c3648ff40dee1b3f371f5d66851642e.patch";
name = "fix_test_messages_test.patch";
hash = "sha256-8SJm8EE6w7zRQxt1NuTX6KP1MTYPiYO/maJ5tOA2I9w=";
})
];
disabled = pythonAtLeast "3.14";
postPatch = ''
substituteInPlace telethon/crypto/libssl.py --replace-fail \
@@ -61,13 +47,14 @@ buildPythonPackage rec {
nativeCheckInputs = [
pytest-asyncio
pytestCheckHook
];
]
++ lib.concatAttrValues finalAttrs.passthru.optional-dependencies;
meta = {
homepage = "https://github.com/LonamiWebs/Telethon";
homepage = "https://codeberg.org/Lonami/Telethon";
description = "Full-featured Telegram client library for Python 3";
license = lib.licenses.mit;
changelog = "https://github.com/LonamiWebs/Telethon/blob/${src.tag}/readthedocs/misc/changelog.rst";
changelog = "https://codeberg.org/Lonami/Telethon/blob/${finalAttrs.src.tag}/readthedocs/misc/changelog.rst";
maintainers = with lib.maintainers; [ nyanloutre ];
};
}
})
+10
View File
@@ -6088,6 +6088,8 @@ self: super: with self; {
}
);
genai-prices = callPackage ../development/python-modules/genai-prices { };
genanki = callPackage ../development/python-modules/genanki { };
general-sam = callPackage ../development/python-modules/general-sam { };
@@ -6706,6 +6708,8 @@ self: super: with self; {
griffe = callPackage ../development/python-modules/griffe { };
griffelib = callPackage ../development/python-modules/griffelib { };
grip = callPackage ../development/python-modules/grip { };
groestlcoin-hash = callPackage ../development/python-modules/groestlcoin-hash { };
@@ -9209,6 +9213,8 @@ self: super: with self; {
lmnotify = callPackage ../development/python-modules/lmnotify { };
lmstudio = callPackage ../development/python-modules/lmstudio { };
lmtpd = callPackage ../development/python-modules/lmtpd { };
lnkparse3 = callPackage ../development/python-modules/lnkparse3 { };
@@ -13489,6 +13495,8 @@ self: super: with self; {
pydantic = callPackage ../development/python-modules/pydantic { };
pydantic-ai-slim = callPackage ../development/python-modules/pydantic-ai-slim { };
pydantic-argparse-extensible =
callPackage ../development/python-modules/pydantic-argparse-extensible
{ };
@@ -13499,6 +13507,8 @@ self: super: with self; {
pydantic-extra-types = callPackage ../development/python-modules/pydantic-extra-types { };
pydantic-graph = callPackage ../development/python-modules/pydantic-graph { };
pydantic-scim = callPackage ../development/python-modules/pydantic-scim { };
pydantic-settings = callPackage ../development/python-modules/pydantic-settings { };