Skip to content
This repository was archived by the owner on Apr 12, 2021. It is now read-only.
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: NixOS/nixpkgs-channels
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 880de7a9bc1e
Choose a base ref
...
head repository: NixOS/nixpkgs-channels
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 1c8fea18e265
Choose a head ref

Commits on Nov 30, 2018

  1. Copy the full SHA
    ea1be31 View commit details

Commits on Dec 13, 2018

  1. Copy the full SHA
    d95dc96 View commit details

Commits on Dec 24, 2018

  1. Copy the full SHA
    369af2f View commit details

Commits on Dec 25, 2018

  1. matomo: 3.6.1 -> 3.7.0

    Semi-automatic update generated by
    https://github.com/ryantm/nixpkgs-update tools. This update was made
    based on information from
    https://repology.org/metapackage/matomo/versions
    r-ryantm committed Dec 25, 2018
    Copy the full SHA
    687567e View commit details
  2. lmdb: 0.9.22 -> 0.9.23

    Semi-automatic update generated by
    https://github.com/ryantm/nixpkgs-update tools. This update was made
    based on information from
    https://repology.org/metapackage/lmdb/versions
    r-ryantm committed Dec 25, 2018
    Copy the full SHA
    517babb View commit details

Commits on Dec 27, 2018

  1. mkl: fix hash on Darwin

    agracie committed Dec 27, 2018
    Copy the full SHA
    a3fc481 View commit details
  2. Copy the full SHA
    0105024 View commit details
  3. Copy the full SHA
    17eb96d View commit details
  4. detect-secrets: init at 0.11.0

    marsam committed Dec 27, 2018
    Copy the full SHA
    3258b00 View commit details
  5. zafiro-icons: 0.7.7 -> 0.7.9

    romildo committed Dec 27, 2018
    Copy the full SHA
    ad587ca View commit details
  6. Merge pull request #52950 from agracie/fix-mkl

    mkl: fix hash on Darwin
    markuskowa authored Dec 27, 2018
    Copy the full SHA
    d120256 View commit details
  7. Copy the full SHA
    21f04bc View commit details
  8. Merge pull request #52597 from lopsided98/lvm2-no-parallel

    lvm2: disable parallel building
    markuskowa authored Dec 27, 2018
    Copy the full SHA
    98561c7 View commit details
  9. Merge pull request #52847 from r-ryantm/auto-update/lmdb

    lmdb: 0.9.22 -> 0.9.23
    markuskowa authored Dec 27, 2018
    Copy the full SHA
    b8f0e2e View commit details
  10. Copy the full SHA
    2534ddd View commit details
  11. Copy the full SHA
    9db84f6 View commit details
  12. nixos/security/misc: factor out protectKernelImage

    Introduces the option security.protectKernelImage that is intended to control
    various mitigations to protect the integrity of the running kernel
    image (i.e., prevent replacing it without rebooting).
    
    This makes sense as a dedicated module as it is otherwise somewhat difficult
    to override for hardened profile users who want e.g., hibernation to work.
    joachifm committed Dec 27, 2018
    Copy the full SHA
    84fb882 View commit details
  13. nixos/security/misc: expose l1tf mitigation option

    For the hardened profile enable flushing whenever the hypervisor enters the
    guest, but otherwise leave at kernel default (conditional flushing as of
    writing).
    joachifm committed Dec 27, 2018
    Copy the full SHA
    e9761fa View commit details
  14. nixos/security/misc: expose SMT control option

    For the hardened profile disable symmetric multi threading.  There seems to be
    no *proven* method of exploiting cache sharing between threads on the same CPU
    core, so this may be considered quite paranoid, considering the perf cost.
    SMT can be controlled at runtime, however.  This is in keeping with OpenBSD
    defaults.
    
    TODO: since SMT is left to be controlled at runtime, changing the option
    definition should take effect on system activation.  Write to
    /sys/devices/system/cpu/smt/control
    joachifm committed Dec 27, 2018
    Copy the full SHA
    ea4f371 View commit details
  15. Merge pull request #51294 from eadwu/nvidia_x11/legacy_390

    nvidia: expose nvidia_x11_legacy390
    veprbl authored Dec 27, 2018
    Copy the full SHA
    3edd5cb View commit details
  16. Copy the full SHA
    544e715 View commit details
  17. bacula: 9.2.2 -> 9.4.1 (#52924)

    Semi-automatic update generated by
    https://github.com/ryantm/nixpkgs-update tools. This update was made
    based on information from
    https://repology.org/metapackage/bacula/versions
    r-ryantm authored and timokau committed Dec 27, 2018
    Copy the full SHA
    ebe05a7 View commit details
  18. Copy the full SHA
    364c59d View commit details
  19. Merge pull request #51945 from senden9/patch-1

    Update oh-my-zsh.xml - Adapt parametername
    infinisil authored Dec 27, 2018
    Copy the full SHA
    a80f819 View commit details
  20. Copy the full SHA
    167e748 View commit details
  21. Copy the full SHA
    6d315ab View commit details
  22. k3d: fix build

    orivej committed Dec 27, 2018
    Copy the full SHA
    39b3cad View commit details
  23. Copy the full SHA
    992fc1a View commit details
  24. nix1: fix build with boehmgc 7.6.8

    It needs -lgc and -lgccpp, but boehmgc pkgconfig file specifies only -lgc.
    
    Broken in https://hydra.nixos.org/build/82223544
    orivej committed Dec 27, 2018
    Copy the full SHA
    830599d View commit details
  25. dwm-status: 1.5.0 -> 1.6.0 (#52982)

    Gerschtli authored and timokau committed Dec 27, 2018
    Copy the full SHA
    4c2c27c View commit details
  26. Copy the full SHA
    8d84ba7 View commit details
  27. python3Packages.goobook: 3.1 -> 3.3

    Unfortunately this package was unmaintained for years, which is why I
    had to change quite some stuff (it's probably still not perfect) and set
    myself as maintainer (replacing the existing ones, which maintained it
    until version 1.9).
    primeos committed Dec 27, 2018
    Copy the full SHA
    805e89c View commit details
  28. Merge pull request #52789 from romildo/upd.zafiro-icons

    zafiro-icons: 0.7.7 -> 0.7.9
    worldofpeace authored Dec 27, 2018
    Copy the full SHA
    fe53759 View commit details

Commits on Dec 28, 2018

  1. Merge pull request #52836 from r-ryantm/auto-update/matomo

    matomo: 3.6.1 -> 3.7.0
    ryantm authored Dec 28, 2018
    Copy the full SHA
    be3496f View commit details
  2. Merge pull request #52876 from marsam/init-detect-secrets

    detect-secrets: init at 0.11.0
    worldofpeace authored Dec 28, 2018
    Copy the full SHA
    3ae459f View commit details
  3. Merge pull request #52957 from peterhoeg/u/esx

    check-esxi-hardware: 20161013 -> 20181001
    peterhoeg authored Dec 28, 2018
    Copy the full SHA
    da5aecc View commit details
  4. kernel/patches.nix: remove hard tabs

    ivan authored and FRidh committed Dec 28, 2018
    Copy the full SHA
    1c8fea1 View commit details
Showing with 309 additions and 100 deletions.
  1. +2 −0 nixos/modules/hardware/video/nvidia.nix
  2. +6 −6 nixos/modules/profiles/hardened.nix
  3. +98 −12 nixos/modules/security/misc.nix
  4. +6 −0 nixos/tests/hardened.nix
  5. +4 −0 pkgs/applications/graphics/k3d/default.nix
  6. +5 −5 pkgs/applications/misc/dmrconfig/default.nix
  7. +2 −2 pkgs/applications/networking/insync/default.nix
  8. +9 −9 pkgs/applications/window-managers/dwm/dwm-status.nix
  9. +2 −3 pkgs/data/icons/zafiro-icons/default.nix
  10. +26 −0 pkgs/development/libraries/allegro/allegro4-mesa-18.2.5.patch
  11. +1 −0 pkgs/development/libraries/allegro/default.nix
  12. +5 −8 pkgs/development/libraries/libs3/default.nix
  13. +2 −2 pkgs/development/libraries/lmdb/default.nix
  14. +1 −1 pkgs/development/libraries/science/math/mkl/default.nix
  15. +7 −22 pkgs/development/python-modules/goobook/default.nix
  16. +4 −4 pkgs/development/python-modules/pytest-xdist/default.nix
  17. +2 −0 pkgs/development/python-modules/sip/default.nix
  18. +21 −0 pkgs/development/python-modules/unidiff/default.nix
  19. +34 −0 pkgs/development/tools/detect-secrets/default.nix
  20. +6 −6 pkgs/os-specific/linux/kernel/patches.nix
  21. +2 −1 pkgs/os-specific/linux/lvm2/default.nix
  22. +11 −11 pkgs/os-specific/linux/nvidia-x11/default.nix
  23. +2 −2 pkgs/servers/monitoring/plugins/esxi.nix
  24. +2 −2 pkgs/servers/web-apps/matomo/default.nix
  25. +2 −2 pkgs/tools/backup/bacula/default.nix
  26. +30 −0 pkgs/tools/misc/ideviceinstaller/default.nix
  27. +3 −2 pkgs/tools/package-management/nix/default.nix
  28. +12 −0 pkgs/top-level/all-packages.nix
  29. +2 −0 pkgs/top-level/python-packages.nix
2 changes: 2 additions & 0 deletions nixos/modules/hardware/video/nvidia.nix
Original file line number Diff line number Diff line change
@@ -20,6 +20,8 @@ let
kernelPackages.nvidia_x11_legacy304
else if elem "nvidiaLegacy340" drivers then
kernelPackages.nvidia_x11_legacy340
else if elem "nvidiaLegacy390" drivers then
kernelPackages.nvidia_x11_legacy390
else null;

nvidia_x11 = nvidiaForKernel config.boot.kernelPackages;
12 changes: 6 additions & 6 deletions nixos/modules/profiles/hardened.nix
Original file line number Diff line number Diff line change
@@ -20,6 +20,12 @@ with lib;

security.allowUserNamespaces = mkDefault false;

security.protectKernelImage = mkDefault true;

security.allowSimultaneousMultithreading = mkDefault false;

security.virtualization.flushL1DataCache = mkDefault "always";

security.apparmor.enable = mkDefault true;

boot.kernelParams = [
@@ -28,9 +34,6 @@ with lib;

# Disable legacy virtual syscalls
"vsyscall=none"

# Disable hibernation (allows replacing the running kernel)
"nohibernate"
];

boot.blacklistedKernelModules = [
@@ -44,9 +47,6 @@ with lib;
# (e.g., parent/child)
boot.kernel.sysctl."kernel.yama.ptrace_scope" = mkOverride 500 1;

# Prevent replacing the running kernel image w/o reboot
boot.kernel.sysctl."kernel.kexec_load_disabled" = mkDefault true;

# Restrict access to kernel ring buffer (information leaks)
boot.kernel.sysctl."kernel.dmesg_restrict" = mkDefault true;

110 changes: 98 additions & 12 deletions nixos/modules/security/misc.nix
Original file line number Diff line number Diff line change
@@ -22,18 +22,104 @@ with lib;
a user namespace fails with "no space left on device" (ENOSPC).
'';
};
};

config = mkIf (!config.security.allowUserNamespaces) {
# Setting the number of allowed user namespaces to 0 effectively disables
# the feature at runtime. Note that root may raise the limit again
# at any time.
boot.kernel.sysctl."user.max_user_namespaces" = 0;

assertions = [
{ assertion = config.nix.useSandbox -> config.security.allowUserNamespaces;
message = "`nix.useSandbox = true` conflicts with `!security.allowUserNamespaces`.";
}
];
security.protectKernelImage = mkOption {
type = types.bool;
default = false;
description = ''
Whether to prevent replacing the running kernel image.
'';
};

security.allowSimultaneousMultithreading = mkOption {
type = types.bool;
default = true;
description = ''
Whether to allow SMT/hyperthreading. Disabling SMT means that only
physical CPU cores will be usable at runtime, potentially at
significant performance cost.
</para>
<para>
The primary motivation for disabling SMT is to mitigate the risk of
leaking data between threads running on the same CPU core (due to
e.g., shared caches). This attack vector is unproven.
</para>
<para>
Disabling SMT is a supplement to the L1 data cache flushing mitigation
(see <xref linkend="opt-security.virtualization.flushL1DataCache"/>)
versus malicious VM guests (SMT could "bring back" previously flushed
data).
</para>
<para>
'';
};

security.virtualization.flushL1DataCache = mkOption {
type = types.nullOr (types.enum [ "never" "cond" "always" ]);
default = null;
description = ''
Whether the hypervisor should flush the L1 data cache before
entering guests.
See also <xref linkend="opt-security.allowSimultaneousMultithreading"/>.
</para>
<para>
<variablelist>
<varlistentry>
<term><literal>null</literal></term>
<listitem><para>uses the kernel default</para></listitem>
</varlistentry>
<varlistentry>
<term><literal>"never"</literal></term>
<listitem><para>disables L1 data cache flushing entirely.
May be appropriate if all guests are trusted.</para></listitem>
</varlistentry>
<varlistentry>
<term><literal>"cond"</literal></term>
<listitem><para>flushes L1 data cache only for pre-determined
code paths. May leak information about the host address space
layout.</para></listitem>
</varlistentry>
<varlistentry>
<term><literal>"always"</literal></term>
<listitem><para>flushes L1 data cache every time the hypervisor
enters the guest. May incur significant performance cost.
</para></listitem>
</varlistentry>
</variablelist>
'';
};
};

config = mkMerge [
(mkIf (!config.security.allowUserNamespaces) {
# Setting the number of allowed user namespaces to 0 effectively disables
# the feature at runtime. Note that root may raise the limit again
# at any time.
boot.kernel.sysctl."user.max_user_namespaces" = 0;

assertions = [
{ assertion = config.nix.useSandbox -> config.security.allowUserNamespaces;
message = "`nix.useSandbox = true` conflicts with `!security.allowUserNamespaces`.";
}
];
})

(mkIf config.security.protectKernelImage {
# Disable hibernation (allows replacing the running kernel)
boot.kernelParams = [ "nohibernate" ];
# Prevent replacing the running kernel image w/o reboot
boot.kernel.sysctl."kernel.kexec_load_disabled" = mkDefault true;
})

(mkIf (!config.security.allowSimultaneousMultithreading) {
boot.kernelParams = [ "nosmt" ];
})

(mkIf (config.security.virtualization.flushL1DataCache != null) {
boot.kernelParams = [ "kvm-intel.vmentry_l1d_flush=${config.security.virtualization.flushL1DataCache}" ];
})
];
}
6 changes: 6 additions & 0 deletions nixos/tests/hardened.nix
Original file line number Diff line number Diff line change
@@ -70,5 +70,11 @@ import ./make-test.nix ({ pkgs, ...} : {
$machine->fail("su -l nobody -s /bin/sh -c 'nix ping-store'");
$machine->succeed("su -l alice -c 'nix ping-store'") =~ "OK";
};
# Test kernel image protection
subtest "kernelimage", sub {
$machine->fail("systemctl hibernate");
$machine->fail("systemctl kexec");
};
'';
})
4 changes: 4 additions & 0 deletions pkgs/applications/graphics/k3d/default.nix
Original file line number Diff line number Diff line change
@@ -39,6 +39,10 @@ stdenv.mkDerivation rec {

#doCheck = false;

NIX_CFLAGS_COMPILE = [
"-Wno-deprecated-declarations"
];

meta = with stdenv.lib; {
description = "A 3D editor with support for procedural editing";
homepage = http://www.k-3d.org/;
10 changes: 5 additions & 5 deletions pkgs/applications/misc/dmrconfig/default.nix
Original file line number Diff line number Diff line change
@@ -3,13 +3,13 @@

stdenv.mkDerivation rec {
name = "dmrconfig-${version}";
version = "1.0";
version = "1.1";

src = fetchFromGitHub {
owner = "sergev";
repo = "dmrconfig";
rev = version;
sha256 = "1bb3hahfdb5phxyzp1m5ibqwz3mcqplzaibb1aq7w273xcfrd9l9";
sha256 = "1qwix75z749628w583fwp7m7kxbj0k3g159sxb7vgqxbadqqz1ab";
};

buildInputs = [
@@ -18,11 +18,11 @@ stdenv.mkDerivation rec {

preConfigure = ''
substituteInPlace Makefile \
--replace /usr/local/bin/dmrconfig $out/bin/dmrconfig \
--replace "\$(shell git describe --tags --abbrev=0)" ${version} \
--replace "\$(shell git rev-list HEAD --count)" 0
--replace /usr/local/bin/dmrconfig $out/bin/dmrconfig
'';

makeFlags = "VERSION=${version} GITCOUNT=0";

installPhase = ''
mkdir -p $out/bin $out/lib/udev/rules.d
make install
4 changes: 2 additions & 2 deletions pkgs/applications/networking/insync/default.nix
Original file line number Diff line number Diff line change
@@ -2,12 +2,12 @@

stdenv.mkDerivation rec {
name = "insync-${version}";
version = "1.4.5.37069";
version = "1.5.5.37367";
src =
if stdenv.hostPlatform.system == "x86_64-linux" then
fetchurl {
url = "http://s.insynchq.com/builds/insync-portable_${version}_amd64.tar.bz2";
sha256 = "0mkqgpq4isngkj20c0ygmxf4cj975d446svhwvl3cqdrjkjm1ybd";
sha256 = "1yz8l8xjr0pm30hvv4w59wzs569xzkpn8lv12pyl82r1l16h5zp3";
}
else
throw "${name} is not supported on ${stdenv.hostPlatform.system}";
18 changes: 9 additions & 9 deletions pkgs/applications/window-managers/dwm/dwm-status.nix
Original file line number Diff line number Diff line change
@@ -1,30 +1,30 @@
{ stdenv, lib, rustPlatform, fetchFromGitHub, dbus, gdk_pixbuf, libnotify, makeWrapper, pkgconfig, xorg
, enableAlsaUtils ? true, alsaUtils, bash, coreutils }:
, enableAlsaUtils ? true, alsaUtils, coreutils
, enableNetwork ? true, dnsutils, iproute, wirelesstools }:

let
binPath = stdenv.lib.makeBinPath [
alsaUtils bash coreutils
];
bins = lib.optionals enableAlsaUtils [ alsaUtils coreutils ]
++ lib.optionals enableNetwork [ dnsutils iproute wirelesstools ];
in

rustPlatform.buildRustPackage rec {
name = "dwm-status-${version}";
version = "1.5.0";
version = "1.6.0";

src = fetchFromGitHub {
owner = "Gerschtli";
repo = "dwm-status";
rev = version;
sha256 = "0mfzpyacd7i6ipbjwyl1zc0x3lnz0f4qqzsmsb07p047z95mw4v6";
sha256 = "02gvlxv6ylx4mdkf59crm2zyahiz1zd4cr5zz29dnhx7r7738i9a";
};

nativeBuildInputs = [ makeWrapper pkgconfig ];
buildInputs = [ dbus gdk_pixbuf libnotify xorg.libX11 ];

cargoSha256 = "1cngcacsbzijs55k4kz8fidki3p8jblk3v5s21hjsn4glzjdbkmm";
cargoSha256 = "1khknf1bjs80cc2n4jnpilf8cc15crykhhyvvff6q4ay40353gr6";

postInstall = lib.optionalString enableAlsaUtils ''
wrapProgram $out/bin/dwm-status --prefix "PATH" : "${binPath}"
postInstall = lib.optionalString (bins != []) ''
wrapProgram $out/bin/dwm-status --prefix "PATH" : "${stdenv.lib.makeBinPath bins}"
'';

meta = with stdenv.lib; {
5 changes: 2 additions & 3 deletions pkgs/data/icons/zafiro-icons/default.nix
Original file line number Diff line number Diff line change
@@ -1,15 +1,14 @@
{ stdenv, fetchFromGitHub, gtk3 }:

stdenv.mkDerivation rec {
name = "${pname}-${version}";
pname = "zafiro-icons";
version = "0.7.7";
version = "0.7.9";

src = fetchFromGitHub {
owner = "zayronxio";
repo = pname;
rev = "v${version}";
sha256 = "0471gf4s32dhcm3667l1bnam04jk4miw3c6s557vix59rih1y71p";
sha256 = "08cd4hcmhyrm91ps6j3c6jpwg5b9y635smnmrzgiz33iy2pa0qm7";
};

nativeBuildInputs = [ gtk3 ];
26 changes: 26 additions & 0 deletions pkgs/development/libraries/allegro/allegro4-mesa-18.2.5.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
--- a/addons/allegrogl/include/alleggl.h
+++ b/addons/allegrogl/include/alleggl.h
@@ -63,9 +63,11 @@ typedef __int64 INT64;
/* HACK: Prevent both Mesa and SGI's broken headers from screwing us */
#define __glext_h_
#define __glxext_h_
+#define __glx_glxext_h_
#include <GL/gl.h>
#undef __glext_h_
#undef __glxext_h_
+#undef __glx_glxext_h_

#endif /* ALLEGRO_MACOSX */

--- a/addons/allegrogl/include/allegrogl/GLext/glx_ext_defs.h
+++ b/addons/allegrogl/include/allegrogl/GLext/glx_ext_defs.h
@@ -1,7 +1,9 @@
/* HACK: Prevent both Mesa and SGI's broken headers from screwing us */
#define __glxext_h_
+#define __glx_glxext_h_
#include <GL/glx.h>
#undef __glxext_h_
+#undef __glx_glxext_h_

#ifndef GLX_VERSION_1_3
#define AGLX_VERSION_1_3
1 change: 1 addition & 0 deletions pkgs/development/libraries/allegro/default.nix
Original file line number Diff line number Diff line change
@@ -13,6 +13,7 @@ stdenv.mkDerivation rec {
};

patches = [
./allegro4-mesa-18.2.5.patch
./nix-unstable-sandbox-fix.patch
];

13 changes: 5 additions & 8 deletions pkgs/development/libraries/libs3/default.nix
Original file line number Diff line number Diff line change
@@ -1,26 +1,23 @@
{ stdenv, fetchFromGitHub, curl, libxml2 }:

stdenv.mkDerivation {
name = "libs3-2017-06-01";
name = "libs3-2018-12-03";

src = fetchFromGitHub {
owner = "bji";
repo = "libs3";
rev = "fd8b149044e429ad30dc4c918f0713cdd40aadd2";
sha256 = "0a4c9rsd3wildssvnvph6cd11adn0p3rd4l02z03lvxkjhm20gw3";
rev = "111dc30029f64bbf82031f3e160f253a0a63c119";
sha256 = "1ahf08hc7ql3fazfmlyj9vrhq7cvarsmgn2v8149y63zr1fl61hs";
};

buildInputs = [ curl libxml2 ];

# added to fix build with gcc7, review on update
NIX_CFLAGS_COMPILE = [ "-Wno-error=format-truncation" ];

DESTDIR = "\${out}";
makeFlags = [ "DESTDIR=$(out)" ];

meta = with stdenv.lib; {
homepage = https://github.com/bji/libs3;
description = "A library for interfacing with amazon s3";
license = licenses.lgpl3;
license = licenses.lgpl3Plus;
platforms = platforms.linux;
};
}
4 changes: 2 additions & 2 deletions pkgs/development/libraries/lmdb/default.nix
Original file line number Diff line number Diff line change
@@ -2,13 +2,13 @@

stdenv.mkDerivation rec {
name = "lmdb-${version}";
version = "0.9.22";
version = "0.9.23";

src = fetchFromGitHub {
owner = "LMDB";
repo = "lmdb";
rev = "LMDB_${version}";
sha256 = "0lng4ra2qrbqcf8klvqp68qarha0z4bkqhhv8lhh45agsxyrhfkj";
sha256 = "0ag7l5180ajvm73y59m7sn3p52xm8m972d08cshxhpwgwa4v35k6";
};

postUnpack = "sourceRoot=\${sourceRoot}/libraries/liblmdb";
2 changes: 1 addition & 1 deletion pkgs/development/libraries/science/math/mkl/default.nix
Original file line number Diff line number Diff line change
@@ -60,7 +60,7 @@ stdenvNoCC.mkDerivation rec {
outputHashAlgo = "sha256";
outputHashMode = "recursive";
outputHash = if stdenvNoCC.isDarwin
then "0000000000000000000000000000000000000000000000000000"
then "00d49ls9vcjan1ngq2wx2q4p6lnm05zwh67hsmj7bnq43ykrfibw"
else "1amagcaan0hk3x9v7gg03gkw02n066v4kmjb32yyzsy5rfrivb1a";

meta = with stdenvNoCC.lib; {
Loading