1
0
Fork 1
mirror of https://github.com/NixOS/nixpkgs.git synced 2024-11-22 21:50:55 +00:00

Merge master into staging-next

This commit is contained in:
github-actions[bot] 2021-06-10 12:05:05 +00:00 committed by GitHub
commit 51dce04dde
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
49 changed files with 1474 additions and 1355 deletions

View file

@ -28,7 +28,7 @@ One can create a simple environment using a `shell.nix` like that:
name = "simple-x11-env";
targetPkgs = pkgs: (with pkgs;
[ udev
alsaLib
alsa-lib
]) ++ (with pkgs.xorg;
[ libX11
libXcursor
@ -36,7 +36,7 @@ One can create a simple environment using a `shell.nix` like that:
]);
multiPkgs = pkgs: (with pkgs;
[ udev
alsaLib
alsa-lib
]);
runScript = "bash";
}).env

View file

@ -2683,6 +2683,16 @@
githubId = 10198051;
name = "Drew Risinger";
};
drupol = {
name = "Pol Dellaiera";
email = "pol.dellaiera@protonmail.com";
github = "drupol";
githubId = 252042;
keys = [{
longkeyid = "ed25519/0x0AAF2901E8040715";
fingerprint = "85F3 72DF 4AF3 EF13 ED34 72A3 0AAF 2901 E804 0715";
}];
};
dschrempf = {
name = "Dominik Schrempf";
email = "dominik.schrempf@gmail.com";

View file

@ -17,9 +17,9 @@ let
binary = "${getBin overriddenPackage}/bin/pulseaudio";
binaryNoDaemon = "${binary} --daemonize=no";
# Forces 32bit pulseaudio and alsaPlugins to be built/supported for apps
# Forces 32bit pulseaudio and alsa-plugins to be built/supported for apps
# using 32bit alsa on 64bit linux.
enable32BitAlsaPlugins = cfg.support32Bit && stdenv.isx86_64 && (pkgs.pkgsi686Linux.alsaLib != null && pkgs.pkgsi686Linux.libpulseaudio != null);
enable32BitAlsaPlugins = cfg.support32Bit && stdenv.isx86_64 && (pkgs.pkgsi686Linux.alsa-lib != null && pkgs.pkgsi686Linux.libpulseaudio != null);
myConfigFile =
@ -62,18 +62,18 @@ let
# plugin.
alsaConf = writeText "asound.conf" (''
pcm_type.pulse {
libs.native = ${pkgs.alsaPlugins}/lib/alsa-lib/libasound_module_pcm_pulse.so ;
libs.native = ${pkgs.alsa-plugins}/lib/alsa-lib/libasound_module_pcm_pulse.so ;
${lib.optionalString enable32BitAlsaPlugins
"libs.32Bit = ${pkgs.pkgsi686Linux.alsaPlugins}/lib/alsa-lib/libasound_module_pcm_pulse.so ;"}
"libs.32Bit = ${pkgs.pkgsi686Linux.alsa-plugins}/lib/alsa-lib/libasound_module_pcm_pulse.so ;"}
}
pcm.!default {
type pulse
hint.description "Default Audio Device (via PulseAudio)"
}
ctl_type.pulse {
libs.native = ${pkgs.alsaPlugins}/lib/alsa-lib/libasound_module_ctl_pulse.so ;
libs.native = ${pkgs.alsa-plugins}/lib/alsa-lib/libasound_module_ctl_pulse.so ;
${lib.optionalString enable32BitAlsaPlugins
"libs.32Bit = ${pkgs.pkgsi686Linux.alsaPlugins}/lib/alsa-lib/libasound_module_ctl_pulse.so ;"}
"libs.32Bit = ${pkgs.pkgsi686Linux.alsa-plugins}/lib/alsa-lib/libasound_module_ctl_pulse.so ;"}
}
ctl.!default {
type pulse

View file

@ -5,7 +5,7 @@ with lib;
let
inherit (pkgs) alsaUtils;
inherit (pkgs) alsa-utils;
pulseaudioEnabled = config.hardware.pulseaudio.enable;
@ -88,13 +88,13 @@ in
config = mkIf config.sound.enable {
environment.systemPackages = [ alsaUtils ];
environment.systemPackages = [ alsa-utils ];
environment.etc = mkIf (!pulseaudioEnabled && config.sound.extraConfig != "")
{ "asound.conf".text = config.sound.extraConfig; };
# ALSA provides a udev rule for restoring volume settings.
services.udev.packages = [ alsaUtils ];
services.udev.packages = [ alsa-utils ];
boot.kernelModules = optional config.sound.enableOSSEmulation "snd_pcm_oss";
@ -107,7 +107,7 @@ in
Type = "oneshot";
RemainAfterExit = true;
ExecStart = "${pkgs.coreutils}/bin/mkdir -p /var/lib/alsa";
ExecStop = "${alsaUtils}/sbin/alsactl store --ignore";
ExecStop = "${alsa-utils}/sbin/alsactl store --ignore";
};
};
@ -115,16 +115,16 @@ in
enable = true;
bindings = [
# "Mute" media key
{ keys = [ 113 ]; events = [ "key" ]; command = "${alsaUtils}/bin/amixer -q set Master toggle"; }
{ keys = [ 113 ]; events = [ "key" ]; command = "${alsa-utils}/bin/amixer -q set Master toggle"; }
# "Lower Volume" media key
{ keys = [ 114 ]; events = [ "key" "rep" ]; command = "${alsaUtils}/bin/amixer -q set Master ${config.sound.mediaKeys.volumeStep}- unmute"; }
{ keys = [ 114 ]; events = [ "key" "rep" ]; command = "${alsa-utils}/bin/amixer -q set Master ${config.sound.mediaKeys.volumeStep}- unmute"; }
# "Raise Volume" media key
{ keys = [ 115 ]; events = [ "key" "rep" ]; command = "${alsaUtils}/bin/amixer -q set Master ${config.sound.mediaKeys.volumeStep}+ unmute"; }
{ keys = [ 115 ]; events = [ "key" "rep" ]; command = "${alsa-utils}/bin/amixer -q set Master ${config.sound.mediaKeys.volumeStep}+ unmute"; }
# "Mic Mute" media key
{ keys = [ 190 ]; events = [ "key" ]; command = "${alsaUtils}/bin/amixer -q set Capture toggle"; }
{ keys = [ 190 ]; events = [ "key" ]; command = "${alsa-utils}/bin/amixer -q set Capture toggle"; }
];
};

