From 6d51b9fddfd195ea829084c289b5f8fd673ce474 Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Tue, 19 Jan 2021 00:27:11 +0000 Subject: [PATCH 001/339] hyperscan: 5.3.0 -> 5.4.0 --- pkgs/development/libraries/hyperscan/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/libraries/hyperscan/default.nix b/pkgs/development/libraries/hyperscan/default.nix index 17246f0aa0a..ff1eedde2bb 100644 --- a/pkgs/development/libraries/hyperscan/default.nix +++ b/pkgs/development/libraries/hyperscan/default.nix @@ -11,12 +11,12 @@ stdenv.mkDerivation rec { pname = "hyperscan"; - version = "5.3.0"; + version = "5.4.0"; src = fetchFromGitHub { owner = "intel"; repo = pname; - sha256 = "0psfkzmyhqfrs750b10d0xv37rcz6nwsw1mnc7zagijckwis2wvj"; + sha256 = "sha256-AJAjaXVnGqIlMk+gb6lpTLUdZr8nxn2XSW4fj6j/cmk="; rev = "v${version}"; }; @@ -53,7 +53,7 @@ stdenv.mkDerivation rec { Hyperscan uses hybrid automata techniques to allow simultaneous matching of large numbers (up to tens of thousands) of regular - expressions and for the matching of regular expressions across + expressions and for the matching of regular expressions across streams of data. Hyperscan is typically used in a DPI library stack. From 63d650556b6917b3a4075f81bd7cdff3d8f3bb40 Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Wed, 20 Jan 2021 15:02:45 +0000 Subject: [PATCH 002/339] open-vm-tools: 11.2.0 -> 11.2.5 --- pkgs/applications/virtualization/open-vm-tools/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/virtualization/open-vm-tools/default.nix b/pkgs/applications/virtualization/open-vm-tools/default.nix index 1afe994977c..b84a3f5e8cd 100644 --- a/pkgs/applications/virtualization/open-vm-tools/default.nix +++ b/pkgs/applications/virtualization/open-vm-tools/default.nix @@ -6,13 +6,13 @@ stdenv.mkDerivation rec { pname = "open-vm-tools"; - version = "11.2.0"; + version = "11.2.5"; src = fetchFromGitHub { owner = "vmware"; repo = "open-vm-tools"; rev = "stable-${version}"; - sha256 = "125y3zdhj353dmmjmssdaib2zp1jg5aiqmvpgkrzhnh5nx2icfv6"; + sha256 = "sha256-Jv+NSKw/+l+b4lfVGgCZFlcTScO/WAO/d7DtI0FAEV4="; }; sourceRoot = "${src.name}/open-vm-tools"; From e90669e536f58a37acd40281b91747008e49702b Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Fri, 22 Jan 2021 01:00:48 +0000 Subject: [PATCH 003/339] thonny: 3.3.2 -> 3.3.3 --- pkgs/applications/editors/thonny/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/editors/thonny/default.nix b/pkgs/applications/editors/thonny/default.nix index e98d57420e8..c114d42a0d5 100644 --- a/pkgs/applications/editors/thonny/default.nix +++ b/pkgs/applications/editors/thonny/default.nix @@ -4,13 +4,13 @@ with python3.pkgs; buildPythonApplication rec { pname = "thonny"; - version = "3.3.2"; + version = "3.3.3"; src = fetchFromGitHub { owner = pname; repo = pname; rev = "v${version}"; - sha256 = "1pzy7v48x4ip8v6aqm8hl5ywx7xiqbsfypxxifih8gnlangp1n8y"; + sha256 = "12bwzrl1wcz79ai1ql3jvqg4v02k7jg9qw4y7gqx5zfhwm1wph8l"; }; propagatedBuildInputs = with python3.pkgs; [ From cda907d8952db00945bef17f473dec2c4e66d0a5 Mon Sep 17 00:00:00 2001 From: Robert Hensing Date: Tue, 9 Feb 2021 12:02:35 +0100 Subject: [PATCH 004/339] nixosTest: fix meta.position --- nixos/lib/testing-python.nix | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/nixos/lib/testing-python.nix b/nixos/lib/testing-python.nix index 6192be1cd05..2d80934ab95 100644 --- a/nixos/lib/testing-python.nix +++ b/nixos/lib/testing-python.nix @@ -55,7 +55,7 @@ rec { # Run an automated test suite in the given virtual network. # `driver' is the script that runs the network. - runTests = driver: + runTests = { driver, pos }: stdenv.mkDerivation { name = "vm-test-run-${driver.testName}"; @@ -69,6 +69,8 @@ rec { ''; passthru = driver.passthru; + + inherit pos; }; @@ -79,6 +81,11 @@ rec { # Skip linting (mainly intended for faster dev cycles) , skipLint ? false , passthru ? {} + , # For meta.position + pos ? # position used in error messages and for meta.position + (if t.meta.description or null != null + then builtins.unsafeGetAttrPos "description" t.meta + else builtins.unsafeGetAttrPos "testScript" t) , ... } @ t: let @@ -176,7 +183,7 @@ rec { driver = mkDriver null; driverInteractive = mkDriver pkgs.qemu; - test = passMeta (runTests driver); + test = passMeta (runTests { inherit driver pos; }); nodeNames = builtins.attrNames driver.nodes; invalidNodeNames = lib.filter From d43f88e3df1c5f686ec24947571ff29d2a6efbcf Mon Sep 17 00:00:00 2001 From: "Yc.Shen" Date: Tue, 13 Apr 2021 21:54:53 +0900 Subject: [PATCH 005/339] nixos/kubernetes: allow merging multiple definitions of extraOpts --- nixos/modules/services/cluster/kubernetes/apiserver.nix | 2 +- .../modules/services/cluster/kubernetes/controller-manager.nix | 2 +- nixos/modules/services/cluster/kubernetes/kubelet.nix | 2 +- nixos/modules/services/cluster/kubernetes/proxy.nix | 2 +- nixos/modules/services/cluster/kubernetes/scheduler.nix | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/nixos/modules/services/cluster/kubernetes/apiserver.nix b/nixos/modules/services/cluster/kubernetes/apiserver.nix index a5b13215476..f1531caa754 100644 --- a/nixos/modules/services/cluster/kubernetes/apiserver.nix +++ b/nixos/modules/services/cluster/kubernetes/apiserver.nix @@ -145,7 +145,7 @@ in extraOpts = mkOption { description = "Kubernetes apiserver extra command line options."; default = ""; - type = str; + type = separatedString " "; }; extraSANs = mkOption { diff --git a/nixos/modules/services/cluster/kubernetes/controller-manager.nix b/nixos/modules/services/cluster/kubernetes/controller-manager.nix index a99ef6640e9..0c81fa9ae49 100644 --- a/nixos/modules/services/cluster/kubernetes/controller-manager.nix +++ b/nixos/modules/services/cluster/kubernetes/controller-manager.nix @@ -38,7 +38,7 @@ in extraOpts = mkOption { description = "Kubernetes controller manager extra command line options."; default = ""; - type = str; + type = separatedString " "; }; featureGates = mkOption { diff --git a/nixos/modules/services/cluster/kubernetes/kubelet.nix b/nixos/modules/services/cluster/kubernetes/kubelet.nix index b5346b1cd44..a428a60800c 100644 --- a/nixos/modules/services/cluster/kubernetes/kubelet.nix +++ b/nixos/modules/services/cluster/kubernetes/kubelet.nix @@ -142,7 +142,7 @@ in extraOpts = mkOption { description = "Kubernetes kubelet extra command line options."; default = ""; - type = str; + type = separatedString " "; }; featureGates = mkOption { diff --git a/nixos/modules/services/cluster/kubernetes/proxy.nix b/nixos/modules/services/cluster/kubernetes/proxy.nix index 86d1dc2439b..7aa449f9aa2 100644 --- a/nixos/modules/services/cluster/kubernetes/proxy.nix +++ b/nixos/modules/services/cluster/kubernetes/proxy.nix @@ -25,7 +25,7 @@ in extraOpts = mkOption { description = "Kubernetes proxy extra command line options."; default = ""; - type = str; + type = separatedString " "; }; featureGates = mkOption { diff --git a/nixos/modules/services/cluster/kubernetes/scheduler.nix b/nixos/modules/services/cluster/kubernetes/scheduler.nix index 5f6113227d9..454c689759d 100644 --- a/nixos/modules/services/cluster/kubernetes/scheduler.nix +++ b/nixos/modules/services/cluster/kubernetes/scheduler.nix @@ -21,7 +21,7 @@ in extraOpts = mkOption { description = "Kubernetes scheduler extra command line options."; default = ""; - type = str; + type = separatedString " "; }; featureGates = mkOption { From c0964398468b31ec18acc265ace5500fdec37dff Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Wed, 14 Apr 2021 02:11:08 +0200 Subject: [PATCH 006/339] geoclue2: clean up --- .../development/libraries/geoclue/default.nix | 63 ++++++++++++++----- 1 file changed, 49 insertions(+), 14 deletions(-) diff --git a/pkgs/development/libraries/geoclue/default.nix b/pkgs/development/libraries/geoclue/default.nix index 711f1a444b3..6f2947c3338 100644 --- a/pkgs/development/libraries/geoclue/default.nix +++ b/pkgs/development/libraries/geoclue/default.nix @@ -1,14 +1,34 @@ -{ lib, stdenv, fetchFromGitLab, intltool, meson, ninja, pkg-config, gtk-doc, docbook_xsl, docbook_xml_dtd_412, glib, json-glib, libsoup, libnotify, gdk-pixbuf -, modemmanager, avahi, glib-networking, python3, wrapGAppsHook, gobject-introspection, vala +{ lib +, stdenv +, fetchFromGitLab +, intltool +, meson +, ninja +, pkg-config +, gtk-doc +, docbook-xsl-nons +, docbook_xml_dtd_412 +, glib +, json-glib +, libsoup +, libnotify +, gdk-pixbuf +, modemmanager +, avahi +, glib-networking +, python3 +, wrapGAppsHook +, gobject-introspection +, vala , withDemoAgent ? false }: -with lib; - stdenv.mkDerivation rec { pname = "geoclue"; version = "2.5.6"; + outputs = [ "out" "dev" "devdoc" ]; + src = fetchFromGitLab { domain = "gitlab.freedesktop.org"; owner = pname; @@ -21,30 +41,45 @@ stdenv.mkDerivation rec { ./add-option-for-installation-sysconfdir.patch ]; - outputs = [ "out" "dev" "devdoc" ]; - nativeBuildInputs = [ - pkg-config intltool meson ninja wrapGAppsHook python3 vala gobject-introspection + pkg-config + intltool + meson + ninja + wrapGAppsHook + python3 + vala + gobject-introspection # devdoc - gtk-doc docbook_xsl docbook_xml_dtd_412 + gtk-doc + docbook-xsl-nons + docbook_xml_dtd_412 ]; buildInputs = [ - glib json-glib libsoup avahi - ] ++ optionals withDemoAgent [ + glib + json-glib + libsoup + avahi + ] ++ lib.optionals withDemoAgent [ libnotify gdk-pixbuf - ] ++ optionals (!stdenv.isDarwin) [ modemmanager ]; + ] ++ lib.optionals (!stdenv.isDarwin) [ + modemmanager + ]; - propagatedBuildInputs = [ glib glib-networking ]; + propagatedBuildInputs = [ + glib + glib-networking + ]; mesonFlags = [ "-Dsystemd-system-unit-dir=${placeholder "out"}/etc/systemd/system" - "-Ddemo-agent=${boolToString withDemoAgent}" + "-Ddemo-agent=${lib.boolToString withDemoAgent}" "--sysconfdir=/etc" "-Dsysconfdir_install=${placeholder "out"}/etc" "-Ddbus-srv-user=geoclue" "-Ddbus-sys-dir=${placeholder "out"}/share/dbus-1/system.d" - ] ++ optionals stdenv.isDarwin [ + ] ++ lib.optionals stdenv.isDarwin [ "-D3g-source=false" "-Dcdma-source=false" "-Dmodem-gps-source=false" From 0fc0dd22ffc2e3b68585ae4a62c3b7beac852620 Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Wed, 14 Apr 2021 02:15:13 +0200 Subject: [PATCH 007/339] =?UTF-8?q?geoclue2:=202.5.6=20=E2=86=92=202.5.7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://gitlab.freedesktop.org/geoclue/geoclue/-/commits/2.5.7 --- pkgs/development/libraries/geoclue/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/geoclue/default.nix b/pkgs/development/libraries/geoclue/default.nix index 6f2947c3338..3e7e295c853 100644 --- a/pkgs/development/libraries/geoclue/default.nix +++ b/pkgs/development/libraries/geoclue/default.nix @@ -25,7 +25,7 @@ stdenv.mkDerivation rec { pname = "geoclue"; - version = "2.5.6"; + version = "2.5.7"; outputs = [ "out" "dev" "devdoc" ]; @@ -34,7 +34,7 @@ stdenv.mkDerivation rec { owner = pname; repo = pname; rev = version; - sha256 = "13fk6n4j74lvcsrg3kwbw1mkxgcr3iy9dnysmy0pclfsym8z5m5m"; + sha256 = "1mv1vs4q94bqkmgkj53jcsw1x31kczwydyy3r27a7fycgzmii1pj"; }; patches = [ From 80e5df8b5a07126f06d358283867fb70c2a1ee2c Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Wed, 14 Apr 2021 02:30:43 +0200 Subject: [PATCH 008/339] geoclue2: Use our own Mozilla API key https://github.com/NixOS/nixpkgs/issues/110031#issuecomment-777078988 --- .../add-option-for-installation-sysconfdir.patch | 7 +++++-- pkgs/development/libraries/geoclue/default.nix | 13 +++++++++++++ 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/geoclue/add-option-for-installation-sysconfdir.patch b/pkgs/development/libraries/geoclue/add-option-for-installation-sysconfdir.patch index 9eb53acebb0..63948ab4fad 100644 --- a/pkgs/development/libraries/geoclue/add-option-for-installation-sysconfdir.patch +++ b/pkgs/development/libraries/geoclue/add-option-for-installation-sysconfdir.patch @@ -65,17 +65,20 @@ index fde6fa3..39b7b0a 100644 conf.set_quoted('LOCALEDIR', localedir) -conf.set_quoted('SYSCONFDIR', sysconfdir) +conf.set_quoted('SYSCONFDIR', get_option('sysconfdir')) + conf.set_quoted('MOZILLA_API_KEY', get_option('mozilla-api-key')) conf.set10('GCLUE_USE_3G_SOURCE', get_option('3g-source')) conf.set10('GCLUE_USE_CDMA_SOURCE', get_option('cdma-source')) - conf.set10('GCLUE_USE_MODEM_GPS_SOURCE', get_option('modem-gps-source')) diff --git a/meson_options.txt b/meson_options.txt index 83bc60e..b726329 100644 --- a/meson_options.txt +++ b/meson_options.txt -@@ -34,3 +34,6 @@ option('systemd-system-unit-dir', +@@ -34,6 +34,9 @@ option('systemd-system-unit-dir', option('dbus-srv-user', type: 'string', value: 'root', description: 'The user (existing) as which the service will run') +option('sysconfdir_install', + type: 'string', value: '', + description: 'sysconfdir to use during installation') + option('mozilla-api-key', + type: 'string', value: 'geoclue', + description: 'Your API key for Mozilla Location Service') diff --git a/pkgs/development/libraries/geoclue/default.nix b/pkgs/development/libraries/geoclue/default.nix index 3e7e295c853..360094ea765 100644 --- a/pkgs/development/libraries/geoclue/default.nix +++ b/pkgs/development/libraries/geoclue/default.nix @@ -1,6 +1,7 @@ { lib , stdenv , fetchFromGitLab +, fetchpatch , intltool , meson , ninja @@ -38,6 +39,17 @@ stdenv.mkDerivation rec { }; patches = [ + # Make the Mozilla API key configurable + # https://gitlab.freedesktop.org/geoclue/geoclue/merge_requests/54 (only partially backported) + (fetchpatch { + url = "https://gitlab.freedesktop.org/geoclue/geoclue/commit/95c9ad4dc176860c85a07d0db4cb4179929bdb54.patch"; + sha256 = "/lq/dLBJl2vf16tt7emYoTtXY6iUw+4s2XcABUHp3Kc="; + }) + (fetchpatch { + url = "https://gitlab.freedesktop.org/geoclue/geoclue/commit/1a00809a0d89b0849a57647c878d192354247a33.patch"; + sha256 = "6FuiukgFWg2cEKt8LlKP4E0rfSH/ZQgk6Ip1mGJpNFQ="; + }) + ./add-option-for-installation-sysconfdir.patch ]; @@ -77,6 +89,7 @@ stdenv.mkDerivation rec { "-Ddemo-agent=${lib.boolToString withDemoAgent}" "--sysconfdir=/etc" "-Dsysconfdir_install=${placeholder "out"}/etc" + "-Dmozilla-api-key=5c28d1f4-9511-47ff-b11a-2bef80fc177c" "-Ddbus-srv-user=geoclue" "-Ddbus-sys-dir=${placeholder "out"}/share/dbus-1/system.d" ] ++ lib.optionals stdenv.isDarwin [ From 76d733bf2c8420ec23efd3d62123ad3b40d7e921 Mon Sep 17 00:00:00 2001 From: fricklerhandwerk Date: Sat, 23 Jan 2021 17:53:29 +0100 Subject: [PATCH 009/339] gnunet-gtk: fix build gnunet: 0.14.0 -> 0.14.1 gnunet-gtk: 0.13.1 -> 0.14.0 (there is no 0.14.1 release) build with correct `gnunet` location. otherwise `gnunet-setup` will not pick up plugins. See: https://git.gnunet.org/gnunet-gtk.git/tree/README?id=5034ca084258d6653b2986b00167c736a9cd93ed#n19 add libsodium to pass configure check for GNUnet util library. --- pkgs/applications/networking/p2p/gnunet/default.nix | 4 ++-- pkgs/applications/networking/p2p/gnunet/gtk.nix | 10 ++++++---- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/pkgs/applications/networking/p2p/gnunet/default.nix b/pkgs/applications/networking/p2p/gnunet/default.nix index af290fc1cc5..61ff1642978 100644 --- a/pkgs/applications/networking/p2p/gnunet/default.nix +++ b/pkgs/applications/networking/p2p/gnunet/default.nix @@ -5,11 +5,11 @@ stdenv.mkDerivation rec { pname = "gnunet"; - version = "0.14.0"; + version = "0.14.1"; src = fetchurl { url = "mirror://gnu/gnunet/${pname}-${version}.tar.gz"; - sha256 = "sha256-2u9gO9Mu0dM1yixcaqOnZcDfGcp69dc5CH5tkl6vRas="; + sha256 = "1hhqv994akymf4s593mc1wpsjy6hccd0zbdim3qmc1y3f32hacja"; }; enableParallelBuilding = true; diff --git a/pkgs/applications/networking/p2p/gnunet/gtk.nix b/pkgs/applications/networking/p2p/gnunet/gtk.nix index 2532671bc25..3711d5a3c1e 100644 --- a/pkgs/applications/networking/p2p/gnunet/gtk.nix +++ b/pkgs/applications/networking/p2p/gnunet/gtk.nix @@ -5,6 +5,7 @@ , gtk3 , libextractor , libgcrypt +, libsodium , libxml2 , pkg-config , wrapGAppsHook @@ -12,11 +13,11 @@ stdenv.mkDerivation rec { pname = "gnunet-gtk"; - version = "0.13.1"; + version = "0.14.0"; src = fetchurl { url = "mirror://gnu/gnunet/${pname}-${version}.tar.gz"; - sha256 = "1zdzgq16h77w6ybwg3lqjsjr965np6iqvncqvkbj07glqd4wss0j"; + sha256 = "18rc7mb45y17d5nrlpf2p4ixp7ir67gcgjf4hlj4r95ic5zi54wa"; }; nativeBuildInputs= [ @@ -31,15 +32,16 @@ stdenv.mkDerivation rec { gtk3 libextractor libgcrypt + libsodium libxml2 ]; + configureFlags = [ "--with-gnunet=${gnunet}" ]; + patchPhase = "patchShebangs pixmaps/icon-theme-installer"; meta = gnunet.meta // { description = "GNUnet GTK User Interface"; homepage = "https://git.gnunet.org/gnunet-gtk.git"; - # configure: error: compiling gnunet-gtk requires GNUnet core headers - broken = true; }; } From 8bd4d8ee663ff4a61c6f80b0f02e1c9d5dbd5c8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl=20de=20Kok?= Date: Sun, 18 Apr 2021 10:44:09 +0200 Subject: [PATCH 010/339] cudnn_cudatoolkit_11_0: 8.1.0 -> 8.1.1 Changelog: https://docs.nvidia.com/deeplearning/cudnn/release-notes/rel_8.html#rel-811 --- pkgs/development/libraries/science/math/cudnn/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/libraries/science/math/cudnn/default.nix b/pkgs/development/libraries/science/math/cudnn/default.nix index b8aac46d919..d8e68a48cbf 100644 --- a/pkgs/development/libraries/science/math/cudnn/default.nix +++ b/pkgs/development/libraries/science/math/cudnn/default.nix @@ -53,12 +53,12 @@ in rec { cudnn_cudatoolkit_10 = cudnn_cudatoolkit_10_2; cudnn_cudatoolkit_11_0 = generic rec { - version = "8.1.0"; + version = "8.1.1"; cudatoolkit = cudatoolkit_11_0; # 8.1.0 is compatible with CUDA 11.0, 11.1, and 11.2: # https://docs.nvidia.com/deeplearning/cudnn/support-matrix/index.html#cudnn-cuda-hardware-versions - srcName = "cudnn-11.2-linux-x64-v8.1.0.77.tgz"; - sha256 = "sha256-2+gvrwcdkbqbzwBIAUatM/RiSC3+5WyvRHnBuNq+Pss="; + srcName = "cudnn-11.2-linux-x64-v8.1.1.33.tgz"; + sha256 = "sha256-mKh4TpKGLyABjSDCgbMNSgzZUfk2lPZDPM9K6cUCumo="; }; cudnn_cudatoolkit_11_1 = cudnn_cudatoolkit_11_0.override { From 7475b12169f459dec709c7e25c46abc4e393d4b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl=20de=20Kok?= Date: Sun, 18 Apr 2021 10:53:22 +0200 Subject: [PATCH 011/339] cudnn_cudatoolkit: accept `hash` attribute for SRI hashes --- .../libraries/science/math/cudnn/default.nix | 2 +- .../libraries/science/math/cudnn/generic.nix | 13 +++++++++---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/pkgs/development/libraries/science/math/cudnn/default.nix b/pkgs/development/libraries/science/math/cudnn/default.nix index d8e68a48cbf..f5518813cdc 100644 --- a/pkgs/development/libraries/science/math/cudnn/default.nix +++ b/pkgs/development/libraries/science/math/cudnn/default.nix @@ -58,7 +58,7 @@ in rec { # 8.1.0 is compatible with CUDA 11.0, 11.1, and 11.2: # https://docs.nvidia.com/deeplearning/cudnn/support-matrix/index.html#cudnn-cuda-hardware-versions srcName = "cudnn-11.2-linux-x64-v8.1.1.33.tgz"; - sha256 = "sha256-mKh4TpKGLyABjSDCgbMNSgzZUfk2lPZDPM9K6cUCumo="; + hash = "sha256-mKh4TpKGLyABjSDCgbMNSgzZUfk2lPZDPM9K6cUCumo="; }; cudnn_cudatoolkit_11_1 = cudnn_cudatoolkit_11_0.override { diff --git a/pkgs/development/libraries/science/math/cudnn/generic.nix b/pkgs/development/libraries/science/math/cudnn/generic.nix index d9c19e6790c..f5a4fac1a90 100644 --- a/pkgs/development/libraries/science/math/cudnn/generic.nix +++ b/pkgs/development/libraries/science/math/cudnn/generic.nix @@ -1,8 +1,11 @@ { version , srcName -, sha256 +, hash ? null +, sha256 ? null }: +assert (hash != null) || (sha256 != null); + { stdenv , lib , cudatoolkit @@ -22,11 +25,13 @@ stdenv.mkDerivation { name = "cudatoolkit-${cudatoolkit.majorVersion}-cudnn-${version}"; inherit version; - src = fetchurl { + + src = let + hash_ = if hash != null then { inherit hash; } else { inherit sha256; }; + in fetchurl ({ # URL from NVIDIA docker containers: https://gitlab.com/nvidia/cuda/blob/centos7/7.0/runtime/cudnn4/Dockerfile url = "https://developer.download.nvidia.com/compute/redist/cudnn/v${version}/${srcName}"; - inherit sha256; - }; + } // hash_); nativeBuildInputs = [ addOpenGLRunpath ]; From db5b547b2542d01661ad602b437d88e3c75a8606 Mon Sep 17 00:00:00 2001 From: Matej Urbas Date: Sun, 18 Apr 2021 10:19:06 +0100 Subject: [PATCH 012/339] nixos/amazon-init: add user-data shell script support --- nixos/modules/virtualisation/amazon-init.nix | 10 +++++ nixos/tests/all-tests.nix | 1 + nixos/tests/amazon-init-shell.nix | 40 ++++++++++++++++++++ 3 files changed, 51 insertions(+) create mode 100644 nixos/tests/amazon-init-shell.nix diff --git a/nixos/modules/virtualisation/amazon-init.nix b/nixos/modules/virtualisation/amazon-init.nix index be83607c0af..4f2f8df90eb 100644 --- a/nixos/modules/virtualisation/amazon-init.nix +++ b/nixos/modules/virtualisation/amazon-init.nix @@ -16,6 +16,16 @@ let userData=/etc/ec2-metadata/user-data + # Check if user-data looks like a shell script and execute it with the + # runtime shell if it does. Otherwise treat it as a nixos configuration + # expression + if IFS= LC_ALL=C read -rN2 shebang < $userData && [ "$shebang" = '#!' ]; then + # NB: we cannot chmod the $userData file, this is why we execute it via + # `pkgs.runtimeShell`. This means we have only limited support for shell + # scripts compatible with the `pkgs.runtimeShell`. + exec ${pkgs.runtimeShell} $userData + fi + if [ -s "$userData" ]; then # If the user-data looks like it could be a nix expression, # copy it over. Also, look for a magic three-hash comment and set diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index fb45ec1a310..d4fdc668e76 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -24,6 +24,7 @@ in _3proxy = handleTest ./3proxy.nix {}; acme = handleTest ./acme.nix {}; agda = handleTest ./agda.nix {}; + amazon-init-shell = handleTest ./amazon-init-shell.nix {}; ammonite = handleTest ./ammonite.nix {}; atd = handleTest ./atd.nix {}; avahi = handleTest ./avahi.nix {}; diff --git a/nixos/tests/amazon-init-shell.nix b/nixos/tests/amazon-init-shell.nix new file mode 100644 index 00000000000..f9268b2f3a0 --- /dev/null +++ b/nixos/tests/amazon-init-shell.nix @@ -0,0 +1,40 @@ +# This test verifies that the amazon-init service can treat the `user-data` ec2 +# metadata file as a shell script. If amazon-init detects that `user-data` is a +# script (based on the presence of the shebang #! line) it executes it and +# exits. +# Note that other tests verify that amazon-init can treat user-data as a nixos +# configuration expression. + +{ system ? builtins.currentSystem, + config ? {}, + pkgs ? import ../.. { inherit system config; } +}: + +with import ../lib/testing-python.nix { inherit system pkgs; }; +with pkgs.lib; + +makeTest { + name = "amazon-init"; + meta = with maintainers; { + maintainers = [ urbas ]; + }; + machine = { ... }: + { + imports = [ ../modules/profiles/headless.nix ../modules/virtualisation/amazon-init.nix ]; + services.openssh.enable = true; + networking.hostName = ""; + environment.etc."ec2-metadata/user-data" = { + text = '' + #!/usr/bin/bash + + echo successful > /tmp/evidence + ''; + }; + }; + testScript = '' + # To wait until amazon-init terminates its run + unnamed.wait_for_unit("amazon-init.service") + + unnamed.succeed("grep -q successful /tmp/evidence") + ''; +} From 24929e859787a68fd3e508d481e94baa2b57cb29 Mon Sep 17 00:00:00 2001 From: Dmitry Kalinkin Date: Mon, 19 Apr 2021 10:43:48 -0400 Subject: [PATCH 013/339] emacsPackages.melpaPackages.zmq: preventive fix for module-file-suffix change needed for emacs 28 --- pkgs/applications/editors/emacs-modes/melpa-packages.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkgs/applications/editors/emacs-modes/melpa-packages.nix b/pkgs/applications/editors/emacs-modes/melpa-packages.nix index e5e2bac964f..5a1c9168bc4 100644 --- a/pkgs/applications/editors/emacs-modes/melpa-packages.nix +++ b/pkgs/applications/editors/emacs-modes/melpa-packages.nix @@ -362,6 +362,7 @@ let zmq = super.zmq.overrideAttrs (old: { stripDebugList = [ "share" ]; preBuild = '' + export EZMQ_LIBDIR=$(mktemp -d) make ''; nativeBuildInputs = [ @@ -372,7 +373,7 @@ let (pkgs.zeromq.override { enableDrafts = true; }) ]; postInstall = '' - mv $out/share/emacs/site-lisp/elpa/zmq-*/src/.libs/emacs-zmq.so $out/share/emacs/site-lisp/elpa/zmq-* + mv $EZMQ_LIBDIR/emacs-zmq.* $out/share/emacs/site-lisp/elpa/zmq-* rm -r $out/share/emacs/site-lisp/elpa/zmq-*/src rm $out/share/emacs/site-lisp/elpa/zmq-*/Makefile ''; From fdc157bc3fa68e0bef222e5801f5cb611890695b Mon Sep 17 00:00:00 2001 From: matthewcroughan Date: Mon, 19 Apr 2021 00:57:12 +0100 Subject: [PATCH 014/339] seren: init at 0.0.21 Co-authored-by: Sandro --- .../instant-messengers/seren/default.nix | 37 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 2 files changed, 39 insertions(+) create mode 100644 pkgs/applications/networking/instant-messengers/seren/default.nix diff --git a/pkgs/applications/networking/instant-messengers/seren/default.nix b/pkgs/applications/networking/instant-messengers/seren/default.nix new file mode 100644 index 00000000000..63cefbd2ffd --- /dev/null +++ b/pkgs/applications/networking/instant-messengers/seren/default.nix @@ -0,0 +1,37 @@ +{ lib +, stdenv +, fetchurl +, alsaLib +, libopus +, libogg +, gmp +, ncurses +}: + +stdenv.mkDerivation rec { + pname = "seren"; + version = "0.0.21"; + + buildInputs = [ alsaLib libopus libogg gmp ncurses ]; + + src = fetchurl { + url = "http://holdenc.altervista.org/seren/downloads/${pname}-${version}.tar.gz"; + sha256 = "sha256-adI365McrJkvTexvnWjMzpHcJkLY3S/uWfE8u4yuqho="; + }; + + meta = with lib; { + description = "A simple ncurses VoIP program based on the Opus codec"; + longDescription = '' + Seren is a simple VoIP program based on the Opus codec + that allows you to create a voice conference from the terminal, with up to 10 + participants, without having to register accounts, exchange emails, or add + people to contact lists. All you need to join an existing conference is the + host name or IP address of one of the participants. + ''; + homepage = "http://holdenc.altervista.org/seren/"; + changelog = "http://holdenc.altervista.org/seren/"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ matthewcroughan nixinator ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index cdf28b9782c..0a4e3d99940 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -11420,6 +11420,8 @@ in gputils = null; }; + seren = callPackage ../applications/networking/instant-messengers/seren { }; + serialdv = callPackage ../development/libraries/serialdv { }; serpent = callPackage ../development/compilers/serpent { }; From 7ff18cdf3c3b286f57018e6f3aad23c7a2a088f0 Mon Sep 17 00:00:00 2001 From: Florian Klink Date: Wed, 21 Apr 2021 13:45:13 +0200 Subject: [PATCH 015/339] nixos/xserver: set fs.inotify.max_user_instances too A too low number of inotify user instances causes similar problems as max_user_watches. Without this, my workstation keeps running into things like this: $ sudo systemctl restart display-manager.service Failed to allocate directory watch: Too many open files --- nixos/modules/services/x11/xserver.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/nixos/modules/services/x11/xserver.nix b/nixos/modules/services/x11/xserver.nix index 35bd4dabb67..4dde4476d2c 100644 --- a/nixos/modules/services/x11/xserver.nix +++ b/nixos/modules/services/x11/xserver.nix @@ -666,6 +666,7 @@ in # The default max inotify watches is 8192. # Nowadays most apps require a good number of inotify watches, # the value below is used by default on several other distros. + boot.kernel.sysctl."fs.inotify.max_user_instances" = mkDefault 524288; boot.kernel.sysctl."fs.inotify.max_user_watches" = mkDefault 524288; systemd.defaultUnit = mkIf cfg.autorun "graphical.target"; From 3b7b70f49258d4fd6378cb56a602cbdb42fcc24f Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Thu, 22 Apr 2021 05:11:35 +0000 Subject: [PATCH 016/339] aws-c-common: 0.5.4 -> 0.5.5 --- pkgs/development/libraries/aws-c-common/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/aws-c-common/default.nix b/pkgs/development/libraries/aws-c-common/default.nix index 988a27a5878..580eaec2ebe 100644 --- a/pkgs/development/libraries/aws-c-common/default.nix +++ b/pkgs/development/libraries/aws-c-common/default.nix @@ -6,13 +6,13 @@ stdenv.mkDerivation rec { pname = "aws-c-common"; - version = "0.5.4"; + version = "0.5.5"; src = fetchFromGitHub { owner = "awslabs"; repo = pname; rev = "v${version}"; - sha256 = "sha256-NH66WAOqAaMm/IIu8L5R7CUFhX56yTLH7mPY1Q4jDC4="; + sha256 = "sha256-rGv+fa+UF/f6mY8CmZpkjP98CAcAQCTjL3OI7HsUHcU="; }; nativeBuildInputs = [ cmake ]; From 30f7281d99fcb6bb91d79ab178d507ed325fc0f2 Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Thu, 22 Apr 2021 06:46:13 +0000 Subject: [PATCH 017/339] buildkite-agent: 3.28.1 -> 3.29.0 --- .../continuous-integration/buildkite-agent/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/tools/continuous-integration/buildkite-agent/default.nix b/pkgs/development/tools/continuous-integration/buildkite-agent/default.nix index 4a402111b08..db1f2aeabc7 100644 --- a/pkgs/development/tools/continuous-integration/buildkite-agent/default.nix +++ b/pkgs/development/tools/continuous-integration/buildkite-agent/default.nix @@ -2,16 +2,16 @@ makeWrapper, coreutils, git, openssh, bash, gnused, gnugrep }: buildGoModule rec { name = "buildkite-agent-${version}"; - version = "3.28.1"; + version = "3.29.0"; src = fetchFromGitHub { owner = "buildkite"; repo = "agent"; rev = "v${version}"; - sha256 = "sha256-5YOXYOAh/0fOagcqdK2IEwm5XDCxyfTeTzwBGtsQRCs="; + sha256 = "sha256-76yyqZi+ktcwRXo0ZIcdFJ9YCuHm9Te4AI+4meuhMNA="; }; - vendorSha256 = "sha256-3UXZxeiL0WO4X/3/hW8ubL1TormGbn9X/k0PX+/cLuM="; + vendorSha256 = "sha256-6cejbCbr0Rn4jWFJ0fxG4v0L0xUM8k16cbACmcQ6m4o="; postPatch = '' substituteInPlace bootstrap/shell/shell.go --replace /bin/bash ${bash}/bin/bash From 29d94a7abefea244ffcca2df219c4067d17965cd Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Thu, 22 Apr 2021 07:23:39 +0000 Subject: [PATCH 018/339] charliecloud: 0.22 -> 0.23 --- pkgs/applications/virtualization/charliecloud/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/virtualization/charliecloud/default.nix b/pkgs/applications/virtualization/charliecloud/default.nix index 3e9029cce0a..23677dddd7f 100644 --- a/pkgs/applications/virtualization/charliecloud/default.nix +++ b/pkgs/applications/virtualization/charliecloud/default.nix @@ -2,14 +2,14 @@ stdenv.mkDerivation rec { - version = "0.22"; + version = "0.23"; pname = "charliecloud"; src = fetchFromGitHub { owner = "hpc"; repo = "charliecloud"; rev = "v${version}"; - sha256 = "sha256-+9u7WRKAJ9F70+I68xNRck5Q22XzgLKTCnjGbIcsyW8="; + sha256 = "sha256-JQNidKqJROFVm+O1exTDon1fwU91zONqgKJIpe9gspY="; }; nativeBuildInputs = [ autoreconfHook makeWrapper ]; From 9d91c855842810e0a8ccc39c7cab95d620722414 Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Thu, 22 Apr 2021 07:38:12 +0000 Subject: [PATCH 019/339] clevis: 16 -> 18 --- pkgs/tools/security/clevis/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/security/clevis/default.nix b/pkgs/tools/security/clevis/default.nix index 7f26dcabb7d..e5415f6d09b 100644 --- a/pkgs/tools/security/clevis/default.nix +++ b/pkgs/tools/security/clevis/default.nix @@ -4,13 +4,13 @@ stdenv.mkDerivation rec { pname = "clevis"; - version = "16"; + version = "18"; src = fetchFromGitHub { owner = "latchset"; repo = pname; rev = "v${version}"; - sha256 = "sha256-DWrxk+Nb2ptF5nCaXYvRY8hAFa/n+6OGdKWO+Sq61yk="; + sha256 = "sha256-m1UhyjD5ydSgCTBu6sECLlxFx0rnQxFnBA7frbdUqU8="; }; nativeBuildInputs = [ meson ninja pkg-config asciidoc ]; From 5c8515684866f610f69eec115d2d2bcb44a97a16 Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Thu, 22 Apr 2021 08:42:35 +0000 Subject: [PATCH 020/339] doppler: 3.23.2 -> 3.24.1 --- pkgs/tools/security/doppler/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/security/doppler/default.nix b/pkgs/tools/security/doppler/default.nix index b5fa405e93e..5a8e80d6cd0 100644 --- a/pkgs/tools/security/doppler/default.nix +++ b/pkgs/tools/security/doppler/default.nix @@ -2,13 +2,13 @@ buildGoModule rec { pname = "doppler"; - version = "3.23.2"; + version = "3.24.1"; src = fetchFromGitHub { owner = "dopplerhq"; repo = "cli"; rev = version; - sha256 = "sha256-qdBq1vjvvb55gyL4XuPDrPK58YLSSH5kLp1oP84vJsU="; + sha256 = "sha256-ZWYyi/Fv18dA8MeKzcFHHm62RF1NfPyveWIE8aI4UxU="; }; vendorSha256 = "sha256-UaR/xYGMI+C9aID85aPSfVzmTWXj4KcjfOJ6TTJ8KoY="; From 890bc87e5f967b2269518c3f61b292c32298b3af Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Thu, 22 Apr 2021 09:45:40 +0000 Subject: [PATCH 021/339] fluent-bit: 1.7.3 -> 1.7.4 --- pkgs/tools/misc/fluent-bit/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/misc/fluent-bit/default.nix b/pkgs/tools/misc/fluent-bit/default.nix index 8b751237f6e..d51676f4a5a 100644 --- a/pkgs/tools/misc/fluent-bit/default.nix +++ b/pkgs/tools/misc/fluent-bit/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "fluent-bit"; - version = "1.7.3"; + version = "1.7.4"; src = fetchFromGitHub { owner = "fluent"; repo = "fluent-bit"; rev = "v${version}"; - sha256 = "sha256-a3AVem+VbYKUsxAzGNu/VPqDiqG99bmj9p1/iiG1ZFw="; + sha256 = "sha256-xOrEPZ+AUihVVaxrqCCeO6n3XFkVahCzHOuX947LRFs="; }; nativeBuildInputs = [ cmake flex bison ]; From 11dca1a38c9a3fb09e7b40f007e83548ce5571c1 Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Thu, 22 Apr 2021 10:05:38 +0000 Subject: [PATCH 022/339] geoipupdate: 4.6.0 -> 4.7.1 --- pkgs/applications/misc/geoipupdate/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/misc/geoipupdate/default.nix b/pkgs/applications/misc/geoipupdate/default.nix index 12b5a38877a..e85ada2253f 100644 --- a/pkgs/applications/misc/geoipupdate/default.nix +++ b/pkgs/applications/misc/geoipupdate/default.nix @@ -2,16 +2,16 @@ buildGoModule rec { pname = "geoipupdate"; - version = "4.6.0"; + version = "4.7.1"; src = fetchFromGitHub { owner = "maxmind"; repo = "geoipupdate"; rev = "v${version}"; - sha256 = "1rzc8kidm8nr9pbcbq96kax3cbf39afrk5vzpl04lzpw3jbbakjq"; + sha256 = "sha256-nshQxr6y3TxKsAVSA9mzL7LJfCtpv0QuuTTqk3/lENc="; }; - vendorSha256 = "1f858k8cl0dgiw124jv0p9jhi9aqxnc3nmc7hksw70fla2nzjrv0"; + vendorSha256 = "sha256-fqQWFhFeyW4GntRBxEeN6WSOo0G+1hH9vSEZmBKglz8="; doCheck = false; From c01046b022329000c28e0b48b773e0d1b18d68fc Mon Sep 17 00:00:00 2001 From: Viktor Kronvall Date: Thu, 22 Apr 2021 21:23:52 +0900 Subject: [PATCH 023/339] services.buildkite-agents: support multi-tags The buildkite agent supports multiple tags with the same key. This functionality is used to have a [single agent listen on multiple queues](https://buildkite.com/docs/agent/v3/queues#setting-an-agents-queue). However, having the tags be of type `attrsOf str` means that we cannot suport this use case. This commit modifies the type of tags to be `attrsOf (either str (listOf str))` where the list is expanded into multiple tags with the same key. Example: ``` {tags = {queue = ["default", "testing"];};} ``` generates ``` tags="queue=default,queue=testing" ``` in the buildkite agent configuration. --- .../continuous-integration/buildkite-agents.nix | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/nixos/modules/services/continuous-integration/buildkite-agents.nix b/nixos/modules/services/continuous-integration/buildkite-agents.nix index b0045409ae6..3dd1c40aaa4 100644 --- a/nixos/modules/services/continuous-integration/buildkite-agents.nix +++ b/nixos/modules/services/continuous-integration/buildkite-agents.nix @@ -76,7 +76,7 @@ let }; tags = mkOption { - type = types.attrsOf types.str; + type = types.attrsOf (types.either types.str (types.listOf types.str)); default = {}; example = { queue = "default"; docker = "true"; ruby2 ="true"; }; description = '' @@ -230,7 +230,11 @@ in ## don't end up in the Nix store. preStart = let sshDir = "${cfg.dataDir}/.ssh"; - tagStr = lib.concatStringsSep "," (lib.mapAttrsToList (name: value: "${name}=${value}") cfg.tags); + tagStr = name: value: + if lib.isList value + then lib.concatStringsSep "," (builtins.map (v: "${name}=${v}") value) + else "${name}=${value}"; + tagsStr = lib.concatStringsSep "," (lib.mapAttrsToList tagStr cfg.tags); in optionalString (cfg.privateSshKeyPath != null) '' mkdir -m 0700 -p "${sshDir}" @@ -241,7 +245,7 @@ in token="$(cat ${toString cfg.tokenPath})" name="${cfg.name}" shell="${cfg.shell}" - tags="${tagStr}" + tags="${tagsStr}" build-path="${cfg.dataDir}/builds" hooks-path="${cfg.hooksPath}" ${cfg.extraConfig} From 46445cc334321e8323d1111ae24f079bb07c754c Mon Sep 17 00:00:00 2001 From: Kenny Ballou Date: Fri, 23 Apr 2021 08:08:06 -0600 Subject: [PATCH 024/339] emacs2nix: update to fix gitlab archive URLs Signed-off-by: Kenny Ballou --- pkgs/applications/editors/emacs-modes/emacs2nix.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/editors/emacs-modes/emacs2nix.nix b/pkgs/applications/editors/emacs-modes/emacs2nix.nix index e29a19713bd..cc82646870c 100644 --- a/pkgs/applications/editors/emacs-modes/emacs2nix.nix +++ b/pkgs/applications/editors/emacs-modes/emacs2nix.nix @@ -4,8 +4,8 @@ let src = pkgs.fetchgit { url = "https://github.com/ttuegel/emacs2nix.git"; fetchSubmodules = true; - rev = "b815a9323c1f58f6c163a1f968939c57a8b6cfa0"; - sha256 = "183xlmhjmj4z2zssc0pw990h7bf3bam8zqswnf1zcsyp8z7yrl5g"; + rev = "860da04ca91cbb69c9b881a54248d16bdaaf9923"; + sha256 = "1r3xmyk9rfgx7ln69dk8mgbnh3awcalm3r1c5ia2shlsrymvv1df"; }; in pkgs.mkShell { From 54a540c448baa5b06f64525d57043b41d721343d Mon Sep 17 00:00:00 2001 From: Kenny Ballou Date: Fri, 23 Apr 2021 09:32:44 -0600 Subject: [PATCH 025/339] update-melpa.el: update gitlab fetcher to use API URL GitLab packages were not downloading because the archive URL's used were invalid. Following the [GitLab API Docs][0], use the correct GitLab archive URL. This change is mirrored in ttuegel/emacs2nix#57. Signed-off-by: Kenny Ballou --- pkgs/applications/editors/emacs-modes/update-melpa.el | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkgs/applications/editors/emacs-modes/update-melpa.el b/pkgs/applications/editors/emacs-modes/update-melpa.el index b315777620e..c8c1bfee566 100644 --- a/pkgs/applications/editors/emacs-modes/update-melpa.el +++ b/pkgs/applications/editors/emacs-modes/update-melpa.el @@ -99,7 +99,10 @@ return Promise to resolve in that process." ("github" (list "nix-prefetch-url" "--unpack" (concat "https://github.com/" repo "/archive/" commit ".tar.gz"))) ("gitlab" (list "nix-prefetch-url" - "--unpack" (concat "https://gitlab.com/" repo "/repository/archive.tar.gz?ref=" commit))) + "--unpack" (concat "https://gitlab.com/api/v4/projects/" + (url-hexify-string repo) + "/repository/archive.tar.gz?ref=" + commit))) ("bitbucket" (list "nix-prefetch-hg" (concat "https://bitbucket.com/" repo) commit)) ("hg" (list "nix-prefetch-hg" From db06981716cc0e30829b9f087961a444d9c710c4 Mon Sep 17 00:00:00 2001 From: SCOTT-HAMILTON Date: Fri, 23 Apr 2021 21:35:52 +0200 Subject: [PATCH 026/339] googleearth-pro: fix xkb keyboard --- pkgs/applications/misc/googleearth-pro/default.nix | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/misc/googleearth-pro/default.nix b/pkgs/applications/misc/googleearth-pro/default.nix index e5192c9a73e..7a509267504 100644 --- a/pkgs/applications/misc/googleearth-pro/default.nix +++ b/pkgs/applications/misc/googleearth-pro/default.nix @@ -1,6 +1,7 @@ { lib, stdenv, fetchurl, glibc, libGLU, libGL, freetype, glib, libSM, libICE, libXi, libXv , libXrender, libXrandr, libXfixes, libXcursor, libXinerama, libXext, libX11, libXcomposite -, libxcb, sqlite, zlib, fontconfig, dpkg, libproxy, libxml2, gst_all_1, dbus, makeWrapper }: +, libxcb, sqlite, zlib, fontconfig, dpkg, libproxy, libxml2, gst_all_1, dbus, makeWrapper +, xkeyboardconfig }: let arch = @@ -45,6 +46,7 @@ stdenv.mkDerivation rec { }; nativeBuildInputs = [ dpkg makeWrapper ]; + propagatedBuildInputs = [ xkeyboardconfig ]; doInstallCheck = true; @@ -97,7 +99,9 @@ stdenv.mkDerivation rec { # wayland is not supported by Qt included in binary package, so make sure it uses xcb fixupPhase = '' - wrapProgram $out/bin/googleearth-pro --set QT_QPA_PLATFORM xcb + wrapProgram $out/bin/googleearth-pro \ + --set QT_QPA_PLATFORM xcb \ + --set QT_XKB_CONFIG_ROOT "${xkeyboardconfig}/share/X11/xkb" ''; From 25c827b3cc1dc9885f4885b68b9df83c7697b1af Mon Sep 17 00:00:00 2001 From: pennae Date: Sat, 24 Apr 2021 17:42:31 +0200 Subject: [PATCH 027/339] nixos/fail2ban: add maxretry option it's not possible to set a different default maxretry value in the DEFAULT jail because the module already does so. expose the maxretry option to the configuration to remedy this. (we can't really remove it entirely because fail2ban defaults to 5) --- nixos/modules/services/security/fail2ban.nix | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/nixos/modules/services/security/fail2ban.nix b/nixos/modules/services/security/fail2ban.nix index b901b19cf31..22abbb518ff 100644 --- a/nixos/modules/services/security/fail2ban.nix +++ b/nixos/modules/services/security/fail2ban.nix @@ -62,6 +62,12 @@ in description = "The firewall package used by fail2ban service."; }; + maxretry = mkOption { + default = 3; + type = types.ints.unsigned; + description = "Number of failures before a host gets banned."; + }; + banaction = mkOption { default = "iptables-multiport"; type = types.str; @@ -291,7 +297,7 @@ in ''} # Miscellaneous options ignoreip = 127.0.0.1/8 ${optionalString config.networking.enableIPv6 "::1"} ${concatStringsSep " " cfg.ignoreIP} - maxretry = 3 + maxretry = ${toString cfg.maxretry} backend = systemd # Actions banaction = ${cfg.banaction} From afb6fe2ffffbcb864ca4df92635fb9fd473cc2e1 Mon Sep 17 00:00:00 2001 From: pennae Date: Sat, 24 Apr 2021 18:14:56 +0200 Subject: [PATCH 028/339] nixos/fail2ban: add extraPackages option some ban actions need additional packages (eg ipset). since actions can be provided by the user we need something general that's easy to configure. we could also enable ipset regardless of the actual configuration of the system if the iptables firewall is in use (like sshguard does), but that seems very clumsy and wouldn't easily solve the binary-not-found problems other actions may also have. --- nixos/modules/services/security/fail2ban.nix | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/nixos/modules/services/security/fail2ban.nix b/nixos/modules/services/security/fail2ban.nix index 22abbb518ff..0c24972823d 100644 --- a/nixos/modules/services/security/fail2ban.nix +++ b/nixos/modules/services/security/fail2ban.nix @@ -62,6 +62,16 @@ in description = "The firewall package used by fail2ban service."; }; + extraPackages = mkOption { + default = []; + type = types.listOf types.package; + example = lib.literalExample "[ pkgs.ipset ]"; + description = '' + Extra packages to be made available to the fail2ban service. The example contains + the packages needed by the `iptables-ipset-proto6` action. + ''; + }; + maxretry = mkOption { default = 3; type = types.ints.unsigned; @@ -249,7 +259,7 @@ in restartTriggers = [ fail2banConf jailConf pathsConf ]; reloadIfChanged = true; - path = [ cfg.package cfg.packageFirewall pkgs.iproute2 ]; + path = [ cfg.package cfg.packageFirewall pkgs.iproute2 ] ++ cfg.extraPackages; unitConfig.Documentation = "man:fail2ban(1)"; From c357fbeb5176c233aa0b36426800ab632eddf217 Mon Sep 17 00:00:00 2001 From: davidak Date: Sat, 24 Apr 2021 17:01:05 +0200 Subject: [PATCH 029/339] doc: add instructions for creating package tests --- .../coding-conventions.chapter.md | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) diff --git a/doc/contributing/coding-conventions.chapter.md b/doc/contributing/coding-conventions.chapter.md index eccf4f7436e..8e35e45f61d 100644 --- a/doc/contributing/coding-conventions.chapter.md +++ b/doc/contributing/coding-conventions.chapter.md @@ -512,3 +512,73 @@ If you do need to do create this sort of patch file, one way to do so is with gi ```ShellSession $ git diff > nixpkgs/pkgs/the/package/0001-changes.patch ``` + +## Package tests {#sec-package-tests} + +Tests are important to ensure quality and make reviews and automatic updates easy. + +Nix package tests are a lightweight alternative to [NixOS module tests](https://nixos.org/manual/nixos/stable/#sec-nixos-tests). They can be used to create simple integration tests for packages while the module tests are used to test services or programs with a graphical user interface on a NixOS VM. Unittests that are included in the source code of a package should be executed in the `checkPhase`. + +### Writing package tests {#ssec-package-tests-writing} + +This is an example using the `phoronix-test-suite` package with the current best practices. + +Add the tests in `passthru.tests` to the package definition like this: + +```nix +{ stdenv, lib, fetchurl, callPackage }: + +stdenv.mkDerivation { + … + + passthru.tests = { + simple-execution = callPackage ./tests.nix { }; + }; + + meta = { … }; +} +``` + +Create `tests.nix` in the package directory: + +```nix +{ runCommand, phoronix-test-suite }: + +let + inherit (phoronix-test-suite) pname version; +in + +runCommand "${pname}-tests" { meta.timeout = 3; } + '' + # automatic initial setup to prevent interactive questions + ${phoronix-test-suite}/bin/phoronix-test-suite enterprise-setup >/dev/null + # get version of installed program and compare with package version + if [[ `${phoronix-test-suite}/bin/phoronix-test-suite version` != *"${version}"* ]]; then + echo "Error: program version does not match package version" + exit 1 + fi + # run dummy command + ${phoronix-test-suite}/bin/phoronix-test-suite dummy_module.dummy-command >/dev/null + # needed for Nix to register the command as successful + touch $out + '' +``` + +### Running package tests {#ssec-package-tests-running} + +You can run these tests with: + +```ShellSession +$ cd path/to/nixpkgs +$ nix-build -A phoronix-test-suite.tests +``` + +### Examples of package tests {#ssec-package-tests-examples} + +Here are examples of package tests: + +- [Jasmin compile test](https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/compilers/jasmin/test-assemble-hello-world/default.nix) +- [Lobster compile test](https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/compilers/lobster/test-can-run-hello-world.nix) +- [Spacy annotation test](https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/python-modules/spacy/annotation-test/default.nix) +- [Libtorch test](https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/libraries/science/math/libtorch/test/default.nix) +- [Multiple tests for nanopb](https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/libraries/nanopb/default.nix) From 5debc5776042e6eda5f87e02308a4b3998258940 Mon Sep 17 00:00:00 2001 From: ZerataX Date: Sat, 12 Dec 2020 22:37:36 +0100 Subject: [PATCH 030/339] mangohud: init at 0.4.1 --- pkgs/tools/graphics/mangohud/combined.nix | 14 ++++ pkgs/tools/graphics/mangohud/default.nix | 79 +++++++++++++++++++++++ pkgs/top-level/all-packages.nix | 4 ++ 3 files changed, 97 insertions(+) create mode 100644 pkgs/tools/graphics/mangohud/combined.nix create mode 100644 pkgs/tools/graphics/mangohud/default.nix diff --git a/pkgs/tools/graphics/mangohud/combined.nix b/pkgs/tools/graphics/mangohud/combined.nix new file mode 100644 index 00000000000..4947cd66e3a --- /dev/null +++ b/pkgs/tools/graphics/mangohud/combined.nix @@ -0,0 +1,14 @@ +{ stdenv, pkgs, lib +, libXNVCtrl +}: +let + mangohud_64 = pkgs.callPackage ./default.nix { inherit libXNVCtrl; }; + mangohud_32 = pkgs.pkgsi686Linux.callPackage ./default.nix { inherit libXNVCtrl; }; +in +pkgs.buildEnv rec { + name = "mangohud-${mangohud_64.version}"; + + paths = [ mangohud_32 ] ++ lib.optionals stdenv.is64bit [ mangohud_64 ]; + + meta = mangohud_64.meta; +} diff --git a/pkgs/tools/graphics/mangohud/default.nix b/pkgs/tools/graphics/mangohud/default.nix new file mode 100644 index 00000000000..26260af50fe --- /dev/null +++ b/pkgs/tools/graphics/mangohud/default.nix @@ -0,0 +1,79 @@ +{ stdenv +, lib +, fetchFromGitHub +, fetchpatch +, meson +, ninja +, pkg-config +, python3Packages +, dbus +, glslang +, libglvnd +, libXNVCtrl +, mesa +, vulkan-headers +, vulkan-loader +, xorg +}: + + +stdenv.mkDerivation rec { + pname = "mangohud${lib.optionalString stdenv.is32bit "_32"}"; + version = "0.4.1"; + + src = fetchFromGitHub { + owner = "flightlessmango"; + repo = "MangoHud"; + rev = "v${version}"; + sha256 = "04v2ps8n15ph2smjgnssax5hq88bszw2kbcff37cnd5c8yysvfi6"; + fetchSubmodules = true; + }; + + patches = [ + (fetchpatch { + # FIXME obsolete in >=0.5.0 + url = "https://patch-diff.githubusercontent.com/raw/flightlessmango/MangoHud/pull/208.patch"; + sha256 = "1i6x6sr4az1zv0p6vpw99n947c7awgbbv087fghjlczhry676nmh"; + }) + ]; + + mesonFlags = [ + "-Dappend_libdir_mangohud=false" + "-Duse_system_vulkan=enabled" + "--libdir=lib${lib.optionalString stdenv.is32bit "32"}" + ]; + + buildInputs = [ + dbus + glslang + libglvnd + libXNVCtrl + mesa + python3Packages.Mako + vulkan-headers + vulkan-loader + xorg.libX11 + ]; + + nativeBuildInputs = [ + meson + ninja + pkg-config + python3Packages.Mako + python3Packages.python + ]; + + preConfigure = '' + mkdir -p "$out/share/vulkan/" + ln -sf "${vulkan-headers}/share/vulkan/registry/" $out/share/vulkan/ + ln -sf "${vulkan-headers}/include" $out + ''; + + meta = with lib; { + description = "A Vulkan and OpenGL overlay for monitoring FPS, temperatures, CPU/GPU load and more"; + homepage = "https://github.com/flightlessmango/MangoHud"; + platforms = platforms.linux; + license = licenses.mit; + maintainers = with maintainers; [ zeratax ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 75dc83b7256..f868e078487 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -6532,6 +6532,10 @@ in mandoc = callPackage ../tools/misc/mandoc { }; + mangohud = callPackage ../tools/graphics/mangohud/combined.nix { + libXNVCtrl = linuxPackages.nvidia_x11.settings.libXNVCtrl; + }; + manix = callPackage ../tools/nix/manix { inherit (darwin.apple_sdk.frameworks) Security; }; From e17b57ad75fb1fda03850beca5dc1c5aa337ad60 Mon Sep 17 00:00:00 2001 From: Charles Strahan Date: Sun, 25 Apr 2021 05:42:09 -0500 Subject: [PATCH 031/339] rset: init at 2.1 --- pkgs/tools/admin/rset/default.nix | 48 +++++++++++ pkgs/tools/admin/rset/paths.patch | 131 ++++++++++++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 3 files changed, 181 insertions(+) create mode 100644 pkgs/tools/admin/rset/default.nix create mode 100644 pkgs/tools/admin/rset/paths.patch diff --git a/pkgs/tools/admin/rset/default.nix b/pkgs/tools/admin/rset/default.nix new file mode 100644 index 00000000000..f7c00fffb1c --- /dev/null +++ b/pkgs/tools/admin/rset/default.nix @@ -0,0 +1,48 @@ +{ lib, stdenv, fetchurl, coreutils, openssh, gnutar }: + +stdenv.mkDerivation rec { + pname = "rset"; + version = "2.1"; + + src = fetchurl { + url = "https://scriptedconfiguration.org/code/${pname}-${version}.tar.gz"; + sha256 = "0916f96afl8kcn2hpj4qhg92g2j93ycp2sb94nsz3q44sqc6ddhb"; + }; + + patches = [ ./paths.patch ]; + + postPatch = '' + substituteInPlace rset.c \ + --replace @ssh@ ${openssh}/bin/ssh \ + --replace @miniquark@ $out/bin/miniquark \ + --replace @rinstall@ $out/bin/rinstall \ + --replace @rsub@ $out/bin/rsub + + substituteInPlace execute.c \ + --replace @ssh@ ${openssh}/bin/ssh \ + --replace @ssh-add@ ${openssh}/bin/ssh-add \ + --replace @tar@ ${gnutar}/bin/tar + + substituteInPlace rutils.c \ + --replace @install@ ${coreutils}/bin/install + ''; + + # these are to be run on the remote host, + # so we want to preserve the original shebang. + postFixup = '' + sed -i "1s@.*@#!/bin/sh@" $out/bin/rinstall + sed -i "1s@.*@#!/bin/sh@" $out/bin/rsub + ''; + + dontAddPrefix = true; + installFlags = [ "PREFIX=$(out)" ]; + + meta = with lib; { + homepage = "https://scriptedconfiguration.org/"; + description = "Configure systems using any scripting language"; + changelog = "https://github.com/eradman/rset/raw/${version}/NEWS"; + license = licenses.isc; + platforms = platforms.unix; + maintainers = with maintainers; [ cstrahan ]; + }; +} diff --git a/pkgs/tools/admin/rset/paths.patch b/pkgs/tools/admin/rset/paths.patch new file mode 100644 index 00000000000..af09b0902ed --- /dev/null +++ b/pkgs/tools/admin/rset/paths.patch @@ -0,0 +1,131 @@ +diff --git a/execute.c b/execute.c +index be06068..3468fa7 100644 +--- a/execute.c ++++ b/execute.c +@@ -242,7 +242,7 @@ verify_ssh_agent() { + char *output; + char *argv[32]; + +- append(argv, 0, "ssh-add", "-l", NULL); ++ append(argv, 0, "@ssh-add@", "-l", NULL); + output = cmd_pipe_stdout(argv, &error_code, &output_size); + free(output); + +@@ -282,7 +282,7 @@ start_connection(char *socket_path, Label *route_label, int http_port, const cha + } + + argc = 0; +- argc = append(argv, argc, "ssh", "-fN", "-R", port_forwarding, "-S", ++ argc = append(argv, argc, "@ssh@", "-fN", "-R", port_forwarding, "-S", + socket_path, "-M", NULL); + if (ssh_config) + (void) append(argv, argc, "-F", ssh_config, host_name, NULL); +@@ -292,12 +292,12 @@ start_connection(char *socket_path, Label *route_label, int http_port, const cha + return -1; + + snprintf(tmp_path, sizeof(tmp_path), "mkdir " REMOTE_TMP_PATH, http_port); +- append(argv, 0, "ssh", "-S", socket_path, host_name, tmp_path, NULL); ++ append(argv, 0, "@ssh@", "-S", socket_path, host_name, tmp_path, NULL); + if (run(argv) != 0) + return -1; + +- snprintf(cmd, PATH_MAX, "tar -cf - %s -C " REPLICATED_DIRECTORY " ./ | " +- "exec ssh -q -S %s %s tar -xf - -C " REMOTE_TMP_PATH, ++ snprintf(cmd, PATH_MAX, "@tar@ -cf - %s -C " REPLICATED_DIRECTORY " ./ | " ++ "exec @ssh@ -q -S %s %s tar -xf - -C " REMOTE_TMP_PATH, + array_to_str(route_label->export_paths), socket_path, host_name, + http_port); + if (system(cmd) != 0) { +@@ -326,7 +326,7 @@ ssh_command_pipe(char *host_name, char *socket_path, Label *host_label, int http + + /* construct ssh command */ + argc = 0; +- argc = append(argv, argc, "ssh", "-T", "-S", socket_path, NULL); ++ argc = append(argv, argc, "@ssh@", "-T", "-S", socket_path, NULL); + + (void) append(argv, argc, host_name, cmd, NULL); + return cmd_pipe_stdin(argv, host_label->content, host_label->content_size); +@@ -344,7 +344,7 @@ ssh_command_tty(char *host_name, char *socket_path, Label *host_label, int http_ + http_port); + /* construct ssh command */ + argc = 0; +- argc = append(argv, argc, "ssh", "-T", "-S", socket_path, NULL); ++ argc = append(argv, argc, "@ssh@", "-T", "-S", socket_path, NULL); + (void) append(argv, argc, host_name, cmd, NULL); + cmd_pipe_stdin(argv, host_label->content, host_label->content_size); + +@@ -360,7 +360,7 @@ ssh_command_tty(char *host_name, char *socket_path, Label *host_label, int http_ + + /* construct ssh command */ + argc = 0; +- argc = append(argv, argc, "ssh", "-t", "-S", socket_path, NULL); ++ argc = append(argv, argc, "@ssh@", "-t", "-S", socket_path, NULL); + + (void) append(argv, argc, host_name, cmd, NULL); + return run(argv); +@@ -375,11 +375,11 @@ end_connection(char *socket_path, char *host_name, int http_port) { + return; + + snprintf(tmp_path, sizeof(tmp_path), REMOTE_TMP_PATH, http_port); +- append(argv, 0, "ssh", "-S", socket_path, host_name, "rm", "-rf", tmp_path , NULL); ++ append(argv, 0, "@ssh@", "-S", socket_path, host_name, "rm", "-rf", tmp_path , NULL); + if (run(argv) != 0) + warn("remote tmp dir"); + +- append(argv, 0, "ssh", "-q", "-S", socket_path, "-O", "exit", host_name, NULL); ++ append(argv, 0, "@ssh@", "-q", "-S", socket_path, "-O", "exit", host_name, NULL); + if (run(argv) != 0) + warn("exec ssh -O exit"); + } +diff --git a/rset.c b/rset.c +index 383fc82..9c20f65 100644 +--- a/rset.c ++++ b/rset.c +@@ -128,10 +128,8 @@ int main(int argc, char *argv[]) + hostnames[i] = argv[optind+i]; + hostnames[i] = NULL; + +- if ((rinstall_bin = findprog("rinstall")) == 0) +- not_found("rinstall"); +- if ((rsub_bin = findprog("rsub")) == 0) +- not_found("rsub"); ++ rinstall_bin = "@rinstall@"; ++ rsub_bin = "@rsub@"; + + /* all operations must be relative to the routes file */ + if (realpath(xdirname(routes_file), routes_realpath) == NULL) +@@ -159,10 +157,9 @@ int main(int argc, char *argv[]) + + /* Convert http server command line into a vector */ + inputstring = malloc(PATH_MAX); +- snprintf(inputstring, PATH_MAX, "miniquark -p %d -d " PUBLIC_DIRECTORY, http_port); ++ snprintf(inputstring, PATH_MAX, "@miniquark@ -p %d -d " PUBLIC_DIRECTORY, http_port); + str_to_array(http_srv_argv, inputstring, sizeof(http_srv_argv)); +- if ((httpd_bin = findprog(http_srv_argv[0])) == 0) +- not_found(http_srv_argv[0]); ++ httpd_bin = "@miniquark@"; + + /* start the web server */ + pipe(stdout_pipe); +@@ -397,7 +394,7 @@ handle_exit(int sig) { + printf("caught signal %d, terminating connection to '%s'\n", sig, + hostname); + /* clean up socket and SSH connection; leaving staging dir */ +- execlp("ssh", "ssh", "-S", socket_path, "-O", "exit", hostname, NULL); ++ execlp("@ssh@", "@ssh@", "-S", socket_path, "-O", "exit", hostname, NULL); + err(1, "ssh -O exit"); + } + } +diff --git a/rutils.c b/rutils.c +index 1e182d8..9aef76d 100644 +--- a/rutils.c ++++ b/rutils.c +@@ -77,7 +77,7 @@ install_if_new(const char *src, const char *dst) { + + pid = fork(); + if (pid == 0) { +- if (execl("/usr/bin/install", "/usr/bin/install", src, dst, NULL) != -1) ++ if (execl("@install@", "@install@", src, dst, NULL) != -1) + err(1, "%s", dst); + } + waitpid(pid, &status, 0); diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 05ec02277c5..f779a1c3bee 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -8019,6 +8019,8 @@ in rrdtool = callPackage ../tools/misc/rrdtool { }; + rset = callPackage ../tools/admin/rset { }; + rshijack = callPackage ../tools/networking/rshijack { }; rsibreak = libsForQt5.callPackage ../applications/misc/rsibreak { }; From eed41443753706f4280e616bc047de3c56be5e8f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=BCtz?= Date: Sun, 25 Apr 2021 15:08:18 +0200 Subject: [PATCH 032/339] libsForQt5.libopenshot: use ffmpeg instead of ffmpeg_3 --- pkgs/applications/video/openshot-qt/libopenshot.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/video/openshot-qt/libopenshot.nix b/pkgs/applications/video/openshot-qt/libopenshot.nix index 169bd33b709..8081c2766ba 100644 --- a/pkgs/applications/video/openshot-qt/libopenshot.nix +++ b/pkgs/applications/video/openshot-qt/libopenshot.nix @@ -1,6 +1,6 @@ { lib, stdenv, fetchFromGitHub, fetchpatch , pkg-config, cmake, doxygen -, libopenshot-audio, imagemagick, ffmpeg_3 +, libopenshot-audio, imagemagick, ffmpeg , swig, python3 , unittest-cpp, cppzmq, zeromq , qtbase, qtmultimedia @@ -36,7 +36,7 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ pkg-config cmake doxygen ]; buildInputs = - [ imagemagick ffmpeg_3 swig python3 unittest-cpp + [ imagemagick ffmpeg swig python3 unittest-cpp cppzmq zeromq qtbase qtmultimedia ] ++ optional stdenv.isDarwin llvmPackages.openmp ; From 51ff202c23f6381bb786cabc7cc83c2ab9f1a7a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=BCtz?= Date: Sun, 25 Apr 2021 15:46:53 +0200 Subject: [PATCH 033/339] libsForQt5.libopenshot: remove unittest-cpp Tests are disabled. --- pkgs/applications/video/openshot-qt/libopenshot.nix | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pkgs/applications/video/openshot-qt/libopenshot.nix b/pkgs/applications/video/openshot-qt/libopenshot.nix index 8081c2766ba..30845faccd7 100644 --- a/pkgs/applications/video/openshot-qt/libopenshot.nix +++ b/pkgs/applications/video/openshot-qt/libopenshot.nix @@ -36,7 +36,7 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ pkg-config cmake doxygen ]; buildInputs = - [ imagemagick ffmpeg swig python3 unittest-cpp + [ imagemagick ffmpeg swig python3 cppzmq zeromq qtbase qtmultimedia ] ++ optional stdenv.isDarwin llvmPackages.openmp ; @@ -44,7 +44,6 @@ stdenv.mkDerivation rec { dontWrapQtApps = true; LIBOPENSHOT_AUDIO_DIR = libopenshot-audio; - "UNITTEST++_INCLUDE_DIR" = "${unittest-cpp}/include/UnitTest++"; doCheck = false; From 3af3db2024a645c1188f5509e66c50cc5bcf7c9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=BCtz?= Date: Sun, 25 Apr 2021 15:47:43 +0200 Subject: [PATCH 034/339] libsForQt5.libopenshot: unvendor jsoncpp --- pkgs/applications/video/openshot-qt/libopenshot.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/video/openshot-qt/libopenshot.nix b/pkgs/applications/video/openshot-qt/libopenshot.nix index 30845faccd7..d635d6052cf 100644 --- a/pkgs/applications/video/openshot-qt/libopenshot.nix +++ b/pkgs/applications/video/openshot-qt/libopenshot.nix @@ -1,7 +1,7 @@ { lib, stdenv, fetchFromGitHub, fetchpatch , pkg-config, cmake, doxygen , libopenshot-audio, imagemagick, ffmpeg -, swig, python3 +, swig, python3, jsoncpp , unittest-cpp, cppzmq, zeromq , qtbase, qtmultimedia , llvmPackages @@ -36,7 +36,7 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ pkg-config cmake doxygen ]; buildInputs = - [ imagemagick ffmpeg swig python3 + [ imagemagick ffmpeg swig python3 jsoncpp cppzmq zeromq qtbase qtmultimedia ] ++ optional stdenv.isDarwin llvmPackages.openmp ; From bdfc6247239091728ea0f95f77ae3024bc119376 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Fri, 23 Apr 2021 01:01:04 +0200 Subject: [PATCH 035/339] python3packages.pyotgw: unstable-2021-03-25 --- .../python-modules/pyotgw/default.nix | 41 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 43 insertions(+) create mode 100644 pkgs/development/python-modules/pyotgw/default.nix diff --git a/pkgs/development/python-modules/pyotgw/default.nix b/pkgs/development/python-modules/pyotgw/default.nix new file mode 100644 index 00000000000..b48c190ca1e --- /dev/null +++ b/pkgs/development/python-modules/pyotgw/default.nix @@ -0,0 +1,41 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, pyserial-asyncio +, pytest-asyncio +, pytestCheckHook +, pythonOlder +}: + +buildPythonPackage rec { + pname = "pyotgw"; + version = "unstable-2021-03-25"; + disabled = pythonOlder "3.7"; + + src = fetchFromGitHub { + owner = "mvn23"; + repo = pname; + rev = "1854ef4ffb907524ff457ba558e4979ba7fabd02"; + sha256 = "0zckd85dmzpz0drcgx16ly6kzh1f1slcxb9lrcf81wh1p4q9bcaa"; + }; + + propagatedBuildInputs = [ + pyserial-asyncio + ]; + + checkInputs = [ + pytest-asyncio + pytestCheckHook + ]; + + pytestFlagsArray = [ "tests" ]; + + pythonImportsCheck = [ "pyotgw" ]; + + meta = with lib; { + description = "Python module to interact the OpenTherm Gateway"; + homepage = "https://github.com/mvn23/pyotgw"; + license = with licenses; [ gpl3Plus ]; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 439d4d8e4a5..7d4bb05bb3e 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -5843,6 +5843,8 @@ in { inherit (pkgs) lz4; }; + pyotgw = callPackage ../development/python-modules/pyotgw { }; + pyotp = callPackage ../development/python-modules/pyotp { }; pyowm = callPackage ../development/python-modules/pyowm { }; From 8a6b6c106f8850796543eb0a45bec1f5aeefd370 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Sun, 25 Apr 2021 16:35:58 +0200 Subject: [PATCH 036/339] home-assistant: update component-packages --- pkgs/servers/home-assistant/component-packages.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/servers/home-assistant/component-packages.nix b/pkgs/servers/home-assistant/component-packages.nix index d3270846a53..abeacda73ba 100644 --- a/pkgs/servers/home-assistant/component-packages.nix +++ b/pkgs/servers/home-assistant/component-packages.nix @@ -598,7 +598,7 @@ "openhome" = ps: with ps; [ openhomedevice ]; "opensensemap" = ps: with ps; [ opensensemap-api ]; "opensky" = ps: with ps; [ ]; - "opentherm_gw" = ps: with ps; [ ]; # missing inputs: pyotgw + "opentherm_gw" = ps: with ps; [ pyotgw ]; "openuv" = ps: with ps; [ pyopenuv ]; "openweathermap" = ps: with ps; [ pyowm ]; "opnsense" = ps: with ps; [ pyopnsense ]; From 98fd3adf27cfb14b085a798429134b723f8bbd2d Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Sun, 25 Apr 2021 16:41:18 +0200 Subject: [PATCH 037/339] home-assistant: enable opentherm_gw tests --- pkgs/servers/home-assistant/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/servers/home-assistant/default.nix b/pkgs/servers/home-assistant/default.nix index b66fd64d109..f59979f909e 100644 --- a/pkgs/servers/home-assistant/default.nix +++ b/pkgs/servers/home-assistant/default.nix @@ -335,6 +335,7 @@ in with py.pkgs; buildPythonApplication rec { "omnilogic" "ondilo_ico" "openerz" + "opentherm_gw" "ozw" "panel_custom" "panel_iframe" From 3a9609613d1c98d03ec8fe3235a6aff3d3d2da21 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Sun, 25 Apr 2021 20:24:07 +0200 Subject: [PATCH 038/339] nixos/opendkim: Fix CapabilityBoundingSet option An empty list results in no CapabilityBoundingSet at all, an empty string however will set `CapabilityBoundingSet=`, which represents a closed set. Related: #120617 --- nixos/modules/services/mail/opendkim.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nixos/modules/services/mail/opendkim.nix b/nixos/modules/services/mail/opendkim.nix index 9bf6f338d93..beff57613af 100644 --- a/nixos/modules/services/mail/opendkim.nix +++ b/nixos/modules/services/mail/opendkim.nix @@ -134,7 +134,7 @@ in { ReadWritePaths = [ cfg.keyPath ]; AmbientCapabilities = []; - CapabilityBoundingSet = []; + CapabilityBoundingSet = ""; DevicePolicy = "closed"; LockPersonality = true; MemoryDenyWriteExecute = true; From 6f358fa1d48d162b529635b7e137ea562b236621 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Sun, 25 Apr 2021 20:26:22 +0200 Subject: [PATCH 039/339] nixos/rspamd: Fix CapabilityBoundingSet option An empty list results in no CapabilityBoundingSet at all, an empty string however will set `CapabilityBoundingSet=`, which represents a closed set. Related: #120617 --- nixos/modules/services/mail/rspamd.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nixos/modules/services/mail/rspamd.nix b/nixos/modules/services/mail/rspamd.nix index 2f9d28195bd..473ddd52357 100644 --- a/nixos/modules/services/mail/rspamd.nix +++ b/nixos/modules/services/mail/rspamd.nix @@ -410,7 +410,7 @@ in StateDirectoryMode = "0700"; AmbientCapabilities = []; - CapabilityBoundingSet = []; + CapabilityBoundingSet = ""; DevicePolicy = "closed"; LockPersonality = true; NoNewPrivileges = true; From 977a71dca501c3e89be16dc97ab6c9f2adb6b74d Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Sun, 25 Apr 2021 19:55:42 +0000 Subject: [PATCH 040/339] android-udev-rules: 20210302 -> 20210425 --- pkgs/os-specific/linux/android-udev-rules/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/os-specific/linux/android-udev-rules/default.nix b/pkgs/os-specific/linux/android-udev-rules/default.nix index e542c0dbc63..d41c3e2dc33 100644 --- a/pkgs/os-specific/linux/android-udev-rules/default.nix +++ b/pkgs/os-specific/linux/android-udev-rules/default.nix @@ -6,13 +6,13 @@ stdenv.mkDerivation rec { pname = "android-udev-rules"; - version = "20210302"; + version = "20210425"; src = fetchFromGitHub { owner = "M0Rf30"; repo = "android-udev-rules"; rev = version; - sha256 = "sha256-yIVHcaQAr2gKH/NZeN+vRmGS8OgyNeRsZkCYyqjsSsI="; + sha256 = "sha256-crNK6mZCCqD/Lm3rNtfH/4F48RuQCqHWP+qsTNVLOGY="; }; installPhase = '' From df6b666353d33cbedf3960c2465d306a718a997b Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Sun, 25 Apr 2021 21:14:42 +0000 Subject: [PATCH 041/339] conky: 1.12.1 -> 1.12.2 --- pkgs/os-specific/linux/conky/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/os-specific/linux/conky/default.nix b/pkgs/os-specific/linux/conky/default.nix index 0e7eaa19b4d..9bd8890e713 100644 --- a/pkgs/os-specific/linux/conky/default.nix +++ b/pkgs/os-specific/linux/conky/default.nix @@ -68,13 +68,13 @@ with lib; stdenv.mkDerivation rec { pname = "conky"; - version = "1.12.1"; + version = "1.12.2"; src = fetchFromGitHub { owner = "brndnmtthws"; repo = "conky"; rev = "v${version}"; - sha256 = "sha256-qQx9+Z1OAQlbHupflzHD5JV4NqedoF8A57F1+rPT3/o="; + sha256 = "sha256-x6bR5E5LIvKWiVM15IEoUgGas/hcRp3F/O4MTOhVPb8="; }; postPatch = '' From 2819d5ea231b80b7010518984ff3577bd7847f28 Mon Sep 17 00:00:00 2001 From: Sebastian Neubauer Date: Thu, 22 Apr 2021 18:56:11 +0200 Subject: [PATCH 042/339] rgp: 1.9 -> 1.10 --- pkgs/development/tools/rgp/default.nix | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/pkgs/development/tools/rgp/default.nix b/pkgs/development/tools/rgp/default.nix index 3cfd608e225..7b49a83b1cc 100644 --- a/pkgs/development/tools/rgp/default.nix +++ b/pkgs/development/tools/rgp/default.nix @@ -19,15 +19,15 @@ }: let - buildNum = "2020-11-19-376"; + buildNum = "2021-03-31-696"; in stdenv.mkDerivation rec { pname = "rgp"; - version = "1.9"; + version = "1.10"; src = fetchurl { url = "https://gpuopen.com/download/radeon-developer-tool-suite/RadeonDeveloperToolSuite-${buildNum}.tgz"; - sha256 = "f71ibuMerd0SmXKSDjaTj7xtyy1dWzkZ5s0PlGtQ1+k="; + sha256 = "1GUV75KpYbeq7KkE86QqTfGnf/t3VEgviaAsbg/LWJI="; }; nativeBuildInputs = [ makeWrapper autoPatchelfHook ]; @@ -59,6 +59,9 @@ stdenv.mkDerivation rec { mkdir -p $out/opt/rgp $out/bin cp -r . $out/opt/rgp/ + chmod +x $out/opt/rgp/scripts/* + patchShebangs $out/opt/rgp/scripts + for prog in RadeonDeveloperPanel RadeonDeveloperService RadeonDeveloperServiceCLI RadeonGPUAnalyzer RadeonGPUProfiler rga rtda; do # makeWrapper is needed so that executables are started from the opt # directory, where qt.conf and other tools are From 0cf4190344d12d2d390de9c780312a46fb86ca1e Mon Sep 17 00:00:00 2001 From: SCOTT-HAMILTON Date: Sat, 24 Apr 2021 19:18:47 +0200 Subject: [PATCH 043/339] googleearth-pro: don't use bundled libs --- .../misc/googleearth-pro/default.nix | 150 ++++++++++++------ pkgs/top-level/all-packages.nix | 2 +- 2 files changed, 100 insertions(+), 52 deletions(-) diff --git a/pkgs/applications/misc/googleearth-pro/default.nix b/pkgs/applications/misc/googleearth-pro/default.nix index 7a509267504..e7cfe04da6e 100644 --- a/pkgs/applications/misc/googleearth-pro/default.nix +++ b/pkgs/applications/misc/googleearth-pro/default.nix @@ -1,42 +1,54 @@ -{ lib, stdenv, fetchurl, glibc, libGLU, libGL, freetype, glib, libSM, libICE, libXi, libXv -, libXrender, libXrandr, libXfixes, libXcursor, libXinerama, libXext, libX11, libXcomposite -, libxcb, sqlite, zlib, fontconfig, dpkg, libproxy, libxml2, gst_all_1, dbus, makeWrapper -, xkeyboardconfig }: +{ lib +, stdenv +, mkDerivation +, fetchurl +, ffmpeg_3 +, freetype +, gdal_2 +, glib +, libGL +, libGLU +, libICE +, libSM +, libXi +, libXv +, libav_12 +, libXrender +, libXrandr +, libXfixes +, libXcursor +, libXinerama +, libXext +, libX11 +, libXcomposite + +, libxcb +, sqlite +, zlib +, fontconfig +, dpkg +, libproxy +, libxml2 +, gst_all_1 +, dbus +, makeWrapper + +, qtlocation +, qtwebkit +, qtx11extras +, qtsensors +, qtscript + +, xkeyboardconfig +, autoPatchelfHook +}: let arch = if stdenv.hostPlatform.system == "x86_64-linux" then "amd64" else throw "Unsupported system ${stdenv.hostPlatform.system} "; - fullPath = lib.makeLibraryPath [ - glibc - glib - stdenv.cc.cc - libSM - libICE - libXi - libXv - libGLU libGL - libXrender - libXrandr - libXfixes - libXcursor - libXinerama - libXcomposite - freetype - libXext - libX11 - libxcb - sqlite - zlib - fontconfig - libproxy - libxml2 - dbus - gst_all_1.gstreamer - gst_all_1.gst-plugins-base - ]; in -stdenv.mkDerivation rec { +mkDerivation rec { pname = "googleearth-pro"; version = "7.3.3.7786"; @@ -45,21 +57,56 @@ stdenv.mkDerivation rec { sha256 = "1s3cakwrgf702g33rh8qs657d8bl68wgg8k89rksgvswwpd2zbb3"; }; - nativeBuildInputs = [ dpkg makeWrapper ]; + nativeBuildInputs = [ dpkg makeWrapper autoPatchelfHook ]; propagatedBuildInputs = [ xkeyboardconfig ]; + buildInputs = [ + dbus + ffmpeg_3 + fontconfig + freetype + gdal_2 + glib + gst_all_1.gst-plugins-base + gst_all_1.gstreamer + libGL + libGLU + libICE + libSM + libX11 + libXcomposite + libXcursor + libXext + libXfixes + libXi + libXinerama + libXrandr + libXrender + libXv + libav_12 + libproxy + libxcb + libxml2 + qtlocation + qtscript + qtsensors + qtwebkit + qtx11extras + sqlite + zlib + ]; doInstallCheck = true; dontBuild = true; - dontPatchELF = true; - unpackPhase = '' # deb file contains a setuid binary, so 'dpkg -x' doesn't work here dpkg --fsys-tarfile ${src} | tar --extract ''; installPhase ='' + runHook preInstall + mkdir $out mv usr/* $out/ rmdir usr @@ -68,20 +115,9 @@ stdenv.mkDerivation rec { # patch and link googleearth binary ln -s $out/opt/google/earth/pro/googleearth-bin $out/bin/googleearth-pro - patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ - --set-rpath "${fullPath}:\$ORIGIN" \ - $out/opt/google/earth/pro/googleearth-bin # patch and link gpsbabel binary ln -s $out/opt/google/earth/pro/gpsbabel $out/bin/gpsbabel - patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ - --set-rpath "${fullPath}:\$ORIGIN" \ - $out/opt/google/earth/pro/gpsbabel - - # patch libraries - for a in $out/opt/google/earth/pro/*.so* ; do - patchelf --set-rpath "${fullPath}:\$ORIGIN" $a - done # Add desktop config file and icons mkdir -p $out/share/{applications,icons/hicolor/{16x16,22x22,24x24,32x32,48x48,64x64,128x128,256x256}/apps,pixmaps} @@ -91,25 +127,37 @@ stdenv.mkDerivation rec { ln -s $out/opt/google/earth/pro/product_logo_"$size".png $out/share/icons/hicolor/"$size"x"$size"/apps/google-earth-pro.png done ln -s $out/opt/google/earth/pro/product_logo_256.png $out/share/pixmaps/google-earth-pro.png + + runHook postInstall ''; + postInstall = '' + find "$out/opt/google/earth/pro" -name "*.so.*" | \ + egrep -v 'libssl*|libcrypto*|libicu*' | \ + xargs rm + find "$out/opt/google/earth/pro" -name "*.so" | \ + egrep -v 'libgoogle*|libauth*|libbase*|libcommon*|libcommon_gui*|libcommon_platform*|libcommon_webbrowser*|libcomponentframework*|libgeobase*|libgeobaseutils*|libge_net*|libgdata*|libgoogleapi*|libmath*|libmoduleframework*|libmaps*|libport*|libprintmodule*|libprofile*|librender*|libreporting*|libsgutil*|libspatial*|libxsltransform*|libbase*|libport*|libport*|libbase*|libcomponentframework*|libIGCore*|libIGUtils*|libaction*|libapiloader*|libapiloader*|libIGCore*|libIGUtils*|libIGMath*|libfusioncommon*|libge_exif*|libaction*|libfusioncommon*|libapiloader*|liblayer*|libapiloader*|libIGAttrs*|libIGCore*|libIGGfx*|libIGMath*|libIGSg*|libIGUtils*|libwmsbase*|libwebbrowser*|libevllpro*|libalchemyext*|libge_cache*|libflightsim*|libnpgeinprocessplugin*|libmeasure*|libviewsync*|libcapture*|libtheme*|libgps*|libgisingest*|libsearchmodule*|libinput_plugin*|libnavigate*|libspnav*|libsearch*|libLeap*' | \ + xargs rm + ''; + + autoPatchelfIgnoreMissingDeps=true; + installCheckPhase = '' $out/bin/gpsbabel -V > /dev/null ''; # wayland is not supported by Qt included in binary package, so make sure it uses xcb - fixupPhase = '' + postFixup = '' wrapProgram $out/bin/googleearth-pro \ --set QT_QPA_PLATFORM xcb \ --set QT_XKB_CONFIG_ROOT "${xkeyboardconfig}/share/X11/xkb" ''; - meta = with lib; { description = "A world sphere viewer"; - homepage = "https://earth.google.com"; + homepage = "https://www.google.com/earth/"; license = licenses.unfree; - maintainers = with maintainers; [ friedelino ]; + maintainers = with maintainers; [ friedelino shamilton ]; platforms = platforms.linux; }; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 1da1e9d3457..4acf443af64 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -23477,7 +23477,7 @@ in googleearth = callPackage ../applications/misc/googleearth { }; - googleearth-pro = callPackage ../applications/misc/googleearth-pro { }; + googleearth-pro = libsForQt5.callPackage ../applications/misc/googleearth-pro { }; google-chrome = callPackage ../applications/networking/browsers/google-chrome { gconf = gnome2.GConf; }; From ab91aea5ea15623882861b566d1a0e23e45857e9 Mon Sep 17 00:00:00 2001 From: Aaron Andersen Date: Mon, 26 Apr 2021 08:47:20 -0400 Subject: [PATCH 044/339] openscenegraph: update from ffmpeg_3 to ffmpeg --- pkgs/development/libraries/openscenegraph/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/openscenegraph/default.nix b/pkgs/development/libraries/openscenegraph/default.nix index da7e9c755a0..6b446882ba1 100644 --- a/pkgs/development/libraries/openscenegraph/default.nix +++ b/pkgs/development/libraries/openscenegraph/default.nix @@ -11,7 +11,7 @@ curlSupport ? true, curl, colladaSupport ? false, opencollada, opencascadeSupport ? false, opencascade, - ffmpegSupport ? false, ffmpeg_3, + ffmpegSupport ? false, ffmpeg, nvttSupport ? false, nvidia-texture-tools, freetypeSupport ? true, freetype, svgSupport ? false, librsvg, @@ -50,7 +50,7 @@ stdenv.mkDerivation rec { ++ lib.optional curlSupport curl ++ lib.optional colladaSupport opencollada ++ lib.optional opencascadeSupport opencascade - ++ lib.optional ffmpegSupport ffmpeg_3 + ++ lib.optional ffmpegSupport ffmpeg ++ lib.optional nvttSupport nvidia-texture-tools ++ lib.optional freetypeSupport freetype ++ lib.optional svgSupport librsvg From 94f8f5edf7cf2f4d3d3fd9ea3c69cfbfd7f66e0c Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Mon, 26 Apr 2021 14:59:46 +0200 Subject: [PATCH 045/339] python3Packages.autoit-ripper: init at 1.0.1 --- .../python-modules/autoit-ripper/default.nix | 36 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 ++ 2 files changed, 38 insertions(+) create mode 100644 pkgs/development/python-modules/autoit-ripper/default.nix diff --git a/pkgs/development/python-modules/autoit-ripper/default.nix b/pkgs/development/python-modules/autoit-ripper/default.nix new file mode 100644 index 00000000000..2276241d25e --- /dev/null +++ b/pkgs/development/python-modules/autoit-ripper/default.nix @@ -0,0 +1,36 @@ +{ lib +, buildPythonPackage +, fetchPypi +, lief +, pythonOlder +}: + +buildPythonPackage rec { + pname = "autoit-ripper"; + version = "1.0.1"; + disabled = pythonOlder "3.6"; + + src = fetchPypi { + inherit pname version; + sha256 = "0mbsrfa72n7y1vkm9jhwhn1z3k45jxrlgx58ia1l2bp6chnnn2zy"; + }; + + propagatedBuildInputs = [ + lief + ]; + + postPatch = '' + substituteInPlace requirements.txt --replace "lief==0.10.1" "lief>=0.10.1" + ''; + + # Project has no tests + doCheck = false; + pythonImportsCheck = [ "autoit_ripper" ]; + + meta = with lib; { + description = "Python module to extract AutoIt scripts embedded in PE binaries"; + homepage = "https://github.com/nazywam/AutoIt-Ripper"; + license = with licenses; [ mit ]; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index adb4a4aa403..4ac0d6e32a6 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -617,6 +617,8 @@ in { autograd = callPackage ../development/python-modules/autograd { }; + autoit-ripper = callPackage ../development/python-modules/autoit-ripper { }; + autologging = callPackage ../development/python-modules/autologging { }; automat = callPackage ../development/python-modules/automat { }; From d8c45d876ab08bcad5cf9f646c78c7e4d5c0f78c Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Mon, 26 Apr 2021 14:55:56 +0200 Subject: [PATCH 046/339] python3Packages.karton-autoit-ripper: init at 1.0.0 --- .../karton-autoit-ripper/default.nix | 46 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 48 insertions(+) create mode 100644 pkgs/development/python-modules/karton-autoit-ripper/default.nix diff --git a/pkgs/development/python-modules/karton-autoit-ripper/default.nix b/pkgs/development/python-modules/karton-autoit-ripper/default.nix new file mode 100644 index 00000000000..d1f79f42a2a --- /dev/null +++ b/pkgs/development/python-modules/karton-autoit-ripper/default.nix @@ -0,0 +1,46 @@ +{ lib +, autoit-ripper +, buildPythonPackage +, fetchFromGitHub +, karton-core +, malduck +, regex +}: + +buildPythonPackage rec { + pname = "karton-autoit-ripper"; + version = "1.0.0"; + + src = fetchFromGitHub { + owner = "CERT-Polska"; + repo = pname; + rev = "v${version}"; + sha256 = "0vdsxkbjcr0inpcfjh45gl72ipzklkhgs06fdpkyy9y0cfx3zq7z"; + }; + + propagatedBuildInputs = [ + autoit-ripper + karton-core + malduck + regex + ]; + + postPatch = '' + substituteInPlace requirements.txt \ + --replace "autoit-ripper==1.0.0" "autoit-ripper" \ + --replace "karton.core==4.0.4" "karton-core" \ + --replace "malduck==3.1.0" "malduck>=3.1.0" \ + --replace "regex==2020.2.20" "regex>=2020.2.20" + ''; + + # Project has no tests + doCheck = false; + pythonImportsCheck = [ "karton.autoit_ripper" ]; + + meta = with lib; { + description = "AutoIt script ripper for Karton framework"; + homepage = "https://github.com/CERT-Polska/karton-autoit-ripper"; + license = with licenses; [ bsd3 ]; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 4ac0d6e32a6..46b2601dfe5 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -3555,6 +3555,8 @@ in { karton-asciimagic = callPackage ../development/python-modules/karton-asciimagic { }; + karton-autoit-ripper = callPackage ../development/python-modules/karton-autoit-ripper { }; + karton-classifier = callPackage ../development/python-modules/karton-classifier { }; karton-config-extractor = callPackage ../development/python-modules/karton-config-extractor { }; From cfcda0dc34e2851d06c7db41328648dc7d87763a Mon Sep 17 00:00:00 2001 From: midchildan Date: Sun, 4 Apr 2021 20:03:43 +0900 Subject: [PATCH 047/339] cjose: init at 0.6.1 --- pkgs/development/libraries/cjose/default.nix | 40 ++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 2 files changed, 42 insertions(+) create mode 100644 pkgs/development/libraries/cjose/default.nix diff --git a/pkgs/development/libraries/cjose/default.nix b/pkgs/development/libraries/cjose/default.nix new file mode 100644 index 00000000000..57b5c6c1b8b --- /dev/null +++ b/pkgs/development/libraries/cjose/default.nix @@ -0,0 +1,40 @@ +{ lib +, stdenv +, fetchFromGitHub +, autoreconfHook +, pkg-config +, doxygen +, check +, jansson +, openssl +}: + +stdenv.mkDerivation rec { + pname = "cjose"; + version = "0.6.1"; + + src = fetchFromGitHub { + owner = "cisco"; + repo = "cjose"; + rev = version; + sha256 = "1msyjwmylb5c7jc16ryx3xb9cdwx682ihsm0ni766y6dfwx8bkhp"; + }; + + nativeBuildInputs = [ autoreconfHook pkg-config doxygen ]; + buildInputs = [ jansson openssl ]; + checkInputs = [ check ]; + + configureFlags = [ + "--with-jansson=${jansson}" + "--with-openssl=${openssl.dev}" + ]; + + meta = with lib; { + homepage = "https://github.com/cisco/cjose"; + changelog = "https://github.com/cisco/cjose/blob/${version}/CHANGELOG.md"; + description = "C library for Javascript Object Signing and Encryption"; + license = licenses.mit; + maintainers = with maintainers; [ midchildan ]; + platforms = platforms.all; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 288872b5ece..17ac6f0c77d 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -13818,6 +13818,8 @@ in cimg = callPackage ../development/libraries/cimg { }; + cjose = callPackage ../development/libraries/cjose { }; + scmccid = callPackage ../development/libraries/scmccid { }; ccrtp = callPackage ../development/libraries/ccrtp { }; From 22ee2c6ea21912c57333c9f9ae9085bc9da06350 Mon Sep 17 00:00:00 2001 From: midchildan Date: Sun, 4 Apr 2021 20:01:45 +0900 Subject: [PATCH 048/339] trafficserver: init at 9.0.1 --- pkgs/servers/http/trafficserver/default.nix | 204 ++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 2 files changed, 206 insertions(+) create mode 100644 pkgs/servers/http/trafficserver/default.nix diff --git a/pkgs/servers/http/trafficserver/default.nix b/pkgs/servers/http/trafficserver/default.nix new file mode 100644 index 00000000000..539b4bfc417 --- /dev/null +++ b/pkgs/servers/http/trafficserver/default.nix @@ -0,0 +1,204 @@ +{ lib +, stdenv +, fetchurl +, fetchpatch +, makeWrapper +, pkg-config +, file +, linuxHeaders +, openssl +, pcre +, perlPackages +, python3 +, xz +, zlib +# recommended dependencies +, withHwloc ? true +, hwloc +, withCurl ? true +, curl +, withCurses ? true +, ncurses +, withCap ? stdenv.isLinux +, libcap +, withUnwind ? stdenv.isLinux +, libunwind +# optional dependencies +, withBrotli ? false +, brotli +, withCjose ? false +, cjose +, withGeoIP ? false +, geoip +, withHiredis ? false +, hiredis +, withImageMagick ? false +, imagemagick +, withJansson ? false +, jansson +, withKyotoCabinet ? false +, kyotocabinet +, withLuaJIT ? false +, luajit +, withMaxmindDB ? false +, libmaxminddb +# optional features +, enableWCCP ? false +}: + +stdenv.mkDerivation rec { + pname = "trafficserver"; + version = "9.0.1"; + + src = fetchurl { + url = "mirror://apache/trafficserver/trafficserver-${version}.tar.bz2"; + sha256 = "1q164pvfmbqh3gzy3bqy96lwd0fdbhz78r06pd92p7rmkqwx005z"; + }; + + patches = [ + # Adds support for NixOS + # https://github.com/apache/trafficserver/pull/7697 + (fetchpatch { + url = "https://github.com/apache/trafficserver/commit/19d3af481cf74c91fbf713fc9d2f8b138ed5fbaf.diff"; + sha256 = "0z1ikgpp00rzrrcqh97931586yn9wbksgai9xlkcjd5cg8gq0150"; + }) + + # Fixes a bug in tspush which pushes incorrect contents to cache + # https://github.com/apache/trafficserver/pull/7696 + (fetchpatch { + url = "https://github.com/apache/trafficserver/commit/b08215272872f452787915cd3a8e0b0ea0b88385.diff"; + sha256 = "0axk8x1xvd8wvpgcxgyqqg7kgxyxwfgwmisq3xnk1da0cqv9cx9f"; + }) + ]; + + # NOTE: The upstream README indicates that flex is needed for some features, + # but it actually seems to be unnecessary as of this commit[1]. The detection + # logic for bison and flex is still present in the build script[2], but no + # other code seems to depend on it. This situation is susceptible to change + # though, so it's a good idea to inspect the build scripts periodically. + # + # [1]: https://github.com/apache/trafficserver/pull/5617 + # [2]: https://github.com/apache/trafficserver/blob/3fd2c60/configure.ac#L742-L788 + nativeBuildInputs = [ makeWrapper pkg-config file python3 ] + ++ (with perlPackages; [ perl ExtUtilsMakeMaker ]) + ++ lib.optionals stdenv.isLinux [ linuxHeaders ]; + + buildInputs = [ + openssl + pcre + perlPackages.perl + ] ++ lib.optional withBrotli brotli + ++ lib.optional withCap libcap + ++ lib.optional withCjose cjose + ++ lib.optional withCurl curl + ++ lib.optional withGeoIP geoip + ++ lib.optional withHiredis hiredis + ++ lib.optional withHwloc hwloc + ++ lib.optional withImageMagick imagemagick + ++ lib.optional withJansson jansson + ++ lib.optional withKyotoCabinet kyotocabinet + ++ lib.optional withCurses ncurses + ++ lib.optional withLuaJIT luajit + ++ lib.optional withUnwind libunwind + ++ lib.optional withMaxmindDB libmaxminddb; + + outputs = [ "out" "man" ]; + + postPatch = '' + patchShebangs \ + iocore/aio/test_AIO.sample \ + src/traffic_via/test_traffic_via \ + src/traffic_logstats/tests \ + tools/check-unused-dependencies + + substituteInPlace configure --replace '/usr/bin/file' '${file}/bin/file' + '' + lib.optionalString stdenv.isLinux '' + substituteInPlace configure \ + --replace '/usr/include/linux' '${linuxHeaders}/include/linux' + '' + lib.optionalString stdenv.isDarwin '' + # 'xcrun leaks' probably requires non-free XCode + substituteInPlace iocore/net/test_certlookup.cc \ + --replace 'xcrun leaks' 'true' + ''; + + configureFlags = [ + "--enable-layout=NixOS" + "--enable-experimental-plugins" + (lib.enableFeature enableWCCP "wccp") + + # the configure script can't auto-locate the following from buildInputs + "--with-lzma=${xz.dev}" + "--with-zlib=${zlib.dev}" + (lib.withFeatureAs withHiredis "hiredis" hiredis) + ]; + + installFlags = [ + "pkgsysconfdir=${placeholder "out"}/etc/trafficserver" + + # replace runtime directories with an install-time placeholder directory + "pkgcachedir=${placeholder "out"}/.install-trafficserver" + "pkglocalstatedir=${placeholder "out"}/.install-trafficserver" + "pkglogdir=${placeholder "out"}/.install-trafficserver" + "pkgruntimedir=${placeholder "out"}/.install-trafficserver" + ]; + + postInstall = '' + substituteInPlace rc/trafficserver.service --replace "syslog.target" "" + install -Dm644 rc/trafficserver.service $out/lib/systemd/system/trafficserver.service + + wrapProgram $out/bin/tspush \ + --set PERL5LIB '${with perlPackages; makePerlPath [ URI ]}' \ + --prefix PATH : "${lib.makeBinPath [ file ]}" + + find "$out" -name '*.la' -delete + + # ensure no files actually exist in this directory + rmdir $out/.install-trafficserver + ''; + + installCheckPhase = let + expected = '' + Via header is [uScMsEf p eC:t cCMp sF], Length is 22 + Via Header Details: + Request headers received from client :simple request (not conditional) + Result of Traffic Server cache lookup for URL :miss (a cache "MISS") + Response information received from origin server :error in response + Result of document write-to-cache: :no cache write performed + Proxy operation result :unknown + Error codes (if any) :connection to server failed + Tunnel info :no tunneling + Cache Type :cache + Cache Lookup Result :cache miss (url not in cache) + Parent proxy connection status :no parent proxy or unknown + Origin server connection status :connection open failed + ''; + in '' + runHook preInstallCheck + diff -Naur <($out/bin/traffic_via '[uScMsEf p eC:t cCMp sF]') - < Date: Tue, 6 Apr 2021 02:22:07 +0900 Subject: [PATCH 049/339] nixos/trafficserver: init --- nixos/modules/module-list.nix | 1 + .../services/web-servers/trafficserver.nix | 318 ++++++++++++++++++ 2 files changed, 319 insertions(+) create mode 100644 nixos/modules/services/web-servers/trafficserver.nix diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index 22f1fde43ea..567fbe9c0b6 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -964,6 +964,7 @@ ./services/web-servers/shellinabox.nix ./services/web-servers/tomcat.nix ./services/web-servers/traefik.nix + ./services/web-servers/trafficserver.nix ./services/web-servers/ttyd.nix ./services/web-servers/uwsgi.nix ./services/web-servers/varnish/default.nix diff --git a/nixos/modules/services/web-servers/trafficserver.nix b/nixos/modules/services/web-servers/trafficserver.nix new file mode 100644 index 00000000000..db0e2ac0bd0 --- /dev/null +++ b/nixos/modules/services/web-servers/trafficserver.nix @@ -0,0 +1,318 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.services.trafficserver; + user = config.users.users.trafficserver.name; + group = config.users.groups.trafficserver.name; + + getManualUrl = name: "https://docs.trafficserver.apache.org/en/latest/admin-guide/files/${name}.en.html"; + getConfPath = name: "${pkgs.trafficserver}/etc/trafficserver/${name}"; + + yaml = pkgs.formats.yaml { }; + + fromYAML = f: + let + jsonFile = pkgs.runCommand "in.json" + { + nativeBuildInputs = [ pkgs.remarshal ]; + } '' + yaml2json < "${f}" > "$out" + ''; + in + builtins.fromJSON (builtins.readFile jsonFile); + + mkYamlConf = name: cfg: + if cfg != null then { + "trafficserver/${name}.yaml".source = yaml.generate "${name}.yaml" cfg; + } else { + "trafficserver/${name}.yaml".text = ""; + }; + + mkRecordLines = path: value: + if isAttrs value then + lib.mapAttrsToList (n: v: mkRecordLines (path ++ [ n ]) v) value + else if isInt value then + "CONFIG ${concatStringsSep "." path} INT ${toString value}" + else if isFloat value then + "CONFIG ${concatStringsSep "." path} FLOAT ${toString value}" + else + "CONFIG ${concatStringsSep "." path} STRING ${toString value}"; + + mkRecordsConfig = cfg: concatStringsSep "\n" (flatten (mkRecordLines [ ] cfg)); + mkPluginConfig = cfg: concatStringsSep "\n" (map (p: "${p.path} ${p.arg}") cfg); +in +{ + options.services.trafficserver = { + enable = mkEnableOption "Apache Traffic Server"; + + cache = mkOption { + type = types.lines; + default = ""; + example = "dest_domain=example.com suffix=js action=never-cache"; + description = '' + Caching rules that overrule the origin's caching policy. + + Consult the upstream + documentation for more details. + ''; + }; + + hosting = mkOption { + type = types.lines; + default = ""; + example = "domain=example.com volume=1"; + description = '' + Partition the cache according to origin server or domain + + Consult the + upstream documentation for more details. + ''; + }; + + ipAllow = mkOption { + type = types.nullOr yaml.type; + default = fromYAML (getConfPath "ip_allow.yaml"); + defaultText = "upstream defaults"; + example = literalExample { + ip_allow = [{ + apply = "in"; + ip_addrs = "127.0.0.1"; + action = "allow"; + methods = "ALL"; + }]; + }; + description = '' + Control client access to Traffic Server and Traffic Server connections + to upstream servers. + + Consult the upstream + documentation for more details. + ''; + }; + + logging = mkOption { + type = types.nullOr yaml.type; + default = fromYAML (getConfPath "logging.yaml"); + defaultText = "upstream defaults"; + example = literalExample { }; + description = '' + Configure logs. + + Consult the upstream + documentation for more details. + ''; + }; + + parent = mkOption { + type = types.lines; + default = ""; + example = '' + dest_domain=. method=get parent="p1.example:8080; p2.example:8080" round_robin=true + ''; + description = '' + Identify the parent proxies used in an cache hierarchy. + + Consult the upstream + documentation for more details. + ''; + }; + + plugins = mkOption { + default = [ ]; + + description = '' + Controls run-time loadable plugins available to Traffic Server, as + well as their configuration. + + Consult the upstream + documentation for more details. + ''; + + type = with types; + listOf (submodule { + options.path = mkOption { + type = str; + example = "xdebug.so"; + description = '' + Path to plugin. The path can either be absolute, or relative to + the plugin directory. + ''; + }; + options.arg = mkOption { + type = str; + default = ""; + example = "--header=ATS-My-Debug"; + description = "arguments to pass to the plugin"; + }; + }); + }; + + records = mkOption { + type = with types; + let valueType = (attrsOf (oneOf [ int float str valueType ])) // { + description = "Traffic Server records value"; + }; + in + valueType; + default = { }; + example = literalExample { proxy.config.proxy_name = "my_server"; }; + description = '' + List of configurable variables used by Traffic Server. + + Consult the + upstream documentation for more details. + ''; + }; + + remap = mkOption { + type = types.lines; + default = ""; + example = "map http://from.example http://origin.example"; + description = '' + URL remapping rules used by Traffic Server. + + Consult the + upstream documentation for more details. + ''; + }; + + splitDns = mkOption { + type = types.lines; + default = ""; + example = '' + dest_domain=internal.corp.example named="255.255.255.255:212 255.255.255.254" def_domain=corp.example search_list="corp.example corp1.example" + dest_domain=!internal.corp.example named=255.255.255.253 + ''; + description = '' + Specify the DNS server that Traffic Server should use under specific + conditions. + + Consult the + upstream documentation for more details. + ''; + }; + + sslMulticert = mkOption { + type = types.lines; + default = ""; + example = "dest_ip=* ssl_cert_name=default.pem"; + description = '' + Configure SSL server certificates to terminate the SSL sessions. + + Consult the + upstream documentation for more details. + ''; + }; + + sni = mkOption { + type = types.nullOr yaml.type; + default = null; + example = literalExample { + sni = [{ + fqdn = "no-http2.example.com"; + https = "off"; + }]; + }; + description = '' + Configure aspects of TLS connection handling for both inbound and + outbound connections. + + Consult the upstream + documentation for more details. + ''; + }; + + storage = mkOption { + type = types.lines; + default = "/var/cache/trafficserver 256M"; + example = "/dev/disk/by-id/XXXXX volume=1"; + description = '' + List all the storage that make up the Traffic Server cache. + + Consult the + upstream documentation for more details. + ''; + }; + + strategies = mkOption { + type = types.nullOr yaml.type; + default = null; + description = '' + Specify the next hop proxies used in an cache hierarchy and the + algorithms used to select the next proxy. + + Consult the + upstream documentation for more details. + ''; + }; + + volume = mkOption { + type = types.nullOr yaml.type; + default = ""; + example = "volume=1 scheme=http size=20%"; + description = '' + Manage cache space more efficiently and restrict disk usage by + creating cache volumes of different sizes. + + Consult the + upstream documentation for more details. + ''; + }; + }; + + config = mkIf cfg.enable { + environment.etc = { + "trafficserver/cache.config".text = cfg.cache; + "trafficserver/hosting.config".text = cfg.hosting; + "trafficserver/parent.config".text = cfg.parent; + "trafficserver/plugin.config".text = mkPluginConfig cfg.plugins; + "trafficserver/records.config".text = mkRecordsConfig cfg.records; + "trafficserver/remap.config".text = cfg.remap; + "trafficserver/splitdns.config".text = cfg.splitDns; + "trafficserver/ssl_multicert.config".text = cfg.sslMulticert; + "trafficserver/storage.config".text = cfg.storage; + "trafficserver/volume.config".text = cfg.volume; + } // (mkYamlConf "ip_allow" cfg.ipAllow) + // (mkYamlConf "logging" cfg.logging) + // (mkYamlConf "sni" cfg.sni) + // (mkYamlConf "strategies" cfg.strategies); + + environment.systemPackages = [ pkgs.trafficserver ]; + systemd.packages = [ pkgs.trafficserver ]; + + # Traffic Server does privilege handling independently of systemd, and + # therefore should be started as root + systemd.services.trafficserver = { + enable = true; + wantedBy = [ "multi-user.target" ]; + }; + + # These directories can't be created by systemd because: + # + # 1. Traffic Servers starts as root and switches to an unprivileged user + # afterwards. The runtime directories defined below are assumed to be + # owned by that user. + # 2. The bin/trafficserver script assumes these directories exist. + systemd.tmpfiles.rules = [ + "d '/run/trafficserver' - ${user} ${group} - -" + "d '/var/cache/trafficserver' - ${user} ${group} - -" + "d '/var/lib/trafficserver' - ${user} ${group} - -" + "d '/var/log/trafficserver' - ${user} ${group} - -" + ]; + + services.trafficserver = { + records.proxy.config.admin.user_id = user; + records.proxy.config.body_factory.template_sets_dir = + "${pkgs.trafficserver}/etc/trafficserver/body_factory"; + }; + + users.users.trafficserver = { + description = "Apache Traffic Server"; + isSystemUser = true; + inherit group; + }; + users.groups.trafficserver = { }; + }; +} From 5bfb427b15940db242aa04354b49deb7d86f451c Mon Sep 17 00:00:00 2001 From: midchildan Date: Sat, 10 Apr 2021 01:48:51 +0900 Subject: [PATCH 050/339] nixos/tests/trafficserver: init --- nixos/tests/all-tests.nix | 1 + nixos/tests/trafficserver.nix | 176 ++++++++++++++++++++ pkgs/servers/http/trafficserver/default.nix | 3 + 3 files changed, 180 insertions(+) create mode 100644 nixos/tests/trafficserver.nix diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 2b6012c1aff..9a2ffe4ff37 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -410,6 +410,7 @@ in # traefik test relies on docker-containers trac = handleTest ./trac.nix {}; traefik = handleTestOn ["x86_64-linux"] ./traefik.nix {}; + trafficserver = handleTest ./trafficserver.nix {}; transmission = handleTest ./transmission.nix {}; trezord = handleTest ./trezord.nix {}; trickster = handleTest ./trickster.nix {}; diff --git a/nixos/tests/trafficserver.nix b/nixos/tests/trafficserver.nix new file mode 100644 index 00000000000..3979a1b4a48 --- /dev/null +++ b/nixos/tests/trafficserver.nix @@ -0,0 +1,176 @@ +# verifies: +# 1. Traffic Server is able to start +# 2. Traffic Server spawns traffic_crashlog upon startup +# 3. Traffic Server proxies HTTP requests according to URL remapping rules +# in 'services.trafficserver.remap' +# 4. Traffic Server applies per-map settings specified with the conf_remap +# plugin +# 5. Traffic Server caches HTTP responses +# 6. Traffic Server processes HTTP PUSH requests +# 7. Traffic Server can load the healthchecks plugin +# 8. Traffic Server logs HTTP traffic as configured +# +# uses: +# - bin/traffic_manager +# - bin/traffic_server +# - bin/traffic_crashlog +# - bin/traffic_cache_tool +# - bin/traffic_ctl +# - bin/traffic_logcat +# - bin/traffic_logstats +# - bin/tspush +import ./make-test-python.nix ({ pkgs, ... }: { + name = "trafficserver"; + meta = with pkgs.lib.maintainers; { + maintainers = [ midchildan ]; + }; + + nodes = { + ats = { pkgs, lib, config, ... }: let + user = config.users.users.trafficserver.name; + group = config.users.groups.trafficserver.name; + healthchecks = pkgs.writeText "healthchecks.conf" '' + /status /tmp/ats.status text/plain 200 500 + ''; + in { + services.trafficserver.enable = true; + + services.trafficserver.records = { + proxy.config.http.server_ports = "80 80:ipv6"; + proxy.config.hostdb.host_file.path = "/etc/hosts"; + proxy.config.log.max_space_mb_headroom = 0; + proxy.config.http.push_method_enabled = 1; + + # check that cache storage is usable before accepting traffic + proxy.config.http.wait_for_cache = 2; + }; + + services.trafficserver.plugins = [ + { path = "healthchecks.so"; arg = toString healthchecks; } + { path = "xdebug.so"; } + ]; + + services.trafficserver.remap = '' + map http://httpbin.test http://httpbin + map http://pristine-host-hdr.test http://httpbin \ + @plugin=conf_remap.so \ + @pparam=proxy.config.url_remap.pristine_host_hdr=1 + map http://ats/tspush http://httpbin/cache \ + @plugin=conf_remap.so \ + @pparam=proxy.config.http.cache.required_headers=0 + ''; + + services.trafficserver.storage = '' + /dev/vdb volume=1 + ''; + + networking.firewall.allowedTCPPorts = [ 80 ]; + virtualisation.emptyDiskImages = [ 256 ]; + services.udev.extraRules = '' + KERNEL=="vdb", OWNER="${user}", GROUP="${group}" + ''; + }; + + httpbin = { pkgs, lib, ... }: let + python = pkgs.python3.withPackages + (ps: with ps; [ httpbin gunicorn gevent ]); + in { + systemd.services.httpbin = { + enable = true; + after = [ "network.target" ]; + wantedBy = [ "multi-user.target" ]; + serviceConfig = { + ExecStart = "${python}/bin/gunicorn -b 0.0.0.0:80 httpbin:app -k gevent"; + }; + }; + + networking.firewall.allowedTCPPorts = [ 80 ]; + }; + + client = { pkgs, lib, ... }: { + environment.systemPackages = with pkgs; [ curl ]; + }; + }; + + testScript = { nodes, ... }: let + sampleFile = pkgs.writeText "sample.txt" '' + It's the season of White Album. + ''; + in '' + import json + import re + + ats.wait_for_unit("trafficserver") + ats.wait_for_open_port(80) + httpbin.wait_for_unit("httpbin") + httpbin.wait_for_open_port(80) + + with subtest("Traffic Server is running"): + out = ats.succeed("traffic_ctl server status") + assert out.strip() == "Proxy -- on" + + with subtest("traffic_crashlog is running"): + ats.succeed("pgrep -f traffic_crashlog") + + with subtest("basic remapping works"): + out = client.succeed("curl -vv -H 'Host: httpbin.test' http://ats/headers") + assert json.loads(out)["headers"]["Host"] == "httpbin" + + with subtest("conf_remap plugin works"): + out = client.succeed( + "curl -vv -H 'Host: pristine-host-hdr.test' http://ats/headers" + ) + assert json.loads(out)["headers"]["Host"] == "pristine-host-hdr.test" + + with subtest("caching works"): + out = client.succeed( + "curl -vv -D - -H 'Host: httpbin.test' -H 'X-Debug: X-Cache' http://ats/cache/60 -o /dev/null" + ) + assert "X-Cache: miss" in out + + out = client.succeed( + "curl -vv -D - -H 'Host: httpbin.test' -H 'X-Debug: X-Cache' http://ats/cache/60 -o /dev/null" + ) + assert "X-Cache: hit-fresh" in out + + with subtest("pushing to cache works"): + url = "http://ats/tspush" + + ats.succeed(f"echo {url} > /tmp/urls.txt") + out = ats.succeed( + f"tspush -f '${sampleFile}' -u {url}" + ) + assert "HTTP/1.0 201 Created" in out, "cache push failed" + + out = ats.succeed( + "traffic_cache_tool --spans /etc/trafficserver/storage.config find --input /tmp/urls.txt" + ) + assert "Span: /dev/vdb" in out, "cache not stored on disk" + + out = client.succeed(f"curl {url}").strip() + expected = ( + open("${sampleFile}").read().strip() + ) + assert out == expected, "cache content mismatch" + + with subtest("healthcheck plugin works"): + out = client.succeed("curl -vv http://ats/status -o /dev/null -w '%{http_code}'") + assert out.strip() == "500" + + ats.succeed("touch /tmp/ats.status") + + out = client.succeed("curl -vv http://ats/status -o /dev/null -w '%{http_code}'") + assert out.strip() == "200" + + with subtest("logging works"): + access_log_path = "/var/log/trafficserver/squid.blog" + ats.wait_for_file(access_log_path) + + out = ats.succeed(f"traffic_logcat {access_log_path}").split("\n")[0] + expected = "^\S+ \S+ \S+ TCP_MISS/200 \S+ GET http://httpbin/headers - DIRECT/httpbin application/json$" + assert re.fullmatch(expected, out) is not None, "no matching logs" + + out = json.loads(ats.succeed(f"traffic_logstats -jf {access_log_path}")) + assert out["total"]["error.total"]["req"] == "0", "unexpected log stat" + ''; +}) diff --git a/pkgs/servers/http/trafficserver/default.nix b/pkgs/servers/http/trafficserver/default.nix index 539b4bfc417..4a7f9854d18 100644 --- a/pkgs/servers/http/trafficserver/default.nix +++ b/pkgs/servers/http/trafficserver/default.nix @@ -3,6 +3,7 @@ , fetchurl , fetchpatch , makeWrapper +, nixosTests , pkg-config , file , linuxHeaders @@ -184,6 +185,8 @@ stdenv.mkDerivation rec { doInstallCheck = true; enableParallelBuilding = true; + passthru.tests = { inherit (nixosTests) trafficserver; }; + meta = with lib; { homepage = "https://trafficserver.apache.org"; changelog = "https://raw.githubusercontent.com/apache/trafficserver/${version}/CHANGELOG-${version}"; From da69e884b8d19835958a04b53cf8148ba8866e66 Mon Sep 17 00:00:00 2001 From: midchildan Date: Mon, 12 Apr 2021 00:56:13 +0900 Subject: [PATCH 051/339] maintainers: add joaquinito2051 From #114116 Co-authored-by: heroku-miraheze <61781343+heroku-miraheze@users.noreply.github.com> --- maintainers/maintainer-list.nix | 6 ++++++ pkgs/servers/http/trafficserver/default.nix | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 6190de79b7a..66f9bfe329e 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -4623,6 +4623,12 @@ githubId = 1102396; name = "Jussi Maki"; }; + joaquinito2051 = { + email = "joaquinito2051@gmail.com"; + github = "heroku-miraheze"; + githubId = 61781343; + name = "Joaquín Rufo Gutierrez"; + }; jobojeha = { email = "jobojeha@jeppener.de"; github = "jobojeha"; diff --git a/pkgs/servers/http/trafficserver/default.nix b/pkgs/servers/http/trafficserver/default.nix index 4a7f9854d18..05eb9a17c8e 100644 --- a/pkgs/servers/http/trafficserver/default.nix +++ b/pkgs/servers/http/trafficserver/default.nix @@ -201,7 +201,7 @@ stdenv.mkDerivation rec { large intranets by maximizing existing and available bandwidth. ''; license = licenses.asl20; - maintainers = with maintainers; [ midchildan ]; + maintainers = with maintainers; [ midchildan joaquinito2051 ]; platforms = platforms.unix; }; } From 8a83d611f578076031c4cd30b0a5f4cf43188129 Mon Sep 17 00:00:00 2001 From: sternenseemann <0rpkxez4ksa01gb3typccl0i@systemli.org> Date: Mon, 26 Apr 2021 20:42:19 +0200 Subject: [PATCH 052/339] lib/types: only accept derivations for shellPackage Since shellPackage actually requires the value to be an attribute set (i. e. an derivation in this case), we cannot re-use the package.check type checker since it also allows strings or things that are coercible to strings as long as they look like store paths. --- lib/types.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/types.nix b/lib/types.nix index d0a8e96149d..31ce440bcb4 100644 --- a/lib/types.nix +++ b/lib/types.nix @@ -337,7 +337,7 @@ rec { }; shellPackage = package // { - check = x: (package.check x) && (hasAttr "shellPath" x); + check = x: isDerivation x && hasAttr "shellPath" x; }; path = mkOptionType { From 430bfd6fab515625e44be0f3b3c26c6cd7d7421f Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Mon, 26 Apr 2021 23:27:49 +0200 Subject: [PATCH 053/339] babeld: 1.9.2 -> 1.10 Update to new mirror, the previous one did not receive the 1.10 tarball for some reason. Also remove a patch that was merged upstream in time for this release. --- pkgs/tools/networking/babeld/default.nix | 26 ++++++++---------------- 1 file changed, 9 insertions(+), 17 deletions(-) diff --git a/pkgs/tools/networking/babeld/default.nix b/pkgs/tools/networking/babeld/default.nix index 5c7b26ced05..4cf018281ae 100644 --- a/pkgs/tools/networking/babeld/default.nix +++ b/pkgs/tools/networking/babeld/default.nix @@ -1,33 +1,25 @@ -{ lib, stdenv, fetchurl, fetchpatch, nixosTests }: +{ lib, stdenv, fetchurl, nixosTests }: stdenv.mkDerivation rec { pname = "babeld"; - version = "1.9.2"; + version = "1.10"; src = fetchurl { - url = "http://www.pps.univ-paris-diderot.fr/~jch/software/files/${pname}-${version}.tar.gz"; - sha256 = "01vzhrspnm4sy9ggaz9n3bfl5hy3qlynr218j3mdcddzm3h00kqm"; + url = "https://www.irif.fr/~jch/software/files/${pname}-${version}.tar.gz"; + sha256 = "1sld5bbig2pkcr4zrdpvfzifc6a3lc8i8kdzk5ryjh166844mxd5"; }; - patches = [ - (fetchpatch { - # Skip kernel_setup_interface when `skip-kernel-setup` is enabled. - url = "https://github.com/jech/babeld/commit/f9698a5616842467ad08a5f9ed3d6fcfa2dd2898.patch"; - sha256 = "00kj2jxsfq0pjk5wrkslyvkww57makxlwa4fd82g7g9hrgahpqwr"; - }) - ]; - preBuild = '' makeFlags="PREFIX=$out ETCDIR=$out/etc" ''; passthru.tests.babeld = nixosTests.babeld; - meta = { - homepage = "http://www.pps.univ-paris-diderot.fr/~jch/software/babel/"; + meta = with lib; { + homepage = "http://www.irif.fr/~jch/software/babel/"; description = "Loop-avoiding distance-vector routing protocol"; - license = lib.licenses.mit; - maintainers = with lib.maintainers; [ fpletz ]; - platforms = with lib.platforms; linux; + license = licenses.mit; + maintainers = with maintainers; [ fpletz ]; + platforms = platforms.linux; }; } From d0b3735c0e1dc88fe97c71f2bbc398fad579526c Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Mon, 26 Apr 2021 23:39:49 +0200 Subject: [PATCH 054/339] babeld: start maintaining the package --- pkgs/tools/networking/babeld/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/tools/networking/babeld/default.nix b/pkgs/tools/networking/babeld/default.nix index 4cf018281ae..47894c1a532 100644 --- a/pkgs/tools/networking/babeld/default.nix +++ b/pkgs/tools/networking/babeld/default.nix @@ -19,7 +19,7 @@ stdenv.mkDerivation rec { homepage = "http://www.irif.fr/~jch/software/babel/"; description = "Loop-avoiding distance-vector routing protocol"; license = licenses.mit; - maintainers = with maintainers; [ fpletz ]; + maintainers = with maintainers; [ fpletz hexa ]; platforms = platforms.linux; }; } From 4e66e9aea5f9217b9d8fd60637d92396b9d3c145 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Mon, 26 Apr 2021 23:40:32 +0200 Subject: [PATCH 055/339] nixos/babeld: start maintaining the module --- nixos/modules/services/networking/babeld.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/nixos/modules/services/networking/babeld.nix b/nixos/modules/services/networking/babeld.nix index 97dca002a00..5e14283179a 100644 --- a/nixos/modules/services/networking/babeld.nix +++ b/nixos/modules/services/networking/babeld.nix @@ -32,6 +32,8 @@ in { + meta.maintainers = with maintainers; [ hexa ]; + ###### interface options = { From d490493d0056cd0f54e52a70bd6a4292bcb67512 Mon Sep 17 00:00:00 2001 From: Jonathan Wilkins Date: Mon, 26 Apr 2021 17:19:22 +0100 Subject: [PATCH 056/339] maintainers: add Jonathan Wilkins --- maintainers/maintainer-list.nix | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 4a481b5ecf0..f2a8bbfad9c 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -3101,6 +3101,16 @@ githubId = 2147649; name = "Euan Kemp"; }; + evalexpr = { + name = "Jonathan Wilkins"; + email = "nixos@wilkins.tech"; + github = "evalexpr"; + githubId = 23485511; + keys = [{ + longkeyid = "rsa4096/0x2D1D402E17763DD6"; + fingerprint = "8129 5B85 9C5A F703 C2F4 1E29 2D1D 402E 1776 3DD6"; + }]; + }; evanjs = { email = "evanjsx@gmail.com"; github = "evanjs"; From 36b4a44c2a903e8d80e07a4739fd27b5d8f4a0cd Mon Sep 17 00:00:00 2001 From: 06kellyjac Date: Tue, 27 Apr 2021 17:48:42 +0100 Subject: [PATCH 057/339] tektoncd-cli: 0.17.2 -> 0.18.0 --- .../networking/cluster/tektoncd-cli/default.nix | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/networking/cluster/tektoncd-cli/default.nix b/pkgs/applications/networking/cluster/tektoncd-cli/default.nix index 9ab5b94251b..979216b3ccd 100644 --- a/pkgs/applications/networking/cluster/tektoncd-cli/default.nix +++ b/pkgs/applications/networking/cluster/tektoncd-cli/default.nix @@ -2,13 +2,13 @@ buildGoModule rec { pname = "tektoncd-cli"; - version = "0.17.2"; + version = "0.18.0"; src = fetchFromGitHub { owner = "tektoncd"; repo = "cli"; rev = "v${version}"; - sha256 = "sha256-7VG9OFt1yVt4st8EM1aiRqLCHwjSqib28GoamoJHHnM="; + sha256 = "sha256-vZxpfVMUl1EZwCuLlwmSKWrz86aTjWYlAIwO4b9ACqk="; }; vendorSha256 = null; @@ -24,6 +24,8 @@ buildGoModule rec { excludedPackages = "\\(third_party\\|cmd/docs\\)"; preCheck = '' + # Some tests try to write to the home dir + export HOME="$TMPDIR" # Change the golden files to match our desired version sed -i "s/dev/${version}/" pkg/cmd/version/testdata/TestGetVersions-*.golden ''; From d8bc7c0dbeab183c077d2cfc26084c2e021dc12b Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Tue, 27 Apr 2021 17:04:15 +0000 Subject: [PATCH 058/339] cargo-deb: 1.29.1 -> 1.29.2 --- pkgs/tools/package-management/cargo-deb/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/tools/package-management/cargo-deb/default.nix b/pkgs/tools/package-management/cargo-deb/default.nix index f171a150045..6a71189314d 100644 --- a/pkgs/tools/package-management/cargo-deb/default.nix +++ b/pkgs/tools/package-management/cargo-deb/default.nix @@ -8,18 +8,18 @@ rustPlatform.buildRustPackage rec { pname = "cargo-deb"; - version = "1.29.1"; + version = "1.29.2"; src = fetchFromGitHub { owner = "mmstick"; repo = pname; rev = "v${version}"; - sha256 = "sha256-oWivGy2azF9zpeZ0UAi7Bxm4iXFWAjcBG0pN7qtkSU8="; + sha256 = "sha256-2eOWhxKZ+YPj5oKTe5g7PyeakiSNnPz27dK150GAcVQ="; }; buildInputs = lib.optionals stdenv.isDarwin [ Security ]; - cargoSha256 = "0j9frvcmy9hydw73v0ffr0bjvq2ykylnpmiw700z344djpaaa08y"; + cargoSha256 = "sha256-QmchuY+4R7w0zMOdReH1m8idl9RI1hHE9VtbwT2K9YM="; preCheck = '' substituteInPlace tests/command.rs \ From 8298d66e42228e66758733b436339505001b322d Mon Sep 17 00:00:00 2001 From: erikbackman Date: Tue, 27 Apr 2021 19:05:57 +0200 Subject: [PATCH 059/339] (maintainer-list): add myself --- maintainers/maintainer-list.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 1cdd23872a0..aacdb42fedb 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -3017,6 +3017,12 @@ fingerprint = "F178 B4B4 6165 6D1B 7C15 B55D 4029 3358 C7B9 326B"; }]; }; + erikbackman = { + email = "contact@ebackman.net"; + github = "erikbackman"; + githubId = 46724898; + name = "Erik Backman"; + }; erikryb = { email = "erik.rybakken@math.ntnu.no"; github = "erikryb"; From 95b40e4143c3f1eccbeb54631b042fdbcfb9cdd4 Mon Sep 17 00:00:00 2001 From: erikbackman Date: Tue, 27 Apr 2021 19:07:25 +0200 Subject: [PATCH 060/339] (numworks-epsilon): init at 15.3.2 --- .../science/math/numworks-epsilon/default.nix | 53 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 2 files changed, 55 insertions(+) create mode 100644 pkgs/applications/science/math/numworks-epsilon/default.nix diff --git a/pkgs/applications/science/math/numworks-epsilon/default.nix b/pkgs/applications/science/math/numworks-epsilon/default.nix new file mode 100644 index 00000000000..9ec41386da5 --- /dev/null +++ b/pkgs/applications/science/math/numworks-epsilon/default.nix @@ -0,0 +1,53 @@ +{ stdenv +, lib +, fetchFromGitHub +, libpng +, xorg +, python3 +, imagemagick +, gcc-arm-embedded +, pkg-config +}: + +stdenv.mkDerivation rec { + pname = "numworks-epsilon"; + version = "15.3.2"; + + src = fetchFromGitHub { + owner = "numworks"; + repo = "epsilon"; + rev = version; + sha256 = "1q34dilyypiggjs16486jm122yf20wcigqxvspc77ig9albaxgh5"; + }; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + libpng + xorg.libXext + python3 + imagemagick + gcc-arm-embedded + ]; + + makeFlags = [ + "PLATFORM=simulator" + ]; + + installPhase = '' + runHook preInstall + + mv ./output/release/simulator/linux/{epsilon.bin,epsilon} + mkdir -p $out/bin + cp -r ./output/release/simulator/linux/* $out/bin/ + + runHook postInstall + ''; + + meta = with lib; { + description = "Emulator for Epsilon, a High-performance graphing calculator operating system"; + homepage = "https://numworks.com/"; + license = licenses.cc-by-nc-sa-40; + maintainers = with maintainers; [ erikbackman ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 61b0646ef9a..344d19b7b5b 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -569,6 +569,8 @@ in nix-gitignore = callPackage ../build-support/nix-gitignore { }; + numworks-epsilon = callPackage ../applications/science/math/numworks-epsilon { }; + ociTools = callPackage ../build-support/oci-tools { }; octant = callPackage ../applications/networking/cluster/octant { }; From 9cbe07c1b24423cdba9fa239a0e2a0687877c1de Mon Sep 17 00:00:00 2001 From: Kira Bruneau Date: Tue, 20 Apr 2021 16:08:20 -0400 Subject: [PATCH 061/339] yabridge, yabridgectl: hard code wine path --- pkgs/tools/audio/yabridge/default.nix | 28 +++++++++++++++++++ pkgs/tools/audio/yabridge/hardcode-wine.patch | 13 +++++++++ pkgs/tools/audio/yabridgectl/default.nix | 14 +++++++++- pkgs/top-level/all-packages.nix | 6 ++-- 4 files changed, 58 insertions(+), 3 deletions(-) create mode 100644 pkgs/tools/audio/yabridge/hardcode-wine.patch diff --git a/pkgs/tools/audio/yabridge/default.nix b/pkgs/tools/audio/yabridge/default.nix index c09045bdb6e..d8ddf3ee561 100644 --- a/pkgs/tools/audio/yabridge/default.nix +++ b/pkgs/tools/audio/yabridge/default.nix @@ -1,6 +1,8 @@ { lib , stdenv , fetchFromGitHub +, fetchpatch +, substituteAll , meson , ninja , pkg-config @@ -77,6 +79,24 @@ in stdenv.mkDerivation rec { cp -R --no-preserve=mode,ownership ${vst3.src} vst3 )''; + patches = [ + # Fix printing wine version when using absolute path (remove patches in next release): + (fetchpatch { + url = "https://github.com/robbert-vdh/yabridge/commit/2aadf5256b3eafeb86efa8626247972dd33baa13.patch"; + sha256 = "sha256-Nq9TQJxa22vJLmf+USyPBkF8cKyEzb1Lp2Rx86pDxnY="; + }) + (fetchpatch { + url = "https://github.com/robbert-vdh/yabridge/commit/93df3fa1da6ffcc69a5b384ba04e3da7c5ef23ef.patch"; + sha256 = "sha256-//8Dxolqe6n+aFo4yVnnMR9kSq/iEFE0qZPvcIBehvI="; + }) + + # Hard code wine path so wine version is correct in logs + (substituteAll { + src = ./hardcode-wine.patch; + inherit wine; + }) + ]; + postPatch = '' patchShebangs . ''; @@ -117,6 +137,14 @@ in stdenv.mkDerivation rec { cp libyabridge-vst3.so "$out/lib" ''; + # Hard code wine path in wrapper scripts generated by winegcc + postFixup = '' + for exe in "$out"/bin/*.exe; do + substituteInPlace "$exe" \ + --replace 'WINELOADER="wine"' 'WINELOADER="${wine}/bin/wine"' + done + ''; + meta = with lib; { description = "Yet Another VST bridge, run Windows VST2 plugins under Linux"; homepage = "https://github.com/robbert-vdh/yabridge"; diff --git a/pkgs/tools/audio/yabridge/hardcode-wine.patch b/pkgs/tools/audio/yabridge/hardcode-wine.patch new file mode 100644 index 00000000000..2b6ce1f448f --- /dev/null +++ b/pkgs/tools/audio/yabridge/hardcode-wine.patch @@ -0,0 +1,13 @@ +diff --git a/src/plugin/utils.cpp b/src/plugin/utils.cpp +index 1ff05bc..0723456 100644 +--- a/src/plugin/utils.cpp ++++ b/src/plugin/utils.cpp +@@ -351,7 +351,7 @@ std::string get_wine_version() { + access(wineloader_path.c_str(), X_OK) == 0) { + wine_path = wineloader_path; + } else { +- wine_path = bp::search_path("wine").string(); ++ wine_path = "@wine@/bin/wine"; + } + + bp::ipstream output; diff --git a/pkgs/tools/audio/yabridgectl/default.nix b/pkgs/tools/audio/yabridgectl/default.nix index 4548b288b69..2cbaf3f4ad5 100644 --- a/pkgs/tools/audio/yabridgectl/default.nix +++ b/pkgs/tools/audio/yabridgectl/default.nix @@ -1,4 +1,9 @@ -{ lib, rustPlatform, yabridge }: +{ lib +, rustPlatform +, yabridge +, makeWrapper +, wine +}: rustPlatform.buildRustPackage rec { pname = "yabridgectl"; @@ -17,6 +22,13 @@ rustPlatform.buildRustPackage rec { patchFlags = [ "-p3" ]; + nativeBuildInputs = [ makeWrapper ]; + + postFixup = '' + wrapProgram "$out/bin/yabridgectl" \ + --prefix PATH : ${lib.makeBinPath [ wine ]} + ''; + meta = with lib; { description = "A small, optional utility to help set up and update yabridge for several directories at once"; homepage = "https://github.com/robbert-vdh/yabridge/tree/master/tools/yabridgectl"; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 5b7420896f8..19dade77b1b 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -803,10 +803,12 @@ in xtrt = callPackage ../tools/archivers/xtrt { }; yabridge = callPackage ../tools/audio/yabridge { - wine = wineWowPackages.minimal; + wine = wineWowPackages.staging; }; - yabridgectl = callPackage ../tools/audio/yabridgectl { }; + yabridgectl = callPackage ../tools/audio/yabridgectl { + wine = wineWowPackages.staging; + }; ### APPLICATIONS/TERMINAL-EMULATORS From 82145d5facad176c9cfb12a0b3971c21b2951f72 Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Wed, 28 Apr 2021 03:03:12 +0000 Subject: [PATCH 062/339] cifs-utils: 6.12 -> 6.13 --- pkgs/os-specific/linux/cifs-utils/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/os-specific/linux/cifs-utils/default.nix b/pkgs/os-specific/linux/cifs-utils/default.nix index 38f958fe9dd..8c587a40196 100644 --- a/pkgs/os-specific/linux/cifs-utils/default.nix +++ b/pkgs/os-specific/linux/cifs-utils/default.nix @@ -3,11 +3,11 @@ stdenv.mkDerivation rec { pname = "cifs-utils"; - version = "6.12"; + version = "6.13"; src = fetchurl { url = "mirror://samba/pub/linux-cifs/cifs-utils/${pname}-${version}.tar.bz2"; - sha256 = "1vw570pvir73kl4y6fhd6ns936ankimkhb1ii43yh8lr0p1xqbcj"; + sha256 = "sha256-Q9h4bIYTysz6hJEwgcHWK8JAlXWFTPiVsFtIrwhj0FY="; }; nativeBuildInputs = [ autoreconfHook docutils pkg-config ]; From e14e57fb19892999b74f0444cad02454a8b9c372 Mon Sep 17 00:00:00 2001 From: Joe Hermaszewski Date: Thu, 15 Apr 2021 12:04:24 +0800 Subject: [PATCH 063/339] mx-puppet-discord: init at 2021-01-22 --- pkgs/servers/mx-puppet-discord/default.nix | 45 + pkgs/servers/mx-puppet-discord/generate.sh | 21 + .../mx-puppet-discord/node-composition.nix | 17 + .../mx-puppet-discord/node-packages.nix | 3616 +++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 5 files changed, 3701 insertions(+) create mode 100644 pkgs/servers/mx-puppet-discord/default.nix create mode 100755 pkgs/servers/mx-puppet-discord/generate.sh create mode 100644 pkgs/servers/mx-puppet-discord/node-composition.nix create mode 100644 pkgs/servers/mx-puppet-discord/node-packages.nix diff --git a/pkgs/servers/mx-puppet-discord/default.nix b/pkgs/servers/mx-puppet-discord/default.nix new file mode 100644 index 00000000000..b3b72c2c5f2 --- /dev/null +++ b/pkgs/servers/mx-puppet-discord/default.nix @@ -0,0 +1,45 @@ +{ stdenv, fetchFromGitHub, pkgs, lib, nodejs, nodePackages, pkg-config, libjpeg +, pixman, cairo, pango }: + +let + # No official version ever released + src = fetchFromGitHub { + owner = "matrix-discord"; + repo = "mx-puppet-discord"; + rev = "c17384a6a12a42a528e0b1259f8073e8db89b8f4"; + sha256 = "1yczhfpa4qzvijcpgc2pr10s009qb6jwlfwpcbb17g2wsx6zj0c2"; + }; + + myNodePackages = import ./node-composition.nix { + inherit pkgs nodejs; + inherit (stdenv.hostPlatform) system; + }; + +in myNodePackages.package.override { + inherit src; + nativeBuildInputs = [ nodePackages.node-pre-gyp pkg-config ]; + buildInputs = [ libjpeg pixman cairo pango ]; + + postInstall = '' + # Patch shebangs in node_modules, otherwise the webpack build fails with interpreter problems + patchShebangs --build "$out/lib/node_modules/mx-puppet-discord/node_modules/" + # compile Typescript sources + npm run build + + # Make an executable to run the server + mkdir -p $out/bin + cat < $out/bin/mx-puppet-discord + #!/bin/sh + exec ${nodejs}/bin/node $out/lib/node_modules/mx-puppet-discord/build/index.js "\$@" + EOF + chmod +x $out/bin/mx-puppet-discord + ''; + + meta = with lib; { + description = "A discord puppeting bridge for matrix"; + license = licenses.asl20; + homepage = "https://github.com/matrix-discord/mx-puppet-discord"; + maintainers = with maintainers; [ expipiplus1 ]; + platforms = platforms.unix; + }; +} diff --git a/pkgs/servers/mx-puppet-discord/generate.sh b/pkgs/servers/mx-puppet-discord/generate.sh new file mode 100755 index 00000000000..851671a147a --- /dev/null +++ b/pkgs/servers/mx-puppet-discord/generate.sh @@ -0,0 +1,21 @@ +#!/usr/bin/env nix-shell +#! nix-shell -i bash -p nodePackages.node2nix + +# No official release +rev=c17384a6a12a42a528e0b1259f8073e8db89b8f4 +u=https://raw.githubusercontent.com/matrix-discord/mx-puppet-discord/$rev +# Download package.json and package-lock.json +curl -O $u/package.json +curl -O $u/package-lock.json + +node2nix \ + --nodejs-12 \ + --node-env ../../development/node-packages/node-env.nix \ + --input package.json \ + --lock package-lock.json \ + --output node-packages.nix \ + --composition node-composition.nix + +sed -i 's||../../..|' node-composition.nix + +rm -f package.json package-lock.json diff --git a/pkgs/servers/mx-puppet-discord/node-composition.nix b/pkgs/servers/mx-puppet-discord/node-composition.nix new file mode 100644 index 00000000000..777c9db5256 --- /dev/null +++ b/pkgs/servers/mx-puppet-discord/node-composition.nix @@ -0,0 +1,17 @@ +# This file has been generated by node2nix 1.9.0. Do not edit! + +{pkgs ? import ../../.. { + inherit system; + }, system ? builtins.currentSystem, nodejs ? pkgs."nodejs-12_x"}: + +let + nodeEnv = import ../../development/node-packages/node-env.nix { + inherit (pkgs) stdenv lib python2 runCommand writeTextFile; + inherit pkgs nodejs; + libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null; + }; +in +import ./node-packages.nix { + inherit (pkgs) fetchurl nix-gitignore stdenv lib fetchgit; + inherit nodeEnv; +} diff --git a/pkgs/servers/mx-puppet-discord/node-packages.nix b/pkgs/servers/mx-puppet-discord/node-packages.nix new file mode 100644 index 00000000000..b3dc83bb343 --- /dev/null +++ b/pkgs/servers/mx-puppet-discord/node-packages.nix @@ -0,0 +1,3616 @@ +# This file has been generated by node2nix 1.9.0. Do not edit! + +{nodeEnv, fetchurl, fetchgit, nix-gitignore, stdenv, lib, globalBuildInputs ? []}: + +let + sources = { + "@babel/code-frame-7.0.0" = { + name = "_at_babel_slash_code-frame"; + packageName = "@babel/code-frame"; + version = "7.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz"; + sha512 = "OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA=="; + }; + }; + "@babel/highlight-7.0.0" = { + name = "_at_babel_slash_highlight"; + packageName = "@babel/highlight"; + version = "7.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz"; + sha512 = "UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw=="; + }; + }; + "@dabh/diagnostics-2.0.2" = { + name = "_at_dabh_slash_diagnostics"; + packageName = "@dabh/diagnostics"; + version = "2.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.2.tgz"; + sha512 = "+A1YivoVDNNVCdfozHSR8v/jyuuLTMXwjWuxPFlFlUapXoGc+Gj9mDlTDDfrwl7rXCl2tNZ0kE8sIBO6YOn96Q=="; + }; + }; + "@discordjs/collection-0.1.6" = { + name = "_at_discordjs_slash_collection"; + packageName = "@discordjs/collection"; + version = "0.1.6"; + src = fetchurl { + url = "https://registry.npmjs.org/@discordjs/collection/-/collection-0.1.6.tgz"; + sha512 = "utRNxnd9kSS2qhyivo9lMlt5qgAUasH2gb7BEOn6p0efFh24gjGomHzWKMAPn2hEReOPQZCJaRKoURwRotKucQ=="; + }; + }; + "@discordjs/form-data-3.0.1" = { + name = "_at_discordjs_slash_form-data"; + packageName = "@discordjs/form-data"; + version = "3.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@discordjs/form-data/-/form-data-3.0.1.tgz"; + sha512 = "ZfFsbgEXW71Rw/6EtBdrP5VxBJy4dthyC0tpQKGKmYFImlmmrykO14Za+BiIVduwjte0jXEBlhSKf0MWbFp9Eg=="; + }; + }; + "@sindresorhus/is-3.1.2" = { + name = "_at_sindresorhus_slash_is"; + packageName = "@sindresorhus/is"; + version = "3.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/@sindresorhus/is/-/is-3.1.2.tgz"; + sha512 = "JiX9vxoKMmu8Y3Zr2RVathBL1Cdu4Nt4MuNWemt1Nc06A0RAin9c5FArkhGsyMBWfCu4zj+9b+GxtjAnE4qqLQ=="; + }; + }; + "@sorunome/matrix-bot-sdk-0.5.8" = { + name = "_at_sorunome_slash_matrix-bot-sdk"; + packageName = "@sorunome/matrix-bot-sdk"; + version = "0.5.8"; + src = fetchurl { + url = "https://registry.npmjs.org/@sorunome/matrix-bot-sdk/-/matrix-bot-sdk-0.5.8.tgz"; + sha512 = "Uifu8saeD1fPrj6F8ZdYiCeADCluySbdi/nVKJy0NQOi6cA5p68ZaeydlCyl+YuFJoCjsDWBe+Szq9CgFd/SpA=="; + }; + }; + "@szmarczak/http-timer-4.0.5" = { + name = "_at_szmarczak_slash_http-timer"; + packageName = "@szmarczak/http-timer"; + version = "4.0.5"; + src = fetchurl { + url = "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.5.tgz"; + sha512 = "PyRA9sm1Yayuj5OIoJ1hGt2YISX45w9WcFbh6ddT0Z/0yaFxOtGLInr4jUfU1EAFVs0Yfyfev4RNwBlUaHdlDQ=="; + }; + }; + "@types/body-parser-1.19.0" = { + name = "_at_types_slash_body-parser"; + packageName = "@types/body-parser"; + version = "1.19.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.0.tgz"; + sha512 = "W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ=="; + }; + }; + "@types/cacheable-request-6.0.1" = { + name = "_at_types_slash_cacheable-request"; + packageName = "@types/cacheable-request"; + version = "6.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.1.tgz"; + sha512 = "ykFq2zmBGOCbpIXtoVbz4SKY5QriWPh3AjyU4G74RYbtt5yOc5OfaY75ftjg7mikMOla1CTGpX3lLbuJh8DTrQ=="; + }; + }; + "@types/connect-3.4.34" = { + name = "_at_types_slash_connect"; + packageName = "@types/connect"; + version = "3.4.34"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/connect/-/connect-3.4.34.tgz"; + sha512 = "ePPA/JuI+X0vb+gSWlPKOY0NdNAie/rPUqX2GUPpbZwiKTkSPhjXWuee47E4MtE54QVzGCQMQkAL6JhV2E1+cQ=="; + }; + }; + "@types/express-4.17.11" = { + name = "_at_types_slash_express"; + packageName = "@types/express"; + version = "4.17.11"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/express/-/express-4.17.11.tgz"; + sha512 = "no+R6rW60JEc59977wIxreQVsIEOAYwgCqldrA/vkpCnbD7MqTefO97lmoBe4WE0F156bC4uLSP1XHDOySnChg=="; + }; + }; + "@types/express-serve-static-core-4.17.18" = { + name = "_at_types_slash_express-serve-static-core"; + packageName = "@types/express-serve-static-core"; + version = "4.17.18"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.18.tgz"; + sha512 = "m4JTwx5RUBNZvky/JJ8swEJPKFd8si08pPF2PfizYjGZOKr/svUWPcoUmLow6MmPzhasphB7gSTINY67xn3JNA=="; + }; + }; + "@types/http-cache-semantics-4.0.0" = { + name = "_at_types_slash_http-cache-semantics"; + packageName = "@types/http-cache-semantics"; + version = "4.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.0.tgz"; + sha512 = "c3Xy026kOF7QOTn00hbIllV1dLR9hG9NkSrLQgCVs8NF6sBU+VGWjD3wLPhmh1TYAc7ugCFsvHYMN4VcBN1U1A=="; + }; + }; + "@types/keyv-3.1.1" = { + name = "_at_types_slash_keyv"; + packageName = "@types/keyv"; + version = "3.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.1.tgz"; + sha512 = "MPtoySlAZQ37VoLaPcTHCu1RWJ4llDkULYZIzOYxlhxBqYPB0RsRlmMU0R6tahtFe27mIdkHV+551ZWV4PLmVw=="; + }; + }; + "@types/mime-1.3.2" = { + name = "_at_types_slash_mime"; + packageName = "@types/mime"; + version = "1.3.2"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz"; + sha512 = "YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw=="; + }; + }; + "@types/node-14.6.3" = { + name = "_at_types_slash_node"; + packageName = "@types/node"; + version = "14.6.3"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/node/-/node-14.6.3.tgz"; + sha512 = "pC/hkcREG6YfDfui1FBmj8e20jFU5Exjw4NYDm8kEdrW+mOh0T1Zve8DWKnS7ZIZvgncrctcNCXF4Q2I+loyww=="; + }; + }; + "@types/prop-types-15.7.3" = { + name = "_at_types_slash_prop-types"; + packageName = "@types/prop-types"; + version = "15.7.3"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.3.tgz"; + sha512 = "KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw=="; + }; + }; + "@types/qs-6.9.5" = { + name = "_at_types_slash_qs"; + packageName = "@types/qs"; + version = "6.9.5"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/qs/-/qs-6.9.5.tgz"; + sha512 = "/JHkVHtx/REVG0VVToGRGH2+23hsYLHdyG+GrvoUGlGAd0ErauXDyvHtRI/7H7mzLm+tBCKA7pfcpkQ1lf58iQ=="; + }; + }; + "@types/range-parser-1.2.3" = { + name = "_at_types_slash_range-parser"; + packageName = "@types/range-parser"; + version = "1.2.3"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.3.tgz"; + sha512 = "ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA=="; + }; + }; + "@types/react-17.0.0" = { + name = "_at_types_slash_react"; + packageName = "@types/react"; + version = "17.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/react/-/react-17.0.0.tgz"; + sha512 = "aj/L7RIMsRlWML3YB6KZiXB3fV2t41+5RBGYF8z+tAKU43Px8C3cYUZsDvf1/+Bm4FK21QWBrDutu8ZJ/70qOw=="; + }; + }; + "@types/responselike-1.0.0" = { + name = "_at_types_slash_responselike"; + packageName = "@types/responselike"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz"; + sha512 = "85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA=="; + }; + }; + "@types/serve-static-1.13.9" = { + name = "_at_types_slash_serve-static"; + packageName = "@types/serve-static"; + version = "1.13.9"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.9.tgz"; + sha512 = "ZFqF6qa48XsPdjXV5Gsz0Zqmux2PerNd3a/ktL45mHpa19cuMi/cL8tcxdAx497yRh+QtYPuofjT9oWw9P7nkA=="; + }; + }; + "abbrev-1.1.1" = { + name = "abbrev"; + packageName = "abbrev"; + version = "1.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz"; + sha512 = "nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="; + }; + }; + "abort-controller-3.0.0" = { + name = "abort-controller"; + packageName = "abort-controller"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz"; + sha512 = "h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg=="; + }; + }; + "accepts-1.3.7" = { + name = "accepts"; + packageName = "accepts"; + version = "1.3.7"; + src = fetchurl { + url = "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz"; + sha512 = "Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA=="; + }; + }; + "ansi-regex-2.1.1" = { + name = "ansi-regex"; + packageName = "ansi-regex"; + version = "2.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz"; + sha1 = "c3b33ab5ee360d86e0e628f0468ae7ef27d654df"; + }; + }; + "ansi-styles-3.2.1" = { + name = "ansi-styles"; + packageName = "ansi-styles"; + version = "3.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz"; + sha512 = "VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA=="; + }; + }; + "ansi-styles-4.3.0" = { + name = "ansi-styles"; + packageName = "ansi-styles"; + version = "4.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz"; + sha512 = "zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="; + }; + }; + "aproba-1.2.0" = { + name = "aproba"; + packageName = "aproba"; + version = "1.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz"; + sha512 = "Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw=="; + }; + }; + "are-we-there-yet-1.1.5" = { + name = "are-we-there-yet"; + packageName = "are-we-there-yet"; + version = "1.1.5"; + src = fetchurl { + url = "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz"; + sha512 = "5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w=="; + }; + }; + "argparse-1.0.10" = { + name = "argparse"; + packageName = "argparse"; + version = "1.0.10"; + src = fetchurl { + url = "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz"; + sha512 = "o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg=="; + }; + }; + "array-back-2.0.0" = { + name = "array-back"; + packageName = "array-back"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz"; + sha512 = "eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw=="; + }; + }; + "array-back-3.1.0" = { + name = "array-back"; + packageName = "array-back"; + version = "3.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz"; + sha512 = "TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q=="; + }; + }; + "array-flatten-1.1.1" = { + name = "array-flatten"; + packageName = "array-flatten"; + version = "1.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz"; + sha1 = "9a5f699051b1e7073328f2a008968b64ea2955d2"; + }; + }; + "assert-options-0.7.0" = { + name = "assert-options"; + packageName = "assert-options"; + version = "0.7.0"; + src = fetchurl { + url = "https://registry.npmjs.org/assert-options/-/assert-options-0.7.0.tgz"; + sha512 = "7q9uNH/Dh8gFgpIIb9ja8PJEWA5AQy3xnBC8jtKs8K/gNVCr1K6kIvlm59HUyYgvM7oEDoLzGgPcGd9FqhtXEQ=="; + }; + }; + "async-3.2.0" = { + name = "async"; + packageName = "async"; + version = "3.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/async/-/async-3.2.0.tgz"; + sha512 = "TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw=="; + }; + }; + "asynckit-0.4.0" = { + name = "asynckit"; + packageName = "asynckit"; + version = "0.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz"; + sha1 = "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"; + }; + }; + "balanced-match-1.0.0" = { + name = "balanced-match"; + packageName = "balanced-match"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz"; + sha1 = "89b4d199ab2bee49de164ea02b89ce462d71b767"; + }; + }; + "base64-js-1.5.1" = { + name = "base64-js"; + packageName = "base64-js"; + version = "1.5.1"; + src = fetchurl { + url = "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz"; + sha512 = "AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="; + }; + }; + "basic-auth-2.0.1" = { + name = "basic-auth"; + packageName = "basic-auth"; + version = "2.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz"; + sha512 = "NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg=="; + }; + }; + "better-discord.js-git+https://github.com/Sorunome/better-discord.js.git#5e58e1e7510cf2192f3503ca146dd61a56a75c72" = { + name = "better-discord.js"; + packageName = "better-discord.js"; + version = "12.5.1"; + src = fetchgit { + url = "https://github.com/Sorunome/better-discord.js.git"; + rev = "5e58e1e7510cf2192f3503ca146dd61a56a75c72"; + sha256 = "ab87453cc9db05b3bc691f27e92c5a4a6a14a528c98c7d313d6dd42f1741124a"; + }; + }; + "better-sqlite3-6.0.1" = { + name = "better-sqlite3"; + packageName = "better-sqlite3"; + version = "6.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-6.0.1.tgz"; + sha512 = "4aV1zEknM9g1a6B0mVBx1oIlmYioEJ8gSS3J6EpN1b1bKYEE+N5lmpmXHKNKTi0qjHziSd7XrXwHl1kpqvEcHQ=="; + }; + }; + "bindings-1.5.0" = { + name = "bindings"; + packageName = "bindings"; + version = "1.5.0"; + src = fetchurl { + url = "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz"; + sha512 = "p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ=="; + }; + }; + "bintrees-1.0.1" = { + name = "bintrees"; + packageName = "bintrees"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/bintrees/-/bintrees-1.0.1.tgz"; + sha1 = "0e655c9b9c2435eaab68bf4027226d2b55a34524"; + }; + }; + "bl-4.0.3" = { + name = "bl"; + packageName = "bl"; + version = "4.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/bl/-/bl-4.0.3.tgz"; + sha512 = "fs4G6/Hu4/EE+F75J8DuN/0IpQqNjAdC7aEQv7Qt8MHGUH7Ckv2MwTEEeN9QehD0pfIDkMI1bkHYkKy7xHyKIg=="; + }; + }; + "blurhash-1.1.3" = { + name = "blurhash"; + packageName = "blurhash"; + version = "1.1.3"; + src = fetchurl { + url = "https://registry.npmjs.org/blurhash/-/blurhash-1.1.3.tgz"; + sha512 = "yUhPJvXexbqbyijCIE/T2NCXcj9iNPhWmOKbPTuR/cm7Q5snXYIfnVnz6m7MWOXxODMz/Cr3UcVkRdHiuDVRDw=="; + }; + }; + "body-parser-1.19.0" = { + name = "body-parser"; + packageName = "body-parser"; + version = "1.19.0"; + src = fetchurl { + url = "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz"; + sha512 = "dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw=="; + }; + }; + "brace-expansion-1.1.11" = { + name = "brace-expansion"; + packageName = "brace-expansion"; + version = "1.1.11"; + src = fetchurl { + url = "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz"; + sha512 = "iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA=="; + }; + }; + "buffer-5.7.1" = { + name = "buffer"; + packageName = "buffer"; + version = "5.7.1"; + src = fetchurl { + url = "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz"; + sha512 = "EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ=="; + }; + }; + "buffer-writer-2.0.0" = { + name = "buffer-writer"; + packageName = "buffer-writer"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz"; + sha512 = "a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw=="; + }; + }; + "builtin-modules-1.1.1" = { + name = "builtin-modules"; + packageName = "builtin-modules"; + version = "1.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz"; + sha1 = "270f076c5a72c02f5b65a47df94c5fe3a278892f"; + }; + }; + "bytes-3.1.0" = { + name = "bytes"; + packageName = "bytes"; + version = "3.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz"; + sha512 = "zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg=="; + }; + }; + "cacheable-lookup-5.0.3" = { + name = "cacheable-lookup"; + packageName = "cacheable-lookup"; + version = "5.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.3.tgz"; + sha512 = "W+JBqF9SWe18A72XFzN/V/CULFzPm7sBXzzR6ekkE+3tLG72wFZrBiBZhrZuDoYexop4PHJVdFAKb/Nj9+tm9w=="; + }; + }; + "cacheable-request-7.0.1" = { + name = "cacheable-request"; + packageName = "cacheable-request"; + version = "7.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.1.tgz"; + sha512 = "lt0mJ6YAnsrBErpTMWeu5kl/tg9xMAWjavYTN6VQXM1A/teBITuNcccXsCxF0tDQQJf9DfAaX5O4e0zp0KlfZw=="; + }; + }; + "canvas-2.6.1" = { + name = "canvas"; + packageName = "canvas"; + version = "2.6.1"; + src = fetchurl { + url = "https://registry.npmjs.org/canvas/-/canvas-2.6.1.tgz"; + sha512 = "S98rKsPcuhfTcYbtF53UIJhcbgIAK533d1kJKMwsMwAIFgfd58MOyxRud3kktlzWiEkFliaJtvyZCBtud/XVEA=="; + }; + }; + "chalk-2.4.2" = { + name = "chalk"; + packageName = "chalk"; + version = "2.4.2"; + src = fetchurl { + url = "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz"; + sha512 = "Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ=="; + }; + }; + "chalk-4.1.0" = { + name = "chalk"; + packageName = "chalk"; + version = "4.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz"; + sha512 = "qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A=="; + }; + }; + "chownr-1.1.4" = { + name = "chownr"; + packageName = "chownr"; + version = "1.1.4"; + src = fetchurl { + url = "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz"; + sha512 = "jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg=="; + }; + }; + "clone-response-1.0.2" = { + name = "clone-response"; + packageName = "clone-response"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz"; + sha1 = "d1dc973920314df67fbeb94223b4ee350239e96b"; + }; + }; + "code-point-at-1.1.0" = { + name = "code-point-at"; + packageName = "code-point-at"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz"; + sha1 = "0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"; + }; + }; + "color-3.0.0" = { + name = "color"; + packageName = "color"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/color/-/color-3.0.0.tgz"; + sha512 = "jCpd5+s0s0t7p3pHQKpnJ0TpQKKdleP71LWcA0aqiljpiuAkOSUFN/dyH8ZwF0hRmFlrIuRhufds1QyEP9EB+w=="; + }; + }; + "color-convert-1.9.3" = { + name = "color-convert"; + packageName = "color-convert"; + version = "1.9.3"; + src = fetchurl { + url = "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz"; + sha512 = "QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg=="; + }; + }; + "color-convert-2.0.1" = { + name = "color-convert"; + packageName = "color-convert"; + version = "2.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz"; + sha512 = "RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ=="; + }; + }; + "color-name-1.1.3" = { + name = "color-name"; + packageName = "color-name"; + version = "1.1.3"; + src = fetchurl { + url = "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz"; + sha1 = "a7d0558bd89c42f795dd42328f740831ca53bc25"; + }; + }; + "color-name-1.1.4" = { + name = "color-name"; + packageName = "color-name"; + version = "1.1.4"; + src = fetchurl { + url = "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz"; + sha512 = "dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="; + }; + }; + "color-string-1.5.4" = { + name = "color-string"; + packageName = "color-string"; + version = "1.5.4"; + src = fetchurl { + url = "https://registry.npmjs.org/color-string/-/color-string-1.5.4.tgz"; + sha512 = "57yF5yt8Xa3czSEW1jfQDE79Idk0+AkN/4KWad6tbdxUmAs3MvjxlWSWD4deYytcRfoZ9nhKyFl1kj5tBvidbw=="; + }; + }; + "colors-1.4.0" = { + name = "colors"; + packageName = "colors"; + version = "1.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz"; + sha512 = "a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA=="; + }; + }; + "colorspace-1.1.2" = { + name = "colorspace"; + packageName = "colorspace"; + version = "1.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/colorspace/-/colorspace-1.1.2.tgz"; + sha512 = "vt+OoIP2d76xLhjwbBaucYlNSpPsrJWPlBTtwCpQKIu6/CSMutyzX93O/Do0qzpH3YoHEes8YEFXyZ797rEhzQ=="; + }; + }; + "combined-stream-1.0.8" = { + name = "combined-stream"; + packageName = "combined-stream"; + version = "1.0.8"; + src = fetchurl { + url = "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz"; + sha512 = "FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg=="; + }; + }; + "command-line-args-5.1.1" = { + name = "command-line-args"; + packageName = "command-line-args"; + version = "5.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/command-line-args/-/command-line-args-5.1.1.tgz"; + sha512 = "hL/eG8lrll1Qy1ezvkant+trihbGnaKaeEjj6Scyr3DN+RC7iQ5Rz84IeLERfAWDGo0HBSNAakczwgCilDXnWg=="; + }; + }; + "command-line-usage-5.0.5" = { + name = "command-line-usage"; + packageName = "command-line-usage"; + version = "5.0.5"; + src = fetchurl { + url = "https://registry.npmjs.org/command-line-usage/-/command-line-usage-5.0.5.tgz"; + sha512 = "d8NrGylA5oCXSbGoKz05FkehDAzSmIm4K03S5VDh4d5lZAtTWfc3D1RuETtuQCn8129nYfJfDdF7P/lwcz1BlA=="; + }; + }; + "commander-2.20.0" = { + name = "commander"; + packageName = "commander"; + version = "2.20.0"; + src = fetchurl { + url = "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz"; + sha512 = "7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ=="; + }; + }; + "concat-map-0.0.1" = { + name = "concat-map"; + packageName = "concat-map"; + version = "0.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"; + sha1 = "d8a96bd77fd68df7793a73036a3ba0d5405d477b"; + }; + }; + "console-control-strings-1.1.0" = { + name = "console-control-strings"; + packageName = "console-control-strings"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz"; + sha1 = "3d7cf4464db6446ea644bf4b39507f9851008e8e"; + }; + }; + "content-disposition-0.5.3" = { + name = "content-disposition"; + packageName = "content-disposition"; + version = "0.5.3"; + src = fetchurl { + url = "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz"; + sha512 = "ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g=="; + }; + }; + "content-type-1.0.4" = { + name = "content-type"; + packageName = "content-type"; + version = "1.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz"; + sha512 = "hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="; + }; + }; + "cookie-0.4.0" = { + name = "cookie"; + packageName = "cookie"; + version = "0.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz"; + sha512 = "+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg=="; + }; + }; + "cookie-signature-1.0.6" = { + name = "cookie-signature"; + packageName = "cookie-signature"; + version = "1.0.6"; + src = fetchurl { + url = "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz"; + sha1 = "e303a882b342cc3ee8ca513a79999734dab3ae2c"; + }; + }; + "core-util-is-1.0.2" = { + name = "core-util-is"; + packageName = "core-util-is"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz"; + sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7"; + }; + }; + "csstype-3.0.5" = { + name = "csstype"; + packageName = "csstype"; + version = "3.0.5"; + src = fetchurl { + url = "https://registry.npmjs.org/csstype/-/csstype-3.0.5.tgz"; + sha512 = "uVDi8LpBUKQj6sdxNaTetL6FpeCqTjOvAQuQUa/qAqq8oOd4ivkbhgnqayl0dnPal8Tb/yB1tF+gOvCBiicaiQ=="; + }; + }; + "cycle-1.0.3" = { + name = "cycle"; + packageName = "cycle"; + version = "1.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz"; + sha1 = "21e80b2be8580f98b468f379430662b046c34ad2"; + }; + }; + "debug-2.6.9" = { + name = "debug"; + packageName = "debug"; + version = "2.6.9"; + src = fetchurl { + url = "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz"; + sha512 = "bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="; + }; + }; + "debug-3.2.7" = { + name = "debug"; + packageName = "debug"; + version = "3.2.7"; + src = fetchurl { + url = "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz"; + sha512 = "CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ=="; + }; + }; + "decompress-response-4.2.1" = { + name = "decompress-response"; + packageName = "decompress-response"; + version = "4.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz"; + sha512 = "jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw=="; + }; + }; + "decompress-response-6.0.0" = { + name = "decompress-response"; + packageName = "decompress-response"; + version = "6.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz"; + sha512 = "aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ=="; + }; + }; + "deep-extend-0.6.0" = { + name = "deep-extend"; + packageName = "deep-extend"; + version = "0.6.0"; + src = fetchurl { + url = "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz"; + sha512 = "LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA=="; + }; + }; + "defer-to-connect-2.0.0" = { + name = "defer-to-connect"; + packageName = "defer-to-connect"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.0.tgz"; + sha512 = "bYL2d05vOSf1JEZNx5vSAtPuBMkX8K9EUutg7zlKvTqKXHt7RhWJFbmd7qakVuf13i+IkGmp6FwSsONOf6VYIg=="; + }; + }; + "delayed-stream-1.0.0" = { + name = "delayed-stream"; + packageName = "delayed-stream"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz"; + sha1 = "df3ae199acadfb7d440aaae0b29e2272b24ec619"; + }; + }; + "delegates-1.0.0" = { + name = "delegates"; + packageName = "delegates"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz"; + sha1 = "84c6e159b81904fdca59a0ef44cd870d31250f9a"; + }; + }; + "depd-1.1.2" = { + name = "depd"; + packageName = "depd"; + version = "1.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz"; + sha1 = "9bcd52e14c097763e749b274c4346ed2e560b5a9"; + }; + }; + "depd-2.0.0" = { + name = "depd"; + packageName = "depd"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz"; + sha512 = "g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="; + }; + }; + "destroy-1.0.4" = { + name = "destroy"; + packageName = "destroy"; + version = "1.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz"; + sha1 = "978857442c44749e4206613e37946205826abd80"; + }; + }; + "detect-libc-1.0.3" = { + name = "detect-libc"; + packageName = "detect-libc"; + version = "1.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz"; + sha1 = "fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"; + }; + }; + "diff-3.5.0" = { + name = "diff"; + packageName = "diff"; + version = "3.5.0"; + src = fetchurl { + url = "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz"; + sha512 = "A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA=="; + }; + }; + "discord-markdown-git://github.com/Sorunome/discord-markdown.git#0f38420fdd41340d6eadd38cd5b71784ca954085" = { + name = "discord-markdown"; + packageName = "discord-markdown"; + version = "2.3.1"; + src = fetchgit { + url = "git://github.com/Sorunome/discord-markdown.git"; + rev = "0f38420fdd41340d6eadd38cd5b71784ca954085"; + sha256 = "61a5ffd248b6d2784665fa710bfe4c39f241c75be07dbe53f5f48575a4df229c"; + }; + }; + "dom-serializer-1.2.0" = { + name = "dom-serializer"; + packageName = "dom-serializer"; + version = "1.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.2.0.tgz"; + sha512 = "n6kZFH/KlCrqs/1GHMOd5i2fd/beQHuehKdWvNNffbGHTr/almdhuVvTVFb3V7fglz+nC50fFusu3lY33h12pA=="; + }; + }; + "domelementtype-2.1.0" = { + name = "domelementtype"; + packageName = "domelementtype"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/domelementtype/-/domelementtype-2.1.0.tgz"; + sha512 = "LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w=="; + }; + }; + "domhandler-3.3.0" = { + name = "domhandler"; + packageName = "domhandler"; + version = "3.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/domhandler/-/domhandler-3.3.0.tgz"; + sha512 = "J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA=="; + }; + }; + "domhandler-4.0.0" = { + name = "domhandler"; + packageName = "domhandler"; + version = "4.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/domhandler/-/domhandler-4.0.0.tgz"; + sha512 = "KPTbnGQ1JeEMQyO1iYXoagsI6so/C96HZiFyByU3T6iAzpXn8EGEvct6unm1ZGoed8ByO2oirxgwxBmqKF9haA=="; + }; + }; + "domutils-2.4.4" = { + name = "domutils"; + packageName = "domutils"; + version = "2.4.4"; + src = fetchurl { + url = "https://registry.npmjs.org/domutils/-/domutils-2.4.4.tgz"; + sha512 = "jBC0vOsECI4OMdD0GC9mGn7NXPLb+Qt6KW1YDQzeQYRUFKmNG8lh7mO5HiELfr+lLQE7loDVI4QcAxV80HS+RA=="; + }; + }; + "ee-first-1.1.1" = { + name = "ee-first"; + packageName = "ee-first"; + version = "1.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz"; + sha1 = "590c61156b0ae2f4f0255732a158b266bc56b21d"; + }; + }; + "enabled-2.0.0" = { + name = "enabled"; + packageName = "enabled"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz"; + sha512 = "AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ=="; + }; + }; + "encodeurl-1.0.2" = { + name = "encodeurl"; + packageName = "encodeurl"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz"; + sha1 = "ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"; + }; + }; + "end-of-stream-1.4.4" = { + name = "end-of-stream"; + packageName = "end-of-stream"; + version = "1.4.4"; + src = fetchurl { + url = "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz"; + sha512 = "+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q=="; + }; + }; + "entities-1.1.2" = { + name = "entities"; + packageName = "entities"; + version = "1.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz"; + sha512 = "f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w=="; + }; + }; + "entities-2.1.0" = { + name = "entities"; + packageName = "entities"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz"; + sha512 = "hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w=="; + }; + }; + "escape-html-1.0.3" = { + name = "escape-html"; + packageName = "escape-html"; + version = "1.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz"; + sha1 = "0258eae4d3d0c0974de1c169188ef0051d1d1988"; + }; + }; + "escape-string-regexp-1.0.5" = { + name = "escape-string-regexp"; + packageName = "escape-string-regexp"; + version = "1.0.5"; + src = fetchurl { + url = "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz"; + sha1 = "1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"; + }; + }; + "esprima-4.0.1" = { + name = "esprima"; + packageName = "esprima"; + version = "4.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz"; + sha512 = "eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="; + }; + }; + "esutils-2.0.2" = { + name = "esutils"; + packageName = "esutils"; + version = "2.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz"; + sha1 = "0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b"; + }; + }; + "etag-1.8.1" = { + name = "etag"; + packageName = "etag"; + version = "1.8.1"; + src = fetchurl { + url = "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz"; + sha1 = "41ae2eeb65efa62268aebfea83ac7d79299b0887"; + }; + }; + "event-target-shim-5.0.1" = { + name = "event-target-shim"; + packageName = "event-target-shim"; + version = "5.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz"; + sha512 = "i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ=="; + }; + }; + "events-3.0.0" = { + name = "events"; + packageName = "events"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/events/-/events-3.0.0.tgz"; + sha512 = "Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA=="; + }; + }; + "events-3.2.0" = { + name = "events"; + packageName = "events"; + version = "3.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/events/-/events-3.2.0.tgz"; + sha512 = "/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg=="; + }; + }; + "expand-template-2.0.3" = { + name = "expand-template"; + packageName = "expand-template"; + version = "2.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz"; + sha512 = "XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg=="; + }; + }; + "expire-set-1.0.0" = { + name = "expire-set"; + packageName = "expire-set"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/expire-set/-/expire-set-1.0.0.tgz"; + sha512 = "wOQlqatf2sJtOabNk3gEPbGvo/C8tIUhzT3rz08+i7X+u1NV+UNY4p3Lzq8DxrW57mBML1Fp5qNeYt70Qnndpg=="; + }; + }; + "express-4.17.1" = { + name = "express"; + packageName = "express"; + version = "4.17.1"; + src = fetchurl { + url = "https://registry.npmjs.org/express/-/express-4.17.1.tgz"; + sha512 = "mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g=="; + }; + }; + "extend-shallow-2.0.1" = { + name = "extend-shallow"; + packageName = "extend-shallow"; + version = "2.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz"; + sha1 = "51af7d614ad9a9f610ea1bafbb989d6b1c56890f"; + }; + }; + "fast-safe-stringify-2.0.7" = { + name = "fast-safe-stringify"; + packageName = "fast-safe-stringify"; + version = "2.0.7"; + src = fetchurl { + url = "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz"; + sha512 = "Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA=="; + }; + }; + "fecha-2.3.3" = { + name = "fecha"; + packageName = "fecha"; + version = "2.3.3"; + src = fetchurl { + url = "https://registry.npmjs.org/fecha/-/fecha-2.3.3.tgz"; + sha512 = "lUGBnIamTAwk4znq5BcqsDaxSmZ9nDVJaij6NvRt/Tg4R69gERA+otPKbS86ROw9nxVMw2/mp1fnaiWqbs6Sdg=="; + }; + }; + "fecha-4.2.0" = { + name = "fecha"; + packageName = "fecha"; + version = "4.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/fecha/-/fecha-4.2.0.tgz"; + sha512 = "aN3pcx/DSmtyoovUudctc8+6Hl4T+hI9GBBHLjA76jdZl7+b1sgh5g4k+u/GL3dTy1/pnYzKp69FpJ0OicE3Wg=="; + }; + }; + "file-stream-rotator-0.4.1" = { + name = "file-stream-rotator"; + packageName = "file-stream-rotator"; + version = "0.4.1"; + src = fetchurl { + url = "https://registry.npmjs.org/file-stream-rotator/-/file-stream-rotator-0.4.1.tgz"; + sha512 = "W3aa3QJEc8BS2MmdVpQiYLKHj3ijpto1gMDlsgCRSKfIUe6MwkcpODGPQ3vZfb0XvCeCqlu9CBQTN7oQri2TZQ=="; + }; + }; + "file-type-12.4.2" = { + name = "file-type"; + packageName = "file-type"; + version = "12.4.2"; + src = fetchurl { + url = "https://registry.npmjs.org/file-type/-/file-type-12.4.2.tgz"; + sha512 = "UssQP5ZgIOKelfsaB5CuGAL+Y+q7EmONuiwF3N5HAH0t27rvrttgi6Ra9k/+DVaY9UF6+ybxu5pOXLUdA8N7Vg=="; + }; + }; + "file-uri-to-path-1.0.0" = { + name = "file-uri-to-path"; + packageName = "file-uri-to-path"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz"; + sha512 = "0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw=="; + }; + }; + "finalhandler-1.1.2" = { + name = "finalhandler"; + packageName = "finalhandler"; + version = "1.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz"; + sha512 = "aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA=="; + }; + }; + "find-replace-3.0.0" = { + name = "find-replace"; + packageName = "find-replace"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz"; + sha512 = "6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ=="; + }; + }; + "fn.name-1.1.0" = { + name = "fn.name"; + packageName = "fn.name"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz"; + sha512 = "GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw=="; + }; + }; + "forwarded-0.1.2" = { + name = "forwarded"; + packageName = "forwarded"; + version = "0.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz"; + sha1 = "98c23dab1175657b8c0573e8ceccd91b0ff18c84"; + }; + }; + "fresh-0.5.2" = { + name = "fresh"; + packageName = "fresh"; + version = "0.5.2"; + src = fetchurl { + url = "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz"; + sha1 = "3d8cadd90d976569fa835ab1f8e4b23a105605a7"; + }; + }; + "fs-constants-1.0.0" = { + name = "fs-constants"; + packageName = "fs-constants"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz"; + sha512 = "y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow=="; + }; + }; + "fs-minipass-1.2.7" = { + name = "fs-minipass"; + packageName = "fs-minipass"; + version = "1.2.7"; + src = fetchurl { + url = "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz"; + sha512 = "GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA=="; + }; + }; + "fs.realpath-1.0.0" = { + name = "fs.realpath"; + packageName = "fs.realpath"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz"; + sha1 = "1504ad2523158caa40db4a2787cb01411994ea4f"; + }; + }; + "gauge-2.7.4" = { + name = "gauge"; + packageName = "gauge"; + version = "2.7.4"; + src = fetchurl { + url = "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz"; + sha1 = "2c03405c7538c39d7eb37b317022e325fb018bf7"; + }; + }; + "get-stream-5.2.0" = { + name = "get-stream"; + packageName = "get-stream"; + version = "5.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz"; + sha512 = "nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA=="; + }; + }; + "github-from-package-0.0.0" = { + name = "github-from-package"; + packageName = "github-from-package"; + version = "0.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz"; + sha1 = "97fb5d96bfde8973313f20e8288ef9a167fa64ce"; + }; + }; + "glob-7.1.4" = { + name = "glob"; + packageName = "glob"; + version = "7.1.4"; + src = fetchurl { + url = "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz"; + sha512 = "hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A=="; + }; + }; + "glob-to-regexp-0.4.1" = { + name = "glob-to-regexp"; + packageName = "glob-to-regexp"; + version = "0.4.1"; + src = fetchurl { + url = "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz"; + sha512 = "lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw=="; + }; + }; + "got-11.6.0" = { + name = "got"; + packageName = "got"; + version = "11.6.0"; + src = fetchurl { + url = "https://registry.npmjs.org/got/-/got-11.6.0.tgz"; + sha512 = "ErhWb4IUjQzJ3vGs3+RR12NWlBDDkRciFpAkQ1LPUxi6OnwhGj07gQxjPsyIk69s7qMihwKrKquV6VQq7JNYLA=="; + }; + }; + "graceful-fs-4.2.4" = { + name = "graceful-fs"; + packageName = "graceful-fs"; + version = "4.2.4"; + src = fetchurl { + url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz"; + sha512 = "WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw=="; + }; + }; + "has-flag-3.0.0" = { + name = "has-flag"; + packageName = "has-flag"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz"; + sha1 = "b5d454dc2199ae225699f3467e5a07f3b955bafd"; + }; + }; + "has-flag-4.0.0" = { + name = "has-flag"; + packageName = "has-flag"; + version = "4.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz"; + sha512 = "EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="; + }; + }; + "has-unicode-2.0.1" = { + name = "has-unicode"; + packageName = "has-unicode"; + version = "2.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz"; + sha1 = "e0e6fe6a28cf51138855e086d1691e771de2a8b9"; + }; + }; + "hash.js-1.1.7" = { + name = "hash.js"; + packageName = "hash.js"; + version = "1.1.7"; + src = fetchurl { + url = "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz"; + sha512 = "taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA=="; + }; + }; + "hasha-5.2.2" = { + name = "hasha"; + packageName = "hasha"; + version = "5.2.2"; + src = fetchurl { + url = "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz"; + sha512 = "Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ=="; + }; + }; + "he-1.2.0" = { + name = "he"; + packageName = "he"; + version = "1.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/he/-/he-1.2.0.tgz"; + sha512 = "F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw=="; + }; + }; + "highlight.js-10.4.1" = { + name = "highlight.js"; + packageName = "highlight.js"; + version = "10.4.1"; + src = fetchurl { + url = "https://registry.npmjs.org/highlight.js/-/highlight.js-10.4.1.tgz"; + sha512 = "yR5lWvNz7c85OhVAEAeFhVCc/GV4C30Fjzc/rCP0aCWzc1UUOPUk55dK/qdwTZHBvMZo+eZ2jpk62ndX/xMFlg=="; + }; + }; + "htmlencode-0.0.4" = { + name = "htmlencode"; + packageName = "htmlencode"; + version = "0.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/htmlencode/-/htmlencode-0.0.4.tgz"; + sha1 = "f7e2d6afbe18a87a78e63ba3308e753766740e3f"; + }; + }; + "htmlparser2-4.1.0" = { + name = "htmlparser2"; + packageName = "htmlparser2"; + version = "4.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/htmlparser2/-/htmlparser2-4.1.0.tgz"; + sha512 = "4zDq1a1zhE4gQso/c5LP1OtrhYTncXNSpvJYtWJBtXAETPlMfi3IFNjGuQbYLuVY4ZR0QMqRVvo4Pdy9KLyP8Q=="; + }; + }; + "http-cache-semantics-4.1.0" = { + name = "http-cache-semantics"; + packageName = "http-cache-semantics"; + version = "4.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz"; + sha512 = "carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ=="; + }; + }; + "http-errors-1.7.2" = { + name = "http-errors"; + packageName = "http-errors"; + version = "1.7.2"; + src = fetchurl { + url = "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz"; + sha512 = "uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg=="; + }; + }; + "http2-wrapper-1.0.0-beta.5.2" = { + name = "http2-wrapper"; + packageName = "http2-wrapper"; + version = "1.0.0-beta.5.2"; + src = fetchurl { + url = "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.0-beta.5.2.tgz"; + sha512 = "xYz9goEyBnC8XwXDTuC/MZ6t+MrKVQZOk4s7+PaDkwIsQd8IwqvM+0M6bA/2lvG8GHXcPdf+MejTUeO2LCPCeQ=="; + }; + }; + "iconv-lite-0.4.24" = { + name = "iconv-lite"; + packageName = "iconv-lite"; + version = "0.4.24"; + src = fetchurl { + url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz"; + sha512 = "v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA=="; + }; + }; + "ieee754-1.2.1" = { + name = "ieee754"; + packageName = "ieee754"; + version = "1.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz"; + sha512 = "dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="; + }; + }; + "ignore-walk-3.0.3" = { + name = "ignore-walk"; + packageName = "ignore-walk"; + version = "3.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz"; + sha512 = "m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw=="; + }; + }; + "inflight-1.0.6" = { + name = "inflight"; + packageName = "inflight"; + version = "1.0.6"; + src = fetchurl { + url = "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz"; + sha1 = "49bd6331d7d02d0c09bc910a1075ba8165b56df9"; + }; + }; + "inherits-2.0.3" = { + name = "inherits"; + packageName = "inherits"; + version = "2.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz"; + sha1 = "633c2c83e3da42a502f52466022480f4208261de"; + }; + }; + "inherits-2.0.4" = { + name = "inherits"; + packageName = "inherits"; + version = "2.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz"; + sha512 = "k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="; + }; + }; + "ini-1.3.8" = { + name = "ini"; + packageName = "ini"; + version = "1.3.8"; + src = fetchurl { + url = "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz"; + sha512 = "JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="; + }; + }; + "integer-3.0.1" = { + name = "integer"; + packageName = "integer"; + version = "3.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/integer/-/integer-3.0.1.tgz"; + sha512 = "OqtER6W2GIJTIcnT5o2B/pWGgvurnVOYs4OZCgay40QEIbMTnNq4R0KSaIw1TZyFtPWjm5aNM+pBBMTfc3exmw=="; + }; + }; + "ipaddr.js-1.9.1" = { + name = "ipaddr.js"; + packageName = "ipaddr.js"; + version = "1.9.1"; + src = fetchurl { + url = "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz"; + sha512 = "0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="; + }; + }; + "is-arrayish-0.3.2" = { + name = "is-arrayish"; + packageName = "is-arrayish"; + version = "0.3.2"; + src = fetchurl { + url = "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz"; + sha512 = "eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ=="; + }; + }; + "is-extendable-0.1.1" = { + name = "is-extendable"; + packageName = "is-extendable"; + version = "0.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz"; + sha1 = "62b110e289a471418e3ec36a617d472e301dfc89"; + }; + }; + "is-fullwidth-code-point-1.0.0" = { + name = "is-fullwidth-code-point"; + packageName = "is-fullwidth-code-point"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz"; + sha1 = "ef9e31386f031a7f0d643af82fde50c457ef00cb"; + }; + }; + "is-promise-2.2.2" = { + name = "is-promise"; + packageName = "is-promise"; + version = "2.2.2"; + src = fetchurl { + url = "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz"; + sha512 = "+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ=="; + }; + }; + "is-stream-2.0.0" = { + name = "is-stream"; + packageName = "is-stream"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz"; + sha512 = "XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw=="; + }; + }; + "isarray-1.0.0" = { + name = "isarray"; + packageName = "isarray"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"; + sha1 = "bb935d48582cba168c06834957a54a3e07124f11"; + }; + }; + "js-tokens-4.0.0" = { + name = "js-tokens"; + packageName = "js-tokens"; + version = "4.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz"; + sha512 = "RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="; + }; + }; + "js-yaml-3.13.1" = { + name = "js-yaml"; + packageName = "js-yaml"; + version = "3.13.1"; + src = fetchurl { + url = "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz"; + sha512 = "YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw=="; + }; + }; + "json-buffer-3.0.1" = { + name = "json-buffer"; + packageName = "json-buffer"; + version = "3.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz"; + sha512 = "4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ=="; + }; + }; + "keyv-4.0.1" = { + name = "keyv"; + packageName = "keyv"; + version = "4.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/keyv/-/keyv-4.0.1.tgz"; + sha512 = "xz6Jv6oNkbhrFCvCP7HQa8AaII8y8LRpoSm661NOKLr4uHuBwhX4epXrPQgF3+xdJnN4Esm5X0xwY4bOlALOtw=="; + }; + }; + "kuler-2.0.0" = { + name = "kuler"; + packageName = "kuler"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz"; + sha512 = "Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A=="; + }; + }; + "linkify-it-2.2.0" = { + name = "linkify-it"; + packageName = "linkify-it"; + version = "2.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz"; + sha512 = "GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw=="; + }; + }; + "lodash-4.17.20" = { + name = "lodash"; + packageName = "lodash"; + version = "4.17.20"; + src = fetchurl { + url = "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz"; + sha512 = "PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA=="; + }; + }; + "lodash.camelcase-4.3.0" = { + name = "lodash.camelcase"; + packageName = "lodash.camelcase"; + version = "4.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz"; + sha1 = "b28aa6288a2b9fc651035c7711f65ab6190331a6"; + }; + }; + "lodash.padend-4.6.1" = { + name = "lodash.padend"; + packageName = "lodash.padend"; + version = "4.6.1"; + src = fetchurl { + url = "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz"; + sha1 = "53ccba047d06e158d311f45da625f4e49e6f166e"; + }; + }; + "lodash.toarray-4.4.0" = { + name = "lodash.toarray"; + packageName = "lodash.toarray"; + version = "4.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/lodash.toarray/-/lodash.toarray-4.4.0.tgz"; + sha1 = "24c4bfcd6b2fba38bfd0594db1179d8e9b656561"; + }; + }; + "logform-1.10.0" = { + name = "logform"; + packageName = "logform"; + version = "1.10.0"; + src = fetchurl { + url = "https://registry.npmjs.org/logform/-/logform-1.10.0.tgz"; + sha512 = "em5ojIhU18fIMOw/333mD+ZLE2fis0EzXl1ZwHx4iQzmpQi6odNiY/t+ITNr33JZhT9/KEaH+UPIipr6a9EjWg=="; + }; + }; + "logform-2.2.0" = { + name = "logform"; + packageName = "logform"; + version = "2.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/logform/-/logform-2.2.0.tgz"; + sha512 = "N0qPlqfypFx7UHNn4B3lzS/b0uLqt2hmuoa+PpuXNYgozdJYAyauF5Ky0BWVjrxDlMWiT3qN4zPq3vVAfZy7Yg=="; + }; + }; + "lowdb-1.0.0" = { + name = "lowdb"; + packageName = "lowdb"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/lowdb/-/lowdb-1.0.0.tgz"; + sha512 = "2+x8esE/Wb9SQ1F9IHaYWfsC9FIecLOPrK4g17FGEayjUWH172H6nwicRovGvSE2CPZouc2MCIqCI7h9d+GftQ=="; + }; + }; + "lowercase-keys-2.0.0" = { + name = "lowercase-keys"; + packageName = "lowercase-keys"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz"; + sha512 = "tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA=="; + }; + }; + "lru-cache-6.0.0" = { + name = "lru-cache"; + packageName = "lru-cache"; + version = "6.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz"; + sha512 = "Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA=="; + }; + }; + "markdown-it-9.1.0" = { + name = "markdown-it"; + packageName = "markdown-it"; + version = "9.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/markdown-it/-/markdown-it-9.1.0.tgz"; + sha512 = "xHKG4C8iPriyfu/jc2hsCC045fKrMQ0VexX2F1FGYiRxDxqMB2aAhF8WauJ3fltn2kb90moGBkiiEdooGIg55w=="; + }; + }; + "matrix-discord-parser-0.1.7" = { + name = "matrix-discord-parser"; + packageName = "matrix-discord-parser"; + version = "0.1.7"; + src = fetchurl { + url = "https://registry.npmjs.org/matrix-discord-parser/-/matrix-discord-parser-0.1.7.tgz"; + sha512 = "zL1L52Wsc80IaVPXGVMjfumpN+PJ6zAuXJ6EKf8HTjPvPx4J03ybHHUrDPw455WxaJp00SmuDq+wZZyOZTvIeQ=="; + }; + }; + "mdurl-1.0.1" = { + name = "mdurl"; + packageName = "mdurl"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz"; + sha1 = "fe85b2ec75a59037f2adfec100fd6c601761152e"; + }; + }; + "media-typer-0.3.0" = { + name = "media-typer"; + packageName = "media-typer"; + version = "0.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz"; + sha1 = "8710d7af0aa626f8fffa1ce00168545263255748"; + }; + }; + "merge-descriptors-1.0.1" = { + name = "merge-descriptors"; + packageName = "merge-descriptors"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz"; + sha1 = "b00aaa556dd8b44568150ec9d1b953f3f90cbb61"; + }; + }; + "methods-1.1.2" = { + name = "methods"; + packageName = "methods"; + version = "1.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz"; + sha1 = "5529a4d67654134edcc5266656835b0f851afcee"; + }; + }; + "mime-1.6.0" = { + name = "mime"; + packageName = "mime"; + version = "1.6.0"; + src = fetchurl { + url = "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz"; + sha512 = "x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="; + }; + }; + "mime-2.5.0" = { + name = "mime"; + packageName = "mime"; + version = "2.5.0"; + src = fetchurl { + url = "https://registry.npmjs.org/mime/-/mime-2.5.0.tgz"; + sha512 = "ft3WayFSFUVBuJj7BMLKAQcSlItKtfjsKDDsii3rqFDAZ7t11zRe8ASw/GlmivGwVUYtwkQrxiGGpL6gFvB0ag=="; + }; + }; + "mime-db-1.43.0" = { + name = "mime-db"; + packageName = "mime-db"; + version = "1.43.0"; + src = fetchurl { + url = "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz"; + sha512 = "+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ=="; + }; + }; + "mime-types-2.1.26" = { + name = "mime-types"; + packageName = "mime-types"; + version = "2.1.26"; + src = fetchurl { + url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz"; + sha512 = "01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ=="; + }; + }; + "mimic-response-1.0.1" = { + name = "mimic-response"; + packageName = "mimic-response"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz"; + sha512 = "j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ=="; + }; + }; + "mimic-response-2.1.0" = { + name = "mimic-response"; + packageName = "mimic-response"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz"; + sha512 = "wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA=="; + }; + }; + "mimic-response-3.1.0" = { + name = "mimic-response"; + packageName = "mimic-response"; + version = "3.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz"; + sha512 = "z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ=="; + }; + }; + "minimalistic-assert-1.0.1" = { + name = "minimalistic-assert"; + packageName = "minimalistic-assert"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz"; + sha512 = "UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A=="; + }; + }; + "minimatch-3.0.4" = { + name = "minimatch"; + packageName = "minimatch"; + version = "3.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz"; + sha512 = "yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA=="; + }; + }; + "minimist-1.2.5" = { + name = "minimist"; + packageName = "minimist"; + version = "1.2.5"; + src = fetchurl { + url = "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz"; + sha512 = "FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="; + }; + }; + "minipass-2.9.0" = { + name = "minipass"; + packageName = "minipass"; + version = "2.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz"; + sha512 = "wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg=="; + }; + }; + "minizlib-1.3.3" = { + name = "minizlib"; + packageName = "minizlib"; + version = "1.3.3"; + src = fetchurl { + url = "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz"; + sha512 = "6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q=="; + }; + }; + "mkdirp-0.5.5" = { + name = "mkdirp"; + packageName = "mkdirp"; + version = "0.5.5"; + src = fetchurl { + url = "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz"; + sha512 = "NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ=="; + }; + }; + "mkdirp-1.0.4" = { + name = "mkdirp"; + packageName = "mkdirp"; + version = "1.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz"; + sha512 = "vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw=="; + }; + }; + "mkdirp-classic-0.5.3" = { + name = "mkdirp-classic"; + packageName = "mkdirp-classic"; + version = "0.5.3"; + src = fetchurl { + url = "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz"; + sha512 = "gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A=="; + }; + }; + "moment-2.29.1" = { + name = "moment"; + packageName = "moment"; + version = "2.29.1"; + src = fetchurl { + url = "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz"; + sha512 = "kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ=="; + }; + }; + "morgan-1.10.0" = { + name = "morgan"; + packageName = "morgan"; + version = "1.10.0"; + src = fetchurl { + url = "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz"; + sha512 = "AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ=="; + }; + }; + "ms-2.0.0" = { + name = "ms"; + packageName = "ms"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz"; + sha1 = "5608aeadfc00be6c2901df5f9861788de0d597c8"; + }; + }; + "ms-2.1.1" = { + name = "ms"; + packageName = "ms"; + version = "2.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz"; + sha512 = "tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="; + }; + }; + "ms-2.1.3" = { + name = "ms"; + packageName = "ms"; + version = "2.1.3"; + src = fetchurl { + url = "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz"; + sha512 = "6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="; + }; + }; + "mx-puppet-bridge-0.1.4" = { + name = "mx-puppet-bridge"; + packageName = "mx-puppet-bridge"; + version = "0.1.4"; + src = fetchurl { + url = "https://registry.npmjs.org/mx-puppet-bridge/-/mx-puppet-bridge-0.1.4.tgz"; + sha512 = "Jg4hszVqQv1n35Mvb5HcfK4VafjB0LaCEay8ylgiu/M2oIPE0fadFNdQpkwssXmShDzSeth/xga3HgP8G6O5Fg=="; + }; + }; + "nan-2.14.2" = { + name = "nan"; + packageName = "nan"; + version = "2.14.2"; + src = fetchurl { + url = "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz"; + sha512 = "M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ=="; + }; + }; + "napi-build-utils-1.0.2" = { + name = "napi-build-utils"; + packageName = "napi-build-utils"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz"; + sha512 = "ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg=="; + }; + }; + "needle-2.6.0" = { + name = "needle"; + packageName = "needle"; + version = "2.6.0"; + src = fetchurl { + url = "https://registry.npmjs.org/needle/-/needle-2.6.0.tgz"; + sha512 = "KKYdza4heMsEfSWD7VPUIz3zX2XDwOyX2d+geb4vrERZMT5RMU6ujjaD+I5Yr54uZxQ2w6XRTAhHBbSCyovZBg=="; + }; + }; + "negotiator-0.6.2" = { + name = "negotiator"; + packageName = "negotiator"; + version = "0.6.2"; + src = fetchurl { + url = "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz"; + sha512 = "hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw=="; + }; + }; + "node-abi-2.19.3" = { + name = "node-abi"; + packageName = "node-abi"; + version = "2.19.3"; + src = fetchurl { + url = "https://registry.npmjs.org/node-abi/-/node-abi-2.19.3.tgz"; + sha512 = "9xZrlyfvKhWme2EXFKQhZRp1yNWT/uI1luYPr3sFl+H4keYY4xR+1jO7mvTTijIsHf1M+QDe9uWuKeEpLInIlg=="; + }; + }; + "node-emoji-1.10.0" = { + name = "node-emoji"; + packageName = "node-emoji"; + version = "1.10.0"; + src = fetchurl { + url = "https://registry.npmjs.org/node-emoji/-/node-emoji-1.10.0.tgz"; + sha512 = "Yt3384If5H6BYGVHiHwTL+99OzJKHhgp82S8/dktEK73T26BazdgZ4JZh92xSVtGNJvz9UbXdNAc5hcrXV42vw=="; + }; + }; + "node-fetch-2.6.1" = { + name = "node-fetch"; + packageName = "node-fetch"; + version = "2.6.1"; + src = fetchurl { + url = "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz"; + sha512 = "V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw=="; + }; + }; + "node-html-parser-1.4.9" = { + name = "node-html-parser"; + packageName = "node-html-parser"; + version = "1.4.9"; + src = fetchurl { + url = "https://registry.npmjs.org/node-html-parser/-/node-html-parser-1.4.9.tgz"; + sha512 = "UVcirFD1Bn0O+TSmloHeHqZZCxHjvtIeGdVdGMhyZ8/PWlEiZaZ5iJzR189yKZr8p0FXN58BUeC7RHRkf/KYGw=="; + }; + }; + "node-pre-gyp-0.11.0" = { + name = "node-pre-gyp"; + packageName = "node-pre-gyp"; + version = "0.11.0"; + src = fetchurl { + url = "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.11.0.tgz"; + sha512 = "TwWAOZb0j7e9eGaf9esRx3ZcLaE5tQ2lvYy1pb5IAaG1a2e2Kv5Lms1Y4hpj+ciXJRofIxxlt5haeQ/2ANeE0Q=="; + }; + }; + "noop-logger-0.1.1" = { + name = "noop-logger"; + packageName = "noop-logger"; + version = "0.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz"; + sha1 = "94a2b1633c4f1317553007d8966fd0e841b6a4c2"; + }; + }; + "nopt-4.0.3" = { + name = "nopt"; + packageName = "nopt"; + version = "4.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz"; + sha512 = "CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg=="; + }; + }; + "normalize-url-4.5.0" = { + name = "normalize-url"; + packageName = "normalize-url"; + version = "4.5.0"; + src = fetchurl { + url = "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz"; + sha512 = "2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ=="; + }; + }; + "normalize-version-1.0.5" = { + name = "normalize-version"; + packageName = "normalize-version"; + version = "1.0.5"; + src = fetchurl { + url = "https://registry.npmjs.org/normalize-version/-/normalize-version-1.0.5.tgz"; + sha1 = "a6a2b9002dc6fa2e5f15ec2f0b2c0284fb499712"; + }; + }; + "npm-bundled-1.1.1" = { + name = "npm-bundled"; + packageName = "npm-bundled"; + version = "1.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz"; + sha512 = "gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA=="; + }; + }; + "npm-normalize-package-bin-1.0.1" = { + name = "npm-normalize-package-bin"; + packageName = "npm-normalize-package-bin"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz"; + sha512 = "EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA=="; + }; + }; + "npm-packlist-1.4.8" = { + name = "npm-packlist"; + packageName = "npm-packlist"; + version = "1.4.8"; + src = fetchurl { + url = "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz"; + sha512 = "5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A=="; + }; + }; + "npmlog-4.1.2" = { + name = "npmlog"; + packageName = "npmlog"; + version = "4.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz"; + sha512 = "2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg=="; + }; + }; + "number-is-nan-1.0.1" = { + name = "number-is-nan"; + packageName = "number-is-nan"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz"; + sha1 = "097b602b53422a522c1afb8790318336941a011d"; + }; + }; + "object-assign-4.1.1" = { + name = "object-assign"; + packageName = "object-assign"; + version = "4.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz"; + sha1 = "2109adc7965887cfc05cbbd442cac8bfbb360863"; + }; + }; + "object-hash-1.3.1" = { + name = "object-hash"; + packageName = "object-hash"; + version = "1.3.1"; + src = fetchurl { + url = "https://registry.npmjs.org/object-hash/-/object-hash-1.3.1.tgz"; + sha512 = "OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA=="; + }; + }; + "on-finished-2.3.0" = { + name = "on-finished"; + packageName = "on-finished"; + version = "2.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz"; + sha1 = "20f1336481b083cd75337992a16971aa2d906947"; + }; + }; + "on-headers-1.0.2" = { + name = "on-headers"; + packageName = "on-headers"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz"; + sha512 = "pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA=="; + }; + }; + "once-1.4.0" = { + name = "once"; + packageName = "once"; + version = "1.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/once/-/once-1.4.0.tgz"; + sha1 = "583b1aa775961d4b113ac17d9c50baef9dd76bd1"; + }; + }; + "one-time-1.0.0" = { + name = "one-time"; + packageName = "one-time"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz"; + sha512 = "5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g=="; + }; + }; + "os-homedir-1.0.2" = { + name = "os-homedir"; + packageName = "os-homedir"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz"; + sha1 = "ffbc4988336e0e833de0c168c7ef152121aa7fb3"; + }; + }; + "os-tmpdir-1.0.2" = { + name = "os-tmpdir"; + packageName = "os-tmpdir"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz"; + sha1 = "bbe67406c79aa85c5cfec766fe5734555dfa1274"; + }; + }; + "osenv-0.1.5" = { + name = "osenv"; + packageName = "osenv"; + version = "0.1.5"; + src = fetchurl { + url = "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz"; + sha512 = "0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g=="; + }; + }; + "p-cancelable-2.0.0" = { + name = "p-cancelable"; + packageName = "p-cancelable"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.0.0.tgz"; + sha512 = "wvPXDmbMmu2ksjkB4Z3nZWTSkJEb9lqVdMaCKpZUGJG9TMiNp9XcbG3fn9fPKjem04fJMJnXoyFPk2FmgiaiNg=="; + }; + }; + "packet-reader-1.0.0" = { + name = "packet-reader"; + packageName = "packet-reader"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz"; + sha512 = "HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ=="; + }; + }; + "parse-srcset-1.0.2" = { + name = "parse-srcset"; + packageName = "parse-srcset"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/parse-srcset/-/parse-srcset-1.0.2.tgz"; + sha1 = "f2bd221f6cc970a938d88556abc589caaaa2bde1"; + }; + }; + "parseurl-1.3.3" = { + name = "parseurl"; + packageName = "parseurl"; + version = "1.3.3"; + src = fetchurl { + url = "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz"; + sha512 = "CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="; + }; + }; + "path-0.12.7" = { + name = "path"; + packageName = "path"; + version = "0.12.7"; + src = fetchurl { + url = "https://registry.npmjs.org/path/-/path-0.12.7.tgz"; + sha1 = "d4dc2a506c4ce2197eb481ebfcd5b36c0140b10f"; + }; + }; + "path-is-absolute-1.0.1" = { + name = "path-is-absolute"; + packageName = "path-is-absolute"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"; + sha1 = "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"; + }; + }; + "path-parse-1.0.6" = { + name = "path-parse"; + packageName = "path-parse"; + version = "1.0.6"; + src = fetchurl { + url = "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz"; + sha512 = "GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw=="; + }; + }; + "path-to-regexp-0.1.7" = { + name = "path-to-regexp"; + packageName = "path-to-regexp"; + version = "0.1.7"; + src = fetchurl { + url = "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz"; + sha1 = "df604178005f522f15eb4490e7247a1bfaa67f8c"; + }; + }; + "pg-8.5.1" = { + name = "pg"; + packageName = "pg"; + version = "8.5.1"; + src = fetchurl { + url = "https://registry.npmjs.org/pg/-/pg-8.5.1.tgz"; + sha512 = "9wm3yX9lCfjvA98ybCyw2pADUivyNWT/yIP4ZcDVpMN0og70BUWYEGXPCTAQdGTAqnytfRADb7NERrY1qxhIqw=="; + }; + }; + "pg-connection-string-2.4.0" = { + name = "pg-connection-string"; + packageName = "pg-connection-string"; + version = "2.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.4.0.tgz"; + sha512 = "3iBXuv7XKvxeMrIgym7njT+HlZkwZqqGX4Bu9cci8xHZNT+Um1gWKqCsAzcC0d95rcKMU5WBg6YRUcHyV0HZKQ=="; + }; + }; + "pg-int8-1.0.1" = { + name = "pg-int8"; + packageName = "pg-int8"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz"; + sha512 = "WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw=="; + }; + }; + "pg-minify-1.6.2" = { + name = "pg-minify"; + packageName = "pg-minify"; + version = "1.6.2"; + src = fetchurl { + url = "https://registry.npmjs.org/pg-minify/-/pg-minify-1.6.2.tgz"; + sha512 = "1KdmFGGTP6jplJoI8MfvRlfvMiyBivMRP7/ffh4a11RUFJ7kC2J0ZHlipoKiH/1hz+DVgceon9U2qbaHpPeyPg=="; + }; + }; + "pg-pool-3.2.2" = { + name = "pg-pool"; + packageName = "pg-pool"; + version = "3.2.2"; + src = fetchurl { + url = "https://registry.npmjs.org/pg-pool/-/pg-pool-3.2.2.tgz"; + sha512 = "ORJoFxAlmmros8igi608iVEbQNNZlp89diFVx6yV5v+ehmpMY9sK6QgpmgoXbmkNaBAx8cOOZh9g80kJv1ooyA=="; + }; + }; + "pg-promise-10.9.1" = { + name = "pg-promise"; + packageName = "pg-promise"; + version = "10.9.1"; + src = fetchurl { + url = "https://registry.npmjs.org/pg-promise/-/pg-promise-10.9.1.tgz"; + sha512 = "Om5sYmsm2NWXP+D0Soappb4fuidER9qNLcnVo9nBPFqwPfpnBZZPzzLaVvwBXs//+kJ9L4bBTXm2iWNAp39e2A=="; + }; + }; + "pg-protocol-1.4.0" = { + name = "pg-protocol"; + packageName = "pg-protocol"; + version = "1.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.4.0.tgz"; + sha512 = "El+aXWcwG/8wuFICMQjM5ZSAm6OWiJicFdNYo+VY3QP+8vI4SvLIWVe51PppTzMhikUJR+PsyIFKqfdXPz/yxA=="; + }; + }; + "pg-types-2.2.0" = { + name = "pg-types"; + packageName = "pg-types"; + version = "2.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz"; + sha512 = "qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA=="; + }; + }; + "pgpass-1.0.4" = { + name = "pgpass"; + packageName = "pgpass"; + version = "1.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/pgpass/-/pgpass-1.0.4.tgz"; + sha512 = "YmuA56alyBq7M59vxVBfPJrGSozru8QAdoNlWuW3cz8l+UX3cWge0vTvjKhsSHSJpo3Bom8/Mm6hf0TR5GY0+w=="; + }; + }; + "pify-3.0.0" = { + name = "pify"; + packageName = "pify"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz"; + sha1 = "e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176"; + }; + }; + "postcss-7.0.35" = { + name = "postcss"; + packageName = "postcss"; + version = "7.0.35"; + src = fetchurl { + url = "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz"; + sha512 = "3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg=="; + }; + }; + "postgres-array-2.0.0" = { + name = "postgres-array"; + packageName = "postgres-array"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz"; + sha512 = "VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA=="; + }; + }; + "postgres-bytea-1.0.0" = { + name = "postgres-bytea"; + packageName = "postgres-bytea"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz"; + sha1 = "027b533c0aa890e26d172d47cf9ccecc521acd35"; + }; + }; + "postgres-date-1.0.7" = { + name = "postgres-date"; + packageName = "postgres-date"; + version = "1.0.7"; + src = fetchurl { + url = "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz"; + sha512 = "suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q=="; + }; + }; + "postgres-interval-1.2.0" = { + name = "postgres-interval"; + packageName = "postgres-interval"; + version = "1.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz"; + sha512 = "9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ=="; + }; + }; + "prebuild-install-5.3.6" = { + name = "prebuild-install"; + packageName = "prebuild-install"; + version = "5.3.6"; + src = fetchurl { + url = "https://registry.npmjs.org/prebuild-install/-/prebuild-install-5.3.6.tgz"; + sha512 = "s8Aai8++QQGi4sSbs/M1Qku62PFK49Jm1CbgXklGz4nmHveDq0wzJkg7Na5QbnO1uNH8K7iqx2EQ/mV0MZEmOg=="; + }; + }; + "prism-media-1.2.3" = { + name = "prism-media"; + packageName = "prism-media"; + version = "1.2.3"; + src = fetchurl { + url = "https://registry.npmjs.org/prism-media/-/prism-media-1.2.3.tgz"; + sha512 = "fSrR66n0l6roW9Rx4rSLMyTPTjRTiXy5RVqDOurACQ6si1rKHHKDU5gwBJoCsIV0R3o9gi+K50akl/qyw1C74A=="; + }; + }; + "process-0.11.10" = { + name = "process"; + packageName = "process"; + version = "0.11.10"; + src = fetchurl { + url = "https://registry.npmjs.org/process/-/process-0.11.10.tgz"; + sha1 = "7332300e840161bda3e69a1d1d91a7d4bc16f182"; + }; + }; + "process-nextick-args-2.0.1" = { + name = "process-nextick-args"; + packageName = "process-nextick-args"; + version = "2.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz"; + sha512 = "3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="; + }; + }; + "prom-client-13.0.0" = { + name = "prom-client"; + packageName = "prom-client"; + version = "13.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/prom-client/-/prom-client-13.0.0.tgz"; + sha512 = "M7ZNjIO6x+2R/vjSD13yjJPjpoZA8eEwH2Bp2Re0/PvzozD7azikv+SaBtZes4Q1ca/xHjZ4RSCuTag3YZLg1A=="; + }; + }; + "proxy-addr-2.0.6" = { + name = "proxy-addr"; + packageName = "proxy-addr"; + version = "2.0.6"; + src = fetchurl { + url = "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz"; + sha512 = "dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw=="; + }; + }; + "pump-3.0.0" = { + name = "pump"; + packageName = "pump"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz"; + sha512 = "LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww=="; + }; + }; + "qs-6.7.0" = { + name = "qs"; + packageName = "qs"; + version = "6.7.0"; + src = fetchurl { + url = "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz"; + sha512 = "VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ=="; + }; + }; + "quick-lru-5.1.1" = { + name = "quick-lru"; + packageName = "quick-lru"; + version = "5.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz"; + sha512 = "WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA=="; + }; + }; + "range-parser-1.2.1" = { + name = "range-parser"; + packageName = "range-parser"; + version = "1.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz"; + sha512 = "Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="; + }; + }; + "raw-body-2.4.0" = { + name = "raw-body"; + packageName = "raw-body"; + version = "2.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz"; + sha512 = "4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q=="; + }; + }; + "rc-1.2.8" = { + name = "rc"; + packageName = "rc"; + version = "1.2.8"; + src = fetchurl { + url = "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz"; + sha512 = "y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw=="; + }; + }; + "readable-stream-2.3.7" = { + name = "readable-stream"; + packageName = "readable-stream"; + version = "2.3.7"; + src = fetchurl { + url = "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz"; + sha512 = "Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw=="; + }; + }; + "readable-stream-3.6.0" = { + name = "readable-stream"; + packageName = "readable-stream"; + version = "3.6.0"; + src = fetchurl { + url = "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz"; + sha512 = "BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA=="; + }; + }; + "reduce-flatten-1.0.1" = { + name = "reduce-flatten"; + packageName = "reduce-flatten"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz"; + sha1 = "258c78efd153ddf93cb561237f61184f3696e327"; + }; + }; + "resolve-1.11.1" = { + name = "resolve"; + packageName = "resolve"; + version = "1.11.1"; + src = fetchurl { + url = "https://registry.npmjs.org/resolve/-/resolve-1.11.1.tgz"; + sha512 = "vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw=="; + }; + }; + "resolve-alpn-1.0.0" = { + name = "resolve-alpn"; + packageName = "resolve-alpn"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.0.0.tgz"; + sha512 = "rTuiIEqFmGxne4IovivKSDzld2lWW9QCjqv80SYjPgf+gS35eaCAjaP54CCwGAwBtnCsvNLYtqxe1Nw+i6JEmA=="; + }; + }; + "responselike-2.0.0" = { + name = "responselike"; + packageName = "responselike"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz"; + sha512 = "xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw=="; + }; + }; + "rimraf-2.7.1" = { + name = "rimraf"; + packageName = "rimraf"; + version = "2.7.1"; + src = fetchurl { + url = "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz"; + sha512 = "uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w=="; + }; + }; + "safe-buffer-5.1.2" = { + name = "safe-buffer"; + packageName = "safe-buffer"; + version = "5.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz"; + sha512 = "Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="; + }; + }; + "safer-buffer-2.1.2" = { + name = "safer-buffer"; + packageName = "safer-buffer"; + version = "2.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz"; + sha512 = "YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="; + }; + }; + "sanitize-html-1.27.5" = { + name = "sanitize-html"; + packageName = "sanitize-html"; + version = "1.27.5"; + src = fetchurl { + url = "https://registry.npmjs.org/sanitize-html/-/sanitize-html-1.27.5.tgz"; + sha512 = "M4M5iXDAUEcZKLXkmk90zSYWEtk5NH3JmojQxKxV371fnMh+x9t1rqdmXaGoyEHw3z/X/8vnFhKjGL5xFGOJ3A=="; + }; + }; + "sax-1.2.4" = { + name = "sax"; + packageName = "sax"; + version = "1.2.4"; + src = fetchurl { + url = "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz"; + sha512 = "NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="; + }; + }; + "semver-5.7.0" = { + name = "semver"; + packageName = "semver"; + version = "5.7.0"; + src = fetchurl { + url = "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz"; + sha512 = "Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA=="; + }; + }; + "semver-6.3.0" = { + name = "semver"; + packageName = "semver"; + version = "6.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz"; + sha512 = "b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="; + }; + }; + "semver-closest-0.1.2" = { + name = "semver-closest"; + packageName = "semver-closest"; + version = "0.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/semver-closest/-/semver-closest-0.1.2.tgz"; + sha512 = "Q6qk0bPNlK5zG62mWFC8L0Qc6OJX76XRWxiPgZyrh98IZTL3HPErgUlPfCyrAPsHVpU+YP4lf5Mz+LzpId91Og=="; + }; + }; + "send-0.17.1" = { + name = "send"; + packageName = "send"; + version = "0.17.1"; + src = fetchurl { + url = "https://registry.npmjs.org/send/-/send-0.17.1.tgz"; + sha512 = "BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg=="; + }; + }; + "serve-static-1.14.1" = { + name = "serve-static"; + packageName = "serve-static"; + version = "1.14.1"; + src = fetchurl { + url = "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz"; + sha512 = "JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg=="; + }; + }; + "set-blocking-2.0.0" = { + name = "set-blocking"; + packageName = "set-blocking"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz"; + sha1 = "045f9782d011ae9a6803ddd382b24392b3d890f7"; + }; + }; + "setimmediate-1.0.5" = { + name = "setimmediate"; + packageName = "setimmediate"; + version = "1.0.5"; + src = fetchurl { + url = "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz"; + sha1 = "290cbb232e306942d7d7ea9b83732ab7856f8285"; + }; + }; + "setprototypeof-1.1.1" = { + name = "setprototypeof"; + packageName = "setprototypeof"; + version = "1.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz"; + sha512 = "JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="; + }; + }; + "signal-exit-3.0.3" = { + name = "signal-exit"; + packageName = "signal-exit"; + version = "3.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz"; + sha512 = "VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA=="; + }; + }; + "simple-concat-1.0.1" = { + name = "simple-concat"; + packageName = "simple-concat"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz"; + sha512 = "cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q=="; + }; + }; + "simple-get-3.1.0" = { + name = "simple-get"; + packageName = "simple-get"; + version = "3.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/simple-get/-/simple-get-3.1.0.tgz"; + sha512 = "bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA=="; + }; + }; + "simple-markdown-0.7.2" = { + name = "simple-markdown"; + packageName = "simple-markdown"; + version = "0.7.2"; + src = fetchurl { + url = "https://registry.npmjs.org/simple-markdown/-/simple-markdown-0.7.2.tgz"; + sha512 = "XfCvqqzMyzRj4L7eIxJgGaQ2Gaxr20GhTFMB+1yuY8q3xffjzmOg4Q5tC0kcaJPV42NNUHCQDaRK6jzi3/RhrA=="; + }; + }; + "simple-swizzle-0.2.2" = { + name = "simple-swizzle"; + packageName = "simple-swizzle"; + version = "0.2.2"; + src = fetchurl { + url = "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz"; + sha1 = "a4da6b635ffcccca33f70d17cb92592de95e557a"; + }; + }; + "source-map-0.6.1" = { + name = "source-map"; + packageName = "source-map"; + version = "0.6.1"; + src = fetchurl { + url = "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz"; + sha512 = "UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="; + }; + }; + "spex-3.2.0" = { + name = "spex"; + packageName = "spex"; + version = "3.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/spex/-/spex-3.2.0.tgz"; + sha512 = "9srjJM7NaymrpwMHvSmpDeIK5GoRMX/Tq0E8aOlDPS54dDnDUIp30DrP9SphMPEETDLzEM9+4qo+KipmbtPecg=="; + }; + }; + "split2-3.2.2" = { + name = "split2"; + packageName = "split2"; + version = "3.2.2"; + src = fetchurl { + url = "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz"; + sha512 = "9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg=="; + }; + }; + "sprintf-js-1.0.3" = { + name = "sprintf-js"; + packageName = "sprintf-js"; + version = "1.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz"; + sha1 = "04e6926f662895354f3dd015203633b857297e2c"; + }; + }; + "stack-trace-0.0.10" = { + name = "stack-trace"; + packageName = "stack-trace"; + version = "0.0.10"; + src = fetchurl { + url = "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz"; + sha1 = "547c70b347e8d32b4e108ea1a2a159e5fdde19c0"; + }; + }; + "statuses-1.5.0" = { + name = "statuses"; + packageName = "statuses"; + version = "1.5.0"; + src = fetchurl { + url = "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz"; + sha1 = "161c7dac177659fd9811f43771fa99381478628c"; + }; + }; + "steno-0.4.4" = { + name = "steno"; + packageName = "steno"; + version = "0.4.4"; + src = fetchurl { + url = "https://registry.npmjs.org/steno/-/steno-0.4.4.tgz"; + sha1 = "071105bdfc286e6615c0403c27e9d7b5dcb855cb"; + }; + }; + "string-width-1.0.2" = { + name = "string-width"; + packageName = "string-width"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz"; + sha1 = "118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"; + }; + }; + "string_decoder-1.1.1" = { + name = "string_decoder"; + packageName = "string_decoder"; + version = "1.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz"; + sha512 = "n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg=="; + }; + }; + "strip-ansi-3.0.1" = { + name = "strip-ansi"; + packageName = "strip-ansi"; + version = "3.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz"; + sha1 = "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"; + }; + }; + "strip-json-comments-2.0.1" = { + name = "strip-json-comments"; + packageName = "strip-json-comments"; + version = "2.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz"; + sha1 = "3c531942e908c2697c0ec344858c286c7ca0a60a"; + }; + }; + "supports-color-5.5.0" = { + name = "supports-color"; + packageName = "supports-color"; + version = "5.5.0"; + src = fetchurl { + url = "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz"; + sha512 = "QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow=="; + }; + }; + "supports-color-6.1.0" = { + name = "supports-color"; + packageName = "supports-color"; + version = "6.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz"; + sha512 = "qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ=="; + }; + }; + "supports-color-7.2.0" = { + name = "supports-color"; + packageName = "supports-color"; + version = "7.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz"; + sha512 = "qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw=="; + }; + }; + "table-layout-0.4.5" = { + name = "table-layout"; + packageName = "table-layout"; + version = "0.4.5"; + src = fetchurl { + url = "https://registry.npmjs.org/table-layout/-/table-layout-0.4.5.tgz"; + sha512 = "zTvf0mcggrGeTe/2jJ6ECkJHAQPIYEwDoqsiqBjI24mvRmQbInK5jq33fyypaCBxX08hMkfmdOqj6haT33EqWw=="; + }; + }; + "tar-4.4.10" = { + name = "tar"; + packageName = "tar"; + version = "4.4.10"; + src = fetchurl { + url = "https://registry.npmjs.org/tar/-/tar-4.4.10.tgz"; + sha512 = "g2SVs5QIxvo6OLp0GudTqEf05maawKUxXru104iaayWA09551tFCTI8f1Asb4lPfkBr91k07iL4c11XO3/b0tA=="; + }; + }; + "tar-fs-2.1.1" = { + name = "tar-fs"; + packageName = "tar-fs"; + version = "2.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz"; + sha512 = "V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng=="; + }; + }; + "tar-stream-2.2.0" = { + name = "tar-stream"; + packageName = "tar-stream"; + version = "2.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz"; + sha512 = "ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ=="; + }; + }; + "tdigest-0.1.1" = { + name = "tdigest"; + packageName = "tdigest"; + version = "0.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/tdigest/-/tdigest-0.1.1.tgz"; + sha1 = "2e3cb2c39ea449e55d1e6cd91117accca4588021"; + }; + }; + "text-hex-1.0.0" = { + name = "text-hex"; + packageName = "text-hex"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz"; + sha512 = "uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg=="; + }; + }; + "toidentifier-1.0.0" = { + name = "toidentifier"; + packageName = "toidentifier"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz"; + sha512 = "yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw=="; + }; + }; + "triple-beam-1.3.0" = { + name = "triple-beam"; + packageName = "triple-beam"; + version = "1.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz"; + sha512 = "XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw=="; + }; + }; + "tslib-1.10.0" = { + name = "tslib"; + packageName = "tslib"; + version = "1.10.0"; + src = fetchurl { + url = "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz"; + sha512 = "qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ=="; + }; + }; + "tslint-5.18.0" = { + name = "tslint"; + packageName = "tslint"; + version = "5.18.0"; + src = fetchurl { + url = "https://registry.npmjs.org/tslint/-/tslint-5.18.0.tgz"; + sha512 = "Q3kXkuDEijQ37nXZZLKErssQVnwCV/+23gFEMROi8IlbaBG6tXqLPQJ5Wjcyt/yHPKBC+hD5SzuGaMora+ZS6w=="; + }; + }; + "tsutils-2.29.0" = { + name = "tsutils"; + packageName = "tsutils"; + version = "2.29.0"; + src = fetchurl { + url = "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz"; + sha512 = "g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA=="; + }; + }; + "tunnel-agent-0.6.0" = { + name = "tunnel-agent"; + packageName = "tunnel-agent"; + version = "0.6.0"; + src = fetchurl { + url = "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz"; + sha1 = "27a5dea06b36b04a0a9966774b290868f0fc40fd"; + }; + }; + "tweetnacl-1.0.3" = { + name = "tweetnacl"; + packageName = "tweetnacl"; + version = "1.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz"; + sha512 = "6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw=="; + }; + }; + "type-fest-0.8.1" = { + name = "type-fest"; + packageName = "type-fest"; + version = "0.8.1"; + src = fetchurl { + url = "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz"; + sha512 = "4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA=="; + }; + }; + "type-is-1.6.18" = { + name = "type-is"; + packageName = "type-is"; + version = "1.6.18"; + src = fetchurl { + url = "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz"; + sha512 = "TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g=="; + }; + }; + "typescript-3.7.4" = { + name = "typescript"; + packageName = "typescript"; + version = "3.7.4"; + src = fetchurl { + url = "https://registry.npmjs.org/typescript/-/typescript-3.7.4.tgz"; + sha512 = "A25xv5XCtarLwXpcDNZzCGvW2D1S3/bACratYBx2sax8PefsFhlYmkQicKHvpYflFS8if4zne5zT5kpJ7pzuvw=="; + }; + }; + "typical-2.6.1" = { + name = "typical"; + packageName = "typical"; + version = "2.6.1"; + src = fetchurl { + url = "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz"; + sha1 = "5c080e5d661cbbe38259d2e70a3c7253e873881d"; + }; + }; + "typical-4.0.0" = { + name = "typical"; + packageName = "typical"; + version = "4.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz"; + sha512 = "VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw=="; + }; + }; + "uc.micro-1.0.6" = { + name = "uc.micro"; + packageName = "uc.micro"; + version = "1.0.6"; + src = fetchurl { + url = "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz"; + sha512 = "8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA=="; + }; + }; + "unescape-1.0.1" = { + name = "unescape"; + packageName = "unescape"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/unescape/-/unescape-1.0.1.tgz"; + sha512 = "O0+af1Gs50lyH1nUu3ZyYS1cRh01Q/kUKatTOkSs7jukXE6/NebucDVxyiDsA9AQ4JC1V1jUH9EO8JX2nMDgGQ=="; + }; + }; + "unescape-html-1.1.0" = { + name = "unescape-html"; + packageName = "unescape-html"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/unescape-html/-/unescape-html-1.1.0.tgz"; + sha512 = "O9/yBNqIkArjS597iHez5hAaAdn7b8/230SX8IncgXAX5tWI9XlEQYaz6Qbou0Sloa9n6lx9G5s6hg5qhJyzGg=="; + }; + }; + "unpipe-1.0.0" = { + name = "unpipe"; + packageName = "unpipe"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz"; + sha1 = "b2bf4ee8514aae6165b4817829d21b2ef49904ec"; + }; + }; + "useragent-generator-1.1.1-amkt-22079-finish.0" = { + name = "useragent-generator"; + packageName = "useragent-generator"; + version = "1.1.1-amkt-22079-finish.0"; + src = fetchurl { + url = "https://registry.npmjs.org/useragent-generator/-/useragent-generator-1.1.1-amkt-22079-finish.0.tgz"; + sha512 = "jUVHvx1t3bVjx2dI9fG4iKzjO5WA6qtjWaR/PitNvd6zQMJNlFYehNwRUaAAKkhBCkw1T0U9e2oG9Sg3wSmc6Q=="; + }; + }; + "util-0.10.4" = { + name = "util"; + packageName = "util"; + version = "0.10.4"; + src = fetchurl { + url = "https://registry.npmjs.org/util/-/util-0.10.4.tgz"; + sha512 = "0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A=="; + }; + }; + "util-deprecate-1.0.2" = { + name = "util-deprecate"; + packageName = "util-deprecate"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"; + sha1 = "450d4dc9fa70de732762fbd2d4a28981419a0ccf"; + }; + }; + "utils-merge-1.0.1" = { + name = "utils-merge"; + packageName = "utils-merge"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz"; + sha1 = "9f95710f50a267947b2ccc124741c1028427e713"; + }; + }; + "uuid-3.4.0" = { + name = "uuid"; + packageName = "uuid"; + version = "3.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz"; + sha512 = "HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A=="; + }; + }; + "vary-1.1.2" = { + name = "vary"; + packageName = "vary"; + version = "1.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz"; + sha1 = "2299f02c6ded30d4a5961b0b9f74524a18f634fc"; + }; + }; + "which-pm-runs-1.0.0" = { + name = "which-pm-runs"; + packageName = "which-pm-runs"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz"; + sha1 = "670b3afbc552e0b55df6b7780ca74615f23ad1cb"; + }; + }; + "wide-align-1.1.3" = { + name = "wide-align"; + packageName = "wide-align"; + version = "1.1.3"; + src = fetchurl { + url = "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz"; + sha512 = "QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA=="; + }; + }; + "winston-3.3.3" = { + name = "winston"; + packageName = "winston"; + version = "3.3.3"; + src = fetchurl { + url = "https://registry.npmjs.org/winston/-/winston-3.3.3.tgz"; + sha512 = "oEXTISQnC8VlSAKf1KYSSd7J6IWuRPQqDdo8eoRNaYKLvwSb5+79Z3Yi1lrl6KDpU6/VWaxpakDAtb1oQ4n9aw=="; + }; + }; + "winston-compat-0.1.5" = { + name = "winston-compat"; + packageName = "winston-compat"; + version = "0.1.5"; + src = fetchurl { + url = "https://registry.npmjs.org/winston-compat/-/winston-compat-0.1.5.tgz"; + sha512 = "EPvPcHT604AV3Ji6d3+vX8ENKIml9VSxMRnPQ+cuK/FX6f3hvPP2hxyoeeCOCFvDrJEujalfcKWlWPvAnFyS9g=="; + }; + }; + "winston-daily-rotate-file-3.10.0" = { + name = "winston-daily-rotate-file"; + packageName = "winston-daily-rotate-file"; + version = "3.10.0"; + src = fetchurl { + url = "https://registry.npmjs.org/winston-daily-rotate-file/-/winston-daily-rotate-file-3.10.0.tgz"; + sha512 = "KO8CfbI2CvdR3PaFApEH02GPXiwJ+vbkF1mCkTlvRIoXFI8EFlf1ACcuaahXTEiDEKCii6cNe95gsL4ZkbnphA=="; + }; + }; + "winston-transport-4.4.0" = { + name = "winston-transport"; + packageName = "winston-transport"; + version = "4.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/winston-transport/-/winston-transport-4.4.0.tgz"; + sha512 = "Lc7/p3GtqtqPBYYtS6KCN3c77/2QCev51DvcJKbkFPQNoj1sinkGwLGFDxkXY9J6p9+EPnYs+D90uwbnaiURTw=="; + }; + }; + "wordwrapjs-3.0.0" = { + name = "wordwrapjs"; + packageName = "wordwrapjs"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz"; + sha512 = "mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw=="; + }; + }; + "wrappy-1.0.2" = { + name = "wrappy"; + packageName = "wrappy"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"; + sha1 = "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"; + }; + }; + "ws-7.4.1" = { + name = "ws"; + packageName = "ws"; + version = "7.4.1"; + src = fetchurl { + url = "https://registry.npmjs.org/ws/-/ws-7.4.1.tgz"; + sha512 = "pTsP8UAfhy3sk1lSk/O/s4tjD0CRwvMnzvwr4OKGX7ZvqZtUyx4KIJB5JWbkykPoc55tixMGgTNoh3k4FkNGFQ=="; + }; + }; + "xtend-4.0.2" = { + name = "xtend"; + packageName = "xtend"; + version = "4.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz"; + sha512 = "LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="; + }; + }; + "yallist-3.1.1" = { + name = "yallist"; + packageName = "yallist"; + version = "3.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz"; + sha512 = "a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="; + }; + }; + "yallist-4.0.0" = { + name = "yallist"; + packageName = "yallist"; + version = "4.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz"; + sha512 = "3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="; + }; + }; + }; + args = { + name = "mx-puppet-discord"; + packageName = "mx-puppet-discord"; + version = "0.0.0"; + src = ./.; + dependencies = [ + sources."@babel/code-frame-7.0.0" + sources."@babel/highlight-7.0.0" + sources."@dabh/diagnostics-2.0.2" + sources."@discordjs/collection-0.1.6" + sources."@discordjs/form-data-3.0.1" + sources."@sindresorhus/is-3.1.2" + (sources."@sorunome/matrix-bot-sdk-0.5.8" // { + dependencies = [ + sources."ansi-styles-4.3.0" + sources."chalk-4.1.0" + sources."color-convert-2.0.1" + sources."color-name-1.1.4" + sources."has-flag-4.0.0" + sources."mkdirp-1.0.4" + sources."supports-color-7.2.0" + ]; + }) + sources."@szmarczak/http-timer-4.0.5" + sources."@types/body-parser-1.19.0" + sources."@types/cacheable-request-6.0.1" + sources."@types/connect-3.4.34" + sources."@types/express-4.17.11" + sources."@types/express-serve-static-core-4.17.18" + sources."@types/http-cache-semantics-4.0.0" + sources."@types/keyv-3.1.1" + sources."@types/node-14.6.3" + sources."@types/prop-types-15.7.3" + sources."@types/qs-6.9.5" + sources."@types/range-parser-1.2.3" + sources."@types/react-17.0.0" + sources."@types/responselike-1.0.0" + (sources."@types/serve-static-1.13.9" // { + dependencies = [ + sources."@types/mime-1.3.2" + ]; + }) + sources."abbrev-1.1.1" + sources."abort-controller-3.0.0" + sources."accepts-1.3.7" + sources."ansi-regex-2.1.1" + sources."ansi-styles-3.2.1" + sources."aproba-1.2.0" + sources."are-we-there-yet-1.1.5" + sources."argparse-1.0.10" + sources."array-back-3.1.0" + sources."array-flatten-1.1.1" + sources."assert-options-0.7.0" + sources."async-3.2.0" + sources."asynckit-0.4.0" + sources."balanced-match-1.0.0" + sources."base64-js-1.5.1" + sources."basic-auth-2.0.1" + sources."better-discord.js-git+https://github.com/Sorunome/better-discord.js.git#5e58e1e7510cf2192f3503ca146dd61a56a75c72" + sources."better-sqlite3-6.0.1" + sources."bindings-1.5.0" + sources."bintrees-1.0.1" + (sources."bl-4.0.3" // { + dependencies = [ + sources."inherits-2.0.4" + sources."readable-stream-3.6.0" + ]; + }) + sources."blurhash-1.1.3" + sources."body-parser-1.19.0" + sources."brace-expansion-1.1.11" + sources."buffer-5.7.1" + sources."buffer-writer-2.0.0" + sources."builtin-modules-1.1.1" + sources."bytes-3.1.0" + sources."cacheable-lookup-5.0.3" + sources."cacheable-request-7.0.1" + sources."canvas-2.6.1" + sources."chalk-2.4.2" + sources."chownr-1.1.4" + sources."clone-response-1.0.2" + sources."code-point-at-1.1.0" + sources."color-3.0.0" + sources."color-convert-1.9.3" + sources."color-name-1.1.3" + sources."color-string-1.5.4" + sources."colors-1.4.0" + sources."colorspace-1.1.2" + sources."combined-stream-1.0.8" + sources."command-line-args-5.1.1" + (sources."command-line-usage-5.0.5" // { + dependencies = [ + sources."array-back-2.0.0" + sources."typical-2.6.1" + ]; + }) + sources."commander-2.20.0" + sources."concat-map-0.0.1" + sources."console-control-strings-1.1.0" + sources."content-disposition-0.5.3" + sources."content-type-1.0.4" + sources."cookie-0.4.0" + sources."cookie-signature-1.0.6" + sources."core-util-is-1.0.2" + sources."csstype-3.0.5" + sources."cycle-1.0.3" + sources."debug-2.6.9" + (sources."decompress-response-6.0.0" // { + dependencies = [ + sources."mimic-response-3.1.0" + ]; + }) + sources."deep-extend-0.6.0" + sources."defer-to-connect-2.0.0" + sources."delayed-stream-1.0.0" + sources."delegates-1.0.0" + sources."depd-1.1.2" + sources."destroy-1.0.4" + sources."detect-libc-1.0.3" + sources."diff-3.5.0" + sources."discord-markdown-git://github.com/Sorunome/discord-markdown.git#0f38420fdd41340d6eadd38cd5b71784ca954085" + (sources."dom-serializer-1.2.0" // { + dependencies = [ + sources."domhandler-4.0.0" + ]; + }) + sources."domelementtype-2.1.0" + sources."domhandler-3.3.0" + (sources."domutils-2.4.4" // { + dependencies = [ + sources."domhandler-4.0.0" + ]; + }) + sources."ee-first-1.1.1" + sources."enabled-2.0.0" + sources."encodeurl-1.0.2" + sources."end-of-stream-1.4.4" + sources."entities-2.1.0" + sources."escape-html-1.0.3" + sources."escape-string-regexp-1.0.5" + sources."esprima-4.0.1" + sources."esutils-2.0.2" + sources."etag-1.8.1" + sources."event-target-shim-5.0.1" + sources."events-3.0.0" + sources."expand-template-2.0.3" + sources."expire-set-1.0.0" + sources."express-4.17.1" + sources."extend-shallow-2.0.1" + sources."fast-safe-stringify-2.0.7" + sources."fecha-4.2.0" + sources."file-stream-rotator-0.4.1" + sources."file-type-12.4.2" + sources."file-uri-to-path-1.0.0" + sources."finalhandler-1.1.2" + sources."find-replace-3.0.0" + sources."fn.name-1.1.0" + sources."forwarded-0.1.2" + sources."fresh-0.5.2" + sources."fs-constants-1.0.0" + sources."fs-minipass-1.2.7" + sources."fs.realpath-1.0.0" + sources."gauge-2.7.4" + sources."get-stream-5.2.0" + sources."github-from-package-0.0.0" + sources."glob-7.1.4" + sources."glob-to-regexp-0.4.1" + sources."got-11.6.0" + sources."graceful-fs-4.2.4" + sources."has-flag-3.0.0" + sources."has-unicode-2.0.1" + sources."hash.js-1.1.7" + sources."hasha-5.2.2" + sources."he-1.2.0" + sources."highlight.js-10.4.1" + sources."htmlencode-0.0.4" + sources."htmlparser2-4.1.0" + sources."http-cache-semantics-4.1.0" + sources."http-errors-1.7.2" + sources."http2-wrapper-1.0.0-beta.5.2" + sources."iconv-lite-0.4.24" + sources."ieee754-1.2.1" + sources."ignore-walk-3.0.3" + sources."inflight-1.0.6" + sources."inherits-2.0.3" + sources."ini-1.3.8" + sources."integer-3.0.1" + sources."ipaddr.js-1.9.1" + sources."is-arrayish-0.3.2" + sources."is-extendable-0.1.1" + sources."is-fullwidth-code-point-1.0.0" + sources."is-promise-2.2.2" + sources."is-stream-2.0.0" + sources."isarray-1.0.0" + sources."js-tokens-4.0.0" + sources."js-yaml-3.13.1" + sources."json-buffer-3.0.1" + sources."keyv-4.0.1" + sources."kuler-2.0.0" + sources."linkify-it-2.2.0" + sources."lodash-4.17.20" + sources."lodash.camelcase-4.3.0" + sources."lodash.padend-4.6.1" + sources."lodash.toarray-4.4.0" + (sources."logform-2.2.0" // { + dependencies = [ + sources."ms-2.1.3" + ]; + }) + sources."lowdb-1.0.0" + sources."lowercase-keys-2.0.0" + sources."lru-cache-6.0.0" + (sources."markdown-it-9.1.0" // { + dependencies = [ + sources."entities-1.1.2" + ]; + }) + sources."matrix-discord-parser-0.1.7" + sources."mdurl-1.0.1" + sources."media-typer-0.3.0" + sources."merge-descriptors-1.0.1" + sources."methods-1.1.2" + sources."mime-2.5.0" + sources."mime-db-1.43.0" + sources."mime-types-2.1.26" + sources."mimic-response-1.0.1" + sources."minimalistic-assert-1.0.1" + sources."minimatch-3.0.4" + sources."minimist-1.2.5" + (sources."minipass-2.9.0" // { + dependencies = [ + sources."yallist-3.1.1" + ]; + }) + sources."minizlib-1.3.3" + sources."mkdirp-0.5.5" + sources."mkdirp-classic-0.5.3" + sources."moment-2.29.1" + (sources."morgan-1.10.0" // { + dependencies = [ + sources."depd-2.0.0" + ]; + }) + sources."ms-2.0.0" + (sources."mx-puppet-bridge-0.1.4" // { + dependencies = [ + sources."events-3.2.0" + ]; + }) + sources."nan-2.14.2" + sources."napi-build-utils-1.0.2" + (sources."needle-2.6.0" // { + dependencies = [ + sources."debug-3.2.7" + sources."ms-2.1.3" + ]; + }) + sources."negotiator-0.6.2" + sources."node-abi-2.19.3" + sources."node-emoji-1.10.0" + sources."node-fetch-2.6.1" + sources."node-html-parser-1.4.9" + sources."node-pre-gyp-0.11.0" + sources."noop-logger-0.1.1" + sources."nopt-4.0.3" + sources."normalize-url-4.5.0" + sources."normalize-version-1.0.5" + sources."npm-bundled-1.1.1" + sources."npm-normalize-package-bin-1.0.1" + sources."npm-packlist-1.4.8" + sources."npmlog-4.1.2" + sources."number-is-nan-1.0.1" + sources."object-assign-4.1.1" + sources."object-hash-1.3.1" + sources."on-finished-2.3.0" + sources."on-headers-1.0.2" + sources."once-1.4.0" + sources."one-time-1.0.0" + sources."os-homedir-1.0.2" + sources."os-tmpdir-1.0.2" + sources."osenv-0.1.5" + sources."p-cancelable-2.0.0" + sources."packet-reader-1.0.0" + sources."parse-srcset-1.0.2" + sources."parseurl-1.3.3" + sources."path-0.12.7" + sources."path-is-absolute-1.0.1" + sources."path-parse-1.0.6" + sources."path-to-regexp-0.1.7" + sources."pg-8.5.1" + sources."pg-connection-string-2.4.0" + sources."pg-int8-1.0.1" + sources."pg-minify-1.6.2" + sources."pg-pool-3.2.2" + sources."pg-promise-10.9.1" + sources."pg-protocol-1.4.0" + sources."pg-types-2.2.0" + sources."pgpass-1.0.4" + sources."pify-3.0.0" + (sources."postcss-7.0.35" // { + dependencies = [ + sources."supports-color-6.1.0" + ]; + }) + sources."postgres-array-2.0.0" + sources."postgres-bytea-1.0.0" + sources."postgres-date-1.0.7" + sources."postgres-interval-1.2.0" + sources."prebuild-install-5.3.6" + sources."prism-media-1.2.3" + sources."process-0.11.10" + sources."process-nextick-args-2.0.1" + sources."prom-client-13.0.0" + sources."proxy-addr-2.0.6" + sources."pump-3.0.0" + sources."qs-6.7.0" + sources."quick-lru-5.1.1" + sources."range-parser-1.2.1" + sources."raw-body-2.4.0" + sources."rc-1.2.8" + sources."readable-stream-2.3.7" + sources."reduce-flatten-1.0.1" + sources."resolve-1.11.1" + sources."resolve-alpn-1.0.0" + sources."responselike-2.0.0" + sources."rimraf-2.7.1" + sources."safe-buffer-5.1.2" + sources."safer-buffer-2.1.2" + sources."sanitize-html-1.27.5" + sources."sax-1.2.4" + sources."semver-5.7.0" + sources."semver-closest-0.1.2" + (sources."send-0.17.1" // { + dependencies = [ + sources."mime-1.6.0" + sources."ms-2.1.1" + ]; + }) + sources."serve-static-1.14.1" + sources."set-blocking-2.0.0" + sources."setimmediate-1.0.5" + sources."setprototypeof-1.1.1" + sources."signal-exit-3.0.3" + sources."simple-concat-1.0.1" + (sources."simple-get-3.1.0" // { + dependencies = [ + sources."decompress-response-4.2.1" + sources."mimic-response-2.1.0" + ]; + }) + sources."simple-markdown-0.7.2" + sources."simple-swizzle-0.2.2" + sources."source-map-0.6.1" + sources."spex-3.2.0" + (sources."split2-3.2.2" // { + dependencies = [ + sources."readable-stream-3.6.0" + ]; + }) + sources."sprintf-js-1.0.3" + sources."stack-trace-0.0.10" + sources."statuses-1.5.0" + sources."steno-0.4.4" + sources."string-width-1.0.2" + sources."string_decoder-1.1.1" + sources."strip-ansi-3.0.1" + sources."strip-json-comments-2.0.1" + sources."supports-color-5.5.0" + (sources."table-layout-0.4.5" // { + dependencies = [ + sources."array-back-2.0.0" + sources."typical-2.6.1" + ]; + }) + (sources."tar-4.4.10" // { + dependencies = [ + sources."yallist-3.1.1" + ]; + }) + sources."tar-fs-2.1.1" + (sources."tar-stream-2.2.0" // { + dependencies = [ + sources."readable-stream-3.6.0" + ]; + }) + sources."tdigest-0.1.1" + sources."text-hex-1.0.0" + sources."toidentifier-1.0.0" + sources."triple-beam-1.3.0" + sources."tslib-1.10.0" + sources."tslint-5.18.0" + sources."tsutils-2.29.0" + sources."tunnel-agent-0.6.0" + sources."tweetnacl-1.0.3" + sources."type-fest-0.8.1" + sources."type-is-1.6.18" + sources."typescript-3.7.4" + sources."typical-4.0.0" + sources."uc.micro-1.0.6" + sources."unescape-1.0.1" + sources."unescape-html-1.1.0" + sources."unpipe-1.0.0" + sources."useragent-generator-1.1.1-amkt-22079-finish.0" + sources."util-0.10.4" + sources."util-deprecate-1.0.2" + sources."utils-merge-1.0.1" + sources."uuid-3.4.0" + sources."vary-1.1.2" + sources."which-pm-runs-1.0.0" + sources."wide-align-1.1.3" + (sources."winston-3.3.3" // { + dependencies = [ + sources."readable-stream-3.6.0" + ]; + }) + (sources."winston-compat-0.1.5" // { + dependencies = [ + sources."fecha-2.3.3" + sources."logform-1.10.0" + sources."ms-2.1.3" + ]; + }) + (sources."winston-daily-rotate-file-3.10.0" // { + dependencies = [ + sources."semver-6.3.0" + ]; + }) + sources."winston-transport-4.4.0" + (sources."wordwrapjs-3.0.0" // { + dependencies = [ + sources."typical-2.6.1" + ]; + }) + sources."wrappy-1.0.2" + sources."ws-7.4.1" + sources."xtend-4.0.2" + sources."yallist-4.0.0" + ]; + buildInputs = globalBuildInputs; + meta = { + description = ""; + }; + production = true; + bypassCache = true; + reconstructLock = false; + }; +in +{ + args = args; + sources = sources; + tarball = nodeEnv.buildNodeSourceDist args; + package = nodeEnv.buildNodePackage args; + shell = nodeEnv.buildNodeShell args; + nodeDependencies = nodeEnv.buildNodeDependencies (lib.overrideExisting args { + src = stdenv.mkDerivation { + name = args.name + "-package-json"; + src = nix-gitignore.gitignoreSourcePure [ + "*" + "!package.json" + "!package-lock.json" + ] args.src; + dontBuild = true; + installPhase = "mkdir -p $out; cp -r ./* $out;"; + }; + }); +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 2b0c876113b..eab8b5af4bc 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -6099,6 +6099,8 @@ in multitail = callPackage ../tools/misc/multitail { }; + mx-puppet-discord = callPackage ../servers/mx-puppet-discord { }; + mxt-app = callPackage ../misc/mxt-app { }; mxisd = callPackage ../servers/mxisd { }; From 3c1e706beecf0e82d5d7a94610cf1590956f7092 Mon Sep 17 00:00:00 2001 From: Sirio Balmelli Date: Thu, 1 Apr 2021 12:21:35 +0200 Subject: [PATCH 064/339] python3Packages.beancount_docverif: add build dependency MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Sirio Balmelli Co-authored-by: Sandro Jäckel --- .../python-modules/beancount_docverif/default.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pkgs/development/python-modules/beancount_docverif/default.nix b/pkgs/development/python-modules/beancount_docverif/default.nix index 0067716b626..44ebb5d94f0 100644 --- a/pkgs/development/python-modules/beancount_docverif/default.nix +++ b/pkgs/development/python-modules/beancount_docverif/default.nix @@ -1,4 +1,5 @@ { lib, buildPythonPackage, fetchPypi, isPy3k +, setuptools-scm , beancount , pytest, sh }: @@ -14,6 +15,10 @@ buildPythonPackage rec { sha256 = "1kjc0axrxpvm828lqq5m2ikq0ls8xksbmm7312zw867gdx56x5aj"; }; + nativeBuildInputs = [ + setuptools-scm + ]; + propagatedBuildInputs = [ beancount ]; From 19ba3d97d29285b2e6c49bfa3f3445c679e73ef2 Mon Sep 17 00:00:00 2001 From: Robert Hensing Date: Thu, 29 Apr 2021 08:22:39 +0200 Subject: [PATCH 065/339] cassandra: format --- .../modules/services/databases/cassandra.nix | 375 ++++++++++-------- pkgs/servers/nosql/cassandra/generic.nix | 31 +- 2 files changed, 237 insertions(+), 169 deletions(-) diff --git a/nixos/modules/services/databases/cassandra.nix b/nixos/modules/services/databases/cassandra.nix index d55a7db3915..4ce7a068aed 100644 --- a/nixos/modules/services/databases/cassandra.nix +++ b/nixos/modules/services/databases/cassandra.nix @@ -4,76 +4,93 @@ with lib; let cfg = config.services.cassandra; + defaultUser = "cassandra"; - cassandraConfig = flip recursiveUpdate cfg.extraConfig - ({ commitlog_sync = "batch"; - commitlog_sync_batch_window_in_ms = 2; - start_native_transport = cfg.allowClients; - cluster_name = cfg.clusterName; - partitioner = "org.apache.cassandra.dht.Murmur3Partitioner"; - endpoint_snitch = "SimpleSnitch"; - data_file_directories = [ "${cfg.homeDir}/data" ]; - commitlog_directory = "${cfg.homeDir}/commitlog"; - saved_caches_directory = "${cfg.homeDir}/saved_caches"; - } // (lib.optionalAttrs (cfg.seedAddresses != []) { - seed_provider = [{ - class_name = "org.apache.cassandra.locator.SimpleSeedProvider"; - parameters = [ { seeds = concatStringsSep "," cfg.seedAddresses; } ]; - }]; - }) // (lib.optionalAttrs (lib.versionAtLeast cfg.package.version "3") { - hints_directory = "${cfg.homeDir}/hints"; - }) - ); - cassandraConfigWithAddresses = cassandraConfig // - ( if cfg.listenAddress == null - then { listen_interface = cfg.listenInterface; } - else { listen_address = cfg.listenAddress; } - ) // ( - if cfg.rpcAddress == null - then { rpc_interface = cfg.rpcInterface; } - else { rpc_address = cfg.rpcAddress; } - ); - cassandraEtc = pkgs.stdenv.mkDerivation - { name = "cassandra-etc"; - cassandraYaml = builtins.toJSON cassandraConfigWithAddresses; - cassandraEnvPkg = "${cfg.package}/conf/cassandra-env.sh"; - cassandraLogbackConfig = pkgs.writeText "logback.xml" cfg.logbackConfig; - passAsFile = [ "extraEnvSh" ]; - inherit (cfg) extraEnvSh; - buildCommand = '' - mkdir -p "$out" - echo "$cassandraYaml" > "$out/cassandra.yaml" - ln -s "$cassandraLogbackConfig" "$out/logback.xml" + cassandraConfig = flip recursiveUpdate cfg.extraConfig ( + { + commitlog_sync = "batch"; + commitlog_sync_batch_window_in_ms = 2; + start_native_transport = cfg.allowClients; + cluster_name = cfg.clusterName; + partitioner = "org.apache.cassandra.dht.Murmur3Partitioner"; + endpoint_snitch = "SimpleSnitch"; + data_file_directories = [ "${cfg.homeDir}/data" ]; + commitlog_directory = "${cfg.homeDir}/commitlog"; + saved_caches_directory = "${cfg.homeDir}/saved_caches"; + } // lib.optionalAttrs (cfg.seedAddresses != [ ]) { + seed_provider = [ + { + class_name = "org.apache.cassandra.locator.SimpleSeedProvider"; + parameters = [{ seeds = concatStringsSep "," cfg.seedAddresses; }]; + } + ]; + } // lib.optionalAttrs (lib.versionAtLeast cfg.package.version "3") { + hints_directory = "${cfg.homeDir}/hints"; + } + ); - ( cat "$cassandraEnvPkg" - echo "# lines from services.cassandra.extraEnvSh: " - cat "$extraEnvShPath" - ) > "$out/cassandra-env.sh" + cassandraConfigWithAddresses = cassandraConfig // ( + if cfg.listenAddress == null + then { listen_interface = cfg.listenInterface; } + else { listen_address = cfg.listenAddress; } + ) // ( + if cfg.rpcAddress == null + then { rpc_interface = cfg.rpcInterface; } + else { rpc_address = cfg.rpcAddress; } + ); - # Delete default JMX Port, otherwise we can't set it using env variable - sed -i '/JMX_PORT="7199"/d' "$out/cassandra-env.sh" + cassandraEtc = pkgs.stdenv.mkDerivation { + name = "cassandra-etc"; - # Delete default password file - sed -i '/-Dcom.sun.management.jmxremote.password.file=\/etc\/cassandra\/jmxremote.password/d' "$out/cassandra-env.sh" - ''; - }; - defaultJmxRolesFile = builtins.foldl' - (left: right: left + right) "" - (map (role: "${role.username} ${role.password}") cfg.jmxRoles); - fullJvmOptions = cfg.jvmOpts - ++ lib.optionals (cfg.jmxRoles != []) [ + cassandraYaml = builtins.toJSON cassandraConfigWithAddresses; + cassandraEnvPkg = "${cfg.package}/conf/cassandra-env.sh"; + cassandraLogbackConfig = pkgs.writeText "logback.xml" cfg.logbackConfig; + + passAsFile = [ "extraEnvSh" ]; + inherit (cfg) extraEnvSh; + + buildCommand = '' + mkdir -p "$out" + + echo "$cassandraYaml" > "$out/cassandra.yaml" + ln -s "$cassandraLogbackConfig" "$out/logback.xml" + + ( cat "$cassandraEnvPkg" + echo "# lines from services.cassandra.extraEnvSh: " + cat "$extraEnvShPath" + ) > "$out/cassandra-env.sh" + + # Delete default JMX Port, otherwise we can't set it using env variable + sed -i '/JMX_PORT="7199"/d' "$out/cassandra-env.sh" + + # Delete default password file + sed -i '/-Dcom.sun.management.jmxremote.password.file=\/etc\/cassandra\/jmxremote.password/d' "$out/cassandra-env.sh" + ''; + }; + + defaultJmxRolesFile = + builtins.foldl' + (left: right: left + right) "" + (map (role: "${role.username} ${role.password}") cfg.jmxRoles); + + fullJvmOptions = + cfg.jvmOpts + ++ lib.optionals (cfg.jmxRoles != [ ]) [ "-Dcom.sun.management.jmxremote.authenticate=true" "-Dcom.sun.management.jmxremote.password.file=${cfg.jmxRolesFile}" - ] - ++ lib.optionals cfg.remoteJmx [ + ] ++ lib.optionals cfg.remoteJmx [ "-Djava.rmi.server.hostname=${cfg.rpcAddress}" ]; -in { + +in +{ options.services.cassandra = { + enable = mkEnableOption '' Apache Cassandra – Scalable and highly available database. ''; + clusterName = mkOption { type = types.str; default = "Test Cluster"; @@ -83,16 +100,19 @@ in { another. All nodes in a cluster must have the same value. ''; }; + user = mkOption { type = types.str; default = defaultUser; description = "Run Apache Cassandra under this user."; }; + group = mkOption { type = types.str; default = defaultUser; description = "Run Apache Cassandra under this group."; }; + homeDir = mkOption { type = types.path; default = "/var/lib/cassandra"; @@ -100,6 +120,7 @@ in { Home directory for Apache Cassandra. ''; }; + package = mkOption { type = types.package; default = pkgs.cassandra; @@ -109,13 +130,15 @@ in { The Apache Cassandra package to use. ''; }; + jvmOpts = mkOption { type = types.listOf types.str; - default = []; + default = [ ]; description = '' Populate the JVM_OPT environment variable. ''; }; + listenAddress = mkOption { type = types.nullOr types.str; default = "127.0.0.1"; @@ -136,6 +159,7 @@ in { Setting listen_address to 0.0.0.0 is always wrong. ''; }; + listenInterface = mkOption { type = types.nullOr types.str; default = null; @@ -146,6 +170,7 @@ in { supported. ''; }; + rpcAddress = mkOption { type = types.nullOr types.str; default = "127.0.0.1"; @@ -167,6 +192,7 @@ in { internet. Firewall it if needed. ''; }; + rpcInterface = mkOption { type = types.nullOr types.str; default = null; @@ -176,6 +202,7 @@ in { correspond to a single address, IP aliasing is not supported. ''; }; + logbackConfig = mkOption { type = types.lines; default = '' @@ -197,6 +224,7 @@ in { XML logback configuration for cassandra ''; }; + seedAddresses = mkOption { type = types.listOf types.str; default = [ "127.0.0.1" ]; @@ -207,6 +235,7 @@ in { Set to 127.0.0.1 for a single node cluster. ''; }; + allowClients = mkOption { type = types.bool; default = true; @@ -219,16 +248,19 @@ in { extraConfig. ''; }; + extraConfig = mkOption { type = types.attrs; - default = {}; + default = { }; example = - { commitlog_sync_batch_window_in_ms = 3; + { + commitlog_sync_batch_window_in_ms = 3; }; description = '' Extra options to be merged into cassandra.yaml as nix attribute set. ''; }; + extraEnvSh = mkOption { type = types.lines; default = ""; @@ -237,48 +269,53 @@ in { Extra shell lines to be appended onto cassandra-env.sh. ''; }; + fullRepairInterval = mkOption { type = types.nullOr types.str; default = "3w"; example = literalExample "null"; description = '' - Set the interval how often full repairs are run, i.e. - nodetool repair --full is executed. See - https://cassandra.apache.org/doc/latest/operating/repair.html - for more information. + Set the interval how often full repairs are run, i.e. + nodetool repair --full is executed. See + https://cassandra.apache.org/doc/latest/operating/repair.html + for more information. - Set to null to disable full repairs. - ''; + Set to null to disable full repairs. + ''; }; + fullRepairOptions = mkOption { type = types.listOf types.str; - default = []; + default = [ ]; example = [ "--partitioner-range" ]; description = '' - Options passed through to the full repair command. - ''; + Options passed through to the full repair command. + ''; }; + incrementalRepairInterval = mkOption { type = types.nullOr types.str; default = "3d"; example = literalExample "null"; description = '' - Set the interval how often incremental repairs are run, i.e. - nodetool repair is executed. See - https://cassandra.apache.org/doc/latest/operating/repair.html - for more information. + Set the interval how often incremental repairs are run, i.e. + nodetool repair is executed. See + https://cassandra.apache.org/doc/latest/operating/repair.html + for more information. - Set to null to disable incremental repairs. - ''; + Set to null to disable incremental repairs. + ''; }; + incrementalRepairOptions = mkOption { type = types.listOf types.str; - default = []; + default = [ ]; example = [ "--partitioner-range" ]; description = '' - Options passed through to the incremental repair command. - ''; + Options passed through to the incremental repair command. + ''; }; + maxHeapSize = mkOption { type = types.nullOr types.str; default = null; @@ -299,6 +336,7 @@ in { expensive GC will be (usually). ''; }; + heapNewSize = mkOption { type = types.nullOr types.str; default = null; @@ -322,6 +360,7 @@ in { 100 MB per physical CPU core. ''; }; + mallocArenaMax = mkOption { type = types.nullOr types.int; default = null; @@ -330,6 +369,7 @@ in { Set this to control the amount of arenas per-thread in glibc. ''; }; + remoteJmx = mkOption { type = types.bool; default = false; @@ -341,6 +381,7 @@ in { See: https://wiki.apache.org/cassandra/JmxSecurity ''; }; + jmxPort = mkOption { type = types.int; default = 7199; @@ -351,8 +392,9 @@ in { Firewall it if needed. ''; }; + jmxRoles = mkOption { - default = []; + default = [ ]; description = '' Roles that are allowed to access the JMX (e.g. nodetool) BEWARE: The passwords will be stored world readable in the nix-store. @@ -375,11 +417,13 @@ in { }; }); }; + jmxRolesFile = mkOption { type = types.nullOr types.path; - default = if (lib.versionAtLeast cfg.package.version "3.11") - then pkgs.writeText "jmx-roles-file" defaultJmxRolesFile - else null; + default = + if lib.versionAtLeast cfg.package.version "3.11" + then pkgs.writeText "jmx-roles-file" defaultJmxRolesFile + else null; example = "/var/lib/cassandra/jmx.password"; description = '' Specify your own jmx roles file. @@ -391,102 +435,113 @@ in { }; config = mkIf cfg.enable { - assertions = - [ { assertion = (cfg.listenAddress == null) != (cfg.listenInterface == null); - message = "You have to set either listenAddress or listenInterface"; - } - { assertion = (cfg.rpcAddress == null) != (cfg.rpcInterface == null); - message = "You have to set either rpcAddress or rpcInterface"; - } - { assertion = (cfg.maxHeapSize == null) == (cfg.heapNewSize == null); - message = "If you set either of maxHeapSize or heapNewSize you have to set both"; - } - { assertion = cfg.remoteJmx -> cfg.jmxRolesFile != null; - message = '' - If you want JMX available remotely you need to set a password using - jmxRoles or jmxRolesFile if - using Cassandra older than v3.11. - ''; - } - ]; + assertions = [ + { + assertion = (cfg.listenAddress == null) != (cfg.listenInterface == null); + message = "You have to set either listenAddress or listenInterface"; + } + { + assertion = (cfg.rpcAddress == null) != (cfg.rpcInterface == null); + message = "You have to set either rpcAddress or rpcInterface"; + } + { + assertion = (cfg.maxHeapSize == null) == (cfg.heapNewSize == null); + message = "If you set either of maxHeapSize or heapNewSize you have to set both"; + } + { + assertion = cfg.remoteJmx -> cfg.jmxRolesFile != null; + message = '' + If you want JMX available remotely you need to set a password using + jmxRoles or jmxRolesFile if + using Cassandra older than v3.11. + ''; + } + ]; users = mkIf (cfg.user == defaultUser) { - extraUsers.${defaultUser} = - { group = cfg.group; - home = cfg.homeDir; - createHome = true; - uid = config.ids.uids.cassandra; - description = "Cassandra service user"; - }; + extraUsers.${defaultUser} = { + group = cfg.group; + home = cfg.homeDir; + createHome = true; + uid = config.ids.uids.cassandra; + description = "Cassandra service user"; + }; extraGroups.${defaultUser}.gid = config.ids.gids.cassandra; }; - systemd.services.cassandra = - { description = "Apache Cassandra service"; - after = [ "network.target" ]; - environment = - { CASSANDRA_CONF = "${cassandraEtc}"; - JVM_OPTS = builtins.concatStringsSep " " fullJvmOptions; - MAX_HEAP_SIZE = toString cfg.maxHeapSize; - HEAP_NEWSIZE = toString cfg.heapNewSize; - MALLOC_ARENA_MAX = toString cfg.mallocArenaMax; - LOCAL_JMX = if cfg.remoteJmx then "no" else "yes"; - JMX_PORT = toString cfg.jmxPort; - }; - wantedBy = [ "multi-user.target" ]; - serviceConfig = - { User = cfg.user; - Group = cfg.group; - ExecStart = "${cfg.package}/bin/cassandra -f"; - SuccessExitStatus = 143; - }; + systemd.services.cassandra = { + description = "Apache Cassandra service"; + after = [ "network.target" ]; + environment = { + CASSANDRA_CONF = "${cassandraEtc}"; + JVM_OPTS = builtins.concatStringsSep " " fullJvmOptions; + MAX_HEAP_SIZE = toString cfg.maxHeapSize; + HEAP_NEWSIZE = toString cfg.heapNewSize; + MALLOC_ARENA_MAX = toString cfg.mallocArenaMax; + LOCAL_JMX = if cfg.remoteJmx then "no" else "yes"; + JMX_PORT = toString cfg.jmxPort; }; + wantedBy = [ "multi-user.target" ]; + serviceConfig = { + User = cfg.user; + Group = cfg.group; + ExecStart = "${cfg.package}/bin/cassandra -f"; + SuccessExitStatus = 143; + }; + }; - systemd.services.cassandra-full-repair = - { description = "Perform a full repair on this Cassandra node"; - after = [ "cassandra.service" ]; - requires = [ "cassandra.service" ]; - serviceConfig = - { User = cfg.user; - Group = cfg.group; - ExecStart = - lib.concatStringsSep " " - ([ "${cfg.package}/bin/nodetool" "repair" "--full" - ] ++ cfg.fullRepairOptions); - }; + systemd.services.cassandra-full-repair = { + description = "Perform a full repair on this Cassandra node"; + after = [ "cassandra.service" ]; + requires = [ "cassandra.service" ]; + serviceConfig = { + User = cfg.user; + Group = cfg.group; + ExecStart = + lib.concatStringsSep " " + ([ + "${cfg.package}/bin/nodetool" + "repair" + "--full" + ] ++ cfg.fullRepairOptions); }; + }; + systemd.timers.cassandra-full-repair = mkIf (cfg.fullRepairInterval != null) { description = "Schedule full repairs on Cassandra"; wantedBy = [ "timers.target" ]; - timerConfig = - { OnBootSec = cfg.fullRepairInterval; - OnUnitActiveSec = cfg.fullRepairInterval; - Persistent = true; - }; + timerConfig = { + OnBootSec = cfg.fullRepairInterval; + OnUnitActiveSec = cfg.fullRepairInterval; + Persistent = true; + }; }; - systemd.services.cassandra-incremental-repair = - { description = "Perform an incremental repair on this cassandra node."; - after = [ "cassandra.service" ]; - requires = [ "cassandra.service" ]; - serviceConfig = - { User = cfg.user; - Group = cfg.group; - ExecStart = - lib.concatStringsSep " " - ([ "${cfg.package}/bin/nodetool" "repair" - ] ++ cfg.incrementalRepairOptions); - }; + systemd.services.cassandra-incremental-repair = { + description = "Perform an incremental repair on this cassandra node."; + after = [ "cassandra.service" ]; + requires = [ "cassandra.service" ]; + serviceConfig = { + User = cfg.user; + Group = cfg.group; + ExecStart = + lib.concatStringsSep " " + ([ + "${cfg.package}/bin/nodetool" + "repair" + ] ++ cfg.incrementalRepairOptions); }; + }; + systemd.timers.cassandra-incremental-repair = mkIf (cfg.incrementalRepairInterval != null) { description = "Schedule incremental repairs on Cassandra"; wantedBy = [ "timers.target" ]; - timerConfig = - { OnBootSec = cfg.incrementalRepairInterval; - OnUnitActiveSec = cfg.incrementalRepairInterval; - Persistent = true; - }; + timerConfig = { + OnBootSec = cfg.incrementalRepairInterval; + OnUnitActiveSec = cfg.incrementalRepairInterval; + Persistent = true; + }; }; }; } diff --git a/pkgs/servers/nosql/cassandra/generic.nix b/pkgs/servers/nosql/cassandra/generic.nix index ca2001817a3..029eb160545 100644 --- a/pkgs/servers/nosql/cassandra/generic.nix +++ b/pkgs/servers/nosql/cassandra/generic.nix @@ -1,22 +1,34 @@ -{ lib, stdenv, fetchurl, python, makeWrapper, gawk, bash, getopt, procps -, which, jre, coreutils, nixosTests -# generation is the attribute version suffix such as 3_11 in pkgs.cassandra_3_11 +{ lib +, stdenv +, fetchurl +, python +, makeWrapper +, gawk +, bash +, getopt +, procps +, which +, jre +, coreutils +, nixosTests + # generation is the attribute version suffix such as 3_11 in pkgs.cassandra_3_11 , generation -, version, sha256 -, extraMeta ? {} +, version +, sha256 +, extraMeta ? { } , ... }: let libPath = lib.makeLibraryPath [ stdenv.cc.cc ]; - binPath = with lib; makeBinPath ([ + binPath = with lib; makeBinPath [ bash getopt gawk which jre procps - ]); + ]; in stdenv.mkDerivation rec { @@ -90,13 +102,14 @@ stdenv.mkDerivation rec { wrapProgram $out/bin/cqlsh --prefix PATH : ${python}/bin runHook postInstall - ''; + ''; passthru = { tests = let test = nixosTests."cassandra_${generation}"; - in { + in + { nixos = assert test.testPackage.version == version; test; From 726669ace8a2e13d4211da4a2adfa9ee5f9d9f38 Mon Sep 17 00:00:00 2001 From: Robert Hensing Date: Thu, 29 Apr 2021 08:39:35 +0200 Subject: [PATCH 066/339] cassandra: use Nix scope checking --- .../modules/services/databases/cassandra.nix | 30 +++++++++++++------ pkgs/servers/nosql/cassandra/generic.nix | 2 +- 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/nixos/modules/services/databases/cassandra.nix b/nixos/modules/services/databases/cassandra.nix index 4ce7a068aed..ebb50ddf50b 100644 --- a/nixos/modules/services/databases/cassandra.nix +++ b/nixos/modules/services/databases/cassandra.nix @@ -1,8 +1,20 @@ { config, lib, pkgs, ... }: -with lib; - let + inherit (lib) + concatStringsSep + flip + literalExample + optionalAttrs + optionals + recursiveUpdate + mkEnableOption + mkIf + mkOption + types + versionAtLeast + ; + cfg = config.services.cassandra; defaultUser = "cassandra"; @@ -18,14 +30,14 @@ let data_file_directories = [ "${cfg.homeDir}/data" ]; commitlog_directory = "${cfg.homeDir}/commitlog"; saved_caches_directory = "${cfg.homeDir}/saved_caches"; - } // lib.optionalAttrs (cfg.seedAddresses != [ ]) { + } // optionalAttrs (cfg.seedAddresses != [ ]) { seed_provider = [ { class_name = "org.apache.cassandra.locator.SimpleSeedProvider"; parameters = [{ seeds = concatStringsSep "," cfg.seedAddresses; }]; } ]; - } // lib.optionalAttrs (lib.versionAtLeast cfg.package.version "3") { + } // optionalAttrs (versionAtLeast cfg.package.version "3") { hints_directory = "${cfg.homeDir}/hints"; } ); @@ -76,10 +88,10 @@ let fullJvmOptions = cfg.jvmOpts - ++ lib.optionals (cfg.jmxRoles != [ ]) [ + ++ optionals (cfg.jmxRoles != [ ]) [ "-Dcom.sun.management.jmxremote.authenticate=true" "-Dcom.sun.management.jmxremote.password.file=${cfg.jmxRolesFile}" - ] ++ lib.optionals cfg.remoteJmx [ + ] ++ optionals cfg.remoteJmx [ "-Djava.rmi.server.hostname=${cfg.rpcAddress}" ]; @@ -421,7 +433,7 @@ in jmxRolesFile = mkOption { type = types.nullOr types.path; default = - if lib.versionAtLeast cfg.package.version "3.11" + if versionAtLeast cfg.package.version "3.11" then pkgs.writeText "jmx-roles-file" defaultJmxRolesFile else null; example = "/var/lib/cassandra/jmx.password"; @@ -497,7 +509,7 @@ in User = cfg.user; Group = cfg.group; ExecStart = - lib.concatStringsSep " " + concatStringsSep " " ([ "${cfg.package}/bin/nodetool" "repair" @@ -525,7 +537,7 @@ in User = cfg.user; Group = cfg.group; ExecStart = - lib.concatStringsSep " " + concatStringsSep " " ([ "${cfg.package}/bin/nodetool" "repair" diff --git a/pkgs/servers/nosql/cassandra/generic.nix b/pkgs/servers/nosql/cassandra/generic.nix index 029eb160545..cab21080a04 100644 --- a/pkgs/servers/nosql/cassandra/generic.nix +++ b/pkgs/servers/nosql/cassandra/generic.nix @@ -21,7 +21,7 @@ let libPath = lib.makeLibraryPath [ stdenv.cc.cc ]; - binPath = with lib; makeBinPath [ + binPath = lib.makeBinPath [ bash getopt gawk From 6ad6271d827908d50661d7a1bf82d3e0e4ef476d Mon Sep 17 00:00:00 2001 From: Robert Hensing Date: Thu, 29 Apr 2021 08:43:58 +0200 Subject: [PATCH 067/339] nixos/cassandra: remove unnecessary literalExample calls --- nixos/modules/services/databases/cassandra.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/nixos/modules/services/databases/cassandra.nix b/nixos/modules/services/databases/cassandra.nix index ebb50ddf50b..525b51afa21 100644 --- a/nixos/modules/services/databases/cassandra.nix +++ b/nixos/modules/services/databases/cassandra.nix @@ -154,7 +154,7 @@ in listenAddress = mkOption { type = types.nullOr types.str; default = "127.0.0.1"; - example = literalExample "null"; + example = null; description = '' Address or interface to bind to and tell other Cassandra nodes to connect to. You _must_ change this if you want multiple @@ -186,7 +186,7 @@ in rpcAddress = mkOption { type = types.nullOr types.str; default = "127.0.0.1"; - example = literalExample "null"; + example = null; description = '' The address or interface to bind the native transport server to. @@ -285,7 +285,7 @@ in fullRepairInterval = mkOption { type = types.nullOr types.str; default = "3w"; - example = literalExample "null"; + example = null; description = '' Set the interval how often full repairs are run, i.e. nodetool repair --full is executed. See @@ -308,7 +308,7 @@ in incrementalRepairInterval = mkOption { type = types.nullOr types.str; default = "3d"; - example = literalExample "null"; + example = null; description = '' Set the interval how often incremental repairs are run, i.e. nodetool repair is executed. See From 472d3b710d035a8a14727a87750747627dc6051a Mon Sep 17 00:00:00 2001 From: Robert Hensing Date: Thu, 29 Apr 2021 08:46:51 +0200 Subject: [PATCH 068/339] nixos/cassandra: add myself as maintainer --- nixos/modules/services/databases/cassandra.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/nixos/modules/services/databases/cassandra.nix b/nixos/modules/services/databases/cassandra.nix index 525b51afa21..9084913e0b2 100644 --- a/nixos/modules/services/databases/cassandra.nix +++ b/nixos/modules/services/databases/cassandra.nix @@ -556,4 +556,6 @@ in }; }; }; + + meta.maintainers = with lib.maintainers; [ roberth ]; } From 58117bc220bf1092332016ef6e91eac7875291ef Mon Sep 17 00:00:00 2001 From: Robert Hensing Date: Thu, 29 Apr 2021 08:51:40 +0200 Subject: [PATCH 069/339] nixos/cassandra: extraUsers -> users --- nixos/modules/services/databases/cassandra.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nixos/modules/services/databases/cassandra.nix b/nixos/modules/services/databases/cassandra.nix index 9084913e0b2..820be5085de 100644 --- a/nixos/modules/services/databases/cassandra.nix +++ b/nixos/modules/services/databases/cassandra.nix @@ -470,14 +470,14 @@ in } ]; users = mkIf (cfg.user == defaultUser) { - extraUsers.${defaultUser} = { + users.${defaultUser} = { group = cfg.group; home = cfg.homeDir; createHome = true; uid = config.ids.uids.cassandra; description = "Cassandra service user"; }; - extraGroups.${defaultUser}.gid = config.ids.gids.cassandra; + groups.${defaultUser}.gid = config.ids.gids.cassandra; }; systemd.services.cassandra = { From 9e9f6f02a30a183eb44b80def64cea37ccaefb73 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eduardo=20S=C3=A1nchez=20Mu=C3=B1oz?= Date: Mon, 26 Apr 2021 19:08:14 +0200 Subject: [PATCH 070/339] pythonPackages.poppler-qt5: 0.24.2 -> 21.1.0 Builds using sip 5 --- .../python-modules/poppler-qt5/default.nix | 54 +++++++++++++------ .../poppler-qt5/poppler-include-dir.patch | 12 ----- pkgs/top-level/python-packages.nix | 2 +- 3 files changed, 38 insertions(+), 30 deletions(-) delete mode 100644 pkgs/development/python-modules/poppler-qt5/poppler-include-dir.patch diff --git a/pkgs/development/python-modules/poppler-qt5/default.nix b/pkgs/development/python-modules/poppler-qt5/default.nix index 345f092a80f..7583ae1e7b6 100644 --- a/pkgs/development/python-modules/poppler-qt5/default.nix +++ b/pkgs/development/python-modules/poppler-qt5/default.nix @@ -1,38 +1,58 @@ -{ buildPythonPackage, fetchPypi, lib, sip, qtbase, pyqt5, poppler, pkg-config, fetchpatch -, substituteAll +{ stdenv +, lib +, buildPythonPackage +, isPy3k +, fetchPypi +, pythonPackages +, sip_5 +, qtbase +, qmake +, pyqt5 +, pyqt-builder +, poppler +, pkg-config +, fetchpatch }: buildPythonPackage rec { pname = "python-poppler-qt5"; - version = "0.24.2"; + version = "21.1.0"; + + disabled = !isPy3k; src = fetchPypi { inherit pname version; - sha256 = "0l69llw1fzwz8y90q0qp9q5pifbrqjjbwii7di54dwghw5fc6w1r"; + sha256 = "0b82gm4i75q5v19kfbq0h4y0b2vcwr2213zkhxh6l0h45kdndmxd"; }; patches = [ - (substituteAll { - src = ./poppler-include-dir.patch; - poppler_include_dir = "${poppler.dev}/include/poppler"; - }) + # Fix for https://github.com/frescobaldi/python-poppler-qt5/issues/43 (from PR #45) (fetchpatch { - url = "https://github.com/wbsoft/python-poppler-qt5/commit/faf4d1308f89560b0d849671226e3080dfc72e79.patch"; - sha256 = "18krhh6wzsnpxzlzv02nginb1vralla8ai24zqk10nc4mj6fkj86"; + url = "https://github.com/frescobaldi/python-poppler-qt5/commit/40e71ad88173d02648bceb2438bc0567e60dacd5.patch"; + sha256 = "0c93d0k7b1n2s2njl8g92x6vw3z96da1fczah9qx07x08iw8dzi5"; }) ]; - setupPyBuildFlags = [ - "--pyqt-sip-dir ${pyqt5}/share/sip/PyQt5" - "--qt-include-dir ${qtbase.dev}/include" - ]; + buildInputs = [ qtbase.dev poppler pyqt-builder ]; + nativeBuildInputs = [ pkg-config qmake sip_5 ]; + propagatedBuildInputs = [ pyqt5.dev ]; - buildInputs = [ qtbase.dev poppler ]; - nativeBuildInputs = [ pkg-config ]; - propagatedBuildInputs = [ sip pyqt5.dev ]; + format = "pyproject"; + dontConfigure = true; + + postPatch = '' + cat <> pyproject.toml + sip-include-dirs = ["${pyqt5}/share/sip/PyQt5"] + + [tool.sip.bindings.Poppler-Qt5] + include-dirs = ["${poppler.dev}/include/poppler"] + tags = ["${sip_5.platform_tag}"] + EOF + ''; # no tests, just bindings for `poppler_qt5` doCheck = false; + pythonImportsCheck = [ "popplerqt5" ]; dontWrapQtApps = true; diff --git a/pkgs/development/python-modules/poppler-qt5/poppler-include-dir.patch b/pkgs/development/python-modules/poppler-qt5/poppler-include-dir.patch deleted file mode 100644 index 7106c1d6352..00000000000 --- a/pkgs/development/python-modules/poppler-qt5/poppler-include-dir.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/setup.py b/setup.py -index 59a75b0..0a73268 100644 ---- a/setup.py -+++ b/setup.py -@@ -169,6 +169,7 @@ class build_ext(build_ext_base): - 'Please specify via --pyqt-sip-flags=') - - self.include_dirs += (self.qt_include_dir, -+ '@poppler_include_dir@', - os.path.join(self.qt_include_dir, 'QtCore'), - os.path.join(self.qt_include_dir, 'QtGui'), - os.path.join(self.qt_include_dir, 'QtXml')) diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 39c7940c610..360ccc86b31 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -5067,7 +5067,7 @@ in { poolsense = callPackage ../development/python-modules/poolsense { }; poppler-qt5 = callPackage ../development/python-modules/poppler-qt5 { - inherit (pkgs.qt5) qtbase; + inherit (pkgs.qt5) qtbase qmake; inherit (pkgs.libsForQt5) poppler; }; From 29f0c76bf517253d6116560a9aae6a3bec831521 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eduardo=20S=C3=A1nchez=20Mu=C3=B1oz?= Date: Tue, 27 Apr 2021 01:20:34 +0200 Subject: [PATCH 071/339] pythonPackages.poppler-qt5: fix license https://github.com/frescobaldi/python-poppler-qt5/blob/master/LICENSE --- pkgs/development/python-modules/poppler-qt5/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/python-modules/poppler-qt5/default.nix b/pkgs/development/python-modules/poppler-qt5/default.nix index 7583ae1e7b6..14be67fc7de 100644 --- a/pkgs/development/python-modules/poppler-qt5/default.nix +++ b/pkgs/development/python-modules/poppler-qt5/default.nix @@ -58,7 +58,7 @@ buildPythonPackage rec { meta = with lib; { homepage = "https://github.com/wbsoft/python-poppler-qt5"; - license = licenses.gpl2; + license = licenses.lgpl21Plus; maintainers = with maintainers; [ ]; }; } From 71df70e7c65dc98090e48e476fdfc4d5417e39ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eduardo=20S=C3=A1nchez=20Mu=C3=B1oz?= Date: Tue, 27 Apr 2021 11:51:19 +0200 Subject: [PATCH 072/339] pythonPackages.poppler-qt5: add eduardosm as maintainer --- pkgs/development/python-modules/poppler-qt5/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/python-modules/poppler-qt5/default.nix b/pkgs/development/python-modules/poppler-qt5/default.nix index 14be67fc7de..b15bd3cb8ad 100644 --- a/pkgs/development/python-modules/poppler-qt5/default.nix +++ b/pkgs/development/python-modules/poppler-qt5/default.nix @@ -59,6 +59,6 @@ buildPythonPackage rec { meta = with lib; { homepage = "https://github.com/wbsoft/python-poppler-qt5"; license = licenses.lgpl21Plus; - maintainers = with maintainers; [ ]; + maintainers = with maintainers; [ eduardosm ]; }; } From 24e6fbf4416d4e20cbc1e45bbbffca28f4d1d964 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eduardo=20S=C3=A1nchez=20Mu=C3=B1oz?= Date: Tue, 27 Apr 2021 13:03:34 +0200 Subject: [PATCH 073/339] pythonPackages.popplet-qt5: update project URL --- pkgs/development/python-modules/poppler-qt5/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/python-modules/poppler-qt5/default.nix b/pkgs/development/python-modules/poppler-qt5/default.nix index b15bd3cb8ad..94d86f7b713 100644 --- a/pkgs/development/python-modules/poppler-qt5/default.nix +++ b/pkgs/development/python-modules/poppler-qt5/default.nix @@ -57,7 +57,7 @@ buildPythonPackage rec { dontWrapQtApps = true; meta = with lib; { - homepage = "https://github.com/wbsoft/python-poppler-qt5"; + homepage = "https://github.com/frescobaldi/python-poppler-qt5"; license = licenses.lgpl21Plus; maintainers = with maintainers; [ eduardosm ]; }; From 86f12112bd85295893d91e3af7624c5d2dfbc274 Mon Sep 17 00:00:00 2001 From: Yurii Matsiuk Date: Thu, 29 Apr 2021 15:51:06 +0200 Subject: [PATCH 074/339] fluxcd: 0.12.0 -> 0.13.2 --- pkgs/applications/networking/cluster/fluxcd/default.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/applications/networking/cluster/fluxcd/default.nix b/pkgs/applications/networking/cluster/fluxcd/default.nix index a0593aab989..4a338ac9a42 100644 --- a/pkgs/applications/networking/cluster/fluxcd/default.nix +++ b/pkgs/applications/networking/cluster/fluxcd/default.nix @@ -1,11 +1,11 @@ { lib, buildGoModule, fetchFromGitHub, fetchzip, installShellFiles }: let - version = "0.12.0"; + version = "0.13.2"; manifests = fetchzip { url = "https://github.com/fluxcd/flux2/releases/download/v${version}/manifests.tar.gz"; - sha256 = "sha256-8NgKr5uRVFBD1pARaD+vH9wPA5gUNltwMe0i0icED1c="; + sha256 = "sha256-+2JvJFzH1CjU/WQ7MLtqd5Adfi/ktX9lPq4IyxPcUD8="; stripRoot = false; }; in @@ -19,10 +19,10 @@ buildGoModule rec { owner = "fluxcd"; repo = "flux2"; rev = "v${version}"; - sha256 = "sha256-idHMijca1lYQF4aW+RPyzRraLDNdVavMuj4TP6z90Oo="; + sha256 = "sha256-yWcoHUHEiRp4YxTDxi+inJkpb8dnTVTwSO3MgFyhvps="; }; - vendorSha256 = "sha256-VrDO8y6omRKf3mPRAnRMZsSMwQHxQxShUa9HZ3dfCgM="; + vendorSha256 = "sha256-hSnTM89s3R7UDn1gLlb1gu6rhTPqVKJpWKCz1SDyfmg="; nativeBuildInputs = [ installShellFiles ]; From cade063ddc6894c2547395c412ab8c52b0b3bbab Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Thu, 29 Apr 2021 14:44:15 +0000 Subject: [PATCH 075/339] leftwm: 0.2.6 -> 0.2.7 --- pkgs/applications/window-managers/leftwm/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/window-managers/leftwm/default.nix b/pkgs/applications/window-managers/leftwm/default.nix index bab0439bf8b..f4b72197f54 100644 --- a/pkgs/applications/window-managers/leftwm/default.nix +++ b/pkgs/applications/window-managers/leftwm/default.nix @@ -6,16 +6,16 @@ in rustPlatform.buildRustPackage rec { pname = "leftwm"; - version = "0.2.6"; + version = "0.2.7"; src = fetchFromGitHub { owner = "leftwm"; repo = "leftwm"; rev = version; - sha256 = "sha256-hirT0gScC2LFPvygywgPiSVDUE/Zd++62wc26HlufYU="; + sha256 = "sha256-nRPt+Tyfq62o+3KjsXkHQHUMMslHFGNBd3s2pTb7l4w="; }; - cargoSha256 = "sha256-j57LHPU3U3ipUGQDrZ8KCuELOVJ3BxhLXsJePOO6rTM="; + cargoSha256 = "sha256-lmzA7XM8B5QJI4Wo0cKeMR3+np6jT6mdGzTry4g87ng="; nativeBuildInputs = [ makeWrapper ]; buildInputs = [ libX11 libXinerama ]; From 1753a9178ea52a57f45712c3a14b7472a273aaf3 Mon Sep 17 00:00:00 2001 From: davidak Date: Sat, 17 Apr 2021 00:37:08 +0200 Subject: [PATCH 076/339] ocenaudio: 3.10.2 -> 3.10.6 --- pkgs/applications/audio/ocenaudio/default.nix | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/pkgs/applications/audio/ocenaudio/default.nix b/pkgs/applications/audio/ocenaudio/default.nix index d770396a6ad..68edf99e010 100644 --- a/pkgs/applications/audio/ocenaudio/default.nix +++ b/pkgs/applications/audio/ocenaudio/default.nix @@ -11,17 +11,17 @@ stdenv.mkDerivation rec { pname = "ocenaudio"; - version = "3.10.2"; + version = "3.10.6"; src = fetchurl { url = "https://www.ocenaudio.com/downloads/index.php/ocenaudio_debian9_64.deb?version=${version}"; - sha256 = "sha256-mmo6/zc/3R8ptXfY01RKUOLgmDhWTHiYBMlGqpdMTAo="; + sha256 = "0fgvm1xw2kgrqj3w6slpfxbb3pw9k8i0dz16q9d5d8gyyvr2mh8g"; }; - nativeBuildInputs = [ autoPatchelfHook qt5.qtbase + qt5.wrapQtAppsHook libjack2 libpulseaudio bzip2 @@ -33,7 +33,6 @@ stdenv.mkDerivation rec { dontUnpack = true; dontBuild = true; dontStrip = true; - dontWrapQtApps = true; installPhase = '' mkdir -p $out From ea6882eddafb63db58d60da4d167540f78869ad8 Mon Sep 17 00:00:00 2001 From: Jordi Masip Date: Sun, 24 May 2020 12:59:42 +0200 Subject: [PATCH 077/339] maintainers: add masipcat --- maintainers/maintainer-list.nix | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 91e8c9591fb..15d3011659c 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -6134,11 +6134,11 @@ fingerprint = "B573 5118 0375 A872 FBBF 7770 B629 036B E399 EEE9"; }]; }; - mausch = { - email = "mauricioscheffer@gmail.com"; - github = "mausch"; - githubId = 95194; - name = "Mauricio Scheffer"; + masipcat = { + email = "jordi@masip.cat"; + github = "masipcat"; + githubId = 775189; + name = "Jordi Masip"; }; matejc = { email = "cotman.matej@gmail.com"; @@ -6194,6 +6194,12 @@ githubId = 136037; name = "Matthew Maurer"; }; + mausch = { + email = "mauricioscheffer@gmail.com"; + github = "mausch"; + githubId = 95194; + name = "Mauricio Scheffer"; + }; maxdamantus = { email = "maxdamantus@gmail.com"; github = "Maxdamantus"; From c8232cbac1bd4c58a4371c8565de4bf90b3c4f76 Mon Sep 17 00:00:00 2001 From: Mario Rodas Date: Fri, 30 Apr 2021 04:20:00 +0000 Subject: [PATCH 078/339] grpc: 1.37.0 -> 1.37.1 https://github.com/grpc/grpc/releases/tag/v1.37.1 --- pkgs/development/libraries/grpc/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/grpc/default.nix b/pkgs/development/libraries/grpc/default.nix index 9dd5150f17d..cb2c0e79dd5 100644 --- a/pkgs/development/libraries/grpc/default.nix +++ b/pkgs/development/libraries/grpc/default.nix @@ -3,13 +3,13 @@ }: stdenv.mkDerivation rec { - version = "1.37.0"; # N.B: if you change this, change pythonPackages.grpcio-tools to a matching version too + version = "1.37.1"; # N.B: if you change this, change pythonPackages.grpcio-tools to a matching version too pname = "grpc"; src = fetchFromGitHub { owner = "grpc"; repo = "grpc"; rev = "v${version}"; - sha256 = "0q3hcnq351j0qm0gsbaxbsnz1gd9w3bk4cazkvq4l2lfmmiw7z56"; + sha256 = "0mjlz2cax5v37g7xnrbf5px88bm7xzl4a5pds112yk096d7wmxm5"; fetchSubmodules = true; }; patches = [ From 53193ef71690039548c2f48c5a92af1217b82561 Mon Sep 17 00:00:00 2001 From: Zhaofeng Li Date: Fri, 30 Apr 2021 00:54:24 +0000 Subject: [PATCH 079/339] phoc: init at 0.7.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Blaž Hrastnik Co-authored-by: Jan Tojnar Co-authored-by: Jordi Masip --- pkgs/applications/misc/phoc/default.nix | 84 +++++++++++++++++++++++++ pkgs/top-level/all-packages.nix | 4 ++ 2 files changed, 88 insertions(+) create mode 100644 pkgs/applications/misc/phoc/default.nix diff --git a/pkgs/applications/misc/phoc/default.nix b/pkgs/applications/misc/phoc/default.nix new file mode 100644 index 00000000000..6ef88fb07c6 --- /dev/null +++ b/pkgs/applications/misc/phoc/default.nix @@ -0,0 +1,84 @@ +{ lib +, stdenv +, fetchFromGitLab +, fetchpatch +, meson +, ninja +, pkg-config +, python3 +, wrapGAppsHook +, libinput +, gnome3 +, glib +, gtk3 +, wayland +, libdrm +, libxkbcommon +, wlroots +}: + +let + phocWlroots = wlroots.overrideAttrs (old: { + patches = (old.patches or []) ++ [ + # Temporary fix. Upstream report: https://source.puri.sm/Librem5/phosh/-/issues/422 + (fetchpatch { + name = "0001-Revert-layer-shell-error-on-0-dimension-without-anch.patch"; + url = "https://gitlab.alpinelinux.org/alpine/aports/-/raw/78fde4aaf1a74eb13a3f083cb6dfb29f578c3265/community/wlroots/0001-Revert-layer-shell-error-on-0-dimension-without-anch.patch"; + sha256 = "1zjn7mwdj21z0jsc2mz90cnrzk97yqkiq58qqgpjav4h4dgpfb38"; + }) + # To fix missing header `EGL/eglmesaext.h` dropped upstream + (fetchpatch { + name = "0002-stop-including-eglmesaext-h.patch"; + url = "https://github.com/swaywm/wlroots/commit/e18599b05e0f0cbeba11adbd489e801285470eab.patch"; + sha256 = "17ax4dyk0584yhs3lq8ija5bkainjf7psx9c9r50cr4jm9c0i37l"; + }) + ]; + }); +in stdenv.mkDerivation rec { + pname = "phoc"; + version = "0.7.0"; + + src = fetchFromGitLab { + domain = "source.puri.sm"; + owner = "Librem5"; + repo = pname; + rev = "v${version}"; + sha256 = "0afiyr2slg38ksrqn19zygsmjy9k5bpwv6n7zjas3s5djr6hch45"; + }; + + nativeBuildInputs = [ + meson + ninja + pkg-config + python3 + wrapGAppsHook + ]; + + buildInputs = [ + libdrm.dev + libxkbcommon + libinput + glib + gtk3 + gnome3.gnome-desktop + # For keybindings settings schemas + gnome3.mutter + wayland + phocWlroots + ]; + + mesonFlags = ["-Dembed-wlroots=disabled"]; + + postPatch = '' + chmod +x build-aux/post_install.py + patchShebangs build-aux/post_install.py + ''; + + meta = with lib; { + description = "Wayland compositor for mobile phones like the Librem 5"; + homepage = "https://source.puri.sm/Librem5/phoc"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ archseer masipcat zhaofengli ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 74147f29f0f..c62511e5b1b 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -7530,6 +7530,10 @@ in philter = callPackage ../tools/networking/philter { }; + phoc = callPackage ../applications/misc/phoc { + wlroots = wlroots_0_12; + }; + phodav = callPackage ../tools/networking/phodav { }; pim6sd = callPackage ../servers/pim6sd { }; From d10fbc5b062f4e39b36be6fd26d7849a7ac8ba27 Mon Sep 17 00:00:00 2001 From: Mario Rodas Date: Fri, 30 Apr 2021 04:20:00 +0000 Subject: [PATCH 080/339] postgresqlPackages.pgvector: 0.1.0 -> 0.1.2 --- pkgs/servers/sql/postgresql/ext/pgvector.nix | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pkgs/servers/sql/postgresql/ext/pgvector.nix b/pkgs/servers/sql/postgresql/ext/pgvector.nix index a5c0f558c46..a93c400069b 100644 --- a/pkgs/servers/sql/postgresql/ext/pgvector.nix +++ b/pkgs/servers/sql/postgresql/ext/pgvector.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "pgvector"; - version = "0.1.0"; + version = "0.1.2"; src = fetchFromGitHub { owner = "ankane"; repo = pname; rev = "v${version}"; - sha256 = "03i8rq9wp9j2zdba82q31lzbrqpnhrqc8867pxxy3z505fxsvfzb"; + sha256 = "1vq672ghhv0azpzgfb7azb36kbjyz9ypcly7r16lrryvjgp5lcjs"; }; buildInputs = [ postgresql ]; @@ -22,6 +22,7 @@ stdenv.mkDerivation rec { meta = with lib; { description = "Open-source vector similarity search for PostgreSQL"; homepage = "https://github.com/ankane/pgvector"; + changelog = "https://github.com/ankane/pgvector/raw/v${version}/CHANGELOG.md"; license = licenses.postgresql; platforms = postgresql.meta.platforms; maintainers = [ maintainers.marsam ]; From 147b101a635b4310d701ed62817c4eadd010c8f4 Mon Sep 17 00:00:00 2001 From: Mario Rodas Date: Fri, 30 Apr 2021 04:20:00 +0000 Subject: [PATCH 081/339] lxc: 4.0.6 -> 4.0.7 --- pkgs/os-specific/linux/lxc/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/os-specific/linux/lxc/default.nix b/pkgs/os-specific/linux/lxc/default.nix index e6bdd70b915..00822dd6150 100644 --- a/pkgs/os-specific/linux/lxc/default.nix +++ b/pkgs/os-specific/linux/lxc/default.nix @@ -9,11 +9,11 @@ with lib; stdenv.mkDerivation rec { pname = "lxc"; - version = "4.0.6"; + version = "4.0.7"; src = fetchurl { url = "https://linuxcontainers.org/downloads/lxc/lxc-${version}.tar.gz"; - sha256 = "0qz4l7mlhq7hx53q606qgvkyzyr01glsw290v8ppzvxn1fydlrci"; + sha256 = "0gqfc6nps8ja3iymh1mqbzakrlnzlf4lzfcxawz764w15z0214vl"; }; nativeBuildInputs = [ From 731d66855241dc8c56d1c6663e4110da5ec774b6 Mon Sep 17 00:00:00 2001 From: Mario Rodas Date: Fri, 30 Apr 2021 04:20:00 +0000 Subject: [PATCH 082/339] python38Packages.grpcio-tools: 1.37.0 -> 1.37.1 --- pkgs/development/python-modules/grpcio-tools/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/grpcio-tools/default.nix b/pkgs/development/python-modules/grpcio-tools/default.nix index 2f4ee5de8d2..0ad0b960ee4 100644 --- a/pkgs/development/python-modules/grpcio-tools/default.nix +++ b/pkgs/development/python-modules/grpcio-tools/default.nix @@ -2,11 +2,11 @@ buildPythonPackage rec { pname = "grpcio-tools"; - version = "1.37.0"; + version = "1.37.1"; src = fetchPypi { inherit pname version; - sha256 = "3ec510c1b6bfc32effc639acf9a055e72dab7a7b6757bf72f2132790d6a7cf1c"; + sha256 = "d775fb07cc6561174d6c86d11727a156c4ade969f7bf5edf623ffe2a428bee4e"; }; outputs = [ "out" "dev" ]; From 6704ec57101ecb0f74fc52fc7801632b524723cc Mon Sep 17 00:00:00 2001 From: Zhaofeng Li Date: Fri, 30 Apr 2021 00:59:16 +0000 Subject: [PATCH 083/339] phosh: init at 0.10.2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Blaž Hrastnik Co-authored-by: Jan Tojnar Co-authored-by: Jordi Masip --- .../window-managers/phosh/default.nix | 158 ++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 2 files changed, 160 insertions(+) create mode 100644 pkgs/applications/window-managers/phosh/default.nix diff --git a/pkgs/applications/window-managers/phosh/default.nix b/pkgs/applications/window-managers/phosh/default.nix new file mode 100644 index 00000000000..95faee74dbc --- /dev/null +++ b/pkgs/applications/window-managers/phosh/default.nix @@ -0,0 +1,158 @@ +{ lib +, stdenv +, fetchFromGitLab +, meson +, ninja +, pkg-config +, python3 +, wrapGAppsHook +, libhandy +, libxkbcommon +, pulseaudio +, glib +, gtk3 +, gnome3 +, gcr +, pam +, systemd +, upower +, wayland +, dbus +, xvfb_run +, phoc +, feedbackd +, networkmanager +, polkit +, libsecret +, writeText +}: + +let + gvc = fetchFromGitLab { + domain = "gitlab.gnome.org"; + owner = "GNOME"; + repo = "libgnome-volume-control"; + rev = "ae1a34aafce7026b8c0f65a43c9192d756fe1057"; + sha256 = "0a4qh5pgyjki904qf7qmvqz2ksxb0p8xhgl2aixfbhixn0pw6saw"; + }; + + executable = writeText "phosh" '' + PHOC_INI=@out@/share/phosh/phoc.ini + GNOME_SESSION_ARGS="--disable-acceleration-check --session=phosh --debug" + + if [ -f /etc/phosh/phoc.ini ]; then + PHOC_INI=/etc/phosh/phoc.ini + elif [ -f /etc/phosh/rootston.ini ]; then + # honor old configs + PHOC_INI=/etc/phosh/rootston.ini + fi + + # Run gnome-session through a login shell so it picks + # variables from /etc/profile.d (XDG_*) + [ -n "$WLR_BACKENDS" ] || WLR_BACKENDS=drm,libinput + export WLR_BACKENDS + exec "${phoc}/bin/phoc" -C "$PHOC_INI" \ + -E "bash -lc 'XDG_DATA_DIRS=$XDG_DATA_DIRS:\$XDG_DATA_DIRS ${gnome3.gnome-session}/bin/gnome-session $GNOME_SESSION_ARGS'" + ''; + +in stdenv.mkDerivation rec { + pname = "phosh"; + version = "0.10.2"; + + src = fetchFromGitLab { + domain = "source.puri.sm"; + owner = "Librem5"; + repo = pname; + rev = "v${version}"; + sha256 = "07i8wpzl7311dcf9s57s96qh1v672c75wv6cllrxx7fsmpf8fhx4"; + }; + + nativeBuildInputs = [ + meson + ninja + pkg-config + python3 + wrapGAppsHook + ]; + + buildInputs = [ + phoc + libhandy + libsecret + libxkbcommon + pulseaudio + glib + gcr + networkmanager + polkit + gnome3.gnome-control-center + gnome3.gnome-desktop + gnome3.gnome-session + gtk3 + pam + systemd + upower + wayland + feedbackd + ]; + + checkInputs = [ + dbus + xvfb_run + ]; + + # Temporarily disabled - Test is broken (SIGABRT) + doCheck = false; + + postUnpack = '' + rmdir $sourceRoot/subprojects/gvc + ln -s ${gvc} $sourceRoot/subprojects/gvc + ''; + + postPatch = '' + chmod +x build-aux/post_install.py + patchShebangs build-aux/post_install.py + ''; + + checkPhase = '' + runHook preCheck + export NO_AT_BRIDGE=1 + xvfb-run -s '-screen 0 800x600x24' dbus-run-session \ + --config-file=${dbus.daemon}/share/dbus-1/session.conf \ + meson test --print-errorlogs + runHook postCheck + ''; + + # Replace the launcher script with ours + postInstall = '' + substituteAll ${executable} $out/bin/phosh + ''; + + # Depends on GSettings schemas in gnome-shell + preFixup = '' + gappsWrapperArgs+=( + --prefix XDG_DATA_DIRS : "${gnome3.gnome-shell}/share/gsettings-schemas/${gnome3.gnome-shell.name}" + ) + ''; + + postFixup = '' + mkdir -p $out/share/wayland-sessions + ln -s $out/share/applications/sm.puri.Phosh.desktop $out/share/wayland-sessions/ + # The OSK0.desktop points to a dummy stub that's not needed + rm $out/share/applications/sm.puri.OSK0.desktop + ''; + + passthru = { + providedSessions = [ + "sm.puri.Phosh" + ]; + }; + + meta = with lib; { + description = "A pure Wayland shell prototype for GNOME on mobile devices"; + homepage = "https://source.puri.sm/Librem5/phosh"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ archseer jtojnar masipcat zhaofengli ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index c62511e5b1b..9f014274cb0 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -7538,6 +7538,8 @@ in pim6sd = callPackage ../servers/pim6sd { }; + phosh = callPackage ../applications/window-managers/phosh { }; + pinentry = libsForQt5.callPackage ../tools/security/pinentry { libcap = if stdenv.isDarwin then null else libcap; }; From 71d9291742854c460c379153995402fa0d7ba374 Mon Sep 17 00:00:00 2001 From: Thibault Polge Date: Fri, 30 Apr 2021 10:21:43 +0200 Subject: [PATCH 084/339] nixos/pcscd: Correctly install pcsclite (fix #121121) This makes sure that the polkit policies for pcsclite are correcly loaded. --- nixos/modules/services/hardware/pcscd.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/nixos/modules/services/hardware/pcscd.nix b/nixos/modules/services/hardware/pcscd.nix index 59c12ee12ca..4fc1e351f50 100644 --- a/nixos/modules/services/hardware/pcscd.nix +++ b/nixos/modules/services/hardware/pcscd.nix @@ -50,6 +50,7 @@ in environment.etc."reader.conf".source = cfgFile; + environment.systemPackages = [ pkgs.pcsclite ]; systemd.packages = [ (getBin pkgs.pcsclite) ]; systemd.sockets.pcscd.wantedBy = [ "sockets.target" ]; From 7c9c3c88e3ccd40e3c4875e0c99b774b8c1cf3da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=BCtz?= Date: Fri, 30 Apr 2021 11:51:51 +0200 Subject: [PATCH 085/339] postfix: 3.5.10 -> 3.6.0 http://www.postfix.org/announcements/postfix-3.6.0.html --- pkgs/servers/mail/postfix/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/servers/mail/postfix/default.nix b/pkgs/servers/mail/postfix/default.nix index 579ce383319..ad704ca792b 100644 --- a/pkgs/servers/mail/postfix/default.nix +++ b/pkgs/servers/mail/postfix/default.nix @@ -26,11 +26,11 @@ in stdenv.mkDerivation rec { pname = "postfix"; - version = "3.5.10"; + version = "3.6.0"; src = fetchurl { url = "ftp://ftp.cs.uu.nl/mirror/postfix/postfix-release/official/${pname}-${version}.tar.gz"; - sha256 = "sha256-W7TX1y11ErWPOjFCbcvTlP01TgpD3iHaiUZrBXoCKPg="; + sha256 = "sha256-d0YolNdnHWPL5fwnM/lBCIUVptZxCLnxgIt9rjfoPC4="; }; nativeBuildInputs = [ makeWrapper m4 ]; From a690b4e1230d98e74522655134fe3ee4d6585f4b Mon Sep 17 00:00:00 2001 From: Jonathan Wilkins Date: Mon, 26 Apr 2021 17:35:17 +0100 Subject: [PATCH 086/339] zsh-z: init at unstable-2021-02-15 --- pkgs/shells/zsh/zsh-z/default.nix | 28 ++++++++++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ 2 files changed, 30 insertions(+) create mode 100644 pkgs/shells/zsh/zsh-z/default.nix diff --git a/pkgs/shells/zsh/zsh-z/default.nix b/pkgs/shells/zsh/zsh-z/default.nix new file mode 100644 index 00000000000..9623ff6648c --- /dev/null +++ b/pkgs/shells/zsh/zsh-z/default.nix @@ -0,0 +1,28 @@ +{ lib, stdenvNoCC, fetchFromGitHub }: + +stdenvNoCC.mkDerivation rec { + pname = "zsh-z"; + version = "unstable-2021-02-15"; + + src = fetchFromGitHub { + owner = "agkozak"; + repo = pname; + rev = "595c883abec4682929ffe05eb2d088dd18e97557"; + sha256 = "sha256-HnwUWqzwavh/Qox+siOe5lwTp7PBdiYx+9M0NMNFx00="; + }; + + dontBuild = true; + + installPhase = '' + mkdir -p $out/share/zsh-z + cp _zshz zsh-z.plugin.zsh $out/share/zsh-z + ''; + + meta = with lib; { + description = "Jump quickly to directories that you have visited frequently in the past, or recently"; + homepage = "https://github.com/agkozak/zsh-z"; + license = licenses.mit; + platforms = platforms.unix; + maintainers = [ maintainers.evalexpr ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index fcfa0b51d85..e20f64eb2d4 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -9853,6 +9853,8 @@ in zsh-you-should-use = callPackage ../shells/zsh/zsh-you-should-use { }; + zsh-z = callPackage ../shells/zsh/zsh-z { }; + zssh = callPackage ../tools/networking/zssh { }; zstd = callPackage ../tools/compression/zstd { From 10b96a639ced4a79fe82d19748e5a60df4619551 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Samuel=20Gr=C3=A4fenstein?= Date: Fri, 30 Apr 2021 15:18:21 +0200 Subject: [PATCH 087/339] libfaketime: add meta.mainProgram --- pkgs/development/libraries/libfaketime/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/development/libraries/libfaketime/default.nix b/pkgs/development/libraries/libfaketime/default.nix index ced1c3e7bb9..34c957715dd 100644 --- a/pkgs/development/libraries/libfaketime/default.nix +++ b/pkgs/development/libraries/libfaketime/default.nix @@ -39,5 +39,6 @@ stdenv.mkDerivation rec { license = licenses.gpl2; platforms = platforms.all; maintainers = [ maintainers.bjornfor ]; + mainProgram = "faketime"; }; } From e7835da83f14600a8fc713aa00023aeb461f82ca Mon Sep 17 00:00:00 2001 From: Yurii Matsiuk Date: Fri, 30 Apr 2021 15:27:43 +0200 Subject: [PATCH 088/339] zoom-us: 5.6.16775.0418 -> 5.6.16888.0424 --- .../networking/instant-messengers/zoom-us/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/networking/instant-messengers/zoom-us/default.nix b/pkgs/applications/networking/instant-messengers/zoom-us/default.nix index fd15e77c8be..6dcf5e11061 100644 --- a/pkgs/applications/networking/instant-messengers/zoom-us/default.nix +++ b/pkgs/applications/networking/instant-messengers/zoom-us/default.nix @@ -29,11 +29,11 @@ assert pulseaudioSupport -> libpulseaudio != null; let - version = "5.6.16775.0418"; + version = "5.6.16888.0424"; srcs = { x86_64-linux = fetchurl { url = "https://zoom.us/client/${version}/zoom_x86_64.pkg.tar.xz"; - sha256 = "twtxzniojgyLTx6Kda8Ej96uyw2JQB/jIhLdTgTqpCo="; + sha256 = "H/G9cSVmxYM0AVfrdpXzm7ohssDbKq2xdvIBc4d+elc="; }; }; From 013e24518899be0bdbca50ef3a650e69385f7643 Mon Sep 17 00:00:00 2001 From: Pawel Kruszewski Date: Wed, 21 Oct 2020 09:05:23 +0200 Subject: [PATCH 089/339] timeular: 3.4.1 -> 3.9.1 --- pkgs/applications/office/timeular/default.nix | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/office/timeular/default.nix b/pkgs/applications/office/timeular/default.nix index 948918e5491..477ae48b5f4 100644 --- a/pkgs/applications/office/timeular/default.nix +++ b/pkgs/applications/office/timeular/default.nix @@ -2,22 +2,30 @@ , fetchurl , appimageTools , libsecret +, gtk3 +, gsettings-desktop-schemas }: let - version = "3.4.1"; + version = "3.9.1"; pname = "timeular"; name = "${pname}-${version}"; + src = fetchurl { url = "https://s3.amazonaws.com/timeular-desktop-packages/linux/production/Timeular-${version}.AppImage"; - sha256 = "1s5jjdl1nzq9yd582lqs904yl10mp0s25897zmifmcbw1vz38bar"; + sha256 = "103hy443p697jdkz6li8s1n6kg1r55jmiw2vbjz12kskf7njg4y4"; }; + appimageContents = appimageTools.extractType2 { inherit name src; }; in appimageTools.wrapType2 rec { inherit name src; + profile = '' + export XDG_DATA_DIRS=${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS + ''; + extraPkgs = pkgs: with pkgs; [ libsecret ]; From 2008b4f9f4507b8521a7e595235c848d96301232 Mon Sep 17 00:00:00 2001 From: Kira Bruneau Date: Mon, 26 Apr 2021 16:06:02 -0400 Subject: [PATCH 090/339] undistract-me: init at unstable-2020-08-09 --- pkgs/shells/bash/undistract-me/default.nix | 79 ++++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 2 files changed, 81 insertions(+) create mode 100644 pkgs/shells/bash/undistract-me/default.nix diff --git a/pkgs/shells/bash/undistract-me/default.nix b/pkgs/shells/bash/undistract-me/default.nix new file mode 100644 index 00000000000..e6641d9039c --- /dev/null +++ b/pkgs/shells/bash/undistract-me/default.nix @@ -0,0 +1,79 @@ +{ lib +, stdenvNoCC +, fetchFromGitHub +, fetchpatch +, coreutils +, gnused +, libnotify +, pulseaudio +, sound-theme-freedesktop +, xprop +}: + +stdenvNoCC.mkDerivation rec { + pname = "undistract-me"; + version = "unstable-2020-08-09"; + + src = fetchFromGitHub { + owner = "jml"; + repo = pname; + rev = "2f8ac25c6ad8efcf160d2b480825b1cbb6772aab"; + hash = "sha256-Qw7Cu9q0ZgK/RTvyDdHM5N3eBaKjtYqYH0J+hKMUZX8="; + }; + + patches = [ + # Don't block the terminal when notification sound is played + # + # See https://github.com/jml/undistract-me/pull/69 + (fetchpatch { + url = "https://github.com/jml/undistract-me/commit/2356ebbe8bf2bcb4b95af1ae2bcdc786ce7cc6e8.patch"; + sha256 = "sha256-Ij3OXTOnIQsYhKVmqjChhN1q4ASZ7waOkfQTTp5XfPo="; + }) + + # Fix showing notifications when using Wayland apps with XWayland + # running, or connection to X server fails. + # + # NOTE: Without a real X server, notifications will not be + # suppressed when the window running the command is focused. + # + # See https://github.com/jml/undistract-me/pull/71 + (fetchpatch { + url = "https://github.com/jml/undistract-me/commit/3f4ceaf5a4eba8e3cb02236c48247f87e3d1124f.patch"; + sha256 = "sha256-9AK9Jp3TXJ75Y+jwZXlwQ6j54FW1rOBddoktrm0VX68="; + }) + ]; + + # Patch in dependencies. Can't use makeWrapper because the bash + # functions will be sourced and invoked in a different environment + # for each command invocation. + postPatch = '' + for script in *.bash *.sh; do + substituteInPlace "$script" \ + --replace /usr/share/undistract-me "$out/share/undistract-me" \ + --replace basename ${coreutils}/bin/basename \ + --replace 'cut ' '${coreutils}/bin/cut ' \ + --replace date ${coreutils}/bin/date \ + --replace dirname ${coreutils}/bin/dirname \ + --replace sed ${gnused}/bin/sed \ + --replace notify-send ${libnotify}/bin/notify-send \ + --replace paplay ${pulseaudio}/bin/paplay \ + --replace /usr/share/sounds/freedesktop ${sound-theme-freedesktop}/share/sounds/freedesktop \ + --replace xprop ${xprop}/bin/xprop + done + ''; + + installPhase = '' + mkdir -p "$out/share/undistract-me" "$out/etc/profile.d" "$out/share/licenses/undistract-me" + cp long-running.bash "$out/share/undistract-me" + cp preexec.bash "$out/share/undistract-me" + cp undistract-me.sh "$out/etc/profile.d" + cp LICENSE "$out/share/licenses/undistract-me" + ''; + + meta = with lib; { + description = "Notifies you when long-running terminal commands complete"; + homepage = "https://github.com/jml/undistract-me"; + license = licenses.mit; + maintainers = with maintainers; [ metadark ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 2d6636416ee..37cb75e5c9b 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -9890,6 +9890,8 @@ in nix-bash-completions = callPackage ../shells/bash/nix-bash-completions { }; + undistract-me = callPackage ../shells/bash/undistract-me { }; + dash = callPackage ../shells/dash { }; dasht = callPackage ../tools/misc/dasht { }; From b8764372956f0c96bf1618f03700207941ef606d Mon Sep 17 00:00:00 2001 From: Diogo Xavier Date: Fri, 30 Apr 2021 14:53:31 +0100 Subject: [PATCH 091/339] maintainers: add diogox --- maintainers/maintainer-list.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 4a481b5ecf0..413cbe79db9 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -2433,6 +2433,12 @@ githubId = 8404455; name = "Diego Lelis"; }; + diogox = { + name = "Diogo Xavier"; + email = "13244408+diogox@users.noreply.github.com"; + github = "diogox"; + githubId = 13244408; + }; dipinhora = { email = "dipinhora+github@gmail.com"; github = "dipinhora"; From 4d773bddeb777caec934760f6e13b02ea12ccd55 Mon Sep 17 00:00:00 2001 From: Diogo Xavier Date: Fri, 30 Apr 2021 14:53:37 +0100 Subject: [PATCH 092/339] frugal: init at 3.14.2 --- pkgs/development/tools/frugal/default.nix | 24 +++++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ 2 files changed, 26 insertions(+) create mode 100644 pkgs/development/tools/frugal/default.nix diff --git a/pkgs/development/tools/frugal/default.nix b/pkgs/development/tools/frugal/default.nix new file mode 100644 index 00000000000..1ce4139e75d --- /dev/null +++ b/pkgs/development/tools/frugal/default.nix @@ -0,0 +1,24 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "frugal"; + version = "3.14.2"; + + src = fetchFromGitHub { + owner = "Workiva"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-Tcx0jYGKoyBj2vuTJI34TsyCBzXPyccZFqXA8jJNMQI="; + }; + + subPackages = [ "." ]; + + vendorSha256 = "sha256-hyupBMRKuw77SJNIk3mEUixV0LV5mEmZx8M70qGmYJY="; + + meta = with lib; { + description = "Thrift improved"; + homepage = "https://github.com/Workiva/frugal"; + license = with licenses; [ asl20 ]; + maintainers = with maintainers; [ diogox ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 75a57362d93..61d19855a21 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -251,6 +251,8 @@ in eclipse-mat = callPackage ../development/tools/eclipse-mat { }; + frugal = callPackage ../development/tools/frugal { }; + glade = callPackage ../development/tools/glade { }; hobbes = callPackage ../development/tools/hobbes { }; From c87152d97ca724b1b36e63fc538c3d5a69580454 Mon Sep 17 00:00:00 2001 From: Joe Hermaszewski Date: Fri, 30 Apr 2021 21:52:37 +0800 Subject: [PATCH 093/339] ecpdap: 0.1.5 -> 0.1.6 Also put the new udev rules in /etc/udev/rules.d --- pkgs/development/tools/ecpdap/default.nix | 16 +- .../tools/ecpdap/lock-update.patch | 345 ------------------ 2 files changed, 8 insertions(+), 353 deletions(-) delete mode 100644 pkgs/development/tools/ecpdap/lock-update.patch diff --git a/pkgs/development/tools/ecpdap/default.nix b/pkgs/development/tools/ecpdap/default.nix index dbb9a2405b0..46b5945fb94 100644 --- a/pkgs/development/tools/ecpdap/default.nix +++ b/pkgs/development/tools/ecpdap/default.nix @@ -2,26 +2,26 @@ rustPlatform.buildRustPackage rec { pname = "ecpdap"; - version = "0.1.5"; + version = "0.1.6"; src = fetchFromGitHub { owner = "adamgreig"; repo = pname; rev = "v${version}"; - sha256 = "1z8w37i6wjz6cr453md54ip21y26605vrx4vpq5wwd11mfvc1jsg"; + sha256 = "1va96hxm22a2lfy141x1sv5f5g8f6mp965an4jsff9qzi55kfv2g"; }; - # The lock file was not up to date with cargo.toml for this release - # - # This patch is the lock file after running `cargo update` - cargoPatches = [ ./lock-update.patch ]; - - cargoSha256 = "08xcnvbxm508v03b3hmz71mpa3yd8lamvazxivp6qsv46ri163mn"; + cargoSha256 = "1dk6x2f36c546qr415kzmqr2r4550iwdmj4chrb46p3hr64jddhd"; nativeBuildInputs = [ pkg-config ]; buildInputs = [ libusb1 ]; + postInstall = '' + mkdir -p $out/etc/udev/rules.d + cp drivers/*.rules $out/etc/udev/rules.d + ''; + meta = with lib; { description = "A tool to program ECP5 FPGAs"; longDescription = '' diff --git a/pkgs/development/tools/ecpdap/lock-update.patch b/pkgs/development/tools/ecpdap/lock-update.patch deleted file mode 100644 index f57c1922ad1..00000000000 --- a/pkgs/development/tools/ecpdap/lock-update.patch +++ /dev/null @@ -1,345 +0,0 @@ -diff --git a/Cargo.lock b/Cargo.lock -index 91f7e0c..1610002 100644 ---- a/Cargo.lock -+++ b/Cargo.lock -@@ -26,9 +26,9 @@ dependencies = [ - - [[package]] - name = "anyhow" --version = "1.0.37" -+version = "1.0.40" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "ee67c11feeac938fae061b232e38e0b6d94f97a9df10e6271319325ac4c56a86" -+checksum = "28b2cd92db5cbd74e8e5028f7e27dd7aa3090e89e4f2a197cc7c8dfb69c7063b" - - [[package]] - name = "atty" -@@ -49,15 +49,9 @@ checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" - - [[package]] - name = "cc" --version = "1.0.66" -+version = "1.0.67" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "4c0496836a84f8d0495758516b8621a622beb77c0fed418570e50764093ced48" -- --[[package]] --name = "cfg-if" --version = "0.1.10" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" -+checksum = "e3c69b077ad434294d3ce9f1f6143a2a4b89a8a2d54ef813d85003a4fd1137fd" - - [[package]] - name = "cfg-if" -@@ -82,9 +76,9 @@ dependencies = [ - - [[package]] - name = "console" --version = "0.14.0" -+version = "0.14.1" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "7cc80946b3480f421c2f17ed1cb841753a371c7c5104f51d507e13f532c856aa" -+checksum = "3993e6445baa160675931ec041a5e03ca84b9c6e32a056150d3aa2bdda0a1f45" - dependencies = [ - "encode_unicode", - "lazy_static", -@@ -101,14 +95,14 @@ version = "1.2.1" - source = "registry+https://github.com/rust-lang/crates.io-index" - checksum = "81156fece84ab6a9f2afdb109ce3ae577e42b1228441eded99bd77f627953b1a" - dependencies = [ -- "cfg-if 1.0.0", -+ "cfg-if", - ] - - [[package]] - name = "derivative" --version = "2.1.1" -+version = "2.2.0" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "cb582b60359da160a9477ee80f15c8d784c477e69c217ef2cdd4169c24ea380f" -+checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" - dependencies = [ - "proc-macro2", - "quote", -@@ -117,7 +111,7 @@ dependencies = [ - - [[package]] - name = "ecpdap" --version = "0.1.4" -+version = "0.1.5" - dependencies = [ - "anyhow", - "clap", -@@ -153,11 +147,11 @@ dependencies = [ - - [[package]] - name = "filetime" --version = "0.2.13" -+version = "0.2.14" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "0c122a393ea57648015bf06fbd3d372378992e86b9ff5a7a497b076a28c79efe" -+checksum = "1d34cfa13a63ae058bfa601fe9e313bbdb3746427c1459185464ce0fcf62e1e8" - dependencies = [ -- "cfg-if 1.0.0", -+ "cfg-if", - "libc", - "redox_syscall", - "winapi", -@@ -165,9 +159,9 @@ dependencies = [ - - [[package]] - name = "hermit-abi" --version = "0.1.17" -+version = "0.1.18" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "5aca5565f760fb5b220e499d72710ed156fdb74e631659e99377d9ebfbd13ae8" -+checksum = "322f4de77956e22ed0e5032c359a0f1273f1f7f0d79bfa3b8ffbc730d7fbcc5c" - dependencies = [ - "libc", - ] -@@ -206,9 +200,9 @@ dependencies = [ - - [[package]] - name = "jep106" --version = "0.2.4" -+version = "0.2.5" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "f57cd08ee4fbc8043949150a59e34ea5f2afeb172f875db9607689e48600c653" -+checksum = "939876d20519325db0883757e29e9858ee02919d0f03e43c74f69296caa314f4" - dependencies = [ - "serde", - ] -@@ -221,33 +215,35 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" - - [[package]] - name = "libc" --version = "0.2.81" -+version = "0.2.94" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "1482821306169ec4d07f6aca392a4681f66c75c9918aa49641a2595db64053cb" -+checksum = "18794a8ad5b29321f790b55d93dfba91e125cb1a9edbd4f8e3150acc771c1a5e" - - [[package]] - name = "libflate" --version = "1.0.3" -+version = "1.1.0" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "389de7875e06476365974da3e7ff85d55f1972188ccd9f6020dd7c8156e17914" -+checksum = "6d87eae36b3f680f7f01645121b782798b56ef33c53f83d1c66ba3a22b60bfe3" - dependencies = [ - "adler32", - "crc32fast", - "libflate_lz77", -- "rle-decode-fast", - ] - - [[package]] - name = "libflate_lz77" --version = "1.0.0" -+version = "1.1.0" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "3286f09f7d4926fc486334f28d8d2e6ebe4f7f9994494b6dab27ddfad2c9b11b" -+checksum = "39a734c0493409afcd49deee13c006a04e3586b9761a03543c6272c9c51f2f5a" -+dependencies = [ -+ "rle-decode-fast", -+] - - [[package]] - name = "libusb1-sys" --version = "0.4.3" -+version = "0.4.4" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "5e3b8385bdc8931a82a0865a3a7285e2c28e41287824dc92c7724b7759a0c685" -+checksum = "be241693102a24766d0b8526c8988771edac2842630d7e730f8e9fbc014f3703" - dependencies = [ - "cc", - "libc", -@@ -259,11 +255,11 @@ dependencies = [ - - [[package]] - name = "log" --version = "0.4.11" -+version = "0.4.14" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "4fabed175da42fed1fa0746b0ea71f412aa9d35e76e95e59b192c64b9dc2bf8b" -+checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710" - dependencies = [ -- "cfg-if 0.1.10", -+ "cfg-if", - ] - - [[package]] -@@ -327,9 +323,9 @@ dependencies = [ - - [[package]] - name = "proc-macro2" --version = "1.0.24" -+version = "1.0.26" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "1e0704ee1a7e00d7bb417d0770ea303c1bccbabf0ef1667dae92b5967f5f8a71" -+checksum = "a152013215dca273577e18d2bf00fa862b89b24169fb78c4c95aeb07992c9cec" - dependencies = [ - "unicode-xid", - ] -@@ -342,36 +338,38 @@ checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" - - [[package]] - name = "quote" --version = "1.0.8" -+version = "1.0.9" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "991431c3519a3f36861882da93630ce66b52918dcf1b8e2fd66b397fc96f28df" -+checksum = "c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7" - dependencies = [ - "proc-macro2", - ] - - [[package]] - name = "redox_syscall" --version = "0.1.57" -+version = "0.2.6" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce" -+checksum = "8270314b5ccceb518e7e578952f0b72b88222d02e8f77f5ecf7abbb673539041" -+dependencies = [ -+ "bitflags", -+] - - [[package]] - name = "regex" --version = "1.4.2" -+version = "1.4.6" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "38cf2c13ed4745de91a5eb834e11c00bcc3709e773173b2ce4c56c9fbde04b9c" -+checksum = "2a26af418b574bd56588335b3a3659a65725d4e636eb1016c2f9e3b38c7cc759" - dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax", -- "thread_local", - ] - - [[package]] - name = "regex-syntax" --version = "0.6.21" -+version = "0.6.23" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "3b181ba2dcf07aaccad5448e8ead58db5b742cf85dfe035e2227f137a539a189" -+checksum = "24d5f089152e60f62d28b835fbff2cd2e8dc0baf1ac13343bef92ab7eed84548" - - [[package]] - name = "rle-decode-fast" -@@ -391,18 +389,18 @@ dependencies = [ - - [[package]] - name = "serde" --version = "1.0.118" -+version = "1.0.125" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "06c64263859d87aa2eb554587e2d23183398d617427327cf2b3d0ed8c69e4800" -+checksum = "558dc50e1a5a5fa7112ca2ce4effcb321b0300c0d4ccf0776a9f60cd89031171" - dependencies = [ - "serde_derive", - ] - - [[package]] - name = "serde_derive" --version = "1.0.118" -+version = "1.0.125" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "c84d3526699cd55261af4b941e4e725444df67aa4f9e6a3564f18030d12672df" -+checksum = "b093b7a2bb58203b5da3056c05b4ec1fed827dcfdb37347a8841695263b3d06d" - dependencies = [ - "proc-macro2", - "quote", -@@ -431,9 +429,9 @@ checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" - - [[package]] - name = "syn" --version = "1.0.57" -+version = "1.0.71" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "4211ce9909eb971f111059df92c45640aad50a619cf55cd76476be803c4c68e6" -+checksum = "ad184cc9470f9117b2ac6817bfe297307418819ba40552f9b3846f05c33d5373" - dependencies = [ - "proc-macro2", - "quote", -@@ -442,13 +440,12 @@ dependencies = [ - - [[package]] - name = "tar" --version = "0.4.30" -+version = "0.4.33" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "489997b7557e9a43e192c527face4feacc78bfbe6eed67fd55c4c9e381cba290" -+checksum = "c0bcfbd6a598361fda270d82469fff3d65089dc33e175c9a131f7b4cd395f228" - dependencies = [ - "filetime", - "libc", -- "redox_syscall", - "xattr", - ] - -@@ -463,9 +460,9 @@ dependencies = [ - - [[package]] - name = "terminal_size" --version = "0.1.15" -+version = "0.1.16" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "4bd2d183bd3fac5f5fe38ddbeb4dc9aec4a39a9d7d59e7491d900302da01cbe1" -+checksum = "86ca8ced750734db02076f44132d802af0b33b09942331f4459dde8636fd2406" - dependencies = [ - "libc", - "winapi", -@@ -482,33 +479,24 @@ dependencies = [ - - [[package]] - name = "thiserror" --version = "1.0.23" -+version = "1.0.24" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "76cc616c6abf8c8928e2fdcc0dbfab37175edd8fb49a4641066ad1364fdab146" -+checksum = "e0f4a65597094d4483ddaed134f409b2cb7c1beccf25201a9f73c719254fa98e" - dependencies = [ - "thiserror-impl", - ] - - [[package]] - name = "thiserror-impl" --version = "1.0.23" -+version = "1.0.24" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "9be73a2caec27583d0046ef3796c3794f868a5bc813db689eed00c7631275cd1" -+checksum = "7765189610d8241a44529806d6fd1f2e0a08734313a35d5b3a556f92b381f3c0" - dependencies = [ - "proc-macro2", - "quote", - "syn", - ] - --[[package]] --name = "thread_local" --version = "1.0.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14" --dependencies = [ -- "lazy_static", --] -- - [[package]] - name = "toml" - version = "0.5.8" -@@ -532,9 +520,9 @@ checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564" - - [[package]] - name = "vcpkg" --version = "0.2.11" -+version = "0.2.12" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "b00bca6106a5e23f3eee943593759b7fcddb00554332e856d990c893966879fb" -+checksum = "cbdbff6266a24120518560b5dc983096efb98462e51d0d68169895b237be3e5d" - - [[package]] - name = "vec_map" From bddecd3510248294c7265b82a5af21d65343bc41 Mon Sep 17 00:00:00 2001 From: Aaron Andersen Date: Fri, 30 Apr 2021 10:33:25 -0400 Subject: [PATCH 094/339] redmine: 4.2.0 -> 4.2.1 --- .../version-management/redmine/Gemfile.lock | 16 +++++----- .../version-management/redmine/default.nix | 4 +-- .../version-management/redmine/gemset.nix | 32 +++++++++---------- 3 files changed, 26 insertions(+), 26 deletions(-) diff --git a/pkgs/applications/version-management/redmine/Gemfile.lock b/pkgs/applications/version-management/redmine/Gemfile.lock index d3afc9de341..7f3fc0650cf 100644 --- a/pkgs/applications/version-management/redmine/Gemfile.lock +++ b/pkgs/applications/version-management/redmine/Gemfile.lock @@ -70,28 +70,28 @@ GEM globalid (0.4.2) activesupport (>= 4.2.0) htmlentities (4.3.4) - i18n (1.8.9) + i18n (1.8.10) concurrent-ruby (~> 1.0) - loofah (2.9.0) + loofah (2.9.1) crass (~> 1.0.2) nokogiri (>= 1.5.9) mail (2.7.1) mini_mime (>= 0.1.1) - marcel (1.0.0) + marcel (1.0.1) method_source (1.0.0) mini_magick (4.11.0) mini_mime (1.0.3) - mini_portile2 (2.5.0) + mini_portile2 (2.5.1) minitest (5.14.4) mocha (1.12.0) mysql2 (0.5.3) net-ldap (0.17.0) nio4r (2.5.7) - nokogiri (1.11.2) + nokogiri (1.11.3) mini_portile2 (~> 2.5.0) racc (~> 1.4) parallel (1.20.1) - parser (3.0.0.0) + parser (3.0.1.0) ast (~> 2.4.1) pg (1.2.3) public_suffix (4.0.6) @@ -138,7 +138,7 @@ GEM regexp_parser (1.8.2) request_store (1.5.0) rack (>= 1.4) - rexml (3.2.4) + rexml (3.2.5) roadie (4.0.0) css_parser (~> 1.4) nokogiri (~> 1.8) @@ -151,7 +151,7 @@ GEM chunky_png (~> 1.0) rqrcode_core (~> 0.2) rqrcode_core (0.2.0) - rubocop (1.12.0) + rubocop (1.12.1) parallel (~> 1.10) parser (>= 3.0.0.0) rainbow (>= 2.2.2, < 4.0) diff --git a/pkgs/applications/version-management/redmine/default.nix b/pkgs/applications/version-management/redmine/default.nix index e0559a9c48f..7eca72ac5f0 100644 --- a/pkgs/applications/version-management/redmine/default.nix +++ b/pkgs/applications/version-management/redmine/default.nix @@ -1,7 +1,7 @@ { lib, stdenv, fetchurl, bundlerEnv, ruby, makeWrapper }: let - version = "4.2.0"; + version = "4.2.1"; rubyEnv = bundlerEnv { name = "redmine-env-${version}"; @@ -16,7 +16,7 @@ in src = fetchurl { url = "https://www.redmine.org/releases/${pname}-${version}.tar.gz"; - sha256 = "1r87gy73dclnvcz55vziv6kbgyck0v8jlzx1wwkak8mgh32n8n19"; + sha256 = "1d217fhyvncpwahwlinr3vc20vn7jijaxxk1i56gw72z8b1hjhdd"; }; nativeBuildInputs = [ makeWrapper ]; diff --git a/pkgs/applications/version-management/redmine/gemset.nix b/pkgs/applications/version-management/redmine/gemset.nix index b545c9d6a3e..2d045a5f292 100644 --- a/pkgs/applications/version-management/redmine/gemset.nix +++ b/pkgs/applications/version-management/redmine/gemset.nix @@ -269,10 +269,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "08p6b13p99j1rrcrw1l3v0kb9mxbsvy6nk31r8h4rnszdgzpga32"; + sha256 = "0g2fnag935zn2ggm5cn6k4s4xvv53v2givj1j90szmvavlpya96a"; type = "gem"; }; - version = "1.8.9"; + version = "1.8.10"; }; loofah = { dependencies = ["crass" "nokogiri"]; @@ -280,10 +280,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0bzwvxvilx7w1p3pg028ks38925y9i0xm870lm7s12w7598hiyck"; + sha256 = "1w9mbii8515p28xd4k72f3ab2g6xiyq15497ys5r8jn6m355lgi7"; type = "gem"; }; - version = "2.9.0"; + version = "2.9.1"; }; mail = { dependencies = ["mini_mime"]; @@ -301,10 +301,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1vhp6lifwvqs2b0a276lj61n86c1l7d1xiswjj2w23f54gl51mpk"; + sha256 = "0bp001p687nsa4a8sp3q1iv8pfhs24w7s3avychjp64sdkg6jxq3"; type = "gem"; }; - version = "1.0.0"; + version = "1.0.1"; }; method_source = { groups = ["default"]; @@ -341,10 +341,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1hdbpmamx8js53yk3h8cqy12kgv6ca06k0c9n3pxh6b6cjfs19x7"; + sha256 = "0xg1x4708a4pn2wk8qs2d8kfzzdyv9kjjachg2f1phsx62ap2rx2"; type = "gem"; }; - version = "2.5.0"; + version = "2.5.1"; }; minitest = { groups = ["default" "test"]; @@ -410,10 +410,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0b51df8fwadak075cvi17w0nch6qz1r66564qp29qwfj67j9qp0p"; + sha256 = "19d78mdg2lbz9jb4ph6nk783c9jbsdm8rnllwhga6pd53xffp6x0"; type = "gem"; }; - version = "1.11.2"; + version = "1.11.3"; }; parallel = { groups = ["default" "test"]; @@ -431,10 +431,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1jixakyzmy0j5c1rb0fjrrdhgnyryvrr6vgcybs14jfw09akv5ml"; + sha256 = "04ri489irbbx6sbkclpgri7j7p99v2qib5g2i70xx5fay12ilny8"; type = "gem"; }; - version = "3.0.0.0"; + version = "3.0.1.0"; }; pg = { groups = ["default"]; @@ -638,10 +638,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1mkvkcw9fhpaizrhca0pdgjcrbns48rlz4g6lavl5gjjq3rk2sq3"; + sha256 = "08ximcyfjy94pm1rhcx04ny1vx2sk0x4y185gzn86yfsbzwkng53"; type = "gem"; }; - version = "3.2.4"; + version = "3.2.5"; }; roadie = { dependencies = ["css_parser" "nokogiri"]; @@ -712,10 +712,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1i3y0h6awywx4rdmjdan908jmnyk589pndbjypxkfbkqvjx514fw"; + sha256 = "0hi2c3a6alya9yx07nirnjzlc0mvmidnx67874njp6wf7d5xqqr9"; type = "gem"; }; - version = "1.12.0"; + version = "1.12.1"; }; rubocop-ast = { dependencies = ["parser"]; From ddf04bd3f10eaf74486c27f620c304391329710a Mon Sep 17 00:00:00 2001 From: Aaron Andersen Date: Fri, 30 Apr 2021 10:50:01 -0400 Subject: [PATCH 095/339] musikcube: update from ffmpeg_3 to ffmpeg --- pkgs/applications/audio/musikcube/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/audio/musikcube/default.nix b/pkgs/applications/audio/musikcube/default.nix index 4a80ea09878..47266981c59 100644 --- a/pkgs/applications/audio/musikcube/default.nix +++ b/pkgs/applications/audio/musikcube/default.nix @@ -4,7 +4,7 @@ , boost , curl , fetchFromGitHub -, ffmpeg_3 +, ffmpeg , lame , libev , libmicrohttpd @@ -34,7 +34,7 @@ stdenv.mkDerivation rec { alsaLib boost curl - ffmpeg_3 + ffmpeg lame libev libmicrohttpd From 93edfffab6b9c0b279dce1891bb31c3d3970e06a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=BCtz?= Date: Fri, 30 Apr 2021 16:53:36 +0200 Subject: [PATCH 096/339] pythonPackages.pykeepass: run tests --- .../python-modules/pykeepass/default.nix | 25 +++++++++++-------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/pkgs/development/python-modules/pykeepass/default.nix b/pkgs/development/python-modules/pykeepass/default.nix index 294e47872fc..6e73501bfb0 100644 --- a/pkgs/development/python-modules/pykeepass/default.nix +++ b/pkgs/development/python-modules/pykeepass/default.nix @@ -1,15 +1,18 @@ -{ lib, fetchPypi, buildPythonPackage +{ lib, fetchFromGitHub, buildPythonPackage , lxml, pycryptodomex, construct , argon2_cffi, dateutil, future +, python }: buildPythonPackage rec { pname = "pykeepass"; version = "4.0.0"; - src = fetchPypi { - inherit pname version; - sha256 = "1b41b3277ea4e044556e1c5a21866ea4dfd36e69a4c0f14272488f098063178f"; + src = fetchFromGitHub { + owner = "libkeepass"; + repo = "pykeepass"; + rev = version; + sha256 = "1zw5hjk90zfxpgq2fz4h5qzw3kmvdnlfbd32gw57l034hmz2i08v"; }; postPatch = '' @@ -21,13 +24,15 @@ buildPythonPackage rec { argon2_cffi dateutil future ]; - # no tests in PyPI tarball - doCheck = false; + checkPhase = '' + ${python.interpreter} -m unittest tests.tests + ''; - meta = { - homepage = "https://github.com/pschmitt/pykeepass"; + meta = with lib; { + homepage = "https://github.com/libkeepass/pykeepass"; + changelog = "https://github.com/libkeepass/pykeepass/blob/${version}/CHANGELOG.rst"; description = "Python library to interact with keepass databases (supports KDBX3 and KDBX4)"; - license = lib.licenses.gpl3; + license = licenses.gpl3Only; + maintainers = with maintainers; [ dotlambda ]; }; - } From dd454b37a0ff88f6ae2fcbb19f229f3979415d7b Mon Sep 17 00:00:00 2001 From: Aaron Andersen Date: Fri, 30 Apr 2021 10:56:57 -0400 Subject: [PATCH 097/339] musikcube: 0.96.5 -> 0.96.7 --- pkgs/applications/audio/musikcube/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/audio/musikcube/default.nix b/pkgs/applications/audio/musikcube/default.nix index 47266981c59..c8e18c03c1e 100644 --- a/pkgs/applications/audio/musikcube/default.nix +++ b/pkgs/applications/audio/musikcube/default.nix @@ -17,13 +17,13 @@ stdenv.mkDerivation rec { pname = "musikcube"; - version = "0.96.5"; + version = "0.96.7"; src = fetchFromGitHub { owner = "clangen"; repo = pname; rev = version; - sha256 = "sha256-GxMQPP8i/NWvduf10f+xVyuG666pChj9RsiF4jfygyY="; + sha256 = "1y00vwn1h10cfflxrm5bk271ak9gilhjycgi44hlkkhmf5bdgn35"; }; nativeBuildInputs = [ From 93507828b235e3c1775c80653b1cbe22cc55efa9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=BCtz?= Date: Fri, 30 Apr 2021 17:16:28 +0200 Subject: [PATCH 098/339] passExtensions.pass-import: fix tests --- pkgs/tools/security/pass/extensions/import.nix | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/security/pass/extensions/import.nix b/pkgs/tools/security/pass/extensions/import.nix index be2492112c3..655bee41ba6 100644 --- a/pkgs/tools/security/pass/extensions/import.nix +++ b/pkgs/tools/security/pass/extensions/import.nix @@ -17,9 +17,14 @@ python3Packages.buildPythonApplication rec { sha256 = "sha256-nH2xAqWfMT+Brv3z9Aw6nbvYqArEZjpM28rKsRPihqA="; }; - # by default, tries to install scripts/pimport, which is a bash wrapper around "python -m pass_import ..." - # This is a better way to do the same, and takes advantage of the existing Nix python environments patches = [ + (fetchpatch { + name = "support-for-keepass-4.0.0.patch"; + url = "https://github.com/roddhjav/pass-import/commit/86cfb1bb13a271fefe1e70f24be18e15a83a04d8.patch"; + sha256 = "0mrlblqlmwl9gqs2id4rl4sivrcclsv6zyc6vjqi78kkqmnwzhxh"; + }) + # by default, tries to install scripts/pimport, which is a bash wrapper around "python -m pass_import ..." + # This is a better way to do the same, and takes advantage of the existing Nix python environments # from https://github.com/roddhjav/pass-import/pull/138 (fetchpatch { name = "pass-import-pr-138-pimport-entrypoint.patch"; From 3ceb0e9cfa4fff30e1e4981e1051c9db8ff13d1d Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Fri, 30 Apr 2021 15:55:57 +0000 Subject: [PATCH 099/339] krapslog: 0.1.2 -> 0.1.3 --- pkgs/tools/misc/krapslog/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/tools/misc/krapslog/default.nix b/pkgs/tools/misc/krapslog/default.nix index 4574d6c3534..ba6f92cc0fc 100644 --- a/pkgs/tools/misc/krapslog/default.nix +++ b/pkgs/tools/misc/krapslog/default.nix @@ -2,16 +2,16 @@ rustPlatform.buildRustPackage rec { pname = "krapslog"; - version = "0.1.2"; + version = "0.1.3"; src = fetchFromGitHub { owner = "acj"; repo = "krapslog-rs"; rev = version; - sha256 = "1yllvy3z3115aqxhnjn9rq2z67rgf2w53naygnl6ixpjhpafcr3k"; + sha256 = "sha256-BaR72djkvaMmdBqbykezLkY81Y7iajhNPcFGYq/qv7Y="; }; - cargoSha256 = "05gvl6yiyibcdscdf9a6k28xizdr5kfqbhynfbjny2hpqqjmnxzl"; + cargoSha256 = "sha256-rcLsqMegCos+v0OkdRvH9xoopE7R/njEUVteMY/6mj8="; meta = with lib; { description = "Visualize a log file with sparklines"; From 5fb284dda6a20888ae598cb1a4073f2afa1b2b8a Mon Sep 17 00:00:00 2001 From: "Travis A. Everett" Date: Sat, 24 Apr 2021 17:31:14 -0500 Subject: [PATCH 100/339] yadm: add release note for 3.x --- nixos/doc/manual/release-notes/rl-2105.xml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/nixos/doc/manual/release-notes/rl-2105.xml b/nixos/doc/manual/release-notes/rl-2105.xml index 6e4a9e7114b..79e16c77b9e 100644 --- a/nixos/doc/manual/release-notes/rl-2105.xml +++ b/nixos/doc/manual/release-notes/rl-2105.xml @@ -693,6 +693,11 @@ environment.systemPackages = [ as for each interface in services.babeld.interfaces. + + + The yadm dotfile manager has been updated from 2.x to 3.x, which has new (XDG) default locations for some data/state files. Most yadm commands will fail and print a legacy path warning (which describes how to upgrade/migrate your repository). If you have scripts, daemons, scheduled jobs, shell profiles, etc. that invoke yadm, expect them to fail or misbehave until you perform this migration and prepare accordingly. + + From 506bc7ba029d4c587af532aff5bc7d66bba1fe53 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Fri, 30 Apr 2021 03:23:55 +0200 Subject: [PATCH 101/339] nixos/nginx: update hardening settings - Set an explicit umask that allows u+rwx and g+r. - Adds `ProtectControlGroups` and `ProtectKernelLogs`, there should be no need to access either. - Adds `ProtectClock` to prevent write-access to the system clock. - `ProtectProc` hides processes from other users within the /proc filesystem and `ProcSubSet` hides all files/directories unrelated to the process management of the units process. - Sets `RemoveIPC`, as there is no SysV or POSIX IPC within nginx that I know of. - Restricts the creation of arbitrary namespaces - Adds a reasonable `SystemCallFilter` preventing calls to @privileged, @obsolete and others. And finally applies some sorting based on the order these options appear in systemd.exec(5). --- nixos/modules/services/web-servers/nginx/default.nix | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/nixos/modules/services/web-servers/nginx/default.nix b/nixos/modules/services/web-servers/nginx/default.nix index 18e1263fef5..d811879b7b1 100644 --- a/nixos/modules/services/web-servers/nginx/default.nix +++ b/nixos/modules/services/web-servers/nginx/default.nix @@ -819,28 +819,38 @@ in # Logs directory and mode LogsDirectory = "nginx"; LogsDirectoryMode = "0750"; + # Proc filesystem + ProcSubset = "pid"; + ProtectProc = "invisible"; + # New file permissions + UMask = "0027"; # 0640 / 0750 # Capabilities AmbientCapabilities = [ "CAP_NET_BIND_SERVICE" "CAP_SYS_RESOURCE" ]; CapabilityBoundingSet = [ "CAP_NET_BIND_SERVICE" "CAP_SYS_RESOURCE" ]; # Security NoNewPrivileges = true; - # Sandboxing + # Sandboxing (sorted by occurrence in https://www.freedesktop.org/software/systemd/man/systemd.exec.html) ProtectSystem = "strict"; ProtectHome = mkDefault true; PrivateTmp = true; PrivateDevices = true; ProtectHostname = true; + ProtectClock = true; ProtectKernelTunables = true; ProtectKernelModules = true; + ProtectKernelLogs = true; ProtectControlGroups = true; RestrictAddressFamilies = [ "AF_UNIX" "AF_INET" "AF_INET6" ]; + RestrictNamespaces = true; LockPersonality = true; MemoryDenyWriteExecute = !(builtins.any (mod: (mod.allowMemoryWriteExecute or false)) cfg.package.modules); RestrictRealtime = true; RestrictSUIDSGID = true; + RemoveIPC = true; PrivateMounts = true; # System Call Filtering SystemCallArchitectures = "native"; + SystemCallFilter = "~@chown @cpu-emulation @debug @keyring @ipc @module @mount @obsolete @privileged @raw-io @reboot @setuid @swap"; }; }; From 0dc08b41385ef5275dcb76fe479c7730c58035d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Hamb=C3=BCchen?= Date: Fri, 30 Apr 2021 18:13:31 +0200 Subject: [PATCH 102/339] wireguard module: generatePrivateKeyFile: Fix chmod security race. Fixes #121288 Until now, the `touch + chmod 600 + write` approach made it possible for an unprivileged local user read the private key file, by opening the file after the touch, before the read permissions are restricted. This was only the case if `generatePrivateKeyFile = true` and the parent directory of `privateKeyFile` already existed and was readable. This commit fixes it by using `umask`, which ensures kernel-side that the `touch` creates the file with the correct permissions atomically. This commit also: * Removes `mkdir --mode 0644 -p "${dirOf values.privateKeyFile}"` because setting permissions `drw-r--r--` ("nobody can enter that dir") is awkward. `drwx------` would perhaps make sense, like for `.ssh`. However, setting the permissions on the private key file is enough, and likely better, because `privateKeyFile` is about that file specifically and no docs suggest that there's something special about its parent dir. * Removes the `chmod 0400 "${values.privateKeyFile}"` because there isn't really a point in removing write access from the owner of the private key. --- nixos/modules/services/networking/wireguard.nix | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/nixos/modules/services/networking/wireguard.nix b/nixos/modules/services/networking/wireguard.nix index 34c86934535..043bce16e54 100644 --- a/nixos/modules/services/networking/wireguard.nix +++ b/nixos/modules/services/networking/wireguard.nix @@ -246,12 +246,15 @@ let }; script = '' - mkdir --mode 0644 -p "${dirOf values.privateKeyFile}" + set -e + + # If the parent dir does not already exist, create it. + # Otherwise, does nothing, keeping existing permisions intact. + mkdir -p --mode 0755 "${dirOf values.privateKeyFile}" + if [ ! -f "${values.privateKeyFile}" ]; then - touch "${values.privateKeyFile}" - chmod 0600 "${values.privateKeyFile}" - wg genkey > "${values.privateKeyFile}" - chmod 0400 "${values.privateKeyFile}" + # Write private key file with atomically-correct permissions. + (set -e; umask 077; wg genkey > "${values.privateKeyFile}") fi ''; }; From a874a8a98b5cd197acf9b2a40b71107db3718f6f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Hamb=C3=BCchen?= Date: Fri, 30 Apr 2021 19:28:04 +0200 Subject: [PATCH 103/339] release notes: Mention wireguard `generatePrivateKeyFile` permission changes --- nixos/doc/manual/release-notes/rl-2105.xml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/nixos/doc/manual/release-notes/rl-2105.xml b/nixos/doc/manual/release-notes/rl-2105.xml index 6e4a9e7114b..4b7d71147b4 100644 --- a/nixos/doc/manual/release-notes/rl-2105.xml +++ b/nixos/doc/manual/release-notes/rl-2105.xml @@ -333,6 +333,17 @@ vim switched to Python 3, dropping all Python 2 support. + + + networking.wireguard.interfaces.<name>.generatePrivateKeyFile, + which is off by default, had a chmod race condition + fixed. As an aside, the parent directory's permissions were widened, + and the key files were made owner-writable. + This only affects newly created keys. + However, if the exact permissions are important for your setup, read + #121294. + + boot.zfs.forceImportAll From e0f1e1f7bf7e27f92c1a0215a7cc19eeed0499dd Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Fri, 30 Apr 2021 01:41:58 +0200 Subject: [PATCH 104/339] nixos/zigbee2mqtt: convert to rfc42 style settings --- nixos/doc/manual/release-notes/rl-2105.xml | 6 +++ nixos/modules/services/misc/zigbee2mqtt.nix | 49 +++++++++++---------- 2 files changed, 32 insertions(+), 23 deletions(-) diff --git a/nixos/doc/manual/release-notes/rl-2105.xml b/nixos/doc/manual/release-notes/rl-2105.xml index 6e4a9e7114b..b45c19fa9af 100644 --- a/nixos/doc/manual/release-notes/rl-2105.xml +++ b/nixos/doc/manual/release-notes/rl-2105.xml @@ -692,6 +692,12 @@ environment.systemPackages = [ skip-kernel-setup true and takes care of setting forwarding and rp_filter sysctls by itself as well as for each interface in services.babeld.interfaces. + + + + The option has been renamed to and + now follows RFC 0042. + diff --git a/nixos/modules/services/misc/zigbee2mqtt.nix b/nixos/modules/services/misc/zigbee2mqtt.nix index cd987eb76c7..63951348172 100644 --- a/nixos/modules/services/misc/zigbee2mqtt.nix +++ b/nixos/modules/services/misc/zigbee2mqtt.nix @@ -5,26 +5,8 @@ with lib; let cfg = config.services.zigbee2mqtt; - configJSON = pkgs.writeText "configuration.json" - (builtins.toJSON (recursiveUpdate defaultConfig cfg.config)); - configFile = pkgs.runCommand "configuration.yaml" { preferLocalBuild = true; } '' - ${pkgs.remarshal}/bin/json2yaml -i ${configJSON} -o $out - ''; - - # the default config contains all required settings, - # so the service starts up without crashing. - defaultConfig = { - homeassistant = false; - permit_join = false; - mqtt = { - base_topic = "zigbee2mqtt"; - server = "mqtt://localhost:1883"; - }; - serial.port = "/dev/ttyACM0"; - # put device configuration into separate file because configuration.yaml - # is copied from the store on startup - devices = "devices.yaml"; - }; + format = pkgs.formats.yaml { }; + configFile = format.generate "zigbee2mqtt.yaml" cfg.settings; in { meta.maintainers = with maintainers; [ sweber ]; @@ -37,7 +19,11 @@ in default = pkgs.zigbee2mqtt.override { dataDir = cfg.dataDir; }; - defaultText = "pkgs.zigbee2mqtt"; + defaultText = literalExample '' + pkgs.zigbee2mqtt { + dataDir = services.zigbee2mqtt.dataDir + } + ''; type = types.package; }; @@ -47,9 +33,9 @@ in type = types.path; }; - config = mkOption { + settings = mkOption { + type = format.type; default = {}; - type = with types; nullOr attrs; example = literalExample '' { homeassistant = config.services.home-assistant.enable; @@ -61,11 +47,28 @@ in ''; description = '' Your configuration.yaml as a Nix attribute set. + Check the documentation + for possible options. ''; }; }; config = mkIf (cfg.enable) { + + # preset config values + services.zigbee2mqtt.settings = { + homeassistant = mkDefault config.services.home-assistant.enable; + permit_join = mkDefault false; + mqtt = { + base_topic = mkDefault "zigbee2mqtt"; + server = mkDefault "mqtt://localhost:1883"; + }; + serial.port = mkDefault "/dev/ttyACM0"; + # reference device configuration, that is kept in a separate file + # to prevent it being overwritten in the units ExecStartPre script + devices = mkDefault "devices.yaml"; + }; + systemd.services.zigbee2mqtt = { description = "Zigbee2mqtt Service"; wantedBy = [ "multi-user.target" ]; From a691549f7e2e466aa3833992de55c72bcee36885 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Sat, 24 Apr 2021 15:40:12 +0200 Subject: [PATCH 105/339] nixos/zigbee2mqtt: harden systemd unit MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This is what is still exposed, and it allows me to control my lamps from within home-assistant. ✗ PrivateNetwork= Service has access to the host's network 0.5 ✗ RestrictAddressFamilies=~AF_(INET|INET6) Service may allocate Internet sockets 0.3 ✗ DeviceAllow= Service has a device ACL with some special devices 0.1 ✗ IPAddressDeny= Service does not define an IP address allow list 0.2 ✗ PrivateDevices= Service potentially has access to hardware devices 0.2 ✗ RootDirectory=/RootImage= Service runs within the host's root directory 0.1 ✗ SupplementaryGroups= Service runs with supplementary groups 0.1 ✗ MemoryDenyWriteExecute= Service may create writable executable memory mappings 0.1 → Overall exposure level for zigbee2mqtt.service: 1.3 OK 🙂 --- nixos/modules/services/misc/zigbee2mqtt.nix | 41 ++++++++++++++++++++- 1 file changed, 39 insertions(+), 2 deletions(-) diff --git a/nixos/modules/services/misc/zigbee2mqtt.nix b/nixos/modules/services/misc/zigbee2mqtt.nix index 63951348172..1f721910c4c 100644 --- a/nixos/modules/services/misc/zigbee2mqtt.nix +++ b/nixos/modules/services/misc/zigbee2mqtt.nix @@ -79,10 +79,48 @@ in User = "zigbee2mqtt"; WorkingDirectory = cfg.dataDir; Restart = "on-failure"; + + # Hardening + CapabilityBoundingSet = ""; + DeviceAllow = [ + config.services.zigbee2mqtt.settings.serial.port + ]; + DevicePolicy = "closed"; + LockPersonality = true; + MemoryDenyWriteExecute = false; + NoNewPrivileges = true; + PrivateDevices = false; # prevents access to /dev/serial, because it is set 0700 root:root + PrivateUsers = true; + PrivateTmp = true; + ProtectClock = true; + ProtectControlGroups = true; + ProtectHome = true; + ProtectHostname = true; + ProtectKernelLogs = true; + ProtectKernelModules = true; + ProtectKernelTunables = true; + ProtectProc = "invisible"; + ProcSubset = "pid"; ProtectSystem = "strict"; ReadWritePaths = cfg.dataDir; - PrivateTmp = true; RemoveIPC = true; + RestrictAddressFamilies = [ + "AF_INET" + "AF_INET6" + ]; + RestrictNamespaces = true; + RestrictRealtime = true; + RestrictSUIDSGID = true; + SupplementaryGroups = [ + "dialout" + ]; + SystemCallArchitectures = "native"; + SystemCallFilter = [ + "@system-service" + "~@privileged" + "~@resources" + ]; + UMask = "0077"; }; preStart = '' cp --no-preserve=mode ${configFile} "${cfg.dataDir}/configuration.yaml" @@ -93,7 +131,6 @@ in home = cfg.dataDir; createHome = true; group = "zigbee2mqtt"; - extraGroups = [ "dialout" ]; uid = config.ids.uids.zigbee2mqtt; }; From f1e7183f69595beabacb785b2f6a3f57ff5f99a9 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Fri, 30 Apr 2021 01:45:57 +0200 Subject: [PATCH 106/339] nixos/tests/zigbee2mqtt: relax DevicePolicy and log systemd-analye security --- nixos/tests/zigbee2mqtt.nix | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/nixos/tests/zigbee2mqtt.nix b/nixos/tests/zigbee2mqtt.nix index b7bb21f9227..98aadbb699b 100644 --- a/nixos/tests/zigbee2mqtt.nix +++ b/nixos/tests/zigbee2mqtt.nix @@ -1,4 +1,4 @@ -import ./make-test-python.nix ({ pkgs, ... }: +import ./make-test-python.nix ({ pkgs, lib, ... }: { machine = { pkgs, ... }: @@ -6,6 +6,8 @@ import ./make-test-python.nix ({ pkgs, ... }: services.zigbee2mqtt = { enable = true; }; + + systemd.services.zigbee2mqtt.serviceConfig.DevicePolicy = lib.mkForce "auto"; }; testScript = '' @@ -14,6 +16,8 @@ import ./make-test-python.nix ({ pkgs, ... }: machine.succeed( "journalctl -eu zigbee2mqtt | grep \"Error: Error while opening serialport 'Error: Error: No such file or directory, cannot open /dev/ttyACM0'\"" ) + + machine.log(machine.succeed("systemd-analyze security zigbee2mqtt.service")) ''; } ) From f5704c862d3150f6703a48674fb924177b5073a0 Mon Sep 17 00:00:00 2001 From: Tobias Mayer Date: Tue, 27 Apr 2021 09:41:41 +0200 Subject: [PATCH 107/339] xsimd: init at 7.5.0 xsimd: format Co-authored-by: Sandro xsimd: fix on macOS xsimd: Use fetchFromGitHub --- pkgs/development/libraries/xsimd/default.nix | 56 ++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 2 files changed, 58 insertions(+) create mode 100644 pkgs/development/libraries/xsimd/default.nix diff --git a/pkgs/development/libraries/xsimd/default.nix b/pkgs/development/libraries/xsimd/default.nix new file mode 100644 index 00000000000..745ee9ee3fc --- /dev/null +++ b/pkgs/development/libraries/xsimd/default.nix @@ -0,0 +1,56 @@ +{ lib, stdenv, fetchFromGitHub, cmake, gtest }: +let + version = "7.5.0"; + + darwin_src = fetchFromGitHub { + owner = "xtensor-stack"; + repo = "xsimd"; + rev = version; + sha256 = "eGAdRSYhf7rbFdm8g1Tz1ZtSVu44yjH/loewblhv9Vs="; + # Avoid requiring apple_sdk. We're doing this here instead of in the patchPhase + # because this source is directly used in arrow-cpp. + # pyconfig.h defines _GNU_SOURCE to 1, so we need to stamp that out too. + # Upstream PR with a better fix: https://github.com/xtensor-stack/xsimd/pull/463 + postFetch = '' + mkdir $out + tar -xf $downloadedFile --directory=$out --strip-components=1 + substituteInPlace $out/include/xsimd/types/xsimd_scalar.hpp \ + --replace 'defined(__APPLE__)' 0 \ + --replace 'defined(_GNU_SOURCE)' 0 + ''; + }; + + src = fetchFromGitHub { + owner = "xtensor-stack"; + repo = "xsimd"; + rev = version; + sha256 = "0c9pq5vz43j99z83w3b9qylfi66mn749k1afpv5cwfxggbxvy63f"; + }; +in stdenv.mkDerivation { + pname = "xsimd"; + inherit version; + src = if stdenv.hostPlatform.isDarwin then darwin_src else src; + + nativeBuildInputs = [ cmake ]; + + cmakeFlags = [ "-DBUILD_TESTS=ON" ]; + + doCheck = true; + checkInputs = [ gtest ]; + checkTarget = "xtest"; + GTEST_FILTER = let + # Upstream Issue: https://github.com/xtensor-stack/xsimd/issues/456 + filteredTests = lib.optionals stdenv.hostPlatform.isDarwin [ + "error_gamma_test/sse_double.gamma" + "error_gamma_test/avx_double.gamma" + ]; + in "-${builtins.concatStringsSep ":" filteredTests}"; + + meta = with lib; { + description = "C++ wrappers for SIMD intrinsics"; + homepage = "https://github.com/xtensor-stack/xsimd"; + license = licenses.bsd3; + maintainers = with maintainers; [ tobim ]; + platforms = platforms.all; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index fcfa0b51d85..74ba272995d 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -18063,6 +18063,8 @@ in xlslib = callPackage ../development/libraries/xlslib { }; + xsimd = callPackage ../development/libraries/xsimd { }; + xvidcore = callPackage ../development/libraries/xvidcore { }; xxHash = callPackage ../development/libraries/xxHash {}; From 2d9f3e32d9bd43b05c284aa5815463cbd790c0e7 Mon Sep 17 00:00:00 2001 From: Tobias Mayer Date: Tue, 27 Apr 2021 09:51:50 +0200 Subject: [PATCH 108/339] arrow-cpp: 3.0.0 -> 4.0.0 arrow-cpp: cleanup Co-authored-by: Sandro --- .../libraries/arrow-cpp/default.nix | 19 +++++++++++++------ .../python-modules/pyarrow/default.nix | 17 +++++++++++------ 2 files changed, 24 insertions(+), 12 deletions(-) diff --git a/pkgs/development/libraries/arrow-cpp/default.nix b/pkgs/development/libraries/arrow-cpp/default.nix index 8a9074ccb90..ac53ae3bbd4 100644 --- a/pkgs/development/libraries/arrow-cpp/default.nix +++ b/pkgs/development/libraries/arrow-cpp/default.nix @@ -1,6 +1,7 @@ -{ stdenv, lib, fetchurl, fetchFromGitHub, fetchpatch, fixDarwinDylibNames +{ stdenv, lib, fetchurl, fetchFromGitHub, fixDarwinDylibNames , autoconf, boost, brotli, cmake, flatbuffers, gflags, glog, gtest, lz4 -, perl, python3, rapidjson, re2, snappy, thrift, utf8proc, which, zlib, zstd +, perl, python3, rapidjson, re2, snappy, thrift, utf8proc, which, xsimd +, zlib, zstd , enableShared ? !stdenv.hostPlatform.isStatic }: @@ -15,18 +16,18 @@ let parquet-testing = fetchFromGitHub { owner = "apache"; repo = "parquet-testing"; - rev = "e31fe1a02c9e9f271e4bfb8002d403c52f1ef8eb"; - sha256 = "02f51dvx8w5mw0bx3hn70hkn55mn1m65kzdps1ifvga9hghpy0sh"; + rev = "ddd898958803cb89b7156c6350584d1cda0fe8de"; + sha256 = "0n16xqlpxn2ryp43w8pppxrbwmllx6sk4hv3ycgikfj57nd3ibc0"; }; in stdenv.mkDerivation rec { pname = "arrow-cpp"; - version = "3.0.0"; + version = "4.0.0"; src = fetchurl { url = "mirror://apache/arrow/arrow-${version}/apache-arrow-${version}.tar.gz"; - sha256 = "0yp2b02wrc3s50zd56fmpz4nhhbihp0zw329v4zizaipwlxwrhkk"; + sha256 = "1bj9jr0pgq9f2nyzqiyj3cl0hcx3c83z2ym6rpdkp59ff2zx0caa"; }; sourceRoot = "apache-arrow-${version}/cpp"; @@ -90,6 +91,10 @@ in stdenv.mkDerivation rec { "-DARROW_VERBOSE_THIRDPARTY_BUILD=ON" "-DARROW_DEPENDENCY_SOURCE=SYSTEM" "-DARROW_DEPENDENCY_USE_SHARED=${if enableShared then "ON" else "OFF"}" + "-DARROW_COMPUTE=ON" + "-DARROW_CSV=ON" + "-DARROW_DATASET=ON" + "-DARROW_JSON=ON" "-DARROW_PLASMA=ON" # Disable Python for static mode because openblas is currently broken there. "-DARROW_PYTHON=${if enableShared then "ON" else "OFF"}" @@ -111,6 +116,8 @@ in stdenv.mkDerivation rec { "-DCMAKE_INSTALL_RPATH=@loader_path/../lib" # needed for tools executables ] ++ lib.optional (!stdenv.isx86_64) "-DARROW_USE_SIMD=OFF"; + ARROW_XSIMD_URL = xsimd.src; + doInstallCheck = true; ARROW_TEST_DATA = if doInstallCheck then "${arrow-testing}/data" else null; diff --git a/pkgs/development/python-modules/pyarrow/default.nix b/pkgs/development/python-modules/pyarrow/default.nix index a38d5df50dd..dabe85b9043 100644 --- a/pkgs/development/python-modules/pyarrow/default.nix +++ b/pkgs/development/python-modules/pyarrow/default.nix @@ -34,12 +34,17 @@ buildPythonPackage rec { export PYARROW_PARALLEL=$NIX_BUILD_CORES ''; - # Deselect a single test because pyarrow prints a 2-line error message where - # only a single line is expected. The additional line of output comes from - # the glog library which is an optional dependency of arrow-cpp that is - # enabled in nixpkgs. - # Upstream Issue: https://issues.apache.org/jira/browse/ARROW-11393 - pytestFlagsArray = [ "--deselect=pyarrow/tests/test_memory.py::test_env_var" ]; + pytestFlagsArray = [ + # Deselect a single test because pyarrow prints a 2-line error message where + # only a single line is expected. The additional line of output comes from + # the glog library which is an optional dependency of arrow-cpp that is + # enabled in nixpkgs. + # Upstream Issue: https://issues.apache.org/jira/browse/ARROW-11393 + "--deselect=pyarrow/tests/test_memory.py::test_env_var" + # Deselect the parquet dataset write test because it erroneously fails to find the + # pyarrow._dataset module. + "--deselect=pyarrow/tests/parquet/test_dataset.py::test_write_to_dataset_filesystem" + ]; dontUseSetuptoolsCheck = true; preCheck = '' From 2b61d9ea01dd69eeb5f113b906e24d0cb2252367 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Fri, 30 Apr 2021 20:05:57 +0200 Subject: [PATCH 109/339] nixos/zigbee2mqtt: create migration path from config to settings --- nixos/modules/services/misc/zigbee2mqtt.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/nixos/modules/services/misc/zigbee2mqtt.nix b/nixos/modules/services/misc/zigbee2mqtt.nix index 1f721910c4c..189e620127d 100644 --- a/nixos/modules/services/misc/zigbee2mqtt.nix +++ b/nixos/modules/services/misc/zigbee2mqtt.nix @@ -7,10 +7,16 @@ let format = pkgs.formats.yaml { }; configFile = format.generate "zigbee2mqtt.yaml" cfg.settings; + in { meta.maintainers = with maintainers; [ sweber ]; + imports = [ + # Remove warning before the 21.11 release + (mkRenamedOptionModule [ "services" "zigbee2mqtt" "config" ] [ "services" "zigbee2mqtt" "settings" ]) + ]; + options.services.zigbee2mqtt = { enable = mkEnableOption "enable zigbee2mqtt service"; From 62de527dc32563e65556669037f5ce81943091bf Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Fri, 30 Apr 2021 20:40:04 +0200 Subject: [PATCH 110/339] nixos/zigbee2mqtt: start maintaing the module --- nixos/modules/services/misc/zigbee2mqtt.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nixos/modules/services/misc/zigbee2mqtt.nix b/nixos/modules/services/misc/zigbee2mqtt.nix index 189e620127d..4458da1346b 100644 --- a/nixos/modules/services/misc/zigbee2mqtt.nix +++ b/nixos/modules/services/misc/zigbee2mqtt.nix @@ -10,7 +10,7 @@ let in { - meta.maintainers = with maintainers; [ sweber ]; + meta.maintainers = with maintainers; [ sweber hexa ]; imports = [ # Remove warning before the 21.11 release From 0123d8c4c29fc807d5c877537d1947da6e57e2bf Mon Sep 17 00:00:00 2001 From: Michael Lingelbach Date: Sat, 16 Jan 2021 10:06:05 -0800 Subject: [PATCH 111/339] matrix-dendrite: init at 0.3.11 --- pkgs/servers/matrix-dendrite/default.nix | 23 +++++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ 2 files changed, 25 insertions(+) create mode 100644 pkgs/servers/matrix-dendrite/default.nix diff --git a/pkgs/servers/matrix-dendrite/default.nix b/pkgs/servers/matrix-dendrite/default.nix new file mode 100644 index 00000000000..708a1e6f65e --- /dev/null +++ b/pkgs/servers/matrix-dendrite/default.nix @@ -0,0 +1,23 @@ +{ lib, buildGoModule, fetchFromGitHub}: + +buildGoModule rec { + pname = "matrix-dendrite"; + version = "0.3.11"; + + src = fetchFromGitHub { + owner = "matrix-org"; + repo = "dendrite"; + rev = "v${version}"; + sha256 = "15xqd4yhsnnpz5n90fbny9i8lp7ki2z3fbpbd8cvsp49347rm483"; + }; + + vendorSha256 = "1l1wydvi0yalas79cvhrqg563cvs57hg9rv6qnkw879r6smb2x1n"; + + meta = with lib; { + homepage = "https://matrix.org"; + description = "Dendrite is a second-generation Matrix homeserver written in Go!"; + license = licenses.asl20; + maintainers = teams.matrix.members; + platforms = platforms.unix; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 80373d50963..e0b35e8d4aa 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -6097,6 +6097,8 @@ in inherit (darwin.apple_sdk.frameworks) Security; }; + matrix-dendrite = callPackage ../servers/matrix-dendrite { }; + /* Python 3.8 is currently broken with matrix-synapse since `python38Packages.bleach` fails (https://github.com/NixOS/nixpkgs/issues/76093) */ matrix-synapse = callPackage ../servers/matrix-synapse { /*python3 = python38;*/ }; From f03f26bf8f59357e54658cf66a0c1a1049579140 Mon Sep 17 00:00:00 2001 From: Michael Lingelbach Date: Sat, 16 Jan 2021 11:09:00 -0800 Subject: [PATCH 112/339] maintainers: add mjlbach to the matrix team --- maintainers/team-list.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/maintainers/team-list.nix b/maintainers/team-list.nix index 1318ac2a586..66cddb966d7 100644 --- a/maintainers/team-list.nix +++ b/maintainers/team-list.nix @@ -135,6 +135,7 @@ with lib.maintainers; { mguentner ekleog ralith + mjlbach ]; scope = "Maintain the ecosystem around Matrix, a decentralized messenger."; }; From fef20991e894dea59f4522b272e57124227492ec Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Fri, 30 Apr 2021 19:37:43 +0000 Subject: [PATCH 113/339] macchina: 0.6.9 -> 0.7.2 --- pkgs/tools/misc/macchina/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/tools/misc/macchina/default.nix b/pkgs/tools/misc/macchina/default.nix index d975e02d5ac..42a83f91df6 100644 --- a/pkgs/tools/misc/macchina/default.nix +++ b/pkgs/tools/misc/macchina/default.nix @@ -2,16 +2,16 @@ rustPlatform.buildRustPackage rec { pname = "macchina"; - version = "0.6.9"; + version = "0.7.2"; src = fetchFromGitHub { owner = "Macchina-CLI"; repo = pname; rev = "v${version}"; - sha256 = "sha256-y23gpYDnYoiTJcNyWKslVenPTXcCrOvxq+0N9PjQN3g="; + sha256 = "sha256-ICiU0emo5lEs6996TwkauuBWb2+Yy6lL+/x7zQgO470="; }; - cargoSha256 = "sha256-jfLj8kLBG6AeeYo421JCl1bMqWwOGiwQgv7AEomtFcY="; + cargoSha256 = "sha256-OfOh0YXeLT/kBuR9SOV7pHa8Z4b6+JvtVwqqwd1hCJY="; nativeBuildInputs = [ installShellFiles ]; From 02c3bd218740e38f1b0f2a2573464903e3873757 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Fri, 30 Apr 2021 19:47:38 +0200 Subject: [PATCH 114/339] nixos/gitea: set umask for secret creation This ensures that newly created secrets will have the permissions `0640`. With this change it's ensured that no sensitive information will be word-readable at any time. Related to #121293. Strictly speaking this is a breaking change since each new directory (including data-files) aren't world-readable anymore, but actually these shouldn't be, unless there's a good reason for it. --- nixos/modules/services/misc/gitea.nix | 72 ++++++++++++++------------- 1 file changed, 37 insertions(+), 35 deletions(-) diff --git a/nixos/modules/services/misc/gitea.nix b/nixos/modules/services/misc/gitea.nix index 434e2d2429b..95369ff7ee4 100644 --- a/nixos/modules/services/misc/gitea.nix +++ b/nixos/modules/services/misc/gitea.nix @@ -477,47 +477,49 @@ in in '' # copy custom configuration and generate a random secret key if needed ${optionalString (cfg.useWizard == false) '' - cp -f ${configFile} ${runConfig} + function gitea_setup { + cp -f ${configFile} ${runConfig} - if [ ! -e ${secretKey} ]; then - ${gitea}/bin/gitea generate secret SECRET_KEY > ${secretKey} - fi + if [ ! -e ${secretKey} ]; then + ${gitea}/bin/gitea generate secret SECRET_KEY > ${secretKey} + fi - # Migrate LFS_JWT_SECRET filename - if [[ -e ${oldLfsJwtSecret} && ! -e ${lfsJwtSecret} ]]; then - mv ${oldLfsJwtSecret} ${lfsJwtSecret} - fi + # Migrate LFS_JWT_SECRET filename + if [[ -e ${oldLfsJwtSecret} && ! -e ${lfsJwtSecret} ]]; then + mv ${oldLfsJwtSecret} ${lfsJwtSecret} + fi - if [ ! -e ${oauth2JwtSecret} ]; then - ${gitea}/bin/gitea generate secret JWT_SECRET > ${oauth2JwtSecret} - fi + if [ ! -e ${oauth2JwtSecret} ]; then + ${gitea}/bin/gitea generate secret JWT_SECRET > ${oauth2JwtSecret} + fi - if [ ! -e ${lfsJwtSecret} ]; then - ${gitea}/bin/gitea generate secret LFS_JWT_SECRET > ${lfsJwtSecret} - fi + if [ ! -e ${lfsJwtSecret} ]; then + ${gitea}/bin/gitea generate secret LFS_JWT_SECRET > ${lfsJwtSecret} + fi - if [ ! -e ${internalToken} ]; then - ${gitea}/bin/gitea generate secret INTERNAL_TOKEN > ${internalToken} - fi + if [ ! -e ${internalToken} ]; then + ${gitea}/bin/gitea generate secret INTERNAL_TOKEN > ${internalToken} + fi - SECRETKEY="$(head -n1 ${secretKey})" - DBPASS="$(head -n1 ${cfg.database.passwordFile})" - OAUTH2JWTSECRET="$(head -n1 ${oauth2JwtSecret})" - LFSJWTSECRET="$(head -n1 ${lfsJwtSecret})" - INTERNALTOKEN="$(head -n1 ${internalToken})" - ${if (cfg.mailerPasswordFile == null) then '' - MAILERPASSWORD="#mailerpass#" - '' else '' - MAILERPASSWORD="$(head -n1 ${cfg.mailerPasswordFile} || :)" - ''} - sed -e "s,#secretkey#,$SECRETKEY,g" \ - -e "s,#dbpass#,$DBPASS,g" \ - -e "s,#oauth2jwtsecret#,$OAUTH2JWTSECRET,g" \ - -e "s,#lfsjwtsecret#,$LFSJWTSECRET,g" \ - -e "s,#internaltoken#,$INTERNALTOKEN,g" \ - -e "s,#mailerpass#,$MAILERPASSWORD,g" \ - -i ${runConfig} - chmod 640 ${runConfig} ${secretKey} ${oauth2JwtSecret} ${lfsJwtSecret} ${internalToken} + SECRETKEY="$(head -n1 ${secretKey})" + DBPASS="$(head -n1 ${cfg.database.passwordFile})" + OAUTH2JWTSECRET="$(head -n1 ${oauth2JwtSecret})" + LFSJWTSECRET="$(head -n1 ${lfsJwtSecret})" + INTERNALTOKEN="$(head -n1 ${internalToken})" + ${if (cfg.mailerPasswordFile == null) then '' + MAILERPASSWORD="#mailerpass#" + '' else '' + MAILERPASSWORD="$(head -n1 ${cfg.mailerPasswordFile} || :)" + ''} + sed -e "s,#secretkey#,$SECRETKEY,g" \ + -e "s,#dbpass#,$DBPASS,g" \ + -e "s,#oauth2jwtsecret#,$OAUTH2JWTSECRET,g" \ + -e "s,#lfsjwtsecret#,$LFSJWTSECRET,g" \ + -e "s,#internaltoken#,$INTERNALTOKEN,g" \ + -e "s,#mailerpass#,$MAILERPASSWORD,g" \ + -i ${runConfig} + } + (umask 027; gitea_setup) ''} # update all hooks' binary paths From d25741e70740256cb180c32eee99a968640b5b67 Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Fri, 30 Apr 2021 19:49:55 +0000 Subject: [PATCH 115/339] logcheck: 1.3.22 -> 1.3.23 --- pkgs/tools/system/logcheck/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/system/logcheck/default.nix b/pkgs/tools/system/logcheck/default.nix index 6fd66b40e15..4c36e529ae9 100644 --- a/pkgs/tools/system/logcheck/default.nix +++ b/pkgs/tools/system/logcheck/default.nix @@ -2,12 +2,12 @@ stdenv.mkDerivation rec { pname = "logcheck"; - version = "1.3.22"; + version = "1.3.23"; _name = "logcheck_${version}"; src = fetchurl { url = "mirror://debian/pool/main/l/logcheck/${_name}.tar.xz"; - sha256 = "sha256-e7XeRNlFsexlVskK2OnLTmNV/ES2xWU+/+AElexV6E4="; + sha256 = "sha256-ohiLpUn/9EEsggdLJxiE/2bSXz/bKkGRboF85naFWyk="; }; prePatch = '' From b6b5fe550d41b4b1c84b50d0cd4d799b10563905 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Fri, 30 Apr 2021 22:01:26 +0200 Subject: [PATCH 116/339] all-cabal-hashes: update to Hackage at 2021-04-30T19:36:25Z --- pkgs/data/misc/hackage/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/data/misc/hackage/default.nix b/pkgs/data/misc/hackage/default.nix index 429470f2bf3..d8599c50b1d 100644 --- a/pkgs/data/misc/hackage/default.nix +++ b/pkgs/data/misc/hackage/default.nix @@ -1,6 +1,6 @@ { fetchurl }: fetchurl { - url = "https://github.com/commercialhaskell/all-cabal-hashes/archive/1aad60ed9679a7597f3fc3515a0fe26fdb896e55.tar.gz"; - sha256 = "0a7lm1ki8rz7m13x4zxlr1nkd93227xgmxbhvsmrj9fa4nc5bvyy"; + url = "https://github.com/commercialhaskell/all-cabal-hashes/archive/d202e2aff06500ede787ed63544476f6d41e9eb7.tar.gz"; + sha256 = "00hmclrhr3a2h9vshsl909g0zgymlamx491lkhwr5kgb3qx9sfh2"; } From ac1ce993bedd4c9c5be73e367dfab9ded7eff76a Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Fri, 30 Apr 2021 22:06:45 +0200 Subject: [PATCH 117/339] vagrant: 2.2.15 -> 2.2.16 ChangeLog: https://github.com/hashicorp/vagrant/blob/v2.2.16/CHANGELOG.md#2216-april-29-2021 --- pkgs/development/tools/vagrant/default.nix | 4 ++-- pkgs/development/tools/vagrant/gemset.nix | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/pkgs/development/tools/vagrant/default.nix b/pkgs/development/tools/vagrant/default.nix index 1ea172ae137..db807bda0a7 100644 --- a/pkgs/development/tools/vagrant/default.nix +++ b/pkgs/development/tools/vagrant/default.nix @@ -5,9 +5,9 @@ let # NOTE: bumping the version and updating the hash is insufficient; # you must use bundix to generate a new gemset.nix in the Vagrant source. - version = "2.2.15"; + version = "2.2.16"; url = "https://github.com/hashicorp/vagrant/archive/v${version}.tar.gz"; - sha256 = "sha256-mMnHJtXLfkZ5O0UF89kHsqBnPg9uQ5l8IYoL5TMMyD8="; + sha256 = "sha256-qzxguxKy2pFv0HMZKEnytdPyJPlf6/NTghIkfEzeKNY="; deps = bundlerEnv rec { name = "${pname}-${version}"; diff --git a/pkgs/development/tools/vagrant/gemset.nix b/pkgs/development/tools/vagrant/gemset.nix index 89555490492..27ebf31c32c 100644 --- a/pkgs/development/tools/vagrant/gemset.nix +++ b/pkgs/development/tools/vagrant/gemset.nix @@ -64,10 +64,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1759s0rz6qgsw86dds1z4jzb3fvizqsk11j5q6z7lc5n404w6i23"; + sha256 = "19g5nvkycnkzqq4mqn1zjznq9adrlv2jz0dr9w10cbn42hhqpiz7"; type = "gem"; }; - version = "0.79.0"; + version = "0.81.0"; }; ffi = { groups = ["default"]; @@ -274,10 +274,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "14mhzrhs2j43vj36i1qq4z29nd860shrslfik015f4kf1jiaqcrw"; + sha256 = "1rmm9ym3qxysrmvgnrad28llnzj6wj9ljir8zaw9myas7m8vhvsq"; type = "gem"; }; - version = "0.2.5"; + version = "0.2.6"; }; rubyntlm = { groups = ["default"]; From 6d365578bfbac27e1e52422aa7a22e68fb447938 Mon Sep 17 00:00:00 2001 From: AndersonTorres Date: Tue, 27 Apr 2021 12:01:46 -0300 Subject: [PATCH 118/339] aegisub: ffmpeg_3 -> ffmpeg And refactor. --- pkgs/applications/video/aegisub/default.nix | 96 +++++++++++---------- 1 file changed, 50 insertions(+), 46 deletions(-) diff --git a/pkgs/applications/video/aegisub/default.nix b/pkgs/applications/video/aegisub/default.nix index d39b5e179a6..e953b96638f 100644 --- a/pkgs/applications/video/aegisub/default.nix +++ b/pkgs/applications/video/aegisub/default.nix @@ -3,22 +3,22 @@ , stdenv , fetchurl , fetchpatch -, libX11 -, wxGTK -, libiconv +, boost +, ffmpeg +, ffms +, fftw , fontconfig , freetype -, libGLU -, libGL -, libass -, fftw -, ffms -, ffmpeg_3 -, pkg-config -, zlib , icu -, boost , intltool +, libGL +, libGLU +, libX11 +, libass +, libiconv +, pkg-config +, wxGTK +, zlib , spellcheckSupport ? true , hunspell ? null @@ -46,71 +46,75 @@ assert alsaSupport -> (alsaLib != null); assert pulseaudioSupport -> (libpulseaudio != null); assert portaudioSupport -> (portaudio != null); -with lib; -stdenv.mkDerivation - rec { +let + inherit (lib) optional; +in +stdenv.mkDerivation rec { pname = "aegisub"; version = "3.2.2"; src = fetchurl { url = "http://ftp.aegisub.org/pub/releases/${pname}-${version}.tar.xz"; - sha256 = "11b83qazc8h0iidyj1rprnnjdivj1lpphvpa08y53n42bfa36pn5"; + hash = "sha256-xV4zlFuC2FE8AupueC8Ncscmrc03B+lbjAAi9hUeaIU="; }; patches = [ # Compatibility with ICU 59 (fetchpatch { url = "https://github.com/Aegisub/Aegisub/commit/dd67db47cb2203e7a14058e52549721f6ff16a49.patch"; - sha256 = "07qqlckiyy64lz8zk1as0vflk9kqnjb340420lp9f0xj93ncssj7"; + sha256 = "sha256-R2rN7EiyA5cuBYIAMpa0eKZJ3QZahfnRp8R4HyejGB8="; }) # Compatbility with Boost 1.69 (fetchpatch { url = "https://github.com/Aegisub/Aegisub/commit/c3c446a8d6abc5127c9432387f50c5ad50012561.patch"; - sha256 = "1n8wmjka480j43b1pr30i665z8hdy6n3wdiz1ls81wyv7ai5yygf"; + sha256 = "sha256-7nlfojrb84A0DT82PqzxDaJfjIlg5BvWIBIgoqasHNk="; }) # Compatbility with make 4.3 (fetchpatch { url = "https://github.com/Aegisub/Aegisub/commit/6bd3f4c26b8fc1f76a8b797fcee11e7611d59a39.patch"; - sha256 = "1s9cc5rikrqb9ivjbag4b8yxcyjsmmmw744394d5xq8xi4k12vxc"; + sha256 = "sha256-rG8RJokd4V4aSYOQw2utWnrWPVrkqSV3TAvnGXNhLOk="; }) ]; nativeBuildInputs = [ - pkg-config intltool + pkg-config ]; - - buildInputs = with lib; [ - libX11 - wxGTK + buildInputs = [ + boost + ffmpeg + ffms + fftw fontconfig freetype - libGLU - libGL - libass - fftw - ffms - ffmpeg_3 - zlib icu - boost + libGL + libGLU + libX11 + libass libiconv + wxGTK + zlib ] - ++ optional spellcheckSupport hunspell - ++ optional automationSupport lua - ++ optional openalSupport openal - ++ optional alsaSupport alsaLib - ++ optional pulseaudioSupport libpulseaudio - ++ optional portaudioSupport portaudio - ; + ++ optional alsaSupport alsaLib + ++ optional automationSupport lua + ++ optional openalSupport openal + ++ optional portaudioSupport portaudio + ++ optional pulseaudioSupport libpulseaudio + ++ optional spellcheckSupport hunspell + ; enableParallelBuilding = true; - hardeningDisable = [ "bindnow" "relro" ]; + hardeningDisable = [ + "bindnow" + "relro" + ]; - # compat with icu61+ https://github.com/unicode-org/icu/blob/release-64-2/icu4c/readme.html#L554 + # compat with icu61+ + # https://github.com/unicode-org/icu/blob/release-64-2/icu4c/readme.html#L554 CXXFLAGS = [ "-DU_USING_ICU_NAMESPACE=1" ]; # this is fixed upstream though not yet in an officially released version, @@ -119,7 +123,8 @@ stdenv.mkDerivation postInstall = "ln -s $out/bin/aegisub-* $out/bin/aegisub"; - meta = { + meta = with lib; { + homepage = "https://github.com/Aegisub/Aegisub"; description = "An advanced subtitle editor"; longDescription = '' Aegisub is a free, cross-platform open source tool for creating and @@ -127,12 +132,11 @@ stdenv.mkDerivation audio, and features many powerful tools for styling them, including a built-in real-time video preview. ''; - homepage = "http://www.aegisub.org/"; - # The Aegisub sources are itself BSD/ISC, - # but they are linked against GPL'd softwares - # - so the resulting program will be GPL + # The Aegisub sources are itself BSD/ISC, but they are linked against GPL'd + # softwares - so the resulting program will be GPL license = licenses.bsd3; maintainers = [ maintainers.AndersonTorres ]; platforms = [ "i686-linux" "x86_64-linux" ]; }; } +# TODO [ AndersonTorres ]: update to fork release From 27525f6c4d2d7851657243f59441b5e7b7855e46 Mon Sep 17 00:00:00 2001 From: AndersonTorres Date: Mon, 26 Apr 2021 21:06:14 -0300 Subject: [PATCH 119/339] kid3: ffmpeg_3 -> ffmpeg And refactor. --- pkgs/applications/audio/kid3/default.nix | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/pkgs/applications/audio/kid3/default.nix b/pkgs/applications/audio/kid3/default.nix index abfc9e7fe1e..7f8015e7143 100644 --- a/pkgs/applications/audio/kid3/default.nix +++ b/pkgs/applications/audio/kid3/default.nix @@ -6,7 +6,7 @@ , cmake , docbook_xml_dtd_45 , docbook_xsl -, ffmpeg_3 +, ffmpeg , flac , id3lib , libogg @@ -31,21 +31,22 @@ stdenv.mkDerivation rec { version = "3.8.6"; src = fetchurl { - url = "mirror://sourceforge/project/kid3/kid3/${version}/${pname}-${version}.tar.gz"; - sha256 = "sha256-ce+MWCJzAnN+u+07f0dvn0jnbqiUlS2RbcM9nAj5bgg="; + url = "https://download.kde.org/stable/${pname}/${version}/${pname}-${version}.tar.xz"; + hash = "sha256-R4gAWlCw8RezhYbw1XDo+wdp797IbLoM3wqHwr+ul6k="; }; nativeBuildInputs = [ cmake + docbook_xml_dtd_45 + docbook_xsl pkg-config + python3 wrapQtAppsHook ]; buildInputs = [ automoc4 chromaprint - docbook_xml_dtd_45 - docbook_xsl - ffmpeg_3 + ffmpeg flac id3lib libogg @@ -53,7 +54,6 @@ stdenv.mkDerivation rec { libxslt mp4v2 phonon - python3 qtbase qtmultimedia qtquickcontrols @@ -71,6 +71,7 @@ stdenv.mkDerivation rec { ''; meta = with lib; { + homepage = "https://kid3.kde.org/"; description = "A simple and powerful audio tag editor"; longDescription = '' If you want to easily tag multiple MP3, Ogg/Vorbis, FLAC, MPC, MP4/AAC, @@ -101,7 +102,6 @@ stdenv.mkDerivation rec { - Edit synchronized lyrics and event timing codes, import and export LRC files. ''; - homepage = "http://kid3.sourceforge.net/"; license = licenses.lgpl2Plus; maintainers = [ maintainers.AndersonTorres ]; platforms = platforms.linux; From 41c71047c0b10ae62553b91f272a2e8531d18062 Mon Sep 17 00:00:00 2001 From: AndersonTorres Date: Mon, 26 Apr 2021 21:13:14 -0300 Subject: [PATCH 120/339] mgba: ffmpeg_3 -> ffmpeg And refactor. --- pkgs/misc/emulators/mgba/default.nix | 65 ++++++++++++++++++++-------- 1 file changed, 46 insertions(+), 19 deletions(-) diff --git a/pkgs/misc/emulators/mgba/default.nix b/pkgs/misc/emulators/mgba/default.nix index be097c31185..fa25609dcdb 100644 --- a/pkgs/misc/emulators/mgba/default.nix +++ b/pkgs/misc/emulators/mgba/default.nix @@ -1,6 +1,22 @@ -{ lib, stdenv, fetchFromGitHub, makeDesktopItem, wrapQtAppsHook, pkg-config -, cmake, epoxy, libzip, libelf, libedit, ffmpeg_3, SDL2, imagemagick -, qtbase, qtmultimedia, qttools, minizip }: +{ lib +, stdenv +, fetchFromGitHub +, SDL2 +, cmake +, epoxy +, ffmpeg +, imagemagick +, libedit +, libelf +, libzip +, makeDesktopItem +, minizip +, pkg-config +, qtbase +, qtmultimedia +, qttools +, wrapQtAppsHook +}: let desktopItem = makeDesktopItem { @@ -21,14 +37,26 @@ in stdenv.mkDerivation rec { owner = "mgba-emu"; repo = "mgba"; rev = version; - sha256 = "sha256-JVauGyHJVfiXVG4Z+Ydh1lRypy5rk9SKeTbeHFNFYJs="; + hash = "sha256-JVauGyHJVfiXVG4Z+Ydh1lRypy5rk9SKeTbeHFNFYJs="; }; - nativeBuildInputs = [ wrapQtAppsHook pkg-config cmake ]; - + nativeBuildInputs = [ + cmake + pkg-config + wrapQtAppsHook + ]; buildInputs = [ - epoxy libzip libelf libedit ffmpeg_3 SDL2 imagemagick - qtbase qtmultimedia qttools minizip + SDL2 + epoxy + ffmpeg + imagemagick + libedit + libelf + libzip + minizip + qtbase + qtmultimedia + qttools ]; postInstall = '' @@ -38,21 +66,19 @@ in stdenv.mkDerivation rec { meta = with lib; { homepage = "https://mgba.io"; description = "A modern GBA emulator with a focus on accuracy"; - longDescription = '' mGBA is a new Game Boy Advance emulator written in C. - The project started in April 2013 with the goal of being fast - enough to run on lower end hardware than other emulators - support, without sacrificing accuracy or portability. Even in - the initial version, games generally play without problems. It - is loosely based on the previous GBA.js emulator, although very - little of GBA.js can still be seen in mGBA. + The project started in April 2013 with the goal of being fast enough to + run on lower end hardware than other emulators support, without + sacrificing accuracy or portability. Even in the initial version, games + generally play without problems. It is loosely based on the previous + GBA.js emulator, although very little of GBA.js can still be seen in mGBA. - Other goals include accurate enough emulation to provide a - development environment for homebrew software, a good workflow - for tool-assist runners, and a modern feature set for emulators - that older emulators may not support. + Other goals include accurate enough emulation to provide a development + environment for homebrew software, a good workflow for tool-assist + runners, and a modern feature set for emulators that older emulators may + not support. ''; license = licenses.mpl20; @@ -60,3 +86,4 @@ in stdenv.mkDerivation rec { platforms = platforms.linux; }; } +# TODO [ AndersonTorres ]: use desktopItem functions From 5495d6d2b2a4508bcaf65f7f3470d82d38bf8031 Mon Sep 17 00:00:00 2001 From: AndersonTorres Date: Mon, 26 Apr 2021 21:14:04 -0300 Subject: [PATCH 121/339] ppsspp: ffmpeg_3 -> ffmpeg And refactor. --- pkgs/misc/emulators/ppsspp/default.nix | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/pkgs/misc/emulators/ppsspp/default.nix b/pkgs/misc/emulators/ppsspp/default.nix index a50bc3eb3ec..4f5b4f7d69b 100644 --- a/pkgs/misc/emulators/ppsspp/default.nix +++ b/pkgs/misc/emulators/ppsspp/default.nix @@ -1,11 +1,11 @@ -{ SDL2 -, cmake +{ mkDerivation , fetchFromGitHub -, ffmpeg_3 +, SDL2 +, cmake +, ffmpeg , glew , lib , libzip -, mkDerivation , pkg-config , python3 , qtbase @@ -23,7 +23,7 @@ mkDerivation rec { repo = pname; rev = "v${version}"; fetchSubmodules = true; - sha256 = "19948jzqpclf8zfzp3k7s580xfjgqcyfwlcp7x7xj8h8lyypzymx"; + sha256 = "sha256-vfp/vacIItlPP5dR7jzDT7oOUNFnjvvdR46yi79EJKU="; }; postPatch = '' @@ -35,7 +35,7 @@ mkDerivation rec { buildInputs = [ SDL2 - ffmpeg_3 + ffmpeg glew libzip qtbase @@ -45,23 +45,25 @@ mkDerivation rec { ]; cmakeFlags = [ + "-DHEADLESS=OFF" "-DOpenGL_GL_PREFERENCE=GLVND" "-DUSE_SYSTEM_FFMPEG=ON" "-DUSE_SYSTEM_LIBZIP=ON" "-DUSE_SYSTEM_SNAPPY=ON" "-DUSING_QT_UI=ON" - "-DHEADLESS=OFF" ]; installPhase = '' + runHook preInstall mkdir -p $out/share/ppsspp install -Dm555 PPSSPPQt $out/bin/ppsspp mv assets $out/share/ppsspp + runHook postInstall ''; meta = with lib; { - description = "A HLE Playstation Portable emulator, written in C++"; homepage = "https://www.ppsspp.org/"; + description = "A HLE Playstation Portable emulator, written in C++"; license = licenses.gpl2Plus; maintainers = with maintainers; [ AndersonTorres ]; platforms = platforms.linux; From 5eefe24c94d451b93b75a2ea89232737777e7d9e Mon Sep 17 00:00:00 2001 From: AndersonTorres Date: Tue, 27 Apr 2021 11:58:55 -0300 Subject: [PATCH 122/339] wxSVG: ffmpeg_3 -> ffmpeg And refactor. --- pkgs/development/libraries/wxSVG/default.nix | 45 ++++++++++++-------- 1 file changed, 27 insertions(+), 18 deletions(-) diff --git a/pkgs/development/libraries/wxSVG/default.nix b/pkgs/development/libraries/wxSVG/default.nix index 5e7f7b71fbe..f83f7e40897 100644 --- a/pkgs/development/libraries/wxSVG/default.nix +++ b/pkgs/development/libraries/wxSVG/default.nix @@ -1,34 +1,43 @@ -{ lib, stdenv, fetchurl -, pkg-config, wxGTK -, ffmpeg_3, libexif -, cairo, pango }: +{ lib +, stdenv +, fetchurl +, cairo +, ffmpeg +, libexif +, pango +, pkg-config +, wxGTK +}: stdenv.mkDerivation rec { - pname = "wxSVG"; - srcName = "wxsvg-${version}"; version = "1.5.22"; src = fetchurl { - url = "mirror://sourceforge/project/wxsvg/wxsvg/${version}/${srcName}.tar.bz2"; - sha256 = "0agmmwg0zlsw1idygvqjpj1nk41akzlbdha0hsdk1k8ckz6niq8d"; + url = "mirror://sourceforge/project/wxsvg/wxsvg/${version}/wxsvg-${version}.tar.bz2"; + hash = "sha256-DeFozZ8MzTCbhkDBtuifKpBpg7wS7+dbDFzTDx6v9Sk="; }; - nativeBuildInputs = [ pkg-config ]; - - propagatedBuildInputs = [ wxGTK ffmpeg_3 libexif ]; - - buildInputs = [ cairo pango ]; + nativeBuildInputs = [ + pkg-config + ]; + buildInputs = [ + cairo + ffmpeg + libexif + pango + wxGTK + ]; meta = with lib; { + homepage = "http://wxsvg.sourceforge.net/"; description = "A SVG manipulation library built with wxWidgets"; longDescription = '' - wxSVG is C++ library to create, manipulate and render - Scalable Vector Graphics (SVG) files with the wxWidgets toolkit. + wxSVG is C++ library to create, manipulate and render Scalable Vector + Graphics (SVG) files with the wxWidgets toolkit. ''; - homepage = "http://wxsvg.sourceforge.net/"; - license = with licenses; gpl2; + license = with licenses; gpl2Plus; maintainers = with maintainers; [ AndersonTorres ]; - platforms = with platforms; linux; + platforms = wxGTK.meta.platforms; }; } From b13d36b973d52157555e7c0be17e023819ddd600 Mon Sep 17 00:00:00 2001 From: AndersonTorres Date: Tue, 27 Apr 2021 10:48:39 -0300 Subject: [PATCH 123/339] xineLib -> xine-lib Rename it to a more intuitive name, and create a corresponding alias. --- pkgs/top-level/aliases.nix | 1 + pkgs/top-level/all-packages.nix | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index eadd95870ca..85ce57e9b31 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -849,6 +849,7 @@ mapAliases ({ xbmcPlain = kodiPlain; # added 2018-04-25 xbmcPlugins = kodiPackages; # added 2018-04-25 kodiPlugins = kodiPackages; # added 2021-03-09; + xineLib = xine-lib; # added 2021-04-27 xmonad_log_applet_gnome3 = xmonad_log_applet; # added 2018-05-01 xmpppy = throw "xmpppy has been removed from nixpkgs as it is unmaintained and python2-only"; pyIRCt = throw "pyIRCt has been removed from nixpkgs as it is unmaintained and python2-only"; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 80373d50963..980cf6585d3 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -18074,7 +18074,7 @@ in xed = callPackage ../development/libraries/xed { }; - xineLib = callPackage ../development/libraries/xine-lib { }; + xine-lib = callPackage ../development/libraries/xine-lib { }; xautolock = callPackage ../misc/screensavers/xautolock { }; From 8518bfeae1c3e0d0b5512fd39c5f74c95ea9ee56 Mon Sep 17 00:00:00 2001 From: AndersonTorres Date: Tue, 27 Apr 2021 11:05:43 -0300 Subject: [PATCH 124/339] xineUI -> xine-ui Rename it to a more intuitive name, and create a corresponding alias. --- pkgs/top-level/aliases.nix | 1 + pkgs/top-level/all-packages.nix | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index 85ce57e9b31..ae9ead3eb66 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -850,6 +850,7 @@ mapAliases ({ xbmcPlugins = kodiPackages; # added 2018-04-25 kodiPlugins = kodiPackages; # added 2021-03-09; xineLib = xine-lib; # added 2021-04-27 + xineUI = xine-ui; # added 2021-04-27 xmonad_log_applet_gnome3 = xmonad_log_applet; # added 2018-05-01 xmpppy = throw "xmpppy has been removed from nixpkgs as it is unmaintained and python2-only"; pyIRCt = throw "pyIRCt has been removed from nixpkgs as it is unmaintained and python2-only"; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 980cf6585d3..d54ae4a179f 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -27138,7 +27138,7 @@ in xfractint = callPackage ../applications/graphics/xfractint {}; - xineUI = callPackage ../applications/video/xine-ui { }; + xine-ui = callPackage ../applications/video/xine-ui { }; xlsxgrep = callPackage ../applications/search/xlsxgrep { }; From ff6c9411f8ecc060b5232a7a0ca92c4811d8adaa Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Fri, 30 Apr 2021 20:45:14 +0000 Subject: [PATCH 125/339] librespeed-cli: 1.0.7 -> 1.0.8 --- pkgs/tools/misc/librespeed-cli/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/tools/misc/librespeed-cli/default.nix b/pkgs/tools/misc/librespeed-cli/default.nix index d2396f0086c..b1ab29d8acb 100644 --- a/pkgs/tools/misc/librespeed-cli/default.nix +++ b/pkgs/tools/misc/librespeed-cli/default.nix @@ -5,16 +5,16 @@ buildGoModule rec { pname = "librespeed-cli"; - version = "1.0.7"; + version = "1.0.8"; src = fetchFromGitHub { owner = "librespeed"; repo = "speedtest-cli"; rev = "v${version}"; - sha256 = "03bhxx33fy1cgp83anm51fm8v079v0az0d0p785dz98jg14vzibl"; + sha256 = "sha256-cbLuAOAGWmYj6xR2AjpwvRXrP3SXfHhjUp5MVLqC0WE="; }; - vendorSha256 = "1kccxmmzbkzbrxypcrz0j1zz51c0q1d5hh25lcpfbkm3498mj02c"; + vendorSha256 = "sha256-psZyyySpY06J+ji+9uHUtX7Ks1hzZC3zINszYP75NfQ="; # Tests have additonal requirements doCheck = false; From f223a67c651a366d382b00a8392010ce92dbd5e8 Mon Sep 17 00:00:00 2001 From: AndersonTorres Date: Fri, 30 Apr 2021 17:50:49 -0300 Subject: [PATCH 126/339] xine-lib: ffmpeg_3 -> ffmpeg And refactor. --- .../libraries/xine-lib/default.nix | 79 +++++++++++++++---- 1 file changed, 65 insertions(+), 14 deletions(-) diff --git a/pkgs/development/libraries/xine-lib/default.nix b/pkgs/development/libraries/xine-lib/default.nix index 97fb83e4e2a..d84023bf9e9 100644 --- a/pkgs/development/libraries/xine-lib/default.nix +++ b/pkgs/development/libraries/xine-lib/default.nix @@ -1,7 +1,27 @@ -{ lib, stdenv, fetchurl, pkg-config, xorg, alsaLib, libGLU, libGL, aalib -, libvorbis, libtheora, speex, zlib, perl, ffmpeg_3 -, flac, libcaca, libpulseaudio, libmng, libcdio, libv4l, vcdimager -, libmpcdec, ncurses +{ lib +, stdenv +, fetchurl +, fetchpatch +, aalib +, alsaLib +, ffmpeg +, flac +, libGL +, libGLU +, libcaca +, libcdio +, libmng +, libmpcdec +, libpulseaudio +, libtheora +, libv4l +, libvorbis +, perl +, pkg-config +, speex +, vcdimager +, xorg +, zlib }: stdenv.mkDerivation rec { @@ -10,27 +30,58 @@ stdenv.mkDerivation rec { src = fetchurl { url = "mirror://sourceforge/xine/xine-lib-${version}.tar.xz"; - sha256 = "01bhq27g5zbgy6y36hl7lajz1nngf68vs4fplxgh98fx20fv4lgg"; + sha256 = "sha256-71GyHRDdoQRfp9cRvZFxz9rwpaKHQjO88W/98o7AcAU="; }; - nativeBuildInputs = [ pkg-config perl ]; - + nativeBuildInputs = [ + pkg-config + perl + ]; buildInputs = [ - xorg.libX11 xorg.libXv xorg.libXinerama xorg.libxcb xorg.libXext - alsaLib libGLU libGL aalib libvorbis libtheora speex perl ffmpeg_3 flac - libcaca libpulseaudio libmng libcdio libv4l vcdimager libmpcdec ncurses + aalib + alsaLib + ffmpeg + flac + libGL + libGLU + libcaca + libcdio + libmng + libmpcdec + libpulseaudio + libtheora + libv4l + libvorbis + perl + speex + vcdimager + zlib + ] ++ (with xorg; [ + libX11 + libXext + libXinerama + libXv + libxcb + ]); + + patches = [ + # splitting path plugin + (fetchpatch { + name = "0001-fix-XINE_PLUGIN_PATH-splitting.patch"; + url = "https://sourceforge.net/p/xine/mailman/attachment/32394053-5e27-6558-f0c9-49e0da0bc3cc%40gmx.de/1/"; + sha256 = "sha256-LJedxrD8JWITDo9pnS9BCmy7wiPTyJyoQ1puX49tOls="; + }) ]; NIX_LDFLAGS = "-lxcb-shm"; - propagatedBuildInputs = [zlib]; - enableParallelBuilding = true; meta = with lib; { - homepage = "http://xine.sourceforge.net/home"; + homepage = "http://www.xinehq.de/"; description = "A high-performance, portable and reusable multimedia playback engine"; - platforms = platforms.linux; license = with licenses; [ gpl2Plus lgpl2Plus ]; + maintainers = with maintainers; [ AndersonTorres ]; + platforms = platforms.linux; }; } From bc5a164ccfe9e1353e8d93639b299e7c386cb82e Mon Sep 17 00:00:00 2001 From: AndersonTorres Date: Tue, 27 Apr 2021 11:23:49 -0300 Subject: [PATCH 127/339] xine-ui: xineLib -> xine-lib And refactor. --- pkgs/applications/video/xine-ui/default.nix | 61 +++++++++++++++------ 1 file changed, 45 insertions(+), 16 deletions(-) diff --git a/pkgs/applications/video/xine-ui/default.nix b/pkgs/applications/video/xine-ui/default.nix index 651597b3a48..0a206befaf1 100644 --- a/pkgs/applications/video/xine-ui/default.nix +++ b/pkgs/applications/video/xine-ui/default.nix @@ -1,34 +1,63 @@ -{lib, stdenv, fetchurl, pkg-config, xorg, libpng, xineLib, readline, ncurses, curl -, lirc, shared-mime-info, libjpeg }: +{ lib +, stdenv +, fetchurl +, curl +, libjpeg +, libpng +, lirc +, ncurses +, pkg-config +, readline +, shared-mime-info +, xine-lib +, xorg +}: stdenv.mkDerivation rec { - name = "xine-ui-0.99.12"; + pname = "xine-ui"; + version = "0.99.12"; src = fetchurl { - url = "mirror://sourceforge/xine/${name}.tar.xz"; + url = "mirror://sourceforge/xine/${pname}-${version}.tar.xz"; sha256 = "10zmmss3hm8gjjyra20qhdc0lb1m6sym2nb2w62bmfk8isfw9gsl"; }; - nativeBuildInputs = [ pkg-config shared-mime-info ]; + nativeBuildInputs = [ + pkg-config + shared-mime-info + ]; + buildInputs = [ + curl + libjpeg + libpng + lirc + ncurses + readline + xine-lib + ] ++ (with xorg; [ + libXext + libXft + libXi + libXinerama + libXtst + libXv + libXxf86vm + xlibsWrapper + xorgproto + ]); - buildInputs = - [ xineLib libpng readline ncurses curl lirc libjpeg - xorg.xlibsWrapper xorg.libXext xorg.libXv xorg.libXxf86vm xorg.libXtst xorg.xorgproto - xorg.libXinerama xorg.libXi xorg.libXft - ]; - - patchPhase = ''sed -e '/curl\/types\.h/d' -i src/xitk/download.c''; + postPatch = "sed -e '/curl\/types\.h/d' -i src/xitk/download.c"; configureFlags = [ "--with-readline=${readline.dev}" ]; LIRC_CFLAGS="-I${lirc}/include"; LIRC_LIBS="-L ${lirc}/lib -llirc_client"; -#NIX_LDFLAGS = "-lXext -lgcc_s"; meta = with lib; { - homepage = "http://www.xine-project.org/"; - description = "Xlib-based interface to Xine, a video player"; + homepage = "http://xinehq.de/"; + description = "Xlib-based frontend for Xine video player"; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ AndersonTorres ]; platforms = platforms.linux; - license = licenses.gpl2; }; } From 06dadfa1a1f7fa08f50b2a9f4c67f8eb4cb7da84 Mon Sep 17 00:00:00 2001 From: AndersonTorres Date: Tue, 27 Apr 2021 11:25:03 -0300 Subject: [PATCH 128/339] xineliboutput: xineLib -> xine-lib --- pkgs/applications/video/vdr/xineliboutput/default.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/applications/video/vdr/xineliboutput/default.nix b/pkgs/applications/video/vdr/xineliboutput/default.nix index 950cb253c12..7660b4eae3d 100644 --- a/pkgs/applications/video/vdr/xineliboutput/default.nix +++ b/pkgs/applications/video/vdr/xineliboutput/default.nix @@ -1,6 +1,6 @@ { stdenv, fetchurl, lib, vdr , libav, libcap, libvdpau -, xineLib, libjpeg, libextractor, libglvnd, libGLU +, xine-lib, libjpeg, libextractor, libglvnd, libGLU , libX11, libXext, libXrender, libXrandr , makeWrapper }: let @@ -34,7 +34,7 @@ postFixup = '' for f in $out/bin/*; do wrapProgram $f \ - --prefix XINE_PLUGIN_PATH ":" "${makeXinePluginPath [ "$out" xineLib ]}" + --prefix XINE_PLUGIN_PATH ":" "${makeXinePluginPath [ "$out" xine-lib ]}" done ''; @@ -53,10 +53,10 @@ libXrender libX11 vdr - xineLib + xine-lib ]; - passthru.requiredXinePlugins = [ xineLib self ]; + passthru.requiredXinePlugins = [ xine-lib self ]; meta = with lib;{ homepage = "https://sourceforge.net/projects/xineliboutput/"; From e44606ff470b29af631f33bdd4a5b63abf34bd1c Mon Sep 17 00:00:00 2001 From: AndersonTorres Date: Tue, 27 Apr 2021 11:45:13 -0300 Subject: [PATCH 129/339] dvdstyler: xineUI -> xine-ui --- pkgs/applications/video/dvdstyler/default.nix | 135 ++++++++++-------- 1 file changed, 79 insertions(+), 56 deletions(-) diff --git a/pkgs/applications/video/dvdstyler/default.nix b/pkgs/applications/video/dvdstyler/default.nix index 6366a222722..83c38b933dd 100644 --- a/pkgs/applications/video/dvdstyler/default.nix +++ b/pkgs/applications/video/dvdstyler/default.nix @@ -1,84 +1,107 @@ -{ lib, stdenv, fetchurl, pkg-config -, flex, bison, gettext -, xineUI, wxSVG +{ lib +, stdenv +, fetchurl +, bison +, cdrtools +, docbook5 +, dvdauthor +, dvdplusrwtools +, flex , fontconfig -, xmlto, docbook5, zip -, cdrtools, dvdauthor, dvdplusrwtools +, gettext +, makeWrapper +, pkg-config +, wxSVG +, xine-ui +, xmlto +, zip + , dvdisasterSupport ? true, dvdisaster ? null , thumbnailSupport ? true, libgnomeui ? null , udevSupport ? true, udev ? null , dbusSupport ? true, dbus ? null -, makeWrapper }: - -with lib; -stdenv.mkDerivation rec { +}: +let + inherit (lib) optionals makeBinPath; +in stdenv.mkDerivation rec { pname = "dvdstyler"; - srcName = "DVDStyler-${version}"; version = "3.1.2"; src = fetchurl { - url = "mirror://sourceforge/project/dvdstyler/dvdstyler/${version}/${srcName}.tar.bz2"; + url = "mirror://sourceforge/project/dvdstyler/dvdstyler/${version}/DVDStyler-${version}.tar.bz2"; sha256 = "03lsblqficcadlzkbyk8agh5rqcfz6y6dqvy9y866wqng3163zq4"; }; - nativeBuildInputs = - [ pkg-config ]; - - packagesToBinPath = - [ cdrtools dvdauthor dvdplusrwtools ]; - - buildInputs = - [ flex bison gettext xineUI - wxSVG fontconfig xmlto - docbook5 zip makeWrapper ] - ++ packagesToBinPath + nativeBuildInputs = [ + pkg-config + ]; + buildInputs = [ + bison + cdrtools + docbook5 + dvdauthor + dvdplusrwtools + flex + fontconfig + gettext + makeWrapper + wxSVG + xine-ui + xmlto + zip + ] ++ optionals dvdisasterSupport [ dvdisaster ] ++ optionals udevSupport [ udev ] ++ optionals dbusSupport [ dbus ] ++ optionals thumbnailSupport [ libgnomeui ]; - binPath = makeBinPath packagesToBinPath; - postInstall = '' - wrapProgram $out/bin/dvdstyler \ - --prefix PATH ":" "${binPath}" - ''; + postInstall = let + binPath = makeBinPath [ + cdrtools + dvdauthor + dvdplusrwtools + ]; in + '' + wrapProgram $out/bin/dvdstyler --prefix PATH ":" "${binPath}" + ''; meta = with lib; { + homepage = "https://www.dvdstyler.org/"; description = "A DVD authoring software"; longDescription = '' - DVDStyler is a cross-platform free DVD authoring application for the - creation of professional-looking DVDs. It allows not only burning of video - files on DVD that can be played practically on any standalone DVD player, - but also creation of individually designed DVD menus. It is Open Source - Software and is completely free. + DVDStyler is a cross-platform free DVD authoring application for the + creation of professional-looking DVDs. It allows not only burning of video + files on DVD that can be played practically on any standalone DVD player, + but also creation of individually designed DVD menus. It is Open Source + Software and is completely free. - Some of its features include: - - create and burn DVD video with interactive menus - - design your own DVD menu or select one from the list of ready to use menu - templates - - create photo slideshow - - add multiple subtitle and audio tracks - - support of AVI, MOV, MP4, MPEG, OGG, WMV and other file formats - - support of MPEG-2, MPEG-4, DivX, Xvid, MP2, MP3, AC-3 and other audio and - video formats - - support of multi-core processor - - use MPEG and VOB files without reencoding - - put files with different audio/video format on one DVD (support of - titleset) - - user-friendly interface with support of drag & drop - - flexible menu creation on the basis of scalable vector graphic - - import of image file for background - - place buttons, text, images and other graphic objects anywhere on the menu - screen - - change the font/color and other parameters of buttons and graphic objects - - scale any button or graphic object - - copy any menu object or whole menu - - customize navigation using DVD scripting + Some of its features include: + + - create and burn DVD video with interactive menus + - design your own DVD menu or select one from the list of ready to use menu + templates + - create photo slideshow + - add multiple subtitle and audio tracks + - support of AVI, MOV, MP4, MPEG, OGG, WMV and other file formats + - support of MPEG-2, MPEG-4, DivX, Xvid, MP2, MP3, AC-3 and other audio and + video formats + - support of multi-core processor + - use MPEG and VOB files without reencoding + - put files with different audio/video format on one DVD (support of + titleset) + - user-friendly interface with support of drag & drop + - flexible menu creation on the basis of scalable vector graphic + - import of image file for background + - place buttons, text, images and other graphic objects anywhere on the menu + screen + - change the font/color and other parameters of buttons and graphic objects + - scale any button or graphic object + - copy any menu object or whole menu + - customize navigation using DVD scripting ''; - homepage = "http://www.dvdstyler.org/"; - license = with licenses; gpl2; + license = licenses.gpl2Plus; maintainers = with maintainers; [ AndersonTorres ]; platforms = with platforms; linux; }; From df26e9a55dc22931bbad3ff81df03597059a1e35 Mon Sep 17 00:00:00 2001 From: AndersonTorres Date: Tue, 27 Apr 2021 11:46:16 -0300 Subject: [PATCH 130/339] eaglemode: xineLib -> xine-lib --- pkgs/applications/misc/eaglemode/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/misc/eaglemode/default.nix b/pkgs/applications/misc/eaglemode/default.nix index d411ce7ae81..65a74c4aca4 100644 --- a/pkgs/applications/misc/eaglemode/default.nix +++ b/pkgs/applications/misc/eaglemode/default.nix @@ -1,5 +1,5 @@ { lib, stdenv, fetchurl, perl, libX11, libXinerama, libjpeg, libpng, libtiff, pkg-config, -librsvg, glib, gtk2, libXext, libXxf86vm, poppler, xineLib, ghostscript, makeWrapper }: +librsvg, glib, gtk2, libXext, libXxf86vm, poppler, xine-lib, ghostscript, makeWrapper }: stdenv.mkDerivation rec { pname = "eaglemode"; @@ -12,11 +12,11 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ pkg-config ]; buildInputs = [ perl libX11 libXinerama libjpeg libpng libtiff - librsvg glib gtk2 libXxf86vm libXext poppler xineLib ghostscript makeWrapper ]; + librsvg glib gtk2 libXxf86vm libXext poppler xine-lib ghostscript makeWrapper ]; # The program tries to dlopen Xxf86vm, Xext and Xinerama, so we use the # trick on NIX_LDFLAGS and dontPatchELF to make it find them. - # I use 'yes y' to skip a build error linking with xineLib, + # I use 'yes y' to skip a build error linking with xine-lib, # because xine stopped exporting "_x_vo_new_port" # https://sourceforge.net/projects/eaglemode/forums/forum/808824/topic/5115261 buildPhase = '' From 72dacfd325b2e5bb7ec042403459e6458e8fa63b Mon Sep 17 00:00:00 2001 From: AndersonTorres Date: Tue, 27 Apr 2021 11:47:06 -0300 Subject: [PATCH 131/339] quodlibet: xineLib -> xine-lib --- pkgs/applications/audio/quodlibet/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/audio/quodlibet/default.nix b/pkgs/applications/audio/quodlibet/default.nix index 2110a0deb24..738bf161cd5 100644 --- a/pkgs/applications/audio/quodlibet/default.nix +++ b/pkgs/applications/audio/quodlibet/default.nix @@ -1,7 +1,7 @@ { lib, stdenv, fetchurl, python3, wrapGAppsHook, gettext, libsoup, gnome3, gtk3, gdk-pixbuf, librsvg, tag ? "", xvfb_run, dbus, glibcLocales, glib, glib-networking, gobject-introspection, hicolor-icon-theme, gst_all_1, withGstPlugins ? true, - xineBackend ? false, xineLib, + xineBackend ? false, xine-lib, withDbusPython ? false, withPyInotify ? false, withMusicBrainzNgs ? false, withPahoMqtt ? false, webkitgtk ? null, keybinder3 ? null, gtksourceview ? null, libmodplug ? null, kakasi ? null, libappindicator-gtk3 ? null }: @@ -23,7 +23,7 @@ python3.pkgs.buildPythonApplication rec { checkInputs = [ gdk-pixbuf hicolor-icon-theme ] ++ (with python3.pkgs; [ pytest pytest_xdist polib xvfb_run dbus.daemon glibcLocales ]); buildInputs = [ gnome3.adwaita-icon-theme libsoup glib glib-networking gtk3 webkitgtk gdk-pixbuf keybinder3 gtksourceview libmodplug libappindicator-gtk3 kakasi gobject-introspection ] - ++ (if xineBackend then [ xineLib ] else with gst_all_1; + ++ (if xineBackend then [ xine-lib ] else with gst_all_1; [ gstreamer gst-plugins-base ] ++ optionals withGstPlugins [ gst-plugins-good gst-plugins-ugly gst-plugins-bad ]); propagatedBuildInputs = with python3.pkgs; [ pygobject3 pycairo mutagen gst-python feedparser ] From 307c0e2a3be2df853ea1d6b413553d56b5bc35ab Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Fri, 30 Apr 2021 21:00:12 +0000 Subject: [PATCH 132/339] maddy: 0.4.3 -> 0.4.4 --- pkgs/servers/maddy/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/servers/maddy/default.nix b/pkgs/servers/maddy/default.nix index ac3c075717c..1a84cb98732 100644 --- a/pkgs/servers/maddy/default.nix +++ b/pkgs/servers/maddy/default.nix @@ -2,16 +2,16 @@ buildGoModule rec { pname = "maddy"; - version = "0.4.3"; + version = "0.4.4"; src = fetchFromGitHub { owner = "foxcpp"; repo = "maddy"; rev = "v${version}"; - sha256 = "1mi607hl4c9y9xxv5lywh9fvpybprlrgqa7617km9rssbgk4x1v7"; + sha256 = "sha256-IhVEb6tjfbWqhQdw1UYxy4I8my2L+eSOCd/BEz0qis0="; }; - vendorSha256 = "16laf864789yiakvqs6dy3sgnnp2hcdbyzif492wcijqlir2swv7"; + vendorSha256 = "sha256-FrKWlZ3pQB+oo+rfHA8AgGRAr7YRUcb064bZGTDSKkk="; buildFlagsArray = [ "-ldflags=-s -w -X github.com/foxcpp/maddy.Version=${version}" ]; From 640253ce2e7e9803908149a0ef2ffe574095930c Mon Sep 17 00:00:00 2001 From: Malte Brandy Date: Fri, 30 Apr 2021 23:22:00 +0200 Subject: [PATCH 133/339] nix-output-monitor: 1.0.3.0 -> 1.0.3.1 --- pkgs/tools/nix/nix-output-monitor/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/nix/nix-output-monitor/default.nix b/pkgs/tools/nix/nix-output-monitor/default.nix index 46020233ff1..a9c83305df3 100644 --- a/pkgs/tools/nix/nix-output-monitor/default.nix +++ b/pkgs/tools/nix/nix-output-monitor/default.nix @@ -5,11 +5,11 @@ }: mkDerivation rec { pname = "nix-output-monitor"; - version = "1.0.3.0"; + version = "1.0.3.1"; src = fetchFromGitHub { owner = "maralorn"; repo = "nix-output-monitor"; - sha256 = "1gidg03cwz8ss370bgz4a2g9ldj1lap5ws7dmfg6vigpx8mxigpb"; + sha256 = "1kkf6cqq8aba8vmfcww30ah9j44bwakanyfdb6595vmaq5hrsq92"; rev = "v${version}"; }; isLibrary = true; From 490fa1e891fde1aa41474c4c6e29369d9da63097 Mon Sep 17 00:00:00 2001 From: V Date: Fri, 30 Apr 2021 20:05:26 +0200 Subject: [PATCH 134/339] steamPackages.steam-runtime: 0.20201203.1 -> 0.20210317.0 --- pkgs/games/steam/runtime.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/games/steam/runtime.nix b/pkgs/games/steam/runtime.nix index 70c6abe8db4..b501df598ef 100644 --- a/pkgs/games/steam/runtime.nix +++ b/pkgs/games/steam/runtime.nix @@ -8,11 +8,11 @@ stdenv.mkDerivation rec { pname = "steam-runtime"; # from https://repo.steampowered.com/steamrt-images-scout/snapshots/ - version = "0.20201203.1"; + version = "0.20210317.0"; src = fetchurl { url = "https://repo.steampowered.com/steamrt-images-scout/snapshots/${version}/steam-runtime.tar.xz"; - sha256 = "sha256-hOHfMi0x3K82XM3m/JmGYbVk5RvuHG+m275eAC0MoQc="; + sha256 = "061z2r33n2017prmhdxm82cly3qp3bma2q70pqs57adl65yvg7vw"; name = "scout-runtime-${version}.tar.gz"; }; From eae41465ad65893723249e72b1af854c599bac45 Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Fri, 30 Apr 2021 21:43:19 +0000 Subject: [PATCH 135/339] lldpd: 1.0.8 -> 1.0.10 --- pkgs/tools/networking/lldpd/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/networking/lldpd/default.nix b/pkgs/tools/networking/lldpd/default.nix index f34b43f3c32..f2641235a19 100644 --- a/pkgs/tools/networking/lldpd/default.nix +++ b/pkgs/tools/networking/lldpd/default.nix @@ -4,11 +4,11 @@ stdenv.mkDerivation rec { pname = "lldpd"; - version = "1.0.8"; + version = "1.0.10"; src = fetchurl { url = "https://media.luffy.cx/files/lldpd/${pname}-${version}.tar.gz"; - sha256 = "sha256-mNIA524w9iYsSkSTFIwYQIJ4mDKRRqV6NPjw+SjKPe8="; + sha256 = "sha256-RFstdgN+8+vQPUDh/B8p7wgQL6o6Cf6Ea5Unl8i8dyI="; }; configureFlags = [ From 7cc0cf9077122f47fb6d90fd6a412b714618193b Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Sat, 1 May 2021 00:19:30 +0200 Subject: [PATCH 136/339] logcheck: update license to gpl2Plus --- pkgs/tools/system/logcheck/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/tools/system/logcheck/default.nix b/pkgs/tools/system/logcheck/default.nix index 4c36e529ae9..0f17b07d848 100644 --- a/pkgs/tools/system/logcheck/default.nix +++ b/pkgs/tools/system/logcheck/default.nix @@ -42,7 +42,7 @@ stdenv.mkDerivation rec { Logcheck was part of the Abacus Project of security tools, but this version has been rewritten. ''; homepage = "https://salsa.debian.org/debian/logcheck"; - license = licenses.gpl2; + license = licenses.gpl2plus; maintainers = [ maintainers.bluescreen303 ]; }; } From cd5f229e4f1da480b876946938147a025de104a2 Mon Sep 17 00:00:00 2001 From: zowoq <59103226+zowoq@users.noreply.github.com> Date: Sat, 1 May 2021 09:06:50 +1000 Subject: [PATCH 137/339] logcheck: fix license --- pkgs/tools/system/logcheck/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/tools/system/logcheck/default.nix b/pkgs/tools/system/logcheck/default.nix index 0f17b07d848..dea241e11ac 100644 --- a/pkgs/tools/system/logcheck/default.nix +++ b/pkgs/tools/system/logcheck/default.nix @@ -42,7 +42,7 @@ stdenv.mkDerivation rec { Logcheck was part of the Abacus Project of security tools, but this version has been rewritten. ''; homepage = "https://salsa.debian.org/debian/logcheck"; - license = licenses.gpl2plus; + license = licenses.gpl2Plus; maintainers = [ maintainers.bluescreen303 ]; }; } From cbdce8300816b5901c8eb850bd18dd82c241cee9 Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Sat, 1 May 2021 00:36:41 +0000 Subject: [PATCH 138/339] agi: 1.1.0-dev-20210423 -> 1.1.0-dev-20210430 --- pkgs/tools/graphics/agi/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/graphics/agi/default.nix b/pkgs/tools/graphics/agi/default.nix index 5fb1881eff9..4cab99d69fa 100644 --- a/pkgs/tools/graphics/agi/default.nix +++ b/pkgs/tools/graphics/agi/default.nix @@ -14,11 +14,11 @@ stdenv.mkDerivation rec { pname = "agi"; - version = "1.1.0-dev-20210423"; + version = "1.1.0-dev-20210430"; src = fetchzip { url = "https://github.com/google/agi-dev-releases/releases/download/v${version}/agi-${version}-linux.zip"; - sha256 = "sha256-49ZKqG+CiQkdoBMLdYrN5fMnJH5TtXdUknQLQB2UG04="; + sha256 = "sha256-Sb2N3GPS+A55O39/kqua7M18O1F76zz6sNFghSFRBmk="; }; nativeBuildInputs = [ From bd722f1105462dab55246d179711e917b72477d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alu=C3=ADsio=20Augusto=20Silva=20Gon=C3=A7alves?= Date: Fri, 30 Apr 2021 20:58:58 -0300 Subject: [PATCH 139/339] haunt: enable tests and verify that the binary works --- pkgs/applications/misc/haunt/default.nix | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/pkgs/applications/misc/haunt/default.nix b/pkgs/applications/misc/haunt/default.nix index 124e441a5af..59940392525 100644 --- a/pkgs/applications/misc/haunt/default.nix +++ b/pkgs/applications/misc/haunt/default.nix @@ -27,12 +27,21 @@ stdenv.mkDerivation rec { guile-reader ]; + doCheck = true; + postInstall = '' wrapProgram $out/bin/haunt \ --prefix GUILE_LOAD_PATH : "$out/share/guile/site:${guile-commonmark}/share/guile/site:${guile-reader}/share/guile/site" \ --prefix GUILE_LOAD_COMPILED_PATH : "$out/share/guile/site:${guile-commonmark}/share/guile/site:${guile-reader}/share/guile/site" ''; + doInstallCheck = true; + installCheckPhase = '' + runHook preInstallCheck + $out/bin/haunt --version + runHook postInstallCheck + ''; + meta = with lib; { homepage = "https://dthompson.us/projects/haunt.html"; description = "Guile-based static site generator"; @@ -53,7 +62,7 @@ stdenv.mkDerivation rec { to do things that aren't provided out-of-the-box. ''; license = licenses.gpl3Plus; - maintainers = with maintainers; [ AndersonTorres ]; + maintainers = with maintainers; [ AndersonTorres AluisioASG ]; platforms = guile.meta.platforms; }; } From 855b2b96bbcc004ca9a016ccb7e89a5ba87af510 Mon Sep 17 00:00:00 2001 From: happysalada Date: Sat, 1 May 2021 08:45:54 +0900 Subject: [PATCH 140/339] broot: 1.3.0 -> 1.3.1 --- pkgs/tools/misc/broot/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/tools/misc/broot/default.nix b/pkgs/tools/misc/broot/default.nix index b89dbb2b907..a5b62e32521 100644 --- a/pkgs/tools/misc/broot/default.nix +++ b/pkgs/tools/misc/broot/default.nix @@ -12,14 +12,14 @@ rustPlatform.buildRustPackage rec { pname = "broot"; - version = "1.3.0"; + version = "1.3.1"; src = fetchCrate { inherit pname version; - sha256 = "sha256-2FF/oB341PPGfSlXpLEs4mswjVk+3ty/jNsVJKu+fhs="; + sha256 = "sha256-Iz9pXvgPIGUnfbnvk5kYAqlrMlz3I2kLszPe8GwwHVk="; }; - cargoHash = "sha256-+UT9cz8OPA1jpFv7HafabxJ3NmLl57K1ODydfcV1FUM"; + cargoHash = "sha256-eECAaTUgqasuDhLSk8p/CWSQmV8yV30UoMy3GZCRbGE="; nativeBuildInputs = [ makeWrapper From bd64a6221f18a24c79b879c0441f4420f0f2d47e Mon Sep 17 00:00:00 2001 From: happysalada Date: Sat, 1 May 2021 09:18:44 +0900 Subject: [PATCH 141/339] broot: remove unused argument --- pkgs/tools/misc/broot/default.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/pkgs/tools/misc/broot/default.nix b/pkgs/tools/misc/broot/default.nix index a5b62e32521..0fa7841074a 100644 --- a/pkgs/tools/misc/broot/default.nix +++ b/pkgs/tools/misc/broot/default.nix @@ -4,7 +4,6 @@ , fetchCrate , installShellFiles , makeWrapper -, coreutils , libiconv , zlib , Security From 2e0ddf4c669fd40d0002c8ade5f70e5a07bc89a6 Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Sat, 1 May 2021 01:40:41 +0000 Subject: [PATCH 142/339] buildkit: 0.8.2 -> 0.8.3 --- pkgs/development/tools/buildkit/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/tools/buildkit/default.nix b/pkgs/development/tools/buildkit/default.nix index 806eb7c5b0e..f6eb7aef1ed 100644 --- a/pkgs/development/tools/buildkit/default.nix +++ b/pkgs/development/tools/buildkit/default.nix @@ -2,7 +2,7 @@ buildGoPackage rec { pname = "buildkit"; - version = "0.8.2"; + version = "0.8.3"; goPackagePath = "github.com/moby/buildkit"; subPackages = [ "cmd/buildctl" ] ++ lib.optionals stdenv.isLinux [ "cmd/buildkitd" ]; @@ -11,7 +11,7 @@ buildGoPackage rec { owner = "moby"; repo = "buildkit"; rev = "v${version}"; - sha256 = "sha256-aPVroqpR4ynfHhjJ6jJX6y5cdgmoUny3A8GBhnooOeo="; + sha256 = "sha256-dHtGxugTtxHcfZHMIHinlcH05ss7zT/+Ll1WboAhw9o="; }; buildFlagsArray = [ "-ldflags=-s -w -X ${goPackagePath}/version.Version=${version} -X ${goPackagePath}/version.Revision=${src.rev}" ]; From 03af7d6ac409418db62e76abdb770b325587423e Mon Sep 17 00:00:00 2001 From: Alexei Robyn Date: Sat, 1 May 2021 11:47:23 +1000 Subject: [PATCH 143/339] dante: 1.4.2 -> 1.4.3 --- pkgs/servers/dante/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/servers/dante/default.nix b/pkgs/servers/dante/default.nix index 99bde454659..1ed03f0e3d5 100644 --- a/pkgs/servers/dante/default.nix +++ b/pkgs/servers/dante/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "dante"; - version = "1.4.2"; + version = "1.4.3"; src = fetchurl { url = "https://www.inet.no/dante/files/${pname}-${version}.tar.gz"; - sha256 = "1bfafnm445afrmyxvvcl8ckq0p59yzykmr3y8qvryzrscd85g8ms"; + sha256 = "0pbahkj43rx7rmv2x40mf5p3g3x9d6i2sz7pzglarf54w5ghd2j1"; }; buildInputs = [ pam libkrb5 cyrus_sasl miniupnpc ]; From a5c7cd5779954d345035ef152e99a82bd7691d6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alu=C3=ADsio=20Augusto=20Silva=20Gon=C3=A7alves?= Date: Fri, 30 Apr 2021 21:09:05 -0300 Subject: [PATCH 144/339] haunt: fix Guile load paths Guile's version is part of the path and the installed files won't be found if we don't include it. Also, we can rely on the paths of build inputs being added to $GUILE_LOAD_PATH and $GUILE_LOAD_COMPILED_PATH by Guile's setup hook. --- pkgs/applications/misc/haunt/default.nix | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/pkgs/applications/misc/haunt/default.nix b/pkgs/applications/misc/haunt/default.nix index 59940392525..87656d730b2 100644 --- a/pkgs/applications/misc/haunt/default.nix +++ b/pkgs/applications/misc/haunt/default.nix @@ -29,11 +29,15 @@ stdenv.mkDerivation rec { doCheck = true; - postInstall = '' - wrapProgram $out/bin/haunt \ - --prefix GUILE_LOAD_PATH : "$out/share/guile/site:${guile-commonmark}/share/guile/site:${guile-reader}/share/guile/site" \ - --prefix GUILE_LOAD_COMPILED_PATH : "$out/share/guile/site:${guile-commonmark}/share/guile/site:${guile-reader}/share/guile/site" - ''; + postInstall = + let + guileVersion = lib.versions.majorMinor guile.version; + in + '' + wrapProgram $out/bin/haunt \ + --prefix GUILE_LOAD_PATH : "$out/share/guile/site/${guileVersion}:$GUILE_LOAD_PATH" \ + --prefix GUILE_LOAD_COMPILED_PATH : "$out/lib/guile/${guileVersion}/site-ccache:$GUILE_LOAD_COMPILED_PATH" + ''; doInstallCheck = true; installCheckPhase = '' From 13033e17150e49844b3b8c346e001d6fa7462521 Mon Sep 17 00:00:00 2001 From: Alyssa Ross Date: Sat, 1 May 2021 01:47:13 +0000 Subject: [PATCH 145/339] cloud-hypervisor: 0.14.1 -> 15.0 --- .../virtualization/cloud-hypervisor/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/virtualization/cloud-hypervisor/default.nix b/pkgs/applications/virtualization/cloud-hypervisor/default.nix index 5a12be3afa6..d04c0230c97 100644 --- a/pkgs/applications/virtualization/cloud-hypervisor/default.nix +++ b/pkgs/applications/virtualization/cloud-hypervisor/default.nix @@ -2,19 +2,19 @@ rustPlatform.buildRustPackage rec { pname = "cloud-hypervisor"; - version = "0.14.1"; + version = "15.0"; src = fetchFromGitHub { owner = "cloud-hypervisor"; repo = pname; rev = "v${version}"; - sha256 = "0pnfg6dzpz8v40cwg3dmlj52x8pblavv7mkczar814dwbk01y7vr"; + sha256 = "14s80vs7j5fxzl2a6k44fjlbk8i13lln28i37xaa6yk1q3d9jwic"; }; nativeBuildInputs = [ pkg-config ]; buildInputs = [ openssl ] ++ lib.optional stdenv.isAarch64 dtc; - cargoSha256 = "0dbjds40znly11i0ssfv66w82ynxp00ixw1349m5ln9i9ms94sr4"; + cargoSha256 = "02q4k7j1hyibsiwsbqa5bd4vr3fs1vngnnhqa4kzvih73bkagvk7"; meta = with lib; { homepage = "https://github.com/cloud-hypervisor/cloud-hypervisor"; From 36a44c4e8d07bee733ea1e9fe336854164ba13f4 Mon Sep 17 00:00:00 2001 From: Colin L Rice Date: Wed, 30 Dec 2020 00:12:25 -0500 Subject: [PATCH 146/339] credhub-cli: fix build under go1.15 I've sent this upstream at https://github.com/cloudfoundry-incubator/credhub-cli/pull/107 But this should fix the build so it doesn't require go1.14 --- pkgs/tools/admin/credhub-cli/default.nix | 10 +++++++++- pkgs/top-level/all-packages.nix | 4 +--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/pkgs/tools/admin/credhub-cli/default.nix b/pkgs/tools/admin/credhub-cli/default.nix index 55af1679d7a..0c71850f849 100644 --- a/pkgs/tools/admin/credhub-cli/default.nix +++ b/pkgs/tools/admin/credhub-cli/default.nix @@ -1,4 +1,4 @@ -{ lib, buildGoModule, fetchFromGitHub }: +{ lib, buildGoModule, fetchFromGitHub, fetchpatch }: buildGoModule rec { pname = "credhub-cli"; @@ -11,6 +11,14 @@ buildGoModule rec { sha256 = "1j0i0b79ph2i52cj0qln8wvp6gwhl73akkn026h27vvmlw9sndc2"; }; + patches = [ + # Fix test with Go 1.15 + (fetchpatch { + url = "https://github.com/cloudfoundry-incubator/credhub-cli/commit/4bd1accd513dc5e163e155c4b428878ca0bcedbc.patch"; + sha256 = "180n3q3d19aw02q7xsn7dxck18jgndz5garj2mb056cwa7mmhw0j"; + }) + ]; + # these tests require network access that we're not going to give them postPatch = '' rm commands/api_test.go diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index cd038c72939..5169f977a56 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2196,9 +2196,7 @@ in cppclean = callPackage ../development/tools/cppclean {}; - credhub-cli = callPackage ../tools/admin/credhub-cli { - buildGoModule = buildGo114Module; - }; + credhub-cli = callPackage ../tools/admin/credhub-cli {}; crex = callPackage ../tools/misc/crex { }; From bef4bda8dd1655ec76849059c5dbd7c5de6eaebe Mon Sep 17 00:00:00 2001 From: Colin L Rice Date: Wed, 1 Jul 2020 12:01:48 -0400 Subject: [PATCH 147/339] sd-image: Add option to control sd image expansion on boot. This is supeer useful to allow the normal sd-image code to be used by someone who wants to setup multiple partitions with a sd-image. Currently I'm manually copying the sd-image file and modifying it instead. --- nixos/modules/installer/sd-card/sd-image.nix | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/nixos/modules/installer/sd-card/sd-image.nix b/nixos/modules/installer/sd-card/sd-image.nix index b811ae07eb0..45c8c67169b 100644 --- a/nixos/modules/installer/sd-card/sd-image.nix +++ b/nixos/modules/installer/sd-card/sd-image.nix @@ -126,6 +126,13 @@ in ''; }; + expandOnBoot = mkOption { + type = types.bool; + default = true; + description = '' + Whether to configure the sd image to expand it's partition on boot. + ''; + }; }; config = { @@ -215,7 +222,7 @@ in ''; }) {}; - boot.postBootCommands = '' + boot.postBootCommands = lib.mkIf config.sdImage.expandOnBoot '' # On the first boot do some maintenance tasks if [ -f /nix-path-registration ]; then set -euo pipefail From 87c3b7e767b18492fa8b3641b9c5d14dd2f38a8c Mon Sep 17 00:00:00 2001 From: Luke Granger-Brown Date: Sat, 1 May 2021 02:19:42 +0000 Subject: [PATCH 148/339] amazonImage: make statically sized again For reasons we haven't been able to work out, the aarch64 EC2 image now regularly exceeds the output image size on hydra.nixos.org. As a workaround, set this back to being statically sized again. The other images do seem to build - it's just a case of the EC2 image now being too large (occasionally non-determinstically). --- nixos/maintainers/scripts/ec2/amazon-image.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nixos/maintainers/scripts/ec2/amazon-image.nix b/nixos/maintainers/scripts/ec2/amazon-image.nix index 653744986d1..677aff4421e 100644 --- a/nixos/maintainers/scripts/ec2/amazon-image.nix +++ b/nixos/maintainers/scripts/ec2/amazon-image.nix @@ -41,7 +41,7 @@ in { sizeMB = mkOption { type = with types; either (enum [ "auto" ]) int; - default = "auto"; + default = if config.ec2.hvm then 2048 else 8192; example = 8192; description = "The size in MB of the image"; }; From 0c73f4e985f0339ce0fec02e73f55149c4862261 Mon Sep 17 00:00:00 2001 From: Otavio Salvador Date: Fri, 30 Apr 2021 23:17:21 -0300 Subject: [PATCH 149/339] cargo-rr: init at 0.1.3 Signed-off-by: Otavio Salvador --- .../tools/rust/cargo-rr/default.nix | 40 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 1 + 2 files changed, 41 insertions(+) create mode 100644 pkgs/development/tools/rust/cargo-rr/default.nix diff --git a/pkgs/development/tools/rust/cargo-rr/default.nix b/pkgs/development/tools/rust/cargo-rr/default.nix new file mode 100644 index 00000000000..47d58e9b92a --- /dev/null +++ b/pkgs/development/tools/rust/cargo-rr/default.nix @@ -0,0 +1,40 @@ +{ lib +, rustPlatform +, fetchFromGitHub +, nix-update-script +, makeWrapper +, rr +}: + +rustPlatform.buildRustPackage rec { + pname = "cargo-rr"; + version = "0.1.3"; + + src = fetchFromGitHub { + owner = "danielzfranklin"; + repo = pname; + rev = version; + sha256 = "01m8fdz9as2fxnzs9csvbc76qxzbb98a66dh7w4a5q855v38g0zy"; + }; + + cargoSha256 = "0fjs76n6bbbv83s213h2dgsszgxy4hbjsclyk9m81b3bfbmmb9sa"; + + passthru = { + updateScript = nix-update-script { + attrPath = pname; + }; + }; + + nativeBuildInputs = [ makeWrapper ]; + + postInstall = '' + wrapProgram $out/bin/cargo-rr --prefix PATH : ${lib.makeBinPath [ rr ]} + ''; + + meta = with lib; { + description = "Cargo subcommand \"rr\": a light wrapper around rr, the time-travelling debugger"; + homepage = "https://github.com/danielzfranklin/cargo-rr"; + license = with licenses; [ mit ]; + maintainers = with maintainers; [ otavio ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 2d6636416ee..f96e4ea150e 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -11393,6 +11393,7 @@ in cargo-release = callPackage ../tools/package-management/cargo-release { inherit (darwin.apple_sdk.frameworks) Security; }; + cargo-rr = callPackage ../development/tools/rust/cargo-rr { }; cargo-tarpaulin = callPackage ../development/tools/analysis/cargo-tarpaulin { }; cargo-update = callPackage ../tools/package-management/cargo-update { inherit (darwin.apple_sdk.frameworks) Security; From 733d682cc3ed32c4b6325b8acffefa32a58ddb70 Mon Sep 17 00:00:00 2001 From: Luke Granger-Brown Date: Sat, 1 May 2021 02:28:31 +0000 Subject: [PATCH 150/339] nixos/release: add amazonImageAutomaticSize This allows us to continue to have the automatically sized image attempt to build on Hydra, which should give us a good indication of when we've got this fixed. --- nixos/release.nix | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/nixos/release.nix b/nixos/release.nix index 87382f42f50..746e4c9dc69 100644 --- a/nixos/release.nix +++ b/nixos/release.nix @@ -224,6 +224,25 @@ in rec { ); + # Test job for https://github.com/NixOS/nixpkgs/issues/121354 to test + # automatic sizing without blocking the channel. + amazonImageAutomaticSize = forMatchingSystems [ "x86_64-linux" "aarch64-linux" ] (system: + + with import ./.. { inherit system; }; + + hydraJob ((import lib/eval-config.nix { + inherit system; + modules = + [ configuration + versionModule + ./maintainers/scripts/ec2/amazon-image.nix + ({ ... }: { amazonImage.sizeMB = "auto"; }) + ]; + }).config.system.build.amazonImage) + + ); + + # Ensure that all packages used by the minimal NixOS config end up in the channel. dummy = forAllSystems (system: pkgs.runCommand "dummy" { toplevel = (import lib/eval-config.nix { From 168f7a1dcf06b9d5c2fd6aa79359a97f84996f8e Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Fri, 30 Apr 2021 18:35:21 +0000 Subject: [PATCH 151/339] malcontent: 0.10.0 -> 0.10.1 --- pkgs/development/libraries/malcontent/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/malcontent/default.nix b/pkgs/development/libraries/malcontent/default.nix index 641f3b87c3f..82635ae66d6 100644 --- a/pkgs/development/libraries/malcontent/default.nix +++ b/pkgs/development/libraries/malcontent/default.nix @@ -19,7 +19,7 @@ stdenv.mkDerivation rec { pname = "malcontent"; - version = "0.10.0"; + version = "0.10.1"; outputs = [ "bin" "out" "lib" "pam" "dev" "man" "installedTests" ]; @@ -28,7 +28,7 @@ stdenv.mkDerivation rec { owner = "pwithnall"; repo = pname; rev = version; - sha256 = "1b6rgf7h9gj2kw1b7ba0mvhsb89riwf9p4pviqjfzd1i5nmbmnyx"; + sha256 = "sha256-GgY+E+1gzmiAAALzdKu1CjN3xPeVMhbmNLqJNB1zHaU="; }; patches = [ From e1a8c80e92b2424b9aed0f423ffd8741673a9bc7 Mon Sep 17 00:00:00 2001 From: AndersonTorres Date: Sat, 1 May 2021 00:45:20 -0300 Subject: [PATCH 152/339] river: refactor --- .../window-managers/river/default.nix | 73 +++++++++++++++---- 1 file changed, 57 insertions(+), 16 deletions(-) diff --git a/pkgs/applications/window-managers/river/default.nix b/pkgs/applications/window-managers/river/default.nix index 9b40d34b6f2..d6869b4786f 100644 --- a/pkgs/applications/window-managers/river/default.nix +++ b/pkgs/applications/window-managers/river/default.nix @@ -1,7 +1,19 @@ -{ lib, stdenv ,fetchFromGitHub -, zig, wayland, pkg-config, scdoc -, xwayland, wayland-protocols, wlroots -, libxkbcommon, pixman, udev, libevdev, libX11, libGL +{ lib +, stdenv +, fetchFromGitHub +, libGL +, libX11 +, libevdev +, libxkbcommon +, pixman +, pkg-config +, scdoc +, udev +, wayland +, wayland-protocols +, wlroots +, xwayland +, zig }: stdenv.mkDerivation rec { @@ -12,33 +24,62 @@ stdenv.mkDerivation rec { owner = "ifreund"; repo = pname; rev = "0c8e718d95a6a621b9cba0caa9158915e567b076"; - sha256 = "1jjh0dzxi7hy4mg8vag6ipfwb9qxm5lfc07njp1mx6m81nq76ybk"; + sha256 = "sha256-c3lzsA2oml7DlfYA5mipHafF3Y3mqY1eJR6e2H8DUMo="; fetchSubmodules = true; }; - buildInputs = [ xwayland wayland-protocols wlroots pixman - libxkbcommon pixman udev libevdev libX11 libGL + nativeBuildInputs = [ + pkg-config + scdoc + wayland-protocols + zig + ]; + buildInputs = [ + libGL + libX11 + libevdev + libxkbcommon + pixman + pixman + udev + wayland + wlroots + xwayland ]; - preBuild = '' + dontConfigure = true; + + buildPhase = '' + runHook preBuild export HOME=$TMPDIR + zig build -Dman-pages -Drelease-safe -Dxwayland --prefix $out + runHook postBuild ''; + installPhase = '' - zig build -Drelease-safe -Dxwayland -Dman-pages --prefix $out install + runHook preInstall + zig build -Dman-pages -Drelease-safe -Dxwayland --prefix $out install + runHook postInstall ''; - nativeBuildInputs = [ zig wayland scdoc pkg-config ]; - - installFlags = [ "DESTDIR=$(out)" ]; - meta = with lib; { + homepage = "https://github.com/ifreund/river"; description = "A dynamic tiling wayland compositor"; longDescription = '' - river is a dynamic tiling wayland compositor that takes inspiration from dwm and bspwm. + river is a dynamic tiling wayland compositor that takes inspiration from + dwm and bspwm. + + Its design goals are: + - Simplicity and minimalism, river should not overstep the bounds of a + window manager. + - Window management based on a stack of views and tags. + - Dynamic layouts generated by external, user-written executables. + (A default rivertile layout generator is provided.) + - Scriptable configuration and control through a custom wayland protocol + and separate riverctl binary implementing it. ''; - homepage = "https://github.com/ifreund/river"; license = licenses.gpl3Plus; + maintainers = with maintainers; [ branwright1 AndersonTorres ]; platforms = platforms.linux; - maintainers = with maintainers; [ branwright1 ]; }; } From aad3e1bf6f7c876a715f8b120cfd2e6bb10eefec Mon Sep 17 00:00:00 2001 From: Mario Rodas Date: Sat, 1 May 2021 04:20:00 +0000 Subject: [PATCH 153/339] lxc: 4.0.7 -> 4.0.8 --- pkgs/os-specific/linux/lxc/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/os-specific/linux/lxc/default.nix b/pkgs/os-specific/linux/lxc/default.nix index 00822dd6150..1f5cf028a28 100644 --- a/pkgs/os-specific/linux/lxc/default.nix +++ b/pkgs/os-specific/linux/lxc/default.nix @@ -9,11 +9,11 @@ with lib; stdenv.mkDerivation rec { pname = "lxc"; - version = "4.0.7"; + version = "4.0.8"; src = fetchurl { url = "https://linuxcontainers.org/downloads/lxc/lxc-${version}.tar.gz"; - sha256 = "0gqfc6nps8ja3iymh1mqbzakrlnzlf4lzfcxawz764w15z0214vl"; + sha256 = "16qbmysiyrvb1inbbdr8qwqa0c6h9mwyrbx4ry18x0kvrhmqamdc"; }; nativeBuildInputs = [ From d4fc6ca4ff1046c60ceef1193095228b5767837b Mon Sep 17 00:00:00 2001 From: Mario Rodas Date: Sat, 1 May 2021 04:20:00 +0000 Subject: [PATCH 154/339] gopass: 1.12.5 -> 1.12.6 https://github.com/gopasspw/gopass/releases/tag/v1.12.6 --- pkgs/tools/security/gopass/default.nix | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/pkgs/tools/security/gopass/default.nix b/pkgs/tools/security/gopass/default.nix index be9fe521e9d..dea65ca7164 100644 --- a/pkgs/tools/security/gopass/default.nix +++ b/pkgs/tools/security/gopass/default.nix @@ -13,7 +13,7 @@ buildGoModule rec { pname = "gopass"; - version = "1.12.5"; + version = "1.12.6"; nativeBuildInputs = [ installShellFiles makeWrapper ]; @@ -21,10 +21,10 @@ buildGoModule rec { owner = "gopasspw"; repo = pname; rev = "v${version}"; - sha256 = "06qc68q9px2g19iz23nbc4ay5dwqhgh99d1jj5l2dhb3mgknh19n"; + sha256 = "17y9indpgqqx261bqvckfqq1q2zciahssaalaa5c5hb6bnw5ls52"; }; - vendorSha256 = "1jir1lb60p86fmk5sh92ywchqva59c31g1badlq9pjgd7jip5vnl"; + vendorSha256 = "106rn0bkvzf2fw21f6wpiya88ysj8sfc2zkkm47iqr23d2202i4b"; subPackages = [ "." ]; @@ -41,19 +41,18 @@ buildGoModule rec { ); postInstall = '' - HOME=$TMPDIR - for shell in bash fish zsh; do - $out/bin/gopass completion $shell > gopass.$shell - installShellCompletion gopass.$shell - done - go run helpers/man/main.go > gopass.1 installManPage gopass.1 + installShellCompletion --zsh --name _gopass zsh.completion + installShellCompletion --bash --name gopass.bash bash.completion + installShellCompletion --fish --name gopass.fish fish.completion '' + lib.optionalString passAlias '' ln -s $out/bin/gopass $out/bin/pass ''; postFixup = '' - wrapProgram $out/bin/gopass --prefix PATH : "${wrapperPath}" + wrapProgram $out/bin/gopass \ + --prefix PATH : "${wrapperPath}" \ + --set GOPASS_NO_REMINDER true ''; meta = with lib; { From cd188311dc75bc765709c486883d02518a6610d2 Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Sat, 1 May 2021 04:25:30 +0000 Subject: [PATCH 155/339] grpcurl: 1.8.0 -> 1.8.1 --- pkgs/tools/networking/grpcurl/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/tools/networking/grpcurl/default.nix b/pkgs/tools/networking/grpcurl/default.nix index 3f9d31b508b..ec181c17e9e 100644 --- a/pkgs/tools/networking/grpcurl/default.nix +++ b/pkgs/tools/networking/grpcurl/default.nix @@ -2,18 +2,18 @@ buildGoModule rec { pname = "grpcurl"; - version = "1.8.0"; + version = "1.8.1"; src = fetchFromGitHub { owner = "fullstorydev"; repo = "grpcurl"; rev = "v${version}"; - sha256 = "sha256-ZrL23eqA56BApwUtBwL5nSAd2LZbQxthyiFBnkJ5+Zg="; + sha256 = "sha256-BxmoIGhuAt/uhHLNdMiSrNVWAoxAAMKPJ/NsXjf2ynk="; }; subPackages = [ "cmd/grpcurl" ]; - vendorSha256 = "sha256-Tx00zRlzxCgyYdcYjzCxnFe8HyiitaKLcXJjYWhYSic="; + vendorSha256 = "sha256-EnstvJk2kZ1Ft5xY1dO14wnmT//2K72OnDMZqeaOeQI="; buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ]; From e812fd9c0ecca237a35fb2b9534c48ebb2807363 Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Sat, 1 May 2021 04:39:10 +0000 Subject: [PATCH 156/339] handlr: 0.6.3 -> 0.6.4 --- pkgs/tools/misc/handlr/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/tools/misc/handlr/default.nix b/pkgs/tools/misc/handlr/default.nix index baa718c1b1f..c8143ea330a 100644 --- a/pkgs/tools/misc/handlr/default.nix +++ b/pkgs/tools/misc/handlr/default.nix @@ -2,16 +2,16 @@ rustPlatform.buildRustPackage rec { pname = "handlr"; - version = "0.6.3"; + version = "0.6.4"; src = fetchFromGitHub { owner = "chmln"; repo = pname; rev = "v${version}"; - sha256 = "sha256-OtU6sL2Bbbec0gHxk3bl5Inn+ZmNYiHgpSF0gjDuRSg="; + sha256 = "sha256-UYcJtBwbUDqDiRoj5PmO+urURfd7S7fSx2XhQRBrKTE="; }; - cargoSha256 = "sha256-bX7QWV1R+pLxvghpaV10LeROv4wBVfZhHyrPCIgqETA="; + cargoSha256 = "sha256-xDQV8wVlzItz0lzR1nVRPVsg7nSf/khUhevDlGgSO3g="; nativeBuildInputs = [ shared-mime-info ]; From b65e2101b7f7c13cd60f61adb400e6e82b05cbe2 Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Sat, 1 May 2021 05:36:09 +0000 Subject: [PATCH 157/339] krankerl: 0.13.0 -> 0.13.1 --- pkgs/development/tools/krankerl/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/tools/krankerl/default.nix b/pkgs/development/tools/krankerl/default.nix index b771fe6bfc5..8697f81a9da 100644 --- a/pkgs/development/tools/krankerl/default.nix +++ b/pkgs/development/tools/krankerl/default.nix @@ -12,16 +12,16 @@ rustPlatform.buildRustPackage rec { pname = "krankerl"; - version = "0.13.0"; + version = "0.13.1"; src = fetchFromGitHub { owner = "ChristophWurst"; repo = "krankerl"; rev = "v${version}"; - sha256 = "1gp8b2m8kcz2f16zv9xwv4n1zki6imvz9z31kixh6amdj6fif3d1"; + sha256 = "sha256-uIFcWHdW8887CDkFxZznh9akYs+vxsE9Bc9g1hKi7Kc="; }; - cargoSha256 = "sha256:01hcxs14wwhhvr08x816wa3jcm4zvm6g7vais793cgijipyv00rc"; + cargoSha256 = "sha256-6joHwz0HIVbta8ALvsJLMvmeDh9IFPR4Cx36H63MliI="; nativeBuildInputs = [ pkg-config From 96e1cc0768f3d53db363977dfb387ff81daaf691 Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Sat, 1 May 2021 05:49:45 +0000 Subject: [PATCH 158/339] lean: 3.29.0 -> 3.30.0 --- pkgs/applications/science/logic/lean/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/science/logic/lean/default.nix b/pkgs/applications/science/logic/lean/default.nix index 3a0b13d7d09..aa7fe5ab914 100644 --- a/pkgs/applications/science/logic/lean/default.nix +++ b/pkgs/applications/science/logic/lean/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "lean"; - version = "3.29.0"; + version = "3.30.0"; src = fetchFromGitHub { owner = "leanprover-community"; repo = "lean"; rev = "v${version}"; - sha256 = "sha256-f2Gp76c+4R+ww52f1AyVZqixpei1WZPwr7pfgxMMb9Q="; + sha256 = "sha256-gJhbkl19iilNyfCt2TfPmghYA3yCjg6kS+yk/x/k14Y="; }; nativeBuildInputs = [ cmake ]; From fcc8230147ae36f183b27e32230e61ac532cc030 Mon Sep 17 00:00:00 2001 From: Guillaume Girol Date: Fri, 30 Apr 2021 17:30:27 +0200 Subject: [PATCH 159/339] bombono: update ffmpeg, fix iso generation --- pkgs/applications/video/bombono/default.nix | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/video/bombono/default.nix b/pkgs/applications/video/bombono/default.nix index 8d6df2c4904..a6633904c20 100644 --- a/pkgs/applications/video/bombono/default.nix +++ b/pkgs/applications/video/bombono/default.nix @@ -7,7 +7,8 @@ , dvdauthor , dvdplusrwtools , enca -, ffmpeg_3 +, cdrkit +, ffmpeg , gettext , gtk2 , gtkmm2 @@ -59,7 +60,7 @@ stdenv.mkDerivation rec { dvdauthor dvdplusrwtools enca - ffmpeg_3 + ffmpeg gtk2 gtkmm2 libdvdread @@ -71,6 +72,13 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; + postInstall = '' + # fix iso authoring + install -Dt $out/share/bombono/resources/scons_authoring tools/scripts/SConsTwin.py + + wrapProgram $out/bin/bombono-dvd --prefix PATH : ${lib.makeBinPath [ ffmpeg dvdauthor cdrkit ]} + ''; + meta = with lib; { description = "a DVD authoring program for personal computers"; homepage = "https://www.bombono.org/"; From 388659919a6f64e5dfb8d95701ff802b77f4156c Mon Sep 17 00:00:00 2001 From: Otavio Salvador Date: Tue, 27 Apr 2021 19:44:38 -0300 Subject: [PATCH 160/339] cargo-limit: 0.0.7 -> 0.0.8 Signed-off-by: Otavio Salvador --- pkgs/development/tools/rust/cargo-limit/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/tools/rust/cargo-limit/default.nix b/pkgs/development/tools/rust/cargo-limit/default.nix index 3ebe5ef1304..7d63b7adcea 100644 --- a/pkgs/development/tools/rust/cargo-limit/default.nix +++ b/pkgs/development/tools/rust/cargo-limit/default.nix @@ -6,16 +6,16 @@ rustPlatform.buildRustPackage rec { pname = "cargo-limit"; - version = "0.0.7"; + version = "0.0.8"; src = fetchFromGitHub { owner = "alopatindev"; repo = "cargo-limit"; rev = version; - sha256 = "sha256-8HsYhWYeRhCPTxVnU8hOJKLXvza8i9KvKTLL6yLo0+c="; + sha256 = "sha256-OHBxQcXhZkJ1F6xLc7/sPpJhJzuJXb91IUjAtyC3XP8="; }; - cargoSha256 = "sha256-8uA4oFExrzDMeMV5MacbtE0Awdfx+jUUkrKd7ushOHo="; + cargoSha256 = "sha256-LxqxRtMKUKZeuvk1caoYy8rv1bkEOQBM8i5SXMF4GXc="; passthru = { updateScript = nix-update-script { From 3b07746b0a362092f90248948270ddbae7a2fb2d Mon Sep 17 00:00:00 2001 From: Otavio Salvador Date: Tue, 27 Apr 2021 20:07:51 -0300 Subject: [PATCH 161/339] shellhub-agent: 0.6.0 -> 0.6.4 Signed-off-by: Otavio Salvador --- .../networking/shellhub-agent/default.nix | 11 +- .../shellhub-agent/fix-go-mod-deps.patch | 128 ++++++++++++++++++ 2 files changed, 136 insertions(+), 3 deletions(-) create mode 100644 pkgs/applications/networking/shellhub-agent/fix-go-mod-deps.patch diff --git a/pkgs/applications/networking/shellhub-agent/default.nix b/pkgs/applications/networking/shellhub-agent/default.nix index fa129baabc1..54eb1216b09 100644 --- a/pkgs/applications/networking/shellhub-agent/default.nix +++ b/pkgs/applications/networking/shellhub-agent/default.nix @@ -9,18 +9,23 @@ buildGoModule rec { pname = "shellhub-agent"; - version = "0.6.0"; + version = "0.6.4"; src = fetchFromGitHub { owner = "shellhub-io"; repo = "shellhub"; rev = "v${version}"; - sha256 = "0vdasz3qph73xb9y831bnr1hpcw0669n9zckqn95v1bsjc936313"; + sha256 = "12g9067knppkci2acc4w9xcismgw2w1zd0f1swbzdnx8bxl3vg9i"; }; + patches = [ + # Fix missing multierr package on go.mod + ./fix-go-mod-deps.patch + ]; + modRoot = "./agent"; - vendorSha256 = "059772rd1l7zyf2vlqjm35hg8ibmjc1p6cfazqd47n8mqqlqkilw"; + vendorSha256 = "0z5qvgmmrwwvhpmhjxdvgdfsd60a24q9ld68ggnkv36qln0gw7p4"; buildFlagsArray = [ "-ldflags=-s -w -X main.AgentVersion=v${version}" ]; diff --git a/pkgs/applications/networking/shellhub-agent/fix-go-mod-deps.patch b/pkgs/applications/networking/shellhub-agent/fix-go-mod-deps.patch new file mode 100644 index 00000000000..7e99eccb04d --- /dev/null +++ b/pkgs/applications/networking/shellhub-agent/fix-go-mod-deps.patch @@ -0,0 +1,128 @@ +diff --git a/agent/go.mod b/agent/go.mod +index c075083..b79726e 100644 +--- a/agent/go.mod ++++ b/agent/go.mod +@@ -28,6 +28,7 @@ require ( + github.com/pkg/errors v0.9.1 + github.com/shellhub-io/shellhub v0.5.2 + github.com/sirupsen/logrus v1.8.1 ++ go.uber.org/multierr v1.6.0 // indirect + golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83 + golang.org/x/net v0.0.0-20210224082022-3d97a244fca7 // indirect + golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073 +diff --git a/agent/go.sum b/agent/go.sum +index e65c9ad..0f9afcd 100644 +--- a/agent/go.sum ++++ b/agent/go.sum +@@ -62,7 +62,6 @@ github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw + github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= + github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= + github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +-github.com/google/go-cmp v0.4.0 h1:xsAVV57WRhGj6kEIi8ReJzQlHHqcBYCElAvkovg3B/4= + github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= + github.com/google/go-cmp v0.5.0 h1:/QaMHBdZ26BB3SSst0Iwl10Epc+xhTquomWX0oZEB6w= + github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +@@ -73,7 +72,6 @@ github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= + github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= + github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc= + github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +-github.com/hashicorp/go-cleanhttp v0.5.1 h1:dH3aiDG9Jvb5r5+bYHsikaOUIpcM0xvgMXVoDkXMzJM= + github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= + github.com/hashicorp/go-cleanhttp v0.5.2 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9neXJWAZQ= + github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48= +@@ -87,9 +85,7 @@ github.com/kelseyhightower/envconfig v1.4.0 h1:Im6hONhd3pLkfDFsbRgu68RDNkGF1r3dv + github.com/kelseyhightower/envconfig v1.4.0/go.mod h1:cccZRl6mQpaq41TPp5QxidR+Sa3axMbJDNb//FQX6Gg= + github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= + github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +-github.com/konsorten/go-windows-terminal-sequences v1.0.1 h1:mweAR1A6xJ3oS2pRaGiHgQ4OO8tzTaLawm8vnODuwDk= + github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +-github.com/leodido/go-urn v1.2.0 h1:hpXL4XnriNwQ/ABnpepYM/1vCLWNDfUNts8dX3xTG6Y= + github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII= + github.com/leodido/go-urn v1.2.1 h1:BqpAaACuzVSgi/VLzGZIobT2z4v53pjosyNd9Yv6n/w= + github.com/leodido/go-urn v1.2.1/go.mod h1:zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ictyFfxY= +@@ -113,7 +109,6 @@ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZN + github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= + github.com/rogpeppe/go-charset v0.0.0-20180617210344-2471d30d28b4/go.mod h1:qgYeAmZ5ZIpBWTGllZSQnw97Dj+woV0toclVaRGI8pc= + github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= +-github.com/sirupsen/logrus v1.7.0 h1:ShrD1U9pZB12TX0cVy0DtePoCH97K8EtX+mg7ZARUtM= + github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= + github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE= + github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= +@@ -124,15 +119,18 @@ github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9 + github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= + github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= + github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +-github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w= + github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +-github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk= ++github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= + github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= + github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= + github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0= + github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= + github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= + github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= ++go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw= ++go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= ++go.uber.org/multierr v1.6.0 h1:y6IPFStTAIT5Ytl7/XYmHvzXQ7S3g/IeZW9hyZ5thw4= ++go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= + golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= + golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= + golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +@@ -148,7 +146,6 @@ golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73r + golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= + golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= + golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +-golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3 h1:0GoQqolDA55aaLxZyTzK/Y2ePZzZTUrRacwib7cNsYQ= + golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= + golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= + golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +@@ -169,17 +166,13 @@ golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7w + golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= + golang.org/x/sys v0.0.0-20200831180312-196b9ba8737a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= + golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +-golang.org/x/sys v0.0.0-20201119102817-f84b799fce68 h1:nxC68pudNYkKU6jWhgrqdreuFiOQWj1Fs7T3VrH4Pjw= + golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= + golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073 h1:8qxJSnu+7dRq6upnbntrmriWByIakBuct5OM/MdQC1M= + golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +-golang.org/x/term v0.0.0-20201117132131-f5c789dd3221 h1:/ZHdbVpdR/jk3g30/d4yUL0JU9kksj8+F/bnQUVLGDM= + golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= + golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1 h1:v+OssWQX+hTHEmOBgwxdZxK4zHq3yOs8F9J7mk0PY8E= + golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +-golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= + golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +-golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= + golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= + golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k= + golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +@@ -197,14 +190,12 @@ golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roY + golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= + golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= + golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +-golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= + golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= + golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= + golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= + google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= + google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= + google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +-google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55 h1:gSJIx1SDwno+2ElGhA4+qG2zF97qiUzTM+rQ0klBOcE= + google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= + google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= + google.golang.org/genproto v0.0.0-20210224155714-063164c882e6 h1:bXUwz2WkXXrXgiLxww3vWmoSHLOGv4ipdPdTvKymcKw= +@@ -223,7 +214,6 @@ google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzi + google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= + google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= + google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +-google.golang.org/protobuf v1.24.0 h1:UhZDfRO8JRQru4/+LlLE0BRKGF8L+PICnvYZmx/fEGA= + google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= + google.golang.org/protobuf v1.25.0 h1:Ejskq+SyPohKW+1uil0JJMtmHCgJPJ/qWTxr8qp+R4c= + google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= +@@ -233,7 +223,6 @@ gopkg.in/go-playground/assert.v1 v1.2.1 h1:xoYuJVE7KT85PYWrN730RguIQO0ePzVRfFMXa + gopkg.in/go-playground/assert.v1 v1.2.1/go.mod h1:9RXL0bg/zibRAgZUYszZSwO/z8Y/a8bDuhia5mkpMnE= + gopkg.in/go-playground/validator.v9 v9.31.0 h1:bmXmP2RSNtFES+bn4uYuHT7iJFJv7Vj+an+ZQdDaD1M= + gopkg.in/go-playground/validator.v9 v9.31.0/go.mod h1:+c9/zcJMFNgbLvly1L1V+PpxWdVbfP1avr/N00E2vyQ= +-gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw= + gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= + gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo= + gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= From f3e288316790c92df0eb43510fe8420bd3900836 Mon Sep 17 00:00:00 2001 From: Zhaofeng Li Date: Sat, 1 May 2021 06:03:42 +0000 Subject: [PATCH 162/339] feedbackd: Add udev rules to output --- pkgs/applications/misc/feedbackd/default.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pkgs/applications/misc/feedbackd/default.nix b/pkgs/applications/misc/feedbackd/default.nix index 34119c2006d..1cf2fee3710 100644 --- a/pkgs/applications/misc/feedbackd/default.nix +++ b/pkgs/applications/misc/feedbackd/default.nix @@ -41,6 +41,11 @@ stdenv.mkDerivation rec { json-glib ]; + postInstall = '' + mkdir -p $out/lib/udev/rules.d + sed "s|/usr/libexec/|$out/libexec/|" < $src/debian/feedbackd.udev > $out/lib/udev/rules.d/90-feedbackd.rules + ''; + meta = with lib; { description = "A daemon to provide haptic (and later more) feedback on events"; homepage = "https://source.puri.sm/Librem5/feedbackd"; From 3086335f04b5bf7875508f84af6080b51c413065 Mon Sep 17 00:00:00 2001 From: Zhaofeng Li Date: Sat, 1 May 2021 06:04:49 +0000 Subject: [PATCH 163/339] nixos/feedbackd: init --- nixos/modules/module-list.nix | 1 + nixos/modules/programs/feedbackd.nix | 32 ++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 nixos/modules/programs/feedbackd.nix diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index daa96e64f59..dc56301c197 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -130,6 +130,7 @@ ./programs/droidcam.nix ./programs/environment.nix ./programs/evince.nix + ./programs/feedbackd.nix ./programs/file-roller.nix ./programs/firejail.nix ./programs/fish.nix diff --git a/nixos/modules/programs/feedbackd.nix b/nixos/modules/programs/feedbackd.nix new file mode 100644 index 00000000000..bb14489a6f4 --- /dev/null +++ b/nixos/modules/programs/feedbackd.nix @@ -0,0 +1,32 @@ +{ pkgs, lib, config, ... }: + +with lib; + +let + cfg = config.programs.feedbackd; +in { + options = { + programs.feedbackd = { + enable = mkEnableOption '' + Whether to enable the feedbackd D-BUS service and udev rules. + + Your user needs to be in the `feedbackd` group to trigger effects. + ''; + package = mkOption { + description = '' + Which feedbackd package to use. + ''; + type = types.package; + default = pkgs.feedbackd; + }; + }; + }; + config = mkIf cfg.enable { + environment.systemPackages = [ cfg.package ]; + + services.dbus.packages = [ cfg.package ]; + services.udev.packages = [ cfg.package ]; + + users.groups.feedbackd = {}; + }; +} From 31a32eeed3f11fca7475cd5f9746081033856132 Mon Sep 17 00:00:00 2001 From: Zhaofeng Li Date: Fri, 30 Apr 2021 01:02:31 +0000 Subject: [PATCH 164/339] nixos/phosh: init MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Blaž Hrastnik Co-authored-by: Jan Tojnar Co-authored-by: Jordi Masip --- nixos/modules/module-list.nix | 1 + nixos/modules/programs/phosh.nix | 167 +++++++++++++++++++++++++++++++ 2 files changed, 168 insertions(+) create mode 100644 nixos/modules/programs/phosh.nix diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index dc56301c197..b9f4df20a81 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -164,6 +164,7 @@ ./programs/partition-manager.nix ./programs/plotinus.nix ./programs/proxychains.nix + ./programs/phosh.nix ./programs/qt5ct.nix ./programs/screen.nix ./programs/sedutil.nix diff --git a/nixos/modules/programs/phosh.nix b/nixos/modules/programs/phosh.nix new file mode 100644 index 00000000000..f6faf7990dd --- /dev/null +++ b/nixos/modules/programs/phosh.nix @@ -0,0 +1,167 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.programs.phosh; + + # Based on https://source.puri.sm/Librem5/librem5-base/-/blob/4596c1056dd75ac7f043aede07887990fd46f572/default/sm.puri.OSK0.desktop + oskItem = pkgs.makeDesktopItem { + name = "sm.puri.OSK0"; + type = "Application"; + desktopName = "On-screen keyboard"; + exec = "${pkgs.squeekboard}/bin/squeekboard"; + categories = "GNOME;Core;"; + extraEntries = '' + OnlyShowIn=GNOME; + NoDisplay=true + X-GNOME-Autostart-Phase=Panel + X-GNOME-Provides=inputmethod + X-GNOME-Autostart-Notify=true + X-GNOME-AutoRestart=true + ''; + }; + + phocConfigType = types.submodule { + options = { + xwayland = mkOption { + description = '' + Whether to enable XWayland support. + + To start XWayland immediately, use `immediate`. + ''; + type = types.enum [ "true" "false" "immediate" ]; + default = "false"; + }; + cursorTheme = mkOption { + description = '' + Cursor theme to use in Phosh. + ''; + type = types.str; + default = "default"; + }; + outputs = mkOption { + description = '' + Output configurations. + ''; + type = types.attrsOf phocOutputType; + default = { + DSI-1 = { + scale = 2; + }; + }; + }; + }; + }; + + phocOutputType = types.submodule { + options = { + modeline = mkOption { + description = '' + One or more modelines. + ''; + type = types.either types.str (types.listOf types.str); + default = []; + example = [ + "87.25 720 776 848 976 1440 1443 1453 1493 -hsync +vsync" + "65.13 768 816 896 1024 1024 1025 1028 1060 -HSync +VSync" + ]; + }; + mode = mkOption { + description = '' + Default video mode. + ''; + type = types.nullOr types.str; + default = null; + example = "768x1024"; + }; + scale = mkOption { + description = '' + Display scaling factor. + ''; + type = types.nullOr types.ints.unsigned; + default = null; + example = 2; + }; + rotate = mkOption { + description = '' + Screen transformation. + ''; + type = types.enum [ + "90" "180" "270" "flipped" "flipped-90" "flipped-180" "flipped-270" null + ]; + default = null; + }; + }; + }; + + optionalKV = k: v: if v == null then "" else "${k} = ${builtins.toString v}"; + + renderPhocOutput = name: output: let + modelines = if builtins.isList output.modeline + then output.modeline + else [ output.modeline ]; + renderModeline = l: "modeline = ${l}"; + in '' + [output:${name}] + ${concatStringsSep "\n" (map renderModeline modelines)} + ${optionalKV "mode" output.mode} + ${optionalKV "scale" output.scale} + ${optionalKV "rotate" output.rotate} + ''; + + renderPhocConfig = phoc: let + outputs = mapAttrsToList renderPhocOutput phoc.outputs; + in '' + [core] + xwayland = ${phoc.xwayland} + ${concatStringsSep "\n" outputs} + [cursor] + theme = ${phoc.cursorTheme} + ''; +in { + options = { + programs.phosh = { + enable = mkEnableOption '' + Whether to enable, Phosh, related packages and default configurations. + ''; + phocConfig = mkOption { + description = '' + Configurations for the Phoc compositor. + ''; + type = types.oneOf [ types.lines types.path phocConfigType ]; + default = {}; + }; + }; + }; + + config = mkIf cfg.enable { + environment.systemPackages = [ + pkgs.phoc + pkgs.phosh + pkgs.squeekboard + oskItem + ]; + + programs.feedbackd.enable = true; + + # https://source.puri.sm/Librem5/phosh/-/issues/303 + security.pam.services.phosh = { + text = '' + auth requisite pam_nologin.so + auth required pam_succeed_if.so user != root quiet_success + auth required pam_securetty.so + auth requisite pam_nologin.so + ''; + }; + + services.gnome3.core-shell.enable = true; + services.gnome3.core-os-services.enable = true; + services.xserver.displayManager.sessionPackages = [ pkgs.phosh ]; + + environment.etc."phosh/phoc.ini".source = + if builtins.isPath cfg.phocConfig then cfg.phocConfig + else if builtins.isString cfg.phocConfig then pkgs.writeText "phoc.ini" cfg.phocConfig + else pkgs.writeText "phoc.ini" (renderPhocConfig cfg.phocConfig); + }; +} From 0425a60e5525d8dcdedc7263cf83a92a55a319e2 Mon Sep 17 00:00:00 2001 From: Ilya Fedin Date: Sat, 1 May 2021 11:28:24 +0400 Subject: [PATCH 165/339] kotatogram-desktop: 1.4 -> 1.4.1 --- .../telegram/kotatogram-desktop/default.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix b/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix index 2f6594c1765..c88c97705fd 100644 --- a/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix +++ b/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix @@ -2,7 +2,7 @@ , pkg-config, cmake, ninja, python3, wrapGAppsHook, wrapQtAppsHook , qtbase, qtimageformats, gtk3, libsForQt5, lz4, xxHash , ffmpeg, openalSoft, minizip, libopus, alsaLib, libpulseaudio, range-v3 -, tl-expected, hunspell, glibmm +, tl-expected, hunspell, glibmm, webkitgtk # Transitive dependencies: , pcre, xorg, util-linux, libselinux, libsepol, epoxy , at-spi2-core, libXtst, libthai, libdatrie @@ -14,13 +14,13 @@ let tg_owt = callPackage ../tdesktop/tg_owt.nix {}; in mkDerivation rec { pname = "kotatogram-desktop"; - version = "1.4"; + version = "1.4.1"; src = fetchFromGitHub { owner = "kotatogram"; repo = "kotatogram-desktop"; rev = "k${version}"; - sha256 = "0nhyjqxrbqiik4sgzplmpgx8msf8rykjiik0c2zr61rjm4fngkb3"; + sha256 = "07z56gz3sk45n5j0gw9p9mxrbwixxsmp7lvqc6lqnxmglz6knc1d"; fetchSubmodules = true; }; @@ -38,7 +38,7 @@ in mkDerivation rec { buildInputs = [ qtbase qtimageformats gtk3 libsForQt5.kwayland libsForQt5.libdbusmenu lz4 xxHash ffmpeg openalSoft minizip libopus alsaLib libpulseaudio range-v3 - tl-expected hunspell glibmm + tl-expected hunspell glibmm webkitgtk tg_owt # Transitive dependencies: pcre xorg.libXdmcp util-linux libselinux libsepol epoxy From f722f8d518a6b5048219eacbd2e4bf26bb48c300 Mon Sep 17 00:00:00 2001 From: Thomas Gerbet Date: Sat, 1 May 2021 09:46:26 +0200 Subject: [PATCH 166/339] postgresql_jdbc: 42.2.5 -> 42.2.20 Fixes CVE-2020-13692. --- pkgs/development/java-modules/postgresql_jdbc/default.nix | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pkgs/development/java-modules/postgresql_jdbc/default.nix b/pkgs/development/java-modules/postgresql_jdbc/default.nix index e7968cf80c0..524273e080f 100644 --- a/pkgs/development/java-modules/postgresql_jdbc/default.nix +++ b/pkgs/development/java-modules/postgresql_jdbc/default.nix @@ -2,19 +2,21 @@ stdenv.mkDerivation rec { pname = "postgresql-jdbc"; - version = "42.2.5"; + version = "42.2.20"; src = fetchMavenArtifact { artifactId = "postgresql"; groupId = "org.postgresql"; - sha256 = "1p0cbb7ka41xxipzjy81hmcndkqynav22xyipkg7qdqrqvw4dykz"; + sha256 = "0kjilsrz9shymfki48kg1q84la1870ixlh2lnfw347x8mqw2k2vh"; inherit version; }; phases = [ "installPhase" ]; installPhase = '' + runHook preInstall install -m444 -D $src/share/java/*postgresql-${version}.jar $out/share/java/postgresql-jdbc.jar + runHook postInstall ''; meta = with lib; { From 2ec00820e6ae1079f4facc362a03a3a2a16c2712 Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Sat, 1 May 2021 08:30:14 +0000 Subject: [PATCH 167/339] cgal_5: 5.2 -> 5.2.1 --- pkgs/development/libraries/CGAL/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/CGAL/default.nix b/pkgs/development/libraries/CGAL/default.nix index 7ff9ac43343..bd8edc14a8b 100644 --- a/pkgs/development/libraries/CGAL/default.nix +++ b/pkgs/development/libraries/CGAL/default.nix @@ -8,13 +8,13 @@ stdenv.mkDerivation rec { pname = "cgal"; - version = "5.2"; + version = "5.2.1"; src = fetchFromGitHub { owner = "CGAL"; repo = "releases"; rev = "CGAL-${version}"; - sha256 = "1+ov1fu79MXoW0D8odInMZPFMYg69st//PoMW42oXpA="; + sha256 = "sha256-sJyeehgt84rLX8ZBYIbFgHLG2aJDDHEj5GeVnQhjiOQ="; }; # note: optional component libCGAL_ImageIO would need zlib and opengl; From 5a835e6e9275c1b2378765ea2ae286c46fd16edb Mon Sep 17 00:00:00 2001 From: V Date: Sat, 1 May 2021 10:42:02 +0200 Subject: [PATCH 168/339] rink: 0.6.0 -> 0.6.1 --- pkgs/applications/science/misc/rink/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/science/misc/rink/default.nix b/pkgs/applications/science/misc/rink/default.nix index 31ae8678719..232e13218cb 100644 --- a/pkgs/applications/science/misc/rink/default.nix +++ b/pkgs/applications/science/misc/rink/default.nix @@ -1,17 +1,17 @@ { lib, fetchFromGitHub, rustPlatform, openssl, pkg-config, ncurses }: rustPlatform.buildRustPackage rec { - version = "0.6.0"; + version = "0.6.1"; pname = "rink"; src = fetchFromGitHub { owner = "tiffany352"; repo = "rink-rs"; rev = "v${version}"; - sha256 = "sha256-3uhKevuUVh7AObn2GDW2T+5wttX20SbVP+sFaFj3Jmk="; + sha256 = "1h93xlavcjvx588q8wkpbzph88yjjhhvzcfxr5nicdca0jnha5ch"; }; - cargoSha256 = "sha256-luJzIGdcitH+PNgr86AYX6wKEkQlsRhwwylo+hzeovE="; + cargoSha256 = "0x4rvfnw3gl2aj6i006nkk3y1f8skyv8g0ss3z2v6qj9nhs7pyir"; nativeBuildInputs = [ pkg-config ]; buildInputs = [ openssl ncurses ]; From ada3e19b7a20424381a75e109ced34e59054e1d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=BCtz?= Date: Sat, 1 May 2021 11:01:38 +0200 Subject: [PATCH 169/339] prs: 0.2.10 -> 0.2.11 (#121314) https://gitlab.com/timvisee/prs/-/blob/v0.2.11/CHANGELOG.md#0211-2021-04-30 --- pkgs/tools/security/prs/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/tools/security/prs/default.nix b/pkgs/tools/security/prs/default.nix index 42332e40cc3..6d97958ec78 100644 --- a/pkgs/tools/security/prs/default.nix +++ b/pkgs/tools/security/prs/default.nix @@ -13,16 +13,16 @@ rustPlatform.buildRustPackage rec { pname = "prs"; - version = "0.2.10"; + version = "0.2.11"; src = fetchFromGitLab { owner = "timvisee"; repo = "prs"; rev = "v${version}"; - sha256 = "sha256-czGyBdy4emw7bUV6Nn+k+fJm+JqR6o0TEEUuIbEsml4="; + sha256 = "sha256-jBHe3ZeB+GS+Ds8c6ySwoyyJfqoCWKSgIObg+z1TNmU="; }; - cargoSha256 = "sha256-jnBYuk7uvnbvT2OQ35DJk6WIUSqJiZCvsmpSIxw9X1U="; + cargoSha256 = "sha256-dhQuzzML817cDIsYuZElHZfq55AdZ20xeXTNm1nJPqk="; postPatch = '' # The GPGME backend is recommended From c49a518f9f9b175a8689f48e253fa4bc0c1fb401 Mon Sep 17 00:00:00 2001 From: Alyssa Ross Date: Sat, 1 May 2021 00:22:19 +0000 Subject: [PATCH 170/339] qemu: 5.2.0 -> 6.0.0; adopt; broaden platforms Tested building qemu_kvm, qemu_full, and qemu_test on x86_64-linux. Also tested booting a VM generated with nixos-rebuild build-vm. I wasn't able to test building pkgsMusl.qemu_kvm, because of many build failures in dependencies. --- .../virtualization/qemu/default.nix | 130 +----------------- 1 file changed, 6 insertions(+), 124 deletions(-) diff --git a/pkgs/applications/virtualization/qemu/default.nix b/pkgs/applications/virtualization/qemu/default.nix index c3484a3312c..0c7cbd853a2 100644 --- a/pkgs/applications/virtualization/qemu/default.nix +++ b/pkgs/applications/virtualization/qemu/default.nix @@ -39,7 +39,7 @@ let in stdenv.mkDerivation rec { - version = "5.2.0"; + version = "6.0.0"; pname = "qemu" + lib.optionalString xenSupport "-xen" + lib.optionalString hostCpuOnly "-host-cpu-only" @@ -47,7 +47,7 @@ stdenv.mkDerivation rec { src = fetchurl { url= "https://download.qemu.org/qemu-${version}.tar.xz"; - sha256 = "1g0pvx4qbirpcn9mni704y03n3lvkmw2c0rbcwvydyr8ns4xh66b"; + sha256 = "1f9hz8rf12jm8baa7kda34yl4hyl0xh0c4ap03krfjx23i3img47"; }; nativeBuildInputs = [ python python.pkgs.sphinx pkg-config flex bison meson ninja ] @@ -84,126 +84,6 @@ stdenv.mkDerivation rec { patches = [ ./fix-qemu-ga.patch ./9p-ignore-noatime.patch - (fetchpatch { - name = "CVE-2020-27821.patch"; - url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/memory-clamp-cached-translation-if-points-to-MMIO-region-CVE-2020-27821.patch"; - sha256 = "0sj0kr0g6jalygr5mb9i17fgr491jzaxvk3dvala0268940s01x9"; - }) - (fetchpatch { - name = "CVE-2021-20221.patch"; - url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/arm_gic-fix-interrupt-ID-in-GICD_SGIR-CVE-2021-20221.patch"; - sha256 = "1iyvcw87hzlc57fg5l87vddqmch8iw2yghk0s125hk5shn1bygjq"; - }) - (fetchpatch { - name = "CVE-2021-20181.patch"; - url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/9pfs-Fully-restart-unreclaim-loop-CVE-2021-20181.patch"; - sha256 = "149ifiazj6rn4d4mv2c7lcayq744fijsv5abxlb8bhbkj99wd64f"; - }) - (fetchpatch { - name = "CVE-2020-35517.part-1.patch"; - url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/virtiofsd-extract-lo_do_open-from-lo_open.patch"; - sha256 = "0j4waaz6q54by4a7vd5m8s2n8y0an9hqf0ndycxsy03g4ksm669d"; - }) - (fetchpatch { - name = "CVE-2020-35517.part-2.patch"; - url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/virtiofsd-optionally-return-inode-pointer-from-lo_do_lookup.patch"; - sha256 = "08bag890r6dx2rhnq58gyvsxvzwqgvn83pjlg95b5ic0z6gyjnsg"; - }) - (fetchpatch { - name = "CVE-2020-35517.part-3.patch"; - url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/virtiofsd-prevent-opening-of-special-files-CVE-2020-35517.patch"; - sha256 = "0ziy6638zbkn037l29ywirvgymbqq66l5rngg8iwyky67acilv94"; - }) - (fetchpatch { - name = "CVE-2021-20263.part-1.patch"; - url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/virtiofsd-save-error-code-early-at-the-failure-callsite.patch"; - sha256 = "15rwb15yjpclrqaxkhx76npr8zlfm9mj4jb19czg093is2cn4rys"; - }) - (fetchpatch { - name = "CVE-2021-20263.part-2.patch"; - url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/virtiofsd-drop-remapped-security.capability-xattr-as-needed-CVE-2021-20263.patch"; - sha256 = "06ylz80ilg30wlskd4dsjx677fp5qr8cranwlakvjhr88b630xw0"; - }) - (fetchpatch { - name = "CVE-2021-3416.part-1.patch"; - url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/net-qemu_receive_packet-for-loopback-introduce.patch"; - sha256 = "0hcpf00vqpg9rc0wl8cry905w04614843aqifybyv15wbv190gpz"; - }) - (fetchpatch { - name = "CVE-2021-3416.part-2.patch"; - url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/net-qemu_receive_packet-for-loopback-cadence_gem.patch"; - sha256 = "12mjnrvs6p4g5frzqb08k4h86hphdqlka91fcma2a3m4ap98nrxy"; - }) - (fetchpatch { - name = "CVE-2021-3416.part-3.patch"; - url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/net-qemu_receive_packet-for-loopback-dp8393x.patch"; - sha256 = "02z6q0578fj55phjlg2larrsx3psch2ixzy470yf57jl3jq1dy6k"; - }) - (fetchpatch { - name = "CVE-2021-3416.part-4.patch"; - url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/net-qemu_receive_packet-for-loopback-e1000.patch"; - sha256 = "0zzbiz8i9js524mcdi739c7hrsmn82gnafrygi0xrd5sqf1hp08z"; - }) - (fetchpatch { - name = "CVE-2021-3416.part-5.patch"; - url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/net-qemu_receive_packet-for-loopback-lan9118.patch"; - sha256 = "1f44v5znd9s7l7wgc71nbg8jw1bjqiga4wkz7d7cpnkv3l7b9kjj"; - }) - (fetchpatch { - name = "CVE-2021-3416.part-6.patch"; - url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/net-qemu_receive_packet-for-loopback-msf2.patch"; - sha256 = "04n1rzn6gfxdalp34903ysdhlvxqkfndnqayjj3iv1k27i5pcidn"; - }) - (fetchpatch { - name = "CVE-2021-3416.part-7.patch"; - url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/net-qemu_receive_packet-for-loopback-pcnet.patch"; - sha256 = "1p9ls6f8r6hxprj8ha6278fydcxj3av29p1hvszxmabazml2g7l2"; - }) - (fetchpatch { - name = "CVE-2021-3416.part-8.patch"; - url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/net-qemu_receive_packet-for-loopback-rtl8139.patch"; - sha256 = "0lms1zn49kpwblkp54widjjy7fwyhdh1x832l1jvds79l2nm6i04"; - }) - (fetchpatch { - name = "CVE-2021-3416.part-9.patch"; - url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/net-qemu_receive_packet-for-loopback-sungem.patch"; - sha256 = "1mkzyrgsp9ml9yqzjxdfqnwjr7n0fd8vxby4yp4ksrskyni8y0p4"; - }) - (fetchpatch { - name = "CVE-2021-3416.part-10.patch"; - url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/net-qemu_receive_packet-for-loopback-tx_pkt-iov.patch"; - sha256 = "1pwqq8yw06y3p6hah3dgjhsqzk802wbn7zyajla1zwdfpic63jss"; - }) - (fetchpatch { - name = "CVE-2021-3409.part-1.patch"; - url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/sdhci/dont-transfer-any-data-when-command-time-out.patch"; - sha256 = "0wf1yhb9mqpfgh9rv0hff0v1sw3zl2vsfgjrby4r8jvxdfjrxj8s"; - }) - (fetchpatch { - name = "CVE-2021-3409.part-2.patch"; - url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/sdhci/dont-write-to-SDHC_SYSAD-register-when-transfer-is-in-progress.patch"; - sha256 = "1dd405dsdc7fbp68yf6f32js1azsv3n595c6nbxh28kfh9lspx4v"; - }) - (fetchpatch { - name = "CVE-2021-3409.part-3.patch"; - url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/sdhci/correctly-set-the-controller-status-for-ADMA.patch"; - sha256 = "08jk51pfrbn1zfymahgllrzivajh2v2qx0868rv9zmgi0jldbky6"; - }) - (fetchpatch { - name = "CVE-2021-3409.part-4.patch"; - url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/sdhci/limit-block-size-only-when-SDHC_BLKSIZE-register-is-writable.patch"; - sha256 = "1valfhw3l83br1cny6n4kmrv0f416hl625mggayqfz4prsknyhh7"; - }) - (fetchpatch { - name = "CVE-2021-3409.part-5.patch"; - url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/sdhci/reset-the-data-pointer-of-s-fifo_buffer-when-a-different-block-size-is-programmed.patch"; - sha256 = "01p5qrr00rh3mlwrp3qq56h7yhqv0w7pw2cw035nxw3mnap03v31"; - }) - (fetchpatch { - name = "CVE-2021-3392.patch"; - url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/mptsas-remove-unused-MPTSASState.pending-CVE-2021-3392.patch"; - sha256 = "0n7dn2p102c21mf3ncqrnks0wl5kas6yspafbn8jd03ignjgc4hd"; - }) ] ++ optional nixosTestRunner ./force-uid0-on-9p.patch ++ optionals stdenv.hostPlatform.isMusl [ (fetchpatch { @@ -234,6 +114,8 @@ stdenv.mkDerivation rec { patchShebangs . # avoid conflicts with libc++ include for mv VERSION QEMU_VERSION + substituteInPlace configure \ + --replace '$source_path/VERSION' '$source_path/QEMU_VERSION' substituteInPlace meson.build \ --replace "'VERSION'" "'QEMU_VERSION'" '' + optionalString stdenv.hostPlatform.isMusl '' @@ -304,7 +186,7 @@ stdenv.mkDerivation rec { homepage = "http://www.qemu.org/"; description = "A generic and open source machine emulator and virtualizer"; license = licenses.gpl2Plus; - maintainers = with maintainers; [ eelco ]; - platforms = platforms.linux ++ platforms.darwin; + maintainers = with maintainers; [ eelco qyliss ]; + platforms = platforms.unix; }; } From 2bf2252d6a61f55a1ba5375968b8b3788ede0c93 Mon Sep 17 00:00:00 2001 From: Luke Granger-Brown Date: Sat, 1 May 2021 12:51:46 +0000 Subject: [PATCH 171/339] libsForQt5.libopenshot: tidy up nixpkgs-hammering comments * Remove now-unused dependency from arguments * Move swig to nativeBuildInputs * Add comment to fetchpatch --- pkgs/applications/video/openshot-qt/libopenshot.nix | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/video/openshot-qt/libopenshot.nix b/pkgs/applications/video/openshot-qt/libopenshot.nix index d635d6052cf..246c3d5cab8 100644 --- a/pkgs/applications/video/openshot-qt/libopenshot.nix +++ b/pkgs/applications/video/openshot-qt/libopenshot.nix @@ -2,7 +2,7 @@ , pkg-config, cmake, doxygen , libopenshot-audio, imagemagick, ffmpeg , swig, python3, jsoncpp -, unittest-cpp, cppzmq, zeromq +, cppzmq, zeromq , qtbase, qtmultimedia , llvmPackages }: @@ -20,6 +20,7 @@ stdenv.mkDerivation rec { }; patches = [ + # Fix build with GCC 10. (fetchpatch { name = "fix-build-with-gcc-10.patch"; url = "https://github.com/OpenShot/libopenshot/commit/13290364e7bea54164ab83d973951f2898ad9e23.diff"; @@ -33,10 +34,10 @@ stdenv.mkDerivation rec { export _REL_PYTHON_MODULE_PATH=$(toPythonPath $out) ''; - nativeBuildInputs = [ pkg-config cmake doxygen ]; + nativeBuildInputs = [ pkg-config cmake doxygen swig ]; buildInputs = - [ imagemagick ffmpeg swig python3 jsoncpp + [ imagemagick ffmpeg python3 jsoncpp cppzmq zeromq qtbase qtmultimedia ] ++ optional stdenv.isDarwin llvmPackages.openmp ; From 3b18aacd1f8b434294bcd74581615f91db0b6ad5 Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Sat, 1 May 2021 14:03:04 +0000 Subject: [PATCH 172/339] facter: 3.14.16 -> 3.14.17 --- pkgs/tools/system/facter/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/system/facter/default.nix b/pkgs/tools/system/facter/default.nix index 906ca618e46..d1d18809a5b 100644 --- a/pkgs/tools/system/facter/default.nix +++ b/pkgs/tools/system/facter/default.nix @@ -2,10 +2,10 @@ stdenv.mkDerivation rec { pname = "facter"; - version = "3.14.16"; + version = "3.14.17"; src = fetchFromGitHub { - sha256 = "sha256-VZIeyLJBlh5/r0EHinSiPiQyCNUBFBYjDZ6nTVnZBbE="; + sha256 = "sha256-RvsUt1DyN8Xr+Xtz84mbKlDwxLewgK6qklYVdQHu6q0="; rev = version; repo = pname; owner = "puppetlabs"; From d77daaf10b6a5cd8b756646974ba3da93fc3ce5f Mon Sep 17 00:00:00 2001 From: Ilan Joselevich <56614642+Kranzes@users.noreply.github.com> Date: Sat, 1 May 2021 18:22:14 +0300 Subject: [PATCH 173/339] virt-manager: 3.1.0 -> 3.2.0 (#120279) Co-authored-by: Sandro --- pkgs/applications/virtualization/virt-manager/default.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/applications/virtualization/virt-manager/default.nix b/pkgs/applications/virtualization/virt-manager/default.nix index 11ddaff8d3b..922d6fa9ff1 100644 --- a/pkgs/applications/virtualization/virt-manager/default.nix +++ b/pkgs/applications/virtualization/virt-manager/default.nix @@ -1,7 +1,7 @@ { lib, fetchurl, python3Packages, intltool, file , wrapGAppsHook, gtk-vnc, vte, avahi, dconf , gobject-introspection, libvirt-glib, system-libvirt -, gsettings-desktop-schemas, glib, libosinfo, gnome3 +, gsettings-desktop-schemas, libosinfo, gnome3 , gtksourceview4, docutils , spiceSupport ? true, spice-gtk ? null , cpio, e2fsprogs, findutils, gzip @@ -11,11 +11,11 @@ with lib; python3Packages.buildPythonApplication rec { pname = "virt-manager"; - version = "3.1.0"; + version = "3.2.0"; src = fetchurl { - url = "http://virt-manager.org/download/sources/virt-manager/${pname}-${version}.tar.gz"; - sha256 = "0al34lxlywqnj98hdm72a38zk8ns91wkqgrc3h1mhv1kikd8pjfc"; + url = "https://releases.pagure.org/virt-manager/${pname}-${version}.tar.gz"; + sha256 = "11kvpzcmyir91qz0dsnk7748jbb4wr8mrc744w117qc91pcy6vrb"; }; nativeBuildInputs = [ From 8c70a1a989bb9f4bdce93cd6ab632d00fa6c15a1 Mon Sep 17 00:00:00 2001 From: Lennart Spitzner Date: Sat, 1 May 2021 17:29:00 +0200 Subject: [PATCH 174/339] lib: fix documented type of fixedWidthString (#121396) --- lib/strings.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/strings.nix b/lib/strings.nix index 0f23b6b9d41..2e502588bf8 100644 --- a/lib/strings.nix +++ b/lib/strings.nix @@ -606,7 +606,7 @@ rec { This function will fail if the input string is longer than the requested length. - Type: fixedWidthString :: int -> string -> string + Type: fixedWidthString :: int -> string -> string -> string Example: fixedWidthString 5 "0" (toString 15) From ddf04685068c605ecaf4d080957932aa09db21cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=BCtz?= Date: Sat, 1 May 2021 16:11:05 +0200 Subject: [PATCH 175/339] google-drive-ocamlfuse: 0.7.22 -> 0.7.26 --- .../networking/google-drive-ocamlfuse/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/networking/google-drive-ocamlfuse/default.nix b/pkgs/applications/networking/google-drive-ocamlfuse/default.nix index 72ff8bd8b4b..29ae860cdad 100644 --- a/pkgs/applications/networking/google-drive-ocamlfuse/default.nix +++ b/pkgs/applications/networking/google-drive-ocamlfuse/default.nix @@ -4,7 +4,7 @@ buildDunePackage rec { pname = "google-drive-ocamlfuse"; - version = "0.7.22"; + version = "0.7.26"; useDune2 = true; @@ -14,7 +14,7 @@ buildDunePackage rec { owner = "astrada"; repo = "google-drive-ocamlfuse"; rev = "v${version}"; - sha256 = "027j1r2iy8vnbqs8bv893f0909yk5312ki5p3zh2pdz6s865h750"; + sha256 = "sha256-8s3DnpdYIVyJj5rtsof3WpLvX9wCrWU47dp4D6c986s="; }; buildInputs = [ ocaml_extlib ocamlfuse gapi_ocaml ocaml_sqlite3 ]; From ed3439be2f5ef719f233f5070b7e78829abc991f Mon Sep 17 00:00:00 2001 From: Git Machete Release Bot Date: Sat, 1 May 2021 15:46:24 +0000 Subject: [PATCH 176/339] gitAndTools.git-machete: 3.1.0 -> 3.1.1 ###### Motivation for this change Update to latest upstream version ###### Things done * [ ] Tested using sandboxing ([nix.useSandbox](http://nixos.org/nixos/manual/options.html#opt-nix.useSandbox) on NixOS, or option `sandbox` in [`nix.conf`](http://nixos.org/nix/manual/#sec-conf-file) on non-NixOS linux) * Built on platform(s) * [x] NixOS * [ ] macOS * [ ] other Linux distributions * [ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside [nixos/tests](https://github.com/NixOS/nixpkgs/blob/master/nixos/tests)) * [ ] Tested compilation of all pkgs that depend on this change using `nix-shell -p nix-review --run "nix-review wip"` * [x] Tested execution of all binary files (usually in `./result/bin/`) * [ ] Determined the impact on package closure size (by running `nix path-info -S` before and after) * [ ] Ensured that relevant documentation is up to date * [x] Fits [CONTRIBUTING.md](https://github.com/NixOS/nixpkgs/blob/master/.github/CONTRIBUTING.md). --- .../version-management/git-and-tools/git-machete/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/version-management/git-and-tools/git-machete/default.nix b/pkgs/applications/version-management/git-and-tools/git-machete/default.nix index 99772f60bc5..f93947d0515 100644 --- a/pkgs/applications/version-management/git-and-tools/git-machete/default.nix +++ b/pkgs/applications/version-management/git-and-tools/git-machete/default.nix @@ -4,11 +4,11 @@ buildPythonApplication rec { pname = "git-machete"; - version = "3.1.0"; + version = "3.1.1"; src = fetchPypi { inherit pname version; - sha256 = "0bb6ap8sdp4ad0xkh3y8vj46a363g5gdw0dzf9ycw0z9ah8ispfx"; + sha256 = "00f1rq80vya464dkvf3mzs9zpvkz15ki8srwg08snsm5kb7amwlm"; }; nativeBuildInputs = [ installShellFiles pbr ]; From 8776e9a6eda236607a956b3c984663e68a691487 Mon Sep 17 00:00:00 2001 From: Brandon Wright <71175207+branwright1@users.noreply.github.com> Date: Sat, 1 May 2021 17:18:33 +0100 Subject: [PATCH 177/339] Revert "river: refactor" --- .../window-managers/river/default.nix | 75 +++++-------------- 1 file changed, 17 insertions(+), 58 deletions(-) diff --git a/pkgs/applications/window-managers/river/default.nix b/pkgs/applications/window-managers/river/default.nix index d6869b4786f..9b40d34b6f2 100644 --- a/pkgs/applications/window-managers/river/default.nix +++ b/pkgs/applications/window-managers/river/default.nix @@ -1,19 +1,7 @@ -{ lib -, stdenv -, fetchFromGitHub -, libGL -, libX11 -, libevdev -, libxkbcommon -, pixman -, pkg-config -, scdoc -, udev -, wayland -, wayland-protocols -, wlroots -, xwayland -, zig +{ lib, stdenv ,fetchFromGitHub +, zig, wayland, pkg-config, scdoc +, xwayland, wayland-protocols, wlroots +, libxkbcommon, pixman, udev, libevdev, libX11, libGL }: stdenv.mkDerivation rec { @@ -24,62 +12,33 @@ stdenv.mkDerivation rec { owner = "ifreund"; repo = pname; rev = "0c8e718d95a6a621b9cba0caa9158915e567b076"; - sha256 = "sha256-c3lzsA2oml7DlfYA5mipHafF3Y3mqY1eJR6e2H8DUMo="; + sha256 = "1jjh0dzxi7hy4mg8vag6ipfwb9qxm5lfc07njp1mx6m81nq76ybk"; fetchSubmodules = true; }; - nativeBuildInputs = [ - pkg-config - scdoc - wayland-protocols - zig - ]; - buildInputs = [ - libGL - libX11 - libevdev - libxkbcommon - pixman - pixman - udev - wayland - wlroots - xwayland + buildInputs = [ xwayland wayland-protocols wlroots pixman + libxkbcommon pixman udev libevdev libX11 libGL ]; - dontConfigure = true; - - buildPhase = '' - runHook preBuild + preBuild = '' export HOME=$TMPDIR - zig build -Dman-pages -Drelease-safe -Dxwayland --prefix $out - runHook postBuild + ''; + installPhase = '' + zig build -Drelease-safe -Dxwayland -Dman-pages --prefix $out install ''; - installPhase = '' - runHook preInstall - zig build -Dman-pages -Drelease-safe -Dxwayland --prefix $out install - runHook postInstall - ''; + nativeBuildInputs = [ zig wayland scdoc pkg-config ]; + + installFlags = [ "DESTDIR=$(out)" ]; meta = with lib; { - homepage = "https://github.com/ifreund/river"; description = "A dynamic tiling wayland compositor"; longDescription = '' - river is a dynamic tiling wayland compositor that takes inspiration from - dwm and bspwm. - - Its design goals are: - - Simplicity and minimalism, river should not overstep the bounds of a - window manager. - - Window management based on a stack of views and tags. - - Dynamic layouts generated by external, user-written executables. - (A default rivertile layout generator is provided.) - - Scriptable configuration and control through a custom wayland protocol - and separate riverctl binary implementing it. + river is a dynamic tiling wayland compositor that takes inspiration from dwm and bspwm. ''; + homepage = "https://github.com/ifreund/river"; license = licenses.gpl3Plus; - maintainers = with maintainers; [ branwright1 AndersonTorres ]; platforms = platforms.linux; + maintainers = with maintainers; [ branwright1 ]; }; } From d05202ea7c026640c18c9d058aa24a0469e7930d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Milan=20P=C3=A4ssler?= Date: Sat, 1 May 2021 18:47:29 +0200 Subject: [PATCH 178/339] Revert "firefox-esr: use latest Rust" This reverts commit 903e23ad362ed19e95eaf7765af719db551dfbbe. It caused segfaults when playing media: https://github.com/NixOS/nixpkgs/issues/121408 --- .../networking/browsers/firefox/common.nix | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/networking/browsers/firefox/common.nix b/pkgs/applications/networking/browsers/firefox/common.nix index 0b79da754f8..24195e578bd 100644 --- a/pkgs/applications/networking/browsers/firefox/common.nix +++ b/pkgs/applications/networking/browsers/firefox/common.nix @@ -9,7 +9,7 @@ , hunspell, libevent, libstartup_notification , libvpx_1_8 , icu67, libpng, jemalloc, glib, pciutils -, autoconf213, which, gnused, rustPackages +, autoconf213, which, gnused, rustPackages, rustPackages_1_45 , rust-cbindgen, nodejs, nasm, fetchpatch , gnum4 , debugBuild ? false @@ -90,13 +90,19 @@ let then "/Applications/${binaryNameCapitalized}.app/Contents/MacOS" else "/bin"; - inherit (rustPackages) rustc cargo; + # 78 ESR won't build with rustc 1.47 + inherit (if lib.versionAtLeast ffversion "82" then rustPackages else rustPackages_1_45) + rustc cargo; # Darwin's stdenv provides the default llvmPackages version, match that since # clang LTO on Darwin is broken so the stdenv is not being changed. + # Target the LLVM version that rustc -Vv reports it is built with for LTO. + # rustPackages_1_45 -> LLVM 10, rustPackages -> LLVM 11 llvmPackages = if stdenv.isDarwin then buildPackages.llvmPackages - else buildPackages.llvmPackages_11; + else if lib.versionAtLeast rustc.llvm.version "11" + then buildPackages.llvmPackages_11 + else buildPackages.llvmPackages_10; # When LTO for Darwin is fixed, the following will need updating as lld # doesn't work on it. For now it is fine since ltoSupport implies no Darwin. From 64042dc2c6c075fa4b537729afa7ed84e1e6e35e Mon Sep 17 00:00:00 2001 From: Riey Date: Sun, 2 May 2021 01:58:06 +0900 Subject: [PATCH 179/339] kime: 2.5.2 -> 2.5.3 --- pkgs/tools/inputmethods/kime/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/tools/inputmethods/kime/default.nix b/pkgs/tools/inputmethods/kime/default.nix index 35ed99b5a42..33df3f53e67 100644 --- a/pkgs/tools/inputmethods/kime/default.nix +++ b/pkgs/tools/inputmethods/kime/default.nix @@ -16,18 +16,18 @@ let in stdenv.mkDerivation rec { pname = "kime"; - version = "2.5.2"; + version = "2.5.3"; src = fetchFromGitHub { owner = "Riey"; repo = pname; rev = "v${version}"; - sha256 = "10zd4yrqxzxf4nj3b5bsblcmlbqssxqq9pac0misa1g61jdbszj8"; + sha256 = "1kjw22hy2x90dc7xfm252v1pdr9x13mpm92rcgfy8zbkiqq242bl"; }; cargoDeps = rustPlatform.fetchCargoTarball { inherit src; - sha256 = "1bimi7020m7v287bh7via7zm9m7y13d13kqpd772xmpdbwrj8nrl"; + sha256 = "05kb9vnifaw01qw5cmdh4wzcf50szb0y00085wx41m8h4f28hfbk"; }; # Replace autostart path From c846fa1674b625ed0105baae504f84704faea337 Mon Sep 17 00:00:00 2001 From: Dmitry Kalinkin Date: Sat, 1 May 2021 13:11:28 -0400 Subject: [PATCH 180/339] xfitter: fix for darwin Fixes: 8984fc29 ('xfitter: fix build w/glibc-2.32') --- pkgs/applications/science/physics/xfitter/default.nix | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/science/physics/xfitter/default.nix b/pkgs/applications/science/physics/xfitter/default.nix index d0a0585e69f..4390826ccee 100644 --- a/pkgs/applications/science/physics/xfitter/default.nix +++ b/pkgs/applications/science/physics/xfitter/default.nix @@ -39,9 +39,10 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ gfortran which ]; buildInputs = - [ apfel apfelgrid applgrid blas lhapdf lapack mela root5 qcdnum libtirpc ] + [ apfel apfelgrid applgrid blas lhapdf lapack mela root5 qcdnum ] # pdf2yaml requires fmemopen and open_memstream which are not readily available on Darwin ++ lib.optional (!stdenv.isDarwin) libyaml + ++ lib.optional (stdenv.hostPlatform.libc == "glibc") libtirpc ; propagatedBuildInputs = [ lynx ]; @@ -49,8 +50,8 @@ stdenv.mkDerivation rec { hardeningDisable = [ "format" ]; - NIX_CFLAGS_COMPILE = [ "-I${libtirpc.dev}/include/tirpc" ]; - NIX_LDFLAGS = [ "-ltirpc" ]; + NIX_CFLAGS_COMPILE = lib.optional (stdenv.hostPlatform.libc == "glibc") "-I${libtirpc.dev}/include/tirpc"; + NIX_LDFLAGS = lib.optional (stdenv.hostPlatform.libc == "glibc") "-ltirpc"; meta = with lib; { description = "The xFitter project is an open source QCD fit framework ready to extract PDFs and assess the impact of new data"; From 291fd0ee7ee672ce68dcc3397c877ce5960a3d98 Mon Sep 17 00:00:00 2001 From: Luke Granger-Brown Date: Sat, 1 May 2021 17:40:21 +0000 Subject: [PATCH 181/339] doppler: 3.24.1 -> 3.24.3 --- pkgs/tools/security/doppler/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/security/doppler/default.nix b/pkgs/tools/security/doppler/default.nix index 5a8e80d6cd0..0f2dee26ffc 100644 --- a/pkgs/tools/security/doppler/default.nix +++ b/pkgs/tools/security/doppler/default.nix @@ -2,13 +2,13 @@ buildGoModule rec { pname = "doppler"; - version = "3.24.1"; + version = "3.24.3"; src = fetchFromGitHub { owner = "dopplerhq"; repo = "cli"; rev = version; - sha256 = "sha256-ZWYyi/Fv18dA8MeKzcFHHm62RF1NfPyveWIE8aI4UxU="; + sha256 = "sha256-G7oyyvrn+19N0C0V5MBwls+dQNzHh+DJmMTmsln8rC4="; }; vendorSha256 = "sha256-UaR/xYGMI+C9aID85aPSfVzmTWXj4KcjfOJ6TTJ8KoY="; From b63002b223e3bbb7be97563e857539ea1d562956 Mon Sep 17 00:00:00 2001 From: fortuneteller2k Date: Sun, 2 May 2021 01:42:47 +0800 Subject: [PATCH 182/339] papirus-icon-theme: 20210401 -> 20210501 --- pkgs/data/icons/papirus-icon-theme/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/data/icons/papirus-icon-theme/default.nix b/pkgs/data/icons/papirus-icon-theme/default.nix index ff18baf75f4..bd9ab1bb77b 100644 --- a/pkgs/data/icons/papirus-icon-theme/default.nix +++ b/pkgs/data/icons/papirus-icon-theme/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "papirus-icon-theme"; - version = "20210401"; + version = "20210501"; src = fetchFromGitHub { owner = "PapirusDevelopmentTeam"; repo = pname; rev = version; - sha256 = "sha256-t0zoeIpj+0QVH1wmbEIJdqzEDOGzpclePv+bcZgtnwo="; + sha256 = "sha256-3KH0oLeCev7WuoIOh4KBTiHTn2/aQlVrW5dpO+LSRT4="; }; nativeBuildInputs = [ From 33e867620eb1e27d44a35fb57944ce8a5bccfdab Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Sat, 24 Apr 2021 17:22:54 +0200 Subject: [PATCH 183/339] nixos/mosquitto: harden systemd unit MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It can still network, it can only access the ssl related files if ssl is enabled. ✗ PrivateNetwork= Service has access to the host's network 0.5 ✗ RestrictAddressFamilies=~AF_(INET|INET6) Service may allocate Internet sockets 0.3 ✗ DeviceAllow= Service has a device ACL with some special devices 0.1 ✗ IPAddressDeny= Service does not define an IP address allow list 0.2 ✗ RootDirectory=/RootImage= Service runs within the host's root directory 0.1 ✗ RestrictAddressFamilies=~AF_UNIX Service may allocate local sockets 0.1 → Overall exposure level for mosquitto.service: 1.1 OK 🙂 --- .../modules/services/networking/mosquitto.nix | 43 +++++++++++++++++-- nixos/tests/mosquitto.nix | 5 ++- 2 files changed, 43 insertions(+), 5 deletions(-) diff --git a/nixos/modules/services/networking/mosquitto.nix b/nixos/modules/services/networking/mosquitto.nix index 10b49d9b220..b98a717e658 100644 --- a/nixos/modules/services/networking/mosquitto.nix +++ b/nixos/modules/services/networking/mosquitto.nix @@ -233,15 +233,50 @@ in ExecStart = "${pkgs.mosquitto}/bin/mosquitto -c ${mosquittoConf}"; ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID"; - ProtectSystem = "strict"; - ProtectHome = true; + # Hardening + CapabilityBoundingSet = ""; + DevicePolicy = "closed"; + LockPersonality = true; + MemoryDenyWriteExecute = true; + NoNewPrivileges = true; PrivateDevices = true; PrivateTmp = true; - ReadWritePaths = "${cfg.dataDir}"; + PrivateUsers = true; + ProtectClock = true; ProtectControlGroups = true; + ProtectHome = true; + ProtectHostname = true; + ProtectKernelLogs = true; ProtectKernelModules = true; ProtectKernelTunables = true; - NoNewPrivileges = true; + ProtectProc = "invisible"; + ProcSubset = "pid"; + ProtectSystem = "strict"; + ReadWritePaths = [ + cfg.dataDir + "/tmp" # mosquitto_passwd creates files in /tmp before moving them + ]; + ReadOnlyPaths = with cfg.ssl; lib.optionals (enable) [ + certfile + keyfile + cafile + ]; + RemoveIPC = true; + RestrictAddressFamilies = [ + "AF_UNIX" # for sd_notify() call + "AF_INET" + "AF_INET6" + ]; + RestrictNamespaces = true; + RestrictRealtime = true; + RestrictSUIDSGID = true; + SystemCallArchitectures = "native"; + SystemCallFilter = [ + "@system-service" + "~@privileged" + "~@resources" + ]; + UMask = "0077"; }; preStart = '' rm -f ${cfg.dataDir}/passwd diff --git a/nixos/tests/mosquitto.nix b/nixos/tests/mosquitto.nix index 308c1396013..e29bd559ed9 100644 --- a/nixos/tests/mosquitto.nix +++ b/nixos/tests/mosquitto.nix @@ -1,4 +1,4 @@ -import ./make-test-python.nix ({ pkgs, ... }: +import ./make-test-python.nix ({ pkgs, lib, ... }: let port = 1888; @@ -30,6 +30,9 @@ in { ]; }; }; + + # disable private /tmp for this test + systemd.services.mosquitto.serviceConfig.PrivateTmp = lib.mkForce false; }; client1 = client; From a2d1d16af82b7133547353568c5af33bbfcdca28 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Thu, 29 Apr 2021 03:56:40 +0200 Subject: [PATCH 184/339] nixos/mosquitto: Migrate away from bind_address/port config keys Fixes these two deprecation warnings, by moving away from these options towards a simple listener configuration. > The 'bind_address' option is now deprecated and will be removed in a future version. The behaviour will default to true. > The 'port' option is now deprecated and will be removed in a future version. Please use 'listener' instead. Fixes: #120860 --- nixos/modules/services/networking/mosquitto.nix | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/nixos/modules/services/networking/mosquitto.nix b/nixos/modules/services/networking/mosquitto.nix index b98a717e658..8e814ffd0b9 100644 --- a/nixos/modules/services/networking/mosquitto.nix +++ b/nixos/modules/services/networking/mosquitto.nix @@ -20,8 +20,7 @@ let acl_file ${aclFile} persistence true allow_anonymous ${boolToString cfg.allowAnonymous} - bind_address ${cfg.host} - port ${toString cfg.port} + listener ${toString cfg.port} ${cfg.host} ${passwordConf} ${listenerConf} ${cfg.extraConf} From af688cc00e301cfe90a905a6a7e2c32b34988b22 Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Sat, 1 May 2021 13:49:59 +0200 Subject: [PATCH 185/339] python3.pkgs.cloudsmith-api: init at 0.54.15 --- .../python-modules/cloudsmith-api/default.nix | 42 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 44 insertions(+) create mode 100644 pkgs/development/python-modules/cloudsmith-api/default.nix diff --git a/pkgs/development/python-modules/cloudsmith-api/default.nix b/pkgs/development/python-modules/cloudsmith-api/default.nix new file mode 100644 index 00000000000..57316ae9d6c --- /dev/null +++ b/pkgs/development/python-modules/cloudsmith-api/default.nix @@ -0,0 +1,42 @@ +{ lib +, buildPythonPackage +, fetchPypi +, certifi +, six +, dateutil +, urllib3 +}: + +buildPythonPackage rec { + pname = "cloudsmith-api"; + version = "0.54.15"; + + format = "wheel"; + + src = fetchPypi { + pname = "cloudsmith_api"; + inherit format version; + sha256 = "X72xReosUnUlj69Gq+i+izhaKZuakM9mUrRHZI5L9h0="; + }; + + propagatedBuildInputs = [ + certifi + six + dateutil + urllib3 + ]; + + # Wheels have no tests + doCheck = false; + + pythonImportsCheck = [ + "cloudsmith_api" + ]; + + meta = with lib; { + description = "Cloudsmith API Client"; + homepage = "https://github.com/cloudsmith-io/cloudsmith-api"; + license = licenses.asl20; + maintainers = with maintainers; [ jtojnar ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index ec7afc633ea..e59e8da3440 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -1405,6 +1405,8 @@ in { cloudscraper = callPackage ../development/python-modules/cloudscraper { }; + cloudsmith-api = callPackage ../development/python-modules/cloudsmith-api { }; + clustershell = callPackage ../development/python-modules/clustershell { }; cma = callPackage ../development/python-modules/cma { }; From 0d55d38b4148a4f40b7d00361c87e368e1ca1dbf Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Sat, 1 May 2021 14:00:57 +0200 Subject: [PATCH 186/339] python3.pkgs.click-spinner: init at 0.1.10 --- .../python-modules/click-spinner/default.nix | 30 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 ++ 2 files changed, 32 insertions(+) create mode 100644 pkgs/development/python-modules/click-spinner/default.nix diff --git a/pkgs/development/python-modules/click-spinner/default.nix b/pkgs/development/python-modules/click-spinner/default.nix new file mode 100644 index 00000000000..e0d862ab131 --- /dev/null +++ b/pkgs/development/python-modules/click-spinner/default.nix @@ -0,0 +1,30 @@ +{ lib +, buildPythonPackage +, fetchPypi +, click +, six +, pytestCheckHook +}: + +buildPythonPackage rec { + pname = "click-spinner"; + version = "0.1.10"; + + src = fetchPypi { + inherit pname version; + sha256 = "h+rPnXKYlzol12Fe9X1Hgq6/kTpTK7pLKKN+Nm6XXa8="; + }; + + checkInputs = [ + click + six + pytestCheckHook + ]; + + meta = with lib; { + description = "Add support for showwing that command line app is active to Click"; + homepage = "https://github.com/click-contrib/click-spinner"; + license = licenses.mit; + maintainers = with maintainers; [ jtojnar ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index e59e8da3440..2978ea4db17 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -1371,6 +1371,8 @@ in { click-plugins = callPackage ../development/python-modules/click-plugins { }; + click-spinner = callPackage ../development/python-modules/click-spinner { }; + click-repl = callPackage ../development/python-modules/click-repl { }; click-threading = callPackage ../development/python-modules/click-threading { }; From d26d7713819ae913b575a45defd094fb7ee8e30a Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Sat, 1 May 2021 14:08:20 +0200 Subject: [PATCH 187/339] python3.pkgs.click-configfile: init at 0.2.3 --- .../click-configfile/default.nix | 38 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 40 insertions(+) create mode 100644 pkgs/development/python-modules/click-configfile/default.nix diff --git a/pkgs/development/python-modules/click-configfile/default.nix b/pkgs/development/python-modules/click-configfile/default.nix new file mode 100644 index 00000000000..0d87aa890d2 --- /dev/null +++ b/pkgs/development/python-modules/click-configfile/default.nix @@ -0,0 +1,38 @@ +{ lib +, buildPythonPackage +, fetchPypi +, click +, six +, pytestCheckHook +}: + +buildPythonPackage rec { + pname = "click-configfile"; + version = "0.2.3"; + + src = fetchPypi { + inherit pname version; + sha256 = "lb7sE77pUOmPQ8gdzavvT2RAkVWepmKY+drfWTUdkNE="; + }; + + propagatedBuildInputs = [ + click + six + ]; + + checkInputs = [ + pytestCheckHook + ]; + + disabledTests = [ + "test_configfile__with_unbound_section" + "test_matches_section__with_bad_arg" + ]; + + meta = with lib; { + description = "Add support for commands that use configuration files to Click"; + homepage = "https://github.com/click-contrib/click-configfile"; + license = licenses.bsd3; + maintainers = with maintainers; [ jtojnar ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 2978ea4db17..163fdf72b82 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -1359,6 +1359,8 @@ in { click-completion = callPackage ../development/python-modules/click-completion { }; + click-configfile = callPackage ../development/python-modules/click-configfile { }; + click-datetime = callPackage ../development/python-modules/click-datetime { }; click-default-group = callPackage ../development/python-modules/click-default-group { }; From 1818ef1785936f7f7df9a7489c80dcfac9856e7f Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Sat, 1 May 2021 14:09:39 +0200 Subject: [PATCH 188/339] cloudsmith-cli: init at 0.26.0 --- .../tools/cloudsmith-cli/default.nix | 43 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 2 files changed, 45 insertions(+) create mode 100644 pkgs/development/tools/cloudsmith-cli/default.nix diff --git a/pkgs/development/tools/cloudsmith-cli/default.nix b/pkgs/development/tools/cloudsmith-cli/default.nix new file mode 100644 index 00000000000..8de2bc1aeed --- /dev/null +++ b/pkgs/development/tools/cloudsmith-cli/default.nix @@ -0,0 +1,43 @@ +{ python3 +, lib +}: + +python3.pkgs.buildPythonApplication rec { + pname = "cloudsmith-cli"; + version = "0.26.0"; + + format = "wheel"; + + src = python3.pkgs.fetchPypi { + pname = "cloudsmith_cli"; + inherit format version; + sha256 = "c2W5+z+X4oRZxlNhB6for4mN4NeBX9MtEtmXhU5sz4A="; + }; + + propagatedBuildInputs = with python3.pkgs; [ + click + click-configfile + click-didyoumean + click-spinner + cloudsmith-api + colorama + future + requests + requests_toolbelt + semver + simplejson + six + setuptools # needs pkg_resources + ]; + + # Wheels have no tests + doCheck = false; + + meta = { + homepage = "https://help.cloudsmith.io/docs/cli/"; + description = "Cloudsmith Command Line Interface"; + maintainers = with lib.maintainers; [ jtojnar ]; + license = lib.licenses.asl20; + platforms = with lib.platforms; unix; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index fa4d6273180..a649cb50409 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1260,6 +1260,8 @@ in cloud-sql-proxy = callPackage ../tools/misc/cloud-sql-proxy { }; + cloudsmith-cli = callPackage ../development/tools/cloudsmith-cli { }; + codeql = callPackage ../development/tools/analysis/codeql { }; container-linux-config-transpiler = callPackage ../development/tools/container-linux-config-transpiler { }; From f667c13b66ec4492fe12d8bf5c3b736ea17c72c5 Mon Sep 17 00:00:00 2001 From: Luke Granger-Brown Date: Sat, 1 May 2021 18:03:56 +0000 Subject: [PATCH 189/339] clevis: fix TPM2 encrypt/decrypt This also fixes using the "clevis" entrypoint binary without making sure that all the other tooling is in the PATH. --- pkgs/tools/security/clevis/default.nix | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/pkgs/tools/security/clevis/default.nix b/pkgs/tools/security/clevis/default.nix index e5415f6d09b..753fd8a6395 100644 --- a/pkgs/tools/security/clevis/default.nix +++ b/pkgs/tools/security/clevis/default.nix @@ -1,5 +1,6 @@ { lib, stdenv, fetchFromGitHub, meson, ninja, pkg-config, asciidoc -, jansson, jose, cryptsetup, curl, libpwquality, luksmeta +, makeWrapper, jansson, jose, cryptsetup, curl, libpwquality, luksmeta +, coreutils, tpm2-tools }: stdenv.mkDerivation rec { @@ -13,8 +14,21 @@ stdenv.mkDerivation rec { sha256 = "sha256-m1UhyjD5ydSgCTBu6sECLlxFx0rnQxFnBA7frbdUqU8="; }; - nativeBuildInputs = [ meson ninja pkg-config asciidoc ]; - buildInputs = [ jansson jose cryptsetup curl libpwquality luksmeta ]; + postPatch = '' + for f in $(find src/ -type f); do + grep -q "/bin/cat" "$f" && substituteInPlace "$f" \ + --replace '/bin/cat' '${coreutils}/bin/cat' || true + done + ''; + + postInstall = '' + # We wrap the main clevis binary entrypoint but not the sub-binaries. + wrapProgram $out/bin/clevis \ + --prefix PATH ':' "${tpm2-tools}/bin:${jose}/bin:${placeholder "out"}/bin" + ''; + + nativeBuildInputs = [ meson ninja pkg-config asciidoc makeWrapper ]; + buildInputs = [ jansson jose cryptsetup curl libpwquality luksmeta tpm2-tools ]; outputs = [ "out" "man" ]; From 049efb917104b2476b4aaf13fa1a5b7444621baf Mon Sep 17 00:00:00 2001 From: Alyssa Ross Date: Sat, 1 May 2021 11:35:07 +0000 Subject: [PATCH 190/339] xen: fix build with GCC 10 Fixes: https://github.com/NixOS/nixpkgs/issues/108479 --- pkgs/applications/virtualization/xen/4.10.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/applications/virtualization/xen/4.10.nix b/pkgs/applications/virtualization/xen/4.10.nix index bc9003e128a..765baa0a3b4 100644 --- a/pkgs/applications/virtualization/xen/4.10.nix +++ b/pkgs/applications/virtualization/xen/4.10.nix @@ -160,6 +160,9 @@ callPackage (import ./generic.nix (rec { "-Wno-error=address-of-packed-member" "-Wno-error=format-overflow" "-Wno-error=absolute-value" + # Fix build with GCC 10 + "-Wno-error=enum-conversion" + "-Wno-error=zero-length-bounds" ]; postPatch = '' From c02b4629530fbf61398720fdadd6f746df9bd36d Mon Sep 17 00:00:00 2001 From: Luke Granger-Brown Date: Sat, 1 May 2021 18:09:53 +0000 Subject: [PATCH 191/339] charliecloud: remove unused python3Packages argument --- pkgs/applications/virtualization/charliecloud/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/applications/virtualization/charliecloud/default.nix b/pkgs/applications/virtualization/charliecloud/default.nix index 23677dddd7f..f6d7ce3d619 100644 --- a/pkgs/applications/virtualization/charliecloud/default.nix +++ b/pkgs/applications/virtualization/charliecloud/default.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, fetchFromGitHub, python3, python3Packages, docker, autoreconfHook, coreutils, makeWrapper, gnused, gnutar, gzip, findutils, sudo, nixosTests }: +{ lib, stdenv, fetchFromGitHub, python3, docker, autoreconfHook, coreutils, makeWrapper, gnused, gnutar, gzip, findutils, sudo, nixosTests }: stdenv.mkDerivation rec { From c6325c8325c597560c0f67915516cd1d49928bcc Mon Sep 17 00:00:00 2001 From: Michael Weiss Date: Sat, 1 May 2021 20:15:42 +0200 Subject: [PATCH 192/339] nixos/tests: Replace QEMU_OPTS usages with virtualisation.qemu.options See [0]: "QEMU_OPTS is something that should be set by people running VM tests interactively, to do port forwardings etc. We really should not poke with it from the test script - that's what virtualisation.qemu.options is for." [0]: https://github.com/NixOS/nixpkgs/pull/119615#discussion_r624145020 Co-authored-by: Florian Klink --- nixos/tests/cage.nix | 9 ++++----- nixos/tests/os-prober.nix | 8 +++----- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/nixos/tests/cage.nix b/nixos/tests/cage.nix index 53476c2fbe8..80ce1e0d8b3 100644 --- a/nixos/tests/cage.nix +++ b/nixos/tests/cage.nix @@ -18,6 +18,10 @@ import ./make-test-python.nix ({ pkgs, ...} : }; virtualisation.memorySize = 1024; + # Need to switch to a different VGA card / GPU driver because Cage segfaults with the default one (std): + # machine # [ 14.355893] .cage-wrapped[736]: segfault at 20 ip 00007f035fa0d8c7 sp 00007ffce9e4a2f0 error 4 in libwlroots.so.8[7f035fa07000+5a000] + # machine # [ 14.358108] Code: 4f a8 ff ff eb aa 0f 1f 44 00 00 c3 0f 1f 80 00 00 00 00 41 54 49 89 f4 55 31 ed 53 48 89 fb 48 8d 7f 18 48 8d 83 b8 00 00 00 <80> 7f 08 00 75 0d 48 83 3f 00 0f 85 91 00 00 00 48 89 fd 48 83 c7 + virtualisation.qemu.options = [ "-vga virtio" ]; }; enableOCR = true; @@ -25,11 +29,6 @@ import ./make-test-python.nix ({ pkgs, ...} : testScript = { nodes, ... }: let user = nodes.machine.config.users.users.alice; in '' - # Need to switch to a different VGA card / GPU driver because Cage segfaults with the default one (std): - # machine # [ 14.355893] .cage-wrapped[736]: segfault at 20 ip 00007f035fa0d8c7 sp 00007ffce9e4a2f0 error 4 in libwlroots.so.8[7f035fa07000+5a000] - # machine # [ 14.358108] Code: 4f a8 ff ff eb aa 0f 1f 44 00 00 c3 0f 1f 80 00 00 00 00 41 54 49 89 f4 55 31 ed 53 48 89 fb 48 8d 7f 18 48 8d 83 b8 00 00 00 <80> 7f 08 00 75 0d 48 83 3f 00 0f 85 91 00 00 00 48 89 fd 48 83 c7 - os.environ["QEMU_OPTS"] = "-vga virtio" - with subtest("Wait for cage to boot up"): start_all() machine.wait_for_file("/run/user/${toString user.uid}/wayland-0.lock") diff --git a/nixos/tests/os-prober.nix b/nixos/tests/os-prober.nix index f778d30bdc0..3cc38ebe347 100644 --- a/nixos/tests/os-prober.nix +++ b/nixos/tests/os-prober.nix @@ -69,6 +69,9 @@ in { imports = [ ../modules/profiles/installation-device.nix ../modules/profiles/base.nix ]; virtualisation.memorySize = 1300; + # To add the secondary disk: + virtualisation.qemu.options = [ "-drive index=2,file=${debianImage}/disk-image.qcow2,read-only,if=virtio" ]; + # The test cannot access the network, so any packages # nixos-rebuild needs must be included in the VM. system.extraDependencies = with pkgs; @@ -95,11 +98,6 @@ in { }); testScript = '' - # hack to add the secondary disk - os.environ[ - "QEMU_OPTS" - ] = "-drive index=2,file=${debianImage}/disk-image.qcow2,read-only,if=virtio" - machine.start() machine.succeed("udevadm settle") machine.wait_for_unit("multi-user.target") From 039101ad945b1b3b90a3e6a592f6200770518a42 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl=20de=20Kok?= Date: Sat, 1 May 2021 11:40:48 +0200 Subject: [PATCH 193/339] libtorch-bin: 1.8.0 -> 1.8.1 Changelog: https://github.com/pytorch/pytorch/releases/tag/v1.8.1 --- pkgs/development/libraries/science/math/libtorch/bin.nix | 2 +- .../libraries/science/math/libtorch/binary-hashes.nix | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/development/libraries/science/math/libtorch/bin.nix b/pkgs/development/libraries/science/math/libtorch/bin.nix index 481836a4e11..87b5835aa9e 100644 --- a/pkgs/development/libraries/science/math/libtorch/bin.nix +++ b/pkgs/development/libraries/science/math/libtorch/bin.nix @@ -18,7 +18,7 @@ let # this derivation. However, we should ensure on version bumps # that the CUDA toolkit for `passthru.tests` is still # up-to-date. - version = "1.8.0"; + version = "1.8.1"; device = if cudaSupport then "cuda" else "cpu"; srcs = import ./binary-hashes.nix version; unavailable = throw "libtorch is not available for this platform"; diff --git a/pkgs/development/libraries/science/math/libtorch/binary-hashes.nix b/pkgs/development/libraries/science/math/libtorch/binary-hashes.nix index 208e0b7adab..ec4522a7559 100644 --- a/pkgs/development/libraries/science/math/libtorch/binary-hashes.nix +++ b/pkgs/development/libraries/science/math/libtorch/binary-hashes.nix @@ -1,14 +1,14 @@ version: { x86_64-darwin-cpu = { url = "https://download.pytorch.org/libtorch/cpu/libtorch-macos-${version}.zip"; - hash = "sha256-V1lbztMB09wyWjdiJrwVwJ00DT8Kihy/TC2cKmdBLIE="; + hash = "sha256-FYgnd5zlycjCYnP5bZcjpMdGYXrRERwhFFBYo/SJgzs="; }; x86_64-linux-cpu = { url = "https://download.pytorch.org/libtorch/cpu/libtorch-cxx11-abi-shared-with-deps-${version}%2Bcpu.zip"; - hash = "sha256-xBaNyI7eiQnSArHMITonrQQLZnZCZK/SWKOTWnxzdpc="; + hash = "sha256-xneCcVrY25Whgbs/kPbwdS1Lc0e6RxsDRpA5lHTZigc="; }; x86_64-linux-cuda = { url = "https://download.pytorch.org/libtorch/cu111/libtorch-cxx11-abi-shared-with-deps-${version}%2Bcu111.zip"; - hash = "sha256-uQ7ptOuzowJ0JSPIvJHyNotBfpsqAnxpMDLq7Vl6L00="; + hash = "sha256-VW+TW00nD49GBztCyxHE4dTyy81aN/kfYE3hKQOIm50="; }; } From 303977634c10e495cdb4855ffe00fc02ac9801c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl=20de=20Kok?= Date: Sat, 1 May 2021 11:41:47 +0200 Subject: [PATCH 194/339] libtorch-bin: fix false CUDA dependency in passthru test The passthru test used the CUDA toolkit for the CUDA stub unconditionally, also requiring the cudatoolkit derivation when cudaSupport = false. --- .../libraries/science/math/libtorch/test/default.nix | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/science/math/libtorch/test/default.nix b/pkgs/development/libraries/science/math/libtorch/test/default.nix index 60f9b5ad884..eaea649d434 100644 --- a/pkgs/development/libraries/science/math/libtorch/test/default.nix +++ b/pkgs/development/libraries/science/math/libtorch/test/default.nix @@ -42,8 +42,9 @@ in stdenv.mkDerivation { touch $out ''; - checkPhase = '' + checkPhase = lib.optionalString cudaSupport '' LD_LIBRARY_PATH=${cudaStub}''${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH \ - ./test + '' + '' + ./test ''; } From 4226837368068600e6afd11b5cbc6d586c7b5fa9 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Sat, 1 May 2021 12:16:29 +0200 Subject: [PATCH 195/339] python3Packages.python-language-server: disable when python>=3.9 The package is not supported on anything newer than 3.8 yet. --- .../python-modules/python-language-server/default.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pkgs/development/python-modules/python-language-server/default.nix b/pkgs/development/python-modules/python-language-server/default.nix index b776a784c8e..daab437c979 100644 --- a/pkgs/development/python-modules/python-language-server/default.nix +++ b/pkgs/development/python-modules/python-language-server/default.nix @@ -1,4 +1,4 @@ -{ lib, buildPythonPackage, fetchFromGitHub, pythonOlder, isPy27 +{ lib, buildPythonPackage, fetchFromGitHub, pythonAtLeast, pythonOlder, isPy27 , backports_functools_lru_cache ? null, configparser ? null, futures ? null, future, jedi, pluggy, python-jsonrpc-server, flake8 , pytestCheckHook, mock, pytestcov, coverage, setuptools, ujson, flaky , # Allow building a limited set of providers, e.g. ["pycodestyle"]. @@ -22,6 +22,8 @@ in buildPythonPackage rec { pname = "python-language-server"; version = "0.36.2"; + # https://github.com/palantir/python-language-server/issues/896#issuecomment-752790868 + disabled = pythonAtLeast "3.9"; src = fetchFromGitHub { owner = "palantir"; From e6cc77ea8d16f47282eb5c5f14b8bb10b5c48640 Mon Sep 17 00:00:00 2001 From: Bruno Bigras Date: Sat, 1 May 2021 14:49:50 -0400 Subject: [PATCH 196/339] starship: 0.52.1 -> 0.53.0 --- pkgs/tools/misc/starship/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/tools/misc/starship/default.nix b/pkgs/tools/misc/starship/default.nix index 1e3eae78701..40913193163 100644 --- a/pkgs/tools/misc/starship/default.nix +++ b/pkgs/tools/misc/starship/default.nix @@ -11,13 +11,13 @@ rustPlatform.buildRustPackage rec { pname = "starship"; - version = "0.52.1"; + version = "0.53.0"; src = fetchFromGitHub { owner = "starship"; repo = pname; rev = "v${version}"; - sha256 = "sha256-BX+NUF7mgZyrloj3h9YcG2r6ZZWO20hXQYbBvaK34JQ="; + sha256 = "sha256-g4w14fktJB8TItgm3nSgG+lpdXdNTpX52J+FsIbU+YY="; }; nativeBuildInputs = [ installShellFiles ] ++ lib.optionals stdenv.isLinux [ pkg-config ]; @@ -32,7 +32,7 @@ rustPlatform.buildRustPackage rec { done ''; - cargoSha256 = "sha256-8xqbPkdIVfAkeG1WZFq56N0rcF+uh2FeMKzz4FgMFYs="; + cargoSha256 = "sha256-9wpr1gs9EehmFzCW2kKDx+LKoDUC27fmhjpcH/fIcyY="; preCheck = '' HOME=$TMPDIR From 92041277ce6a379a50d9ada8680aa5ed8d1bc118 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=BCtz?= Date: Sat, 1 May 2021 21:22:32 +0200 Subject: [PATCH 197/339] ophis: fix build --- pkgs/development/compilers/ophis/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/compilers/ophis/default.nix b/pkgs/development/compilers/ophis/default.nix index f28513a9bb2..2ddfa849b66 100644 --- a/pkgs/development/compilers/ophis/default.nix +++ b/pkgs/development/compilers/ophis/default.nix @@ -11,7 +11,7 @@ buildPythonApplication rec { sha256 = "2x8vwLTSngqQqmVrVh/mM4peATgaRqOSwrfm5XCkg/g="; }; - sourceRoot = "./src"; + sourceRoot = "${src.name}/src"; meta = with lib; { homepage = "http://michaelcmartin.github.io/Ophis/"; From 38499a3b086fa47f87410a754e4d8efc7a0fcae6 Mon Sep 17 00:00:00 2001 From: Patrick Hilhorst Date: Sat, 1 May 2021 21:58:31 +0200 Subject: [PATCH 198/339] j: 901f -> 902b --- pkgs/development/interpreters/j/default.nix | 6 +++--- pkgs/top-level/all-packages.nix | 4 +++- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/pkgs/development/interpreters/j/default.nix b/pkgs/development/interpreters/j/default.nix index 8875a9cf55e..e41d71ef960 100644 --- a/pkgs/development/interpreters/j/default.nix +++ b/pkgs/development/interpreters/j/default.nix @@ -4,13 +4,13 @@ stdenv.mkDerivation rec { pname = "j"; - version = "901"; - jtype = "release-f"; + version = "902"; + jtype = "release-b"; src = fetchFromGitHub { owner = "jsoftware"; repo = "jsource"; rev = "j${version}-${jtype}"; - sha256 = "1776021m0j1aanzwg60by83n53pw7i6afd5wplfzczwk8bywax4p"; + sha256 = "0j67vgikqflwjqacsdicasvyv1k54s2c8vjgwmf0ix7l41p4xqz0"; name = "jsource"; }; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index cd038c72939..675b553cc59 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -11808,7 +11808,9 @@ in io = callPackage ../development/interpreters/io { }; - j = callPackage ../development/interpreters/j {}; + j = callPackage ../development/interpreters/j { + stdenv = clangStdenv; + }; janet = callPackage ../development/interpreters/janet {}; From 38033cd97147467834a3555e4b9cda5a59e489f0 Mon Sep 17 00:00:00 2001 From: legendofmiracles Date: Sat, 1 May 2021 22:06:01 +0200 Subject: [PATCH 199/339] neofetch: set meta.mainProgram --- pkgs/tools/misc/neofetch/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/tools/misc/neofetch/default.nix b/pkgs/tools/misc/neofetch/default.nix index d9287003084..68cebca4bc3 100644 --- a/pkgs/tools/misc/neofetch/default.nix +++ b/pkgs/tools/misc/neofetch/default.nix @@ -34,5 +34,6 @@ stdenvNoCC.mkDerivation rec { license = licenses.mit; platforms = platforms.all; maintainers = with maintainers; [ alibabzo konimex ]; + mainProgram = "neofetch"; }; } From 510fc9cd8f97f6c7fc04f0346089a87b1000f71f Mon Sep 17 00:00:00 2001 From: Luke Granger-Brown Date: Sat, 1 May 2021 18:52:56 +0000 Subject: [PATCH 200/339] jetbrains: update jetbrains.clion: 2021.1 -> 2021.1.1 jetbrains.datagrip: 2021.1 -> 2021.1.1 jetbrains.goland: 2021.1 -> 2021.1.1 jetbrains.idea-community: 2021.1 -> 2021.1.1 jetbrains.idea-ultimate: 2021.1 -> 2021.1.1 jetbrains.phpstorm: 2021.1 -> 2021.1.2 jetbrains.pycharm-community: 2021.1 -> 2021.1.1 jetbrains.pycharm-professional: 2021.1 -> 2021.1.1 jetbrains.rider: 2021.1.1 -> 2021.1.2 jetbrains.ruby-mine: 2021.1 -> 2021.1.1 jetbrains.webstorm: 2021.1 -> 2021.1.1 --- .../editors/jetbrains/default.nix | 44 +++++++++---------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/pkgs/applications/editors/jetbrains/default.nix b/pkgs/applications/editors/jetbrains/default.nix index 16d7bf7dd16..32159e3ebd2 100644 --- a/pkgs/applications/editors/jetbrains/default.nix +++ b/pkgs/applications/editors/jetbrains/default.nix @@ -242,12 +242,12 @@ in clion = buildClion rec { name = "clion-${version}"; - version = "2021.1"; /* updated by script */ + version = "2021.1.1"; /* updated by script */ description = "C/C++ IDE. New. Intelligent. Cross-platform"; license = lib.licenses.unfree; src = fetchurl { url = "https://download.jetbrains.com/cpp/CLion-${version}.tar.gz"; - sha256 = "1qq2k14pf2qy93y1xchlv08vvx99zcml8bdcx3h6jnjz6d7gz0px"; /* updated by script */ + sha256 = "0xzlkf3gq6fcb0q9mcj8k39880l8h21pb1lz0xl2dqj8cfwpws9h"; /* updated by script */ }; wmClass = "jetbrains-clion"; update-channel = "CLion RELEASE"; # channel's id as in http://www.jetbrains.com/updates/updates.xml @@ -255,12 +255,12 @@ in datagrip = buildDataGrip rec { name = "datagrip-${version}"; - version = "2021.1"; /* updated by script */ + version = "2021.1.1"; /* updated by script */ description = "Your Swiss Army Knife for Databases and SQL"; license = lib.licenses.unfree; src = fetchurl { url = "https://download.jetbrains.com/datagrip/${name}.tar.gz"; - sha256 = "11am11lkrhgfianr1apkkl4mn8gcsf6p1vz47y7lz4rfm05ac4gj"; /* updated by script */ + sha256 = "0smg0qbk3mnm2543w0nlvnyvbwmprf0p3z2spwrmcmfagv50crrx"; /* updated by script */ }; wmClass = "jetbrains-datagrip"; update-channel = "DataGrip RELEASE"; @@ -268,12 +268,12 @@ in goland = buildGoland rec { name = "goland-${version}"; - version = "2021.1"; /* updated by script */ + version = "2021.1.1"; /* updated by script */ description = "Up and Coming Go IDE"; license = lib.licenses.unfree; src = fetchurl { url = "https://download.jetbrains.com/go/${name}.tar.gz"; - sha256 = "1hxid7k5b26hiwwdxbvhi1fzhlrvm1xsd5gb0vj0g5zw658y2lzz"; /* updated by script */ + sha256 = "02fyrq4px9w34amincgjgm6maxpxn445j5h4nfbskx7z428ynx25"; /* updated by script */ }; wmClass = "jetbrains-goland"; update-channel = "GoLand RELEASE"; @@ -281,12 +281,12 @@ in idea-community = buildIdea rec { name = "idea-community-${version}"; - version = "2021.1"; /* updated by script */ + version = "2021.1.1"; /* updated by script */ description = "Integrated Development Environment (IDE) by Jetbrains, community edition"; license = lib.licenses.asl20; src = fetchurl { url = "https://download.jetbrains.com/idea/ideaIC-${version}.tar.gz"; - sha256 = "1d7m39rzdgh2fyx50rpifqfsdmvfpi04hjp52pl76m35gyb5hsvs"; /* updated by script */ + sha256 = "1say19p7kgx4b2ccs9bv61phllzhl8gmrd1fp1a5cnagya7vl1c5"; /* updated by script */ }; wmClass = "jetbrains-idea-ce"; update-channel = "IntelliJ IDEA RELEASE"; @@ -294,12 +294,12 @@ in idea-ultimate = buildIdea rec { name = "idea-ultimate-${version}"; - version = "2021.1"; /* updated by script */ + version = "2021.1.1"; /* updated by script */ description = "Integrated Development Environment (IDE) by Jetbrains, requires paid license"; license = lib.licenses.unfree; src = fetchurl { url = "https://download.jetbrains.com/idea/ideaIU-${version}-no-jbr.tar.gz"; - sha256 = "062kaph42xs5hc01sbmry4cm7nkyjks43qr5m7pbj5a2bgd7zzgx"; /* updated by script */ + sha256 = "19zi4njz79z8gi458kz1m0sia79y3rhbayix4rmh93mwfc0npkii"; /* updated by script */ }; wmClass = "jetbrains-idea"; update-channel = "IntelliJ IDEA RELEASE"; @@ -320,12 +320,12 @@ in phpstorm = buildPhpStorm rec { name = "phpstorm-${version}"; - version = "2021.1"; /* updated by script */ + version = "2021.1.2"; /* updated by script */ description = "Professional IDE for Web and PHP developers"; license = lib.licenses.unfree; src = fetchurl { url = "https://download.jetbrains.com/webide/PhpStorm-${version}.tar.gz"; - sha256 = "052m7mqa1s548my0gda9y2mysi2ijq27c9b3bskrwqsf1pm5ry63"; /* updated by script */ + sha256 = "02s75fqd9hfh302zha4jw6qynpgm9nkrlq7s78nk3fc3d3hw8v5y"; /* updated by script */ }; wmClass = "jetbrains-phpstorm"; update-channel = "PhpStorm RELEASE"; @@ -333,12 +333,12 @@ in pycharm-community = buildPycharm rec { name = "pycharm-community-${version}"; - version = "2021.1"; /* updated by script */ + version = "2021.1.1"; /* updated by script */ description = "PyCharm Community Edition"; license = lib.licenses.asl20; src = fetchurl { url = "https://download.jetbrains.com/python/${name}.tar.gz"; - sha256 = "1iiglh7s2zm37kj6hzlzxb1jnzh2p0j1f2zzhg3nqyrrakfbyq3h"; /* updated by script */ + sha256 = "04bs9sz872b0h1zzax23irvj6q5wxnzp6fl4f177j94kh4116cqh"; /* updated by script */ }; wmClass = "jetbrains-pycharm-ce"; update-channel = "PyCharm RELEASE"; @@ -346,12 +346,12 @@ in pycharm-professional = buildPycharm rec { name = "pycharm-professional-${version}"; - version = "2021.1"; /* updated by script */ + version = "2021.1.1"; /* updated by script */ description = "PyCharm Professional Edition"; license = lib.licenses.unfree; src = fetchurl { url = "https://download.jetbrains.com/python/${name}.tar.gz"; - sha256 = "1n3b4mdygzal7w88gwka5wh5jp09bh2zmm4n5rz9s7hr2srz71mz"; /* updated by script */ + sha256 = "0wc9j7nilakmm7scf7a71zb3k9vixgih05ni3n3pp4iznvwb3nxg"; /* updated by script */ }; wmClass = "jetbrains-pycharm"; update-channel = "PyCharm RELEASE"; @@ -359,12 +359,12 @@ in rider = buildRider rec { name = "rider-${version}"; - version = "2021.1.1"; /* updated by script */ + version = "2021.1.2"; /* updated by script */ description = "A cross-platform .NET IDE based on the IntelliJ platform and ReSharper"; license = lib.licenses.unfree; src = fetchurl { url = "https://download.jetbrains.com/rider/JetBrains.Rider-${version}.tar.gz"; - sha256 = "00kdbsjw9hmq7x94pjscslv0b412g8l0jbvyi7jiyay8xc6wiaaj"; /* updated by script */ + sha256 = "1a28pi18j0cb2wxhw1vnfg9gqsgf2kyfg0hl4xgqp50gzv7i3aam"; /* updated by script */ }; wmClass = "jetbrains-rider"; update-channel = "Rider RELEASE"; @@ -372,12 +372,12 @@ in ruby-mine = buildRubyMine rec { name = "ruby-mine-${version}"; - version = "2021.1"; /* updated by script */ + version = "2021.1.1"; /* updated by script */ description = "The Most Intelligent Ruby and Rails IDE"; license = lib.licenses.unfree; src = fetchurl { url = "https://download.jetbrains.com/ruby/RubyMine-${version}.tar.gz"; - sha256 = "12mkb51x1w5wbx436pfnfzcad10qd53y43n0p4l2zg9yx985gm7v"; /* updated by script */ + sha256 = "05sfjf5523idsl7byc7400r4xqv1d65gpmkh5x0lbgf1k3bx2wlm"; /* updated by script */ }; wmClass = "jetbrains-rubymine"; update-channel = "RubyMine RELEASE"; @@ -385,12 +385,12 @@ in webstorm = buildWebStorm rec { name = "webstorm-${version}"; - version = "2021.1"; /* updated by script */ + version = "2021.1.1"; /* updated by script */ description = "Professional IDE for Web and JavaScript development"; license = lib.licenses.unfree; src = fetchurl { url = "https://download.jetbrains.com/webstorm/WebStorm-${version}.tar.gz"; - sha256 = "15i521qj2b0y1viqr0xx815ckpq359j6nars4xxq8xvy7cg729yc"; /* updated by script */ + sha256 = "1hici40qsxj2fw29g68i6hr1vhr0h7xrlhkialy74ah53wi7myz1"; /* updated by script */ }; wmClass = "jetbrains-webstorm"; update-channel = "WebStorm RELEASE"; From 937a47700ca036091105c2818c83448ce145e912 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=BCtz?= Date: Sat, 1 May 2021 22:25:33 +0200 Subject: [PATCH 201/339] ytfzf: 1.1.4 -> 1.1.5 https://github.com/pystardust/ytfzf/releases/tag/v1.1.5 --- pkgs/tools/misc/ytfzf/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/misc/ytfzf/default.nix b/pkgs/tools/misc/ytfzf/default.nix index ba1658f3d1d..8c93d02c359 100644 --- a/pkgs/tools/misc/ytfzf/default.nix +++ b/pkgs/tools/misc/ytfzf/default.nix @@ -16,13 +16,13 @@ stdenv.mkDerivation rec { pname = "ytfzf"; - version = "1.1.4"; + version = "1.1.5"; src = fetchFromGitHub { owner = "pystardust"; repo = "ytfzf"; rev = "v${version}"; - sha256 = "sha256-zRzd+rZxT5IJoFJl9sutTdQC4eMDUCBld5bTGfQWtco="; + sha256 = "sha256-NkJjh/Ys0Ypm8NTy/ZrQ4hIAjP5VGrpU73wjAMsZnAc="; }; patches = [ From a4cd25533dd14d63f0a486352c6f2c0b0fbfac37 Mon Sep 17 00:00:00 2001 From: Pavol Rusnak Date: Sat, 1 May 2021 22:27:10 +0200 Subject: [PATCH 202/339] bitcoin: 0.21.0 -> 0.21.1 --- pkgs/applications/blockchains/bitcoin.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/blockchains/bitcoin.nix b/pkgs/applications/blockchains/bitcoin.nix index b241fcc49ee..1f222477ab2 100644 --- a/pkgs/applications/blockchains/bitcoin.nix +++ b/pkgs/applications/blockchains/bitcoin.nix @@ -22,7 +22,7 @@ with lib; let - version = "0.21.0"; + version = "0.21.1"; majorMinorVersion = versions.majorMinor version; desktop = fetchurl { url = "https://raw.githubusercontent.com/bitcoin-core/packaging/${majorMinorVersion}/debian/bitcoin-qt.desktop"; @@ -38,7 +38,7 @@ stdenv.mkDerivation rec { "https://bitcoincore.org/bin/bitcoin-core-${version}/bitcoin-${version}.tar.gz" "https://bitcoin.org/bin/bitcoin-core-${version}/bitcoin-${version}.tar.gz" ]; - sha256 = "1a91202c62ee49fb64d57a52b8d6d01cd392fffcbef257b573800f9289655f37"; + sha256 = "caff23449220cf45753f312cefede53a9eac64000bb300797916526236b6a1e0"; }; nativeBuildInputs = From 4df002c43283952f4ffc434153b3d5efa3024fa8 Mon Sep 17 00:00:00 2001 From: Pierre Bourdon Date: Sat, 17 Apr 2021 16:27:25 +0200 Subject: [PATCH 203/339] grub2_efi: fix cross-compilation --- pkgs/tools/misc/grub/2.0x.nix | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/pkgs/tools/misc/grub/2.0x.nix b/pkgs/tools/misc/grub/2.0x.nix index ad7a74e8137..3bae26c3fe7 100644 --- a/pkgs/tools/misc/grub/2.0x.nix +++ b/pkgs/tools/misc/grub/2.0x.nix @@ -1,6 +1,6 @@ { lib, stdenv, fetchgit, flex, bison, python3, autoconf, automake, gnulib, libtool , gettext, ncurses, libusb-compat-0_1, freetype, qemu, lvm2, unifont, pkg-config -, pkgsBuildBuild +, buildPackages , nixosTests , fuse # only needed for grub-mount , runtimeShell @@ -64,7 +64,8 @@ stdenv.mkDerivation rec { echo 'echo "Compile grub2 with { kbdcompSupport = true; } to enable support for this command."' >> util/grub-kbdcomp.in ''; - nativeBuildInputs = [ bison flex python3 pkg-config autoconf automake gettext ]; + depsBuildBuild = [ buildPackages.stdenv.cc ]; + nativeBuildInputs = [ bison flex python3 pkg-config autoconf automake gettext freetype ]; buildInputs = [ ncurses libusb-compat-0_1 freetype lvm2 fuse libtool ] ++ optional doCheck qemu ++ optional zfsSupport zfs; @@ -105,9 +106,18 @@ stdenv.mkDerivation rec { configureFlags = [ "--enable-grub-mount" # dep of os-prober - "BUILD_CC=${pkgsBuildBuild.stdenv.cc}/bin/cc" - ] - ++ optional zfsSupport "--enable-libzfs" + ] ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ + # grub doesn't do cross-compilation as usual and tries to use unprefixed + # tools to target the host. Provide toolchain information explicitly for + # cross builds. + # + # Ref: # https://github.com/buildroot/buildroot/blob/master/boot/grub2/grub2.mk#L108 + "TARGET_CC=${stdenv.cc.targetPrefix}cc" + "TARGET_NM=${stdenv.cc.targetPrefix}nm" + "TARGET_OBJCOPY=${stdenv.cc.targetPrefix}objcopy" + "TARGET_RANLIB=${stdenv.cc.targetPrefix}ranlib" + "TARGET_STRIP=${stdenv.cc.targetPrefix}strip" + ] ++ optional zfsSupport "--enable-libzfs" ++ optionals efiSupport [ "--with-platform=efi" "--target=${efiSystemsBuild.${stdenv.hostPlatform.system}.target}" "--program-prefix=" ] ++ optionals xenSupport [ "--with-platform=xen" "--target=${efiSystemsBuild.${stdenv.hostPlatform.system}.target}"]; From 472f5a976d360c4dd3c978689fd3e0f55879e20e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Romildo=20Malaquias?= Date: Wed, 28 Apr 2021 12:39:40 -0300 Subject: [PATCH 204/339] xfce: does not explicitly require a gvfs package - In order to use GIO/GVFS it is enough to enable the gvfs service. - The module option services.gvfs.package can be used to choose a variation of the gvfs package, if desired. --- nixos/modules/services/x11/desktop-managers/xfce.nix | 1 - pkgs/desktops/xfce/applications/gigolo/default.nix | 4 ++-- pkgs/desktops/xfce/core/thunar/default.nix | 2 -- pkgs/desktops/xfce/default.nix | 3 --- 4 files changed, 2 insertions(+), 8 deletions(-) diff --git a/nixos/modules/services/x11/desktop-managers/xfce.nix b/nixos/modules/services/x11/desktop-managers/xfce.nix index fc7f7bea4e4..7d2856939c8 100644 --- a/nixos/modules/services/x11/desktop-managers/xfce.nix +++ b/nixos/modules/services/x11/desktop-managers/xfce.nix @@ -151,7 +151,6 @@ in services.upower.enable = config.powerManagement.enable; services.gnome3.glib-networking.enable = true; services.gvfs.enable = true; - services.gvfs.package = pkgs.xfce.gvfs; services.tumbler.enable = true; services.system-config-printer.enable = (mkIf config.services.printing.enable (mkDefault true)); services.xserver.libinput.enable = mkDefault true; # used in xfce4-settings-manager diff --git a/pkgs/desktops/xfce/applications/gigolo/default.nix b/pkgs/desktops/xfce/applications/gigolo/default.nix index b9ff011f3be..3a3a9bbc898 100644 --- a/pkgs/desktops/xfce/applications/gigolo/default.nix +++ b/pkgs/desktops/xfce/applications/gigolo/default.nix @@ -1,4 +1,4 @@ -{ lib, mkXfceDerivation, gtk3, gvfs, glib }: +{ lib, mkXfceDerivation, gtk3, glib }: mkXfceDerivation { category = "apps"; @@ -8,7 +8,7 @@ mkXfceDerivation { sha256 = "8UDb4H3zxRKx2y+MRsozQoR3es0fs5ooR/5wBIE11bY="; - buildInputs = [ gtk3 glib gvfs ]; + buildInputs = [ gtk3 glib ]; postPatch = '' # exo-csource has been dropped from exo diff --git a/pkgs/desktops/xfce/core/thunar/default.nix b/pkgs/desktops/xfce/core/thunar/default.nix index cc94683ddde..e220e29f3ed 100644 --- a/pkgs/desktops/xfce/core/thunar/default.nix +++ b/pkgs/desktops/xfce/core/thunar/default.nix @@ -12,7 +12,6 @@ , libxslt , xfconf , gobject-introspection -, gvfs , makeWrapper , symlinkJoin , thunarPlugins ? [] @@ -35,7 +34,6 @@ let unwrapped = mkXfceDerivation { exo gdk-pixbuf gtk3 - gvfs libX11 libgudev libnotify diff --git a/pkgs/desktops/xfce/default.nix b/pkgs/desktops/xfce/default.nix index 12f487f1784..1b7877cd79d 100644 --- a/pkgs/desktops/xfce/default.nix +++ b/pkgs/desktops/xfce/default.nix @@ -15,9 +15,6 @@ lib.makeScope pkgs.newScope (self: with self; { automakeAddFlags = pkgs.makeSetupHook { } ./automakeAddFlags.sh; - # Samba is a rather heavy dependency - gvfs = pkgs.gvfs.override { samba = null; }; - #### CORE exo = callPackage ./core/exo { }; From 37838e69eb2989128248b775b221bc2d29b465a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Romildo=20Malaquias?= Date: Sat, 1 May 2021 08:15:58 -0300 Subject: [PATCH 205/339] xfce.gigolo: upstream already moved from exo-csource to xdt-csource --- pkgs/desktops/xfce/applications/gigolo/default.nix | 5 ----- 1 file changed, 5 deletions(-) diff --git a/pkgs/desktops/xfce/applications/gigolo/default.nix b/pkgs/desktops/xfce/applications/gigolo/default.nix index 3a3a9bbc898..4b7c258ca59 100644 --- a/pkgs/desktops/xfce/applications/gigolo/default.nix +++ b/pkgs/desktops/xfce/applications/gigolo/default.nix @@ -10,11 +10,6 @@ mkXfceDerivation { buildInputs = [ gtk3 glib ]; - postPatch = '' - # exo-csource has been dropped from exo - substituteInPlace src/Makefile.am --replace exo-csource xdt-csource - ''; - meta = { description = "A frontend to easily manage connections to remote filesystems"; license = with lib.licenses; [ gpl2Only ]; From 7326c917e4152df8e7c95e3045c663ede73a87b4 Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Sat, 1 May 2021 22:46:06 +0000 Subject: [PATCH 206/339] lxcfs: 4.0.7 -> 4.0.8 --- pkgs/os-specific/linux/lxcfs/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/os-specific/linux/lxcfs/default.nix b/pkgs/os-specific/linux/lxcfs/default.nix index bcc86b72de0..440e81266c8 100644 --- a/pkgs/os-specific/linux/lxcfs/default.nix +++ b/pkgs/os-specific/linux/lxcfs/default.nix @@ -5,13 +5,13 @@ with lib; stdenv.mkDerivation rec { pname = "lxcfs"; - version = "4.0.7"; + version = "4.0.8"; src = fetchFromGitHub { owner = "lxc"; repo = "lxcfs"; rev = "lxcfs-${version}"; - sha256 = "sha256-gC1Q+kG/oKfYvuHVKstpRWfL/thsemULrimPrV/eeaI="; + sha256 = "sha256-8Tack2gM3AU3coGXs5hEbAaBCo5ss1sGUFFEjZDn5Lg="; }; nativeBuildInputs = [ pkg-config help2man autoreconfHook makeWrapper ]; From 6866364f837cee54ee9dc86218dea80b752186b4 Mon Sep 17 00:00:00 2001 From: Simonas Kazlauskas Date: Sun, 2 May 2021 01:59:06 +0300 Subject: [PATCH 207/339] firefox-bin: rpath pipewire Fixes screensharing on Wayland via pipewire/xdp infrastructure. --- pkgs/applications/networking/browsers/firefox-bin/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/applications/networking/browsers/firefox-bin/default.nix b/pkgs/applications/networking/browsers/firefox-bin/default.nix index 93b89e9031e..ffba1096d1d 100644 --- a/pkgs/applications/networking/browsers/firefox-bin/default.nix +++ b/pkgs/applications/networking/browsers/firefox-bin/default.nix @@ -33,6 +33,7 @@ , nspr , nss , pango +, pipewire , pciutils , libheimdal , libpulseaudio @@ -126,6 +127,7 @@ stdenv.mkDerivation { nspr nss pango + pipewire pciutils libheimdal libpulseaudio From 370300758a9d8ee92d5d90659371f75f9448c83d Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Fri, 27 Sep 2019 13:02:14 -0700 Subject: [PATCH 208/339] netcdfcxx4: 4.3.0 -> 4.3.1 Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/netcdf-cxx4/versions --- pkgs/development/libraries/netcdf-cxx4/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/netcdf-cxx4/default.nix b/pkgs/development/libraries/netcdf-cxx4/default.nix index b594a672140..d37979a07fc 100644 --- a/pkgs/development/libraries/netcdf-cxx4/default.nix +++ b/pkgs/development/libraries/netcdf-cxx4/default.nix @@ -1,11 +1,11 @@ { lib, stdenv, fetchurl, netcdf, hdf5, curl }: stdenv.mkDerivation rec { pname = "netcdf-cxx4"; - version = "4.3.0"; + version = "4.3.1"; src = fetchurl { url = "https://github.com/Unidata/netcdf-cxx4/archive/v${version}.tar.gz"; - sha256 = "13zi8cbk18gggx1c12a580wdsbl714lw68a1wg7c86x0sybirni5"; + sha256 = "1p4fjxxbrc0ra8kbs13d33p5zaqa4a6j1wavamr2f73cq0p3vzp3"; }; buildInputs = [ netcdf hdf5 curl ]; From 56858c2b92bcd038aa5718fa6e0ad72e7c8c9bb9 Mon Sep 17 00:00:00 2001 From: Renaud Date: Fri, 18 Oct 2019 18:21:45 +0200 Subject: [PATCH 209/339] netcdfcxx4: use fetchzip Github archives are not stable over time so fetchzip should be used instead of fetchurl --- pkgs/development/libraries/netcdf-cxx4/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/libraries/netcdf-cxx4/default.nix b/pkgs/development/libraries/netcdf-cxx4/default.nix index d37979a07fc..d0a69b202fe 100644 --- a/pkgs/development/libraries/netcdf-cxx4/default.nix +++ b/pkgs/development/libraries/netcdf-cxx4/default.nix @@ -1,11 +1,11 @@ -{ lib, stdenv, fetchurl, netcdf, hdf5, curl }: +{ lib, stdenv, fetchzip, netcdf, hdf5, curl }: stdenv.mkDerivation rec { pname = "netcdf-cxx4"; version = "4.3.1"; - src = fetchurl { + src = fetchzip { url = "https://github.com/Unidata/netcdf-cxx4/archive/v${version}.tar.gz"; - sha256 = "1p4fjxxbrc0ra8kbs13d33p5zaqa4a6j1wavamr2f73cq0p3vzp3"; + sha256 = "05kydd5z9iil5iv4fp7l11cicda5n5lsg5sdmsmc55xpspnsg7hr"; }; buildInputs = [ netcdf hdf5 curl ]; From dfe5071b8233700daf163ade1792f8e62b45902b Mon Sep 17 00:00:00 2001 From: Renaud Date: Fri, 18 Oct 2019 19:33:16 +0200 Subject: [PATCH 210/339] netcdfcxx4: fix linking on Darwin --- pkgs/development/libraries/netcdf-cxx4/default.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkgs/development/libraries/netcdf-cxx4/default.nix b/pkgs/development/libraries/netcdf-cxx4/default.nix index d0a69b202fe..4c9d294b784 100644 --- a/pkgs/development/libraries/netcdf-cxx4/default.nix +++ b/pkgs/development/libraries/netcdf-cxx4/default.nix @@ -8,6 +8,10 @@ stdenv.mkDerivation rec { sha256 = "05kydd5z9iil5iv4fp7l11cicda5n5lsg5sdmsmc55xpspnsg7hr"; }; + configureFlags = stdenv.lib.optionals stdenv.isDarwin [ + "--without-nc-config" + ]; # prevent linking failure on Darwin + buildInputs = [ netcdf hdf5 curl ]; doCheck = true; From 147a5cda7299be628f34a336c5f2ade1c8b725b2 Mon Sep 17 00:00:00 2001 From: Luke Granger-Brown Date: Sun, 2 May 2021 00:46:35 +0100 Subject: [PATCH 211/339] netcdfcxx4: switch to CMake This resolves the Darwin linking issues Once and For All. Also, this makes the build parallel, which is nice too. --- pkgs/development/libraries/netcdf-cxx4/default.nix | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/pkgs/development/libraries/netcdf-cxx4/default.nix b/pkgs/development/libraries/netcdf-cxx4/default.nix index 4c9d294b784..494f4bf7157 100644 --- a/pkgs/development/libraries/netcdf-cxx4/default.nix +++ b/pkgs/development/libraries/netcdf-cxx4/default.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, fetchzip, netcdf, hdf5, curl }: +{ lib, stdenv, fetchzip, netcdf, hdf5, curl, cmake, ninja }: stdenv.mkDerivation rec { pname = "netcdf-cxx4"; version = "4.3.1"; @@ -8,12 +8,15 @@ stdenv.mkDerivation rec { sha256 = "05kydd5z9iil5iv4fp7l11cicda5n5lsg5sdmsmc55xpspnsg7hr"; }; - configureFlags = stdenv.lib.optionals stdenv.isDarwin [ - "--without-nc-config" - ]; # prevent linking failure on Darwin + preConfigure = '' + cmakeFlags+="-Dabs_top_srcdir=$(readlink -f ./)" + ''; + nativeBuildInputs = [ cmake ninja ]; buildInputs = [ netcdf hdf5 curl ]; + doCheck = true; + enableParallelChecking = false; meta = { description = "C++ API to manipulate netcdf files"; From 99f8bc3e0303bd58ed823937ad5e76791b5cb2f0 Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Sat, 5 Sep 2020 19:05:36 +0000 Subject: [PATCH 212/339] sumorobot-manager: 0.9.0 -> 1.0.0 --- .../science/robotics/sumorobot-manager/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/science/robotics/sumorobot-manager/default.nix b/pkgs/applications/science/robotics/sumorobot-manager/default.nix index 0b4b807a481..bfc74e72649 100644 --- a/pkgs/applications/science/robotics/sumorobot-manager/default.nix +++ b/pkgs/applications/science/robotics/sumorobot-manager/default.nix @@ -1,14 +1,14 @@ -{ lib, stdenv, python3, qt5, fetchFromGitHub, wrapPython, pyqt5, pyserial }: +{ lib, stdenv, python3, qt5, fetchFromGitHub, wrapPython, pyqt5, pyserial, dos2unix }: stdenv.mkDerivation rec { pname = "sumorobot-manager"; - version = "0.9.0"; + version = "1.0.0"; src = fetchFromGitHub { owner = "robokoding"; repo = pname; rev = "v${version}"; - sha256 = "03zhb54c259a66hsahmv2ajbzwcjnfjj050wbjhw51zqzxinlgqr"; + sha256 = "07snhwmqqp52vdgr66vx50zxx0nmpmns5cdjgh50hzlhji2z1fl9"; }; buildInputs = [ python3 ]; From ebf371726d47a0cd434ba2b6a8ec606f97efed83 Mon Sep 17 00:00:00 2001 From: Luke Granger-Brown Date: Sun, 2 May 2021 00:12:19 +0000 Subject: [PATCH 213/339] sumorobot-manager: fix compilation --- .../science/robotics/sumorobot-manager/default.nix | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/science/robotics/sumorobot-manager/default.nix b/pkgs/applications/science/robotics/sumorobot-manager/default.nix index bfc74e72649..c0f619b9592 100644 --- a/pkgs/applications/science/robotics/sumorobot-manager/default.nix +++ b/pkgs/applications/science/robotics/sumorobot-manager/default.nix @@ -13,10 +13,10 @@ stdenv.mkDerivation rec { buildInputs = [ python3 ]; pythonPath = [ - pyqt5 pyserial + pyqt5.dev pyserial ]; - nativeBuildInputs = [ wrapPython qt5.wrapQtAppsHook ]; + nativeBuildInputs = [ wrapPython qt5.wrapQtAppsHook dos2unix ]; buildPhase = "true"; @@ -25,6 +25,7 @@ stdenv.mkDerivation rec { cp -r main.py lib res $out/opt/sumorobot-manager chmod -R 644 $out/opt/sumorobot-manager/lib/* mkdir $out/bin + dos2unix $out/opt/sumorobot-manager/main.py makeQtWrapper $out/opt/sumorobot-manager/main.py $out/bin/sumorobot-manager \ --run "cd $out/opt/sumorobot-manager" ''; From 57454d5d19d187a72c6d6c6c7302bd9e49f02442 Mon Sep 17 00:00:00 2001 From: "Robert K. Bell" Date: Sun, 2 May 2021 10:27:06 +1000 Subject: [PATCH 214/339] cypress: add updateScript --- pkgs/development/web/cypress/default.nix | 2 ++ pkgs/development/web/cypress/update.sh | 10 ++++++++++ 2 files changed, 12 insertions(+) create mode 100755 pkgs/development/web/cypress/update.sh diff --git a/pkgs/development/web/cypress/default.nix b/pkgs/development/web/cypress/default.nix index e05a320f63b..a4046c37abe 100644 --- a/pkgs/development/web/cypress/default.nix +++ b/pkgs/development/web/cypress/default.nix @@ -9,6 +9,8 @@ stdenv.mkDerivation rec { sha256 = "1m52v6hhblrjji9c5885bn5qq0xlaw36krbmqfac7fhgsxmkxd2h"; }; + passthru.updateScript = ./update.sh; + # don't remove runtime deps dontPatchELF = true; diff --git a/pkgs/development/web/cypress/update.sh b/pkgs/development/web/cypress/update.sh new file mode 100755 index 00000000000..f8389b517c3 --- /dev/null +++ b/pkgs/development/web/cypress/update.sh @@ -0,0 +1,10 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i bash -p common-updater-scripts curl jq + +set -euo pipefail + +basedir="$(git rev-parse --show-toplevel)" +version="$(curl -sL https://cdn.cypress.io/desktop/ | jq '.version' --raw-output)" + +cd "$basedir" +update-source-version cypress "$version" From 04ca6340bd0668af243a5ac7cb56f20350cedcfd Mon Sep 17 00:00:00 2001 From: Raghav Sood Date: Thu, 5 Nov 2020 00:13:37 +0800 Subject: [PATCH 215/339] miniscript: init at unstable-2020-11-04 Closes #102808 Co-authored-by: William Casarin --- .../blockchains/miniscript/default.nix | 29 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ 2 files changed, 31 insertions(+) create mode 100644 pkgs/applications/blockchains/miniscript/default.nix diff --git a/pkgs/applications/blockchains/miniscript/default.nix b/pkgs/applications/blockchains/miniscript/default.nix new file mode 100644 index 00000000000..0520101c4cc --- /dev/null +++ b/pkgs/applications/blockchains/miniscript/default.nix @@ -0,0 +1,29 @@ +{ stdenv, lib, fetchFromGitHub }: + +stdenv.mkDerivation rec { + pname = "miniscript"; + version = "unstable-2020-12-01"; + + src = fetchFromGitHub { + owner = "sipa"; + repo = pname; + rev = "02682a398a35b410571b10cde7f39837141ddad6"; + sha256 = "079jz4g88cfzfm9a6ykby9haxwcs033c1288mgr8cl2hw4qd2sjl"; + }; + + installPhase = '' + runHook preInstall + mkdir -p $out/bin + cp miniscript $out/bin/miniscript + runHook postInstall + ''; + + meta = with lib; { + description = "Compiler and inspector for the miniscript Bitcoin policy language"; + longDescription = "Miniscript is a language for writing (a subset of) Bitcoin Scripts in a structured way, enabling analysis, composition, generic signing and more."; + homepage = "http://bitcoin.sipa.be/miniscript/"; + license = licenses.mit; + platforms = platforms.linux; + maintainers = with maintainers; [ RaghavSood jb55 ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index b485168c6ec..8c22045dcac 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2826,6 +2826,8 @@ in mididings = callPackage ../tools/audio/mididings { }; + miniscript = callPackage ../applications/blockchains/miniscript { }; + miniserve = callPackage ../tools/misc/miniserve { inherit (darwin.apple_sdk.frameworks) Security; }; From e2160c95cdcf4d8f24aeb8573ddb4f83baf7556e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Romildo=20Malaquias?= Date: Sat, 1 May 2021 21:43:26 -0300 Subject: [PATCH 216/339] mate.mate-session-manager: 1.24.2 -> 1.24.3 --- pkgs/desktops/mate/mate-session-manager/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/desktops/mate/mate-session-manager/default.nix b/pkgs/desktops/mate/mate-session-manager/default.nix index c0cd12bd273..f790b0f65dc 100644 --- a/pkgs/desktops/mate/mate-session-manager/default.nix +++ b/pkgs/desktops/mate/mate-session-manager/default.nix @@ -5,11 +5,11 @@ stdenv.mkDerivation rec { pname = "mate-session-manager"; - version = "1.24.2"; + version = "1.24.3"; src = fetchurl { url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "1jcb5k2fx2rwwbrslgv1xlzaiwiwjnxjwnp503qf8cg89w69q2vb"; + sha256 = "18mhv8dq18hvx28gi88c9499s3s1nsq55m64sas8fqlvnp2sx84h"; }; patches = [ From e52379118b7fd6b5cae69a918bcce80c689ef868 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Romildo=20Malaquias?= Date: Sat, 1 May 2021 21:48:03 -0300 Subject: [PATCH 217/339] lxqt.lxqt-powermanagement: 0.17.0 -> 0.17.1 --- pkgs/desktops/lxqt/lxqt-powermanagement/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/desktops/lxqt/lxqt-powermanagement/default.nix b/pkgs/desktops/lxqt/lxqt-powermanagement/default.nix index a1b06806740..3713bcf0bb5 100644 --- a/pkgs/desktops/lxqt/lxqt-powermanagement/default.nix +++ b/pkgs/desktops/lxqt/lxqt-powermanagement/default.nix @@ -18,13 +18,13 @@ mkDerivation rec { pname = "lxqt-powermanagement"; - version = "0.17.0"; + version = "0.17.1"; src = fetchFromGitHub { owner = "lxqt"; repo = pname; rev = version; - sha256 = "1ikkksg5k7jwph7060h8wyk7bdsywvhl47zp23j5gcig0nk62ggf"; + sha256 = "04prx15l05kw97mwajc8yi2s7p3n6amzs5jnnmh9payxzp6glzmk"; }; nativeBuildInputs = [ From 966480b59afad608d4d87db39015a1a5ac0e90a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Romildo=20Malaquias?= Date: Sat, 1 May 2021 21:54:51 -0300 Subject: [PATCH 218/339] lxqt.obconf-qt: 0.16.0 -> 0.16.1 --- pkgs/desktops/lxqt/obconf-qt/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/desktops/lxqt/obconf-qt/default.nix b/pkgs/desktops/lxqt/obconf-qt/default.nix index 442c4c940b0..18d3f9899b4 100644 --- a/pkgs/desktops/lxqt/obconf-qt/default.nix +++ b/pkgs/desktops/lxqt/obconf-qt/default.nix @@ -15,13 +15,13 @@ mkDerivation rec { pname = "obconf-qt"; - version = "0.16.0"; + version = "0.16.1"; src = fetchFromGitHub { owner = "lxqt"; repo = pname; rev = version; - sha256 = "0kk5scp1j0hqi27q3yl9cg73ybxzm22nj96pa8adhdn4shg9bpac"; + sha256 = "1nw2r3h7ynmygpslnzjn40vvickd988nm31wy2b645xcck89q4rm"; }; nativeBuildInputs = [ From 1d00429e59300942c7c74d69c18a91be1f9ca66b Mon Sep 17 00:00:00 2001 From: Luke Granger-Brown Date: Sun, 2 May 2021 01:17:52 +0000 Subject: [PATCH 219/339] ideamaker: mark as broken This just segfaults on startup for me. --- pkgs/applications/misc/ideamaker/default.nix | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/misc/ideamaker/default.nix b/pkgs/applications/misc/ideamaker/default.nix index 7b2eeec292b..1996ba5c1ea 100644 --- a/pkgs/applications/misc/ideamaker/default.nix +++ b/pkgs/applications/misc/ideamaker/default.nix @@ -9,7 +9,7 @@ , libcork , makeDesktopItem , qt5 -, quazip_qt4 +, quazip , zlib }: stdenv.mkDerivation rec { @@ -35,7 +35,7 @@ stdenv.mkDerivation rec { libcork qt5.qtbase qt5.qtserialport - quazip_qt4 + quazip zlib ]; @@ -73,5 +73,6 @@ stdenv.mkDerivation rec { license = licenses.unfree; platforms = [ "x86_64-linux" ]; maintainers = with maintainers; [ lovesegfault ]; + broken = true; # Segfaults on startup. }; } From de536ac410ed16664dca0f076348e8b03344f0d9 Mon Sep 17 00:00:00 2001 From: Luke Granger-Brown Date: Sun, 2 May 2021 01:18:33 +0000 Subject: [PATCH 220/339] all-packages: remove quazip_qt4 --- pkgs/top-level/all-packages.nix | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index b485168c6ec..7f314fe974c 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -8229,16 +8229,10 @@ in screen-message = callPackage ../tools/X11/screen-message { }; - screencloud = callPackage ../applications/graphics/screencloud { - quazip = quazip_qt4; - }; + screencloud = libsForQt5.callPackage ../applications/graphics/screencloud { }; screenkey = callPackage ../applications/video/screenkey { }; - quazip_qt4 = libsForQt5.quazip.override { - qtbase = qt4; - }; - scfbuild = python3.pkgs.callPackage ../tools/misc/scfbuild { }; scriptaculous = callPackage ../development/libraries/scriptaculous { }; @@ -23918,7 +23912,7 @@ in id3v2 = callPackage ../applications/audio/id3v2 { }; - ideamaker = callPackage ../applications/misc/ideamaker { }; + ideamaker = libsForQt5.callPackage ../applications/misc/ideamaker { }; ifenslave = callPackage ../os-specific/linux/ifenslave { }; From da1a0f5ce4c626e42712cfba7ae7befd11572541 Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Tue, 10 Nov 2020 00:35:25 +0000 Subject: [PATCH 221/339] libsForQt5.quazip: 0.9.1 -> 1.1 --- pkgs/development/libraries/quazip/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/quazip/default.nix b/pkgs/development/libraries/quazip/default.nix index a12d6cafe4a..4184f3276c0 100644 --- a/pkgs/development/libraries/quazip/default.nix +++ b/pkgs/development/libraries/quazip/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "quazip"; - version = "0.9.1"; + version = "1.1"; src = fetchFromGitHub { owner = "stachenov"; repo = pname; rev = "v${version}"; - sha256 = "11icgwv2xyxhd1hm1add51xv54zwkcqkg85d1xqlgiigvbm196iq"; + sha256 = "06srglrj6jvy5ngmidlgx03i0d5w91yhi7sf846wql00v8rvhc5h"; }; buildInputs = [ zlib qtbase ]; From eb5588f9147a0035e14b05c9b3ff2181dae539fa Mon Sep 17 00:00:00 2001 From: Luke Granger-Brown Date: Sun, 2 May 2021 00:31:45 +0000 Subject: [PATCH 222/339] nomacs: support quazip 1.x --- pkgs/applications/graphics/nomacs/default.nix | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/pkgs/applications/graphics/nomacs/default.nix b/pkgs/applications/graphics/nomacs/default.nix index bd6d732ac68..142c76b2f6d 100644 --- a/pkgs/applications/graphics/nomacs/default.nix +++ b/pkgs/applications/graphics/nomacs/default.nix @@ -27,6 +27,15 @@ mkDerivation rec { sha256 = "1bq7bv4p7w67172y893lvpk90d6fgdpnylynbj2kn8m2hs6khya4"; }; + patches = [ + # Add support for Quazip 1.x. + (fetchpatch { + url = "https://github.com/nomacs/nomacs/pull/576.patch"; + sha256 = "11ryjvd9jbb0cqagai4a6980jfq8lrcbyw2d7z9yld1f42w9kbxm"; + stripLen = 1; + }) + ]; + setSourceRoot = '' sourceRoot=$(echo */ImageLounge) ''; From 59ecd5167a7ecbd199c05c8db463b040e78f14e1 Mon Sep 17 00:00:00 2001 From: Luke Granger-Brown Date: Sun, 2 May 2021 00:43:13 +0000 Subject: [PATCH 223/339] qmapshack: support Quazip 1.x --- pkgs/applications/gis/qmapshack/default.nix | 6 +- .../qmapshack/pr350-support-quazip-1x.patch | 141 ++++++++++++++++++ 2 files changed, 144 insertions(+), 3 deletions(-) create mode 100644 pkgs/applications/gis/qmapshack/pr350-support-quazip-1x.patch diff --git a/pkgs/applications/gis/qmapshack/default.nix b/pkgs/applications/gis/qmapshack/default.nix index ef036fb71b0..30231e7135a 100644 --- a/pkgs/applications/gis/qmapshack/default.nix +++ b/pkgs/applications/gis/qmapshack/default.nix @@ -18,13 +18,13 @@ mkDerivation rec { cmakeFlags = [ "-DROUTINO_XML_PATH=${routino}/share/routino" - "-DQUAZIP_INCLUDE_DIR=${quazip}/include/quazip5" - "-DLIBQUAZIP_LIBRARY=${quazip}/lib/libquazip.so" ]; patches = [ "${src}/FindPROJ4.patch" - "${src}/FindQuaZip5.patch" + + # Support QuaZip 1.x. + ./pr350-support-quazip-1x.patch ]; qtWrapperArgs = [ diff --git a/pkgs/applications/gis/qmapshack/pr350-support-quazip-1x.patch b/pkgs/applications/gis/qmapshack/pr350-support-quazip-1x.patch new file mode 100644 index 00000000000..82ebed14dbb --- /dev/null +++ b/pkgs/applications/gis/qmapshack/pr350-support-quazip-1x.patch @@ -0,0 +1,141 @@ +From 8fb751c656a14020ba37fb91b7f7cba3c49d8504 Mon Sep 17 00:00:00 2001 +From: kiozen +Date: Sat, 20 Mar 2021 12:14:29 +0100 +Subject: [PATCH] [QMS-349] Upgrade to Quazip Qt5 V1.x + +Simply adjusted the cmake scripts +--- + CMakeLists.txt | 2 +- + src/qmapshack/CMakeLists.txt | 27 +++++++++++++-------------- + 3 files changed, 15 insertions(+), 15 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 8d2cf127..7420d9b2 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -152,7 +152,7 @@ find_package(GDAL REQUIRED) + find_package(PROJ REQUIRED) + find_package(JPEG REQUIRED) + find_package(ROUTINO REQUIRED) +-find_package(QuaZip5 REQUIRED) ++find_package(QuaZip-Qt5 REQUIRED) + find_package(ALGLIB ) # optional as we can use our local version + + +diff --git a/src/qmapshack/CMakeLists.txt b/src/qmapshack/CMakeLists.txt +index 08eeb183..9b3836d6 100644 +--- a/src/qmapshack/CMakeLists.txt ++++ b/src/qmapshack/CMakeLists.txt +@@ -22,8 +22,8 @@ add_definitions(-DROUTINO_XML_PATH=${ROUTINO_XML_PATH}) + # All source files needed to compile + ############################################################################################### + +-set( SRCS +- CAbout.cpp ++set( SRCS ++ CAbout.cpp + CMainWindow.cpp + CSingleInstanceProxy.cpp + canvas/CCanvas.cpp +@@ -160,7 +160,7 @@ set( SRCS + gis/trk/CInvalidTrk.cpp + gis/trk/CKnownExtension.cpp + gis/trk/CListTrkPts.cpp +- gis/trk/CPropertyTrk.cpp ++ gis/trk/CPropertyTrk.cpp + gis/trk/CScrOptTrk.cpp + gis/trk/CSelectActivityColor.cpp + gis/trk/CTableTrk.cpp +@@ -272,7 +272,7 @@ set( SRCS + mouse/line/CLineOpMovePoint.cpp + mouse/line/CLineOpSelectRange.cpp + mouse/line/CScrOptEditLine.cpp +- mouse/line/CScrOptRangeLine.cpp ++ mouse/line/CScrOptRangeLine.cpp + mouse/line/ILineOp.cpp + mouse/line/IMouseEditLine.cpp + plot/CPlot.cpp +@@ -401,7 +401,7 @@ set( HDRS + gis/CGisListDB.h + gis/CGisListWks.h + gis/CGisWorkspace.h +- gis/CSelDevices.h ++ gis/CSelDevices.h + gis/IGisItem.h + gis/IGisLine.h + gis/Poi.h +@@ -512,7 +512,7 @@ set( HDRS + gis/trk/CInvalidTrk.h + gis/trk/CKnownExtension.h + gis/trk/CListTrkPts.h +- gis/trk/CPropertyTrk.h ++ gis/trk/CPropertyTrk.h + gis/trk/CScrOptTrk.h + gis/trk/CSelectActivityColor.h + gis/trk/CTableTrk.h +@@ -579,7 +579,7 @@ set( HDRS + map/CMapList.h + map/CMapMAP.h + map/CMapPathSetup.h +- map/CMapPropSetup.h ++ map/CMapPropSetup.h + map/CMapRMAP.h + map/CMapTMS.h + map/CMapVRT.h +@@ -655,7 +655,7 @@ set( HDRS + realtime/CRtSelectSource.h + realtime/CRtWorkspace.h + realtime/IRtInfo.h +- realtime/IRtRecord.h ++ realtime/IRtRecord.h + realtime/IRtSource.h + realtime/gpstether/CRtGpsTether.h + realtime/gpstether/CRtGpsTetherInfo.h +@@ -764,7 +764,7 @@ set( UIS + gis/search/IGeoSearchWebConfigDialog.ui + gis/search/ISearchExplanationDialog.ui + gis/summary/IGisSummary.ui +- gis/summary/IGisSummarySetup.ui ++ gis/summary/IGisSummarySetup.ui + gis/trk/ICombineTrk.ui + gis/trk/ICutTrk.ui + gis/trk/IDetailsTrk.ui +@@ -818,7 +818,7 @@ set( UIS + mouse/range/IActionSelect.ui + mouse/range/IRangeToolSetup.ui + mouse/range/IScrOptRangeTool.ui +- mouse/range/IScrOptRangeTrk.ui ++ mouse/range/IScrOptRangeTrk.ui + mouse/IScrOptRuler.ui + mouse/IScrOptSelect.ui + mouse/line/IScrOptEditLine.ui +@@ -899,7 +899,6 @@ include_directories( + ${PROJ_INCLUDE_DIRS} + ${ROUTINO_INCLUDE_DIRS} + ${ALGLIB_INCLUDE_DIRS} +- ${QUAZIP_INCLUDE_DIRS} + ) + + if(APPLE) +@@ -934,10 +933,10 @@ endif(Qt5DBus_FOUND) + + target_link_libraries(${APPLICATION_NAME} + Qt5::Widgets +- Qt5::Xml ++ Qt5::Xml + Qt5::Sql + Qt5::PrintSupport +- Qt5::UiTools ++ Qt5::UiTools + Qt5::Network + Qt5::WebEngineWidgets + Qt5::Qml +@@ -947,7 +946,7 @@ target_link_libraries(${APPLICATION_NAME} + ${PROJ_LIBRARIES} + ${ROUTINO_LIBRARIES} + ${ALGLIB_LIBRARIES} +- ${QUAZIP_LIBRARIES} ++ QuaZip::QuaZip + ) + + if(APPLE) From a624e113235bf5dabad17647e8f2cf05a7c69bd3 Mon Sep 17 00:00:00 2001 From: Mario Rodas Date: Sat, 1 May 2021 20:22:00 -0500 Subject: [PATCH 224/339] rage: 0.5.1 -> 0.6.0 https://github.com/str4d/rage/releases/tag/v0.6.0 --- pkgs/tools/security/rage/default.nix | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/pkgs/tools/security/rage/default.nix b/pkgs/tools/security/rage/default.nix index d248fb19a27..99e61dc2358 100644 --- a/pkgs/tools/security/rage/default.nix +++ b/pkgs/tools/security/rage/default.nix @@ -1,24 +1,25 @@ { lib, stdenv, rustPlatform, fetchFromGitHub, installShellFiles -, Foundation, Security }: +, Foundation, Security, libiconv }: rustPlatform.buildRustPackage rec { pname = "rage"; - version = "0.5.1"; + version = "0.6.0"; src = fetchFromGitHub { owner = "str4d"; repo = pname; rev = "v${version}"; - sha256 = "sha256-oYCARqG5YwKO0b73aEMLr/xzXl6xBEMCvE1HMCtMq20="; + sha256 = "1vag448zpjyplcjpf1ir81l8ip3yxm9vkrxffqr78zslb4k6hw2w"; }; - cargoSha256 = "sha256-vadXIdqfmol4thHIwpkQCn7HsXdxo0l+6CBm3QIJmeA="; + cargoSha256 = "06jfhq9vnkq5g5bw1zl2sxsih63yajcyk9zaizhzkdsbhydr4955"; nativeBuildInputs = [ installShellFiles ]; buildInputs = lib.optionals stdenv.isDarwin [ Foundation Security + libiconv ]; # cargo test has an x86-only dependency @@ -37,7 +38,7 @@ rustPlatform.buildRustPackage rec { meta = with lib; { description = "A simple, secure and modern encryption tool with small explicit keys, no config options, and UNIX-style composability"; homepage = "https://github.com/str4d/rage"; - changelog = "https://github.com/str4d/rage/releases/tag/v${version}"; + changelog = "https://github.com/str4d/rage/raw/v${version}/rage/CHANGELOG.md"; license = with licenses; [ asl20 mit ]; # either at your option maintainers = with maintainers; [ marsam ryantm ]; }; From c116c5f89ff8d8825505f1b6c40856c0c717c6f8 Mon Sep 17 00:00:00 2001 From: happysalada Date: Sun, 2 May 2021 10:05:15 +0900 Subject: [PATCH 225/339] zoxide: 0.6.0 -> 0.7.0 --- pkgs/tools/misc/zoxide/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/tools/misc/zoxide/default.nix b/pkgs/tools/misc/zoxide/default.nix index a454a73384b..82ddca10a63 100644 --- a/pkgs/tools/misc/zoxide/default.nix +++ b/pkgs/tools/misc/zoxide/default.nix @@ -9,13 +9,13 @@ rustPlatform.buildRustPackage rec { pname = "zoxide"; - version = "0.6.0"; + version = "0.7.0"; src = fetchFromGitHub { owner = "ajeetdsouza"; repo = "zoxide"; rev = "v${version}"; - sha256 = "ZeGFsVBpEhKi4EIhpQlCuriFzmHAgLYw3qE/zqfyqgU="; + sha256 = "sha256-yunKyCjJ/vWUcsodweLmxv0+QJQI2i5u5VIzp2U+VyU="; }; buildInputs = lib.optionals stdenv.isDarwin [ libiconv ]; @@ -25,7 +25,7 @@ rustPlatform.buildRustPackage rec { --replace '"fzf"' '"${fzf}/bin/fzf"' ''; - cargoSha256 = "Hzn01+OhdBrZD1woXN4Pwf/S72Deln1gyyBOWyDC6iM="; + cargoSha256 = "sha256-eoal6z4wX1pNdAJfdamJgOSFCvGWdbVlq1X+vD9lraE="; meta = with lib; { description = "A fast cd command that learns your habits"; From ab92ec63d29361d8632d89d318d915d974f40c54 Mon Sep 17 00:00:00 2001 From: Mario Rodas Date: Sat, 1 May 2021 20:33:00 -0500 Subject: [PATCH 226/339] zoxide: install manpages --- pkgs/tools/misc/zoxide/default.nix | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pkgs/tools/misc/zoxide/default.nix b/pkgs/tools/misc/zoxide/default.nix index 82ddca10a63..30b9c496900 100644 --- a/pkgs/tools/misc/zoxide/default.nix +++ b/pkgs/tools/misc/zoxide/default.nix @@ -4,6 +4,7 @@ , rustPlatform , withFzf ? true , fzf +, installShellFiles , libiconv }: @@ -18,6 +19,8 @@ rustPlatform.buildRustPackage rec { sha256 = "sha256-yunKyCjJ/vWUcsodweLmxv0+QJQI2i5u5VIzp2U+VyU="; }; + nativeBuildInputs = [ installShellFiles ]; + buildInputs = lib.optionals stdenv.isDarwin [ libiconv ]; postPatch = lib.optionalString withFzf '' @@ -27,9 +30,14 @@ rustPlatform.buildRustPackage rec { cargoSha256 = "sha256-eoal6z4wX1pNdAJfdamJgOSFCvGWdbVlq1X+vD9lraE="; + postInstall = '' + installManPage man/* + ''; + meta = with lib; { description = "A fast cd command that learns your habits"; homepage = "https://github.com/ajeetdsouza/zoxide"; + changelog = "https://github.com/ajeetdsouza/zoxide/raw/v${version}/CHANGELOG.md"; license = with licenses; [ mit ]; maintainers = with maintainers; [ ysndr cole-h SuperSandro2000 ]; }; From beca3d2c0b1a953dfdcbef78cdcf3ec27cd7e8ee Mon Sep 17 00:00:00 2001 From: Luke Granger-Brown Date: Sun, 2 May 2021 02:25:15 +0000 Subject: [PATCH 227/339] openboard: build with quazip 1.x --- pkgs/applications/graphics/openboard/default.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkgs/applications/graphics/openboard/default.nix b/pkgs/applications/graphics/openboard/default.nix index 859c2219218..ca51d74a0a1 100644 --- a/pkgs/applications/graphics/openboard/default.nix +++ b/pkgs/applications/graphics/openboard/default.nix @@ -34,7 +34,8 @@ in mkDerivation rec { postPatch = '' substituteInPlace OpenBoard.pro \ - --replace '/usr/include/quazip' '${quazip}/include/quazip5' \ + --replace '/usr/include/quazip' '${quazip}/include/QuaZip-Qt5-${quazip.version}/quazip' \ + --replace '-lquazip5' '-lquazip1-qt5' \ --replace '/usr/include/poppler' '${poppler.dev}/include/poppler' ''; From ad5f25123091545fbd5026f4008fddbfa22a6a0a Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Wed, 11 Nov 2020 02:06:41 +0000 Subject: [PATCH 228/339] dcm2niix: 1.0.20200331 -> 1.0.20201102 --- pkgs/applications/science/biology/dcm2niix/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/science/biology/dcm2niix/default.nix b/pkgs/applications/science/biology/dcm2niix/default.nix index 7ec5476cb82..c07ac084b3a 100644 --- a/pkgs/applications/science/biology/dcm2niix/default.nix +++ b/pkgs/applications/science/biology/dcm2niix/default.nix @@ -6,14 +6,14 @@ }: stdenv.mkDerivation rec { - version = "1.0.20200331"; + version = "1.0.20201102"; pname = "dcm2niix"; src = fetchFromGitHub { owner = "rordenlab"; repo = "dcm2niix"; rev = "v${version}"; - sha256 = "1cncfwhyhmg18n970lkn6yvp0i74ajznsl8dqz00asqfzmg681n1"; + sha256 = "0r21a55fd1fhkkrqqrynasvvnrbhzq0g3ifav2858hppdicw1j35"; }; nativeBuildInputs = [ cmake git ]; From 2fa2d15a7d8702846dbf8dc86c714ef35001b9a9 Mon Sep 17 00:00:00 2001 From: Ben Siraphob Date: Sun, 2 May 2021 13:28:11 +0700 Subject: [PATCH 229/339] knightos-mkrom : 1.0.3 -> 1.0.4 --- pkgs/development/tools/knightos/mkrom/default.nix | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/pkgs/development/tools/knightos/mkrom/default.nix b/pkgs/development/tools/knightos/mkrom/default.nix index 2e067e92d91..21caa5b8b32 100644 --- a/pkgs/development/tools/knightos/mkrom/default.nix +++ b/pkgs/development/tools/knightos/mkrom/default.nix @@ -1,25 +1,27 @@ -{ lib, stdenv, fetchFromGitHub, cmake, libxslt, asciidoc }: +{ lib, stdenv, fetchFromGitHub, libxslt, asciidoc }: stdenv.mkDerivation rec { pname = "mkrom"; - version = "1.0.3"; + version = "1.0.4"; src = fetchFromGitHub { owner = "KnightOS"; repo = "mkrom"; rev = version; - sha256 = "0xgvanya40mdwy35j94j61hsp80dm5b440iphmr5ng3kjgchvpx2"; + sha256 = "sha256-YFrh0tOGiM90uvU9ZWopW1+9buHDQtetuOtPDSYYaXw="; }; strictDeps = true; - nativeBuildInputs = [ asciidoc cmake libxslt.bin ]; + nativeBuildInputs = [ asciidoc libxslt.bin ]; - hardeningDisable = [ "format" ]; + installFlags = [ "DESTDIR=$(out)" ]; + installTargets = [ "install" "install_man" ]; meta = with lib; { homepage = "https://knightos.org/"; description = "Packages KnightOS distribution files into a ROM"; license = licenses.mit; maintainers = with maintainers; [ siraben ]; + platforms = platforms.all; }; } From cb5657097b58eeaafee11f84d87059358ca90ebb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl=20de=20Kok?= Date: Sun, 2 May 2021 10:21:44 +0200 Subject: [PATCH 230/339] makemkv: switch from ffmpeg_3 to ffmpeg Tested by ripping a title from an Blu-Ray. See #120705. --- pkgs/applications/video/makemkv/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/video/makemkv/default.nix b/pkgs/applications/video/makemkv/default.nix index 817daf31d0a..da18a8d7abe 100644 --- a/pkgs/applications/video/makemkv/default.nix +++ b/pkgs/applications/video/makemkv/default.nix @@ -3,7 +3,7 @@ , fetchurl , autoPatchelfHook , pkg-config -, ffmpeg_3 +, ffmpeg , openssl , qtbase , zlib @@ -39,7 +39,7 @@ in mkDerivation { nativeBuildInputs = [ autoPatchelfHook pkg-config ]; - buildInputs = [ ffmpeg_3 openssl qtbase zlib ]; + buildInputs = [ ffmpeg openssl qtbase zlib ]; qtWrapperArgs = let From a54ed3611b4adf72425b4976c93da5b0a2df825d Mon Sep 17 00:00:00 2001 From: Ben Siraphob Date: Sun, 2 May 2021 15:23:05 +0700 Subject: [PATCH 231/339] knightos-scas: 0.5.3 -> 0.5.5 --- pkgs/development/tools/knightos/scas/default.nix | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/pkgs/development/tools/knightos/scas/default.nix b/pkgs/development/tools/knightos/scas/default.nix index ceb8212cf7f..255ecf798d8 100644 --- a/pkgs/development/tools/knightos/scas/default.nix +++ b/pkgs/development/tools/knightos/scas/default.nix @@ -2,14 +2,13 @@ stdenv.mkDerivation rec { pname = "scas"; - - version = "0.5.3"; + version = "0.5.5"; src = fetchFromGitHub { owner = "KnightOS"; repo = "scas"; rev = version; - sha256 = "0z6r07cl92kq860ddas5p88l990ih9cfqlzy5y4mk5hrmjzya60j"; + sha256 = "sha256-JGQE+orVDKKJsTt8sIjPX+3yhpZkujISroQ6g19+MzU="; }; cmakeFlags = [ "-DSCAS_LIBRARY=1" ]; From 9932e5cf7717f38882039f29c652fc2c246aceae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=BCtz?= Date: Sun, 2 May 2021 10:52:03 +0200 Subject: [PATCH 232/339] metadata-cleaner: 1.0.4 -> 1.0.5 --- pkgs/applications/misc/metadata-cleaner/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/misc/metadata-cleaner/default.nix b/pkgs/applications/misc/metadata-cleaner/default.nix index b1b77a53ea0..6807e056152 100644 --- a/pkgs/applications/misc/metadata-cleaner/default.nix +++ b/pkgs/applications/misc/metadata-cleaner/default.nix @@ -17,7 +17,7 @@ python3.pkgs.buildPythonApplication rec { pname = "metadata-cleaner"; - version = "1.0.4"; + version = "1.0.5"; format = "other"; @@ -25,7 +25,7 @@ python3.pkgs.buildPythonApplication rec { owner = "rmnvgr"; repo = "metadata-cleaner"; rev = "v${version}"; - sha256 = "sha256-F/xh4dFX7W50kFzpWpGKyMUhxOlDO3WDXBzXVsDViY8="; + sha256 = "sha256-9s9i703Svql1Nn1M1sFp3FOtLGjuxXi6YR6nsUJCkeg="; }; nativeBuildInputs = [ From c576998594b4b8790f291d17fa92d499d1dc5d42 Mon Sep 17 00:00:00 2001 From: Emery Hemingway Date: Fri, 30 Apr 2021 16:37:54 +0200 Subject: [PATCH 233/339] nim: 1.4.4 -> 1.4.6 --- pkgs/development/compilers/nim/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/compilers/nim/default.nix b/pkgs/development/compilers/nim/default.nix index 676e35b06bb..21d1017a675 100644 --- a/pkgs/development/compilers/nim/default.nix +++ b/pkgs/development/compilers/nim/default.nix @@ -95,12 +95,12 @@ in { nim-unwrapped = stdenv.mkDerivation rec { pname = "nim-unwrapped"; - version = "1.4.4"; + version = "1.4.6"; strictDeps = true; src = fetchurl { url = "https://nim-lang.org/download/nim-${version}.tar.xz"; - sha256 = "03k642nnjca0s6jlbn1v4jld51mbkix97jli4ky74gqlxyfp4wvd"; + hash = "sha256-D7wPkoLP/oXembxHv6h2Ulud3aKi6uVcGFoIgEuY070="; }; buildInputs = [ boehmgc openssl pcre readline sqlite ]; From 3266b763eafb61dc5eeec7b5945321b2842e4085 Mon Sep 17 00:00:00 2001 From: Thomas Gerbet Date: Sun, 2 May 2021 10:16:11 +0200 Subject: [PATCH 234/339] mujs: 1.1.1 -> 1.1.2 https://git.ghostscript.com/?p=mujs.git;a=log;h=1.1.2 The fix for the use-after-free included in this release might have a security impact. --- pkgs/development/interpreters/mujs/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/interpreters/mujs/default.nix b/pkgs/development/interpreters/mujs/default.nix index d9b52af9254..46f86f85fc3 100644 --- a/pkgs/development/interpreters/mujs/default.nix +++ b/pkgs/development/interpreters/mujs/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "mujs"; - version = "1.1.1"; + version = "1.1.2"; src = fetchurl { url = "https://mujs.com/downloads/mujs-${version}.tar.xz"; - sha256 = "sha256-meYfyWGfHVULVjVyA7NJ2Ih9CjbffblWc1yijU/3e7A="; + sha256 = "sha256-cZ6IK7fZhkDvoWM4Hpto7xzjXIekIuKqQZDJ5AIlh10="; }; buildInputs = [ readline ]; From 4dfcc530cdd2d0f046f5503839bd117edd7efa79 Mon Sep 17 00:00:00 2001 From: rnhmjoj Date: Sun, 2 May 2021 11:30:04 +0200 Subject: [PATCH 235/339] quirc: 2016-08-16 -> 2020-04-06 --- pkgs/tools/graphics/quirc/default.nix | 52 ++++++++++++++------------- 1 file changed, 28 insertions(+), 24 deletions(-) diff --git a/pkgs/tools/graphics/quirc/default.nix b/pkgs/tools/graphics/quirc/default.nix index 8ca8ecf2c89..dec2a1020c8 100644 --- a/pkgs/tools/graphics/quirc/default.nix +++ b/pkgs/tools/graphics/quirc/default.nix @@ -1,36 +1,40 @@ -{lib, stdenv, fetchgit, SDL_gfx, SDL, libjpeg, libpng, pkg-config}: -let - s = - rec { - date = "2016-08-16"; - version = "git-${date}"; - baseName = "quirc"; - name = "${baseName}-${version}"; - url = "https://github.com/dlbeer/quirc"; - rev = "5b262480091d5f84a67a4a56c728fc8b39844339"; - sha256 = "1w5qvjafn14s6jjs7kiwsqirlsqbgv0p152hrsq463pm34hp0lzy"; - }; -in +{ lib, stdenv, fetchFromGitHub +, SDL_gfx, SDL, libjpeg, libpng, pkg-config +}: + stdenv.mkDerivation { - inherit (s) name version; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ - SDL SDL_gfx libjpeg libpng - ]; - src = fetchgit { - inherit (s) url sha256 rev; + pname = "quirc"; + version = "2020-04-16"; + + src = fetchFromGitHub { + owner = "dlbeer"; + repo = "quirc"; + rev = "ed455904f35270888bc902b9e8c0c9b3184a8302"; + sha256 = "1kqqvcnxcaxdgls9sibw5pqjz3g1gys2v64i4kfqp8wfcgd9771q"; }; - NIX_CFLAGS_COMPILE="-I${SDL.dev}/include/SDL -I${SDL_gfx}/include/SDL"; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ SDL SDL_gfx libjpeg libpng ]; + + makeFlags = [ "PREFIX=$(out)" ]; + NIX_CFLAGS_COMPILE = "-I${SDL.dev}/include/SDL -I${SDL_gfx}/include/SDL"; + configurePhase = '' + runHook preConfigure + + # don't try to change ownership sed -e 's/-[og] root//g' -i Makefile + + runHook postConfigure ''; preInstall = '' mkdir -p "$out"/{bin,lib,include} - find . -maxdepth 1 -type f -perm -0100 -exec cp '{}' "$out"/bin ';' + + # install all binaries + find -maxdepth 1 -type f -executable ! -name '*.so.*' | xargs cp -t "$out"/bin ''; - makeFlags = [ "PREFIX=$(out)" ]; + meta = { - inherit (s) version; description = "A small QR code decoding library"; license = lib.licenses.isc; maintainers = [lib.maintainers.raskin]; From 26d524374faffbc81844a7869ebb05a7ef3e6b19 Mon Sep 17 00:00:00 2001 From: rnhmjoj Date: Sun, 2 May 2021 11:31:05 +0200 Subject: [PATCH 236/339] monero: 0.17.1.9 -> 0.17.2.0 --- pkgs/applications/blockchains/monero/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/blockchains/monero/default.nix b/pkgs/applications/blockchains/monero/default.nix index 3be8b908c7a..2a12bfe872b 100644 --- a/pkgs/applications/blockchains/monero/default.nix +++ b/pkgs/applications/blockchains/monero/default.nix @@ -17,13 +17,13 @@ assert trezorSupport -> all (x: x!=null) [ libusb1 protobuf python3 ]; stdenv.mkDerivation rec { pname = "monero"; - version = "0.17.1.9"; + version = "0.17.2.0"; src = fetchFromGitHub { owner = "monero-project"; repo = "monero"; rev = "v${version}"; - sha256 = "0jqss4csvkcrhrmaa3vrnyv6yiwqpbfw7037clx9xcfm4qrrfiwy"; + sha256 = "0jwlmrpzisvw1c06cvd5b3s3hd4w0pa1qmrypfwah67qj3x6hnb6"; fetchSubmodules = true; }; From 3227f676cb168b9310b0f386e37ad706c1f84b8c Mon Sep 17 00:00:00 2001 From: rnhmjoj Date: Sun, 2 May 2021 11:41:56 +0200 Subject: [PATCH 237/339] monero-gui: 0.17.1.9 -> 0.17.2.1 --- .../blockchains/monero-gui/default.nix | 26 +++++-------- .../monero-gui/use-system-libquirc.patch | 37 +++++++++++++++++++ 2 files changed, 47 insertions(+), 16 deletions(-) create mode 100644 pkgs/applications/blockchains/monero-gui/use-system-libquirc.patch diff --git a/pkgs/applications/blockchains/monero-gui/default.nix b/pkgs/applications/blockchains/monero-gui/default.nix index 5f430bc8869..47df64b514f 100644 --- a/pkgs/applications/blockchains/monero-gui/default.nix +++ b/pkgs/applications/blockchains/monero-gui/default.nix @@ -17,22 +17,15 @@ with lib; -let - arch = if stdenv.isx86_64 then "x86-64" - else if stdenv.isi686 then "i686" - else if stdenv.isAarch64 then "armv8-a" - else throw "unsupported architecture"; -in - stdenv.mkDerivation rec { pname = "monero-gui"; - version = "0.17.1.9"; + version = "0.17.2.1"; src = fetchFromGitHub { owner = "monero-project"; repo = "monero-gui"; rev = "v${version}"; - sha256 = "0143mmxk0jfb5pmjlx6v0knvf8v49kmkpjxlp6rw8lwnlf71xadn"; + sha256 = "1apjvpvn6hg0k0ak6wpg4prcdcslnb6fqhzzg2p4iy846f0ai9ji"; }; nativeBuildInputs = [ @@ -58,7 +51,10 @@ stdenv.mkDerivation rec { chmod -R +w source/monero ''; - patches = [ ./move-log-file.patch ]; + patches = [ + ./move-log-file.patch + ./use-system-libquirc.patch + ]; postPatch = '' # set monero-gui version @@ -69,17 +65,15 @@ stdenv.mkDerivation rec { substituteInPlace src/daemon/DaemonManager.cpp \ --replace 'QApplication::applicationDirPath() + "' '"${monero}/bin' - # only build external deps, *not* the full monero + # 1: only build external deps, *not* the full monero + # 2: use nixpkgs libraries substituteInPlace CMakeLists.txt \ --replace 'add_subdirectory(monero)' \ - 'add_subdirectory(monero EXCLUDE_FROM_ALL)' - - # use nixpkgs quirc - substituteInPlace CMakeLists.txt \ + 'add_subdirectory(monero EXCLUDE_FROM_ALL)' \ --replace 'add_subdirectory(external)' "" ''; - cmakeFlags = [ "-DARCH=${arch}" ]; + cmakeFlags = [ "-DARCH=default" ]; desktopItem = makeDesktopItem { name = "monero-wallet-gui"; diff --git a/pkgs/applications/blockchains/monero-gui/use-system-libquirc.patch b/pkgs/applications/blockchains/monero-gui/use-system-libquirc.patch new file mode 100644 index 00000000000..b60057294b1 --- /dev/null +++ b/pkgs/applications/blockchains/monero-gui/use-system-libquirc.patch @@ -0,0 +1,37 @@ +diff --git a/src/QR-Code-scanner/CMakeLists.txt b/src/QR-Code-scanner/CMakeLists.txt +index 15e288df..2e9b3305 100644 +--- a/src/QR-Code-scanner/CMakeLists.txt ++++ b/src/QR-Code-scanner/CMakeLists.txt +@@ -1,11 +1,18 @@ ++find_library(QUIRC_LIBRARY quirc REQUIRED) ++find_path(QUIRC_INCLUDE_DIR quirc.h REQUIRED) ++ + add_library(qrdecoder STATIC + Decoder.cpp + ) ++target_include_directories(qrdecoder ++ PUBLIC ++ ${QUIRC_INCLUDE_DIR} ++) + target_link_libraries(qrdecoder + PUBLIC + Qt5::Gui + PRIVATE +- quirc ++ ${QUIRC_LIBRARY} + ) + + if(WITH_SCANNER) +diff --git a/src/QR-Code-scanner/Decoder.cpp b/src/QR-Code-scanner/Decoder.cpp +index 1bb99140..353ca189 100644 +--- a/src/QR-Code-scanner/Decoder.cpp ++++ b/src/QR-Code-scanner/Decoder.cpp +@@ -30,7 +30,7 @@ + + #include + +-#include "quirc.h" ++#include + + QrDecoder::QrDecoder() + : m_qr(quirc_new()) From 8309374a78fd201cb4c352f5c2cd087d400df6a5 Mon Sep 17 00:00:00 2001 From: Mazurel Date: Sun, 2 May 2021 11:53:36 +0200 Subject: [PATCH 238/339] ogre: Added SDL2 as dependency --- pkgs/development/libraries/ogre/default.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pkgs/development/libraries/ogre/default.nix b/pkgs/development/libraries/ogre/default.nix index ae65da3f418..d097dc623e7 100644 --- a/pkgs/development/libraries/ogre/default.nix +++ b/pkgs/development/libraries/ogre/default.nix @@ -6,6 +6,7 @@ , libXxf86vm, libICE , unzip , libXrender +, SDL2 , withNvidiaCg ? false, nvidia_cg_toolkit , withSamples ? false }: @@ -18,7 +19,7 @@ stdenv.mkDerivation rec { sha256 = "1iv6k0dwdzg5nnzw2mcgcl663q4f7p2kj7nhs8afnsikrzxxgsi4"; }; - cmakeFlags = [ "-DOGRE_BUILD_SAMPLES=${toString withSamples}" ] + cmakeFlags = [ "-DOGRE_BUILD_DEPENDENCIES=OFF" "-DOGRE_BUILD_SAMPLES=${toString withSamples}" ] ++ map (x: "-DOGRE_BUILD_PLUGIN_${x}=on") ([ "BSP" "OCTREE" "PCZ" "PFX" ] ++ lib.optional withNvidiaCg "CG") ++ map (x: "-DOGRE_BUILD_RENDERSYSTEM_${x}=on") [ "GL" ]; @@ -32,6 +33,7 @@ stdenv.mkDerivation rec { libX11 libXmu libSM libXxf86vm libICE libXrender + SDL2 ] ++ lib.optional withNvidiaCg nvidia_cg_toolkit; meta = { From 884cf29501c424ee68d1f2791edd1ed4ef2a9361 Mon Sep 17 00:00:00 2001 From: Luke Granger-Brown Date: Sun, 2 May 2021 11:10:40 +0000 Subject: [PATCH 239/339] dcm2niix: 1.0.20201102 -> 1.0.20210317 --- pkgs/applications/science/biology/dcm2niix/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/science/biology/dcm2niix/default.nix b/pkgs/applications/science/biology/dcm2niix/default.nix index c07ac084b3a..6224ccabb06 100644 --- a/pkgs/applications/science/biology/dcm2niix/default.nix +++ b/pkgs/applications/science/biology/dcm2niix/default.nix @@ -6,14 +6,14 @@ }: stdenv.mkDerivation rec { - version = "1.0.20201102"; + version = "1.0.20210317"; pname = "dcm2niix"; src = fetchFromGitHub { owner = "rordenlab"; repo = "dcm2niix"; rev = "v${version}"; - sha256 = "0r21a55fd1fhkkrqqrynasvvnrbhzq0g3ifav2858hppdicw1j35"; + sha256 = "05rjk0xsrzcxa979vlx25k1rdz1in84gkfm9l1h9f7k4a4aa5r6j"; }; nativeBuildInputs = [ cmake git ]; From cf39deb8a32d2b154e1d36c317cc4a163d448836 Mon Sep 17 00:00:00 2001 From: Mario Rodas Date: Sun, 2 May 2021 06:37:21 -0500 Subject: [PATCH 240/339] python38Packages.flask-restx: 0.2.0 -> 0.3.0 (#121465) https://github.com/python-restx/flask-restx/releases/tag/0.3.0 --- pkgs/development/python-modules/flask-restx/default.nix | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/flask-restx/default.nix b/pkgs/development/python-modules/flask-restx/default.nix index f2b7222c3d0..e1de7bf0d3b 100644 --- a/pkgs/development/python-modules/flask-restx/default.nix +++ b/pkgs/development/python-modules/flask-restx/default.nix @@ -20,14 +20,14 @@ buildPythonPackage rec { pname = "flask-restx"; - version = "0.2.0"; + version = "0.3.0"; # Tests not included in PyPI tarball src = fetchFromGitHub { owner = "python-restx"; repo = pname; rev = version; - sha256 = "0xf2vkmdngp9cv9klznizai4byxjcf0iqh1pr4b83nann0jxqwy7"; + sha256 = "0aj13nd3z71gb8c2kqiaz3f9k7jr0srlvrsx8hpz4nkpki8jiz2s"; }; propagatedBuildInputs = [ aniso8601 jsonschema flask werkzeug pytz six ] @@ -45,6 +45,7 @@ buildPythonPackage rec { meta = with lib; { homepage = "https://flask-restx.readthedocs.io/en/${version}/"; description = "Fully featured framework for fast, easy and documented API development with Flask"; + changelog = "https://github.com/python-restx/flask-restx/raw/${version}/CHANGELOG.rst"; license = licenses.bsd3; maintainers = [ maintainers.marsam ]; }; From 4da5de00a546f7820d33a3b11deb02c20816130a Mon Sep 17 00:00:00 2001 From: Mario Rodas Date: Sun, 2 May 2021 06:39:39 -0500 Subject: [PATCH 241/339] flexget: 3.1.110 -> 3.1.116 (#121464) --- pkgs/applications/networking/flexget/default.nix | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/networking/flexget/default.nix b/pkgs/applications/networking/flexget/default.nix index 3f2e3490955..592c5282cd1 100644 --- a/pkgs/applications/networking/flexget/default.nix +++ b/pkgs/applications/networking/flexget/default.nix @@ -2,11 +2,11 @@ python3Packages.buildPythonApplication rec { pname = "FlexGet"; - version = "3.1.110"; + version = "3.1.116"; src = python3Packages.fetchPypi { inherit pname version; - sha256 = "e8642dcbbfe941e2d2def7bf2e28889082a78c1d041edb33dae180036832a96b"; + sha256 = "6372b36495ae023bd64ce28ca649feba54b060ed8f0a5f606a4845974e834493"; }; postPatch = '' @@ -54,6 +54,7 @@ python3Packages.buildPythonApplication rec { sqlalchemy terminaltables zxcvbn + psutil # plugins transmission-rpc ]; From 637c7391adf6e221a882b5ea98d8ba9666436e49 Mon Sep 17 00:00:00 2001 From: Arijit Basu Date: Sun, 2 May 2021 17:10:58 +0530 Subject: [PATCH 242/339] xplr: 0.5.10 -> 0.5.12 (#121473) --- pkgs/applications/misc/xplr/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/misc/xplr/default.nix b/pkgs/applications/misc/xplr/default.nix index 14a50dbeb9e..bcb5beff287 100644 --- a/pkgs/applications/misc/xplr/default.nix +++ b/pkgs/applications/misc/xplr/default.nix @@ -2,16 +2,16 @@ rustPlatform.buildRustPackage rec { name = "xplr"; - version = "0.5.10"; + version = "0.5.12"; src = fetchFromGitHub { owner = "sayanarijit"; repo = name; rev = "v${version}"; - sha256 = "1gy0iv39arq2ri57iqsycp1sfnn1yafnhblr7p1my2wnmqwmd4qw"; + sha256 = "0dmqa56sxyvrq03rpf9yczp75zk44s79ilz6kbykdghp0d9lyldf"; }; - cargoSha256 = "01b4dlbakkdn3pfyyphabzrmqyp7fjy6n1nfk38z3zap5zvx8ipl"; + cargoSha256 = "1mb1rfax91cbi2wvshl8jsfykx9kfwff8fkqa7rc4plqxnz0qxkx"; meta = with lib; { description = "A hackable, minimal, fast TUI file explorer"; From 8a92cdd9f5b83af9ea6c44c0ec3f8622d12364b9 Mon Sep 17 00:00:00 2001 From: Luke Granger-Brown Date: Sun, 2 May 2021 11:55:06 +0000 Subject: [PATCH 243/339] teamspeak_client: fix for quazip 1.x --- .../networking/instant-messengers/teamspeak/client.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/applications/networking/instant-messengers/teamspeak/client.nix b/pkgs/applications/networking/instant-messengers/teamspeak/client.nix index 98867407916..d2648eff57c 100644 --- a/pkgs/applications/networking/instant-messengers/teamspeak/client.nix +++ b/pkgs/applications/networking/instant-messengers/teamspeak/client.nix @@ -60,7 +60,7 @@ stdenv.mkDerivation rec { '' mv ts3client_linux_${arch} ts3client echo "patching ts3client..." - patchelf --replace-needed libquazip.so ${quazip}/lib/libquazip5.so ts3client + patchelf --replace-needed libquazip.so ${quazip}/lib/libquazip1-qt5.so ts3client patchelf \ --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ --set-rpath ${lib.makeLibraryPath deps}:$(cat $NIX_CC/nix-support/orig-cc)/${libDir} \ From 9a943b4b4213888382d88c1d69d8dacffa936867 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vojt=C4=9Bch=20K=C3=A1n=C4=9B?= Date: Fri, 5 Mar 2021 14:49:49 +0100 Subject: [PATCH 244/339] maintainers: add vojta001 --- maintainers/maintainer-list.nix | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 60c6f093f3b..d9de8a22f2f 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -10559,7 +10559,12 @@ githubId = 45292658; name = "Julius Schmitt"; }; - + vojta001 = { + email = "vojtech.kane@gmail.com"; + github = "vojta001"; + githubId = 7038383; + name = "Vojta Káně"; + }; volhovm = { email = "volhovm.cs@gmail.com"; github = "volhovm"; From dc9e5ac607f4d3b41c07e70bec6830159a415b74 Mon Sep 17 00:00:00 2001 From: George Shammas Date: Sun, 2 May 2021 08:21:07 -0400 Subject: [PATCH 245/339] citrix_workspace: fix build / add mesa dependency --- .../networking/remote/citrix-workspace/generic.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkgs/applications/networking/remote/citrix-workspace/generic.nix b/pkgs/applications/networking/remote/citrix-workspace/generic.nix index 35faeb20b75..8b1ef3c5863 100644 --- a/pkgs/applications/networking/remote/citrix-workspace/generic.nix +++ b/pkgs/applications/networking/remote/citrix-workspace/generic.nix @@ -1,7 +1,7 @@ { lib, stdenv, requireFile, makeWrapper, autoPatchelfHook, wrapGAppsHook, which, more , file, atk, alsaLib, cairo, fontconfig, gdk-pixbuf, glib, gnome3, gtk2-x11, gtk3 , heimdal, krb5, libsoup, libvorbis, speex, openssl, zlib, xorg, pango, gtk2 -, gnome2, nss, nspr, gtk_engines, freetype, dconf, libpng12, libxml2 +, gnome2, mesa, nss, nspr, gtk_engines, freetype, dconf, libpng12, libxml2 , libjpeg, libredirect, tzdata, cacert, systemd, libcxxabi, libcxx, e2fsprogs, symlinkJoin , libpulseaudio, pcsclite @@ -84,6 +84,7 @@ stdenv.mkDerivation rec { libsoup libvorbis libxml2 + mesa nspr nss openssl' From 8c04500313344dba9a3113425eea85c6b01e9d32 Mon Sep 17 00:00:00 2001 From: Luke Granger-Brown Date: Sun, 2 May 2021 12:26:15 +0000 Subject: [PATCH 246/339] thonny: 3.3.3 -> 3.3.6 --- pkgs/applications/editors/thonny/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/editors/thonny/default.nix b/pkgs/applications/editors/thonny/default.nix index c114d42a0d5..d5bbf03cd1a 100644 --- a/pkgs/applications/editors/thonny/default.nix +++ b/pkgs/applications/editors/thonny/default.nix @@ -4,13 +4,13 @@ with python3.pkgs; buildPythonApplication rec { pname = "thonny"; - version = "3.3.3"; + version = "3.3.6"; src = fetchFromGitHub { owner = pname; repo = pname; rev = "v${version}"; - sha256 = "12bwzrl1wcz79ai1ql3jvqg4v02k7jg9qw4y7gqx5zfhwm1wph8l"; + sha256 = "0ga0pqvq3nglr4jgh8ajv0bv8c7q09h1jh6q6r5cwqa49fawkr02"; }; propagatedBuildInputs = with python3.pkgs; [ From 8b882a58420cd72ea150802c778b29f260cdb136 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benno=20F=C3=BCnfst=C3=BCck?= Date: Sun, 2 May 2021 14:26:40 +0200 Subject: [PATCH 247/339] librespot: 0.1.3 -> 0.1.6 --- .../audio/librespot/cargo-lock.patch | 3898 ++++++++++++++++- pkgs/applications/audio/librespot/default.nix | 7 +- 2 files changed, 3792 insertions(+), 113 deletions(-) diff --git a/pkgs/applications/audio/librespot/cargo-lock.patch b/pkgs/applications/audio/librespot/cargo-lock.patch index 129ba96987a..0c2af8f80c6 100644 --- a/pkgs/applications/audio/librespot/cargo-lock.patch +++ b/pkgs/applications/audio/librespot/cargo-lock.patch @@ -1,137 +1,3817 @@ -diff --git a/Cargo.lock b/Cargo.lock -index 533b47d..9c9c2f6 100644 ---- a/Cargo.lock -+++ b/Cargo.lock -@@ -932,7 +932,7 @@ dependencies = [ +--- source/Cargo.lock 1970-01-01 01:00:01.000000000 +0100 ++++ ../nix-build-librespot-0.1.6.drv-0/source/Cargo.lock 2021-04-27 19:07:38.535244188 +0200 +@@ -4,2784 +4,2782 @@ + name = "aes" + version = "0.3.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "54eb1d8fe354e5fc611daf4f2ea97dd45a765f4f1e4512306ec183ae2e8f20c9" + dependencies = [ +- "aes-soft 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", +- "aesni 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "block-cipher-trait 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "aes-soft", ++ "aesni", ++ "block-cipher-trait", + ] + + [[package]] + name = "aes-ctr" + version = "0.3.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "d2e5b0458ea3beae0d1d8c0f3946564f8e10f90646cf78c06b4351052058d1ee" + dependencies = [ +- "aes-soft 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", +- "aesni 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "ctr 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "stream-cipher 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "aes-soft", ++ "aesni", ++ "ctr", ++ "stream-cipher", + ] + + [[package]] + name = "aes-soft" + version = "0.3.3" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "cfd7e7ae3f9a1fb5c03b389fc6bb9a51400d0c13053f0dca698c832bfd893a0d" + dependencies = [ +- "block-cipher-trait 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)", +- "opaque-debug 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "block-cipher-trait", ++ "byteorder", ++ "opaque-debug", + ] + + [[package]] + name = "aesni" + version = "0.6.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "2f70a6b5f971e473091ab7cfb5ffac6cde81666c4556751d8d5620ead8abf100" + dependencies = [ +- "block-cipher-trait 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "opaque-debug 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", +- "stream-cipher 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "block-cipher-trait", ++ "opaque-debug", ++ "stream-cipher", + ] + + [[package]] + name = "alga" + version = "0.9.3" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "4f823d037a7ec6ea2197046bafd4ae150e6bc36f9ca347404f46a46823fa84f2" + dependencies = [ +- "approx 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "num-complex 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", +- "num-traits 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)", ++ "approx", ++ "num-complex", ++ "num-traits", + ] + + [[package]] + name = "alsa" + version = "0.2.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "b4a0d4ebc8b23041c5de9bc9aee13b4bad844a589479701f31a5934cfe4aeb32" + dependencies = [ +- "alsa-sys 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "bitflags 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "nix 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "alsa-sys", ++ "bitflags 0.9.1", ++ "libc", ++ "nix", + ] + + [[package]] + name = "alsa-sys" + version = "0.1.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "b0edcbbf9ef68f15ae1b620f722180b82a98b6f0628d30baa6b8d2a5abc87d58" + dependencies = [ +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "pkg-config 0.3.18 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc", ++ "pkg-config", + ] + + [[package]] + name = "approx" + version = "0.3.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "f0e60b75072ecd4168020818c0107f2857bb6c4e64252d8d3983f6263b40a5c3" + dependencies = [ +- "num-traits 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)", ++ "num-traits", + ] + + [[package]] + name = "arc-swap" + version = "0.4.7" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "4d25d88fd6b8041580a654f9d0c581a047baee2b3efee13275f2fc392fc75034" + + [[package]] + name = "atty" + version = "0.2.14" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" + dependencies = [ +- "hermit-abi 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", ++ "hermit-abi", ++ "libc", ++ "winapi 0.3.9", + ] + + [[package]] + name = "autocfg" + version = "0.1.7" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2" + + [[package]] + name = "autocfg" + version = "1.0.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d" + + [[package]] + name = "base64" + version = "0.9.3" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "489d6c0ed21b11d038c31b6ceccca973e65d73ba3bd8ecb9a2babf5546164643" + dependencies = [ +- "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)", +- "safemem 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "byteorder", ++ "safemem", + ] + + [[package]] + name = "base64" + version = "0.10.1" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "0b25d992356d2eb0ed82172f5248873db5560c4721f564b13cb5193bda5e668e" + dependencies = [ +- "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)", ++ "byteorder", + ] + + [[package]] + name = "bindgen" + version = "0.53.3" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "c72a978d268b1d70b0e963217e60fdabd9523a941457a6c42a7315d15c7e89e5" + dependencies = [ +- "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "cexpr 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", +- "clang-sys 0.29.3 (registry+https://github.com/rust-lang/crates.io-index)", +- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "peeking_take_while 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "proc-macro2 1.0.19 (registry+https://github.com/rust-lang/crates.io-index)", +- "quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)", +- "regex 1.3.9 (registry+https://github.com/rust-lang/crates.io-index)", +- "rustc-hash 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "shlex 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "bitflags 1.2.1", ++ "cexpr", ++ "cfg-if", ++ "clang-sys", ++ "lazy_static", ++ "lazycell", ++ "peeking_take_while", ++ "proc-macro2 1.0.19", ++ "quote 1.0.7", ++ "regex", ++ "rustc-hash", ++ "shlex", + ] + + [[package]] + name = "bit-set" + version = "0.5.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "6e11e16035ea35e4e5997b393eacbf6f63983188f7a2ad25bfb13465f5ad59de" + dependencies = [ +- "bit-vec 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "bit-vec", + ] + + [[package]] + name = "bit-vec" + version = "0.6.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "5f0dc55f2d8a1a85650ac47858bb001b4c0dd73d79e3c455a842925e68d29cd3" + + [[package]] + name = "bitflags" + version = "0.7.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "aad18937a628ec6abcd26d1489012cc0e18c21798210f491af69ded9b881106d" + + [[package]] + name = "bitflags" + version = "0.9.1" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "4efd02e230a02e18f92fc2735f44597385ed02ad8f831e7c1c1156ee5e1ab3a5" + + [[package]] + name = "bitflags" + version = "1.2.1" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" + + [[package]] + name = "block-buffer" + version = "0.7.3" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b" + dependencies = [ +- "block-padding 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", +- "byte-tools 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)", +- "generic-array 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "block-padding", ++ "byte-tools", ++ "byteorder", ++ "generic-array", + ] + + [[package]] + name = "block-cipher-trait" + version = "0.6.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "1c924d49bd09e7c06003acda26cd9742e796e34282ec6c1189404dee0c1f4774" + dependencies = [ +- "generic-array 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "generic-array", + ] + + [[package]] + name = "block-modes" + version = "0.3.3" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "31aa8410095e39fdb732909fb5730a48d5bd7c2e3cd76bd1b07b3dbea130c529" + dependencies = [ +- "block-cipher-trait 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "block-padding 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", ++ "block-cipher-trait", ++ "block-padding", + ] + + [[package]] + name = "block-padding" + version = "0.1.5" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5" + dependencies = [ +- "byte-tools 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "byte-tools", + ] + + [[package]] + name = "byte-tools" + version = "0.3.1" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" + + [[package]] + name = "byteorder" + version = "1.3.4" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de" + + [[package]] + name = "bytes" + version = "0.4.12" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c" + dependencies = [ +- "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)", +- "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", ++ "byteorder", ++ "iovec", + ] + + [[package]] + name = "cc" + version = "1.0.58" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "f9a06fb2e53271d7c279ec1efea6ab691c35a2ae67ec0d91d7acec0caf13b518" + + [[package]] + name = "cexpr" + version = "0.4.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "f4aedb84272dbe89af497cf81375129abda4fc0a9e7c5d317498c15cc30c0d27" + dependencies = [ +- "nom 5.1.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "nom", + ] + + [[package]] + name = "cfg-if" + version = "0.1.10" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" + + [[package]] + name = "chrono" + version = "0.4.13" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "c74d84029116787153e02106bf53e66828452a4b325cc8652b788b5967c0a0b6" + dependencies = [ +- "num-integer 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)", +- "num-traits 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)", +- "time 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)", ++ "num-integer", ++ "num-traits", ++ "time", + ] + + [[package]] + name = "clang-sys" + version = "0.29.3" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "fe6837df1d5cba2397b835c8530f51723267e16abbf83892e9e5af4f0e5dd10a" + dependencies = [ +- "glob 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "libloading 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "glob", ++ "libc", ++ "libloading 0.5.2", + ] + + [[package]] + name = "cloudabi" + version = "0.0.3" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" + dependencies = [ +- "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "bitflags 1.2.1", + ] + + [[package]] + name = "core-foundation-sys" + version = "0.5.1" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "716c271e8613ace48344f723b60b900a93150271e5be206212d052bbc0883efa" + dependencies = [ +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc", + ] + + [[package]] + name = "coreaudio-rs" + version = "0.9.1" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "f229761965dad3e9b11081668a6ea00f1def7aa46062321b5ec245b834f6e491" + dependencies = [ +- "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "coreaudio-sys 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", ++ "bitflags 1.2.1", ++ "coreaudio-sys", + ] + + [[package]] + name = "coreaudio-sys" + version = "0.2.5" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "d6570ee6e089131e928d5ec9236db9e818aa3cf850f48b0eec6ef700571271d4" + dependencies = [ +- "bindgen 0.53.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "bindgen", + ] + + [[package]] + name = "cpal" + version = "0.8.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "d58ae1ed6536b1b233f5e3aeb6997a046ddb4d05e3f61701b58a92eb254a829e" + dependencies = [ +- "alsa-sys 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "coreaudio-rs 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "stdweb 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", +- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", ++ "alsa-sys", ++ "core-foundation-sys", ++ "coreaudio-rs", ++ "lazy_static", ++ "libc", ++ "stdweb", ++ "winapi 0.3.9", + ] + + [[package]] + name = "crossbeam-deque" + version = "0.7.3" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "9f02af974daeee82218205558e51ec8768b48cf524bd01d550abe5573a608285" + dependencies = [ +- "crossbeam-epoch 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "crossbeam-utils 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "maybe-uninit 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "crossbeam-epoch", ++ "crossbeam-utils 0.7.2", ++ "maybe-uninit", + ] + + [[package]] + name = "crossbeam-epoch" + version = "0.8.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "058ed274caafc1f60c4997b5fc07bf7dc7cca454af7c6e81edffe5f33f70dace" + dependencies = [ +- "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", +- "crossbeam-utils 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "maybe-uninit 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "memoffset 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", +- "scopeguard 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "autocfg 1.0.0", ++ "cfg-if", ++ "crossbeam-utils 0.7.2", ++ "lazy_static", ++ "maybe-uninit", ++ "memoffset", ++ "scopeguard", + ] + + [[package]] + name = "crossbeam-queue" + version = "0.1.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "7c979cd6cfe72335896575c6b5688da489e420d36a27a0b9eb0c73db574b4a4b" + dependencies = [ +- "crossbeam-utils 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)", ++ "crossbeam-utils 0.6.6", + ] + + [[package]] + name = "crossbeam-queue" + version = "0.2.3" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "774ba60a54c213d409d5353bda12d49cd68d14e45036a285234c8d6f91f92570" + dependencies = [ +- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", +- "crossbeam-utils 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "maybe-uninit 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "cfg-if", ++ "crossbeam-utils 0.7.2", ++ "maybe-uninit", + ] + + [[package]] + name = "crossbeam-utils" + version = "0.6.6" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "04973fa96e96579258a5091af6003abde64af786b860f18622b82e026cca60e6" + dependencies = [ +- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", +- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "cfg-if", ++ "lazy_static", + ] + + [[package]] + name = "crossbeam-utils" + version = "0.7.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8" + dependencies = [ +- "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", +- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "autocfg 1.0.0", ++ "cfg-if", ++ "lazy_static", + ] + + [[package]] + name = "crypto-mac" + version = "0.7.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "4434400df11d95d556bac068ddfedd482915eb18fe8bea89bc80b6e4b1c179e5" + dependencies = [ +- "generic-array 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)", +- "subtle 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "generic-array", ++ "subtle", + ] + + [[package]] + name = "ctr" + version = "0.3.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "022cd691704491df67d25d006fe8eca083098253c4d43516c2206479c58c6736" + dependencies = [ +- "block-cipher-trait 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "stream-cipher 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "block-cipher-trait", ++ "stream-cipher", + ] + + [[package]] + name = "digest" + version = "0.8.1" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5" + dependencies = [ +- "generic-array 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "generic-array", + ] + + [[package]] + name = "dns-sd" + version = "0.1.3" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "d748509dea20228f63ba519bf142ce2593396386125b01f5b0d6412dab972087" + dependencies = [ +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "pkg-config 0.3.18 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc", ++ "pkg-config", + ] + + [[package]] + name = "env_logger" + version = "0.6.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "aafcde04e90a5226a6443b7aabdb016ba2f8307c847d524724bd9b346dd1a2d3" + dependencies = [ +- "atty 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)", +- "humantime 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", +- "termcolor 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "atty", ++ "humantime", ++ "log 0.4.11", ++ "termcolor", + ] + + [[package]] + name = "error-chain" + version = "0.12.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "d371106cc88ffdfb1eabd7111e432da544f16f3e2d7bf1dfe8bf575f1df045cd" + dependencies = [ +- "version_check 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "version_check", + ] + + [[package]] + name = "fake-simd" + version = "0.1.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" + + [[package]] + name = "fnv" + version = "1.0.7" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + + [[package]] + name = "fuchsia-cprng" + version = "0.1.1" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba" + + [[package]] + name = "fuchsia-zircon" + version = "0.3.3" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" + dependencies = [ +- "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "bitflags 1.2.1", ++ "fuchsia-zircon-sys", + ] + + [[package]] + name = "fuchsia-zircon-sys" + version = "0.3.3" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" + + [[package]] + name = "futures" + version = "0.1.29" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "1b980f2816d6ee8673b6517b52cb0e808a180efc92e5c19d02cdda79066703ef" + + [[package]] + name = "futures-channel" + version = "0.3.5" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "f366ad74c28cca6ba456d95e6422883cfb4b252a83bed929c83abfdbbf2967d5" + dependencies = [ +- "futures-core 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", ++ "futures-core", + ] + + [[package]] + name = "futures-core" + version = "0.3.5" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "59f5fff90fd5d971f936ad674802482ba441b6f09ba5e15fd8b39145582ca399" + + [[package]] + name = "futures-cpupool" + version = "0.1.8" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "ab90cde24b3319636588d0c35fe03b1333857621051837ed769faefb4c2162e4" + dependencies = [ +- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", +- "num_cpus 1.13.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "futures", ++ "num_cpus", + ] + + [[package]] + name = "futures-executor" + version = "0.3.5" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "10d6bb888be1153d3abeb9006b11b02cf5e9b209fda28693c31ae1e4e012e314" + dependencies = [ +- "futures-core 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", +- "futures-task 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", +- "futures-util 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", ++ "futures-core", ++ "futures-task", ++ "futures-util", + ] + + [[package]] + name = "futures-macro" + version = "0.3.5" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "d0b5a30a4328ab5473878237c447333c093297bded83a4983d10f4deea240d39" + dependencies = [ +- "proc-macro-hack 0.5.16 (registry+https://github.com/rust-lang/crates.io-index)", +- "proc-macro2 1.0.19 (registry+https://github.com/rust-lang/crates.io-index)", +- "quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)", +- "syn 1.0.35 (registry+https://github.com/rust-lang/crates.io-index)", ++ "proc-macro-hack", ++ "proc-macro2 1.0.19", ++ "quote 1.0.7", ++ "syn 1.0.35", + ] + + [[package]] + name = "futures-sink" + version = "0.3.5" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "3f2032893cb734c7a05d85ce0cc8b8c4075278e93b24b66f9de99d6eb0fa8acc" + + [[package]] + name = "futures-task" + version = "0.3.5" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "bdb66b5f09e22019b1ab0830f7785bcea8e7a42148683f99214f73f8ec21a626" + dependencies = [ +- "once_cell 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "once_cell", + ] + + [[package]] + name = "futures-util" + version = "0.3.5" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "8764574ff08b701a084482c3c7031349104b07ac897393010494beaa18ce32c6" + dependencies = [ +- "futures-core 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", +- "futures-macro 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", +- "futures-task 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", +- "pin-project 0.4.22 (registry+https://github.com/rust-lang/crates.io-index)", +- "pin-utils 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "proc-macro-hack 0.5.16 (registry+https://github.com/rust-lang/crates.io-index)", +- "proc-macro-nested 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", +- "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "futures-core", ++ "futures-macro", ++ "futures-task", ++ "pin-project", ++ "pin-utils", ++ "proc-macro-hack", ++ "proc-macro-nested", ++ "slab 0.4.2", + ] + + [[package]] + name = "gcc" + version = "0.3.55" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "8f5f3913fa0bfe7ee1fd8248b6b9f42a5af4b9d65ec2dd2c3c26132b950ecfc2" + + [[package]] + name = "generic-array" + version = "0.12.3" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "c68f0274ae0e023facc3c97b2e00f076be70e254bc851d972503b328db79b2ec" + dependencies = [ +- "typenum 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "typenum", + ] + + [[package]] + name = "getopts" + version = "0.2.21" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "14dbbfd5c71d70241ecf9e6f13737f7b5ce823821063188d7e46c41d371eebd5" + dependencies = [ +- "unicode-width 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", ++ "unicode-width", + ] + + [[package]] + name = "getrandom" + version = "0.1.14" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb" + dependencies = [ +- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "wasi 0.9.0+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "cfg-if", ++ "libc", ++ "wasi", + ] + + [[package]] + name = "glib" + version = "0.9.3" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "40fb573a09841b6386ddf15fd4bc6655b4f5b106ca962f57ecaecde32a0061c0" + dependencies = [ +- "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "futures-channel 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", +- "futures-core 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", +- "futures-executor 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", +- "futures-task 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", +- "futures-util 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", +- "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", ++ "bitflags 1.2.1", ++ "futures-channel", ++ "futures-core", ++ "futures-executor", ++ "futures-task", ++ "futures-util", ++ "glib-sys", ++ "gobject-sys", ++ "lazy_static", ++ "libc", + ] + + [[package]] + name = "glib-sys" + version = "0.9.1" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "95856f3802f446c05feffa5e24859fe6a183a7cb849c8449afc35c86b1e316e2" + dependencies = [ +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "pkg-config 0.3.18 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc", ++ "pkg-config", + ] + + [[package]] + name = "glob" + version = "0.3.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574" + + [[package]] + name = "gobject-sys" + version = "0.9.1" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "31d1a804f62034eccf370006ccaef3708a71c31d561fee88564abe71177553d9" + dependencies = [ +- "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "pkg-config 0.3.18 (registry+https://github.com/rust-lang/crates.io-index)", ++ "glib-sys", ++ "libc", ++ "pkg-config", + ] + + [[package]] + name = "gstreamer" + version = "0.15.7" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "ce8664a114cd6ec16bece783d5eee59496919915b1f6884400ba4a953274a163" + dependencies = [ +- "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", +- "futures-channel 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", +- "futures-core 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", +- "futures-util 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", +- "glib 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)", +- "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "gstreamer-sys 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "muldiv 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "num-rational 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", +- "paste 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)", ++ "bitflags 1.2.1", ++ "cfg-if", ++ "futures-channel", ++ "futures-core", ++ "futures-util", ++ "glib", ++ "glib-sys", ++ "gobject-sys", ++ "gstreamer-sys", ++ "lazy_static", ++ "libc", ++ "muldiv", ++ "num-rational", ++ "paste", + ] + + [[package]] + name = "gstreamer-app" + version = "0.15.6" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "789784e8d42f5add1e1e965cf9f7e2d09e21dd0756bae6148f971db9a761d6a9" + dependencies = [ +- "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "futures-core 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", +- "futures-sink 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", +- "glib 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)", +- "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "gstreamer 0.15.7 (registry+https://github.com/rust-lang/crates.io-index)", +- "gstreamer-app-sys 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "gstreamer-base 0.15.4 (registry+https://github.com/rust-lang/crates.io-index)", +- "gstreamer-sys 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", ++ "bitflags 1.2.1", ++ "futures-core", ++ "futures-sink", ++ "glib", ++ "glib-sys", ++ "gobject-sys", ++ "gstreamer", ++ "gstreamer-app-sys", ++ "gstreamer-base", ++ "gstreamer-sys", ++ "lazy_static", ++ "libc", + ] + + [[package]] + name = "gstreamer-app-sys" + version = "0.8.1" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "bf869ce152c23bca5d761ab62146b47f750d0b28d4d499731857532897d48167" + dependencies = [ +- "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "gstreamer-base-sys 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "gstreamer-sys 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "pkg-config 0.3.18 (registry+https://github.com/rust-lang/crates.io-index)", ++ "glib-sys", ++ "gstreamer-base-sys", ++ "gstreamer-sys", ++ "libc", ++ "pkg-config", + ] + + [[package]] + name = "gstreamer-base" + version = "0.15.4" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "42552f75cc6c260b0be180d5c955f4cd74bd170289c622404c25f1210b521c12" + dependencies = [ +- "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "glib 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)", +- "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "gstreamer 0.15.7 (registry+https://github.com/rust-lang/crates.io-index)", +- "gstreamer-base-sys 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "gstreamer-sys 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", ++ "bitflags 1.2.1", ++ "glib", ++ "glib-sys", ++ "gobject-sys", ++ "gstreamer", ++ "gstreamer-base-sys", ++ "gstreamer-sys", ++ "libc", + ] + + [[package]] + name = "gstreamer-base-sys" + version = "0.8.1" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "ba384f52174b3c586593fca32642680a9e67961fea9f4cd8419f678965023bed" + dependencies = [ +- "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "gstreamer-sys 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "pkg-config 0.3.18 (registry+https://github.com/rust-lang/crates.io-index)", ++ "glib-sys", ++ "gobject-sys", ++ "gstreamer-sys", ++ "libc", ++ "pkg-config", + ] + + [[package]] + name = "gstreamer-sys" + version = "0.8.1" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "1d18da01b97d0ab5896acd5151e4c155acefd0e6c03c3dd24dd133ba054053db" + dependencies = [ +- "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "pkg-config 0.3.18 (registry+https://github.com/rust-lang/crates.io-index)", ++ "glib-sys", ++ "gobject-sys", ++ "libc", ++ "pkg-config", + ] + + [[package]] + name = "hermit-abi" + version = "0.1.15" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "3deed196b6e7f9e44a2ae8d94225d80302d81208b1bb673fd21fe634645c85a9" + dependencies = [ +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc", + ] + + [[package]] + name = "hex" + version = "0.3.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "805026a5d0141ffc30abb3be3173848ad46a1b1664fe632428479619a3644d77" + + [[package]] + name = "hmac" + version = "0.7.1" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "5dcb5e64cda4c23119ab41ba960d1e170a774c8e4b9d9e6a9bc18aabf5e59695" + dependencies = [ +- "crypto-mac 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "digest 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "crypto-mac", ++ "digest", + ] + + [[package]] + name = "hostname" + version = "0.3.1" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867" + dependencies = [ +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "match_cfg 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc", ++ "match_cfg", ++ "winapi 0.3.9", + ] + + [[package]] + name = "httparse" + version = "1.3.4" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "cd179ae861f0c2e53da70d892f5f3029f9594be0c41dc5269cd371691b1dc2f9" + + [[package]] + name = "humantime" + version = "1.3.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f" + dependencies = [ +- "quick-error 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "quick-error", + ] + + [[package]] + name = "hyper" + version = "0.11.27" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "34a590ca09d341e94cddf8e5af0bbccde205d5fbc2fa3c09dd67c7f85cea59d7" + dependencies = [ +- "base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)", +- "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", +- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", +- "futures-cpupool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", +- "httparse 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)", +- "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", +- "language-tags 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", +- "mime 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)", +- "net2 0.2.34 (registry+https://github.com/rust-lang/crates.io-index)", +- "percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "relay 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "time 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-core 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-proto 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-service 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "unicase 2.6.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "want 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)", ++ "base64 0.9.3", ++ "bytes", ++ "futures", ++ "futures-cpupool", ++ "httparse", ++ "iovec", ++ "language-tags", ++ "log 0.4.11", ++ "mime", ++ "net2", ++ "percent-encoding", ++ "relay", ++ "time", ++ "tokio-core", ++ "tokio-io", ++ "tokio-proto", ++ "tokio-service", ++ "unicase", ++ "want", + ] + + [[package]] + name = "hyper-proxy" + version = "0.4.1" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "44f0925de2747e481e6e477dd212c25e8f745567f02f6182e04d27b97c3fbece" + dependencies = [ +- "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", +- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", +- "hyper 0.11.27 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-core 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", ++ "bytes", ++ "futures", ++ "hyper", ++ "tokio-core", ++ "tokio-io", + ] + + [[package]] + name = "idna" + version = "0.1.5" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e" + dependencies = [ +- "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", +- "unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", +- "unicode-normalization 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", ++ "matches", ++ "unicode-bidi", ++ "unicode-normalization", + ] + + [[package]] + name = "if-addrs" + version = "0.6.5" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "28538916eb3f3976311f5dfbe67b5362d0add1293d0a9cad17debf86f8e3aa48" + dependencies = [ +- "if-addrs-sys 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", ++ "if-addrs-sys", ++ "libc", ++ "winapi 0.3.9", + ] + + [[package]] + name = "if-addrs-sys" + version = "0.3.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "de74b9dd780476e837e5eb5ab7c88b49ed304126e412030a0adba99c8efe79ea" + dependencies = [ +- "cc 1.0.58 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", ++ "cc", ++ "libc", + ] + + [[package]] + name = "iovec" + version = "0.1.4" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e" + dependencies = [ +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc", + ] + + [[package]] + name = "itoa" + version = "0.4.6" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "dc6f3ad7b9d11a0c00842ff8de1b60ee58661048eb8049ed33c73594f359d7e6" + + [[package]] + name = "jack" + version = "0.5.7" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "1e15fc592e2e5a74a105ff507083c04db1aa20ba1b90d425362ba000e57422df" + dependencies = [ +- "bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "jack-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", ++ "bitflags 0.7.0", ++ "jack-sys", ++ "lazy_static", ++ "libc", + ] + + [[package]] + name = "jack-sys" + version = "0.2.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "c0d4ca501477fd3cd93a36df581046e5d6338ed826cf7e9b8d302603521e6cc3" + dependencies = [ +- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "libloading 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "lazy_static", ++ "libc", ++ "libloading 0.4.3", + ] + + [[package]] + name = "kernel32-sys" + version = "0.2.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" + dependencies = [ +- "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", +- "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "winapi 0.2.8", ++ "winapi-build", + ] + + [[package]] + name = "language-tags" + version = "0.2.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "a91d884b6667cd606bb5a69aa0c99ba811a115fc68915e7056ec08a46e93199a" + + [[package]] + name = "lazy_static" + version = "1.4.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + + [[package]] + name = "lazycell" + version = "1.2.1" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "b294d6fa9ee409a054354afc4352b0b9ef7ca222c69b8812cbea9e7d2bf3783f" + + [[package]] + name = "lewton" + version = "0.9.4" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "8d542c1a317036c45c2aa1cf10cc9d403ca91eb2d333ef1a4917e5cb10628bd0" + dependencies = [ +- "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)", +- "ogg 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "smallvec 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", ++ "byteorder", ++ "ogg", ++ "smallvec 0.6.13", + ] + + [[package]] + name = "libc" + version = "0.2.73" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "bd7d4bd64732af4bf3a67f367c27df8520ad7e230c5817b8ff485864d80242b9" + + [[package]] + name = "libloading" + version = "0.4.3" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "fd38073de8f7965d0c17d30546d4bb6da311ab428d1c7a3fc71dff7f9d4979b9" + dependencies = [ +- "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", ++ "kernel32-sys", ++ "lazy_static", ++ "winapi 0.2.8", + ] + + [[package]] + name = "libloading" + version = "0.5.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "f2b111a074963af1d37a139918ac6d49ad1d0d5e47f72fd55388619691a7d753" + dependencies = [ +- "cc 1.0.58 (registry+https://github.com/rust-lang/crates.io-index)", +- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", ++ "cc", ++ "winapi 0.3.9", + ] + + [[package]] + name = "libm" + version = "0.2.1" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "c7d73b3f436185384286bd8098d17ec07c9a7d2388a6599f824d8502b529702a" + + [[package]] + name = "libmdns" + version = "0.2.7" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "5d8582c174736c53633bc482ac709b24527c018356c3dc6d8e25a788b06b394e" + dependencies = [ +- "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)", +- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", +- "hostname 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "if-addrs 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", +- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", +- "multimap 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "net2 0.2.34 (registry+https://github.com/rust-lang/crates.io-index)", +- "quick-error 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)", +- "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-core 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)", ++ "byteorder", ++ "futures", ++ "hostname", ++ "if-addrs", ++ "log 0.4.11", ++ "multimap", ++ "net2", ++ "quick-error", ++ "rand 0.7.3", ++ "tokio-core", + ] + + [[package]] + name = "libpulse-sys" + version = "0.0.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "9bb11b06faf883500c1b625cf4453e6c7737e9df9c7ba01df3f84b22b083e4ac" + dependencies = [ +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc", + ] [[package]] name = "librespot" --version = "0.1.2" -+version = "0.1.3" +-version = "0.1.5" ++version = "0.1.6" dependencies = [ - "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", - "env_logger 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", -@@ -940,12 +940,12 @@ dependencies = [ - "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", - "hex 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "hyper 0.11.27 (registry+https://github.com/rust-lang/crates.io-index)", -- "librespot-audio 0.1.2", -- "librespot-connect 0.1.2", -- "librespot-core 0.1.2", -- "librespot-metadata 0.1.2", -- "librespot-playback 0.1.2", -- "librespot-protocol 0.1.2", -+ "librespot-audio 0.1.3", -+ "librespot-connect 0.1.3", -+ "librespot-core 0.1.3", -+ "librespot-metadata 0.1.3", -+ "librespot-playback 0.1.3", -+ "librespot-protocol 0.1.3", - "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", - "num-bigint 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", - "protobuf 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)", -@@ -961,7 +961,7 @@ dependencies = [ +- "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "env_logger 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", +- "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", +- "hex 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "hyper 0.11.27 (registry+https://github.com/rust-lang/crates.io-index)", +- "librespot-audio 0.1.5", +- "librespot-connect 0.1.5", +- "librespot-core 0.1.5", +- "librespot-metadata 0.1.5", +- "librespot-playback 0.1.5", +- "librespot-protocol 0.1.5", +- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", +- "num-bigint 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", +- "protobuf 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", +- "rpassword 3.0.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "sha-1 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-core 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-process 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-signal 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)", +- "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "base64 0.10.1", ++ "env_logger", ++ "futures", ++ "getopts", ++ "hex", ++ "hyper", ++ "librespot-audio", ++ "librespot-connect", ++ "librespot-core", ++ "librespot-metadata", ++ "librespot-playback", ++ "librespot-protocol", ++ "log 0.4.11", ++ "num-bigint", ++ "protobuf", ++ "rand 0.7.3", ++ "rpassword", ++ "sha-1", ++ "tokio-core", ++ "tokio-io", ++ "tokio-process", ++ "tokio-signal", ++ "url", + ] [[package]] name = "librespot-audio" --version = "0.1.2" -+version = "0.1.3" +-version = "0.1.5" ++version = "0.1.6" dependencies = [ - "aes-ctr 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "bit-set 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", -@@ -969,7 +969,7 @@ dependencies = [ - "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", - "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", - "lewton 0.9.4 (registry+https://github.com/rust-lang/crates.io-index)", -- "librespot-core 0.1.2", -+ "librespot-core 0.1.3", - "librespot-tremor 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", - "num-bigint 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", -@@ -980,7 +980,7 @@ dependencies = [ +- "aes-ctr 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "bit-set 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)", +- "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", +- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", +- "lewton 0.9.4 (registry+https://github.com/rust-lang/crates.io-index)", +- "librespot-core 0.1.5", +- "librespot-tremor 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", +- "num-bigint 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", +- "num-traits 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)", +- "tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "vorbis 0.0.14 (registry+https://github.com/rust-lang/crates.io-index)", ++ "aes-ctr", ++ "bit-set", ++ "byteorder", ++ "bytes", ++ "futures", ++ "lewton", ++ "librespot-core", ++ "librespot-tremor", ++ "log 0.4.11", ++ "num-bigint", ++ "num-traits", ++ "tempfile", ++ "vorbis", + ] [[package]] name = "librespot-connect" --version = "0.1.2" -+version = "0.1.3" +-version = "0.1.5" ++version = "0.1.6" dependencies = [ - "aes-ctr 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", -@@ -990,9 +990,9 @@ dependencies = [ - "hmac 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", - "hyper 0.11.27 (registry+https://github.com/rust-lang/crates.io-index)", - "libmdns 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", -- "librespot-core 0.1.2", -- "librespot-playback 0.1.2", -- "librespot-protocol 0.1.2", -+ "librespot-core 0.1.3", -+ "librespot-playback 0.1.3", -+ "librespot-protocol 0.1.3", - "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", - "num-bigint 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", - "protobuf 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)", -@@ -1007,7 +1007,7 @@ dependencies = [ +- "aes-ctr 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "block-modes 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", +- "dns-sd 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", +- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", +- "hmac 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "hyper 0.11.27 (registry+https://github.com/rust-lang/crates.io-index)", +- "libmdns 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)", +- "librespot-core 0.1.5", +- "librespot-playback 0.1.5", +- "librespot-protocol 0.1.5", +- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", +- "num-bigint 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", +- "protobuf 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", +- "serde 1.0.114 (registry+https://github.com/rust-lang/crates.io-index)", +- "serde_derive 1.0.114 (registry+https://github.com/rust-lang/crates.io-index)", +- "serde_json 1.0.56 (registry+https://github.com/rust-lang/crates.io-index)", +- "sha-1 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-core 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)", +- "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "aes-ctr", ++ "base64 0.10.1", ++ "block-modes", ++ "dns-sd", ++ "futures", ++ "hmac", ++ "hyper", ++ "libmdns", ++ "librespot-core", ++ "librespot-playback", ++ "librespot-protocol", ++ "log 0.4.11", ++ "num-bigint", ++ "protobuf", ++ "rand 0.7.3", ++ "serde", ++ "serde_derive", ++ "serde_json", ++ "sha-1", ++ "tokio-core", ++ "url", + ] [[package]] name = "librespot-core" --version = "0.1.2" -+version = "0.1.3" +-version = "0.1.5" ++version = "0.1.6" dependencies = [ - "aes 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", -@@ -1020,7 +1020,7 @@ dependencies = [ - "hyper 0.11.27 (registry+https://github.com/rust-lang/crates.io-index)", - "hyper-proxy 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", -- "librespot-protocol 0.1.2", -+ "librespot-protocol 0.1.3", - "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", - "num-bigint 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", - "num-integer 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)", -@@ -1043,12 +1043,12 @@ dependencies = [ +- "aes 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)", +- "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", +- "error-chain 0.12.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", +- "hmac 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "httparse 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)", +- "hyper 0.11.27 (registry+https://github.com/rust-lang/crates.io-index)", +- "hyper-proxy 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "librespot-protocol 0.1.5", +- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", +- "num-bigint 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", +- "num-integer 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)", +- "num-traits 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)", +- "pbkdf2 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "protobuf 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", +- "serde 1.0.114 (registry+https://github.com/rust-lang/crates.io-index)", +- "serde_derive 1.0.114 (registry+https://github.com/rust-lang/crates.io-index)", +- "serde_json 1.0.56 (registry+https://github.com/rust-lang/crates.io-index)", +- "sha-1 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "shannon 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-codec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-core 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", +- "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "uuid 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)", +- "vergen 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "aes", ++ "base64 0.10.1", ++ "byteorder", ++ "bytes", ++ "error-chain", ++ "futures", ++ "hmac", ++ "httparse", ++ "hyper", ++ "hyper-proxy", ++ "lazy_static", ++ "librespot-protocol", ++ "log 0.4.11", ++ "num-bigint", ++ "num-integer", ++ "num-traits", ++ "pbkdf2", ++ "protobuf", ++ "rand 0.7.3", ++ "serde", ++ "serde_derive", ++ "serde_json", ++ "sha-1", ++ "shannon", ++ "tokio-codec", ++ "tokio-core", ++ "tokio-io", ++ "url", ++ "uuid", ++ "vergen", + ] [[package]] name = "librespot-metadata" --version = "0.1.2" -+version = "0.1.3" +-version = "0.1.5" ++version = "0.1.6" dependencies = [ - "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)", - "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", -- "librespot-core 0.1.2", -- "librespot-protocol 0.1.2", -+ "librespot-core 0.1.3", -+ "librespot-protocol 0.1.3", - "linear-map 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", - "protobuf 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)", -@@ -1056,7 +1056,7 @@ dependencies = [ +- "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)", +- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", +- "librespot-core 0.1.5", +- "librespot-protocol 0.1.5", +- "linear-map 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", +- "protobuf 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "byteorder", ++ "futures", ++ "librespot-core", ++ "librespot-protocol", ++ "linear-map", ++ "log 0.4.11", ++ "protobuf", + ] [[package]] name = "librespot-playback" --version = "0.1.2" -+version = "0.1.3" +-version = "0.1.5" ++version = "0.1.6" dependencies = [ - "alsa 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)", -@@ -1068,9 +1068,9 @@ dependencies = [ - "jack 0.5.7 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", - "libpulse-sys 0.0.0 (registry+https://github.com/rust-lang/crates.io-index)", -- "librespot-audio 0.1.2", -- "librespot-core 0.1.2", -- "librespot-metadata 0.1.2", -+ "librespot-audio 0.1.3", -+ "librespot-core 0.1.3", -+ "librespot-metadata 0.1.3", - "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", - "portaudio-rs 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "rodio 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", -@@ -1081,7 +1081,7 @@ dependencies = [ +- "alsa 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)", +- "cpal 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", +- "glib 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)", +- "gstreamer 0.15.7 (registry+https://github.com/rust-lang/crates.io-index)", +- "gstreamer-app 0.15.6 (registry+https://github.com/rust-lang/crates.io-index)", +- "jack 0.5.7 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "libpulse-sys 0.0.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "librespot-audio 0.1.5", +- "librespot-core 0.1.5", +- "librespot-metadata 0.1.5", +- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", +- "portaudio-rs 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "rodio 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "sdl2 0.32.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "shell-words 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "zerocopy 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", ++ "alsa", ++ "byteorder", ++ "cpal", ++ "futures", ++ "glib", ++ "gstreamer", ++ "gstreamer-app", ++ "jack", ++ "libc", ++ "libpulse-sys", ++ "librespot-audio", ++ "librespot-core", ++ "librespot-metadata", ++ "log 0.4.11", ++ "portaudio-rs", ++ "rodio", ++ "sdl2", ++ "shell-words", ++ "zerocopy", + ] [[package]] name = "librespot-protocol" --version = "0.1.2" -+version = "0.1.3" +-version = "0.1.5" ++version = "0.1.6" dependencies = [ - "glob 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "protobuf 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "glob 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "protobuf 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "protobuf-codegen 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "protobuf-codegen-pure 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "glob", ++ "protobuf", ++ "protobuf-codegen", ++ "protobuf-codegen-pure", + ] + + [[package]] + name = "librespot-tremor" + version = "0.2.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "97f525bff915d478a76940a7b988e5ea34911ba7280c97bd3a7673f54d68b4fe" + dependencies = [ +- "cc 1.0.58 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "ogg-sys 0.0.9 (registry+https://github.com/rust-lang/crates.io-index)", +- "pkg-config 0.3.18 (registry+https://github.com/rust-lang/crates.io-index)", ++ "cc", ++ "libc", ++ "ogg-sys", ++ "pkg-config", + ] + + [[package]] + name = "linear-map" + version = "1.2.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "bfae20f6b19ad527b550c223fddc3077a547fc70cda94b9b566575423fd303ee" + + [[package]] + name = "lock_api" + version = "0.3.4" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "c4da24a77a3d8a6d4862d95f72e6fdb9c09a643ecdb402d754004a557f2bec75" + dependencies = [ +- "scopeguard 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "scopeguard", + ] + + [[package]] + name = "log" + version = "0.3.9" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "e19e8d5c34a3e0e2223db8e060f9e8264aeeb5c5fc64a4ee9965c062211c024b" + dependencies = [ +- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", ++ "log 0.4.11", + ] + + [[package]] + name = "log" + version = "0.4.11" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "4fabed175da42fed1fa0746b0ea71f412aa9d35e76e95e59b192c64b9dc2bf8b" + dependencies = [ +- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", ++ "cfg-if", + ] + + [[package]] + name = "match_cfg" + version = "0.1.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4" + + [[package]] + name = "matches" + version = "0.1.8" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08" + + [[package]] + name = "matrixmultiply" + version = "0.2.3" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "d4f7ec66360130972f34830bfad9ef05c6610a43938a467bcc9ab9369ab3478f" + dependencies = [ +- "rawpointer 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rawpointer", + ] + + [[package]] + name = "maybe-uninit" + version = "2.0.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00" + + [[package]] + name = "memchr" + version = "2.3.3" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400" + + [[package]] + name = "memoffset" + version = "0.5.5" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "c198b026e1bbf08a937e94c6c60f9ec4a2267f5b0d2eec9c1b21b061ce2be55f" + dependencies = [ +- "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "autocfg 1.0.0", + ] + + [[package]] + name = "mime" + version = "0.3.16" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d" + + [[package]] + name = "mio" + version = "0.6.22" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "fce347092656428bc8eaf6201042cb551b8d67855af7374542a92a0fbfcac430" + dependencies = [ +- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", +- "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", +- "fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", +- "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", +- "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", +- "miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "net2 0.2.34 (registry+https://github.com/rust-lang/crates.io-index)", +- "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", ++ "cfg-if", ++ "fuchsia-zircon", ++ "fuchsia-zircon-sys", ++ "iovec", ++ "kernel32-sys", ++ "libc", ++ "log 0.4.11", ++ "miow 0.2.1", ++ "net2", ++ "slab 0.4.2", ++ "winapi 0.2.8", + ] + + [[package]] + name = "mio-named-pipes" + version = "0.1.7" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "0840c1c50fd55e521b247f949c241c9997709f23bd7f023b9762cd561e935656" + dependencies = [ +- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", +- "mio 0.6.22 (registry+https://github.com/rust-lang/crates.io-index)", +- "miow 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", +- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", ++ "log 0.4.11", ++ "mio", ++ "miow 0.3.5", ++ "winapi 0.3.9", + ] + + [[package]] + name = "mio-uds" + version = "0.6.8" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "afcb699eb26d4332647cc848492bbc15eafb26f08d0304550d5aa1f612e066f0" + dependencies = [ +- "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "mio 0.6.22 (registry+https://github.com/rust-lang/crates.io-index)", ++ "iovec", ++ "libc", ++ "mio", + ] + + [[package]] + name = "miow" + version = "0.2.1" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919" + dependencies = [ +- "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "net2 0.2.34 (registry+https://github.com/rust-lang/crates.io-index)", +- "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", +- "ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "kernel32-sys", ++ "net2", ++ "winapi 0.2.8", ++ "ws2_32-sys", + ] + + [[package]] + name = "miow" + version = "0.3.5" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "07b88fb9795d4d36d62a012dfbf49a8f5cf12751f36d31a9dbe66d528e58979e" + dependencies = [ +- "socket2 0.3.12 (registry+https://github.com/rust-lang/crates.io-index)", +- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", ++ "socket2", ++ "winapi 0.3.9", + ] + + [[package]] + name = "muldiv" + version = "0.2.1" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "0419348c027fa7be448d2ae7ea0e4e04c2334c31dc4e74ab29f00a2a7ca69204" + + [[package]] + name = "multimap" + version = "0.8.1" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "d8883adfde9756c1d30b0f519c9b8c502a94b41ac62f696453c37c7fc0a958ce" + dependencies = [ +- "serde 1.0.114 (registry+https://github.com/rust-lang/crates.io-index)", ++ "serde", + ] + + [[package]] + name = "nalgebra" + version = "0.18.1" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "aaa9fddbc34c8c35dd2108515587b8ce0cab396f17977b8c738568e4edb521a2" + dependencies = [ +- "alga 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)", +- "approx 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "generic-array 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)", +- "matrixmultiply 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", +- "num-complex 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", +- "num-rational 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", +- "num-traits 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)", +- "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", +- "typenum 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "alga", ++ "approx", ++ "generic-array", ++ "matrixmultiply", ++ "num-complex", ++ "num-rational", ++ "num-traits", ++ "rand 0.6.5", ++ "typenum", + ] + + [[package]] + name = "net2" + version = "0.2.34" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "2ba7c918ac76704fb42afcbbb43891e72731f3dcca3bef2a19786297baf14af7" + dependencies = [ +- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", ++ "cfg-if", ++ "libc", ++ "winapi 0.3.9", + ] + + [[package]] + name = "nix" + version = "0.9.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "a2c5afeb0198ec7be8569d666644b574345aad2e95a53baf3a532da3e0f3fb32" + dependencies = [ +- "bitflags 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "bitflags 0.9.1", ++ "cfg-if", ++ "libc", ++ "void", + ] + + [[package]] + name = "nom" + version = "5.1.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "ffb4262d26ed83a1c0a33a38fe2bb15797329c85770da05e6b828ddb782627af" + dependencies = [ +- "memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)", +- "version_check 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "memchr", ++ "version_check", + ] + + [[package]] + name = "num" + version = "0.1.42" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "4703ad64153382334aa8db57c637364c322d3372e097840c72000dabdcf6156e" + dependencies = [ +- "num-integer 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)", +- "num-iter 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)", +- "num-traits 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)", ++ "num-integer", ++ "num-iter", ++ "num-traits", + ] + + [[package]] + name = "num-bigint" + version = "0.2.6" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304" + dependencies = [ +- "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "num-integer 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)", +- "num-traits 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)", ++ "autocfg 1.0.0", ++ "num-integer", ++ "num-traits", + ] + + [[package]] + name = "num-complex" + version = "0.2.4" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "b6b19411a9719e753aff12e5187b74d60d3dc449ec3f4dc21e3989c3f554bc95" + dependencies = [ +- "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "num-traits 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)", ++ "autocfg 1.0.0", ++ "num-traits", + ] + + [[package]] + name = "num-integer" + version = "0.1.43" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "8d59457e662d541ba17869cf51cf177c0b5f0cbf476c66bdc90bf1edac4f875b" + dependencies = [ +- "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "num-traits 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)", ++ "autocfg 1.0.0", ++ "num-traits", + ] + + [[package]] + name = "num-iter" + version = "0.1.41" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "7a6e6b7c748f995c4c29c5f5ae0248536e04a5739927c74ec0fa564805094b9f" + dependencies = [ +- "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "num-integer 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)", +- "num-traits 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)", ++ "autocfg 1.0.0", ++ "num-integer", ++ "num-traits", + ] + + [[package]] + name = "num-rational" + version = "0.2.4" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "5c000134b5dbf44adc5cb772486d335293351644b801551abe8f75c84cfa4aef" + dependencies = [ +- "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "num-integer 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)", +- "num-traits 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)", ++ "autocfg 1.0.0", ++ "num-integer", ++ "num-traits", + ] + + [[package]] + name = "num-traits" + version = "0.2.12" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "ac267bcc07f48ee5f8935ab0d24f316fb722d7a1292e2913f0cc196b29ffd611" + dependencies = [ +- "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "libm 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "autocfg 1.0.0", ++ "libm", + ] + + [[package]] + name = "num_cpus" + version = "1.13.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3" + dependencies = [ +- "hermit-abi 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", ++ "hermit-abi", ++ "libc", + ] + + [[package]] + name = "ogg" + version = "0.7.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "d79f1db9148be9d0e174bb3ac890f6030fcb1ed947267c5a91ee4c91b5a91e15" + dependencies = [ +- "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)", ++ "byteorder", + ] + + [[package]] + name = "ogg-sys" + version = "0.0.9" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "a95b8c172e17df1a41bf8d666301d3b2c4efeb90d9d0415e2a4dc0668b35fdb2" + dependencies = [ +- "gcc 0.3.55 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "pkg-config 0.3.18 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gcc", ++ "libc", ++ "pkg-config", + ] + + [[package]] + name = "once_cell" + version = "1.4.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "0b631f7e854af39a1739f401cf34a8a013dfe09eac4fa4dba91e9768bd28168d" + + [[package]] + name = "opaque-debug" + version = "0.2.3" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c" + + [[package]] + name = "parking_lot" + version = "0.9.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "f842b1982eb6c2fe34036a4fbfb06dd185a3f5c8edfaacdf7d1ea10b07de6252" + dependencies = [ +- "lock_api 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", +- "parking_lot_core 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "lock_api", ++ "parking_lot_core", ++ "rustc_version", + ] + + [[package]] + name = "parking_lot_core" + version = "0.6.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "b876b1b9e7ac6e1a74a6da34d25c42e17e8862aa409cbbbdcfc8d86c6f3bc62b" + dependencies = [ +- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", +- "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "redox_syscall 0.1.57 (registry+https://github.com/rust-lang/crates.io-index)", +- "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", +- "smallvec 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", +- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", ++ "cfg-if", ++ "cloudabi", ++ "libc", ++ "redox_syscall", ++ "rustc_version", ++ "smallvec 0.6.13", ++ "winapi 0.3.9", + ] + + [[package]] + name = "paste" + version = "0.1.18" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "45ca20c77d80be666aef2b45486da86238fabe33e38306bd3118fe4af33fa880" + dependencies = [ +- "paste-impl 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)", +- "proc-macro-hack 0.5.16 (registry+https://github.com/rust-lang/crates.io-index)", ++ "paste-impl", ++ "proc-macro-hack", + ] + + [[package]] + name = "paste-impl" + version = "0.1.18" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "d95a7db200b97ef370c8e6de0088252f7e0dfff7d047a28528e47456c0fc98b6" + dependencies = [ +- "proc-macro-hack 0.5.16 (registry+https://github.com/rust-lang/crates.io-index)", ++ "proc-macro-hack", + ] + + [[package]] + name = "pbkdf2" + version = "0.3.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "006c038a43a45995a9670da19e67600114740e8511d4333bf97a56e66a7542d9" + dependencies = [ +- "base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)", +- "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)", +- "crypto-mac 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "hmac 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "rand 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)", +- "sha2 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "subtle 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "base64 0.9.3", ++ "byteorder", ++ "crypto-mac", ++ "hmac", ++ "rand 0.5.6", ++ "sha2", ++ "subtle", + ] + + [[package]] + name = "peeking_take_while" + version = "0.1.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" + + [[package]] + name = "percent-encoding" + version = "1.0.1" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831" + + [[package]] + name = "pin-project" + version = "0.4.22" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "12e3a6cdbfe94a5e4572812a0201f8c0ed98c1c452c7b8563ce2276988ef9c17" + dependencies = [ +- "pin-project-internal 0.4.22 (registry+https://github.com/rust-lang/crates.io-index)", ++ "pin-project-internal", + ] + + [[package]] + name = "pin-project-internal" + version = "0.4.22" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "6a0ffd45cf79d88737d7cc85bfd5d2894bee1139b356e616fe85dc389c61aaf7" + dependencies = [ +- "proc-macro2 1.0.19 (registry+https://github.com/rust-lang/crates.io-index)", +- "quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)", +- "syn 1.0.35 (registry+https://github.com/rust-lang/crates.io-index)", ++ "proc-macro2 1.0.19", ++ "quote 1.0.7", ++ "syn 1.0.35", + ] + + [[package]] + name = "pin-utils" + version = "0.1.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + + [[package]] + name = "pkg-config" + version = "0.3.18" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "d36492546b6af1463394d46f0c834346f31548646f6ba10849802c9c9a27ac33" + + [[package]] + name = "portaudio-rs" + version = "0.3.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "cdb6b5eff96ccc9bf44d34c379ab03ae944426d83d1694345bdf8159d561d562" + dependencies = [ +- "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "portaudio-sys 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "bitflags 1.2.1", ++ "libc", ++ "portaudio-sys", + ] + + [[package]] + name = "portaudio-sys" + version = "0.1.1" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "5194a4fa953b4ffd851c320ef6f0484cd7278cb7169ea9d6c433e49b23f7b7f5" + dependencies = [ +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "pkg-config 0.3.18 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc", ++ "pkg-config", + ] + + [[package]] + name = "ppv-lite86" + version = "0.2.8" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "237a5ed80e274dbc66f86bd59c1e25edc039660be53194b5fe0a482e0f2612ea" + + [[package]] + name = "proc-macro-hack" + version = "0.5.16" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "7e0456befd48169b9f13ef0f0ad46d492cf9d2dbb918bcf38e01eed4ce3ec5e4" + + [[package]] + name = "proc-macro-nested" + version = "0.1.6" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "eba180dafb9038b050a4c280019bbedf9f2467b61e5d892dcad585bb57aadc5a" + + [[package]] + name = "proc-macro2" + version = "0.4.30" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759" + dependencies = [ +- "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "unicode-xid 0.1.0", + ] + + [[package]] + name = "proc-macro2" + version = "1.0.19" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "04f5f085b5d71e2188cb8271e5da0161ad52c3f227a661a3c135fdf28e258b12" + dependencies = [ +- "unicode-xid 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "unicode-xid 0.2.1", + ] + + [[package]] + name = "protobuf" + version = "2.14.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "8e86d370532557ae7573551a1ec8235a0f8d6cb276c7c9e6aa490b511c447485" + + [[package]] + name = "protobuf-codegen" + version = "2.14.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "de113bba758ccf2c1ef816b127c958001b7831136c9bc3f8e9ec695ac4e82b0c" + dependencies = [ +- "protobuf 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "protobuf", + ] + + [[package]] + name = "protobuf-codegen-pure" + version = "2.14.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "2d1a4febc73bf0cada1d77c459a0c8e5973179f1cfd5b0f1ab789d45b17b6440" + dependencies = [ +- "protobuf 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "protobuf-codegen 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "protobuf", ++ "protobuf-codegen", + ] + + [[package]] + name = "quick-error" + version = "1.2.3" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" + + [[package]] + name = "quote" + version = "0.6.13" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1" + dependencies = [ +- "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", ++ "proc-macro2 0.4.30", + ] + + [[package]] + name = "quote" + version = "1.0.7" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "aa563d17ecb180e500da1cfd2b028310ac758de548efdd203e18f283af693f37" + dependencies = [ +- "proc-macro2 1.0.19 (registry+https://github.com/rust-lang/crates.io-index)", ++ "proc-macro2 1.0.19", + ] + + [[package]] + name = "rand" + version = "0.3.23" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "64ac302d8f83c0c1974bf758f6b041c6c8ada916fbb44a609158ca8b064cc76c" + dependencies = [ +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "rand 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc", ++ "rand 0.4.6", + ] + + [[package]] + name = "rand" + version = "0.4.6" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293" + dependencies = [ +- "fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", ++ "fuchsia-cprng", ++ "libc", ++ "rand_core 0.3.1", ++ "rdrand", ++ "winapi 0.3.9", + ] + + [[package]] + name = "rand" + version = "0.5.6" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "c618c47cd3ebd209790115ab837de41425723956ad3ce2e6a7f09890947cacb9" + dependencies = [ +- "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", +- "fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", ++ "cloudabi", ++ "fuchsia-cprng", ++ "libc", ++ "rand_core 0.3.1", ++ "winapi 0.3.9", + ] + + [[package]] + name = "rand" + version = "0.6.5" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca" + dependencies = [ +- "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "rand_jitter 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", +- "rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", +- "rand_pcg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", ++ "autocfg 0.1.7", ++ "libc", ++ "rand_chacha 0.1.1", ++ "rand_core 0.4.2", ++ "rand_hc 0.1.0", ++ "rand_isaac", ++ "rand_jitter", ++ "rand_os", ++ "rand_pcg", ++ "rand_xorshift", ++ "winapi 0.3.9", + ] + + [[package]] + name = "rand" + version = "0.7.3" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" + dependencies = [ +- "getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "rand_chacha 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "getrandom", ++ "libc", ++ "rand_chacha 0.2.2", ++ "rand_core 0.5.1", ++ "rand_hc 0.2.0", + ] + + [[package]] + name = "rand_chacha" + version = "0.1.1" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef" + dependencies = [ +- "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", +- "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "autocfg 0.1.7", ++ "rand_core 0.3.1", + ] + + [[package]] + name = "rand_chacha" + version = "0.2.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" + dependencies = [ +- "ppv-lite86 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", +- "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "ppv-lite86", ++ "rand_core 0.5.1", + ] + + [[package]] + name = "rand_core" + version = "0.3.1" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b" + dependencies = [ +- "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rand_core 0.4.2", + ] + + [[package]] + name = "rand_core" + version = "0.4.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc" + + [[package]] + name = "rand_core" + version = "0.5.1" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" + dependencies = [ +- "getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", ++ "getrandom", + ] + + [[package]] + name = "rand_hc" + version = "0.1.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4" + dependencies = [ +- "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rand_core 0.3.1", + ] + + [[package]] + name = "rand_hc" + version = "0.2.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" + dependencies = [ +- "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rand_core 0.5.1", + ] + + [[package]] + name = "rand_isaac" + version = "0.1.1" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08" + dependencies = [ +- "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rand_core 0.3.1", + ] + + [[package]] + name = "rand_jitter" + version = "0.1.4" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "1166d5c91dc97b88d1decc3285bb0a99ed84b05cfd0bc2341bdf2d43fc41e39b" + dependencies = [ +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc", ++ "rand_core 0.4.2", ++ "winapi 0.3.9", + ] + + [[package]] + name = "rand_os" + version = "0.1.3" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071" + dependencies = [ +- "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", +- "fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", ++ "cloudabi", ++ "fuchsia-cprng", ++ "libc", ++ "rand_core 0.4.2", ++ "rdrand", ++ "winapi 0.3.9", + ] + + [[package]] + name = "rand_pcg" + version = "0.1.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44" + dependencies = [ +- "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", +- "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "autocfg 0.1.7", ++ "rand_core 0.4.2", + ] + + [[package]] + name = "rand_xorshift" + version = "0.1.1" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c" + dependencies = [ +- "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rand_core 0.3.1", + ] + + [[package]] + name = "rawpointer" + version = "0.2.1" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" + + [[package]] + name = "rdrand" + version = "0.4.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2" + dependencies = [ +- "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rand_core 0.3.1", + ] + + [[package]] + name = "redox_syscall" + version = "0.1.57" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce" + + [[package]] + name = "regex" + version = "1.3.9" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "9c3780fcf44b193bc4d09f36d2a3c87b251da4a046c87795a0d35f4f927ad8e6" + dependencies = [ +- "regex-syntax 0.6.18 (registry+https://github.com/rust-lang/crates.io-index)", ++ "regex-syntax", + ] + + [[package]] + name = "regex-syntax" + version = "0.6.18" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "26412eb97c6b088a6997e05f69403a802a92d520de2f8e63c2b65f9e0f47c4e8" + + [[package]] + name = "relay" + version = "0.1.1" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "1576e382688d7e9deecea24417e350d3062d97e32e45d70b1cde65994ff1489a" + dependencies = [ +- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", ++ "futures", + ] + + [[package]] + name = "remove_dir_all" + version = "0.5.3" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" + dependencies = [ +- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", ++ "winapi 0.3.9", + ] + + [[package]] + name = "rodio" + version = "0.9.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "5d0f961b254e66d147a7b550c78b01308934c97d807a34b417fd0f5a0a0f3a2d" + dependencies = [ +- "cpal 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "nalgebra 0.18.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "cpal", ++ "lazy_static", ++ "nalgebra", + ] + + [[package]] + name = "rpassword" + version = "3.0.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "c34fa7bcae7fca3c8471e8417088bbc3ad9af8066b0ecf4f3c0d98a0d772716e" + dependencies = [ +- "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", ++ "kernel32-sys", ++ "libc", ++ "winapi 0.2.8", + ] + + [[package]] + name = "rustc-hash" + version = "1.1.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" + + [[package]] + name = "rustc_version" + version = "0.2.3" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" + dependencies = [ +- "semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "semver", + ] + + [[package]] + name = "ryu" + version = "1.0.5" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e" + + [[package]] + name = "safemem" + version = "0.3.3" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072" + + [[package]] + name = "scoped-tls" + version = "0.1.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "332ffa32bf586782a3efaeb58f127980944bbc8c4d6913a86107ac2a5ab24b28" + + [[package]] + name = "scopeguard" + version = "1.1.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" + + [[package]] + name = "sdl2" + version = "0.32.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "d051a07231e303f5f719da78cb6f7394f6d5b54f733aef5b0b447804a83edd7b" + dependencies = [ +- "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "num 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", +- "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", +- "sdl2-sys 0.32.6 (registry+https://github.com/rust-lang/crates.io-index)", ++ "bitflags 1.2.1", ++ "lazy_static", ++ "libc", ++ "num", ++ "rand 0.6.5", ++ "sdl2-sys", + ] + + [[package]] + name = "sdl2-sys" + version = "0.32.6" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "34e71125077d297d57e4c1acfe8981b5bdfbf5a20e7b589abfdcb33bf1127f86" + dependencies = [ +- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", ++ "cfg-if", ++ "libc", + ] + + [[package]] + name = "semver" + version = "0.9.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" + dependencies = [ +- "semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "semver-parser", + ] + + [[package]] + name = "semver-parser" + version = "0.7.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" + + [[package]] + name = "serde" + version = "1.0.114" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "5317f7588f0a5078ee60ef675ef96735a1442132dc645eb1d12c018620ed8cd3" + + [[package]] + name = "serde_derive" + version = "1.0.114" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "2a0be94b04690fbaed37cddffc5c134bf537c8e3329d53e982fe04c374978f8e" + dependencies = [ +- "proc-macro2 1.0.19 (registry+https://github.com/rust-lang/crates.io-index)", +- "quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)", +- "syn 1.0.35 (registry+https://github.com/rust-lang/crates.io-index)", ++ "proc-macro2 1.0.19", ++ "quote 1.0.7", ++ "syn 1.0.35", + ] + + [[package]] + name = "serde_json" + version = "1.0.56" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "3433e879a558dde8b5e8feb2a04899cf34fdde1fafb894687e52105fc1162ac3" + dependencies = [ +- "itoa 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", +- "ryu 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", +- "serde 1.0.114 (registry+https://github.com/rust-lang/crates.io-index)", ++ "itoa", ++ "ryu", ++ "serde", + ] + + [[package]] + name = "sha-1" + version = "0.8.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "f7d94d0bede923b3cea61f3f1ff57ff8cdfd77b400fb8f9998949e0cf04163df" + dependencies = [ +- "block-buffer 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", +- "digest 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "fake-simd 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "opaque-debug 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "block-buffer", ++ "digest", ++ "fake-simd", ++ "opaque-debug", + ] + + [[package]] + name = "sha2" + version = "0.8.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "a256f46ea78a0c0d9ff00077504903ac881a1dafdc20da66545699e7776b3e69" + dependencies = [ +- "block-buffer 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", +- "digest 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "fake-simd 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "opaque-debug 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "block-buffer", ++ "digest", ++ "fake-simd", ++ "opaque-debug", + ] + + [[package]] + name = "shannon" + version = "0.2.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "7ea5b41c9427b56caa7b808cb548a04fb50bb5b9e98590b53f28064ff4174561" + dependencies = [ +- "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)", ++ "byteorder", + ] + + [[package]] + name = "shell-words" + version = "0.1.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "39acde55a154c4cd3ae048ac78cc21c25f3a0145e44111b523279113dce0d94a" + + [[package]] + name = "shlex" + version = "0.1.1" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "7fdf1b9db47230893d76faad238fd6097fd6d6a9245cd7a4d90dbd639536bbd2" + + [[package]] + name = "signal-hook-registry" + version = "1.2.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "94f478ede9f64724c5d173d7bb56099ec3e2d9fc2774aac65d34b8b890405f41" + dependencies = [ +- "arc-swap 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", ++ "arc-swap", ++ "libc", + ] + + [[package]] + name = "slab" + version = "0.3.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "17b4fcaed89ab08ef143da37bc52adbcc04d4a69014f4c1208d6b51f0c47bc23" + + [[package]] + name = "slab" + version = "0.4.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8" + + [[package]] + name = "smallvec" + version = "0.2.1" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "4c8cbcd6df1e117c2210e13ab5109635ad68a929fcbb8964dc965b76cb5ee013" + + [[package]] + name = "smallvec" + version = "0.6.13" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "f7b0758c52e15a8b5e3691eae6cc559f08eee9406e548a4477ba4e67770a82b6" + dependencies = [ +- "maybe-uninit 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "maybe-uninit", + ] + + [[package]] + name = "socket2" + version = "0.3.12" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "03088793f677dce356f3ccc2edb1b314ad191ab702a5de3faf49304f7e104918" + dependencies = [ +- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "redox_syscall 0.1.57 (registry+https://github.com/rust-lang/crates.io-index)", +- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", ++ "cfg-if", ++ "libc", ++ "redox_syscall", ++ "winapi 0.3.9", + ] + + [[package]] + name = "stdweb" + version = "0.1.3" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "ef5430c8e36b713e13b48a9f709cc21e046723fe44ce34587b73a830203b533e" + + [[package]] + name = "stream-cipher" + version = "0.3.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "8131256a5896cabcf5eb04f4d6dacbe1aefda854b0d9896e09cb58829ec5638c" + dependencies = [ +- "generic-array 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "generic-array", + ] + + [[package]] + name = "subtle" + version = "1.0.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "2d67a5a62ba6e01cb2192ff309324cb4875d0c451d55fe2319433abe7a05a8ee" + + [[package]] + name = "syn" + version = "0.15.44" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5" + dependencies = [ +- "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", +- "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", +- "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "proc-macro2 0.4.30", ++ "quote 0.6.13", ++ "unicode-xid 0.1.0", + ] + + [[package]] + name = "syn" + version = "1.0.35" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "fb7f4c519df8c117855e19dd8cc851e89eb746fe7a73f0157e0d95fdec5369b0" + dependencies = [ +- "proc-macro2 1.0.19 (registry+https://github.com/rust-lang/crates.io-index)", +- "quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)", +- "unicode-xid 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "proc-macro2 1.0.19", ++ "quote 1.0.7", ++ "unicode-xid 0.2.1", + ] + + [[package]] + name = "synstructure" + version = "0.10.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "02353edf96d6e4dc81aea2d8490a7e9db177bf8acb0e951c24940bf866cb313f" + dependencies = [ +- "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", +- "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", +- "syn 0.15.44 (registry+https://github.com/rust-lang/crates.io-index)", +- "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "proc-macro2 0.4.30", ++ "quote 0.6.13", ++ "syn 0.15.44", ++ "unicode-xid 0.1.0", + ] + + [[package]] + name = "take" + version = "0.1.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "b157868d8ac1f56b64604539990685fa7611d8fa9e5476cf0c02cf34d32917c5" + + [[package]] + name = "tempfile" + version = "3.1.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9" + dependencies = [ +- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", +- "redox_syscall 0.1.57 (registry+https://github.com/rust-lang/crates.io-index)", +- "remove_dir_all 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)", +- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", ++ "cfg-if", ++ "libc", ++ "rand 0.7.3", ++ "redox_syscall", ++ "remove_dir_all", ++ "winapi 0.3.9", + ] + + [[package]] + name = "termcolor" + version = "1.1.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "bb6bfa289a4d7c5766392812c0a1f4c1ba45afa1ad47803c11e1f407d846d75f" + dependencies = [ +- "winapi-util 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", ++ "winapi-util", + ] + + [[package]] + name = "time" + version = "0.1.43" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "ca8a50ef2360fbd1eeb0ecd46795a87a19024eb4b53c5dc916ca1fd95fe62438" + dependencies = [ +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc", ++ "winapi 0.3.9", + ] + + [[package]] + name = "tinyvec" + version = "0.3.3" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "53953d2d3a5ad81d9f844a32f14ebb121f50b650cd59d0ee2a07cf13c617efed" + + [[package]] + name = "tokio" + version = "0.1.22" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "5a09c0b5bb588872ab2f09afa13ee6e9dac11e10a0ec9e8e3ba39a5a5d530af6" + dependencies = [ +- "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", +- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", +- "mio 0.6.22 (registry+https://github.com/rust-lang/crates.io-index)", +- "num_cpus 1.13.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-codec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-current-thread 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-executor 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-fs 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-reactor 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-sync 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-tcp 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-threadpool 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-timer 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-udp 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-uds 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)", ++ "bytes", ++ "futures", ++ "mio", ++ "num_cpus", ++ "tokio-codec", ++ "tokio-current-thread", ++ "tokio-executor", ++ "tokio-fs", ++ "tokio-io", ++ "tokio-reactor", ++ "tokio-sync", ++ "tokio-tcp", ++ "tokio-threadpool", ++ "tokio-timer", ++ "tokio-udp", ++ "tokio-uds", + ] + + [[package]] + name = "tokio-codec" + version = "0.1.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "25b2998660ba0e70d18684de5d06b70b70a3a747469af9dea7618cc59e75976b" + dependencies = [ +- "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", +- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", ++ "bytes", ++ "futures", ++ "tokio-io", + ] + + [[package]] + name = "tokio-core" + version = "0.1.17" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "aeeffbbb94209023feaef3c196a41cbcdafa06b4a6f893f68779bb5e53796f71" + dependencies = [ +- "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", +- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", +- "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", +- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", +- "mio 0.6.22 (registry+https://github.com/rust-lang/crates.io-index)", +- "scoped-tls 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio 0.1.22 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-executor 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-reactor 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-timer 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)", ++ "bytes", ++ "futures", ++ "iovec", ++ "log 0.4.11", ++ "mio", ++ "scoped-tls", ++ "tokio", ++ "tokio-executor", ++ "tokio-io", ++ "tokio-reactor", ++ "tokio-timer", + ] + + [[package]] + name = "tokio-current-thread" + version = "0.1.7" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "b1de0e32a83f131e002238d7ccde18211c0a5397f60cbfffcb112868c2e0e20e" + dependencies = [ +- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-executor 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", ++ "futures", ++ "tokio-executor", + ] + + [[package]] + name = "tokio-executor" + version = "0.1.10" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "fb2d1b8f4548dbf5e1f7818512e9c406860678f29c300cdf0ebac72d1a3a1671" + dependencies = [ +- "crossbeam-utils 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", ++ "crossbeam-utils 0.7.2", ++ "futures", + ] + + [[package]] + name = "tokio-fs" + version = "0.1.7" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "297a1206e0ca6302a0eed35b700d292b275256f596e2f3fea7729d5e629b6ff4" + dependencies = [ +- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-threadpool 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)", ++ "futures", ++ "tokio-io", ++ "tokio-threadpool", + ] + + [[package]] + name = "tokio-io" + version = "0.1.13" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "57fc868aae093479e3131e3d165c93b1c7474109d13c90ec0dda2a1bbfff0674" + dependencies = [ +- "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", +- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", +- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", ++ "bytes", ++ "futures", ++ "log 0.4.11", + ] + + [[package]] + name = "tokio-process" + version = "0.2.5" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "382d90f43fa31caebe5d3bc6cfd854963394fff3b8cb59d5146607aaae7e7e43" + dependencies = [ +- "crossbeam-queue 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", +- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", +- "mio 0.6.22 (registry+https://github.com/rust-lang/crates.io-index)", +- "mio-named-pipes 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-reactor 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-signal 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)", +- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", ++ "crossbeam-queue 0.1.2", ++ "futures", ++ "lazy_static", ++ "libc", ++ "log 0.4.11", ++ "mio", ++ "mio-named-pipes", ++ "tokio-io", ++ "tokio-reactor", ++ "tokio-signal", ++ "winapi 0.3.9", + ] + + [[package]] + name = "tokio-proto" + version = "0.1.1" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "8fbb47ae81353c63c487030659494b295f6cb6576242f907f203473b191b0389" + dependencies = [ +- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", +- "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", +- "net2 0.2.34 (registry+https://github.com/rust-lang/crates.io-index)", +- "rand 0.3.23 (registry+https://github.com/rust-lang/crates.io-index)", +- "slab 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "smallvec 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "take 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-core 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-service 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "futures", ++ "log 0.3.9", ++ "net2", ++ "rand 0.3.23", ++ "slab 0.3.0", ++ "smallvec 0.2.1", ++ "take", ++ "tokio-core", ++ "tokio-io", ++ "tokio-service", + ] + + [[package]] + name = "tokio-reactor" + version = "0.1.12" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "09bc590ec4ba8ba87652da2068d150dcada2cfa2e07faae270a5e0409aa51351" + dependencies = [ +- "crossbeam-utils 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", +- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", +- "mio 0.6.22 (registry+https://github.com/rust-lang/crates.io-index)", +- "num_cpus 1.13.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "parking_lot 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-executor 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-sync 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", ++ "crossbeam-utils 0.7.2", ++ "futures", ++ "lazy_static", ++ "log 0.4.11", ++ "mio", ++ "num_cpus", ++ "parking_lot", ++ "slab 0.4.2", ++ "tokio-executor", ++ "tokio-io", ++ "tokio-sync", + ] + + [[package]] + name = "tokio-service" + version = "0.1.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "24da22d077e0f15f55162bdbdc661228c1581892f52074fb242678d015b45162" + dependencies = [ +- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", ++ "futures", + ] + + [[package]] + name = "tokio-signal" + version = "0.2.9" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "d0c34c6e548f101053321cba3da7cbb87a610b85555884c41b07da2eb91aff12" + dependencies = [ +- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "mio 0.6.22 (registry+https://github.com/rust-lang/crates.io-index)", +- "mio-uds 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", +- "signal-hook-registry 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-executor 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-reactor 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", +- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", ++ "futures", ++ "libc", ++ "mio", ++ "mio-uds", ++ "signal-hook-registry", ++ "tokio-executor", ++ "tokio-io", ++ "tokio-reactor", ++ "winapi 0.3.9", + ] + + [[package]] + name = "tokio-sync" + version = "0.1.8" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "edfe50152bc8164fcc456dab7891fa9bf8beaf01c5ee7e1dd43a397c3cf87dee" + dependencies = [ +- "fnv 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)", +- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", ++ "fnv", ++ "futures", + ] + + [[package]] + name = "tokio-tcp" + version = "0.1.4" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "98df18ed66e3b72e742f185882a9e201892407957e45fbff8da17ae7a7c51f72" + dependencies = [ +- "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", +- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", +- "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", +- "mio 0.6.22 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-reactor 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", ++ "bytes", ++ "futures", ++ "iovec", ++ "mio", ++ "tokio-io", ++ "tokio-reactor", + ] + + [[package]] + name = "tokio-threadpool" + version = "0.1.18" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "df720b6581784c118f0eb4310796b12b1d242a7eb95f716a8367855325c25f89" + dependencies = [ +- "crossbeam-deque 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", +- "crossbeam-queue 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", +- "crossbeam-utils 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", +- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", +- "num_cpus 1.13.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-executor 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", ++ "crossbeam-deque", ++ "crossbeam-queue 0.2.3", ++ "crossbeam-utils 0.7.2", ++ "futures", ++ "lazy_static", ++ "log 0.4.11", ++ "num_cpus", ++ "slab 0.4.2", ++ "tokio-executor", + ] + + [[package]] + name = "tokio-timer" + version = "0.2.13" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "93044f2d313c95ff1cb7809ce9a7a05735b012288a888b62d4434fd58c94f296" + dependencies = [ +- "crossbeam-utils 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", +- "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-executor 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", ++ "crossbeam-utils 0.7.2", ++ "futures", ++ "slab 0.4.2", ++ "tokio-executor", + ] + + [[package]] + name = "tokio-udp" + version = "0.1.6" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "e2a0b10e610b39c38b031a2fcab08e4b82f16ece36504988dcbd81dbba650d82" + dependencies = [ +- "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", +- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", +- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", +- "mio 0.6.22 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-codec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-reactor 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", ++ "bytes", ++ "futures", ++ "log 0.4.11", ++ "mio", ++ "tokio-codec", ++ "tokio-io", ++ "tokio-reactor", + ] + + [[package]] + name = "tokio-uds" + version = "0.2.7" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "ab57a4ac4111c8c9dbcf70779f6fc8bc35ae4b2454809febac840ad19bd7e4e0" + dependencies = [ +- "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", +- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", +- "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", +- "mio 0.6.22 (registry+https://github.com/rust-lang/crates.io-index)", +- "mio-uds 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-codec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-reactor 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", ++ "bytes", ++ "futures", ++ "iovec", ++ "libc", ++ "log 0.4.11", ++ "mio", ++ "mio-uds", ++ "tokio-codec", ++ "tokio-io", ++ "tokio-reactor", + ] + + [[package]] + name = "try-lock" + version = "0.1.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "ee2aa4715743892880f70885373966c83d73ef1b0838a664ef0c76fffd35e7c2" + + [[package]] + name = "typenum" + version = "1.12.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "373c8a200f9e67a0c95e62a4f52fbf80c23b4381c05a17845531982fa99e6b33" + + [[package]] + name = "unicase" + version = "2.6.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6" + dependencies = [ +- "version_check 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "version_check", + ] + + [[package]] + name = "unicode-bidi" + version = "0.3.4" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5" + dependencies = [ +- "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", ++ "matches", + ] + + [[package]] + name = "unicode-normalization" + version = "0.1.13" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "6fb19cf769fa8c6a80a162df694621ebeb4dafb606470b2b2fce0be40a98a977" + dependencies = [ +- "tinyvec 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "tinyvec", + ] + + [[package]] + name = "unicode-width" + version = "0.1.8" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3" + + [[package]] + name = "unicode-xid" + version = "0.1.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" + + [[package]] + name = "unicode-xid" + version = "0.2.1" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564" + + [[package]] + name = "url" + version = "1.7.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "dd4e7c0d531266369519a4aa4f399d748bd37043b00bde1e4ff1f60a120b355a" + dependencies = [ +- "idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", +- "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", +- "percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "idna", ++ "matches", ++ "percent-encoding", + ] + + [[package]] + name = "uuid" + version = "0.7.4" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "90dbc611eb48397705a6b0f6e917da23ae517e4d127123d2cf7674206627d32a" + dependencies = [ +- "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rand 0.6.5", + ] + + [[package]] + name = "vergen" + version = "3.1.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "4ce50d8996df1f85af15f2cd8d33daae6e479575123ef4314a51a70a230739cb" + dependencies = [ +- "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "chrono 0.4.13 (registry+https://github.com/rust-lang/crates.io-index)", ++ "bitflags 1.2.1", ++ "chrono", + ] + + [[package]] + name = "version_check" + version = "0.9.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "b5a972e5669d67ba988ce3dc826706fb0a8b01471c088cb0b6110b805cc36aed" + + [[package]] + name = "void" + version = "1.0.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" + + [[package]] + name = "vorbis" + version = "0.0.14" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "5e8a194457075360557b82dac78f7ca2d65bbb6679bccfabae5f7c8c706cc776" + dependencies = [ +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "ogg-sys 0.0.9 (registry+https://github.com/rust-lang/crates.io-index)", +- "vorbis-sys 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "vorbisfile-sys 0.0.8 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc", ++ "ogg-sys", ++ "vorbis-sys", ++ "vorbisfile-sys", + ] + + [[package]] + name = "vorbis-sys" + version = "0.1.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "3a0a8d7034313748da1d84b0adfa501f83f9ec83250f37fbacfa92a3580327c4" + dependencies = [ +- "gcc 0.3.55 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "ogg-sys 0.0.9 (registry+https://github.com/rust-lang/crates.io-index)", +- "pkg-config 0.3.18 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gcc", ++ "libc", ++ "ogg-sys", ++ "pkg-config", + ] + + [[package]] + name = "vorbisfile-sys" + version = "0.0.8" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "4f4306d7e1ac4699b55e20de9483750b90c250913188efd7484db6bfbe9042d1" + dependencies = [ +- "gcc 0.3.55 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "ogg-sys 0.0.9 (registry+https://github.com/rust-lang/crates.io-index)", +- "pkg-config 0.3.18 (registry+https://github.com/rust-lang/crates.io-index)", +- "vorbis-sys 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gcc", ++ "libc", ++ "ogg-sys", ++ "pkg-config", ++ "vorbis-sys", + ] + + [[package]] + name = "want" + version = "0.0.4" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "a05d9d966753fa4b5c8db73fcab5eed4549cfe0e1e4e66911e5564a0085c35d1" + dependencies = [ +- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", +- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", +- "try-lock 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "futures", ++ "log 0.4.11", ++ "try-lock", + ] + + [[package]] + name = "wasi" + version = "0.9.0+wasi-snapshot-preview1" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" + + [[package]] + name = "winapi" + version = "0.2.8" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" + + [[package]] + name = "winapi" + version = "0.3.9" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" + dependencies = [ +- "winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "winapi-i686-pc-windows-gnu", ++ "winapi-x86_64-pc-windows-gnu", + ] + + [[package]] + name = "winapi-build" + version = "0.1.1" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" + + [[package]] + name = "winapi-i686-pc-windows-gnu" + version = "0.4.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + + [[package]] + name = "winapi-util" + version = "0.1.5" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" + dependencies = [ +- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", ++ "winapi 0.3.9", + ] + + [[package]] + name = "winapi-x86_64-pc-windows-gnu" + version = "0.4.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + + [[package]] + name = "ws2_32-sys" + version = "0.2.1" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" + dependencies = [ +- "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", +- "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "winapi 0.2.8", ++ "winapi-build", + ] + + [[package]] + name = "zerocopy" + version = "0.2.8" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "992b9b31f80fd4a167f903f879b8ca43d6716cc368ea01df90538baa2dd34056" + dependencies = [ +- "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)", +- "zerocopy-derive 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", ++ "byteorder", ++ "zerocopy-derive", + ] + + [[package]] + name = "zerocopy-derive" + version = "0.1.4" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "b090467ecd0624026e8a6405d343ac7382592530d54881330b3fc8e400280fa5" + dependencies = [ +- "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", +- "syn 0.15.44 (registry+https://github.com/rust-lang/crates.io-index)", +- "synstructure 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", +-] +- +-[metadata] +-"checksum aes 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "54eb1d8fe354e5fc611daf4f2ea97dd45a765f4f1e4512306ec183ae2e8f20c9" +-"checksum aes-ctr 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d2e5b0458ea3beae0d1d8c0f3946564f8e10f90646cf78c06b4351052058d1ee" +-"checksum aes-soft 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "cfd7e7ae3f9a1fb5c03b389fc6bb9a51400d0c13053f0dca698c832bfd893a0d" +-"checksum aesni 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2f70a6b5f971e473091ab7cfb5ffac6cde81666c4556751d8d5620ead8abf100" +-"checksum alga 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)" = "4f823d037a7ec6ea2197046bafd4ae150e6bc36f9ca347404f46a46823fa84f2" +-"checksum alsa 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b4a0d4ebc8b23041c5de9bc9aee13b4bad844a589479701f31a5934cfe4aeb32" +-"checksum alsa-sys 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b0edcbbf9ef68f15ae1b620f722180b82a98b6f0628d30baa6b8d2a5abc87d58" +-"checksum approx 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f0e60b75072ecd4168020818c0107f2857bb6c4e64252d8d3983f6263b40a5c3" +-"checksum arc-swap 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)" = "4d25d88fd6b8041580a654f9d0c581a047baee2b3efee13275f2fc392fc75034" +-"checksum atty 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" +-"checksum autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2" +-"checksum autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d" +-"checksum base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0b25d992356d2eb0ed82172f5248873db5560c4721f564b13cb5193bda5e668e" +-"checksum base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)" = "489d6c0ed21b11d038c31b6ceccca973e65d73ba3bd8ecb9a2babf5546164643" +-"checksum bindgen 0.53.3 (registry+https://github.com/rust-lang/crates.io-index)" = "c72a978d268b1d70b0e963217e60fdabd9523a941457a6c42a7315d15c7e89e5" +-"checksum bit-set 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6e11e16035ea35e4e5997b393eacbf6f63983188f7a2ad25bfb13465f5ad59de" +-"checksum bit-vec 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "5f0dc55f2d8a1a85650ac47858bb001b4c0dd73d79e3c455a842925e68d29cd3" +-"checksum bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "aad18937a628ec6abcd26d1489012cc0e18c21798210f491af69ded9b881106d" +-"checksum bitflags 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4efd02e230a02e18f92fc2735f44597385ed02ad8f831e7c1c1156ee5e1ab3a5" +-"checksum bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" +-"checksum block-buffer 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b" +-"checksum block-cipher-trait 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1c924d49bd09e7c06003acda26cd9742e796e34282ec6c1189404dee0c1f4774" +-"checksum block-modes 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "31aa8410095e39fdb732909fb5730a48d5bd7c2e3cd76bd1b07b3dbea130c529" +-"checksum block-padding 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5" +-"checksum byte-tools 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" +-"checksum byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de" +-"checksum bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)" = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c" +-"checksum cc 1.0.58 (registry+https://github.com/rust-lang/crates.io-index)" = "f9a06fb2e53271d7c279ec1efea6ab691c35a2ae67ec0d91d7acec0caf13b518" +-"checksum cexpr 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f4aedb84272dbe89af497cf81375129abda4fc0a9e7c5d317498c15cc30c0d27" +-"checksum cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)" = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" +-"checksum chrono 0.4.13 (registry+https://github.com/rust-lang/crates.io-index)" = "c74d84029116787153e02106bf53e66828452a4b325cc8652b788b5967c0a0b6" +-"checksum clang-sys 0.29.3 (registry+https://github.com/rust-lang/crates.io-index)" = "fe6837df1d5cba2397b835c8530f51723267e16abbf83892e9e5af4f0e5dd10a" +-"checksum cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" +-"checksum core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "716c271e8613ace48344f723b60b900a93150271e5be206212d052bbc0883efa" +-"checksum coreaudio-rs 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f229761965dad3e9b11081668a6ea00f1def7aa46062321b5ec245b834f6e491" +-"checksum coreaudio-sys 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "d6570ee6e089131e928d5ec9236db9e818aa3cf850f48b0eec6ef700571271d4" +-"checksum cpal 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "d58ae1ed6536b1b233f5e3aeb6997a046ddb4d05e3f61701b58a92eb254a829e" +-"checksum crossbeam-deque 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "9f02af974daeee82218205558e51ec8768b48cf524bd01d550abe5573a608285" +-"checksum crossbeam-epoch 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "058ed274caafc1f60c4997b5fc07bf7dc7cca454af7c6e81edffe5f33f70dace" +-"checksum crossbeam-queue 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7c979cd6cfe72335896575c6b5688da489e420d36a27a0b9eb0c73db574b4a4b" +-"checksum crossbeam-queue 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "774ba60a54c213d409d5353bda12d49cd68d14e45036a285234c8d6f91f92570" +-"checksum crossbeam-utils 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)" = "04973fa96e96579258a5091af6003abde64af786b860f18622b82e026cca60e6" +-"checksum crossbeam-utils 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8" +-"checksum crypto-mac 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4434400df11d95d556bac068ddfedd482915eb18fe8bea89bc80b6e4b1c179e5" +-"checksum ctr 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "022cd691704491df67d25d006fe8eca083098253c4d43516c2206479c58c6736" +-"checksum digest 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5" +-"checksum dns-sd 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "d748509dea20228f63ba519bf142ce2593396386125b01f5b0d6412dab972087" +-"checksum env_logger 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "aafcde04e90a5226a6443b7aabdb016ba2f8307c847d524724bd9b346dd1a2d3" +-"checksum error-chain 0.12.2 (registry+https://github.com/rust-lang/crates.io-index)" = "d371106cc88ffdfb1eabd7111e432da544f16f3e2d7bf1dfe8bf575f1df045cd" +-"checksum fake-simd 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" +-"checksum fnv 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)" = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +-"checksum fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba" +-"checksum fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" +-"checksum fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" +-"checksum futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)" = "1b980f2816d6ee8673b6517b52cb0e808a180efc92e5c19d02cdda79066703ef" +-"checksum futures-channel 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "f366ad74c28cca6ba456d95e6422883cfb4b252a83bed929c83abfdbbf2967d5" +-"checksum futures-core 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "59f5fff90fd5d971f936ad674802482ba441b6f09ba5e15fd8b39145582ca399" +-"checksum futures-cpupool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "ab90cde24b3319636588d0c35fe03b1333857621051837ed769faefb4c2162e4" +-"checksum futures-executor 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "10d6bb888be1153d3abeb9006b11b02cf5e9b209fda28693c31ae1e4e012e314" +-"checksum futures-macro 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "d0b5a30a4328ab5473878237c447333c093297bded83a4983d10f4deea240d39" +-"checksum futures-sink 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "3f2032893cb734c7a05d85ce0cc8b8c4075278e93b24b66f9de99d6eb0fa8acc" +-"checksum futures-task 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "bdb66b5f09e22019b1ab0830f7785bcea8e7a42148683f99214f73f8ec21a626" +-"checksum futures-util 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "8764574ff08b701a084482c3c7031349104b07ac897393010494beaa18ce32c6" +-"checksum gcc 0.3.55 (registry+https://github.com/rust-lang/crates.io-index)" = "8f5f3913fa0bfe7ee1fd8248b6b9f42a5af4b9d65ec2dd2c3c26132b950ecfc2" +-"checksum generic-array 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)" = "c68f0274ae0e023facc3c97b2e00f076be70e254bc851d972503b328db79b2ec" +-"checksum getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)" = "14dbbfd5c71d70241ecf9e6f13737f7b5ce823821063188d7e46c41d371eebd5" +-"checksum getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb" +-"checksum glib 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)" = "40fb573a09841b6386ddf15fd4bc6655b4f5b106ca962f57ecaecde32a0061c0" +-"checksum glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "95856f3802f446c05feffa5e24859fe6a183a7cb849c8449afc35c86b1e316e2" +-"checksum glob 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574" +-"checksum gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "31d1a804f62034eccf370006ccaef3708a71c31d561fee88564abe71177553d9" +-"checksum gstreamer 0.15.7 (registry+https://github.com/rust-lang/crates.io-index)" = "ce8664a114cd6ec16bece783d5eee59496919915b1f6884400ba4a953274a163" +-"checksum gstreamer-app 0.15.6 (registry+https://github.com/rust-lang/crates.io-index)" = "789784e8d42f5add1e1e965cf9f7e2d09e21dd0756bae6148f971db9a761d6a9" +-"checksum gstreamer-app-sys 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "bf869ce152c23bca5d761ab62146b47f750d0b28d4d499731857532897d48167" +-"checksum gstreamer-base 0.15.4 (registry+https://github.com/rust-lang/crates.io-index)" = "42552f75cc6c260b0be180d5c955f4cd74bd170289c622404c25f1210b521c12" +-"checksum gstreamer-base-sys 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ba384f52174b3c586593fca32642680a9e67961fea9f4cd8419f678965023bed" +-"checksum gstreamer-sys 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1d18da01b97d0ab5896acd5151e4c155acefd0e6c03c3dd24dd133ba054053db" +-"checksum hermit-abi 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)" = "3deed196b6e7f9e44a2ae8d94225d80302d81208b1bb673fd21fe634645c85a9" +-"checksum hex 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "805026a5d0141ffc30abb3be3173848ad46a1b1664fe632428479619a3644d77" +-"checksum hmac 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "5dcb5e64cda4c23119ab41ba960d1e170a774c8e4b9d9e6a9bc18aabf5e59695" +-"checksum hostname 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867" +-"checksum httparse 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "cd179ae861f0c2e53da70d892f5f3029f9594be0c41dc5269cd371691b1dc2f9" +-"checksum humantime 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f" +-"checksum hyper 0.11.27 (registry+https://github.com/rust-lang/crates.io-index)" = "34a590ca09d341e94cddf8e5af0bbccde205d5fbc2fa3c09dd67c7f85cea59d7" +-"checksum hyper-proxy 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "44f0925de2747e481e6e477dd212c25e8f745567f02f6182e04d27b97c3fbece" +-"checksum idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e" +-"checksum if-addrs 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "28538916eb3f3976311f5dfbe67b5362d0add1293d0a9cad17debf86f8e3aa48" +-"checksum if-addrs-sys 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "de74b9dd780476e837e5eb5ab7c88b49ed304126e412030a0adba99c8efe79ea" +-"checksum iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e" +-"checksum itoa 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "dc6f3ad7b9d11a0c00842ff8de1b60ee58661048eb8049ed33c73594f359d7e6" +-"checksum jack 0.5.7 (registry+https://github.com/rust-lang/crates.io-index)" = "1e15fc592e2e5a74a105ff507083c04db1aa20ba1b90d425362ba000e57422df" +-"checksum jack-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c0d4ca501477fd3cd93a36df581046e5d6338ed826cf7e9b8d302603521e6cc3" +-"checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" +-"checksum language-tags 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a91d884b6667cd606bb5a69aa0c99ba811a115fc68915e7056ec08a46e93199a" +-"checksum lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +-"checksum lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b294d6fa9ee409a054354afc4352b0b9ef7ca222c69b8812cbea9e7d2bf3783f" +-"checksum lewton 0.9.4 (registry+https://github.com/rust-lang/crates.io-index)" = "8d542c1a317036c45c2aa1cf10cc9d403ca91eb2d333ef1a4917e5cb10628bd0" +-"checksum libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)" = "bd7d4bd64732af4bf3a67f367c27df8520ad7e230c5817b8ff485864d80242b9" +-"checksum libloading 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "fd38073de8f7965d0c17d30546d4bb6da311ab428d1c7a3fc71dff7f9d4979b9" +-"checksum libloading 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f2b111a074963af1d37a139918ac6d49ad1d0d5e47f72fd55388619691a7d753" +-"checksum libm 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c7d73b3f436185384286bd8098d17ec07c9a7d2388a6599f824d8502b529702a" +-"checksum libmdns 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "5d8582c174736c53633bc482ac709b24527c018356c3dc6d8e25a788b06b394e" +-"checksum libpulse-sys 0.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9bb11b06faf883500c1b625cf4453e6c7737e9df9c7ba01df3f84b22b083e4ac" +-"checksum librespot-tremor 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "97f525bff915d478a76940a7b988e5ea34911ba7280c97bd3a7673f54d68b4fe" +-"checksum linear-map 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bfae20f6b19ad527b550c223fddc3077a547fc70cda94b9b566575423fd303ee" +-"checksum lock_api 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "c4da24a77a3d8a6d4862d95f72e6fdb9c09a643ecdb402d754004a557f2bec75" +-"checksum log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "e19e8d5c34a3e0e2223db8e060f9e8264aeeb5c5fc64a4ee9965c062211c024b" +-"checksum log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)" = "4fabed175da42fed1fa0746b0ea71f412aa9d35e76e95e59b192c64b9dc2bf8b" +-"checksum match_cfg 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4" +-"checksum matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08" +-"checksum matrixmultiply 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "d4f7ec66360130972f34830bfad9ef05c6610a43938a467bcc9ab9369ab3478f" +-"checksum maybe-uninit 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00" +-"checksum memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400" +-"checksum memoffset 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)" = "c198b026e1bbf08a937e94c6c60f9ec4a2267f5b0d2eec9c1b21b061ce2be55f" +-"checksum mime 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)" = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d" +-"checksum mio 0.6.22 (registry+https://github.com/rust-lang/crates.io-index)" = "fce347092656428bc8eaf6201042cb551b8d67855af7374542a92a0fbfcac430" +-"checksum mio-named-pipes 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "0840c1c50fd55e521b247f949c241c9997709f23bd7f023b9762cd561e935656" +-"checksum mio-uds 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)" = "afcb699eb26d4332647cc848492bbc15eafb26f08d0304550d5aa1f612e066f0" +-"checksum miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919" +-"checksum miow 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "07b88fb9795d4d36d62a012dfbf49a8f5cf12751f36d31a9dbe66d528e58979e" +-"checksum muldiv 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0419348c027fa7be448d2ae7ea0e4e04c2334c31dc4e74ab29f00a2a7ca69204" +-"checksum multimap 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d8883adfde9756c1d30b0f519c9b8c502a94b41ac62f696453c37c7fc0a958ce" +-"checksum nalgebra 0.18.1 (registry+https://github.com/rust-lang/crates.io-index)" = "aaa9fddbc34c8c35dd2108515587b8ce0cab396f17977b8c738568e4edb521a2" +-"checksum net2 0.2.34 (registry+https://github.com/rust-lang/crates.io-index)" = "2ba7c918ac76704fb42afcbbb43891e72731f3dcca3bef2a19786297baf14af7" +-"checksum nix 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a2c5afeb0198ec7be8569d666644b574345aad2e95a53baf3a532da3e0f3fb32" +-"checksum nom 5.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "ffb4262d26ed83a1c0a33a38fe2bb15797329c85770da05e6b828ddb782627af" +-"checksum num 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "4703ad64153382334aa8db57c637364c322d3372e097840c72000dabdcf6156e" +-"checksum num-bigint 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304" +-"checksum num-complex 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "b6b19411a9719e753aff12e5187b74d60d3dc449ec3f4dc21e3989c3f554bc95" +-"checksum num-integer 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)" = "8d59457e662d541ba17869cf51cf177c0b5f0cbf476c66bdc90bf1edac4f875b" +-"checksum num-iter 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6e6b7c748f995c4c29c5f5ae0248536e04a5739927c74ec0fa564805094b9f" +-"checksum num-rational 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "5c000134b5dbf44adc5cb772486d335293351644b801551abe8f75c84cfa4aef" +-"checksum num-traits 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)" = "ac267bcc07f48ee5f8935ab0d24f316fb722d7a1292e2913f0cc196b29ffd611" +-"checksum num_cpus 1.13.0 (registry+https://github.com/rust-lang/crates.io-index)" = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3" +-"checksum ogg 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d79f1db9148be9d0e174bb3ac890f6030fcb1ed947267c5a91ee4c91b5a91e15" +-"checksum ogg-sys 0.0.9 (registry+https://github.com/rust-lang/crates.io-index)" = "a95b8c172e17df1a41bf8d666301d3b2c4efeb90d9d0415e2a4dc0668b35fdb2" +-"checksum once_cell 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0b631f7e854af39a1739f401cf34a8a013dfe09eac4fa4dba91e9768bd28168d" +-"checksum opaque-debug 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c" +-"checksum parking_lot 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f842b1982eb6c2fe34036a4fbfb06dd185a3f5c8edfaacdf7d1ea10b07de6252" +-"checksum parking_lot_core 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b876b1b9e7ac6e1a74a6da34d25c42e17e8862aa409cbbbdcfc8d86c6f3bc62b" +-"checksum paste 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)" = "45ca20c77d80be666aef2b45486da86238fabe33e38306bd3118fe4af33fa880" +-"checksum paste-impl 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)" = "d95a7db200b97ef370c8e6de0088252f7e0dfff7d047a28528e47456c0fc98b6" +-"checksum pbkdf2 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "006c038a43a45995a9670da19e67600114740e8511d4333bf97a56e66a7542d9" +-"checksum peeking_take_while 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" +-"checksum percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831" +-"checksum pin-project 0.4.22 (registry+https://github.com/rust-lang/crates.io-index)" = "12e3a6cdbfe94a5e4572812a0201f8c0ed98c1c452c7b8563ce2276988ef9c17" +-"checksum pin-project-internal 0.4.22 (registry+https://github.com/rust-lang/crates.io-index)" = "6a0ffd45cf79d88737d7cc85bfd5d2894bee1139b356e616fe85dc389c61aaf7" +-"checksum pin-utils 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" +-"checksum pkg-config 0.3.18 (registry+https://github.com/rust-lang/crates.io-index)" = "d36492546b6af1463394d46f0c834346f31548646f6ba10849802c9c9a27ac33" +-"checksum portaudio-rs 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "cdb6b5eff96ccc9bf44d34c379ab03ae944426d83d1694345bdf8159d561d562" +-"checksum portaudio-sys 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "5194a4fa953b4ffd851c320ef6f0484cd7278cb7169ea9d6c433e49b23f7b7f5" +-"checksum ppv-lite86 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "237a5ed80e274dbc66f86bd59c1e25edc039660be53194b5fe0a482e0f2612ea" +-"checksum proc-macro-hack 0.5.16 (registry+https://github.com/rust-lang/crates.io-index)" = "7e0456befd48169b9f13ef0f0ad46d492cf9d2dbb918bcf38e01eed4ce3ec5e4" +-"checksum proc-macro-nested 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "eba180dafb9038b050a4c280019bbedf9f2467b61e5d892dcad585bb57aadc5a" +-"checksum proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)" = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759" +-"checksum proc-macro2 1.0.19 (registry+https://github.com/rust-lang/crates.io-index)" = "04f5f085b5d71e2188cb8271e5da0161ad52c3f227a661a3c135fdf28e258b12" +-"checksum protobuf 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8e86d370532557ae7573551a1ec8235a0f8d6cb276c7c9e6aa490b511c447485" +-"checksum protobuf-codegen 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)" = "de113bba758ccf2c1ef816b127c958001b7831136c9bc3f8e9ec695ac4e82b0c" +-"checksum protobuf-codegen-pure 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2d1a4febc73bf0cada1d77c459a0c8e5973179f1cfd5b0f1ab789d45b17b6440" +-"checksum quick-error 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" +-"checksum quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)" = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1" +-"checksum quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)" = "aa563d17ecb180e500da1cfd2b028310ac758de548efdd203e18f283af693f37" +-"checksum rand 0.3.23 (registry+https://github.com/rust-lang/crates.io-index)" = "64ac302d8f83c0c1974bf758f6b041c6c8ada916fbb44a609158ca8b064cc76c" +-"checksum rand 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293" +-"checksum rand 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c618c47cd3ebd209790115ab837de41425723956ad3ce2e6a7f09890947cacb9" +-"checksum rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca" +-"checksum rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" +-"checksum rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef" +-"checksum rand_chacha 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" +-"checksum rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b" +-"checksum rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc" +-"checksum rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" +-"checksum rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4" +-"checksum rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" +-"checksum rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08" +-"checksum rand_jitter 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "1166d5c91dc97b88d1decc3285bb0a99ed84b05cfd0bc2341bdf2d43fc41e39b" +-"checksum rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071" +-"checksum rand_pcg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44" +-"checksum rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c" +-"checksum rawpointer 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" +-"checksum rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2" +-"checksum redox_syscall 0.1.57 (registry+https://github.com/rust-lang/crates.io-index)" = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce" +-"checksum regex 1.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "9c3780fcf44b193bc4d09f36d2a3c87b251da4a046c87795a0d35f4f927ad8e6" +-"checksum regex-syntax 0.6.18 (registry+https://github.com/rust-lang/crates.io-index)" = "26412eb97c6b088a6997e05f69403a802a92d520de2f8e63c2b65f9e0f47c4e8" +-"checksum relay 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1576e382688d7e9deecea24417e350d3062d97e32e45d70b1cde65994ff1489a" +-"checksum remove_dir_all 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" +-"checksum rodio 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5d0f961b254e66d147a7b550c78b01308934c97d807a34b417fd0f5a0a0f3a2d" +-"checksum rpassword 3.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c34fa7bcae7fca3c8471e8417088bbc3ad9af8066b0ecf4f3c0d98a0d772716e" +-"checksum rustc-hash 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" +-"checksum rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" +-"checksum ryu 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e" +-"checksum safemem 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072" +-"checksum scoped-tls 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "332ffa32bf586782a3efaeb58f127980944bbc8c4d6913a86107ac2a5ab24b28" +-"checksum scopeguard 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" +-"checksum sdl2 0.32.2 (registry+https://github.com/rust-lang/crates.io-index)" = "d051a07231e303f5f719da78cb6f7394f6d5b54f733aef5b0b447804a83edd7b" +-"checksum sdl2-sys 0.32.6 (registry+https://github.com/rust-lang/crates.io-index)" = "34e71125077d297d57e4c1acfe8981b5bdfbf5a20e7b589abfdcb33bf1127f86" +-"checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" +-"checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" +-"checksum serde 1.0.114 (registry+https://github.com/rust-lang/crates.io-index)" = "5317f7588f0a5078ee60ef675ef96735a1442132dc645eb1d12c018620ed8cd3" +-"checksum serde_derive 1.0.114 (registry+https://github.com/rust-lang/crates.io-index)" = "2a0be94b04690fbaed37cddffc5c134bf537c8e3329d53e982fe04c374978f8e" +-"checksum serde_json 1.0.56 (registry+https://github.com/rust-lang/crates.io-index)" = "3433e879a558dde8b5e8feb2a04899cf34fdde1fafb894687e52105fc1162ac3" +-"checksum sha-1 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f7d94d0bede923b3cea61f3f1ff57ff8cdfd77b400fb8f9998949e0cf04163df" +-"checksum sha2 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a256f46ea78a0c0d9ff00077504903ac881a1dafdc20da66545699e7776b3e69" +-"checksum shannon 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7ea5b41c9427b56caa7b808cb548a04fb50bb5b9e98590b53f28064ff4174561" +-"checksum shell-words 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "39acde55a154c4cd3ae048ac78cc21c25f3a0145e44111b523279113dce0d94a" +-"checksum shlex 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7fdf1b9db47230893d76faad238fd6097fd6d6a9245cd7a4d90dbd639536bbd2" +-"checksum signal-hook-registry 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "94f478ede9f64724c5d173d7bb56099ec3e2d9fc2774aac65d34b8b890405f41" +-"checksum slab 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "17b4fcaed89ab08ef143da37bc52adbcc04d4a69014f4c1208d6b51f0c47bc23" +-"checksum slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8" +-"checksum smallvec 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4c8cbcd6df1e117c2210e13ab5109635ad68a929fcbb8964dc965b76cb5ee013" +-"checksum smallvec 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)" = "f7b0758c52e15a8b5e3691eae6cc559f08eee9406e548a4477ba4e67770a82b6" +-"checksum socket2 0.3.12 (registry+https://github.com/rust-lang/crates.io-index)" = "03088793f677dce356f3ccc2edb1b314ad191ab702a5de3faf49304f7e104918" +-"checksum stdweb 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ef5430c8e36b713e13b48a9f709cc21e046723fe44ce34587b73a830203b533e" +-"checksum stream-cipher 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "8131256a5896cabcf5eb04f4d6dacbe1aefda854b0d9896e09cb58829ec5638c" +-"checksum subtle 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2d67a5a62ba6e01cb2192ff309324cb4875d0c451d55fe2319433abe7a05a8ee" +-"checksum syn 0.15.44 (registry+https://github.com/rust-lang/crates.io-index)" = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5" +-"checksum syn 1.0.35 (registry+https://github.com/rust-lang/crates.io-index)" = "fb7f4c519df8c117855e19dd8cc851e89eb746fe7a73f0157e0d95fdec5369b0" +-"checksum synstructure 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)" = "02353edf96d6e4dc81aea2d8490a7e9db177bf8acb0e951c24940bf866cb313f" +-"checksum take 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b157868d8ac1f56b64604539990685fa7611d8fa9e5476cf0c02cf34d32917c5" +-"checksum tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9" +-"checksum termcolor 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bb6bfa289a4d7c5766392812c0a1f4c1ba45afa1ad47803c11e1f407d846d75f" +-"checksum time 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)" = "ca8a50ef2360fbd1eeb0ecd46795a87a19024eb4b53c5dc916ca1fd95fe62438" +-"checksum tinyvec 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "53953d2d3a5ad81d9f844a32f14ebb121f50b650cd59d0ee2a07cf13c617efed" +-"checksum tokio 0.1.22 (registry+https://github.com/rust-lang/crates.io-index)" = "5a09c0b5bb588872ab2f09afa13ee6e9dac11e10a0ec9e8e3ba39a5a5d530af6" +-"checksum tokio-codec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "25b2998660ba0e70d18684de5d06b70b70a3a747469af9dea7618cc59e75976b" +-"checksum tokio-core 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)" = "aeeffbbb94209023feaef3c196a41cbcdafa06b4a6f893f68779bb5e53796f71" +-"checksum tokio-current-thread 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "b1de0e32a83f131e002238d7ccde18211c0a5397f60cbfffcb112868c2e0e20e" +-"checksum tokio-executor 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)" = "fb2d1b8f4548dbf5e1f7818512e9c406860678f29c300cdf0ebac72d1a3a1671" +-"checksum tokio-fs 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "297a1206e0ca6302a0eed35b700d292b275256f596e2f3fea7729d5e629b6ff4" +-"checksum tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "57fc868aae093479e3131e3d165c93b1c7474109d13c90ec0dda2a1bbfff0674" +-"checksum tokio-process 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "382d90f43fa31caebe5d3bc6cfd854963394fff3b8cb59d5146607aaae7e7e43" +-"checksum tokio-proto 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8fbb47ae81353c63c487030659494b295f6cb6576242f907f203473b191b0389" +-"checksum tokio-reactor 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)" = "09bc590ec4ba8ba87652da2068d150dcada2cfa2e07faae270a5e0409aa51351" +-"checksum tokio-service 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "24da22d077e0f15f55162bdbdc661228c1581892f52074fb242678d015b45162" +-"checksum tokio-signal 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)" = "d0c34c6e548f101053321cba3da7cbb87a610b85555884c41b07da2eb91aff12" +-"checksum tokio-sync 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "edfe50152bc8164fcc456dab7891fa9bf8beaf01c5ee7e1dd43a397c3cf87dee" +-"checksum tokio-tcp 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "98df18ed66e3b72e742f185882a9e201892407957e45fbff8da17ae7a7c51f72" +-"checksum tokio-threadpool 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)" = "df720b6581784c118f0eb4310796b12b1d242a7eb95f716a8367855325c25f89" +-"checksum tokio-timer 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)" = "93044f2d313c95ff1cb7809ce9a7a05735b012288a888b62d4434fd58c94f296" +-"checksum tokio-udp 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "e2a0b10e610b39c38b031a2fcab08e4b82f16ece36504988dcbd81dbba650d82" +-"checksum tokio-uds 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "ab57a4ac4111c8c9dbcf70779f6fc8bc35ae4b2454809febac840ad19bd7e4e0" +-"checksum try-lock 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ee2aa4715743892880f70885373966c83d73ef1b0838a664ef0c76fffd35e7c2" +-"checksum typenum 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "373c8a200f9e67a0c95e62a4f52fbf80c23b4381c05a17845531982fa99e6b33" +-"checksum unicase 2.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6" +-"checksum unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5" +-"checksum unicode-normalization 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "6fb19cf769fa8c6a80a162df694621ebeb4dafb606470b2b2fce0be40a98a977" +-"checksum unicode-width 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3" +-"checksum unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" +-"checksum unicode-xid 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564" +-"checksum url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "dd4e7c0d531266369519a4aa4f399d748bd37043b00bde1e4ff1f60a120b355a" +-"checksum uuid 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)" = "90dbc611eb48397705a6b0f6e917da23ae517e4d127123d2cf7674206627d32a" +-"checksum vergen 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4ce50d8996df1f85af15f2cd8d33daae6e479575123ef4314a51a70a230739cb" +-"checksum version_check 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b5a972e5669d67ba988ce3dc826706fb0a8b01471c088cb0b6110b805cc36aed" +-"checksum void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" +-"checksum vorbis 0.0.14 (registry+https://github.com/rust-lang/crates.io-index)" = "5e8a194457075360557b82dac78f7ca2d65bbb6679bccfabae5f7c8c706cc776" +-"checksum vorbis-sys 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3a0a8d7034313748da1d84b0adfa501f83f9ec83250f37fbacfa92a3580327c4" +-"checksum vorbisfile-sys 0.0.8 (registry+https://github.com/rust-lang/crates.io-index)" = "4f4306d7e1ac4699b55e20de9483750b90c250913188efd7484db6bfbe9042d1" +-"checksum want 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "a05d9d966753fa4b5c8db73fcab5eed4549cfe0e1e4e66911e5564a0085c35d1" +-"checksum wasi 0.9.0+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)" = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" +-"checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" +-"checksum winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +-"checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" +-"checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" +-"checksum winapi-util 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +-"checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +-"checksum ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" +-"checksum zerocopy 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "992b9b31f80fd4a167f903f879b8ca43d6716cc368ea01df90538baa2dd34056" +-"checksum zerocopy-derive 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "b090467ecd0624026e8a6405d343ac7382592530d54881330b3fc8e400280fa5" ++ "proc-macro2 0.4.30", ++ "syn 0.15.44", ++ "synstructure", ++] diff --git a/pkgs/applications/audio/librespot/default.nix b/pkgs/applications/audio/librespot/default.nix index 13aa4fe5bc2..858d8e795e1 100644 --- a/pkgs/applications/audio/librespot/default.nix +++ b/pkgs/applications/audio/librespot/default.nix @@ -4,18 +4,17 @@ rustPlatform.buildRustPackage rec { pname = "librespot"; - version = "0.1.3"; + version = "0.1.6"; src = fetchFromGitHub { owner = "librespot-org"; repo = "librespot"; rev = "v${version}"; - sha256 = "1ixh47yvaamrpzagqsiimc3y6bi4nbym95843d23am55zkrgnmy5"; + sha256 = "153i9n3qwmmwc29f62cz8nbqrlry16iygvibm1sdnvpf0s6wk5f3"; }; - cargoSha256 = "1csls8kzzx28ng6w9vdwhnnav5sqp2m5fj430db5z306xh5acg3d"; - cargoPatches = [ ./cargo-lock.patch ]; + cargoSha256 = "11d64rpq4b5rdxk5wx0hhzgc6mvs6h2br0w3kfncfklp67vn3v4v"; cargoBuildFlags = with lib; [ "--no-default-features" From aacbc7385c5757a20b9b3ec172e58e7bc1039257 Mon Sep 17 00:00:00 2001 From: alvar <8402811+oxzi@users.noreply.github.com> Date: Sun, 2 May 2021 14:39:16 +0200 Subject: [PATCH 248/339] pythonPackages.pynmea2: 1.17.0 -> 1.18.0 (#121484) --- pkgs/development/python-modules/pynmea2/default.nix | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/pynmea2/default.nix b/pkgs/development/python-modules/pynmea2/default.nix index 8bb82fa330a..4a4fbfd4dc6 100644 --- a/pkgs/development/python-modules/pynmea2/default.nix +++ b/pkgs/development/python-modules/pynmea2/default.nix @@ -2,15 +2,17 @@ buildPythonPackage rec { pname = "pynmea2"; - version = "1.17.0"; + version = "1.18.0"; src = fetchPypi { inherit pname version; - sha256 = "0x5xrk51dpzsvky1ncikadm80a44a82j3mjjykmhmx7jddc5qh9d"; + sha256 = "1b94lhpbgvnknb563dlwvs5vkk7w3ma54sj614ynh2dzgqrd6h73"; }; checkInputs = [ pytestCheckHook ]; + pythonImportsCheck = [ "pynmea2" ]; + meta = { homepage = "https://github.com/Knio/pynmea2"; description = "Python library for the NMEA 0183 protcol"; From d196216e11ef2a2ac37184814f08aa7c9f8d1281 Mon Sep 17 00:00:00 2001 From: sternenseemann <0rpkxez4ksa01gb3typccl0i@systemli.org> Date: Sun, 2 May 2021 14:34:03 +0200 Subject: [PATCH 249/339] man-pages-posix: use version format as repology repology considers 2017a, not 2017-a as current since all other distributions seem to use that versioning scheme. --- pkgs/data/documentation/man-pages-posix/default.nix | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/pkgs/data/documentation/man-pages-posix/default.nix b/pkgs/data/documentation/man-pages-posix/default.nix index ca7fdf1d4be..1d9ddda377b 100644 --- a/pkgs/data/documentation/man-pages-posix/default.nix +++ b/pkgs/data/documentation/man-pages-posix/default.nix @@ -1,11 +1,16 @@ {lib, stdenv, fetchurl}: +let + year = "2017"; + minor = "a"; +in + stdenv.mkDerivation rec { pname = "man-pages-posix"; - version = "2017-a"; + version = "${year}${minor}"; src = fetchurl { - url = "mirror://kernel/linux/docs/man-pages/man-pages-posix/${pname}-${version}.tar.xz"; + url = "mirror://kernel/linux/docs/man-pages/man-pages-posix/${pname}-${year}-${minor}.tar.xz"; sha256 = "ce67bb25b5048b20dad772e405a83f4bc70faf051afa289361c81f9660318bc3"; }; From bc33b23cd057f13060e69cc65157b233d7be7fc0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Romildo=20Malaquias?= Date: Tue, 2 Feb 2021 08:29:15 -0300 Subject: [PATCH 250/339] ppx_deriving_cmdliner: init at 0.6.0 --- .../ppx_deriving_cmdliner/default.nix | 41 +++++++++++++++++++ pkgs/top-level/ocaml-packages.nix | 2 + 2 files changed, 43 insertions(+) create mode 100644 pkgs/development/ocaml-modules/ppx_deriving_cmdliner/default.nix diff --git a/pkgs/development/ocaml-modules/ppx_deriving_cmdliner/default.nix b/pkgs/development/ocaml-modules/ppx_deriving_cmdliner/default.nix new file mode 100644 index 00000000000..412ef9568db --- /dev/null +++ b/pkgs/development/ocaml-modules/ppx_deriving_cmdliner/default.nix @@ -0,0 +1,41 @@ +{ lib +, buildDunePackage +, fetchFromGitHub +, alcotest +, cmdliner +, ppx_deriving +, ppxlib +}: + +buildDunePackage rec { + pname = "ppx_deriving_cmdliner"; + version = "0.6.0"; + + minimumOCamlVersion = "4.08"; + useDune2 = true; + + src = fetchFromGitHub { + owner = "hammerlab"; + repo = "ppx_deriving_cmdliner"; + rev = "v${version}"; + sha256 = "19l32y2wv64d1c7fvln07dg3bkf7wf5inzjxlff7lbabskdbbras"; + }; + + propagatedBuildInputs = [ + cmdliner + ppx_deriving + ppxlib + ]; + + doCheck = true; + checkInputs = [ + alcotest + ]; + + meta = with lib; { + description = "Ppx_deriving plugin for generating command line interfaces from types for OCaml"; + inherit (src.meta) homepage; + license = licenses.asl20; + maintainers = [ maintainers.romildo ]; + }; +} diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix index 6ae5f43a63c..71da1aa5c0a 100644 --- a/pkgs/top-level/ocaml-packages.nix +++ b/pkgs/top-level/ocaml-packages.nix @@ -1076,6 +1076,8 @@ let ppx_deriving_yojson = callPackage ../development/ocaml-modules/ppx_deriving_yojson {}; + ppx_deriving_cmdliner = callPackage ../development/ocaml-modules/ppx_deriving_cmdliner {}; + ppx_gen_rec = callPackage ../development/ocaml-modules/ppx_gen_rec {}; ppx_import = callPackage ../development/ocaml-modules/ppx_import ( From 12714a4726a0444cdc3515eb6f4dd71e46b4f43d Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Sun, 2 May 2021 14:51:48 +0200 Subject: [PATCH 251/339] python3Packages.pywizlight: 0.4.6 -> 0.4.7 --- pkgs/development/python-modules/pywizlight/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/python-modules/pywizlight/default.nix b/pkgs/development/python-modules/pywizlight/default.nix index ba41712c236..1461a705302 100644 --- a/pkgs/development/python-modules/pywizlight/default.nix +++ b/pkgs/development/python-modules/pywizlight/default.nix @@ -9,13 +9,13 @@ buildPythonPackage rec { pname = "pywizlight"; - version = "0.4.6"; + version = "0.4.7"; src = fetchFromGitHub { owner = "sbidy"; repo = pname; - rev = "v${version}"; - sha256 = "sha256-BCHLd1SbdHWrl7dcLD69t2K5Sa1WtGpMxTmMyDWl9u4="; + rev = version; + sha256 = "0zagdb90bxmf06fzpljhqgsgzg36zc1yhdibacfrx8bmnx3l657h"; }; propagatedBuildInputs = [ From 33682a80a10a67866849325e5d2bbc9866a66689 Mon Sep 17 00:00:00 2001 From: Dan Eads <24708079+daneads@users.noreply.github.com> Date: Sun, 2 May 2021 08:34:50 -0400 Subject: [PATCH 252/339] maintainers: add daneads --- maintainers/maintainer-list.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index d9de8a22f2f..af40e5cc68b 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -2177,6 +2177,12 @@ githubId = 990767; name = "Daniel Olsen"; }; + daneads = { + email = "me@daneads.com"; + github = "daneads"; + githubId = 24708079; + name = "Dan Eads"; + }; danharaj = { email = "dan@obsidian.systems"; github = "danharaj"; From 9e94b036a1b4deb45bece418a2eeac28b10f447e Mon Sep 17 00:00:00 2001 From: 239 <239@pm.me> Date: Sun, 2 May 2021 15:16:04 +0200 Subject: [PATCH 253/339] pcloud: fix runtime dependencies (#121495) --- pkgs/applications/networking/pcloud/default.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkgs/applications/networking/pcloud/default.nix b/pkgs/applications/networking/pcloud/default.nix index 64721cd75a6..6cff01c1cc2 100644 --- a/pkgs/applications/networking/pcloud/default.nix +++ b/pkgs/applications/networking/pcloud/default.nix @@ -21,7 +21,7 @@ # Runtime dependencies; # A few additional ones (e.g. Node) are already shipped together with the # AppImage, so we don't have to duplicate them here. - alsaLib, dbus-glib, fuse, gnome3, gtk3, libdbusmenu-gtk2, udev, nss + alsaLib, dbus-glib, fuse, gnome3, gtk3, libdbusmenu-gtk2, libXdamage, udev, nss }: let @@ -59,6 +59,7 @@ in stdenv.mkDerivation { fuse gtk3 libdbusmenu-gtk2 + libXdamage nss udev ]; From 86ec321e63754f6aa129ce9519b77e64d2178071 Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Sun, 2 May 2021 14:26:58 +0200 Subject: [PATCH 254/339] link-grammar: 5.8.1 -> 5.9.1 https://github.com/opencog/link-grammar/blob/link-grammar-5.9.1/ChangeLog Remove libz dependency since that has only been used by minisat. Also clean up the expression. --- pkgs/tools/text/link-grammar/default.nix | 26 +++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/pkgs/tools/text/link-grammar/default.nix b/pkgs/tools/text/link-grammar/default.nix index b5cfdcbfc0c..3a6686dba5f 100644 --- a/pkgs/tools/text/link-grammar/default.nix +++ b/pkgs/tools/text/link-grammar/default.nix @@ -1,20 +1,36 @@ -{ lib, stdenv, fetchurl, pkg-config, python3, sqlite, libedit, zlib, runCommand, dieHook }: +{ lib +, stdenv +, fetchurl +, pkg-config +, python3 +, sqlite +, libedit +, runCommand +, dieHook +}: let link-grammar = stdenv.mkDerivation rec { - version = "5.8.1"; pname = "link-grammar"; + version = "5.9.1"; outputs = [ "bin" "out" "dev" "man" ]; src = fetchurl { url = "http://www.abisource.com/downloads/${pname}/${version}/${pname}-${version}.tar.gz"; - sha256 = "sha256-EcT/VR+lFpJX2sxXUIDGOwdceQ7awpmEqUZBoJk7UFs="; + sha256 = "sha256-4D/rqoIGlvR+q7Az8E1xPYSQQMJMRVeRM9HQIbjssLo="; }; - nativeBuildInputs = [ pkg-config python3 ]; - buildInputs = [ sqlite libedit zlib ]; + nativeBuildInputs = [ + pkg-config + python3 + ]; + + buildInputs = [ + sqlite + libedit + ]; configureFlags = [ "--disable-java-bindings" From 75468c3907a7cda848f2ee48bdf5c1322a73f4b1 Mon Sep 17 00:00:00 2001 From: 031d7e3e-4476-4fef-a076-26150f8ecc2f <83497716+031d7e3e-4476-4fef-a076-26150f8ecc2f@users.noreply.github.com> Date: Sat, 1 May 2021 08:05:39 -0400 Subject: [PATCH 255/339] mopidy-podcast: init at 3.0.0 Mopidy extension for browsing and playing podcasts Update maintainer + add py3 tests --- pkgs/applications/audio/mopidy/default.nix | 2 ++ pkgs/applications/audio/mopidy/podcast.nix | 31 ++++++++++++++++++++++ pkgs/top-level/all-packages.nix | 1 + 3 files changed, 34 insertions(+) create mode 100644 pkgs/applications/audio/mopidy/podcast.nix diff --git a/pkgs/applications/audio/mopidy/default.nix b/pkgs/applications/audio/mopidy/default.nix index 0acc1545a8d..0deecaec7ff 100644 --- a/pkgs/applications/audio/mopidy/default.nix +++ b/pkgs/applications/audio/mopidy/default.nix @@ -21,6 +21,8 @@ lib.makeScope newScope (self: with self; { mopidy-musicbox-webclient = callPackage ./musicbox-webclient.nix { }; + mopidy-podcast = callPackage ./podcast.nix { }; + mopidy-scrobbler = callPackage ./scrobbler.nix { }; mopidy-somafm = callPackage ./somafm.nix { }; diff --git a/pkgs/applications/audio/mopidy/podcast.nix b/pkgs/applications/audio/mopidy/podcast.nix new file mode 100644 index 00000000000..8a5c4ec2b3d --- /dev/null +++ b/pkgs/applications/audio/mopidy/podcast.nix @@ -0,0 +1,31 @@ +{ lib, python3Packages, mopidy }: + +python3Packages.buildPythonApplication rec { + pname = "mopidy-podcast"; + version = "3.0.0"; + + src = python3Packages.fetchPypi { + inherit version; + pname = "Mopidy-Podcast"; + sha256 = "1z2b523yvdpcf8p7m7kczrvaw045lmxzhq4qj00dflxa2yw61qxr"; + }; + + propagatedBuildInputs = [ + mopidy + python3Packages.cachetools + python3Packages.uritools + ]; + + checkInputs = with python3Packages; [ + pytestCheckHook + ]; + + meta = with lib; { + homepage = "https://github.com/tkem/mopidy-podcast"; + description = "Mopidy extension for browsing and playing podcasts"; + license = licenses.asl20; + maintainers = [ + maintainers.daneads + ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index cd038c72939..56d9b452f35 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -24705,6 +24705,7 @@ in mopidy-mpd mopidy-mpris mopidy-musicbox-webclient + mopidy-podcast mopidy-scrobbler mopidy-somafm mopidy-soundcloud From e3763e4799d074411c7a6a20d7a7c3d51d876147 Mon Sep 17 00:00:00 2001 From: Ethan Edwards Date: Sun, 2 May 2021 10:33:41 -0400 Subject: [PATCH 256/339] piston-cli: 1.2.2 -> 1.3.0 (#121448) --- pkgs/tools/misc/piston-cli/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/misc/piston-cli/default.nix b/pkgs/tools/misc/piston-cli/default.nix index 73e3ca8d689..97506c709df 100644 --- a/pkgs/tools/misc/piston-cli/default.nix +++ b/pkgs/tools/misc/piston-cli/default.nix @@ -2,11 +2,11 @@ python3Packages.buildPythonApplication rec { pname = "piston-cli"; - version = "1.2.2"; + version = "1.3.0"; src = python3Packages.fetchPypi { inherit pname version; - sha256 = "hhOistr5lHF6rIuMpudKwSuBQhaQDzTdelAOCjyVQZk="; + sha256 = "XzKXHZHYZRT3t4ZonM+Ngx1jIT1nmz4k34VSw29GFoM="; }; propagatedBuildInputs = with python3Packages; [ rich prompt_toolkit requests pygments ]; From 1b10b0d57979cc289c69301d754838a1c8562f43 Mon Sep 17 00:00:00 2001 From: Atemu Date: Sun, 2 May 2021 16:18:43 +0200 Subject: [PATCH 257/339] kernel: clarify license --- pkgs/os-specific/linux/kernel/manual-config.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/os-specific/linux/kernel/manual-config.nix b/pkgs/os-specific/linux/kernel/manual-config.nix index e45b21ff35f..f874762267a 100644 --- a/pkgs/os-specific/linux/kernel/manual-config.nix +++ b/pkgs/os-specific/linux/kernel/manual-config.nix @@ -285,7 +285,7 @@ let " (with patches: " + lib.concatStringsSep ", " (map (x: x.name) kernelPatches) + ")"); - license = lib.licenses.gpl2; + license = lib.licenses.gpl2Only; homepage = "https://www.kernel.org/"; repositories.git = "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git"; maintainers = [ From 8142fd653fe425760afa82f468451c95768aeb1f Mon Sep 17 00:00:00 2001 From: Luke Granger-Brown Date: Sun, 2 May 2021 15:49:37 +0100 Subject: [PATCH 258/339] tela-icon-theme: format slightly differently This change is intended to cause the package hash to change, to work around a bug in Hydra that's causing the nixos-unstable channel advancement to fail (due to an invalid .ls file). --- pkgs/data/icons/tela-icon-theme/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/data/icons/tela-icon-theme/default.nix b/pkgs/data/icons/tela-icon-theme/default.nix index 7bbad945206..23e56e6107c 100644 --- a/pkgs/data/icons/tela-icon-theme/default.nix +++ b/pkgs/data/icons/tela-icon-theme/default.nix @@ -19,10 +19,12 @@ stdenv.mkDerivation rec { installPhase = '' runHook preInstall + patchShebangs install.sh mkdir -p $out/share/icons ./install.sh -a -d $out/share/icons jdupes -l -r $out/share/icons + runHook postInstall ''; From 4b5ab919049fa05a96fdc47d4cb69b4209adcaf9 Mon Sep 17 00:00:00 2001 From: fortuneteller2k Date: Sun, 2 May 2021 23:37:24 +0800 Subject: [PATCH 259/339] xcolor: init at unstable-2021-02-02 --- pkgs/tools/graphics/xcolor/default.nix | 26 ++++++++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ 2 files changed, 28 insertions(+) create mode 100644 pkgs/tools/graphics/xcolor/default.nix diff --git a/pkgs/tools/graphics/xcolor/default.nix b/pkgs/tools/graphics/xcolor/default.nix new file mode 100644 index 00000000000..f19a80357f3 --- /dev/null +++ b/pkgs/tools/graphics/xcolor/default.nix @@ -0,0 +1,26 @@ +{ lib, rustPlatform, fetchFromGitHub, pkg-config, libX11, libXcursor, libxcb, python3 }: + +rustPlatform.buildRustPackage rec { + pname = "xcolor"; + version = "unstable-2021-02-02"; + + src = fetchFromGitHub { + owner = "Soft"; + repo = pname; + rev = "0e99e67cd37000bf563aa1e89faae796ec25f163"; + sha256 = "sha256-rHqK05dN5lrvDNbRCWGghI7KJwWzNCuRDEThEeMzmio="; + }; + + cargoSha256 = "sha256-lHOT/P1Sh1b53EkPIQM3l9Tozdqh60qlUDdjthj32jM="; + + nativeBuildInputs = [ pkg-config python3 ]; + + buildInputs = [ libX11 libXcursor libxcb ]; + + meta = with lib; { + description = "Lightweight color picker for X11"; + homepage = "https://github.com/Soft/xcolor"; + maintainers = with lib.maintainers; [ fortuneteller2k ]; + license = licenses.mit; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 9d370bd80f8..a0d0d12d35b 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -31252,5 +31252,7 @@ in lc3tools = callPackage ../development/tools/lc3tools {}; + xcolor = callPackage ../tools/graphics/xcolor { }; + zktree = callPackage ../applications/misc/zktree {}; } From 13cadfac151df84dc61b1062b2ec648b0ca29af6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Forsman?= Date: Sun, 2 May 2021 10:00:29 +0200 Subject: [PATCH 260/339] zoom-us: fix overriding source Without this using .overrideAttrs to change the source still uses the old source. --- .../networking/instant-messengers/zoom-us/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/applications/networking/instant-messengers/zoom-us/default.nix b/pkgs/applications/networking/instant-messengers/zoom-us/default.nix index fd15e77c8be..96254253712 100644 --- a/pkgs/applications/networking/instant-messengers/zoom-us/default.nix +++ b/pkgs/applications/networking/instant-messengers/zoom-us/default.nix @@ -79,7 +79,7 @@ in stdenv.mkDerivation rec { installPhase = '' runHook preInstall mkdir $out - tar -C $out -xf ${src} + tar -C $out -xf $src mv $out/usr/* $out/ runHook postInstall ''; From 7985d9e4ac13831c458efe99f1ca07c7feb7a164 Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Thu, 11 Mar 2021 01:20:41 +0000 Subject: [PATCH 261/339] lego: 4.2.0 -> 4.3.1 https://github.com/go-acme/lego/releases/tag/v4.3.0 https://github.com/go-acme/lego/releases/tag/v4.3.1 --- pkgs/tools/admin/lego/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/tools/admin/lego/default.nix b/pkgs/tools/admin/lego/default.nix index a825908484c..4553242d663 100644 --- a/pkgs/tools/admin/lego/default.nix +++ b/pkgs/tools/admin/lego/default.nix @@ -2,16 +2,16 @@ buildGoModule rec { pname = "lego"; - version = "4.2.0"; + version = "4.3.1"; src = fetchFromGitHub { owner = "go-acme"; repo = pname; rev = "v${version}"; - sha256 = "sha256-S9I6b9+FngX0/W5t3EHG+H1ULsZKoQw1/S4HnSITYG0="; + sha256 = "0mmr7fcqgbmr0b1fc49p6wjn7axxayyj420fxhhdvkd4nv8fxh1q"; }; - vendorSha256 = "sha256-dVGSMPhAvN/kWgv3XHS+lOZdcbDNL44ELkv7fHAJWlI="; + vendorSha256 = "04d141kjzqcjiwv6sd0sbrgsr7a99dvblm19gwzczljkfgi60q8w"; doCheck = false; From a6119065449ecb5e8083d51e64d970713c5e9cc1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Romildo=20Malaquias?= Date: Sat, 1 May 2021 10:00:50 -0300 Subject: [PATCH 262/339] xfce: add release note about dropping lighter gvfs package --- nixos/doc/manual/release-notes/rl-2105.xml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/nixos/doc/manual/release-notes/rl-2105.xml b/nixos/doc/manual/release-notes/rl-2105.xml index b45c19fa9af..a7341491882 100644 --- a/nixos/doc/manual/release-notes/rl-2105.xml +++ b/nixos/doc/manual/release-notes/rl-2105.xml @@ -984,6 +984,24 @@ environment.systemPackages = [ PostgreSQL 9.5 is scheduled EOL during the 21.05 life cycle and has been removed. + + + Xfce4 relies on + GIO/GVfs for userspace virtual filesystem access in applications + like thunar and + gigolo. + For that to work, the gvfs nixos service is enabled by default, + and it can be configured with the specific package that provides + GVfs. Until now Xfce4 was setting it to use a lighter version of + GVfs (without support for samba). To avoid conflicts with other + desktop environments this setting has been dropped. Users that + still want it should add the following to their system + configuration: + + = pkgs.gvfs.override { samba = null; }; + + + From 501956b985e6be807fa2208dd587022c22973784 Mon Sep 17 00:00:00 2001 From: Michael Weiss Date: Sun, 2 May 2021 19:06:59 +0200 Subject: [PATCH 263/339] glances: 3.1.6.2 -> 3.1.7 --- pkgs/applications/system/glances/default.nix | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/pkgs/applications/system/glances/default.nix b/pkgs/applications/system/glances/default.nix index e41d9bee5b4..c142ba12bc2 100644 --- a/pkgs/applications/system/glances/default.nix +++ b/pkgs/applications/system/glances/default.nix @@ -9,14 +9,14 @@ buildPythonApplication rec { pname = "glances"; - version = "3.1.6.2"; + version = "3.1.7"; disabled = isPyPy; src = fetchFromGitHub { owner = "nicolargo"; repo = "glances"; rev = "v${version}"; - sha256 = "sha256-6vxJKIwMKz8KQn10aOzqXhVBDfBLylw925hR1hWP7/A="; + sha256 = "sha256-82ZD32dqRYGbGM/uyaJ5VqVZbhDZthiEcTihkV43JOU="; }; # Some tests fail in the sandbox (they e.g. require access to /sys/class/power_supply): @@ -45,15 +45,11 @@ buildPythonApplication rec { py-cpuinfo ] ++ lib.optional stdenv.isLinux hddtemp; - preConfigure = '' - sed -i 's/data_files\.append((conf_path/data_files.append(("etc\/glances"/' setup.py; - ''; - meta = with lib; { homepage = "https://nicolargo.github.io/glances/"; description = "Cross-platform curses-based monitoring tool"; changelog = "https://github.com/nicolargo/glances/releases/tag/v${version}"; - license = licenses.lgpl3; + license = licenses.lgpl3Only; maintainers = with maintainers; [ jonringer primeos koral ]; }; } From 7b3df912364d5434fc5f2eb1318749042013743e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=BCtz?= Date: Sun, 2 May 2021 20:22:58 +0200 Subject: [PATCH 264/339] libadwaita: init at unstable-2021-05-01 --- .../libraries/libadwaita/default.nix | 67 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 2 files changed, 69 insertions(+) create mode 100644 pkgs/development/libraries/libadwaita/default.nix diff --git a/pkgs/development/libraries/libadwaita/default.nix b/pkgs/development/libraries/libadwaita/default.nix new file mode 100644 index 00000000000..92ea7076821 --- /dev/null +++ b/pkgs/development/libraries/libadwaita/default.nix @@ -0,0 +1,67 @@ +{ lib +, stdenv +, fetchFromGitLab +, docbook_xsl +, gtk-doc +, meson +, ninja +, pkg-config +, sassc +, vala +, gobject-introspection +, gtk4 +, xvfb_run +}: + +stdenv.mkDerivation rec { + pname = "libadwaita"; + version = "unstable-2021-05-01"; + + outputs = [ "out" "dev" "devdoc" ]; + outputBin = [ "dev" ]; + + src = fetchFromGitLab { + domain = "gitlab.gnome.org"; + owner = "GNOME"; + repo = "libadwaita"; + rev = "8d66b987a19979d9d7b85dacc6bad5ce0c8743fe"; + sha256 = "0i3wav6jsyi4w4i2r1rad769m5y5s9djj4zqb7dfyh0bad24ba3q"; + }; + + nativeBuildInputs = [ + docbook_xsl + gtk-doc + meson + ninja + pkg-config + sassc + vala + ]; + + mesonFlags = [ + "-Dgtk_doc=true" + ]; + + buildInputs = [ + gobject-introspection + gtk4 + ]; + + checkInputs = [ + xvfb_run + ]; + + doCheck = true; + + checkPhase = '' + xvfb-run meson test + ''; + + meta = with lib; { + description = "Library to help with developing UI for mobile devices using GTK/GNOME"; + homepage = "https://gitlab.gnome.org/GNOME/libadwaita"; + license = licenses.lgpl21Plus; + maintainers = with maintainers; [ dotlambda ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 2d6636416ee..692b02f386f 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -15239,6 +15239,8 @@ in libacr38u = callPackage ../tools/security/libacr38u { }; + libadwaita = callPackage ../development/libraries/libadwaita { }; + libaec = callPackage ../development/libraries/libaec { }; libagar = callPackage ../development/libraries/libagar { }; From 2ffe681e668795f778fe8d76a401bbf58020f163 Mon Sep 17 00:00:00 2001 From: Leo Gaskin Date: Sun, 2 May 2021 21:50:09 +0200 Subject: [PATCH 265/339] texlive: 2020 -> 2021 --- pkgs/tools/typesetting/tex/texlive/bin.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/tools/typesetting/tex/texlive/bin.nix b/pkgs/tools/typesetting/tex/texlive/bin.nix index fb9b748b5d0..f6395c303c7 100644 --- a/pkgs/tools/typesetting/tex/texlive/bin.nix +++ b/pkgs/tools/typesetting/tex/texlive/bin.nix @@ -14,16 +14,16 @@ let withSystemLibs = map (libname: "--with-system-${libname}"); - year = "2020"; + year = "2021"; version = year; # keep names simple for now common = { src = fetchurl { urls = [ - "http://ftp.math.utah.edu/pub/tex/historic/systems/texlive/${year}/texlive-${year}0406-source.tar.xz" - "ftp://tug.ctan.org/pub/tex/historic/systems/texlive/${year}/texlive-${year}0406-source.tar.xz" + "http://ftp.math.utah.edu/pub/tex/historic/systems/texlive/${year}/texlive-${year}0325-source.tar.xz" + "ftp://tug.ctan.org/pub/tex/historic/systems/texlive/${year}/texlive-${year}0325-source.tar.xz" ]; - sha256 = "0y4h4j2qg714srhvf1hvn165w7sanr1j2vzrsgc23kxvrc43sbz3"; + sha256 = "0jsq1p66l46k2qq0gbqmx25flj2nprsz4wrd1ybn286p11kdkvvs"; }; prePatch = '' From 7bf9a3b2505af37213753b062dd594b91ee513bb Mon Sep 17 00:00:00 2001 From: Leo Gaskin Date: Sun, 2 May 2021 21:52:24 +0200 Subject: [PATCH 266/339] texlive.bin: fix for replacement of poppler with pplib TeXLive no longer depends on or supports poppler, instead using the homegrown pplib library. --- pkgs/tools/typesetting/tex/texlive/bin.nix | 13 +++++-------- pkgs/tools/typesetting/tex/texlive/default.nix | 3 +-- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/pkgs/tools/typesetting/tex/texlive/bin.nix b/pkgs/tools/typesetting/tex/texlive/bin.nix index f6395c303c7..022214e3fe7 100644 --- a/pkgs/tools/typesetting/tex/texlive/bin.nix +++ b/pkgs/tools/typesetting/tex/texlive/bin.nix @@ -3,7 +3,7 @@ , zlib, libiconv, libpng, libX11 , freetype, gd, libXaw, icu, ghostscript, libXpm, libXmu, libXext , perl, perlPackages, python3Packages, pkg-config -, poppler, libpaper, graphite2, zziplib, harfbuzz, potrace, gmp, mpfr +, libpaper, graphite2, zziplib, harfbuzz, potrace, gmp, mpfr , brotli, cairo, pixman, xorg, clisp, biber, woff2, xxHash , makeWrapper, shortenPerlShebang }: @@ -30,8 +30,6 @@ let for i in texk/kpathsea/mktex*; do sed -i '/^mydir=/d' "$i" done - cp -pv texk/web2c/pdftexdir/pdftoepdf{-poppler0.86.0,}.cc - cp -pv texk/web2c/pdftexdir/pdftosrc{-poppler0.83.0,}.cc ''; configureFlags = [ @@ -43,9 +41,8 @@ let ] ++ withSystemLibs [ # see "from TL tree" vs. "Using installed" in configure output - "zziplib" "xpdf" "poppler" "mpfr" "gmp" + "zziplib" "xpdf" "mpfr" "gmp" "pixman" "potrace" "gd" "freetype2" "libpng" "libpaper" "zlib" - # beware: xpdf means to use stuff from poppler :-/ ]; # clean broken links to stuff not built @@ -73,7 +70,7 @@ core = stdenv.mkDerivation rec { nativeBuildInputs = [ pkg-config ]; buildInputs = [ - /*teckit*/ zziplib poppler mpfr gmp + /*teckit*/ zziplib mpfr gmp pixman gd freetype libpng libpaper zlib perl ]; @@ -82,7 +79,7 @@ core = stdenv.mkDerivation rec { preConfigure = '' rm -r libs/{cairo,freetype2,gd,gmp,graphite2,harfbuzz,icu,libpaper,libpng} \ - libs/{lua53,luajit,mpfr,pixman,poppler,xpdf,zlib,zziplib} + libs/{lua53,luajit,mpfr,pixman,zlib,zziplib} mkdir WorkDir cd WorkDir ''; @@ -178,7 +175,7 @@ core-big = stdenv.mkDerivation { #TODO: upmendex luajit = lib.optionalString withLuaJIT ",luajit"; in '' mkdir ./WorkDir && cd ./WorkDir - for path in libs/{teckit,lua53${luajit}} texk/web2c; do + for path in libs/{pplib,teckit,lua53${luajit}} texk/web2c; do ( if [[ "$path" =~ "libs/lua" ]]; then extraConfig="--enable-static --disable-shared" diff --git a/pkgs/tools/typesetting/tex/texlive/default.nix b/pkgs/tools/typesetting/tex/texlive/default.nix index 52521a80809..4ba42cbce57 100644 --- a/pkgs/tools/typesetting/tex/texlive/default.nix +++ b/pkgs/tools/typesetting/tex/texlive/default.nix @@ -3,7 +3,7 @@ - current html: https://nixos.org/nixpkgs/manual/#sec-language-texlive */ { stdenv, lib, fetchurl, runCommand, writeText, buildEnv -, callPackage, ghostscriptX, harfbuzz, poppler_min +, callPackage, ghostscriptX, harfbuzz , makeWrapper, python3, ruby, perl , useFixedHashes ? true , recurseIntoAttrs @@ -11,7 +11,6 @@ let # various binaries (compiled) bin = callPackage ./bin.nix { - poppler = poppler_min; # otherwise depend on various X stuff ghostscript = ghostscriptX; harfbuzz = harfbuzz.override { withIcu = true; withGraphite2 = true; From dbc6e67bb3790949fb8394ad36fd946b34beceb9 Mon Sep 17 00:00:00 2001 From: Leo Gaskin Date: Sun, 2 May 2021 22:00:20 +0200 Subject: [PATCH 267/339] texlive.bin: Use xpdf provided by TeXLive This is done because the xpdf provided by Nixpkgs is marked as insecure. Granted, the version provided by TeXLive also has these vulnerabilities, but it might be okay to treat them as irrelevant in the context of TeX. --- pkgs/tools/typesetting/tex/texlive/bin.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/tools/typesetting/tex/texlive/bin.nix b/pkgs/tools/typesetting/tex/texlive/bin.nix index 022214e3fe7..0c496318e48 100644 --- a/pkgs/tools/typesetting/tex/texlive/bin.nix +++ b/pkgs/tools/typesetting/tex/texlive/bin.nix @@ -41,7 +41,7 @@ let ] ++ withSystemLibs [ # see "from TL tree" vs. "Using installed" in configure output - "zziplib" "xpdf" "mpfr" "gmp" + "zziplib" "mpfr" "gmp" "pixman" "potrace" "gd" "freetype2" "libpng" "libpaper" "zlib" ]; From f4ec650cdea7cb398de5fb654096590763c21bdc Mon Sep 17 00:00:00 2001 From: Leo Gaskin Date: Sun, 2 May 2021 22:03:02 +0200 Subject: [PATCH 268/339] texlive.bin.dvisvgm: Use version provided by TeXLive The dvisvgm version provided by TeXLive now includes the fixes mentioned in the attached issue and thus can be used again instead of relying on upstream sources. --- pkgs/tools/typesetting/tex/texlive/bin.nix | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/pkgs/tools/typesetting/tex/texlive/bin.nix b/pkgs/tools/typesetting/tex/texlive/bin.nix index 0c496318e48..1c3d5929636 100644 --- a/pkgs/tools/typesetting/tex/texlive/bin.nix +++ b/pkgs/tools/typesetting/tex/texlive/bin.nix @@ -244,18 +244,17 @@ chktex = stdenv.mkDerivation { dvisvgm = stdenv.mkDerivation rec { pname = "texlive-dvisvgm.bin"; - version = "2.11"; - # TODO: dvisvgm was switched to build from upstream sources - # to address https://github.com/NixOS/nixpkgs/issues/104847 - # We might want to consider reverting that change in the future. + inherit version; - src = fetchurl { - url = "https://github.com/mgieseki/dvisvgm/releases/download/${version}/dvisvgm-${version}.tar.gz"; - sha256 = "12b6h0h8rc487yjh3sq9zsdabm9cs2vqcrb0znnfi8277f87zf3j"; - }; + inherit (common) src; + + preConfigure = "cd texk/dvisvgm"; + + configureFlags = common.configureFlags + ++ [ "--with-system-kpathsea" ]; nativeBuildInputs = [ pkg-config ]; - buildInputs = [ core/*kpathsea*/ brotli ghostscript zlib freetype woff2 potrace xxHash ]; + buildInputs = [ core brotli ghostscript zlib freetype woff2 potrace xxHash ]; enableParallelBuilding = true; }; From 6f55db13eb745068766ac34f843590d39701735e Mon Sep 17 00:00:00 2001 From: Luke Granger-Brown Date: Sun, 2 May 2021 20:17:14 +0000 Subject: [PATCH 269/339] tela-icon-theme: skip patchelf and symlink rewrite steps * We don't have any ELFs to patch. * Scanning all the symlinks is slow, and jdupes already makes them relative anyway. --- pkgs/data/icons/tela-icon-theme/default.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkgs/data/icons/tela-icon-theme/default.nix b/pkgs/data/icons/tela-icon-theme/default.nix index 23e56e6107c..c3bed509ed9 100644 --- a/pkgs/data/icons/tela-icon-theme/default.nix +++ b/pkgs/data/icons/tela-icon-theme/default.nix @@ -17,6 +17,10 @@ stdenv.mkDerivation rec { dontDropIconThemeCache = true; + # These fixup steps are slow and unnecessary. + dontPatchELF = true; + dontRewriteSymlinks = true; + installPhase = '' runHook preInstall From a494e0ce56bb476ecea69c85ccdf1f6a5ccc6a92 Mon Sep 17 00:00:00 2001 From: Luke Granger-Brown Date: Sun, 2 May 2021 20:17:59 +0000 Subject: [PATCH 270/339] tela-icon-theme: switch to gpl3Only Since the license isn't documented anywhere other than COPYING, it must be assumed that the intent was to license only under the included license, without any extra clauses such as the "(at your option) any later version" clause. --- pkgs/data/icons/tela-icon-theme/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/data/icons/tela-icon-theme/default.nix b/pkgs/data/icons/tela-icon-theme/default.nix index c3bed509ed9..557ea99b34f 100644 --- a/pkgs/data/icons/tela-icon-theme/default.nix +++ b/pkgs/data/icons/tela-icon-theme/default.nix @@ -35,7 +35,7 @@ stdenv.mkDerivation rec { meta = with lib; { description = "A flat colorful Design icon theme"; homepage = "https://github.com/vinceliuice/tela-icon-theme"; - license = licenses.gpl3Plus; + license = licenses.gpl3Only; platforms = platforms.unix; maintainers = with maintainers; [ figsoda ]; }; From 134c68a411fb8b52cf761ee799d5b242c9b87e18 Mon Sep 17 00:00:00 2001 From: Luke Granger-Brown Date: Sun, 2 May 2021 20:18:48 +0000 Subject: [PATCH 271/339] tela-icon-theme: use stdenvNoCC This doesn't use any of the compilers tools, so it may as well use the compilerless version of the stdenv. --- pkgs/data/icons/tela-icon-theme/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/data/icons/tela-icon-theme/default.nix b/pkgs/data/icons/tela-icon-theme/default.nix index 557ea99b34f..aaf32fdf16d 100644 --- a/pkgs/data/icons/tela-icon-theme/default.nix +++ b/pkgs/data/icons/tela-icon-theme/default.nix @@ -1,6 +1,6 @@ -{ fetchFromGitHub, gtk3, hicolor-icon-theme, jdupes, lib, stdenv }: +{ fetchFromGitHub, gtk3, hicolor-icon-theme, jdupes, lib, stdenvNoCC }: -stdenv.mkDerivation rec { +stdenvNoCC.mkDerivation rec { pname = "tela-icon-theme"; version = "2021-01-21"; From 6c022654f6925c94fc11294fa6e11a9f5d148697 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Sun, 2 May 2021 21:33:48 +0200 Subject: [PATCH 272/339] python3Packages.csvw: 1.10.1 -> 1.10.2 --- pkgs/development/python-modules/csvw/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/csvw/default.nix b/pkgs/development/python-modules/csvw/default.nix index e4bd7ab2b62..cf388409c57 100644 --- a/pkgs/development/python-modules/csvw/default.nix +++ b/pkgs/development/python-modules/csvw/default.nix @@ -14,14 +14,14 @@ buildPythonPackage rec { pname = "csvw"; - version = "1.10.1"; + version = "1.10.2"; disabled = isPy27; src = fetchFromGitHub { owner = "cldf"; repo = "csvw"; rev = "v${version}"; - sha256 = "1764nfa4frjdd7v6wj35y7prnciaqz57wwygy5zfavl4laxn4nxd"; + sha256 = "0z0qxlsfxwz1qapxb4d0mz3wkj99d7zi9yrg1cbd2xp7giagb6d4"; }; patchPhase = '' From 73a0b6c8262314a1d5d5bf3a68b634a85ab07e98 Mon Sep 17 00:00:00 2001 From: Jonathan Ringer Date: Wed, 7 Apr 2021 22:16:30 -0700 Subject: [PATCH 273/339] buildFHSUserEnvBubblewrap: add dieWithParent option, and /etc/nix Allows for processes which fork to not be immediately killed when the parent process dies. --- .../build-fhs-userenv-bubblewrap/default.nix | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/pkgs/build-support/build-fhs-userenv-bubblewrap/default.nix b/pkgs/build-support/build-fhs-userenv-bubblewrap/default.nix index 1911d08d2a1..868686bd5c0 100644 --- a/pkgs/build-support/build-fhs-userenv-bubblewrap/default.nix +++ b/pkgs/build-support/build-fhs-userenv-bubblewrap/default.nix @@ -14,6 +14,7 @@ args @ { , unshareNet ? false , unshareUts ? true , unshareCgroup ? true +, dieWithParent ? true , ... }: @@ -22,7 +23,7 @@ let buildFHSEnv = callPackage ./env.nix { }; env = buildFHSEnv (removeAttrs args [ - "runScript" "extraInstallCommands" "meta" "passthru" + "runScript" "extraInstallCommands" "meta" "passthru" "dieWithParent" "unshareUser" "unshareCgroup" "unshareUts" "unshareNet" "unsharePid" "unshareIpc" ]); @@ -30,6 +31,13 @@ let files = [ # NixOS Compatibility "static" + "nix" # mainly for nixUnstable users, but also for access to nix/netrc + # Shells + "bashrc" + "zshenv" + "zshrc" + "zinputrc" + "zprofile" # Users, Groups, NSS "passwd" "group" @@ -136,7 +144,7 @@ let ${lib.optionalString unshareNet "--unshare-net"} ${lib.optionalString unshareUts "--unshare-uts"} ${lib.optionalString unshareCgroup "--unshare-cgroup"} - --die-with-parent + ${lib.optionalString dieWithParent "--die-with-parent"} --ro-bind /nix /nix # Our glibc will look for the cache in its own path in `/nix/store`. # As such, we need a cache to exist there, because pressure-vessel From 9bd292c9291abf6ca53980f9316d55c83d5753b4 Mon Sep 17 00:00:00 2001 From: Jonathan Ringer Date: Thu, 8 Apr 2021 00:05:37 -0700 Subject: [PATCH 274/339] vscod{e,ium}: Add fhs passthru --- pkgs/applications/editors/vscode/generic.nix | 65 ++++++++++++++++++-- 1 file changed, 61 insertions(+), 4 deletions(-) diff --git a/pkgs/applications/editors/vscode/generic.nix b/pkgs/applications/editors/vscode/generic.nix index 060078cd57b..f47e31a32e7 100644 --- a/pkgs/applications/editors/vscode/generic.nix +++ b/pkgs/applications/editors/vscode/generic.nix @@ -1,7 +1,8 @@ { stdenv, lib, makeDesktopItem , unzip, libsecret, libXScrnSaver, libxshmfence, wrapGAppsHook , gtk2, atomEnv, at-spi2-atk, autoPatchelfHook -, systemd, fontconfig, libdbusmenu +, systemd, fontconfig, libdbusmenu, buildFHSUserEnvBubblewrap +, writeShellScriptBin # Populate passthru.tests , tests @@ -13,13 +14,14 @@ let inherit (stdenv.hostPlatform) system; -in - stdenv.mkDerivation { + unwrapped = stdenv.mkDerivation { inherit pname version src sourceRoot; passthru = { inherit executableName tests; + fhs = fhs {}; + fhsWithPackages = f: fhs { additionalPkgs = f; }; }; desktopItem = makeDesktopItem { @@ -97,4 +99,59 @@ in ''; inherit meta; - } + }; + + # Vscode and variants allow for users to download and use extensions + # which often include the usage of pre-built binaries. + # This has been an on-going painpoint for many users, as + # a full extension update cycle has to be done through nixpkgs + # in order to create or update extensions. + # See: #83288 #91179 #73810 #41189 + # + # buildFHSUserEnv allows for users to use the existing vscode + # extension tooling without significant pain. + fhs = { additionalPkgs ? pkgs: [] }: buildFHSUserEnvBubblewrap { + # also determines the name of the wrapped command + name = executableName; + + # additional libraries which are commonly needed for extensions + targetPkgs = pkgs: (with pkgs; [ + # ld-linux-x86-64-linux.so.2 and others + glibc + + # dotnet + curl + icu + libunwind + libuuid + openssl + zlib + + # mono + krb5 + ]) ++ additionalPkgs pkgs; + + # restore desktop item icons + extraInstallCommands = '' + mkdir -p $out/share/applications + for item in ${unwrapped}/share/applications/*.desktop; do + ln -s $item $out/share/applications/ + done + ''; + + runScript = "${unwrapped}/bin/${executableName}"; + + # vscode likes to kill the parent so that the + # gui application isn't attached to the terminal session + dieWithParent = false; + + passthru = { + inherit executableName; + inherit (unwrapped) pname version; # for home-manager module + }; + + inherit meta; + }; +in + unwrapped + From a060b84b3276420abffe2ac4699d4fef66905aad Mon Sep 17 00:00:00 2001 From: Jonathan Ringer Date: Sat, 24 Apr 2021 12:42:38 -0700 Subject: [PATCH 275/339] vscod{e,ium}-fhs: add top-level aliases, add description --- pkgs/applications/editors/vscode/generic.nix | 7 ++++++- pkgs/top-level/all-packages.nix | 4 ++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/pkgs/applications/editors/vscode/generic.nix b/pkgs/applications/editors/vscode/generic.nix index f47e31a32e7..2d8f639a0c6 100644 --- a/pkgs/applications/editors/vscode/generic.nix +++ b/pkgs/applications/editors/vscode/generic.nix @@ -150,7 +150,12 @@ let inherit (unwrapped) pname version; # for home-manager module }; - inherit meta; + meta = meta // { + description = '' + Wrapped variant of ${pname} which launches in a FHS compatible envrionment. + Should allow for easy usage of extensions without nix-specific modifications. + ''; + }; }; in unwrapped diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 9d370bd80f8..61b5050bc95 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -26744,6 +26744,8 @@ in }; vscode = callPackage ../applications/editors/vscode/vscode.nix { }; + vscode-fhs = vscode.fhs; + vscode-fhsWithPackages = vscode.fhsWithPackages; vscode-with-extensions = callPackage ../applications/editors/vscode/with-extensions.nix {}; @@ -26752,6 +26754,8 @@ in vscode-extensions = recurseIntoAttrs (callPackage ../misc/vscode-extensions {}); vscodium = callPackage ../applications/editors/vscode/vscodium.nix { }; + vscodium-fhs = vscodium.fhs; + vscodium-fhsWithPackages = vscodium.fhsWithPackages; code-server = callPackage ../servers/code-server { inherit (darwin.apple_sdk.frameworks) AppKit Cocoa Security; From f5e695bf3ac63a5a3b2d2cf4f2427e232534915a Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Sun, 2 May 2021 13:39:45 -0700 Subject: [PATCH 276/339] kubelogin-oidc: 1.23.0 -> 1.23.1 (#121440) --- .../networking/cluster/kubelogin-oidc/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/networking/cluster/kubelogin-oidc/default.nix b/pkgs/applications/networking/cluster/kubelogin-oidc/default.nix index 7cbe5558533..a51230d5ff4 100644 --- a/pkgs/applications/networking/cluster/kubelogin-oidc/default.nix +++ b/pkgs/applications/networking/cluster/kubelogin-oidc/default.nix @@ -2,18 +2,18 @@ buildGoModule rec { pname = "kubelogin"; - version = "1.23.0"; + version = "1.23.1"; src = fetchFromGitHub { owner = "int128"; repo = pname; rev = "v${version}"; - sha256 = "0n94nx17c6ln2nd6d9yr93vc251y1xphq1wj2vzs4j2l8dqfyjpn"; + sha256 = "sha256-YK/QGx6QzSeyeZ61KgdYO3POJQFK1F6yJayd2gcRWS4="; }; subPackages = ["."]; - vendorSha256 = "1dvrk6z6k66wawgb50n8hbgdd8fly399mlbgnvxi671vfi7lkz09"; + vendorSha256 = "sha256-tnjgs8Ziqdo1ciVOWtL0D8puv2SZGqSHgo2SV7N8F0M="; # Rename the binary instead of symlinking to avoid conflict with the # Azure version of kubelogin From d942d4473d1165cf9d8a1171bbad154f77239ba0 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Sat, 1 May 2021 02:29:59 +0200 Subject: [PATCH 277/339] neovim, neovimUtils, neovim-qt: drop python2 support In 2a00e53bd pynvim support for python2 was disabled, this broke the neovim build. I really think it is time to let go of python2 support in neovim. --- nixos/doc/manual/release-notes/rl-2105.xml | 2 +- pkgs/applications/editors/neovim/default.nix | 4 ++-- .../applications/editors/neovim/neovim-qt.nix | 4 ++-- .../editors/neovim/neovim-remote.nix | 23 +++++++++++++++---- pkgs/applications/editors/neovim/qt.nix | 3 +-- pkgs/applications/editors/neovim/utils.nix | 17 ++++---------- pkgs/applications/editors/neovim/wrapper.nix | 8 +++---- pkgs/top-level/all-packages.nix | 2 +- 8 files changed, 34 insertions(+), 29 deletions(-) diff --git a/nixos/doc/manual/release-notes/rl-2105.xml b/nixos/doc/manual/release-notes/rl-2105.xml index b45c19fa9af..0fe0b28cd91 100644 --- a/nixos/doc/manual/release-notes/rl-2105.xml +++ b/nixos/doc/manual/release-notes/rl-2105.xml @@ -330,7 +330,7 @@ - vim switched to Python 3, dropping all Python 2 support. + vim and neovim switched to Python 3, dropping all Python 2 support. diff --git a/pkgs/applications/editors/neovim/default.nix b/pkgs/applications/editors/neovim/default.nix index 3e5de3d5fc1..1b4835064f9 100644 --- a/pkgs/applications/editors/neovim/default.nix +++ b/pkgs/applications/editors/neovim/default.nix @@ -6,7 +6,7 @@ # now defaults to false because some tests can be flaky (clipboard etc) , doCheck ? false -, nodejs ? null, fish ? null, python ? null +, nodejs ? null, fish ? null, python3 ? null }: with lib; @@ -19,7 +19,7 @@ let ] )); - pyEnv = python.withPackages(ps: [ ps.pynvim ps.msgpack ]); + pyEnv = python3.withPackages(ps: with ps; [ pynvim msgpack ]); # FIXME: this is verry messy and strange. # see https://github.com/NixOS/nixpkgs/pull/80528 diff --git a/pkgs/applications/editors/neovim/neovim-qt.nix b/pkgs/applications/editors/neovim/neovim-qt.nix index d925ddd2a52..0a4d17d997b 100644 --- a/pkgs/applications/editors/neovim/neovim-qt.nix +++ b/pkgs/applications/editors/neovim/neovim-qt.nix @@ -1,5 +1,5 @@ { lib, mkDerivation, fetchFromGitHub, cmake, doxygen, makeWrapper -, msgpack, neovim, pythonPackages, qtbase }: +, msgpack, neovim, python3Packages, qtbase }: mkDerivation rec { pname = "neovim-qt-unwrapped"; @@ -20,7 +20,7 @@ mkDerivation rec { buildInputs = [ neovim.unwrapped # only used to generate help tags at build time qtbase - ] ++ (with pythonPackages; [ + ] ++ (with python3Packages; [ jinja2 python msgpack ]); diff --git a/pkgs/applications/editors/neovim/neovim-remote.nix b/pkgs/applications/editors/neovim/neovim-remote.nix index 867e2275128..2b1281ae21b 100644 --- a/pkgs/applications/editors/neovim/neovim-remote.nix +++ b/pkgs/applications/editors/neovim/neovim-remote.nix @@ -1,11 +1,14 @@ -{ lib, fetchFromGitHub, pythonPackages }: +{ lib +, fetchFromGitHub +, python3 +, neovim +}: with lib; -pythonPackages.buildPythonApplication rec { +with python3.pkgs; buildPythonApplication rec { pname = "neovim-remote"; version = "2.4.0"; - disabled = !pythonPackages.isPy3k; src = fetchFromGitHub { owner = "mhinz"; @@ -14,12 +17,24 @@ pythonPackages.buildPythonApplication rec { sha256 = "0jlw0qksak4bdzddpsj74pm2f2bgpj3cwrlspdjjy0j9qzg0mpl9"; }; - propagatedBuildInputs = with pythonPackages; [ + propagatedBuildInputs = [ pynvim psutil setuptools ]; + checkInputs = [ + neovim + pytestCheckHook + ]; + + disabledTests = [ + # these tests get stuck and never return + "test_escape_filenames_properly" + "test_escape_single_quotes_in_filenames" + "test_escape_double_quotes_in_filenames" + ]; + meta = { description = "A tool that helps controlling nvim processes from a terminal"; homepage = "https://github.com/mhinz/neovim-remote/"; diff --git a/pkgs/applications/editors/neovim/qt.nix b/pkgs/applications/editors/neovim/qt.nix index 5210b6b67c8..1da7e7e966e 100644 --- a/pkgs/applications/editors/neovim/qt.nix +++ b/pkgs/applications/editors/neovim/qt.nix @@ -1,5 +1,4 @@ -{ lib, stdenv, mkDerivation, fetchFromGitHub, cmake, doxygen, makeWrapper -, msgpack, neovim, pythonPackages, qtbase, neovim-qt-unwrapped }: +{ stdenv, makeWrapper, neovim, neovim-qt-unwrapped }: let unwrapped = neovim-qt-unwrapped; diff --git a/pkgs/applications/editors/neovim/utils.nix b/pkgs/applications/editors/neovim/utils.nix index d992ccd3f6a..6d04fa6851a 100644 --- a/pkgs/applications/editors/neovim/utils.nix +++ b/pkgs/applications/editors/neovim/utils.nix @@ -4,7 +4,6 @@ , neovim-unwrapped , bundlerEnv , ruby -, pythonPackages , python3Packages , writeText , wrapNeovimUnstable @@ -48,12 +47,6 @@ let requiredPlugins = vimUtils.requiredPlugins configure; getDeps = attrname: map (plugin: plugin.${attrname} or (_: [ ])); - pluginPython2Packages = getDeps "pythonDependencies" requiredPlugins; - python2Env = pythonPackages.python.withPackages (ps: - [ ps.pynvim ] - ++ (extraPython2Packages ps) - ++ (lib.concatMap (f: f ps) pluginPython2Packages)); - pluginPython3Packages = getDeps "python3Dependencies" requiredPlugins; python3Env = python3Packages.python.withPackages (ps: [ ps.pynvim ] @@ -69,7 +62,6 @@ let # While the latter tells nvim that this provider is not available hostprog_check_table = { node = withNodeJs; - python = withPython2; python3 = withPython3; ruby = withRuby; }; @@ -99,11 +91,12 @@ let manifestRc = vimUtils.vimrcContent (configure // { customRC = ""; }); neovimRcContent = vimUtils.vimrcContent configure; in + assert withPython2 -> throw "Python2 support has been removed from neovim, please remove withPython2 and extraPython2Packages."; + args // { wrapperArgs = makeWrapperArgs; inherit neovimRcContent; inherit manifestRc; - inherit python2Env; inherit python3Env; inherit withNodeJs; } // lib.optionalAttrs withRuby { @@ -120,7 +113,7 @@ let # to keep backwards compatibility legacyWrapper = neovim: { extraMakeWrapperArgs ? "" - , withPython ? true + , withPython ? false /* the function you would have passed to python.withPackages */ , extraPythonPackages ? (_: []) /* the function you would have passed to python.withPackages */ @@ -138,14 +131,14 @@ let else funOrList); res = makeNeovimConfig { - withPython2 = withPython; - extraPythonPackages = compatFun extraPythonPackages; inherit withPython3; extraPython3Packages = compatFun extraPython3Packages; inherit withNodeJs withRuby viAlias vimAlias; inherit configure; }; in + assert withPython -> throw "Python2 support has been removed from neovim, please remove withPython and extraPythonPackages."; + wrapNeovimUnstable neovim (res // { wrapperArgs = lib.escapeShellArgs ( res.wrapperArgs ++ lib.optionals (configure != {}) [ diff --git a/pkgs/applications/editors/neovim/wrapper.nix b/pkgs/applications/editors/neovim/wrapper.nix index 66127980bf6..db30832d239 100644 --- a/pkgs/applications/editors/neovim/wrapper.nix +++ b/pkgs/applications/editors/neovim/wrapper.nix @@ -3,7 +3,6 @@ , bundlerEnv, ruby , nodejs , nodePackages -, pythonPackages , python3Packages }: with lib; @@ -15,7 +14,7 @@ let # should contain all args but the binary wrapperArgs ? "" , manifestRc ? null - , withPython2 ? true, python2Env ? null + , withPython2 ? false , withPython3 ? true, python3Env ? null , withNodeJs ? false , rubyEnv ? null @@ -35,6 +34,8 @@ let [ "${neovim}/bin/nvim" "${placeholder "out"}/bin/nvim" ] ++ [ "--set" "NVIM_SYSTEM_RPLUGIN_MANIFEST" "${placeholder "out"}/rplugin.vim" ]; in + assert withPython2 -> throw "Python2 support has been removed from the neovim wrapper, please remove withPython2 and python2Env."; + symlinkJoin { name = "neovim-${lib.getVersion neovim}"; # Remove the symlinks created by symlinkJoin which we need to perform @@ -44,9 +45,6 @@ let substitute ${neovim}/share/applications/nvim.desktop $out/share/applications/nvim.desktop \ --replace 'Name=Neovim' 'Name=WrappedNeovim' '' - + optionalString withPython2 '' - makeWrapper ${python2Env}/bin/python $out/bin/nvim-python --unset PYTHONPATH - '' + optionalString withPython3 '' makeWrapper ${python3Env}/bin/python3 $out/bin/nvim-python3 --unset PYTHONPATH '' diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 61b5050bc95..029495618b0 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -26626,7 +26626,7 @@ in gnvim = callPackage ../applications/editors/neovim/gnvim/wrapper.nix { }; - neovim-remote = callPackage ../applications/editors/neovim/neovim-remote.nix { pythonPackages = python3Packages; }; + neovim-remote = callPackage ../applications/editors/neovim/neovim-remote.nix { }; vis = callPackage ../applications/editors/vis { inherit (lua52Packages) lpeg; From 742adf762b6b45f1da95de64941ad7c1b89f1e01 Mon Sep 17 00:00:00 2001 From: Rick van Schijndel Date: Sun, 2 May 2021 22:56:53 +0200 Subject: [PATCH 278/339] graphene: fix build by allowing newer versions of aniso8601 All tests seem to pass, which gives some confidence that this is ok. --- pkgs/development/python-modules/graphene/default.nix | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pkgs/development/python-modules/graphene/default.nix b/pkgs/development/python-modules/graphene/default.nix index 2839fc337cd..be2cc808eb0 100644 --- a/pkgs/development/python-modules/graphene/default.nix +++ b/pkgs/development/python-modules/graphene/default.nix @@ -11,6 +11,7 @@ , pytest-mock , pytz , snapshottest +, fetchpatch }: buildPythonPackage rec { @@ -24,6 +25,13 @@ buildPythonPackage rec { sha256 = "sha256-bVCCLPnV5F8PqLMg3GwcpwpGldrxsU+WryL6gj6y338="; }; + # Allow later aniso8601 releases + # https://github.com/graphql-python/graphene/pull/1331 + patches = [ (fetchpatch { + url = "https://github.com/graphql-python/graphene/commit/26b16f75b125e35eeb2274b7be503ec29f2e8a45.patch"; + sha256 = "qm96pNOoxPieEy1CFZpa2Mx010pY3QU/vRyuL0qO3Tk="; + }) ]; + propagatedBuildInputs = [ aniso8601 graphql-core From da000ae239717183f31bd015406e577f167739ad Mon Sep 17 00:00:00 2001 From: Luke Granger-Brown Date: Sun, 2 May 2021 21:38:56 +0000 Subject: [PATCH 279/339] nixos/tests/custom-ca: fix by setting Content-Type This test was failing because Firefox was displaying a download prompt rather than the page content, presumably because mumble mumble content-type sniffing. By explicitly setting a content-type, the test now passes. --- nixos/tests/custom-ca.nix | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/nixos/tests/custom-ca.nix b/nixos/tests/custom-ca.nix index 67f7b3ff1f1..31909188d3a 100644 --- a/nixos/tests/custom-ca.nix +++ b/nixos/tests/custom-ca.nix @@ -92,13 +92,19 @@ in { onlySSL = true; sslCertificate = "${example-good-cert}/server.crt"; sslCertificateKey = "${example-good-cert}/server.key"; - locations."/".extraConfig = "return 200 'It works!';"; + locations."/".extraConfig = '' + add_header Content-Type text/plain; + return 200 'It works!'; + ''; }; services.nginx.virtualHosts."bad.example.com" = { onlySSL = true; sslCertificate = "${example-bad-cert}/server.crt"; sslCertificateKey = "${example-bad-cert}/server.key"; - locations."/".extraConfig = "return 200 'It does not work!';"; + locations."/".extraConfig = '' + add_header Content-Type text/plain; + return 200 'It does not work!'; + ''; }; environment.systemPackages = with pkgs; From 649672e76e507440259a158d564b7a6185179ef9 Mon Sep 17 00:00:00 2001 From: Luke Granger-Brown Date: Sun, 2 May 2021 21:49:33 +0000 Subject: [PATCH 280/339] nixos/postfix: fix compatibility level Postfix has started outputting an error on startup that it can't parse the compatibility level 9999. Instead, just set the compatibility level to be identical to the current version, which seems to be the (new) intent for the compatibility level. --- nixos/modules/services/mail/postfix.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nixos/modules/services/mail/postfix.nix b/nixos/modules/services/mail/postfix.nix index 8e5bed5fcb8..35639e1bbc8 100644 --- a/nixos/modules/services/mail/postfix.nix +++ b/nixos/modules/services/mail/postfix.nix @@ -773,7 +773,7 @@ in }; services.postfix.config = (mapAttrs (_: v: mkDefault v) { - compatibility_level = "9999"; + compatibility_level = pkgs.postfix.version; mail_owner = cfg.user; default_privs = "nobody"; From a6fb22a689978e1695d27fc5ebf14ef67786c8f9 Mon Sep 17 00:00:00 2001 From: Luke Granger-Brown Date: Sun, 2 May 2021 21:50:17 +0000 Subject: [PATCH 281/339] nixos/tests/rspamd: increase memory rspamd seems to be consuming more memory now sometimes, causing OOMs in the test. Increase the memory given to these VMs to make the tests pass more reliably. --- nixos/tests/rspamd.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/nixos/tests/rspamd.nix b/nixos/tests/rspamd.nix index f0ccfe7ea0e..3fd55444fd8 100644 --- a/nixos/tests/rspamd.nix +++ b/nixos/tests/rspamd.nix @@ -25,6 +25,7 @@ let machine = { services.rspamd.enable = true; networking.enableIPv6 = enableIPv6; + virtualisation.memorySize = 1024; }; testScript = '' start_all() @@ -68,6 +69,7 @@ in group = "rspamd"; }]; }; + virtualisation.memorySize = 1024; }; testScript = '' @@ -116,6 +118,7 @@ in ''; }; }; + virtualisation.memorySize = 1024; }; testScript = '' @@ -221,6 +224,7 @@ in rspamd_logger.infox(rspamd_config, 'Work dammit!!!') ''; }; + virtualisation.memorySize = 1024; }; testScript = '' ${initMachine} @@ -287,6 +291,7 @@ in postfix.enable = true; workers.rspamd_proxy.type = "rspamd_proxy"; }; + virtualisation.memorySize = 1024; }; testScript = '' ${initMachine} From f2a91ec2b7cbb0b24c99d28a8622ecc72a0ad031 Mon Sep 17 00:00:00 2001 From: Luke Granger-Brown Date: Sun, 2 May 2021 21:58:43 +0000 Subject: [PATCH 282/339] nixos/tests/gitdaemon: deflake by using systemd-tmpfiles git-daemon won't start up if its project directory (here /git) doesn't exist. If we try to create it using the test harness, then we're racing whether we manage to connect to the backdoor vs. the startup speed of git-daemon. Instead, use systemd-tmpfiles, which is guaranteed(?) to run before network.target and thus before git-daemon.service starts. --- nixos/tests/gitdaemon.nix | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/nixos/tests/gitdaemon.nix b/nixos/tests/gitdaemon.nix index d0156fb9a49..bb07b6e97b7 100644 --- a/nixos/tests/gitdaemon.nix +++ b/nixos/tests/gitdaemon.nix @@ -18,6 +18,11 @@ in { environment.systemPackages = [ pkgs.git ]; + systemd.tmpfiles.rules = [ + # type path mode user group age arg + " d /git 0755 root root - -" + ]; + services.gitDaemon = { enable = true; basePath = "/git"; @@ -35,7 +40,6 @@ in { with subtest("create project.git"): server.succeed( - "mkdir /git", "git init --bare /git/project.git", "touch /git/project.git/git-daemon-export-ok", ) From 8b0515eb9ae070855d670c4638ef7618a7fb3418 Mon Sep 17 00:00:00 2001 From: Mario Rodas Date: Sun, 2 May 2021 16:59:08 -0500 Subject: [PATCH 283/339] pngquant: 2.12.5 -> 2.14.1 (#121470) --- pkgs/tools/graphics/pngquant/default.nix | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/pkgs/tools/graphics/pngquant/default.nix b/pkgs/tools/graphics/pngquant/default.nix index b3b1773faf1..7463e2a45e0 100644 --- a/pkgs/tools/graphics/pngquant/default.nix +++ b/pkgs/tools/graphics/pngquant/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "pngquant"; - version = "2.12.5"; + version = "2.14.1"; src = fetchFromGitHub { - owner = "pornel"; + owner = "kornelski"; repo = "pngquant"; rev = version; - sha256 = "0sq398iv5cacblz6pb4j2hn16cnszsbkahikdpfq84rb9bj0ya40"; + sha256 = "054hi33qp3jc7hv0141wi8drwdg24v5zfp8znwjmz4mcdls8vxbb"; fetchSubmodules = true; }; @@ -17,11 +17,14 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ pkg-config ]; buildInputs = [ libpng zlib lcms2 ]; + doCheck = true; + meta = with lib; { homepage = "https://pngquant.org/"; description = "A tool to convert 24/32-bit RGBA PNGs to 8-bit palette with alpha channel preserved"; + changelog = "https://github.com/kornelski/pngquant/raw/${version}/CHANGELOG"; platforms = platforms.unix; - license = licenses.gpl3; + license = with licenses; [ gpl3Plus hpnd bsd2 ]; maintainers = [ maintainers.volth ]; }; } From 7d09d7f5713dac972ce9d72624d20635899c876d Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Sat, 24 Apr 2021 14:52:14 +0200 Subject: [PATCH 284/339] nixos/home-assistant: harden systemd service MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This is what is still exposed, and it should still allow things to work as usual. ✗ PrivateNetwork= Service has access to the host's … 0.5 ✗ RestrictAddressFamilies=~AF_(INET… Service may allocate Internet soc… 0.3 ✗ DeviceAllow= Service has a device ACL with som… 0.1 ✗ IPAddressDeny= Service does not define an IP add… 0.2 ✗ PrivateDevices= Service potentially has access to… 0.2 ✗ PrivateUsers= Service has access to other users 0.2 ✗ SystemCallFilter=~@resources System call allow list defined fo… 0.2 ✗ RootDirectory=/RootImage= Service runs within the host's ro… 0.1 ✗ SupplementaryGroups= Service runs with supplementary g… 0.1 ✗ RestrictAddressFamilies=~AF_UNIX Service may allocate local sockets 0.1 → Overall exposure level for home-assistant.service: 1.6 OK :-) This can grow to as much as ~1.9 if you use one of the bluetooth or nmap trackers or the emulated_hue component, all of which required elevated permisssions. --- .../modules/services/misc/home-assistant.nix | 72 +++++++++++++++++-- 1 file changed, 66 insertions(+), 6 deletions(-) diff --git a/nixos/modules/services/misc/home-assistant.nix b/nixos/modules/services/misc/home-assistant.nix index 0590f54ae60..9ae86af0875 100644 --- a/nixos/modules/services/misc/home-assistant.nix +++ b/nixos/modules/services/misc/home-assistant.nix @@ -245,22 +245,83 @@ in { rm -f "${cfg.configDir}/ui-lovelace.yaml" ln -s ${lovelaceConfigFile} "${cfg.configDir}/ui-lovelace.yaml" ''); - serviceConfig = { + serviceConfig = let + # List of capabilities to equip home-assistant with, depending on configured components + capabilities = [ + # Empty string first, so we will never accidentally have an empty capability bounding set + # https://github.com/NixOS/nixpkgs/issues/120617#issuecomment-830685115 + "" + ] ++ (unique (optionals (useComponent "bluetooth_tracker" || useComponent "bluetooth_le_tracker") [ + # Required for interaction with hci devices and bluetooth sockets + # https://www.home-assistant.io/integrations/bluetooth_le_tracker/#rootless-setup-on-core-installs + "CAP_NET_ADMIN" + "CAP_NET_RAW" + ] ++ lib.optionals (useComponent "emulated_hue") [ + # Alexa looks for the service on port 80 + # https://www.home-assistant.io/integrations/emulated_hue + "CAP_NET_BIND_SERVICE" + ] ++ lib.optionals (useComponent "nmap_tracker") [ + # https://www.home-assistant.io/integrations/nmap_tracker#linux-capabilities + "CAP_NET_ADMIN" + "CAP_NET_BIND_SERVICE" + "CAP_NET_RAW" + ])); + in { ExecStart = "${package}/bin/hass --config '${cfg.configDir}'"; ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID"; User = "hass"; Group = "hass"; Restart = "on-failure"; + KillSignal = "SIGINT"; + + # Hardening + AmbientCapabilities = capabilities; + CapabilityBoundingSet = capabilities; + DeviceAllow = [ + "char-ttyACM rw" + "char-ttyAMA rw" + "char-ttyUSB rw" + ]; + DevicePolicy = "closed"; + LockPersonality = true; + MemoryDenyWriteExecute = true; + NoNewPrivileges = true; + PrivateTmp = true; + PrivateUsers = false; # prevents gaining capabilities in the host namespace + ProtectClock = true; + ProtectControlGroups = true; + ProtectHome = true; + ProtectHostname = true; + ProtectKernelLogs = true; + ProtectKernelModules = true; + ProtectKernelTunables = true; + ProtectProc = "invisible"; + ProcSubset = "pid"; ProtectSystem = "strict"; + RemoveIPC = true; ReadWritePaths = let + # Allow rw access to explicitly configured paths cfgPath = [ "config" "homeassistant" "allowlist_external_dirs" ]; value = attrByPath cfgPath [] cfg; allowPaths = if isList value then value else singleton value; in [ "${cfg.configDir}" ] ++ allowPaths; - KillSignal = "SIGINT"; - PrivateTmp = true; - RemoveIPC = true; - AmbientCapabilities = "cap_net_raw,cap_net_admin+eip"; + RestrictAddressFamilies = [ + "AF_UNIX" + "AF_INET" + "AF_INET6" + ] ++ optionals (useComponent "bluetooth_tracker" || useComponent "bluetooth_le_tracker") [ + "AF_BLUETOOTH" + ]; + RestrictNamespaces = true; + RestrictRealtime = true; + RestrictSUIDSGID = true; + SupplementaryGroups = [ "dialout" ]; + SystemCallArchitectures = "native"; + SystemCallFilter = [ + "@system-service" + "~@privileged" + ]; + UMask = "0077"; }; path = [ "/run/wrappers" # needed for ping @@ -278,7 +339,6 @@ in { home = cfg.configDir; createHome = true; group = "hass"; - extraGroups = [ "dialout" ]; uid = config.ids.uids.hass; }; From 8ab7fc11076373fee3e5cc842176e6fb8c5705b3 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Sun, 25 Apr 2021 14:44:51 +0200 Subject: [PATCH 285/339] nixos/tests/home-assistant: test capability passing Configures the emulated_hue component and expects CAP_NET_BIND_SERVICE to be passed in order to be able to bind to 80/tcp. Also print the systemd security analysis, so we can spot changes more quickly. --- nixos/tests/home-assistant.nix | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/nixos/tests/home-assistant.nix b/nixos/tests/home-assistant.nix index 3b7295324a1..2224403961e 100644 --- a/nixos/tests/home-assistant.nix +++ b/nixos/tests/home-assistant.nix @@ -47,6 +47,10 @@ in { payload_on = "let_there_be_light"; payload_off = "off"; }]; + emulated_hue = { + host_ip = "127.0.0.1"; + listen_port = 80; + }; logger = { default = "info"; logs."homeassistant.components.mqtt" = "debug"; @@ -82,6 +86,9 @@ in { hass.succeed( "mosquitto_pub -V mqttv5 -t home-assistant/test -u ${mqttUsername} -P '${mqttPassword}' -m let_there_be_light" ) + with subtest("Check that capabilities are passed for emulated_hue to bind to port 80"): + hass.wait_for_open_port(80) + hass.succeed("curl --fail http://localhost:80/description.xml") with subtest("Print log to ease debugging"): output_log = hass.succeed("cat ${configDir}/home-assistant.log") print("\n### home-assistant.log ###\n") @@ -93,5 +100,8 @@ in { # example line: 2020-06-20 10:01:32 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home-assistant/test: b'let_there_be_light' with subtest("Check we received the mosquitto message"): assert "let_there_be_light" in output_log + + with subtest("Check systemd unit hardening"): + hass.log(hass.succeed("systemd-analyze security home-assistant.service")) ''; }) From 1dbb60f562f73cfa46d2e5ef21f9d2a98ecba565 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Mon, 26 Apr 2021 02:17:48 +0200 Subject: [PATCH 286/339] nixos/tests/home-assistant: update maintainership to home-assistant team --- nixos/tests/home-assistant.nix | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/nixos/tests/home-assistant.nix b/nixos/tests/home-assistant.nix index 2224403961e..c75dd248ecb 100644 --- a/nixos/tests/home-assistant.nix +++ b/nixos/tests/home-assistant.nix @@ -1,4 +1,4 @@ -import ./make-test-python.nix ({ pkgs, ... }: +import ./make-test-python.nix ({ pkgs, lib, ... }: let configDir = "/var/lib/foobar"; @@ -6,9 +6,7 @@ let mqttPassword = "secret"; in { name = "home-assistant"; - meta = with pkgs.lib; { - maintainers = with maintainers; [ dotlambda ]; - }; + meta.maintainers = lib.teams.home-assistant.members; nodes.hass = { pkgs, ... }: { environment.systemPackages = with pkgs; [ mosquitto ]; From f41349d30d5e1cc72c8041616ecb8c36d56f3682 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Mon, 26 Apr 2021 02:39:09 +0200 Subject: [PATCH 287/339] nixos/home-assistant: Restart systemd unit on restart service Home-assistant through its `--runner` commandline flag supports sending exit code 100 when the `homeassistant.restart` service is called. With `RestartForceExitStatus` we can listen for that specific exit code and restart the whole systemd unit, providing an actual clean restart with fresh processes. Additional treat exit code 100 as a successful termination. --- nixos/modules/services/misc/home-assistant.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/nixos/modules/services/misc/home-assistant.nix b/nixos/modules/services/misc/home-assistant.nix index 9ae86af0875..1985f130881 100644 --- a/nixos/modules/services/misc/home-assistant.nix +++ b/nixos/modules/services/misc/home-assistant.nix @@ -267,11 +267,13 @@ in { "CAP_NET_RAW" ])); in { - ExecStart = "${package}/bin/hass --config '${cfg.configDir}'"; + ExecStart = "${package}/bin/hass --runner --config '${cfg.configDir}'"; ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID"; User = "hass"; Group = "hass"; Restart = "on-failure"; + RestartForceExitStatus = "100"; + SuccessExitStatus = "100"; KillSignal = "SIGINT"; # Hardening From 27d0a91fd4e57c17417b91344366e6c8210dfeda Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=BCtz?= Date: Sun, 2 May 2021 20:23:40 +0200 Subject: [PATCH 288/339] authenticator: init at 4.0.3 --- .../applications/misc/authenticator/767.patch | 1952 +++++++++++++++++ .../misc/authenticator/default.nix | 98 + pkgs/top-level/all-packages.nix | 2 + 3 files changed, 2052 insertions(+) create mode 100644 pkgs/applications/misc/authenticator/767.patch create mode 100644 pkgs/applications/misc/authenticator/default.nix diff --git a/pkgs/applications/misc/authenticator/767.patch b/pkgs/applications/misc/authenticator/767.patch new file mode 100644 index 00000000000..2c4bf63128b --- /dev/null +++ b/pkgs/applications/misc/authenticator/767.patch @@ -0,0 +1,1952 @@ +From 70588b2f2191bdb8d6859e0a0c50a87e24237bba Mon Sep 17 00:00:00 2001 +From: Rafostar <40623528+Rafostar@users.noreply.github.com> +Date: Wed, 30 Dec 2020 11:24:49 +0100 +Subject: [PATCH 01/10] gtk: port to event controllers + +Prepare for GTK4 support by porting deprecated events +to EventControllers. This also bumps minimal required GTK version to 3.24 +--- + ext/gtk/gtkgstbasewidget.c | 96 +++++++++++++++++++++++++------------- + ext/gtk/gtkgstbasewidget.h | 6 +++ + ext/gtk/meson.build | 2 +- + 3 files changed, 70 insertions(+), 34 deletions(-) + +diff --git a/ext/gtk/gtkgstbasewidget.c b/ext/gtk/gtkgstbasewidget.c +index 4858f2764..5d57b0ee7 100644 +--- a/ext/gtk/gtkgstbasewidget.c ++++ b/ext/gtk/gtkgstbasewidget.c +@@ -235,22 +235,34 @@ _gdk_key_to_navigation_string (guint keyval) + } + } + ++static void ++_gdk_event_free (GdkEvent * event) ++{ ++ if (event) ++ gdk_event_free (event); ++} ++ + static gboolean +-gtk_gst_base_widget_key_event (GtkWidget * widget, GdkEventKey * event) ++gtk_gst_base_widget_key_event (GtkEventControllerKey * key_controller, ++ guint keyval, guint keycode, GdkModifierType state) + { ++ GtkEventController *controller = GTK_EVENT_CONTROLLER (key_controller); ++ GtkWidget *widget = gtk_event_controller_get_widget (controller); + GtkGstBaseWidget *base_widget = GTK_GST_BASE_WIDGET (widget); + GstElement *element; + + if ((element = g_weak_ref_get (&base_widget->element))) { + if (GST_IS_NAVIGATION (element)) { +- const gchar *str = _gdk_key_to_navigation_string (event->keyval); +- const gchar *key_type = +- event->type == GDK_KEY_PRESS ? "key-press" : "key-release"; +- +- if (!str) +- str = event->string; +- +- gst_navigation_send_key_event (GST_NAVIGATION (element), key_type, str); ++ GdkEvent *event = gtk_get_current_event (); ++ const gchar *str = _gdk_key_to_navigation_string (keyval); ++ ++ if (str) { ++ const gchar *key_type = ++ gdk_event_get_event_type (event) == ++ GDK_KEY_PRESS ? "key-press" : "key-release"; ++ gst_navigation_send_key_event (GST_NAVIGATION (element), key_type, str); ++ } ++ _gdk_event_free (event); + } + g_object_unref (element); + } +@@ -325,22 +337,30 @@ _display_size_to_stream_size (GtkGstBaseWidget * base_widget, gdouble x, + } + + static gboolean +-gtk_gst_base_widget_button_event (GtkWidget * widget, GdkEventButton * event) ++gtk_gst_base_widget_button_event (GtkGestureMultiPress * gesture, ++ gint n_press, gdouble x, gdouble y) + { ++ GtkEventController *controller = GTK_EVENT_CONTROLLER (gesture); ++ GtkWidget *widget = gtk_event_controller_get_widget (controller); + GtkGstBaseWidget *base_widget = GTK_GST_BASE_WIDGET (widget); + GstElement *element; + + if ((element = g_weak_ref_get (&base_widget->element))) { + if (GST_IS_NAVIGATION (element)) { ++ GdkEvent *event = gtk_get_current_event (); + const gchar *key_type = +- event->type == +- GDK_BUTTON_PRESS ? "mouse-button-press" : "mouse-button-release"; +- gdouble x, y; ++ gdk_event_get_event_type (event) == GDK_BUTTON_PRESS ++ ? "mouse-button-press" : "mouse-button-release"; ++ gdouble stream_x, stream_y; ++ guint button; ++ gdk_event_get_button (event, &button); + +- _display_size_to_stream_size (base_widget, event->x, event->y, &x, &y); ++ _display_size_to_stream_size (base_widget, x, y, &stream_x, &stream_y); + + gst_navigation_send_mouse_event (GST_NAVIGATION (element), key_type, +- event->button, x, y); ++ button, stream_x, stream_y); ++ ++ _gdk_event_free (event); + } + g_object_unref (element); + } +@@ -349,19 +369,22 @@ gtk_gst_base_widget_button_event (GtkWidget * widget, GdkEventButton * event) + } + + static gboolean +-gtk_gst_base_widget_motion_event (GtkWidget * widget, GdkEventMotion * event) ++gtk_gst_base_widget_motion_event (GtkEventControllerMotion * motion_controller, ++ gdouble x, gdouble y) + { ++ GtkEventController *controller = GTK_EVENT_CONTROLLER (motion_controller); ++ GtkWidget *widget = gtk_event_controller_get_widget (controller); + GtkGstBaseWidget *base_widget = GTK_GST_BASE_WIDGET (widget); + GstElement *element; + + if ((element = g_weak_ref_get (&base_widget->element))) { + if (GST_IS_NAVIGATION (element)) { +- gdouble x, y; ++ gdouble stream_x, stream_y; + +- _display_size_to_stream_size (base_widget, event->x, event->y, &x, &y); ++ _display_size_to_stream_size (base_widget, x, y, &stream_x, &stream_y); + + gst_navigation_send_mouse_event (GST_NAVIGATION (element), "mouse-move", +- 0, x, y); ++ 0, stream_x, stream_y); + } + g_object_unref (element); + } +@@ -397,11 +420,6 @@ gtk_gst_base_widget_class_init (GtkGstBaseWidgetClass * klass) + + widget_klass->get_preferred_width = gtk_gst_base_widget_get_preferred_width; + widget_klass->get_preferred_height = gtk_gst_base_widget_get_preferred_height; +- widget_klass->key_press_event = gtk_gst_base_widget_key_event; +- widget_klass->key_release_event = gtk_gst_base_widget_key_event; +- widget_klass->button_press_event = gtk_gst_base_widget_button_event; +- widget_klass->button_release_event = gtk_gst_base_widget_button_event; +- widget_klass->motion_notify_event = gtk_gst_base_widget_motion_event; + + GST_DEBUG_CATEGORY_INIT (gst_debug_gtk_base_widget, "gtkbasewidget", 0, + "Gtk Video Base Widget"); +@@ -410,8 +428,6 @@ gtk_gst_base_widget_class_init (GtkGstBaseWidgetClass * klass) + void + gtk_gst_base_widget_init (GtkGstBaseWidget * widget) + { +- int event_mask; +- + widget->force_aspect_ratio = DEFAULT_FORCE_ASPECT_RATIO; + widget->par_n = DEFAULT_PAR_N; + widget->par_d = DEFAULT_PAR_D; +@@ -423,14 +439,24 @@ gtk_gst_base_widget_init (GtkGstBaseWidget * widget) + g_weak_ref_init (&widget->element, NULL); + g_mutex_init (&widget->lock); + ++ widget->key_controller = gtk_event_controller_key_new (GTK_WIDGET (widget)); ++ g_signal_connect (widget->key_controller, "key-pressed", ++ G_CALLBACK (gtk_gst_base_widget_key_event), NULL); ++ g_signal_connect (widget->key_controller, "key-released", ++ G_CALLBACK (gtk_gst_base_widget_key_event), NULL); ++ ++ widget->motion_controller = ++ gtk_event_controller_motion_new (GTK_WIDGET (widget)); ++ g_signal_connect (widget->motion_controller, "motion", ++ G_CALLBACK (gtk_gst_base_widget_motion_event), NULL); ++ ++ widget->click_gesture = gtk_gesture_multi_press_new (GTK_WIDGET (widget)); ++ g_signal_connect (widget->click_gesture, "pressed", ++ G_CALLBACK (gtk_gst_base_widget_button_event), NULL); ++ g_signal_connect (widget->click_gesture, "released", ++ G_CALLBACK (gtk_gst_base_widget_button_event), NULL); ++ + gtk_widget_set_can_focus (GTK_WIDGET (widget), TRUE); +- event_mask = gtk_widget_get_events (GTK_WIDGET (widget)); +- event_mask |= GDK_KEY_PRESS_MASK +- | GDK_KEY_RELEASE_MASK +- | GDK_BUTTON_PRESS_MASK +- | GDK_BUTTON_RELEASE_MASK +- | GDK_POINTER_MOTION_MASK | GDK_BUTTON_MOTION_MASK; +- gtk_widget_set_events (GTK_WIDGET (widget), event_mask); + } + + void +@@ -438,6 +464,10 @@ gtk_gst_base_widget_finalize (GObject * object) + { + GtkGstBaseWidget *widget = GTK_GST_BASE_WIDGET (object); + ++ g_object_unref (widget->key_controller); ++ g_object_unref (widget->motion_controller); ++ g_object_unref (widget->click_gesture); ++ + gst_buffer_replace (&widget->pending_buffer, NULL); + gst_buffer_replace (&widget->buffer, NULL); + g_mutex_clear (&widget->lock); +diff --git a/ext/gtk/gtkgstbasewidget.h b/ext/gtk/gtkgstbasewidget.h +index 13737c632..0e31478a0 100644 +--- a/ext/gtk/gtkgstbasewidget.h ++++ b/ext/gtk/gtkgstbasewidget.h +@@ -24,6 +24,7 @@ + #include + #include + #include ++#include + + #define GTK_GST_BASE_WIDGET(w) ((GtkGstBaseWidget *)(w)) + #define GTK_GST_BASE_WIDGET_CLASS(k) ((GtkGstBaseWidgetClass *)(k)) +@@ -67,6 +68,11 @@ struct _GtkGstBaseWidget + GMutex lock; + GWeakRef element; + ++ /* event controllers */ ++ GtkEventController *key_controller; ++ GtkEventController *motion_controller; ++ GtkGesture *click_gesture; ++ + /* Pending draw idles callback */ + guint draw_id; + }; +diff --git a/ext/gtk/meson.build b/ext/gtk/meson.build +index 3a30017e7..722775e08 100644 +--- a/ext/gtk/meson.build ++++ b/ext/gtk/meson.build +@@ -13,7 +13,7 @@ optional_deps = [] + gtk_dep = dependency('gtk+-3.0', required : get_option('gtk3')) + if gtk_dep.found() + # FIXME: automagic +- if have_gstgl and gtk_dep.version().version_compare('>=3.15.0') ++ if have_gstgl and gtk_dep.version().version_compare('>=3.24.0') + have_gtk3_gl_windowing = false + + if gst_gl_have_window_x11 and gst_gl_have_platform_glx +-- +GitLab + + +From 29774cbcd256b86f074bd50b40f4a57607758bf3 Mon Sep 17 00:00:00 2001 +From: Rafostar <40623528+Rafostar@users.noreply.github.com> +Date: Fri, 1 Jan 2021 17:30:23 +0100 +Subject: [PATCH 02/10] gtk: do not connect the same signals on each start + +Each time the sink start is called the same signals +were reconnected without disconnecting them earlier. + +We should still observe widget destruction even when +stopped, so lets just prevent connecting it multiple +times and disconnect only size-allocate signal on stop. +--- + ext/gtk/gstgtkglsink.c | 32 +++++++++++++++++++++++--------- + 1 file changed, 23 insertions(+), 9 deletions(-) + +diff --git a/ext/gtk/gstgtkglsink.c b/ext/gtk/gstgtkglsink.c +index 1102d47c9..3024bef95 100644 +--- a/ext/gtk/gstgtkglsink.c ++++ b/ext/gtk/gstgtkglsink.c +@@ -172,13 +172,17 @@ gst_gtk_gl_sink_start (GstBaseSink * bsink) + gst_widget = GTK_GST_GL_WIDGET (base_sink->widget); + + /* Track the allocation size */ +- gtk_sink->size_allocate_sig_handler = +- g_signal_connect (gst_widget, "size-allocate", +- G_CALLBACK (_size_changed_cb), gtk_sink); ++ if (!gtk_sink->size_allocate_sig_handler) { ++ gtk_sink->size_allocate_sig_handler = ++ g_signal_connect (gst_widget, "size-allocate", ++ G_CALLBACK (_size_changed_cb), gtk_sink); ++ } + +- gtk_sink->widget_destroy_sig_handler = +- g_signal_connect (gst_widget, "destroy", G_CALLBACK (destroy_cb), +- gtk_sink); ++ if (!gtk_sink->widget_destroy_sig_handler) { ++ gtk_sink->widget_destroy_sig_handler = ++ g_signal_connect (gst_widget, "destroy", G_CALLBACK (destroy_cb), ++ gtk_sink); ++ } + + _size_changed_cb (GTK_WIDGET (gst_widget), NULL, gtk_sink); + +@@ -188,9 +192,12 @@ gst_gtk_gl_sink_start (GstBaseSink * bsink) + return FALSE; + } + +- gtk_sink->display = gtk_gst_gl_widget_get_display (gst_widget); +- gtk_sink->context = gtk_gst_gl_widget_get_context (gst_widget); +- gtk_sink->gtk_context = gtk_gst_gl_widget_get_gtk_context (gst_widget); ++ if (!gtk_sink->display) ++ gtk_sink->display = gtk_gst_gl_widget_get_display (gst_widget); ++ if (!gtk_sink->context) ++ gtk_sink->context = gtk_gst_gl_widget_get_context (gst_widget); ++ if (!gtk_sink->gtk_context) ++ gtk_sink->gtk_context = gtk_gst_gl_widget_get_gtk_context (gst_widget); + + if (!gtk_sink->display || !gtk_sink->context || !gtk_sink->gtk_context) { + GST_ELEMENT_ERROR (bsink, RESOURCE, NOT_FOUND, ("%s", +@@ -208,6 +215,13 @@ static gboolean + gst_gtk_gl_sink_stop (GstBaseSink * bsink) + { + GstGtkGLSink *gtk_sink = GST_GTK_GL_SINK (bsink); ++ GstGtkBaseSink *base_sink = GST_GTK_BASE_SINK (bsink); ++ ++ if (gtk_sink->size_allocate_sig_handler) { ++ g_signal_handler_disconnect (base_sink->widget, ++ gtk_sink->size_allocate_sig_handler); ++ gtk_sink->size_allocate_sig_handler = 0; ++ } + + if (gtk_sink->display) { + gst_object_unref (gtk_sink->display); +-- +GitLab + + +From 754b6b50d2d266c07c360ca72a62f368be664eef Mon Sep 17 00:00:00 2001 +From: Rafostar <40623528+Rafostar@users.noreply.github.com> +Date: Wed, 14 Oct 2020 16:25:53 +0200 +Subject: [PATCH 03/10] gtkglsink: add GTK4 support + +This commit adds required changes to compile the "gtk" plugin +against GTK4 from the same source code. + +The output "gtk4" plugin includes new "gtk4glsink". +--- + ext/gtk/gstgtkbasesink.c | 70 ++++++++++++++++++++++++----- + ext/gtk/gstgtkglsink.c | 29 ++++++++---- + ext/gtk/gstplugin.c | 19 +++++--- + ext/gtk/gtkconfig.h | 29 ++++++++++++ + ext/gtk/gtkgstbasewidget.c | 91 ++++++++++++++++++++++++++++++++++---- + ext/gtk/gtkgstbasewidget.h | 12 +++-- + ext/gtk/gtkgstglwidget.c | 15 ++++++- + ext/gtk/meson.build | 84 ++++++++++++++++++++++++----------- + meson_options.txt | 1 + + 9 files changed, 284 insertions(+), 66 deletions(-) + create mode 100644 ext/gtk/gtkconfig.h + +diff --git a/ext/gtk/gstgtkbasesink.c b/ext/gtk/gstgtkbasesink.c +index 0c48f54d6..1f5319089 100644 +--- a/ext/gtk/gstgtkbasesink.c ++++ b/ext/gtk/gstgtkbasesink.c +@@ -1,6 +1,7 @@ + /* + * GStreamer + * Copyright (C) 2015 Matthew Waters ++ * Copyright (C) 2020 Rafał Dzięgiel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public +@@ -77,7 +78,7 @@ G_DEFINE_ABSTRACT_TYPE_WITH_CODE (GstGtkBaseSink, gst_gtk_base_sink, + G_IMPLEMENT_INTERFACE (GST_TYPE_NAVIGATION, + gst_gtk_base_sink_navigation_interface_init); + GST_DEBUG_CATEGORY_INIT (gst_debug_gtk_base_sink, +- "gtkbasesink", 0, "Gtk Video Sink base class")); ++ "gtkbasesink", 0, "GTK Video Sink base class")); + + + static void +@@ -97,7 +98,7 @@ gst_gtk_base_sink_class_init (GstGtkBaseSinkClass * klass) + gobject_class->get_property = gst_gtk_base_sink_get_property; + + g_object_class_install_property (gobject_class, PROP_WIDGET, +- g_param_spec_object ("widget", "Gtk Widget", ++ g_param_spec_object ("widget", "GTK Widget", + "The GtkWidget to place in the widget hierarchy " + "(must only be get from the GTK main thread)", + GTK_TYPE_WIDGET, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); +@@ -114,10 +115,13 @@ gst_gtk_base_sink_class_init (GstGtkBaseSinkClass * klass) + "The pixel aspect ratio of the device", DEFAULT_PAR_N, DEFAULT_PAR_D, + G_MAXINT, 1, 1, 1, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + ++ /* Disabling alpha was removed in GTK4 */ ++#if !defined(BUILD_FOR_GTK4) + g_object_class_install_property (gobject_class, PROP_IGNORE_ALPHA, + g_param_spec_boolean ("ignore-alpha", "Ignore Alpha", + "When enabled, alpha will be ignored and converted to black", + DEFAULT_IGNORE_ALPHA, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); ++#endif + + gobject_class->finalize = gst_gtk_base_sink_finalize; + +@@ -182,7 +186,11 @@ gst_gtk_base_sink_get_widget (GstGtkBaseSink * gtk_sink) + + /* Ensure GTK is initialized, this has no side effect if it was already + * initialized. Also, we do that lazily, so the application can be first */ +- if (!gtk_init_check (NULL, NULL)) { ++ if (!gtk_init_check ( ++#if !defined(BUILD_FOR_GTK4) ++ NULL, NULL ++#endif ++ )) { + GST_ERROR_OBJECT (gtk_sink, "Could not ensure GTK initialization."); + return NULL; + } +@@ -197,9 +205,11 @@ gst_gtk_base_sink_get_widget (GstGtkBaseSink * gtk_sink) + gtk_sink->bind_pixel_aspect_ratio = + g_object_bind_property (gtk_sink, "pixel-aspect-ratio", gtk_sink->widget, + "pixel-aspect-ratio", G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); ++#if !defined(BUILD_FOR_GTK4) + gtk_sink->bind_ignore_alpha = + g_object_bind_property (gtk_sink, "ignore-alpha", gtk_sink->widget, + "ignore-alpha", G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); ++#endif + + /* Take the floating ref, other wise the destruction of the container will + * make this widget disappear possibly before we are done. */ +@@ -313,25 +323,55 @@ gst_gtk_base_sink_start_on_main (GstBaseSink * bsink) + GstGtkBaseSink *gst_sink = GST_GTK_BASE_SINK (bsink); + GstGtkBaseSinkClass *klass = GST_GTK_BASE_SINK_GET_CLASS (bsink); + GtkWidget *toplevel; ++#if defined(BUILD_FOR_GTK4) ++ GtkRoot *root; ++#endif + + if (gst_gtk_base_sink_get_widget (gst_sink) == NULL) + return FALSE; + + /* After this point, gtk_sink->widget will always be set */ + ++#if defined(BUILD_FOR_GTK4) ++ root = gtk_widget_get_root (GTK_WIDGET (gst_sink->widget)); ++ if (!GTK_IS_ROOT (root)) { ++ GtkWidget *parent = gtk_widget_get_parent (GTK_WIDGET (gst_sink->widget)); ++ if (parent) { ++ GtkWidget *temp_parent; ++ while ((temp_parent = gtk_widget_get_parent (parent))) ++ parent = temp_parent; ++ } ++ toplevel = (parent) ? parent : GTK_WIDGET (gst_sink->widget); ++#else + toplevel = gtk_widget_get_toplevel (GTK_WIDGET (gst_sink->widget)); + if (!gtk_widget_is_toplevel (toplevel)) { ++#endif + /* sanity check */ + g_assert (klass->window_title); + + /* User did not add widget its own UI, let's popup a new GtkWindow to + * make gst-launch-1.0 work. */ +- gst_sink->window = gtk_window_new (GTK_WINDOW_TOPLEVEL); ++ gst_sink->window = gtk_window_new ( ++#if !defined(BUILD_FOR_GTK4) ++ GTK_WINDOW_TOPLEVEL ++#endif ++ ); + gtk_window_set_default_size (GTK_WINDOW (gst_sink->window), 640, 480); + gtk_window_set_title (GTK_WINDOW (gst_sink->window), klass->window_title); +- gtk_container_add (GTK_CONTAINER (gst_sink->window), toplevel); +- gst_sink->window_destroy_id = g_signal_connect (gst_sink->window, "destroy", +- G_CALLBACK (window_destroy_cb), gst_sink); ++#if defined(BUILD_FOR_GTK4) ++ gtk_window_set_child (GTK_WINDOW ( ++#else ++ gtk_container_add (GTK_CONTAINER ( ++#endif ++ gst_sink->window), toplevel); ++ ++ gst_sink->window_destroy_id = g_signal_connect ( ++#if defined(BUILD_FOR_GTK4) ++ GTK_WINDOW (gst_sink->window), ++#else ++ gst_sink->window, ++#endif ++ "destroy", G_CALLBACK (window_destroy_cb), gst_sink); + } + + return TRUE; +@@ -350,7 +390,11 @@ gst_gtk_base_sink_stop_on_main (GstBaseSink * bsink) + GstGtkBaseSink *gst_sink = GST_GTK_BASE_SINK (bsink); + + if (gst_sink->window) { ++#if defined(BUILD_FOR_GTK4) ++ gtk_window_destroy (GTK_WINDOW (gst_sink->window)); ++#else + gtk_widget_destroy (gst_sink->window); ++#endif + gst_sink->window = NULL; + gst_sink->widget = NULL; + } +@@ -371,10 +415,14 @@ gst_gtk_base_sink_stop (GstBaseSink * bsink) + } + + static void +-gst_gtk_widget_show_all_and_unref (GtkWidget * widget) ++gst_gtk_window_show_all_and_unref (GtkWidget * window) + { +- gtk_widget_show_all (widget); +- g_object_unref (widget); ++#if defined(BUILD_FOR_GTK4) ++ gtk_window_present (GTK_WINDOW (window)); ++#else ++ gtk_widget_show_all (window); ++#endif ++ g_object_unref (window); + } + + static GstStateChangeReturn +@@ -402,7 +450,7 @@ gst_gtk_base_sink_change_state (GstElement * element, GstStateChange transition) + GST_OBJECT_UNLOCK (gtk_sink); + + if (window) +- gst_gtk_invoke_on_main ((GThreadFunc) gst_gtk_widget_show_all_and_unref, ++ gst_gtk_invoke_on_main ((GThreadFunc) gst_gtk_window_show_all_and_unref, + window); + + break; +diff --git a/ext/gtk/gstgtkglsink.c b/ext/gtk/gstgtkglsink.c +index 3024bef95..daaf0eb3f 100644 +--- a/ext/gtk/gstgtkglsink.c ++++ b/ext/gtk/gstgtkglsink.c +@@ -1,6 +1,7 @@ + /* + * GStreamer + * Copyright (C) 2015 Matthew Waters ++ * Copyright (C) 2020 Rafał Dzięgiel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public +@@ -23,12 +24,18 @@ + * @title: gtkglsink + */ + ++/** ++ * SECTION:element-gtk4glsink ++ * @title: gtk4glsink ++ */ ++ + #ifdef HAVE_CONFIG_H + #include "config.h" + #endif + + #include + ++#include "gtkconfig.h" + #include "gstgtkglsink.h" + #include "gtkgstglwidget.h" + +@@ -58,7 +65,7 @@ static GstStaticPadTemplate gst_gtk_gl_sink_template = + #define gst_gtk_gl_sink_parent_class parent_class + G_DEFINE_TYPE_WITH_CODE (GstGtkGLSink, gst_gtk_gl_sink, + GST_TYPE_GTK_BASE_SINK, GST_DEBUG_CATEGORY_INIT (gst_debug_gtk_gl_sink, +- "gtkglsink", 0, "Gtk GL Video Sink")); ++ GTKCONFIG_GLSINK, 0, GTKCONFIG_NAME " GL Video Sink")); + + static void + gst_gtk_gl_sink_class_init (GstGtkGLSinkClass * klass) +@@ -82,11 +89,13 @@ gst_gtk_gl_sink_class_init (GstGtkGLSinkClass * klass) + gstbasesink_class->get_caps = gst_gtk_gl_sink_get_caps; + + gstgtkbasesink_class->create_widget = gtk_gst_gl_widget_new; +- gstgtkbasesink_class->window_title = "Gtk+ GL renderer"; ++ gstgtkbasesink_class->window_title = GTKCONFIG_NAME " GL Renderer"; + +- gst_element_class_set_metadata (gstelement_class, "Gtk GL Video Sink", ++ gst_element_class_set_metadata (gstelement_class, ++ GTKCONFIG_NAME " GL Video Sink", + "Sink/Video", "A video sink that renders to a GtkWidget using OpenGL", +- "Matthew Waters "); ++ "Matthew Waters , " ++ "Rafał Dzięgiel "); + + gst_element_class_add_static_pad_template (gstelement_class, + &gst_gtk_gl_sink_template); +@@ -119,6 +128,7 @@ gst_gtk_gl_sink_query (GstBaseSink * bsink, GstQuery * query) + return res; + } + ++#if !defined(BUILD_FOR_GTK4) + static void + _size_changed_cb (GtkWidget * widget, GdkRectangle * rectangle, + GstGtkGLSink * gtk_sink) +@@ -138,11 +148,12 @@ _size_changed_cb (GtkWidget * widget, GdkRectangle * rectangle, + GST_OBJECT_UNLOCK (gtk_sink); + + if (reconfigure) { +- GST_DEBUG_OBJECT (gtk_sink, "Sending reconfigure event on sinkpad."); ++ GST_DEBUG_OBJECT (gtk_sink, "Sending reconfigure event on sinkpad"); + gst_pad_push_event (GST_BASE_SINK (gtk_sink)->sinkpad, + gst_event_new_reconfigure ()); + } + } ++#endif + + static void + destroy_cb (GtkWidget * widget, GstGtkGLSink * gtk_sink) +@@ -171,12 +182,14 @@ gst_gtk_gl_sink_start (GstBaseSink * bsink) + /* After this point, gtk_sink->widget will always be set */ + gst_widget = GTK_GST_GL_WIDGET (base_sink->widget); + ++#if !defined(BUILD_FOR_GTK4) + /* Track the allocation size */ + if (!gtk_sink->size_allocate_sig_handler) { + gtk_sink->size_allocate_sig_handler = + g_signal_connect (gst_widget, "size-allocate", + G_CALLBACK (_size_changed_cb), gtk_sink); + } ++#endif + + if (!gtk_sink->widget_destroy_sig_handler) { + gtk_sink->widget_destroy_sig_handler = +@@ -184,11 +197,9 @@ gst_gtk_gl_sink_start (GstBaseSink * bsink) + gtk_sink); + } + +- _size_changed_cb (GTK_WIDGET (gst_widget), NULL, gtk_sink); +- + if (!gtk_gst_gl_widget_init_winsys (gst_widget)) { + GST_ELEMENT_ERROR (bsink, RESOURCE, NOT_FOUND, ("%s", +- "Failed to initialize OpenGL with Gtk"), (NULL)); ++ "Failed to initialize OpenGL with GTK"), (NULL)); + return FALSE; + } + +@@ -201,7 +212,7 @@ gst_gtk_gl_sink_start (GstBaseSink * bsink) + + if (!gtk_sink->display || !gtk_sink->context || !gtk_sink->gtk_context) { + GST_ELEMENT_ERROR (bsink, RESOURCE, NOT_FOUND, ("%s", +- "Failed to retrieve OpenGL context from Gtk"), (NULL)); ++ "Failed to retrieve OpenGL context from GTK"), (NULL)); + return FALSE; + } + +diff --git a/ext/gtk/gstplugin.c b/ext/gtk/gstplugin.c +index ed275785b..788f4f9dd 100644 +--- a/ext/gtk/gstplugin.c ++++ b/ext/gtk/gstplugin.c +@@ -1,6 +1,7 @@ + /* + * GStreamer + * Copyright (C) 2015 Matthew Waters ++ * Copyright (C) 2020 Rafał Dzięgiel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public +@@ -22,31 +23,37 @@ + #include "config.h" + #endif + ++#include "gtkconfig.h" ++ ++#if !defined(BUILD_FOR_GTK4) + #include "gstgtksink.h" +-#if defined(HAVE_GTK3_GL) ++#endif ++ ++#if defined(HAVE_GTK_GL) + #include "gstgtkglsink.h" + #endif + + static gboolean + plugin_init (GstPlugin * plugin) + { ++#if !defined(BUILD_FOR_GTK4) + if (!gst_element_register (plugin, "gtksink", + GST_RANK_NONE, GST_TYPE_GTK_SINK)) { + return FALSE; + } +-#if defined(HAVE_GTK3_GL) +- if (!gst_element_register (plugin, "gtkglsink", ++#endif ++ ++#if defined(HAVE_GTK_GL) ++ if (!gst_element_register (plugin, GTKCONFIG_GLSINK, + GST_RANK_NONE, GST_TYPE_GTK_GL_SINK)) { + return FALSE; + } + #endif +- + return TRUE; + } + + GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, + GST_VERSION_MINOR, +- gtk, +- "Gtk+ sink", ++ GTKCONFIG_PLUGIN, GTKCONFIG_NAME " sink", + plugin_init, PACKAGE_VERSION, GST_LICENSE, GST_PACKAGE_NAME, + GST_PACKAGE_ORIGIN) +diff --git a/ext/gtk/gtkconfig.h b/ext/gtk/gtkconfig.h +new file mode 100644 +index 000000000..8dd28dc00 +--- /dev/null ++++ b/ext/gtk/gtkconfig.h +@@ -0,0 +1,29 @@ ++/* ++ * GStreamer ++ * Copyright (C) 2020 Rafał Dzięgiel ++ * ++ * This library is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU Library General Public ++ * License as published by the Free Software Foundation; either ++ * version 2 of the License, or (at your option) any later version. ++ * ++ * This library is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ * Library General Public License for more details. ++ * ++ * You should have received a copy of the GNU Library General Public ++ * License along with this library; if not, write to the ++ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, ++ * Boston, MA 02110-1301, USA. ++ */ ++ ++#if defined(BUILD_FOR_GTK4) ++#define GTKCONFIG_PLUGIN gtk4 ++#define GTKCONFIG_NAME "GTK4" ++#define GTKCONFIG_GLSINK "gtk4glsink" ++#else ++#define GTKCONFIG_PLUGIN gtk ++#define GTKCONFIG_NAME "GTK" ++#define GTKCONFIG_GLSINK "gtkglsink" ++#endif +diff --git a/ext/gtk/gtkgstbasewidget.c b/ext/gtk/gtkgstbasewidget.c +index 5d57b0ee7..bd0794f2f 100644 +--- a/ext/gtk/gtkgstbasewidget.c ++++ b/ext/gtk/gtkgstbasewidget.c +@@ -1,6 +1,7 @@ + /* + * GStreamer + * Copyright (C) 2015 Matthew Waters ++ * Copyright (C) 2020 Rafał Dzięgiel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public +@@ -74,6 +75,22 @@ gtk_gst_base_widget_get_preferred_height (GtkWidget * widget, gint * min, + *natural = video_height; + } + ++#if defined(BUILD_FOR_GTK4) ++static void ++gtk_gst_base_widget_measure (GtkWidget * widget, GtkOrientation orientation, ++ gint for_size, gint * min, gint * natural, ++ gint * minimum_baseline, gint * natural_baseline) ++{ ++ if (orientation == GTK_ORIENTATION_HORIZONTAL) ++ gtk_gst_base_widget_get_preferred_width (widget, min, natural); ++ else ++ gtk_gst_base_widget_get_preferred_height (widget, min, natural); ++ ++ *minimum_baseline = -1; ++ *natural_baseline = -1; ++} ++#endif ++ + static void + gtk_gst_base_widget_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec) +@@ -235,11 +252,23 @@ _gdk_key_to_navigation_string (guint keyval) + } + } + ++static GdkEvent * ++_get_current_event (GtkEventController * controller) ++{ ++#if defined(BUILD_FOR_GTK4) ++ return gtk_event_controller_get_current_event (controller); ++#else ++ return gtk_get_current_event (); ++#endif ++} ++ + static void + _gdk_event_free (GdkEvent * event) + { ++#if !defined(BUILD_FOR_GTK4) + if (event) + gdk_event_free (event); ++#endif + } + + static gboolean +@@ -253,7 +282,7 @@ gtk_gst_base_widget_key_event (GtkEventControllerKey * key_controller, + + if ((element = g_weak_ref_get (&base_widget->element))) { + if (GST_IS_NAVIGATION (element)) { +- GdkEvent *event = gtk_get_current_event (); ++ GdkEvent *event = _get_current_event (controller); + const gchar *str = _gdk_key_to_navigation_string (keyval); + + if (str) { +@@ -337,7 +366,12 @@ _display_size_to_stream_size (GtkGstBaseWidget * base_widget, gdouble x, + } + + static gboolean +-gtk_gst_base_widget_button_event (GtkGestureMultiPress * gesture, ++gtk_gst_base_widget_button_event ( ++#if defined(BUILD_FOR_GTK4) ++ GtkGestureClick * gesture, ++#else ++ GtkGestureMultiPress * gesture, ++#endif + gint n_press, gdouble x, gdouble y) + { + GtkEventController *controller = GTK_EVENT_CONTROLLER (gesture); +@@ -347,18 +381,26 @@ gtk_gst_base_widget_button_event (GtkGestureMultiPress * gesture, + + if ((element = g_weak_ref_get (&base_widget->element))) { + if (GST_IS_NAVIGATION (element)) { +- GdkEvent *event = gtk_get_current_event (); ++ GdkEvent *event = _get_current_event (controller); + const gchar *key_type = + gdk_event_get_event_type (event) == GDK_BUTTON_PRESS + ? "mouse-button-press" : "mouse-button-release"; + gdouble stream_x, stream_y; ++#if !defined(BUILD_FOR_GTK4) + guint button; + gdk_event_get_button (event, &button); ++#endif + + _display_size_to_stream_size (base_widget, x, y, &stream_x, &stream_y); + + gst_navigation_send_mouse_event (GST_NAVIGATION (element), key_type, +- button, stream_x, stream_y); ++#if defined(BUILD_FOR_GTK4) ++ /* Gesture is set to ignore other buttons so we do not have to check */ ++ GDK_BUTTON_PRIMARY, ++#else ++ button, ++#endif ++ stream_x, stream_y); + + _gdk_event_free (event); + } +@@ -418,11 +460,15 @@ gtk_gst_base_widget_class_init (GtkGstBaseWidgetClass * klass) + "When enabled, alpha will be ignored and converted to black", + DEFAULT_IGNORE_ALPHA, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + ++#if defined(BUILD_FOR_GTK4) ++ widget_klass->measure = gtk_gst_base_widget_measure; ++#else + widget_klass->get_preferred_width = gtk_gst_base_widget_get_preferred_width; + widget_klass->get_preferred_height = gtk_gst_base_widget_get_preferred_height; ++#endif + + GST_DEBUG_CATEGORY_INIT (gst_debug_gtk_base_widget, "gtkbasewidget", 0, +- "Gtk Video Base Widget"); ++ "GTK Video Base Widget"); + } + + void +@@ -439,23 +485,46 @@ gtk_gst_base_widget_init (GtkGstBaseWidget * widget) + g_weak_ref_init (&widget->element, NULL); + g_mutex_init (&widget->lock); + +- widget->key_controller = gtk_event_controller_key_new (GTK_WIDGET (widget)); ++ widget->key_controller = gtk_event_controller_key_new ( ++#if !defined(BUILD_FOR_GTK4) ++ GTK_WIDGET (widget) ++#endif ++ ); + g_signal_connect (widget->key_controller, "key-pressed", + G_CALLBACK (gtk_gst_base_widget_key_event), NULL); + g_signal_connect (widget->key_controller, "key-released", + G_CALLBACK (gtk_gst_base_widget_key_event), NULL); + +- widget->motion_controller = +- gtk_event_controller_motion_new (GTK_WIDGET (widget)); ++ widget->motion_controller = gtk_event_controller_motion_new ( ++#if !defined(BUILD_FOR_GTK4) ++ GTK_WIDGET (widget) ++#endif ++ ); + g_signal_connect (widget->motion_controller, "motion", + G_CALLBACK (gtk_gst_base_widget_motion_event), NULL); + +- widget->click_gesture = gtk_gesture_multi_press_new (GTK_WIDGET (widget)); ++ widget->click_gesture = ++#if defined(BUILD_FOR_GTK4) ++ gtk_gesture_click_new (); ++#else ++ gtk_gesture_multi_press_new (GTK_WIDGET (widget)); ++#endif + g_signal_connect (widget->click_gesture, "pressed", + G_CALLBACK (gtk_gst_base_widget_button_event), NULL); + g_signal_connect (widget->click_gesture, "released", + G_CALLBACK (gtk_gst_base_widget_button_event), NULL); + ++#if defined(BUILD_FOR_GTK4) ++ gtk_widget_set_focusable (GTK_WIDGET (widget), TRUE); ++ gtk_gesture_single_set_button (GTK_GESTURE_SINGLE (widget->click_gesture), ++ GDK_BUTTON_PRIMARY); ++ ++ gtk_widget_add_controller (GTK_WIDGET (widget), widget->key_controller); ++ gtk_widget_add_controller (GTK_WIDGET (widget), widget->motion_controller); ++ gtk_widget_add_controller (GTK_WIDGET (widget), ++ GTK_EVENT_CONTROLLER (widget->click_gesture)); ++#endif ++ + gtk_widget_set_can_focus (GTK_WIDGET (widget), TRUE); + } + +@@ -464,9 +533,13 @@ gtk_gst_base_widget_finalize (GObject * object) + { + GtkGstBaseWidget *widget = GTK_GST_BASE_WIDGET (object); + ++ /* GTK4 takes ownership of EventControllers ++ * while GTK3 still needs manual unref */ ++#if !defined(BUILD_FOR_GTK4) + g_object_unref (widget->key_controller); + g_object_unref (widget->motion_controller); + g_object_unref (widget->click_gesture); ++#endif + + gst_buffer_replace (&widget->pending_buffer, NULL); + gst_buffer_replace (&widget->buffer, NULL); +diff --git a/ext/gtk/gtkgstbasewidget.h b/ext/gtk/gtkgstbasewidget.h +index 0e31478a0..0b0fe9e55 100644 +--- a/ext/gtk/gtkgstbasewidget.h ++++ b/ext/gtk/gtkgstbasewidget.h +@@ -1,6 +1,7 @@ + /* + * GStreamer + * Copyright (C) 2015 Matthew Waters ++ * Copyright (C) 2020 Rafał Dzięgiel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public +@@ -24,7 +25,10 @@ + #include + #include + #include ++ ++#if !defined(BUILD_FOR_GTK4) + #include ++#endif + + #define GTK_GST_BASE_WIDGET(w) ((GtkGstBaseWidget *)(w)) + #define GTK_GST_BASE_WIDGET_CLASS(k) ((GtkGstBaseWidgetClass *)(k)) +@@ -39,10 +43,10 @@ typedef struct _GtkGstBaseWidgetClass GtkGstBaseWidgetClass; + struct _GtkGstBaseWidget + { + union { ++#if !defined(BUILD_FOR_GTK4) + GtkDrawingArea drawing_area; +-#if GTK_CHECK_VERSION(3, 15, 0) +- GtkGLArea gl_area; + #endif ++ GtkGLArea gl_area; + } parent; + + /* properties */ +@@ -80,10 +84,10 @@ struct _GtkGstBaseWidget + struct _GtkGstBaseWidgetClass + { + union { ++#if !defined(BUILD_FOR_GTK4) + GtkDrawingAreaClass drawing_area_class; +-#if GTK_CHECK_VERSION(3, 15, 0) +- GtkGLAreaClass gl_area_class; + #endif ++ GtkGLAreaClass gl_area_class; + } parent_class; + }; + +diff --git a/ext/gtk/gtkgstglwidget.c b/ext/gtk/gtkgstglwidget.c +index 6c423ad89..186144a1c 100644 +--- a/ext/gtk/gtkgstglwidget.c ++++ b/ext/gtk/gtkgstglwidget.c +@@ -1,6 +1,7 @@ + /* + * GStreamer + * Copyright (C) 2015 Matthew Waters ++ * Copyright (C) 2020 Rafał Dzięgiel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public +@@ -30,12 +31,20 @@ + #include + + #if GST_GL_HAVE_WINDOW_X11 && defined (GDK_WINDOWING_X11) ++#if defined(BUILD_FOR_GTK4) ++#include ++#else + #include ++#endif + #include + #endif + + #if GST_GL_HAVE_WINDOW_WAYLAND && defined (GDK_WINDOWING_WAYLAND) ++#if defined(BUILD_FOR_GTK4) ++#include ++#else + #include ++#endif + #include + #endif + +@@ -78,8 +87,7 @@ static const GLfloat vertices[] = { + G_DEFINE_TYPE_WITH_CODE (GtkGstGLWidget, gtk_gst_gl_widget, GTK_TYPE_GL_AREA, + G_ADD_PRIVATE (GtkGstGLWidget) + GST_DEBUG_CATEGORY_INIT (GST_CAT_DEFAULT, "gtkgstglwidget", 0, +- "Gtk Gst GL Widget"); +- ); ++ "GTK Gst GL Widget")); + + static void + gtk_gst_gl_widget_bind_buffer (GtkGstGLWidget * gst_widget) +@@ -407,8 +415,11 @@ gtk_gst_gl_widget_init (GtkGstGLWidget * gst_widget) + + GST_INFO ("Created %" GST_PTR_FORMAT, priv->display); + ++ /* GTK4 always has alpha */ ++#if !defined(BUILD_FOR_GTK4) + gtk_gl_area_set_has_alpha (GTK_GL_AREA (gst_widget), + !base_widget->ignore_alpha); ++#endif + } + + static void +diff --git a/ext/gtk/meson.build b/ext/gtk/meson.build +index 722775e08..466e9221e 100644 +--- a/ext/gtk/meson.build ++++ b/ext/gtk/meson.build +@@ -1,59 +1,93 @@ ++gtk_versions = [3, 4] + gtk_sources = [ + 'gstgtkbasesink.c', +- 'gstgtksink.c', + 'gstgtkutils.c', + 'gstplugin.c', + 'gtkgstbasewidget.c', +- 'gtkgstwidget.c', + ] ++gtk_dep = dependency('gtk+-3.0', required : get_option('gtk3')) ++gtk4_dep = dependency('gtk4', required : get_option('gtk4')) + +-gtk_defines = [] +-optional_deps = [] ++foreach gtk_ver : gtk_versions ++ gtkv = 'gtk' + gtk_ver.to_string() + +-gtk_dep = dependency('gtk+-3.0', required : get_option('gtk3')) +-if gtk_dep.found() +- # FIXME: automagic +- if have_gstgl and gtk_dep.version().version_compare('>=3.24.0') +- have_gtk3_gl_windowing = false ++ gtk_state = get_option(gtkv) ++ if gtk_state.disabled() ++ continue ++ endif ++ ++ min_ver = gtk_ver >= 4 ? '3.99.2' : '3.24.0' ++ x11_dep = gtk_ver >= 4 ? gtkv + '-x11' : 'gtk+-x11-3.0' ++ way_dep = gtk_ver >= 4 ? gtkv + '-wayland' : 'gtk+-wayland-3.0' ++ lib_dep = gtk_ver >= 4 ? gtk4_dep : gtk_dep + ++ if not lib_dep.found() or not lib_dep.version().version_compare('>=' + min_ver) ++ continue ++ endif ++ ++ lib_sources = [] ++ gtk_defines = [] ++ optional_deps = [] ++ have_gtk_gl_windowing = false ++ ++ lib_sources += gtk_sources ++ if gtk_ver == 3 ++ lib_sources += [ ++ 'gstgtksink.c', ++ 'gtkgstwidget.c', ++ ] ++ endif ++ ++ if have_gstgl + if gst_gl_have_window_x11 and gst_gl_have_platform_glx + # FIXME: automagic +- gtk_x11_dep = dependency('gtk+-x11-3.0', required : false) ++ gtk_x11_dep = dependency(x11_dep, required : false) + if gtk_x11_dep.found() + optional_deps += [gtk_x11_dep, gstglx11_dep] +- have_gtk3_gl_windowing = true ++ have_gtk_gl_windowing = true + endif + endif + + if gst_gl_have_window_wayland and gst_gl_have_platform_egl + # FIXME: automagic +- gtk_wayland_dep = dependency('gtk+-wayland-3.0', required : false) ++ gtk_wayland_dep = dependency(way_dep, required : false) + if gtk_wayland_dep.found() + optional_deps += [gtk_wayland_dep, gstglegl_dep, gstglwayland_dep] +- have_gtk3_gl_windowing = true ++ have_gtk_gl_windowing = true + endif + endif ++ endif ++ ++ if gtk_ver > 3 and not have_gtk_gl_windowing ++ continue ++ endif + +- if have_gtk3_gl_windowing +- gtk_sources += [ +- 'gstgtkglsink.c', +- 'gtkgstglwidget.c', +- ] +- optional_deps += [gstgl_dep, gstglproto_dep] +- gtk_defines += ['-DGST_USE_UNSTABLE_API', '-DHAVE_GTK3_GL'] ++ if have_gtk_gl_windowing ++ lib_sources += [ ++ 'gstgtkglsink.c', ++ 'gtkgstglwidget.c', ++ ] ++ optional_deps += [gstgl_dep, gstglproto_dep] ++ gtk_defines += ['-DGST_USE_UNSTABLE_API', '-DHAVE_GTK_GL'] ++ if gtk_ver == 4 ++ gtk_defines += '-DBUILD_FOR_GTK4' + endif + endif + +- gstgtk = library('gstgtk', +- gtk_sources, ++ lib_name = 'gstgtk' ++ if gtk_ver > 3 ++ lib_name += gtk_ver.to_string() ++ endif ++ ++ gstgtk = library(lib_name, ++ lib_sources, + c_args : gst_plugins_good_args + gtk_defines, + link_args : noseh_link_args, + include_directories : [configinc], +- dependencies : [gtk_dep, gstvideo_dep, gstbase_dep, libm] + optional_deps, ++ dependencies : [lib_dep, gstvideo_dep, gstbase_dep, libm] + optional_deps, + install : true, + install_dir : plugins_install_dir, + ) + pkgconfig.generate(gstgtk, install_dir : plugins_pkgconfig_install_dir) + plugins += [gstgtk] +-endif +- ++endforeach +diff --git a/meson_options.txt b/meson_options.txt +index 3dafe1fda..ca2b5d8d7 100644 +--- a/meson_options.txt ++++ b/meson_options.txt +@@ -53,6 +53,7 @@ option('dv1394', type : 'feature', value : 'auto', description : 'Digital IEEE13 + option('flac', type : 'feature', value : 'auto', description : 'FLAC audio codec plugin') + option('gdk-pixbuf', type : 'feature', value : 'auto', description : 'gdk-pixbuf image decoder, overlay, and sink plugin') + option('gtk3', type : 'feature', value : 'auto', description : 'GTK+ video sink plugin') ++option('gtk4', type : 'feature', value : 'disabled', description : 'GTK4 video sink plugin') + option('jack', type : 'feature', value : 'auto', description : 'JACK audio source/sink plugin') + option('jpeg', type : 'feature', value : 'auto', description : 'JPEG image codec plugin') + option('lame', type : 'feature', value : 'auto', description : 'LAME mp3 audio encoder plugin') +-- +GitLab + + +From dca6efe22a665339307a3c6f2ecd9f7b72cd6a31 Mon Sep 17 00:00:00 2001 +From: Rafostar <40623528+Rafostar@users.noreply.github.com> +Date: Thu, 12 Nov 2020 14:46:15 +0100 +Subject: [PATCH 04/10] gtk(4): separate gtk and gtk4 meson dependencies + +This fixes building tests against the correct gtk version +--- + ext/gtk/meson.build | 17 +++++++++++++---- + tests/examples/gtk/meson.build | 2 +- + 2 files changed, 14 insertions(+), 5 deletions(-) + +diff --git a/ext/gtk/meson.build b/ext/gtk/meson.build +index 466e9221e..82765b6c8 100644 +--- a/ext/gtk/meson.build ++++ b/ext/gtk/meson.build +@@ -6,7 +6,10 @@ gtk_sources = [ + 'gtkgstbasewidget.c', + ] + gtk_dep = dependency('gtk+-3.0', required : get_option('gtk3')) ++gtk_optional_deps = [] ++ + gtk4_dep = dependency('gtk4', required : get_option('gtk4')) ++gtk4_optional_deps = [] + + foreach gtk_ver : gtk_versions + gtkv = 'gtk' + gtk_ver.to_string() +@@ -17,8 +20,8 @@ foreach gtk_ver : gtk_versions + endif + + min_ver = gtk_ver >= 4 ? '3.99.2' : '3.24.0' +- x11_dep = gtk_ver >= 4 ? gtkv + '-x11' : 'gtk+-x11-3.0' +- way_dep = gtk_ver >= 4 ? gtkv + '-wayland' : 'gtk+-wayland-3.0' ++ x11_str = gtk_ver >= 4 ? gtkv + '-x11' : 'gtk+-x11-3.0' ++ way_str = gtk_ver >= 4 ? gtkv + '-wayland' : 'gtk+-wayland-3.0' + lib_dep = gtk_ver >= 4 ? gtk4_dep : gtk_dep + + if not lib_dep.found() or not lib_dep.version().version_compare('>=' + min_ver) +@@ -41,7 +44,7 @@ foreach gtk_ver : gtk_versions + if have_gstgl + if gst_gl_have_window_x11 and gst_gl_have_platform_glx + # FIXME: automagic +- gtk_x11_dep = dependency(x11_dep, required : false) ++ gtk_x11_dep = dependency(x11_str, required : false) + if gtk_x11_dep.found() + optional_deps += [gtk_x11_dep, gstglx11_dep] + have_gtk_gl_windowing = true +@@ -50,7 +53,7 @@ foreach gtk_ver : gtk_versions + + if gst_gl_have_window_wayland and gst_gl_have_platform_egl + # FIXME: automagic +- gtk_wayland_dep = dependency(way_dep, required : false) ++ gtk_wayland_dep = dependency(way_str, required : false) + if gtk_wayland_dep.found() + optional_deps += [gtk_wayland_dep, gstglegl_dep, gstglwayland_dep] + have_gtk_gl_windowing = true +@@ -74,6 +77,12 @@ foreach gtk_ver : gtk_versions + endif + endif + ++ if gtk_ver == 3 ++ gtk_optional_deps = optional_deps ++ elif gtk_ver == 4 ++ gtk4_optional_deps = optional_deps ++ endif ++ + lib_name = 'gstgtk' + if gtk_ver > 3 + lib_name += gtk_ver.to_string() +diff --git a/tests/examples/gtk/meson.build b/tests/examples/gtk/meson.build +index 76e9f4f8e..4de2075e6 100644 +--- a/tests/examples/gtk/meson.build ++++ b/tests/examples/gtk/meson.build +@@ -1,5 +1,5 @@ + executable('gtksink', 'gtksink.c', +- dependencies: [gst_dep, gtk_dep, optional_deps], ++ dependencies: [gst_dep, gtk_dep, gtk_optional_deps], + c_args: gst_plugins_good_args, + include_directories: [configinc], + install: false) +-- +GitLab + + +From 905e86bca45af1d706c9e7fc1a22d0f4cf962faf Mon Sep 17 00:00:00 2001 +From: Rafostar <40623528+Rafostar@users.noreply.github.com> +Date: Thu, 12 Nov 2020 18:16:23 +0100 +Subject: [PATCH 05/10] gtk(4): clear widget during our window destruction + +In GTK4 the "destroy" signal will not be emitted +as long as someone is holding a ref on an object. +We cannot use it to do the unref anymore. Cleanup +on our window "destroy" signal instead. This is +only used to make gst-launch-1.0 close properly. +--- + ext/gtk/gstgtkbasesink.c | 11 +++++++++++ + ext/gtk/gstgtkbasesink.h | 10 +++++----- + 2 files changed, 16 insertions(+), 5 deletions(-) + +diff --git a/ext/gtk/gstgtkbasesink.c b/ext/gtk/gstgtkbasesink.c +index 1f5319089..d176d3ee8 100644 +--- a/ext/gtk/gstgtkbasesink.c ++++ b/ext/gtk/gstgtkbasesink.c +@@ -150,6 +150,8 @@ gst_gtk_base_sink_finalize (GObject * object) + { + GstGtkBaseSink *gtk_sink = GST_GTK_BASE_SINK (object); + ++ GST_DEBUG ("finalizing base sink"); ++ + GST_OBJECT_LOCK (gtk_sink); + if (gtk_sink->window && gtk_sink->window_destroy_id) + g_signal_handler_disconnect (gtk_sink->window, gtk_sink->window_destroy_id); +@@ -174,6 +176,14 @@ static void + window_destroy_cb (GtkWidget * widget, GstGtkBaseSink * gtk_sink) + { + GST_OBJECT_LOCK (gtk_sink); ++ if (gtk_sink->widget) { ++ if (gtk_sink->widget_destroy_id) { ++ g_signal_handler_disconnect (gtk_sink->widget, ++ gtk_sink->widget_destroy_id); ++ gtk_sink->widget_destroy_id = 0; ++ } ++ g_clear_object (>k_sink->widget); ++ } + gtk_sink->window = NULL; + GST_OBJECT_UNLOCK (gtk_sink); + } +@@ -214,6 +224,7 @@ gst_gtk_base_sink_get_widget (GstGtkBaseSink * gtk_sink) + /* Take the floating ref, other wise the destruction of the container will + * make this widget disappear possibly before we are done. */ + gst_object_ref_sink (gtk_sink->widget); ++ + gtk_sink->widget_destroy_id = g_signal_connect (gtk_sink->widget, "destroy", + G_CALLBACK (widget_destroy_cb), gtk_sink); + +diff --git a/ext/gtk/gstgtkbasesink.h b/ext/gtk/gstgtkbasesink.h +index 650175036..db0acb2c0 100644 +--- a/ext/gtk/gstgtkbasesink.h ++++ b/ext/gtk/gstgtkbasesink.h +@@ -51,14 +51,14 @@ GType gst_gtk_base_sink_get_type (void); + struct _GstGtkBaseSink + { + /* */ +- GstVideoSink parent; ++ GstVideoSink parent; + +- GstVideoInfo v_info; ++ GstVideoInfo v_info; + + GtkGstBaseWidget *widget; + + /* properties */ +- gboolean force_aspect_ratio; ++ gboolean force_aspect_ratio; + GBinding *bind_aspect_ratio; + + gint par_n; +@@ -69,8 +69,8 @@ struct _GstGtkBaseSink + GBinding *bind_ignore_alpha; + + GtkWidget *window; +- gulong widget_destroy_id; +- gulong window_destroy_id; ++ gulong widget_destroy_id; ++ gulong window_destroy_id; + }; + + /** +-- +GitLab + + +From a91cd51babbe8cbe2e086a9f51efd6e526310d9a Mon Sep 17 00:00:00 2001 +From: Rafostar <40623528+Rafostar@users.noreply.github.com> +Date: Tue, 29 Dec 2020 15:03:08 +0100 +Subject: [PATCH 06/10] gtk(4): replace "size-allocate" signal with "resize" + +In GTK4 the "size-allocate" signal was removed. +Recommended replacement is "resize" signal which was +also available in GTK3, so use it instead. +--- + ext/gtk/gstgtkglsink.c | 42 ++++++++++++++++++++---------------------- + ext/gtk/gstgtkglsink.h | 2 +- + 2 files changed, 21 insertions(+), 23 deletions(-) + +diff --git a/ext/gtk/gstgtkglsink.c b/ext/gtk/gstgtkglsink.c +index daaf0eb3f..e680c5a0f 100644 +--- a/ext/gtk/gstgtkglsink.c ++++ b/ext/gtk/gstgtkglsink.c +@@ -128,17 +128,18 @@ gst_gtk_gl_sink_query (GstBaseSink * bsink, GstQuery * query) + return res; + } + +-#if !defined(BUILD_FOR_GTK4) + static void +-_size_changed_cb (GtkWidget * widget, GdkRectangle * rectangle, +- GstGtkGLSink * gtk_sink) ++_size_changed_cb (GtkWidget * widget, gint width, ++ gint height, GstGtkGLSink * gtk_sink) + { +- gint scale_factor, width, height; + gboolean reconfigure; + +- scale_factor = gtk_widget_get_scale_factor (widget); +- width = scale_factor * gtk_widget_get_allocated_width (widget); +- height = scale_factor * gtk_widget_get_allocated_height (widget); ++ GtkGstBaseWidget *base_widget = GTK_GST_BASE_WIDGET (widget); ++ ++ /* Ignore size changes before widget is negotiated ++ * we are going to queue a resize after negotiation */ ++ if (!base_widget->negotiated) ++ return; + + GST_OBJECT_LOCK (gtk_sink); + reconfigure = +@@ -153,14 +154,13 @@ _size_changed_cb (GtkWidget * widget, GdkRectangle * rectangle, + gst_event_new_reconfigure ()); + } + } +-#endif + + static void + destroy_cb (GtkWidget * widget, GstGtkGLSink * gtk_sink) + { +- if (gtk_sink->size_allocate_sig_handler) { +- g_signal_handler_disconnect (widget, gtk_sink->size_allocate_sig_handler); +- gtk_sink->size_allocate_sig_handler = 0; ++ if (gtk_sink->widget_resize_sig_handler) { ++ g_signal_handler_disconnect (widget, gtk_sink->widget_resize_sig_handler); ++ gtk_sink->widget_resize_sig_handler = 0; + } + + if (gtk_sink->widget_destroy_sig_handler) { +@@ -182,14 +182,12 @@ gst_gtk_gl_sink_start (GstBaseSink * bsink) + /* After this point, gtk_sink->widget will always be set */ + gst_widget = GTK_GST_GL_WIDGET (base_sink->widget); + +-#if !defined(BUILD_FOR_GTK4) + /* Track the allocation size */ +- if (!gtk_sink->size_allocate_sig_handler) { +- gtk_sink->size_allocate_sig_handler = +- g_signal_connect (gst_widget, "size-allocate", ++ if (!gtk_sink->widget_resize_sig_handler) { ++ gtk_sink->widget_resize_sig_handler = ++ g_signal_connect (gst_widget, "resize", + G_CALLBACK (_size_changed_cb), gtk_sink); + } +-#endif + + if (!gtk_sink->widget_destroy_sig_handler) { + gtk_sink->widget_destroy_sig_handler = +@@ -228,10 +226,10 @@ gst_gtk_gl_sink_stop (GstBaseSink * bsink) + GstGtkGLSink *gtk_sink = GST_GTK_GL_SINK (bsink); + GstGtkBaseSink *base_sink = GST_GTK_BASE_SINK (bsink); + +- if (gtk_sink->size_allocate_sig_handler) { ++ if (gtk_sink->widget_resize_sig_handler) { + g_signal_handler_disconnect (base_sink->widget, +- gtk_sink->size_allocate_sig_handler); +- gtk_sink->size_allocate_sig_handler = 0; ++ gtk_sink->widget_resize_sig_handler); ++ gtk_sink->widget_resize_sig_handler = 0; + } + + if (gtk_sink->display) { +@@ -373,10 +371,10 @@ gst_gtk_gl_sink_finalize (GObject * object) + GstGtkGLSink *gtk_sink = GST_GTK_GL_SINK (object); + GstGtkBaseSink *base_sink = GST_GTK_BASE_SINK (object); + +- if (gtk_sink->size_allocate_sig_handler) { ++ if (gtk_sink->widget_resize_sig_handler) { + g_signal_handler_disconnect (base_sink->widget, +- gtk_sink->size_allocate_sig_handler); +- gtk_sink->size_allocate_sig_handler = 0; ++ gtk_sink->widget_resize_sig_handler); ++ gtk_sink->widget_resize_sig_handler = 0; + } + + if (gtk_sink->widget_destroy_sig_handler) { +diff --git a/ext/gtk/gstgtkglsink.h b/ext/gtk/gstgtkglsink.h +index 8ff935948..57450c8ac 100644 +--- a/ext/gtk/gstgtkglsink.h ++++ b/ext/gtk/gstgtkglsink.h +@@ -57,7 +57,7 @@ struct _GstGtkGLSink + gint display_width; + gint display_height; + +- gulong size_allocate_sig_handler; ++ gulong widget_resize_sig_handler; + gulong widget_destroy_sig_handler; + }; + +-- +GitLab + + +From 8798dffb7f1f5b6ba281334789bdf4336faa005c Mon Sep 17 00:00:00 2001 +From: Rafostar <40623528+Rafostar@users.noreply.github.com> +Date: Sat, 2 Jan 2021 22:56:36 +0100 +Subject: [PATCH 07/10] gtk: fix wrong element name in docs + +In docs "gtksink" was named "gtkgstsink" which caused +the doc generation to not detect and describe it properly. +--- + ext/gtk/gstgtksink.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/ext/gtk/gstgtksink.c b/ext/gtk/gstgtksink.c +index ba8ea33ca..c330a82b4 100644 +--- a/ext/gtk/gstgtksink.c ++++ b/ext/gtk/gstgtksink.c +@@ -19,8 +19,8 @@ + */ + + /** +- * SECTION:element-gtkgstsink +- * @title: gtkgstsink ++ * SECTION:element-gtksink ++ * @title: gtksink + * + */ + +-- +GitLab + + +From 53802970c1a5182f85468552cecbabda0bb0e98d Mon Sep 17 00:00:00 2001 +From: Rafostar <40623528+Rafostar@users.noreply.github.com> +Date: Thu, 31 Dec 2020 12:44:23 +0100 +Subject: [PATCH 08/10] gtksink: add GTK4 support + +Add GTK4 compatibility for Cairo renderer based plugin. +The new sink plugin is named "gtk4sink". +--- + ext/gtk/gstgtksink.c | 16 ++++++++++++---- + ext/gtk/gstplugin.c | 8 +------- + ext/gtk/gtkconfig.h | 2 ++ + ext/gtk/gtkgstbasewidget.h | 4 ---- + ext/gtk/gtkgstwidget.c | 35 ++++++++++++++++++++++++++++------- + ext/gtk/meson.build | 16 +++------------- + 6 files changed, 46 insertions(+), 35 deletions(-) + +diff --git a/ext/gtk/gstgtksink.c b/ext/gtk/gstgtksink.c +index c330a82b4..d64859ff6 100644 +--- a/ext/gtk/gstgtksink.c ++++ b/ext/gtk/gstgtksink.c +@@ -24,10 +24,17 @@ + * + */ + ++/** ++ * SECTION:element-gtk4sink ++ * @title: gtk4sink ++ * ++ */ ++ + #ifdef HAVE_CONFIG_H + #include "config.h" + #endif + ++#include "gtkconfig.h" + #include "gtkgstwidget.h" + #include "gstgtksink.h" + +@@ -49,8 +56,8 @@ GST_STATIC_PAD_TEMPLATE ("sink", + + #define gst_gtk_sink_parent_class parent_class + G_DEFINE_TYPE_WITH_CODE (GstGtkSink, gst_gtk_sink, GST_TYPE_GTK_BASE_SINK, +- GST_DEBUG_CATEGORY_INIT (gst_debug_gtk_sink, "gtksink", 0, +- "Gtk Video Sink")); ++ GST_DEBUG_CATEGORY_INIT (gst_debug_gtk_sink, GTKCONFIG_SINK, 0, ++ GTKCONFIG_NAME " Video Sink")); + + static void + gst_gtk_sink_class_init (GstGtkSinkClass * klass) +@@ -62,9 +69,10 @@ gst_gtk_sink_class_init (GstGtkSinkClass * klass) + base_class = (GstGtkBaseSinkClass *) klass; + + base_class->create_widget = gtk_gst_widget_new; +- base_class->window_title = "Gtk+ Cairo renderer"; ++ base_class->window_title = GTKCONFIG_NAME " Cairo Renderer"; + +- gst_element_class_set_metadata (gstelement_class, "Gtk Video Sink", ++ gst_element_class_set_metadata (gstelement_class, ++ GTKCONFIG_NAME " Video Sink", + "Sink/Video", "A video sink that renders to a GtkWidget", + "Matthew Waters "); + +diff --git a/ext/gtk/gstplugin.c b/ext/gtk/gstplugin.c +index 788f4f9dd..5fb2d99f4 100644 +--- a/ext/gtk/gstplugin.c ++++ b/ext/gtk/gstplugin.c +@@ -24,10 +24,7 @@ + #endif + + #include "gtkconfig.h" +- +-#if !defined(BUILD_FOR_GTK4) + #include "gstgtksink.h" +-#endif + + #if defined(HAVE_GTK_GL) + #include "gstgtkglsink.h" +@@ -36,13 +33,10 @@ + static gboolean + plugin_init (GstPlugin * plugin) + { +-#if !defined(BUILD_FOR_GTK4) +- if (!gst_element_register (plugin, "gtksink", ++ if (!gst_element_register (plugin, GTKCONFIG_SINK, + GST_RANK_NONE, GST_TYPE_GTK_SINK)) { + return FALSE; + } +-#endif +- + #if defined(HAVE_GTK_GL) + if (!gst_element_register (plugin, GTKCONFIG_GLSINK, + GST_RANK_NONE, GST_TYPE_GTK_GL_SINK)) { +diff --git a/ext/gtk/gtkconfig.h b/ext/gtk/gtkconfig.h +index 8dd28dc00..ecbf95582 100644 +--- a/ext/gtk/gtkconfig.h ++++ b/ext/gtk/gtkconfig.h +@@ -21,9 +21,11 @@ + #if defined(BUILD_FOR_GTK4) + #define GTKCONFIG_PLUGIN gtk4 + #define GTKCONFIG_NAME "GTK4" ++#define GTKCONFIG_SINK "gtk4sink" + #define GTKCONFIG_GLSINK "gtk4glsink" + #else + #define GTKCONFIG_PLUGIN gtk + #define GTKCONFIG_NAME "GTK" ++#define GTKCONFIG_SINK "gtksink" + #define GTKCONFIG_GLSINK "gtkglsink" + #endif +diff --git a/ext/gtk/gtkgstbasewidget.h b/ext/gtk/gtkgstbasewidget.h +index 0b0fe9e55..bc0b805df 100644 +--- a/ext/gtk/gtkgstbasewidget.h ++++ b/ext/gtk/gtkgstbasewidget.h +@@ -43,9 +43,7 @@ typedef struct _GtkGstBaseWidgetClass GtkGstBaseWidgetClass; + struct _GtkGstBaseWidget + { + union { +-#if !defined(BUILD_FOR_GTK4) + GtkDrawingArea drawing_area; +-#endif + GtkGLArea gl_area; + } parent; + +@@ -84,9 +82,7 @@ struct _GtkGstBaseWidget + struct _GtkGstBaseWidgetClass + { + union { +-#if !defined(BUILD_FOR_GTK4) + GtkDrawingAreaClass drawing_area_class; +-#endif + GtkGLAreaClass gl_area_class; + } parent_class; + }; +diff --git a/ext/gtk/gtkgstwidget.c b/ext/gtk/gtkgstwidget.c +index a936210ba..eb8db8f7e 100644 +--- a/ext/gtk/gtkgstwidget.c ++++ b/ext/gtk/gtkgstwidget.c +@@ -38,17 +38,15 @@ + + G_DEFINE_TYPE (GtkGstWidget, gtk_gst_widget, GTK_TYPE_DRAWING_AREA); + +-static gboolean +-gtk_gst_widget_draw (GtkWidget * widget, cairo_t * cr) ++static void ++_drawing_area_draw (GtkDrawingArea * da, cairo_t * cr, ++ gint widget_width, gint widget_height, gpointer data) + { ++ GtkWidget *widget = GTK_WIDGET (da); + GtkGstBaseWidget *gst_widget = (GtkGstBaseWidget *) widget; +- guint widget_width, widget_height; + cairo_surface_t *surface; + GstVideoFrame frame; + +- widget_width = gtk_widget_get_allocated_width (widget); +- widget_height = gtk_widget_get_allocated_height (widget); +- + GTK_GST_BASE_WIDGET_LOCK (gst_widget); + + /* There is not much to optimize in term of redisplay, so simply swap the +@@ -148,7 +146,10 @@ gtk_gst_widget_draw (GtkWidget * widget, cairo_t * cr) + color.alpha = 1.0; + } else { + gtk_style_context_get_color (gtk_widget_get_style_context (widget), +- GTK_STATE_FLAG_NORMAL, &color); ++#if !defined(BUILD_FOR_GTK4) ++ GTK_STATE_FLAG_NORMAL, ++#endif ++ &color); + } + gdk_cairo_set_source_rgba (cr, &color); + cairo_rectangle (cr, 0, 0, widget_width, widget_height); +@@ -156,8 +157,20 @@ gtk_gst_widget_draw (GtkWidget * widget, cairo_t * cr) + } + + GTK_GST_BASE_WIDGET_UNLOCK (gst_widget); ++} ++ ++#if !defined(BUILD_FOR_GTK4) ++static gboolean ++gtk_gst_widget_draw (GtkWidget * widget, cairo_t * cr) ++{ ++ gint width = gtk_widget_get_allocated_width (widget); ++ gint height = gtk_widget_get_allocated_height (widget); ++ ++ _drawing_area_draw (GTK_DRAWING_AREA (widget), cr, width, height, NULL); ++ + return FALSE; + } ++#endif + + static void + gtk_gst_widget_finalize (GObject * object) +@@ -171,17 +184,25 @@ static void + gtk_gst_widget_class_init (GtkGstWidgetClass * klass) + { + GObjectClass *gobject_klass = (GObjectClass *) klass; ++#if !defined(BUILD_FOR_GTK4) + GtkWidgetClass *widget_klass = (GtkWidgetClass *) klass; ++#endif + + gtk_gst_base_widget_class_init (GTK_GST_BASE_WIDGET_CLASS (klass)); + gobject_klass->finalize = gtk_gst_widget_finalize; ++#if !defined(BUILD_FOR_GTK4) + widget_klass->draw = gtk_gst_widget_draw; ++#endif + } + + static void + gtk_gst_widget_init (GtkGstWidget * widget) + { + gtk_gst_base_widget_init (GTK_GST_BASE_WIDGET (widget)); ++#if defined(BUILD_FOR_GTK4) ++ gtk_drawing_area_set_draw_func (GTK_DRAWING_AREA (widget), ++ _drawing_area_draw, NULL, NULL); ++#endif + } + + GtkWidget * +diff --git a/ext/gtk/meson.build b/ext/gtk/meson.build +index 82765b6c8..c157cf8cd 100644 +--- a/ext/gtk/meson.build ++++ b/ext/gtk/meson.build +@@ -1,9 +1,11 @@ + gtk_versions = [3, 4] + gtk_sources = [ + 'gstgtkbasesink.c', ++ 'gstgtksink.c', + 'gstgtkutils.c', + 'gstplugin.c', + 'gtkgstbasewidget.c', ++ 'gtkgstwidget.c', + ] + gtk_dep = dependency('gtk+-3.0', required : get_option('gtk3')) + gtk_optional_deps = [] +@@ -34,12 +36,6 @@ foreach gtk_ver : gtk_versions + have_gtk_gl_windowing = false + + lib_sources += gtk_sources +- if gtk_ver == 3 +- lib_sources += [ +- 'gstgtksink.c', +- 'gtkgstwidget.c', +- ] +- endif + + if have_gstgl + if gst_gl_have_window_x11 and gst_gl_have_platform_glx +@@ -61,10 +57,6 @@ foreach gtk_ver : gtk_versions + endif + endif + +- if gtk_ver > 3 and not have_gtk_gl_windowing +- continue +- endif +- + if have_gtk_gl_windowing + lib_sources += [ + 'gstgtkglsink.c', +@@ -72,15 +64,13 @@ foreach gtk_ver : gtk_versions + ] + optional_deps += [gstgl_dep, gstglproto_dep] + gtk_defines += ['-DGST_USE_UNSTABLE_API', '-DHAVE_GTK_GL'] +- if gtk_ver == 4 +- gtk_defines += '-DBUILD_FOR_GTK4' +- endif + endif + + if gtk_ver == 3 + gtk_optional_deps = optional_deps + elif gtk_ver == 4 + gtk4_optional_deps = optional_deps ++ gtk_defines += '-DBUILD_FOR_GTK4' + endif + + lib_name = 'gstgtk' +-- +GitLab + + +From db5a3373c0281ae2923f411375c919583489c5ab Mon Sep 17 00:00:00 2001 +From: Rafostar <40623528+Rafostar@users.noreply.github.com> +Date: Fri, 1 Jan 2021 20:10:38 +0100 +Subject: [PATCH 09/10] gtk4: expand widget by default + +In GTK4, (v/h)expand is disabled by default which +causes widget placed in grid to appear as a 1x1px +video and might be unnoticeable, confusing users +into thinking that something does not work. +--- + ext/gtk/gtkgstbasewidget.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/ext/gtk/gtkgstbasewidget.c b/ext/gtk/gtkgstbasewidget.c +index bd0794f2f..374eb7f97 100644 +--- a/ext/gtk/gtkgstbasewidget.c ++++ b/ext/gtk/gtkgstbasewidget.c +@@ -515,6 +515,11 @@ gtk_gst_base_widget_init (GtkGstBaseWidget * widget) + G_CALLBACK (gtk_gst_base_widget_button_event), NULL); + + #if defined(BUILD_FOR_GTK4) ++ /* Otherwise widget in grid will appear as a 1x1px ++ * video which might be misleading for users */ ++ gtk_widget_set_hexpand (GTK_WIDGET (widget), TRUE); ++ gtk_widget_set_vexpand (GTK_WIDGET (widget), TRUE); ++ + gtk_widget_set_focusable (GTK_WIDGET (widget), TRUE); + gtk_gesture_single_set_button (GTK_GESTURE_SINGLE (widget->click_gesture), + GDK_BUTTON_PRIMARY); +-- +GitLab + + +From f17f29ed5cef270a50d5f72116953109c3cc8c86 Mon Sep 17 00:00:00 2001 +From: Rafostar <40623528+Rafostar@users.noreply.github.com> +Date: Sun, 3 Jan 2021 11:24:15 +0100 +Subject: [PATCH 10/10] docs: update plugin cache + +Update gtk plugin and add gtk4 plugin +--- + docs/gst_plugins_cache.json | 129 ++++++++++++++++++++++++++++++++++-- + 1 file changed, 125 insertions(+), 4 deletions(-) + +diff --git a/docs/gst_plugins_cache.json b/docs/gst_plugins_cache.json +index f8ac35e37..5afd41a99 100644 +--- a/docs/gst_plugins_cache.json ++++ b/docs/gst_plugins_cache.json +@@ -7075,10 +7075,10 @@ + "url": "Unknown package origin" + }, + "gtk": { +- "description": "Gtk+ sink", ++ "description": "GTK sink", + "elements": { + "gtkglsink": { +- "author": "Matthew Waters ", ++ "author": "Matthew Waters , Rafał Dzięgiel ", + "description": "A video sink that renders to a GtkWidget using OpenGL", + "hierarchy": [ + "GstGtkGLSink", +@@ -7094,7 +7094,7 @@ + "GstNavigation" + ], + "klass": "Sink/Video", +- "long-name": "Gtk GL Video Sink", ++ "long-name": "GTK GL Video Sink", + "pad-templates": { + "sink": { + "caps": "video/x-raw(memory:GLMemory):\n format: RGBA\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:GLMemory, meta:GstVideoOverlayComposition):\n format: RGBA\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\n", +@@ -7122,7 +7122,7 @@ + "GstNavigation" + ], + "klass": "Sink/Video", +- "long-name": "Gtk Video Sink", ++ "long-name": "GTK Video Sink", + "pad-templates": { + "sink": { + "caps": "video/x-raw:\n format: { BGRx, BGRA }\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\n", +@@ -7209,6 +7209,127 @@ + "tracers": {}, + "url": "Unknown package origin" + }, ++ "gtk4": { ++ "description": "GTK4 sink", ++ "elements": { ++ "gtk4glsink": { ++ "author": "Matthew Waters , Rafał Dzięgiel ", ++ "description": "A video sink that renders to a GtkWidget using OpenGL", ++ "hierarchy": [ ++ "GstGtkGLSink", ++ "GstGtkBaseSink", ++ "GstVideoSink", ++ "GstBaseSink", ++ "GstElement", ++ "GstObject", ++ "GInitiallyUnowned", ++ "GObject" ++ ], ++ "interfaces": [ ++ "GstNavigation" ++ ], ++ "klass": "Sink/Video", ++ "long-name": "GTK4 GL Video Sink", ++ "pad-templates": { ++ "sink": { ++ "caps": "video/x-raw(memory:GLMemory):\n format: RGBA\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:GLMemory, meta:GstVideoOverlayComposition):\n format: RGBA\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\n", ++ "direction": "sink", ++ "presence": "always" ++ } ++ }, ++ "rank": "none" ++ }, ++ "gtk4sink": { ++ "author": "Matthew Waters ", ++ "description": "A video sink that renders to a GtkWidget", ++ "hierarchy": [ ++ "GstGtkSink", ++ "GstGtkBaseSink", ++ "GstVideoSink", ++ "GstBaseSink", ++ "GstElement", ++ "GstObject", ++ "GInitiallyUnowned", ++ "GObject" ++ ], ++ "interfaces": [ ++ "GstNavigation" ++ ], ++ "klass": "Sink/Video", ++ "long-name": "GTK4 Video Sink", ++ "pad-templates": { ++ "sink": { ++ "caps": "video/x-raw:\n format: { BGRx, BGRA }\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\n", ++ "direction": "sink", ++ "presence": "always" ++ } ++ }, ++ "rank": "none" ++ } ++ }, ++ "filename": "gstgtk4", ++ "license": "LGPL", ++ "other-types": { ++ "GstGtkBaseSink": { ++ "hierarchy": [ ++ "GstGtkBaseSink", ++ "GstVideoSink", ++ "GstBaseSink", ++ "GstElement", ++ "GstObject", ++ "GInitiallyUnowned", ++ "GObject" ++ ], ++ "interfaces": [ ++ "GstNavigation" ++ ], ++ "kind": "object", ++ "properties": { ++ "force-aspect-ratio": { ++ "blurb": "When enabled, scaling will respect original aspect ratio", ++ "conditionally-available": false, ++ "construct": false, ++ "construct-only": false, ++ "controllable": false, ++ "default": "true", ++ "mutable": "null", ++ "readable": true, ++ "type": "gboolean", ++ "writable": true ++ }, ++ "pixel-aspect-ratio": { ++ "blurb": "The pixel aspect ratio of the device", ++ "conditionally-available": false, ++ "construct": false, ++ "construct-only": false, ++ "controllable": false, ++ "default": "0/1", ++ "max": "2147483647/1", ++ "min": "0/1", ++ "mutable": "null", ++ "readable": true, ++ "type": "GstFraction", ++ "writable": true ++ }, ++ "widget": { ++ "blurb": "The GtkWidget to place in the widget hierarchy (must only be get from the GTK main thread)", ++ "conditionally-available": false, ++ "construct": false, ++ "construct-only": false, ++ "controllable": false, ++ "mutable": "null", ++ "readable": true, ++ "type": "GtkWidget", ++ "writable": false ++ } ++ } ++ } ++ }, ++ "package": "GStreamer Good Plug-ins", ++ "source": "gst-plugins-good", ++ "tracers": {}, ++ "url": "Unknown package origin" ++ }, + "icydemux": { + "description": "Demux ICY tags from a stream", + "elements": { +-- +GitLab + diff --git a/pkgs/applications/misc/authenticator/default.nix b/pkgs/applications/misc/authenticator/default.nix new file mode 100644 index 00000000000..89ea3dae229 --- /dev/null +++ b/pkgs/applications/misc/authenticator/default.nix @@ -0,0 +1,98 @@ +{ lib +, stdenv +, fetchFromGitLab +, fetchpatch +, appstream-glib +, desktop-file-utils +, meson +, ninja +, pkg-config +, python3 +, rustPlatform +, wrapGAppsHook +, gdk-pixbuf +, glib +, gst_all_1 +, gtk4 +, libadwaita +, openssl +, sqlite +, wayland +, zbar +}: + +stdenv.mkDerivation rec { + pname = "authenticator"; + version = "4.0.3"; + + src = fetchFromGitLab { + domain = "gitlab.gnome.org"; + owner = "World"; + repo = "Authenticator"; + rev = version; + sha256 = "0fvs76f3fm5pxn7wg6sjbqpgip5w2j7xrh4siasdcl2bx6vsld8b"; + }; + + cargoDeps = rustPlatform.fetchCargoTarball { + inherit src; + name = "${pname}-${version}"; + sha256 = "1s97jyszxf24rs3ni11phiyvmp1wm8sicb0rh1jgwz4bn1cnakx4"; + }; + + postPatch = '' + patchShebangs build-aux + ''; + + nativeBuildInputs = [ + appstream-glib + desktop-file-utils + meson + ninja + pkg-config + python3 + wrapGAppsHook + ] ++ (with rustPlatform; [ + cargoSetupHook + rust.cargo + rust.rustc + ]); + + buildInputs = [ + gdk-pixbuf + glib + gst_all_1.gstreamer + gst_all_1.gst-plugins-base + # See https://gitlab.gnome.org/World/Authenticator/-/blob/master/build-aux/com.belmoussaoui.Authenticator.Devel.json + (gst_all_1.gst-plugins-good.overrideAttrs (old: { + patches = [ + #(fetchpatch { + # url = "https://gitlab.gnome.org/World/Authenticator/-/raw/master/build-aux/767.patch"; + # sha256 = "1g3zkfs248p8wvrvplwrl38vylqsafv6vapfr1nj5kg7ndfrgilf"; + #}) + ./767.patch + ]; + mesonFlags = old.mesonFlags ++ [ + "-Dgtk3=disabled" + "-Dgtk4=enabled" + "-Dgtk4-experiments=true" + ]; + buildInputs = old.buildInputs ++ [ + gtk4 + ]; + })) + gst_all_1.gst-plugins-bad + gtk4 + libadwaita + openssl + sqlite + wayland + zbar + ]; + + meta = with lib; { + description = "Two-factor authentication code generator for GNOME"; + homepage = "https://gitlab.gnome.org/World/Authenticator"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ dotlambda ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 692b02f386f..28ee47f51ba 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1077,6 +1077,8 @@ in audiowaveform = callPackage ../tools/audio/audiowaveform { }; + authenticator = callPackage ../applications/misc/authenticator { }; + autoflake = callPackage ../development/tools/analysis/autoflake { }; autospotting = callPackage ../applications/misc/autospotting { }; From c4bd0719e31e4e8d07aeecf4fcc578bd666fcb59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Milan=20P=C3=A4ssler?= Date: Mon, 3 May 2021 00:55:49 +0200 Subject: [PATCH 289/339] bpftools: build bpf_asm, bpf_dbg I needed some other bpf-related tools located in the kernel source tree, so I hijacked the bpftool package, renamed it to bpftools and added those programs. --- pkgs/os-specific/linux/bpftool/default.nix | 30 ---------------- pkgs/os-specific/linux/bpftools/default.nix | 38 +++++++++++++++++++++ pkgs/top-level/aliases.nix | 1 + pkgs/top-level/all-packages.nix | 2 +- 4 files changed, 40 insertions(+), 31 deletions(-) delete mode 100644 pkgs/os-specific/linux/bpftool/default.nix create mode 100644 pkgs/os-specific/linux/bpftools/default.nix diff --git a/pkgs/os-specific/linux/bpftool/default.nix b/pkgs/os-specific/linux/bpftool/default.nix deleted file mode 100644 index d8c64738d82..00000000000 --- a/pkgs/os-specific/linux/bpftool/default.nix +++ /dev/null @@ -1,30 +0,0 @@ -{ lib, stdenv -, libopcodes, libbfd, libelf -, linuxPackages_latest, zlib -, python3 -}: - -stdenv.mkDerivation { - pname = "bpftool"; - inherit (linuxPackages_latest.kernel) version src; - - nativeBuildInputs = [ python3 ]; - buildInputs = [ libopcodes libbfd libelf zlib ]; - - preConfigure = '' - patchShebangs scripts/bpf_helpers_doc.py - - cd tools/bpf/bpftool - substituteInPlace ./Makefile \ - --replace '/usr/local' "$out" \ - --replace '/usr' "$out" \ - --replace '/sbin' '/bin' - ''; - - meta = with lib; { - description = "Debugging/program analysis tool for the eBPF subsystem"; - license = [ licenses.gpl2 licenses.bsd2 ]; - platforms = platforms.linux; - maintainers = with maintainers; [ thoughtpolice ]; - }; -} diff --git a/pkgs/os-specific/linux/bpftools/default.nix b/pkgs/os-specific/linux/bpftools/default.nix new file mode 100644 index 00000000000..3e20efa9f01 --- /dev/null +++ b/pkgs/os-specific/linux/bpftools/default.nix @@ -0,0 +1,38 @@ +{ lib, stdenv +, libopcodes, libbfd, libelf, readline +, linuxPackages_latest, zlib +, python3, bison, flex +}: + +stdenv.mkDerivation { + pname = "bpftools"; + inherit (linuxPackages_latest.kernel) version src; + + nativeBuildInputs = [ python3 bison flex ]; + buildInputs = [ libopcodes libbfd libelf zlib readline ]; + + preConfigure = '' + patchShebangs scripts/bpf_helpers_doc.py + + cd tools/bpf + substituteInPlace ./bpftool/Makefile \ + --replace '/usr/local' "$out" \ + --replace '/usr' "$out" \ + --replace '/sbin' '/bin' + ''; + + buildFlags = [ "bpftool" "bpf_asm" "bpf_dbg" ]; + + installPhase = '' + make -C bpftool install + install -Dm755 -t $out/bin bpf_asm + install -Dm755 -t $out/bin bpf_dbg + ''; + + meta = with lib; { + description = "Debugging/program analysis tools for the eBPF subsystem"; + license = [ licenses.gpl2 licenses.bsd2 ]; + platforms = platforms.linux; + maintainers = with maintainers; [ thoughtpolice ]; + }; +} diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index eadd95870ca..efe14dd45c9 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -70,6 +70,7 @@ mapAliases ({ bazaarTools = throw "bazaar has been deprecated by breezy."; # added 2020-04-19 beegfs = throw "beegfs has been removed."; # added 2019-11-24 bluezFull = bluez; # Added 2019-12-03 + bpftool = bpftools; # Added 2021-05-03 brackets = throw "brackets has been removed, it was unmaintained and had open vulnerabilities"; # added 2021-01-24 bridge_utils = bridge-utils; # added 2015-02-20 bro = zeek; # added 2019-09-29 diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 51658440cad..927fd1a41fd 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -12536,7 +12536,7 @@ in libbpf = callPackage ../os-specific/linux/libbpf { }; - bpftool = callPackage ../os-specific/linux/bpftool { }; + bpftools = callPackage ../os-specific/linux/bpftools { }; bpm-tools = callPackage ../tools/audio/bpm-tools { }; From 280c8cf540342414661b89158c707fb9ef74a91e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=BCtz?= Date: Mon, 3 May 2021 02:04:29 +0200 Subject: [PATCH 290/339] py3c: fix build with darwin (#121447) --- pkgs/development/libraries/py3c/default.nix | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/pkgs/development/libraries/py3c/default.nix b/pkgs/development/libraries/py3c/default.nix index 2a89161ef38..eec051f0cc1 100644 --- a/pkgs/development/libraries/py3c/default.nix +++ b/pkgs/development/libraries/py3c/default.nix @@ -11,6 +11,11 @@ stdenv.mkDerivation rec { sha256 = "04i2z7hrig78clc59q3i1z2hh24g7z1bfvxznlzxv00d4s57nhpi"; }; + postPatch = lib.optionalString stdenv.cc.isClang '' + substituteInPlace test/setup.py \ + --replace "'-Werror', " "" + ''; + makeFlags = [ "prefix=${placeholder "out"}" ]; @@ -26,6 +31,6 @@ stdenv.mkDerivation rec { homepage = "https://github.com/encukou/py3c"; description = "Python 2/3 compatibility layer for C extensions"; license = licenses.mit; - maintainers = with maintainers; [ ajs124 ]; + maintainers = with maintainers; [ ajs124 dotlambda ]; }; } From 11bb46fdc63db2f00c7f458f871d2015e1f4fe6e Mon Sep 17 00:00:00 2001 From: nixinator <33lockdown33@protonmail.com> Date: Tue, 13 Apr 2021 20:18:49 +0100 Subject: [PATCH 291/339] clanlib: init at 4.1.0 Co-authored-by: Sandro --- .../development/libraries/clanlib/default.nix | 50 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 2 files changed, 52 insertions(+) create mode 100644 pkgs/development/libraries/clanlib/default.nix diff --git a/pkgs/development/libraries/clanlib/default.nix b/pkgs/development/libraries/clanlib/default.nix new file mode 100644 index 00000000000..15fd9cd7286 --- /dev/null +++ b/pkgs/development/libraries/clanlib/default.nix @@ -0,0 +1,50 @@ +{ lib +, stdenv +, fetchFromGitHub +, autoreconfHook +, libGL +, libpng +, pkg-config +, xorg +, file +, freetype +, fontconfig +, xlibsWrapper +, alsaLib +, libXrender +}: + +stdenv.mkDerivation rec { + pname = "clanlib"; + version = "4.1.0"; + + src = fetchFromGitHub { + repo = "ClanLib"; + owner = "sphair"; + rev = "v${version}"; + sha256 = "sha256-SVsLWcTP+PCIGDWLkadMpJPj4coLK9dJrW4sc2+HotE="; + }; + + nativeBuildInputs = [ + pkg-config + autoreconfHook + ]; + buildInputs = [ + libGL + libpng + xorg.xorgproto + freetype + fontconfig + xlibsWrapper + alsaLib + libXrender + ]; + + meta = with lib; { + homepage = "https://github.com/sphair/ClanLib"; + description = "A cross platform toolkit library with a primary focus on game creation"; + license = licenses.mit; + maintainers = with maintainers; [ nixinator ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 029495618b0..f47d8755bc9 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -14081,6 +14081,8 @@ in cl = callPackage ../development/libraries/cl { }; + clanlib = callPackage ../development/libraries/clanlib { }; + classads = callPackage ../development/libraries/classads { }; clearsilver = callPackage ../development/libraries/clearsilver { }; From d5a0b50f2653f9792f62138edbff70c789f233ab Mon Sep 17 00:00:00 2001 From: nixinator <33lockdown33@protonmail.com> Date: Tue, 13 Apr 2021 20:21:37 +0100 Subject: [PATCH 292/339] methane: init at 2.0.1 --- pkgs/games/methane/default.nix | 70 +++++++++++++++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 2 files changed, 72 insertions(+) create mode 100644 pkgs/games/methane/default.nix diff --git a/pkgs/games/methane/default.nix b/pkgs/games/methane/default.nix new file mode 100644 index 00000000000..17c9dc42567 --- /dev/null +++ b/pkgs/games/methane/default.nix @@ -0,0 +1,70 @@ +{ lib +, stdenv +, fetchFromGitHub +, pkg-config +, SDL2 +, SDL2_image +, SDL2_mixer +, fontconfig +, freealut +, freeglut +, gettext +, libGL +, libGLU +, openal +, quesoglc +, clanlib +, libXrender +, libmikmod +, alsaLib +}: + +stdenv.mkDerivation rec { + pname = "methane"; + version = "2.0.1"; + + src = fetchFromGitHub { + repo = "methane"; + owner = "rombust"; + rev = "v${version}"; + sha256 = "sha256-STS2+wfZ8E1jpr0PYQOBQsztxhJU0Dt3IhWBE3sjdWE="; + }; + + nativeBuildInputs = [ + gettext + pkg-config + ]; + buildInputs = [ + SDL2 + SDL2_image + SDL2_mixer + fontconfig + freealut + freeglut + libGL + libGLU + openal + quesoglc + clanlib + libXrender + libmikmod + alsaLib + ]; + + installPhase = '' + runHook preInstall + mkdir -p $out/bin/ $out/share/methane/ $out/share/docs/ + cp methane $out/bin + cp -r resources/* $out/share/methane/. + cp -r docs/* $out/share/docs/. + runHook postInstall + ''; + + meta = with lib; { + homepage = "https://github.com/rombust/methane"; + description = "A clone of Taito's Bubble Bobble arcade game released for Amiga in 1993 by Apache Software"; + license = licenses.gpl2Only; + maintainers = with maintainers; [ nixinator ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index f47d8755bc9..367989baea3 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -27995,6 +27995,8 @@ in megaglest = callPackage ../games/megaglest {}; + methane = callPackage ../games/methane { }; + mindustry = callPackage ../games/mindustry { }; mindustry-wayland = callPackage ../games/mindustry { glew = glew-egl; }; From b942e0f6508432b034042371cd5a53f74a63af50 Mon Sep 17 00:00:00 2001 From: Luke Granger-Brown Date: Mon, 3 May 2021 01:44:52 +0000 Subject: [PATCH 293/339] nixos/tests/installer: don't break under i686 Currently, the installer tests just hang after the initial install phase on i686 because qemu just quits because of the gic parameter. Fix this by doing x86 things for both x86-64 and i686. --- nixos/tests/installer.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nixos/tests/installer.nix b/nixos/tests/installer.nix index 24c55081f9a..48f0f593425 100644 --- a/nixos/tests/installer.nix +++ b/nixos/tests/installer.nix @@ -75,7 +75,7 @@ let else '' def assemble_qemu_flags(): flags = "-cpu max" - ${if system == "x86_64-linux" + ${if (system == "x86_64-linux" || system == "i686-linux") then ''flags += " -m 1024"'' else ''flags += " -m 768 -enable-kvm -machine virt,gic-version=host"'' } From 4ec2272826852cd7b843e34b113635d193b5b2dd Mon Sep 17 00:00:00 2001 From: Ben Siraphob Date: Sun, 2 May 2021 21:01:30 +0700 Subject: [PATCH 294/339] top-level/coq-packages: remove dontDistribute In the GitHub discussion of 527bad18d08b5f6b2c1496e684db0ec16eaf51c3, it was decided to allow Hydra to build coqPackages. --- pkgs/top-level/coq-packages.nix | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/pkgs/top-level/coq-packages.nix b/pkgs/top-level/coq-packages.nix index e533d5aace1..2cd2965fc61 100644 --- a/pkgs/top-level/coq-packages.nix +++ b/pkgs/top-level/coq-packages.nix @@ -122,9 +122,7 @@ in rec { coqPackages_8_11 = mkCoqPackages coq_8_11; coqPackages_8_12 = mkCoqPackages coq_8_12; coqPackages_8_13 = mkCoqPackages coq_8_13; - coqPackages = recurseIntoAttrs (lib.mapDerivationAttrset lib.dontDistribute - coqPackages_8_11 - ); + coqPackages = recurseIntoAttrs coqPackages_8_11; coq = coqPackages.coq; } From 25fd0dde19a60d90a7c6edf30f77746daeea717a Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Mon, 3 May 2021 03:34:08 +0000 Subject: [PATCH 295/339] go-tools: 2020.2.3 -> 2020.2.4 --- pkgs/development/tools/go-tools/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/tools/go-tools/default.nix b/pkgs/development/tools/go-tools/default.nix index 2bf5093e5e3..00cd19863d6 100644 --- a/pkgs/development/tools/go-tools/default.nix +++ b/pkgs/development/tools/go-tools/default.nix @@ -5,16 +5,16 @@ buildGoModule rec { pname = "go-tools"; - version = "2020.2.3"; + version = "2020.2.4"; src = fetchFromGitHub { owner = "dominikh"; repo = "go-tools"; rev = version; - sha256 = "17li8jbw3cpn59kpcl3j3r2an4wkx3fc81xn0j4xgbjpkxh9493n"; + sha256 = "sha256-yFZ01bfejbq8zQ52DbcomBcHnB6H5Ds4MJP93xQ2/jU="; }; - vendorSha256 = "081p008sb3lkc8j6sa6n42qi04za4a631kihrd4ca6aigwkgl3ak"; + vendorSha256 = "sha256-Uw36Jn9RGcVIyzDOMIwi6hMQsSDWKG0kYpOOpREANyA="; doCheck = false; From 4eb7c561e3432910afee28695a3fd6829a0ab9a7 Mon Sep 17 00:00:00 2001 From: JesusMtnez Date: Mon, 3 May 2021 06:44:16 +0200 Subject: [PATCH 296/339] slack: 4.14.0 -> 4.15.0 --- .../networking/instant-messengers/slack/default.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/applications/networking/instant-messengers/slack/default.nix b/pkgs/applications/networking/instant-messengers/slack/default.nix index 1775e45d4e6..6269e5c3a97 100644 --- a/pkgs/applications/networking/instant-messengers/slack/default.nix +++ b/pkgs/applications/networking/instant-messengers/slack/default.nix @@ -42,11 +42,11 @@ let pname = "slack"; - x86_64-darwin-version = "4.14.0"; - x86_64-darwin-sha256 = "0kpjsnriav6rcddjkz0z9arxjd09i6bw2krnmf3dc31my64nmxs6"; + x86_64-darwin-version = "4.15.0"; + x86_64-darwin-sha256 = "12mfha0f7nciszsv7fb0zk4y10p63mh7kaw8gbk3q2fmyp8aij6l"; - x86_64-linux-version = "4.14.0"; - x86_64-linux-sha256 = "0xy9i8ssjba62ca7lfan58rhwx69wkapfd0jzkaj95qhqnv019fg"; + x86_64-linux-version = "4.15.0"; + x86_64-linux-sha256 = "1xzp7ql4i3n3fqfwk0400hkg4xn0pi66sy5jzqn68z33zzf7raii"; version = { x86_64-darwin = x86_64-darwin-version; From 37bdc088ef06194353c0ebe7643267e3881afeb8 Mon Sep 17 00:00:00 2001 From: Otavio Salvador Date: Tue, 27 Apr 2021 20:42:47 -0300 Subject: [PATCH 297/339] cargo-msrv: init at 0.4.0 Signed-off-by: Otavio Salvador --- .../tools/rust/cargo-msrv/default.nix | 41 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 1 + 2 files changed, 42 insertions(+) create mode 100644 pkgs/development/tools/rust/cargo-msrv/default.nix diff --git a/pkgs/development/tools/rust/cargo-msrv/default.nix b/pkgs/development/tools/rust/cargo-msrv/default.nix new file mode 100644 index 00000000000..32ce1464f82 --- /dev/null +++ b/pkgs/development/tools/rust/cargo-msrv/default.nix @@ -0,0 +1,41 @@ +{ lib +, rustPlatform +, fetchFromGitHub +, nix-update-script +, pkg-config +, openssl +}: + +rustPlatform.buildRustPackage rec { + pname = "cargo-msrv"; + version = "0.4.0"; + + src = fetchFromGitHub { + owner = "foresterre"; + repo = pname; + rev = "v${version}"; + sha256 = "1ynv5d2rxlc1gzq93v8qjyl5063w7q42g9m95250yh2lmf9hdj5i"; + }; + + cargoSha256 = "03rphdps17gzcmf8n5w14x5i5rjnfznsl150s3cz5vzhbmnlpszf"; + + passthru = { + updateScript = nix-update-script { + attrPath = pname; + }; + }; + + # Integration tests fail + doCheck = false; + + buildInputs = [ openssl ]; + + nativeBuildInputs = [ pkg-config ]; + + meta = with lib; { + description = "Cargo subcommand \"msrv\": assists with finding your minimum supported Rust version (MSRV)"; + homepage = "https://github.com/foresterre/cargo-msrv"; + license = with licenses; [ asl20 /* or */ mit ]; + maintainers = with maintainers; [ otavio ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 367989baea3..4dec9003472 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -11475,6 +11475,7 @@ in cargo-make = callPackage ../development/tools/rust/cargo-make { inherit (darwin.apple_sdk.frameworks) Security SystemConfiguration; }; + cargo-msrv = callPackage ../development/tools/rust/cargo-msrv { }; cargo-play = callPackage ../development/tools/rust/cargo-play { }; cargo-raze = callPackage ../development/tools/rust/cargo-raze { inherit (darwin.apple_sdk.frameworks) Security; From dea7f56b5d81da882c43140c00974101d68807a1 Mon Sep 17 00:00:00 2001 From: midchildan Date: Mon, 3 May 2021 14:08:08 +0900 Subject: [PATCH 298/339] perlPackages.ImageExifTool: apply fix for CVE-2021-22204 --- pkgs/top-level/perl-packages.nix | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix index 9db246eae43..9dc9444e096 100644 --- a/pkgs/top-level/perl-packages.nix +++ b/pkgs/top-level/perl-packages.nix @@ -10673,6 +10673,16 @@ let sha256 = "0skm22b3gg1bfk0amklrprpva41m6mkrhqp0gi7z1nmcf9ypjh61"; }; + patches = [ + # Unfortunately, not every release is uploaded to CPAN so security fixes + # would need to be cherry-picked from releases + (fetchpatch { + name = "CVE-2021-22204.patch"; + url = "https://salsa.debian.org/perl-team/modules/packages/libimage-exiftool-perl/-/raw/0347501fda93cb8366d6451aedcf258b34fb4a2b/debian/patches/CVE-2021-22204.patch"; + sha256 = "1fxw32zcssillnv764wsd05lyswn8bbrc90q5cy9aknx0ncgsrxj"; + }) + ]; + nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang; postInstall = lib.optionalString stdenv.isDarwin '' shortenPerlShebang $out/bin/exiftool From 9fb7b6dc1d2b5521535d02eb4da3ef09fa74f644 Mon Sep 17 00:00:00 2001 From: Joe Hermaszewski Date: Mon, 3 May 2021 13:51:47 +0800 Subject: [PATCH 299/339] mautrix-signal: Fix incorrect escaping in wrapper --- pkgs/servers/mautrix-signal/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/servers/mautrix-signal/default.nix b/pkgs/servers/mautrix-signal/default.nix index 2bf69a63061..c39394879fb 100644 --- a/pkgs/servers/mautrix-signal/default.nix +++ b/pkgs/servers/mautrix-signal/default.nix @@ -37,7 +37,7 @@ python3Packages.buildPythonPackage rec { # Make a little wrapper for running mautrix-signal with its dependencies echo "$mautrixSignalScript" > $out/bin/mautrix-signal echo "#!/bin/sh - exec python -m mautrix_signal \"$@\" + exec python -m mautrix_signal \"\$@\" " > $out/bin/mautrix-signal chmod +x $out/bin/mautrix-signal wrapProgram $out/bin/mautrix-signal \ From 3976626f1b7488291515927b58f49f82678b10d8 Mon Sep 17 00:00:00 2001 From: Johannes Schleifenbaum Date: Mon, 3 May 2021 09:03:56 +0200 Subject: [PATCH 300/339] dbeaver: 21.0.3 -> 21.0.4 --- pkgs/applications/misc/dbeaver/default.nix | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/pkgs/applications/misc/dbeaver/default.nix b/pkgs/applications/misc/dbeaver/default.nix index fa5240b5333..234ed7410f9 100644 --- a/pkgs/applications/misc/dbeaver/default.nix +++ b/pkgs/applications/misc/dbeaver/default.nix @@ -2,7 +2,6 @@ , stdenv , copyDesktopItems , fetchFromGitHub -, fetchpatch , makeDesktopItem , makeWrapper , fontconfig @@ -19,18 +18,18 @@ stdenv.mkDerivation rec { pname = "dbeaver-ce"; - version = "21.0.3"; # When updating also update fetchedMavenDeps.sha256 + version = "21.0.4"; # When updating also update fetchedMavenDeps.sha256 src = fetchFromGitHub { owner = "dbeaver"; repo = "dbeaver"; rev = version; - sha256 = "sha256-ItM8t+gqE0ccuuimfEMUddykl+xt2eZIBd3MbpreRwA="; + sha256 = "sha256-jV7Pe4MsLQnIrkDnlI2SrPzSjiDHM59GbMy4G7oeQK8="; }; fetchedMavenDeps = stdenv.mkDerivation { name = "dbeaver-${version}-maven-deps"; - inherit src patches; + inherit src; buildInputs = [ maven @@ -51,18 +50,9 @@ stdenv.mkDerivation rec { dontFixup = true; outputHashAlgo = "sha256"; outputHashMode = "recursive"; - outputHash = "sha256-rsK/B39ogNu5nC41OfyAsLiwBz4gWyH+8Fj7E6+rOng="; + outputHash = "sha256-RspJTWVM0ZpAz4yDeKsG7wSHZ//bi3SSV5c0gbsqZKY="; }; - patches = [ - # Fix eclipse-color-theme URL (https://github.com/dbeaver/dbeaver/pull/12133) - # After April 15, 2021 eclipse-color-theme.github.com no longer redirects to eclipse-color-theme.github.io - (fetchpatch { - url = "https://github.com/dbeaver/dbeaver/commit/65d65e2c2c711cc87fddcec425a6915aa80f4ced.patch"; - sha256 = "sha256-pxOcRYkV/5o+tHcRhHDZ1TmZSHMnKBmkNTVAlIf9nUE="; - }) - ]; - nativeBuildInputs = [ copyDesktopItems makeWrapper From 935db0c11b26506d9e6293c78d99a19d4c73cfb1 Mon Sep 17 00:00:00 2001 From: oxalica Date: Mon, 3 May 2021 15:18:12 +0800 Subject: [PATCH 301/339] osu-lazer: 2021.410.0 -> 2021.502.0 --- pkgs/games/osu-lazer/default.nix | 4 +- pkgs/games/osu-lazer/deps.nix | 286 +++++++++++++++++-------------- 2 files changed, 160 insertions(+), 130 deletions(-) diff --git a/pkgs/games/osu-lazer/default.nix b/pkgs/games/osu-lazer/default.nix index 81f50e96822..7dd9235b69d 100644 --- a/pkgs/games/osu-lazer/default.nix +++ b/pkgs/games/osu-lazer/default.nix @@ -16,13 +16,13 @@ let in stdenv.mkDerivation rec { pname = "osu-lazer"; - version = "2021.410.0"; + version = "2021.502.0"; src = fetchFromGitHub { owner = "ppy"; repo = "osu"; rev = version; - sha256 = "twKg9iZdY+zgwEQeHMOlRZKXxAHic7GnoqH0jOdW7fw="; + sha256 = "IOneihYQry0pRXYaxZuVLIj2Ydei//khvpqwiJoakZ8="; }; patches = [ ./bypass-tamper-detection.patch ]; diff --git a/pkgs/games/osu-lazer/deps.nix b/pkgs/games/osu-lazer/deps.nix index f30ac9b13f4..9c839ec376e 100644 --- a/pkgs/games/osu-lazer/deps.nix +++ b/pkgs/games/osu-lazer/deps.nix @@ -26,8 +26,8 @@ }) (fetchNuGet { name = "Humanizer"; - version = "2.8.26"; - sha256 = "11kddzyzqpq9gkz0hmrblq494nh86va6wxx6z89xi6w1f4vj15ak"; + version = "2.9.9"; + sha256 = "07ql79qz4m7cdr6g0f0dxjywrv70xzpzz45gch73x1ad4vwc5n4m"; }) (fetchNuGet { name = "Humanizer.Core"; @@ -36,228 +36,243 @@ }) (fetchNuGet { name = "Humanizer.Core"; - version = "2.8.26"; - sha256 = "1v8xd12yms4qq1md4vh6faxicmqrvahqdd7sdkyzrphab9v44nsm"; + version = "2.9.9"; + sha256 = "05sn5l0qg5bi8qxqxlch88zlk79z9pbh6jwln7b3yxnp4hkj4kvm"; }) (fetchNuGet { name = "Humanizer.Core.af"; - version = "2.8.26"; - sha256 = "0znrq4frlkq1qi20301hlzxa6mdc275fa1i1a1i8ldgk9cjq94k9"; + version = "2.9.9"; + sha256 = "0l51ll73gjjarpyknj81v8f64mg0f0zlc7q3sgcz4fkmj6n0wxb3"; }) (fetchNuGet { name = "Humanizer.Core.ar"; - version = "2.8.26"; - sha256 = "1hi7mln48p1nmxlgdq725s4cvla9nlkvbmrsql1rfjjlsy8hn6n7"; + version = "2.9.9"; + sha256 = "1akrcrxl01phzp1cyhknwcmghhmr808dzv9aj8vzjmyq67p8mnja"; }) (fetchNuGet { name = "Humanizer.Core.az"; - version = "2.8.26"; - sha256 = "0av7ycrqwvmikqia3z3qkp9967zilrhayny17zkm0d0mnjq62vs6"; + version = "2.9.9"; + sha256 = "0jsxjvhmgwngx5b1yki5g6ns7yhzn3m5invzlnl79dh09krx9pg4"; }) (fetchNuGet { name = "Humanizer.Core.bg"; - version = "2.8.26"; - sha256 = "13j6zk2cmk7a119azxlpjhfwykrzk0vkf5a799fb2fzkvhnj4hkg"; + version = "2.9.9"; + sha256 = "0l32vi52qkvx267qnykid5965199h6rcy5r04gmkv3lg2ydds0ig"; }) (fetchNuGet { name = "Humanizer.Core.bn-BD"; - version = "2.8.26"; - sha256 = "0h619sksggfi7dnaycz6bj9aiqdgn0d8dpgjgdl73crw52lr70p9"; + version = "2.9.9"; + sha256 = "1yivbxcxh15jgy8j5fzrd40c9k75wmcd9wdy1333zwcyrwqzpx7v"; }) (fetchNuGet { name = "Humanizer.Core.cs"; - version = "2.8.26"; - sha256 = "11bh3k15388bi5wizaihnwqk7wb4n7q636fqjllwdhjggqrsc3f6"; + version = "2.9.9"; + sha256 = "05ysribnj8b2q2fcm33lcgz7mcdgx5q53w6vihyjc5s6zmlfqqfr"; }) (fetchNuGet { name = "Humanizer.Core.da"; - version = "2.8.26"; - sha256 = "09b3x3bw3cgby9qvaccnqz2y6d8gl3497dh7q0dk1iznsxbk4x4m"; + version = "2.9.9"; + sha256 = "0d6swwliw0cbb03vjv2i1n8vcclwzragi1ik3m6ysbwm1m0sip5v"; }) (fetchNuGet { name = "Humanizer.Core.de"; - version = "2.8.26"; - sha256 = "1pyp2a9my20wlwjjzv563kshl9fpjb2kd4cw41l4wvsz1bsq3l22"; + version = "2.9.9"; + sha256 = "085ijfkbz4q6q90z0qc4k5hsv2acdlhli8whiikil9mlrjsjrqhi"; }) (fetchNuGet { name = "Humanizer.Core.el"; - version = "2.8.26"; - sha256 = "0v3sdcxca4dam1y5yjh9n6v711ys0zdv38hr4kij35s6277ls6lb"; + version = "2.9.9"; + sha256 = "1f5fr6l8f4brva1jxx6migv9yhp98svwkzly1b2b6n43ngppn4jd"; }) (fetchNuGet { name = "Humanizer.Core.es"; - version = "2.8.26"; - sha256 = "0wh9qvqf80cngwsz2jnrsjpmaax4xa2xp8bbk5xs480kp071z37q"; + version = "2.9.9"; + sha256 = "0nwwxhp2wgq424fy2mjrgsjsm86y818zl64k6zibkcnfldm8als6"; }) (fetchNuGet { name = "Humanizer.Core.fa"; - version = "2.8.26"; - sha256 = "00v56ddjfv6sr6w5246gn5z0padwswvnngp8mdl7gjfg5ycmbkl1"; + version = "2.9.9"; + sha256 = "1268lf9lxxnnax0ivyghh707fy50z09qds2jlh53dw1q0lxqgp50"; }) (fetchNuGet { name = "Humanizer.Core.fi-FI"; - version = "2.8.26"; - sha256 = "1pgs0j5ri50a6vhljplhrlc8jj1hrd9ggxkj60d9v5kk9xibzzyd"; + version = "2.9.9"; + sha256 = "1cjs78z1lc7a42b1wvcpxpydyv65rvyfvfic8k0d2flwcv98i7z2"; }) (fetchNuGet { name = "Humanizer.Core.fr"; - version = "2.8.26"; - sha256 = "0kkhgy3yn8vfqlx3dhb9m3cazkgfxarknam4macng9y17l7wj83m"; + version = "2.9.9"; + sha256 = "1al0xbg6p0287v60a4s6k7vgsng6k4m0scwlshmqsqxmvfsa1wk3"; }) (fetchNuGet { name = "Humanizer.Core.fr-BE"; - version = "2.8.26"; - sha256 = "13spcx07hph366qk073pz63s56nadaac7l4mr4a66gbpqd3814kb"; + version = "2.9.9"; + sha256 = "0jvi063lsrzds52zvq4w4qx6khkjcn5k8mp4014pzlphfhvlfbcl"; }) (fetchNuGet { name = "Humanizer.Core.he"; - version = "2.8.26"; - sha256 = "1ccn82aj3rhrhsa3kvkrmjw0p687icxlfja8ngbh7sby4cszx9bk"; + version = "2.9.9"; + sha256 = "1azymmsf79dyl8ihx8kn19mymx98sjknaqrqf043fy8qwirll1wm"; }) (fetchNuGet { name = "Humanizer.Core.hr"; - version = "2.8.26"; - sha256 = "12ii79bhai3kv7zr3k9k9dh569r6p3m4l4gj25cln2isr4wdi5r9"; + version = "2.9.9"; + sha256 = "1ygi02nxssn1wrdzammr5km7ak5h8yxghfvbcmy559npg0gy2gya"; }) (fetchNuGet { name = "Humanizer.Core.hu"; - version = "2.8.26"; - sha256 = "0cibbdxiqhwrjmxlr805mg3l9v0fl2ydx4m50608rkysjq6vxx7y"; + version = "2.9.9"; + sha256 = "0nimza5dngvl6yyigavr1rk5068yf2fmq3w3nm128plbnc8ynxfr"; }) (fetchNuGet { name = "Humanizer.Core.hy"; - version = "2.8.26"; - sha256 = "15aikm04f74abm4ak8rvnnkrlcz155gibn1y81pbgsyn7yrh84v3"; + version = "2.9.9"; + sha256 = "0v11hfh39mzm27dshmakhdnbpgzg660mskn1pkmmfdprka970cfj"; }) (fetchNuGet { name = "Humanizer.Core.id"; - version = "2.8.26"; - sha256 = "1i9gpzdfhmbvrqg858kqz5461sp3sh60g16dmcmyi1ik0qlspijn"; + version = "2.9.9"; + sha256 = "012bhisp75s4wv37ra692bfsvibnqgbfyipb2hw0743dqcy2mah2"; }) (fetchNuGet { name = "Humanizer.Core.it"; - version = "2.8.26"; - sha256 = "01j7qskmqcxsakbx3bkxcjyzrh6nxi2v6kfzsfb0vf980qqq331l"; + version = "2.9.9"; + sha256 = "1jj7qbia4b09hsyll524mpz67vy4z25zazwc1g10yi1sjsyah92f"; }) (fetchNuGet { name = "Humanizer.Core.ja"; - version = "2.8.26"; - sha256 = "07d19ns4a4pa2k4vdc1af7wj10gaflq1ny4mx6y574afkdi8v6d5"; + version = "2.9.9"; + sha256 = "1wqxw815287jlg6a6x3ffjhxvpa5al94jh3qkai2rw5kggcqzws4"; + }) + (fetchNuGet { + name = "Humanizer.Core.ko-KR"; + version = "2.9.9"; + sha256 = "1azggn1i8gnvc89kh7mv165bd2c7fwp1m1h9k6fcdk36kl4xxb97"; + }) + (fetchNuGet { + name = "Humanizer.Core.ku"; + version = "2.9.9"; + sha256 = "1qpwancwa6hgafrcdpbdb00vq08hrk77wjl64dvcjsx010n4c0fc"; }) (fetchNuGet { name = "Humanizer.Core.lv"; - version = "2.8.26"; - sha256 = "1pm64sj65nmngyfa3hjcw67icfmlzr232hmgpnw7306sb7dxmnfv"; + version = "2.9.9"; + sha256 = "1k6gxlzkpfmp8khn0dl0bfw878qpdff6zjqbirgpvlc57d00bws4"; }) (fetchNuGet { name = "Humanizer.Core.ms-MY"; - version = "2.8.26"; - sha256 = "1yx4cc023kc4k14abk2ycmjy6y2xaknaz4zria7xsadf0fabd1jc"; + version = "2.9.9"; + sha256 = "0p0lc3qkq5f8354g77xgy8qc9wyc509rca8xrzgc2lpzbvb4v008"; }) (fetchNuGet { name = "Humanizer.Core.mt"; - version = "2.8.26"; - sha256 = "0iai35pzka9g6c3sgswki06fk6gdnq8kc88wyb4pcciivazz31px"; + version = "2.9.9"; + sha256 = "0qn2c583lbc5qg0i1inqjb7zn8vcmvmjy8k70ngb6qyl1navmvcm"; }) (fetchNuGet { name = "Humanizer.Core.nb"; - version = "2.8.26"; - sha256 = "0xprhiyjyq6mpha2lrav59n1f48508ddvm9nmdk5sm5k26ff3l90"; + version = "2.9.9"; + sha256 = "12b7dx6jp5fcwsn54i7w1qz8y3cwbl8n8hia75iy9acd9l328shk"; }) (fetchNuGet { name = "Humanizer.Core.nb-NO"; - version = "2.8.26"; - sha256 = "160c98wfh7d2xlvlra4x5rdj4klgcjwcy3gkb4ipg655byn2m1j2"; + version = "2.9.9"; + sha256 = "04f47z9klpj6dq1gqlbcgyrli2s3rjci75i8lrng63vjjqi7jpqh"; }) (fetchNuGet { name = "Humanizer.Core.nl"; - version = "2.8.26"; - sha256 = "067pqm4i1mk83fqqr0bvzrchrvxwdnff18z3djgagclh1i4xqlvk"; + version = "2.9.9"; + sha256 = "19l4ik73500k2nxpcpylawy1aimb0awd82521abry3az4kc1lf29"; }) (fetchNuGet { name = "Humanizer.Core.pl"; - version = "2.8.26"; - sha256 = "1r1bbqb990war1hiag5f88yxw0k9jiid1ihb4s5bc1lzs3vfsb6x"; + version = "2.9.9"; + sha256 = "0hdh6gvz00xbrfyypwlbaw14409p75wqxraih2ckw23g8ci404l3"; }) (fetchNuGet { name = "Humanizer.Core.pt"; - version = "2.8.26"; - sha256 = "1bik0vjjdzw51yl11ng9gsi3ihz50ibwh1gdhh2vd13jxjzb512p"; + version = "2.9.9"; + sha256 = "03xplyqms9hpkl2bzhnqij3il78adi8a4azrs658rslpl8fl7ksd"; }) (fetchNuGet { name = "Humanizer.Core.ro"; - version = "2.8.26"; - sha256 = "12f2hry6x1p1mgx6g4kpig2jpybx52ibghvhdhjbbfhy32gv8dr0"; + version = "2.9.9"; + sha256 = "0x8qjkp8w32bhwr6509zpxlkvxb9izkgzq411hmh2sx4hrr90pzc"; }) (fetchNuGet { name = "Humanizer.Core.ru"; - version = "2.8.26"; - sha256 = "1hri12kwymzvdqcr66l8yiqiw3pmf9fk492z10yqljm576kyshgg"; + version = "2.9.9"; + sha256 = "0s2f9wxqwy281zw7aiswvfk8dg0i278g4z2l3bqn9iyijqm47zxx"; }) (fetchNuGet { name = "Humanizer.Core.sk"; - version = "2.8.26"; - sha256 = "07jfgk67axw97b85dn4bwpjwf3swd74j9hdd870qps12xfp98i9j"; + version = "2.9.9"; + sha256 = "0nq27nx6xq81d5avriphm7s926xm34306v7l7c88n71kn097jzl9"; }) (fetchNuGet { name = "Humanizer.Core.sl"; - version = "2.8.26"; - sha256 = "060xbzwb7p9ypbqfklih2zal2rh6h55gq4hv3i6alvlbd3vsx29n"; + version = "2.9.9"; + sha256 = "0dwszkm2xd4ysh3rrjx1zran09hl532hjrppfckqyy6n65b4axyf"; }) (fetchNuGet { name = "Humanizer.Core.sr"; - version = "2.8.26"; - sha256 = "0i2c24qmqnhp85b088qlbagxd48hcl0v1ly4m7hfbvx5s7fg8riv"; + version = "2.9.9"; + sha256 = "1vmfs9jp8ljlh6965pmb4afbcc9c4zlg5dn1pgbjc4miiwj6vc73"; }) (fetchNuGet { name = "Humanizer.Core.sr-Latn"; - version = "2.8.26"; - sha256 = "1911a69sqssh9f007vmxbgyj4ym2ym4423xvw6cmbfhjcrhkfpbi"; + version = "2.9.9"; + sha256 = "1dakb2zcaxmm9qw8fnsz5z12mmbjgx7jm9plxbm7jidjn7z271yl"; }) (fetchNuGet { name = "Humanizer.Core.sv"; - version = "2.8.26"; - sha256 = "056h8n9i18yl78f9ppzn2kkrz2cs46aqv0j5y8xq360zarggh0nm"; + version = "2.9.9"; + sha256 = "0jys46lz25yxx70w7y2623iabv3clf3lix8jzl8r68rj0lw6pxdz"; + }) + (fetchNuGet { + name = "Humanizer.Core.th-TH"; + version = "2.9.9"; + sha256 = "0r37ckvh68xvlyszgx94a8xxmya5cqiqnvdg5syw04lj0rshc3jb"; }) (fetchNuGet { name = "Humanizer.Core.tr"; - version = "2.8.26"; - sha256 = "0dk8ga3fpxifxxkz0n68654h65cvrx00hy7q00m5vgvmcp70gxxn"; + version = "2.9.9"; + sha256 = "1dnba6wbf6r5a1gmf7a7136qhy1w8izbh6wimmmwqsch2sk4ng4f"; }) (fetchNuGet { name = "Humanizer.Core.uk"; - version = "2.8.26"; - sha256 = "0bnj5xqlcqp4n8i04ra78dax4854zbf2jsygvb4lpiayyyaj2bxw"; + version = "2.9.9"; + sha256 = "1z0kdp2qkiyb4dhy22rqfik2b2c899nzkfh10907gp9827rdz3b9"; }) (fetchNuGet { name = "Humanizer.Core.uz-Cyrl-UZ"; - version = "2.8.26"; - sha256 = "1bbf6mxas6brjw7rjljq5saz6v3ic6zbvm1b3c1jbk0hc0qkd7c8"; + version = "2.9.9"; + sha256 = "1rnqa7w8s44fnqpw4g2drcwyajd5zhmwkqipi5zfhh0bcdnj9hxx"; }) (fetchNuGet { name = "Humanizer.Core.uz-Latn-UZ"; - version = "2.8.26"; - sha256 = "1bfgfihpynax30g9kq8kra7c4jxps2ccxsxrs9gls47xbs35cw2f"; + version = "2.9.9"; + sha256 = "1i1c6dy4bdglgyhv8g13lwqlis1snl7zcpdrvidw40f74ch0zq0g"; }) (fetchNuGet { name = "Humanizer.Core.vi"; - version = "2.8.26"; - sha256 = "1vm765nvkp6wyfwlcgppimjrk04lkg8lscch3n1i1i5hlqxrs9ch"; + version = "2.9.9"; + sha256 = "0ji0lmcm073x9fyigrw3b500drz268jarv6vfxpwxbzxd3mvnrys"; }) (fetchNuGet { name = "Humanizer.Core.zh-CN"; - version = "2.8.26"; - sha256 = "1qyl12rdh4iv1k1qcivcmxxnh8y93ainf22pmch8vvw9yjhs1y7s"; + version = "2.9.9"; + sha256 = "10iyrahi7rdp8lq4rxb2k9pny7da2aw9xfy2la8jdjrjgmqwffsi"; }) (fetchNuGet { name = "Humanizer.Core.zh-Hans"; - version = "2.8.26"; - sha256 = "1gqv3dyk236wlp5wb7kd4qnyrmp3cy36ycykl7zr91s25cdls5vy"; + version = "2.9.9"; + sha256 = "0f92fvzgcifaf2b64x8v52xckp1qxg88djlb9vlj083f6x29ick5"; }) (fetchNuGet { name = "Humanizer.Core.zh-Hant"; - version = "2.8.26"; - sha256 = "1rhzbiqbx04l3kvzjklix90fxyc6vvmmw0p564ajdiximivs0pbh"; + version = "2.9.9"; + sha256 = "0v9vqn6h467q7fy3xwabnqw48p48ilwkfg62b65j0q76ppnvsnvj"; }) (fetchNuGet { name = "JetBrains.Annotations"; @@ -301,53 +316,53 @@ }) (fetchNuGet { name = "Microsoft.AspNetCore.Connections.Abstractions"; - version = "5.0.4"; - sha256 = "002a3cvarwvvyic65khwavjxqsqjlnbgqc11sdyj3li15fxflk5g"; + version = "5.0.5"; + sha256 = "0qi4q54v7qiyc7xjbby88vmg1zcnb39sg8g1s7h0dnvapa436jv5"; }) (fetchNuGet { name = "Microsoft.AspNetCore.Http.Connections.Client"; - version = "5.0.4"; - sha256 = "1s19hx083c0r98wi6a8gqb3j3xjlrp9rkmvbpdxikzw8z4bnrjpn"; + version = "5.0.5"; + sha256 = "1lpsjv6475p2vdvwv9wwmpzxc0r9bfya15nc5xqiv8m9z8d4sxlh"; }) (fetchNuGet { name = "Microsoft.AspNetCore.Http.Connections.Common"; - version = "5.0.4"; - sha256 = "132ahfq7m369iss4ka402fj24rjdnhia41b94l3l135zplzlsl5n"; + version = "5.0.5"; + sha256 = "1knfn9d1wsczaic3vlnracmj5frpaxwx15x7j06kgi2kl6j2hbc7"; }) (fetchNuGet { name = "Microsoft.AspNetCore.Http.Features"; - version = "5.0.4"; - sha256 = "064n12ydyngh5q3y597x5cmciib74mpnhkvxicqp0kmgqsixkc7b"; + version = "5.0.5"; + sha256 = "011xdkqna8q0r2h9i1f646rkfjbl9qbaq56a487zagp8plwxvaxl"; }) (fetchNuGet { name = "Microsoft.AspNetCore.SignalR.Client"; - version = "5.0.4"; - sha256 = "0rpafasicnqng7ylx29hyslwp6g2j1l92szs0n9j98siscap17qg"; + version = "5.0.5"; + sha256 = "0r16n5c4im7gkfrhx2miiz9w58j0z87wjysbi4rsdav94hmkvgj4"; }) (fetchNuGet { name = "Microsoft.AspNetCore.SignalR.Client.Core"; - version = "5.0.4"; - sha256 = "1fwy2akhgphx72hc3rlax08aiaabvm9fi6jfj2r1dyzb2plcgig3"; + version = "5.0.5"; + sha256 = "11phwns2sn44vfd3vn6c0lh3aiiysfpav7rmv4cmjkxp3jmpay8r"; }) (fetchNuGet { name = "Microsoft.AspNetCore.SignalR.Common"; - version = "5.0.4"; - sha256 = "1dy00sf695sz842rlvgbyj2krgiqprx8qcdci8lz388rwp17drk2"; + version = "5.0.5"; + sha256 = "0am84ckim30djh4inv7mqph50axik79dwbfyrzlnaxcd3jr73c8c"; }) (fetchNuGet { name = "Microsoft.AspNetCore.SignalR.Protocols.Json"; - version = "5.0.4"; - sha256 = "0xp6ihjq835iqiiaxjl501pfplkqhd40kqxkazfj1icryls8hzhq"; + version = "5.0.5"; + sha256 = "1z8d2dsgj9bh9a2xcz5xlrw4iijgmrm1midkdqni9b4nypbyraf6"; }) (fetchNuGet { name = "Microsoft.AspNetCore.SignalR.Protocols.MessagePack"; - version = "5.0.4"; - sha256 = "1bvy4pvp3kxl75mbgy7saapjcnczylrqhf8ry0s66r12f7bzjki8"; + version = "5.0.5"; + sha256 = "0p52j1mrihvm4y4yp2rnimp4vdypn0hbba0p79vp617jj17vs45l"; }) (fetchNuGet { name = "Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson"; - version = "5.0.4"; - sha256 = "1gbkgc3cqv7q10k9hrjfj1ixpwx7b4n0x2f7sn9snsh977w7209j"; + version = "5.0.5"; + sha256 = "0jllzr9sba5m9ccdslr4dysmxzrfzy9zvianmqhmj4is6dg2krfs"; }) (fetchNuGet { name = "Microsoft.Bcl.AsyncInterfaces"; @@ -574,6 +589,11 @@ version = "5.0.0"; sha256 = "0swqcknyh87ns82w539z1mvy804pfwhgzs97cr3nwqk6g5s42gd6"; }) + (fetchNuGet { + name = "Microsoft.Extensions.Primitives"; + version = "5.0.1"; + sha256 = "01ar5ba2sal9wnpa1xnnikhgb37vzhg2cspz45wf760jflpai2vv"; + }) (fetchNuGet { name = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "5.0.5"; @@ -629,6 +649,11 @@ version = "0.9.6.1"; sha256 = "1fr7969h5q611l5227xw6nvv5rzap76vbpk0wg9hxbcxk3hn7szf"; }) + (fetchNuGet { + name = "Mono.Posix.NETStandard"; + version = "1.0.0"; + sha256 = "0xlja36hwpjm837haq15mjh2prcf68lyrmn72nvgpz8qnf9vappw"; + }) (fetchNuGet { name = "NETStandard.Library"; version = "1.6.0"; @@ -706,23 +731,23 @@ }) (fetchNuGet { name = "NUnit"; - version = "3.13.1"; - sha256 = "07156gr0yl9rqhyj44cp1xz9jpngbl5kb7ci3qfy9fcp01dczmm9"; + version = "3.13.2"; + sha256 = "00bkjgarkwbj497da9d7lajala1ns67h1kx53w4bapwkf32jlcvn"; }) (fetchNuGet { name = "OpenTabletDriver"; - version = "0.5.2.3"; - sha256 = "1qz5vmdwmfw8glkm6r7n06srcvrz5c3cwld1wv6xw4sagvwf0b6g"; + version = "0.5.3.1"; + sha256 = "16xw8w943x9gvnnpbryahff5azzy8n26j2igyqgv88m352jd9rb8"; }) (fetchNuGet { name = "OpenTabletDriver.Plugin"; - version = "0.5.2.3"; - sha256 = "0i03n5aydn0rv1v2y9c1cm9a2ss9y7p7l92k1x2yb6mwbx6vkpda"; + version = "0.5.3.1"; + sha256 = "17dxsvcz9g8kzydk5xlfz9kfxl62x9wi20609rh76wjd881bg1br"; }) (fetchNuGet { name = "ppy.osu.Framework"; - version = "2021.410.0"; - sha256 = "1vwdrspdpal44hyspv3rsax8mkszvbnc2xl1xswczx9mzj6qs4by"; + version = "2021.427.0"; + sha256 = "18n9g21y7asgr51fskfk3m0sx07y1mwrsdq4s065i8yk8d412mh7"; }) (fetchNuGet { name = "ppy.osu.Framework.NativeLibs"; @@ -731,8 +756,8 @@ }) (fetchNuGet { name = "ppy.osu.Game.Resources"; - version = "2021.410.0"; - sha256 = "1a5qia4595n0b21dj63sl71ar56m9x1glqwky7a9bb0dqpvfivya"; + version = "2021.422.0"; + sha256 = "1zw0197k6wmmjqjh022q3302mrwn59msx06y66378pahmhrr0sjc"; }) (fetchNuGet { name = "ppy.osuTK.NS20"; @@ -856,8 +881,8 @@ }) (fetchNuGet { name = "Sentry"; - version = "3.2.0"; - sha256 = "1hhgc4sqd7nampqydpdwfrc04hhqlkbv4p4w8cq6dswp5rf5k89b"; + version = "3.3.4"; + sha256 = "188rlyg6xfmgk6ypyg1mmbvm8d64q3wfjn3h0ays73b9wlypk8x6"; }) (fetchNuGet { name = "SharpCompress"; @@ -866,8 +891,8 @@ }) (fetchNuGet { name = "SharpCompress"; - version = "0.28.1"; - sha256 = "1h7gx7apafdd0jnv12fppca9b6cpq205kjkcipclxp1lli0i7qvw"; + version = "0.28.2"; + sha256 = "0pj30qm48m9vpq3i8wx9x11ficv36ki1973dk0873vqgvw8fwjj4"; }) (fetchNuGet { name = "SharpFNT"; @@ -1604,6 +1629,11 @@ version = "5.0.0"; sha256 = "144pgy65jc3bkar7d4fg1c0rq6qmkx68gj9k1ldk97558w22v1r1"; }) + (fetchNuGet { + name = "System.Text.Encodings.Web"; + version = "5.0.1"; + sha256 = "00yg63qnp94q2qryxxggzigi276bibb8b3b96gcvsyrxy7b703n9"; + }) (fetchNuGet { name = "System.Text.Json"; version = "5.0.0"; @@ -1611,8 +1641,8 @@ }) (fetchNuGet { name = "System.Text.Json"; - version = "5.0.1"; - sha256 = "1j7via4spxy73ipng754wdz1nb882gsb9qh26jqlql66vzbbm3j3"; + version = "5.0.2"; + sha256 = "0vd0wd29cdhgcjngl9sw391sn2s8xm974y15zvym0whsdgjwiqfx"; }) (fetchNuGet { name = "System.Text.RegularExpressions"; From c98e84c00d48000461ba97e0026ff3fadf79ec54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Samuel=20Gr=C3=A4fenstein?= Date: Mon, 3 May 2021 09:42:48 +0200 Subject: [PATCH 302/339] nodejs*: add meta.mainProgram --- pkgs/development/web/nodejs/nodejs.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/development/web/nodejs/nodejs.nix b/pkgs/development/web/nodejs/nodejs.nix index 09d15901ada..0e52dd5f804 100644 --- a/pkgs/development/web/nodejs/nodejs.nix +++ b/pkgs/development/web/nodejs/nodejs.nix @@ -142,6 +142,7 @@ in license = licenses.mit; maintainers = with maintainers; [ goibhniu gilligan cko marsam ]; platforms = platforms.linux ++ platforms.darwin; + mainProgram = "node"; }; passthru.python = python; # to ensure nodeEnv uses the same version From 7bc3bddeb8c49db3314c1c477fd80259b1766731 Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Mon, 3 May 2021 08:48:00 +0000 Subject: [PATCH 303/339] bluej: 5.0.0 -> 5.0.1 --- pkgs/applications/editors/bluej/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/editors/bluej/default.nix b/pkgs/applications/editors/bluej/default.nix index 9b28de9440f..a34d6983b2f 100644 --- a/pkgs/applications/editors/bluej/default.nix +++ b/pkgs/applications/editors/bluej/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "bluej"; - version = "5.0.0"; + version = "5.0.1"; src = fetchurl { # We use the deb here. First instinct might be to go for the "generic" JAR # download, but that is actually a graphical installer that is much harder # to unpack than the deb. url = "https://www.bluej.org/download/files/BlueJ-linux-${builtins.replaceStrings ["."] [""] version}.deb"; - sha256 = "sha256-U81FIf67Qm/86+hA9iUCHt61dxiZsTkkequlVjft6/0="; + sha256 = "sha256-KhNhJ2xsw1g2yemwP6NQmJvk4cxZAQQNPEUBuLso5qM="; }; nativeBuildInputs = [ makeWrapper ]; From e1cda59ce3d47aa54b90e1acf29a5f1ee3607d63 Mon Sep 17 00:00:00 2001 From: OPNA2608 Date: Mon, 3 May 2021 11:15:22 +0200 Subject: [PATCH 304/339] foxotron: 2021-03-12 -> 2021-04-19 --- pkgs/applications/graphics/foxotron/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/graphics/foxotron/default.nix b/pkgs/applications/graphics/foxotron/default.nix index 71adfe0d2db..47f5f7a7a57 100644 --- a/pkgs/applications/graphics/foxotron/default.nix +++ b/pkgs/applications/graphics/foxotron/default.nix @@ -25,14 +25,14 @@ stdenv.mkDerivation rec { pname = "foxotron"; - version = "2021-03-12"; + version = "2021-04-19"; src = fetchFromGitHub { owner = "Gargaj"; repo = "Foxotron"; rev = version; fetchSubmodules = true; - sha256 = "1finvbs3pbfyvm525blwgwl5jci2zjxb1923i0cm8rmf7wasaapb"; + sha256 = "sha256-YTCnWHXBNqvJmhRqRQRFCVvBcqbjKzcc3AKVXS0jvno="; }; nativeBuildInputs = [ cmake pkg-config makeWrapper ]; From ecbef6fb515863bc3016e7f51503e3f23d550747 Mon Sep 17 00:00:00 2001 From: TredwellGit Date: Mon, 3 May 2021 09:28:26 +0000 Subject: [PATCH 305/339] electron_11: 11.4.3 -> 11.4.4 https://github.com/electron/electron/releases/tag/v11.4.4 --- pkgs/development/tools/electron/default.nix | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/pkgs/development/tools/electron/default.nix b/pkgs/development/tools/electron/default.nix index 077d6c74c8b..3f2d3dfac3d 100644 --- a/pkgs/development/tools/electron/default.nix +++ b/pkgs/development/tools/electron/default.nix @@ -95,13 +95,13 @@ rec { headers = "0phv08myxq226blrqzg3fza3mh3ivgfmcja98b7377pc3x7bv76g"; }; - electron_11 = mkElectron "11.4.3" { - x86_64-linux = "222e7aa51d5516796d532f784c574f07315bad4bf29efb0ce687014f93ba5fa5"; - x86_64-darwin = "6cccbaf8dca7eb3819b0ac3044686f6705c5d51c88ee1361d8573c2b83c8dc0a"; - i686-linux = "1910729fd6088e9c914db9fdd6c42ce6747fcb048947dd83fa2cdf564c786353"; - armv7l-linux = "e0e1375bdb79a6917467490683e49bb59da9260b73d7b710a5e4e4535c1c5e80"; - aarch64-linux = "9fb287ed8bcc7782775bd615fe1c31db4a8b6d548209fd15ef5312ac72a04d07"; - headers = "00gln9jlb621gvxx1z7s212wakjbdigdqv02vx1pjvkg62aazg8j"; + electron_11 = mkElectron "11.4.4" { + x86_64-linux = "154ae71e674b37b6cb5ec56e0f569435cb9303a5b0c0608bd2e1d026803be1a5"; + x86_64-darwin = "783962e25433178a1e41b895dbbebc7b82efbe819dbd08c9314d2f4547c73e05"; + i686-linux = "fcfeba63e490648156f01bbe51f27123f93762713f6ab5e4433dc9c232708a25"; + armv7l-linux = "3b98dabbce5a5a8ba66d2f909174b792eeccddd95fd4396a596130f6817ec0d3"; + aarch64-linux = "cf886b382f4e3815487ee1403d4bb6ff434ecd9625e61c9ecf082f482c88617e"; + headers = "1wjcygxy6lvmf1lw857rcd499jk8103nvld0q3jj4r90gwbdhfi3"; }; electron_12 = mkElectron "12.0.5" { From e1c4eed3dbec38c1efa5cc74b71ef015929b7d63 Mon Sep 17 00:00:00 2001 From: TredwellGit Date: Mon, 3 May 2021 09:29:03 +0000 Subject: [PATCH 306/339] electron_10: 10.4.3 -> 10.4.4 https://github.com/electron/electron/releases/tag/v10.4.4 --- pkgs/development/tools/electron/default.nix | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/pkgs/development/tools/electron/default.nix b/pkgs/development/tools/electron/default.nix index 3f2d3dfac3d..a3f58ae827e 100644 --- a/pkgs/development/tools/electron/default.nix +++ b/pkgs/development/tools/electron/default.nix @@ -86,13 +86,13 @@ rec { headers = "0yx8mkrm15ha977hzh7g2sc5fab9sdvlk1bk3yxignhxrqqbw885"; }; - electron_10 = mkElectron "10.4.3" { - x86_64-linux = "48793fc6c6d3bfb8df81cd29f6c52e68c8c6b901693c6ba4ed505799fa673e9f"; - x86_64-darwin = "28cbacf51e0528e0d4ba30a2c56efd6a8e7f836104786733aae0c5fc99dc2615"; - i686-linux = "b9b7fd9b91630350dafe97a31c918f941ab15b044f0b4e9b2a705482447fe78f"; - armv7l-linux = "b1e1b4d0620eae647915c95d21656d21c00efe89f44198938d9fd9fba045e39c"; - aarch64-linux = "aa9177becf787920cef4cde27a6ed08e2e23976678162a3cd6b77615b1582c05"; - headers = "0phv08myxq226blrqzg3fza3mh3ivgfmcja98b7377pc3x7bv76g"; + electron_10 = mkElectron "10.4.4" { + x86_64-linux = "e82d347ff4753fd4296550e403390c7a9c448d150ea6bb05bd245fd43ac5a708"; + x86_64-darwin = "b8f01dedbd81c58e1dc0fafd316e4c1be07681f7e6d42d3f6f3947cf78d9a8fa"; + i686-linux = "2e7847c902e174496e152030932a921ca1cfb2ffcb556e2a01b08d8235eb333d"; + armv7l-linux = "303c246816bff2dc7aeb26d37d99fe82e4bbe484e3e96f42731f6350498b1af2"; + aarch64-linux = "21ba3370b01870fc498d7e180d034a3e3b59a84af231d2dcd82984d6d09fd5da"; + headers = "0qxzsycpdq1g8a2yaw7g43da1f8ijpbhj97vvxza8nnvxiay5apf"; }; electron_11 = mkElectron "11.4.4" { From a2c66faabaf0936877bec016d88ec75fdd16d4a5 Mon Sep 17 00:00:00 2001 From: OPNA2608 Date: Mon, 3 May 2021 11:35:44 +0200 Subject: [PATCH 307/339] foxotron: Clarify license --- pkgs/applications/graphics/foxotron/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/applications/graphics/foxotron/default.nix b/pkgs/applications/graphics/foxotron/default.nix index 47f5f7a7a57..d8862525030 100644 --- a/pkgs/applications/graphics/foxotron/default.nix +++ b/pkgs/applications/graphics/foxotron/default.nix @@ -67,7 +67,7 @@ stdenv.mkDerivation rec { Revision 2021 3D Graphics Competition. ''; homepage = "https://github.com/Gargaj/Foxotron"; - license = licenses.publicDomain; + license = licenses.unlicense; maintainers = with maintainers; [ OPNA2608 ]; platforms = platforms.all; }; From 310a52ad8947be0afea7fc27d84b59c3bec50308 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=BCtz?= Date: Mon, 3 May 2021 12:15:08 +0200 Subject: [PATCH 308/339] authenticator: unvendor patch --- .../applications/misc/authenticator/767.patch | 1952 ----------------- .../misc/authenticator/default.nix | 15 +- 2 files changed, 8 insertions(+), 1959 deletions(-) delete mode 100644 pkgs/applications/misc/authenticator/767.patch diff --git a/pkgs/applications/misc/authenticator/767.patch b/pkgs/applications/misc/authenticator/767.patch deleted file mode 100644 index 2c4bf63128b..00000000000 --- a/pkgs/applications/misc/authenticator/767.patch +++ /dev/null @@ -1,1952 +0,0 @@ -From 70588b2f2191bdb8d6859e0a0c50a87e24237bba Mon Sep 17 00:00:00 2001 -From: Rafostar <40623528+Rafostar@users.noreply.github.com> -Date: Wed, 30 Dec 2020 11:24:49 +0100 -Subject: [PATCH 01/10] gtk: port to event controllers - -Prepare for GTK4 support by porting deprecated events -to EventControllers. This also bumps minimal required GTK version to 3.24 ---- - ext/gtk/gtkgstbasewidget.c | 96 +++++++++++++++++++++++++------------- - ext/gtk/gtkgstbasewidget.h | 6 +++ - ext/gtk/meson.build | 2 +- - 3 files changed, 70 insertions(+), 34 deletions(-) - -diff --git a/ext/gtk/gtkgstbasewidget.c b/ext/gtk/gtkgstbasewidget.c -index 4858f2764..5d57b0ee7 100644 ---- a/ext/gtk/gtkgstbasewidget.c -+++ b/ext/gtk/gtkgstbasewidget.c -@@ -235,22 +235,34 @@ _gdk_key_to_navigation_string (guint keyval) - } - } - -+static void -+_gdk_event_free (GdkEvent * event) -+{ -+ if (event) -+ gdk_event_free (event); -+} -+ - static gboolean --gtk_gst_base_widget_key_event (GtkWidget * widget, GdkEventKey * event) -+gtk_gst_base_widget_key_event (GtkEventControllerKey * key_controller, -+ guint keyval, guint keycode, GdkModifierType state) - { -+ GtkEventController *controller = GTK_EVENT_CONTROLLER (key_controller); -+ GtkWidget *widget = gtk_event_controller_get_widget (controller); - GtkGstBaseWidget *base_widget = GTK_GST_BASE_WIDGET (widget); - GstElement *element; - - if ((element = g_weak_ref_get (&base_widget->element))) { - if (GST_IS_NAVIGATION (element)) { -- const gchar *str = _gdk_key_to_navigation_string (event->keyval); -- const gchar *key_type = -- event->type == GDK_KEY_PRESS ? "key-press" : "key-release"; -- -- if (!str) -- str = event->string; -- -- gst_navigation_send_key_event (GST_NAVIGATION (element), key_type, str); -+ GdkEvent *event = gtk_get_current_event (); -+ const gchar *str = _gdk_key_to_navigation_string (keyval); -+ -+ if (str) { -+ const gchar *key_type = -+ gdk_event_get_event_type (event) == -+ GDK_KEY_PRESS ? "key-press" : "key-release"; -+ gst_navigation_send_key_event (GST_NAVIGATION (element), key_type, str); -+ } -+ _gdk_event_free (event); - } - g_object_unref (element); - } -@@ -325,22 +337,30 @@ _display_size_to_stream_size (GtkGstBaseWidget * base_widget, gdouble x, - } - - static gboolean --gtk_gst_base_widget_button_event (GtkWidget * widget, GdkEventButton * event) -+gtk_gst_base_widget_button_event (GtkGestureMultiPress * gesture, -+ gint n_press, gdouble x, gdouble y) - { -+ GtkEventController *controller = GTK_EVENT_CONTROLLER (gesture); -+ GtkWidget *widget = gtk_event_controller_get_widget (controller); - GtkGstBaseWidget *base_widget = GTK_GST_BASE_WIDGET (widget); - GstElement *element; - - if ((element = g_weak_ref_get (&base_widget->element))) { - if (GST_IS_NAVIGATION (element)) { -+ GdkEvent *event = gtk_get_current_event (); - const gchar *key_type = -- event->type == -- GDK_BUTTON_PRESS ? "mouse-button-press" : "mouse-button-release"; -- gdouble x, y; -+ gdk_event_get_event_type (event) == GDK_BUTTON_PRESS -+ ? "mouse-button-press" : "mouse-button-release"; -+ gdouble stream_x, stream_y; -+ guint button; -+ gdk_event_get_button (event, &button); - -- _display_size_to_stream_size (base_widget, event->x, event->y, &x, &y); -+ _display_size_to_stream_size (base_widget, x, y, &stream_x, &stream_y); - - gst_navigation_send_mouse_event (GST_NAVIGATION (element), key_type, -- event->button, x, y); -+ button, stream_x, stream_y); -+ -+ _gdk_event_free (event); - } - g_object_unref (element); - } -@@ -349,19 +369,22 @@ gtk_gst_base_widget_button_event (GtkWidget * widget, GdkEventButton * event) - } - - static gboolean --gtk_gst_base_widget_motion_event (GtkWidget * widget, GdkEventMotion * event) -+gtk_gst_base_widget_motion_event (GtkEventControllerMotion * motion_controller, -+ gdouble x, gdouble y) - { -+ GtkEventController *controller = GTK_EVENT_CONTROLLER (motion_controller); -+ GtkWidget *widget = gtk_event_controller_get_widget (controller); - GtkGstBaseWidget *base_widget = GTK_GST_BASE_WIDGET (widget); - GstElement *element; - - if ((element = g_weak_ref_get (&base_widget->element))) { - if (GST_IS_NAVIGATION (element)) { -- gdouble x, y; -+ gdouble stream_x, stream_y; - -- _display_size_to_stream_size (base_widget, event->x, event->y, &x, &y); -+ _display_size_to_stream_size (base_widget, x, y, &stream_x, &stream_y); - - gst_navigation_send_mouse_event (GST_NAVIGATION (element), "mouse-move", -- 0, x, y); -+ 0, stream_x, stream_y); - } - g_object_unref (element); - } -@@ -397,11 +420,6 @@ gtk_gst_base_widget_class_init (GtkGstBaseWidgetClass * klass) - - widget_klass->get_preferred_width = gtk_gst_base_widget_get_preferred_width; - widget_klass->get_preferred_height = gtk_gst_base_widget_get_preferred_height; -- widget_klass->key_press_event = gtk_gst_base_widget_key_event; -- widget_klass->key_release_event = gtk_gst_base_widget_key_event; -- widget_klass->button_press_event = gtk_gst_base_widget_button_event; -- widget_klass->button_release_event = gtk_gst_base_widget_button_event; -- widget_klass->motion_notify_event = gtk_gst_base_widget_motion_event; - - GST_DEBUG_CATEGORY_INIT (gst_debug_gtk_base_widget, "gtkbasewidget", 0, - "Gtk Video Base Widget"); -@@ -410,8 +428,6 @@ gtk_gst_base_widget_class_init (GtkGstBaseWidgetClass * klass) - void - gtk_gst_base_widget_init (GtkGstBaseWidget * widget) - { -- int event_mask; -- - widget->force_aspect_ratio = DEFAULT_FORCE_ASPECT_RATIO; - widget->par_n = DEFAULT_PAR_N; - widget->par_d = DEFAULT_PAR_D; -@@ -423,14 +439,24 @@ gtk_gst_base_widget_init (GtkGstBaseWidget * widget) - g_weak_ref_init (&widget->element, NULL); - g_mutex_init (&widget->lock); - -+ widget->key_controller = gtk_event_controller_key_new (GTK_WIDGET (widget)); -+ g_signal_connect (widget->key_controller, "key-pressed", -+ G_CALLBACK (gtk_gst_base_widget_key_event), NULL); -+ g_signal_connect (widget->key_controller, "key-released", -+ G_CALLBACK (gtk_gst_base_widget_key_event), NULL); -+ -+ widget->motion_controller = -+ gtk_event_controller_motion_new (GTK_WIDGET (widget)); -+ g_signal_connect (widget->motion_controller, "motion", -+ G_CALLBACK (gtk_gst_base_widget_motion_event), NULL); -+ -+ widget->click_gesture = gtk_gesture_multi_press_new (GTK_WIDGET (widget)); -+ g_signal_connect (widget->click_gesture, "pressed", -+ G_CALLBACK (gtk_gst_base_widget_button_event), NULL); -+ g_signal_connect (widget->click_gesture, "released", -+ G_CALLBACK (gtk_gst_base_widget_button_event), NULL); -+ - gtk_widget_set_can_focus (GTK_WIDGET (widget), TRUE); -- event_mask = gtk_widget_get_events (GTK_WIDGET (widget)); -- event_mask |= GDK_KEY_PRESS_MASK -- | GDK_KEY_RELEASE_MASK -- | GDK_BUTTON_PRESS_MASK -- | GDK_BUTTON_RELEASE_MASK -- | GDK_POINTER_MOTION_MASK | GDK_BUTTON_MOTION_MASK; -- gtk_widget_set_events (GTK_WIDGET (widget), event_mask); - } - - void -@@ -438,6 +464,10 @@ gtk_gst_base_widget_finalize (GObject * object) - { - GtkGstBaseWidget *widget = GTK_GST_BASE_WIDGET (object); - -+ g_object_unref (widget->key_controller); -+ g_object_unref (widget->motion_controller); -+ g_object_unref (widget->click_gesture); -+ - gst_buffer_replace (&widget->pending_buffer, NULL); - gst_buffer_replace (&widget->buffer, NULL); - g_mutex_clear (&widget->lock); -diff --git a/ext/gtk/gtkgstbasewidget.h b/ext/gtk/gtkgstbasewidget.h -index 13737c632..0e31478a0 100644 ---- a/ext/gtk/gtkgstbasewidget.h -+++ b/ext/gtk/gtkgstbasewidget.h -@@ -24,6 +24,7 @@ - #include - #include - #include -+#include - - #define GTK_GST_BASE_WIDGET(w) ((GtkGstBaseWidget *)(w)) - #define GTK_GST_BASE_WIDGET_CLASS(k) ((GtkGstBaseWidgetClass *)(k)) -@@ -67,6 +68,11 @@ struct _GtkGstBaseWidget - GMutex lock; - GWeakRef element; - -+ /* event controllers */ -+ GtkEventController *key_controller; -+ GtkEventController *motion_controller; -+ GtkGesture *click_gesture; -+ - /* Pending draw idles callback */ - guint draw_id; - }; -diff --git a/ext/gtk/meson.build b/ext/gtk/meson.build -index 3a30017e7..722775e08 100644 ---- a/ext/gtk/meson.build -+++ b/ext/gtk/meson.build -@@ -13,7 +13,7 @@ optional_deps = [] - gtk_dep = dependency('gtk+-3.0', required : get_option('gtk3')) - if gtk_dep.found() - # FIXME: automagic -- if have_gstgl and gtk_dep.version().version_compare('>=3.15.0') -+ if have_gstgl and gtk_dep.version().version_compare('>=3.24.0') - have_gtk3_gl_windowing = false - - if gst_gl_have_window_x11 and gst_gl_have_platform_glx --- -GitLab - - -From 29774cbcd256b86f074bd50b40f4a57607758bf3 Mon Sep 17 00:00:00 2001 -From: Rafostar <40623528+Rafostar@users.noreply.github.com> -Date: Fri, 1 Jan 2021 17:30:23 +0100 -Subject: [PATCH 02/10] gtk: do not connect the same signals on each start - -Each time the sink start is called the same signals -were reconnected without disconnecting them earlier. - -We should still observe widget destruction even when -stopped, so lets just prevent connecting it multiple -times and disconnect only size-allocate signal on stop. ---- - ext/gtk/gstgtkglsink.c | 32 +++++++++++++++++++++++--------- - 1 file changed, 23 insertions(+), 9 deletions(-) - -diff --git a/ext/gtk/gstgtkglsink.c b/ext/gtk/gstgtkglsink.c -index 1102d47c9..3024bef95 100644 ---- a/ext/gtk/gstgtkglsink.c -+++ b/ext/gtk/gstgtkglsink.c -@@ -172,13 +172,17 @@ gst_gtk_gl_sink_start (GstBaseSink * bsink) - gst_widget = GTK_GST_GL_WIDGET (base_sink->widget); - - /* Track the allocation size */ -- gtk_sink->size_allocate_sig_handler = -- g_signal_connect (gst_widget, "size-allocate", -- G_CALLBACK (_size_changed_cb), gtk_sink); -+ if (!gtk_sink->size_allocate_sig_handler) { -+ gtk_sink->size_allocate_sig_handler = -+ g_signal_connect (gst_widget, "size-allocate", -+ G_CALLBACK (_size_changed_cb), gtk_sink); -+ } - -- gtk_sink->widget_destroy_sig_handler = -- g_signal_connect (gst_widget, "destroy", G_CALLBACK (destroy_cb), -- gtk_sink); -+ if (!gtk_sink->widget_destroy_sig_handler) { -+ gtk_sink->widget_destroy_sig_handler = -+ g_signal_connect (gst_widget, "destroy", G_CALLBACK (destroy_cb), -+ gtk_sink); -+ } - - _size_changed_cb (GTK_WIDGET (gst_widget), NULL, gtk_sink); - -@@ -188,9 +192,12 @@ gst_gtk_gl_sink_start (GstBaseSink * bsink) - return FALSE; - } - -- gtk_sink->display = gtk_gst_gl_widget_get_display (gst_widget); -- gtk_sink->context = gtk_gst_gl_widget_get_context (gst_widget); -- gtk_sink->gtk_context = gtk_gst_gl_widget_get_gtk_context (gst_widget); -+ if (!gtk_sink->display) -+ gtk_sink->display = gtk_gst_gl_widget_get_display (gst_widget); -+ if (!gtk_sink->context) -+ gtk_sink->context = gtk_gst_gl_widget_get_context (gst_widget); -+ if (!gtk_sink->gtk_context) -+ gtk_sink->gtk_context = gtk_gst_gl_widget_get_gtk_context (gst_widget); - - if (!gtk_sink->display || !gtk_sink->context || !gtk_sink->gtk_context) { - GST_ELEMENT_ERROR (bsink, RESOURCE, NOT_FOUND, ("%s", -@@ -208,6 +215,13 @@ static gboolean - gst_gtk_gl_sink_stop (GstBaseSink * bsink) - { - GstGtkGLSink *gtk_sink = GST_GTK_GL_SINK (bsink); -+ GstGtkBaseSink *base_sink = GST_GTK_BASE_SINK (bsink); -+ -+ if (gtk_sink->size_allocate_sig_handler) { -+ g_signal_handler_disconnect (base_sink->widget, -+ gtk_sink->size_allocate_sig_handler); -+ gtk_sink->size_allocate_sig_handler = 0; -+ } - - if (gtk_sink->display) { - gst_object_unref (gtk_sink->display); --- -GitLab - - -From 754b6b50d2d266c07c360ca72a62f368be664eef Mon Sep 17 00:00:00 2001 -From: Rafostar <40623528+Rafostar@users.noreply.github.com> -Date: Wed, 14 Oct 2020 16:25:53 +0200 -Subject: [PATCH 03/10] gtkglsink: add GTK4 support - -This commit adds required changes to compile the "gtk" plugin -against GTK4 from the same source code. - -The output "gtk4" plugin includes new "gtk4glsink". ---- - ext/gtk/gstgtkbasesink.c | 70 ++++++++++++++++++++++++----- - ext/gtk/gstgtkglsink.c | 29 ++++++++---- - ext/gtk/gstplugin.c | 19 +++++--- - ext/gtk/gtkconfig.h | 29 ++++++++++++ - ext/gtk/gtkgstbasewidget.c | 91 ++++++++++++++++++++++++++++++++++---- - ext/gtk/gtkgstbasewidget.h | 12 +++-- - ext/gtk/gtkgstglwidget.c | 15 ++++++- - ext/gtk/meson.build | 84 ++++++++++++++++++++++++----------- - meson_options.txt | 1 + - 9 files changed, 284 insertions(+), 66 deletions(-) - create mode 100644 ext/gtk/gtkconfig.h - -diff --git a/ext/gtk/gstgtkbasesink.c b/ext/gtk/gstgtkbasesink.c -index 0c48f54d6..1f5319089 100644 ---- a/ext/gtk/gstgtkbasesink.c -+++ b/ext/gtk/gstgtkbasesink.c -@@ -1,6 +1,7 @@ - /* - * GStreamer - * Copyright (C) 2015 Matthew Waters -+ * Copyright (C) 2020 Rafał Dzięgiel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public -@@ -77,7 +78,7 @@ G_DEFINE_ABSTRACT_TYPE_WITH_CODE (GstGtkBaseSink, gst_gtk_base_sink, - G_IMPLEMENT_INTERFACE (GST_TYPE_NAVIGATION, - gst_gtk_base_sink_navigation_interface_init); - GST_DEBUG_CATEGORY_INIT (gst_debug_gtk_base_sink, -- "gtkbasesink", 0, "Gtk Video Sink base class")); -+ "gtkbasesink", 0, "GTK Video Sink base class")); - - - static void -@@ -97,7 +98,7 @@ gst_gtk_base_sink_class_init (GstGtkBaseSinkClass * klass) - gobject_class->get_property = gst_gtk_base_sink_get_property; - - g_object_class_install_property (gobject_class, PROP_WIDGET, -- g_param_spec_object ("widget", "Gtk Widget", -+ g_param_spec_object ("widget", "GTK Widget", - "The GtkWidget to place in the widget hierarchy " - "(must only be get from the GTK main thread)", - GTK_TYPE_WIDGET, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); -@@ -114,10 +115,13 @@ gst_gtk_base_sink_class_init (GstGtkBaseSinkClass * klass) - "The pixel aspect ratio of the device", DEFAULT_PAR_N, DEFAULT_PAR_D, - G_MAXINT, 1, 1, 1, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); - -+ /* Disabling alpha was removed in GTK4 */ -+#if !defined(BUILD_FOR_GTK4) - g_object_class_install_property (gobject_class, PROP_IGNORE_ALPHA, - g_param_spec_boolean ("ignore-alpha", "Ignore Alpha", - "When enabled, alpha will be ignored and converted to black", - DEFAULT_IGNORE_ALPHA, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); -+#endif - - gobject_class->finalize = gst_gtk_base_sink_finalize; - -@@ -182,7 +186,11 @@ gst_gtk_base_sink_get_widget (GstGtkBaseSink * gtk_sink) - - /* Ensure GTK is initialized, this has no side effect if it was already - * initialized. Also, we do that lazily, so the application can be first */ -- if (!gtk_init_check (NULL, NULL)) { -+ if (!gtk_init_check ( -+#if !defined(BUILD_FOR_GTK4) -+ NULL, NULL -+#endif -+ )) { - GST_ERROR_OBJECT (gtk_sink, "Could not ensure GTK initialization."); - return NULL; - } -@@ -197,9 +205,11 @@ gst_gtk_base_sink_get_widget (GstGtkBaseSink * gtk_sink) - gtk_sink->bind_pixel_aspect_ratio = - g_object_bind_property (gtk_sink, "pixel-aspect-ratio", gtk_sink->widget, - "pixel-aspect-ratio", G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); -+#if !defined(BUILD_FOR_GTK4) - gtk_sink->bind_ignore_alpha = - g_object_bind_property (gtk_sink, "ignore-alpha", gtk_sink->widget, - "ignore-alpha", G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); -+#endif - - /* Take the floating ref, other wise the destruction of the container will - * make this widget disappear possibly before we are done. */ -@@ -313,25 +323,55 @@ gst_gtk_base_sink_start_on_main (GstBaseSink * bsink) - GstGtkBaseSink *gst_sink = GST_GTK_BASE_SINK (bsink); - GstGtkBaseSinkClass *klass = GST_GTK_BASE_SINK_GET_CLASS (bsink); - GtkWidget *toplevel; -+#if defined(BUILD_FOR_GTK4) -+ GtkRoot *root; -+#endif - - if (gst_gtk_base_sink_get_widget (gst_sink) == NULL) - return FALSE; - - /* After this point, gtk_sink->widget will always be set */ - -+#if defined(BUILD_FOR_GTK4) -+ root = gtk_widget_get_root (GTK_WIDGET (gst_sink->widget)); -+ if (!GTK_IS_ROOT (root)) { -+ GtkWidget *parent = gtk_widget_get_parent (GTK_WIDGET (gst_sink->widget)); -+ if (parent) { -+ GtkWidget *temp_parent; -+ while ((temp_parent = gtk_widget_get_parent (parent))) -+ parent = temp_parent; -+ } -+ toplevel = (parent) ? parent : GTK_WIDGET (gst_sink->widget); -+#else - toplevel = gtk_widget_get_toplevel (GTK_WIDGET (gst_sink->widget)); - if (!gtk_widget_is_toplevel (toplevel)) { -+#endif - /* sanity check */ - g_assert (klass->window_title); - - /* User did not add widget its own UI, let's popup a new GtkWindow to - * make gst-launch-1.0 work. */ -- gst_sink->window = gtk_window_new (GTK_WINDOW_TOPLEVEL); -+ gst_sink->window = gtk_window_new ( -+#if !defined(BUILD_FOR_GTK4) -+ GTK_WINDOW_TOPLEVEL -+#endif -+ ); - gtk_window_set_default_size (GTK_WINDOW (gst_sink->window), 640, 480); - gtk_window_set_title (GTK_WINDOW (gst_sink->window), klass->window_title); -- gtk_container_add (GTK_CONTAINER (gst_sink->window), toplevel); -- gst_sink->window_destroy_id = g_signal_connect (gst_sink->window, "destroy", -- G_CALLBACK (window_destroy_cb), gst_sink); -+#if defined(BUILD_FOR_GTK4) -+ gtk_window_set_child (GTK_WINDOW ( -+#else -+ gtk_container_add (GTK_CONTAINER ( -+#endif -+ gst_sink->window), toplevel); -+ -+ gst_sink->window_destroy_id = g_signal_connect ( -+#if defined(BUILD_FOR_GTK4) -+ GTK_WINDOW (gst_sink->window), -+#else -+ gst_sink->window, -+#endif -+ "destroy", G_CALLBACK (window_destroy_cb), gst_sink); - } - - return TRUE; -@@ -350,7 +390,11 @@ gst_gtk_base_sink_stop_on_main (GstBaseSink * bsink) - GstGtkBaseSink *gst_sink = GST_GTK_BASE_SINK (bsink); - - if (gst_sink->window) { -+#if defined(BUILD_FOR_GTK4) -+ gtk_window_destroy (GTK_WINDOW (gst_sink->window)); -+#else - gtk_widget_destroy (gst_sink->window); -+#endif - gst_sink->window = NULL; - gst_sink->widget = NULL; - } -@@ -371,10 +415,14 @@ gst_gtk_base_sink_stop (GstBaseSink * bsink) - } - - static void --gst_gtk_widget_show_all_and_unref (GtkWidget * widget) -+gst_gtk_window_show_all_and_unref (GtkWidget * window) - { -- gtk_widget_show_all (widget); -- g_object_unref (widget); -+#if defined(BUILD_FOR_GTK4) -+ gtk_window_present (GTK_WINDOW (window)); -+#else -+ gtk_widget_show_all (window); -+#endif -+ g_object_unref (window); - } - - static GstStateChangeReturn -@@ -402,7 +450,7 @@ gst_gtk_base_sink_change_state (GstElement * element, GstStateChange transition) - GST_OBJECT_UNLOCK (gtk_sink); - - if (window) -- gst_gtk_invoke_on_main ((GThreadFunc) gst_gtk_widget_show_all_and_unref, -+ gst_gtk_invoke_on_main ((GThreadFunc) gst_gtk_window_show_all_and_unref, - window); - - break; -diff --git a/ext/gtk/gstgtkglsink.c b/ext/gtk/gstgtkglsink.c -index 3024bef95..daaf0eb3f 100644 ---- a/ext/gtk/gstgtkglsink.c -+++ b/ext/gtk/gstgtkglsink.c -@@ -1,6 +1,7 @@ - /* - * GStreamer - * Copyright (C) 2015 Matthew Waters -+ * Copyright (C) 2020 Rafał Dzięgiel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public -@@ -23,12 +24,18 @@ - * @title: gtkglsink - */ - -+/** -+ * SECTION:element-gtk4glsink -+ * @title: gtk4glsink -+ */ -+ - #ifdef HAVE_CONFIG_H - #include "config.h" - #endif - - #include - -+#include "gtkconfig.h" - #include "gstgtkglsink.h" - #include "gtkgstglwidget.h" - -@@ -58,7 +65,7 @@ static GstStaticPadTemplate gst_gtk_gl_sink_template = - #define gst_gtk_gl_sink_parent_class parent_class - G_DEFINE_TYPE_WITH_CODE (GstGtkGLSink, gst_gtk_gl_sink, - GST_TYPE_GTK_BASE_SINK, GST_DEBUG_CATEGORY_INIT (gst_debug_gtk_gl_sink, -- "gtkglsink", 0, "Gtk GL Video Sink")); -+ GTKCONFIG_GLSINK, 0, GTKCONFIG_NAME " GL Video Sink")); - - static void - gst_gtk_gl_sink_class_init (GstGtkGLSinkClass * klass) -@@ -82,11 +89,13 @@ gst_gtk_gl_sink_class_init (GstGtkGLSinkClass * klass) - gstbasesink_class->get_caps = gst_gtk_gl_sink_get_caps; - - gstgtkbasesink_class->create_widget = gtk_gst_gl_widget_new; -- gstgtkbasesink_class->window_title = "Gtk+ GL renderer"; -+ gstgtkbasesink_class->window_title = GTKCONFIG_NAME " GL Renderer"; - -- gst_element_class_set_metadata (gstelement_class, "Gtk GL Video Sink", -+ gst_element_class_set_metadata (gstelement_class, -+ GTKCONFIG_NAME " GL Video Sink", - "Sink/Video", "A video sink that renders to a GtkWidget using OpenGL", -- "Matthew Waters "); -+ "Matthew Waters , " -+ "Rafał Dzięgiel "); - - gst_element_class_add_static_pad_template (gstelement_class, - &gst_gtk_gl_sink_template); -@@ -119,6 +128,7 @@ gst_gtk_gl_sink_query (GstBaseSink * bsink, GstQuery * query) - return res; - } - -+#if !defined(BUILD_FOR_GTK4) - static void - _size_changed_cb (GtkWidget * widget, GdkRectangle * rectangle, - GstGtkGLSink * gtk_sink) -@@ -138,11 +148,12 @@ _size_changed_cb (GtkWidget * widget, GdkRectangle * rectangle, - GST_OBJECT_UNLOCK (gtk_sink); - - if (reconfigure) { -- GST_DEBUG_OBJECT (gtk_sink, "Sending reconfigure event on sinkpad."); -+ GST_DEBUG_OBJECT (gtk_sink, "Sending reconfigure event on sinkpad"); - gst_pad_push_event (GST_BASE_SINK (gtk_sink)->sinkpad, - gst_event_new_reconfigure ()); - } - } -+#endif - - static void - destroy_cb (GtkWidget * widget, GstGtkGLSink * gtk_sink) -@@ -171,12 +182,14 @@ gst_gtk_gl_sink_start (GstBaseSink * bsink) - /* After this point, gtk_sink->widget will always be set */ - gst_widget = GTK_GST_GL_WIDGET (base_sink->widget); - -+#if !defined(BUILD_FOR_GTK4) - /* Track the allocation size */ - if (!gtk_sink->size_allocate_sig_handler) { - gtk_sink->size_allocate_sig_handler = - g_signal_connect (gst_widget, "size-allocate", - G_CALLBACK (_size_changed_cb), gtk_sink); - } -+#endif - - if (!gtk_sink->widget_destroy_sig_handler) { - gtk_sink->widget_destroy_sig_handler = -@@ -184,11 +197,9 @@ gst_gtk_gl_sink_start (GstBaseSink * bsink) - gtk_sink); - } - -- _size_changed_cb (GTK_WIDGET (gst_widget), NULL, gtk_sink); -- - if (!gtk_gst_gl_widget_init_winsys (gst_widget)) { - GST_ELEMENT_ERROR (bsink, RESOURCE, NOT_FOUND, ("%s", -- "Failed to initialize OpenGL with Gtk"), (NULL)); -+ "Failed to initialize OpenGL with GTK"), (NULL)); - return FALSE; - } - -@@ -201,7 +212,7 @@ gst_gtk_gl_sink_start (GstBaseSink * bsink) - - if (!gtk_sink->display || !gtk_sink->context || !gtk_sink->gtk_context) { - GST_ELEMENT_ERROR (bsink, RESOURCE, NOT_FOUND, ("%s", -- "Failed to retrieve OpenGL context from Gtk"), (NULL)); -+ "Failed to retrieve OpenGL context from GTK"), (NULL)); - return FALSE; - } - -diff --git a/ext/gtk/gstplugin.c b/ext/gtk/gstplugin.c -index ed275785b..788f4f9dd 100644 ---- a/ext/gtk/gstplugin.c -+++ b/ext/gtk/gstplugin.c -@@ -1,6 +1,7 @@ - /* - * GStreamer - * Copyright (C) 2015 Matthew Waters -+ * Copyright (C) 2020 Rafał Dzięgiel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public -@@ -22,31 +23,37 @@ - #include "config.h" - #endif - -+#include "gtkconfig.h" -+ -+#if !defined(BUILD_FOR_GTK4) - #include "gstgtksink.h" --#if defined(HAVE_GTK3_GL) -+#endif -+ -+#if defined(HAVE_GTK_GL) - #include "gstgtkglsink.h" - #endif - - static gboolean - plugin_init (GstPlugin * plugin) - { -+#if !defined(BUILD_FOR_GTK4) - if (!gst_element_register (plugin, "gtksink", - GST_RANK_NONE, GST_TYPE_GTK_SINK)) { - return FALSE; - } --#if defined(HAVE_GTK3_GL) -- if (!gst_element_register (plugin, "gtkglsink", -+#endif -+ -+#if defined(HAVE_GTK_GL) -+ if (!gst_element_register (plugin, GTKCONFIG_GLSINK, - GST_RANK_NONE, GST_TYPE_GTK_GL_SINK)) { - return FALSE; - } - #endif -- - return TRUE; - } - - GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, - GST_VERSION_MINOR, -- gtk, -- "Gtk+ sink", -+ GTKCONFIG_PLUGIN, GTKCONFIG_NAME " sink", - plugin_init, PACKAGE_VERSION, GST_LICENSE, GST_PACKAGE_NAME, - GST_PACKAGE_ORIGIN) -diff --git a/ext/gtk/gtkconfig.h b/ext/gtk/gtkconfig.h -new file mode 100644 -index 000000000..8dd28dc00 ---- /dev/null -+++ b/ext/gtk/gtkconfig.h -@@ -0,0 +1,29 @@ -+/* -+ * GStreamer -+ * Copyright (C) 2020 Rafał Dzięgiel -+ * -+ * This library is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU Library General Public -+ * License as published by the Free Software Foundation; either -+ * version 2 of the License, or (at your option) any later version. -+ * -+ * This library is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ * Library General Public License for more details. -+ * -+ * You should have received a copy of the GNU Library General Public -+ * License along with this library; if not, write to the -+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, -+ * Boston, MA 02110-1301, USA. -+ */ -+ -+#if defined(BUILD_FOR_GTK4) -+#define GTKCONFIG_PLUGIN gtk4 -+#define GTKCONFIG_NAME "GTK4" -+#define GTKCONFIG_GLSINK "gtk4glsink" -+#else -+#define GTKCONFIG_PLUGIN gtk -+#define GTKCONFIG_NAME "GTK" -+#define GTKCONFIG_GLSINK "gtkglsink" -+#endif -diff --git a/ext/gtk/gtkgstbasewidget.c b/ext/gtk/gtkgstbasewidget.c -index 5d57b0ee7..bd0794f2f 100644 ---- a/ext/gtk/gtkgstbasewidget.c -+++ b/ext/gtk/gtkgstbasewidget.c -@@ -1,6 +1,7 @@ - /* - * GStreamer - * Copyright (C) 2015 Matthew Waters -+ * Copyright (C) 2020 Rafał Dzięgiel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public -@@ -74,6 +75,22 @@ gtk_gst_base_widget_get_preferred_height (GtkWidget * widget, gint * min, - *natural = video_height; - } - -+#if defined(BUILD_FOR_GTK4) -+static void -+gtk_gst_base_widget_measure (GtkWidget * widget, GtkOrientation orientation, -+ gint for_size, gint * min, gint * natural, -+ gint * minimum_baseline, gint * natural_baseline) -+{ -+ if (orientation == GTK_ORIENTATION_HORIZONTAL) -+ gtk_gst_base_widget_get_preferred_width (widget, min, natural); -+ else -+ gtk_gst_base_widget_get_preferred_height (widget, min, natural); -+ -+ *minimum_baseline = -1; -+ *natural_baseline = -1; -+} -+#endif -+ - static void - gtk_gst_base_widget_set_property (GObject * object, guint prop_id, - const GValue * value, GParamSpec * pspec) -@@ -235,11 +252,23 @@ _gdk_key_to_navigation_string (guint keyval) - } - } - -+static GdkEvent * -+_get_current_event (GtkEventController * controller) -+{ -+#if defined(BUILD_FOR_GTK4) -+ return gtk_event_controller_get_current_event (controller); -+#else -+ return gtk_get_current_event (); -+#endif -+} -+ - static void - _gdk_event_free (GdkEvent * event) - { -+#if !defined(BUILD_FOR_GTK4) - if (event) - gdk_event_free (event); -+#endif - } - - static gboolean -@@ -253,7 +282,7 @@ gtk_gst_base_widget_key_event (GtkEventControllerKey * key_controller, - - if ((element = g_weak_ref_get (&base_widget->element))) { - if (GST_IS_NAVIGATION (element)) { -- GdkEvent *event = gtk_get_current_event (); -+ GdkEvent *event = _get_current_event (controller); - const gchar *str = _gdk_key_to_navigation_string (keyval); - - if (str) { -@@ -337,7 +366,12 @@ _display_size_to_stream_size (GtkGstBaseWidget * base_widget, gdouble x, - } - - static gboolean --gtk_gst_base_widget_button_event (GtkGestureMultiPress * gesture, -+gtk_gst_base_widget_button_event ( -+#if defined(BUILD_FOR_GTK4) -+ GtkGestureClick * gesture, -+#else -+ GtkGestureMultiPress * gesture, -+#endif - gint n_press, gdouble x, gdouble y) - { - GtkEventController *controller = GTK_EVENT_CONTROLLER (gesture); -@@ -347,18 +381,26 @@ gtk_gst_base_widget_button_event (GtkGestureMultiPress * gesture, - - if ((element = g_weak_ref_get (&base_widget->element))) { - if (GST_IS_NAVIGATION (element)) { -- GdkEvent *event = gtk_get_current_event (); -+ GdkEvent *event = _get_current_event (controller); - const gchar *key_type = - gdk_event_get_event_type (event) == GDK_BUTTON_PRESS - ? "mouse-button-press" : "mouse-button-release"; - gdouble stream_x, stream_y; -+#if !defined(BUILD_FOR_GTK4) - guint button; - gdk_event_get_button (event, &button); -+#endif - - _display_size_to_stream_size (base_widget, x, y, &stream_x, &stream_y); - - gst_navigation_send_mouse_event (GST_NAVIGATION (element), key_type, -- button, stream_x, stream_y); -+#if defined(BUILD_FOR_GTK4) -+ /* Gesture is set to ignore other buttons so we do not have to check */ -+ GDK_BUTTON_PRIMARY, -+#else -+ button, -+#endif -+ stream_x, stream_y); - - _gdk_event_free (event); - } -@@ -418,11 +460,15 @@ gtk_gst_base_widget_class_init (GtkGstBaseWidgetClass * klass) - "When enabled, alpha will be ignored and converted to black", - DEFAULT_IGNORE_ALPHA, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); - -+#if defined(BUILD_FOR_GTK4) -+ widget_klass->measure = gtk_gst_base_widget_measure; -+#else - widget_klass->get_preferred_width = gtk_gst_base_widget_get_preferred_width; - widget_klass->get_preferred_height = gtk_gst_base_widget_get_preferred_height; -+#endif - - GST_DEBUG_CATEGORY_INIT (gst_debug_gtk_base_widget, "gtkbasewidget", 0, -- "Gtk Video Base Widget"); -+ "GTK Video Base Widget"); - } - - void -@@ -439,23 +485,46 @@ gtk_gst_base_widget_init (GtkGstBaseWidget * widget) - g_weak_ref_init (&widget->element, NULL); - g_mutex_init (&widget->lock); - -- widget->key_controller = gtk_event_controller_key_new (GTK_WIDGET (widget)); -+ widget->key_controller = gtk_event_controller_key_new ( -+#if !defined(BUILD_FOR_GTK4) -+ GTK_WIDGET (widget) -+#endif -+ ); - g_signal_connect (widget->key_controller, "key-pressed", - G_CALLBACK (gtk_gst_base_widget_key_event), NULL); - g_signal_connect (widget->key_controller, "key-released", - G_CALLBACK (gtk_gst_base_widget_key_event), NULL); - -- widget->motion_controller = -- gtk_event_controller_motion_new (GTK_WIDGET (widget)); -+ widget->motion_controller = gtk_event_controller_motion_new ( -+#if !defined(BUILD_FOR_GTK4) -+ GTK_WIDGET (widget) -+#endif -+ ); - g_signal_connect (widget->motion_controller, "motion", - G_CALLBACK (gtk_gst_base_widget_motion_event), NULL); - -- widget->click_gesture = gtk_gesture_multi_press_new (GTK_WIDGET (widget)); -+ widget->click_gesture = -+#if defined(BUILD_FOR_GTK4) -+ gtk_gesture_click_new (); -+#else -+ gtk_gesture_multi_press_new (GTK_WIDGET (widget)); -+#endif - g_signal_connect (widget->click_gesture, "pressed", - G_CALLBACK (gtk_gst_base_widget_button_event), NULL); - g_signal_connect (widget->click_gesture, "released", - G_CALLBACK (gtk_gst_base_widget_button_event), NULL); - -+#if defined(BUILD_FOR_GTK4) -+ gtk_widget_set_focusable (GTK_WIDGET (widget), TRUE); -+ gtk_gesture_single_set_button (GTK_GESTURE_SINGLE (widget->click_gesture), -+ GDK_BUTTON_PRIMARY); -+ -+ gtk_widget_add_controller (GTK_WIDGET (widget), widget->key_controller); -+ gtk_widget_add_controller (GTK_WIDGET (widget), widget->motion_controller); -+ gtk_widget_add_controller (GTK_WIDGET (widget), -+ GTK_EVENT_CONTROLLER (widget->click_gesture)); -+#endif -+ - gtk_widget_set_can_focus (GTK_WIDGET (widget), TRUE); - } - -@@ -464,9 +533,13 @@ gtk_gst_base_widget_finalize (GObject * object) - { - GtkGstBaseWidget *widget = GTK_GST_BASE_WIDGET (object); - -+ /* GTK4 takes ownership of EventControllers -+ * while GTK3 still needs manual unref */ -+#if !defined(BUILD_FOR_GTK4) - g_object_unref (widget->key_controller); - g_object_unref (widget->motion_controller); - g_object_unref (widget->click_gesture); -+#endif - - gst_buffer_replace (&widget->pending_buffer, NULL); - gst_buffer_replace (&widget->buffer, NULL); -diff --git a/ext/gtk/gtkgstbasewidget.h b/ext/gtk/gtkgstbasewidget.h -index 0e31478a0..0b0fe9e55 100644 ---- a/ext/gtk/gtkgstbasewidget.h -+++ b/ext/gtk/gtkgstbasewidget.h -@@ -1,6 +1,7 @@ - /* - * GStreamer - * Copyright (C) 2015 Matthew Waters -+ * Copyright (C) 2020 Rafał Dzięgiel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public -@@ -24,7 +25,10 @@ - #include - #include - #include -+ -+#if !defined(BUILD_FOR_GTK4) - #include -+#endif - - #define GTK_GST_BASE_WIDGET(w) ((GtkGstBaseWidget *)(w)) - #define GTK_GST_BASE_WIDGET_CLASS(k) ((GtkGstBaseWidgetClass *)(k)) -@@ -39,10 +43,10 @@ typedef struct _GtkGstBaseWidgetClass GtkGstBaseWidgetClass; - struct _GtkGstBaseWidget - { - union { -+#if !defined(BUILD_FOR_GTK4) - GtkDrawingArea drawing_area; --#if GTK_CHECK_VERSION(3, 15, 0) -- GtkGLArea gl_area; - #endif -+ GtkGLArea gl_area; - } parent; - - /* properties */ -@@ -80,10 +84,10 @@ struct _GtkGstBaseWidget - struct _GtkGstBaseWidgetClass - { - union { -+#if !defined(BUILD_FOR_GTK4) - GtkDrawingAreaClass drawing_area_class; --#if GTK_CHECK_VERSION(3, 15, 0) -- GtkGLAreaClass gl_area_class; - #endif -+ GtkGLAreaClass gl_area_class; - } parent_class; - }; - -diff --git a/ext/gtk/gtkgstglwidget.c b/ext/gtk/gtkgstglwidget.c -index 6c423ad89..186144a1c 100644 ---- a/ext/gtk/gtkgstglwidget.c -+++ b/ext/gtk/gtkgstglwidget.c -@@ -1,6 +1,7 @@ - /* - * GStreamer - * Copyright (C) 2015 Matthew Waters -+ * Copyright (C) 2020 Rafał Dzięgiel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public -@@ -30,12 +31,20 @@ - #include - - #if GST_GL_HAVE_WINDOW_X11 && defined (GDK_WINDOWING_X11) -+#if defined(BUILD_FOR_GTK4) -+#include -+#else - #include -+#endif - #include - #endif - - #if GST_GL_HAVE_WINDOW_WAYLAND && defined (GDK_WINDOWING_WAYLAND) -+#if defined(BUILD_FOR_GTK4) -+#include -+#else - #include -+#endif - #include - #endif - -@@ -78,8 +87,7 @@ static const GLfloat vertices[] = { - G_DEFINE_TYPE_WITH_CODE (GtkGstGLWidget, gtk_gst_gl_widget, GTK_TYPE_GL_AREA, - G_ADD_PRIVATE (GtkGstGLWidget) - GST_DEBUG_CATEGORY_INIT (GST_CAT_DEFAULT, "gtkgstglwidget", 0, -- "Gtk Gst GL Widget"); -- ); -+ "GTK Gst GL Widget")); - - static void - gtk_gst_gl_widget_bind_buffer (GtkGstGLWidget * gst_widget) -@@ -407,8 +415,11 @@ gtk_gst_gl_widget_init (GtkGstGLWidget * gst_widget) - - GST_INFO ("Created %" GST_PTR_FORMAT, priv->display); - -+ /* GTK4 always has alpha */ -+#if !defined(BUILD_FOR_GTK4) - gtk_gl_area_set_has_alpha (GTK_GL_AREA (gst_widget), - !base_widget->ignore_alpha); -+#endif - } - - static void -diff --git a/ext/gtk/meson.build b/ext/gtk/meson.build -index 722775e08..466e9221e 100644 ---- a/ext/gtk/meson.build -+++ b/ext/gtk/meson.build -@@ -1,59 +1,93 @@ -+gtk_versions = [3, 4] - gtk_sources = [ - 'gstgtkbasesink.c', -- 'gstgtksink.c', - 'gstgtkutils.c', - 'gstplugin.c', - 'gtkgstbasewidget.c', -- 'gtkgstwidget.c', - ] -+gtk_dep = dependency('gtk+-3.0', required : get_option('gtk3')) -+gtk4_dep = dependency('gtk4', required : get_option('gtk4')) - --gtk_defines = [] --optional_deps = [] -+foreach gtk_ver : gtk_versions -+ gtkv = 'gtk' + gtk_ver.to_string() - --gtk_dep = dependency('gtk+-3.0', required : get_option('gtk3')) --if gtk_dep.found() -- # FIXME: automagic -- if have_gstgl and gtk_dep.version().version_compare('>=3.24.0') -- have_gtk3_gl_windowing = false -+ gtk_state = get_option(gtkv) -+ if gtk_state.disabled() -+ continue -+ endif -+ -+ min_ver = gtk_ver >= 4 ? '3.99.2' : '3.24.0' -+ x11_dep = gtk_ver >= 4 ? gtkv + '-x11' : 'gtk+-x11-3.0' -+ way_dep = gtk_ver >= 4 ? gtkv + '-wayland' : 'gtk+-wayland-3.0' -+ lib_dep = gtk_ver >= 4 ? gtk4_dep : gtk_dep - -+ if not lib_dep.found() or not lib_dep.version().version_compare('>=' + min_ver) -+ continue -+ endif -+ -+ lib_sources = [] -+ gtk_defines = [] -+ optional_deps = [] -+ have_gtk_gl_windowing = false -+ -+ lib_sources += gtk_sources -+ if gtk_ver == 3 -+ lib_sources += [ -+ 'gstgtksink.c', -+ 'gtkgstwidget.c', -+ ] -+ endif -+ -+ if have_gstgl - if gst_gl_have_window_x11 and gst_gl_have_platform_glx - # FIXME: automagic -- gtk_x11_dep = dependency('gtk+-x11-3.0', required : false) -+ gtk_x11_dep = dependency(x11_dep, required : false) - if gtk_x11_dep.found() - optional_deps += [gtk_x11_dep, gstglx11_dep] -- have_gtk3_gl_windowing = true -+ have_gtk_gl_windowing = true - endif - endif - - if gst_gl_have_window_wayland and gst_gl_have_platform_egl - # FIXME: automagic -- gtk_wayland_dep = dependency('gtk+-wayland-3.0', required : false) -+ gtk_wayland_dep = dependency(way_dep, required : false) - if gtk_wayland_dep.found() - optional_deps += [gtk_wayland_dep, gstglegl_dep, gstglwayland_dep] -- have_gtk3_gl_windowing = true -+ have_gtk_gl_windowing = true - endif - endif -+ endif -+ -+ if gtk_ver > 3 and not have_gtk_gl_windowing -+ continue -+ endif - -- if have_gtk3_gl_windowing -- gtk_sources += [ -- 'gstgtkglsink.c', -- 'gtkgstglwidget.c', -- ] -- optional_deps += [gstgl_dep, gstglproto_dep] -- gtk_defines += ['-DGST_USE_UNSTABLE_API', '-DHAVE_GTK3_GL'] -+ if have_gtk_gl_windowing -+ lib_sources += [ -+ 'gstgtkglsink.c', -+ 'gtkgstglwidget.c', -+ ] -+ optional_deps += [gstgl_dep, gstglproto_dep] -+ gtk_defines += ['-DGST_USE_UNSTABLE_API', '-DHAVE_GTK_GL'] -+ if gtk_ver == 4 -+ gtk_defines += '-DBUILD_FOR_GTK4' - endif - endif - -- gstgtk = library('gstgtk', -- gtk_sources, -+ lib_name = 'gstgtk' -+ if gtk_ver > 3 -+ lib_name += gtk_ver.to_string() -+ endif -+ -+ gstgtk = library(lib_name, -+ lib_sources, - c_args : gst_plugins_good_args + gtk_defines, - link_args : noseh_link_args, - include_directories : [configinc], -- dependencies : [gtk_dep, gstvideo_dep, gstbase_dep, libm] + optional_deps, -+ dependencies : [lib_dep, gstvideo_dep, gstbase_dep, libm] + optional_deps, - install : true, - install_dir : plugins_install_dir, - ) - pkgconfig.generate(gstgtk, install_dir : plugins_pkgconfig_install_dir) - plugins += [gstgtk] --endif -- -+endforeach -diff --git a/meson_options.txt b/meson_options.txt -index 3dafe1fda..ca2b5d8d7 100644 ---- a/meson_options.txt -+++ b/meson_options.txt -@@ -53,6 +53,7 @@ option('dv1394', type : 'feature', value : 'auto', description : 'Digital IEEE13 - option('flac', type : 'feature', value : 'auto', description : 'FLAC audio codec plugin') - option('gdk-pixbuf', type : 'feature', value : 'auto', description : 'gdk-pixbuf image decoder, overlay, and sink plugin') - option('gtk3', type : 'feature', value : 'auto', description : 'GTK+ video sink plugin') -+option('gtk4', type : 'feature', value : 'disabled', description : 'GTK4 video sink plugin') - option('jack', type : 'feature', value : 'auto', description : 'JACK audio source/sink plugin') - option('jpeg', type : 'feature', value : 'auto', description : 'JPEG image codec plugin') - option('lame', type : 'feature', value : 'auto', description : 'LAME mp3 audio encoder plugin') --- -GitLab - - -From dca6efe22a665339307a3c6f2ecd9f7b72cd6a31 Mon Sep 17 00:00:00 2001 -From: Rafostar <40623528+Rafostar@users.noreply.github.com> -Date: Thu, 12 Nov 2020 14:46:15 +0100 -Subject: [PATCH 04/10] gtk(4): separate gtk and gtk4 meson dependencies - -This fixes building tests against the correct gtk version ---- - ext/gtk/meson.build | 17 +++++++++++++---- - tests/examples/gtk/meson.build | 2 +- - 2 files changed, 14 insertions(+), 5 deletions(-) - -diff --git a/ext/gtk/meson.build b/ext/gtk/meson.build -index 466e9221e..82765b6c8 100644 ---- a/ext/gtk/meson.build -+++ b/ext/gtk/meson.build -@@ -6,7 +6,10 @@ gtk_sources = [ - 'gtkgstbasewidget.c', - ] - gtk_dep = dependency('gtk+-3.0', required : get_option('gtk3')) -+gtk_optional_deps = [] -+ - gtk4_dep = dependency('gtk4', required : get_option('gtk4')) -+gtk4_optional_deps = [] - - foreach gtk_ver : gtk_versions - gtkv = 'gtk' + gtk_ver.to_string() -@@ -17,8 +20,8 @@ foreach gtk_ver : gtk_versions - endif - - min_ver = gtk_ver >= 4 ? '3.99.2' : '3.24.0' -- x11_dep = gtk_ver >= 4 ? gtkv + '-x11' : 'gtk+-x11-3.0' -- way_dep = gtk_ver >= 4 ? gtkv + '-wayland' : 'gtk+-wayland-3.0' -+ x11_str = gtk_ver >= 4 ? gtkv + '-x11' : 'gtk+-x11-3.0' -+ way_str = gtk_ver >= 4 ? gtkv + '-wayland' : 'gtk+-wayland-3.0' - lib_dep = gtk_ver >= 4 ? gtk4_dep : gtk_dep - - if not lib_dep.found() or not lib_dep.version().version_compare('>=' + min_ver) -@@ -41,7 +44,7 @@ foreach gtk_ver : gtk_versions - if have_gstgl - if gst_gl_have_window_x11 and gst_gl_have_platform_glx - # FIXME: automagic -- gtk_x11_dep = dependency(x11_dep, required : false) -+ gtk_x11_dep = dependency(x11_str, required : false) - if gtk_x11_dep.found() - optional_deps += [gtk_x11_dep, gstglx11_dep] - have_gtk_gl_windowing = true -@@ -50,7 +53,7 @@ foreach gtk_ver : gtk_versions - - if gst_gl_have_window_wayland and gst_gl_have_platform_egl - # FIXME: automagic -- gtk_wayland_dep = dependency(way_dep, required : false) -+ gtk_wayland_dep = dependency(way_str, required : false) - if gtk_wayland_dep.found() - optional_deps += [gtk_wayland_dep, gstglegl_dep, gstglwayland_dep] - have_gtk_gl_windowing = true -@@ -74,6 +77,12 @@ foreach gtk_ver : gtk_versions - endif - endif - -+ if gtk_ver == 3 -+ gtk_optional_deps = optional_deps -+ elif gtk_ver == 4 -+ gtk4_optional_deps = optional_deps -+ endif -+ - lib_name = 'gstgtk' - if gtk_ver > 3 - lib_name += gtk_ver.to_string() -diff --git a/tests/examples/gtk/meson.build b/tests/examples/gtk/meson.build -index 76e9f4f8e..4de2075e6 100644 ---- a/tests/examples/gtk/meson.build -+++ b/tests/examples/gtk/meson.build -@@ -1,5 +1,5 @@ - executable('gtksink', 'gtksink.c', -- dependencies: [gst_dep, gtk_dep, optional_deps], -+ dependencies: [gst_dep, gtk_dep, gtk_optional_deps], - c_args: gst_plugins_good_args, - include_directories: [configinc], - install: false) --- -GitLab - - -From 905e86bca45af1d706c9e7fc1a22d0f4cf962faf Mon Sep 17 00:00:00 2001 -From: Rafostar <40623528+Rafostar@users.noreply.github.com> -Date: Thu, 12 Nov 2020 18:16:23 +0100 -Subject: [PATCH 05/10] gtk(4): clear widget during our window destruction - -In GTK4 the "destroy" signal will not be emitted -as long as someone is holding a ref on an object. -We cannot use it to do the unref anymore. Cleanup -on our window "destroy" signal instead. This is -only used to make gst-launch-1.0 close properly. ---- - ext/gtk/gstgtkbasesink.c | 11 +++++++++++ - ext/gtk/gstgtkbasesink.h | 10 +++++----- - 2 files changed, 16 insertions(+), 5 deletions(-) - -diff --git a/ext/gtk/gstgtkbasesink.c b/ext/gtk/gstgtkbasesink.c -index 1f5319089..d176d3ee8 100644 ---- a/ext/gtk/gstgtkbasesink.c -+++ b/ext/gtk/gstgtkbasesink.c -@@ -150,6 +150,8 @@ gst_gtk_base_sink_finalize (GObject * object) - { - GstGtkBaseSink *gtk_sink = GST_GTK_BASE_SINK (object); - -+ GST_DEBUG ("finalizing base sink"); -+ - GST_OBJECT_LOCK (gtk_sink); - if (gtk_sink->window && gtk_sink->window_destroy_id) - g_signal_handler_disconnect (gtk_sink->window, gtk_sink->window_destroy_id); -@@ -174,6 +176,14 @@ static void - window_destroy_cb (GtkWidget * widget, GstGtkBaseSink * gtk_sink) - { - GST_OBJECT_LOCK (gtk_sink); -+ if (gtk_sink->widget) { -+ if (gtk_sink->widget_destroy_id) { -+ g_signal_handler_disconnect (gtk_sink->widget, -+ gtk_sink->widget_destroy_id); -+ gtk_sink->widget_destroy_id = 0; -+ } -+ g_clear_object (>k_sink->widget); -+ } - gtk_sink->window = NULL; - GST_OBJECT_UNLOCK (gtk_sink); - } -@@ -214,6 +224,7 @@ gst_gtk_base_sink_get_widget (GstGtkBaseSink * gtk_sink) - /* Take the floating ref, other wise the destruction of the container will - * make this widget disappear possibly before we are done. */ - gst_object_ref_sink (gtk_sink->widget); -+ - gtk_sink->widget_destroy_id = g_signal_connect (gtk_sink->widget, "destroy", - G_CALLBACK (widget_destroy_cb), gtk_sink); - -diff --git a/ext/gtk/gstgtkbasesink.h b/ext/gtk/gstgtkbasesink.h -index 650175036..db0acb2c0 100644 ---- a/ext/gtk/gstgtkbasesink.h -+++ b/ext/gtk/gstgtkbasesink.h -@@ -51,14 +51,14 @@ GType gst_gtk_base_sink_get_type (void); - struct _GstGtkBaseSink - { - /* */ -- GstVideoSink parent; -+ GstVideoSink parent; - -- GstVideoInfo v_info; -+ GstVideoInfo v_info; - - GtkGstBaseWidget *widget; - - /* properties */ -- gboolean force_aspect_ratio; -+ gboolean force_aspect_ratio; - GBinding *bind_aspect_ratio; - - gint par_n; -@@ -69,8 +69,8 @@ struct _GstGtkBaseSink - GBinding *bind_ignore_alpha; - - GtkWidget *window; -- gulong widget_destroy_id; -- gulong window_destroy_id; -+ gulong widget_destroy_id; -+ gulong window_destroy_id; - }; - - /** --- -GitLab - - -From a91cd51babbe8cbe2e086a9f51efd6e526310d9a Mon Sep 17 00:00:00 2001 -From: Rafostar <40623528+Rafostar@users.noreply.github.com> -Date: Tue, 29 Dec 2020 15:03:08 +0100 -Subject: [PATCH 06/10] gtk(4): replace "size-allocate" signal with "resize" - -In GTK4 the "size-allocate" signal was removed. -Recommended replacement is "resize" signal which was -also available in GTK3, so use it instead. ---- - ext/gtk/gstgtkglsink.c | 42 ++++++++++++++++++++---------------------- - ext/gtk/gstgtkglsink.h | 2 +- - 2 files changed, 21 insertions(+), 23 deletions(-) - -diff --git a/ext/gtk/gstgtkglsink.c b/ext/gtk/gstgtkglsink.c -index daaf0eb3f..e680c5a0f 100644 ---- a/ext/gtk/gstgtkglsink.c -+++ b/ext/gtk/gstgtkglsink.c -@@ -128,17 +128,18 @@ gst_gtk_gl_sink_query (GstBaseSink * bsink, GstQuery * query) - return res; - } - --#if !defined(BUILD_FOR_GTK4) - static void --_size_changed_cb (GtkWidget * widget, GdkRectangle * rectangle, -- GstGtkGLSink * gtk_sink) -+_size_changed_cb (GtkWidget * widget, gint width, -+ gint height, GstGtkGLSink * gtk_sink) - { -- gint scale_factor, width, height; - gboolean reconfigure; - -- scale_factor = gtk_widget_get_scale_factor (widget); -- width = scale_factor * gtk_widget_get_allocated_width (widget); -- height = scale_factor * gtk_widget_get_allocated_height (widget); -+ GtkGstBaseWidget *base_widget = GTK_GST_BASE_WIDGET (widget); -+ -+ /* Ignore size changes before widget is negotiated -+ * we are going to queue a resize after negotiation */ -+ if (!base_widget->negotiated) -+ return; - - GST_OBJECT_LOCK (gtk_sink); - reconfigure = -@@ -153,14 +154,13 @@ _size_changed_cb (GtkWidget * widget, GdkRectangle * rectangle, - gst_event_new_reconfigure ()); - } - } --#endif - - static void - destroy_cb (GtkWidget * widget, GstGtkGLSink * gtk_sink) - { -- if (gtk_sink->size_allocate_sig_handler) { -- g_signal_handler_disconnect (widget, gtk_sink->size_allocate_sig_handler); -- gtk_sink->size_allocate_sig_handler = 0; -+ if (gtk_sink->widget_resize_sig_handler) { -+ g_signal_handler_disconnect (widget, gtk_sink->widget_resize_sig_handler); -+ gtk_sink->widget_resize_sig_handler = 0; - } - - if (gtk_sink->widget_destroy_sig_handler) { -@@ -182,14 +182,12 @@ gst_gtk_gl_sink_start (GstBaseSink * bsink) - /* After this point, gtk_sink->widget will always be set */ - gst_widget = GTK_GST_GL_WIDGET (base_sink->widget); - --#if !defined(BUILD_FOR_GTK4) - /* Track the allocation size */ -- if (!gtk_sink->size_allocate_sig_handler) { -- gtk_sink->size_allocate_sig_handler = -- g_signal_connect (gst_widget, "size-allocate", -+ if (!gtk_sink->widget_resize_sig_handler) { -+ gtk_sink->widget_resize_sig_handler = -+ g_signal_connect (gst_widget, "resize", - G_CALLBACK (_size_changed_cb), gtk_sink); - } --#endif - - if (!gtk_sink->widget_destroy_sig_handler) { - gtk_sink->widget_destroy_sig_handler = -@@ -228,10 +226,10 @@ gst_gtk_gl_sink_stop (GstBaseSink * bsink) - GstGtkGLSink *gtk_sink = GST_GTK_GL_SINK (bsink); - GstGtkBaseSink *base_sink = GST_GTK_BASE_SINK (bsink); - -- if (gtk_sink->size_allocate_sig_handler) { -+ if (gtk_sink->widget_resize_sig_handler) { - g_signal_handler_disconnect (base_sink->widget, -- gtk_sink->size_allocate_sig_handler); -- gtk_sink->size_allocate_sig_handler = 0; -+ gtk_sink->widget_resize_sig_handler); -+ gtk_sink->widget_resize_sig_handler = 0; - } - - if (gtk_sink->display) { -@@ -373,10 +371,10 @@ gst_gtk_gl_sink_finalize (GObject * object) - GstGtkGLSink *gtk_sink = GST_GTK_GL_SINK (object); - GstGtkBaseSink *base_sink = GST_GTK_BASE_SINK (object); - -- if (gtk_sink->size_allocate_sig_handler) { -+ if (gtk_sink->widget_resize_sig_handler) { - g_signal_handler_disconnect (base_sink->widget, -- gtk_sink->size_allocate_sig_handler); -- gtk_sink->size_allocate_sig_handler = 0; -+ gtk_sink->widget_resize_sig_handler); -+ gtk_sink->widget_resize_sig_handler = 0; - } - - if (gtk_sink->widget_destroy_sig_handler) { -diff --git a/ext/gtk/gstgtkglsink.h b/ext/gtk/gstgtkglsink.h -index 8ff935948..57450c8ac 100644 ---- a/ext/gtk/gstgtkglsink.h -+++ b/ext/gtk/gstgtkglsink.h -@@ -57,7 +57,7 @@ struct _GstGtkGLSink - gint display_width; - gint display_height; - -- gulong size_allocate_sig_handler; -+ gulong widget_resize_sig_handler; - gulong widget_destroy_sig_handler; - }; - --- -GitLab - - -From 8798dffb7f1f5b6ba281334789bdf4336faa005c Mon Sep 17 00:00:00 2001 -From: Rafostar <40623528+Rafostar@users.noreply.github.com> -Date: Sat, 2 Jan 2021 22:56:36 +0100 -Subject: [PATCH 07/10] gtk: fix wrong element name in docs - -In docs "gtksink" was named "gtkgstsink" which caused -the doc generation to not detect and describe it properly. ---- - ext/gtk/gstgtksink.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/ext/gtk/gstgtksink.c b/ext/gtk/gstgtksink.c -index ba8ea33ca..c330a82b4 100644 ---- a/ext/gtk/gstgtksink.c -+++ b/ext/gtk/gstgtksink.c -@@ -19,8 +19,8 @@ - */ - - /** -- * SECTION:element-gtkgstsink -- * @title: gtkgstsink -+ * SECTION:element-gtksink -+ * @title: gtksink - * - */ - --- -GitLab - - -From 53802970c1a5182f85468552cecbabda0bb0e98d Mon Sep 17 00:00:00 2001 -From: Rafostar <40623528+Rafostar@users.noreply.github.com> -Date: Thu, 31 Dec 2020 12:44:23 +0100 -Subject: [PATCH 08/10] gtksink: add GTK4 support - -Add GTK4 compatibility for Cairo renderer based plugin. -The new sink plugin is named "gtk4sink". ---- - ext/gtk/gstgtksink.c | 16 ++++++++++++---- - ext/gtk/gstplugin.c | 8 +------- - ext/gtk/gtkconfig.h | 2 ++ - ext/gtk/gtkgstbasewidget.h | 4 ---- - ext/gtk/gtkgstwidget.c | 35 ++++++++++++++++++++++++++++------- - ext/gtk/meson.build | 16 +++------------- - 6 files changed, 46 insertions(+), 35 deletions(-) - -diff --git a/ext/gtk/gstgtksink.c b/ext/gtk/gstgtksink.c -index c330a82b4..d64859ff6 100644 ---- a/ext/gtk/gstgtksink.c -+++ b/ext/gtk/gstgtksink.c -@@ -24,10 +24,17 @@ - * - */ - -+/** -+ * SECTION:element-gtk4sink -+ * @title: gtk4sink -+ * -+ */ -+ - #ifdef HAVE_CONFIG_H - #include "config.h" - #endif - -+#include "gtkconfig.h" - #include "gtkgstwidget.h" - #include "gstgtksink.h" - -@@ -49,8 +56,8 @@ GST_STATIC_PAD_TEMPLATE ("sink", - - #define gst_gtk_sink_parent_class parent_class - G_DEFINE_TYPE_WITH_CODE (GstGtkSink, gst_gtk_sink, GST_TYPE_GTK_BASE_SINK, -- GST_DEBUG_CATEGORY_INIT (gst_debug_gtk_sink, "gtksink", 0, -- "Gtk Video Sink")); -+ GST_DEBUG_CATEGORY_INIT (gst_debug_gtk_sink, GTKCONFIG_SINK, 0, -+ GTKCONFIG_NAME " Video Sink")); - - static void - gst_gtk_sink_class_init (GstGtkSinkClass * klass) -@@ -62,9 +69,10 @@ gst_gtk_sink_class_init (GstGtkSinkClass * klass) - base_class = (GstGtkBaseSinkClass *) klass; - - base_class->create_widget = gtk_gst_widget_new; -- base_class->window_title = "Gtk+ Cairo renderer"; -+ base_class->window_title = GTKCONFIG_NAME " Cairo Renderer"; - -- gst_element_class_set_metadata (gstelement_class, "Gtk Video Sink", -+ gst_element_class_set_metadata (gstelement_class, -+ GTKCONFIG_NAME " Video Sink", - "Sink/Video", "A video sink that renders to a GtkWidget", - "Matthew Waters "); - -diff --git a/ext/gtk/gstplugin.c b/ext/gtk/gstplugin.c -index 788f4f9dd..5fb2d99f4 100644 ---- a/ext/gtk/gstplugin.c -+++ b/ext/gtk/gstplugin.c -@@ -24,10 +24,7 @@ - #endif - - #include "gtkconfig.h" -- --#if !defined(BUILD_FOR_GTK4) - #include "gstgtksink.h" --#endif - - #if defined(HAVE_GTK_GL) - #include "gstgtkglsink.h" -@@ -36,13 +33,10 @@ - static gboolean - plugin_init (GstPlugin * plugin) - { --#if !defined(BUILD_FOR_GTK4) -- if (!gst_element_register (plugin, "gtksink", -+ if (!gst_element_register (plugin, GTKCONFIG_SINK, - GST_RANK_NONE, GST_TYPE_GTK_SINK)) { - return FALSE; - } --#endif -- - #if defined(HAVE_GTK_GL) - if (!gst_element_register (plugin, GTKCONFIG_GLSINK, - GST_RANK_NONE, GST_TYPE_GTK_GL_SINK)) { -diff --git a/ext/gtk/gtkconfig.h b/ext/gtk/gtkconfig.h -index 8dd28dc00..ecbf95582 100644 ---- a/ext/gtk/gtkconfig.h -+++ b/ext/gtk/gtkconfig.h -@@ -21,9 +21,11 @@ - #if defined(BUILD_FOR_GTK4) - #define GTKCONFIG_PLUGIN gtk4 - #define GTKCONFIG_NAME "GTK4" -+#define GTKCONFIG_SINK "gtk4sink" - #define GTKCONFIG_GLSINK "gtk4glsink" - #else - #define GTKCONFIG_PLUGIN gtk - #define GTKCONFIG_NAME "GTK" -+#define GTKCONFIG_SINK "gtksink" - #define GTKCONFIG_GLSINK "gtkglsink" - #endif -diff --git a/ext/gtk/gtkgstbasewidget.h b/ext/gtk/gtkgstbasewidget.h -index 0b0fe9e55..bc0b805df 100644 ---- a/ext/gtk/gtkgstbasewidget.h -+++ b/ext/gtk/gtkgstbasewidget.h -@@ -43,9 +43,7 @@ typedef struct _GtkGstBaseWidgetClass GtkGstBaseWidgetClass; - struct _GtkGstBaseWidget - { - union { --#if !defined(BUILD_FOR_GTK4) - GtkDrawingArea drawing_area; --#endif - GtkGLArea gl_area; - } parent; - -@@ -84,9 +82,7 @@ struct _GtkGstBaseWidget - struct _GtkGstBaseWidgetClass - { - union { --#if !defined(BUILD_FOR_GTK4) - GtkDrawingAreaClass drawing_area_class; --#endif - GtkGLAreaClass gl_area_class; - } parent_class; - }; -diff --git a/ext/gtk/gtkgstwidget.c b/ext/gtk/gtkgstwidget.c -index a936210ba..eb8db8f7e 100644 ---- a/ext/gtk/gtkgstwidget.c -+++ b/ext/gtk/gtkgstwidget.c -@@ -38,17 +38,15 @@ - - G_DEFINE_TYPE (GtkGstWidget, gtk_gst_widget, GTK_TYPE_DRAWING_AREA); - --static gboolean --gtk_gst_widget_draw (GtkWidget * widget, cairo_t * cr) -+static void -+_drawing_area_draw (GtkDrawingArea * da, cairo_t * cr, -+ gint widget_width, gint widget_height, gpointer data) - { -+ GtkWidget *widget = GTK_WIDGET (da); - GtkGstBaseWidget *gst_widget = (GtkGstBaseWidget *) widget; -- guint widget_width, widget_height; - cairo_surface_t *surface; - GstVideoFrame frame; - -- widget_width = gtk_widget_get_allocated_width (widget); -- widget_height = gtk_widget_get_allocated_height (widget); -- - GTK_GST_BASE_WIDGET_LOCK (gst_widget); - - /* There is not much to optimize in term of redisplay, so simply swap the -@@ -148,7 +146,10 @@ gtk_gst_widget_draw (GtkWidget * widget, cairo_t * cr) - color.alpha = 1.0; - } else { - gtk_style_context_get_color (gtk_widget_get_style_context (widget), -- GTK_STATE_FLAG_NORMAL, &color); -+#if !defined(BUILD_FOR_GTK4) -+ GTK_STATE_FLAG_NORMAL, -+#endif -+ &color); - } - gdk_cairo_set_source_rgba (cr, &color); - cairo_rectangle (cr, 0, 0, widget_width, widget_height); -@@ -156,8 +157,20 @@ gtk_gst_widget_draw (GtkWidget * widget, cairo_t * cr) - } - - GTK_GST_BASE_WIDGET_UNLOCK (gst_widget); -+} -+ -+#if !defined(BUILD_FOR_GTK4) -+static gboolean -+gtk_gst_widget_draw (GtkWidget * widget, cairo_t * cr) -+{ -+ gint width = gtk_widget_get_allocated_width (widget); -+ gint height = gtk_widget_get_allocated_height (widget); -+ -+ _drawing_area_draw (GTK_DRAWING_AREA (widget), cr, width, height, NULL); -+ - return FALSE; - } -+#endif - - static void - gtk_gst_widget_finalize (GObject * object) -@@ -171,17 +184,25 @@ static void - gtk_gst_widget_class_init (GtkGstWidgetClass * klass) - { - GObjectClass *gobject_klass = (GObjectClass *) klass; -+#if !defined(BUILD_FOR_GTK4) - GtkWidgetClass *widget_klass = (GtkWidgetClass *) klass; -+#endif - - gtk_gst_base_widget_class_init (GTK_GST_BASE_WIDGET_CLASS (klass)); - gobject_klass->finalize = gtk_gst_widget_finalize; -+#if !defined(BUILD_FOR_GTK4) - widget_klass->draw = gtk_gst_widget_draw; -+#endif - } - - static void - gtk_gst_widget_init (GtkGstWidget * widget) - { - gtk_gst_base_widget_init (GTK_GST_BASE_WIDGET (widget)); -+#if defined(BUILD_FOR_GTK4) -+ gtk_drawing_area_set_draw_func (GTK_DRAWING_AREA (widget), -+ _drawing_area_draw, NULL, NULL); -+#endif - } - - GtkWidget * -diff --git a/ext/gtk/meson.build b/ext/gtk/meson.build -index 82765b6c8..c157cf8cd 100644 ---- a/ext/gtk/meson.build -+++ b/ext/gtk/meson.build -@@ -1,9 +1,11 @@ - gtk_versions = [3, 4] - gtk_sources = [ - 'gstgtkbasesink.c', -+ 'gstgtksink.c', - 'gstgtkutils.c', - 'gstplugin.c', - 'gtkgstbasewidget.c', -+ 'gtkgstwidget.c', - ] - gtk_dep = dependency('gtk+-3.0', required : get_option('gtk3')) - gtk_optional_deps = [] -@@ -34,12 +36,6 @@ foreach gtk_ver : gtk_versions - have_gtk_gl_windowing = false - - lib_sources += gtk_sources -- if gtk_ver == 3 -- lib_sources += [ -- 'gstgtksink.c', -- 'gtkgstwidget.c', -- ] -- endif - - if have_gstgl - if gst_gl_have_window_x11 and gst_gl_have_platform_glx -@@ -61,10 +57,6 @@ foreach gtk_ver : gtk_versions - endif - endif - -- if gtk_ver > 3 and not have_gtk_gl_windowing -- continue -- endif -- - if have_gtk_gl_windowing - lib_sources += [ - 'gstgtkglsink.c', -@@ -72,15 +64,13 @@ foreach gtk_ver : gtk_versions - ] - optional_deps += [gstgl_dep, gstglproto_dep] - gtk_defines += ['-DGST_USE_UNSTABLE_API', '-DHAVE_GTK_GL'] -- if gtk_ver == 4 -- gtk_defines += '-DBUILD_FOR_GTK4' -- endif - endif - - if gtk_ver == 3 - gtk_optional_deps = optional_deps - elif gtk_ver == 4 - gtk4_optional_deps = optional_deps -+ gtk_defines += '-DBUILD_FOR_GTK4' - endif - - lib_name = 'gstgtk' --- -GitLab - - -From db5a3373c0281ae2923f411375c919583489c5ab Mon Sep 17 00:00:00 2001 -From: Rafostar <40623528+Rafostar@users.noreply.github.com> -Date: Fri, 1 Jan 2021 20:10:38 +0100 -Subject: [PATCH 09/10] gtk4: expand widget by default - -In GTK4, (v/h)expand is disabled by default which -causes widget placed in grid to appear as a 1x1px -video and might be unnoticeable, confusing users -into thinking that something does not work. ---- - ext/gtk/gtkgstbasewidget.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/ext/gtk/gtkgstbasewidget.c b/ext/gtk/gtkgstbasewidget.c -index bd0794f2f..374eb7f97 100644 ---- a/ext/gtk/gtkgstbasewidget.c -+++ b/ext/gtk/gtkgstbasewidget.c -@@ -515,6 +515,11 @@ gtk_gst_base_widget_init (GtkGstBaseWidget * widget) - G_CALLBACK (gtk_gst_base_widget_button_event), NULL); - - #if defined(BUILD_FOR_GTK4) -+ /* Otherwise widget in grid will appear as a 1x1px -+ * video which might be misleading for users */ -+ gtk_widget_set_hexpand (GTK_WIDGET (widget), TRUE); -+ gtk_widget_set_vexpand (GTK_WIDGET (widget), TRUE); -+ - gtk_widget_set_focusable (GTK_WIDGET (widget), TRUE); - gtk_gesture_single_set_button (GTK_GESTURE_SINGLE (widget->click_gesture), - GDK_BUTTON_PRIMARY); --- -GitLab - - -From f17f29ed5cef270a50d5f72116953109c3cc8c86 Mon Sep 17 00:00:00 2001 -From: Rafostar <40623528+Rafostar@users.noreply.github.com> -Date: Sun, 3 Jan 2021 11:24:15 +0100 -Subject: [PATCH 10/10] docs: update plugin cache - -Update gtk plugin and add gtk4 plugin ---- - docs/gst_plugins_cache.json | 129 ++++++++++++++++++++++++++++++++++-- - 1 file changed, 125 insertions(+), 4 deletions(-) - -diff --git a/docs/gst_plugins_cache.json b/docs/gst_plugins_cache.json -index f8ac35e37..5afd41a99 100644 ---- a/docs/gst_plugins_cache.json -+++ b/docs/gst_plugins_cache.json -@@ -7075,10 +7075,10 @@ - "url": "Unknown package origin" - }, - "gtk": { -- "description": "Gtk+ sink", -+ "description": "GTK sink", - "elements": { - "gtkglsink": { -- "author": "Matthew Waters ", -+ "author": "Matthew Waters , Rafał Dzięgiel ", - "description": "A video sink that renders to a GtkWidget using OpenGL", - "hierarchy": [ - "GstGtkGLSink", -@@ -7094,7 +7094,7 @@ - "GstNavigation" - ], - "klass": "Sink/Video", -- "long-name": "Gtk GL Video Sink", -+ "long-name": "GTK GL Video Sink", - "pad-templates": { - "sink": { - "caps": "video/x-raw(memory:GLMemory):\n format: RGBA\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:GLMemory, meta:GstVideoOverlayComposition):\n format: RGBA\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\n", -@@ -7122,7 +7122,7 @@ - "GstNavigation" - ], - "klass": "Sink/Video", -- "long-name": "Gtk Video Sink", -+ "long-name": "GTK Video Sink", - "pad-templates": { - "sink": { - "caps": "video/x-raw:\n format: { BGRx, BGRA }\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\n", -@@ -7209,6 +7209,127 @@ - "tracers": {}, - "url": "Unknown package origin" - }, -+ "gtk4": { -+ "description": "GTK4 sink", -+ "elements": { -+ "gtk4glsink": { -+ "author": "Matthew Waters , Rafał Dzięgiel ", -+ "description": "A video sink that renders to a GtkWidget using OpenGL", -+ "hierarchy": [ -+ "GstGtkGLSink", -+ "GstGtkBaseSink", -+ "GstVideoSink", -+ "GstBaseSink", -+ "GstElement", -+ "GstObject", -+ "GInitiallyUnowned", -+ "GObject" -+ ], -+ "interfaces": [ -+ "GstNavigation" -+ ], -+ "klass": "Sink/Video", -+ "long-name": "GTK4 GL Video Sink", -+ "pad-templates": { -+ "sink": { -+ "caps": "video/x-raw(memory:GLMemory):\n format: RGBA\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:GLMemory, meta:GstVideoOverlayComposition):\n format: RGBA\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\n", -+ "direction": "sink", -+ "presence": "always" -+ } -+ }, -+ "rank": "none" -+ }, -+ "gtk4sink": { -+ "author": "Matthew Waters ", -+ "description": "A video sink that renders to a GtkWidget", -+ "hierarchy": [ -+ "GstGtkSink", -+ "GstGtkBaseSink", -+ "GstVideoSink", -+ "GstBaseSink", -+ "GstElement", -+ "GstObject", -+ "GInitiallyUnowned", -+ "GObject" -+ ], -+ "interfaces": [ -+ "GstNavigation" -+ ], -+ "klass": "Sink/Video", -+ "long-name": "GTK4 Video Sink", -+ "pad-templates": { -+ "sink": { -+ "caps": "video/x-raw:\n format: { BGRx, BGRA }\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\n", -+ "direction": "sink", -+ "presence": "always" -+ } -+ }, -+ "rank": "none" -+ } -+ }, -+ "filename": "gstgtk4", -+ "license": "LGPL", -+ "other-types": { -+ "GstGtkBaseSink": { -+ "hierarchy": [ -+ "GstGtkBaseSink", -+ "GstVideoSink", -+ "GstBaseSink", -+ "GstElement", -+ "GstObject", -+ "GInitiallyUnowned", -+ "GObject" -+ ], -+ "interfaces": [ -+ "GstNavigation" -+ ], -+ "kind": "object", -+ "properties": { -+ "force-aspect-ratio": { -+ "blurb": "When enabled, scaling will respect original aspect ratio", -+ "conditionally-available": false, -+ "construct": false, -+ "construct-only": false, -+ "controllable": false, -+ "default": "true", -+ "mutable": "null", -+ "readable": true, -+ "type": "gboolean", -+ "writable": true -+ }, -+ "pixel-aspect-ratio": { -+ "blurb": "The pixel aspect ratio of the device", -+ "conditionally-available": false, -+ "construct": false, -+ "construct-only": false, -+ "controllable": false, -+ "default": "0/1", -+ "max": "2147483647/1", -+ "min": "0/1", -+ "mutable": "null", -+ "readable": true, -+ "type": "GstFraction", -+ "writable": true -+ }, -+ "widget": { -+ "blurb": "The GtkWidget to place in the widget hierarchy (must only be get from the GTK main thread)", -+ "conditionally-available": false, -+ "construct": false, -+ "construct-only": false, -+ "controllable": false, -+ "mutable": "null", -+ "readable": true, -+ "type": "GtkWidget", -+ "writable": false -+ } -+ } -+ } -+ }, -+ "package": "GStreamer Good Plug-ins", -+ "source": "gst-plugins-good", -+ "tracers": {}, -+ "url": "Unknown package origin" -+ }, - "icydemux": { - "description": "Demux ICY tags from a stream", - "elements": { --- -GitLab - diff --git a/pkgs/applications/misc/authenticator/default.nix b/pkgs/applications/misc/authenticator/default.nix index 89ea3dae229..511feccbdc5 100644 --- a/pkgs/applications/misc/authenticator/default.nix +++ b/pkgs/applications/misc/authenticator/default.nix @@ -62,14 +62,14 @@ stdenv.mkDerivation rec { glib gst_all_1.gstreamer gst_all_1.gst-plugins-base - # See https://gitlab.gnome.org/World/Authenticator/-/blob/master/build-aux/com.belmoussaoui.Authenticator.Devel.json + + # gst-plugins-good needs gtk4 support: + # https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/767 + # We copy the way it is built from the Flatpak: + # https://gitlab.gnome.org/World/Authenticator/-/blob/master/build-aux/com.belmoussaoui.Authenticator.Devel.json (gst_all_1.gst-plugins-good.overrideAttrs (old: { - patches = [ - #(fetchpatch { - # url = "https://gitlab.gnome.org/World/Authenticator/-/raw/master/build-aux/767.patch"; - # sha256 = "1g3zkfs248p8wvrvplwrl38vylqsafv6vapfr1nj5kg7ndfrgilf"; - #}) - ./767.patch + patches = old.patches or [ ] ++ [ + "${src}/build-aux/767.patch" ]; mesonFlags = old.mesonFlags ++ [ "-Dgtk3=disabled" @@ -80,6 +80,7 @@ stdenv.mkDerivation rec { gtk4 ]; })) + gst_all_1.gst-plugins-bad gtk4 libadwaita From b2617ab4b65a372b5d63aca4c5e835bb70fa04cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=BCtz?= Date: Mon, 3 May 2021 12:17:07 +0200 Subject: [PATCH 309/339] fixup! libadwaita: init at unstable-2021-05-01 --- pkgs/development/libraries/libadwaita/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/libraries/libadwaita/default.nix b/pkgs/development/libraries/libadwaita/default.nix index 92ea7076821..486326f15f8 100644 --- a/pkgs/development/libraries/libadwaita/default.nix +++ b/pkgs/development/libraries/libadwaita/default.nix @@ -1,7 +1,7 @@ { lib , stdenv , fetchFromGitLab -, docbook_xsl +, docbook-xsl-nons , gtk-doc , meson , ninja @@ -18,7 +18,7 @@ stdenv.mkDerivation rec { version = "unstable-2021-05-01"; outputs = [ "out" "dev" "devdoc" ]; - outputBin = [ "dev" ]; + outputBin = "dev"; src = fetchFromGitLab { domain = "gitlab.gnome.org"; @@ -29,7 +29,7 @@ stdenv.mkDerivation rec { }; nativeBuildInputs = [ - docbook_xsl + docbook-xsl-nons gtk-doc meson ninja From 96567bb1ff10f66a96dce9e6b6517ae8db8e5310 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=BCtz?= Date: Mon, 3 May 2021 12:27:54 +0200 Subject: [PATCH 310/339] authenticator: hopefully fix crash --- pkgs/applications/misc/authenticator/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/applications/misc/authenticator/default.nix b/pkgs/applications/misc/authenticator/default.nix index 511feccbdc5..46b61720d0a 100644 --- a/pkgs/applications/misc/authenticator/default.nix +++ b/pkgs/applications/misc/authenticator/default.nix @@ -81,7 +81,7 @@ stdenv.mkDerivation rec { ]; })) - gst_all_1.gst-plugins-bad + (gst_all_1.gst-plugins-bad.override { enableZbar = true; }) gtk4 libadwaita openssl From dbf1665daa9a0f4a07c368c23fc1b5891d943ed4 Mon Sep 17 00:00:00 2001 From: Diogo Xavier Date: Mon, 3 May 2021 12:10:08 +0100 Subject: [PATCH 311/339] frugal: 3.14.2 -> 3.14.3 --- pkgs/development/tools/frugal/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/tools/frugal/default.nix b/pkgs/development/tools/frugal/default.nix index 1ce4139e75d..e76b62d45cb 100644 --- a/pkgs/development/tools/frugal/default.nix +++ b/pkgs/development/tools/frugal/default.nix @@ -2,13 +2,13 @@ buildGoModule rec { pname = "frugal"; - version = "3.14.2"; + version = "3.14.3"; src = fetchFromGitHub { owner = "Workiva"; repo = pname; rev = "v${version}"; - sha256 = "sha256-Tcx0jYGKoyBj2vuTJI34TsyCBzXPyccZFqXA8jJNMQI="; + sha256 = "sha256-zns2XcydY4xxgF8FB6eje0pAt0DZnFOIAqXaSX0xoMg="; }; subPackages = [ "." ]; From 18ebebd35ed245fe42719b36c375c17b3bf140ca Mon Sep 17 00:00:00 2001 From: Evils Date: Tue, 19 Jan 2021 22:54:58 +0100 Subject: [PATCH 312/339] bucklespring: init at unstable-2021-01-21 --- .../audio/bucklespring/default.nix | 63 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 4 ++ 2 files changed, 67 insertions(+) create mode 100644 pkgs/applications/audio/bucklespring/default.nix diff --git a/pkgs/applications/audio/bucklespring/default.nix b/pkgs/applications/audio/bucklespring/default.nix new file mode 100644 index 00000000000..8b1432c5ae8 --- /dev/null +++ b/pkgs/applications/audio/bucklespring/default.nix @@ -0,0 +1,63 @@ +{ lib +, stdenv +, fetchFromGitHub + +, legacy ? false +, libinput + +, pkg-config +, makeWrapper + +, openal +, alure +, libXtst +, libX11 +}: + +let + inherit (lib) optionals; +in +stdenv.mkDerivation rec { + pname = "bucklespring"; + version = "unstable-2021-01-21"; + + src = fetchFromGitHub { + owner = "zevv"; + repo = pname; + rev = "d63100c4561dd7c57efe6440c12fa8d9e9604145"; + sha256 = "114dib4npb7r1z2zd1fwsx71xbf9r6psxqd7n7590cwz1w3r51mz"; + }; + + nativeBuildInputs = [ pkg-config makeWrapper ]; + + buildInputs = [ openal alure ] + ++ optionals (legacy) [ libXtst libX11 ] + ++ optionals (!legacy) [ libinput ]; + + makeFlags = optionals (!legacy) [ "libinput=1" ]; + + installPhase = '' + runHook preInstall + + mkdir -p $out/share/wav + cp -r $src/wav $out/share/. + install -D ./buckle.desktop $out/share/applications/buckle.desktop + install -D ./buckle $out/bin/buckle + wrapProgram $out/bin/buckle --add-flags "-p $out/share/wav" + + runHook postInstall + ''; + + meta = with lib; { + description = "Nostalgia bucklespring keyboard sound"; + longDescription = '' + When built with libinput (wayland or bare console), + users need to be in the input group to use this: + users.users.alice.extraGroups = [ "input" ]; + ''; + homepage = "https://github.com/zevv/bucklespring"; + license = licenses.gpl2Only; + platforms = platforms.unix; + maintainers = [ maintainers.evils ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 2d6636416ee..382f6519778 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1222,6 +1222,10 @@ in btrfs-heatmap = callPackage ../tools/filesystems/btrfs-heatmap { }; + bucklespring = bucklespring-x11; + bucklespring-libinput = callPackage ../applications/audio/bucklespring { }; + bucklespring-x11 = callPackage ../applications/audio/bucklespring { legacy = true; }; + buildbot = with python3Packages; toPythonApplication buildbot; buildbot-ui = with python3Packages; toPythonApplication buildbot-ui; buildbot-full = with python3Packages; toPythonApplication buildbot-full; From 162b8fba1278900be3ff940a47009e67c00c9969 Mon Sep 17 00:00:00 2001 From: Robert Hensing Date: Mon, 3 May 2021 13:33:41 +0200 Subject: [PATCH 313/339] testing-python.nix: document runTests pos argument --- nixos/lib/testing-python.nix | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/nixos/lib/testing-python.nix b/nixos/lib/testing-python.nix index cbe90ff4cbf..6497b897eaf 100644 --- a/nixos/lib/testing-python.nix +++ b/nixos/lib/testing-python.nix @@ -54,8 +54,13 @@ rec { }; # Run an automated test suite in the given virtual network. - # `driver' is the script that runs the network. - runTests = { driver, pos }: + runTests = { + # the script that runs the network + driver, + # a source position in the format of builtins.unsafeGetAttrPos + # for meta.position + pos, + }: stdenv.mkDerivation { name = "vm-test-run-${driver.testName}"; From 1e1dcb723da4a5755e16b8ba05c871fd66b5bb65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cyryl=20P=C5=82otnicki?= Date: Mon, 3 May 2021 13:21:54 +0100 Subject: [PATCH 314/339] rename: 1.9 -> 1.11 --- pkgs/tools/misc/rename/default.nix | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pkgs/tools/misc/rename/default.nix b/pkgs/tools/misc/rename/default.nix index a9f42d1139e..a8b5f4a54ac 100644 --- a/pkgs/tools/misc/rename/default.nix +++ b/pkgs/tools/misc/rename/default.nix @@ -1,19 +1,19 @@ { lib, fetchFromGitHub, perlPackages }: -perlPackages.buildPerlPackage { +perlPackages.buildPerlPackage rec { pname = "rename"; - version = "1.9"; + version = "1.11"; outputs = [ "out" ]; src = fetchFromGitHub { owner = "pstray"; repo = "rename"; - rev = "d46f1d0ced25dc5849acb5d5974a3e2e9d97d536"; - sha256 = "0qahs1cqfaci2hdf1xncrz4k0z5skkfr43apnm3kybs7za33apzw"; + rev = "v${version}"; + sha256 = "SK6wS3IxjCftuDiiZU27TFnn9GVd137zmzvGH88cNLI="; }; meta = with lib; { description = "Rename files according to a Perl rewrite expression"; homepage = "https://github.com/pstray/rename"; - maintainers = with maintainers; [ mkg ]; + maintainers = with maintainers; [ mkg cyplo ]; license = with licenses; [ gpl1Plus ]; }; } From ac4b47f82368a9529a53b0b04fed4b685a9e12e0 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Thu, 29 Apr 2021 18:40:36 +0200 Subject: [PATCH 315/339] nixos/pinnwand: improve settings behaviour Individual settings would previously overwrite the whole config, but now individual values can be overwritten. Fix missing slash to make the database path an absolute path per https://docs.sqlalchemy.org/en/14/core/engines.html#sqlite. Drop preferred_lexers, it's not set to anything meaningful anyway. --- nixos/modules/services/misc/pinnwand.nix | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/nixos/modules/services/misc/pinnwand.nix b/nixos/modules/services/misc/pinnwand.nix index aa1ee5cfaa7..ca378847a20 100644 --- a/nixos/modules/services/misc/pinnwand.nix +++ b/nixos/modules/services/misc/pinnwand.nix @@ -24,22 +24,22 @@ in Your pinnwand.toml as a Nix attribute set. Look up possible options in the pinnwand.toml-example. ''; - default = { - # https://github.com/supakeen/pinnwand/blob/master/pinnwand.toml-example - database_uri = "sqlite:///var/lib/pinnwand/pinnwand.db"; - preferred_lexeres = []; - paste_size = 262144; - paste_help = '' -

Welcome to pinnwand, this site is a pastebin. It allows you to share code with others. If you write code in the text area below and press the paste button you will be given a link you can share with others so they can view your code as well.

People with the link can view your pasted code, only you can remove your paste and it expires automatically. Note that anyone could guess the URI to your paste so don't rely on it being private.

- ''; - footer = '' - View source code, the removal or expiry stories, or read the about page. - ''; - }; + default = {}; }; }; config = mkIf cfg.enable { + services.pinnwand.settings = { + database_uri = mkDefault "sqlite:////var/lib/pinnwand/pinnwand.db"; + paste_size = mkDefault 262144; + paste_help = mkDefault '' +

Welcome to pinnwand, this site is a pastebin. It allows you to share code with others. If you write code in the text area below and press the paste button you will be given a link you can share with others so they can view your code as well.

People with the link can view your pasted code, only you can remove your paste and it expires automatically. Note that anyone could guess the URI to your paste so don't rely on it being private.

+ ''; + footer = mkDefault '' + View source code, the removal or expiry stories, or read the about page. + ''; + }; + systemd.services.pinnwand = { description = "Pinnwannd HTTP Server"; after = [ "network.target" ]; From fc6fc69ae7069ae43091e5baa69f6031267d0c1e Mon Sep 17 00:00:00 2001 From: Evils Date: Mon, 3 May 2021 15:13:54 +0200 Subject: [PATCH 316/339] bucklespring: unstable-2021-01-21 -> 1.5.0 2021-01-21 was tagged --- pkgs/applications/audio/bucklespring/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/audio/bucklespring/default.nix b/pkgs/applications/audio/bucklespring/default.nix index 8b1432c5ae8..ee363c5c32e 100644 --- a/pkgs/applications/audio/bucklespring/default.nix +++ b/pkgs/applications/audio/bucklespring/default.nix @@ -19,12 +19,12 @@ let in stdenv.mkDerivation rec { pname = "bucklespring"; - version = "unstable-2021-01-21"; + version = "1.5.0"; src = fetchFromGitHub { owner = "zevv"; repo = pname; - rev = "d63100c4561dd7c57efe6440c12fa8d9e9604145"; + rev = version; sha256 = "114dib4npb7r1z2zd1fwsx71xbf9r6psxqd7n7590cwz1w3r51mz"; }; From 1119dbe76483d6ac50a1722ac2fd4f7378f27b09 Mon Sep 17 00:00:00 2001 From: Badi Abdul-Wahid Date: Mon, 3 May 2021 09:46:21 -0500 Subject: [PATCH 317/339] vivaldi: 3.7.2218.45-1 -> 3.8.2259.37-1 --- pkgs/applications/networking/browsers/vivaldi/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/networking/browsers/vivaldi/default.nix b/pkgs/applications/networking/browsers/vivaldi/default.nix index 96355789eb3..9911044c223 100644 --- a/pkgs/applications/networking/browsers/vivaldi/default.nix +++ b/pkgs/applications/networking/browsers/vivaldi/default.nix @@ -18,11 +18,11 @@ let vivaldiName = if isSnapshot then "vivaldi-snapshot" else "vivaldi"; in stdenv.mkDerivation rec { pname = "vivaldi"; - version = "3.7.2218.45-1"; + version = "3.8.2259.37-1"; src = fetchurl { url = "https://downloads.vivaldi.com/${branch}/vivaldi-${branch}_${version}_amd64.deb"; - sha256 = "11q3whw01nbwvzccgn55b4lkr7dzlql961406r6by8xqvf8zgmp4"; + sha256 = "1lpia3jm6l2yvbhrw5khws28n653w22bszzd44y6zv6zwbw7y127"; }; unpackPhase = '' From 2994db87fb2d3564a4e062083b8c2b7e39eb518e Mon Sep 17 00:00:00 2001 From: regnat Date: Fri, 30 Apr 2021 14:22:26 +0200 Subject: [PATCH 318/339] nixUnstable: pre20210326_dd77f71 -> pre20210503_6d2553a (amongst other things) several fixes to make the `ca-derivations` experimental feature usable on a daily basis --- pkgs/tools/package-management/nix/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/tools/package-management/nix/default.nix b/pkgs/tools/package-management/nix/default.nix index 7eda5ae6f35..ac61a64180d 100644 --- a/pkgs/tools/package-management/nix/default.nix +++ b/pkgs/tools/package-management/nix/default.nix @@ -215,13 +215,13 @@ in rec { nixUnstable = lib.lowPrio (callPackage common rec { pname = "nix"; version = "2.4${suffix}"; - suffix = "pre20210326_dd77f71"; + suffix = "pre20210503_6d2553a"; src = fetchFromGitHub { owner = "NixOS"; repo = "nix"; - rev = "dd77f71afe6733e9790dd001125c423cb648b7ce"; - sha256 = "rVHzrsCtdiWjyLuHnDplG2mx+7dw5VyzZ9ReXxuCvHY="; + rev = "6d2553ae1496288554e871c530836428f405fd67"; + sha256 = "sha256-YeSeyOKhBAXHlkzo4mwYr8QIjIP9AgdpJ7YdhqOO2CA="; }; inherit storeDir stateDir confDir boehmgc; From bdc95ab29eaaf4efaf2ae1170cb6458f00a41bab Mon Sep 17 00:00:00 2001 From: regnat Date: Fri, 30 Apr 2021 16:43:56 +0200 Subject: [PATCH 319/339] hydraUnstable: 2021-03-29 -> 2021-04-29 Required to work with the latest nixUnstable --- pkgs/development/tools/misc/hydra/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/tools/misc/hydra/default.nix b/pkgs/development/tools/misc/hydra/default.nix index 40a480a0909..7bed3b5d202 100644 --- a/pkgs/development/tools/misc/hydra/default.nix +++ b/pkgs/development/tools/misc/hydra/default.nix @@ -2,12 +2,12 @@ { hydra-unstable = callPackage ./common.nix { - version = "2021-03-29"; + version = "2021-04-29"; src = fetchFromGitHub { owner = "NixOS"; repo = "hydra"; - rev = "9bb04ed97af047968196bad1728f927f7a6d905f"; - sha256 = "sha256-gN/zNI2hGDMnYUjeGnU7SAuXP4KCmNqG+AYOVfINaQE="; + rev = "6047b1dd04d44acff9343b6b971ab609b73099d5"; + sha256 = "sha256-E7JOHhSd4gIzE6FvSZVMxZE9WagbBkrfZVoibkanaYE="; }; nix = nixFlakes; From fda2ff4edc2c0b897011eff4dffc5d777d07f4c8 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Thu, 29 Apr 2021 23:02:59 +0200 Subject: [PATCH 320/339] nixos/pinnwand: add reaper systemd unit/timer The reap function culls expired pastes outside of the process serving the pastes. Previously the database could accumulate a large number of pastes and while they were expired they would not be deleted unless accessed from the frontend. --- nixos/modules/services/misc/pinnwand.nix | 45 ++++++++++++++++++------ 1 file changed, 35 insertions(+), 10 deletions(-) diff --git a/nixos/modules/services/misc/pinnwand.nix b/nixos/modules/services/misc/pinnwand.nix index ca378847a20..cbc796c9a7c 100644 --- a/nixos/modules/services/misc/pinnwand.nix +++ b/nixos/modules/services/misc/pinnwand.nix @@ -40,39 +40,64 @@ in ''; }; - systemd.services.pinnwand = { - description = "Pinnwannd HTTP Server"; - after = [ "network.target" ]; - wantedBy = [ "multi-user.target" ]; + systemd.services = let + hardeningOptions = { + User = "pinnwand"; + DynamicUser = true; - unitConfig.Documentation = "https://pinnwand.readthedocs.io/en/latest/"; - serviceConfig = { - ExecStart = "${pkgs.pinnwand}/bin/pinnwand --configuration-path ${configFile} http --port ${toString(cfg.port)}"; StateDirectory = "pinnwand"; StateDirectoryMode = "0700"; AmbientCapabilities = []; CapabilityBoundingSet = ""; DevicePolicy = "closed"; - DynamicUser = true; LockPersonality = true; MemoryDenyWriteExecute = true; PrivateDevices = true; PrivateUsers = true; + ProcSubset = "pid"; ProtectClock = true; ProtectControlGroups = true; - ProtectKernelLogs = true; ProtectHome = true; ProtectHostname = true; + ProtectKernelLogs = true; ProtectKernelModules = true; ProtectKernelTunables = true; - RestrictAddressFamilies = [ "AF_UNIX" "AF_INET" "AF_INET6" ]; + ProtectProc = "invisible"; + RestrictAddressFamilies = [ + "AF_UNIX" + "AF_INET" + "AF_INET6" + ]; RestrictNamespaces = true; RestrictRealtime = true; SystemCallArchitectures = "native"; SystemCallFilter = "@system-service"; UMask = "0077"; }; + + command = "${pkgs.pinnwand}/bin/pinnwand --configuration-path ${configFile}"; + in { + pinnwand = { + description = "Pinnwannd HTTP Server"; + after = [ "network.target" ]; + wantedBy = [ "multi-user.target" ]; + + unitConfig.Documentation = "https://pinnwand.readthedocs.io/en/latest/"; + + serviceConfig = { + ExecStart = "${command} http --port ${toString(cfg.port)}"; + } // hardeningOptions; + }; + + pinnwand-reaper = { + description = "Pinnwand Reaper"; + startAt = "daily"; + + serviceConfig = { + ExecStart = "${command} -vvvv reap"; # verbosity increased to show number of deleted pastes + } // hardeningOptions; + }; }; }; } From f1c32c28096f565c0d977bce6cc3a0adb113d267 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Thu, 29 Apr 2021 23:12:20 +0200 Subject: [PATCH 321/339] nixos/tests/pinnwand: show systemd-analyze security Easy way to revisit the hardening setup of the systemd unit. --- nixos/tests/pinnwand.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/nixos/tests/pinnwand.nix b/nixos/tests/pinnwand.nix index 0c583e1104d..7f6075c3c74 100644 --- a/nixos/tests/pinnwand.nix +++ b/nixos/tests/pinnwand.nix @@ -82,5 +82,7 @@ in # remove paste and check that it's not available any more client.succeed(f"curl {removal_link}") client.fail(f"curl --fail {raw_url}") + + server.log(server.succeed("systemd-analyze security pinnwand")) ''; }) From 7b2bc43dba0f705987cc8c1f35620a4021838ac8 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Thu, 29 Apr 2021 23:53:37 +0200 Subject: [PATCH 322/339] nixos/tests/pinnwand: add negative-test for the reaper The reaper, at this point, should not delete a freshly created paste. --- nixos/tests/pinnwand.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/nixos/tests/pinnwand.nix b/nixos/tests/pinnwand.nix index 7f6075c3c74..dc8c2744a81 100644 --- a/nixos/tests/pinnwand.nix +++ b/nixos/tests/pinnwand.nix @@ -75,6 +75,12 @@ in if line.startswith("Removal link:"): removal_link = line.split(":", 1)[1] + + # start the reaper, it shouldn't do anything meaningful here + server.systemctl("start pinnwand-reaper.service") + server.wait_until_fails("systemctl is-active -q pinnwand-reaper.service") + server.log(server.execute("journalctl -u pinnwand-reaper -e --no-pager")[1]) + # check whether paste matches what we sent client.succeed(f"curl {raw_url} > /tmp/machine-id") client.succeed("diff /tmp/machine-id /etc/machine-id") From b208338c3669648f03e7dda5d4107e5e79993907 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Fri, 30 Apr 2021 00:03:43 +0200 Subject: [PATCH 323/339] nixos/tests/pinnwand: use wait_for_open_port instead of direct sockstat call --- nixos/tests/pinnwand.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nixos/tests/pinnwand.nix b/nixos/tests/pinnwand.nix index dc8c2744a81..0391c413311 100644 --- a/nixos/tests/pinnwand.nix +++ b/nixos/tests/pinnwand.nix @@ -61,7 +61,7 @@ in client.wait_until_succeeds("ping -c1 server") # make sure pinnwand is listening - server.wait_until_succeeds("ss -lnp | grep ${toString port}") + server.wait_for_open_port(${toString port}) # send the contents of /etc/machine-id response = client.succeed("steck paste /etc/machine-id") From ba286702f5575711dba190e9161f883297a3718d Mon Sep 17 00:00:00 2001 From: Badi Abdul-Wahid Date: Mon, 3 May 2021 09:50:19 -0500 Subject: [PATCH 324/339] vivaldi: add missing build/install phase hooks --- pkgs/applications/networking/browsers/vivaldi/default.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pkgs/applications/networking/browsers/vivaldi/default.nix b/pkgs/applications/networking/browsers/vivaldi/default.nix index 9911044c223..2ff0d2d5df0 100644 --- a/pkgs/applications/networking/browsers/vivaldi/default.nix +++ b/pkgs/applications/networking/browsers/vivaldi/default.nix @@ -47,6 +47,7 @@ in stdenv.mkDerivation rec { + ":$out/opt/${vivaldiName}/lib"; buildPhase = '' + runHook preBuild echo "Patching Vivaldi binaries" patchelf \ --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ @@ -56,12 +57,14 @@ in stdenv.mkDerivation rec { ln -s ${vivaldi-ffmpeg-codecs}/lib/libffmpeg.so opt/${vivaldiName}/libffmpeg.so.''${version%\.*\.*} '' + '' echo "Finished patching Vivaldi binaries" + runHook postBuild ''; dontPatchELF = true; dontStrip = true; installPhase = '' + runHook preInstall mkdir -p "$out" cp -r opt "$out" mkdir "$out/bin" @@ -84,6 +87,8 @@ in stdenv.mkDerivation rec { ${lib.optionalString enableWidevine "--suffix LD_LIBRARY_PATH : ${libPath}"} '' + lib.optionalString enableWidevine '' ln -sf ${vivaldi-widevine}/share/google/chrome/WidevineCdm $out/opt/${vivaldiName}/WidevineCdm + '' + '' + runHook postInstall ''; meta = with lib; { From 9cf8d0d22f8f0c12ffa9234146eb21d346571577 Mon Sep 17 00:00:00 2001 From: Sandro Date: Mon, 3 May 2021 16:59:17 +0200 Subject: [PATCH 325/339] ripgrep: cleanup --- pkgs/tools/text/ripgrep/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/tools/text/ripgrep/default.nix b/pkgs/tools/text/ripgrep/default.nix index 6417fb0f93b..61c24ae39e4 100644 --- a/pkgs/tools/text/ripgrep/default.nix +++ b/pkgs/tools/text/ripgrep/default.nix @@ -6,7 +6,7 @@ , pkg-config , Security , withPCRE2 ? true -, pcre2 ? null +, pcre2 }: rustPlatform.buildRustPackage rec { @@ -26,8 +26,8 @@ rustPlatform.buildRustPackage rec { nativeBuildInputs = [ asciidoctor installShellFiles ] ++ lib.optional withPCRE2 pkg-config; - buildInputs = (lib.optional withPCRE2 pcre2) - ++ (lib.optional stdenv.isDarwin Security); + buildInputs = lib.optional withPCRE2 pcre2 + ++ lib.optional stdenv.isDarwin Security; preFixup = '' installManPage $releaseDir/build/ripgrep-*/out/rg.1 From 6dde6bf3bf129ca6c84a9472c7c210fd86fd7465 Mon Sep 17 00:00:00 2001 From: Sumner Evans Date: Sun, 2 May 2021 21:52:57 -0600 Subject: [PATCH 326/339] airsonic: force use of jre8 --- nixos/modules/services/misc/airsonic.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nixos/modules/services/misc/airsonic.nix b/nixos/modules/services/misc/airsonic.nix index 5cc2ff7f4bd..a572f1f6d6f 100644 --- a/nixos/modules/services/misc/airsonic.nix +++ b/nixos/modules/services/misc/airsonic.nix @@ -118,7 +118,7 @@ in { ''; serviceConfig = { ExecStart = '' - ${pkgs.jre}/bin/java -Xmx${toString cfg.maxMemory}m \ + ${pkgs.jre8}/bin/java -Xmx${toString cfg.maxMemory}m \ -Dairsonic.home=${cfg.home} \ -Dserver.address=${cfg.listenAddress} \ -Dserver.port=${toString cfg.port} \ From a376d4944c395040295d80c91d79e2d90a574b76 Mon Sep 17 00:00:00 2001 From: Tethys Svensson Date: Mon, 3 May 2021 19:01:09 +0200 Subject: [PATCH 327/339] busybox: Add a fix for CVE-2021-28831 (#121578) --- pkgs/os-specific/linux/busybox/default.nix | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/pkgs/os-specific/linux/busybox/default.nix b/pkgs/os-specific/linux/busybox/default.nix index 6c034e1c2af..63435e09168 100644 --- a/pkgs/os-specific/linux/busybox/default.nix +++ b/pkgs/os-specific/linux/busybox/default.nix @@ -1,4 +1,4 @@ -{ stdenv, lib, buildPackages, fetchurl, fetchFromGitLab +{ stdenv, lib, buildPackages, fetchurl, fetchFromGitLab, fetchpatch , enableStatic ? stdenv.hostPlatform.isStatic , enableMinimal ? false # Allow forcing musl without switching stdenv itself, e.g. for our bootstrapping: @@ -49,6 +49,9 @@ in stdenv.mkDerivation rec { pname = "busybox"; + # TODO: When bumping to next version, remove the patch + # for CVE-2021-28831 (assuming the patch was included in + # the next upstream release) version = "1.32.1"; # Note to whoever is updating busybox: please verify that: @@ -64,6 +67,11 @@ stdenv.mkDerivation rec { patches = [ ./busybox-in-store.patch + (fetchpatch { + name = "CVE-2021-28831.patch"; + url = "https://git.busybox.net/busybox/patch/?id=f25d254dfd4243698c31a4f3153d4ac72aa9e9bd"; + sha256 = "0y79flfbk45krwn963nnbqc21a88bsz4k4asqwvcnfk2lkciadxm"; + }) # TODO: Removing when bumping the version ] ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) ./clang-cross.patch; postPatch = "patchShebangs ."; From bc23e662053c3d77bd16516be371affe6de86951 Mon Sep 17 00:00:00 2001 From: Alvar Penning Date: Sun, 2 May 2021 11:30:06 +0200 Subject: [PATCH 328/339] pythonPackages.flask-httpauth: 4.2.0 -> 4.3.0 --- .../python-modules/flask-httpauth/default.nix | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/pkgs/development/python-modules/flask-httpauth/default.nix b/pkgs/development/python-modules/flask-httpauth/default.nix index e5d55a2b9b5..ba8e0d0f11e 100644 --- a/pkgs/development/python-modules/flask-httpauth/default.nix +++ b/pkgs/development/python-modules/flask-httpauth/default.nix @@ -1,16 +1,22 @@ -{ lib, buildPythonPackage, fetchPypi, flask }: +{ lib, python, buildPythonPackage, fetchPypi, flask }: buildPythonPackage rec { pname = "Flask-HTTPAuth"; - version = "4.2.0"; + version = "4.3.0"; src = fetchPypi { inherit pname version; - sha256 = "8c7e49e53ce7dc14e66fe39b9334e4b7ceb8d0b99a6ba1c3562bb528ef9da84a"; + sha256 = "05j1mckwhgicrlj4j7ni2rhcf9w4i7phll06jbjjyvs3rj1l4q1f"; }; propagatedBuildInputs = [ flask ]; + pythonImportsCheck = [ "flask_httpauth" ]; + + checkPhase = '' + ${python.interpreter} -m unittest discover + ''; + meta = with lib; { description = "Extension that provides HTTP authentication for Flask routes"; homepage = "https://github.com/miguelgrinberg/Flask-HTTPAuth"; From ff43bbe53e370fa1072e952b89d0a32fb1dfda3a Mon Sep 17 00:00:00 2001 From: Michael Lingelbach Date: Sat, 16 Jan 2021 13:57:59 -0800 Subject: [PATCH 329/339] matrix-dendrite: add nixos module --- nixos/modules/module-list.nix | 1 + .../modules/services/misc/matrix-dendrite.nix | 181 ++++++++++++++++++ 2 files changed, 182 insertions(+) create mode 100644 nixos/modules/services/misc/matrix-dendrite.nix diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index dd6fa483281..11d55e29a82 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -509,6 +509,7 @@ ./services/misc/mame.nix ./services/misc/matrix-appservice-discord.nix ./services/misc/matrix-appservice-irc.nix + ./services/misc/matrix-dendrite.nix ./services/misc/matrix-synapse.nix ./services/misc/mautrix-telegram.nix ./services/misc/mbpfan.nix diff --git a/nixos/modules/services/misc/matrix-dendrite.nix b/nixos/modules/services/misc/matrix-dendrite.nix new file mode 100644 index 00000000000..b719df29c5a --- /dev/null +++ b/nixos/modules/services/misc/matrix-dendrite.nix @@ -0,0 +1,181 @@ +{ config, lib, pkgs, ... }: +let + cfg = config.services.matrix-dendrite; + settingsFormat = pkgs.formats.yaml { }; + configurationYaml = settingsFormat.generate "dendrite.yaml" cfg.settings; + workingDir = "/var/lib/matrix-dendrite"; +in +{ + options.services.matrix-dendrite = { + enable = lib.mkEnableOption "matrix.org dendrite"; + httpPort = lib.mkOption { + type = lib.types.nullOr lib.types.port; + default = 8008; + description = '' + The port to listen for HTTP requests on. + ''; + }; + httpsPort = lib.mkOption { + type = lib.types.nullOr lib.types.port; + default = null; + description = '' + The port to listen for HTTPS requests on. + ''; + }; + tlsCert = lib.mkOption { + type = lib.types.nullOr lib.types.path; + example = "/var/lib/matrix-dendrite/server.cert"; + default = null; + description = '' + The path to the TLS certificate. + + + nix-shell -p matrix-dendrite --command "generate-keys --tls-cert server.crt --tls-key server.key" + + ''; + }; + tlsKey = lib.mkOption { + type = lib.types.nullOr lib.types.path; + example = "/var/lib/matrix-dendrite/server.key"; + default = null; + description = '' + The path to the TLS key. + + + nix-shell -p matrix-dendrite --command "generate-keys --tls-cert server.crt --tls-key server.key" + + ''; + }; + environmentFile = lib.mkOption { + type = lib.types.nullOr lib.types.path; + example = "/var/lib/matrix-dendrite/registration_secret"; + default = null; + description = '' + Environment file as defined in + systemd.exec5 + . + Secrets may be passed to the service without adding them to the world-readable + Nix store, by specifying placeholder variables as the option value in Nix and + setting these variables accordingly in the environment file. Currently only used + for the registration secret to allow secure registration when + client_api.registration_disabled is true. + + + # snippet of dendrite-related config + services.matrix-dendrite.settings.client_api.registration_shared_secret = "$REGISTRATION_SHARED_SECRET"; + + + + # content of the environment file + REGISTRATION_SHARED_SECRET=verysecretpassword + + + Note that this file needs to be available on the host on which + dendrite is running. + ''; + }; + settings = lib.mkOption { + type = lib.types.submodule { + freeformType = settingsFormat.type; + options.global = { + server_name = lib.mkOption { + type = lib.types.str; + example = "example.com"; + description = '' + The domain name of the server, with optional explicit port. + This is used by remote servers to connect to this server. + This is also the last part of your UserID. + ''; + }; + private_key = lib.mkOption { + type = lib.types.path; + example = "${workingDir}/matrix_key.pem"; + description = '' + The path to the signing private key file, used to sign + requests and events. + + + nix-shell -p matrix-dendrite --command "generate-keys --private-key matrix_key.pem" + + ''; + }; + trusted_third_party_id_servers = lib.mkOption { + type = lib.types.listOf lib.types.str; + example = [ "matrix.org" ]; + default = [ "matrix.org" "vector.im" ]; + description = '' + Lists of domains that the server will trust as identity + servers to verify third party identifiers such as phone + numbers and email addresses + ''; + }; + }; + options.client_api = { + registration_disabled = lib.mkOption { + type = lib.types.bool; + default = true; + description = '' + Whether to disable user registration to the server + without the shared secret. + ''; + }; + }; + }; + default = { }; + description = '' + Configuration for dendrite, see: + + for available options with which to populate settings. + ''; + }; + }; + + config = lib.mkIf cfg.enable { + assertions = [{ + assertion = cfg.httpsPort != null -> (cfg.tlsCert != null && cfg.tlsKey != null); + message = '' + If Dendrite is configured to use https, tlsCert and tlsKey must be provided. + + nix-shell -p matrix-dendrite --command "generate-keys --tls-cert server.crt --tls-key server.key" + ''; + }]; + + systemd.services.matrix-dendrite = { + description = "Dendrite Matrix homeserver"; + after = [ + "network.target" + ]; + wantedBy = [ "multi-user.target" ]; + serviceConfig = { + Type = "simple"; + DynamicUser = true; + StateDirectory = "matrix-dendrite"; + WorkingDirectory = workingDir; + RuntimeDirectory = "matrix-dendrite"; + RuntimeDirectoryMode = "0700"; + EnvironmentFile = lib.mkIf (cfg.environmentFile != null) cfg.environmentFile; + ExecStartPre = + if (cfg.environmentFile != null) then '' + ${pkgs.envsubst}/bin/envsubst \ + -i ${configurationYaml} \ + -o /run/matrix-dendrite/dendrite.yaml + '' else '' + ${pkgs.coreutils}/bin/cp ${configurationYaml} /run/matrix-dendrite/dendrite.yaml + ''; + ExecStart = lib.strings.concatStringsSep " " ([ + "${pkgs.matrix-dendrite}/bin/dendrite-monolith-server" + "--config /run/matrix-dendrite/dendrite.yaml" + ] ++ lib.optionals (cfg.httpPort != null) [ + "--http-bind-address :${builtins.toString cfg.httpPort}" + ] ++ lib.optionals (cfg.httpsPort != null) [ + "--https-bind-address :${builtins.toString cfg.httpsPort}" + "--tls-cert ${cfg.tlsCert}" + "--tls-key ${cfg.tlsKey}" + ]); + ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID"; + Restart = "on-failure"; + }; + }; + }; + meta.maintainers = lib.teams.matrix.members; +} From f7906ec8b2978b78d6e541716b1f949fbc045849 Mon Sep 17 00:00:00 2001 From: alvar <8402811+oxzi@users.noreply.github.com> Date: Mon, 3 May 2021 19:15:33 +0200 Subject: [PATCH 330/339] pythonPackages.pytmx: 3.24.0 -> 3.25.0 (#121485) --- .../development/python-modules/pytmx/default.nix | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/pkgs/development/python-modules/pytmx/default.nix b/pkgs/development/python-modules/pytmx/default.nix index 17c18a96c73..6d88f4b636b 100644 --- a/pkgs/development/python-modules/pytmx/default.nix +++ b/pkgs/development/python-modules/pytmx/default.nix @@ -5,20 +5,26 @@ buildPythonPackage rec { pname = "pytmx"; - version = "3.24.0"; + version = "3.25"; disabled = isPy27; src = fetchFromGitHub { - # The release was not git tagged. owner = "bitcraft"; repo = "PyTMX"; - rev = "eb96efea30d57b731654b2a167d86b8b553b147d"; - sha256 = "1g1j4w75zw76p5f8m5v0hdigdlva2flf0ngyk8nvqcwzcl5vq5wc"; + rev = version; + sha256 = "0v07zhvzvl2qcqhjzgfzm8hgayq38gaqcxxkyhlq9n0hlk93nm97"; }; propagatedBuildInputs = [ pygame pyglet pysdl2 six ]; + pythonImportsCheck = [ + "pytmx.pytmx" + "pytmx.util_pygame" + "pytmx.util_pyglet" + "pytmx.util_pysdl2" + ]; + checkPhase = '' # Change into the test directory due to a relative resource path. cd tests/pytmx @@ -28,7 +34,7 @@ buildPythonPackage rec { meta = with lib; { homepage = "https://github.com/bitcraft/PyTMX"; description = "Python library to read Tiled Map Editor's TMX maps"; - license = licenses.lgpl3; + license = licenses.lgpl3Plus; maintainers = with maintainers; [ oxzi ]; }; } From 757a455ddeea43e24bbf3a8258fe5994b4fde10b Mon Sep 17 00:00:00 2001 From: eyjhb Date: Thu, 29 Apr 2021 17:47:43 +0200 Subject: [PATCH 331/339] nixos/bind: refactor zones from a list to attrset This commit uses coercedTo to make zones a attrset instead of list. Makes it easier to access/change zones in multiple places. --- nixos/modules/services/networking/bind.nix | 78 ++++++++++++---------- 1 file changed, 42 insertions(+), 36 deletions(-) diff --git a/nixos/modules/services/networking/bind.nix b/nixos/modules/services/networking/bind.nix index e507e8ce9ee..b73b2b62685 100644 --- a/nixos/modules/services/networking/bind.nix +++ b/nixos/modules/services/networking/bind.nix @@ -8,32 +8,37 @@ let bindUser = "named"; - bindZoneOptions = { - name = mkOption { - type = types.str; - description = "Name of the zone."; - }; - master = mkOption { - description = "Master=false means slave server"; - type = types.bool; - }; - file = mkOption { - type = types.either types.str types.path; - description = "Zone file resource records contain columns of data, separated by whitespace, that define the record."; - }; - masters = mkOption { - type = types.listOf types.str; - description = "List of servers for inclusion in stub and secondary zones."; - }; - slaves = mkOption { - type = types.listOf types.str; - description = "Addresses who may request zone transfers."; - default = []; - }; - extraConfig = mkOption { - type = types.str; - description = "Extra zone config to be appended at the end of the zone section."; - default = ""; + bindZoneCoerce = list: builtins.listToAttrs (lib.forEach list (zone: { name = zone.name; value = zone; })); + + bindZoneOptions = { name, config, ... }: { + options = { + name = mkOption { + type = types.str; + default = name; + description = "Name of the zone."; + }; + master = mkOption { + description = "Master=false means slave server"; + type = types.bool; + }; + file = mkOption { + type = types.either types.str types.path; + description = "Zone file resource records contain columns of data, separated by whitespace, that define the record."; + }; + masters = mkOption { + type = types.listOf types.str; + description = "List of servers for inclusion in stub and secondary zones."; + }; + slaves = mkOption { + type = types.listOf types.str; + description = "Addresses who may request zone transfers."; + default = []; + }; + extraConfig = mkOption { + type = types.str; + description = "Extra zone config to be appended at the end of the zone section."; + default = ""; + }; }; }; @@ -84,7 +89,7 @@ let ${extraConfig} }; '') - cfg.zones } + (attrValues cfg.zones) } ''; in @@ -153,18 +158,19 @@ in zones = mkOption { default = []; - type = types.listOf (types.submodule [ { options = bindZoneOptions; } ]); + type = with types; coercedTo (listOf attrs) bindZoneCoerce (attrsOf (types.submodule bindZoneOptions)); description = " List of zones we claim authority over. "; - example = [{ - name = "example.com"; - master = false; - file = "/var/dns/example.com"; - masters = ["192.168.0.1"]; - slaves = []; - extraConfig = ""; - }]; + example = { + "example.com" = { + master = false; + file = "/var/dns/example.com"; + masters = ["192.168.0.1"]; + slaves = []; + extraConfig = ""; + }; + }; }; extraConfig = mkOption { From 62f241d4457381b1a0cdd0903501ad5f90e888c1 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Giraudeau Date: Mon, 15 Mar 2021 17:54:11 +0100 Subject: [PATCH 332/339] nixos/oauth2_proxy_nginx: add nginx config only if oauth2_proxy is enabled. --- nixos/modules/services/security/oauth2_proxy_nginx.nix | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/nixos/modules/services/security/oauth2_proxy_nginx.nix b/nixos/modules/services/security/oauth2_proxy_nginx.nix index 553638ad496..d82ddb894ea 100644 --- a/nixos/modules/services/security/oauth2_proxy_nginx.nix +++ b/nixos/modules/services/security/oauth2_proxy_nginx.nix @@ -23,7 +23,8 @@ in config.services.oauth2_proxy = mkIf (cfg.virtualHosts != [] && (hasPrefix "127.0.0.1:" cfg.proxy)) { enable = true; }; - config.services.nginx = mkMerge ((optional (cfg.virtualHosts != []) { + config.services.nginx = mkIf config.services.oauth2_proxy.enable (mkMerge + ((optional (cfg.virtualHosts != []) { recommendedProxySettings = true; # needed because duplicate headers }) ++ (map (vhost: { virtualHosts.${vhost} = { @@ -60,5 +61,5 @@ in ''; }; - }) cfg.virtualHosts)); + }) cfg.virtualHosts))); } From 62a78fc36134d6ffcf279d69f213b30c93885c9e Mon Sep 17 00:00:00 2001 From: Kira Bruneau Date: Mon, 3 May 2021 14:24:24 -0400 Subject: [PATCH 333/339] modules/programs/bash: move prompt plugins into separate modules --- nixos/modules/module-list.nix | 2 + .../modules/programs/bash/bash-completion.nix | 37 +++++++++++++++ nixos/modules/programs/bash/bash.nix | 45 +++---------------- nixos/modules/programs/bash/ls-colors.nix | 20 +++++++++ 4 files changed, 65 insertions(+), 39 deletions(-) create mode 100644 nixos/modules/programs/bash/bash-completion.nix create mode 100644 nixos/modules/programs/bash/ls-colors.nix diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index 3720b24f395..4aedc434ecf 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -114,6 +114,8 @@ ./programs/autojump.nix ./programs/bandwhich.nix ./programs/bash/bash.nix + ./programs/bash/bash-completion.nix + ./programs/bash/ls-colors.nix ./programs/bash-my-aws.nix ./programs/bcc.nix ./programs/browserpass.nix diff --git a/nixos/modules/programs/bash/bash-completion.nix b/nixos/modules/programs/bash/bash-completion.nix new file mode 100644 index 00000000000..f07b1b636ef --- /dev/null +++ b/nixos/modules/programs/bash/bash-completion.nix @@ -0,0 +1,37 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + enable = config.programs.bash.enableCompletion; +in +{ + options = { + programs.bash.enableCompletion = mkEnableOption "Bash completion for all interactive bash shells" // { + default = true; + }; + }; + + config = mkIf enable { + programs.bash.promptPluginInit = '' + # Check whether we're running a version of Bash that has support for + # programmable completion. If we do, enable all modules installed in + # the system and user profile in obsolete /etc/bash_completion.d/ + # directories. Bash loads completions in all + # $XDG_DATA_DIRS/bash-completion/completions/ + # on demand, so they do not need to be sourced here. + if shopt -q progcomp &>/dev/null; then + . "${pkgs.bash-completion}/etc/profile.d/bash_completion.sh" + nullglobStatus=$(shopt -p nullglob) + shopt -s nullglob + for p in $NIX_PROFILES; do + for m in "$p/etc/bash_completion.d/"*; do + . $m + done + done + eval "$nullglobStatus" + unset nullglobStatus p m + fi + ''; + }; +} diff --git a/nixos/modules/programs/bash/bash.nix b/nixos/modules/programs/bash/bash.nix index 1b3254b54a5..908ab34b08d 100644 --- a/nixos/modules/programs/bash/bash.nix +++ b/nixos/modules/programs/bash/bash.nix @@ -11,31 +11,6 @@ let cfg = config.programs.bash; - bashCompletion = optionalString cfg.enableCompletion '' - # Check whether we're running a version of Bash that has support for - # programmable completion. If we do, enable all modules installed in - # the system and user profile in obsolete /etc/bash_completion.d/ - # directories. Bash loads completions in all - # $XDG_DATA_DIRS/bash-completion/completions/ - # on demand, so they do not need to be sourced here. - if shopt -q progcomp &>/dev/null; then - . "${pkgs.bash-completion}/etc/profile.d/bash_completion.sh" - nullglobStatus=$(shopt -p nullglob) - shopt -s nullglob - for p in $NIX_PROFILES; do - for m in "$p/etc/bash_completion.d/"*; do - . $m - done - done - eval "$nullglobStatus" - unset nullglobStatus p m - fi - ''; - - lsColors = optionalString cfg.enableLsColors '' - eval "$(${pkgs.coreutils}/bin/dircolors -b)" - ''; - bashAliases = concatStringsSep "\n" ( mapAttrsFlatten (k: v: "alias ${k}=${escapeShellArg v}") (filterAttrs (k: v: v != null) cfg.shellAliases) @@ -123,20 +98,13 @@ in type = types.lines; }; - enableCompletion = mkOption { - default = true; + promptPluginInit = mkOption { + default = ""; description = '' - Enable Bash completion for all interactive bash shells. + Shell script code used to initialise bash prompt plugins. ''; - type = types.bool; - }; - - enableLsColors = mkOption { - default = true; - description = '' - Enable extra colors in directory listings. - ''; - type = types.bool; + type = types.lines; + internal = true; }; }; @@ -167,8 +135,7 @@ in set +h ${cfg.promptInit} - ${bashCompletion} - ${lsColors} + ${cfg.promptPluginInit} ${bashAliases} ${cfge.interactiveShellInit} diff --git a/nixos/modules/programs/bash/ls-colors.nix b/nixos/modules/programs/bash/ls-colors.nix new file mode 100644 index 00000000000..254ee14c477 --- /dev/null +++ b/nixos/modules/programs/bash/ls-colors.nix @@ -0,0 +1,20 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + enable = config.programs.bash.enableLsColors; +in +{ + options = { + programs.bash.enableLsColors = mkEnableOption "extra colors in directory listings" // { + default = true; + }; + }; + + config = mkIf enable { + programs.bash.promptPluginInit = '' + eval "$(${pkgs.coreutils}/bin/dircolors -b)" + ''; + }; +} From a24d0ab51be678b2ce8c19498c03d48da057ff46 Mon Sep 17 00:00:00 2001 From: Kira Bruneau Date: Mon, 3 May 2021 14:25:02 -0400 Subject: [PATCH 334/339] modules/programs/bash: add support for undistract-me --- nixos/modules/module-list.nix | 1 + nixos/modules/programs/bash/undistract-me.nix | 36 +++++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 nixos/modules/programs/bash/undistract-me.nix diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index 4aedc434ecf..ecfbf6af4a8 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -116,6 +116,7 @@ ./programs/bash/bash.nix ./programs/bash/bash-completion.nix ./programs/bash/ls-colors.nix + ./programs/bash/undistract-me.nix ./programs/bash-my-aws.nix ./programs/bcc.nix ./programs/browserpass.nix diff --git a/nixos/modules/programs/bash/undistract-me.nix b/nixos/modules/programs/bash/undistract-me.nix new file mode 100644 index 00000000000..378144f598b --- /dev/null +++ b/nixos/modules/programs/bash/undistract-me.nix @@ -0,0 +1,36 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.programs.bash.undistractMe; +in +{ + options = { + programs.bash.undistractMe = { + enable = mkEnableOption "notifications when long-running terminal commands complete"; + + playSound = mkEnableOption "notification sounds when long-running terminal commands complete"; + + timeout = mkOption { + default = 10; + description = '' + Number of seconds it would take for a command to be considered long-running. + ''; + type = types.int; + }; + }; + }; + + config = mkIf cfg.enable { + programs.bash.promptPluginInit = '' + export LONG_RUNNING_COMMAND_TIMEOUT=${toString cfg.timeout} + export UDM_PLAY_SOUND=${if cfg.playSound then "1" else "0"} + . "${pkgs.undistract-me}/etc/profile.d/undistract-me.sh" + ''; + }; + + meta = { + maintainers = with maintainers; [ metadark ]; + }; +} From 13b608d2916e2d22177c5318f756f588e8f6020c Mon Sep 17 00:00:00 2001 From: Patrick Hilhorst Date: Mon, 3 May 2021 20:29:22 +0200 Subject: [PATCH 335/339] mako: 1.4.1 -> 1.5 --- pkgs/applications/misc/mako/default.nix | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/misc/mako/default.nix b/pkgs/applications/misc/mako/default.nix index a845a767b2a..f28292cb2f1 100644 --- a/pkgs/applications/misc/mako/default.nix +++ b/pkgs/applications/misc/mako/default.nix @@ -5,19 +5,22 @@ stdenv.mkDerivation rec { pname = "mako"; - version = "1.4.1"; + version = "1.5"; src = fetchFromGitHub { owner = "emersion"; repo = pname; rev = "v${version}"; - sha256 = "0hwvibpnrximb628w9dsfjpi30b5jy7nfkm4d94z5vhp78p43vxh"; + sha256 = "0f92krcgybl4113g2gawf7lcbh1fss7bq4cx81h1zyn7yvxlwx2b"; }; nativeBuildInputs = [ meson ninja pkg-config scdoc wayland-protocols wrapGAppsHook ]; buildInputs = [ systemd pango cairo gdk-pixbuf wayland ]; - mesonFlags = [ "-Dzsh-completions=true" ]; + mesonFlags = [ + "-Dzsh-completions=true" + "-Dsd-bus-provider=libsystemd" + ]; meta = with lib; { description = "A lightweight Wayland notification daemon"; From 2ab88a31fe1012159b46a82a7e56596c20028f2c Mon Sep 17 00:00:00 2001 From: Minijackson Date: Sat, 24 Apr 2021 19:04:34 +0200 Subject: [PATCH 336/339] nixos/tests/jellyfin: enhanced test --- nixos/tests/jellyfin.nix | 166 ++++++++++++++++++++++++++++++++++++--- 1 file changed, 153 insertions(+), 13 deletions(-) diff --git a/nixos/tests/jellyfin.nix b/nixos/tests/jellyfin.nix index 65360624d48..f8c2429a7b8 100644 --- a/nixos/tests/jellyfin.nix +++ b/nixos/tests/jellyfin.nix @@ -1,16 +1,156 @@ -import ./make-test-python.nix ({ lib, ...}: +import ./make-test-python.nix ({ lib, pkgs, ... }: -{ - name = "jellyfin"; - meta.maintainers = with lib.maintainers; [ minijackson ]; + { + name = "jellyfin"; + meta.maintainers = with lib.maintainers; [ minijackson ]; - machine = - { ... }: - { services.jellyfin.enable = true; }; + machine = + { ... }: + { + services.jellyfin.enable = true; + environment.systemPackages = with pkgs; [ ffmpeg ]; + }; - testScript = '' - machine.wait_for_unit("jellyfin.service") - machine.wait_for_open_port(8096) - machine.succeed("curl --fail http://localhost:8096/") - ''; -}) + # Documentation of the Jellyfin API: https://api.jellyfin.org/ + # Beware, this link can be resource intensive + testScript = + let + payloads = { + auth = pkgs.writeText "auth.json" (builtins.toJSON { + Username = "jellyfin"; + }); + empty = pkgs.writeText "empty.json" (builtins.toJSON { }); + }; + in + '' + import json + import time + from urllib.parse import urlencode + + machine.wait_for_unit("jellyfin.service") + machine.wait_for_open_port(8096) + machine.succeed("curl --fail http://localhost:8096/") + + machine.wait_until_succeeds("curl --fail http://localhost:8096/health | grep Healthy") + + auth_header = 'MediaBrowser Client="NixOS Integration Tests", DeviceId="1337", Device="Apple II", Version="20.09"' + + + def api_get(path): + return f"curl --fail 'http://localhost:8096{path}' -H 'X-Emby-Authorization:{auth_header}'" + + + def api_post(path, json_file=None): + if json_file: + return f"curl --fail -X post 'http://localhost:8096{path}' -d '@{json_file}' -H Content-Type:application/json -H 'X-Emby-Authorization:{auth_header}'" + else: + return f"curl --fail -X post 'http://localhost:8096{path}' -H 'X-Emby-Authorization:{auth_header}'" + + + with machine.nested("Wizard completes"): + machine.wait_until_succeeds(api_get("/Startup/Configuration")) + machine.succeed(api_get("/Startup/FirstUser")) + machine.succeed(api_post("/Startup/Complete")) + + with machine.nested("Can login"): + auth_result = machine.succeed( + api_post( + "/Users/AuthenticateByName", + "${payloads.auth}", + ) + ) + auth_result = json.loads(auth_result) + auth_token = auth_result["AccessToken"] + auth_header += f", Token={auth_token}" + + sessions_result = machine.succeed(api_get("/Sessions")) + sessions_result = json.loads(sessions_result) + + this_session = [ + session for session in sessions_result if session["DeviceId"] == "1337" + ] + if len(this_session) != 1: + raise Exception("Session not created") + + me = machine.succeed(api_get("/Users/Me")) + me = json.loads(me)["Id"] + + with machine.nested("Can add library"): + tempdir = machine.succeed("mktemp -d -p /var/lib/jellyfin").strip() + machine.succeed(f"chmod 755 '{tempdir}'") + + # Generate a dummy video that we can test later + videofile = f"{tempdir}/Big Buck Bunny (2008) [1080p].mkv" + machine.succeed(f"ffmpeg -f lavfi -i testsrc2=duration=5 '{videofile}'") + + add_folder_query = urlencode( + { + "name": "My Library", + "collectionType": "Movies", + "paths": tempdir, + "refreshLibrary": "true", + } + ) + + machine.succeed( + api_post( + f"/Library/VirtualFolders?{add_folder_query}", + "${payloads.empty}", + ) + ) + + + def is_refreshed(_): + folders = machine.succeed(api_get(f"/Library/VirtualFolders")) + folders = json.loads(folders) + print(folders) + return all(folder["RefreshStatus"] == "Idle" for folder in folders) + + + retry(is_refreshed) + + with machine.nested("Can identify videos"): + items = [] + + # For some reason, having the folder refreshed doesn't mean the + # movie was scanned + def has_movie(_): + global items + + items = machine.succeed( + api_get(f"/Users/{me}/Items?IncludeItemTypes=Movie&Recursive=true") + ) + items = json.loads(items)["Items"] + + return len(items) == 1 + + retry(has_movie) + + video = items[0]["Id"] + + item_info = machine.succeed(api_get(f"/Users/{me}/Items/{video}")) + item_info = json.loads(item_info) + + if item_info["Name"] != "Big Buck Bunny": + raise Exception("Jellyfin failed to properly identify file") + + with machine.nested("Can read videos"): + media_source_id = item_info["MediaSources"][0]["Id"] + + machine.succeed( + "ffmpeg" + + f" -headers 'X-Emby-Authorization:{auth_header}'" + + f" -i http://localhost:8096/Videos/{video}/master.m3u8?mediaSourceId={media_source_id}" + + f" /tmp/test.mkv" + ) + + duration = machine.succeed( + "ffprobe /tmp/test.mkv" + + " -show_entries format=duration" + + " -of compact=print_section=0:nokey=1" + ) + + if duration.strip() != "5.000000": + raise Exception("Downloaded video has wrong duration") + ''; + }) From c1150bd06565b984c54ba199d16b2719e0018e1f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Samuel=20Gr=C3=A4fenstein?= Date: Mon, 3 May 2021 21:15:27 +0200 Subject: [PATCH 337/339] ungoogled-chromium: add meta.mainProgram (#121610) --- pkgs/applications/networking/browsers/chromium/browser.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/applications/networking/browsers/chromium/browser.nix b/pkgs/applications/networking/browsers/chromium/browser.nix index c4a5508b753..dcac873b849 100644 --- a/pkgs/applications/networking/browsers/chromium/browser.nix +++ b/pkgs/applications/networking/browsers/chromium/browser.nix @@ -85,6 +85,7 @@ mkChromiumDerivation (base: rec { else [ primeos thefloweringash bendlas ]; license = if enableWideVine then licenses.unfree else licenses.bsd3; platforms = platforms.linux; + mainProgram = "chromium"; hydraPlatforms = if (channel == "stable" || channel == "ungoogled-chromium") then ["aarch64-linux" "x86_64-linux"] else []; From 52f6733203397c79b866b0b4f7ee33b952414e2e Mon Sep 17 00:00:00 2001 From: Marc 'risson' Schmitt Date: Sat, 8 Feb 2020 20:17:23 +0100 Subject: [PATCH 338/339] nixos/unbound: deprecate extraConfig in favor of settings Follow RFC 42 by having a settings option that is then converted into an unbound configuration file instead of having an extraConfig option. Existing options have been renamed or kept if possible. An enableRemoteAccess has been added. It sets remote-control setting to true in unbound.conf which in turn enables the new wrapping of unbound-control to access the server locally. Also includes options 'remoteAccessInterfaces' and 'remoteAccessPort' for remote access. Signed-off-by: Marc 'risson' Schmitt --- nixos/doc/manual/release-notes/rl-2105.xml | 17 ++ nixos/modules/services/networking/unbound.nix | 249 ++++++++++++------ nixos/tests/unbound.nix | 68 +++-- 3 files changed, 224 insertions(+), 110 deletions(-) diff --git a/nixos/doc/manual/release-notes/rl-2105.xml b/nixos/doc/manual/release-notes/rl-2105.xml index 2b0a265cd98..e3e6dc48433 100644 --- a/nixos/doc/manual/release-notes/rl-2105.xml +++ b/nixos/doc/manual/release-notes/rl-2105.xml @@ -829,6 +829,23 @@ environment.systemPackages = [ default in the CLI tooling which in turn enables us to use unbound-control without passing a custom configuration location. + + + The module has also been reworked to be RFC + 0042 compliant. As such, + has been removed and replaced + by . + has been renamed to . + + + + and + have also been changed to + use the new settings interface. You can follow the instructions when + executing nixos-rebuild to upgrade your configuration to + use the new interface. +
diff --git a/nixos/modules/services/networking/unbound.nix b/nixos/modules/services/networking/unbound.nix index 622c3d8ea43..a8747e244a9 100644 --- a/nixos/modules/services/networking/unbound.nix +++ b/nixos/modules/services/networking/unbound.nix @@ -4,51 +4,28 @@ with lib; let cfg = config.services.unbound; - stateDir = "/var/lib/unbound"; + yesOrNo = v: if v then "yes" else "no"; - access = concatMapStringsSep "\n " (x: "access-control: ${x} allow") cfg.allowedAccess; + toOption = indent: n: v: "${indent}${toString n}: ${v}"; - interfaces = concatMapStringsSep "\n " (x: "interface: ${x}") cfg.interfaces; + toConf = indent: n: v: + if builtins.isFloat v then (toOption indent n (builtins.toJSON v)) + else if isInt v then (toOption indent n (toString v)) + else if isBool v then (toOption indent n (yesOrNo v)) + else if isString v then (toOption indent n v) + else if isList v then (concatMapStringsSep "\n" (toConf indent n) v) + else if isAttrs v then (concatStringsSep "\n" ( + ["${indent}${n}:"] ++ ( + mapAttrsToList (toConf "${indent} ") v + ) + )) + else throw (traceSeq v "services.unbound.settings: unexpected type"); - isLocalAddress = x: substring 0 3 x == "::1" || substring 0 9 x == "127.0.0.1"; + confFile = pkgs.writeText "unbound.conf" (concatStringsSep "\n" ((mapAttrsToList (toConf "") cfg.settings) ++ [""])); - forward = - optionalString (any isLocalAddress cfg.forwardAddresses) '' - do-not-query-localhost: no - '' - + optionalString (cfg.forwardAddresses != []) '' - forward-zone: - name: . - '' - + concatMapStringsSep "\n" (x: " forward-addr: ${x}") cfg.forwardAddresses; + rootTrustAnchorFile = "${cfg.stateDir}/root.key"; - rootTrustAnchorFile = "${stateDir}/root.key"; - - trustAnchor = optionalString cfg.enableRootTrustAnchor - "auto-trust-anchor-file: ${rootTrustAnchorFile}"; - - confFile = pkgs.writeText "unbound.conf" '' - server: - ip-freebind: yes - directory: "${stateDir}" - username: unbound - chroot: "" - pidfile: "" - # when running under systemd there is no need to daemonize - do-daemonize: no - ${interfaces} - ${access} - ${trustAnchor} - ${lib.optionalString (cfg.localControlSocketPath != null) '' - remote-control: - control-enable: yes - control-interface: ${cfg.localControlSocketPath} - ''} - ${cfg.extraConfig} - ${forward} - ''; -in -{ +in { ###### interface @@ -64,27 +41,32 @@ in description = "The unbound package to use"; }; - allowedAccess = mkOption { - default = [ "127.0.0.0/24" ]; - type = types.listOf types.str; - description = "What networks are allowed to use unbound as a resolver."; + user = mkOption { + type = types.str; + default = "unbound"; + description = "User account under which unbound runs."; }; - interfaces = mkOption { - default = [ "127.0.0.1" ] ++ optional config.networking.enableIPv6 "::1"; - type = types.listOf types.str; - description = '' - What addresses the server should listen on. This supports the interface syntax documented in - unbound.conf8. + group = mkOption { + type = types.str; + default = "unbound"; + description = "Group under which unbound runs."; + }; + + stateDir = mkOption { + default = "/var/lib/unbound"; + description = "Directory holding all state for unbound to run."; + }; + + resolveLocalQueries = mkOption { + type = types.bool; + default = true; + description = '' + Whether unbound should resolve local queries (i.e. add 127.0.0.1 to + /etc/resolv.conf). ''; }; - forwardAddresses = mkOption { - default = []; - type = types.listOf types.str; - description = "What servers to forward queries to."; - }; - enableRootTrustAnchor = mkOption { default = true; type = types.bool; @@ -106,23 +88,66 @@ in and group will be nogroup. Users that should be permitted to access the socket must be in the - unbound group. + config.services.unbound.group group. If this option is null remote control will not be - configured at all. Unbounds default values apply. + enabled. Unbounds default values apply. ''; }; - extraConfig = mkOption { - default = ""; - type = types.lines; + settings = mkOption { + default = {}; + type = with types; submodule { + + freeformType = let + validSettingsPrimitiveTypes = oneOf [ int str bool float ]; + validSettingsTypes = oneOf [ validSettingsPrimitiveTypes (listOf validSettingsPrimitiveTypes) ]; + settingsType = (attrsOf validSettingsTypes); + in attrsOf (oneOf [ string settingsType (listOf settingsType) ]) + // { description = '' + unbound.conf configuration type. The format consist of an attribute + set of settings. Each settings can be either one value, a list of + values or an attribute set. The allowed values are integers, + strings, booleans or floats. + ''; + }; + + options = { + remote-control.control-enable = mkOption { + type = bool; + default = false; + internal = true; + }; + }; + }; + example = literalExample '' + { + server = { + interface = [ "127.0.0.1" ]; + }; + forward-zone = [ + { + name = "."; + forward-addr = "1.1.1.1@853#cloudflare-dns.com"; + } + { + name = "example.org."; + forward-addr = [ + "1.1.1.1@853#cloudflare-dns.com" + "1.0.0.1@853#cloudflare-dns.com" + ]; + } + ]; + remote-control.control-enable = true; + }; + ''; description = '' - Extra unbound config. See - unbound.conf8 - . + Declarative Unbound configuration + See the unbound.conf + 5 manpage for a list of + available options. ''; }; - }; }; @@ -130,23 +155,56 @@ in config = mkIf cfg.enable { - environment.systemPackages = [ cfg.package ]; - - users.users.unbound = { - description = "unbound daemon user"; - isSystemUser = true; - group = lib.mkIf (cfg.localControlSocketPath != null) (lib.mkDefault "unbound"); + services.unbound.settings = { + server = { + directory = mkDefault cfg.stateDir; + username = cfg.user; + chroot = ''""''; + pidfile = ''""''; + # when running under systemd there is no need to daemonize + do-daemonize = false; + interface = mkDefault ([ "127.0.0.1" ] ++ (optional config.networking.enableIPv6 "::1")); + access-control = mkDefault ([ "127.0.0.0/8 allow" ] ++ (optional config.networking.enableIPv6 "::1/128 allow")); + auto-trust-anchor-file = mkIf cfg.enableRootTrustAnchor rootTrustAnchorFile; + tls-cert-bundle = mkDefault "/etc/ssl/certs/ca-certificates.crt"; + # prevent race conditions on system startup when interfaces are not yet + # configured + ip-freebind = mkDefault true; + }; + remote-control = { + control-enable = mkDefault false; + control-interface = mkDefault ([ "127.0.0.1" ] ++ (optional config.networking.enableIPv6 "::1")); + server-key-file = mkDefault "${cfg.stateDir}/unbound_server.key"; + server-cert-file = mkDefault "${cfg.stateDir}/unbound_server.pem"; + control-key-file = mkDefault "${cfg.stateDir}/unbound_control.key"; + control-cert-file = mkDefault "${cfg.stateDir}/unbound_control.pem"; + } // optionalAttrs (cfg.localControlSocketPath != null) { + control-enable = true; + control-interface = cfg.localControlSocketPath; + }; }; - # We need a group so that we can give users access to the configured - # control socket. Unbound allows access to the socket only to the unbound - # user and the primary group. - users.groups = lib.mkIf (cfg.localControlSocketPath != null) { + environment.systemPackages = [ cfg.package ]; + + users.users = mkIf (cfg.user == "unbound") { + unbound = { + description = "unbound daemon user"; + isSystemUser = true; + group = cfg.group; + }; + }; + + users.groups = mkIf (cfg.group == "unbound") { unbound = {}; }; - networking.resolvconf.useLocalResolver = mkDefault true; + networking = mkIf cfg.resolveLocalQueries { + resolvconf = { + useLocalResolver = mkDefault true; + }; + networkmanager.dns = "unbound"; + }; environment.etc."unbound/unbound.conf".source = confFile; @@ -156,8 +214,15 @@ in before = [ "nss-lookup.target" ]; wantedBy = [ "multi-user.target" "nss-lookup.target" ]; - preStart = lib.mkIf cfg.enableRootTrustAnchor '' - ${cfg.package}/bin/unbound-anchor -a ${rootTrustAnchorFile} || echo "Root anchor updated!" + path = mkIf cfg.settings.remote-control.control-enable [ pkgs.openssl ]; + + preStart = '' + ${optionalString cfg.enableRootTrustAnchor '' + ${cfg.package}/bin/unbound-anchor -a ${rootTrustAnchorFile} || echo "Root anchor updated!" + ''} + ${optionalString cfg.settings.remote-control.control-enable '' + ${cfg.package}/bin/unbound-control-setup -d ${cfg.stateDir} + ''} ''; restartTriggers = [ @@ -181,8 +246,8 @@ in "CAP_SYS_RESOURCE" ]; - User = "unbound"; - Group = lib.mkIf (cfg.localControlSocketPath != null) (lib.mkDefault "unbound"); + User = cfg.user; + Group = cfg.group; MemoryDenyWriteExecute = true; NoNewPrivileges = true; @@ -211,9 +276,29 @@ in RestrictNamespaces = true; LockPersonality = true; RestrictSUIDSGID = true; + + Restart = "on-failure"; + RestartSec = "5s"; }; }; - # If networkmanager is enabled, ask it to interface with unbound. - networking.networkmanager.dns = "unbound"; }; + + imports = [ + (mkRenamedOptionModule [ "services" "unbound" "interfaces" ] [ "services" "unbound" "settings" "server" "interface" ]) + (mkChangedOptionModule [ "services" "unbound" "allowedAccess" ] [ "services" "unbound" "settings" "server" "access-control" ] ( + config: map (value: "${value} allow") (getAttrFromPath [ "services" "unbound" "allowedAccess" ] config) + )) + (mkRemovedOptionModule [ "services" "unbound" "forwardAddresses" ] '' + Add a new setting: + services.unbound.settings.forward-zone = [{ + name = "."; + forward-addr = [ # Your current services.unbound.forwardAddresses ]; + }]; + If any of those addresses are local addresses (127.0.0.1 or ::1), you must + also set services.unbound.settings.server.do-not-query-localhost to false. + '') + (mkRemovedOptionModule [ "services" "unbound" "extraConfig" ] '' + You can use services.unbound.settings to add any configuration you want. + '') + ]; } diff --git a/nixos/tests/unbound.nix b/nixos/tests/unbound.nix index ca9718ac633..e24c3ef6c99 100644 --- a/nixos/tests/unbound.nix +++ b/nixos/tests/unbound.nix @@ -61,13 +61,16 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: services.unbound = { enable = true; - interfaces = [ "192.168.0.1" "fd21::1" "::1" "127.0.0.1" ]; - allowedAccess = [ "192.168.0.0/24" "fd21::/64" "::1" "127.0.0.0/8" ]; - extraConfig = '' - server: - local-data: "example.local. IN A 1.2.3.4" - local-data: "example.local. IN AAAA abcd::eeff" - ''; + settings = { + server = { + interface = [ "192.168.0.1" "fd21::1" "::1" "127.0.0.1" ]; + access-control = [ "192.168.0.0/24 allow" "fd21::/64 allow" "::1 allow" "127.0.0.0/8 allow" ]; + local-data = [ + ''"example.local. IN A 1.2.3.4"'' + ''"example.local. IN AAAA abcd::eeff"'' + ]; + }; + }; }; }; @@ -90,19 +93,25 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: services.unbound = { enable = true; - allowedAccess = [ "192.168.0.0/24" "fd21::/64" "::1" "127.0.0.0/8" ]; - interfaces = [ "::1" "127.0.0.1" "192.168.0.2" "fd21::2" - "192.168.0.2@853" "fd21::2@853" "::1@853" "127.0.0.1@853" - "192.168.0.2@443" "fd21::2@443" "::1@443" "127.0.0.1@443" ]; - forwardAddresses = [ - (lib.head nodes.authoritative.config.networking.interfaces.eth1.ipv6.addresses).address - (lib.head nodes.authoritative.config.networking.interfaces.eth1.ipv4.addresses).address - ]; - extraConfig = '' - server: - tls-service-pem: ${cert}/cert.pem - tls-service-key: ${cert}/key.pem - ''; + settings = { + server = { + interface = [ "::1" "127.0.0.1" "192.168.0.2" "fd21::2" + "192.168.0.2@853" "fd21::2@853" "::1@853" "127.0.0.1@853" + "192.168.0.2@443" "fd21::2@443" "::1@443" "127.0.0.1@443" ]; + access-control = [ "192.168.0.0/24 allow" "fd21::/64 allow" "::1 allow" "127.0.0.0/8 allow" ]; + tls-service-pem = "${cert}/cert.pem"; + tls-service-key = "${cert}/key.pem"; + }; + forward-zone = [ + { + name = "."; + forward-addr = [ + (lib.head nodes.authoritative.config.networking.interfaces.eth1.ipv6.addresses).address + (lib.head nodes.authoritative.config.networking.interfaces.eth1.ipv4.addresses).address + ]; + } + ]; + }; }; }; @@ -122,12 +131,14 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: services.unbound = { enable = true; - allowedAccess = [ "::1" "127.0.0.0/8" ]; - interfaces = [ "::1" "127.0.0.1" ]; + settings = { + server = { + interface = [ "::1" "127.0.0.1" ]; + access-control = [ "::1 allow" "127.0.0.0/8 allow" ]; + }; + include = "/etc/unbound/extra*.conf"; + }; localControlSocketPath = "/run/unbound/unbound.ctl"; - extraConfig = '' - include: "/etc/unbound/extra*.conf" - ''; }; users.users = { @@ -143,12 +154,13 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: unauthorizeduser = { isSystemUser = true; }; }; + # Used for testing configuration reloading environment.etc = { "unbound-extra1.conf".text = '' forward-zone: - name: "example.local." - forward-addr: ${(lib.head nodes.resolver.config.networking.interfaces.eth1.ipv6.addresses).address} - forward-addr: ${(lib.head nodes.resolver.config.networking.interfaces.eth1.ipv4.addresses).address} + name: "example.local." + forward-addr: ${(lib.head nodes.resolver.config.networking.interfaces.eth1.ipv6.addresses).address} + forward-addr: ${(lib.head nodes.resolver.config.networking.interfaces.eth1.ipv4.addresses).address} ''; "unbound-extra2.conf".text = '' auth-zone: From 1ce3067c425d7a105ea0bc133de255c9815e495f Mon Sep 17 00:00:00 2001 From: Sumner Evans Date: Mon, 3 May 2021 09:38:02 -0600 Subject: [PATCH 339/339] airsonic: add test for module --- nixos/tests/airsonic.nix | 32 ++++++++++++++++++++++++++ nixos/tests/all-tests.nix | 1 + pkgs/servers/misc/airsonic/default.nix | 6 ++++- 3 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 nixos/tests/airsonic.nix diff --git a/nixos/tests/airsonic.nix b/nixos/tests/airsonic.nix new file mode 100644 index 00000000000..59bd84877c6 --- /dev/null +++ b/nixos/tests/airsonic.nix @@ -0,0 +1,32 @@ +import ./make-test-python.nix ({ pkgs, ... }: { + name = "airsonic"; + meta = with pkgs.lib.maintainers; { + maintainers = [ sumnerevans ]; + }; + + machine = + { pkgs, ... }: + { + services.airsonic = { + enable = true; + maxMemory = 800; + }; + + # Airsonic is a Java application, and unfortunately requires a significant + # amount of memory. + virtualisation.memorySize = 1024; + }; + + testScript = '' + def airsonic_is_up(_) -> bool: + return machine.succeed("curl --fail http://localhost:4040/login") + + + machine.start() + machine.wait_for_unit("airsonic.service") + machine.wait_for_open_port(4040) + + with machine.nested("Waiting for UI to work"): + retry(airsonic_is_up) + ''; +}) diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 9043ab144ab..e39c525a604 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -24,6 +24,7 @@ in _3proxy = handleTest ./3proxy.nix {}; acme = handleTest ./acme.nix {}; agda = handleTest ./agda.nix {}; + airsonic = handleTest ./airsonic.nix {}; amazon-init-shell = handleTest ./amazon-init-shell.nix {}; ammonite = handleTest ./ammonite.nix {}; atd = handleTest ./atd.nix {}; diff --git a/pkgs/servers/misc/airsonic/default.nix b/pkgs/servers/misc/airsonic/default.nix index bd8310bc74f..8fba050ffad 100644 --- a/pkgs/servers/misc/airsonic/default.nix +++ b/pkgs/servers/misc/airsonic/default.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, fetchurl }: +{ lib, stdenv, fetchurl, nixosTests }: stdenv.mkDerivation rec { pname = "airsonic"; @@ -14,6 +14,10 @@ stdenv.mkDerivation rec { cp "$src" "$out/webapps/airsonic.war" ''; + passthru.tests = { + airsonic-starts = nixosTests.airsonic; + }; + meta = with lib; { description = "Personal media streamer"; homepage = "https://airsonic.github.io";