Merge master into staging-next
This commit is contained in:
commit
c18f9c2fbd
@ -131,6 +131,12 @@ rec {
|
|||||||
armhf-embedded = {
|
armhf-embedded = {
|
||||||
config = "arm-none-eabihf";
|
config = "arm-none-eabihf";
|
||||||
libc = "newlib";
|
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 = {
|
aarch64-embedded = {
|
||||||
|
@ -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 {
|
hardware.nvidia.modesetting.enable = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
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 {
|
hardware.nvidia.prime.sync.enable = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
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 = [
|
assertions = [
|
||||||
{
|
{
|
||||||
assertion = with config.services.xserver.displayManager; gdm.nvidiaWayland -> cfg.modesetting.enable;
|
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 = ''
|
message = ''
|
||||||
When NVIDIA PRIME is enabled, the GPU bus IDs must configured.
|
When NVIDIA PRIME is enabled, the GPU bus IDs must configured.
|
||||||
'';
|
'';
|
||||||
@ -174,6 +202,14 @@ in
|
|||||||
assertion = !(syncCfg.enable && offloadCfg.enable);
|
assertion = !(syncCfg.enable && offloadCfg.enable);
|
||||||
message = "Only one NVIDIA PRIME solution may be used at a time.";
|
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:
|
# 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.
|
# "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"
|
# - Add a separate Device section for the Intel GPU, using the "modesetting"
|
||||||
# driver and with the configured BusID.
|
# 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
|
# - Reference that Device section from the ServerLayout section as an inactive
|
||||||
# device.
|
# device.
|
||||||
# - Configure the display manager to run specific `xrandr` commands which will
|
# - 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.useGlamor = mkDefault offloadCfg.enable;
|
||||||
|
|
||||||
services.xserver.drivers = optional primeEnabled {
|
services.xserver.drivers = let
|
||||||
name = "modesetting";
|
in optional primeEnabled {
|
||||||
|
name = igpuDriver;
|
||||||
display = offloadCfg.enable;
|
display = offloadCfg.enable;
|
||||||
|
modules = optional (igpuDriver == "amdgpu") [ pkgs.xorg.xf86videoamdgpu ];
|
||||||
deviceSection = ''
|
deviceSection = ''
|
||||||
BusID "${pCfg.intelBusId}"
|
BusID "${igpuBusId}"
|
||||||
${optionalString syncCfg.enable ''Option "AccelMethod" "none"''}
|
${optionalString syncCfg.enable ''Option "AccelMethod" "none"''}
|
||||||
'';
|
'';
|
||||||
} ++ singleton {
|
} ++ singleton {
|
||||||
@ -205,6 +245,7 @@ in
|
|||||||
''
|
''
|
||||||
BusID "${pCfg.nvidiaBusId}"
|
BusID "${pCfg.nvidiaBusId}"
|
||||||
${optionalString syncCfg.allowExternalGpu "Option \"AllowExternalGpus\""}
|
${optionalString syncCfg.allowExternalGpu "Option \"AllowExternalGpus\""}
|
||||||
|
${optionalString cfg.powerManagement.finegrained "Option \"NVreg_DynamicPowerManagement=0x02\""}
|
||||||
'';
|
'';
|
||||||
screenSection =
|
screenSection =
|
||||||
''
|
''
|
||||||
@ -214,14 +255,14 @@ in
|
|||||||
};
|
};
|
||||||
|
|
||||||
services.xserver.serverLayoutSection = optionalString syncCfg.enable ''
|
services.xserver.serverLayoutSection = optionalString syncCfg.enable ''
|
||||||
Inactive "Device-modesetting[0]"
|
Inactive "Device-${igpuDriver}[0]"
|
||||||
'' + optionalString offloadCfg.enable ''
|
'' + optionalString offloadCfg.enable ''
|
||||||
Option "AllowNVIDIAGPUScreens"
|
Option "AllowNVIDIAGPUScreens"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
services.xserver.displayManager.setupCommands = optionalString syncCfg.enable ''
|
services.xserver.displayManager.setupCommands = optionalString syncCfg.enable ''
|
||||||
# Added by nvidia configuration module for Optimus/PRIME.
|
# 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
|
${pkgs.xorg.xrandr}/bin/xrandr --auto
|
||||||
'';
|
'';
|
||||||
|
|
||||||
@ -292,14 +333,35 @@ in
|
|||||||
boot.kernelParams = optional (offloadCfg.enable || cfg.modesetting.enable) "nvidia-drm.modeset=1"
|
boot.kernelParams = optional (offloadCfg.enable || cfg.modesetting.enable) "nvidia-drm.modeset=1"
|
||||||
++ optional cfg.powerManagement.enable "nvidia.NVreg_PreserveVideoMemoryAllocations=1";
|
++ optional cfg.powerManagement.enable "nvidia.NVreg_PreserveVideoMemoryAllocations=1";
|
||||||
|
|
||||||
# Create /dev/nvidia-uvm when the nvidia-uvm module is loaded.
|
|
||||||
services.udev.extraRules =
|
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", 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=="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=="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 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'"
|
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" ];
|
boot.blacklistedKernelModules = [ "nouveau" "nvidiafb" ];
|
||||||
|
@ -115,15 +115,18 @@ services.nginx = {
|
|||||||
<programlisting>
|
<programlisting>
|
||||||
<xref linkend="opt-security.acme.acceptTerms" /> = true;
|
<xref linkend="opt-security.acme.acceptTerms" /> = true;
|
||||||
<xref linkend="opt-security.acme.email" /> = "admin+acme@example.com";
|
<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 = {
|
services.nginx = {
|
||||||
<link linkend="opt-services.nginx.enable">enable</link> = true;
|
<link linkend="opt-services.nginx.enable">enable</link> = true;
|
||||||
<link linkend="opt-services.nginx.virtualHosts">virtualHosts</link> = {
|
<link linkend="opt-services.nginx.virtualHosts">virtualHosts</link> = {
|
||||||
"acmechallenge.example.com" = {
|
"acmechallenge.example.com" = {
|
||||||
# Catchall vhost, will redirect users to HTTPS for all vhosts
|
# Catchall vhost, will redirect users to HTTPS for all vhosts
|
||||||
<link linkend="opt-services.nginx.virtualHosts._name_.serverAliases">serverAliases</link> = [ "*.example.com" ];
|
<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" = {
|
locations."/.well-known/acme-challenge" = {
|
||||||
<link linkend="opt-services.nginx.virtualHosts._name_.locations._name_.root">root</link> = "/var/lib/acme/.challenges";
|
<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
|
# Alternative config for Apache
|
||||||
|
<link linkend="opt-users.users._name_.extraGroups">users.users.wwwrun.extraGroups</link> = [ "acme" ];
|
||||||
services.httpd = {
|
services.httpd = {
|
||||||
<link linkend="opt-services.httpd.enable">enable = true;</link>
|
<link linkend="opt-services.httpd.enable">enable = true;</link>
|
||||||
<link linkend="opt-services.httpd.virtualHosts">virtualHosts</link> = {
|
<link linkend="opt-services.httpd.virtualHosts">virtualHosts</link> = {
|
||||||
|
@ -41,6 +41,7 @@ in {
|
|||||||
haskellPackages = mkOption {
|
haskellPackages = mkOption {
|
||||||
description = "Which haskell package set to use.";
|
description = "Which haskell package set to use.";
|
||||||
default = pkgs.haskellPackages;
|
default = pkgs.haskellPackages;
|
||||||
|
type = types.package;
|
||||||
defaultText = "pkgs.haskellPackages";
|
defaultText = "pkgs.haskellPackages";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -68,6 +68,7 @@ in
|
|||||||
interface = mkOption {
|
interface = mkOption {
|
||||||
default = "";
|
default = "";
|
||||||
example = "wlp2s0";
|
example = "wlp2s0";
|
||||||
|
type = types.str;
|
||||||
description = ''
|
description = ''
|
||||||
The interfaces <command>hostapd</command> will use.
|
The interfaces <command>hostapd</command> will use.
|
||||||
'';
|
'';
|
||||||
|
@ -20,8 +20,24 @@ let
|
|||||||
--config ${configFile} --adapter ${cfg.adapter} > $out
|
--config ${configFile} --adapter ${cfg.adapter} > $out
|
||||||
'';
|
'';
|
||||||
tlsJSON = pkgs.writeText "tls.json" (builtins.toJSON tlsConfig);
|
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 {
|
in {
|
||||||
imports = [
|
imports = [
|
||||||
|
@ -1,10 +1,9 @@
|
|||||||
{ pkgs, configTxt }:
|
{ pkgs, configTxt, firmware ? pkgs.raspberrypifw }:
|
||||||
|
|
||||||
pkgs.substituteAll {
|
pkgs.substituteAll {
|
||||||
src = ./raspberrypi-builder.sh;
|
src = ./raspberrypi-builder.sh;
|
||||||
isExecutable = true;
|
isExecutable = true;
|
||||||
inherit (pkgs) bash;
|
inherit (pkgs) bash;
|
||||||
path = [pkgs.coreutils pkgs.gnused pkgs.gnugrep];
|
path = [pkgs.coreutils pkgs.gnused pkgs.gnugrep];
|
||||||
firmware = pkgs.raspberrypifw;
|
inherit firmware configTxt;
|
||||||
inherit configTxt;
|
|
||||||
}
|
}
|
||||||
|
@ -2,6 +2,13 @@
|
|||||||
|
|
||||||
targetRoot=/mnt-root
|
targetRoot=/mnt-root
|
||||||
console=tty1
|
console=tty1
|
||||||
|
verbose="@verbose@"
|
||||||
|
|
||||||
|
info() {
|
||||||
|
if [[ -n "$verbose" ]]; then
|
||||||
|
echo "$@"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
extraUtils="@extraUtils@"
|
extraUtils="@extraUtils@"
|
||||||
export LD_LIBRARY_PATH=@extraUtils@/lib
|
export LD_LIBRARY_PATH=@extraUtils@/lib
|
||||||
@ -55,7 +62,7 @@ EOF
|
|||||||
echo "Rebooting..."
|
echo "Rebooting..."
|
||||||
reboot -f
|
reboot -f
|
||||||
else
|
else
|
||||||
echo "Continuing..."
|
info "Continuing..."
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -63,9 +70,9 @@ trap 'fail' 0
|
|||||||
|
|
||||||
|
|
||||||
# Print a greeting.
|
# Print a greeting.
|
||||||
echo
|
info
|
||||||
echo "[1;32m<<< NixOS Stage 1 >>>[0m"
|
info "[1;32m<<< NixOS Stage 1 >>>[0m"
|
||||||
echo
|
info
|
||||||
|
|
||||||
# Make several required directories.
|
# Make several required directories.
|
||||||
mkdir -p /etc/udev
|
mkdir -p /etc/udev
|
||||||
@ -210,14 +217,14 @@ ln -s @modulesClosure@/lib/modules /lib/modules
|
|||||||
ln -s @modulesClosure@/lib/firmware /lib/firmware
|
ln -s @modulesClosure@/lib/firmware /lib/firmware
|
||||||
echo @extraUtils@/bin/modprobe > /proc/sys/kernel/modprobe
|
echo @extraUtils@/bin/modprobe > /proc/sys/kernel/modprobe
|
||||||
for i in @kernelModules@; do
|
for i in @kernelModules@; do
|
||||||
echo "loading module $(basename $i)..."
|
info "loading module $(basename $i)..."
|
||||||
modprobe $i
|
modprobe $i
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|
||||||
# Create device nodes in /dev.
|
# Create device nodes in /dev.
|
||||||
@preDeviceCommands@
|
@preDeviceCommands@
|
||||||
echo "running udev..."
|
info "running udev..."
|
||||||
ln -sfn /proc/self/fd /dev/fd
|
ln -sfn /proc/self/fd /dev/fd
|
||||||
ln -sfn /proc/self/fd/0 /dev/stdin
|
ln -sfn /proc/self/fd/0 /dev/stdin
|
||||||
ln -sfn /proc/self/fd/1 /dev/stdout
|
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
|
# XXX: Use case usb->lvm will still fail, usb->luks->lvm is covered
|
||||||
@preLVMCommands@
|
@preLVMCommands@
|
||||||
|
|
||||||
|
info "starting device mapper and LVM..."
|
||||||
echo "starting device mapper and LVM..."
|
|
||||||
lvm vgchange -ay
|
lvm vgchange -ay
|
||||||
|
|
||||||
if test -n "$debug1devices"; then fail; fi
|
if test -n "$debug1devices"; then fail; fi
|
||||||
@ -379,7 +385,7 @@ mountFS() {
|
|||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "mounting $device on $mountPoint..."
|
info "mounting $device on $mountPoint..."
|
||||||
|
|
||||||
mkdir -p "/mnt-root$mountPoint"
|
mkdir -p "/mnt-root$mountPoint"
|
||||||
|
|
||||||
|
@ -280,7 +280,7 @@ let
|
|||||||
|
|
||||||
inherit (config.system.build) earlyMountScript;
|
inherit (config.system.build) earlyMountScript;
|
||||||
|
|
||||||
inherit (config.boot.initrd) checkJournalingFS
|
inherit (config.boot.initrd) checkJournalingFS verbose
|
||||||
preLVMCommands preDeviceCommands postDeviceCommands postMountCommands preFailCommands kernelModules;
|
preLVMCommands preDeviceCommands postDeviceCommands postMountCommands preFailCommands kernelModules;
|
||||||
|
|
||||||
resumeDevices = map (sd: if sd ? device then sd.device else "/dev/disk/by-label/${sd.label}")
|
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.";
|
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
|
boot.loader.supportsInitrdSecrets = mkOption
|
||||||
{ internal = true;
|
{ internal = true;
|
||||||
default = false;
|
default = false;
|
||||||
|
@ -217,7 +217,7 @@ let
|
|||||||
environment = proxy_env;
|
environment = proxy_env;
|
||||||
|
|
||||||
path =
|
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 if cfg.backend == "podman" then [ config.virtualisation.podman.package ]
|
||||||
else throw "Unhandled backend: ${cfg.backend}";
|
else throw "Unhandled backend: ${cfg.backend}";
|
||||||
|
|
||||||
@ -227,15 +227,11 @@ let
|
|||||||
${cfg.backend} load -i ${container.imageFile}
|
${cfg.backend} load -i ${container.imageFile}
|
||||||
''}
|
''}
|
||||||
'';
|
'';
|
||||||
postStop = "${cfg.backend} rm -f ${name} || true";
|
|
||||||
|
|
||||||
serviceConfig = {
|
script = concatStringsSep " \\\n " ([
|
||||||
StandardOutput = "null";
|
"exec ${cfg.backend} run"
|
||||||
StandardError = "null";
|
|
||||||
ExecStart = concatStringsSep " \\\n " ([
|
|
||||||
"${config.system.path}/bin/${cfg.backend} run"
|
|
||||||
"--rm"
|
"--rm"
|
||||||
"--name=${name}"
|
"--name=${escapeShellArg name}"
|
||||||
"--log-driver=${container.log-driver}"
|
"--log-driver=${container.log-driver}"
|
||||||
] ++ optional (container.entrypoint != null)
|
] ++ optional (container.entrypoint != null)
|
||||||
"--entrypoint=${escapeShellArg container.entrypoint}"
|
"--entrypoint=${escapeShellArg container.entrypoint}"
|
||||||
@ -249,7 +245,12 @@ let
|
|||||||
++ map escapeShellArg container.cmd
|
++ map escapeShellArg container.cmd
|
||||||
);
|
);
|
||||||
|
|
||||||
ExecStop = ''${pkgs.bash}/bin/sh -c "[ $SERVICE_RESULT = success ] || ${cfg.backend} stop ${name}"'';
|
preStop = "[ $SERVICE_RESULT = success ] || ${cfg.backend} stop ${name}";
|
||||||
|
postStop = "${cfg.backend} rm -f ${name} || true";
|
||||||
|
|
||||||
|
serviceConfig = {
|
||||||
|
StandardOutput = "null";
|
||||||
|
StandardError = "null";
|
||||||
|
|
||||||
### There is no generalized way of supporting `reload` for docker
|
### There is no generalized way of supporting `reload` for docker
|
||||||
### containers. Some containers may respond well to SIGHUP sent to their
|
### containers. Some containers may respond well to SIGHUP sent to their
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
let
|
let
|
||||||
pkgs = import ../../../.. {};
|
pkgs = import ../../../.. {};
|
||||||
|
|
||||||
emacsEnv = pkgs.emacs.withPackages (epkgs: let
|
emacsEnv = pkgs.emacs.pkgs.withPackages (epkgs: let
|
||||||
|
|
||||||
promise = epkgs.trivialBuild {
|
promise = epkgs.trivialBuild {
|
||||||
pname = "promise";
|
pname = "promise";
|
||||||
|
@ -31,12 +31,12 @@ let
|
|||||||
|
|
||||||
in mkDerivationWith python3Packages.buildPythonApplication rec {
|
in mkDerivationWith python3Packages.buildPythonApplication rec {
|
||||||
pname = "qutebrowser";
|
pname = "qutebrowser";
|
||||||
version = "1.14.1";
|
version = "2.0.1";
|
||||||
|
|
||||||
# the release tarballs are different from the git checkout!
|
# the release tarballs are different from the git checkout!
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://github.com/qutebrowser/qutebrowser/releases/download/v${version}/${pname}-${version}.tar.gz";
|
url = "https://github.com/qutebrowser/qutebrowser/releases/download/v${version}/${pname}-${version}.tar.gz";
|
||||||
sha256 = "15l7jphy1qjsh6y6kd5mgkxsl6ymm9564g1yypa946jbyrgi8k2m";
|
sha256 = "0hmj19bp5dihzpphxz77377yfmygj498am0h23kxg5m3y5hqv65a";
|
||||||
};
|
};
|
||||||
|
|
||||||
# Needs tox
|
# Needs tox
|
||||||
@ -55,13 +55,16 @@ in mkDerivationWith python3Packages.buildPythonApplication rec {
|
|||||||
docbook_xml_dtd_45 docbook_xsl libxml2 libxslt
|
docbook_xml_dtd_45 docbook_xsl libxml2 libxslt
|
||||||
];
|
];
|
||||||
|
|
||||||
propagatedBuildInputs = with python3Packages; [
|
propagatedBuildInputs = with python3Packages; ([
|
||||||
pyyaml backendPackage jinja2 pygments
|
pyyaml backendPackage jinja2 pygments
|
||||||
pypeg2 cssutils pyopengl attrs setuptools
|
|
||||||
# scripts and userscripts libs
|
# scripts and userscripts libs
|
||||||
tldextract beautifulsoup4
|
tldextract beautifulsoup4
|
||||||
pyreadability pykeepass stem
|
pyreadability pykeepass stem
|
||||||
];
|
# extensive ad blocking
|
||||||
|
adblock
|
||||||
|
]
|
||||||
|
++ lib.optional (pythonOlder "3.9") importlib-resources
|
||||||
|
);
|
||||||
|
|
||||||
patches = [ ./fix-restart.patch ];
|
patches = [ ./fix-restart.patch ];
|
||||||
|
|
||||||
|
@ -2,13 +2,13 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "scheme-manpages-unstable";
|
pname = "scheme-manpages-unstable";
|
||||||
version = "2020-08-14";
|
version = "2021-01-17";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "schemedoc";
|
owner = "schemedoc";
|
||||||
repo = "manpages";
|
repo = "manpages";
|
||||||
rev = "2e99a0aea9c0327e3c2dcfb9b7a2f8f528b4fe43";
|
rev = "817798ccca81424e797fda0e218d53a95f50ded7";
|
||||||
sha256 = "0ykj4i8mx50mgyz9q63glfnc0mw1lf89hwsflpnbizjda5b4s0fp";
|
sha256 = "1amc0dmliz2a37pivlkx88jbc08ypfiwv3z477znx8khhc538glk";
|
||||||
};
|
};
|
||||||
|
|
||||||
dontBuild = true;
|
dontBuild = true;
|
||||||
|
@ -5,13 +5,13 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "ayatana-ido";
|
pname = "ayatana-ido";
|
||||||
version = "0.8.1";
|
version = "0.8.2";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "AyatanaIndicators";
|
owner = "AyatanaIndicators";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "1mcw6gmacrzx4cyg4223dpwcmj3qf8l30mxsg43292lajzwsm2hz";
|
sha256 = "sha256-nJ4F2faK0XZPj9GzUk3Ueap5h6rALFXISHqFQ30RuoU=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ pkg-config autoreconfHook gtk-doc vala gobject-introspection ];
|
nativeBuildInputs = [ pkg-config autoreconfHook gtk-doc vala gobject-introspection ];
|
||||||
|
31
pkgs/development/python-modules/aiocoap/default.nix
Normal file
31
pkgs/development/python-modules/aiocoap/default.nix
Normal file
@ -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 ];
|
||||||
|
};
|
||||||
|
}
|
@ -13,11 +13,11 @@
|
|||||||
|
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
pname = "boto3";
|
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 {
|
src = fetchPypi {
|
||||||
inherit pname version;
|
inherit pname version;
|
||||||
sha256 = "sha256-OPUD8FAqukJR3/TRkFfDGnud0PVDM99VIfiTHuTGXiY=";
|
sha256 = "sha256-u5H+z5guG7+2i7a9LJoMzjyErG+X3TONHvnkd4BnkJE=";
|
||||||
};
|
};
|
||||||
|
|
||||||
propagatedBuildInputs = [ botocore jmespath s3transfer ] ++ lib.optionals (!isPy3k) [ futures ];
|
propagatedBuildInputs = [ botocore jmespath s3transfer ] ++ lib.optionals (!isPy3k) [ futures ];
|
||||||
|
@ -12,11 +12,11 @@
|
|||||||
|
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
pname = "botocore";
|
pname = "botocore";
|
||||||
version = "1.19.61"; # N.B: if you change this, change boto3 and awscli to a matching version
|
version = "1.19.62"; # N.B: if you change this, change boto3 and awscli to a matching version
|
||||||
|
|
||||||
src = fetchPypi {
|
src = fetchPypi {
|
||||||
inherit pname version;
|
inherit pname version;
|
||||||
sha256 = "sha256-MkXJ6ZYUO8/epz0QUUXKcz/NfVr+dEqHYGEvxEnD+BA=";
|
sha256 = "sha256-KbS5vltA85KgM5JsCMAEwBvWRxOE728S6qSe44cKAQw=";
|
||||||
};
|
};
|
||||||
|
|
||||||
propagatedBuildInputs = [
|
propagatedBuildInputs = [
|
||||||
|
66
pkgs/development/python-modules/plugwise/default.nix
Normal file
66
pkgs/development/python-modules/plugwise/default.nix
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
{ lib
|
||||||
|
, buildPythonPackage
|
||||||
|
, fetchFromGitHub
|
||||||
|
, aiohttp
|
||||||
|
, async-timeout
|
||||||
|
, crcmod
|
||||||
|
, defusedxml
|
||||||
|
, pyserial
|
||||||
|
, pytz
|
||||||
|
, python-dateutil
|
||||||
|
, semver
|
||||||
|
, jsonpickle
|
||||||
|
, mypy
|
||||||
|
, pytest-aiohttp
|
||||||
|
, pytest-asyncio
|
||||||
|
, pytest-cov
|
||||||
|
, pytestCheckHook
|
||||||
|
}:
|
||||||
|
|
||||||
|
buildPythonPackage rec {
|
||||||
|
pname = "plugwise";
|
||||||
|
version = "0.8.5";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = pname;
|
||||||
|
repo = "python-plugwise";
|
||||||
|
rev = version;
|
||||||
|
sha256 = "1gviyy31l1j8z0if2id3m13r43kw4mcgd8921813yfhmf174piq4";
|
||||||
|
};
|
||||||
|
|
||||||
|
propagatedBuildInputs = [
|
||||||
|
aiohttp
|
||||||
|
async-timeout
|
||||||
|
crcmod
|
||||||
|
defusedxml
|
||||||
|
pyserial
|
||||||
|
pytz
|
||||||
|
python-dateutil
|
||||||
|
semver
|
||||||
|
];
|
||||||
|
|
||||||
|
checkInputs = [
|
||||||
|
jsonpickle
|
||||||
|
mypy
|
||||||
|
pytest-aiohttp
|
||||||
|
pytest-asyncio
|
||||||
|
pytest-cov
|
||||||
|
pytest-asyncio
|
||||||
|
pytestCheckHook
|
||||||
|
];
|
||||||
|
|
||||||
|
pythonImportsCheck = [ "plugwise" ];
|
||||||
|
|
||||||
|
__darwinAllowLocalNetworking = true;
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "Python module for Plugwise Smiles, Stretch and USB stick";
|
||||||
|
longDescription = ''
|
||||||
|
XKNX is an asynchronous Python library for reading and writing KNX/IP
|
||||||
|
packets. It provides support for KNX/IP routing and tunneling devices.
|
||||||
|
'';
|
||||||
|
homepage = "https://github.com/plugwise/python-plugwise";
|
||||||
|
license = with licenses; [ mit ];
|
||||||
|
maintainers = with maintainers; [ fab ];
|
||||||
|
};
|
||||||
|
}
|
51
pkgs/development/python-modules/regenmaschine/default.nix
Normal file
51
pkgs/development/python-modules/regenmaschine/default.nix
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
{ lib
|
||||||
|
, aiohttp
|
||||||
|
, aresponses
|
||||||
|
, asynctest
|
||||||
|
, buildPythonPackage
|
||||||
|
, fetchFromGitHub
|
||||||
|
, poetry-core
|
||||||
|
, pytest-aiohttp
|
||||||
|
, pytest-asyncio
|
||||||
|
, pytest-cov
|
||||||
|
, pytest-mock
|
||||||
|
, pytestCheckHook
|
||||||
|
}:
|
||||||
|
|
||||||
|
buildPythonPackage rec {
|
||||||
|
pname = "regenmaschine";
|
||||||
|
version = "3.1.1";
|
||||||
|
format = "pyproject";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "bachya";
|
||||||
|
repo = pname;
|
||||||
|
rev = version;
|
||||||
|
sha256 = "0m6i7vspp8ssdk2k32kznql1j8gkp300kzb7pk67hzvpijdy3mca";
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [ poetry-core ];
|
||||||
|
|
||||||
|
propagatedBuildInputs = [ aiohttp ];
|
||||||
|
|
||||||
|
checkInputs = [
|
||||||
|
aresponses
|
||||||
|
asynctest
|
||||||
|
pytest-aiohttp
|
||||||
|
pytest-asyncio
|
||||||
|
pytest-cov
|
||||||
|
pytest-mock
|
||||||
|
pytestCheckHook
|
||||||
|
];
|
||||||
|
|
||||||
|
pythonImportsCheck = [ "regenmaschine" ];
|
||||||
|
|
||||||
|
__darwinAllowLocalNetworking = true;
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "Python library for interacting with RainMachine smart sprinkler controllers";
|
||||||
|
homepage = "https://github.com/bachya/regenmaschine";
|
||||||
|
license = with licenses; [ mit ];
|
||||||
|
maintainers = with maintainers; [ fab ];
|
||||||
|
};
|
||||||
|
}
|
@ -1,13 +1,13 @@
|
|||||||
{ lib, stdenv, fetchurl, common-updater-scripts, coreutils, git, gnused, nix, nixfmt
|
{ lib, stdenv, fetchurl, common-updater-scripts, coreutils, git, gnused, nix
|
||||||
, writeScript, nixosTests, jq, cacert, curl }:
|
, nixfmt, writeScript, nixosTests, jq, cacert, curl }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "jenkins";
|
pname = "jenkins";
|
||||||
version = "2.263.2";
|
version = "2.263.3";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://mirrors.jenkins.io/war-stable/${version}/jenkins.war";
|
url = "http://mirrors.jenkins.io/war-stable/${version}/jenkins.war";
|
||||||
sha256 = "13l7y1307iv54z2zsjy0slzv2hpqv9i35qb15xa8s6sl7lcm9l49";
|
sha256 = "0lyzmv378yjz4p4dlpm1nwdq4p781nycvspdik82xbxg4s6gamd3";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildCommand = ''
|
buildCommand = ''
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
rustPlatform.buildRustPackage rec {
|
rustPlatform.buildRustPackage rec {
|
||||||
pname = "cargo-c";
|
pname = "cargo-c";
|
||||||
version = "0.7.1";
|
version = "0.7.2";
|
||||||
|
|
||||||
src = stdenv.mkDerivation rec {
|
src = stdenv.mkDerivation rec {
|
||||||
name = "${pname}-source-${version}";
|
name = "${pname}-source-${version}";
|
||||||
@ -14,11 +14,11 @@ rustPlatform.buildRustPackage rec {
|
|||||||
owner = "lu-zero";
|
owner = "lu-zero";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "1a348ys4lbgsr23px81kw985i5bp8z75wgzl9l2jv9sdzirpb8k4";
|
sha256 = "1rgwj3kf31n4rz0b7jw67wsgyapdycfic7plm5gm4n9rlslp5ax5";
|
||||||
};
|
};
|
||||||
cargoLock = fetchurl {
|
cargoLock = fetchurl {
|
||||||
url = "https://github.com/lu-zero/${pname}/releases/download/v${version}/Cargo.lock";
|
url = "https://github.com/lu-zero/${pname}/releases/download/v${version}/Cargo.lock";
|
||||||
sha256 = "1f78wlid8jx26pqybmafzcl1656nnp87hdiib0v1p5k73mk4ymvy";
|
sha256 = "0jnawnkf4m7cqcq9iahnxa53l61a5riax400n96vxrqf3fa752c6";
|
||||||
};
|
};
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
@ -28,7 +28,7 @@ rustPlatform.buildRustPackage rec {
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
cargoSha256 = "1nj54igm57h9d8hhqdgkay2nnblcdxhpnha68jqvjazd8a0bq3la";
|
cargoSha256 = "0svmhq64aqw1vidq8jmw7w4xhhnyp04vcs9yzhjyz25c4cn9grsf";
|
||||||
|
|
||||||
nativeBuildInputs = [ pkg-config ];
|
nativeBuildInputs = [ pkg-config ];
|
||||||
buildInputs = [ openssl ]
|
buildInputs = [ openssl ]
|
||||||
|
@ -11,13 +11,13 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "mednaffe";
|
pname = "mednaffe";
|
||||||
version = "0.8.8";
|
version = "0.9.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "AmatCoder";
|
owner = "AmatCoder";
|
||||||
repo = "mednaffe";
|
repo = "mednaffe";
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "15qk3a3l1phr8bap2ayh3c0vyvw2jwhny1iz1ajq2adyjpm9fhr7";
|
sha256 = "sha256-BS/GNnRYj9klc4RRj7LwNikgApNttv4IyWPL694j+gM=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ autoreconfHook pkg-config wrapGAppsHook ];
|
nativeBuildInputs = [ autoreconfHook pkg-config wrapGAppsHook ];
|
||||||
|
@ -621,7 +621,7 @@
|
|||||||
"plaato" = ps: with ps; [ aiohttp-cors ];
|
"plaato" = ps: with ps; [ aiohttp-cors ];
|
||||||
"plant" = ps: with ps; [ sqlalchemy ];
|
"plant" = ps: with ps; [ sqlalchemy ];
|
||||||
"plex" = ps: with ps; [ aiohttp-cors plexapi plexauth plexwebsocket pysonos ];
|
"plex" = ps: with ps; [ aiohttp-cors plexapi plexauth plexwebsocket pysonos ];
|
||||||
"plugwise" = ps: with ps; [ ]; # missing inputs: plugwise
|
"plugwise" = ps: with ps; [ plugwise ];
|
||||||
"plum_lightpad" = ps: with ps; [ ]; # missing inputs: plumlightpad
|
"plum_lightpad" = ps: with ps; [ ]; # missing inputs: plumlightpad
|
||||||
"pocketcasts" = ps: with ps; [ ]; # missing inputs: pycketcasts
|
"pocketcasts" = ps: with ps; [ ]; # missing inputs: pycketcasts
|
||||||
"point" = ps: with ps; [ aiohttp-cors ]; # missing inputs: pypoint
|
"point" = ps: with ps; [ aiohttp-cors ]; # missing inputs: pypoint
|
||||||
@ -659,7 +659,7 @@
|
|||||||
"rainbird" = ps: with ps; [ ]; # missing inputs: pyrainbird
|
"rainbird" = ps: with ps; [ ]; # missing inputs: pyrainbird
|
||||||
"raincloud" = ps: with ps; [ ]; # missing inputs: raincloudy
|
"raincloud" = ps: with ps; [ ]; # missing inputs: raincloudy
|
||||||
"rainforest_eagle" = ps: with ps; [ ]; # missing inputs: eagle200_reader uEagle
|
"rainforest_eagle" = ps: with ps; [ ]; # missing inputs: eagle200_reader uEagle
|
||||||
"rainmachine" = ps: with ps; [ ]; # missing inputs: regenmaschine
|
"rainmachine" = ps: with ps; [ regenmaschine ];
|
||||||
"random" = ps: with ps; [ ];
|
"random" = ps: with ps; [ ];
|
||||||
"raspihats" = ps: with ps; [ smbus-cffi ]; # missing inputs: raspihats
|
"raspihats" = ps: with ps; [ smbus-cffi ]; # missing inputs: raspihats
|
||||||
"raspyrfm" = ps: with ps; [ ]; # missing inputs: raspyrfm-client
|
"raspyrfm" = ps: with ps; [ ]; # missing inputs: raspyrfm-client
|
||||||
|
@ -15,13 +15,13 @@
|
|||||||
}:
|
}:
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "postgis";
|
pname = "postgis";
|
||||||
version = "3.1.0";
|
version = "3.1.1";
|
||||||
|
|
||||||
outputs = [ "out" "doc" ];
|
outputs = [ "out" "doc" ];
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://download.osgeo.org/postgis/source/postgis-${version}.tar.gz";
|
url = "https://download.osgeo.org/postgis/source/postgis-${version}.tar.gz";
|
||||||
sha256 = "008280ijd6m9h35y9lcpql0fk0h9f3zkc1pfkdm0rkbnd12y41ns";
|
sha256 = "0z9a39243fv37mansbbjq5mmxpnhr7xzn8pv92fr7dkdb3psz5hf";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ libxml2 postgresql geos proj gdal json_c protobufc ]
|
buildInputs = [ libxml2 postgresql geos proj gdal json_c protobufc ]
|
||||||
|
@ -28,11 +28,11 @@ let
|
|||||||
|
|
||||||
in with py.pkgs; buildPythonApplication rec {
|
in with py.pkgs; buildPythonApplication rec {
|
||||||
pname = "awscli";
|
pname = "awscli";
|
||||||
version = "1.18.221"; # N.B: if you change this, change botocore to a matching version too
|
version = "1.18.222"; # N.B: if you change this, change botocore to a matching version too
|
||||||
|
|
||||||
src = fetchPypi {
|
src = fetchPypi {
|
||||||
inherit pname version;
|
inherit pname version;
|
||||||
sha256 = "sha256-G8HonN02eFcfMRhj9+cporugVsF7nDeHEopuHnbS1Is=";
|
sha256 = "sha256-nVBQ2Lj5+zyvj3g0W3Rxh+CZwG7sbqKehvg6vAhHexs=";
|
||||||
};
|
};
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
|
@ -10,11 +10,11 @@ with lib;
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "acme-client";
|
pname = "acme-client";
|
||||||
version = "1.0.1";
|
version = "1.1.0";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://data.wolfsden.cz/sources/acme-client-${version}.tar.xz";
|
url = "https://data.wolfsden.cz/sources/acme-client-${version}.tar.xz";
|
||||||
sha256 = "0gmdvmyw8a61w08hrxllypf7rpnqg0fxipbk3zmvsxj7m5i6iysj";
|
sha256 = "sha256-AYI7WfRTb5R0/hDX5Iqkq5nrLZ4gQecAGObSajSA+vw=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ pkg-config ];
|
nativeBuildInputs = [ pkg-config ];
|
||||||
|
@ -2,13 +2,13 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "bpytop";
|
pname = "bpytop";
|
||||||
version = "1.0.59";
|
version = "1.0.61";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "aristocratos";
|
owner = "aristocratos";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "sha256-RlrUUIbZRNTvxU8LVW0/ZcARlKDVvSMlkN0+6BgAink=";
|
sha256 = "sha256-E6blMhDkZa3Wbdbsw7f8jdHwHFINOQ48XC5pQdkVPtQ=";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ makeWrapper ];
|
buildInputs = [ makeWrapper ];
|
||||||
|
@ -22,13 +22,13 @@ let
|
|||||||
++ recommendedDisplayInformationPrograms;
|
++ recommendedDisplayInformationPrograms;
|
||||||
in stdenv.mkDerivation rec {
|
in stdenv.mkDerivation rec {
|
||||||
pname = "inxi";
|
pname = "inxi";
|
||||||
version = "3.2.02-2";
|
version = "3.3.00-1";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "smxi";
|
owner = "smxi";
|
||||||
repo = "inxi";
|
repo = "inxi";
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "sha256-WHfW0empveOxC3jvYq46jlvVZDb8JLne5JHPtFE6nTs=";
|
sha256 = "sha256-P1AYo4Ao9lDxJXyZd64wBxNgQIvEcT00ThjtcB2v52I=";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ perl makeWrapper ];
|
buildInputs = [ perl makeWrapper ];
|
||||||
|
@ -204,6 +204,8 @@ in {
|
|||||||
|
|
||||||
aioamqp = callPackage ../development/python-modules/aioamqp { };
|
aioamqp = callPackage ../development/python-modules/aioamqp { };
|
||||||
|
|
||||||
|
aiocoap = callPackage ../development/python-modules/aiocoap { };
|
||||||
|
|
||||||
aioconsole = callPackage ../development/python-modules/aioconsole { };
|
aioconsole = callPackage ../development/python-modules/aioconsole { };
|
||||||
|
|
||||||
aiocontextvars = callPackage ../development/python-modules/aiocontextvars { };
|
aiocontextvars = callPackage ../development/python-modules/aiocontextvars { };
|
||||||
@ -4911,6 +4913,8 @@ in {
|
|||||||
|
|
||||||
pluginbase = callPackage ../development/python-modules/pluginbase { };
|
pluginbase = callPackage ../development/python-modules/pluginbase { };
|
||||||
|
|
||||||
|
plugwise = callPackage ../development/python-modules/plugwise { };
|
||||||
|
|
||||||
plumbum = callPackage ../development/python-modules/plumbum { };
|
plumbum = callPackage ../development/python-modules/plumbum { };
|
||||||
|
|
||||||
ply = callPackage ../development/python-modules/ply { };
|
ply = callPackage ../development/python-modules/ply { };
|
||||||
@ -6652,6 +6656,8 @@ in {
|
|||||||
|
|
||||||
reflink = callPackage ../development/python-modules/reflink { };
|
reflink = callPackage ../development/python-modules/reflink { };
|
||||||
|
|
||||||
|
regenmaschine = callPackage ../development/python-modules/regenmaschine { };
|
||||||
|
|
||||||
regex = callPackage ../development/python-modules/regex { };
|
regex = callPackage ../development/python-modules/regex { };
|
||||||
|
|
||||||
regional = callPackage ../development/python-modules/regional { };
|
regional = callPackage ../development/python-modules/regional { };
|
||||||
|
Loading…
Reference in New Issue
Block a user