Merge staging-next into staging

This commit is contained in:
nixpkgs-ci[bot]
2026-04-19 00:31:40 +00:00
committed by GitHub
60 changed files with 1251 additions and 272 deletions
+6
View File
@@ -16258,6 +16258,12 @@
github = "M0ustach3";
githubId = 37956764;
};
m1-s = {
email = "michael@m1-s.com";
github = "m1-s";
githubId = 94642227;
name = "Michael Schneider";
};
m1cr0man = {
email = "lucas+nix@m1cr0man.com";
github = "m1cr0man";
@@ -174,7 +174,11 @@ def generate_driver_symbols() -> None:
vlans=[],
global_timeout=0,
enable_ssh_backdoor=False,
test_script=Path("testScriptWithTypes"),
test_script=(
Path("testScriptWithTypes")
if (Path("testScriptWithTypes").is_file())
else Path("testScriptFile")
),
),
out_dir=Path(),
logger=CompositeLogger([]),
+2
View File
@@ -85,6 +85,8 @@ let
testScriptWithTypes
''}
echo -n "$testScript" > testScriptFile
cp "${config.driverConfiguration.test_script}" $out/test-script
ln -s ${testDriver}/bin/nixos-test-driver $out/bin/nixos-test-driver
+1
View File
@@ -1833,6 +1833,7 @@
./services/web-servers/traefik.nix
./services/web-servers/trafficserver/default.nix
./services/web-servers/ttyd.nix
./services/web-servers/tusd.nix
./services/web-servers/unit/default.nix
./services/web-servers/uwsgi.nix
./services/web-servers/varnish/default.nix
@@ -13,6 +13,12 @@ in
options = {
services.blueman = {
enable = lib.mkEnableOption "blueman, a bluetooth manager";
withApplet = lib.mkOption {
type = lib.types.bool;
default = true;
description = "Whether to spawn the Blueman tray applet.";
};
};
};
@@ -24,5 +30,15 @@ in
services.dbus.packages = [ pkgs.blueman ];
systemd.packages = [ pkgs.blueman ];
systemd.user.services.blueman-applet = lib.mkIf cfg.withApplet {
description = "Blueman tray applet";
wantedBy = [ "graphical-session.target" ];
partOf = [ "graphical-session.target" ];
serviceConfig = {
ExecStart = "${pkgs.blueman}/bin/blueman-applet";
Restart = "on-failure";
};
};
};
}
+162
View File
@@ -0,0 +1,162 @@
{
config,
lib,
pkgs,
...
}:
let
cfg = config.services.tusd;
username = "tusd";
groupname = "tusd";
args = [
"-host=${cfg.host}"
"-port=${toString cfg.port}"
"-base-path=${cfg.basePath}"
"-upload-dir=${cfg.uploadDir}"
]
++ lib.optional cfg.behindProxy "-behind-proxy"
++ lib.optional (cfg.maxSize != null) "-max-size=${toString cfg.maxSize}"
++ lib.optional (cfg.networkTimeout != null) "-network-timeout=${cfg.networkTimeout}"
++ lib.optional (cfg.hooksHttp != null) "-hooks-http=${cfg.hooksHttp}"
++ lib.optional (
cfg.hooksEnabledEvents != [ ]
) "-hooks-enabled-events=${lib.concatStringsSep "," cfg.hooksEnabledEvents}"
++ cfg.extraArgs;
in
{
meta.maintainers = with lib.maintainers; [ m1-s ];
options.services.tusd = {
enable = lib.mkEnableOption "tus resumable upload protocol server";
host = lib.mkOption {
type = lib.types.str;
default = "0.0.0.0";
description = "The host to bind the HTTP server to.";
};
port = lib.mkOption {
type = lib.types.port;
default = 8080;
description = "The port to bind the HTTP server to.";
};
openFirewall = lib.mkOption {
type = lib.types.bool;
default = false;
description = "Whether to open the firewall port for tusd.";
};
basePath = lib.mkOption {
type = lib.types.str;
default = "/files/";
description = "The basepath of the HTTP server.";
};
uploadDir = lib.mkOption {
type = lib.types.path;
default = "/var/lib/tusd/data";
description = "The directory to store uploads in.";
};
behindProxy = lib.mkEnableOption null // {
description = "Whether to respect X-Forwarded-* and similar headers which may be set by proxies.";
};
maxSize = lib.mkOption {
type = lib.types.nullOr lib.types.int;
default = null;
description = "The maximum size of a single upload in bytes.";
};
networkTimeout = lib.mkOption {
type = lib.types.nullOr lib.types.str;
default = null;
description = ''
The timeout for reading the request and writing the response.
If tusd does not receive data for this duration,
it will consider the connection dead.
'';
example = "30s";
};
hooksHttp = lib.mkOption {
type = lib.types.nullOr lib.types.str;
default = null;
description = "The HTTP endpoint to which hook events will be sent to.";
example = "http://localhost:8081/hooks";
};
hooksEnabledEvents = lib.mkOption {
type = lib.types.listOf lib.types.str;
default = [ ];
description = "The list of enabled hook events.";
example = [
"pre-create"
"post-finish"
];
};
extraArgs = lib.mkOption {
type = lib.types.listOf lib.types.str;
default = [ ];
description = "Additional arguments given to tusd.";
example = [
"-verbose"
"-log-format=json"
];
};
};
config = lib.mkIf cfg.enable {
users.users.${username} = {
isSystemUser = true;
group = groupname;
};
users.groups.${groupname} = { };
# tusd knows how to create subdirectories in this folder but we have to
# create the root folder ourselves.
systemd.tmpfiles.settings."tusd".${cfg.uploadDir}.d = {
user = username;
group = groupname;
# default taken from https://github.com/tus/tusd/blob/55a096a10942b85360664a1e8aea7bd758272053/pkg/filestore/filestore.go#L37
mode = "0775";
};
systemd.services.tusd = {
description = "tusd - tus resumable upload protocol server";
documentation = [ "https://github.com/tus/tusd" ];
wantedBy = [ "multi-user.target" ];
after = [ "network.target" ];
serviceConfig = {
User = username;
Group = groupname;
ExecStart = lib.escapeShellArgs ([ (lib.getExe pkgs.tusd) ] ++ args);
Restart = "on-failure";
StateDirectory = "tusd";
# Hardening
LockPersonality = true;
ProtectClock = true;
ProtectControlGroups = true;
ProtectHostUserNamespaces = true;
ProtectKernelLogs = true;
ProtectKernelModules = true;
ProtectKernelTunables = true;
ProtectProc = "invisible";
RestrictNamespaces = true;
RestrictRealtime = true;
RestrictSUIDSGID = true;
};
};
networking.firewall.allowedTCPPorts = lib.optional cfg.openFirewall cfg.port;
};
}
+36 -24
View File
@@ -3,21 +3,21 @@
let
grpcPort = 19090;
queryPort = 9090;
minioPort = 9000;
garagePort = 9000;
pushgwPort = 9091;
frontPort = 9092;
s3 = {
accessKey = "BKIKJAA5BMMU2RHO6IBB";
secretKey = "V7f1CwQqAcwo80UEIJEjc5gVQUSSx5ohQ9GSrr12";
accessKey = "GKaaaaaaaaaaaaaaaaaaaaaaaa";
secretKey = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
};
objstore.config = {
type = "S3";
config = {
bucket = "thanos-bucket";
endpoint = "s3:${toString minioPort}";
region = "us-east-1";
endpoint = "garage:${toString garagePort}";
region = "garage";
access_key = s3.accessKey;
secret_key = s3.secretKey;
insecure = true;
@@ -139,14 +139,14 @@ in
environment.systemPackages = [ pkgs.yq ];
# This configuration just adds a new prometheus job
# to scrape the node_exporter metrics of the s3 machine.
# to scrape the node_exporter metrics of the garage machine.
services.prometheus = {
scrapeConfigs = [
{
job_name = "s3-node_exporter";
job_name = "garage-node_exporter";
static_configs = [
{
targets = [ "s3:9100" ];
targets = [ "garage:9100" ];
}
];
}
@@ -207,21 +207,30 @@ in
};
};
s3 =
garage =
{ pkgs, ... }:
{
# Minio requires at least 1GiB of free disk space to run.
# Garage requires at least 1GiB of free disk space to run.
virtualisation = {
diskSize = 2 * 1024;
};
networking.firewall.allowedTCPPorts = [ minioPort ];
networking.firewall.allowedTCPPorts = [ garagePort ];
services.minio = {
services.garage = {
enable = true;
inherit (s3) accessKey secretKey;
};
package = pkgs.garage_2;
settings = {
rpc_bind_addr = "127.0.0.1:3901";
rpc_public_addr = "127.0.0.1:3901";
rpc_secret = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
replication_factor = 1;
environment.systemPackages = [ pkgs.minio-client ];
s3_api = {
s3_region = "garage";
api_bind_addr = "0.0.0.0:${toString garagePort}";
};
};
};
services.prometheus.exporters.node = {
enable = true;
@@ -235,17 +244,20 @@ in
''
# Before starting the other machines we first make sure that our S3 service is online
# and has a bucket added for thanos:
s3.start()
s3.wait_for_unit("minio.service")
s3.wait_for_open_port(${toString minioPort})
s3.succeed(
"mc alias set minio "
+ "http://localhost:${toString minioPort} "
+ "${s3.accessKey} ${s3.secretKey} --api s3v4",
"mc mb minio/thanos-bucket",
garage.start()
garage.wait_for_unit("garage.service")
garage.wait_for_open_port(3901)
garage_node_id = garage.succeed("garage status | tail -n1 | awk '{ print $1 }'")
garage.succeed(
f"garage layout assign -c 100MB -z garage {garage_node_id}",
"garage layout apply --version 1",
"garage key import ${s3.accessKey} ${s3.secretKey} --yes",
"garage bucket create thanos-bucket",
"garage bucket allow --read --write --owner thanos-bucket --key ${s3.accessKey}",
)
garage.wait_for_open_port(${toString garagePort})
# Now that s3 has started we can start the other machines:
# Now that the S3 service has started we can start the other machines:
for machine in prometheus, query, store:
machine.start()
+16 -22
View File
@@ -2,37 +2,28 @@
let
port = 1080;
client =
{ pkgs, ... }:
{
environment.systemPackages = [ pkgs.curl ];
};
server =
{ pkgs, ... }:
{
# tusd does not have a NixOS service yet.
systemd.services.tusd = {
wantedBy = [ "multi-user.target" ];
serviceConfig = {
ExecStart = ''${pkgs.tusd}/bin/tusd -port "${toString port}" -upload-dir=/data'';
};
};
networking.firewall.allowedTCPPorts = [ port ];
};
uploadDir = "/var/lib/tusd/data";
in
{
name = "tusd";
meta.maintainers = with lib.maintainers; [
m1-s
nh2
kalbasit
];
nodes = {
inherit server;
inherit client;
client = {
environment.systemPackages = [ pkgs.curl ];
};
server = {
services.tusd = {
enable = true;
inherit port uploadDir;
openFirewall = true;
};
};
};
testScript = ''
@@ -46,6 +37,9 @@ in
client.wait_for_unit("network.target")
client.succeed("${./tus-curl-upload.sh} file-100M.bin http://server:${toString port}/files/")
# Verify file was created in uploadDir
server.succeed("test -n \"$(ls -A ${uploadDir})\"")
print("Upload succeeded")
'';
}
@@ -8,8 +8,8 @@ vscode-utils.buildVscodeMarketplaceExtension {
mktplcRef = {
name = "claude-code";
publisher = "anthropic";
version = "2.1.112";
hash = "sha256-ILNV8wZXgN+JmcoVqMn7NitdgBjEIqTHvWbE2D2WWn4=";
version = "2.1.114";
hash = "sha256-rcEbeYsyhbhh5wj6Mo3kz2+K3uZe5XMBKpwmSaB9Pgc=";
};
postInstall = ''
@@ -7,8 +7,8 @@ vscode-utils.buildVscodeMarketplaceExtension {
mktplcRef = {
publisher = "google";
name = "colab";
version = "0.7.3";
hash = "sha256-+YhPF2SMOIA95VMiew/tiCf//xqGgmJyW7Bpn39geJ8=";
version = "0.8.0";
hash = "sha256-bkZCDBWiHdj3bKEdj2bVNUY84SkAMHi7PwZuUnhyR+0=";
};
meta = {
@@ -5,13 +5,13 @@
}:
mkLibretroCore {
core = "prboom";
version = "0-unstable-2026-04-10";
version = "0-unstable-2026-04-11";
src = fetchFromGitHub {
owner = "libretro";
repo = "libretro-prboom";
rev = "79d35037b742532e273b82088efad9c5c0af8a6d";
hash = "sha256-BR1orEzjT8NQF59uPfHt6WlXwb23bDRnUV8F2itc/HM=";
rev = "c834221f61e4efa43525392cf778b6475467f236";
hash = "sha256-mESKZiiCIbbAzn7tFeofWARHSZ+MyEYTIa04FGxOMlA=";
};
makefile = "Makefile";
@@ -1076,11 +1076,11 @@
"vendorHash": "sha256-F1AuO/dkldEDRvkwrbq2EjByxjg3K2rohZAM4DzKPUw="
},
"pagerduty_pagerduty": {
"hash": "sha256-Pvx0Fn+NpY+C/U2kUGImoJrglQooWht3eE2pdN/XVCw=",
"hash": "sha256-w5FNU3HYIrplFyyw3V6RpJ6exW83F+u/CRdr9htbuxs=",
"homepage": "https://registry.terraform.io/providers/PagerDuty/pagerduty",
"owner": "PagerDuty",
"repo": "terraform-provider-pagerduty",
"rev": "v3.32.1",
"rev": "v3.32.2",
"spdx": "MPL-2.0",
"vendorHash": null
},
+2 -2
View File
@@ -11,13 +11,13 @@
buildGoModule (finalAttrs: {
pname = "bootdev-cli";
version = "1.26.0";
version = "1.29.0";
src = fetchFromGitHub {
owner = "bootdotdev";
repo = "bootdev";
tag = "v${finalAttrs.version}";
hash = "sha256-hr8mqnX4mv6P8WpXCpP678lLUaanUu6X4jL5GJeBdzo=";
hash = "sha256-i1U1AsFB/z3h/Aj+YSrfi/U1GWUyawfuL2zJiCWWPgI=";
};
vendorHash = "sha256-ZDioEU5uPCkd+kC83cLlpgzyOsnpj2S7N+lQgsQb8uY=";
+18 -18
View File
@@ -1,46 +1,46 @@
{
"version": "2.1.112",
"buildDate": "2026-04-16T18:39:33Z",
"version": "2.1.114",
"buildDate": "2026-04-17T22:43:08Z",
"platforms": {
"darwin-arm64": {
"binary": "claude",
"checksum": "b05381f382754012b95984016000f7062a2f127a6a3a843afc37ebd7d4672340",
"size": 203956832
"checksum": "bf1b4da368da7970f0d1d4a1675acea99b6f2ad94f24e9f8ccfcc7940ac67894",
"size": 204534752
},
"darwin-x64": {
"binary": "claude",
"checksum": "a2a7fea41acee4c889b30132dd490ac00b1cb86c6e25755a224d91b1cba97734",
"size": 205442640
"checksum": "1a30360b6240056a58ba9187c8f9d2e88e949e0f970d5cf81f8d69bc65568f6a",
"size": 206004048
},
"linux-arm64": {
"binary": "claude",
"checksum": "1015ef5747767cdac58376de4ec990253dcac49314d54e19750d5512fa7422f6",
"size": 236128832
"checksum": "9556b74e2c912e7dcaef90c91fd0dd5095364f8a9d71398de3c5c669612b828a",
"size": 236653120
},
"linux-x64": {
"binary": "claude",
"checksum": "57be9406d3e5cae259552790bf7288dd6496675430ec93dbed76a33a57580d3d",
"size": 235846272
"checksum": "12bd4b0916deb06be17ffc7b2f0485e140bf00b2db3dcb78469d66723d73c27f",
"size": 236411520
},
"linux-arm64-musl": {
"binary": "claude",
"checksum": "dcf16fc8ab6e4b504af6c66d5e5afc113a9a5da2a9d7e555cac0b301873a84f6",
"size": 228854208
"checksum": "20c68c312e76fb81f52cd2006b1461a0eedd470798f44b9b4a833ad583ccc05b",
"size": 229378496
},
"linux-x64-musl": {
"binary": "claude",
"checksum": "4b629f61a1e280a5e3c22bad8e1ea3118f4aebcde7e6754f18331c500e5b3fe0",
"size": 230111680
"checksum": "fbbcfa225e948d9263c39f8be29a956ea4bd3a445f79aa9396cdc3263ea05690",
"size": 230676928
},
"win32-x64": {
"binary": "claude.exe",
"checksum": "7eb4916245c797f89ae7905c4cd211429264ec38b1b8164b7babdfa7746eb839",
"size": 245424288
"checksum": "6f4a961ea8a1d656c41dd71cbef202cb71d13c443f86818c721167c33f8a51fd",
"size": 245966496
},
"win32-arm64": {
"binary": "claude.exe",
"checksum": "79336ca966d89d844eb8b198b8423cd8f75e0407d16359c1b492cc9decbbc999",
"size": 242155680
"checksum": "acdc5b7004491662f10622124c509b018a6a6c5566adf3e217f2dd4dad64ef34",
"size": 242697888
}
}
}
+3 -3
View File
@@ -8,17 +8,17 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "datafusion-cli";
version = "53.0.0";
version = "53.1.0";
src = fetchFromGitHub {
name = "datafusion-cli-source";
owner = "apache";
repo = "datafusion";
tag = finalAttrs.version;
hash = "sha256-DYNKYE8+rh/hkHpWnBl9C7licTst7WxNOV812vPXiQs=";
hash = "sha256-XEcZShliF3hNCszaAEWq2+3g86TRhG3/EEQ1Y2v1DiQ=";
};
cargoHash = "sha256-bMa8bcvD12lLf7/Kj0rcaFbzOa8nlTWkVsVzMbdRCXw=";
cargoHash = "sha256-IajrZse8YJJGskdX0Zo4IVdGj/jEGzF9tgj3g4nvXRo=";
buildAndTestSubdir = "datafusion-cli";
+70
View File
@@ -0,0 +1,70 @@
{
lib,
python3Packages,
fetchFromGitHub,
writableTmpDirAsHomeHook,
}:
python3Packages.buildPythonApplication rec {
pname = "dvr-scan";
version = "1.8.2";
pyproject = true;
__structuredAttrs = true;
src = fetchFromGitHub {
owner = "Breakthrough";
repo = "DVR-Scan";
tag = "v${version}-release";
hash = "sha256-+1liOZu8360aQlNwWaJXJQS/0POT9bTcIUkDg/v4lxU=";
};
build-system = with python3Packages; [
setuptools
];
dependencies = with python3Packages; [
numpy
opencv-contrib-python
pillow
platformdirs
scenedetect
screeninfo
tqdm
# GUI application
tkinter
];
nativeBuildInputs = with python3Packages; [
pytestCheckHook
writableTmpDirAsHomeHook
];
pythonRelaxDeps = [
"opencv-contrib-python"
];
disabledTests = [
# frame number mismatches with opencv 4.13+ (upstream issue #257)
"test_pre_event_shift_with_frame_skip"
"test_start_end_time"
"test_start_duration"
"test_default"
"test_concatenate"
"test_scan_only"
"test_quiet_mode"
"test_config_file"
];
meta = {
description = "Find and extract motion events in videos";
longDescription = ''
Command-line application that automatically detects motion events in video files (e.g. security camera footage). DVR-Scan looks for areas in footage containing motion, and saves each event to a separate video clip. DVR-Scan is free and open-source software, and works on Windows, Linux, and Mac.
'';
homepage = "https://www.dvr-scan.com";
changelog = "https://github.com/Breakthrough/DVR-Scan/releases/tag/v${version}-release";
mainProgram = "dvr-scan";
license = lib.licenses.bsd2;
maintainers = with lib.maintainers; [ DataHearth ];
};
}
+2 -2
View File
@@ -11,11 +11,11 @@ proton-ge-bin.overrideAttrs (
inherit steamDisplayName;
pname = "dwproton-bin";
version = "dwproton-10.0-23";
version = "dwproton-10.0-24";
src = fetchzip {
url = "https://dawn.wine/dawn-winery/dwproton/releases/download/${finalAttrs.version}/${finalAttrs.version}-x86_64.tar.xz";
hash = "sha256-XqXXxsTekvTUNsykpWu4vbZ4Mi+2tMR57zngaOt+3gQ=";
hash = "sha256-3mfJGi2pUwPgWNZCvGD1SNHghS2HThX5Y7TrnJaEYvw=";
};
passthru.updateScript = writeScript "update-dwproton" ''
+15 -9
View File
@@ -1,24 +1,30 @@
{
lib,
fetchFromGitHub,
openssl,
emmylua-ls,
pkg-config,
rustPlatform,
versionCheckHook,
nix-update-script,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "emmylua_check";
version = "0.21.0";
inherit (emmylua-ls) version src;
src = fetchFromGitHub {
owner = "EmmyLuaLs";
repo = "emmylua-analyzer-rust";
tag = finalAttrs.version;
hash = "sha256-2H/8ILVk5QnLe099a25pzMEqJLRFDxMG/fQ3f5UwgmI=";
};
nativeBuildInputs = [
pkg-config
];
buildInputs = [
openssl
];
# Needed to get openssl-sys to use pkg-config.
env.OPENSSL_NO_VENDOR = 1;
buildAndTestSubdir = "crates/emmylua_check";
cargoHash = "sha256-QdL4KtQ4sJUaviqMzxmC1KW4Qy5wO7c5koy0Pl8Eua0=";
cargoHash = "sha256-JNirHIKXFsiLme5oByerHjB/3lumuAr2u3pNfxh4qa0=";
nativeInstallCheckInputs = [
versionCheckHook
+2 -9
View File
@@ -1,19 +1,12 @@
{
fetchFromGitHub,
lib,
emmylua-ls,
rustPlatform,
versionCheckHook,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "emmylua_doc_cli";
version = "0.22.0";
src = fetchFromGitHub {
owner = "EmmyLuaLs";
repo = "emmylua-analyzer-rust";
tag = finalAttrs.version;
hash = "sha256-Zj5nLeTH/4sVElYP+erg6bSTX8jFqF7sqiXfaMam8pE=";
};
inherit (emmylua-ls) version src;
buildAndTestSubdir = "crates/emmylua_doc_cli";
+16 -3
View File
@@ -1,5 +1,7 @@
{
lib,
openssl,
pkg-config,
fetchFromGitHub,
rustPlatform,
versionCheckHook,
@@ -7,18 +9,29 @@
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "emmylua_ls";
version = "0.21.0";
version = "0.22.0";
src = fetchFromGitHub {
owner = "EmmyLuaLs";
repo = "emmylua-analyzer-rust";
tag = finalAttrs.version;
hash = "sha256-2H/8ILVk5QnLe099a25pzMEqJLRFDxMG/fQ3f5UwgmI=";
hash = "sha256-Zj5nLeTH/4sVElYP+erg6bSTX8jFqF7sqiXfaMam8pE=";
};
nativeBuildInputs = [
pkg-config
];
buildInputs = [
openssl
];
# Needed to get openssl-sys to use pkg-config.
env.OPENSSL_NO_VENDOR = 1;
buildAndTestSubdir = "crates/emmylua_ls";
cargoHash = "sha256-QdL4KtQ4sJUaviqMzxmC1KW4Qy5wO7c5koy0Pl8Eua0=";
cargoHash = "sha256-JNirHIKXFsiLme5oByerHjB/3lumuAr2u3pNfxh4qa0=";
nativeInstallCheckInputs = [
versionCheckHook
+1
View File
@@ -26,6 +26,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
nativeBuildInputs = [
nodejs-slim
nodejs-slim.npm
nodejs-slim.python
buildPackages.npmHooks.npmConfigHook
php84.packages.composer
+1
View File
@@ -49,6 +49,7 @@ stdenv.mkDerivation (finalAttrs: {
yarnBuildHook
yarnInstallHook
nodejs
nodejs.npm
(nodejs.python.withPackages (ps: [ ps.setuptools ]))
pkg-config
];
+112
View File
@@ -0,0 +1,112 @@
{
lib,
stdenv,
copyDesktopItems,
fetchFromGitHub,
libGL,
makeDesktopItem,
makeWrapper,
nix-update-script,
pkg-config,
sdl3,
versionCheckHook,
}:
let
inherit (stdenv.targetPlatform) isLinux isDarwin;
in
stdenv.mkDerivation (finalAttrs: {
pname = "gearboy";
version = "3.8.2";
src = fetchFromGitHub {
owner = "drhelius";
repo = "Gearboy";
tag = finalAttrs.version;
hash = "sha256-JgvTt/nUV2CiSJNC3NnKpoa28xAMhRxEh9txqE9FPzU=";
};
__structuredAttrs = true;
strictDeps = true;
buildInputs = [
libGL
sdl3
];
nativeBuildInputs = [
pkg-config
]
++ lib.optional isLinux copyDesktopItems
++ lib.optional isDarwin makeWrapper;
postPatch = ''
substituteInPlace platforms/shared/makefiles/Makefile.common \
--replace-fail 'GIT_VERSION := $(shell git describe --abbrev=7 --dirty --always --tags)' \
'GIT_VERSION := ${finalAttrs.version}'
''
# point the Linux binary to the `$out/opt/gearboy` location
+ lib.optionalString isLinux ''
substituteInPlace platforms/shared/desktop/gamepad.cpp \
--replace-fail 'db_path = std::string(exe_path) + "/gamecontrollerdb.txt";' \
'db_path = std::string(exe_path) + "/../opt/gearboy/gamecontrollerdb.txt";'
'';
makeFlags =
lib.optional isLinux "-Cplatforms/linux"
++ lib.optional isDarwin "-Cplatforms/macos"
++ lib.optional stdenv.cc.isClang "USE_CLANG=1";
enableParallelBuilding = true;
desktopItems = lib.optionals isLinux [
(makeDesktopItem {
type = "Application";
name = "Gearboy";
desktopName = "Gearboy";
genericName = "Game Boy Emulator";
comment = finalAttrs.meta.description;
exec = finalAttrs.meta.mainProgram;
categories = [
"Game"
"Emulator"
];
})
];
installPhase = ''
runHook preInstall
''
+ lib.optionalString isLinux ''
install -Dm755 platforms/linux/gearboy -t $out/bin
install -Dm644 platforms/shared/gamecontrollerdb.txt -t $out/opt/gearboy
''
+ lib.optionalString isDarwin ''
# create the Gearboy.app bundle
make $makeFlags bundle
mkdir -p $out/{bin,Applications}
cp -r platforms/macos/Gearboy.app $out/Applications/Gearboy.app
# using makeWrapper rather than a link, to have the `db_path` work in both
# the $out/bin binary and the App
makeWrapper $out/Applications/Gearboy.app/Contents/MacOS/gearboy $out/bin/gearboy
''
+ ''
runHook postInstall
'';
nativeInstallCheckInputs = [
versionCheckHook
];
doInstallCheck = true;
passthru.updateScript = nix-update-script { };
meta = {
description = "Game Boy/Game Boy Color/Super Game Boy emulator, debugger and embedded MCP server for macOS, Windows, Linux, BSD and RetroArch";
homepage = "https://github.com/drhelius/Gearboy";
license = lib.licenses.gpl3Only;
maintainers = [ lib.maintainers.nekowinston ];
mainProgram = "gearboy";
};
})
@@ -9,6 +9,7 @@
gettext,
itstool,
fetchurl,
fetchpatch,
pkg-config,
libxml2,
gtk4,
@@ -34,6 +35,14 @@ stdenv.mkDerivation (finalAttrs: {
hash = "sha256-3fTNLt2hNcQcivaPnAzc2dmpFjy59/jijKLI6B/Ydlc=";
};
patches = [
# Fix tests with GNU MPC 1.4.0
(fetchpatch {
url = "https://gitlab.gnome.org/GNOME/gnome-calculator/-/commit/c9bf69ce3688390a584ca7571ea5fcda5aea8863.patch";
hash = "sha256-FoV6SUprVdNcRORpoi+bNMTjzMM8bmXuze+6C9lqF8E=";
})
];
nativeBuildInputs = [
appstream
blueprint-compiler
+3 -3
View File
@@ -9,16 +9,16 @@
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "hl-log-viewer";
version = "0.35.3";
version = "0.36.1";
src = fetchFromGitHub {
owner = "pamburus";
repo = "hl";
tag = "v${finalAttrs.version}";
hash = "sha256-eEILIQ24QG2zAafex9dGQxQyXB6W8QVgqST3nL9hsI0=";
hash = "sha256-28R9WcKcAzw966vYD32R9z7ZN/6WlzPjaCmuR3b7a90=";
};
cargoHash = "sha256-KPI5rDDbc9WY/S1axMPPCN7ltkwg8W+9Zwm4EiNBZ+k=";
cargoHash = "sha256-dQTc8pwO49Meq3jkIvardEIDYZ3r4Z41uZiAymT6RWM=";
nativeBuildInputs = [ installShellFiles ];
+53
View File
@@ -0,0 +1,53 @@
{
fetchFromGitHub,
git,
lib,
libgit2,
nix-update-script,
pkg-config,
rustPlatform,
versionCheckHook,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "knope";
version = "0.22.4";
src = fetchFromGitHub {
owner = "knope-dev";
repo = "knope";
tag = "knope/v${finalAttrs.version}";
hash = "sha256-2lZhetmctKSfLXd7jvepm1+Vc0db1teryx6tehEHCJM=";
};
cargoHash = "sha256-L7IT7nWinyWiuIwlBmGmHDyKB+o3LJBanHVFRQpWB+c=";
nativeBuildInputs = [ pkg-config ];
buildInputs = [ libgit2 ];
env.LIBGIT2_NO_VENDOR = 1;
nativeCheckInputs = [ git ];
nativeInstallCheckInputs = [ versionCheckHook ];
__structuredAttrs = true;
doInstallCheck = true;
strictDeps = true;
passthru.updateScript = nix-update-script {
extraArgs = [
"--version-regex"
"knope/v(.*)"
];
};
meta = {
changelog = "https://github.com/knope-dev/knope/blob/${finalAttrs.src.tag}/CHANGELOG.md";
description = "Automation for changelogs and releases using conventional commits and/or changesets";
homepage = "https://knope.tech/";
mainProgram = "knope";
maintainers = with lib.maintainers; [ mdaniels5757 ];
license = lib.licenses.mit;
};
})
+2 -2
View File
@@ -15,7 +15,7 @@
stdenv.mkDerivation (finalAttrs: {
pname = "lean4";
version = "4.29.0";
version = "4.29.1";
# Using a vendored version rather than nixpkgs' version to match the exact version required by
# Lean. Apparently, even a slight version change can impact greatly the final performance.
@@ -30,7 +30,7 @@ stdenv.mkDerivation (finalAttrs: {
owner = "leanprover";
repo = "lean4";
tag = "v${finalAttrs.version}";
hash = "sha256-0v4OTrCLdHBbWJUq7hIjJonqget9SvsG3izGlOwhwyU=";
hash = "sha256-pdhRPjSic2H8zPJXLmyfN8umKDoafjmSo4OQSRxIbyE=";
};
postPatch =
+5
View File
@@ -26,6 +26,11 @@ stdenv.mkDerivation (finalAttrs: {
sha256 = "15rvrnszdy3db8s0dmb696l4isb3x2cpj7wcl4j09pdi59pc8p37";
};
postPatch = ''
substituteInPlace include/types.h \
--replace-fail "typedef unsigned char bool;" ""
'';
configureFlags = [
"--with-alsa=${lib.getLib alsa-lib}/lib/libasound.so"
"--with-pulse=${lib.getLib libpulseaudio}/lib/libpulse.so"
+4 -4
View File
@@ -10,23 +10,23 @@
let
pname = "osu-lazer-bin";
version = "2026.406.0";
version = "2026.418.0";
src =
{
aarch64-darwin = fetchzip {
url = "https://github.com/ppy/osu/releases/download/${version}-lazer/osu.app.Apple.Silicon.zip";
hash = "sha256-cFSTxS6L/JHyuoOTlvov0J6vD8mNE0EhLXQok66+4zk=";
hash = "sha256-zJRKgFbaXdXD8INiaDDemlNfVilTAyUEjkPNVF5H85Q=";
stripRoot = false;
};
x86_64-darwin = fetchzip {
url = "https://github.com/ppy/osu/releases/download/${version}-lazer/osu.app.Intel.zip";
hash = "sha256-DTQ+2BRK3tu0H4xOwJel2bgs8U5fk2EZSuAYyloXSPU=";
hash = "sha256-vUXvmfZd/dh4rzwcNgrVDnlrZxoJsBrjYt35hNz/WYw=";
stripRoot = false;
};
x86_64-linux = fetchurl {
url = "https://github.com/ppy/osu/releases/download/${version}-lazer/osu.AppImage";
hash = "sha256-RKKhf193BYF7dYL1x4gF2+Kl2xHuWZ/WMYBk4M/x8S0=";
hash = "sha256-51zjZ7OxftIKl21d2xCjUhaQMtwyQK6vEGRPTXnqjXU=";
};
}
.${stdenvNoCC.system} or (throw "osu-lazer-bin: ${stdenvNoCC.system} is unsupported.");
+6 -6
View File
@@ -6,8 +6,8 @@
},
{
"pname": "CodeFileSanity",
"version": "0.0.37",
"hash": "sha256-+BoA4FdDUfeREdc42xbnonh3IBLOjzyrrBosaswbSg4="
"version": "0.0.41",
"hash": "sha256-DJ0FeoxkwsywOl/yms1l2IW1YeHm6T3H7IMIMx3kksg="
},
{
"pname": "DiffPlex",
@@ -616,8 +616,8 @@
},
{
"pname": "ppy.osu.Framework",
"version": "2026.318.0",
"hash": "sha256-LKRgb7Qiuap13zPB14+StllK52Oz/VN35bGnymqek4s="
"version": "2026.416.0",
"hash": "sha256-moHhHajj0WlcA0hHdLTw4MoKLdnHJdw8+EhSrCcbUVY="
},
{
"pname": "ppy.osu.Framework.NativeLibs",
@@ -631,8 +631,8 @@
},
{
"pname": "ppy.osu.Game.Resources",
"version": "2026.404.0",
"hash": "sha256-ZMWNLcxY3WqfsYomDAQKBU7X179tkdMV1LdUk5jilxU="
"version": "2026.411.0",
"hash": "sha256-cc4GkPDnw22X2fPKSyULCflgvxS4cLqzx45j+KrZuiI="
},
{
"pname": "ppy.osuTK.NS20",
+2 -2
View File
@@ -22,13 +22,13 @@
buildDotnetModule rec {
pname = "osu-lazer";
version = "2026.406.0";
version = "2026.418.0";
src = fetchFromGitHub {
owner = "ppy";
repo = "osu";
tag = "${version}-lazer";
hash = "sha256-3Wg6BzMoP2BR5XAmdZgl3+Kt9YOFb+k3Qceh2hh9or8=";
hash = "sha256-0l0MlfCyO81X/Rpjhjc9WyxdhEhTLZcqRSOgYSaK6wk=";
};
projectFile = "osu.Desktop/osu.Desktop.csproj";
+2 -2
View File
@@ -13,13 +13,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "praat";
version = "6.4.62";
version = "6.4.63";
src = fetchFromGitHub {
owner = "praat";
repo = "praat.github.io";
tag = "v${finalAttrs.version}";
hash = "sha256-AyjCbTKPj3OemJCr3aTAtQhwnXFTA/EGcbBwARMIiWU=";
hash = "sha256-96fw5WRk1/zex65hcRdmx0wq2FTVett3FRDPhmsZr6g=";
};
strictDeps = true;
+3 -3
View File
@@ -16,20 +16,20 @@ let
};
};
version = "2026.1.0";
version = "2026.1.1";
src = fetchFromGitHub {
owner = "pretalx";
repo = "pretalx";
tag = "v${version}";
hash = "sha256-oSqeqVQ/L6DBI2ZP0h+qz2QBB4evt7V99tLMTkXvAic=";
hash = "sha256-qkItCF7MOtJQ8NKdB9ImIRKP8g+dzjddElUC4RvLW+s=";
};
meta = {
description = "Conference planning tool: CfP, scheduling, speaker management";
mainProgram = "pretalx-manage";
homepage = "https://github.com/pretalx/pretalx";
changelog = "https://docs.pretalx.org/changelog/#${version}";
changelog = "https://docs.pretalx.org/changelog/v${version}/";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [
hexa
+1
View File
@@ -63,6 +63,7 @@ stdenv.mkDerivation (finalAttrs: {
copyDesktopItems
makeWrapper
nodejs
nodejs.npm
(nodejs.python.withPackages (ps: [ ps.setuptools ]))
pkg-config
yarnConfigHook
@@ -7,13 +7,13 @@
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "sdl_gamecontrollerdb";
version = "0-unstable-2026-04-10";
version = "0-unstable-2026-04-15";
src = fetchFromGitHub {
owner = "mdqinc";
repo = "SDL_GameControllerDB";
rev = "bd4ef5de42d50480c5be6bd54de164140a62f384";
hash = "sha256-mJB51qS3U0nyjhi+CzOJmRExG7jP3IlhYvABHilcaOA=";
rev = "c6062ec4b92254aced84843d94d379410774d907";
hash = "sha256-81HGyyPjMBgBpPk3Ws2r6KR/On7fmSlNtPleN6jKNf0=";
};
dontBuild = true;
+1
View File
@@ -34,6 +34,7 @@ buildGoModule (finalAttrs: {
description = "Reference server implementation in Go of tus: the open protocol for resumable file uploads";
license = lib.licenses.mit;
homepage = "https://tus.io/";
mainProgram = "tusd";
maintainers = with lib.maintainers; [
nh2
kalbasit
+94
View File
@@ -0,0 +1,94 @@
{
lib,
stdenv,
buildNpmPackage,
fetchFromGitHub,
electron,
jq,
makeWrapper,
makeDesktopItem,
copyDesktopItems,
desktopToDarwinBundle,
nix-update-script,
}:
buildNpmPackage (finalAttrs: {
pname = "twine";
version = "2.11.1";
src = fetchFromGitHub {
owner = "klembot";
repo = "twinejs";
tag = finalAttrs.version;
hash = "sha256-+y25XxTRxmCKjNL74Wb3hgAkw8yQNznYNzTuDL3uIvg=";
};
npmDepsHash = "sha256-9gMdbFibt6RwMxEsBAQE7nM0rfE7PqgUxTs87+g0Ok8=";
env.ELECTRON_SKIP_BINARY_DOWNLOAD = "1";
env.PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD = "1";
nativeBuildInputs = [
jq
makeWrapper
copyDesktopItems
]
++ lib.optional stdenv.hostPlatform.isDarwin desktopToDarwinBundle;
buildPhase = ''
runHook preBuild
npm run build:web
npm run build:electron-main
runHook postBuild
'';
installPhase = ''
runHook preInstall
files="$(node -e 'process.stdout.write(require("./electron-builder.config.js").files.join(" "))')"
packageJson="$(jq -s '.[0] * .[1]' package.json <(node -e 'process.stdout.write(JSON.stringify(require("./electron-builder.config.js").extraMetadata))'))"
# so that dev dependencies will not be installed
npm prune --production
phome="$out/lib/node_modules/$(jq -r .name package.json)"
mkdir -p "$phome"
tar -cf - --wildcards $files | tar -C "$phome" -xf -
echo "$packageJson" > "$phome/package.json"
makeWrapper ${lib.getExe electron} $out/bin/twine \
--add-flags "$phome" \
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --enable-wayland-ime=true --wayland-text-input-version=3}}" \
--set ELECTRON_FORCE_IS_PACKAGED 1 \
--inherit-argv0
install -Dm644 icons/app-pwa.svg $out/share/icons/hicolor/scalable/apps/twine.svg
runHook postInstall
'';
desktopItems = [
(makeDesktopItem {
name = "twine";
desktopName = "Twine";
comment = finalAttrs.meta.description;
exec = "twine %U";
icon = "twine";
categories = [ "Development" ];
})
];
passthru.updateScript = nix-update-script { };
meta = {
description = "Open-source tool for telling interactive, nonlinear stories";
homepage = "https://twinery.org";
changelog = "https://github.com/klembot/twinejs/releases/tag/${finalAttrs.src.tag}";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ ulysseszhan ];
platforms = electron.meta.platforms;
mainProgram = "twine";
};
})
+134
View File
@@ -0,0 +1,134 @@
{
lib,
copyDesktopItems,
fetchFromGitHub,
fftw,
glib,
gtk4-layer-shell,
gtksourceview5,
installShellFiles,
libpulseaudio,
libxkbcommon,
makeDesktopItem,
nix-update-script,
pipewire,
pixman,
pkg-config,
rustPlatform,
stdenv,
udev,
wrapGAppsHook4,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "wayle";
version = "0.2.1";
__structuredAttrs = true;
strictDeps = true;
src = fetchFromGitHub {
owner = "wayle-rs";
repo = "wayle";
tag = "v${finalAttrs.version}";
hash = "sha256-YzDrvCTPuCOCkq0A79IHP+LYZ7ev3IpmWkk6sHuwDts=";
};
cargoHash = "sha256-KYYuB2TsHmHqYDXggWbj6HI0iZ0bepdMVDSQcocfXj4=";
nativeBuildInputs = [
copyDesktopItems
glib
installShellFiles
pkg-config
rustPlatform.bindgenHook
wrapGAppsHook4
];
buildInputs = [
gtk4-layer-shell.dev
gtksourceview5
# Not sure why ".dev" is needed here, but CMake doesn't find libxkbcommon otherwise
libxkbcommon.dev
pixman
udev
# for generating libcava bindings
fftw.dev
libpulseaudio
pipewire.dev
];
cargoBuildFlags = [
"--bin=wayle"
"--bin=wayle-settings"
];
preCheck = ''
export HOME=$(mktemp -d)
'';
checkFlags = [
# GTK4 failed to initialize (requires GUI?)
"--skip=tests::css_loads_into_gtk4"
];
preInstall = ''
mkdir -p "$out/share/icons/hicolor/scalable/apps"
cp -r resources/icons "$out/share"
cp resources/wayle-settings.svg "$out/share/icons/hicolor/scalable/apps"
'';
postInstall =
lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform)
# bash
''
installShellCompletion --cmd wayle \
--bash <($out/bin/wayle completions bash) \
--fish <($out/bin/wayle completions fish) \
--zsh <($out/bin/wayle completions zsh)
'';
preFixup = ''
# so wayle could access wayle-settings binary
gappsWrapperArgs+=( --suffix PATH : $out/bin )
'';
desktopItems = [
(makeDesktopItem {
name = "com.wayle.settings.desktop";
type = "Application";
desktopName = "Wayle Settings";
genericName = "Shell Settings";
comment = "Configure the Wayle desktop shell";
exec = "wayle-settings";
icon = "wayle-settings";
terminal = false;
categories = [
"Settings"
"DesktopSettings"
"GTK"
];
keywords = [
"wayle"
"settings"
"shell"
"bar"
"wayland"
"config"
];
startupNotify = true;
startupWMClass = "com.wayle.settings";
})
];
passthru.updateScript = nix-update-script { };
meta = {
description = "Wayland Elements - A compositor agnostic shell with extensive customization";
homepage = "https://github.com/wayle-rs/wayle/";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ PerchunPak ];
mainProgram = "wayle";
platforms = lib.platforms.linux;
};
})
+2
View File
@@ -36,6 +36,8 @@ stdenv.mkDerivation (finalAttrs: {
preConfigure = ''
sed -e 's/getline/my_getline/' -i score.c
sed -e 's/getpass/my_getpass/' -i externs.h display.c
# gcc15
sed -e 's/Score(_false_)/Score()/g' -i main.c
chmod a+rw config.h
cat >>config.h <<EOF
+2 -2
View File
@@ -10,13 +10,13 @@ let
{ directory, meta }:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "open-relay-${name}";
version = "2026-02-08";
version = "2026-04-12";
src = fetchFromGitHub {
owner = "kreativekorp";
repo = "open-relay";
tag = finalAttrs.version;
hash = "sha256-2vgpzbiNuGd8p8fnvt8OTY28bVnoKtFj0TXjaOBFids=";
hash = "sha256-UI3JP/5Os7xWB07dwlEpWuDMG1awpsOr0itmZpxGtyg=";
};
installPhase = ''
@@ -0,0 +1,41 @@
{
lib,
aiosendspin,
buildPythonPackage,
fetchFromGitHub,
mpris-api,
setuptools,
}:
buildPythonPackage (finalAttrs: {
pname = "aiosendspin-mpris";
version = "2.1.1";
pyproject = true;
src = fetchFromGitHub {
owner = "abmantis";
repo = "aiosendspin-mpris";
tag = "v${finalAttrs.version}";
hash = "sha256-hOF6rTm0pppk+J7tTVaLDK5C1ofGXz1YU6RVGm92geQ=";
};
build-system = [ setuptools ];
dependencies = [
aiosendspin
mpris-api
];
pythonImportsCheck = [ "aiosendspin_mpris" ];
# Module has no tests
doCheck = false;
meta = {
description = "MPRIS integration for aiosendspin";
homepage = "https://github.com/abmantis/aiosendspin-mpris";
changelog = "https://github.com/abmantis/aiosendspin-mpris/blob/${finalAttrs.src.rev}/CHANGELOG.md";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ fab ];
};
})
@@ -28,7 +28,7 @@
nixosTests,
}:
buildPythonPackage rec {
buildPythonPackage (finalAttrs: {
pname = "aiosendspin";
version = "4.4.0";
pyproject = true;
@@ -36,14 +36,14 @@ buildPythonPackage rec {
src = fetchFromGitHub {
owner = "Sendspin";
repo = "aiosendspin";
tag = version;
tag = finalAttrs.version;
hash = "sha256-7edFCGNbECW5rrTbF7vJ4lJUc2IrQZD9VTR3IxJRP08=";
};
# https://github.com/Sendspin/aiosendspin/blob/4.4.0/pyproject.toml#L7
postPatch = ''
substituteInPlace pyproject.toml \
--replace-fail 'version = "0.0.0"' 'version = "${version}"'
--replace-fail 'version = "0.0.0"' 'version = "${finalAttrs.version}"'
'';
build-system = [
@@ -79,10 +79,10 @@ buildPythonPackage rec {
};
meta = {
changelog = "https://github.com/Sendspin/aiosendspin/releases/tag/${src.tag}";
changelog = "https://github.com/Sendspin/aiosendspin/releases/tag/${finalAttrs.src.tag}";
description = "Async Python library implementing the Sendspin Protocol";
homepage = "https://github.com/Sendspin/aiosendspin";
license = lib.licenses.asl20;
inherit (music-assistant.meta) maintainers;
};
}
})
@@ -1,26 +1,30 @@
{
lib,
buildPythonPackage,
cacert,
cryptography,
fetchFromGitHub,
setuptools,
pytestCheckHook,
pytest-mock,
six,
}:
buildPythonPackage rec {
buildPythonPackage (finalAttrs: {
pname = "cert-chain-resolver";
version = "1.4.1";
format = "setuptools";
pyproject = true;
src = fetchFromGitHub {
owner = "rkoopmans";
repo = "python-certificate-chain-resolver";
tag = version;
tag = finalAttrs.version;
hash = "sha256-DWE+mR7EO5ohuRAR0WC40GBY7HpwXIpU0hhVUnWNRno=";
};
propagatedBuildInputs = [ cryptography ];
build-system = [ setuptools ];
dependencies = [ cryptography ];
nativeCheckInputs = [
pytestCheckHook
@@ -28,10 +32,13 @@ buildPythonPackage rec {
six
];
env.SSL_CERT_FILE = "${cacert}/etc/ssl/certs/ca-bundle.crt";
disabledTests = [
# Tests require network access
"test_cert_returns_completed_chain"
"test_display_flag_is_properly_formatted"
"test_display_flag_includes_warning_when_root_was_requested_but_not_found"
];
pythonImportsCheck = [ "cert_chain_resolver" ];
@@ -40,8 +47,8 @@ buildPythonPackage rec {
description = "Resolve / obtain the certificate intermediates of a x509 certificate";
mainProgram = "cert-chain-resolver";
homepage = "https://github.com/rkoopmans/python-certificate-chain-resolver";
changelog = "https://github.com/rkoopmans/python-certificate-chain-resolver/blob/${src.tag}/CHANGELOG.md";
changelog = "https://github.com/rkoopmans/python-certificate-chain-resolver/blob/${finalAttrs.src.tag}/CHANGELOG.md";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ veehaitch ];
};
}
})
@@ -41,14 +41,14 @@
buildPythonPackage rec {
pname = "django-allauth";
version = "65.15.1";
version = "65.16.0";
pyproject = true;
src = fetchFromCodeberg {
owner = "allauth";
repo = "django-allauth";
tag = version;
hash = "sha256-F36Grbyk5jyvEvK+wQtB8rrq9LMSVJCQjdHkRfdKLlM=";
hash = "sha256-uYJErt7RElFrSMyVtnUgdkoIVIBzuAENZZHn/7kmfDE=";
};
nativeBuildInputs = [ gettext ];
@@ -12,7 +12,7 @@
requests,
}:
buildPythonPackage rec {
buildPythonPackage (finalAttrs: {
pname = "finvizfinance";
version = "1.3.0";
pyproject = true;
@@ -20,7 +20,7 @@ buildPythonPackage rec {
src = fetchFromGitHub {
owner = "lit26";
repo = "finvizfinance";
tag = "v${version}";
tag = "v${finalAttrs.version}";
hash = "sha256-M/EyQgINdJLLfOFNm/RhqONz3slb4ukugHLdiozDY0s=";
};
@@ -45,20 +45,22 @@ buildPythonPackage rec {
# Tests require network access
"test_finvizfinance_calendar"
"test_finvizfinance_crypto"
"test_forex_performance_percentage"
"test_group_overview"
"test_finvizfinance_finvizfinance"
"test_finvizfinance_insider"
"test_finvizfinance_news"
"test_finvizfinance_finvizfinance"
"test_statements"
"test_forex_performance_percentage"
"test_group_overview"
"test_screener_overview"
"test_statements"
"test_ticker_etf_holders_returns_list"
"test_ticker_peer_returns_list"
];
meta = {
description = "Finviz Finance information downloader";
homepage = "https://github.com/lit26/finvizfinance";
changelog = "https://github.com/lit26/finvizfinance/releases/tag/${src.tag}";
changelog = "https://github.com/lit26/finvizfinance/releases/tag/${finalAttrs.src.tag}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ icyrockcom ];
};
}
})
@@ -0,0 +1,39 @@
{
lib,
buildPythonPackage,
dataclasses-json,
fetchFromBitbucket,
pytest-mock,
pytestCheckHook,
setuptools,
}:
buildPythonPackage (finalAttrs: {
pname = "json-handler-registry";
version = "1.5.1";
pyproject = true;
src = fetchFromBitbucket {
owner = "massultidev";
repo = "json-handler-registry";
tag = finalAttrs.version;
hash = "sha256-oB2zsA6H1D27m87+mBKCDaN/kuxtc74RY29zSXovBKU=";
};
build-system = [ setuptools ];
nativeCheckInputs = [
dataclasses-json
pytest-mock
pytestCheckHook
];
pythonImportsCheck = [ "json_handler_registry" ];
meta = {
description = "Registry for JSON handlers";
homepage = "https://bitbucket.org/massultidev/json-handler-registry";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ fab ];
};
})
@@ -14,19 +14,19 @@
gitUpdater,
}:
buildPythonPackage rec {
buildPythonPackage (finalAttrs: {
pname = "microsoft-kiota-authentication-azure";
version = "1.9.10";
version = "1.10.1";
pyproject = true;
src = fetchFromGitHub {
owner = "microsoft";
repo = "kiota-python";
tag = "microsoft-kiota-authentication-azure-v${version}";
hash = "sha256-J9OLxZ3vQpChhfwjXzrGF691zco/bKv51FG20VFieN0=";
tag = "microsoft-kiota-authentication-azure-v${finalAttrs.version}";
hash = "sha256-KBCjVNZDPMh0wxWm8UVLsrfl2AYp3rKMjAT5c8F7+64=";
};
sourceRoot = "${src.name}/packages/authentication/azure/";
sourceRoot = "${finalAttrs.src.name}/packages/authentication/azure/";
build-system = [ poetry-core ];
@@ -53,8 +53,8 @@ buildPythonPackage rec {
meta = {
description = "Kiota Azure authentication provider";
homepage = "https://github.com/microsoft/kiota-python/tree/main/packages/authentication/azure";
changelog = "https://github.com/microsoft/kiota-python/releases/tag/microsoft-kiota-authentication-azure-${src.tag}";
changelog = "https://github.com/microsoft/kiota-python/releases/tag/microsoft-kiota-authentication-azure-${finalAttrs.src.tag}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ fab ];
};
}
})
@@ -0,0 +1,42 @@
{
lib,
buildPythonPackage,
dbus-next,
fetchFromBitbucket,
pytestCheckHook,
setuptools,
tunit,
unidecode,
}:
buildPythonPackage (finalAttrs: {
pname = "mpris-api";
version = "1.3.0";
pyproject = true;
src = fetchFromBitbucket {
owner = "massultidev";
repo = "mpris-api";
tag = finalAttrs.version;
hash = "sha256-tr1McOBGTKUVLFToFmb6j8NUzl5bCH8XsNgzZT9Jv7s=";
};
build-system = [ setuptools ];
dependencies = [
dbus-next
unidecode
tunit
];
nativeCheckInputs = [ pytestCheckHook ];
pythonImportsCheck = [ "mpris_api" ];
meta = {
description = "Module provides an implementation of MPRIS DBus interface";
homepage = "https://bitbucket.org/massultidev/mpris-api/src/master/";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ fab ];
};
})
@@ -3,20 +3,28 @@
lib,
fetchFromGitHub,
unittestCheckHook,
uv-build,
}:
buildPythonPackage rec {
buildPythonPackage (finalAttrs: {
pname = "rtfunicode";
version = "2.3";
format = "setuptools";
pyproject = true;
src = fetchFromGitHub {
owner = "mjpieters";
repo = "rtfunicode";
tag = "v${version}";
tag = "v${finalAttrs.version}";
hash = "sha256-dmPpMplCQIJMHhNFzOIjKwEHVio2mjFEbDmq1Y9UJkA=";
};
postPatch = ''
substituteInPlace pyproject.toml \
--replace-fail "uv_build>=0.9.26,<0.10.0" "uv_build"
'';
build-system = [ uv-build ];
nativeBuildInputs = [ unittestCheckHook ];
pythonImportsCheck = [ "rtfunicode" ];
@@ -26,6 +34,6 @@ buildPythonPackage rec {
maintainers = [ lib.maintainers.lucasew ];
license = lib.licenses.bsd2;
homepage = "https://github.com/mjpieters/rtfunicode";
changelog = "https://github.com/mjpieters/rtfunicode/releases/tag/${src.tag}";
changelog = "https://github.com/mjpieters/rtfunicode/releases/tag/${finalAttrs.src.tag}";
};
}
})
@@ -0,0 +1,71 @@
{
lib,
aiosendspin-mpris,
aiosendspin,
av,
buildPythonPackage,
fetchFromGitHub,
numpy,
pulsectl-asyncio,
pychromecast,
pytestCheckHook,
qrcode,
readchar,
rich,
setuptools,
sounddevice,
}:
buildPythonPackage (finalAttrs: {
pname = "sendspin";
version = "5.9.0";
pyproject = true;
src = fetchFromGitHub {
owner = "Sendspin";
repo = "sendspin-cli";
tag = finalAttrs.version;
hash = "sha256-g+qw3mDHij50CEDKGjltMGNZoI6/HeJQ8zq8NSvD3Ls=";
};
postPatch = ''
substituteInPlace pyproject.toml \
--replace-fail 'version = "0.0.0"' 'version = "${finalAttrs.version}"'
'';
build-system = [ setuptools ];
dependencies = [
aiosendspin
aiosendspin-mpris
av
numpy
pulsectl-asyncio
qrcode
readchar
rich
sounddevice
];
optional-dependencies = {
cast = [ pychromecast ];
};
nativeCheckInputs = [ pytestCheckHook ];
pythonImportsCheck = [ "sendspin" ];
disabledTests = [
# AssertionError: assert None == (1, 'Digital')
"test_alsa_available_for_hw_device_with_mixer"
"test_hifiberry_dac_discovery"
];
meta = {
description = "Synchronized audio player for Sendspin servers";
homepage = "https://github.com/Sendspin/sendspin-cli";
changelog = "https://github.com/Sendspin/sendspin-cli/releases/tag/${finalAttrs.src.tag}";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ fab ];
};
})
@@ -0,0 +1,47 @@
{
lib,
buildPythonPackage,
fetchFromBitbucket,
json-handler-registry,
pytestCheckHook,
pyyaml,
setuptools,
types-pyyaml,
}:
buildPythonPackage (finalAttrs: {
pname = "tunit";
version = "1.7.2";
pyproject = true;
src = fetchFromBitbucket {
owner = "massultidev";
repo = "tunit";
tag = finalAttrs.version;
hash = "sha256-S1YEpXQcjQ7gcJPUv4Eo32ypGFkinMjr/x4P/pFMipg=";
};
build-system = [ setuptools ];
optional-dependencies = {
json = [ json-handler-registry ];
yaml = [
pyyaml
types-pyyaml
];
};
nativeCheckInputs = [
pytestCheckHook
]
++ lib.flatten (builtins.attrValues finalAttrs.passthru.optional-dependencies);
pythonImportsCheck = [ "tunit" ];
meta = {
description = "Module for time unit types";
homepage = "https://bitbucket.org/massultidev/tunit";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ fab ];
};
})
@@ -10,13 +10,12 @@
writableTmpDirAsHomeHook,
versionCheckHook,
## gpu-stats
## wandb-xpu
rustPlatform,
## wandb
buildPythonPackage,
replaceVars,
fetchpatch,
# build-system
hatchling,
@@ -76,26 +75,29 @@
}:
let
version = "0.25.1";
version = "0.26.0";
src = fetchFromGitHub {
owner = "wandb";
repo = "wandb";
tag = "v${version}";
hash = "sha256-jrHj+dNW/eUMcqT5XJbiAz1tlviVBhdtroJ8dA7GBr4=";
hash = "sha256-pN2vfrexu87202WLes4eIbkU1aVuLpqR676f7AxokT8=";
};
gpu-stats = rustPlatform.buildRustPackage {
pname = "gpu-stats";
version = "0.6.0";
wandb-xpu = rustPlatform.buildRustPackage {
pname = "wandb-xpu";
version = "0.7.0";
inherit src;
sourceRoot = "${src.name}/gpu_stats";
sourceRoot = "${src.name}/xpu";
cargoHash = "sha256-yzvXJYkQTNOScOI3yfVBH6IGZzcFduuXqW3pI5hEZGw=";
cargoHash = "sha256-h5kttUU1KsP+IaXTfqfgRf+7cooRZQzi5i5NmQ9YEA0=";
checkFlags = [
# fails in sandbox
"--skip=gpu_amd::tests::test_gpu_amd_new"
# tries to download libtpu wheel from PyPI
"--skip=tpu_libtpu::tests::test_libtpu_sdk"
];
nativeInstallCheckInputs = [
@@ -104,23 +106,50 @@ let
doInstallCheck = true;
meta = {
mainProgram = "gpu_stats";
mainProgram = "wandb-xpu";
};
};
inherit (stdenv.hostPlatform.extensions) sharedLibrary;
libRustParquet = "librust_parquet_ffi${sharedLibrary}";
parquet-rust-wrapper = rustPlatform.buildRustPackage {
pname = "arrow-rs-wrapper";
version = "0.1.0";
inherit src;
sourceRoot = "${src.name}/parquet-rust-wrapper";
cargoHash = "sha256-fOq1KoWJEDZnchE6ooTmUQZ3DLdlbr2/aYl1qbF2GH4=";
# The original build script renames the library:
# https://github.com/wandb/wandb/blob/v0.26.0/parquet-rust-wrapper/build.sh#L37-L68
postInstall = ''
mv $out/lib/libarrow_rs_wrapper${sharedLibrary} $out/lib/${libRustParquet}
'';
};
wandb-core = buildGoModule {
pname = "wandb-core";
inherit src version;
sourceRoot = "${src.name}/core";
# hardcode the `gpu_stats` binary path.
postPatch = ''
substituteInPlace internal/monitor/gpuresourcemanager.go \
--replace-fail \
'cmdPath, err := getGPUCollectorCmdPath()' \
'cmdPath, err := "${lib.getExe gpu-stats}", error(nil)'
'';
postPatch =
# hardcode the `wandb-xpu` binary path.
''
substituteInPlace internal/monitor/xpuresourcemanager.go \
--replace-fail \
'cmdPath, err := getXPUCmdPath()' \
'cmdPath, err := "${lib.getExe wandb-xpu}", error(nil)'
''
# hardcode the `parquet-rust-wrapper` library path.
+ ''
substituteInPlace internal/runhistoryreader/parquet/ffi/rustarrowreader.go \
--replace-fail \
"${libRustParquet}" \
"${lib.getLib parquet-rust-wrapper}/lib/${libRustParquet}"
'';
vendorHash = null;
@@ -163,20 +192,14 @@ buildPythonPackage (finalAttrs: {
(replaceVars ./hardcode-git-path.patch {
git = lib.getExe gitMinimal;
})
# https://github.com/wandb/wandb/pull/11552
(fetchpatch {
name = "add-protobuf-7-compatibility";
url = "https://github.com/wandb/wandb/commit/4ef09f3dd1ee408eb9194ea8b7feea2b1128839c.patch";
hash = "sha256-6weMJI51cWXz2mCxOGWYGrh0QCxtMGqz6HAVRF5b1xs=";
})
];
postPatch =
# Prevent hatch from building wandb-core
# Prevent hatch from building wandb-core and arrow-rs-wrapper
''
substituteInPlace hatch_build.py \
--replace-fail "artifacts.extend(self._build_wandb_core())" ""
--replace-fail "artifacts.extend(self._build_wandb_core())" "" \
--replace-fail "artifacts.extend(self._build_arrow_rs_wrapper())" ""
''
# Hard-code the path to the `wandb-core` binary in the code.
+ ''
@@ -187,11 +210,11 @@ buildPythonPackage (finalAttrs: {
'';
env = {
# Prevent the install script to try building and embedding the `gpu_stats` and `wandb-core`
# binaries in the wheel.
# Their path have been patched accordingly in the `wandb-core` and `wanbd` source codes.
# Prevent the install script from trying to build and embed native binaries in the wheel.
# Their paths have been patched accordingly in the `wandb-core` and `wandb` source codes.
# https://github.com/wandb/wandb/blob/v0.18.5/hatch_build.py#L37-L47
WANDB_BUILD_SKIP_GPU_STATS = true;
WANDB_BUILD_SKIP_WANDB_XPU = true;
WANDB_BUILD_SKIP_ORJSON = true;
WANDB_BUILD_UNIVERSAL = true;
};
@@ -199,11 +222,6 @@ buildPythonPackage (finalAttrs: {
hatchling
];
# Protobuf 7 is not compatible with the current version of wandb
pythonRelaxDeps = [
"protobuf"
];
dependencies = [
click
gitpython
@@ -281,6 +299,9 @@ buildPythonPackage (finalAttrs: {
# PermissionError: unable to write to .cache/wandb/artifacts
"tests/unit_tests/test_artifacts/test_wandb_artifacts.py"
# Requires kfp which is not packaged
"tests/unit_tests/test_kfp.py"
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
# Breaks in sandbox: "Timed out waiting for wandb service to start"
@@ -400,12 +421,20 @@ buildPythonPackage (finalAttrs: {
"test_watch_parameters_torch_jit"
];
passthru = {
inherit
wandb-core
wandb-xpu
parquet-rust-wrapper
;
};
meta = {
description = "CLI and library for interacting with the Weights and Biases API";
homepage = "https://github.com/wandb/wandb";
changelog = "https://github.com/wandb/wandb/raw/${finalAttrs.version}/CHANGELOG.md";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ samuela ];
broken = gpu-stats.meta.broken || wandb-core.meta.broken;
broken = wandb-xpu.meta.broken || wandb-core.meta.broken;
};
})
+2 -2
View File
@@ -8,11 +8,11 @@
}:
mkKdeDerivation rec {
pname = "polkit-qt-1";
version = "0.200.0";
version = "0.201.1";
src = fetchurl {
url = "mirror://kde/stable/polkit-qt-1/polkit-qt-1-${version}.tar.xz";
sha256 = "sha256-XTthHAYtK3apN1C7EMkHv9IdH/CNChXcLPY+J44Wd/s=";
sha256 = "sha256-ldjiyuUwxUbZQ3RZ3rihvqONVy8Pl3LMKGDcFDY38lY=";
};
patches = [ ./full-paths.patch ];
@@ -15,14 +15,14 @@ let
variants = {
# ./update-xanmod.sh lts
lts = {
version = "6.18.22";
hash = "sha256-RWLMFCW3dHtTeY+F9LFZpale8FTh5ITSHU/N/CkN5WA=";
version = "6.18.23";
hash = "sha256-IXR3gSaUsykNbdDxYCawDp6/5otc9wm88ewPGnpd5Kw=";
isLTS = true;
};
# ./update-xanmod.sh main
main = {
version = "6.19.12";
hash = "sha256-jv8sJnBzXRV/e9dHJgiUbQneCRINCchAM6aj8Xp6knI=";
version = "6.19.13";
hash = "sha256-r3CXmgMiZtD5ZHmGDsk2O1TwUR01iCX4m06royJMf68=";
};
};
@@ -17,13 +17,13 @@
buildHomeAssistantComponent rec {
owner = "bramstroker";
domain = "powercalc";
version = "1.20.12";
version = "1.20.13";
src = fetchFromGitHub {
inherit owner;
repo = "homeassistant-powercalc";
tag = "v${version}";
hash = "sha256-kOxY/7JjDHbQC7adfcRDgDJnvU2TRyaKYXxfmo/cXPQ=";
hash = "sha256-Vg/hqDo0dW88VUKEXZcaRMwOAzm8EmbKGwV/xIfB5lQ=";
};
dependencies = [ numpy ];
@@ -0,0 +1,34 @@
From 450a6183586243d907843c7d89973452b59d8b10 Mon Sep 17 00:00:00 2001
From: Tom Fitzhenry <tom@tom-fitzhenry.me.uk>
Date: Fri, 17 Apr 2026 22:35:08 +0000
Subject: [PATCH] fix systemd detection after argparse migration
---
lib/util/wscript | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/lib/util/wscript b/lib/util/wscript
index 425f659a2ed..b8baabfbea9 100644
--- a/lib/util/wscript
+++ b/lib/util/wscript
@@ -13,7 +13,7 @@ def options(opt):
opt.add_option('--with-systemd',
help=("Enable systemd integration"),
- action='store_true', dest='enable_systemd')
+ action='store_true', dest='enable_systemd', default=None)
opt.add_option('--without-systemd',
help=("Disable systemd integration"),
@@ -21,7 +21,7 @@ def options(opt):
opt.add_option('--with-lttng',
help=("Enable lttng integration"),
- action='store_true', dest='enable_lttng')
+ action='store_true', dest='enable_lttng', default=None)
opt.add_option('--without-lttng',
help=("Disable lttng integration"),
--
2.53.0
+9 -3
View File
@@ -81,11 +81,11 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "samba";
version = "4.22.7";
version = "4.23.5";
src = fetchurl {
url = "https://download.samba.org/pub/samba/stable/samba-${finalAttrs.version}.tar.gz";
hash = "sha256-EhlYEdRUL2YVNukFW0TVjFMCBBK+r6riBeInv3L2pJc=";
hash = "sha256-WTpD3dDVeQIjffp2iI97Ast/x3RxETacsx4SbbSDa58=";
};
outputs = [
@@ -98,7 +98,13 @@ stdenv.mkDerivation (finalAttrs: {
./4.x-no-persistent-install.patch
./4.x-no-persistent-install-dynconfig.patch
./4.x-fix-makeflags-parsing.patch
./build-find-pre-built-heimdal-build-tools-in-case-of-.patch
./4.x-fix-systemd-detection.patch
(fetchpatch {
# workaround for https://bugzilla.samba.org/show_bug.cgi?id=14164
name = "build-find-pre-built-heimdal-build-tools-in-case-of-.patch";
url = "https://raw.githubusercontent.com/LibreELEC/LibreELEC.tv/fe5538114371b98c7350e6fffbfc0d1ac063719c/packages/network/samba/patches/samba-200-4.11-fix-ASN1-bso14164.patch";
hash = "sha256-0/c9TH5FZ4S1OoM04gwDBJoIN+10unjLSv7Hlwt9FEQ=";
})
(fetchpatch {
# workaround for https://github.com/NixOS/nixpkgs/issues/303436
name = "samba-reproducible-builds.patch";
@@ -1,63 +0,0 @@
From 475ec75a34002aafabc92659f693cf705c96aff4 Mon Sep 17 00:00:00 2001
From: Nick Cao <nickcao@nichi.co>
Date: Thu, 21 Nov 2024 15:30:00 -0500
Subject: [PATCH] build: find pre-built heimdal build tools in case of embedded
heimdal
This patch fixes the case of finding asn1_compile and compile_et for
building embedded heimdal, by setting
--bundled-libraries='!asn1_compile,!compile_et' as configure flags.
The Heimdal build tools compile_et and asn1_compile are needed *only*
if we use the embedded heimdal (otherwise we don't build heimdal and
use headers that have been generated by those tools elsewhere).
For cross-compilation with embedded heimdal, it is vital to use host build
tools, and so asn1_compile and compile_et must be supplied and not
built. One way of doing this would be to set the COMPILE_ET and
ASN1_COMPILE env vars to the location of supplied binaries. Another way,
which is more commonly used, is to exclude asn1_compile and compile_et
from bundled packages via the switch
-bundled-libraries='!asn1_compile,!compile_et'. When this is done,
the build script searches the path for those tools and sets the
ASN1_COMPILE and COMPILE_ET vars accordingly. (this is admittedly
kind of a round-about way of doing things but this has become the
de-facto standard amongst embedded distro builders).
In commit 8061983d4882f3ba3f12da71443b035d7b672eec, this process of
finding the binaris has been moved to be carried out only in the
system heimdal case. As explained above, we only need these tools,
and hence the check, in bundled mode.
BUG: https://bugzilla.samba.org/show_bug.cgi?id=14164
Signed-off-by: Uri Simchoni <uri@samba.org>
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
[Bachp: rebased for version 4.15.0]
[Mats: rebased for version 4.18.5]
[hexa: rebased for version 4.22.3]
---
wscript_configure_embedded_heimdal | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/wscript_configure_embedded_heimdal b/wscript_configure_embedded_heimdal
index c1488e5506e..ede28ba7fc3 100644
--- a/wscript_configure_embedded_heimdal
+++ b/wscript_configure_embedded_heimdal
@@ -15,3 +15,14 @@ conf.RECURSE('third_party/heimdal_build')
conf.define('HAVE_CLIENT_GSS_C_CHANNEL_BOUND_FLAG', 1)
conf.define('HAVE_KRB5_INIT_CREDS_STEP', 1)
+
+def check_system_heimdal_binary(name):
+ if conf.LIB_MAY_BE_BUNDLED(name):
+ return False
+ if not conf.find_program(name, var=name.upper()):
+ return False
+ conf.define('USING_SYSTEM_%s' % name.upper(), 1)
+ return True
+
+check_system_heimdal_binary("compile_et")
+check_system_heimdal_binary("asn1_compile")
--
2.50.1
+10
View File
@@ -510,6 +510,8 @@ self: super: with self; {
aiosendspin = callPackage ../development/python-modules/aiosendspin { };
aiosendspin-mpris = callPackage ../development/python-modules/aiosendspin-mpris { };
aioserial = callPackage ../development/python-modules/aioserial { };
aioshelly = callPackage ../development/python-modules/aioshelly { };
@@ -7957,6 +7959,8 @@ self: super: with self; {
json-flatten = callPackage ../development/python-modules/json-flatten { };
json-handler-registry = callPackage ../development/python-modules/json-handler-registry { };
json-home-client = callPackage ../development/python-modules/json-home-client { };
json-logging = callPackage ../development/python-modules/json-logging { };
@@ -10282,6 +10286,8 @@ self: super: with self; {
mpmath = callPackage ../development/python-modules/mpmath { };
mpris-api = callPackage ../development/python-modules/mpris-api { };
mprisify = callPackage ../development/python-modules/mprisify { };
mpv = callPackage ../development/python-modules/mpv { inherit (pkgs) mpv; };
@@ -17499,6 +17505,8 @@ self: super: with self; {
sendgrid = callPackage ../development/python-modules/sendgrid { };
sendspin = callPackage ../development/python-modules/sendspin { };
senf = callPackage ../development/python-modules/senf { };
sensai-utils = callPackage ../development/python-modules/sensai-utils { };
@@ -19870,6 +19878,8 @@ self: super: with self; {
tunigo = callPackage ../development/python-modules/tunigo { };
tunit = callPackage ../development/python-modules/tunit { };
turnt = callPackage ../development/python-modules/turnt { };
turrishw = callPackage ../development/python-modules/turrishw { };
+14
View File
@@ -1021,6 +1021,20 @@
};
version = "3.5.0";
};
debug = {
dependencies = [
"irb"
"reline"
];
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "sha256-LgsKxhGfIgem+Kx9SnPKjrTkQPZNoKMTbDA0MUbpUrY=";
type = "gem";
};
version = "1.11.1";
};
dentaku = {
dependencies = [ "concurrent-ruby" ];
groups = [ "default" ];