diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 3538b33ab73b..7890668d55f2 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -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"; diff --git a/nixos/lib/test-driver/src/test_driver/__init__.py b/nixos/lib/test-driver/src/test_driver/__init__.py index 20f668867da6..1e5a062b18c8 100644 --- a/nixos/lib/test-driver/src/test_driver/__init__.py +++ b/nixos/lib/test-driver/src/test_driver/__init__.py @@ -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([]), diff --git a/nixos/lib/testing/driver.nix b/nixos/lib/testing/driver.nix index f49f1fe199b1..c6802d61dd43 100644 --- a/nixos/lib/testing/driver.nix +++ b/nixos/lib/testing/driver.nix @@ -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 diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index f72dcccf3e87..774140f86d92 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -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 diff --git a/nixos/modules/services/desktops/blueman.nix b/nixos/modules/services/desktops/blueman.nix index 2b92d226dfa4..8f62dc6b05ae 100644 --- a/nixos/modules/services/desktops/blueman.nix +++ b/nixos/modules/services/desktops/blueman.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"; + }; + }; }; } diff --git a/nixos/modules/services/web-servers/tusd.nix b/nixos/modules/services/web-servers/tusd.nix new file mode 100644 index 000000000000..4c81491b1f2f --- /dev/null +++ b/nixos/modules/services/web-servers/tusd.nix @@ -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; + }; +} diff --git a/nixos/tests/thanos.nix b/nixos/tests/thanos.nix index d1ba83868bbc..5f0edd0ddfba 100644 --- a/nixos/tests/thanos.nix +++ b/nixos/tests/thanos.nix @@ -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() diff --git a/nixos/tests/tusd/default.nix b/nixos/tests/tusd/default.nix index ec188dee56ca..1e21ec009662 100644 --- a/nixos/tests/tusd/default.nix +++ b/nixos/tests/tusd/default.nix @@ -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") ''; } diff --git a/pkgs/applications/editors/vscode/extensions/anthropic.claude-code/default.nix b/pkgs/applications/editors/vscode/extensions/anthropic.claude-code/default.nix index 076e1c47b070..4d2438e9d58a 100644 --- a/pkgs/applications/editors/vscode/extensions/anthropic.claude-code/default.nix +++ b/pkgs/applications/editors/vscode/extensions/anthropic.claude-code/default.nix @@ -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 = '' diff --git a/pkgs/applications/editors/vscode/extensions/google.colab/default.nix b/pkgs/applications/editors/vscode/extensions/google.colab/default.nix index aa6567d0b525..0be8fbc068de 100644 --- a/pkgs/applications/editors/vscode/extensions/google.colab/default.nix +++ b/pkgs/applications/editors/vscode/extensions/google.colab/default.nix @@ -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 = { diff --git a/pkgs/applications/emulators/libretro/cores/prboom.nix b/pkgs/applications/emulators/libretro/cores/prboom.nix index 6e9cc00e4c9a..de7f4875efd4 100644 --- a/pkgs/applications/emulators/libretro/cores/prboom.nix +++ b/pkgs/applications/emulators/libretro/cores/prboom.nix @@ -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"; diff --git a/pkgs/applications/networking/cluster/terraform-providers/providers.json b/pkgs/applications/networking/cluster/terraform-providers/providers.json index 606fd6ae44ff..e354cf6f8514 100644 --- a/pkgs/applications/networking/cluster/terraform-providers/providers.json +++ b/pkgs/applications/networking/cluster/terraform-providers/providers.json @@ -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 }, diff --git a/pkgs/by-name/bo/bootdev-cli/package.nix b/pkgs/by-name/bo/bootdev-cli/package.nix index 7ff55a828bb8..8c391ae97aa3 100644 --- a/pkgs/by-name/bo/bootdev-cli/package.nix +++ b/pkgs/by-name/bo/bootdev-cli/package.nix @@ -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="; diff --git a/pkgs/by-name/cl/claude-code-bin/manifest.json b/pkgs/by-name/cl/claude-code-bin/manifest.json index 51d21fd4c491..5ec1c5fd1bfd 100644 --- a/pkgs/by-name/cl/claude-code-bin/manifest.json +++ b/pkgs/by-name/cl/claude-code-bin/manifest.json @@ -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 } } } diff --git a/pkgs/by-name/da/datafusion-cli/package.nix b/pkgs/by-name/da/datafusion-cli/package.nix index 189f5cf6fb9e..56fcb8423133 100644 --- a/pkgs/by-name/da/datafusion-cli/package.nix +++ b/pkgs/by-name/da/datafusion-cli/package.nix @@ -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"; diff --git a/pkgs/by-name/dv/dvr-scan/package.nix b/pkgs/by-name/dv/dvr-scan/package.nix new file mode 100644 index 000000000000..5dde8095b105 --- /dev/null +++ b/pkgs/by-name/dv/dvr-scan/package.nix @@ -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 ]; + }; +} diff --git a/pkgs/by-name/dw/dwproton-bin/package.nix b/pkgs/by-name/dw/dwproton-bin/package.nix index 699bbf2117d9..a3bf7a998f43 100644 --- a/pkgs/by-name/dw/dwproton-bin/package.nix +++ b/pkgs/by-name/dw/dwproton-bin/package.nix @@ -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" '' diff --git a/pkgs/by-name/em/emmylua-check/package.nix b/pkgs/by-name/em/emmylua-check/package.nix index 6b311ea7e604..073f1a20b1c9 100644 --- a/pkgs/by-name/em/emmylua-check/package.nix +++ b/pkgs/by-name/em/emmylua-check/package.nix @@ -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 diff --git a/pkgs/by-name/em/emmylua-doc-cli/package.nix b/pkgs/by-name/em/emmylua-doc-cli/package.nix index bf04b27f2c26..ee9f3f210f3e 100644 --- a/pkgs/by-name/em/emmylua-doc-cli/package.nix +++ b/pkgs/by-name/em/emmylua-doc-cli/package.nix @@ -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"; diff --git a/pkgs/by-name/em/emmylua-ls/package.nix b/pkgs/by-name/em/emmylua-ls/package.nix index 956c2c1c40b3..5131d9a50c54 100644 --- a/pkgs/by-name/em/emmylua-ls/package.nix +++ b/pkgs/by-name/em/emmylua-ls/package.nix @@ -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 diff --git a/pkgs/by-name/fi/firefly-iii/package.nix b/pkgs/by-name/fi/firefly-iii/package.nix index af4d2d9866d3..83ca27712175 100644 --- a/pkgs/by-name/fi/firefly-iii/package.nix +++ b/pkgs/by-name/fi/firefly-iii/package.nix @@ -26,6 +26,7 @@ stdenvNoCC.mkDerivation (finalAttrs: { nativeBuildInputs = [ nodejs-slim + nodejs-slim.npm nodejs-slim.python buildPackages.npmHooks.npmConfigHook php84.packages.composer diff --git a/pkgs/by-name/ga/gancio/package.nix b/pkgs/by-name/ga/gancio/package.nix index f8b625dfb52a..29c2fa4aaa5d 100644 --- a/pkgs/by-name/ga/gancio/package.nix +++ b/pkgs/by-name/ga/gancio/package.nix @@ -49,6 +49,7 @@ stdenv.mkDerivation (finalAttrs: { yarnBuildHook yarnInstallHook nodejs + nodejs.npm (nodejs.python.withPackages (ps: [ ps.setuptools ])) pkg-config ]; diff --git a/pkgs/by-name/ge/gearboy/package.nix b/pkgs/by-name/ge/gearboy/package.nix new file mode 100644 index 000000000000..07da3788b61c --- /dev/null +++ b/pkgs/by-name/ge/gearboy/package.nix @@ -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"; + }; +}) diff --git a/pkgs/by-name/gn/gnome-calculator/package.nix b/pkgs/by-name/gn/gnome-calculator/package.nix index 67500d02803a..16bfbe636829 100644 --- a/pkgs/by-name/gn/gnome-calculator/package.nix +++ b/pkgs/by-name/gn/gnome-calculator/package.nix @@ -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 diff --git a/pkgs/by-name/hl/hl-log-viewer/package.nix b/pkgs/by-name/hl/hl-log-viewer/package.nix index 6e0fdfdd2fe1..de099250a3e0 100644 --- a/pkgs/by-name/hl/hl-log-viewer/package.nix +++ b/pkgs/by-name/hl/hl-log-viewer/package.nix @@ -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 ]; diff --git a/pkgs/by-name/kn/knope/package.nix b/pkgs/by-name/kn/knope/package.nix new file mode 100644 index 000000000000..8bbfe376e23a --- /dev/null +++ b/pkgs/by-name/kn/knope/package.nix @@ -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; + }; +}) diff --git a/pkgs/by-name/le/lean4/package.nix b/pkgs/by-name/le/lean4/package.nix index b223cc5daa86..17bd27de10e1 100644 --- a/pkgs/by-name/le/lean4/package.nix +++ b/pkgs/by-name/le/lean4/package.nix @@ -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 = diff --git a/pkgs/by-name/op/opendune/package.nix b/pkgs/by-name/op/opendune/package.nix index e8fc1d01859a..ff8b22cfaef7 100644 --- a/pkgs/by-name/op/opendune/package.nix +++ b/pkgs/by-name/op/opendune/package.nix @@ -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" diff --git a/pkgs/by-name/os/osu-lazer-bin/package.nix b/pkgs/by-name/os/osu-lazer-bin/package.nix index c2d1fc7be621..8f0abc373c93 100644 --- a/pkgs/by-name/os/osu-lazer-bin/package.nix +++ b/pkgs/by-name/os/osu-lazer-bin/package.nix @@ -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."); diff --git a/pkgs/by-name/os/osu-lazer/deps.json b/pkgs/by-name/os/osu-lazer/deps.json index ae3bead2cd3c..49c949ab609b 100644 --- a/pkgs/by-name/os/osu-lazer/deps.json +++ b/pkgs/by-name/os/osu-lazer/deps.json @@ -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", diff --git a/pkgs/by-name/os/osu-lazer/package.nix b/pkgs/by-name/os/osu-lazer/package.nix index 61bb9cf017fa..023bab7499a8 100644 --- a/pkgs/by-name/os/osu-lazer/package.nix +++ b/pkgs/by-name/os/osu-lazer/package.nix @@ -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"; diff --git a/pkgs/by-name/pr/praat/package.nix b/pkgs/by-name/pr/praat/package.nix index 767f301327fe..08b5e00ceef1 100644 --- a/pkgs/by-name/pr/praat/package.nix +++ b/pkgs/by-name/pr/praat/package.nix @@ -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; diff --git a/pkgs/by-name/pr/pretalx/package.nix b/pkgs/by-name/pr/pretalx/package.nix index 9c934bb5a4e7..39fd066fcc0e 100644 --- a/pkgs/by-name/pr/pretalx/package.nix +++ b/pkgs/by-name/pr/pretalx/package.nix @@ -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 diff --git a/pkgs/by-name/re/redisinsight/package.nix b/pkgs/by-name/re/redisinsight/package.nix index 88cba1ea6928..289b440cd865 100644 --- a/pkgs/by-name/re/redisinsight/package.nix +++ b/pkgs/by-name/re/redisinsight/package.nix @@ -63,6 +63,7 @@ stdenv.mkDerivation (finalAttrs: { copyDesktopItems makeWrapper nodejs + nodejs.npm (nodejs.python.withPackages (ps: [ ps.setuptools ])) pkg-config yarnConfigHook diff --git a/pkgs/by-name/sd/sdl_gamecontrollerdb/package.nix b/pkgs/by-name/sd/sdl_gamecontrollerdb/package.nix index 653555123294..cc5e205c9176 100644 --- a/pkgs/by-name/sd/sdl_gamecontrollerdb/package.nix +++ b/pkgs/by-name/sd/sdl_gamecontrollerdb/package.nix @@ -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; diff --git a/pkgs/by-name/tu/tusd/package.nix b/pkgs/by-name/tu/tusd/package.nix index 4186a7ed1c63..f85925edcc68 100644 --- a/pkgs/by-name/tu/tusd/package.nix +++ b/pkgs/by-name/tu/tusd/package.nix @@ -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 diff --git a/pkgs/by-name/tw/twinejs/package.nix b/pkgs/by-name/tw/twinejs/package.nix new file mode 100644 index 000000000000..fb0a3fdb9461 --- /dev/null +++ b/pkgs/by-name/tw/twinejs/package.nix @@ -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"; + }; +}) diff --git a/pkgs/by-name/wa/wayle/package.nix b/pkgs/by-name/wa/wayle/package.nix new file mode 100644 index 000000000000..010c72970919 --- /dev/null +++ b/pkgs/by-name/wa/wayle/package.nix @@ -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; + }; +}) diff --git a/pkgs/by-name/xs/xsokoban/package.nix b/pkgs/by-name/xs/xsokoban/package.nix index 905e0c9d2eab..50c9f49cb7ad 100644 --- a/pkgs/by-name/xs/xsokoban/package.nix +++ b/pkgs/by-name/xs/xsokoban/package.nix @@ -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 <=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}"; }; -} +}) diff --git a/pkgs/development/python-modules/sendspin/default.nix b/pkgs/development/python-modules/sendspin/default.nix new file mode 100644 index 000000000000..67e7bf4a0e44 --- /dev/null +++ b/pkgs/development/python-modules/sendspin/default.nix @@ -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 ]; + }; +}) diff --git a/pkgs/development/python-modules/tunit/default.nix b/pkgs/development/python-modules/tunit/default.nix new file mode 100644 index 000000000000..b57774181956 --- /dev/null +++ b/pkgs/development/python-modules/tunit/default.nix @@ -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 ]; + }; +}) diff --git a/pkgs/development/python-modules/wandb/default.nix b/pkgs/development/python-modules/wandb/default.nix index 087bd114b1a4..4e2612aa225c 100644 --- a/pkgs/development/python-modules/wandb/default.nix +++ b/pkgs/development/python-modules/wandb/default.nix @@ -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; }; }) diff --git a/pkgs/kde/misc/polkit-qt-1/default.nix b/pkgs/kde/misc/polkit-qt-1/default.nix index 78ce60455d09..3d11c53dc818 100644 --- a/pkgs/kde/misc/polkit-qt-1/default.nix +++ b/pkgs/kde/misc/polkit-qt-1/default.nix @@ -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 ]; diff --git a/pkgs/os-specific/linux/kernel/xanmod-kernels.nix b/pkgs/os-specific/linux/kernel/xanmod-kernels.nix index 7c9bf300d6e0..4618051f261e 100644 --- a/pkgs/os-specific/linux/kernel/xanmod-kernels.nix +++ b/pkgs/os-specific/linux/kernel/xanmod-kernels.nix @@ -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="; }; }; diff --git a/pkgs/servers/home-assistant/custom-components/powercalc/package.nix b/pkgs/servers/home-assistant/custom-components/powercalc/package.nix index ada41c9cb67f..3707134c4914 100644 --- a/pkgs/servers/home-assistant/custom-components/powercalc/package.nix +++ b/pkgs/servers/home-assistant/custom-components/powercalc/package.nix @@ -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 ]; diff --git a/pkgs/servers/samba/4.x-fix-systemd-detection.patch b/pkgs/servers/samba/4.x-fix-systemd-detection.patch new file mode 100644 index 000000000000..c11a38f292c3 --- /dev/null +++ b/pkgs/servers/samba/4.x-fix-systemd-detection.patch @@ -0,0 +1,34 @@ +From 450a6183586243d907843c7d89973452b59d8b10 Mon Sep 17 00:00:00 2001 +From: Tom Fitzhenry +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 + diff --git a/pkgs/servers/samba/4.x.nix b/pkgs/servers/samba/4.x.nix index a0a6052ed342..031109d4ef7c 100644 --- a/pkgs/servers/samba/4.x.nix +++ b/pkgs/servers/samba/4.x.nix @@ -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"; diff --git a/pkgs/servers/samba/build-find-pre-built-heimdal-build-tools-in-case-of-.patch b/pkgs/servers/samba/build-find-pre-built-heimdal-build-tools-in-case-of-.patch deleted file mode 100644 index 598e55c37e4e..000000000000 --- a/pkgs/servers/samba/build-find-pre-built-heimdal-build-tools-in-case-of-.patch +++ /dev/null @@ -1,63 +0,0 @@ -From 475ec75a34002aafabc92659f693cf705c96aff4 Mon Sep 17 00:00:00 2001 -From: Nick Cao -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 -Signed-off-by: Bernd Kuhls -[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 diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 4478b2d26994..15cd3f79fc5d 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -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 { }; diff --git a/pkgs/top-level/ruby-packages.nix b/pkgs/top-level/ruby-packages.nix index d94f3651c962..315651612d95 100644 --- a/pkgs/top-level/ruby-packages.nix +++ b/pkgs/top-level/ruby-packages.nix @@ -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" ];