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 266 - The `cawbird` package is dropped from nixpkgs, as it got broken by the Twitter API closing down and has been abandoned upstream. 267 268 - 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 270 - New `boot.bcache.enable` (default enabled) allows completely removing `bcache` mount support.
··· 265 266 - The `cawbird` package is dropped from nixpkgs, as it got broken by the Twitter API closing down and has been abandoned upstream. 267 268 + - `hardware.nvidia` gained `datacenter` options for enabling NVIDIA Data Center drivers and configuration of NVLink/NVSwitch topologies through `nv-fabricmanager`. 269 + 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. 271 272 - New `boot.bcache.enable` (default enabled) allows completely removing `bcache` mount support.
+314 -208
nixos/modules/hardware/video/nvidia.nix
··· 4 pkgs, 5 ... 6 }: let 7 nvidia_x11 = 8 - if (lib.elem "nvidia" config.services.xserver.videoDrivers) 9 then cfg.package 10 else null; 11 ··· 18 primeEnabled = syncCfg.enable || reverseSyncCfg.enable || offloadCfg.enable; 19 busIDType = lib.types.strMatching "([[:print:]]+[\:\@][0-9]{1,3}\:[0-9]{1,2}\:[0-9])?"; 20 ibtSupport = cfg.open || (nvidia_x11.ibtSupport or false); 21 in { 22 options = { 23 hardware.nvidia = { 24 powerManagement.enable = lib.mkEnableOption (lib.mdDoc '' 25 experimental power management through systemd. For more information, see 26 the NVIDIA docs, on Chapter 21. Configuring Power Management Support. ··· 167 It also drastically increases the time the driver needs to clock down after load. 168 ''); 169 170 - package = lib.mkPackageOptionMD config.boot.kernelPackages.nvidiaPackages "nvidia_x11" { 171 - default = "stable"; 172 example = lib.mdDoc "config.boot.kernelPackages.nvidiaPackages.legacy_470"; 173 }; 174 175 open = lib.mkEnableOption (lib.mdDoc '' ··· 188 then pCfg.intelBusId 189 else pCfg.amdgpuBusId; 190 in 191 - lib.mkIf (nvidia_x11 != null) { 192 - assertions = [ 193 { 194 assertion = primeEnabled -> pCfg.intelBusId == "" || pCfg.amdgpuBusId == ""; 195 message = "You cannot configure both an Intel iGPU and an AMD APU. Pick the one corresponding to your processor."; ··· 248 { 249 assertion = cfg.dynamicBoost.enable -> lib.versionAtLeast nvidia_x11.version "510.39.01"; 250 message = "NVIDIA's Dynamic Boost feature only exists on versions >= 510.39.01"; 251 - } 252 - ]; 253 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. 267 268 - # reverse sync implies offloading 269 - hardware.nvidia.prime.offload.enable = lib.mkDefault reverseSyncCfg.enable; 270 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 - }; 309 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 - ''; 320 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 - ''; 338 339 - environment.etc = { 340 - "nvidia/nvidia-application-profiles-rc" = lib.mkIf nvidia_x11.useProfiles {source = "${nvidia_x11.bin}/share/nvidia/nvidia-application-profiles-rc";}; 341 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 - }; 345 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 - ''); 368 369 - systemd.packages = lib.optional cfg.powerManagement.enable nvidia_x11.out; 370 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}'"; 378 }; 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"]; 393 }; 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"; 405 }; 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 - ]; 423 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"]; 438 439 - extraModulePackages = 440 - if cfg.open 441 - then [nvidia_x11.open] 442 - else [nvidia_x11.bin]; 443 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"]; 448 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"; 455 456 - # enable finegrained power management 457 - extraModprobeConfig = lib.optionalString cfg.powerManagement.finegrained '' 458 - options nvidia "NVreg_DynamicPowerManagement=0x02" 459 - ''; 460 - }; 461 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 ( 472 lib.optionalString (lib.versionOlder config.boot.kernelPackages.kernel.version "5.5") '' 473 # Remove NVIDIA USB xHCI Host Controller devices, if present 474 ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x0c0330", ATTR{remove}="1" ··· 489 ACTION=="unbind", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030200", TEST=="power/control", ATTR{power/control}="on" 490 '' 491 ); 492 - }; 493 }
··· 4 pkgs, 5 ... 6 }: let 7 + x11Enabled = config.services.xserver.enable 8 + && (lib.elem "nvidia" config.services.xserver.videoDrivers); 9 nvidia_x11 = 10 + if x11Enabled || cfg.datacenter.enable 11 then cfg.package 12 else null; 13 ··· 20 primeEnabled = syncCfg.enable || reverseSyncCfg.enable || offloadCfg.enable; 21 busIDType = lib.types.strMatching "([[:print:]]+[\:\@][0-9]{1,3}\:[0-9]{1,2}\:[0-9])?"; 22 ibtSupport = cfg.open || (nvidia_x11.ibtSupport or false); 23 + settingsFormat = pkgs.formats.keyValue {}; 24 in { 25 options = { 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 + 81 powerManagement.enable = lib.mkEnableOption (lib.mdDoc '' 82 experimental power management through systemd. For more information, see 83 the NVIDIA docs, on Chapter 21. Configuring Power Management Support. ··· 224 It also drastically increases the time the driver needs to clock down after load. 225 ''); 226 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 + ''; 232 example = lib.mdDoc "config.boot.kernelPackages.nvidiaPackages.legacy_470"; 233 + description = lib.mdDoc '' 234 + The NVIDIA driver package to use. 235 + ''; 236 }; 237 238 open = lib.mkEnableOption (lib.mdDoc '' ··· 251 then pCfg.intelBusId 252 else pCfg.amdgpuBusId; 253 in 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 = [ 294 { 295 assertion = primeEnabled -> pCfg.intelBusId == "" || pCfg.amdgpuBusId == ""; 296 message = "You cannot configure both an Intel iGPU and an AMD APU. Pick the one corresponding to your processor."; ··· 349 { 350 assertion = cfg.dynamicBoost.enable -> lib.versionAtLeast nvidia_x11.version "510.39.01"; 351 message = "NVIDIA's Dynamic Boost feature only exists on versions >= 510.39.01"; 352 + }]; 353 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. 367 368 + # reverse sync implies offloading 369 + hardware.nvidia.prime.offload.enable = lib.mkDefault reverseSyncCfg.enable; 370 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 + }; 409 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 + ''; 420 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 + ''; 438 439 + environment.etc = { 440 + "nvidia/nvidia-application-profiles-rc" = lib.mkIf nvidia_x11.useProfiles {source = "${nvidia_x11.bin}/share/nvidia/nvidia-application-profiles-rc";}; 441 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 + }; 445 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 + ''); 465 466 + systemd.packages = lib.optional cfg.powerManagement.enable nvidia_x11.out; 467 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"]; 478 }; 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 + }; 503 }; 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 + }; 517 }; 518 + }) 519 + ]; 520 + services.acpid.enable = true; 521 522 + services.dbus.packages = lib.optional cfg.dynamicBoost.enable nvidia_x11.bin; 523 524 + hardware.firmware = lib.optional cfg.open nvidia_x11.firmware; 525 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"; 529 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"]; 538 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"; 545 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 ( 553 lib.optionalString (lib.versionOlder config.boot.kernelPackages.kernel.version "5.5") '' 554 # Remove NVIDIA USB xHCI Host Controller devices, if present 555 ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x0c0330", ATTR{remove}="1" ··· 570 ACTION=="unbind", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030200", TEST=="power/control", ATTR{power/control}="on" 571 '' 572 ); 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 + ]); 599 }
+1
nixos/modules/module-list.nix
··· 1250 ./services/web-apps/matomo.nix 1251 ./services/web-apps/mattermost.nix 1252 ./services/web-apps/mediawiki.nix 1253 ./services/web-apps/miniflux.nix 1254 ./services/web-apps/monica.nix 1255 ./services/web-apps/moodle.nix
··· 1250 ./services/web-apps/matomo.nix 1251 ./services/web-apps/mattermost.nix 1252 ./services/web-apps/mediawiki.nix 1253 + ./services/web-apps/meme-bingo-web.nix 1254 ./services/web-apps/miniflux.nix 1255 ./services/web-apps/monica.nix 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 { pkgs, ... }: 10 11 { 12 - services.postgresql = let mypg = pkgs.postgresql_11; in { 13 enable = true; 14 package = mypg; 15 extraPlugins = with mypg.pkgs; [
··· 9 { pkgs, ... }: 10 11 { 12 + services.postgresql = let mypg = pkgs.postgresql; in { 13 enable = true; 14 package = mypg; 15 extraPlugins = with mypg.pkgs; [
+2 -2
pkgs/applications/audio/tidal-hifi/default.nix
··· 36 37 stdenv.mkDerivation (finalAttrs: { 38 pname = "tidal-hifi"; 39 - version = "5.7.0"; 40 41 src = fetchurl { 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="; 44 }; 45 46 nativeBuildInputs = [ autoPatchelfHook dpkg makeWrapper ];
··· 36 37 stdenv.mkDerivation (finalAttrs: { 38 pname = "tidal-hifi"; 39 + version = "5.7.1"; 40 41 src = fetchurl { 42 url = "https://github.com/Mastermindzh/tidal-hifi/releases/download/${finalAttrs.version}/tidal-hifi_${finalAttrs.version}_amd64.deb"; 43 + sha256 = "sha256-7wBQgoglLS67aiQsF9iUeFoJDDqq0fJgu5BSyH+HI7M="; 44 }; 45 46 nativeBuildInputs = [ autoPatchelfHook dpkg makeWrapper ];
+2 -2
pkgs/applications/editors/emacs/generic.nix
··· 65 , withNativeCompilation ? 66 if nativeComp != null 67 then lib.warn "nativeComp option is deprecated and will be removed; use withNativeCompilation instead" nativeComp 68 - else true 69 , noGui ? false 70 , srcRepo ? true 71 , withAcl ? false ··· 405 }; 406 407 meta = meta // { 408 - broken = !(stdenv.buildPlatform.canExecute stdenv.hostPlatform); 409 }; 410 })
··· 65 , withNativeCompilation ? 66 if nativeComp != null 67 then lib.warn "nativeComp option is deprecated and will be removed; use withNativeCompilation instead" nativeComp 68 + else stdenv.buildPlatform.canExecute stdenv.hostPlatform 69 , noGui ? false 70 , srcRepo ? true 71 , withAcl ? false ··· 405 }; 406 407 meta = meta // { 408 + broken = withNativeCompilation && !(stdenv.buildPlatform.canExecute stdenv.hostPlatform); 409 }; 410 })
+1
pkgs/applications/misc/gallery-dl/default.nix
··· 38 homepage = "https://github.com/mikf/gallery-dl"; 39 changelog = "https://github.com/mikf/gallery-dl/blob/v${version}/CHANGELOG.md"; 40 license = licenses.gpl2Only; 41 maintainers = with maintainers; [ dawidsowa marsam ]; 42 }; 43 }
··· 38 homepage = "https://github.com/mikf/gallery-dl"; 39 changelog = "https://github.com/mikf/gallery-dl/blob/v${version}/CHANGELOG.md"; 40 license = licenses.gpl2Only; 41 + mainProgram = "gallery-dl"; 42 maintainers = with maintainers; [ dawidsowa marsam ]; 43 }; 44 }
+2 -3
pkgs/applications/networking/browsers/nyxt/default.nix
··· 3 , glib, gdk-pixbuf, cairo 4 , mailcap, pango, gtk3 5 , glib-networking, gsettings-desktop-schemas 6 - , xclip, notify-osd, enchant 7 }: 8 9 stdenv.mkDerivation rec { ··· 41 cp -f $src/assets/nyxt_''${i}x''${i}.png "$out/share/icons/hicolor/''${i}x''${i}/apps/nyxt.png" 42 done 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 mkdir -p $out/bin && makeWrapper $src/bin/nyxt $out/bin/nyxt \ 46 - --suffix PATH : ${lib.makeBinPath [ xclip ]} \ 47 --prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "${GST_PLUGIN_SYSTEM_PATH_1_0}" \ 48 --argv0 nyxt "''${gappsWrapperArgs[@]}" 49 '';
··· 3 , glib, gdk-pixbuf, cairo 4 , mailcap, pango, gtk3 5 , glib-networking, gsettings-desktop-schemas 6 + , xclip, wl-clipboard, notify-osd, enchant 7 }: 8 9 stdenv.mkDerivation rec { ··· 41 cp -f $src/assets/nyxt_''${i}x''${i}.png "$out/share/icons/hicolor/''${i}x''${i}/apps/nyxt.png" 42 done 43 44 mkdir -p $out/bin && makeWrapper $src/bin/nyxt $out/bin/nyxt \ 45 + --prefix PATH : ${lib.makeBinPath [ xclip wl-clipboard ]} \ 46 --prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "${GST_PLUGIN_SYSTEM_PATH_1_0}" \ 47 --argv0 nyxt "''${gappsWrapperArgs[@]}" 48 '';
+2
pkgs/applications/networking/instant-messengers/webcord/webcord-vencord/default.nix
··· 5 }: 6 7 webcord.overrideAttrs (old: { 8 patches = (old.patches or [ ]) ++ [ 9 (substituteAll { 10 src = ./add-extension.patch;
··· 5 }: 6 7 webcord.overrideAttrs (old: { 8 + pname = "webcord-vencord"; 9 + 10 patches = (old.patches or [ ]) ++ [ 11 (substituteAll { 12 src = ./add-extension.patch;
+9 -1
pkgs/applications/video/pitivi/default.nix
··· 16 , meson 17 , ninja 18 , gsettings-desktop-schemas 19 }: 20 21 python3.pkgs.buildPythonApplication rec { ··· 74 librosa 75 ]; 76 77 postPatch = '' 78 patchShebangs ./getenvvar.py 79 ''; ··· 94 that can appeal to newbies and professionals alike. 95 ''; 96 license = licenses.lgpl21Plus; 97 - maintainers = with maintainers; []; 98 platforms = platforms.linux; 99 }; 100 }
··· 16 , meson 17 , ninja 18 , gsettings-desktop-schemas 19 + , hicolor-icon-theme 20 }: 21 22 python3.pkgs.buildPythonApplication rec { ··· 75 librosa 76 ]; 77 78 + preFixup = '' 79 + gappsWrapperArgs+=( 80 + # The icon theme is hardcoded. 81 + --prefix XDG_DATA_DIRS : "${hicolor-icon-theme}/share" 82 + ) 83 + ''; 84 + 85 postPatch = '' 86 patchShebangs ./getenvvar.py 87 ''; ··· 102 that can appeal to newbies and professionals alike. 103 ''; 104 license = licenses.lgpl21Plus; 105 + maintainers = with maintainers; [ akechishiro ]; 106 platforms = platforms.linux; 107 }; 108 }
+3 -3
pkgs/by-name/ri/ripsecrets/package.nix
··· 5 6 rustPlatform.buildRustPackage rec { 7 pname = "ripsecrets"; 8 - version = "0.1.6"; 9 10 src = fetchFromGitHub { 11 owner = "sirwart"; 12 repo = "ripsecrets"; 13 rev = "v${version}"; 14 - hash = "sha256-p3421sQko/WulSNUxXpjsHPAtRoHHg61angfxJpoyFg="; 15 }; 16 17 - cargoHash = "sha256-DJkEhqW5DZOmoNiS4nw+i2G0+KN2d7FbBuKp7fdAwMk="; 18 19 meta = with lib; { 20 description = "A command-line tool to prevent committing secret keys into your source code";
··· 5 6 rustPlatform.buildRustPackage rec { 7 pname = "ripsecrets"; 8 + version = "0.1.7"; 9 10 src = fetchFromGitHub { 11 owner = "sirwart"; 12 repo = "ripsecrets"; 13 rev = "v${version}"; 14 + hash = "sha256-NDSMxIq6eBXOv/mI662vsIIOfWQEzQ5fDGznC4+gFyE="; 15 }; 16 17 + cargoHash = "sha256-vp2gQUf6TWFkJ09STOlqlEB+jsGrVGAmix2eSgBDG/o="; 18 19 meta = with lib; { 20 description = "A command-line tool to prevent committing secret keys into your source code";
+29 -21
pkgs/development/lisp-modules/packages.nix
··· 218 }; 219 }; 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 prompter = build-asdf-system { 234 pname = "prompter"; 235 version = "0.1.0"; ··· 258 259 nasdf = build-asdf-system { 260 pname = "nasdf"; 261 - version = "20230524-git"; 262 src = pkgs.fetchFromGitHub { 263 owner = "atlas-engineer"; 264 repo = "ntemplate"; 265 - rev = "51a884f388ec526c32914093fcad6bb2434e3c14"; 266 - sha256 = "sha256-bjQPkiHAxhjsHCnWpCGMsmQlGDJFGtQEdevnhK2k+kY="; 267 }; 268 }; 269 ··· 370 371 nyxt-gtk = build-asdf-system { 372 pname = "nyxt"; 373 - version = "3.6.0"; 374 375 lispLibs = (with super; [ 376 alexandria ··· 410 spinneret 411 slynk 412 trivia 413 - trivial-clipboard 414 trivial-features 415 trivial-garbage 416 trivial-package-local-nicknames ··· 418 unix-opts 419 cluffer 420 cl-cffi-gtk 421 - cl-gobject-introspection 422 quri 423 sqlite 424 ]) ++ (with self; [ 425 history-tree 426 nhooks ··· 432 nsymbols 433 nclasses 434 nfiles 435 - cl-webkit2_3_5_9 436 swank 437 cl-containers 438 ]); ··· 440 src = pkgs.fetchFromGitHub { 441 owner = "atlas-engineer"; 442 repo = "nyxt"; 443 - rev = "3.6.0"; 444 - sha256 = "sha256-DaPEKdYf5R+RS7VQzbdLSqZvEQfxjeGEdX8rwmHRLrY="; 445 }; 446 447 nativeBuildInputs = [ pkgs.makeWrapper ];
··· 218 }; 219 }; 220 221 prompter = build-asdf-system { 222 pname = "prompter"; 223 version = "0.1.0"; ··· 246 247 nasdf = build-asdf-system { 248 pname = "nasdf"; 249 + version = "20230911-git"; 250 src = pkgs.fetchFromGitHub { 251 owner = "atlas-engineer"; 252 repo = "ntemplate"; 253 + rev = "ab7a018f3a67a999c72710644b10b4545130c139"; 254 + sha256 = "sha256-fXGh0h6CXLoBgK1jRxkSNyQVAY1gvi4iyHQBuzueR5Y="; 255 }; 256 }; 257 ··· 358 359 nyxt-gtk = build-asdf-system { 360 pname = "nyxt"; 361 + version = "3.7.0"; 362 363 lispLibs = (with super; [ 364 alexandria ··· 398 spinneret 399 slynk 400 trivia 401 trivial-features 402 trivial-garbage 403 trivial-package-local-nicknames ··· 405 unix-opts 406 cluffer 407 cl-cffi-gtk 408 quri 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 + })) 433 ]) ++ (with self; [ 434 history-tree 435 nhooks ··· 441 nsymbols 442 nclasses 443 nfiles 444 swank 445 cl-containers 446 ]); ··· 448 src = pkgs.fetchFromGitHub { 449 owner = "atlas-engineer"; 450 repo = "nyxt"; 451 + rev = "3.7.0"; 452 + sha256 = "sha256-viiyO4fX3uyGuvojQ1rYYKBldRdVNzeJX1KYlYwfWVU="; 453 }; 454 455 nativeBuildInputs = [ pkgs.makeWrapper ];
+2 -2
pkgs/development/python-modules/aiohomekit/default.nix
··· 19 20 buildPythonPackage rec { 21 pname = "aiohomekit"; 22 - version = "3.0.2"; 23 format = "pyproject"; 24 25 disabled = pythonOlder "3.9"; ··· 28 owner = "Jc2k"; 29 repo = pname; 30 rev = "refs/tags/${version}"; 31 - hash = "sha256-EE8+VoZ755wd8s3Gm0lziu+1r4rAFgdjEtqI0apoZ7E="; 32 }; 33 34 nativeBuildInputs = [
··· 19 20 buildPythonPackage rec { 21 pname = "aiohomekit"; 22 + version = "3.0.3"; 23 format = "pyproject"; 24 25 disabled = pythonOlder "3.9"; ··· 28 owner = "Jc2k"; 29 repo = pname; 30 rev = "refs/tags/${version}"; 31 + hash = "sha256-6fNsiHddnsdjei0/wqx5ifWhM3bALlYG5Gli69+FmnM="; 32 }; 33 34 nativeBuildInputs = [
+2 -2
pkgs/development/python-modules/aiovodafone/default.nix
··· 10 11 buildPythonPackage rec { 12 pname = "aiovodafone"; 13 - version = "0.1.0"; 14 format = "pyproject"; 15 16 disabled = pythonOlder "3.10"; ··· 19 owner = "chemelli74"; 20 repo = "aiovodafone"; 21 rev = "refs/tags/v${version}"; 22 - hash = "sha256-VO+lQK+0bSQqnFiLzRMnVTpTJRjv2fZhDbIoTiMFWFI="; 23 }; 24 25 postPatch = ''
··· 10 11 buildPythonPackage rec { 12 pname = "aiovodafone"; 13 + version = "0.2.0"; 14 format = "pyproject"; 15 16 disabled = pythonOlder "3.10"; ··· 19 owner = "chemelli74"; 20 repo = "aiovodafone"; 21 rev = "refs/tags/v${version}"; 22 + hash = "sha256-KIYVGPJSOWEWXuYQXmRgtXwL3kI371jvx7vbfTni2jI="; 23 }; 24 25 postPatch = ''
+85 -50
pkgs/development/python-modules/bokeh/default.nix
··· 1 - { buildPythonPackage 2 , fetchPypi 3 - , futures ? null 4 - , isPy27 5 - , isPyPy 6 , jinja2 7 - , lib 8 , mock 9 , numpy 10 , nodejs 11 , packaging 12 , pillow 13 - #, pytestCheckHook# 14 - , pytest 15 - , python-dateutil 16 , pyyaml 17 - , selenium 18 - , six 19 - , substituteAll 20 - , tornado 21 - , typing-extensions 22 - , pytz 23 - , flaky 24 - , networkx 25 , beautifulsoup4 26 - , requests 27 , nbconvert 28 - , icalendar 29 - , pandas 30 - , pythonImportsCheckHook 31 }: 32 33 buildPythonPackage rec { 34 pname = "bokeh"; 35 # update together with panel which is not straightforward 36 - version = "2.4.3"; 37 38 src = fetchPypi { 39 inherit pname version; 40 - hash = "sha256-7zOAEWGvN5Zlq3o0aE8iCYYeOu/VyAOiH7u5nZSHSwM="; 41 }; 42 43 patches = [ ··· 48 }) 49 ]; 50 51 - disabled = isPyPy || isPy27; 52 - 53 nativeBuildInputs = [ 54 - pythonImportsCheckHook 55 - ]; 56 - 57 - pythonImportsCheck = [ 58 - "bokeh" 59 ]; 60 61 nativeCheckInputs = [ 62 - mock 63 pytest 64 - pillow 65 selenium 66 - pytz 67 - flaky 68 - networkx 69 - beautifulsoup4 70 - requests 71 - nbconvert 72 - icalendar 73 - pandas 74 ]; 75 76 propagatedBuildInputs = [ 77 - pillow 78 jinja2 79 - python-dateutil 80 - six 81 pyyaml 82 tornado 83 - numpy 84 - packaging 85 - typing-extensions 86 - ] 87 - ++ lib.optionals ( isPy27 ) [ 88 - futures 89 ]; 90 91 - # This test suite is a complete pain. Somehow it can't find its fixtures. 92 - doCheck = false; 93 94 meta = { 95 description = "Statistical and novel interactive HTML plots for Python";
··· 1 + { lib 2 + , stdenv 3 + , buildPythonPackage 4 , fetchPypi 5 + , fetchFromGitHub 6 + , pythonOlder 7 + , substituteAll 8 + , colorama 9 + , contourpy 10 , jinja2 11 , mock 12 , numpy 13 , nodejs 14 , packaging 15 + , pandas 16 , pillow 17 + , tornado 18 + , pytestCheckHook 19 , pyyaml 20 + , setuptools 21 + , setuptools-git-versioning 22 + , xyzservices 23 , beautifulsoup4 24 + , channels 25 + , click 26 + , colorcet 27 + , coverage 28 + , firefox 29 + , geckodriver 30 + , isort 31 + , json5 32 , nbconvert 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 46 }: 47 48 buildPythonPackage rec { 49 pname = "bokeh"; 50 # update together with panel which is not straightforward 51 + version = "3.2.2"; 52 + format = "pyproject"; 53 + 54 + disabled = pythonOlder "3.9"; 55 56 src = fetchPypi { 57 inherit pname version; 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="; 66 }; 67 68 patches = [ ··· 73 }) 74 ]; 75 76 nativeBuildInputs = [ 77 + colorama 78 + nodejs 79 + setuptools 80 + setuptools-git-versioning 81 ]; 82 83 nativeCheckInputs = [ 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 99 pytest 100 + pytest-asyncio 101 + pytest-xdist 102 + pytest-timeout 103 + requests 104 + scipy 105 selenium 106 + toml 107 + typing-extensions 108 ]; 109 110 propagatedBuildInputs = [ 111 jinja2 112 + contourpy 113 + numpy 114 + packaging 115 + pandas 116 + pillow 117 pyyaml 118 tornado 119 + xyzservices 120 ]; 121 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 + ''; 128 129 meta = { 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 + 7 '("conda install nodejs" or follow https://nodejs.org/en/download/)') 8 9 -_nodejs = None ··· 11 +_nodejs = "@node_bin@" 12 +_npmjs = "@npm_bin@" 13 14 - def _nodejs_path(): 15 global _nodejs
··· 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 ' + 6 '("conda install nodejs" or follow https://nodejs.org/en/download/)') 7 8 -_nodejs = None ··· 10 +_nodejs = "@node_bin@" 11 +_npmjs = "@npm_bin@" 12 13 + def _nodejs_path() -> str: 14 global _nodejs
+6 -4
pkgs/development/python-modules/intake/default.nix
··· 26 27 buildPythonPackage rec { 28 pname = "intake"; 29 - version = "0.7.0"; 30 format = "setuptools"; 31 32 disabled = pythonOlder "3.7"; ··· 34 src = fetchFromGitHub { 35 owner = pname; 36 repo = pname; 37 - rev = "refs/tags/${version}"; 38 - hash = "sha256-2LUblA8eVCOfVJ6BJayralNiv6EFt6MzR5ptKksVNA4="; 39 }; 40 41 propagatedBuildInputs = [ ··· 79 --replace "'pytest-runner'" "" 80 ''; 81 82 preCheck = '' 83 export HOME=$(mktemp -d); 84 export PATH="$PATH:$out/bin"; ··· 106 "test_ndarray" 107 "test_python" 108 # Timing-based, flaky on darwin and possibly others 109 - "TestServerV1Source.test_idle_timer" 110 # arrow-cpp-13 related 111 "test_read" 112 "test_pickle"
··· 26 27 buildPythonPackage rec { 28 pname = "intake"; 29 + version = "unstable-2023-08-24"; 30 format = "setuptools"; 31 32 disabled = pythonOlder "3.7"; ··· 34 src = fetchFromGitHub { 35 owner = pname; 36 repo = pname; 37 + rev = "81b1567a2030adfb22b856b4f63cefe35de68983"; 38 + hash = "sha256-S2PoUN0Bao5VULfHhgbXXowopPLm/njAHO3dIM8ILno="; 39 }; 40 41 propagatedBuildInputs = [ ··· 79 --replace "'pytest-runner'" "" 80 ''; 81 82 + __darwinAllowLocalNetworking = true; 83 + 84 preCheck = '' 85 export HOME=$(mktemp -d); 86 export PATH="$PATH:$out/bin"; ··· 108 "test_ndarray" 109 "test_python" 110 # Timing-based, flaky on darwin and possibly others 111 + "test_idle_timer" 112 # arrow-cpp-13 related 113 "test_read" 114 "test_pickle"
+2 -5
pkgs/development/python-modules/livelossplot/default.nix
··· 13 14 buildPythonPackage rec { 15 pname = "livelossplot"; 16 - version = "0.5.4"; 17 18 disabled = pythonOlder "3.6"; 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 src = fetchFromGitHub { 24 owner = "stared"; 25 repo = pname; 26 rev = "v${version}"; 27 - sha256 = "IV6YAidoqVoKvpy+LNNHTPpobiDoGX59bHqJcBtaydk="; 28 }; 29 30 propagatedBuildInputs = [ bokeh ipython matplotlib numpy ];
··· 13 14 buildPythonPackage rec { 15 pname = "livelossplot"; 16 + version = "0.5.5"; 17 18 disabled = pythonOlder "3.6"; 19 20 src = fetchFromGitHub { 21 owner = "stared"; 22 repo = pname; 23 rev = "v${version}"; 24 + sha256 = "sha256-YU8vX4SubI6txmC/i5fOjcvWfuDFm8+SPmie8Eb1qRs="; 25 }; 26 27 propagatedBuildInputs = [ bokeh ipython matplotlib numpy ];
+2 -2
pkgs/development/python-modules/netutils/default.nix
··· 13 14 buildPythonPackage rec { 15 pname = "netutils"; 16 - version = "1.5.0"; 17 format = "pyproject"; 18 19 disabled = pythonOlder "3.8"; ··· 22 owner = "networktocode"; 23 repo = pname; 24 rev = "refs/tags/v${version}"; 25 - hash = "sha256-uUw48EBUpEUw+A8wxw3qXrnqmFWQzg/zb+8qAGRSlUw="; 26 }; 27 28 nativeBuildInputs = [
··· 13 14 buildPythonPackage rec { 15 pname = "netutils"; 16 + version = "1.6.0"; 17 format = "pyproject"; 18 19 disabled = pythonOlder "3.8"; ··· 22 owner = "networktocode"; 23 repo = pname; 24 rev = "refs/tags/v${version}"; 25 + hash = "sha256-ocajE7E4xIatEmv58/9gEpWF2plJdiZXjk6ajD2vTzw="; 26 }; 27 28 nativeBuildInputs = [
+2 -2
pkgs/development/python-modules/panel/default.nix
··· 16 17 buildPythonPackage rec { 18 pname = "panel"; 19 - version = "0.14.4"; 20 21 format = "wheel"; 22 ··· 25 # tries to fetch even more artifacts 26 src = fetchPypi { 27 inherit pname version format; 28 - hash = "sha256-3U/PL8cnbNPw3xEM56YZesQEDXTE79yMCSsjdxwfUU0="; 29 }; 30 31 nativeBuildInputs = [
··· 16 17 buildPythonPackage rec { 18 pname = "panel"; 19 + version = "1.2.2"; 20 21 format = "wheel"; 22 ··· 25 # tries to fetch even more artifacts 26 src = fetchPypi { 27 inherit pname version format; 28 + hash = "sha256-RMRjxcUp6MTs001wdNfC/e6diOcgtqrSaVIOSQfPgTs="; 29 }; 30 31 nativeBuildInputs = [
+3 -3
pkgs/development/python-modules/simplefix/default.nix
··· 2 3 buildPythonPackage rec { 4 pname = "simplefix"; 5 - version = "1.0.15"; 6 7 src = fetchFromGitHub { 8 repo = "simplefix"; 9 owner = "da4089"; 10 - rev = "v${version}"; 11 - hash = "sha256-GQHMotxNRuRv6zXhrD02T+aFgfYe3RnvUGADsBeSPbA="; 12 }; 13 14 checkPhase = ''
··· 2 3 buildPythonPackage rec { 4 pname = "simplefix"; 5 + version = "1.0.16"; 6 7 src = fetchFromGitHub { 8 repo = "simplefix"; 9 owner = "da4089"; 10 + rev = "refs/tags/v${version}"; 11 + hash = "sha256-dkwmWCOeTAoeSY8+1wg7RWX/d57JWc8bGagzrEPMAIU="; 12 }; 13 14 checkPhase = ''
+2 -2
pkgs/development/tools/database/sqlfluff/default.nix
··· 5 6 python3.pkgs.buildPythonApplication rec { 7 pname = "sqlfluff"; 8 - version = "2.3.1"; 9 format = "setuptools"; 10 11 src = fetchFromGitHub { 12 owner = pname; 13 repo = pname; 14 rev = "refs/tags/${version}"; 15 - hash = "sha256-olwvg/smXPDqKvSdpp30SEsHYWNQXU9ISbOmJH7MKLo="; 16 }; 17 18 propagatedBuildInputs = with python3.pkgs; [
··· 5 6 python3.pkgs.buildPythonApplication rec { 7 pname = "sqlfluff"; 8 + version = "2.3.2"; 9 format = "setuptools"; 10 11 src = fetchFromGitHub { 12 owner = pname; 13 repo = pname; 14 rev = "refs/tags/${version}"; 15 + hash = "sha256-buDDu5UQmO1ImWXzqwlFZHYbn2FUjAxs8KbQX+g/mvg="; 16 }; 17 18 propagatedBuildInputs = with python3.pkgs; [
+2 -2
pkgs/development/tools/language-servers/ruff-lsp/default.nix
··· 15 16 buildPythonPackage rec { 17 pname = "ruff-lsp"; 18 - version = "0.0.38"; 19 format = "pyproject"; 20 disabled = pythonOlder "3.7"; 21 ··· 23 owner = "astral-sh"; 24 repo = "ruff-lsp"; 25 rev = "v${version}"; 26 - hash = "sha256-JWobbaXmIcd+c/EikiuUva5aHm3VDdeAQK60Krl6tVE="; 27 }; 28 29 postPatch = ''
··· 15 16 buildPythonPackage rec { 17 pname = "ruff-lsp"; 18 + version = "0.0.39"; 19 format = "pyproject"; 20 disabled = pythonOlder "3.7"; 21 ··· 23 owner = "astral-sh"; 24 repo = "ruff-lsp"; 25 rev = "v${version}"; 26 + hash = "sha256-hbnSx59uSzXHeAhZPZnCzxl+mCZIdr29uUPfQCsm/Ww="; 27 }; 28 29 postPatch = ''
+12
pkgs/os-specific/linux/nvidia-x11/default.nix
··· 75 url = "https://developer.nvidia.com/downloads/vulkan-beta-${lib.concatStrings (lib.splitString "." version)}-linux"; 76 }; 77 78 # Update note: 79 # If you add a legacy driver here, also update `top-level/linux-kernels.nix`, 80 # adding to the `nvidia_x11_legacy*` entries.
··· 75 url = "https://developer.nvidia.com/downloads/vulkan-beta-${lib.concatStrings (lib.splitString "." version)}-linux"; 76 }; 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 + 90 # Update note: 91 # If you add a legacy driver here, also update `top-level/linux-kernels.nix`, 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 , sha256_64bit 5 , sha256_aarch64 ? null 6 , openSha256 ? null 7 - , settingsSha256 8 , settingsVersion ? version 9 - , persistencedSha256 10 , persistencedVersion ? version 11 , useGLVND ? true 12 , useProfiles ? true 13 , preferGtk2 ? false 14 , settings32Bit ? false 15 , ibtSupport ? false 16 17 , prePatch ? "" ··· 33 disable32Bit ? stdenv.hostPlatform.system == "aarch64-linux" 34 # 32 bit libs only version of this package 35 , lib32 ? null 36 - # Whether to extract the GSP firmware 37 - , firmware ? openSha256 != null 38 }: 39 40 with lib; 41 42 assert !libsOnly -> kernel != null; 43 assert versionOlder version "391" -> sha256_32bit != null; 44 45 let 46 nameSuffix = optionalString (!libsOnly) "-${kernel.version}"; ··· 54 dbus # for nvidia-powerd 55 ]); 56 57 self = stdenv.mkDerivation { 58 - name = "nvidia-x11-${version}${nameSuffix}"; 59 60 builder = ./builder.sh; 61 62 src = 63 if stdenv.hostPlatform.system == "x86_64-linux" then 64 fetchurl { 65 urls = if args ? url then [ args.url ] else [ ··· 127 nvidia_x11 = self; 128 broken = brokenOpen; 129 }) 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; 135 inherit persistencedVersion settingsVersion; 136 compressFirmware = false; 137 ibtSupport = ibtSupport || (lib.versionAtLeast version "530"); ··· 141 142 meta = with lib; { 143 homepage = "https://www.nvidia.com/object/unix.html"; 144 - description = "X.org driver and kernel module for NVIDIA graphics cards"; 145 license = licenses.unfreeRedistributable; 146 platforms = [ "x86_64-linux" ] 147 ++ optionals (sha256_32bit != null) [ "i686-linux" ] 148 ++ optionals (sha256_aarch64 != null) [ "aarch64-linux" ]; 149 - maintainers = with maintainers; [ jonringer kiskae ]; 150 priority = 4; # resolves collision with xorg-server's "lib/xorg/modules/extensions/libglx.so" 151 inherit broken; 152 };
··· 4 , sha256_64bit 5 , sha256_aarch64 ? null 6 , openSha256 ? null 7 + , settingsSha256 ? null 8 , settingsVersion ? version 9 + , persistencedSha256 ? null 10 , persistencedVersion ? version 11 + , fabricmanagerSha256 ? null 12 + , fabricmanagerVersion ? version 13 , useGLVND ? true 14 , useProfiles ? true 15 , preferGtk2 ? false 16 , settings32Bit ? false 17 + , useSettings ? true 18 + , usePersistenced ? true 19 + , useFabricmanager ? false 20 , ibtSupport ? false 21 22 , prePatch ? "" ··· 38 disable32Bit ? stdenv.hostPlatform.system == "aarch64-linux" 39 # 32 bit libs only version of this package 40 , lib32 ? 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 46 }: 47 48 with lib; 49 50 assert !libsOnly -> kernel != null; 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); 56 57 let 58 nameSuffix = optionalString (!libsOnly) "-${kernel.version}"; ··· 66 dbus # for nvidia-powerd 67 ]); 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 + 89 self = stdenv.mkDerivation { 90 + name = "nvidia-${if useFabricmanager then "dc" else "x11"}-${version}${nameSuffix}"; 91 92 builder = ./builder.sh; 93 94 src = 95 + if !acceptLicense && (openSha256 == null) then throwLicense else 96 if stdenv.hostPlatform.system == "x86_64-linux" then 97 fetchurl { 98 urls = if args ? url then [ args.url ] else [ ··· 160 nvidia_x11 = self; 161 broken = brokenOpen; 162 }) openSha256; 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 {}; 174 inherit persistencedVersion settingsVersion; 175 compressFirmware = false; 176 ibtSupport = ibtSupport || (lib.versionAtLeast version "530"); ··· 180 181 meta = with lib; { 182 homepage = "https://www.nvidia.com/object/unix.html"; 183 + description = "${if useFabricmanager then "Data Center" else "X.org"} driver and kernel module for NVIDIA cards"; 184 license = licenses.unfreeRedistributable; 185 platforms = [ "x86_64-linux" ] 186 ++ optionals (sha256_32bit != null) [ "i686-linux" ] 187 ++ optionals (sha256_aarch64 != null) [ "aarch64-linux" ]; 188 + maintainers = with maintainers; [ jonringer kiskae edwtjo ]; 189 priority = 4; # resolves collision with xorg-server's "lib/xorg/modules/extensions/libglx.so" 190 inherit broken; 191 };
+4 -3
pkgs/servers/sql/postgresql/ext/postgis.nix
··· 16 }: 17 stdenv.mkDerivation rec { 18 pname = "postgis"; 19 - version = "3.3.3"; 20 21 outputs = [ "out" "doc" ]; 22 23 src = fetchurl { 24 url = "https://download.osgeo.org/postgis/source/postgis-${version}.tar.gz"; 25 - sha256 = "sha256-dOs1bj+F8UIzeRATNgiBtnSPeAgcxoj/nW8PZzp2LRM="; 26 }; 27 28 buildInputs = [ libxml2 postgresql geos proj gdal json_c protobufc pcre2.dev ] ··· 35 36 preConfigure = '' 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}" 39 40 makeFlags="PERL=${perl}/bin/perl datadir=$out/share/postgresql pkglibdir=$out/lib bindir=$out/bin docdir=$doc/share/doc/${pname}" 41 ''; ··· 76 license = licenses.gpl2; 77 maintainers = [ maintainers.marcweber ]; 78 inherit (postgresql.meta) platforms; 79 }; 80 }
··· 16 }: 17 stdenv.mkDerivation rec { 18 pname = "postgis"; 19 + version = "3.4.0"; 20 21 outputs = [ "out" "doc" ]; 22 23 src = fetchurl { 24 url = "https://download.osgeo.org/postgis/source/postgis-${version}.tar.gz"; 25 + sha256 = "sha256-rum2CmyITTVBZLMJbEZX8yRFQYZgf4WdHOBdiZeYr50="; 26 }; 27 28 buildInputs = [ libxml2 postgresql geos proj gdal json_c protobufc pcre2.dev ] ··· 35 36 preConfigure = '' 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} --disable-extension-upgrades-install" 39 40 makeFlags="PERL=${perl}/bin/perl datadir=$out/share/postgresql pkglibdir=$out/lib bindir=$out/bin docdir=$doc/share/doc/${pname}" 41 ''; ··· 76 license = licenses.gpl2; 77 maintainers = [ maintainers.marcweber ]; 78 inherit (postgresql.meta) platforms; 79 + broken = versionOlder postgresql.version "12"; 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 { stdenv, lib, python3, fetchPypi, fetchFromGitHub, installShellFiles }: 2 3 let 4 - version = "2.51.0"; 5 6 src = fetchFromGitHub { 7 name = "azure-cli-${version}-src"; 8 owner = "Azure"; 9 repo = "azure-cli"; 10 rev = "azure-cli-${version}"; 11 - hash = "sha512-KjkR1YKvL5stfmIbrfzj9Ons4iYyiKQdLiRh7I7Dd43lvJwXaYLNjIYL5SOX3F3D9nmNxCb0qmYAQH0iEmyVjw=="; 12 }; 13 14 # put packages that needs to be overridden in the py package scope
··· 1 { stdenv, lib, python3, fetchPypi, fetchFromGitHub, installShellFiles }: 2 3 let 4 + version = "2.52.0"; 5 6 src = fetchFromGitHub { 7 name = "azure-cli-${version}-src"; 8 owner = "Azure"; 9 repo = "azure-cli"; 10 rev = "azure-cli-${version}"; 11 + hash = "sha256-wa0LmBMv3eQIsWEKMAHks+TvBZmTdFepPGG5XQRvZXk="; 12 }; 13 14 # put packages that needs to be overridden in the py package scope
+2 -2
pkgs/tools/admin/azure-cli/python-packages.nix
··· 289 azure-mgmt-containerregistry = overrideAzureMgmtPackage super.azure-mgmt-containerregistry "10.1.0" "zip" 290 "sha256-VrX9YfYNvlA8+eNqHCp35BAeQZzQKakZs7ZZKwT8oYc="; 291 292 - azure-mgmt-monitor = (overrideAzureMgmtPackage super.azure-mgmt-monitor "5.0.0" "zip" 293 - "sha256-eL9KJowxTF7hZJQQQCNJZ7l+rKPFM8wP5vEigt3ZFGE=").overridePythonAttrs (attrs: { 294 propagatedBuildInputs = attrs.propagatedBuildInputs or [ ] ++ [ self.msrest ]; 295 }); 296
··· 289 azure-mgmt-containerregistry = overrideAzureMgmtPackage super.azure-mgmt-containerregistry "10.1.0" "zip" 290 "sha256-VrX9YfYNvlA8+eNqHCp35BAeQZzQKakZs7ZZKwT8oYc="; 291 292 + azure-mgmt-monitor = (overrideAzureMgmtPackage super.azure-mgmt-monitor "6.0.2" "tar.gz" 293 + "sha256-X/v1AOSZq3kSsbptJs7yZIDZrkEVMgGbt41yViGW4Hs=").overridePythonAttrs (attrs: { 294 propagatedBuildInputs = attrs.propagatedBuildInputs or [ ] ++ [ self.msrest ]; 295 }); 296
+3 -3
pkgs/tools/networking/sing-box/default.nix
··· 11 12 buildGoModule rec { 13 pname = "sing-box"; 14 - version = "1.4.1"; 15 16 src = fetchFromGitHub { 17 owner = "SagerNet"; 18 repo = pname; 19 rev = "v${version}"; 20 - hash = "sha256-AB+JNac9553Viw/XVqLFAQnEOwweCz3ltyUbB1gYMmM="; 21 }; 22 23 - vendorHash = "sha256-Je5852dIKjlTAym00V2gNz89Hrl8QygEfkybZlLVktY="; 24 25 tags = [ 26 "with_quic"
··· 11 12 buildGoModule rec { 13 pname = "sing-box"; 14 + version = "1.4.2"; 15 16 src = fetchFromGitHub { 17 owner = "SagerNet"; 18 repo = pname; 19 rev = "v${version}"; 20 + hash = "sha256-OBLgAuZIqR+81rN886gIai8+uUxHDbOWnGz6jYZnGm8="; 21 }; 22 23 + vendorHash = "sha256-oDUjiMAG/vkSYS1c8lwqVlFzyvTIQrUSeJohHS9X9I0="; 24 25 tags = [ 26 "with_quic"
+2
pkgs/top-level/all-packages.nix
··· 33854 33855 melody = callPackage ../tools/misc/melody { }; 33856 33857 meme-image-generator = callPackage ../applications/graphics/meme-image-generator { }; 33858 33859 meme-suite = callPackage ../applications/science/biology/meme-suite { };
··· 33854 33855 melody = callPackage ../tools/misc/melody { }; 33856 33857 + meme-bingo-web = callPackage ../servers/web-apps/meme-bingo-web { }; 33858 + 33859 meme-image-generator = callPackage ../applications/graphics/meme-image-generator { }; 33860 33861 meme-suite = callPackage ../applications/science/biology/meme-suite { };
+2
pkgs/top-level/linux-kernels.nix
··· 410 nvidia_x11_legacy470 = nvidiaPackages.legacy_470; 411 nvidia_x11_production = nvidiaPackages.production; 412 nvidia_x11_vulkan_beta = nvidiaPackages.vulkan_beta; 413 414 # this is not a replacement for nvidia_x11* 415 # only the opensource kernel driver exposed for hydra to build
··· 410 nvidia_x11_legacy470 = nvidiaPackages.legacy_470; 411 nvidia_x11_production = nvidiaPackages.production; 412 nvidia_x11_vulkan_beta = nvidiaPackages.vulkan_beta; 413 + nvidia_dc = nvidiaPackages.dc; 414 + nvidia_dc_520 = nvidiaPackages.dc_520; 415 416 # this is not a replacement for nvidia_x11* 417 # only the opensource kernel driver exposed for hydra to build