summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/systems/examples.nix6
-rw-r--r--nixos/modules/hardware/video/nvidia.nix80
-rw-r--r--nixos/modules/security/acme.xml10
-rw-r--r--nixos/modules/services/development/hoogle.nix1
-rw-r--r--nixos/modules/services/networking/hostapd.nix1
-rw-r--r--nixos/modules/services/web-servers/caddy.nix20
-rw-r--r--nixos/modules/system/boot/loader/raspberrypi/raspberrypi-builder.nix5
-rw-r--r--nixos/modules/system/boot/stage-1-init.sh24
-rw-r--r--nixos/modules/system/boot/stage-1.nix19
-rw-r--r--nixos/modules/virtualisation/oci-containers.nix39
-rw-r--r--pkgs/applications/editors/emacs-modes/updater-emacs.nix2
-rw-r--r--pkgs/applications/networking/browsers/qutebrowser/default.nix13
-rw-r--r--pkgs/data/documentation/scheme-manpages/default.nix6
-rw-r--r--pkgs/development/libraries/ayatana-ido/default.nix4
-rw-r--r--pkgs/development/python-modules/aiocoap/default.nix31
-rw-r--r--pkgs/development/python-modules/boto3/default.nix4
-rw-r--r--pkgs/development/python-modules/botocore/default.nix4
-rw-r--r--pkgs/development/python-modules/plugwise/default.nix66
-rw-r--r--pkgs/development/python-modules/regenmaschine/default.nix51
-rw-r--r--pkgs/development/tools/continuous-integration/jenkins/default.nix8
-rw-r--r--pkgs/development/tools/rust/cargo-c/default.nix8
-rw-r--r--pkgs/misc/emulators/mednaffe/default.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-testing.nix4
-rw-r--r--pkgs/os-specific/linux/rdma-core/default.nix6
-rw-r--r--pkgs/servers/home-assistant/component-packages.nix4
-rw-r--r--pkgs/servers/sql/postgresql/ext/postgis.nix4
-rw-r--r--pkgs/tools/admin/awscli/default.nix4
-rw-r--r--pkgs/tools/networking/acme-client/default.nix4
-rw-r--r--pkgs/tools/system/bpytop/default.nix4
-rw-r--r--pkgs/tools/system/inxi/default.nix4
-rw-r--r--pkgs/top-level/python-packages.nix6
31 files changed, 358 insertions, 88 deletions
diff --git a/lib/systems/examples.nix b/lib/systems/examples.nix
index e8cf15479c05..be87fb1d0694 100644
--- a/lib/systems/examples.nix
+++ b/lib/systems/examples.nix
@@ -131,6 +131,12 @@ rec {
armhf-embedded = {
config = "arm-none-eabihf";
libc = "newlib";
+ # GCC8+ does not build without this
+ # (https://www.mail-archive.com/gcc-bugs@gcc.gnu.org/msg552339.html):
+ gcc = {
+ arch = "armv5t";
+ fpu = "vfp";
+ };
};
aarch64-embedded = {
diff --git a/nixos/modules/hardware/video/nvidia.nix b/nixos/modules/hardware/video/nvidia.nix
index d1cf7d05c1b8..72eb9fcfaa60 100644
--- a/nixos/modules/hardware/video/nvidia.nix
+++ b/nixos/modules/hardware/video/nvidia.nix
@@ -63,6 +63,15 @@ in
'';
};
+ hardware.nvidia.powerManagement.finegrained = mkOption {
+ type = types.bool;
+ default = false;
+ description = ''
+ Experimental power management of PRIME offload. For more information, see
+ the NVIDIA docs, chapter 22. PCI-Express runtime power management.
+ '';
+ };
+
hardware.nvidia.modesetting.enable = mkOption {
type = types.bool;
default = false;
@@ -96,6 +105,16 @@ in
'';
};
+ hardware.nvidia.prime.amdgpuBusId = mkOption {
+ type = types.str;
+ default = "";
+ example = "PCI:4:0:0";
+ description = ''
+ Bus ID of the AMD APU. You can find it using lspci; for example if lspci
+ shows the AMD APU at "04:00.0", set this option to "PCI:4:0:0".
+ '';
+ };
+
hardware.nvidia.prime.sync.enable = mkOption {
type = types.bool;
default = false;
@@ -153,7 +172,10 @@ in
};
};
- config = mkIf enabled {
+ config = let
+ igpuDriver = if pCfg.intelBusId != "" then "modesetting" else "amdgpu";
+ igpuBusId = if pCfg.intelBusId != "" then pCfg.intelBusId else pCfg.amdgpuBusId;
+ in mkIf enabled {
assertions = [
{
assertion = with config.services.xserver.displayManager; gdm.nvidiaWayland -> cfg.modesetting.enable;
@@ -161,7 +183,13 @@ in
}
{
- assertion = primeEnabled -> pCfg.nvidiaBusId != "" && pCfg.intelBusId != "";
+ assertion = primeEnabled -> pCfg.intelBusId == "" || pCfg.amdgpuBusId == "";
+ message = ''
+ You cannot configure both an Intel iGPU and an AMD APU. Pick the one corresponding to your processor.
+ '';
+ }
+ {
+ assertion = primeEnabled -> pCfg.nvidiaBusId != "" && (pCfg.intelBusId != "" || pCfg.amdgpuBusId != "");
message = ''
When NVIDIA PRIME is enabled, the GPU bus IDs must configured.
'';
@@ -174,6 +202,14 @@ in
assertion = !(syncCfg.enable && offloadCfg.enable);
message = "Only one NVIDIA PRIME solution may be used at a time.";
}
+ {
+ assertion = !(syncCfg.enable && cfg.powerManagement.finegrained);
+ message = "Sync precludes powering down the NVIDIA GPU.";
+ }
+ {
+ assertion = cfg.powerManagement.enable -> offloadCfg.enable;
+ message = "Fine-grained power management requires offload to be enabled.";
+ }
];
# If Optimus/PRIME is enabled, we:
@@ -183,18 +219,22 @@ in
# "nvidia" driver, in order to allow the X server to start without any outputs.
# - Add a separate Device section for the Intel GPU, using the "modesetting"
# driver and with the configured BusID.
+ # - OR add a separate Device section for the AMD APU, using the "amdgpu"
+ # driver and with the configures BusID.
# - Reference that Device section from the ServerLayout section as an inactive
# device.
# - Configure the display manager to run specific `xrandr` commands which will
- # configure/enable displays connected to the Intel GPU.
+ # configure/enable displays connected to the Intel iGPU / AMD APU.
services.xserver.useGlamor = mkDefault offloadCfg.enable;
- services.xserver.drivers = optional primeEnabled {
- name = "modesetting";
+ services.xserver.drivers = let
+ in optional primeEnabled {
+ name = igpuDriver;
display = offloadCfg.enable;
+ modules = optional (igpuDriver == "amdgpu") [ pkgs.xorg.xf86videoamdgpu ];
deviceSection = ''
- BusID "${pCfg.intelBusId}"
+ BusID "${igpuBusId}"
${optionalString syncCfg.enable ''Option "AccelMethod" "none"''}
'';
} ++ singleton {
@@ -205,6 +245,7 @@ in
''
BusID "${pCfg.nvidiaBusId}"
${optionalString syncCfg.allowExternalGpu "Option \"AllowExternalGpus\""}
+ ${optionalString cfg.powerManagement.finegrained "Option \"NVreg_DynamicPowerManagement=0x02\""}
'';
screenSection =
''
@@ -214,14 +255,14 @@ in
};
services.xserver.serverLayoutSection = optionalString syncCfg.enable ''
- Inactive "Device-modesetting[0]"
+ Inactive "Device-${igpuDriver}[0]"
'' + optionalString offloadCfg.enable ''
Option "AllowNVIDIAGPUScreens"
'';
services.xserver.displayManager.setupCommands = optionalString syncCfg.enable ''
# Added by nvidia configuration module for Optimus/PRIME.
- ${pkgs.xorg.xrandr}/bin/xrandr --setprovideroutputsource modesetting NVIDIA-0
+ ${pkgs.xorg.xrandr}/bin/xrandr --setprovideroutputsource ${igpuDriver} NVIDIA-0
${pkgs.xorg.xrandr}/bin/xrandr --auto
'';
@@ -292,16 +333,37 @@ in
boot.kernelParams = optional (offloadCfg.enable || cfg.modesetting.enable) "nvidia-drm.modeset=1"
++ optional cfg.powerManagement.enable "nvidia.NVreg_PreserveVideoMemoryAllocations=1";
- # Create /dev/nvidia-uvm when the nvidia-uvm module is loaded.
services.udev.extraRules =
''
+ # Create /dev/nvidia-uvm when the nvidia-uvm module is loaded.
KERNEL=="nvidia", RUN+="${pkgs.runtimeShell} -c 'mknod -m 666 /dev/nvidiactl c $$(grep nvidia-frontend /proc/devices | cut -d \ -f 1) 255'"
KERNEL=="nvidia_modeset", RUN+="${pkgs.runtimeShell} -c 'mknod -m 666 /dev/nvidia-modeset c $$(grep nvidia-frontend /proc/devices | cut -d \ -f 1) 254'"
KERNEL=="card*", SUBSYSTEM=="drm", DRIVERS=="nvidia", RUN+="${pkgs.runtimeShell} -c 'mknod -m 666 /dev/nvidia%n c $$(grep nvidia-frontend /proc/devices | cut -d \ -f 1) %n'"
KERNEL=="nvidia_uvm", RUN+="${pkgs.runtimeShell} -c 'mknod -m 666 /dev/nvidia-uvm c $$(grep nvidia-uvm /proc/devices | cut -d \ -f 1) 0'"
KERNEL=="nvidia_uvm", RUN+="${pkgs.runtimeShell} -c 'mknod -m 666 /dev/nvidia-uvm-tools c $$(grep nvidia-uvm /proc/devices | cut -d \ -f 1) 0'"
+ '' + optionalString cfg.powerManagement.finegrained ''
+ # Remove NVIDIA USB xHCI Host Controller devices, if present
+ ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x0c0330", ATTR{remove}="1"
+
+ # Remove NVIDIA USB Type-C UCSI devices, if present
+ ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x0c8000", ATTR{remove}="1"
+
+ # Remove NVIDIA Audio devices, if present
+ ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x040300", ATTR{remove}="1"
+
+ # Enable runtime PM for NVIDIA VGA/3D controller devices on driver bind
+ ACTION=="bind", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030000", TEST=="power/control", ATTR{power/control}="auto"
+ ACTION=="bind", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030200", TEST=="power/control", ATTR{power/control}="auto"
+
+ # Disable runtime PM for NVIDIA VGA/3D controller devices on driver unbind
+ ACTION=="unbind", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030000", TEST=="power/control", ATTR{power/control}="on"
+ ACTION=="unbind", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030200", TEST=="power/control", ATTR{power/control}="on"
'';
+ boot.extraModprobeConfig = mkIf cfg.powerManagement.finegrained ''
+ options nvidia "NVreg_DynamicPowerManagement=0x02"
+ '';
+
boot.blacklistedKernelModules = [ "nouveau" "nvidiafb" ];
services.acpid.enable = true;
diff --git a/nixos/modules/security/acme.xml b/nixos/modules/security/acme.xml
index b34cbdafb2d3..a78ff05f2eaa 100644
--- a/nixos/modules/security/acme.xml
+++ b/nixos/modules/security/acme.xml
@@ -115,15 +115,18 @@ services.nginx = {
<programlisting>
<xref linkend="opt-security.acme.acceptTerms" /> = true;
<xref linkend="opt-security.acme.email" /> = "admin+acme@example.com";
+
+# /var/lib/acme/.challenges must be writable by the ACME user
+# and readable by the Nginx user. The easiest way to achieve
+# this is to add the Nginx user to the ACME group.
+<link linkend="opt-users.users._name_.extraGroups">users.users.nginx.extraGroups</link> = [ "acme" ];
+
services.nginx = {
<link linkend="opt-services.nginx.enable">enable</link> = true;
<link linkend="opt-services.nginx.virtualHosts">virtualHosts</link> = {
"acmechallenge.example.com" = {
# Catchall vhost, will redirect users to HTTPS for all vhosts
<link linkend="opt-services.nginx.virtualHosts._name_.serverAliases">serverAliases</link> = [ "*.example.com" ];
- # /var/lib/acme/.challenges must be writable by the ACME user
- # and readable by the Nginx user.
- # By default, this is the case.
locations."/.well-known/acme-challenge" = {
<link linkend="opt-services.nginx.virtualHosts._name_.locations._name_.root">root</link> = "/var/lib/acme/.challenges";
};
@@ -134,6 +137,7 @@ services.nginx = {
};
}
# Alternative config for Apache
+<link linkend="opt-users.users._name_.extraGroups">users.users.wwwrun.extraGroups</link> = [ "acme" ];
services.httpd = {
<link linkend="opt-services.httpd.enable">enable = true;</link>
<link linkend="opt-services.httpd.virtualHosts">virtualHosts</link> = {
diff --git a/nixos/modules/services/development/hoogle.nix b/nixos/modules/services/development/hoogle.nix
index 6d6c88b9b2aa..bd55483f46d8 100644
--- a/nixos/modules/services/development/hoogle.nix
+++ b/nixos/modules/services/development/hoogle.nix
@@ -41,6 +41,7 @@ in {
haskellPackages = mkOption {
description = "Which haskell package set to use.";
default = pkgs.haskellPackages;
+ type = types.package;
defaultText = "pkgs.haskellPackages";
};
diff --git a/nixos/modules/services/networking/hostapd.nix b/nixos/modules/services/networking/hostapd.nix
index e9569b2ba6b9..f719ff59cc7f 100644
--- a/nixos/modules/services/networking/hostapd.nix
+++ b/nixos/modules/services/networking/hostapd.nix
@@ -68,6 +68,7 @@ in
interface = mkOption {
default = "";
example = "wlp2s0";
+ type = types.str;
description = ''
The interfaces <command>hostapd</command> will use.
'';
diff --git a/nixos/modules/services/web-servers/caddy.nix b/nixos/modules/services/web-servers/caddy.nix
index 297b73273392..6ecfc113ca26 100644
--- a/nixos/modules/services/web-servers/caddy.nix
+++ b/nixos/modules/services/web-servers/caddy.nix
@@ -20,8 +20,24 @@ let
--config ${configFile} --adapter ${cfg.adapter} > $out
'';
tlsJSON = pkgs.writeText "tls.json" (builtins.toJSON tlsConfig);
- configJSON = pkgs.runCommand "caddy-config.json" { } ''
- ${pkgs.jq}/bin/jq -s '.[0] * .[1]' ${adaptedConfig} ${tlsJSON} > $out
+
+ # merge the TLS config options we expose with the ones originating in the Caddyfile
+ configJSON =
+ let tlsConfigMerge = ''
+ {"apps":
+ {"tls":
+ {"automation":
+ {"policies":
+ (if .[0].apps.tls.automation.policies == .[1]?.apps.tls.automation.policies
+ then .[0].apps.tls.automation.policies
+ else (.[0].apps.tls.automation.policies + .[1]?.apps.tls.automation.policies)
+ end)
+ }
+ }
+ }
+ }'';
+ in pkgs.runCommand "caddy-config.json" { } ''
+ ${pkgs.jq}/bin/jq -s '.[0] * ${tlsConfigMerge}' ${adaptedConfig} ${tlsJSON} > $out
'';
in {
imports = [
diff --git a/nixos/modules/system/boot/loader/raspberrypi/raspberrypi-builder.nix b/nixos/modules/system/boot/loader/raspberrypi/raspberrypi-builder.nix
index 7eb52e3d021f..64e106036abd 100644
--- a/nixos/modules/system/boot/loader/raspberrypi/raspberrypi-builder.nix
+++ b/nixos/modules/system/boot/loader/raspberrypi/raspberrypi-builder.nix
@@ -1,10 +1,9 @@
-{ pkgs, configTxt }:
+{ pkgs, configTxt, firmware ? pkgs.raspberrypifw }:
pkgs.substituteAll {
src = ./raspberrypi-builder.sh;
isExecutable = true;
inherit (pkgs) bash;
path = [pkgs.coreutils pkgs.gnused pkgs.gnugrep];
- firmware = pkgs.raspberrypifw;
- inherit configTxt;
+ inherit firmware configTxt;
}
diff --git a/nixos/modules/system/boot/stage-1-init.sh b/nixos/modules/system/boot/stage-1-init.sh
index abc1a0af48a6..5b39f34200cd 100644
--- a/nixos/modules/system/boot/stage-1-init.sh
+++ b/nixos/modules/system/boot/stage-1-init.sh
@@ -2,6 +2,13 @@
targetRoot=/mnt-root
console=tty1
+verbose="@verbose@"
+
+info() {
+ if [[ -n "$verbose" ]]; then
+ echo "$@"
+ fi
+}
extraUtils="@extraUtils@"
export LD_LIBRARY_PATH=@extraUtils@/lib
@@ -55,7 +62,7 @@ EOF
echo "Rebooting..."
reboot -f
else
- echo "Continuing..."
+ info "Continuing..."
fi
}
@@ -63,9 +70,9 @@ trap 'fail' 0
# Print a greeting.
-echo
-echo "<<< NixOS Stage 1 >>>"
-echo
+info
+info "<<< NixOS Stage 1 >>>"
+info
# Make several required directories.
mkdir -p /etc/udev
@@ -210,14 +217,14 @@ ln -s @modulesClosure@/lib/modules /lib/modules
ln -s @modulesClosure@/lib/firmware /lib/firmware
echo @extraUtils@/bin/modprobe > /proc/sys/kernel/modprobe
for i in @kernelModules@; do
- echo "loading module $(basename $i)..."
+ info "loading module $(basename $i)..."
modprobe $i
done
# Create device nodes in /dev.
@preDeviceCommands@
-echo "running udev..."
+info "running udev..."
ln -sfn /proc/self/fd /dev/fd
ln -sfn /proc/self/fd/0 /dev/stdin
ln -sfn /proc/self/fd/1 /dev/stdout
@@ -235,8 +242,7 @@ udevadm settle
# XXX: Use case usb->lvm will still fail, usb->luks->lvm is covered
@preLVMCommands@
-
-echo "starting device mapper and LVM..."
+info "starting device mapper and LVM..."
lvm vgchange -ay
if test -n "$debug1devices"; then fail; fi
@@ -379,7 +385,7 @@ mountFS() {
done
fi
- echo "mounting $device on $mountPoint..."
+ info "mounting $device on $mountPoint..."
mkdir -p "/mnt-root$mountPoint"
diff --git a/nixos/modules/system/boot/stage-1.nix b/nixos/modules/system/boot/stage-1.nix
index cb9735ae04f7..44287f3cf09b 100644
--- a/nixos/modules/system/boot/stage-1.nix
+++ b/nixos/modules/system/boot/stage-1.nix
@@ -280,7 +280,7 @@ let
inherit (config.system.build) earlyMountScript;
- inherit (config.boot.initrd) checkJournalingFS
+ inherit (config.boot.initrd) checkJournalingFS verbose
preLVMCommands preDeviceCommands postDeviceCommands postMountCommands preFailCommands kernelModules;
resumeDevices = map (sd: if sd ? device then sd.device else "/dev/disk/by-label/${sd.label}")
@@ -565,6 +565,23 @@ in
description = "Names of supported filesystem types in the initial ramdisk.";
};
+ boot.initrd.verbose = mkOption {
+ default = true;
+ type = types.bool;
+ description =
+ ''
+ Verbosity of the initrd. Please note that disabling verbosity removes
+ only the mandatory messages generated by the NixOS scripts. For a
+ completely silent boot, you might also want to set the two following
+ configuration options:
+
+ <itemizedlist>
+ <listitem><para><literal>boot.consoleLogLevel = 0;</literal></para></listitem>
+ <listitem><para><literal>boot.kernelParams = [ "quiet" "udev.log_priority=3" ];</literal></para></listitem>
+ </itemizedlist>
+ '';
+ };
+
boot.loader.supportsInitrdSecrets = mkOption
{ internal = true;
default = false;
diff --git a/nixos/modules/virtualisation/oci-containers.nix b/nixos/modules/virtualisation/oci-containers.nix
index ee9fe62187d3..2dd15e3aba45 100644
--- a/nixos/modules/virtualisation/oci-containers.nix
+++ b/nixos/modules/virtualisation/oci-containers.nix
@@ -217,7 +217,7 @@ let
environment = proxy_env;
path =
- if cfg.backend == "docker" then [ pkgs.docker ]
+ if cfg.backend == "docker" then [ config.virtualisation.docker.package ]
else if cfg.backend == "podman" then [ config.virtualisation.podman.package ]
else throw "Unhandled backend: ${cfg.backend}";
@@ -227,29 +227,30 @@ let
${cfg.backend} load -i ${container.imageFile}
''}
'';
+
+ script = concatStringsSep " \\\n " ([
+ "exec ${cfg.backend} run"
+ "--rm"
+ "--name=${escapeShellArg name}"
+ "--log-driver=${container.log-driver}"
+ ] ++ optional (container.entrypoint != null)
+ "--entrypoint=${escapeShellArg container.entrypoint}"
+ ++ (mapAttrsToList (k: v: "-e ${escapeShellArg k}=${escapeShellArg v}") container.environment)
+ ++ map (p: "-p ${escapeShellArg p}") container.ports
+ ++ optional (container.user != null) "-u ${escapeShellArg container.user}"
+ ++ map (v: "-v ${escapeShellArg v}") container.volumes
+ ++ optional (container.workdir != null) "-w ${escapeShellArg container.workdir}"
+ ++ map escapeShellArg container.extraOptions
+ ++ [container.image]
+ ++ map escapeShellArg container.cmd
+ );
+
+ preStop = "[ $SERVICE_RESULT = success ] || ${cfg.backend} stop ${name}";
postStop = "${cfg.backend} rm -f ${name} || true";
serviceConfig = {
StandardOutput = "null";
StandardError = "null";
- ExecStart = concatStringsSep " \\\n " ([
- "${config.system.path}/bin/${cfg.backend} run"
- "--rm"
- "--name=${name}"
- "--log-driver=${container.log-driver}"
- ] ++ optional (container.entrypoint != null)
- "--entrypoint=${escapeShellArg container.entrypoint}"
- ++ (mapAttrsToList (k: v: "-e ${escapeShellArg k}=${escapeShellArg v}") container.environment)
- ++ map (p: "-p ${escapeShellArg p}") container.ports
- ++ optional (container.user != null) "-u ${escapeShellArg container.user}"
- ++ map (v: "-v ${escapeShellArg v}") container.volumes
- ++ optional (container.workdir != null) "-w ${escapeShellArg container.workdir}"
- ++ map escapeShellArg container.extraOptions
- ++ [container.image]
- ++ map escapeShellArg container.cmd
- );
-
- ExecStop = ''${pkgs.bash}/bin/sh -c "[ $SERVICE_RESULT = success ] || ${cfg.backend} stop ${name}"'';
### There is no generalized way of supporting `reload` for docker
### containers. Some containers may respond well to SIGHUP sent to their
diff --git a/pkgs/applications/editors/emacs-modes/updater-emacs.nix b/pkgs/applications/editors/emacs-modes/updater-emacs.nix
index bd965c8f1285..4c321065445c 100644
--- a/pkgs/applications/editors/emacs-modes/updater-emacs.nix
+++ b/pkgs/applications/editors/emacs-modes/updater-emacs.nix
@@ -1,7 +1,7 @@
let
pkgs = import ../../../.. {};
- emacsEnv = pkgs.emacs.withPackages (epkgs: let
+ emacsEnv = pkgs.emacs.pkgs.withPackages (epkgs: let
promise = epkgs.trivialBuild {
pname = "promise";
diff --git a/pkgs/applications/networking/browsers/qutebrowser/default.nix b/pkgs/applications/networking/browsers/qutebrowser/default.nix
index 35130ab3393f..36883faab147 100644
--- a/pkgs/applications/networking/browsers/qutebrowser/default.nix
+++ b/pkgs/applications/networking/browsers/qutebrowser/default.nix
@@ -31,12 +31,12 @@ let
in mkDerivationWith python3Packages.buildPythonApplication rec {
pname = "qutebrowser";
- version = "1.14.1";
+ version = "2.0.1";
# the release tarballs are different from the git checkout!
src = fetchurl {
url = "https://github.com/qutebrowser/qutebrowser/releases/download/v${version}/${pname}-${version}.tar.gz";
- sha256 = "15l7jphy1qjsh6y6kd5mgkxsl6ymm9564g1yypa946jbyrgi8k2m";
+ sha256 = "0hmj19bp5dihzpphxz77377yfmygj498am0h23kxg5m3y5hqv65a";
};
# Needs tox
@@ -55,13 +55,16 @@ in mkDerivationWith python3Packages.buildPythonApplication rec {
docbook_xml_dtd_45 docbook_xsl libxml2 libxslt
];
- propagatedBuildInputs = with python3Packages; [
+ propagatedBuildInputs = with python3Packages; ([
pyyaml backendPackage jinja2 pygments
- pypeg2 cssutils pyopengl attrs setuptools
# scripts and userscripts libs
tldextract beautifulsoup4
pyreadability pykeepass stem
- ];
+ # extensive ad blocking
+ adblock
+ ]
+ ++ lib.optional (pythonOlder "3.9") importlib-resources
+ );
patches = [ ./fix-restart.patch ];
diff --git a/pkgs/data/documentation/scheme-manpages/default.nix b/pkgs/data/documentation/scheme-manpages/default.nix
index 2915430d9f24..e9fa1b7e4f4f 100644
--- a/pkgs/data/documentation/scheme-manpages/default.nix
+++ b/pkgs/data/documentation/scheme-manpages/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "scheme-manpages-unstable";
- version = "2020-08-14";
+ version = "2021-01-17";
src = fetchFromGitHub {
owner = "schemedoc";
repo = "manpages";
- rev = "2e99a0aea9c0327e3c2dcfb9b7a2f8f528b4fe43";
- sha256 = "0ykj4i8mx50mgyz9q63glfnc0mw1lf89hwsflpnbizjda5b4s0fp";
+ rev = "817798ccca81424e797fda0e218d53a95f50ded7";
+ sha256 = "1amc0dmliz2a37pivlkx88jbc08ypfiwv3z477znx8khhc538glk";
};
dontBuild = true;
diff --git a/pkgs/development/libraries/ayatana-ido/default.nix b/pkgs/development/libraries/ayatana-ido/default.nix
index 60417426f76c..03b89411168a 100644
--- a/pkgs/development/libraries/ayatana-ido/default.nix
+++ b/pkgs/development/libraries/ayatana-ido/default.nix
@@ -5,13 +5,13 @@
stdenv.mkDerivation rec {
pname = "ayatana-ido";
- version = "0.8.1";
+ version = "0.8.2";
src = fetchFromGitHub {
owner = "AyatanaIndicators";
repo = pname;
rev = version;
- sha256 = "1mcw6gmacrzx4cyg4223dpwcmj3qf8l30mxsg43292lajzwsm2hz";
+ sha256 = "sha256-nJ4F2faK0XZPj9GzUk3Ueap5h6rALFXISHqFQ30RuoU=";
};
nativeBuildInputs = [ pkg-config autoreconfHook gtk-doc vala gobject-introspection ];
diff --git a/pkgs/development/python-modules/aiocoap/default.nix b/pkgs/development/python-modules/aiocoap/default.nix
new file mode 100644
index 000000000000..dd74a21bf9b8
--- /dev/null
+++ b/pkgs/development/python-modules/aiocoap/default.nix
@@ -0,0 +1,31 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, python
+}:
+
+buildPythonPackage rec {
+ pname = "aiocoap";
+ version = "0.4b3";
+
+ src = fetchFromGitHub {
+ owner = "chrysn";
+ repo = pname;
+ rev = version;
+ sha256 = "1zjg475xgvi19rqg7jmfgy5nfabq50aph0231p9jba211ps7cmxw";
+ };
+
+ checkPhase = ''
+ ${python.interpreter} -m aiocoap.cli.defaults
+ ${python.interpreter} -m unittest discover -v
+ '';
+
+ pythonImportsCheck = [ "aiocoap" ];
+
+ meta = with lib; {
+ description = "Python CoAP library";
+ homepage = "https://aiocoap.readthedocs.io/";
+ license = with licenses; [ mit ];
+ maintainers = with maintainers; [ fab ];
+ };
+}
diff --git a/pkgs/development/python-modules/boto3/default.nix b/pkgs/development/python-modules/boto3/default.nix
index 81c8e9578148..41d0ed5f81de 100644
--- a/pkgs/development/python-modules/boto3/default.nix
+++ b/pkgs/development/python-modules/boto3/default.nix
@@ -13,11 +13,11 @@
buildPythonPackage rec {
pname = "boto3";
- version = "1.16.61"; # N.B: if you change this, change botocore too
+ version = "1.16.62"; # N.B: if you change this, change botocore too
src = fetchPypi {
inherit pname version;
- sha256 = "sha256-OPUD8FAqukJR3/TRkFfDGnud0PVDM99VIfiTHuTGXiY=";
+ sha256 = "sha256-u5H+z5guG7+2i7a9LJoMzjyErG+X3TONHvnkd4BnkJE=";