Merge staging-next into staging

authored by

github-actions[bot] and committed by
GitHub
25bf10cc 8481e5d2

+734 -344
+2
nixos/doc/manual/release-notes/rl-2311.section.md
··· 265 265 266 266 - The `cawbird` package is dropped from nixpkgs, as it got broken by the Twitter API closing down and has been abandoned upstream. 267 267 268 + - `hardware.nvidia` gained `datacenter` options for enabling NVIDIA Data Center drivers and configuration of NVLink/NVSwitch topologies through `nv-fabricmanager`. 269 + 268 270 - Certificate generation via the `security.acme` now limits the concurrent number of running certificate renewals and generation jobs, to avoid spiking resource usage when processing many certificates at once. The limit defaults to *5* and can be adjusted via `maxConcurrentRenewals`. Setting it to *0* disables the limits altogether. 269 271 270 272 - New `boot.bcache.enable` (default enabled) allows completely removing `bcache` mount support.
+314 -208
nixos/modules/hardware/video/nvidia.nix
··· 4 4 pkgs, 5 5 ... 6 6 }: let 7 + x11Enabled = config.services.xserver.enable 8 + && (lib.elem "nvidia" config.services.xserver.videoDrivers); 7 9 nvidia_x11 = 8 - if (lib.elem "nvidia" config.services.xserver.videoDrivers) 10 + if x11Enabled || cfg.datacenter.enable 9 11 then cfg.package 10 12 else null; 11 13 ··· 18 20 primeEnabled = syncCfg.enable || reverseSyncCfg.enable || offloadCfg.enable; 19 21 busIDType = lib.types.strMatching "([[:print:]]+[\:\@][0-9]{1,3}\:[0-9]{1,2}\:[0-9])?"; 20 22 ibtSupport = cfg.open || (nvidia_x11.ibtSupport or false); 23 + settingsFormat = pkgs.formats.keyValue {}; 21 24 in { 22 25 options = { 23 26 hardware.nvidia = { 27 + datacenter.enable = lib.mkEnableOption (lib.mdDoc '' 28 + Data Center drivers for NVIDIA cards on a NVLink topology. 29 + ''); 30 + datacenter.settings = lib.mkOption { 31 + type = settingsFormat.type; 32 + default = { 33 + LOG_LEVEL=4; 34 + LOG_FILE_NAME="/var/log/fabricmanager.log"; 35 + LOG_APPEND_TO_LOG=1; 36 + LOG_FILE_MAX_SIZE=1024; 37 + LOG_USE_SYSLOG=0; 38 + DAEMONIZE=1; 39 + BIND_INTERFACE_IP="127.0.0.1"; 40 + STARTING_TCP_PORT=16000; 41 + FABRIC_MODE=0; 42 + FABRIC_MODE_RESTART=0; 43 + STATE_FILE_NAME="/var/tmp/fabricmanager.state"; 44 + FM_CMD_BIND_INTERFACE="127.0.0.1"; 45 + FM_CMD_PORT_NUMBER=6666; 46 + FM_STAY_RESIDENT_ON_FAILURES=0; 47 + ACCESS_LINK_FAILURE_MODE=0; 48 + TRUNK_LINK_FAILURE_MODE=0; 49 + NVSWITCH_FAILURE_MODE=0; 50 + ABORT_CUDA_JOBS_ON_FM_EXIT=1; 51 + TOPOLOGY_FILE_PATH=nvidia_x11.fabricmanager + "/share/nvidia-fabricmanager/nvidia/nvswitch"; 52 + }; 53 + defaultText = lib.literalExpression '' 54 + { 55 + LOG_LEVEL=4; 56 + LOG_FILE_NAME="/var/log/fabricmanager.log"; 57 + LOG_APPEND_TO_LOG=1; 58 + LOG_FILE_MAX_SIZE=1024; 59 + LOG_USE_SYSLOG=0; 60 + DAEMONIZE=1; 61 + BIND_INTERFACE_IP="127.0.0.1"; 62 + STARTING_TCP_PORT=16000; 63 + FABRIC_MODE=0; 64 + FABRIC_MODE_RESTART=0; 65 + STATE_FILE_NAME="/var/tmp/fabricmanager.state"; 66 + FM_CMD_BIND_INTERFACE="127.0.0.1"; 67 + FM_CMD_PORT_NUMBER=6666; 68 + FM_STAY_RESIDENT_ON_FAILURES=0; 69 + ACCESS_LINK_FAILURE_MODE=0; 70 + TRUNK_LINK_FAILURE_MODE=0; 71 + NVSWITCH_FAILURE_MODE=0; 72 + ABORT_CUDA_JOBS_ON_FM_EXIT=1; 73 + TOPOLOGY_FILE_PATH=nvidia_x11.fabricmanager + "/share/nvidia-fabricmanager/nvidia/nvswitch"; 74 + } 75 + ''; 76 + description = lib.mdDoc '' 77 + Additional configuration options for fabricmanager. 78 + ''; 79 + }; 80 + 24 81 powerManagement.enable = lib.mkEnableOption (lib.mdDoc '' 25 82 experimental power management through systemd. For more information, see 26 83 the NVIDIA docs, on Chapter 21. Configuring Power Management Support. ··· 167 224 It also drastically increases the time the driver needs to clock down after load. 168 225 ''); 169 226 170 - package = lib.mkPackageOptionMD config.boot.kernelPackages.nvidiaPackages "nvidia_x11" { 171 - default = "stable"; 227 + package = lib.mkOption { 228 + default = config.boot.kernelPackages.nvidiaPackages."${if cfg.datacenter.enable then "dc" else "stable"}"; 229 + defaultText = lib.literalExpression '' 230 + config.boot.kernelPackages.nvidiaPackages."\$\{if cfg.datacenter.enable then "dc" else "stable"}" 231 + ''; 172 232 example = lib.mdDoc "config.boot.kernelPackages.nvidiaPackages.legacy_470"; 233 + description = lib.mdDoc '' 234 + The NVIDIA driver package to use. 235 + ''; 173 236 }; 174 237 175 238 open = lib.mkEnableOption (lib.mdDoc '' ··· 188 251 then pCfg.intelBusId 189 252 else pCfg.amdgpuBusId; 190 253 in 191 - lib.mkIf (nvidia_x11 != null) { 192 - assertions = [ 254 + lib.mkIf (nvidia_x11 != null) (lib.mkMerge [ 255 + # Common 256 + ({ 257 + assertions = [ 258 + { 259 + assertion = !(x11Enabled && cfg.datacenter.enable); 260 + message = "You cannot configure both X11 and Data Center drivers at the same time."; 261 + } 262 + ]; 263 + boot = { 264 + blacklistedKernelModules = ["nouveau" "nvidiafb"]; 265 + kernelModules = [ "nvidia-uvm" ]; 266 + }; 267 + systemd.tmpfiles.rules = 268 + lib.optional config.virtualisation.docker.enableNvidia 269 + "L+ /run/nvidia-docker/bin - - - - ${nvidia_x11.bin}/origBin"; 270 + services.udev.extraRules = 271 + '' 272 + # Create /dev/nvidia-uvm when the nvidia-uvm module is loaded. 273 + KERNEL=="nvidia", RUN+="${pkgs.runtimeShell} -c 'mknod -m 666 /dev/nvidiactl c $$(grep nvidia-frontend /proc/devices | cut -d \ -f 1) 255'" 274 + KERNEL=="nvidia", RUN+="${pkgs.runtimeShell} -c 'for i in $$(cat /proc/driver/nvidia/gpus/*/information | grep Minor | cut -d \ -f 4); do mknod -m 666 /dev/nvidia$${i} c $$(grep nvidia-frontend /proc/devices | cut -d \ -f 1) $${i}; done'" 275 + KERNEL=="nvidia_modeset", RUN+="${pkgs.runtimeShell} -c 'mknod -m 666 /dev/nvidia-modeset c $$(grep nvidia-frontend /proc/devices | cut -d \ -f 1) 254'" 276 + KERNEL=="nvidia_uvm", RUN+="${pkgs.runtimeShell} -c 'mknod -m 666 /dev/nvidia-uvm c $$(grep nvidia-uvm /proc/devices | cut -d \ -f 1) 0'" 277 + KERNEL=="nvidia_uvm", RUN+="${pkgs.runtimeShell} -c 'mknod -m 666 /dev/nvidia-uvm-tools c $$(grep nvidia-uvm /proc/devices | cut -d \ -f 1) 1'" 278 + ''; 279 + hardware.opengl = { 280 + extraPackages = [ 281 + nvidia_x11.out 282 + ]; 283 + extraPackages32 = [ 284 + nvidia_x11.lib32 285 + ]; 286 + }; 287 + environment.systemPackages = [ 288 + nvidia_x11.bin 289 + ]; 290 + }) 291 + # X11 292 + (lib.mkIf x11Enabled { 293 + assertions = [ 193 294 { 194 295 assertion = primeEnabled -> pCfg.intelBusId == "" || pCfg.amdgpuBusId == ""; 195 296 message = "You cannot configure both an Intel iGPU and an AMD APU. Pick the one corresponding to your processor."; ··· 248 349 { 249 350 assertion = cfg.dynamicBoost.enable -> lib.versionAtLeast nvidia_x11.version "510.39.01"; 250 351 message = "NVIDIA's Dynamic Boost feature only exists on versions >= 510.39.01"; 251 - } 252 - ]; 352 + }]; 253 353 254 - # If Optimus/PRIME is enabled, we: 255 - # - Specify the configured NVIDIA GPU bus ID in the Device section for the 256 - # "nvidia" driver. 257 - # - Add the AllowEmptyInitialConfiguration option to the Screen section for the 258 - # "nvidia" driver, in order to allow the X server to start without any outputs. 259 - # - Add a separate Device section for the Intel GPU, using the "modesetting" 260 - # driver and with the configured BusID. 261 - # - OR add a separate Device section for the AMD APU, using the "amdgpu" 262 - # driver and with the configures BusID. 263 - # - Reference that Device section from the ServerLayout section as an inactive 264 - # device. 265 - # - Configure the display manager to run specific `xrandr` commands which will 266 - # configure/enable displays connected to the Intel iGPU / AMD APU. 354 + # If Optimus/PRIME is enabled, we: 355 + # - Specify the configured NVIDIA GPU bus ID in the Device section for the 356 + # "nvidia" driver. 357 + # - Add the AllowEmptyInitialConfiguration option to the Screen section for the 358 + # "nvidia" driver, in order to allow the X server to start without any outputs. 359 + # - Add a separate Device section for the Intel GPU, using the "modesetting" 360 + # driver and with the configured BusID. 361 + # - OR add a separate Device section for the AMD APU, using the "amdgpu" 362 + # driver and with the configures BusID. 363 + # - Reference that Device section from the ServerLayout section as an inactive 364 + # device. 365 + # - Configure the display manager to run specific `xrandr` commands which will 366 + # configure/enable displays connected to the Intel iGPU / AMD APU. 267 367 268 - # reverse sync implies offloading 269 - hardware.nvidia.prime.offload.enable = lib.mkDefault reverseSyncCfg.enable; 368 + # reverse sync implies offloading 369 + hardware.nvidia.prime.offload.enable = lib.mkDefault reverseSyncCfg.enable; 270 370 271 - services.xserver.drivers = 272 - lib.optional primeEnabled { 273 - name = igpuDriver; 274 - display = offloadCfg.enable; 275 - modules = lib.optional (igpuDriver == "amdgpu") pkgs.xorg.xf86videoamdgpu; 276 - deviceSection = 277 - '' 278 - BusID "${igpuBusId}" 279 - '' 280 - + lib.optionalString (syncCfg.enable && igpuDriver != "amdgpu") '' 281 - Option "AccelMethod" "none" 282 - ''; 283 - } 284 - ++ lib.singleton { 285 - name = "nvidia"; 286 - modules = [nvidia_x11.bin]; 287 - display = !offloadCfg.enable; 288 - deviceSection = 289 - lib.optionalString primeEnabled 290 - '' 291 - BusID "${pCfg.nvidiaBusId}" 292 - '' 293 - + lib.optionalString pCfg.allowExternalGpu '' 294 - Option "AllowExternalGpus" 295 - ''; 296 - screenSection = 297 - '' 298 - Option "RandRRotation" "on" 299 - '' 300 - + lib.optionalString syncCfg.enable '' 301 - Option "AllowEmptyInitialConfiguration" 302 - '' 303 - + lib.optionalString cfg.forceFullCompositionPipeline '' 304 - Option "metamodes" "nvidia-auto-select +0+0 {ForceFullCompositionPipeline=On}" 305 - Option "AllowIndirectGLXProtocol" "off" 306 - Option "TripleBuffer" "on" 307 - ''; 308 - }; 371 + services.xserver.drivers = 372 + lib.optional primeEnabled { 373 + name = igpuDriver; 374 + display = offloadCfg.enable; 375 + modules = lib.optional (igpuDriver == "amdgpu") pkgs.xorg.xf86videoamdgpu; 376 + deviceSection = 377 + '' 378 + BusID "${igpuBusId}" 379 + '' 380 + + lib.optionalString (syncCfg.enable && igpuDriver != "amdgpu") '' 381 + Option "AccelMethod" "none" 382 + ''; 383 + } 384 + ++ lib.singleton { 385 + name = "nvidia"; 386 + modules = [nvidia_x11.bin]; 387 + display = !offloadCfg.enable; 388 + deviceSection = 389 + lib.optionalString primeEnabled 390 + '' 391 + BusID "${pCfg.nvidiaBusId}" 392 + '' 393 + + lib.optionalString pCfg.allowExternalGpu '' 394 + Option "AllowExternalGpus" 395 + ''; 396 + screenSection = 397 + '' 398 + Option "RandRRotation" "on" 399 + '' 400 + + lib.optionalString syncCfg.enable '' 401 + Option "AllowEmptyInitialConfiguration" 402 + '' 403 + + lib.optionalString cfg.forceFullCompositionPipeline '' 404 + Option "metamodes" "nvidia-auto-select +0+0 {ForceFullCompositionPipeline=On}" 405 + Option "AllowIndirectGLXProtocol" "off" 406 + Option "TripleBuffer" "on" 407 + ''; 408 + }; 309 409 310 - services.xserver.serverLayoutSection = 311 - lib.optionalString syncCfg.enable '' 312 - Inactive "Device-${igpuDriver}[0]" 313 - '' 314 - + lib.optionalString reverseSyncCfg.enable '' 315 - Inactive "Device-nvidia[0]" 316 - '' 317 - + lib.optionalString offloadCfg.enable '' 318 - Option "AllowNVIDIAGPUScreens" 319 - ''; 410 + services.xserver.serverLayoutSection = 411 + lib.optionalString syncCfg.enable '' 412 + Inactive "Device-${igpuDriver}[0]" 413 + '' 414 + + lib.optionalString reverseSyncCfg.enable '' 415 + Inactive "Device-nvidia[0]" 416 + '' 417 + + lib.optionalString offloadCfg.enable '' 418 + Option "AllowNVIDIAGPUScreens" 419 + ''; 320 420 321 - services.xserver.displayManager.setupCommands = let 322 - gpuProviderName = 323 - if igpuDriver == "amdgpu" 324 - then 325 - # find the name of the provider if amdgpu 326 - "`${lib.getExe pkgs.xorg.xrandr} --listproviders | ${lib.getExe pkgs.gnugrep} -i AMD | ${lib.getExe pkgs.gnused} -n 's/^.*name://p'`" 327 - else igpuDriver; 328 - providerCmdParams = 329 - if syncCfg.enable 330 - then "\"${gpuProviderName}\" NVIDIA-0" 331 - else "NVIDIA-G0 \"${gpuProviderName}\""; 332 - in 333 - lib.optionalString (syncCfg.enable || reverseSyncCfg.enable) '' 334 - # Added by nvidia configuration module for Optimus/PRIME. 335 - ${lib.getExe pkgs.xorg.xrandr} --setprovideroutputsource ${providerCmdParams} 336 - ${lib.getExe pkgs.xorg.xrandr} --auto 337 - ''; 421 + services.xserver.displayManager.setupCommands = let 422 + gpuProviderName = 423 + if igpuDriver == "amdgpu" 424 + then 425 + # find the name of the provider if amdgpu 426 + "`${lib.getExe pkgs.xorg.xrandr} --listproviders | ${lib.getExe pkgs.gnugrep} -i AMD | ${lib.getExe pkgs.gnused} -n 's/^.*name://p'`" 427 + else igpuDriver; 428 + providerCmdParams = 429 + if syncCfg.enable 430 + then "\"${gpuProviderName}\" NVIDIA-0" 431 + else "NVIDIA-G0 \"${gpuProviderName}\""; 432 + in 433 + lib.optionalString (syncCfg.enable || reverseSyncCfg.enable) '' 434 + # Added by nvidia configuration module for Optimus/PRIME. 435 + ${lib.getExe pkgs.xorg.xrandr} --setprovideroutputsource ${providerCmdParams} 436 + ${lib.getExe pkgs.xorg.xrandr} --auto 437 + ''; 338 438 339 - environment.etc = { 340 - "nvidia/nvidia-application-profiles-rc" = lib.mkIf nvidia_x11.useProfiles {source = "${nvidia_x11.bin}/share/nvidia/nvidia-application-profiles-rc";}; 439 + environment.etc = { 440 + "nvidia/nvidia-application-profiles-rc" = lib.mkIf nvidia_x11.useProfiles {source = "${nvidia_x11.bin}/share/nvidia/nvidia-application-profiles-rc";}; 341 441 342 - # 'nvidia_x11' installs it's files to /run/opengl-driver/... 343 - "egl/egl_external_platform.d".source = "/run/opengl-driver/share/egl/egl_external_platform.d/"; 344 - }; 442 + # 'nvidia_x11' installs it's files to /run/opengl-driver/... 443 + "egl/egl_external_platform.d".source = "/run/opengl-driver/share/egl/egl_external_platform.d/"; 444 + }; 345 445 346 - hardware.opengl = { 347 - extraPackages = [ 348 - nvidia_x11.out 349 - pkgs.nvidia-vaapi-driver 350 - ]; 351 - extraPackages32 = [ 352 - nvidia_x11.lib32 353 - pkgs.pkgsi686Linux.nvidia-vaapi-driver 354 - ]; 355 - }; 356 - environment.systemPackages = 357 - [nvidia_x11.bin] 358 - ++ lib.optional cfg.nvidiaSettings nvidia_x11.settings 359 - ++ lib.optional cfg.nvidiaPersistenced nvidia_x11.persistenced 360 - ++ lib.optional offloadCfg.enableOffloadCmd 361 - (pkgs.writeShellScriptBin "nvidia-offload" '' 362 - export __NV_PRIME_RENDER_OFFLOAD=1 363 - export __NV_PRIME_RENDER_OFFLOAD_PROVIDER=NVIDIA-G0 364 - export __GLX_VENDOR_LIBRARY_NAME=nvidia 365 - export __VK_LAYER_NV_optimus=NVIDIA_only 366 - exec "$@" 367 - ''); 446 + hardware.opengl = { 447 + extraPackages = [ 448 + pkgs.nvidia-vaapi-driver 449 + ]; 450 + extraPackages32 = [ 451 + pkgs.pkgsi686Linux.nvidia-vaapi-driver 452 + ]; 453 + }; 454 + environment.systemPackages = 455 + lib.optional cfg.nvidiaSettings nvidia_x11.settings 456 + ++ lib.optional cfg.nvidiaPersistenced nvidia_x11.persistenced 457 + ++ lib.optional offloadCfg.enableOffloadCmd 458 + (pkgs.writeShellScriptBin "nvidia-offload" '' 459 + export __NV_PRIME_RENDER_OFFLOAD=1 460 + export __NV_PRIME_RENDER_OFFLOAD_PROVIDER=NVIDIA-G0 461 + export __GLX_VENDOR_LIBRARY_NAME=nvidia 462 + export __VK_LAYER_NV_optimus=NVIDIA_only 463 + exec "$@" 464 + ''); 368 465 369 - systemd.packages = lib.optional cfg.powerManagement.enable nvidia_x11.out; 466 + systemd.packages = lib.optional cfg.powerManagement.enable nvidia_x11.out; 370 467 371 - systemd.services = let 372 - nvidiaService = state: { 373 - description = "NVIDIA system ${state} actions"; 374 - path = [pkgs.kbd]; 375 - serviceConfig = { 376 - Type = "oneshot"; 377 - ExecStart = "${nvidia_x11.out}/bin/nvidia-sleep.sh '${state}'"; 468 + systemd.services = let 469 + nvidiaService = state: { 470 + description = "NVIDIA system ${state} actions"; 471 + path = [pkgs.kbd]; 472 + serviceConfig = { 473 + Type = "oneshot"; 474 + ExecStart = "${nvidia_x11.out}/bin/nvidia-sleep.sh '${state}'"; 475 + }; 476 + before = ["systemd-${state}.service"]; 477 + requiredBy = ["systemd-${state}.service"]; 378 478 }; 379 - before = ["systemd-${state}.service"]; 380 - requiredBy = ["systemd-${state}.service"]; 381 - }; 382 - in 383 - lib.mkMerge [ 384 - (lib.mkIf cfg.powerManagement.enable { 385 - nvidia-suspend = nvidiaService "suspend"; 386 - nvidia-hibernate = nvidiaService "hibernate"; 387 - nvidia-resume = 388 - (nvidiaService "resume") 389 - // { 390 - before = []; 391 - after = ["systemd-suspend.service" "systemd-hibernate.service"]; 392 - requiredBy = ["systemd-suspend.service" "systemd-hibernate.service"]; 479 + in 480 + lib.mkMerge [ 481 + (lib.mkIf cfg.powerManagement.enable { 482 + nvidia-suspend = nvidiaService "suspend"; 483 + nvidia-hibernate = nvidiaService "hibernate"; 484 + nvidia-resume = 485 + (nvidiaService "resume") 486 + // { 487 + before = []; 488 + after = ["systemd-suspend.service" "systemd-hibernate.service"]; 489 + requiredBy = ["systemd-suspend.service" "systemd-hibernate.service"]; 490 + }; 491 + }) 492 + (lib.mkIf cfg.nvidiaPersistenced { 493 + "nvidia-persistenced" = { 494 + description = "NVIDIA Persistence Daemon"; 495 + wantedBy = ["multi-user.target"]; 496 + serviceConfig = { 497 + Type = "forking"; 498 + Restart = "always"; 499 + PIDFile = "/var/run/nvidia-persistenced/nvidia-persistenced.pid"; 500 + ExecStart = "${lib.getExe nvidia_x11.persistenced} --verbose"; 501 + ExecStopPost = "${pkgs.coreutils}/bin/rm -rf /var/run/nvidia-persistenced"; 502 + }; 393 503 }; 394 - }) 395 - (lib.mkIf cfg.nvidiaPersistenced { 396 - "nvidia-persistenced" = { 397 - description = "NVIDIA Persistence Daemon"; 398 - wantedBy = ["multi-user.target"]; 399 - serviceConfig = { 400 - Type = "forking"; 401 - Restart = "always"; 402 - PIDFile = "/var/run/nvidia-persistenced/nvidia-persistenced.pid"; 403 - ExecStart = "${lib.getExe nvidia_x11.persistenced} --verbose"; 404 - ExecStopPost = "${pkgs.coreutils}/bin/rm -rf /var/run/nvidia-persistenced"; 504 + }) 505 + (lib.mkIf cfg.dynamicBoost.enable { 506 + "nvidia-powerd" = { 507 + description = "nvidia-powerd service"; 508 + path = [ 509 + pkgs.util-linux # nvidia-powerd wants lscpu 510 + ]; 511 + wantedBy = ["multi-user.target"]; 512 + serviceConfig = { 513 + Type = "dbus"; 514 + BusName = "nvidia.powerd.server"; 515 + ExecStart = "${nvidia_x11.bin}/bin/nvidia-powerd"; 516 + }; 405 517 }; 406 - }; 407 - }) 408 - (lib.mkIf cfg.dynamicBoost.enable { 409 - "nvidia-powerd" = { 410 - description = "nvidia-powerd service"; 411 - path = [ 412 - pkgs.util-linux # nvidia-powerd wants lscpu 413 - ]; 414 - wantedBy = ["multi-user.target"]; 415 - serviceConfig = { 416 - Type = "dbus"; 417 - BusName = "nvidia.powerd.server"; 418 - ExecStart = "${nvidia_x11.bin}/bin/nvidia-powerd"; 419 - }; 420 - }; 421 - }) 422 - ]; 518 + }) 519 + ]; 520 + services.acpid.enable = true; 423 521 424 - services.acpid.enable = true; 425 - 426 - services.dbus.packages = lib.optional cfg.dynamicBoost.enable nvidia_x11.bin; 427 - 428 - hardware.firmware = lib.optional cfg.open nvidia_x11.firmware; 429 - 430 - systemd.tmpfiles.rules = 431 - lib.optional config.virtualisation.docker.enableNvidia 432 - "L+ /run/nvidia-docker/bin - - - - ${nvidia_x11.bin}/origBin" 433 - ++ lib.optional (nvidia_x11.persistenced != null && config.virtualisation.docker.enableNvidia) 434 - "L+ /run/nvidia-docker/extras/bin/nvidia-persistenced - - - - ${nvidia_x11.persistenced}/origBin/nvidia-persistenced"; 435 - 436 - boot = { 437 - blacklistedKernelModules = ["nouveau" "nvidiafb"]; 522 + services.dbus.packages = lib.optional cfg.dynamicBoost.enable nvidia_x11.bin; 438 523 439 - extraModulePackages = 440 - if cfg.open 441 - then [nvidia_x11.open] 442 - else [nvidia_x11.bin]; 524 + hardware.firmware = lib.optional cfg.open nvidia_x11.firmware; 443 525 444 - # nvidia-uvm is required by CUDA applications. 445 - kernelModules = 446 - ["nvidia-uvm"] 447 - ++ lib.optionals config.services.xserver.enable ["nvidia" "nvidia_modeset" "nvidia_drm"]; 526 + systemd.tmpfiles.rules = 527 + lib.optional (nvidia_x11.persistenced != null && config.virtualisation.docker.enableNvidia) 528 + "L+ /run/nvidia-docker/extras/bin/nvidia-persistenced - - - - ${nvidia_x11.persistenced}/origBin/nvidia-persistenced"; 448 529 449 - # If requested enable modesetting via kernel parameter. 450 - kernelParams = 451 - lib.optional (offloadCfg.enable || cfg.modesetting.enable) "nvidia-drm.modeset=1" 452 - ++ lib.optional cfg.powerManagement.enable "nvidia.NVreg_PreserveVideoMemoryAllocations=1" 453 - ++ lib.optional cfg.open "nvidia.NVreg_OpenRmEnableUnsupportedGpus=1" 454 - ++ lib.optional (config.boot.kernelPackages.kernel.kernelAtLeast "6.2" && !ibtSupport) "ibt=off"; 530 + boot = { 531 + extraModulePackages = 532 + if cfg.open 533 + then [nvidia_x11.open] 534 + else [nvidia_x11.bin]; 535 + # nvidia-uvm is required by CUDA applications. 536 + kernelModules = 537 + lib.optionals config.services.xserver.enable ["nvidia" "nvidia_modeset" "nvidia_drm"]; 455 538 456 - # enable finegrained power management 457 - extraModprobeConfig = lib.optionalString cfg.powerManagement.finegrained '' 458 - options nvidia "NVreg_DynamicPowerManagement=0x02" 459 - ''; 460 - }; 539 + # If requested enable modesetting via kernel parameter. 540 + kernelParams = 541 + lib.optional (offloadCfg.enable || cfg.modesetting.enable) "nvidia-drm.modeset=1" 542 + ++ lib.optional cfg.powerManagement.enable "nvidia.NVreg_PreserveVideoMemoryAllocations=1" 543 + ++ lib.optional cfg.open "nvidia.NVreg_OpenRmEnableUnsupportedGpus=1" 544 + ++ lib.optional (config.boot.kernelPackages.kernel.kernelAtLeast "6.2" && !ibtSupport) "ibt=off"; 461 545 462 - services.udev.extraRules = 463 - '' 464 - # Create /dev/nvidia-uvm when the nvidia-uvm module is loaded. 465 - KERNEL=="nvidia", RUN+="${pkgs.runtimeShell} -c 'mknod -m 666 /dev/nvidiactl c $$(grep nvidia-frontend /proc/devices | cut -d \ -f 1) 255'" 466 - KERNEL=="nvidia", RUN+="${pkgs.runtimeShell} -c 'for i in $$(cat /proc/driver/nvidia/gpus/*/information | grep Minor | cut -d \ -f 4); do mknod -m 666 /dev/nvidia$${i} c $$(grep nvidia-frontend /proc/devices | cut -d \ -f 1) $${i}; done'" 467 - KERNEL=="nvidia_modeset", RUN+="${pkgs.runtimeShell} -c 'mknod -m 666 /dev/nvidia-modeset c $$(grep nvidia-frontend /proc/devices | cut -d \ -f 1) 254'" 468 - KERNEL=="nvidia_uvm", RUN+="${pkgs.runtimeShell} -c 'mknod -m 666 /dev/nvidia-uvm c $$(grep nvidia-uvm /proc/devices | cut -d \ -f 1) 0'" 469 - KERNEL=="nvidia_uvm", RUN+="${pkgs.runtimeShell} -c 'mknod -m 666 /dev/nvidia-uvm-tools c $$(grep nvidia-uvm /proc/devices | cut -d \ -f 1) 1'" 470 - '' 471 - + lib.optionalString cfg.powerManagement.finegrained ( 546 + # enable finegrained power management 547 + extraModprobeConfig = lib.optionalString cfg.powerManagement.finegrained '' 548 + options nvidia "NVreg_DynamicPowerManagement=0x02" 549 + ''; 550 + }; 551 + services.udev.extraRules = 552 + lib.optionalString cfg.powerManagement.finegrained ( 472 553 lib.optionalString (lib.versionOlder config.boot.kernelPackages.kernel.version "5.5") '' 473 554 # Remove NVIDIA USB xHCI Host Controller devices, if present 474 555 ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x0c0330", ATTR{remove}="1" ··· 489 570 ACTION=="unbind", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030200", TEST=="power/control", ATTR{power/control}="on" 490 571 '' 491 572 ); 492 - }; 573 + }) 574 + # Data Center 575 + (lib.mkIf (cfg.datacenter.enable) { 576 + boot.extraModulePackages = [ 577 + nvidia_x11.bin 578 + ]; 579 + systemd.services.nvidia-fabricmanager = { 580 + enable = true; 581 + description = "Start NVIDIA NVLink Management"; 582 + wantedBy = [ "multi-user.target" ]; 583 + unitConfig.After = [ "network-online.target" ]; 584 + unitConfig.Requires = [ "network-online.target" ]; 585 + serviceConfig = { 586 + Type = "forking"; 587 + TimeoutStartSec = 240; 588 + ExecStart = let 589 + nv-fab-conf = settingsFormat.generate "fabricmanager.conf" cfg.datacenter.settings; 590 + in 591 + nvidia_x11.fabricmanager + "/bin/nv-fabricmanager -c " + nv-fab-conf; 592 + LimitCORE="infinity"; 593 + }; 594 + }; 595 + environment.systemPackages = 596 + lib.optional cfg.datacenter.enable nvidia_x11.fabricmanager; 597 + }) 598 + ]); 493 599 }
+1
nixos/modules/module-list.nix
··· 1250 1250 ./services/web-apps/matomo.nix 1251 1251 ./services/web-apps/mattermost.nix 1252 1252 ./services/web-apps/mediawiki.nix 1253 + ./services/web-apps/meme-bingo-web.nix 1253 1254 ./services/web-apps/miniflux.nix 1254 1255 ./services/web-apps/monica.nix 1255 1256 ./services/web-apps/moodle.nix
+93
nixos/modules/services/web-apps/meme-bingo-web.nix
··· 1 + { config, lib, pkgs, ... }: 2 + 3 + let 4 + inherit (lib) mkEnableOption mkIf mkOption mdDoc types literalExpression; 5 + 6 + cfg = config.services.meme-bingo-web; 7 + in { 8 + options = { 9 + services.meme-bingo-web = { 10 + enable = mkEnableOption (mdDoc '' 11 + A web app for the meme bingo, rendered entirely on the web server and made interactive with forms. 12 + 13 + Note: The application's author suppose to run meme-bingo-web behind a reverse proxy for SSL and HTTP/3. 14 + ''); 15 + 16 + package = mkOption { 17 + type = types.package; 18 + default = pkgs.meme-bingo-web; 19 + defaultText = literalExpression "pkgs.meme-bingo-web"; 20 + description = mdDoc "meme-bingo-web package to use."; 21 + }; 22 + 23 + baseUrl = mkOption { 24 + description = mdDoc '' 25 + URL to be used for the HTML <base> element on all HTML routes. 26 + ''; 27 + type = types.str; 28 + default = "http://localhost:41678/"; 29 + example = "https://bingo.example.com/"; 30 + }; 31 + port = mkOption { 32 + description = mdDoc '' 33 + Port to be used for the web server. 34 + ''; 35 + type = types.port; 36 + default = 41678; 37 + example = 21035; 38 + }; 39 + }; 40 + }; 41 + 42 + config = mkIf cfg.enable { 43 + systemd.services.meme-bingo-web = { 44 + description = "A web app for playing meme bingos."; 45 + wantedBy = [ "multi-user.target" ]; 46 + 47 + environment = { 48 + MEME_BINGO_BASE = cfg.baseUrl; 49 + MEME_BINGO_PORT = toString cfg.port; 50 + }; 51 + path = [ cfg.package ]; 52 + 53 + serviceConfig = { 54 + User = "meme-bingo-web"; 55 + Group = "meme-bingo-web"; 56 + 57 + DynamicUser = true; 58 + 59 + ExecStart = "${cfg.package}/bin/meme-bingo-web"; 60 + 61 + Restart = "always"; 62 + RestartSec = 1; 63 + 64 + # Hardening 65 + CapabilityBoundingSet = [ "" ]; 66 + DeviceAllow = [ "/dev/random" ]; 67 + LockPersonality = true; 68 + PrivateDevices = true; 69 + PrivateUsers = true; 70 + ProcSubset = "pid"; 71 + ProtectSystem = "strict"; 72 + ProtectClock = true; 73 + ProtectControlGroups = true; 74 + ProtectHome = true; 75 + ProtectHostname = true; 76 + ProtectKernelLogs = true; 77 + ProtectKernelModules = true; 78 + ProtectKernelTunables = true; 79 + ProtectProc = "invisible"; 80 + RestrictAddressFamilies = [ "AF_INET" "AF_INET6" ]; 81 + RestrictNamespaces = true; 82 + RestrictRealtime = true; 83 + SystemCallArchitectures = "native"; 84 + SystemCallFilter = [ "@system-service" "~@privileged" "~@resources" ]; 85 + UMask = "0077"; 86 + RestrictSUIDSGID = true; 87 + RemoveIPC = true; 88 + NoNewPrivileges = true; 89 + MemoryDenyWriteExecute = true; 90 + }; 91 + }; 92 + }; 93 + }
+1 -1
nixos/tests/postgis.nix
··· 9 9 { pkgs, ... }: 10 10 11 11 { 12 - services.postgresql = let mypg = pkgs.postgresql_11; in { 12 + services.postgresql = let mypg = pkgs.postgresql; in { 13 13 enable = true; 14 14 package = mypg; 15 15 extraPlugins = with mypg.pkgs; [
+2 -2
pkgs/applications/audio/tidal-hifi/default.nix
··· 36 36 37 37 stdenv.mkDerivation (finalAttrs: { 38 38 pname = "tidal-hifi"; 39 - version = "5.7.0"; 39 + version = "5.7.1"; 40 40 41 41 src = fetchurl { 42 42 url = "https://github.com/Mastermindzh/tidal-hifi/releases/download/${finalAttrs.version}/tidal-hifi_${finalAttrs.version}_amd64.deb"; 43 - sha256 = "sha256-fA6zXmLfcZJt5/umdY4gdqGdbH3afsaanmK/i+Js5HQ="; 43 + sha256 = "sha256-7wBQgoglLS67aiQsF9iUeFoJDDqq0fJgu5BSyH+HI7M="; 44 44 }; 45 45 46 46 nativeBuildInputs = [ autoPatchelfHook dpkg makeWrapper ];
+2 -2
pkgs/applications/editors/emacs/generic.nix
··· 65 65 , withNativeCompilation ? 66 66 if nativeComp != null 67 67 then lib.warn "nativeComp option is deprecated and will be removed; use withNativeCompilation instead" nativeComp 68 - else true 68 + else stdenv.buildPlatform.canExecute stdenv.hostPlatform 69 69 , noGui ? false 70 70 , srcRepo ? true 71 71 , withAcl ? false ··· 405 405 }; 406 406 407 407 meta = meta // { 408 - broken = !(stdenv.buildPlatform.canExecute stdenv.hostPlatform); 408 + broken = withNativeCompilation && !(stdenv.buildPlatform.canExecute stdenv.hostPlatform); 409 409 }; 410 410 })
+1
pkgs/applications/misc/gallery-dl/default.nix
··· 38 38 homepage = "https://github.com/mikf/gallery-dl"; 39 39 changelog = "https://github.com/mikf/gallery-dl/blob/v${version}/CHANGELOG.md"; 40 40 license = licenses.gpl2Only; 41 + mainProgram = "gallery-dl"; 41 42 maintainers = with maintainers; [ dawidsowa marsam ]; 42 43 }; 43 44 }
+2 -3
pkgs/applications/networking/browsers/nyxt/default.nix
··· 3 3 , glib, gdk-pixbuf, cairo 4 4 , mailcap, pango, gtk3 5 5 , glib-networking, gsettings-desktop-schemas 6 - , xclip, notify-osd, enchant 6 + , xclip, wl-clipboard, notify-osd, enchant 7 7 }: 8 8 9 9 stdenv.mkDerivation rec { ··· 41 41 cp -f $src/assets/nyxt_''${i}x''${i}.png "$out/share/icons/hicolor/''${i}x''${i}/apps/nyxt.png" 42 42 done 43 43 44 - # Need to suffix PATH with xclip to be able to copy/paste in Nyxt even if xclip/xsel/wl-clipboard are not in the user's PATH 45 44 mkdir -p $out/bin && makeWrapper $src/bin/nyxt $out/bin/nyxt \ 46 - --suffix PATH : ${lib.makeBinPath [ xclip ]} \ 45 + --prefix PATH : ${lib.makeBinPath [ xclip wl-clipboard ]} \ 47 46 --prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "${GST_PLUGIN_SYSTEM_PATH_1_0}" \ 48 47 --argv0 nyxt "''${gappsWrapperArgs[@]}" 49 48 '';
+2
pkgs/applications/networking/instant-messengers/webcord/webcord-vencord/default.nix
··· 5 5 }: 6 6 7 7 webcord.overrideAttrs (old: { 8 + pname = "webcord-vencord"; 9 + 8 10 patches = (old.patches or [ ]) ++ [ 9 11 (substituteAll { 10 12 src = ./add-extension.patch;
+9 -1
pkgs/applications/video/pitivi/default.nix
··· 16 16 , meson 17 17 , ninja 18 18 , gsettings-desktop-schemas 19 + , hicolor-icon-theme 19 20 }: 20 21 21 22 python3.pkgs.buildPythonApplication rec { ··· 74 75 librosa 75 76 ]; 76 77 78 + preFixup = '' 79 + gappsWrapperArgs+=( 80 + # The icon theme is hardcoded. 81 + --prefix XDG_DATA_DIRS : "${hicolor-icon-theme}/share" 82 + ) 83 + ''; 84 + 77 85 postPatch = '' 78 86 patchShebangs ./getenvvar.py 79 87 ''; ··· 94 102 that can appeal to newbies and professionals alike. 95 103 ''; 96 104 license = licenses.lgpl21Plus; 97 - maintainers = with maintainers; []; 105 + maintainers = with maintainers; [ akechishiro ]; 98 106 platforms = platforms.linux; 99 107 }; 100 108 }
+3 -3
pkgs/by-name/ri/ripsecrets/package.nix
··· 5 5 6 6 rustPlatform.buildRustPackage rec { 7 7 pname = "ripsecrets"; 8 - version = "0.1.6"; 8 + version = "0.1.7"; 9 9 10 10 src = fetchFromGitHub { 11 11 owner = "sirwart"; 12 12 repo = "ripsecrets"; 13 13 rev = "v${version}"; 14 - hash = "sha256-p3421sQko/WulSNUxXpjsHPAtRoHHg61angfxJpoyFg="; 14 + hash = "sha256-NDSMxIq6eBXOv/mI662vsIIOfWQEzQ5fDGznC4+gFyE="; 15 15 }; 16 16 17 - cargoHash = "sha256-DJkEhqW5DZOmoNiS4nw+i2G0+KN2d7FbBuKp7fdAwMk="; 17 + cargoHash = "sha256-vp2gQUf6TWFkJ09STOlqlEB+jsGrVGAmix2eSgBDG/o="; 18 18 19 19 meta = with lib; { 20 20 description = "A command-line tool to prevent committing secret keys into your source code";
+29 -21
pkgs/development/lisp-modules/packages.nix
··· 218 218 }; 219 219 }; 220 220 221 - cl-webkit2_3_5_9 = build-asdf-system { 222 - inherit (super.cl-webkit2) pname systems nativeLibs lispLibs; 223 - version = "3.5.9"; 224 - 225 - src = pkgs.fetchFromGitHub { 226 - owner = "joachifm"; 227 - repo = "cl-webkit"; 228 - rev = "3.5.9"; 229 - sha256 = "sha256-YJo5ahL6+HLeJrxFBuZZjuK3OfA6DnAu82vvXMsNBgI="; 230 - }; 231 - }; 232 - 233 221 prompter = build-asdf-system { 234 222 pname = "prompter"; 235 223 version = "0.1.0"; ··· 258 246 259 247 nasdf = build-asdf-system { 260 248 pname = "nasdf"; 261 - version = "20230524-git"; 249 + version = "20230911-git"; 262 250 src = pkgs.fetchFromGitHub { 263 251 owner = "atlas-engineer"; 264 252 repo = "ntemplate"; 265 - rev = "51a884f388ec526c32914093fcad6bb2434e3c14"; 266 - sha256 = "sha256-bjQPkiHAxhjsHCnWpCGMsmQlGDJFGtQEdevnhK2k+kY="; 253 + rev = "ab7a018f3a67a999c72710644b10b4545130c139"; 254 + sha256 = "sha256-fXGh0h6CXLoBgK1jRxkSNyQVAY1gvi4iyHQBuzueR5Y="; 267 255 }; 268 256 }; 269 257 ··· 370 358 371 359 nyxt-gtk = build-asdf-system { 372 360 pname = "nyxt"; 373 - version = "3.6.0"; 361 + version = "3.7.0"; 374 362 375 363 lispLibs = (with super; [ 376 364 alexandria ··· 410 398 spinneret 411 399 slynk 412 400 trivia 413 - trivial-clipboard 414 401 trivial-features 415 402 trivial-garbage 416 403 trivial-package-local-nicknames ··· 418 405 unix-opts 419 406 cluffer 420 407 cl-cffi-gtk 421 - cl-gobject-introspection 422 408 quri 423 409 sqlite 410 + # TODO: Remove these overrides after quicklisp updates past the June 2023 release 411 + (trivial-clipboard.overrideAttrs (final: prev: { 412 + src = pkgs.fetchFromGitHub { 413 + owner = "snmsts"; 414 + repo = "trivial-clipboard"; 415 + rev = "6ddf8d5dff8f5c2102af7cd1a1751cbe6408377b"; 416 + sha256 = "sha256-n15IuTkqAAh2c1OfNbZfCAQJbH//QXeH0Bl1/5OpFRM="; 417 + };})) 418 + (cl-gobject-introspection.overrideAttrs (final: prev: { 419 + src = pkgs.fetchFromGitHub { 420 + owner = "andy128k"; 421 + repo = "cl-gobject-introspection"; 422 + rev = "83beec4492948b52aae4d4152200de5d5c7ac3e9"; 423 + sha256 = "sha256-g/FwWE+Rzmzm5Y+irvd1AJodbp6kPHJIFOFDPhaRlXc="; 424 + };})) 425 + (cl-webkit2.overrideAttrs (final: prev: { 426 + src = pkgs.fetchFromGitHub { 427 + owner = "joachifm"; 428 + repo = "cl-webkit"; 429 + rev = "66fd0700111586425c9942da1694b856fb15cf41"; 430 + sha256 = "sha256-t/B9CvQTekEEsM/ZEp47Mn6NeZaTYFsTdRqclfX9BNg="; 431 + }; 432 + })) 424 433 ]) ++ (with self; [ 425 434 history-tree 426 435 nhooks ··· 432 441 nsymbols 433 442 nclasses 434 443 nfiles 435 - cl-webkit2_3_5_9 436 444 swank 437 445 cl-containers 438 446 ]); ··· 440 448 src = pkgs.fetchFromGitHub { 441 449 owner = "atlas-engineer"; 442 450 repo = "nyxt"; 443 - rev = "3.6.0"; 444 - sha256 = "sha256-DaPEKdYf5R+RS7VQzbdLSqZvEQfxjeGEdX8rwmHRLrY="; 451 + rev = "3.7.0"; 452 + sha256 = "sha256-viiyO4fX3uyGuvojQ1rYYKBldRdVNzeJX1KYlYwfWVU="; 445 453 }; 446 454 447 455 nativeBuildInputs = [ pkgs.makeWrapper ];
+2 -2
pkgs/development/python-modules/aiohomekit/default.nix
··· 19 19 20 20 buildPythonPackage rec { 21 21 pname = "aiohomekit"; 22 - version = "3.0.2"; 22 + version = "3.0.3"; 23 23 format = "pyproject"; 24 24 25 25 disabled = pythonOlder "3.9"; ··· 28 28 owner = "Jc2k"; 29 29 repo = pname; 30 30 rev = "refs/tags/${version}"; 31 - hash = "sha256-EE8+VoZ755wd8s3Gm0lziu+1r4rAFgdjEtqI0apoZ7E="; 31 + hash = "sha256-6fNsiHddnsdjei0/wqx5ifWhM3bALlYG5Gli69+FmnM="; 32 32 }; 33 33 34 34 nativeBuildInputs = [
+2 -2
pkgs/development/python-modules/aiovodafone/default.nix
··· 10 10 11 11 buildPythonPackage rec { 12 12 pname = "aiovodafone"; 13 - version = "0.1.0"; 13 + version = "0.2.0"; 14 14 format = "pyproject"; 15 15 16 16 disabled = pythonOlder "3.10"; ··· 19 19 owner = "chemelli74"; 20 20 repo = "aiovodafone"; 21 21 rev = "refs/tags/v${version}"; 22 - hash = "sha256-VO+lQK+0bSQqnFiLzRMnVTpTJRjv2fZhDbIoTiMFWFI="; 22 + hash = "sha256-KIYVGPJSOWEWXuYQXmRgtXwL3kI371jvx7vbfTni2jI="; 23 23 }; 24 24 25 25 postPatch = ''
+85 -50
pkgs/development/python-modules/bokeh/default.nix
··· 1 - { buildPythonPackage 1 + { lib 2 + , stdenv 3 + , buildPythonPackage 2 4 , fetchPypi 3 - , futures ? null 4 - , isPy27 5 - , isPyPy 5 + , fetchFromGitHub 6 + , pythonOlder 7 + , substituteAll 8 + , colorama 9 + , contourpy 6 10 , jinja2 7 - , lib 8 11 , mock 9 12 , numpy 10 13 , nodejs 11 14 , packaging 15 + , pandas 12 16 , pillow 13 - #, pytestCheckHook# 14 - , pytest 15 - , python-dateutil 17 + , tornado 18 + , pytestCheckHook 16 19 , pyyaml 17 - , selenium 18 - , six 19 - , substituteAll 20 - , tornado 21 - , typing-extensions 22 - , pytz 23 - , flaky 24 - , networkx 20 + , setuptools 21 + , setuptools-git-versioning 22 + , xyzservices 25 23 , beautifulsoup4 26 - , requests 24 + , channels 25 + , click 26 + , colorcet 27 + , coverage 28 + , firefox 29 + , geckodriver 30 + , isort 31 + , json5 27 32 , nbconvert 28 - , icalendar 29 - , pandas 30 - , pythonImportsCheckHook 33 + , networkx 34 + , psutil 35 + , pygments 36 + , pygraphviz 37 + , pytest 38 + , pytest-asyncio 39 + , pytest-xdist 40 + , pytest-timeout 41 + , requests 42 + , scipy 43 + , selenium 44 + , toml 45 + , typing-extensions 31 46 }: 32 47 33 48 buildPythonPackage rec { 34 49 pname = "bokeh"; 35 50 # update together with panel which is not straightforward 36 - version = "2.4.3"; 51 + version = "3.2.2"; 52 + format = "pyproject"; 53 + 54 + disabled = pythonOlder "3.9"; 37 55 38 56 src = fetchPypi { 39 57 inherit pname version; 40 - hash = "sha256-7zOAEWGvN5Zlq3o0aE8iCYYeOu/VyAOiH7u5nZSHSwM="; 58 + hash = "sha256-spWbhSTWnsTniGvDZAdEXwqS4fGVMNO/xARSNqG3pv8="; 59 + }; 60 + 61 + src_test = fetchFromGitHub { 62 + owner = "bokeh"; 63 + repo = pname; 64 + rev = "refs/tags/${version}"; 65 + hash = "sha256-PK9iLOCcivr4oF9Riq73dzxGfxzWRk3bdrCCpRrTv5g="; 41 66 }; 42 67 43 68 patches = [ ··· 48 73 }) 49 74 ]; 50 75 51 - disabled = isPyPy || isPy27; 52 - 53 76 nativeBuildInputs = [ 54 - pythonImportsCheckHook 55 - ]; 56 - 57 - pythonImportsCheck = [ 58 - "bokeh" 77 + colorama 78 + nodejs 79 + setuptools 80 + setuptools-git-versioning 59 81 ]; 60 82 61 83 nativeCheckInputs = [ 62 - mock 84 + pytestCheckHook 85 + beautifulsoup4 86 + channels 87 + click 88 + colorcet 89 + coverage 90 + firefox 91 + geckodriver 92 + isort 93 + json5 94 + nbconvert 95 + networkx 96 + psutil 97 + pygments 98 + pygraphviz 63 99 pytest 64 - pillow 100 + pytest-asyncio 101 + pytest-xdist 102 + pytest-timeout 103 + requests 104 + scipy 65 105 selenium 66 - pytz 67 - flaky 68 - networkx 69 - beautifulsoup4 70 - requests 71 - nbconvert 72 - icalendar 73 - pandas 106 + toml 107 + typing-extensions 74 108 ]; 75 109 76 110 propagatedBuildInputs = [ 77 - pillow 78 111 jinja2 79 - python-dateutil 80 - six 112 + contourpy 113 + numpy 114 + packaging 115 + pandas 116 + pillow 81 117 pyyaml 82 118 tornado 83 - numpy 84 - packaging 85 - typing-extensions 86 - ] 87 - ++ lib.optionals ( isPy27 ) [ 88 - futures 119 + xyzservices 89 120 ]; 90 121 91 - # This test suite is a complete pain. Somehow it can't find its fixtures. 92 - doCheck = false; 122 + doCheck = false; # need more work 123 + pytestFlagsArray = "tests/test_defaults.py"; 124 + pythonImportsCheck = [ "bokeh" ]; 125 + preCheck = '' 126 + cp -rv ''${src_test}/tests/* ./tests/ 127 + ''; 93 128 94 129 meta = { 95 130 description = "Statistical and novel interactive HTML plots for Python";
+6 -7
pkgs/development/python-modules/bokeh/hardcode-nodejs-npmjs-paths.patch
··· 1 - diff --git a/bokeh/util/compiler.py b/bokeh/util/compiler.py 2 - index a752aad7d..8af05ff63 100644 3 - --- a/bokeh/util/compiler.py 4 - +++ b/bokeh/util/compiler.py 5 - @@ -442,8 +442,8 @@ def _detect_nodejs(): 6 - raise RuntimeError('node.js v%s or higher is needed to allow compilation of custom models ' % version + 1 + diff -ru a/src/bokeh/util/compiler.py b/src/bokeh/util/compiler.py 2 + --- a/src/bokeh/util/compiler.py 3 + +++ b/src/bokeh/util/compiler.py 4 + @@ -411,8 +411,8 @@ 5 + raise RuntimeError(f'node.js v{version_repr} or higher is needed to allow compilation of custom models ' + 7 6 '("conda install nodejs" or follow https://nodejs.org/en/download/)') 8 7 9 8 -_nodejs = None ··· 11 10 +_nodejs = "@node_bin@" 12 11 +_npmjs = "@npm_bin@" 13 12 14 - def _nodejs_path(): 13 + def _nodejs_path() -> str: 15 14 global _nodejs
+6 -4
pkgs/development/python-modules/intake/default.nix
··· 26 26 27 27 buildPythonPackage rec { 28 28 pname = "intake"; 29 - version = "0.7.0"; 29 + version = "unstable-2023-08-24"; 30 30 format = "setuptools"; 31 31 32 32 disabled = pythonOlder "3.7"; ··· 34 34 src = fetchFromGitHub { 35 35 owner = pname; 36 36 repo = pname; 37 - rev = "refs/tags/${version}"; 38 - hash = "sha256-2LUblA8eVCOfVJ6BJayralNiv6EFt6MzR5ptKksVNA4="; 37 + rev = "81b1567a2030adfb22b856b4f63cefe35de68983"; 38 + hash = "sha256-S2PoUN0Bao5VULfHhgbXXowopPLm/njAHO3dIM8ILno="; 39 39 }; 40 40 41 41 propagatedBuildInputs = [ ··· 79 79 --replace "'pytest-runner'" "" 80 80 ''; 81 81 82 + __darwinAllowLocalNetworking = true; 83 + 82 84 preCheck = '' 83 85 export HOME=$(mktemp -d); 84 86 export PATH="$PATH:$out/bin"; ··· 106 108 "test_ndarray" 107 109 "test_python" 108 110 # Timing-based, flaky on darwin and possibly others 109 - "TestServerV1Source.test_idle_timer" 111 + "test_idle_timer" 110 112 # arrow-cpp-13 related 111 113 "test_read" 112 114 "test_pickle"
+2 -5
pkgs/development/python-modules/livelossplot/default.nix
··· 13 13 14 14 buildPythonPackage rec { 15 15 pname = "livelossplot"; 16 - version = "0.5.4"; 16 + version = "0.5.5"; 17 17 18 18 disabled = pythonOlder "3.6"; 19 19 20 - # version number in source is wrong in this release 21 - postPatch = ''substituteInPlace ${pname}/version.py --replace "0.5.3" "0.5.4"''; 22 - 23 20 src = fetchFromGitHub { 24 21 owner = "stared"; 25 22 repo = pname; 26 23 rev = "v${version}"; 27 - sha256 = "IV6YAidoqVoKvpy+LNNHTPpobiDoGX59bHqJcBtaydk="; 24 + sha256 = "sha256-YU8vX4SubI6txmC/i5fOjcvWfuDFm8+SPmie8Eb1qRs="; 28 25 }; 29 26 30 27 propagatedBuildInputs = [ bokeh ipython matplotlib numpy ];
+2 -2
pkgs/development/python-modules/netutils/default.nix
··· 13 13 14 14 buildPythonPackage rec { 15 15 pname = "netutils"; 16 - version = "1.5.0"; 16 + version = "1.6.0"; 17 17 format = "pyproject"; 18 18 19 19 disabled = pythonOlder "3.8"; ··· 22 22 owner = "networktocode"; 23 23 repo = pname; 24 24 rev = "refs/tags/v${version}"; 25 - hash = "sha256-uUw48EBUpEUw+A8wxw3qXrnqmFWQzg/zb+8qAGRSlUw="; 25 + hash = "sha256-ocajE7E4xIatEmv58/9gEpWF2plJdiZXjk6ajD2vTzw="; 26 26 }; 27 27 28 28 nativeBuildInputs = [
+2 -2
pkgs/development/python-modules/panel/default.nix
··· 16 16 17 17 buildPythonPackage rec { 18 18 pname = "panel"; 19 - version = "0.14.4"; 19 + version = "1.2.2"; 20 20 21 21 format = "wheel"; 22 22 ··· 25 25 # tries to fetch even more artifacts 26 26 src = fetchPypi { 27 27 inherit pname version format; 28 - hash = "sha256-3U/PL8cnbNPw3xEM56YZesQEDXTE79yMCSsjdxwfUU0="; 28 + hash = "sha256-RMRjxcUp6MTs001wdNfC/e6diOcgtqrSaVIOSQfPgTs="; 29 29 }; 30 30 31 31 nativeBuildInputs = [
+3 -3
pkgs/development/python-modules/simplefix/default.nix
··· 2 2 3 3 buildPythonPackage rec { 4 4 pname = "simplefix"; 5 - version = "1.0.15"; 5 + version = "1.0.16"; 6 6 7 7 src = fetchFromGitHub { 8 8 repo = "simplefix"; 9 9 owner = "da4089"; 10 - rev = "v${version}"; 11 - hash = "sha256-GQHMotxNRuRv6zXhrD02T+aFgfYe3RnvUGADsBeSPbA="; 10 + rev = "refs/tags/v${version}"; 11 + hash = "sha256-dkwmWCOeTAoeSY8+1wg7RWX/d57JWc8bGagzrEPMAIU="; 12 12 }; 13 13 14 14 checkPhase = ''
+2 -2
pkgs/development/tools/database/sqlfluff/default.nix
··· 5 5 6 6 python3.pkgs.buildPythonApplication rec { 7 7 pname = "sqlfluff"; 8 - version = "2.3.1"; 8 + version = "2.3.2"; 9 9 format = "setuptools"; 10 10 11 11 src = fetchFromGitHub { 12 12 owner = pname; 13 13 repo = pname; 14 14 rev = "refs/tags/${version}"; 15 - hash = "sha256-olwvg/smXPDqKvSdpp30SEsHYWNQXU9ISbOmJH7MKLo="; 15 + hash = "sha256-buDDu5UQmO1ImWXzqwlFZHYbn2FUjAxs8KbQX+g/mvg="; 16 16 }; 17 17 18 18 propagatedBuildInputs = with python3.pkgs; [
+2 -2
pkgs/development/tools/language-servers/ruff-lsp/default.nix
··· 15 15 16 16 buildPythonPackage rec { 17 17 pname = "ruff-lsp"; 18 - version = "0.0.38"; 18 + version = "0.0.39"; 19 19 format = "pyproject"; 20 20 disabled = pythonOlder "3.7"; 21 21 ··· 23 23 owner = "astral-sh"; 24 24 repo = "ruff-lsp"; 25 25 rev = "v${version}"; 26 - hash = "sha256-JWobbaXmIcd+c/EikiuUva5aHm3VDdeAQK60Krl6tVE="; 26 + hash = "sha256-hbnSx59uSzXHeAhZPZnCzxl+mCZIdr29uUPfQCsm/Ww="; 27 27 }; 28 28 29 29 postPatch = ''
+12
pkgs/os-specific/linux/nvidia-x11/default.nix
··· 75 75 url = "https://developer.nvidia.com/downloads/vulkan-beta-${lib.concatStrings (lib.splitString "." version)}-linux"; 76 76 }; 77 77 78 + # data center driver compatible with current default cudaPackages 79 + dc = dc_520; 80 + dc_520 = generic rec { 81 + version = "520.61.05"; 82 + url = "https://us.download.nvidia.com/tesla/${version}/NVIDIA-Linux-x86_64-${version}.run"; 83 + sha256_64bit = "sha256-EPYWZwOur/6iN/otDMrNDpNXr1mzu8cIqQl8lXhQlzU=="; 84 + fabricmanagerSha256 = "sha256-o8Kbmkg7qczKQclaGvEyXNzEOWq9ZpQZn9syeffnEiE=="; 85 + useSettings = false; 86 + usePersistenced = false; 87 + useFabricmanager = true; 88 + }; 89 + 78 90 # Update note: 79 91 # If you add a legacy driver here, also update `top-level/linux-kernels.nix`, 80 92 # adding to the `nvidia_x11_legacy*` entries.
+47
pkgs/os-specific/linux/nvidia-x11/fabricmanager.nix
··· 1 + nvidia_x11: sha256: 2 + 3 + { stdenv, lib, fetchurl, patchelf }: 4 + 5 + let 6 + sys = with lib; concatStringsSep "-" (reverseList (splitString "-" stdenv.system)); 7 + bsys = builtins.replaceStrings ["_"] ["-"] sys; 8 + fmver = nvidia_x11.version; 9 + in 10 + 11 + stdenv.mkDerivation rec { 12 + pname = "fabricmanager"; 13 + version = fmver; 14 + src = fetchurl { 15 + url = "https://developer.download.nvidia.com/compute/cuda/redist/fabricmanager/" + 16 + "${sys}/${pname}-${sys}-${fmver}-archive.tar.xz"; 17 + inherit sha256; 18 + }; 19 + phases = [ "unpackPhase" "installPhase" ]; 20 + 21 + installPhase = '' 22 + find . 23 + mkdir -p $out/{bin,share/nvidia-fabricmanager} 24 + for bin in nv{-fabricmanager,switch-audit};do 25 + ${patchelf}/bin/patchelf \ 26 + --set-interpreter ${stdenv.cc.libc}/lib/ld-${bsys}.so.2 \ 27 + --set-rpath ${lib.makeLibraryPath [ stdenv.cc.libc ]} \ 28 + bin/$bin 29 + done 30 + mv bin/nv{-fabricmanager,switch-audit} $out/bin/. 31 + for d in etc systemd share/nvidia;do 32 + mv $d $out/share/nvidia-fabricmanager/. 33 + done 34 + for d in include lib;do 35 + mv $d $out/. 36 + done 37 + ''; 38 + 39 + meta = with lib; { 40 + homepage = "https://www.nvidia.com/object/unix.html"; 41 + description = "Fabricmanager daemon for NVLink intialization and control"; 42 + license = licenses.unfreeRedistributable; 43 + platforms = nvidia_x11.meta.platforms; 44 + mainProgram = "nv-fabricmanager"; 45 + maintainers = with maintainers; [ edwtjo ]; 46 + }; 47 + }
+51 -12
pkgs/os-specific/linux/nvidia-x11/generic.nix
··· 4 4 , sha256_64bit 5 5 , sha256_aarch64 ? null 6 6 , openSha256 ? null 7 - , settingsSha256 7 + , settingsSha256 ? null 8 8 , settingsVersion ? version 9 - , persistencedSha256 9 + , persistencedSha256 ? null 10 10 , persistencedVersion ? version 11 + , fabricmanagerSha256 ? null 12 + , fabricmanagerVersion ? version 11 13 , useGLVND ? true 12 14 , useProfiles ? true 13 15 , preferGtk2 ? false 14 16 , settings32Bit ? false 17 + , useSettings ? true 18 + , usePersistenced ? true 19 + , useFabricmanager ? false 15 20 , ibtSupport ? false 16 21 17 22 , prePatch ? "" ··· 33 38 disable32Bit ? stdenv.hostPlatform.system == "aarch64-linux" 34 39 # 32 bit libs only version of this package 35 40 , lib32 ? null 36 - # Whether to extract the GSP firmware 37 - , firmware ? openSha256 != null 41 + # Whether to extract the GSP firmware, datacenter drivers needs to extract the 42 + # firmware 43 + , firmware ? openSha256 != null || useFabricmanager 44 + # Whether the user accepts the NVIDIA Software License 45 + , config, acceptLicense ? config.nvidia.acceptLicense or false 38 46 }: 39 47 40 48 with lib; 41 49 42 50 assert !libsOnly -> kernel != null; 43 51 assert versionOlder version "391" -> sha256_32bit != null; 52 + assert useSettings -> settingsSha256 != null; 53 + assert usePersistenced -> persistencedSha256 != null; 54 + assert useFabricmanager -> fabricmanagerSha256 != null; 55 + assert useFabricmanager -> !(useSettings || usePersistenced); 44 56 45 57 let 46 58 nameSuffix = optionalString (!libsOnly) "-${kernel.version}"; ··· 54 66 dbus # for nvidia-powerd 55 67 ]); 56 68 69 + # maybe silly since we've ignored this previously and just unfree.. 70 + throwLicense = throw '' 71 + Use of NVIDIA Software requires license acceptance of the license: 72 + 73 + - License For Customer Use of NVIDIA Software [1] 74 + 75 + You can express acceptance by setting acceptLicense to true your nixpkgs.config. 76 + Example: 77 + 78 + configuration.nix: 79 + nixpkgs.config.allowUnfree = true; 80 + nixpkgs.config.nvidia.acceptLicense = true; 81 + 82 + config.nix: 83 + allowUnfree = true; 84 + nvidia.acceptLicense = true; 85 + 86 + [1]: https://www.nvidia.com/content/DriverDownloads/licence.php?lang=us 87 + ''; 88 + 57 89 self = stdenv.mkDerivation { 58 - name = "nvidia-x11-${version}${nameSuffix}"; 90 + name = "nvidia-${if useFabricmanager then "dc" else "x11"}-${version}${nameSuffix}"; 59 91 60 92 builder = ./builder.sh; 61 93 62 94 src = 95 + if !acceptLicense && (openSha256 == null) then throwLicense else 63 96 if stdenv.hostPlatform.system == "x86_64-linux" then 64 97 fetchurl { 65 98 urls = if args ? url then [ args.url ] else [ ··· 127 160 nvidia_x11 = self; 128 161 broken = brokenOpen; 129 162 }) openSha256; 130 - settings = (if settings32Bit then pkgsi686Linux.callPackage else callPackage) (import ./settings.nix self settingsSha256) { 131 - withGtk2 = preferGtk2; 132 - withGtk3 = !preferGtk2; 133 - }; 134 - persistenced = mapNullable (hash: callPackage (import ./persistenced.nix self hash) { }) persistencedSha256; 163 + settings = if useSettings then 164 + (if settings32Bit then pkgsi686Linux.callPackage else callPackage) (import ./settings.nix self settingsSha256) { 165 + withGtk2 = preferGtk2; 166 + withGtk3 = !preferGtk2; 167 + } else {}; 168 + persistenced = if usePersistenced then 169 + mapNullable (hash: callPackage (import ./persistenced.nix self hash) { }) persistencedSha256 170 + else {}; 171 + fabricmanager = if useFabricmanager then 172 + mapNullable (hash: callPackage (import ./fabricmanager.nix self hash) { }) fabricmanagerSha256 173 + else {}; 135 174 inherit persistencedVersion settingsVersion; 136 175 compressFirmware = false; 137 176 ibtSupport = ibtSupport || (lib.versionAtLeast version "530"); ··· 141 180 142 181 meta = with lib; { 143 182 homepage = "https://www.nvidia.com/object/unix.html"; 144 - description = "X.org driver and kernel module for NVIDIA graphics cards"; 183 + description = "${if useFabricmanager then "Data Center" else "X.org"} driver and kernel module for NVIDIA cards"; 145 184 license = licenses.unfreeRedistributable; 146 185 platforms = [ "x86_64-linux" ] 147 186 ++ optionals (sha256_32bit != null) [ "i686-linux" ] 148 187 ++ optionals (sha256_aarch64 != null) [ "aarch64-linux" ]; 149 - maintainers = with maintainers; [ jonringer kiskae ]; 188 + maintainers = with maintainers; [ jonringer kiskae edwtjo ]; 150 189 priority = 4; # resolves collision with xorg-server's "lib/xorg/modules/extensions/libglx.so" 151 190 inherit broken; 152 191 };
+4 -3
pkgs/servers/sql/postgresql/ext/postgis.nix
··· 16 16 }: 17 17 stdenv.mkDerivation rec { 18 18 pname = "postgis"; 19 - version = "3.3.3"; 19 + version = "3.4.0"; 20 20 21 21 outputs = [ "out" "doc" ]; 22 22 23 23 src = fetchurl { 24 24 url = "https://download.osgeo.org/postgis/source/postgis-${version}.tar.gz"; 25 - sha256 = "sha256-dOs1bj+F8UIzeRATNgiBtnSPeAgcxoj/nW8PZzp2LRM="; 25 + sha256 = "sha256-rum2CmyITTVBZLMJbEZX8yRFQYZgf4WdHOBdiZeYr50="; 26 26 }; 27 27 28 28 buildInputs = [ libxml2 postgresql geos proj gdal json_c protobufc pcre2.dev ] ··· 35 35 36 36 preConfigure = '' 37 37 sed -i 's@/usr/bin/file@${file}/bin/file@' configure 38 - configureFlags="--datadir=$out/share/postgresql --datarootdir=$out/share/postgresql --bindir=$out/bin --docdir=$doc/share/doc/${pname} --with-gdalconfig=${gdal}/bin/gdal-config --with-jsondir=${json_c.dev}" 38 + configureFlags="--datadir=$out/share/postgresql --datarootdir=$out/share/postgresql --bindir=$out/bin --docdir=$doc/share/doc/${pname} --with-gdalconfig=${gdal}/bin/gdal-config --with-jsondir=${json_c.dev} --disable-extension-upgrades-install" 39 39 40 40 makeFlags="PERL=${perl}/bin/perl datadir=$out/share/postgresql pkglibdir=$out/lib bindir=$out/bin docdir=$doc/share/doc/${pname}" 41 41 ''; ··· 76 76 license = licenses.gpl2; 77 77 maintainers = [ maintainers.marcweber ]; 78 78 inherit (postgresql.meta) platforms; 79 + broken = versionOlder postgresql.version "12"; 79 80 }; 80 81 }
+34
pkgs/servers/web-apps/meme-bingo-web/default.nix
··· 1 + { lib, fetchFromGitea, rustPlatform, makeWrapper }: 2 + 3 + rustPlatform.buildRustPackage rec { 4 + pname = "meme-bingo-web"; 5 + version = "0.2.0"; 6 + 7 + src = fetchFromGitea { 8 + domain = "codeberg.org"; 9 + owner = "annaaurora"; 10 + repo = "meme-bingo-web"; 11 + rev = "v${version}"; 12 + hash = "sha256-6hQra+10TaaQGzwiYfL+WHmGc6f0Hn8Tybd0lA5t0qc="; 13 + }; 14 + 15 + cargoHash = "sha256-/hBymxNAzyfapUL5Whkg4NBLA7Fc8A1npXEa9MXTAz4="; 16 + 17 + nativeBuildInputs = [ makeWrapper ]; 18 + 19 + postInstall = '' 20 + mkdir -p $out/share/meme-bingo-web 21 + cp -r {templates,static} $out/share/meme-bingo-web/ 22 + 23 + wrapProgram $out/bin/meme-bingo-web \ 24 + --set MEME_BINGO_TEMPLATES $out/share/meme-bingo-web/templates \ 25 + --set MEME_BINGO_STATIC $out/share/meme-bingo-web/static 26 + ''; 27 + 28 + meta = with lib; { 29 + description = "Play meme bingo using this neat web app"; 30 + homepage = "https://codeberg.org/annaaurora/meme-bingo-web"; 31 + license = licenses.unlicense; 32 + maintainers = with maintainers; [ annaaurora ]; 33 + }; 34 + }
+2 -2
pkgs/tools/admin/azure-cli/default.nix
··· 1 1 { stdenv, lib, python3, fetchPypi, fetchFromGitHub, installShellFiles }: 2 2 3 3 let 4 - version = "2.51.0"; 4 + version = "2.52.0"; 5 5 6 6 src = fetchFromGitHub { 7 7 name = "azure-cli-${version}-src"; 8 8 owner = "Azure"; 9 9 repo = "azure-cli"; 10 10 rev = "azure-cli-${version}"; 11 - hash = "sha512-KjkR1YKvL5stfmIbrfzj9Ons4iYyiKQdLiRh7I7Dd43lvJwXaYLNjIYL5SOX3F3D9nmNxCb0qmYAQH0iEmyVjw=="; 11 + hash = "sha256-wa0LmBMv3eQIsWEKMAHks+TvBZmTdFepPGG5XQRvZXk="; 12 12 }; 13 13 14 14 # put packages that needs to be overridden in the py package scope
+2 -2
pkgs/tools/admin/azure-cli/python-packages.nix
··· 289 289 azure-mgmt-containerregistry = overrideAzureMgmtPackage super.azure-mgmt-containerregistry "10.1.0" "zip" 290 290 "sha256-VrX9YfYNvlA8+eNqHCp35BAeQZzQKakZs7ZZKwT8oYc="; 291 291 292 - azure-mgmt-monitor = (overrideAzureMgmtPackage super.azure-mgmt-monitor "5.0.0" "zip" 293 - "sha256-eL9KJowxTF7hZJQQQCNJZ7l+rKPFM8wP5vEigt3ZFGE=").overridePythonAttrs (attrs: { 292 + azure-mgmt-monitor = (overrideAzureMgmtPackage super.azure-mgmt-monitor "6.0.2" "tar.gz" 293 + "sha256-X/v1AOSZq3kSsbptJs7yZIDZrkEVMgGbt41yViGW4Hs=").overridePythonAttrs (attrs: { 294 294 propagatedBuildInputs = attrs.propagatedBuildInputs or [ ] ++ [ self.msrest ]; 295 295 }); 296 296
+3 -3
pkgs/tools/networking/sing-box/default.nix
··· 11 11 12 12 buildGoModule rec { 13 13 pname = "sing-box"; 14 - version = "1.4.1"; 14 + version = "1.4.2"; 15 15 16 16 src = fetchFromGitHub { 17 17 owner = "SagerNet"; 18 18 repo = pname; 19 19 rev = "v${version}"; 20 - hash = "sha256-AB+JNac9553Viw/XVqLFAQnEOwweCz3ltyUbB1gYMmM="; 20 + hash = "sha256-OBLgAuZIqR+81rN886gIai8+uUxHDbOWnGz6jYZnGm8="; 21 21 }; 22 22 23 - vendorHash = "sha256-Je5852dIKjlTAym00V2gNz89Hrl8QygEfkybZlLVktY="; 23 + vendorHash = "sha256-oDUjiMAG/vkSYS1c8lwqVlFzyvTIQrUSeJohHS9X9I0="; 24 24 25 25 tags = [ 26 26 "with_quic"
+2
pkgs/top-level/all-packages.nix
··· 33854 33854 33855 33855 melody = callPackage ../tools/misc/melody { }; 33856 33856 33857 + meme-bingo-web = callPackage ../servers/web-apps/meme-bingo-web { }; 33858 + 33857 33859 meme-image-generator = callPackage ../applications/graphics/meme-image-generator { }; 33858 33860 33859 33861 meme-suite = callPackage ../applications/science/biology/meme-suite { };
+2
pkgs/top-level/linux-kernels.nix
··· 410 410 nvidia_x11_legacy470 = nvidiaPackages.legacy_470; 411 411 nvidia_x11_production = nvidiaPackages.production; 412 412 nvidia_x11_vulkan_beta = nvidiaPackages.vulkan_beta; 413 + nvidia_dc = nvidiaPackages.dc; 414 + nvidia_dc_520 = nvidiaPackages.dc_520; 413 415 414 416 # this is not a replacement for nvidia_x11* 415 417 # only the opensource kernel driver exposed for hydra to build