View file

@ -8,7 +8,7 @@ let
pcmPlugin = cfg.jackd.enable && cfg.alsa.enable;
loopback = cfg.jackd.enable && cfg.loopback.enable;
enable32BitAlsaPlugins = cfg.alsa.support32Bit && pkgs.stdenv.isx86_64 && pkgs.pkgsi686Linux.alsaLib != null;
enable32BitAlsaPlugins = cfg.alsa.support32Bit && pkgs.stdenv.isx86_64 && pkgs.pkgsi686Linux.alsa-lib != null;
umaskNeeded = versionOlder cfg.jackd.package.version "1.9.12";
bridgeNeeded = versionAtLeast cfg.jackd.package.version "1.9.12";
@ -129,9 +129,9 @@ in {
(mkIf pcmPlugin {
sound.extraConfig = ''
pcm_type.jack {
libs.native = ${pkgs.alsaPlugins}/lib/alsa-lib/libasound_module_pcm_jack.so ;
libs.native = ${pkgs.alsa-plugins}/lib/alsa-lib/libasound_module_pcm_jack.so ;
${lib.optionalString enable32BitAlsaPlugins
"libs.32Bit = ${pkgs.pkgsi686Linux.alsaPlugins}/lib/alsa-lib/libasound_module_pcm_jack.so ;"}
"libs.32Bit = ${pkgs.pkgsi686Linux.alsa-plugins}/lib/alsa-lib/libasound_module_pcm_jack.so ;"}
}
pcm.!default {
@func getenv
@ -234,7 +234,7 @@ in {
environment = {
systemPackages = [ cfg.jackd.package ];
etc."alsa/conf.d/50-jack.conf".source = "${pkgs.alsaPlugins}/etc/alsa/conf.d/50-jack.conf";
etc."alsa/conf.d/50-jack.conf".source = "${pkgs.alsa-plugins}/etc/alsa/conf.d/50-jack.conf";
variables.JACK_PROMISCUOUS_SERVER = "jackaudio";
};

View file

@ -75,7 +75,7 @@ in
type = types.listOf (types.submodule bindingCfg);
default = [];
example = lib.literalExample ''
[ { keys = [ 113 ]; events = [ "key" ]; command = "''${pkgs.alsaUtils}/bin/amixer -q set Master toggle"; }
[ { keys = [ 113 ]; events = [ "key" ]; command = "''${pkgs.alsa-utils}/bin/amixer -q set Master toggle"; }
]
'';
description = ''

View file

@ -198,6 +198,7 @@ in
environment.systemPackages = (with pkgs // pkgs.gnome // pkgs.cinnamon; pkgs.gnome.removePackagesByName [
# cinnamon team apps
bulky
blueberry
warpinator

View file

@ -46,7 +46,7 @@ import ./make-test-python.nix ({ pkgs, esr ? false, ... }: {
systemd.services.audio-recorder = {
description = "Record NixOS test audio to /tmp/record.wav";
script = "${pkgs.alsaUtils}/bin/arecord -D recorder -f S16_LE -r48000 /tmp/record.wav";
script = "${pkgs.alsa-utils}/bin/arecord -D recorder -f S16_LE -r48000 /tmp/record.wav";
};
};

View file

@ -3,14 +3,14 @@
let
versions = {
atom = {
version = "1.54.0";
sha256 = "sha256-21AURgomEjuiTzeJ4MIx0mkyVi0b0mVdmFsFGNLXRP4";
version = "1.57.0";
sha256 = "1jzxjvaljk8p3gzjvs5bn3d128x37pcgn6by7srhs9qclc5j2664";
};
atom-beta = {
version = "1.55.0";
version = "1.58.0";
beta = 0;
sha256 = "sha256-PICkTt54cPkDJVnXBTtSHUQVbmosOpZfVAiD5A3/n+Q=";
sha256 = "0amhilmpiwn2jfn0nrcrhzminqdp3xm5p3w3ldc3qk761pn3lbpd";
broken = true;
};
};

View file

@ -1,7 +1,7 @@
{ stdenv, lib, zlib, glib, alsa-lib, dbus, gtk3, atk, pango, freetype, fontconfig
, libgnome-keyring3, gdk-pixbuf, cairo, cups, expat, libgpgerror, nspr
, gconf, nss, xorg, libcap, systemd, libnotify, libsecret, libuuid, at-spi2-atk
, at-spi2-core, libdbusmenu, mesa
, at-spi2-core, libdbusmenu, libdrm, mesa
}:
let
@ -12,6 +12,7 @@ let
xorg.libXcomposite xorg.libXi xorg.libXfixes xorg.libXrandr
xorg.libXcursor xorg.libxkbfile xorg.libXScrnSaver libcap systemd libnotify
xorg.libxcb libsecret libuuid at-spi2-atk at-spi2-core libdbusmenu
libdrm
mesa # required for libgbm
];

View file

@ -62,6 +62,8 @@ mkChromiumDerivation (base: rec {
-e '/\[Desktop Entry\]/a\' \
-e 'StartupWMClass=chromium-browser' \
$out/share/applications/chromium-browser.desktop
'' + lib.optionalString (channel == "dev") ''
cp -v "$buildPath/crashpad_handler" "$libExecPath/"
'';
passthru = { inherit sandboxExecutableName; };

View file

@ -27,7 +27,7 @@ for entry in feed.entries:
print('\n' + url)
if fixes := re.search(r'This update includes .+ security fixes\.', content):
fixes = html_tags.sub('', fixes.group(0))
zero_days = re.search(r'Google is aware of reports that .+ in the wild\.', content)
zero_days = re.search(r'Google is aware( of reports)? that .+ in the wild\.', content)
if zero_days:
fixes += " " + zero_days.group(0)
print('\n' + '\n'.join(textwrap.wrap(fixes, width=72)))

View file

@ -1,6 +1,3 @@
# Compiler in stdenv MUST be a supported one for official branding
# See https://developer.palemoon.org/build/linux/
# TODO assert if stdenv.cc is supported?
{ stdenv
, lib
, fetchFromGitHub
@ -37,6 +34,15 @@
, gtk3
}:
# Only specific GCC versions are supported with branding
# https://developer.palemoon.org/build/linux/
assert stdenv.cc.isGNU;
assert with lib.strings; (
versionAtLeast stdenv.cc.version "4.9"
&& !hasPrefix "6" stdenv.cc.version
&& versionOlder stdenv.cc.version "11"
);
let
libPath = lib.makeLibraryPath [
ffmpeg
@ -46,14 +52,14 @@ let
in
stdenv.mkDerivation rec {
pname = "palemoon";
version = "29.2.0";
version = "29.2.1";
src = fetchFromGitHub {
githubBase = "repo.palemoon.org";
owner = "MoonchildProductions";
repo = "Pale-Moon";
rev = "${version}_Release";
sha256 = "0pa9j41bbfarwi60a6hxi5vpn52mwgr4p05l98acv4fcs1ccb427";
sha256 = "0djjl79jrnny16p32db5w7pwwv0a24dc8mg1s1bnavhlvmmk52vq";
fetchSubmodules = true;
};
@ -142,7 +148,6 @@ stdenv.mkDerivation rec {
ac_add_options --enable-jemalloc
ac_add_options --enable-strip
ac_add_options --enable-devtools
# Missing from build instructions, https://forum.palemoon.org/viewtopic.php?f=5&t=25843#p214767
ac_add_options --enable-av1
ac_add_options --disable-eme
@ -188,7 +193,7 @@ stdenv.mkDerivation rec {
./mach install
# Fix missing icon due to wrong WMClass
# TODO report upstream
# https://forum.palemoon.org/viewtopic.php?f=3&t=26746&p=214221#p214221
substituteInPlace ./palemoon/branding/official/palemoon.desktop \
--replace 'StartupWMClass="pale moon"' 'StartupWMClass=Pale moon'
desktop-file-install --dir=$out/share/applications \
@ -202,7 +207,7 @@ stdenv.mkDerivation rec {
done
# Remove unneeded SDK data from installation
# TODO: move to a separate output?
# https://forum.palemoon.org/viewtopic.php?f=37&t=26796&p=214676#p214729
rm -rf $out/{include,share/idl,lib/palemoon-devel-${version}}
runHook postInstall
@ -231,6 +236,7 @@ stdenv.mkDerivation rec {
extensions and themes to make the browser truly your own.
'';
homepage = "https://www.palemoon.org/";
changelog = "https://repo.palemoon.org/MoonchildProductions/Pale-Moon/releases/tag/${version}_Release";
license = licenses.mpl20;
maintainers = with maintainers; [ AndersonTorres OPNA2608 ];
platforms = [ "i686-linux" "x86_64-linux" ];

View file

@ -2,13 +2,13 @@
mkYarnPackage rec {
pname = "vieb";
version = "5.0.0";
version = "5.1.0";
src = fetchFromGitHub {
owner = "jelmerro";
repo = pname;
rev = version;
sha256 = "sha256-0fbH2tmrgbu/XQg1piK9f56cow+R/Qe6bYMdbeV/mus=";
sha256 = "sha256-0C2gD40nPgEZopGMPsd5ajwcwFRjcu4Xc2DTpEwSK4c=";
};
packageJSON = ./package.json;

View file

@ -1,7 +1,7 @@
{
"name": "vieb",
"productName": "Vieb",
"version": "5.0.0",
"version": "5.1.0",
"description": "Vim Inspired Electron Browser",
"bin": "app.js",
"main": "app/index.js",
@ -30,18 +30,18 @@
"license": "GPL-3.0-or-later",
"devDependencies": {
"archiver": "5.3.0",
"electron": "13.0.1",
"electron-builder": "22.10.5",
"eslint": "7.27.0",
"eslint-plugin-compat": "^3.9.0",
"electron": "13.1.1",
"electron-builder": "22.11.5",
"eslint": "7.28.0",
"eslint-plugin-compat": "3.9.0",
"eslint-plugin-sort-keys-fix": "1.1.1",
"jest-environment-jsdom": "^27.0.1",
"jest": "27.0.1"
"jest-environment-jsdom": "27.0.3",
"jest": "27.0.4"
},
"dependencies": {
"7zip-bin": "5.1.1",
"@cliqz/adblocker-electron": "1.20.6",
"@cliqz/adblocker-electron-preload": "1.20.6",
"@cliqz/adblocker-electron": "1.22.1",
"@cliqz/adblocker-electron-preload": "1.22.1",
"is-svg": "4.3.1",
"rimraf": "3.0.2"
},

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "git-filter-repo";
version = "2.29.0";
version = "2.32.0";
src = fetchurl {
url = "https://github.com/newren/git-filter-repo/releases/download/v${version}/${pname}-${version}.tar.xz";
sha256 = "00nn7k9jqrybb762486fmigsnbcn9lbvimgpfvvarz4ikdp9y9pb";
sha256 = "sha256-CztFSyeKM9Bmcf0eSrLHH3vHGepd8WXPvcAACT+vFps=";
};
buildInputs = [ pythonPackages.python ];

View file

@ -91,7 +91,7 @@ rec {
nixFromDockerHub = pullImage {
imageName = "nixos/nix";
imageDigest = "sha256:85299d86263a3059cf19f419f9d286cc9f06d3c13146a8ebbb21b3437f598357";
sha256 = "07q9y9r7fsd18sy95ybrvclpkhlal12d30ybnf089hq7v1hgxbi7";
sha256 = "19fw0n3wmddahzr20mhdqv6jkjn1kanh6n2mrr08ai53dr8ph5n7";
finalImageTag = "2.2.1";
finalImageName = "nix";
};

View file

@ -0,0 +1,28 @@
{ stdenv
, fetchurl
, lib
}:
stdenv.mkDerivation rec {
pname = "common-licenses";
version = "11.1";
src = fetchurl {
url = "http://deb.debian.org/debian/pool/main/b/base-files/base-files_${version}.tar.xz";
sha256 = "1i3hgd9vs14k819k441iibcgmi2zavnpqbnppyn2cz70kd830nbm";
};
installPhase = ''
mkdir -p $out/share
cp -r licenses $out/share/common-licenses
cat debian/base-files.links | grep common-licenses | sed -e "s|usr|$out|g" -e "s|^|ln -s |g" | bash -x
'';
meta = with lib; {
description = "common-licenses extracted from debian base-files package";
homepage = "https://tracker.debian.org/pkg/base-files";
license = licenses.gpl2Plus;
platforms = platforms.linux;
maintainers = [ maintainers.mkg20001 ];
};
}

View file

@ -0,0 +1,60 @@
{ stdenv
, lib
, fetchFromGitHub
, wrapGAppsHook
, python3
, gsettings-desktop-schemas
, gettext
, gtk3
, glib
, common-licenses
}:
stdenv.mkDerivation rec {
pname = "bulky";
version = "1.1";
src = fetchFromGitHub {
owner = "linuxmint";
repo = "bulky";
rev = version;
sha256 = "NBlP10IM/+u8IRds4bdFyGWg3pJLRmlSLsdlndMVQqg=";
};
nativeBuildInputs = [
wrapGAppsHook
gsettings-desktop-schemas
gettext
];
buildInputs = [
(python3.withPackages(p: with p; [ pygobject3 magic setproctitle ]))
gsettings-desktop-schemas
gtk3
glib
];
postPatch = ''
substituteInPlace usr/lib/bulky/bulky.py \
--replace "/usr/share/locale" "$out/share/locale" \
--replace /usr/share/bulky "$out/share/bulky" \
--replace /usr/share/common-licenses "${common-licenses}/share/common-licenses" \
--replace __DEB_VERSION__ "${version}"
'';
installPhase = ''
runHook preInstall
chmod +x usr/share/applications/*
cp -ra usr $out
ln -sf $out/lib/bulky/bulky.py $out/bin/bulky
runHook postInstall
'';
meta = with lib; {
description = "Bulk rename app";
homepage = "https://github.com/linuxmint/bulky";
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = [ maintainers.mkg20001 ];
};
}

View file

@ -15,6 +15,7 @@
, cinnamon-session
, cinnamon-settings-daemon
, cinnamon-common
, bulky
}:
let
@ -24,6 +25,7 @@ let
mint-artwork
# on
bulky
muffin
nemo
xapps

View file

@ -13,6 +13,7 @@ lib.makeScope pkgs.newScope (self: with self; {
});
# blueberry -> pkgs/tools/bluetooth/blueberry/default.nix
bulky = callPackage ./bulky {};
cinnamon-common = callPackage ./cinnamon-common { };
cinnamon-control-center = callPackage ./cinnamon-control-center { };
cinnamon-desktop = callPackage ./cinnamon-desktop { };

View file

@ -2,12 +2,12 @@
stdenv.mkDerivation {
pname = "libubox";
version = "unstable-2020-01-20";
version = "unstable-2021-03-09";
src = fetchgit {
url = "https://git.openwrt.org/project/libubox.git";
rev = "43a103ff17ee5872669f8712606578c90c14591d";
sha256 = "0cihgckghamcfxrvqjjn69giib80xhsqaj98ldn0gd96zqh96sd4";
rev = "551d75b5662cccd0466b990d58136bdf799a804d";
sha256 = "05cnjjqjv9nvrs1d8pg4xxxf27jryiv6xk8plmdpmm7r2wkvwn3r";
};
cmakeFlags = [ "-DBUILD_LUA=OFF" "-DBUILD_EXAMPLES=OFF" ];

View file

@ -2,22 +2,22 @@
stdenv.mkDerivation {
pname = "ubus";
version = "unstable-2020-01-05";
version = "unstable-2021-02-15";
src = fetchgit {
url = "https://git.openwrt.org/project/ubus.git";
rev = "d35df8adda873dc75d876f72b78e84db8cfa72ee";
sha256 = "1ksrih5vfyixaafzsrs6ab88qw34d0197wvw201jl5p1fc7drgn4";
rev = "2537be01858710e714c329153760c64fe3f8a73e";
sha256 = "03ljxsn4w87bfrilccxhrkzqmd30hy6ihkvsinw0i3l7rpp5m4a7";
};
cmakeFlags = [ "-D BUILD_LUA:BOOL=OFF" ];
cmakeFlags = [ "-DBUILD_LUA=OFF" ];
buildInputs = [ libubox libjson ];
nativeBuildInputs = [ cmake ];
meta = with lib; {
description = "OpenWrt system message/RPC bus";
homepage = "https://git.openwrt.org/?p=project/ubus.git;a=summary";
license = licenses.lgpl21;
license = licenses.lgpl21Only;
platforms = platforms.all;
maintainers = with maintainers; [ petabyteboy ];
};

View file

@ -2,23 +2,23 @@
stdenv.mkDerivation {
pname = "uci";
version = "unstable-2020-04-27";
version = "unstable-2021-04-14";
src = fetchgit {
url = "https://git.openwrt.org/project/uci.git";
rev = "ec8d3233948603485e1b97384113fac9f1bab5d6";
sha256 = "0p765l8znvwhzhgkq7dp36w62k5rmzav59vgdqmqq1bjmlz1yyi6";
rev = "4b3db1179747b6a6779029407984bacef851325c";
sha256 = "1zflxazazzkrycpflzfg420kzp7kgy4dlz85cms279vk07dc1d52";
};
hardeningDisable = [ "all" ];
cmakeFlags = [ "-D BUILD_LUA:BOOL=OFF" ];
cmakeFlags = [ "-DBUILD_LUA=OFF" ];
buildInputs = [ libubox ];
nativeBuildInputs = [ cmake pkg-config ];
meta = with lib; {
description = "OpenWrt Unified Configuration Interface";
homepage = "https://git.openwrt.org/?p=project/uci.git;a=summary";
license = licenses.lgpl21;
license = licenses.lgpl21Only;
platforms = platforms.all;
maintainers = with maintainers; [ petabyteboy ];
};

View file

@ -1,14 +1,14 @@
{ mkDerivation, fetchurl, makeWrapper, unzip, lib, php }:
let
pname = "composer";
version = "2.1.2";
version = "2.1.3";
in
mkDerivation {
inherit pname version;
src = fetchurl {
url = "https://getcomposer.org/download/${version}/composer.phar";
sha256 = "0gd4hxkxdds3nxpbcd38chrkijha31p6nygdq3f73mbb984h3v1d";
sha256 = "04ad2zsnf8qi6hzs9sak6y8xxyx8l0f7crmcimnp7nn8vsc2x9zq";
};
dontUnpack = true;

View file

@ -2,11 +2,11 @@
buildPythonPackage rec {
pname = "bitarray";
version = "2.0.1";
version = "2.1.0";
src = fetchPypi {
inherit pname version;
sha256 = "sha256-7DpPbXEaee0jrqlUFjjTNT3D8IPyk6ExgLFLSC4+Ge8=";
sha256 = "sha256-lyJKGTJezuSaO/TfPuBTHTr5zyiLZ9CJp+9Eo8TqODk=";
};
checkPhase = ''

View file

@ -13,11 +13,11 @@
buildPythonPackage rec {
pname = "boto3";
version = "1.17.52"; # N.B: if you change this, change botocore and awscli to a matching version
version = "1.17.88"; # N.B: if you change this, change botocore and awscli to a matching version
src = fetchPypi {
inherit pname version;
sha256 = "sha256-7WQMF8l68om+RpN0DBy/laRW6cSV45c6Htb1GjloRtI=";
sha256 = "sha256-pxXKbERX1W6j4+/em9yL5BwpsvKpBPvRK+/bnLXiieQ=";
};
propagatedBuildInputs = [ botocore jmespath s3transfer ] ++ lib.optionals (!isPy3k) [ futures ];

View file

@ -13,11 +13,11 @@
buildPythonPackage rec {
pname = "botocore";
version = "1.20.52"; # N.B: if you change this, change boto3 and awscli to a matching version
version = "1.20.88"; # N.B: if you change this, change boto3 and awscli to a matching version
src = fetchPypi {
inherit pname version;
sha256 = "sha256-3V9YCOxIqZm5Y0s4etarehojuh+XEqh1Bm0jSAj4qmI=";
sha256 = "sha256-vJie2rUtR4iq3Y0a/5JfXGp8vGiQC/2443mWWurBcxc=";
};
propagatedBuildInputs = [

View file

@ -5,6 +5,7 @@
, asgi-csrf
, click
, click-default-group
, itsdangerous
, janus
, jinja2
, hupper
@ -17,56 +18,62 @@
, httpx
# Check Inputs
, pytestCheckHook
, pytestrunner
, pytest-runner
, pytest-asyncio
, pytest-timeout
, aiohttp
, beautifulsoup4
, asgiref
, setuptools
, trustme
, pythonOlder
}:
buildPythonPackage rec {
pname = "datasette";
version = "0.54.1";
version = "0.57.1";
disabled = pythonOlder "3.6";
src = fetchFromGitHub {
owner = "simonw";
repo = "datasette";
repo = pname;
rev = version;
sha256 = "sha256-Ixh56X9dI/FIJPXHXXGnFiYj3qeBmvW5L1FF7/0ofUQ=";
sha256 = "sha256-BHsf3GOganPhsDiZlRxvAsRZH/Sq+Jr+CZcc2ubce+8=";
};
nativeBuildInputs = [ pytestrunner ];
nativeBuildInputs = [ pytest-runner ];
propagatedBuildInputs = [
aiofiles
asgi-csrf
asgiref
click
click-default-group
httpx
hupper
itsdangerous
janus
jinja2
hupper
mergedeep
pint
pluggy
python-baseconv
pyyaml
uvicorn
setuptools
httpx
asgiref
uvicorn
];
checkInputs = [
pytestCheckHook
pytest-asyncio
aiohttp
beautifulsoup4
pytest-asyncio
pytest-timeout
pytestCheckHook
trustme
];
postConfigure = ''
substituteInPlace setup.py \
--replace "click~=7.1.1" "click" \
--replace "click-default-group~=1.2.2" "click-default-group" \
--replace "hupper~=1.9" "hupper" \
--replace "pint~=0.9" "pint" \
@ -75,12 +82,13 @@ buildPythonPackage rec {
--replace "PyYAML~=5.3" "PyYAML"
'';
# takes 30-180 mins to run entire test suite, not worth the cpu resources, slows down reviews
# with pytest-xdist, it still takes around 10mins with 32 cores
# takes 30-180 mins to run entire test suite, not worth the CPU resources, slows down reviews
# with pytest-xdist, it still takes around 10 mins with 32 cores
# just run the csv tests, as this should give some indictation of correctness
pytestFlagsArray = [
"tests/test_csv.py"
];
disabledTests = [
"facet"
"_invalid_database" # checks error message when connecting to invalid database
@ -97,10 +105,9 @@ buildPythonPackage rec {
];
meta = with lib; {
description = "An instant JSON API for your SQLite databases";
homepage = "https://github.com/simonw/datasette";
description = "Multi-tool for exploring and publishing data";
homepage = "https://datasette.io/";
license = licenses.asl20;
maintainers = [ maintainers.costrouc ];
};
}

View file

@ -1,7 +1,7 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
, isPy27
, pythonOlder
, w3lib
, parsel
, jmespath
@ -12,8 +12,7 @@
buildPythonPackage rec {
pname = "itemloaders";
version = "1.0.4";
disabled = isPy27;
disabled = pythonOlder "3.6";
# Tests not included in PyPI tarball
src = fetchFromGitHub {
@ -27,6 +26,14 @@ buildPythonPackage rec {
checkInputs = [ pytestCheckHook ];
disabledTests = [
# Test are failing (AssertionError: Lists differ: ...)
"test_nested_css"
"test_nested_xpath"
];
pythonImportsCheck = [ "itemloaders" ];
meta = with lib; {
description = "Base library for scrapy's ItemLoader";
homepage = "https://github.com/scrapy/itemloaders";

View file

@ -2,13 +2,13 @@
buildPythonPackage rec {
pname = "jsonstreams";
version = "0.5.0";
version = "0.6.0";
src = fetchFromGitHub {
owner = "dcbaker";
repo = pname;
rev = version;
sha256 = "0c85fdqkj5k4b0v0ngx2d9qbmzdsvglh4j9k9h7508bvn7l8fa4b";
sha256 = "0qw74wz9ngz9wiv89vmilbifsbvgs457yn1bxnzhrh7g4vs2wcav";
};
propagatedBuildInputs = [ six ];

View file

@ -14,14 +14,14 @@
buildPythonPackage rec {
pname = "mypy-boto3-builder";
version = "4.12.0";
version = "4.14.1";
disabled = pythonOlder "3.6";
src = fetchFromGitHub {
owner = "vemel";
repo = "mypy_boto3_builder";
rev = version;
sha256 = "09kbmrpnph5kbxlqqavpxg3l85dmk3vzmwawa4s09y9gknxxkcv9";
sha256 = "sha256-y55bPi70ldd528Olr2atXHm5JHiLNBZ396D9qwbBmkc=";
};
propagatedBuildInputs = [

View file

@ -8,12 +8,12 @@
buildPythonPackage rec {
pname = "mypy-boto3-s3";
version = "1.17.71";
version = "1.17.88";
disabled = pythonOlder "3.6";
src = fetchPypi {
inherit pname version;
sha256 = "0zgx3f41j80xy203jwms7j72svxy10ry5v9w3ql817ai4lcrspnn";
sha256 = "sha256-ba7ohsScaag3tDnUbs1eWYO/YSWcgJlo9VpkdU40x5o=";
};
propagatedBuildInputs = [

View file

@ -1,14 +1,13 @@
{ lib
, buildPythonPackage
, cssselect
, fetchPypi
, pytest
, pytestrunner
, functools32
, isPy27
, lxml
, pytestCheckHook
, six
, w3lib
, lxml
, cssselect
, isPy27
}:
buildPythonPackage rec {
@ -20,17 +19,47 @@ buildPythonPackage rec {
sha256 = "0yawf9r3r863lwxj0n89i7h3n8xjbsl5b7n6xg76r68scl5yzvvh";
};
checkInputs = [ pytest pytestrunner ];
propagatedBuildInputs = [ six w3lib lxml cssselect ] ++ lib.optionals isPy27 [ functools32 ];
propagatedBuildInputs = [
cssselect
lxml
six
w3lib
] ++ lib.optionals isPy27 [
functools32
];
checkPhase = ''
py.test
checkInputs = [
pytestCheckHook
];
postPatch = ''
substituteInPlace setup.py \
--replace "'pytest-runner'," ""
'';
disabledTests = [
# Test are out-dated and are failing (AssertionError: Lists differ: ...)
# https://github.com/scrapy/parsel/pull/174
"test_differences_parsing_xml_vs_html"
"test_nested_selectors"
"test_re"
"test_replacement_null_char_from_body"
"test_select_on_text_nodes"
"test_selector_get_alias"
"test_selector_getall_alias"
"test_selector_over_text"
"test_selectorlist_get_alias"
"test_selectorlist_getall_alias"
"test_slicing"
"test_text_pseudo_element"
];
pythonImportsCheck = [ "parsel" ];
meta = with lib; {
homepage = "https://github.com/scrapy/parsel";
description = "Parsel is a library to extract data from HTML and XML using XPath and CSS selectors";
description = "Python library to extract data from HTML and XML using XPath and CSS selectors";
license = licenses.bsd3;
maintainers = with maintainers; [ fab ];
};
}

View file

@ -0,0 +1,28 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
}:
buildPythonPackage rec {
pname = "pynobo";
version = "1.2.0";
src = fetchFromGitHub {
owner = "echoromeo";
repo = pname;
rev = "v${version}";
sha256 = "0f98qm9vp7f0hqaxhihv7y5swciyp60222la44f4936g0rvs005x";
};
# Project has no tests
doCheck = false;
pythonImportsCheck = [ "pynobo" ];
meta = with lib; {
description = "Python 3 TCP/IP interface for Nobo Hub/Nobo Energy Control devices";
homepage = "https://github.com/echoromeo/pynobo";
license = with licenses; [ gpl3Plus ];
maintainers = with maintainers; [ fab ];
};
}

View file

@ -14,11 +14,11 @@
buildPythonPackage rec {
pname = "s3transfer";
version = "0.3.6";
version = "0.4.2";
src = fetchPypi {
inherit pname version;
sha256 = "c5dadf598762899d8cfaecf68eba649cd25b0ce93b6c954b156aaa3eed160547";
sha256 = "sha256-ywIvSxZVHt67sxo3fT8JYA262nNj2MXbeXbn9Hcy4bI=";
};
propagatedBuildInputs =

View file

@ -1,64 +1,89 @@
{ lib
, stdenv
, buildPythonPackage
, isPy27
, fetchPypi
, glibcLocales
, pytestCheckHook
, testfixtures
, pillow
, twisted
, cryptography
, w3lib
, lxml
, queuelib
, pyopenssl
, service-identity
, parsel
, pydispatcher
, cssselect
, zope_interface
, protego
, jmespath
, sybil
, pytest-twisted
, botocore
, buildPythonPackage
, cryptography
, cssselect
, fetchFromGitHub
, fetchpatch
, glibcLocales
, installShellFiles
, itemadapter
, itemloaders
, jmespath
, lxml
, parsel
, pillow
, protego
, pydispatcher
, pyopenssl
, pytest-twisted
, pytestCheckHook
, pythonOlder
, queuelib
, service-identity
, sybil
, testfixtures
, twisted
, w3lib
, zope_interface
}:
buildPythonPackage rec {
version = "2.4.1";
pname = "Scrapy";
pname = "scrapy";
version = "2.5.0";
disabled = pythonOlder "3.6";
disabled = isPy27;
src = fetchFromGitHub {
owner = pname;
repo = pname;
rev = version;
sha256 = "09lxnjz1cw37i9bgk8sci2xxknj20gi2lq8l7i0b3xw7q8bxzp7h";
};
nativeBuildInputs = [
installShellFiles
];
propagatedBuildInputs = [
cryptography
cssselect
itemadapter
itemloaders
lxml
parsel
protego
pydispatcher
pyopenssl
queuelib
service-identity
twisted
w3lib
zope_interface
];
checkInputs = [
botocore
glibcLocales
jmespath
pytestCheckHook
sybil
testfixtures
pillow
pytest-twisted
botocore
];
propagatedBuildInputs = [
twisted
cryptography
cssselect
lxml
parsel
pydispatcher
pyopenssl
queuelib
service-identity
w3lib
zope_interface
protego
itemadapter
itemloaders
patches = [
# Require setuptools, https://github.com/scrapy/scrapy/pull/5122
(fetchpatch {
name = "add-setuptools.patch";
url = "https://github.com/scrapy/scrapy/commit/4f500342c8ad4674b191e1fab0d1b2ac944d7d3e.patch";
sha256 = "14030sfv1cf7dy4yww02b49mg39cfcg4bv7ys1iwycfqag3xcjda";
})
# Make Twisted[http2] installation optional, https://github.com/scrapy/scrapy/pull/5113
(fetchpatch {
name = "remove-h2.patch";
url = "https://github.com/scrapy/scrapy/commit/c5b1ee810167266fcd259f263dbfc0fe0204761a.patch";
sha256 = "1gw28wg8qcb0al59rz214hm17smspi6j5kg62nr1r850pykyrsqk";
})
];
LC_ALL = "en_US.UTF-8";
@ -68,39 +93,48 @@ buildPythonPackage rec {
substituteInPlace pytest.ini --replace "--doctest-modules" ""
'';
pytestFlagsArray = [
"--ignore=tests/test_proxy_connect.py"
"--ignore=tests/test_utils_display.py"
"--ignore=tests/test_command_check.py"
disabledTestPaths = [
"tests/test_proxy_connect.py"
"tests/test_utils_display.py"
"tests/test_command_check.py"
# Don't test the documentation
"docs"
];
disabledTests = [
# It's unclear if the failures are related to libxml2, https://github.com/NixOS/nixpkgs/pull/123890
"test_nested_css"
"test_nested_xpath"
"test_flavor_detection"
# Requires network access
"FTPFeedStorageTest"
"test_noconnect"
"test_retry_dns_error"
"FeedExportTest"
"test_custom_asyncio_loop_enabled_true"
"test_custom_loop_asyncio"
"test_custom_loop_asyncio_deferred_signal"
"FileFeedStoragePreFeedOptionsTest" # https://github.com/scrapy/scrapy/issues/5157
] ++ lib.optionals stdenv.isDarwin [
"test_xmliter_encoding"
"test_download"
];
src = fetchPypi {
inherit pname version;
sha256 = "68c48f01a58636bdf0f6fcd5035a19ecf277b58af24bd70c36dc6e556df3e005";
};
postInstall = ''
install -m 644 -D extras/scrapy.1 $out/share/man/man1/scrapy.1
installManPage extras/scrapy.1
install -m 644 -D extras/scrapy_bash_completion $out/share/bash-completion/completions/scrapy
install -m 644 -D extras/scrapy_zsh_completion $out/share/zsh/site-functions/_scrapy
'';
pythonImportsCheck = [ "scrapy" ];
__darwinAllowLocalNetworking = true;
meta = with lib; {
description = "A fast high-level web crawling and web scraping framework, used to crawl websites and extract structured data from their pages";
description = "High-level web crawling and web scraping framework";
longDescription = ''
Scrapy is a fast high-level web crawling and web scraping framework, used to crawl
websites and extract structured data from their pages. It can be used for a wide
range of purposes, from data mining to monitoring and automated testing.
'';
homepage = "https://scrapy.org/";
license = licenses.bsd3;
maintainers = with maintainers; [ drewkett marsam ];

View file

@ -0,0 +1,29 @@
{ stdenvNoCC, fetchurl, lib }:
stdenvNoCC.mkDerivation rec {
pname = "symfony-cli";
version = "4.25.2";
src = fetchurl {
url = "https://github.com/symfony/cli/releases/download/v${version}/symfony_linux_amd64.gz";
sha256 = "8bfa53c1479883e9b48d2e4e5d3f6f7a511df73d65fe5c7b07a4890ee2c75c7e";
};
dontBuild = true;
unpackPhase = ''
gunzip <$src >symfony
'';
installPhase = ''
install -D -t $out/bin symfony
'';
meta = with lib; {
description = "Symfony CLI";
homepage = "https://symfony.com/download";
license = licenses.unfree;
maintainers = with maintainers; [ drupol ];
platforms = [ "x86_64-linux" ];
};
}

View file

@ -12,6 +12,19 @@ let
#
baseExtensions = self: lib.mapAttrs (_n: lib.recurseIntoAttrs)
{
_4ops.terraform = buildVscodeMarketplaceExtension {
mktplcRef = {
publisher = "4ops";
name = "terraform";
version = "0.2.1";
sha256 = "196026a89pizj8p0hqdgkyllj2spx2qwpynsaqjq17s8v15vk5dg";
};
meta = {
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ kamadorueda ];
};
};
a5huynh.vscode-ron = buildVscodeMarketplaceExtension {
mktplcRef = {
name = "vscode-ron";
@ -495,6 +508,19 @@ let
};
};
jkillian.custom-local-formatters = buildVscodeMarketplaceExtension {
mktplcRef = {
publisher = "jkillian";
name = "custom-local-formatters";
version = "0.0.4";
sha256 = "1pmqnc759fq86g2z3scx5xqpni9khcqi5z2kpl1kb7yygsv314gm";
};
meta = {
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ kamadorueda ];
};
};
github = {
github-vscode-theme = buildVscodeMarketplaceExtension {
mktplcRef = {
@ -708,14 +734,27 @@ let
mktplcRef = {
name = "magit";
publisher = "kahole";
version = "0.6.13";
sha256 = "sha256-/SeGQV0UEqBk69cAmUXFc/OfPxNssvzZqa7NmAMQD1k=";
version = "0.6.15";
sha256 = "sha256-fRXm70FXnHduoywI4YC9ya6/J7wyd6EBzbnrcijBIbA=";
};
meta = {
license = lib.licenses.mit;
};
};
mads-hartmann.bash-ide-vscode = buildVscodeMarketplaceExtension {
mktplcRef = {
publisher = "mads-hartmann";
name = "bash-ide-vscode";
version = "1.11.0";
sha256 = "1hq41fy2v1grjrw77mbs9k6ps6gncwlydm03ipawjnsinxc9rdkp";
};
meta = {
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ kamadorueda ];
};
};
mikestead.dotenv = buildVscodeMarketplaceExtension {
mktplcRef = {
name = "dotenv";
@ -982,6 +1021,18 @@ let
};
};
shardulm94.trailing-spaces = buildVscodeMarketplaceExtension {
mktplcRef = {
publisher = "shardulm94";
name = "trailing-spaces";
version = "0.3.1";
sha256 = "0h30zmg5rq7cv7kjdr5yzqkkc1bs20d72yz9rjqag32gwf46s8b8";
};
meta = {
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ kamadorueda ];
};
};
shyykoserhiy.vscode-spotify = buildVscodeMarketplaceExtension {
mktplcRef = {

View file

@ -1,14 +1,18 @@
{ lib, stdenv, buildPackages, autoreconfHook, fetchurl }:
{ lib, stdenv, buildPackages, autoreconfHook, fetchurl, fetchpatch }:
stdenv.mkDerivation rec {
pname = "alsa-firmware";
version = "1.2.4";
name = "alsa-firmware-1.2.1";
src = fetchurl {
url = "mirror://alsa/firmware/${pname}-${version}.tar.bz2";
sha256 = "1fymdjrsbndws3gy4ypm7id31261k65bh2pzyrz29z5w11ynsyxn";
url = "mirror://alsa/firmware/${name}.tar.bz2";
sha256 = "1aq8z8ajpjvcx7bwhwp36bh5idzximyn77ygk3ifs0my3mbpr8mf";
};
patches = [ (fetchpatch {
url = "https://github.com/alsa-project/alsa-firmware/commit/a8a478485a999ff9e4a8d8098107d3b946b70288.patch";
sha256 = "0zd7vrgz00hn02va5bkv7qj2395a1rl6f8jq1mwbryxs7hiysb78";
}) ];
nativeBuildInputs = [ autoreconfHook buildPackages.stdenv.cc ];
configureFlags = [

View file

@ -11,7 +11,7 @@ in {
};
fuse_3 = mkFuse {
version = "3.10.3";
sha256Hash = "054g3jqy8lhlj8kkwd16wxaxzynmh8h5iv20cryd0psg0hgmhd7v";
version = "3.10.4";
sha256Hash = "1ml4bs4wx5dbz5xpnd5g8b9avmn7g7jvf16fbdlk0da8il0qd2rx";
};
}

View file

@ -21,11 +21,11 @@ let
in
with py.pkgs; buildPythonApplication rec {
pname = "awscli";
version = "1.19.52"; # N.B: if you change this, change botocore and boto3 to a matching version too
version = "1.19.88"; # N.B: if you change this, change botocore and boto3 to a matching version too
src = fetchPypi {
inherit pname version;
sha256 = "sha256-keKyuNeDC/90pn89KjoDTO8AGsmI8nqfDNSeGyM6iHQ=";
sha256 = "sha256-LfWSE3dDTJ0BHcaaY49Nd9RAZgj5b++NFeYhkIfwQX0=";
};
# https://github.com/aws/aws-cli/issues/4837

View file

@ -19,13 +19,13 @@ let
in
buildGoPackage rec {
pname = "lxd";
version = "4.14";
version = "4.15";
goPackagePath = "github.com/lxc/lxd";
src = fetchurl {
url = "https://linuxcontainers.org/downloads/lxd/lxd-${version}.tar.gz";
sha256 = "1x9gv70j333w254jgg1n0kvxpwv6vww0v0i862pglq48xhdaa7hy";
sha256 = "sha256-UXipGNWclBKgr0r0wav85Gnhp2SXkTvDFr9gKJWismU=";
};
postPatch = ''

View file

@ -2,16 +2,16 @@
rustPlatform.buildRustPackage rec {
pname = "topgrade";
version = "6.9.1";
version = "7.0.1";
src = fetchFromGitHub {
owner = "r-darwish";
repo = pname;
rev = "v${version}";
sha256 = "sha256-FaN1/S/VzHnaQp+UOmvNGaWDEFijVEI7GWkAmnln3jE=";
sha256 = "sha256-86lBEtwybHrcm7G0ZIbfOHSZPBzNERHGqrTR4YbpDnE=";
};
cargoSha256 = "sha256-Vq2gorQJbLfxKWKbYYOVaHPN0uITbGs1CgkwBtPwSrk=";
cargoSha256 = "sha256-yZIh01A1yC1ZeDDyXeh1C3abPfbW2JuJ7TIsVO1weZk=";
buildInputs = lib.optional stdenv.isDarwin Foundation;

View file

@ -1,27 +1,22 @@
{ runCommand, lib, stdenv, cmake, fetchgit, libnl, libubox, uci, ubus, json_c }:
{ lib, stdenv, cmake, fetchgit, libnl, libubox, uci, ubus, json_c, pkg-config }:
stdenv.mkDerivation {
pname = "netifd";
version = "unstable-2020-07-11";
version = "unstable-2021-04-03";
src = fetchgit {
url = "https://git.openwrt.org/project/netifd.git";
rev = "3d9bd73e8c2d8a1f78effbe92dd2495bbd2552c4";
sha256 = "085sx1gsigbi1jr19l387rc5p6ja1np6q2gb84khjd4pyiqwk840";
rev = "327da9895327bc56b23413ee91a6e6b6e0e4329d";
sha256 = "0jvk2hx8kbkc6d72gh9rwap8ds6qgnmny6306vvzxy68v03xikwv";
};
buildInputs = [ libnl libubox uci ubus json_c ];
nativeBuildInputs = [ cmake ];
preBuild = ''
export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE \
-I$(echo "${lib.getDev libnl}"/include/libnl*/)"
'';
nativeBuildInputs = [ cmake pkg-config ];
meta = with lib; {
description = "OpenWrt Network interface configuration daemon";
homepage = "https://git.openwrt.org/?p=project/netifd.git;a=summary";
license = licenses.lgpl21;
license = licenses.lgpl21Only;
platforms = platforms.linux;
maintainers = with maintainers; [ petabyteboy ];
};

View file

@ -2228,6 +2228,8 @@ in
commitizen = callPackage ../applications/version-management/commitizen {};
common-licenses = callPackage ../data/misc/common-licenses {};
compactor = callPackage ../applications/networking/compactor { };
consul = callPackage ../servers/consul { };
@ -14027,6 +14029,8 @@ in
swiftformat = callPackage ../development/tools/swiftformat { };
symfony-cli = callPackage ../development/tools/symfony-cli { };
swiftshader = callPackage ../development/libraries/swiftshader { };
systemfd = callPackage ../development/tools/systemfd { };

View file

@ -5162,6 +5162,8 @@ in {
pynndescent = callPackage ../development/python-modules/pynndescent { };
pynobo = callPackage ../development/python-modules/pynobo { };
pynuki = callPackage ../development/python-modules/pynuki { };
pynws = callPackage ../development/python-modules/pynws { };