diff --git a/doc/shell.nix b/doc/shell.nix index 8ac2019f9d6..5fa2b442489 100644 --- a/doc/shell.nix +++ b/doc/shell.nix @@ -1,5 +1,3 @@ -{ pkgs ? import ../. {} }: -(import ./default.nix {}).overrideAttrs (x: { - buildInputs = x.buildInputs ++ [ pkgs.xmloscopy pkgs.ruby ]; - -}) +{ pkgs ? import ../. { } }: +(import ./default.nix { }).overrideAttrs +(x: { buildInputs = (x.buildInputs or [ ]) ++ [ pkgs.xmloscopy pkgs.ruby ]; }) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 2ff86927b36..8824472bfdf 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -5144,6 +5144,12 @@ githubId = 480920; name = "Luca Bruno"; }; + leungbk = { + email = "leungbk@mailfence.com"; + github = "leungbk"; + githubId = 29217594; + name = "Brian Leung"; + }; lewo = { email = "lewo@abesis.fr"; github = "nlewo"; diff --git a/nixos/modules/hardware/nitrokey.nix b/nixos/modules/hardware/nitrokey.nix index 02e4c3f46f8..baa07203118 100644 --- a/nixos/modules/hardware/nitrokey.nix +++ b/nixos/modules/hardware/nitrokey.nix @@ -19,23 +19,9 @@ in nitrokey-app package, depending on your device and needs. ''; }; - - group = mkOption { - type = types.str; - default = "nitrokey"; - example = "wheel"; - description = '' - Grant access to Nitrokey devices to users in this group. - ''; - }; }; config = mkIf cfg.enable { - services.udev.packages = [ - (pkgs.nitrokey-udev-rules.override (attrs: - { inherit (cfg) group; } - )) - ]; - users.groups.${cfg.group} = {}; + services.udev.packages = [ pkgs.nitrokey-udev-rules ]; }; } diff --git a/pkgs/applications/audio/jamulus/default.nix b/pkgs/applications/audio/jamulus/default.nix index 55427ccfda4..c6510f5469c 100644 --- a/pkgs/applications/audio/jamulus/default.nix +++ b/pkgs/applications/audio/jamulus/default.nix @@ -3,12 +3,12 @@ mkDerivation rec { pname = "jamulus"; - version = "3.6.1"; + version = "3.6.2"; src = fetchFromGitHub { owner = "corrados"; repo = "jamulus"; rev = "r${lib.replaceStrings [ "." ] [ "_" ] version}"; - sha256 = "11rwgd2car7ziqa0vancb363m4ca94pj480jfxywd6d81139jl15"; + sha256 = "sha256-b187Q8KXcU32C2hGFqs6R2CqWgmieq6ewQDx+elEgP4="; }; nativeBuildInputs = [ pkg-config qmake ]; diff --git a/pkgs/applications/editors/emacs-modes/cedet/default.nix b/pkgs/applications/editors/emacs-modes/cedet/default.nix index 9ba9e070d08..18dcef129cc 100644 --- a/pkgs/applications/editors/emacs-modes/cedet/default.nix +++ b/pkgs/applications/editors/emacs-modes/cedet/default.nix @@ -1,4 +1,4 @@ -{ fetchurl, stdenv, emacs, python }: +{ lib, fetchurl, stdenv, emacs, python }: stdenv.mkDerivation rec { name = "cedet-1.1"; diff --git a/pkgs/applications/editors/emacs-modes/ess-R-object-popup/default.nix b/pkgs/applications/editors/emacs-modes/ess-R-object-popup/default.nix index 5eb81197c8b..a92471a9493 100644 --- a/pkgs/applications/editors/emacs-modes/ess-R-object-popup/default.nix +++ b/pkgs/applications/editors/emacs-modes/ess-R-object-popup/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchgit }: +{ lib, stdenv, fetchgit }: stdenv.mkDerivation { name = "ess-R-object-popup-20130302"; diff --git a/pkgs/applications/editors/emacs-modes/helm-words/default.nix b/pkgs/applications/editors/emacs-modes/helm-words/default.nix index a8a1274737a..0678492500d 100644 --- a/pkgs/applications/editors/emacs-modes/helm-words/default.nix +++ b/pkgs/applications/editors/emacs-modes/helm-words/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchgit }: +{ lib, stdenv, fetchgit }: stdenv.mkDerivation { name = "helm-words-20190917"; diff --git a/pkgs/applications/editors/emacs-modes/hsc3/default.nix b/pkgs/applications/editors/emacs-modes/hsc3/default.nix index 972d3b8a6f9..3b20326d96f 100644 --- a/pkgs/applications/editors/emacs-modes/hsc3/default.nix +++ b/pkgs/applications/editors/emacs-modes/hsc3/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, emacs }: +{ lib, stdenv, fetchurl, emacs }: # this package installs the emacs-mode which # resides in the hsc3 sources. diff --git a/pkgs/applications/editors/emacs-modes/melpa-packages.nix b/pkgs/applications/editors/emacs-modes/melpa-packages.nix index bc0875bcd9e..9334a16d22d 100644 --- a/pkgs/applications/editors/emacs-modes/melpa-packages.nix +++ b/pkgs/applications/editors/emacs-modes/melpa-packages.nix @@ -341,6 +341,7 @@ let # Telega has a server portion for it's network protocol telega = super.telega.overrideAttrs (old: { buildInputs = old.buildInputs ++ [ pkgs.tdlib ]; + nativeBuildInputs = [ external.pkg-config ]; postBuild = '' cd source/server diff --git a/pkgs/applications/editors/emacs-modes/org-mac-link/default.nix b/pkgs/applications/editors/emacs-modes/org-mac-link/default.nix index dba6e10a590..600e44eb8ab 100644 --- a/pkgs/applications/editors/emacs-modes/org-mac-link/default.nix +++ b/pkgs/applications/editors/emacs-modes/org-mac-link/default.nix @@ -1,4 +1,4 @@ -{stdenv, fetchurl, emacs}: +{ lib, stdenv, fetchurl, emacs }: stdenv.mkDerivation { name = "org-mac-link-1.2"; diff --git a/pkgs/applications/editors/emacs-modes/perl-completion/default.nix b/pkgs/applications/editors/emacs-modes/perl-completion/default.nix index 815783aabea..e14e5ed8cc2 100644 --- a/pkgs/applications/editors/emacs-modes/perl-completion/default.nix +++ b/pkgs/applications/editors/emacs-modes/perl-completion/default.nix @@ -1,4 +1,4 @@ -{stdenv, fetchurl}: +{ lib, stdenv, fetchurl }: stdenv.mkDerivation { name = "perl-completion"; diff --git a/pkgs/applications/editors/emacs-modes/prolog/default.nix b/pkgs/applications/editors/emacs-modes/prolog/default.nix index 7be3b1ca3c7..deac73a194e 100644 --- a/pkgs/applications/editors/emacs-modes/prolog/default.nix +++ b/pkgs/applications/editors/emacs-modes/prolog/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl }: +{ lib, stdenv, fetchurl }: stdenv.mkDerivation { pname = "prolog-mode"; diff --git a/pkgs/applications/editors/emacs-modes/railgun/default.nix b/pkgs/applications/editors/emacs-modes/railgun/default.nix index 4cf4d18d8cc..240a2f29edf 100644 --- a/pkgs/applications/editors/emacs-modes/railgun/default.nix +++ b/pkgs/applications/editors/emacs-modes/railgun/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchgit }: +{ lib, stdenv, fetchgit }: stdenv.mkDerivation { name = "railgun-2012-10-17"; diff --git a/pkgs/applications/editors/emacs-modes/rect-mark/default.nix b/pkgs/applications/editors/emacs-modes/rect-mark/default.nix index d2785ef0363..1275c51b99e 100644 --- a/pkgs/applications/editors/emacs-modes/rect-mark/default.nix +++ b/pkgs/applications/editors/emacs-modes/rect-mark/default.nix @@ -1,4 +1,4 @@ -{stdenv, fetchurl, emacs}: +{ lib, stdenv, fetchurl, emacs }: stdenv.mkDerivation { name = "rect-mark-1.4"; diff --git a/pkgs/applications/editors/emacs-modes/sunrise-commander/default.nix b/pkgs/applications/editors/emacs-modes/sunrise-commander/default.nix index 710c33a96ec..412ed59f2ac 100644 --- a/pkgs/applications/editors/emacs-modes/sunrise-commander/default.nix +++ b/pkgs/applications/editors/emacs-modes/sunrise-commander/default.nix @@ -1,4 +1,4 @@ -{stdenv, fetchgit, emacs}: +{ lib, stdenv, fetchgit, emacs }: stdenv.mkDerivation { name = "sunrise-commander-6r435"; diff --git a/pkgs/applications/editors/emacs-modes/tramp/default.nix b/pkgs/applications/editors/emacs-modes/tramp/default.nix index f67efb80bf9..237c05c5fa7 100644 --- a/pkgs/applications/editors/emacs-modes/tramp/default.nix +++ b/pkgs/applications/editors/emacs-modes/tramp/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, emacs, texinfo }: +{ lib, stdenv, fetchurl, emacs, texinfo }: stdenv.mkDerivation rec { name = "tramp-2.4.2"; diff --git a/pkgs/applications/editors/emacs-modes/zeitgeist/default.nix b/pkgs/applications/editors/emacs-modes/zeitgeist/default.nix index 352c46718dd..67bf7b500ff 100644 --- a/pkgs/applications/editors/emacs-modes/zeitgeist/default.nix +++ b/pkgs/applications/editors/emacs-modes/zeitgeist/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, emacs }: +{ lib, stdenv, fetchurl, emacs }: stdenv.mkDerivation { name = "zeitgeist-20120221"; diff --git a/pkgs/applications/editors/kakoune/plugins/quickscope.kak.nix b/pkgs/applications/editors/kakoune/plugins/quickscope.kak.nix index deeaa8a9f15..8e60e17e792 100644 --- a/pkgs/applications/editors/kakoune/plugins/quickscope.kak.nix +++ b/pkgs/applications/editors/kakoune/plugins/quickscope.kak.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchgit, lua5_3 }: +{ lib, stdenv, fetchgit, lua5_3 }: stdenv.mkDerivation rec { pname = "quickscope-kak"; diff --git a/pkgs/applications/editors/tecoc/default.nix b/pkgs/applications/editors/tecoc/default.nix index 50cad500c95..f5ad8d947c7 100644 --- a/pkgs/applications/editors/tecoc/default.nix +++ b/pkgs/applications/editors/tecoc/default.nix @@ -1,37 +1,47 @@ -{ lib, stdenv, fetchFromGitHub -, ncurses }: +{ stdenv +, lib +, fetchFromGitHub +, ncurses +}: stdenv.mkDerivation rec { - - pname = "tecoc-git"; - version = "20150606"; + pname = "tecoc"; + version = "unstable-2020-11-03"; src = fetchFromGitHub { owner = "blakemcbride"; repo = "TECOC"; - rev = "d7dffdeb1dfb812e579d6d3b518545b23e1b50cb"; - sha256 = "11zfa73dlx71c0hmjz5n3wqcvk6082rpb4sss877nfiayisc0njj"; + rev = "79fcb6cfd6c5f9759f6ec46aeaf86d5806b13a0b"; + sha256 = "sha256-JooLvoh9CxLHLOXXxE7zA7R9yglr9BGUwX4nrw2/vIw="; }; buildInputs = [ ncurses ]; makefile = if stdenv.hostPlatform.isDarwin - then "makefile.osx" - else if stdenv.hostPlatform.isFreeBSD - then "makefile.bsd" - else if stdenv.hostPlatform.isOpenBSD - then "makefile.bsd" - else if stdenv.hostPlatform.isWindows - then "makefile.win" - else "makefile.linux"; # I think Linux is a safe default... + then "makefile.osx" + else if stdenv.hostPlatform.isFreeBSD + then "makefile.bsd" + else if stdenv.hostPlatform.isOpenBSD + then "makefile.bsd" + else if stdenv.hostPlatform.isWindows + then "makefile.win" + else "makefile.linux"; # I think Linux is a safe default... makeFlags = [ "CC=${stdenv.cc}/bin/cc" "-C src/" ]; + preInstall = '' + install -d $out/bin $out/share/doc/${pname}-${version} $out/lib/teco/macros + ''; + installPhase = '' - mkdir -p $out/bin $out/share/doc/${pname}-${version} $out/lib/teco/macros - cp src/tecoc $out/bin - cp src/aaout.txt doc/* $out/share/doc/${pname}-${version} - cp lib/* lib2/* $out/lib/teco/macros + runHook preInstall + install -m755 src/tecoc $out/bin + install -m644 src/aaout.txt doc/* $out/share/doc/${pname}-${version} + install -m644 lib/* lib2/* $out/lib/teco/macros + runHook postInstall + ''; + + postInstall = '' (cd $out/bin ln -s tecoc Make ln -s tecoc mung @@ -54,9 +64,11 @@ stdenv.mkDerivation rec { of Editor MACroS for TECO. TECOC is a portable C implementation of TECO-11. - ''; + ''; homepage = "https://github.com/blakemcbride/TECOC"; - license = { url = "https://github.com/blakemcbride/TECOC/tree/master/doc/readme-1st.txt"; }; + license = { + url = "https://github.com/blakemcbride/TECOC/tree/master/doc/readme-1st.txt"; + }; maintainers = [ maintainers.AndersonTorres ]; platforms = platforms.unix; }; diff --git a/pkgs/applications/graphics/pikopixel/default.nix b/pkgs/applications/graphics/pikopixel/default.nix new file mode 100644 index 00000000000..a20a0a2db61 --- /dev/null +++ b/pkgs/applications/graphics/pikopixel/default.nix @@ -0,0 +1,48 @@ +{ lib +, fetchurl +, gnustep +, gcc +, llvmPackages_9 +}: + +let + # Earlier llvm than 9 segfaults + gnustep' = gnustep.override { llvmPackages = llvmPackages_9; }; + +in gnustep'.gsmakeDerivation rec { + pname = "pikopixel"; + version = "1.0-b9e"; + + src = fetchurl { + url = "http://twilightedge.com/downloads/PikoPixel.Sources.${version}.tar.gz"; + sha256 = "1gmgb5ch7s6fwvg85l6pl6fsx0maqwd8yvg7sz3r9lj32g2pz5wn"; + }; + + sourceRoot = "PikoPixel.Sources.${version}/PikoPixel"; + + buildInputs = [ + gnustep'.base + gnustep'.gui + gnustep'.back + ]; + + # Fix the Exec and Icon paths in the .desktop file, and save the file in the + # correct place. + # postInstall gets redefined in gnustep.make's builder.sh, so we use preFixup + preFixup = '' + mkdir -p $out/share/applications + sed \ + -e "s@^Exec=.*\$@Exec=$out/bin/PikoPixel %F@" \ + -e "s@^Icon=.*/local@Icon=$out@" \ + PikoPixel.app/Resources/PikoPixel.desktop > $out/share/applications/PikoPixel.desktop + ''; + + meta = with lib; { + description = "Application for drawing and editing pixel-art images"; + homepage = "http://twilightedge.com/mac/pikopixel/"; + downloadPage = "http://twilightedge.com/mac/pikopixel/"; + license = licenses.agpl3; + maintainers = with maintainers; [ fgaz ]; + platforms = platforms.all; + }; +} diff --git a/pkgs/applications/misc/heimer/default.nix b/pkgs/applications/misc/heimer/default.nix index 07907752478..9d8dc1eaa03 100644 --- a/pkgs/applications/misc/heimer/default.nix +++ b/pkgs/applications/misc/heimer/default.nix @@ -2,13 +2,13 @@ mkDerivation rec { pname = "heimer"; - version = "2.0.0"; + version = "2.2.0"; src = fetchFromGitHub { owner = "juzzlin"; repo = pname; rev = version; - sha256 = "0lxypgwgl64d4sw9kn0ncyik3whpq8iif0sbvi4r5kasx6wgs4qz"; + sha256 = "sha256-upsOmf46bCO8sVp5dBHPLUBZYZP3JyXa7H5KXbd76qo="; }; nativeBuildInputs = [ cmake ]; diff --git a/pkgs/applications/misc/k4dirstat/default.nix b/pkgs/applications/misc/k4dirstat/default.nix index 1d6a6097d27..341341c3ca8 100644 --- a/pkgs/applications/misc/k4dirstat/default.nix +++ b/pkgs/applications/misc/k4dirstat/default.nix @@ -11,13 +11,13 @@ mkDerivation rec { pname = "k4dirstat"; - version = "3.2.1"; + version = "3.2.2"; src = fetchFromGitHub { owner = "jeromerobert"; repo = pname; rev = version; - sha256 = "15xjb80jq6vhzvzx4l341f40d8a23w1334qh6cczqm9adfnzycp7"; + sha256 = "sha256-U5p/gW5GPxRoM9XknP8G7iVhLDoqmvgspeRsmCRdxDg="; }; nativeBuildInputs = [ extra-cmake-modules ]; diff --git a/pkgs/applications/misc/kanboard/default.nix b/pkgs/applications/misc/kanboard/default.nix index 722f2364ab3..ffb787a9bd9 100644 --- a/pkgs/applications/misc/kanboard/default.nix +++ b/pkgs/applications/misc/kanboard/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "kanboard"; - version = "1.2.16"; + version = "1.2.18"; src = fetchFromGitHub { owner = "kanboard"; repo = "kanboard"; rev = "v${version}"; - sha256 = "1nps7xcw1gp7kfdp13wyj2sprc8hn5iamdb0xj4202qygpzm63wq"; + sha256 = "sha256-raXPRoydd3CfciF7S0cZiuY7EPFKfE8IU3qj2dOztHU="; }; dontBuild = true; diff --git a/pkgs/applications/networking/cluster/helmfile/default.nix b/pkgs/applications/networking/cluster/helmfile/default.nix index 2516370430e..2073916ffe1 100644 --- a/pkgs/applications/networking/cluster/helmfile/default.nix +++ b/pkgs/applications/networking/cluster/helmfile/default.nix @@ -2,16 +2,16 @@ buildGoModule rec { pname = "helmfile"; - version = "0.135.0"; + version = "0.137.0"; src = fetchFromGitHub { owner = "roboll"; repo = "helmfile"; rev = "v${version}"; - sha256 = "1ky9mh5n6n84g77ax1dn1cisgxjwyrhnapaikyj4q53zcbyai3ng"; + sha256 = "sha256-HrVQS09lllUC4HClWahMV72j2TiQnzEUkV16YKm6984="; }; - vendorSha256 = "0dycngvk4nymcrkn6pn2q2h2zfvhc69m1zs2pspl58sa0mkakk2p"; + vendorSha256 = "sha256-dL36mcYCs92USf18BMB6vXd+qLsk2BYmAEm1bwx+o5k="; doCheck = false; diff --git a/pkgs/applications/networking/cluster/helmsman/default.nix b/pkgs/applications/networking/cluster/helmsman/default.nix index 21a9608db2c..15ccd065e2f 100644 --- a/pkgs/applications/networking/cluster/helmsman/default.nix +++ b/pkgs/applications/networking/cluster/helmsman/default.nix @@ -2,16 +2,16 @@ buildGoModule rec { pname = "helmsman"; - version = "3.6.2"; + version = "3.6.3"; src = fetchFromGitHub { owner = "Praqma"; repo = "helmsman"; rev = "v${version}"; - sha256 = "0a9f6745f17sws7fyhz0d8wnriv69d6nrci9j5nhysnzg97ky1np"; + sha256 = "sha256-CvepOpAI40eTS5p5gjtbzahn0tX/z4CId1DDqlaMSMw="; }; - vendorSha256 = "04csmw5zpansb30amr3i6vlwxc3z38q4g69cklh44cr37glm04sm"; + vendorSha256 = "sha256-VRNQ6TsjM0IgnSyZRzAaf7DO6TZx5KrAWNqq+wuvmhE="; doCheck = false; diff --git a/pkgs/applications/networking/cluster/istioctl/default.nix b/pkgs/applications/networking/cluster/istioctl/default.nix index 5d293df9157..5f136fef807 100644 --- a/pkgs/applications/networking/cluster/istioctl/default.nix +++ b/pkgs/applications/networking/cluster/istioctl/default.nix @@ -2,15 +2,15 @@ buildGoModule rec { pname = "istioctl"; - version = "1.8.1"; + version = "1.8.2"; src = fetchFromGitHub { owner = "istio"; repo = "istio"; rev = version; - sha256 = "1m97hszmw0hfzj3jvd1is7fa3mpqkm7jbq3ik337rb9yq1f0gasv"; + sha256 = "sha256-9mQYJvZU/Ra+LyzfDbWGfopkdGBD7DpS9/yvRvGHDKg="; }; - vendorSha256 = "0ividxxmil69vpvyjlgyzb2jzipmh9rpvk19kv7266d29ky3q7s6"; + vendorSha256 = "sha256-7LQY32hNXLxg/IUBbzzgb67yrbPGLCTNtmNvjE9tUno="; doCheck = false; diff --git a/pkgs/applications/networking/cluster/jx/default.nix b/pkgs/applications/networking/cluster/jx/default.nix index 1f1eb3e8548..d7fc1cb2242 100644 --- a/pkgs/applications/networking/cluster/jx/default.nix +++ b/pkgs/applications/networking/cluster/jx/default.nix @@ -2,16 +2,16 @@ buildGoModule rec { pname = "jx"; - version = "2.1.149"; + version = "2.1.155"; src = fetchFromGitHub { owner = "jenkins-x"; repo = "jx"; rev = "v${version}"; - sha256 = "0jgny09wpfab8mkxkhv9swp1baqx3lxsx75a5i78cypkj6xadc69"; + sha256 = "sha256-kwcmZSOA26XuSgNSHitGaMohalnLobabXf4z3ybSJtk="; }; - vendorSha256 = "1fswrf14nwjm0z8qqgdx236w7w1m451lyfinhx9pyp89fw2h5mv6"; + vendorSha256 = "sha256-ZtcCBXcJXX9ThzY6T0MhNfDDzRC9PYzRB1VyS4LLXLs="; doCheck = false; diff --git a/pkgs/applications/networking/instant-messengers/tangram/default.nix b/pkgs/applications/networking/instant-messengers/tangram/default.nix index 0985f74b915..e7ca8c320ac 100644 --- a/pkgs/applications/networking/instant-messengers/tangram/default.nix +++ b/pkgs/applications/networking/instant-messengers/tangram/default.nix @@ -1,6 +1,6 @@ { stdenv, lib, fetchFromGitHub, appstream-glib, desktop-file-utils, gdk-pixbuf , gettext, gjs, glib, gobject-introspection, gsettings-desktop-schemas, gtk3 -, hicolor-icon-theme, meson, ninja, pkgconfig, python3, webkitgtk, wrapGAppsHook +, hicolor-icon-theme, meson, ninja, pkg-config, python3, webkitgtk, wrapGAppsHook }: stdenv.mkDerivation rec { @@ -25,7 +25,7 @@ stdenv.mkDerivation rec { hicolor-icon-theme meson ninja - pkgconfig + pkg-config python3 wrapGAppsHook ]; diff --git a/pkgs/applications/networking/jmeter/default.nix b/pkgs/applications/networking/jmeter/default.nix index a8f947aebf7..995070066e0 100644 --- a/pkgs/applications/networking/jmeter/default.nix +++ b/pkgs/applications/networking/jmeter/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "jmeter"; - version = "5.1.1"; + version = "5.4"; src = fetchurl { url = "https://archive.apache.org/dist/jmeter/binaries/apache-${pname}-${version}.tgz"; - sha256 = "1bmlxnlcias781mwf3wzpd4935awswbq3w8ijck65bsaw07m2kc4"; + sha256 = "1hbyvh0hrvfvrsf7wpnwqsry5gaziac632s0bwb5zbq6y5b0z41a"; }; - nativeBuildInputs = [ makeWrapper ]; + nativeBuildInputs = [ makeWrapper jre ]; installPhase = '' mkdir $out @@ -32,7 +32,7 @@ stdenv.mkDerivation rec { wrapProgram $out/bin/jmeter.sh --set JAVA_HOME "${jre}" ''; - doInstallCheck = true; + doInstallCheck = false; #NoClassDefFoundError: org/apache/logging/log4j/Level for tests checkInputs = [ coreutils ]; @@ -53,7 +53,7 @@ stdenv.mkDerivation rec { Applications but has since expanded to other test functions. ''; license = licenses.asl20; - maintainers = [ ]; + maintainers = [ maintainers.bryanasdev000 ]; priority = 1; platforms = platforms.unix; }; diff --git a/pkgs/applications/window-managers/i3/lock-color.nix b/pkgs/applications/window-managers/i3/lock-color.nix index 81ef536a5f7..6f22070dbc8 100644 --- a/pkgs/applications/window-managers/i3/lock-color.nix +++ b/pkgs/applications/window-managers/i3/lock-color.nix @@ -4,14 +4,14 @@ }: stdenv.mkDerivation rec { - version = "2.12.c.5"; + version = "2.13.c.1"; pname = "i3lock-color"; src = fetchFromGitHub { owner = "PandorasFox"; repo = "i3lock-color"; rev = version; - sha256 = "10h50a6p9ivqjz8hd5pn9l03vz6y9dxdx68bprqssfzdkzqnzaiv"; + sha256 = "sha256-E+ejc26eyCJ0PnMpDgQrouaBIaUH0SWlzB08fQs8lDw="; }; nativeBuildInputs = [ autoreconfHook pkg-config ]; diff --git a/pkgs/build-support/build-bazel-package/default.nix b/pkgs/build-support/build-bazel-package/default.nix index 10a331bcc9e..3be72bd22c3 100644 --- a/pkgs/build-support/build-bazel-package/default.nix +++ b/pkgs/build-support/build-bazel-package/default.nix @@ -172,7 +172,9 @@ in stdenv.mkDerivation (fBuildAttrs // { chmod -R +w $bazelOut find $bazelOut -type l | while read symlink; do - ln -sf $(readlink "$symlink" | sed "s,NIX_BUILD_TOP,$NIX_BUILD_TOP,") "$symlink" + if [[ $(readlink "$symlink") == *NIX_BUILD_TOP* ]]; then + ln -sf $(readlink "$symlink" | sed "s,NIX_BUILD_TOP,$NIX_BUILD_TOP,") "$symlink" + fi done '' + fBuildAttrs.preConfigure or ""; diff --git a/pkgs/desktops/enlightenment/evisum/default.nix b/pkgs/desktops/enlightenment/evisum/default.nix index e4b2a7ac205..8222c6ed843 100644 --- a/pkgs/desktops/enlightenment/evisum/default.nix +++ b/pkgs/desktops/enlightenment/evisum/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "evisum"; - version = "0.5.8"; + version = "0.5.9"; src = fetchurl { url = "https://download.enlightenment.org/rel/apps/${pname}/${pname}-${version}.tar.xz"; - sha256 = "0cg4vqd069h89k3wrvl550p29y3yzbdnvii58gwc8rghwym621jx"; + sha256 = "sha256-ao5b4Mhr+fhY19X1g0gupcU8LayR55/kgHSwhGUAfys="; }; nativeBuildInputs = [ diff --git a/pkgs/desktops/gnustep/default.nix b/pkgs/desktops/gnustep/default.nix index 4f7c13e8e4a..abbabd4abf2 100644 --- a/pkgs/desktops/gnustep/default.nix +++ b/pkgs/desktops/gnustep/default.nix @@ -1,21 +1,22 @@ -{ pkgs, newScope, llvmPackages_6 }: +{ newScope +, llvmPackages +, giflib_4_1 +}: let callPackage = newScope self; self = rec { - stdenv = pkgs.clangStdenv; + stdenv = llvmPackages.stdenv; gsmakeDerivation = callPackage ./make/gsmakeDerivation.nix {}; gorm = callPackage ./gorm {}; projectcenter = callPackage ./projectcenter {}; system_preferences = callPackage ./systempreferences {}; - libobjc = callPackage ./libobjc2 { - stdenv = if stdenv.cc.isClang then llvmPackages_6.stdenv else stdenv; - }; + libobjc = callPackage ./libobjc2 {}; make = callPackage ./make {}; back = callPackage ./back {}; - base = callPackage ./base { giflib = pkgs.giflib_4_1; }; + base = callPackage ./base { giflib = giflib_4_1; }; gui = callPackage ./gui {}; gworkspace = callPackage ./gworkspace {}; }; diff --git a/pkgs/development/interpreters/maude/default.nix b/pkgs/development/interpreters/maude/default.nix index e4e984fc4ac..d824d29c35c 100644 --- a/pkgs/development/interpreters/maude/default.nix +++ b/pkgs/development/interpreters/maude/default.nix @@ -4,11 +4,11 @@ let - version = "3.0"; + version = "3.1"; fullMaude = fetchurl { - url = "http://maude.cs.illinois.edu/w/images/0/04/Full-Maude-${version}.zip"; - sha256 = "0gf36wlkkl343vlxgryqdhxmgyn8z0cc2zayccd7ac3inmj1iayw"; + url = "http://maude.cs.illinois.edu/w/images/0/0a/Full-Maude-${version}.zip"; + sha256 = "8b13af02c6243116c2ef9592622ecaa06d05dbe1dd6b1e595551ff33855948f2"; }; in @@ -18,8 +18,8 @@ stdenv.mkDerivation { inherit version; src = fetchurl { - url = "http://maude.cs.illinois.edu/w/images/9/92/Maude-${version}.tar.gz"; - sha256 = "0vhn3lsck6ji9skrgm67hqrn3k4f6y442q73jbw65qqznm321k5a"; + url = "http://maude.cs.illinois.edu/w/images/d/d3/Maude-${version}.tar.gz"; + sha256 = "b112d7843f65217e3b5a9d40461698ef8dab7cbbe830af21216dfb924dc88a2f"; }; buildInputs = [ @@ -43,7 +43,7 @@ stdenv.mkDerivation { postInstall = '' for n in "$out/bin/"*; do wrapProgram "$n" --suffix MAUDE_LIB ':' "$out/share/maude"; done unzip ${fullMaude} - install -D -m 444 full-maude3.maude $out/share/maude/full-maude.maude + install -D -m 444 full-maude31.maude $out/share/maude/full-maude.maude ''; # bison -dv surface.yy -o surface.c diff --git a/pkgs/development/libraries/alkimia/default.nix b/pkgs/development/libraries/alkimia/default.nix index d7d8c268928..18c40c5b5fb 100644 --- a/pkgs/development/libraries/alkimia/default.nix +++ b/pkgs/development/libraries/alkimia/default.nix @@ -5,11 +5,11 @@ mkDerivation rec { pname = "alkimia"; - version = "8.0.2"; + version = "8.0.4"; src = fetchurl { url = "mirror://kde/stable/alkimia/${version}/${pname}-${version}.tar.xz"; - sha256 = "0al5k9irmg9gsjc234qxjsqfzgzsavl18pspqk78mkp8zlv7fvv1"; + sha256 = "sha256-AASnBo3/CqLLb0f3DSHBKQc74R8u2yHxRRK8RHBIfR8="; }; nativeBuildInputs = [ extra-cmake-modules doxygen graphviz ]; diff --git a/pkgs/development/libraries/aws-c-common/default.nix b/pkgs/development/libraries/aws-c-common/default.nix index 5473867a6ad..23d7f9d8629 100644 --- a/pkgs/development/libraries/aws-c-common/default.nix +++ b/pkgs/development/libraries/aws-c-common/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "aws-c-common"; - version = "0.4.63"; + version = "0.4.64"; src = fetchFromGitHub { owner = "awslabs"; repo = pname; rev = "v${version}"; - sha256 = "16bc6fn1gq3nqcrzgpi2kjphq7xkkr73aljakrg89ysm6hyzyim9"; + sha256 = "sha256-izEZMOPHj/9EL78b/t3M0Tki6eA8eRrpG7DO2tkpf1A="; }; nativeBuildInputs = [ cmake ]; diff --git a/pkgs/development/libraries/aws-c-io/default.nix b/pkgs/development/libraries/aws-c-io/default.nix index eda87ba2c53..e2074cc835a 100644 --- a/pkgs/development/libraries/aws-c-io/default.nix +++ b/pkgs/development/libraries/aws-c-io/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "aws-c-io"; - version = "0.7.0"; + version = "0.7.1"; src = fetchFromGitHub { owner = "awslabs"; repo = pname; rev = "v${version}"; - sha256 = "0wagc1205r57llqd39wqjasq3bgc8h1mfdqk4r5lcrnn4jbpcill"; + sha256 = "sha256-dDvq5clOUaPR7lOCJ/1g0lrCzVOmzwCnqHrBZfBewO4="; }; nativeBuildInputs = [ cmake ]; diff --git a/pkgs/development/libraries/aws-sdk-cpp/default.nix b/pkgs/development/libraries/aws-sdk-cpp/default.nix index fc3f7896dbe..ffe15652a3d 100644 --- a/pkgs/development/libraries/aws-sdk-cpp/default.nix +++ b/pkgs/development/libraries/aws-sdk-cpp/default.nix @@ -9,13 +9,13 @@ stdenv.mkDerivation rec { pname = "aws-sdk-cpp"; - version = "1.8.113"; + version = "1.8.121"; src = fetchFromGitHub { owner = "awslabs"; repo = "aws-sdk-cpp"; rev = version; - sha256 = "0y784cjrxgrin3ck5f2lk0riyy9kv928kcb9y0gzka65imgma48c"; + sha256 = "sha256-uita3HPcerxH/bnSIL3ZNUp68QXtKJLYi0pcnV7OBkQ="; }; # FIXME: might be nice to put different APIs in different outputs diff --git a/pkgs/development/libraries/babl/default.nix b/pkgs/development/libraries/babl/default.nix index 3352a14eaa3..ef24f0dadb7 100644 --- a/pkgs/development/libraries/babl/default.nix +++ b/pkgs/development/libraries/babl/default.nix @@ -10,13 +10,13 @@ stdenv.mkDerivation rec { pname = "babl"; - version = "0.1.82"; + version = "0.1.84"; outputs = [ "out" "dev" ]; src = fetchurl { url = "https://download.gimp.org/pub/babl/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "1iddkwdfw1bmfl6n8y1d4kkm3rb15rzvrfri6a7cnx37mpa96bf6"; + sha256 = "sha256-5+OLhEH3f+udyCMctDSoYZCiHy82ksKBRX6Z016cNOo="; }; nativeBuildInputs = [ diff --git a/pkgs/development/libraries/belcard/default.nix b/pkgs/development/libraries/belcard/default.nix index 35de9fb9347..df4e5329018 100644 --- a/pkgs/development/libraries/belcard/default.nix +++ b/pkgs/development/libraries/belcard/default.nix @@ -7,7 +7,7 @@ stdenv.mkDerivation rec { pname = "belcard"; - version = "4.4.13"; + version = "4.4.24"; src = fetchFromGitLab { domain = "gitlab.linphone.org"; @@ -15,7 +15,7 @@ stdenv.mkDerivation rec { group = "BC"; repo = pname; rev = version; - sha256 = "16x2xp8d0a115132zhy1kpxkyj86ia7vrsnpjdg78fnbvmvysc8m"; + sha256 = "sha256-FTHtd93LOnRek9fqvI+KBkk/+53Bwy9GKCEo0NDtops="; }; buildInputs = [ bctoolbox belr ]; diff --git a/pkgs/development/libraries/gtk-layer-shell/default.nix b/pkgs/development/libraries/gtk-layer-shell/default.nix index 87f9698bec0..1aef590bb92 100644 --- a/pkgs/development/libraries/gtk-layer-shell/default.nix +++ b/pkgs/development/libraries/gtk-layer-shell/default.nix @@ -13,7 +13,7 @@ stdenv.mkDerivation rec { pname = "gtk-layer-shell"; - version = "0.5.1"; + version = "0.5.2"; outputs = [ "out" "dev" "devdoc" ]; @@ -21,7 +21,7 @@ stdenv.mkDerivation rec { owner = "wmww"; repo = "gtk-layer-shell"; rev = "v${version}"; - sha256 = "1yfqfv3hn92cy9y5zgvz7qhq2ypill2z5857ki5snjimhjdz0cnw"; + sha256 = "sha256-516N45q5EZTq5eLCqH/T/VV/AxgBsQhJ+yZdLOEeDUk="; }; nativeBuildInputs = [ diff --git a/pkgs/development/libraries/indilib/default.nix b/pkgs/development/libraries/indilib/default.nix index 1635827340e..1663542521c 100644 --- a/pkgs/development/libraries/indilib/default.nix +++ b/pkgs/development/libraries/indilib/default.nix @@ -14,13 +14,13 @@ stdenv.mkDerivation rec { pname = "indilib"; - version = "1.8.7"; + version = "1.8.8"; src = fetchFromGitHub { owner = "indilib"; repo = "indi"; rev = "v${version}"; - sha256 = "0cy9l1vpsnfilxslvmn88hhq8iw8cnx3xpbnl78c0dgjyfv5xmhz"; + sha256 = "sha256-WTRfV6f764tDGKnQVd1jeYN/qXa/VRTFK0mMalc+9aU="; }; patches = [ diff --git a/pkgs/development/node-packages/default.nix b/pkgs/development/node-packages/default.nix index 8152327a61d..569b0c978b0 100644 --- a/pkgs/development/node-packages/default.nix +++ b/pkgs/development/node-packages/default.nix @@ -273,5 +273,13 @@ let echo /var/lib/thelounge > $out/lib/node_modules/thelounge/.thelounge_home ''; }; + + yaml-language-server = super.yaml-language-server.override { + nativeBuildInputs = [ pkgs.makeWrapper ]; + postInstall = '' + wrapProgram "$out/bin/yaml-language-server" \ + --prefix NODE_PATH : ${self.prettier}/lib/node_modules + ''; + }; }; in self diff --git a/pkgs/development/python-modules/aioflo/default.nix b/pkgs/development/python-modules/aioflo/default.nix new file mode 100644 index 00000000000..60288178def --- /dev/null +++ b/pkgs/development/python-modules/aioflo/default.nix @@ -0,0 +1,45 @@ +{ lib +, aiohttp +, aresponses +, buildPythonPackage +, fetchFromGitHub +, poetry-core +, pytest-aiohttp +, pytest-asyncio +, pytest-cov +, pytestCheckHook +}: + +buildPythonPackage rec { + pname = "aioflo"; + version = "0.4.2"; + format = "pyproject"; + + src = fetchFromGitHub { + owner = "bachya"; + repo = pname; + rev = version; + sha256 = "1ppsinmjph6snj7s4hg28p3qa67kpkadc98ikjjg6w65vcm3dlaz"; + }; + + nativeBuildInputs = [ poetry-core ]; + + propagatedBuildInputs = [ aiohttp ]; + + checkInputs = [ + aresponses + pytest-aiohttp + pytest-asyncio + pytest-cov + pytestCheckHook + ]; + + pythonImportsCheck = [ "aioflo" ]; + + meta = with lib; { + description = "Python library for Flo by Moen Smart Water Detectors"; + homepage = "https://github.com/bachya/aioflo"; + license = with licenses; [ mit ]; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/development/python-modules/aioh2/default.nix b/pkgs/development/python-modules/aioh2/default.nix index 6af4c4230b0..1ae997c60e8 100644 --- a/pkgs/development/python-modules/aioh2/default.nix +++ b/pkgs/development/python-modules/aioh2/default.nix @@ -19,5 +19,6 @@ buildPythonPackage rec { description = "HTTP/2 implementation with hyper-h2 on Python 3 asyncio"; license = licenses.bsd3; maintainers = [ maintainers.qyliss ]; + broken = true; # requires h2<4 }; } diff --git a/pkgs/development/python-modules/csvw/default.nix b/pkgs/development/python-modules/csvw/default.nix index 70e817dc299..410248b0193 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.8.1"; + version = "1.10.0"; disabled = isPy27; src = fetchFromGitHub { owner = "cldf"; repo = "csvw"; rev = "v${version}"; - sha256 = "1cafwgkspkc299shsa5x8wfzkx1d63p9rvslj9jwr68fipd1830w"; + sha256 = "0cvfzfi1a2m1xqpm34mwp9r3bhgsnfz4pmslvgn81i42n5grbnis"; }; patchPhase = '' diff --git a/pkgs/development/python-modules/devolo-home-control-api/default.nix b/pkgs/development/python-modules/devolo-home-control-api/default.nix new file mode 100644 index 00000000000..1e388fd3a11 --- /dev/null +++ b/pkgs/development/python-modules/devolo-home-control-api/default.nix @@ -0,0 +1,49 @@ +{ lib +, aiohttp +, buildPythonPackage +, fetchFromGitHub +, pytestCheckHook +, pytest-cov +, pytest-mock +, requests +, zeroconf +, websocket_client +, pytest-runner +}: + +buildPythonPackage rec { + pname = "devolo-home-control-api"; + version = "0.16.0"; + + src = fetchFromGitHub { + owner = "2Fake"; + repo = "devolo_home_control_api"; + rev = "v${version}"; + sha256 = "19zzdbx0dxlm8pq0yk00nn9gqqblgpp16fgl7z6a98hsa6459zzb"; + }; + + nativeBuildInputs = [ pytest-runner ]; + + propagatedBuildInputs = [ + requests + zeroconf + websocket_client + ]; + + checkInputs = [ + pytestCheckHook + pytest-cov + pytest-mock + ]; + + # Disable test that requires network access + disabledTests = [ "test__on_pong" ]; + pythonImportsCheck = [ "devolo_home_control_api" ]; + + meta = with lib; { + description = "Python library to work with devolo Home Control"; + homepage = "https://github.com/2Fake/devolo_home_control_api"; + license = with licenses; [ gpl3Only ]; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/development/python-modules/jenkins-job-builder/default.nix b/pkgs/development/python-modules/jenkins-job-builder/default.nix index 3cc2bb69e0e..371fd4b8830 100644 --- a/pkgs/development/python-modules/jenkins-job-builder/default.nix +++ b/pkgs/development/python-modules/jenkins-job-builder/default.nix @@ -10,11 +10,11 @@ buildPythonPackage rec { pname = "jenkins-job-builder"; - version = "3.7.0"; + version = "3.8.0"; src = fetchPypi { inherit pname version; - sha256 = "bca1f458206fc8be82d790685b603d4158e2034a651f2e148e31526984b9d551"; + sha256 = "sha256-uRyeRP1y3GS7tXb0kHLBi7+trJRme/Ke3xgOY+LqZ6k="; }; postPatch = '' diff --git a/pkgs/development/python-modules/mocket/default.nix b/pkgs/development/python-modules/mocket/default.nix index f7e97bb955c..2102718ab6e 100644 --- a/pkgs/development/python-modules/mocket/default.nix +++ b/pkgs/development/python-modules/mocket/default.nix @@ -5,23 +5,25 @@ , python , python_magic , six -, urllib3 }: +, urllib3 +, pytestCheckHook +, pytest-mock +, aiohttp +, gevent +, redis +, requests +, sure +}: buildPythonPackage rec { pname = "mocket"; - version = "3.9.35"; + version = "3.9.39"; src = fetchPypi { inherit pname version; - sha256 = "d822a2adfd8e028a2856785fbfe78e7dd8c7a3b623516298aef6d42a4c9149d1"; + sha256 = "1mbcgfy1vfwwzn54vkq8xmfzdyc28brfpqk4d55r3a6abwwsn6a4"; }; - patchPhase = '' - sed -iE "s,python-magic==.*,python-magic," requirements.txt - sed -iE "s,urllib3==.*,urllib3," requirements.txt - substituteInPlace setup.py --replace 'setup_requires=["pipenv"]' "setup_requires=[]" - ''; - propagatedBuildInputs = [ decorator http-parser @@ -30,8 +32,36 @@ buildPythonPackage rec { six ] ++ lib.optionals (isPy27) [ six ]; - # Pypi has no runtests.py, github has no requirements.txt. No way to test, no way to install. - doCheck = false; + checkInputs = [ + pytestCheckHook + pytest-mock + aiohttp + gevent + redis + requests + sure + ]; + + pytestFlagsArray = [ + "--ignore=tests/main/test_pook.py" # pook is not packaged + "--ignore=tests/main/test_redis.py" # requires a live redis instance + ] ++ lib.optionals (pythonOlder "3.8") [ + # uses IsolatedAsyncioTestCase which is only available >= 3.8 + "--ignore=tests/tests38/test_http_aiohttp.py" + ]; + + disabledTests = [ + # tests that require network access (like DNS lookups) + "test_truesendall" + "test_truesendall_with_chunk_recording" + "test_truesendall_with_gzip_recording" + "test_truesendall_with_recording" + "test_wrongpath_truesendall" + "test_truesendall_with_dump_from_recording" + "test_truesendall_with_recording_https" + "test_truesendall_after_mocket_session" + "test_real_request_session" + ]; pythonImportsCheck = [ "mocket" ]; diff --git a/pkgs/development/python-modules/pymata-express/default.nix b/pkgs/development/python-modules/pymata-express/default.nix new file mode 100644 index 00000000000..1a50a91a309 --- /dev/null +++ b/pkgs/development/python-modules/pymata-express/default.nix @@ -0,0 +1,38 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, pyserial +, pytestCheckHook +, pythonOlder +}: + +buildPythonPackage rec { + pname = "pymata-express"; + version = "1.19"; + disabled = pythonOlder "3.7"; + + src = fetchFromGitHub { + owner = "MrYsLab"; + repo = pname; + rev = "v${version}"; + sha256 = "0gfjmqcxwsnfjgll6ql5xd1n3xp4klf4fcaajaivh053i02p0a79"; + }; + + propagatedBuildInputs = [ pyserial ]; + + # Project has no tests + doCheck = false; + pythonImportsCheck = [ "pymata_express" ]; + + meta = with lib; { + description = "Python Asyncio Arduino Firmata Client"; + longDescription = '' + Pymata-Express is a Python Firmata Protocol client. When used in conjunction + with an Arduino Firmata sketch, it permits you to control and monitor Arduino + hardware remotely over a serial link. + ''; + homepage = "https://mryslab.github.io/pymata-express/"; + license = with licenses; [ agpl3Plus ]; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/development/python-modules/samsungtvws/default.nix b/pkgs/development/python-modules/samsungtvws/default.nix index b41935c5825..3a12568c4d6 100644 --- a/pkgs/development/python-modules/samsungtvws/default.nix +++ b/pkgs/development/python-modules/samsungtvws/default.nix @@ -5,18 +5,14 @@ buildPythonPackage rec { pname = "samsungtvws"; - version = "1.5.3"; + version = "1.6.0"; disabled = isPy27; src = fetchPypi { inherit pname version; - sha256 = "054rr8hiacdjfxqssnxnd3xp9hh8350zjzzjvh1199bpps4l1l6n"; + sha256 = "09nls4n0lbnr8nj8105lagr9h2my8lb1s2k285kmsbli36ywd8lj"; }; - patchPhase = '' - substituteInPlace setup.py --replace "websocket-client==" "websocket-client>=" - ''; - propagatedBuildInputs = [ websocket_client requests diff --git a/pkgs/development/python-modules/segments/default.nix b/pkgs/development/python-modules/segments/default.nix index 8c2e22708aa..00953a8e909 100644 --- a/pkgs/development/python-modules/segments/default.nix +++ b/pkgs/development/python-modules/segments/default.nix @@ -12,14 +12,14 @@ buildPythonPackage rec { pname = "segments"; - version = "2.1.3"; + version = "2.2.0"; disabled = isPy27; src = fetchFromGitHub { owner = "cldf"; repo = pname; rev = "v${version}"; - sha256 = "12lnpk834r3y7hw5x7nvswa60ddh69ylvr44k46gqcfba160hhb0"; + sha256 = "04yc8q79zk09xj0wnal0vdg5azi9jlarfmf2iyljqyr80p79gwvv"; }; patchPhase = '' diff --git a/pkgs/development/python-modules/virtualenv/default.nix b/pkgs/development/python-modules/virtualenv/default.nix index 233101728f8..6869d16d5a4 100644 --- a/pkgs/development/python-modules/virtualenv/default.nix +++ b/pkgs/development/python-modules/virtualenv/default.nix @@ -1,27 +1,35 @@ { buildPythonPackage -, fetchPypi -, lib -, stdenv -, pythonOlder -, isPy27 , appdirs , contextlib2 +, cython , distlib +, fetchPypi , filelock +, fish +, flaky , importlib-metadata , importlib-resources +, isPy27 +, lib , pathlib2 +, pytest-freezegun +, pytest-mock +, pytest-timeout +, pytestCheckHook +, pythonOlder , setuptools_scm , six +, stdenv +, xonsh }: buildPythonPackage rec { pname = "virtualenv"; - version = "20.2.1"; + version = "20.3.1"; src = fetchPypi { inherit pname version; - sha256 = "e0aac7525e880a429764cefd3aaaff54afb5d9f25c82627563603f5d7de5a6e5"; + sha256 = "sha256-DBEaIjaxkUIrN/6MKLjIKM7TmqtL9WJ/pcMxrv+1cNk="; }; nativeBuildInputs = [ @@ -47,10 +55,33 @@ buildPythonPackage rec { ./0001-Check-base_prefix-and-base_exec_prefix-for-Python-2.patch ]; - meta = { + checkInputs = [ + cython + fish + flaky + pytest-freezegun + pytest-mock + pytest-timeout + pytestCheckHook + ] ++ lib.optionals (pythonOlder "3.9") [ + xonsh + ]; + + preCheck = "export HOME=$(mktemp -d)"; + + # Ignore tests which requires network access + pytestFlagsArray = [ + "--ignore tests/unit/create/test_creator.py" + "--ignore tests/unit/seed/embed/test_bootstrap_link_via_app_data.py" + ]; + + disabledTests = [ "test_can_build_c_extensions" ]; + pythonImportsCheck = [ "virtualenv" ]; + + meta = with lib; { description = "A tool to create isolated Python environments"; homepage = "http://www.virtualenv.org"; - license = lib.licenses.mit; - maintainers = with lib.maintainers; [ goibhniu ]; + license = licenses.mit; + maintainers = with maintainers; [ goibhniu ]; }; } diff --git a/pkgs/development/tools/coursier/default.nix b/pkgs/development/tools/coursier/default.nix index a0f69033923..54836216c54 100644 --- a/pkgs/development/tools/coursier/default.nix +++ b/pkgs/development/tools/coursier/default.nix @@ -2,7 +2,7 @@ , coreutils, git, gnused, nix, nixfmt }: let - version = "2.0.8"; + version = "2.0.9"; zshCompletion = fetchurl { url = @@ -19,7 +19,7 @@ in stdenv.mkDerivation rec { src = fetchurl { url = "https://github.com/coursier/coursier/releases/download/v${version}/coursier"; - sha256 = "sha256-7dNJUMZu6YY3076cnjWHRisJZVn1NPRH1VC+cJjfI/8="; + sha256 = "sha256-jqSv9VBLotl6YVWgWNznvTThRIiMUStQ0WbN6u01b1c="; }; nativeBuildInputs = [ makeWrapper ]; diff --git a/pkgs/development/tools/eclipse-mat/default.nix b/pkgs/development/tools/eclipse-mat/default.nix index e424c5ce70b..025b7413ceb 100644 --- a/pkgs/development/tools/eclipse-mat/default.nix +++ b/pkgs/development/tools/eclipse-mat/default.nix @@ -21,7 +21,7 @@ with lib; let - pVersion = "1.10.0.20200225"; + pVersion = "1.11.0.20201202"; pVersionTriple = splitVersion pVersion; majorVersion = elemAt pVersionTriple 0; minorVersion = elemAt pVersionTriple 1; @@ -35,7 +35,7 @@ stdenv.mkDerivation rec { src = fetchurl { url = "http://ftp.halifax.rwth-aachen.de/eclipse//mat/${baseVersion}/rcp/MemoryAnalyzer-${version}-linux.gtk.x86_64.zip"; - sha256 = "11cg01gjjvlm6lr6z6rwqs1r31xx5pxddnz55ca0s33lrnywf9fx"; + sha256 = "sha256-HtIKcGfdjb2wovGGSxv16ud7y1cPQFBn77pkhiekAkI="; }; desktopItem = makeDesktopItem { diff --git a/pkgs/development/tools/halfempty/default.nix b/pkgs/development/tools/halfempty/default.nix index 75628ded2d1..5b96d338f52 100644 --- a/pkgs/development/tools/halfempty/default.nix +++ b/pkgs/development/tools/halfempty/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "halfempty"; - version = "0.30"; + version = "0.40"; src = fetchFromGitHub { owner = "googleprojectzero"; repo = pname; rev = "v${version}"; - sha256 = "0838pw0ccjvlxmjygzrnppz1fx1a10vjzdgjbxgb4wgpqjr8v6vc"; + sha256 = "sha256-YGq6fneAMo2jCpLPrjzRJ0eeOsStKaK5L+lwQfqcfpY="; }; nativeBuildInputs = [ pkg-config util-linux ]; diff --git a/pkgs/development/tools/ocaml/dune/2.nix b/pkgs/development/tools/ocaml/dune/2.nix index 177fa96f5b9..8183e106aa7 100644 --- a/pkgs/development/tools/ocaml/dune/2.nix +++ b/pkgs/development/tools/ocaml/dune/2.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, ocaml, findlib, fetchpatch }: +{ stdenv, fetchurl, ocaml, findlib }: if stdenv.lib.versionOlder ocaml.version "4.08" then throw "dune is not available for OCaml ${ocaml.version}" @@ -6,25 +6,17 @@ else stdenv.mkDerivation rec { pname = "dune"; - version = "2.7.1"; + version = "2.8.0"; src = fetchurl { url = "https://github.com/ocaml/dune/releases/download/${version}/dune-${version}.tbz"; - sha256 = "0pcjf209gynjwipnpplaqyvyivnawqiwhvqnivhkybisicpqyln3"; + sha256 = "12yly2lp93ijhy7b72p6y2q3cr3yy3hk7rlmrh072py8a6d4s407"; }; buildInputs = [ ocaml findlib ]; buildFlags = "release"; - patches = [ - # Fix setup.ml configure path. Remove with the next release. - (fetchpatch { - url = "https://github.com/ocaml/dune/commit/8a3d7f2f2015b71384caa07226d1a89dba9d6c25.patch"; - sha256 = "0dw4q10030h9xcdlxw2vp7qm0hd2qpkb98rir5d55m9vn65w8j28"; - }) - ]; - dontAddPrefix = true; installFlags = [ "PREFIX=${placeholder "out"}" "LIBDIR=$(OCAMLFIND_DESTDIR)" ]; diff --git a/pkgs/development/tools/rust/rust-analyzer/default.nix b/pkgs/development/tools/rust/rust-analyzer/default.nix index a031d552253..8ff596d475c 100644 --- a/pkgs/development/tools/rust/rust-analyzer/default.nix +++ b/pkgs/development/tools/rust/rust-analyzer/default.nix @@ -2,10 +2,10 @@ { rust-analyzer-unwrapped = callPackage ./generic.nix rec { - rev = "2021-01-04"; + rev = "2021-01-18"; version = "unstable-${rev}"; - sha256 = "sha256-VRnmx5SfmdMIVQjixWBSaMioqFUlo9VOIKsPvC5t3t4="; - cargoSha256 = "sha256-X63FjFpfwjvQayw4X6Sqfyh4FHsc3flE3OtQpzqowjc="; + sha256 = "sha256-eFiZdFBJZuBfwH8tqZTayNaWiq8fWUzlzBRRvdPbmW8="; + cargoSha256 = "sha256-rRoo0TrXa03okJ8wktzVSAn8tRO1d9kcDprotZ1hZ6w="; }; rust-analyzer = callPackage ./wrapper.nix {} { diff --git a/pkgs/games/minecraft/default.nix b/pkgs/games/minecraft/default.nix index 462cbc48af6..1c700de7b43 100644 --- a/pkgs/games/minecraft/default.nix +++ b/pkgs/games/minecraft/default.nix @@ -88,11 +88,11 @@ in stdenv.mkDerivation rec { pname = "minecraft-launcher"; - version = "2.2.909"; + version = "2.2.1262"; src = fetchurl { url = "https://launcher.mojang.com/download/linux/x86_64/minecraft-launcher_${version}.tar.gz"; - sha256 = "15x2imr8c4m2bjfs9y1l34fpvixxdf09gqls4bqb4rdvj1vhdrh2"; + sha256 = "09fklcnqmpvwykbfwg4lgwl82khr2wimvgyz7ssficm802xkicnc"; }; icon = fetchurl { diff --git a/pkgs/misc/cups/drivers/carps-cups/default.nix b/pkgs/misc/cups/drivers/carps-cups/default.nix new file mode 100644 index 00000000000..32e92da1608 --- /dev/null +++ b/pkgs/misc/cups/drivers/carps-cups/default.nix @@ -0,0 +1,44 @@ +{ stdenv +, lib +, fetchFromGitHub +, cups +}: + +stdenv.mkDerivation { + pname = "carps-cups"; + version = "unstable-2018-03-05"; + + src = fetchFromGitHub { + owner = "ondrej-zary"; + repo = "carps-cups"; + rev = "18d80d1d6f473dd9132e4b6d8b5c592c74982f17"; + sha256 = "0mjj9hs5lqxi0qamgb4sxfz4fvf7ggi66bxd37bkz3fl0g9xff70"; + }; + + preBuild = '' + export CUPS_DATADIR="${cups}/share/cups" + ''; + + installPhase = '' + CUPSDIR="$out/lib/cups" + CUPSDATADIR="$out/share/cups" + + mkdir -p "$CUPSDIR/filter" "$CUPSDATADIR/drv" "$CUPSDATADIR/usb" + + install -s rastertocarps $CUPSDIR/filter + install -m 644 carps.drv $CUPSDATADIR/drv/ + install -m 644 carps.usb-quirks $CUPSDATADIR/usb/ + ''; + + buildInputs = [ cups ]; + + meta = with lib; { + description = "CUPS Linux drivers for Canon printers"; + homepage = "https://www.canon.com/"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ + ewok + ]; + }; +} + diff --git a/pkgs/misc/vim-plugins/generated.nix b/pkgs/misc/vim-plugins/generated.nix index b44d408dd14..8ebf6cf6a5d 100644 --- a/pkgs/misc/vim-plugins/generated.nix +++ b/pkgs/misc/vim-plugins/generated.nix @@ -461,12 +461,12 @@ let coc-explorer = buildVimPluginFrom2Nix { pname = "coc-explorer"; - version = "2021-01-16"; + version = "2021-01-18"; src = fetchFromGitHub { owner = "weirongxu"; repo = "coc-explorer"; - rev = "2dc88ca328de4e00b37586aaf532b2cd90b5c3a0"; - sha256 = "0zjryprw2qdshshw7f8dkk7jf515sq11gc1w0lvssimkqdi47zaj"; + rev = "272d783f338107426cf75fa48b6f0a30860a8ac4"; + sha256 = "07dyy8v0j07w6gi89p08l0vcc0ba6d3qnz4wpsfj4hzf6cgifsw4"; }; meta.homepage = "https://github.com/weirongxu/coc-explorer/"; }; @@ -521,12 +521,12 @@ let coc-nvim = buildVimPluginFrom2Nix { pname = "coc-nvim"; - version = "2021-01-15"; + version = "2021-01-18"; src = fetchFromGitHub { owner = "neoclide"; repo = "coc.nvim"; - rev = "a150d49a46ea85b4c78813e6ba0fcf9a2b0d86ea"; - sha256 = "067fhgvfnrvzw67hyag0fxv61m1fbl8160klgy5l0kjy7nx6hwiw"; + rev = "a9b682ad79cc4b7b836fc7e31f7d01ecd88d7c51"; + sha256 = "1gpz1d6cy4pmaqzgp5bq8dndpzq9qiwq0794vgi58hnk65sbjai9"; }; meta.homepage = "https://github.com/neoclide/coc.nvim/"; }; @@ -594,12 +594,12 @@ let completion-buffers = buildVimPluginFrom2Nix { pname = "completion-buffers"; - version = "2020-09-26"; + version = "2021-01-17"; src = fetchFromGitHub { owner = "steelsojka"; repo = "completion-buffers"; - rev = "441a58b77c04409e8ccb35fd4970598ae551462f"; - sha256 = "14q5n7h5kaqf71cfd9mlhwb0xsihm6d3kizrxhlfnzxk6zkn8p0s"; + rev = "c36871b2a44b59761387f4972c617b44dcec5e75"; + sha256 = "14rxmy3cjrl7lr4yvrk7nkhc5h8rlpj7xjixzgr0vmnbsl885kyh"; }; meta.homepage = "https://github.com/steelsojka/completion-buffers/"; }; @@ -690,12 +690,12 @@ let Coqtail = buildVimPluginFrom2Nix { pname = "Coqtail"; - version = "2021-01-15"; + version = "2021-01-18"; src = fetchFromGitHub { owner = "whonore"; repo = "Coqtail"; - rev = "50c34a24bb6638fdf8f604f75cd036ec5252864d"; - sha256 = "1b5cs4yznz8vcmba6vk67kpd6071cz1m5jbfjpvyinvld5ipnapn"; + rev = "c58071ff5ad86baad107f43737c64a18b574cd3a"; + sha256 = "1pbkvxcwzvyy47bfv1r1ldzcf0qqkbbx2bq4jl93di5bg7kl57qb"; }; meta.homepage = "https://github.com/whonore/Coqtail/"; }; @@ -894,12 +894,12 @@ let deol-nvim = buildVimPluginFrom2Nix { pname = "deol-nvim"; - version = "2021-01-14"; + version = "2021-01-19"; src = fetchFromGitHub { owner = "Shougo"; repo = "deol.nvim"; - rev = "f1bf4b1dc68d441936019f97a2f306327c52f5c4"; - sha256 = "0gd23blp723gybzp0g466kkf3rf9d0bd2zs76hadmw7w7992im2z"; + rev = "bd8d4d03d81d03db13d4b6eeb40c8a5c422c3ce6"; + sha256 = "19kk5mpisbil3jarl93sjq97jxb29sxbw5s2zsh1gih6dfp659d5"; }; meta.homepage = "https://github.com/Shougo/deol.nvim/"; }; @@ -1030,12 +1030,12 @@ let pname = "deoplete-lsp"; version = "2020-12-26"; src = fetchFromGitHub { - owner = "Shougo"; + owner = "deoplete-plugins"; repo = "deoplete-lsp"; rev = "760eb2f647a518144ca1dc1091cc449c0dbee71e"; sha256 = "0dcq79xqfb5qnjinwni0bi3vn2sfsri8wmc75wgvw2114vyf2k9a"; }; - meta.homepage = "https://github.com/Shougo/deoplete-lsp/"; + meta.homepage = "https://github.com/deoplete-plugins/deoplete-lsp/"; }; deoplete-notmuch = buildVimPluginFrom2Nix { @@ -1475,12 +1475,12 @@ let galaxyline-nvim = buildVimPluginFrom2Nix { pname = "galaxyline-nvim"; - version = "2020-12-14"; + version = "2021-01-17"; src = fetchFromGitHub { owner = "glepnir"; repo = "galaxyline.nvim"; - rev = "528bb65b00f9ef5081cb524638b3337c4e5f26b5"; - sha256 = "069ksz4nfhlr5zlkpawh1yak4yk3vc2cd9mgy5f0r6in3wh0iypc"; + rev = "64d6b8e31459057ba4f9b03a977fce0d2cc3d748"; + sha256 = "1w5cggvxvmnm3zparnsgb3iz1pkw7d8bwvflcxaxg4pilgsniqsa"; }; meta.homepage = "https://github.com/glepnir/galaxyline.nvim/"; }; @@ -1557,6 +1557,18 @@ let meta.homepage = "https://github.com/vim-scripts/gitignore.vim/"; }; + gitsigns-nvim = buildVimPluginFrom2Nix { + pname = "gitsigns-nvim"; + version = "2021-19-01"; + src = fetchFromGitHub { + owner = "lewis6991"; + repo = "gitsigns.nvim"; + rev = "4440a0f716b76132f365f5ef5c7f7cdad4b7c98c"; + sha256 = "19hyqga7xj3dc7p629gih80c72a04z1my8qav37myz0jq3bllg2v"; + }; + meta.homepage = "https://github.com/lewis6991/gitsigns.nvim"; + }; + gitv = buildVimPluginFrom2Nix { pname = "gitv"; version = "2019-08-22"; @@ -1631,12 +1643,12 @@ let gruvbox-community = buildVimPluginFrom2Nix { pname = "gruvbox-community"; - version = "2020-11-13"; + version = "2021-01-17"; src = fetchFromGitHub { owner = "gruvbox-community"; repo = "gruvbox"; - rev = "2636a0344d3fbacc62d9d914a456fcfdba8ca4cb"; - sha256 = "1w9j97g3dzadwnqyal1zw12ia61b512hz8mhywqy5xq6v9f6zkw6"; + rev = "c73e63203f76ab8e39b2b05369c0a8877a981435"; + sha256 = "0lwvv5chxq0fb9k1y73g5zr8v54xghlqnq64k0vx2v2ravp3313r"; }; meta.homepage = "https://github.com/gruvbox-community/gruvbox/"; }; @@ -1667,12 +1679,12 @@ let haskell-vim = buildVimPluginFrom2Nix { pname = "haskell-vim"; - version = "2018-05-22"; + version = "2021-01-19"; src = fetchFromGitHub { owner = "neovimhaskell"; repo = "haskell-vim"; - rev = "b1ac46807835423c4a4dd063df6d5b613d89c731"; - sha256 = "1vqj3r2v8skffywwgv4093ww7fm540437j5qz7n8q8787bs5w0br"; + rev = "f35d02204b4813d1dbe8b0e98cc39701a4b8e15e"; + sha256 = "1q3hf0vr5gpmymmvm208sl0r8nb69m7f3bdrkqrp7fwc2v1ylnz0"; }; meta.homepage = "https://github.com/neovimhaskell/haskell-vim/"; }; @@ -2688,24 +2700,24 @@ let nerdcommenter = buildVimPluginFrom2Nix { pname = "nerdcommenter"; - version = "2021-01-12"; + version = "2021-01-19"; src = fetchFromGitHub { owner = "preservim"; repo = "nerdcommenter"; - rev = "7d2fb974a36b3c7773a90a749fcb92a40669e444"; - sha256 = "1vq4wkywidmjr2g8z9js5173b15lr6zawxb0z12fmvaiwxpbli4z"; + rev = "7be3292b8de5127a386bf20f1198704e90cf24e9"; + sha256 = "0bz6q80bbq1pl45ch37rcnnakljv6877qasqvdzb09w3jn6hz2vl"; }; meta.homepage = "https://github.com/preservim/nerdcommenter/"; }; nerdtree = buildVimPluginFrom2Nix { pname = "nerdtree"; - version = "2020-12-20"; + version = "2021-01-19"; src = fetchFromGitHub { owner = "preservim"; repo = "nerdtree"; - rev = "aaa946fb6bd79b9af86fbaf4b6b63fd81d839bd9"; - sha256 = "1fhwfwqlvz0pm5qdpjbmjx4dqlnchbp170jw63dc5fxin90h4ivh"; + rev = "7099f638edd3eda5cd5687b4e13d342bb7f9949d"; + sha256 = "1109acmcxwr6kfrw6ganpqwwarsf5l9vd3vxmmafz3c86ha6kkvw"; }; meta.homepage = "https://github.com/preservim/nerdtree/"; }; @@ -2878,14 +2890,26 @@ let meta.homepage = "https://github.com/neovimhaskell/nvim-hs.vim/"; }; + nvim-jdtls = buildVimPluginFrom2Nix { + pname = "nvim-jdtls"; + version = "2021-01-19"; + src = fetchFromGitHub { + owner = "mfussenegger"; + repo = "nvim-jdtls"; + rev = "357d0b405235e3dfb0b15450f33ad6d10cbf2122"; + sha256 = "1gd4kjxpb73d6ixxgg4qyzj5alca590whx1i905j3m8j4sjb7vib"; + }; + meta.homepage = "https://github.com/mfussenegger/nvim-jdtls/"; + }; + nvim-lspconfig = buildVimPluginFrom2Nix { pname = "nvim-lspconfig"; - version = "2021-01-15"; + version = "2021-01-18"; src = fetchFromGitHub { owner = "neovim"; repo = "nvim-lspconfig"; - rev = "87900ffcccd47bb6a09483ccf0d6840dc1d0d0d6"; - sha256 = "18qj8ql48fnncghm0p6wnbjggmkvs9gdf6lgffhdqinlrnrja9ry"; + rev = "1f88798c0efe9331e83243ce05605fbac0433e9d"; + sha256 = "042bgy356v7yy4zm76mngp55n53rnqrlclpm4lafjvl788fny7k4"; }; meta.homepage = "https://github.com/neovim/nvim-lspconfig/"; }; @@ -2928,12 +2952,12 @@ let nvim-tree-lua = buildVimPluginFrom2Nix { pname = "nvim-tree-lua"; - version = "2021-01-15"; + version = "2021-01-17"; src = fetchFromGitHub { owner = "kyazdani42"; repo = "nvim-tree.lua"; - rev = "787cef2a1d4ccdd1058cd1486dfea509fab1d291"; - sha256 = "1n1cvrfz2vfx5rjslx4brv3rfqjmxymy9yxyvzhi5p3vwn0phr6f"; + rev = "bf59dd4a86f13eeb32ac04d7d1fadadd48662647"; + sha256 = "19kjxdspiylp5ww2h1xnhzd57fhlpzdbkyglg79a86xlsf1r1c7x"; }; meta.homepage = "https://github.com/kyazdani42/nvim-tree.lua/"; }; @@ -3168,24 +3192,24 @@ let playground = buildVimPluginFrom2Nix { pname = "playground"; - version = "2020-12-17"; + version = "2021-01-19"; src = fetchFromGitHub { owner = "nvim-treesitter"; repo = "playground"; - rev = "0cba1b99cd6cfcd0379e57c317ea1df0c1c82b3a"; - sha256 = "1xs2g7inlmcjchzzmsa4qh1mf61xz6gdn96mzfkr8fs65g78861b"; + rev = "4a11cf237a6e505feb747f6097d48bf0195888b3"; + sha256 = "0d9xm63spsaa580n2nyqiiq2p81ilmm0dwzqg6jhw9c020r5rzg1"; }; meta.homepage = "https://github.com/nvim-treesitter/playground/"; }; plenary-nvim = buildVimPluginFrom2Nix { pname = "plenary-nvim"; - version = "2021-01-11"; + version = "2021-01-18"; src = fetchFromGitHub { owner = "nvim-lua"; repo = "plenary.nvim"; - rev = "e9b81e2bb98e00e9f6ca2b6a698cc8452fe2943e"; - sha256 = "00j5gnx5jgrx7qmbxhrjsrdzp9krc5c7zij9a25jhz3l2j98xpdg"; + rev = "fecbbd23e425db8cc60b85d8298f02935d69940d"; + sha256 = "0q5hsg2rlzhldr221krvxppspdl04rj5qbiq3nk1a25nf5r24d0z"; }; meta.homepage = "https://github.com/nvim-lua/plenary.nvim/"; }; @@ -3876,14 +3900,26 @@ let meta.homepage = "https://github.com/tomtom/tcomment_vim/"; }; + telescope-fzf-writer-nvim = buildVimPluginFrom2Nix { + pname = "telescope-fzf-writer-nvim"; + version = "2021-01-10"; + src = fetchFromGitHub { + owner = "nvim-telescope"; + repo = "telescope-fzf-writer.nvim"; + rev = "9535863f519be3d5e57fd50916f96594241bfe16"; + sha256 = "0jmkzjqlcz47hzp44407xwkmirgprzkwrz6x8ax771gpk8cghfrx"; + }; + meta.homepage = "https://github.com/nvim-telescope/telescope-fzf-writer.nvim/"; + }; + telescope-nvim = buildVimPluginFrom2Nix { pname = "telescope-nvim"; - version = "2021-01-17"; + version = "2021-01-18"; src = fetchFromGitHub { owner = "nvim-telescope"; repo = "telescope.nvim"; - rev = "c2039ca78d261392b0ab7bef85b3c5f1c8f507b9"; - sha256 = "0ca93m1nl14js4wgbqhgc786mr9is0zkiwkzp4fv5ny03nhd025w"; + rev = "7d4d3462e990e2af489eb285aa7041d0b787c560"; + sha256 = "013m8k7s5d2ix83q1d7x6nqi7s9vn5g221wnbngd41ywbdn61a9a"; }; meta.homepage = "https://github.com/nvim-telescope/telescope.nvim/"; }; @@ -4611,12 +4647,12 @@ let vim-clap = buildVimPluginFrom2Nix { pname = "vim-clap"; - version = "2021-01-17"; + version = "2021-01-19"; src = fetchFromGitHub { owner = "liuchengxu"; repo = "vim-clap"; - rev = "a9d1ccd9a3e9807d600abccab706634594ed0d2e"; - sha256 = "0smmgbsrqm757hgijq76y4yra0b68qhnxnyswfs37vrarcrqkfq3"; + rev = "7442976f0c5dea79f8cfb342e7abb25cea9a8daa"; + sha256 = "1gzc800i4zsxav4h7smqgapnrallarbgrq9arfhydrq41hy2h6wr"; }; meta.homepage = "https://github.com/liuchengxu/vim-clap/"; }; @@ -5079,48 +5115,48 @@ let vim-erlang-compiler = buildVimPluginFrom2Nix { pname = "vim-erlang-compiler"; - version = "2020-11-16"; + version = "2021-01-16"; src = fetchFromGitHub { owner = "vim-erlang"; repo = "vim-erlang-compiler"; - rev = "17e47d28141c961e567b39d8d9956cbdb6e720d0"; - sha256 = "1j27zk2gfig3zv7cg7dwg5x0c3nsik5blcci8a16wq050pi8bsr1"; + rev = "a99e75f792650c8dae86d9a44c7af2411ea2ead7"; + sha256 = "13400kjf90sxlpx1pqs379ihdn65i3gpck3dwkjnf1xiv1p9rzvz"; }; meta.homepage = "https://github.com/vim-erlang/vim-erlang-compiler/"; }; vim-erlang-omnicomplete = buildVimPluginFrom2Nix { pname = "vim-erlang-omnicomplete"; - version = "2020-08-29"; + version = "2021-01-16"; src = fetchFromGitHub { owner = "vim-erlang"; repo = "vim-erlang-omnicomplete"; - rev = "2f980dd8f1861e00ea14dcd5ecc370e71af695fb"; - sha256 = "1i3c7ybahmb4az2njzvfnvx39bqiyqhf43n32rhpc3xg05y3bk7d"; + rev = "924a50ed0ad93141063d0f27c9f62b1bea991baf"; + sha256 = "0zh730wsb0n9nk1x5qdbx78zgzhamd2a6fa5gxl4milvr5ddvdy9"; }; meta.homepage = "https://github.com/vim-erlang/vim-erlang-omnicomplete/"; }; vim-erlang-runtime = buildVimPluginFrom2Nix { pname = "vim-erlang-runtime"; - version = "2020-11-22"; + version = "2021-01-08"; src = fetchFromGitHub { owner = "vim-erlang"; repo = "vim-erlang-runtime"; - rev = "8a8ec7cb54d52be5fc5dce2a028888c2a2f50e35"; - sha256 = "13qfyl9v0a82hn574x6h7rq9kl3rhg6ivlpj69n2jn0lf33ij8qq"; + rev = "47c643f51e4480541fc81e352ec5b2a361544d0b"; + sha256 = "0xlxkdqjq8fp9fpkhqv5nd2ipiq8nw1bdzd7hqibizwcdsisf91s"; }; meta.homepage = "https://github.com/vim-erlang/vim-erlang-runtime/"; }; vim-erlang-tags = buildVimPluginFrom2Nix { pname = "vim-erlang-tags"; - version = "2020-10-16"; + version = "2021-01-09"; src = fetchFromGitHub { owner = "vim-erlang"; repo = "vim-erlang-tags"; - rev = "a5bc6a90a166073d74e5103f40735740ae40a3cb"; - sha256 = "02d3y2296nh8qv0kgx119c1niim6ci2bahi7q3k0jsl2f86fl7dy"; + rev = "22f7fbf1e4b669a305d93cedd85baf63253f3b78"; + sha256 = "1dvk0dim8vam8xsqlz9pjky22mhqi9ca5criyz7zvgj46hqj1wy3"; }; meta.homepage = "https://github.com/vim-erlang/vim-erlang-tags/"; }; @@ -5415,12 +5451,12 @@ let vim-go = buildVimPluginFrom2Nix { pname = "vim-go"; - version = "2021-01-10"; + version = "2021-01-17"; src = fetchFromGitHub { owner = "fatih"; repo = "vim-go"; - rev = "d68fc4d71d7c254c8fbd666a470b2d92c8a6d610"; - sha256 = "04py4c52hlb8adkgywkn4hnibrsiczvmmf8b82wfr2sa1k5b9hbx"; + rev = "3a8e3f6ded412b25fb3c13eecf76d5809fa175e8"; + sha256 = "0vj6wcvx87kkykmlxjdwnbnfiq8bbqjnki8x3qaiv4gx028m778d"; }; meta.homepage = "https://github.com/fatih/vim-go/"; }; @@ -6041,24 +6077,24 @@ let vim-lsc = buildVimPluginFrom2Nix { pname = "vim-lsc"; - version = "2021-01-16"; + version = "2021-01-19"; src = fetchFromGitHub { owner = "natebosch"; repo = "vim-lsc"; - rev = "104813da45c5bb620b9c6ce48cb918872f968dab"; - sha256 = "1x06zb9xa9v9ycg3vq1il45ylm7p2d3vflv347hpssmwcjzd6xyv"; + rev = "3012f39ce120ffdc5b89a85f074fc66d6f4905bf"; + sha256 = "157jm2wwvp4dp7rzilhrb4040paldjx7qkp116v4q5kj699w42i7"; }; meta.homepage = "https://github.com/natebosch/vim-lsc/"; }; vim-lsp = buildVimPluginFrom2Nix { pname = "vim-lsp"; - version = "2021-01-16"; + version = "2021-01-18"; src = fetchFromGitHub { owner = "prabirshrestha"; repo = "vim-lsp"; - rev = "90d61f11149ffb380eabcb66f66a160f4fc31a5d"; - sha256 = "1gr9y12fjw89ym6kdzjki12j21bhwy4ch4gpsy4gzb04xhjqllgf"; + rev = "7380d31c4f49d76ce3895c386e2a7a40b2b2df08"; + sha256 = "082il6bk7rnqvxqqy1070y3182kqk34i1bgcczj4k43llnghskx9"; }; meta.homepage = "https://github.com/prabirshrestha/vim-lsp/"; }; @@ -7110,12 +7146,12 @@ let vim-smoothie = buildVimPluginFrom2Nix { pname = "vim-smoothie"; - version = "2020-12-25"; + version = "2021-01-17"; src = fetchFromGitHub { owner = "psliwka"; repo = "vim-smoothie"; - rev = "1f5ee84b789384a273b3e27b6a5a7e2f54dbc30e"; - sha256 = "0977qb31hgss38g01m7ikx3qdqial3c7zw9cv72k7rnmcgy761wz"; + rev = "f83a157552a3bf393a7c034df1d21e3555123a4c"; + sha256 = "090rl4mfww5rmv04v25f58jfv3yx23bwi0pijkwxr442yhbg3rg2"; }; meta.homepage = "https://github.com/psliwka/vim-smoothie/"; }; @@ -7940,12 +7976,12 @@ let vimtex = buildVimPluginFrom2Nix { pname = "vimtex"; - version = "2021-01-16"; + version = "2021-01-19"; src = fetchFromGitHub { owner = "lervag"; repo = "vimtex"; - rev = "7c7d6020f848864e091ac437e55f72139f9a59b4"; - sha256 = "10fl44xpjfsrfqr3sz2mbxhigmkz5ivky96smxp4yp9av0zvvcm4"; + rev = "5d3d96dcdf0f87273978c482e9c1b39201f4516f"; + sha256 = "04rn9w17mmf2ka4wqdl8x4nzwg5imnb0q1mnsm1hx8bvlr8zs0h6"; }; meta.homepage = "https://github.com/lervag/vimtex/"; }; @@ -8170,12 +8206,12 @@ let zig-vim = buildVimPluginFrom2Nix { pname = "zig-vim"; - version = "2020-12-31"; + version = "2021-01-19"; src = fetchFromGitHub { owner = "ziglang"; repo = "zig.vim"; - rev = "ef331a76f0d660a67504e1cd0d981c345db3607f"; - sha256 = "0976539h1zsxrnihp5x5lvra12iwvjbbrl5nw6f914yh09jqbgjf"; + rev = "17170fd1c31f00132a91fb1598d0f3df5927e28d"; + sha256 = "0k8s5via1frpgdb94kgsk29g7h6fjq3cazyfa8zww7vra418acsh"; }; meta.homepage = "https://github.com/ziglang/zig.vim/"; }; diff --git a/pkgs/misc/vim-plugins/overrides.nix b/pkgs/misc/vim-plugins/overrides.nix index 9640869ad1d..0debd6ba6fc 100644 --- a/pkgs/misc/vim-plugins/overrides.nix +++ b/pkgs/misc/vim-plugins/overrides.nix @@ -654,7 +654,7 @@ self: super: { libiconv ]; - cargoSha256 = "6tgSdIC9ThKvyiX1Unihwozhez6+HsQiqebugzNrKVc="; + cargoSha256 = "mq5q+cIWXDMeoZfumX1benulrP/AWKZnd8aI0OzY55c="; }; in '' ln -s ${maple-bin}/bin/maple $target/bin/maple diff --git a/pkgs/misc/vim-plugins/vim-plugin-names b/pkgs/misc/vim-plugins/vim-plugin-names index d35f647126c..82695aaa30d 100644 --- a/pkgs/misc/vim-plugins/vim-plugin-names +++ b/pkgs/misc/vim-plugins/vim-plugin-names @@ -79,6 +79,7 @@ deoplete-plugins/deoplete-clang deoplete-plugins/deoplete-dictionary deoplete-plugins/deoplete-go deoplete-plugins/deoplete-jedi +deoplete-plugins/deoplete-lsp deoplete-plugins/deoplete-zsh derekelkins/agda-vim derekwyatt/vim-scala @@ -132,7 +133,7 @@ gentoo/gentoo-syntax GEverding/vim-hocon gfanto/fzf-lsp.nvim@main gibiansky/vim-textobj-haskell -glepnir/galaxyline.nvim +glepnir/galaxyline.nvim@main glts/vim-textobj-comment godlygeek/csapprox godlygeek/tabular @@ -274,6 +275,7 @@ leanprover/lean.vim ledger/vim-ledger lepture/vim-jinja lervag/vimtex +lewis6991/gitsigns.nvim lfilho/cosco.vim lifepillar/vim-mucomplete lighttiger2505/deoplete-vim-lsp @@ -332,6 +334,7 @@ mengelbrecht/lightline-bufferline metakirby5/codi.vim mfukar/robotframework-vim mfussenegger/nvim-dap +mfussenegger/nvim-jdtls mg979/vim-visual-multi mhartington/oceanic-next mhinz/vim-crates @@ -403,6 +406,7 @@ nvim-lua/lsp-status.nvim nvim-lua/lsp_extensions.nvim nvim-lua/plenary.nvim nvim-lua/popup.nvim +nvim-telescope/telescope-fzf-writer.nvim nvim-telescope/telescope.nvim nvim-treesitter/completion-treesitter nvim-treesitter/nvim-treesitter @@ -494,7 +498,6 @@ Shougo/context_filetype.vim Shougo/defx.nvim Shougo/denite.nvim Shougo/deol.nvim -Shougo/deoplete-lsp Shougo/deoplete.nvim Shougo/echodoc.vim Shougo/neco-syntax diff --git a/pkgs/os-specific/linux/dstat/default.nix b/pkgs/os-specific/linux/dstat/default.nix index 7d0b87609b3..76abeff42db 100644 --- a/pkgs/os-specific/linux/dstat/default.nix +++ b/pkgs/os-specific/linux/dstat/default.nix @@ -1,21 +1,36 @@ -{ lib, stdenv, fetchurl, python2Packages }: +{ lib, fetchFromGitHub, fetchpatch, python3Packages }: -python2Packages.buildPythonApplication rec { +python3Packages.buildPythonApplication rec { pname = "dstat"; format = "other"; - version = "0.7.3"; + version = "0.7.4"; - src = fetchurl { - url = "https://github.com/dagwieers/dstat/archive/${version}.tar.gz"; - sha256 = "16286z3y2lc9nsq8njzjkv6k2vyxrj9xiixj1k3gnsbvhlhkirj6"; + src = fetchFromGitHub { + owner = "dstat-real"; + repo = "dstat"; + rev = "v${version}"; + sha256 = "1qnmkhqmjd1m3if05jj29dvr5hn6kayq9bkkkh881w472c0zhp8v"; }; - propagatedBuildInputs = with python2Packages; [ python-wifi ]; + propagatedBuildInputs = with python3Packages; [ six ]; - patches = [ ./fix_pluginpath.patch ]; + patches = [ + ./fix_pluginpath.patch + # this fixes another bug with python3 + (fetchpatch { + url = https://github.com/efexgee/dstat/commit/220a785321b13b6df92a536080aca6ef1cb644ad.patch ; + sha256 = "08kcz3yxvl35m55y7g1pr73x3bjcqnv0qlswxqyq8cqxg9zd64cn"; + }) + ]; makeFlags = [ "prefix=$(out)" ]; + # remove deprecation warnings + preFixup = '' + sed -i "s/import collections/import collections.abc/g" $out/share/dstat/dstat.py $out/bin/dstat + sed -i "s/collections.Sequence/collections.abc.Sequence/g" "$out"/bin/dstat + ''; + meta = with lib; { homepage = "http://dag.wieers.com/home-made/dstat/"; description = "Versatile resource statistics tool"; diff --git a/pkgs/os-specific/linux/pam/default.nix b/pkgs/os-specific/linux/pam/default.nix index 45f901b42f0..42b7ea91092 100644 --- a/pkgs/os-specific/linux/pam/default.nix +++ b/pkgs/os-specific/linux/pam/default.nix @@ -20,9 +20,6 @@ stdenv.mkDerivation rec { url = "https://git.alpinelinux.org/aports/plain/main/linux-pam/libpam-fix-build-with-eglibc-2.16.patch?id=05a62bda8ec255d7049a2bd4cf0fdc4b32bdb2cc"; sha256 = "1ib6shhvgzinjsc603k2x1lxh9dic6qq449fnk110gc359m23j81"; }) - # From adelie's package repo, using local copy since it seems to be currently offline. - # (we previously used similar patch from void, but stopped working with update to 1.3.1) - ./musl-fix-pam_exec.patch ]; outputs = [ "out" "doc" "man" /* "modules" */ ]; diff --git a/pkgs/os-specific/linux/pam/musl-fix-pam_exec.patch b/pkgs/os-specific/linux/pam/musl-fix-pam_exec.patch deleted file mode 100644 index 194e47b9e5b..00000000000 --- a/pkgs/os-specific/linux/pam/musl-fix-pam_exec.patch +++ /dev/null @@ -1,33 +0,0 @@ ---- ./modules/pam_exec/pam_exec.c.orig -+++ ./modules/pam_exec/pam_exec.c -@@ -103,11 +103,14 @@ - int optargc; - const char *logfile = NULL; - const char *authtok = NULL; -+ char authtok_buf[PAM_MAX_RESP_SIZE+1]; -+ - pid_t pid; - int fds[2]; - int stdout_fds[2]; - FILE *stdout_file = NULL; - -+ memset(authtok_buf, 0, sizeof(authtok_buf)); - if (argc < 1) { - pam_syslog (pamh, LOG_ERR, - "This module needs at least one argument"); -@@ -180,12 +183,12 @@ - if (resp) - { - pam_set_item (pamh, PAM_AUTHTOK, resp); -- authtok = strndupa (resp, PAM_MAX_RESP_SIZE); -+ authtok = strncpy(authtok_buf, resp, sizeof(authtok_buf)); - _pam_drop (resp); - } - } - else -- authtok = strndupa (void_pass, PAM_MAX_RESP_SIZE); -+ authtok = strncpy(authtok_buf, void_pass, sizeof(authtok_buf)); - - if (pipe(fds) != 0) - { - diff --git a/pkgs/servers/home-assistant/component-packages.nix b/pkgs/servers/home-assistant/component-packages.nix index d057d1fbc71..a822cb4a623 100644 --- a/pkgs/servers/home-assistant/component-packages.nix +++ b/pkgs/servers/home-assistant/component-packages.nix @@ -164,7 +164,7 @@ "device_automation" = ps: with ps; [ ]; "device_sun_light_trigger" = ps: with ps; [ aiohttp-cors pillow ]; "device_tracker" = ps: with ps; [ ]; - "devolo_home_control" = ps: with ps; [ aiohttp-cors zeroconf ]; # missing inputs: devolo-home-control-api + "devolo_home_control" = ps: with ps; [ aiohttp-cors devolo-home-control-api zeroconf ]; "dexcom" = ps: with ps; [ pydexcom ]; "dht" = ps: with ps; [ ]; # missing inputs: Adafruit-DHT "dialogflow" = ps: with ps; [ aiohttp-cors ]; @@ -253,14 +253,14 @@ "filter" = ps: with ps; [ aiohttp-cors sqlalchemy ]; "fints" = ps: with ps; [ fints ]; "fireservicerota" = ps: with ps; [ ]; # missing inputs: pyfireservicerota - "firmata" = ps: with ps; [ ]; # missing inputs: pymata-express + "firmata" = ps: with ps; [ pymata-express ]; "fitbit" = ps: with ps; [ aiohttp-cors fitbit ]; "fixer" = ps: with ps; [ fixerio ]; "fleetgo" = ps: with ps; [ ]; # missing inputs: ritassist "flexit" = ps: with ps; [ pymodbus ]; # missing inputs: pyflexit "flic" = ps: with ps; [ ]; # missing inputs: pyflic-homeassistant "flick_electric" = ps: with ps; [ ]; # missing inputs: PyFlick - "flo" = ps: with ps; [ ]; # missing inputs: aioflo + "flo" = ps: with ps; [ aioflo ]; "flock" = ps: with ps; [ ]; "flume" = ps: with ps; [ ]; # missing inputs: pyflume "flunearyou" = ps: with ps; [ ]; # missing inputs: pyflunearyou diff --git a/pkgs/servers/http/envoy/0001-quiche-update-QUICHE-tar-13949.patch b/pkgs/servers/http/envoy/0001-quiche-update-QUICHE-tar-13949.patch new file mode 100644 index 00000000000..4bf0a0d0e95 --- /dev/null +++ b/pkgs/servers/http/envoy/0001-quiche-update-QUICHE-tar-13949.patch @@ -0,0 +1,2980 @@ +From 97d7c456e03d4a11157fac17c7b8cbcee1d8a657 Mon Sep 17 00:00:00 2001 +From: danzh +Date: Mon, 16 Nov 2020 14:27:13 -0500 +Subject: [PATCH] quiche: update QUICHE tar (#13949) + +Signed-off-by: Dan Zhang +--- + bazel/envoy_internal.bzl | 2 + + bazel/external/quiche.BUILD | 85 +-- + bazel/repository_locations.bzl | 6 +- + source/extensions/quic_listeners/quiche/BUILD | 1 + + .../quiche/active_quic_listener.cc | 2 +- + .../quiche/envoy_quic_client_connection.cc | 2 +- + .../quiche/envoy_quic_client_stream.cc | 1 + + .../quiche/envoy_quic_connection.cc | 6 +- + .../quiche/envoy_quic_connection.h | 1 + + .../quiche/envoy_quic_dispatcher.cc | 6 +- + .../quiche/envoy_quic_dispatcher.h | 2 +- + .../quiche/envoy_quic_proof_source.cc | 2 +- + .../quiche/envoy_quic_proof_source.h | 2 +- + .../quiche/envoy_quic_proof_source_base.cc | 7 +- + .../quiche/envoy_quic_proof_source_base.h | 6 +- + .../quiche/envoy_quic_proof_verifier_base.cc | 4 +- + .../quiche/envoy_quic_server_connection.cc | 10 +- + .../quiche/envoy_quic_server_connection.h | 1 + + .../quic_listeners/quiche/platform/BUILD | 42 +- + .../quiche/platform/flags_impl.cc | 108 +++- + .../quiche/platform/flags_impl.h | 46 +- + .../quiche/platform/flags_list.h | 502 ------------------ + .../quiche/platform/http2_flags_impl.h | 4 +- + .../quiche/platform/quic_aligned_impl.h | 18 - + .../quiche/platform/quic_cert_utils_impl.cc | 38 +- + .../quiche/platform/quic_cert_utils_impl.h | 9 +- + .../quiche/platform/quic_fallthrough_impl.h | 11 - + .../quiche/platform/quic_file_utils_impl.cc | 4 +- + .../quiche/platform/quic_file_utils_impl.h | 6 +- + .../quiche/platform/quic_flags_impl.h | 6 +- + .../platform/quic_hostname_utils_impl.cc | 6 +- + .../platform/quic_hostname_utils_impl.h | 8 +- + .../quiche/platform/quic_macros_impl.h | 13 - + .../platform/quic_mem_slice_span_impl.cc | 3 +- + .../platform/quic_mem_slice_span_impl.h | 9 +- + ..._ptr_util_impl.h => quic_testvalue_impl.h} | 11 +- + .../platform/quic_udp_socket_platform_impl.h | 3 + + .../quiche/platform/quiche_arraysize_impl.h | 11 - + .../quiche/platform/quiche_optional_impl.h | 17 - + .../quiche/platform/quiche_text_utils_impl.h | 63 +-- + .../quiche/platform/quiche_time_utils_impl.cc | 4 +- + .../quiche/platform/quiche_time_utils_impl.h | 4 +- + .../platform/spdy_endianness_util_impl.h | 29 - + .../quiche/platform/spdy_flags_impl.h | 4 +- + .../quiche/platform/spdy_string_utils_impl.h | 2 +- + .../spdy_server_push_utils_for_envoy.cc | 10 +- + .../quiche/envoy_quic_client_session_test.cc | 2 +- + .../quiche/envoy_quic_client_stream_test.cc | 44 +- + .../quiche/envoy_quic_proof_source_test.cc | 6 +- + .../quiche/envoy_quic_proof_verifier_test.cc | 8 +- + .../quiche/envoy_quic_server_session_test.cc | 3 +- + .../quiche/envoy_quic_server_stream_test.cc | 53 +- + .../quic_listeners/quiche/platform/BUILD | 22 - + .../quiche/platform/http2_platform_test.cc | 22 +- + .../quiche/platform/quic_platform_test.cc | 61 +-- + .../quiche/platform/quic_test_output_impl.cc | 15 +- + .../quiche/platform/quic_test_output_impl.h | 12 +- + .../quiche/platform/quiche_platform_test.cc | 39 -- + .../quiche/platform/spdy_platform_test.cc | 20 +- + .../quic_listeners/quiche/test_proof_source.h | 2 +- + .../quic_listeners/quiche/test_utils.h | 4 +- + 61 files changed, 396 insertions(+), 1054 deletions(-) + delete mode 100644 source/extensions/quic_listeners/quiche/platform/flags_list.h + delete mode 100644 source/extensions/quic_listeners/quiche/platform/quic_aligned_impl.h + delete mode 100644 source/extensions/quic_listeners/quiche/platform/quic_fallthrough_impl.h + delete mode 100644 source/extensions/quic_listeners/quiche/platform/quic_macros_impl.h + rename source/extensions/quic_listeners/quiche/platform/{quiche_ptr_util_impl.h => quic_testvalue_impl.h} (52%) + delete mode 100644 source/extensions/quic_listeners/quiche/platform/quiche_arraysize_impl.h + delete mode 100644 source/extensions/quic_listeners/quiche/platform/quiche_optional_impl.h + delete mode 100644 source/extensions/quic_listeners/quiche/platform/spdy_endianness_util_impl.h + delete mode 100644 test/extensions/quic_listeners/quiche/platform/quiche_platform_test.cc + +diff --git a/bazel/envoy_internal.bzl b/bazel/envoy_internal.bzl +index 5ad86609a..3f9ddfd23 100644 +--- a/bazel/envoy_internal.bzl ++++ b/bazel/envoy_internal.bzl +@@ -54,6 +54,8 @@ def envoy_copts(repository, test = False): + }) + select({ + repository + "//bazel:clang_build": ["-fno-limit-debug-info", "-Wgnu-conditional-omitted-operand", "-Wc++2a-extensions", "-Wrange-loop-analysis"], + repository + "//bazel:gcc_build": ["-Wno-maybe-uninitialized"], ++ # TODO: Replace with /Zc:preprocessor for cl.exe versions >= 16.5 ++ repository + "//bazel:windows_x86_64": ["-experimental:preprocessor", "-Wv:19.4"], + "//conditions:default": [], + }) + select({ + repository + "//bazel:no_debug_info": ["-g0"], +diff --git a/bazel/external/quiche.BUILD b/bazel/external/quiche.BUILD +index 7541909aa..b6b208fc5 100644 +--- a/bazel/external/quiche.BUILD ++++ b/bazel/external/quiche.BUILD +@@ -57,16 +57,12 @@ quiche_common_copts = [ + "-Wno-unused-function", + # quic_inlined_frame.h uses offsetof() to optimize memory usage in frames. + "-Wno-invalid-offsetof", +- "-Wno-range-loop-analysis", + ] + + quiche_copts = select({ + # Ignore unguarded #pragma GCC statements in QUICHE sources + "@envoy//bazel:windows_x86_64": ["-wd4068"], + # Remove these after upstream fix. +- "@envoy//bazel:gcc_build": [ +- "-Wno-sign-compare", +- ] + quiche_common_copts, + "//conditions:default": quiche_common_copts, + }) + +@@ -737,7 +733,6 @@ envoy_cc_library( + hdrs = [ + "quiche/spdy/platform/api/spdy_bug_tracker.h", + "quiche/spdy/platform/api/spdy_containers.h", +- "quiche/spdy/platform/api/spdy_endianness_util.h", + "quiche/spdy/platform/api/spdy_estimate_memory_usage.h", + "quiche/spdy/platform/api/spdy_flags.h", + "quiche/spdy/platform/api/spdy_logging.h", +@@ -935,6 +930,7 @@ envoy_cc_library( + copts = quiche_copts, + repository = "@envoy", + deps = [ ++ ":http2_hpack_huffman_hpack_huffman_encoder_lib", + ":spdy_core_protocol_lib", + ":spdy_platform", + ], +@@ -1049,19 +1045,16 @@ envoy_cc_library( + envoy_cc_library( + name = "quic_platform_base", + hdrs = [ +- "quiche/quic/platform/api/quic_aligned.h", + "quiche/quic/platform/api/quic_bug_tracker.h", + "quiche/quic/platform/api/quic_client_stats.h", + "quiche/quic/platform/api/quic_containers.h", + "quiche/quic/platform/api/quic_error_code_wrappers.h", + "quiche/quic/platform/api/quic_estimate_memory_usage.h", + "quiche/quic/platform/api/quic_exported_stats.h", +- "quiche/quic/platform/api/quic_fallthrough.h", + "quiche/quic/platform/api/quic_flag_utils.h", + "quiche/quic/platform/api/quic_flags.h", + "quiche/quic/platform/api/quic_iovec.h", + "quiche/quic/platform/api/quic_logging.h", +- "quiche/quic/platform/api/quic_macros.h", + "quiche/quic/platform/api/quic_map_util.h", + "quiche/quic/platform/api/quic_mem_slice.h", + "quiche/quic/platform/api/quic_prefetch.h", +@@ -1072,6 +1065,7 @@ envoy_cc_library( + "quiche/quic/platform/api/quic_stream_buffer_allocator.h", + "quiche/quic/platform/api/quic_string_utils.h", + "quiche/quic/platform/api/quic_uint128.h", ++ "quiche/quic/platform/api/quic_testvalue.h", + # TODO: uncomment the following files as implementations are added. + # "quiche/quic/platform/api/quic_fuzzed_data_provider.h", + # "quiche/quic/platform/api/quic_test_loopback.h", +@@ -1147,7 +1141,6 @@ envoy_cc_test_library( + hdrs = ["quiche/quic/platform/api/quic_port_utils.h"], + repository = "@envoy", + tags = ["nofips"], +- deps = ["@envoy//test/extensions/quic_listeners/quiche/platform:quic_platform_port_utils_impl_lib"], + ) + + envoy_cc_library( +@@ -1216,15 +1209,14 @@ envoy_cc_test_library( + ) + + envoy_cc_library( +- name = "quiche_common_platform_endian", +- hdrs = ["quiche/common/platform/api/quiche_endian.h"], ++ name = "quiche_common_endian_lib", ++ hdrs = ["quiche/common/quiche_endian.h"], + repository = "@envoy", + tags = ["nofips"], + visibility = ["//visibility:public"], + deps = + [ + ":quiche_common_platform_export", +- "@envoy//source/extensions/quic_listeners/quiche/platform:quiche_common_platform_endian_impl_lib", + ], + ) + +@@ -1932,6 +1924,7 @@ envoy_cc_library( + visibility = ["//visibility:public"], + deps = [ + ":quic_core_clock_lib", ++ ":quic_core_crypto_certificate_view_lib", + ":quic_core_crypto_encryption_lib", + ":quic_core_crypto_hkdf_lib", + ":quic_core_crypto_proof_source_interface_lib", +@@ -2167,6 +2160,15 @@ envoy_cc_library( + ], + ) + ++envoy_cc_library( ++ name = "quic_core_flags_list_lib", ++ hdrs = ["quiche/quic/core/quic_flags_list.h"], ++ copts = quiche_copts, ++ repository = "@envoy", ++ tags = ["nofips"], ++ visibility = ["//visibility:public"], ++) ++ + envoy_cc_library( + name = "quic_core_framer_lib", + srcs = ["quiche/quic/core/quic_framer.cc"], +@@ -2339,6 +2341,7 @@ envoy_cc_library( + repository = "@envoy", + tags = ["nofips"], + deps = [ ++ ":http2_constants_lib", + ":quic_core_data_lib", + ":quic_core_error_codes_lib", + ":quic_core_http_http_frames_lib", +@@ -2723,6 +2726,27 @@ envoy_cc_library( + ], + ) + ++envoy_cc_library( ++ name = "quic_core_path_validator_lib", ++ srcs = ["quiche/quic/core/quic_path_validator.cc"], ++ hdrs = ["quiche/quic/core/quic_path_validator.h"], ++ copts = quiche_copts, ++ repository = "@envoy", ++ tags = ["nofips"], ++ deps = [ ++ ":quic_core_alarm_factory_interface_lib", ++ ":quic_core_alarm_interface_lib", ++ ":quic_core_arena_scoped_ptr_lib", ++ ":quic_core_clock_lib", ++ ":quic_core_constants_lib", ++ ":quic_core_crypto_random_lib", ++ ":quic_core_one_block_arena_lib", ++ ":quic_core_packet_writer_interface_lib", ++ ":quic_core_types_lib", ++ ":quic_platform", ++ ], ++) ++ + envoy_cc_library( + name = "quic_core_process_packet_interface_lib", + hdrs = ["quiche/quic/core/quic_process_packet_interface.h"], +@@ -2735,6 +2759,15 @@ envoy_cc_library( + ], + ) + ++envoy_cc_library( ++ name = "quic_core_protocol_flags_list_lib", ++ hdrs = ["quiche/quic/core/quic_protocol_flags_list.h"], ++ copts = quiche_copts, ++ repository = "@envoy", ++ tags = ["nofips"], ++ visibility = ["//visibility:public"], ++) ++ + envoy_cc_library( + name = "quic_core_qpack_blocking_manager_lib", + srcs = ["quiche/quic/core/qpack/qpack_blocking_manager.cc"], +@@ -2896,6 +2929,7 @@ envoy_cc_library( + deps = [ + ":http2_decoder_decode_buffer_lib", + ":http2_decoder_decode_status_lib", ++ ":quic_core_error_codes_lib", + ":quic_core_qpack_qpack_instruction_decoder_lib", + ":quic_core_qpack_qpack_instructions_lib", + ":quic_core_qpack_qpack_stream_receiver_lib", +@@ -3368,7 +3402,7 @@ envoy_cc_library( + ":quic_core_error_codes_lib", + ":quic_core_time_lib", + ":quic_platform_base", +- ":quiche_common_platform_endian", ++ ":quiche_common_endian_lib", + ], + ) + +@@ -3420,6 +3454,7 @@ envoy_cc_library( + repository = "@envoy", + tags = ["nofips"], + deps = [ ++ ":quic_core_circular_deque_lib", + ":quic_core_connection_stats_lib", + ":quic_core_packets_lib", + ":quic_core_session_notifier_interface_lib", +@@ -3459,6 +3494,7 @@ envoy_cc_library( + deps = [ + ":quic_core_versions_lib", + ":quic_platform_base", ++ ":quiche_common_endian_lib", + ], + ) + +@@ -3475,7 +3511,6 @@ envoy_cc_library( + ":quic_core_tag_lib", + ":quic_core_types_lib", + ":quic_platform_base", +- ":quiche_common_platform_endian", + ], + ) + +@@ -3746,6 +3781,7 @@ envoy_cc_test_library( + ":quic_core_packet_creator_lib", + ":quic_core_packet_writer_interface_lib", + ":quic_core_packets_lib", ++ ":quic_core_path_validator_lib", + ":quic_core_received_packet_manager_lib", + ":quic_core_sent_packet_manager_lib", + ":quic_core_server_id_lib", +@@ -3836,25 +3872,10 @@ envoy_cc_test_library( + deps = [":epoll_server_platform"], + ) + +-envoy_cc_library( +- name = "quiche_common_platform_optional", +- hdrs = ["quiche/common/platform/api/quiche_optional.h"], +- repository = "@envoy", +- tags = ["nofips"], +- visibility = ["//visibility:public"], +- deps = [ +- ":quiche_common_platform_export", +- "@envoy//source/extensions/quic_listeners/quiche/platform:quiche_common_platform_optional_impl_lib", +- ], +-) +- + envoy_cc_library( + name = "quiche_common_platform", + hdrs = [ +- "quiche/common/platform/api/quiche_arraysize.h", + "quiche/common/platform/api/quiche_logging.h", +- "quiche/common/platform/api/quiche_optional.h", +- "quiche/common/platform/api/quiche_ptr_util.h", + "quiche/common/platform/api/quiche_str_cat.h", + "quiche/common/platform/api/quiche_string_piece.h", + "quiche/common/platform/api/quiche_text_utils.h", +@@ -3866,7 +3887,6 @@ envoy_cc_library( + visibility = ["//visibility:public"], + deps = [ + ":quiche_common_platform_export", +- ":quiche_common_platform_optional", + "@envoy//source/extensions/quic_listeners/quiche/platform:quiche_common_platform_impl_lib", + ], + ) +@@ -3874,7 +3894,6 @@ envoy_cc_library( + envoy_cc_test_library( + name = "quiche_common_platform_test", + srcs = [ +- "quiche/common/platform/api/quiche_endian_test.cc", + "quiche/common/platform/api/quiche_str_cat_test.cc", + "quiche/common/platform/api/quiche_text_utils_test.cc", + "quiche/common/platform/api/quiche_time_utils_test.cc", +@@ -3884,7 +3903,6 @@ envoy_cc_test_library( + tags = ["nofips"], + deps = [ + ":quiche_common_platform", +- ":quiche_common_platform_endian", + "@envoy//test/extensions/quic_listeners/quiche/platform:quiche_common_platform_test_impl_lib", + ], + ) +@@ -3904,8 +3922,8 @@ envoy_cc_library( + tags = ["nofips"], + visibility = ["//visibility:public"], + deps = [ ++ ":quiche_common_endian_lib", + ":quiche_common_platform", +- ":quiche_common_platform_endian", + ], + ) + +@@ -3944,6 +3962,7 @@ envoy_cc_test( + deps = [ + ":http2_platform", + ":http2_test_tools_random", ++ ":quiche_common_test_tools_test_utils_lib", + ], + ) + +diff --git a/bazel/repository_locations.bzl b/bazel/repository_locations.bzl +index 6eba5a821..19ddc76e8 100644 +--- a/bazel/repository_locations.bzl ++++ b/bazel/repository_locations.bzl +@@ -671,9 +671,9 @@ DEPENDENCY_REPOSITORIES_SPEC = dict( + project_name = "QUICHE", + project_desc = "QUICHE (QUIC, HTTP/2, Etc) is Google‘s implementation of QUIC and related protocols", + project_url = "https://quiche.googlesource.com/quiche", +- # Static snapshot of https://quiche.googlesource.com/quiche/+archive/f555d99a084cdd086a349548c70fb558ac5847cf.tar.gz +- version = "f555d99a084cdd086a349548c70fb558ac5847cf", +- sha256 = "1833f08e7b0f18b49d7498b029b7f3e6559a82113ec82a98a9e945553756e351", ++ # Static snapshot of https://quiche.googlesource.com/quiche/+archive/ecc28c0d7428f3323ea26eb1ddb98a5e06b23dea.tar.gz ++ version = "ecc28c0d7428f3323ea26eb1ddb98a5e06b23dea", ++ sha256 = "52680dea984dbe899c27176155578b97276e1f1516b7c3a63fb16ba593061859", + urls = ["https://storage.googleapis.com/quiche-envoy-integration/{version}.tar.gz"], + use_category = ["dataplane_ext"], + extensions = ["envoy.transport_sockets.quic"], +diff --git a/source/extensions/quic_listeners/quiche/BUILD b/source/extensions/quic_listeners/quiche/BUILD +index 29eb78d15..a90cfde6d 100644 +--- a/source/extensions/quic_listeners/quiche/BUILD ++++ b/source/extensions/quic_listeners/quiche/BUILD +@@ -212,6 +212,7 @@ envoy_cc_library( + "//source/common/buffer:buffer_lib", + "//source/common/common:assert_lib", + "//source/common/http:header_map_lib", ++ "//source/common/http:header_utility_lib", + "//source/extensions/quic_listeners/quiche/platform:quic_platform_mem_slice_storage_impl_lib", + "@com_googlesource_quiche//:quic_core_http_client_lib", + ], +diff --git a/source/extensions/quic_listeners/quiche/active_quic_listener.cc b/source/extensions/quic_listeners/quiche/active_quic_listener.cc +index f4808adc5..86912292a 100644 +--- a/source/extensions/quic_listeners/quiche/active_quic_listener.cc ++++ b/source/extensions/quic_listeners/quiche/active_quic_listener.cc +@@ -55,7 +55,7 @@ ActiveQuicListener::ActiveQuicListener( + quic::QuicRandom* const random = quic::QuicRandom::GetInstance(); + random->RandBytes(random_seed_, sizeof(random_seed_)); + crypto_config_ = std::make_unique( +- quiche::QuicheStringPiece(reinterpret_cast(random_seed_), sizeof(random_seed_)), ++ absl::string_view(reinterpret_cast(random_seed_), sizeof(random_seed_)), + quic::QuicRandom::GetInstance(), + std::make_unique(listen_socket_, listener_config.filterChainManager(), + stats_), +diff --git a/source/extensions/quic_listeners/quiche/envoy_quic_client_connection.cc b/source/extensions/quic_listeners/quiche/envoy_quic_client_connection.cc +index e79b08ad9..95d63729d 100644 +--- a/source/extensions/quic_listeners/quiche/envoy_quic_client_connection.cc ++++ b/source/extensions/quic_listeners/quiche/envoy_quic_client_connection.cc +@@ -43,7 +43,7 @@ EnvoyQuicClientConnection::EnvoyQuicClientConnection( + const quic::ParsedQuicVersionVector& supported_versions, Event::Dispatcher& dispatcher, + Network::ConnectionSocketPtr&& connection_socket) + : EnvoyQuicConnection( +- server_connection_id, ++ server_connection_id, quic::QuicSocketAddress(), + envoyIpAddressToQuicSocketAddress(connection_socket->remoteAddress()->ip()), helper, + alarm_factory, writer, owns_writer, quic::Perspective::IS_CLIENT, supported_versions, + std::move(connection_socket)), +diff --git a/source/extensions/quic_listeners/quiche/envoy_quic_client_stream.cc b/source/extensions/quic_listeners/quiche/envoy_quic_client_stream.cc +index 866e35416..a759b26b1 100644 +--- a/source/extensions/quic_listeners/quiche/envoy_quic_client_stream.cc ++++ b/source/extensions/quic_listeners/quiche/envoy_quic_client_stream.cc +@@ -20,6 +20,7 @@ + + #include "common/buffer/buffer_impl.h" + #include "common/http/header_map_impl.h" ++#include "common/http/header_utility.h" + #include "common/common/assert.h" + + namespace Envoy { +diff --git a/source/extensions/quic_listeners/quiche/envoy_quic_connection.cc b/source/extensions/quic_listeners/quiche/envoy_quic_connection.cc +index dcc311a6e..d813dfe4b 100644 +--- a/source/extensions/quic_listeners/quiche/envoy_quic_connection.cc ++++ b/source/extensions/quic_listeners/quiche/envoy_quic_connection.cc +@@ -6,6 +6,7 @@ namespace Envoy { + namespace Quic { + + EnvoyQuicConnection::EnvoyQuicConnection(const quic::QuicConnectionId& server_connection_id, ++ quic::QuicSocketAddress initial_self_address, + quic::QuicSocketAddress initial_peer_address, + quic::QuicConnectionHelperInterface& helper, + quic::QuicAlarmFactory& alarm_factory, +@@ -13,8 +14,9 @@ EnvoyQuicConnection::EnvoyQuicConnection(const quic::QuicConnectionId& server_co + quic::Perspective perspective, + const quic::ParsedQuicVersionVector& supported_versions, + Network::ConnectionSocketPtr&& connection_socket) +- : quic::QuicConnection(server_connection_id, initial_peer_address, &helper, &alarm_factory, +- writer, owns_writer, perspective, supported_versions), ++ : quic::QuicConnection(server_connection_id, initial_self_address, initial_peer_address, ++ &helper, &alarm_factory, writer, owns_writer, perspective, ++ supported_versions), + connection_socket_(std::move(connection_socket)) {} + + EnvoyQuicConnection::~EnvoyQuicConnection() { connection_socket_->close(); } +diff --git a/source/extensions/quic_listeners/quiche/envoy_quic_connection.h b/source/extensions/quic_listeners/quiche/envoy_quic_connection.h +index f4c8589d7..f8543bc93 100644 +--- a/source/extensions/quic_listeners/quiche/envoy_quic_connection.h ++++ b/source/extensions/quic_listeners/quiche/envoy_quic_connection.h +@@ -26,6 +26,7 @@ class EnvoyQuicConnection : public quic::QuicConnection, + protected Logger::Loggable { + public: + EnvoyQuicConnection(const quic::QuicConnectionId& server_connection_id, ++ quic::QuicSocketAddress initial_self_address, + quic::QuicSocketAddress initial_peer_address, + quic::QuicConnectionHelperInterface& helper, + quic::QuicAlarmFactory& alarm_factory, quic::QuicPacketWriter* writer, +diff --git a/source/extensions/quic_listeners/quiche/envoy_quic_dispatcher.cc b/source/extensions/quic_listeners/quiche/envoy_quic_dispatcher.cc +index ba8f7f3a8..e6351f643 100644 +--- a/source/extensions/quic_listeners/quiche/envoy_quic_dispatcher.cc ++++ b/source/extensions/quic_listeners/quiche/envoy_quic_dispatcher.cc +@@ -48,11 +48,11 @@ void EnvoyQuicDispatcher::OnConnectionClosed(quic::QuicConnectionId connection_i + } + + std::unique_ptr EnvoyQuicDispatcher::CreateQuicSession( +- quic::QuicConnectionId server_connection_id, const quic::QuicSocketAddress& /*self_address*/, +- const quic::QuicSocketAddress& peer_address, quiche::QuicheStringPiece /*alpn*/, ++ quic::QuicConnectionId server_connection_id, const quic::QuicSocketAddress& self_address, ++ const quic::QuicSocketAddress& peer_address, absl::string_view /*alpn*/, + const quic::ParsedQuicVersion& version) { + auto quic_connection = std::make_unique( +- server_connection_id, peer_address, *helper(), *alarm_factory(), writer(), ++ server_connection_id, self_address, peer_address, *helper(), *alarm_factory(), writer(), + /*owns_writer=*/false, quic::ParsedQuicVersionVector{version}, listen_socket_); + auto quic_session = std::make_unique( + config(), quic::ParsedQuicVersionVector{version}, std::move(quic_connection), this, +diff --git a/source/extensions/quic_listeners/quiche/envoy_quic_dispatcher.h b/source/extensions/quic_listeners/quiche/envoy_quic_dispatcher.h +index 589ff5327..d59307f41 100644 +--- a/source/extensions/quic_listeners/quiche/envoy_quic_dispatcher.h ++++ b/source/extensions/quic_listeners/quiche/envoy_quic_dispatcher.h +@@ -62,7 +62,7 @@ protected: + std::unique_ptr + CreateQuicSession(quic::QuicConnectionId server_connection_id, + const quic::QuicSocketAddress& self_address, +- const quic::QuicSocketAddress& peer_address, quiche::QuicheStringPiece alpn, ++ const quic::QuicSocketAddress& peer_address, absl::string_view alpn, + const quic::ParsedQuicVersion& version) override; + + private: +diff --git a/source/extensions/quic_listeners/quiche/envoy_quic_proof_source.cc b/source/extensions/quic_listeners/quiche/envoy_quic_proof_source.cc +index 1f65e4e7e..967765829 100644 +--- a/source/extensions/quic_listeners/quiche/envoy_quic_proof_source.cc ++++ b/source/extensions/quic_listeners/quiche/envoy_quic_proof_source.cc +@@ -36,7 +36,7 @@ EnvoyQuicProofSource::GetCertChain(const quic::QuicSocketAddress& server_address + + void EnvoyQuicProofSource::signPayload( + const quic::QuicSocketAddress& server_address, const quic::QuicSocketAddress& client_address, +- const std::string& hostname, uint16_t signature_algorithm, quiche::QuicheStringPiece in, ++ const std::string& hostname, uint16_t signature_algorithm, absl::string_view in, + std::unique_ptr callback) { + CertConfigWithFilterChain res = + getTlsCertConfigAndFilterChain(server_address, client_address, hostname); +diff --git a/source/extensions/quic_listeners/quiche/envoy_quic_proof_source.h b/source/extensions/quic_listeners/quiche/envoy_quic_proof_source.h +index 6e1c74c92..e22bf3465 100644 +--- a/source/extensions/quic_listeners/quiche/envoy_quic_proof_source.h ++++ b/source/extensions/quic_listeners/quiche/envoy_quic_proof_source.h +@@ -28,7 +28,7 @@ protected: + // quic::ProofSource + void signPayload(const quic::QuicSocketAddress& server_address, + const quic::QuicSocketAddress& client_address, const std::string& hostname, +- uint16_t signature_algorithm, quiche::QuicheStringPiece in, ++ uint16_t signature_algorithm, absl::string_view in, + std::unique_ptr callback) override; + + private: +diff --git a/source/extensions/quic_listeners/quiche/envoy_quic_proof_source_base.cc b/source/extensions/quic_listeners/quiche/envoy_quic_proof_source_base.cc +index 2c82c04d9..9ad3cb07f 100644 +--- a/source/extensions/quic_listeners/quiche/envoy_quic_proof_source_base.cc ++++ b/source/extensions/quic_listeners/quiche/envoy_quic_proof_source_base.cc +@@ -21,7 +21,7 @@ void EnvoyQuicProofSourceBase::GetProof(const quic::QuicSocketAddress& server_ad + const std::string& hostname, + const std::string& server_config, + quic::QuicTransportVersion /*transport_version*/, +- quiche::QuicheStringPiece chlo_hash, ++ absl::string_view chlo_hash, + std::unique_ptr callback) { + quic::QuicReferenceCountedPointer chain = + GetCertChain(server_address, client_address, hostname); +@@ -68,13 +68,12 @@ void EnvoyQuicProofSourceBase::GetProof(const quic::QuicSocketAddress& server_ad + auto signature_callback = std::make_unique(std::move(callback), chain); + + signPayload(server_address, client_address, hostname, sign_alg, +- quiche::QuicheStringPiece(payload.get(), payload_size), +- std::move(signature_callback)); ++ absl::string_view(payload.get(), payload_size), std::move(signature_callback)); + } + + void EnvoyQuicProofSourceBase::ComputeTlsSignature( + const quic::QuicSocketAddress& server_address, const quic::QuicSocketAddress& client_address, +- const std::string& hostname, uint16_t signature_algorithm, quiche::QuicheStringPiece in, ++ const std::string& hostname, uint16_t signature_algorithm, absl::string_view in, + std::unique_ptr callback) { + signPayload(server_address, client_address, hostname, signature_algorithm, in, + std::move(callback)); +diff --git a/source/extensions/quic_listeners/quiche/envoy_quic_proof_source_base.h b/source/extensions/quic_listeners/quiche/envoy_quic_proof_source_base.h +index b7d76981e..a9e7e8c3f 100644 +--- a/source/extensions/quic_listeners/quiche/envoy_quic_proof_source_base.h ++++ b/source/extensions/quic_listeners/quiche/envoy_quic_proof_source_base.h +@@ -57,7 +57,7 @@ public: + void GetProof(const quic::QuicSocketAddress& server_address, + const quic::QuicSocketAddress& client_address, const std::string& hostname, + const std::string& server_config, quic::QuicTransportVersion /*transport_version*/, +- quiche::QuicheStringPiece chlo_hash, ++ absl::string_view chlo_hash, + std::unique_ptr callback) override; + + TicketCrypter* GetTicketCrypter() override { return nullptr; } +@@ -65,14 +65,14 @@ public: + void ComputeTlsSignature(const quic::QuicSocketAddress& server_address, + const quic::QuicSocketAddress& client_address, + const std::string& hostname, uint16_t signature_algorithm, +- quiche::QuicheStringPiece in, ++ absl::string_view in, + std::unique_ptr callback) override; + + protected: + virtual void signPayload(const quic::QuicSocketAddress& server_address, + const quic::QuicSocketAddress& client_address, + const std::string& hostname, uint16_t signature_algorithm, +- quiche::QuicheStringPiece in, ++ absl::string_view in, + std::unique_ptr callback) PURE; + + private: +diff --git a/source/extensions/quic_listeners/quiche/envoy_quic_proof_verifier_base.cc b/source/extensions/quic_listeners/quiche/envoy_quic_proof_verifier_base.cc +index 229b3ab36..e37590529 100644 +--- a/source/extensions/quic_listeners/quiche/envoy_quic_proof_verifier_base.cc ++++ b/source/extensions/quic_listeners/quiche/envoy_quic_proof_verifier_base.cc +@@ -58,8 +58,8 @@ bool EnvoyQuicProofVerifierBase::verifySignature(const std::string& server_confi + *error_details = "QuicPacketWriter error."; + return false; + } +- bool valid = cert_view->VerifySignature(quiche::QuicheStringPiece(payload.get(), payload_size), +- signature, sign_alg); ++ bool valid = cert_view->VerifySignature(absl::string_view(payload.get(), payload_size), signature, ++ sign_alg); + if (!valid) { + *error_details = "Signature is not valid."; + } +diff --git a/source/extensions/quic_listeners/quiche/envoy_quic_server_connection.cc b/source/extensions/quic_listeners/quiche/envoy_quic_server_connection.cc +index b8fa94221..974c6c8eb 100644 +--- a/source/extensions/quic_listeners/quiche/envoy_quic_server_connection.cc ++++ b/source/extensions/quic_listeners/quiche/envoy_quic_server_connection.cc +@@ -11,11 +11,13 @@ namespace Quic { + + EnvoyQuicServerConnection::EnvoyQuicServerConnection( + const quic::QuicConnectionId& server_connection_id, +- quic::QuicSocketAddress initial_peer_address, quic::QuicConnectionHelperInterface& helper, +- quic::QuicAlarmFactory& alarm_factory, quic::QuicPacketWriter* writer, bool owns_writer, ++ quic::QuicSocketAddress initial_self_address, quic::QuicSocketAddress initial_peer_address, ++ quic::QuicConnectionHelperInterface& helper, quic::QuicAlarmFactory& alarm_factory, ++ quic::QuicPacketWriter* writer, bool owns_writer, + const quic::ParsedQuicVersionVector& supported_versions, Network::Socket& listen_socket) +- : EnvoyQuicConnection(server_connection_id, initial_peer_address, helper, alarm_factory, writer, +- owns_writer, quic::Perspective::IS_SERVER, supported_versions, ++ : EnvoyQuicConnection(server_connection_id, initial_self_address, initial_peer_address, helper, ++ alarm_factory, writer, owns_writer, quic::Perspective::IS_SERVER, ++ supported_versions, + std::make_unique( + // Wraps the real IoHandle instance so that if the connection socket + // gets closed, the real IoHandle won't be affected. +diff --git a/source/extensions/quic_listeners/quiche/envoy_quic_server_connection.h b/source/extensions/quic_listeners/quiche/envoy_quic_server_connection.h +index 7b7fac05e..7625fad02 100644 +--- a/source/extensions/quic_listeners/quiche/envoy_quic_server_connection.h ++++ b/source/extensions/quic_listeners/quiche/envoy_quic_server_connection.h +@@ -10,6 +10,7 @@ namespace Quic { + class EnvoyQuicServerConnection : public EnvoyQuicConnection { + public: + EnvoyQuicServerConnection(const quic::QuicConnectionId& server_connection_id, ++ quic::QuicSocketAddress initial_self_address, + quic::QuicSocketAddress initial_peer_address, + quic::QuicConnectionHelperInterface& helper, + quic::QuicAlarmFactory& alarm_factory, quic::QuicPacketWriter* writer, +diff --git a/source/extensions/quic_listeners/quiche/platform/BUILD b/source/extensions/quic_listeners/quiche/platform/BUILD +index f53e07b58..839664d52 100644 +--- a/source/extensions/quic_listeners/quiche/platform/BUILD ++++ b/source/extensions/quic_listeners/quiche/platform/BUILD +@@ -36,15 +36,16 @@ envoy_extension_package() + envoy_cc_library( + name = "flags_impl_lib", + srcs = ["flags_impl.cc"], +- hdrs = [ +- "flags_impl.h", +- "flags_list.h", +- ], ++ hdrs = ["flags_impl.h"], + external_deps = [ + "abseil_base", + "abseil_synchronization", + ], + visibility = ["//visibility:public"], ++ deps = [ ++ "@com_googlesource_quiche//:quic_core_flags_list_lib", ++ "@com_googlesource_quiche//:quic_core_protocol_flags_list_lib", ++ ], + ) + + envoy_cc_library( +@@ -62,7 +63,6 @@ envoy_cc_library( + envoy_cc_library( + name = "http2_platform_impl_lib", + hdrs = [ +- "http2_arraysize_impl.h", + "http2_bug_tracker_impl.h", + "http2_containers_impl.h", + "http2_estimate_memory_usage_impl.h", +@@ -74,7 +74,6 @@ envoy_cc_library( + ], + external_deps = [ + "abseil_base", +- "abseil_optional", + "abseil_str_format", + ], + visibility = ["//visibility:public"], +@@ -114,16 +113,13 @@ envoy_cc_library( + "quic_mem_slice_impl.cc", + ], + hdrs = [ +- "quic_aligned_impl.h", + "quic_client_stats_impl.h", + "quic_containers_impl.h", + "quic_error_code_wrappers_impl.h", + "quic_estimate_memory_usage_impl.h", +- "quic_fallthrough_impl.h", + "quic_flag_utils_impl.h", + "quic_flags_impl.h", + "quic_iovec_impl.h", +- "quic_macros_impl.h", + "quic_map_util_impl.h", + "quic_mem_slice_impl.h", + "quic_prefetch_impl.h", +@@ -132,6 +128,7 @@ envoy_cc_library( + "quic_server_stats_impl.h", + "quic_stack_trace_impl.h", + "quic_stream_buffer_allocator_impl.h", ++ "quic_testvalue_impl.h", + "quic_uint128_impl.h", + ], + external_deps = [ +@@ -141,7 +138,6 @@ envoy_cc_library( + "abseil_memory", + "abseil_node_hash_map", + "abseil_node_hash_set", +- "abseil_optional", + ], + tags = ["nofips"], + visibility = ["//visibility:public"], +@@ -236,6 +232,7 @@ envoy_cc_library( + }), + repository = "@envoy", + tags = ["nofips"], ++ visibility = ["//visibility:public"], + ) + + envoy_cc_library( +@@ -250,23 +247,12 @@ envoy_cc_library( + ], + ) + +-envoy_cc_library( +- name = "quiche_common_platform_optional_impl_lib", +- hdrs = ["quiche_optional_impl.h"], +- external_deps = [ +- "abseil_node_hash_map", +- ], +- visibility = ["//visibility:public"], +-) +- + envoy_cc_library( + name = "quiche_common_platform_impl_lib", + srcs = ["quiche_time_utils_impl.cc"], + hdrs = [ +- "quiche_arraysize_impl.h", + "quiche_logging_impl.h", + "quiche_map_util_impl.h", +- "quiche_ptr_util_impl.h", + "quiche_str_cat_impl.h", + "quiche_string_piece_impl.h", + "quiche_text_utils_impl.h", +@@ -281,17 +267,14 @@ envoy_cc_library( + deps = [ + ":quic_platform_logging_impl_lib", + ":string_utils_lib", +- "@com_googlesource_quiche//:quiche_common_platform_optional", + ], + ) + + envoy_cc_library( + name = "spdy_platform_impl_lib", + hdrs = [ +- "spdy_arraysize_impl.h", + "spdy_bug_tracker_impl.h", + "spdy_containers_impl.h", +- "spdy_endianness_util_impl.h", + "spdy_estimate_memory_usage_impl.h", + "spdy_flags_impl.h", + "spdy_logging_impl.h", +@@ -331,14 +314,3 @@ envoy_cc_library( + tags = ["nofips"], + visibility = ["//visibility:public"], + ) +- +-envoy_cc_library( +- name = "quiche_common_platform_endian_impl_lib", +- hdrs = ["quiche_endian_impl.h"], +- tags = ["nofips"], +- visibility = ["//visibility:public"], +- deps = [ +- "quiche_common_platform_export_impl_lib", +- "//source/common/common:byte_order_lib", +- ], +-) +diff --git a/source/extensions/quic_listeners/quiche/platform/flags_impl.cc b/source/extensions/quic_listeners/quiche/platform/flags_impl.cc +index 70fb182d6..9d4ea89ce 100644 +--- a/source/extensions/quic_listeners/quiche/platform/flags_impl.cc ++++ b/source/extensions/quic_listeners/quiche/platform/flags_impl.cc +@@ -15,12 +15,24 @@ namespace quiche { + + namespace { + +-absl::flat_hash_map MakeFlagMap() { ++absl::flat_hash_map makeFlagMap() { + absl::flat_hash_map flags; + +-#define QUICHE_FLAG(type, flag, value, help) flags.emplace(FLAGS_##flag->name(), FLAGS_##flag); +-#include "extensions/quic_listeners/quiche/platform/flags_list.h" +-#undef QUICHE_FLAG ++#define QUIC_FLAG(flag, ...) flags.emplace(flag->name(), flag); ++#include "quiche/quic/core/quic_flags_list.h" ++ QUIC_FLAG(FLAGS_quic_reloadable_flag_spdy_testonly_default_false, false) ++ QUIC_FLAG(FLAGS_quic_reloadable_flag_spdy_testonly_default_true, true) ++ QUIC_FLAG(FLAGS_quic_restart_flag_spdy_testonly_default_false, false) ++ QUIC_FLAG(FLAGS_quic_restart_flag_spdy_testonly_default_true, true) ++ QUIC_FLAG(FLAGS_quic_reloadable_flag_http2_testonly_default_false, false) ++ QUIC_FLAG(FLAGS_quic_reloadable_flag_http2_testonly_default_true, true) ++ QUIC_FLAG(FLAGS_quic_restart_flag_http2_testonly_default_false, false) ++ QUIC_FLAG(FLAGS_quic_restart_flag_http2_testonly_default_true, true) ++#undef QUIC_FLAG ++ ++#define QUIC_PROTOCOL_FLAG(type, flag, ...) flags.emplace(FLAGS_##flag->name(), FLAGS_##flag); ++#include "quiche/quic/core/quic_protocol_flags_list.h" ++#undef QUIC_PROTOCOL_FLAG + + return flags; + } +@@ -28,75 +40,123 @@ absl::flat_hash_map MakeFlagMap() { + } // namespace + + // static +-FlagRegistry& FlagRegistry::GetInstance() { ++FlagRegistry& FlagRegistry::getInstance() { + static auto* instance = new FlagRegistry(); + return *instance; + } + +-FlagRegistry::FlagRegistry() : flags_(MakeFlagMap()) {} ++FlagRegistry::FlagRegistry() : flags_(makeFlagMap()) {} + +-void FlagRegistry::ResetFlags() const { ++void FlagRegistry::resetFlags() const { + for (auto& kv : flags_) { +- kv.second->ResetValue(); ++ kv.second->resetValue(); + } + } + +-Flag* FlagRegistry::FindFlag(const std::string& name) const { ++Flag* FlagRegistry::findFlag(const std::string& name) const { + auto it = flags_.find(name); + return (it != flags_.end()) ? it->second : nullptr; + } + +-template <> bool TypedFlag::SetValueFromString(const std::string& value_str) { ++template <> bool TypedFlag::setValueFromString(const std::string& value_str) { + static const auto* kTrueValues = new std::set({"1", "t", "true", "y", "yes"}); + static const auto* kFalseValues = new std::set({"0", "f", "false", "n", "no"}); + auto lower = absl::AsciiStrToLower(value_str); + if (kTrueValues->find(lower) != kTrueValues->end()) { +- SetValue(true); ++ setValue(true); + return true; + } + if (kFalseValues->find(lower) != kFalseValues->end()) { +- SetValue(false); ++ setValue(false); + return true; + } + return false; + } + +-template <> bool TypedFlag::SetValueFromString(const std::string& value_str) { ++template <> bool TypedFlag::setValueFromString(const std::string& value_str) { + int32_t value; + if (absl::SimpleAtoi(value_str, &value)) { +- SetValue(value); ++ setValue(value); + return true; + } + return false; + } + +-template <> bool TypedFlag::SetValueFromString(const std::string& value_str) { ++template <> bool TypedFlag::setValueFromString(const std::string& value_str) { + int64_t value; + if (absl::SimpleAtoi(value_str, &value)) { +- SetValue(value); ++ setValue(value); + return true; + } + return false; + } + +-template <> bool TypedFlag::SetValueFromString(const std::string& value_str) { ++template <> bool TypedFlag::setValueFromString(const std::string& value_str) { + double value; + if (absl::SimpleAtod(value_str, &value)) { +- SetValue(value); ++ setValue(value); + return true; + } + return false; + } + +-template <> bool TypedFlag::SetValueFromString(const std::string& value_str) { +- SetValue(value_str); ++template <> bool TypedFlag::setValueFromString(const std::string& value_str) { ++ setValue(value_str); + return true; + } + ++template <> bool TypedFlag::setValueFromString(const std::string& value_str) { ++ unsigned long value; ++ if (absl::SimpleAtoi(value_str, &value)) { ++ setValue(value); ++ return true; ++ } ++ return false; ++} ++ ++template <> bool TypedFlag::setValueFromString(const std::string& value_str) { ++ unsigned long long value; ++ if (absl::SimpleAtoi(value_str, &value)) { ++ setValue(value); ++ return true; ++ } ++ return false; ++} ++ + // Flag definitions +-#define QUICHE_FLAG(type, flag, value, help) \ +- TypedFlag* FLAGS_##flag = new TypedFlag(#flag, value, help); +-#include "extensions/quic_listeners/quiche/platform/flags_list.h" +-#undef QUICHE_FLAG ++#define QUIC_FLAG(flag, value) TypedFlag* flag = new TypedFlag(#flag, value, ""); ++#include "quiche/quic/core/quic_flags_list.h" ++QUIC_FLAG(FLAGS_quic_reloadable_flag_spdy_testonly_default_false, false) ++QUIC_FLAG(FLAGS_quic_reloadable_flag_spdy_testonly_default_true, true) ++QUIC_FLAG(FLAGS_quic_restart_flag_spdy_testonly_default_false, false) ++QUIC_FLAG(FLAGS_quic_restart_flag_spdy_testonly_default_true, true) ++QUIC_FLAG(FLAGS_quic_reloadable_flag_http2_testonly_default_false, false) ++QUIC_FLAG(FLAGS_quic_reloadable_flag_http2_testonly_default_true, true) ++QUIC_FLAG(FLAGS_quic_restart_flag_http2_testonly_default_false, false) ++QUIC_FLAG(FLAGS_quic_restart_flag_http2_testonly_default_true, true) ++ ++#undef QUIC_FLAG ++ ++#define STRINGIFY(X) #X ++ ++#define DEFINE_QUIC_PROTOCOL_FLAG_IMPL(type, flag, value, help) \ ++ TypedFlag* FLAGS_##flag = new TypedFlag(STRINGIFY(FLAGS_##flag), value, help); ++ ++#define DEFINE_QUIC_PROTOCOL_FLAG_SINGLE_VALUE(type, flag, value, doc) \ ++ DEFINE_QUIC_PROTOCOL_FLAG_IMPL(type, flag, value, doc) ++ ++#define DEFINE_QUIC_PROTOCOL_FLAG_TWO_VALUES(type, flag, internal_value, external_value, doc) \ ++ DEFINE_QUIC_PROTOCOL_FLAG_IMPL(type, flag, external_value, doc) ++ ++// Select the right macro based on the number of arguments. ++#define GET_6TH_ARG(arg1, arg2, arg3, arg4, arg5, arg6, ...) arg6 ++ ++#define QUIC_PROTOCOL_FLAG_MACRO_CHOOSER(...) \ ++ GET_6TH_ARG(__VA_ARGS__, DEFINE_QUIC_PROTOCOL_FLAG_TWO_VALUES, \ ++ DEFINE_QUIC_PROTOCOL_FLAG_SINGLE_VALUE) ++ ++#define QUIC_PROTOCOL_FLAG(...) QUIC_PROTOCOL_FLAG_MACRO_CHOOSER(__VA_ARGS__)(__VA_ARGS__) ++#include "quiche/quic/core/quic_protocol_flags_list.h" ++#undef QUIC_PROTOCOL_FLAG + + } // namespace quiche +diff --git a/source/extensions/quic_listeners/quiche/platform/flags_impl.h b/source/extensions/quic_listeners/quiche/platform/flags_impl.h +index 5db939925..83ed8430c 100644 +--- a/source/extensions/quic_listeners/quiche/platform/flags_impl.h ++++ b/source/extensions/quic_listeners/quiche/platform/flags_impl.h +@@ -26,13 +26,13 @@ public: + ~FlagRegistry() = default; + + // Return singleton instance. +- static FlagRegistry& GetInstance(); ++ static FlagRegistry& getInstance(); + + // Reset all registered flags to their default values. +- void ResetFlags() const; ++ void resetFlags() const; + + // Look up a flag by name. +- Flag* FindFlag(const std::string& name) const; ++ Flag* findFlag(const std::string& name) const; + + private: + FlagRegistry(); +@@ -48,10 +48,10 @@ public: + virtual ~Flag() = default; + + // Set flag value from given string, returning true iff successful. +- virtual bool SetValueFromString(const std::string& value_str) = 0; ++ virtual bool setValueFromString(const std::string& value_str) = 0; + + // Reset flag to default value. +- virtual void ResetValue() = 0; ++ virtual void resetValue() = 0; + + // Return flag name. + std::string name() const { return name_; } +@@ -70,15 +70,15 @@ public: + TypedFlag(const char* name, T default_value, const char* help) + : Flag(name, help), value_(default_value), default_value_(default_value) {} + +- bool SetValueFromString(const std::string& value_str) override; ++ bool setValueFromString(const std::string& value_str) override; + +- void ResetValue() override { ++ void resetValue() override { + absl::MutexLock lock(&mutex_); + value_ = default_value_; + } + + // Set flag value. +- void SetValue(T value) { ++ void setValue(T value) { + absl::MutexLock lock(&mutex_); + value_ = value; + } +@@ -96,15 +96,29 @@ private: + }; + + // SetValueFromString specializations +-template <> bool TypedFlag::SetValueFromString(const std::string& value_str); +-template <> bool TypedFlag::SetValueFromString(const std::string& value_str); +-template <> bool TypedFlag::SetValueFromString(const std::string& value_str); +-template <> bool TypedFlag::SetValueFromString(const std::string& value_str); +-template <> bool TypedFlag::SetValueFromString(const std::string& value_str); ++template <> bool TypedFlag::setValueFromString(const std::string& value_str); ++template <> bool TypedFlag::setValueFromString(const std::string& value_str); ++template <> bool TypedFlag::setValueFromString(const std::string& value_str); ++template <> bool TypedFlag::setValueFromString(const std::string& value_str); ++template <> bool TypedFlag::setValueFromString(const std::string& value_str); ++template <> bool TypedFlag::setValueFromString(const std::string& value_str); ++template <> bool TypedFlag::setValueFromString(const std::string& value_str); + + // Flag declarations +-#define QUICHE_FLAG(type, flag, value, help) extern TypedFlag* FLAGS_##flag; +-#include "extensions/quic_listeners/quiche/platform/flags_list.h" +-#undef QUICHE_FLAG ++#define QUIC_FLAG(flag, ...) extern TypedFlag* flag; ++#include "quiche/quic/core/quic_flags_list.h" ++QUIC_FLAG(FLAGS_quic_reloadable_flag_spdy_testonly_default_false, false) ++QUIC_FLAG(FLAGS_quic_reloadable_flag_spdy_testonly_default_true, true) ++QUIC_FLAG(FLAGS_quic_restart_flag_spdy_testonly_default_false, false) ++QUIC_FLAG(FLAGS_quic_restart_flag_spdy_testonly_default_true, true) ++QUIC_FLAG(FLAGS_quic_reloadable_flag_http2_testonly_default_false, false) ++QUIC_FLAG(FLAGS_quic_reloadable_flag_http2_testonly_default_true, true) ++QUIC_FLAG(FLAGS_quic_restart_flag_http2_testonly_default_false, false) ++QUIC_FLAG(FLAGS_quic_restart_flag_http2_testonly_default_true, true) ++#undef QUIC_FLAG ++ ++#define QUIC_PROTOCOL_FLAG(type, flag, ...) extern TypedFlag* FLAGS_##flag; ++#include "quiche/quic/core/quic_protocol_flags_list.h" ++#undef QUIC_PROTOCOL_FLAG + + } // namespace quiche +diff --git a/source/extensions/quic_listeners/quiche/platform/flags_list.h b/source/extensions/quic_listeners/quiche/platform/flags_list.h +deleted file mode 100644 +index 7e9e20a7c..000000000 +--- a/source/extensions/quic_listeners/quiche/platform/flags_list.h ++++ /dev/null +@@ -1,502 +0,0 @@ +-// This file intentionally does not have header guards. It is intended to be +-// included multiple times, each time with a different definition of +-// QUICHE_FLAG. +- +-// NOLINT(namespace-envoy) +- +-// This file is part of the QUICHE platform implementation, and is not to be +-// consumed or referenced directly by other Envoy code. It serves purely as a +-// porting layer for QUICHE. +- +-// This file is generated by //third_party/quic/tools:quic_flags_list in +-// Google3. +- +-#if defined(QUICHE_FLAG) +- +-QUICHE_FLAG( +- bool, http2_reloadable_flag_http2_backend_alpn_failure_error_code, false, +- "If true, the GFE will return a new ResponseCodeDetails error when ALPN to the backend fails.") +- +-QUICHE_FLAG(bool, http2_reloadable_flag_http2_ip_based_cwnd_exp, true, +- "If true, enable IP address based CWND bootstrapping experiment with different " +- "bandwidth models and priorities in HTTP2.") +- +-QUICHE_FLAG( +- bool, http2_reloadable_flag_http2_load_based_goaway_warning, false, +- "If true, load-based connection closures will send a warning GOAWAY before the actual GOAWAY.") +- +-QUICHE_FLAG(bool, http2_reloadable_flag_http2_security_requirement_for_client3, false, +- "If true, check whether client meets security requirements during SSL handshake. If " +- "flag is true and client does not meet security requirements, do not negotiate HTTP/2 " +- "with client or terminate the session with SPDY_INADEQUATE_SECURITY if HTTP/2 is " +- "already negotiated. The spec contains both cipher and TLS version requirements.") +- +-QUICHE_FLAG(bool, http2_reloadable_flag_http2_websocket_detection, false, +- "If true, uses a HTTP/2-specific method of detecting websocket upgrade requests.") +- +-QUICHE_FLAG(bool, http2_reloadable_flag_permissive_http2_switch, false, +- "If true, the GFE allows both HTTP/1.0 and HTTP/1.1 versions in HTTP/2 upgrade " +- "requests/responses.") +- +-QUICHE_FLAG(bool, quic_reloadable_flag_advertise_quic_for_https_for_debugips, false, "") +- +-QUICHE_FLAG(bool, quic_reloadable_flag_advertise_quic_for_https_for_external_users, false, "") +- +-QUICHE_FLAG(bool, quic_reloadable_flag_gclb_quic_allow_alia, true, +- "If gfe2_reloadable_flag_gclb_use_alia is also true, use Alia for GCLB QUIC " +- "handshakes. To be used as a big red button if there's a problem with Alia/QUIC.") +- +-QUICHE_FLAG(bool, quic_reloadable_flag_quic_abort_qpack_on_stream_close, false, +- "If true, abort async QPACK header decompression in QuicSpdyStream::OnClose().") +- +-QUICHE_FLAG(bool, quic_reloadable_flag_quic_ack_delay_alarm_granularity, false, +- "When true, ensure the ACK delay is never less than the alarm granularity when ACK " +- "decimation is enabled.") +- +-QUICHE_FLAG(bool, quic_reloadable_flag_quic_add_missing_connected_checks, false, +- "If true, add missing connected checks.") +- +-QUICHE_FLAG(bool, quic_reloadable_flag_quic_add_silent_idle_timeout, true, +- "If true, when server is silently closing connections due to idle timeout, serialize " +- "the connection close packets which will be added to time wait list.") +- +-QUICHE_FLAG(bool, quic_reloadable_flag_quic_add_stream_info_to_idle_close_detail, false, +- "If true, include stream information in idle timeout connection close detail.") +- +-QUICHE_FLAG(bool, quic_reloadable_flag_quic_allow_backend_set_stream_ttl, false, +- "If true, check backend response header for X-Response-Ttl. If it is provided, the " +- "stream TTL is set. A QUIC stream will be immediately canceled when tries to write " +- "data if this TTL expired.") +- +-QUICHE_FLAG(bool, quic_reloadable_flag_quic_allow_client_enabled_bbr_v2, true, +- "If true, allow client to enable BBRv2 on server via connection option 'B2ON'.") +- +-QUICHE_FLAG(bool, quic_reloadable_flag_quic_alpn_dispatch, false, +- "Support different QUIC sessions, as indicated by ALPN. Used for QBONE.") +- +-QUICHE_FLAG(bool, quic_reloadable_flag_quic_bbr2_avoid_too_low_probe_bw_cwnd, false, +- "If true, QUIC BBRv2's PROBE_BW mode will not reduce cwnd below BDP+ack_height.") +- +-QUICHE_FLAG(bool, quic_reloadable_flag_quic_bbr2_fewer_startup_round_trips, false, +- "When true, the 1RTT and 2RTT connection options decrease the number of round trips in " +- "BBRv2 STARTUP without a 25% bandwidth increase to 1 or 2 round trips respectively.") +- +-QUICHE_FLAG( +- bool, quic_reloadable_flag_quic_bbr2_limit_inflight_hi, false, +- "When true, the B2HI connection option limits reduction of inflight_hi to (1-Beta)*CWND.") +- +-QUICHE_FLAG(bool, quic_reloadable_flag_quic_bbr2_use_post_inflight_to_detect_queuing, false, +- "If true, QUIC BBRv2 will use inflight byte after congestion event to detect queuing " +- "during PROBE_UP.") +- +-QUICHE_FLAG(bool, quic_reloadable_flag_quic_bbr_no_bytes_acked_in_startup_recovery, false, +- "When in STARTUP and recovery, do not add bytes_acked to QUIC BBR's CWND in " +- "CalculateCongestionWindow()") +- +-QUICHE_FLAG(bool, quic_reloadable_flag_quic_bootstrap_cwnd_by_spdy_priority, true, +- "If true, bootstrap initial QUIC cwnd by SPDY priorities.") +- +-QUICHE_FLAG(bool, quic_reloadable_flag_quic_cap_large_client_initial_rtt, true, +- "If true, cap client suggested initial RTT to 1s if it is longer than 1s.") +- +-QUICHE_FLAG(bool, quic_reloadable_flag_quic_clean_up_spdy_session_destructor, false, +- "If true, QuicSpdySession's destructor won't need to do cleanup.") +- +-QUICHE_FLAG(bool, quic_reloadable_flag_quic_close_connection_in_on_can_write_with_blocked_writer, +- false, +- "If true, close connection if writer is still blocked while OnCanWrite is called.") +- +-QUICHE_FLAG(bool, quic_reloadable_flag_quic_close_connection_on_serialization_failure, false, +- "If true, close connection on packet serialization failures.") +- +-QUICHE_FLAG(bool, quic_reloadable_flag_quic_conservative_bursts, false, +- "If true, set burst token to 2 in cwnd bootstrapping experiment.") +- +-QUICHE_FLAG(bool, quic_reloadable_flag_quic_conservative_cwnd_and_pacing_gains, false, +- "If true, uses conservative cwnd gain and pacing gain when cwnd gets bootstrapped.") +- +-QUICHE_FLAG( +- bool, quic_reloadable_flag_quic_copy_bbr_cwnd_to_bbr2, false, +- "If true, when switching from BBR to BBRv2, BBRv2 will use BBR's cwnd as its initial cwnd.") +- +-QUICHE_FLAG(bool, quic_reloadable_flag_quic_default_enable_5rto_blackhole_detection2, true, +- "If true, default-enable 5RTO blachole detection.") +- +-QUICHE_FLAG(bool, quic_reloadable_flag_quic_default_on_pto, false, +- "If true, default on PTO which unifies TLP + RTO loss recovery.") +- +-QUICHE_FLAG(bool, quic_reloadable_flag_quic_default_to_bbr, true, +- "When true, defaults to BBR congestion control instead of Cubic.") +- +-QUICHE_FLAG(bool, quic_reloadable_flag_quic_default_to_bbr_v2, false, +- "If true, use BBRv2 as the default congestion controller. Takes precedence over " +- "--quic_default_to_bbr.") +- +-QUICHE_FLAG(bool, quic_reloadable_flag_quic_disable_server_blackhole_detection, false, +- "If true, disable blackhole detection on server side.") +- +-QUICHE_FLAG(bool, quic_reloadable_flag_quic_disable_version_draft_27, false, +- "If true, disable QUIC version h3-27.") +- +-QUICHE_FLAG(bool, quic_reloadable_flag_quic_disable_version_draft_29, false, +- "If true, disable QUIC version h3-29.") +- +-QUICHE_FLAG(bool, quic_reloadable_flag_quic_disable_version_q043, false, +- "If true, disable QUIC version Q043.") +- +-QUICHE_FLAG(bool, quic_reloadable_flag_quic_disable_version_q046, false, +- "If true, disable QUIC version Q046.") +- +-QUICHE_FLAG(bool, quic_reloadable_flag_quic_disable_version_q050, false, +- "If true, disable QUIC version Q050.") +- +-QUICHE_FLAG(bool, quic_reloadable_flag_quic_disable_version_t050, false, +- "If true, disable QUIC version h3-T050.") +- +-QUICHE_FLAG(bool, quic_reloadable_flag_quic_disable_version_t051, false, +- "If true, disable QUIC version h3-T051.") +- +-QUICHE_FLAG(bool, quic_reloadable_flag_quic_discard_initial_packet_with_key_dropped, false, +- "If true, discard INITIAL packet if the key has been dropped.") +- +-QUICHE_FLAG( +- bool, quic_reloadable_flag_quic_do_not_accept_stop_waiting, false, +- "In v44 and above, where STOP_WAITING is never sent, close the connection if it's received.") +- +-QUICHE_FLAG(bool, quic_reloadable_flag_quic_donot_reset_ideal_next_packet_send_time, false, +- "If true, stop resetting ideal_next_packet_send_time_ in pacing sender.") +- +-QUICHE_FLAG(bool, quic_reloadable_flag_quic_enable_loss_detection_experiment_at_gfe, false, +- "If ture, enable GFE-picked loss detection experiment.") +- +-QUICHE_FLAG(bool, quic_reloadable_flag_quic_enable_loss_detection_tuner, false, +- "If true, allow QUIC loss detection tuning to be enabled by connection option ELDT.") +- +-QUICHE_FLAG( +- bool, quic_reloadable_flag_quic_enable_mtu_discovery_at_server, false, +- "If true, QUIC will default enable MTU discovery at server, with a target of 1450 bytes.") +- +-QUICHE_FLAG(bool, quic_reloadable_flag_quic_enabled, false, "") +- +-QUICHE_FLAG(bool, quic_reloadable_flag_quic_fix_arm_pto_for_application_data, false, +- "If true, do not arm PTO for application data until handshake confirmed.") +- +-QUICHE_FLAG(bool, quic_reloadable_flag_quic_fix_bytes_left_for_batch_write, false, +- "If true, convert bytes_left_for_batch_write_ to unsigned int.") +- +-QUICHE_FLAG( +- bool, quic_reloadable_flag_quic_fix_http3_goaway_stream_id, false, +- "If true, send the lowest stream ID that can be retried by the client in a GOAWAY frame. If " +- "false, send the highest received stream ID, which actually should not be retried.") +- +-QUICHE_FLAG(bool, quic_reloadable_flag_quic_fix_out_of_order_sending, false, +- "If true, fix a potential out of order sending caused by handshake gets confirmed " +- "while the coalescer is not empty.") +- +-QUICHE_FLAG( +- bool, quic_reloadable_flag_quic_fix_pto_pending_timer_count, false, +- "If true, make sure there is pending timer credit when trying to PTO retransmit any packets.") +- +-QUICHE_FLAG(bool, quic_reloadable_flag_quic_fix_undecryptable_packets2, false, +- "If true, remove processed undecryptable packets.") +- +-QUICHE_FLAG(bool, quic_reloadable_flag_quic_get_stream_information_from_stream_map, true, +- "If true, gQUIC will only consult stream_map in QuicSession::GetNumActiveStreams().") +- +-QUICHE_FLAG(bool, quic_reloadable_flag_quic_give_sent_packet_to_debug_visitor_after_sent, false, +- "If true, QUIC connection will pass sent packet information to the debug visitor after " +- "a packet is recorded as sent in sent packet manager.") +- +-QUICHE_FLAG(bool, quic_reloadable_flag_quic_http3_new_default_urgency_value, false, +- "If true, QuicStream::kDefaultUrgency is 3, otherwise 1.") +- +-QUICHE_FLAG(bool, quic_reloadable_flag_quic_ip_based_cwnd_exp, true, +- "If true, enable IP address based CWND bootstrapping experiment with different " +- "bandwidth models and priorities. ") +- +-QUICHE_FLAG(bool, quic_reloadable_flag_quic_listener_never_fake_epollout, false, +- "If true, QuicListener::OnSocketIsWritable will always return false, which means there " +- "will never be a fake EPOLLOUT event in the next epoll iteration.") +- +-QUICHE_FLAG(bool, +- quic_reloadable_flag_quic_neuter_initial_packet_in_coalescer_with_initial_key_discarded, +- false, "If true, neuter initial packet in the coalescer when discarding initial keys.") +- +-QUICHE_FLAG(bool, quic_reloadable_flag_quic_no_dup_experiment_id_2, false, +- "If true, transport connection stats doesn't report duplicated experiments for same " +- "connection.") +- +-QUICHE_FLAG(bool, quic_reloadable_flag_quic_no_silent_close_for_idle_timeout, true, +- "If true, always send connection close for idle timeout if NSLC is received.") +- +-QUICHE_FLAG(bool, quic_reloadable_flag_quic_only_set_uaid_in_tcs_visitor, false, +- "If true, QuicTransportConnectionStatsVisitor::PopulateTransportConnectionStats will " +- "be the only place where TCS's uaid field is set.") +- +-QUICHE_FLAG(bool, quic_reloadable_flag_quic_only_truncate_long_cids, true, +- "In IETF QUIC, only truncate long CIDs from the client's Initial, don't modify them.") +- +-QUICHE_FLAG(bool, quic_reloadable_flag_quic_preferred_altsvc_version, false, +- "When true, we will send a preferred QUIC version at the start of our Alt-Svc list.") +- +-QUICHE_FLAG(bool, quic_reloadable_flag_quic_proxy_write_packed_strings, false, +- "If true, QuicProxyDispatcher will write packed_client_address and packed_server_vip " +- "in TcpProxyHeaderProto.") +- +-QUICHE_FLAG(bool, quic_reloadable_flag_quic_record_frontend_service_vip_mapping, true, +- "If true, for L1 GFE, as requests come in, record frontend service to VIP mapping " +- "which is used to announce VIP in SHLO for proxied sessions. ") +- +-QUICHE_FLAG(bool, quic_reloadable_flag_quic_record_received_min_ack_delay, false, +- "If true, record the received min_ack_delay in transport parameters to QUIC config.") +- +-QUICHE_FLAG(bool, quic_reloadable_flag_quic_reject_all_traffic, false, "") +- +-QUICHE_FLAG(bool, quic_reloadable_flag_quic_remove_zombie_streams, true, +- "If true, QuicSession doesn't keep a separate zombie_streams. Instead, all streams are " +- "stored in stream_map_.") +- +-QUICHE_FLAG(bool, quic_reloadable_flag_quic_require_handshake_confirmation, false, +- "If true, require handshake confirmation for QUIC connections, functionally disabling " +- "0-rtt handshakes.") +- +-QUICHE_FLAG( +- bool, quic_reloadable_flag_quic_send_key_update_not_yet_supported, false, +- "When true, QUIC+TLS versions will send the key_update_not_yet_supported transport parameter.") +- +-QUICHE_FLAG(bool, quic_reloadable_flag_quic_send_path_response, false, +- "If true, send PATH_RESPONSE upon receiving PATH_CHALLENGE regardless of perspective. " +- "--gfe2_reloadable_flag_quic_start_peer_migration_earlier has to be true before turn " +- "on this flag.") +- +-QUICHE_FLAG(bool, quic_reloadable_flag_quic_send_timestamps, false, +- "When the STMP connection option is sent by the client, timestamps in the QUIC ACK " +- "frame are sent and processed.") +- +-QUICHE_FLAG(bool, quic_reloadable_flag_quic_server_push, false, +- "If true, enable server push feature on QUIC.") +- +-QUICHE_FLAG(bool, quic_reloadable_flag_quic_set_resumed_ssl_session_early, false, +- "If true, set resumed_ssl_session if this is a 0-RTT connection.") +- +-QUICHE_FLAG(bool, quic_reloadable_flag_quic_start_peer_migration_earlier, false, +- "If true, while reading an IETF quic packet, start peer migration immediately when " +- "detecting the existence of any non-probing frame instead of at the end of the packet.") +- +-QUICHE_FLAG(bool, quic_reloadable_flag_quic_stop_sending_uses_ietf_error_code, false, +- "If true, use IETF QUIC application error codes in STOP_SENDING frames. If false, use " +- "QuicRstStreamErrorCodes.") +- +-QUICHE_FLAG(bool, quic_reloadable_flag_quic_testonly_default_false, false, +- "A testonly reloadable flag that will always default to false.") +- +-QUICHE_FLAG(bool, quic_reloadable_flag_quic_testonly_default_true, true, +- "A testonly reloadable flag that will always default to true.") +- +-QUICHE_FLAG(bool, quic_reloadable_flag_quic_unified_iw_options, false, +- "When true, set the initial congestion control window from connection options in " +- "QuicSentPacketManager rather than TcpCubicSenderBytes.") +- +-QUICHE_FLAG(bool, quic_reloadable_flag_quic_use_header_stage_idle_list2, false, +- "If true, use header stage idle list for QUIC connections in GFE.") +- +-QUICHE_FLAG(bool, quic_reloadable_flag_quic_use_leto_key_exchange, false, +- "If true, QUIC will attempt to use the Leto key exchange service and only fall back to " +- "local key exchange if that fails.") +- +-QUICHE_FLAG(bool, quic_reloadable_flag_send_quic_fallback_server_config_on_leto_error, false, +- "If true and using Leto for QUIC shared-key calculations, GFE will react to a failure " +- "to contact Leto by sending a REJ containing a fallback ServerConfig, allowing the " +- "client to continue the handshake.") +- +-QUICHE_FLAG( +- bool, quic_restart_flag_dont_fetch_quic_private_keys_from_leto, false, +- "If true, GFE will not request private keys when fetching QUIC ServerConfigs from Leto.") +- +-QUICHE_FLAG(bool, quic_restart_flag_quic_adjust_initial_cwnd_by_gws, true, +- "If true, GFE informs backend that a client request is the first one on the connection " +- "via frontline header \"first_request=1\". Also, adjust initial cwnd based on " +- "X-Google-Gws-Initial-Cwnd-Mode sent by GWS.") +- +-QUICHE_FLAG( +- bool, quic_restart_flag_quic_allow_loas_multipacket_chlo, false, +- "If true, inspects QUIC CHLOs for kLOAS and early creates sessions to allow multi-packet CHLOs") +- +-QUICHE_FLAG( +- bool, quic_restart_flag_quic_disable_gws_cwnd_experiment, false, +- "If true, X-Google-Gws-Initial-Cwnd-Mode related header sent by GWS becomes no-op for QUIC.") +- +-QUICHE_FLAG(bool, quic_restart_flag_quic_enable_tls_resumption_v4, true, +- "If true, enables support for TLS resumption in QUIC.") +- +-QUICHE_FLAG(bool, quic_restart_flag_quic_enable_zero_rtt_for_tls_v2, true, +- "If true, support for IETF QUIC 0-rtt is enabled.") +- +-QUICHE_FLAG(bool, quic_restart_flag_quic_offload_pacing_to_usps2, false, +- "If true, QUIC offload pacing when using USPS as egress method.") +- +-QUICHE_FLAG(bool, quic_restart_flag_quic_rx_ring_use_tpacket_v3, false, +- "If true, use TPACKET_V3 for QuicRxRing instead of TPACKET_V2.") +- +-QUICHE_FLAG(bool, quic_restart_flag_quic_should_accept_new_connection, false, +- "If true, reject QUIC CHLO packets when dispatcher is asked to do so.") +- +-QUICHE_FLAG(bool, quic_restart_flag_quic_support_release_time_for_gso, false, +- "If true, QuicGsoBatchWriter will support release time if it is available and the " +- "process has the permission to do so.") +- +-QUICHE_FLAG(bool, quic_restart_flag_quic_testonly_default_false, false, +- "A testonly restart flag that will always default to false.") +- +-QUICHE_FLAG(bool, quic_restart_flag_quic_testonly_default_true, true, +- "A testonly restart flag that will always default to true.") +- +-QUICHE_FLAG( +- bool, quic_restart_flag_quic_use_leto_for_quic_configs, false, +- "If true, use Leto to fetch QUIC server configs instead of using the seeds from Memento.") +- +-QUICHE_FLAG(bool, quic_restart_flag_quic_use_pigeon_socket_to_backend, false, +- "If true, create a shared pigeon socket for all quic to backend connections and switch " +- "to use it after successful handshake.") +- +-QUICHE_FLAG(bool, spdy_reloadable_flag_quic_bootstrap_cwnd_by_spdy_priority, true, +- "If true, bootstrap initial QUIC cwnd by SPDY priorities.") +- +-QUICHE_FLAG(bool, spdy_reloadable_flag_quic_clean_up_spdy_session_destructor, false, +- "If true, QuicSpdySession's destructor won't need to do cleanup.") +- +-QUICHE_FLAG( +- bool, spdy_reloadable_flag_spdy_discard_response_body_if_disallowed, false, +- "If true, SPDY will discard all response body bytes when response code indicates no response " +- "body should exist. Previously, we only discard partial bytes on the first response processing " +- "and the rest of the response bytes would still be delivered even though the response code " +- "said there should not be any body associated with the response code.") +- +-QUICHE_FLAG(bool, quic_allow_chlo_buffering, true, +- "If true, allows packets to be buffered in anticipation of a " +- "future CHLO, and allow CHLO packets to be buffered until next " +- "iteration of the event loop.") +- +-QUICHE_FLAG(bool, quic_disable_pacing_for_perf_tests, false, "If true, disable pacing in QUIC") +- +-QUICHE_FLAG(bool, quic_enforce_single_packet_chlo, true, +- "If true, enforce that QUIC CHLOs fit in one packet") +- +-QUICHE_FLAG(int64_t, quic_time_wait_list_max_connections, 600000, +- "Maximum number of connections on the time-wait list. " +- "A negative value implies no configured limit.") +- +-QUICHE_FLAG(int64_t, quic_time_wait_list_seconds, 200, +- "Time period for which a given connection_id should live in " +- "the time-wait state.") +- +-QUICHE_FLAG(double, quic_bbr_cwnd_gain, 2.0f, +- "Congestion window gain for QUIC BBR during PROBE_BW phase.") +- +-QUICHE_FLAG(int32_t, quic_buffered_data_threshold, 8 * 1024, +- "If buffered data in QUIC stream is less than this " +- "threshold, buffers all provided data or asks upper layer for more data") +- +-QUICHE_FLAG(int32_t, quic_send_buffer_max_data_slice_size, 4 * 1024, +- "Max size of data slice in bytes for QUIC stream send buffer.") +- +-QUICHE_FLAG(int32_t, quic_lumpy_pacing_size, 2, +- "Number of packets that the pacing sender allows in bursts during " +- "pacing. This flag is ignored if a flow's estimated bandwidth is " +- "lower than 1200 kbps.") +- +-QUICHE_FLAG(double, quic_lumpy_pacing_cwnd_fraction, 0.25f, +- "Congestion window fraction that the pacing sender allows in bursts " +- "during pacing.") +- +-QUICHE_FLAG(int32_t, quic_max_pace_time_into_future_ms, 10, +- "Max time that QUIC can pace packets into the future in ms.") +- +-QUICHE_FLAG(double, quic_pace_time_into_future_srtt_fraction, 0.125f, +- "Smoothed RTT fraction that a connection can pace packets into the future.") +- +-QUICHE_FLAG(bool, quic_export_server_num_packets_per_write_histogram, false, +- "If true, export number of packets written per write operation histogram.") +- +-QUICHE_FLAG(bool, quic_disable_version_negotiation_grease_randomness, false, +- "If true, use predictable version negotiation versions.") +- +-QUICHE_FLAG(bool, quic_enable_http3_grease_randomness, true, +- "If true, use random greased settings and frames.") +- +-QUICHE_FLAG(int64_t, quic_max_tracked_packet_count, 10000, "Maximum number of tracked packets.") +- +-QUICHE_FLAG(bool, quic_prober_uses_length_prefixed_connection_ids, false, +- "If true, QuicFramer::WriteClientVersionNegotiationProbePacket uses " +- "length-prefixed connection IDs.") +- +-QUICHE_FLAG(bool, quic_client_convert_http_header_name_to_lowercase, true, +- "If true, HTTP request header names sent from QuicSpdyClientBase(and " +- "descendents) will be automatically converted to lower case.") +- +-QUICHE_FLAG(bool, quic_enable_http3_server_push, false, +- "If true, server push will be allowed in QUIC versions that use HTTP/3.") +- +-QUICHE_FLAG(int32_t, quic_bbr2_default_probe_bw_base_duration_ms, 2000, +- "The default minimum duration for BBRv2-native probes, in milliseconds.") +- +-QUICHE_FLAG(int32_t, quic_bbr2_default_probe_bw_max_rand_duration_ms, 1000, +- "The default upper bound of the random amount of BBRv2-native " +- "probes, in milliseconds.") +- +-QUICHE_FLAG(int32_t, quic_bbr2_default_probe_rtt_period_ms, 10000, +- "The default period for entering PROBE_RTT, in milliseconds.") +- +-QUICHE_FLAG(double, quic_bbr2_default_loss_threshold, 0.02, +- "The default loss threshold for QUIC BBRv2, should be a value " +- "between 0 and 1.") +- +-QUICHE_FLAG(int32_t, quic_bbr2_default_startup_full_loss_count, 8, +- "The default minimum number of loss marking events to exit STARTUP.") +- +-QUICHE_FLAG(int32_t, quic_bbr2_default_probe_bw_full_loss_count, 2, +- "The default minimum number of loss marking events to exit PROBE_UP phase.") +- +-QUICHE_FLAG(double, quic_bbr2_default_inflight_hi_headroom, 0.01, +- "The default fraction of unutilized headroom to try to leave in path " +- "upon high loss.") +- +-QUICHE_FLAG(int32_t, quic_bbr2_default_initial_ack_height_filter_window, 10, +- "The default initial value of the max ack height filter's window length.") +- +-QUICHE_FLAG(double, quic_ack_aggregation_bandwidth_threshold, 1.0, +- "If the bandwidth during ack aggregation is smaller than (estimated " +- "bandwidth * this flag), consider the current aggregation completed " +- "and starts a new one.") +- +-QUICHE_FLAG(int32_t, quic_anti_amplification_factor, 5, +- "Anti-amplification factor. Before address validation, server will " +- "send no more than factor times bytes received.") +- +-QUICHE_FLAG(int32_t, quic_max_buffered_crypto_bytes, 16 * 1024, +- "The maximum amount of CRYPTO frame data that can be buffered.") +- +-QUICHE_FLAG(int32_t, quic_max_aggressive_retransmittable_on_wire_ping_count, 0, +- "If set to non-zero, the maximum number of consecutive pings that " +- "can be sent with aggressive initial retransmittable on wire timeout " +- "if there is no new data received. After which, the timeout will be " +- "exponentially back off until exceeds the default ping timeout.") +- +-QUICHE_FLAG(int32_t, quic_max_congestion_window, 2000, "The maximum congestion window in packets.") +- +-QUICHE_FLAG(int32_t, quic_max_streams_window_divisor, 2, +- "The divisor that controls how often MAX_STREAMS frame is sent.") +- +-QUICHE_FLAG(bool, http2_reloadable_flag_http2_testonly_default_false, false, +- "A testonly reloadable flag that will always default to false.") +- +-QUICHE_FLAG(bool, http2_restart_flag_http2_testonly_default_false, false, +- "A testonly restart flag that will always default to false.") +- +-QUICHE_FLAG(bool, spdy_reloadable_flag_spdy_testonly_default_false, false, +- "A testonly reloadable flag that will always default to false.") +- +-QUICHE_FLAG(bool, spdy_restart_flag_spdy_testonly_default_false, false, +- "A testonly restart flag that will always default to false.") +- +-#endif +diff --git a/source/extensions/quic_listeners/quiche/platform/http2_flags_impl.h b/source/extensions/quic_listeners/quiche/platform/http2_flags_impl.h +index 7d2561469..dc6fe5429 100644 +--- a/source/extensions/quic_listeners/quiche/platform/http2_flags_impl.h ++++ b/source/extensions/quic_listeners/quiche/platform/http2_flags_impl.h +@@ -8,10 +8,10 @@ + + #include "extensions/quic_listeners/quiche/platform/flags_impl.h" + +-#define GetHttp2ReloadableFlagImpl(flag) quiche::FLAGS_http2_reloadable_flag_##flag->value() ++#define GetHttp2ReloadableFlagImpl(flag) quiche::FLAGS_quic_reloadable_flag_##flag->value() + + #define SetHttp2ReloadableFlagImpl(flag, value) \ +- quiche::FLAGS_http2_reloadable_flag_##flag->SetValue(value) ++ quiche::FLAGS_quic_reloadable_flag_##flag->setValue(value) + + #define HTTP2_CODE_COUNT_N_IMPL(flag, instance, total) \ + do { \ +diff --git a/source/extensions/quic_listeners/quiche/platform/quic_aligned_impl.h b/source/extensions/quic_listeners/quiche/platform/quic_aligned_impl.h +deleted file mode 100644 +index 3f595380b..000000000 +--- a/source/extensions/quic_listeners/quiche/platform/quic_aligned_impl.h ++++ /dev/null +@@ -1,18 +0,0 @@ +-#pragma once +- +-#include "absl/base/optimization.h" +- +-// NOLINT(namespace-envoy) +- +-// This file is part of the QUICHE platform implementation, and is not to be +-// consumed or referenced directly by other Envoy code. It serves purely as a +-// porting layer for QUICHE. +- +-#define QUIC_ALIGN_OF_IMPL alignof +-#ifdef _MSC_VER +-#define QUIC_ALIGNED_IMPL(X) __declspec(align(X)) +-#else +-#define QUIC_ALIGNED_IMPL(X) __attribute__((aligned(X))) +-#endif +-#define QUIC_CACHELINE_ALIGNED_IMPL ABSL_CACHELINE_ALIGNED +-#define QUIC_CACHELINE_SIZE_IMPL ABSL_CACHELINE_SIZE +diff --git a/source/extensions/quic_listeners/quiche/platform/quic_cert_utils_impl.cc b/source/extensions/quic_listeners/quiche/platform/quic_cert_utils_impl.cc +index 2a886a12c..27b977908 100644 +--- a/source/extensions/quic_listeners/quiche/platform/quic_cert_utils_impl.cc ++++ b/source/extensions/quic_listeners/quiche/platform/quic_cert_utils_impl.cc +@@ -10,25 +10,7 @@ + + namespace quic { + +-// static +-bool QuicCertUtilsImpl::ExtractSubjectNameFromDERCert(quiche::QuicheStringPiece cert, +- quiche::QuicheStringPiece* subject_out) { +- CBS tbs_certificate; +- if (!SeekToSubject(cert, &tbs_certificate)) { +- return false; +- } +- +- CBS subject; +- if (!CBS_get_asn1_element(&tbs_certificate, &subject, CBS_ASN1_SEQUENCE)) { +- return false; +- } +- *subject_out = +- absl::string_view(reinterpret_cast(CBS_data(&subject)), CBS_len(&subject)); +- return true; +-} +- +-// static +-bool QuicCertUtilsImpl::SeekToSubject(quiche::QuicheStringPiece cert, CBS* tbs_certificate) { ++bool seekToSubject(absl::string_view cert, CBS* tbs_certificate) { + CBS der; + CBS_init(&der, reinterpret_cast(cert.data()), cert.size()); + CBS certificate; +@@ -65,4 +47,22 @@ bool QuicCertUtilsImpl::SeekToSubject(quiche::QuicheStringPiece cert, CBS* tbs_c + return true; + } + ++// static ++// NOLINTNEXTLINE(readability-identifier-naming) ++bool QuicCertUtilsImpl::ExtractSubjectNameFromDERCert(absl::string_view cert, ++ absl::string_view* subject_out) { ++ CBS tbs_certificate; ++ if (!seekToSubject(cert, &tbs_certificate)) { ++ return false; ++ } ++ ++ CBS subject; ++ if (!CBS_get_asn1_element(&tbs_certificate, &subject, CBS_ASN1_SEQUENCE)) { ++ return false; ++ } ++ *subject_out = ++ absl::string_view(reinterpret_cast(CBS_data(&subject)), CBS_len(&subject)); ++ return true; ++} ++ + } // namespace quic +diff --git a/source/extensions/quic_listeners/quiche/platform/quic_cert_utils_impl.h b/source/extensions/quic_listeners/quiche/platform/quic_cert_utils_impl.h +index 0c41b9dbc..29b882b7d 100644 +--- a/source/extensions/quic_listeners/quiche/platform/quic_cert_utils_impl.h ++++ b/source/extensions/quic_listeners/quiche/platform/quic_cert_utils_impl.h +@@ -6,18 +6,15 @@ + // consumed or referenced directly by other Envoy code. It serves purely as a + // porting layer for QUICHE. + ++#include "absl/strings/string_view.h" + #include "openssl/base.h" +-#include "quiche/common/platform/api/quiche_string_piece.h" + + namespace quic { + + class QuicCertUtilsImpl { + public: +- static bool ExtractSubjectNameFromDERCert(quiche::QuicheStringPiece cert, +- quiche::QuicheStringPiece* subject_out); +- +-private: +- static bool SeekToSubject(quiche::QuicheStringPiece cert, CBS* tbs_certificate); ++ // NOLINTNEXTLINE(readability-identifier-naming) ++ static bool ExtractSubjectNameFromDERCert(absl::string_view cert, absl::string_view* subject_out); + }; + + } // namespace quic +diff --git a/source/extensions/quic_listeners/quiche/platform/quic_fallthrough_impl.h b/source/extensions/quic_listeners/quiche/platform/quic_fallthrough_impl.h +deleted file mode 100644 +index aa9d6bc36..000000000 +--- a/source/extensions/quic_listeners/quiche/platform/quic_fallthrough_impl.h ++++ /dev/null +@@ -1,11 +0,0 @@ +-#pragma once +- +-// NOLINT(namespace-envoy) +- +-// This file is part of the QUICHE platform implementation, and is not to be +-// consumed or referenced directly by other Envoy code. It serves purely as a +-// porting layer for QUICHE. +- +-#include "absl/base/macros.h" +- +-#define QUIC_FALLTHROUGH_INTENDED_IMPL ABSL_FALLTHROUGH_INTENDED +diff --git a/source/extensions/quic_listeners/quiche/platform/quic_file_utils_impl.cc b/source/extensions/quic_listeners/quiche/platform/quic_file_utils_impl.cc +index 91d52c44a..b2e396fab 100644 +--- a/source/extensions/quic_listeners/quiche/platform/quic_file_utils_impl.cc ++++ b/source/extensions/quic_listeners/quiche/platform/quic_file_utils_impl.cc +@@ -36,6 +36,7 @@ void depthFirstTraverseDirectory(const std::string& dirname, std::vector ReadFileContentsImpl(const std::string& dirname) { + std::vector files; + depthFirstTraverseDirectory(dirname, files); +@@ -43,7 +44,8 @@ std::vector ReadFileContentsImpl(const std::string& dirname) { + } + + // Reads the contents of |filename| as a string into |contents|. +-void ReadFileContentsImpl(quiche::QuicheStringPiece filename, std::string* contents) { ++// NOLINTNEXTLINE(readability-identifier-naming) ++void ReadFileContentsImpl(absl::string_view filename, std::string* contents) { + #ifdef WIN32 + Envoy::Filesystem::InstanceImplWin32 fs; + #else +diff --git a/source/extensions/quic_listeners/quiche/platform/quic_file_utils_impl.h b/source/extensions/quic_listeners/quiche/platform/quic_file_utils_impl.h +index 654c1ad18..25c31e9de 100644 +--- a/source/extensions/quic_listeners/quiche/platform/quic_file_utils_impl.h ++++ b/source/extensions/quic_listeners/quiche/platform/quic_file_utils_impl.h +@@ -8,7 +8,7 @@ + + #include + +-#include "quiche/common/platform/api/quiche_string_piece.h" ++#include "absl/strings/string_view.h" + + namespace quic { + +@@ -16,6 +16,7 @@ namespace quic { + * Traverses the directory |dirname| and returns all of the files it contains. + * @param dirname full path without trailing '/'. + */ ++// NOLINTNEXTLINE(readability-identifier-naming)` + std::vector ReadFileContentsImpl(const std::string& dirname); + + /** +@@ -23,6 +24,7 @@ std::vector ReadFileContentsImpl(const std::string& dirname); + * @param filename the full path to the file. + * @param contents output location of the file content. + */ +-void ReadFileContentsImpl(quiche::QuicheStringPiece filename, std::string* contents); ++// NOLINTNEXTLINE(readability-identifier-naming) ++void ReadFileContentsImpl(absl::string_view filename, std::string* contents); + + } // namespace quic +diff --git a/source/extensions/quic_listeners/quiche/platform/quic_flags_impl.h b/source/extensions/quic_listeners/quiche/platform/quic_flags_impl.h +index 872495f2d..d562bb1a4 100644 +--- a/source/extensions/quic_listeners/quiche/platform/quic_flags_impl.h ++++ b/source/extensions/quic_listeners/quiche/platform/quic_flags_impl.h +@@ -15,16 +15,16 @@ + #define GetQuicFlagImpl(flag) (quiche::flag)->value() + + // |flag| is the global flag variable, which is a pointer to TypedFlag. +-#define SetQuicFlagImpl(flag, value) (quiche::flag)->SetValue(value) ++#define SetQuicFlagImpl(flag, value) (quiche::flag)->setValue(value) + + #define GetQuicReloadableFlagImpl(flag) quiche::FLAGS_quic_reloadable_flag_##flag->value() + + #define SetQuicReloadableFlagImpl(flag, value) \ +- quiche::FLAGS_quic_reloadable_flag_##flag->SetValue(value) ++ quiche::FLAGS_quic_reloadable_flag_##flag->setValue(value) + + #define GetQuicRestartFlagImpl(flag) quiche::FLAGS_quic_restart_flag_##flag->value() + +-#define SetQuicRestartFlagImpl(flag, value) quiche::FLAGS_quic_restart_flag_##flag->SetValue(value) ++#define SetQuicRestartFlagImpl(flag, value) quiche::FLAGS_quic_restart_flag_##flag->setValue(value) + + // Not wired into command-line parsing. + #define DEFINE_QUIC_COMMAND_LINE_FLAG_IMPL(type, flag, value, help) \ +diff --git a/source/extensions/quic_listeners/quiche/platform/quic_hostname_utils_impl.cc b/source/extensions/quic_listeners/quiche/platform/quic_hostname_utils_impl.cc +index bcbafb566..75849611d 100644 +--- a/source/extensions/quic_listeners/quiche/platform/quic_hostname_utils_impl.cc ++++ b/source/extensions/quic_listeners/quiche/platform/quic_hostname_utils_impl.cc +@@ -19,7 +19,8 @@ + namespace quic { + + // static +-bool QuicHostnameUtilsImpl::IsValidSNI(quiche::QuicheStringPiece sni) { ++// NOLINTNEXTLINE(readability-identifier-naming) ++bool QuicHostnameUtilsImpl::IsValidSNI(absl::string_view sni) { + // TODO(wub): Implement it on top of GoogleUrl, once it is available. + + return sni.find_last_of('.') != std::string::npos && +@@ -27,7 +28,8 @@ bool QuicHostnameUtilsImpl::IsValidSNI(quiche::QuicheStringPiece sni) { + } + + // static +-std::string QuicHostnameUtilsImpl::NormalizeHostname(quiche::QuicheStringPiece hostname) { ++// NOLINTNEXTLINE(readability-identifier-naming) ++std::string QuicHostnameUtilsImpl::NormalizeHostname(absl::string_view hostname) { + // TODO(wub): Implement it on top of GoogleUrl, once it is available. + std::string host = absl::AsciiStrToLower(hostname); + +diff --git a/source/extensions/quic_listeners/quiche/platform/quic_hostname_utils_impl.h b/source/extensions/quic_listeners/quiche/platform/quic_hostname_utils_impl.h +index 2b7ed4357..67cd787d0 100644 +--- a/source/extensions/quic_listeners/quiche/platform/quic_hostname_utils_impl.h ++++ b/source/extensions/quic_listeners/quiche/platform/quic_hostname_utils_impl.h +@@ -6,7 +6,7 @@ + // consumed or referenced directly by other Envoy code. It serves purely as a + // porting layer for QUICHE. + +-#include "quiche/common/platform/api/quiche_string_piece.h" ++#include "absl/strings/string_view.h" + #include "quiche/quic/platform/api/quic_export.h" + + namespace quic { +@@ -18,7 +18,8 @@ public: + // (2) check that the hostname contains valid characters only; and + // (3) contains at least one dot. + // NOTE(wub): Only (3) is implemented for now. +- static bool IsValidSNI(quiche::QuicheStringPiece sni); ++ // NOLINTNEXTLINE(readability-identifier-naming) ++ static bool IsValidSNI(absl::string_view sni); + + // Normalize a hostname: + // (1) Canonicalize it, similar to what Chromium does in +@@ -27,7 +28,8 @@ public: + // (3) Remove the trailing '.'. + // WARNING: May mutate |hostname| in place. + // NOTE(wub): Only (2) and (3) are implemented for now. +- static std::string NormalizeHostname(quiche::QuicheStringPiece hostname); ++ // NOLINTNEXTLINE(readability-identifier-naming) ++ static std::string NormalizeHostname(absl::string_view hostname); + + private: + QuicHostnameUtilsImpl() = delete; +diff --git a/source/extensions/quic_listeners/quiche/platform/quic_macros_impl.h b/source/extensions/quic_listeners/quiche/platform/quic_macros_impl.h +deleted file mode 100644 +index b8b70a042..000000000 +--- a/source/extensions/quic_listeners/quiche/platform/quic_macros_impl.h ++++ /dev/null +@@ -1,13 +0,0 @@ +-#pragma once +- +-// NOLINT(namespace-envoy) +- +-// This file is part of the QUICHE platform implementation, and is not to be +-// consumed or referenced directly by other Envoy code. It serves purely as a +-// porting layer for QUICHE. +- +-#include "absl/base/attributes.h" +- +-#define QUIC_MUST_USE_RESULT_IMPL ABSL_MUST_USE_RESULT +-#define QUIC_UNUSED_IMPL ABSL_ATTRIBUTE_UNUSED +-#define QUIC_CONST_INIT_IMPL ABSL_CONST_INIT +diff --git a/source/extensions/quic_listeners/quiche/platform/quic_mem_slice_span_impl.cc b/source/extensions/quic_listeners/quiche/platform/quic_mem_slice_span_impl.cc +index c2eb527d6..9e46c37df 100644 +--- a/source/extensions/quic_listeners/quiche/platform/quic_mem_slice_span_impl.cc ++++ b/source/extensions/quic_listeners/quiche/platform/quic_mem_slice_span_impl.cc +@@ -10,7 +10,8 @@ + + namespace quic { + +-quiche::QuicheStringPiece QuicMemSliceSpanImpl::GetData(size_t index) { ++// NOLINTNEXTLINE(readability-identifier-naming) ++absl::string_view QuicMemSliceSpanImpl::GetData(size_t index) { + Envoy::Buffer::RawSliceVector slices = buffer_->getRawSlices(/*max_slices=*/index + 1); + ASSERT(slices.size() > index); + return {reinterpret_cast(slices[index].mem_), slices[index].len_}; +diff --git a/source/extensions/quic_listeners/quiche/platform/quic_mem_slice_span_impl.h b/source/extensions/quic_listeners/quiche/platform/quic_mem_slice_span_impl.h +index 1824fb8d1..ef40e6387 100644 +--- a/source/extensions/quic_listeners/quiche/platform/quic_mem_slice_span_impl.h ++++ b/source/extensions/quic_listeners/quiche/platform/quic_mem_slice_span_impl.h +@@ -9,7 +9,7 @@ + #include "envoy/buffer/buffer.h" + + #include "absl/container/fixed_array.h" +-#include "quiche/common/platform/api/quiche_string_piece.h" ++#include "absl/strings/string_view.h" + #include "quiche/quic/core/quic_types.h" + #include "quiche/quic/platform/api/quic_mem_slice.h" + +@@ -43,9 +43,13 @@ public: + } + + // QuicMemSliceSpan +- quiche::QuicheStringPiece GetData(size_t index); ++ // NOLINTNEXTLINE(readability-identifier-naming) ++ absl::string_view GetData(size_t index); ++ // NOLINTNEXTLINE(readability-identifier-naming) + QuicByteCount total_length() { return buffer_->length(); }; ++ // NOLINTNEXTLINE(readability-identifier-naming) + size_t NumSlices() { return buffer_->getRawSlices().size(); } ++ // NOLINTNEXTLINE(readability-identifier-naming) + template QuicByteCount ConsumeAll(ConsumeFunction consume); + bool empty() const { return buffer_->length() == 0; } + +@@ -54,6 +58,7 @@ private: + }; + + template ++// NOLINTNEXTLINE(readability-identifier-naming) + QuicByteCount QuicMemSliceSpanImpl::ConsumeAll(ConsumeFunction consume) { + size_t saved_length = 0; + for (auto& slice : buffer_->getRawSlices()) { +diff --git a/source/extensions/quic_listeners/quiche/platform/quiche_ptr_util_impl.h b/source/extensions/quic_listeners/quiche/platform/quic_testvalue_impl.h +similarity index 52% +rename from source/extensions/quic_listeners/quiche/platform/quiche_ptr_util_impl.h +rename to source/extensions/quic_listeners/quiche/platform/quic_testvalue_impl.h +index aaebe5d5c..4b0201c35 100644 +--- a/source/extensions/quic_listeners/quiche/platform/quiche_ptr_util_impl.h ++++ b/source/extensions/quic_listeners/quiche/platform/quic_testvalue_impl.h +@@ -6,12 +6,11 @@ + // consumed or referenced directly by other Envoy code. It serves purely as a + // porting layer for QUICHE. + +-#include "absl/memory/memory.h" ++#include "absl/strings/string_view.h" + +-namespace quiche { ++namespace quic { + +-template std::unique_ptr QuicheWrapUniqueImpl(T* ptr) { +- return absl::WrapUnique(ptr); +-} ++// NOLINTNEXTLINE(readability-identifier-naming) ++template void AdjustTestValueImpl(absl::string_view /*label*/, T* /*var*/) {} + +-} // namespace quiche ++} // namespace quic +diff --git a/source/extensions/quic_listeners/quiche/platform/quic_udp_socket_platform_impl.h b/source/extensions/quic_listeners/quiche/platform/quic_udp_socket_platform_impl.h +index 248cfc193..1e88abe46 100644 +--- a/source/extensions/quic_listeners/quiche/platform/quic_udp_socket_platform_impl.h ++++ b/source/extensions/quic_listeners/quiche/platform/quic_udp_socket_platform_impl.h +@@ -19,4 +19,7 @@ inline bool GetGooglePacketHeadersFromControlMessageImpl(struct ::cmsghdr* /*cms + return false; + } + ++// NOLINTNEXTLINE(readability-identifier-naming) ++inline void SetGoogleSocketOptionsImpl(int /*fd*/) {} ++ + } // namespace quic +diff --git a/source/extensions/quic_listeners/quiche/platform/quiche_arraysize_impl.h b/source/extensions/quic_listeners/quiche/platform/quiche_arraysize_impl.h +deleted file mode 100644 +index 7a23b53da..000000000 +--- a/source/extensions/quic_listeners/quiche/platform/quiche_arraysize_impl.h ++++ /dev/null +@@ -1,11 +0,0 @@ +-#pragma once +- +-#include "absl/base/macros.h" +- +-// NOLINT(namespace-envoy) +- +-// This file is part of the QUICHE platform implementation, and is not to be +-// consumed or referenced directly by other Envoy code. It serves purely as a +-// porting layer for QUICHE. +- +-#define QUICHE_ARRAYSIZE_IMPL(array) ABSL_ARRAYSIZE(array) +diff --git a/source/extensions/quic_listeners/quiche/platform/quiche_optional_impl.h b/source/extensions/quic_listeners/quiche/platform/quiche_optional_impl.h +deleted file mode 100644 +index f8b2b6c08..000000000 +--- a/source/extensions/quic_listeners/quiche/platform/quiche_optional_impl.h ++++ /dev/null +@@ -1,17 +0,0 @@ +-#pragma once +- +-#include "absl/types/optional.h" +- +-// NOLINT(namespace-envoy) +- +-// This file is part of the QUICHE platform implementation, and is not to be +-// consumed or referenced directly by other Envoy code. It serves purely as a +-// porting layer for QUICHE. +- +-namespace quiche { +- +-template using QuicheOptionalImpl = absl::optional; +- +-#define QUICHE_NULLOPT_IMPL absl::nullopt +- +-} // namespace quiche +diff --git a/source/extensions/quic_listeners/quiche/platform/quiche_text_utils_impl.h b/source/extensions/quic_listeners/quiche/platform/quiche_text_utils_impl.h +index 3a6d1a393..7b87c1cd6 100644 +--- a/source/extensions/quic_listeners/quiche/platform/quiche_text_utils_impl.h ++++ b/source/extensions/quic_listeners/quiche/platform/quiche_text_utils_impl.h +@@ -2,7 +2,6 @@ + + #include "common/common/base64.h" + +-#include "extensions/quic_listeners/quiche/platform/quiche_optional_impl.h" + #include "extensions/quic_listeners/quiche/platform/quiche_string_piece_impl.h" + #include "extensions/quic_listeners/quiche/platform/string_utils.h" + +@@ -13,6 +12,7 @@ + #include "absl/strings/str_cat.h" + #include "absl/strings/str_format.h" + #include "absl/strings/str_split.h" ++#include "absl/types/optional.h" + + // NOLINT(namespace-envoy) + +@@ -25,58 +25,16 @@ namespace quiche { + class QuicheTextUtilsImpl { + public: + // NOLINTNEXTLINE(readability-identifier-naming) +- static bool StartsWith(QuicheStringPieceImpl data, QuicheStringPieceImpl prefix) { +- return absl::StartsWith(data, prefix); +- } +- +- // NOLINTNEXTLINE(readability-identifier-naming) +- static bool EndsWith(QuicheStringPieceImpl data, QuicheStringPieceImpl suffix) { +- return absl::EndsWith(data, suffix); +- } +- +- // NOLINTNEXTLINE(readability-identifier-naming) +- static bool EndsWithIgnoreCase(QuicheStringPieceImpl data, QuicheStringPieceImpl suffix) { +- return absl::EndsWithIgnoreCase(data, suffix); +- } +- +- // NOLINTNEXTLINE(readability-identifier-naming) +- static std::string ToLower(QuicheStringPieceImpl data) { return absl::AsciiStrToLower(data); } ++ static std::string ToLower(absl::string_view data) { return absl::AsciiStrToLower(data); } + + // NOLINTNEXTLINE(readability-identifier-naming) +- static void RemoveLeadingAndTrailingWhitespace(QuicheStringPieceImpl* data) { ++ static void RemoveLeadingAndTrailingWhitespace(absl::string_view* data) { + *data = absl::StripAsciiWhitespace(*data); + } + +- // NOLINTNEXTLINE(readability-identifier-naming) +- static bool StringToUint64(QuicheStringPieceImpl in, uint64_t* out) { +- return absl::SimpleAtoi(in, out); +- } +- +- // NOLINTNEXTLINE(readability-identifier-naming) +- static bool StringToInt(QuicheStringPieceImpl in, int* out) { return absl::SimpleAtoi(in, out); } +- +- // NOLINTNEXTLINE(readability-identifier-naming) +- static bool StringToUint32(QuicheStringPieceImpl in, uint32_t* out) { +- return absl::SimpleAtoi(in, out); +- } +- +- // NOLINTNEXTLINE(readability-identifier-naming) +- static bool StringToSizeT(QuicheStringPieceImpl in, size_t* out) { +- return absl::SimpleAtoi(in, out); +- } +- +- // NOLINTNEXTLINE(readability-identifier-naming) +- static std::string Uint64ToString(uint64_t in) { return absl::StrCat(in); } +- +- // NOLINTNEXTLINE(readability-identifier-naming) +- static std::string HexEncode(QuicheStringPieceImpl data) { return absl::BytesToHexString(data); } +- + // NOLINTNEXTLINE(readability-identifier-naming) + static std::string Hex(uint32_t v) { return absl::StrCat(absl::Hex(v)); } + +- // NOLINTNEXTLINE(readability-identifier-naming) +- static std::string HexDecode(QuicheStringPieceImpl data) { return absl::HexStringToBytes(data); } +- + // NOLINTNEXTLINE(readability-identifier-naming) + static void Base64Encode(const uint8_t* data, size_t data_len, std::string* output) { + *output = +@@ -84,27 +42,28 @@ public: + } + + // NOLINTNEXTLINE(readability-identifier-naming) +- static QuicheOptionalImpl Base64Decode(QuicheStringPieceImpl input) { ++ static absl::optional Base64Decode(absl::string_view input) { + return Envoy::Base64::decodeWithoutPadding(input); + } + + // NOLINTNEXTLINE(readability-identifier-naming) +- static std::string HexDump(QuicheStringPieceImpl binary_data) { +- return quiche::HexDump(binary_data); +- } ++ static std::string Uint64ToString(uint64_t in) { return absl::StrCat(in); } ++ ++ // NOLINTNEXTLINE(readability-identifier-naming) ++ static std::string HexDump(absl::string_view binary_data) { return quiche::HexDump(binary_data); } + + // NOLINTNEXTLINE(readability-identifier-naming) +- static bool ContainsUpperCase(QuicheStringPieceImpl data) { ++ static bool ContainsUpperCase(absl::string_view data) { + return std::any_of(data.begin(), data.end(), absl::ascii_isupper); + } + + // NOLINTNEXTLINE(readability-identifier-naming) +- static bool IsAllDigits(QuicheStringPieceImpl data) { ++ static bool IsAllDigits(absl::string_view data) { + return std::all_of(data.begin(), data.end(), absl::ascii_isdigit); + } + + // NOLINTNEXTLINE(readability-identifier-naming) +- static std::vector Split(QuicheStringPieceImpl data, char delim) { ++ static std::vector Split(absl::string_view data, char delim) { + return absl::StrSplit(data, delim); + } + }; +diff --git a/source/extensions/quic_listeners/quiche/platform/quiche_time_utils_impl.cc b/source/extensions/quic_listeners/quiche/platform/quiche_time_utils_impl.cc +index 3260eafee..5387e0598 100644 +--- a/source/extensions/quic_listeners/quiche/platform/quiche_time_utils_impl.cc ++++ b/source/extensions/quic_listeners/quiche/platform/quiche_time_utils_impl.cc +@@ -9,7 +9,7 @@ + namespace quiche { + + namespace { +-QuicheOptional quicheUtcDateTimeToUnixSecondsInner(int year, int month, int day, int hour, ++absl::optional quicheUtcDateTimeToUnixSecondsInner(int year, int month, int day, int hour, + int minute, int second) { + const absl::CivilSecond civil_time(year, month, day, hour, minute, second); + if (second != 60 && (civil_time.year() != year || civil_time.month() != month || +@@ -24,7 +24,7 @@ QuicheOptional quicheUtcDateTimeToUnixSecondsInner(int year, int month, + } // namespace + + // NOLINTNEXTLINE(readability-identifier-naming) +-QuicheOptional QuicheUtcDateTimeToUnixSecondsImpl(int year, int month, int day, int hour, ++absl::optional QuicheUtcDateTimeToUnixSecondsImpl(int year, int month, int day, int hour, + int minute, int second) { + // Handle leap seconds without letting any other irregularities happen. + if (second == 60) { +diff --git a/source/extensions/quic_listeners/quiche/platform/quiche_time_utils_impl.h b/source/extensions/quic_listeners/quiche/platform/quiche_time_utils_impl.h +index a1b70b70a..5e2ef7956 100644 +--- a/source/extensions/quic_listeners/quiche/platform/quiche_time_utils_impl.h ++++ b/source/extensions/quic_listeners/quiche/platform/quiche_time_utils_impl.h +@@ -10,12 +10,12 @@ + + #include "absl/time/civil_time.h" + #include "absl/time/time.h" +-#include "quiche/common/platform/api/quiche_optional.h" ++#include "absl/types/optional.h" + + namespace quiche { + + // NOLINTNEXTLINE(readability-identifier-naming) +-QuicheOptional QuicheUtcDateTimeToUnixSecondsImpl(int year, int month, int day, int hour, ++absl::optional QuicheUtcDateTimeToUnixSecondsImpl(int year, int month, int day, int hour, + int minute, int second); + + } // namespace quiche +diff --git a/source/extensions/quic_listeners/quiche/platform/spdy_endianness_util_impl.h b/source/extensions/quic_listeners/quiche/platform/spdy_endianness_util_impl.h +deleted file mode 100644 +index 737b81ee2..000000000 +--- a/source/extensions/quic_listeners/quiche/platform/spdy_endianness_util_impl.h ++++ /dev/null +@@ -1,29 +0,0 @@ +-#pragma once +- +-#include +- +-#include "envoy/common/platform.h" +- +-// NOLINT(namespace-envoy) +- +-// This file is part of the QUICHE platform implementation, and is not to be +-// consumed or referenced directly by other Envoy code. It serves purely as a +-// porting layer for QUICHE. +- +-namespace spdy { +- +-inline uint16_t SpdyNetToHost16Impl(uint16_t x) { return ntohs(x); } +- +-inline uint32_t SpdyNetToHost32Impl(uint32_t x) { return ntohl(x); } +- +-// TODO: implement +-inline uint64_t SpdyNetToHost64Impl(uint64_t /*x*/) { return 0; } +- +-inline uint16_t SpdyHostToNet16Impl(uint16_t x) { return htons(x); } +- +-inline uint32_t SpdyHostToNet32Impl(uint32_t x) { return htonl(x); } +- +-// TODO: implement +-inline uint64_t SpdyHostToNet64Impl(uint64_t /*x*/) { return 0; } +- +-} // namespace spdy +diff --git a/source/extensions/quic_listeners/quiche/platform/spdy_flags_impl.h b/source/extensions/quic_listeners/quiche/platform/spdy_flags_impl.h +index a3cbd680f..833562fab 100644 +--- a/source/extensions/quic_listeners/quiche/platform/spdy_flags_impl.h ++++ b/source/extensions/quic_listeners/quiche/platform/spdy_flags_impl.h +@@ -8,9 +8,9 @@ + + #include "extensions/quic_listeners/quiche/platform/flags_impl.h" + +-#define GetSpdyReloadableFlagImpl(flag) quiche::FLAGS_spdy_reloadable_flag_##flag->value() ++#define GetSpdyReloadableFlagImpl(flag) quiche::FLAGS_quic_reloadable_flag_##flag->value() + +-#define GetSpdyRestartFlagImpl(flag) quiche::FLAGS_spdy_restart_flag_##flag->value() ++#define GetSpdyRestartFlagImpl(flag) quiche::FLAGS_quic_restart_flag_##flag->value() + + #define SPDY_CODE_COUNT_N_IMPL(flag, instance, total) \ + do { \ +diff --git a/source/extensions/quic_listeners/quiche/platform/spdy_string_utils_impl.h b/source/extensions/quic_listeners/quiche/platform/spdy_string_utils_impl.h +index 41fa3cad8..4b01b2dbd 100644 +--- a/source/extensions/quic_listeners/quiche/platform/spdy_string_utils_impl.h ++++ b/source/extensions/quic_listeners/quiche/platform/spdy_string_utils_impl.h +@@ -50,7 +50,7 @@ inline std::string SpdyHexEncodeUInt32AndTrimImpl(uint32_t data) { + inline std::string SpdyHexDumpImpl(absl::string_view data) { return quiche::HexDump(data); } + + struct SpdyStringPieceCaseHashImpl { +- size_t operator()(quiche::QuicheStringPiece data) const { ++ size_t operator()(absl::string_view data) const { + std::string lower = absl::AsciiStrToLower(data); + return absl::Hash()(lower); + } +diff --git a/source/extensions/quic_listeners/quiche/spdy_server_push_utils_for_envoy.cc b/source/extensions/quic_listeners/quiche/spdy_server_push_utils_for_envoy.cc +index 3bd0bc295..5ac5738c4 100644 +--- a/source/extensions/quic_listeners/quiche/spdy_server_push_utils_for_envoy.cc ++++ b/source/extensions/quic_listeners/quiche/spdy_server_push_utils_for_envoy.cc +@@ -12,25 +12,29 @@ using spdy::SpdyHeaderBlock; + namespace quic { + + // static ++// NOLINTNEXTLINE(readability-identifier-naming) + std::string SpdyServerPushUtils::GetPromisedUrlFromHeaders(const SpdyHeaderBlock& /*headers*/) { + NOT_IMPLEMENTED_GCOVR_EXCL_LINE; + } + + // static + std::string ++// NOLINTNEXTLINE(readability-identifier-naming) + SpdyServerPushUtils::GetPromisedHostNameFromHeaders(const SpdyHeaderBlock& /*headers*/) { + NOT_IMPLEMENTED_GCOVR_EXCL_LINE; + } + + // static ++// NOLINTNEXTLINE(readability-identifier-naming) + bool SpdyServerPushUtils::PromisedUrlIsValid(const SpdyHeaderBlock& /*headers*/) { + NOT_IMPLEMENTED_GCOVR_EXCL_LINE; + } + + // static +-std::string SpdyServerPushUtils::GetPushPromiseUrl(quiche::QuicheStringPiece /*scheme*/, +- quiche::QuicheStringPiece /*authority*/, +- quiche::QuicheStringPiece /*path*/) { ++// NOLINTNEXTLINE(readability-identifier-naming) ++std::string SpdyServerPushUtils::GetPushPromiseUrl(absl::string_view /*scheme*/, ++ absl::string_view /*authority*/, ++ absl::string_view /*path*/) { + NOT_IMPLEMENTED_GCOVR_EXCL_LINE; + } + +diff --git a/test/extensions/quic_listeners/quiche/envoy_quic_client_session_test.cc b/test/extensions/quic_listeners/quiche/envoy_quic_client_session_test.cc +index e2d90d916..8fa7d9fe9 100644 +--- a/test/extensions/quic_listeners/quiche/envoy_quic_client_session_test.cc ++++ b/test/extensions/quic_listeners/quiche/envoy_quic_client_session_test.cc +@@ -49,9 +49,9 @@ public: + Network::ConnectionSocketPtr&& connection_socket) + : EnvoyQuicClientConnection(server_connection_id, helper, alarm_factory, &writer, false, + supported_versions, dispatcher, std::move(connection_socket)) { +- SetDefaultEncryptionLevel(quic::ENCRYPTION_FORWARD_SECURE); + SetEncrypter(quic::ENCRYPTION_FORWARD_SECURE, + std::make_unique(quic::Perspective::IS_CLIENT)); ++ SetDefaultEncryptionLevel(quic::ENCRYPTION_FORWARD_SECURE); + } + + MOCK_METHOD(void, SendConnectionClosePacket, (quic::QuicErrorCode, const std::string&)); +diff --git a/test/extensions/quic_listeners/quiche/envoy_quic_client_stream_test.cc b/test/extensions/quic_listeners/quiche/envoy_quic_client_stream_test.cc +index 98359c618..f3b02f4cc 100644 +--- a/test/extensions/quic_listeners/quiche/envoy_quic_client_stream_test.cc ++++ b/test/extensions/quic_listeners/quiche/envoy_quic_client_stream_test.cc +@@ -48,11 +48,11 @@ public: + quic_session_.ActivateStream(std::unique_ptr(quic_stream_)); + EXPECT_CALL(quic_session_, ShouldYield(_)).WillRepeatedly(testing::Return(false)); + EXPECT_CALL(quic_session_, WritevData(_, _, _, _, _, _)) +- .WillRepeatedly(Invoke([](quic::QuicStreamId, size_t write_length, quic::QuicStreamOffset, +- quic::StreamSendingState state, bool, +- quiche::QuicheOptional) { +- return quic::QuicConsumedData{write_length, state != quic::NO_FIN}; +- })); ++ .WillRepeatedly( ++ Invoke([](quic::QuicStreamId, size_t write_length, quic::QuicStreamOffset, ++ quic::StreamSendingState state, bool, absl::optional) { ++ return quic::QuicConsumedData{write_length, state != quic::NO_FIN}; ++ })); + EXPECT_CALL(writer_, WritePacket(_, _, _, _, _)) + .WillRepeatedly(Invoke([](const char*, size_t buf_len, const quic::QuicIpAddress&, + const quic::QuicSocketAddress&, quic::PerPacketOptions*) { +@@ -146,7 +146,7 @@ TEST_P(EnvoyQuicClientStreamTest, PostRequestAndResponse) { + std::unique_ptr data_buffer; + quic::QuicByteCount data_frame_header_length = + quic::HttpEncoder::SerializeDataFrameHeader(response_body_.length(), &data_buffer); +- quiche::QuicheStringPiece data_frame_header(data_buffer.get(), data_frame_header_length); ++ absl::string_view data_frame_header(data_buffer.get(), data_frame_header_length); + data = absl::StrCat(data_frame_header, response_body_); + } + quic::QuicStreamFrame frame(stream_id_, false, 0, data); +@@ -184,7 +184,7 @@ TEST_P(EnvoyQuicClientStreamTest, OutOfOrderTrailers) { + std::unique_ptr data_buffer; + quic::QuicByteCount data_frame_header_length = + quic::HttpEncoder::SerializeDataFrameHeader(response_body_.length(), &data_buffer); +- quiche::QuicheStringPiece data_frame_header(data_buffer.get(), data_frame_header_length); ++ absl::string_view data_frame_header(data_buffer.get(), data_frame_header_length); + data = absl::StrCat(data_frame_header, response_body_); + } + quic::QuicStreamFrame frame(stream_id_, false, 0, data); +@@ -301,11 +301,11 @@ TEST_P(EnvoyQuicClientStreamTest, HeadersContributeToWatermarkIquic) { + // Unblock writing now, and this will write out 16kB data and cause stream to + // be blocked by the flow control limit. + EXPECT_CALL(quic_session_, WritevData(_, _, _, _, _, _)) +- .WillOnce(Invoke([](quic::QuicStreamId, size_t write_length, quic::QuicStreamOffset, +- quic::StreamSendingState state, bool, +- quiche::QuicheOptional) { +- return quic::QuicConsumedData{write_length, state != quic::NO_FIN}; +- })); ++ .WillOnce( ++ Invoke([](quic::QuicStreamId, size_t write_length, quic::QuicStreamOffset, ++ quic::StreamSendingState state, bool, absl::optional) { ++ return quic::QuicConsumedData{write_length, state != quic::NO_FIN}; ++ })); + EXPECT_CALL(stream_callbacks_, onBelowWriteBufferLowWatermark()); + quic_session_.OnCanWrite(); + EXPECT_TRUE(quic_stream_->IsFlowControlBlocked()); +@@ -315,20 +315,20 @@ TEST_P(EnvoyQuicClientStreamTest, HeadersContributeToWatermarkIquic) { + 32 * 1024); + quic_stream_->OnWindowUpdateFrame(window_update1); + EXPECT_CALL(quic_session_, WritevData(_, _, _, _, _, _)) +- .WillOnce(Invoke([](quic::QuicStreamId, size_t write_length, quic::QuicStreamOffset, +- quic::StreamSendingState state, bool, +- quiche::QuicheOptional) { +- return quic::QuicConsumedData{write_length, state != quic::NO_FIN}; +- })); ++ .WillOnce( ++ Invoke([](quic::QuicStreamId, size_t write_length, quic::QuicStreamOffset, ++ quic::StreamSendingState state, bool, absl::optional) { ++ return quic::QuicConsumedData{write_length, state != quic::NO_FIN}; ++ })); + quic_session_.OnCanWrite(); + // No data should be buffered at this point. + + EXPECT_CALL(quic_session_, WritevData(_, _, _, _, _, _)) +- .WillOnce(Invoke([](quic::QuicStreamId, size_t, quic::QuicStreamOffset, +- quic::StreamSendingState state, bool, +- quiche::QuicheOptional) { +- return quic::QuicConsumedData{0u, state != quic::NO_FIN}; +- })); ++ .WillOnce( ++ Invoke([](quic::QuicStreamId, size_t, quic::QuicStreamOffset, ++ quic::StreamSendingState state, bool, absl::optional) { ++ return quic::QuicConsumedData{0u, state != quic::NO_FIN}; ++ })); + // Send more data. If watermark bytes counting were not cleared in previous + // OnCanWrite, this write would have caused the stream to exceed its high watermark. + std::string request1(16 * 1024 - 3, 'a'); +diff --git a/test/extensions/quic_listeners/quiche/envoy_quic_proof_source_test.cc b/test/extensions/quic_listeners/quiche/envoy_quic_proof_source_test.cc +index cbf66f511..8a493a8e8 100644 +--- a/test/extensions/quic_listeners/quiche/envoy_quic_proof_source_test.cc ++++ b/test/extensions/quic_listeners/quiche/envoy_quic_proof_source_test.cc +@@ -25,7 +25,7 @@ namespace Quic { + class TestGetProofCallback : public quic::ProofSource::Callback { + public: + TestGetProofCallback(bool& called, bool should_succeed, const std::string& server_config, +- quic::QuicTransportVersion& version, quiche::QuicheStringPiece chlo_hash, ++ quic::QuicTransportVersion& version, absl::string_view chlo_hash, + Network::FilterChain& filter_chain) + : called_(called), should_succeed_(should_succeed), server_config_(server_config), + version_(version), chlo_hash_(chlo_hash), expected_filter_chain_(filter_chain) { +@@ -100,7 +100,7 @@ private: + bool should_succeed_; + const std::string& server_config_; + const quic::QuicTransportVersion& version_; +- quiche::QuicheStringPiece chlo_hash_; ++ absl::string_view chlo_hash_; + Network::FilterChain& expected_filter_chain_; + NiceMock store_; + Event::GlobalTimeSystem time_system_; +@@ -178,7 +178,7 @@ protected: + quic::QuicSocketAddress server_address_; + quic::QuicSocketAddress client_address_; + quic::QuicTransportVersion version_{quic::QUIC_VERSION_UNSUPPORTED}; +- quiche::QuicheStringPiece chlo_hash_{"aaaaa"}; ++ absl::string_view chlo_hash_{"aaaaa"}; + std::string server_config_{"Server Config"}; + std::string expected_certs_{quic::test::kTestCertificateChainPem}; + std::string pkey_{quic::test::kTestCertificatePrivateKeyPem}; +diff --git a/test/extensions/quic_listeners/quiche/envoy_quic_proof_verifier_test.cc b/test/extensions/quic_listeners/quiche/envoy_quic_proof_verifier_test.cc +index 4a1dfe144..9cdc169cd 100644 +--- a/test/extensions/quic_listeners/quiche/envoy_quic_proof_verifier_test.cc ++++ b/test/extensions/quic_listeners/quiche/envoy_quic_proof_verifier_test.cc +@@ -163,7 +163,7 @@ TEST_F(EnvoyQuicProofVerifierTest, VerifyProofFailureEmptyCertChain) { + std::unique_ptr cert_view = + quic::CertificateView::ParseSingleCertificate(leaf_cert_); + quic::QuicTransportVersion version{quic::QUIC_VERSION_UNSUPPORTED}; +- quiche::QuicheStringPiece chlo_hash{"aaaaa"}; ++ absl::string_view chlo_hash{"aaaaa"}; + std::string server_config{"Server Config"}; + const std::string ocsp_response; + const std::string cert_sct; +@@ -181,7 +181,7 @@ TEST_F(EnvoyQuicProofVerifierTest, VerifyProofFailureInvalidLeafCert) { + std::unique_ptr cert_view = + quic::CertificateView::ParseSingleCertificate(leaf_cert_); + quic::QuicTransportVersion version{quic::QUIC_VERSION_UNSUPPORTED}; +- quiche::QuicheStringPiece chlo_hash{"aaaaa"}; ++ absl::string_view chlo_hash{"aaaaa"}; + std::string server_config{"Server Config"}; + const std::string ocsp_response; + const std::string cert_sct; +@@ -197,7 +197,7 @@ TEST_F(EnvoyQuicProofVerifierTest, VerifyProofFailureInvalidLeafCert) { + TEST_F(EnvoyQuicProofVerifierTest, VerifyProofFailureUnsupportedECKey) { + configCertVerificationDetails(true); + quic::QuicTransportVersion version{quic::QUIC_VERSION_UNSUPPORTED}; +- quiche::QuicheStringPiece chlo_hash{"aaaaa"}; ++ absl::string_view chlo_hash{"aaaaa"}; + std::string server_config{"Server Config"}; + const std::string ocsp_response; + const std::string cert_sct; +@@ -236,7 +236,7 @@ TEST_F(EnvoyQuicProofVerifierTest, VerifyProofFailureInvalidSignature) { + std::unique_ptr cert_view = + quic::CertificateView::ParseSingleCertificate(leaf_cert_); + quic::QuicTransportVersion version{quic::QUIC_VERSION_UNSUPPORTED}; +- quiche::QuicheStringPiece chlo_hash{"aaaaa"}; ++ absl::string_view chlo_hash{"aaaaa"}; + std::string server_config{"Server Config"}; + const std::string ocsp_response; + const std::string cert_sct; +diff --git a/test/extensions/quic_listeners/quiche/envoy_quic_server_session_test.cc b/test/extensions/quic_listeners/quiche/envoy_quic_server_session_test.cc +index 05307c6b9..4fc376857 100644 +--- a/test/extensions/quic_listeners/quiche/envoy_quic_server_session_test.cc ++++ b/test/extensions/quic_listeners/quiche/envoy_quic_server_session_test.cc +@@ -61,6 +61,7 @@ public: + const quic::ParsedQuicVersionVector& supported_versions, + Network::Socket& listen_socket) + : EnvoyQuicServerConnection(quic::test::TestConnectionId(), ++ quic::QuicSocketAddress(quic::QuicIpAddress::Any4(), 12345), + quic::QuicSocketAddress(quic::QuicIpAddress::Loopback4(), 12345), + helper, alarm_factory, &writer, /*owns_writer=*/false, + supported_versions, listen_socket) {} +@@ -201,10 +202,10 @@ public: + crypto_stream_ = test_crypto_stream; + } + quic::test::QuicServerSessionBasePeer::SetCryptoStream(&envoy_quic_session_, crypto_stream); +- quic_connection_->SetDefaultEncryptionLevel(quic::ENCRYPTION_FORWARD_SECURE); + quic_connection_->SetEncrypter( + quic::ENCRYPTION_FORWARD_SECURE, + std::make_unique(quic::Perspective::IS_SERVER)); ++ quic_connection_->SetDefaultEncryptionLevel(quic::ENCRYPTION_FORWARD_SECURE); + } + + bool installReadFilter() { +diff --git a/test/extensions/quic_listeners/quiche/envoy_quic_server_stream_test.cc b/test/extensions/quic_listeners/quiche/envoy_quic_server_stream_test.cc +index c2fd31c6f..f602e2c9a 100644 +--- a/test/extensions/quic_listeners/quiche/envoy_quic_server_stream_test.cc ++++ b/test/extensions/quic_listeners/quiche/envoy_quic_server_stream_test.cc +@@ -51,6 +51,7 @@ public: + POOL_GAUGE(listener_config_.listenerScope()), + POOL_HISTOGRAM(listener_config_.listenerScope()))}), + quic_connection_(quic::test::TestConnectionId(), ++ quic::QuicSocketAddress(quic::QuicIpAddress::Any6(), 123), + quic::QuicSocketAddress(quic::QuicIpAddress::Any6(), 12345), + connection_helper_, alarm_factory_, &writer_, + /*owns_writer=*/false, {quic_version_}, *listener_config_.socket_), +@@ -66,11 +67,11 @@ public: + quic_session_.ActivateStream(std::unique_ptr(quic_stream_)); + EXPECT_CALL(quic_session_, ShouldYield(_)).WillRepeatedly(testing::Return(false)); + EXPECT_CALL(quic_session_, WritevData(_, _, _, _, _, _)) +- .WillRepeatedly(Invoke([](quic::QuicStreamId, size_t write_length, quic::QuicStreamOffset, +- quic::StreamSendingState state, bool, +- quiche::QuicheOptional) { +- return quic::QuicConsumedData{write_length, state != quic::NO_FIN}; +- })); ++ .WillRepeatedly( ++ Invoke([](quic::QuicStreamId, size_t write_length, quic::QuicStreamOffset, ++ quic::StreamSendingState state, bool, absl::optional) { ++ return quic::QuicConsumedData{write_length, state != quic::NO_FIN}; ++ })); + EXPECT_CALL(writer_, WritePacket(_, _, _, _, _)) + .WillRepeatedly(Invoke([](const char*, size_t buf_len, const quic::QuicIpAddress&, + const quic::QuicSocketAddress&, quic::PerPacketOptions*) { +@@ -110,7 +111,7 @@ public: + std::unique_ptr data_buffer; + quic::QuicByteCount data_frame_header_length = + quic::HttpEncoder::SerializeDataFrameHeader(body.length(), &data_buffer); +- quiche::QuicheStringPiece data_frame_header(data_buffer.get(), data_frame_header_length); ++ absl::string_view data_frame_header(data_buffer.get(), data_frame_header_length); + data = absl::StrCat(data_frame_header, body); + } + return data; +@@ -397,11 +398,11 @@ TEST_P(EnvoyQuicServerStreamTest, HeadersContributeToWatermarkIquic) { + + // Make the stream blocked by congestion control. + EXPECT_CALL(quic_session_, WritevData(_, _, _, _, _, _)) +- .WillOnce(Invoke([](quic::QuicStreamId, size_t /*write_length*/, quic::QuicStreamOffset, +- quic::StreamSendingState state, bool, +- quiche::QuicheOptional) { +- return quic::QuicConsumedData{0u, state != quic::NO_FIN}; +- })); ++ .WillOnce( ++ Invoke([](quic::QuicStreamId, size_t /*write_length*/, quic::QuicStreamOffset, ++ quic::StreamSendingState state, bool, absl::optional) { ++ return quic::QuicConsumedData{0u, state != quic::NO_FIN}; ++ })); + quic_stream_->encodeHeaders(response_headers_, /*end_stream=*/false); + + // Encode 16kB -10 bytes request body. Because the high watermark is 16KB, with previously +@@ -415,11 +416,11 @@ TEST_P(EnvoyQuicServerStreamTest, HeadersContributeToWatermarkIquic) { + // Unblock writing now, and this will write out 16kB data and cause stream to + // be blocked by the flow control limit. + EXPECT_CALL(quic_session_, WritevData(_, _, _, _, _, _)) +- .WillOnce(Invoke([](quic::QuicStreamId, size_t write_length, quic::QuicStreamOffset, +- quic::StreamSendingState state, bool, +- quiche::QuicheOptional) { +- return quic::QuicConsumedData{write_length, state != quic::NO_FIN}; +- })); ++ .WillOnce( ++ Invoke([](quic::QuicStreamId, size_t write_length, quic::QuicStreamOffset, ++ quic::StreamSendingState state, bool, absl::optional) { ++ return quic::QuicConsumedData{write_length, state != quic::NO_FIN}; ++ })); + EXPECT_CALL(stream_callbacks_, onBelowWriteBufferLowWatermark()); + quic_session_.OnCanWrite(); + EXPECT_TRUE(quic_stream_->IsFlowControlBlocked()); +@@ -429,20 +430,20 @@ TEST_P(EnvoyQuicServerStreamTest, HeadersContributeToWatermarkIquic) { + 32 * 1024); + quic_stream_->OnWindowUpdateFrame(window_update1); + EXPECT_CALL(quic_session_, WritevData(_, _, _, _, _, _)) +- .WillOnce(Invoke([](quic::QuicStreamId, size_t write_length, quic::QuicStreamOffset, +- quic::StreamSendingState state, bool, +- quiche::QuicheOptional) { +- return quic::QuicConsumedData{write_length, state != quic::NO_FIN}; +- })); ++ .WillOnce( ++ Invoke([](quic::QuicStreamId, size_t write_length, quic::QuicStreamOffset, ++ quic::StreamSendingState state, bool, absl::optional) { ++ return quic::QuicConsumedData{write_length, state != quic::NO_FIN}; ++ })); + quic_session_.OnCanWrite(); + // No data should be buffered at this point. + + EXPECT_CALL(quic_session_, WritevData(_, _, _, _, _, _)) +- .WillRepeatedly(Invoke([](quic::QuicStreamId, size_t, quic::QuicStreamOffset, +- quic::StreamSendingState state, bool, +- quiche::QuicheOptional) { +- return quic::QuicConsumedData{0u, state != quic::NO_FIN}; +- })); ++ .WillRepeatedly( ++ Invoke([](quic::QuicStreamId, size_t, quic::QuicStreamOffset, ++ quic::StreamSendingState state, bool, absl::optional) { ++ return quic::QuicConsumedData{0u, state != quic::NO_FIN}; ++ })); + // Send more data. If watermark bytes counting were not cleared in previous + // OnCanWrite, this write would have caused the stream to exceed its high watermark. + std::string response1(16 * 1024 - 3, 'a'); +diff --git a/test/extensions/quic_listeners/quiche/platform/BUILD b/test/extensions/quic_listeners/quiche/platform/BUILD +index 420e812b8..7dbb08d82 100644 +--- a/test/extensions/quic_listeners/quiche/platform/BUILD ++++ b/test/extensions/quic_listeners/quiche/platform/BUILD +@@ -9,16 +9,6 @@ licenses(["notice"]) # Apache 2 + + envoy_package() + +-envoy_cc_test( +- name = "quiche_platform_test", +- srcs = ["quiche_platform_test.cc"], +- external_deps = ["quiche_common_platform"], +- deps = [ +- "@com_googlesource_quiche//:quiche_common_platform", +- "@com_googlesource_quiche//:quiche_common_platform_endian", +- ], +-) +- + envoy_cc_test( + name = "http2_platform_test", + srcs = ["http2_platform_test.cc"], +@@ -63,7 +53,6 @@ envoy_cc_test( + "@com_googlesource_quiche//:quic_platform_mem_slice_span", + "@com_googlesource_quiche//:quic_platform_mem_slice_storage", + "@com_googlesource_quiche//:quic_platform_mock_log", +- "@com_googlesource_quiche//:quic_platform_port_utils", + "@com_googlesource_quiche//:quic_platform_sleep", + "@com_googlesource_quiche//:quic_platform_system_event_loop", + "@com_googlesource_quiche//:quic_platform_test", +@@ -150,17 +139,6 @@ envoy_cc_test_library( + deps = ["@com_googlesource_quiche//:quic_platform_base"], + ) + +-envoy_cc_test_library( +- name = "quic_platform_port_utils_impl_lib", +- srcs = ["quic_port_utils_impl.cc"], +- hdrs = ["quic_port_utils_impl.h"], +- tags = ["nofips"], +- deps = [ +- "//source/common/network:utility_lib", +- "//test/test_common:environment_lib", +- ], +-) +- + envoy_cc_test_library( + name = "quic_platform_test_mem_slice_vector_impl_lib", + hdrs = ["quic_test_mem_slice_vector_impl.h"], +diff --git a/test/extensions/quic_listeners/quiche/platform/http2_platform_test.cc b/test/extensions/quic_listeners/quiche/platform/http2_platform_test.cc +index 069a79eab..35aee5d27 100644 +--- a/test/extensions/quic_listeners/quiche/platform/http2_platform_test.cc ++++ b/test/extensions/quic_listeners/quiche/platform/http2_platform_test.cc +@@ -72,20 +72,14 @@ TEST(Http2PlatformTest, Http2Log) { + HTTP2_DLOG_EVERY_N(ERROR, 2) << "DLOG_EVERY_N(ERROR, 2)"; + } + +-TEST(Http2PlatformTest, Http2StringPiece) { +- std::string s = "bar"; +- quiche::QuicheStringPiece sp(s); +- EXPECT_EQ('b', sp[0]); +-} +- + TEST(Http2PlatformTest, Http2Macro) { + EXPECT_DEBUG_DEATH(HTTP2_UNREACHABLE(), ""); + EXPECT_DEATH(HTTP2_DIE_IF_NULL(nullptr), ""); + } + + TEST(Http2PlatformTest, Http2Flags) { +- auto& flag_registry = quiche::FlagRegistry::GetInstance(); +- flag_registry.ResetFlags(); ++ auto& flag_registry = quiche::FlagRegistry::getInstance(); ++ flag_registry.resetFlags(); + EXPECT_FALSE(GetHttp2ReloadableFlag(http2_testonly_default_false)); + SetHttp2ReloadableFlag(http2_testonly_default_false, true); + EXPECT_TRUE(GetHttp2ReloadableFlag(http2_testonly_default_false)); +@@ -93,22 +87,22 @@ TEST(Http2PlatformTest, Http2Flags) { + for (std::string s : {"1", "t", "true", "TRUE", "y", "yes", "Yes"}) { + SetHttp2ReloadableFlag(http2_testonly_default_false, false); + EXPECT_FALSE(GetHttp2ReloadableFlag(http2_testonly_default_false)); +- EXPECT_TRUE(flag_registry.FindFlag("http2_reloadable_flag_http2_testonly_default_false") +- ->SetValueFromString(s)); ++ EXPECT_TRUE(flag_registry.findFlag("FLAGS_quic_reloadable_flag_http2_testonly_default_false") ++ ->setValueFromString(s)); + EXPECT_TRUE(GetHttp2ReloadableFlag(http2_testonly_default_false)); + } + for (std::string s : {"0", "f", "false", "FALSE", "n", "no", "No"}) { + SetHttp2ReloadableFlag(http2_testonly_default_false, true); + EXPECT_TRUE(GetHttp2ReloadableFlag(http2_testonly_default_false)); +- EXPECT_TRUE(flag_registry.FindFlag("http2_reloadable_flag_http2_testonly_default_false") +- ->SetValueFromString(s)); ++ EXPECT_TRUE(flag_registry.findFlag("FLAGS_quic_reloadable_flag_http2_testonly_default_false") ++ ->setValueFromString(s)); + EXPECT_FALSE(GetHttp2ReloadableFlag(http2_testonly_default_false)); + } + for (std::string s : {"some", "invalid", "values", ""}) { + SetHttp2ReloadableFlag(http2_testonly_default_false, false); + EXPECT_FALSE(GetHttp2ReloadableFlag(http2_testonly_default_false)); +- EXPECT_FALSE(flag_registry.FindFlag("http2_reloadable_flag_http2_testonly_default_false") +- ->SetValueFromString(s)); ++ EXPECT_FALSE(flag_registry.findFlag("FLAGS_quic_reloadable_flag_http2_testonly_default_false") ++ ->setValueFromString(s)); + EXPECT_FALSE(GetHttp2ReloadableFlag(http2_testonly_default_false)); + } + } +diff --git a/test/extensions/quic_listeners/quiche/platform/quic_platform_test.cc b/test/extensions/quic_listeners/quiche/platform/quic_platform_test.cc +index 68141aa94..902ad1a9e 100644 +--- a/test/extensions/quic_listeners/quiche/platform/quic_platform_test.cc ++++ b/test/extensions/quic_listeners/quiche/platform/quic_platform_test.cc +@@ -30,7 +30,6 @@ + #include "gtest/gtest.h" + #include "quiche/common/platform/api/quiche_string_piece.h" + #include "quiche/epoll_server/fake_simple_epoll_server.h" +-#include "quiche/quic/platform/api/quic_aligned.h" + #include "quiche/quic/platform/api/quic_bug_tracker.h" + #include "quiche/quic/platform/api/quic_cert_utils.h" + #include "quiche/quic/platform/api/quic_client_stats.h" +@@ -42,7 +41,6 @@ + #include "quiche/quic/platform/api/quic_flags.h" + #include "quiche/quic/platform/api/quic_hostname_utils.h" + #include "quiche/quic/platform/api/quic_logging.h" +-#include "quiche/quic/platform/api/quic_macros.h" + #include "quiche/quic/platform/api/quic_map_util.h" + #include "quiche/quic/platform/api/quic_mem_slice.h" + #include "quiche/quic/platform/api/quic_mem_slice_span.h" +@@ -50,7 +48,6 @@ + #include "quiche/quic/platform/api/quic_mock_log.h" + #include "quiche/quic/platform/api/quic_mutex.h" + #include "quiche/quic/platform/api/quic_pcc_sender.h" +-#include "quiche/quic/platform/api/quic_port_utils.h" + #include "quiche/quic/platform/api/quic_ptr_util.h" + #include "quiche/quic/platform/api/quic_server_stats.h" + #include "quiche/quic/platform/api/quic_sleep.h" +@@ -92,8 +89,6 @@ protected: + const int verbosity_log_threshold_; + }; + +-TEST_F(QuicPlatformTest, QuicAlignOf) { EXPECT_LT(0, QUIC_ALIGN_OF(int)); } +- + enum class TestEnum { ZERO = 0, ONE, TWO, COUNT }; + + TEST_F(QuicPlatformTest, QuicBugTracker) { +@@ -468,9 +463,9 @@ TEST_F(QuicPlatformTest, QuicCertUtils) { + unsigned char* der = nullptr; + int len = i2d_X509(x509_cert.get(), &der); + ASSERT_GT(len, 0); +- quiche::QuicheStringPiece out; ++ absl::string_view out; + QuicCertUtils::ExtractSubjectNameFromDERCert( +- quiche::QuicheStringPiece(reinterpret_cast(der), len), &out); ++ absl::string_view(reinterpret_cast(der), len), &out); + EXPECT_EQ("0z1\v0\t\x6\x3U\x4\x6\x13\x2US1\x13" + "0\x11\x6\x3U\x4\b\f\nCalifornia1\x16" + "0\x14\x6\x3U\x4\a\f\rSan Francisco1\r" +@@ -566,8 +561,8 @@ TEST_F(QuicPlatformTest, MonotonicityWithFakeEpollClock) { + } + + TEST_F(QuicPlatformTest, QuicFlags) { +- auto& flag_registry = quiche::FlagRegistry::GetInstance(); +- flag_registry.ResetFlags(); ++ auto& flag_registry = quiche::FlagRegistry::getInstance(); ++ flag_registry.resetFlags(); + + EXPECT_FALSE(GetQuicReloadableFlag(quic_testonly_default_false)); + EXPECT_TRUE(GetQuicReloadableFlag(quic_testonly_default_true)); +@@ -583,14 +578,15 @@ TEST_F(QuicPlatformTest, QuicFlags) { + SetQuicFlag(FLAGS_quic_time_wait_list_seconds, 100); + EXPECT_EQ(100, GetQuicFlag(FLAGS_quic_time_wait_list_seconds)); + +- flag_registry.ResetFlags(); ++ flag_registry.resetFlags(); + EXPECT_FALSE(GetQuicReloadableFlag(quic_testonly_default_false)); + EXPECT_TRUE(GetQuicRestartFlag(quic_testonly_default_true)); + EXPECT_EQ(200, GetQuicFlag(FLAGS_quic_time_wait_list_seconds)); +- flag_registry.FindFlag("quic_reloadable_flag_quic_testonly_default_false") +- ->SetValueFromString("true"); +- flag_registry.FindFlag("quic_restart_flag_quic_testonly_default_true")->SetValueFromString("0"); +- flag_registry.FindFlag("quic_time_wait_list_seconds")->SetValueFromString("100"); ++ flag_registry.findFlag("FLAGS_quic_reloadable_flag_quic_testonly_default_false") ++ ->setValueFromString("true"); ++ flag_registry.findFlag("FLAGS_quic_restart_flag_quic_testonly_default_true") ++ ->setValueFromString("0"); ++ flag_registry.findFlag("FLAGS_quic_time_wait_list_seconds")->setValueFromString("100"); + EXPECT_TRUE(GetQuicReloadableFlag(quic_testonly_default_false)); + EXPECT_FALSE(GetQuicRestartFlag(quic_testonly_default_true)); + EXPECT_EQ(100, GetQuicFlag(FLAGS_quic_time_wait_list_seconds)); +@@ -661,35 +657,6 @@ TEST_F(FileUtilsTest, ReadFileContents) { + EXPECT_EQ(data, output); + } + +-TEST_F(QuicPlatformTest, PickUnsedPort) { +- int port = QuicPickServerPortForTestsOrDie(); +- std::vector supported_versions = +- Envoy::TestEnvironment::getIpVersionsForTest(); +- for (auto ip_version : supported_versions) { +- Envoy::Network::Address::InstanceConstSharedPtr addr = +- Envoy::Network::Test::getCanonicalLoopbackAddress(ip_version); +- Envoy::Network::Address::InstanceConstSharedPtr addr_with_port = +- Envoy::Network::Utility::getAddressWithPort(*addr, port); +- Envoy::Network::SocketImpl sock(Envoy::Network::Socket::Type::Datagram, addr_with_port); +- // binding of given port should success. +- EXPECT_EQ(0, sock.bind(addr_with_port).rc_); +- } +-} +- +-TEST_F(QuicPlatformTest, FailToPickUnsedPort) { +- Envoy::Api::MockOsSysCalls os_sys_calls; +- Envoy::TestThreadsafeSingletonInjector os_calls(&os_sys_calls); +- // Actually create sockets. +- EXPECT_CALL(os_sys_calls, socket(_, _, _)).WillRepeatedly([](int domain, int type, int protocol) { +- os_fd_t fd = ::socket(domain, type, protocol); +- return Envoy::Api::SysCallSocketResult{fd, errno}; +- }); +- // Fail bind call's to mimic port exhaustion. +- EXPECT_CALL(os_sys_calls, bind(_, _, _)) +- .WillRepeatedly(Return(Envoy::Api::SysCallIntResult{-1, SOCKET_ERROR_ADDR_IN_USE})); +- EXPECT_DEATH(QuicPickServerPortForTestsOrDie(), "Failed to pick a port for test."); +-} +- + TEST_F(QuicPlatformTest, TestEnvoyQuicBufferAllocator) { + QuicStreamBufferAllocator allocator; + Envoy::Stats::TestUtil::MemoryTest memory_test; +@@ -711,14 +678,6 @@ TEST_F(QuicPlatformTest, TestSystemEventLoop) { + QuicSystemEventLoop("dummy"); + } + +-QUIC_MUST_USE_RESULT bool dummyTestFunction() { return false; } +- +-TEST_F(QuicPlatformTest, TestQuicMacros) { +- // Just make sure it compiles. +- EXPECT_FALSE(dummyTestFunction()); +- int a QUIC_UNUSED; +-} +- + TEST(EnvoyQuicMemSliceTest, ConstructMemSliceFromBuffer) { + std::string str(512, 'b'); + // Fragment needs to out-live buffer. +diff --git a/test/extensions/quic_listeners/quiche/platform/quic_test_output_impl.cc b/test/extensions/quic_listeners/quiche/platform/quic_test_output_impl.cc +index 556f6cd3e..9eaf8532a 100644 +--- a/test/extensions/quic_listeners/quiche/platform/quic_test_output_impl.cc ++++ b/test/extensions/quic_listeners/quiche/platform/quic_test_output_impl.cc +@@ -19,7 +19,7 @@ + namespace quic { + namespace { + +-void QuicRecordTestOutputToFile(const std::string& filename, quiche::QuicheStringPiece data) { ++void quicRecordTestOutputToFile(const std::string& filename, absl::string_view data) { + const char* output_dir_env = std::getenv("QUIC_TEST_OUTPUT_DIR"); + if (output_dir_env == nullptr) { + QUIC_LOG(WARNING) << "Could not save test output since QUIC_TEST_OUTPUT_DIR is not set"; +@@ -64,11 +64,13 @@ void QuicRecordTestOutputToFile(const std::string& filename, quiche::QuicheStrin + } + } // namespace + +-void QuicSaveTestOutputImpl(quiche::QuicheStringPiece filename, quiche::QuicheStringPiece data) { +- QuicRecordTestOutputToFile(filename.data(), data); ++// NOLINTNEXTLINE(readability-identifier-naming) ++void QuicSaveTestOutputImpl(absl::string_view filename, absl::string_view data) { ++ quicRecordTestOutputToFile(filename.data(), data); + } + +-bool QuicLoadTestOutputImpl(quiche::QuicheStringPiece filename, std::string* data) { ++// NOLINTNEXTLINE(readability-identifier-naming) ++bool QuicLoadTestOutputImpl(absl::string_view filename, std::string* data) { + const char* read_dir_env = std::getenv("QUIC_TEST_OUTPUT_DIR"); + if (read_dir_env == nullptr) { + QUIC_LOG(WARNING) << "Could not load test output since QUIC_TEST_OUTPUT_DIR is not set"; +@@ -96,7 +98,8 @@ bool QuicLoadTestOutputImpl(quiche::QuicheStringPiece filename, std::string* dat + return true; + } + +-void QuicRecordTraceImpl(quiche::QuicheStringPiece identifier, quiche::QuicheStringPiece data) { ++// NOLINTNEXTLINE(readability-identifier-naming) ++void QuicRecordTraceImpl(absl::string_view identifier, absl::string_view data) { + const testing::TestInfo* test_info = testing::UnitTest::GetInstance()->current_test_info(); + + std::string timestamp = absl::FormatTime("%Y%m%d%H%M%S", absl::Now(), absl::LocalTimeZone()); +@@ -104,7 +107,7 @@ void QuicRecordTraceImpl(quiche::QuicheStringPiece identifier, quiche::QuicheStr + std::string filename = fmt::sprintf("%s.%s.%s.%s.qtr", test_info->name(), + test_info->test_case_name(), identifier.data(), timestamp); + +- QuicRecordTestOutputToFile(filename, data); ++ quicRecordTestOutputToFile(filename, data); + } + + } // namespace quic +diff --git a/test/extensions/quic_listeners/quiche/platform/quic_test_output_impl.h b/test/extensions/quic_listeners/quiche/platform/quic_test_output_impl.h +index a1c6c7305..fcf0c47b3 100644 +--- a/test/extensions/quic_listeners/quiche/platform/quic_test_output_impl.h ++++ b/test/extensions/quic_listeners/quiche/platform/quic_test_output_impl.h +@@ -6,14 +6,16 @@ + // consumed or referenced directly by other Envoy code. It serves purely as a + // porting layer for QUICHE. + +-#include "quiche/common/platform/api/quiche_string_piece.h" ++#include "absl/strings/string_view.h" + + namespace quic { ++// NOLINTNEXTLINE(readability-identifier-naming) ++void QuicSaveTestOutputImpl(absl::string_view filename, absl::string_view data); + +-void QuicSaveTestOutputImpl(quiche::QuicheStringPiece filename, quiche::QuicheStringPiece data); ++// NOLINTNEXTLINE(readability-identifier-naming) ++bool QuicLoadTestOutputImpl(absl::string_view filename, std::string* data); + +-bool QuicLoadTestOutputImpl(quiche::QuicheStringPiece filename, std::string* data); +- +-void QuicRecordTraceImpl(quiche::QuicheStringPiece identifier, quiche::QuicheStringPiece data); ++// NOLINTNEXTLINE(readability-identifier-naming) ++void QuicRecordTraceImpl(absl::string_view identifier, absl::string_view data); + + } // namespace quic +diff --git a/test/extensions/quic_listeners/quiche/platform/quiche_platform_test.cc b/test/extensions/quic_listeners/quiche/platform/quiche_platform_test.cc +deleted file mode 100644 +index a733894b5..000000000 +--- a/test/extensions/quic_listeners/quiche/platform/quiche_platform_test.cc ++++ /dev/null +@@ -1,39 +0,0 @@ +-// NOLINT(namespace-envoy) +- +-// This file is part of the QUICHE platform implementation, and is not to be +-// consumed or referenced directly by other Envoy code. It serves purely as a +-// porting layer for QUICHE. +- +-#include "gtest/gtest.h" +-#include "quiche/common/platform/api/quiche_arraysize.h" +-#include "quiche/common/platform/api/quiche_endian.h" +-#include "quiche/common/platform/api/quiche_optional.h" +-#include "quiche/common/platform/api/quiche_ptr_util.h" +-#include "quiche/common/platform/api/quiche_string_piece.h" +- +-namespace quiche { +- +-TEST(QuichePlatformTest, Arraysize) { +- int array[] = {0, 1, 2, 3, 4}; +- EXPECT_EQ(5, QUICHE_ARRAYSIZE(array)); +-} +- +-TEST(QuichePlatformTest, StringPiece) { +- std::string s = "bar"; +- QuicheStringPiece sp(s); +- EXPECT_EQ('b', sp[0]); +-} +- +-TEST(QuichePlatformTest, WrapUnique) { +- auto p = QuicheWrapUnique(new int(6)); +- EXPECT_EQ(6, *p); +-} +- +-TEST(QuichePlatformTest, TestQuicheOptional) { +- QuicheOptional maybe_a; +- EXPECT_FALSE(maybe_a.has_value()); +- maybe_a = 1; +- EXPECT_EQ(1, *maybe_a); +-} +- +-} // namespace quiche +diff --git a/test/extensions/quic_listeners/quiche/platform/spdy_platform_test.cc b/test/extensions/quic_listeners/quiche/platform/spdy_platform_test.cc +index 56453e232..eeae58c0a 100644 +--- a/test/extensions/quic_listeners/quiche/platform/spdy_platform_test.cc ++++ b/test/extensions/quic_listeners/quiche/platform/spdy_platform_test.cc +@@ -8,7 +8,6 @@ + #include "gtest/gtest.h" + #include "quiche/spdy/platform/api/spdy_bug_tracker.h" + #include "quiche/spdy/platform/api/spdy_containers.h" +-#include "quiche/spdy/platform/api/spdy_endianness_util.h" + #include "quiche/spdy/platform/api/spdy_estimate_memory_usage.h" + #include "quiche/spdy/platform/api/spdy_flags.h" + #include "quiche/spdy/platform/api/spdy_logging.h" +@@ -47,11 +46,6 @@ TEST(SpdyPlatformTest, SpdyHashSet) { + EXPECT_EQ(0, hset.count("qux")); + } + +-TEST(SpdyPlatformTest, SpdyEndianness) { +- EXPECT_EQ(0x1234, spdy::SpdyNetToHost16(spdy::SpdyHostToNet16(0x1234))); +- EXPECT_EQ(0x12345678, spdy::SpdyNetToHost32(spdy::SpdyHostToNet32(0x12345678))); +-} +- + TEST(SpdyPlatformTest, SpdyEstimateMemoryUsage) { + std::string s = "foo"; + // Stubbed out to always return 0. +@@ -92,19 +86,19 @@ TEST(SpdyPlatformTest, SpdyTestHelpers) { + } + + TEST(SpdyPlatformTest, SpdyFlags) { +- auto& flag_registry = quiche::FlagRegistry::GetInstance(); +- flag_registry.ResetFlags(); ++ auto& flag_registry = quiche::FlagRegistry::getInstance(); ++ flag_registry.resetFlags(); + EXPECT_FALSE(GetSpdyReloadableFlag(spdy_testonly_default_false)); + EXPECT_FALSE(GetSpdyRestartFlag(spdy_testonly_default_false)); + +- flag_registry.FindFlag("spdy_reloadable_flag_spdy_testonly_default_false") +- ->SetValueFromString("true"); ++ flag_registry.findFlag("FLAGS_quic_reloadable_flag_spdy_testonly_default_false") ++ ->setValueFromString("true"); + EXPECT_TRUE(GetSpdyReloadableFlag(spdy_testonly_default_false)); + EXPECT_FALSE(GetSpdyRestartFlag(spdy_testonly_default_false)); + +- flag_registry.ResetFlags(); +- flag_registry.FindFlag("spdy_restart_flag_spdy_testonly_default_false") +- ->SetValueFromString("yes"); ++ flag_registry.resetFlags(); ++ flag_registry.findFlag("FLAGS_quic_restart_flag_spdy_testonly_default_false") ++ ->setValueFromString("yes"); + EXPECT_FALSE(GetSpdyReloadableFlag(spdy_testonly_default_false)); + EXPECT_TRUE(GetSpdyRestartFlag(spdy_testonly_default_false)); + } +diff --git a/test/extensions/quic_listeners/quiche/test_proof_source.h b/test/extensions/quic_listeners/quiche/test_proof_source.h +index a249b4314..bbedfd6c7 100644 +--- a/test/extensions/quic_listeners/quiche/test_proof_source.h ++++ b/test/extensions/quic_listeners/quiche/test_proof_source.h +@@ -36,7 +36,7 @@ protected: + void signPayload(const quic::QuicSocketAddress& /*server_address*/, + const quic::QuicSocketAddress& /*client_address*/, + const std::string& /*hostname*/, uint16_t /*signature_algorithm*/, +- quiche::QuicheStringPiece in, ++ absl::string_view in, + std::unique_ptr callback) override { + callback->Run(true, absl::StrCat("Fake signature for { ", in, " }"), + std::make_unique(filter_chain_)); +diff --git a/test/extensions/quic_listeners/quiche/test_utils.h b/test/extensions/quic_listeners/quiche/test_utils.h +index 102f7608e..7f0ea78e8 100644 +--- a/test/extensions/quic_listeners/quiche/test_utils.h ++++ b/test/extensions/quic_listeners/quiche/test_utils.h +@@ -46,7 +46,7 @@ public: + MOCK_METHOD(quic::QuicConsumedData, WritevData, + (quic::QuicStreamId id, size_t write_length, quic::QuicStreamOffset offset, + quic::StreamSendingState state, quic::TransmissionType type, +- quiche::QuicheOptional level)); ++ absl::optional level)); + MOCK_METHOD(bool, ShouldYield, (quic::QuicStreamId id)); + + absl::string_view requestedServerName() const override { +@@ -90,7 +90,7 @@ public: + MOCK_METHOD(quic::QuicConsumedData, WritevData, + (quic::QuicStreamId id, size_t write_length, quic::QuicStreamOffset offset, + quic::StreamSendingState state, quic::TransmissionType type, +- quiche::QuicheOptional level)); ++ absl::optional level)); + MOCK_METHOD(bool, ShouldYield, (quic::QuicStreamId id)); + + absl::string_view requestedServerName() const override { +-- +2.29.2 + diff --git a/pkgs/servers/http/envoy/0002-Add-upb-patch-to-make-it-compile-under-GCC10.patch b/pkgs/servers/http/envoy/0002-Add-upb-patch-to-make-it-compile-under-GCC10.patch new file mode 100644 index 00000000000..370682efaa3 --- /dev/null +++ b/pkgs/servers/http/envoy/0002-Add-upb-patch-to-make-it-compile-under-GCC10.patch @@ -0,0 +1,91 @@ +From 8b531c41f956b27e4be32b430db2e7a44e0cdd3e Mon Sep 17 00:00:00 2001 +From: Luke Granger-Brown +Date: Thu, 7 Jan 2021 11:09:18 +0000 +Subject: [PATCH] Add upb patch to make it compile under GCC10 + +--- + bazel/repositories.bzl | 5 +++- + bazel/upb2.patch | 55 ++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 59 insertions(+), 1 deletion(-) + create mode 100644 bazel/upb2.patch + +diff --git a/bazel/repositories.bzl b/bazel/repositories.bzl +index 64d61ea49..c6cadc9df 100644 +--- a/bazel/repositories.bzl ++++ b/bazel/repositories.bzl +@@ -811,7 +811,10 @@ def _com_github_grpc_grpc(): + def _upb(): + _repository_impl( + name = "upb", +- patches = ["@envoy//bazel:upb.patch"], ++ patches = [ ++ "@envoy//bazel:upb.patch", ++ "@envoy//bazel:upb2.patch", ++ ], + patch_args = ["-p1"], + ) + +diff --git a/bazel/upb2.patch b/bazel/upb2.patch +new file mode 100644 +index 000000000..6e436c61b +--- /dev/null ++++ b/bazel/upb2.patch +@@ -0,0 +1,55 @@ ++From 9bd23dab4240b015321a53c45b3c9e4847fbf020 Mon Sep 17 00:00:00 2001 ++From: Joshua Haberman ++Date: Tue, 7 Apr 2020 15:22:11 -0700 ++Subject: [PATCH] Changed upb status to suit GCC10's warning about strncpy(). ++ (#268) ++ ++Added tests for all cases. Also removed ellipses from truncated ++messages, they were more trouble than they are worth. ++--- ++ tests/test_generated_code.c | 33 +++++++++++++++++++++++++++++++++ ++ upb/upb.c | 17 +++-------------- ++ 2 files changed, 36 insertions(+), 14 deletions(-) ++ ++diff --git a/upb/upb.c b/upb/upb.c ++index cb2cdfd9d..258192d79 100644 ++--- a/upb/upb.c +++++ b/upb/upb.c ++@@ -11,17 +11,6 @@ ++ ++ #include "upb/port_def.inc" ++ ++-/* Guarantee null-termination and provide ellipsis truncation. ++- * It may be tempting to "optimize" this by initializing these final ++- * four bytes up-front and then being careful never to overwrite them, ++- * this is safer and simpler. */ ++-static void nullz(upb_status *status) { ++- const char *ellipsis = "..."; ++- size_t len = strlen(ellipsis); ++- UPB_ASSERT(sizeof(status->msg) > len); ++- memcpy(status->msg + sizeof(status->msg) - len, ellipsis, len); ++-} ++- ++ /* upb_status *****************************************************************/ ++ ++ void upb_status_clear(upb_status *status) { ++@@ -37,8 +26,8 @@ const char *upb_status_errmsg(const upb_status *status) { return status->msg; } ++ void upb_status_seterrmsg(upb_status *status, const char *msg) { ++ if (!status) return; ++ status->ok = false; ++- strncpy(status->msg, msg, sizeof(status->msg)); ++- nullz(status); +++ strncpy(status->msg, msg, UPB_STATUS_MAX_MESSAGE - 1); +++ status->msg[UPB_STATUS_MAX_MESSAGE - 1] = '\0'; ++ } ++ ++ void upb_status_seterrf(upb_status *status, const char *fmt, ...) { ++@@ -52,7 +41,7 @@ void upb_status_vseterrf(upb_status *status, const char *fmt, va_list args) { ++ if (!status) return; ++ status->ok = false; ++ _upb_vsnprintf(status->msg, sizeof(status->msg), fmt, args); ++- nullz(status); +++ status->msg[UPB_STATUS_MAX_MESSAGE - 1] = '\0'; ++ } ++ ++ /* upb_alloc ******************************************************************/ +-- +2.29.2 + diff --git a/pkgs/servers/http/envoy/default.nix b/pkgs/servers/http/envoy/default.nix new file mode 100644 index 00000000000..0da0cb23d76 --- /dev/null +++ b/pkgs/servers/http/envoy/default.nix @@ -0,0 +1,119 @@ +{ buildBazelPackage +, fetchFromGitHub +, stdenv +, cmake +, go +, ninja +, python3 +}: + +let + srcVer = { + # We need the commit hash, since Bazel stamps the build with it. + # However, the version string is more useful for end-users. + # These are contained in a attrset of their own to make it obvious that + # people should update both. + version = "1.16.2"; + commit = "e98e41a8e168af7acae8079fc0cd68155f699aa3"; + }; +in +buildBazelPackage rec { + pname = "envoy"; + version = srcVer.version; + src = fetchFromGitHub { + owner = "envoyproxy"; + repo = "envoy"; + rev = srcVer.commit; + hash = "sha256-aWVMRKFCZzf9/96NRPCP4jiW38DJhXyi0gEqW7uIpnQ="; + + extraPostFetch = '' + chmod -R +w $out + rm $out/.bazelversion + echo ${srcVer.commit} > $out/SOURCE_VERSION + sed -i 's/GO_VERSION = ".*"/GO_VERSION = "host"/g' $out/bazel/dependency_imports.bzl + ''; + }; + + patches = [ + # Quiche needs to be updated to compile under newer GCC. + # This is a manual backport of http://github.com/envoyproxy/envoy/pull/13949. + ./0001-quiche-update-QUICHE-tar-13949.patch + + # upb needs to be updated to compile under newer GCC. + # This is a manual backport of https://github.com/protocolbuffers/upb/commit/9bd23dab4240b015321a53c45b3c9e4847fbf020. + ./0002-Add-upb-patch-to-make-it-compile-under-GCC10.patch + ]; + postPatch = '' + sed -i 's,#!/usr/bin/env python3,#!${python3}/bin/python,' bazel/foreign_cc/luajit.patch + ''; + + nativeBuildInputs = [ + cmake + python3 + go + ninja + ]; + + fetchAttrs = { + sha256 = "sha256-mct7anzErY9eSujZyGORfRJqzAO9XuFAv04DS8VRZKM="; + dontUseCmakeConfigure = true; + preInstall = '' + # Strip out the path to the build location (by deleting the comment line). + find $bazelOut/external -name requirements.bzl | while read requirements; do + sed -i '/# Generated from /d' "$requirements" + done + + # Remove references to paths in the Nix store. + sed -i \ + -e 's,${python3},__NIXPYTHON__,' \ + -e 's,${stdenv.shellPackage},__NIXSHELL__,' \ + $bazelOut/external/com_github_luajit_luajit/build.py \ + $bazelOut/external/local_config_sh/BUILD + rm -r $bazelOut/external/go_sdk + + # Replace some wheels which are only used for tests with empty files; + # they're nondeterministically built and packed. + >$bazelOut/external/config_validation_pip3/PyYAML-5.3.1-cp38-cp38-linux_x86_64.whl + >$bazelOut/external/protodoc_pip3/PyYAML-5.3.1-cp38-cp38-linux_x86_64.whl + >$bazelOut/external/thrift_pip3/thrift-0.13.0-cp38-cp38-linux_x86_64.whl + ''; + }; + buildAttrs = { + dontUseCmakeConfigure = true; + dontUseNinjaInstall = true; + preConfigure = '' + sed -i 's,#!/usr/bin/env bash,#!${stdenv.shell},' $bazelOut/external/rules_foreign_cc/tools/build_defs/framework.bzl + + # Add paths to Nix store back. + sed -i \ + -e 's,__NIXPYTHON__,${python3},' \ + -e 's,__NIXSHELL__,${stdenv.shellPackage},' \ + $bazelOut/external/com_github_luajit_luajit/build.py \ + $bazelOut/external/local_config_sh/BUILD + ''; + installPhase = '' + install -Dm0755 bazel-bin/source/exe/envoy-static $out/bin/envoy + ''; + }; + + fetchConfigured = true; + removeRulesCC = false; + removeLocalConfigCc = true; + removeLocal = false; + bazelTarget = "//source/exe:envoy-static"; + bazelBuildFlags = [ + "-c opt" + "--spawn_strategy=standalone" + "--noexperimental_strict_action_env" + "--cxxopt=-Wno-maybe-uninitialized" + "--cxxopt=-Wno-uninitialized" + ]; + + meta = with stdenv.lib; { + homepage = "https://envoyproxy.io"; + description = "Cloud-native edge and service proxy"; + license = licenses.asl20; + maintainers = with maintainers; [ lukegb ]; + platforms = [ "x86_64-linux" ]; # Other platforms will generate different fetch hashes. + }; +} diff --git a/pkgs/servers/kapowbang/default.nix b/pkgs/servers/kapowbang/default.nix index a0096eab026..b52018b64f4 100644 --- a/pkgs/servers/kapowbang/default.nix +++ b/pkgs/servers/kapowbang/default.nix @@ -2,7 +2,7 @@ buildGoModule rec { pname = "kapowbang"; - version = "0.5.4"; + version = "0.6.0"; subPackages = [ "." ]; @@ -10,10 +10,10 @@ buildGoModule rec { owner = "BBVA"; repo = "kapow"; rev = "v${version}"; - sha256 = "09qr631vzlgibz6q64f35lqzz9h1g3gxqfbapkrci5i0n3h04yr4"; + sha256 = "sha256-+GZarnG+SlxynoXYTvI1f9eki3DobiDt7vUdWlC0ECk="; }; - vendorSha256 = "159s46rhg67mgglaxgddx3k8kssl0cqiq8yjdqgjhhxppf16r7dy"; + vendorSha256 = "sha256-vXu64o/MTmw9oZL4MIHB+PEfYLcKVh5A5iGZ1RW1Xd4="; doCheck = false; diff --git a/pkgs/tools/backup/bup/default.nix b/pkgs/tools/backup/bup/default.nix index 3cd68e6ef45..3b81295ccf2 100644 --- a/pkgs/tools/backup/bup/default.nix +++ b/pkgs/tools/backup/bup/default.nix @@ -5,7 +5,7 @@ assert par2Support -> par2cmdline != null; -let version = "0.31"; in +let version = "0.32"; in with lib; @@ -17,7 +17,7 @@ stdenv.mkDerivation { repo = "bup"; owner = "bup"; rev = version; - sha256 = "03kmmdlgg0p5z39bhckkf91mmq55wghb93ghqvv9f9gaby1diw4z"; + sha256 = "sha256-SWnEJ5jwu/Jr2NLsTS8ajWay0WX/gYbOc3J6w00DndI="; }; buildInputs = [ diff --git a/pkgs/tools/bluetooth/blueberry/default.nix b/pkgs/tools/bluetooth/blueberry/default.nix index e954163b9e8..71ce9060b25 100644 --- a/pkgs/tools/bluetooth/blueberry/default.nix +++ b/pkgs/tools/bluetooth/blueberry/default.nix @@ -14,13 +14,13 @@ stdenv.mkDerivation rec { pname = "blueberry"; - version = "1.4.0"; + version = "1.4.2"; src = fetchFromGitHub { owner = "linuxmint"; repo = pname; rev = version; - sha256 = "19kmjp686h7lwmw5n7fc9giqbqm757pkbn42nfwlmasvzqsqlnz6"; + sha256 = "sha256-YwJQryIK92/Tc1s49jM3pCs7dmO3l+RbbFBtuXvhYbQ="; }; nativeBuildInputs = [ diff --git a/pkgs/tools/graphics/graph-cli/default.nix b/pkgs/tools/graphics/graph-cli/default.nix new file mode 100644 index 00000000000..4da4f50cef8 --- /dev/null +++ b/pkgs/tools/graphics/graph-cli/default.nix @@ -0,0 +1,31 @@ +{ lib +, python3Packages +}: + +python3Packages.buildPythonApplication rec { + pname = "graph-cli"; + version = "0.1.7"; + + src = python3Packages.fetchPypi { + inherit version; + pname = "graph_cli"; + sha256 = "sha256-/v9COgAjuunJ06HHl55J0moV1p4uO+N+w2QwE8tgebQ="; + }; + + propagatedBuildInputs = with python3Packages; [ + numpy + pandas + matplotlib + ]; + + # does not contain tests despite reference in Makefile + doCheck = false; + pythonImportsCheck = [ "graph_cli" ]; + + meta = with lib; { + description = "CLI to create graphs from CSV files"; + homepage = "https://github.com/mcastorina/graph-cli/"; + license = with licenses; [ gpl3Only ]; + maintainers = with maintainers; [ leungbk ]; + }; +} diff --git a/pkgs/tools/inputmethods/fcitx5/fcitx5-qt.nix b/pkgs/tools/inputmethods/fcitx5/fcitx5-qt.nix index e0499304889..30b08a13ade 100644 --- a/pkgs/tools/inputmethods/fcitx5/fcitx5-qt.nix +++ b/pkgs/tools/inputmethods/fcitx5/fcitx5-qt.nix @@ -7,6 +7,7 @@ , qtx11extras , libxcb , libXdmcp +, qtbase }: mkDerivation rec { @@ -20,8 +21,14 @@ mkDerivation rec { sha256 = "BVOumk2xj3vmwmm4KwiktQhWyTuUA2OFwYXNR6HgwyM="; }; + preConfigure = '' + substituteInPlace qt5/platforminputcontext/CMakeLists.txt \ + --replace \$"{CMAKE_INSTALL_QT5PLUGINDIR}" $out/${qtbase.qtPluginPrefix} + ''; + cmakeFlags = [ "-DENABLE_QT4=0" + "-DENABLE_QT6=0" ]; nativeBuildInputs = [ diff --git a/pkgs/tools/inputmethods/fcitx5/with-addons.nix b/pkgs/tools/inputmethods/fcitx5/with-addons.nix index 854020effea..17501d5f362 100644 --- a/pkgs/tools/inputmethods/fcitx5/with-addons.nix +++ b/pkgs/tools/inputmethods/fcitx5/with-addons.nix @@ -12,6 +12,14 @@ symlinkJoin { --prefix FCITX_ADDON_DIRS : "$out/lib/fcitx5" \ --suffix XDG_DATA_DIRS : "$out/share" \ --suffix PATH : "$out/bin" + + desktop=share/applications/org.fcitx.Fcitx5.desktop + autostart=etc/xdg/autostart/org.fcitx.Fcitx5.desktop + rm $out/$desktop + rm $out/$autostart + cp ${fcitx5}/$desktop $out/$desktop + sed -i $out/$desktop -e "s|^Exec=.*|Exec=$out/bin/fcitx5|g" + ln -s $out/$desktop $out/$autostart ''; meta = fcitx5.meta; diff --git a/pkgs/tools/misc/hebcal/default.nix b/pkgs/tools/misc/hebcal/default.nix index e7a9ccd6358..050cc63f6a5 100644 --- a/pkgs/tools/misc/hebcal/default.nix +++ b/pkgs/tools/misc/hebcal/default.nix @@ -1,14 +1,14 @@ { lib, stdenv, fetchFromGitHub, autoreconfHook }: stdenv.mkDerivation rec { - version = "4.22"; + version = "4.24"; pname = "hebcal"; src = fetchFromGitHub { owner = "hebcal"; repo = "hebcal"; rev = "v${version}"; - sha256 = "0bm29n51qi9q4vx4qsz3l9l1wvpvsk138zixfl5f5yz4kngzbx24"; + sha256 = "sha256-iWp2S3s8z/y4dZ66Ogqu7Yf4gTUvSS1J5F7d0ifRbcY="; }; nativeBuildInputs = [ autoreconfHook ]; diff --git a/pkgs/tools/misc/rpi-imager/default.nix b/pkgs/tools/misc/rpi-imager/default.nix new file mode 100644 index 00000000000..a18a8d6d38d --- /dev/null +++ b/pkgs/tools/misc/rpi-imager/default.nix @@ -0,0 +1,55 @@ +{ mkDerivation, + stdenv, + lib, + fetchFromGitHub, + cmake, + curl, + libarchive, + util-linux, + qtbase, + qtdeclarative, + qtsvg, + qttools, + qtquickcontrols2, + qtgraphicaleffects +}: + +mkDerivation rec { + pname = "rpi-imager"; + version = "1.5"; + + src = fetchFromGitHub { + owner = "raspberrypi"; + repo = pname; + rev = "v${version}"; + sha256 = "0596c7rpkykmjr3gsz9yczqsj7fzq04kc97s0rqkygjnwiqh2rwz"; + }; + + nativeBuildInputs = [ cmake ]; + buildInputs = [ + curl + libarchive + util-linux + qtbase + qtdeclarative + qtsvg + qttools + qtquickcontrols2 + qtgraphicaleffects + ]; + + /* By default, the builder checks for JSON support in lsblk by running "lsblk --json", + but that throws an error, as /sys/dev doesn't exist in the sandbox. + This patch removes the check. */ + patches = [ ./lsblkCheckFix.patch ]; + + meta = with lib; { + description = "Raspberry Pi Imaging Utility"; + homepage = "https://www.raspberrypi.org/software/"; + license = licenses.asl20; + maintainers = with maintainers; [ ymarkus ]; + platforms = platforms.all; + # does not build on darwin + broken = stdenv.isDarwin; + }; +} diff --git a/pkgs/tools/misc/rpi-imager/lsblkCheckFix.patch b/pkgs/tools/misc/rpi-imager/lsblkCheckFix.patch new file mode 100644 index 00000000000..98fd2a659dc --- /dev/null +++ b/pkgs/tools/misc/rpi-imager/lsblkCheckFix.patch @@ -0,0 +1,16 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 3d7fc79..8ce72b9 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -229,11 +229,6 @@ else() + if (NOT LSBLK) + message(FATAL_ERROR "Unable to locate lsblk (used for disk enumeration)") + endif() +- +- execute_process(COMMAND "${LSBLK}" "--json" RESULT_VARIABLE ret) +- if (ret EQUAL "1") +- message(FATAL_ERROR "util-linux package too old. lsblk does not support --json (used for disk enumeration)") +- endif() + endif() + + configure_file( diff --git a/pkgs/tools/networking/gandi-cli/default.nix b/pkgs/tools/networking/gandi-cli/default.nix index 724e367d35d..d7394ac94d8 100644 --- a/pkgs/tools/networking/gandi-cli/default.nix +++ b/pkgs/tools/networking/gandi-cli/default.nix @@ -1,21 +1,33 @@ -{ lib, stdenv, python3Packages, fetchFromGitHub }: - -with python3Packages; +{ lib +, buildPythonApplication +, click +, fetchFromGitHub +, ipy +, pyyaml +, requests +}: buildPythonApplication rec { pname = "gandi-cli"; - version = "1.5"; + version = "1.6"; src = fetchFromGitHub { owner = "Gandi"; repo = "gandi.cli"; rev = version; - sha256 = "1jcabpphlm6qajw8dz0h4gynm03g1mxi0cn900i3v7wdfww1gfab"; + sha256 = "sha256-KLeEbbzgqpmBjeTc5RYsFScym8xtMqVjU+H0lyDM0+o="; }; - propagatedBuildInputs = [ click ipy pyyaml requests ]; + propagatedBuildInputs = [ + click + ipy + pyyaml + requests + ]; - doCheck = false; # Tests try to contact the actual remote API + # Tests try to contact the actual remote API + doCheck = false; + pythonImportsCheck = [ "gandi" ]; meta = with lib; { description = "Command-line interface to the public Gandi.net API"; diff --git a/pkgs/tools/networking/igmpproxy/default.nix b/pkgs/tools/networking/igmpproxy/default.nix index 0c4279b6f64..9f924964907 100644 --- a/pkgs/tools/networking/igmpproxy/default.nix +++ b/pkgs/tools/networking/igmpproxy/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "igmpproxy"; - version = "0.2.1"; + version = "0.3"; src = fetchFromGitHub { owner = "pali"; repo = "igmpproxy"; rev = version; - sha256 = "13zn4q24drbhpqmcmqh1jg7ind5iqn11wj3xvczlc8w35vyqssyf"; + sha256 = "sha256-B7mq+5pKWMO4dJeFPB7tiyjDQjj90g/kmYB2ApBE3Ic="; }; nativeBuildInputs = [ autoreconfHook ]; diff --git a/pkgs/tools/security/enum4linux-ng/default.nix b/pkgs/tools/security/enum4linux-ng/default.nix new file mode 100644 index 00000000000..33694ad79ae --- /dev/null +++ b/pkgs/tools/security/enum4linux-ng/default.nix @@ -0,0 +1,41 @@ +{ lib +, buildPythonApplication +, fetchFromGitHub +, impacket +, ldap3 +, pyyaml +, samba +}: + +buildPythonApplication rec { + pname = "enum4linux-ng"; + version = "1.0.0"; + + src = fetchFromGitHub { + owner = "cddmp"; + repo = pname; + rev = "v${version}"; + sha256 = "0dhg8cwbdn0vlnchhscx31ay4mgj5p6rf73wzgs8nvqg0shsawmy"; + }; + + propagatedBuildInputs = [ + impacket + ldap3 + pyyaml + samba + ]; + + # It's only a script and not a Python module. Project has no tests + doCheck = false; + + meta = with lib; { + description = "Windows/Samba enumeration tool"; + longDescription = '' + enum4linux-ng.py is a rewrite of Mark Lowe's enum4linux.pl, a tool for + enumerating information from Windows and Samba systems. + ''; + homepage = "https://github.com/cddmp/enum4linux-ng"; + license = with licenses; [ gpl3Plus ]; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/tools/security/nitrokey-app/default.nix b/pkgs/tools/security/nitrokey-app/default.nix index c3aebc782d8..bc7731a0a7a 100644 --- a/pkgs/tools/security/nitrokey-app/default.nix +++ b/pkgs/tools/security/nitrokey-app/default.nix @@ -3,21 +3,16 @@ stdenv.mkDerivation rec { pname = "nitrokey-app"; - version = "1.3.2"; + version = "1.4.2"; src = fetchFromGitHub { owner = "Nitrokey"; repo = "nitrokey-app"; rev = "v${version}"; - sha256 = "193kzlz3qn9il56h78faiqkgv749hdils1nn1iw6g3wphgx5fjs2"; + sha256 = "1k0w921hfrya4q2r7bqn7kgmwvwb7c15k9ymlbnksmfc9yyjyfcv"; fetchSubmodules = true; }; - postPatch = '' - substituteInPlace libnitrokey/CMakeLists.txt \ - --replace '/data/41-nitrokey.rules' '/libnitrokey/data/41-nitrokey.rules' - ''; - buildInputs = [ bash-completion hidapi diff --git a/pkgs/tools/security/nitrokey-app/udev-rules.nix b/pkgs/tools/security/nitrokey-app/udev-rules.nix index a8143ae6925..11dcd63d776 100644 --- a/pkgs/tools/security/nitrokey-app/udev-rules.nix +++ b/pkgs/tools/security/nitrokey-app/udev-rules.nix @@ -1,6 +1,5 @@ -{ lib, stdenv, nitrokey-app -, group ? "nitrokey" -}: +{ lib, stdenv, nitrokey-app }: + stdenv.mkDerivation { name = "nitrokey-udev-rules-${lib.getVersion nitrokey-app}"; @@ -9,10 +8,6 @@ stdenv.mkDerivation { dontBuild = true; - patchPhase = '' - substituteInPlace libnitrokey/data/41-nitrokey.rules --replace plugdev "${group}" - ''; - installPhase = '' mkdir -p $out/etc/udev/rules.d cp libnitrokey/data/41-nitrokey.rules $out/etc/udev/rules.d diff --git a/pkgs/tools/system/bpytop/default.nix b/pkgs/tools/system/bpytop/default.nix index abcc1593988..b59222200c1 100644 --- a/pkgs/tools/system/bpytop/default.nix +++ b/pkgs/tools/system/bpytop/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "bpytop"; - version = "1.0.50"; + version = "1.0.59"; src = fetchFromGitHub { owner = "aristocratos"; repo = pname; rev = "v${version}"; - sha256 = "10j2g19sh2hl5lzbcllr862hkzr0mc1z8n24afzaycn1sphri8fc"; + sha256 = "sha256-RlrUUIbZRNTvxU8LVW0/ZcARlKDVvSMlkN0+6BgAink="; }; buildInputs = [ makeWrapper ]; diff --git a/pkgs/tools/system/java-service-wrapper/default.nix b/pkgs/tools/system/java-service-wrapper/default.nix index 8c87f64d745..4d1417b4b83 100644 --- a/pkgs/tools/system/java-service-wrapper/default.nix +++ b/pkgs/tools/system/java-service-wrapper/default.nix @@ -5,11 +5,11 @@ stdenv.mkDerivation rec { pname = "java-service-wrapper"; - version = "3.5.43"; + version = "3.5.45"; src = fetchurl { url = "https://wrapper.tanukisoftware.com/download/${version}/wrapper_${version}_src.tar.gz"; - sha256 = "19cx3854rk7b2056z8pvxnf4simsg5js7czsy2bys7jl6vh2x02b"; + sha256 = "sha256-rnlloa0DicWT1RlP2szDvBINvT5/RZ17GOarUzvX1AI="; }; buildInputs = [ jdk ]; diff --git a/pkgs/tools/text/angle-grinder/default.nix b/pkgs/tools/text/angle-grinder/default.nix index e04530b8110..82ca3ff0f60 100644 --- a/pkgs/tools/text/angle-grinder/default.nix +++ b/pkgs/tools/text/angle-grinder/default.nix @@ -5,16 +5,16 @@ rustPlatform.buildRustPackage rec { pname = "angle-grinder"; - version = "0.15.0"; + version = "0.16"; src = fetchFromGitHub { owner = "rcoh"; repo = pname; rev = "v${version}"; - sha256 = "1m5yj9412kjlnqi1nwh44i627ip0kqcbhvwgh87gl5vgd2a0m091"; + sha256 = "sha256-cGYhGcNalmc/Gr7mY1Fycs8cZYaIy622DFIL64LT+gE="; }; - cargoSha256 = "0y4c1gja0i3h2whjpm74yf3z1y85pkwmpmrl2fjsyy0mn493hzv8"; + cargoSha256 = "sha256-NkghuZHNT3Rq2wqiyKzjP+u9ZpeHU5H6oBLS0oQ7LcU="; meta = with lib; { description = "Slice and dice logs on the command line"; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 3a9c0024632..6c067d2edfc 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -242,6 +242,8 @@ in enum4linux = callPackage ../tools/security/enum4linux {}; + enum4linux-ng = python3Packages.callPackage ../tools/security/enum4linux-ng { }; + onesixtyone = callPackage ../tools/security/onesixtyone {}; creddump = callPackage ../tools/security/creddump {}; @@ -4277,7 +4279,7 @@ in gallery-dl = python3Packages.callPackage ../applications/misc/gallery-dl { }; - gandi-cli = callPackage ../tools/networking/gandi-cli { }; + gandi-cli = python3Packages.callPackage ../tools/networking/gandi-cli { }; gandom-fonts = callPackage ../data/fonts/gandom-fonts { }; @@ -7454,6 +7456,8 @@ in rpPPPoE = callPackage ../tools/networking/rp-pppoe { }; + rpi-imager = libsForQt5.callPackage ../tools/misc/rpi-imager { }; + rpiboot-unstable = callPackage ../development/misc/rpiboot/unstable.nix { }; rpm = callPackage ../tools/package-management/rpm { @@ -17496,6 +17500,8 @@ in engelsystem = callPackage ../servers/web-apps/engelsystem { }; + envoy = callPackage ../servers/http/envoy { }; + etcd = callPackage ../servers/etcd { }; etcd_3_4 = callPackage ../servers/etcd/3.4.nix { }; @@ -17569,6 +17575,8 @@ in gobetween = callPackage ../servers/gobetween { }; + graph-cli = callPackage ../tools/graphics/graph-cli { }; + h2o = callPackage ../servers/http/h2o { }; haka = callPackage ../tools/security/haka { }; @@ -24081,6 +24089,8 @@ in purple-facebook = callPackage ../applications/networking/instant-messengers/pidgin-plugins/purple-facebook { }; + pikopixel = callPackage ../applications/graphics/pikopixel { }; + pithos = callPackage ../applications/audio/pithos { pythonPackages = python3Packages; }; @@ -28260,6 +28270,8 @@ in gutenprintBin = callPackage ../misc/drivers/gutenprint/bin.nix { }; + carps-cups = callPackage ../misc/cups/drivers/carps-cups { }; + cups-bjnp = callPackage ../misc/cups/drivers/cups-bjnp { }; cups-brother-hl1110 = pkgsi686Linux.callPackage ../misc/cups/drivers/hl1110 { }; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 17a9808f66c..f2f4b9d16b4 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -214,6 +214,8 @@ in { aiofiles = callPackage ../development/python-modules/aiofiles { }; + aioflo = callPackage ../development/python-modules/aioflo { }; + aioftp = callPackage ../development/python-modules/aioftp { }; aioguardian = callPackage ../development/python-modules/aioguardian { }; @@ -1669,6 +1671,8 @@ in { detox = throw "detox is no longer maintained, and was broken since may 2019"; # added 2020-07-04 + devolo-home-control-api = callPackage ../development/python-modules/devolo-home-control-api { }; + devpi-common = callPackage ../development/python-modules/devpi-common { }; dftfit = callPackage ../development/python-modules/dftfit { }; @@ -5538,6 +5542,8 @@ in { pymaging_png = callPackage ../development/python-modules/pymaging_png { }; + pymata-express = callPackage ../development/python-modules/pymata-express { }; + pymatgen = callPackage ../development/python-modules/pymatgen { }; pymatgen-lammps = callPackage ../development/python-modules/pymatgen-lammps { };