From d8f0f3ebd1f99f344675198e460a1ab898761421 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Sat, 19 Nov 2022 16:01:04 +0100 Subject: [PATCH 01/76] python310Packages.proxy-py: add changelog to meta --- pkgs/development/python-modules/proxy-py/default.nix | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/pkgs/development/python-modules/proxy-py/default.nix b/pkgs/development/python-modules/proxy-py/default.nix index bea708129872..c3580e23b233 100644 --- a/pkgs/development/python-modules/proxy-py/default.nix +++ b/pkgs/development/python-modules/proxy-py/default.nix @@ -1,5 +1,5 @@ -{ stdenv -, lib +{ lib +, stdenv , buildPythonPackage , fetchFromGitHub , openssl @@ -23,7 +23,7 @@ buildPythonPackage rec { owner = "abhinavsingh"; repo = "proxy.py"; rev = "refs/tags/v${version}"; - sha256 = "sha256-dA7a9RicBFCSf6IoGX/CdvI8x/xMOFfNtyuvFn9YmHI="; + hash = "sha256-dA7a9RicBFCSf6IoGX/CdvI8x/xMOFfNtyuvFn9YmHI="; }; nativeBuildInputs = [ @@ -56,10 +56,11 @@ buildPythonPackage rec { ]; meta = with lib; { - broken = (stdenv.isLinux && stdenv.isAarch64) || stdenv.isDarwin; description = "Python proxy framework"; homepage = "https://github.com/abhinavsingh/proxy.py"; + changelog = "https://github.com/abhinavsingh/proxy.py/releases/tag/v${version}"; license = with licenses; [ bsd3 ]; maintainers = with maintainers; [ fab ]; + broken = (stdenv.isLinux && stdenv.isAarch64) || stdenv.isDarwin; }; } From fc0008053f8a25e915e0277957355de8e0360beb Mon Sep 17 00:00:00 2001 From: Nick Cao Date: Thu, 24 Nov 2022 11:08:03 +0800 Subject: [PATCH 02/76] qt6.qtbase: update cmake patch to not move bin directory to dev output --- .../libraries/qt-6/patches/cmake.patch | 28 ++++++++----------- 1 file changed, 11 insertions(+), 17 deletions(-) diff --git a/pkgs/development/libraries/qt-6/patches/cmake.patch b/pkgs/development/libraries/qt-6/patches/cmake.patch index 1fb2ea26c35d..84192f669696 100644 --- a/pkgs/development/libraries/qt-6/patches/cmake.patch +++ b/pkgs/development/libraries/qt-6/patches/cmake.patch @@ -1,4 +1,4 @@ -commit 4f497c358e0386b65df1c1d636aadf72f8647134 +commit bd8f6ecea0663bdd150aa48941cbd47d25874396 Author: Nick Cao Date: Tue Apr 19 13:49:59 2022 +0800 @@ -13,10 +13,10 @@ Date: Tue Apr 19 13:49:59 2022 +0800 generated cmake files to point to the corrected pathes. diff --git a/Source/cmExportFileGenerator.cxx b/Source/cmExportFileGenerator.cxx -index 8b0f64e23b..03291e2ee2 100644 +index 5a33349b19..677a6084d6 100644 --- a/Source/cmExportFileGenerator.cxx +++ b/Source/cmExportFileGenerator.cxx -@@ -6,6 +6,7 @@ +@@ -7,6 +7,7 @@ #include #include #include @@ -24,7 +24,7 @@ index 8b0f64e23b..03291e2ee2 100644 #include -@@ -325,9 +326,23 @@ static void prefixItems(std::string& exportDirs) +@@ -330,9 +331,21 @@ static void prefixItems(std::string& exportDirs) for (std::string const& e : entries) { exportDirs += sep; sep = ";"; @@ -35,8 +35,6 @@ index 8b0f64e23b..03291e2ee2 100644 + if (std::getenv("dev")) { + if (cmHasLiteralPrefix(e, "include") || cmHasLiteralPrefix(e, "./include")) { + exportDirs += std::getenv("dev"); -+ } else if (cmHasLiteralPrefix(e, "bin") || cmHasLiteralPrefix(e, "./bin")) { -+ exportDirs += std::getenv("dev"); + } else if (cmHasLiteralPrefix(e, "mkspecs") || cmHasLiteralPrefix(e, "./mkspecs")) { + exportDirs += std::getenv("dev"); + } else if (cmHasLiteralPrefix(e, "libexec") || cmHasLiteralPrefix(e, "./libexec")) { @@ -52,18 +50,18 @@ index 8b0f64e23b..03291e2ee2 100644 exportDirs += e; } diff --git a/Source/cmExportInstallFileGenerator.cxx b/Source/cmExportInstallFileGenerator.cxx -index 4a3c565bce..5afa9e5e50 100644 +index adccdfeece..ba248305bd 100644 --- a/Source/cmExportInstallFileGenerator.cxx +++ b/Source/cmExportInstallFileGenerator.cxx -@@ -5,6 +5,7 @@ +@@ -6,6 +6,7 @@ #include #include #include +#include #include "cmExportSet.h" - #include "cmGeneratedFileStream.h" -@@ -263,7 +264,7 @@ void cmExportInstallFileGenerator::LoadConfigFiles(std::ostream& os) + #include "cmFileSet.h" +@@ -266,7 +267,7 @@ void cmExportInstallFileGenerator::LoadConfigFiles(std::ostream& os) void cmExportInstallFileGenerator::ReplaceInstallPrefix(std::string& input) { @@ -72,7 +70,7 @@ index 4a3c565bce..5afa9e5e50 100644 } bool cmExportInstallFileGenerator::GenerateImportFileConfig( -@@ -381,9 +382,24 @@ void cmExportInstallFileGenerator::SetImportLocationProperty( +@@ -382,9 +383,22 @@ void cmExportInstallFileGenerator::SetImportLocationProperty( // Construct the installed location of the target. std::string dest = itgen->GetDestination(config); std::string value; @@ -83,8 +81,6 @@ index 4a3c565bce..5afa9e5e50 100644 + if (std::getenv("dev")) { + if (cmHasLiteralPrefix(dest, "include") || cmHasLiteralPrefix(dest, "./include")) { + value = std::getenv("dev"); -+ } else if (cmHasLiteralPrefix(dest, "bin") || cmHasLiteralPrefix(dest, "./bin")) { -+ value = std::getenv("dev"); + } else if (cmHasLiteralPrefix(dest, "mkspecs") || cmHasLiteralPrefix(dest, "./mkspecs")) { + value = std::getenv("dev"); + } else if (cmHasLiteralPrefix(dest, "libexec") || cmHasLiteralPrefix(dest, "./libexec")) { @@ -100,10 +96,10 @@ index 4a3c565bce..5afa9e5e50 100644 value += dest; value += "/"; diff --git a/Source/cmGeneratorExpression.cxx b/Source/cmGeneratorExpression.cxx -index 840f5112d6..7bb4ab41aa 100644 +index f988e54a19..cc5c7ac9fd 100644 --- a/Source/cmGeneratorExpression.cxx +++ b/Source/cmGeneratorExpression.cxx -@@ -197,7 +197,22 @@ static void prefixItems(const std::string& content, std::string& result, +@@ -192,7 +192,20 @@ static void prefixItems(const std::string& content, std::string& result, sep = ";"; if (!cmSystemTools::FileIsFullPath(e) && cmGeneratorExpression::Find(e) != 0) { @@ -111,8 +107,6 @@ index 840f5112d6..7bb4ab41aa 100644 + if (std::getenv("dev")) { + if (cmHasLiteralPrefix(e, "include") || cmHasLiteralPrefix(e, "./include")) { + result += std::getenv("dev"); -+ } else if (cmHasLiteralPrefix(e, "bin") || cmHasLiteralPrefix(e, "./bin")) { -+ result += std::getenv("dev"); + } else if (cmHasLiteralPrefix(e, "mkspecs") || cmHasLiteralPrefix(e, "./mkspecs")) { + result += std::getenv("dev"); + } else if (cmHasLiteralPrefix(e, "libexec") || cmHasLiteralPrefix(e, "./libexec")) { From fe2b297ca4abceb25aa2b56461aad060de1fa006 Mon Sep 17 00:00:00 2001 From: Nick Cao Date: Thu, 24 Nov 2022 11:09:23 +0800 Subject: [PATCH 03/76] qt6.qtbase: do not unconditionally move $out/bin to $dev/bin --- pkgs/development/libraries/qt-6/modules/qtbase.nix | 1 - pkgs/development/libraries/qt-6/qtModule.nix | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/pkgs/development/libraries/qt-6/modules/qtbase.nix b/pkgs/development/libraries/qt-6/modules/qtbase.nix index 436fe4633075..e41a5563149b 100644 --- a/pkgs/development/libraries/qt-6/modules/qtbase.nix +++ b/pkgs/development/libraries/qt-6/modules/qtbase.nix @@ -240,7 +240,6 @@ stdenv.mkDerivation rec { # Move development tools to $dev moveQtDevTools - moveToOutput bin "$dev" moveToOutput libexec "$dev" # fixup .pc file (where to find 'moc' etc.) diff --git a/pkgs/development/libraries/qt-6/qtModule.nix b/pkgs/development/libraries/qt-6/qtModule.nix index 5f6d429edf58..657f60ad8273 100644 --- a/pkgs/development/libraries/qt-6/qtModule.nix +++ b/pkgs/development/libraries/qt-6/qtModule.nix @@ -33,7 +33,7 @@ stdenv.mkDerivation (args // { postInstall = '' if [ ! -z "$dev" ]; then mkdir "$dev" - for dir in bin libexec mkspecs + for dir in libexec mkspecs do moveToOutput "$dir" "$dev" done From a1f9413602644dd2acb006241355cc67eafcc5e8 Mon Sep 17 00:00:00 2001 From: Nick Cao Date: Thu, 24 Nov 2022 11:10:02 +0800 Subject: [PATCH 04/76] qt6.qttools: set devTools --- .../libraries/qt-6/modules/qttools.nix | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/pkgs/development/libraries/qt-6/modules/qttools.nix b/pkgs/development/libraries/qt-6/modules/qttools.nix index 06ce64424d55..3a8c652de1c3 100644 --- a/pkgs/development/libraries/qt-6/modules/qttools.nix +++ b/pkgs/development/libraries/qt-6/modules/qttools.nix @@ -15,4 +15,28 @@ qtModule { NIX_CFLAGS_COMPILE = [ "-DNIX_OUTPUT_DEV=\"${placeholder "dev"}\"" ]; + + devTools = [ + "bin/qcollectiongenerator" + "bin/linguist" + "bin/assistant" + "bin/qdoc" + "bin/lconvert" + "bin/designer" + "bin/qtattributionsscanner" + "bin/lrelease" + "bin/lrelease-pro" + "bin/pixeltool" + "bin/lupdate" + "bin/lupdate-pro" + "bin/qtdiag" + "bin/qhelpgenerator" + "bin/qtplugininfo" + "bin/qthelpconverter" + "bin/lprodump" + "bin/qdistancefieldgenerator" + ] ++ lib.optionals stdenv.isDarwin [ + "bin/macdeployqt" + ]; + } From 95e84d99a1857cba790a2201d518b6d36876e9e0 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 11 Dec 2022 06:15:52 +0000 Subject: [PATCH 05/76] spaceship-prompt: 3.16.7 -> 4.12.0 --- pkgs/shells/zsh/spaceship-prompt/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/shells/zsh/spaceship-prompt/default.nix b/pkgs/shells/zsh/spaceship-prompt/default.nix index e5187658eeb9..4aefb63ed0e3 100644 --- a/pkgs/shells/zsh/spaceship-prompt/default.nix +++ b/pkgs/shells/zsh/spaceship-prompt/default.nix @@ -2,13 +2,13 @@ stdenvNoCC.mkDerivation rec { pname = "spaceship-prompt"; - version = "3.16.7"; + version = "4.12.0"; src = fetchFromGitHub { owner = "denysdovhan"; repo = pname; rev = "v${version}"; - sha256 = "sha256-dMP7mDzb0xLCP2l9j4SOP47bcpuBNSoXsDecVOvZaL8="; + sha256 = "sha256-ZL6z5pj2xbnUZl4SK7wxiJjheUY79hwDNVYm9+biKZU="; }; strictDeps = true; From 0f28dc189a470f102864079e730b7103388c24ab Mon Sep 17 00:00:00 2001 From: Kyle Ondy Date: Mon, 19 Dec 2022 15:00:02 -0500 Subject: [PATCH 06/76] spaceship-promt: add async.zsh to package https://gist.github.com/gabrielmldantas/66f0c738a3f248fbf6b7f672bdfef671 via https://github.com/spaceship-prompt/spaceship-prompt/issues/1255#issuecomment-1346276093 --- pkgs/shells/zsh/spaceship-prompt/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/shells/zsh/spaceship-prompt/default.nix b/pkgs/shells/zsh/spaceship-prompt/default.nix index 4aefb63ed0e3..e1691184e7d4 100644 --- a/pkgs/shells/zsh/spaceship-prompt/default.nix +++ b/pkgs/shells/zsh/spaceship-prompt/default.nix @@ -22,6 +22,7 @@ stdenvNoCC.mkDerivation rec { find scripts -type f -exec install -Dm644 {} "$out/lib/spaceship-prompt/{}" \; find sections -type f -exec install -Dm644 {} "$out/lib/spaceship-prompt/{}" \; install -Dm644 spaceship.zsh "$out/lib/spaceship-prompt/spaceship.zsh" + install -Dm644 async.zsh "$out/lib/spaceship-prompt/async.zsh" install -d "$out/share/zsh/themes/" ln -s "$out/lib/spaceship-prompt/spaceship.zsh" "$out/share/zsh/themes/spaceship.zsh-theme" install -d "$out/share/zsh/site-functions/" From 7e1a3e4a8f6cf85cd39d460222e52fe041a95c1c Mon Sep 17 00:00:00 2001 From: Nathan Henrie Date: Mon, 5 Dec 2022 11:46:59 -0700 Subject: [PATCH 07/76] nixos/installer/cd-dvd/iso-image: Honor boot.loader.timeout for EFI EFI boot timeout is currently a static 10 whereas syslinux uses boot.loader.timeout. This changes the EFI config to match. Some discussion at https://discourse.nixos.org/t/how-to-override-let-variables/23741/2 --- nixos/modules/installer/cd-dvd/iso-image.nix | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/nixos/modules/installer/cd-dvd/iso-image.nix b/nixos/modules/installer/cd-dvd/iso-image.nix index 81aca8617389..659df7851b08 100644 --- a/nixos/modules/installer/cd-dvd/iso-image.nix +++ b/nixos/modules/installer/cd-dvd/iso-image.nix @@ -77,6 +77,14 @@ let else config.boot.loader.timeout * 10; + # Timeout in grub is in seconds. + # null means max timeout (infinity) + # 0 means disable timeout + grubEfiTimeout = if config.boot.loader.timeout == null then + -1 + else + config.boot.loader.timeout; + # The configuration file for syslinux. # Notes on syslinux configuration and UNetbootin compatibility: @@ -284,7 +292,7 @@ let if serial; then set with_serial=yes ;fi export with_serial clear - set timeout=10 + set timeout=${toString grubEfiTimeout} # This message will only be viewable when "gfxterm" is not used. echo "" From 56acc4566e22310e3ddd72c749c2b93865977a23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Mon, 19 Dec 2022 08:40:49 +0100 Subject: [PATCH 08/76] luajit_openresty: init at 2.1-20220915 --- pkgs/development/interpreters/lua-5/default.nix | 4 ++++ pkgs/development/interpreters/luajit/2.0.nix | 2 +- pkgs/development/interpreters/luajit/2.1.nix | 3 ++- pkgs/development/interpreters/luajit/default.nix | 10 +++++----- pkgs/development/interpreters/luajit/openresty.nix | 14 ++++++++++++++ pkgs/top-level/all-packages.nix | 2 +- 6 files changed, 27 insertions(+), 8 deletions(-) create mode 100644 pkgs/development/interpreters/luajit/openresty.nix diff --git a/pkgs/development/interpreters/lua-5/default.nix b/pkgs/development/interpreters/lua-5/default.nix index 3cf436419f34..dd471c9de40c 100644 --- a/pkgs/development/interpreters/lua-5/default.nix +++ b/pkgs/development/interpreters/lua-5/default.nix @@ -163,4 +163,8 @@ rec { inherit callPackage fetchFromGitHub passthruFun; }; + luajit_openresty = import ../luajit/openresty.nix { + self = luajit_openresty; + inherit callPackage fetchFromGitHub passthruFun; + }; } diff --git a/pkgs/development/interpreters/luajit/2.0.nix b/pkgs/development/interpreters/luajit/2.0.nix index daa298761762..78abb742c407 100644 --- a/pkgs/development/interpreters/luajit/2.0.nix +++ b/pkgs/development/interpreters/luajit/2.0.nix @@ -2,7 +2,7 @@ callPackage ./default.nix { version = "2.0.5-2022-09-13"; - isStable = true; + src = fetchFromGitHub { owner = "LuaJIT"; repo = "LuaJIT"; diff --git a/pkgs/development/interpreters/luajit/2.1.nix b/pkgs/development/interpreters/luajit/2.1.nix index 8362aab55e0f..8efb86ab0174 100644 --- a/pkgs/development/interpreters/luajit/2.1.nix +++ b/pkgs/development/interpreters/luajit/2.1.nix @@ -1,7 +1,8 @@ { self, callPackage, fetchFromGitHub, passthruFun }: + callPackage ./default.nix { version = "2.1.0-2022-10-04"; - isStable = false; + src = fetchFromGitHub { owner = "LuaJIT"; repo = "LuaJIT"; diff --git a/pkgs/development/interpreters/luajit/default.nix b/pkgs/development/interpreters/luajit/default.nix index 64aa0345e80b..d1211ce0a928 100644 --- a/pkgs/development/interpreters/luajit/default.nix +++ b/pkgs/development/interpreters/luajit/default.nix @@ -2,7 +2,6 @@ , stdenv , fetchFromGitHub , buildPackages -, isStable , version , src , extraMeta ? { } @@ -71,7 +70,7 @@ stdenv.mkDerivation rec { } >> src/luaconf.h ''; - configurePhase = false; + dontConfigure = true; buildInputs = lib.optional enableValgrindSupport valgrind; @@ -91,8 +90,9 @@ stdenv.mkDerivation rec { postInstall = '' ( cd "$out/include"; ln -s luajit-*/* . ) ln -s "$out"/bin/luajit-* "$out"/bin/lua - '' + lib.optionalString (!isStable) '' - ln -s "$out"/bin/luajit-* "$out"/bin/luajit + if [[ ! -e "$out"/bin/luajit ]]; then + ln -s "$out"/bin/luajit* "$out"/bin/luajit + fi ''; LuaPathSearchPaths = luaPackages.luaLib.luaPathList; @@ -117,7 +117,7 @@ stdenv.mkDerivation rec { meta = with lib; { description = "High-performance JIT compiler for Lua 5.1"; - homepage = "http://luajit.org"; + homepage = "https://luajit.org/"; license = licenses.mit; platforms = platforms.linux ++ platforms.darwin; # See https://github.com/LuaJIT/LuaJIT/issues/628 diff --git a/pkgs/development/interpreters/luajit/openresty.nix b/pkgs/development/interpreters/luajit/openresty.nix new file mode 100644 index 000000000000..372d9233bf1f --- /dev/null +++ b/pkgs/development/interpreters/luajit/openresty.nix @@ -0,0 +1,14 @@ +{ self, callPackage, fetchFromGitHub, passthruFun }: + +callPackage ./default.nix rec { + version = "2.1-20220915"; + + src = fetchFromGitHub { + owner = "openresty"; + repo = "luajit2"; + rev = "v${version}"; + hash = "sha256-kMHE4iQtm2CujK9TVut1jNhY2QxYP514jfBsxOCyd4s="; + }; + + inherit self passthruFun; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 1cd035820397..1803485dad69 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -15993,7 +15993,7 @@ with pkgs; ### LUA interpreters luaInterpreters = callPackage ./../development/interpreters/lua-5 {}; - inherit (luaInterpreters) lua5_1 lua5_2 lua5_2_compat lua5_3 lua5_3_compat lua5_4 lua5_4_compat luajit_2_1 luajit_2_0; + inherit (luaInterpreters) lua5_1 lua5_2 lua5_2_compat lua5_3 lua5_3_compat lua5_4 lua5_4_compat luajit_2_1 luajit_2_0 luajit_openresty; lua5 = lua5_2_compat; lua = lua5; From 861c7554d18200137a1480d733cbbb337614b500 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Mon, 19 Dec 2022 08:42:26 +0100 Subject: [PATCH 09/76] buildLuaPackage: make makeFlags expandable --- .../development/lua-modules/generic/default.nix | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/pkgs/development/lua-modules/generic/default.nix b/pkgs/development/lua-modules/generic/default.nix index 183a958b4e1f..7f07c6602dac 100644 --- a/pkgs/development/lua-modules/generic/default.nix +++ b/pkgs/development/lua-modules/generic/default.nix @@ -2,6 +2,7 @@ { disabled ? false , propagatedBuildInputs ? [ ] +, makeFlags ? [ ] , ... } @ attrs: @@ -9,18 +10,16 @@ if disabled then throw "${attrs.name} not supported by interpreter lua-${lua.luaversion}" else toLuaModule (lua.stdenv.mkDerivation ( - { + attrs // { + name = "lua${lua.luaversion}-" + attrs.pname + "-" + attrs.version; + makeFlags = [ "PREFIX=$(out)" - "LUA_LIBDIR=$(out)/lib/lua/${lua.luaversion}" "LUA_INC=-I${lua}/include" - ]; - } - // - attrs - // - { - name = "lua${lua.luaversion}-" + attrs.pname + "-" + attrs.version; + "LUA_LIBDIR=$(out)/lib/lua/${lua.luaversion}" + "LUA_VERSION=${lua.luaversion}" + ] ++ makeFlags; + propagatedBuildInputs = propagatedBuildInputs ++ [ lua # propagate it for its setup-hook ]; From 40ff955c07786cf3f5dad27b4f08f1df0f280458 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Mon, 19 Dec 2022 08:43:14 +0100 Subject: [PATCH 10/76] luaPlugins.lua-resty-lrucache: init at 0.13 --- pkgs/top-level/lua-packages.nix | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/pkgs/top-level/lua-packages.nix b/pkgs/top-level/lua-packages.nix index 73a4efae15b7..606e3b92511e 100644 --- a/pkgs/top-level/lua-packages.nix +++ b/pkgs/top-level/lua-packages.nix @@ -30,7 +30,7 @@ let lib.concatMapStringsSep ";" (path: "${drv}/${path}") pathListForVersion; in -{ +rec { # Dont take luaPackages from "global" pkgs scope to avoid mixing lua versions luaPackages = self; @@ -59,6 +59,25 @@ in # a fork of luarocks used to generate nix lua derivations from rockspecs luarocks-nix = callPackage ../development/tools/misc/luarocks/luarocks-nix.nix { }; + lua-resty-lrucache = callPackage ({ fetchFromGitHub }: buildLuaPackage rec { + pname = "lua-resty-lrucache"; + version = "0.13"; + + src = fetchFromGitHub { + owner = "openresty"; + repo = "lua-resty-lrucache"; + rev = "v${version}"; + sha256 = "sha256-J8RNAMourxqUF8wPKd8XBhNwGC/x1KKvrVnZtYDEu4Q="; + }; + + meta = with lib; { + description = "Lua-land LRU Cache based on LuaJIT FFI"; + homepage = "https://github.com/openresty/lua-resty-lrucache"; + license = licenses.bsd3; + maintainers = with maintainers; [ SuperSandro2000 ]; + }; + }) {}; + luxio = callPackage ({ fetchurl, which, pkg-config }: buildLuaPackage rec { pname = "luxio"; version = "13"; From e33fb7418d3974b623df53a463f94010d3a101bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Mon, 19 Dec 2022 08:43:32 +0100 Subject: [PATCH 11/76] luaPlugins.lua-resty-core: init at 0.1.24 --- pkgs/top-level/lua-packages.nix | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/pkgs/top-level/lua-packages.nix b/pkgs/top-level/lua-packages.nix index 606e3b92511e..5ea0e298f0a6 100644 --- a/pkgs/top-level/lua-packages.nix +++ b/pkgs/top-level/lua-packages.nix @@ -59,6 +59,27 @@ rec { # a fork of luarocks used to generate nix lua derivations from rockspecs luarocks-nix = callPackage ../development/tools/misc/luarocks/luarocks-nix.nix { }; + lua-resty-core = callPackage ({ fetchFromGitHub }: buildLuaPackage rec { + pname = "lua-resty-core"; + version = "0.1.24"; + + src = fetchFromGitHub { + owner = "openresty"; + repo = "lua-resty-core"; + rev = "v${version}"; + sha256 = "sha256-obwyxHSot1Lb2c1dNqJor3inPou+UIBrqldbkNBCQQk="; + }; + + propagatedBuildInputs = [ lua-resty-lrucache ]; + + meta = with lib; { + description = "New FFI-based API for lua-nginx-module"; + homepage = "https://github.com/openresty/lua-resty-core"; + license = licenses.bsd3; + maintainers = with maintainers; [ SuperSandro2000 ]; + }; + }) {}; + lua-resty-lrucache = callPackage ({ fetchFromGitHub }: buildLuaPackage rec { pname = "lua-resty-lrucache"; version = "0.13"; From 1e929f36fb9af24b28afad6a078b2d18f4086687 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Tue, 27 Dec 2022 13:57:19 +0100 Subject: [PATCH 12/76] python310Packages.tenacity: 8.0.1 -> 8.1.0 Changelog: https://tenacity.readthedocs.io/en/latest/changelog.html --- .../python-modules/tenacity/default.nix | 44 ++++++++++++------- 1 file changed, 29 insertions(+), 15 deletions(-) diff --git a/pkgs/development/python-modules/tenacity/default.nix b/pkgs/development/python-modules/tenacity/default.nix index 8de4c87b6fdc..1cd8e4091321 100644 --- a/pkgs/development/python-modules/tenacity/default.nix +++ b/pkgs/development/python-modules/tenacity/default.nix @@ -1,28 +1,42 @@ -{ lib, buildPythonPackage, fetchPypi, isPy27, isPy3k -, pbr, six, futures ? null, monotonic ? null, typing ? null, setuptools-scm -, pytest, sphinx, tornado, typeguard +{ lib +, buildPythonPackage +, fetchPypi +, pbr +, pytest-asyncio +, pytestCheckHook +, pythonOlder +, setuptools-scm +, tornado +, typeguard }: buildPythonPackage rec { pname = "tenacity"; - version = "8.0.1"; + version = "8.1.0"; + format = "pyproject"; + + disabled = pythonOlder "3.6"; src = fetchPypi { inherit pname version; - sha256 = "43242a20e3e73291a28bcbcacfd6e000b02d3857a9a9fff56b297a27afdc932f"; + sha256 = "sha256-5IxDf9+TQPVma5LNeZDpa8X8lV4SmLr0qQfjlyBnpEU="; }; - nativeBuildInputs = [ pbr setuptools-scm ]; - propagatedBuildInputs = [ six ] - ++ lib.optionals isPy27 [ futures monotonic typing ]; + nativeBuildInputs = [ + pbr + setuptools-scm + ]; - checkInputs = [ pytest sphinx tornado ] - ++ lib.optionals isPy3k [ typeguard ]; - checkPhase = if isPy27 then '' - pytest --ignore='tenacity/tests/test_asyncio.py' - '' else '' - pytest - ''; + checkInputs = [ + pytest-asyncio + pytestCheckHook + tornado + typeguard + ]; + + pythonImportsCheck = [ + "tenacity" + ]; meta = with lib; { homepage = "https://github.com/jd/tenacity"; From a4b7d0e650678ce616b07d3006a9bdcb85f4894d Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Tue, 27 Dec 2022 14:06:23 +0100 Subject: [PATCH 13/76] python310Packages.teslajsonpy: 3.6.0 -> 3.7.0 Changelog: https://github.com/zabuldon/teslajsonpy/releases/tag/v3.7.0 --- pkgs/development/python-modules/teslajsonpy/default.nix | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/teslajsonpy/default.nix b/pkgs/development/python-modules/teslajsonpy/default.nix index c1ec12b33f27..96f8de75b8ad 100644 --- a/pkgs/development/python-modules/teslajsonpy/default.nix +++ b/pkgs/development/python-modules/teslajsonpy/default.nix @@ -10,12 +10,13 @@ , pytest-asyncio , pytestCheckHook , pythonOlder +, tenacity , wrapt }: buildPythonPackage rec { pname = "teslajsonpy"; - version = "3.6.0"; + version = "3.7.0"; format = "pyproject"; disabled = pythonOlder "3.7"; @@ -24,7 +25,7 @@ buildPythonPackage rec { owner = "zabuldon"; repo = pname; rev = "refs/tags/v${version}"; - hash = "sha256-qxC1nhvisYMfWRTyrkNSpqCKofAmqui23cMRaup8llU="; + hash = "sha256-H2PXn2RwEteLpbbQftlSXM7vD59IJCFJhYdnHHGXfo8="; }; nativeBuildInputs = [ @@ -37,6 +38,7 @@ buildPythonPackage rec { backoff beautifulsoup4 httpx + tenacity wrapt ]; From c3161d81bd54122c26021a26e3e571de86d593ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philippe=20H=C3=BCrlimann?= Date: Mon, 26 Dec 2022 18:49:44 +0100 Subject: [PATCH 14/76] linuxdoc-tools: init at 0.9.82 Heavily based on original work by xvuko Co-authored-by: xvuko --- lib/licenses.nix | 6 ++ .../text/sgml/linuxdoc-tools/default.nix | 62 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 3 files changed, 70 insertions(+) create mode 100644 pkgs/tools/text/sgml/linuxdoc-tools/default.nix diff --git a/lib/licenses.nix b/lib/licenses.nix index f54ab464357b..52956e52afa6 100644 --- a/lib/licenses.nix +++ b/lib/licenses.nix @@ -842,6 +842,12 @@ in mkLicense lset) ({ fullName = "SGI Free Software License B v2.0"; }; + # Gentoo seems to treat it as a license: + # https://gitweb.gentoo.org/repo/gentoo.git/tree/licenses/SGMLUG?id=7d999af4a47bf55e53e54713d98d145f935935c1 + sgmlug = { + fullName = "SGML UG SGML Parser Materials license"; + }; + sleepycat = { spdxId = "Sleepycat"; fullName = "Sleepycat License"; diff --git a/pkgs/tools/text/sgml/linuxdoc-tools/default.nix b/pkgs/tools/text/sgml/linuxdoc-tools/default.nix new file mode 100644 index 000000000000..8050d084e350 --- /dev/null +++ b/pkgs/tools/text/sgml/linuxdoc-tools/default.nix @@ -0,0 +1,62 @@ +{ stdenv, lib, makeWrapper, fetchFromGitLab, openjade, gnumake, perl, flex +, gnused, coreutils, which, opensp, groff, texlive, texinfo, withLatex ? false +}: + +stdenv.mkDerivation rec { + pname = "linuxdoc-tools"; + version = "0.9.82"; + + src = fetchFromGitLab { + owner = "agmartin"; + repo = "linuxdoc-tools"; + rev = version; + sha256 = "17v9ilh79av4n94vk4m52aq57ykb9myffxd2qr8kb8b3xnq5d36z"; + }; + + outputs = [ "out" "man" "doc" ]; + + configureFlags = [ + ("--enable-docs=txt info lyx html rtf" + + lib.optionalString withLatex " pdf") + ]; + + LEX = "flex"; + + postInstall = '' + wrapProgram $out/bin/linuxdoc \ + --prefix PATH : "${lib.makeBinPath [ groff opensp ]}:$out/bin" \ + --prefix PERL5LIB : "$out/share/linuxdoc-tools/" + ''; + + doInstallCheck = true; + + installCheckPhase = '' + pushd doc/example + substituteInPlace Makefile \ + --replace "COMMAND=linuxdoc" "COMMAND=$out/bin/linuxdoc" \ + ${lib.optionalString (!withLatex) "--replace '.tex .dvi .ps .pdf' ''"} + make + popd + ''; + + nativeBuildInputs = [ flex which makeWrapper ]; + + buildInputs = [ opensp groff texinfo perl gnused coreutils ] + ++ lib.optionals withLatex [ texlive.combined.scheme-medium ]; + + meta = with lib; { + description = "Toolset for processing LinuxDoc DTD SGML files"; + longDescription = '' + A collection of text formatters which understands a LinuxDoc DTD SGML + source file. Each formatter (or "back-end") renders the source file into + a variety of output formats, including HTML, TeX, DVI, PostScript, plain + text, and groff source in manual-page format. The linuxdoc suite is + provided for backward compatibility, because there are still many useful + documents written in LinuxDoc DTD sgml source. + ''; + homepage = "https://gitlab.com/agmartin/linuxdoc-tools"; + license = with licenses; [ gpl3Plus mit sgmlug ]; + platforms = platforms.linux; + maintainers = with maintainers; [ p-h ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index b81d61fd6f6b..dff269af8f12 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -4928,6 +4928,8 @@ with pkgs; linuxptp = callPackage ../os-specific/linux/linuxptp { }; + linuxdoc-tools = callPackage ../tools/text/sgml/linuxdoc-tools { }; + lisgd = callPackage ../tools/inputmethods/lisgd { }; lite = callPackage ../applications/editors/lite { }; From 77763b4c88fcb64be548d419fc8a4f0ac04548ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philippe=20H=C3=BCrlimann?= Date: Mon, 26 Dec 2022 18:50:22 +0100 Subject: [PATCH 15/76] ulogd: init at 2.0.8 Heavily based on original work by xvuko. Co-authored-by: xvuko --- pkgs/os-specific/linux/ulogd/default.nix | 72 ++++++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 2 files changed, 74 insertions(+) create mode 100644 pkgs/os-specific/linux/ulogd/default.nix diff --git a/pkgs/os-specific/linux/ulogd/default.nix b/pkgs/os-specific/linux/ulogd/default.nix new file mode 100644 index 000000000000..fb5fd465f1f3 --- /dev/null +++ b/pkgs/os-specific/linux/ulogd/default.nix @@ -0,0 +1,72 @@ +{ stdenv, lib, fetchurl, gnumake, libnetfilter_acct, libnetfilter_conntrack +, libnetfilter_log, libmnl, libnfnetlink, automake, autoconf, autogen, libtool +, pkg-config, libpcap, linuxdoc-tools, autoreconfHook }: + +stdenv.mkDerivation rec { + version = "2.0.8"; + pname = "ulogd"; + + src = fetchurl { + url = "https://netfilter.org/projects/${pname}/files/${pname}-${version}.tar.bz2"; + hash = "sha256-Tq1sOXDD9X+h6J/i18xIO6b+K9GwhwFSHgs6/WZ98pE="; + }; + + outputs = [ "out" "doc" "man" ]; + + postPatch = '' + substituteInPlace ulogd.8 --replace "/usr/share/doc" "$doc/share/doc" + ''; + + postBuild = '' + pushd doc/ + linuxdoc --backend=txt --filter ulogd.sgml + linuxdoc --backend=html --split=0 ulogd.sgml + popd + ''; + + postInstall = '' + install -Dm444 -t $out/share/doc/${pname} ulogd.conf doc/ulogd.txt doc/ulogd.html README doc/*table + install -Dm444 -t $out/share/doc/${pname}-mysql doc/mysql*.sql + install -Dm444 -t $out/share/doc/${pname}-pgsql doc/pgsql*.sql + ''; + + buildInputs = [ + libnetfilter_acct + libnetfilter_conntrack + libnetfilter_log + libmnl + libnfnetlink + libpcap + ]; + + nativeBuildInputs = [ + autoreconfHook + pkg-config + automake + autoconf + autogen + libtool + linuxdoc-tools + ]; + + meta = with lib; { + description = "Userspace logging daemon for netfilter/iptables"; + + longDescription = '' + Logging daemon that reads event messages coming from the Netfilter + connection tracking, the Netfilter packet logging subsystem and from the + Netfilter accounting subsystem. You have to enable support for connection + tracking event delivery; ctnetlink and the NFLOG target in your Linux + kernel 2.6.x or load their respective modules. The deprecated ULOG target + (which has been superseded by NFLOG) is also supported. + + The received messages can be logged into files or into a MySQL, SQLite3 + or PostgreSQL database. IPFIX and Graphite output are also supported. + ''; + + homepage = "https://www.netfilter.org/projects/ulogd/index.html"; + license = licenses.gpl2; + platforms = platforms.linux; + maintainers = with maintainers; [ p-h ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index dff269af8f12..a63f74e0861c 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -13093,6 +13093,8 @@ with pkgs; inherit (chickenPackages_4) eggDerivation fetchegg; }; + ulogd = callPackage ../os-specific/linux/ulogd { }; + unar = callPackage ../tools/archivers/unar { inherit (darwin.apple_sdk.frameworks) Foundation AppKit; stdenv = clangStdenv; From bcbedfeefc21fee3e3f7f897c803adfad425f6d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philippe=20H=C3=BCrlimann?= Date: Wed, 28 Dec 2022 00:17:14 +0100 Subject: [PATCH 16/76] nixos/ulogd: init Heavily based on original work by xvuko Co-authored-by: xvuko --- .../from_md/release-notes/rl-2305.section.xml | 8 ++ .../manual/release-notes/rl-2305.section.md | 2 + nixos/modules/module-list.nix | 1 + nixos/modules/services/logging/ulogd.nix | 48 +++++++++++ nixos/tests/all-tests.nix | 1 + nixos/tests/ulogd.nix | 84 +++++++++++++++++++ pkgs/os-specific/linux/ulogd/default.nix | 4 +- 7 files changed, 147 insertions(+), 1 deletion(-) create mode 100644 nixos/modules/services/logging/ulogd.nix create mode 100644 nixos/tests/ulogd.nix diff --git a/nixos/doc/manual/from_md/release-notes/rl-2305.section.xml b/nixos/doc/manual/from_md/release-notes/rl-2305.section.xml index 4837b29c585a..82f1751de1c3 100644 --- a/nixos/doc/manual/from_md/release-notes/rl-2305.section.xml +++ b/nixos/doc/manual/from_md/release-notes/rl-2305.section.xml @@ -67,6 +67,14 @@ services.v2raya. + + + ulogd, + a userspace logging daemon for netfilter/iptables related + logging. Available as + services.ulogd. + +
diff --git a/nixos/doc/manual/release-notes/rl-2305.section.md b/nixos/doc/manual/release-notes/rl-2305.section.md index b3354eec65fb..503ce59f6c40 100644 --- a/nixos/doc/manual/release-notes/rl-2305.section.md +++ b/nixos/doc/manual/release-notes/rl-2305.section.md @@ -26,6 +26,8 @@ In addition to numerous new and upgraded packages, this release has the followin - [v2rayA](https://v2raya.org), a Linux web GUI client of Project V which supports V2Ray, Xray, SS, SSR, Trojan and Pingtunnel. Available as [services.v2raya](options.html#opt-services.v2raya.enable). +- [ulogd](https://www.netfilter.org/projects/ulogd/index.html), a userspace logging daemon for netfilter/iptables related logging. Available as [services.ulogd](options.html#opt-services.ulogd.enable). + ## Backward Incompatibilities {#sec-release-23.05-incompatibilities} diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index a1e7cf01882e..0c840a5d7ab8 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -520,6 +520,7 @@ ./services/logging/syslog-ng.nix ./services/logging/syslogd.nix ./services/logging/vector.nix + ./services/logging/ulogd.nix ./services/mail/clamsmtp.nix ./services/mail/davmail.nix ./services/mail/dkimproxy-out.nix diff --git a/nixos/modules/services/logging/ulogd.nix b/nixos/modules/services/logging/ulogd.nix new file mode 100644 index 000000000000..065032b531c6 --- /dev/null +++ b/nixos/modules/services/logging/ulogd.nix @@ -0,0 +1,48 @@ +{ config, lib, pkgs, ... }: + +with lib; +let + cfg = config.services.ulogd; + settingsFormat = pkgs.formats.ini { }; + settingsFile = settingsFormat.generate "ulogd.conf" cfg.settings; +in { + options = { + services.ulogd = { + enable = mkEnableOption (lib.mdDoc "ulogd"); + + settings = mkOption { + example = { + global.stack = "stack=log1:NFLOG,base1:BASE,pcap1:PCAP"; + log1.group = 2; + pcap1 = { + file = "/var/log/ulogd.pcap"; + sync = 1; + }; + }; + type = settingsFormat.type; + default = { }; + description = lib.mdDoc "Configuration for ulogd. See {file}`/share/doc/ulogd/` in `pkgs.ulogd.doc`."; + }; + + logLevel = mkOption { + type = types.enum [ 1 3 5 7 8 ]; + default = 5; + description = lib.mdDoc "Log level (1 = debug, 3 = info, 5 = notice, 7 = error, 8 = fatal)"; + }; + }; + }; + + config = mkIf cfg.enable { + systemd.services.ulogd = { + description = "Ulogd Daemon"; + wantedBy = [ "multi-user.target" ]; + wants = [ "network-pre.target" ]; + before = [ "network-pre.target" ]; + + serviceConfig = { + ExecStart = "${pkgs.ulogd}/bin/ulogd -c ${settingsFile} --verbose --loglevel ${toString cfg.logLevel}"; + ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID"; + }; + }; + }; +} diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index e385dfebebf3..25f8994b131b 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -681,6 +681,7 @@ in { tuxguitar = handleTest ./tuxguitar.nix {}; ucarp = handleTest ./ucarp.nix {}; udisks2 = handleTest ./udisks2.nix {}; + ulogd = handleTest ./ulogd.nix {}; unbound = handleTest ./unbound.nix {}; unifi = handleTest ./unifi.nix {}; unit-php = handleTest ./web-servers/unit-php.nix {}; diff --git a/nixos/tests/ulogd.nix b/nixos/tests/ulogd.nix new file mode 100644 index 000000000000..ce52d855ffc2 --- /dev/null +++ b/nixos/tests/ulogd.nix @@ -0,0 +1,84 @@ +import ./make-test-python.nix ({ pkgs, lib, ... }: { + name = "ulogd"; + + meta = with lib; { + maintainers = with maintainers; [ p-h ]; + }; + + nodes.machine = { ... }: { + networking.firewall.enable = false; + networking.nftables.enable = true; + networking.nftables.ruleset = '' + table inet filter { + chain input { + type filter hook input priority 0; + log group 2 accept + } + + chain output { + type filter hook output priority 0; policy accept; + log group 2 accept + } + + chain forward { + type filter hook forward priority 0; policy drop; + log group 2 accept + } + + } + ''; + services.ulogd = { + enable = true; + settings = { + global = { + logfile = "/var/log/ulogd.log"; + stack = "log1:NFLOG,base1:BASE,pcap1:PCAP"; + }; + + log1.group = 2; + + pcap1 = { + file = "/var/log/ulogd.pcap"; + sync = 1; + }; + }; + }; + + environment.systemPackages = with pkgs; [ + tcpdump + ]; + }; + + testScript = '' + start_all() + machine.wait_for_unit("ulogd.service") + machine.wait_for_unit("network-online.target") + + with subtest("Ulogd is running"): + machine.succeed("pgrep ulogd >&2") + + # All packets show up twice in the logs + with subtest("Logs are collected"): + machine.succeed("ping -f 127.0.0.1 -c 5 >&2") + machine.succeed("sleep 2") + machine.wait_until_succeeds("du /var/log/ulogd.pcap >&2") + _, echo_request_packets = machine.execute("tcpdump -r /var/log/ulogd.pcap icmp[0] == 8 and host 127.0.0.1") + expected, actual = 5*2, len(echo_request_packets.splitlines()) + assert expected == actual, f"Expected {expected} packets, got: {actual}" + _, echo_reply_packets = machine.execute("tcpdump -r /var/log/ulogd.pcap icmp[0] == 0 and host 127.0.0.1") + expected, actual = 5*2, len(echo_reply_packets.splitlines()) + assert expected == actual, f"Expected {expected} packets, got: {actual}" + + with subtest("Reloading service reopens log file"): + machine.succeed("mv /var/log/ulogd.pcap /var/log/old_ulogd.pcap") + machine.succeed("systemctl reload ulogd.service") + machine.succeed("ping -f 127.0.0.1 -c 5 >&2") + machine.succeed("sleep 2") + _, echo_request_packets = machine.execute("tcpdump -r /var/log/ulogd.pcap icmp[0] == 8 and host 127.0.0.1") + expected, actual = 5*2, len(echo_request_packets.splitlines()) + assert expected == actual, f"Expected {expected} packets, got: {actual}" + _, echo_reply_packets = machine.execute("tcpdump -r /var/log/ulogd.pcap icmp[0] == 0 and host 127.0.0.1") + expected, actual = 5*2, len(echo_reply_packets.splitlines()) + assert expected == actual, f"Expected {expected} packets, got: {actual}" + ''; +}) diff --git a/pkgs/os-specific/linux/ulogd/default.nix b/pkgs/os-specific/linux/ulogd/default.nix index fb5fd465f1f3..cb48d20043fd 100644 --- a/pkgs/os-specific/linux/ulogd/default.nix +++ b/pkgs/os-specific/linux/ulogd/default.nix @@ -1,6 +1,6 @@ { stdenv, lib, fetchurl, gnumake, libnetfilter_acct, libnetfilter_conntrack , libnetfilter_log, libmnl, libnfnetlink, automake, autoconf, autogen, libtool -, pkg-config, libpcap, linuxdoc-tools, autoreconfHook }: +, pkg-config, libpcap, linuxdoc-tools, autoreconfHook, nixosTests }: stdenv.mkDerivation rec { version = "2.0.8"; @@ -49,6 +49,8 @@ stdenv.mkDerivation rec { linuxdoc-tools ]; + passthru.tests = { inherit (nixosTests) ulogd; }; + meta = with lib; { description = "Userspace logging daemon for netfilter/iptables"; From 800d3b75f05ab8157480c836deb0b49909522526 Mon Sep 17 00:00:00 2001 From: Patrick Chilton Date: Wed, 28 Dec 2022 06:05:03 +0100 Subject: [PATCH 17/76] gnome.gnome-flashback: fix crash on start due to not finding .desktops --- pkgs/desktops/gnome/misc/gnome-flashback/default.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pkgs/desktops/gnome/misc/gnome-flashback/default.nix b/pkgs/desktops/gnome/misc/gnome-flashback/default.nix index cdebb3628bac..6bb3484ed24a 100644 --- a/pkgs/desktops/gnome/misc/gnome-flashback/default.nix +++ b/pkgs/desktops/gnome/misc/gnome-flashback/default.nix @@ -180,9 +180,11 @@ let dontWrapGApps = true; # We want to do the wrapping ourselves. # gnome-flashback and gnome-panel need to be added to XDG_DATA_DIRS so that their .desktop files can be found by gnome-session. + # We need to pass the --builtin flag so that gnome-session invokes gnome-session-binary instead of systemd. + # If systemd is used, it doesn't use the environment we set up here and so it can't find the .desktop files. preFixup = '' makeWrapper ${gnome-session}/bin/gnome-session $out \ - --add-flags "--session=gnome-flashback-${wmName}" \ + --add-flags "--session=gnome-flashback-${wmName} --builtin" \ --set-default XDG_CURRENT_DESKTOP 'GNOME-Flashback:GNOME' \ --prefix XDG_DATA_DIRS : '${lib.makeSearchPath "share" ([ wmApplication gnomeSession gnome-flashback ] ++ lib.optional enableGnomePanel gnome-panel)}' \ "''${gappsWrapperArgs[@]}" \ From 933b978fb93b2f166351f4ab768661d1aa76458e Mon Sep 17 00:00:00 2001 From: Patrick Chilton Date: Wed, 28 Dec 2022 22:45:22 +0100 Subject: [PATCH 18/76] gnome.gnome-flashback: add VM test --- nixos/tests/all-tests.nix | 1 + nixos/tests/gnome-flashback.nix | 51 +++++++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+) create mode 100644 nixos/tests/gnome-flashback.nix diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index e385dfebebf3..15c1fcdf6c3d 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -238,6 +238,7 @@ in { gitolite-fcgiwrap = handleTest ./gitolite-fcgiwrap.nix {}; glusterfs = handleTest ./glusterfs.nix {}; gnome = handleTest ./gnome.nix {}; + gnome-flashback = handleTest ./gnome-flashback.nix {}; gnome-xorg = handleTest ./gnome-xorg.nix {}; go-neb = handleTest ./go-neb.nix {}; gobgpd = handleTest ./gobgpd.nix {}; diff --git a/nixos/tests/gnome-flashback.nix b/nixos/tests/gnome-flashback.nix new file mode 100644 index 000000000000..c97264e6928a --- /dev/null +++ b/nixos/tests/gnome-flashback.nix @@ -0,0 +1,51 @@ +import ./make-test-python.nix ({ pkgs, lib, ...} : { + name = "gnome-flashback"; + meta = with lib; { + maintainers = teams.gnome.members ++ [ maintainers.chpatrick ]; + }; + + nodes.machine = { nodes, ... }: let + user = nodes.machine.config.users.users.alice; + in + + { imports = [ ./common/user-account.nix ]; + + services.xserver.enable = true; + + services.xserver.displayManager = { + gdm.enable = true; + gdm.debug = true; + autoLogin = { + enable = true; + user = user.name; + }; + }; + + services.xserver.desktopManager.gnome.enable = true; + services.xserver.desktopManager.gnome.debug = true; + services.xserver.desktopManager.gnome.flashback.enableMetacity = true; + services.xserver.displayManager.defaultSession = "gnome-flashback-metacity"; + }; + + testScript = { nodes, ... }: let + user = nodes.machine.config.users.users.alice; + uid = toString user.uid; + xauthority = "/run/user/${uid}/gdm/Xauthority"; + in '' + with subtest("Login to GNOME Flashback with GDM"): + machine.wait_for_x() + # Wait for alice to be logged in" + machine.wait_for_unit("default.target", "${user.name}") + machine.wait_for_file("${xauthority}") + machine.succeed("xauth merge ${xauthority}") + # Check that logging in has given the user ownership of devices + assert "alice" in machine.succeed("getfacl -p /dev/snd/timer") + + with subtest("Wait for Metacity"): + machine.wait_until_succeeds( + "pgrep metacity" + ) + machine.sleep(20) + machine.screenshot("screen") + ''; +}) From 2e41b522c8f793d4d9f9752785ec0eafde4dfd51 Mon Sep 17 00:00:00 2001 From: figsoda Date: Wed, 28 Dec 2022 18:15:59 -0500 Subject: [PATCH 19/76] difftastic: 0.39.0 -> 0.40.0 Diff: https://github.com/wilfred/difftastic/compare/0.39.0...0.40.0 Changelog: https://github.com/Wilfred/difftastic/raw/0.40.0/CHANGELOG.md --- pkgs/tools/text/difftastic/default.nix | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pkgs/tools/text/difftastic/default.nix b/pkgs/tools/text/difftastic/default.nix index 9eaa93473251..581f441202e8 100644 --- a/pkgs/tools/text/difftastic/default.nix +++ b/pkgs/tools/text/difftastic/default.nix @@ -9,24 +9,24 @@ rustPlatform.buildRustPackage rec { pname = "difftastic"; - version = "0.39.0"; + version = "0.40.0"; src = fetchFromGitHub { owner = "wilfred"; repo = pname; rev = version; - sha256 = "sha256-PyjgnO5LXV0UGNqpb2J39Ni077L5MjHc5ZkK/r8//II="; + sha256 = "sha256-zLps/R3KMx51eGdHINmvq9Cv4JTkVSont3Gktwgxsrg="; }; depsExtraArgs = { postBuild = let - mimallocPatch = (fetchpatch { + mimallocPatch = fetchpatch { name = "mimalloc-older-macos-fixes.patch"; url = "https://github.com/microsoft/mimalloc/commit/40e0507a5959ee218f308d33aec212c3ebeef3bb.patch"; stripLen = 1; extraPrefix = "libmimalloc-sys/c_src/mimalloc/"; sha256 = "1cqgay6ayzxsj8v1dy8405kwd8av34m4bjc84iyg9r52amlijbg4"; - }); + }; in '' pushd $name patch -p1 < ${mimallocPatch} @@ -40,7 +40,7 @@ rustPlatform.buildRustPackage rec { popd ''; }; - cargoSha256 = "sha256-jVs5KokgofAqhNLfr/RJ9qOHwBYMnkqc2EcAFezS9/0="; + cargoSha256 = "sha256-kVJwGEY0TvsKzTbcSgOSWIhx8MbH/KNB3Q8KvQfhCac="; passthru.tests.version = testers.testVersion { package = difftastic; }; From 713fa24837028f9d2a4ca056ccabf6871cd0c2d2 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Thu, 29 Dec 2022 15:13:19 +0100 Subject: [PATCH 20/76] python310Packages.pytest-freezer: init at 0.4.6 --- .../python-modules/pytest-freezer/default.nix | 52 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 54 insertions(+) create mode 100644 pkgs/development/python-modules/pytest-freezer/default.nix diff --git a/pkgs/development/python-modules/pytest-freezer/default.nix b/pkgs/development/python-modules/pytest-freezer/default.nix new file mode 100644 index 000000000000..16eb2420f0e7 --- /dev/null +++ b/pkgs/development/python-modules/pytest-freezer/default.nix @@ -0,0 +1,52 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, freezegun +, hatchling +, pytest +, pytestCheckHook +, pythonOlder +}: + +buildPythonPackage rec { + pname = "pytest-freezer"; + version = "0.4.6"; + format = "pyproject"; + + disabled = pythonOlder "3.6"; + + src = fetchFromGitHub { + owner = "pytest-dev"; + repo = pname; + rev = "refs/tags/${version}"; + hash = "sha256-0JZv6MavRceAV+ZOetCVxJEyttd5W3PCts6Fz2KQsh0="; + }; + + nativeBuildInputs = [ + hatchling + ]; + + buildInputs = [ + pytest + ]; + + propagatedBuildInputs = [ + freezegun + ]; + + checkInputs = [ + pytestCheckHook + ]; + + pythonImportsCheck = [ + "pytest_freezer" + ]; + + meta = with lib; { + description = "Pytest plugin providing a fixture interface for spulec/freezegun"; + homepage = "https://github.com/pytest-dev/pytest-freezer"; + changelog = "https://github.com/pytest-dev/pytest-freezer/releases/tag/${version}"; + license = licenses.mit; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index c66be90368c3..2d68168ab711 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -8878,6 +8878,8 @@ self: super: with self; { pytest-freezegun = callPackage ../development/python-modules/pytest-freezegun { }; + pytest-freezer = callPackage ../development/python-modules/pytest-freezer { }; + pytest-golden = callPackage ../development/python-modules/pytest-golden { }; pytest-helpers-namespace = callPackage ../development/python-modules/pytest-helpers-namespace { }; From 716187036bc2941122ccd0e3882e2d1e9601e57c Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 29 Dec 2022 19:05:26 +0000 Subject: [PATCH 21/76] python310Packages.nbsphinx: 0.8.10 -> 0.8.11 --- pkgs/development/python-modules/nbsphinx/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/nbsphinx/default.nix b/pkgs/development/python-modules/nbsphinx/default.nix index 060184fa2a7a..2a0f7a60e89f 100644 --- a/pkgs/development/python-modules/nbsphinx/default.nix +++ b/pkgs/development/python-modules/nbsphinx/default.nix @@ -12,12 +12,12 @@ buildPythonPackage rec { pname = "nbsphinx"; - version = "0.8.10"; + version = "0.8.11"; format = "setuptools"; src = fetchPypi { inherit pname version; - sha256 = "sha256-qNaARviquRbilAubOBm9PvndzoaKo4hF6jZmRcq7YlQ="; + sha256 = "sha256-q+GMBLM9m837PWbxGV9rDVHuykY+ywf2Bh3kl+QzFuQ="; }; propagatedBuildInputs = [ From 98107a40712f4de4edfbbb7dab7c39b165f1ab5f Mon Sep 17 00:00:00 2001 From: figsoda Date: Thu, 29 Dec 2022 14:12:57 -0500 Subject: [PATCH 22/76] ruff: 0.0.199 -> 0.0.200 Diff: https://github.com/charliermarsh/ruff/compare/v0.0.199...v0.0.200 Changelog: https://github.com/charliermarsh/ruff/releases/tag/v0.0.200 --- pkgs/development/tools/ruff/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/tools/ruff/default.nix b/pkgs/development/tools/ruff/default.nix index bdb4322e553f..e711380ef063 100644 --- a/pkgs/development/tools/ruff/default.nix +++ b/pkgs/development/tools/ruff/default.nix @@ -7,16 +7,16 @@ rustPlatform.buildRustPackage rec { pname = "ruff"; - version = "0.0.199"; + version = "0.0.200"; src = fetchFromGitHub { owner = "charliermarsh"; repo = pname; rev = "v${version}"; - sha256 = "sha256-cA3MTk7jlcPKHqW+8Xf508v9v42WmdhCU2r4eIiG5ic="; + sha256 = "sha256-+9aiMfLQ/mVR/wpx+na0u6idOo+rKalWx/hZ0uN0Kic="; }; - cargoSha256 = "sha256-cXjQWMnMSypHn0fynzJQYj+bqszuvRmIOPX4IrSuQbo="; + cargoSha256 = "sha256-Op4yJ+wa3kApXEiR7osu172UUh3yueLKte13W1yKmjw="; buildInputs = lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.CoreServices From f73879752ec34360c9fd85a0ca91e4f1ce7eae25 Mon Sep 17 00:00:00 2001 From: Morgan Jones Date: Mon, 26 Dec 2022 19:21:21 -0800 Subject: [PATCH 23/76] keystore-explorer: 5.4.4 -> 5.5.1 --- pkgs/applications/misc/keystore-explorer/default.nix | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/pkgs/applications/misc/keystore-explorer/default.nix b/pkgs/applications/misc/keystore-explorer/default.nix index 2274aa00cb44..c2162b6f0c46 100644 --- a/pkgs/applications/misc/keystore-explorer/default.nix +++ b/pkgs/applications/misc/keystore-explorer/default.nix @@ -1,13 +1,17 @@ -{ fetchzip, lib, stdenv, jdk, runtimeShell }: +{ fetchzip, lib, stdenv, jdk, runtimeShell, glib, wrapGAppsHook }: stdenv.mkDerivation rec { - version = "5.4.4"; + version = "5.5.1"; pname = "keystore-explorer"; src = fetchzip { - url = "https://github.com/kaikramer/keystore-explorer/releases/download/v${version}/kse-544.zip"; - sha256 = "01kpa8g6p6vcqq9y70w5bm8jbw4kp55pbywj2zrhgjibrhgjqi0b"; + url = "https://github.com/kaikramer/keystore-explorer/releases/download/v${version}/kse-${lib.replaceStrings ["."] [""] version}.zip"; + sha256 = "2C/LkUUuef30PkN7HL0CtcNOjR5uNo9XaCiTatv5hgA="; }; + # glib is necessary so file dialogs don't hang. + buildInputs = [ glib ]; + nativeBuildInputs = [ wrapGAppsHook ]; + installPhase = '' runHook preInstall From ecb4d43bb13695a6a51f1d8a17f2abecf5a726f3 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Thu, 29 Dec 2022 22:20:32 +0100 Subject: [PATCH 24/76] python310Packages.nbsphinx: add changelog to meta - disable on unsupported Python releases --- pkgs/development/python-modules/nbsphinx/default.nix | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/pkgs/development/python-modules/nbsphinx/default.nix b/pkgs/development/python-modules/nbsphinx/default.nix index 2a0f7a60e89f..ac562279a1e0 100644 --- a/pkgs/development/python-modules/nbsphinx/default.nix +++ b/pkgs/development/python-modules/nbsphinx/default.nix @@ -7,7 +7,7 @@ , nbformat , sphinx , traitlets -, isPy3k +, pythonOlder }: buildPythonPackage rec { @@ -15,9 +15,11 @@ buildPythonPackage rec { version = "0.8.11"; format = "setuptools"; + disabled = pythonOlder "3.7"; + src = fetchPypi { inherit pname version; - sha256 = "sha256-q+GMBLM9m837PWbxGV9rDVHuykY+ywf2Bh3kl+QzFuQ="; + hash = "sha256-q+GMBLM9m837PWbxGV9rDVHuykY+ywf2Bh3kl+QzFuQ="; }; propagatedBuildInputs = [ @@ -33,16 +35,16 @@ buildPythonPackage rec { doCheck = false; JUPYTER_PATH = "${nbconvert}/share/jupyter"; + pythonImportsCheck = [ "nbsphinx" ]; - disabled = !isPy3k; - meta = with lib; { description = "Jupyter Notebook Tools for Sphinx"; homepage = "https://nbsphinx.readthedocs.io/"; + changelog = "https://github.com/spatialaudio/nbsphinx/blob/${version}/NEWS.rst"; license = licenses.mit; - maintainers = [ maintainers.costrouc ]; + maintainers = with maintainers; [ costrouc ]; }; } From 3e9a7c117efda019d75af4235bbf3afdac034da5 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Thu, 29 Dec 2022 22:48:33 +0100 Subject: [PATCH 25/76] python310Packages.proxy-py: disable failing tests --- .../python-modules/proxy-py/default.nix | 26 +++++++++++++++---- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/pkgs/development/python-modules/proxy-py/default.nix b/pkgs/development/python-modules/proxy-py/default.nix index c3580e23b233..c454e74ab3d9 100644 --- a/pkgs/development/python-modules/proxy-py/default.nix +++ b/pkgs/development/python-modules/proxy-py/default.nix @@ -1,7 +1,10 @@ { lib , stdenv +, bash , buildPythonPackage , fetchFromGitHub +, gnumake +, httpx , openssl , paramiko , pytest-asyncio @@ -15,7 +18,7 @@ buildPythonPackage rec { pname = "proxy-py"; version = "2.4.3"; - format = "setuptools"; + format = "pyproject"; disabled = pythonOlder "3.7"; @@ -26,6 +29,15 @@ buildPythonPackage rec { hash = "sha256-dA7a9RicBFCSf6IoGX/CdvI8x/xMOFfNtyuvFn9YmHI="; }; + postPatch = '' + substituteInPlace Makefile \ + --replace "SHELL := /bin/bash" "SHELL := ${bash}/bin/bash" + substituteInPlace pytest.ini \ + --replace "-p pytest_cov" "" \ + --replace "--no-cov-on-fail" "" + sed -i "/--cov/d" pytest.ini + ''; + nativeBuildInputs = [ setuptools-scm ]; @@ -36,7 +48,9 @@ buildPythonPackage rec { ]; checkInputs = [ + httpx openssl + gnumake pytest-asyncio pytest-mock pytestCheckHook @@ -46,10 +60,12 @@ buildPythonPackage rec { export HOME=$(mktemp -d); ''; - postPatch = '' - substituteInPlace requirements.txt \ - --replace "typing-extensions==3.7.4.3" "typing-extensions" - ''; + disabledTests = [ + # Test requires network access + "test_http2_via_proxy" + # Tests run into a timeout + "integration" + ]; pythonImportsCheck = [ "proxy" From 55fec2823233da759e533d6e556d5825565fc35f Mon Sep 17 00:00:00 2001 From: kilianar Date: Thu, 29 Dec 2022 23:13:13 +0100 Subject: [PATCH 26/76] portfolio: 0.60.0 -> 0.60.1 https://github.com/buchen/portfolio/releases/tag/0.60.1 --- pkgs/applications/office/portfolio/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/office/portfolio/default.nix b/pkgs/applications/office/portfolio/default.nix index 64dc3f400ec1..ec3f4d7574b9 100644 --- a/pkgs/applications/office/portfolio/default.nix +++ b/pkgs/applications/office/portfolio/default.nix @@ -27,11 +27,11 @@ let in stdenv.mkDerivation rec { pname = "PortfolioPerformance"; - version = "0.60.0"; + version = "0.60.1"; src = fetchurl { url = "https://github.com/buchen/portfolio/releases/download/${version}/PortfolioPerformance-${version}-linux.gtk.x86_64.tar.gz"; - sha256 = "sha256-L4ZLlxHsnJrvrrrX56Z+agjnaMl472Izm4Un1uaNqZA="; + sha256 = "sha256-Lyo/T8df7tIc+h8MFh6yL+I+2W6On/C5PguNZfQAu9s="; }; nativeBuildInputs = [ From ce5644f658ade7837fc37193bf41c8e64db7d18f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Forsman?= Date: Thu, 29 Dec 2022 21:47:58 +0100 Subject: [PATCH 27/76] nixos/test-driver: use f-strings instead of .format() For readability. Suggested-by: @tfc --- nixos/lib/test-driver/test_driver/__init__.py | 6 +- nixos/lib/test-driver/test_driver/driver.py | 8 +- nixos/lib/test-driver/test_driver/logger.py | 8 +- nixos/lib/test-driver/test_driver/machine.py | 113 ++++++++---------- 4 files changed, 57 insertions(+), 78 deletions(-) diff --git a/nixos/lib/test-driver/test_driver/__init__.py b/nixos/lib/test-driver/test_driver/__init__.py index 61d91c9ed654..db7e0ed33a89 100755 --- a/nixos/lib/test-driver/test_driver/__init__.py +++ b/nixos/lib/test-driver/test_driver/__init__.py @@ -41,11 +41,9 @@ def writeable_dir(arg: str) -> Path: """ path = Path(arg) if not path.is_dir(): - raise argparse.ArgumentTypeError("{0} is not a directory".format(path)) + raise argparse.ArgumentTypeError(f"{path} is not a directory") if not os.access(path, os.W_OK): - raise argparse.ArgumentTypeError( - "{0} is not a writeable directory".format(path) - ) + raise argparse.ArgumentTypeError(f"{path} is not a writeable directory") return path diff --git a/nixos/lib/test-driver/test_driver/driver.py b/nixos/lib/test-driver/test_driver/driver.py index 6542a2e2f693..de6abbb4679e 100644 --- a/nixos/lib/test-driver/test_driver/driver.py +++ b/nixos/lib/test-driver/test_driver/driver.py @@ -19,15 +19,11 @@ def get_tmp_dir() -> Path: tmp_dir.mkdir(mode=0o700, exist_ok=True) if not tmp_dir.is_dir(): raise NotADirectoryError( - "The directory defined by TMPDIR, TEMP, TMP or CWD: {0} is not a directory".format( - tmp_dir - ) + f"The directory defined by TMPDIR, TEMP, TMP or CWD: {tmp_dir} is not a directory" ) if not os.access(tmp_dir, os.W_OK): raise PermissionError( - "The directory defined by TMPDIR, TEMP, TMP, or CWD: {0} is not writeable".format( - tmp_dir - ) + f"The directory defined by TMPDIR, TEMP, TMP, or CWD: {tmp_dir} is not writeable" ) return tmp_dir diff --git a/nixos/lib/test-driver/test_driver/logger.py b/nixos/lib/test-driver/test_driver/logger.py index 59ed29547231..e6182ff7c761 100644 --- a/nixos/lib/test-driver/test_driver/logger.py +++ b/nixos/lib/test-driver/test_driver/logger.py @@ -36,7 +36,7 @@ class Logger: def maybe_prefix(self, message: str, attributes: Dict[str, str]) -> str: if "machine" in attributes: - return "{}: {}".format(attributes["machine"], message) + return f"{attributes['machine']}: {message}" return message def log_line(self, message: str, attributes: Dict[str, str]) -> None: @@ -62,9 +62,7 @@ class Logger: def log_serial(self, message: str, machine: str) -> None: self.enqueue({"msg": message, "machine": machine, "type": "serial"}) if self._print_serial_logs: - self._eprint( - Style.DIM + "{} # {}".format(machine, message) + Style.RESET_ALL - ) + self._eprint(Style.DIM + f"{machine} # {message}" + Style.RESET_ALL) def enqueue(self, item: Dict[str, str]) -> None: self.queue.put(item) @@ -97,7 +95,7 @@ class Logger: yield self.drain_log_queue() toc = time.time() - self.log("(finished: {}, in {:.2f} seconds)".format(message, toc - tic)) + self.log(f"(finished: {message}, in {toc - tic:.2f} seconds)") self.xml.endElement("nest") diff --git a/nixos/lib/test-driver/test_driver/machine.py b/nixos/lib/test-driver/test_driver/machine.py index c59ef3b17262..cbf3aa733c44 100644 --- a/nixos/lib/test-driver/test_driver/machine.py +++ b/nixos/lib/test-driver/test_driver/machine.py @@ -420,8 +420,8 @@ class Machine: def send_monitor_command(self, command: str) -> str: self.run_callbacks() - with self.nested("sending monitor command: {}".format(command)): - message = ("{}\n".format(command)).encode() + with self.nested(f"sending monitor command: {command}"): + message = f"{command}\n".encode() assert self.monitor is not None self.monitor.send(message) return self.wait_for_monitor_prompt() @@ -438,7 +438,7 @@ class Machine: info = self.get_unit_info(unit, user) state = info["ActiveState"] if state == "failed": - raise Exception('unit "{}" reached state "{}"'.format(unit, state)) + raise Exception(f'unit "{unit}" reached state "{state}"') if state == "inactive": status, jobs = self.systemctl("list-jobs --full 2>&1", user) @@ -446,27 +446,24 @@ class Machine: info = self.get_unit_info(unit, user) if info["ActiveState"] == state: raise Exception( - ( - 'unit "{}" is inactive and there ' "are no pending jobs" - ).format(unit) + f'unit "{unit}" is inactive and there are no pending jobs' ) return state == "active" with self.nested( - "waiting for unit {}{}".format( - unit, f" with user {user}" if user is not None else "" - ) + f"waiting for unit {unit}" + + (f" with user {user}" if user is not None else "") ): retry(check_active, timeout) def get_unit_info(self, unit: str, user: Optional[str] = None) -> Dict[str, str]: - status, lines = self.systemctl('--no-pager show "{}"'.format(unit), user) + status, lines = self.systemctl(f'--no-pager show "{unit}"', user) if status != 0: raise Exception( - 'retrieving systemctl info for unit "{}" {} failed with exit code {}'.format( - unit, "" if user is None else 'under user "{}"'.format(user), status - ) + f'retrieving systemctl info for unit "{unit}"' + + ("" if user is None else f' under user "{user}"') + + f" failed with exit code {status}" ) line_pattern = re.compile(r"^([^=]+)=(.*)$") @@ -486,24 +483,22 @@ class Machine: if user is not None: q = q.replace("'", "\\'") return self.execute( - ( - "su -l {} --shell /bin/sh -c " - "$'XDG_RUNTIME_DIR=/run/user/`id -u` " - "systemctl --user {}'" - ).format(user, q) + f"su -l {user} --shell /bin/sh -c " + "$'XDG_RUNTIME_DIR=/run/user/`id -u` " + f"systemctl --user {q}'" ) - return self.execute("systemctl {}".format(q)) + return self.execute(f"systemctl {q}") def require_unit_state(self, unit: str, require_state: str = "active") -> None: with self.nested( - "checking if unit ‘{}’ has reached state '{}'".format(unit, require_state) + f"checking if unit ‘{unit}’ has reached state '{require_state}'" ): info = self.get_unit_info(unit) state = info["ActiveState"] if state != require_state: raise Exception( - "Expected unit ‘{}’ to to be in state ".format(unit) - + "'{}' but it is in state ‘{}’".format(require_state, state) + f"Expected unit ‘{unit}’ to to be in state " + f"'{require_state}' but it is in state ‘{state}’" ) def _next_newline_closed_block_from_shell(self) -> str: @@ -593,13 +588,11 @@ class Machine: """Execute each command and check that it succeeds.""" output = "" for command in commands: - with self.nested("must succeed: {}".format(command)): + with self.nested(f"must succeed: {command}"): (status, out) = self.execute(command, timeout=timeout) if status != 0: - self.log("output: {}".format(out)) - raise Exception( - "command `{}` failed (exit code {})".format(command, status) - ) + self.log(f"output: {out}") + raise Exception(f"command `{command}` failed (exit code {status})") output += out return output @@ -607,12 +600,10 @@ class Machine: """Execute each command and check that it fails.""" output = "" for command in commands: - with self.nested("must fail: {}".format(command)): + with self.nested(f"must fail: {command}"): (status, out) = self.execute(command, timeout=timeout) if status == 0: - raise Exception( - "command `{}` unexpectedly succeeded".format(command) - ) + raise Exception(f"command `{command}` unexpectedly succeeded") output += out return output @@ -627,7 +618,7 @@ class Machine: status, output = self.execute(command, timeout=timeout) return status == 0 - with self.nested("waiting for success: {}".format(command)): + with self.nested(f"waiting for success: {command}"): retry(check_success, timeout) return output @@ -642,7 +633,7 @@ class Machine: status, output = self.execute(command, timeout=timeout) return status != 0 - with self.nested("waiting for failure: {}".format(command)): + with self.nested(f"waiting for failure: {command}"): retry(check_failure) return output @@ -661,8 +652,8 @@ class Machine: def get_tty_text(self, tty: str) -> str: status, output = self.execute( - "fold -w$(stty -F /dev/tty{0} size | " - "awk '{{print $2}}') /dev/vcs{0}".format(tty) + f"fold -w$(stty -F /dev/tty{tty} size | " + f"awk '{{print $2}}') /dev/vcs{tty}" ) return output @@ -681,11 +672,11 @@ class Machine: ) return len(matcher.findall(text)) > 0 - with self.nested("waiting for {} to appear on tty {}".format(regexp, tty)): + with self.nested(f"waiting for {regexp} to appear on tty {tty}"): retry(tty_matches) def send_chars(self, chars: str, delay: Optional[float] = 0.01) -> None: - with self.nested("sending keys ‘{}‘".format(chars)): + with self.nested(f"sending keys ‘{chars}‘"): for char in chars: self.send_key(char, delay) @@ -693,35 +684,33 @@ class Machine: """Waits until the file exists in machine's file system.""" def check_file(_: Any) -> bool: - status, _ = self.execute("test -e {}".format(filename)) + status, _ = self.execute(f"test -e {filename}") return status == 0 - with self.nested("waiting for file ‘{}‘".format(filename)): + with self.nested(f"waiting for file ‘{filename}‘"): retry(check_file) def wait_for_open_port(self, port: int, addr: str = "localhost") -> None: def port_is_open(_: Any) -> bool: - status, _ = self.execute("nc -z {} {}".format(addr, port)) + status, _ = self.execute(f"nc -z {addr} {port}") return status == 0 - with self.nested("waiting for TCP port {} on {}".format(port, addr)): + with self.nested(f"waiting for TCP port {port} on {addr}"): retry(port_is_open) def wait_for_closed_port(self, port: int, addr: str = "localhost") -> None: def port_is_closed(_: Any) -> bool: - status, _ = self.execute("nc -z {} {}".format(addr, port)) + status, _ = self.execute(f"nc -z {addr} {port}") return status != 0 - with self.nested( - "waiting for TCP port {} on {} to be closed".format(port, addr) - ): + with self.nested(f"waiting for TCP port {port} on {addr} to be closed"): retry(port_is_closed) def start_job(self, jobname: str, user: Optional[str] = None) -> Tuple[int, str]: - return self.systemctl("start {}".format(jobname), user) + return self.systemctl(f"start {jobname}", user) def stop_job(self, jobname: str, user: Optional[str] = None) -> Tuple[int, str]: - return self.systemctl("stop {}".format(jobname), user) + return self.systemctl(f"stop {jobname}", user) def wait_for_job(self, jobname: str) -> None: self.wait_for_unit(jobname) @@ -741,21 +730,21 @@ class Machine: toc = time.time() self.log("connected to guest root shell") - self.log("(connecting took {:.2f} seconds)".format(toc - tic)) + self.log(f"(connecting took {toc - tic:.2f} seconds)") self.connected = True def screenshot(self, filename: str) -> None: word_pattern = re.compile(r"^\w+$") if word_pattern.match(filename): - filename = os.path.join(self.out_dir, "{}.png".format(filename)) - tmp = "{}.ppm".format(filename) + filename = os.path.join(self.out_dir, f"{filename}.png") + tmp = f"{filename}.ppm" with self.nested( - "making screenshot {}".format(filename), + f"making screenshot {filename}", {"image": os.path.basename(filename)}, ): - self.send_monitor_command("screendump {}".format(tmp)) - ret = subprocess.run("pnmtopng {} > {}".format(tmp, filename), shell=True) + self.send_monitor_command(f"screendump {tmp}") + ret = subprocess.run(f"pnmtopng {tmp} > {filename}", shell=True) os.unlink(tmp) if ret.returncode != 0: raise Exception("Cannot convert screenshot") @@ -817,7 +806,7 @@ class Machine: def dump_tty_contents(self, tty: str) -> None: """Debugging: Dump the contents of the TTY""" - self.execute("fold -w 80 /dev/vcs{} | systemd-cat".format(tty)) + self.execute(f"fold -w 80 /dev/vcs{tty} | systemd-cat") def _get_screen_text_variants(self, model_ids: Iterable[int]) -> List[str]: with tempfile.TemporaryDirectory() as tmpdir: @@ -839,15 +828,15 @@ class Machine: return True if last: - self.log("Last OCR attempt failed. Text was: {}".format(variants)) + self.log(f"Last OCR attempt failed. Text was: {variants}") return False - with self.nested("waiting for {} to appear on screen".format(regex)): + with self.nested(f"waiting for {regex} to appear on screen"): retry(screen_matches) def wait_for_console_text(self, regex: str) -> None: - with self.nested("waiting for {} to appear on console".format(regex)): + with self.nested(f"waiting for {regex} to appear on console"): # Buffer the console output, this is needed # to match multiline regexes. console = io.StringIO() @@ -864,7 +853,7 @@ class Machine: def send_key(self, key: str, delay: Optional[float] = 0.01) -> None: key = CHAR_TO_KEY.get(key, key) - self.send_monitor_command("sendkey {}".format(key)) + self.send_monitor_command(f"sendkey {key}") if delay is not None: time.sleep(delay) @@ -923,7 +912,7 @@ class Machine: self.pid = self.process.pid self.booted = True - self.log("QEMU running (pid {})".format(self.pid)) + self.log(f"QEMU running (pid {self.pid})") def cleanup_statedir(self) -> None: shutil.rmtree(self.state_dir) @@ -977,7 +966,7 @@ class Machine: names = self.get_window_names() if last_try: self.log( - "Last chance to match {} on the window list,".format(regexp) + f"Last chance to match {regexp} on the window list," + " which currently contains: " + ", ".join(names) ) @@ -994,9 +983,7 @@ class Machine: """Forward a TCP port on the host to a TCP port on the guest. Useful during interactive testing. """ - self.send_monitor_command( - "hostfwd_add tcp::{}-:{}".format(host_port, guest_port) - ) + self.send_monitor_command(f"hostfwd_add tcp::{host_port}-:{guest_port}") def block(self) -> None: """Make the machine unreachable by shutting down eth1 (the multicast From dd9fa84766e745d8a12423d258a6631eafa331c1 Mon Sep 17 00:00:00 2001 From: Colin Arnott Date: Mon, 26 Dec 2022 01:40:17 +0000 Subject: [PATCH 28/76] allmark: fix homepage The website listed on github.com currently returns a 401, so probably best to just use the repo as the landing page. --- pkgs/servers/allmark/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/servers/allmark/default.nix b/pkgs/servers/allmark/default.nix index 439e064b2aff..1e5b58dc6b19 100644 --- a/pkgs/servers/allmark/default.nix +++ b/pkgs/servers/allmark/default.nix @@ -19,7 +19,7 @@ buildGoPackage rec { meta = with lib; { description = "A cross-platform markdown web server"; - homepage = "https://allmark.io"; + homepage = "https://github.com/andreaskoch/allmark"; changelog = "https://github.com/andreaskoch/allmark/-/releases/v${version}"; license = licenses.bsd3; maintainers = with maintainers; [ urandom ]; From 6bb56de70a5f2be8ad4b8240505561786778ce71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Fri, 30 Dec 2022 03:15:57 +0100 Subject: [PATCH 29/76] wslu: 4.0.0 -> 4.1.0 --- pkgs/tools/system/wslu/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/tools/system/wslu/default.nix b/pkgs/tools/system/wslu/default.nix index 4939c6f77ae6..a1911c8e9c09 100644 --- a/pkgs/tools/system/wslu/default.nix +++ b/pkgs/tools/system/wslu/default.nix @@ -2,16 +2,16 @@ stdenv.mkDerivation rec { pname = "wslu"; - version = "4.0.0"; + version = "4.1.0"; src = fetchFromGitHub { owner = "wslutilities"; repo = pname; rev = "v${version}"; - hash = "sha256-bW/otr1kqmH2N5sD3R9kYCZyn+BbBZ2fCVGlP1pFnK8="; + hash = "sha256-DlWI+rHj1vSJzJ8VJnUfoPH6t4LQhqxJgRKqz41fVmY="; }; - makeFlags = [ "PREFIX=$(out)" ]; + makeFlags = [ "DESTDIR=$(out)" ]; meta = with lib; { description = "A collection of utilities for Windows 10 Linux Subsystems"; From f84308fd338396e6f1d2a2d7b08e8828b7aca709 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 30 Dec 2022 02:29:00 +0000 Subject: [PATCH 30/76] nats-server: 2.9.9 -> 2.9.10 --- pkgs/servers/nats-server/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/servers/nats-server/default.nix b/pkgs/servers/nats-server/default.nix index 056e4a728470..08e77aaf1527 100644 --- a/pkgs/servers/nats-server/default.nix +++ b/pkgs/servers/nats-server/default.nix @@ -6,13 +6,13 @@ buildGoModule rec { pname = "nats-server"; - version = "2.9.9"; + version = "2.9.10"; src = fetchFromGitHub { owner = "nats-io"; repo = pname; rev = "v${version}"; - hash = "sha256-GIekoIhXhsWl0od/tkUO8h+9WPICds4iPVARTn4P0tE="; + hash = "sha256-r/hz80XFEOQN7bzQQTIMAeZI8H09WyiUqQl3glJz+RM="; }; vendorHash = "sha256-ASLy0rPuCSYGyy5Pw9fj559nxO4vPPagDKAe8wM29lo="; From 5ce341ff6d54786d86d17da67e4b277a51c8ef8d Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Fri, 30 Dec 2022 10:35:13 +0800 Subject: [PATCH 31/76] cinnamon.muffin: Backport a crash fix Also re-order the attributes. --- pkgs/desktops/cinnamon/muffin/default.nix | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/pkgs/desktops/cinnamon/muffin/default.nix b/pkgs/desktops/cinnamon/muffin/default.nix index 83e4f5b858bd..7b9957f2392c 100644 --- a/pkgs/desktops/cinnamon/muffin/default.nix +++ b/pkgs/desktops/cinnamon/muffin/default.nix @@ -1,6 +1,7 @@ { stdenv , lib , fetchFromGitHub +, fetchpatch , substituteAll , cairo , cinnamon-desktop @@ -39,13 +40,6 @@ stdenv.mkDerivation rec { outputs = [ "out" "dev" "man" ]; - patches = [ - (substituteAll { - src = ./fix-paths.patch; - zenity = gnome.zenity; - }) - ]; - src = fetchFromGitHub { owner = "linuxmint"; repo = pname; @@ -53,6 +47,20 @@ stdenv.mkDerivation rec { hash = "sha256-bHEBzl0aBXsHOhSWJUz428pG5M6L0s/Q6acKO+2oMXo="; }; + patches = [ + (substituteAll { + src = ./fix-paths.patch; + zenity = gnome.zenity; + }) + + # compositor: Fix crash when restarting Cinnamon + # https://github.com/linuxmint/muffin/pull/655 + (fetchpatch { + url = "https://github.com/linuxmint/muffin/commit/1a941ec603a1565dbd2f943f7da6e877d1541bcb.patch"; + sha256 = "sha256-6x64rWQ20ZjM9z79Pg6QMDPeFN5VNdDHBueRvy2kA6c="; + }) + ]; + nativeBuildInputs = [ desktop-file-utils mesa # needed for gbm From dae55bc2bd7af15c1287ea1f57b99448b86c0a77 Mon Sep 17 00:00:00 2001 From: AndersonTorres Date: Fri, 30 Dec 2022 00:08:26 -0300 Subject: [PATCH 32/76] castxml: remove `inherit (.*)` reference on all-packages.nix According to the issue linked at the end, filling arguments for `callPackage` in all-packages.nix breaks splicing and makes the expressions incompatible with cross-compilation. This issue is more pronounced in the many `inherit (darwin)` calls. However, it is present in similar contexts too. The idea here is not the smartest: it just hides those inheritances from `all-packages.nix` and sends them to the `default.nix` expressions. Issue: https://github.com/NixOS/nixpkgs/issues/204303 --- pkgs/development/tools/castxml/default.nix | 27 ++++++++++++---------- pkgs/top-level/all-packages.nix | 5 +--- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/pkgs/development/tools/castxml/default.nix b/pkgs/development/tools/castxml/default.nix index d26ef76bb8cb..69e48a28a2e3 100644 --- a/pkgs/development/tools/castxml/default.nix +++ b/pkgs/development/tools/castxml/default.nix @@ -1,17 +1,20 @@ -{ lib -, stdenv -, fetchFromGitHub -, cmake -, libclang -, libffi -, libxml2 -, llvm -, sphinx -, zlib -, withManual ? true -, withHTML ? true +{ lib, + stdenv, + fetchFromGitHub, + cmake, + libffi, + libxml2, + zlib, + withManual ? true, + withHTML ? true, + llvmPackages, + python3, }: +let + inherit (llvmPackages) libclang llvm; + inherit (python3.pkgs) sphinx; +in stdenv.mkDerivation (finalAttrs: { pname = "castxml"; version = "0.5.1"; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 4ed086889bef..fd3c53596714 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -357,10 +357,7 @@ with pkgs; castget = callPackage ../applications/networking/feedreaders/castget { }; - castxml = callPackage ../development/tools/castxml { - inherit (llvmPackages) libclang llvm; - inherit (python3.pkgs) sphinx; - }; + castxml = callPackage ../development/tools/castxml { }; catatonit = callPackage ../applications/virtualization/catatonit { }; From 0462f1847dd34b9113747ff00531f62414bfa157 Mon Sep 17 00:00:00 2001 From: figsoda Date: Thu, 29 Dec 2022 23:37:32 -0500 Subject: [PATCH 33/76] ruff: 0.0.200 -> 0.0.201 Diff: https://github.com/charliermarsh/ruff/compare/v0.0.200...v0.0.201 Changelog: https://github.com/charliermarsh/ruff/releases/tag/v0.0.201 --- pkgs/development/tools/ruff/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/tools/ruff/default.nix b/pkgs/development/tools/ruff/default.nix index e711380ef063..bf7ea832eabc 100644 --- a/pkgs/development/tools/ruff/default.nix +++ b/pkgs/development/tools/ruff/default.nix @@ -7,16 +7,16 @@ rustPlatform.buildRustPackage rec { pname = "ruff"; - version = "0.0.200"; + version = "0.0.201"; src = fetchFromGitHub { owner = "charliermarsh"; repo = pname; rev = "v${version}"; - sha256 = "sha256-+9aiMfLQ/mVR/wpx+na0u6idOo+rKalWx/hZ0uN0Kic="; + sha256 = "sha256-+Jt7uvwzA1AtSaQOqsZBm9k0OBSvOaAoNBpsiZ/G+wI="; }; - cargoSha256 = "sha256-Op4yJ+wa3kApXEiR7osu172UUh3yueLKte13W1yKmjw="; + cargoSha256 = "sha256-8wxS1ViA5F+y8gkKfSENYga/YSZ7QE8cl2lQlVL382Y="; buildInputs = lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.CoreServices From e82448e2384ccfc673ef117142e4ec29869cf8c4 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 30 Dec 2022 03:07:20 +0000 Subject: [PATCH 34/76] =?UTF-8?q?terraform-providers.baiducloud:=201.18.4?= =?UTF-8?q?=20=E2=86=92=201.19.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../networking/cluster/terraform-providers/providers.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/networking/cluster/terraform-providers/providers.json b/pkgs/applications/networking/cluster/terraform-providers/providers.json index c7665ecdca6a..b91c63c9699b 100644 --- a/pkgs/applications/networking/cluster/terraform-providers/providers.json +++ b/pkgs/applications/networking/cluster/terraform-providers/providers.json @@ -149,13 +149,13 @@ }, "baiducloud": { "deleteVendor": true, - "hash": "sha256-4v9FuM69U+4V2Iy85vc4RP9KgzeME/R8rXxNSMBABdM=", + "hash": "sha256-13vbO5EJsdVvR456uBCDbFBWlOaAZb9XhNJ7fE8fjto=", "homepage": "https://registry.terraform.io/providers/baidubce/baiducloud", "owner": "baidubce", "repo": "terraform-provider-baiducloud", - "rev": "v1.18.4", + "rev": "v1.19.0", "spdx": "MPL-2.0", - "vendorHash": "sha256-ya2FpsLQMIu8zWYObpyPgBHVkHoNKzHgdMxukbtsje4=" + "vendorHash": "sha256-3PLBs8LSE5JPtrhmdx+jQsnCrfZQQEUGA7wnf9M72yY=" }, "bigip": { "hash": "sha256-VntKiBTQxe8lKV8Bb3A0moA/EUzyQQ7CInPjKJL4iBQ=", From 221f18edf8a5278dbfac2f74cdb189db5a7bbdb9 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 30 Dec 2022 03:07:38 +0000 Subject: [PATCH 35/76] =?UTF-8?q?terraform-providers.gandi:=202.2.1=20?= =?UTF-8?q?=E2=86=92=202.2.2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../networking/cluster/terraform-providers/providers.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/networking/cluster/terraform-providers/providers.json b/pkgs/applications/networking/cluster/terraform-providers/providers.json index b91c63c9699b..22fb6800ec8e 100644 --- a/pkgs/applications/networking/cluster/terraform-providers/providers.json +++ b/pkgs/applications/networking/cluster/terraform-providers/providers.json @@ -415,13 +415,13 @@ "vendorHash": "sha256-ZgVA2+2tu17dnAc51Aw3k6v8k7QosNTmFjFhmeknxa8=" }, "gandi": { - "hash": "sha256-dF3YCX3ghjg/OGLQT3Vzs/VLRoiuDXrTo5xP1Y8Jhgw=", + "hash": "sha256-mQ4L2XCudyPGDw21jihF7nkSct7/KWAe/txnbtuJ8Lk=", "homepage": "https://registry.terraform.io/providers/go-gandi/gandi", "owner": "go-gandi", "repo": "terraform-provider-gandi", - "rev": "v2.2.1", + "rev": "v2.2.2", "spdx": "MPL-2.0", - "vendorHash": "sha256-cStVmI58V46I3MYYYrbCY3llnOx2pyuM2Ku+rhe5DVQ=" + "vendorHash": "sha256-uWTY8cFztXFrQQ7GW6/R+x9M6vHmsb934ldq+oeW5vk=" }, "github": { "hash": "sha256-o7Sge0rCfP6Yueq+DP7siBsEinawgGe+nEu0/Olu8uQ=", From e363dcd8092de606201c285f3ced18e79a527e74 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 30 Dec 2022 03:12:15 +0000 Subject: [PATCH 36/76] =?UTF-8?q?terraform-providers.tencentcloud:=201.79.?= =?UTF-8?q?2=20=E2=86=92=201.79.3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../networking/cluster/terraform-providers/providers.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/networking/cluster/terraform-providers/providers.json b/pkgs/applications/networking/cluster/terraform-providers/providers.json index 22fb6800ec8e..5abc909ef232 100644 --- a/pkgs/applications/networking/cluster/terraform-providers/providers.json +++ b/pkgs/applications/networking/cluster/terraform-providers/providers.json @@ -1095,11 +1095,11 @@ "vendorHash": "sha256-2wPmLpjhG6QgG+BUCO0oIzHjBOWIOYuptgdtSIm9TZw=" }, "tencentcloud": { - "hash": "sha256-mN52iD0HdsfzPxo9hLFlKxiwIm7641cnjUYk8XyRP0s=", + "hash": "sha256-vXd0yZ57bEdZ0OcIANMWdDN8PzOKnXJKw7HgjcOhSeE=", "homepage": "https://registry.terraform.io/providers/tencentcloudstack/tencentcloud", "owner": "tencentcloudstack", "repo": "terraform-provider-tencentcloud", - "rev": "v1.79.2", + "rev": "v1.79.3", "spdx": "MPL-2.0", "vendorHash": null }, From 899dbfd561e3111d217896e63cf43b1a6563e02f Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 30 Dec 2022 08:07:00 +0000 Subject: [PATCH 37/76] python310Packages.azure-mgmt-containerservice: 21.0.0 -> 21.1.0 --- .../python-modules/azure-mgmt-containerservice/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/azure-mgmt-containerservice/default.nix b/pkgs/development/python-modules/azure-mgmt-containerservice/default.nix index 77db6ebc714f..114eaf3c9c49 100644 --- a/pkgs/development/python-modules/azure-mgmt-containerservice/default.nix +++ b/pkgs/development/python-modules/azure-mgmt-containerservice/default.nix @@ -11,7 +11,7 @@ buildPythonPackage rec { pname = "azure-mgmt-containerservice"; - version = "21.0.0"; + version = "21.1.0"; format = "setuptools"; disabled = pythonOlder "3.7"; @@ -19,7 +19,7 @@ buildPythonPackage rec { src = fetchPypi { inherit pname version; extension = "zip"; - hash = "sha256-9Jhhd/qmphNnmWphXtFr6V52WA7KtKA8lI6cKsdGsOE="; + hash = "sha256-5EOythXO7spLzzlqDWrwcdkkJAMH9W8OBv96rYaWxAY="; }; propagatedBuildInputs = [ From e74582c9ffeabe2284a95938463c40286ff2cc2c Mon Sep 17 00:00:00 2001 From: Austin Seipp Date: Fri, 30 Dec 2022 02:36:17 -0600 Subject: [PATCH 38/76] fzf: minor code tweaks (#208323) Suggested by zowoq in #207078. Signed-off-by: Austin Seipp --- pkgs/tools/misc/fzf/default.nix | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/pkgs/tools/misc/fzf/default.nix b/pkgs/tools/misc/fzf/default.nix index bf1884d311ee..16d9aab423aa 100644 --- a/pkgs/tools/misc/fzf/default.nix +++ b/pkgs/tools/misc/fzf/default.nix @@ -1,9 +1,9 @@ { stdenv , lib -, pkgs , buildGoModule , fetchFromGitHub , writeText +, writeShellScriptBin , runtimeShell , installShellFiles , ncurses @@ -16,8 +16,7 @@ let # so that using the shell completion (ctrl+r, etc) doesn't result in ugly # warnings on non-nixos machines ourPerl = if stdenv.isDarwin then perl else ( - pkgs.writers.writeBashBin "perl" '' - #!${pkgs.runtimeShell} + writeShellScriptBin "perl" '' export LOCALE_ARCHIVE="${glibcLocales}/lib/locale/locale-archive" exec ${perl}/bin/perl "$@" ''); From 58faa444c8f4ac0e55ccc7a57020977c85354d5b Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 30 Dec 2022 01:22:38 +0000 Subject: [PATCH 39/76] uncrustify: 0.75.1 -> 0.76.0 --- pkgs/development/tools/misc/uncrustify/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/tools/misc/uncrustify/default.nix b/pkgs/development/tools/misc/uncrustify/default.nix index 422fe28787fe..32b7ffe784b2 100644 --- a/pkgs/development/tools/misc/uncrustify/default.nix +++ b/pkgs/development/tools/misc/uncrustify/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "uncrustify"; - version = "0.75.1"; + version = "0.76.0"; src = fetchFromGitHub { owner = "uncrustify"; repo = "uncrustify"; rev = "uncrustify-${version}"; - sha256 = "sha256-wLzj/KcqXlcTsOJo7T166jLcWi1KNLmgblIqqkj7/9c="; + sha256 = "sha256-th3lp4WqqruHx2/ym3I041y2wLbYM1b+V6yXNOWuUvM="; }; nativeBuildInputs = [ cmake python3 ]; From 0f475e3c0454be63d019f10ca0a7c39bea24eb1a Mon Sep 17 00:00:00 2001 From: Nick Cao Date: Thu, 29 Dec 2022 16:09:39 +0800 Subject: [PATCH 40/76] mpir: fix cross compilation --- pkgs/development/libraries/mpir/default.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pkgs/development/libraries/mpir/default.nix b/pkgs/development/libraries/mpir/default.nix index b7d31066de1a..8ccad867ea89 100644 --- a/pkgs/development/libraries/mpir/default.nix +++ b/pkgs/development/libraries/mpir/default.nix @@ -1,9 +1,11 @@ -{ lib, stdenv, fetchurl, m4, which, yasm }: +{ lib, stdenv, fetchurl, m4, which, yasm, buildPackages }: stdenv.mkDerivation rec { pname = "mpir"; version = "3.0.0"; + depsBuildBuild = [ buildPackages.stdenv.cc ]; + nativeBuildInputs = [ m4 which yasm ]; src = fetchurl { From b490729bb707e1cb75a684b8374f04e531919e07 Mon Sep 17 00:00:00 2001 From: Nick Cao Date: Thu, 29 Dec 2022 16:11:38 +0800 Subject: [PATCH 41/76] gf2x: fix cross compilation --- pkgs/development/libraries/gf2x/default.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/development/libraries/gf2x/default.nix b/pkgs/development/libraries/gf2x/default.nix index c37dcf4242d2..5060f1b65c69 100644 --- a/pkgs/development/libraries/gf2x/default.nix +++ b/pkgs/development/libraries/gf2x/default.nix @@ -2,6 +2,7 @@ , lib , fetchgit , autoreconfHook +, buildPackages , optimize ? false # impure hardware optimizations }: stdenv.mkDerivation rec { @@ -16,6 +17,8 @@ stdenv.mkDerivation rec { sha256 = "04g5jg0i4vz46b4w2dvbmahwzi3k6b8g515mfw7im1inc78s14id"; }; + depsBuildBuild = [ buildPackages.stdenv.cc ]; + nativeBuildInputs = [ autoreconfHook ]; From 21e5373d9efeb1a4ea4ae1b6a7e87d50da530a63 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 29 Dec 2022 19:35:02 +0000 Subject: [PATCH 42/76] logseq: 0.8.12 -> 0.8.15 --- pkgs/applications/misc/logseq/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/misc/logseq/default.nix b/pkgs/applications/misc/logseq/default.nix index 54e3e98d48b8..3d07e7ab40c9 100644 --- a/pkgs/applications/misc/logseq/default.nix +++ b/pkgs/applications/misc/logseq/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "logseq"; - version = "0.8.12"; + version = "0.8.15"; src = fetchurl { url = "https://github.com/logseq/logseq/releases/download/${version}/logseq-linux-x64-${version}.AppImage"; - sha256 = "sha256-I1jGPNGlZ53N3ZlN9nN/GSgQIfdoUeclyuMl+PpNVY4="; + sha256 = "sha256-lE/bO/zpqChvdf8vfNqbC5iIpXAZDb36/N7Tpsj7PWY="; name = "${pname}-${version}.AppImage"; }; From f2ad82a06893c360fbbe016259a97853979be094 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Thu, 29 Dec 2022 21:45:51 +0100 Subject: [PATCH 43/76] logseq: add changelog to meta --- pkgs/applications/misc/logseq/default.nix | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/pkgs/applications/misc/logseq/default.nix b/pkgs/applications/misc/logseq/default.nix index 3d07e7ab40c9..505dd6002680 100644 --- a/pkgs/applications/misc/logseq/default.nix +++ b/pkgs/applications/misc/logseq/default.nix @@ -1,4 +1,11 @@ -{ lib, stdenv, fetchurl, appimageTools, makeWrapper, electron, git }: +{ lib +, stdenv +, fetchurl +, appimageTools +, makeWrapper +, electron +, git +}: stdenv.mkDerivation rec { pname = "logseq"; @@ -52,6 +59,7 @@ stdenv.mkDerivation rec { meta = with lib; { description = "A local-first, non-linear, outliner notebook for organizing and sharing your personal knowledge base"; homepage = "https://github.com/logseq/logseq"; + changelog = "https://github.com/logseq/logseq/releases/tag/${version}"; license = licenses.agpl3Plus; maintainers = with maintainers; [ weihua ]; platforms = [ "x86_64-linux" ]; From dd6e0ab1cff3e5e7f441c6699b42014b7865f09b Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 29 Dec 2022 11:28:59 +0000 Subject: [PATCH 44/76] seabios: 1.16.0 -> 1.16.1 --- pkgs/applications/virtualization/seabios/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/virtualization/seabios/default.nix b/pkgs/applications/virtualization/seabios/default.nix index c870abc30282..502a04c260fc 100644 --- a/pkgs/applications/virtualization/seabios/default.nix +++ b/pkgs/applications/virtualization/seabios/default.nix @@ -3,12 +3,12 @@ stdenv.mkDerivation rec { pname = "seabios"; - version = "1.16.0"; + version = "1.16.1"; src = fetchgit { url = "https://git.seabios.org/seabios.git"; rev = "rel-${version}"; - sha256 = "0acal1rr7sya86wlhw2mgimabwhjnr0y1pl5zxwb79j8k1w1r8sh"; + sha256 = "sha256-oIl2ZbhgSiVJPMBGbVt6N074vOifAoZL6VdKcBwM8D4="; }; nativeBuildInputs = [ python3 ]; From ebe0608ada392a4c7fa2762b0995e80891350eb7 Mon Sep 17 00:00:00 2001 From: alyaeanyx Date: Thu, 29 Dec 2022 09:43:16 +0100 Subject: [PATCH 45/76] nixos/openconnect: fix null cases for user and passwordFile options --- nixos/modules/services/networking/openconnect.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/nixos/modules/services/networking/openconnect.nix b/nixos/modules/services/networking/openconnect.nix index 469f0a3bc3bb..4676b1733af6 100644 --- a/nixos/modules/services/networking/openconnect.nix +++ b/nixos/modules/services/networking/openconnect.nix @@ -32,6 +32,7 @@ let description = lib.mdDoc "Username to authenticate with."; example = "example-user"; type = types.nullOr types.str; + default = null; }; # Note: It does not make sense to provide a way to declaratively @@ -108,7 +109,7 @@ let ExecStart = "${openconnect}/bin/openconnect --config=${ generateConfig name icfg } ${icfg.gateway}"; - StandardInput = "file:${icfg.passwordFile}"; + StandardInput = lib.mkIf (icfg.passwordFile != null) "file:${icfg.passwordFile}"; ProtectHome = true; }; From d969909f3f1a8af3c85d0daa8704199ad789617e Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Fri, 30 Dec 2022 10:23:52 +0100 Subject: [PATCH 46/76] python310Packages.azure-mgmt-containerservice: add changelog to meta --- .../python-modules/azure-mgmt-containerservice/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/development/python-modules/azure-mgmt-containerservice/default.nix b/pkgs/development/python-modules/azure-mgmt-containerservice/default.nix index 114eaf3c9c49..726984df9803 100644 --- a/pkgs/development/python-modules/azure-mgmt-containerservice/default.nix +++ b/pkgs/development/python-modules/azure-mgmt-containerservice/default.nix @@ -39,6 +39,7 @@ buildPythonPackage rec { meta = with lib; { description = "This is the Microsoft Azure Container Service Management Client Library"; homepage = "https://github.com/Azure/azure-sdk-for-python"; + changelog = "https://github.com/Azure/azure-sdk-for-python/blob/azure-mgmt-containerservice_${version}/sdk/containerservice/azure-mgmt-containerservice/CHANGELOG.md"; license = licenses.mit; maintainers = with maintainers; [ maxwilson ]; }; From 60facffaa9e20d6f5355fb6e12471cb748289bad Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Tue, 27 Dec 2022 19:45:50 +0000 Subject: [PATCH 47/76] mtdutils: 2.1.4 -> 2.1.5 --- pkgs/tools/filesystems/mtdutils/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/filesystems/mtdutils/default.nix b/pkgs/tools/filesystems/mtdutils/default.nix index 1a6ca5f87000..86ca59c8fce9 100644 --- a/pkgs/tools/filesystems/mtdutils/default.nix +++ b/pkgs/tools/filesystems/mtdutils/default.nix @@ -2,12 +2,12 @@ stdenv.mkDerivation rec { pname = "mtd-utils"; - version = "2.1.4"; + version = "2.1.5"; src = fetchgit { url = "git://git.infradead.org/mtd-utils.git"; rev = "v${version}"; - sha256 = "sha256-lnvG2aJiihOyScmWZu0i8OYowmIMRBkgC3j67sdLkT4="; + sha256 = "sha256-Ph9Xjb2Nyo7l3T1pDgW2gnSJxn0pOC6uvCGUfCh0MXU="; }; nativeBuildInputs = [ autoreconfHook pkg-config ] ++ lib.optional doCheck cmocka; From f92ee1a512241509786b2467093d3d3216278b6d Mon Sep 17 00:00:00 2001 From: Weijia Wang <9713184+wegank@users.noreply.github.com> Date: Tue, 27 Dec 2022 10:35:11 +0100 Subject: [PATCH 48/76] john: unbreak on aarch64-darwin --- pkgs/tools/security/john/default.nix | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/security/john/default.nix b/pkgs/tools/security/john/default.nix index 6b0d6470ff79..8409bd8d2bc3 100644 --- a/pkgs/tools/security/john/default.nix +++ b/pkgs/tools/security/john/default.nix @@ -21,6 +21,12 @@ stdenv.mkDerivation rec { url = "https://github.com/openwall/john/commit/154ee1156d62dd207aff0052b04c61796a1fde3b.patch"; sha256 = "sha256-3rfS2tu/TF+KW2MQiR+bh4w/FVECciTooDQNTHNw31A="; }) + (fetchpatch { + name = "improve-apple-clang-pseudo-intrinsics-portability.patch"; + url = "https://github.com/openwall/john/commit/c9825e688d1fb9fdd8942ceb0a6b4457b0f9f9b4.patch"; + excludes = [ "doc/*" ]; + sha256 = "sha256-hgoiz7IgR4f66fMP7bV1F8knJttY8g2Hxyk3QfkTu+g="; + }) ]; postPatch = '' @@ -83,7 +89,5 @@ stdenv.mkDerivation rec { homepage = "https://github.com/openwall/john/"; maintainers = with maintainers; [ offline matthewbauer ]; platforms = platforms.unix; - # never built on aarch64-darwin since first introduction in nixpkgs - broken = stdenv.isDarwin && stdenv.isAarch64; }; } From fdae2bf6df1544be8bab2b336928407f225f03d9 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 30 Dec 2022 09:49:29 +0000 Subject: [PATCH 49/76] mkgmap-splitter: 652 -> 653 --- pkgs/applications/misc/mkgmap/splitter/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/misc/mkgmap/splitter/default.nix b/pkgs/applications/misc/mkgmap/splitter/default.nix index 13158d7f7257..d9b886cbe2b3 100644 --- a/pkgs/applications/misc/mkgmap/splitter/default.nix +++ b/pkgs/applications/misc/mkgmap/splitter/default.nix @@ -14,12 +14,12 @@ let in stdenv.mkDerivation rec { pname = "splitter"; - version = "652"; + version = "653"; src = fetchsvn { url = "https://svn.mkgmap.org.uk/mkgmap/splitter/trunk"; rev = version; - sha256 = "sha256-yCdVOT8if3AImD4Q63gKfMep7WZsrCgV+IXfP4ZL3Qw="; + sha256 = "sha256-iw414ecnOfeG3FdlIaoVOPv9BXZ95uUHuPzCQGH4G+A="; }; patches = [ From c788d138f03050d751da884f752e58799384fbe9 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Fri, 30 Dec 2022 10:50:47 +0100 Subject: [PATCH 50/76] pip-audit: 2.4.11 -> 2.4.12 Diff: https://github.com/trailofbits/pip-audit/compare/refs/tags/v2.4.11...v2.4.12 Changelog: https://github.com/pypa/pip-audit/releases/tag/v2.4.12 --- pkgs/development/tools/pip-audit/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/tools/pip-audit/default.nix b/pkgs/development/tools/pip-audit/default.nix index 8adc26686d0d..2baaf4f6a529 100644 --- a/pkgs/development/tools/pip-audit/default.nix +++ b/pkgs/development/tools/pip-audit/default.nix @@ -25,14 +25,14 @@ with py.pkgs; buildPythonApplication rec { pname = "pip-audit"; - version = "2.4.11"; + version = "2.4.12"; format = "pyproject"; src = fetchFromGitHub { owner = "trailofbits"; repo = pname; rev = "refs/tags/v${version}"; - hash = "sha256-gfqxrEp+8Jmh32wjmBh0laQvEqja7kZqkqf2l2ztVyk="; + hash = "sha256-bpAs7xXWvBVGzbX6Fij71BnEMpqYjSSCtWjuA/EFms8="; }; nativeBuildInputs = [ From a8bb3404ec561bd63ebb34a9f7c7eb6d56e149fd Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Fri, 30 Dec 2022 10:52:20 +0100 Subject: [PATCH 51/76] wslu: add changelog to meta --- pkgs/tools/system/wslu/default.nix | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pkgs/tools/system/wslu/default.nix b/pkgs/tools/system/wslu/default.nix index a1911c8e9c09..596c722bb3df 100644 --- a/pkgs/tools/system/wslu/default.nix +++ b/pkgs/tools/system/wslu/default.nix @@ -1,4 +1,7 @@ -{ lib, stdenv, fetchFromGitHub }: +{ lib +, stdenv +, fetchFromGitHub +}: stdenv.mkDerivation rec { pname = "wslu"; @@ -16,6 +19,7 @@ stdenv.mkDerivation rec { meta = with lib; { description = "A collection of utilities for Windows 10 Linux Subsystems"; homepage = "https://github.com/wslutilities/wslu"; + changelog = "https://github.com/wslutilities/wslu/releases/tag/v${version}"; license = licenses.gpl3Plus; maintainers = with maintainers; [ jamiemagee ]; platforms = platforms.linux; From a3585c8234db18cbcc626fcded549f2f6fc402e0 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Fri, 30 Dec 2022 11:15:38 +0100 Subject: [PATCH 52/76] pythpn310Packages.pybravia: add changelog to meta --- pkgs/development/python-modules/pybravia/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/development/python-modules/pybravia/default.nix b/pkgs/development/python-modules/pybravia/default.nix index 89aedb3de0bf..387e6575c3a3 100644 --- a/pkgs/development/python-modules/pybravia/default.nix +++ b/pkgs/development/python-modules/pybravia/default.nix @@ -38,6 +38,7 @@ buildPythonPackage rec { meta = with lib; { description = "Library for remote control of Sony Bravia TVs 2013 and newer"; homepage = "https://github.com/Drafteed/pybravia"; + changelog = "https://github.com/Drafteed/pybravia/releases/tag/v${version}"; license = licenses.mit; maintainers = with maintainers; [ fab ]; }; From 22257ed5bb5d9d9e8d553cda581fdef04da0041e Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Fri, 30 Dec 2022 11:25:14 +0100 Subject: [PATCH 53/76] python310Packages.pybravia: 0.2.3 -> 0.2.4 Diff: https://github.com/Drafteed/pybravia/compare/v0.2.3...0.2.4 Changelog: https://github.com/Drafteed/pybravia/releases/tag/v0.2.4 --- pkgs/development/python-modules/pybravia/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/pybravia/default.nix b/pkgs/development/python-modules/pybravia/default.nix index 387e6575c3a3..da8d95f0b103 100644 --- a/pkgs/development/python-modules/pybravia/default.nix +++ b/pkgs/development/python-modules/pybravia/default.nix @@ -8,7 +8,7 @@ buildPythonPackage rec { pname = "pybravia"; - version = "0.2.3"; + version = "0.2.4"; format = "pyproject"; disabled = pythonOlder "3.8"; @@ -17,7 +17,7 @@ buildPythonPackage rec { owner = "Drafteed"; repo = pname; rev = "v${version}"; - hash = "sha256-ZM1XJnEYMNcbVOkpcI1ml7Cck2CXA2QXEpJMx3RwtSQ="; + hash = "sha256-dR9UfvgBnCTL+/rn3j9TvfCqD8exp2WziS/+zRyde70="; }; nativeBuildInputs = [ From 1cee5ecfebfa99b99fcbf43e2dc1432a2e81b908 Mon Sep 17 00:00:00 2001 From: Joel Date: Sun, 18 Dec 2022 16:17:14 +1000 Subject: [PATCH 54/76] nixos/cloudflared: fix invalid systemd unit description --- nixos/modules/services/networking/cloudflared.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nixos/modules/services/networking/cloudflared.nix b/nixos/modules/services/networking/cloudflared.nix index c8fc9fafee6d..747dbc6e8bbe 100644 --- a/nixos/modules/services/networking/cloudflared.nix +++ b/nixos/modules/services/networking/cloudflared.nix @@ -263,7 +263,7 @@ in mapAttrs' (name: tunnel: nameValuePair "cloudflared-tunnel-${name}" ({ - description = lib.mdDoc "Cloudflare tunnel '${name}' target"; + description = "Cloudflare tunnel '${name}' target"; requires = [ "cloudflared-tunnel-${name}.service" ]; after = [ "cloudflared-tunnel-${name}.service" ]; unitConfig.StopWhenUnneeded = true; From 4c365aa9fc8823ec420cf8a5b4e4f892ec6d5c4a Mon Sep 17 00:00:00 2001 From: Joel Date: Sun, 18 Dec 2022 17:19:33 +1000 Subject: [PATCH 55/76] nixos/cloudfared: fix options that are required having defaults > ERR Couldn't start tunnel error="The last ingress rule must match all URLs (i.e. it should not have a hostname or path filter)" --- nixos/modules/services/networking/cloudflared.nix | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/nixos/modules/services/networking/cloudflared.nix b/nixos/modules/services/networking/cloudflared.nix index 747dbc6e8bbe..3ee43072ba86 100644 --- a/nixos/modules/services/networking/cloudflared.nix +++ b/nixos/modules/services/networking/cloudflared.nix @@ -168,8 +168,7 @@ in inherit originRequest; credentialsFile = mkOption { - type = with types; nullOr str; - default = null; + type = types.str; description = lib.mdDoc '' Credential file. @@ -190,8 +189,7 @@ in }; default = mkOption { - type = with types; nullOr str; - default = null; + type = types.str; description = lib.mdDoc '' Catch-all service if no ingress matches. @@ -262,12 +260,12 @@ in systemd.targets = mapAttrs' (name: tunnel: - nameValuePair "cloudflared-tunnel-${name}" ({ + nameValuePair "cloudflared-tunnel-${name}" { description = "Cloudflare tunnel '${name}' target"; requires = [ "cloudflared-tunnel-${name}.service" ]; after = [ "cloudflared-tunnel-${name}.service" ]; unitConfig.StopWhenUnneeded = true; - }) + } ) config.services.cloudflared.tunnels; From 4c45c3f8f23ff12ea6939c3edd911bf7eadbc385 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Forsman?= Date: Fri, 30 Dec 2022 12:11:35 +0100 Subject: [PATCH 56/76] nixos/test-driver: use ASCII single quotes everywhere A few places used Unicode U+2018/U+2019 left/right single quotes (but not always correctly balanced). Let's just use plain ASCII single quotes everywhere. --- nixos/lib/test-driver/test_driver/machine.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/nixos/lib/test-driver/test_driver/machine.py b/nixos/lib/test-driver/test_driver/machine.py index cbf3aa733c44..322b71157787 100644 --- a/nixos/lib/test-driver/test_driver/machine.py +++ b/nixos/lib/test-driver/test_driver/machine.py @@ -491,14 +491,14 @@ class Machine: def require_unit_state(self, unit: str, require_state: str = "active") -> None: with self.nested( - f"checking if unit ‘{unit}’ has reached state '{require_state}'" + f"checking if unit '{unit}' has reached state '{require_state}'" ): info = self.get_unit_info(unit) state = info["ActiveState"] if state != require_state: raise Exception( - f"Expected unit ‘{unit}’ to to be in state " - f"'{require_state}' but it is in state ‘{state}’" + f"Expected unit '{unit}' to to be in state " + f"'{require_state}' but it is in state '{state}'" ) def _next_newline_closed_block_from_shell(self) -> str: @@ -676,7 +676,7 @@ class Machine: retry(tty_matches) def send_chars(self, chars: str, delay: Optional[float] = 0.01) -> None: - with self.nested(f"sending keys ‘{chars}‘"): + with self.nested(f"sending keys '{chars}'"): for char in chars: self.send_key(char, delay) @@ -687,7 +687,7 @@ class Machine: status, _ = self.execute(f"test -e {filename}") return status == 0 - with self.nested(f"waiting for file ‘{filename}‘"): + with self.nested(f"waiting for file '{filename}'"): retry(check_file) def wait_for_open_port(self, port: int, addr: str = "localhost") -> None: From f3009dd57d0011bfaf30fe6325a0befb6672ca65 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 30 Dec 2022 12:28:14 +0000 Subject: [PATCH 57/76] python310Packages.python3-saml: 1.14.0 -> 1.15.0 --- pkgs/development/python-modules/python3-saml/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/python-modules/python3-saml/default.nix b/pkgs/development/python-modules/python3-saml/default.nix index dca35089f45f..f1674627744e 100644 --- a/pkgs/development/python-modules/python3-saml/default.nix +++ b/pkgs/development/python-modules/python3-saml/default.nix @@ -3,14 +3,14 @@ isodate, lxml, xmlsec, freezegun }: buildPythonPackage rec { pname = "python3-saml"; - version = "1.14.0"; + version = "1.15.0"; disabled = !isPy3k; src = fetchFromGitHub { owner = "onelogin"; repo = "python3-saml"; - rev = "v${version}"; - sha256 = "sha256-TAfVXh1fSKhNn/lsi7elq4wFyKCxCtCYUTrnH3ytBTw="; + rev = "refs/tags/v${version}"; + sha256 = "sha256-xPPR2z3h8RpoAROpKpu9ZoDxGq5Stm9wQVt4Stj/6fg="; }; postPatch = '' From e2cb520d80c612868252df917a1822e5c45a07ec Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 30 Dec 2022 12:35:34 +0000 Subject: [PATCH 58/76] python310Packages.labelbox: 3.33.1 -> 3.34.0 --- pkgs/development/python-modules/labelbox/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/labelbox/default.nix b/pkgs/development/python-modules/labelbox/default.nix index 15c533c91fce..3e5efd48e9c7 100644 --- a/pkgs/development/python-modules/labelbox/default.nix +++ b/pkgs/development/python-modules/labelbox/default.nix @@ -28,7 +28,7 @@ buildPythonPackage rec { pname = "labelbox"; - version = "3.33.1"; + version = "3.34.0"; format = "setuptools"; disabled = pythonOlder "3.7"; @@ -37,7 +37,7 @@ buildPythonPackage rec { owner = "Labelbox"; repo = "labelbox-python"; rev = "refs/tags/v.${version}"; - hash = "sha256-lYhgBELeVtNUp6ZvcSTIeKp2YkaGt6MH8BbzSERGHXw="; + hash = "sha256-x/XvcGiFS//f/le3JAd2n/tuUy9MBrCsISpkIkCCNis="; }; postPatch = '' From 38602ad5c3a73b92069879d2b127b91f265679c6 Mon Sep 17 00:00:00 2001 From: Artturin Date: Fri, 30 Dec 2022 14:51:17 +0200 Subject: [PATCH 59/76] makePkgconfigItem: fix cross --- pkgs/build-support/make-pkgconfigitem/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/build-support/make-pkgconfigitem/default.nix b/pkgs/build-support/make-pkgconfigitem/default.nix index 288ca3810eb8..d3bcabbb940f 100644 --- a/pkgs/build-support/make-pkgconfigitem/default.nix +++ b/pkgs/build-support/make-pkgconfigitem/default.nix @@ -65,5 +65,5 @@ writeTextFile { name = "${name}.pc"; destination = "/lib/pkgconfig/${name}.pc"; text = builtins.concatStringsSep "\n" content; - checkPhase = ''${buildPackages.pkg-config}/bin/pkg-config --validate "$target"''; + checkPhase = ''${buildPackages.pkg-config}/bin/${buildPackages.pkg-config.targetPrefix}pkg-config --validate "$target"''; } From eb32539c9618d6314e82c69a508467fa44d28126 Mon Sep 17 00:00:00 2001 From: David Houston Date: Fri, 30 Dec 2022 08:26:28 -0500 Subject: [PATCH 60/76] mopidy-musicbox-webclient: Slightly refactor (#207749) --- .../audio/mopidy/musicbox-webclient.nix | 20 +++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/pkgs/applications/audio/mopidy/musicbox-webclient.nix b/pkgs/applications/audio/mopidy/musicbox-webclient.nix index 65a228b8fd0a..2352a65dcc95 100644 --- a/pkgs/applications/audio/mopidy/musicbox-webclient.nix +++ b/pkgs/applications/audio/mopidy/musicbox-webclient.nix @@ -1,4 +1,8 @@ -{ lib, stdenv, fetchFromGitHub, pythonPackages, mopidy }: +{ lib +, fetchFromGitHub +, pythonPackages +, mopidy +}: pythonPackages.buildPythonApplication rec { pname = "mopidy-musicbox-webclient"; @@ -6,18 +10,22 @@ pythonPackages.buildPythonApplication rec { src = fetchFromGitHub { owner = "pimusicbox"; - repo = "mopidy-musicbox-webclient"; + repo = pname; rev = "v${version}"; sha256 = "1lzarazq67gciyn6r8cdms0f7j0ayyfwhpf28z93ydb280mfrrb9"; }; - propagatedBuildInputs = [ mopidy ]; + propagatedBuildInputs = [ + mopidy + ]; doCheck = false; meta = with lib; { - description = "Mopidy extension for playing music from SoundCloud"; - license = licenses.mit; - maintainers = [ maintainers.spwhitt ]; + description = "A Mopidy frontend extension and web client with additional features for Pi MusicBox"; + homepage = "https://github.com/pimusicbox/mopidy-musicbox-webclient"; + changelog = "https://github.com/pimusicbox/mopidy-musicbox-webclient/blob/v${version}/CHANGELOG.rst"; + license = licenses.asl20; + maintainers = with maintainers; [ spwhitt ]; }; } From 2f688374e08cbab0985d6bc36870369dfe040bcb Mon Sep 17 00:00:00 2001 From: Hadi Date: Fri, 30 Dec 2022 08:28:12 -0500 Subject: [PATCH 61/76] androidenv: fix missing packages in repo json (#208137) --- .../androidenv/compose-android-packages.nix | 8 +- .../mobile/androidenv/examples/shell.nix | 27 +- pkgs/development/mobile/androidenv/mkrepo.rb | 19 +- pkgs/development/mobile/androidenv/repo.json | 1998 +++++++++++++++-- 4 files changed, 1875 insertions(+), 177 deletions(-) diff --git a/pkgs/development/mobile/androidenv/compose-android-packages.nix b/pkgs/development/mobile/androidenv/compose-android-packages.nix index fb59b1ec88d8..78635dce7f8f 100644 --- a/pkgs/development/mobile/androidenv/compose-android-packages.nix +++ b/pkgs/development/mobile/androidenv/compose-android-packages.nix @@ -3,10 +3,10 @@ }: { toolsVersion ? "26.1.1" -, platformToolsVersion ? "33.0.2" -, buildToolsVersions ? [ "32.0.0" ] +, platformToolsVersion ? "33.0.3" +, buildToolsVersions ? [ "33.0.1" ] , includeEmulator ? false -, emulatorVersion ? "31.3.9" +, emulatorVersion ? "31.3.14" , platformVersions ? [] , includeSources ? false , includeSystemImages ? false @@ -14,7 +14,7 @@ , abiVersions ? [ "armeabi-v7a" "arm64-v8a" ] , cmakeVersions ? [ ] , includeNDK ? false -, ndkVersion ? "24.0.8215888" +, ndkVersion ? "25.1.8937393" , ndkVersions ? [ndkVersion] , useGoogleAPIs ? false , useGoogleTVAddOns ? false diff --git a/pkgs/development/mobile/androidenv/examples/shell.nix b/pkgs/development/mobile/androidenv/examples/shell.nix index 15021ce4eeeb..44db11375ff8 100644 --- a/pkgs/development/mobile/androidenv/examples/shell.nix +++ b/pkgs/development/mobile/androidenv/examples/shell.nix @@ -6,12 +6,15 @@ url = "https://github.com/NixOS/nixpkgs/archive/20.09.tar.gz"; sha256 = "1wg61h4gndm3vcprdcg7rc4s1v3jkm5xd7lw8r2f67w502y94gcy"; }), - pkgs ? import nixpkgsSource {}, - pkgsi686Linux ? import nixpkgsSource { system = "i686-linux"; },*/ + pkgs ? import nixpkgsSource { + config.allowUnfree = true; + }, + */ # If you want to use the in-tree version of nixpkgs: - pkgs ? import ../../../../.. {}, - pkgsi686Linux ? import ../../../../.. { system = "i686-linux"; }, + pkgs ? import ../../../../.. { + config.allowUnfree = true; + }, config ? pkgs.config }: @@ -23,17 +26,17 @@ let android = { versions = { tools = "26.1.1"; - platformTools = "31.0.2"; + platformTools = "33.0.3"; buildTools = "30.0.3"; ndk = [ - "22.1.7171670" - "21.3.6528147" # LTS NDK + "25.1.8937393" # LTS NDK + "24.0.8215888" ]; - cmake = "3.18.1"; - emulator = "30.6.3"; + cmake = "3.22.1"; + emulator = "31.3.14"; }; - platforms = ["23" "24" "25" "26" "27" "28" "29" "30"]; + platforms = ["23" "24" "25" "26" "27" "28" "29" "30" "31" "32" "33"]; abis = ["armeabi-v7a" "arm64-v8a"]; extras = ["extras;google;gcm"]; }; @@ -46,13 +49,13 @@ let }; androidEnv = pkgs.callPackage "${androidEnvNixpkgs}/pkgs/development/mobile/androidenv" { - inherit config pkgs pkgsi686Linux; + inherit config pkgs; licenseAccepted = true; };*/ # Otherwise, just use the in-tree androidenv: androidEnv = pkgs.callPackage ./.. { - inherit config pkgs pkgsi686Linux; + inherit config pkgs; licenseAccepted = true; }; diff --git a/pkgs/development/mobile/androidenv/mkrepo.rb b/pkgs/development/mobile/androidenv/mkrepo.rb index 208a544c90f6..786545db1731 100644 --- a/pkgs/development/mobile/androidenv/mkrepo.rb +++ b/pkgs/development/mobile/androidenv/mkrepo.rb @@ -154,6 +154,7 @@ def normalize_license license license = license.dup license.gsub!(/([^\n])\n([^\n])/m, '\1 \2') license.gsub!(/ +/, ' ') + license.strip! license end @@ -281,8 +282,18 @@ def parse_addon_xml doc [licenses, addons, extras] end +def merge_recursively a, b + a.merge!(b) {|key, a_item, b_item| + if a_item.is_a?(Hash) && b_item.is_a?(Hash) + merge_recursively(a_item, b_item) + else + a[key] = b_item + end + } +end + def merge dest, src - dest.merge! src + merge_recursively dest, src end opts = Slop.parse do |o| @@ -300,19 +311,19 @@ result = { } opts[:packages].each do |filename| - licenses, packages = parse_package_xml(Nokogiri::XML(File.open(filename))) + licenses, packages = parse_package_xml(Nokogiri::XML(File.open(filename)) { |conf| conf.noblanks }) merge result[:licenses], licenses merge result[:packages], packages end opts[:images].each do |filename| - licenses, images = parse_image_xml(Nokogiri::XML(File.open(filename))) + licenses, images = parse_image_xml(Nokogiri::XML(File.open(filename)) { |conf| conf.noblanks }) merge result[:licenses], licenses merge result[:images], images end opts[:addons].each do |filename| - licenses, addons, extras = parse_addon_xml(Nokogiri::XML(File.open(filename))) + licenses, addons, extras = parse_addon_xml(Nokogiri::XML(File.open(filename)) { |conf| conf.noblanks }) merge result[:licenses], licenses merge result[:addons], addons merge result[:extras], extras diff --git a/pkgs/development/mobile/androidenv/repo.json b/pkgs/development/mobile/androidenv/repo.json index bf69c67820b0..e27ec0bc3042 100644 --- a/pkgs/development/mobile/androidenv/repo.json +++ b/pkgs/development/mobile/androidenv/repo.json @@ -919,6 +919,38 @@ }, "images": { "10": { + "default": { + "armeabi-v7a": { + "archives": [ + { + "os": "all", + "sha1": "8537616a7add47cce24c60f18bc2429e3dc90ae3", + "size": 67927049, + "url": "https://dl.google.com/android/repository/sys-img/default/armeabi-v7a-10_r05.zip" + } + ], + "displayName": "ARM EABI v7a System Image", + "license": "android-sdk-license", + "name": "system-image-10-default-armeabi-v7a", + "path": "system-images/android-10/default/armeabi-v7a", + "revision": "10-default-armeabi-v7a" + }, + "x86": { + "archives": [ + { + "os": "all", + "sha1": "a166d5ccbb165e1dd5464fbfeec30a61f77790d8", + "size": 75386095, + "url": "https://dl.google.com/android/repository/sys-img/default/x86-10_r05.zip" + } + ], + "displayName": "Intel x86 Atom System Image", + "license": "android-sdk-license", + "name": "system-image-10-default-x86", + "path": "system-images/android-10/default/x86", + "revision": "10-default-x86" + } + }, "google_apis": { "armeabi-v7a": { "archives": [ @@ -972,6 +1004,38 @@ } }, "15": { + "default": { + "armeabi-v7a": { + "archives": [ + { + "os": "all", + "sha1": "03d7ed95a9d3b107e3f2e5b166d017ea12529e70", + "size": 102452069, + "url": "https://dl.google.com/android/repository/sys-img/default/armeabi-v7a-15_r05.zip" + } + ], + "displayName": "ARM EABI v7a System Image", + "license": "android-sdk-license", + "name": "system-image-15-default-armeabi-v7a", + "path": "system-images/android-15/default/armeabi-v7a", + "revision": "15-default-armeabi-v7a" + }, + "x86": { + "archives": [ + { + "os": "all", + "sha1": "61381aef3fd0cdc8255cb3298072a920c80186ca", + "size": 116030933, + "url": "https://dl.google.com/android/repository/sys-img/default/x86-15_r07.zip" + } + ], + "displayName": "Intel x86 Atom System Image", + "license": "android-sdk-license", + "name": "system-image-15-default-x86", + "path": "system-images/android-15/default/x86", + "revision": "15-default-x86" + } + }, "google_apis": { "armeabi-v7a": { "archives": [ @@ -1006,6 +1070,53 @@ } }, "16": { + "default": { + "armeabi-v7a": { + "archives": [ + { + "os": "all", + "sha1": "69b944b0d5a18c8563fa80d7d229af64890f724e", + "size": 118646340, + "url": "https://dl.google.com/android/repository/sys-img/default/armeabi-v7a-16_r06.zip" + } + ], + "displayName": "ARM EABI v7a System Image", + "license": "android-sdk-license", + "name": "system-image-16-default-armeabi-v7a", + "path": "system-images/android-16/default/armeabi-v7a", + "revision": "16-default-armeabi-v7a" + }, + "mips": { + "archives": [ + { + "os": "all", + "sha1": "67943c54fb3943943ffeb05fdd39c0b753681f6e", + "size": 122482530, + "url": "https://dl.google.com/android/repository/sys-img/default/sysimg_mips-16_r04.zip" + } + ], + "displayName": "MIPS System Image", + "license": "mips-android-sysimage-license", + "name": "system-image-16-default-mips", + "path": "system-images/android-16/default/mips", + "revision": "16-default-mips" + }, + "x86": { + "archives": [ + { + "os": "all", + "sha1": "ee6718e7556c8f8bd8d3f470b34f2c5dbf9bcff4", + "size": 135305313, + "url": "https://dl.google.com/android/repository/sys-img/default/x86-16_r07.zip" + } + ], + "displayName": "Intel x86 Atom System Image", + "license": "android-sdk-license", + "name": "system-image-16-default-x86", + "path": "system-images/android-16/default/x86", + "revision": "16-default-x86" + } + }, "google_apis": { "armeabi-v7a": { "archives": [ @@ -1040,6 +1151,53 @@ } }, "17": { + "default": { + "armeabi-v7a": { + "archives": [ + { + "os": "all", + "sha1": "a18a3fd0958ec4ef52507f58e414fc5c7dfd59d6", + "size": 124437041, + "url": "https://dl.google.com/android/repository/sys-img/default/armeabi-v7a-17_r06.zip" + } + ], + "displayName": "ARM EABI v7a System Image", + "license": "android-sdk-license", + "name": "system-image-17-default-armeabi-v7a", + "path": "system-images/android-17/default/armeabi-v7a", + "revision": "17-default-armeabi-v7a" + }, + "mips": { + "archives": [ + { + "os": "all", + "sha1": "f0c6e153bd584c29e51b5c9723cfbf30f996a05d", + "size": 131781761, + "url": "https://dl.google.com/android/repository/sys-img/default/sysimg_mips-17_r01.zip" + } + ], + "displayName": "MIPS System Image", + "license": "mips-android-sysimage-license", + "name": "system-image-17-default-mips", + "path": "system-images/android-17/default/mips", + "revision": "17-default-mips" + }, + "x86": { + "archives": [ + { + "os": "all", + "sha1": "1ad5ffb51e31f5fe9fa47411fed2c2ade9a33865", + "size": 194811128, + "url": "https://dl.google.com/android/repository/sys-img/default/x86-17_r07.zip" + } + ], + "displayName": "Intel x86 Atom System Image", + "license": "android-sdk-license", + "name": "system-image-17-default-x86", + "path": "system-images/android-17/default/x86", + "revision": "17-default-x86" + } + }, "google_apis": { "armeabi-v7a": { "archives": [ @@ -1074,6 +1232,38 @@ } }, "18": { + "default": { + "armeabi-v7a": { + "archives": [ + { + "os": "all", + "sha1": "580b583720f7de671040d5917c8c9db0c7aa03fd", + "size": 130590545, + "url": "https://dl.google.com/android/repository/sys-img/default/armeabi-v7a-18_r05.zip" + } + ], + "displayName": "ARM EABI v7a System Image", + "license": "android-sdk-license", + "name": "system-image-18-default-armeabi-v7a", + "path": "system-images/android-18/default/armeabi-v7a", + "revision": "18-default-armeabi-v7a" + }, + "x86": { + "archives": [ + { + "os": "all", + "sha1": "7a4ced4d9b0ab48047825491b4072dc2eb9b610e", + "size": 150097655, + "url": "https://dl.google.com/android/repository/sys-img/default/x86-18_r04.zip" + } + ], + "displayName": "Intel x86 Atom System Image", + "license": "android-sdk-license", + "name": "system-image-18-default-x86", + "path": "system-images/android-18/default/x86", + "revision": "18-default-x86" + } + }, "google_apis": { "armeabi-v7a": { "archives": [ @@ -1108,6 +1298,38 @@ } }, "19": { + "default": { + "armeabi-v7a": { + "archives": [ + { + "os": "all", + "sha1": "d1a5fd4f2e1c013c3d3d9bfe7e9db908c3ed56fa", + "size": 159871567, + "url": "https://dl.google.com/android/repository/sys-img/default/armeabi-v7a-19_r05.zip" + } + ], + "displayName": "ARM EABI v7a System Image", + "license": "android-sdk-license", + "name": "system-image-19-default-armeabi-v7a", + "path": "system-images/android-19/default/armeabi-v7a", + "revision": "19-default-armeabi-v7a" + }, + "x86": { + "archives": [ + { + "os": "all", + "sha1": "2ac82153aae97f7eae4c5a0761224fe04321d03d", + "size": 185886274, + "url": "https://dl.google.com/android/repository/sys-img/default/x86-19_r06.zip" + } + ], + "displayName": "Intel x86 Atom System Image", + "license": "android-sdk-license", + "name": "system-image-19-default-x86", + "path": "system-images/android-19/default/x86", + "revision": "19-default-x86" + } + }, "google_apis": { "armeabi-v7a": { "archives": [ @@ -1142,7 +1364,116 @@ } }, "21": { + "android-tv": { + "armeabi-v7a": { + "archives": [ + { + "os": "all", + "sha1": "b63e28a47f11b639dd94981a458b7abfa89ac331", + "size": 249428246, + "url": "https://dl.google.com/android/repository/sys-img/android-tv/armeabi-v7a-21_r03.zip" + } + ], + "displayName": "Android TV ARM EABI v7a System Image", + "license": "android-sdk-license", + "name": "system-image-21-android-tv-armeabi-v7a", + "path": "system-images/android-21/android-tv/armeabi-v7a", + "revision": "21-android-tv-armeabi-v7a" + }, + "x86": { + "archives": [ + { + "os": "all", + "sha1": "2f8a1988188d6abfd6c6395baeb4471a034dc1e8", + "size": 268946785, + "url": "https://dl.google.com/android/repository/sys-img/android-tv/x86-21_r03.zip" + } + ], + "displayName": "Android TV Intel x86 Atom System Image", + "license": "android-sdk-license", + "name": "system-image-21-android-tv-x86", + "path": "system-images/android-21/android-tv/x86", + "revision": "21-android-tv-x86" + } + }, + "default": { + "arm64-v8a": { + "archives": [ + { + "os": "all", + "sha1": "c4375f1b4b4cd21a8617660e25f621cedcbd8332", + "size": 211426314, + "url": "https://dl.google.com/android/repository/sys-img/default/arm64-v8a-21_r04.zip" + } + ], + "displayName": "ARM 64 v8a System Image", + "license": "android-sdk-license", + "name": "system-image-21-default-arm64-v8a", + "path": "system-images/android-21/default/arm64-v8a", + "revision": "21-default-arm64-v8a" + }, + "armeabi-v7a": { + "archives": [ + { + "os": "all", + "sha1": "8c606f81306564b65e41303d2603e4c42ded0d10", + "size": 187163871, + "url": "https://dl.google.com/android/repository/sys-img/default/armeabi-v7a-21_r04.zip" + } + ], + "displayName": "ARM EABI v7a System Image", + "license": "android-sdk-license", + "name": "system-image-21-default-armeabi-v7a", + "path": "system-images/android-21/default/armeabi-v7a", + "revision": "21-default-armeabi-v7a" + }, + "x86": { + "archives": [ + { + "os": "all", + "sha1": "00f0eb0a1003efe3316347f762e20a85d8749cff", + "size": 208212529, + "url": "https://dl.google.com/android/repository/sys-img/default/x86-21_r05.zip" + } + ], + "displayName": "Intel x86 Atom System Image", + "license": "android-sdk-license", + "name": "system-image-21-default-x86", + "path": "system-images/android-21/default/x86", + "revision": "21-default-x86" + }, + "x86_64": { + "archives": [ + { + "os": "all", + "sha1": "9078a095825a69e5e215713f0866c83cef65a342", + "size": 292623982, + "url": "https://dl.google.com/android/repository/sys-img/default/x86_64-21_r05.zip" + } + ], + "displayName": "Intel x86 Atom_64 System Image", + "license": "android-sdk-license", + "name": "system-image-21-default-x86_64", + "path": "system-images/android-21/default/x86_64", + "revision": "21-default-x86_64" + } + }, "google_apis": { + "arm64-v8a": { + "archives": [ + { + "os": "all", + "sha1": "bad07917816ba029ddb09ce0836e4aac4a460d4d", + "size": 297671829, + "url": "https://dl.google.com/android/repository/sys-img/google_apis/arm64-v8a-21_r32.zip" + } + ], + "displayName": "Google APIs ARM 64 v8a System Image", + "license": "android-sdk-license", + "name": "system-image-21-google_apis-arm64-v8a", + "path": "system-images/android-21/google_apis/arm64-v8a", + "revision": "21-google_apis-arm64-v8a" + }, "armeabi-v7a": { "archives": [ { @@ -1191,7 +1522,101 @@ } }, "22": { + "android-tv": { + "x86": { + "archives": [ + { + "os": "all", + "sha1": "c78efd5a155622eb490be9d326f5783993375c35", + "size": 293118949, + "url": "https://dl.google.com/android/repository/sys-img/android-tv/x86-22_r03.zip" + } + ], + "displayName": "Android TV Intel x86 Atom System Image", + "license": "android-sdk-license", + "name": "system-image-22-android-tv-x86", + "path": "system-images/android-22/android-tv/x86", + "revision": "22-android-tv-x86" + } + }, + "default": { + "arm64-v8a": { + "archives": [ + { + "os": "all", + "sha1": "703e27a9a4fb7a6e763cb7d713b89e5249a8fc99", + "size": 219124634, + "url": "https://dl.google.com/android/repository/sys-img/default/arm64-v8a-22_r02.zip" + } + ], + "displayName": "ARM 64 v8a System Image", + "license": "android-sdk-license", + "name": "system-image-22-default-arm64-v8a", + "path": "system-images/android-22/default/arm64-v8a", + "revision": "22-default-arm64-v8a" + }, + "armeabi-v7a": { + "archives": [ + { + "os": "all", + "sha1": "2114ec015dbf3a16cbcb4f63e8a84a1b206a07a1", + "size": 194596267, + "url": "https://dl.google.com/android/repository/sys-img/default/armeabi-v7a-22_r02.zip" + } + ], + "displayName": "ARM EABI v7a System Image", + "license": "android-sdk-license", + "name": "system-image-22-default-armeabi-v7a", + "path": "system-images/android-22/default/armeabi-v7a", + "revision": "22-default-armeabi-v7a" + }, + "x86": { + "archives": [ + { + "os": "all", + "sha1": "e33e2a6cc3f1cc56b2019dbef3917d2eeb26f54e", + "size": 214268954, + "url": "https://dl.google.com/android/repository/sys-img/default/x86-22_r06.zip" + } + ], + "displayName": "Intel x86 Atom System Image", + "license": "android-sdk-license", + "name": "system-image-22-default-x86", + "path": "system-images/android-22/default/x86", + "revision": "22-default-x86" + }, + "x86_64": { + "archives": [ + { + "os": "all", + "sha1": "5db3b27f78cd9c4c5092b1cad5a5dd479fb5b2e4", + "size": 299976630, + "url": "https://dl.google.com/android/repository/sys-img/default/x86_64-22_r06.zip" + } + ], + "displayName": "Intel x86 Atom_64 System Image", + "license": "android-sdk-license", + "name": "system-image-22-default-x86_64", + "path": "system-images/android-22/default/x86_64", + "revision": "22-default-x86_64" + } + }, "google_apis": { + "arm64-v8a": { + "archives": [ + { + "os": "all", + "sha1": "fd62e99e278f337fd58cadd37bf4f4c1998c8297", + "size": 382307460, + "url": "https://dl.google.com/android/repository/sys-img/google_apis/arm64-v8a-22_r26.zip" + } + ], + "displayName": "Google APIs ARM 64 v8a System Image", + "license": "android-sdk-license", + "name": "system-image-22-google_apis-arm64-v8a", + "path": "system-images/android-22/google_apis/arm64-v8a", + "revision": "22-google_apis-arm64-v8a" + }, "armeabi-v7a": { "archives": [ { @@ -1240,6 +1665,100 @@ } }, "23": { + "android-tv": { + "armeabi-v7a": { + "archives": [ + { + "os": "all", + "sha1": "bd84678ae8caf71d584f5210e866b2807e7b4b52", + "size": 304269268, + "url": "https://dl.google.com/android/repository/sys-img/android-tv/armeabi-v7a-23_r12.zip" + } + ], + "displayName": "Android TV ARM EABI v7a System Image", + "license": "android-sdk-license", + "name": "system-image-23-android-tv-armeabi-v7a", + "path": "system-images/android-23/android-tv/armeabi-v7a", + "revision": "23-android-tv-armeabi-v7a" + }, + "x86": { + "archives": [ + { + "os": "all", + "sha1": "094575ec634a662115a7a4c2b63d1743dfbca43c", + "size": 340921232, + "url": "https://dl.google.com/android/repository/sys-img/android-tv/x86-23_r21.zip" + } + ], + "displayName": "Android TV Intel x86 Atom System Image", + "license": "android-sdk-license", + "name": "system-image-23-android-tv-x86", + "path": "system-images/android-23/android-tv/x86", + "revision": "23-android-tv-x86" + } + }, + "default": { + "arm64-v8a": { + "archives": [ + { + "os": "all", + "sha1": "ac18f3bd717e02804eee585e029f5dbc1a2616bf", + "size": 253807785, + "url": "https://dl.google.com/android/repository/sys-img/default/arm64-v8a-23_r07.zip" + } + ], + "displayName": "ARM 64 v8a System Image", + "license": "android-sdk-license", + "name": "system-image-23-default-arm64-v8a", + "path": "system-images/android-23/default/arm64-v8a", + "revision": "23-default-arm64-v8a" + }, + "armeabi-v7a": { + "archives": [ + { + "os": "all", + "sha1": "7cf2ad756e54a3acfd81064b63cb0cb9dff2798d", + "size": 238333358, + "url": "https://dl.google.com/android/repository/sys-img/default/armeabi-v7a-23_r06.zip" + } + ], + "displayName": "ARM EABI v7a System Image", + "license": "android-sdk-license", + "name": "system-image-23-default-armeabi-v7a", + "path": "system-images/android-23/default/armeabi-v7a", + "revision": "23-default-armeabi-v7a" + }, + "x86": { + "archives": [ + { + "os": "all", + "sha1": "f6c3e3dd7bd951454795aa75c3a145fd05ac25bb", + "size": 260804863, + "url": "https://dl.google.com/android/repository/sys-img/default/x86-23_r10.zip" + } + ], + "displayName": "Intel x86 Atom System Image", + "license": "android-sdk-license", + "name": "system-image-23-default-x86", + "path": "system-images/android-23/default/x86", + "revision": "23-default-x86" + }, + "x86_64": { + "archives": [ + { + "os": "all", + "sha1": "7cbc291483ca07dc67b71268c5f08a5755f50f51", + "size": 365009313, + "url": "https://dl.google.com/android/repository/sys-img/default/x86_64-23_r10.zip" + } + ], + "displayName": "Intel x86 Atom_64 System Image", + "license": "android-sdk-license", + "name": "system-image-23-default-x86_64", + "path": "system-images/android-23/default/x86_64", + "revision": "23-default-x86_64" + } + }, "google_apis": { "arm64-v8a": { "archives": [ @@ -1304,6 +1823,132 @@ } }, "24": { + "android-tv": { + "x86": { + "archives": [ + { + "os": "all", + "sha1": "ef7890e565f4e3544fd23613b437d4418fb10f99", + "size": 398227164, + "url": "https://dl.google.com/android/repository/sys-img/android-tv/x86-24_r22.zip" + } + ], + "displayName": "Android TV Intel x86 Atom System Image", + "license": "android-sdk-license", + "name": "system-image-24-android-tv-x86", + "path": "system-images/android-24/android-tv/x86", + "revision": "24-android-tv-x86" + } + }, + "default": { + "arm64-v8a": { + "archives": [ + { + "os": "all", + "sha1": "e88ebdf4533efa0370603ee4ab0e7834e0cc364f", + "size": 305854153, + "url": "https://dl.google.com/android/repository/sys-img/default/arm64-v8a-24_r09.zip" + } + ], + "displayName": "ARM 64 v8a System Image", + "license": "android-sdk-license", + "name": "system-image-24-default-arm64-v8a", + "path": "system-images/android-24/default/arm64-v8a", + "revision": "24-default-arm64-v8a" + }, + "armeabi-v7a": { + "archives": [ + { + "os": "all", + "sha1": "e22c47afd06398b35f2705ca2e7fa85323351568", + "size": 782997866, + "url": "https://dl.google.com/android/repository/sys-img/default/armeabi-v7a-24_r07.zip" + } + ], + "displayName": "ARM EABI v7a System Image", + "license": "android-sdk-license", + "name": "system-image-24-default-armeabi-v7a", + "path": "system-images/android-24/default/armeabi-v7a", + "revision": "24-default-armeabi-v7a" + }, + "x86": { + "archives": [ + { + "os": "all", + "sha1": "c1cae7634b0216c0b5990f2c144eb8ca948e3511", + "size": 313489224, + "url": "https://dl.google.com/android/repository/sys-img/default/x86-24_r08.zip" + } + ], + "displayName": "Intel x86 Atom System Image", + "license": "android-sdk-license", + "name": "system-image-24-default-x86", + "path": "system-images/android-24/default/x86", + "revision": "24-default-x86" + }, + "x86_64": { + "archives": [ + { + "os": "all", + "sha1": "f6559e1949a5879f31a9662f4f0e50ad60181684", + "size": 419261998, + "url": "https://dl.google.com/android/repository/sys-img/default/x86_64-24_r08.zip" + } + ], + "displayName": "Intel x86 Atom_64 System Image", + "license": "android-sdk-license", + "name": "system-image-24-default-x86_64", + "path": "system-images/android-24/default/x86_64", + "revision": "24-default-x86_64" + } + }, + "google_apis": { + "arm64-v8a": { + "archives": [ + { + "os": "all", + "sha1": "d264adca13330b5e50665ab44726e4fecc1ddd1f", + "size": 709604485, + "url": "https://dl.google.com/android/repository/sys-img/google_apis/arm64-v8a-24_r29.zip" + } + ], + "displayName": "Google APIs ARM 64 v8a System Image", + "license": "android-sdk-license", + "name": "system-image-24-google_apis-arm64-v8a", + "path": "system-images/android-24/google_apis/arm64-v8a", + "revision": "24-google_apis-arm64-v8a" + }, + "x86": { + "archives": [ + { + "os": "all", + "sha1": "74505c33546fb9f6722fb7aa8fc1472777b924ff", + "size": 889204295, + "url": "https://dl.google.com/android/repository/sys-img/google_apis/x86-24_r27.zip" + } + ], + "displayName": "Google APIs Intel x86 Atom System Image", + "license": "android-sdk-license", + "name": "system-image-24-google_apis-x86", + "path": "system-images/android-24/google_apis/x86", + "revision": "24-google_apis-x86" + }, + "x86_64": { + "archives": [ + { + "os": "all", + "sha1": "46d09c0723b77ddba00f2281099a2c44a88ac971", + "size": 1119800108, + "url": "https://dl.google.com/android/repository/sys-img/google_apis/x86_64-24_r27.zip" + } + ], + "displayName": "Google APIs Intel x86 Atom_64 System Image", + "license": "android-sdk-license", + "name": "system-image-24-google_apis-x86_64", + "path": "system-images/android-24/google_apis/x86_64", + "revision": "24-google_apis-x86_64" + } + }, "google_apis_playstore": { "x86": { "archives": [ @@ -1323,6 +1968,164 @@ } }, "25": { + "android-tv": { + "x86": { + "archives": [ + { + "os": "all", + "sha1": "faae592bc991001b1880a8198d729b25855cc34b", + "size": 438201093, + "url": "https://dl.google.com/android/repository/sys-img/android-tv/x86-25_r16.zip" + } + ], + "displayName": "Android TV Intel x86 Atom System Image", + "license": "android-sdk-license", + "name": "system-image-25-android-tv-x86", + "path": "system-images/android-25/android-tv/x86", + "revision": "25-android-tv-x86" + } + }, + "android-wear": { + "armeabi-v7a": { + "archives": [ + { + "os": "all", + "sha1": "76d3568a4e08023047af7d13025a35c9bf1d7e5c", + "size": 377841195, + "url": "https://dl.google.com/android/repository/sys-img/android-wear/armeabi-v7a-25_r03.zip" + } + ], + "displayName": "Android Wear ARM EABI v7a System Image", + "license": "android-sdk-license", + "name": "system-image-25-android-wear-armeabi-v7a", + "path": "system-images/android-25/android-wear/armeabi-v7a", + "revision": "25-android-wear-armeabi-v7a" + }, + "x86": { + "archives": [ + { + "os": "all", + "sha1": "693fce7b487a65491a4e88e9f740959688c9dbe6", + "size": 397826706, + "url": "https://dl.google.com/android/repository/sys-img/android-wear/x86-25_r03.zip" + } + ], + "displayName": "Android Wear Intel x86 Atom System Image", + "license": "android-sdk-license", + "name": "system-image-25-android-wear-x86", + "path": "system-images/android-25/android-wear/x86", + "revision": "25-android-wear-x86" + } + }, + "default": { + "arm64-v8a": { + "archives": [ + { + "os": "all", + "sha1": "b39d359623323a1b4906c071dec396040016ea73", + "size": 308416103, + "url": "https://dl.google.com/android/repository/sys-img/default/arm64-v8a-25_r02.zip" + } + ], + "displayName": "ARM 64 v8a System Image", + "license": "android-sdk-license", + "name": "system-image-25-default-arm64-v8a", + "path": "system-images/android-25/default/arm64-v8a", + "revision": "25-default-arm64-v8a" + }, + "x86": { + "archives": [ + { + "os": "all", + "sha1": "78ce7eb1387d598685633b9f7cbb300c3d3aeb5f", + "size": 316695942, + "url": "https://dl.google.com/android/repository/sys-img/default/x86-25_r01.zip" + } + ], + "displayName": "Intel x86 Atom System Image", + "license": "android-sdk-license", + "name": "system-image-25-default-x86", + "path": "system-images/android-25/default/x86", + "revision": "25-default-x86" + }, + "x86_64": { + "archives": [ + { + "os": "all", + "sha1": "7093d7b39216020226ff430a3b7b81c94d31ad37", + "size": 422702097, + "url": "https://dl.google.com/android/repository/sys-img/default/x86_64-25_r01.zip" + } + ], + "displayName": "Intel x86 Atom_64 System Image", + "license": "android-sdk-license", + "name": "system-image-25-default-x86_64", + "path": "system-images/android-25/default/x86_64", + "revision": "25-default-x86_64" + } + }, + "google_apis": { + "arm64-v8a": { + "archives": [ + { + "os": "all", + "sha1": "23162a2123e9e5cd5a7e930f8ca867676e83c0df", + "size": 740445031, + "url": "https://dl.google.com/android/repository/sys-img/google_apis/arm64-v8a-25_r20.zip" + } + ], + "displayName": "Google APIs ARM 64 v8a System Image", + "license": "android-sdk-license", + "name": "system-image-25-google_apis-arm64-v8a", + "path": "system-images/android-25/google_apis/arm64-v8a", + "revision": "25-google_apis-arm64-v8a" + }, + "armeabi-v7a": { + "archives": [ + { + "os": "all", + "sha1": "a6f7c491e3bb937523dddfa287e07d785934e8a1", + "size": 952973150, + "url": "https://dl.google.com/android/repository/sys-img/google_apis/armeabi-v7a-25_r18.zip" + } + ], + "displayName": "Google APIs ARM EABI v7a System Image", + "license": "android-sdk-license", + "name": "system-image-25-google_apis-armeabi-v7a", + "path": "system-images/android-25/google_apis/armeabi-v7a", + "revision": "25-google_apis-armeabi-v7a" + }, + "x86": { + "archives": [ + { + "os": "all", + "sha1": "93872600c58521c8a67dc44c8e17cff4def009f3", + "size": 1013657090, + "url": "https://dl.google.com/android/repository/sys-img/google_apis/x86-25_r18.zip" + } + ], + "displayName": "Google APIs Intel x86 Atom System Image", + "license": "android-sdk-license", + "name": "system-image-25-google_apis-x86", + "path": "system-images/android-25/google_apis/x86", + "revision": "25-google_apis-x86" + }, + "x86_64": { + "archives": [ + { + "os": "all", + "sha1": "0da7b5bca8ff5deff45b942f61f081e038271ba6", + "size": 1298264628, + "url": "https://dl.google.com/android/repository/sys-img/google_apis/x86_64-25_r18.zip" + } + ], + "displayName": "Google APIs Intel x86 Atom_64 System Image", + "license": "android-sdk-license", + "name": "system-image-25-google_apis-x86_64", + "path": "system-images/android-25/google_apis/x86_64", + "revision": "25-google_apis-x86_64" + } + }, "google_apis_playstore": { "x86": { "archives": [ @@ -1342,6 +2145,134 @@ } }, "26": { + "android-tv": { + "x86": { + "archives": [ + { + "os": "all", + "sha1": "f908b3c81a03513a756c17a197faecfc91e437df", + "size": 401675862, + "url": "https://dl.google.com/android/repository/sys-img/android-tv/x86-26_r14.zip" + } + ], + "displayName": "Android TV Intel x86 Atom System Image", + "license": "android-sdk-preview-license", + "name": "system-image-26-android-tv-x86", + "path": "system-images/android-26/android-tv/x86", + "revision": "26-android-tv-x86" + } + }, + "android-wear": { + "x86": { + "archives": [ + { + "os": "all", + "sha1": "fbffa91b936ca18fcc1e0bab2b52a8b0835cbb1c", + "size": 370311037, + "url": "https://dl.google.com/android/repository/sys-img/android-wear/x86-26_r04.zip" + } + ], + "displayName": "Android Wear Intel x86 Atom System Image", + "license": "android-sdk-license", + "name": "system-image-26-android-wear-x86", + "path": "system-images/android-26/android-wear/x86", + "revision": "26-android-wear-x86" + } + }, + "default": { + "arm64-v8a": { + "archives": [ + { + "os": "all", + "sha1": "c3199baf49790fc65f90f7ce734435d5778f6a30", + "size": 328910124, + "url": "https://dl.google.com/android/repository/sys-img/default/arm64-v8a-26_r01.zip" + } + ], + "displayName": "ARM 64 v8a System Image", + "license": "android-sdk-license", + "name": "system-image-26-default-arm64-v8a", + "path": "system-images/android-26/default/arm64-v8a", + "revision": "26-default-arm64-v8a" + }, + "x86": { + "archives": [ + { + "os": "all", + "sha1": "e613d6e0da668e30daf547f3c6627a6352846f90", + "size": 350195807, + "url": "https://dl.google.com/android/repository/sys-img/default/x86-26_r01.zip" + } + ], + "displayName": "Intel x86 Atom System Image", + "license": "android-sdk-license", + "name": "system-image-26-default-x86", + "path": "system-images/android-26/default/x86", + "revision": "26-default-x86" + }, + "x86_64": { + "archives": [ + { + "os": "all", + "sha1": "432f149c048bffce7f9de526ec65b336daf7a0a3", + "size": 474178332, + "url": "https://dl.google.com/android/repository/sys-img/default/x86_64-26_r01.zip" + } + ], + "displayName": "Intel x86 Atom_64 System Image", + "license": "android-sdk-license", + "name": "system-image-26-default-x86_64", + "path": "system-images/android-26/default/x86_64", + "revision": "26-default-x86_64" + } + }, + "google_apis": { + "arm64-v8a": { + "archives": [ + { + "os": "all", + "sha1": "75fe6f36cf0854270876543641da53887961a63b", + "size": 732225522, + "url": "https://dl.google.com/android/repository/sys-img/google_apis/arm64-v8a-26_r01.zip" + } + ], + "displayName": "Google APIs ARM 64 v8a System Image", + "license": "android-sdk-license", + "name": "system-image-26-google_apis-arm64-v8a", + "path": "system-images/android-26/google_apis/arm64-v8a", + "revision": "26-google_apis-arm64-v8a" + }, + "x86": { + "archives": [ + { + "os": "all", + "sha1": "edac36ae459ebc974aac4b51b67b7356fa099f5b", + "size": 805108564, + "url": "https://dl.google.com/android/repository/sys-img/google_apis/x86-26_r16.zip" + } + ], + "displayName": "Google APIs Intel x86 Atom System Image", + "license": "android-sdk-license", + "name": "system-image-26-google_apis-x86", + "path": "system-images/android-26/google_apis/x86", + "revision": "26-google_apis-x86" + }, + "x86_64": { + "archives": [ + { + "os": "all", + "sha1": "0eb13cc91cf164b617eaf85e4030289cb18189de", + "size": 980740438, + "url": "https://dl.google.com/android/repository/sys-img/google_apis/x86_64-26_r16.zip" + } + ], + "displayName": "Google APIs Intel x86 Atom_64 System Image", + "license": "android-sdk-license", + "name": "system-image-26-google_apis-x86_64", + "path": "system-images/android-26/google_apis/x86_64", + "revision": "26-google_apis-x86_64" + } + }, "google_apis_playstore": { "x86": { "archives": [ @@ -1361,6 +2292,102 @@ } }, "27": { + "android-tv": { + "x86": { + "archives": [ + { + "os": "all", + "sha1": "b7d2a9349cdb1da9dafbd42de7378f6f1933d193", + "size": 410757280, + "url": "https://dl.google.com/android/repository/sys-img/android-tv/x86-27_r09.zip" + } + ], + "displayName": "Android TV Intel x86 Atom System Image", + "license": "android-sdk-preview-license", + "name": "system-image-27-android-tv-x86", + "path": "system-images/android-27/android-tv/x86", + "revision": "27-android-tv-x86" + } + }, + "default": { + "arm64-v8a": { + "archives": [ + { + "os": "all", + "sha1": "cb01199edae33ce375c6d8e08aea08911ff0d583", + "size": 331796092, + "url": "https://dl.google.com/android/repository/sys-img/default/arm64-v8a-27_r01.zip" + } + ], + "displayName": "ARM 64 v8a System Image", + "license": "android-sdk-license", + "name": "system-image-27-default-arm64-v8a", + "path": "system-images/android-27/default/arm64-v8a", + "revision": "27-default-arm64-v8a" + }, + "x86": { + "archives": [ + { + "os": "all", + "sha1": "4ec990fac7b62958decd12e18a4cd389dfe7c582", + "size": 360984187, + "url": "https://dl.google.com/android/repository/sys-img/default/x86-27_r01.zip" + } + ], + "displayName": "Intel x86 Atom System Image", + "license": "android-sdk-license", + "name": "system-image-27-default-x86", + "path": "system-images/android-27/default/x86", + "revision": "27-default-x86" + }, + "x86_64": { + "archives": [ + { + "os": "all", + "sha1": "2878261011a59ca3de29dc5b457a495fdb268d60", + "size": 491675204, + "url": "https://dl.google.com/android/repository/sys-img/default/x86_64-27_r01.zip" + } + ], + "displayName": "Intel x86 Atom_64 System Image", + "license": "android-sdk-license", + "name": "system-image-27-default-x86_64", + "path": "system-images/android-27/default/x86_64", + "revision": "27-default-x86_64" + } + }, + "google_apis": { + "arm64-v8a": { + "archives": [ + { + "os": "all", + "sha1": "a7ae177097205090fee9801349575cea0dd9f606", + "size": 730343967, + "url": "https://dl.google.com/android/repository/sys-img/google_apis/arm64-v8a-27_r01.zip" + } + ], + "displayName": "Google APIs ARM 64 v8a System Image", + "license": "android-sdk-license", + "name": "system-image-27-google_apis-arm64-v8a", + "path": "system-images/android-27/google_apis/arm64-v8a", + "revision": "27-google_apis-arm64-v8a" + }, + "x86": { + "archives": [ + { + "os": "all", + "sha1": "0a130cad4f6d42c305a61265dc6c738e9e2b45c4", + "size": 807298593, + "url": "https://dl.google.com/android/repository/sys-img/google_apis/x86-27_r11.zip" + } + ], + "displayName": "Google APIs Intel x86 Atom System Image", + "license": "android-sdk-license", + "name": "system-image-27-google_apis-x86", + "path": "system-images/android-27/google_apis/x86", + "revision": "27-google_apis-x86" + } + }, "google_apis_playstore": { "x86": { "archives": [ @@ -1380,6 +2407,134 @@ } }, "28": { + "android-tv": { + "x86": { + "archives": [ + { + "os": "all", + "sha1": "4c13edca32c1abb899a0702fe6972087712bcb78", + "size": 475216948, + "url": "https://dl.google.com/android/repository/sys-img/android-tv/x86-28_r10.zip" + } + ], + "displayName": "Android TV Intel x86 Atom System Image", + "license": "android-sdk-preview-license", + "name": "system-image-28-android-tv-x86", + "path": "system-images/android-28/android-tv/x86", + "revision": "28-android-tv-x86" + } + }, + "android-wear": { + "x86": { + "archives": [ + { + "os": "all", + "sha1": "3dd75066e95327baf8991915a043e53e06a2cfb5", + "size": 682327945, + "url": "https://dl.google.com/android/repository/sys-img/android-wear/x86-28_r09.zip" + } + ], + "displayName": "Wear OS Intel x86 Atom System Image", + "license": "android-sdk-license", + "name": "system-image-28-android-wear-x86", + "path": "system-images/android-28/android-wear/x86", + "revision": "28-android-wear-x86" + } + }, + "default": { + "arm64-v8a": { + "archives": [ + { + "os": "all", + "sha1": "4de0491612ca12097be7deb76af835ebabadefca", + "size": 425671679, + "url": "https://dl.google.com/android/repository/sys-img/default/arm64-v8a-28_r01.zip" + } + ], + "displayName": "ARM 64 v8a System Image", + "license": "android-sdk-license", + "name": "system-image-28-default-arm64-v8a", + "path": "system-images/android-28/default/arm64-v8a", + "revision": "28-default-arm64-v8a" + }, + "x86": { + "archives": [ + { + "os": "all", + "sha1": "ce03c42d80c0fc6dc47f6455dbee7aa275d02780", + "size": 437320152, + "url": "https://dl.google.com/android/repository/sys-img/default/x86-28_r04.zip" + } + ], + "displayName": "Intel x86 Atom System Image", + "license": "android-sdk-preview-license", + "name": "system-image-28-default-x86", + "path": "system-images/android-28/default/x86", + "revision": "28-default-x86" + }, + "x86_64": { + "archives": [ + { + "os": "all", + "sha1": "d47a85c8f4e9fd57df97814ad8884eeb0f3a0ef0", + "size": 564792723, + "url": "https://dl.google.com/android/repository/sys-img/default/x86_64-28_r04.zip" + } + ], + "displayName": "Intel x86 Atom_64 System Image", + "license": "android-sdk-preview-license", + "name": "system-image-28-default-x86_64", + "path": "system-images/android-28/default/x86_64", + "revision": "28-default-x86_64" + } + }, + "google_apis": { + "arm64-v8a": { + "archives": [ + { + "os": "all", + "sha1": "3360092d11284a9f2d7146847932a426c438b372", + "size": 856031756, + "url": "https://dl.google.com/android/repository/sys-img/google_apis/arm64-v8a-28_r01.zip" + } + ], + "displayName": "Google APIs ARM 64 v8a System Image", + "license": "android-sdk-arm-dbt-license", + "name": "system-image-28-google_apis-arm64-v8a", + "path": "system-images/android-28/google_apis/arm64-v8a", + "revision": "28-google_apis-arm64-v8a" + }, + "x86": { + "archives": [ + { + "os": "all", + "sha1": "e0541ac9b783ab91a00054e133bda340a2b9c757", + "size": 994434707, + "url": "https://dl.google.com/android/repository/sys-img/google_apis/x86-28_r12.zip" + } + ], + "displayName": "Google APIs Intel x86 Atom System Image", + "license": "android-sdk-arm-dbt-license", + "name": "system-image-28-google_apis-x86", + "path": "system-images/android-28/google_apis/x86", + "revision": "28-google_apis-x86" + }, + "x86_64": { + "archives": [ + { + "os": "all", + "sha1": "1d93bd994e29c4e9bbe71fd9c278addc5418cbee", + "size": 1102721597, + "url": "https://dl.google.com/android/repository/sys-img/google_apis/x86_64-28_r11.zip" + } + ], + "displayName": "Google APIs Intel x86 Atom_64 System Image", + "license": "android-sdk-license", + "name": "system-image-28-google_apis-x86_64", + "path": "system-images/android-28/google_apis/x86_64", + "revision": "28-google_apis-x86_64" + } + }, "google_apis_playstore": { "arm64-v8a": { "archives": [ @@ -1429,6 +2584,141 @@ } }, "29": { + "android-tv": { + "x86": { + "archives": [ + { + "os": "all", + "sha1": "736c2f6c79493b5ee4ca0d2531a25c9eb7f9c7ab", + "size": 590809630, + "url": "https://dl.google.com/android/repository/sys-img/android-tv/x86-29_r03.zip" + } + ], + "displayName": "Android TV Intel x86 Atom System Image", + "license": "android-sdk-preview-license", + "name": "system-image-29-android-tv-x86", + "path": "system-images/android-29/android-tv/x86", + "revision": "29-android-tv-x86" + } + }, + "default": { + "arm64-v8a": { + "archives": [ + { + "os": "all", + "sha1": "fa0d67d7430fcc84b2fe2508ea81e92ac644e264", + "size": 498049256, + "url": "https://dl.google.com/android/repository/sys-img/default/arm64-v8a-29_r08.zip" + } + ], + "displayName": "ARM 64 v8a System Image", + "license": "android-sdk-license", + "name": "system-image-29-default-arm64-v8a", + "path": "system-images/android-29/default/arm64-v8a", + "revision": "29-default-arm64-v8a" + }, + "x86": { + "archives": [ + { + "os": "windows", + "sha1": "cc4fa13e49cb2e93770d4f2e90ea1dd2a81e315b", + "size": 516543600, + "url": "https://dl.google.com/android/repository/sys-img/default/x86-29_r08-windows.zip" + }, + { + "os": "macosx", + "sha1": "cc4fa13e49cb2e93770d4f2e90ea1dd2a81e315b", + "size": 516543600, + "url": "https://dl.google.com/android/repository/sys-img/default/x86-29_r08-darwin.zip" + }, + { + "os": "linux", + "sha1": "cc4fa13e49cb2e93770d4f2e90ea1dd2a81e315b", + "size": 516543600, + "url": "https://dl.google.com/android/repository/sys-img/default/x86-29_r08-linux.zip" + } + ], + "displayName": "Intel x86 Atom System Image", + "license": "android-sdk-license", + "name": "system-image-29-default-x86", + "path": "system-images/android-29/default/x86", + "revision": "29-default-x86" + }, + "x86_64": { + "archives": [ + { + "os": "windows", + "sha1": "e4b798d6fcddff90d528d74ef22ce3dd4a2ca798", + "size": 689676765, + "url": "https://dl.google.com/android/repository/sys-img/default/x86_64-29_r08-windows.zip" + }, + { + "os": "macosx", + "sha1": "e4b798d6fcddff90d528d74ef22ce3dd4a2ca798", + "size": 689676765, + "url": "https://dl.google.com/android/repository/sys-img/default/x86_64-29_r08-darwin.zip" + }, + { + "os": "linux", + "sha1": "e4b798d6fcddff90d528d74ef22ce3dd4a2ca798", + "size": 689676765, + "url": "https://dl.google.com/android/repository/sys-img/default/x86_64-29_r08-linux.zip" + } + ], + "displayName": "Intel x86 Atom_64 System Image", + "license": "android-sdk-license", + "name": "system-image-29-default-x86_64", + "path": "system-images/android-29/default/x86_64", + "revision": "29-default-x86_64" + } + }, + "google_apis": { + "arm64-v8a": { + "archives": [ + { + "os": "all", + "sha1": "e5938d570019150135c3bdf39442d103ea8aca86", + "size": 1169015927, + "url": "https://dl.google.com/android/repository/sys-img/google_apis/arm64-v8a-29_r12.zip" + } + ], + "displayName": "Google APIs ARM 64 v8a System Image", + "license": "android-sdk-arm-dbt-license", + "name": "system-image-29-google_apis-arm64-v8a", + "path": "system-images/android-29/google_apis/arm64-v8a", + "revision": "29-google_apis-arm64-v8a" + }, + "x86": { + "archives": [ + { + "os": "all", + "sha1": "8dc45a7406b922116f2121f6826868c2e7087389", + "size": 1133056400, + "url": "https://dl.google.com/android/repository/sys-img/google_apis/x86-29_r12.zip" + } + ], + "displayName": "Google APIs Intel x86 Atom System Image", + "license": "android-sdk-license", + "name": "system-image-29-google_apis-x86", + "path": "system-images/android-29/google_apis/x86", + "revision": "29-google_apis-x86" + }, + "x86_64": { + "archives": [ + { + "os": "all", + "sha1": "8392b93dc05c380bb0e6b2375ba318c14b263b37", + "size": 1313280930, + "url": "https://dl.google.com/android/repository/sys-img/google_apis/x86_64-29_r12.zip" + } + ], + "displayName": "Google APIs Intel x86 Atom_64 System Image", + "license": "android-sdk-license", + "name": "system-image-29-google_apis-x86_64", + "path": "system-images/android-29/google_apis/x86_64", + "revision": "29-google_apis-x86_64" + } + }, "google_apis_playstore": { "arm64-v8a": { "archives": [ @@ -1508,6 +2798,134 @@ } }, "30": { + "android-tv": { + "x86": { + "archives": [ + { + "os": "all", + "sha1": "f4151d2390fc015ddb2a7715bea9bc69a5ee0b4e", + "size": 699304963, + "url": "https://dl.google.com/android/repository/sys-img/android-tv/x86-30_r04.zip" + } + ], + "displayName": "Android TV Intel x86 Atom System Image", + "license": "android-sdk-preview-license", + "name": "system-image-30-android-tv-x86", + "path": "system-images/android-30/android-tv/x86", + "revision": "30-android-tv-x86" + } + }, + "android-wear": { + "arm64-v8a": { + "archives": [ + { + "os": "all", + "sha1": "4096b210414f609e5f83bd846b6f77700ef23ac4", + "size": 768213685, + "url": "https://dl.google.com/android/repository/sys-img/android-wear/arm64-v8a-30_r11.zip" + } + ], + "displayName": "Wear OS 3 ARM 64 v8a System Image", + "license": "android-sdk-license", + "name": "system-image-30-android-wear-arm64-v8a", + "path": "system-images/android-30/android-wear/arm64-v8a", + "revision": "30-android-wear-arm64-v8a" + }, + "x86": { + "archives": [ + { + "os": "all", + "sha1": "e528d54306411a56ea2391557c95d4654d949d3c", + "size": 856620801, + "url": "https://dl.google.com/android/repository/sys-img/android-wear/x86-30_r11.zip" + } + ], + "displayName": "Wear OS 3 Intel x86 Atom System Image", + "license": "android-sdk-license", + "name": "system-image-30-android-wear-x86", + "path": "system-images/android-30/android-wear/x86", + "revision": "30-android-wear-x86" + } + }, + "default": { + "arm64-v8a": { + "archives": [ + { + "os": "all", + "sha1": "2462af138023fbbd1114421818890884d4ebceab", + "size": 548363604, + "url": "https://dl.google.com/android/repository/sys-img/default/arm64-v8a-30_r01.zip" + } + ], + "displayName": "ARM 64 v8a System Image", + "license": "android-sdk-license", + "name": "system-image-30-default-arm64-v8a", + "path": "system-images/android-30/default/arm64-v8a", + "revision": "30-default-arm64-v8a" + }, + "x86_64": { + "archives": [ + { + "os": "all", + "sha1": "e08119b65d2c188ef69f127028eb4c8cc632cd8f", + "size": 676379913, + "url": "https://dl.google.com/android/repository/sys-img/default/x86_64-30_r10.zip" + } + ], + "displayName": "Intel x86 Atom_64 System Image", + "license": "android-sdk-license", + "name": "system-image-30-default-x86_64", + "path": "system-images/android-30/default/x86_64", + "revision": "30-default-x86_64" + } + }, + "google_apis": { + "arm64-v8a": { + "archives": [ + { + "os": "all", + "sha1": "14393e29f2b1021d4bfece3a1cb29af745e95dac", + "size": 1244095258, + "url": "https://dl.google.com/android/repository/sys-img/google_apis/arm64-v8a-30_r11.zip" + } + ], + "displayName": "Google APIs ARM 64 v8a System Image", + "license": "android-sdk-arm-dbt-license", + "name": "system-image-30-google_apis-arm64-v8a", + "path": "system-images/android-30/google_apis/arm64-v8a", + "revision": "30-google_apis-arm64-v8a" + }, + "x86": { + "archives": [ + { + "os": "all", + "sha1": "a23869f790fd42dddc83c47be1d1827fbebb7869", + "size": 650472769, + "url": "https://dl.google.com/android/repository/sys-img/google_apis/x86-30_r10.zip" + } + ], + "displayName": "Google APIs Intel x86 Atom System Image", + "license": "android-sdk-license", + "name": "system-image-30-google_apis-x86", + "path": "system-images/android-30/google_apis/x86", + "revision": "30-google_apis-x86" + }, + "x86_64": { + "archives": [ + { + "os": "all", + "sha1": "8ec579d5fe31804dd80132f1678655bfc015609b", + "size": 1438274971, + "url": "https://dl.google.com/android/repository/sys-img/google_apis/x86_64-30_r11.zip" + } + ], + "displayName": "Google APIs Intel x86 Atom_64 System Image", + "license": "android-sdk-license", + "name": "system-image-30-google_apis-x86_64", + "path": "system-images/android-30/google_apis/x86_64", + "revision": "30-google_apis-x86_64" + } + }, "google_apis_playstore": { "arm64-v8a": { "archives": [ @@ -1587,6 +3005,102 @@ } }, "31": { + "android-tv": { + "arm64-v8a": { + "archives": [ + { + "os": "all", + "sha1": "e8cec4080464d516e3f863d943c24055155f29bf", + "size": 763104604, + "url": "https://dl.google.com/android/repository/sys-img/android-tv/arm64-v8a-31_r04.zip" + } + ], + "displayName": "Android TV ARM 64 v8a System Image", + "license": "android-sdk-license", + "name": "system-image-31-android-tv-arm64-v8a", + "path": "system-images/android-31/android-tv/arm64-v8a", + "revision": "31-android-tv-arm64-v8a" + }, + "x86": { + "archives": [ + { + "os": "all", + "sha1": "8c0b848019afade7f2a8ddb5c361178f63ec86ca", + "size": 772250386, + "url": "https://dl.google.com/android/repository/sys-img/android-tv/x86-31_r04.zip" + } + ], + "displayName": "Android TV Intel x86 Atom System Image", + "license": "android-sdk-license", + "name": "system-image-31-android-tv-x86", + "path": "system-images/android-31/android-tv/x86", + "revision": "31-android-tv-x86" + } + }, + "default": { + "arm64-v8a": { + "archives": [ + { + "os": "all", + "sha1": "1052df2d0afc8fe57138db19d5ebd82d10c607da", + "size": 635481190, + "url": "https://dl.google.com/android/repository/sys-img/default/arm64-v8a-31_r03.zip" + } + ], + "displayName": "ARM 64 v8a System Image", + "license": "android-sdk-license", + "name": "system-image-31-default-arm64-v8a", + "path": "system-images/android-31/default/arm64-v8a", + "revision": "31-default-arm64-v8a" + }, + "x86_64": { + "archives": [ + { + "os": "all", + "sha1": "1200d6983af477fd6439f11cc5cabf9866bc4a16", + "size": 657244568, + "url": "https://dl.google.com/android/repository/sys-img/default/x86_64-31_r03.zip" + } + ], + "displayName": "Intel x86 Atom_64 System Image", + "license": "android-sdk-license", + "name": "system-image-31-default-x86_64", + "path": "system-images/android-31/default/x86_64", + "revision": "31-default-x86_64" + } + }, + "google_apis": { + "arm64-v8a": { + "archives": [ + { + "os": "all", + "sha1": "afdec4698b61bfbcf8471eff418951d7183c7b55", + "size": 1415899601, + "url": "https://dl.google.com/android/repository/sys-img/google_apis/arm64-v8a-31_r10.zip" + } + ], + "displayName": "Google APIs ARM 64 v8a System Image", + "license": "android-sdk-arm-dbt-license", + "name": "system-image-31-google_apis-arm64-v8a", + "path": "system-images/android-31/google_apis/arm64-v8a", + "revision": "31-google_apis-arm64-v8a" + }, + "x86_64": { + "archives": [ + { + "os": "all", + "sha1": "05a74ff8509fb76cbfd14b2e3307addad5c4d0df", + "size": 1458104208, + "url": "https://dl.google.com/android/repository/sys-img/google_apis/x86_64-31_r11.zip" + } + ], + "displayName": "Google APIs Intel x86 Atom_64 System Image", + "license": "android-sdk-preview-license", + "name": "system-image-31-google_apis-x86_64", + "path": "system-images/android-31/google_apis/x86_64", + "revision": "31-google_apis-x86_64" + } + }, "google_apis_playstore": { "arm64-v8a": { "archives": [ @@ -1627,6 +3141,23 @@ } }, "32": { + "google_apis": { + "x86_64": { + "archives": [ + { + "os": "all", + "sha1": "9727f570164b062e820d6e62edabc96d125027f6", + "size": 1471221547, + "url": "https://dl.google.com/android/repository/sys-img/google_apis/x86_64-32_r03.zip" + } + ], + "displayName": "Google APIs Intel x86 Atom_64 System Image", + "license": "android-sdk-preview-license", + "name": "system-image-32-google_apis-x86_64", + "path": "system-images/android-32/google_apis/x86_64", + "revision": "32-google_apis-x86_64" + } + }, "google_apis_playstore": { "arm64-v8a": { "archives": [ @@ -1679,20 +3210,84 @@ } }, "33": { + "android-tv": { + "arm64-v8a": { + "archives": [ + { + "os": "all", + "sha1": "41b75155961eb506b492e60e8fba590ad7baa02c", + "size": 828027584, + "url": "https://dl.google.com/android/repository/sys-img/android-tv/arm64-v8a-33_r05.zip" + } + ], + "displayName": "Android TV ARM 64 v8a System Image", + "license": "android-sdk-license", + "name": "system-image-33-android-tv-arm64-v8a", + "path": "system-images/android-33/android-tv/arm64-v8a", + "revision": "33-android-tv-arm64-v8a" + }, + "x86": { + "archives": [ + { + "os": "all", + "sha1": "ec3fe6a450ed6aa5fec2703fca68648e7813094f", + "size": 817908695, + "url": "https://dl.google.com/android/repository/sys-img/android-tv/x86-33_r05.zip" + } + ], + "displayName": "Android TV Intel x86 Atom System Image", + "license": "android-sdk-license", + "name": "system-image-33-android-tv-x86", + "path": "system-images/android-33/android-tv/x86", + "revision": "33-android-tv-x86" + } + }, + "google_apis": { + "arm64-v8a": { + "archives": [ + { + "os": "all", + "sha1": "8e7733de150ad1a912d63f90a11a1de705b5ddcf", + "size": 1619645676, + "url": "https://dl.google.com/android/repository/sys-img/google_apis/arm64-v8a-33_r08.zip" + } + ], + "displayName": "Google APIs ARM 64 v8a System Image", + "license": "android-sdk-arm-dbt-license", + "name": "system-image-33-google_apis-arm64-v8a", + "path": "system-images/android-33/google_apis/arm64-v8a", + "revision": "33-google_apis-arm64-v8a" + }, + "x86_64": { + "archives": [ + { + "os": "all", + "sha1": "6f5210b87ca249aa6ea2a25bb6d5598c19fa9372", + "size": 1510438727, + "url": "https://dl.google.com/android/repository/sys-img/google_apis/x86_64-33_r08.zip" + } + ], + "displayName": "Google APIs Intel x86 Atom_64 System Image", + "license": "android-sdk-license", + "name": "system-image-33-google_apis-x86_64", + "path": "system-images/android-33/google_apis/x86_64", + "revision": "33-google_apis-x86_64" + } + }, "google_apis_playstore": { "arm64-v8a": { "archives": [ { "os": "macosx", - "sha1": "0b850a4f317d7a6abe854a6845705c9ca4437764", - "size": 1492105537, - "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/arm64-v8a-33_r05-darwin.zip" + "sha1": "831cfe87d12eb5dd9d107ca2dfb203d52ca7b217", + "size": 1582091204, + "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/arm64-v8a-33_r07-darwin.zip" }, { "os": "linux", - "sha1": "0b850a4f317d7a6abe854a6845705c9ca4437764", - "size": 1492105537, - "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/arm64-v8a-33_r05-linux.zip" + "sha1": "831cfe87d12eb5dd9d107ca2dfb203d52ca7b217", + "size": 1582091204, + "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/arm64-v8a-33_r07-linux.zip" } ], "displayName": "Google Play ARM 64 v8a System Image", @@ -1705,68 +3300,34 @@ "archives": [ { "os": "all", - "sha1": "ed2931ebef4f7bedff8610254748d6496ce5d3c4", - "size": 1496628942, - "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/x86_64-33_r05.zip" + "sha1": "b7491eecf45556bd96f7b7a80c020b18a8a7df0d", + "size": 1481773028, + "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/x86_64-33_r07.zip" } ], "displayName": "Google Play Intel x86 Atom_64 System Image", - "license": "android-sdk-preview-license", + "license": "android-sdk-license", "name": "system-image-33-google_apis_playstore-x86_64", "path": "system-images/android-33/google_apis_playstore/x86_64", "revision": "33-google_apis_playstore-x86_64" } } }, - "Tiramisu": { - "android-tv": { - "arm64-v8a": { - "archives": [ - { - "os": "all", - "sha1": "4b70bed5ffb28162cdde7852e0597d957910270d", - "size": 840304267, - "url": "https://dl.google.com/android/repository/sys-img/android-tv/arm64-v8a-Tiramisu_r03.zip" - } - ], - "displayName": "Android TV ARM 64 v8a System Image", - "license": "android-sdk-license", - "name": "system-image-Tiramisu-android-tv-arm64-v8a", - "path": "system-images/android-Tiramisu/android-tv/arm64-v8a", - "revision": "Tiramisu-android-tv-arm64-v8a" - }, - "x86": { - "archives": [ - { - "os": "all", - "sha1": "547a24d9dec83e11486ef4ea45848d9fa99f35c2", - "size": 832895525, - "url": "https://dl.google.com/android/repository/sys-img/android-tv/x86-Tiramisu_r03.zip" - } - ], - "displayName": "Android TV Intel x86 Atom System Image", - "license": "android-sdk-license", - "name": "system-image-Tiramisu-android-tv-x86", - "path": "system-images/android-Tiramisu/android-tv/x86", - "revision": "Tiramisu-android-tv-x86" - } - } - }, "TiramisuPrivacySandbox": { "google_apis_playstore": { "arm64-v8a": { "archives": [ { "os": "macosx", - "sha1": "4653d7aa2dbd2629c3afc1c700284de0f7791bb2", - "size": 1514681298, - "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/arm64-v8a-TiramisuPrivacySandbox_r05-darwin.zip" + "sha1": "069cdb5926cef729c8f14897cdc70e47acfe6736", + "size": 1489462208, + "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/arm64-v8a-TiramisuPrivacySandbox_r08-darwin.zip" }, { "os": "linux", - "sha1": "4653d7aa2dbd2629c3afc1c700284de0f7791bb2", - "size": 1514681298, - "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/arm64-v8a-TiramisuPrivacySandbox_r05-linux.zip" + "sha1": "069cdb5926cef729c8f14897cdc70e47acfe6736", + "size": 1489462208, + "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/arm64-v8a-TiramisuPrivacySandbox_r08-linux.zip" } ], "displayName": "Google Play ARM 64 v8a System Image", @@ -1779,9 +3340,9 @@ "archives": [ { "os": "all", - "sha1": "2a4ea6ce714155ea8ddfea26cf61ad219f32c02a", - "size": 1519169526, - "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/x86_64-TiramisuPrivacySandbox_r05.zip" + "sha1": "7ae1658d066353e9f079afe694bdc17c446c0c88", + "size": 1493513570, + "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/x86_64-TiramisuPrivacySandbox_r08.zip" } ], "displayName": "Google Play Intel x86 Atom_64 System Image", @@ -1816,7 +3377,7 @@ "Intel Corporation Internal Evaluation License Agreement for x86 Android* System Images for Android Software Development Kit (SDK) This Internal Evaluation License Agreement (this \"Agreement\") is entered into by and between Intel and you (as an individual developer or a legal entity -- identified below as Recipient). Intel shall provide the Evaluation Software to Recipient as described in accordance with the Internal Evaluation License Terms and Conditions.\n\nDefinitions. These terms shall have the following meanings:\n\n\"Intel\" or \"INTEL\" Intel Corporation With an Address of: 2200 Mission College Blvd. Santa Clara, CA 95052 Office of the General Counsel Mail Stop: RNB-4-51 Attn: Software and Services Group Legal\n\n\"Evaluation Software\" The x86 Android* emulator system images for Android Software Development Kit (SDK), as provided by Intel.\n\nINTERNAL EVALUATION LICENSE TERMS AND CONDITIONS\n\n1. DEFINITIONS.\n\n1.1 Additional Defined Terms. \"Agreement\", \"Evaluation Software\", \"Intel\", \"Non-disclosure Agreement\", \"Recipient\", and \"Effective Date\" shall have the meanings ascribed to them on the signature page(s) of this Agreement.\n\n1.2 Evaluation Materials means, collectively, the Evaluation Software (in source and/or object code form) and documentation (including, without limitation, any design documents, specifications and other related materials) related to the Evaluation Software.\n\n1.3 \"Open Source Software\" means any software that requires as a condition of use, modification and/or distribution of such software that such software or other software incorporated into, derived from or distributed with such software (a) be disclosed or distributed in source code form; or (b) be licensed by the user to third parties for the purpose of making and/or distributing derivative works; or (c) be redistributable at no charge. Open Source Software includes, without limitation, software licensed or distributed under any of the following licenses or distribution models, or licenses or distribution models substantially similar to any of the following: (a) GNU’s General Public License (GPL) or Lesser/Library GPL (LGPL), (b) the Artistic License (e.g., PERL), (c) the Mozilla Public License, (d) the Netscape Public License, (e) the Sun Community Source License (SCSL), (f) the Sun Industry Source License (SISL), (g) the Apache Software license and (h) the Common Public License (CPL).\n\n1.4 \"Pre-Release Materials\" means \"alpha\" or \"beta\" designated pre-release features, which may not be fully functional, which Intel may substantially modify in producing any production version of the Evaluation Materials and/or is still under development by Intel and/or Intel’s suppliers.\n\n2. PURPOSE. Intel desires to provide the Evaluation Materials to Recipient solely for Recipient's internal evaluation of the Evaluation Software and other Intel products, to evaluate the desirability of cooperating with Intel in developing products based on the Evaluation Software and/or to advise Intel as to possible modifications to the Evaluation Software. Recipient may not disclose, distribute or make commercial use of the Evaluation Materials or any modifications to the Evaluation Materials. THE EVALUATION MATERIALS ARE PROVIDED FOR EVALUATION PURPOSES ONLY AND MAY NOT BE DISTRIBUTED BY RECIPIENT OR INCORPORATED INTO RECIPIENT’S PRODUCTS OR SOFTWARE. PLEASE CONTACT AN INTEL SALES REPRESENTATIVE TO LEARN ABOUT THE AVAILABILITY AND COST OF A COMMERICAL VERSION OF THE EVALUATION SOFTWARE.\n\n3. TITLE. Title to the Evaluation Materials remains with Intel or its suppliers. Recipient shall not mortgage, pledge or encumber the Evaluation Materials in any way. Recipient shall return all Evaluation Materials, keeping no copies, upon termination or expiration of this Agreement.\n\n4. LICENSE. Intel grants Recipient a royalty-free, personal, nontransferable, nonexclusive license under its copyrights to use the Evaluation Software only for the purposes described in paragraph 2 above. Unless otherwise communicated in writing by Intel to Recipient, to the extent the Evaluation Software is provided in more than one delivery or release (each, a \"Release\") the license grant in this Section 4 and the Evaluation Period shall apply to each Release. Recipient may not make modifications to the Evaluation Software. Recipient shall not disassemble, reverse-engineer, or decompile any software not provided to Recipient in source code form. EXCEPT AS PROVIDED HEREIN, NO OTHER LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY OTHER INTELLECTUAL PROPERTY RIGHTS IS GRANTED TO THE RECIPIENT.\n\n5. NO OBLIGATION. Recipient shall have no duty to purchase or license any product from Intel. Intel and its suppliers shall have no obligation to provide support for, or develop a non-evaluation version of, the Evaluation Software or to license any version of it.\n\n6. MODIFICATIONS. This Agreement does NOT obligate Recipient to provide Intel with comments or suggestions regarding Evaluation Materials. However, should Recipient provide Intel with comments or suggestions for the modification, correction, improvement or enhancement of (a) the Evaluation Materials or (b) Intel products or processes which may embody the Evaluation Materials, Recipient grants to Intel a non-exclusive, irrevocable, worldwide, royalty-free license, with the right to sublicense Intel’s licensees and customers, under Recipient intellectual property rights, the rights to use and disclose such comments and suggestions in any manner Intel chooses and to display, perform, copy, make, have made, use, sell, offer to sell, import, and otherwise dispose of Intel’s and its sublicensee’s products embodying such comments and suggestions in any manner and via any media Intel chooses, without reference to the source.\n\n7. WARRANTY DISCLAIMER. INTEL AND ITS SUPPLIERS MAKE NO WARRANTIES WITH RESPECT TO EVALUATION MATERIALS, EITHER EXPRESS OR IMPLIED, INCLUDING ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, OR ANY IMPLIED WARRANTY OF NONINFRINGEMENT. THE EVALUATION MATERIALS ARE PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND.\n\n8. LIMITATION OF LIABILITY. INTEL AND ITS SUPPLIERS SHALL NOT BE LIABLE FOR ANY PROPERTY DAMAGE, PERSONAL INJURY, LOSS OF PROFITS, INTERRUPTION OF BUSINESS OR ANY SPECIAL, CONSEQUENTIAL OR INCIDENTAL DAMAGES, HOWEVER CAUSED, WHETHER FOR BREACH OF WARRANTY, CONTRACT, STRICT LIABILITY OR OTHERWISE. INTEL AND ITS SUPPLIERS DISCLAIM ALL LIABILITY, INCLUDING LIABILITY FOR INFRINGEMENT OF ANY INTELLECTUAL PROPERTY RIGHTS RELATING TO THE EVALUATION MATERIALS.\n\n9. EXPIRATION. Intel may terminate this Agreement immediately after a breach by Recipient.\n\n10. GENERAL.\n\n10.1 Controlling Law. Any claims arising under or relating to this Agreement shall be governed by the internal substantive laws of the State of Delaware or federal courts located in Delaware, without regard to principles of conflict of laws. Each party hereby agrees to jurisdiction and venue in the courts of the State of Delaware for all disputes and litigation arising under or relating to this Agreement. The parties agree that the United Nations Convention on Contracts for the International Sale of Goods is specifically excluded from application to this Agreement. The parties consent to the personal jurisdiction of the above courts.\n\n10.2 Remedies. Recipient acknowledges that any disclosure, commercialization, or public use of the Evaluation Materials would cause irreparable injury to Intel and consents to the grant of an injunction by any court of competent jurisdiction in the event of a threatened breach.\n\n10.3 Assignment. Recipient may not delegate, assign or transfer this Agreement, the license granted or any of Recipient’s rights or duties hereunder, expressly, by implication, by operation of law, by way of merger (regardless of whether Recipient is the surviving entity) or acquisition, or otherwise and any attempt to do so, without Intel’s express prior written consent, shall be null and void. Intel may assign this Agreement, and its rights and obligations hereunder, in its sole discretion.\n\n10.4 Entire Agreement. This Agreement constitutes the entire agreement between Recipient and Intel and supersedes in their entirety any and all oral or written agreements previously existing between Recipient and Intel with respect to the subject matter hereof. This Agreement supersedes any and all \"click-to-accept\" or shrink-wrapped licenses, in hard-copy or electronic form, embedded in or included with the Evaluation Materials. This Agreement may only be amended or supplemented by a writing that refers explicitly to this Agreement and that is signed by duly authorized representatives of Recipient and Intel. Without limiting the foregoing, terms and conditions on any purchase orders or similar materials submitted by Recipient to Intel, and any terms contained in Intel’s standard acknowledgment form that are in conflict with these terms, shall be of no force or effect.\n\n10.5 Severability. In the event that any provision of this Agreement shall be unenforceable or invalid under any applicable law or be so held by applicable court decision, such unenforceability or invalidity shall not render this Agreement unenforceable or invalid as a whole, and, in such event, such provision shall be changed and interpreted so as to best accomplish the objectives of such unenforceable or invalid provision within the limits of applicable law or applicable court decisions.\n\n10.6 Export Regulations / Export Control. Recipient shall not export, either directly or indirectly, any product, service or technical data or system incorporating the Evaluation Materials without first obtaining any required license or other approval from the U.S. Department of Commerce or any other agency or department of the United States Government. In the event any product is exported from the United States or re-exported from a foreign destination by Recipient, Recipient shall ensure that the distribution and export/re-export or import of the product is in compliance with all laws, regulations, orders, or other restrictions of the U.S. Export Administration Regulations and the appropriate foreign government. Recipient agrees that neither it nor any of its subsidiaries will export/re-export any technical data, process, product, or service, directly or indirectly, to any country for which the United States government or any agency thereof or the foreign government from where it is shipping requires an export license, or other governmental approval, without first obtaining such license or approval. Recipient also agrees to implement measures to ensure that foreign national employees are authorized to receive any information controlled by U.S. export control laws. An export is \"deemed\" to take place when information is released to a foreign national wherever located.\n\n10.7 Special Terms for Pre-Release Materials. If so indicated in the description of the Evaluation Software, the Evaluation Software may contain Pre-Release Materials. Recipient hereby understands, acknowledges and agrees that: (i) Pre-Release Materials may not be fully tested and may contain bugs or errors; (ii) Pre-Release materials are not suitable for commercial release in their current state; (iii) regulatory approvals for Pre-Release Materials (such as UL or FCC) have not been obtained, and Pre-Release Materials may therefore not be certified for use in certain countries or environments and (iv) Intel can provide no assurance that it will ever produce or make generally available a production version of the Pre-Release Materials . Intel is not under any obligation to develop and/or release or offer for sale or license a final product based upon the Pre-Release Materials and may unilaterally elect to abandon the Pre-Release Materials or any such development platform at any time and without any obligation or liability whatsoever to Recipient or any other person.\n\n10.8 Open Source Software. In the event Open Source software is included with Evaluation Software, such Open Source software is licensed pursuant to the applicable Open Source software license agreement identified in the Open Source software comments in the applicable source code file(s) and/or file header provided with Evaluation Software. Additional detail may be provided (where applicable) in the accompanying on-line documentation. With respect to the Open Source software, nothing in this Agreement limits any rights under, or grants rights that supersede, the terms of any applicable Open Source software license agreement. ANY PRE-RELEASE MATERIALS ARE NON-QUALIFIED AND, AS SUCH, ARE PROVIDED POSSIBLY WITH FAULTS" ], "mips-android-sysimage-license": [ - "MIPS Technologies, Inc. (“MIPS”) Internal Evaluation License Agreement for MIPS Android™ System Images for Android Software Development Kit (SDK): This Internal Evaluation License Agreement (this \"Agreement\") is entered into by and between MIPS and you (as an individual developer or a legal entity -- identified below as “Recipient”). MIPS shall make the Evaluation Software available to Recipient as described in accordance with the terms and conditions set forth below.\n\nBy clicking on the “Accept” button, downloading, installing, or otherwise using the Evaluation Materials (defined below), you agree to be bound by the terms of this Agreement effective as of the date you click “Accept” (the “Effective Date”), and if doing so on behalf of an entity, you represent that you are authorized to bind the entity to the terms and conditions of this Agreement. If you do not agree to be bound by the terms and conditions of this Agreement, do not download, install, or use the Evaluation Materials.\n\n1. DEFINITIONS. These terms shall have the following meanings:\n\n1.1 “MIPS” shall mean MIPS Technologies, Inc., a Delaware corporation having a principal place of business at: 955 East Arques Ave., Sunnyvale, CA 94085\n\n1.2 “Evaluation Software” shall mean MIPS Android™ emulator system images for Android Software Development Kit (SDK), as made available to Recipient.\n\n1.3 “Evaluation Materials\" means, collectively, the Evaluation Software (in source and/or object code form) and documentation (including, without limitation, any design documents, specifications, reference manuals, and other related materials) related to the Evaluation Software as made available to Recipient.\n\n1.4 “Open Source Software” means any software that requires (as a condition of use, modification and/or distribution of such software) that such software or other software incorporated into, derived from or distributed with such software (a) be disclosed or distributed in source code form; or (b) be licensed by the user to third parties for the purpose of making and/or distributing derivative works; or (c) be redistributable at no charge. Open Source Software includes, without limitation, software licensed or distributed under any of the following licenses or distribution models, or licenses or distribution models substantially similar to any of the following: (a) GNU’s General Public License (GPL) or Lesser/Library GPL (LGPL), (b) the Artistic License (e.g., PERL), (c) the Mozilla Public License, (d) the Netscape Public License, (e) the Sun Community Source License (SCSL), (f) the Sun Industry Source License (SISL), (g) the Apache Software license and (h) the Common Public License (CPL).\n\n1.5 “Pre-Release Materials” means “alpha” or “beta” designated pre-release features, which may not be fully functional, which MIPS may substantially modify in producing any production version of the Evaluation Materials, and/or which is still under development by MIPS and/or MIPS’ suppliers.\n\n2. PURPOSE. MIPS desires to make the Evaluation Materials available to Recipient solely for Recipient's internal evaluation of the Evaluation Software to evaluate the desirability of cooperating with MIPS in developing products that are compatible with the Evaluation Software and/or to advise MIPS as to possible modifications to the Evaluation Software. Recipient may not disclose, distribute, modify (except to facilitate the above-mentioned internal evaluation), or make commercial use of the Evaluation Materials or any modifications of the Evaluation Materials.\n\nTHE EVALUATION MATERIALS ARE PROVIDED FOR EVALUATION PURPOSES ONLY AND MAY NOT BE MODIFIED (EXCEPT TO FACILITATE THE INTERNAL EVALUATION) OR DISTRIBUTED BY RECIPIENT OR INCORPORATED INTO RECIPIENT’S PRODUCTS OR SOFTWARE. PLEASE CONTACT A MIPS SALES REPRESENTATIVE TO LEARN ABOUT THE AVAILABILITY AND COST OF A COMMERCIAL VERSION OF THE EVALUATION SOFTWARE.\n\n3. TITLE. Title to the Evaluation Materials remains with MIPS or its suppliers. Recipient shall not mortgage, pledge or encumber the Evaluation Materials in any way. Recipient shall return all Evaluation Materials, keeping no copies, upon termination or expiration of this Agreement.\n\n4. LICENSE. MIPS grants Recipient a royalty-free, personal, nontransferable, nonexclusive license under its copyrights to use the Evaluation Software only for the purposes described in paragraph 2 above and only for a period beginning on the Effective Date and extending to the first anniversary of the Effective Date (the “Evaluation Period”). Unless otherwise communicated in writing by MIPS to Recipient, to the extent the Evaluation Software is provided in more than one delivery or release (each, a “Release”) the license grant in this Section 4 and the Evaluation Period shall apply to each Release, in which case the Evaluation Period shall begin on the date that the Release is made generally available and continue to the first anniversary of such date. Recipient may not make modifications to the Evaluation Software. Recipient shall not disassemble, reverse-engineer, or decompile any software that is not provided to Recipient in source code form.\n\n\nEXCEPT AS PROVIDED HEREIN, NO OTHER LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY OTHER MIPS INTELLECTUAL PROPERTY RIGHTS IS GRANTED TO THE RECIPIENT. OTHER THAN AS EXPLICITLY SET FORTH IN PARAGRAPH 2 ABOVE, NO RIGHT TO COPY, TO REPRODUCE, TO MODIFY, OR TO CREATE DERIVATIVE WORKS OF, THE EVALUATION MATERIALS IS GRANTED HEREIN.\n\n5. NO OBLIGATION. Recipient shall have no duty to purchase or license any product from MIPS. MIPS and its suppliers shall have no obligation to provide support for, or develop a non-evaluation version of, the Evaluation Software or to license any version of it.\n\n6. MODIFICATIONS. This Agreement does not obligate Recipient to provide MIPS with comments or suggestions regarding Evaluation Materials. However, should Recipient provide MIPS with comments or suggestions for the modification, correction, improvement or enhancement of (a) the Evaluation Materials or (b) MIPS products or processes which may embody the Evaluation Materials, then Recipient agrees to grant and hereby grants to MIPS a non-exclusive, irrevocable, worldwide, fully paid-up, royalty-free license, with the right to sublicense MIPS’ licensees and customers, under Recipient’s Intellectual property rights, to use and disclose such comments and suggestions in any manner MIPS chooses and to display, perform, copy, make, have made, use, sell, offer to sell, import, and otherwise dispose of MIPS’ and its sublicensee’s products embodying such comments and suggestions in any manner and via any media MIPS chooses, without reference to the source.\n\n7. WARRANTY DISCLAIMER. MIPS AND ITS SUPPLIERS MAKE NO WARRANTIES WITH RESPECT TO EVALUATION MATERIALS, EITHER EXPRESS OR IMPLIED, INCLUDING ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, OR ANY IMPLIED WARRANTY OF NONINFRINGEMENT WITH RESPECT TO THIRD PARTY INTELLECTUAL PROPERTY. RECIPIENT ACKNOWLEDGES AND AGREES THAT THE EVALUATION MATERIALS ARE PROVIDED “AS IS,” WITHOUT WARRANTY OF ANY KIND.\n\n8. LIMITATION OF LIABILITY. MIPS AND ITS SUPPLIERS SHALL NOT BE LIABLE FOR ANY PROPERTY DAMAGE, PERSONAL INJURY, LOSS OF PROFITS, INTERRUPTION OF BUSINESS OR FOR ANY DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL OR INCIDENTAL DAMAGES, HOWEVER CAUSED OR ALLEGED, WHETHER FOR BREACH OF WARRANTY, CONTRACT, STRICT LIABILITY OR OTHERWISE, INCLUDING WITHOUT LIMITATION, UNDER TORT OR OTHER LEGAL THEORY. MIPS AND ITS SUPPLIERS DISCLAIM ANY AND ALL LIABILITY, INCLUDING LIABILITY FOR INFRINGEMENT OF ANY INTELLECTUAL PROPERTY RIGHTS OF ANY KIND RELATING TO THE EVALUATION MATERIALS.\n\n9. EXPIRATION. MIPS may terminate this Agreement immediately after a breach by Recipient or otherwise at MIPS’ reasonable discretion and upon five (5) business days’ notice to Recipient.\n\n10. GENERAL.\n\n10.1 Controlling Law. This Agreement shall be governed by California law excluding its choice of law rules. With the exception of MIPS’ rights to enforce its intellectual property rights and any confidentiality obligations under this Agreement or any licenses distributed with the Evaluation Materials, all disputes and any claims arising under or relating to this Agreement shall be subject to the exclusive jurisdiction and venue of the state and federal courts located in Santa Clara County, California. Each party hereby agrees to jurisdiction and venue in the courts set forth in the preceding sentence. The parties agree that the United Nations Convention on Contracts for the International Sale of Goods is specifically excluded from application to this Agreement. The parties consent to the personal jurisdiction of the above courts.\n\n10.2 Remedies. Recipient acknowledges and agrees that any breach of confidentiality obligations under this Agreement or any licenses distributed with the Evaluation Materials, as well as any disclosure, commercialization, or public use of the Evaluation Materials, would cause irreparable injury to MIPS, and therefore Recipient agrees to consent to, and hereby consents to, the grant of an injunction by any court of competent jurisdiction in the event of an actual or threatened breach.\n\n10.3 Assignment. Recipient may not delegate, assign or transfer this Agreement, the license granted or any of Recipient’s rights, obligations, or duties hereunder, expressly, by implication, by operation of law, by way of merger (regardless of whether Recipient is the surviving entity) or acquisition, or otherwise and any attempt to do so, without MIPS’ express prior written consent, shall be ineffective, null and void. MIPS may freely assign this Agreement, and its rights and obligations hereunder, in its sole discretion.\n\n10.4 Entire Agreement. This Agreement constitutes the entire agreement between Recipient and MIPS and supersedes in their entirety any and all oral or written agreements previously existing between Recipient and MIPS with respect to the subject matter hereof. This Agreement may only be amended or supplemented by a writing that refers explicitly to this Agreement and that is signed or otherwise accepted by duly authorized representatives of Recipient and MIPS.\n\n10.5 Severability. In the event that any provision of this Agreement is finally adjudicated to be unenforceable or invalid under any applicable law, such unenforceability or invalidity shall not render this Agreement unenforceable or invalid as a whole, and, in such event, such unenforceable or invalid provision shall be interpreted so as to best accomplish the objectives of such provision within the limits of applicable law or applicable court decisions.\n\n10.6 Export Regulations / Export Control. Recipient shall not export, either directly or indirectly, any product, service or technical data or system incorporating the Evaluation Materials without first obtaining any required license or other necessary approval from the U.S. Department of Commerce or any other governing agency or department of the United States Government. In the event any product is exported from the United States or re-exported from a foreign destination by Recipient, Recipient shall ensure that the distribution and export/re-export or import of the product is in compliance with all applicable laws, regulations, orders, or other restrictions of the U.S. Export Administration Regulations and the appropriate foreign government. Recipient agrees that neither it nor any of its subsidiaries will export/re-export any technical data, process, product, or service, directly or indirectly, to any country for which the United States government or any agency thereof or the foreign government from where it is shipping requires an export license, or other governmental approval, without first obtaining such license or approval. Recipient also agrees to implement measures to ensure that foreign national employees are authorized to receive any information controlled by U.S. export control laws. An export is \"deemed\" to take place when information is released to a foreign national wherever located.\n\n10.7 Special Terms for Pre-Release Materials. If so indicated in the description of the Evaluation Software, the Evaluation Software may contain Pre-Release Materials. Recipient hereby understands, acknowledges and agrees that: (i) Pre-Release Materials may not be fully tested and may contain bugs or errors; (ii) Pre-Release materials are not suitable for commercial release in their current state; (iii) regulatory approvals for Pre-Release Materials (such as UL or FCC) have not been obtained, and Pre-Release Materials may therefore not be certified for use in certain countries or environments or may not be suitable for certain applications and (iv) MIPS can provide no assurance that it will ever produce or make generally available a production version of the Pre-Release Materials . MIPS is not under any obligation to develop and/or release or offer for sale or license a final product based upon the Pre-Release Materials and may unilaterally elect to abandon the Pre-Release Materials or any such development platform at any time and without any obligation or liability whatsoever to Recipient or any other person.\n\nANY PRE-RELEASE MATERIALS ARE NON-QUALIFIED AND, AS SUCH, ARE PROVIDED “AS IS” AND “AS AVAILABLE”, POSSIBLY WITH FAULTS, AND WITHOUT REPRESENTATION OR WARRANTY OF ANY KIND.\n\n10.8 Open Source Software. In the event Open Source software is included with Evaluation Software, such Open Source software is licensed pursuant to the applicable Open Source software license agreement identified in the Open Source software comments in the applicable source code file(s) and/or file header as indicated in the Evaluation Software. Additional detail may be available (where applicable) in the accompanying on-line documentation. With respect to the Open Source software, nothing in this Agreement limits any rights under, or grants rights that supersede, the terms of any applicable Open Source software license agreement.\n" + "MIPS Technologies, Inc. (“MIPS”) Internal Evaluation License Agreement for MIPS Android™ System Images for Android Software Development Kit (SDK): This Internal Evaluation License Agreement (this \"Agreement\") is entered into by and between MIPS and you (as an individual developer or a legal entity -- identified below as “Recipient”). MIPS shall make the Evaluation Software available to Recipient as described in accordance with the terms and conditions set forth below.\n\nBy clicking on the “Accept” button, downloading, installing, or otherwise using the Evaluation Materials (defined below), you agree to be bound by the terms of this Agreement effective as of the date you click “Accept” (the “Effective Date”), and if doing so on behalf of an entity, you represent that you are authorized to bind the entity to the terms and conditions of this Agreement. If you do not agree to be bound by the terms and conditions of this Agreement, do not download, install, or use the Evaluation Materials.\n\n1. DEFINITIONS. These terms shall have the following meanings:\n\n1.1 “MIPS” shall mean MIPS Technologies, Inc., a Delaware corporation having a principal place of business at: 955 East Arques Ave., Sunnyvale, CA 94085\n\n1.2 “Evaluation Software” shall mean MIPS Android™ emulator system images for Android Software Development Kit (SDK), as made available to Recipient.\n\n1.3 “Evaluation Materials\" means, collectively, the Evaluation Software (in source and/or object code form) and documentation (including, without limitation, any design documents, specifications, reference manuals, and other related materials) related to the Evaluation Software as made available to Recipient.\n\n1.4 “Open Source Software” means any software that requires (as a condition of use, modification and/or distribution of such software) that such software or other software incorporated into, derived from or distributed with such software (a) be disclosed or distributed in source code form; or (b) be licensed by the user to third parties for the purpose of making and/or distributing derivative works; or (c) be redistributable at no charge. Open Source Software includes, without limitation, software licensed or distributed under any of the following licenses or distribution models, or licenses or distribution models substantially similar to any of the following: (a) GNU’s General Public License (GPL) or Lesser/Library GPL (LGPL), (b) the Artistic License (e.g., PERL), (c) the Mozilla Public License, (d) the Netscape Public License, (e) the Sun Community Source License (SCSL), (f) the Sun Industry Source License (SISL), (g) the Apache Software license and (h) the Common Public License (CPL).\n\n1.5 “Pre-Release Materials” means “alpha” or “beta” designated pre-release features, which may not be fully functional, which MIPS may substantially modify in producing any production version of the Evaluation Materials, and/or which is still under development by MIPS and/or MIPS’ suppliers.\n\n2. PURPOSE. MIPS desires to make the Evaluation Materials available to Recipient solely for Recipient's internal evaluation of the Evaluation Software to evaluate the desirability of cooperating with MIPS in developing products that are compatible with the Evaluation Software and/or to advise MIPS as to possible modifications to the Evaluation Software. Recipient may not disclose, distribute, modify (except to facilitate the above-mentioned internal evaluation), or make commercial use of the Evaluation Materials or any modifications of the Evaluation Materials.\n\nTHE EVALUATION MATERIALS ARE PROVIDED FOR EVALUATION PURPOSES ONLY AND MAY NOT BE MODIFIED (EXCEPT TO FACILITATE THE INTERNAL EVALUATION) OR DISTRIBUTED BY RECIPIENT OR INCORPORATED INTO RECIPIENT’S PRODUCTS OR SOFTWARE. PLEASE CONTACT A MIPS SALES REPRESENTATIVE TO LEARN ABOUT THE AVAILABILITY AND COST OF A COMMERCIAL VERSION OF THE EVALUATION SOFTWARE.\n\n3. TITLE. Title to the Evaluation Materials remains with MIPS or its suppliers. Recipient shall not mortgage, pledge or encumber the Evaluation Materials in any way. Recipient shall return all Evaluation Materials, keeping no copies, upon termination or expiration of this Agreement.\n\n4. LICENSE. MIPS grants Recipient a royalty-free, personal, nontransferable, nonexclusive license under its copyrights to use the Evaluation Software only for the purposes described in paragraph 2 above and only for a period beginning on the Effective Date and extending to the first anniversary of the Effective Date (the “Evaluation Period”). Unless otherwise communicated in writing by MIPS to Recipient, to the extent the Evaluation Software is provided in more than one delivery or release (each, a “Release”) the license grant in this Section 4 and the Evaluation Period shall apply to each Release, in which case the Evaluation Period shall begin on the date that the Release is made generally available and continue to the first anniversary of such date. Recipient may not make modifications to the Evaluation Software. Recipient shall not disassemble, reverse-engineer, or decompile any software that is not provided to Recipient in source code form.\n\n\nEXCEPT AS PROVIDED HEREIN, NO OTHER LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY OTHER MIPS INTELLECTUAL PROPERTY RIGHTS IS GRANTED TO THE RECIPIENT. OTHER THAN AS EXPLICITLY SET FORTH IN PARAGRAPH 2 ABOVE, NO RIGHT TO COPY, TO REPRODUCE, TO MODIFY, OR TO CREATE DERIVATIVE WORKS OF, THE EVALUATION MATERIALS IS GRANTED HEREIN.\n\n5. NO OBLIGATION. Recipient shall have no duty to purchase or license any product from MIPS. MIPS and its suppliers shall have no obligation to provide support for, or develop a non-evaluation version of, the Evaluation Software or to license any version of it.\n\n6. MODIFICATIONS. This Agreement does not obligate Recipient to provide MIPS with comments or suggestions regarding Evaluation Materials. However, should Recipient provide MIPS with comments or suggestions for the modification, correction, improvement or enhancement of (a) the Evaluation Materials or (b) MIPS products or processes which may embody the Evaluation Materials, then Recipient agrees to grant and hereby grants to MIPS a non-exclusive, irrevocable, worldwide, fully paid-up, royalty-free license, with the right to sublicense MIPS’ licensees and customers, under Recipient’s Intellectual property rights, to use and disclose such comments and suggestions in any manner MIPS chooses and to display, perform, copy, make, have made, use, sell, offer to sell, import, and otherwise dispose of MIPS’ and its sublicensee’s products embodying such comments and suggestions in any manner and via any media MIPS chooses, without reference to the source.\n\n7. WARRANTY DISCLAIMER. MIPS AND ITS SUPPLIERS MAKE NO WARRANTIES WITH RESPECT TO EVALUATION MATERIALS, EITHER EXPRESS OR IMPLIED, INCLUDING ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, OR ANY IMPLIED WARRANTY OF NONINFRINGEMENT WITH RESPECT TO THIRD PARTY INTELLECTUAL PROPERTY. RECIPIENT ACKNOWLEDGES AND AGREES THAT THE EVALUATION MATERIALS ARE PROVIDED “AS IS,” WITHOUT WARRANTY OF ANY KIND.\n\n8. LIMITATION OF LIABILITY. MIPS AND ITS SUPPLIERS SHALL NOT BE LIABLE FOR ANY PROPERTY DAMAGE, PERSONAL INJURY, LOSS OF PROFITS, INTERRUPTION OF BUSINESS OR FOR ANY DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL OR INCIDENTAL DAMAGES, HOWEVER CAUSED OR ALLEGED, WHETHER FOR BREACH OF WARRANTY, CONTRACT, STRICT LIABILITY OR OTHERWISE, INCLUDING WITHOUT LIMITATION, UNDER TORT OR OTHER LEGAL THEORY. MIPS AND ITS SUPPLIERS DISCLAIM ANY AND ALL LIABILITY, INCLUDING LIABILITY FOR INFRINGEMENT OF ANY INTELLECTUAL PROPERTY RIGHTS OF ANY KIND RELATING TO THE EVALUATION MATERIALS.\n\n9. EXPIRATION. MIPS may terminate this Agreement immediately after a breach by Recipient or otherwise at MIPS’ reasonable discretion and upon five (5) business days’ notice to Recipient.\n\n10. GENERAL.\n\n10.1 Controlling Law. This Agreement shall be governed by California law excluding its choice of law rules. With the exception of MIPS’ rights to enforce its intellectual property rights and any confidentiality obligations under this Agreement or any licenses distributed with the Evaluation Materials, all disputes and any claims arising under or relating to this Agreement shall be subject to the exclusive jurisdiction and venue of the state and federal courts located in Santa Clara County, California. Each party hereby agrees to jurisdiction and venue in the courts set forth in the preceding sentence. The parties agree that the United Nations Convention on Contracts for the International Sale of Goods is specifically excluded from application to this Agreement. The parties consent to the personal jurisdiction of the above courts.\n\n10.2 Remedies. Recipient acknowledges and agrees that any breach of confidentiality obligations under this Agreement or any licenses distributed with the Evaluation Materials, as well as any disclosure, commercialization, or public use of the Evaluation Materials, would cause irreparable injury to MIPS, and therefore Recipient agrees to consent to, and hereby consents to, the grant of an injunction by any court of competent jurisdiction in the event of an actual or threatened breach.\n\n10.3 Assignment. Recipient may not delegate, assign or transfer this Agreement, the license granted or any of Recipient’s rights, obligations, or duties hereunder, expressly, by implication, by operation of law, by way of merger (regardless of whether Recipient is the surviving entity) or acquisition, or otherwise and any attempt to do so, without MIPS’ express prior written consent, shall be ineffective, null and void. MIPS may freely assign this Agreement, and its rights and obligations hereunder, in its sole discretion.\n\n10.4 Entire Agreement. This Agreement constitutes the entire agreement between Recipient and MIPS and supersedes in their entirety any and all oral or written agreements previously existing between Recipient and MIPS with respect to the subject matter hereof. This Agreement may only be amended or supplemented by a writing that refers explicitly to this Agreement and that is signed or otherwise accepted by duly authorized representatives of Recipient and MIPS.\n\n10.5 Severability. In the event that any provision of this Agreement is finally adjudicated to be unenforceable or invalid under any applicable law, such unenforceability or invalidity shall not render this Agreement unenforceable or invalid as a whole, and, in such event, such unenforceable or invalid provision shall be interpreted so as to best accomplish the objectives of such provision within the limits of applicable law or applicable court decisions.\n\n10.6 Export Regulations / Export Control. Recipient shall not export, either directly or indirectly, any product, service or technical data or system incorporating the Evaluation Materials without first obtaining any required license or other necessary approval from the U.S. Department of Commerce or any other governing agency or department of the United States Government. In the event any product is exported from the United States or re-exported from a foreign destination by Recipient, Recipient shall ensure that the distribution and export/re-export or import of the product is in compliance with all applicable laws, regulations, orders, or other restrictions of the U.S. Export Administration Regulations and the appropriate foreign government. Recipient agrees that neither it nor any of its subsidiaries will export/re-export any technical data, process, product, or service, directly or indirectly, to any country for which the United States government or any agency thereof or the foreign government from where it is shipping requires an export license, or other governmental approval, without first obtaining such license or approval. Recipient also agrees to implement measures to ensure that foreign national employees are authorized to receive any information controlled by U.S. export control laws. An export is \"deemed\" to take place when information is released to a foreign national wherever located.\n\n10.7 Special Terms for Pre-Release Materials. If so indicated in the description of the Evaluation Software, the Evaluation Software may contain Pre-Release Materials. Recipient hereby understands, acknowledges and agrees that: (i) Pre-Release Materials may not be fully tested and may contain bugs or errors; (ii) Pre-Release materials are not suitable for commercial release in their current state; (iii) regulatory approvals for Pre-Release Materials (such as UL or FCC) have not been obtained, and Pre-Release Materials may therefore not be certified for use in certain countries or environments or may not be suitable for certain applications and (iv) MIPS can provide no assurance that it will ever produce or make generally available a production version of the Pre-Release Materials . MIPS is not under any obligation to develop and/or release or offer for sale or license a final product based upon the Pre-Release Materials and may unilaterally elect to abandon the Pre-Release Materials or any such development platform at any time and without any obligation or liability whatsoever to Recipient or any other person.\n\nANY PRE-RELEASE MATERIALS ARE NON-QUALIFIED AND, AS SUCH, ARE PROVIDED “AS IS” AND “AS AVAILABLE”, POSSIBLY WITH FAULTS, AND WITHOUT REPRESENTATION OR WARRANTY OF ANY KIND.\n\n10.8 Open Source Software. In the event Open Source software is included with Evaluation Software, such Open Source software is licensed pursuant to the applicable Open Source software license agreement identified in the Open Source software comments in the applicable source code file(s) and/or file header as indicated in the Evaluation Software. Additional detail may be available (where applicable) in the accompanying on-line documentation. With respect to the Open Source software, nothing in this Agreement limits any rights under, or grants rights that supersede, the terms of any applicable Open Source software license agreement." ] }, "packages": { @@ -3413,6 +4974,33 @@ "name": "build-tools", "path": "build-tools/33.0.0", "revision": "33.0.0" + }, + "33.0.1": { + "archives": [ + { + "os": "linux", + "sha1": "fefb393b82814feb94f88147827cbc918cf992b0", + "size": 56003178, + "url": "https://dl.google.com/android/repository/build-tools_r33.0.1-linux.zip" + }, + { + "os": "macosx", + "sha1": "d091bee94295480891ca679e7b2004fe6198d05f", + "size": 60027237, + "url": "https://dl.google.com/android/repository/build-tools_r33.0.1-macosx.zip" + }, + { + "os": "windows", + "sha1": "710918f38f8fa7595320f4d29db5910770993f63", + "size": 55631116, + "url": "https://dl.google.com/android/repository/build-tools_r33.0.1-windows.zip" + } + ], + "displayName": "Android SDK Build-Tools 33.0.1", + "license": "android-sdk-license", + "name": "build-tools", + "path": "build-tools/33.0.1", + "revision": "33.0.1" } }, "cmake": { @@ -3492,7 +5080,7 @@ } ], "displayName": "CMake 3.22.1", - "license": "android-sdk-preview-license", + "license": "android-sdk-license", "name": "cmake", "path": "cmake/3.22.1", "revision": "3.22.1" @@ -3741,119 +5329,119 @@ "name": "cmdline-tools", "path": "cmdline-tools/7.0", "revision": "7.0" - } - }, - "emulator": { - "31.2.10": { + }, + "8.0": { "archives": [ { "os": "linux", - "sha1": "1f2c3ddeb2c9ac4feef5946098a0a710d08e9c6d", - "size": 276337904, - "url": "https://dl.google.com/android/repository/emulator-linux_x64-8420304.zip" - }, - { - "os": "windows", - "sha1": "206491b5c4e531b2c66dc80402702b9fa1a64c2a", - "size": 345300871, - "url": "https://dl.google.com/android/repository/emulator-windows_x64-8420304.zip" + "sha1": "09b65ebc5aa9c5011fec9416d22711ce7ffc2260", + "size": 120916547, + "url": "https://dl.google.com/android/repository/commandlinetools-linux-9123335_latest.zip" }, { "os": "macosx", - "sha1": "677b6a00c145eb8bf4306daeb2231c8efd507177", - "size": 313876814, - "url": "https://dl.google.com/android/repository/emulator-darwin_x64-8420304.zip" + "sha1": "089eedfc62371040f9e027835d5114178fc0e658", + "size": 120916533, + "url": "https://dl.google.com/android/repository/commandlinetools-mac-9123335_latest.zip" + }, + { + "os": "windows", + "sha1": "d1511ce5b61e5988b3de4b83062f0a570671074f", + "size": 120895407, + "url": "https://dl.google.com/android/repository/commandlinetools-win-9123335_latest.zip" + } + ], + "displayName": "Android SDK Command-line Tools", + "license": "android-sdk-license", + "name": "cmdline-tools", + "path": "cmdline-tools/8.0", + "revision": "8.0" + } + }, + "emulator": { + "31.3.10": { + "archives": [ + { + "os": "macosx", + "sha1": "4a35a2702f9138653cd1b67d04e01ffa65fb37bc", + "size": 347308456, + "url": "https://dl.google.com/android/repository/emulator-darwin_x64-8807927.zip" + }, + { + "os": "linux", + "sha1": "43df6ed553b89e1553d588251526aae8f79da214", + "size": 293822881, + "url": "https://dl.google.com/android/repository/emulator-linux_x64-8807927.zip" + }, + { + "os": "windows", + "sha1": "52f8bfa4a09074e607d393302fe8a627846a18e9", + "size": 380246403, + "url": "https://dl.google.com/android/repository/emulator-windows_x64-8807927.zip" } ], "displayName": "Android Emulator", "license": "android-sdk-license", "name": "emulator", "path": "emulator", - "revision": "31.2.10" + "revision": "31.3.10" }, - "31.3.8": { + "31.3.14": { "archives": [ - { - "os": "macosx", - "sha1": "7214e8384c97a7c9875142149d3bf9c940e9b5a0", - "size": 347222379, - "url": "https://dl.google.com/android/repository/emulator-darwin_x64-8598121.zip" - }, { "os": "linux", - "sha1": "0f781977a6cc5377b64444121ff75a513841a4fa", - "size": 293782881, - "url": "https://dl.google.com/android/repository/emulator-linux_x64-8598121.zip" + "sha1": "b5ab96ebffc6ea6816a5b0e9474859463b21ab78", + "size": 293826836, + "url": "https://dl.google.com/android/repository/emulator-linux_x64-9322596.zip" }, { "os": "windows", - "sha1": "b4f30bad4e68da41cc9bd44965259b2111a011a1", - "size": 380151866, - "url": "https://dl.google.com/android/repository/emulator-windows_x64-8598121.zip" + "sha1": "632eba430f67abeddcf15ceb0a872b25fdbb7e62", + "size": 381130167, + "url": "https://dl.google.com/android/repository/emulator-windows_x64-9322596.zip" + }, + { + "os": "macosx", + "sha1": "00e8685beffbe19f803cd5d698fbe6406b5ee6f3", + "size": 347313356, + "url": "https://dl.google.com/android/repository/emulator-darwin_x64-9322596.zip" + } + ], + "displayName": "Android Emulator", + "license": "android-sdk-license", + "name": "emulator", + "path": "emulator", + "revision": "31.3.14" + }, + "32.1.8": { + "archives": [ + { + "os": "macosx", + "sha1": "13cadd038b401fdfa04e4af153a7f696ccd422cc", + "size": 309314692, + "url": "https://dl.google.com/android/repository/emulator-darwin_x64-9310560.zip" + }, + { + "os": "linux", + "sha1": "7d82689a73aacdd56684d7134dc88cc3537fb911", + "size": 270158359, + "url": "https://dl.google.com/android/repository/emulator-linux_x64-9310560.zip" + }, + { + "os": "windows", + "sha1": "8324aeb3bd74a214978252c51574b40cdb56b4ba", + "size": 333001267, + "url": "https://dl.google.com/android/repository/emulator-windows_x64-9310560.zip" } ], "displayName": "Android Emulator", "license": "android-sdk-preview-license", "name": "emulator", "path": "emulator", - "revision": "31.3.8" - }, - "31.3.9": { - "archives": [ - { - "os": "macosx", - "sha1": "6e7b549113252728cfe0992d58e8cb1790dce9d6", - "size": 347241742, - "url": "https://dl.google.com/android/repository/emulator-darwin_x64-8700579.zip" - }, - { - "os": "linux", - "sha1": "1c1a7ef65476d3de34f19455a0093cb68e8e90f7", - "size": 293801439, - "url": "https://dl.google.com/android/repository/emulator-linux_x64-8700579.zip" - }, - { - "os": "windows", - "sha1": "ea834211b199a7fcf6b6758a53c4594d01b44ab9", - "size": 380168712, - "url": "https://dl.google.com/android/repository/emulator-windows_x64-8700579.zip" - } - ], - "displayName": "Android Emulator", - "license": "android-sdk-license", - "name": "emulator", - "path": "emulator", - "revision": "31.3.9" + "revision": "32.1.8" } }, "extras": { - "1.1": { - "archives": [ - { - "os": "linux", - "sha1": "18632007ecb843b4fc69babd521a9b061868534b", - "size": 1307393, - "url": "https://dl.google.com/android/repository/desktop-head-unit-linux_r01.1.zip" - }, - { - "os": "macosx", - "sha1": "ccb64105888ba61ab06f20ad1ba97c71d440a421", - "size": 2299061, - "url": "https://dl.google.com/android/repository/desktop-head-unit-macosx_r01.1.zip" - }, - { - "os": "windows", - "sha1": "f26d80a84020b40e24f8a99873dea6a9c7978f10", - "size": 2615480, - "url": "https://dl.google.com/android/repository/desktop-head-unit-windows_r01.1.zip" - } - ], - "displayName": "Android Auto Desktop Head Unit Emulator", - "license": "android-sdk-license", - "name": "extras", - "path": "extras/google/auto", - "revision": "1.1" - }, "2.0": { "archives": [ { @@ -3880,6 +5468,33 @@ "name": "extras", "path": "extras/google/auto", "revision": "2.0" + }, + "2.1": { + "archives": [ + { + "os": "macosx", + "sha1": "4f8a3d3e32b27de1fc190d149039842e76a55bdd", + "size": 7797329, + "url": "https://dl.google.com/android/repository/desktop-head-unit-darwin-x64_r02.1.zip" + }, + { + "os": "linux", + "sha1": "5d87eb87a1421e59d528eac1f5cdd406c0b39f51", + "size": 6927985, + "url": "https://dl.google.com/android/repository/desktop-head-unit-linux-x64_r02.1.zip" + }, + { + "os": "windows", + "sha1": "c27bf84e59dda7b79315b6ca2a314063feffd6ac", + "size": 7012059, + "url": "https://dl.google.com/android/repository/desktop-head-unit-windows-x64_r02.1.zip" + } + ], + "displayName": "Android Auto Desktop Head Unit Emulator", + "license": "android-sdk-license", + "name": "extras", + "path": "extras/google/auto", + "revision": "2.1" } }, "ndk": { @@ -4908,6 +6523,60 @@ "name": "ndk", "path": "ndk/25.0.8528842", "revision": "25.0.8528842-rc4" + }, + "25.0.8775105": { + "archives": [ + { + "os": "macosx", + "sha1": "8c54514c62f635dbbc161e30e21f16bcd22526df", + "size": 716557039, + "url": "https://dl.google.com/android/repository/android-ndk-r25-darwin.zip" + }, + { + "os": "linux", + "sha1": "9fce956edb6abd5aca42acf6bbfb21a90a67f75b", + "size": 530938532, + "url": "https://dl.google.com/android/repository/android-ndk-r25-linux.zip" + }, + { + "os": "windows", + "sha1": "1da93e7da5803dd8ef47e9283ec2c7b98d34b8da", + "size": 467387858, + "url": "https://dl.google.com/android/repository/android-ndk-r25-windows.zip" + } + ], + "displayName": "NDK (Side by side) 25.0.8775105", + "license": "android-sdk-license", + "name": "ndk", + "path": "ndk/25.0.8775105", + "revision": "25.0.8775105" + }, + "25.1.8937393": { + "archives": [ + { + "os": "macosx", + "sha1": "248f96de6713cbec8707ee2262d3cf08d14d9fde", + "size": 716592117, + "url": "https://dl.google.com/android/repository/android-ndk-r25b-darwin.zip" + }, + { + "os": "linux", + "sha1": "e27dcb9c8bcaa77b78ff68c3f23abcf6867959eb", + "size": 530975885, + "url": "https://dl.google.com/android/repository/android-ndk-r25b-linux.zip" + }, + { + "os": "windows", + "sha1": "b2e9b5ab2e1434a65ffd85780891878cf5c6fd92", + "size": 467422601, + "url": "https://dl.google.com/android/repository/android-ndk-r25b-windows.zip" + } + ], + "displayName": "NDK (Side by side) 25.1.8937393", + "license": "android-sdk-license", + "name": "ndk", + "path": "ndk/25.1.8937393", + "revision": "25.1.8937393" } }, "ndk-bundle": { @@ -5605,32 +7274,32 @@ } }, "platform-tools": { - "33.0.2": { + "33.0.3": { "archives": [ { "os": "macosx", - "sha1": "9b5661e0c18a2e5b6935e2b96bcc7be580cd6dcd", - "size": 13038676, - "url": "https://dl.google.com/android/repository/platform-tools_r33.0.2-darwin.zip" + "sha1": "250da3216e4c93ccd2612dcec0b64c2668354b09", + "size": 12767128, + "url": "https://dl.google.com/android/repository/platform-tools_r33.0.3-darwin.zip" }, { "os": "linux", - "sha1": "6bf4f747ad929b02378b44ce083b4502d26109c7", - "size": 7406632, - "url": "https://dl.google.com/android/repository/platform-tools_r33.0.2-linux.zip" + "sha1": "deb43a0f9eaccd16a47937367ef3b53db3db8d10", + "size": 7505569, + "url": "https://dl.google.com/android/repository/platform-tools_r33.0.3-linux.zip" }, { "os": "windows", - "sha1": "2d7599f59b54f02c4ecd33d656091a3c1e55ad9c", - "size": 6304111, - "url": "https://dl.google.com/android/repository/platform-tools_r33.0.2-windows.zip" + "sha1": "6028a80149c0ccde2db22d69e7fe84a352d852a2", + "size": 5642796, + "url": "https://dl.google.com/android/repository/platform-tools_r33.0.3-windows.zip" } ], "displayName": "Android SDK Platform-Tools", "license": "android-sdk-license", "name": "platform-tools", "path": "platform-tools", - "revision": "33.0.2" + "revision": "33.0.3" } }, "platforms": { @@ -6037,9 +7706,9 @@ "archives": [ { "os": "all", - "sha1": "298f5800e37f3c089ab0eb58d4f6aef4058b689b", - "size": 67324871, - "url": "https://dl.google.com/android/repository/platform-33_r01.zip" + "sha1": "eef99bd4617e80da85187a183eba356d787100d9", + "size": 67334130, + "url": "https://dl.google.com/android/repository/platform-33_r02.zip" } ], "displayName": "Android SDK Platform 33", @@ -6178,9 +7847,9 @@ "archives": [ { "os": "all", - "sha1": "8dd74a564f71c8381f5230682c5da291d230cc81", - "size": 67918949, - "url": "https://dl.google.com/android/repository/platform-TiramisuPrivacySandbox_r03.zip" + "sha1": "07f3eb84b8f237e61744967d7aee1225efba25e6", + "size": 67975400, + "url": "https://dl.google.com/android/repository/platform-TiramisuPrivacySandbox_r08.zip" } ], "displayName": "Android SDK Platform TiramisuPrivacySandbox", @@ -6558,6 +8227,21 @@ "name": "sources", "path": "sources/android-32", "revision": "32" + }, + "33": { + "archives": [ + { + "os": "all", + "sha1": "dd9819363bb213e378bb9d84b4c5fe8d8091c219", + "size": 49205616, + "url": "https://dl.google.com/android/repository/sources-33_r01.zip" + } + ], + "displayName": "Sources for Android 33", + "license": "android-sdk-license", + "name": "sources", + "path": "sources/android-33", + "revision": "33" } }, "tools": { From 6fd11aec999cc694c7706be382140f06a29d396c Mon Sep 17 00:00:00 2001 From: Hadi Date: Mon, 26 Dec 2022 11:21:07 -0500 Subject: [PATCH 62/76] androidenv: Fix system image download url for default type --- pkgs/development/mobile/androidenv/mkrepo.rb | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/development/mobile/androidenv/mkrepo.rb b/pkgs/development/mobile/androidenv/mkrepo.rb index 208a544c90f6..c50f73c2f92e 100644 --- a/pkgs/development/mobile/androidenv/mkrepo.rb +++ b/pkgs/development/mobile/androidenv/mkrepo.rb @@ -17,6 +17,9 @@ end # Returns a system image URL for a given system image name. def image_url value, dir + if dir == "default" + dir = "android" + end if value && value.start_with?('http') value elsif value From 4dab14dd3879bb233d79a29aaee73742777cfc5d Mon Sep 17 00:00:00 2001 From: AndersonTorres Date: Fri, 30 Dec 2022 10:46:11 -0300 Subject: [PATCH 63/76] txr: 280 -> 283 --- pkgs/tools/misc/txr/default.nix | 49 ------------------------- pkgs/tools/text/txr/default.nix | 65 +++++++++++++++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 +- 3 files changed, 66 insertions(+), 50 deletions(-) delete mode 100644 pkgs/tools/misc/txr/default.nix create mode 100644 pkgs/tools/text/txr/default.nix diff --git a/pkgs/tools/misc/txr/default.nix b/pkgs/tools/misc/txr/default.nix deleted file mode 100644 index 41b30f5f4a21..000000000000 --- a/pkgs/tools/misc/txr/default.nix +++ /dev/null @@ -1,49 +0,0 @@ -{ lib, stdenv, fetchurl, libffi, coreutils }: - -stdenv.mkDerivation rec { - pname = "txr"; - version = "280"; - - src = fetchurl { - url = "http://www.kylheku.com/cgit/txr/snapshot/${pname}-${version}.tar.bz2"; - sha256 = "sha256-1iqWerUehLFPM63ZjJYY6xo9oHoNK7ne/a6M3+4L4so="; - }; - - buildInputs = [ libffi ]; - - enableParallelBuilding = true; - - doCheck = true; - checkTarget = "tests"; - - postPatch = '' - # Fixup references to /usr/bin in tests - substituteInPlace tests/017/realpath.tl --replace /usr/bin /bin - substituteInPlace tests/017/realpath.expected --replace /usr/bin /bin - - substituteInPlace tests/018/process.tl --replace /usr/bin/env ${lib.getBin coreutils}/bin/env - ''; - - # Remove failing tests -- 018/chmod tries setting sticky bit - preCheck = "rm -rf tests/018/chmod*"; - - postInstall = '' - d=$out/share/vim-plugins/txr - mkdir -p $d/{syntax,ftdetect} - - cp {tl,txr}.vim $d/syntax/ - - cat > $d/ftdetect/txr.vim < $out/share/vim-plugins/txr/ftdetect/txr.vim < Date: Sat, 15 Oct 2022 22:40:34 +0200 Subject: [PATCH 64/76] nixos/garage: provide multiple versions to provide an upgrade path when using NixOS service MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add mention to release notes 23.05 - Introduce Garage v0.8 - Protect against unexpected upgrade with stateVersion - Test matrix over 0.7 × 0.8 --- .../from_md/release-notes/rl-2305.section.xml | 15 ++ .../manual/release-notes/rl-2305.section.md | 2 + .../services/web-servers/garage-doc.xml | 139 ++++++++++++++++++ nixos/modules/services/web-servers/garage.nix | 13 +- nixos/tests/all-tests.nix | 2 +- nixos/tests/garage/basic.nix | 98 ++++++++++++ nixos/tests/garage/default.nix | 54 +++++++ .../with-3node-replication.nix} | 58 +------- pkgs/tools/filesystems/garage/default.nix | 122 +++++++++------ pkgs/top-level/all-packages.nix | 7 +- 10 files changed, 409 insertions(+), 101 deletions(-) create mode 100644 nixos/modules/services/web-servers/garage-doc.xml create mode 100644 nixos/tests/garage/basic.nix create mode 100644 nixos/tests/garage/default.nix rename nixos/tests/{garage.nix => garage/with-3node-replication.nix} (74%) diff --git a/nixos/doc/manual/from_md/release-notes/rl-2305.section.xml b/nixos/doc/manual/from_md/release-notes/rl-2305.section.xml index 83fa2b94641b..2d68e7f5426f 100644 --- a/nixos/doc/manual/from_md/release-notes/rl-2305.section.xml +++ b/nixos/doc/manual/from_md/release-notes/rl-2305.section.xml @@ -407,6 +407,21 @@ here. + + + Garage + version is based on + system.stateVersion, + existing installations will keep using version 0.7. New + installations will use version 0.8. In order to upgrade a + Garage cluster, please follow + upstream + instructions and force + services.garage.package + or upgrade accordingly + system.stateVersion. + + Resilio sync secret keys can now be provided using a secrets diff --git a/nixos/doc/manual/release-notes/rl-2305.section.md b/nixos/doc/manual/release-notes/rl-2305.section.md index 16c1e15052f3..d960ab03faae 100644 --- a/nixos/doc/manual/release-notes/rl-2305.section.md +++ b/nixos/doc/manual/release-notes/rl-2305.section.md @@ -111,6 +111,8 @@ In addition to numerous new and upgraded packages, this release has the followin - A new option `recommendedBrotliSettings` has been added to `services.nginx`. Learn more about compression in Brotli format [here](https://github.com/google/ngx_brotli/blob/master/README.md). +- [Garage](https://garagehq.deuxfleurs.fr/) version is based on [system.stateVersion](options.html#opt-system.stateVersion), existing installations will keep using version 0.7. New installations will use version 0.8. In order to upgrade a Garage cluster, please follow [upstream instructions](https://garagehq.deuxfleurs.fr/documentation/cookbook/upgrading/) and force [services.garage.package](options.html#opt-services.garage.package) or upgrade accordingly [system.stateVersion](options.html#opt-system.stateVersion). + - Resilio sync secret keys can now be provided using a secrets file at runtime, preventing these secrets from ending up in the Nix store. - The `firewall` and `nat` module now has a nftables based implementation. Enable `networking.nftables` to use it. diff --git a/nixos/modules/services/web-servers/garage-doc.xml b/nixos/modules/services/web-servers/garage-doc.xml new file mode 100644 index 000000000000..16f6fde94b5a --- /dev/null +++ b/nixos/modules/services/web-servers/garage-doc.xml @@ -0,0 +1,139 @@ + + Garage + + Garage + is an open-source, self-hostable S3 store, simpler than MinIO, for geodistributed stores. + The server setup can be automated using + services.garage. A + client configured to your local Garage instance is available in + the global environment as garage-manage. + + + The current default by NixOS is garage_0_8 which is also the latest + major version available. + +
+ General considerations on upgrades + + + Garage provides a cookbook documentation on how to upgrade: + https://garagehq.deuxfleurs.fr/documentation/cookbook/upgrading/ + + + + Garage has two types of upgrades: patch-level upgrades and minor/major version upgrades. + + In all cases, you should read the changelog and ideally test the upgrade on a staging cluster. + + Checking the health of your cluster can be achieved using garage-manage repair. + + + + + Until 1.0 is released, patch-level upgrades are considered as minor version upgrades. + Minor version upgrades are considered as major version upgrades. + i.e. 0.6 to 0.7 is a major version upgrade. + + + + + + Straightforward upgrades (patch-level upgrades) + + Upgrades must be performed one by one, i.e. for each node, stop it, upgrade it : change stateVersion or services.garage.package, restart it if it was not already by switching. + + + + + + + Multiple version upgrades + + Garage do not provide any guarantee on moving more than one major-version forward. + E.g., if you're on 0.7, you cannot upgrade to 0.9. + You need to upgrade to 0.8 first. + + As long as stateVersion is declared properly, + this is enforced automatically. The module will issue a warning to remind the user to upgrade to latest + Garage after that deploy. + + + + +
+ +
+ Advanced upgrades (minor/major version upgrades) + Here are some baseline instructions to handle advanced upgrades in Garage, when in doubt, please refer to upstream instructions. + + + Disable API and web access to Garage. + Perform garage-manage repair --all-nodes --yes tables and garage-manage repair --all-nodes --yes blocks. + Verify the resulting logs and check that data is synced properly between all nodes. + If you have time, do additional checks (scrub, block_refs, etc.). + Check if queues are empty by garage-manage stats or through monitoring tools. + Run systemctl stop garage to stop the actual Garage version. + Backup the metadata folder of ALL your nodes, e.g. for a metadata directory (the default one) in /var/lib/garage/meta, + you can run pushd /var/lib/garage; tar -acf meta-v0.7.tar.zst meta/; popd. + Run the offline migration: nix-shell -p garage_0_8 --run "garage offline-repair --yes", this can take some time depending on how many objects are stored in your cluster. + Bump Garage version in your NixOS configuration, either by changing stateVersion or bumping services.garage.package, this should restart Garage automatically. + Perform garage-manage repair --all-nodes --yes tables and garage-manage repair --all-nodes --yes blocks. + Wait for a full table sync to run. + + + + Your upgraded cluster should be in a working state, re-enable API and web access. + +
+ +
+ Maintainer information + + + As stated in the previous paragraph, we must provide a clean upgrade-path for Garage + since it cannot move more than one major version forward on a single upgrade. This chapter + adds some notes how Garage updates should be rolled out in the future. + + This is inspired from how Nextcloud does it. + + + + While patch-level updates are no problem and can be done directly in the + package-expression (and should be backported to supported stable branches after that), + major-releases should be added in a new attribute (e.g. Garage v0.8.0 + should be available in nixpkgs as pkgs.garage_0_8_0). + To provide simple upgrade paths it's generally useful to backport those as well to stable + branches. As long as the package-default isn't altered, this won't break existing setups. + After that, the versioning-warning in the garage-module should be + updated to make sure that the + package-option selects the latest version + on fresh setups. + + + + If major-releases will be abandoned by upstream, we should check first if those are needed + in NixOS for a safe upgrade-path before removing those. In that case we shold keep those + packages, but mark them as insecure in an expression like this (in + <nixpkgs/pkgs/tools/filesystem/garage/default.nix>): +/* ... */ +{ + garage_0_7_3 = generic { + version = "0.7.3"; + sha256 = "0000000000000000000000000000000000000000000000000000"; + eol = true; + }; +} + + + + Ideally we should make sure that it's possible to jump two NixOS versions forward: + i.e. the warnings and the logic in the module should guard a user to upgrade from a + Garage on e.g. 22.11 to a Garage on 23.11. + +
+ +
diff --git a/nixos/modules/services/web-servers/garage.nix b/nixos/modules/services/web-servers/garage.nix index 76ab273483eb..d66bcd731508 100644 --- a/nixos/modules/services/web-servers/garage.nix +++ b/nixos/modules/services/web-servers/garage.nix @@ -8,7 +8,10 @@ let configFile = toml.generate "garage.toml" cfg.settings; in { - meta.maintainers = [ maintainers.raitobezarius ]; + meta = { + doc = ./garage-doc.xml; + maintainers = with pkgs.lib.maintainers; [ raitobezarius ]; + }; options.services.garage = { enable = mkEnableOption (lib.mdDoc "Garage Object Storage (S3 compatible)"); @@ -56,10 +59,12 @@ in }; package = mkOption { - default = pkgs.garage; - defaultText = literalExpression "pkgs.garage"; + # TODO: when 23.05 is released and if Garage 0.9 is the default, put a stateVersion check. + default = if versionAtLeast stateVersion "23.05" then pkgs.garage_0_8_0 + else pkgs.garage_0_7; + defaultText = literalExpression "pkgs.garage_0_7"; type = types.package; - description = lib.mdDoc "Garage package to use."; + description = lib.mdDoc "Garage package to use, if you are upgrading from a major version, please read NixOS and Garage release notes for upgrade instructions."; }; }; diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 661145afb74c..9fe1bd9e38f5 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -229,7 +229,7 @@ in { fsck = handleTest ./fsck.nix {}; ft2-clone = handleTest ./ft2-clone.nix {}; mimir = handleTest ./mimir.nix {}; - garage = handleTest ./garage.nix {}; + garage = handleTest ./garage {}; gerrit = handleTest ./gerrit.nix {}; geth = handleTest ./geth.nix {}; ghostunnel = handleTest ./ghostunnel.nix {}; diff --git a/nixos/tests/garage/basic.nix b/nixos/tests/garage/basic.nix new file mode 100644 index 000000000000..b6df1e72af98 --- /dev/null +++ b/nixos/tests/garage/basic.nix @@ -0,0 +1,98 @@ +args@{ mkNode, ... }: +(import ../make-test-python.nix ({ pkgs, ...} : { + name = "garage-basic"; + meta = { + maintainers = with pkgs.lib.maintainers; [ raitobezarius ]; + }; + + nodes = { + single_node = mkNode { replicationMode = "none"; }; + }; + + testScript = '' + from typing import List + from dataclasses import dataclass + import re + + start_all() + + cur_version_regex = re.compile('Current cluster layout version: (?P\d*)') + key_creation_regex = re.compile('Key name: (?P.*)\nKey ID: (?P.*)\nSecret key: (?P.*)') + + @dataclass + class S3Key: + key_name: str + key_id: str + secret_key: str + + @dataclass + class GarageNode: + node_id: str + host: str + + def get_node_fqn(machine: Machine) -> GarageNode: + node_id, host = machine.succeed("garage node id").split('@') + return GarageNode(node_id=node_id, host=host) + + def get_node_id(machine: Machine) -> str: + return get_node_fqn(machine).node_id + + def get_layout_version(machine: Machine) -> int: + version_data = machine.succeed("garage layout show") + m = cur_version_regex.search(version_data) + if m and m.group('ver') is not None: + return int(m.group('ver')) + 1 + else: + raise ValueError('Cannot find current layout version') + + def apply_garage_layout(machine: Machine, layouts: List[str]): + for layout in layouts: + machine.succeed(f"garage layout assign {layout}") + version = get_layout_version(machine) + machine.succeed(f"garage layout apply --version {version}") + + def create_api_key(machine: Machine, key_name: str) -> S3Key: + output = machine.succeed(f"garage key new --name {key_name}") + m = key_creation_regex.match(output) + if not m or not m.group('key_id') or not m.group('secret_key'): + raise ValueError('Cannot parse API key data') + return S3Key(key_name=key_name, key_id=m.group('key_id'), secret_key=m.group('secret_key')) + + def get_api_key(machine: Machine, key_pattern: str) -> S3Key: + output = machine.succeed(f"garage key info {key_pattern}") + m = key_creation_regex.match(output) + if not m or not m.group('key_name') or not m.group('key_id') or not m.group('secret_key'): + raise ValueError('Cannot parse API key data') + return S3Key(key_name=m.group('key_name'), key_id=m.group('key_id'), secret_key=m.group('secret_key')) + + def test_bucket_writes(node): + node.succeed("garage bucket create test-bucket") + s3_key = create_api_key(node, "test-api-key") + node.succeed("garage bucket allow --read --write test-bucket --key test-api-key") + other_s3_key = get_api_key(node, 'test-api-key') + assert other_s3_key.secret_key == other_s3_key.secret_key + node.succeed( + f"mc alias set test-garage http://[::1]:3900 {s3_key.key_id} {s3_key.secret_key} --api S3v4" + ) + node.succeed("echo test | mc pipe test-garage/test-bucket/test.txt") + assert node.succeed("mc cat test-garage/test-bucket/test.txt").strip() == "test" + + def test_bucket_over_http(node, bucket='test-bucket', url=None): + if url is None: + url = f"{bucket}.web.garage" + + node.succeed(f'garage bucket website --allow {bucket}') + node.succeed(f'echo hello world | mc pipe test-garage/{bucket}/index.html') + assert (node.succeed(f"curl -H 'Host: {url}' http://localhost:3902")).strip() == 'hello world' + + with subtest("Garage works as a single-node S3 storage"): + single_node.wait_for_unit("garage.service") + single_node.wait_for_open_port(3900) + # Now Garage is initialized. + single_node_id = get_node_id(single_node) + apply_garage_layout(single_node, [f'-z qemutest -c 1 "{single_node_id}"']) + # Now Garage is operational. + test_bucket_writes(single_node) + test_bucket_over_http(single_node) + ''; +})) args diff --git a/nixos/tests/garage/default.nix b/nixos/tests/garage/default.nix new file mode 100644 index 000000000000..5c9159276ace --- /dev/null +++ b/nixos/tests/garage/default.nix @@ -0,0 +1,54 @@ +{ system ? builtins.currentSystem +, config ? { } +, pkgs ? import ../../.. { inherit system config; } +}: +with pkgs.lib; + +let + mkNode = package: { replicationMode, publicV6Address ? "::1" }: { pkgs, ... }: { + networking.interfaces.eth1.ipv6.addresses = [{ + address = publicV6Address; + prefixLength = 64; + }]; + + networking.firewall.allowedTCPPorts = [ 3901 3902 ]; + + services.garage = { + enable = true; + inherit package; + settings = { + replication_mode = replicationMode; + + rpc_bind_addr = "[::]:3901"; + rpc_public_addr = "[${publicV6Address}]:3901"; + rpc_secret = "5c1915fa04d0b6739675c61bf5907eb0fe3d9c69850c83820f51b4d25d13868c"; + + s3_api = { + s3_region = "garage"; + api_bind_addr = "[::]:3900"; + root_domain = ".s3.garage"; + }; + + s3_web = { + bind_addr = "[::]:3902"; + root_domain = ".web.garage"; + index = "index.html"; + }; + }; + }; + environment.systemPackages = [ pkgs.minio-client ]; + + # Garage requires at least 1GiB of free disk space to run. + virtualisation.diskSize = 2 * 1024; + }; +in + foldl + (matrix: ver: matrix // { + "basic${toString ver}" = import ./basic.nix { inherit system pkgs; mkNode = mkNode pkgs."garage_${ver}"; }; + "with-3node-replication${toString ver}" = import ./with-3node-replication.nix { inherit system pkgs; mkNode = mkNode pkgs."garage_${ver}"; }; + }) + {} + [ + "0_7_3" + "0_8_0" + ] diff --git a/nixos/tests/garage.nix b/nixos/tests/garage/with-3node-replication.nix similarity index 74% rename from nixos/tests/garage.nix rename to nixos/tests/garage/with-3node-replication.nix index dc1f83e7f8f3..d372ad1aa000 100644 --- a/nixos/tests/garage.nix +++ b/nixos/tests/garage/with-3node-replication.nix @@ -1,50 +1,12 @@ -import ./make-test-python.nix ({ pkgs, ...} : -let - mkNode = { replicationMode, publicV6Address ? "::1" }: { pkgs, ... }: { - networking.interfaces.eth1.ipv6.addresses = [{ - address = publicV6Address; - prefixLength = 64; - }]; - - networking.firewall.allowedTCPPorts = [ 3901 3902 ]; - - services.garage = { - enable = true; - settings = { - replication_mode = replicationMode; - - rpc_bind_addr = "[::]:3901"; - rpc_public_addr = "[${publicV6Address}]:3901"; - rpc_secret = "5c1915fa04d0b6739675c61bf5907eb0fe3d9c69850c83820f51b4d25d13868c"; - - s3_api = { - s3_region = "garage"; - api_bind_addr = "[::]:3900"; - root_domain = ".s3.garage"; - }; - - s3_web = { - bind_addr = "[::]:3902"; - root_domain = ".web.garage"; - index = "index.html"; - }; - }; - }; - environment.systemPackages = [ pkgs.minio-client ]; - - # Garage requires at least 1GiB of free disk space to run. - virtualisation.diskSize = 2 * 1024; - }; - - -in { - name = "garage"; +args@{ mkNode, ... }: +(import ../make-test-python.nix ({ pkgs, ...} : +{ + name = "garage-3node-replication"; meta = { maintainers = with pkgs.lib.maintainers; [ raitobezarius ]; }; nodes = { - single_node = mkNode { replicationMode = "none"; }; node1 = mkNode { replicationMode = 3; publicV6Address = "fc00:1::1"; }; node2 = mkNode { replicationMode = 3; publicV6Address = "fc00:1::2"; }; node3 = mkNode { replicationMode = 3; publicV6Address = "fc00:1::3"; }; @@ -126,16 +88,6 @@ in { node.succeed(f'echo hello world | mc pipe test-garage/{bucket}/index.html') assert (node.succeed(f"curl -H 'Host: {url}' http://localhost:3902")).strip() == 'hello world' - with subtest("Garage works as a single-node S3 storage"): - single_node.wait_for_unit("garage.service") - single_node.wait_for_open_port(3900) - # Now Garage is initialized. - single_node_id = get_node_id(single_node) - apply_garage_layout(single_node, [f'-z qemutest -c 1 "{single_node_id}"']) - # Now Garage is operational. - test_bucket_writes(single_node) - test_bucket_over_http(single_node) - with subtest("Garage works as a multi-node S3 storage"): nodes = ('node1', 'node2', 'node3', 'node4') rev_machines = {m.name: m for m in machines} @@ -166,4 +118,4 @@ in { for node in nodes: test_bucket_over_http(get_machine(node)) ''; -}) +})) args diff --git a/pkgs/tools/filesystems/garage/default.nix b/pkgs/tools/filesystems/garage/default.nix index bdb04e36a633..63ac77057d4a 100644 --- a/pkgs/tools/filesystems/garage/default.nix +++ b/pkgs/tools/filesystems/garage/default.nix @@ -1,50 +1,90 @@ { lib, stdenv, rustPlatform, fetchFromGitea, openssl, pkg-config, protobuf -, testers, Security, garage }: +, testers, Security, garage, nixosTests }: +let + generic = { version, sha256, cargoSha256, eol ? false }: rustPlatform.buildRustPackage { + pname = "garage"; + inherit version; -rustPlatform.buildRustPackage rec { - pname = "garage"; - version = "0.7.3"; + src = fetchFromGitea { + domain = "git.deuxfleurs.fr"; + owner = "Deuxfleurs"; + repo = "garage"; + rev = "v${version}"; + inherit sha256; + }; - src = fetchFromGitea { - domain = "git.deuxfleurs.fr"; - owner = "Deuxfleurs"; - repo = "garage"; - rev = "v${version}"; - sha256 = "sha256-WDhe2L+NalMoIy2rhfmv8KCNDMkcqBC9ezEKKocihJg="; + inherit cargoSha256; + + nativeBuildInputs = [ protobuf pkg-config ]; + + buildInputs = [ + openssl + ] ++ lib.optional stdenv.isDarwin Security; + + OPENSSL_NO_VENDOR = true; + + # See https://git.deuxfleurs.fr/Deuxfleurs/garage/src/tag/v0.7.2/default.nix#L84-L98 + # on version changes for checking if changes are required here + buildFeatures = [ + "kubernetes-discovery" + ] ++ + (lib.optional (lib.versionAtLeast version "0.8") [ + "bundled-libs" + "sled" + "metrics" + "k2v" + "telemetry-otlp" + "lmdb" + "sqlite" + ]); + + # To make integration tests pass, we include the optional k2v feature here, + # but not in buildFeatures. See: + # https://garagehq.deuxfleurs.fr/documentation/reference-manual/k2v/ + checkFeatures = [ + "k2v" + "kubernetes-discovery" + ] ++ + (lib.optional (lib.versionAtLeast version "0.8") [ + "bundled-libs" + "sled" + "metrics" + "telemetry-otlp" + "lmdb" + "sqlite" + ]); + + passthru = nixosTests.garage; + + meta = { + description = "S3-compatible object store for small self-hosted geo-distributed deployments"; + homepage = "https://garagehq.deuxfleurs.fr"; + license = lib.licenses.agpl3Only; + maintainers = with lib.maintainers; [ nickcao _0x4A6F teutat3s raitobezarius ]; + knownVulnerabilities = (lib.optional eol "Garage version ${version} is EOL"); + }; }; +in + rec { + # Until Garage hits 1.0, 0.7.3 is equivalent to 7.3.0 for now, therefore + # we have to keep all the numbers in the version to handle major/minor/patch level. + # for <1.0. - cargoSha256 = "sha256-5m4c8/upBYN8nuysDhGKEnNVJjEGC+yLrraicrAQOfI="; + garage_0_7_3 = generic { + version = "0.7.3"; + sha256 = "sha256-WDhe2L+NalMoIy2rhfmv8KCNDMkcqBC9ezEKKocihJg="; + cargoSha256 = "sha256-5m4c8/upBYN8nuysDhGKEnNVJjEGC+yLrraicrAQOfI="; + }; - nativeBuildInputs = [ protobuf pkg-config ]; + garage_0_7 = garage_0_7_3; - buildInputs = [ - openssl - ] ++ lib.optional stdenv.isDarwin Security; + garage_0_8_0 = generic { + version = "0.8.0"; + sha256 = "sha256-c2RhHfg0+YV2E9Ckl1YSc+0nfzbHPIt0JgtT0DND9lA="; + cargoSha256 = "sha256-vITXckNOiJbMuQW6/8p7dsZThkjxg/zUy3AZBbn33no="; + }; - OPENSSL_NO_VENDOR = true; + garage_0_8 = garage_0_8_0; - # See https://git.deuxfleurs.fr/Deuxfleurs/garage/src/tag/v0.7.2/default.nix#L84-L98 - # on version changes for checking if changes are required here - buildFeatures = [ - "kubernetes-discovery" - ]; - - # To make integration tests pass, we include the optional k2v feature here, - # but not in buildFeatures. See: - # https://garagehq.deuxfleurs.fr/documentation/reference-manual/k2v/ - checkFeatures = [ - "k2v" - "kubernetes-discovery" - ]; - - passthru = { - tests.version = testers.testVersion { package = garage; }; - }; - - meta = { - description = "S3-compatible object store for small self-hosted geo-distributed deployments"; - homepage = "https://garagehq.deuxfleurs.fr"; - license = lib.licenses.agpl3Only; - maintainers = with lib.maintainers; [ nickcao _0x4A6F teutat3s ]; - }; -} + garage = garage_0_8; + } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index c3c3409e7bf7..c89f1578c0b8 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -7355,9 +7355,12 @@ with pkgs; gaphor = python3Packages.callPackage ../tools/misc/gaphor { }; - garage = callPackage ../tools/filesystems/garage { + inherit (callPackage ../tools/filesystems/garage { inherit (darwin.apple_sdk.frameworks) Security; - }; + }) + garage + garage_0_7 garage_0_8 + garage_0_7_3 garage_0_8_0; garmin-plugin = callPackage ../applications/misc/garmin-plugin {}; From e6597c8ac5dea22baa2151b1fc7cef861c89b875 Mon Sep 17 00:00:00 2001 From: Raito Bezarius Date: Sun, 4 Dec 2022 16:36:28 +0100 Subject: [PATCH 65/76] garage: mark 0.7.3 as EOL --- nixos/tests/garage/default.nix | 1 - pkgs/tools/filesystems/garage/default.nix | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/nixos/tests/garage/default.nix b/nixos/tests/garage/default.nix index 5c9159276ace..4c38ea1bc898 100644 --- a/nixos/tests/garage/default.nix +++ b/nixos/tests/garage/default.nix @@ -49,6 +49,5 @@ in }) {} [ - "0_7_3" "0_8_0" ] diff --git a/pkgs/tools/filesystems/garage/default.nix b/pkgs/tools/filesystems/garage/default.nix index 63ac77057d4a..8b6efd7f112b 100644 --- a/pkgs/tools/filesystems/garage/default.nix +++ b/pkgs/tools/filesystems/garage/default.nix @@ -74,6 +74,7 @@ in version = "0.7.3"; sha256 = "sha256-WDhe2L+NalMoIy2rhfmv8KCNDMkcqBC9ezEKKocihJg="; cargoSha256 = "sha256-5m4c8/upBYN8nuysDhGKEnNVJjEGC+yLrraicrAQOfI="; + eol = true; # Confirmed with upstream maintainers over Matrix. }; garage_0_7 = garage_0_7_3; From 5d68e8482f840f0760c5408a3d3c4fac83dabf32 Mon Sep 17 00:00:00 2001 From: Raito Bezarius Date: Fri, 30 Dec 2022 15:10:26 +0100 Subject: [PATCH 66/76] garage: mark 0.8 broken on Darwin --- pkgs/tools/filesystems/garage/default.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkgs/tools/filesystems/garage/default.nix b/pkgs/tools/filesystems/garage/default.nix index 8b6efd7f112b..18c2b96de807 100644 --- a/pkgs/tools/filesystems/garage/default.nix +++ b/pkgs/tools/filesystems/garage/default.nix @@ -1,7 +1,7 @@ { lib, stdenv, rustPlatform, fetchFromGitea, openssl, pkg-config, protobuf , testers, Security, garage, nixosTests }: let - generic = { version, sha256, cargoSha256, eol ? false }: rustPlatform.buildRustPackage { + generic = { version, sha256, cargoSha256, eol ? false, broken ? false }: rustPlatform.buildRustPackage { pname = "garage"; inherit version; @@ -62,6 +62,7 @@ let license = lib.licenses.agpl3Only; maintainers = with lib.maintainers; [ nickcao _0x4A6F teutat3s raitobezarius ]; knownVulnerabilities = (lib.optional eol "Garage version ${version} is EOL"); + inherit broken; }; }; in @@ -83,6 +84,8 @@ in version = "0.8.0"; sha256 = "sha256-c2RhHfg0+YV2E9Ckl1YSc+0nfzbHPIt0JgtT0DND9lA="; cargoSha256 = "sha256-vITXckNOiJbMuQW6/8p7dsZThkjxg/zUy3AZBbn33no="; + # On Darwin, tests are failing. + broken = stdenv.isDarwin; }; garage_0_8 = garage_0_8_0; From d20e592f361a246ad5b64be2f8d4efbc3bb37bb4 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Fri, 30 Dec 2022 15:18:47 +0100 Subject: [PATCH 67/76] python310Packages.pybravia: 0.2.4 -> 0.2.5 Diff: https://github.com/Drafteed/pybravia/compare/v0.2.4...v0.2.5 Changelog: https://github.com/Drafteed/pybravia/releases/tag/v0.2.5 --- pkgs/development/python-modules/pybravia/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/pybravia/default.nix b/pkgs/development/python-modules/pybravia/default.nix index da8d95f0b103..6ec4cab91c51 100644 --- a/pkgs/development/python-modules/pybravia/default.nix +++ b/pkgs/development/python-modules/pybravia/default.nix @@ -8,7 +8,7 @@ buildPythonPackage rec { pname = "pybravia"; - version = "0.2.4"; + version = "0.2.5"; format = "pyproject"; disabled = pythonOlder "3.8"; @@ -17,7 +17,7 @@ buildPythonPackage rec { owner = "Drafteed"; repo = pname; rev = "v${version}"; - hash = "sha256-dR9UfvgBnCTL+/rn3j9TvfCqD8exp2WziS/+zRyde70="; + hash = "sha256-QWn5VdZlbxm2/ZvsQWlKuVPPBcqFkyt75Odh9Mf9Bqk="; }; nativeBuildInputs = [ From 3bc282bec23b595f1d5c84d983e861827132a489 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Fri, 30 Dec 2022 15:38:54 +0100 Subject: [PATCH 68/76] python310Packages.python3-saml: add changelog to meta - disable on unsupported Python releases --- .../python-modules/python3-saml/default.nix | 38 ++++++++++++------- 1 file changed, 25 insertions(+), 13 deletions(-) diff --git a/pkgs/development/python-modules/python3-saml/default.nix b/pkgs/development/python-modules/python3-saml/default.nix index f1674627744e..18850603810a 100644 --- a/pkgs/development/python-modules/python3-saml/default.nix +++ b/pkgs/development/python-modules/python3-saml/default.nix @@ -1,33 +1,45 @@ -{ lib, fetchFromGitHub, buildPythonPackage, isPy3k, -isodate, lxml, xmlsec, freezegun }: +{ lib +, buildPythonPackage +, fetchFromGitHub +, freezegun +, isodate +, lxml +, pythonOlder +, xmlsec +}: buildPythonPackage rec { pname = "python3-saml"; version = "1.15.0"; - disabled = !isPy3k; + format = "setuptools"; + + disabled = pythonOlder "3.7"; src = fetchFromGitHub { owner = "onelogin"; repo = "python3-saml"; rev = "refs/tags/v${version}"; - sha256 = "sha256-xPPR2z3h8RpoAROpKpu9ZoDxGq5Stm9wQVt4Stj/6fg="; + hash = "sha256-xPPR2z3h8RpoAROpKpu9ZoDxGq5Stm9wQVt4Stj/6fg="; }; - postPatch = '' - substituteInPlace setup.py \ - --replace "lxml<4.7.1" "lxml<5" - ''; - propagatedBuildInputs = [ - isodate lxml xmlsec + isodate + lxml + xmlsec ]; - checkInputs = [ freezegun ]; - pythonImportsCheck = [ "onelogin.saml2" ]; + checkInputs = [ + freezegun + ]; + + pythonImportsCheck = [ + "onelogin.saml2" + ]; meta = with lib; { - description = "OneLogin's SAML Python Toolkit for Python 3"; + description = "OneLogin's SAML Python Toolkit"; homepage = "https://github.com/onelogin/python3-saml"; + changelog = "https://github.com/SAML-Toolkits/python3-saml/blob/v${version}/changelog.md"; license = licenses.mit; maintainers = with maintainers; [ zhaofengli ]; }; From 9cd4748eb0fdb5999cfaf693a4bf89e4b5aad98e Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 30 Dec 2022 15:23:44 +0000 Subject: [PATCH 69/76] python310Packages.types-dateutil: 2.8.19.2 -> 2.8.19.5 --- pkgs/development/python-modules/types-dateutil/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/types-dateutil/default.nix b/pkgs/development/python-modules/types-dateutil/default.nix index c0637e7b389e..275fdbaab886 100644 --- a/pkgs/development/python-modules/types-dateutil/default.nix +++ b/pkgs/development/python-modules/types-dateutil/default.nix @@ -5,13 +5,13 @@ buildPythonPackage rec { pname = "types-dateutil"; - version = "2.8.19.2"; + version = "2.8.19.5"; format = "setuptools"; src = fetchPypi { pname = "types-python-dateutil"; inherit version; - hash = "sha256-5uMs4Y83dlsIxGYiKHvI2BNtwMVi2a1bj9FYxZlj16c="; + hash = "sha256-q5H8X3FffXbZpQ09100MaN/jilTwI5z6BQZXWuTYep0="; }; pythonImportsCheck = [ From 88592518cd41832461bc8e3a52463ae21395ae00 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 30 Dec 2022 02:01:01 +0000 Subject: [PATCH 70/76] hackgen-font: 2.7.1 -> 2.8.0 --- pkgs/data/fonts/hackgen/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/data/fonts/hackgen/default.nix b/pkgs/data/fonts/hackgen/default.nix index 5d87131c1028..b60ccb87fbb7 100644 --- a/pkgs/data/fonts/hackgen/default.nix +++ b/pkgs/data/fonts/hackgen/default.nix @@ -4,10 +4,10 @@ fetchzip rec { pname = "hackgen-font"; - version = "2.7.1"; + version = "2.8.0"; url = "https://github.com/yuru7/HackGen/releases/download/v${version}/HackGen_v${version}.zip"; - sha256 = "sha256-UL6U/q2u1UUP31lp0tEnFjzkn6dn8AY6hk5hJhPsOAE="; + sha256 = "sha256-TLqns6ulovHRKoLHxxwKpj6SqfCq5UDVBf7gUASCGK4="; postFetch = '' install -Dm644 $out/*.ttf -t $out/share/fonts/hackgen shopt -s extglob dotglob From 7809ece5ff9fd3790c89eb4e81d95f5aee12f351 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 28 Dec 2022 11:48:10 +0000 Subject: [PATCH 71/76] skaffold: 2.0.3 -> 2.0.4 --- pkgs/development/tools/skaffold/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/tools/skaffold/default.nix b/pkgs/development/tools/skaffold/default.nix index c4c8fc0c4bdc..f512e48e9109 100644 --- a/pkgs/development/tools/skaffold/default.nix +++ b/pkgs/development/tools/skaffold/default.nix @@ -2,16 +2,16 @@ buildGoModule rec { pname = "skaffold"; - version = "2.0.3"; + version = "2.0.4"; src = fetchFromGitHub { owner = "GoogleContainerTools"; repo = "skaffold"; rev = "v${version}"; - sha256 = "sha256-wt1BEa8ir8i4VWW03opfy7cSNqCPzQoHgtJz+i8iaLw="; + sha256 = "sha256-TFI715knhQ3QyWF1EwIxZfZQW16uDWAqa6LVNfqC8Ws="; }; - vendorSha256 = "sha256-2i7NKf/VJduBec4rEBJqFt1cb6ODqOviSY+flGekN4w="; + vendorSha256 = "sha256-yy1BVorjLEcZR6PqupBiZx2plwPJ6xlxripbyB6RLek="; subPackages = ["cmd/skaffold"]; From 5d6f45172279af8822d44a4d748de3e3704a770b Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Fri, 30 Dec 2022 11:53:31 +0100 Subject: [PATCH 72/76] neovim: 0.8.1 -> 0.8.2 --- pkgs/applications/editors/neovim/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/editors/neovim/default.nix b/pkgs/applications/editors/neovim/default.nix index 98859ec2ef3b..8b59e5038762 100644 --- a/pkgs/applications/editors/neovim/default.nix +++ b/pkgs/applications/editors/neovim/default.nix @@ -24,13 +24,13 @@ let in stdenv.mkDerivation rec { pname = "neovim-unwrapped"; - version = "0.8.1"; + version = "0.8.2"; src = fetchFromGitHub { owner = "neovim"; repo = "neovim"; rev = "v${version}"; - sha256 = "sha256-B2ZpwhdmdvPOnxVyJDfNzUT5rTVuBhJXyMwwzCl9Fac="; + sha256 = "sha256-eqiH/K8w0FZNHLBBMjiTSQjNQyONqcx3X+d85gPnFJg="; }; patches = [ From c45eae43341be47dccd741aa2423a47d009b52d9 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 23 Dec 2022 01:32:26 +0000 Subject: [PATCH 73/76] workcraft: 3.3.8 -> 3.3.9 --- pkgs/applications/science/logic/workcraft/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/science/logic/workcraft/default.nix b/pkgs/applications/science/logic/workcraft/default.nix index 5671317e30ef..173d1d5a2130 100644 --- a/pkgs/applications/science/logic/workcraft/default.nix +++ b/pkgs/applications/science/logic/workcraft/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "workcraft"; - version = "3.3.8"; + version = "3.3.9"; src = fetchurl { url = "https://github.com/workcraft/workcraft/releases/download/v${version}/workcraft-v${version}-linux.tar.gz"; - sha256 = "sha256-T2rUEZsO8g/nk10LZvC+mXEC6IzutbjncERlmqg814g="; + sha256 = "sha256-Z3QtOGyOjmiM+qfB0FO4UDg8O99Ru/Qy2WNoBpXd1So="; }; nativeBuildInputs = [ makeWrapper ]; From dea47fa228a4befa22bdda738f6348dd8a41e22c Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 22 Dec 2022 14:10:34 +0000 Subject: [PATCH 74/76] linkerd_edge: 22.8.2 -> 22.12.1 --- pkgs/applications/networking/cluster/linkerd/edge.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/networking/cluster/linkerd/edge.nix b/pkgs/applications/networking/cluster/linkerd/edge.nix index 1ad1a56896b8..1cf47d909c3d 100644 --- a/pkgs/applications/networking/cluster/linkerd/edge.nix +++ b/pkgs/applications/networking/cluster/linkerd/edge.nix @@ -2,7 +2,7 @@ (callPackage ./generic.nix { }) { channel = "edge"; - version = "22.8.2"; - sha256 = "114lfq5d5b09zg14iwnmaf0vmm183xr37q7b4bj3m8zbzhpbk7xx"; - vendorSha256 = "sha256-hKdokt5QW50oc2z8UFMq78DRWpwPlL5tSf2F0rQNEQ8="; + version = "22.12.1"; + sha256 = "1ss6rhh71nq89ya8312fgy30pdw9vvnvnc8a7zs8a8yqg6p4x9lp"; + vendorSha256 = "sha256-V4BQ+7J1T+g5I7SrCexkfe3ngl7Qy3cf0SF+u28QKWE="; } From 3a7244f68b17c22e3a08a79f0c82c1ebfc7df569 Mon Sep 17 00:00:00 2001 From: Kyle Ondy Date: Fri, 30 Dec 2022 12:45:41 -0500 Subject: [PATCH 75/76] spaceship-prompt: add kyleondy as maintainer Kyle Ondy uses spaceship-prompt 10+ hours a day, both at work on an M1 macbook and on Intel and AMD machines at home. --- pkgs/shells/zsh/spaceship-prompt/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/shells/zsh/spaceship-prompt/default.nix b/pkgs/shells/zsh/spaceship-prompt/default.nix index e5187658eeb9..b7410416b769 100644 --- a/pkgs/shells/zsh/spaceship-prompt/default.nix +++ b/pkgs/shells/zsh/spaceship-prompt/default.nix @@ -34,6 +34,6 @@ stdenvNoCC.mkDerivation rec { changelog = "https://github.com/spaceship-prompt/spaceship-prompt/releases/tag/v${version}"; license = licenses.mit; platforms = platforms.unix; - maintainers = with maintainers; [ nyanloutre fortuneteller2k ]; + maintainers = with maintainers; [ nyanloutre fortuneteller2k kyleondy ]; }; } From 2996b0e32866079426ea68e424cab4b51a2407da Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 30 Dec 2022 18:42:33 +0000 Subject: [PATCH 76/76] ansible-language-server: 1.0.3 -> 1.0.4 --- .../language-servers/ansible-language-server/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/tools/language-servers/ansible-language-server/default.nix b/pkgs/development/tools/language-servers/ansible-language-server/default.nix index ca656cf25bbc..084e2e023d92 100644 --- a/pkgs/development/tools/language-servers/ansible-language-server/default.nix +++ b/pkgs/development/tools/language-servers/ansible-language-server/default.nix @@ -6,16 +6,16 @@ buildNpmPackage rec { pname = "ansible-language-server"; - version = "1.0.3"; + version = "1.0.4"; src = fetchFromGitHub { owner = "ansible"; repo = pname; rev = "refs/tags/v${version}"; - hash = "sha256-+42fZ4ILUHg/KcnllUaFYYPBKHxauagbsVdIY1MgwSI="; + hash = "sha256-IBySScjfF2bIbiOv09uLMt9QH07zegm/W1vmGhdWxGY="; }; - npmDepsHash = "sha256-DRXIbIogMeiJvZOB44hKkkfc3dg8mscnV6k2rUvYCNs="; + npmDepsHash = "sha256-rJ1O2OsrJhTIfywK9/MRubwwcCmMbu61T4zyayg+mAU="; npmBuildScript = "compile"; # We remove the prepare and prepack scripts because they run the