From 97a6234e8eabfc97abb03d2550c89d2ffee40b45 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Wed, 28 May 2025 16:01:14 -0400 Subject: [PATCH 01/89] backports/electron: upgrade to 35.5.0 --- backports/electron/APKBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/backports/electron/APKBUILD b/backports/electron/APKBUILD index c95f43a..92270b8 100644 --- a/backports/electron/APKBUILD +++ b/backports/electron/APKBUILD @@ -1,7 +1,7 @@ # Contributor: lauren n. liberda # Maintainer: Antoine Martin (ayakael) pkgname=electron -pkgver=35.4.0 +pkgver=35.5.0 _gittag=v"${pkgver/_beta/-beta.}" pkgrel=0 _chromium=134.0.6998.205 @@ -551,7 +551,7 @@ lang() { } sha512sums=" -30a116328f9a5af05b16cf85e31672407c51aef895b29441220f439d66af947272daa8e2ac88d9e4b8f7a9e0bb883932c36d2f1642fd18c5da885931c1c97fe0 electron-v35.4.0-134.0.6998.205.tar.zst +a30c115f17f9811347f8713fa604b56244e39facbbab7b6b82cbc3049ed12b429b06f2faafa8a48dd727b655753848d099ba6720fae15c9bb00e6a427dc2758e electron-v35.5.0-134.0.6998.205.tar.zst c1857b5d6975650f915f3db552666f521822b857e39958ccfb54129f3878f272deaafc3dd446bc8441a5e84f075791feeeb62841b74bb555d8c546bfe231d164 copium-134.0.tar.gz 29bb685e03356a77df5fd347cdf55194cc8b3265c421cc76e54d64edefc329dbcb052deb26b22e8f587ce68456876c071de1b7d258dd0fcc6ee66c875ec4a020 chromium-revert-drop-of-system-java.patch d9cc4a37a0311d23ae315a8d8124f8dbf60db8cc4a3943818638174b20387f1d770d00871f6608957b246ad956abca43c22ea0b072724287f2947e1909e47323 compiler.patch From bff91156ded7cc619738fa56f041dae98262149d Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Thu, 29 May 2025 11:18:33 -0400 Subject: [PATCH 02/89] ci: add looking-glass special case to check_ver --- .forgejo/bin/check_ver.sh | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/.forgejo/bin/check_ver.sh b/.forgejo/bin/check_ver.sh index 3a0684e..107aec2 100755 --- a/.forgejo/bin/check_ver.sh +++ b/.forgejo/bin/check_ver.sh @@ -59,6 +59,9 @@ for pkg in $owned_by_you; do # special cases where package is not semantic case $pkg in + # release-monitoring omits the extra B, while we keep it but put it after the version no. + looking-glass) upstream_version="${upstream_version/b}";; + # we want to track both Firefox security upgrades + Zotero upgrades zotero) commit=$(sed -n "/^P:$pkg$/,/^$/p" APKINDEX | awk -F ':' '{if($1=="c"){print $2}}') downstream_fx_ver=$(curl --fail -X GET -s "https://gitlab.alpinelinux.org/alpine/aports/-/raw/$commit/community/zotero/APKBUILD" | awk -F '=' '{if($1=="_fxver"){print $2}}') @@ -69,8 +72,11 @@ for pkg in $owned_by_you; do fi upstream_version=$(curl --fail -X GET -s -H 'Content-Type: application/json' "https://release-monitoring.org/api/project/Alpine/$pkg" | jq -r '.stable_versions.[]' | head -n1) ;; + # aports omits the -beta part of the version freetube) upstream_version=$(curl --fail -X GET -s -H 'Content-Type: application/json' "https://release-monitoring.org/api/v2/packages/?name=$pkg&distribution=Alpine" | jq -r '.items.[].version' | sed "s|-beta||");; + # we only track x.x.1xx feature branches of SDK and stage0 dotnet*sdk|dotnet*stage0) upstream_version=$(curl --fail -X GET -s -H 'Content-Type: application/json' "https://release-monitoring.org/api/project/Alpine/$pkg" | jq -r ".stable_versions.[] | match(\"${downstream_version::-2}.*\").string" | sed 's|-.*||' | head -n1);; + # we want to track both current major version and upstream latest electron) upstream_version=$(curl --fail -X GET -s -H 'Content-Type: application/json' "https://release-monitoring.org/api/v2/projects/?name=$pkg&distribution=Alpine" | jq -r '.items.[].stable_versions' | jq -r ".[] | match(\"${downstream_version/.*}.*\").string" | head -n 1) latest_version=$(curl --fail -X GET -s -H 'Content-Type: application/json' "https://release-monitoring.org/api/v2/packages/?name=$pkg&distribution=Alpine" | jq -r '.items.[].stable_version' ) @@ -81,7 +87,8 @@ for pkg in $owned_by_you; do pkg="$pkg(${upstream_version/.*})" fi ;; - arm-trusted-firmware) upstream_version=$(curl --fail -X GET -s -H 'Content-Type: application/json' "https://release-monitoring.org/api/project/Alpine/$pkg" | jq -r ".stable_versions.[] | match(\"${downstream_version::-2}.*\").string" | head -n1);; + # we want to track LTS rather than latest + arm-trusted-firmware) upstream_version=$(curl --fail -X GET -s -H 'Content-Type: application/json' "https://release-monitoring.org/api/project/Alpine/$pkg" | jq -r ".stable_versions.[] | match(\"${downstream_version%.*}.*\").string" | head -n1);; *) # continues when package version scheme is not semantic, but minor_only or fix_only is set if [ -n "${minor_only}" ] || [ -n "${fix_only}" ]; then From 3f1fd192e5f54b96cfad8d92ad241c417dabd7da Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Sat, 31 May 2025 12:35:02 -0400 Subject: [PATCH 03/89] backports/{coin,libmedc,py3-pivy,soqt,freecad}: drop due to in community --- backports/coin/APKBUILD | 36 ------- backports/coin/TestSuitePatch.patch | 11 --- backports/freecad/APKBUILD | 80 --------------- backports/freecad/no-execinfo.patch | 54 ---------- backports/libmedc/APKBUILD | 59 ----------- backports/libmedc/cmake-config-dir.patch | 11 --- backports/libmedc/hdf5-1.14.patch | 119 ----------------------- backports/libmedc/med-py3.13.patch | 26 ----- backports/libmedc/med-swig-4.3.0.patch | 59 ----------- backports/py3-pivy/APKBUILD | 37 ------- backports/soqt/APKBUILD | 31 ------ 11 files changed, 523 deletions(-) delete mode 100644 backports/coin/APKBUILD delete mode 100644 backports/coin/TestSuitePatch.patch delete mode 100644 backports/freecad/APKBUILD delete mode 100644 backports/freecad/no-execinfo.patch delete mode 100644 backports/libmedc/APKBUILD delete mode 100644 backports/libmedc/cmake-config-dir.patch delete mode 100644 backports/libmedc/hdf5-1.14.patch delete mode 100644 backports/libmedc/med-py3.13.patch delete mode 100644 backports/libmedc/med-swig-4.3.0.patch delete mode 100644 backports/py3-pivy/APKBUILD delete mode 100644 backports/soqt/APKBUILD diff --git a/backports/coin/APKBUILD b/backports/coin/APKBUILD deleted file mode 100644 index e6068c3..0000000 --- a/backports/coin/APKBUILD +++ /dev/null @@ -1,36 +0,0 @@ -# Contributor: Aiden Grossman -# Maintainer: Antoine Martin (ayakael) -pkgname=coin -pkgver=4.0.3 -pkgrel=0 -pkgdesc="OpenGL OpenInventor compatible graphics library" -url="https://github.com/coin3d/coin" -license="BSD-3-Clause" -arch="all" -makedepends="boost-dev cmake glu-dev graphviz samurai" -subpackages="$pkgname-dev" -source="https://github.com/coin3d/coin/releases/download/v$pkgver/coin-$pkgver-src.tar.gz - TestSuitePatch.patch - " -builddir="$srcdir/coin" - -build() { - cmake -B build -G Ninja \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=/usr \ - -DCOIN_BUILD_TESTS=ON - cmake --build build -} - -check() { - cmake --build build --target test -} - -package() { - DESTDIR="$pkgdir" cmake --install build -} - -sha512sums=" -b661bf2124b0de1b46e76a6699b0975abb3aed4dc9019bf32531c535179dc84a90fe4e19def6f6cda7b175470636040d0e58812d532198cf207296d37c539915 coin-4.0.3-src.tar.gz -aab464244b13371badf0878e5bfbcce859a42756cf8c7657d1480318aa291d296eac2741219c346bae056f761c5f46857f8fd1ec1c4129f86bc10236d3869deb TestSuitePatch.patch -" diff --git a/backports/coin/TestSuitePatch.patch b/backports/coin/TestSuitePatch.patch deleted file mode 100644 index ce484e5..0000000 --- a/backports/coin/TestSuitePatch.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- ./testsuite/TestSuiteUtils.cpp -+++ ./testsuite/TestSuiteUtils.cpp -@@ -39,7 +39,7 @@ - #elif defined(_WIN32) - #define USE_WIN32 - #else //_WIN32 --#error Unknown system -+#define USE_POSIX - #endif //POSIX - - #include diff --git a/backports/freecad/APKBUILD b/backports/freecad/APKBUILD deleted file mode 100644 index 7b99447..0000000 --- a/backports/freecad/APKBUILD +++ /dev/null @@ -1,80 +0,0 @@ -# Contributor: Bryce Vandegrift -# Maintainer: Bryce Vandegrift -pkgname=freecad -pkgver=1.0.1 -_ondsel_ver="09d6175a2ba69e7016fcecc4f384946a2f84f92d" -_gsl_ver="2828399820ef4928cc89b65605dca5dc68efca6e" -pkgrel=0 -pkgdesc="Open-source parametric 3D modeler" -url="https://www.freecad.org/" -# armv7, armhf, and aarch64: GL_MULTISAMPLE not declared -# s390x: blocked by opencascade-dev, vtk-dev, and freeimage-dev -# riscv64: blocked by py3-pivy, py3-pyside6, pyside6-dev, and py3-shiboken6 -arch="all !aarch64 !armhf !armv7 !s390x !riscv64" -license="LGPL-2.0-or-later" -depends="py3-pivy py3-matplotlib py3-pyside6" -makedepends=" - cmake - ninja - boost-dev - doxygen - python3-dev - xerces-c-dev - opencascade-dev - glew-dev - gtest-dev - vtk-dev - libmedc-dev - eigen-dev - coin-dev - libspnav-dev - pyside6-dev - py3-shiboken6 - py3-pivy - py3-matplotlib - swig - jsoncpp-dev - freeimage-dev - qt6-qtbase-dev - qt6-qtsvg-dev - qt6-qttools-dev - yaml-cpp-dev" -subpackages="$pkgname-doc $pkgname-dev" -options="!check" -source="$pkgname-$pkgver.tar.gz::https://github.com/FreeCAD/FreeCAD/archive/$pkgver.tar.gz - OndselSolver-$_ondsel_ver.tar.gz::https://github.com/Ondsel-Development/OndselSolver/archive/$_ondsel_ver.tar.gz - GSL-$_gsl_ver.tar.gz::https://github.com/microsoft/GSL/archive/$_gsl_ver.tar.gz - no-execinfo.patch" -builddir="$srcdir/FreeCAD-$pkgver" - -prepare() { - default_prepare - - cp -r $srcdir/OndselSolver-$_ondsel_ver/* $builddir/src/3rdParty/OndselSolver - cp -r $srcdir/GSL-$_gsl_ver/* $builddir/src/3rdParty/GSL -} - -build() { - cmake -B build -G Ninja \ - -DCMAKE_BUILD_TYPE=Release \ - -DFREECAD_QT_VERSION=6 \ - -DFREECAD_USE_EXTERNAL_PIVY=ON \ - -DBUILD_FLAT_MESH=ON \ - -DENABLE_DEVELOPER_TESTS=OFF \ - -DBUILD_TEST=OFF \ - -DCMAKE_INSTALL_PREFIX=/usr \ - -DCMAKE_INSTALL_DATAROOTDIR=/usr/share \ - -DCMAKE_INSTALL_DATADIR=/usr/share/$pkgname - ninja -C build -} - -package() { - DESTDIR="$pkgdir" ninja -C build install -} - -sha512sums=" -69a82c0af45137079b1ce184a4a3df475c005da66b4a4cab17371a1f62432b13f721e3da8b350b3ad50125c939cdfa5fed477e0605d52bd8fcee3c528931a185 freecad-1.0.1.tar.gz -7ad78da60320a686f0734da5196ce4cba49a2ff9ecf0bcd6016a56d65c8a8f7570f2898f84c2602a454bc9ccd8ac12fd137d2a952ffb7cbd15e38350fbbd3d79 OndselSolver-09d6175a2ba69e7016fcecc4f384946a2f84f92d.tar.gz -a6d731c450da91cba34c13293cc0881a842bd90268dd5ef721ae1f48752c41dc355ebea7716a6de5b49d41568e55751c46a9dd78da4cd68656bffd33e5ee448e GSL-2828399820ef4928cc89b65605dca5dc68efca6e.tar.gz -2f190118bddbf2e070519d0244eafd15ae7919f9759f925f593ce43988a7f9ab023c50bec3768404926e8cc661e829f6a55bec5e9e58c58735c050338fbcec16 no-execinfo.patch -" diff --git a/backports/freecad/no-execinfo.patch b/backports/freecad/no-execinfo.patch deleted file mode 100644 index 9443301..0000000 --- a/backports/freecad/no-execinfo.patch +++ /dev/null @@ -1,54 +0,0 @@ -From 9cd1f5e5b90ef2e17c61719ffdb2f6c43cbae185 Mon Sep 17 00:00:00 2001 -From: Bryce Vandegrift -Date: Sun, 24 Nov 2024 18:19:39 -0500 -Subject: [PATCH] Remove dependency on execinfo.h - ---- - .../salomesmesh/src/DriverSTL/Basics_Utils.cpp | 11 ----------- - src/App/Application.cpp | 1 - - 2 files changed, 12 deletions(-) - -diff --git a/src/3rdParty/salomesmesh/src/DriverSTL/Basics_Utils.cpp b/src/3rdParty/salomesmesh/src/DriverSTL/Basics_Utils.cpp -index 23c5083fdf..5ea06ad3f4 100644 ---- a/src/3rdParty/salomesmesh/src/DriverSTL/Basics_Utils.cpp -+++ b/src/3rdParty/salomesmesh/src/DriverSTL/Basics_Utils.cpp -@@ -29,7 +29,6 @@ - #ifndef WIN32 - #include - #include --#include - #endif - - -@@ -113,16 +112,6 @@ namespace Kernel_Utils - size_t size; - char **strings; - size_t i; -- -- size = backtrace (array, 40); -- strings = backtrace_symbols (array, size); -- -- for (i = 0; i < size; i++) -- { -- std::cerr << strings[i] << std::endl; -- } -- -- free (strings); - } - #else - #if (_MSC_VER >= 1400) // Visual Studio 2005 -diff --git a/src/App/Application.cpp b/src/App/Application.cpp -index 9384790627..9155c00d25 100644 ---- a/src/App/Application.cpp -+++ b/src/App/Application.cpp -@@ -1798,7 +1798,6 @@ static void freecadNewHandler () - #endif - - #if defined(FC_OS_LINUX) --#include - #include - #include - --- -2.47.0 - diff --git a/backports/libmedc/APKBUILD b/backports/libmedc/APKBUILD deleted file mode 100644 index 0bf52fc..0000000 --- a/backports/libmedc/APKBUILD +++ /dev/null @@ -1,59 +0,0 @@ -# Contributor: Aiden Grossman -# Maintainer: -pkgname=libmedc -pkgver=5.0.0 -pkgrel=0 -pkgdesc="Open source library for numerical simulation" -url="https://www.salome-platform.org/" -arch="all" -license="GPL-3.0-or-later" -makedepends="cmake hdf5-dev swig python3-dev samurai" -options="!check" #test suite is nonfunctional with python bindings -subpackages="$pkgname-dev $pkgname-doc $pkgname-python-pyc $pkgname-python:_py" -# Upstream disappeared: -# https://www.salome-platform.org/downloads -# https://files.salome-platform.org/Salome/other/med-4.1.1.tar.gz -# -# Using a fork on GitHub by one of the FreeCAD developers instead. -# -source=" - $pkgname-$pkgver.tar.gz::https://github.com/chennes/med/archive/refs/tags/v$pkgver.tar.gz - cmake-config-dir.patch - hdf5-1.14.patch - med-swig-4.3.0.patch - med-py3.13.patch - " -builddir="$srcdir/med-$pkgver" - -build() { - cmake -B build -G Ninja \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=/usr \ - -DCMAKE_SKIP_RPATH=ON \ - -DMEDFILE_BUILD_PYTHON=ON \ - -DMEDFILE_BUILD_TESTS=OFF - cmake --build build -} - -check() { - cd build - HDF5_DISABLE_VERSION_CHECK=1 LD_LIBRARY_PATH="$srcdir"/build/src ctest -E '._Python' --output-on-failure -} - -package() { - DESTDIR="$pkgdir" cmake --install build -} - -_py() { - pkgdesc="Python bindings for libmedc" - depends="python3" - amove usr/lib/python3* -} - -sha512sums=" -6ebb06bf403dbe32512a42179a42de3da6f264034fcc143fcb2b780c5d564527656d3ef28ebf25d7bde93a9d2a44df0d10a09d60e6f4720ba9d25719a4e30d37 libmedc-5.0.0.tar.gz -8d0f58cd67d205fbacaff0e6da76e2ee5473457b478ede13a551ebe5853c0716c7406b74c3792e1ace33a34d352fccca8dd2940f063a7c060a12529d060a991a cmake-config-dir.patch -78bfbd17a052c039244ce314d53b0d5e5e6ba6773fe7a836999bf7ddf4b6d732dfda95c58681dd9d7e9586e4d36d3dfe7cca15d45fa7d3d453aef72423fcd5c0 hdf5-1.14.patch -833187253fcbebb13f239f1f559333db6a7d3ef87c4f7b896f64970a3e553735ed01a82d6d4a368a2261e33e364b05ea3abbff3fd58c8221515aa72aa52684a7 med-swig-4.3.0.patch -6c993d924257a01b8bce1952ecc34346ab654a103f4374d514c3616cd6cdf94373b2a4d04b91a68933cd5acbc4fc54becab6bd58f32762973bbee8255c5d7a3d med-py3.13.patch -" diff --git a/backports/libmedc/cmake-config-dir.patch b/backports/libmedc/cmake-config-dir.patch deleted file mode 100644 index e1f43a4..0000000 --- a/backports/libmedc/cmake-config-dir.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -101,7 +101,7 @@ - IF(WIN32 AND NOT CYGWIN) - SET(INSTALL_CMAKE_CONFIG_DIR cmake) - ELSE() -- SET(INSTALL_CMAKE_CONFIG_DIR share/cmake/medfile-${MED_STR_VERSION}) -+ SET(INSTALL_CMAKE_CONFIG_DIR lib${LIB_SUFFIX}/cmake/medfile-${MED_STR_VERSION}) - ENDIF() - SET(INSTALL_INCLUDE_DIR include) - diff --git a/backports/libmedc/hdf5-1.14.patch b/backports/libmedc/hdf5-1.14.patch deleted file mode 100644 index 6202f74..0000000 --- a/backports/libmedc/hdf5-1.14.patch +++ /dev/null @@ -1,119 +0,0 @@ -Patch-Source: https://src.fedoraproject.org/rpms/med/raw/rawhide/f/hdf5-1.14.patch - -diff -rupN --no-dereference med-5.0.0/config/cmake_files/medMacros.cmake med-5.0.0-new/config/cmake_files/medMacros.cmake ---- med-5.0.0/config/cmake_files/medMacros.cmake 2025-01-24 00:28:04.460898497 +0100 -+++ med-5.0.0-new/config/cmake_files/medMacros.cmake 2025-01-24 00:28:04.857640862 +0100 -@@ -447,7 +447,7 @@ MACRO(MED_FIND_HDF5) - ## - ## Requires 1.12.x version - ## -- IF (NOT HDF_VERSION_MAJOR_REF EQUAL 1 OR NOT HDF_VERSION_MINOR_REF EQUAL 12 OR NOT HDF_VERSION_RELEASE_REF GREATER 0) -+ IF (HDF5_VERSION VERSION_LESS 1.12.1) - MESSAGE(FATAL_ERROR "HDF5 version is ${HDF_VERSION_REF}. Only versions >= 1.12.1 are supported.") - ENDIF() - ## -diff -rupN --no-dereference med-5.0.0/src/ci/MEDfileCompatibility.c med-5.0.0-new/src/ci/MEDfileCompatibility.c ---- med-5.0.0/src/ci/MEDfileCompatibility.c 2023-06-05 14:14:44.000000000 +0200 -+++ med-5.0.0-new/src/ci/MEDfileCompatibility.c 2025-01-24 00:28:04.858068408 +0100 -@@ -116,7 +116,7 @@ MEDfileCompatibility(const char* const f - #if MED_NUM_MAJEUR != 5 - #error "Don't forget to update the test version here when you change the major version of the library !" - #endif --#if H5_VERS_MINOR > 12 -+#if H5_VERS_MINOR > 14 - #error "Don't forget to check the compatibility version of the library, depending on the internal hdf model choice !" - #error "Cf. _MEDfileCreate ..." - #endif -diff -rupN --no-dereference med-5.0.0/src/hdfi/_MEDfileCreate.c med-5.0.0-new/src/hdfi/_MEDfileCreate.c ---- med-5.0.0/src/hdfi/_MEDfileCreate.c 2023-06-05 14:14:45.000000000 +0200 -+++ med-5.0.0-new/src/hdfi/_MEDfileCreate.c 2025-01-24 00:28:04.858334666 +0100 -@@ -189,7 +189,7 @@ med_idt _MEDfileCreate(const char * cons - * Cette ligne est censée obliger HDF à ne pas utiliser un modèle interne différent de 1.10.z - * Un test autoconf permet de fixer un intervalle de version HDF à MED. - */ --#if H5_VERS_MINOR > 12 -+#if H5_VERS_MINOR > 14 - #error "Don't forget to change the compatibility version of the library !" - #endif - -diff -rupN --no-dereference med-5.0.0/src/hdfi/_MEDfileOpen.c med-5.0.0-new/src/hdfi/_MEDfileOpen.c ---- med-5.0.0/src/hdfi/_MEDfileOpen.c 2023-06-05 14:14:45.000000000 +0200 -+++ med-5.0.0-new/src/hdfi/_MEDfileOpen.c 2025-01-24 00:28:04.858574380 +0100 -@@ -113,7 +113,7 @@ med_idt _MEDfileOpen(const char * const - has been set in the group creation property list (see H5Pset_link_creation_order). - */ - --#if H5_VERS_MINOR > 12 -+#if H5_VERS_MINOR > 14 - #error "Don't forget to change the compatibility version of the library !" - #endif - /* L'avantage de bloquer le modèle interne HDF5 -diff -rupN --no-dereference med-5.0.0/src/hdfi/_MEDfileOpenForImport.c med-5.0.0-new/src/hdfi/_MEDfileOpenForImport.c ---- med-5.0.0/src/hdfi/_MEDfileOpenForImport.c 2023-06-05 14:14:45.000000000 +0200 -+++ med-5.0.0-new/src/hdfi/_MEDfileOpenForImport.c 2025-01-24 00:28:04.858834390 +0100 -@@ -53,7 +53,7 @@ med_idt _MEDfileOpenForImport(const cha - } - - --#if H5_VERS_MINOR > 12 -+#if H5_VERS_MINOR > 14 - #error "Don't forget to change the compatibility version of the library !" - #endif - /* L'avantage de bloquer le modèle interne HDF5 -diff -rupN --no-dereference med-5.0.0/src/hdfi/_MEDmemFileOpen.c med-5.0.0-new/src/hdfi/_MEDmemFileOpen.c ---- med-5.0.0/src/hdfi/_MEDmemFileOpen.c 2023-06-05 14:14:45.000000000 +0200 -+++ med-5.0.0-new/src/hdfi/_MEDmemFileOpen.c 2025-01-24 00:28:04.859128966 +0100 -@@ -439,7 +439,7 @@ med_idt _MEDmemFileOpen(const char * con - goto ERROR; - } - --#if H5_VERS_MINOR > 12 -+#if H5_VERS_MINOR > 14 - #error "Don't forget to change the compatibility version of the library !" - #endif - if ( H5Pset_libver_bounds( _fapl, H5F_LIBVER_V112, H5F_LIBVER_V112 ) ) { -@@ -506,7 +506,7 @@ med_idt _MEDmemFileOpen(const char * con - goto ERROR; - } - _fversionMM = 100*_fmajor+10*_fminor; --#if H5_VERS_MINOR > 12 -+#if H5_VERS_MINOR > 14 - #error "Don't forget to change the compatibility version of the library !" - #endif - if ( _fversionMM < 500 ) { /*100*MED_NUM_MAJEUR+10*MED_NUM_MINEUR*/ -diff -rupN --no-dereference med-5.0.0/src/hdfi/_MEDparFileCreate.c med-5.0.0-new/src/hdfi/_MEDparFileCreate.c ---- med-5.0.0/src/hdfi/_MEDparFileCreate.c 2023-06-05 14:14:45.000000000 +0200 -+++ med-5.0.0-new/src/hdfi/_MEDparFileCreate.c 2025-01-24 00:28:04.859422685 +0100 -@@ -64,7 +64,7 @@ med_idt _MEDparFileCreate(const char * c - * En HDF5-1.10.0p1 cela n'a aucun effet ! - * Un test autoconf permet de fixer un intervalle de version HDF à MED. - */ --#if H5_VERS_MINOR > 12 -+#if H5_VERS_MINOR > 14 - #error "Don't forget to change the compatibility version of the library !" - #endif - -diff -rupN --no-dereference med-5.0.0/src/hdfi/_MEDparFileOpen.c med-5.0.0-new/src/hdfi/_MEDparFileOpen.c ---- med-5.0.0/src/hdfi/_MEDparFileOpen.c 2023-06-05 14:14:45.000000000 +0200 -+++ med-5.0.0-new/src/hdfi/_MEDparFileOpen.c 2025-01-24 00:28:04.859632596 +0100 -@@ -86,7 +86,7 @@ med_idt _MEDparFileOpen(const char * con - } - _fversionMM = 100*_fmajor+10*_fminor; - --#if H5_VERS_MINOR > 12 -+#if H5_VERS_MINOR > 14 - #error "Don't forget to change the compatibility version of the library !" - #endif - if ( _fversionMM < 500 ) { /*100*MED_NUM_MAJEUR+10*MED_NUM_MINEUR*/ -diff -rupN --no-dereference med-5.0.0/src/misc/MEDversionedApi3C.c med-5.0.0-new/src/misc/MEDversionedApi3C.c ---- med-5.0.0/src/misc/MEDversionedApi3C.c 2023-06-05 14:14:45.000000000 +0200 -+++ med-5.0.0-new/src/misc/MEDversionedApi3C.c 2025-01-24 00:28:04.859890990 +0100 -@@ -114,7 +114,7 @@ MedFuncType _MEDversionedApi3( const cha - /* (_fversionMM <= (100*MED_NUM_MAJEUR+10*MED_NUM_MINEUR) ) */ - /* ) { */ - --#if H5_VERS_MINOR > 12 -+#if H5_VERS_MINOR > 14 - #error "Don't forget to change the compatibility version of the library !" - #endif - diff --git a/backports/libmedc/med-py3.13.patch b/backports/libmedc/med-py3.13.patch deleted file mode 100644 index 164daf0..0000000 --- a/backports/libmedc/med-py3.13.patch +++ /dev/null @@ -1,26 +0,0 @@ -Patch-Source: https://src.fedoraproject.org/rpms/med/raw/rawhide/f/med-swig-4.3.0.patch - -diff -rupN --no-dereference med-5.0.0/python/med_enumtest_typemap.i med-5.0.0-new/python/med_enumtest_typemap.i ---- med-5.0.0/python/med_enumtest_typemap.i 2023-03-07 15:20:57.000000000 +0100 -+++ med-5.0.0-new/python/med_enumtest_typemap.i 2025-01-24 00:28:04.465816239 +0100 -@@ -128,7 +128,7 @@ public: - if (pclass == NULL) printf("%s\n","Can't get class $1_basetype"); - Py_DECREF(pmod); - pargs = Py_BuildValue("(i)",*$1); -- pinst = PyEval_CallObject(pclass, pargs); -+ pinst = PyObject_CallObject(pclass, pargs); - if (pinst == NULL) printf("%s\n","Can't instanciate class $1_basetype"); - $result=SWIG_Python_AppendOutput($result, pinst); - } -diff -rupN --no-dereference med-5.0.0/python/med_enum_typemap.i med-5.0.0-new/python/med_enum_typemap.i ---- med-5.0.0/python/med_enum_typemap.i 2023-03-07 15:20:57.000000000 +0100 -+++ med-5.0.0-new/python/med_enum_typemap.i 2025-01-24 00:28:04.466146326 +0100 -@@ -109,7 +109,7 @@ Type.__repr__= lambda self: #Type +"("+s - if (pclass == NULL) printf("%s\n","Can't get class $1_basetype"); - Py_DECREF(pmod); - pargs = Py_BuildValue("(i)",*$1); -- pinst = PyEval_CallObject(pclass, pargs); -+ pinst = PyObject_CallObject(pclass, pargs); - if (pinst == NULL) printf("%s\n","Can't instanciate class $1_basetype"); - $result=SWIG_Python_AppendOutput($result, pinst); - } diff --git a/backports/libmedc/med-swig-4.3.0.patch b/backports/libmedc/med-swig-4.3.0.patch deleted file mode 100644 index e9dcb5e..0000000 --- a/backports/libmedc/med-swig-4.3.0.patch +++ /dev/null @@ -1,59 +0,0 @@ -Patch-Source: https://src.fedoraproject.org/rpms/med/raw/rawhide/f/med-py3.13.patch - -diff -rupN --no-dereference med-5.0.0/python/med_array_typemap.i med-5.0.0-new/python/med_array_typemap.i ---- med-5.0.0/python/med_array_typemap.i 2023-03-07 15:20:57.000000000 +0100 -+++ med-5.0.0-new/python/med_array_typemap.i 2025-01-24 00:28:05.257751237 +0100 -@@ -181,7 +181,7 @@ Type.__repr__= lambda self: #Type +"("+s - // TypeMed * const ParamName : OUT 2/4 (l'allocation Type est faite ds Python) - %typemap(freearg) TypeMed * const ParamName { - Py_INCREF(o$argnum); -- $result=SWIG_Python_AppendOutput($result, o$argnum); -+ $result=SWIG_AppendOutput($result, o$argnum); - } - // TypeMed * const (OUT) 3/4 - // pour ne pas activer un out du TypeMed * const (par sécurité) -@@ -290,7 +290,7 @@ Type.__repr__= lambda self: #Type +"("+s - // unsigned char * const : OUT 2/4 (l'allocation Type est faite ds Python) - %typemap(freearg) unsigned char * const { - Py_INCREF(o$argnum); -- $result=SWIG_Python_AppendOutput($result, o$argnum); -+ $result=SWIG_AppendOutput($result, o$argnum); - } - // unsigned char * const (OUT) 3/4 - // pour ne pas activer un out du unsigned char * const (par sécurité) -diff -rupN --no-dereference med-5.0.0/python/med_bool_typemap.i med-5.0.0-new/python/med_bool_typemap.i ---- med-5.0.0/python/med_bool_typemap.i 2023-03-07 15:20:57.000000000 +0100 -+++ med-5.0.0-new/python/med_bool_typemap.i 2025-01-24 00:28:05.257993234 +0100 -@@ -22,7 +22,7 @@ - /* Py_DECREF(o2); */ - /* Py_DECREF(o3); */ - /* } */ -- $result=SWIG_Python_AppendOutput($result, o); -+ $result=SWIG_AppendOutput($result, o); - } - - %typemap(in,numinputs=0) med_bool *(med_bool temp) { -diff -rupN --no-dereference med-5.0.0/python/med_enumtest_typemap.i med-5.0.0-new/python/med_enumtest_typemap.i ---- med-5.0.0/python/med_enumtest_typemap.i 2025-01-24 00:28:04.853403794 +0100 -+++ med-5.0.0-new/python/med_enumtest_typemap.i 2025-01-24 00:28:05.258210585 +0100 -@@ -130,7 +130,7 @@ public: - pargs = Py_BuildValue("(i)",*$1); - pinst = PyObject_CallObject(pclass, pargs); - if (pinst == NULL) printf("%s\n","Can't instanciate class $1_basetype"); -- $result=SWIG_Python_AppendOutput($result, pinst); -+ $result=SWIG_AppendOutput($result, pinst); - } - - %typemap(in,numinputs=0) TypeEnum * (TypeEnum temp) { -diff -rupN --no-dereference med-5.0.0/python/med_enum_typemap.i med-5.0.0-new/python/med_enum_typemap.i ---- med-5.0.0/python/med_enum_typemap.i 2025-01-24 00:28:04.853741870 +0100 -+++ med-5.0.0-new/python/med_enum_typemap.i 2025-01-24 00:28:05.258385775 +0100 -@@ -111,7 +111,7 @@ Type.__repr__= lambda self: #Type +"("+s - pargs = Py_BuildValue("(i)",*$1); - pinst = PyObject_CallObject(pclass, pargs); - if (pinst == NULL) printf("%s\n","Can't instanciate class $1_basetype"); -- $result=SWIG_Python_AppendOutput($result, pinst); -+ $result=SWIG_AppendOutput($result, pinst); - } - - %typemap(in,numinputs=0) TypeEnum * (TypeEnum temp) { diff --git a/backports/py3-pivy/APKBUILD b/backports/py3-pivy/APKBUILD deleted file mode 100644 index 300d9e7..0000000 --- a/backports/py3-pivy/APKBUILD +++ /dev/null @@ -1,37 +0,0 @@ -# Contributor: Aiden Grossman -# Maintainer: -pkgname=py3-pivy -pkgver=0.6.9 -pkgrel=2 -pkgdesc="Python3 bindings for coin" -url="https://github.com/coin3d/pivy" -# riscv64 blocked by py3-pyside6 -# armhf blocked by qt6-qtdeclarative -> py3-pyside6 -arch="all !riscv64 !armhf" -license="ISC" -depends="py3-pyside6" -makedepends="swig soqt-dev qt6-qtbase-dev python3-dev glu-dev cmake samurai" -checkdepends="py3-pytest" -options="!check" # test suite is interactive and requires full installation -source="$pkgname-$pkgver.tar.gz::https://github.com/coin3d/pivy/archive/refs/tags/${pkgver//_alpha/.a}.tar.gz" -builddir="$srcdir/pivy-${pkgver//_alpha/.a}" - -build() { - if [ "$CBUILD" != "$CHOST" ]; then - CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux" - fi - cmake -B build -G Ninja \ - -DCMAKE_INSTALL_PREFIX=/usr \ - -DBUILD_SHARED_LIBS=True \ - -DCMAKE_BUILD_TYPE=None \ - $CMAKE_CROSSOPTS - cmake --build build -} - -package() { - DESTDIR="$pkgdir" cmake --install build -} - -sha512sums=" -fd9587c69ad7468b771fbae59e68620f67a3c20850edadd65bf7994c1789d3444feb419e65dce34c6ee897c98eaca9f2f29f0bbfb4d1f0bbde26e4db56f74f78 py3-pivy-0.6.9.tar.gz -" diff --git a/backports/soqt/APKBUILD b/backports/soqt/APKBUILD deleted file mode 100644 index b96f3dd..0000000 --- a/backports/soqt/APKBUILD +++ /dev/null @@ -1,31 +0,0 @@ -# Contributor: Aiden Grossman -# Maintainer: Antoine Martin (ayakael) -pkgname=soqt -pkgver=1.6.3 -pkgrel=0 -pkgdesc="GUI binding library for coin" -url="https://github.com/coin3d/soqt" -arch="all" -license="BSD-3-Clause" -makedepends="coin-dev cmake mesa-dev samurai qt5-qtbase-dev doxygen" -options="!check" # test suite consists only of interactive programs -subpackages="$pkgname-dev $pkgname-doc" -source="https://github.com/coin3d/soqt/releases/download/v$pkgver/soqt-$pkgver-src.tar.gz" -builddir="$srcdir/$pkgname" - -build() { - cmake -B build -G Ninja . \ - -DCMAKE_INSTALL_PREFIX=/usr \ - -DCMAKE_BUILD_TYPE=None \ - -DSOQT_BUILD_DOCUMENTATION=ON \ - -DSOQT_BUILD_DOC_MAN=ON - cmake --build build -} - -package() { - DESTDIR="$pkgdir" cmake --install build -} - -sha512sums=" -8cef22cf4214dd03bb4639c1fff77c127bf80f99e3b7fb7c1c21c25a281aa484252414f4a48fa59b8b2485afe7920ce9e86366fd1343badc77b75b78d3ac4c53 soqt-1.6.3-src.tar.gz -" From 7b106bae0caeae93bb41aec73e8b45a9c370304e Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Sat, 31 May 2025 12:36:51 -0400 Subject: [PATCH 04/89] backports/py3-{dateparser,flask-limiter,limits,pathvalidate}: drop to unneeded --- backports/py3-dateparser/APKBUILD | 65 ------------------- backports/py3-flask-limiter/APKBUILD | 55 ---------------- .../our-std-is-good-enough.patch | 22 ------- backports/py3-limits/APKBUILD | 58 ----------------- .../py3-limits/our-std-is-good-enough.patch | 11 ---- .../tests-drop-etcd3-and-k-argument.patch | 24 ------- backports/py3-pathvalidate/APKBUILD | 37 ----------- 7 files changed, 272 deletions(-) delete mode 100644 backports/py3-dateparser/APKBUILD delete mode 100644 backports/py3-flask-limiter/APKBUILD delete mode 100644 backports/py3-flask-limiter/our-std-is-good-enough.patch delete mode 100644 backports/py3-limits/APKBUILD delete mode 100644 backports/py3-limits/our-std-is-good-enough.patch delete mode 100644 backports/py3-limits/tests-drop-etcd3-and-k-argument.patch delete mode 100644 backports/py3-pathvalidate/APKBUILD diff --git a/backports/py3-dateparser/APKBUILD b/backports/py3-dateparser/APKBUILD deleted file mode 100644 index 17b905e..0000000 --- a/backports/py3-dateparser/APKBUILD +++ /dev/null @@ -1,65 +0,0 @@ -maintainer="Hoang Nguyen " -pkgname=py3-dateparser -_pyname=${pkgname#py3-} -pkgver=1.2.0 -pkgrel=0 -pkgdesc="Python parser for human readable dates" -url="https://github.com/scrapinghub/dateparser" -arch="noarch" -license="BSD-3-Clause" -depends=" - python3 - py3-dateutil - py3-regex - py3-tz - py3-tzlocal - " -makedepends=" - py3-gpep517 - py3-setuptools - py3-wheel - " -checkdepends=" - py3-fasttext - py3-gitpython - py3-langdetect - py3-parameterized - py3-parsel - py3-pytest - py3-requests - py3-ruamel.yaml - " -subpackages="$pkgname-pyc" -source="$pkgname-$pkgver.tar.gz::https://github.com/scrapinghub/dateparser/archive/refs/tags/v$pkgver.tar.gz" -builddir="$srcdir/$_pyname-$pkgver" - -build() { - gpep517 build-wheel \ - --wheel-dir .dist \ - --output-fd 3 3>&1 >&2 -} - -check() { - # test_relative_base_setting_2_en fails due to tzinfo mismatch - # test_custom_language_detect_fast_text fails due to wrong file format - _test_filter="not test_parsing_date_should_fail_using_datetime_strptime_if_locale_is_non_english \ - and not test_relative_base_setting_2_en and not test_custom_language_detect_fast_text" - - python3 -m venv --clear --without-pip --system-site-packages .testenv - .testenv/bin/python3 -m installer .dist/*.whl - - # test_hijri.py: needs hijri_converter, test_jalali.py: convertdate - .testenv/bin/python3 -m pytest tests \ - -k "$_test_filter" \ - --ignore tests/test_hijri.py \ - --ignore tests/test_jalali.py -} - -package() { - python3 -m installer -d "$pkgdir" \ - .dist/*.whl -} - -sha512sums=" -2d37115f25c2076c4521b77b89ef1cff3cd0a5233c45beb00d78a5c9b1a384dcd993ff7cdd1f77db95a53ce566cf7d709d46ffa2e63eb468ac954fda178a5b6e py3-dateparser-1.2.0.tar.gz -" diff --git a/backports/py3-flask-limiter/APKBUILD b/backports/py3-flask-limiter/APKBUILD deleted file mode 100644 index cd15f22..0000000 --- a/backports/py3-flask-limiter/APKBUILD +++ /dev/null @@ -1,55 +0,0 @@ -# Contributor: lauren n. liberda -maintainer="lauren n. liberda " -pkgname=py3-flask-limiter -pkgver=3.10.1 -pkgrel=0 -pkgdesc="Rate Limiting extension for Flask" -url="https://github.com/alisaifee/flask-limiter" -arch="noarch" -license="MIT" -depends=" - py3-flask - py3-limits - py3-ordered-set - py3-rich - python3 - " -makedepends="py3-setuptools py3-gpep517" -checkdepends=" - py3-flask-restful - py3-flask-restx - py3-limits-mongodb - py3-limits-redis - py3-pytest - py3-pytest-cov - " -subpackages="$pkgname-pyc" -source=" - https://github.com/alisaifee/flask-limiter/archive/refs/tags/$pkgver/flask-limiter-$pkgver.tar.gz - - our-std-is-good-enough.patch - " -builddir="$srcdir/flask-limiter-$pkgver" -options="!check" # tests depend on unpackaged modules - -build() { - gpep517 build-wheel \ - --wheel-dir .dist \ - --output-fd 3 3>&1 >&2 -} - -check() { - python3 -m venv --clear --without-pip --system-site-packages .testenv - gpep517 install-wheel --destdir .testenv --prefix '' .dist/*.whl - .testenv/bin/python3 -m pytest -} - -package() { - gpep517 install-wheel --destdir "$pkgdir" \ - .dist/*.whl -} - -sha512sums=" -a0d3af6f93d4283309d6df46ddb7fed4c358bbc712c2bd9e6897362c6d086c395cb9587c3d9da283ad757b574fd8c09d909f3c4b76d02ae8aade3e61dbea6aa0 flask-limiter-3.10.1.tar.gz -1b90e9134076cda249695d5ea741db9d205a2ae452c7d6edfe01eb37a221ce6f64b0e8ddcdbbee9b0e0fb16a28e5eabf14f1c1e41e965c7e3b93ea4f42caf553 our-std-is-good-enough.patch -" diff --git a/backports/py3-flask-limiter/our-std-is-good-enough.patch b/backports/py3-flask-limiter/our-std-is-good-enough.patch deleted file mode 100644 index 664143f..0000000 --- a/backports/py3-flask-limiter/our-std-is-good-enough.patch +++ /dev/null @@ -1,22 +0,0 @@ ---- ./flask_limiter/typing.py.orig -+++ ./flask_limiter/typing.py -@@ -11,7 +11,7 @@ - cast, - ) - --from typing_extensions import ParamSpec -+from typing import ParamSpec - - R = TypeVar("R") - P = ParamSpec("P") ---- ./flask_limiter/commands.py.orig -+++ ./flask_limiter/commands.py -@@ -14,7 +14,7 @@ - from rich.table import Table - from rich.theme import Theme - from rich.tree import Tree --from typing_extensions import TypedDict -+from typing import TypedDict - from werkzeug.exceptions import MethodNotAllowed, NotFound - from werkzeug.routing import Rule - diff --git a/backports/py3-limits/APKBUILD b/backports/py3-limits/APKBUILD deleted file mode 100644 index af4516d..0000000 --- a/backports/py3-limits/APKBUILD +++ /dev/null @@ -1,58 +0,0 @@ -# Contributor: lauren n. liberda -# Maintainer: lauren n. liberda -pkgname=py3-limits -pkgver=3.14.1 -pkgrel=0 -pkgdesc="Rate limiting using various strategies and storage backends such as redis & memcached" -url="https://github.com/alisaifee/limits" -arch="noarch" -license="MIT" -depends=" - py3-deprecated - python3 - " -makedepends="py3-setuptools py3-gpep517" -checkdepends=" - py3-flaky - py3-mongo - py3-pytest - py3-pytest-asyncio - py3-pytest-benchmark - py3-pytest-cov - py3-pytest-lazy-fixtures - py3-pymemcache - py3-redis - " -subpackages="$pkgname-pyc" -source=" - https://github.com/alisaifee/limits/archive/refs/tags/$pkgver/limits-$pkgver.tar.gz - - our-std-is-good-enough.patch - tests-drop-etcd3-and-k-argument.patch - " -builddir="$srcdir/limits-$pkgver" - -build() { - gpep517 build-wheel \ - --wheel-dir .dist \ - --output-fd 3 3>&1 >&2 -} - -check() { - python3 -m venv --clear --without-pip --system-site-packages .testenv - gpep517 install-wheel --destdir .testenv --prefix '' .dist/*.whl - .testenv/bin/python3 -m pytest -W ignore::DeprecationWarning \ - -m 'not benchmark and not etcd and not integration and not memcached' \ - -k 'not aio and not Storage and not strategy' -v -} - -package() { - gpep517 install-wheel --destdir "$pkgdir" \ - .dist/*.whl -} - -sha512sums=" -f30c7ec19c2d1edad9ed77dc590ae35717efa3956a4d97e465793e1923a4af08dc9921d90ee95d3c54ce3364b867ca67a9de62c61d627e07a3f50da20bdabd0f limits-3.14.1.tar.gz -271e3b0501f9f144eda8d2e96c93b285714e339b9217385e38cdbce1f4dec88f9c949e9419f8be94885092e7977f7dca29b86b5499e9fead678b42a686c337db our-std-is-good-enough.patch -e84f4db49349a6feba0f701b9d4357c5f66d64c4a23f8ce512528b0f44b5bbef55041c02d92aae3a4cc8d5340846f9e909217beb869a5aeb49df166dd29ae9e3 tests-drop-etcd3-and-k-argument.patch -" diff --git a/backports/py3-limits/our-std-is-good-enough.patch b/backports/py3-limits/our-std-is-good-enough.patch deleted file mode 100644 index 32d7d73..0000000 --- a/backports/py3-limits/our-std-is-good-enough.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- ./limits/typing.py.orig -+++ ./limits/typing.py -@@ -13,7 +13,7 @@ - Union, - ) - --from typing_extensions import ClassVar, Counter, ParamSpec, Protocol, TypeAlias -+from typing import ClassVar, Counter, ParamSpec, Protocol, TypeAlias - - Serializable = Union[int, str, float] - diff --git a/backports/py3-limits/tests-drop-etcd3-and-k-argument.patch b/backports/py3-limits/tests-drop-etcd3-and-k-argument.patch deleted file mode 100644 index cab3a06..0000000 --- a/backports/py3-limits/tests-drop-etcd3-and-k-argument.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff --git a/tests/conftest.py.orig b/tests/conftest.py -index 2aeb758dda6..a9b2b8b2bd1 100644 ---- a/tests/conftest.py.orig -+++ b/tests/conftest.py -@@ -3,7 +3,6 @@ import platform - import socket - import time - --import etcd3 - import pymemcache - import pymemcache.client - import pymongo -diff --git a/pytest.ini.orig b/pytest.ini -index 38c40a713d0..8c6659e21c2 100644 ---- a/pytest.ini.orig -+++ b/pytest.ini -@@ -17,7 +17,6 @@ addopts = - -rfEsxX - --cov=limits - -m "not benchmark" -- -K - filterwarnings = - error - module::ResourceWarning diff --git a/backports/py3-pathvalidate/APKBUILD b/backports/py3-pathvalidate/APKBUILD deleted file mode 100644 index 94d2053..0000000 --- a/backports/py3-pathvalidate/APKBUILD +++ /dev/null @@ -1,37 +0,0 @@ -# Contributor: lauren n. liberda -# Maintainer: lauren n. liberda -pkgname=py3-pathvalidate -pkgver=3.2.3 -pkgrel=0 -pkgdesc="Python library to sanitize/validate a string such as filenames/file-paths/etc" -url="https://github.com/thombashi/pathvalidate" -arch="noarch" -license="MIT" -depends="python3" -makedepends=" - py3-gpep517 - py3-setuptools - py3-setuptools_scm - py3-wheel - " -checkdepends="py3-pytest py3-click py3-faker" -options="!check" # tests require unpackaged unmaintained dependencies -subpackages="$pkgname-pyc" -source="https://github.com/thombashi/pathvalidate/archive/refs/tags/v$pkgver/pathvalidate-$pkgver.tar.gz" -builddir="$srcdir/pathvalidate-$pkgver" - -build() { - export SETUPTOOLS_SCM_PRETEND_VERSION="$pkgver" - gpep517 build-wheel \ - --wheel-dir .dist \ - --output-fd 3 3>&1 >&2 -} - -package() { - python3 -m installer -d "$pkgdir" \ - .dist/*.whl -} - -sha512sums=" -674cddcf94d4f03aff5fe968c4c678f6fa510c8ff4dfd9232b2b075ccfaa17de86a08d497c10664399694c5e72b354d452d75f11f6b40d2f9778a2466af0b265 pathvalidate-3.2.3.tar.gz -" From f2ad704226c692c1e790245c52591991a6983463 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Sun, 8 Jun 2025 15:08:38 -0400 Subject: [PATCH 05/89] ci: add checks for pmos --- .forgejo/bin/check_ver.sh | 10 +++++++++- .forgejo/workflows/check-pmos.yml | 27 +++++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 .forgejo/workflows/check-pmos.yml diff --git a/.forgejo/bin/check_ver.sh b/.forgejo/bin/check_ver.sh index 107aec2..0f3f3a9 100755 --- a/.forgejo/bin/check_ver.sh +++ b/.forgejo/bin/check_ver.sh @@ -25,6 +25,7 @@ repo=${downstream/*\/} release=${downstream/\/$repo/} release=${release/*\/} release=${release/v} +arch=$(apk --print-arch) is_semantic() { local downstream_version_dot=${1//[^.]} @@ -34,8 +35,9 @@ is_semantic() { return 1 } + echo "Checking $downstream for out of date packages" -curl --silent $downstream/x86_64/APKINDEX.tar.gz | tar -O -zx APKINDEX > APKINDEX +curl --silent $downstream/$arch/APKINDEX.tar.gz | tar -O -zx APKINDEX > APKINDEX if [ "$ALL_PACKAGES" == "true" ]; then owned_by_you=$(awk -F ':' '{if($1=="o"){print $2}}' APKINDEX | sort | uniq) @@ -89,6 +91,12 @@ for pkg in $owned_by_you; do ;; # we want to track LTS rather than latest arm-trusted-firmware) upstream_version=$(curl --fail -X GET -s -H 'Content-Type: application/json' "https://release-monitoring.org/api/project/Alpine/$pkg" | jq -r ".stable_versions.[] | match(\"${downstream_version%.*}.*\").string" | head -n1);; + # also tags releases that we can omit + linux-radxa) upstream_version=${upstream_version/-*};; + # track linux-rpi + linux-clockworkpi-uconsole-rpi) + upstream_version=$(curl --silent https://dl-cdn.alpinelinux.org/alpine/edge/main/aarch64/APKINDEX.tar.gz | tar -O -zx APKINDEX | sed -n "/^P:linux-rpi$/,/^$/p" APKINDEX | awk -F ':' '{if($1=="V"){print $2}}' | sort -V | tail -n 1) + upstream_version=${upstream_version/-*} *) # continues when package version scheme is not semantic, but minor_only or fix_only is set if [ -n "${minor_only}" ] || [ -n "${fix_only}" ]; then diff --git a/.forgejo/workflows/check-pmos.yml b/.forgejo/workflows/check-pmos.yml new file mode 100644 index 0000000..d37db60 --- /dev/null +++ b/.forgejo/workflows/check-pmos.yml @@ -0,0 +1,27 @@ +on: + workflow_dispatch: + + schedule: + - cron: '0 5 * * *' + +jobs: + check-community-pmos: + name: Check pmos(edge) repo + runs-on: aarch64 + container: + image: alpine:latest + env: + downstream: http://mirror.postmarketos.org/postmarketos/master + ISSUE_TOKEN: ${{ secrets.issue_token }} + LABEL_NUMBER: 14 + steps: + - name: Environment setup + run: apk add grep coreutils gawk curl wget bash nodejs git jq sed + - name: Get scripts + uses: actions/checkout@v4 + with: + fetch-depth: 1 + - name: Check out-of-date packages + run: ${{ github.workspace }}/.forgejo/bin/check_ver.sh + - name: Create issues + run: ${{ github.workspace }}/.forgejo/bin/create_issue.sh From 3611b942ed58d582e8f5387139e7e4c6636aaf9a Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Sun, 8 Jun 2025 15:09:58 -0400 Subject: [PATCH 06/89] ci: check_ver lint --- .forgejo/bin/check_ver.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/.forgejo/bin/check_ver.sh b/.forgejo/bin/check_ver.sh index 0f3f3a9..b63220e 100755 --- a/.forgejo/bin/check_ver.sh +++ b/.forgejo/bin/check_ver.sh @@ -97,6 +97,7 @@ for pkg in $owned_by_you; do linux-clockworkpi-uconsole-rpi) upstream_version=$(curl --silent https://dl-cdn.alpinelinux.org/alpine/edge/main/aarch64/APKINDEX.tar.gz | tar -O -zx APKINDEX | sed -n "/^P:linux-rpi$/,/^$/p" APKINDEX | awk -F ':' '{if($1=="V"){print $2}}' | sort -V | tail -n 1) upstream_version=${upstream_version/-*} + ;; *) # continues when package version scheme is not semantic, but minor_only or fix_only is set if [ -n "${minor_only}" ] || [ -n "${fix_only}" ]; then From 3da0a268ee319ccbf15289f00dc543a552ca1966 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Sun, 8 Jun 2025 15:12:56 -0400 Subject: [PATCH 07/89] ci: add additional package feature and track linux-clockworkpi-uconsole-rpi --- .forgejo/bin/check_ver.sh | 4 ++++ .forgejo/workflows/check-pmos.yml | 1 + 2 files changed, 5 insertions(+) diff --git a/.forgejo/bin/check_ver.sh b/.forgejo/bin/check_ver.sh index b63220e..46e3e48 100755 --- a/.forgejo/bin/check_ver.sh +++ b/.forgejo/bin/check_ver.sh @@ -19,6 +19,7 @@ # optional env variables # ALL_PACKAGES: when true, ignore is package is owned by me # skip_package: array of packages to skip +# add_package: array of additional packages to check # repo=${downstream/*\/} @@ -47,6 +48,9 @@ else echo "Found $(printf '%s\n' $owned_by_you | wc -l ) packages owned by you" fi +# add additionnal packages +owned_by_you="$owned_by_you $add_package" + rm -f out_of_date not_in_anitya for pkg in $owned_by_you; do diff --git a/.forgejo/workflows/check-pmos.yml b/.forgejo/workflows/check-pmos.yml index d37db60..fc10d52 100644 --- a/.forgejo/workflows/check-pmos.yml +++ b/.forgejo/workflows/check-pmos.yml @@ -14,6 +14,7 @@ jobs: downstream: http://mirror.postmarketos.org/postmarketos/master ISSUE_TOKEN: ${{ secrets.issue_token }} LABEL_NUMBER: 14 + add_package: linux-clockworkpi-uconsole-rpi steps: - name: Environment setup run: apk add grep coreutils gawk curl wget bash nodejs git jq sed From 7a2ebe9cfedba6c6b5741b1912753afd627f90fa Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Sun, 8 Jun 2025 15:15:57 -0400 Subject: [PATCH 08/89] ci: skip my device packages --- .forgejo/workflows/check-pmos.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.forgejo/workflows/check-pmos.yml b/.forgejo/workflows/check-pmos.yml index fc10d52..ce3db67 100644 --- a/.forgejo/workflows/check-pmos.yml +++ b/.forgejo/workflows/check-pmos.yml @@ -15,6 +15,7 @@ jobs: ISSUE_TOKEN: ${{ secrets.issue_token }} LABEL_NUMBER: 14 add_package: linux-clockworkpi-uconsole-rpi + skip_package: device-clockworkpi-uconsole-radxa-cm5 device-pine64-pinenote steps: - name: Environment setup run: apk add grep coreutils gawk curl wget bash nodejs git jq sed From d746dda5cbb10542ba4cf476aa77722ce0e8f5a8 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Sun, 8 Jun 2025 15:34:11 -0400 Subject: [PATCH 09/89] ci: override repo_name --- .forgejo/bin/check_ver.sh | 4 +++- .forgejo/workflows/check-pmos.yml | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.forgejo/bin/check_ver.sh b/.forgejo/bin/check_ver.sh index 46e3e48..8a88afb 100755 --- a/.forgejo/bin/check_ver.sh +++ b/.forgejo/bin/check_ver.sh @@ -20,12 +20,14 @@ # ALL_PACKAGES: when true, ignore is package is owned by me # skip_package: array of packages to skip # add_package: array of additional packages to check +# repo_name: override repo name # repo=${downstream/*\/} release=${downstream/\/$repo/} release=${release/*\/} release=${release/v} +[ -n "$repo_name" ] && repo=$repo_name arch=$(apk --print-arch) is_semantic() { @@ -99,7 +101,7 @@ for pkg in $owned_by_you; do linux-radxa) upstream_version=${upstream_version/-*};; # track linux-rpi linux-clockworkpi-uconsole-rpi) - upstream_version=$(curl --silent https://dl-cdn.alpinelinux.org/alpine/edge/main/aarch64/APKINDEX.tar.gz | tar -O -zx APKINDEX | sed -n "/^P:linux-rpi$/,/^$/p" APKINDEX | awk -F ':' '{if($1=="V"){print $2}}' | sort -V | tail -n 1) + upstream_version=$(curl --silent https://dl-cdn.alpinelinux.org/alpine/edge/main/aarch64/APKINDEX.tar.gz | tar -O -zx APKINDEX | sed -n "/^P:linux-rpi$/,/^$/p" | awk -F ':' '{if($1=="V"){print $2}}' | sort -V | tail -n 1) upstream_version=${upstream_version/-*} ;; *) diff --git a/.forgejo/workflows/check-pmos.yml b/.forgejo/workflows/check-pmos.yml index ce3db67..f6a98ca 100644 --- a/.forgejo/workflows/check-pmos.yml +++ b/.forgejo/workflows/check-pmos.yml @@ -16,6 +16,7 @@ jobs: LABEL_NUMBER: 14 add_package: linux-clockworkpi-uconsole-rpi skip_package: device-clockworkpi-uconsole-radxa-cm5 device-pine64-pinenote + repo_name: pmos steps: - name: Environment setup run: apk add grep coreutils gawk curl wget bash nodejs git jq sed From eea9bc1537551b223150c1a8740a64bcd7da9339 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Sun, 8 Jun 2025 15:41:29 -0400 Subject: [PATCH 10/89] ci: remove repo_name add special case handling of repo name for postmarketos --- .forgejo/bin/check_ver.sh | 5 +++-- .forgejo/workflows/check-pmos.yml | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.forgejo/bin/check_ver.sh b/.forgejo/bin/check_ver.sh index 8a88afb..5634b74 100755 --- a/.forgejo/bin/check_ver.sh +++ b/.forgejo/bin/check_ver.sh @@ -20,14 +20,15 @@ # ALL_PACKAGES: when true, ignore is package is owned by me # skip_package: array of packages to skip # add_package: array of additional packages to check -# repo_name: override repo name # repo=${downstream/*\/} release=${downstream/\/$repo/} release=${release/*\/} release=${release/v} -[ -n "$repo_name" ] && repo=$repo_name +# add special case for postmarketos +[ "$release" == "postmarketos" ] && { release=$repo; repo="pmos"; } +[ "$release" == "master" ] && release=edge arch=$(apk --print-arch) is_semantic() { diff --git a/.forgejo/workflows/check-pmos.yml b/.forgejo/workflows/check-pmos.yml index f6a98ca..ce3db67 100644 --- a/.forgejo/workflows/check-pmos.yml +++ b/.forgejo/workflows/check-pmos.yml @@ -16,7 +16,6 @@ jobs: LABEL_NUMBER: 14 add_package: linux-clockworkpi-uconsole-rpi skip_package: device-clockworkpi-uconsole-radxa-cm5 device-pine64-pinenote - repo_name: pmos steps: - name: Environment setup run: apk add grep coreutils gawk curl wget bash nodejs git jq sed From edac436331b683c7fbb5e03c11312646c7c5ad02 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Sun, 8 Jun 2025 20:10:29 -0400 Subject: [PATCH 11/89] ci: fix check community workflow --- .forgejo/workflows/check-community.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.forgejo/workflows/check-community.yml b/.forgejo/workflows/check-community.yml index 8c5f3c5..8a88ce8 100644 --- a/.forgejo/workflows/check-community.yml +++ b/.forgejo/workflows/check-community.yml @@ -31,11 +31,11 @@ jobs: container: image: alpine:latest env: - downstream: https://dl-cdn.alpinelinux.org/alpine/3.22/community + downstream: https://dl-cdn.alpinelinux.org/alpine/v3.22/community ISSUE_TOKEN: ${{ secrets.issue_token }} LABEL_NUMBER: 13 fix_only: all - skip_package: dotnet9-stage0 dotnet8-stage0 + skip_package: dotnet9-stage0 dotnet8-stage0 py3-boto3 py3-botocore steps: - name: Environment setup run: apk add grep coreutils gawk curl wget bash nodejs git jq sed From 7c780b5d0f96e0c53c5a92a0764cf4f9d64eb09e Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Sun, 8 Jun 2025 20:17:25 -0400 Subject: [PATCH 12/89] ci: fix special case for looking-glass --- .forgejo/bin/check_ver.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.forgejo/bin/check_ver.sh b/.forgejo/bin/check_ver.sh index 5634b74..c65799b 100755 --- a/.forgejo/bin/check_ver.sh +++ b/.forgejo/bin/check_ver.sh @@ -69,7 +69,7 @@ for pkg in $owned_by_you; do # special cases where package is not semantic case $pkg in # release-monitoring omits the extra B, while we keep it but put it after the version no. - looking-glass) upstream_version="${upstream_version/b}";; + looking-glass) upstream_version="$(curl --fail -X GET -s -H 'Content-Type: application/json' "https://release-monitoring.org/api/project/Alpine/$pkg" | jq -r '.stable_versions.[]' | head -n1)b";; # we want to track both Firefox security upgrades + Zotero upgrades zotero) commit=$(sed -n "/^P:$pkg$/,/^$/p" APKINDEX | awk -F ':' '{if($1=="c"){print $2}}') From 923797f1b99aae642908c41f39bf0d5e86907d7f Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 9 Jun 2025 11:35:23 -0400 Subject: [PATCH 13/89] ci: fix special case for linux-radxa --- .forgejo/bin/check_ver.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.forgejo/bin/check_ver.sh b/.forgejo/bin/check_ver.sh index c65799b..f1d5772 100755 --- a/.forgejo/bin/check_ver.sh +++ b/.forgejo/bin/check_ver.sh @@ -99,7 +99,10 @@ for pkg in $owned_by_you; do # we want to track LTS rather than latest arm-trusted-firmware) upstream_version=$(curl --fail -X GET -s -H 'Content-Type: application/json' "https://release-monitoring.org/api/project/Alpine/$pkg" | jq -r ".stable_versions.[] | match(\"${downstream_version%.*}.*\").string" | head -n1);; # also tags releases that we can omit - linux-radxa) upstream_version=${upstream_version/-*};; + linux-radxa) + upstream_version=$(curl --fail -X GET -s -H 'Content-Type: application/json' "https://release-monitoring.org/api/project/Alpine/$pkg" | jq -r '.stable_versions.[]' | head -n1) + upstream_version=${upstream_version/-*} + ;; # track linux-rpi linux-clockworkpi-uconsole-rpi) upstream_version=$(curl --silent https://dl-cdn.alpinelinux.org/alpine/edge/main/aarch64/APKINDEX.tar.gz | tar -O -zx APKINDEX | sed -n "/^P:linux-rpi$/,/^$/p" | awk -F ':' '{if($1=="V"){print $2}}' | sort -V | tail -n 1) From f7e711f9a128f9ce745bf4a97f6a2b00f16e1325 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Sat, 14 Jun 2025 23:25:52 -0400 Subject: [PATCH 14/89] ci: do not track linux-clockworkpi-uconsole-rpi --- .forgejo/workflows/check-pmos.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.forgejo/workflows/check-pmos.yml b/.forgejo/workflows/check-pmos.yml index ce3db67..d7dbcc0 100644 --- a/.forgejo/workflows/check-pmos.yml +++ b/.forgejo/workflows/check-pmos.yml @@ -14,7 +14,6 @@ jobs: downstream: http://mirror.postmarketos.org/postmarketos/master ISSUE_TOKEN: ${{ secrets.issue_token }} LABEL_NUMBER: 14 - add_package: linux-clockworkpi-uconsole-rpi skip_package: device-clockworkpi-uconsole-radxa-cm5 device-pine64-pinenote steps: - name: Environment setup From 5ea7fbce202b31f2a9f85cd1e85e5cafbe6dca00 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Sun, 15 Jun 2025 00:29:52 -0400 Subject: [PATCH 15/89] ci: track linux-pine64-pinenote and linux-radxa --- .forgejo/bin/check_ver.sh | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/.forgejo/bin/check_ver.sh b/.forgejo/bin/check_ver.sh index f1d5772..6832045 100755 --- a/.forgejo/bin/check_ver.sh +++ b/.forgejo/bin/check_ver.sh @@ -103,11 +103,15 @@ for pkg in $owned_by_you; do upstream_version=$(curl --fail -X GET -s -H 'Content-Type: application/json' "https://release-monitoring.org/api/project/Alpine/$pkg" | jq -r '.stable_versions.[]' | head -n1) upstream_version=${upstream_version/-*} ;; - # track linux-rpi - linux-clockworkpi-uconsole-rpi) - upstream_version=$(curl --silent https://dl-cdn.alpinelinux.org/alpine/edge/main/aarch64/APKINDEX.tar.gz | tar -O -zx APKINDEX | sed -n "/^P:linux-rpi$/,/^$/p" | awk -F ':' '{if($1=="V"){print $2}}' | sort -V | tail -n 1) + # track linux-pine64-pinenote against linux-edge + linux-pine64-pinenote) + upstream_version=$(curl --silent https://dl-cdn.alpinelinux.org/alpine/edge/community/aarch64/APKINDEX.tar.gz | tar -O -zx APKINDEX | sed -n "/^P:linux-edge$/,/^$/p" | awk -F ':' '{if($1=="V"){print $2}}' | sort -V | tail -n 1) upstream_version=${upstream_version/-*} ;; + # track linux-radxa against 6.1 SLTS + linux-radxa) + upstream_version=$(curl --fail -X GET -s -H 'Content-Type: application/json' "https://release-monitoring.org/api/project/315000"| jq -r --arg downstream_version "${downstream_version%.*}.[0-9].*" '.stable_versions.[] | match($downstream_version).string' | head -n1) + ;; *) # continues when package version scheme is not semantic, but minor_only or fix_only is set if [ -n "${minor_only}" ] || [ -n "${fix_only}" ]; then From a48dd2cc708b91e8e12480f7980337bb242459e1 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Sun, 15 Jun 2025 00:47:10 -0400 Subject: [PATCH 16/89] ci: fix linux kernel tracking --- .forgejo/bin/check_ver.sh | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/.forgejo/bin/check_ver.sh b/.forgejo/bin/check_ver.sh index 6832045..b7b3885 100755 --- a/.forgejo/bin/check_ver.sh +++ b/.forgejo/bin/check_ver.sh @@ -98,17 +98,12 @@ for pkg in $owned_by_you; do ;; # we want to track LTS rather than latest arm-trusted-firmware) upstream_version=$(curl --fail -X GET -s -H 'Content-Type: application/json' "https://release-monitoring.org/api/project/Alpine/$pkg" | jq -r ".stable_versions.[] | match(\"${downstream_version%.*}.*\").string" | head -n1);; - # also tags releases that we can omit - linux-radxa) - upstream_version=$(curl --fail -X GET -s -H 'Content-Type: application/json' "https://release-monitoring.org/api/project/Alpine/$pkg" | jq -r '.stable_versions.[]' | head -n1) - upstream_version=${upstream_version/-*} - ;; - # track linux-pine64-pinenote against linux-edge + # track linux-pine64-pinenote against latest linux-pine64-pinenote) - upstream_version=$(curl --silent https://dl-cdn.alpinelinux.org/alpine/edge/community/aarch64/APKINDEX.tar.gz | tar -O -zx APKINDEX | sed -n "/^P:linux-edge$/,/^$/p" | awk -F ':' '{if($1=="V"){print $2}}' | sort -V | tail -n 1) - upstream_version=${upstream_version/-*} + upstream_version=$(curl --fail -X GET -s -H 'Content-Type: application/json' "https://release-monitoring.org/api/project/315000" | jq -r --arg downstream_version "${downstream_version%.*}.[0-9].*" '.stable_versions.[]' | head -n1) + ;; - # track linux-radxa against 6.1 SLTS + # track linux-radxa against its major version linux-radxa) upstream_version=$(curl --fail -X GET -s -H 'Content-Type: application/json' "https://release-monitoring.org/api/project/315000"| jq -r --arg downstream_version "${downstream_version%.*}.[0-9].*" '.stable_versions.[] | match($downstream_version).string' | head -n1) ;; @@ -138,7 +133,7 @@ for pkg in $owned_by_you; do echo "$pkg" >> not_in_anitya fi elif [ "$downstream_version" != "$(printf '%s\n' $upstream_version $downstream_version | sort -V | head -n 1)" ]; then - echo "$pkg higher downstream" + echo "$pkg higher downstream $upstream_version" continue elif [ "$upstream_version" != "$downstream_version" ]; then echo "$pkg upstream version $upstream_version does not match downstream version $downstream_version in $release" From 22a33dd83d219335d1b43a455088d63b3f57f490 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Sun, 15 Jun 2025 00:48:26 -0400 Subject: [PATCH 17/89] ci: skip u-boot-radxa-cm5 --- .forgejo/workflows/check-pmos.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.forgejo/workflows/check-pmos.yml b/.forgejo/workflows/check-pmos.yml index d7dbcc0..0785667 100644 --- a/.forgejo/workflows/check-pmos.yml +++ b/.forgejo/workflows/check-pmos.yml @@ -14,7 +14,7 @@ jobs: downstream: http://mirror.postmarketos.org/postmarketos/master ISSUE_TOKEN: ${{ secrets.issue_token }} LABEL_NUMBER: 14 - skip_package: device-clockworkpi-uconsole-radxa-cm5 device-pine64-pinenote + skip_package: device-clockworkpi-uconsole-radxa-cm5 device-pine64-pinenote u-boot-radxa-cm5 steps: - name: Environment setup run: apk add grep coreutils gawk curl wget bash nodejs git jq sed From 2fa99e56c77c50799a999ad79ab0212f0468d095 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Sun, 15 Jun 2025 00:54:08 -0400 Subject: [PATCH 18/89] ci: rollback linux-radxa change --- .forgejo/bin/check_ver.sh | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.forgejo/bin/check_ver.sh b/.forgejo/bin/check_ver.sh index b7b3885..9f00b5c 100755 --- a/.forgejo/bin/check_ver.sh +++ b/.forgejo/bin/check_ver.sh @@ -103,9 +103,11 @@ for pkg in $owned_by_you; do upstream_version=$(curl --fail -X GET -s -H 'Content-Type: application/json' "https://release-monitoring.org/api/project/315000" | jq -r --arg downstream_version "${downstream_version%.*}.[0-9].*" '.stable_versions.[]' | head -n1) ;; - # track linux-radxa against its major version + # track linux-radxa against BSP kernel (usually got awful late linux-radxa) - upstream_version=$(curl --fail -X GET -s -H 'Content-Type: application/json' "https://release-monitoring.org/api/project/315000"| jq -r --arg downstream_version "${downstream_version%.*}.[0-9].*" '.stable_versions.[] | match($downstream_version).string' | head -n1) + upstream_version=$(curl --fail -X GET -s -H 'Content-Type: application/json' "https://release-monitoring.org/api/project/Alpine/$pkg" | jq -r '.stable_versions.[]' | h +ead -n1) + upstream_version=${upstream_version/-*} ;; *) # continues when package version scheme is not semantic, but minor_only or fix_only is set From c600b841b3d51906355e23911568cf1995a7c788 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Wed, 9 Jul 2025 03:46:59 -0400 Subject: [PATCH 19/89] ci: add workaround to issues not being created for edge when already existing for stable --- .forgejo/bin/check_ver.sh | 9 ++++----- .forgejo/bin/create_issue.sh | 22 ++++++++++++++++++---- .forgejo/workflows/check-pmos.yml | 2 +- 3 files changed, 23 insertions(+), 10 deletions(-) diff --git a/.forgejo/bin/check_ver.sh b/.forgejo/bin/check_ver.sh index 9f00b5c..69b5c00 100755 --- a/.forgejo/bin/check_ver.sh +++ b/.forgejo/bin/check_ver.sh @@ -26,10 +26,10 @@ repo=${downstream/*\/} release=${downstream/\/$repo/} release=${release/*\/} release=${release/v} -# add special case for postmarketos -[ "$release" == "postmarketos" ] && { release=$repo; repo="pmos"; } -[ "$release" == "master" ] && release=edge arch=$(apk --print-arch) +# add special case for postmarketos +[ "$release" == "postmarketos" ] && { release=$repo; repo="pmos"; arch="aarch64"; } +[ "$release" == "master" ] && release=edge is_semantic() { local downstream_version_dot=${1//[^.]} @@ -105,8 +105,7 @@ for pkg in $owned_by_you; do ;; # track linux-radxa against BSP kernel (usually got awful late linux-radxa) - upstream_version=$(curl --fail -X GET -s -H 'Content-Type: application/json' "https://release-monitoring.org/api/project/Alpine/$pkg" | jq -r '.stable_versions.[]' | h -ead -n1) + upstream_version=$(curl --fail -X GET -s -H 'Content-Type: application/json' "https://release-monitoring.org/api/project/Alpine/$pkg" | jq -r '.stable_versions.[]' | head -n1) upstream_version=${upstream_version/-*} ;; *) diff --git a/.forgejo/bin/create_issue.sh b/.forgejo/bin/create_issue.sh index c8e5daa..3e3048d 100755 --- a/.forgejo/bin/create_issue.sh +++ b/.forgejo/bin/create_issue.sh @@ -16,8 +16,15 @@ does_it_exist() { release=$5 query="$repo/$name: upgrade to $upstream_version" - if [ "$release" != "edge" ]; then query="[$release] $query"; fi - query="%22$(echo $query | sed 's| |%20|g' | sed 's|:|%3A|g' | sed 's|/|%2F|g' | sed 's|\[|%5B|g' | sed 's|\]|%5D|g')%22" + if [ "$release" != "edge" ]; then + query="%22[$release] $query%22" + elif [ "$repo" != "pmos" ]; then + # workaround to this query matching both stable and edge branch + query="%22$query%22&labels=Edge" + else + query="%22$query%22" + fi + query="$(echo $query | sed 's| |%20|g' | sed 's|:|%3A|g' | sed 's|/|%2F|g' | sed 's|\[|%5B|g' | sed 's|\]|%5D|g')" result="$(curl --silent -X 'GET' \ "$GITHUB_SERVER_URL/api/v1/repos/$GITHUB_REPOSITORY/issues?state=open&q=$query&type=issues&sort=latest" \ @@ -38,8 +45,15 @@ is_it_old() { release=$5 query="$repo/$name: upgrade to" - if [ "$release" != "edge" ]; then query="[$release] $query"; fi - query="%22$(echo $query | sed 's| |%20|g' | sed 's|:|%3A|g' | sed 's|/|%2F|g' | sed 's|\[|%5B|g' | sed 's|\]|%5D|g')%22" + if [ "$release" != "edge" ]; then + query="%22[$release] $query%22" + elif [ "$repo" != "pmos" ]; then + # workaround to this query matching both stable and edge branch + query="%22$query%22&labels=Edge" + else + query="%22$query%22" + fi + query="$(echo $query | sed 's| |%20|g' | sed 's|:|%3A|g' | sed 's|/|%2F|g' | sed 's|\[|%5B|g' | sed 's|\]|%5D|g')" result="$(curl --silent -X 'GET' \ "$GITHUB_SERVER_URL/api/v1/repos/$GITHUB_REPOSITORY/issues?state=open&q=$query&type=issues&sort=latest" \ diff --git a/.forgejo/workflows/check-pmos.yml b/.forgejo/workflows/check-pmos.yml index 0785667..a24bdcb 100644 --- a/.forgejo/workflows/check-pmos.yml +++ b/.forgejo/workflows/check-pmos.yml @@ -7,7 +7,7 @@ on: jobs: check-community-pmos: name: Check pmos(edge) repo - runs-on: aarch64 + runs-on: x86_64 container: image: alpine:latest env: From d0b5791120d1275adde797ef41d5e2fe2c73c954 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Thu, 10 Jul 2025 01:16:00 -0400 Subject: [PATCH 20/89] ci: add workaround exception for user repo --- .forgejo/bin/create_issue.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.forgejo/bin/create_issue.sh b/.forgejo/bin/create_issue.sh index 3e3048d..bb4ea79 100755 --- a/.forgejo/bin/create_issue.sh +++ b/.forgejo/bin/create_issue.sh @@ -18,7 +18,7 @@ does_it_exist() { query="$repo/$name: upgrade to $upstream_version" if [ "$release" != "edge" ]; then query="%22[$release] $query%22" - elif [ "$repo" != "pmos" ]; then + elif [ "$repo" != "pmos" ] && [ "$repo" != "user" ]; then # workaround to this query matching both stable and edge branch query="%22$query%22&labels=Edge" else @@ -47,7 +47,7 @@ is_it_old() { query="$repo/$name: upgrade to" if [ "$release" != "edge" ]; then query="%22[$release] $query%22" - elif [ "$repo" != "pmos" ]; then + elif [ "$repo" != "pmos" ] && [ "$repo" != "user" ]; then # workaround to this query matching both stable and edge branch query="%22$query%22&labels=Edge" else From b621ae671673d39012c98cd3c834996303cf8337 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Thu, 10 Jul 2025 17:46:21 -0400 Subject: [PATCH 21/89] ci: skip dotnet6-stage0 in workflow --- .forgejo/workflows/check-testing.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.forgejo/workflows/check-testing.yml b/.forgejo/workflows/check-testing.yml index 2137944..cf54831 100644 --- a/.forgejo/workflows/check-testing.yml +++ b/.forgejo/workflows/check-testing.yml @@ -14,7 +14,7 @@ jobs: downstream: https://dl-cdn.alpinelinux.org/alpine/edge/testing ISSUE_TOKEN: ${{ secrets.issue_token }} LABEL_NUMBER: 4 - skip_package: dotnet6-stage dotnet6-build + skip_package: dotnet6-stage0 dotnet6-build steps: - name: Environment setup run: apk add grep coreutils gawk curl wget bash nodejs git jq sed From 9c137f0b9d0c2162e9d8f0da872a178ce4dea10f Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Sun, 10 Aug 2025 17:00:46 -0400 Subject: [PATCH 22/89] ci: fix tracking of raspberrypi-usbboot --- .forgejo/bin/check_ver.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.forgejo/bin/check_ver.sh b/.forgejo/bin/check_ver.sh index 69b5c00..ee1c49f 100755 --- a/.forgejo/bin/check_ver.sh +++ b/.forgejo/bin/check_ver.sh @@ -108,6 +108,8 @@ for pkg in $owned_by_you; do upstream_version=$(curl --fail -X GET -s -H 'Content-Type: application/json' "https://release-monitoring.org/api/project/Alpine/$pkg" | jq -r '.stable_versions.[]' | head -n1) upstream_version=${upstream_version/-*} ;; + # removes last bit in github tag from usbboot release, as not needed + raspberrypi-usbboot) curl --fail -X GET -s -H 'Content-Type: application/json' "https://release-monitoring.org/api/project/Alpine/$pkg" | jq -r '.stable_versions.[]' | head -n1 | sed 's|-.*||';; *) # continues when package version scheme is not semantic, but minor_only or fix_only is set if [ -n "${minor_only}" ] || [ -n "${fix_only}" ]; then From 4a5617805a898a9ebf219c596dc2e0b8afe60fdf Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Sun, 10 Aug 2025 17:04:57 -0400 Subject: [PATCH 23/89] ci: track u-boot-pine64-pinenote against u-boot mainline version --- .forgejo/bin/check_ver.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.forgejo/bin/check_ver.sh b/.forgejo/bin/check_ver.sh index ee1c49f..f6d3716 100755 --- a/.forgejo/bin/check_ver.sh +++ b/.forgejo/bin/check_ver.sh @@ -68,6 +68,8 @@ for pkg in $owned_by_you; do # special cases where package is not semantic case $pkg in + # track u-boot-pine64-pinenote against mainline u-boot + u-boot-pine64-pinenote) upstream_version="$(curl --fail -X GET -s -H 'Content-Type: application/json' "https://release-monitoring.org/api/project/Alpine/u-boot" | jq -r '.stable_versions.[]' | head -n1)";; # release-monitoring omits the extra B, while we keep it but put it after the version no. looking-glass) upstream_version="$(curl --fail -X GET -s -H 'Content-Type: application/json' "https://release-monitoring.org/api/project/Alpine/$pkg" | jq -r '.stable_versions.[]' | head -n1)b";; # we want to track both Firefox security upgrades + Zotero upgrades From 4adb8575d1a101aa4740630f829ed561e4ec8a1e Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Sun, 10 Aug 2025 17:12:37 -0400 Subject: [PATCH 24/89] ci: linux-pine64-pinenote: track latest and current linux release --- .forgejo/bin/check_ver.sh | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/.forgejo/bin/check_ver.sh b/.forgejo/bin/check_ver.sh index f6d3716..6014831 100755 --- a/.forgejo/bin/check_ver.sh +++ b/.forgejo/bin/check_ver.sh @@ -102,8 +102,15 @@ for pkg in $owned_by_you; do arm-trusted-firmware) upstream_version=$(curl --fail -X GET -s -H 'Content-Type: application/json' "https://release-monitoring.org/api/project/Alpine/$pkg" | jq -r ".stable_versions.[] | match(\"${downstream_version%.*}.*\").string" | head -n1);; # track linux-pine64-pinenote against latest linux-pine64-pinenote) - upstream_version=$(curl --fail -X GET -s -H 'Content-Type: application/json' "https://release-monitoring.org/api/project/315000" | jq -r --arg downstream_version "${downstream_version%.*}.[0-9].*" '.stable_versions.[]' | head -n1) + upstream_version=$(curl --fail -X GET -s -H 'Content-Type: application/json' "https://release-monitoring.org/api/project/315000" | jq -r ".stable_versions.[] | match(\"${downstream_version%.*}.*\").string" | head -n1) + latest_version=$(curl --fail -X GET -s -H 'Content-Type: application/json' "https://release-monitoring.org/api/project/315000" | jq -r ".stable_versions.[]" | head -n1) + # append version number to signal that this is not latest major version + if [ "${upstream_version/.*}" != "${latest_version/.*}" ]; then + echo "$pkg(${latest_version/.*.*}) major version available" + echo "$pkg(${latest_version/.*.*}) $downstream_version $latest_version $repo $release" >> out_of_date + pkg="$pkg(${upstream_version/.*.*})" + fi ;; # track linux-radxa against BSP kernel (usually got awful late linux-radxa) From 7332be756165eb2d7e0e86294d6f030c82442fe1 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Sun, 10 Aug 2025 17:14:47 -0400 Subject: [PATCH 25/89] ci: linux-pine64-pinenote: fix tracking latest release --- .forgejo/bin/check_ver.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.forgejo/bin/check_ver.sh b/.forgejo/bin/check_ver.sh index 6014831..91e80bc 100755 --- a/.forgejo/bin/check_ver.sh +++ b/.forgejo/bin/check_ver.sh @@ -106,7 +106,7 @@ for pkg in $owned_by_you; do latest_version=$(curl --fail -X GET -s -H 'Content-Type: application/json' "https://release-monitoring.org/api/project/315000" | jq -r ".stable_versions.[]" | head -n1) # append version number to signal that this is not latest major version - if [ "${upstream_version/.*}" != "${latest_version/.*}" ]; then + if [ "${upstream_version/.*.*}" != "${latest_version/.*.*}" ]; then echo "$pkg(${latest_version/.*.*}) major version available" echo "$pkg(${latest_version/.*.*}) $downstream_version $latest_version $repo $release" >> out_of_date pkg="$pkg(${upstream_version/.*.*})" From 8789a20256caf0cb38a733cb96a5cd28991bf8c1 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Sun, 10 Aug 2025 17:23:02 -0400 Subject: [PATCH 26/89] ci: linux-pine64-pinenote: fix naming current release --- .forgejo/bin/check_ver.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.forgejo/bin/check_ver.sh b/.forgejo/bin/check_ver.sh index 91e80bc..67b13b1 100755 --- a/.forgejo/bin/check_ver.sh +++ b/.forgejo/bin/check_ver.sh @@ -109,7 +109,7 @@ for pkg in $owned_by_you; do if [ "${upstream_version/.*.*}" != "${latest_version/.*.*}" ]; then echo "$pkg(${latest_version/.*.*}) major version available" echo "$pkg(${latest_version/.*.*}) $downstream_version $latest_version $repo $release" >> out_of_date - pkg="$pkg(${upstream_version/.*.*})" + pkg="$pkg(${upstream_version%.*})" fi ;; # track linux-radxa against BSP kernel (usually got awful late From 953627f48d799649b2da5ce9e7a632579c9c5b37 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Sun, 10 Aug 2025 20:02:12 -0400 Subject: [PATCH 27/89] ci: u-boot-pine64-pinenote: track ddr and trust blob versions --- .forgejo/bin/check_ver.sh | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/.forgejo/bin/check_ver.sh b/.forgejo/bin/check_ver.sh index 67b13b1..bf1814b 100755 --- a/.forgejo/bin/check_ver.sh +++ b/.forgejo/bin/check_ver.sh @@ -68,8 +68,30 @@ for pkg in $owned_by_you; do # special cases where package is not semantic case $pkg in - # track u-boot-pine64-pinenote against mainline u-boot - u-boot-pine64-pinenote) upstream_version="$(curl --fail -X GET -s -H 'Content-Type: application/json' "https://release-monitoring.org/api/project/Alpine/u-boot" | jq -r '.stable_versions.[]' | head -n1)";; + # track u-boot-pine64-pinenote against mainline u-boot, and track upstream rockchip blobs + u-boot-pine64-pinenote) + upstream_version="$(curl --fail -X GET -s -H 'Content-Type: application/json' "https://release-monitoring.org/api/project/Alpine/u-boot" | jq -r '.stable_versions.[]' | head -n1)" + commit=$(sed -n "/^P:$pkg$/,/^$/p" APKINDEX | awk -F ':' '{if($1=="c"){print $2}}') + + # fetches upstream version for blobs using ini file + upstream_trust="$(curl --fail -s 'https://raw.githubusercontent.com/rockchip-linux/rkbin/master/RKTRUST/RK3566TRUST_ULTRA.ini' | grep bl31 | awk -F '=' '{if($1"="PATH){print $2}}'| grep -o -P '(?<=_v).*(?=.bin)')" + upstream_ddr="$(curl --fail -s 'https://raw.githubusercontent.com/rockchip-linux/rkbin/master/RKTRUST/RK3566TRUST_ULTRA.ini' | grep bl31 | awk -F '=' '{if($1"="PATH){print $2}}' | grep -o -P '(?<=_v).*(?=.elf)')" + + # extracts downstream version via _trust_ver and _ddr_ver variable + downstream_trust=$(curl --fail -X GET -s "https://gitlab.postmarketos.org/postmarketOS/pmaports/-/raw/$commit/device/testing/u-boot-pine64-pinenote/APKBUILD" | awk -F '=' '{if($1=="_trust_ver"){print $2}}') + downstream_ddr=$(curl --fail -X GET -s "https://gitlab.postmarketos.org/postmarketOS/pmaports/-/raw/$commit/device/testing/u-boot-pine64-pinenote/APKBUILD" | awk -F '=' '{if($1=="_ddr_ver"){print $2}}') + + # compares versions and creates newline in out_of_date if problematic + if [ "$upstream_trust" != "$downstream_trust" ]; then + echo "$pkg new Trust blob $upstream_trust version available" + echo "$pkg(trust) $downstream_trust $upstream_trust $repo $release" >> out_of_date + fi + if [ "$upstream_ddr" != "$downstream_ddr" ]; then + echo "$pkg new ddr blob $upstream_ddr version available" + echo "$pkg(ddr) $downstream_ddr $upstream_ddr $repo $release" >> out_of_date + fi + + ;; # release-monitoring omits the extra B, while we keep it but put it after the version no. looking-glass) upstream_version="$(curl --fail -X GET -s -H 'Content-Type: application/json' "https://release-monitoring.org/api/project/Alpine/$pkg" | jq -r '.stable_versions.[]' | head -n1)b";; # we want to track both Firefox security upgrades + Zotero upgrades From d0dfb021eb592537a6cf0da81e46d9a7cc573ae8 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Sun, 10 Aug 2025 20:19:18 -0400 Subject: [PATCH 28/89] ci: u-boot-pine64-pinenote: fix ddr and trust tracking --- .forgejo/bin/check_ver.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.forgejo/bin/check_ver.sh b/.forgejo/bin/check_ver.sh index bf1814b..b936969 100755 --- a/.forgejo/bin/check_ver.sh +++ b/.forgejo/bin/check_ver.sh @@ -74,8 +74,8 @@ for pkg in $owned_by_you; do commit=$(sed -n "/^P:$pkg$/,/^$/p" APKINDEX | awk -F ':' '{if($1=="c"){print $2}}') # fetches upstream version for blobs using ini file - upstream_trust="$(curl --fail -s 'https://raw.githubusercontent.com/rockchip-linux/rkbin/master/RKTRUST/RK3566TRUST_ULTRA.ini' | grep bl31 | awk -F '=' '{if($1"="PATH){print $2}}'| grep -o -P '(?<=_v).*(?=.bin)')" - upstream_ddr="$(curl --fail -s 'https://raw.githubusercontent.com/rockchip-linux/rkbin/master/RKTRUST/RK3566TRUST_ULTRA.ini' | grep bl31 | awk -F '=' '{if($1"="PATH){print $2}}' | grep -o -P '(?<=_v).*(?=.elf)')" + upstream_trust="$(curl --fail -s 'https://raw.githubusercontent.com/rockchip-linux/rkbin/master/RKTRUST/RK3566TRUST_ULTRA.ini' | grep bl31 | awk -F '=' '{if($1"="PATH){print $2}}' | grep -o -P '(?<=_v).*(?=.elf)')" + upstream_ddr="$(curl --fail -s 'https://raw.githubusercontent.com/rockchip-linux/rkbin/master/RKBOOT/RK3566MINIALL_ULTRA.ini' | grep ddr | awk -F '=' '{if($1"="PATH){print $2}}' | head -n 1 | grep -o -P '(?<=_v).*(?=.bin)' # extracts downstream version via _trust_ver and _ddr_ver variable downstream_trust=$(curl --fail -X GET -s "https://gitlab.postmarketos.org/postmarketOS/pmaports/-/raw/$commit/device/testing/u-boot-pine64-pinenote/APKBUILD" | awk -F '=' '{if($1=="_trust_ver"){print $2}}') From 4de45ea910c3c8af059a077abda45bae49876642 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Thu, 14 Aug 2025 21:59:55 -0400 Subject: [PATCH 29/89] ci: u-boot-pine64-pinenote: fix typo --- .forgejo/bin/check_ver.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.forgejo/bin/check_ver.sh b/.forgejo/bin/check_ver.sh index b936969..53e1ac0 100755 --- a/.forgejo/bin/check_ver.sh +++ b/.forgejo/bin/check_ver.sh @@ -75,7 +75,7 @@ for pkg in $owned_by_you; do # fetches upstream version for blobs using ini file upstream_trust="$(curl --fail -s 'https://raw.githubusercontent.com/rockchip-linux/rkbin/master/RKTRUST/RK3566TRUST_ULTRA.ini' | grep bl31 | awk -F '=' '{if($1"="PATH){print $2}}' | grep -o -P '(?<=_v).*(?=.elf)')" - upstream_ddr="$(curl --fail -s 'https://raw.githubusercontent.com/rockchip-linux/rkbin/master/RKBOOT/RK3566MINIALL_ULTRA.ini' | grep ddr | awk -F '=' '{if($1"="PATH){print $2}}' | head -n 1 | grep -o -P '(?<=_v).*(?=.bin)' + upstream_ddr="$(curl --fail -s 'https://raw.githubusercontent.com/rockchip-linux/rkbin/master/RKBOOT/RK3566MINIALL_ULTRA.ini' | grep ddr | awk -F '=' '{if($1"="PATH){print $2}}' | head -n 1 | grep -o -P '(?<=_v).*(?=.bin)')" # extracts downstream version via _trust_ver and _ddr_ver variable downstream_trust=$(curl --fail -X GET -s "https://gitlab.postmarketos.org/postmarketOS/pmaports/-/raw/$commit/device/testing/u-boot-pine64-pinenote/APKBUILD" | awk -F '=' '{if($1=="_trust_ver"){print $2}}') From 8c1da51a6002c4fa1eb0c9a28c056099ab9ff909 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Thu, 14 Aug 2025 22:07:15 -0400 Subject: [PATCH 30/89] ci: u-boot-pine64-pinenote: fix commit lookup --- .forgejo/bin/check_ver.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/.forgejo/bin/check_ver.sh b/.forgejo/bin/check_ver.sh index 53e1ac0..1b284fc 100755 --- a/.forgejo/bin/check_ver.sh +++ b/.forgejo/bin/check_ver.sh @@ -72,6 +72,7 @@ for pkg in $owned_by_you; do u-boot-pine64-pinenote) upstream_version="$(curl --fail -X GET -s -H 'Content-Type: application/json' "https://release-monitoring.org/api/project/Alpine/u-boot" | jq -r '.stable_versions.[]' | head -n1)" commit=$(sed -n "/^P:$pkg$/,/^$/p" APKINDEX | awk -F ':' '{if($1=="c"){print $2}}') + commit=${commit/-dirty/} # fetches upstream version for blobs using ini file upstream_trust="$(curl --fail -s 'https://raw.githubusercontent.com/rockchip-linux/rkbin/master/RKTRUST/RK3566TRUST_ULTRA.ini' | grep bl31 | awk -F '=' '{if($1"="PATH){print $2}}' | grep -o -P '(?<=_v).*(?=.elf)')" From 2eeb660610b8aa84ca78f1a43d032a3b61e5bc87 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Sat, 6 Sep 2025 16:40:29 -0400 Subject: [PATCH 31/89] ci: use actions namespace for {upload,download}-artifact action --- .forgejo/workflows/build-aarch64.yaml | 4 ++-- .forgejo/workflows/build-cross.yaml | 4 ++-- .forgejo/workflows/build-x86_64.yaml | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.forgejo/workflows/build-aarch64.yaml b/.forgejo/workflows/build-aarch64.yaml index 0ff5e7c..78db319 100644 --- a/.forgejo/workflows/build-aarch64.yaml +++ b/.forgejo/workflows/build-aarch64.yaml @@ -28,7 +28,7 @@ jobs: ${{ github.workspace }}/.forgejo/bin/build.sh touch packages/dummy - name: Package upload - uses: forgejo/upload-artifact@v3 + uses: actions/upload-artifact@v3 with: name: package path: packages @@ -49,6 +49,6 @@ jobs: - name: Repo pull uses: actions/checkout@v4 - name: Package download - uses: forgejo/download-artifact@v3 + uses: actions/download-artifact@v3 - name: Package deployment run: ${{ github.workspace }}/.forgejo/bin/deploy.sh diff --git a/.forgejo/workflows/build-cross.yaml b/.forgejo/workflows/build-cross.yaml index 6d770f7..f4737b6 100644 --- a/.forgejo/workflows/build-cross.yaml +++ b/.forgejo/workflows/build-cross.yaml @@ -33,7 +33,7 @@ jobs: ${{ github.workspace }}/.forgejo/bin/generate-cross.sh ${{ github.ref_name }} ${{ inputs.target_arch }} mv -v /home/buildozer/packages/main ${{ github.workspace }}/packages/cross - name: Package upload - uses: forgejo/upload-artifact@v3 + uses: actions/upload-artifact@v3 with: name: package path: packages @@ -54,6 +54,6 @@ jobs: - name: Repo pull uses: actions/checkout@v4 - name: Package download - uses: forgejo/download-artifact@v3 + uses: actions/download-artifact@v3 - name: Package deployment run: ${{ github.workspace }}/.forgejo/bin/deploy.sh diff --git a/.forgejo/workflows/build-x86_64.yaml b/.forgejo/workflows/build-x86_64.yaml index ad7abb3..84d6908 100644 --- a/.forgejo/workflows/build-x86_64.yaml +++ b/.forgejo/workflows/build-x86_64.yaml @@ -28,7 +28,7 @@ jobs: ${{ github.workspace }}/.forgejo/bin/build.sh touch packages/dummy - name: Package upload - uses: forgejo/upload-artifact@v3 + uses: actions/upload-artifact@v3 with: name: package path: packages @@ -49,6 +49,6 @@ jobs: - name: Repo pull uses: actions/checkout@v4 - name: Package download - uses: forgejo/download-artifact@v3 + uses: actions/download-artifact@v3 - name: Package deployment run: ${{ github.workspace }}/.forgejo/bin/deploy.sh From d3043bab853539e05ad16e797f1236fe79ea6817 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Sat, 6 Sep 2025 22:15:59 -0400 Subject: [PATCH 32/89] ci: fix titles for non-edge issues --- .forgejo/bin/create_issue.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.forgejo/bin/create_issue.sh b/.forgejo/bin/create_issue.sh index bb4ea79..07879f1 100755 --- a/.forgejo/bin/create_issue.sh +++ b/.forgejo/bin/create_issue.sh @@ -80,13 +80,16 @@ update_title() { release=$5 id=$6 + title="$repo/$name: upgrade to $upstream_version" + if [ "$release" != "edge" ]; then title="[$release] $title"; fi + result=$(curl --silent -X 'PATCH' \ "$GITHUB_SERVER_URL/api/v1/repos/$GITHUB_REPOSITORY/issues/$id" \ -H 'accept: application/json' \ -H "authorization: token $ISSUE_TOKEN" \ -H 'Content-Type: application/json' \ -d "{ - \"title\": \"$repo/$name: upgrade to $upstream_version\" + \"title\": \"$title\", }" ) From bd1a71e8a2bec7f56816bb579df53e37485ea655 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Sat, 6 Sep 2025 22:17:07 -0400 Subject: [PATCH 33/89] ci: use aarch64 runner on check and lint workflows --- .forgejo/workflows/check-backports.yml | 2 +- .forgejo/workflows/check-community.yml | 4 ++-- .forgejo/workflows/check-main.yml | 10 +++++----- .forgejo/workflows/check-pmos.yml | 2 +- .forgejo/workflows/check-testing.yml | 2 +- .forgejo/workflows/check-user.yml | 2 +- .forgejo/workflows/lint.yaml | 2 +- 7 files changed, 12 insertions(+), 12 deletions(-) diff --git a/.forgejo/workflows/check-backports.yml b/.forgejo/workflows/check-backports.yml index cd8f63b..f1d016d 100644 --- a/.forgejo/workflows/check-backports.yml +++ b/.forgejo/workflows/check-backports.yml @@ -7,7 +7,7 @@ on: jobs: check-backports: name: Check backports repo - runs-on: x86_64 + runs-on: aarch64 container: image: alpine:latest env: diff --git a/.forgejo/workflows/check-community.yml b/.forgejo/workflows/check-community.yml index 8a88ce8..95a8032 100644 --- a/.forgejo/workflows/check-community.yml +++ b/.forgejo/workflows/check-community.yml @@ -7,7 +7,7 @@ on: jobs: check-community-edge: name: Check community(edge) repo - runs-on: x86_64 + runs-on: aarch64 container: image: alpine:latest env: @@ -27,7 +27,7 @@ jobs: run: ${{ github.workspace }}/.forgejo/bin/create_issue.sh check-community-3.22: name: Check community(3.22) repo - runs-on: x86_64 + runs-on: aarch64 container: image: alpine:latest env: diff --git a/.forgejo/workflows/check-main.yml b/.forgejo/workflows/check-main.yml index 58e8001..6730130 100644 --- a/.forgejo/workflows/check-main.yml +++ b/.forgejo/workflows/check-main.yml @@ -7,7 +7,7 @@ on: jobs: check-main-edge: name: Check main(edge) repo - runs-on: x86_64 + runs-on: aarch64 container: image: alpine:latest env: @@ -27,7 +27,7 @@ jobs: run: ${{ github.workspace }}/.forgejo/bin/create_issue.sh check-main-3.22: name: Check main(3.22) repo - runs-on: x86_64 + runs-on: aarch64 container: image: alpine:latest env: @@ -48,7 +48,7 @@ jobs: run: ${{ github.workspace }}/.forgejo/bin/create_issue.sh check-main-3.21: name: Check main(3.21) repo - runs-on: x86_64 + runs-on: aarch64 container: image: alpine:latest env: @@ -69,7 +69,7 @@ jobs: run: ${{ github.workspace }}/.forgejo/bin/create_issue.sh check-main-3.20: name: Check main(3.20) repo - runs-on: x86_64 + runs-on: aarch64 container: image: alpine:latest env: @@ -90,7 +90,7 @@ jobs: run: ${{ github.workspace }}/.forgejo/bin/create_issue.sh check-main-3.19: name: Check main(3.19) repo - runs-on: x86_64 + runs-on: aarch64 container: image: alpine:latest env: diff --git a/.forgejo/workflows/check-pmos.yml b/.forgejo/workflows/check-pmos.yml index a24bdcb..0785667 100644 --- a/.forgejo/workflows/check-pmos.yml +++ b/.forgejo/workflows/check-pmos.yml @@ -7,7 +7,7 @@ on: jobs: check-community-pmos: name: Check pmos(edge) repo - runs-on: x86_64 + runs-on: aarch64 container: image: alpine:latest env: diff --git a/.forgejo/workflows/check-testing.yml b/.forgejo/workflows/check-testing.yml index cf54831..a778500 100644 --- a/.forgejo/workflows/check-testing.yml +++ b/.forgejo/workflows/check-testing.yml @@ -7,7 +7,7 @@ on: jobs: check-community: name: Check testing repo - runs-on: x86_64 + runs-on: aarch64 container: image: alpine:latest env: diff --git a/.forgejo/workflows/check-user.yml b/.forgejo/workflows/check-user.yml index ba6ed80..db1f574 100644 --- a/.forgejo/workflows/check-user.yml +++ b/.forgejo/workflows/check-user.yml @@ -7,7 +7,7 @@ on: jobs: check-user: name: Check user repo - runs-on: x86_64 + runs-on: aarch64 container: image: alpine:latest env: diff --git a/.forgejo/workflows/lint.yaml b/.forgejo/workflows/lint.yaml index 743cefc..ec79090 100644 --- a/.forgejo/workflows/lint.yaml +++ b/.forgejo/workflows/lint.yaml @@ -5,7 +5,7 @@ on: jobs: lint: run-name: lint - runs-on: x86_64 + runs-on: aarch64 container: image: alpinelinux/apkbuild-lint-tools:latest env: From 223efcc89ff2db8fa225e8020d87cf3ee8557f8c Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Sat, 13 Sep 2025 10:16:11 -0400 Subject: [PATCH 34/89] ci: add capability to exclude packages from fix_only minor_only rules --- .forgejo/bin/check_ver.sh | 21 +++++++++++++-------- .forgejo/workflows/check-community.yml | 2 +- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/.forgejo/bin/check_ver.sh b/.forgejo/bin/check_ver.sh index 1b284fc..2560e9f 100755 --- a/.forgejo/bin/check_ver.sh +++ b/.forgejo/bin/check_ver.sh @@ -10,12 +10,14 @@ # fix_only: array of packages that should only track bug fix releases (seperated by space) # default: none # all packages: all -# +# # If either minor_only or fix_only is set, only packages with semantic versioning schemes # will be tracked. # # If a package is both minor_only and fix_only, the minor releases will be tracked # +# If a - is placed in front of package name, it'll be excluded from the update rule +# # optional env variables # ALL_PACKAGES: when true, ignore is package is owned by me # skip_package: array of packages to skip @@ -143,17 +145,20 @@ for pkg in $owned_by_you; do # removes last bit in github tag from usbboot release, as not needed raspberrypi-usbboot) curl --fail -X GET -s -H 'Content-Type: application/json' "https://release-monitoring.org/api/project/Alpine/$pkg" | jq -r '.stable_versions.[]' | head -n1 | sed 's|-.*||';; *) - # continues when package version scheme is not semantic, but minor_only or fix_only is set - if [ -n "${minor_only}" ] || [ -n "${fix_only}" ]; then + + if [[ "$minor_only" == *all* || "$minor_only" == *$pkg* ]] && [[ "$minor_only" != *-$pkg* ]] then + # continues when package version scheme is not semantic, but minor_only or fix_only is set if ! is_semantic $downstream_version; then - echo "$pkg is not semantic, and fix_only or minor_only is set" + echo "$pkg is not semantic, and minor_only is set" continue fi - fi - - if [ "${minor_only}" == "all" ] || [[ "${minor_only}" == *$pkg* ]]; then upstream_version=$(curl --fail -X GET -s -H 'Content-Type: application/json' "https://release-monitoring.org/api/project/Alpine/$pkg" | jq -r ".stable_versions.[] | match(\"${downstream_version%.*.*}.*\").string" | head -n1) - elif [ "${fix_only}" == "all" ] || [[ "${fix_only}" == *$pkg* ]]; then + elif [[ "$fix_only" == *all* || "$fix_only" == *$pkg* ]] && [[ "$fix_only" != *-$pkg* ]]; then + # continues when package version scheme is not semantic, but minor_only or fix_only is set + if ! is_semantic $downstream_version; then + echo "$pkg is not semantic, and fix_only is set" + continue + fi upstream_version=$(curl --fail -X GET -s -H 'Content-Type: application/json' "https://release-monitoring.org/api/project/Alpine/$pkg" | jq -r ".stable_versions.[] | match(\"${downstream_version%.*}.*\").string" | head -n1) else upstream_version=$(curl --fail -X GET -s -H 'Content-Type: application/json' "https://release-monitoring.org/api/project/Alpine/$pkg" | jq -r '.stable_versions.[]' | head -n1) diff --git a/.forgejo/workflows/check-community.yml b/.forgejo/workflows/check-community.yml index 95a8032..fe1d9ad 100644 --- a/.forgejo/workflows/check-community.yml +++ b/.forgejo/workflows/check-community.yml @@ -34,7 +34,7 @@ jobs: downstream: https://dl-cdn.alpinelinux.org/alpine/v3.22/community ISSUE_TOKEN: ${{ secrets.issue_token }} LABEL_NUMBER: 13 - fix_only: all + fix_only: all -git-annex skip_package: dotnet9-stage0 dotnet8-stage0 py3-boto3 py3-botocore steps: - name: Environment setup From b3d03dc81744186a20b377112cc38397b893f09e Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Tue, 14 Oct 2025 09:03:25 -0400 Subject: [PATCH 35/89] ci: follow redirects on curl requests --- .forgejo/bin/create_issue.sh | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.forgejo/bin/create_issue.sh b/.forgejo/bin/create_issue.sh index 07879f1..cdb9c4a 100755 --- a/.forgejo/bin/create_issue.sh +++ b/.forgejo/bin/create_issue.sh @@ -26,7 +26,7 @@ does_it_exist() { fi query="$(echo $query | sed 's| |%20|g' | sed 's|:|%3A|g' | sed 's|/|%2F|g' | sed 's|\[|%5B|g' | sed 's|\]|%5D|g')" - result="$(curl --silent -X 'GET' \ + result="$(curl -L --silent -X 'GET' \ "$GITHUB_SERVER_URL/api/v1/repos/$GITHUB_REPOSITORY/issues?state=open&q=$query&type=issues&sort=latest" \ -H 'accept: application/json' \ -H "Authorization: token $ISSUE_TOKEN" @@ -55,7 +55,7 @@ is_it_old() { fi query="$(echo $query | sed 's| |%20|g' | sed 's|:|%3A|g' | sed 's|/|%2F|g' | sed 's|\[|%5B|g' | sed 's|\]|%5D|g')" - result="$(curl --silent -X 'GET' \ + result="$(curl -L --silent -X 'GET' \ "$GITHUB_SERVER_URL/api/v1/repos/$GITHUB_REPOSITORY/issues?state=open&q=$query&type=issues&sort=latest" \ -H 'accept: application/json' \ -H "authorization: token $ISSUE_TOKEN" @@ -83,7 +83,7 @@ update_title() { title="$repo/$name: upgrade to $upstream_version" if [ "$release" != "edge" ]; then title="[$release] $title"; fi - result=$(curl --silent -X 'PATCH' \ + result=$(curl -L --silent -X 'PATCH' \ "$GITHUB_SERVER_URL/api/v1/repos/$GITHUB_REPOSITORY/issues/$id" \ -H 'accept: application/json' \ -H "authorization: token $ISSUE_TOKEN" \ @@ -106,7 +106,7 @@ create_issue() { title="$repo/$name: upgrade to $upstream_version" if [ "$release" != "edge" ]; then title="[$release] $title"; fi - result=$(curl --silent -X 'POST' \ + result=$(curl -L --silent -X 'POST' \ "$GITHUB_SERVER_URL/api/v1/repos/$GITHUB_REPOSITORY/issues" \ -H 'accept: application/json' \ -H "authorization: token $ISSUE_TOKEN" \ @@ -155,7 +155,7 @@ if [ -f not_in_anitya ]; then query="Add missing $repo packages to anitya" query="%22$(echo $query | sed 's| |%20|g')%22" - result="$(curl --silent -X 'GET' \ + result="$(curl -L --silent -X 'GET' \ "$GITHUB_SERVER_URL/api/v1/repos/$GITHUB_REPOSITORY/issues?state=open&q=$query&type=issues&sort=latest" \ -H 'accept: application/json' \ -H "authorization: token $ISSUE_TOKEN" @@ -163,7 +163,7 @@ if [ -f not_in_anitya ]; then if [ "$result" == "[]" ]; then echo "Creating anitya issue" - result=$(curl --silent -X 'POST' \ + result=$(curl -L --silent -X 'POST' \ "$GITHUB_SERVER_URL/api/v1/repos/$GITHUB_REPOSITORY/issues" \ -H 'accept: application/json' \ -H "authorization: token $ISSUE_TOKEN" \ @@ -179,7 +179,7 @@ if [ -f not_in_anitya ]; then else echo "Updating anitya issue" result_id="$(echo $result | jq -r '.[].number' )" - result=$(curl --silent -X 'PATCH' \ + result=$(curl -L --silent -X 'PATCH' \ "$GITHUB_SERVER_URL/api/v1/repos/$GITHUB_REPOSITORY/issues/$result_id" \ -H 'accept: application/json' \ -H "authorization: token $ISSUE_TOKEN" \ From 8658e947c7d20268cfe336103f8e66e3430da802 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Tue, 14 Oct 2025 09:22:28 -0400 Subject: [PATCH 36/89] ci: fix title updating --- .forgejo/bin/create_issue.sh | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.forgejo/bin/create_issue.sh b/.forgejo/bin/create_issue.sh index cdb9c4a..3164b14 100755 --- a/.forgejo/bin/create_issue.sh +++ b/.forgejo/bin/create_issue.sh @@ -88,9 +88,7 @@ update_title() { -H 'accept: application/json' \ -H "authorization: token $ISSUE_TOKEN" \ -H 'Content-Type: application/json' \ - -d "{ - \"title\": \"$title\", - }" + -d "{\"title\": \"$title\"}" ) return 0 From 03b4f6425d3969e9f758028ca4d3b159fa441530 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Thu, 13 Nov 2025 12:19:14 -0500 Subject: [PATCH 37/89] ci: fix lookup for u-boot-pine64-pinenote blobs --- .forgejo/bin/check_ver.sh | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.forgejo/bin/check_ver.sh b/.forgejo/bin/check_ver.sh index 2560e9f..d0a9bc0 100755 --- a/.forgejo/bin/check_ver.sh +++ b/.forgejo/bin/check_ver.sh @@ -73,8 +73,11 @@ for pkg in $owned_by_you; do # track u-boot-pine64-pinenote against mainline u-boot, and track upstream rockchip blobs u-boot-pine64-pinenote) upstream_version="$(curl --fail -X GET -s -H 'Content-Type: application/json' "https://release-monitoring.org/api/project/Alpine/u-boot" | jq -r '.stable_versions.[]' | head -n1)" - commit=$(sed -n "/^P:$pkg$/,/^$/p" APKINDEX | awk -F ':' '{if($1=="c"){print $2}}') - commit=${commit/-dirty/} + + # some reason the commit now not in APKINDEX, using master instead + #commit=$(sed -n "/^P:$pkg$/,/^$/p" APKINDEX | awk -F ':' '{if($1=="c"){print $2}}') + #commit=${commit/-dirty/} + commit=master # fetches upstream version for blobs using ini file upstream_trust="$(curl --fail -s 'https://raw.githubusercontent.com/rockchip-linux/rkbin/master/RKTRUST/RK3566TRUST_ULTRA.ini' | grep bl31 | awk -F '=' '{if($1"="PATH){print $2}}' | grep -o -P '(?<=_v).*(?=.elf)')" From 869d5c3845d5683a2a986af1a83452d43be844bc Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Sun, 23 Nov 2025 21:45:43 -0500 Subject: [PATCH 38/89] user/koreader: new aport --- user/koreader/APKBUILD | 82 +++++++++++++++++++ ...ader-lua-use-absolute-path-to-luajit.patch | 10 +++ 2 files changed, 92 insertions(+) create mode 100644 user/koreader/APKBUILD create mode 100644 user/koreader/reader-lua-use-absolute-path-to-luajit.patch diff --git a/user/koreader/APKBUILD b/user/koreader/APKBUILD new file mode 100644 index 0000000..73d1a63 --- /dev/null +++ b/user/koreader/APKBUILD @@ -0,0 +1,82 @@ +# Maintainer: Antoine Martin (ayakael) +pkgname=koreader +pkgver=2025.10 +pkgrel=0 +pkgdesc="An ebook reader application supporting PDF, DjVu, EPUB, FB2 and many more formats" +# s390x|riscv64|ppc64le|loongarch64: FTBFS +# armhf|armv7|x86: Tests fail, segmentation fault +arch="x86_64 aarch64" +url="https://github.com/koreader/koreader/" +license="AGPL-3.0-only" +depends=" + bash + sdl2 + procps-ng + " +makedepends=" + autoconf + automake + cmake + coreutils + curl + diffutils + findutils + gettext + grep + libtool + linux-headers + meson + nasm + ninja-build + perl + pkgconf + wget + " +source=" + https://ayakael.net/api/packages/mirrors/generic/koreader/v$pkgver/koreader-v$pkgver.tar.gz + reader-lua-use-absolute-path-to-luajit.patch + " +subpackages="$pkgname-doc" +builddir="$srcdir"/$pkgname-v$pkgver + +# has vendored copies of system libraries +sonameprefix="$pkgname:" + +prepare() { + default_prepare + + # no need to test manually set version + rm "$builddir"/spec/unit/version_spec.lua +} + +build() { + # add ninja bin to path + export PATH="$PATH":/usr/lib/ninja-build/bin + + # default target is emulator build + make TARGET= KODEBUG= VERBOSE= +} + +check() { + KODEBUG= TARGET= VERBOSE= ./base/utils/fake_tty.py make --assume-old=base testfront +} + +package() { + install -Dm755 "$builddir"/platform/linux/koreader.sh "$pkgdir"/usr/bin/koreader + install -Dm644 "$builddir"/platform/linux/koreader.desktop -t "$pkgdir"/usr/share/applications/ + install -Dm644 "$builddir"/resources/koreader.png -t "$pkgdir"/usr/share/pixmaps/ + install -Dm644 "$builddir"/platform/linux/koreader.1 -t "$pkgdir"/usr/share/man/man1/ + + mkdir -p "$pkgdir"/usr/lib + cp -RL "$builddir"/koreader-emulator-*/koreader "$pkgdir"/usr/lib/koreader + + # delete debug files + find "$pkgdir" -name '*.dbg' -delete + + # version information + echo "v$pkgver" > "$pkgdir"/usr/lib/koreader/git-rev +} +sha512sums=" +3fbbe49ae6134abd810d9932cfb650d031100c95570c8eaa6d6e5d4c6a9a86916961b989696a7d97c149920d63853108905eea34f75f987e58f89e3a49d63948 koreader-v2025.10.tar.gz +76dd6f2ea6416b135b76d95f3c8150378f577ddd68d48312eabd6e12adaa111253dc83fc02add3ded07d3e6174fd5f4bd6c9f7b635ef27e3d760d5acced9e6fe reader-lua-use-absolute-path-to-luajit.patch +" diff --git a/user/koreader/reader-lua-use-absolute-path-to-luajit.patch b/user/koreader/reader-lua-use-absolute-path-to-luajit.patch new file mode 100644 index 0000000..3d25e3f --- /dev/null +++ b/user/koreader/reader-lua-use-absolute-path-to-luajit.patch @@ -0,0 +1,10 @@ +diff --git a/reader.lua.orig b/reader.lua +index 6fe9489..c4cbb2b 100755 +--- a/reader.lua.orig ++++ b/reader.lua +@@ -1,4 +1,4 @@ +-#!./luajit ++#!/usr/lib/koreader/luajit + + -- Enforce line-buffering for stdout (this is the default if it points to a tty, but we redirect to a file on most platforms). + io.stdout:setvbuf("line") From df65efacf1b607bf38818fd1bb28309aa07345e4 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Sun, 23 Nov 2025 22:34:36 -0500 Subject: [PATCH 39/89] user/skiasharp: new aport --- ...0001-fix-cflags-for-system-freetype2.patch | 25 +++++ .../skiasharp/0002-add-missing-includes.patch | 38 +++++++ user/skiasharp/APKBUILD | 104 ++++++++++++++++++ user/skiasharp/args.gn.in | 19 ++++ 4 files changed, 186 insertions(+) create mode 100644 user/skiasharp/0001-fix-cflags-for-system-freetype2.patch create mode 100644 user/skiasharp/0002-add-missing-includes.patch create mode 100644 user/skiasharp/APKBUILD create mode 100644 user/skiasharp/args.gn.in diff --git a/user/skiasharp/0001-fix-cflags-for-system-freetype2.patch b/user/skiasharp/0001-fix-cflags-for-system-freetype2.patch new file mode 100644 index 0000000..d9464a4 --- /dev/null +++ b/user/skiasharp/0001-fix-cflags-for-system-freetype2.patch @@ -0,0 +1,25 @@ +From 5f2682ed16394ba3e10ab35150c15e265ab0a0db Mon Sep 17 00:00:00 2001 +From: Naomi Rennie-Waldock +Date: Wed, 4 Dec 2024 02:01:11 +0000 +Subject: [PATCH 1/2] fix cflags for system freetype2 + +--- + third_party/freetype2/BUILD.gn | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/third_party/freetype2/BUILD.gn b/third_party/freetype2/BUILD.gn +index d3092c672f..1bf7d9fc62 100644 +--- a/third_party/freetype2/BUILD.gn ++++ b/third_party/freetype2/BUILD.gn +@@ -14,7 +14,7 @@ import("../third_party.gni") + + if (skia_use_system_freetype2) { + system("freetype2") { +- cflags = [ "-I=/usr/include/freetype2" ] ++ cflags = [ "-I/usr/include/freetype2" ] + libs = [ "freetype" ] + } + } else { +-- +2.45.2 + diff --git a/user/skiasharp/0002-add-missing-includes.patch b/user/skiasharp/0002-add-missing-includes.patch new file mode 100644 index 0000000..7ffd79e --- /dev/null +++ b/user/skiasharp/0002-add-missing-includes.patch @@ -0,0 +1,38 @@ +From 4367484b44f349f3f9009a001167c08a61f6934b Mon Sep 17 00:00:00 2001 +From: Naomi Rennie-Waldock +Date: Wed, 4 Dec 2024 02:02:29 +0000 +Subject: [PATCH 2/2] add missing includes + +--- + src/utils/SkParseColor.cpp | 1 + + third_party/vulkanmemoryallocator/GrVulkanMemoryAllocator.cpp | 2 ++ + 2 files changed, 3 insertions(+) + +diff --git a/src/utils/SkParseColor.cpp b/src/utils/SkParseColor.cpp +index 7260365b2c..ed118fb5e9 100644 +--- a/src/utils/SkParseColor.cpp ++++ b/src/utils/SkParseColor.cpp +@@ -6,6 +6,7 @@ + */ + + ++#include + #include "include/utils/SkParse.h" + + static constexpr const char* gColorNames[] = { +diff --git a/third_party/vulkanmemoryallocator/GrVulkanMemoryAllocator.cpp b/third_party/vulkanmemoryallocator/GrVulkanMemoryAllocator.cpp +index fb606984bd..4bc9d99420 100644 +--- a/third_party/vulkanmemoryallocator/GrVulkanMemoryAllocator.cpp ++++ b/third_party/vulkanmemoryallocator/GrVulkanMemoryAllocator.cpp +@@ -5,6 +5,8 @@ + * found in the LICENSE file. + */ + ++#include ++ + // We use our own functions pointers + #define VMA_STATIC_VULKAN_FUNCTIONS 0 + #define VMA_DYNAMIC_VULKAN_FUNCTIONS 0 +-- +2.45.2 + diff --git a/user/skiasharp/APKBUILD b/user/skiasharp/APKBUILD new file mode 100644 index 0000000..b82e926 --- /dev/null +++ b/user/skiasharp/APKBUILD @@ -0,0 +1,104 @@ +# Contributor: Naomi Rennie-Waldock +# Maintainer: Naomi Rennie-Waldock +pkgname=skiasharp +pkgver=2.88.9 +pkgrel=0 +pkgdesc="2D graphics API for .NET - native library" +url="https://github.com/mono/SkiaSharp" +arch="x86_64 armv7 aarch64" +license="BSD-3-Clause" +_llvmver=21 +_skiaver=2.88.3 +makedepends=" + cmd:awk + cmd:envsubst + clang$_llvmver + llvm$_llvmver + gn + ninja + freetype-dev + fontconfig-dev + libwebp-dev + harfbuzz-dev + cmake + " +subpackages="$pkgname-dbg" +# SkiaSharp currently doesn't work with jpeg-turbo 3.x which we've got packaged +# https://github.com/mono/SkiaSharp/issues/2645 +# https://github.com/libjpeg-turbo/libjpeg-turbo/issues/741 +_jpegturbover=2.1.5.1 +source="https://github.com/mono/SkiaSharp/archive/v$pkgver/SkiaSharp-$pkgver.tar.gz + https://github.com/mono/skia/archive/v$_skiaver/skia-$_skiaver.tar.gz + + args.gn.in + + 0001-fix-cflags-for-system-freetype2.patch + 0002-add-missing-includes.patch + + https://github.com/libjpeg-turbo/libjpeg-turbo/releases/download/$_jpegturbover/libjpeg-turbo-$_jpegturbover.tar.gz + " +_skiasharpdir="$srcdir/SkiaSharp-$pkgver" +_skiadir="$srcdir/skia-$_skiaver" +_jpegturbodir="$srcdir/libjpeg-turbo-$_jpegturbover" +builddir="$_skiadir" +options="!check" + +prepare() { + default_prepare + + install -d "$builddir"/third_party/externals + rm -f "$builddir"/third_party/externals/libjpeg-turbo + ln -s "$_jpegturbodir" "$builddir"/third_party/externals/libjpeg-turbo + ln -sf "$_jpegturbodir"/jpeg_nbits_table.h "$_jpegturbodir"/jpeg_nbits_table.c +} + +build() { + + export PATH="$PATH:/usr/lib/llvm$_llvmver/bin" + # Generate config for jpeg-turbo + # Note: jpeg-turbo is linked statically as part of SkiaSharp's build process + # We just run cmake first to generate jconfig.h + cd "$_jpegturbodir" + cmake3.5 . \ + -DCMAKE_BUILD_TYPE= \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DWITH_JPEG8=1 + + # Generate build config for SkiaSharp + cd "$builddir" + local soname=$(awk '$1 == "libSkiaSharp" && $2 == "soname" { print $3 }' "$_skiasharpdir"/VERSIONS.txt) + local map="$_skiasharpdir"/native/linux/libSkiaSharp/libSkiaSharp.map + local _skia_arch=$CTARGET_ARCH + + case "$CTARGET_ARCH" in + aarch64) _skia_arch=arm64 ;; + armv7) _skia_arch=arm ;; + x86_64) _skia_arch=x64 ;; + esac + + export soname map _skia_arch _llvmver + + [ -d _build ] || mkdir _build + envsubst < "$srcdir"/args.gn.in > _build/args.gn + + gn gen _build + ninja -j"${JOBS:-1}" -C _build SkiaSharp +} + +package() { + local soname=$(awk '$1 == "libSkiaSharp" && $2 == "soname" { print $3 }' "$_skiasharpdir"/VERSIONS.txt) + + install -Dm644 _build/libSkiaSharp.so.$soname -t "$pkgdir"/usr/lib/ + ln -s libSkiaSharp.so.$soname "$pkgdir"/usr/lib/libSkiaSharp.so.${soname%%.*} + ln -s libSkiaSharp.so.$soname "$pkgdir"/usr/lib/libSkiaSharp.so +} + +sha512sums=" +c13fb2f2cb8e231f5130e97450e242b910ea098419334303ed0b3391ff264549f9283343be8f5e1a6e59fa7ffe9d9aeb1c2d5607af0fb1fc03af0645b685dff2 SkiaSharp-2.88.9.tar.gz +43b19f6ddefe30ddf37034c73cd23feea28cb9e4a5830f8c526771afa051bdb2a96934f70dc035ca85891992b67b47d1becc6f4bf8768175db8452e144dfd9f1 skia-2.88.3.tar.gz +c1d8eace5078a25a8be5aa92337e1211055fb4d6a1da6f019e8f53871051b56af5cd18f19e0d67a34895402bbd575d233c5b5ad752e3ea5cdc85bfd63a392910 args.gn.in +0c4caa5aff089d314540959f068ca06c5580465be7a4a4abb3db9e1756a8043e14cbd4f8be677cfe4bd837b32115c8fefb2c79cf7bd52dd06fa1cb50e2406756 0001-fix-cflags-for-system-freetype2.patch +7eac411d6f235a450dcccf7d451ecc0d9516761b3cf37d3b0438fa2648b4ce7b0912de16d27221dc1df82fe62efb9287084fce433f1aeae48732da454402dbd7 0002-add-missing-includes.patch +86a7248d064043b26b09755633ef4872a2a6133c9e677a9fe4be6645b2e0fde102cf01e09119967b3b6b85f4cb93f3f7c49ec4973944d5eff99b5b90ce8b0be6 libjpeg-turbo-2.1.5.1.tar.gz +" diff --git a/user/skiasharp/args.gn.in b/user/skiasharp/args.gn.in new file mode 100644 index 0000000..4b7d5dd --- /dev/null +++ b/user/skiasharp/args.gn.in @@ -0,0 +1,19 @@ +is_official_build=true +target_os="linux" +target_cpu="$_skia_arch" +skia_enable_gpu=true +skia_use_icu=false +skia_use_piex=true +skia_use_sfntly=false +skia_enable_skottie=true +skia_enable_tools=false +skia_use_vulkan=true +skia_use_system_libjpeg_turbo=false +# disabled as it's not packaged +skia_use_dng_sdk=false +extra_cflags=[ "-DSKIA_C_DLL" ] +extra_ldflags=[ "-Wl,--version-script=$map" ] +linux_soname_version="$soname" +cc="clang" +cxx="clang++" +ar="llvm-ar" From 16d5ce552fa6cd5024e26363d8e067d25814f15a Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Sun, 23 Nov 2025 22:34:46 -0500 Subject: [PATCH 40/89] user/jellyfin: new aport --- user/jellyfin/APKBUILD | 50 +++++++++++++++++++++ user/jellyfin/jellyfin.confd | 7 +++ user/jellyfin/jellyfin.initd | 20 +++++++++ user/jellyfin/jellyfin.pre-install | 9 ++++ user/jellyfin/remove-prebuilt-library.patch | 32 +++++++++++++ 5 files changed, 118 insertions(+) create mode 100644 user/jellyfin/APKBUILD create mode 100644 user/jellyfin/jellyfin.confd create mode 100644 user/jellyfin/jellyfin.initd create mode 100644 user/jellyfin/jellyfin.pre-install create mode 100644 user/jellyfin/remove-prebuilt-library.patch diff --git a/user/jellyfin/APKBUILD b/user/jellyfin/APKBUILD new file mode 100644 index 0000000..edc9907 --- /dev/null +++ b/user/jellyfin/APKBUILD @@ -0,0 +1,50 @@ +# Maintainer: Simon Zeni +# Contributor: Fabricio Silva +pkgname=jellyfin +pkgver=10.10.7 +pkgrel=1 +pkgdesc="The Free Software Media System" +install="$pkgname.pre-install" +url="https://jellyfin.org/" +arch="x86_64 armv7 aarch64" +license="GPL-2.0-only" +makedepends="dotnet8-sdk" +depends="aspnetcore8-runtime jellyfin-ffmpeg skiasharp" +subpackages="$pkgname-openrc" +source="$pkgname-$pkgver.tar.gz::https://github.com/jellyfin/jellyfin/archive/refs/tags/v$pkgver.tar.gz + $pkgname.initd + $pkgname.confd +remove-prebuilt-library.patch + " + +build() { + dotnet publish Jellyfin.Server \ + --configuration Release \ + --no-self-contained \ + --use-current-runtime \ + --output publish +} + +check() { + dotnet test --no-restore +} + +package() { + mkdir -p "$pkgdir"/usr/lib "$pkgdir"/usr/bin + + cp -a publish "$pkgdir"/usr/lib/jellyfin + ln -s ../lib/jellyfin/jellyfin "$pkgdir"/usr/bin/jellyfin + ln -s ../libSkiaSharp.so "$pkgdir"/usr/lib/jellyfin/libSkiaSharp.so + + install -Dm755 "$srcdir"/$pkgname.initd \ + "$pkgdir"/etc/init.d/$pkgname + install -Dm644 "$srcdir"/$pkgname.confd \ + "$pkgdir"/etc/conf.d/$pkgname +} + +sha512sums=" +6c48401f4acf509b69fb6b8916be54b1b697aa85308ac4a39345bef0ce61c78c4ad978650569ac0964eeb9389fdea249ffc279a37bcd49c0341d3825423f5a97 jellyfin-10.10.7.tar.gz +bcdb882b837a08e4c1db363fbf2a075f0d6558a537c3f798b1473f9f1b5b887b6da1928558b0aede8bf56ab16469ac9e80dc95b0f874533ad744465a92b37696 jellyfin.initd +594c26e5235ae2265f3f586f596cd6b57fa0e0cec83531b6fadba48181870167f04381266c6005f1f6cb5cd76d254100a08a871ecb8da28e5890f979816a7b8b jellyfin.confd +50b9535d7b2dbebf7fbda1dc2d88941dad5530c8ab3e8e07c1203c328af426816036b5e6b4d6deb69fa344611bc18785cf8593d7d990a1cbfae0e14c9324b592 remove-prebuilt-library.patch +" diff --git a/user/jellyfin/jellyfin.confd b/user/jellyfin/jellyfin.confd new file mode 100644 index 0000000..38c0def --- /dev/null +++ b/user/jellyfin/jellyfin.confd @@ -0,0 +1,7 @@ +supervisor=supervise-daemon +datadir="/var/lib/jellyfin" +cachedir="/var/cache/jellyfin" +logdir="/var/log/jellyfin" +webdir="/usr/share/webapps/jellyfin-web" +ffmpegpath="/usr/lib/jellyfin-ffmpeg/ffmpeg" +opts="--nowebclient" diff --git a/user/jellyfin/jellyfin.initd b/user/jellyfin/jellyfin.initd new file mode 100644 index 0000000..4641de7 --- /dev/null +++ b/user/jellyfin/jellyfin.initd @@ -0,0 +1,20 @@ +#!/sbin/openrc-run + +name=jellyfin +description="The Free Software Media System" + +command=/usr/bin/jellyfin +command_user=jellyfin:jellyfin +command_args="--webdir ${webdir:-/usr/share/webapps/jellyfin-web} --datadir ${datadir} --cachedir ${cachedir} --logdir ${logdir} --ffmpeg ${ffmpegpath:-/usr/lib/jellyfin-ffmpeg/ffmpeg} ${opts}" + +depend() { + use logger dns + need net + after firewall +} + +start_pre() { + checkpath -d -o $command_user "$datadir" + checkpath -d -o $command_user "$cachedir" + checkpath -d -o $command_user "$logdir" +} diff --git a/user/jellyfin/jellyfin.pre-install b/user/jellyfin/jellyfin.pre-install new file mode 100644 index 0000000..6e64716 --- /dev/null +++ b/user/jellyfin/jellyfin.pre-install @@ -0,0 +1,9 @@ +#!/bin/sh + +user=jellyfin +group=jellyfin + +addgroup -S $group 2>/dev/null +adduser -S -D -h /var/lib/$user -s /sbin/nologin -G $group -g $user $user 2>/dev/null + +exit 0 diff --git a/user/jellyfin/remove-prebuilt-library.patch b/user/jellyfin/remove-prebuilt-library.patch new file mode 100644 index 0000000..09dc3a3 --- /dev/null +++ b/user/jellyfin/remove-prebuilt-library.patch @@ -0,0 +1,32 @@ +diff -urp jellyfin-10.10.3.bak/Directory.Packages.props jellyfin-10.10.3/Directory.Packages.props +--- jellyfin-10.10.3.bak/Directory.Packages.props 2024-11-19 03:38:42.000000000 +0000 ++++ jellyfin-10.10.3/Directory.Packages.props 2024-12-04 02:20:12.294901276 +0000 +@@ -17,7 +17,6 @@ + + + +- + + + +@@ -68,7 +67,6 @@ + + + +- + + + +diff -urp jellyfin-10.10.3.bak/src/Jellyfin.Drawing.Skia/Jellyfin.Drawing.Skia.csproj jellyfin-10.10.3/src/Jellyfin.Drawing.Skia/Jellyfin.Drawing.Skia.csproj +--- jellyfin-10.10.3.bak/src/Jellyfin.Drawing.Skia/Jellyfin.Drawing.Skia.csproj 2024-11-19 03:38:42.000000000 +0000 ++++ jellyfin-10.10.3/src/Jellyfin.Drawing.Skia/Jellyfin.Drawing.Skia.csproj 2024-12-04 02:21:05.773987361 +0000 +@@ -20,9 +20,7 @@ + + + +- + +- + + + From 42d2681350751d89eea4ae916c36c1c543e56786 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Sun, 23 Nov 2025 22:34:53 -0500 Subject: [PATCH 41/89] user/jellyfin-web: new aport --- user/jellyfin-web/APKBUILD | 38 +++++++++++++++++++++ user/jellyfin-web/jellyfin-web.post-install | 6 ++++ 2 files changed, 44 insertions(+) create mode 100644 user/jellyfin-web/APKBUILD create mode 100644 user/jellyfin-web/jellyfin-web.post-install diff --git a/user/jellyfin-web/APKBUILD b/user/jellyfin-web/APKBUILD new file mode 100644 index 0000000..243f026 --- /dev/null +++ b/user/jellyfin-web/APKBUILD @@ -0,0 +1,38 @@ +# Maintainer: Simon Zeni +pkgname=jellyfin-web +pkgver=10.10.7 +pkgrel=0 +pkgdesc="Web Client for Jellyfin" +url="https://jellyfin.org/" +# armv7: oom +arch="x86_64 armv7 aarch64" +options="net" # net for npm +license="GPL-2.0-only" +install="$pkgname.post-install" +depends="jellyfin" +makedepends="npm" +source="$pkgname-$pkgver.tar.gz::https://github.com/jellyfin/jellyfin-web/archive/refs/tags/v$pkgver.tar.gz" + +prepare() { + default_prepare + + npm ci --no-audit +} + +build() { + npm run build:production +} + +check() { + npm test +} + +package() { + mkdir -p "$pkgdir"/usr/share/webapps/jellyfin-web + + cp -r "$builddir"/dist/* "$pkgdir"/usr/share/webapps/jellyfin-web +} + +sha512sums=" +43836cdc15957889b4ec764f68893ff6131fa4ae1991ac0e5a4991817c491d870783b2e713883b423f30208abad1b77f1856ccaeb5008e6ba56a9bf305a1b5bd jellyfin-web-10.10.7.tar.gz +" diff --git a/user/jellyfin-web/jellyfin-web.post-install b/user/jellyfin-web/jellyfin-web.post-install new file mode 100644 index 0000000..a6e6942 --- /dev/null +++ b/user/jellyfin-web/jellyfin-web.post-install @@ -0,0 +1,6 @@ +#!/bin/sh + +printf " *\n * The default jellyfin configuration does not enable the web ui.\n" +printf " * Remove the '--nowebclient' option from /etc/conf.d/jellyfin to enable it.\n *\n" + +exit 0 From 6770f6babbeebc553e573f4e23a93f780e0a3cfe Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Fri, 28 Nov 2025 17:57:01 -0500 Subject: [PATCH 42/89] user/jellyfin-web: upgrade to 10.11.3 --- user/jellyfin-web/APKBUILD | 8 +++++--- user/jellyfin-web/bump-npm-requirement.patch | 13 +++++++++++++ 2 files changed, 18 insertions(+), 3 deletions(-) create mode 100644 user/jellyfin-web/bump-npm-requirement.patch diff --git a/user/jellyfin-web/APKBUILD b/user/jellyfin-web/APKBUILD index 243f026..44f8c19 100644 --- a/user/jellyfin-web/APKBUILD +++ b/user/jellyfin-web/APKBUILD @@ -1,6 +1,6 @@ # Maintainer: Simon Zeni pkgname=jellyfin-web -pkgver=10.10.7 +pkgver=10.11.3 pkgrel=0 pkgdesc="Web Client for Jellyfin" url="https://jellyfin.org/" @@ -11,7 +11,8 @@ license="GPL-2.0-only" install="$pkgname.post-install" depends="jellyfin" makedepends="npm" -source="$pkgname-$pkgver.tar.gz::https://github.com/jellyfin/jellyfin-web/archive/refs/tags/v$pkgver.tar.gz" +source="$pkgname-$pkgver.tar.gz::https://github.com/jellyfin/jellyfin-web/archive/refs/tags/v$pkgver.tar.gz + bump-npm-requirement.patch" prepare() { default_prepare @@ -34,5 +35,6 @@ package() { } sha512sums=" -43836cdc15957889b4ec764f68893ff6131fa4ae1991ac0e5a4991817c491d870783b2e713883b423f30208abad1b77f1856ccaeb5008e6ba56a9bf305a1b5bd jellyfin-web-10.10.7.tar.gz +ef85a77bc0dbba01a877c35627138f0e5eda9bb8ba3eb5ae79997e97b5829af8063e5666f6c77d599791633791eb318de057155d0b36e3934bbd18ff4a4e641b jellyfin-web-10.11.3.tar.gz +93e028def9e44cbe939b530754e279481d5c805014786fd141456c153a4ddd6f4fe440ef44a965ddb9d08cccf81c9bbdaa24a5600aaa76a19a8f013a936dd35e bump-npm-requirement.patch " diff --git a/user/jellyfin-web/bump-npm-requirement.patch b/user/jellyfin-web/bump-npm-requirement.patch new file mode 100644 index 0000000..3731eb2 --- /dev/null +++ b/user/jellyfin-web/bump-npm-requirement.patch @@ -0,0 +1,13 @@ +diff --git a/package.json b/package.json +index f46cb3b95..096c28562 100644 +--- a/package.json ++++ b/package.json +@@ -168,7 +168,7 @@ + }, + "engines": { + "node": ">=20.0.0", +- "npm": ">=9.6.4 <11.0.0", ++ "npm": ">=9.6.4", + "yarn": "YARN NO LONGER USED - use npm instead." + } + } From 749f413ab889787dea39699dd3aa6cbf59b96d5f Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Sat, 29 Nov 2025 15:01:20 -0500 Subject: [PATCH 43/89] user/skiasharp: upgrade to 3.119.1 --- ...0001-fix-cflags-for-system-freetype2.patch | 32 ++++-------- .../skiasharp/0002-add-missing-includes.patch | 12 ----- user/skiasharp/APKBUILD | 51 ++++++------------- user/skiasharp/args.gn.in | 6 +-- 4 files changed, 28 insertions(+), 73 deletions(-) diff --git a/user/skiasharp/0001-fix-cflags-for-system-freetype2.patch b/user/skiasharp/0001-fix-cflags-for-system-freetype2.patch index d9464a4..2e3ef7a 100644 --- a/user/skiasharp/0001-fix-cflags-for-system-freetype2.patch +++ b/user/skiasharp/0001-fix-cflags-for-system-freetype2.patch @@ -1,25 +1,13 @@ -From 5f2682ed16394ba3e10ab35150c15e265ab0a0db Mon Sep 17 00:00:00 2001 -From: Naomi Rennie-Waldock -Date: Wed, 4 Dec 2024 02:01:11 +0000 -Subject: [PATCH 1/2] fix cflags for system freetype2 - ---- - third_party/freetype2/BUILD.gn | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/third_party/freetype2/BUILD.gn b/third_party/freetype2/BUILD.gn -index d3092c672f..1bf7d9fc62 100644 ---- a/third_party/freetype2/BUILD.gn +diff --git a/third_party/freetype2/BUILD.gn.orig b/third_party/freetype2/BUILD.gn +index 60d7954..a8cd633 100644 +--- a/third_party/freetype2/BUILD.gn.orig +++ b/third_party/freetype2/BUILD.gn -@@ -14,7 +14,7 @@ import("../third_party.gni") - - if (skia_use_system_freetype2) { - system("freetype2") { -- cflags = [ "-I=/usr/include/freetype2" ] -+ cflags = [ "-I/usr/include/freetype2" ] - libs = [ "freetype" ] +@@ -26,7 +26,7 @@ if (skia_use_system_freetype2) { + include_dirs = [ skia_system_freetype2_include_path ] + libs = [ skia_system_freetype2_lib ] + if (is_tizen) { +- cflags = [ "-I=$skia_system_freetype2_include_path" ] ++ cflags = [ "-I$skia_system_freetype2_include_path" ] + } } } else { --- -2.45.2 - diff --git a/user/skiasharp/0002-add-missing-includes.patch b/user/skiasharp/0002-add-missing-includes.patch index 7ffd79e..b6b2891 100644 --- a/user/skiasharp/0002-add-missing-includes.patch +++ b/user/skiasharp/0002-add-missing-includes.patch @@ -8,18 +8,6 @@ Subject: [PATCH 2/2] add missing includes third_party/vulkanmemoryallocator/GrVulkanMemoryAllocator.cpp | 2 ++ 2 files changed, 3 insertions(+) -diff --git a/src/utils/SkParseColor.cpp b/src/utils/SkParseColor.cpp -index 7260365b2c..ed118fb5e9 100644 ---- a/src/utils/SkParseColor.cpp -+++ b/src/utils/SkParseColor.cpp -@@ -6,6 +6,7 @@ - */ - - -+#include - #include "include/utils/SkParse.h" - - static constexpr const char* gColorNames[] = { diff --git a/third_party/vulkanmemoryallocator/GrVulkanMemoryAllocator.cpp b/third_party/vulkanmemoryallocator/GrVulkanMemoryAllocator.cpp index fb606984bd..4bc9d99420 100644 --- a/third_party/vulkanmemoryallocator/GrVulkanMemoryAllocator.cpp diff --git a/user/skiasharp/APKBUILD b/user/skiasharp/APKBUILD index b82e926..5412c72 100644 --- a/user/skiasharp/APKBUILD +++ b/user/skiasharp/APKBUILD @@ -1,14 +1,15 @@ # Contributor: Naomi Rennie-Waldock # Maintainer: Naomi Rennie-Waldock pkgname=skiasharp -pkgver=2.88.9 +pkgver=3.119.1 pkgrel=0 pkgdesc="2D graphics API for .NET - native library" url="https://github.com/mono/SkiaSharp" arch="x86_64 armv7 aarch64" license="BSD-3-Clause" _llvmver=21 -_skiaver=2.88.3 +# track commit in git repo under externals/skia +_skiacommit=40f75dc0051d141913c07c20d4c19590c7da0cb7 makedepends=" cmd:awk cmd:envsubst @@ -19,55 +20,34 @@ makedepends=" freetype-dev fontconfig-dev libwebp-dev + libjpeg-turbo-dev harfbuzz-dev cmake " subpackages="$pkgname-dbg" -# SkiaSharp currently doesn't work with jpeg-turbo 3.x which we've got packaged -# https://github.com/mono/SkiaSharp/issues/2645 -# https://github.com/libjpeg-turbo/libjpeg-turbo/issues/741 -_jpegturbover=2.1.5.1 source="https://github.com/mono/SkiaSharp/archive/v$pkgver/SkiaSharp-$pkgver.tar.gz - https://github.com/mono/skia/archive/v$_skiaver/skia-$_skiaver.tar.gz + skia-$_skiacommit.tar.gz::https://github.com/mono/skia/archive/$_skiacommit.tar.gz args.gn.in 0001-fix-cflags-for-system-freetype2.patch 0002-add-missing-includes.patch - - https://github.com/libjpeg-turbo/libjpeg-turbo/releases/download/$_jpegturbover/libjpeg-turbo-$_jpegturbover.tar.gz " _skiasharpdir="$srcdir/SkiaSharp-$pkgver" -_skiadir="$srcdir/skia-$_skiaver" -_jpegturbodir="$srcdir/libjpeg-turbo-$_jpegturbover" +_skiadir="$srcdir/skia-$_skiacommit" builddir="$_skiadir" options="!check" prepare() { default_prepare - install -d "$builddir"/third_party/externals - rm -f "$builddir"/third_party/externals/libjpeg-turbo - ln -s "$_jpegturbodir" "$builddir"/third_party/externals/libjpeg-turbo - ln -sf "$_jpegturbodir"/jpeg_nbits_table.h "$_jpegturbodir"/jpeg_nbits_table.c + # fetch dependencies + ./tools/git-sync-deps } build() { - export PATH="$PATH:/usr/lib/llvm$_llvmver/bin" - # Generate config for jpeg-turbo - # Note: jpeg-turbo is linked statically as part of SkiaSharp's build process - # We just run cmake first to generate jconfig.h - cd "$_jpegturbodir" - cmake3.5 . \ - -DCMAKE_BUILD_TYPE= \ - -DCMAKE_INSTALL_PREFIX=/usr \ - -DCMAKE_INSTALL_LIBDIR=lib \ - -DWITH_JPEG8=1 - - # Generate build config for SkiaSharp - cd "$builddir" - local soname=$(awk '$1 == "libSkiaSharp" && $2 == "soname" { print $3 }' "$_skiasharpdir"/VERSIONS.txt) + local soname=$(awk '$1 == "libSkiaSharp" && $2 == "soname" { print $3 }' "$_skiasharpdir"/scripts/VERSIONS.txt) local map="$_skiasharpdir"/native/linux/libSkiaSharp/libSkiaSharp.map local _skia_arch=$CTARGET_ARCH @@ -87,7 +67,7 @@ build() { } package() { - local soname=$(awk '$1 == "libSkiaSharp" && $2 == "soname" { print $3 }' "$_skiasharpdir"/VERSIONS.txt) + local soname=$(awk '$1 == "libSkiaSharp" && $2 == "soname" { print $3 }' "$_skiasharpdir"/scripts/VERSIONS.txt) install -Dm644 _build/libSkiaSharp.so.$soname -t "$pkgdir"/usr/lib/ ln -s libSkiaSharp.so.$soname "$pkgdir"/usr/lib/libSkiaSharp.so.${soname%%.*} @@ -95,10 +75,9 @@ package() { } sha512sums=" -c13fb2f2cb8e231f5130e97450e242b910ea098419334303ed0b3391ff264549f9283343be8f5e1a6e59fa7ffe9d9aeb1c2d5607af0fb1fc03af0645b685dff2 SkiaSharp-2.88.9.tar.gz -43b19f6ddefe30ddf37034c73cd23feea28cb9e4a5830f8c526771afa051bdb2a96934f70dc035ca85891992b67b47d1becc6f4bf8768175db8452e144dfd9f1 skia-2.88.3.tar.gz -c1d8eace5078a25a8be5aa92337e1211055fb4d6a1da6f019e8f53871051b56af5cd18f19e0d67a34895402bbd575d233c5b5ad752e3ea5cdc85bfd63a392910 args.gn.in -0c4caa5aff089d314540959f068ca06c5580465be7a4a4abb3db9e1756a8043e14cbd4f8be677cfe4bd837b32115c8fefb2c79cf7bd52dd06fa1cb50e2406756 0001-fix-cflags-for-system-freetype2.patch -7eac411d6f235a450dcccf7d451ecc0d9516761b3cf37d3b0438fa2648b4ce7b0912de16d27221dc1df82fe62efb9287084fce433f1aeae48732da454402dbd7 0002-add-missing-includes.patch -86a7248d064043b26b09755633ef4872a2a6133c9e677a9fe4be6645b2e0fde102cf01e09119967b3b6b85f4cb93f3f7c49ec4973944d5eff99b5b90ce8b0be6 libjpeg-turbo-2.1.5.1.tar.gz +cf9c292edebe972e318f9a807216a5e26053e2cf4b56c4dd0b6a0c7c046a2cec67ae65550fb0e5656ae0fd0b372f5a70dcc4a8704ffe1690f5a8fbc1abadf95b SkiaSharp-3.119.1.tar.gz +ee27e49434a5fe2efb2565e80dd682b6f4e91bb15d1e13f635a1d658929262bc069d04bdf49baf98b62a0425cc9353f3365cb7557c83a03b05381acb2acb2e0d skia-40f75dc0051d141913c07c20d4c19590c7da0cb7.tar.gz +b2b87cec448f5ce777d28c9e865621a121d2f32dc9d9b31d254781fc288d69e4a3a5276664d16f1ecc5eaf9963404657ad0770aeabe14c5a127847262694efd2 args.gn.in +3c6543aa126ba395d32f6831feb5121b151c89b2770589858d5b7820e1fc4d94aa2d89da4e954472b5f3fe9194448f72535b23d2f2815f90d6a9e7ae022fb42f 0001-fix-cflags-for-system-freetype2.patch +44c0044c72ccd9a5a3f679f1fe548264a779c87726d2af448c711d5c2f9b003b69056e0b231e87193d91c66416dc613be992808172522b27d02807845d30f463 0002-add-missing-includes.patch " diff --git a/user/skiasharp/args.gn.in b/user/skiasharp/args.gn.in index 4b7d5dd..cd93cd3 100644 --- a/user/skiasharp/args.gn.in +++ b/user/skiasharp/args.gn.in @@ -2,13 +2,13 @@ is_official_build=true target_os="linux" target_cpu="$_skia_arch" skia_enable_gpu=true -skia_use_icu=false +skia_use_icu=true skia_use_piex=true -skia_use_sfntly=false +skia_use_sfntly=true skia_enable_skottie=true skia_enable_tools=false skia_use_vulkan=true -skia_use_system_libjpeg_turbo=false +skia_use_system_libjpeg_turbo=true # disabled as it's not packaged skia_use_dng_sdk=false extra_cflags=[ "-DSKIA_C_DLL" ] From f45c1e54db385a1f4d717ad808de3ce954a422d5 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Sat, 29 Nov 2025 15:01:32 -0500 Subject: [PATCH 44/89] user/jellyfin: upgrade to 10.11.3 --- user/jellyfin/APKBUILD | 16 +++++---- user/jellyfin/remove-prebuilt-library.patch | 39 +++++++++++---------- user/jellyfin/use-skiasharp-3-119-1.patch | 16 +++++++++ 3 files changed, 45 insertions(+), 26 deletions(-) create mode 100644 user/jellyfin/use-skiasharp-3-119-1.patch diff --git a/user/jellyfin/APKBUILD b/user/jellyfin/APKBUILD index edc9907..f3621b0 100644 --- a/user/jellyfin/APKBUILD +++ b/user/jellyfin/APKBUILD @@ -1,20 +1,21 @@ # Maintainer: Simon Zeni # Contributor: Fabricio Silva pkgname=jellyfin -pkgver=10.10.7 -pkgrel=1 +pkgver=10.11.3 +pkgrel=0 pkgdesc="The Free Software Media System" install="$pkgname.pre-install" url="https://jellyfin.org/" arch="x86_64 armv7 aarch64" license="GPL-2.0-only" -makedepends="dotnet8-sdk" -depends="aspnetcore8-runtime jellyfin-ffmpeg skiasharp" +makedepends="dotnet9-sdk" +depends="aspnetcore9-runtime jellyfin-ffmpeg skiasharp" subpackages="$pkgname-openrc" source="$pkgname-$pkgver.tar.gz::https://github.com/jellyfin/jellyfin/archive/refs/tags/v$pkgver.tar.gz $pkgname.initd $pkgname.confd -remove-prebuilt-library.patch + remove-prebuilt-library.patch + use-skiasharp-3-119-1.patch " build() { @@ -43,8 +44,9 @@ package() { } sha512sums=" -6c48401f4acf509b69fb6b8916be54b1b697aa85308ac4a39345bef0ce61c78c4ad978650569ac0964eeb9389fdea249ffc279a37bcd49c0341d3825423f5a97 jellyfin-10.10.7.tar.gz +2dd7d2cebc5eed57ab4d38a3004f255a3239a0c23d2d133ab6e0d6a9495fc2e774749af5f53d15968af957e5e96255e1b82089e93101feba78d7800973eb4ac6 jellyfin-10.11.3.tar.gz bcdb882b837a08e4c1db363fbf2a075f0d6558a537c3f798b1473f9f1b5b887b6da1928558b0aede8bf56ab16469ac9e80dc95b0f874533ad744465a92b37696 jellyfin.initd 594c26e5235ae2265f3f586f596cd6b57fa0e0cec83531b6fadba48181870167f04381266c6005f1f6cb5cd76d254100a08a871ecb8da28e5890f979816a7b8b jellyfin.confd -50b9535d7b2dbebf7fbda1dc2d88941dad5530c8ab3e8e07c1203c328af426816036b5e6b4d6deb69fa344611bc18785cf8593d7d990a1cbfae0e14c9324b592 remove-prebuilt-library.patch +fc0bbeab0f37f8d483d7c1b7d9162bf5cbeb79fa82e7b652bf712c07332d8cbcceb80bc21ccaceaa8a10196c3dd9ddcf33977e3baedcd5e3fd5b5cd5a3b60f1a remove-prebuilt-library.patch +cc81a9b0f83914a35d96c68067311eea4c4aaca1f921da9dbb7ff37a06833b6124b48da15d33c44cce5323c1b3f278e96584af66aa491850d4fc5f9d3cd57630 use-skiasharp-3-119-1.patch " diff --git a/user/jellyfin/remove-prebuilt-library.patch b/user/jellyfin/remove-prebuilt-library.patch index 09dc3a3..7efbaf0 100644 --- a/user/jellyfin/remove-prebuilt-library.patch +++ b/user/jellyfin/remove-prebuilt-library.patch @@ -1,22 +1,3 @@ -diff -urp jellyfin-10.10.3.bak/Directory.Packages.props jellyfin-10.10.3/Directory.Packages.props ---- jellyfin-10.10.3.bak/Directory.Packages.props 2024-11-19 03:38:42.000000000 +0000 -+++ jellyfin-10.10.3/Directory.Packages.props 2024-12-04 02:20:12.294901276 +0000 -@@ -17,7 +17,6 @@ - - - -- - - - -@@ -68,7 +67,6 @@ - - - -- - - - diff -urp jellyfin-10.10.3.bak/src/Jellyfin.Drawing.Skia/Jellyfin.Drawing.Skia.csproj jellyfin-10.10.3/src/Jellyfin.Drawing.Skia/Jellyfin.Drawing.Skia.csproj --- jellyfin-10.10.3.bak/src/Jellyfin.Drawing.Skia/Jellyfin.Drawing.Skia.csproj 2024-11-19 03:38:42.000000000 +0000 +++ jellyfin-10.10.3/src/Jellyfin.Drawing.Skia/Jellyfin.Drawing.Skia.csproj 2024-12-04 02:21:05.773987361 +0000 @@ -30,3 +11,23 @@ diff -urp jellyfin-10.10.3.bak/src/Jellyfin.Drawing.Skia/Jellyfin.Drawing.Skia.c +diff --git a/Directory.Packages.props.orig b/Directory.Packages.props +index dc3e7d7..275ba3c 100644 +--- a/Directory.Packages.props.orig ++++ b/Directory.Packages.props +@@ -18,7 +18,6 @@ + + + +- + + + +@@ -76,7 +75,6 @@ + + + +- + + + diff --git a/user/jellyfin/use-skiasharp-3-119-1.patch b/user/jellyfin/use-skiasharp-3-119-1.patch new file mode 100644 index 0000000..5068d4a --- /dev/null +++ b/user/jellyfin/use-skiasharp-3-119-1.patch @@ -0,0 +1,16 @@ +diff --git a/Directory.Packages.props.orig b/Directory.Packages.props +index 275ba3c..18cc64a 100644 +--- a/Directory.Packages.props.orig ++++ b/Directory.Packages.props +@@ -72,9 +72,8 @@ + + + +- +- +- ++ ++ + + + From 73ebcb7fcc409860e2b54b3e9c35ad23a0790bdc Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Sat, 29 Nov 2025 17:48:04 -0500 Subject: [PATCH 45/89] user/skiasharp: use vendored libjpeg-turbo --- user/skiasharp/APKBUILD | 4 ++-- user/skiasharp/args.gn.in | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/user/skiasharp/APKBUILD b/user/skiasharp/APKBUILD index 5412c72..8f48938 100644 --- a/user/skiasharp/APKBUILD +++ b/user/skiasharp/APKBUILD @@ -2,7 +2,7 @@ # Maintainer: Naomi Rennie-Waldock pkgname=skiasharp pkgver=3.119.1 -pkgrel=0 +pkgrel=1 pkgdesc="2D graphics API for .NET - native library" url="https://github.com/mono/SkiaSharp" arch="x86_64 armv7 aarch64" @@ -77,7 +77,7 @@ package() { sha512sums=" cf9c292edebe972e318f9a807216a5e26053e2cf4b56c4dd0b6a0c7c046a2cec67ae65550fb0e5656ae0fd0b372f5a70dcc4a8704ffe1690f5a8fbc1abadf95b SkiaSharp-3.119.1.tar.gz ee27e49434a5fe2efb2565e80dd682b6f4e91bb15d1e13f635a1d658929262bc069d04bdf49baf98b62a0425cc9353f3365cb7557c83a03b05381acb2acb2e0d skia-40f75dc0051d141913c07c20d4c19590c7da0cb7.tar.gz -b2b87cec448f5ce777d28c9e865621a121d2f32dc9d9b31d254781fc288d69e4a3a5276664d16f1ecc5eaf9963404657ad0770aeabe14c5a127847262694efd2 args.gn.in +705945ca1cd1b6922a2491ef1ab17b3899334b5b30fb236ced09f7383779184d1c670698874602da3d367bcf35297e14bc6a362ed85f19f8ecc5209fb2918917 args.gn.in 3c6543aa126ba395d32f6831feb5121b151c89b2770589858d5b7820e1fc4d94aa2d89da4e954472b5f3fe9194448f72535b23d2f2815f90d6a9e7ae022fb42f 0001-fix-cflags-for-system-freetype2.patch 44c0044c72ccd9a5a3f679f1fe548264a779c87726d2af448c711d5c2f9b003b69056e0b231e87193d91c66416dc613be992808172522b27d02807845d30f463 0002-add-missing-includes.patch " diff --git a/user/skiasharp/args.gn.in b/user/skiasharp/args.gn.in index cd93cd3..b88b358 100644 --- a/user/skiasharp/args.gn.in +++ b/user/skiasharp/args.gn.in @@ -8,7 +8,7 @@ skia_use_sfntly=true skia_enable_skottie=true skia_enable_tools=false skia_use_vulkan=true -skia_use_system_libjpeg_turbo=true +skia_use_system_libjpeg_turbo=false # disabled as it's not packaged skia_use_dng_sdk=false extra_cflags=[ "-DSKIA_C_DLL" ] From c25b332251b34b85fa1458779afa881dca01687c Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Sat, 29 Nov 2025 19:47:40 -0500 Subject: [PATCH 46/89] user/skiasharp: use preprocessed tar --- ....patch => 0001-add-missing-includes.patch} | 6 +-- ...0001-fix-cflags-for-system-freetype2.patch | 13 ----- user/skiasharp/APKBUILD | 51 ++++++++----------- 3 files changed, 23 insertions(+), 47 deletions(-) rename user/skiasharp/{0002-add-missing-includes.patch => 0001-add-missing-includes.patch} (65%) delete mode 100644 user/skiasharp/0001-fix-cflags-for-system-freetype2.patch diff --git a/user/skiasharp/0002-add-missing-includes.patch b/user/skiasharp/0001-add-missing-includes.patch similarity index 65% rename from user/skiasharp/0002-add-missing-includes.patch rename to user/skiasharp/0001-add-missing-includes.patch index b6b2891..4a840e8 100644 --- a/user/skiasharp/0002-add-missing-includes.patch +++ b/user/skiasharp/0001-add-missing-includes.patch @@ -8,10 +8,10 @@ Subject: [PATCH 2/2] add missing includes third_party/vulkanmemoryallocator/GrVulkanMemoryAllocator.cpp | 2 ++ 2 files changed, 3 insertions(+) -diff --git a/third_party/vulkanmemoryallocator/GrVulkanMemoryAllocator.cpp b/third_party/vulkanmemoryallocator/GrVulkanMemoryAllocator.cpp +diff --git a/externals/skia/third_party/vulkanmemoryallocator/GrVulkanMemoryAllocator.cpp b/externals/skia/third_party/vulkanmemoryallocator/GrVulkanMemoryAllocator.cpp index fb606984bd..4bc9d99420 100644 ---- a/third_party/vulkanmemoryallocator/GrVulkanMemoryAllocator.cpp -+++ b/third_party/vulkanmemoryallocator/GrVulkanMemoryAllocator.cpp +--- a/externals/skia/third_party/vulkanmemoryallocator/GrVulkanMemoryAllocator.cpp ++++ b/externals/skia/third_party/vulkanmemoryallocator/GrVulkanMemoryAllocator.cpp @@ -5,6 +5,8 @@ * found in the LICENSE file. */ diff --git a/user/skiasharp/0001-fix-cflags-for-system-freetype2.patch b/user/skiasharp/0001-fix-cflags-for-system-freetype2.patch deleted file mode 100644 index 2e3ef7a..0000000 --- a/user/skiasharp/0001-fix-cflags-for-system-freetype2.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/third_party/freetype2/BUILD.gn.orig b/third_party/freetype2/BUILD.gn -index 60d7954..a8cd633 100644 ---- a/third_party/freetype2/BUILD.gn.orig -+++ b/third_party/freetype2/BUILD.gn -@@ -26,7 +26,7 @@ if (skia_use_system_freetype2) { - include_dirs = [ skia_system_freetype2_include_path ] - libs = [ skia_system_freetype2_lib ] - if (is_tizen) { -- cflags = [ "-I=$skia_system_freetype2_include_path" ] -+ cflags = [ "-I$skia_system_freetype2_include_path" ] - } - } - } else { diff --git a/user/skiasharp/APKBUILD b/user/skiasharp/APKBUILD index 8f48938..62ecc16 100644 --- a/user/skiasharp/APKBUILD +++ b/user/skiasharp/APKBUILD @@ -1,5 +1,5 @@ # Contributor: Naomi Rennie-Waldock -# Maintainer: Naomi Rennie-Waldock +# Maintainer: Antoine Martin (ayakael) pkgname=skiasharp pkgver=3.119.1 pkgrel=1 @@ -8,8 +8,6 @@ url="https://github.com/mono/SkiaSharp" arch="x86_64 armv7 aarch64" license="BSD-3-Clause" _llvmver=21 -# track commit in git repo under externals/skia -_skiacommit=40f75dc0051d141913c07c20d4c19590c7da0cb7 makedepends=" cmd:awk cmd:envsubst @@ -23,32 +21,21 @@ makedepends=" libjpeg-turbo-dev harfbuzz-dev cmake + zstd " subpackages="$pkgname-dbg" -source="https://github.com/mono/SkiaSharp/archive/v$pkgver/SkiaSharp-$pkgver.tar.gz - skia-$_skiacommit.tar.gz::https://github.com/mono/skia/archive/$_skiacommit.tar.gz - +source=" + https://ayakael.net/api/packages/mirrors/generic/skiasharp/v$pkgver/skiasharp-v$pkgver.tar.zst args.gn.in - - 0001-fix-cflags-for-system-freetype2.patch - 0002-add-missing-includes.patch + 0001-add-missing-includes.patch " -_skiasharpdir="$srcdir/SkiaSharp-$pkgver" -_skiadir="$srcdir/skia-$_skiacommit" -builddir="$_skiadir" +builddir="$srcdir"/skiasharp-v$pkgver options="!check" -prepare() { - default_prepare - - # fetch dependencies - ./tools/git-sync-deps -} - build() { export PATH="$PATH:/usr/lib/llvm$_llvmver/bin" - local soname=$(awk '$1 == "libSkiaSharp" && $2 == "soname" { print $3 }' "$_skiasharpdir"/scripts/VERSIONS.txt) - local map="$_skiasharpdir"/native/linux/libSkiaSharp/libSkiaSharp.map + local soname=$(awk '$1 == "libSkiaSharp" && $2 == "soname" { print $3 }' "$builddir"/scripts/VERSIONS.txt) + local map="$builddir"/native/linux/libSkiaSharp/libSkiaSharp.map local _skia_arch=$CTARGET_ARCH case "$CTARGET_ARCH" in @@ -59,25 +46,27 @@ build() { export soname map _skia_arch _llvmver - [ -d _build ] || mkdir _build - envsubst < "$srcdir"/args.gn.in > _build/args.gn + ( + cd externals/skia - gn gen _build - ninja -j"${JOBS:-1}" -C _build SkiaSharp + [ -d _build ] || mkdir _build + envsubst < "$srcdir"/args.gn.in > _build/args.gn + + gn gen _build + ninja -j"${JOBS:-1}" -C _build SkiaSharp + ) } package() { - local soname=$(awk '$1 == "libSkiaSharp" && $2 == "soname" { print $3 }' "$_skiasharpdir"/scripts/VERSIONS.txt) + local soname=$(awk '$1 == "libSkiaSharp" && $2 == "soname" { print $3 }' "$builddir"/scripts/VERSIONS.txt) - install -Dm644 _build/libSkiaSharp.so.$soname -t "$pkgdir"/usr/lib/ + install -Dm644 "$builddir"/externals/skia/_build/libSkiaSharp.so.$soname -t "$pkgdir"/usr/lib/ ln -s libSkiaSharp.so.$soname "$pkgdir"/usr/lib/libSkiaSharp.so.${soname%%.*} ln -s libSkiaSharp.so.$soname "$pkgdir"/usr/lib/libSkiaSharp.so } sha512sums=" -cf9c292edebe972e318f9a807216a5e26053e2cf4b56c4dd0b6a0c7c046a2cec67ae65550fb0e5656ae0fd0b372f5a70dcc4a8704ffe1690f5a8fbc1abadf95b SkiaSharp-3.119.1.tar.gz -ee27e49434a5fe2efb2565e80dd682b6f4e91bb15d1e13f635a1d658929262bc069d04bdf49baf98b62a0425cc9353f3365cb7557c83a03b05381acb2acb2e0d skia-40f75dc0051d141913c07c20d4c19590c7da0cb7.tar.gz +f46ae10474cbf66de5d86a6041e682ebaa7c68d640836ba283023d4d5787ddfa32ae7853b2e19da1ec5a65e40f4ae71d11e55721f6e0ed136b7bbd8477464564 skiasharp-v3.119.1.tar.zst 705945ca1cd1b6922a2491ef1ab17b3899334b5b30fb236ced09f7383779184d1c670698874602da3d367bcf35297e14bc6a362ed85f19f8ecc5209fb2918917 args.gn.in -3c6543aa126ba395d32f6831feb5121b151c89b2770589858d5b7820e1fc4d94aa2d89da4e954472b5f3fe9194448f72535b23d2f2815f90d6a9e7ae022fb42f 0001-fix-cflags-for-system-freetype2.patch -44c0044c72ccd9a5a3f679f1fe548264a779c87726d2af448c711d5c2f9b003b69056e0b231e87193d91c66416dc613be992808172522b27d02807845d30f463 0002-add-missing-includes.patch +a189922f8870352223b2aa9b922167398513333f6f82627b0499d7ca7fbeb211f0f5b192e5caad5b4eb9ebbb49de16f41c691309c3d41b3b19dc17cd13cf18b8 0001-add-missing-includes.patch " From 23bcbc75138e5c8b9e5028d0926100b5d8368e62 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Sat, 29 Nov 2025 19:48:20 -0500 Subject: [PATCH 47/89] user/jellyfin: set skiasharp version dynamically --- user/jellyfin/APKBUILD | 17 +++++++++++++---- user/jellyfin/use-skiasharp-3-119-1.patch | 16 ---------------- 2 files changed, 13 insertions(+), 20 deletions(-) delete mode 100644 user/jellyfin/use-skiasharp-3-119-1.patch diff --git a/user/jellyfin/APKBUILD b/user/jellyfin/APKBUILD index f3621b0..0fb06df 100644 --- a/user/jellyfin/APKBUILD +++ b/user/jellyfin/APKBUILD @@ -1,5 +1,5 @@ -# Maintainer: Simon Zeni # Contributor: Fabricio Silva +# Maintainer: Simon Zeni pkgname=jellyfin pkgver=10.11.3 pkgrel=0 @@ -8,16 +8,26 @@ install="$pkgname.pre-install" url="https://jellyfin.org/" arch="x86_64 armv7 aarch64" license="GPL-2.0-only" -makedepends="dotnet9-sdk" +makedepends="dotnet9-sdk gawk" depends="aspnetcore9-runtime jellyfin-ffmpeg skiasharp" subpackages="$pkgname-openrc" source="$pkgname-$pkgver.tar.gz::https://github.com/jellyfin/jellyfin/archive/refs/tags/v$pkgver.tar.gz $pkgname.initd $pkgname.confd remove-prebuilt-library.patch - use-skiasharp-3-119-1.patch " +prepare() { + default_prepare + + # set SkiaSharp and SkiaSharp.Harfbuzz version based on packaged library + local _skia_packagedver=$(apk version skiasharp | tail -n 1 | awk -F '=' '{print $2}' | tr -d ' ') + local _skia_packagedver=${_skia_packagedver/-*} + msg "Building against skiasharp $_skia_packagedver" + gawk -i inplace -v "skia_version=Version\=\"$_skia_packagedver\"" '{if($2 == "Include=\"SkiaSharp\""){ $3 = skia_version}{print}}' Directory.Packages.props + gawk -i inplace -v "skia_version=Version\=\"$_skia_packagedver\"" '{if($2 == "Include=\"SkiaSharp.HarfBuzz\""){ $3 = skia_version}{print}}' Directory.Packages.props +} + build() { dotnet publish Jellyfin.Server \ --configuration Release \ @@ -48,5 +58,4 @@ sha512sums=" bcdb882b837a08e4c1db363fbf2a075f0d6558a537c3f798b1473f9f1b5b887b6da1928558b0aede8bf56ab16469ac9e80dc95b0f874533ad744465a92b37696 jellyfin.initd 594c26e5235ae2265f3f586f596cd6b57fa0e0cec83531b6fadba48181870167f04381266c6005f1f6cb5cd76d254100a08a871ecb8da28e5890f979816a7b8b jellyfin.confd fc0bbeab0f37f8d483d7c1b7d9162bf5cbeb79fa82e7b652bf712c07332d8cbcceb80bc21ccaceaa8a10196c3dd9ddcf33977e3baedcd5e3fd5b5cd5a3b60f1a remove-prebuilt-library.patch -cc81a9b0f83914a35d96c68067311eea4c4aaca1f921da9dbb7ff37a06833b6124b48da15d33c44cce5323c1b3f278e96584af66aa491850d4fc5f9d3cd57630 use-skiasharp-3-119-1.patch " diff --git a/user/jellyfin/use-skiasharp-3-119-1.patch b/user/jellyfin/use-skiasharp-3-119-1.patch deleted file mode 100644 index 5068d4a..0000000 --- a/user/jellyfin/use-skiasharp-3-119-1.patch +++ /dev/null @@ -1,16 +0,0 @@ -diff --git a/Directory.Packages.props.orig b/Directory.Packages.props -index 275ba3c..18cc64a 100644 ---- a/Directory.Packages.props.orig -+++ b/Directory.Packages.props -@@ -72,9 +72,8 @@ - - - -- -- -- -+ -+ - - - From d6eed040f22426ca9a302edc9aa5f004b2c943c1 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 1 Dec 2025 10:42:33 -0500 Subject: [PATCH 48/89] user/jellyfin{,-web}, skiasharp: drop due to merged on aports --- user/jellyfin-web/APKBUILD | 40 ----------- user/jellyfin-web/bump-npm-requirement.patch | 13 ---- user/jellyfin-web/jellyfin-web.post-install | 6 -- user/jellyfin/APKBUILD | 61 ---------------- user/jellyfin/jellyfin.confd | 7 -- user/jellyfin/jellyfin.initd | 20 ------ user/jellyfin/jellyfin.pre-install | 9 --- user/jellyfin/remove-prebuilt-library.patch | 33 --------- .../skiasharp/0001-add-missing-includes.patch | 26 ------- user/skiasharp/APKBUILD | 72 ------------------- user/skiasharp/args.gn.in | 19 ----- 11 files changed, 306 deletions(-) delete mode 100644 user/jellyfin-web/APKBUILD delete mode 100644 user/jellyfin-web/bump-npm-requirement.patch delete mode 100644 user/jellyfin-web/jellyfin-web.post-install delete mode 100644 user/jellyfin/APKBUILD delete mode 100644 user/jellyfin/jellyfin.confd delete mode 100644 user/jellyfin/jellyfin.initd delete mode 100644 user/jellyfin/jellyfin.pre-install delete mode 100644 user/jellyfin/remove-prebuilt-library.patch delete mode 100644 user/skiasharp/0001-add-missing-includes.patch delete mode 100644 user/skiasharp/APKBUILD delete mode 100644 user/skiasharp/args.gn.in diff --git a/user/jellyfin-web/APKBUILD b/user/jellyfin-web/APKBUILD deleted file mode 100644 index 44f8c19..0000000 --- a/user/jellyfin-web/APKBUILD +++ /dev/null @@ -1,40 +0,0 @@ -# Maintainer: Simon Zeni -pkgname=jellyfin-web -pkgver=10.11.3 -pkgrel=0 -pkgdesc="Web Client for Jellyfin" -url="https://jellyfin.org/" -# armv7: oom -arch="x86_64 armv7 aarch64" -options="net" # net for npm -license="GPL-2.0-only" -install="$pkgname.post-install" -depends="jellyfin" -makedepends="npm" -source="$pkgname-$pkgver.tar.gz::https://github.com/jellyfin/jellyfin-web/archive/refs/tags/v$pkgver.tar.gz - bump-npm-requirement.patch" - -prepare() { - default_prepare - - npm ci --no-audit -} - -build() { - npm run build:production -} - -check() { - npm test -} - -package() { - mkdir -p "$pkgdir"/usr/share/webapps/jellyfin-web - - cp -r "$builddir"/dist/* "$pkgdir"/usr/share/webapps/jellyfin-web -} - -sha512sums=" -ef85a77bc0dbba01a877c35627138f0e5eda9bb8ba3eb5ae79997e97b5829af8063e5666f6c77d599791633791eb318de057155d0b36e3934bbd18ff4a4e641b jellyfin-web-10.11.3.tar.gz -93e028def9e44cbe939b530754e279481d5c805014786fd141456c153a4ddd6f4fe440ef44a965ddb9d08cccf81c9bbdaa24a5600aaa76a19a8f013a936dd35e bump-npm-requirement.patch -" diff --git a/user/jellyfin-web/bump-npm-requirement.patch b/user/jellyfin-web/bump-npm-requirement.patch deleted file mode 100644 index 3731eb2..0000000 --- a/user/jellyfin-web/bump-npm-requirement.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/package.json b/package.json -index f46cb3b95..096c28562 100644 ---- a/package.json -+++ b/package.json -@@ -168,7 +168,7 @@ - }, - "engines": { - "node": ">=20.0.0", -- "npm": ">=9.6.4 <11.0.0", -+ "npm": ">=9.6.4", - "yarn": "YARN NO LONGER USED - use npm instead." - } - } diff --git a/user/jellyfin-web/jellyfin-web.post-install b/user/jellyfin-web/jellyfin-web.post-install deleted file mode 100644 index a6e6942..0000000 --- a/user/jellyfin-web/jellyfin-web.post-install +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh - -printf " *\n * The default jellyfin configuration does not enable the web ui.\n" -printf " * Remove the '--nowebclient' option from /etc/conf.d/jellyfin to enable it.\n *\n" - -exit 0 diff --git a/user/jellyfin/APKBUILD b/user/jellyfin/APKBUILD deleted file mode 100644 index 0fb06df..0000000 --- a/user/jellyfin/APKBUILD +++ /dev/null @@ -1,61 +0,0 @@ -# Contributor: Fabricio Silva -# Maintainer: Simon Zeni -pkgname=jellyfin -pkgver=10.11.3 -pkgrel=0 -pkgdesc="The Free Software Media System" -install="$pkgname.pre-install" -url="https://jellyfin.org/" -arch="x86_64 armv7 aarch64" -license="GPL-2.0-only" -makedepends="dotnet9-sdk gawk" -depends="aspnetcore9-runtime jellyfin-ffmpeg skiasharp" -subpackages="$pkgname-openrc" -source="$pkgname-$pkgver.tar.gz::https://github.com/jellyfin/jellyfin/archive/refs/tags/v$pkgver.tar.gz - $pkgname.initd - $pkgname.confd - remove-prebuilt-library.patch - " - -prepare() { - default_prepare - - # set SkiaSharp and SkiaSharp.Harfbuzz version based on packaged library - local _skia_packagedver=$(apk version skiasharp | tail -n 1 | awk -F '=' '{print $2}' | tr -d ' ') - local _skia_packagedver=${_skia_packagedver/-*} - msg "Building against skiasharp $_skia_packagedver" - gawk -i inplace -v "skia_version=Version\=\"$_skia_packagedver\"" '{if($2 == "Include=\"SkiaSharp\""){ $3 = skia_version}{print}}' Directory.Packages.props - gawk -i inplace -v "skia_version=Version\=\"$_skia_packagedver\"" '{if($2 == "Include=\"SkiaSharp.HarfBuzz\""){ $3 = skia_version}{print}}' Directory.Packages.props -} - -build() { - dotnet publish Jellyfin.Server \ - --configuration Release \ - --no-self-contained \ - --use-current-runtime \ - --output publish -} - -check() { - dotnet test --no-restore -} - -package() { - mkdir -p "$pkgdir"/usr/lib "$pkgdir"/usr/bin - - cp -a publish "$pkgdir"/usr/lib/jellyfin - ln -s ../lib/jellyfin/jellyfin "$pkgdir"/usr/bin/jellyfin - ln -s ../libSkiaSharp.so "$pkgdir"/usr/lib/jellyfin/libSkiaSharp.so - - install -Dm755 "$srcdir"/$pkgname.initd \ - "$pkgdir"/etc/init.d/$pkgname - install -Dm644 "$srcdir"/$pkgname.confd \ - "$pkgdir"/etc/conf.d/$pkgname -} - -sha512sums=" -2dd7d2cebc5eed57ab4d38a3004f255a3239a0c23d2d133ab6e0d6a9495fc2e774749af5f53d15968af957e5e96255e1b82089e93101feba78d7800973eb4ac6 jellyfin-10.11.3.tar.gz -bcdb882b837a08e4c1db363fbf2a075f0d6558a537c3f798b1473f9f1b5b887b6da1928558b0aede8bf56ab16469ac9e80dc95b0f874533ad744465a92b37696 jellyfin.initd -594c26e5235ae2265f3f586f596cd6b57fa0e0cec83531b6fadba48181870167f04381266c6005f1f6cb5cd76d254100a08a871ecb8da28e5890f979816a7b8b jellyfin.confd -fc0bbeab0f37f8d483d7c1b7d9162bf5cbeb79fa82e7b652bf712c07332d8cbcceb80bc21ccaceaa8a10196c3dd9ddcf33977e3baedcd5e3fd5b5cd5a3b60f1a remove-prebuilt-library.patch -" diff --git a/user/jellyfin/jellyfin.confd b/user/jellyfin/jellyfin.confd deleted file mode 100644 index 38c0def..0000000 --- a/user/jellyfin/jellyfin.confd +++ /dev/null @@ -1,7 +0,0 @@ -supervisor=supervise-daemon -datadir="/var/lib/jellyfin" -cachedir="/var/cache/jellyfin" -logdir="/var/log/jellyfin" -webdir="/usr/share/webapps/jellyfin-web" -ffmpegpath="/usr/lib/jellyfin-ffmpeg/ffmpeg" -opts="--nowebclient" diff --git a/user/jellyfin/jellyfin.initd b/user/jellyfin/jellyfin.initd deleted file mode 100644 index 4641de7..0000000 --- a/user/jellyfin/jellyfin.initd +++ /dev/null @@ -1,20 +0,0 @@ -#!/sbin/openrc-run - -name=jellyfin -description="The Free Software Media System" - -command=/usr/bin/jellyfin -command_user=jellyfin:jellyfin -command_args="--webdir ${webdir:-/usr/share/webapps/jellyfin-web} --datadir ${datadir} --cachedir ${cachedir} --logdir ${logdir} --ffmpeg ${ffmpegpath:-/usr/lib/jellyfin-ffmpeg/ffmpeg} ${opts}" - -depend() { - use logger dns - need net - after firewall -} - -start_pre() { - checkpath -d -o $command_user "$datadir" - checkpath -d -o $command_user "$cachedir" - checkpath -d -o $command_user "$logdir" -} diff --git a/user/jellyfin/jellyfin.pre-install b/user/jellyfin/jellyfin.pre-install deleted file mode 100644 index 6e64716..0000000 --- a/user/jellyfin/jellyfin.pre-install +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/sh - -user=jellyfin -group=jellyfin - -addgroup -S $group 2>/dev/null -adduser -S -D -h /var/lib/$user -s /sbin/nologin -G $group -g $user $user 2>/dev/null - -exit 0 diff --git a/user/jellyfin/remove-prebuilt-library.patch b/user/jellyfin/remove-prebuilt-library.patch deleted file mode 100644 index 7efbaf0..0000000 --- a/user/jellyfin/remove-prebuilt-library.patch +++ /dev/null @@ -1,33 +0,0 @@ -diff -urp jellyfin-10.10.3.bak/src/Jellyfin.Drawing.Skia/Jellyfin.Drawing.Skia.csproj jellyfin-10.10.3/src/Jellyfin.Drawing.Skia/Jellyfin.Drawing.Skia.csproj ---- jellyfin-10.10.3.bak/src/Jellyfin.Drawing.Skia/Jellyfin.Drawing.Skia.csproj 2024-11-19 03:38:42.000000000 +0000 -+++ jellyfin-10.10.3/src/Jellyfin.Drawing.Skia/Jellyfin.Drawing.Skia.csproj 2024-12-04 02:21:05.773987361 +0000 -@@ -20,9 +20,7 @@ - - - -- - -- - - - -diff --git a/Directory.Packages.props.orig b/Directory.Packages.props -index dc3e7d7..275ba3c 100644 ---- a/Directory.Packages.props.orig -+++ b/Directory.Packages.props -@@ -18,7 +18,6 @@ - - - -- - - - -@@ -76,7 +75,6 @@ - - - -- - - - diff --git a/user/skiasharp/0001-add-missing-includes.patch b/user/skiasharp/0001-add-missing-includes.patch deleted file mode 100644 index 4a840e8..0000000 --- a/user/skiasharp/0001-add-missing-includes.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 4367484b44f349f3f9009a001167c08a61f6934b Mon Sep 17 00:00:00 2001 -From: Naomi Rennie-Waldock -Date: Wed, 4 Dec 2024 02:02:29 +0000 -Subject: [PATCH 2/2] add missing includes - ---- - src/utils/SkParseColor.cpp | 1 + - third_party/vulkanmemoryallocator/GrVulkanMemoryAllocator.cpp | 2 ++ - 2 files changed, 3 insertions(+) - -diff --git a/externals/skia/third_party/vulkanmemoryallocator/GrVulkanMemoryAllocator.cpp b/externals/skia/third_party/vulkanmemoryallocator/GrVulkanMemoryAllocator.cpp -index fb606984bd..4bc9d99420 100644 ---- a/externals/skia/third_party/vulkanmemoryallocator/GrVulkanMemoryAllocator.cpp -+++ b/externals/skia/third_party/vulkanmemoryallocator/GrVulkanMemoryAllocator.cpp -@@ -5,6 +5,8 @@ - * found in the LICENSE file. - */ - -+#include -+ - // We use our own functions pointers - #define VMA_STATIC_VULKAN_FUNCTIONS 0 - #define VMA_DYNAMIC_VULKAN_FUNCTIONS 0 --- -2.45.2 - diff --git a/user/skiasharp/APKBUILD b/user/skiasharp/APKBUILD deleted file mode 100644 index 62ecc16..0000000 --- a/user/skiasharp/APKBUILD +++ /dev/null @@ -1,72 +0,0 @@ -# Contributor: Naomi Rennie-Waldock -# Maintainer: Antoine Martin (ayakael) -pkgname=skiasharp -pkgver=3.119.1 -pkgrel=1 -pkgdesc="2D graphics API for .NET - native library" -url="https://github.com/mono/SkiaSharp" -arch="x86_64 armv7 aarch64" -license="BSD-3-Clause" -_llvmver=21 -makedepends=" - cmd:awk - cmd:envsubst - clang$_llvmver - llvm$_llvmver - gn - ninja - freetype-dev - fontconfig-dev - libwebp-dev - libjpeg-turbo-dev - harfbuzz-dev - cmake - zstd - " -subpackages="$pkgname-dbg" -source=" - https://ayakael.net/api/packages/mirrors/generic/skiasharp/v$pkgver/skiasharp-v$pkgver.tar.zst - args.gn.in - 0001-add-missing-includes.patch - " -builddir="$srcdir"/skiasharp-v$pkgver -options="!check" - -build() { - export PATH="$PATH:/usr/lib/llvm$_llvmver/bin" - local soname=$(awk '$1 == "libSkiaSharp" && $2 == "soname" { print $3 }' "$builddir"/scripts/VERSIONS.txt) - local map="$builddir"/native/linux/libSkiaSharp/libSkiaSharp.map - local _skia_arch=$CTARGET_ARCH - - case "$CTARGET_ARCH" in - aarch64) _skia_arch=arm64 ;; - armv7) _skia_arch=arm ;; - x86_64) _skia_arch=x64 ;; - esac - - export soname map _skia_arch _llvmver - - ( - cd externals/skia - - [ -d _build ] || mkdir _build - envsubst < "$srcdir"/args.gn.in > _build/args.gn - - gn gen _build - ninja -j"${JOBS:-1}" -C _build SkiaSharp - ) -} - -package() { - local soname=$(awk '$1 == "libSkiaSharp" && $2 == "soname" { print $3 }' "$builddir"/scripts/VERSIONS.txt) - - install -Dm644 "$builddir"/externals/skia/_build/libSkiaSharp.so.$soname -t "$pkgdir"/usr/lib/ - ln -s libSkiaSharp.so.$soname "$pkgdir"/usr/lib/libSkiaSharp.so.${soname%%.*} - ln -s libSkiaSharp.so.$soname "$pkgdir"/usr/lib/libSkiaSharp.so -} - -sha512sums=" -f46ae10474cbf66de5d86a6041e682ebaa7c68d640836ba283023d4d5787ddfa32ae7853b2e19da1ec5a65e40f4ae71d11e55721f6e0ed136b7bbd8477464564 skiasharp-v3.119.1.tar.zst -705945ca1cd1b6922a2491ef1ab17b3899334b5b30fb236ced09f7383779184d1c670698874602da3d367bcf35297e14bc6a362ed85f19f8ecc5209fb2918917 args.gn.in -a189922f8870352223b2aa9b922167398513333f6f82627b0499d7ca7fbeb211f0f5b192e5caad5b4eb9ebbb49de16f41c691309c3d41b3b19dc17cd13cf18b8 0001-add-missing-includes.patch -" diff --git a/user/skiasharp/args.gn.in b/user/skiasharp/args.gn.in deleted file mode 100644 index b88b358..0000000 --- a/user/skiasharp/args.gn.in +++ /dev/null @@ -1,19 +0,0 @@ -is_official_build=true -target_os="linux" -target_cpu="$_skia_arch" -skia_enable_gpu=true -skia_use_icu=true -skia_use_piex=true -skia_use_sfntly=true -skia_enable_skottie=true -skia_enable_tools=false -skia_use_vulkan=true -skia_use_system_libjpeg_turbo=false -# disabled as it's not packaged -skia_use_dng_sdk=false -extra_cflags=[ "-DSKIA_C_DLL" ] -extra_ldflags=[ "-Wl,--version-script=$map" ] -linux_soname_version="$soname" -cc="clang" -cxx="clang++" -ar="llvm-ar" From ee0ce1377325cfdcea87a31c7f41a876c0bed9fe Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 24 Nov 2025 13:26:58 -0500 Subject: [PATCH 49/89] backports/calibre: upgrade to 8.14.0 --- backports/calibre/0002-calibre-use-make.patch | 13 ++++++ .../calibre/0003-calibre-disable-piper.patch | 46 +++++++++++++++++++ backports/calibre/APKBUILD | 14 ++++-- backports/calibre/musl-pread.patch | 11 ----- 4 files changed, 68 insertions(+), 16 deletions(-) create mode 100644 backports/calibre/0002-calibre-use-make.patch create mode 100644 backports/calibre/0003-calibre-disable-piper.patch delete mode 100644 backports/calibre/musl-pread.patch diff --git a/backports/calibre/0002-calibre-use-make.patch b/backports/calibre/0002-calibre-use-make.patch new file mode 100644 index 0000000..1b49726 --- /dev/null +++ b/backports/calibre/0002-calibre-use-make.patch @@ -0,0 +1,13 @@ +diff --git a/setup/build.py b/setup/build.py +index 956ad7504f..aa9d7ea028 100644 +--- a/setup/build.py ++++ b/setup/build.py +@@ -662,7 +662,7 @@ def build_headless(self): + f.seek(0), f.truncate() + f.write(raw) + bdir = os.path.join(bdir, 'build') +- cmd = [CMAKE] ++ cmd = [CMAKE, '-GUnix Makefiles'] + if is_macos_universal_build: + cmd += ['-DCMAKE_OSX_ARCHITECTURES=x86_64;arm64'] + if sw and os.path.exists(os.path.join(sw, 'qt')): diff --git a/backports/calibre/0003-calibre-disable-piper.patch b/backports/calibre/0003-calibre-disable-piper.patch new file mode 100644 index 0000000..855b62f --- /dev/null +++ b/backports/calibre/0003-calibre-disable-piper.patch @@ -0,0 +1,46 @@ +piper uses a function in espeak-ng that is upstreamed but not in a +release. + +diff --git a/setup/extensions.json b/setup/extensions.json +index b39ce6d..c105031 100644 +--- a/setup/extensions.json ++++ b/setup/extensions.json +@@ -134,14 +134,6 @@ + "error": "!podofo_error", + "needs_c++": "17" + }, +- { +- "name": "piper", +- "sources": "calibre/utils/tts/piper.cpp", +- "needs_c++": "17", +- "libraries": "!piper_libs", +- "lib_dirs": "!piper_lib_dirs", +- "inc_dirs": "!piper_inc_dirs" +- }, + { + "name": "html_as_json", + "sources": "calibre/srv/html_as_json.cpp", +diff --git a/src/calibre/constants.py b/src/calibre/constants.py +index fa4b211459..7b27768953 100644 +--- a/src/calibre/constants.py ++++ b/src/calibre/constants.py +@@ -258,7 +258,6 @@ def __init__(self): + 'rcc_backend', + 'icu', + 'speedup', +- 'piper', + 'html_as_json', + 'fast_css_transform', + 'fast_html_entities', +diff --git a/src/calibre/utils/run_tests.py b/src/calibre/utils/run_tests.py +index ffd0f95c04..c80a35f83d 100644 +--- a/src/calibre/utils/run_tests.py ++++ b/src/calibre/utils/run_tests.py +@@ -192,6 +192,7 @@ def test_import_of_all_python_modules(self): + } + if 'SKIP_SPEECH_TESTS' in os.environ: + exclude_packages.add('calibre.gui2.tts') ++ exclude_modules.add('calibre.utils.tts.piper') + if not isbsd: + exclude_modules.add('calibre.devices.usbms.hal') + d = os.path.dirname diff --git a/backports/calibre/APKBUILD b/backports/calibre/APKBUILD index 5771907..47dc7d8 100644 --- a/backports/calibre/APKBUILD +++ b/backports/calibre/APKBUILD @@ -1,6 +1,6 @@ # Maintainer: Cowington Post pkgname=calibre -pkgver=8.4.0 +pkgver=8.14.0 pkgrel=0 pkgdesc="Ebook management application" # qt6-webengine @@ -47,6 +47,7 @@ depends=" makedepends=" cmake curl + ffmpeg-dev hunspell-dev hyphen-dev libmtp-dev @@ -55,12 +56,12 @@ makedepends=" podofo-dev py3-pyqt-builder py3-pyqt6-sip + py3-qt6 py3-sip python3-dev qt6-qtbase-dev uchardet-dev xdg-utils - ffmpeg-dev " subpackages=" $pkgname-pyc @@ -70,13 +71,15 @@ subpackages=" " source="https://download.calibre-ebook.com/$pkgver/calibre-$pkgver.tar.xz 0001-$pkgname-no-update.patch - musl-pread.patch + 0002-$pkgname-use-make.patch + 0003-$pkgname-disable-piper.patch " # net: downloads iso-codes # !check: no tests ran options="net !check" export LANG="en_US.UTF-8" +export PATH="$PATH:/usr/lib/qt6/bin" prepare() { default_prepare @@ -113,7 +116,8 @@ package() { } sha512sums=" -df998fa31b9e581739872a649669fccf29f34d3ac1b4d0a96c37e08a0b049b1357b56a2af25f2733936e78901dd61b38a24e536e107e7094ada7e60a5c2c56ab calibre-8.4.0.tar.xz +edb32e47b083e10fbf53088e485737f3b61bb642ce6c4dd444e58a6618979c3b05b77ceffc4b8cb42e35eee7dcc2b94145abc22030ffd8b5de63e45b321fbf72 calibre-8.14.0.tar.xz eb8e7ce40ff8b8daf6e7e55a5dff8ec4dff06c45744266bb48b3194e92ab1196bc91468203e3c2ca1e5144166a7d6be90e6cf0253513e761b56a4c85be4c2c76 0001-calibre-no-update.patch -d27d29c434a3d2df1b18125225a4d3762bf6fdba77385b377b18a7f325f29ae0b698974a39263f4f7aed8a368c87d0dc4446f488505b8e38664f8e9ee5b9bd12 musl-pread.patch +bbb7253257073ae14840b3b4697943fe129d862b49cabd9388ea24cbd0259e68a1d359870334772164897f0c781db121de55fcdf5bccc841e36c021abe56f1ec 0002-calibre-use-make.patch +0efcf35944cd0f42d6f3572839647fc5c8336562db3f71655211d3de682e155b6d6fee4d281f9576201156e0bc828b6a579a8708a27791e4e4d604d456416954 0003-calibre-disable-piper.patch " diff --git a/backports/calibre/musl-pread.patch b/backports/calibre/musl-pread.patch deleted file mode 100644 index 241ce63..0000000 --- a/backports/calibre/musl-pread.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/src/calibre/utils/speedup.c -+++ b/src/calibre/utils/speedup.c -@@ -748,7 +748,7 @@ - break; - } - #else --#ifdef __linux__ -+#ifdef __GLIBC__ - ssize_t nr = pread64(fd, buf + pos, n - pos, offset); - #else - ssize_t nr = pread(fd, buf + pos, n - pos, offset); From 2825fbb4f54790bd8708df026c9eade8d26dcf29 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 24 Nov 2025 13:27:19 -0500 Subject: [PATCH 50/89] backports/caprine: bump pkgrel --- backports/caprine/APKBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backports/caprine/APKBUILD b/backports/caprine/APKBUILD index 41f1806..f8f2b6d 100644 --- a/backports/caprine/APKBUILD +++ b/backports/caprine/APKBUILD @@ -2,7 +2,7 @@ # Maintainer: Antoine Martin (ayakael) pkgname=caprine pkgver=2.60.3 -pkgrel=2 +pkgrel=6 pkgdesc="Elegant Facebook Messenger desktop app" arch="x86_64 aarch64" # blocked by electron url="https://github.com/sindresorhus/caprine" From a993aebd4dd3d7223fbe384b740abd12201ac421 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 24 Nov 2025 13:27:35 -0500 Subject: [PATCH 51/89] backports/electron: upgrade to 39.2.3 --- ...l_allocator-to-provide-Rust-allocato.patch | 730 ------------------ ...ix-ignore-a-new-warning-in-rust-1.89.patch | 21 + ...default-allocator-directly-from-Rust.patch | 319 -------- ...7b43542838f0a4a6cfdb17fbeadf45002042.patch | 102 --- .../electron/0004-Drop-remap_alloc-dep.patch | 44 -- ...ild-rust-allocator-after-a-Rust-tool.patch | 354 --------- backports/electron/APKBUILD | 100 +-- .../chromium-revert-drop-of-system-java.patch | 17 - backports/electron/compiler.patch | 179 +++-- .../electron/disable-dns_config_service.patch | 10 +- .../electron/disable-failing-tests.patch | 321 -------- .../electron_do-not-strip-binaries.patch | 127 +++ ...lectron_shell-file-dialog-drop-glibc.patch | 16 + backports/electron/fc-cache-version.patch | 8 +- .../electron/fix-ffmpeg-codec-list.patch | 13 + backports/electron/fix-opus.patch | 11 - backports/electron/gperf-3.2-fix.patch | 29 - .../electron/headless-shell-no-license.patch | 27 + backports/electron/musl-auxv.patch | 11 - ...-v8-monotonic-pthread-cont_timedwait.patch | 23 - backports/electron/net-test-no-vpython.patch | 22 + .../electron/net-test-pyws3-py3.12.patch | 39 + .../electron/partalloc-no-tagging-arm64.patch | 13 +- backports/electron/pipewire-1.4.patch | 23 - backports/electron/yes-musl.patch | 11 - 25 files changed, 449 insertions(+), 2121 deletions(-) delete mode 100644 backports/electron/0001-Reland-Use-global_allocator-to-provide-Rust-allocato.patch create mode 100644 backports/electron/0001-hotfix-ignore-a-new-warning-in-rust-1.89.patch delete mode 100644 backports/electron/0002-Call-Rust-default-allocator-directly-from-Rust.patch delete mode 100644 backports/electron/0003-Roll-rust-only-f7b43542838f0a4a6cfdb17fbeadf45002042.patch delete mode 100644 backports/electron/0004-Drop-remap_alloc-dep.patch delete mode 100644 backports/electron/0005-rust-Clean-up-build-rust-allocator-after-a-Rust-tool.patch delete mode 100644 backports/electron/chromium-revert-drop-of-system-java.patch create mode 100644 backports/electron/electron_do-not-strip-binaries.patch create mode 100644 backports/electron/electron_shell-file-dialog-drop-glibc.patch create mode 100644 backports/electron/fix-ffmpeg-codec-list.patch delete mode 100644 backports/electron/fix-opus.patch delete mode 100644 backports/electron/gperf-3.2-fix.patch create mode 100644 backports/electron/headless-shell-no-license.patch delete mode 100644 backports/electron/musl-auxv.patch delete mode 100644 backports/electron/musl-v8-monotonic-pthread-cont_timedwait.patch create mode 100644 backports/electron/net-test-no-vpython.patch create mode 100644 backports/electron/net-test-pyws3-py3.12.patch delete mode 100644 backports/electron/pipewire-1.4.patch delete mode 100644 backports/electron/yes-musl.patch diff --git a/backports/electron/0001-Reland-Use-global_allocator-to-provide-Rust-allocato.patch b/backports/electron/0001-Reland-Use-global_allocator-to-provide-Rust-allocato.patch deleted file mode 100644 index 580323c..0000000 --- a/backports/electron/0001-Reland-Use-global_allocator-to-provide-Rust-allocato.patch +++ /dev/null @@ -1,730 +0,0 @@ -From c854a92a215d0cf39c704bbadd3611e552073d5f Mon Sep 17 00:00:00 2001 -From: Collin Baker -Date: Fri, 4 Apr 2025 14:08:18 -0700 -Subject: [PATCH] Reland "Use #[global_allocator] to provide Rust allocator - implementation" -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -This is a reland of commit cfa3beef52625e03ba6ce2b2ac98e1b89dde5cdb - -Original was reverted due to a cronet gn2bp failure. The script -filtered out GN rules in //build/rust/std, but this caused an exception -when //build/rust/std:allocator was referenced later. - -Moving the rules to //build/rust/allocator sidesteps the issue. - -Original change's description: -> Use #[global_allocator] to provide Rust allocator implementation -> -> The allocator shim hack we have been using no longer works with -> upstream Rust. Replace it with a less-unsupported method: provide a -> https://github.com/rust-lang/rust/issues/123015, which still requires -> us to provide a few symbol definitions. -> -> Bug: 408221149, 407024458 -> Change-Id: If1808ca24b12dc80ead35a25521313a3d2e148d5 -> -> Cq-Include-Trybots: luci.chromium.try:android-rust-arm32-rel,android-rust-arm64-dbg,android-rust-arm64-rel,linux-rust-x64-dbg,linux-rust-x64-rel,mac-rust-x64-dbg,win-rust-x64-dbg,win-rust-x64-rel -> Change-Id: If1808ca24b12dc80ead35a25521313a3d2e148d5 -> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6427855 -> Reviewed-by: Alan Zhao -> Reviewed-by: Lei Zhang -> Reviewed-by: Łukasz Anforowicz -> Commit-Queue: Collin Baker -> Auto-Submit: Collin Baker -> Cr-Commit-Position: refs/heads/main@{#1442472} - -Bug: 408221149, 407024458 -Cq-Include-Trybots: luci.chromium.try:android-rust-arm32-rel,android-rust-arm64-dbg,android-rust-arm64-rel,linux-rust-x64-dbg,linux-rust-x64-rel,mac-rust-x64-dbg,win-rust-x64-dbg,win-rust-x64-rel -Change-Id: I36fef217297bfe64ae81519be24b8c653f6fdfa1 -Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6432410 -Reviewed-by: Mohannad Farrag -Reviewed-by: Łukasz Anforowicz -Auto-Submit: Collin Baker -Commit-Queue: Łukasz Anforowicz -Cr-Commit-Position: refs/heads/main@{#1442922} ---- - build/rust/allocator/BUILD.gn | 90 ++++++++++++++++ - build/rust/{std => allocator}/alias.cc | 4 +- - build/rust/{std => allocator}/alias.h | 6 +- - .../allocator_impls.cc} | 100 ++++++++---------- - build/rust/allocator/allocator_impls.h | 25 +++++ - .../allocator/allocator_shim_definitions.cc | 30 ++++++ - .../{std => allocator}/compiler_specific.h | 6 +- - .../rust/{std => allocator}/immediate_crash.h | 6 +- - build/rust/allocator/lib.rs | 48 +++++++++ - build/rust/cargo_crate.gni | 9 ++ - build/rust/rust_macro.gni | 3 + - build/rust/rust_target.gni | 4 + - build/rust/std/BUILD.gn | 41 ------- - components/cronet/android/dependencies.txt | 1 + - third_party/breakpad/BUILD.gn | 10 +- - 15 files changed, 272 insertions(+), 111 deletions(-) - create mode 100644 build/rust/allocator/BUILD.gn - rename build/rust/{std => allocator}/alias.cc (87%) - rename build/rust/{std => allocator}/alias.h (91%) - rename build/rust/{std/remap_alloc.cc => allocator/allocator_impls.cc} (67%) - create mode 100644 build/rust/allocator/allocator_impls.h - create mode 100644 build/rust/allocator/allocator_shim_definitions.cc - rename build/rust/{std => allocator}/compiler_specific.h (87%) - rename build/rust/{std => allocator}/immediate_crash.h (97%) - create mode 100644 build/rust/allocator/lib.rs - -diff --git a/build/rust/allocator/BUILD.gn b/build/rust/allocator/BUILD.gn -new file mode 100644 -index 0000000000000..06aa47f097c9c ---- /dev/null -+++ b/build/rust/allocator/BUILD.gn -@@ -0,0 +1,90 @@ -+# Copyright 2025 The Chromium Authors -+# Use of this source code is governed by a BSD-style license that can be -+# found in the LICENSE file. -+ -+import("//build/buildflag_header.gni") -+import("//build/config/rust.gni") -+import("//build/rust/rust_static_library.gni") -+ -+rust_allocator_uses_partition_alloc = false -+if (build_with_chromium) { -+ import("//base/allocator/partition_allocator/partition_alloc.gni") -+ rust_allocator_uses_partition_alloc = use_partition_alloc_as_malloc -+} -+ -+buildflag_header("buildflags") { -+ header = "buildflags.h" -+ flags = [ -+ "RUST_ALLOCATOR_USES_PARTITION_ALLOC=$rust_allocator_uses_partition_alloc", -+ ] -+ visibility = [ ":*" ] -+} -+ -+if (toolchain_has_rust) { -+ # All targets which depend on Rust code but are not linked by rustc must -+ # depend on this. Usually, this dependency will come from the rust_target() GN -+ # template. However, cargo_crate() does *not* include this dependency so any -+ # C++ targets which directly depend on a cargo_crate() must depend on this. -+ rust_static_library("allocator") { -+ sources = [ "lib.rs" ] -+ crate_root = "lib.rs" -+ cxx_bindings = [ "lib.rs" ] -+ -+ deps = [ -+ ":allocator_impls", -+ ":allocator_shim_definitions", -+ ] -+ -+ no_chromium_prelude = true -+ no_allocator_crate = true -+ allow_unsafe = true -+ } -+ -+ static_library("allocator_impls") { -+ public_deps = [] -+ if (rust_allocator_uses_partition_alloc) { -+ public_deps += [ "//base/allocator/partition_allocator:partition_alloc" ] -+ } -+ -+ sources = [ -+ "allocator_impls.cc", -+ "allocator_impls.h", -+ ] -+ -+ deps = [ -+ ":allocator_cpp_shared", -+ ":buildflags", -+ -+ # TODO(crbug.com/408221149): remove the C++ -> Rust dependency for the -+ # default allocator. -+ "//build/rust/std", -+ ] -+ -+ visibility = [ ":*" ] -+ } -+ -+ source_set("allocator_shim_definitions") { -+ sources = [ "allocator_shim_definitions.cc" ] -+ -+ deps = [ ":allocator_cpp_shared" ] -+ -+ visibility = [ ":*" ] -+ } -+ -+ source_set("allocator_cpp_shared") { -+ sources = [ -+ # `alias.*`, `compiler_specific.h`, and `immediate_crash.*` have been -+ # copied from `//base`. -+ # TODO(crbug.com/40279749): Avoid duplication / reuse code. -+ "alias.cc", -+ "alias.h", -+ "compiler_specific.h", -+ "immediate_crash.h", -+ ] -+ -+ visibility = [ -+ ":allocator_impls", -+ ":allocator_shim_definitions", -+ ] -+ } -+} -diff --git a/build/rust/std/alias.cc b/build/rust/allocator/alias.cc -similarity index 87% -rename from build/rust/std/alias.cc -rename to build/rust/allocator/alias.cc -index 42febac3ed1fc..ca20986f8ed49 100644 ---- a/build/rust/std/alias.cc -+++ b/build/rust/allocator/alias.cc -@@ -7,9 +7,9 @@ - // - // TODO(crbug.com/40279749): Avoid code duplication / reuse code. - --#include "build/rust/std/alias.h" -+#include "build/rust/allocator/alias.h" - --#include "build/rust/std/compiler_specific.h" -+#include "build/rust/allocator/compiler_specific.h" - - namespace build_rust_std { - namespace debug { -diff --git a/build/rust/std/alias.h b/build/rust/allocator/alias.h -similarity index 91% -rename from build/rust/std/alias.h -rename to build/rust/allocator/alias.h -index 0eaba6766148f..80995ecfb045e 100644 ---- a/build/rust/std/alias.h -+++ b/build/rust/allocator/alias.h -@@ -8,8 +8,8 @@ - // - // TODO(crbug.com/40279749): Avoid code duplication / reuse code. - --#ifndef BUILD_RUST_STD_ALIAS_H_ --#define BUILD_RUST_STD_ALIAS_H_ -+#ifndef BUILD_RUST_ALLOCATOR_ALIAS_H_ -+#define BUILD_RUST_ALLOCATOR_ALIAS_H_ - - #include - -@@ -34,4 +34,4 @@ void Alias(const void* var); - const int line_number = __LINE__; \ - build_rust_std::debug::Alias(&line_number) - --#endif // BUILD_RUST_STD_ALIAS_H_ -+#endif // BUILD_RUST_ALLOCATOR_ALIAS_H_ -diff --git a/build/rust/std/remap_alloc.cc b/build/rust/allocator/allocator_impls.cc -similarity index 67% -rename from build/rust/std/remap_alloc.cc -rename to build/rust/allocator/allocator_impls.cc -index a443b11ec513d..1fde98f23cd12 100644 ---- a/build/rust/std/remap_alloc.cc -+++ b/build/rust/allocator/allocator_impls.cc -@@ -2,6 +2,8 @@ - // Use of this source code is governed by a BSD-style license that can be - // found in the LICENSE file. - -+#include "build/rust/allocator/allocator_impls.h" -+ - #ifdef UNSAFE_BUFFERS_BUILD - // TODO(crbug.com/390223051): Remove C-library calls to fix the errors. - #pragma allow_unsafe_libc_calls -@@ -11,9 +13,9 @@ - #include - - #include "build/build_config.h" --#include "build/rust/std/alias.h" --#include "build/rust/std/buildflags.h" --#include "build/rust/std/immediate_crash.h" -+#include "build/rust/allocator/alias.h" -+#include "build/rust/allocator/buildflags.h" -+#include "build/rust/allocator/immediate_crash.h" - - #if BUILDFLAG(RUST_ALLOCATOR_USES_PARTITION_ALLOC) - #include "partition_alloc/partition_alloc_constants.h" // nogncheck -@@ -22,6 +24,11 @@ - #include - #endif - -+// NOTE: this documentation is outdated. -+// -+// TODO(crbug.com/408221149): update this documentation, or replace it with docs -+// in the Rust allocator implementation. -+// - // When linking a final binary, rustc has to pick between either: - // * The default Rust allocator - // * Any #[global_allocator] defined in *any rlib in its dependency tree* -@@ -87,19 +94,6 @@ - // enabling it breaks Win32 APIs like CreateProcess: - // https://issues.chromium.org/u/1/issues/368070343#comment29 - --extern "C" { -- --#ifdef COMPONENT_BUILD --#if BUILDFLAG(IS_WIN) --#define REMAP_ALLOC_ATTRIBUTES __declspec(dllexport) __attribute__((weak)) --#else --#define REMAP_ALLOC_ATTRIBUTES \ -- __attribute__((visibility("default"))) __attribute__((weak)) --#endif --#else --#define REMAP_ALLOC_ATTRIBUTES __attribute__((weak)) --#endif // COMPONENT_BUILD -- - #if !BUILDFLAG(RUST_ALLOCATOR_USES_PARTITION_ALLOC) && BUILDFLAG(IS_WIN) && \ - defined(ADDRESS_SANITIZER) - #define USE_WIN_ALIGNED_MALLOC 1 -@@ -107,17 +101,19 @@ extern "C" { - #define USE_WIN_ALIGNED_MALLOC 0 - #endif - --// This must exist as the stdlib depends on it to prove that we know the --// alloc shims below are unstable. In the future we may be required to replace --// them with a #[global_allocator] crate (see file comment above for more). --// --// Marked as weak as when Rust drives linking it includes this symbol itself, --// and we don't want a collision due to C++ being in the same link target, where --// C++ causes us to explicitly link in the stdlib and this symbol here. --[[maybe_unused]] --__attribute__((weak)) unsigned char __rust_no_alloc_shim_is_unstable; -+// The default allocator functions provided by the Rust standard library. -+extern "C" void* __rdl_alloc(size_t size, size_t align); -+extern "C" void __rdl_dealloc(void* p, size_t size, size_t align); -+extern "C" void* __rdl_realloc(void* p, -+ size_t old_size, -+ size_t align, -+ size_t new_size); -+ -+extern "C" void* __rdl_alloc_zeroed(size_t size, size_t align); -+ -+namespace rust_allocator_internal { - --REMAP_ALLOC_ATTRIBUTES void* __rust_alloc(size_t size, size_t align) { -+unsigned char* alloc(size_t size, size_t align) { - #if BUILDFLAG(RUST_ALLOCATOR_USES_PARTITION_ALLOC) - // PartitionAlloc will crash if given an alignment larger than this. - if (align > partition_alloc::internal::kMaxSupportedAlignment) { -@@ -125,19 +121,19 @@ REMAP_ALLOC_ATTRIBUTES void* __rust_alloc(size_t size, size_t align) { - } - - if (align <= alignof(std::max_align_t)) { -- return allocator_shim::UncheckedAlloc(size); -+ return static_cast(allocator_shim::UncheckedAlloc(size)); - } else { -- return allocator_shim::UncheckedAlignedAlloc(size, align); -+ return static_cast( -+ allocator_shim::UncheckedAlignedAlloc(size, align)); - } - #elif USE_WIN_ALIGNED_MALLOC -- return _aligned_malloc(size, align); -+ return static_cast(_aligned_malloc(size, align)); - #else -- extern void* __rdl_alloc(size_t size, size_t align); -- return __rdl_alloc(size, align); -+ return static_cast(__rdl_alloc(size, align)); - #endif - } - --REMAP_ALLOC_ATTRIBUTES void __rust_dealloc(void* p, size_t size, size_t align) { -+void dealloc(unsigned char* p, size_t size, size_t align) { - #if BUILDFLAG(RUST_ALLOCATOR_USES_PARTITION_ALLOC) - if (align <= alignof(std::max_align_t)) { - allocator_shim::UncheckedFree(p); -@@ -147,54 +143,44 @@ REMAP_ALLOC_ATTRIBUTES void __rust_dealloc(void* p, size_t size, size_t align) { - #elif USE_WIN_ALIGNED_MALLOC - return _aligned_free(p); - #else -- extern void __rdl_dealloc(void* p, size_t size, size_t align); - __rdl_dealloc(p, size, align); - #endif - } - --REMAP_ALLOC_ATTRIBUTES void* __rust_realloc(void* p, -- size_t old_size, -- size_t align, -- size_t new_size) { -+unsigned char* realloc(unsigned char* p, -+ size_t old_size, -+ size_t align, -+ size_t new_size) { - #if BUILDFLAG(RUST_ALLOCATOR_USES_PARTITION_ALLOC) - if (align <= alignof(std::max_align_t)) { -- return allocator_shim::UncheckedRealloc(p, new_size); -+ return static_cast( -+ allocator_shim::UncheckedRealloc(p, new_size)); - } else { -- return allocator_shim::UncheckedAlignedRealloc(p, new_size, align); -+ return static_cast( -+ allocator_shim::UncheckedAlignedRealloc(p, new_size, align)); - } - #elif USE_WIN_ALIGNED_MALLOC -- return _aligned_realloc(p, new_size, align); -+ return static_cast(_aligned_realloc(p, new_size, align)); - #else -- extern void* __rdl_realloc(void* p, size_t old_size, size_t align, -- size_t new_size); -- return __rdl_realloc(p, old_size, align, new_size); -+ return static_cast( -+ __rdl_realloc(p, old_size, align, new_size)); - #endif - } - --REMAP_ALLOC_ATTRIBUTES void* __rust_alloc_zeroed(size_t size, size_t align) { -+unsigned char* alloc_zeroed(size_t size, size_t align) { - #if BUILDFLAG(RUST_ALLOCATOR_USES_PARTITION_ALLOC) || USE_WIN_ALIGNED_MALLOC - // TODO(danakj): When RUST_ALLOCATOR_USES_PARTITION_ALLOC is true, it's - // possible that a partition_alloc::UncheckedAllocZeroed() call would perform - // better than partition_alloc::UncheckedAlloc() + memset. But there is no - // such API today. See b/342251590. -- void* p = __rust_alloc(size, align); -+ unsigned char* p = alloc(size, align); - if (p) { - memset(p, 0, size); - } - return p; - #else -- extern void* __rdl_alloc_zeroed(size_t size, size_t align); -- return __rdl_alloc_zeroed(size, align); -+ return static_cast(__rdl_alloc_zeroed(size, align)); - #endif - } - --REMAP_ALLOC_ATTRIBUTES void __rust_alloc_error_handler(size_t size, -- size_t align) { -- NO_CODE_FOLDING(); -- IMMEDIATE_CRASH(); --} -- --REMAP_ALLOC_ATTRIBUTES extern const unsigned char -- __rust_alloc_error_handler_should_panic = 0; -- --} // extern "C" -+} // namespace rust_allocator_internal -diff --git a/build/rust/allocator/allocator_impls.h b/build/rust/allocator/allocator_impls.h -new file mode 100644 -index 0000000000000..afb335412faf9 ---- /dev/null -+++ b/build/rust/allocator/allocator_impls.h -@@ -0,0 +1,25 @@ -+// Copyright 2025 The Chromium Authors -+// Use of this source code is governed by a BSD-style license that can be -+// found in the LICENSE file. -+ -+#ifndef BUILD_RUST_ALLOCATOR_ALLOCATOR_IMPLS_H_ -+#define BUILD_RUST_ALLOCATOR_ALLOCATOR_IMPLS_H_ -+ -+#include -+ -+#include "build/build_config.h" -+#include "build/rust/allocator/buildflags.h" -+ -+namespace rust_allocator_internal { -+ -+unsigned char* alloc(size_t size, size_t align); -+void dealloc(unsigned char* p, size_t size, size_t align); -+unsigned char* realloc(unsigned char* p, -+ size_t old_size, -+ size_t align, -+ size_t new_size); -+unsigned char* alloc_zeroed(size_t size, size_t align); -+ -+} // namespace rust_allocator_internal -+ -+#endif // BUILD_RUST_ALLOCATOR_ALLOCATOR_IMPLS_H_ -diff --git a/build/rust/allocator/allocator_shim_definitions.cc b/build/rust/allocator/allocator_shim_definitions.cc -new file mode 100644 -index 0000000000000..a4d1bd77b7016 ---- /dev/null -+++ b/build/rust/allocator/allocator_shim_definitions.cc -@@ -0,0 +1,30 @@ -+// Copyright 2025 The Chromium Authors -+// Use of this source code is governed by a BSD-style license that can be -+// found in the LICENSE file. -+ -+#include -+ -+#include "build/rust/allocator/alias.h" -+#include "build/rust/allocator/immediate_crash.h" -+ -+extern "C" { -+ -+// As part of rustc's contract for using `#[global_allocator]` without -+// rustc-generated shims we must define this symbol, since we are opting in to -+// unstable functionality. See https://github.com/rust-lang/rust/issues/123015 -+// -+// Mark it weak since rustc will generate it when it drives linking. -+[[maybe_unused]] -+__attribute__((weak)) unsigned char __rust_no_alloc_shim_is_unstable; -+ -+__attribute__((weak)) void __rust_alloc_error_handler(size_t size, -+ size_t align) { -+ NO_CODE_FOLDING(); -+ IMMEDIATE_CRASH(); -+} -+ -+__attribute__(( -+ weak)) extern const unsigned char __rust_alloc_error_handler_should_panic = -+ 0; -+ -+} // extern "C" -diff --git a/build/rust/std/compiler_specific.h b/build/rust/allocator/compiler_specific.h -similarity index 87% -rename from build/rust/std/compiler_specific.h -rename to build/rust/allocator/compiler_specific.h -index ea79a7a8dc284..f9079679a3e9a 100644 ---- a/build/rust/std/compiler_specific.h -+++ b/build/rust/allocator/compiler_specific.h -@@ -7,8 +7,8 @@ - // - // TODO(crbug.com/40279749): Avoid code duplication / reuse code. - --#ifndef BUILD_RUST_STD_COMPILER_SPECIFIC_H_ --#define BUILD_RUST_STD_COMPILER_SPECIFIC_H_ -+#ifndef BUILD_RUST_ALLOCATOR_COMPILER_SPECIFIC_H_ -+#define BUILD_RUST_ALLOCATOR_COMPILER_SPECIFIC_H_ - - #include "build/build_config.h" - -@@ -35,4 +35,4 @@ - #define NOINLINE - #endif - --#endif // BUILD_RUST_STD_COMPILER_SPECIFIC_H_ -+#endif // BUILD_RUST_ALLOCATOR_COMPILER_SPECIFIC_H_ -diff --git a/build/rust/std/immediate_crash.h b/build/rust/allocator/immediate_crash.h -similarity index 97% -rename from build/rust/std/immediate_crash.h -rename to build/rust/allocator/immediate_crash.h -index e4fd5a09d9379..9cbf9fd65f3e0 100644 ---- a/build/rust/std/immediate_crash.h -+++ b/build/rust/allocator/immediate_crash.h -@@ -5,8 +5,8 @@ - // This file has been copied from //base/immediate_crash.h. - // TODO(crbug.com/40279749): Avoid code duplication / reuse code. - --#ifndef BUILD_RUST_STD_IMMEDIATE_CRASH_H_ --#define BUILD_RUST_STD_IMMEDIATE_CRASH_H_ -+#ifndef BUILD_RUST_ALLOCATOR_IMMEDIATE_CRASH_H_ -+#define BUILD_RUST_ALLOCATOR_IMMEDIATE_CRASH_H_ - - #include "build/build_config.h" - -@@ -168,4 +168,4 @@ - - #endif // defined(__clang__) || defined(COMPILER_GCC) - --#endif // BUILD_RUST_STD_IMMEDIATE_CRASH_H_ -+#endif // BUILD_RUST_ALLOCATOR_IMMEDIATE_CRASH_H_ -diff --git a/build/rust/allocator/lib.rs b/build/rust/allocator/lib.rs -new file mode 100644 -index 0000000000000..7f4a0fc245694 ---- /dev/null -+++ b/build/rust/allocator/lib.rs -@@ -0,0 +1,48 @@ -+// Copyright 2025 The Chromium Authors -+// Use of this source code is governed by a BSD-style license that can be -+// found in the LICENSE file. -+ -+//! Define the allocator that Rust code in Chrome should use. -+//! -+//! Any final artifact that depends on this crate, even transitively, will use -+//! the allocator defined here. Currently this is a thin wrapper around -+//! allocator_impls.cc's functions; see the documentation there. -+ -+use std::alloc::{GlobalAlloc, Layout}; -+ -+struct Allocator; -+ -+unsafe impl GlobalAlloc for Allocator { -+ unsafe fn alloc(&self, layout: Layout) -> *mut u8 { -+ unsafe { ffi::alloc(layout.size(), layout.align()) } -+ } -+ -+ unsafe fn dealloc(&self, ptr: *mut u8, layout: Layout) { -+ unsafe { -+ ffi::dealloc(ptr, layout.size(), layout.align()); -+ } -+ } -+ -+ unsafe fn alloc_zeroed(&self, layout: Layout) -> *mut u8 { -+ unsafe { ffi::alloc_zeroed(layout.size(), layout.align()) } -+ } -+ -+ unsafe fn realloc(&self, ptr: *mut u8, layout: Layout, new_size: usize) -> *mut u8 { -+ unsafe { ffi::realloc(ptr, layout.size(), layout.align(), new_size) } -+ } -+} -+ -+#[global_allocator] -+static GLOBAL: Allocator = Allocator; -+ -+#[cxx::bridge(namespace = "rust_allocator_internal")] -+mod ffi { -+ extern "C++" { -+ include!("build/rust/allocator/allocator_impls.h"); -+ -+ unsafe fn alloc(size: usize, align: usize) -> *mut u8; -+ unsafe fn dealloc(p: *mut u8, size: usize, align: usize); -+ unsafe fn realloc(p: *mut u8, old_size: usize, align: usize, new_size: usize) -> *mut u8; -+ unsafe fn alloc_zeroed(size: usize, align: usize) -> *mut u8; -+ } -+} -diff --git a/build/rust/cargo_crate.gni b/build/rust/cargo_crate.gni -index 6d11c538bf4d5..d9912722b4ecd 100644 ---- a/build/rust/cargo_crate.gni -+++ b/build/rust/cargo_crate.gni -@@ -259,6 +259,12 @@ template("cargo_crate") { - # Don't import the `chromium` crate into third-party code. - no_chromium_prelude = true - -+ # Don't depend on the chrome-specific #[global_allocator] crate from -+ # third-party code. This avoids some dependency cycle issues. The allocator -+ # crate will still be used if it exists anywhere in the dependency graph for -+ # a given linked artifact. -+ no_allocator_crate = true -+ - rustc_metadata = _rustc_metadata - - # TODO(crbug.com/40259764): don't default to true. This requires changes to -@@ -483,6 +489,9 @@ template("cargo_crate") { - # Don't import the `chromium` crate into third-party code. - no_chromium_prelude = true - -+ # Build scripts do not need to link to chrome's allocator. -+ no_allocator_crate = true -+ - # The ${_build_script_name}_output target looks for the exe in this - # location. Due to how the Windows component build works, this has to - # be $root_out_dir for all EXEs. In component build, C++ links to the -diff --git a/build/rust/rust_macro.gni b/build/rust/rust_macro.gni -index bcbb30ed44111..41d857632ccdc 100644 ---- a/build/rust/rust_macro.gni -+++ b/build/rust/rust_macro.gni -@@ -16,6 +16,9 @@ template("rust_macro") { - forward_variables_from(invoker, TESTONLY_AND_VISIBILITY) - proc_macro_configs = invoker.configs - target_type = "rust_proc_macro" -+ -+ # Macros are loaded by rustc and shouldn't use chrome's allocation routines. -+ no_allocator_crate = true - } - } - -diff --git a/build/rust/rust_target.gni b/build/rust/rust_target.gni -index 1a2f96337d436..1003a7b678352 100644 ---- a/build/rust/rust_target.gni -+++ b/build/rust/rust_target.gni -@@ -339,6 +339,10 @@ template("rust_target") { - _rust_deps += [ "//build/rust/std" ] - } - -+ if (!defined(invoker.no_allocator_crate) || !invoker.no_allocator_crate) { -+ _rust_deps += [ "//build/rust/allocator" ] -+ } -+ - if (_build_unit_tests) { - _unit_test_target = "${_target_name}_unittests" - if (defined(invoker.unit_test_target)) { -diff --git a/build/rust/std/BUILD.gn b/build/rust/std/BUILD.gn -index 6b996aa1fe386..25db126076b2f 100644 ---- a/build/rust/std/BUILD.gn -+++ b/build/rust/std/BUILD.gn -@@ -15,51 +15,12 @@ - # allocator functions to PartitionAlloc when `use_partition_alloc_as_malloc` is - # true, so that Rust and C++ use the same allocator backend. - --import("//build/buildflag_header.gni") - import("//build/config/compiler/compiler.gni") - import("//build/config/coverage/coverage.gni") - import("//build/config/rust.gni") - import("//build/config/sanitizers/sanitizers.gni") - --rust_allocator_uses_partition_alloc = false --if (build_with_chromium) { -- import("//base/allocator/partition_allocator/partition_alloc.gni") -- rust_allocator_uses_partition_alloc = use_partition_alloc_as_malloc --} -- --buildflag_header("buildflags") { -- header = "buildflags.h" -- flags = [ -- "RUST_ALLOCATOR_USES_PARTITION_ALLOC=$rust_allocator_uses_partition_alloc", -- ] -- visibility = [ ":*" ] --} -- - if (toolchain_has_rust) { -- # If clang performs the link step, we need to provide the allocator symbols -- # that are normally injected by rustc during linking. -- # -- # We also "happen to" use this to redirect allocations to PartitionAlloc, -- # though that would be better done through a #[global_allocator] crate (see -- # above). -- source_set("remap_alloc") { -- public_deps = [] -- if (rust_allocator_uses_partition_alloc) { -- public_deps += [ "//base/allocator/partition_allocator:partition_alloc" ] -- } -- deps = [ ":buildflags" ] -- sources = [ -- # `alias.*`, `compiler_specific.h`, and `immediate_crash.*` have been -- # copied from `//base`. -- # TODO(crbug.com/40279749): Avoid duplication / reuse code. -- "alias.cc", -- "alias.h", -- "compiler_specific.h", -- "immediate_crash.h", -- "remap_alloc.cc", -- ] -- } -- - # List of Rust stdlib rlibs which are present in the official Rust toolchain - # we are using from the Android team. This is usually a version or two behind - # nightly. Generally this matches the toolchain we build ourselves, but if -@@ -269,8 +230,6 @@ if (toolchain_has_rust) { - foreach(libname, stdlib_files + skip_stdlib_files) { - deps += [ "rules:$libname" ] - } -- -- public_deps = [ ":remap_alloc" ] - } - } else { - action("find_stdlib") { -diff --git a/components/cronet/android/dependencies.txt b/components/cronet/android/dependencies.txt -index bf56bc45ed41f..c0e41ef7c6766 100644 ---- a/components/cronet/android/dependencies.txt -+++ b/components/cronet/android/dependencies.txt -@@ -14,6 +14,7 @@ - //build/config - //build/config/compiler - //build/rust -+//build/rust/allocator - //build/rust/chromium_prelude - //build/rust/std - //build/rust/std/rules -diff --git a/third_party/breakpad/BUILD.gn b/third_party/breakpad/BUILD.gn -index 007fdff16e92e..00da4fa484998 100644 ---- a/third_party/breakpad/BUILD.gn -+++ b/third_party/breakpad/BUILD.gn -@@ -495,7 +495,10 @@ if (is_mac) { - defines = [ "HAVE_MACH_O_NLIST_H" ] - - # Rust demangle support. -- deps = [ "//third_party/rust/rustc_demangle_capi/v0_1:lib" ] -+ deps = [ -+ "//build/rust/allocator", -+ "//third_party/rust/rustc_demangle_capi/v0_1:lib", -+ ] - defines += [ "HAVE_RUSTC_DEMANGLE" ] - include_dirs += [ "//third_party/rust/chromium_crates_io/vendor/rustc-demangle-capi-0.1.0/include" ] - sources += [ "//third_party/rust/chromium_crates_io/vendor/rustc-demangle-capi-0.1.0/include/rustc_demangle.h" ] -@@ -743,7 +746,10 @@ if (is_linux || is_chromeos || is_android) { - include_dirs = [ "breakpad/src" ] - - # Rust demangle support. -- deps = [ "//third_party/rust/rustc_demangle_capi/v0_1:lib" ] -+ deps = [ -+ "//build/rust/allocator", -+ "//third_party/rust/rustc_demangle_capi/v0_1:lib", -+ ] - defines += [ "HAVE_RUSTC_DEMANGLE" ] - include_dirs += [ "//third_party/rust/chromium_crates_io/vendor/rustc-demangle-capi-0.1.0/include" ] - sources += [ "//third_party/rust/chromium_crates_io/vendor/rustc-demangle-capi-0.1.0/include/rustc_demangle.h" ] diff --git a/backports/electron/0001-hotfix-ignore-a-new-warning-in-rust-1.89.patch b/backports/electron/0001-hotfix-ignore-a-new-warning-in-rust-1.89.patch new file mode 100644 index 0000000..2c38c7c --- /dev/null +++ b/backports/electron/0001-hotfix-ignore-a-new-warning-in-rust-1.89.patch @@ -0,0 +1,21 @@ +From adbc495726382c023b755c35aea36c6e9cad1950 Mon Sep 17 00:00:00 2001 +From: LN Liberda +Date: Sat, 23 Aug 2025 03:11:09 +0200 +Subject: [PATCH] hotfix: ignore a new warning in rust 1.89 + +--- + third_party/rust/chromium_crates_io/vendor/qr_code-v2/src/lib.rs | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/third_party/rust/chromium_crates_io/vendor/qr_code-v2/src/lib.rs b/third_party/rust/chromium_crates_io/vendor/qr_code-v2/src/lib.rs +index 1b729621c2f47..55d392c6da72f 100644 +--- a/third_party/rust/chromium_crates_io/vendor/qr_code-v2/src/lib.rs ++++ b/third_party/rust/chromium_crates_io/vendor/qr_code-v2/src/lib.rs +@@ -5,7 +5,6 @@ + //! + + #![deny(missing_docs)] +-#![deny(warnings)] + #![allow( + clippy::must_use_candidate, // This is just annoying. + clippy::use_self, // Rust 1.33 doesn't support Self::EnumVariant, let's try again in 1.37. diff --git a/backports/electron/0002-Call-Rust-default-allocator-directly-from-Rust.patch b/backports/electron/0002-Call-Rust-default-allocator-directly-from-Rust.patch deleted file mode 100644 index 12b3aaa..0000000 --- a/backports/electron/0002-Call-Rust-default-allocator-directly-from-Rust.patch +++ /dev/null @@ -1,319 +0,0 @@ -From 5032162442c5f2f3093cd7646f3a06f826d7f7a8 Mon Sep 17 00:00:00 2001 -From: Collin Baker -Date: Mon, 7 Apr 2025 12:48:17 -0700 -Subject: [PATCH] Call Rust default allocator directly from Rust -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -The Chromium `#[global_allocator] crate forwarded calls to the C++ -implementation, which in turn called into the Rust standard library -implementations in some build configurations. - -This Rust -> C++ -> Rust round trip is unnecessary, and the references -to these symbols is blocking a toolchain update: upstream, these -symbol names are now mangled. - -Instead, use Rust conditional compilation to choose between the -Chromium and the libstd-provided allocators. - -Additionally, the remaining internal symbols defined in C++ are moved -to Rust. - -Bug: 408221149, 407024458 -Change-Id: I78f8c90d51a36a73099aa7d333091d7b8aded3c0 - -Cq-Include-Trybots: luci.chromium.try:android-rust-arm32-rel,android-rust-arm64-dbg,android-rust-arm64-rel,linux-rust-x64-dbg,linux-rust-x64-rel,mac-rust-x64-dbg,win-rust-x64-dbg,win-rust-x64-rel -Change-Id: I78f8c90d51a36a73099aa7d333091d7b8aded3c0 -Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6434355 -Reviewed-by: Łukasz Anforowicz -Commit-Queue: Collin Baker -Cr-Commit-Position: refs/heads/main@{#1443703} ---- - build/rust/allocator/BUILD.gn | 54 +++++++------------ - build/rust/allocator/allocator_impls.cc | 28 +++++----- - build/rust/allocator/allocator_impls.h | 2 + - .../allocator/allocator_shim_definitions.cc | 30 ----------- - build/rust/allocator/lib.rs | 38 +++++++++++++ - 5 files changed, 73 insertions(+), 79 deletions(-) - delete mode 100644 build/rust/allocator/allocator_shim_definitions.cc - -diff --git a/build/rust/allocator/BUILD.gn b/build/rust/allocator/BUILD.gn -index 06aa47f097c9c..f09314afc8158 100644 ---- a/build/rust/allocator/BUILD.gn -+++ b/build/rust/allocator/BUILD.gn -@@ -12,6 +12,9 @@ if (build_with_chromium) { - rust_allocator_uses_partition_alloc = use_partition_alloc_as_malloc - } - -+use_cpp_allocator_impls = -+ rust_allocator_uses_partition_alloc || (is_win && is_asan) -+ - buildflag_header("buildflags") { - header = "buildflags.h" - flags = [ -@@ -30,61 +33,44 @@ if (toolchain_has_rust) { - crate_root = "lib.rs" - cxx_bindings = [ "lib.rs" ] - -- deps = [ -- ":allocator_impls", -- ":allocator_shim_definitions", -- ] -+ deps = [ ":allocator_impls" ] - - no_chromium_prelude = true - no_allocator_crate = true - allow_unsafe = true -+ -+ if (use_cpp_allocator_impls) { -+ rustflags = [ -+ "--cfg", -+ "use_cpp_allocator_impls", -+ ] -+ } -+ -+ configs -= [ "//build/config/compiler:disallow_unstable_features" ] - } - -+ # TODO(crbug.com/408221149): don't build this when `use_cpp_allocator_impls` -+ # is false. - static_library("allocator_impls") { - public_deps = [] - if (rust_allocator_uses_partition_alloc) { - public_deps += [ "//base/allocator/partition_allocator:partition_alloc" ] - } - -- sources = [ -- "allocator_impls.cc", -- "allocator_impls.h", -- ] -- -- deps = [ -- ":allocator_cpp_shared", -- ":buildflags", -- -- # TODO(crbug.com/408221149): remove the C++ -> Rust dependency for the -- # default allocator. -- "//build/rust/std", -- ] -- -- visibility = [ ":*" ] -- } -- -- source_set("allocator_shim_definitions") { -- sources = [ "allocator_shim_definitions.cc" ] -- -- deps = [ ":allocator_cpp_shared" ] -- -- visibility = [ ":*" ] -- } -- -- source_set("allocator_cpp_shared") { - sources = [ - # `alias.*`, `compiler_specific.h`, and `immediate_crash.*` have been - # copied from `//base`. - # TODO(crbug.com/40279749): Avoid duplication / reuse code. - "alias.cc", - "alias.h", -+ "allocator_impls.cc", -+ "allocator_impls.h", - "compiler_specific.h", - "immediate_crash.h", - ] - -- visibility = [ -- ":allocator_impls", -- ":allocator_shim_definitions", -- ] -+ deps = [ ":buildflags" ] -+ -+ visibility = [ ":*" ] - } - } -diff --git a/build/rust/allocator/allocator_impls.cc b/build/rust/allocator/allocator_impls.cc -index 1fde98f23cd12..bf3c2a301adf5 100644 ---- a/build/rust/allocator/allocator_impls.cc -+++ b/build/rust/allocator/allocator_impls.cc -@@ -101,16 +101,6 @@ - #define USE_WIN_ALIGNED_MALLOC 0 - #endif - --// The default allocator functions provided by the Rust standard library. --extern "C" void* __rdl_alloc(size_t size, size_t align); --extern "C" void __rdl_dealloc(void* p, size_t size, size_t align); --extern "C" void* __rdl_realloc(void* p, -- size_t old_size, -- size_t align, -- size_t new_size); -- --extern "C" void* __rdl_alloc_zeroed(size_t size, size_t align); -- - namespace rust_allocator_internal { - - unsigned char* alloc(size_t size, size_t align) { -@@ -129,7 +119,8 @@ unsigned char* alloc(size_t size, size_t align) { - #elif USE_WIN_ALIGNED_MALLOC - return static_cast(_aligned_malloc(size, align)); - #else -- return static_cast(__rdl_alloc(size, align)); -+ // TODO(crbug.com/408221149): don't build this file in this case. -+ IMMEDIATE_CRASH(); - #endif - } - -@@ -143,7 +134,8 @@ void dealloc(unsigned char* p, size_t size, size_t align) { - #elif USE_WIN_ALIGNED_MALLOC - return _aligned_free(p); - #else -- __rdl_dealloc(p, size, align); -+ // TODO(crbug.com/408221149): don't build this file in this case. -+ IMMEDIATE_CRASH(); - #endif - } - -@@ -162,8 +154,8 @@ unsigned char* realloc(unsigned char* p, - #elif USE_WIN_ALIGNED_MALLOC - return static_cast(_aligned_realloc(p, new_size, align)); - #else -- return static_cast( -- __rdl_realloc(p, old_size, align, new_size)); -+ // TODO(crbug.com/408221149): don't build this file in this case. -+ IMMEDIATE_CRASH(); - #endif - } - -@@ -179,8 +171,14 @@ unsigned char* alloc_zeroed(size_t size, size_t align) { - } - return p; - #else -- return static_cast(__rdl_alloc_zeroed(size, align)); -+ // TODO(crbug.com/408221149): don't build this file in this case. -+ IMMEDIATE_CRASH(); - #endif - } - -+void crash_immediately() { -+ NO_CODE_FOLDING(); -+ IMMEDIATE_CRASH(); -+} -+ - } // namespace rust_allocator_internal -diff --git a/build/rust/allocator/allocator_impls.h b/build/rust/allocator/allocator_impls.h -index afb335412faf9..e90ab7cd422c1 100644 ---- a/build/rust/allocator/allocator_impls.h -+++ b/build/rust/allocator/allocator_impls.h -@@ -20,6 +20,8 @@ unsigned char* realloc(unsigned char* p, - size_t new_size); - unsigned char* alloc_zeroed(size_t size, size_t align); - -+void crash_immediately(); -+ - } // namespace rust_allocator_internal - - #endif // BUILD_RUST_ALLOCATOR_ALLOCATOR_IMPLS_H_ -diff --git a/build/rust/allocator/allocator_shim_definitions.cc b/build/rust/allocator/allocator_shim_definitions.cc -deleted file mode 100644 -index a4d1bd77b7016..0000000000000 ---- a/build/rust/allocator/allocator_shim_definitions.cc -+++ /dev/null -@@ -1,30 +0,0 @@ --// Copyright 2025 The Chromium Authors --// Use of this source code is governed by a BSD-style license that can be --// found in the LICENSE file. -- --#include -- --#include "build/rust/allocator/alias.h" --#include "build/rust/allocator/immediate_crash.h" -- --extern "C" { -- --// As part of rustc's contract for using `#[global_allocator]` without --// rustc-generated shims we must define this symbol, since we are opting in to --// unstable functionality. See https://github.com/rust-lang/rust/issues/123015 --// --// Mark it weak since rustc will generate it when it drives linking. --[[maybe_unused]] --__attribute__((weak)) unsigned char __rust_no_alloc_shim_is_unstable; -- --__attribute__((weak)) void __rust_alloc_error_handler(size_t size, -- size_t align) { -- NO_CODE_FOLDING(); -- IMMEDIATE_CRASH(); --} -- --__attribute__(( -- weak)) extern const unsigned char __rust_alloc_error_handler_should_panic = -- 0; -- --} // extern "C" -diff --git a/build/rust/allocator/lib.rs b/build/rust/allocator/lib.rs -index 7f4a0fc245694..b8b67d9c6c649 100644 ---- a/build/rust/allocator/lib.rs -+++ b/build/rust/allocator/lib.rs -@@ -8,10 +8,20 @@ - //! the allocator defined here. Currently this is a thin wrapper around - //! allocator_impls.cc's functions; see the documentation there. - -+// Required to apply weak linkage to symbols. -+#![feature(linkage)] -+// Required to apply `#[rustc_std_internal_symbol]` to our alloc error handler -+// so the name is correctly mangled as rustc expects. -+#![cfg_attr(mangle_alloc_error_handler, allow(internal_features))] -+#![cfg_attr(mangle_alloc_error_handler, feature(rustc_attrs))] -+ -+#[cfg(use_cpp_allocator_impls)] - use std::alloc::{GlobalAlloc, Layout}; - -+#[cfg(use_cpp_allocator_impls)] - struct Allocator; - -+#[cfg(use_cpp_allocator_impls)] - unsafe impl GlobalAlloc for Allocator { - unsafe fn alloc(&self, layout: Layout) -> *mut u8 { - unsafe { ffi::alloc(layout.size(), layout.align()) } -@@ -32,9 +42,36 @@ unsafe impl GlobalAlloc for Allocator { - } - } - -+#[cfg(use_cpp_allocator_impls)] - #[global_allocator] - static GLOBAL: Allocator = Allocator; - -+#[cfg(not(use_cpp_allocator_impls))] -+#[global_allocator] -+static GLOBAL: std::alloc::System = std::alloc::System; -+ -+// As part of rustc's contract for using `#[global_allocator]` without -+// rustc-generated shims we must define this symbol, since we are opting in to -+// unstable functionality. See https://github.com/rust-lang/rust/issues/123015 -+#[no_mangle] -+#[linkage = "weak"] -+static __rust_no_alloc_shim_is_unstable: u8 = 0; -+ -+#[no_mangle] -+#[linkage = "weak"] -+static __rust_alloc_error_handler_should_panic: u8 = 0; -+ -+// Mangle the symbol name as rustc expects. -+#[cfg_attr(mangle_alloc_error_handler, rustc_std_internal_symbol)] -+#[cfg_attr(not(mangle_alloc_error_handler), no_mangle)] -+#[linkage = "weak"] -+fn __rust_alloc_error_handler(_size: usize, _align: usize) { -+ unsafe { ffi::crash_immediately() } -+} -+ -+// TODO(crbug.com/408221149): conditionally include the FFI glue based on -+// `use_cpp_allocator_impls` -+#[allow(dead_code)] - #[cxx::bridge(namespace = "rust_allocator_internal")] - mod ffi { - extern "C++" { -@@ -44,5 +81,6 @@ mod ffi { - unsafe fn dealloc(p: *mut u8, size: usize, align: usize); - unsafe fn realloc(p: *mut u8, old_size: usize, align: usize, new_size: usize) -> *mut u8; - unsafe fn alloc_zeroed(size: usize, align: usize) -> *mut u8; -+ unsafe fn crash_immediately(); - } - } diff --git a/backports/electron/0003-Roll-rust-only-f7b43542838f0a4a6cfdb17fbeadf45002042.patch b/backports/electron/0003-Roll-rust-only-f7b43542838f0a4a6cfdb17fbeadf45002042.patch deleted file mode 100644 index 1cfa07f..0000000 --- a/backports/electron/0003-Roll-rust-only-f7b43542838f0a4a6cfdb17fbeadf45002042.patch +++ /dev/null @@ -1,102 +0,0 @@ -reduced -lnl - -From e201e2d467b0daad6cdbbfcd5b0e34760e4099c1 Mon Sep 17 00:00:00 2001 -From: Alan Zhao -Date: Mon, 7 Apr 2025 18:15:01 -0700 -Subject: [PATCH] Roll rust *only* f7b43542838f0a4a6cfdb17fbeadf45002042a77-1 : - 3f690c2257b7080cd3a8cce64e082fc972148990-1 - -https://chromium.googlesource.com/external/github.com/rust-lang/rust/+log/f7b43542838f..3f690c2257b7 - -Ran: ./tools/clang/scripts/upload_revision.py 5b36835df010c5813808d34e45428c624fb52ff1 - -Additionally, add fixes to the rust allocator to address https://crbug.com/407024458. - -Bug: 404285928,407024458 -Disable-Rts: True -Cq-Include-Trybots: chromium/try:chromeos-amd64-generic-cfi-thin-lto-rel -Cq-Include-Trybots: chromium/try:dawn-win10-x86-deps-rel -Cq-Include-Trybots: chromium/try:linux-chromeos-dbg -Cq-Include-Trybots: chromium/try:linux_chromium_cfi_rel_ng -Cq-Include-Trybots: chromium/try:linux_chromium_chromeos_msan_rel_ng -Cq-Include-Trybots: chromium/try:linux_chromium_msan_rel_ng -Cq-Include-Trybots: chromium/try:mac11-arm64-rel,mac_chromium_asan_rel_ng -Cq-Include-Trybots: chromium/try:ios-catalyst,win-asan,android-official -Cq-Include-Trybots: chromium/try:fuchsia-arm64-cast-receiver-rel -Cq-Include-Trybots: chromium/try:mac-official,linux-official -Cq-Include-Trybots: chromium/try:win-official,win32-official -Cq-Include-Trybots: chromium/try:win-swangle-try-x86 -Cq-Include-Trybots: chromium/try:android-cronet-riscv64-dbg -Cq-Include-Trybots: chromium/try:android-cronet-riscv64-rel -Cq-Include-Trybots: chrome/try:iphone-device -Cq-Include-Trybots: chrome/try:linux-chromeos-chrome -Cq-Include-Trybots: chrome/try:win-chrome,win64-chrome,linux-chrome,mac-chrome -Cq-Include-Trybots: chrome/try:linux-pgo,mac-pgo,win32-pgo,win64-pgo -Cq-Include-Trybots: luci.chromium.try:linux-cast-x64-rel -Cq-Include-Trybots: chromium/try:android-rust-arm32-rel -Cq-Include-Trybots: chromium/try:android-rust-arm64-dbg -Cq-Include-Trybots: chromium/try:android-rust-arm64-rel -Cq-Include-Trybots: chromium/try:linux-rust-x64-dbg -Cq-Include-Trybots: chromium/try:linux-rust-x64-rel -Cq-Include-Trybots: chromium/try:mac-rust-x64-dbg -Cq-Include-Trybots: chromium/try:win-rust-x64-dbg -Cq-Include-Trybots: chromium/try:win-rust-x64-rel -Change-Id: Iec99681a89deaf3f2c79c76f9c4d1c2b2b7d6fe1 -Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6439711 -Reviewed-by: Collin Baker -Commit-Queue: Alan Zhao -Cr-Commit-Position: refs/heads/main@{#1443873} ---- - build/rust/allocator/BUILD.gn | 6 +- - build/rust/allocator/lib.rs | 6 +- - build/rust/std/rules/BUILD.gn | 476 +++++++++++++++++----------------- - tools/rust/update_rust.py | 2 +- - 4 files changed, 251 insertions(+), 239 deletions(-) - -diff --git a/build/rust/allocator/BUILD.gn b/build/rust/allocator/BUILD.gn -index f09314afc8158..ca581630c76c9 100644 ---- a/build/rust/allocator/BUILD.gn -+++ b/build/rust/allocator/BUILD.gn -@@ -32,6 +32,10 @@ if (toolchain_has_rust) { - sources = [ "lib.rs" ] - crate_root = "lib.rs" - cxx_bindings = [ "lib.rs" ] -+ rustflags = [ -+ "--cfg", -+ "mangle_alloc_error_handler", -+ ] - - deps = [ ":allocator_impls" ] - -@@ -40,7 +44,7 @@ if (toolchain_has_rust) { - allow_unsafe = true - - if (use_cpp_allocator_impls) { -- rustflags = [ -+ rustflags += [ - "--cfg", - "use_cpp_allocator_impls", - ] -diff --git a/build/rust/allocator/lib.rs b/build/rust/allocator/lib.rs -index b8b67d9c6c649..4e2dad3d542a8 100644 ---- a/build/rust/allocator/lib.rs -+++ b/build/rust/allocator/lib.rs -@@ -57,13 +57,17 @@ static GLOBAL: std::alloc::System = std::alloc::System; - #[linkage = "weak"] - static __rust_no_alloc_shim_is_unstable: u8 = 0; - --#[no_mangle] -+// Mangle the symbol name as rustc expects. -+#[cfg_attr(mangle_alloc_error_handler, rustc_std_internal_symbol)] -+#[cfg_attr(not(mangle_alloc_error_handler), no_mangle)] -+#[allow(non_upper_case_globals)] - #[linkage = "weak"] - static __rust_alloc_error_handler_should_panic: u8 = 0; - - // Mangle the symbol name as rustc expects. - #[cfg_attr(mangle_alloc_error_handler, rustc_std_internal_symbol)] - #[cfg_attr(not(mangle_alloc_error_handler), no_mangle)] -+#[allow(non_upper_case_globals)] - #[linkage = "weak"] - fn __rust_alloc_error_handler(_size: usize, _align: usize) { - unsafe { ffi::crash_immediately() } diff --git a/backports/electron/0004-Drop-remap_alloc-dep.patch b/backports/electron/0004-Drop-remap_alloc-dep.patch deleted file mode 100644 index c6762a4..0000000 --- a/backports/electron/0004-Drop-remap_alloc-dep.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 4a0377f0b847af505915b0e0a6c4178d4e7c3244 Mon Sep 17 00:00:00 2001 -From: Matt Jolly -Date: Mon, 14 Apr 2025 20:16:46 -0700 -Subject: [PATCH] Drop `remap_alloc` dep -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -commit e3a1797dbab3eaa1c808d53215b32c8759d27ac7 dropped the source set -that this refers to, in favour of a more modern, crate-based solution. - -This seems to have been overlooked, possibly as it only appears to -be called if using the unbundle toolchain. - -Bug: 408221149 -Signed-off-by: Matt Jolly -Change-Id: I1703d8e1e456161aa2b736169eec407235847099 -Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6456604 -Reviewed-by: Andrew Grieve -Reviewed-by: Lei Zhang -Commit-Queue: Łukasz Anforowicz -Reviewed-by: Łukasz Anforowicz -Cr-Commit-Position: refs/heads/main@{#1446912} ---- - build/rust/std/BUILD.gn | 6 ------ - 1 file changed, 6 deletions(-) - -diff --git a/build/rust/std/BUILD.gn b/build/rust/std/BUILD.gn -index 25db126076b2f..bb2c9884520b3 100644 ---- a/build/rust/std/BUILD.gn -+++ b/build/rust/std/BUILD.gn -@@ -355,12 +355,6 @@ if (toolchain_has_rust) { - ":stdlib_public_dependent_libs", - ] - deps = [ ":prebuilt_rustc_copy_to_sysroot" ] -- -- # The host builds tools toolchain supports Rust only and does not use -- # the allocator remapping to point it to PartitionAlloc. -- if (!toolchain_for_rust_host_build_tools) { -- deps += [ ":remap_alloc" ] -- } - } - } - } diff --git a/backports/electron/0005-rust-Clean-up-build-rust-allocator-after-a-Rust-tool.patch b/backports/electron/0005-rust-Clean-up-build-rust-allocator-after-a-Rust-tool.patch deleted file mode 100644 index 5ba4d83..0000000 --- a/backports/electron/0005-rust-Clean-up-build-rust-allocator-after-a-Rust-tool.patch +++ /dev/null @@ -1,354 +0,0 @@ -From e65cb388e5da56d1236607e0db9cadf89e50eded Mon Sep 17 00:00:00 2001 -From: Lukasz Anforowicz -Date: Tue, 15 Apr 2025 11:10:19 -0700 -Subject: [PATCH] [rust] Clean up `//build/rust/allocator` after a Rust - toolchain roll. -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -This CL makes minor tweaks and changes under `//build/rust/allocator`: - -* Thanks to the Rust toolchain roll, we no longer need to keep two - implementations, picking between them using the - `mangle_alloc_error_handler` configuration knob. -* The `#[cfg(use_cpp_allocator_impls)]` vs - `#[cfg(not(use_cpp_allocator_impls))]` choices have been deduplicated - by putting the related/conditional stuff under `mod cpp_allocator` and - `rust_allocator`. -* Closes a minor gap missed in https://crrev.com/c/6432410: - - Moving `DEPS` file to the new source location - -Bug: 408221149 -Change-Id: Id541797e03da113a5271b02a5f60eb2be08254a9 -Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6454872 -Reviewed-by: Alan Zhao -Commit-Queue: Łukasz Anforowicz -Cr-Commit-Position: refs/heads/main@{#1447241} ---- - build/rust/allocator/BUILD.gn | 11 +- - build/rust/{std => allocator}/DEPS | 2 +- - build/rust/allocator/allocator_impls.cc | 65 ++---------- - build/rust/allocator/allocator_impls.h | 2 + - build/rust/allocator/lib.rs | 132 +++++++++++++++--------- - 5 files changed, 97 insertions(+), 115 deletions(-) - rename build/rust/{std => allocator}/DEPS (76%) - -diff --git a/build/rust/allocator/BUILD.gn b/build/rust/allocator/BUILD.gn -index ca581630c76c9..434a61e11bdbb 100644 ---- a/build/rust/allocator/BUILD.gn -+++ b/build/rust/allocator/BUILD.gn -@@ -32,10 +32,6 @@ if (toolchain_has_rust) { - sources = [ "lib.rs" ] - crate_root = "lib.rs" - cxx_bindings = [ "lib.rs" ] -- rustflags = [ -- "--cfg", -- "mangle_alloc_error_handler", -- ] - - deps = [ ":allocator_impls" ] - -@@ -43,13 +39,12 @@ if (toolchain_has_rust) { - no_allocator_crate = true - allow_unsafe = true - -+ rustflags = [] - if (use_cpp_allocator_impls) { -- rustflags += [ -- "--cfg", -- "use_cpp_allocator_impls", -- ] -+ rustflags += [ "--cfg=use_cpp_allocator_impls" ] - } - -+ # TODO(https://crbug.com/410596442): Stop using unstable features here. - configs -= [ "//build/config/compiler:disallow_unstable_features" ] - } - -diff --git a/build/rust/std/DEPS b/build/rust/allocator/DEPS -similarity index 76% -rename from build/rust/std/DEPS -rename to build/rust/allocator/DEPS -index eb524c0a06acd..923a2e07c80f4 100644 ---- a/build/rust/std/DEPS -+++ b/build/rust/allocator/DEPS -@@ -3,7 +3,7 @@ include_rules = [ - ] - - specific_include_rules = { -- "remap_alloc.cc" : [ -+ "allocator_impls.cc" : [ - "+partition_alloc" - ] - } -diff --git a/build/rust/allocator/allocator_impls.cc b/build/rust/allocator/allocator_impls.cc -index bf3c2a301adf5..8887752f3dfad 100644 ---- a/build/rust/allocator/allocator_impls.cc -+++ b/build/rust/allocator/allocator_impls.cc -@@ -24,62 +24,6 @@ - #include - #endif - --// NOTE: this documentation is outdated. --// --// TODO(crbug.com/408221149): update this documentation, or replace it with docs --// in the Rust allocator implementation. --// --// When linking a final binary, rustc has to pick between either: --// * The default Rust allocator --// * Any #[global_allocator] defined in *any rlib in its dependency tree* --// (https://doc.rust-lang.org/edition-guide/rust-2018/platform-and-target-support/global-allocators.html) --// --// In this latter case, this fact will be recorded in some of the metadata --// within the .rlib file. (An .rlib file is just a .a file, but does have --// additional metadata for use by rustc. This is, as far as I know, the only --// such metadata we would ideally care about.) --// --// In all the linked rlibs, --// * If 0 crates define a #[global_allocator], rustc uses its default allocator --// * If 1 crate defines a #[global_allocator], rustc uses that --// * If >1 crates define a #[global_allocator], rustc bombs out. --// --// Because rustc does these checks, it doesn't just have the __rust_alloc --// symbols defined anywhere (neither in the stdlib nor in any of these --// crates which have a #[global_allocator] defined.) --// --// Instead: --// Rust's final linking stage invokes dynamic LLVM codegen to create symbols --// for the basic heap allocation operations. It literally creates a --// __rust_alloc symbol at link time. Unless any crate has specified a --// #[global_allocator], it simply calls from __rust_alloc into --// __rdl_alloc, which is the default Rust allocator. The same applies to a --// few other symbols. --// --// We're not (always) using rustc for final linking. For cases where we're not --// Rustc as the final linker, we'll define those symbols here instead. This --// allows us to redirect allocation to PartitionAlloc if clang is doing the --// link. --// --// We use unchecked allocation paths in PartitionAlloc rather than going through --// its shims in `malloc()` etc so that we can support fallible allocation paths --// such as Vec::try_reserve without crashing on allocation failure. --// --// In future, we should build a crate with a #[global_allocator] and --// redirect these symbols back to Rust in order to use to that crate instead. --// This would allow Rust-linked executables to: --// 1. Use PartitionAlloc on Windows. The stdlib uses Windows heap functions --// directly that PartitionAlloc can not intercept. --// 2. Have `Vec::try_reserve` to fail at runtime on Linux instead of crashing in --// malloc() where PartitionAlloc replaces that function. --// --// They're weak symbols, because this file will sometimes end up in targets --// which are linked by rustc, and thus we would otherwise get duplicate --// definitions. The following definitions will therefore only end up being --// used in targets which are linked by our C++ toolchain. --// --// # On Windows ASAN --// - // In ASAN builds, PartitionAlloc-Everywhere is disabled, meaning malloc() and - // friends in C++ do not go to PartitionAlloc. So we also don't point the Rust - // allocation functions at PartitionAlloc. Generally, this means we just direct -@@ -93,7 +37,6 @@ - // Note that there is a runtime option to make ASAN hook HeapAlloc() but - // enabling it breaks Win32 APIs like CreateProcess: - // https://issues.chromium.org/u/1/issues/368070343#comment29 -- - #if !BUILDFLAG(RUST_ALLOCATOR_USES_PARTITION_ALLOC) && BUILDFLAG(IS_WIN) && \ - defined(ADDRESS_SANITIZER) - #define USE_WIN_ALIGNED_MALLOC 1 -@@ -110,6 +53,10 @@ unsigned char* alloc(size_t size, size_t align) { - return nullptr; - } - -+ // We use unchecked allocation paths in PartitionAlloc rather than going -+ // through its shims in `malloc()` etc so that we can support fallible -+ // allocation paths such as Vec::try_reserve without crashing on allocation -+ // failure. - if (align <= alignof(std::max_align_t)) { - return static_cast(allocator_shim::UncheckedAlloc(size)); - } else { -@@ -144,6 +91,10 @@ unsigned char* realloc(unsigned char* p, - size_t align, - size_t new_size) { - #if BUILDFLAG(RUST_ALLOCATOR_USES_PARTITION_ALLOC) -+ // We use unchecked allocation paths in PartitionAlloc rather than going -+ // through its shims in `malloc()` etc so that we can support fallible -+ // allocation paths such as Vec::try_reserve without crashing on allocation -+ // failure. - if (align <= alignof(std::max_align_t)) { - return static_cast( - allocator_shim::UncheckedRealloc(p, new_size)); -diff --git a/build/rust/allocator/allocator_impls.h b/build/rust/allocator/allocator_impls.h -index e90ab7cd422c1..e562a877d886e 100644 ---- a/build/rust/allocator/allocator_impls.h -+++ b/build/rust/allocator/allocator_impls.h -@@ -10,6 +10,8 @@ - #include "build/build_config.h" - #include "build/rust/allocator/buildflags.h" - -+// This header exposes PartitionAlloc to Rust -+// (most APIs below are called from `impl GlobalAlloc` in `lib.rs`). - namespace rust_allocator_internal { - - unsigned char* alloc(size_t size, size_t align); -diff --git a/build/rust/allocator/lib.rs b/build/rust/allocator/lib.rs -index 4e2dad3d542a8..a4f898f9b107f 100644 ---- a/build/rust/allocator/lib.rs -+++ b/build/rust/allocator/lib.rs -@@ -5,72 +5,106 @@ - //! Define the allocator that Rust code in Chrome should use. - //! - //! Any final artifact that depends on this crate, even transitively, will use --//! the allocator defined here. Currently this is a thin wrapper around --//! allocator_impls.cc's functions; see the documentation there. -+//! the allocator defined here. -+//! -+//! List of known issues: -+//! -+//! 1. We'd like to use PartitionAlloc on Windows, but the stdlib uses Windows -+//! heap functions directly that PartitionAlloc can not intercept. -+//! 2. We'd like `Vec::try_reserve` to fail at runtime on Linux instead of -+//! crashing in malloc() where PartitionAlloc replaces that function. - - // Required to apply weak linkage to symbols. -+// -+// TODO(https://crbug.com/410596442): Stop using unstable features here. -+// https://github.com/rust-lang/rust/issues/29603 tracks stabilization of the `linkage` feature. - #![feature(linkage)] - // Required to apply `#[rustc_std_internal_symbol]` to our alloc error handler - // so the name is correctly mangled as rustc expects. --#![cfg_attr(mangle_alloc_error_handler, allow(internal_features))] --#![cfg_attr(mangle_alloc_error_handler, feature(rustc_attrs))] -+// -+// TODO(https://crbug.com/410596442): Stop using internal features here. -+#![allow(internal_features)] -+#![feature(rustc_attrs)] - -+/// Module that provides `#[global_allocator]` / `GlobalAlloc` interface for -+/// using an allocator from C++. - #[cfg(use_cpp_allocator_impls)] --use std::alloc::{GlobalAlloc, Layout}; -+mod cpp_allocator { -+ use super::ffi; -+ use std::alloc::{GlobalAlloc, Layout}; - --#[cfg(use_cpp_allocator_impls)] --struct Allocator; -+ struct Allocator; - --#[cfg(use_cpp_allocator_impls)] --unsafe impl GlobalAlloc for Allocator { -- unsafe fn alloc(&self, layout: Layout) -> *mut u8 { -- unsafe { ffi::alloc(layout.size(), layout.align()) } -- } -+ unsafe impl GlobalAlloc for Allocator { -+ unsafe fn alloc(&self, layout: Layout) -> *mut u8 { -+ unsafe { ffi::alloc(layout.size(), layout.align()) } -+ } - -- unsafe fn dealloc(&self, ptr: *mut u8, layout: Layout) { -- unsafe { -- ffi::dealloc(ptr, layout.size(), layout.align()); -+ unsafe fn dealloc(&self, ptr: *mut u8, layout: Layout) { -+ unsafe { -+ ffi::dealloc(ptr, layout.size(), layout.align()); -+ } - } -- } - -- unsafe fn alloc_zeroed(&self, layout: Layout) -> *mut u8 { -- unsafe { ffi::alloc_zeroed(layout.size(), layout.align()) } -- } -+ unsafe fn alloc_zeroed(&self, layout: Layout) -> *mut u8 { -+ unsafe { ffi::alloc_zeroed(layout.size(), layout.align()) } -+ } - -- unsafe fn realloc(&self, ptr: *mut u8, layout: Layout, new_size: usize) -> *mut u8 { -- unsafe { ffi::realloc(ptr, layout.size(), layout.align(), new_size) } -+ unsafe fn realloc(&self, ptr: *mut u8, layout: Layout, new_size: usize) -> *mut u8 { -+ unsafe { ffi::realloc(ptr, layout.size(), layout.align(), new_size) } -+ } - } --} - --#[cfg(use_cpp_allocator_impls)] --#[global_allocator] --static GLOBAL: Allocator = Allocator; -+ #[global_allocator] -+ static GLOBAL: Allocator = Allocator; -+} - -+/// Module that provides `#[global_allocator]` / `GlobalAlloc` interface for -+/// using the default Rust allocator. - #[cfg(not(use_cpp_allocator_impls))] --#[global_allocator] --static GLOBAL: std::alloc::System = std::alloc::System; -- --// As part of rustc's contract for using `#[global_allocator]` without --// rustc-generated shims we must define this symbol, since we are opting in to --// unstable functionality. See https://github.com/rust-lang/rust/issues/123015 --#[no_mangle] --#[linkage = "weak"] --static __rust_no_alloc_shim_is_unstable: u8 = 0; -- --// Mangle the symbol name as rustc expects. --#[cfg_attr(mangle_alloc_error_handler, rustc_std_internal_symbol)] --#[cfg_attr(not(mangle_alloc_error_handler), no_mangle)] --#[allow(non_upper_case_globals)] --#[linkage = "weak"] --static __rust_alloc_error_handler_should_panic: u8 = 0; -- --// Mangle the symbol name as rustc expects. --#[cfg_attr(mangle_alloc_error_handler, rustc_std_internal_symbol)] --#[cfg_attr(not(mangle_alloc_error_handler), no_mangle)] --#[allow(non_upper_case_globals)] --#[linkage = "weak"] --fn __rust_alloc_error_handler(_size: usize, _align: usize) { -- unsafe { ffi::crash_immediately() } -+mod rust_allocator { -+ #[global_allocator] -+ static GLOBAL: std::alloc::System = std::alloc::System; -+} -+ -+/// Module that provides global symbols that are needed both by `cpp_allocator` -+/// and `rust_allocator`. -+/// -+/// When `rustc` drives linking, then it will define the symbols below. But -+/// Chromium only uses `rustc` to link Rust-only executables (e.g. `build.rs` -+/// scripts) and otherwise uses a non-Rust linker. This is why we have to -+/// manually define a few symbols below. We define those symbols -+/// as "weak" symbols, so that Rust-provided symbols "win" in case where Rust -+/// actually does drive the linking. This hack works (not only for Chromium, -+/// but also for google3 and other projects), but isn't officially supported by -+/// `rustc`. -+/// -+/// TODO(https://crbug.com/410596442): Stop using internal features here. -+mod both_allocators { -+ use super::ffi; -+ -+ /// As part of rustc's contract for using `#[global_allocator]` without -+ /// rustc-generated shims we must define this symbol, since we are opting in -+ /// to unstable functionality. See https://github.com/rust-lang/rust/issues/123015 -+ #[no_mangle] -+ #[linkage = "weak"] -+ static __rust_no_alloc_shim_is_unstable: u8 = 0; -+ -+ // Mangle the symbol name as rustc expects. -+ #[rustc_std_internal_symbol] -+ #[allow(non_upper_case_globals)] -+ #[linkage = "weak"] -+ static __rust_alloc_error_handler_should_panic: u8 = 0; -+ -+ // Mangle the symbol name as rustc expects. -+ #[rustc_std_internal_symbol] -+ #[allow(non_upper_case_globals)] -+ #[linkage = "weak"] -+ fn __rust_alloc_error_handler(_size: usize, _align: usize) { -+ // TODO(lukasza): Investigate if we can just call `std::process::abort()` here. -+ // (Not really _needed_, but it could simplify code a little bit.) -+ unsafe { ffi::crash_immediately() } -+ } - } - - // TODO(crbug.com/408221149): conditionally include the FFI glue based on diff --git a/backports/electron/APKBUILD b/backports/electron/APKBUILD index 92270b8..ab1603d 100644 --- a/backports/electron/APKBUILD +++ b/backports/electron/APKBUILD @@ -1,18 +1,19 @@ # Contributor: lauren n. liberda # Maintainer: Antoine Martin (ayakael) pkgname=electron -pkgver=35.5.0 +pkgver=39.2.3 _gittag=v"${pkgver/_beta/-beta.}" pkgrel=0 -_chromium=134.0.6998.205 -_copium_tag=134.0 +_chromium=142.0.7444.175 +_copium_tag=142.0 _depot_tools=495b23b39aaba2ca3b55dd27cadc523f1cb17ee6 pkgdesc="Electron cross-platform desktop toolkit" url="https://github.com/electron/electron" +# armv7: Segmentation fault on builder despite building in CI arch="aarch64 x86_64" # same as chromium license="MIT" depends="gtk+3.0 so:libudev.so.1 xdg-utils" -_llvmver=20 +_llvmver=21 makedepends=" ada-dev alsa-lib-dev @@ -24,8 +25,8 @@ makedepends=" c-ares-dev cairo-dev clang$_llvmver-dev + clang$_llvmver-rtlib clang-extra-tools - compiler-rt crc32c-dev cups-dev curl-dev @@ -44,6 +45,7 @@ makedepends=" gn gzip harfbuzz-dev + highway-dev hdrhistogram-c-dev hunspell-dev http-parser-dev @@ -74,7 +76,7 @@ makedepends=" libxscrnsaver-dev libxslt-dev linux-headers - lld + lld$_llvmver llhttp-dev llvm$_llvmver mesa-dev @@ -116,18 +118,20 @@ subpackages="$pkgname-lang $pkgname-dev" source=" https://ayakael.net/api/packages/mirrors/generic/electron/$_gittag/electron-$_gittag-$_chromium.tar.zst copium-$_copium_tag.tar.gz::https://codeberg.org/selfisekai/copium/archive/$_copium_tag.tar.gz - chromium-revert-drop-of-system-java.patch + 0001-hotfix-ignore-a-new-warning-in-rust-1.89.patch compiler.patch disable-dns_config_service.patch disable-failing-tests.patch fc-cache-version.patch - fix-opus.patch + fix-ffmpeg-codec-list.patch fstatat-32bit.patch gdbinit.patch generic-sensor-include.patch - musl-auxv.patch + headless-shell-no-license.patch musl-sandbox.patch musl-tid-caching.patch + net-test-no-vpython.patch + net-test-pyws3-py3.12.patch no-execinfo.patch no-mallinfo.patch no-res-ninit-nclose.patch @@ -135,19 +139,14 @@ source=" partalloc-no-tagging-arm64.patch pvalloc.patch temp-failure-retry.patch - pipewire-1.4.patch - gperf-3.2-fix.patch - 0001-Reland-Use-global_allocator-to-provide-Rust-allocato.patch - 0002-Call-Rust-default-allocator-directly-from-Rust.patch - 0003-Roll-rust-only-f7b43542838f0a4a6cfdb17fbeadf45002042.patch - 0004-Drop-remap_alloc-dep.patch - 0005-rust-Clean-up-build-rust-allocator-after-a-Rust-tool.patch electron_icon.patch electron_python-jinja-3.10.patch electron_webpack-hash.patch electron_unbundle-node.patch electron_system-zlib-headers.patch + electron_do-not-strip-binaries.patch + electron_shell-file-dialog-drop-glibc.patch default.conf electron.desktop @@ -157,8 +156,9 @@ _copium_patches=" cr131-v8-non4k-pages.patch cr133-ffmpeg-no-noh264parse.patch cr133-is-musl-libcxx.patch - cr133-mv2-still-not-dead.patch - cr134-unbundle-simdutf.patch + cr138-node-version-check.patch + cr140-musl-prctl.patch + cr142-autofill-incomplete-formfielddata.patch " # Avoid conflicting providers sonameprefix="$pkgname:" @@ -166,17 +166,19 @@ sonameprefix="$pkgname:" options="!check net suid" builddir="$srcdir/electron-$_gittag-$_chromium" -export CC=clang-$_llvmver -export CXX=clang++-$_llvmver +export CC="/usr/lib/llvm$_llvmver/bin/clang" +export CXX="/usr/lib/llvm$_llvmver/bin/clang++" # required to find the tools -export AR=llvm-ar -export NM=llvm-nm -export LD=clang++-$_llvmver +export NM="/usr/lib/llvm$_llvmver/bin/llvm-nm" +export AR="/usr/lib/llvm$_llvmver/bin/llvm-ar" +export LD="/usr/lib/llvm$_llvmver/bin/clang++" # less log spam, reproducible export CFLAGS="${CFLAGS/-g/} -O2 -Wno-builtin-macro-redefined -Wno-deprecated-declarations -Wno-shift-count-overflow -Wno-ignored-attributes" export CXXFLAGS="${CXXFLAGS/-g/} -O2 -Wno-builtin-macro-redefined -Wno-deprecated-declarations -Wno-invalid-constexpr" +# _LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_EXTENSIVE is set by project +export CXXFLAGS="${CXXFLAGS/-D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_FAST/}" export CPPFLAGS="${CPPFLAGS/-g/} -D__DATE__= -D__TIME__= -D__TIMESTAMP__=" case "$CARCH" in aarch64|arm*|riscv64) @@ -233,8 +235,8 @@ snapshot() { --nohooks python3 src/build/landmines.py - python3 src/build/util/lastchange.py -o src/build/util/LASTCHANGE \ - --revision src/gpu/webgpu/DAWN_VERSION + python3 src/build/util/lastchange.py -m DAWN_COMMIT_HASH -s src/third_party/dawn \ + --revision src/gpu/webgpu/DAWN_VERSION --header src/gpu/webgpu/dawn_commit_hash.h python3 src/build/util/lastchange.py -m GPU_LISTS_VERSION \ --revision-id-only --header src/gpu/config/gpu_lists_version.h python3 src/build/util/lastchange.py -m SKIA_COMMIT_HASH \ @@ -269,6 +271,8 @@ snapshot() { mcli cp "$SRCDEST"/$pkgname-$_gittag-$_chromium.tar.zst "$_distbucket" } +export RUSTC_BOOTSTRAP=1 + prepare() { default_prepare @@ -314,9 +318,14 @@ prepare() { ./update_npm_deps ) + # generate dawn_commit_hash + # TODO: remove on next update as it'll be generated after + # https://ayakael.net/mirrors/electron/commit/7623f4a14ab44fa4f4343e47d9d681c9b4aa984c + python3 build/util/lastchange.py -m DAWN_COMMIT_HASH -s third_party/dawn \ + --revision gpu/webgpu/DAWN_VERSION --header gpu/webgpu/dawn_commit_hash.h + # reusable system library settings # flatbuffers - tensorflow has a few static_asserts for a specific patch version - # highway - requires highway>=1.1.0 (arm failures) # libavif - https://github.com/AOMediaCodec/libavif/commit/50a541469c98009016af8dcc9f83a1be79f3a7d9 # libaom - https://aomedia.googlesource.com/aom/+/706ee36dcc82%5E%21/ # but watch this space: https://aomedia-review.googlesource.com/c/aom/+/188606 @@ -332,6 +341,7 @@ prepare() { fontconfig freetype harfbuzz-ng + highway libdrm libjpeg libsecret @@ -420,6 +430,8 @@ prepare() { third_party/blink/renderer/core/xml/parser/xml_document_parser.cc \ third_party/libxml/chromium/*.cc + echo "$CTARGET" >> build/rust/known-target-triples.txt + _configure } @@ -453,10 +465,9 @@ _configure() { custom_toolchain=\"//build/toolchain/linux/unbundle:default\" disable_fieldtrial_testing_config=true enable_hangout_services_extension=true - enable_nacl=false enable_nocompile_tests=false - enable_stripping=false enable_rust=true + enable_stripping=false enable_vr=false fatal_linker_warnings=false ffmpeg_branding=\"Chrome\" @@ -469,6 +480,7 @@ _configure() { is_musl=true is_official_build=true link_pulseaudio=true + node_version_check=false proprietary_codecs=true rtc_link_pipewire=true rtc_use_pipewire=true @@ -478,6 +490,7 @@ _configure() { safe_browsing_use_unrar=false symbol_level=$symbol_level treat_warnings_as_errors=false + se_clang_modules=false use_custom_libcxx=true use_lld=true use_pulseaudio=true @@ -551,39 +564,36 @@ lang() { } sha512sums=" -a30c115f17f9811347f8713fa604b56244e39facbbab7b6b82cbc3049ed12b429b06f2faafa8a48dd727b655753848d099ba6720fae15c9bb00e6a427dc2758e electron-v35.5.0-134.0.6998.205.tar.zst -c1857b5d6975650f915f3db552666f521822b857e39958ccfb54129f3878f272deaafc3dd446bc8441a5e84f075791feeeb62841b74bb555d8c546bfe231d164 copium-134.0.tar.gz -29bb685e03356a77df5fd347cdf55194cc8b3265c421cc76e54d64edefc329dbcb052deb26b22e8f587ce68456876c071de1b7d258dd0fcc6ee66c875ec4a020 chromium-revert-drop-of-system-java.patch -d9cc4a37a0311d23ae315a8d8124f8dbf60db8cc4a3943818638174b20387f1d770d00871f6608957b246ad956abca43c22ea0b072724287f2947e1909e47323 compiler.patch -4057cc78f10bfd64092bc35a373869abb1d68b880cdbca70422f39ffd78a929c19c7728d4d4c40709aaba25581148a93ae5343e724849fd35323062ed68753fa disable-dns_config_service.patch -2470904846e3adde2c9506f9e78220daca0932320b628dd3d427bf2b7c17a8f7880cb97e787b046c28de7aca642e1a8d30824d6049905976da77e7473baa64da disable-failing-tests.patch -5fc5c012c1db6cf1ba82f38c6f3f4f5ca3a209e47ac708a74de379b018e0649b7694877c9571ef79002dde875ffc07b458a3355425f1c01867f362c66c2bc1bf fc-cache-version.patch -f7fe8a8e5eee17310fb4c3e5de621b4b89ea0567f75033c65be970950cca62b50c5fbd004735e4ad39bdb2e1638b3b73ea614203d323f8181ae18c71edf302a0 fix-opus.patch +7c4c33570bf6c0ff0d1d2606b64e25e9b8f64f399e49dd03632ee712de5551eb7757ac999ff1206d0c70057b4bf0ce535ac228ddbb88ffd9b1585d7abd483266 electron-v39.2.3-142.0.7444.175.tar.zst +30b298549804e7753b0b639b72417ba081e964676862b6c7d73ad73cdf806883f20e4a4b36e67a6c375eaf2dd97686cf21b90b062400d3b61fba86da4d239bfa copium-142.0.tar.gz +69b45005451ccd69c354b4c2910e92371cb801665f5e300dbecd36f8bc4ce68e77a431b5dac07c0937787debb4e93b7aadefa0a1e76c4ae334d2547ca3ca14ff 0001-hotfix-ignore-a-new-warning-in-rust-1.89.patch +dc254dd79e135aeac3e9c03eb055e3bc17980fc213f8c4d8d7921a575be7f9c26b91f110a6dcb01c0a824a7d9375c09f8a61c8858c20c11d79c03f873e2cb3f9 compiler.patch +1bee1448e409fedff635388ee6f1efa6d23c29ae3e6b6fd31452c56974adb40fcd0088c82d1e643d549154663e402942cbab9807dff5aff2d8997a09de6f5655 disable-dns_config_service.patch +0ef9168b8b1a4779bc4c8df718735e06d29e459dcfd00f8cbf9a4edaf9fade8089225219e46dead7de81de716bddc8d745dc2069db0ee7f7e5d2f64c5236e2ab disable-failing-tests.patch +0050857a9a9553c10fd502fe70606bce48269c9b48fa82ce9e111575637a0c03578e923c82fc639fcb574fc3337aeef50d8a0aea5e512ae4eab83b8c3d732cf6 fc-cache-version.patch +87f63d83139562e058f3f649eb1f62bf100dd92c2bb6ee393fdce0c8f7d7c188a7062394647aafe4e82c0a8fbbffeb613edc5c8dd9415dd9dda777827ea371c5 fix-ffmpeg-codec-list.patch c63dee5044353eb306a39ca1526158c0f003ab310ecb03d1c368dc2a979454590c84b8d3c15484517d5e66bb8add9b231da9abbadf2e50850abd72ac1345c4ab fstatat-32bit.patch 33ee60863cc438ef57ffef92ba4cf67a856a5ffc16138bce241bcf87e47b15154aa86918e793c26f7ec4dc62a445257ad5673ed7001daf22c4043cf6cc57da7f gdbinit.patch 36a764fa73443b47d38050b52dbe6ad2fa8d67201ff4ccdbad13b52308ef165ca046aac6f9609fe35890a6485f0f3e672e78cc41e3e44f3cdc7f145e540524e8 generic-sensor-include.patch -99bcc7dd485b404a90c606a96addab1d900852128d44fb8cea8acc7303189ef87c89a7b0e749fd0e10c5ef5f6bf1fadeb5c16a34503cab6a59938ce2653d887e musl-auxv.patch +a94cf7a0670abf5178abba33c619cc6d41d73f2e16c7a1fd5b152152f5077df103e049d166e3b8627797c38113821d2f2e6b64cd48d132c1e90ad32d63a349f5 headless-shell-no-license.patch 51f1959bd622af26a1c3a1f4b0ad9a5bfa461057aa4cf9960c568dddf8ac47d55989c277f5d5ab5db040a04c54925a531af7a1cc767559218b408eaa6bdd7577 musl-sandbox.patch e7163ac5810ac85366cef2447412287c856e3d67c6b77f219a6e5a418b1965b98e449c409424ad0704a5bded9355dd0aec3dc4585918ce5a2ab36c079707afe2 musl-tid-caching.patch +3b7420d58d13dfc4baab5065e3017f666f51fed6de087af42a660a839d7b4444b50d1a93204322d213df36c6722eaf6b08d46d50dc374198a342da2675fafff5 net-test-no-vpython.patch +e487662b6606ea526ddd716c31e6b9ad3d61f1bee5356cd94b78a903efb3928338cbb48e3d5840b34c3b70a71e8361a228430bd50e707ad301228a7049d59e37 net-test-pyws3-py3.12.patch a250cff50d282b02ce0f28880d0a2b4fb8e7df51bc072bfeeddc561c29a7c76453dbcbc7b17b82966a7b30a31409d2555720d1dcf963e1b3fb8a2a06a6abcf46 no-execinfo.patch 0b41aeb6b212f9c3f61aa0a8d3085c9e865a2e68f3270ceec2376aab67f337ac46eaea7da36d3fd7219e2a1cb731b7aa2d3fb619a374d2b7653976b9f4f384bb no-mallinfo.patch e4c4e5bc6f828f9c883dd418c0ba01887949c29c311f76206a1ec29f620b0c0ba0452949dc2778a9c46ea066405857536964a36436a68eecf7da7952736333cf no-res-ninit-nclose.patch 6dc4d8dc92e685dace62265a1ddb3aebc558aed54d20ff6d36b030be0c48d7e84662326c31363612492574d9a03c62653cdc21a60995b97dee1d75cae86a9f9b no-sandbox-settls.patch -f2b08538ff57c50b3772a07ca91845f9d45f4a5112f608b6192d4fb5d7be48f478c0c36194d95ab7bbf933e0278e5c6d578619d8643895cdc40386eebc5b975f partalloc-no-tagging-arm64.patch +b75908a45ee2f4f806eec8d86fca2f51fda3531b88de48ef4539c364a40d7e2897cdaf38b715682d712648e3f43aac983055e688385f85fa7b7204ffb6d617e1 partalloc-no-tagging-arm64.patch 03f829a2da633533ef3fd0f287f5ec602d936a97a98b53cd2415553c2537ae9d571f35397ca7c9fb3f4b0806c300e3b189569f8d979ca132e1a2a4dae7206396 pvalloc.patch e48693e6b7aeebf69a5acbf80d9a35defe4c23835121dfeb58b051ac7c527e758a41004f4d193274fe1b01c0bfb1dbc77b09cb6a404a3fdee507a2918afb0edb temp-failure-retry.patch -1814096bc611e7f56cc5c570214dae715a4cda1fba96a6b585a73a1abc8b9161efaa799dc83887dac531dbafe9479bbe235cabe1a61cb3081e268c53a6144908 pipewire-1.4.patch -4bc087a1e5acbb0f8f884756b40c127df88699ecd6eb42c4aff6691b87239bb6915dd102e9ef2544502a12bff011859ad497206940473e6b0a0fd75afb562a4c gperf-3.2-fix.patch -858f8e3c544abf3ffe0f54ba303713e9b4058e15996c8dc10bab7c999d82e1960756325a41d6bebb3a00404efb8e51c299f61f60de4feaac6b621757ab85d329 0001-Reland-Use-global_allocator-to-provide-Rust-allocato.patch -077497c1598c7db9f4c23e000e9b86e1833de4866479fd921313543ad599e141427bf38ae687f84c3da59af68f09a776265c2a569e1a7abfa80440231baef10a 0002-Call-Rust-default-allocator-directly-from-Rust.patch -5002aa73eb19b87c702eef5b087ecb3a2679142c28cd95a5a9571aeffe24e6944497e862058ed1d609317a723cdec1678f84543235fb93f12653a92b92309efe 0003-Roll-rust-only-f7b43542838f0a4a6cfdb17fbeadf45002042.patch -d2e414135d2b046dd9efe277f88062bcb0a94749a17a014309260b1469305d55059931b9531572713c8e516897e30fd2f5317948ece1581ffe9b7b6c01078a6d 0004-Drop-remap_alloc-dep.patch -fe66228c0eefe3d08e2a7955b11e6a46f58f477befceba1628765fb016f30eb0bb02723aeedcabdb1ea3b84c42b5ea65073998e0a64f5ce082120fc7e65dee9a 0005-rust-Clean-up-build-rust-allocator-after-a-Rust-tool.patch 465107da7818b237e3c144a318ab80c3c9343b51ed38b8971ef204692d13346929becbe94cefad4c153788d3a200642143584d5ca070f6304e768ba2139c19ec electron_icon.patch e05180199ee1d559e4e577cedd3e589844ecf40d98a86321bf1bea5607b02eeb5feb486deddae40e1005b644550331f6b8500177aa7e79bcb3750d3c1ceb76c3 electron_python-jinja-3.10.patch 2aa340854316f1284217c0ca17cbf44953684ad6c7da90815117df30928612eb9fb9ffb734b948dfc309cd25d1a67cd57f77aac2d052a3dd9aca07a3a58cbb30 electron_webpack-hash.patch c7f57929943a86f9e5f333da9d5691da88038770eeb46dd0a0719962c934deb2879f0e7a1ed714e9383e38ee4d68eb754501f362c4d7cdee76cfc2e980b21272 electron_unbundle-node.patch 4d9287d4cdfe27fbfb7be3d4b26c0c40edbd6a0c3ff926d60f2093ca09c15bcb58e20c2ccc8c0606aafd66c6d25a54225bc329cb056d8c5b297db4c6d0e768e6 electron_system-zlib-headers.patch +7031ddb61a858e95d83366185a53b5a2e4be9abe0aa4957543e0621cad57175ffef31bd87b8be25255184bb4cb30ec4fbced055407c6c8c7940c9e240b25d498 electron_do-not-strip-binaries.patch +0f8f36c21cc50c80e378691265845ff10fa53953d6cd5352fe71efcba489f956e50d374d8f634dadc3569c4901a81a1f308a3e69140c0f9136e0777022b9520f electron_shell-file-dialog-drop-glibc.patch e8ea87c547546011c4c8fc2de30e4f443b85cd4cfcff92808e2521d2f9ada03feefb8e1b0cf0f6b460919c146e56ef8d5ad4bb5e2461cc5247c30d92eb4d068e default.conf 191559fc7aa1ea0353c6fb0cc321ee1d5803a0e44848c8be941cfab96277b0de6a59962d373e2a2a1686c8f9be2bcf2d2f33706759a339a959e297d3f7fda463 electron.desktop 5f7ba5ad005f196facec1c0f26108356b64cafb1e5cfa462ff714a33b8a4c757ac00bfcb080da09eb5b65032f8eb245d9676a61ec554515d125ed63912708648 electron-launcher.sh diff --git a/backports/electron/chromium-revert-drop-of-system-java.patch b/backports/electron/chromium-revert-drop-of-system-java.patch deleted file mode 100644 index 24355bf..0000000 --- a/backports/electron/chromium-revert-drop-of-system-java.patch +++ /dev/null @@ -1,17 +0,0 @@ -This was dropped for some reason in 6951c37cecd05979b232a39e5c10e6346a0f74ef -allows using /usr/bin/java instead of a downloaded one (that doesn't work on musl) --- ---- a/third_party/closure_compiler/compiler.py 2021-05-20 04:17:53.000000000 +0200 -+++ b/third_party/closure_compiler/compiler.py 2021-05-20 04:17:53.000000000 +0200 -@@ -13,8 +13,9 @@ - - - _CURRENT_DIR = os.path.join(os.path.dirname(__file__)) --_JAVA_PATH = os.path.join(_CURRENT_DIR, "..", "jdk", "current", "bin", "java") --assert os.path.isfile(_JAVA_PATH), "java only allowed in android builds" -+_JAVA_BIN = "java" -+_JDK_PATH = os.path.join(_CURRENT_DIR, "..", "jdk", "current", "bin", "java") -+_JAVA_PATH = _JDK_PATH if os.path.isfile(_JDK_PATH) else _JAVA_BIN - - class Compiler(object): - """Runs the Closure compiler on given source files to typecheck them diff --git a/backports/electron/compiler.patch b/backports/electron/compiler.patch index df41f2c..41b9b08 100644 --- a/backports/electron/compiler.patch +++ b/backports/electron/compiler.patch @@ -1,14 +1,12 @@ --- ./build/config/compiler/BUILD.gn.orig +++ ./build/config/compiler/BUILD.gn -@@ -591,24 +591,6 @@ +@@ -658,22 +658,6 @@ } } - # TODO(crbug.com/40283598): This causes binary size growth and potentially - # other problems. -- # TODO(crbug.com/40284925): This isn't supported by Cronet's mainline llvm version. -- if (default_toolchain != "//build/toolchain/cros:target" && -- !llvm_android_mainline) { +- if (default_toolchain != "//build/toolchain/cros:target") { - cflags += [ - "-mllvm", - "-split-threshold-for-reg-with-hint=0", @@ -25,58 +23,91 @@ # TODO(crbug.com/40192287): Investigate why/if this should be needed. if (is_win) { cflags += [ "/clang:-ffp-contract=off" ] -@@ -1045,20 +1027,6 @@ - # `-nodefaultlibs` from the linker invocation from Rust, which would be used - # to compile dylibs on Android, such as for constructing unit test APKs. - "-Cdefault-linker-libraries", -- -- # To make Rust .d files compatible with ninja -- "-Zdep-info-omit-d-target", -- -- # If a macro panics during compilation, show which macro and where it is -- # defined. -- "-Zmacro-backtrace", -- -- # For deterministic builds, keep the local machine's current working -- # directory from appearing in build outputs. -- "-Zremap-cwd-prefix=.", -- -- # We use clang-rt sanitizer runtimes. -- "-Zexternal-clangrt", - ] - - if (!is_win || force_rustc_color_output) { -@@ -1107,7 +1075,6 @@ - # Don't allow unstable features to be enabled by `#![feature()]` without - # additional command line flags. - config("disallow_unstable_features") { -- rustflags = [ "-Zallow-features=" ] - } - - config("libcxx_hardening") { -@@ -1242,8 +1209,8 @@ - } +@@ -1273,8 +1257,8 @@ + # simplicity we always explicitly set the architecture. + if (current_cpu == "x64") { + if (is_clang && !is_android && !is_fuchsia && !is_chromeos_device) { +- cflags += [ "--target=x86_64-unknown-linux-gnu" ] +- ldflags += [ "--target=x86_64-unknown-linux-gnu" ] ++ cflags += [ "--target=x86_64-alpine-linux-musl" ] ++ ldflags += [ "--target=x86_64-alpine-linux-musl" ] + } else { + cflags += [ "-m64" ] + ldflags += [ "-m64" ] +@@ -1282,8 +1266,8 @@ + cflags += [ "-msse3" ] + } else if (current_cpu == "x86") { + if (is_clang && !is_android && !is_chromeos_device) { +- cflags += [ "--target=i386-unknown-linux-gnu" ] +- ldflags += [ "--target=i386-unknown-linux-gnu" ] ++ cflags += [ "--target=i586-alpine-linux-musl" ] ++ ldflags += [ "--target=i586-alpine-linux-musl" ] + } else { + cflags += [ "-m32" ] + ldflags += [ "-m32" ] +@@ -1294,8 +1278,8 @@ + ] } else if (current_cpu == "arm") { - if (is_clang && !is_android && !is_nacl && !is_chromeos_device) { + if (is_clang && !is_android && !is_chromeos_device) { - cflags += [ "--target=arm-linux-gnueabihf" ] - ldflags += [ "--target=arm-linux-gnueabihf" ] + cflags += [ "--target=armv7-alpine-linux-musleabihf" ] + ldflags += [ "--target=armv7-alpine-linux-musleabihf" ] } - if (!is_nacl) { - cflags += [ -@@ -1257,8 +1224,8 @@ + cflags += [ + "-march=$arm_arch", +@@ -1306,8 +1290,8 @@ + } } else if (current_cpu == "arm64") { - if (is_clang && !is_android && !is_nacl && !is_fuchsia && - !is_chromeos_device) { + if (is_clang && !is_android && !is_fuchsia && !is_chromeos_device) { - cflags += [ "--target=aarch64-linux-gnu" ] - ldflags += [ "--target=aarch64-linux-gnu" ] + cflags += [ "--target=aarch64-alpine-linux-musl" ] + ldflags += [ "--target=aarch64-alpine-linux-musl" ] } - } else if (current_cpu == "mipsel" && !is_nacl) { + } else if (current_cpu == "mipsel") { ldflags += [ "-Wl,--hash-style=sysv" ] -@@ -2086,7 +2053,7 @@ +@@ -1551,22 +1535,22 @@ + ldflags += [ "-maix64" ] + } + } else if (is_clang) { +- cflags += [ "--target=powerpc64le-unknown-linux-gnu" ] +- ldflags += [ "--target=powerpc64le-unknown-linux-gnu" ] ++ cflags += [ "--target=powerpc64le-alpine-linux-musl" ] ++ ldflags += [ "--target=powerpc64le-alpine-linux-musl" ] + } else { + cflags += [ "-m64" ] + ldflags += [ "-m64" ] + } + } else if (current_cpu == "riscv64") { + if (is_clang && !is_android) { +- cflags += [ "--target=riscv64-linux-gnu" ] +- ldflags += [ "--target=riscv64-linux-gnu" ] ++ cflags += [ "--target=riscv64-alpine-linux-musl" ] ++ ldflags += [ "--target=riscv64-alpine-linux-musl" ] + } + cflags += [ "-mabi=lp64d" ] + } else if (current_cpu == "loong64") { + if (is_clang) { +- cflags += [ "--target=loongarch64-linux-gnu" ] +- ldflags += [ "--target=loongarch64-linux-gnu" ] ++ cflags += [ "--target=loongarch64-alpine-linux-musl" ] ++ ldflags += [ "--target=loongarch64-alpine-linux-musl" ] + } + cflags += [ + "-mabi=lp64d", +@@ -1574,8 +1558,8 @@ + ] + } else if (current_cpu == "s390x") { + if (is_clang) { +- cflags += [ "--target=s390x-unknown-linux-gnu" ] +- ldflags += [ "--target=s390x-unknown-linux-gnu" ] ++ cflags += [ "--target=s390x-alpine-linux-musl" ] ++ ldflags += [ "--target=s390x-alpine-linux-musl" ] + } + cflags += [ "-m64" ] + ldflags += [ "-m64" ] +@@ -2274,7 +2258,7 @@ defines = [ "_HAS_NODISCARD" ] } } else { @@ -87,51 +118,59 @@ cflags += [ "-Wextra" ] --- ./build/config/rust.gni.orig +++ ./build/config/rust.gni -@@ -198,13 +198,13 @@ +@@ -178,11 +178,11 @@ rust_abi_target = "" if (is_linux || is_chromeos) { if (current_cpu == "arm64") { - rust_abi_target = "aarch64-unknown-linux-gnu" + rust_abi_target = "aarch64-alpine-linux-musl" - cargo_target_abi = "" } else if (current_cpu == "x86") { - rust_abi_target = "i686-unknown-linux-gnu" + rust_abi_target = "i586-alpine-linux-musl" - cargo_target_abi = "" } else if (current_cpu == "x64") { - rust_abi_target = "x86_64-unknown-linux-gnu" + rust_abi_target = "x86_64-alpine-linux-musl" - cargo_target_abi = "" } else if (current_cpu == "arm") { if (arm_float_abi == "hard") { -@@ -214,18 +214,18 @@ - } - if (arm_arch == "armv7-a" || arm_arch == "armv7") { - # No way to inform Rust about the -a suffix. -- rust_abi_target = "armv7-unknown-linux-gnueabi" + float_suffix + float_suffix = "hf" +@@ -200,25 +200,21 @@ + # The thumbv7 vs. armv7 distinction is for legacy reasons and both + # targets in fact target Thumb, see: + # https://github.com/rust-lang/rust/issues/44722 +- if (arm_use_neon) { +- rust_abi_target = "thumbv7neon-unknown-linux-gnueabi" + float_suffix +- } else { +- rust_abi_target = "armv7-unknown-linux-gnueabi" + float_suffix +- } + rust_abi_target = "armv7-alpine-linux-musleabi" + float_suffix - cargo_target_abi = "eabi" + float_suffix } else { - rust_abi_target = "arm-unknown-linux-gnueabi" + float_suffix + rust_abi_target = "armv6-alpine-linux-musleabi" + float_suffix - cargo_target_abi = "eabi" + float_suffix } } else if (current_cpu == "riscv64") { - rust_abi_target = "riscv64gc-unknown-linux-gnu" + rust_abi_target = "riscv64-alpine-linux-musl" - cargo_target_abi = "" + } else if (current_cpu == "ppc64") { +- rust_abi_target = "powerpc64le-unknown-linux-gnu" ++ rust_abi_target = "powerpc64le-alpine-linux-musl" + } else if (current_cpu == "s390x") { +- rust_abi_target = "s390x-unknown-linux-gnu" ++ rust_abi_target = "s390x-alpine-linux-musl" + } else if (current_cpu == "loong64") { +- rust_abi_target = "loongarch64-unknown-linux-gnu" ++ rust_abi_target = "loongarch64-alpine-linux-musl" } else { # Best guess for other future platforms. - rust_abi_target = current_cpu + "-unknown-linux-gnu" + rust_abi_target = current_cpu + "-alpine-linux-musl" - cargo_target_abi = "" } } else if (is_android) { + import("//build/config/android/abi.gni") --- ./build/config/clang/BUILD.gn.orig +++ ./build/config/clang/BUILD.gn -@@ -128,14 +128,15 @@ - } else if (is_apple) { - _dir = "darwin" +@@ -207,22 +207,23 @@ + assert(false) # Unhandled cpu type + } } else if (is_linux || is_chromeos) { + _dir = "linux" if (current_cpu == "x64") { @@ -146,16 +185,18 @@ } else if (current_cpu == "arm64") { - _dir = "aarch64-unknown-linux-gnu" + _suffix = "-aarch64" + } else if (current_cpu == "loong64") { +- _dir = "loongarch64-unknown-linux-gnu" ++ _suffix = "-loongarch64" + } else if (current_cpu == "riscv64") { +- _dir = "riscv64-unknown-linux-gnu" ++ _suffix = "-riscv64" + } else if (current_cpu == "ppc64") { +- _dir = "ppc64le-unknown-linux-gnu" ++ _suffix = "-powerpc64le" + } else if (current_cpu == "s390x") { +- _dir = "s390x-unknown-linux-gnu" ++ _suffix = "-s390x" } else { assert(false) # Unhandled cpu type } ---- ./build/config/gcc/BUILD.gn.orig -+++ ./build/config/gcc/BUILD.gn -@@ -32,7 +32,6 @@ - # See http://gcc.gnu.org/wiki/Visibility - config("symbol_visibility_hidden") { - cflags = [ "-fvisibility=hidden" ] -- rustflags = [ "-Zdefault-visibility=hidden" ] - - # Visibility attribute is not supported on AIX. - if (current_os != "aix") { diff --git a/backports/electron/disable-dns_config_service.patch b/backports/electron/disable-dns_config_service.patch index a72e1c4..731a751 100644 --- a/backports/electron/disable-dns_config_service.patch +++ b/backports/electron/disable-dns_config_service.patch @@ -2,7 +2,7 @@ diff --git a/net/dns/BUILD.gn b/net/dns/BUILD.gn index f36bf68..805d9a6 100644 --- a/net/dns/BUILD.gn +++ b/net/dns/BUILD.gn -@@ -130,8 +130,8 @@ source_set("dns") { +@@ -142,8 +142,8 @@ ] } else if (is_linux) { sources += [ @@ -13,3 +13,11 @@ index f36bf68..805d9a6 100644 ] } else if (is_posix) { sources += [ +@@ -455,7 +455,6 @@ + if (is_android) { + sources += [ "dns_config_service_android_unittest.cc" ] + } else if (is_linux) { +- sources += [ "dns_config_service_linux_unittest.cc" ] + } else if (is_posix) { + sources += [ "dns_config_service_posix_unittest.cc" ] + } diff --git a/backports/electron/disable-failing-tests.patch b/backports/electron/disable-failing-tests.patch index 84d0027..9351ea0 100644 --- a/backports/electron/disable-failing-tests.patch +++ b/backports/electron/disable-failing-tests.patch @@ -2,86 +2,6 @@ safesprintf emitnull: error: conversion from 'std::nullptr_t' to 'const internal::Arg' is ambiguous const internal::Arg arg_array[] = { args... }; -flatmap incompletetype: - error: static assertion failed due to requirement 'std::__is_complete_or_unbounded(std::__type_identity>{})': template argument must be a complete class or an unbounded array - static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}), - -i18n, time: - various icu failures (new icu time formatting? internal api difference?) - a ton of these fail: - - Expected equality of these values: - u"Monday 16 May – Saturday 28 May" - Which is: u"Monday 16 May \x2013 Saturday 28 May" - DateIntervalFormat(begin_time, end_time, DATE_FORMAT_MONTH_WEEKDAY_DAY) - Which is: u"Monday 16\x2009\x2013\x2009Saturday 28 May" - - ../../base/i18n/time_formatting_unittest.cc:84: Failure - Expected equality of these values: - clock12h_pm - Which is: u"3:42 PM" - TimeFormatTimeOfDay(time) - Which is: u"3:42\x202FPM" - - .. and so on - -fileutiltest filetofile: - ../../base/files/file_util_unittest.cc:2692: Failure - Value of: stream - Actual: true - Expected: false - -stacktracetest: crashes (this doesn't seem to use execinfo so probably relies on glibc internal layout for tracing here) - -platformthreadtest canchangethreadtype: - ../../base/threading/platform_thread_unittest.cc:445: Failure - Expected equality of these values: - PlatformThread::CanChangeThreadType(ThreadType::kBackground, ThreadType::kResourceEfficient) - Which is: true - kCanIncreasePriority - Which is: false - -scopedfdownershiptrackingtest crashonunownedclose: fails due to scoped-file-no-close.patch - -stackcontainer customallocator: - ../../base/containers/stack_container_unittest.cc:211: Failure - Expected equality of these values: - 1 - Allocator::deallocated - Which is: 0 - -nativelibrarytest loadlibrarypreferownsymbols: crashes (probably musl dlopen does not play nice here) - -spantest empty: crashes (this looks fishy) - -readelfbuildid: crashes (this looks like glibc dynamic linker semantics) - -nss db unittest: various nss failures: e.g.: - ../../net/cert/nss_cert_database_unittest.cc:209: Failure - Expected equality of these values: - OK - Which is: 0 - cert_db_->ImportFromPKCS12(GetPublicSlot(), pkcs12_data, u"12345", true, nullptr) - Which is: -702 - -processutiltest cloneflags: fails in CI (ulimit? too many threads?) - ../../base/process/process_util_unittest.cc:1434: Failure - Value of: process.IsValid() - Actual: false - Expected: true - -addresstrackerlinuxnetlinktest: - ../../net/base/address_tracker_linux_unittest.cc:886: Failure - Value of: child.process.IsValid() - Actual: false - Expected: true - -ToAddressDoesNotDereference: ; Expected `get_for_extraction_cnt` to be 1 but got 0; - -DataCapturedManyThreads: flaky - -ProcessAlternativeServicesTest.Process*: crashed ? - --- a/base/strings/safe_sprintf_unittest.cc +++ b/base/strings/safe_sprintf_unittest.cc @@ -740,6 +740,7 @@ @@ -100,244 +20,3 @@ ProcessAlternativeServicesTest.Process*: crashed ? TEST(SafeSPrintfTest, PointerSize) { // The internal data representation is a 64bit value, independent of the ---- a/base/containers/flat_map_unittest.cc -+++ b/base/containers/flat_map_unittest.cc -@@ -52,6 +52,7 @@ - - } // namespace - -+#if 0 - TEST(FlatMap, IncompleteType) { - struct A { - using Map = flat_map; -@@ -65,6 +66,7 @@ - - A a; - } -+#endif - - TEST(FlatMap, RangeConstructor) { - flat_map::value_type input_vals[] = { ---- a/base/BUILD.gn -+++ b/base/BUILD.gn -@@ -3194,21 +3194,6 @@ - "hash/md5_constexpr_unittest.cc", - "hash/md5_unittest.cc", - "hash/sha1_unittest.cc", -- "i18n/break_iterator_unittest.cc", -- "i18n/case_conversion_unittest.cc", -- "i18n/char_iterator_unittest.cc", -- "i18n/character_encoding_unittest.cc", -- "i18n/file_util_icu_unittest.cc", -- "i18n/icu_string_conversions_unittest.cc", -- "i18n/icu_util_unittest.cc", -- "i18n/message_formatter_unittest.cc", -- "i18n/number_formatting_unittest.cc", -- "i18n/rtl_unittest.cc", -- "i18n/streaming_utf8_validator_unittest.cc", -- "i18n/string_search_unittest.cc", -- "i18n/time_formatting_unittest.cc", -- "i18n/timezone_unittest.cc", -- "i18n/transliterator_unittest.cc", - "immediate_crash_unittest.cc", - "json/json_parser_unittest.cc", - "json/json_reader_unittest.cc", ---- a/base/files/file_util_unittest.cc -+++ b/base/files/file_util_unittest.cc -@@ -2686,6 +2686,7 @@ - } - } - -+#if 0 - TEST_F(FileUtilTest, FileToFILE) { - File file; - FILE* stream = FileToFILE(std::move(file), "w"); -@@ -2700,6 +2701,7 @@ - EXPECT_FALSE(file.IsValid()); - EXPECT_TRUE(CloseFile(stream)); - } -+#endif - - TEST_F(FileUtilTest, FILEToFile) { - ScopedFILE stream; ---- a/base/threading/platform_thread_unittest.cc -+++ b/base/threading/platform_thread_unittest.cc -@@ -416,6 +416,7 @@ - // platforms for all priorities. This not being the case. This test documents - // and hardcodes what we know. Please inform scheduler-dev@chromium.org if this - // proprerty changes for a given platform. -+#if 0 - TEST(PlatformThreadTest, CanChangeThreadType) { - #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) - // On Ubuntu, RLIMIT_NICE and RLIMIT_RTPRIO are 0 by default, so we won't be -@@ -472,6 +473,7 @@ - ThreadType::kBackground)); - #endif - } -+#endif - - TEST(PlatformThreadTest, SetCurrentThreadTypeTest) { - TestPriorityResultingFromThreadType(ThreadType::kBackground, ---- a/base/files/scoped_file_linux_unittest.cc -+++ b/base/files/scoped_file_linux_unittest.cc -@@ -42,11 +42,13 @@ - EXPECT_DEATH(ScopedFD(fd.get()), ""); - } - -+#if 0 - TEST_F(ScopedFDOwnershipTrackingTest, CrashOnUnownedClose) { - ScopedFD fd = OpenFD(); - subtle::EnableFDOwnershipEnforcement(true); - EXPECT_DEATH(close(fd.get()), ""); - } -+#endif - - #endif // defined(GTEST_HAS_DEATH_TEST) - ---- a/base/native_library_unittest.cc -+++ b/base/native_library_unittest.cc -@@ -139,6 +139,7 @@ - // Verifies that the |prefer_own_symbols| option satisfies its guarantee that - // a loaded library will always prefer local symbol resolution before - // considering global symbols. -+#if 0 - TEST(NativeLibraryTest, LoadLibraryPreferOwnSymbols) { - NativeLibraryOptions options; - options.prefer_own_symbols = true; -@@ -171,6 +172,7 @@ - EXPECT_EQ(2, NativeLibraryTestIncrement()); - EXPECT_EQ(3, NativeLibraryTestIncrement()); - } -+#endif - - #endif // !BUILDFLAG(IS_ANDROID) && !defined(THREAD_SANITIZER) && \ - // !defined(MEMORY_SANITIZER) ---- a/base/containers/span_unittest.cc -+++ b/base/containers/span_unittest.cc -@@ -995,6 +995,7 @@ - } - } - -+#if 0 - TEST(SpanTest, Empty) { - { - span span; -@@ -1014,6 +1015,7 @@ - EXPECT_TRUE(span_of_checked_iterators.empty()); - } - } -+#endif - - TEST(SpanTest, OperatorAt) { - static constexpr int kArray[] = {1, 6, 1, 8, 0}; ---- a/base/debug/elf_reader_unittest.cc -+++ b/base/debug/elf_reader_unittest.cc -@@ -194,6 +194,7 @@ - } - } - -+#if 0 - TEST(ElfReaderTestWithCurrentImage, ReadElfBuildId) { - #if BUILDFLAG(IS_ANDROID) - // On Android the library loader memory maps the full so file. -@@ -229,6 +230,7 @@ - UnloadNativeLibrary(library); - #endif - } -+#endif - - } // namespace debug - } // namespace base ---- a/net/BUILD.gn -+++ b/net/BUILD.gn -@@ -4826,7 +4826,6 @@ - sources += [ - "cert/internal/system_trust_store_nss_unittest.cc", - "cert/internal/trust_store_nss_unittest.cc", -- "cert/nss_cert_database_unittest.cc", - "cert/x509_util_nss_unittest.cc", - ] - if (!is_castos) { ---- a/base/process/process_util_unittest.cc -+++ b/base/process/process_util_unittest.cc -@@ -1419,7 +1419,7 @@ - return kSuccess; - } - --#if defined(CLONE_NEWUSER) && defined(CLONE_NEWPID) -+#if 0 && defined(CLONE_NEWUSER) && defined(CLONE_NEWPID) - TEST_F(ProcessUtilTest, CloneFlags) { - if (!PathExists(FilePath("/proc/self/ns/user")) || - !PathExists(FilePath("/proc/self/ns/pid"))) { ---- a/net/base/address_tracker_linux_unittest.cc -+++ b/net/base/address_tracker_linux_unittest.cc -@@ -831,6 +831,7 @@ - // - // This test creates multiple concurrent `AddressTrackerLinux` instances in - // separate processes, each in their own PID namespaces. -+#if 0 - TEST(AddressTrackerLinuxNetlinkTest, TestInitializeTwoTrackersInPidNamespaces) { - // This test initializes `kNumChildren` instances of `AddressTrackerLinux` in - // tracking mode, each in their own child process running in a PID namespace. -@@ -901,6 +902,7 @@ - ASSERT_EQ(exit_code, 0); - } - } -+#endif - - MULTIPROCESS_TEST_MAIN(ChildProcessInitializeTrackerForTesting) { - base::test::TaskEnvironment task_env( ---- a/base/trace_event/trace_event_unittest.cc -+++ b/base/trace_event/trace_event_unittest.cc -@@ -1368,6 +1368,7 @@ - } - - // Test that data sent from multiple threads is gathered -+#if 0 - TEST_F(TraceEventTestFixture, DataCapturedManyThreads) { - BeginTrace(); - -@@ -1408,6 +1409,7 @@ - delete task_complete_events[i]; - } - } -+#endif - - // Test that thread and process names show up in the trace. - // In SDK build, thread names are not tracked inside //base. Instead, there's ---- a/base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr_unittest.cc -+++ b/base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr_unittest.cc -@@ -1481,6 +1481,7 @@ - // `base::to_address()` will use the dereference operator. This is not - // what we want; this test enforces extraction semantics for - // `to_address()`. -+#if 0 - TEST_F(RawPtrTest, ToAddressDoesNotDereference) { - CountingRawPtr ptr = nullptr; - int* raw = base::to_address(ptr); -@@ -1492,6 +1493,7 @@ - .get_for_duplication_cnt = 0}), - CountersMatch()); - } -+#endif - - TEST_F(RawPtrTest, ToAddressGivesBackRawAddress) { - int* raw = nullptr; ---- a/net/http/http_stream_factory_unittest.cc -+++ b/net/http/http_stream_factory_unittest.cc -@@ -3477,6 +3477,7 @@ - DefaultCTPolicyEnforcer ct_policy_enforcer_; - }; - -+#if 0 - TEST_F(ProcessAlternativeServicesTest, ProcessEmptyAltSvc) { - session_ = - std::make_unique(session_params_, session_context_); -@@ -3585,6 +3586,7 @@ - alternatives[0].host_port_pair()); - EXPECT_EQ(0u, alternatives[0].advertised_versions().size()); - } -+#endif - - } // namespace - diff --git a/backports/electron/electron_do-not-strip-binaries.patch b/backports/electron/electron_do-not-strip-binaries.patch new file mode 100644 index 0000000..f90ce54 --- /dev/null +++ b/backports/electron/electron_do-not-strip-binaries.patch @@ -0,0 +1,127 @@ +diff --git a/electron/BUILD.gn.orig b/electron/BUILD.gn +index b08f434..4062428 100644 +--- a/electron/BUILD.gn.orig ++++ b/electron/BUILD.gn +@@ -44,7 +44,6 @@ if (is_mac) { + + if (is_linux) { + import("//build/config/linux/pkg_config.gni") +- import("//electron/build/linux/strip_binary.gni") + import("//tools/generate_stubs/rules.gni") + + pkg_config("gio_unix") { +@@ -1424,18 +1423,6 @@ dist_zip("electron_dist_zip") { + ":licenses", + ] + if (is_linux) { +- if (is_official_build) { +- data_deps += [ +- ":strip_chrome_crashpad_handler", +- ":strip_chrome_sandbox", +- ":strip_electron_binary", +- ":strip_libEGL_shlib", +- ":strip_libGLESv2_shlib", +- ":strip_libffmpeg_shlib", +- ":strip_libvk_swiftshader_shlib", +- ] +- } +- + data_deps += [ "//sandbox/linux:chrome_sandbox" ] + } + deps = data_deps +@@ -1481,16 +1468,6 @@ group("electron_mksnapshot") { + + dist_zip("electron_mksnapshot_zip") { + data_deps = mksnapshot_deps +- if (is_linux && is_official_build) { +- data_deps += [ +- ":strip_libEGL_shlib", +- ":strip_libGLESv2_shlib", +- ":strip_libffmpeg_shlib", +- ":strip_libvk_swiftshader_shlib", +- ":strip_mksnapshot_binary", +- ":strip_v8_context_snapshot_generator_binary", +- ] +- } + deps = data_deps + outputs = [ "$root_build_dir/mksnapshot.zip" ] + } +@@ -1637,78 +1614,3 @@ group("release_build") { + ] + } + } +- +-if (is_linux && is_official_build) { +- strip_binary("strip_electron_binary") { +- binary_input = "$root_out_dir/$electron_project_name" +- symbol_output = "$root_out_dir/debug/$electron_project_name.debug" +- compress_debug_sections = true +- deps = [ ":electron_app" ] +- } +- +- strip_binary("strip_chrome_crashpad_handler") { +- binary_input = "$root_out_dir/chrome_crashpad_handler" +- symbol_output = "$root_out_dir/debug/chrome_crashpad_handler.debug" +- compress_debug_sections = true +- deps = [ "//components/crash/core/app:chrome_crashpad_handler" ] +- } +- +- strip_binary("strip_chrome_sandbox") { +- binary_input = "$root_out_dir/chrome_sandbox" +- symbol_output = "$root_out_dir/debug/chrome-sandbox.debug" +- compress_debug_sections = true +- deps = [ "//sandbox/linux:chrome_sandbox" ] +- } +- +- strip_binary("strip_libEGL_shlib") { +- binary_input = "$root_out_dir/libEGL.so" +- symbol_output = "$root_out_dir/debug/libEGL.so.debug" +- compress_debug_sections = true +- deps = [ "//third_party/angle:libEGL" ] +- } +- +- strip_binary("strip_libGLESv2_shlib") { +- binary_input = "$root_out_dir/libGLESv2.so" +- symbol_output = "$root_out_dir/debug/libGLESv2.so.debug" +- compress_debug_sections = true +- deps = [ "//third_party/angle:libGLESv2" ] +- } +- +- strip_binary("strip_libffmpeg_shlib") { +- binary_input = "$root_out_dir/libffmpeg.so" +- symbol_output = "$root_out_dir/debug/libffmpeg.so.debug" +- compress_debug_sections = true +- deps = [ "//third_party/ffmpeg" ] +- } +- +- strip_binary("strip_libvk_swiftshader_shlib") { +- binary_input = "$root_out_dir/libvk_swiftshader.so" +- symbol_output = "$root_out_dir/debug/libvk_swiftshader.so.debug" +- compress_debug_sections = true +- deps = [ "//third_party/swiftshader/src/Vulkan:swiftshader_libvulkan" ] +- } +- +- strip_binary("strip_mksnapshot_binary") { +- _binary_path = rebase_path( +- get_label_info( +- ":v8_context_snapshot_generator($v8_snapshot_toolchain)", +- "root_out_dir") + "/mksnapshot", +- root_build_dir) +- binary_input = "$root_out_dir/$_binary_path" +- symbol_output = "$root_out_dir/debug/${_binary_path}.debug" +- compress_debug_sections = true +- deps = mksnapshot_deps +- } +- +- strip_binary("strip_v8_context_snapshot_generator_binary") { +- _binary_path = rebase_path( +- get_label_info( +- ":v8_context_snapshot_generator($v8_snapshot_toolchain)", +- "root_out_dir") + "/v8_context_snapshot_generator", +- root_build_dir) +- binary_input = "$root_out_dir/$_binary_path" +- symbol_output = "$root_out_dir/debug/${_binary_path}.debug" +- compress_debug_sections = true +- deps = mksnapshot_deps +- } +-} diff --git a/backports/electron/electron_shell-file-dialog-drop-glibc.patch b/backports/electron/electron_shell-file-dialog-drop-glibc.patch new file mode 100644 index 0000000..b2a6927 --- /dev/null +++ b/backports/electron/electron_shell-file-dialog-drop-glibc.patch @@ -0,0 +1,16 @@ +diff --git a/./electron/shell/browser/ui/file_dialog.h.orig b/./electron/shell/browser/ui/file_dialog.h +index 6cdfc7b..f7757da 100644 +--- a/./electron/shell/browser/ui/file_dialog.h.orig ++++ b/./electron/shell/browser/ui/file_dialog.h +@@ -13,10 +13,6 @@ + #include "base/files/file_path.h" + #include "base/memory/raw_ptr_exclusion.h" + +-#if BUILDFLAG(IS_LINUX) +-#include +-#endif +- + namespace electron { + class NativeWindow; + } + diff --git a/backports/electron/fc-cache-version.patch b/backports/electron/fc-cache-version.patch index 3b76897..7cbd2a8 100644 --- a/backports/electron/fc-cache-version.patch +++ b/backports/electron/fc-cache-version.patch @@ -1,12 +1,10 @@ -instead of hardcoding the version, use the defined macro. --- ---- a/third_party/test_fonts/fontconfig/generate_fontconfig_caches.cc -+++ b/third_party/test_fonts/fontconfig/generate_fontconfig_caches.cc +--- ./third_party/test_fonts/fontconfig/generate_fontconfig_caches.cc.orig ++++ ./third_party/test_fonts/fontconfig/generate_fontconfig_caches.cc @@ -56,7 +56,7 @@ FcFini(); // Check existence of intended fontconfig cache file. -- auto cache = fontconfig_caches + "/" + kCacheKey + "-le64.cache-9"; +- auto cache = fontconfig_caches + "/" + kCacheKey + "-le64.cache-11"; + auto cache = fontconfig_caches + "/" + kCacheKey + "-le64.cache-" + FC_CACHE_VERSION; bool cache_exists = access(cache.c_str(), F_OK) == 0; return !cache_exists; diff --git a/backports/electron/fix-ffmpeg-codec-list.patch b/backports/electron/fix-ffmpeg-codec-list.patch new file mode 100644 index 0000000..de24f66 --- /dev/null +++ b/backports/electron/fix-ffmpeg-codec-list.patch @@ -0,0 +1,13 @@ +--- a/media/ffmpeg/ffmpeg_common.cc ++++ b/media/ffmpeg/ffmpeg_common.cc +@@ -1046,8 +1046,8 @@ + + // This should match the configured lists in //third_party/ffmpeg. + static constexpr std::string_view kAllowedAudioCodecs = +- "vorbis,libopus,flac,pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le," +- "mp3,pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw" EXTRA_CODECS; ++ "vorbis,opus,libopus,flac,pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le," ++ "mp3float,mp3,pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw" EXTRA_CODECS; + #undef EXTRA_CODECS + + return kAllowedAudioCodecs.data(); diff --git a/backports/electron/fix-opus.patch b/backports/electron/fix-opus.patch deleted file mode 100644 index 836b719..0000000 --- a/backports/electron/fix-opus.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/media/ffmpeg/ffmpeg_common.cc -+++ b/media/ffmpeg/ffmpeg_common.cc -@@ -1025,7 +1025,7 @@ - static const base::NoDestructor kAllowedAudioCodecs([]() { - // This should match the configured lists in //third_party/ffmpeg. - std::string allowed_decoders( -- "vorbis,libopus,flac,pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le," -+ "vorbis,opus,libopus,flac,pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le," - "mp3,pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw"); - #if BUILDFLAG(USE_PROPRIETARY_CODECS) - allowed_decoders += ",aac"; diff --git a/backports/electron/gperf-3.2-fix.patch b/backports/electron/gperf-3.2-fix.patch deleted file mode 100644 index fa462e3..0000000 --- a/backports/electron/gperf-3.2-fix.patch +++ /dev/null @@ -1,29 +0,0 @@ -diff --git a/third_party/blink/renderer/build/scripts/gperf.py.orig b/third_party/blink/renderer/build/scripts/gperf.py -index 42630d3..d909aee 100644 ---- a/third_party/blink/renderer/build/scripts/gperf.py.orig -+++ b/third_party/blink/renderer/build/scripts/gperf.py -@@ -28,24 +28,6 @@ def generate_gperf(gperf_path, gperf_input, gperf_args): - stdout=subprocess.PIPE, - universal_newlines=True) - gperf_output = gperf.communicate(gperf_input)[0] -- # Massage gperf output to be more palatable for modern compilers. -- # TODO(thakis): Upstream these to gperf so we don't need massaging. -- # `register` is deprecated in C++11 and removed in C++17, so remove -- # it from gperf's output. -- # https://savannah.gnu.org/bugs/index.php?53028 -- gperf_output = re.sub(r'\bregister ', '', gperf_output) -- # -Wimplicit-fallthrough needs an explicit fallthrough statement, -- # so replace gperf's /*FALLTHROUGH*/ comment with the statement. -- # https://savannah.gnu.org/bugs/index.php?53029 -- gperf_output = gperf_output.replace('/*FALLTHROUGH*/', -- ' [[fallthrough]];') -- # -Wpointer-to-int-cast warns about casting pointers to smaller ints -- # Replace {(int)(long)&(foo), bar} with -- # {static_cast(reinterpret_cast(&(foo)), bar} -- gperf_output = re.sub( -- r'\(int\)\(long\)(.*?),', -- r'static_cast(reinterpret_cast(\1)),', -- gperf_output) - script = 'third_party/blink/renderer/build/scripts/gperf.py' - return '// Generated by %s\n' % script + gperf_output - except OSError: diff --git a/backports/electron/headless-shell-no-license.patch b/backports/electron/headless-shell-no-license.patch new file mode 100644 index 0000000..6a6027d --- /dev/null +++ b/backports/electron/headless-shell-no-license.patch @@ -0,0 +1,27 @@ +From 6f4685cff1ab8c68de98c0731bb8afaf8a05a723 Mon Sep 17 00:00:00 2001 +From: knuxify +Date: Sat, 5 Apr 2025 14:10:37 +0200 +Subject: [PATCH] Do not generate license file for headless-shell build + +--- + headless/BUILD.gn | 4 ---- + 1 file changed, 4 deletions(-) + +diff --git a/headless/BUILD.gn b/headless/BUILD.gn +index 798bb22..9d83f49 100644 +--- a/headless/BUILD.gn ++++ b/headless/BUILD.gn +@@ -934,10 +934,6 @@ executable("headless_shell") { + + deps = [ ":headless_shell_lib" ] + +- if (proprietary_codecs) { +- deps += [ ":generate_headless_shell_license_file" ] +- } +- + if (!headless_use_embedded_resources) { + data = [ + "$root_out_dir/headless_lib_data.pak", +-- +2.49.0 + diff --git a/backports/electron/musl-auxv.patch b/backports/electron/musl-auxv.patch deleted file mode 100644 index ce348cc..0000000 --- a/backports/electron/musl-auxv.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- ./v8/src/base/cpu.cc.orig -+++ ./v8/src/base/cpu.cc -@@ -14,7 +14,7 @@ - #if V8_OS_LINUX - #include // AT_HWCAP - #endif --#if V8_GLIBC_PREREQ(2, 16) || V8_OS_ANDROID -+#if 1 - #include // getauxval() - #endif - #if V8_OS_QNX diff --git a/backports/electron/musl-v8-monotonic-pthread-cont_timedwait.patch b/backports/electron/musl-v8-monotonic-pthread-cont_timedwait.patch deleted file mode 100644 index 3a99ee5..0000000 --- a/backports/electron/musl-v8-monotonic-pthread-cont_timedwait.patch +++ /dev/null @@ -1,23 +0,0 @@ -use monotonic clock for pthread_cond_timedwait with musl too, since it supports -it --- ---- a/v8/src/base/platform/condition-variable.cc -+++ b/v8/src/base/platform/condition-variable.cc -@@ -16,7 +16,7 @@ - - ConditionVariable::ConditionVariable() { - #if (V8_OS_FREEBSD || V8_OS_NETBSD || V8_OS_OPENBSD || \ -- (V8_OS_LINUX && V8_LIBC_GLIBC)) -+ V8_OS_LINUX) - // On Free/Net/OpenBSD and Linux with glibc we can change the time - // source for pthread_cond_timedwait() to use the monotonic clock. - pthread_condattr_t attr; -@@ -92,7 +92,7 @@ - &native_handle_, &mutex->native_handle(), &ts); - #else - #if (V8_OS_FREEBSD || V8_OS_NETBSD || V8_OS_OPENBSD || \ -- (V8_OS_LINUX && V8_LIBC_GLIBC)) -+ V8_OS_LINUX) - // On Free/Net/OpenBSD and Linux with glibc we can change the time - // source for pthread_cond_timedwait() to use the monotonic clock. - result = clock_gettime(CLOCK_MONOTONIC, &ts); diff --git a/backports/electron/net-test-no-vpython.patch b/backports/electron/net-test-no-vpython.patch new file mode 100644 index 0000000..efb2920 --- /dev/null +++ b/backports/electron/net-test-no-vpython.patch @@ -0,0 +1,22 @@ +From 4b41417068045f11db9e7edead1447e93adb9073 Mon Sep 17 00:00:00 2001 +From: LN Liberda +Date: Sat, 28 Jun 2025 18:13:59 +0200 +Subject: [PATCH] Test net without vendored python + +--- + net/test/python_utils.cc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/net/test/python_utils.cc b/net/test/python_utils.cc +index 2cdc07dad9948..0b2d42a5bf126 100644 +--- a/net/test/python_utils.cc ++++ b/net/test/python_utils.cc +@@ -47,7 +47,7 @@ bool GetPython3Command(base::CommandLine* python_cmd) { + #if BUILDFLAG(IS_WIN) + python_cmd->SetProgram(base::FilePath(FILE_PATH_LITERAL("vpython3.bat"))); + #else +- python_cmd->SetProgram(base::FilePath(FILE_PATH_LITERAL("vpython3"))); ++ python_cmd->SetProgram(base::FilePath(FILE_PATH_LITERAL("python3"))); + #endif + + #if BUILDFLAG(IS_MAC) diff --git a/backports/electron/net-test-pyws3-py3.12.patch b/backports/electron/net-test-pyws3-py3.12.patch new file mode 100644 index 0000000..cee3e61 --- /dev/null +++ b/backports/electron/net-test-pyws3-py3.12.patch @@ -0,0 +1,39 @@ +ssl.wrap_socket() was removed in Python 3.12, needed for net_unittests. +Patch-Source: https://github.com/GoogleChromeLabs/pywebsocket3/pull/39 +Modified (changed path) -lnl + +From bc50ae9d451ca705edd6101d987b839e1a09d45e Mon Sep 17 00:00:00 2001 +From: Sven Diederichs <22592421+zaurask@users.noreply.github.com> +Date: Thu, 28 Mar 2024 18:55:28 +0100 +Subject: [PATCH] use ssl.SSLContext.wrap_socket rather than the deprecated + ssl.wrap_socket + +--- + pywebsocket3/websocket_server.py | 14 ++++++++------ + 1 file changed, 8 insertions(+), 6 deletions(-) + +diff --git a/third_party/pywebsocket3/src/mod_pywebsocket/websocket_server.py b/third_party/pywebsocket3/src/mod_pywebsocket/websocket_server.py +index e7485ec..93ad6f1 100644 +--- a/third_party/pywebsocket3/src/mod_pywebsocket/websocket_server.py ++++ b/third_party/pywebsocket3/src/mod_pywebsocket/websocket_server.py +@@ -157,12 +157,14 @@ class WebSocketServer(socketserver.ThreadingMixIn, BaseHTTPServer.HTTPServer): + client_cert_ = ssl.CERT_REQUIRED + else: + client_cert_ = ssl.CERT_NONE +- socket_ = ssl.wrap_socket( +- socket_, +- keyfile=server_options.private_key, +- certfile=server_options.certificate, +- ca_certs=server_options.tls_client_ca, +- cert_reqs=client_cert_) ++ ++ ssl_context = ssl.SSLContext(ssl.PROTOCOL_TLS) ++ if server_options.certificate: ++ ssl_context.load_cert_chain(certfile=server_options.certificate, keyfile=server_options.private_key) ++ if server_options.tls_client_ca: ++ ssl_context.load_verify_locations(server_options.tls_client_ca) ++ ssl_context.verify_mode =client_cert_ ++ socket_ = ssl_context.wrap_socket(socket_) + self._sockets.append((socket_, addrinfo)) + + def server_bind(self): diff --git a/backports/electron/partalloc-no-tagging-arm64.patch b/backports/electron/partalloc-no-tagging-arm64.patch index fb33151..422fcf5 100644 --- a/backports/electron/partalloc-no-tagging-arm64.patch +++ b/backports/electron/partalloc-no-tagging-arm64.patch @@ -3,15 +3,16 @@ missing some required interface headers for it, and it's not clear how to make the partalloc support code for it work. --- ./base/allocator/partition_allocator/partition_alloc.gni.orig +++ ./base/allocator/partition_allocator/partition_alloc.gni -@@ -30,7 +30,7 @@ - } +@@ -89,8 +89,7 @@ + # TODO(crbug.com/329199197): Clean this up when experiments are complete. + use_large_empty_slot_span_ring = true - has_memory_tagging = -- current_cpu == "arm64" && is_clang && !is_asan && (is_linux || is_android) -+ false +-has_memory_tagging = current_cpu == "arm64" && is_clang && !is_asan && +- !is_hwasan && (is_linux || is_android) ++has_memory_tagging = false declare_args() { - # Causes all the allocations to be routed via allocator_shim.cc. Usually, + # Debug configuration. --- ./base/allocator/partition_allocator/src/partition_alloc/aarch64_support.h.orig +++ ./base/allocator/partition_allocator/src/partition_alloc/aarch64_support.h @@ -10,7 +10,7 @@ diff --git a/backports/electron/pipewire-1.4.patch b/backports/electron/pipewire-1.4.patch deleted file mode 100644 index ab9c37f..0000000 --- a/backports/electron/pipewire-1.4.patch +++ /dev/null @@ -1,23 +0,0 @@ -Patch-Source: https://webrtc-review.googlesource.com/c/src/+/380500 ---- ---- a/third_party/webrtc/modules/video_capture/linux/pipewire_session.cc -+++ b/third_party/webrtc/modules/video_capture/linux/pipewire_session.cc -@@ -87,7 +87,7 @@ - .param = OnNodeParam, - }; - -- pw_node_add_listener(proxy_, &node_listener_, &node_events, this); -+ pw_node_add_listener(reinterpret_cast(proxy_), &node_listener_, &node_events, this); - } - - // static -@@ -119,7 +119,7 @@ - uint32_t id = info->params[i].id; - if (id == SPA_PARAM_EnumFormat && - info->params[i].flags & SPA_PARAM_INFO_READ) { -- pw_node_enum_params(that->proxy_, 0, id, 0, UINT32_MAX, nullptr); -+ pw_node_enum_params(reinterpret_cast(that->proxy_), 0, id, 0, UINT32_MAX, nullptr); - break; - } - } - diff --git a/backports/electron/yes-musl.patch b/backports/electron/yes-musl.patch deleted file mode 100644 index e860b8e..0000000 --- a/backports/electron/yes-musl.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- ./buildtools/third_party/libc++/__config_site.orig -+++ ./buildtools/third_party/libc++/__config_site -@@ -18,7 +18,7 @@ - /* #undef _LIBCPP_ABI_FORCE_MICROSOFT */ - /* #undef _LIBCPP_HAS_NO_THREADS */ - /* #undef _LIBCPP_HAS_NO_MONOTONIC_CLOCK */ --/* #undef _LIBCPP_HAS_MUSL_LIBC */ -+#define _LIBCPP_HAS_MUSL_LIBC 1 - /* #undef _LIBCPP_HAS_THREAD_API_PTHREAD */ - /* #undef _LIBCPP_HAS_THREAD_API_EXTERNAL */ - /* #undef _LIBCPP_HAS_THREAD_API_WIN32 */ From 1300d8170939a17ada2ebadc440a4e97bac52367 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 24 Nov 2025 13:27:55 -0500 Subject: [PATCH 52/89] backports/element-desktop: upgrade to 1.12.3 --- backports/element-desktop/APKBUILD | 19 +++---- ...{tasje-one-hak.patch => tasje-fixes.patch} | 17 +++++- .../element-desktop/tasje-no-fuses.patch | 52 ------------------- 3 files changed, 25 insertions(+), 63 deletions(-) rename backports/element-desktop/{tasje-one-hak.patch => tasje-fixes.patch} (50%) delete mode 100644 backports/element-desktop/tasje-no-fuses.patch diff --git a/backports/element-desktop/APKBUILD b/backports/element-desktop/APKBUILD index de6a4d7..c5d8fd7 100644 --- a/backports/element-desktop/APKBUILD +++ b/backports/element-desktop/APKBUILD @@ -1,13 +1,13 @@ # Contributor: lauren n. liberda maintainer="lauren n. liberda " pkgname=element-desktop -pkgver=1.11.100 +pkgver=1.12.3 pkgrel=1 pkgdesc="Secure and independent communication, connected via Matrix" url="https://element.io/" arch="aarch64 x86_64" # same as electron license="GPL-3.0-only" -_electronver=35 +_electronver=39 depends=" electron~$_electronver font-inconsolata @@ -36,14 +36,15 @@ source=" add-alpine-targets.patch use-system-headers.patch - tasje-one-hak.patch - tasje-no-fuses.patch + tasje-fixes.patch no-source-maps.patch.web use-system-fonts.patch.web element-desktop " options="net !check" # broken +# Avoid conflicting providers +sonameprefix="$pkgname:" # secfixes: # 1.11.30-r0: @@ -94,6 +95,7 @@ prepare() { msg "Fetch element-desktop dependencies" yarn install --frozen-lockfile --ignore-scripts + patch -p1 -i patches/@types+auto-launch+5.0.5.patch } build() { @@ -148,7 +150,7 @@ package() { cp -r $resources/app.asar.unpacked "$pkgdir"/usr/lib/element-desktop/app.asar.unpacked - install -Dm644 $resources/img/element.png "$pkgdir"/usr/lib/element-desktop/img/element.png + install -Dm644 $resources/build/icon.png "$pkgdir"/usr/lib/element-desktop/build/icon.png install -Dm755 "$srcdir"/$pkgname "$pkgdir"/usr/bin/$pkgname @@ -159,12 +161,11 @@ package() { } sha512sums=" -a8ac5180df3b204fb1947ecaa4786c9c5fdd53ffe705f4dfe97a0b051fa371fd9102c41a898e8783cf25f732674da2d987ef315f2facc7b18b20ef214ea0f81d element-desktop-1.11.100.tar.gz -e3e50fd867f9b7388eb22778ccb97d6504a480ab4e2aa9eba10fd0f4d0324a1525c2afe6c80181567d8e554f03086a9e0994a6221cfcb0ca29700754c8f31cac element-web-1.11.100.tar.gz +f302907165a35f4a4f069f5aec6bc28edeba3d09c75f483c818e3930ceb4e838e5bb91ad9d42019a11a661d6e656da3c1ff25507cbb281c69183aac7d499e882 element-desktop-1.12.3.tar.gz +b845ff71ca39d7ae4dca9bb55e821bfdf911b12de5d012ba55d598f3287046fb2b525bce608925a9fa8fa7d39a4ceed9b4213d5d1c1d0c9e6b9b72154c9a35a5 element-web-1.12.3.tar.gz 4747893ed3e43d3074e9afe1cdd668a6be0de073d439205fe8c38c5e0f4091cc76e3cd15d98818bea5139add29501d8d07e83c58e9da230a4ce5bb538d388f80 add-alpine-targets.patch 755b17f7b828eb6920c06a6950ad4e14c32c99d22e9c05fcef7a081b5d2034adb03db3958aa5209c99fb7201f4d888c2383fc9864c5e743dd33f8b5c4925acd7 use-system-headers.patch -92e69817fdc71f60c5c7dcbd3c7b13428cc18141cf5f27720326390f6817bec85fb1c60f8016b3a8fa275f601b16f646cda12b5e379a349368eef2f801b4de7a tasje-one-hak.patch -a1399662bdbe5e7256d31f7bdc05070e7009d70113699856b025a1d5ab1d9b8bf1020072a08255d4eddab0874044131dec296f98a91ba5c12ca61948b1d18dbe tasje-no-fuses.patch +a5d90dd1ec7aec0dc18b73eb3a6fd51ac1223e381c492d24e7dc0fd2ade955ac727cebbaff6ffa27c7e18d9acf712c709de3f886ee2ddf87ab3b028d3eb461c6 tasje-fixes.patch ec635fde026f7fce8e8cc57960b5b9dcec4418416d4867ed47711422d48f068bb58a3c9ceb7715efc9c177beca3788da6b0babc9b689ea8c0724a0395f2b85f8 no-source-maps.patch.web aaf46476bac403aa5204aa265fcf0654fad4c149fd74d0ec4273c051a5549943384cae3cdd62c5b78fdedfed55c11ecceb898b886e44165cbe7e30953a095cf9 use-system-fonts.patch.web afc588311dc3b566a754e3e7fe6b37b99a06d47b8bbce0ed9acca8ef308fdab0bd1d41b406199e5cbdd86bdce695ff847cd8668857a235cbdc292ad8b899c063 element-desktop diff --git a/backports/element-desktop/tasje-one-hak.patch b/backports/element-desktop/tasje-fixes.patch similarity index 50% rename from backports/element-desktop/tasje-one-hak.patch rename to backports/element-desktop/tasje-fixes.patch index a855eee..0e026c5 100644 --- a/backports/element-desktop/tasje-one-hak.patch +++ b/backports/element-desktop/tasje-fixes.patch @@ -5,9 +5,22 @@ thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: FileAlreadyWritten("/node_modules/keytar/package.json")', src/main.rs:200:18 ``` +console.log interferes with tasje, which reads config from node stdout + --- ./electron-builder.ts.orig +++ ./electron-builder.ts -@@ -74,10 +74,6 @@ +@@ -72,10 +72,6 @@ + console.warn(`No VARIANT_PATH specified, using default variant configuration '${DEFAULT_VARIANT}':`); + } + +-for (const key in variant) { +- console.log(`${key}: ${variant[key]}`); +-} +- + interface Configuration extends BaseConfiguration { + extraMetadata: Partial> & ExtraMetadata; + linux: BaseConfiguration["linux"]; +@@ -112,10 +108,6 @@ }, files: [ "package.json", @@ -17,4 +30,4 @@ FileAlreadyWritten("/node_modules/keytar/package.json")', src/main.rs:200:18 - }, "lib/**", ], - extraResources: [ + extraResources: ["build/icon.*", "webapp.asar"], diff --git a/backports/element-desktop/tasje-no-fuses.patch b/backports/element-desktop/tasje-no-fuses.patch deleted file mode 100644 index 72c515f..0000000 --- a/backports/element-desktop/tasje-no-fuses.patch +++ /dev/null @@ -1,52 +0,0 @@ -we can't do fuses because we ship one binary in the electron package. -and we can't import them here, since they are in devDependencies, which are uninstalled at this stage. - ---- ./electron-builder.ts.orig -+++ ./electron-builder.ts -@@ -2,8 +2,7 @@ - import * as fs from "node:fs"; - import * as path from "node:path"; - import * as plist from "plist"; --import { AfterPackContext, Arch, Configuration as BaseConfiguration, Platform } from "electron-builder"; --import { computeData } from "app-builder-lib/out/asar/integrity"; -+import { Configuration as BaseConfiguration } from "electron-builder"; - import { readFile, writeFile } from "node:fs/promises"; - - /** -@@ -46,26 +45,6 @@ - } & BaseConfiguration["deb"]; - } - --async function injectAsarIntegrity(context: AfterPackContext) { -- const packager = context.packager; -- -- // We only need to re-generate asar on universal Mac builds, due to https://github.com/electron/universal/issues/116 -- if (packager.platform !== Platform.MAC || context.arch !== Arch.universal) return; -- -- const resourcesPath = packager.getResourcesDir(context.appOutDir); -- const asarIntegrity = await computeData({ -- resourcesPath, -- resourcesRelativePath: "Resources", -- resourcesDestinationPath: resourcesPath, -- extraResourceMatchers: [], -- }); -- -- const plistPath = path.join(resourcesPath, "..", "Info.plist"); -- const data = plist.parse(await readFile(plistPath, "utf8")) as unknown as Writable; -- data["ElectronAsarIntegrity"] = asarIntegrity as unknown as Writable; -- await writeFile(plistPath, plist.build(data)); --} -- - /** - * @type {import('electron-builder').Configuration} - * @see https://www.electron.build/configuration/configuration -@@ -89,9 +68,6 @@ - - loadBrowserProcessSpecificV8Snapshot: false, - enableEmbeddedAsarIntegrityValidation: true, -- }, -- afterPack: async (context: AfterPackContext) => { -- await injectAsarIntegrity(context); - }, - files: [ - "package.json", From 061cc8069cdf53b135dd243b333541831c3b5670 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 24 Nov 2025 13:28:10 -0500 Subject: [PATCH 53/89] backports/freetube: upgrade to 0.23.12 --- backports/freetube/APKBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/backports/freetube/APKBUILD b/backports/freetube/APKBUILD index 19bacf0..3ab6bf8 100644 --- a/backports/freetube/APKBUILD +++ b/backports/freetube/APKBUILD @@ -1,7 +1,7 @@ -# Maintainer: Antoine Martin (ayakael) # Contributor: Antoine Martin (ayakael) +# Maintainer: Antoine Martin (ayakael) pkgname=freetube -pkgver=0.23.5 +pkgver=0.23.12 pkgrel=1 pkgdesc="An open source desktop YouTube player built with privacy in mind." arch="x86_64 aarch64" # blocked by electron @@ -50,7 +50,7 @@ package() { } sha512sums=" -5811ac53788a12f94cbd4cec6f7075350c223865cb4cf4436f131b9d1197b89aa5da128d6c531d1e56a0302aa3d2523c7ba8d48edbf5f328be6fed3fbba02752 freetube-0.23.5.tar.gz +e19c7e8de0c6c5bbddcd3da73cd1907cae7157e8f44f550c4a34965b3b4f3c1a180c111a8c497d74a556d6d8e74e9fdd1ed6e064d4fc899f80712a1f187395ae freetube-0.23.12.tar.gz 2ce2effc794bb663789cefe968b5899122127983dbfa1b240aa33a2be383720b18204e6d01b4a550df72956f02b6636b79c93a58f470a970b09b770f5b8f2fc4 freetube.sh d27cb896b65a7e8d52ffe86e5f74eed72b6cf976b28e1a13012d34c7eceba5ff6f20298017738dfa93c0336ffa52b8ee4da7e06b02747062898db7e678819526 tasje-dotdash.patch " From e5734af93ea4a046c256bdfae9f7b71b6b822ab0 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 24 Nov 2025 13:28:33 -0500 Subject: [PATCH 54/89] backports/py3-apsw: upgrade to 3.50.4.0 --- backports/py3-apsw/APKBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/backports/py3-apsw/APKBUILD b/backports/py3-apsw/APKBUILD index 8f034f7..62e95a7 100644 --- a/backports/py3-apsw/APKBUILD +++ b/backports/py3-apsw/APKBUILD @@ -2,7 +2,7 @@ # Maintainer: Francesco Colista pkgname=py3-apsw _pkgname=apsw -pkgver=3.49.1.0 +pkgver=3.50.4.0 pkgrel=0 pkgdesc="Another Python SQLite Wrapper" url="https://github.com/rogerbinns/apsw" @@ -41,6 +41,6 @@ package() { } sha512sums=" -faae9cceb462428345fd2815a970dfc80574848f87bade7cceb09aed17127d020fd16402b3d36afe0fbc6bf707a408feea0ce038486c2a68a2ab1077a9b68d0a py3-apsw-3.49.1.0.zip +71db63b0a7f550c9a5d3f112d47c24953472cc6555f0b57198428997d5cf5acf73629f2da8d5d53a2473067ba19d4b655cce467a5e2267e5bd6e8cf0d9883579 py3-apsw-3.50.4.0.zip 8f3957bd6fecb5660a7cab367043e4ccdacd87d8963bbe41cc3d525265de28f08aa207099658d785be29c5c90b818c1418f766995cd780d02b8e36252a389758 detect-sqlite-config.patch " From fe3b86d53a29916c5876b905c3fe85865d827434 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 24 Nov 2025 13:28:52 -0500 Subject: [PATCH 55/89] backports/signal-desktop: upgrade to 7.76.0 --- backports/signal-desktop/APKBUILD | 70 +-- backports/signal-desktop/ringrtc-use-sh.patch | 14 + backports/signal-desktop/signal-desktop.sh | 2 +- .../signal-disable-updates.patch | 6 +- .../signal-do-not-package-desktop-entry.patch | 16 + .../signal-rollback-locale-changes.patch | 4 +- .../signal-desktop/webrtc-compiler.patch | 18 +- ...ion-that-change-meaning-inside-class.patch | 58 +++ backports/signal-desktop/webrtc-gcc13.patch | 31 -- .../signal-desktop/webrtc-pipewire-1.4.patch | 23 - .../webrtc-rollback-3rdparty-build-gn.patch | 31 -- .../signal-desktop/webrtc-rollback-red.patch | 136 ------ ...pe-do-not-include-linux-prctl-header.patch | 12 + .../signal-desktop/webrtc-shared-libs.patch | 22 +- ...loadtypesuggester-for-pt-assignement.patch | 459 ++++++++++++++++++ 15 files changed, 630 insertions(+), 272 deletions(-) create mode 100644 backports/signal-desktop/ringrtc-use-sh.patch create mode 100644 backports/signal-desktop/signal-do-not-package-desktop-entry.patch create mode 100644 backports/signal-desktop/webrtc-fix-declaration-that-change-meaning-inside-class.patch delete mode 100644 backports/signal-desktop/webrtc-gcc13.patch delete mode 100644 backports/signal-desktop/webrtc-pipewire-1.4.patch delete mode 100644 backports/signal-desktop/webrtc-rollback-3rdparty-build-gn.patch delete mode 100644 backports/signal-desktop/webrtc-rollback-red.patch create mode 100644 backports/signal-desktop/webrtc-rtcbase-platform-thread-type-do-not-include-linux-prctl-header.patch create mode 100644 backports/signal-desktop/webrtc-use-only-payloadtypesuggester-for-pt-assignement.patch diff --git a/backports/signal-desktop/APKBUILD b/backports/signal-desktop/APKBUILD index f1cd958..ede5795 100644 --- a/backports/signal-desktop/APKBUILD +++ b/backports/signal-desktop/APKBUILD @@ -2,14 +2,14 @@ # Contributor: Antoine Martin (ayakael) # Maintainer: Antoine Martin (ayakael) pkgname=signal-desktop -pkgver=7.55.0 -pkgrel=0 +pkgver=7.76.0 +pkgrel=1 pkgdesc="A messaging app for simple private communication with friends" url="https://github.com/signalapp/Signal-Desktop/" # same as electron arch="aarch64 x86_64" license="AGPL-3.0-only" -_llvmver=20 +_llvmver=21 depends=" electron font-barlow @@ -29,7 +29,6 @@ makedepends=" cmake crc32c-dev dav1d-dev - double-conversion-dev electron-dev electron-tasje ffmpeg-dev @@ -37,7 +36,6 @@ makedepends=" glib-dev gn jsoncpp-dev - libavif-dev libjpeg-turbo-dev libepoxy-dev libsecret-dev @@ -67,10 +65,10 @@ makedepends=" options="net !check" # use _check_depends to validate this -_libsignalver=0.71.1 -_ringrtcver=2.51.0 -_webrtcver=6998b -_sqlcipherver=2.0.1 +_libsignalver=0.83.0 +_ringrtcver=2.59.0 +_webrtcver=7339c +_sqlcipherver=2.4.4 source=" https://github.com/signalapp/Signal-Desktop/archive/refs/tags/v$pkgver/Signal-Desktop-$pkgver.tar.gz @@ -86,13 +84,14 @@ source=" signal-show-window-please.patch signal-rollback-locale-changes.patch signal-do-not-package-sqlcipher-deps.patch + signal-do-not-package-desktop-entry.patch ringrtc-webrtc-renamed.patch + ringrtc-use-sh.patch webrtc-shared-libs.patch webrtc-compiler.patch - webrtc-gcc13.patch - webrtc-rollback-red.patch - webrtc-rollback-3rdparty-build-gn.patch - webrtc-pipewire-1.4.patch + webrtc-use-only-payloadtypesuggester-for-pt-assignement.patch + webrtc-fix-declaration-that-change-meaning-inside-class.patch + webrtc-rtcbase-platform-thread-type-do-not-include-linux-prctl-header.patch signal-desktop.sh " @@ -112,6 +111,10 @@ export CFLAGS="${CFLAGS/-g/} -O2 -Wno-error -Wno-deprecated-builtins -Wno-unknow export CXXFLAGS="${CXXFLAGS/-g/} -O2 -Wno-error -Wno-deprecated-builtins -Wno-unknown-warning-option -Wno-builtin-macro-redefined -Wno-deprecated-declarations" export CPPFLAGS="$CPPFLAGS -D__DATE__= -D__TIME__= -D__TIMESTAMP__=" +# stdatomic from compiler-rt uses implicit function declaration +export CFLAGS="$CFLAGS -Wno-implicit-function-declaration" +export CXXFLAGS="$CXXFLAGS -Wno-implicit-function-declaration" + export CARGO_PROFILE_RELEASE_OPT_LEVEL=2 export CARGO_PROFILE_RELEASE_STRIP="symbols" #export RUSTFLAGS="$RUSTFLAGS -C linker=clang" @@ -136,7 +139,7 @@ _update_depends() { -e "s|^_ringrtcver=.*|_ringrtcver=$_ringrtcver|" \ -e "s|^_webrtcver=.*|_webrtcver=$_webrtcver|" \ -e "s|^_sqlcipherver=.*|_sqlcipherver=$_sqlcipherver|" \ - APKBUILD + $APKBUILD } # webrtc only, the other dependencies are fine with tarballs @@ -213,7 +216,6 @@ prepare() { brotli crc32c dav1d - double-conversion ffmpeg flatbuffers fontconfig @@ -223,7 +225,6 @@ prepare() { icu jsoncpp libaom - libavif libdrm libjpeg libpng @@ -304,7 +305,7 @@ prepare() { cd "$builddir"/libsignal/node # fix target - sed -i 's/unknown-linux-gnu/alpine-linux-musl/g' binding.gyp + sed -i 's/unknown-linux-gnu/alpine-linux-musl/g' build_node_bridge.py msg "Installing libsignal js dependencies" yarn --ignore-scripts --frozen-lockfile @@ -329,6 +330,9 @@ build() { rtc_include_ilbc=false rtc_libvpx_build_vp9=true rtc_use_x11=false + rustc_version=\"yes\" + rust_bindgen_root=\"/usr\" + rust_sysroot_absolute=\"/usr\" build_with_mozilla=false chrome_pgo_phase=0 @@ -381,8 +385,7 @@ build() { cd "$builddir"/libsignal/node msg "Building libsignal" - node-gyp configure --nodedir=/usr/include/electron/node_headers --build-from-source - node-gyp build --nodedir=/usr/include/electron/node_headers --build-from-source + npm_config_nodedir=/usr/include/electron/node_headers python3 build_node_bridge.py mkdir -p prebuilds/linux-$chromium_arch mv build/Release/libsignal_client_linux_$chromium_arch.node prebuilds/linux-$chromium_arch/node.napi.node @@ -478,24 +481,25 @@ package() { } sha512sums=" -59e1aae568735976e79ee38d55c87b137f7075063985e72deb42b53af6facd7ed2a8c0912fd86cb88df3182d17c1b58af11bf1501135e6855cfd5ee70270905e Signal-Desktop-7.55.0.tar.gz -3d1b5b84d42b4f6da46a2f626ec72931d3d7432c10c0d43e562851933f6cf0a434630eb5f8bb9a586d27d6ad5a5d8a6c96873dc468e53bbf6297c35a8da090d8 libsignal-0.71.1.tar.gz -8e32d75f9f8216106b6858d9ab58ad53f209408fc155fe27dec184c8c65c9ab5a3a93e9567953f209424ed435ccc6d4903a49a4edae36eb744a897cc02098312 ringrtc-2.51.0.tar.gz -592987c1661de464a4e6dee3081cb5fd32e5afdacdba43d901557a217e62301b4655009ad5bdc0c1dcff5e8b67d7acd68ac953cd638f31196162aa3ccdd9c63b node-sqlcipher-2.0.1.tar.gz -ba02cb0c293210f9a683b0e08c6acbe84f5b78089329ec017b0db3493b38ccf39e92c49c2475dc66b5ce3bfe060686718cb5053787e2d61ed320dadb22891989 webrtc-6998b.tar.zst +c847d3679df77ca137b4c3345b3b941a08639677efcd5eeea6613572fa90b8ad1b8d1d53e077902d4f47c05c480c408787024906d6917dcbf4a840838bf6d79d Signal-Desktop-7.76.0.tar.gz +43271a64f65a4cf0e7855fb84476ff811ef248665cb74fdaa9ce12b02d2039abdf8fca28554e7e884eabaa9bdd77e8f5383e6354e589436671675ddab7194d81 libsignal-0.83.0.tar.gz +ba4a1850bd096470a6370a0bf730550f64df4a2349cacca3b4864ef1a3a04713dd200307b9ad7ba47425322573148d6bd2ce85c11c2a49232d41e739ef5e788d ringrtc-2.59.0.tar.gz +79dd21548329b4ee409fa73b013c18ed4e85038aeef7a4cfe196fd6b5113279da8ad287a259fa6a6b546b52a5a6dd6ae2cb1050007043d25f76d7917dbbbc02d node-sqlcipher-2.4.4.tar.gz +06ffb4cdb82f818cc419d42ff2de03977d7e94c5f3eb8ac8a401bcb52ec38fa988c5d757f4bd79e5d9968fa83754fc9046180c950961c90a59eeb6130bf5552f webrtc-7339c.tar.zst 8d2d2d82c8546c2dd1fef161b61df79918f8c22235a56a46adb375a0beb4acef12c5fe53e67242a4be97f77adc522ff79b47949c352956c742a70d50f4179f7f libsignal-auditable.patch 7ee747c8aaa9d6e9149fe0a031e3d4cc9e9c08f22c42076bd05e2acb86952f8170032613d13a53716010edfa3f26ad97b530e82460318eb46a42e28cf5faeb9d signal-use-system-sqlcipher.patch -fc2af28645364cd85c106304a26811b036f6be048c52137fbbcc112870a84132a181f532563e0569b560fde3cf8c02480666a9b01d804b0008f97c728005b1c7 signal-disable-updates.patch +ef3622da416a5bd2d4bea4f2a4fbb21a985f660d4acc17bbe66ce51ac1180ab92c0c843a5414ff56ea1deda87c2b0f611a299ca8ebe4d6a24df53626b36ceea8 signal-disable-updates.patch 853de84d636f730694f17bcec63463fa7bfbdd0a7f7a64618a8fc6bc523ce1a9854b4c651753735af735c18101295d3efbe54f83ae0bccbed83c8c1fee3e7049 signal-update-links.patch 882d6889b23a3ebc6449c8b6acec8c3853674a7e94f066d65b57bab674ba8c11d582ba2c760825cb67b9202716e6d8b7123001d1e9f9229e49a0b77e9d978265 signal-show-window-please.patch -aca92e4de6cd005d660d7e8b99607de96ca2d7dc220e3465247d517e915e4d41a4b0eb519e85c5eca1c81cd8bac9821acd03ff57f1603918987829c6ea7757b4 signal-rollback-locale-changes.patch +3dd3bf2f6925e2672a20ef56bbac519099d54e912e5a434a0649ea152db5039dbe1bbade3430b485ae9a6085d747dd88602d4efc5198d5a4dbf1b8359de11f94 signal-rollback-locale-changes.patch 961568777b86f8fbcc73360252123686c9d1e16b2650f23d8afbc6d7580d53024f81b62e9e9cbdcd0031b5cf99854bd47c6dd4580197f2b27b8b4cbb51c6c9c9 signal-do-not-package-sqlcipher-deps.patch +d8cafd4ae1f7438417f5c414d68a175c3d24b66a14b9f3b8ca9c9acae2b2eaa68985ee81c1df7d754a206ff1c9b02929803440fb0734db38b6ac9ab3e34205b0 signal-do-not-package-desktop-entry.patch 02a648bb8541a39c75fec2db39f024a27976afca41908eefa2fe1f2e30b05b5d59f980ccc930021c0b0c09ba8b0cbcae071e9f0dd530543c667adbc4272af552 ringrtc-webrtc-renamed.patch -98a7e4df27c3ed56c5968ebc3ae8e08bfb54362d0c910f9af1d414079a6d5fe0f18aa570ae3c38042f4691af6a130cb3ff689625e26a3987720dd319a5f587b1 webrtc-shared-libs.patch -897174fa3b1eaa74a3b2d7d861863a9f60550ddb0d7be700cd590600efdc3bd962f52c21e371276eaf8d5657c98fe8ade9853b0197b61a68d5dce6fa03b5899b webrtc-compiler.patch -3f1095861a79862ab5a55c86d7e353d272974617afba39e4d4441024bede8d7b9b8e122da90d56a9c3c0965171803d6b9e29e91d78167a08c6bcc86b3eedab18 webrtc-gcc13.patch -8f53dcf3264c5cec338f037e57a7770ec939ee06dfb0c5dfeab23967a3a64d3f861a6b5419766ac892676036b4522bce2f47279ca3658b5c0b6a31c82ac05053 webrtc-rollback-red.patch -f8bd574a0de077a643ced26e8a0e3f162e014bbf91c957bbefd113883a70e2b63e483bf400b7e2da8d09edfe76d4f6a257f194a14124f344f1625c5632d12acb webrtc-rollback-3rdparty-build-gn.patch -7fa0344a144d5b8f05d0962799b8ce1dbe8f2d403a311d4fbf802a2d032e6586a1268387052b529e809c4740a79d6737a63d7e37ea8902ce926b74309dd44fc3 webrtc-pipewire-1.4.patch -87534e7b5ad7365509eab75629e6bd1a9ed61ee92f7e358405a0abaf0df57de14623fb3894eb082f8785422e5c087e1c50f9e2e5cafbb2529591fd7bf447f7f5 signal-desktop.sh +19d2e07bdc0b160ec542fcb0a3d94ae1e37dcb1b3455e57b278cf074f8aac625341b47f4f06a1f7eb5a197cb0f11754de8785ffd10876852972cbfafdc2615db ringrtc-use-sh.patch +a9374040dcbc9203c8a3b4ad1cf97d58805cd4755f4f585a988b113697ea97d5900ad68f6a30aa0621f34ab54ae98984a8ce228a2d08186ee1bf3384abf3f364 webrtc-shared-libs.patch +8ba740f0552872ddf383545a6bb99bf7bcdd2610cee51c6e69dc667893006facd5d72f62274e25c1a58e1a58c8e8b0b5303b648e4c74a71925639cc9691c72c4 webrtc-compiler.patch +d44f62e4ccf2d9094d6ed217b24fa2cde276c7f64f4d6fd26e84dfc021ea667abcb21f9e4666cfd0d88d6ee0a6b1a20b6cc68c8720462711e3b5451e263f6c4a webrtc-use-only-payloadtypesuggester-for-pt-assignement.patch +ace87a2be03c6965012a87a10918c5923b10d5e74a7169c1e1384c15b34a367d0c47e806764c368cc30dad01a3dce54b50587abea9831130178db3806619abc8 webrtc-fix-declaration-that-change-meaning-inside-class.patch +d17ecd89e867b24a21144d267e1bf7d09e3898018a0f9fcd87084b9de8091bc56f904a1cabdc487a8e46ab509c11ddd363c574d75d85a79e3c4d9424a13b2093 webrtc-rtcbase-platform-thread-type-do-not-include-linux-prctl-header.patch +8e1de53ec1608fa05972af605213e8423b8f88cfd8d6a1989bdcaf77ed1420871c39efa15c56ffeccb6ff86677acc5bc436020f3554bee4f94930c7d9f4e16b6 signal-desktop.sh " diff --git a/backports/signal-desktop/ringrtc-use-sh.patch b/backports/signal-desktop/ringrtc-use-sh.patch new file mode 100644 index 0000000..53ec09c --- /dev/null +++ b/backports/signal-desktop/ringrtc-use-sh.patch @@ -0,0 +1,14 @@ +diff --git a/ringrtc/src/node/package.json.orig b/ringrtc/src/node/package.json +index 366caf2927f..eedeca3895e 100644 +--- a/ringrtc/src/node/package.json.orig ++++ b/ringrtc/src/node/package.json +@@ -16,7 +16,7 @@ + "virtual_audio": "dist/bin/virtual_audio.sh" + }, + "scripts": { +- "build": "tsc && bash scripts/build-help.sh", ++ "build": "tsc && sh scripts/build-help.sh", + "clean": "rimraf dist", + "test": "electron-mocha --renderer --recursive dist/test --timeout 10000 --require source-map-support/register", + "eslint": "eslint .", + diff --git a/backports/signal-desktop/signal-desktop.sh b/backports/signal-desktop/signal-desktop.sh index 370469c..3904d51 100755 --- a/backports/signal-desktop/signal-desktop.sh +++ b/backports/signal-desktop/signal-desktop.sh @@ -3,4 +3,4 @@ # app chooses config (including used endpoints) based on this export NODE_ENV=production -exec electron /usr/lib/signal-desktop/app.asar +exec electron /usr/lib/signal-desktop/app.asar "$@" diff --git a/backports/signal-desktop/signal-disable-updates.patch b/backports/signal-desktop/signal-disable-updates.patch index f5496f4..3d8fc38 100644 --- a/backports/signal-desktop/signal-disable-updates.patch +++ b/backports/signal-desktop/signal-disable-updates.patch @@ -1,9 +1,11 @@ ---- a/Signal-Desktop/config/production.json +diff --git a/Signal-Desktop/config/production.json.orig b/Signal-Desktop/config/production.json +index ee1fc6523d8..6fcb97f3a36 100644 +--- a/Signal-Desktop/config/production.json.orig +++ b/Signal-Desktop/config/production.json @@ -16,5 +16,5 @@ - "serverTrustRoot": "BXu6QIKVz5MA8gstzfOgRQGqyLqOwNKHL6INkv3IHWMF", "genericServerPublicParams": "AByD873dTilmOSG0TjKrvpeaKEsUmIO8Vx9BeMmftwUs9v7ikPwM8P3OHyT0+X3EUMZrSe9VUp26Wai51Q9I8mdk0hX/yo7CeFGJyzoOqn8e/i4Ygbn5HoAyXJx5eXfIbqpc0bIxzju4H/HOQeOpt6h742qii5u/cbwOhFZCsMIbElZTaeU+BWMBQiZHIGHT5IE0qCordQKZ5iPZom0HeFa8Yq0ShuEyAl0WINBiY6xE3H/9WnvzXBbMuuk//eRxXgzO8ieCeK8FwQNxbfXqZm6Ro1cMhCOF3u7xoX83QhpN", "backupServerPublicParams": "AJwNSU55fsFCbgaxGRD11wO1juAs8Yr5GF8FPlGzzvdJJIKH5/4CC7ZJSOe3yL2vturVaRU2Cx0n751Vt8wkj1bozK3CBV1UokxV09GWf+hdVImLGjXGYLLhnI1J2TWEe7iWHyb553EEnRb5oxr9n3lUbNAJuRmFM7hrr0Al0F0wrDD4S8lo2mGaXe0MJCOM166F8oYRQqpFeEHfiLnxA1O8ZLh7vMdv4g9jI5phpRBTsJ5IjiJrWeP0zdIGHEssUeprDZ9OUJ14m0v61eYJMKsf59Bn+mAT2a7YfB+Don9O", + "stripePublishableKey": "pk_live_6cmGZopuTsV8novGgJJW9JpC00vLIgtQ1D", - "updatesEnabled": true + "updatesEnabled": false } diff --git a/backports/signal-desktop/signal-do-not-package-desktop-entry.patch b/backports/signal-desktop/signal-do-not-package-desktop-entry.patch new file mode 100644 index 0000000..7a973a1 --- /dev/null +++ b/backports/signal-desktop/signal-do-not-package-desktop-entry.patch @@ -0,0 +1,16 @@ +diff --git a/Signal-Desktop/package.json.orig b/Signal-Desktop/package.json +index 832035e..e6ac14c 100644 +--- a/Signal-Desktop/package.json.orig ++++ b/Signal-Desktop/package.json +@@ -519,11 +519,6 @@ + }, + "linux": { + "category": "Network;InstantMessaging;Chat", +- "desktop": { +- "entry": { +- "StartupWMClass": "signal" +- } +- }, + "target": [ + "deb" + ], diff --git a/backports/signal-desktop/signal-rollback-locale-changes.patch b/backports/signal-desktop/signal-rollback-locale-changes.patch index fce29a2..97e2cf9 100644 --- a/backports/signal-desktop/signal-rollback-locale-changes.patch +++ b/backports/signal-desktop/signal-rollback-locale-changes.patch @@ -42,7 +42,7 @@ index a63eef4079d..2a959da4d0d 100644 -import { app } from 'electron'; +import { join } from 'path'; +import { readFileSync } from 'fs'; - import { merge } from 'lodash'; + import lodash from 'lodash'; import * as LocaleMatcher from '@formatjs/intl-localematcher'; import { z } from 'zod'; @@ -16,9 +15,6 @@ import type { LocalizerType } from '../ts/types/Util'; @@ -129,7 +129,7 @@ index 7187d287acc..9a17d638f44 100644 import { readdir, mkdir, readFile, writeFile } from 'node:fs/promises'; import { join, dirname } from 'node:path'; -import pMap from 'p-map'; --import { isLocaleMessageType } from '../util/setupI18nMain'; +-import { isLocaleMessageType } from '../util/setupI18nMain.js'; - -async function compact({ - sourceDir, diff --git a/backports/signal-desktop/webrtc-compiler.patch b/backports/signal-desktop/webrtc-compiler.patch index d27f61f..a3fb742 100644 --- a/backports/signal-desktop/webrtc-compiler.patch +++ b/backports/signal-desktop/webrtc-compiler.patch @@ -29,27 +29,27 @@ index 88109264ea9..192a3f3119e 100644 } if (!optimize_for_size) { -@@ -1241,8 +1241,8 @@ config("compiler_cpu_abi") { - } +@@ -1303,8 +1303,8 @@ config("compiler_cpu_abi") { + ] } else if (current_cpu == "arm") { - if (is_clang && !is_android && !is_nacl && !is_chromeos_device) { + if (is_clang && !is_android && !is_chromeos_device) { - cflags += [ "--target=arm-linux-gnueabihf" ] - ldflags += [ "--target=arm-linux-gnueabihf" ] + cflags += [ "--target=arm-alpine-linux-gnueabihf" ] + ldflags += [ "--target=arm-alpine-linux-gnueabihf" ] } - if (!is_nacl) { - cflags += [ -@@ -1256,8 +1256,8 @@ config("compiler_cpu_abi") { + cflags += [ + "-march=$arm_arch", +@@ -1315,8 +1315,8 @@ config("compiler_cpu_abi") { + } } else if (current_cpu == "arm64") { - if (is_clang && !is_android && !is_nacl && !is_fuchsia && - !is_chromeos_device) { + if (is_clang && !is_android && !is_fuchsia && !is_chromeos_device) { - cflags += [ "--target=aarch64-linux-gnu" ] - ldflags += [ "--target=aarch64-linux-gnu" ] + cflags += [ "--target=aarch64-alpine-linux-gnu" ] + ldflags += [ "--target=aarch64-alpine-linux-gnu" ] } - } else if (current_cpu == "mipsel" && !is_nacl) { + } else if (current_cpu == "mipsel") { ldflags += [ "-Wl,--hash-style=sysv" ] @@ -1267,8 +1267,8 @@ config("compiler_cpu_abi") { cflags += [ "--target=mipsel-linux-android" ] diff --git a/backports/signal-desktop/webrtc-fix-declaration-that-change-meaning-inside-class.patch b/backports/signal-desktop/webrtc-fix-declaration-that-change-meaning-inside-class.patch new file mode 100644 index 0000000..565f8d2 --- /dev/null +++ b/backports/signal-desktop/webrtc-fix-declaration-that-change-meaning-inside-class.patch @@ -0,0 +1,58 @@ +diff --git a/webrtc/p2p/base/port_interface.h b/webrtc/p2p/base/port_interface.h +index 2335fc2..1484a14 100644 +--- a/webrtc/p2p/base/port_interface.h ++++ b/webrtc/p2p/base/port_interface.h +@@ -55,7 +55,7 @@ + virtual ~PortInterface(); + + virtual IceCandidateType Type() const = 0; +- virtual const Network* Network() const = 0; ++ virtual const ::webrtc::Network* Network() const = 0; + + // Methods to set/get ICE role and tiebreaker values. + virtual void SetIceRole(IceRole role) = 0; +diff --git a/webrtc/pc/codec_vendor.h b/webrtc/pc/codec_vendor.h +index aaddc4f..719a082 100644 +--- a/webrtc/pc/codec_vendor.h ++++ b/webrtc/pc/codec_vendor.h +@@ -119,7 +119,7 @@ + class CodecLookupHelper { + public: + virtual ~CodecLookupHelper() = default; +- virtual PayloadTypeSuggester* PayloadTypeSuggester() = 0; ++ virtual ::webrtc::PayloadTypeSuggester* PayloadTypeSuggester() = 0; + // Look up the codec vendor to use, depending on context. + // This call may get additional arguments in the future, to aid + // in selection of the correct context. +diff --git a/webrtc/pc/jsep_transport.h b/webrtc/pc/jsep_transport.h +index 017aad7..50dc991 100644 +--- a/webrtc/pc/jsep_transport.h ++++ b/webrtc/pc/jsep_transport.h +@@ -115,14 +115,12 @@ + } + + RTCError SetLocalJsepTransportDescription( +- const JsepTransportDescription& jsep_description, +- SdpType type); ++ const JsepTransportDescription& jsep_description, SdpType type); + + // Set the remote TransportDescription to be used by DTLS and ICE channels + // that are part of this Transport. + RTCError SetRemoteJsepTransportDescription( +- const JsepTransportDescription& jsep_description, +- SdpType type); ++ const JsepTransportDescription& jsep_description, SdpType type); + RTCError AddRemoteCandidates(const Candidates& candidates); + + // Set the "needs-ice-restart" flag as described in JSEP. After the flag is +@@ -204,7 +202,9 @@ + return rtp_dtls_transport_; + } + +- scoped_refptr SctpTransport() const { return sctp_transport_; } ++ scoped_refptr<::webrtc::SctpTransport> SctpTransport() const { ++ return sctp_transport_; ++ } + + // TODO(bugs.webrtc.org/9719): Delete method, update callers to use + // SctpTransport() instead. diff --git a/backports/signal-desktop/webrtc-gcc13.patch b/backports/signal-desktop/webrtc-gcc13.patch deleted file mode 100644 index 2144a30..0000000 --- a/backports/signal-desktop/webrtc-gcc13.patch +++ /dev/null @@ -1,31 +0,0 @@ ---- ./webrtc/rtc_base/system/file_wrapper.h.orig -+++ ./webrtc/rtc_base/system/file_wrapper.h -@@ -13,6 +13,7 @@ - - #include - #include -+#include - - #include - ---- ./webrtc/modules/audio_coding/neteq/reorder_optimizer.cc.orig -+++ ./webrtc/modules/audio_coding/neteq/reorder_optimizer.cc -@@ -11,6 +11,7 @@ - #include "modules/audio_coding/neteq/reorder_optimizer.h" - - #include -+#include - #include - #include - ---- ./webrtc/rtc_base/ssl_stream_adapter.h.orig -+++ ./webrtc/rtc_base/ssl_stream_adapter.h -@@ -24,6 +24,7 @@ - #include "rtc_base/ssl_certificate.h" - #include "rtc_base/ssl_identity.h" - #include "rtc_base/stream.h" -+#include - - namespace rtc { - - diff --git a/backports/signal-desktop/webrtc-pipewire-1.4.patch b/backports/signal-desktop/webrtc-pipewire-1.4.patch deleted file mode 100644 index 2c39a9e..0000000 --- a/backports/signal-desktop/webrtc-pipewire-1.4.patch +++ /dev/null @@ -1,23 +0,0 @@ -Patch-Source: https://webrtc-review.googlesource.com/c/src/+/380500 ---- ---- a/webrtc/modules/video_capture/linux/pipewire_session.cc -+++ b/webrtc/modules/video_capture/linux/pipewire_session.cc -@@ -87,7 +87,7 @@ - .param = OnNodeParam, - }; - -- pw_node_add_listener(proxy_, &node_listener_, &node_events, this); -+ pw_node_add_listener(reinterpret_cast(proxy_), &node_listener_, &node_events, this); - } - - // static -@@ -119,7 +119,7 @@ - uint32_t id = info->params[i].id; - if (id == SPA_PARAM_EnumFormat && - info->params[i].flags & SPA_PARAM_INFO_READ) { -- pw_node_enum_params(that->proxy_, 0, id, 0, UINT32_MAX, nullptr); -+ pw_node_enum_params(reinterpret_cast(that->proxy_), 0, id, 0, UINT32_MAX, nullptr); - break; - } - } - diff --git a/backports/signal-desktop/webrtc-rollback-3rdparty-build-gn.patch b/backports/signal-desktop/webrtc-rollback-3rdparty-build-gn.patch deleted file mode 100644 index 6352e27..0000000 --- a/backports/signal-desktop/webrtc-rollback-3rdparty-build-gn.patch +++ /dev/null @@ -1,31 +0,0 @@ -diff --git a/webrtc/third_party/BUILD.gn b/webrtc/third_party/BUILD.gn -index 256fd092e2e..4ce797ebad7 100644 ---- a/webrtc/third_party/BUILD.gn -+++ b/webrtc/third_party/BUILD.gn -@@ -55,12 +55,10 @@ group("jpeg_includes") { - component("freetype_harfbuzz") { - public_configs = [] - public_deps = [] -- if (enable_freetype) { -- if (use_system_freetype) { -- public_configs += [ "//build/linux:freetype_from_pkgconfig" ] -- } else { -- public_deps += [ "//third_party/freetype:freetype_source" ] -- } -+ if (use_system_freetype) { -+ public_configs += [ "//build/linux:freetype_from_pkgconfig" ] -+ } else { -+ public_deps += [ "//third_party/freetype:freetype_source" ] - } - if (use_system_harfbuzz) { - public_configs += [ "//third_party/harfbuzz-ng:harfbuzz_from_pkgconfig" ] -@@ -71,8 +69,5 @@ component("freetype_harfbuzz") { - - buildflag_header("freetype_buildflags") { - header = "freetype_buildflags.h" -- flags = [ -- "USE_SYSTEM_FREETYPE=$use_system_freetype", -- "ENABLE_FREETYPE=$enable_freetype", -- ] -+ flags = [ "USE_SYSTEM_FREETYPE=$use_system_freetype" ] - } diff --git a/backports/signal-desktop/webrtc-rollback-red.patch b/backports/signal-desktop/webrtc-rollback-red.patch deleted file mode 100644 index c11eb07..0000000 --- a/backports/signal-desktop/webrtc-rollback-red.patch +++ /dev/null @@ -1,136 +0,0 @@ -diff --git a/webrtc/ringrtc/rffi/src/sdp_observer.cc b/webrtc/ringrtc/rffi/src/sdp_observer.cc -index d60f3d5e7ba..d561dedd1d0 100644 ---- a/webrtc/ringrtc/rffi/src/sdp_observer.cc -+++ b/webrtc/ringrtc/rffi/src/sdp_observer.cc -@@ -6,7 +6,7 @@ - #include "rffi/api/sdp_observer_intf.h" - #include "rffi/src/ptr.h" - #include "rffi/src/sdp_observer.h" --#include "third_party/re2/src/re2/re2.h" -+#include - - namespace webrtc { - namespace rffi { -@@ -29,8 +29,8 @@ void CreateSessionDescriptionObserverRffi::OnSuccess(SessionDescriptionInterface - // TODO tweak the response a little - std::string sdp; - if (session_description->ToString(&sdp)) { -- static LazyRE2 ssrc_re = {".+urn:ietf:params:rtp-hdrext:ssrc-audio-level.*\r?\n"}; -- RE2::Replace(&sdp, *ssrc_re, ""); -+ sdp = std::regex_replace(sdp, std::regex("(a=fmtp:111 ((?!cbr=).)*)\r?\n"), "$1;cbr=1\r\n"); -+ sdp = std::regex_replace(sdp, std::regex(".+urn:ietf:params:rtp-hdrext:ssrc-audio-level.*\r?\n"), ""); - - std::unique_ptr session_description2 = CreateSessionDescription(session_description->GetType(), sdp); - delete session_description; -diff --git a/webrtc/ringrtc/rffi/BUILD.gn b/webrtc/ringrtc/rffi/BUILD.gn -index 4564e734e63..341535b0fc7 100644 ---- a/webrtc/ringrtc/rffi/BUILD.gn -+++ b/webrtc/ringrtc/rffi/BUILD.gn -@@ -58,7 +58,6 @@ if (is_android) { - "${android_sdk}:libjingle_peerconnection_jni", - "${android_sdk}:libjingle_peerconnection_metrics_default_jni", - "//pc:libjingle_peerconnection", -- "//third_party/re2", - ] - output_extension = "so" - } -@@ -78,7 +77,6 @@ if (is_ios) { - - deps = [ - "//third_party/libyuv", -- "//third_party/re2", - ] - } - } -@@ -94,7 +92,6 @@ if (is_linux || is_mac || is_win) { - deps = [ - "//sdk:media_constraints", - "//media:rtc_simulcast_encoder_adapter", -- "//third_party/re2", - ] - } - } -diff --git a/webrtc/ringrtc/rffi/api/peer_connection_intf.h b/webrtc/ringrtc/rffi/api/peer_connection_intf.h -index 66958254fed..4cd223beb93 100644 ---- a/webrtc/ringrtc/rffi/api/peer_connection_intf.h -+++ b/webrtc/ringrtc/rffi/api/peer_connection_intf.h -@@ -105,6 +105,7 @@ RUSTEXPORT webrtc::SessionDescriptionInterface* - Rust_sessionDescriptionFromV4(bool offer, - const RffiConnectionParametersV4* v4_borrowed, - bool enable_tcc_audio, -+ bool enable_red_audio, - bool enable_vp9); - - RUSTEXPORT void -diff --git a/webrtc/ringrtc/rffi/src/peer_connection.cc b/webrtc/ringrtc/rffi/src/peer_connection.cc -index 9db5ed8219d..0714b3589e3 100644 ---- a/webrtc/ringrtc/rffi/src/peer_connection.cc -+++ b/webrtc/ringrtc/rffi/src/peer_connection.cc -@@ -42,6 +42,7 @@ int VIDEO_LAYERS_ALLOCATION_EXT_ID = 14; - // 101 used by connection.rs - int DATA_PT = 101; - int OPUS_PT = 102; -+int OPUS_RED_PT = 105; - int VP8_PT = 108; - int VP8_RTX_PT = 118; - int VP9_PT = 109; -@@ -317,12 +318,14 @@ RUSTEXPORT webrtc::SessionDescriptionInterface* - Rust_sessionDescriptionFromV4(bool offer, - const RffiConnectionParametersV4* v4_borrowed, - bool enable_tcc_audio, -+ bool enable_red_audio, - bool enable_vp9) { - // Major changes from the default WebRTC behavior: - // 1. We remove all codecs except Opus, VP8, and VP9 - // 2. We remove all header extensions except for transport-cc, video orientation, - // and abs send time. - // 3. Opus CBR and DTX is enabled. -+ // 4. RED is enabled for audio. - - // For some reason, WebRTC insists that the video SSRCs for one side don't - // overlap with SSRCs from the other side. To avoid potential problems, we'll give the -@@ -361,6 +364,15 @@ Rust_sessionDescriptionFromV4(bool offer, - auto video = std::make_unique(); - set_rtp_params(video.get()); - -+ // Turn on the RED "meta codec" for Opus redundancy. -+ auto opus_red = cricket::CreateAudioCodec(OPUS_RED_PT, cricket::kRedCodecName, 48000, 2); -+ opus_red.SetParam("", std::to_string(OPUS_PT) + "/" + std::to_string(OPUS_PT)); -+ -+ if (enable_red_audio) { -+ // Add RED before Opus to use it by default when sending. -+ audio->AddCodec(opus_red); -+ } -+ - auto opus = cricket::CreateAudioCodec(OPUS_PT, cricket::kOpusCodecName, 48000, 2); - // These are the current defaults for WebRTC - // We set them explicitly to avoid having the defaults change on us. -@@ -378,6 +390,11 @@ Rust_sessionDescriptionFromV4(bool offer, - opus.AddFeedbackParam(cricket::FeedbackParam(cricket::kRtcpFbParamTransportCc, cricket::kParamValueEmpty)); - audio->AddCodec(opus); - -+ if (!enable_red_audio) { -+ // Add RED after Opus so that RED packets can at least be decoded properly if received. -+ audio->AddCodec(opus_red); -+ } -+ - auto add_video_feedback_params = [] (cricket::Codec* video_codec) { - video_codec->AddFeedbackParam(cricket::FeedbackParam(cricket::kRtcpFbParamTransportCc, cricket::kParamValueEmpty)); - video_codec->AddFeedbackParam(cricket::FeedbackParam(cricket::kRtcpFbParamCcm, cricket::kRtcpFbCcmParamFir)); -@@ -589,9 +606,16 @@ CreateSessionDescriptionForGroupCall(bool local, - opus.SetParam("cbr", "1"); - opus.AddFeedbackParam(cricket::FeedbackParam(cricket::kRtcpFbParamTransportCc, cricket::kParamValueEmpty)); - -+ // Turn on the RED "meta codec" for Opus redundancy. -+ auto opus_red = cricket::CreateAudioCodec(OPUS_RED_PT, cricket::kRedCodecName, 48000, 2); -+ opus_red.SetParam("", std::to_string(OPUS_PT) + "/" + std::to_string(OPUS_PT)); -+ -+ // Add RED after Opus so that RED packets can at least be decoded properly if received. - local_audio->AddCodec(opus); -+ local_audio->AddCodec(opus_red); - for (auto& remote_audio : remote_audios) { - remote_audio->AddCodec(opus); -+ remote_audio->AddCodec(opus_red); - } - - auto add_video_feedback_params = [] (cricket::Codec* video_codec) { diff --git a/backports/signal-desktop/webrtc-rtcbase-platform-thread-type-do-not-include-linux-prctl-header.patch b/backports/signal-desktop/webrtc-rtcbase-platform-thread-type-do-not-include-linux-prctl-header.patch new file mode 100644 index 0000000..c2279a0 --- /dev/null +++ b/backports/signal-desktop/webrtc-rtcbase-platform-thread-type-do-not-include-linux-prctl-header.patch @@ -0,0 +1,12 @@ +diff --git a/webrtc/rtc_base/platform_thread_types.cc.orig b/webrtc/rtc_base/platform_thread_types.cc +index 20bf4af..482b15f 100644 +--- a/webrtc/rtc_base/platform_thread_types.cc.orig ++++ b/webrtc/rtc_base/platform_thread_types.cc +@@ -12,7 +12,6 @@ + + // IWYU pragma: begin_keep + #if defined(WEBRTC_LINUX) +-#include + #include + #include + diff --git a/backports/signal-desktop/webrtc-shared-libs.patch b/backports/signal-desktop/webrtc-shared-libs.patch index f4bf714..04b55c0 100644 --- a/backports/signal-desktop/webrtc-shared-libs.patch +++ b/backports/signal-desktop/webrtc-shared-libs.patch @@ -18,10 +18,10 @@ # Only the root target and the test should depend on this. visibility = [ "//:default", -@@ -472,7 +472,6 @@ - ] +@@ -530,7 +530,6 @@ if (!build_with_chromium) { sources = [] + - complete_static_lib = true suppressed_configs += [ "//build/config/compiler:thin_archive" ] defines = [] @@ -42,12 +42,12 @@ diff --git a/webrtc/third_party/googletest/BUILD.gn.orig b/webrtc/third_party/go index b7dc621..367f929 100644 --- a/webrtc/third_party/googletest/BUILD.gn.orig +++ b/webrtc/third_party/googletest/BUILD.gn -@@ -133,7 +133,6 @@ source_set("gtest") { +@@ -129,7 +128,6 @@ source_set("gtest") { # googletest only needs `absl`, but this makes gn check happier. deps = [ "//third_party/abseil-cpp:absl_full" ] - public_deps = [ "//third_party/re2" ] - if (is_nacl || !build_with_chromium) { + if (!build_with_chromium) { defines += [ "GTEST_DISABLE_PRINT_STACK_TRACE" ] sources -= [ diff --git a/webrtc/third_party/fuzztest/BUILD.gn.orig b/webrtc/third_party/fuzztest/BUILD.gn @@ -62,3 +62,17 @@ index 57ee790..ba1d297 100644 # For protobuf mutators "$protobuf_target_prefix:protobuf_lite", +diff --git a/webrtc/third_party/BUILD.gn b/webrtc/third_party/BUILD.gn +index 256fd092e2e..4ce797ebad7 100644 +--- a/webrtc/third_party/BUILD.gn ++++ b/webrtc/third_party/BUILD.gn +@@ -71,8 +69,5 @@ component("freetype_harfbuzz") { + + buildflag_header("freetype_buildflags") { + header = "freetype_buildflags.h" +- flags = [ +- "USE_SYSTEM_FREETYPE=$use_system_freetype", +- "ENABLE_FREETYPE=$enable_freetype", +- ] ++ flags = [ "USE_SYSTEM_FREETYPE=$use_system_freetype" ] + } diff --git a/backports/signal-desktop/webrtc-use-only-payloadtypesuggester-for-pt-assignement.patch b/backports/signal-desktop/webrtc-use-only-payloadtypesuggester-for-pt-assignement.patch new file mode 100644 index 0000000..1504f81 --- /dev/null +++ b/backports/signal-desktop/webrtc-use-only-payloadtypesuggester-for-pt-assignement.patch @@ -0,0 +1,459 @@ +diff --git a/webrtc/pc/codec_vendor.cc b/webrtc/pc/codec_vendor.cc +index 42d52f6..e45516c 100644 +--- a/webrtc/pc/codec_vendor.cc ++++ b/webrtc/pc/codec_vendor.cc +@@ -39,7 +39,6 @@ + #include "pc/rtp_media_utils.h" + #include "pc/session_description.h" + #include "pc/typed_codec_vendor.h" +-#include "pc/used_ids.h" + #include "rtc_base/checks.h" + #include "rtc_base/logging.h" + #include "rtc_base/string_encode.h" +@@ -54,11 +53,6 @@ + + namespace { + +-using webrtc::PayloadTypeSuggester; +-using webrtc::RTCError; +-using webrtc::RTCErrorOr; +-using webrtc::RtpTransceiverDirection; +- + bool IsRtxCodec(const RtpCodecCapability& capability) { + return absl::EqualsIgnoreCase(capability.name, kRtxCodecName); + } +@@ -75,8 +69,7 @@ + std::optional FindMatchingCodec(const CodecList& codecs1, + const CodecList& codecs2, + const Codec& codec_to_match) { +- return webrtc::FindMatchingCodec(codecs1.codecs(), codecs2.codecs(), +- codec_to_match); ++ return FindMatchingCodec(codecs1.codecs(), codecs2.codecs(), codec_to_match); + } + + void StripCNCodecs(CodecList& audio_codecs) { +@@ -105,7 +98,7 @@ + } + + int associated_pt; +- if (!webrtc::FromString(associated_pt_str, &associated_pt)) { ++ if (!FromString(associated_pt_str, &associated_pt)) { + RTC_LOG(LS_WARNING) << "Couldn't convert payload type " << associated_pt_str + << " of RTX codec " << rtx_codec.id + << " to an integer."; +@@ -136,14 +129,14 @@ + return nullptr; + } + +- std::vector redundant_payloads = webrtc::split(fmtp, '/'); ++ std::vector redundant_payloads = split(fmtp, '/'); + if (redundant_payloads.size() < 2) { + return nullptr; + } + + absl::string_view associated_pt_str = redundant_payloads[0]; + int associated_pt; +- if (!webrtc::FromString(associated_pt_str, &associated_pt)) { ++ if (!FromString(associated_pt_str, &associated_pt)) { + RTC_LOG(LS_WARNING) << "Couldn't convert first payload type " + << associated_pt_str << " of RED codec " << red_codec.id + << " to an integer."; +@@ -182,7 +175,21 @@ + return suggestion.MoveError(); + } + codec.id = suggestion.value(); +- offered_codecs.push_back(codec); ++ // The rewrite of the parameter may have turned the codec into ++ // one that is already present. ++ bool skip = false; ++ for (const Codec& present_codec : offered_codecs) { ++ if (present_codec.id == codec.id) { ++ RTC_DCHECK(MatchesWithReferenceAttributes(present_codec, codec)) ++ << "Codec mismatch: present " << present_codec << ", new " ++ << codec; ++ skip = true; ++ break; ++ } ++ } ++ if (!skip) { ++ offered_codecs.push_back(codec); ++ } + } + } + +@@ -232,7 +239,7 @@ + } + std::string red_param = absl::StrCat(matching_codec->id); + red_codec.params[kCodecParamNotInNameValueFormat] = +- webrtc::StrJoin(std::vector{red_param, red_param}, "/"); ++ StrJoin(std::vector{red_param, red_param}, "/"); + } + RTCErrorOr suggestion = + pt_suggester.SuggestPayloadType(mid, red_codec); +@@ -240,84 +247,25 @@ + return suggestion.MoveError(); + } + red_codec.id = suggestion.value(); +- offered_codecs.push_back(red_codec); ++ // The rewrite of the parameter may have turned the RED codec into ++ // one that is already present. ++ bool skip = false; ++ for (const Codec& present_codec : offered_codecs) { ++ if (present_codec.id == red_codec.id) { ++ RTC_DCHECK(MatchesWithReferenceAttributes(present_codec, red_codec)); ++ skip = true; ++ break; ++ } ++ } ++ if (!skip) { ++ offered_codecs.push_back(red_codec); ++ } + } + } + offered_codecs.CheckConsistency(); + return RTCError::OK(); + } + +-// Adds all codecs from `reference_codecs` to `offered_codecs` that don't +-// already exist in `offered_codecs` and ensure the payload types don't +-// collide. +-// OLD VERSION - uses UsedPayloadTypes +-void MergeCodecs(const CodecList& reference_codecs, +- CodecList& offered_codecs, +- UsedPayloadTypes* used_pltypes) { +- // Add all new codecs that are not RTX/RED codecs. +- // The two-pass splitting of the loops means preferring payload types +- // of actual codecs with respect to collisions. +- for (const Codec& reference_codec : reference_codecs) { +- if (reference_codec.GetResiliencyType() != Codec::ResiliencyType::kRtx && +- reference_codec.GetResiliencyType() != Codec::ResiliencyType::kRed && +- !FindMatchingCodec(reference_codecs, offered_codecs, reference_codec)) { +- Codec codec = reference_codec; +- used_pltypes->FindAndSetIdUsed(&codec); +- offered_codecs.push_back(codec); +- } +- } +- +- // Add all new RTX or RED codecs. +- for (const Codec& reference_codec : reference_codecs) { +- if (reference_codec.GetResiliencyType() == Codec::ResiliencyType::kRtx && +- !FindMatchingCodec(reference_codecs, offered_codecs, reference_codec)) { +- Codec rtx_codec = reference_codec; +- const Codec* associated_codec = +- GetAssociatedCodecForRtx(reference_codecs, rtx_codec); +- if (!associated_codec) { +- continue; +- } +- // Find a codec in the offered list that matches the reference codec. +- // Its payload type may be different than the reference codec. +- std::optional matching_codec = FindMatchingCodec( +- reference_codecs, offered_codecs, *associated_codec); +- if (!matching_codec) { +- RTC_LOG(LS_WARNING) +- << "Couldn't find matching " << associated_codec->name << " codec."; +- continue; +- } +- +- rtx_codec.params[kCodecParamAssociatedPayloadType] = +- absl::StrCat(matching_codec->id); +- used_pltypes->FindAndSetIdUsed(&rtx_codec); +- offered_codecs.push_back(rtx_codec); +- } else if (reference_codec.GetResiliencyType() == +- Codec::ResiliencyType::kRed && +- !FindMatchingCodec(reference_codecs, offered_codecs, +- reference_codec)) { +- Codec red_codec = reference_codec; +- const Codec* associated_codec = +- GetAssociatedCodecForRed(reference_codecs, red_codec); +- if (associated_codec) { +- std::optional matching_codec = FindMatchingCodec( +- reference_codecs, offered_codecs, *associated_codec); +- if (!matching_codec) { +- RTC_LOG(LS_WARNING) << "Couldn't find matching " +- << associated_codec->name << " codec."; +- continue; +- } +- +- red_codec.params[kCodecParamNotInNameValueFormat] = +- absl::StrCat(matching_codec->id) + "/" + +- absl::StrCat(matching_codec->id); +- } +- used_pltypes->FindAndSetIdUsed(&red_codec); +- offered_codecs.push_back(red_codec); +- } +- } +- offered_codecs.CheckConsistency(); +-} +- + // `codecs` is a full list of codecs with correct payload type mappings, which + // don't conflict with mappings of the other media type; `supported_codecs` is + // a list filtered for the media section`s direction but with default payload +@@ -382,7 +330,7 @@ + codec.params.find(kCodecParamNotInNameValueFormat); + if (fmtp != codec.params.end()) { + std::vector redundant_payloads = +- webrtc::split(fmtp->second, '/'); ++ split(fmtp->second, '/'); + if (!redundant_payloads.empty() && + redundant_payloads[0] == id) { + if (!red_was_added) { +@@ -443,7 +391,7 @@ + for (const Codec& supported_codec : supported_codecs) { + if (absl::EqualsIgnoreCase(supported_codec.name, kH265CodecName)) { + std::optional supported_ptl = +- webrtc::ParseSdpForH265ProfileTierLevel(supported_codec.params); ++ ParseSdpForH265ProfileTierLevel(supported_codec.params); + if (supported_ptl.has_value()) { + supported_h265_profiles[supported_ptl->profile] = + supported_ptl->level; +@@ -458,14 +406,14 @@ + for (auto& filtered_codec : filtered_codecs) { + if (absl::EqualsIgnoreCase(filtered_codec.name, kH265CodecName)) { + std::optional filtered_ptl = +- webrtc::ParseSdpForH265ProfileTierLevel(filtered_codec.params); ++ ParseSdpForH265ProfileTierLevel(filtered_codec.params); + if (filtered_ptl.has_value()) { + auto it = supported_h265_profiles.find(filtered_ptl->profile); + + if (it != supported_h265_profiles.end() && + filtered_ptl->level != it->second) { + filtered_codec.params[kH265FmtpLevelId] = +- webrtc::H265LevelToString(it->second); ++ H265LevelToString(it->second); + } + } + } +@@ -506,13 +454,13 @@ + } + } + if (absl::EqualsIgnoreCase(ours.name, kH264CodecName)) { +- webrtc::H264GenerateProfileLevelIdForAnswer(ours.params, theirs->params, +- &negotiated.params); ++ H264GenerateProfileLevelIdForAnswer(ours.params, theirs->params, ++ &negotiated.params); + } + #ifdef RTC_ENABLE_H265 + if (absl::EqualsIgnoreCase(ours.name, kH265CodecName)) { +- webrtc::H265GenerateProfileTierLevelForAnswer( +- ours.params, theirs->params, &negotiated.params); ++ H265GenerateProfileTierLevelForAnswer(ours.params, theirs->params, ++ &negotiated.params); + NegotiateTxMode(ours, *theirs, &negotiated); + } + #endif +@@ -534,7 +482,7 @@ + continue; + } + int apt_value; +- if (!webrtc::FromString(apt_str, &apt_value)) { ++ if (!FromString(apt_str, &apt_value)) { + RTC_LOG(LS_WARNING) << "Unconvertable apt value"; + continue; + } +@@ -634,9 +582,11 @@ + } + // Add our codecs that are not in the current description. + if (media_description_options.type == MediaType::AUDIO) { +- MergeCodecs(all_audio_codecs(), mid, codecs, pt_suggester); ++ MergeCodecs(audio_recv_codecs(), mid, codecs, pt_suggester); ++ MergeCodecs(audio_send_codecs(), mid, codecs, pt_suggester); + } else { +- MergeCodecs(all_video_codecs(), mid, codecs, pt_suggester); ++ MergeCodecs(video_recv_codecs(), mid, codecs, pt_suggester); ++ MergeCodecs(video_send_codecs(), mid, codecs, pt_suggester); + } + CodecList filtered_codecs; + CodecList supported_codecs = +@@ -667,20 +617,11 @@ + const MediaContentDescription* mcd = + current_content->media_description(); + for (const Codec& codec : mcd->codecs()) { +- if (webrtc::FindMatchingCodec(mcd->codecs(), codecs.codecs(), +- codec)) { ++ if (FindMatchingCodec(mcd->codecs(), codecs.codecs(), codec)) { + filtered_codecs.push_back(codec); + } + } + } +- // Note what PTs are already in use. +- UsedPayloadTypes +- used_pltypes; // Used to avoid pt collisions in filtered_codecs +- for (auto& codec : filtered_codecs) { +- // Note: This may change PTs. Doing so woud indicate an error, but +- // UsedPayloadTypes doesn't offer a means to make the distinction. +- used_pltypes.FindAndSetIdUsed(&codec); +- } + // Add other supported codecs. + for (const Codec& codec : supported_codecs) { + std::optional found_codec = +@@ -707,8 +648,11 @@ + changed_referenced_codec->id); + } + } +- // Quick fix for b/395077842: Remap the codec if it collides. +- used_pltypes.FindAndSetIdUsed(&(*found_codec)); ++ auto pt_or_error = pt_suggester.SuggestPayloadType(mid, *found_codec); ++ if (!pt_or_error.ok()) { ++ return pt_or_error.MoveError(); ++ } ++ found_codec->id = pt_or_error.value(); + filtered_codecs.push_back(*found_codec); + } + } +@@ -763,9 +707,11 @@ + } + // Add all our supported codecs + if (media_description_options.type == MediaType::AUDIO) { +- MergeCodecs(all_audio_codecs(), mid, codecs, pt_suggester); ++ MergeCodecs(audio_recv_codecs(), mid, codecs, pt_suggester); ++ MergeCodecs(audio_send_codecs(), mid, codecs, pt_suggester); + } else { +- MergeCodecs(all_video_codecs(), mid, codecs, pt_suggester); ++ MergeCodecs(video_recv_codecs(), mid, codecs, pt_suggester); ++ MergeCodecs(video_send_codecs(), mid, codecs, pt_suggester); + } + CodecList filtered_codecs; + CodecList negotiated_codecs; +@@ -794,8 +740,8 @@ + const MediaContentDescription* mcd = + current_content->media_description(); + for (const Codec& codec : mcd->codecs()) { +- if (std::optional found_codec = webrtc::FindMatchingCodec( +- mcd->codecs(), codecs.codecs(), codec)) { ++ if (std::optional found_codec = ++ FindMatchingCodec(mcd->codecs(), codecs.codecs(), codec)) { + filtered_codecs.push_back(*found_codec); + } + } +@@ -913,8 +859,7 @@ + case RtpTransceiverDirection::kSendRecv: + case RtpTransceiverDirection::kStopped: + case RtpTransceiverDirection::kInactive: +- return GetVideoCodecsForOffer( +- webrtc::RtpTransceiverDirectionReversed(offer)); ++ return GetVideoCodecsForOffer(RtpTransceiverDirectionReversed(offer)); + case RtpTransceiverDirection::kSendOnly: + return video_send_codecs_.codecs(); + case RtpTransceiverDirection::kRecvOnly: +@@ -948,8 +893,7 @@ + case RtpTransceiverDirection::kSendRecv: + case RtpTransceiverDirection::kStopped: + case RtpTransceiverDirection::kInactive: +- return GetAudioCodecsForOffer( +- webrtc::RtpTransceiverDirectionReversed(offer)); ++ return GetAudioCodecsForOffer(RtpTransceiverDirectionReversed(offer)); + case RtpTransceiverDirection::kSendOnly: + return audio_send_codecs_.codecs(); + case RtpTransceiverDirection::kRecvOnly: +@@ -958,43 +902,6 @@ + RTC_CHECK_NOTREACHED(); + } + +-CodecList CodecVendor::all_video_codecs() const { +- CodecList all_codecs; +- UsedPayloadTypes used_payload_types; +- for (const Codec& codec : video_recv_codecs_.codecs()) { +- Codec codec_mutable = codec; +- used_payload_types.FindAndSetIdUsed(&codec_mutable); +- all_codecs.push_back(codec_mutable); +- } +- +- // Use MergeCodecs to merge the second half of our list as it already checks +- // and fixes problems with duplicate payload types. +- MergeCodecs(video_send_codecs_.codecs(), all_codecs, &used_payload_types); +- +- return all_codecs; +-} +- +-CodecList CodecVendor::all_audio_codecs() const { +- // Compute the audio codecs union. +- CodecList codecs; +- for (const Codec& send : audio_send_codecs_.codecs()) { +- codecs.push_back(send); +- if (!FindMatchingCodec(audio_send_codecs_.codecs(), +- audio_recv_codecs_.codecs(), send)) { +- // It doesn't make sense to have an RTX codec we support sending but not +- // receiving. +- RTC_DCHECK(send.GetResiliencyType() != Codec::ResiliencyType::kRtx); +- } +- } +- for (const Codec& recv : audio_recv_codecs_.codecs()) { +- if (!FindMatchingCodec(audio_recv_codecs_.codecs(), +- audio_send_codecs_.codecs(), recv)) { +- codecs.push_back(recv); +- } +- } +- return codecs; +-} +- + CodecList CodecVendor::audio_sendrecv_codecs() const { + // Use NegotiateCodecs to merge our codec lists, since the operation is + // essentially the same. Put send_codecs as the offered_codecs, which is the +diff --git a/webrtc/pc/wcodec_vendor.h b/webrtc/pc/codec_vendor.h +index 1472225..4a3a8d9 100644 +--- a/webrtc/pc/codec_vendor.h ++++ b/webrtc/pc/codec_vendor.h +@@ -102,9 +102,6 @@ + const RtpTransceiverDirection& offer, + const RtpTransceiverDirection& answer) const; + +- CodecList all_video_codecs() const; +- CodecList all_audio_codecs() const; +- + TypedCodecVendor audio_send_codecs_; + TypedCodecVendor audio_recv_codecs_; + +diff --git a/webrtc/pc/used_ids.h b/webrtc/pc/used_ids.h +index fe80531..f9d825c 100644 +--- a/webrtc/pc/used_ids.h ++++ b/webrtc/pc/used_ids.h +@@ -14,7 +14,6 @@ + #include + + #include "api/rtp_parameters.h" +-#include "media/base/codec.h" + #include "rtc_base/checks.h" + + namespace webrtc { +@@ -88,41 +86,6 @@ + std::set id_set_; + }; + +-// Helper class used for finding duplicate RTP payload types among audio, video +-// and data codecs. When bundle is used the payload types may not collide. +-class UsedPayloadTypes : public UsedIds { +- public: +- UsedPayloadTypes() +- : UsedIds(kFirstDynamicPayloadTypeLowerRange, +- kLastDynamicPayloadTypeUpperRange) {} +- +- // Check if a payload type is valid. The range [64-95] is forbidden +- // when rtcp-mux is used. +- static bool IsIdValid(Codec codec, bool rtcp_mux) { +- if (rtcp_mux && (codec.id > kLastDynamicPayloadTypeLowerRange && +- codec.id < kFirstDynamicPayloadTypeUpperRange)) { +- return false; +- } +- return codec.id >= 0 && codec.id <= kLastDynamicPayloadTypeUpperRange; +- } +- +- protected: +- bool IsIdUsed(int new_id) override { +- // Range marked for RTCP avoidance is "used". +- if (new_id > kLastDynamicPayloadTypeLowerRange && +- new_id < kFirstDynamicPayloadTypeUpperRange) +- return true; +- return UsedIds::IsIdUsed(new_id); +- } +- +- private: +- static const int kFirstDynamicPayloadTypeLowerRange = 35; +- static const int kLastDynamicPayloadTypeLowerRange = 63; +- +- static const int kFirstDynamicPayloadTypeUpperRange = 96; +- static const int kLastDynamicPayloadTypeUpperRange = 127; +-}; +- + // Helper class used for finding duplicate RTP Header extension ids among + // audio and video extensions. + class UsedRtpHeaderExtensionIds : public UsedIds { From a1898dab2d7d0ccc65e58e95646dc3e9b43d1320 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 24 Nov 2025 13:30:52 -0500 Subject: [PATCH 56/89] backports/thelounge: enable check --- backports/thelounge/APKBUILD | 4 ++-- .../allow-https-for-connect-src.patch | 13 ------------- backports/thelounge/no-version-test.patch | 19 ------------------- 3 files changed, 2 insertions(+), 34 deletions(-) delete mode 100644 backports/thelounge/allow-https-for-connect-src.patch delete mode 100644 backports/thelounge/no-version-test.patch diff --git a/backports/thelounge/APKBUILD b/backports/thelounge/APKBUILD index 0e84a6e..bc0de04 100644 --- a/backports/thelounge/APKBUILD +++ b/backports/thelounge/APKBUILD @@ -3,7 +3,7 @@ # Maintainer: Fabricio Silva pkgname=thelounge pkgver=4.4.3 -pkgrel=1 +pkgrel=0 pkgdesc="Modern, responsive, cross-platform, self-hosted web IRC client" url="https://thelounge.chat" arch="all !riscv64" # riscv64 gets SIGILL @@ -17,7 +17,7 @@ source=" thelounge.initd thelounge.confd " -options="!check net" # net for npm +options="net" # net for npm case $CARCH in # loongarch64: 2 tests failed on the builder diff --git a/backports/thelounge/allow-https-for-connect-src.patch b/backports/thelounge/allow-https-for-connect-src.patch deleted file mode 100644 index a147a91..0000000 --- a/backports/thelounge/allow-https-for-connect-src.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/server/server.ts b/server/server.ts.orig -index 7a1514e..5ecdea9 100644 ---- a/server/server.ts -+++ b/server/server.ts.orig -@@ -377,7 +377,7 @@ function addSecurityHeaders(req: Request, res: Response, next: NextFunction) { - "default-src 'none'", // default to nothing - "base-uri 'none'", // disallow , has no fallback to default-src - "form-action 'self'", // 'self' to fix saving passwords in Firefox, even though login is handled in javascript -- "connect-src 'self' ws: wss:", // allow self for polling; websockets -+ "connect-src 'self' ws: wss: https:", // allow self for polling; websockets - "style-src 'self' https: 'unsafe-inline'", // allow inline due to use in irc hex colors - "script-src 'self'", // javascript - "worker-src 'self'", // service worker diff --git a/backports/thelounge/no-version-test.patch b/backports/thelounge/no-version-test.patch deleted file mode 100644 index dfae092..0000000 --- a/backports/thelounge/no-version-test.patch +++ /dev/null @@ -1,19 +0,0 @@ -diff --git a/test/src/helperTest.ts b/test/src/helperTest.ts -index 2a8ddc8..22f0532 100644 ---- a/test/src/helperTest.ts -+++ b/test/src/helperTest.ts -@@ -40,14 +40,6 @@ describe("Helper", function () { - describe("#getVersion()", function () { - const version = Helper.getVersion(); - -- it("should mention it is served from source code", function () { -- expect(version).to.include("source"); -- }); -- -- it("should include a short Git SHA", function () { -- expect(version).to.match(/\([0-9a-f]{7,11} /); -- }); -- - it("should include a valid semver version", function () { - expect(version).to.match(/v[0-9]+\.[0-9]+\.[0-9]+/); - }); From fd29f9c77b95c961ce599b711819a8cbe1de29d2 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Sat, 29 Nov 2025 16:51:44 -0500 Subject: [PATCH 57/89] backports/shntool: fix build against latest gcc --- backports/shntool/APKBUILD | 7 +++++-- backports/shntool/no-cdquality-check.patch | 21 +++++++++++++++++++++ 2 files changed, 26 insertions(+), 2 deletions(-) create mode 100644 backports/shntool/no-cdquality-check.patch diff --git a/backports/shntool/APKBUILD b/backports/shntool/APKBUILD index 117a36b..05cb959 100644 --- a/backports/shntool/APKBUILD +++ b/backports/shntool/APKBUILD @@ -2,7 +2,7 @@ # Maintainer: Jean-Louis Fuchs pkgname=shntool pkgver=3.0.10 -pkgrel=5 +pkgrel=6 pkgdesc="A multi-purpose WAVE data processing and reporting utility" url="http://shnutils.freeshell.org/shntool/" arch="all" @@ -13,6 +13,7 @@ source="http://shnutils.freeshell.org/shntool/dist/src/shntool-$pkgver.tar.gz shntool-3.0.10-large-size.patch shntool-3.0.10-large-times.patch 24bit.patch + no-cdquality-check.patch " build() { @@ -24,7 +25,8 @@ build() { --sysconfdir=/etc \ --mandir=/usr/share/man \ --infodir=/usr/share/info \ - --localstatedir=/var + --localstatedir=/var \ + CFLAGS="--std=gnu17" make } @@ -63,4 +65,5 @@ sha512sums=" fc44bca63d79b279db6d275caaacdb73cbebd6b902276a9052f005146fa125f4674e3cf559d46405637a337192f4a38f9bec4836af46e7ae52e4f220352c1ba7 shntool-3.0.10-large-size.patch 9780f22d93e20dd01d18067978bdf6cbb0b460bb80f41c4f4752b3322c3d70182b3acf35b789e30fc36ca52af6127e24c00599fb49b916f01448613721a94ebe shntool-3.0.10-large-times.patch 3c9cdd7936a6572a3c9dfc7575f5ff9a0981dd557add8e1113454487091c7b161040d25d3266937449295a1bb5317ee3515a84c3d7168360bf84643ed828e202 24bit.patch +e5b5fe4894eea92e026eec666900bde2b10ea33d4b0ffbf74a231e443c476e11b50eebc21bc2ff2b844ca48af0a41a7b6af77fdc524d0b1bd33d03f133d99992 no-cdquality-check.patch " diff --git a/backports/shntool/no-cdquality-check.patch b/backports/shntool/no-cdquality-check.patch new file mode 100644 index 0000000..4ca3717 --- /dev/null +++ b/backports/shntool/no-cdquality-check.patch @@ -0,0 +1,21 @@ +Last-Update: 2014-11-15 +Forwarded: yes +Author: Dmitry Smirnov +Bug-Debian: http://bugs.debian.org/769585 +Description: disable CD-quality check, needed to process 24bit 96kHz files. + +--- a/src/core_mode.c ++++ b/src/core_mode.c +@@ -344,10 +344,10 @@ + + *colon = 0; + *dot = 0; + +- if (PROB_NOT_CD(info)) +- st_error("m:ss.ff format can only be used with CD-quality files"); ++// if (PROB_NOT_CD(info)) ++// st_error("m:ss.ff format can only be used with CD-quality files"); + + min = atoi((const char *)buf); + sec = atoi((const char *)(colon+1)); + frames = atoi((const char *)(dot+1)); From df11191c86615ce2599cbcad1ded473a2225da1c Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Sat, 29 Nov 2025 16:52:17 -0500 Subject: [PATCH 58/89] backports/thelounge: disable as broken against node 24 --- backports/thelounge/APKBUILD | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/backports/thelounge/APKBUILD b/backports/thelounge/APKBUILD index bc0de04..22b5565 100644 --- a/backports/thelounge/APKBUILD +++ b/backports/thelounge/APKBUILD @@ -6,7 +6,8 @@ pkgver=4.4.3 pkgrel=0 pkgdesc="Modern, responsive, cross-platform, self-hosted web IRC client" url="https://thelounge.chat" -arch="all !riscv64" # riscv64 gets SIGILL +# build broken against node 24 +#arch="all !riscv64" # riscv64 gets SIGILL license="MIT" depends="nodejs" makedepends="yarn py3-setuptools" From 8792a8c06a16cee3f067d4c21578ad4d497f7774 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Sat, 29 Nov 2025 16:52:59 -0500 Subject: [PATCH 59/89] user/papermc-plugin-luckperms: disable as upstream dependency not available --- user/papermc-plugin-luckperms/APKBUILD | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/user/papermc-plugin-luckperms/APKBUILD b/user/papermc-plugin-luckperms/APKBUILD index 4de9ddb..d480f40 100644 --- a/user/papermc-plugin-luckperms/APKBUILD +++ b/user/papermc-plugin-luckperms/APKBUILD @@ -5,7 +5,8 @@ pkgver=5.4.151 _gittag=0fef481d480737528491fc0b3b8487eb1612f955 pkgrel=0 pkgdesc="An advanced permissions plugin for Bukkit/Spigot, BungeeCord and Sponge." -arch='noarch' +# dependency not available upstream anymore +#arch='noarch' url="https://github.com/lucko/LuckPerms" license="MIT" depends="papermc>=1.8.8" From 2865b8f524aee2d7d284a55120d3f23c5809a27b Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Sat, 29 Nov 2025 16:53:27 -0500 Subject: [PATCH 60/89] user/papermc-plugin-essentialsx: blocked by luckperms --- user/papermc-plugin-essentialsx/APKBUILD | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/user/papermc-plugin-essentialsx/APKBUILD b/user/papermc-plugin-essentialsx/APKBUILD index 6abab9f..17643a5 100644 --- a/user/papermc-plugin-essentialsx/APKBUILD +++ b/user/papermc-plugin-essentialsx/APKBUILD @@ -5,7 +5,8 @@ pkgver=2.21.1 _gittag=$pkgver pkgrel=0 pkgdesc="EssentialsX is the essential plugin suite for Minecraft servers, with over 130 commands for servers of all size and scale." -arch='noarch' +# blocked by luckperms +#arch='noarch' url="https://essentialsx.net/" license="GPL-3.0" depends=" From ba29f2b00023ce6a4b33152f18aa1666ad1b070a Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 1 Dec 2025 21:34:42 -0500 Subject: [PATCH 61/89] user/uvicorn: drop due to re-added to aports --- .../2540_add-websocketssansioprotocol.patch | 1194 ----------------- .../2541_bump-wesockets-on-requirements.patch | 559 -------- user/uvicorn/APKBUILD | 55 - user/uvicorn/test_multiprocess.patch | 14 - 4 files changed, 1822 deletions(-) delete mode 100644 user/uvicorn/2540_add-websocketssansioprotocol.patch delete mode 100644 user/uvicorn/2541_bump-wesockets-on-requirements.patch delete mode 100644 user/uvicorn/APKBUILD delete mode 100644 user/uvicorn/test_multiprocess.patch diff --git a/user/uvicorn/2540_add-websocketssansioprotocol.patch b/user/uvicorn/2540_add-websocketssansioprotocol.patch deleted file mode 100644 index a1fe5bf..0000000 --- a/user/uvicorn/2540_add-websocketssansioprotocol.patch +++ /dev/null @@ -1,1194 +0,0 @@ -From d79d86eee1ad8cdcc9668de3237b0c6203257992 Mon Sep 17 00:00:00 2001 -From: Marcelo Trylesinski -Date: Sat, 14 Dec 2024 13:44:22 +0100 -Subject: [PATCH 1/7] Add WebSocketsSansIOProtocol - ---- - docs/deployment.md | 2 +- - docs/index.md | 2 +- - pyproject.toml | 3 + - requirements.txt | 2 +- - tests/conftest.py | 4 +- - tests/middleware/test_logging.py | 11 +- - tests/middleware/test_proxy_headers.py | 5 +- - uvicorn/config.py | 3 +- - .../websockets/websockets_sansio_impl.py | 386 ++++++++++++++++++ - uvicorn/server.py | 3 +- - 10 files changed, 408 insertions(+), 13 deletions(-) - create mode 100644 uvicorn/protocols/websockets/websockets_sansio_impl.py - -diff --git a/pyproject.toml b/pyproject.toml -index 6f809030e..3e30b658c 100644 ---- a/pyproject.toml -+++ b/pyproject.toml -@@ -93,6 +93,9 @@ filterwarnings = [ - "ignore:Uvicorn's native WSGI implementation is deprecated.*:DeprecationWarning", - "ignore: 'cgi' is deprecated and slated for removal in Python 3.13:DeprecationWarning", - "ignore: remove second argument of ws_handler:DeprecationWarning:websockets", -+ "ignore: websockets.legacy is deprecated.*:DeprecationWarning", -+ "ignore: websockets.server.WebSocketServerProtocol is deprecated.*:DeprecationWarning", -+ "ignore: websockets.client.connect is deprecated.*:DeprecationWarning", - ] - - [tool.coverage.run] -diff --git a/requirements.txt b/requirements.txt -index b3a464c0b..fd2334d02 100644 ---- a/requirements.txt -+++ b/requirements.txt -@@ -7,7 +7,7 @@ h11 @ git+https://github.com/python-hyper/h11.git@master - # Explicit optionals - a2wsgi==1.10.7 - wsproto==1.2.0 --websockets==13.1 -+websockets==14.1 - - # Packaging - build==1.2.2.post1 -diff --git a/tests/conftest.py b/tests/conftest.py -index 1b0c0e84e..84bda4dc2 100644 ---- a/tests/conftest.py -+++ b/tests/conftest.py -@@ -233,9 +233,9 @@ def unused_tcp_port() -> int: - marks=pytest.mark.skipif(not importlib.util.find_spec("wsproto"), reason="wsproto not installed."), - id="wsproto", - ), -+ pytest.param("uvicorn.protocols.websockets.websockets_impl:WebSocketProtocol", id="websockets"), - pytest.param( -- "uvicorn.protocols.websockets.websockets_impl:WebSocketProtocol", -- id="websockets", -+ "uvicorn.protocols.websockets.websockets_sansio_impl:WebSocketSansIOProtocol", id="websockets-sansio" - ), - ] - ) -diff --git a/tests/middleware/test_logging.py b/tests/middleware/test_logging.py -index f27633aa5..c8126f9e6 100644 ---- a/tests/middleware/test_logging.py -+++ b/tests/middleware/test_logging.py -@@ -49,7 +49,9 @@ async def app(scope: Scope, receive: ASGIReceiveCallable, send: ASGISendCallable - await send({"type": "http.response.body", "body": b"", "more_body": False}) - - --async def test_trace_logging(caplog: pytest.LogCaptureFixture, logging_config, unused_tcp_port: int): -+async def test_trace_logging( -+ caplog: pytest.LogCaptureFixture, logging_config: dict[str, typing.Any], unused_tcp_port: int -+): - config = Config( - app=app, - log_level="trace", -@@ -89,10 +91,11 @@ async def test_trace_logging_on_http_protocol(http_protocol_cls, caplog, logging - assert any(" - HTTP connection lost" in message for message in messages) - - -+@pytest.mark.skip() - async def test_trace_logging_on_ws_protocol( - ws_protocol_cls: WSProtocol, -- caplog, -- logging_config, -+ caplog: pytest.LogCaptureFixture, -+ logging_config: dict[str, typing.Any], - unused_tcp_port: int, - ): - async def websocket_app(scope: Scope, receive: ASGIReceiveCallable, send: ASGISendCallable): -@@ -104,7 +107,7 @@ async def websocket_app(scope: Scope, receive: ASGIReceiveCallable, send: ASGISe - elif message["type"] == "websocket.disconnect": - break - -- async def open_connection(url): -+ async def open_connection(url: str): - async with websockets.client.connect(url) as websocket: - return websocket.open - -diff --git a/tests/middleware/test_proxy_headers.py b/tests/middleware/test_proxy_headers.py -index 0ade97450..4b5f195f6 100644 ---- a/tests/middleware/test_proxy_headers.py -+++ b/tests/middleware/test_proxy_headers.py -@@ -5,7 +5,7 @@ - import httpx - import httpx._transports.asgi - import pytest --import websockets.client -+from websockets.asyncio.client import connect - - from tests.response import Response - from tests.utils import run_server -@@ -465,6 +465,7 @@ async def websocket_app(scope: Scope, receive: ASGIReceiveCallable, send: ASGISe - host, port = scope["client"] - await send({"type": "websocket.accept"}) - await send({"type": "websocket.send", "text": f"{scheme}://{host}:{port}"}) -+ await send({"type": "websocket.close"}) - - app_with_middleware = ProxyHeadersMiddleware(websocket_app, trusted_hosts="*") - config = Config( -@@ -478,7 +479,7 @@ async def websocket_app(scope: Scope, receive: ASGIReceiveCallable, send: ASGISe - async with run_server(config): - url = f"ws://127.0.0.1:{unused_tcp_port}" - headers = {X_FORWARDED_FOR: "1.2.3.4", X_FORWARDED_PROTO: forwarded_proto} -- async with websockets.client.connect(url, extra_headers=headers) as websocket: -+ async with connect(url, additional_headers=headers) as websocket: - data = await websocket.recv() - assert data == expected - -diff --git a/uvicorn/config.py b/uvicorn/config.py -index b08a8426b..3480b5392 100644 ---- a/uvicorn/config.py -+++ b/uvicorn/config.py -@@ -24,7 +24,7 @@ - from uvicorn.middleware.wsgi import WSGIMiddleware - - HTTPProtocolType = Literal["auto", "h11", "httptools"] --WSProtocolType = Literal["auto", "none", "websockets", "wsproto"] -+WSProtocolType = Literal["auto", "none", "websockets", "websockets-sansio", "wsproto"] - LifespanType = Literal["auto", "on", "off"] - LoopSetupType = Literal["none", "auto", "asyncio", "uvloop"] - InterfaceType = Literal["auto", "asgi3", "asgi2", "wsgi"] -@@ -46,6 +46,7 @@ - "auto": "uvicorn.protocols.websockets.auto:AutoWebSocketsProtocol", - "none": None, - "websockets": "uvicorn.protocols.websockets.websockets_impl:WebSocketProtocol", -+ "websockets-sansio": "uvicorn.protocols.websockets.websockets_sansio_impl:WebSocketSansIOProtocol", - "wsproto": "uvicorn.protocols.websockets.wsproto_impl:WSProtocol", - } - LIFESPAN: dict[LifespanType, str] = { -diff --git a/uvicorn/protocols/websockets/websockets_sansio_impl.py b/uvicorn/protocols/websockets/websockets_sansio_impl.py -new file mode 100644 -index 000000000..49e8a71a1 ---- /dev/null -+++ b/uvicorn/protocols/websockets/websockets_sansio_impl.py -@@ -0,0 +1,386 @@ -+from __future__ import annotations -+ -+import asyncio -+import logging -+from asyncio.transports import BaseTransport, Transport -+from http import HTTPStatus -+from typing import Any, Literal, cast -+from urllib.parse import unquote -+ -+from websockets.extensions.permessage_deflate import ServerPerMessageDeflateFactory -+from websockets.frames import Frame, Opcode -+from websockets.http11 import Request -+from websockets.server import ServerProtocol -+ -+from uvicorn._types import ( -+ ASGIReceiveEvent, -+ ASGISendEvent, -+ WebSocketAcceptEvent, -+ WebSocketCloseEvent, -+ WebSocketDisconnectEvent, -+ WebSocketReceiveEvent, -+ WebSocketResponseBodyEvent, -+ WebSocketResponseStartEvent, -+ WebSocketScope, -+ WebSocketSendEvent, -+) -+from uvicorn.config import Config -+from uvicorn.logging import TRACE_LOG_LEVEL -+from uvicorn.protocols.utils import get_local_addr, get_path_with_query_string, get_remote_addr, is_ssl -+from uvicorn.server import ServerState -+ -+ -+class WebSocketSansIOProtocol(asyncio.Protocol): -+ def __init__( -+ self, -+ config: Config, -+ server_state: ServerState, -+ app_state: dict[str, Any], -+ _loop: asyncio.AbstractEventLoop | None = None, -+ ) -> None: -+ if not config.loaded: -+ config.load() # pragma: no cover -+ -+ self.config = config -+ self.app = config.loaded_app -+ self.loop = _loop or asyncio.get_event_loop() -+ self.logger = logging.getLogger("uvicorn.error") -+ self.root_path = config.root_path -+ self.app_state = app_state -+ -+ # Shared server state -+ self.connections = server_state.connections -+ self.tasks = server_state.tasks -+ self.default_headers = server_state.default_headers -+ -+ # Connection state -+ self.transport: asyncio.Transport = None # type: ignore[assignment] -+ self.server: tuple[str, int] | None = None -+ self.client: tuple[str, int] | None = None -+ self.scheme: Literal["wss", "ws"] = None # type: ignore[assignment] -+ -+ # WebSocket state -+ self.queue: asyncio.Queue[ASGIReceiveEvent] = asyncio.Queue() -+ self.handshake_initiated = False -+ self.handshake_complete = False -+ self.close_sent = False -+ self.initial_response: tuple[int, list[tuple[str, str]], bytes] | None = None -+ -+ extensions = [] -+ if self.config.ws_per_message_deflate: -+ extensions = [ServerPerMessageDeflateFactory()] -+ self.conn = ServerProtocol( -+ extensions=extensions, -+ max_size=self.config.ws_max_size, -+ logger=logging.getLogger("uvicorn.error"), -+ ) -+ -+ self.read_paused = False -+ self.writable = asyncio.Event() -+ self.writable.set() -+ -+ # Buffers -+ self.bytes = b"" -+ -+ def connection_made(self, transport: BaseTransport) -> None: -+ """Called when a connection is made.""" -+ transport = cast(Transport, transport) -+ self.connections.add(self) -+ self.transport = transport -+ self.server = get_local_addr(transport) -+ self.client = get_remote_addr(transport) -+ self.scheme = "wss" if is_ssl(transport) else "ws" -+ -+ if self.logger.level <= TRACE_LOG_LEVEL: -+ prefix = "%s:%d - " % self.client if self.client else "" -+ self.logger.log(TRACE_LOG_LEVEL, "%sWebSocket connection made", prefix) -+ -+ def connection_lost(self, exc: Exception | None) -> None: -+ self.connections.remove(self) -+ if self.logger.level <= TRACE_LOG_LEVEL: -+ prefix = "%s:%d - " % self.client if self.client else "" -+ self.logger.log(TRACE_LOG_LEVEL, "%sWebSocket connection lost", prefix) -+ if self.handshake_initiated and not self.close_sent: -+ self.queue.put_nowait({"type": "websocket.disconnect", "code": 1006}) -+ -+ def shutdown(self) -> None: -+ if not self.transport.is_closing(): -+ if self.handshake_complete: -+ self.queue.put_nowait({"type": "websocket.disconnect", "code": 1012}) -+ self.close_sent = True -+ self.conn.send_close(1012) -+ output = self.conn.data_to_send() -+ self.transport.writelines(output) -+ elif self.handshake_initiated: -+ self.send_500_response() -+ self.queue.put_nowait({"type": "websocket.disconnect", "code": 1006}) -+ self.transport.close() -+ -+ def data_received(self, data: bytes) -> None: -+ self.conn.receive_data(data) -+ parser_exc = self.conn.parser_exc -+ if parser_exc is not None: -+ self.handle_parser_exception() -+ return -+ self.handle_events() -+ -+ def handle_events(self) -> None: -+ for event in self.conn.events_received(): -+ if isinstance(event, Request): -+ self.handle_connect(event) -+ if isinstance(event, Frame): -+ if event.opcode == Opcode.CONT: -+ self.handle_cont(event) -+ elif event.opcode == Opcode.TEXT: -+ self.handle_text(event) -+ elif event.opcode == Opcode.BINARY: -+ self.handle_bytes(event) -+ elif event.opcode == Opcode.PING: -+ self.handle_ping(event) -+ elif event.opcode == Opcode.CLOSE: -+ self.handle_close(event) -+ -+ # Event handlers -+ -+ def handle_connect(self, event: Request) -> None: -+ self.request = event -+ self.response = self.conn.accept(event) -+ self.handshake_initiated = True -+ # if status_code is not 101 return response -+ if self.response.status_code != 101: -+ self.handshake_complete = True -+ self.close_sent = True -+ self.conn.send_response(self.response) -+ output = self.conn.data_to_send() -+ self.transport.writelines(output) -+ self.transport.close() -+ return -+ -+ headers = [ -+ (key.encode("ascii"), value.encode("ascii", errors="surrogateescape")) -+ for key, value in event.headers.raw_items() -+ ] -+ raw_path, _, query_string = event.path.partition("?") -+ self.scope: WebSocketScope = { -+ "type": "websocket", -+ "asgi": {"version": self.config.asgi_version, "spec_version": "2.3"}, -+ "http_version": "1.1", -+ "scheme": self.scheme, -+ "server": self.server, -+ "client": self.client, -+ "root_path": self.root_path, -+ "path": unquote(raw_path), -+ "raw_path": raw_path.encode("ascii"), -+ "query_string": query_string.encode("ascii"), -+ "headers": headers, -+ "subprotocols": event.headers.get_all("Sec-WebSocket-Protocol"), -+ "state": self.app_state.copy(), -+ "extensions": {"websocket.http.response": {}}, -+ } -+ self.queue.put_nowait({"type": "websocket.connect"}) -+ task = self.loop.create_task(self.run_asgi()) -+ task.add_done_callback(self.on_task_complete) -+ self.tasks.add(task) -+ -+ def handle_cont(self, event: Frame) -> None: -+ self.bytes += event.data -+ if event.fin: -+ self.send_receive_event_to_app() -+ -+ def handle_text(self, event: Frame) -> None: -+ self.bytes = event.data -+ self.curr_msg_data_type: Literal["text", "bytes"] = "text" -+ if event.fin: -+ self.send_receive_event_to_app() -+ -+ def handle_bytes(self, event: Frame) -> None: -+ self.bytes = event.data -+ self.curr_msg_data_type = "bytes" -+ if event.fin: -+ self.send_receive_event_to_app() -+ -+ def send_receive_event_to_app(self) -> None: -+ data_type = self.curr_msg_data_type -+ msg: WebSocketReceiveEvent -+ if data_type == "text": -+ msg = {"type": "websocket.receive", data_type: self.bytes.decode()} -+ else: -+ msg = {"type": "websocket.receive", data_type: self.bytes} -+ self.queue.put_nowait(msg) -+ if not self.read_paused: -+ self.read_paused = True -+ self.transport.pause_reading() -+ -+ def handle_ping(self, event: Frame) -> None: -+ output = self.conn.data_to_send() -+ self.transport.writelines(output) -+ -+ def handle_close(self, event: Frame) -> None: -+ if not self.close_sent and self.conn.close_rcvd and not self.transport.is_closing(): -+ disconnect_event: WebSocketDisconnectEvent = { -+ "type": "websocket.disconnect", -+ "code": self.conn.close_rcvd.code, -+ "reason": self.conn.close_rcvd.reason, -+ } -+ self.queue.put_nowait(disconnect_event) -+ output = self.conn.data_to_send() -+ self.transport.writelines(output) -+ self.close_sent = True -+ self.transport.close() -+ -+ def handle_parser_exception(self) -> None: -+ disconnect_event: WebSocketDisconnectEvent = { -+ "type": "websocket.disconnect", -+ "code": self.conn.close_sent.code if self.conn.close_sent else 1006, -+ } -+ self.queue.put_nowait(disconnect_event) -+ output = self.conn.data_to_send() -+ self.transport.writelines(output) -+ self.close_sent = True -+ self.transport.close() -+ -+ def on_task_complete(self, task: asyncio.Task[None]) -> None: -+ self.tasks.discard(task) -+ -+ async def run_asgi(self) -> None: -+ try: -+ result = await self.app(self.scope, self.receive, self.send) -+ except BaseException: -+ self.logger.exception("Exception in ASGI application\n") -+ if not self.handshake_complete: -+ self.send_500_response() -+ self.transport.close() -+ else: -+ if not self.handshake_complete: -+ msg = "ASGI callable returned without completing handshake." -+ self.logger.error(msg) -+ self.send_500_response() -+ self.transport.close() -+ elif result is not None: -+ msg = "ASGI callable should return None, but returned '%s'." -+ self.logger.error(msg, result) -+ self.transport.close() -+ -+ def send_500_response(self) -> None: -+ response = self.conn.reject(500, "Internal Server Error") -+ self.conn.send_response(response) -+ output = self.conn.data_to_send() -+ self.transport.writelines(output) -+ -+ async def send(self, message: ASGISendEvent) -> None: -+ await self.writable.wait() -+ -+ message_type = message["type"] -+ -+ if not self.handshake_complete and self.initial_response is None: -+ if message_type == "websocket.accept": -+ message = cast(WebSocketAcceptEvent, message) -+ self.logger.info( -+ '%s - "WebSocket %s" [accepted]', -+ self.scope["client"], -+ get_path_with_query_string(self.scope), -+ ) -+ headers = [ -+ (name.decode("latin-1").lower(), value.decode("latin-1").lower()) -+ for name, value in (self.default_headers + list(message.get("headers", []))) -+ ] -+ accepted_subprotocol = message.get("subprotocol") -+ if accepted_subprotocol: -+ headers.append(("Sec-WebSocket-Protocol", accepted_subprotocol)) -+ self.response.headers.update(headers) -+ -+ if not self.transport.is_closing(): -+ self.handshake_complete = True -+ self.conn.send_response(self.response) -+ output = self.conn.data_to_send() -+ self.transport.writelines(output) -+ -+ elif message_type == "websocket.close": -+ message = cast(WebSocketCloseEvent, message) -+ self.queue.put_nowait({"type": "websocket.disconnect", "code": 1006}) -+ self.logger.info( -+ '%s - "WebSocket %s" 403', -+ self.scope["client"], -+ get_path_with_query_string(self.scope), -+ ) -+ response = self.conn.reject(HTTPStatus.FORBIDDEN, "") -+ self.conn.send_response(response) -+ output = self.conn.data_to_send() -+ self.close_sent = True -+ self.handshake_complete = True -+ self.transport.writelines(output) -+ self.transport.close() -+ elif message_type == "websocket.http.response.start": -+ message = cast(WebSocketResponseStartEvent, message) -+ self.logger.info( -+ '%s - "WebSocket %s" %d', -+ self.scope["client"], -+ get_path_with_query_string(self.scope), -+ message["status"], -+ ) -+ headers = [ -+ (name.decode("latin-1"), value.decode("latin-1")) -+ for name, value in list(message.get("headers", [])) -+ ] -+ self.initial_response = (message["status"], headers, b"") -+ else: -+ msg = ( -+ "Expected ASGI message 'websocket.accept', 'websocket.close' " -+ "or 'websocket.http.response.start' " -+ "but got '%s'." -+ ) -+ print(message) -+ raise RuntimeError(msg % message_type) -+ -+ elif not self.close_sent and self.initial_response is None: -+ if message_type == "websocket.send" and not self.transport.is_closing(): -+ message = cast(WebSocketSendEvent, message) -+ bytes_data = message.get("bytes") -+ text_data = message.get("text") -+ if text_data: -+ self.conn.send_text(text_data.encode()) -+ elif bytes_data: -+ self.conn.send_binary(bytes_data) -+ output = self.conn.data_to_send() -+ self.transport.writelines(output) -+ -+ elif message_type == "websocket.close" and not self.transport.is_closing(): -+ message = cast(WebSocketCloseEvent, message) -+ code = message.get("code", 1000) -+ reason = message.get("reason", "") or "" -+ self.queue.put_nowait({"type": "websocket.disconnect", "code": code}) -+ self.conn.send_close(code, reason) -+ output = self.conn.data_to_send() -+ self.transport.writelines(output) -+ self.close_sent = True -+ self.transport.close() -+ else: -+ msg = "Expected ASGI message 'websocket.send' or 'websocket.close'," " but got '%s'." -+ raise RuntimeError(msg % message_type) -+ elif self.initial_response is not None: -+ if message_type == "websocket.http.response.body": -+ message = cast(WebSocketResponseBodyEvent, message) -+ body = self.initial_response[2] + message["body"] -+ self.initial_response = self.initial_response[:2] + (body,) -+ if not message.get("more_body", False): -+ response = self.conn.reject(self.initial_response[0], body.decode()) -+ response.headers.update(self.initial_response[1]) -+ self.conn.send_response(response) -+ output = self.conn.data_to_send() -+ self.close_sent = True -+ self.transport.writelines(output) -+ self.transport.close() -+ else: -+ msg = "Expected ASGI message 'websocket.http.response.body' " "but got '%s'." -+ raise RuntimeError(msg % message_type) -+ -+ else: -+ msg = "Unexpected ASGI message '%s', after sending 'websocket.close'." -+ raise RuntimeError(msg % message_type) -+ -+ async def receive(self) -> ASGIReceiveEvent: -+ message = await self.queue.get() -+ if self.read_paused and self.queue.empty(): -+ self.read_paused = False -+ self.transport.resume_reading() -+ return message -diff --git a/uvicorn/server.py b/uvicorn/server.py -index f14026f16..2250e2dc7 100644 ---- a/uvicorn/server.py -+++ b/uvicorn/server.py -@@ -22,9 +22,10 @@ - from uvicorn.protocols.http.h11_impl import H11Protocol - from uvicorn.protocols.http.httptools_impl import HttpToolsProtocol - from uvicorn.protocols.websockets.websockets_impl import WebSocketProtocol -+ from uvicorn.protocols.websockets.websockets_sansio_impl import WebSocketSansIOProtocol - from uvicorn.protocols.websockets.wsproto_impl import WSProtocol - -- Protocols = Union[H11Protocol, HttpToolsProtocol, WSProtocol, WebSocketProtocol] -+ Protocols = Union[H11Protocol, HttpToolsProtocol, WSProtocol, WebSocketProtocol, WebSocketSansIOProtocol] - - HANDLED_SIGNALS = ( - signal.SIGINT, # Unix signal 2. Sent by Ctrl+C. - -From 7ee1e15a850d78754b757849886abb2011dd2e55 Mon Sep 17 00:00:00 2001 -From: Marcelo Trylesinski -Date: Sat, 14 Dec 2024 17:54:55 +0100 -Subject: [PATCH 2/7] Add WebSocketsSansIOProtocol - ---- - tests/conftest.py | 2 +- - tests/middleware/test_logging.py | 1 - - tests/middleware/test_proxy_headers.py | 4 +- - tests/protocols/test_websocket.py | 35 +++--- - uvicorn/config.py | 2 +- - .../websockets/websockets_sansio_impl.py | 117 +++++++++++------- - uvicorn/server.py | 4 +- - 7 files changed, 96 insertions(+), 69 deletions(-) - -diff --git a/tests/conftest.py b/tests/conftest.py -index 84bda4dc2..7061a143b 100644 ---- a/tests/conftest.py -+++ b/tests/conftest.py -@@ -235,7 +235,7 @@ def unused_tcp_port() -> int: - ), - pytest.param("uvicorn.protocols.websockets.websockets_impl:WebSocketProtocol", id="websockets"), - pytest.param( -- "uvicorn.protocols.websockets.websockets_sansio_impl:WebSocketSansIOProtocol", id="websockets-sansio" -+ "uvicorn.protocols.websockets.websockets_sansio_impl:WebSocketsSansIOProtocol", id="websockets-sansio" - ), - ] - ) -diff --git a/tests/middleware/test_logging.py b/tests/middleware/test_logging.py -index c8126f9e6..63d7daf83 100644 ---- a/tests/middleware/test_logging.py -+++ b/tests/middleware/test_logging.py -@@ -91,7 +91,6 @@ async def test_trace_logging_on_http_protocol(http_protocol_cls, caplog, logging - assert any(" - HTTP connection lost" in message for message in messages) - - --@pytest.mark.skip() - async def test_trace_logging_on_ws_protocol( - ws_protocol_cls: WSProtocol, - caplog: pytest.LogCaptureFixture, -diff --git a/tests/middleware/test_proxy_headers.py b/tests/middleware/test_proxy_headers.py -index 4b5f195f6..62a51ab20 100644 ---- a/tests/middleware/test_proxy_headers.py -+++ b/tests/middleware/test_proxy_headers.py -@@ -5,8 +5,8 @@ - import httpx - import httpx._transports.asgi - import pytest --from websockets.asyncio.client import connect - -+import websockets.client - from tests.response import Response - from tests.utils import run_server - from uvicorn._types import ASGIReceiveCallable, ASGISendCallable, Scope -@@ -479,7 +479,7 @@ async def websocket_app(scope: Scope, receive: ASGIReceiveCallable, send: ASGISe - async with run_server(config): - url = f"ws://127.0.0.1:{unused_tcp_port}" - headers = {X_FORWARDED_FOR: "1.2.3.4", X_FORWARDED_PROTO: forwarded_proto} -- async with connect(url, additional_headers=headers) as websocket: -+ async with websockets.client.connect(url, extra_headers=headers) as websocket: - data = await websocket.recv() - assert data == expected - -diff --git a/tests/protocols/test_websocket.py b/tests/protocols/test_websocket.py -index 15ccfdd7d..8971a7d97 100644 ---- a/tests/protocols/test_websocket.py -+++ b/tests/protocols/test_websocket.py -@@ -601,20 +601,20 @@ async def app(scope: Scope, receive: ASGIReceiveCallable, send: ASGISendCallable - await send_accept_task.wait() - disconnect_message = await receive() # type: ignore - -- response: httpx.Response | None = None -- - async def websocket_session(uri: str): -- nonlocal response - async with httpx.AsyncClient() as client: -- response = await client.get( -- f"http://127.0.0.1:{unused_tcp_port}", -- headers={ -- "upgrade": "websocket", -- "connection": "upgrade", -- "sec-websocket-version": "13", -- "sec-websocket-key": "dGhlIHNhbXBsZSBub25jZQ==", -- }, -- ) -+ try: -+ await client.get( -+ f"http://127.0.0.1:{unused_tcp_port}", -+ headers={ -+ "upgrade": "websocket", -+ "connection": "upgrade", -+ "sec-websocket-version": "13", -+ "sec-websocket-key": "dGhlIHNhbXBsZSBub25jZQ==", -+ }, -+ ) -+ except httpx.RemoteProtocolError: -+ pass # pragma: no cover - - config = Config(app=app, ws=ws_protocol_cls, http=http_protocol_cls, lifespan="off", port=unused_tcp_port) - async with run_server(config): -@@ -623,9 +623,6 @@ async def websocket_session(uri: str): - send_accept_task.set() - await asyncio.sleep(0.1) - -- assert response is not None -- assert response.status_code == 500, response.text -- assert response.text == "Internal Server Error" - assert disconnect_message == {"type": "websocket.disconnect", "code": 1006} - await task - -@@ -920,6 +917,9 @@ async def websocket_session(url: str): - async def test_server_reject_connection_with_invalid_msg( - ws_protocol_cls: WSProtocol, http_protocol_cls: HTTPProtocol, unused_tcp_port: int - ): -+ if ws_protocol_cls.__name__ == "WebSocketsSansIOProtocol": -+ pytest.skip("WebSocketsSansIOProtocol sends both start and body messages in one message.") -+ - async def app(scope: Scope, receive: ASGIReceiveCallable, send: ASGISendCallable): - assert scope["type"] == "websocket" - assert "extensions" in scope and "websocket.http.response" in scope["extensions"] -@@ -951,6 +951,9 @@ async def websocket_session(url: str): - async def test_server_reject_connection_with_missing_body( - ws_protocol_cls: WSProtocol, http_protocol_cls: HTTPProtocol, unused_tcp_port: int - ): -+ if ws_protocol_cls.__name__ == "WebSocketsSansIOProtocol": -+ pytest.skip("WebSocketsSansIOProtocol sends both start and body messages in one message.") -+ - async def app(scope: Scope, receive: ASGIReceiveCallable, send: ASGISendCallable): - assert scope["type"] == "websocket" - assert "extensions" in scope and "websocket.http.response" in scope["extensions"] -@@ -986,6 +989,8 @@ async def test_server_multiple_websocket_http_response_start_events( - The server should raise an exception if it sends multiple - websocket.http.response.start events. - """ -+ if ws_protocol_cls.__name__ == "WebSocketsSansIOProtocol": -+ pytest.skip("WebSocketsSansIOProtocol sends both start and body messages in one message.") - exception_message: str | None = None - - async def app(scope: Scope, receive: ASGIReceiveCallable, send: ASGISendCallable): -diff --git a/uvicorn/config.py b/uvicorn/config.py -index 3480b5392..187b94972 100644 ---- a/uvicorn/config.py -+++ b/uvicorn/config.py -@@ -46,7 +46,7 @@ - "auto": "uvicorn.protocols.websockets.auto:AutoWebSocketsProtocol", - "none": None, - "websockets": "uvicorn.protocols.websockets.websockets_impl:WebSocketProtocol", -- "websockets-sansio": "uvicorn.protocols.websockets.websockets_sansio_impl:WebSocketSansIOProtocol", -+ "websockets-sansio": "uvicorn.protocols.websockets.websockets_sansio_impl:WebSocketsSansIOProtocol", - "wsproto": "uvicorn.protocols.websockets.wsproto_impl:WSProtocol", - } - LIFESPAN: dict[LifespanType, str] = { -diff --git a/uvicorn/protocols/websockets/websockets_sansio_impl.py b/uvicorn/protocols/websockets/websockets_sansio_impl.py -index 49e8a71a1..ea70236b2 100644 ---- a/uvicorn/protocols/websockets/websockets_sansio_impl.py -+++ b/uvicorn/protocols/websockets/websockets_sansio_impl.py -@@ -7,6 +7,7 @@ - from typing import Any, Literal, cast - from urllib.parse import unquote - -+from websockets import InvalidState - from websockets.extensions.permessage_deflate import ServerPerMessageDeflateFactory - from websockets.frames import Frame, Opcode - from websockets.http11 import Request -@@ -26,11 +27,17 @@ - ) - from uvicorn.config import Config - from uvicorn.logging import TRACE_LOG_LEVEL --from uvicorn.protocols.utils import get_local_addr, get_path_with_query_string, get_remote_addr, is_ssl -+from uvicorn.protocols.utils import ( -+ ClientDisconnected, -+ get_local_addr, -+ get_path_with_query_string, -+ get_remote_addr, -+ is_ssl, -+) - from uvicorn.server import ServerState - - --class WebSocketSansIOProtocol(asyncio.Protocol): -+class WebSocketsSansIOProtocol(asyncio.Protocol): - def __init__( - self, - config: Config, -@@ -96,12 +103,20 @@ def connection_made(self, transport: BaseTransport) -> None: - self.logger.log(TRACE_LOG_LEVEL, "%sWebSocket connection made", prefix) - - def connection_lost(self, exc: Exception | None) -> None: -+ code = 1005 if self.handshake_complete else 1006 -+ self.queue.put_nowait({"type": "websocket.disconnect", "code": code}) - self.connections.remove(self) -+ - if self.logger.level <= TRACE_LOG_LEVEL: - prefix = "%s:%d - " % self.client if self.client else "" - self.logger.log(TRACE_LOG_LEVEL, "%sWebSocket connection lost", prefix) -- if self.handshake_initiated and not self.close_sent: -- self.queue.put_nowait({"type": "websocket.disconnect", "code": 1006}) -+ -+ self.handshake_complete = True -+ if exc is None: -+ self.transport.close() -+ -+ def eof_received(self) -> None: -+ pass - - def shutdown(self) -> None: - if not self.transport.is_closing(): -@@ -110,8 +125,8 @@ def shutdown(self) -> None: - self.close_sent = True - self.conn.send_close(1012) - output = self.conn.data_to_send() -- self.transport.writelines(output) -- elif self.handshake_initiated: -+ self.transport.write(b"".join(output)) -+ elif not self.handshake_initiated: - self.send_500_response() - self.queue.put_nowait({"type": "websocket.disconnect", "code": 1006}) - self.transport.close() -@@ -152,7 +167,7 @@ def handle_connect(self, event: Request) -> None: - self.close_sent = True - self.conn.send_response(self.response) - output = self.conn.data_to_send() -- self.transport.writelines(output) -+ self.transport.write(b"".join(output)) - self.transport.close() - return - -@@ -213,29 +228,29 @@ def send_receive_event_to_app(self) -> None: - - def handle_ping(self, event: Frame) -> None: - output = self.conn.data_to_send() -- self.transport.writelines(output) -+ self.transport.write(b"".join(output)) - - def handle_close(self, event: Frame) -> None: -- if not self.close_sent and self.conn.close_rcvd and not self.transport.is_closing(): -+ if not self.close_sent and not self.transport.is_closing(): - disconnect_event: WebSocketDisconnectEvent = { - "type": "websocket.disconnect", -- "code": self.conn.close_rcvd.code, -- "reason": self.conn.close_rcvd.reason, -+ "code": self.conn.close_rcvd.code, # type: ignore[union-attr] -+ "reason": self.conn.close_rcvd.reason, # type: ignore[union-attr] - } - self.queue.put_nowait(disconnect_event) - output = self.conn.data_to_send() -- self.transport.writelines(output) -- self.close_sent = True -+ self.transport.write(b"".join(output)) - self.transport.close() - - def handle_parser_exception(self) -> None: - disconnect_event: WebSocketDisconnectEvent = { - "type": "websocket.disconnect", -- "code": self.conn.close_sent.code if self.conn.close_sent else 1006, -+ "code": self.conn.close_sent.code, # type: ignore[union-attr] -+ "reason": self.conn.close_sent.reason, # type: ignore[union-attr] - } - self.queue.put_nowait(disconnect_event) - output = self.conn.data_to_send() -- self.transport.writelines(output) -+ self.transport.write(b"".join(output)) - self.close_sent = True - self.transport.close() - -@@ -245,10 +260,11 @@ def on_task_complete(self, task: asyncio.Task[None]) -> None: - async def run_asgi(self) -> None: - try: - result = await self.app(self.scope, self.receive, self.send) -+ except ClientDisconnected: -+ self.transport.close() - except BaseException: - self.logger.exception("Exception in ASGI application\n") -- if not self.handshake_complete: -- self.send_500_response() -+ self.send_500_response() - self.transport.close() - else: - if not self.handshake_complete: -@@ -262,10 +278,12 @@ async def run_asgi(self) -> None: - self.transport.close() - - def send_500_response(self) -> None: -+ if self.initial_response or self.handshake_complete: -+ return - response = self.conn.reject(500, "Internal Server Error") - self.conn.send_response(response) - output = self.conn.data_to_send() -- self.transport.writelines(output) -+ self.transport.write(b"".join(output)) - - async def send(self, message: ASGISendEvent) -> None: - await self.writable.wait() -@@ -293,7 +311,7 @@ async def send(self, message: ASGISendEvent) -> None: - self.handshake_complete = True - self.conn.send_response(self.response) - output = self.conn.data_to_send() -- self.transport.writelines(output) -+ self.transport.write(b"".join(output)) - - elif message_type == "websocket.close": - message = cast(WebSocketCloseEvent, message) -@@ -308,10 +326,12 @@ async def send(self, message: ASGISendEvent) -> None: - output = self.conn.data_to_send() - self.close_sent = True - self.handshake_complete = True -- self.transport.writelines(output) -+ self.transport.write(b"".join(output)) - self.transport.close() -- elif message_type == "websocket.http.response.start": -+ elif message_type == "websocket.http.response.start" and self.initial_response is None: - message = cast(WebSocketResponseStartEvent, message) -+ if not (100 <= message["status"] < 600): -+ raise RuntimeError("Invalid HTTP status code '%d' in response." % message["status"]) - self.logger.info( - '%s - "WebSocket %s" %d', - self.scope["client"], -@@ -329,34 +349,36 @@ async def send(self, message: ASGISendEvent) -> None: - "or 'websocket.http.response.start' " - "but got '%s'." - ) -- print(message) - raise RuntimeError(msg % message_type) - - elif not self.close_sent and self.initial_response is None: -- if message_type == "websocket.send" and not self.transport.is_closing(): -- message = cast(WebSocketSendEvent, message) -- bytes_data = message.get("bytes") -- text_data = message.get("text") -- if text_data: -- self.conn.send_text(text_data.encode()) -- elif bytes_data: -- self.conn.send_binary(bytes_data) -- output = self.conn.data_to_send() -- self.transport.writelines(output) -- -- elif message_type == "websocket.close" and not self.transport.is_closing(): -- message = cast(WebSocketCloseEvent, message) -- code = message.get("code", 1000) -- reason = message.get("reason", "") or "" -- self.queue.put_nowait({"type": "websocket.disconnect", "code": code}) -- self.conn.send_close(code, reason) -- output = self.conn.data_to_send() -- self.transport.writelines(output) -- self.close_sent = True -- self.transport.close() -- else: -- msg = "Expected ASGI message 'websocket.send' or 'websocket.close'," " but got '%s'." -- raise RuntimeError(msg % message_type) -+ try: -+ if message_type == "websocket.send": -+ message = cast(WebSocketSendEvent, message) -+ bytes_data = message.get("bytes") -+ text_data = message.get("text") -+ if text_data: -+ self.conn.send_text(text_data.encode()) -+ elif bytes_data: -+ self.conn.send_binary(bytes_data) -+ output = self.conn.data_to_send() -+ self.transport.write(b"".join(output)) -+ -+ elif message_type == "websocket.close" and not self.transport.is_closing(): -+ message = cast(WebSocketCloseEvent, message) -+ code = message.get("code", 1000) -+ reason = message.get("reason", "") or "" -+ self.queue.put_nowait({"type": "websocket.disconnect", "code": code}) -+ self.conn.send_close(code, reason) -+ output = self.conn.data_to_send() -+ self.transport.write(b"".join(output)) -+ self.close_sent = True -+ self.transport.close() -+ else: -+ msg = "Expected ASGI message 'websocket.send' or 'websocket.close'," " but got '%s'." -+ raise RuntimeError(msg % message_type) -+ except InvalidState: -+ raise ClientDisconnected() - elif self.initial_response is not None: - if message_type == "websocket.http.response.body": - message = cast(WebSocketResponseBodyEvent, message) -@@ -365,10 +387,11 @@ async def send(self, message: ASGISendEvent) -> None: - if not message.get("more_body", False): - response = self.conn.reject(self.initial_response[0], body.decode()) - response.headers.update(self.initial_response[1]) -+ self.queue.put_nowait({"type": "websocket.disconnect", "code": 1006}) - self.conn.send_response(response) - output = self.conn.data_to_send() - self.close_sent = True -- self.transport.writelines(output) -+ self.transport.write(b"".join(output)) - self.transport.close() - else: - msg = "Expected ASGI message 'websocket.http.response.body' " "but got '%s'." -diff --git a/uvicorn/server.py b/uvicorn/server.py -index 2250e2dc7..e33716fd4 100644 ---- a/uvicorn/server.py -+++ b/uvicorn/server.py -@@ -22,10 +22,10 @@ - from uvicorn.protocols.http.h11_impl import H11Protocol - from uvicorn.protocols.http.httptools_impl import HttpToolsProtocol - from uvicorn.protocols.websockets.websockets_impl import WebSocketProtocol -- from uvicorn.protocols.websockets.websockets_sansio_impl import WebSocketSansIOProtocol -+ from uvicorn.protocols.websockets.websockets_sansio_impl import WebSocketsSansIOProtocol - from uvicorn.protocols.websockets.wsproto_impl import WSProtocol - -- Protocols = Union[H11Protocol, HttpToolsProtocol, WSProtocol, WebSocketProtocol, WebSocketSansIOProtocol] -+ Protocols = Union[H11Protocol, HttpToolsProtocol, WSProtocol, WebSocketProtocol, WebSocketsSansIOProtocol] - - HANDLED_SIGNALS = ( - signal.SIGINT, # Unix signal 2. Sent by Ctrl+C. - -From 035e7c38e98dbdbe81eae19f63ee8e1bfa1d1e4c Mon Sep 17 00:00:00 2001 -From: Marcelo Trylesinski -Date: Sat, 14 Dec 2024 17:55:28 +0100 -Subject: [PATCH 3/7] lint - ---- - tests/middleware/test_proxy_headers.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/tests/middleware/test_proxy_headers.py b/tests/middleware/test_proxy_headers.py -index 62a51ab20..d300c45f8 100644 ---- a/tests/middleware/test_proxy_headers.py -+++ b/tests/middleware/test_proxy_headers.py -@@ -5,8 +5,8 @@ - import httpx - import httpx._transports.asgi - import pytest -- - import websockets.client -+ - from tests.response import Response - from tests.utils import run_server - from uvicorn._types import ASGIReceiveCallable, ASGISendCallable, Scope - -From eac77b7d86edb6a2ebcf9e2f380db18bb46fe684 Mon Sep 17 00:00:00 2001 -From: Marcelo Trylesinski -Date: Sat, 14 Dec 2024 17:57:33 +0100 -Subject: [PATCH 4/7] pin python versions - ---- - requirements.txt | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/requirements.txt b/requirements.txt -index fd2334d02..366a0963a 100644 ---- a/requirements.txt -+++ b/requirements.txt -@@ -7,7 +7,8 @@ h11 @ git+https://github.com/python-hyper/h11.git@master - # Explicit optionals - a2wsgi==1.10.7 - wsproto==1.2.0 --websockets==14.1 -+websockets==13.1; python_version < '3.9' -+websockets==14.1; python_version >= '3.9' - - # Packaging - build==1.2.2.post1 - -From 032c00c5a13167deb638a1a5e13c9ccee091598a Mon Sep 17 00:00:00 2001 -From: Marcelo Trylesinski -Date: Sun, 15 Dec 2024 13:18:34 +0100 -Subject: [PATCH 5/7] Update requirements.txt - ---- - requirements.txt | 3 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) - -diff --git a/requirements.txt b/requirements.txt -index 366a0963a..b3a464c0b 100644 ---- a/requirements.txt -+++ b/requirements.txt -@@ -7,8 +7,7 @@ h11 @ git+https://github.com/python-hyper/h11.git@master - # Explicit optionals - a2wsgi==1.10.7 - wsproto==1.2.0 --websockets==13.1; python_version < '3.9' --websockets==14.1; python_version >= '3.9' -+websockets==13.1 - - # Packaging - build==1.2.2.post1 - -From c523508d5b5959bba65ebe1da2b4d3550e3c6674 Mon Sep 17 00:00:00 2001 -From: Marcelo Trylesinski -Date: Sun, 15 Dec 2024 14:27:48 +0100 -Subject: [PATCH 6/7] Add a bit more coverage - ---- - tests/protocols/test_websocket.py | 23 +++++++++---------- - .../websockets/websockets_sansio_impl.py | 20 +++++++--------- - 2 files changed, 19 insertions(+), 24 deletions(-) - -diff --git a/tests/protocols/test_websocket.py b/tests/protocols/test_websocket.py -index 8971a7d97..e7285449c 100644 ---- a/tests/protocols/test_websocket.py -+++ b/tests/protocols/test_websocket.py -@@ -7,6 +7,8 @@ - import httpx - import pytest - import websockets -+import websockets.asyncio -+import websockets.asyncio.client - import websockets.client - import websockets.exceptions - from typing_extensions import TypedDict -@@ -603,18 +605,15 @@ async def app(scope: Scope, receive: ASGIReceiveCallable, send: ASGISendCallable - - async def websocket_session(uri: str): - async with httpx.AsyncClient() as client: -- try: -- await client.get( -- f"http://127.0.0.1:{unused_tcp_port}", -- headers={ -- "upgrade": "websocket", -- "connection": "upgrade", -- "sec-websocket-version": "13", -- "sec-websocket-key": "dGhlIHNhbXBsZSBub25jZQ==", -- }, -- ) -- except httpx.RemoteProtocolError: -- pass # pragma: no cover -+ await client.get( -+ f"http://127.0.0.1:{unused_tcp_port}", -+ headers={ -+ "upgrade": "websocket", -+ "connection": "upgrade", -+ "sec-websocket-version": "13", -+ "sec-websocket-key": "dGhlIHNhbXBsZSBub25jZQ==", -+ }, -+ ) - - config = Config(app=app, ws=ws_protocol_cls, http=http_protocol_cls, lifespan="off", port=unused_tcp_port) - async with run_server(config): -diff --git a/uvicorn/protocols/websockets/websockets_sansio_impl.py b/uvicorn/protocols/websockets/websockets_sansio_impl.py -index ea70236b2..994af07e7 100644 ---- a/uvicorn/protocols/websockets/websockets_sansio_impl.py -+++ b/uvicorn/protocols/websockets/websockets_sansio_impl.py -@@ -119,17 +119,14 @@ def eof_received(self) -> None: - pass - - def shutdown(self) -> None: -- if not self.transport.is_closing(): -- if self.handshake_complete: -- self.queue.put_nowait({"type": "websocket.disconnect", "code": 1012}) -- self.close_sent = True -- self.conn.send_close(1012) -- output = self.conn.data_to_send() -- self.transport.write(b"".join(output)) -- elif not self.handshake_initiated: -- self.send_500_response() -- self.queue.put_nowait({"type": "websocket.disconnect", "code": 1006}) -- self.transport.close() -+ if self.handshake_complete: -+ self.queue.put_nowait({"type": "websocket.disconnect", "code": 1012}) -+ self.conn.send_close(1012) -+ output = self.conn.data_to_send() -+ self.transport.write(b"".join(output)) -+ else: -+ self.send_500_response() -+ self.transport.close() - - def data_received(self, data: bytes) -> None: - self.conn.receive_data(data) -@@ -161,7 +158,6 @@ def handle_connect(self, event: Request) -> None: - self.request = event - self.response = self.conn.accept(event) - self.handshake_initiated = True -- # if status_code is not 101 return response - if self.response.status_code != 101: - self.handshake_complete = True - self.close_sent = True - -From f774f2fcb04b3cfe0f3046cdd9298b04b55daf9a Mon Sep 17 00:00:00 2001 -From: Marcelo Trylesinski -Date: Sat, 19 Apr 2025 15:45:45 +0200 -Subject: [PATCH 7/7] Apply comments - ---- - tests/middleware/test_logging.py | 3 ++- - uvicorn/protocols/websockets/websockets_sansio_impl.py | 6 +++--- - 2 files changed, 5 insertions(+), 4 deletions(-) - -diff --git a/tests/middleware/test_logging.py b/tests/middleware/test_logging.py -index 63d7daf83..1b8b4fbb1 100644 ---- a/tests/middleware/test_logging.py -+++ b/tests/middleware/test_logging.py -@@ -10,6 +10,7 @@ - import pytest - import websockets - import websockets.client -+from websockets.protocol import State - - from tests.utils import run_server - from uvicorn import Config -@@ -108,7 +109,7 @@ async def websocket_app(scope: Scope, receive: ASGIReceiveCallable, send: ASGISe - - async def open_connection(url: str): - async with websockets.client.connect(url) as websocket: -- return websocket.open -+ return websocket.state is State.OPEN - - config = Config( - app=websocket_app, -diff --git a/uvicorn/protocols/websockets/websockets_sansio_impl.py b/uvicorn/protocols/websockets/websockets_sansio_impl.py -index 994af07e7..b518c8407 100644 ---- a/uvicorn/protocols/websockets/websockets_sansio_impl.py -+++ b/uvicorn/protocols/websockets/websockets_sansio_impl.py -@@ -7,7 +7,7 @@ - from typing import Any, Literal, cast - from urllib.parse import unquote - --from websockets import InvalidState -+from websockets.exceptions import InvalidState - from websockets.extensions.permessage_deflate import ServerPerMessageDeflateFactory - from websockets.frames import Frame, Opcode - from websockets.http11 import Request -@@ -371,7 +371,7 @@ async def send(self, message: ASGISendEvent) -> None: - self.close_sent = True - self.transport.close() - else: -- msg = "Expected ASGI message 'websocket.send' or 'websocket.close'," " but got '%s'." -+ msg = "Expected ASGI message 'websocket.send' or 'websocket.close', but got '%s'." - raise RuntimeError(msg % message_type) - except InvalidState: - raise ClientDisconnected() -@@ -390,7 +390,7 @@ async def send(self, message: ASGISendEvent) -> None: - self.transport.write(b"".join(output)) - self.transport.close() - else: -- msg = "Expected ASGI message 'websocket.http.response.body' " "but got '%s'." -+ msg = "Expected ASGI message 'websocket.http.response.body' but got '%s'." - raise RuntimeError(msg % message_type) - - else: diff --git a/user/uvicorn/2541_bump-wesockets-on-requirements.patch b/user/uvicorn/2541_bump-wesockets-on-requirements.patch deleted file mode 100644 index 6b9f671..0000000 --- a/user/uvicorn/2541_bump-wesockets-on-requirements.patch +++ /dev/null @@ -1,559 +0,0 @@ -diff --git a/requirements.txt b/requirements.txt -index e26e6b3..b16569f 100644 ---- a/requirements.txt -+++ b/requirements.txt -@@ -7,7 +7,7 @@ h11 @ git+https://github.com/python-hyper/h11.git@master - # Explicit optionals - a2wsgi==1.10.7 - wsproto==1.2.0 --websockets==13.1 -+websockets==14.1 - - # Packaging - build==1.2.2.post1 -diff --git a/tests/middleware/test_proxy_headers.py b/tests/middleware/test_proxy_headers.py -index d300c45..4b5f195 100644 ---- a/tests/middleware/test_proxy_headers.py -+++ b/tests/middleware/test_proxy_headers.py -@@ -5,7 +5,7 @@ from typing import TYPE_CHECKING - import httpx - import httpx._transports.asgi - import pytest --import websockets.client -+from websockets.asyncio.client import connect - - from tests.response import Response - from tests.utils import run_server -@@ -479,7 +479,7 @@ async def test_proxy_headers_websocket_x_forwarded_proto( - async with run_server(config): - url = f"ws://127.0.0.1:{unused_tcp_port}" - headers = {X_FORWARDED_FOR: "1.2.3.4", X_FORWARDED_PROTO: forwarded_proto} -- async with websockets.client.connect(url, extra_headers=headers) as websocket: -+ async with connect(url, additional_headers=headers) as websocket: - data = await websocket.recv() - assert data == expected - -diff --git a/uvicorn/protocols/websockets/websockets_impl.py b/uvicorn/protocols/websockets/websockets_impl.py -index cd6c54f..685d6b6 100644 ---- a/uvicorn/protocols/websockets/websockets_impl.py -+++ b/uvicorn/protocols/websockets/websockets_impl.py -@@ -13,8 +13,7 @@ from websockets.datastructures import Headers - from websockets.exceptions import ConnectionClosed - from websockets.extensions.base import ServerExtensionFactory - from websockets.extensions.permessage_deflate import ServerPerMessageDeflateFactory --from websockets.legacy.server import HTTPResponse --from websockets.server import WebSocketServerProtocol -+from websockets.legacy.server import HTTPResponse, WebSocketServerProtocol - from websockets.typing import Subprotocol - - from uvicorn._types import ( -diff --git a/uvicorn/protocols/websockets/wsproto_impl.py b/uvicorn/protocols/websockets/wsproto_impl.py -index 828afe5..5d84bff 100644 ---- a/uvicorn/protocols/websockets/wsproto_impl.py -+++ b/uvicorn/protocols/websockets/wsproto_impl.py -@@ -149,12 +149,13 @@ class WSProtocol(asyncio.Protocol): - self.writable.set() # pragma: full coverage - - def shutdown(self) -> None: -- if self.handshake_complete: -- self.queue.put_nowait({"type": "websocket.disconnect", "code": 1012}) -- output = self.conn.send(wsproto.events.CloseConnection(code=1012)) -- self.transport.write(output) -- else: -- self.send_500_response() -+ if not self.response_started: -+ if self.handshake_complete: -+ self.queue.put_nowait({"type": "websocket.disconnect", "code": 1012}) -+ output = self.conn.send(wsproto.events.CloseConnection(code=1012)) -+ self.transport.write(output) -+ else: -+ self.send_500_response() - self.transport.close() - - def on_task_complete(self, task: asyncio.Task[None]) -> None: -@@ -221,13 +222,15 @@ class WSProtocol(asyncio.Protocol): - def send_500_response(self) -> None: - if self.response_started or self.handshake_complete: - return # we cannot send responses anymore -+ reject_data = b"Internal Server Error" - headers: list[tuple[bytes, bytes]] = [ - (b"content-type", b"text/plain; charset=utf-8"), -+ (b"content-length", str(len(reject_data)).encode()), - (b"connection", b"close"), - (b"content-length", b"21"), - ] - output = self.conn.send(wsproto.events.RejectConnection(status_code=500, headers=headers, has_body=True)) -- output += self.conn.send(wsproto.events.RejectData(data=b"Internal Server Error")) -+ output += self.conn.send(wsproto.events.RejectData(data=reject_data)) - self.transport.write(output) - - async def run_asgi(self) -> None: -diff --git a/tests/middleware/test_logging.py.orig b/tests/middleware/test_logging.py -index 1b8b4fbb108..a8a74ee8ca0 100644 ---- a/tests/middleware/test_logging.py.orig -+++ b/tests/middleware/test_logging.py -@@ -8,8 +8,7 @@ import typing - - import httpx - import pytest --import websockets --import websockets.client -+from websockets.asyncio.client import connect - from websockets.protocol import State - - from tests.utils import run_server -@@ -108,8 +107,8 @@ async def test_trace_logging_on_ws_protocol( - break - - async def open_connection(url: str): -- async with websockets.client.connect(url) as websocket: -- return websocket.state is State.OPEN -+ async with connect(url): -+ return True - - config = Config( - app=websocket_app, -diff --git a/tests/protocols/test_websocket.py.orig b/tests/protocols/test_websocket.py -index 399769b6395..9971f4bbecd 100644 ---- a/tests/protocols/test_websocket.py.orig -+++ b/tests/protocols/test_websocket.py -@@ -11,6 +11,8 @@ import websockets.asyncio - import websockets.asyncio.client - import websockets.client - import websockets.exceptions -+from websockets.asyncio.client import ClientConnection, connect -+from websockets.exceptions import ConnectionClosed, ConnectionClosedError, InvalidHandshake, InvalidStatus - from websockets.extensions.permessage_deflate import ClientPerMessageDeflateFactory - from websockets.typing import Subprotocol - -@@ -126,8 +128,8 @@ async def test_accept_connection(ws_protocol_cls: WSProtocol, http_protocol_cls: - await self.send({"type": "websocket.accept"}) - - async def open_connection(url: str): -- async with websockets.client.connect(url) as websocket: -- return websocket.open -+ async with connect(url): -+ return True - - config = Config(app=App, ws=ws_protocol_cls, http=http_protocol_cls, lifespan="off", port=unused_tcp_port) - async with run_server(config): -@@ -142,7 +144,7 @@ async def test_shutdown(ws_protocol_cls: WSProtocol, http_protocol_cls: HTTPProt - - config = Config(app=App, ws=ws_protocol_cls, http=http_protocol_cls, lifespan="off", port=unused_tcp_port) - async with run_server(config) as server: -- async with websockets.client.connect(f"ws://127.0.0.1:{unused_tcp_port}"): -+ async with connect(f"ws://127.0.0.1:{unused_tcp_port}"): - # Attempt shutdown while connection is still open - await server.shutdown() - -@@ -156,8 +158,8 @@ async def test_supports_permessage_deflate_extension( - - async def open_connection(url: str): - extension_factories = [ClientPerMessageDeflateFactory()] -- async with websockets.client.connect(url, extensions=extension_factories) as websocket: -- return [extension.name for extension in websocket.extensions] -+ async with connect(url, extensions=extension_factories) as websocket: -+ return [extension.name for extension in websocket.protocol.extensions] - - config = Config(app=App, ws=ws_protocol_cls, http=http_protocol_cls, lifespan="off", port=unused_tcp_port) - async with run_server(config): -@@ -176,8 +178,8 @@ async def test_can_disable_permessage_deflate_extension( - # enable per-message deflate on the client, so that we can check the server - # won't support it when it's disabled. - extension_factories = [ClientPerMessageDeflateFactory()] -- async with websockets.client.connect(url, extensions=extension_factories) as websocket: -- return [extension.name for extension in websocket.extensions] -+ async with connect(url, extensions=extension_factories) as websocket: -+ return [extension.name for extension in websocket.protocol.extensions] - - config = Config( - app=App, -@@ -199,8 +201,8 @@ async def test_close_connection(ws_protocol_cls: WSProtocol, http_protocol_cls: - - async def open_connection(url: str): - try: -- await websockets.client.connect(url) -- except websockets.exceptions.InvalidHandshake: -+ await connect(url) -+ except InvalidHandshake: - return False - return True # pragma: no cover - -@@ -220,8 +222,8 @@ async def test_headers(ws_protocol_cls: WSProtocol, http_protocol_cls: HTTPProto - await self.send({"type": "websocket.accept"}) - - async def open_connection(url: str): -- async with websockets.client.connect(url, extra_headers=[("username", "abraão")]) as websocket: -- return websocket.open -+ async with connect(url, additional_headers=[("username", "abraão")]): -+ return True - - config = Config(app=App, ws=ws_protocol_cls, http=http_protocol_cls, lifespan="off", port=unused_tcp_port) - async with run_server(config): -@@ -235,8 +237,9 @@ async def test_extra_headers(ws_protocol_cls: WSProtocol, http_protocol_cls: HTT - await self.send({"type": "websocket.accept", "headers": [(b"extra", b"header")]}) - - async def open_connection(url: str): -- async with websockets.client.connect(url) as websocket: -- return websocket.response_headers -+ async with connect(url) as websocket: -+ assert websocket.response -+ return websocket.response.headers - - config = Config(app=App, ws=ws_protocol_cls, http=http_protocol_cls, lifespan="off", port=unused_tcp_port) - async with run_server(config): -@@ -254,8 +257,8 @@ async def test_path_and_raw_path(ws_protocol_cls: WSProtocol, http_protocol_cls: - await self.send({"type": "websocket.accept"}) - - async def open_connection(url: str): -- async with websockets.client.connect(url) as websocket: -- return websocket.open -+ async with connect(url): -+ return True - - config = Config(app=App, ws=ws_protocol_cls, http=http_protocol_cls, lifespan="off", port=unused_tcp_port) - async with run_server(config): -@@ -272,7 +275,7 @@ async def test_send_text_data_to_client( - await self.send({"type": "websocket.send", "text": "123"}) - - async def get_data(url: str): -- async with websockets.client.connect(url) as websocket: -+ async with connect(url) as websocket: - return await websocket.recv() - - config = Config(app=App, ws=ws_protocol_cls, http=http_protocol_cls, lifespan="off", port=unused_tcp_port) -@@ -290,7 +293,7 @@ async def test_send_binary_data_to_client( - await self.send({"type": "websocket.send", "bytes": b"123"}) - - async def get_data(url: str): -- async with websockets.client.connect(url) as websocket: -+ async with connect(url) as websocket: - return await websocket.recv() - - config = Config(app=App, ws=ws_protocol_cls, http=http_protocol_cls, lifespan="off", port=unused_tcp_port) -@@ -309,7 +312,7 @@ async def test_send_and_close_connection( - await self.send({"type": "websocket.close"}) - - async def get_data(url: str): -- async with websockets.client.connect(url) as websocket: -+ async with connect(url) as websocket: - data = await websocket.recv() - is_open = True - try: -@@ -338,7 +341,7 @@ async def test_send_text_data_to_server( - await self.send({"type": "websocket.send", "text": _text}) - - async def send_text(url: str): -- async with websockets.client.connect(url) as websocket: -+ async with connect(url) as websocket: - await websocket.send("abc") - return await websocket.recv() - -@@ -361,7 +364,7 @@ async def test_send_binary_data_to_server( - await self.send({"type": "websocket.send", "bytes": _bytes}) - - async def send_text(url: str): -- async with websockets.client.connect(url) as websocket: -+ async with connect(url) as websocket: - await websocket.send(b"abc") - return await websocket.recv() - -@@ -383,7 +386,7 @@ async def test_send_after_protocol_close( - await self.send({"type": "websocket.send", "text": "123"}) - - async def get_data(url: str): -- async with websockets.client.connect(url) as websocket: -+ async with connect(url) as websocket: - data = await websocket.recv() - is_open = True - try: -@@ -403,14 +406,14 @@ async def test_missing_handshake(ws_protocol_cls: WSProtocol, http_protocol_cls: - async def app(scope: Scope, receive: ASGIReceiveCallable, send: ASGISendCallable): - pass - -- async def connect(url: str): -- await websockets.client.connect(url) -+ async def open_connection(url: str): -+ await connect(url) - - config = Config(app=app, ws=ws_protocol_cls, http=http_protocol_cls, lifespan="off", port=unused_tcp_port) - async with run_server(config): -- with pytest.raises(websockets.exceptions.InvalidStatusCode) as exc_info: -- await connect(f"ws://127.0.0.1:{unused_tcp_port}") -- assert exc_info.value.status_code == 500 -+ with pytest.raises(InvalidStatus) as exc_info: -+ await open_connection(f"ws://127.0.0.1:{unused_tcp_port}") -+ assert exc_info.value.response.status_code == 500 - - - async def test_send_before_handshake( -@@ -419,14 +422,14 @@ async def test_send_before_handshake( - async def app(scope: Scope, receive: ASGIReceiveCallable, send: ASGISendCallable): - await send({"type": "websocket.send", "text": "123"}) - -- async def connect(url: str): -- await websockets.client.connect(url) -+ async def open_connection(url: str): -+ await connect(url) - - config = Config(app=app, ws=ws_protocol_cls, http=http_protocol_cls, lifespan="off", port=unused_tcp_port) - async with run_server(config): -- with pytest.raises(websockets.exceptions.InvalidStatusCode) as exc_info: -- await connect(f"ws://127.0.0.1:{unused_tcp_port}") -- assert exc_info.value.status_code == 500 -+ with pytest.raises(InvalidStatus) as exc_info: -+ await open_connection(f"ws://127.0.0.1:{unused_tcp_port}") -+ assert exc_info.value.response.status_code == 500 - - - async def test_duplicate_handshake(ws_protocol_cls: WSProtocol, http_protocol_cls: HTTPProtocol, unused_tcp_port: int): -@@ -436,10 +439,10 @@ async def test_duplicate_handshake(ws_protocol_cls: WSProtocol, http_protocol_cl - - config = Config(app=app, ws=ws_protocol_cls, http=http_protocol_cls, lifespan="off", port=unused_tcp_port) - async with run_server(config): -- async with websockets.client.connect(f"ws://127.0.0.1:{unused_tcp_port}") as websocket: -- with pytest.raises(websockets.exceptions.ConnectionClosed): -+ async with connect(f"ws://127.0.0.1:{unused_tcp_port}") as websocket: -+ with pytest.raises(ConnectionClosed): - _ = await websocket.recv() -- assert websocket.close_code == 1006 -+ assert websocket.protocol.close_code == 1006 - - - async def test_asgi_return_value(ws_protocol_cls: WSProtocol, http_protocol_cls: HTTPProtocol, unused_tcp_port: int): -@@ -454,10 +457,10 @@ async def test_asgi_return_value(ws_protocol_cls: WSProtocol, http_protocol_cls: - - config = Config(app=app, ws=ws_protocol_cls, http=http_protocol_cls, lifespan="off", port=unused_tcp_port) - async with run_server(config): -- async with websockets.client.connect(f"ws://127.0.0.1:{unused_tcp_port}") as websocket: -- with pytest.raises(websockets.exceptions.ConnectionClosed): -+ async with connect(f"ws://127.0.0.1:{unused_tcp_port}") as websocket: -+ with pytest.raises(ConnectionClosed): - _ = await websocket.recv() -- assert websocket.close_code == 1006 -+ assert websocket.protocol.close_code == 1006 - - - @pytest.mark.parametrize("code", [None, 1000, 1001]) -@@ -489,13 +492,13 @@ async def test_app_close( - - config = Config(app=app, ws=ws_protocol_cls, http=http_protocol_cls, lifespan="off", port=unused_tcp_port) - async with run_server(config): -- async with websockets.client.connect(f"ws://127.0.0.1:{unused_tcp_port}") as websocket: -+ async with connect(f"ws://127.0.0.1:{unused_tcp_port}") as websocket: - await websocket.ping() - await websocket.send("abc") -- with pytest.raises(websockets.exceptions.ConnectionClosed): -+ with pytest.raises(ConnectionClosed): - await websocket.recv() -- assert websocket.close_code == (code or 1000) -- assert websocket.close_reason == (reason or "") -+ assert websocket.protocol.close_code == (code or 1000) -+ assert websocket.protocol.close_reason == (reason or "") - - - async def test_client_close(ws_protocol_cls: WSProtocol, http_protocol_cls: HTTPProtocol, unused_tcp_port: int): -@@ -514,7 +517,7 @@ async def test_client_close(ws_protocol_cls: WSProtocol, http_protocol_cls: HTTP - break - - async def websocket_session(url: str): -- async with websockets.client.connect(url) as websocket: -+ async with connect(url) as websocket: - await websocket.ping() - await websocket.send("abc") - await websocket.close(code=1001, reason="custom reason") -@@ -551,7 +554,7 @@ async def test_client_connection_lost( - port=unused_tcp_port, - ) - async with run_server(config): -- async with websockets.client.connect(f"ws://127.0.0.1:{unused_tcp_port}") as websocket: -+ async with connect(f"ws://127.0.0.1:{unused_tcp_port}") as websocket: - websocket.transport.close() - await asyncio.sleep(0.1) - got_disconnect_event_before_shutdown = got_disconnect_event -@@ -579,7 +582,7 @@ async def test_client_connection_lost_on_send( - config = Config(app=app, ws=ws_protocol_cls, http=http_protocol_cls, lifespan="off", port=unused_tcp_port) - async with run_server(config): - url = f"ws://127.0.0.1:{unused_tcp_port}" -- async with websockets.client.connect(url): -+ async with connect(url): - await asyncio.sleep(0.1) - disconnect.set() - -@@ -638,11 +641,11 @@ async def test_send_close_on_server_shutdown( - disconnect_message = message - break - -- websocket: websockets.client.WebSocketClientProtocol | None = None -+ websocket: ClientConnection | None = None - - async def websocket_session(uri: str): - nonlocal websocket -- async with websockets.client.connect(uri) as ws_connection: -+ async with connect(uri) as ws_connection: - websocket = ws_connection - await server_shutdown_event.wait() - -@@ -672,9 +675,7 @@ async def test_subprotocols( - await self.send({"type": "websocket.accept", "subprotocol": subprotocol}) - - async def get_subprotocol(url: str): -- async with websockets.client.connect( -- url, subprotocols=[Subprotocol("proto1"), Subprotocol("proto2")] -- ) as websocket: -+ async with connect(url, subprotocols=[Subprotocol("proto1"), Subprotocol("proto2")]) as websocket: - return websocket.subprotocol - - config = Config(app=App, ws=ws_protocol_cls, http=http_protocol_cls, lifespan="off", port=unused_tcp_port) -@@ -684,7 +685,7 @@ async def test_subprotocols( - - - MAX_WS_BYTES = 1024 * 1024 * 16 --MAX_WS_BYTES_PLUS1 = MAX_WS_BYTES + 1 -+MAX_WS_BYTES_PLUS1 = MAX_WS_BYTES + 10 - - - @pytest.mark.parametrize( -@@ -727,15 +728,15 @@ async def test_send_binary_data_to_server_bigger_than_default_on_websockets( - port=unused_tcp_port, - ) - async with run_server(config): -- async with websockets.client.connect(f"ws://127.0.0.1:{unused_tcp_port}", max_size=client_size_sent) as ws: -+ async with connect(f"ws://127.0.0.1:{unused_tcp_port}", max_size=client_size_sent) as ws: - await ws.send(b"\x01" * client_size_sent) - if expected_result == 0: - data = await ws.recv() - assert data == b"\x01" * client_size_sent - else: -- with pytest.raises(websockets.exceptions.ConnectionClosedError): -+ with pytest.raises(ConnectionClosedError): - await ws.recv() -- assert ws.close_code == expected_result -+ assert ws.protocol.close_code == expected_result - - - async def test_server_reject_connection( -@@ -760,10 +761,10 @@ async def test_server_reject_connection( - disconnected_message = await receive() - - async def websocket_session(url: str): -- with pytest.raises(websockets.exceptions.InvalidStatusCode) as exc_info: -- async with websockets.client.connect(url): -+ with pytest.raises(InvalidStatus) as exc_info: -+ async with connect(url): - pass # pragma: no cover -- assert exc_info.value.status_code == 403 -+ assert exc_info.value.response.status_code == 403 - - config = Config(app=app, ws=ws_protocol_cls, http=http_protocol_cls, lifespan="off", port=unused_tcp_port) - async with run_server(config): -@@ -933,10 +934,10 @@ async def test_server_reject_connection_with_invalid_msg( - await send(message) - - async def websocket_session(url: str): -- with pytest.raises(websockets.exceptions.InvalidStatusCode) as exc_info: -- async with websockets.client.connect(url): -+ with pytest.raises(InvalidStatus) as exc_info: -+ async with connect(url): - pass # pragma: no cover -- assert exc_info.value.status_code == 404 -+ assert exc_info.value.response.status_code == 404 - - config = Config(app=app, ws=ws_protocol_cls, http=http_protocol_cls, lifespan="off", port=unused_tcp_port) - async with run_server(config): -@@ -967,10 +968,10 @@ async def test_server_reject_connection_with_missing_body( - # no further message - - async def websocket_session(url: str): -- with pytest.raises(websockets.exceptions.InvalidStatusCode) as exc_info: -- async with websockets.client.connect(url): -+ with pytest.raises(InvalidStatus) as exc_info: -+ async with connect(url): - pass # pragma: no cover -- assert exc_info.value.status_code == 404 -+ assert exc_info.value.response.status_code == 404 - - config = Config(app=app, ws=ws_protocol_cls, http=http_protocol_cls, lifespan="off", port=unused_tcp_port) - async with run_server(config): -@@ -1010,10 +1011,10 @@ async def test_server_multiple_websocket_http_response_start_events( - exception_message = str(exc) - - async def websocket_session(url: str): -- with pytest.raises(websockets.exceptions.InvalidStatusCode) as exc_info: -- async with websockets.client.connect(url): -+ with pytest.raises(InvalidStatus) as exc_info: -+ async with connect(url): - pass # pragma: no cover -- assert exc_info.value.status_code == 404 -+ assert exc_info.value.response.status_code == 404 - - config = Config(app=app, ws=ws_protocol_cls, http=http_protocol_cls, lifespan="off", port=unused_tcp_port) - async with run_server(config): -@@ -1049,7 +1050,7 @@ async def test_server_can_read_messages_in_buffer_after_close( - - config = Config(app=App, ws=ws_protocol_cls, http=http_protocol_cls, lifespan="off", port=unused_tcp_port) - async with run_server(config): -- async with websockets.client.connect(f"ws://127.0.0.1:{unused_tcp_port}") as websocket: -+ async with connect(f"ws://127.0.0.1:{unused_tcp_port}") as websocket: - await websocket.send(b"abc") - await websocket.send(b"abc") - await websocket.send(b"abc") -@@ -1066,8 +1067,9 @@ async def test_default_server_headers( - await self.send({"type": "websocket.accept"}) - - async def open_connection(url: str): -- async with websockets.client.connect(url) as websocket: -- return websocket.response_headers -+ async with connect(url) as websocket: -+ assert websocket.response -+ return websocket.response.headers - - config = Config(app=App, ws=ws_protocol_cls, http=http_protocol_cls, lifespan="off", port=unused_tcp_port) - async with run_server(config): -@@ -1081,8 +1083,9 @@ async def test_no_server_headers(ws_protocol_cls: WSProtocol, http_protocol_cls: - await self.send({"type": "websocket.accept"}) - - async def open_connection(url: str): -- async with websockets.client.connect(url) as websocket: -- return websocket.response_headers -+ async with connect(url) as websocket: -+ assert websocket.response -+ return websocket.response.headers - - config = Config( - app=App, -@@ -1104,8 +1107,9 @@ async def test_no_date_header_on_wsproto(http_protocol_cls: HTTPProtocol, unused - await self.send({"type": "websocket.accept"}) - - async def open_connection(url: str): -- async with websockets.client.connect(url) as websocket: -- return websocket.response_headers -+ async with connect(url) as websocket: -+ assert websocket.response -+ return websocket.response.headers - - config = Config( - app=App, -@@ -1136,8 +1140,9 @@ async def test_multiple_server_header( - ) - - async def open_connection(url: str): -- async with websockets.client.connect(url) as websocket: -- return websocket.response_headers -+ async with connect(url) as websocket: -+ assert websocket.response -+ return websocket.response.headers - - config = Config(app=App, ws=ws_protocol_cls, http=http_protocol_cls, lifespan="off", port=unused_tcp_port) - async with run_server(config): -@@ -1172,8 +1177,8 @@ async def test_lifespan_state(ws_protocol_cls: WSProtocol, http_protocol_cls: HT - await self.send({"type": "websocket.accept"}) - - async def open_connection(url: str): -- async with websockets.client.connect(url) as websocket: -- return websocket.open -+ async with connect(url): -+ return True - - async def app_wrapper(scope: Scope, receive: ASGIReceiveCallable, send: ASGISendCallable): - if scope["type"] == "lifespan": diff --git a/user/uvicorn/APKBUILD b/user/uvicorn/APKBUILD deleted file mode 100644 index 62d0a4c..0000000 --- a/user/uvicorn/APKBUILD +++ /dev/null @@ -1,55 +0,0 @@ -maintainer="Michał Polański " -pkgname=uvicorn -pkgver=0.34.2 -pkgrel=0 -pkgdesc="Lightning-fast ASGI server" -url="https://www.uvicorn.org/" -license="BSD-3-Clause" -arch="noarch" -depends="py3-click py3-h11" -makedepends="py3-gpep517 py3-hatchling" -checkdepends=" - py3-a2wsgi - py3-dotenv - py3-httptools - py3-httpx - py3-pytest - py3-pytest-mock - py3-pytest-xdist - py3-trustme - py3-typing-extensions - py3-watchfiles - py3-websockets - py3-wsproto - py3-yaml - " -subpackages="$pkgname-pyc" -source="https://github.com/encode/uvicorn/archive/$pkgver/uvicorn-$pkgver.tar.gz - test_multiprocess.patch - 2540_add-websocketssansioprotocol.patch - 2541_bump-wesockets-on-requirements.patch - " - -build() { - gpep517 build-wheel \ - --wheel-dir .dist \ - --output-fd 3 3>&1 >&2 -} - -check() { - python3 -m venv --clear --without-pip --system-site-packages .testenv - .testenv/bin/python3 -m installer .dist/*.whl - .testenv/bin/python3 -m pytest -v -} - -package() { - python3 -m installer -d "$pkgdir" \ - .dist/uvicorn-$pkgver-py3-none-any.whl -} - -sha512sums=" -e8d4dbf182a47431ab9485a8f1072b327c2adb97e4489dcad08835d2759241539971192781cffe4cbb12ff68e70b040e07ad60fe274aa1d62320ad0d63278e64 uvicorn-0.34.2.tar.gz -cfad91dd84f8974362f52d754d7a29f09d07927a46acaa0eb490b6115a5729d84d6df94fead10ccd4cce7f5ea376f1348b0f59daede661dd8373a3851c313c46 test_multiprocess.patch -a3850f030b936c219041266c9ff9050614a5ac6252ff56462c73f2a6114502da460684c10c86f0c5b5054677e89798602ee84cf39c132be6f8bf9946e41f1e79 2540_add-websocketssansioprotocol.patch -b4ef7e63f3fe9e3b499b5a57bb368fcde98c084f5cca42683188c1047d109bdac158e06eeb5a7fb3e61075a1918761c8b0a59a8f7856704bba9234222529de7d 2541_bump-wesockets-on-requirements.patch -" diff --git a/user/uvicorn/test_multiprocess.patch b/user/uvicorn/test_multiprocess.patch deleted file mode 100644 index 231526e..0000000 --- a/user/uvicorn/test_multiprocess.patch +++ /dev/null @@ -1,14 +0,0 @@ -Wait a bit longer, otherwise the workers might -not have time to finish restarting. - ---- a/tests/supervisors/test_multiprocess.py -+++ b/tests/supervisors/test_multiprocess.py -@@ -132,7 +132,7 @@ def test_multiprocess_sighup() -> None: - time.sleep(1) - pids = [p.pid for p in supervisor.processes] - supervisor.signal_queue.append(signal.SIGHUP) -- time.sleep(1) -+ time.sleep(3) - assert pids != [p.pid for p in supervisor.processes] - supervisor.signal_queue.append(signal.SIGINT) - supervisor.join_all() From 8e2f15f24414273094a961b65b6b1f85de7dbafa Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 1 Dec 2025 21:58:50 -0500 Subject: [PATCH 62/89] user/*: disable packages broken on armv7 --- user/papermc-plugin-essentialsx/APKBUILD | 3 ++- user/papermc-plugin-luckperms/APKBUILD | 3 ++- user/papermc-plugin-vault/APKBUILD | 3 ++- user/papermc-plugin-worldedit/APKBUILD | 3 ++- user/papermc-plugin-worldguard/APKBUILD | 3 ++- user/papermc/APKBUILD | 3 ++- user/rmfakecloud/APKBUILD | 3 ++- user/tandoor-recipes/APKBUILD | 3 ++- 8 files changed, 16 insertions(+), 8 deletions(-) diff --git a/user/papermc-plugin-essentialsx/APKBUILD b/user/papermc-plugin-essentialsx/APKBUILD index 17643a5..51459a5 100644 --- a/user/papermc-plugin-essentialsx/APKBUILD +++ b/user/papermc-plugin-essentialsx/APKBUILD @@ -6,7 +6,8 @@ _gittag=$pkgver pkgrel=0 pkgdesc="EssentialsX is the essential plugin suite for Minecraft servers, with over 130 commands for servers of all size and scale." # blocked by luckperms -#arch='noarch' +# armv7: blocked my openjdk21-jdk +#arch='noarch !armv7' url="https://essentialsx.net/" license="GPL-3.0" depends=" diff --git a/user/papermc-plugin-luckperms/APKBUILD b/user/papermc-plugin-luckperms/APKBUILD index d480f40..6b7a4e4 100644 --- a/user/papermc-plugin-luckperms/APKBUILD +++ b/user/papermc-plugin-luckperms/APKBUILD @@ -6,7 +6,8 @@ _gittag=0fef481d480737528491fc0b3b8487eb1612f955 pkgrel=0 pkgdesc="An advanced permissions plugin for Bukkit/Spigot, BungeeCord and Sponge." # dependency not available upstream anymore -#arch='noarch' +# armv7: blocked by openjdk21-jdk +#arch='noarch !armv7' url="https://github.com/lucko/LuckPerms" license="MIT" depends="papermc>=1.8.8" diff --git a/user/papermc-plugin-vault/APKBUILD b/user/papermc-plugin-vault/APKBUILD index dbb0be1..21897eb 100644 --- a/user/papermc-plugin-vault/APKBUILD +++ b/user/papermc-plugin-vault/APKBUILD @@ -4,7 +4,8 @@ pkgname=papermc-plugin-vault pkgver=1.7.3 pkgrel=0 pkgdesc="Vault of common APIs for Bukkit Plugins" -arch='noarch' +# armv7: blocked by openjdk21-jdk +arch='noarch !armv7' url="https://github.com/MilkBowl/Vault" license="MIT" depends="papermc>=1.8.8" diff --git a/user/papermc-plugin-worldedit/APKBUILD b/user/papermc-plugin-worldedit/APKBUILD index 6949ab5..3962797 100644 --- a/user/papermc-plugin-worldedit/APKBUILD +++ b/user/papermc-plugin-worldedit/APKBUILD @@ -5,7 +5,8 @@ pkgver=7.3.13 _pkgver=$pkgver pkgrel=0 pkgdesc="WorldEdit is an easy-to-use in-game Minecraft map editor" -arch='noarch !aarch64' +# armv7: blocked by openjdk21-jdk +arch='noarch !armv7' url="https://github.com/EngineHub/WorldEdit" license="GPL-3.0" depends="papermc>=1.13.2" diff --git a/user/papermc-plugin-worldguard/APKBUILD b/user/papermc-plugin-worldguard/APKBUILD index 4fb9957..ba13b1d 100644 --- a/user/papermc-plugin-worldguard/APKBUILD +++ b/user/papermc-plugin-worldguard/APKBUILD @@ -5,7 +5,8 @@ pkgver=7.0.13_beta1 _gittag=2f13ae0444409376feb6c7674591142fe854e12e pkgrel=0 pkgdesc="WorldGuard lets you and players guard areas of land against griefers and undesirables" -arch='noarch' +# armv7: blocked by openjdk21-jdk +arch='noarch !armv7' url="https://github.com/EngineHub/WorldGuard" license="GPL-3.0" depends="papermc>=1.17.0" diff --git a/user/papermc/APKBUILD b/user/papermc/APKBUILD index c93d3a2..f6522f5 100644 --- a/user/papermc/APKBUILD +++ b/user/papermc/APKBUILD @@ -5,7 +5,8 @@ pkgver=1.21.4 _gittag=${pkgver/.0} pkgrel=0 pkgdesc="Next generation of Minecraft server, compatible with Spigot plugins and offering uncompromising performance" -arch='noarch' +# armv7: blocked by openjdk21-jdk +arch='noarch !armv7' url="https://papermc.io/" license='custom' depends='openjdk21-jdk screen sudo bash gawk sed netcat-openbsd' diff --git a/user/rmfakecloud/APKBUILD b/user/rmfakecloud/APKBUILD index d9402ab..e37b955 100644 --- a/user/rmfakecloud/APKBUILD +++ b/user/rmfakecloud/APKBUILD @@ -7,7 +7,8 @@ _gittag=v$pkgver pkgrel=0 pkgdesc="A selfhosted cloud for the Remarkable Tablet" url="https://github.com/ddvk/rmfakecloud" -arch="all" +# armv7: oom +arch="all !armv7" license="AGPL-3.0-only" makedepends="go yarn" options="chmod-clean net" diff --git a/user/tandoor-recipes/APKBUILD b/user/tandoor-recipes/APKBUILD index 75ecd85..8a680e0 100644 --- a/user/tandoor-recipes/APKBUILD +++ b/user/tandoor-recipes/APKBUILD @@ -4,7 +4,8 @@ pkgname=tandoor-recipes pkgver=1.5.12 pkgrel=1 pkgdesc="Application for managing recipes, planning meals, building shopping lists, etc." -arch="noarch" +# armv7: oom +arch="noarch !armv7" url="https://github.com/TandoorRecipes/recipes" license="AGPL-3.0-only" depends=" From 6fceb422547974a56a957efdbea2958e1417b8b4 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 1 Dec 2025 22:03:51 -0500 Subject: [PATCH 63/89] user/papermc-plugin-worldedit: disable due to missing dependencies --- user/papermc-plugin-worldedit/APKBUILD | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/user/papermc-plugin-worldedit/APKBUILD b/user/papermc-plugin-worldedit/APKBUILD index 3962797..f487664 100644 --- a/user/papermc-plugin-worldedit/APKBUILD +++ b/user/papermc-plugin-worldedit/APKBUILD @@ -5,8 +5,9 @@ pkgver=7.3.13 _pkgver=$pkgver pkgrel=0 pkgdesc="WorldEdit is an easy-to-use in-game Minecraft map editor" +# missingupstream dependencies # armv7: blocked by openjdk21-jdk -arch='noarch !armv7' +#arch='noarch !armv7' url="https://github.com/EngineHub/WorldEdit" license="GPL-3.0" depends="papermc>=1.13.2" From 7ce80a2dd7349a34518c17f9fb85b6d36793eb49 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 1 Dec 2025 22:18:41 -0500 Subject: [PATCH 64/89] ci: add armv7 builder --- .forgejo/workflows/build-armv7.yaml | 54 +++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 .forgejo/workflows/build-armv7.yaml diff --git a/.forgejo/workflows/build-armv7.yaml b/.forgejo/workflows/build-armv7.yaml new file mode 100644 index 0000000..aaf4029 --- /dev/null +++ b/.forgejo/workflows/build-armv7.yaml @@ -0,0 +1,54 @@ +on: + pull_request: + types: [ assigned, opened, synchronize, reopened ] + +jobs: + build-armv7: + runs-on: armv7 + container: + image: alpinelinux/alpine-gitlab-ci:latest + env: + CI_PROJECT_DIR: ${{ github.workspace }} + CI_DEBUG_BUILD: ${{ runner.debug }} + CI_MERGE_REQUEST_PROJECT_URL: ${{ github.server_url }}/${{ github.repository }} + CI_MERGE_REQUEST_TARGET_BRANCH_NAME: ${{ github.base_ref }} + steps: + - name: Environment setup + run: | + doas apk upgrade -a + doas apk add nodejs git patch curl + cd /etc/apk/keys + doas curl -JO https://ayakael.net/api/packages/forge/alpine/key + - name: Repo pull + uses: actions/checkout@v4 + with: + fetch-depth: 500 + - name: Package build + run: | + ${{ github.workspace }}/.forgejo/bin/build.sh + touch packages/dummy + - name: Package upload + uses: actions/upload-artifact@v3 + with: + name: package + path: packages + + deploy-armv7: + needs: [build-armv7] + runs-on: armv7 + container: + image: alpine:latest + env: + CI_ALPINE_REPO: 'https://ayakael.net/api/packages/forge/alpine' + CI_MERGE_REQUEST_TARGET_BRANCH_NAME: ${{ github.base_ref }} + FORGE_REPO_TOKEN: ${{ secrets.FORGE_REPO_TOKEN }} + FORGE_REPO_USER: ${{ vars.FORGE_REPO_USER }} + steps: + - name: Setting up environment + run: apk add nodejs curl findutils git gawk + - name: Repo pull + uses: actions/checkout@v4 + - name: Package download + uses: actions/download-artifact@v3 + - name: Package deployment + run: ${{ github.workspace }}/.forgejo/bin/deploy.sh From 16a4ebc1e48dcbe86bee604769387b5565f2ec46 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 8 Dec 2025 09:15:34 -0500 Subject: [PATCH 65/89] ci: track v3.23, drop v3.19 --- .forgejo/workflows/check-community.yml | 6 ++-- .forgejo/workflows/check-main.yml | 43 +++++++++++++------------- .forgejo/workflows/check-pmos.yml | 2 +- .forgejo/workflows/check-testing.yml | 2 +- 4 files changed, 27 insertions(+), 26 deletions(-) diff --git a/.forgejo/workflows/check-community.yml b/.forgejo/workflows/check-community.yml index fe1d9ad..a5e81c1 100644 --- a/.forgejo/workflows/check-community.yml +++ b/.forgejo/workflows/check-community.yml @@ -25,13 +25,13 @@ jobs: run: ${{ github.workspace }}/.forgejo/bin/check_ver.sh - name: Create issues run: ${{ github.workspace }}/.forgejo/bin/create_issue.sh - check-community-3.22: - name: Check community(3.22) repo + check-community-3.23: + name: Check community(3.23) repo runs-on: aarch64 container: image: alpine:latest env: - downstream: https://dl-cdn.alpinelinux.org/alpine/v3.22/community + downstream: https://dl-cdn.alpinelinux.org/alpine/v3.23/community ISSUE_TOKEN: ${{ secrets.issue_token }} LABEL_NUMBER: 13 fix_only: all -git-annex diff --git a/.forgejo/workflows/check-main.yml b/.forgejo/workflows/check-main.yml index 6730130..276feb5 100644 --- a/.forgejo/workflows/check-main.yml +++ b/.forgejo/workflows/check-main.yml @@ -25,6 +25,27 @@ jobs: run: ${{ github.workspace }}/.forgejo/bin/check_ver.sh - name: Create issues run: ${{ github.workspace }}/.forgejo/bin/create_issue.sh + check-main-3.23: + name: Check main(3.23) repo + runs-on: aarch64 + container: + image: alpine:latest + env: + downstream: https://dl-cdn.alpinelinux.org/alpine/v3.23/main + ISSUE_TOKEN: ${{ secrets.issue_token }} + LABEL_NUMBER: 13 + fix_only: all + steps: + - name: Environment setup + run: apk add grep coreutils gawk curl wget bash nodejs git jq sed + - name: Get scripts + uses: actions/checkout@v4 + with: + fetch-depth: 1 + - name: Check out-of-date packages + run: ${{ github.workspace }}/.forgejo/bin/check_ver.sh + - name: Create issues + run: ${{ github.workspace }}/.forgejo/bin/create_issue.sh check-main-3.22: name: Check main(3.22) repo runs-on: aarch64 @@ -88,24 +109,4 @@ jobs: run: ${{ github.workspace }}/.forgejo/bin/check_ver.sh - name: Create issues run: ${{ github.workspace }}/.forgejo/bin/create_issue.sh - check-main-3.19: - name: Check main(3.19) repo - runs-on: aarch64 - container: - image: alpine:latest - env: - downstream: https://dl-cdn.alpinelinux.org/alpine/v3.19/main - ISSUE_TOKEN: ${{ secrets.issue_token }} - LABEL_NUMBER: 13 - fix_only: all - steps: - - name: Environment setup - run: apk add grep coreutils gawk curl wget bash nodejs git jq sed - - name: Get scripts - uses: actions/checkout@v4 - with: - fetch-depth: 1 - - name: Check out-of-date packages - run: ${{ github.workspace }}/.forgejo/bin/check_ver.sh - - name: Create issues - run: ${{ github.workspace }}/.forgejo/bin/create_issue.sh + diff --git a/.forgejo/workflows/check-pmos.yml b/.forgejo/workflows/check-pmos.yml index 0785667..119383b 100644 --- a/.forgejo/workflows/check-pmos.yml +++ b/.forgejo/workflows/check-pmos.yml @@ -5,7 +5,7 @@ on: - cron: '0 5 * * *' jobs: - check-community-pmos: + check-pmos-edge: name: Check pmos(edge) repo runs-on: aarch64 container: diff --git a/.forgejo/workflows/check-testing.yml b/.forgejo/workflows/check-testing.yml index a778500..71ad18e 100644 --- a/.forgejo/workflows/check-testing.yml +++ b/.forgejo/workflows/check-testing.yml @@ -5,7 +5,7 @@ on: - cron: '0 5 * * *' jobs: - check-community: + check-testing: name: Check testing repo runs-on: aarch64 container: From cacd6ba22bf06bdf7539edfa954e60942fb08fbc Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 8 Dec 2025 09:25:21 -0500 Subject: [PATCH 66/89] ci: add special rules for tracking dotnet --- .forgejo/bin/check_ver.sh | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.forgejo/bin/check_ver.sh b/.forgejo/bin/check_ver.sh index d0a9bc0..aa2665a 100755 --- a/.forgejo/bin/check_ver.sh +++ b/.forgejo/bin/check_ver.sh @@ -145,6 +145,12 @@ for pkg in $owned_by_you; do upstream_version=$(curl --fail -X GET -s -H 'Content-Type: application/json' "https://release-monitoring.org/api/project/Alpine/$pkg" | jq -r '.stable_versions.[]' | head -n1) upstream_version=${upstream_version/-*} ;; + dotnet*-sdk|dotnet*-stage0) + upstream_version=$(curl --fail -X GET -s -H 'Content-Type: application/json' "https://release-monitoring.org/api/project/141853" | jq -r ".stable_versions.[] | match(\"${downstream_version::-2}.*\").string" | head -n 1) + ;; + dotnet*-runtime) + upstream_version=$(curl --fail -X GET -s -H 'Content-Type: application/json' "https://release-monitoring.org/api/project/220385" | jq -r ".stable_versions.[] | match(\"${downstream_version%.*}.*\").string" | head -n 1) + ;; # removes last bit in github tag from usbboot release, as not needed raspberrypi-usbboot) curl --fail -X GET -s -H 'Content-Type: application/json' "https://release-monitoring.org/api/project/Alpine/$pkg" | jq -r '.stable_versions.[]' | head -n1 | sed 's|-.*||';; *) From 8791fcb06c90423a6c887f8c25282a76fcbe23ef Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 8 Dec 2025 11:57:42 -0500 Subject: [PATCH 67/89] ci: track arm-trusted-firmware LTS on edge correctly --- .forgejo/bin/check_ver.sh | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/.forgejo/bin/check_ver.sh b/.forgejo/bin/check_ver.sh index aa2665a..8c3d5bb 100755 --- a/.forgejo/bin/check_ver.sh +++ b/.forgejo/bin/check_ver.sh @@ -126,8 +126,14 @@ for pkg in $owned_by_you; do pkg="$pkg(${upstream_version/.*})" fi ;; - # we want to track LTS rather than latest - arm-trusted-firmware) upstream_version=$(curl --fail -X GET -s -H 'Content-Type: application/json' "https://release-monitoring.org/api/project/Alpine/$pkg" | jq -r ".stable_versions.[] | match(\"${downstream_version%.*}.*\").string" | head -n1);; + # we want to track LTS (even releases) rather than latest + arm-trusted-firmware) + if [[ "$fix_only" == *all* || "$fix_only" == *$pkg* ]] || [[ "$minor_only" == *all* || "$minor_only" == *$pkg* ]]; then + upstream_version=$(curl --fail -X GET -s -H 'Content-Type: application/json' "https://release-monitoring.org/api/project/Alpine/$pkg" | jq -r ".stable_versions.[] | match(\"${downstream_version%.*}.*\").string" | head -n1) + else + upstream_version=$(curl --fail -X GET -s -H 'Content-Type: application/json' "https://release-monitoring.org/api/project/Alpine/$pkg" | jq -r '.stable_versions.[] | select(test("^[0-9]+\\.[0-9]+\\.[0-9]+$")) | select(split(".") | .[1] | tonumber | . % 2 == 0)' | head -n1) + fi + ;; # track linux-pine64-pinenote against latest linux-pine64-pinenote) upstream_version=$(curl --fail -X GET -s -H 'Content-Type: application/json' "https://release-monitoring.org/api/project/315000" | jq -r ".stable_versions.[] | match(\"${downstream_version%.*}.*\").string" | head -n1) @@ -155,7 +161,7 @@ for pkg in $owned_by_you; do raspberrypi-usbboot) curl --fail -X GET -s -H 'Content-Type: application/json' "https://release-monitoring.org/api/project/Alpine/$pkg" | jq -r '.stable_versions.[]' | head -n1 | sed 's|-.*||';; *) - if [[ "$minor_only" == *all* || "$minor_only" == *$pkg* ]] && [[ "$minor_only" != *-$pkg* ]] then + if [[ "$minor_only" == *all* || "$minor_only" == *$pkg* ]] && [[ "$minor_only" != *-$pkg* ]]; then # continues when package version scheme is not semantic, but minor_only or fix_only is set if ! is_semantic $downstream_version; then echo "$pkg is not semantic, and minor_only is set" From 7be7e19fc9d8ae4754c685fb830bdc8ef5c837fb Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Thu, 11 Dec 2025 09:57:27 -0500 Subject: [PATCH 68/89] ci: check_ver can now exclude packages from skip_package when set as all --- .forgejo/bin/check_ver.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.forgejo/bin/check_ver.sh b/.forgejo/bin/check_ver.sh index 8c3d5bb..ee9ed3c 100755 --- a/.forgejo/bin/check_ver.sh +++ b/.forgejo/bin/check_ver.sh @@ -20,7 +20,7 @@ # # optional env variables # ALL_PACKAGES: when true, ignore is package is owned by me -# skip_package: array of packages to skip +# skip_package: array of packages to skip, place a - in front of package name to not exclude it # add_package: array of additional packages to check # @@ -63,7 +63,7 @@ for pkg in $owned_by_you; do downstream_version=${downstream_version/-*} # skip package if in $skip_package array - if [[ "$skip_package" == *$pkg* ]]; then + if [[ "$skip_package" == *all* || "$skip_package" == *$pkg* ]] && [[ "$skip_package" != *-$pkg* ]]; then echo "$pkg skipped" continue fi From 273730b1b9a7ff799e6e8207073f46b7adaa4815 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Thu, 11 Dec 2025 09:58:38 -0500 Subject: [PATCH 69/89] ci: track dotnet8 and 9 on previous releases of Alpine to backport security fixes --- .forgejo/workflows/check-community.yml | 67 ++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) diff --git a/.forgejo/workflows/check-community.yml b/.forgejo/workflows/check-community.yml index a5e81c1..9c96c47 100644 --- a/.forgejo/workflows/check-community.yml +++ b/.forgejo/workflows/check-community.yml @@ -47,3 +47,70 @@ jobs: run: ${{ github.workspace }}/.forgejo/bin/check_ver.sh - name: Create issues run: ${{ github.workspace }}/.forgejo/bin/create_issue.sh + check-community-3.22: + name: Check community(3.22) repo + runs-on: aarch64 + container: + image: alpine:latest + env: + downstream: https://dl-cdn.alpinelinux.org/alpine/v3.22/community + ISSUE_TOKEN: ${{ secrets.issue_token }} + LABEL_NUMBER: 13 + skip_package: 'all -dotnet8-runtime -dotnet9-runtime' + fix_only: all + steps: + - name: Environment setup + run: apk add grep coreutils gawk curl wget bash nodejs git jq sed + - name: Get scripts + uses: actions/checkout@v4 + with: + fetch-depth: 1 + - name: Check out-of-date packages + run: ${{ github.workspace }}/.forgejo/bin/check_ver.sh + - name: Create issues + run: ${{ github.workspace }}/.forgejo/bin/create_issue.sh + check-community-3.21: + name: Check community(3.21) repo + runs-on: aarch64 + container: + image: alpine:latest + env: + downstream: https://dl-cdn.alpinelinux.org/alpine/v3.21/community + ISSUE_TOKEN: ${{ secrets.issue_token }} + LABEL_NUMBER: 13 + skip_package: 'all -dotnet8-runtime -dotnet9-runtime' + fix_only: all + steps: + - name: Environment setup + run: apk add grep coreutils gawk curl wget bash nodejs git jq sed + - name: Get scripts + uses: actions/checkout@v4 + with: + fetch-depth: 1 + - name: Check out-of-date packages + run: ${{ github.workspace }}/.forgejo/bin/check_ver.sh + - name: Create issues + run: ${{ github.workspace }}/.forgejo/bin/create_issue.sh + check-community-3.20: + name: Check community(3.20) repo + runs-on: aarch64 + container: + image: alpine:latest + env: + downstream: https://dl-cdn.alpinelinux.org/alpine/v3.20/community + ISSUE_TOKEN: ${{ secrets.issue_token }} + LABEL_NUMBER: 13 + skip_package: 'all -dotnet8-runtime' + fix_only: all + steps: + - name: Environment setup + run: apk add grep coreutils gawk curl wget bash nodejs git jq sed + - name: Get scripts + uses: actions/checkout@v4 + with: + fetch-depth: 1 + - name: Check out-of-date packages + run: ${{ github.workspace }}/.forgejo/bin/check_ver.sh + - name: Create issues + run: ${{ github.workspace }}/.forgejo/bin/create_issue.sh + From 55135b73b1338d78e9b61991577d2f59a29e0b83 Mon Sep 17 00:00:00 2001 From: ayakael Date: Mon, 15 Dec 2025 13:10:24 -0500 Subject: [PATCH 70/89] user/rmfakecloud: upgrade to 0.0.27 --- user/rmfakecloud/APKBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/user/rmfakecloud/APKBUILD b/user/rmfakecloud/APKBUILD index e37b955..d4ecc74 100644 --- a/user/rmfakecloud/APKBUILD +++ b/user/rmfakecloud/APKBUILD @@ -2,7 +2,7 @@ # Contributor: Antoine Martin (ayakael) pkgname=rmfakecloud -pkgver=0.0.24 +pkgver=0.0.27 _gittag=v$pkgver pkgrel=0 pkgdesc="A selfhosted cloud for the Remarkable Tablet" @@ -38,7 +38,7 @@ package() { install -Dm755 "$srcdir"/rmfakecloud.openrc "$pkgdir"/etc/init.d/rmfakecloud } sha512sums=" -c0c96cb9168b8152da3842fac095a6bd33e74b5f7a5cefe72e44853f4059c966336e98cd4c62235f7a2fe625acdd93452f718c19a1bf65f5dd7dbd8bb5cd1f8c rmfakecloud-0.0.24.tar.gz +b215295c8779f9820e9751e5cbfb8804d6cdeb0d71ffaa60d46fd803760e63227352f55a8b5a2e75d990b20a6a19c43a4ffaa03a1857e6fb37990a8b191a3ea2 rmfakecloud-0.0.27.tar.gz d5677cef282085cd6642a034dd258ffa294862aeb0ce81d6485a524a15564849bc4eb90a9d1fa4dbcf4eab69dcd893302aa06493fc8fad74d69200c2bdf246c0 rmfakecloud.conf 891d0945886796132f951293e081046334857563b4ebae28a3aa5b6bc37768767c49ce102de645ed8340af2518de606be8bf6ecafeb6d189dd937970aa3e6498 rmfakecloud.openrc " From ed788403aa5a00c175bc766e7c076cf3e553b965 Mon Sep 17 00:00:00 2001 From: ayakael Date: Mon, 15 Dec 2025 13:24:39 -0500 Subject: [PATCH 71/89] ci: run lint on x86_64 --- .forgejo/workflows/lint.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.forgejo/workflows/lint.yaml b/.forgejo/workflows/lint.yaml index ec79090..743cefc 100644 --- a/.forgejo/workflows/lint.yaml +++ b/.forgejo/workflows/lint.yaml @@ -5,7 +5,7 @@ on: jobs: lint: run-name: lint - runs-on: aarch64 + runs-on: x86_64 container: image: alpinelinux/apkbuild-lint-tools:latest env: From 35e7f126cee86a264ab50bb1dc53e99106025985 Mon Sep 17 00:00:00 2001 From: ayakael Date: Mon, 15 Dec 2025 14:41:04 -0500 Subject: [PATCH 72/89] user/kb: upgrade to 0.1.8 --- user/kb/APKBUILD | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/user/kb/APKBUILD b/user/kb/APKBUILD index a8f9c74..db1d678 100644 --- a/user/kb/APKBUILD +++ b/user/kb/APKBUILD @@ -1,9 +1,8 @@ # Contributor: Antoine Martin (ayakael) # Maintainer: Antoine Martin (ayakael) pkgname=kb -_pkgreal=kb-manager -pkgver=0.1.7 -pkgrel=2 +pkgver=0.1.8 +pkgrel=0 pkgdesc="A command line minimalist knowledge base manager" arch="noarch" url="https://github.com/gnebbia/kb" @@ -11,9 +10,8 @@ license="GPL-3.0-only" depends="py3-attrs py3-colored py3-gitpython py3-toml" makedepends="py3-setuptools py3-gpep517 py3-wheel" checkdepends="py3-pytest-cov" -source="https://files.pythonhosted.org/packages/source/k/kb-manager/kb-manager-$pkgver.tar.gz" +source="$pkgname-$pkgver.tar.gz::https://github.com/gnebbia/kb/archive/refs/tags/v$pkgver.tar.gz" subpackages="$pkgname-pyc" -builddir="$srcdir"/$_pkgreal-$pkgver build() { gpep517 build-wheel \ @@ -30,5 +28,5 @@ package() { .dist/*.whl } sha512sums=" -f0dff69a5e95339ea22d0a9d1260473f7b0b6ace184936896e164172aecb77672e9e0a228159abc95e50f30de2ec9ca5185ffbd825dce87edfec267bc56c75dc kb-manager-0.1.7.tar.gz +95fab9b5baa728795a6ce1e126fe90dd599528bc13f2274c5484dc43bdbca8fd5807e8ed4ec4e9ffa8382c5ec71662022d792e8ae941bd1629ed47c72d87d7a2 kb-0.1.8.tar.gz " From ac2f1855dba851f5c43a7ac7d5dda2ab738459a4 Mon Sep 17 00:00:00 2001 From: ayakael Date: Mon, 15 Dec 2025 14:49:59 -0500 Subject: [PATCH 73/89] user/calibre-web: upgrade to 0.6.25 --- {unmaintained => user}/calibre-web/APKBUILD | 23 ++++++++++--------- .../calibre-web/calibre-web.conf | 0 .../calibre-web/calibre-web.initd | 0 .../calibre-web/calibre-web.service | 0 .../calibre-web/calibre-web.sysusers | 0 .../calibre-web/calibre-web.tmpfiles | 0 6 files changed, 12 insertions(+), 11 deletions(-) rename {unmaintained => user}/calibre-web/APKBUILD (82%) rename {unmaintained => user}/calibre-web/calibre-web.conf (100%) rename {unmaintained => user}/calibre-web/calibre-web.initd (100%) rename {unmaintained => user}/calibre-web/calibre-web.service (100%) rename {unmaintained => user}/calibre-web/calibre-web.sysusers (100%) rename {unmaintained => user}/calibre-web/calibre-web.tmpfiles (100%) diff --git a/unmaintained/calibre-web/APKBUILD b/user/calibre-web/APKBUILD similarity index 82% rename from unmaintained/calibre-web/APKBUILD rename to user/calibre-web/APKBUILD index df1b79a..37f5ea0 100644 --- a/unmaintained/calibre-web/APKBUILD +++ b/user/calibre-web/APKBUILD @@ -1,8 +1,8 @@ # Contributor: Antoine Martin (ayakael) # Maintainer: Antoine Martin (ayakael) pkgname=calibre-web -pkgver=0.6.21 -pkgrel=1 +pkgver=0.6.25 +pkgrel=0 pkgdesc="Web app for browsing, reading and downloading eBooks stored in a Calibre database" arch='noarch' url="https://github.com/janeczku/calibre-web" @@ -10,26 +10,27 @@ license='GPL-3.0-only' depends=" py3-apscheduler py3-babel - py3-backports_abc - py3-blinker + py3-bleach py3-chardet + py3-cryptography py3-flask-babel - py3-flask-login py3-flask-limiter py3-flask-principal py3-flask-wtf - py3-goodreads - py3-levenshtein - py3-iso639 + py3-flask-httpauth py3-lxml - py3-pypdf2 + py3-magic + py3-netifaces + py3-pypdf + py3-pycountry + py3-regex py3-requests py3-sqlalchemy py3-tornado py3-tz py3-unidecode + py3-urllib3 py3-wand - py3-werkzeug " source=" $pkgname-$pkgver.tar.gz::https://github.com/janeczku/calibre-web/archive/$pkgver.tar.gz @@ -56,7 +57,7 @@ package() { install -D -m 644 "$srcdir"/calibre-web.conf "$pkgdir"/etc/conf.d/calibre-web } sha512sums=" -d2f07eec0b6c9f65e68ae0b72fddd14444eb8be8b0fee997ec7caaa1feebb8a26603844752347547becde501669af5bce69e9eab466a28fd4b10624b65c9afcf calibre-web-0.6.21.tar.gz +878d057613b7f89e57ad536c415bb4dc346d5f8c4ca2660517b68c70c4eefa5358317fe0e917738d468cb003358a0341411155289d952b1aa6cd4a022a84c8f0 calibre-web-0.6.25.tar.gz 4aba825eb12f44eb0912cc6981b46bec9b77ad114627564c9c7585862a099c7d1ff8deec5f15d047319805e2b9a3e2d128b2d1292dd92293a7e72359009a480f calibre-web.conf 62859a8a304216dc0dbfb7f2e8144a50d348c6621f5b292c08aa97a872ada67b52d36b567546fd0f4c439dbefe0bbe0e4fb1e1affbe507278b4a8d36ed3fa2a9 calibre-web.initd " diff --git a/unmaintained/calibre-web/calibre-web.conf b/user/calibre-web/calibre-web.conf similarity index 100% rename from unmaintained/calibre-web/calibre-web.conf rename to user/calibre-web/calibre-web.conf diff --git a/unmaintained/calibre-web/calibre-web.initd b/user/calibre-web/calibre-web.initd similarity index 100% rename from unmaintained/calibre-web/calibre-web.initd rename to user/calibre-web/calibre-web.initd diff --git a/unmaintained/calibre-web/calibre-web.service b/user/calibre-web/calibre-web.service similarity index 100% rename from unmaintained/calibre-web/calibre-web.service rename to user/calibre-web/calibre-web.service diff --git a/unmaintained/calibre-web/calibre-web.sysusers b/user/calibre-web/calibre-web.sysusers similarity index 100% rename from unmaintained/calibre-web/calibre-web.sysusers rename to user/calibre-web/calibre-web.sysusers diff --git a/unmaintained/calibre-web/calibre-web.tmpfiles b/user/calibre-web/calibre-web.tmpfiles similarity index 100% rename from unmaintained/calibre-web/calibre-web.tmpfiles rename to user/calibre-web/calibre-web.tmpfiles From 2e181afd1971ad35af51ed6ac45023c2d81c55bb Mon Sep 17 00:00:00 2001 From: ayakael Date: Mon, 15 Dec 2025 14:50:26 -0500 Subject: [PATCH 74/89] backports/py3-flask-httpauth: backport for calibre-web --- backports/py3-flask-httpauth/APKBUILD | 39 +++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 backports/py3-flask-httpauth/APKBUILD diff --git a/backports/py3-flask-httpauth/APKBUILD b/backports/py3-flask-httpauth/APKBUILD new file mode 100644 index 0000000..7cbc2de --- /dev/null +++ b/backports/py3-flask-httpauth/APKBUILD @@ -0,0 +1,39 @@ +# Contributor: Fabian Affolter +# Maintainer: Fabian Affolter +pkgname=py3-flask-httpauth +pkgver=4.8.0 +pkgrel=3 +pkgdesc="Basic and Digest HTTP authentication for Flask routes" +url="https://pypi.org/project/Flask-HTTPAuth" +arch="noarch" +license="MIT" +depends="py3-flask python3" +makedepends="py3-gpep517 py3-setuptools py3-wheel" +checkdepends="py3-pytest py3-pytest-asyncio py3-asgiref" +subpackages="$pkgname-pyc" +source="https://files.pythonhosted.org/packages/source/F/Flask-HTTPAuth/Flask-HTTPAuth-$pkgver.tar.gz" +builddir="$srcdir"/Flask-HTTPAuth-$pkgver + +replaces="py-flask-httpauth" # Backwards compatibility +provides="py-flask-httpauth=$pkgver-r$pkgrel" # Backwards compatibility + +build() { + gpep517 build-wheel \ + --wheel-dir .dist \ + --output-fd 3 3>&1 >&2 +} + +check() { + python3 -m venv --clear --without-pip --system-site-packages .testenv + .testenv/bin/python3 -m installer .dist/*.whl + .testenv/bin/python3 -m pytest +} + +package() { + python3 -m installer -d "$pkgdir" \ + .dist/flask_httpauth*.whl +} + +sha512sums=" +15878f45faf6bdde43d7b588539b044d621ba1ba590880e3d0a3bccf4e9bd04b898b3372775e99577b7e7955c4b6d2d7cc80df19ba30415c6b7c1d3183b7e5f4 Flask-HTTPAuth-4.8.0.tar.gz +" From 7ef8cfa070214a5ad293355fe6dbfb31005108ed Mon Sep 17 00:00:00 2001 From: ayakael Date: Mon, 15 Dec 2025 14:50:37 -0500 Subject: [PATCH 75/89] backports/py3-flask-limiter: backport for calibre-web --- backports/py3-flask-limiter/APKBUILD | 55 +++++++++++++++++++ .../our-std-is-good-enough.patch | 22 ++++++++ 2 files changed, 77 insertions(+) create mode 100644 backports/py3-flask-limiter/APKBUILD create mode 100644 backports/py3-flask-limiter/our-std-is-good-enough.patch diff --git a/backports/py3-flask-limiter/APKBUILD b/backports/py3-flask-limiter/APKBUILD new file mode 100644 index 0000000..cd15f22 --- /dev/null +++ b/backports/py3-flask-limiter/APKBUILD @@ -0,0 +1,55 @@ +# Contributor: lauren n. liberda +maintainer="lauren n. liberda " +pkgname=py3-flask-limiter +pkgver=3.10.1 +pkgrel=0 +pkgdesc="Rate Limiting extension for Flask" +url="https://github.com/alisaifee/flask-limiter" +arch="noarch" +license="MIT" +depends=" + py3-flask + py3-limits + py3-ordered-set + py3-rich + python3 + " +makedepends="py3-setuptools py3-gpep517" +checkdepends=" + py3-flask-restful + py3-flask-restx + py3-limits-mongodb + py3-limits-redis + py3-pytest + py3-pytest-cov + " +subpackages="$pkgname-pyc" +source=" + https://github.com/alisaifee/flask-limiter/archive/refs/tags/$pkgver/flask-limiter-$pkgver.tar.gz + + our-std-is-good-enough.patch + " +builddir="$srcdir/flask-limiter-$pkgver" +options="!check" # tests depend on unpackaged modules + +build() { + gpep517 build-wheel \ + --wheel-dir .dist \ + --output-fd 3 3>&1 >&2 +} + +check() { + python3 -m venv --clear --without-pip --system-site-packages .testenv + gpep517 install-wheel --destdir .testenv --prefix '' .dist/*.whl + .testenv/bin/python3 -m pytest +} + +package() { + gpep517 install-wheel --destdir "$pkgdir" \ + .dist/*.whl +} + +sha512sums=" +a0d3af6f93d4283309d6df46ddb7fed4c358bbc712c2bd9e6897362c6d086c395cb9587c3d9da283ad757b574fd8c09d909f3c4b76d02ae8aade3e61dbea6aa0 flask-limiter-3.10.1.tar.gz +1b90e9134076cda249695d5ea741db9d205a2ae452c7d6edfe01eb37a221ce6f64b0e8ddcdbbee9b0e0fb16a28e5eabf14f1c1e41e965c7e3b93ea4f42caf553 our-std-is-good-enough.patch +" diff --git a/backports/py3-flask-limiter/our-std-is-good-enough.patch b/backports/py3-flask-limiter/our-std-is-good-enough.patch new file mode 100644 index 0000000..664143f --- /dev/null +++ b/backports/py3-flask-limiter/our-std-is-good-enough.patch @@ -0,0 +1,22 @@ +--- ./flask_limiter/typing.py.orig ++++ ./flask_limiter/typing.py +@@ -11,7 +11,7 @@ + cast, + ) + +-from typing_extensions import ParamSpec ++from typing import ParamSpec + + R = TypeVar("R") + P = ParamSpec("P") +--- ./flask_limiter/commands.py.orig ++++ ./flask_limiter/commands.py +@@ -14,7 +14,7 @@ + from rich.table import Table + from rich.theme import Theme + from rich.tree import Tree +-from typing_extensions import TypedDict ++from typing import TypedDict + from werkzeug.exceptions import MethodNotAllowed, NotFound + from werkzeug.routing import Rule + From a7a531a637a413f7c5d8838c694e690c6d4feded Mon Sep 17 00:00:00 2001 From: ayakael Date: Mon, 15 Dec 2025 14:52:18 -0500 Subject: [PATCH 76/89] user/scantopl: upgrade to 1.0.1 --- user/scantopl/APKBUILD | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/user/scantopl/APKBUILD b/user/scantopl/APKBUILD index dea4f1e..a68b668 100644 --- a/user/scantopl/APKBUILD +++ b/user/scantopl/APKBUILD @@ -1,8 +1,7 @@ -# Maintainer: Antoine Martin (ayakael) # Contributor: Antoine Martin (ayakael) - +# Maintainer: Antoine Martin (ayakael) pkgname=scantopl -pkgver=1.0.0 +pkgver=1.0.1 pkgrel=0 pkgdesc="Automatically send scanservjs scanned document to paperless-ng" _gittag="v$pkgver" @@ -31,7 +30,7 @@ package() { install -Dm644 "$srcdir"/scantopl.conf "$pkgdir"/etc/conf.d/scantopl } sha512sums=" -d4eca1adc326f1e730ae195bd44f1cf05d404488ce20fd612467c572ea7fa718034bb7b16d3e007976349f6852e83569aa17727dcc61f9e7ab1934995b3bc3e6 scantopl-1.0.0.tar.gz +e5238c4f8e727e80c5c66441e8de5eeb775fdfe05ee85509c942c2516e8996243cd1b72c7c87c8bbee2e0475cc0075244aa28164a746f6e7eded253bcb707ba7 scantopl-1.0.1.tar.gz 8238411fe8881be6690a583a6bfc71e52f3131320f5d92bb36f8af61802980265a8cf5250eb699d9214f7c6c168d14c39867a09587fb07841a8504a6a28db74b scantopl.initd ee2e631901b1d88c0dede6587318e44884255a7c82e090371f017dbb91563c16f0567c0d45b3183d0a8abb3ee4b71a33f3d79258ad2b2f6d8930a5bc7625070a scantopl.conf " From 3d599aff1745c360bec9fe8ff8ec92a327929d73 Mon Sep 17 00:00:00 2001 From: ayakael Date: Mon, 15 Dec 2025 14:53:50 -0500 Subject: [PATCH 77/89] user/scanservjs: upgrade to 3.0.4 --- user/scanservjs/APKBUILD | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/user/scanservjs/APKBUILD b/user/scanservjs/APKBUILD index 4aeb67d..9effbf6 100644 --- a/user/scanservjs/APKBUILD +++ b/user/scanservjs/APKBUILD @@ -1,8 +1,7 @@ -# Maintainer: Antoine Martin (ayakael) # Contributor: Antoine Martin (ayakael) - +# Maintainer: Antoine Martin (ayakael) pkgname=scanservjs -pkgver=3.0.3 +pkgver=3.0.4 pkgrel=0 pkgdesc="SANE scanner nodejs web ui" arch="noarch" @@ -63,7 +62,7 @@ package() { install -Dm 644 "$srcdir"/scanservjs.conf "$pkgdir"/etc/conf.d/scanservjs } sha512sums=" -e3746cfab118b08b75fe5a862e1b06d35bce3fafe7b5cf482ddfd28aad8ac9879981eef5bdadc35a783607aac49eef95b966ff1d2ddf431eaf6e2d7e335623fb scanservjs-3.0.3.tar.gz +f19b1bd5acb01f82fa98bc79f9d401f1b6c19aa9e4319d75efd4b82a6db44a348784953ae1542d362d3b8e328a1a469e9320fd7c937e6aa102a19a36cd8ce9e8 scanservjs-3.0.4.tar.gz f58dd5e1c4936d7e25065a295f5d01e64189cdefe92ba54fc875348a59a30b2055c93464d510a52820e66b42a69d0626d3513c93ab60b0768e1e8d5b3538bb13 scanservjs.initd 9d4fdab3803a598c729bf703369d8594b383163b05045f31e516f184a87d8deef8c8b40942d324e04bdf751ac9d63f7de25b13364f9f30888eba2af873369b36 scanservjs.conf " From 946a011b61836f9598a82c07a76b4f7d997c0555 Mon Sep 17 00:00:00 2001 From: ayakael Date: Mon, 15 Dec 2025 15:49:12 -0500 Subject: [PATCH 78/89] backports/electron: upgrade to 38.2.7 --- backports/electron/APKBUILD | 14 ++++++++------ .../electron/electron_use-system-yarn.patch | 17 +++++++++++++++++ 2 files changed, 25 insertions(+), 6 deletions(-) create mode 100644 backports/electron/electron_use-system-yarn.patch diff --git a/backports/electron/APKBUILD b/backports/electron/APKBUILD index ab1603d..c57c98e 100644 --- a/backports/electron/APKBUILD +++ b/backports/electron/APKBUILD @@ -1,10 +1,10 @@ # Contributor: lauren n. liberda # Maintainer: Antoine Martin (ayakael) pkgname=electron -pkgver=39.2.3 +pkgver=39.2.7 _gittag=v"${pkgver/_beta/-beta.}" pkgrel=0 -_chromium=142.0.7444.175 +_chromium=142.0.7444.235 _copium_tag=142.0 _depot_tools=495b23b39aaba2ca3b55dd27cadc523f1cb17ee6 pkgdesc="Electron cross-platform desktop toolkit" @@ -109,7 +109,7 @@ makedepends=" sqlite-dev woff2-dev xcb-proto - yarn + yarn-berry zlib-dev zstd-dev " @@ -147,6 +147,7 @@ source=" electron_system-zlib-headers.patch electron_do-not-strip-binaries.patch electron_shell-file-dialog-drop-glibc.patch + electron_use-system-yarn.patch default.conf electron.desktop @@ -310,7 +311,7 @@ prepare() { git commit -m "init" git tag "$_gittag" git pack-refs - yarn install --frozen-lockfile --ignore-scripts + yarn install --immutable --mode=skip-build ) ( @@ -490,7 +491,7 @@ _configure() { safe_browsing_use_unrar=false symbol_level=$symbol_level treat_warnings_as_errors=false - se_clang_modules=false + use_clang_modules=false use_custom_libcxx=true use_lld=true use_pulseaudio=true @@ -564,7 +565,7 @@ lang() { } sha512sums=" -7c4c33570bf6c0ff0d1d2606b64e25e9b8f64f399e49dd03632ee712de5551eb7757ac999ff1206d0c70057b4bf0ce535ac228ddbb88ffd9b1585d7abd483266 electron-v39.2.3-142.0.7444.175.tar.zst +6dc7161f6df396e2b7569b0a607e264b43a2d7215de65164dc2ca04c019df93ea0a67dec2490071c09c8a03f90605faaf3880f2d843f838bb5d841bba204c298 electron-v39.2.7-142.0.7444.235.tar.zst 30b298549804e7753b0b639b72417ba081e964676862b6c7d73ad73cdf806883f20e4a4b36e67a6c375eaf2dd97686cf21b90b062400d3b61fba86da4d239bfa copium-142.0.tar.gz 69b45005451ccd69c354b4c2910e92371cb801665f5e300dbecd36f8bc4ce68e77a431b5dac07c0937787debb4e93b7aadefa0a1e76c4ae334d2547ca3ca14ff 0001-hotfix-ignore-a-new-warning-in-rust-1.89.patch dc254dd79e135aeac3e9c03eb055e3bc17980fc213f8c4d8d7921a575be7f9c26b91f110a6dcb01c0a824a7d9375c09f8a61c8858c20c11d79c03f873e2cb3f9 compiler.patch @@ -594,6 +595,7 @@ c7f57929943a86f9e5f333da9d5691da88038770eeb46dd0a0719962c934deb2879f0e7a1ed714e9 4d9287d4cdfe27fbfb7be3d4b26c0c40edbd6a0c3ff926d60f2093ca09c15bcb58e20c2ccc8c0606aafd66c6d25a54225bc329cb056d8c5b297db4c6d0e768e6 electron_system-zlib-headers.patch 7031ddb61a858e95d83366185a53b5a2e4be9abe0aa4957543e0621cad57175ffef31bd87b8be25255184bb4cb30ec4fbced055407c6c8c7940c9e240b25d498 electron_do-not-strip-binaries.patch 0f8f36c21cc50c80e378691265845ff10fa53953d6cd5352fe71efcba489f956e50d374d8f634dadc3569c4901a81a1f308a3e69140c0f9136e0777022b9520f electron_shell-file-dialog-drop-glibc.patch +3fd20144ed171cf9706899a1481141c7fa3e98b17d600cdc5a3a68ba39059cebd9e5ccb5534af3e262f689df381bc3cb630ac24e46dd6f6c72eac4f4b6b14b35 electron_use-system-yarn.patch e8ea87c547546011c4c8fc2de30e4f443b85cd4cfcff92808e2521d2f9ada03feefb8e1b0cf0f6b460919c146e56ef8d5ad4bb5e2461cc5247c30d92eb4d068e default.conf 191559fc7aa1ea0353c6fb0cc321ee1d5803a0e44848c8be941cfab96277b0de6a59962d373e2a2a1686c8f9be2bcf2d2f33706759a339a959e297d3f7fda463 electron.desktop 5f7ba5ad005f196facec1c0f26108356b64cafb1e5cfa462ff714a33b8a4c757ac00bfcb080da09eb5b65032f8eb245d9676a61ec554515d125ed63912708648 electron-launcher.sh diff --git a/backports/electron/electron_use-system-yarn.patch b/backports/electron/electron_use-system-yarn.patch new file mode 100644 index 0000000..eaa8a8c --- /dev/null +++ b/backports/electron/electron_use-system-yarn.patch @@ -0,0 +1,17 @@ +diff --git a/electron/.yarnrc.yml.orig b/electron/.yarnrc.yml +index ca0a580..a388ff9 100644 +--- a/electron/.yarnrc.yml.orig ++++ b/electron/.yarnrc.yml +@@ -1,12 +1,3 @@ + enableScripts: false + +-nmHoistingLimits: workspaces +- + nodeLinker: node-modules +- +-npmMinimalAgeGate: 10080 +- +-npmPreapprovedPackages: +- - "@electron/*" +- +-yarnPath: .yarn/releases/yarn-4.12.0.cjs From 094222021c509f68055bc9610c8a3c04671734f3 Mon Sep 17 00:00:00 2001 From: ayakael Date: Mon, 15 Dec 2025 15:49:48 -0500 Subject: [PATCH 79/89] backports/yarn-berry: backport for electron --- backports/electron/yarn-berry/APKBUILD | 33 ++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 backports/electron/yarn-berry/APKBUILD diff --git a/backports/electron/yarn-berry/APKBUILD b/backports/electron/yarn-berry/APKBUILD new file mode 100644 index 0000000..715d16c --- /dev/null +++ b/backports/electron/yarn-berry/APKBUILD @@ -0,0 +1,33 @@ +maintainer="Fabricio Silva " +pkgname=yarn-berry +pkgver=4.9.1 +pkgrel=0 +pkgdesc="Fast, reliable, and secure dependency management for Node.js - Active development version" +url="https://yarnpkg.com/" +license="BSD-2-Clause" +arch="noarch" +depends="!yarn nodejs" # not backward compatible with yarn classic (v1) +source="$pkgname-$pkgver.tgz::https://registry.npmjs.org/@yarnpkg/cli-dist/-/cli-dist-$pkgver.tgz" +builddir="$srcdir/package" +replaces="yarn" + +check() { + ./bin/yarn.js --version + ./bin/yarn.js --help +} + +package() { + local destdir="usr/share/node_modules/@yarnpkg/cli-dist" + + mkdir -p "$pkgdir"/$destdir/bin + install -Dm0644 package.json -t "$pkgdir"/$destdir + install -Dm0755 bin/yarn.js -t "$pkgdir"/$destdir/bin + + mkdir -p "$pkgdir"/usr/bin + ln -s ../share/node_modules/@yarnpkg/cli-dist/bin/yarn.js "$pkgdir"/usr/bin/yarn + ln -s yarn "$pkgdir"/usr/bin/yarnpkg +} + +sha512sums=" +cae0bcb10349af010b472ef7fa1023c33c0afd60a54dc29d18797e6bb771bd6c0d3d06aefa801c56363bcc6ecf6133988d1f943543293e7335ede60618fb28e8 yarn-berry-4.9.1.tgz +" From 7a023d00241f6d6ec489d87d5e653913eb37c902 Mon Sep 17 00:00:00 2001 From: ayakael Date: Mon, 15 Dec 2025 15:44:17 -0500 Subject: [PATCH 80/89] user/papermc: upgrade to 1.21.7 --- user/papermc/APKBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/user/papermc/APKBUILD b/user/papermc/APKBUILD index f6522f5..f4a7f7b 100644 --- a/user/papermc/APKBUILD +++ b/user/papermc/APKBUILD @@ -1,7 +1,7 @@ # Maintainer: Antoine Martin (ayakael) # Contributor: Antoine Martin (ayakael) pkgname=papermc -pkgver=1.21.4 +pkgver=1.21.7 _gittag=${pkgver/.0} pkgrel=0 pkgdesc="Next generation of Minecraft server, compatible with Spigot plugins and offering uncompromising performance" @@ -44,7 +44,7 @@ package() { chmod g+ws "$pkgdir"/var/lib/$pkgname } sha512sums=" -5e815c4ee4f9d99ecb173d2b81131d0531359f1d2d48dee429476a7b39c37140fe2085d9a657435e347ca1bc5930402bac1a533692cd8387811b2577384c827b papermc-1.21.4.tar.zst +90c3017f7e4031816f6d4e30612a88d7b15d9e99cfb4e887b868e3d0d55ec5db0e9e71dc433dd399959da9b099e7fc4fd3768635ccabcce84d1adfc48837309a papermc-1.21.7.tar.zst c5d1bf85ceb74162aaaf2bcd2d06dc2e3dd2e37c39f0cee2be7c8dbff9970a6aff1e48a43e6d1e83e6a0ac610bd89f62b1279bf27b64afa88d9831a36aebbd3e papermc.initd 9b8e267428731ee9255f82a93f1e8674d7e917a0f154bd395cd2280a49aa248a4b8427520b08dbb4b3a74a5471dac0e439eedc8ab94bf2e53bb8d411d2d8a789 papermc.conf 943ba0d4c10173246bdc6497dcedd54da0788f966841c8d3381398711d79f8d5eb07a24ce28f519b6f24f59d99fa9e74bc6bb882059f343df4eeda5de3660ac7 papermc.sh From 5a29004820ccebd980edebd6827174748f353ef3 Mon Sep 17 00:00:00 2001 From: ayakael Date: Mon, 15 Dec 2025 16:06:10 -0500 Subject: [PATCH 81/89] backports/py3-limits: backport for py3-flask-limiter --- backports/py3-limits/APKBUILD | 58 +++++++++++++++++++ .../py3-limits/our-std-is-good-enough.patch | 11 ++++ .../tests-drop-etcd3-and-k-argument.patch | 24 ++++++++ 3 files changed, 93 insertions(+) create mode 100644 backports/py3-limits/APKBUILD create mode 100644 backports/py3-limits/our-std-is-good-enough.patch create mode 100644 backports/py3-limits/tests-drop-etcd3-and-k-argument.patch diff --git a/backports/py3-limits/APKBUILD b/backports/py3-limits/APKBUILD new file mode 100644 index 0000000..af4516d --- /dev/null +++ b/backports/py3-limits/APKBUILD @@ -0,0 +1,58 @@ +# Contributor: lauren n. liberda +# Maintainer: lauren n. liberda +pkgname=py3-limits +pkgver=3.14.1 +pkgrel=0 +pkgdesc="Rate limiting using various strategies and storage backends such as redis & memcached" +url="https://github.com/alisaifee/limits" +arch="noarch" +license="MIT" +depends=" + py3-deprecated + python3 + " +makedepends="py3-setuptools py3-gpep517" +checkdepends=" + py3-flaky + py3-mongo + py3-pytest + py3-pytest-asyncio + py3-pytest-benchmark + py3-pytest-cov + py3-pytest-lazy-fixtures + py3-pymemcache + py3-redis + " +subpackages="$pkgname-pyc" +source=" + https://github.com/alisaifee/limits/archive/refs/tags/$pkgver/limits-$pkgver.tar.gz + + our-std-is-good-enough.patch + tests-drop-etcd3-and-k-argument.patch + " +builddir="$srcdir/limits-$pkgver" + +build() { + gpep517 build-wheel \ + --wheel-dir .dist \ + --output-fd 3 3>&1 >&2 +} + +check() { + python3 -m venv --clear --without-pip --system-site-packages .testenv + gpep517 install-wheel --destdir .testenv --prefix '' .dist/*.whl + .testenv/bin/python3 -m pytest -W ignore::DeprecationWarning \ + -m 'not benchmark and not etcd and not integration and not memcached' \ + -k 'not aio and not Storage and not strategy' -v +} + +package() { + gpep517 install-wheel --destdir "$pkgdir" \ + .dist/*.whl +} + +sha512sums=" +f30c7ec19c2d1edad9ed77dc590ae35717efa3956a4d97e465793e1923a4af08dc9921d90ee95d3c54ce3364b867ca67a9de62c61d627e07a3f50da20bdabd0f limits-3.14.1.tar.gz +271e3b0501f9f144eda8d2e96c93b285714e339b9217385e38cdbce1f4dec88f9c949e9419f8be94885092e7977f7dca29b86b5499e9fead678b42a686c337db our-std-is-good-enough.patch +e84f4db49349a6feba0f701b9d4357c5f66d64c4a23f8ce512528b0f44b5bbef55041c02d92aae3a4cc8d5340846f9e909217beb869a5aeb49df166dd29ae9e3 tests-drop-etcd3-and-k-argument.patch +" diff --git a/backports/py3-limits/our-std-is-good-enough.patch b/backports/py3-limits/our-std-is-good-enough.patch new file mode 100644 index 0000000..32d7d73 --- /dev/null +++ b/backports/py3-limits/our-std-is-good-enough.patch @@ -0,0 +1,11 @@ +--- ./limits/typing.py.orig ++++ ./limits/typing.py +@@ -13,7 +13,7 @@ + Union, + ) + +-from typing_extensions import ClassVar, Counter, ParamSpec, Protocol, TypeAlias ++from typing import ClassVar, Counter, ParamSpec, Protocol, TypeAlias + + Serializable = Union[int, str, float] + diff --git a/backports/py3-limits/tests-drop-etcd3-and-k-argument.patch b/backports/py3-limits/tests-drop-etcd3-and-k-argument.patch new file mode 100644 index 0000000..cab3a06 --- /dev/null +++ b/backports/py3-limits/tests-drop-etcd3-and-k-argument.patch @@ -0,0 +1,24 @@ +diff --git a/tests/conftest.py.orig b/tests/conftest.py +index 2aeb758dda6..a9b2b8b2bd1 100644 +--- a/tests/conftest.py.orig ++++ b/tests/conftest.py +@@ -3,7 +3,6 @@ import platform + import socket + import time + +-import etcd3 + import pymemcache + import pymemcache.client + import pymongo +diff --git a/pytest.ini.orig b/pytest.ini +index 38c40a713d0..8c6659e21c2 100644 +--- a/pytest.ini.orig ++++ b/pytest.ini +@@ -17,7 +17,6 @@ addopts = + -rfEsxX + --cov=limits + -m "not benchmark" +- -K + filterwarnings = + error + module::ResourceWarning From 839fa112c7c7028fccfda99c7650f8797041bdca Mon Sep 17 00:00:00 2001 From: ayakael Date: Mon, 15 Dec 2025 16:07:26 -0500 Subject: [PATCH 82/89] backports/yarn-berry: move to correct dir --- backports/{electron => }/yarn-berry/APKBUILD | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename backports/{electron => }/yarn-berry/APKBUILD (100%) diff --git a/backports/electron/yarn-berry/APKBUILD b/backports/yarn-berry/APKBUILD similarity index 100% rename from backports/electron/yarn-berry/APKBUILD rename to backports/yarn-berry/APKBUILD From 88d7b4e8c7b855b3f5b439aa5d28212349b85970 Mon Sep 17 00:00:00 2001 From: ayakael Date: Tue, 16 Dec 2025 13:34:44 -0500 Subject: [PATCH 83/89] user/filebrowser: new aport --- user/filebrowser/APKBUILD | 53 + user/filebrowser/filebrowser.openrc | 30 + user/filebrowser/filebrowser.post-upgrade | 1 + user/filebrowser/filebrowser.pre-install | 47 + user/filebrowser/frontend-package-lock.json | 7568 +++++++++++++++++++ 5 files changed, 7699 insertions(+) create mode 100644 user/filebrowser/APKBUILD create mode 100644 user/filebrowser/filebrowser.openrc create mode 120000 user/filebrowser/filebrowser.post-upgrade create mode 100644 user/filebrowser/filebrowser.pre-install create mode 100644 user/filebrowser/frontend-package-lock.json diff --git a/user/filebrowser/APKBUILD b/user/filebrowser/APKBUILD new file mode 100644 index 0000000..7ff2627 --- /dev/null +++ b/user/filebrowser/APKBUILD @@ -0,0 +1,53 @@ +# Maintainer: Antoine Martin (ayakael) +pkgname=filebrowser +pkgver=1.0.3 +_gittag="v$pkgver-stable" +pkgrel=0 +pkgdesc="Standalone web file manager" +arch="all" +url="https://github.com/gtsteffaniak/filebrowser" +license="Apache-2.0" +depends="libcap-setcap" +makedepends="go nodejs npm" +source=" + $pkgname-$_gittag.tar.gz::https://github.com/gtsteffaniak/filebrowser/archive/refs/tags/$_gittag.tar.gz + frontend-package-lock.json + filebrowser.openrc + " +builddir="$srcdir"/$pkgname-${_gittag/v} +options="!check" # TODO: setup test suite +subpackages="$pkgname-openrc" +install="$pkgname.pre-install $pkgname.post-upgrade" + +prepare() { + default_prepare + ( + cd "$builddir"/frontend + cp "$srcdir"/frontend-package-lock.json package-lock.json + npm ci + ) +} + +build() { + ( + cd "$builddir"/frontend + npm run build + ) + ( + cd "$builddir"/backend + go build -o filebrowser \ + --ldflags="-w -s -X 'github.com/gtsteffaniak/filebrowser/backend/common/version.CommitSHA=production' \ + -X 'github.com/gtsteffaniak/filebrowser/backend/common/version.Version=$pkgver'" + ) +} + +package() { + install -Dm755 "$builddir"/backend/filebrowser "$pkgdir"/usr/bin/filebrowser + install -Dm755 "$srcdir"/filebrowser.openrc "$pkgdir"/etc/init.d/filebrowser + install -Dm644 "$builddir"/frontend/public/config.generated.yaml "$pkgdir"/etc/filebrowser/filebrowser.yaml +} +sha512sums=" +7919d391e45c7a88bcbff61f6d63963fe559afe21170c2940ae7895e6b794ce68af0742d4ce81584437b14e603a4ff8b95fb1fb16d72a032a40b76986ed8981b filebrowser-v1.0.3-stable.tar.gz +4ffe0c2ae7d6d972950fb38c9c777c20e3f507da6b4562231e09843b3ae618362ffdfbaf6dbb60959b3811c1856eb326d608e9d32e236bac405c65974e6e1e50 frontend-package-lock.json +06319bc67b088b5ffdad01a575691d82c5319730b4e46975bfc09ebb7466d6913eaca73e93f8db7b8c8bc374e6b9e35634ff1a69e701d24a5d2eae444de6bdf7 filebrowser.openrc +" diff --git a/user/filebrowser/filebrowser.openrc b/user/filebrowser/filebrowser.openrc new file mode 100644 index 0000000..3282368 --- /dev/null +++ b/user/filebrowser/filebrowser.openrc @@ -0,0 +1,30 @@ +#!/sbin/openrc-run + +description="File browser for ${RC_SVCNAME/*.}" +supervisor=supervise-daemon +respawn_max=0 +respawn_delay=10 + + +# Change $directory to path to middleware scripts +directory=${directory:-/var/lib/${RC_SVCNAME/.*}/${RC_SVCNAME/*.}} +pidfile=${pidfile:-/run/$RC_SVCNAME.pid} + +log_dir="/var/log/${RC_SVCNAME/.*}/" +logfile=${logfile:-$log_dir/${RC_SVCNAME/*.}.log} +output_log="${output_log:-$logfile}" +error_log="${error_log:-$logfile}" + +command=${command:-/usr/bin/filebrowser} +command_args="-c /etc/filebrowser/${RC_SVCNAME/*.}.yaml" +command_user=${command_user:-filebrowser:filebrowser} +command_background=true + +depend() { + need net +} + +start_pre() { + checkpath --owner=$command_user --directory $log_dir /var/lib/filebrowser $directory + cd $directory +} diff --git a/user/filebrowser/filebrowser.post-upgrade b/user/filebrowser/filebrowser.post-upgrade new file mode 120000 index 0000000..85089dd --- /dev/null +++ b/user/filebrowser/filebrowser.post-upgrade @@ -0,0 +1 @@ +filebrowser.pre-install \ No newline at end of file diff --git a/user/filebrowser/filebrowser.pre-install b/user/filebrowser/filebrowser.pre-install new file mode 100644 index 0000000..b79bd82 --- /dev/null +++ b/user/filebrowser/filebrowser.pre-install @@ -0,0 +1,47 @@ +#!/bin/sh + +setcap 'cap_net_bind_service=+ep' /usr/bin/filebrowser + +if [ "${0##*.}" = 'pre-install' ]; then + cat >&2 <<-EOF + +1. Generate filebrowser config file + + cd /etc/filebrowser + filebrowser setup + +2. Rename config.yaml to $service.yaml (i.e. movies.yaml) and adjust as desired (see https://filebrowserquantum.com/en/docs/configuration/configuration-overview/ for more information) +3. Create symbolic link for service file, enable, and start + + ln -s /etc/init.d/filebrowser /etc/init.d/filebrowser.$service + rc-update add filebrowser.$service + service filebrowser.$service + +You should now be able to go to http://ip-address:port (default 80) + +For more documentation, go to https://filebrowserquantum.com/en/docs + + EOF + + if ! getent group filebrowser 1>/dev/null; then + echo 'Creating group filebrowser' 1>&2 + + addgroup -S filebrowser + fi + + if ! id filebrowser 2>/dev/null 1>&2; then + echo 'Creating user filebrowser' 1>&2 + + adduser -DHS -G filebrowser -h "$DATADIR" -s /bin/sh \ + -g "added by apk for filebrowser" filebrowser + passwd -u filebrowser 1>/dev/null # unlock + fi + + if ! id -Gn filebrowser | grep -Fq www-data; then + echo 'Adding user filebrowser to group www-data' 1>&2 + + addgroup filebrowser www-data + fi + + exit 0 +fi diff --git a/user/filebrowser/frontend-package-lock.json b/user/filebrowser/frontend-package-lock.json new file mode 100644 index 0000000..fca845b --- /dev/null +++ b/user/filebrowser/frontend-package-lock.json @@ -0,0 +1,7568 @@ +{ + "name": "filebrowser-frontend", + "version": "3.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "filebrowser-frontend", + "version": "3.0.0", + "dependencies": { + "@onlyoffice/document-editor-vue": "^1.4.0", + "@skjnldsv/vue-plyr": "^7.5.0", + "ace-builds": "^1.24.2", + "axios": "^1.7.9", + "clipboard": "^2.0.4", + "css-vars-ponyfill": "^2.4.3", + "dompurify": "^3.2.4", + "epubjs": "^0.3.93", + "file-loader": "^6.2.0", + "glob": "^9.3.5", + "highlight.js": "^11.11.1", + "mammoth": "^1.9.1", + "marked": "^15.0.6", + "normalize.css": "^8.0.1", + "qrcode.vue": "^3.4.1", + "srt-support-for-html5-videos": "^2.6.11", + "vue": "^3.4.21", + "vue-i18n": "^9.10.2", + "vue-lazyload": "^3.0.0", + "vue-router": "^4.3.0" + }, + "devDependencies": { + "@intlify/eslint-plugin-vue-i18n": "^3.2.0", + "@intlify/unplugin-vue-i18n": "^4.0.0", + "@playwright/test": "^1.54.1", + "@types/node": "^24.1.0", + "@vitejs/plugin-vue": "^5.0.4", + "@vue/eslint-config-typescript": "^13.0.0", + "deepl-node": "^1.18.0", + "eslint": "^8.57.0", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-vue": "^9.24.0", + "fs-extra": "^11.3.0", + "jsdom": "^25.0.1", + "vite": "^6.2.0", + "vite-plugin-checker": "^0.10.3", + "vite-plugin-compression2": "^1.0.0", + "vitest": "^3.0.7", + "vue-tsc": "^2.0.7" + }, + "engines": { + "node": ">=20.0.0", + "npm": ">=9.0.0" + } + }, + "node_modules/@asamuzakjp/css-color": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-3.2.0.tgz", + "integrity": "sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@csstools/css-calc": "^2.1.3", + "@csstools/css-color-parser": "^3.0.9", + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3", + "lru-cache": "^10.4.3" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.27.1", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.5.tgz", + "integrity": "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.28.5" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.4.tgz", + "integrity": "sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.5.tgz", + "integrity": "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@csstools/color-helpers": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.1.0.tgz", + "integrity": "sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + } + }, + "node_modules/@csstools/css-calc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-2.1.4.tgz", + "integrity": "sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + } + }, + "node_modules/@csstools/css-color-parser": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.1.0.tgz", + "integrity": "sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaTA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "dependencies": { + "@csstools/color-helpers": "^5.1.0", + "@csstools/css-calc": "^2.1.4" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + } + }, + "node_modules/@csstools/css-parser-algorithms": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.5.tgz", + "integrity": "sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-tokenizer": "^3.0.4" + } + }, + "node_modules/@csstools/css-tokenizer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.4.tgz", + "integrity": "sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz", + "integrity": "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.12.tgz", + "integrity": "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz", + "integrity": "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.12.tgz", + "integrity": "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz", + "integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz", + "integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz", + "integrity": "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz", + "integrity": "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz", + "integrity": "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz", + "integrity": "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz", + "integrity": "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz", + "integrity": "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz", + "integrity": "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz", + "integrity": "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz", + "integrity": "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz", + "integrity": "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz", + "integrity": "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz", + "integrity": "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz", + "integrity": "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz", + "integrity": "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz", + "integrity": "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz", + "integrity": "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz", + "integrity": "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz", + "integrity": "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz", + "integrity": "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz", + "integrity": "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.0.tgz", + "integrity": "sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", + "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.3.tgz", + "integrity": "sha512-Kr+LPIUVKz2qkx1HAMH8q1q6azbqBAsXJUxBl/ODDuVPX45Z9DfwB8tPjTi6nNZ8BuM3nbJxC5zCAg5elnBUTQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.1", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/@eslint/js": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", + "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", + "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", + "deprecated": "Use @eslint/config-array instead", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.3", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@intlify/bundle-utils": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@intlify/bundle-utils/-/bundle-utils-8.0.0.tgz", + "integrity": "sha512-1B++zykRnMwQ+20SpsZI1JCnV/YJt9Oq7AGlEurzkWJOFtFAVqaGc/oV36PBRYeiKnTbY9VYfjBimr2Vt42wLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@intlify/message-compiler": "^9.4.0", + "@intlify/shared": "^9.4.0", + "acorn": "^8.8.2", + "escodegen": "^2.1.0", + "estree-walker": "^2.0.2", + "jsonc-eslint-parser": "^2.3.0", + "mlly": "^1.2.0", + "source-map-js": "^1.0.1", + "yaml-eslint-parser": "^1.2.2" + }, + "engines": { + "node": ">= 14.16" + }, + "peerDependenciesMeta": { + "petite-vue-i18n": { + "optional": true + }, + "vue-i18n": { + "optional": true + } + } + }, + "node_modules/@intlify/core-base": { + "version": "9.14.5", + "resolved": "https://registry.npmjs.org/@intlify/core-base/-/core-base-9.14.5.tgz", + "integrity": "sha512-5ah5FqZG4pOoHjkvs8mjtv+gPKYU0zCISaYNjBNNqYiaITxW8ZtVih3GS/oTOqN8d9/mDLyrjD46GBApNxmlsA==", + "license": "MIT", + "dependencies": { + "@intlify/message-compiler": "9.14.5", + "@intlify/shared": "9.14.5" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" + } + }, + "node_modules/@intlify/eslint-plugin-vue-i18n": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@intlify/eslint-plugin-vue-i18n/-/eslint-plugin-vue-i18n-3.2.0.tgz", + "integrity": "sha512-TOIrD4tJE48WMyVIB8bNeQJJPYo1Prpqnm9Xpn1UZmcqlELhm8hmP8QyJnkgesfbG7hyiX/kvo63W7ClEQmhpg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint/eslintrc": "^3.0.0", + "@intlify/core-base": "^9.12.0", + "@intlify/message-compiler": "^9.12.0", + "debug": "^4.3.4", + "eslint-compat-utils": "^0.6.0", + "glob": "^10.3.3", + "globals": "^15.0.0", + "ignore": "^6.0.0", + "import-fresh": "^3.3.0", + "is-language-code": "^3.1.0", + "js-yaml": "^4.1.0", + "json5": "^2.2.3", + "jsonc-eslint-parser": "^2.3.0", + "lodash": "^4.17.21", + "parse5": "^7.1.2", + "semver": "^7.5.4", + "synckit": "^0.9.0", + "vue-eslint-parser": "^9.3.1", + "yaml-eslint-parser": "^1.2.2" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "eslint": "^8.0.0 || ^9.0.0-0" + } + }, + "node_modules/@intlify/eslint-plugin-vue-i18n/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@intlify/eslint-plugin-vue-i18n/node_modules/glob": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", + "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@intlify/eslint-plugin-vue-i18n/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@intlify/eslint-plugin-vue-i18n/node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/@intlify/message-compiler": { + "version": "9.14.5", + "resolved": "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-9.14.5.tgz", + "integrity": "sha512-IHzgEu61/YIpQV5Pc3aRWScDcnFKWvQA9kigcINcCBXN8mbW+vk9SK+lDxA6STzKQsVJxUPg9ACC52pKKo3SVQ==", + "license": "MIT", + "dependencies": { + "@intlify/shared": "9.14.5", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" + } + }, + "node_modules/@intlify/shared": { + "version": "9.14.5", + "resolved": "https://registry.npmjs.org/@intlify/shared/-/shared-9.14.5.tgz", + "integrity": "sha512-9gB+E53BYuAEMhbCAxVgG38EZrk59sxBtv3jSizNL2hEWlgjBjAw1AwpLHtNaeda12pe6W20OGEa0TwuMSRbyQ==", + "license": "MIT", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" + } + }, + "node_modules/@intlify/unplugin-vue-i18n": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@intlify/unplugin-vue-i18n/-/unplugin-vue-i18n-4.0.0.tgz", + "integrity": "sha512-q2Mhqa/mLi0tulfLFO4fMXXvEbkSZpI5yGhNNsLTNJJ41icEGUuyDe+j5zRZIKSkOJRgX6YbCyibTDJdRsukmw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@intlify/bundle-utils": "^8.0.0", + "@intlify/shared": "^9.4.0", + "@rollup/pluginutils": "^5.1.0", + "@vue/compiler-sfc": "^3.2.47", + "debug": "^4.3.3", + "fast-glob": "^3.2.12", + "js-yaml": "^4.1.0", + "json5": "^2.2.3", + "pathe": "^1.0.0", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2", + "unplugin": "^1.1.0" + }, + "engines": { + "node": ">= 14.16" + }, + "peerDependencies": { + "petite-vue-i18n": "*", + "vue-i18n": "*", + "vue-i18n-bridge": "*" + }, + "peerDependenciesMeta": { + "petite-vue-i18n": { + "optional": true + }, + "vue-i18n": { + "optional": true + }, + "vue-i18n-bridge": { + "optional": true + } + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", + "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", + "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@onlyoffice/document-editor-vue": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@onlyoffice/document-editor-vue/-/document-editor-vue-1.6.1.tgz", + "integrity": "sha512-sdU7h684ESSdXvGNDcMf73UmToiZGMVO5QRIazTmGfm+bKOnT5ildomeagYFdnQaHQH0J28EJqc4jqXOcQbicA==", + "license": "Apache-2.0", + "dependencies": { + "lodash": "^4.17.21" + }, + "peerDependencies": { + "vue": "^3.0.0" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@pkgr/core": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.2.tgz", + "integrity": "sha512-fdDH1LSGfZdTH2sxdpVMw31BanV28K/Gry0cVFxaNP77neJSkd82mM8ErPNYs9e+0O7SdHBLTDzDgwUuy18RnQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, + "node_modules/@playwright/test": { + "version": "1.57.0", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.57.0.tgz", + "integrity": "sha512-6TyEnHgd6SArQO8UO2OMTxshln3QMWBtPGrOCgs3wVEmQmwyuNtB10IZMfmYDE0riwNR1cu4q+pPcxMVtaG3TA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "playwright": "1.57.0" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@rollup/pluginutils": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.3.0.tgz", + "integrity": "sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.53.5.tgz", + "integrity": "sha512-iDGS/h7D8t7tvZ1t6+WPK04KD0MwzLZrG0se1hzBjSi5fyxlsiggoJHwh18PCFNn7tG43OWb6pdZ6Y+rMlmyNQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.53.5.tgz", + "integrity": "sha512-wrSAViWvZHBMMlWk6EJhvg8/rjxzyEhEdgfMMjREHEq11EtJ6IP6yfcCH57YAEca2Oe3FNCE9DSTgU70EIGmVw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.53.5.tgz", + "integrity": "sha512-S87zZPBmRO6u1YXQLwpveZm4JfPpAa6oHBX7/ghSiGH3rz/KDgAu1rKdGutV+WUI6tKDMbaBJomhnT30Y2t4VQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.53.5.tgz", + "integrity": "sha512-YTbnsAaHo6VrAczISxgpTva8EkfQus0VPEVJCEaboHtZRIb6h6j0BNxRBOwnDciFTZLDPW5r+ZBmhL/+YpTZgA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.53.5.tgz", + "integrity": "sha512-1T8eY2J8rKJWzaznV7zedfdhD1BqVs1iqILhmHDq/bqCUZsrMt+j8VCTHhP0vdfbHK3e1IQ7VYx3jlKqwlf+vw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.53.5.tgz", + "integrity": "sha512-sHTiuXyBJApxRn+VFMaw1U+Qsz4kcNlxQ742snICYPrY+DDL8/ZbaC4DVIB7vgZmp3jiDaKA0WpBdP0aqPJoBQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.53.5.tgz", + "integrity": "sha512-dV3T9MyAf0w8zPVLVBptVlzaXxka6xg1f16VAQmjg+4KMSTWDvhimI/Y6mp8oHwNrmnmVl9XxJ/w/mO4uIQONA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.53.5.tgz", + "integrity": "sha512-wIGYC1x/hyjP+KAu9+ewDI+fi5XSNiUi9Bvg6KGAh2TsNMA3tSEs+Sh6jJ/r4BV/bx/CyWu2ue9kDnIdRyafcQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.53.5.tgz", + "integrity": "sha512-Y+qVA0D9d0y2FRNiG9oM3Hut/DgODZbU9I8pLLPwAsU0tUKZ49cyV1tzmB/qRbSzGvY8lpgGkJuMyuhH7Ma+Vg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.53.5.tgz", + "integrity": "sha512-juaC4bEgJsyFVfqhtGLz8mbopaWD+WeSOYr5E16y+1of6KQjc0BpwZLuxkClqY1i8sco+MdyoXPNiCkQou09+g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.53.5.tgz", + "integrity": "sha512-rIEC0hZ17A42iXtHX+EPJVL/CakHo+tT7W0pbzdAGuWOt2jxDFh7A/lRhsNHBcqL4T36+UiAgwO8pbmn3dE8wA==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.53.5.tgz", + "integrity": "sha512-T7l409NhUE552RcAOcmJHj3xyZ2h7vMWzcwQI0hvn5tqHh3oSoclf9WgTl+0QqffWFG8MEVZZP1/OBglKZx52Q==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.53.5.tgz", + "integrity": "sha512-7OK5/GhxbnrMcxIFoYfhV/TkknarkYC1hqUw1wU2xUN3TVRLNT5FmBv4KkheSG2xZ6IEbRAhTooTV2+R5Tk0lQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.53.5.tgz", + "integrity": "sha512-GwuDBE/PsXaTa76lO5eLJTyr2k8QkPipAyOrs4V/KJufHCZBJ495VCGJol35grx9xryk4V+2zd3Ri+3v7NPh+w==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.53.5.tgz", + "integrity": "sha512-IAE1Ziyr1qNfnmiQLHBURAD+eh/zH1pIeJjeShleII7Vj8kyEm2PF77o+lf3WTHDpNJcu4IXJxNO0Zluro8bOw==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.53.5.tgz", + "integrity": "sha512-Pg6E+oP7GvZ4XwgRJBuSXZjcqpIW3yCBhK4BcsANvb47qMvAbCjR6E+1a/U2WXz1JJxp9/4Dno3/iSJLcm5auw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.53.5.tgz", + "integrity": "sha512-txGtluxDKTxaMDzUduGP0wdfng24y1rygUMnmlUJ88fzCCULCLn7oE5kb2+tRB+MWq1QDZT6ObT5RrR8HFRKqg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.53.5.tgz", + "integrity": "sha512-3DFiLPnTxiOQV993fMc+KO8zXHTcIjgaInrqlG8zDp1TlhYl6WgrOHuJkJQ6M8zHEcntSJsUp1XFZSY8C1DYbg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.53.5.tgz", + "integrity": "sha512-nggc/wPpNTgjGg75hu+Q/3i32R00Lq1B6N1DO7MCU340MRKL3WZJMjA9U4K4gzy3dkZPXm9E1Nc81FItBVGRlA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.53.5.tgz", + "integrity": "sha512-U/54pTbdQpPLBdEzCT6NBCFAfSZMvmjr0twhnD9f4EIvlm9wy3jjQ38yQj1AGznrNO65EWQMgm/QUjuIVrYF9w==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.53.5.tgz", + "integrity": "sha512-2NqKgZSuLH9SXBBV2dWNRCZmocgSOx8OJSdpRaEcRlIfX8YrKxUT6z0F1NpvDVhOsl190UFTRh2F2WDWWCYp3A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.53.5.tgz", + "integrity": "sha512-JRpZUhCfhZ4keB5v0fe02gQJy05GqboPOaxvjugW04RLSYYoB/9t2lx2u/tMs/Na/1NXfY8QYjgRljRpN+MjTQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@skjnldsv/vue-plyr": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@skjnldsv/vue-plyr/-/vue-plyr-7.5.0.tgz", + "integrity": "sha512-JmbKPe8Eh0yTP+7w4VYeqGhrUqDKM4qSsCn37CbADAvvwMvceBwYC0IBXil0RBtyzStxwXPtOj1oI//lQ5DeTw==", + "license": "MIT", + "dependencies": { + "plyr": "^3.7.8", + "vue": "^3.3.4" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0", + "npm": "^9.0.0 || ^10.0.0" + } + }, + "node_modules/@types/chai": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.3.tgz", + "integrity": "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/deep-eql": "*", + "assertion-error": "^2.0.1" + } + }, + "node_modules/@types/deep-eql": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz", + "integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/eslint": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", + "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "license": "MIT" + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "license": "MIT" + }, + "node_modules/@types/localforage": { + "version": "0.0.34", + "resolved": "https://registry.npmjs.org/@types/localforage/-/localforage-0.0.34.tgz", + "integrity": "sha512-tJxahnjm9dEI1X+hQSC5f2BSd/coZaqbIl1m3TCl0q9SVuC52XcXfV0XmoCU1+PmjyucuVITwoTnN8OlTbEXXA==", + "deprecated": "This is a stub types definition for localforage (https://github.com/localForage/localForage). localforage provides its own type definitions, so you don't need @types/localforage installed!", + "license": "MIT", + "dependencies": { + "localforage": "*" + } + }, + "node_modules/@types/node": { + "version": "24.10.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.10.4.tgz", + "integrity": "sha512-vnDVpYPMzs4wunl27jHrfmwojOGKya0xyM3sH+UE5iv5uPS6vX7UIoh6m+vQc5LGBq52HBKPIn/zcSZVzeDEZg==", + "license": "MIT", + "dependencies": { + "undici-types": "~7.16.0" + } + }, + "node_modules/@types/trusted-types": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", + "license": "MIT", + "optional": true + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.18.0.tgz", + "integrity": "sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "7.18.0", + "@typescript-eslint/type-utils": "7.18.0", + "@typescript-eslint/utils": "7.18.0", + "@typescript-eslint/visitor-keys": "7.18.0", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^7.0.0", + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.18.0.tgz", + "integrity": "sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/scope-manager": "7.18.0", + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/typescript-estree": "7.18.0", + "@typescript-eslint/visitor-keys": "7.18.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.18.0.tgz", + "integrity": "sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/visitor-keys": "7.18.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.18.0.tgz", + "integrity": "sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/typescript-estree": "7.18.0", + "@typescript-eslint/utils": "7.18.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.18.0.tgz", + "integrity": "sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.18.0.tgz", + "integrity": "sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/visitor-keys": "7.18.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.18.0.tgz", + "integrity": "sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "7.18.0", + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/typescript-estree": "7.18.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz", + "integrity": "sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "7.18.0", + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", + "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", + "dev": true, + "license": "ISC" + }, + "node_modules/@vitejs/plugin-vue": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.2.4.tgz", + "integrity": "sha512-7Yx/SXSOcQq5HiiV3orevHUFn+pmMB4cgbEkDYgnkUWb0WfeQ/wa2yFv6D5ICiCQOVpjA7vYDXrC7AGO8yjDHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "peerDependencies": { + "vite": "^5.0.0 || ^6.0.0", + "vue": "^3.2.25" + } + }, + "node_modules/@vitest/expect": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.2.4.tgz", + "integrity": "sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/chai": "^5.2.2", + "@vitest/spy": "3.2.4", + "@vitest/utils": "3.2.4", + "chai": "^5.2.0", + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/mocker": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-3.2.4.tgz", + "integrity": "sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/spy": "3.2.4", + "estree-walker": "^3.0.3", + "magic-string": "^0.30.17" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "msw": "^2.4.9", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0" + }, + "peerDependenciesMeta": { + "msw": { + "optional": true + }, + "vite": { + "optional": true + } + } + }, + "node_modules/@vitest/mocker/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/@vitest/pretty-format": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.2.4.tgz", + "integrity": "sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-3.2.4.tgz", + "integrity": "sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/utils": "3.2.4", + "pathe": "^2.0.3", + "strip-literal": "^3.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner/node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@vitest/snapshot": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.2.4.tgz", + "integrity": "sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "3.2.4", + "magic-string": "^0.30.17", + "pathe": "^2.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/snapshot/node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@vitest/spy": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-3.2.4.tgz", + "integrity": "sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyspy": "^4.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.2.4.tgz", + "integrity": "sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "3.2.4", + "loupe": "^3.1.4", + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@volar/language-core": { + "version": "2.4.15", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.15.tgz", + "integrity": "sha512-3VHw+QZU0ZG9IuQmzT68IyN4hZNd9GchGPhbD9+pa8CVv7rnoOZwo7T8weIbrRmihqy3ATpdfXFnqRrfPVK6CA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/source-map": "2.4.15" + } + }, + "node_modules/@volar/source-map": { + "version": "2.4.15", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.15.tgz", + "integrity": "sha512-CPbMWlUN6hVZJYGcU/GSoHu4EnCHiLaXI9n8c9la6RaI9W5JHX+NqG+GSQcB0JdC2FIBLdZJwGsfKyBB71VlTg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@volar/typescript": { + "version": "2.4.15", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.15.tgz", + "integrity": "sha512-2aZ8i0cqPGjXb4BhkMsPYDkkuc2ZQ6yOpqwAuNwUoncELqoy5fRgOQtLR9gB0g902iS0NAkvpIzs27geVyVdPg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/language-core": "2.4.15", + "path-browserify": "^1.0.1", + "vscode-uri": "^3.0.8" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.5.25", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.25.tgz", + "integrity": "sha512-vay5/oQJdsNHmliWoZfHPoVZZRmnSWhug0BYT34njkYTPqClh3DNWLkZNJBVSjsNMrg0CCrBfoKkjZQPM/QVUw==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.28.5", + "@vue/shared": "3.5.25", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.1" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.5.25", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.25.tgz", + "integrity": "sha512-4We0OAcMZsKgYoGlMjzYvaoErltdFI2/25wqanuTu+S4gismOTRTBPi4IASOjxWdzIwrYSjnqONfKvuqkXzE2Q==", + "license": "MIT", + "dependencies": { + "@vue/compiler-core": "3.5.25", + "@vue/shared": "3.5.25" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.5.25", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.25.tgz", + "integrity": "sha512-PUgKp2rn8fFsI++lF2sO7gwO2d9Yj57Utr5yEsDf3GNaQcowCLKL7sf+LvVFvtJDXUp/03+dC6f2+LCv5aK1ag==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.28.5", + "@vue/compiler-core": "3.5.25", + "@vue/compiler-dom": "3.5.25", + "@vue/compiler-ssr": "3.5.25", + "@vue/shared": "3.5.25", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.21", + "postcss": "^8.5.6", + "source-map-js": "^1.2.1" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.5.25", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.25.tgz", + "integrity": "sha512-ritPSKLBcParnsKYi+GNtbdbrIE1mtuFEJ4U1sWeuOMlIziK5GtOL85t5RhsNy4uWIXPgk+OUdpnXiTdzn8o3A==", + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.25", + "@vue/shared": "3.5.25" + } + }, + "node_modules/@vue/compiler-vue2": { + "version": "2.7.16", + "resolved": "https://registry.npmjs.org/@vue/compiler-vue2/-/compiler-vue2-2.7.16.tgz", + "integrity": "sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==", + "dev": true, + "license": "MIT", + "dependencies": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "node_modules/@vue/devtools-api": { + "version": "6.6.4", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.4.tgz", + "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==", + "license": "MIT" + }, + "node_modules/@vue/eslint-config-typescript": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/@vue/eslint-config-typescript/-/eslint-config-typescript-13.0.0.tgz", + "integrity": "sha512-MHh9SncG/sfqjVqjcuFLOLD6Ed4dRAis4HNt0dXASeAuLqIAx4YMB1/m2o4pUKK1vCt8fUvYG8KKX2Ot3BVZTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/eslint-plugin": "^7.1.1", + "@typescript-eslint/parser": "^7.1.1", + "vue-eslint-parser": "^9.3.1" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "peerDependencies": { + "eslint": "^8.56.0", + "eslint-plugin-vue": "^9.0.0", + "typescript": ">=4.7.4" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@vue/language-core": { + "version": "2.2.12", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-2.2.12.tgz", + "integrity": "sha512-IsGljWbKGU1MZpBPN+BvPAdr55YPkj2nB/TBNGNC32Vy2qLG25DYu/NBN2vNtZqdRbTRjaoYrahLrToim2NanA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/language-core": "2.4.15", + "@vue/compiler-dom": "^3.5.0", + "@vue/compiler-vue2": "^2.7.16", + "@vue/shared": "^3.5.0", + "alien-signals": "^1.0.3", + "minimatch": "^9.0.3", + "muggle-string": "^0.4.1", + "path-browserify": "^1.0.1" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@vue/language-core/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@vue/language-core/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@vue/reactivity": { + "version": "3.5.25", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.25.tgz", + "integrity": "sha512-5xfAypCQepv4Jog1U4zn8cZIcbKKFka3AgWHEFQeK65OW+Ys4XybP6z2kKgws4YB43KGpqp5D/K3go2UPPunLA==", + "license": "MIT", + "dependencies": { + "@vue/shared": "3.5.25" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.5.25", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.25.tgz", + "integrity": "sha512-Z751v203YWwYzy460bzsYQISDfPjHTl+6Zzwo/a3CsAf+0ccEjQ8c+0CdX1WsumRTHeywvyUFtW6KvNukT/smA==", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.25", + "@vue/shared": "3.5.25" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.5.25", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.25.tgz", + "integrity": "sha512-a4WrkYFbb19i9pjkz38zJBg8wa/rboNERq3+hRRb0dHiJh13c+6kAbgqCPfMaJ2gg4weWD3APZswASOfmKwamA==", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.25", + "@vue/runtime-core": "3.5.25", + "@vue/shared": "3.5.25", + "csstype": "^3.1.3" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.5.25", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.25.tgz", + "integrity": "sha512-UJaXR54vMG61i8XNIzTSf2Q7MOqZHpp8+x3XLGtE3+fL+nQd+k7O5+X3D/uWrnQXOdMw5VPih+Uremcw+u1woQ==", + "license": "MIT", + "dependencies": { + "@vue/compiler-ssr": "3.5.25", + "@vue/shared": "3.5.25" + }, + "peerDependencies": { + "vue": "3.5.25" + } + }, + "node_modules/@vue/shared": { + "version": "3.5.25", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.25.tgz", + "integrity": "sha512-AbOPdQQnAnzs58H2FrrDxYj/TJfmeS2jdfEEhgiKINy+bnOANmVizIEgq1r+C5zsbs6l1CCQxtcj71rwNQ4jWg==", + "license": "MIT" + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", + "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "@webassemblyjs/helper-numbers": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", + "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", + "license": "MIT", + "peer": true + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", + "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", + "license": "MIT", + "peer": true + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", + "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", + "license": "MIT", + "peer": true + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", + "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.13.2", + "@webassemblyjs/helper-api-error": "1.13.2", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", + "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", + "license": "MIT", + "peer": true + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", + "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/wasm-gen": "1.14.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", + "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", + "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", + "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", + "license": "MIT", + "peer": true + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", + "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/helper-wasm-section": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-opt": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1", + "@webassemblyjs/wast-printer": "1.14.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", + "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", + "license": "MIT", + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", + "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", + "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-api-error": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", + "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xmldom/xmldom": { + "version": "0.7.13", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.7.13.tgz", + "integrity": "sha512-lm2GW5PkosIzccsaZIz7tp8cPADSIlIHWDFTR1N0SzfinhhYgeIQjFMz4rYzanCScr3DqQLeomUDArp6MWKm+g==", + "deprecated": "this version is no longer supported, please update to at least 0.8.*", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "license": "BSD-3-Clause", + "peer": true + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "license": "Apache-2.0", + "peer": true + }, + "node_modules/ace-builds": { + "version": "1.43.5", + "resolved": "https://registry.npmjs.org/ace-builds/-/ace-builds-1.43.5.tgz", + "integrity": "sha512-iH5FLBKdB7SVn9GR37UgA/tpQS8OTWIxWAuq3Ofaw+Qbc69FfPXsXd9jeW7KRG2xKpKMqBDnu0tHBrCWY5QI7A==", + "license": "BSD-3-Clause" + }, + "node_modules/acorn": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-phases": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/acorn-import-phases/-/acorn-import-phases-1.0.4.tgz", + "integrity": "sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=10.13.0" + }, + "peerDependencies": { + "acorn": "^8.14.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/adm-zip": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.16.tgz", + "integrity": "sha512-TGw5yVi4saajsSEgz25grObGHEUaDrniwvA2qwSC060KfqGPdglhvPMA2lPIoxs3PQIItj2iag35fONcQqgUaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0" + } + }, + "node_modules/agent-base": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "license": "MIT", + "peer": true, + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-formats/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "license": "MIT", + "peer": true, + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "license": "MIT", + "peer": true + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/alien-signals": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/alien-signals/-/alien-signals-1.0.13.tgz", + "integrity": "sha512-OGj9yyTnJEttvzhTUWuscOvtqxq5vrhF7vL9oS0xJ2mK0ItPYP1/y+vCFebfxoEyAz0++1AIwJ5CMr+Fk3nDmg==", + "dev": true, + "license": "MIT" + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/assertion-error": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" + }, + "node_modules/axios": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.13.2.tgz", + "integrity": "sha512-VPk9ebNqPcy5lRGuSlKx752IlDatOjT9paPlm8A7yOuW2Fbvp4X3JznJtT4f0GzGLLiWE9W8onz51SqLYwzGaA==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.4", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/baseline-browser-mapping": { + "version": "2.9.8", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.8.tgz", + "integrity": "sha512-Y1fOuNDowLfgKOypdc9SPABfoWXuZHBOyCS4cD52IeZBhr4Md6CLLs6atcxVrzRmQ06E7hSlm5bHHApPKR/byA==", + "license": "Apache-2.0", + "peer": true, + "bin": { + "baseline-browser-mapping": "dist/cli.js" + } + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/bluebird": { + "version": "3.4.7", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz", + "integrity": "sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA==", + "license": "MIT" + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true, + "license": "ISC" + }, + "node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz", + "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "baseline-browser-mapping": "^2.9.0", + "caniuse-lite": "^1.0.30001759", + "electron-to-chromium": "^1.5.263", + "node-releases": "^2.0.27", + "update-browserslist-db": "^1.2.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "license": "MIT", + "peer": true + }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001760", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001760.tgz", + "integrity": "sha512-7AAMPcueWELt1p3mi13HR/LHH0TJLT11cnwDJEs3xA4+CK/PLKeO9Kl1oru24htkyUKtkGCvAx4ohB0Ttry8Dw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0", + "peer": true + }, + "node_modules/chai": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/chai/-/chai-5.3.3.tgz", + "integrity": "sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/check-error": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz", + "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 16" + } + }, + "node_modules/chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/clipboard": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.11.tgz", + "integrity": "sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw==", + "license": "MIT", + "dependencies": { + "good-listener": "^1.2.2", + "select": "^1.1.2", + "tiny-emitter": "^2.0.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "license": "MIT", + "peer": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/confbox": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz", + "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/core-js": { + "version": "3.47.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.47.0.tgz", + "integrity": "sha512-c3Q2VVkGAUyupsjRnaNX6u8Dq2vAdzm9iuPj5FW0fRxzlxgq9Q39MDq10IvmQSpLgHQNyQzQmOo6bgGHmH3NNg==", + "hasInstallScript": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "license": "MIT" + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-vars-ponyfill": { + "version": "2.4.9", + "resolved": "https://registry.npmjs.org/css-vars-ponyfill/-/css-vars-ponyfill-2.4.9.tgz", + "integrity": "sha512-aZyLue5bdiGVNCiCclNjo123D8I7kyoYNUaAvz+H1JalX1ye4Ilz7jNRRH5YbM+dYD6ucejiydGwk7lol/GCXQ==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.2", + "get-css-data": "^2.0.2" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssstyle": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-4.6.0.tgz", + "integrity": "sha512-2z+rWdzbbSZv6/rhtvzvqeZQHrBaqgogqt85sqFNbabZOuFbCVFb8kPeEtZjiKkbrm395irpNKiYeFeLiQnFPg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@asamuzakjp/css-color": "^3.2.0", + "rrweb-cssom": "^0.8.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/cssstyle/node_modules/rrweb-cssom": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.8.0.tgz", + "integrity": "sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==", + "dev": true, + "license": "MIT" + }, + "node_modules/csstype": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "license": "MIT" + }, + "node_modules/custom-event-polyfill": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/custom-event-polyfill/-/custom-event-polyfill-1.0.7.tgz", + "integrity": "sha512-TDDkd5DkaZxZFM8p+1I3yAlvM3rSr1wbrOliG4yJiwinMZN8z/iGL7BTlDkrJcYTmgUSb4ywVCc3ZaUtOtC76w==", + "license": "MIT" + }, + "node_modules/d": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.2.tgz", + "integrity": "sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==", + "license": "ISC", + "dependencies": { + "es5-ext": "^0.10.64", + "type": "^2.7.2" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/data-urls": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-5.0.0.tgz", + "integrity": "sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "whatwg-mimetype": "^4.0.0", + "whatwg-url": "^14.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==", + "dev": true, + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decimal.js": { + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.6.0.tgz", + "integrity": "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==", + "dev": true, + "license": "MIT" + }, + "node_modules/deep-eql": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", + "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/deepl-node": { + "version": "1.24.0", + "resolved": "https://registry.npmjs.org/deepl-node/-/deepl-node-1.24.0.tgz", + "integrity": "sha512-vZ9jUpzJRvFamgVOfm1LDy3YYJ7k8FhxtAX9whR92EFshLIP9JlYS0HFwXL5yYsfqzXdb/wssGRSWvR48t7nSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": ">=12.0", + "adm-zip": "^0.5.16", + "axios": "^1.7.4", + "form-data": "^3.0.0", + "loglevel": ">=1.6.2", + "uuid": "^8.3.2" + }, + "engines": { + "node": ">=12.0" + } + }, + "node_modules/deepl-node/node_modules/form-data": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.4.tgz", + "integrity": "sha512-f0cRzm6dkyVYV3nPoooP8XlccPQukegwhAnpoLcXy+X+A8KfpGOoXwDr9FLZd3wzgLaBGQBE3lY93Zm/i1JvIQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", + "mime-types": "^2.1.35" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/delegate": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz", + "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==", + "license": "MIT" + }, + "node_modules/dingbat-to-unicode": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dingbat-to-unicode/-/dingbat-to-unicode-1.0.1.tgz", + "integrity": "sha512-98l0sW87ZT58pU4i61wa2OHwxbiYSbuxsCBozaVnYX2iCnr3bLM3fIes1/ej7h1YdOKuKt/MLs706TVnALA65w==", + "license": "BSD-2-Clause" + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dompurify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.3.1.tgz", + "integrity": "sha512-qkdCKzLNtrgPFP1Vo+98FRzJnBRGe4ffyCea9IwHB1fyxPOeNTHpLKYGd4Uk9xvNoH0ZoOjwZxNptyMwqrId1Q==", + "license": "(MPL-2.0 OR Apache-2.0)", + "optionalDependencies": { + "@types/trusted-types": "^2.0.7" + } + }, + "node_modules/duck": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/duck/-/duck-0.1.12.tgz", + "integrity": "sha512-wkctla1O6VfP89gQ+J/yDesM0S7B7XLXjKGzXxMDVFg7uEn706niAtyYovKbyq1oT9YwDcly721/iUWoc8MVRg==", + "license": "BSD", + "dependencies": { + "underscore": "^1.13.1" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true, + "license": "MIT" + }, + "node_modules/electron-to-chromium": { + "version": "1.5.267", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.267.tgz", + "integrity": "sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw==", + "license": "ISC", + "peer": true + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true, + "license": "MIT" + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.18.4", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.4.tgz", + "integrity": "sha512-LgQMM4WXU3QI+SYgEc2liRgznaD5ojbmY3sb8LxyguVkIg5FxdpTkvk72te2R38/TGKxH634oLxXRGY6d7AP+Q==", + "license": "MIT", + "peer": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/epubjs": { + "version": "0.3.93", + "resolved": "https://registry.npmjs.org/epubjs/-/epubjs-0.3.93.tgz", + "integrity": "sha512-c06pNSdBxcXv3dZSbXAVLE1/pmleRhOT6mXNZo6INKmvuKpYB65MwU/lO7830czCtjIiK9i+KR+3S+p0wtljrw==", + "license": "BSD-2-Clause", + "dependencies": { + "@types/localforage": "0.0.34", + "@xmldom/xmldom": "^0.7.5", + "core-js": "^3.18.3", + "event-emitter": "^0.3.5", + "jszip": "^3.7.1", + "localforage": "^1.10.0", + "lodash": "^4.17.21", + "marks-pane": "^1.0.9", + "path-webpack": "0.0.3" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", + "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", + "dev": true, + "license": "MIT" + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es5-ext": { + "version": "0.10.64", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.64.tgz", + "integrity": "sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==", + "hasInstallScript": true, + "license": "ISC", + "dependencies": { + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.3", + "esniff": "^2.0.1", + "next-tick": "^1.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", + "license": "MIT", + "dependencies": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/es6-symbol": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.4.tgz", + "integrity": "sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==", + "license": "ISC", + "dependencies": { + "d": "^1.0.2", + "ext": "^1.7.0" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/esbuild": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz", + "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.12", + "@esbuild/android-arm": "0.25.12", + "@esbuild/android-arm64": "0.25.12", + "@esbuild/android-x64": "0.25.12", + "@esbuild/darwin-arm64": "0.25.12", + "@esbuild/darwin-x64": "0.25.12", + "@esbuild/freebsd-arm64": "0.25.12", + "@esbuild/freebsd-x64": "0.25.12", + "@esbuild/linux-arm": "0.25.12", + "@esbuild/linux-arm64": "0.25.12", + "@esbuild/linux-ia32": "0.25.12", + "@esbuild/linux-loong64": "0.25.12", + "@esbuild/linux-mips64el": "0.25.12", + "@esbuild/linux-ppc64": "0.25.12", + "@esbuild/linux-riscv64": "0.25.12", + "@esbuild/linux-s390x": "0.25.12", + "@esbuild/linux-x64": "0.25.12", + "@esbuild/netbsd-arm64": "0.25.12", + "@esbuild/netbsd-x64": "0.25.12", + "@esbuild/openbsd-arm64": "0.25.12", + "@esbuild/openbsd-x64": "0.25.12", + "@esbuild/openharmony-arm64": "0.25.12", + "@esbuild/sunos-x64": "0.25.12", + "@esbuild/win32-arm64": "0.25.12", + "@esbuild/win32-ia32": "0.25.12", + "@esbuild/win32-x64": "0.25.12" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/eslint": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", + "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", + "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.1", + "@humanwhocodes/config-array": "^0.13.0", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-compat-utils": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.6.5.tgz", + "integrity": "sha512-vAUHYzue4YAa2hNACjB8HvUQj5yehAZgiClyFVVom9cP8z5NSFq3PwB/TtJslN2zAMgRX6FCFCjYBbQh71g5RQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.4" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, + "node_modules/eslint-config-prettier": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.2.tgz", + "integrity": "sha512-iI1f+D2ViGn+uvv5HuHVUamg8ll4tN+JRHGc6IJi4TP9Kl976C57fzPXgseXNs8v0iA8aSJpHsTWjDb9QJamGQ==", + "dev": true, + "license": "MIT", + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-vue": { + "version": "9.33.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.33.0.tgz", + "integrity": "sha512-174lJKuNsuDIlLpjeXc5E2Tss8P44uIimAfGD0b90k0NoirJqpG7stLuU9Vp/9ioTOrQdWVREc4mRd1BD+CvGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "globals": "^13.24.0", + "natural-compare": "^1.4.0", + "nth-check": "^2.1.1", + "postcss-selector-parser": "^6.0.15", + "semver": "^7.6.3", + "vue-eslint-parser": "^9.4.3", + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0" + } + }, + "node_modules/eslint-plugin-vue/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/esniff": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/esniff/-/esniff-2.0.1.tgz", + "integrity": "sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==", + "license": "ISC", + "dependencies": { + "d": "^1.0.1", + "es5-ext": "^0.10.62", + "event-emitter": "^0.3.5", + "type": "^2.7.2" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/espree": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", + "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.15.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "license": "MIT" + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", + "license": "MIT", + "dependencies": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/expect-type": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.3.0.tgz", + "integrity": "sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/ext": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", + "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", + "license": "ISC", + "dependencies": { + "type": "^2.7.2" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", + "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause", + "peer": true + }, + "node_modules/fastq": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", + "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/file-loader": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", + "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", + "license": "MIT", + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", + "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "dev": true, + "license": "ISC" + }, + "node_modules/follow-redirects": { + "version": "1.15.11", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz", + "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/foreground-child": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", + "dev": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.6", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/form-data": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz", + "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fs-extra": { + "version": "11.3.2", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.2.tgz", + "integrity": "sha512-Xr9F6z6up6Ws+NjzMCZc6WXg2YFRlrLP9NQDO3VQrWrfiojdhS56TzueT88ze0uBdCTwEIhQ3ptnmKeWGFAe0A==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-css-data": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/get-css-data/-/get-css-data-2.1.1.tgz", + "integrity": "sha512-JpMa/f5P4mDXKg6l5/2cHL5xNY77Jap7tHyduMa6BF0E2a7bQ6Tvaz2BIMjeVYZYLcmOZ5w2Ro0yVJEI41tMbw==", + "license": "MIT" + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/glob": { + "version": "9.3.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-9.3.5.tgz", + "integrity": "sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==", + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "minimatch": "^8.0.2", + "minipass": "^4.2.4", + "path-scurry": "^1.6.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "license": "BSD-2-Clause", + "peer": true + }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-8.0.4.tgz", + "integrity": "sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/globals": { + "version": "15.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz", + "integrity": "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby/node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/good-listener": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz", + "integrity": "sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw==", + "license": "MIT", + "dependencies": { + "delegate": "^3.1.2" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "license": "ISC" + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true, + "license": "MIT" + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "license": "MIT", + "bin": { + "he": "bin/he" + } + }, + "node_modules/highlight.js": { + "version": "11.11.1", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.11.1.tgz", + "integrity": "sha512-Xwwo44whKBVCYoliBQwaPvtd/2tYFkRQtXDWj1nackaV2JPXx3L0+Jvd8/qCJ2p+ML0/XVkJ2q+Mr+UVdpJK5w==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/html-encoding-sniffer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz", + "integrity": "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "whatwg-encoding": "^3.1.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ignore": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-6.0.2.tgz", + "integrity": "sha512-InwqeHHN2XpumIkMvpl/DCJVrAHgCsG5+cn1XlnLWGwtZBm8QJfSusItfrwx81CTp5agNZqpKU2J/ccC5nGT4A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==", + "license": "MIT" + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-language-code": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-language-code/-/is-language-code-3.1.0.tgz", + "integrity": "sha512-zJdQ3QTeLye+iphMeK3wks+vXSRFKh68/Pnlw7aOfApFSEIOhYa8P9vwwa6QrImNNBMJTiL1PpYF0f4BxDuEgA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.14.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "license": "MIT", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsdom": { + "version": "25.0.1", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-25.0.1.tgz", + "integrity": "sha512-8i7LzZj7BF8uplX+ZyOlIz86V6TAsSs+np6m1kpW9u0JWi4z/1t+FzcK1aek+ybTnAC4KhBL4uXCNT0wcUIeCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssstyle": "^4.1.0", + "data-urls": "^5.0.0", + "decimal.js": "^10.4.3", + "form-data": "^4.0.0", + "html-encoding-sniffer": "^4.0.0", + "http-proxy-agent": "^7.0.2", + "https-proxy-agent": "^7.0.5", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.12", + "parse5": "^7.1.2", + "rrweb-cssom": "^0.7.1", + "saxes": "^6.0.0", + "symbol-tree": "^3.2.4", + "tough-cookie": "^5.0.0", + "w3c-xmlserializer": "^5.0.0", + "webidl-conversions": "^7.0.0", + "whatwg-encoding": "^3.1.1", + "whatwg-mimetype": "^4.0.0", + "whatwg-url": "^14.0.0", + "ws": "^8.18.0", + "xml-name-validator": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "canvas": "^2.11.2" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jsdom/node_modules/xml-name-validator": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz", + "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "license": "MIT", + "peer": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonc-eslint-parser": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/jsonc-eslint-parser/-/jsonc-eslint-parser-2.4.2.tgz", + "integrity": "sha512-1e4qoRgnn448pRuMvKGsFFymUCquZV0mpGgOyIKNgD3JVDTsVJyRBGH/Fm0tBb8WsWGgmB1mDe6/yJMQM37DUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.5.0", + "eslint-visitor-keys": "^3.0.0", + "espree": "^9.0.0", + "semver": "^7.3.5" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + } + }, + "node_modules/jsonc-eslint-parser/node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/jsonfile": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", + "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jszip": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", + "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", + "license": "(MIT OR GPL-3.0-or-later)", + "dependencies": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "setimmediate": "^1.0.5" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "license": "MIT", + "dependencies": { + "immediate": "~3.0.5" + } + }, + "node_modules/loader-runner": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.1.tgz", + "integrity": "sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6.11.5" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "license": "MIT", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/loadjs": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loadjs/-/loadjs-4.3.0.tgz", + "integrity": "sha512-vNX4ZZLJBeDEOBvdr2v/F+0aN5oMuPu7JTqrMwp+DtgK+AryOlpy6Xtm2/HpNr+azEa828oQjOtWsB6iDtSfSQ==", + "license": "MIT" + }, + "node_modules/localforage": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/localforage/-/localforage-1.10.0.tgz", + "integrity": "sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg==", + "license": "Apache-2.0", + "dependencies": { + "lie": "3.1.1" + } + }, + "node_modules/localforage/node_modules/lie": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz", + "integrity": "sha512-RiNhHysUjhrDQntfYSfY4MU24coXXdEOgw9WGcKHNeEwffDYbF//u87M1EWaMGzuFoSbqW0C9C6lEEhDOAswfw==", + "license": "MIT", + "dependencies": { + "immediate": "~3.0.5" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "license": "MIT" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/loglevel": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.9.2.tgz", + "integrity": "sha512-HgMmCqIJSAKqo68l0rS2AanEWfkxaZ5wNiEFb5ggm08lDs9Xl2KxBlX3PTcaD2chBM1gXAYf491/M2Rv8Jwayg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6.0" + }, + "funding": { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/loglevel" + } + }, + "node_modules/lop": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/lop/-/lop-0.4.2.tgz", + "integrity": "sha512-RefILVDQ4DKoRZsJ4Pj22TxE3omDO47yFpkIBoDKzkqPRISs5U1cnAdg/5583YPkWPaLIYHOKRMQSvjFsO26cw==", + "license": "BSD-2-Clause", + "dependencies": { + "duck": "^0.1.12", + "option": "~0.2.1", + "underscore": "^1.13.1" + } + }, + "node_modules/loupe": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.2.1.tgz", + "integrity": "sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "license": "ISC" + }, + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/mammoth": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/mammoth/-/mammoth-1.11.0.tgz", + "integrity": "sha512-BcEqqY/BOwIcI1iR5tqyVlqc3KIaMRa4egSoK83YAVrBf6+yqdAAbtUcFDCWX8Zef8/fgNZ6rl4VUv+vVX8ddQ==", + "license": "BSD-2-Clause", + "dependencies": { + "@xmldom/xmldom": "^0.8.6", + "argparse": "~1.0.3", + "base64-js": "^1.5.1", + "bluebird": "~3.4.0", + "dingbat-to-unicode": "^1.0.1", + "jszip": "^3.7.1", + "lop": "^0.4.2", + "path-is-absolute": "^1.0.0", + "underscore": "^1.13.1", + "xmlbuilder": "^10.0.0" + }, + "bin": { + "mammoth": "bin/mammoth" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/mammoth/node_modules/@xmldom/xmldom": { + "version": "0.8.11", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.11.tgz", + "integrity": "sha512-cQzWCtO6C8TQiYl1ruKNn2U6Ao4o4WBBcbL61yJl84x+j5sOWWFU9X7DpND8XZG3daDppSsigMdfAIl2upQBRw==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/mammoth/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/marked": { + "version": "15.0.12", + "resolved": "https://registry.npmjs.org/marked/-/marked-15.0.12.tgz", + "integrity": "sha512-8dD6FusOQSrpv9Z1rdNMdlSgQOIP880DHqnohobOmYLElGEqAL/JvxvuxZO16r4HtjTlfPRDC1hbvxC9dPN2nA==", + "license": "MIT", + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/marks-pane": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/marks-pane/-/marks-pane-1.0.9.tgz", + "integrity": "sha512-Ahs4oeG90tbdPWwAJkAAoHg2lRR8lAs9mZXETNPO9hYg3AkjUJBKi1NQ4aaIQZVGrig7c/3NUV1jANl8rFTeMg==", + "license": "MIT" + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "license": "MIT", + "peer": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/micromatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minipass": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.8.tgz", + "integrity": "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==", + "license": "ISC", + "engines": { + "node": ">=8" + } + }, + "node_modules/mlly": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.8.0.tgz", + "integrity": "sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.15.0", + "pathe": "^2.0.3", + "pkg-types": "^1.3.1", + "ufo": "^1.6.1" + } + }, + "node_modules/mlly/node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "dev": true, + "license": "MIT" + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/muggle-string": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz", + "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "license": "MIT", + "peer": true + }, + "node_modules/next-tick": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", + "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", + "license": "ISC" + }, + "node_modules/node-releases": { + "version": "2.0.27", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz", + "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==", + "license": "MIT", + "peer": true + }, + "node_modules/normalize.css": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/normalize.css/-/normalize.css-8.0.1.tgz", + "integrity": "sha512-qizSNPO93t1YUuUhP22btGOo3chcvDFqFaj2TRybP0DMxkHOCTYwp3n34fel4a31ORXy4m1Xq0Gyqpb5m33qIg==", + "license": "MIT" + }, + "node_modules/npm-run-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-6.0.0.tgz", + "integrity": "sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^4.0.0", + "unicorn-magic": "^0.3.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/nwsapi": { + "version": "2.2.23", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.23.tgz", + "integrity": "sha512-7wfH4sLbt4M0gCDzGE6vzQBo0bfTKjU7Sfpqy/7gs1qBfYz2vEJH6vXcBKpO3+6Yu1telwd0t9HpyOoLEQQbIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/option": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/option/-/option-0.2.4.tgz", + "integrity": "sha512-pkEqbDyl8ou5cpq+VsnQbe/WlEy5qS7xPzMS1U55OCG9KPvwFD46zDbxQIj3egJSFc3D+XhYOPUzz49zQAVy7A==", + "license": "BSD-2-Clause" + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true, + "license": "BlueOak-1.0.0" + }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "license": "(MIT AND Zlib)" + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse5": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz", + "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "entities": "^6.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5/node_modules/entities": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-webpack": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/path-webpack/-/path-webpack-0.0.3.tgz", + "integrity": "sha512-AmeDxedoo5svf7aB3FYqSAKqMxys014lVKBzy1o/5vv9CtU7U4wgGWL1dA2o6MOzcD53ScN4Jmiq6VbtLz1vIQ==", + "license": "MIT" + }, + "node_modules/pathe": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/pathval": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.1.tgz", + "integrity": "sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.16" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pkg-types": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz", + "integrity": "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "confbox": "^0.1.8", + "mlly": "^1.7.4", + "pathe": "^2.0.1" + } + }, + "node_modules/pkg-types/node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "dev": true, + "license": "MIT" + }, + "node_modules/playwright": { + "version": "1.57.0", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.57.0.tgz", + "integrity": "sha512-ilYQj1s8sr2ppEJ2YVadYBN0Mb3mdo9J0wQ+UuDhzYqURwSoW4n1Xs5vs7ORwgDGmyEh33tRMeS8KhdkMoLXQw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "playwright-core": "1.57.0" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "fsevents": "2.3.2" + } + }, + "node_modules/playwright-core": { + "version": "1.57.0", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.57.0.tgz", + "integrity": "sha512-agTcKlMw/mjBWOnD6kFZttAAGHgi/Nw0CZ2o6JqWSbMlI219lAFLZZCyqByTsvVAJq5XA5H8cA6PrvBRpBWEuQ==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "playwright-core": "cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/plyr": { + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/plyr/-/plyr-3.8.3.tgz", + "integrity": "sha512-0+iI5uw0WRvtKBpgPCkmQQv7ucHVQKTEo6UFJjgJ8cy/JZhy0dQqshHQVitHXV6l2O3MzhgnuvQ95VSkWcWeSw==", + "license": "MIT", + "dependencies": { + "core-js": "^3.45.1", + "custom-event-polyfill": "^1.0.7", + "loadjs": "^4.3.0", + "rangetouch": "^2.0.1", + "url-polyfill": "^1.1.13" + } + }, + "node_modules/postcss": { + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "license": "MIT" + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "license": "MIT" + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/qrcode.vue": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/qrcode.vue/-/qrcode.vue-3.6.0.tgz", + "integrity": "sha512-vQcl2fyHYHMjDO1GguCldJxepq2izQjBkDEEu9NENgfVKP6mv/e2SU62WbqYHGwTgWXLhxZ1NCD1dAZKHQq1fg==", + "license": "MIT", + "peerDependencies": { + "vue": "^3.0.0" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/rangetouch": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/rangetouch/-/rangetouch-2.0.1.tgz", + "integrity": "sha512-sln+pNSc8NGaHoLzwNBssFSf/rSYkqeBXzX1AtJlkJiUaVSJSbRAWJk+4omsXkN+EJalzkZhWQ3th1m0FpR5xA==", + "license": "MIT" + }, + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readdirp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.53.5.tgz", + "integrity": "sha512-iTNAbFSlRpcHeeWu73ywU/8KuU/LZmNCSxp6fjQkJBD3ivUb8tpDrXhIxEzA05HlYMEwmtaUnb3RP+YNv162OQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.53.5", + "@rollup/rollup-android-arm64": "4.53.5", + "@rollup/rollup-darwin-arm64": "4.53.5", + "@rollup/rollup-darwin-x64": "4.53.5", + "@rollup/rollup-freebsd-arm64": "4.53.5", + "@rollup/rollup-freebsd-x64": "4.53.5", + "@rollup/rollup-linux-arm-gnueabihf": "4.53.5", + "@rollup/rollup-linux-arm-musleabihf": "4.53.5", + "@rollup/rollup-linux-arm64-gnu": "4.53.5", + "@rollup/rollup-linux-arm64-musl": "4.53.5", + "@rollup/rollup-linux-loong64-gnu": "4.53.5", + "@rollup/rollup-linux-ppc64-gnu": "4.53.5", + "@rollup/rollup-linux-riscv64-gnu": "4.53.5", + "@rollup/rollup-linux-riscv64-musl": "4.53.5", + "@rollup/rollup-linux-s390x-gnu": "4.53.5", + "@rollup/rollup-linux-x64-gnu": "4.53.5", + "@rollup/rollup-linux-x64-musl": "4.53.5", + "@rollup/rollup-openharmony-arm64": "4.53.5", + "@rollup/rollup-win32-arm64-msvc": "4.53.5", + "@rollup/rollup-win32-ia32-msvc": "4.53.5", + "@rollup/rollup-win32-x64-gnu": "4.53.5", + "@rollup/rollup-win32-x64-msvc": "4.53.5", + "fsevents": "~2.3.2" + } + }, + "node_modules/rrweb-cssom": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.7.1.tgz", + "integrity": "sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg==", + "dev": true, + "license": "MIT" + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true, + "license": "MIT" + }, + "node_modules/saxes": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", + "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", + "dev": true, + "license": "ISC", + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=v12.22.7" + } + }, + "node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/select": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz", + "integrity": "sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA==", + "license": "MIT" + }, + "node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "license": "MIT" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/siginfo": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", + "dev": true, + "license": "ISC" + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "license": "MIT", + "peer": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "license": "BSD-3-Clause" + }, + "node_modules/srt-support-for-html5-videos": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/srt-support-for-html5-videos/-/srt-support-for-html5-videos-2.6.11.tgz", + "integrity": "sha512-rHsP8iaE7vwhPHpaJPj178YZn6ak1jZvjtEA+XrRm9hhOfC3KZVK/TdNyZIi+fBFtSC+EkscWkyNFKiMuLE4IQ==" + }, + "node_modules/stackback": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", + "dev": true, + "license": "MIT" + }, + "node_modules/std-env": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.10.0.tgz", + "integrity": "sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==", + "dev": true, + "license": "MIT" + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", + "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-literal": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-3.1.0.tgz", + "integrity": "sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg==", + "dev": true, + "license": "MIT", + "dependencies": { + "js-tokens": "^9.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/strip-literal/node_modules/js-tokens": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz", + "integrity": "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "dev": true, + "license": "MIT" + }, + "node_modules/synckit": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.3.tgz", + "integrity": "sha512-JJoOEKTfL1urb1mDoEblhD9NhEbWmq9jHEMEnxoC4ujUaZ4itA8vKgwkFAyNClgxplLi9tsUKX+EduK0p/l7sg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@pkgr/core": "^0.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, + "node_modules/tapable": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.0.tgz", + "integrity": "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/tar-mini": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/tar-mini/-/tar-mini-0.2.0.tgz", + "integrity": "sha512-+qfUHz700DWnRutdUsxRRVZ38G1Qr27OetwaMYTdg8hcPxf46U0S1Zf76dQMWRBmusOt2ZCK5kbIaiLkoGO7WQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/terser": { + "version": "5.44.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.44.1.tgz", + "integrity": "sha512-t/R3R/n0MSwnnazuPpPNVO60LX0SKL45pyl9YlvxIdkH0Of7D5qM2EVe+yASRIlY5pZ73nclYJfNANGWPwFDZw==", + "license": "BSD-2-Clause", + "peer": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.15.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.16", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.16.tgz", + "integrity": "sha512-h9oBFCWrq78NyWWVcSwZarJkZ01c2AyGrzs1crmHZO3QUg9D61Wu4NPjBy69n7JqylFF5y+CsUZYmYEIZ3mR+Q==", + "license": "MIT", + "peer": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.25", + "jest-worker": "^27.4.5", + "schema-utils": "^4.3.0", + "serialize-javascript": "^6.0.2", + "terser": "^5.31.1" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser-webpack-plugin/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "license": "MIT", + "peer": true, + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/terser-webpack-plugin/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "license": "MIT", + "peer": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/terser-webpack-plugin/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "license": "MIT", + "peer": true + }, + "node_modules/terser-webpack-plugin/node_modules/schema-utils": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.3.tgz", + "integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true, + "license": "MIT" + }, + "node_modules/tiny-emitter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz", + "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==", + "license": "MIT" + }, + "node_modules/tiny-invariant": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", + "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinybench": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", + "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinyexec": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", + "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinyglobby": { + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinypool": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.1.1.tgz", + "integrity": "sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.0.0 || >=20.0.0" + } + }, + "node_modules/tinyrainbow": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-2.0.0.tgz", + "integrity": "sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tinyspy": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-4.0.4.tgz", + "integrity": "sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tldts": { + "version": "6.1.86", + "resolved": "https://registry.npmjs.org/tldts/-/tldts-6.1.86.tgz", + "integrity": "sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "tldts-core": "^6.1.86" + }, + "bin": { + "tldts": "bin/cli.js" + } + }, + "node_modules/tldts-core": { + "version": "6.1.86", + "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-6.1.86.tgz", + "integrity": "sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==", + "dev": true, + "license": "MIT" + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tough-cookie": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-5.1.2.tgz", + "integrity": "sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "tldts": "^6.1.32" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/tr46": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.1.1.tgz", + "integrity": "sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==", + "dev": true, + "license": "MIT", + "dependencies": { + "punycode": "^2.3.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/ts-api-utils": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.3.tgz", + "integrity": "sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD" + }, + "node_modules/type": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/type/-/type-2.7.3.tgz", + "integrity": "sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ==", + "license": "ISC" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typescript": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "devOptional": true, + "license": "Apache-2.0", + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/ufo": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.1.tgz", + "integrity": "sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==", + "dev": true, + "license": "MIT" + }, + "node_modules/underscore": { + "version": "1.13.7", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.7.tgz", + "integrity": "sha512-GMXzWtsc57XAtguZgaQViUOzs0KTkk8ojr3/xAxXLITqf/3EMwxC0inyETfDFjH/Krbhuep0HNbbjI9i/q3F3g==", + "license": "MIT" + }, + "node_modules/undici-types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", + "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", + "license": "MIT" + }, + "node_modules/unicorn-magic": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.3.0.tgz", + "integrity": "sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unplugin": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-1.16.1.tgz", + "integrity": "sha512-4/u/j4FrCKdi17jaxuJA0jClGxB1AvU2hw/IuayPc4ay1XGaJs/rbb4v5WKwAjNifjmXK9PIFyuPiaK8azyR9w==", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.14.0", + "webpack-virtual-modules": "^0.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", + "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url-polyfill": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/url-polyfill/-/url-polyfill-1.1.14.tgz", + "integrity": "sha512-p4f3TTAG6ADVF3mwbXw7hGw+QJyw5CnNGvYh5fCuQQZIiuKUswqcznyV3pGDP9j0TSmC4UvRKm8kl1QsX1diiQ==", + "license": "MIT" + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/vite": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.4.1.tgz", + "integrity": "sha512-+Oxm7q9hDoLMyJOYfUYBuHQo+dkAloi33apOPP56pzj+vsdJDzr+j1NISE5pyaAuKL4A3UD34qd0lx5+kfKp2g==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.25.0", + "fdir": "^6.4.4", + "picomatch": "^4.0.2", + "postcss": "^8.5.3", + "rollup": "^4.34.9", + "tinyglobby": "^0.2.13" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "jiti": ">=1.21.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vite-node": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-3.2.4.tgz", + "integrity": "sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cac": "^6.7.14", + "debug": "^4.4.1", + "es-module-lexer": "^1.7.0", + "pathe": "^2.0.3", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0" + }, + "bin": { + "vite-node": "vite-node.mjs" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/vite-node/node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "dev": true, + "license": "MIT" + }, + "node_modules/vite-plugin-checker": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/vite-plugin-checker/-/vite-plugin-checker-0.10.3.tgz", + "integrity": "sha512-f4sekUcDPF+T+GdbbE8idb1i2YplBAoH+SfRS0e/WRBWb2rYb1Jf5Pimll0Rj+3JgIYWwG2K5LtBPCXxoibkLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "chokidar": "^4.0.3", + "npm-run-path": "^6.0.0", + "picocolors": "^1.1.1", + "picomatch": "^4.0.3", + "strip-ansi": "^7.1.0", + "tiny-invariant": "^1.3.3", + "tinyglobby": "^0.2.14", + "vscode-uri": "^3.1.0" + }, + "engines": { + "node": ">=14.16" + }, + "peerDependencies": { + "@biomejs/biome": ">=1.7", + "eslint": ">=7", + "meow": "^13.2.0", + "optionator": "^0.9.4", + "stylelint": ">=16", + "typescript": "*", + "vite": ">=2.0.0", + "vls": "*", + "vti": "*", + "vue-tsc": "~2.2.10 || ^3.0.0" + }, + "peerDependenciesMeta": { + "@biomejs/biome": { + "optional": true + }, + "eslint": { + "optional": true + }, + "meow": { + "optional": true + }, + "optionator": { + "optional": true + }, + "stylelint": { + "optional": true + }, + "typescript": { + "optional": true + }, + "vls": { + "optional": true + }, + "vti": { + "optional": true + }, + "vue-tsc": { + "optional": true + } + } + }, + "node_modules/vite-plugin-checker/node_modules/ansi-regex": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/vite-plugin-checker/node_modules/strip-ansi": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", + "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/vite-plugin-compression2": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/vite-plugin-compression2/-/vite-plugin-compression2-1.4.0.tgz", + "integrity": "sha512-UEk0Bq1IkkwqbDLoLOHZ8WTmN1QbvR28fvNl2liB88/6SG1oLrTVkxfjqW3pdla/rKQ6QXn+pJpv3GBbl+k56g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.1.0", + "tar-mini": "^0.2.0" + }, + "peerDependencies": { + "vite": "^2.0.0||^3.0.0||^4.0.0||^5.0.0 ||^6.0.0" + } + }, + "node_modules/vite/node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/vitest": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-3.2.4.tgz", + "integrity": "sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/chai": "^5.2.2", + "@vitest/expect": "3.2.4", + "@vitest/mocker": "3.2.4", + "@vitest/pretty-format": "^3.2.4", + "@vitest/runner": "3.2.4", + "@vitest/snapshot": "3.2.4", + "@vitest/spy": "3.2.4", + "@vitest/utils": "3.2.4", + "chai": "^5.2.0", + "debug": "^4.4.1", + "expect-type": "^1.2.1", + "magic-string": "^0.30.17", + "pathe": "^2.0.3", + "picomatch": "^4.0.2", + "std-env": "^3.9.0", + "tinybench": "^2.9.0", + "tinyexec": "^0.3.2", + "tinyglobby": "^0.2.14", + "tinypool": "^1.1.1", + "tinyrainbow": "^2.0.0", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0", + "vite-node": "3.2.4", + "why-is-node-running": "^2.3.0" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@types/debug": "^4.1.12", + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "@vitest/browser": "3.2.4", + "@vitest/ui": "3.2.4", + "happy-dom": "*", + "jsdom": "*" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@types/debug": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@vitest/browser": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + } + } + }, + "node_modules/vitest/node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "dev": true, + "license": "MIT" + }, + "node_modules/vscode-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.1.0.tgz", + "integrity": "sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/vue": { + "version": "3.5.25", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.25.tgz", + "integrity": "sha512-YLVdgv2K13WJ6n+kD5owehKtEXwdwXuj2TTyJMsO7pSeKw2bfRNZGjhB7YzrpbMYj5b5QsUebHpOqR3R3ziy/g==", + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.25", + "@vue/compiler-sfc": "3.5.25", + "@vue/runtime-dom": "3.5.25", + "@vue/server-renderer": "3.5.25", + "@vue/shared": "3.5.25" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/vue-eslint-parser": { + "version": "9.4.3", + "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.4.3.tgz", + "integrity": "sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.3.4", + "eslint-scope": "^7.1.1", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.1", + "esquery": "^1.4.0", + "lodash": "^4.17.21", + "semver": "^7.3.6" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, + "node_modules/vue-eslint-parser/node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/vue-i18n": { + "version": "9.14.5", + "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-9.14.5.tgz", + "integrity": "sha512-0jQ9Em3ymWngyiIkj0+c/k7WgaPO+TNzjKSNq9BvBQaKJECqn9cd9fL4tkDhB5G1QBskGl9YxxbDAhgbFtpe2g==", + "license": "MIT", + "dependencies": { + "@intlify/core-base": "9.14.5", + "@intlify/shared": "9.14.5", + "@vue/devtools-api": "^6.5.0" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" + }, + "peerDependencies": { + "vue": "^3.0.0" + } + }, + "node_modules/vue-lazyload": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/vue-lazyload/-/vue-lazyload-3.0.0.tgz", + "integrity": "sha512-h2keL/Rj550dLgesgOtXJS9qOiSMmuJNeVlfNAYV1/IYwOQYaWk5mFJlwRxmZDK9YC5gECcFLYYj7z1lKSf9ug==", + "license": "MIT" + }, + "node_modules/vue-router": { + "version": "4.6.4", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.6.4.tgz", + "integrity": "sha512-Hz9q5sa33Yhduglwz6g9skT8OBPii+4bFn88w6J+J4MfEo4KRRpmiNG/hHHkdbRFlLBOqxN8y8gf2Fb0MTUgVg==", + "license": "MIT", + "dependencies": { + "@vue/devtools-api": "^6.6.4" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "vue": "^3.5.0" + } + }, + "node_modules/vue-tsc": { + "version": "2.2.12", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-2.2.12.tgz", + "integrity": "sha512-P7OP77b2h/Pmk+lZdJ0YWs+5tJ6J2+uOQPo7tlBnY44QqQSPYvS0qVT4wqDJgwrZaLe47etJLLQRFia71GYITw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/typescript": "2.4.15", + "@vue/language-core": "2.2.12" + }, + "bin": { + "vue-tsc": "bin/vue-tsc.js" + }, + "peerDependencies": { + "typescript": ">=5.0.0" + } + }, + "node_modules/w3c-xmlserializer": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz", + "integrity": "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "xml-name-validator": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/w3c-xmlserializer/node_modules/xml-name-validator": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz", + "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/watchpack": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.4.tgz", + "integrity": "sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA==", + "license": "MIT", + "peer": true, + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + } + }, + "node_modules/webpack": { + "version": "5.104.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.104.0.tgz", + "integrity": "sha512-5DeICTX8BVgNp6afSPYXAFjskIgWGlygQH58bcozPOXgo2r/6xx39Y1+cULZ3gTxUYQP88jmwLj2anu4Xaq84g==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/eslint-scope": "^3.7.7", + "@types/estree": "^1.0.8", + "@types/json-schema": "^7.0.15", + "@webassemblyjs/ast": "^1.14.1", + "@webassemblyjs/wasm-edit": "^1.14.1", + "@webassemblyjs/wasm-parser": "^1.14.1", + "acorn": "^8.15.0", + "acorn-import-phases": "^1.0.3", + "browserslist": "^4.28.1", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.17.4", + "es-module-lexer": "^2.0.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.11", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.3.1", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^4.3.3", + "tapable": "^2.3.0", + "terser-webpack-plugin": "^5.3.16", + "watchpack": "^2.4.4", + "webpack-sources": "^3.3.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-sources": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.3.3.tgz", + "integrity": "sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack-virtual-modules": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz", + "integrity": "sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/webpack/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "license": "MIT", + "peer": true, + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/webpack/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "license": "MIT", + "peer": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/webpack/node_modules/es-module-lexer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.0.0.tgz", + "integrity": "sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw==", + "license": "MIT", + "peer": true + }, + "node_modules/webpack/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "license": "BSD-2-Clause", + "peer": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/webpack/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "license": "BSD-2-Clause", + "peer": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/webpack/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "license": "MIT", + "peer": true + }, + "node_modules/webpack/node_modules/schema-utils": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.3.tgz", + "integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/whatwg-encoding": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz", + "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "iconv-lite": "0.6.3" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/whatwg-mimetype": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", + "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/whatwg-url": { + "version": "14.2.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.2.0.tgz", + "integrity": "sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==", + "dev": true, + "license": "MIT", + "dependencies": { + "tr46": "^5.1.0", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/why-is-node-running": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", + "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==", + "dev": true, + "license": "MIT", + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", + "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/ws": { + "version": "8.18.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz", + "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xml-name-validator": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", + "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12" + } + }, + "node_modules/xmlbuilder": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-10.1.1.tgz", + "integrity": "sha512-OyzrcFLL/nb6fMGHbiRDuPup9ljBycsdCypwuyg5AAHvyWzGfChJpCXMG88AGTIMFhGZ9RccFN1e6lhg3hkwKg==", + "license": "MIT", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "dev": true, + "license": "MIT" + }, + "node_modules/yaml": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.2.tgz", + "integrity": "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==", + "dev": true, + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14.6" + }, + "funding": { + "url": "https://github.com/sponsors/eemeli" + } + }, + "node_modules/yaml-eslint-parser": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/yaml-eslint-parser/-/yaml-eslint-parser-1.3.2.tgz", + "integrity": "sha512-odxVsHAkZYYglR30aPYRY4nUGJnoJ2y1ww2HDvZALo0BDETv9kWbi16J52eHs+PWRNmF4ub6nZqfVOeesOvntg==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.0.0", + "yaml": "^2.0.0" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} From e14a8dc1e62f022fe8c7e5f2101ddaef5eaadb85 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Tue, 16 Dec 2025 16:27:31 -0500 Subject: [PATCH 84/89] ci: check backports of v3.23 --- .forgejo/workflows/check-backports.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.forgejo/workflows/check-backports.yml b/.forgejo/workflows/check-backports.yml index f1d016d..99bb71d 100644 --- a/.forgejo/workflows/check-backports.yml +++ b/.forgejo/workflows/check-backports.yml @@ -11,7 +11,7 @@ jobs: container: image: alpine:latest env: - downstream: https://ayakael.net/api/packages/forge/alpine/v3.22/backports + downstream: https://ayakael.net/api/packages/forge/alpine/v3.23/backports ISSUE_TOKEN: ${{ secrets.issue_token }} LABEL_NUMBER: 1 ALL_PACKAGES: true From dfd170283552b8e045522a00cd0d67db92097f39 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Tue, 16 Dec 2025 21:17:59 -0500 Subject: [PATCH 85/89] ci: skip dotnet10-stage0 for community --- .forgejo/workflows/check-community.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.forgejo/workflows/check-community.yml b/.forgejo/workflows/check-community.yml index 9c96c47..ee6d624 100644 --- a/.forgejo/workflows/check-community.yml +++ b/.forgejo/workflows/check-community.yml @@ -35,7 +35,7 @@ jobs: ISSUE_TOKEN: ${{ secrets.issue_token }} LABEL_NUMBER: 13 fix_only: all -git-annex - skip_package: dotnet9-stage0 dotnet8-stage0 py3-boto3 py3-botocore + skip_package: dotnet9-stage0 dotnet8-stage0 py3-boto3 py3-botocore dotnet10-stage0 steps: - name: Environment setup run: apk add grep coreutils gawk curl wget bash nodejs git jq sed From 206336bdd1bfcc95888d59ac235bb66d5c9f0924 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 22 Dec 2025 00:05:59 -0500 Subject: [PATCH 86/89] ci: track latest stable for pmos --- .forgejo/workflows/check-pmos.yml | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/.forgejo/workflows/check-pmos.yml b/.forgejo/workflows/check-pmos.yml index 119383b..4b83e93 100644 --- a/.forgejo/workflows/check-pmos.yml +++ b/.forgejo/workflows/check-pmos.yml @@ -26,3 +26,25 @@ jobs: run: ${{ github.workspace }}/.forgejo/bin/check_ver.sh - name: Create issues run: ${{ github.workspace }}/.forgejo/bin/create_issue.sh + check-pmos-edge: + name: Check pmos(v25.12) repo + runs-on: aarch64 + container: + image: alpine:latest + env: + downstream: http://mirror.postmarketos.org/postmarketos/v25.12 + ISSUE_TOKEN: ${{ secrets.issue_token }} + LABEL_NUMBER: 14 + fix_only: all + skip_package: device-clockworkpi-uconsole-radxa-cm5 device-pine64-pinenote u-boot-radxa-cm5 + steps: + - name: Environment setup + run: apk add grep coreutils gawk curl wget bash nodejs git jq sed + - name: Get scripts + uses: actions/checkout@v4 + with: + fetch-depth: 1 + - name: Check out-of-date packages + run: ${{ github.workspace }}/.forgejo/bin/check_ver.sh + - name: Create issues + run: ${{ github.workspace }}/.forgejo/bin/create_issue.sh From 797de7c2a9535f54ee3326029ef51f884a67a238 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 22 Dec 2025 00:06:56 -0500 Subject: [PATCH 87/89] ci: fix pmos check --- .forgejo/workflows/check-pmos.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.forgejo/workflows/check-pmos.yml b/.forgejo/workflows/check-pmos.yml index 4b83e93..750f608 100644 --- a/.forgejo/workflows/check-pmos.yml +++ b/.forgejo/workflows/check-pmos.yml @@ -26,7 +26,7 @@ jobs: run: ${{ github.workspace }}/.forgejo/bin/check_ver.sh - name: Create issues run: ${{ github.workspace }}/.forgejo/bin/create_issue.sh - check-pmos-edge: + check-pmos-latest: name: Check pmos(v25.12) repo runs-on: aarch64 container: From 6a81c77cf881cbc0df77ae9e4a423f7c33031821 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Sun, 21 Dec 2025 23:59:08 -0500 Subject: [PATCH 88/89] backports/openterface-qt: upgrade to 0.5.7 --- .../348_address-use-of-deleted-function.patch | 23 + ...ng-categories-and-remove-backslashes.patch | 586 ++++++++++++++++++ .../51-openterface-permissions.rules | 0 {user => backports}/openterface-qt/APKBUILD | 46 +- .../openterface-qt.post-install | 0 .../openterface-qt/openterfaceQT.desktop | 0 .../openterface-qt/use-system-libs.patch | 72 +++ 7 files changed, 720 insertions(+), 7 deletions(-) create mode 100644 backports/openterface-qt/348_address-use-of-deleted-function.patch create mode 100644 backports/openterface-qt/423_deduplicate-logging-categories-and-remove-backslashes.patch rename {user => backports}/openterface-qt/51-openterface-permissions.rules (100%) rename {user => backports}/openterface-qt/APKBUILD (50%) rename {user => backports}/openterface-qt/openterface-qt.post-install (100%) rename {user => backports}/openterface-qt/openterfaceQT.desktop (100%) create mode 100644 backports/openterface-qt/use-system-libs.patch diff --git a/backports/openterface-qt/348_address-use-of-deleted-function.patch b/backports/openterface-qt/348_address-use-of-deleted-function.patch new file mode 100644 index 0000000..2783740 --- /dev/null +++ b/backports/openterface-qt/348_address-use-of-deleted-function.patch @@ -0,0 +1,23 @@ +diff --git a/serial/SerialPortManager.cpp.orig b/serial/SerialPortManager.cpp +index 22565b5..d444eee 100644 +--- a/serial/SerialPortManager.cpp.orig ++++ b/serial/SerialPortManager.cpp +@@ -1945,8 +1945,9 @@ void SerialPortManager::attemptRecovery() + } + } else { + qCWarning(log_core_serial) << "Serial port recovery attempt failed"; +- if (eventCallback) { +- eventCallback->onStatusUpdate(QString("Recovery attempt %1 failed").arg(m_connectionRetryCount)); ++ if (eventCallback) { ++ int crc = m_connectionRetryCount; ++ eventCallback->onStatusUpdate(QString("Recovery attempt %1 failed").arg(crc)); + } + + // Try again if we haven't exceeded max attempts +@@ -2034,4 +2035,4 @@ void SerialPortManager::applyCommandBasedBaudrateChange(int baudRate, const QStr + } else { + qCWarning(log_core_serial) << logPrefix << "Failed to apply user selected baudrate:" << baudRate; + } +-} +\ No newline at end of file ++} diff --git a/backports/openterface-qt/423_deduplicate-logging-categories-and-remove-backslashes.patch b/backports/openterface-qt/423_deduplicate-logging-categories-and-remove-backslashes.patch new file mode 100644 index 0000000..5e762ff --- /dev/null +++ b/backports/openterface-qt/423_deduplicate-logging-categories-and-remove-backslashes.patch @@ -0,0 +1,586 @@ +From 4478cfb004d3db7797e99fd3bdb23bf880a9c85b Mon Sep 17 00:00:00 2001 +From: John Lane <1786613+johnlane@users.noreply.github.com> +Date: Wed, 3 Dec 2025 21:19:33 +0000 +Subject: [PATCH 1/2] Remove additional backslashes and add missing cpp and h + files + +--- + openterfaceQT.pro | 28 +++++++++++++++++++--------- + 1 file changed, 19 insertions(+), 9 deletions(-) + +diff --git a/openterfaceQT.pro b/openterfaceQT.pro +index 3460dbac..f0d878e8 100644 +--- a/openterfaceQT.pro ++++ b/openterfaceQT.pro +@@ -84,16 +84,26 @@ SOURCES += main.cpp \ + !win32 { + SOURCES += host/backend/ffmpegbackendhandler.cpp \ + host/backend/gstreamerbackendhandler.cpp \ +- host/backend/gstreamer/sinkselector.cpp \\ +- host/backend/gstreamer/queueconfigurator.cpp \\ +- host/backend/gstreamer/videooverlaymanager.cpp \\ +- host/backend/gstreamer/pipelinebuilder.cpp ++ host/backend/gstreamer/pipelinefactory.cpp \ ++ host/backend/gstreamer/externalgstrunner.cpp \ ++ host/backend/gstreamer/inprocessgstrunner.cpp \ ++ host/backend/gstreamer/sinkselector.cpp \ ++ host/backend/gstreamer/queueconfigurator.cpp \ ++ host/backend/gstreamer/videooverlaymanager.cpp \ ++ host/backend/gstreamer/pipelinebuilder.cpp \ ++ host/backend/gstreamer/recordingmanager.cpp \ ++ host/backend/gstreamer/gstreamerhelpers.cpp + HEADERS += host/backend/ffmpegbackendhandler.h \ + host/backend/gstreamerbackendhandler.h \ +- host/backend/gstreamer/sinkselector.h \\ +- host/backend/gstreamer/queueconfigurator.h \\ +- host/backend/gstreamer/videooverlaymanager.h \\ +- host/backend/gstreamer/pipelinebuilder.h ++ host/backend/gstreamer/pipelinefactory.h \ ++ host/backend/gstreamer/externalgstrunner.h \ ++ host/backend/gstreamer/inprocessgstrunner.h \ ++ host/backend/gstreamer/sinkselector.h \ ++ host/backend/gstreamer/queueconfigurator.h \ ++ host/backend/gstreamer/videooverlaymanager.h \ ++ host/backend/gstreamer/pipelinebuilder.h \ ++ host/backend/gstreamer/recordingmanager.h \ ++ host/backend/gstreamer/gstreamerhelpers.h + } + + +@@ -263,4 +273,4 @@ TRANSLATIONS += config/languages/openterface_en.ts \ + config/languages/openterface_se.ts \ + config/languages/openterface_de.ts \ + config/languages/openterface_zh.ts +- # Add more languages here +\ No newline at end of file ++ # Add more languages here + +From ccd8f51fe510684439edf0d5f8083e4dd1423836 Mon Sep 17 00:00:00 2001 +From: John Lane <1786613+johnlane@users.noreply.github.com> +Date: Wed, 3 Dec 2025 21:26:20 +0000 +Subject: [PATCH 2/2] De-duplicate logging categories + +--- + host/backend/gstreamer/gstreamerhelpers.cpp | 22 ++-- + host/backend/gstreamer/queueconfigurator.cpp | 8 +- + .../backend/gstreamer/videooverlaymanager.cpp | 118 +++++++++--------- + 3 files changed, 74 insertions(+), 74 deletions(-) + +diff --git a/host/backend/gstreamer/gstreamerhelpers.cpp b/host/backend/gstreamer/gstreamerhelpers.cpp +index 6fc1dd6e..4739da17 100644 +--- a/host/backend/gstreamer/gstreamerhelpers.cpp ++++ b/host/backend/gstreamer/gstreamerhelpers.cpp +@@ -4,7 +4,7 @@ + #include + #include + +-Q_LOGGING_CATEGORY(log_gstreamer_backend, "opf.backend.gstreamer") ++Q_LOGGING_CATEGORY(log_gstreamer_gstreamerhelpers, "opf.backend.gstreamerhelpers") + + using namespace Openterface::GStreamer::GstHelpers; + +@@ -16,7 +16,7 @@ bool Openterface::GStreamer::GstHelpers::setPipelineStateWithTimeout(void* eleme + { + if (!elementPtr) { + if (outError) *outError = QStringLiteral("Element pointer is null"); +- qCWarning(log_gstreamer_backend) << "setPipelineStateWithTimeout: element pointer is null"; ++ qCWarning(log_gstreamer_gstreamerhelpers) << "setPipelineStateWithTimeout: element pointer is null"; + return false; + } + +@@ -24,7 +24,7 @@ bool Openterface::GStreamer::GstHelpers::setPipelineStateWithTimeout(void* eleme + + GstStateChangeReturn ret = gst_element_set_state(element, static_cast(targetState)); + if (ret == GST_STATE_CHANGE_FAILURE) { +- qCCritical(log_gstreamer_backend) << "Failed to set element state to" << targetState; ++ qCCritical(log_gstreamer_gstreamerhelpers) << "Failed to set element state to" << targetState; + // Try to pull any error from the bus for diagnostics + // Caller may pass a bus to parseAndLogGstErrorMessage, but we don't have it here. + if (outError) *outError = QStringLiteral("Failed to set state (GST_STATE_CHANGE_FAILURE)"); +@@ -35,13 +35,13 @@ bool Openterface::GStreamer::GstHelpers::setPipelineStateWithTimeout(void* eleme + ret = gst_element_get_state(element, &state, &pending, static_cast(timeoutMs) * GST_MSECOND); + if (ret == GST_STATE_CHANGE_FAILURE) { + if (outError) *outError = QStringLiteral("State change failure"); +- qCCritical(log_gstreamer_backend) << "State change failure waiting for target state"; ++ qCCritical(log_gstreamer_gstreamerhelpers) << "State change failure waiting for target state"; + return false; + } + + if (state != static_cast(targetState)) { + if (outError) *outError = QStringLiteral("Element did not reach target state in timeout"); +- qCCritical(log_gstreamer_backend) << "Element failed to reach state" << targetState << "(current:" << state << ", pending:" << pending << ")"; ++ qCCritical(log_gstreamer_gstreamerhelpers) << "Element failed to reach state" << targetState << "(current:" << state << ", pending:" << pending << ")"; + return false; + } + +@@ -51,14 +51,14 @@ bool Openterface::GStreamer::GstHelpers::setPipelineStateWithTimeout(void* eleme + void Openterface::GStreamer::GstHelpers::parseAndLogGstErrorMessage(void* busPtr, const char* context) + { + if (!busPtr) { +- qCWarning(log_gstreamer_backend) << "Bus not available for error details" << (context ? context : ""); ++ qCWarning(log_gstreamer_gstreamerhelpers) << "Bus not available for error details" << (context ? context : ""); + return; + } + + GstBus* bus = static_cast(busPtr); + GstMessage* msg = gst_bus_pop_filtered(bus, GST_MESSAGE_ERROR); + if (!msg) { +- qCDebug(log_gstreamer_backend) << "No error message available on bus" << (context ? context : ""); ++ qCDebug(log_gstreamer_gstreamerhelpers) << "No error message available on bus" << (context ? context : ""); + return; + } + +@@ -66,8 +66,8 @@ void Openterface::GStreamer::GstHelpers::parseAndLogGstErrorMessage(void* busPtr + gchar* debug_info = nullptr; + gst_message_parse_error(msg, &error, &debug_info); + +- qCCritical(log_gstreamer_backend) << "GStreamer Error:" << (error ? error->message : "Unknown") << (context ? context : ""); +- qCCritical(log_gstreamer_backend) << "Debug info:" << (debug_info ? debug_info : "None"); ++ qCCritical(log_gstreamer_gstreamerhelpers) << "GStreamer Error:" << (error ? error->message : "Unknown") << (context ? context : ""); ++ qCCritical(log_gstreamer_gstreamerhelpers) << "Debug info:" << (debug_info ? debug_info : "None"); + + if (error) g_error_free(error); + if (debug_info) g_free(debug_info); +@@ -79,13 +79,13 @@ void Openterface::GStreamer::GstHelpers::parseAndLogGstErrorMessage(void* busPtr + bool Openterface::GStreamer::GstHelpers::setPipelineStateWithTimeout(void* /*elementPtr*/, int /*targetState*/, int /*timeoutMs*/, QString* outError) + { + if (outError) *outError = QStringLiteral("GStreamer not available in this build"); +- qCWarning(log_gstreamer_backend) << "setPipelineStateWithTimeout called but GStreamer is not compiled in"; ++ qCWarning(log_gstreamer_gstreamerhelpers) << "setPipelineStateWithTimeout called but GStreamer is not compiled in"; + return false; + } + + void Openterface::GStreamer::GstHelpers::parseAndLogGstErrorMessage(void* /*busPtr*/, const char* context) + { +- qCDebug(log_gstreamer_backend) << "GStreamer not compiled in - no bus to parse" << (context ? context : ""); ++ qCDebug(log_gstreamer_gstreamerhelpers) << "GStreamer not compiled in - no bus to parse" << (context ? context : ""); + } + + #endif // HAVE_GSTREAMER +diff --git a/host/backend/gstreamer/queueconfigurator.cpp b/host/backend/gstreamer/queueconfigurator.cpp +index b7bea42e..12290193 100644 +--- a/host/backend/gstreamer/queueconfigurator.cpp ++++ b/host/backend/gstreamer/queueconfigurator.cpp +@@ -8,7 +8,7 @@ + #include + #endif + +-Q_LOGGING_CATEGORY(log_gstreamer_backend, "opf.backend.gstreamer") ++Q_LOGGING_CATEGORY(log_gstreamer_queueconfigurator, "opf.backend.queueconfigurator") + + using namespace Openterface::GStreamer; + +@@ -26,10 +26,10 @@ void QueueConfigurator::configureDisplayQueue(void* pipeline) + "max-size-time", G_GUINT64_CONSTANT(100000000), // 100ms + "leaky", 2, // GST_QUEUE_LEAK_DOWNSTREAM + NULL); +- qCDebug(log_gstreamer_backend) << "✓ Configured display queue with higher priority for qtsink"; ++ qCDebug(log_gstreamer_queueconfigurator) << "✓ Configured display queue with higher priority for qtsink"; + gst_object_unref(displayQueue); + } else { +- qCDebug(log_gstreamer_backend) << "Display queue element not found (no named display-queue)"; ++ qCDebug(log_gstreamer_queueconfigurator) << "Display queue element not found (no named display-queue)"; + } + #else + Q_UNUSED(pipeline); +@@ -50,7 +50,7 @@ void QueueConfigurator::configureRecordingQueue(void* pipeline) + "max-size-time", G_GUINT64_CONSTANT(500000000), // 500ms + "leaky", 1, // GST_QUEUE_LEAK_UPSTREAM + NULL); +- qCDebug(log_gstreamer_backend) << "✓ Configured recording queue with lower priority relative to display"; ++ qCDebug(log_gstreamer_queueconfigurator) << "✓ Configured recording queue with lower priority relative to display"; + gst_object_unref(recordingQueue); + } + #else +diff --git a/host/backend/gstreamer/videooverlaymanager.cpp b/host/backend/gstreamer/videooverlaymanager.cpp +index d8bf42f3..2dbe3bbf 100644 +--- a/host/backend/gstreamer/videooverlaymanager.cpp ++++ b/host/backend/gstreamer/videooverlaymanager.cpp +@@ -22,7 +22,7 @@ static int x11_overlay_error_handler_local(Display* display, XErrorEvent* error) + } + #endif + +-Q_LOGGING_CATEGORY(log_gstreamer_backend, "opf.backend.gstreamer") ++Q_LOGGING_CATEGORY(log_gstreamer_videooverlaymanager, "opf.backend.videooverlaymanager") + + using namespace Openterface::GStreamer; + +@@ -30,36 +30,36 @@ bool VideoOverlayManager::embedVideoInWidget(void* pipeline, QWidget* widget) + { + #ifdef HAVE_GSTREAMER + if (!widget || !pipeline) { +- qCWarning(log_gstreamer_backend) << "Cannot embed video: widget or pipeline is null"; ++ qCWarning(log_gstreamer_videooverlaymanager) << "Cannot embed video: widget or pipeline is null"; + return false; + } + + GstElement* videoSink = gst_bin_get_by_name(GST_BIN(pipeline), "videosink"); + if (!videoSink) { +- qCWarning(log_gstreamer_backend) << "No video sink element named 'videosink' found in pipeline"; ++ qCWarning(log_gstreamer_videooverlaymanager) << "No video sink element named 'videosink' found in pipeline"; + videoSink = gst_bin_get_by_interface(GST_BIN(pipeline), GST_TYPE_VIDEO_OVERLAY); + if (!videoSink) { +- qCWarning(log_gstreamer_backend) << "No video overlay interface found in pipeline either"; ++ qCWarning(log_gstreamer_videooverlaymanager) << "No video overlay interface found in pipeline either"; + return false; + } + } + + WId winId = widget->winId(); + if (winId) { +- qCDebug(log_gstreamer_backend) << "Embedding video in widget with window ID:" << winId; ++ qCDebug(log_gstreamer_videooverlaymanager) << "Embedding video in widget with window ID:" << winId; + gst_video_overlay_set_window_handle(GST_VIDEO_OVERLAY(videoSink), winId); + gst_object_unref(videoSink); +- qCDebug(log_gstreamer_backend) << "Video embedded in widget successfully"; ++ qCDebug(log_gstreamer_videooverlaymanager) << "Video embedded in widget successfully"; + return true; + } else { +- qCWarning(log_gstreamer_backend) << "Widget window ID is null, cannot embed video"; ++ qCWarning(log_gstreamer_videooverlaymanager) << "Widget window ID is null, cannot embed video"; + gst_object_unref(videoSink); + return false; + } + #else + Q_UNUSED(pipeline) + Q_UNUSED(widget) +- qCDebug(log_gstreamer_backend) << "Using autovideosink for video output (no in-process GStreamer)"; ++ qCDebug(log_gstreamer_videooverlaymanager) << "Using autovideosink for video output (no in-process GStreamer)"; + return true; + #endif + } +@@ -68,36 +68,36 @@ bool VideoOverlayManager::embedVideoInGraphicsView(void* pipeline, QGraphicsView + { + #ifdef HAVE_GSTREAMER + if (!view || !pipeline) { +- qCWarning(log_gstreamer_backend) << "Cannot embed video: graphics view or pipeline is null"; ++ qCWarning(log_gstreamer_videooverlaymanager) << "Cannot embed video: graphics view or pipeline is null"; + return false; + } + + GstElement* videoSink = gst_bin_get_by_name(GST_BIN(pipeline), "videosink"); + if (!videoSink) { +- qCWarning(log_gstreamer_backend) << "No video sink element named 'videosink' found in pipeline"; ++ qCWarning(log_gstreamer_videooverlaymanager) << "No video sink element named 'videosink' found in pipeline"; + videoSink = gst_bin_get_by_interface(GST_BIN(pipeline), GST_TYPE_VIDEO_OVERLAY); + if (!videoSink) { +- qCWarning(log_gstreamer_backend) << "No video overlay interface found in pipeline either"; ++ qCWarning(log_gstreamer_videooverlaymanager) << "No video overlay interface found in pipeline either"; + return false; + } + } + + WId winId = view->winId(); + if (winId) { +- qCDebug(log_gstreamer_backend) << "Embedding video in graphics view with window ID:" << winId; ++ qCDebug(log_gstreamer_videooverlaymanager) << "Embedding video in graphics view with window ID:" << winId; + gst_video_overlay_set_window_handle(GST_VIDEO_OVERLAY(videoSink), winId); + gst_object_unref(videoSink); +- qCDebug(log_gstreamer_backend) << "Video embedded in graphics view successfully"; ++ qCDebug(log_gstreamer_videooverlaymanager) << "Video embedded in graphics view successfully"; + return true; + } else { +- qCWarning(log_gstreamer_backend) << "Graphics view window ID is null, cannot embed video"; ++ qCWarning(log_gstreamer_videooverlaymanager) << "Graphics view window ID is null, cannot embed video"; + gst_object_unref(videoSink); + return false; + } + #else + Q_UNUSED(pipeline) + Q_UNUSED(view) +- qCDebug(log_gstreamer_backend) << "Using autovideosink for video output (no in-process GStreamer)"; ++ qCDebug(log_gstreamer_videooverlaymanager) << "Using autovideosink for video output (no in-process GStreamer)"; + return true; + #endif + } +@@ -106,36 +106,36 @@ bool VideoOverlayManager::embedVideoInVideoPane(void* pipeline, ::VideoPane* vid + { + #ifdef HAVE_GSTREAMER + if (!videoPane || !pipeline) { +- qCWarning(log_gstreamer_backend) << "Cannot embed video: VideoPane or pipeline is null"; ++ qCWarning(log_gstreamer_videooverlaymanager) << "Cannot embed video: VideoPane or pipeline is null"; + return false; + } + + GstElement* videoSink = gst_bin_get_by_name(GST_BIN(pipeline), "videosink"); + if (!videoSink) { +- qCWarning(log_gstreamer_backend) << "No video sink element named 'videosink' found in pipeline"; ++ qCWarning(log_gstreamer_videooverlaymanager) << "No video sink element named 'videosink' found in pipeline"; + videoSink = gst_bin_get_by_interface(GST_BIN(pipeline), GST_TYPE_VIDEO_OVERLAY); + if (!videoSink) { +- qCWarning(log_gstreamer_backend) << "No video overlay interface found in pipeline either"; ++ qCWarning(log_gstreamer_videooverlaymanager) << "No video overlay interface found in pipeline either"; + return false; + } + } + + WId winId = videoPane->getVideoOverlayWindowId(); + if (winId) { +- qCDebug(log_gstreamer_backend) << "Embedding video in VideoPane overlay with window ID:" << winId; ++ qCDebug(log_gstreamer_videooverlaymanager) << "Embedding video in VideoPane overlay with window ID:" << winId; + gst_video_overlay_set_window_handle(GST_VIDEO_OVERLAY(videoSink), winId); + gst_object_unref(videoSink); +- qCDebug(log_gstreamer_backend) << "Video embedded in VideoPane overlay successfully"; ++ qCDebug(log_gstreamer_videooverlaymanager) << "Video embedded in VideoPane overlay successfully"; + return true; + } else { +- qCWarning(log_gstreamer_backend) << "VideoPane overlay window ID is null, cannot embed video"; ++ qCWarning(log_gstreamer_videooverlaymanager) << "VideoPane overlay window ID is null, cannot embed video"; + gst_object_unref(videoSink); + return false; + } + #else + Q_UNUSED(pipeline) + Q_UNUSED(videoPane) +- qCDebug(log_gstreamer_backend) << "Using autovideosink for video output (no in-process GStreamer)"; ++ qCDebug(log_gstreamer_videooverlaymanager) << "Using autovideosink for video output (no in-process GStreamer)"; + return true; + #endif + } +@@ -144,7 +144,7 @@ bool VideoOverlayManager::setupVideoOverlay(void* videoSinkPtr, WId windowId, QW + { + #ifdef HAVE_GSTREAMER + if (!videoSinkPtr || windowId == 0) { +- qCWarning(log_gstreamer_backend) << "Invalid parameters for overlay setup: sink=" << videoSinkPtr << "windowId=" << windowId; ++ qCWarning(log_gstreamer_videooverlaymanager) << "Invalid parameters for overlay setup: sink=" << videoSinkPtr << "windowId=" << windowId; + return false; + } + +@@ -152,7 +152,7 @@ bool VideoOverlayManager::setupVideoOverlay(void* videoSinkPtr, WId windowId, QW + + // Check if the sink supports video overlay interface + if (GST_IS_VIDEO_OVERLAY(videoSink)) { +- qCDebug(log_gstreamer_backend) << "Sink supports video overlay - setting up overlay with window ID:" << windowId; ++ qCDebug(log_gstreamer_videooverlaymanager) << "Sink supports video overlay - setting up overlay with window ID:" << windowId; + + #ifdef Q_OS_LINUX + // Add X11 error handling to prevent segmentation fault +@@ -175,12 +175,12 @@ bool VideoOverlayManager::setupVideoOverlay(void* videoSinkPtr, WId windowId, QW + if (g_object_class_find_property(G_OBJECT_GET_CLASS(videoSink), "force-aspect-ratio")) { + // Allow the sink to stretch to the configured render rectangle so overlay scales to widget size + g_object_set(videoSink, "force-aspect-ratio", FALSE, NULL); +- qCDebug(log_gstreamer_backend) << "Disabled force-aspect-ratio on video sink to allow fill scaling"; ++ qCDebug(log_gstreamer_videooverlaymanager) << "Disabled force-aspect-ratio on video sink to allow fill scaling"; + } + + if (g_object_class_find_property(G_OBJECT_GET_CLASS(videoSink), "pixel-aspect-ratio")) { + g_object_set(videoSink, "pixel-aspect-ratio", "1/1", NULL); +- qCDebug(log_gstreamer_backend) << "Set pixel-aspect-ratio to 1:1 on video sink"; ++ qCDebug(log_gstreamer_videooverlaymanager) << "Set pixel-aspect-ratio to 1:1 on video sink"; + } + + // Configure render rectangle based on provided targets +@@ -188,13 +188,13 @@ bool VideoOverlayManager::setupVideoOverlay(void* videoSinkPtr, WId windowId, QW + QSize widgetSize = videoWidget->size(); + if (widgetSize.width() > 0 && widgetSize.height() > 0) { + gst_video_overlay_set_render_rectangle(GST_VIDEO_OVERLAY(videoSink), 0, 0, widgetSize.width(), widgetSize.height()); +- qCDebug(log_gstreamer_backend) << "Set render rectangle to widget size:" << widgetSize; ++ qCDebug(log_gstreamer_videooverlaymanager) << "Set render rectangle to widget size:" << widgetSize; + } + } else if (graphicsVideoItem) { + QRectF itemRect = graphicsVideoItem->boundingRect(); + if (itemRect.width() > 0 && itemRect.height() > 0) { + gst_video_overlay_set_render_rectangle(GST_VIDEO_OVERLAY(videoSink), 0, 0, (gint)itemRect.width(), (gint)itemRect.height()); +- qCDebug(log_gstreamer_backend) << "Set render rectangle to video item size:" << itemRect.size(); ++ qCDebug(log_gstreamer_videooverlaymanager) << "Set render rectangle to video item size:" << itemRect.size(); + } + } + +@@ -205,18 +205,18 @@ bool VideoOverlayManager::setupVideoOverlay(void* videoSinkPtr, WId windowId, QW + XCloseDisplay(display); + + if (x11_overlay_error_occurred_local) { +- qCWarning(log_gstreamer_backend) << "X11 error occurred during overlay setup - continuing without embedding"; ++ qCWarning(log_gstreamer_videooverlaymanager) << "X11 error occurred during overlay setup - continuing without embedding"; + } else { +- qCDebug(log_gstreamer_backend) << "Video overlay setup completed successfully"; ++ qCDebug(log_gstreamer_videooverlaymanager) << "Video overlay setup completed successfully"; + } + } else if (!old_handler) { +- qCDebug(log_gstreamer_backend) << "Video overlay setup completed (no X11 error handling)"; ++ qCDebug(log_gstreamer_videooverlaymanager) << "Video overlay setup completed (no X11 error handling)"; + } + #endif + +- qCDebug(log_gstreamer_backend) << "Overlay setup completed"; ++ qCDebug(log_gstreamer_videooverlaymanager) << "Overlay setup completed"; + } catch (...) { +- qCCritical(log_gstreamer_backend) << "Exception during video overlay setup - continuing without embedding"; ++ qCCritical(log_gstreamer_videooverlaymanager) << "Exception during video overlay setup - continuing without embedding"; + #ifdef Q_OS_LINUX + if (display && old_handler) { + XSetErrorHandler(old_handler); +@@ -242,17 +242,17 @@ bool VideoOverlayManager::setupVideoOverlay(void* videoSinkPtr, WId windowId, QW + if (gst_iterator_next(iter, &item) == GST_ITERATOR_OK) { + actualSink = GST_ELEMENT(g_value_get_object(&item)); + if (actualSink && GST_IS_VIDEO_OVERLAY(actualSink)) { +- qCDebug(log_gstreamer_backend) << "Found overlay-capable sink inside autovideosink"; ++ qCDebug(log_gstreamer_videooverlaymanager) << "Found overlay-capable sink inside autovideosink"; + gst_video_overlay_set_window_handle(GST_VIDEO_OVERLAY(actualSink), windowId); + // Use target widget size if available to set explicit render rectangle so scaling works + if (videoWidget) { + QSize widgetSize = videoWidget->size(); + if (widgetSize.width() > 0 && widgetSize.height() > 0) { + gst_video_overlay_set_render_rectangle(GST_VIDEO_OVERLAY(actualSink), 0, 0, widgetSize.width(), widgetSize.height()); +- qCDebug(log_gstreamer_backend) << "Set render rectangle to widget size for autovideosink child sink:" << widgetSize; ++ qCDebug(log_gstreamer_videooverlaymanager) << "Set render rectangle to widget size for autovideosink child sink:" << widgetSize; + if (g_object_class_find_property(G_OBJECT_GET_CLASS(actualSink), "force-aspect-ratio")) { + g_object_set(actualSink, "force-aspect-ratio", FALSE, NULL); +- qCDebug(log_gstreamer_backend) << "Disabled force-aspect-ratio on autovideosink child sink"; ++ qCDebug(log_gstreamer_videooverlaymanager) << "Disabled force-aspect-ratio on autovideosink child sink"; + } + } else { + gst_video_overlay_set_render_rectangle(GST_VIDEO_OVERLAY(actualSink), 0, 0, -1, -1); +@@ -269,18 +269,18 @@ bool VideoOverlayManager::setupVideoOverlay(void* videoSinkPtr, WId windowId, QW + } + gst_iterator_free(iter); + } +- qCDebug(log_gstreamer_backend) << "autovideosink selected sink doesn't support overlay - video will display in separate window"; ++ qCDebug(log_gstreamer_videooverlaymanager) << "autovideosink selected sink doesn't support overlay - video will display in separate window"; + return false; + } + +- qCWarning(log_gstreamer_backend) << "Sink does not support video overlay:" << sinkName; ++ qCWarning(log_gstreamer_videooverlaymanager) << "Sink does not support video overlay:" << sinkName; + return false; + #else + Q_UNUSED(videoSinkPtr) + Q_UNUSED(windowId) + Q_UNUSED(videoWidget) + Q_UNUSED(graphicsVideoItem) +- qCDebug(log_gstreamer_backend) << "No in-process GStreamer - overlay unavailable"; ++ qCDebug(log_gstreamer_videooverlaymanager) << "No in-process GStreamer - overlay unavailable"; + return false; + #endif + } +@@ -300,7 +300,7 @@ bool VideoOverlayManager::setupVideoOverlayForPipeline(void* pipeline, WId windo + gst_object_unref(videoSink); + return ok; + } +- qCWarning(log_gstreamer_backend) << "No video sink found in pipeline"; ++ qCWarning(log_gstreamer_videooverlaymanager) << "No video sink found in pipeline"; + return false; + #else + Q_UNUSED(pipeline) +@@ -315,10 +315,10 @@ bool VideoOverlayManager::completePendingOverlaySetup(void* pipeline, + ::VideoPane* videoPane, + bool &pendingFlag) + { +- qCDebug(log_gstreamer_backend) << "VideoOverlayManager: Completing pending overlay setup..."; ++ qCDebug(log_gstreamer_videooverlaymanager) << "VideoOverlayManager: Completing pending overlay setup..."; + + if (!pendingFlag || !pipeline) { +- qCDebug(log_gstreamer_backend) << "No pending setup or no pipeline"; ++ qCDebug(log_gstreamer_videooverlaymanager) << "No pending setup or no pipeline"; + return false; + } + +@@ -326,7 +326,7 @@ bool VideoOverlayManager::completePendingOverlaySetup(void* pipeline, + const bool isXcb = platform.contains("xcb", Qt::CaseInsensitive); + const bool hasXDisplay = !qgetenv("DISPLAY").isEmpty(); + if (!isXcb || !hasXDisplay) { +- qCWarning(log_gstreamer_backend) << "Skipping deferred overlay setup: platform is" << platform << "(DISPLAY set:" << hasXDisplay << ")"; ++ qCWarning(log_gstreamer_videooverlaymanager) << "Skipping deferred overlay setup: platform is" << platform << "(DISPLAY set:" << hasXDisplay << ")"; + pendingFlag = false; + return false; + } +@@ -335,7 +335,7 @@ bool VideoOverlayManager::completePendingOverlaySetup(void* pipeline, + + if (videoPane) { + windowId = videoPane->getVideoOverlayWindowId(); +- qCDebug(log_gstreamer_backend) << "Completing overlay setup with VideoPane window ID:" << windowId; ++ qCDebug(log_gstreamer_videooverlaymanager) << "Completing overlay setup with VideoPane window ID:" << windowId; + } else if (graphicsVideoItem) { + if (graphicsVideoItem->scene()) { + QList views = graphicsVideoItem->scene()->views(); +@@ -344,21 +344,21 @@ bool VideoOverlayManager::completePendingOverlaySetup(void* pipeline, + if (auto pane = qobject_cast(view)) { + if (pane->isDirectGStreamerModeEnabled() && pane->getOverlayWidget()) { + windowId = pane->getVideoOverlayWindowId(); +- qCDebug(log_gstreamer_backend) << "Completing overlay setup with VideoPane overlay widget window ID:" << windowId; ++ qCDebug(log_gstreamer_videooverlaymanager) << "Completing overlay setup with VideoPane overlay widget window ID:" << windowId; + } else { +- qCDebug(log_gstreamer_backend) << "VideoPane overlay widget still not ready"; ++ qCDebug(log_gstreamer_videooverlaymanager) << "VideoPane overlay widget still not ready"; + return false; + } + } else { + windowId = view->winId(); +- qCDebug(log_gstreamer_backend) << "Completing overlay setup with graphics view window ID:" << windowId; ++ qCDebug(log_gstreamer_videooverlaymanager) << "Completing overlay setup with graphics view window ID:" << windowId; + } + } else { +- qCWarning(log_gstreamer_backend) << "Graphics video item has no associated view"; ++ qCWarning(log_gstreamer_videooverlaymanager) << "Graphics video item has no associated view"; + return false; + } + } else { +- qCWarning(log_gstreamer_backend) << "Graphics video item has no scene"; ++ qCWarning(log_gstreamer_videooverlaymanager) << "Graphics video item has no scene"; + return false; + } + } +@@ -367,7 +367,7 @@ bool VideoOverlayManager::completePendingOverlaySetup(void* pipeline, + GstElement* videoSink = gst_bin_get_by_name(GST_BIN(pipeline), "videosink"); + if (!videoSink) { + videoSink = gst_bin_get_by_interface(GST_BIN(pipeline), GST_TYPE_VIDEO_OVERLAY); +- if (videoSink) qCDebug(log_gstreamer_backend) << "Deferred path: found sink by overlay interface"; ++ if (videoSink) qCDebug(log_gstreamer_videooverlaymanager) << "Deferred path: found sink by overlay interface"; + } + + if (videoSink) { +@@ -384,14 +384,14 @@ bool VideoOverlayManager::completePendingOverlaySetup(void* pipeline, + targetWidget = videoWidget; + } + if (targetWidget) { +- qCDebug(log_gstreamer_backend) << "Deferred: binding qt6videosink to QWidget" << targetWidget; ++ qCDebug(log_gstreamer_videooverlaymanager) << "Deferred: binding qt6videosink to QWidget" << targetWidget; + g_object_set(G_OBJECT(videoSink), "widget", (gpointer)targetWidget, nullptr); + gst_object_unref(videoSink); + pendingFlag = false; +- qCDebug(log_gstreamer_backend) << "Deferred qt6videosink binding completed"; ++ qCDebug(log_gstreamer_videooverlaymanager) << "Deferred qt6videosink binding completed"; + return true; + } else { +- qCWarning(log_gstreamer_backend) << "Deferred: no target QWidget available to bind qt6videosink"; ++ qCWarning(log_gstreamer_videooverlaymanager) << "Deferred: no target QWidget available to bind qt6videosink"; + } + } + +@@ -399,30 +399,30 @@ bool VideoOverlayManager::completePendingOverlaySetup(void* pipeline, + const bool looksLikeXSink = sinkNameBA.contains("xvimage") || sinkNameBA.contains("ximage"); + + if (!supportsOverlay) { +- qCWarning(log_gstreamer_backend) << "Deferred overlay skipped: sink does not support overlay interface (" << sinkName << ")"; ++ qCWarning(log_gstreamer_videooverlaymanager) << "Deferred overlay skipped: sink does not support overlay interface (" << sinkName << ")"; + gst_object_unref(videoSink); + pendingFlag = false; + return false; + } + + if (!looksLikeXSink) { +- qCWarning(log_gstreamer_backend) << "Deferred overlay skipped: sink is not an X sink (" << sinkName << ") on platform" << QGuiApplication::platformName(); ++ qCWarning(log_gstreamer_videooverlaymanager) << "Deferred overlay skipped: sink is not an X sink (" << sinkName << ") on platform" << QGuiApplication::platformName(); + gst_object_unref(videoSink); + pendingFlag = false; + return false; + } + +- qCDebug(log_gstreamer_backend) << "Setting up deferred video overlay with window ID:" << windowId << "using sink" << sinkName; ++ qCDebug(log_gstreamer_videooverlaymanager) << "Setting up deferred video overlay with window ID:" << windowId << "using sink" << sinkName; + gst_video_overlay_set_window_handle(GST_VIDEO_OVERLAY(videoSink), windowId); + gst_object_unref(videoSink); + pendingFlag = false; +- qCDebug(log_gstreamer_backend) << "Deferred overlay setup completed successfully"; ++ qCDebug(log_gstreamer_videooverlaymanager) << "Deferred overlay setup completed successfully"; + return true; + } else { +- qCWarning(log_gstreamer_backend) << "Could not find video sink for deferred overlay setup"; ++ qCWarning(log_gstreamer_videooverlaymanager) << "Could not find video sink for deferred overlay setup"; + } + } else { +- qCWarning(log_gstreamer_backend) << "Still no valid window ID available for deferred overlay setup"; ++ qCWarning(log_gstreamer_videooverlaymanager) << "Still no valid window ID available for deferred overlay setup"; + } + + return false; diff --git a/user/openterface-qt/51-openterface-permissions.rules b/backports/openterface-qt/51-openterface-permissions.rules similarity index 100% rename from user/openterface-qt/51-openterface-permissions.rules rename to backports/openterface-qt/51-openterface-permissions.rules diff --git a/user/openterface-qt/APKBUILD b/backports/openterface-qt/APKBUILD similarity index 50% rename from user/openterface-qt/APKBUILD rename to backports/openterface-qt/APKBUILD index cf753a7..a96e328 100644 --- a/user/openterface-qt/APKBUILD +++ b/backports/openterface-qt/APKBUILD @@ -1,29 +1,54 @@ # Maintainer: Antoine Martin (ayakael) pkgname=openterface-qt -pkgver=0.3.13 +pkgver=0.5.7 pkgrel=0 pkgdesc="Openterface Mini-KVM Host Application" -arch="all !armhf" # missing qt6-qtmultimedia +# armhf: missing qt6-qtmultimedia +# riscv64: missing libgtk-3 +arch="all !armhf !riscv64" url="https://openterface.com/" license="AGPL-3.0-only" -depends="qt6-qtmultimedia-ffmpeg hicolor-icon-theme" -makedepends="qt6-qtbase-dev qt6-qtmultimedia-dev qt6-qtserialport-dev qt6-qtsvg-dev qt6-qtmultimedia-dev libusb-dev" +depends=" + gst-plugins-good-qt + hicolor-icon-theme + qt6-qtmultimedia-ffmpeg + " +makedepends=" + cmake + ffmpeg-dev + libgudev-dev + libjpeg-turbo-dev + libusb-dev + libx11-dev + libxv-dev + patchelf + qt6-qtbase-dev + qt6-qtmultimedia-dev + qt6-qtserialport-dev + samurai + v4l-utils-dev +" install="$pkgname.post-install" builddir="$srcdir"/Openterface_QT-$pkgver +options="!check" # No testsuite source=" $pkgname-$pkgver.tar.gz::https://github.com/TechxArtisanStudio/Openterface_QT/archive/$pkgver.tar.gz openterfaceQT.desktop 51-openterface-permissions.rules + 348_address-use-of-deleted-function.patch + 423_deduplicate-logging-categories-and-remove-backslashes.patch + use-system-libs.patch " prepare() { default_prepare mkdir build && cd build - qmake6 .. + # OPENTERFACE_BUILD_STATIC: do not build vendored dependencies + cmake -DOPENTERFACE_BUILD_STATIC=OFF .. } build() { - make -C build + ninja -C build } package() { @@ -33,9 +58,16 @@ package() { install -Dm644 "$builddir"/images/icon_32.png "$pkgdir"/usr/share/icons/hicolor/32x32/apps/openterfaceQT.png install -Dm644 "$builddir"/images/icon_64.png "$pkgdir"/usr/share/icons/hicolor/64x64/apps/openterfaceQT.png install -Dm644 "$builddir"/images/icon_128.png "$pkgdir"/usr/share/icons/hicolor/128x128/apps/openterfaceQT.png + + # vanilla build does not set rpath, since it usually wants to use vendored libs + patchelf --set-rpath '/usr/lib' "$pkgdir"/usr/bin/openterfaceQT } + sha512sums=" -7261ce2875b1617d27945de591c72779d2305889b7f53bb6758cb5e1d4dc01c969fef1638726d868f75e995c44a8e2c453cac45c90cfb3d140b8120523c4038d openterface-qt-0.3.13.tar.gz +996415d6f7d3ed950901c380a0520ddab8c31e8d3c2e2bb3a5f631a5600cace6bcf6bf89871e4e4ef818009eeb08c448fd793e1e4758ecccf1e1a21ff04fd560 openterface-qt-0.5.7.tar.gz e39cfa04cbcb59e8ba54110a28eff41854f73fa7c4baeeed5433907c79781946f12bd3a731763caa1d591e664eab0650bdbd2a844954baa12bb96a76a17c6e4f openterfaceQT.desktop f50d721a6a2d1e0183c81e99230e91e127ee6c6f3243af1cff3e3cb78e2913ebab3346ec8b461a4710220d1ce2e12a7cc960ded6e0dc2def539375c6e737b647 51-openterface-permissions.rules +69b5556ec9e56792e848ea1ff9374e12e6901da821ecd9d6f2f521ea30f48e564c2cd0631fc1360acd6c8c6249cfa718d5baf7ed6929e1e92f63eeaea578bcb3 348_address-use-of-deleted-function.patch +47580d07a2d971ad2010e78373d1abbcbc05b3fbd3a7e466faed50dc9a0d632db30c0a7622e7324aeb0eb38d49e3241cb6cebc835f7adeed977b1dd7b48ea5f6 423_deduplicate-logging-categories-and-remove-backslashes.patch +22ecac74fe0923f39f538a5d587f8c100d9709631a1584bd20646e09dcf777cd3042670d08195626220f0494e5efa9549a299c5e1fd8c42f991ec5746b42cc86 use-system-libs.patch " diff --git a/user/openterface-qt/openterface-qt.post-install b/backports/openterface-qt/openterface-qt.post-install similarity index 100% rename from user/openterface-qt/openterface-qt.post-install rename to backports/openterface-qt/openterface-qt.post-install diff --git a/user/openterface-qt/openterfaceQT.desktop b/backports/openterface-qt/openterfaceQT.desktop similarity index 100% rename from user/openterface-qt/openterfaceQT.desktop rename to backports/openterface-qt/openterfaceQT.desktop diff --git a/backports/openterface-qt/use-system-libs.patch b/backports/openterface-qt/use-system-libs.patch new file mode 100644 index 0000000..a220d5f --- /dev/null +++ b/backports/openterface-qt/use-system-libs.patch @@ -0,0 +1,72 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index e0e8ea1..c861725 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -244,7 +244,7 @@ endif() + # Add XCB cursor library for static linking (Linux only) - Legacy support + if(UNIX AND NOT APPLE AND XCB_CURSOR_FOUND) + # This is redundant now but keeping for compatibility +- message(STATUS "XCB cursor already linked via static approach above") ++ target_link_libraries(openterfaceQT PRIVATE X11) + endif() + + # Add TurboJPEG if available +@@ -307,4 +307,4 @@ if(CMAKE_BUILD_TYPE STREQUAL "Release") + endif() + endif() + +-# Qt components already found above +\ No newline at end of file ++# Qt components already found above +diff --git a/cmake/FFmpeg.cmake b/cmake/FFmpeg.cmake +index ef0699e..660e765 100644 +--- a/cmake/FFmpeg.cmake ++++ b/cmake/FFmpeg.cmake +@@ -19,7 +19,7 @@ if(NOT DEFINED FFMPEG_PREFIX) + if(WIN32) + set(FFMPEG_PREFIX "C:/ffmpeg-static" CACHE PATH "FFmpeg installation directory") + else() +- set(FFMPEG_PREFIX "/opt/ffmpeg" CACHE PATH "FFmpeg installation directory") ++ set(FFMPEG_PREFIX "/usr" CACHE PATH "FFmpeg installation directory") + endif() + message(STATUS "Using default FFMPEG_PREFIX: ${FFMPEG_PREFIX}") + endif() +@@ -116,7 +116,7 @@ if(NOT FFMPEG_FOUND) + message(STATUS "FFmpeg search paths: ${FFMPEG_SEARCH_PATHS}") + foreach(SEARCH_PATH ${FFMPEG_SEARCH_PATHS}) + # For static builds, prefer .a files; check common lib directories +- set(LIB_EXTENSIONS ".a") ++ set(LIB_EXTENSIONS ".so") + + # Platform-specific library paths + if(WIN32) +diff --git a/cmake/GStreamer.cmake b/cmake/GStreamer.cmake +index 220e9f5..576535f 100644 +--- a/cmake/GStreamer.cmake ++++ b/cmake/GStreamer.cmake +@@ -316,10 +316,11 @@ else() + # Check for Qt6 plugin availability in system + message(STATUS "Checking for Qt6 GStreamer plugin in system...") + find_file(GSTREAMER_QT6_PLUGIN +- NAMES libgstqt6.so ++ NAMES libgstqml6.so + PATHS + /usr/lib/x86_64-linux-gnu/gstreamer-1.0 + /usr/lib/aarch64-linux-gnu/gstreamer-1.0 ++ /usr/lib/gstreamer-1.0 + /usr/local/lib/gstreamer-1.0 + NO_DEFAULT_PATH + ) +diff --git a/cmake/Resources.cmake b/cmake/Resources.cmake +index 2d28b89..e2009e3 100644 +--- a/cmake/Resources.cmake ++++ b/cmake/Resources.cmake +@@ -336,7 +336,7 @@ install(FILES ${CMAKE_SOURCE_DIR}/com.openterface.openterfaceQT.metainfo.xml + if(COMMAND qt_generate_deploy_app_script) + qt_generate_deploy_app_script( + TARGET openterfaceQT +- FILENAME_VARIABLE deploy_script ++ OUTPUT_SCRIPT deploy_script + NO_UNSUPPORTED_PLATFORM_ERROR + ) + install(SCRIPT ${deploy_script}) From f98506d3bbd4db6516f81098f0b56578ec41c6fa Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 22 Dec 2025 00:16:33 -0500 Subject: [PATCH 89/89] pmos/*: drop --- .../50-touchscreen.conf | 11 - .../81-libinput-pinenote.rules | 9 - .../82-ebc-rockchip.rules | 2 - pmos/device-pine64-pinenote/APKBUILD | 77 - pmos/device-pine64-pinenote/deviceinfo | 37 - .../local-overrides.quirks | 5 - pmos/device-pine64-pinenote/modules-initfs | 5 - pmos/device-pine64-pinenote/panfrost.conf | 2 - pmos/device-pine64-pinenote/phoc.ini | 6 - pmos/device-pine64-pinenote/rockchip_ebc.conf | 5 - pmos/linux-pine64-pinenote/APKBUILD | 59 - .../config-pine64-pinenote.aarch64 | 7666 ----------------- pmos/pinenote-dbus-service/APKBUILD | 34 - pmos/pinenote-dbus-service/pinenote.initd | 10 - 14 files changed, 7928 deletions(-) delete mode 100644 pmos/device-pine64-pinenote/50-touchscreen.conf delete mode 100644 pmos/device-pine64-pinenote/81-libinput-pinenote.rules delete mode 100644 pmos/device-pine64-pinenote/82-ebc-rockchip.rules delete mode 100644 pmos/device-pine64-pinenote/APKBUILD delete mode 100644 pmos/device-pine64-pinenote/deviceinfo delete mode 100644 pmos/device-pine64-pinenote/local-overrides.quirks delete mode 100644 pmos/device-pine64-pinenote/modules-initfs delete mode 100644 pmos/device-pine64-pinenote/panfrost.conf delete mode 100644 pmos/device-pine64-pinenote/phoc.ini delete mode 100644 pmos/device-pine64-pinenote/rockchip_ebc.conf delete mode 100644 pmos/linux-pine64-pinenote/APKBUILD delete mode 100644 pmos/linux-pine64-pinenote/config-pine64-pinenote.aarch64 delete mode 100644 pmos/pinenote-dbus-service/APKBUILD delete mode 100644 pmos/pinenote-dbus-service/pinenote.initd diff --git a/pmos/device-pine64-pinenote/50-touchscreen.conf b/pmos/device-pine64-pinenote/50-touchscreen.conf deleted file mode 100644 index f2d643b..0000000 --- a/pmos/device-pine64-pinenote/50-touchscreen.conf +++ /dev/null @@ -1,11 +0,0 @@ -Section "InputClass" - Identifier "evdev touchscreen" - MatchProduct "tt21000" - MatchIsTouchscreen "on" - Driver "evdev" -EndSection -Section "InputClass" - Identifier "RotateTouch" - MatchProduct "w9013" - Option "TransformationMatrix" "-1 0 1 0 -1 1 0 0 1" -EndSection diff --git a/pmos/device-pine64-pinenote/81-libinput-pinenote.rules b/pmos/device-pine64-pinenote/81-libinput-pinenote.rules deleted file mode 100644 index 700c71c..0000000 --- a/pmos/device-pine64-pinenote/81-libinput-pinenote.rules +++ /dev/null @@ -1,9 +0,0 @@ -ACTION=="remove", GOTO="libinput_device_group_end" -KERNEL!="event[0-9]*", GOTO="libinput_device_group_end" - -ATTRS{phys}=="?*", ATTRS{name}=="cyttsp5", ENV{LIBINPUT_DEVICE_GROUP}="pinenotetouch" -ATTRS{phys}=="?*", ATTRS{name}=="w9013 2D1F:0095 Stylus", ENV{LIBINPUT_DEVICE_GROUP}="pinenotetouch" - -ATTRS{phys}=="?*", ATTRS{name}=="cyttsp5", ENV{LIBINPUT_CALIBRATION_MATRIX}="-1 0 1 0 -1 1" - -LABEL="libinput_device_group_end" diff --git a/pmos/device-pine64-pinenote/82-ebc-rockchip.rules b/pmos/device-pine64-pinenote/82-ebc-rockchip.rules deleted file mode 100644 index 56c673d..0000000 --- a/pmos/device-pine64-pinenote/82-ebc-rockchip.rules +++ /dev/null @@ -1,2 +0,0 @@ -SUBSYSTEM=="module", KERNEL=="rockchip_ebc", RUN+="/bin/chgrp video /sys/module/%k/parameters/dclk_select /sys/module/%k/parameters/auto_refresh /sys/module/%k/parameters/bw_dither_invert /sys/module/%k/parameters/bw_threshold /sys/module/%k/parameters/bw_mode /sys/module/%k/parameters/diff_mode /sys/module/%k/parameters/direct_mode /sys/module/%k/parameters/limit_fb_blits /sys/module/%k/parameters/panel_reflection /sys/module/%k/parameters/refresh_threshold /sys/module/%k/parameters/refresh_waveform /sys/module/%k/parameters/skip_reset /sys/module/%k/parameters/split_area_limit /sys/module/%k/parameters/default_waveform", RUN+="/bin/chmod g+w /sys/module/%k/parameters/bw_threshold /sys/module/%k/parameters/bw_mode /sys/module/%k/parameters/default_waveform /sys/module/%k/parameters/diff_mode /sys/module/%k/parameters/direct_mode /sys/module/%k/parameters/limit_fb_blits /sys/module/%k/parameters/panel_reflection /sys/module/%k/parameters/refresh_threshold /sys/module/%k/parameters/refresh_waveform /sys/module/%k/parameters/skip_reset /sys/module/%k/parameters/auto_refresh /sys/module/%k/parameters/bw_dither_invert /sys/module/%k/parameters/split_area_limit" -DRIVER=="rockchip-ebc", RUN+="/bin/chgrp video /sys/%p/power/control", RUN+="/bin/chmod g+w /sys/%p/power/control" diff --git a/pmos/device-pine64-pinenote/APKBUILD b/pmos/device-pine64-pinenote/APKBUILD deleted file mode 100644 index 1cf2b3c..0000000 --- a/pmos/device-pine64-pinenote/APKBUILD +++ /dev/null @@ -1,77 +0,0 @@ -# Maintainer: Petr Hodina -pkgname=device-pine64-pinenote -pkgdesc="Pine64 PineNote" -pkgver=2 -pkgrel=9 -url="https://postmarketos.org" -license="MIT" -arch="aarch64" -options="!check !archcheck" -depends=" - u-boot-pine64-pinenote - linux-pine64-pinenote - postmarketos-base -" -makedepends="devicepkg-dev" -source=" - deviceinfo - modules-initfs - phoc.ini - local-overrides.quirks - 50-touchscreen.conf - 81-libinput-pinenote.rules - 82-ebc-rockchip.rules - panfrost.conf - rockchip_ebc.conf -" -subpackages=" - $pkgname-nonfree-firmware:nonfree_firmware - $pkgname-phosh -" - -build() { - devicepkg_build $startdir $pkgname -} - -package() { - devicepkg_package $startdir $pkgname - - install -Dm644 "$srcdir"/local-overrides.quirks \ - -t "$pkgdir"/etc/libinput/ - install -Dm644 "$srcdir"/50-touchscreen.conf \ - -t "$pkgdir"/etc/X11/xorg.conf.d - install -Dm644 "$srcdir"/81-libinput-pinenote.rules \ - -t "$pkgdir"/usr/lib/udev/rules.d - install -Dm644 "$srcdir"/82-ebc-rockchip.rules \ - "$pkgdir"/usr/lib/udev/rules.d - install -Dm644 "$srcdir"/panfrost.conf \ - -t "$pkgdir"/etc/modprobe.d - install -Dm644 "$srcdir"/rockchip_ebc.conf \ - "$pkgdir"/etc/modprobe.d -} - -phosh() { - install_if="$pkgname=$pkgver-r$pkgrel phosh" - depends="postmarketos-theme" - - install -Dm644 "$srcdir"/phoc.ini \ - -t "$subpkgdir"/etc/phosh -} - -nonfree_firmware() { - pkgdesc="WiFi, Bluetooth and display firmware" - depends="firmware-pine64-pinenote linux-firmware" - mkdir "$subpkgdir" -} - -sha512sums=" -5829b9b52206a7520066e4bb3c08c2535d98002a3940664a0239344f5e7522fe7b6a9cb0c0074f9846c7e42c40746f2991f6aeeefeba8efa9140c16630b2893e deviceinfo -473accb3497244742dd9fd15f8a02957a13e08fa4d4393fec185ecbb27f1f17726e4b5ece22da861151f9d358d3266206c647def8aa75adb672b6f1f1904c66f modules-initfs -4bf5158fbd53274a7429e825bb66225001f2403a4851e2d6803323b77d9095738ee3e5340ac85baf3e86bb4f47d38af8cbd78d8a5055c59a62f5b06e722e19cb phoc.ini -1123720962c9c8fec3c50302ca6a3dd56e2907dc9eea361a7b8eb4201b042476633d41a0ee4f6ab61d9c60eeccc894f83491ba9fa309a9bce2f1db0b0341d79d local-overrides.quirks -ac433eebbc35a48561837495997aee4e55510b979bc0d8e3bafb761bc1be5b4bdeed2f456369dcbc582688aefd07c63966b0d72b6ffa99e84cfd868e677f02c8 50-touchscreen.conf -2bc51f200baefc37abfaaad368a911244999e906bdca4b728ac233f49a8fb3ae7206ee3c95cdb20d7dceae2a31d25a57f4e1da4fd67057fd64724b8232e42aed 81-libinput-pinenote.rules -19e922eec89dba419798c4e1dc9b39c040db33986d0969a39a8220c642fa081763f15ff2418115d5a748af4054a1be0784927d1712ea79942c2b237ebab47728 82-ebc-rockchip.rules -6ba6638754e00908243de2f73ed6898dac03638a200dcf7b7cd9684757355ee1eb0ac874af0f971ad2e054c1a8c471867bdaea4d9aaf7eea6d3cf81ac7dd73a2 panfrost.conf -b52d2e7f0c62d7c313b6db9aeb706cdb2596b6aa637aeddb862abf1e256103377fb6267e38cd4285e25d32112acf8d03bbf32ecff7be3dfbb9176209ea7ae283 rockchip_ebc.conf -" diff --git a/pmos/device-pine64-pinenote/deviceinfo b/pmos/device-pine64-pinenote/deviceinfo deleted file mode 100644 index 22b6d1c..0000000 --- a/pmos/device-pine64-pinenote/deviceinfo +++ /dev/null @@ -1,37 +0,0 @@ -# Reference: -# Please use double quotes only. You can source this file in shell -# scripts. - -deviceinfo_format_version="0" -deviceinfo_name="Pine64 PineNote" -deviceinfo_manufacturer="Pine64" -deviceinfo_codename="pine64-pinenote" -deviceinfo_year="2021" -deviceinfo_dtb="rockchip/rk3566-pinenote-v1.2" -deviceinfo_arch="aarch64" -deviceinfo_gpu_accelerated="true" - -# Device related -deviceinfo_chassis="tablet" -deviceinfo_keyboard="false" -deviceinfo_external_storage="false" -deviceinfo_screen_width="1404" -deviceinfo_screen_height="1872" -deviceinfo_getty="ttyS2;1500000" - -# initfs - -# Bootloader related -deviceinfo_flash_method="rkdeveloptool" -deviceinfo_flash_sparse="true" - -deviceinfo_boot_part_start="65536" - -deviceinfo_sd_embed_firmware="u-boot/pine64-pinenote/u-boot-rockchip.bin:1" -deviceinfo_sd_embed_firmware_step_size="32768" - -deviceinfo_flash_rk_partition_kernel="boot" -deviceinfo_flash_rk_partition_rootfs="os1" - -deviceinfo_generate_extlinux_config="true" -deviceinfo_kernel_cmdline="drm.debug=0x0 vt.color=0xf earlycon console=tty0 console=ttyS2,1500000n8 PMOS_FORCE_PARTITION_RESIZE" diff --git a/pmos/device-pine64-pinenote/local-overrides.quirks b/pmos/device-pine64-pinenote/local-overrides.quirks deleted file mode 100644 index 030ca8b..0000000 --- a/pmos/device-pine64-pinenote/local-overrides.quirks +++ /dev/null @@ -1,5 +0,0 @@ -[PineNote] -MatchName=cyttsp5 -AttrPalmPressureThreshold=28 -AttrThumbPressureThreshold=27 -AttrSizeHint=210x157 diff --git a/pmos/device-pine64-pinenote/modules-initfs b/pmos/device-pine64-pinenote/modules-initfs deleted file mode 100644 index 1b49e53..0000000 --- a/pmos/device-pine64-pinenote/modules-initfs +++ /dev/null @@ -1,5 +0,0 @@ -tps65185-regulator -rockchip_ebc -drm_kms_helper -drm_shmem_helper -pvi_waveform diff --git a/pmos/device-pine64-pinenote/panfrost.conf b/pmos/device-pine64-pinenote/panfrost.conf deleted file mode 100644 index 31a1750..0000000 --- a/pmos/device-pine64-pinenote/panfrost.conf +++ /dev/null @@ -1,2 +0,0 @@ -softdep panfrost pre: rockchip_ebc -# blacklist rockchip_ebc diff --git a/pmos/device-pine64-pinenote/phoc.ini b/pmos/device-pine64-pinenote/phoc.ini deleted file mode 100644 index 90d53d8..0000000 --- a/pmos/device-pine64-pinenote/phoc.ini +++ /dev/null @@ -1,6 +0,0 @@ -# /etc/phosh/phoc.ini -# Overwrites values set in /usr/share/phosh/phoc.ini - -# e-ink is an "Unknown" display type for now in mainline -[output:Unknown-1] -scale = 2.0 diff --git a/pmos/device-pine64-pinenote/rockchip_ebc.conf b/pmos/device-pine64-pinenote/rockchip_ebc.conf deleted file mode 100644 index e457ac9..0000000 --- a/pmos/device-pine64-pinenote/rockchip_ebc.conf +++ /dev/null @@ -1,5 +0,0 @@ -# rockchip-rga will crash the kernel on unload at the moment -blacklist rockchip-rga -blacklist ws8100_pen - -options rockchip_ebc direct_mode=0 auto_refresh=1 refresh_threshold=60 split_area_limit=0 panel_reflection=1 prepare_prev_before_a2=0 dclk_select=0 diff --git a/pmos/linux-pine64-pinenote/APKBUILD b/pmos/linux-pine64-pinenote/APKBUILD deleted file mode 100644 index 84f8643..0000000 --- a/pmos/linux-pine64-pinenote/APKBUILD +++ /dev/null @@ -1,59 +0,0 @@ -# Reference: -# Kernel config based on: arch/arm64/configs/(CHANGEME!) - -pkgname=linux-pine64-pinenote -pkgver=6.12.0 -pkgrel=0 -pkgdesc="Pine64 PineNote kernel fork" -arch="aarch64" -_carch="arm64" -_flavor="pine64-pinenote" -url="https://kernel.org" -license="GPL-2.0-only" -options="!strip !check !tracedeps pmb:cross-native" -makedepends=" - bash - bc - bison - devicepkg-dev - findutils - flex - openssl-dev - perl -" - -# Source -_repository="linux" -_commit="9d066a65f5cbaa8cd3bfc73a1b54fbac2d0f76ac" -_config="config-$_flavor.$arch" -source=" - $pkgname-$_commit.tar.gz::https://github.com/m-weigand/linux/archive/$_commit.tar.gz - $_config -" -builddir="$srcdir/$_repository-$_commit" - -prepare() { - default_prepare - REPLACE_GCCH=0 \ - . downstreamkernel_prepare -} - -build() { - unset LDFLAGS - make ARCH="$_carch" CC="${CC:-gcc}" \ - KBUILD_BUILD_VERSION="$((pkgrel + 1 ))-postmarketOS" -} - -package() { - downstreamkernel_package "$builddir" "$pkgdir" "$_carch" "$_flavor" - - make modules_install dtbs_install \ - ARCH="$_carch" \ - INSTALL_MOD_PATH="$pkgdir" \ - INSTALL_DTBS_PATH="$pkgdir/boot/dtbs" -} - -sha512sums=" -d3c2510f9f835a0570fbb812cec2f9e12e402878c1f9f214364ae1918bc4c00f69a1fc5e005cf6b85c0690e6fd5f6ce9e61efd88145a83725ed12b6b8c07b97e linux-pine64-pinenote-9d066a65f5cbaa8cd3bfc73a1b54fbac2d0f76ac.tar.gz -99294bd6c53b1cf3832addbc80ea23b9089bb03463e2a9ebe93ab5feb1b2ff9ee38f158032705429230765bae2df23bb3401ec14902134c80d9dd6e58e188be5 config-pine64-pinenote.aarch64 -" diff --git a/pmos/linux-pine64-pinenote/config-pine64-pinenote.aarch64 b/pmos/linux-pine64-pinenote/config-pine64-pinenote.aarch64 deleted file mode 100644 index 8e3fb39..0000000 --- a/pmos/linux-pine64-pinenote/config-pine64-pinenote.aarch64 +++ /dev/null @@ -1,7666 +0,0 @@ -# -# Automatically generated file; DO NOT EDIT. -# Linux/arm64 6.12.0 Kernel Configuration -# -CONFIG_CC_VERSION_TEXT="aarch64-alpine-linux-musl-gcc (Alpine 14.2.0) 14.2.0" -CONFIG_CC_IS_GCC=y -CONFIG_GCC_VERSION=140200 -CONFIG_CLANG_VERSION=0 -CONFIG_AS_IS_GNU=y -CONFIG_AS_VERSION=24200 -CONFIG_LD_IS_BFD=y -CONFIG_LD_VERSION=24200 -CONFIG_LLD_VERSION=0 -CONFIG_RUSTC_VERSION=0 -CONFIG_RUSTC_LLVM_VERSION=0 -CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y -CONFIG_CC_HAS_ASM_GOTO_TIED_OUTPUT=y -CONFIG_CC_HAS_ASM_INLINE=y -CONFIG_CC_HAS_NO_PROFILE_FN_ATTR=y -CONFIG_PAHOLE_VERSION=0 -CONFIG_IRQ_WORK=y -CONFIG_BUILDTIME_TABLE_SORT=y -CONFIG_THREAD_INFO_IN_TASK=y - -# -# General setup -# -CONFIG_INIT_ENV_ARG_LIMIT=32 -# CONFIG_COMPILE_TEST is not set -# CONFIG_WERROR is not set -CONFIG_LOCALVERSION="" -CONFIG_LOCALVERSION_AUTO=y -CONFIG_BUILD_SALT="" -CONFIG_DEFAULT_INIT="" -CONFIG_DEFAULT_HOSTNAME="pinenote" -CONFIG_SYSVIPC=y -CONFIG_SYSVIPC_SYSCTL=y -CONFIG_SYSVIPC_COMPAT=y -CONFIG_POSIX_MQUEUE=y -CONFIG_POSIX_MQUEUE_SYSCTL=y -# CONFIG_WATCH_QUEUE is not set -CONFIG_CROSS_MEMORY_ATTACH=y -# CONFIG_USELIB is not set -# CONFIG_AUDIT is not set -CONFIG_HAVE_ARCH_AUDITSYSCALL=y - -# -# IRQ subsystem -# -CONFIG_GENERIC_IRQ_PROBE=y -CONFIG_GENERIC_IRQ_SHOW=y -CONFIG_GENERIC_IRQ_SHOW_LEVEL=y -CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y -CONFIG_GENERIC_IRQ_MIGRATION=y -CONFIG_GENERIC_IRQ_INJECTION=y -CONFIG_HARDIRQS_SW_RESEND=y -CONFIG_GENERIC_IRQ_CHIP=y -CONFIG_IRQ_DOMAIN=y -CONFIG_IRQ_DOMAIN_HIERARCHY=y -CONFIG_GENERIC_IRQ_IPI=y -CONFIG_GENERIC_MSI_IRQ=y -CONFIG_IRQ_MSI_IOMMU=y -CONFIG_GENERIC_IRQ_STAT_SNAPSHOT=y -CONFIG_IRQ_FORCED_THREADING=y -CONFIG_SPARSE_IRQ=y -CONFIG_GENERIC_IRQ_DEBUGFS=y -# end of IRQ subsystem - -CONFIG_GENERIC_TIME_VSYSCALL=y -CONFIG_GENERIC_CLOCKEVENTS=y -CONFIG_ARCH_HAS_TICK_BROADCAST=y -CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y -CONFIG_HAVE_POSIX_CPU_TIMERS_TASK_WORK=y -CONFIG_POSIX_CPU_TIMERS_TASK_WORK=y -CONFIG_CONTEXT_TRACKING=y -CONFIG_CONTEXT_TRACKING_IDLE=y - -# -# Timers subsystem -# -CONFIG_TICK_ONESHOT=y -CONFIG_NO_HZ_COMMON=y -# CONFIG_HZ_PERIODIC is not set -CONFIG_NO_HZ_IDLE=y -# CONFIG_NO_HZ_FULL is not set -# CONFIG_NO_HZ is not set -CONFIG_HIGH_RES_TIMERS=y -# end of Timers subsystem - -CONFIG_BPF=y -CONFIG_HAVE_EBPF_JIT=y -CONFIG_ARCH_WANT_DEFAULT_BPF_JIT=y - -# -# BPF subsystem -# -CONFIG_BPF_SYSCALL=y -CONFIG_BPF_JIT=y -CONFIG_BPF_JIT_ALWAYS_ON=y -CONFIG_BPF_JIT_DEFAULT_ON=y -CONFIG_BPF_UNPRIV_DEFAULT_OFF=y -# CONFIG_BPF_PRELOAD is not set -# end of BPF subsystem - -CONFIG_PREEMPT_NONE_BUILD=y -CONFIG_PREEMPT_NONE=y -# CONFIG_PREEMPT_VOLUNTARY is not set -# CONFIG_PREEMPT is not set -# CONFIG_PREEMPT_RT is not set -# CONFIG_PREEMPT_DYNAMIC is not set - -# -# CPU/Task time and stats accounting -# -CONFIG_TICK_CPU_ACCOUNTING=y -# CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set -CONFIG_IRQ_TIME_ACCOUNTING=y -CONFIG_HAVE_SCHED_AVG_IRQ=y -CONFIG_SCHED_HW_PRESSURE=y -CONFIG_BSD_PROCESS_ACCT=y -CONFIG_BSD_PROCESS_ACCT_V3=y -CONFIG_TASKSTATS=y -CONFIG_TASK_DELAY_ACCT=y -CONFIG_TASK_XACCT=y -CONFIG_TASK_IO_ACCOUNTING=y -CONFIG_PSI=y -CONFIG_PSI_DEFAULT_DISABLED=y -# end of CPU/Task time and stats accounting - -CONFIG_CPU_ISOLATION=y - -# -# RCU Subsystem -# -CONFIG_TREE_RCU=y -# CONFIG_RCU_EXPERT is not set -CONFIG_TREE_SRCU=y -CONFIG_TASKS_RCU_GENERIC=y -CONFIG_NEED_TASKS_RCU=y -CONFIG_TASKS_RUDE_RCU=y -CONFIG_TASKS_TRACE_RCU=y -CONFIG_RCU_STALL_COMMON=y -CONFIG_RCU_NEED_SEGCBLIST=y -# end of RCU Subsystem - -CONFIG_IKCONFIG=m -CONFIG_IKCONFIG_PROC=y -# CONFIG_IKHEADERS is not set -CONFIG_LOG_BUF_SHIFT=18 -CONFIG_LOG_CPU_MAX_BUF_SHIFT=0 -# CONFIG_PRINTK_INDEX is not set -CONFIG_GENERIC_SCHED_CLOCK=y - -# -# Scheduler features -# -# CONFIG_UCLAMP_TASK is not set -# end of Scheduler features - -CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y -CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH=y -CONFIG_CC_HAS_INT128=y -CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5" -CONFIG_GCC10_NO_ARRAY_BOUNDS=y -CONFIG_CC_NO_ARRAY_BOUNDS=y -CONFIG_GCC_NO_STRINGOP_OVERFLOW=y -CONFIG_CC_NO_STRINGOP_OVERFLOW=y -CONFIG_ARCH_SUPPORTS_INT128=y -CONFIG_SLAB_OBJ_EXT=y -CONFIG_CGROUPS=y -CONFIG_PAGE_COUNTER=y -# CONFIG_CGROUP_FAVOR_DYNMODS is not set -CONFIG_MEMCG=y -# CONFIG_MEMCG_V1 is not set -CONFIG_BLK_CGROUP=y -CONFIG_CGROUP_WRITEBACK=y -CONFIG_CGROUP_SCHED=y -CONFIG_GROUP_SCHED_WEIGHT=y -CONFIG_FAIR_GROUP_SCHED=y -CONFIG_CFS_BANDWIDTH=y -CONFIG_RT_GROUP_SCHED=y -CONFIG_SCHED_MM_CID=y -CONFIG_CGROUP_PIDS=y -CONFIG_CGROUP_RDMA=y -CONFIG_CGROUP_FREEZER=y -CONFIG_CGROUP_HUGETLB=y -CONFIG_CPUSETS=y -# CONFIG_CPUSETS_V1 is not set -# CONFIG_PROC_PID_CPUSET is not set -CONFIG_CGROUP_DEVICE=y -CONFIG_CGROUP_CPUACCT=y -CONFIG_CGROUP_PERF=y -CONFIG_CGROUP_BPF=y -CONFIG_CGROUP_MISC=y -# CONFIG_CGROUP_DEBUG is not set -CONFIG_SOCK_CGROUP_DATA=y -CONFIG_NAMESPACES=y -CONFIG_UTS_NS=y -CONFIG_TIME_NS=y -CONFIG_IPC_NS=y -CONFIG_USER_NS=y -CONFIG_PID_NS=y -CONFIG_NET_NS=y -CONFIG_CHECKPOINT_RESTORE=y -# CONFIG_SCHED_AUTOGROUP is not set -# CONFIG_RELAY is not set -CONFIG_BLK_DEV_INITRD=y -CONFIG_INITRAMFS_SOURCE="" -CONFIG_RD_GZIP=y -# CONFIG_RD_BZIP2 is not set -# CONFIG_RD_LZMA is not set -# CONFIG_RD_XZ is not set -# CONFIG_RD_LZO is not set -# CONFIG_RD_LZ4 is not set -CONFIG_RD_ZSTD=y -# CONFIG_BOOT_CONFIG is not set -CONFIG_INITRAMFS_PRESERVE_MTIME=y -CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y -# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set -CONFIG_LD_ORPHAN_WARN=y -CONFIG_LD_ORPHAN_WARN_LEVEL="warn" -CONFIG_SYSCTL=y -CONFIG_HAVE_UID16=y -CONFIG_SYSCTL_EXCEPTION_TRACE=y -CONFIG_EXPERT=y -# CONFIG_UID16 is not set -CONFIG_MULTIUSER=y -# CONFIG_SGETMASK_SYSCALL is not set -# CONFIG_SYSFS_SYSCALL is not set -CONFIG_FHANDLE=y -CONFIG_POSIX_TIMERS=y -CONFIG_PRINTK=y -CONFIG_BUG=y -# CONFIG_BASE_SMALL is not set -CONFIG_FUTEX=y -CONFIG_FUTEX_PI=y -CONFIG_EPOLL=y -CONFIG_SIGNALFD=y -CONFIG_TIMERFD=y -CONFIG_EVENTFD=y -CONFIG_SHMEM=y -CONFIG_AIO=y -CONFIG_IO_URING=y -CONFIG_ADVISE_SYSCALLS=y -CONFIG_MEMBARRIER=y -CONFIG_KCMP=y -CONFIG_RSEQ=y -# CONFIG_DEBUG_RSEQ is not set -CONFIG_CACHESTAT_SYSCALL=y -# CONFIG_PC104 is not set -CONFIG_KALLSYMS=y -# CONFIG_KALLSYMS_SELFTEST is not set -CONFIG_KALLSYMS_ALL=y -CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y -CONFIG_HAVE_PERF_EVENTS=y - -# -# Kernel Performance Events And Counters -# -CONFIG_PERF_EVENTS=y -# CONFIG_DEBUG_PERF_USE_VMALLOC is not set -# end of Kernel Performance Events And Counters - -# CONFIG_PROFILING is not set -CONFIG_TRACEPOINTS=y - -# -# Kexec and crash features -# -CONFIG_CRASH_RESERVE=y -CONFIG_VMCORE_INFO=y -CONFIG_KEXEC_CORE=y -CONFIG_KEXEC=y -CONFIG_KEXEC_FILE=y -# CONFIG_KEXEC_SIG is not set -CONFIG_CRASH_DUMP=y -# end of Kexec and crash features -# end of General setup - -CONFIG_ARM64=y -CONFIG_RUSTC_SUPPORTS_ARM64=y -CONFIG_GCC_SUPPORTS_DYNAMIC_FTRACE_WITH_ARGS=y -CONFIG_64BIT=y -CONFIG_MMU=y -CONFIG_ARM64_CONT_PTE_SHIFT=4 -CONFIG_ARM64_CONT_PMD_SHIFT=4 -CONFIG_ARCH_MMAP_RND_BITS_MIN=18 -CONFIG_ARCH_MMAP_RND_BITS_MAX=18 -CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=11 -CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=16 -CONFIG_STACKTRACE_SUPPORT=y -CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000 -CONFIG_LOCKDEP_SUPPORT=y -CONFIG_GENERIC_BUG=y -CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y -CONFIG_GENERIC_HWEIGHT=y -CONFIG_GENERIC_CSUM=y -CONFIG_GENERIC_CALIBRATE_DELAY=y -CONFIG_SMP=y -CONFIG_KERNEL_MODE_NEON=y -CONFIG_FIX_EARLYCON_MEM=y -CONFIG_PGTABLE_LEVELS=5 -CONFIG_ARCH_SUPPORTS_UPROBES=y -CONFIG_ARCH_PROC_KCORE_TEXT=y -CONFIG_BUILTIN_RETURN_ADDRESS_STRIPS_PAC=y - -# -# Platform selection -# -# CONFIG_ARCH_ACTIONS is not set -# CONFIG_ARCH_AIROHA is not set -# CONFIG_ARCH_SUNXI is not set -# CONFIG_ARCH_ALPINE is not set -# CONFIG_ARCH_APPLE is not set -# CONFIG_ARCH_BCM is not set -# CONFIG_ARCH_BERLIN is not set -# CONFIG_ARCH_BITMAIN is not set -# CONFIG_ARCH_EXYNOS is not set -# CONFIG_ARCH_SPARX5 is not set -# CONFIG_ARCH_K3 is not set -# CONFIG_ARCH_LG1K is not set -# CONFIG_ARCH_HISI is not set -# CONFIG_ARCH_KEEMBAY is not set -# CONFIG_ARCH_MEDIATEK is not set -# CONFIG_ARCH_MESON is not set -# CONFIG_ARCH_MVEBU is not set -# CONFIG_ARCH_NXP is not set -# CONFIG_ARCH_MA35 is not set -# CONFIG_ARCH_NPCM is not set -# CONFIG_ARCH_PENSANDO is not set -# CONFIG_ARCH_QCOM is not set -# CONFIG_ARCH_REALTEK is not set -# CONFIG_ARCH_RENESAS is not set -CONFIG_ARCH_ROCKCHIP=y -# CONFIG_ARCH_SEATTLE is not set -# CONFIG_ARCH_INTEL_SOCFPGA is not set -# CONFIG_ARCH_STM32 is not set -# CONFIG_ARCH_SYNQUACER is not set -# CONFIG_ARCH_TEGRA is not set -# CONFIG_ARCH_SPRD is not set -# CONFIG_ARCH_THUNDER is not set -# CONFIG_ARCH_THUNDER2 is not set -# CONFIG_ARCH_UNIPHIER is not set -# CONFIG_ARCH_VEXPRESS is not set -# CONFIG_ARCH_VISCONTI is not set -# CONFIG_ARCH_XGENE is not set -# CONFIG_ARCH_ZYNQMP is not set -# end of Platform selection - -# -# Kernel Features -# - -# -# ARM errata workarounds via the alternatives framework -# -CONFIG_AMPERE_ERRATUM_AC03_CPU_38=y -# CONFIG_ARM64_ERRATUM_826319 is not set -# CONFIG_ARM64_ERRATUM_827319 is not set -# CONFIG_ARM64_ERRATUM_824069 is not set -# CONFIG_ARM64_ERRATUM_819472 is not set -# CONFIG_ARM64_ERRATUM_832075 is not set -CONFIG_ARM64_ERRATUM_1742098=y -# CONFIG_ARM64_ERRATUM_845719 is not set -# CONFIG_ARM64_ERRATUM_843419 is not set -CONFIG_ARM64_LD_HAS_FIX_ERRATUM_843419=y -CONFIG_ARM64_ERRATUM_1024718=y -# CONFIG_ARM64_ERRATUM_1418040 is not set -CONFIG_ARM64_WORKAROUND_SPECULATIVE_AT=y -# CONFIG_ARM64_ERRATUM_1165522 is not set -# CONFIG_ARM64_ERRATUM_1319367 is not set -CONFIG_ARM64_ERRATUM_1530923=y -# CONFIG_ARM64_ERRATUM_2441007 is not set -# CONFIG_ARM64_ERRATUM_1286807 is not set -# CONFIG_ARM64_ERRATUM_1463225 is not set -# CONFIG_ARM64_ERRATUM_1542419 is not set -# CONFIG_ARM64_ERRATUM_1508412 is not set -# CONFIG_ARM64_ERRATUM_2051678 is not set -CONFIG_ARM64_ERRATUM_2077057=y -CONFIG_ARM64_ERRATUM_2658417=y -# CONFIG_ARM64_ERRATUM_2054223 is not set -# CONFIG_ARM64_ERRATUM_2067961 is not set -# CONFIG_ARM64_ERRATUM_2441009 is not set -CONFIG_ARM64_ERRATUM_2645198=y -CONFIG_ARM64_WORKAROUND_SPECULATIVE_UNPRIV_LOAD=y -CONFIG_ARM64_ERRATUM_2966298=y -CONFIG_ARM64_ERRATUM_3117295=y -CONFIG_ARM64_ERRATUM_3194386=y -# CONFIG_CAVIUM_ERRATUM_22375 is not set -# CONFIG_CAVIUM_ERRATUM_23154 is not set -# CONFIG_CAVIUM_ERRATUM_27456 is not set -# CONFIG_CAVIUM_ERRATUM_30115 is not set -# CONFIG_CAVIUM_TX2_ERRATUM_219 is not set -# CONFIG_FUJITSU_ERRATUM_010001 is not set -# CONFIG_HISILICON_ERRATUM_161600802 is not set -# CONFIG_QCOM_FALKOR_ERRATUM_1003 is not set -# CONFIG_QCOM_FALKOR_ERRATUM_1009 is not set -# CONFIG_QCOM_QDF2400_ERRATUM_0065 is not set -# CONFIG_QCOM_FALKOR_ERRATUM_E1041 is not set -# CONFIG_NVIDIA_CARMEL_CNP_ERRATUM is not set -CONFIG_ROCKCHIP_ERRATUM_3588001=y -# CONFIG_SOCIONEXT_SYNQUACER_PREITS is not set -# end of ARM errata workarounds via the alternatives framework - -CONFIG_ARM64_4K_PAGES=y -# CONFIG_ARM64_16K_PAGES is not set -# CONFIG_ARM64_64K_PAGES is not set -# CONFIG_ARM64_VA_BITS_39 is not set -# CONFIG_ARM64_VA_BITS_48 is not set -CONFIG_ARM64_VA_BITS_52=y -# CONFIG_ARM64_FORCE_52BIT is not set -CONFIG_ARM64_VA_BITS=52 -CONFIG_ARM64_PA_BITS_52=y -CONFIG_ARM64_PA_BITS=52 -CONFIG_ARM64_LPA2=y -# CONFIG_CPU_BIG_ENDIAN is not set -CONFIG_CPU_LITTLE_ENDIAN=y -CONFIG_SCHED_MC=y -# CONFIG_SCHED_CLUSTER is not set -# CONFIG_SCHED_SMT is not set -CONFIG_NR_CPUS=4 -CONFIG_HOTPLUG_CPU=y -# CONFIG_NUMA is not set -# CONFIG_HZ_100 is not set -# CONFIG_HZ_250 is not set -# CONFIG_HZ_300 is not set -CONFIG_HZ_1000=y -CONFIG_HZ=1000 -CONFIG_SCHED_HRTICK=y -CONFIG_ARCH_SPARSEMEM_ENABLE=y -CONFIG_HW_PERF_EVENTS=y -CONFIG_CC_HAVE_SHADOW_CALL_STACK=y -# CONFIG_PARAVIRT is not set -# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set -CONFIG_ARCH_SUPPORTS_KEXEC=y -CONFIG_ARCH_SUPPORTS_KEXEC_FILE=y -CONFIG_ARCH_SELECTS_KEXEC_FILE=y -CONFIG_ARCH_SUPPORTS_KEXEC_SIG=y -CONFIG_ARCH_SUPPORTS_KEXEC_IMAGE_VERIFY_SIG=y -CONFIG_ARCH_DEFAULT_KEXEC_IMAGE_VERIFY_SIG=y -CONFIG_ARCH_SUPPORTS_CRASH_DUMP=y -CONFIG_ARCH_DEFAULT_CRASH_DUMP=y -CONFIG_ARCH_HAS_GENERIC_CRASHKERNEL_RESERVATION=y -CONFIG_TRANS_TABLE=y -# CONFIG_XEN is not set -CONFIG_ARCH_FORCE_MAX_ORDER=10 -# CONFIG_UNMAP_KERNEL_AT_EL0 is not set -CONFIG_MITIGATE_SPECTRE_BRANCH_HISTORY=y -CONFIG_RODATA_FULL_DEFAULT_ENABLED=y -# CONFIG_ARM64_SW_TTBR0_PAN is not set -# CONFIG_ARM64_TAGGED_ADDR_ABI is not set -CONFIG_COMPAT=y -CONFIG_KUSER_HELPERS=y -# CONFIG_COMPAT_ALIGNMENT_FIXUPS is not set -CONFIG_ARMV8_DEPRECATED=y -# CONFIG_SWP_EMULATION is not set -CONFIG_CP15_BARRIER_EMULATION=y -# CONFIG_SETEND_EMULATION is not set - -# -# ARMv8.1 architectural features -# -# CONFIG_ARM64_HW_AFDBM is not set -CONFIG_ARM64_PAN=y -CONFIG_AS_HAS_LSE_ATOMICS=y -CONFIG_ARM64_LSE_ATOMICS=y -CONFIG_ARM64_USE_LSE_ATOMICS=y -# end of ARMv8.1 architectural features - -# -# ARMv8.2 architectural features -# -CONFIG_AS_HAS_ARMV8_2=y -CONFIG_AS_HAS_SHA3=y -# CONFIG_ARM64_PMEM is not set -CONFIG_ARM64_RAS_EXTN=y -CONFIG_ARM64_CNP=y -# end of ARMv8.2 architectural features - -# -# ARMv8.3 architectural features -# -# CONFIG_ARM64_PTR_AUTH is not set -CONFIG_CC_HAS_BRANCH_PROT_PAC_RET=y -CONFIG_CC_HAS_SIGN_RETURN_ADDRESS=y -CONFIG_AS_HAS_ARMV8_3=y -CONFIG_AS_HAS_CFI_NEGATE_RA_STATE=y -CONFIG_AS_HAS_LDAPR=y -# end of ARMv8.3 architectural features - -# -# ARMv8.4 architectural features -# -# CONFIG_ARM64_AMU_EXTN is not set -CONFIG_AS_HAS_ARMV8_4=y -CONFIG_ARM64_TLB_RANGE=y -# end of ARMv8.4 architectural features - -# -# ARMv8.5 architectural features -# -CONFIG_AS_HAS_ARMV8_5=y -# CONFIG_ARM64_BTI is not set -CONFIG_CC_HAS_BRANCH_PROT_PAC_RET_BTI=y -# CONFIG_ARM64_E0PD is not set -CONFIG_ARM64_AS_HAS_MTE=y -# end of ARMv8.5 architectural features - -# -# ARMv8.7 architectural features -# -# CONFIG_ARM64_EPAN is not set -# end of ARMv8.7 architectural features - -# -# ARMv8.9 architectural features -# -CONFIG_ARM64_POE=y -CONFIG_ARCH_PKEY_BITS=3 -# end of ARMv8.9 architectural features - -# CONFIG_ARM64_SVE is not set -# CONFIG_ARM64_PSEUDO_NMI is not set -CONFIG_RELOCATABLE=y -# CONFIG_RANDOMIZE_BASE is not set -CONFIG_CC_HAVE_STACKPROTECTOR_SYSREG=y -# end of Kernel Features - -# -# Boot options -# -CONFIG_CMDLINE="" -CONFIG_EFI_STUB=y -CONFIG_EFI=y -# CONFIG_COMPRESSED_INSTALL is not set -CONFIG_DMI=y -# end of Boot options - -# -# Power management options -# -CONFIG_SUSPEND=y -CONFIG_SUSPEND_FREEZER=y -# CONFIG_SUSPEND_SKIP_SYNC is not set -CONFIG_PM_SLEEP=y -CONFIG_PM_SLEEP_SMP=y -CONFIG_PM_AUTOSLEEP=y -# CONFIG_PM_USERSPACE_AUTOSLEEP is not set -CONFIG_PM_WAKELOCKS=y -CONFIG_PM_WAKELOCKS_LIMIT=100 -CONFIG_PM_WAKELOCKS_GC=y -CONFIG_PM=y -CONFIG_PM_DEBUG=y -CONFIG_PM_ADVANCED_DEBUG=y -CONFIG_PM_TEST_SUSPEND=y -CONFIG_PM_SLEEP_DEBUG=y -CONFIG_PM_CLK=y -CONFIG_PM_GENERIC_DOMAINS=y -CONFIG_WQ_POWER_EFFICIENT_DEFAULT=y -CONFIG_PM_GENERIC_DOMAINS_SLEEP=y -CONFIG_PM_GENERIC_DOMAINS_OF=y -CONFIG_CPU_PM=y -CONFIG_ENERGY_MODEL=y -CONFIG_ARCH_HIBERNATION_POSSIBLE=y -CONFIG_ARCH_SUSPEND_POSSIBLE=y -# end of Power management options - -# -# CPU Power Management -# - -# -# CPU Idle -# -CONFIG_CPU_IDLE=y -CONFIG_CPU_IDLE_MULTIPLE_DRIVERS=y -# CONFIG_CPU_IDLE_GOV_LADDER is not set -CONFIG_CPU_IDLE_GOV_MENU=y -CONFIG_CPU_IDLE_GOV_TEO=y -CONFIG_DT_IDLE_STATES=y -CONFIG_DT_IDLE_GENPD=y - -# -# ARM CPU Idle Drivers -# -CONFIG_ARM_PSCI_CPUIDLE=y -CONFIG_ARM_PSCI_CPUIDLE_DOMAIN=y -# end of ARM CPU Idle Drivers -# end of CPU Idle - -# -# CPU Frequency scaling -# -CONFIG_CPU_FREQ=y -CONFIG_CPU_FREQ_GOV_ATTR_SET=y -CONFIG_CPU_FREQ_GOV_COMMON=y -CONFIG_CPU_FREQ_STAT=y -# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set -# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set -# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set -# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set -# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set -CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL=y -CONFIG_CPU_FREQ_GOV_PERFORMANCE=y -CONFIG_CPU_FREQ_GOV_POWERSAVE=y -CONFIG_CPU_FREQ_GOV_USERSPACE=y -CONFIG_CPU_FREQ_GOV_ONDEMAND=y -CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y -CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y - -# -# CPU frequency scaling drivers -# -CONFIG_CPUFREQ_DT=y -CONFIG_CPUFREQ_DT_PLATDEV=y -CONFIG_ARM_SCMI_CPUFREQ=y -# end of CPU Frequency scaling -# end of CPU Power Management - -CONFIG_ARCH_SUPPORTS_ACPI=y -# CONFIG_ACPI is not set -# CONFIG_VIRTUALIZATION is not set -CONFIG_CPU_MITIGATIONS=y - -# -# General architecture-dependent options -# -CONFIG_HOTPLUG_CORE_SYNC=y -CONFIG_HOTPLUG_CORE_SYNC_DEAD=y -# CONFIG_KPROBES is not set -CONFIG_JUMP_LABEL=y -# CONFIG_STATIC_KEYS_SELFTEST is not set -CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y -CONFIG_HAVE_IOREMAP_PROT=y -CONFIG_HAVE_KPROBES=y -CONFIG_HAVE_KRETPROBES=y -CONFIG_ARCH_CORRECT_STACKTRACE_ON_KRETPROBE=y -CONFIG_HAVE_FUNCTION_ERROR_INJECTION=y -CONFIG_HAVE_NMI=y -CONFIG_TRACE_IRQFLAGS_SUPPORT=y -CONFIG_TRACE_IRQFLAGS_NMI_SUPPORT=y -CONFIG_HAVE_ARCH_TRACEHOOK=y -CONFIG_HAVE_DMA_CONTIGUOUS=y -CONFIG_GENERIC_SMP_IDLE_THREAD=y -CONFIG_GENERIC_IDLE_POLL_SETUP=y -CONFIG_ARCH_HAS_FORTIFY_SOURCE=y -CONFIG_ARCH_HAS_KEEPINITRD=y -CONFIG_ARCH_HAS_SET_MEMORY=y -CONFIG_ARCH_HAS_SET_DIRECT_MAP=y -CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y -CONFIG_ARCH_WANTS_NO_INSTR=y -CONFIG_HAVE_ASM_MODVERSIONS=y -CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y -CONFIG_HAVE_RSEQ=y -CONFIG_HAVE_RUST=y -CONFIG_HAVE_FUNCTION_ARG_ACCESS_API=y -CONFIG_HAVE_HW_BREAKPOINT=y -CONFIG_HAVE_PERF_REGS=y -CONFIG_HAVE_PERF_USER_STACK_DUMP=y -CONFIG_HAVE_ARCH_JUMP_LABEL=y -CONFIG_HAVE_ARCH_JUMP_LABEL_RELATIVE=y -CONFIG_MMU_GATHER_TABLE_FREE=y -CONFIG_MMU_GATHER_RCU_TABLE_FREE=y -CONFIG_MMU_LAZY_TLB_REFCOUNT=y -CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y -CONFIG_ARCH_HAS_NMI_SAFE_THIS_CPU_OPS=y -CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y -CONFIG_HAVE_CMPXCHG_LOCAL=y -CONFIG_HAVE_CMPXCHG_DOUBLE=y -CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION=y -CONFIG_HAVE_ARCH_SECCOMP=y -CONFIG_HAVE_ARCH_SECCOMP_FILTER=y -CONFIG_SECCOMP=y -CONFIG_SECCOMP_FILTER=y -# CONFIG_SECCOMP_CACHE_DEBUG is not set -CONFIG_HAVE_ARCH_STACKLEAK=y -CONFIG_HAVE_STACKPROTECTOR=y -# CONFIG_STACKPROTECTOR is not set -CONFIG_ARCH_SUPPORTS_SHADOW_CALL_STACK=y -# CONFIG_SHADOW_CALL_STACK is not set -CONFIG_ARCH_SUPPORTS_LTO_CLANG=y -CONFIG_ARCH_SUPPORTS_LTO_CLANG_THIN=y -CONFIG_LTO_NONE=y -CONFIG_ARCH_SUPPORTS_CFI_CLANG=y -CONFIG_HAVE_CONTEXT_TRACKING_USER=y -CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y -CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y -CONFIG_HAVE_MOVE_PUD=y -CONFIG_HAVE_MOVE_PMD=y -CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y -CONFIG_HAVE_ARCH_HUGE_VMAP=y -CONFIG_HAVE_ARCH_HUGE_VMALLOC=y -CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y -CONFIG_HAVE_MOD_ARCH_SPECIFIC=y -CONFIG_MODULES_USE_ELF_RELA=y -CONFIG_ARCH_WANTS_EXECMEM_LATE=y -CONFIG_HAVE_SOFTIRQ_ON_OWN_STACK=y -CONFIG_SOFTIRQ_ON_OWN_STACK=y -CONFIG_ARCH_HAS_ELF_RANDOMIZE=y -CONFIG_HAVE_ARCH_MMAP_RND_BITS=y -CONFIG_ARCH_MMAP_RND_BITS=18 -CONFIG_HAVE_ARCH_MMAP_RND_COMPAT_BITS=y -CONFIG_ARCH_MMAP_RND_COMPAT_BITS=11 -CONFIG_HAVE_PAGE_SIZE_4KB=y -CONFIG_PAGE_SIZE_4KB=y -CONFIG_PAGE_SIZE_LESS_THAN_64KB=y -CONFIG_PAGE_SIZE_LESS_THAN_256KB=y -CONFIG_PAGE_SHIFT=12 -CONFIG_ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT=y -CONFIG_CLONE_BACKWARDS=y -CONFIG_OLD_SIGSUSPEND3=y -CONFIG_COMPAT_OLD_SIGACTION=y -CONFIG_COMPAT_32BIT_TIME=y -CONFIG_ARCH_SUPPORTS_RT=y -CONFIG_HAVE_ARCH_VMAP_STACK=y -CONFIG_VMAP_STACK=y -CONFIG_HAVE_ARCH_RANDOMIZE_KSTACK_OFFSET=y -CONFIG_RANDOMIZE_KSTACK_OFFSET=y -# CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT is not set -CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y -CONFIG_STRICT_KERNEL_RWX=y -CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y -CONFIG_STRICT_MODULE_RWX=y -CONFIG_HAVE_ARCH_COMPILER_H=y -CONFIG_HAVE_ARCH_PREL32_RELOCATIONS=y -CONFIG_ARCH_USE_MEMREMAP_PROT=y -# CONFIG_LOCK_EVENT_COUNTS is not set -CONFIG_ARCH_HAS_RELR=y -CONFIG_ARCH_HAS_MEM_ENCRYPT=y -CONFIG_HAVE_PREEMPT_DYNAMIC=y -CONFIG_HAVE_PREEMPT_DYNAMIC_KEY=y -CONFIG_ARCH_WANT_LD_ORPHAN_WARN=y -CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y -CONFIG_ARCH_SUPPORTS_PAGE_TABLE_CHECK=y -CONFIG_ARCH_HAVE_TRACE_MMIO_ACCESS=y -CONFIG_ARCH_HAS_HW_PTE_YOUNG=y -CONFIG_ARCH_HAS_KERNEL_FPU_SUPPORT=y - -# -# GCOV-based kernel profiling -# -# CONFIG_GCOV_KERNEL is not set -CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y -# end of GCOV-based kernel profiling - -CONFIG_HAVE_GCC_PLUGINS=y -CONFIG_GCC_PLUGINS=y -# CONFIG_GCC_PLUGIN_LATENT_ENTROPY is not set -CONFIG_FUNCTION_ALIGNMENT_4B=y -CONFIG_FUNCTION_ALIGNMENT_8B=y -CONFIG_FUNCTION_ALIGNMENT=8 -CONFIG_CC_HAS_MIN_FUNCTION_ALIGNMENT=y -CONFIG_CC_HAS_SANE_FUNCTION_ALIGNMENT=y -# end of General architecture-dependent options - -CONFIG_RT_MUTEXES=y -CONFIG_MODULES=y -# CONFIG_MODULE_DEBUG is not set -CONFIG_MODULE_FORCE_LOAD=y -CONFIG_MODULE_UNLOAD=y -CONFIG_MODULE_FORCE_UNLOAD=y -# CONFIG_MODULE_UNLOAD_TAINT_TRACKING is not set -CONFIG_MODVERSIONS=y -CONFIG_ASM_MODVERSIONS=y -# CONFIG_MODULE_SRCVERSION_ALL is not set -# CONFIG_MODULE_SIG is not set -# CONFIG_MODULE_COMPRESS is not set -# CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set -CONFIG_MODPROBE_PATH="/sbin/modprobe" -# CONFIG_TRIM_UNUSED_KSYMS is not set -CONFIG_MODULES_TREE_LOOKUP=y -CONFIG_BLOCK=y -CONFIG_BLOCK_LEGACY_AUTOLOAD=y -CONFIG_BLK_CGROUP_RWSTAT=y -CONFIG_BLK_CGROUP_PUNT_BIO=y -CONFIG_BLK_DEV_BSG_COMMON=m -CONFIG_BLK_ICQ=y -# CONFIG_BLK_DEV_BSGLIB is not set -# CONFIG_BLK_DEV_INTEGRITY is not set -CONFIG_BLK_DEV_WRITE_MOUNTED=y -# CONFIG_BLK_DEV_ZONED is not set -CONFIG_BLK_DEV_THROTTLING=y -# CONFIG_BLK_WBT is not set -# CONFIG_BLK_CGROUP_IOLATENCY is not set -# CONFIG_BLK_CGROUP_IOCOST is not set -# CONFIG_BLK_CGROUP_IOPRIO is not set -# CONFIG_BLK_DEBUG_FS is not set -# CONFIG_BLK_SED_OPAL is not set -# CONFIG_BLK_INLINE_ENCRYPTION is not set - -# -# Partition Types -# -# CONFIG_PARTITION_ADVANCED is not set -CONFIG_MSDOS_PARTITION=y -CONFIG_EFI_PARTITION=y -# end of Partition Types - -CONFIG_BLK_MQ_PCI=y -CONFIG_BLK_PM=y -CONFIG_BLOCK_HOLDER_DEPRECATED=y -CONFIG_BLK_MQ_STACKING=y - -# -# IO Schedulers -# -# CONFIG_MQ_IOSCHED_DEADLINE is not set -# CONFIG_MQ_IOSCHED_KYBER is not set -CONFIG_IOSCHED_BFQ=y -CONFIG_BFQ_GROUP_IOSCHED=y -# CONFIG_BFQ_CGROUP_DEBUG is not set -# end of IO Schedulers - -CONFIG_PADATA=y -CONFIG_ASN1=m -CONFIG_ARCH_INLINE_SPIN_TRYLOCK=y -CONFIG_ARCH_INLINE_SPIN_TRYLOCK_BH=y -CONFIG_ARCH_INLINE_SPIN_LOCK=y -CONFIG_ARCH_INLINE_SPIN_LOCK_BH=y -CONFIG_ARCH_INLINE_SPIN_LOCK_IRQ=y -CONFIG_ARCH_INLINE_SPIN_LOCK_IRQSAVE=y -CONFIG_ARCH_INLINE_SPIN_UNLOCK=y -CONFIG_ARCH_INLINE_SPIN_UNLOCK_BH=y -CONFIG_ARCH_INLINE_SPIN_UNLOCK_IRQ=y -CONFIG_ARCH_INLINE_SPIN_UNLOCK_IRQRESTORE=y -CONFIG_ARCH_INLINE_READ_LOCK=y -CONFIG_ARCH_INLINE_READ_LOCK_BH=y -CONFIG_ARCH_INLINE_READ_LOCK_IRQ=y -CONFIG_ARCH_INLINE_READ_LOCK_IRQSAVE=y -CONFIG_ARCH_INLINE_READ_UNLOCK=y -CONFIG_ARCH_INLINE_READ_UNLOCK_BH=y -CONFIG_ARCH_INLINE_READ_UNLOCK_IRQ=y -CONFIG_ARCH_INLINE_READ_UNLOCK_IRQRESTORE=y -CONFIG_ARCH_INLINE_WRITE_LOCK=y -CONFIG_ARCH_INLINE_WRITE_LOCK_BH=y -CONFIG_ARCH_INLINE_WRITE_LOCK_IRQ=y -CONFIG_ARCH_INLINE_WRITE_LOCK_IRQSAVE=y -CONFIG_ARCH_INLINE_WRITE_UNLOCK=y -CONFIG_ARCH_INLINE_WRITE_UNLOCK_BH=y -CONFIG_ARCH_INLINE_WRITE_UNLOCK_IRQ=y -CONFIG_ARCH_INLINE_WRITE_UNLOCK_IRQRESTORE=y -CONFIG_INLINE_SPIN_TRYLOCK=y -CONFIG_INLINE_SPIN_TRYLOCK_BH=y -CONFIG_INLINE_SPIN_LOCK=y -CONFIG_INLINE_SPIN_LOCK_BH=y -CONFIG_INLINE_SPIN_LOCK_IRQ=y -CONFIG_INLINE_SPIN_LOCK_IRQSAVE=y -CONFIG_INLINE_SPIN_UNLOCK_BH=y -CONFIG_INLINE_SPIN_UNLOCK_IRQ=y -CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE=y -CONFIG_INLINE_READ_LOCK=y -CONFIG_INLINE_READ_LOCK_BH=y -CONFIG_INLINE_READ_LOCK_IRQ=y -CONFIG_INLINE_READ_LOCK_IRQSAVE=y -CONFIG_INLINE_READ_UNLOCK=y -CONFIG_INLINE_READ_UNLOCK_BH=y -CONFIG_INLINE_READ_UNLOCK_IRQ=y -CONFIG_INLINE_READ_UNLOCK_IRQRESTORE=y -CONFIG_INLINE_WRITE_LOCK=y -CONFIG_INLINE_WRITE_LOCK_BH=y -CONFIG_INLINE_WRITE_LOCK_IRQ=y -CONFIG_INLINE_WRITE_LOCK_IRQSAVE=y -CONFIG_INLINE_WRITE_UNLOCK=y -CONFIG_INLINE_WRITE_UNLOCK_BH=y -CONFIG_INLINE_WRITE_UNLOCK_IRQ=y -CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE=y -CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y -CONFIG_MUTEX_SPIN_ON_OWNER=y -CONFIG_RWSEM_SPIN_ON_OWNER=y -CONFIG_LOCK_SPIN_ON_OWNER=y -CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y -CONFIG_QUEUED_SPINLOCKS=y -CONFIG_ARCH_USE_QUEUED_RWLOCKS=y -CONFIG_QUEUED_RWLOCKS=y -CONFIG_ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE=y -CONFIG_ARCH_HAS_SYSCALL_WRAPPER=y -CONFIG_FREEZER=y - -# -# Executable file formats -# -CONFIG_BINFMT_ELF=y -CONFIG_COMPAT_BINFMT_ELF=y -CONFIG_ARCH_BINFMT_ELF_STATE=y -CONFIG_ARCH_BINFMT_ELF_EXTRA_PHDRS=y -CONFIG_ARCH_HAVE_ELF_PROT=y -CONFIG_ARCH_USE_GNU_PROPERTY=y -CONFIG_ELFCORE=y -CONFIG_BINFMT_SCRIPT=y -# CONFIG_BINFMT_MISC is not set -# CONFIG_COREDUMP is not set -# end of Executable file formats - -# -# Memory Management options -# -# CONFIG_SWAP is not set - -# -# Slab allocator options -# -CONFIG_SLUB=y -# CONFIG_SLUB_TINY is not set -CONFIG_SLAB_MERGE_DEFAULT=y -# CONFIG_SLAB_FREELIST_RANDOM is not set -# CONFIG_SLAB_FREELIST_HARDENED is not set -# CONFIG_SLAB_BUCKETS is not set -# CONFIG_SLUB_STATS is not set -CONFIG_SLUB_CPU_PARTIAL=y -# CONFIG_RANDOM_KMALLOC_CACHES is not set -# end of Slab allocator options - -# CONFIG_SHUFFLE_PAGE_ALLOCATOR is not set -# CONFIG_COMPAT_BRK is not set -CONFIG_SPARSEMEM=y -CONFIG_SPARSEMEM_EXTREME=y -CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y -CONFIG_SPARSEMEM_VMEMMAP=y -CONFIG_HAVE_GUP_FAST=y -CONFIG_ARCH_KEEP_MEMBLOCK=y -CONFIG_MEMORY_ISOLATION=y -CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y -CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y -# CONFIG_MEMORY_HOTPLUG is not set -CONFIG_ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE=y -CONFIG_SPLIT_PTE_PTLOCKS=y -CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y -CONFIG_SPLIT_PMD_PTLOCKS=y -CONFIG_COMPACTION=y -CONFIG_COMPACT_UNEVICTABLE_DEFAULT=1 -# CONFIG_PAGE_REPORTING is not set -CONFIG_MIGRATION=y -CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION=y -CONFIG_CONTIG_ALLOC=y -CONFIG_PCP_BATCH_SCALE_MAX=5 -CONFIG_PHYS_ADDR_T_64BIT=y -# CONFIG_KSM is not set -CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 -CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y -# CONFIG_MEMORY_FAILURE is not set -CONFIG_ARCH_WANTS_THP_SWAP=y -# CONFIG_TRANSPARENT_HUGEPAGE is not set -CONFIG_PGTABLE_HAS_HUGE_LEAVES=y -CONFIG_CMA=y -CONFIG_CMA_DEBUGFS=y -CONFIG_CMA_SYSFS=y -CONFIG_CMA_AREAS=8 -CONFIG_GENERIC_EARLY_IOREMAP=y -# CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set -# CONFIG_IDLE_PAGE_TRACKING is not set -CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y -CONFIG_ARCH_HAS_CURRENT_STACK_POINTER=y -CONFIG_ARCH_HAS_PTE_DEVMAP=y -CONFIG_ARCH_HAS_ZONE_DMA_SET=y -CONFIG_ZONE_DMA=y -CONFIG_ZONE_DMA32=y -CONFIG_ARCH_USES_HIGH_VMA_FLAGS=y -CONFIG_ARCH_HAS_PKEYS=y -CONFIG_VM_EVENT_COUNTERS=y -# CONFIG_PERCPU_STATS is not set -# CONFIG_GUP_TEST is not set -# CONFIG_DMAPOOL_TEST is not set -CONFIG_ARCH_HAS_PTE_SPECIAL=y -CONFIG_MEMFD_CREATE=y -CONFIG_SECRETMEM=y -# CONFIG_ANON_VMA_NAME is not set -CONFIG_HAVE_ARCH_USERFAULTFD_WP=y -CONFIG_HAVE_ARCH_USERFAULTFD_MINOR=y -CONFIG_USERFAULTFD=y -CONFIG_PTE_MARKER_UFFD_WP=y -# CONFIG_LRU_GEN is not set -CONFIG_ARCH_SUPPORTS_PER_VMA_LOCK=y -CONFIG_PER_VMA_LOCK=y -CONFIG_LOCK_MM_AND_FIND_VMA=y -CONFIG_EXECMEM=y - -# -# Data Access Monitoring -# -# CONFIG_DAMON is not set -# end of Data Access Monitoring -# end of Memory Management options - -CONFIG_NET=y -CONFIG_COMPAT_NETLINK_MESSAGES=y -CONFIG_NET_INGRESS=y -CONFIG_NET_EGRESS=y -CONFIG_NET_XGRESS=y -CONFIG_SKB_EXTENSIONS=y -CONFIG_NET_DEVMEM=y - -# -# Networking options -# -CONFIG_PACKET=y -# CONFIG_PACKET_DIAG is not set -CONFIG_UNIX=y -CONFIG_AF_UNIX_OOB=y -# CONFIG_UNIX_DIAG is not set -# CONFIG_TLS is not set -CONFIG_XFRM=y -CONFIG_XFRM_ALGO=m -CONFIG_XFRM_USER=m -# CONFIG_XFRM_INTERFACE is not set -# CONFIG_XFRM_SUB_POLICY is not set -# CONFIG_XFRM_MIGRATE is not set -# CONFIG_XFRM_STATISTICS is not set -CONFIG_XFRM_ESP=m -# CONFIG_NET_KEY is not set -# CONFIG_XDP_SOCKETS is not set -CONFIG_NET_HANDSHAKE=y -CONFIG_INET=y -# CONFIG_IP_MULTICAST is not set -# CONFIG_IP_ADVANCED_ROUTER is not set -# CONFIG_IP_PNP is not set -# CONFIG_NET_IPIP is not set -# CONFIG_NET_IPGRE_DEMUX is not set -CONFIG_NET_IP_TUNNEL=m -CONFIG_SYN_COOKIES=y -# CONFIG_NET_IPVTI is not set -CONFIG_NET_UDP_TUNNEL=m -# CONFIG_NET_FOU is not set -# CONFIG_INET_AH is not set -CONFIG_INET_ESP=m -# CONFIG_INET_ESP_OFFLOAD is not set -# CONFIG_INET_ESPINTCP is not set -# CONFIG_INET_IPCOMP is not set -CONFIG_INET_TABLE_PERTURB_ORDER=16 -# CONFIG_INET_DIAG is not set -# CONFIG_TCP_CONG_ADVANCED is not set -CONFIG_TCP_CONG_CUBIC=y -CONFIG_DEFAULT_TCP_CONG="cubic" -# CONFIG_TCP_AO is not set -# CONFIG_TCP_MD5SIG is not set -CONFIG_IPV6=y -# CONFIG_IPV6_ROUTER_PREF is not set -# CONFIG_IPV6_OPTIMISTIC_DAD is not set -# CONFIG_INET6_AH is not set -# CONFIG_INET6_ESP is not set -# CONFIG_INET6_IPCOMP is not set -# CONFIG_IPV6_MIP6 is not set -# CONFIG_IPV6_ILA is not set -# CONFIG_IPV6_VTI is not set -# CONFIG_IPV6_SIT is not set -# CONFIG_IPV6_TUNNEL is not set -# CONFIG_IPV6_MULTIPLE_TABLES is not set -# CONFIG_IPV6_MROUTE is not set -# CONFIG_IPV6_SEG6_LWTUNNEL is not set -# CONFIG_IPV6_SEG6_HMAC is not set -# CONFIG_IPV6_RPL_LWTUNNEL is not set -# CONFIG_IPV6_IOAM6_LWTUNNEL is not set -# CONFIG_MPTCP is not set -# CONFIG_NETWORK_SECMARK is not set -CONFIG_NET_PTP_CLASSIFY=y -# CONFIG_NETWORK_PHY_TIMESTAMPING is not set -CONFIG_NETFILTER=y -CONFIG_NETFILTER_ADVANCED=y -CONFIG_BRIDGE_NETFILTER=m - -# -# Core Netfilter Configuration -# -CONFIG_NETFILTER_INGRESS=y -CONFIG_NETFILTER_EGRESS=y -CONFIG_NETFILTER_NETLINK=m -CONFIG_NETFILTER_FAMILY_BRIDGE=y -CONFIG_NETFILTER_BPF_LINK=y -# CONFIG_NETFILTER_NETLINK_HOOK is not set -# CONFIG_NETFILTER_NETLINK_ACCT is not set -# CONFIG_NETFILTER_NETLINK_QUEUE is not set -# CONFIG_NETFILTER_NETLINK_LOG is not set -# CONFIG_NETFILTER_NETLINK_OSF is not set -CONFIG_NF_CONNTRACK=m -# CONFIG_NF_LOG_SYSLOG is not set -CONFIG_NETFILTER_CONNCOUNT=m -# CONFIG_NF_CONNTRACK_MARK is not set -# CONFIG_NF_CONNTRACK_ZONES is not set -# CONFIG_NF_CONNTRACK_PROCFS is not set -# CONFIG_NF_CONNTRACK_EVENTS is not set -# CONFIG_NF_CONNTRACK_TIMEOUT is not set -# CONFIG_NF_CONNTRACK_TIMESTAMP is not set -# CONFIG_NF_CONNTRACK_LABELS is not set -CONFIG_NF_CT_PROTO_DCCP=y -CONFIG_NF_CT_PROTO_SCTP=y -CONFIG_NF_CT_PROTO_UDPLITE=y -# CONFIG_NF_CONNTRACK_AMANDA is not set -# CONFIG_NF_CONNTRACK_FTP is not set -# CONFIG_NF_CONNTRACK_H323 is not set -# CONFIG_NF_CONNTRACK_IRC is not set -# CONFIG_NF_CONNTRACK_NETBIOS_NS is not set -# CONFIG_NF_CONNTRACK_SNMP is not set -# CONFIG_NF_CONNTRACK_PPTP is not set -# CONFIG_NF_CONNTRACK_SANE is not set -# CONFIG_NF_CONNTRACK_SIP is not set -# CONFIG_NF_CONNTRACK_TFTP is not set -# CONFIG_NF_CT_NETLINK is not set -CONFIG_NF_NAT=m -CONFIG_NF_NAT_REDIRECT=y -CONFIG_NF_NAT_MASQUERADE=y -CONFIG_NF_TABLES=m -# CONFIG_NF_TABLES_INET is not set -# CONFIG_NF_TABLES_NETDEV is not set -# CONFIG_NFT_NUMGEN is not set -CONFIG_NFT_CT=m -CONFIG_NFT_CONNLIMIT=m -# CONFIG_NFT_LOG is not set -# CONFIG_NFT_LIMIT is not set -CONFIG_NFT_MASQ=m -CONFIG_NFT_REDIR=m -# CONFIG_NFT_TUNNEL is not set -# CONFIG_NFT_QUOTA is not set -CONFIG_NFT_REJECT=m -CONFIG_NFT_COMPAT=m -CONFIG_NFT_HASH=m -# CONFIG_NFT_XFRM is not set -# CONFIG_NFT_SOCKET is not set -# CONFIG_NFT_OSF is not set -# CONFIG_NFT_TPROXY is not set -# CONFIG_NFT_SYNPROXY is not set -# CONFIG_NF_FLOW_TABLE is not set -CONFIG_NETFILTER_XTABLES=y -# CONFIG_NETFILTER_XTABLES_COMPAT is not set - -# -# Xtables combined modules -# -CONFIG_NETFILTER_XT_MARK=m -# CONFIG_NETFILTER_XT_CONNMARK is not set - -# -# Xtables targets -# -CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m -# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set -# CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set -# CONFIG_NETFILTER_XT_TARGET_CT is not set -# CONFIG_NETFILTER_XT_TARGET_DSCP is not set -# CONFIG_NETFILTER_XT_TARGET_HL is not set -# CONFIG_NETFILTER_XT_TARGET_HMARK is not set -# CONFIG_NETFILTER_XT_TARGET_IDLETIMER is not set -# CONFIG_NETFILTER_XT_TARGET_LED is not set -# CONFIG_NETFILTER_XT_TARGET_LOG is not set -CONFIG_NETFILTER_XT_TARGET_MARK=m -CONFIG_NETFILTER_XT_NAT=m -# CONFIG_NETFILTER_XT_TARGET_NETMAP is not set -# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set -# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set -# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set -CONFIG_NETFILTER_XT_TARGET_REDIRECT=m -CONFIG_NETFILTER_XT_TARGET_MASQUERADE=m -# CONFIG_NETFILTER_XT_TARGET_TEE is not set -# CONFIG_NETFILTER_XT_TARGET_TPROXY is not set -# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set -# CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set - -# -# Xtables matches -# -CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m -# CONFIG_NETFILTER_XT_MATCH_BPF is not set -# CONFIG_NETFILTER_XT_MATCH_CGROUP is not set -# CONFIG_NETFILTER_XT_MATCH_CLUSTER is not set -# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set -# CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set -# CONFIG_NETFILTER_XT_MATCH_CONNLABEL is not set -# CONFIG_NETFILTER_XT_MATCH_CONNLIMIT is not set -# CONFIG_NETFILTER_XT_MATCH_CONNMARK is not set -CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m -# CONFIG_NETFILTER_XT_MATCH_CPU is not set -# CONFIG_NETFILTER_XT_MATCH_DCCP is not set -# CONFIG_NETFILTER_XT_MATCH_DEVGROUP is not set -# CONFIG_NETFILTER_XT_MATCH_DSCP is not set -# CONFIG_NETFILTER_XT_MATCH_ECN is not set -# CONFIG_NETFILTER_XT_MATCH_ESP is not set -# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set -# CONFIG_NETFILTER_XT_MATCH_HELPER is not set -# CONFIG_NETFILTER_XT_MATCH_HL is not set -# CONFIG_NETFILTER_XT_MATCH_IPCOMP is not set -# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set -CONFIG_NETFILTER_XT_MATCH_IPVS=m -# CONFIG_NETFILTER_XT_MATCH_L2TP is not set -# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set -# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set -# CONFIG_NETFILTER_XT_MATCH_MAC is not set -# CONFIG_NETFILTER_XT_MATCH_MARK is not set -# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set -# CONFIG_NETFILTER_XT_MATCH_NFACCT is not set -# CONFIG_NETFILTER_XT_MATCH_OSF is not set -# CONFIG_NETFILTER_XT_MATCH_OWNER is not set -# CONFIG_NETFILTER_XT_MATCH_POLICY is not set -# CONFIG_NETFILTER_XT_MATCH_PHYSDEV is not set -# CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set -# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set -# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set -# CONFIG_NETFILTER_XT_MATCH_REALM is not set -# CONFIG_NETFILTER_XT_MATCH_RECENT is not set -# CONFIG_NETFILTER_XT_MATCH_SCTP is not set -# CONFIG_NETFILTER_XT_MATCH_SOCKET is not set -# CONFIG_NETFILTER_XT_MATCH_STATE is not set -# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set -# CONFIG_NETFILTER_XT_MATCH_STRING is not set -# CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set -# CONFIG_NETFILTER_XT_MATCH_TIME is not set -# CONFIG_NETFILTER_XT_MATCH_U32 is not set -# end of Core Netfilter Configuration - -# CONFIG_IP_SET is not set -CONFIG_IP_VS=m -# CONFIG_IP_VS_IPV6 is not set -# CONFIG_IP_VS_DEBUG is not set -CONFIG_IP_VS_TAB_BITS=12 - -# -# IPVS transport protocol load balancing support -# -CONFIG_IP_VS_PROTO_TCP=y -CONFIG_IP_VS_PROTO_UDP=y -# CONFIG_IP_VS_PROTO_ESP is not set -# CONFIG_IP_VS_PROTO_AH is not set -# CONFIG_IP_VS_PROTO_SCTP is not set - -# -# IPVS scheduler -# -CONFIG_IP_VS_RR=m -# CONFIG_IP_VS_WRR is not set -# CONFIG_IP_VS_LC is not set -# CONFIG_IP_VS_WLC is not set -# CONFIG_IP_VS_FO is not set -# CONFIG_IP_VS_OVF is not set -# CONFIG_IP_VS_LBLC is not set -# CONFIG_IP_VS_LBLCR is not set -# CONFIG_IP_VS_DH is not set -# CONFIG_IP_VS_SH is not set -# CONFIG_IP_VS_MH is not set -# CONFIG_IP_VS_SED is not set -# CONFIG_IP_VS_NQ is not set -# CONFIG_IP_VS_TWOS is not set - -# -# IPVS SH scheduler -# -CONFIG_IP_VS_SH_TAB_BITS=8 - -# -# IPVS MH scheduler -# -CONFIG_IP_VS_MH_TAB_INDEX=12 - -# -# IPVS application helper -# -CONFIG_IP_VS_NFCT=y - -# -# IP: Netfilter Configuration -# -CONFIG_NF_DEFRAG_IPV4=m -CONFIG_IP_NF_IPTABLES_LEGACY=m -# CONFIG_NF_SOCKET_IPV4 is not set -# CONFIG_NF_TPROXY_IPV4 is not set -# CONFIG_NF_TABLES_IPV4 is not set -# CONFIG_NF_TABLES_ARP is not set -# CONFIG_NF_DUP_IPV4 is not set -# CONFIG_NF_LOG_ARP is not set -# CONFIG_NF_LOG_IPV4 is not set -# CONFIG_NF_REJECT_IPV4 is not set -CONFIG_IP_NF_IPTABLES=m -# CONFIG_IP_NF_MATCH_AH is not set -# CONFIG_IP_NF_MATCH_ECN is not set -# CONFIG_IP_NF_MATCH_RPFILTER is not set -# CONFIG_IP_NF_MATCH_TTL is not set -CONFIG_IP_NF_FILTER=m -# CONFIG_IP_NF_TARGET_REJECT is not set -# CONFIG_IP_NF_TARGET_SYNPROXY is not set -CONFIG_IP_NF_NAT=m -CONFIG_IP_NF_TARGET_MASQUERADE=m -# CONFIG_IP_NF_TARGET_NETMAP is not set -CONFIG_IP_NF_TARGET_REDIRECT=m -CONFIG_IP_NF_MANGLE=m -# CONFIG_IP_NF_TARGET_ECN is not set -# CONFIG_IP_NF_TARGET_TTL is not set -# CONFIG_IP_NF_RAW is not set -# CONFIG_IP_NF_ARPFILTER is not set -# end of IP: Netfilter Configuration - -# -# IPv6: Netfilter Configuration -# -# CONFIG_NF_SOCKET_IPV6 is not set -# CONFIG_NF_TPROXY_IPV6 is not set -# CONFIG_NF_TABLES_IPV6 is not set -# CONFIG_NF_DUP_IPV6 is not set -# CONFIG_NF_REJECT_IPV6 is not set -# CONFIG_NF_LOG_IPV6 is not set -CONFIG_IP6_NF_IPTABLES=m -# CONFIG_IP6_NF_MATCH_AH is not set -# CONFIG_IP6_NF_MATCH_EUI64 is not set -# CONFIG_IP6_NF_MATCH_FRAG is not set -# CONFIG_IP6_NF_MATCH_OPTS is not set -# CONFIG_IP6_NF_MATCH_HL is not set -# CONFIG_IP6_NF_MATCH_IPV6HEADER is not set -# CONFIG_IP6_NF_MATCH_MH is not set -# CONFIG_IP6_NF_MATCH_RPFILTER is not set -# CONFIG_IP6_NF_MATCH_RT is not set -# CONFIG_IP6_NF_MATCH_SRH is not set -# CONFIG_IP6_NF_FILTER is not set -# CONFIG_IP6_NF_TARGET_REJECT is not set -# CONFIG_IP6_NF_TARGET_SYNPROXY is not set -# CONFIG_IP6_NF_MANGLE is not set -# CONFIG_IP6_NF_RAW is not set -# CONFIG_IP6_NF_NAT is not set -# CONFIG_IP6_NF_TARGET_NPT is not set -# end of IPv6: Netfilter Configuration - -CONFIG_NF_DEFRAG_IPV6=m -# CONFIG_NF_TABLES_BRIDGE is not set -# CONFIG_NF_CONNTRACK_BRIDGE is not set -# CONFIG_BRIDGE_NF_EBTABLES is not set -# CONFIG_IP_DCCP is not set -# CONFIG_IP_SCTP is not set -# CONFIG_RDS is not set -# CONFIG_TIPC is not set -# CONFIG_ATM is not set -# CONFIG_L2TP is not set -CONFIG_STP=m -CONFIG_BRIDGE=m -CONFIG_BRIDGE_IGMP_SNOOPING=y -CONFIG_BRIDGE_VLAN_FILTERING=y -# CONFIG_BRIDGE_MRP is not set -# CONFIG_BRIDGE_CFM is not set -# CONFIG_NET_DSA is not set -CONFIG_VLAN_8021Q=m -# CONFIG_VLAN_8021Q_GVRP is not set -# CONFIG_VLAN_8021Q_MVRP is not set -CONFIG_LLC=m -# CONFIG_LLC2 is not set -# CONFIG_ATALK is not set -# CONFIG_X25 is not set -# CONFIG_LAPB is not set -# CONFIG_PHONET is not set -# CONFIG_6LOWPAN is not set -# CONFIG_IEEE802154 is not set -CONFIG_NET_SCHED=y - -# -# Queueing/Scheduling -# -# CONFIG_NET_SCH_HTB is not set -# CONFIG_NET_SCH_HFSC is not set -# CONFIG_NET_SCH_PRIO is not set -# CONFIG_NET_SCH_MULTIQ is not set -# CONFIG_NET_SCH_RED is not set -# CONFIG_NET_SCH_SFB is not set -# CONFIG_NET_SCH_SFQ is not set -# CONFIG_NET_SCH_TEQL is not set -# CONFIG_NET_SCH_TBF is not set -# CONFIG_NET_SCH_CBS is not set -# CONFIG_NET_SCH_ETF is not set -# CONFIG_NET_SCH_TAPRIO is not set -# CONFIG_NET_SCH_GRED is not set -# CONFIG_NET_SCH_NETEM is not set -# CONFIG_NET_SCH_DRR is not set -# CONFIG_NET_SCH_MQPRIO is not set -# CONFIG_NET_SCH_SKBPRIO is not set -# CONFIG_NET_SCH_CHOKE is not set -# CONFIG_NET_SCH_QFQ is not set -# CONFIG_NET_SCH_CODEL is not set -# CONFIG_NET_SCH_FQ_CODEL is not set -# CONFIG_NET_SCH_CAKE is not set -# CONFIG_NET_SCH_FQ is not set -# CONFIG_NET_SCH_HHF is not set -# CONFIG_NET_SCH_PIE is not set -# CONFIG_NET_SCH_PLUG is not set -# CONFIG_NET_SCH_ETS is not set -# CONFIG_NET_SCH_DEFAULT is not set - -# -# Classification -# -CONFIG_NET_CLS=y -# CONFIG_NET_CLS_BASIC is not set -# CONFIG_NET_CLS_ROUTE4 is not set -# CONFIG_NET_CLS_FW is not set -# CONFIG_NET_CLS_U32 is not set -# CONFIG_NET_CLS_FLOW is not set -CONFIG_NET_CLS_CGROUP=m -# CONFIG_NET_CLS_BPF is not set -# CONFIG_NET_CLS_FLOWER is not set -# CONFIG_NET_CLS_MATCHALL is not set -# CONFIG_NET_EMATCH is not set -# CONFIG_NET_CLS_ACT is not set -CONFIG_NET_SCH_FIFO=y -# CONFIG_DCB is not set -CONFIG_DNS_RESOLVER=m -# CONFIG_BATMAN_ADV is not set -# CONFIG_OPENVSWITCH is not set -# CONFIG_VSOCKETS is not set -CONFIG_NETLINK_DIAG=y -# CONFIG_MPLS is not set -# CONFIG_NET_NSH is not set -# CONFIG_HSR is not set -# CONFIG_NET_SWITCHDEV is not set -CONFIG_NET_L3_MASTER_DEV=y -# CONFIG_QRTR is not set -# CONFIG_NET_NCSI is not set -CONFIG_PCPU_DEV_REFCNT=y -CONFIG_MAX_SKB_FRAGS=17 -CONFIG_RPS=y -CONFIG_RFS_ACCEL=y -CONFIG_SOCK_RX_QUEUE_MAPPING=y -CONFIG_XPS=y -CONFIG_CGROUP_NET_PRIO=y -CONFIG_CGROUP_NET_CLASSID=y -CONFIG_NET_RX_BUSY_POLL=y -CONFIG_BQL=y -# CONFIG_BPF_STREAM_PARSER is not set -CONFIG_NET_FLOW_LIMIT=y - -# -# Network testing -# -# CONFIG_NET_PKTGEN is not set -# CONFIG_NET_DROP_MONITOR is not set -# end of Network testing -# end of Networking options - -# CONFIG_HAMRADIO is not set -# CONFIG_CAN is not set -CONFIG_BT=m -CONFIG_BT_BREDR=y -CONFIG_BT_RFCOMM=y -CONFIG_BT_RFCOMM_TTY=y -CONFIG_BT_BNEP=m -CONFIG_BT_BNEP_MC_FILTER=y -CONFIG_BT_BNEP_PROTO_FILTER=y -CONFIG_BT_HIDP=m -CONFIG_BT_LE=y -CONFIG_BT_LE_L2CAP_ECRED=y -CONFIG_BT_LEDS=y -# CONFIG_BT_MSFTEXT is not set -# CONFIG_BT_AOSPEXT is not set -CONFIG_BT_DEBUGFS=y -# CONFIG_BT_SELFTEST is not set - -# -# Bluetooth device drivers -# -CONFIG_BT_BCM=m -# CONFIG_BT_HCIBTUSB is not set -# CONFIG_BT_HCIBTSDIO is not set -CONFIG_BT_HCIUART=m -CONFIG_BT_HCIUART_SERDEV=y -CONFIG_BT_HCIUART_H4=y -# CONFIG_BT_HCIUART_NOKIA is not set -# CONFIG_BT_HCIUART_BCSP is not set -# CONFIG_BT_HCIUART_ATH3K is not set -# CONFIG_BT_HCIUART_LL is not set -# CONFIG_BT_HCIUART_3WIRE is not set -# CONFIG_BT_HCIUART_INTEL is not set -CONFIG_BT_HCIUART_BCM=y -# CONFIG_BT_HCIUART_RTL is not set -# CONFIG_BT_HCIUART_QCA is not set -# CONFIG_BT_HCIUART_AG6XX is not set -# CONFIG_BT_HCIUART_MRVL is not set -# CONFIG_BT_HCIUART_AML is not set -# CONFIG_BT_HCIBCM203X is not set -# CONFIG_BT_HCIBCM4377 is not set -# CONFIG_BT_HCIBPA10X is not set -# CONFIG_BT_HCIBFUSB is not set -# CONFIG_BT_HCIVHCI is not set -# CONFIG_BT_MRVL is not set -# CONFIG_BT_MTKSDIO is not set -# CONFIG_BT_MTKUART is not set -# CONFIG_BT_NXPUART is not set -# CONFIG_BT_INTEL_PCIE is not set -# end of Bluetooth device drivers - -# CONFIG_AF_RXRPC is not set -# CONFIG_AF_KCM is not set -# CONFIG_MCTP is not set -CONFIG_WIRELESS=y -CONFIG_WEXT_CORE=y -CONFIG_WEXT_PROC=y -CONFIG_CFG80211=m -# CONFIG_NL80211_TESTMODE is not set -# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set -CONFIG_CFG80211_CERTIFICATION_ONUS=y -# CONFIG_CFG80211_REQUIRE_SIGNED_REGDB is not set -# CONFIG_CFG80211_REG_CELLULAR_HINTS is not set -# CONFIG_CFG80211_REG_RELAX_NO_IR is not set -CONFIG_CFG80211_DEFAULT_PS=y -CONFIG_CFG80211_DEBUGFS=y -# CONFIG_CFG80211_CRDA_SUPPORT is not set -CONFIG_CFG80211_WEXT=y -CONFIG_MAC80211=m -# CONFIG_MAC80211_RC_MINSTREL is not set -CONFIG_MAC80211_RC_DEFAULT="" - -# -# Some wireless drivers require a rate control algorithm -# -# CONFIG_MAC80211_MESH is not set -CONFIG_MAC80211_LEDS=y -CONFIG_MAC80211_DEBUGFS=y -# CONFIG_MAC80211_MESSAGE_TRACING is not set -# CONFIG_MAC80211_DEBUG_MENU is not set -CONFIG_MAC80211_STA_HASH_MAX_SIZE=0 -CONFIG_RFKILL=m -CONFIG_RFKILL_LEDS=y -CONFIG_RFKILL_INPUT=y -# CONFIG_RFKILL_GPIO is not set -# CONFIG_NET_9P is not set -# CONFIG_CAIF is not set -# CONFIG_CEPH_LIB is not set -# CONFIG_NFC is not set -# CONFIG_PSAMPLE is not set -# CONFIG_NET_IFE is not set -# CONFIG_LWTUNNEL is not set -CONFIG_DST_CACHE=y -CONFIG_GRO_CELLS=y -CONFIG_NET_SELFTESTS=y -CONFIG_NET_SOCK_MSG=y -CONFIG_PAGE_POOL=y -# CONFIG_PAGE_POOL_STATS is not set -# CONFIG_FAILOVER is not set -# CONFIG_ETHTOOL_NETLINK is not set - -# -# Device Drivers -# -CONFIG_ARM_AMBA=y -CONFIG_HAVE_PCI=y -CONFIG_GENERIC_PCI_IOMAP=y -CONFIG_PCI=y -CONFIG_PCI_DOMAINS=y -CONFIG_PCI_DOMAINS_GENERIC=y -CONFIG_PCI_SYSCALL=y -# CONFIG_PCIEPORTBUS is not set -CONFIG_PCIEASPM=y -CONFIG_PCIEASPM_DEFAULT=y -# CONFIG_PCIEASPM_POWERSAVE is not set -# CONFIG_PCIEASPM_POWER_SUPERSAVE is not set -# CONFIG_PCIEASPM_PERFORMANCE is not set -# CONFIG_PCIE_PTM is not set -CONFIG_PCI_MSI=y -CONFIG_PCI_QUIRKS=y -# CONFIG_PCI_DEBUG is not set -# CONFIG_PCI_STUB is not set -# CONFIG_PCI_IOV is not set -# CONFIG_PCI_NPEM is not set -# CONFIG_PCI_PRI is not set -# CONFIG_PCI_PASID is not set -CONFIG_PCI_LABEL=y -# CONFIG_PCI_DYNAMIC_OF_NODES is not set -# CONFIG_PCIE_BUS_TUNE_OFF is not set -CONFIG_PCIE_BUS_DEFAULT=y -# CONFIG_PCIE_BUS_SAFE is not set -# CONFIG_PCIE_BUS_PERFORMANCE is not set -# CONFIG_PCIE_BUS_PEER2PEER is not set -CONFIG_VGA_ARB=y -CONFIG_VGA_ARB_MAX_GPUS=16 -# CONFIG_HOTPLUG_PCI is not set - -# -# PCI controller drivers -# -# CONFIG_PCIE_ALTERA is not set -# CONFIG_PCI_HOST_THUNDER_PEM is not set -# CONFIG_PCI_HOST_THUNDER_ECAM is not set -# CONFIG_PCI_FTPCI100 is not set -# CONFIG_PCI_HOST_GENERIC is not set -# CONFIG_PCIE_ROCKCHIP_HOST is not set -# CONFIG_PCI_XGENE is not set -# CONFIG_PCIE_XILINX is not set - -# -# Cadence-based PCIe controllers -# -# CONFIG_PCIE_CADENCE_PLAT_HOST is not set -# end of Cadence-based PCIe controllers - -# -# DesignWare-based PCIe controllers -# -CONFIG_PCIE_DW=y -CONFIG_PCIE_DW_HOST=y -# CONFIG_PCIE_AL is not set -# CONFIG_PCI_MESON is not set -# CONFIG_PCI_HISI is not set -# CONFIG_PCIE_KIRIN is not set -# CONFIG_PCIE_DW_PLAT_HOST is not set -CONFIG_PCIE_ROCKCHIP_DW=y -CONFIG_PCIE_ROCKCHIP_DW_HOST=y -# end of DesignWare-based PCIe controllers - -# -# Mobiveil-based PCIe controllers -# -# end of Mobiveil-based PCIe controllers - -# -# PLDA-based PCIe controllers -# -# CONFIG_PCIE_MICROCHIP_HOST is not set -# end of PLDA-based PCIe controllers -# end of PCI controller drivers - -# -# PCI Endpoint -# -# CONFIG_PCI_ENDPOINT is not set -# end of PCI Endpoint - -# -# PCI switch controller drivers -# -# CONFIG_PCI_SW_SWITCHTEC is not set -# end of PCI switch controller drivers - -# CONFIG_CXL_BUS is not set -# CONFIG_PCCARD is not set -# CONFIG_RAPIDIO is not set - -# -# Generic Driver Options -# -CONFIG_UEVENT_HELPER=y -CONFIG_UEVENT_HELPER_PATH="" -CONFIG_DEVTMPFS=y -CONFIG_DEVTMPFS_MOUNT=y -# CONFIG_DEVTMPFS_SAFE is not set -CONFIG_STANDALONE=y -CONFIG_PREVENT_FIRMWARE_BUILD=y - -# -# Firmware loader -# -CONFIG_FW_LOADER=y -CONFIG_FW_LOADER_DEBUG=y -CONFIG_FW_LOADER_PAGED_BUF=y -CONFIG_EXTRA_FIRMWARE="" -# CONFIG_FW_LOADER_USER_HELPER is not set -CONFIG_FW_LOADER_COMPRESS=y -CONFIG_FW_LOADER_COMPRESS_XZ=y -CONFIG_FW_LOADER_COMPRESS_ZSTD=y -# CONFIG_FW_CACHE is not set -# CONFIG_FW_UPLOAD is not set -# end of Firmware loader - -CONFIG_WANT_DEV_COREDUMP=y -# CONFIG_ALLOW_DEV_COREDUMP is not set -# CONFIG_DEBUG_DRIVER is not set -# CONFIG_DEBUG_DEVRES is not set -# CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set -# CONFIG_TEST_ASYNC_DRIVER_PROBE is not set -CONFIG_GENERIC_CPU_DEVICES=y -CONFIG_GENERIC_CPU_AUTOPROBE=y -CONFIG_GENERIC_CPU_VULNERABILITIES=y -CONFIG_REGMAP=y -CONFIG_REGMAP_I2C=y -CONFIG_REGMAP_SPI=m -CONFIG_REGMAP_MMIO=y -CONFIG_REGMAP_IRQ=y -CONFIG_DMA_SHARED_BUFFER=y -# CONFIG_DMA_FENCE_TRACE is not set -CONFIG_GENERIC_ARCH_TOPOLOGY=y -# CONFIG_FW_DEVLINK_SYNC_STATE_TIMEOUT is not set -# end of Generic Driver Options - -# -# Bus devices -# -# CONFIG_MOXTET is not set -# CONFIG_VEXPRESS_CONFIG is not set -# CONFIG_MHI_BUS is not set -# CONFIG_MHI_BUS_EP is not set -# end of Bus devices - -# -# Cache Drivers -# -# end of Cache Drivers - -# CONFIG_CONNECTOR is not set - -# -# Firmware Drivers -# - -# -# ARM System Control and Management Interface Protocol -# -CONFIG_ARM_SCMI_PROTOCOL=y -# CONFIG_ARM_SCMI_RAW_MODE_SUPPORT is not set -# CONFIG_ARM_SCMI_DEBUG_COUNTERS is not set - -# -# SCMI Transport Drivers -# -CONFIG_ARM_SCMI_HAVE_TRANSPORT=y -CONFIG_ARM_SCMI_HAVE_SHMEM=y -# CONFIG_ARM_SCMI_TRANSPORT_MAILBOX is not set -CONFIG_ARM_SCMI_TRANSPORT_SMC=y -# CONFIG_ARM_SCMI_TRANSPORT_SMC_ATOMIC_ENABLE is not set -# end of SCMI Transport Drivers - -# -# ARM SCMI NXP i.MX Vendor Protocols -# -# CONFIG_IMX_SCMI_BBM_EXT is not set -# CONFIG_IMX_SCMI_MISC_EXT is not set -# end of ARM SCMI NXP i.MX Vendor Protocols - -# CONFIG_ARM_SCMI_POWER_CONTROL is not set -# end of ARM System Control and Management Interface Protocol - -# CONFIG_ARM_SCPI_PROTOCOL is not set -CONFIG_FIRMWARE_MEMMAP=y -CONFIG_DMIID=y -CONFIG_DMI_SYSFS=y -# CONFIG_FW_CFG_SYSFS is not set -CONFIG_ROCKCHIP_SIP=y -# CONFIG_SYSFB_SIMPLEFB is not set -# CONFIG_ARM_FFA_TRANSPORT is not set -# CONFIG_GOOGLE_FIRMWARE is not set - -# -# EFI (Extensible Firmware Interface) Support -# -CONFIG_EFI_ESRT=y -CONFIG_EFI_PARAMS_FROM_FDT=y -CONFIG_EFI_RUNTIME_WRAPPERS=y -CONFIG_EFI_GENERIC_STUB=y -# CONFIG_EFI_ZBOOT is not set -CONFIG_EFI_ARMSTUB_DTB_LOADER=y -CONFIG_EFI_BOOTLOADER_CONTROL=y -# CONFIG_EFI_CAPSULE_LOADER is not set -# CONFIG_EFI_TEST is not set -# CONFIG_RESET_ATTACK_MITIGATION is not set -# CONFIG_EFI_DISABLE_PCI_DMA is not set -CONFIG_EFI_EARLYCON=y -# CONFIG_EFI_DISABLE_RUNTIME is not set -# CONFIG_EFI_COCO_SECRET is not set -# end of EFI (Extensible Firmware Interface) Support - -CONFIG_ARM_PSCI_FW=y -# CONFIG_ARM_PSCI_CHECKER is not set - -# -# Qualcomm firmware drivers -# -# end of Qualcomm firmware drivers - -CONFIG_HAVE_ARM_SMCCC=y -CONFIG_HAVE_ARM_SMCCC_DISCOVERY=y -# CONFIG_ARM_SMCCC_SOC_ID is not set - -# -# Tegra firmware driver -# -# end of Tegra firmware driver -# end of Firmware Drivers - -# CONFIG_GNSS is not set -# CONFIG_MTD is not set -CONFIG_DTC=y -CONFIG_OF=y -# CONFIG_OF_UNITTEST is not set -CONFIG_OF_FLATTREE=y -CONFIG_OF_EARLY_FLATTREE=y -CONFIG_OF_KOBJ=y -CONFIG_OF_DYNAMIC=y -CONFIG_OF_ADDRESS=y -CONFIG_OF_IRQ=y -CONFIG_OF_RESERVED_MEM=y -CONFIG_OF_RESOLVE=y -CONFIG_OF_OVERLAY=y -# CONFIG_PARPORT is not set -CONFIG_BLK_DEV=y -# CONFIG_BLK_DEV_NULL_BLK is not set -CONFIG_CDROM=m -# CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set -# CONFIG_ZRAM is not set -CONFIG_ZRAM_DEF_COMP="unset-value" -CONFIG_BLK_DEV_LOOP=y -CONFIG_BLK_DEV_LOOP_MIN_COUNT=0 -# CONFIG_BLK_DEV_DRBD is not set -# CONFIG_BLK_DEV_NBD is not set -# CONFIG_BLK_DEV_RAM is not set -# CONFIG_CDROM_PKTCDVD is not set -# CONFIG_ATA_OVER_ETH is not set -# CONFIG_BLK_DEV_RBD is not set -# CONFIG_BLK_DEV_UBLK is not set - -# -# NVME Support -# -# CONFIG_BLK_DEV_NVME is not set -# CONFIG_NVME_FC is not set -# CONFIG_NVME_TCP is not set -# CONFIG_NVME_TARGET is not set -# end of NVME Support - -# -# Misc devices -# -# CONFIG_AD525X_DPOT is not set -# CONFIG_DUMMY_IRQ is not set -# CONFIG_PHANTOM is not set -# CONFIG_RPMB is not set -# CONFIG_TIFM_CORE is not set -# CONFIG_ICS932S401 is not set -# CONFIG_ENCLOSURE_SERVICES is not set -# CONFIG_HP_ILO is not set -# CONFIG_APDS9802ALS is not set -# CONFIG_ISL29003 is not set -# CONFIG_ISL29020 is not set -# CONFIG_SENSORS_TSL2550 is not set -# CONFIG_SENSORS_BH1770 is not set -# CONFIG_SENSORS_APDS990X is not set -# CONFIG_HMC6352 is not set -# CONFIG_DS1682 is not set -# CONFIG_LATTICE_ECP3_CONFIG is not set -# CONFIG_SRAM is not set -# CONFIG_DW_XDATA_PCIE is not set -# CONFIG_PCI_ENDPOINT_TEST is not set -# CONFIG_XILINX_SDFEC is not set -# CONFIG_HISI_HIKEY_USB is not set -# CONFIG_OPEN_DICE is not set -# CONFIG_VCPU_STALL_DETECTOR is not set -# CONFIG_C2PORT is not set - -# -# EEPROM support -# -# CONFIG_EEPROM_AT24 is not set -# CONFIG_EEPROM_AT25 is not set -# CONFIG_EEPROM_MAX6875 is not set -# CONFIG_EEPROM_93CX6 is not set -# CONFIG_EEPROM_93XX46 is not set -# CONFIG_EEPROM_IDT_89HPESX is not set -# CONFIG_EEPROM_EE1004 is not set -# end of EEPROM support - -# CONFIG_CB710_CORE is not set - -# -# Texas Instruments shared transport line discipline -# -# CONFIG_TI_ST is not set -# end of Texas Instruments shared transport line discipline - -# CONFIG_SENSORS_LIS3_SPI is not set -# CONFIG_SENSORS_LIS3_I2C is not set -# CONFIG_ALTERA_STAPL is not set -# CONFIG_VMWARE_VMCI is not set -# CONFIG_GENWQE is not set -# CONFIG_ECHO is not set -# CONFIG_BCM_VK is not set -# CONFIG_MISC_ALCOR_PCI is not set -# CONFIG_MISC_RTSX_PCI is not set -# CONFIG_MISC_RTSX_USB is not set -# CONFIG_UACCE is not set -# CONFIG_PVPANIC is not set -# CONFIG_GP_PCI1XXXX is not set -# CONFIG_KEBA_CP500 is not set -# end of Misc devices - -# -# SCSI device support -# -CONFIG_SCSI_MOD=m -# CONFIG_RAID_ATTRS is not set -CONFIG_SCSI_COMMON=m -CONFIG_SCSI=m -CONFIG_SCSI_DMA=y -# CONFIG_SCSI_PROC_FS is not set - -# -# SCSI support type (disk, tape, CD-ROM) -# -CONFIG_BLK_DEV_SD=m -# CONFIG_CHR_DEV_ST is not set -CONFIG_BLK_DEV_SR=m -CONFIG_CHR_DEV_SG=m -CONFIG_BLK_DEV_BSG=y -# CONFIG_CHR_DEV_SCH is not set -# CONFIG_SCSI_CONSTANTS is not set -# CONFIG_SCSI_LOGGING is not set -CONFIG_SCSI_SCAN_ASYNC=y - -# -# SCSI Transports -# -# CONFIG_SCSI_SPI_ATTRS is not set -# CONFIG_SCSI_FC_ATTRS is not set -# CONFIG_SCSI_ISCSI_ATTRS is not set -# CONFIG_SCSI_SAS_ATTRS is not set -# CONFIG_SCSI_SAS_LIBSAS is not set -# CONFIG_SCSI_SRP_ATTRS is not set -# end of SCSI Transports - -# CONFIG_SCSI_LOWLEVEL is not set -# CONFIG_SCSI_DH is not set -# end of SCSI device support - -CONFIG_ATA=m -CONFIG_SATA_HOST=y -CONFIG_ATA_VERBOSE_ERROR=y -CONFIG_ATA_FORCE=y -CONFIG_SATA_PMP=y - -# -# Controllers with non-SFF native interface -# -CONFIG_SATA_AHCI=m -CONFIG_SATA_MOBILE_LPM_POLICY=3 -CONFIG_SATA_AHCI_PLATFORM=m -CONFIG_AHCI_DWC=m -# CONFIG_AHCI_CEVA is not set -# CONFIG_SATA_INIC162X is not set -# CONFIG_SATA_ACARD_AHCI is not set -# CONFIG_SATA_SIL24 is not set -CONFIG_ATA_SFF=y - -# -# SFF controllers with custom DMA interface -# -# CONFIG_PDC_ADMA is not set -# CONFIG_SATA_QSTOR is not set -# CONFIG_SATA_SX4 is not set -CONFIG_ATA_BMDMA=y - -# -# SATA SFF controllers with BMDMA -# -# CONFIG_ATA_PIIX is not set -# CONFIG_SATA_DWC is not set -# CONFIG_SATA_MV is not set -# CONFIG_SATA_NV is not set -# CONFIG_SATA_PROMISE is not set -# CONFIG_SATA_SIL is not set -# CONFIG_SATA_SIS is not set -# CONFIG_SATA_SVW is not set -# CONFIG_SATA_ULI is not set -# CONFIG_SATA_VIA is not set -# CONFIG_SATA_VITESSE is not set - -# -# PATA SFF controllers with BMDMA -# -# CONFIG_PATA_ALI is not set -# CONFIG_PATA_AMD is not set -# CONFIG_PATA_ARTOP is not set -# CONFIG_PATA_ATIIXP is not set -# CONFIG_PATA_ATP867X is not set -# CONFIG_PATA_CMD64X is not set -# CONFIG_PATA_CYPRESS is not set -# CONFIG_PATA_EFAR is not set -# CONFIG_PATA_HPT366 is not set -# CONFIG_PATA_HPT37X is not set -# CONFIG_PATA_HPT3X2N is not set -# CONFIG_PATA_HPT3X3 is not set -# CONFIG_PATA_IT8213 is not set -# CONFIG_PATA_IT821X is not set -# CONFIG_PATA_JMICRON is not set -# CONFIG_PATA_MARVELL is not set -# CONFIG_PATA_NETCELL is not set -# CONFIG_PATA_NINJA32 is not set -# CONFIG_PATA_NS87415 is not set -# CONFIG_PATA_OLDPIIX is not set -# CONFIG_PATA_OPTIDMA is not set -# CONFIG_PATA_PDC2027X is not set -# CONFIG_PATA_PDC_OLD is not set -# CONFIG_PATA_RADISYS is not set -# CONFIG_PATA_RDC is not set -# CONFIG_PATA_SCH is not set -# CONFIG_PATA_SERVERWORKS is not set -# CONFIG_PATA_SIL680 is not set -# CONFIG_PATA_SIS is not set -# CONFIG_PATA_TOSHIBA is not set -# CONFIG_PATA_TRIFLEX is not set -# CONFIG_PATA_VIA is not set -# CONFIG_PATA_WINBOND is not set - -# -# PIO-only SFF controllers -# -# CONFIG_PATA_CMD640_PCI is not set -# CONFIG_PATA_MPIIX is not set -# CONFIG_PATA_NS87410 is not set -# CONFIG_PATA_OPTI is not set -# CONFIG_PATA_OF_PLATFORM is not set -# CONFIG_PATA_RZ1000 is not set - -# -# Generic fallback / legacy drivers -# -# CONFIG_ATA_GENERIC is not set -# CONFIG_PATA_LEGACY is not set -CONFIG_MD=y -# CONFIG_BLK_DEV_MD is not set -CONFIG_MD_BITMAP_FILE=y -# CONFIG_BCACHE is not set -CONFIG_BLK_DEV_DM_BUILTIN=y -CONFIG_BLK_DEV_DM=m -# CONFIG_DM_DEBUG is not set -CONFIG_DM_BUFIO=m -# CONFIG_DM_DEBUG_BLOCK_MANAGER_LOCKING is not set -CONFIG_DM_BIO_PRISON=m -CONFIG_DM_PERSISTENT_DATA=m -# CONFIG_DM_UNSTRIPED is not set -CONFIG_DM_CRYPT=m -# CONFIG_DM_SNAPSHOT is not set -CONFIG_DM_THIN_PROVISIONING=m -# CONFIG_DM_CACHE is not set -# CONFIG_DM_WRITECACHE is not set -# CONFIG_DM_EBS is not set -# CONFIG_DM_ERA is not set -# CONFIG_DM_CLONE is not set -# CONFIG_DM_MIRROR is not set -# CONFIG_DM_RAID is not set -# CONFIG_DM_ZERO is not set -# CONFIG_DM_MULTIPATH is not set -# CONFIG_DM_DELAY is not set -# CONFIG_DM_DUST is not set -# CONFIG_DM_UEVENT is not set -# CONFIG_DM_FLAKEY is not set -# CONFIG_DM_VERITY is not set -# CONFIG_DM_SWITCH is not set -# CONFIG_DM_LOG_WRITES is not set -# CONFIG_DM_INTEGRITY is not set -# CONFIG_DM_VDO is not set -# CONFIG_TARGET_CORE is not set -# CONFIG_FUSION is not set - -# -# IEEE 1394 (FireWire) support -# -# CONFIG_FIREWIRE is not set -# CONFIG_FIREWIRE_NOSY is not set -# end of IEEE 1394 (FireWire) support - -CONFIG_NETDEVICES=y -CONFIG_MII=y -CONFIG_NET_CORE=y -# CONFIG_BONDING is not set -CONFIG_DUMMY=m -CONFIG_WIREGUARD=m -# CONFIG_WIREGUARD_DEBUG is not set -# CONFIG_EQUALIZER is not set -# CONFIG_NET_FC is not set -# CONFIG_NET_TEAM is not set -CONFIG_MACVLAN=m -# CONFIG_MACVTAP is not set -CONFIG_IPVLAN_L3S=y -CONFIG_IPVLAN=m -# CONFIG_IPVTAP is not set -CONFIG_VXLAN=m -# CONFIG_GENEVE is not set -# CONFIG_BAREUDP is not set -# CONFIG_GTP is not set -# CONFIG_PFCP is not set -# CONFIG_MACSEC is not set -# CONFIG_NETCONSOLE is not set -CONFIG_TUN=m -# CONFIG_TUN_VNET_CROSS_LE is not set -CONFIG_VETH=m -# CONFIG_NLMON is not set -# CONFIG_NETKIT is not set -# CONFIG_ARCNET is not set -CONFIG_ETHERNET=y -CONFIG_NET_VENDOR_3COM=y -# CONFIG_VORTEX is not set -# CONFIG_TYPHOON is not set -CONFIG_NET_VENDOR_ADAPTEC=y -# CONFIG_ADAPTEC_STARFIRE is not set -CONFIG_NET_VENDOR_AGERE=y -# CONFIG_ET131X is not set -CONFIG_NET_VENDOR_ALACRITECH=y -# CONFIG_SLICOSS is not set -CONFIG_NET_VENDOR_ALTEON=y -# CONFIG_ACENIC is not set -# CONFIG_ALTERA_TSE is not set -CONFIG_NET_VENDOR_AMAZON=y -# CONFIG_ENA_ETHERNET is not set -CONFIG_NET_VENDOR_AMD=y -# CONFIG_AMD8111_ETH is not set -# CONFIG_PCNET32 is not set -# CONFIG_AMD_XGBE is not set -# CONFIG_PDS_CORE is not set -CONFIG_NET_VENDOR_AQUANTIA=y -# CONFIG_AQTION is not set -CONFIG_NET_VENDOR_ARC=y -# CONFIG_EMAC_ROCKCHIP is not set -CONFIG_NET_VENDOR_ASIX=y -# CONFIG_SPI_AX88796C is not set -CONFIG_NET_VENDOR_ATHEROS=y -# CONFIG_ATL2 is not set -# CONFIG_ATL1 is not set -# CONFIG_ATL1E is not set -# CONFIG_ATL1C is not set -# CONFIG_ALX is not set -CONFIG_NET_VENDOR_BROADCOM=y -# CONFIG_B44 is not set -# CONFIG_BCMGENET is not set -# CONFIG_BNX2 is not set -# CONFIG_CNIC is not set -# CONFIG_TIGON3 is not set -# CONFIG_BNX2X is not set -# CONFIG_SYSTEMPORT is not set -# CONFIG_BNXT is not set -CONFIG_NET_VENDOR_CADENCE=y -# CONFIG_MACB is not set -CONFIG_NET_VENDOR_CAVIUM=y -# CONFIG_THUNDER_NIC_PF is not set -# CONFIG_THUNDER_NIC_VF is not set -# CONFIG_THUNDER_NIC_BGX is not set -# CONFIG_THUNDER_NIC_RGX is not set -# CONFIG_CAVIUM_PTP is not set -# CONFIG_LIQUIDIO is not set -# CONFIG_LIQUIDIO_VF is not set -CONFIG_NET_VENDOR_CHELSIO=y -# CONFIG_CHELSIO_T1 is not set -# CONFIG_CHELSIO_T3 is not set -# CONFIG_CHELSIO_T4 is not set -# CONFIG_CHELSIO_T4VF is not set -CONFIG_NET_VENDOR_CISCO=y -# CONFIG_ENIC is not set -CONFIG_NET_VENDOR_CORTINA=y -# CONFIG_GEMINI_ETHERNET is not set -CONFIG_NET_VENDOR_DAVICOM=y -# CONFIG_DM9051 is not set -# CONFIG_DNET is not set -CONFIG_NET_VENDOR_DEC=y -# CONFIG_NET_TULIP is not set -CONFIG_NET_VENDOR_DLINK=y -# CONFIG_DL2K is not set -# CONFIG_SUNDANCE is not set -CONFIG_NET_VENDOR_EMULEX=y -# CONFIG_BE2NET is not set -CONFIG_NET_VENDOR_ENGLEDER=y -# CONFIG_TSNEP is not set -CONFIG_NET_VENDOR_EZCHIP=y -# CONFIG_EZCHIP_NPS_MANAGEMENT_ENET is not set -CONFIG_NET_VENDOR_FUNGIBLE=y -# CONFIG_FUN_ETH is not set -CONFIG_NET_VENDOR_GOOGLE=y -# CONFIG_GVE is not set -CONFIG_NET_VENDOR_HISILICON=y -# CONFIG_HIX5HD2_GMAC is not set -# CONFIG_HISI_FEMAC is not set -# CONFIG_HIP04_ETH is not set -# CONFIG_HNS_DSAF is not set -# CONFIG_HNS_ENET is not set -# CONFIG_HNS3 is not set -CONFIG_NET_VENDOR_HUAWEI=y -# CONFIG_HINIC is not set -CONFIG_NET_VENDOR_I825XX=y -CONFIG_NET_VENDOR_INTEL=y -# CONFIG_E100 is not set -# CONFIG_E1000 is not set -# CONFIG_E1000E is not set -# CONFIG_IGB is not set -# CONFIG_IGBVF is not set -# CONFIG_IXGBE is not set -# CONFIG_IXGBEVF is not set -# CONFIG_I40E is not set -# CONFIG_I40EVF is not set -# CONFIG_ICE is not set -# CONFIG_FM10K is not set -# CONFIG_IGC is not set -# CONFIG_IDPF is not set -# CONFIG_JME is not set -CONFIG_NET_VENDOR_ADI=y -CONFIG_NET_VENDOR_LITEX=y -# CONFIG_LITEX_LITEETH is not set -CONFIG_NET_VENDOR_MARVELL=y -# CONFIG_MVMDIO is not set -# CONFIG_SKGE is not set -# CONFIG_SKY2 is not set -# CONFIG_OCTEONTX2_AF is not set -# CONFIG_OCTEONTX2_PF is not set -# CONFIG_OCTEON_EP is not set -# CONFIG_OCTEON_EP_VF is not set -CONFIG_NET_VENDOR_MELLANOX=y -# CONFIG_MLX4_EN is not set -# CONFIG_MLX5_CORE is not set -# CONFIG_MLXSW_CORE is not set -# CONFIG_MLXFW is not set -CONFIG_NET_VENDOR_META=y -CONFIG_NET_VENDOR_MICREL=y -# CONFIG_KS8842 is not set -# CONFIG_KS8851 is not set -# CONFIG_KS8851_MLL is not set -# CONFIG_KSZ884X_PCI is not set -CONFIG_NET_VENDOR_MICROCHIP=y -# CONFIG_ENC28J60 is not set -# CONFIG_ENCX24J600 is not set -# CONFIG_LAN743X is not set -# CONFIG_LAN865X is not set -# CONFIG_VCAP is not set -CONFIG_NET_VENDOR_MICROSEMI=y -CONFIG_NET_VENDOR_MICROSOFT=y -CONFIG_NET_VENDOR_MYRI=y -# CONFIG_MYRI10GE is not set -# CONFIG_FEALNX is not set -CONFIG_NET_VENDOR_NI=y -# CONFIG_NI_XGE_MANAGEMENT_ENET is not set -CONFIG_NET_VENDOR_NATSEMI=y -# CONFIG_NATSEMI is not set -# CONFIG_NS83820 is not set -CONFIG_NET_VENDOR_NETERION=y -# CONFIG_S2IO is not set -CONFIG_NET_VENDOR_NETRONOME=y -# CONFIG_NFP is not set -CONFIG_NET_VENDOR_8390=y -# CONFIG_NE2K_PCI is not set -CONFIG_NET_VENDOR_NVIDIA=y -# CONFIG_FORCEDETH is not set -CONFIG_NET_VENDOR_OKI=y -# CONFIG_ETHOC is not set -# CONFIG_OA_TC6 is not set -CONFIG_NET_VENDOR_PACKET_ENGINES=y -# CONFIG_HAMACHI is not set -# CONFIG_YELLOWFIN is not set -CONFIG_NET_VENDOR_PENSANDO=y -# CONFIG_IONIC is not set -CONFIG_NET_VENDOR_QLOGIC=y -# CONFIG_QLA3XXX is not set -# CONFIG_QLCNIC is not set -# CONFIG_NETXEN_NIC is not set -# CONFIG_QED is not set -CONFIG_NET_VENDOR_BROCADE=y -# CONFIG_BNA is not set -CONFIG_NET_VENDOR_QUALCOMM=y -# CONFIG_QCA7000_SPI is not set -# CONFIG_QCA7000_UART is not set -# CONFIG_QCOM_EMAC is not set -# CONFIG_RMNET is not set -CONFIG_NET_VENDOR_RDC=y -# CONFIG_R6040 is not set -CONFIG_NET_VENDOR_REALTEK=y -# CONFIG_8139CP is not set -# CONFIG_8139TOO is not set -# CONFIG_R8169 is not set -# CONFIG_RTASE is not set -CONFIG_NET_VENDOR_RENESAS=y -CONFIG_NET_VENDOR_ROCKER=y -CONFIG_NET_VENDOR_SAMSUNG=y -# CONFIG_SXGBE_ETH is not set -CONFIG_NET_VENDOR_SEEQ=y -CONFIG_NET_VENDOR_SILAN=y -# CONFIG_SC92031 is not set -CONFIG_NET_VENDOR_SIS=y -# CONFIG_SIS900 is not set -# CONFIG_SIS190 is not set -CONFIG_NET_VENDOR_SOLARFLARE=y -# CONFIG_SFC is not set -# CONFIG_SFC_FALCON is not set -# CONFIG_SFC_SIENA is not set -CONFIG_NET_VENDOR_SMSC=y -# CONFIG_SMC91X is not set -# CONFIG_EPIC100 is not set -# CONFIG_SMSC911X is not set -# CONFIG_SMSC9420 is not set -CONFIG_NET_VENDOR_SOCIONEXT=y -CONFIG_NET_VENDOR_STMICRO=y -CONFIG_STMMAC_ETH=y -# CONFIG_STMMAC_SELFTESTS is not set -CONFIG_STMMAC_PLATFORM=y -# CONFIG_DWMAC_DWC_QOS_ETH is not set -CONFIG_DWMAC_GENERIC=y -CONFIG_DWMAC_ROCKCHIP=y -# CONFIG_DWMAC_INTEL_PLAT is not set -# CONFIG_STMMAC_PCI is not set -CONFIG_NET_VENDOR_SUN=y -# CONFIG_HAPPYMEAL is not set -# CONFIG_SUNGEM is not set -# CONFIG_CASSINI is not set -# CONFIG_NIU is not set -CONFIG_NET_VENDOR_SYNOPSYS=y -# CONFIG_DWC_XLGMAC is not set -CONFIG_NET_VENDOR_TEHUTI=y -# CONFIG_TEHUTI is not set -# CONFIG_TEHUTI_TN40 is not set -CONFIG_NET_VENDOR_TI=y -# CONFIG_TI_CPSW_PHY_SEL is not set -# CONFIG_TLAN is not set -CONFIG_NET_VENDOR_VERTEXCOM=y -# CONFIG_MSE102X is not set -CONFIG_NET_VENDOR_VIA=y -# CONFIG_VIA_RHINE is not set -# CONFIG_VIA_VELOCITY is not set -CONFIG_NET_VENDOR_WANGXUN=y -# CONFIG_NGBE is not set -CONFIG_NET_VENDOR_WIZNET=y -# CONFIG_WIZNET_W5100 is not set -# CONFIG_WIZNET_W5300 is not set -CONFIG_NET_VENDOR_XILINX=y -# CONFIG_XILINX_EMACLITE is not set -# CONFIG_XILINX_LL_TEMAC is not set -# CONFIG_FDDI is not set -# CONFIG_HIPPI is not set -CONFIG_PHYLINK=y -CONFIG_PHYLIB=y -CONFIG_SWPHY=y -# CONFIG_LED_TRIGGER_PHY is not set -CONFIG_PHYLIB_LEDS=y -CONFIG_FIXED_PHY=y -# CONFIG_SFP is not set - -# -# MII PHY device drivers -# -# CONFIG_AIR_EN8811H_PHY is not set -# CONFIG_AMD_PHY is not set -# CONFIG_ADIN_PHY is not set -# CONFIG_ADIN1100_PHY is not set -# CONFIG_AQUANTIA_PHY is not set -# CONFIG_AX88796B_PHY is not set -# CONFIG_BROADCOM_PHY is not set -# CONFIG_BCM54140_PHY is not set -# CONFIG_BCM7XXX_PHY is not set -# CONFIG_BCM84881_PHY is not set -# CONFIG_BCM87XX_PHY is not set -# CONFIG_CICADA_PHY is not set -# CONFIG_CORTINA_PHY is not set -# CONFIG_DAVICOM_PHY is not set -# CONFIG_ICPLUS_PHY is not set -# CONFIG_LXT_PHY is not set -# CONFIG_INTEL_XWAY_PHY is not set -# CONFIG_LSI_ET1011C_PHY is not set -# CONFIG_MARVELL_PHY is not set -# CONFIG_MARVELL_10G_PHY is not set -# CONFIG_MARVELL_88Q2XXX_PHY is not set -# CONFIG_MARVELL_88X2222_PHY is not set -# CONFIG_MAXLINEAR_GPHY is not set -# CONFIG_MEDIATEK_GE_PHY is not set -# CONFIG_MICREL_PHY is not set -# CONFIG_MICROCHIP_T1S_PHY is not set -# CONFIG_MICROCHIP_PHY is not set -# CONFIG_MICROCHIP_T1_PHY is not set -# CONFIG_MICROSEMI_PHY is not set -CONFIG_MOTORCOMM_PHY=y -# CONFIG_NATIONAL_PHY is not set -# CONFIG_NXP_CBTX_PHY is not set -# CONFIG_NXP_C45_TJA11XX_PHY is not set -# CONFIG_NXP_TJA11XX_PHY is not set -# CONFIG_NCN26000_PHY is not set -# CONFIG_AT803X_PHY is not set -# CONFIG_QCA83XX_PHY is not set -# CONFIG_QCA808X_PHY is not set -# CONFIG_QCA807X_PHY is not set -# CONFIG_QSEMI_PHY is not set -# CONFIG_REALTEK_PHY is not set -# CONFIG_RENESAS_PHY is not set -# CONFIG_ROCKCHIP_PHY is not set -# CONFIG_SMSC_PHY is not set -# CONFIG_STE10XP is not set -# CONFIG_TERANETICS_PHY is not set -# CONFIG_DP83822_PHY is not set -# CONFIG_DP83TC811_PHY is not set -# CONFIG_DP83848_PHY is not set -# CONFIG_DP83867_PHY is not set -# CONFIG_DP83869_PHY is not set -# CONFIG_DP83TD510_PHY is not set -# CONFIG_DP83TG720_PHY is not set -# CONFIG_VITESSE_PHY is not set -# CONFIG_XILINX_GMII2RGMII is not set -# CONFIG_MICREL_KS8995MA is not set -# CONFIG_PSE_CONTROLLER is not set -CONFIG_MDIO_DEVICE=y -CONFIG_MDIO_BUS=y -CONFIG_FWNODE_MDIO=y -CONFIG_OF_MDIO=y -CONFIG_MDIO_DEVRES=y -# CONFIG_MDIO_BITBANG is not set -# CONFIG_MDIO_BCM_UNIMAC is not set -# CONFIG_MDIO_HISI_FEMAC is not set -# CONFIG_MDIO_MVUSB is not set -# CONFIG_MDIO_MSCC_MIIM is not set -# CONFIG_MDIO_OCTEON is not set -# CONFIG_MDIO_IPQ4019 is not set -# CONFIG_MDIO_IPQ8064 is not set -# CONFIG_MDIO_THUNDER is not set - -# -# MDIO Multiplexers -# -# CONFIG_MDIO_BUS_MUX_GPIO is not set -# CONFIG_MDIO_BUS_MUX_MULTIPLEXER is not set -# CONFIG_MDIO_BUS_MUX_MMIOREG is not set - -# -# PCS device drivers -# -CONFIG_PCS_XPCS=y -# end of PCS device drivers - -# CONFIG_PPP is not set -# CONFIG_SLIP is not set -CONFIG_USB_NET_DRIVERS=m -# CONFIG_USB_CATC is not set -# CONFIG_USB_KAWETH is not set -# CONFIG_USB_PEGASUS is not set -# CONFIG_USB_RTL8150 is not set -# CONFIG_USB_RTL8152 is not set -# CONFIG_USB_LAN78XX is not set -CONFIG_USB_USBNET=m -# CONFIG_USB_NET_AX8817X is not set -# CONFIG_USB_NET_AX88179_178A is not set -CONFIG_USB_NET_CDCETHER=m -CONFIG_USB_NET_CDC_EEM=m -CONFIG_USB_NET_CDC_NCM=m -# CONFIG_USB_NET_HUAWEI_CDC_NCM is not set -# CONFIG_USB_NET_CDC_MBIM is not set -# CONFIG_USB_NET_DM9601 is not set -# CONFIG_USB_NET_SR9700 is not set -# CONFIG_USB_NET_SR9800 is not set -# CONFIG_USB_NET_SMSC75XX is not set -# CONFIG_USB_NET_SMSC95XX is not set -# CONFIG_USB_NET_GL620A is not set -# CONFIG_USB_NET_NET1080 is not set -# CONFIG_USB_NET_PLUSB is not set -# CONFIG_USB_NET_MCS7830 is not set -# CONFIG_USB_NET_RNDIS_HOST is not set -# CONFIG_USB_NET_CDC_SUBSET is not set -# CONFIG_USB_NET_ZAURUS is not set -# CONFIG_USB_NET_CX82310_ETH is not set -# CONFIG_USB_NET_KALMIA is not set -# CONFIG_USB_NET_QMI_WWAN is not set -# CONFIG_USB_HSO is not set -# CONFIG_USB_NET_INT51X1 is not set -# CONFIG_USB_IPHETH is not set -# CONFIG_USB_SIERRA_NET is not set -# CONFIG_USB_VL600 is not set -# CONFIG_USB_NET_CH9200 is not set -# CONFIG_USB_NET_AQC111 is not set -CONFIG_USB_RTL8153_ECM=m -CONFIG_WLAN=y -# CONFIG_WLAN_VENDOR_ADMTEK is not set -# CONFIG_WLAN_VENDOR_ATH is not set -# CONFIG_WLAN_VENDOR_ATMEL is not set -CONFIG_WLAN_VENDOR_BROADCOM=y -# CONFIG_B43 is not set -# CONFIG_B43LEGACY is not set -CONFIG_BRCMUTIL=m -# CONFIG_BRCMSMAC is not set -CONFIG_BRCMFMAC=m -CONFIG_BRCMFMAC_PROTO_BCDC=y -CONFIG_BRCMFMAC_SDIO=y -# CONFIG_BRCMFMAC_USB is not set -# CONFIG_BRCMFMAC_PCIE is not set -# CONFIG_BRCM_TRACING is not set -# CONFIG_BRCMDBG is not set -# CONFIG_WLAN_VENDOR_INTEL is not set -# CONFIG_WLAN_VENDOR_INTERSIL is not set -# CONFIG_WLAN_VENDOR_MARVELL is not set -# CONFIG_WLAN_VENDOR_MEDIATEK is not set -# CONFIG_WLAN_VENDOR_MICROCHIP is not set -CONFIG_WLAN_VENDOR_PURELIFI=y -# CONFIG_PLFXLC is not set -# CONFIG_WLAN_VENDOR_RALINK is not set -# CONFIG_WLAN_VENDOR_REALTEK is not set -# CONFIG_WLAN_VENDOR_RSI is not set -CONFIG_WLAN_VENDOR_SILABS=y -# CONFIG_WFX is not set -# CONFIG_WLAN_VENDOR_ST is not set -# CONFIG_WLAN_VENDOR_TI is not set -# CONFIG_WLAN_VENDOR_ZYDAS is not set -# CONFIG_WLAN_VENDOR_QUANTENNA is not set -# CONFIG_MAC80211_HWSIM is not set -# CONFIG_VIRT_WIFI is not set -# CONFIG_WAN is not set - -# -# Wireless WAN -# -# CONFIG_WWAN is not set -# end of Wireless WAN - -# CONFIG_VMXNET3 is not set -# CONFIG_NETDEVSIM is not set -# CONFIG_NET_FAILOVER is not set -# CONFIG_ISDN is not set - -# -# Input device support -# -CONFIG_INPUT=y -CONFIG_INPUT_LEDS=y -CONFIG_INPUT_FF_MEMLESS=y -# CONFIG_INPUT_SPARSEKMAP is not set -# CONFIG_INPUT_MATRIXKMAP is not set - -# -# Userland interfaces -# -CONFIG_INPUT_MOUSEDEV=m -# CONFIG_INPUT_MOUSEDEV_PSAUX is not set -CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 -CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 -# CONFIG_INPUT_JOYDEV is not set -CONFIG_INPUT_EVDEV=y -# CONFIG_INPUT_EVBUG is not set - -# -# Input Device Drivers -# -CONFIG_INPUT_KEYBOARD=y -CONFIG_KEYBOARD_ADC=m -# CONFIG_KEYBOARD_ADP5588 is not set -# CONFIG_KEYBOARD_ADP5589 is not set -# CONFIG_KEYBOARD_ATKBD is not set -# CONFIG_KEYBOARD_QT1050 is not set -# CONFIG_KEYBOARD_QT1070 is not set -# CONFIG_KEYBOARD_QT2160 is not set -# CONFIG_KEYBOARD_DLINK_DIR685 is not set -# CONFIG_KEYBOARD_LKKBD is not set -CONFIG_KEYBOARD_GPIO=y -# CONFIG_KEYBOARD_GPIO_POLLED is not set -# CONFIG_KEYBOARD_TCA6416 is not set -# CONFIG_KEYBOARD_TCA8418 is not set -# CONFIG_KEYBOARD_MATRIX is not set -# CONFIG_KEYBOARD_LM8323 is not set -# CONFIG_KEYBOARD_LM8333 is not set -# CONFIG_KEYBOARD_MAX7359 is not set -# CONFIG_KEYBOARD_MPR121 is not set -# CONFIG_KEYBOARD_NEWTON is not set -# CONFIG_KEYBOARD_OPENCORES is not set -# CONFIG_KEYBOARD_PINEPHONE is not set -# CONFIG_KEYBOARD_SAMSUNG is not set -# CONFIG_KEYBOARD_STOWAWAY is not set -# CONFIG_KEYBOARD_SUNKBD is not set -# CONFIG_KEYBOARD_OMAP4 is not set -# CONFIG_KEYBOARD_TM2_TOUCHKEY is not set -# CONFIG_KEYBOARD_XTKBD is not set -# CONFIG_KEYBOARD_CAP11XX is not set -# CONFIG_KEYBOARD_BCM is not set -# CONFIG_KEYBOARD_CYPRESS_SF is not set -# CONFIG_INPUT_MOUSE is not set -# CONFIG_INPUT_JOYSTICK is not set -# CONFIG_INPUT_TABLET is not set -CONFIG_INPUT_TOUCHSCREEN=y -# CONFIG_TOUCHSCREEN_ADS7846 is not set -# CONFIG_TOUCHSCREEN_AD7877 is not set -# CONFIG_TOUCHSCREEN_AD7879 is not set -# CONFIG_TOUCHSCREEN_ADC is not set -# CONFIG_TOUCHSCREEN_AR1021_I2C is not set -# CONFIG_TOUCHSCREEN_ATMEL_MXT is not set -# CONFIG_TOUCHSCREEN_AUO_PIXCIR is not set -# CONFIG_TOUCHSCREEN_BU21013 is not set -# CONFIG_TOUCHSCREEN_BU21029 is not set -# CONFIG_TOUCHSCREEN_CHIPONE_ICN8318 is not set -# CONFIG_TOUCHSCREEN_CY8CTMA140 is not set -# CONFIG_TOUCHSCREEN_CY8CTMG110 is not set -# CONFIG_TOUCHSCREEN_CYTTSP_CORE is not set -CONFIG_TOUCHSCREEN_CYTTSP5=m -# CONFIG_TOUCHSCREEN_DYNAPRO is not set -# CONFIG_TOUCHSCREEN_HAMPSHIRE is not set -# CONFIG_TOUCHSCREEN_EETI is not set -# CONFIG_TOUCHSCREEN_EGALAX is not set -# CONFIG_TOUCHSCREEN_EGALAX_SERIAL is not set -# CONFIG_TOUCHSCREEN_EXC3000 is not set -# CONFIG_TOUCHSCREEN_FUJITSU is not set -# CONFIG_TOUCHSCREEN_GOODIX is not set -# CONFIG_TOUCHSCREEN_GOODIX_BERLIN_I2C is not set -# CONFIG_TOUCHSCREEN_GOODIX_BERLIN_SPI is not set -# CONFIG_TOUCHSCREEN_HIDEEP is not set -# CONFIG_TOUCHSCREEN_HYCON_HY46XX is not set -# CONFIG_TOUCHSCREEN_HYNITRON_CSTXXX is not set -# CONFIG_TOUCHSCREEN_ILI210X is not set -# CONFIG_TOUCHSCREEN_ILITEK is not set -# CONFIG_TOUCHSCREEN_S6SY761 is not set -# CONFIG_TOUCHSCREEN_GUNZE is not set -# CONFIG_TOUCHSCREEN_EKTF2127 is not set -# CONFIG_TOUCHSCREEN_ELAN is not set -# CONFIG_TOUCHSCREEN_ELO is not set -# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set -# CONFIG_TOUCHSCREEN_WACOM_I2C is not set -# CONFIG_TOUCHSCREEN_MAX11801 is not set -# CONFIG_TOUCHSCREEN_MMS114 is not set -# CONFIG_TOUCHSCREEN_MELFAS_MIP4 is not set -# CONFIG_TOUCHSCREEN_MSG2638 is not set -# CONFIG_TOUCHSCREEN_MTOUCH is not set -# CONFIG_TOUCHSCREEN_NOVATEK_NVT_TS is not set -# CONFIG_TOUCHSCREEN_IMAGIS is not set -# CONFIG_TOUCHSCREEN_IMX6UL_TSC is not set -# CONFIG_TOUCHSCREEN_INEXIO is not set -# CONFIG_TOUCHSCREEN_PENMOUNT is not set -# CONFIG_TOUCHSCREEN_EDT_FT5X06 is not set -# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set -# CONFIG_TOUCHSCREEN_TOUCHWIN is not set -# CONFIG_TOUCHSCREEN_PIXCIR is not set -# CONFIG_TOUCHSCREEN_WDT87XX_I2C is not set -# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set -# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set -# CONFIG_TOUCHSCREEN_TSC_SERIO is not set -# CONFIG_TOUCHSCREEN_TSC2004 is not set -# CONFIG_TOUCHSCREEN_TSC2005 is not set -# CONFIG_TOUCHSCREEN_TSC2007 is not set -# CONFIG_TOUCHSCREEN_RM_TS is not set -# CONFIG_TOUCHSCREEN_SILEAD is not set -# CONFIG_TOUCHSCREEN_SIS_I2C is not set -# CONFIG_TOUCHSCREEN_ST1232 is not set -# CONFIG_TOUCHSCREEN_STMFTS is not set -# CONFIG_TOUCHSCREEN_SURFACE3_SPI is not set -# CONFIG_TOUCHSCREEN_SX8654 is not set -# CONFIG_TOUCHSCREEN_TPS6507X is not set -# CONFIG_TOUCHSCREEN_ZET6223 is not set -# CONFIG_TOUCHSCREEN_ZFORCE is not set -# CONFIG_TOUCHSCREEN_COLIBRI_VF50 is not set -# CONFIG_TOUCHSCREEN_ROHM_BU21023 is not set -# CONFIG_TOUCHSCREEN_IQS5XX is not set -# CONFIG_TOUCHSCREEN_IQS7211 is not set -# CONFIG_TOUCHSCREEN_ZINITIX is not set -# CONFIG_TOUCHSCREEN_HIMAX_HX83112B is not set -CONFIG_INPUT_MISC=y -# CONFIG_INPUT_AD714X is not set -# CONFIG_INPUT_ATMEL_CAPTOUCH is not set -# CONFIG_INPUT_BMA150 is not set -# CONFIG_INPUT_E3X0_BUTTON is not set -# CONFIG_INPUT_MMA8450 is not set -# CONFIG_INPUT_GPIO_BEEPER is not set -# CONFIG_INPUT_GPIO_DECODER is not set -# CONFIG_INPUT_GPIO_VIBRA is not set -# CONFIG_INPUT_ATI_REMOTE2 is not set -# CONFIG_INPUT_KEYSPAN_REMOTE is not set -# CONFIG_INPUT_KXTJ9 is not set -# CONFIG_INPUT_POWERMATE is not set -# CONFIG_INPUT_YEALINK is not set -# CONFIG_INPUT_CM109 is not set -# CONFIG_INPUT_REGULATOR_HAPTIC is not set -CONFIG_INPUT_UINPUT=m -# CONFIG_INPUT_PCF8574 is not set -# CONFIG_INPUT_PWM_BEEPER is not set -# CONFIG_INPUT_PWM_VIBRA is not set -CONFIG_INPUT_RK805_PWRKEY=y -# CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set -# CONFIG_INPUT_DA7280_HAPTICS is not set -# CONFIG_INPUT_ADXL34X is not set -# CONFIG_INPUT_IMS_PCU is not set -# CONFIG_INPUT_IQS269A is not set -# CONFIG_INPUT_IQS626A is not set -# CONFIG_INPUT_IQS7222 is not set -# CONFIG_INPUT_CMA3000 is not set -# CONFIG_INPUT_DRV260X_HAPTICS is not set -# CONFIG_INPUT_DRV2665_HAPTICS is not set -# CONFIG_INPUT_DRV2667_HAPTICS is not set -CONFIG_INPUT_WS8100_PEN=m -# CONFIG_RMI4_CORE is not set - -# -# Hardware I/O ports -# -# CONFIG_SERIO is not set -# CONFIG_GAMEPORT is not set -# end of Hardware I/O ports -# end of Input device support - -# -# Character devices -# -CONFIG_TTY=y -CONFIG_VT=y -CONFIG_CONSOLE_TRANSLATIONS=y -CONFIG_VT_CONSOLE=y -CONFIG_VT_CONSOLE_SLEEP=y -CONFIG_VT_HW_CONSOLE_BINDING=y -CONFIG_UNIX98_PTYS=y -# CONFIG_LEGACY_PTYS is not set -CONFIG_LEGACY_TIOCSTI=y -# CONFIG_LDISC_AUTOLOAD is not set - -# -# Serial drivers -# -CONFIG_SERIAL_EARLYCON=y -CONFIG_SERIAL_8250=y -# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set -CONFIG_SERIAL_8250_16550A_VARIANTS=y -# CONFIG_SERIAL_8250_FINTEK is not set -CONFIG_SERIAL_8250_CONSOLE=y -CONFIG_SERIAL_8250_DMA=y -CONFIG_SERIAL_8250_PCILIB=y -CONFIG_SERIAL_8250_PCI=y -CONFIG_SERIAL_8250_EXAR=y -CONFIG_SERIAL_8250_NR_UARTS=4 -CONFIG_SERIAL_8250_RUNTIME_UARTS=4 -# CONFIG_SERIAL_8250_EXTENDED is not set -# CONFIG_SERIAL_8250_PCI1XXXX is not set -CONFIG_SERIAL_8250_DWLIB=y -CONFIG_SERIAL_8250_FSL=y -CONFIG_SERIAL_8250_DW=y -# CONFIG_SERIAL_8250_RT288X is not set -CONFIG_SERIAL_8250_PERICOM=y -CONFIG_SERIAL_OF_PLATFORM=y - -# -# Non-8250 serial port support -# -# CONFIG_SERIAL_AMBA_PL010 is not set -# CONFIG_SERIAL_AMBA_PL011 is not set -# CONFIG_SERIAL_EARLYCON_SEMIHOST is not set -# CONFIG_SERIAL_MAX3100 is not set -# CONFIG_SERIAL_MAX310X is not set -# CONFIG_SERIAL_UARTLITE is not set -CONFIG_SERIAL_CORE=y -CONFIG_SERIAL_CORE_CONSOLE=y -# CONFIG_SERIAL_JSM is not set -# CONFIG_SERIAL_SIFIVE is not set -# CONFIG_SERIAL_SCCNXP is not set -# CONFIG_SERIAL_SC16IS7XX is not set -# CONFIG_SERIAL_ALTERA_JTAGUART is not set -# CONFIG_SERIAL_ALTERA_UART is not set -# CONFIG_SERIAL_XILINX_PS_UART is not set -# CONFIG_SERIAL_ARC is not set -# CONFIG_SERIAL_RP2 is not set -# CONFIG_SERIAL_FSL_LPUART is not set -# CONFIG_SERIAL_FSL_LINFLEXUART is not set -# CONFIG_SERIAL_CONEXANT_DIGICOLOR is not set -# CONFIG_SERIAL_SPRD is not set -# end of Serial drivers - -CONFIG_SERIAL_MCTRL_GPIO=y -# CONFIG_SERIAL_NONSTANDARD is not set -# CONFIG_N_GSM is not set -# CONFIG_NOZOMI is not set -# CONFIG_NULL_TTY is not set -# CONFIG_HVC_DCC is not set -CONFIG_SERIAL_DEV_BUS=y -CONFIG_SERIAL_DEV_CTRL_TTYPORT=y -# CONFIG_TTY_PRINTK is not set -# CONFIG_VIRTIO_CONSOLE is not set -# CONFIG_IPMI_HANDLER is not set -# CONFIG_HW_RANDOM is not set -# CONFIG_APPLICOM is not set -CONFIG_DEVMEM=y -CONFIG_DEVPORT=y -# CONFIG_TCG_TPM is not set -# CONFIG_XILLYBUS is not set -# CONFIG_XILLYUSB is not set -# end of Character devices - -# -# I2C support -# -CONFIG_I2C=y -CONFIG_I2C_BOARDINFO=y -CONFIG_I2C_CHARDEV=y -# CONFIG_I2C_MUX is not set -# CONFIG_I2C_HELPER_AUTO is not set -# CONFIG_I2C_SMBUS is not set - -# -# I2C Algorithms -# -CONFIG_I2C_ALGOBIT=y -# CONFIG_I2C_ALGOPCF is not set -# CONFIG_I2C_ALGOPCA is not set -# end of I2C Algorithms - -# -# I2C Hardware Bus support -# - -# -# PC SMBus host controller drivers -# -# CONFIG_I2C_ALI1535 is not set -# CONFIG_I2C_ALI1563 is not set -# CONFIG_I2C_ALI15X3 is not set -# CONFIG_I2C_AMD756 is not set -# CONFIG_I2C_AMD8111 is not set -# CONFIG_I2C_I801 is not set -# CONFIG_I2C_ISCH is not set -# CONFIG_I2C_PIIX4 is not set -# CONFIG_I2C_NFORCE2 is not set -# CONFIG_I2C_NVIDIA_GPU is not set -# CONFIG_I2C_SIS5595 is not set -# CONFIG_I2C_SIS630 is not set -# CONFIG_I2C_SIS96X is not set -# CONFIG_I2C_VIA is not set -# CONFIG_I2C_VIAPRO is not set - -# -# I2C system bus drivers (mostly embedded / system-on-chip) -# -# CONFIG_I2C_CADENCE is not set -# CONFIG_I2C_CBUS_GPIO is not set -# CONFIG_I2C_DESIGNWARE_CORE is not set -# CONFIG_I2C_EMEV2 is not set -# CONFIG_I2C_GPIO is not set -# CONFIG_I2C_HISI is not set -# CONFIG_I2C_NOMADIK is not set -# CONFIG_I2C_OCORES is not set -# CONFIG_I2C_PCA_PLATFORM is not set -CONFIG_I2C_RK3X=y -# CONFIG_I2C_SIMTEC is not set -# CONFIG_I2C_THUNDERX is not set -# CONFIG_I2C_XILINX is not set - -# -# External I2C/SMBus adapter drivers -# -# CONFIG_I2C_DIOLAN_U2C is not set -# CONFIG_I2C_CP2615 is not set -# CONFIG_I2C_PCI1XXXX is not set -# CONFIG_I2C_ROBOTFUZZ_OSIF is not set -# CONFIG_I2C_TAOS_EVM is not set -# CONFIG_I2C_TINY_USB is not set - -# -# Other I2C/SMBus bus drivers -# -# CONFIG_I2C_VIRTIO is not set -# end of I2C Hardware Bus support - -# CONFIG_I2C_STUB is not set -# CONFIG_I2C_SLAVE is not set -# CONFIG_I2C_DEBUG_CORE is not set -# CONFIG_I2C_DEBUG_ALGO is not set -# CONFIG_I2C_DEBUG_BUS is not set -# end of I2C support - -# CONFIG_I3C is not set -CONFIG_SPI=y -# CONFIG_SPI_DEBUG is not set -CONFIG_SPI_MASTER=y -# CONFIG_SPI_MEM is not set - -# -# SPI Master Controller Drivers -# -# CONFIG_SPI_ALTERA is not set -# CONFIG_SPI_AXI_SPI_ENGINE is not set -CONFIG_SPI_BITBANG=y -# CONFIG_SPI_CADENCE is not set -# CONFIG_SPI_CADENCE_QUADSPI is not set -# CONFIG_SPI_CH341 is not set -# CONFIG_SPI_DESIGNWARE is not set -CONFIG_SPI_GPIO=y -# CONFIG_SPI_FSL_SPI is not set -# CONFIG_SPI_MICROCHIP_CORE is not set -# CONFIG_SPI_MICROCHIP_CORE_QSPI is not set -# CONFIG_SPI_OC_TINY is not set -# CONFIG_SPI_PCI1XXXX is not set -# CONFIG_SPI_PL022 is not set -CONFIG_SPI_ROCKCHIP=y -# CONFIG_SPI_ROCKCHIP_SFC is not set -# CONFIG_SPI_SC18IS602 is not set -# CONFIG_SPI_SIFIVE is not set -# CONFIG_SPI_MXIC is not set -# CONFIG_SPI_THUNDERX is not set -# CONFIG_SPI_XCOMM is not set -# CONFIG_SPI_XILINX is not set -# CONFIG_SPI_AMD is not set - -# -# SPI Multiplexer support -# -# CONFIG_SPI_MUX is not set - -# -# SPI Protocol Masters -# -CONFIG_SPI_SPIDEV=y -# CONFIG_SPI_LOOPBACK_TEST is not set -# CONFIG_SPI_TLE62X0 is not set -# CONFIG_SPI_SLAVE is not set -CONFIG_SPI_DYNAMIC=y -# CONFIG_SPMI is not set -# CONFIG_HSI is not set -CONFIG_PPS=y -# CONFIG_PPS_DEBUG is not set - -# -# PPS clients support -# -# CONFIG_PPS_CLIENT_KTIMER is not set -# CONFIG_PPS_CLIENT_LDISC is not set -# CONFIG_PPS_CLIENT_GPIO is not set - -# -# PPS generators support -# - -# -# PTP clock support -# -CONFIG_PTP_1588_CLOCK=y -CONFIG_PTP_1588_CLOCK_OPTIONAL=y - -# -# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks. -# -CONFIG_PTP_1588_CLOCK_KVM=y -# CONFIG_PTP_1588_CLOCK_IDT82P33 is not set -# CONFIG_PTP_1588_CLOCK_IDTCM is not set -# CONFIG_PTP_1588_CLOCK_FC3W is not set -# CONFIG_PTP_1588_CLOCK_MOCK is not set -# end of PTP clock support - -CONFIG_PINCTRL=y -CONFIG_PINMUX=y -CONFIG_PINCONF=y -CONFIG_GENERIC_PINCONF=y -# CONFIG_DEBUG_PINCTRL is not set -# CONFIG_PINCTRL_AW9523 is not set -# CONFIG_PINCTRL_CY8C95X0 is not set -# CONFIG_PINCTRL_MCP23S08 is not set -# CONFIG_PINCTRL_MICROCHIP_SGPIO is not set -# CONFIG_PINCTRL_OCELOT is not set -# CONFIG_PINCTRL_RK805 is not set -CONFIG_PINCTRL_ROCKCHIP=y -# CONFIG_PINCTRL_SCMI is not set -# CONFIG_PINCTRL_SINGLE is not set -# CONFIG_PINCTRL_STMFX is not set -# CONFIG_PINCTRL_SX150X is not set -# CONFIG_PINCTRL_IMX_SCMI is not set - -# -# Renesas pinctrl drivers -# -# end of Renesas pinctrl drivers - -CONFIG_GPIOLIB=y -CONFIG_GPIOLIB_FASTPATH_LIMIT=512 -CONFIG_OF_GPIO=y -CONFIG_GPIOLIB_IRQCHIP=y -# CONFIG_DEBUG_GPIO is not set -CONFIG_GPIO_SYSFS=y -CONFIG_GPIO_CDEV=y -CONFIG_GPIO_CDEV_V1=y - -# -# Memory mapped GPIO drivers -# -# CONFIG_GPIO_74XX_MMIO is not set -# CONFIG_GPIO_ALTERA is not set -# CONFIG_GPIO_CADENCE is not set -# CONFIG_GPIO_DWAPB is not set -# CONFIG_GPIO_EXAR is not set -# CONFIG_GPIO_FTGPIO010 is not set -# CONFIG_GPIO_GENERIC_PLATFORM is not set -# CONFIG_GPIO_GRGPIO is not set -# CONFIG_GPIO_HISI is not set -# CONFIG_GPIO_HLWD is not set -# CONFIG_GPIO_LOGICVC is not set -# CONFIG_GPIO_MB86S7X is not set -# CONFIG_GPIO_PL061 is not set -CONFIG_GPIO_ROCKCHIP=y -# CONFIG_GPIO_SIFIVE is not set -# CONFIG_GPIO_SYSCON is not set -# CONFIG_GPIO_XGENE is not set -# CONFIG_GPIO_XILINX is not set -# CONFIG_GPIO_AMD_FCH is not set -# end of Memory mapped GPIO drivers - -# -# I2C GPIO expanders -# -# CONFIG_GPIO_ADNP is not set -# CONFIG_GPIO_FXL6408 is not set -# CONFIG_GPIO_DS4520 is not set -# CONFIG_GPIO_GW_PLD is not set -# CONFIG_GPIO_MAX7300 is not set -# CONFIG_GPIO_MAX732X is not set -# CONFIG_GPIO_PCA953X is not set -# CONFIG_GPIO_PCA9570 is not set -# CONFIG_GPIO_PCF857X is not set -# CONFIG_GPIO_TPIC2810 is not set -# end of I2C GPIO expanders - -# -# MFD GPIO expanders -# -# end of MFD GPIO expanders - -# -# PCI GPIO expanders -# -# CONFIG_GPIO_BT8XX is not set -# CONFIG_GPIO_PCI_IDIO_16 is not set -# CONFIG_GPIO_PCIE_IDIO_24 is not set -# CONFIG_GPIO_RDC321X is not set -# end of PCI GPIO expanders - -# -# SPI GPIO expanders -# -# CONFIG_GPIO_74X164 is not set -# CONFIG_GPIO_MAX3191X is not set -# CONFIG_GPIO_MAX7301 is not set -# CONFIG_GPIO_MC33880 is not set -# CONFIG_GPIO_PISOSR is not set -# CONFIG_GPIO_XRA1403 is not set -# end of SPI GPIO expanders - -# -# USB GPIO expanders -# -# end of USB GPIO expanders - -# -# Virtual GPIO drivers -# -# CONFIG_GPIO_AGGREGATOR is not set -# CONFIG_GPIO_LATCH is not set -# CONFIG_GPIO_MOCKUP is not set -# CONFIG_GPIO_SIM is not set -# end of Virtual GPIO drivers - -# -# GPIO Debugging utilities -# -# CONFIG_GPIO_SLOPPY_LOGIC_ANALYZER is not set -# CONFIG_GPIO_VIRTUSER is not set -# end of GPIO Debugging utilities - -# CONFIG_W1 is not set -CONFIG_POWER_RESET=y -# CONFIG_POWER_RESET_GPIO is not set -# CONFIG_POWER_RESET_GPIO_RESTART is not set -# CONFIG_POWER_RESET_LTC2952 is not set -# CONFIG_POWER_RESET_REGULATOR is not set -# CONFIG_POWER_RESET_RESTART is not set -# CONFIG_POWER_RESET_XGENE is not set -# CONFIG_POWER_RESET_SYSCON is not set -# CONFIG_POWER_RESET_SYSCON_POWEROFF is not set -# CONFIG_SYSCON_REBOOT_MODE is not set -# CONFIG_NVMEM_REBOOT_MODE is not set -# CONFIG_POWER_SEQUENCING is not set -CONFIG_POWER_SUPPLY=y -# CONFIG_POWER_SUPPLY_DEBUG is not set -CONFIG_POWER_SUPPLY_HWMON=y -# CONFIG_GENERIC_ADC_BATTERY is not set -# CONFIG_IP5XXX_POWER is not set -# CONFIG_TEST_POWER is not set -# CONFIG_CHARGER_ADP5061 is not set -# CONFIG_BATTERY_CW2015 is not set -# CONFIG_BATTERY_DS2780 is not set -# CONFIG_BATTERY_DS2781 is not set -# CONFIG_BATTERY_DS2782 is not set -# CONFIG_BATTERY_SAMSUNG_SDI is not set -# CONFIG_BATTERY_SBS is not set -# CONFIG_CHARGER_SBS is not set -# CONFIG_BATTERY_BQ27XXX is not set -# CONFIG_BATTERY_MAX17040 is not set -# CONFIG_BATTERY_MAX17042 is not set -# CONFIG_BATTERY_MAX1720X is not set -# CONFIG_CHARGER_ISP1704 is not set -# CONFIG_CHARGER_MAX8903 is not set -# CONFIG_CHARGER_LP8727 is not set -# CONFIG_CHARGER_GPIO is not set -# CONFIG_CHARGER_MANAGER is not set -# CONFIG_CHARGER_LT3651 is not set -# CONFIG_CHARGER_LTC4162L is not set -# CONFIG_CHARGER_DETECTOR_MAX14656 is not set -# CONFIG_CHARGER_MAX77976 is not set -# CONFIG_CHARGER_BQ2415X is not set -# CONFIG_CHARGER_BQ24190 is not set -# CONFIG_CHARGER_BQ24257 is not set -# CONFIG_CHARGER_BQ24735 is not set -# CONFIG_CHARGER_BQ2515X is not set -# CONFIG_CHARGER_BQ25890 is not set -# CONFIG_CHARGER_BQ25980 is not set -# CONFIG_CHARGER_BQ256XX is not set -CONFIG_CHARGER_RK817=y -# CONFIG_CHARGER_SMB347 is not set -# CONFIG_BATTERY_GAUGE_LTC2941 is not set -# CONFIG_BATTERY_GOLDFISH is not set -# CONFIG_BATTERY_RT5033 is not set -# CONFIG_CHARGER_RT9455 is not set -# CONFIG_CHARGER_RT9467 is not set -# CONFIG_CHARGER_RT9471 is not set -# CONFIG_CHARGER_UCS1002 is not set -# CONFIG_CHARGER_BD99954 is not set -# CONFIG_BATTERY_UG3105 is not set -# CONFIG_FUEL_GAUGE_MM8013 is not set -CONFIG_HWMON=y -# CONFIG_HWMON_DEBUG_CHIP is not set - -# -# Native drivers -# -# CONFIG_SENSORS_AD7314 is not set -# CONFIG_SENSORS_AD7414 is not set -# CONFIG_SENSORS_AD7418 is not set -# CONFIG_SENSORS_ADM1025 is not set -# CONFIG_SENSORS_ADM1026 is not set -# CONFIG_SENSORS_ADM1029 is not set -# CONFIG_SENSORS_ADM1031 is not set -# CONFIG_SENSORS_ADM1177 is not set -# CONFIG_SENSORS_ADM9240 is not set -# CONFIG_SENSORS_ADT7310 is not set -# CONFIG_SENSORS_ADT7410 is not set -# CONFIG_SENSORS_ADT7411 is not set -# CONFIG_SENSORS_ADT7462 is not set -# CONFIG_SENSORS_ADT7470 is not set -# CONFIG_SENSORS_ADT7475 is not set -# CONFIG_SENSORS_AHT10 is not set -# CONFIG_SENSORS_AQUACOMPUTER_D5NEXT is not set -# CONFIG_SENSORS_AS370 is not set -# CONFIG_SENSORS_ASC7621 is not set -# CONFIG_SENSORS_ASUS_ROG_RYUJIN is not set -# CONFIG_SENSORS_AXI_FAN_CONTROL is not set -# CONFIG_SENSORS_ARM_SCMI is not set -# CONFIG_SENSORS_ATXP1 is not set -# CONFIG_SENSORS_CHIPCAP2 is not set -# CONFIG_SENSORS_CORSAIR_CPRO is not set -# CONFIG_SENSORS_CORSAIR_PSU is not set -# CONFIG_SENSORS_DRIVETEMP is not set -# CONFIG_SENSORS_DS620 is not set -# CONFIG_SENSORS_DS1621 is not set -# CONFIG_SENSORS_I5K_AMB is not set -# CONFIG_SENSORS_F71805F is not set -# CONFIG_SENSORS_F71882FG is not set -# CONFIG_SENSORS_F75375S is not set -# CONFIG_SENSORS_FTSTEUTATES is not set -# CONFIG_SENSORS_GIGABYTE_WATERFORCE is not set -# CONFIG_SENSORS_GL518SM is not set -# CONFIG_SENSORS_GL520SM is not set -# CONFIG_SENSORS_G760A is not set -# CONFIG_SENSORS_G762 is not set -# CONFIG_SENSORS_GPIO_FAN is not set -# CONFIG_SENSORS_HIH6130 is not set -# CONFIG_SENSORS_HS3001 is not set -# CONFIG_SENSORS_IIO_HWMON is not set -# CONFIG_SENSORS_IT87 is not set -# CONFIG_SENSORS_JC42 is not set -# CONFIG_SENSORS_POWERZ is not set -# CONFIG_SENSORS_POWR1220 is not set -# CONFIG_SENSORS_LINEAGE is not set -# CONFIG_SENSORS_LTC2945 is not set -# CONFIG_SENSORS_LTC2947_I2C is not set -# CONFIG_SENSORS_LTC2947_SPI is not set -# CONFIG_SENSORS_LTC2990 is not set -# CONFIG_SENSORS_LTC2991 is not set -# CONFIG_SENSORS_LTC2992 is not set -# CONFIG_SENSORS_LTC4151 is not set -# CONFIG_SENSORS_LTC4215 is not set -# CONFIG_SENSORS_LTC4222 is not set -# CONFIG_SENSORS_LTC4245 is not set -# CONFIG_SENSORS_LTC4260 is not set -# CONFIG_SENSORS_LTC4261 is not set -# CONFIG_SENSORS_LTC4282 is not set -# CONFIG_SENSORS_MAX1111 is not set -# CONFIG_SENSORS_MAX127 is not set -# CONFIG_SENSORS_MAX16065 is not set -# CONFIG_SENSORS_MAX1619 is not set -# CONFIG_SENSORS_MAX1668 is not set -# CONFIG_SENSORS_MAX197 is not set -# CONFIG_SENSORS_MAX31722 is not set -# CONFIG_SENSORS_MAX31730 is not set -# CONFIG_SENSORS_MAX31760 is not set -# CONFIG_MAX31827 is not set -# CONFIG_SENSORS_MAX6620 is not set -# CONFIG_SENSORS_MAX6621 is not set -# CONFIG_SENSORS_MAX6639 is not set -# CONFIG_SENSORS_MAX6650 is not set -# CONFIG_SENSORS_MAX6697 is not set -# CONFIG_SENSORS_MAX31790 is not set -# CONFIG_SENSORS_MC34VR500 is not set -# CONFIG_SENSORS_MCP3021 is not set -# CONFIG_SENSORS_TC654 is not set -# CONFIG_SENSORS_TPS23861 is not set -# CONFIG_SENSORS_MR75203 is not set -# CONFIG_SENSORS_ADCXX is not set -# CONFIG_SENSORS_LM63 is not set -# CONFIG_SENSORS_LM70 is not set -# CONFIG_SENSORS_LM73 is not set -# CONFIG_SENSORS_LM75 is not set -# CONFIG_SENSORS_LM77 is not set -# CONFIG_SENSORS_LM78 is not set -# CONFIG_SENSORS_LM80 is not set -# CONFIG_SENSORS_LM83 is not set -# CONFIG_SENSORS_LM85 is not set -# CONFIG_SENSORS_LM87 is not set -# CONFIG_SENSORS_LM90 is not set -# CONFIG_SENSORS_LM92 is not set -# CONFIG_SENSORS_LM93 is not set -# CONFIG_SENSORS_LM95234 is not set -# CONFIG_SENSORS_LM95241 is not set -# CONFIG_SENSORS_LM95245 is not set -# CONFIG_SENSORS_PC87360 is not set -# CONFIG_SENSORS_PC87427 is not set -# CONFIG_SENSORS_NTC_THERMISTOR is not set -# CONFIG_SENSORS_NCT6683 is not set -# CONFIG_SENSORS_NCT6775 is not set -# CONFIG_SENSORS_NCT6775_I2C is not set -# CONFIG_SENSORS_NCT7802 is not set -# CONFIG_SENSORS_NCT7904 is not set -# CONFIG_SENSORS_NPCM7XX is not set -# CONFIG_SENSORS_NZXT_KRAKEN2 is not set -# CONFIG_SENSORS_NZXT_KRAKEN3 is not set -# CONFIG_SENSORS_NZXT_SMART2 is not set -# CONFIG_SENSORS_OCC_P8_I2C is not set -# CONFIG_SENSORS_PCF8591 is not set -# CONFIG_PMBUS is not set -# CONFIG_SENSORS_PT5161L is not set -# CONFIG_SENSORS_PWM_FAN is not set -# CONFIG_SENSORS_SBTSI is not set -# CONFIG_SENSORS_SBRMI is not set -# CONFIG_SENSORS_SHT15 is not set -# CONFIG_SENSORS_SHT21 is not set -# CONFIG_SENSORS_SHT3x is not set -# CONFIG_SENSORS_SHT4x is not set -# CONFIG_SENSORS_SHTC1 is not set -# CONFIG_SENSORS_SIS5595 is not set -# CONFIG_SENSORS_DME1737 is not set -# CONFIG_SENSORS_EMC1403 is not set -# CONFIG_SENSORS_EMC2103 is not set -# CONFIG_SENSORS_EMC2305 is not set -# CONFIG_SENSORS_EMC6W201 is not set -# CONFIG_SENSORS_SMSC47M1 is not set -# CONFIG_SENSORS_SMSC47M192 is not set -# CONFIG_SENSORS_SMSC47B397 is not set -# CONFIG_SENSORS_SCH5627 is not set -# CONFIG_SENSORS_SCH5636 is not set -# CONFIG_SENSORS_STTS751 is not set -# CONFIG_SENSORS_ADC128D818 is not set -# CONFIG_SENSORS_ADS7828 is not set -# CONFIG_SENSORS_ADS7871 is not set -# CONFIG_SENSORS_AMC6821 is not set -# CONFIG_SENSORS_INA209 is not set -# CONFIG_SENSORS_INA2XX is not set -# CONFIG_SENSORS_INA238 is not set -# CONFIG_SENSORS_INA3221 is not set -# CONFIG_SENSORS_SPD5118 is not set -# CONFIG_SENSORS_TC74 is not set -# CONFIG_SENSORS_THMC50 is not set -# CONFIG_SENSORS_TMP102 is not set -# CONFIG_SENSORS_TMP103 is not set -# CONFIG_SENSORS_TMP108 is not set -# CONFIG_SENSORS_TMP401 is not set -# CONFIG_SENSORS_TMP421 is not set -# CONFIG_SENSORS_TMP464 is not set -# CONFIG_SENSORS_TMP513 is not set -# CONFIG_SENSORS_VIA686A is not set -# CONFIG_SENSORS_VT1211 is not set -# CONFIG_SENSORS_VT8231 is not set -# CONFIG_SENSORS_W83773G is not set -# CONFIG_SENSORS_W83781D is not set -# CONFIG_SENSORS_W83791D is not set -# CONFIG_SENSORS_W83792D is not set -# CONFIG_SENSORS_W83793 is not set -# CONFIG_SENSORS_W83795 is not set -# CONFIG_SENSORS_W83L785TS is not set -# CONFIG_SENSORS_W83L786NG is not set -# CONFIG_SENSORS_W83627HF is not set -# CONFIG_SENSORS_W83627EHF is not set -CONFIG_THERMAL=y -CONFIG_THERMAL_NETLINK=y -CONFIG_THERMAL_STATISTICS=y -# CONFIG_THERMAL_DEBUGFS is not set -# CONFIG_THERMAL_CORE_TESTING is not set -CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0 -CONFIG_THERMAL_HWMON=y -CONFIG_THERMAL_OF=y -CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y -# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set -# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set -# CONFIG_THERMAL_DEFAULT_GOV_POWER_ALLOCATOR is not set -# CONFIG_THERMAL_DEFAULT_GOV_BANG_BANG is not set -CONFIG_THERMAL_GOV_FAIR_SHARE=y -CONFIG_THERMAL_GOV_STEP_WISE=y -CONFIG_THERMAL_GOV_BANG_BANG=y -CONFIG_THERMAL_GOV_USER_SPACE=y -CONFIG_THERMAL_GOV_POWER_ALLOCATOR=y -CONFIG_CPU_THERMAL=y -CONFIG_CPU_FREQ_THERMAL=y -# CONFIG_DEVFREQ_THERMAL is not set -CONFIG_THERMAL_EMULATION=y -# CONFIG_THERMAL_MMIO is not set -CONFIG_ROCKCHIP_THERMAL=y -# CONFIG_GENERIC_ADC_THERMAL is not set -CONFIG_WATCHDOG=y -CONFIG_WATCHDOG_CORE=y -# CONFIG_WATCHDOG_NOWAYOUT is not set -CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED=y -CONFIG_WATCHDOG_OPEN_TIMEOUT=0 -CONFIG_WATCHDOG_SYSFS=y -# CONFIG_WATCHDOG_HRTIMER_PRETIMEOUT is not set - -# -# Watchdog Pretimeout Governors -# -# CONFIG_WATCHDOG_PRETIMEOUT_GOV is not set - -# -# Watchdog Device Drivers -# -# CONFIG_SOFT_WATCHDOG is not set -# CONFIG_GPIO_WATCHDOG is not set -# CONFIG_XILINX_WATCHDOG is not set -# CONFIG_XILINX_WINDOW_WATCHDOG is not set -# CONFIG_ZIIRAVE_WATCHDOG is not set -# CONFIG_ARM_SP805_WATCHDOG is not set -# CONFIG_ARM_SBSA_WATCHDOG is not set -# CONFIG_CADENCE_WATCHDOG is not set -CONFIG_DW_WATCHDOG=y -# CONFIG_MAX63XX_WATCHDOG is not set -# CONFIG_ARM_SMC_WATCHDOG is not set -# CONFIG_ALIM7101_WDT is not set -# CONFIG_I6300ESB_WDT is not set -# CONFIG_HP_WATCHDOG is not set -# CONFIG_MEN_A21_WDT is not set - -# -# PCI-based Watchdog Cards -# -# CONFIG_PCIPCWATCHDOG is not set -# CONFIG_WDTPCI is not set - -# -# USB-based Watchdog Cards -# -# CONFIG_USBPCWATCHDOG is not set -CONFIG_SSB_POSSIBLE=y -# CONFIG_SSB is not set -CONFIG_BCMA_POSSIBLE=y -# CONFIG_BCMA is not set - -# -# Multifunction device drivers -# -CONFIG_MFD_CORE=y -# CONFIG_MFD_ADP5585 is not set -# CONFIG_MFD_ACT8945A is not set -# CONFIG_MFD_AS3711 is not set -# CONFIG_MFD_SMPRO is not set -# CONFIG_MFD_AS3722 is not set -# CONFIG_PMIC_ADP5520 is not set -# CONFIG_MFD_AAT2870_CORE is not set -# CONFIG_MFD_ATMEL_FLEXCOM is not set -# CONFIG_MFD_ATMEL_HLCDC is not set -# CONFIG_MFD_BCM590XX is not set -# CONFIG_MFD_BD9571MWV is not set -# CONFIG_MFD_AXP20X_I2C is not set -# CONFIG_MFD_CS42L43_I2C is not set -# CONFIG_MFD_MADERA is not set -# CONFIG_MFD_MAX5970 is not set -# CONFIG_PMIC_DA903X is not set -# CONFIG_MFD_DA9052_SPI is not set -# CONFIG_MFD_DA9052_I2C is not set -# CONFIG_MFD_DA9055 is not set -# CONFIG_MFD_DA9062 is not set -# CONFIG_MFD_DA9063 is not set -# CONFIG_MFD_DA9150 is not set -# CONFIG_MFD_DLN2 is not set -# CONFIG_MFD_GATEWORKS_GSC is not set -# CONFIG_MFD_MC13XXX_SPI is not set -# CONFIG_MFD_MC13XXX_I2C is not set -# CONFIG_MFD_MP2629 is not set -# CONFIG_MFD_HI6421_PMIC is not set -# CONFIG_LPC_ICH is not set -# CONFIG_LPC_SCH is not set -# CONFIG_MFD_IQS62X is not set -# CONFIG_MFD_JANZ_CMODIO is not set -# CONFIG_MFD_KEMPLD is not set -# CONFIG_MFD_88PM800 is not set -# CONFIG_MFD_88PM805 is not set -# CONFIG_MFD_88PM860X is not set -# CONFIG_MFD_88PM886_PMIC is not set -# CONFIG_MFD_MAX14577 is not set -# CONFIG_MFD_MAX77541 is not set -# CONFIG_MFD_MAX77620 is not set -# CONFIG_MFD_MAX77650 is not set -# CONFIG_MFD_MAX77686 is not set -# CONFIG_MFD_MAX77693 is not set -# CONFIG_MFD_MAX77714 is not set -# CONFIG_MFD_MAX77843 is not set -# CONFIG_MFD_MAX8907 is not set -# CONFIG_MFD_MAX8925 is not set -# CONFIG_MFD_MAX8997 is not set -# CONFIG_MFD_MAX8998 is not set -# CONFIG_MFD_MT6360 is not set -# CONFIG_MFD_MT6370 is not set -# CONFIG_MFD_MT6397 is not set -# CONFIG_MFD_MENF21BMC is not set -# CONFIG_MFD_OCELOT is not set -# CONFIG_EZX_PCAP is not set -# CONFIG_MFD_CPCAP is not set -# CONFIG_MFD_VIPERBOARD is not set -# CONFIG_MFD_NTXEC is not set -# CONFIG_MFD_RETU is not set -# CONFIG_MFD_PCF50633 is not set -# CONFIG_MFD_SY7636A is not set -# CONFIG_MFD_RDC321X is not set -# CONFIG_MFD_RT4831 is not set -# CONFIG_MFD_RT5033 is not set -# CONFIG_MFD_RT5120 is not set -# CONFIG_MFD_RC5T583 is not set -CONFIG_MFD_RK8XX=y -CONFIG_MFD_RK8XX_I2C=y -# CONFIG_MFD_RK8XX_SPI is not set -# CONFIG_MFD_RN5T618 is not set -# CONFIG_MFD_SEC_CORE is not set -# CONFIG_MFD_SI476X_CORE is not set -# CONFIG_MFD_SM501 is not set -# CONFIG_MFD_SKY81452 is not set -# CONFIG_MFD_STMPE is not set -CONFIG_MFD_SYSCON=y -# CONFIG_MFD_LP3943 is not set -# CONFIG_MFD_LP8788 is not set -# CONFIG_MFD_TI_LMU is not set -# CONFIG_MFD_PALMAS is not set -# CONFIG_TPS6105X is not set -# CONFIG_TPS65010 is not set -# CONFIG_TPS6507X is not set -# CONFIG_MFD_TPS65086 is not set -# CONFIG_MFD_TPS65090 is not set -# CONFIG_MFD_TPS65217 is not set -# CONFIG_MFD_TI_LP873X is not set -# CONFIG_MFD_TI_LP87565 is not set -# CONFIG_MFD_TPS65218 is not set -# CONFIG_MFD_TPS65219 is not set -# CONFIG_MFD_TPS6586X is not set -# CONFIG_MFD_TPS65910 is not set -# CONFIG_MFD_TPS65912_I2C is not set -# CONFIG_MFD_TPS65912_SPI is not set -# CONFIG_MFD_TPS6594_I2C is not set -# CONFIG_MFD_TPS6594_SPI is not set -# CONFIG_TWL4030_CORE is not set -# CONFIG_TWL6040_CORE is not set -# CONFIG_MFD_WL1273_CORE is not set -# CONFIG_MFD_LM3533 is not set -# CONFIG_MFD_TC3589X is not set -# CONFIG_MFD_TQMX86 is not set -# CONFIG_MFD_VX855 is not set -# CONFIG_MFD_LOCHNAGAR is not set -# CONFIG_MFD_ARIZONA_I2C is not set -# CONFIG_MFD_ARIZONA_SPI is not set -# CONFIG_MFD_WM8400 is not set -# CONFIG_MFD_WM831X_I2C is not set -# CONFIG_MFD_WM831X_SPI is not set -# CONFIG_MFD_WM8350_I2C is not set -# CONFIG_MFD_WM8994 is not set -# CONFIG_MFD_ROHM_BD718XX is not set -# CONFIG_MFD_ROHM_BD71828 is not set -# CONFIG_MFD_ROHM_BD957XMUF is not set -# CONFIG_MFD_ROHM_BD96801 is not set -# CONFIG_MFD_STPMIC1 is not set -# CONFIG_MFD_STMFX is not set -# CONFIG_MFD_ATC260X_I2C is not set -# CONFIG_MFD_KHADAS_MCU is not set -# CONFIG_MFD_QCOM_PM8008 is not set -# CONFIG_MFD_CS40L50_I2C is not set -# CONFIG_MFD_CS40L50_SPI is not set -# CONFIG_RAVE_SP_CORE is not set -# CONFIG_MFD_INTEL_M10_BMC_SPI is not set -# CONFIG_MFD_RSMU_I2C is not set -# CONFIG_MFD_RSMU_SPI is not set -# end of Multifunction device drivers - -CONFIG_REGULATOR=y -# CONFIG_REGULATOR_DEBUG is not set -CONFIG_REGULATOR_FIXED_VOLTAGE=y -# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set -# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set -# CONFIG_REGULATOR_NETLINK_EVENTS is not set -# CONFIG_REGULATOR_88PG86X is not set -# CONFIG_REGULATOR_ACT8865 is not set -# CONFIG_REGULATOR_AD5398 is not set -# CONFIG_REGULATOR_ARM_SCMI is not set -# CONFIG_REGULATOR_AW37503 is not set -# CONFIG_REGULATOR_DA9121 is not set -# CONFIG_REGULATOR_DA9210 is not set -# CONFIG_REGULATOR_DA9211 is not set -CONFIG_REGULATOR_FAN53555=y -# CONFIG_REGULATOR_FAN53880 is not set -# CONFIG_REGULATOR_GPIO is not set -# CONFIG_REGULATOR_ISL9305 is not set -# CONFIG_REGULATOR_ISL6271A is not set -# CONFIG_REGULATOR_LP3971 is not set -# CONFIG_REGULATOR_LP3972 is not set -# CONFIG_REGULATOR_LP872X is not set -# CONFIG_REGULATOR_LP8755 is not set -# CONFIG_REGULATOR_LTC3589 is not set -# CONFIG_REGULATOR_LTC3676 is not set -# CONFIG_REGULATOR_MAX1586 is not set -# CONFIG_REGULATOR_MAX77503 is not set -# CONFIG_REGULATOR_MAX77857 is not set -# CONFIG_REGULATOR_MAX8649 is not set -# CONFIG_REGULATOR_MAX8660 is not set -# CONFIG_REGULATOR_MAX8893 is not set -# CONFIG_REGULATOR_MAX8952 is not set -# CONFIG_REGULATOR_MAX8973 is not set -# CONFIG_REGULATOR_MAX20086 is not set -# CONFIG_REGULATOR_MAX20411 is not set -# CONFIG_REGULATOR_MAX77826 is not set -# CONFIG_REGULATOR_MCP16502 is not set -# CONFIG_REGULATOR_MP5416 is not set -# CONFIG_REGULATOR_MP8859 is not set -# CONFIG_REGULATOR_MP886X is not set -# CONFIG_REGULATOR_MPQ7920 is not set -# CONFIG_REGULATOR_MT6311 is not set -# CONFIG_REGULATOR_PCA9450 is not set -# CONFIG_REGULATOR_PF8X00 is not set -# CONFIG_REGULATOR_PFUZE100 is not set -# CONFIG_REGULATOR_PV88060 is not set -# CONFIG_REGULATOR_PV88080 is not set -# CONFIG_REGULATOR_PV88090 is not set -# CONFIG_REGULATOR_PWM is not set -# CONFIG_REGULATOR_RAA215300 is not set -# CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_ATTINY is not set -CONFIG_REGULATOR_RK808=y -# CONFIG_REGULATOR_RT4801 is not set -# CONFIG_REGULATOR_RT4803 is not set -# CONFIG_REGULATOR_RT5190A is not set -# CONFIG_REGULATOR_RT5739 is not set -# CONFIG_REGULATOR_RT5759 is not set -# CONFIG_REGULATOR_RT6160 is not set -# CONFIG_REGULATOR_RT6190 is not set -# CONFIG_REGULATOR_RT6245 is not set -# CONFIG_REGULATOR_RTQ2134 is not set -# CONFIG_REGULATOR_RTMV20 is not set -# CONFIG_REGULATOR_RTQ6752 is not set -# CONFIG_REGULATOR_RTQ2208 is not set -# CONFIG_REGULATOR_SLG51000 is not set -# CONFIG_REGULATOR_SY8106A is not set -# CONFIG_REGULATOR_SY8824X is not set -# CONFIG_REGULATOR_SY8827N is not set -# CONFIG_REGULATOR_TPS51632 is not set -# CONFIG_REGULATOR_TPS62360 is not set -# CONFIG_REGULATOR_TPS6286X is not set -# CONFIG_REGULATOR_TPS6287X is not set -# CONFIG_REGULATOR_TPS65023 is not set -# CONFIG_REGULATOR_TPS6507X is not set -# CONFIG_REGULATOR_TPS65132 is not set -CONFIG_REGULATOR_TPS65185=m -# CONFIG_REGULATOR_TPS6524X is not set -# CONFIG_REGULATOR_VCTRL is not set -# CONFIG_RC_CORE is not set - -# -# CEC support -# -# CONFIG_MEDIA_CEC_SUPPORT is not set -# end of CEC support - -CONFIG_MEDIA_SUPPORT=m -# CONFIG_MEDIA_SUPPORT_FILTER is not set -# CONFIG_MEDIA_SUBDRV_AUTOSELECT is not set - -# -# Media device types -# -CONFIG_MEDIA_CAMERA_SUPPORT=y -CONFIG_MEDIA_ANALOG_TV_SUPPORT=y -CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y -CONFIG_MEDIA_RADIO_SUPPORT=y -CONFIG_MEDIA_SDR_SUPPORT=y -CONFIG_MEDIA_PLATFORM_SUPPORT=y -CONFIG_MEDIA_TEST_SUPPORT=y -# end of Media device types - -# -# Media core support -# -CONFIG_VIDEO_DEV=m -CONFIG_MEDIA_CONTROLLER=y -CONFIG_DVB_CORE=m -# end of Media core support - -# -# Video4Linux options -# -CONFIG_VIDEO_V4L2_I2C=y -CONFIG_VIDEO_V4L2_SUBDEV_API=y -# CONFIG_VIDEO_ADV_DEBUG is not set -# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set -CONFIG_V4L2_JPEG_HELPER=m -CONFIG_V4L2_H264=m -CONFIG_V4L2_VP9=m -CONFIG_V4L2_MEM2MEM_DEV=m -# CONFIG_V4L2_FLASH_LED_CLASS is not set -CONFIG_V4L2_FWNODE=m -CONFIG_V4L2_ASYNC=m -# end of Video4Linux options - -# -# Media controller options -# -# CONFIG_MEDIA_CONTROLLER_DVB is not set -# end of Media controller options - -# -# Digital TV options -# -# CONFIG_DVB_MMAP is not set -# CONFIG_DVB_NET is not set -CONFIG_DVB_MAX_ADAPTERS=16 -# CONFIG_DVB_DYNAMIC_MINORS is not set -# CONFIG_DVB_DEMUX_SECTION_LOSS_LOG is not set -# CONFIG_DVB_ULE_DEBUG is not set -# end of Digital TV options - -# -# Media drivers -# - -# -# Media drivers -# -# CONFIG_MEDIA_USB_SUPPORT is not set -# CONFIG_MEDIA_PCI_SUPPORT is not set -# CONFIG_RADIO_ADAPTERS is not set -CONFIG_MEDIA_PLATFORM_DRIVERS=y -# CONFIG_V4L_PLATFORM_DRIVERS is not set -# CONFIG_SDR_PLATFORM_DRIVERS is not set -# CONFIG_DVB_PLATFORM_DRIVERS is not set -CONFIG_V4L_MEM2MEM_DRIVERS=y -# CONFIG_VIDEO_MEM2MEM_DEINTERLACE is not set - -# -# Allegro DVT media platform drivers -# - -# -# Amlogic media platform drivers -# - -# -# Amphion drivers -# - -# -# Aspeed media platform drivers -# - -# -# Atmel media platform drivers -# - -# -# Cadence media platform drivers -# -# CONFIG_VIDEO_CADENCE_CSI2RX is not set -# CONFIG_VIDEO_CADENCE_CSI2TX is not set - -# -# Chips&Media media platform drivers -# - -# -# Intel media platform drivers -# - -# -# Marvell media platform drivers -# - -# -# Mediatek media platform drivers -# - -# -# Microchip Technology, Inc. media platform drivers -# - -# -# Nuvoton media platform drivers -# - -# -# NVidia media platform drivers -# - -# -# NXP media platform drivers -# - -# -# Qualcomm media platform drivers -# - -# -# Raspberry Pi media platform drivers -# - -# -# Renesas media platform drivers -# - -# -# Rockchip media platform drivers -# -CONFIG_VIDEO_ROCKCHIP_RGA=m - -# -# Samsung media platform drivers -# - -# -# STMicroelectronics media platform drivers -# - -# -# Sunxi media platform drivers -# - -# -# Texas Instruments drivers -# - -# -# Verisilicon media platform drivers -# -CONFIG_VIDEO_HANTRO=m -# CONFIG_VIDEO_HANTRO_HEVC_RFC is not set -CONFIG_VIDEO_HANTRO_ROCKCHIP=y - -# -# VIA media platform drivers -# - -# -# Xilinx media platform drivers -# - -# -# MMC/SDIO DVB adapters -# -# CONFIG_SMS_SDIO_DRV is not set -# CONFIG_V4L_TEST_DRIVERS is not set -# CONFIG_DVB_TEST_DRIVERS is not set -CONFIG_UVC_COMMON=m -CONFIG_VIDEOBUF2_CORE=m -CONFIG_VIDEOBUF2_V4L2=m -CONFIG_VIDEOBUF2_MEMOPS=m -CONFIG_VIDEOBUF2_DMA_CONTIG=m -CONFIG_VIDEOBUF2_VMALLOC=m -CONFIG_VIDEOBUF2_DMA_SG=m -# end of Media drivers - -# -# Media ancillary drivers -# -CONFIG_MEDIA_ATTACH=y -CONFIG_VIDEO_CAMERA_SENSOR=y -# CONFIG_VIDEO_ALVIUM_CSI2 is not set -# CONFIG_VIDEO_AR0521 is not set -# CONFIG_VIDEO_GC0308 is not set -# CONFIG_VIDEO_GC05A2 is not set -# CONFIG_VIDEO_GC08A3 is not set -# CONFIG_VIDEO_GC2145 is not set -# CONFIG_VIDEO_HI556 is not set -# CONFIG_VIDEO_HI846 is not set -# CONFIG_VIDEO_HI847 is not set -# CONFIG_VIDEO_IMX208 is not set -# CONFIG_VIDEO_IMX214 is not set -# CONFIG_VIDEO_IMX219 is not set -# CONFIG_VIDEO_IMX258 is not set -# CONFIG_VIDEO_IMX274 is not set -# CONFIG_VIDEO_IMX283 is not set -# CONFIG_VIDEO_IMX290 is not set -# CONFIG_VIDEO_IMX296 is not set -# CONFIG_VIDEO_IMX319 is not set -# CONFIG_VIDEO_IMX334 is not set -# CONFIG_VIDEO_IMX335 is not set -# CONFIG_VIDEO_IMX355 is not set -# CONFIG_VIDEO_IMX412 is not set -# CONFIG_VIDEO_IMX415 is not set -# CONFIG_VIDEO_MT9M001 is not set -# CONFIG_VIDEO_MT9M111 is not set -# CONFIG_VIDEO_MT9M114 is not set -# CONFIG_VIDEO_MT9P031 is not set -# CONFIG_VIDEO_MT9T112 is not set -# CONFIG_VIDEO_MT9V011 is not set -# CONFIG_VIDEO_MT9V032 is not set -# CONFIG_VIDEO_MT9V111 is not set -# CONFIG_VIDEO_OG01A1B is not set -# CONFIG_VIDEO_OV01A10 is not set -# CONFIG_VIDEO_OV02A10 is not set -# CONFIG_VIDEO_OV08D10 is not set -# CONFIG_VIDEO_OV08X40 is not set -# CONFIG_VIDEO_OV13858 is not set -# CONFIG_VIDEO_OV13B10 is not set -# CONFIG_VIDEO_OV2640 is not set -# CONFIG_VIDEO_OV2659 is not set -# CONFIG_VIDEO_OV2680 is not set -# CONFIG_VIDEO_OV2685 is not set -# CONFIG_VIDEO_OV4689 is not set -# CONFIG_VIDEO_OV5640 is not set -# CONFIG_VIDEO_OV5645 is not set -# CONFIG_VIDEO_OV5647 is not set -# CONFIG_VIDEO_OV5648 is not set -# CONFIG_VIDEO_OV5670 is not set -# CONFIG_VIDEO_OV5675 is not set -# CONFIG_VIDEO_OV5693 is not set -# CONFIG_VIDEO_OV5695 is not set -# CONFIG_VIDEO_OV64A40 is not set -# CONFIG_VIDEO_OV6650 is not set -# CONFIG_VIDEO_OV7251 is not set -# CONFIG_VIDEO_OV7640 is not set -# CONFIG_VIDEO_OV7670 is not set -# CONFIG_VIDEO_OV772X is not set -# CONFIG_VIDEO_OV7740 is not set -# CONFIG_VIDEO_OV8856 is not set -# CONFIG_VIDEO_OV8858 is not set -# CONFIG_VIDEO_OV8865 is not set -# CONFIG_VIDEO_OV9282 is not set -# CONFIG_VIDEO_OV9640 is not set -# CONFIG_VIDEO_OV9650 is not set -# CONFIG_VIDEO_RDACM20 is not set -# CONFIG_VIDEO_RDACM21 is not set -# CONFIG_VIDEO_RJ54N1 is not set -# CONFIG_VIDEO_S5C73M3 is not set -# CONFIG_VIDEO_S5K5BAF is not set -# CONFIG_VIDEO_S5K6A3 is not set -# CONFIG_VIDEO_VGXY61 is not set -# CONFIG_VIDEO_CCS is not set -# CONFIG_VIDEO_ET8EK8 is not set - -# -# Camera ISPs -# -# CONFIG_VIDEO_THP7312 is not set -# end of Camera ISPs - -# -# Lens drivers -# -# CONFIG_VIDEO_AD5820 is not set -# CONFIG_VIDEO_AK7375 is not set -# CONFIG_VIDEO_DW9714 is not set -# CONFIG_VIDEO_DW9719 is not set -# CONFIG_VIDEO_DW9768 is not set -# CONFIG_VIDEO_DW9807_VCM is not set -# end of Lens drivers - -# -# Flash devices -# -# CONFIG_VIDEO_ADP1653 is not set -# CONFIG_VIDEO_LM3560 is not set -# CONFIG_VIDEO_LM3646 is not set -# end of Flash devices - -# -# Audio decoders, processors and mixers -# -# CONFIG_VIDEO_CS3308 is not set -# CONFIG_VIDEO_CS5345 is not set -# CONFIG_VIDEO_CS53L32A is not set -# CONFIG_VIDEO_MSP3400 is not set -# CONFIG_VIDEO_SONY_BTF_MPX is not set -# CONFIG_VIDEO_TDA1997X is not set -# CONFIG_VIDEO_TDA7432 is not set -# CONFIG_VIDEO_TDA9840 is not set -# CONFIG_VIDEO_TEA6415C is not set -# CONFIG_VIDEO_TEA6420 is not set -# CONFIG_VIDEO_TLV320AIC23B is not set -# CONFIG_VIDEO_TVAUDIO is not set -# CONFIG_VIDEO_UDA1342 is not set -# CONFIG_VIDEO_VP27SMPX is not set -# CONFIG_VIDEO_WM8739 is not set -# CONFIG_VIDEO_WM8775 is not set -# end of Audio decoders, processors and mixers - -# -# RDS decoders -# -# CONFIG_VIDEO_SAA6588 is not set -# end of RDS decoders - -# -# Video decoders -# -# CONFIG_VIDEO_ADV7180 is not set -# CONFIG_VIDEO_ADV7183 is not set -# CONFIG_VIDEO_ADV748X is not set -# CONFIG_VIDEO_ADV7604 is not set -# CONFIG_VIDEO_ADV7842 is not set -# CONFIG_VIDEO_BT819 is not set -# CONFIG_VIDEO_BT856 is not set -# CONFIG_VIDEO_BT866 is not set -# CONFIG_VIDEO_ISL7998X is not set -# CONFIG_VIDEO_KS0127 is not set -# CONFIG_VIDEO_ML86V7667 is not set -# CONFIG_VIDEO_SAA7110 is not set -# CONFIG_VIDEO_SAA711X is not set -# CONFIG_VIDEO_TC358743 is not set -# CONFIG_VIDEO_TC358746 is not set -# CONFIG_VIDEO_TVP514X is not set -# CONFIG_VIDEO_TVP5150 is not set -# CONFIG_VIDEO_TVP7002 is not set -# CONFIG_VIDEO_TW2804 is not set -# CONFIG_VIDEO_TW9900 is not set -# CONFIG_VIDEO_TW9903 is not set -# CONFIG_VIDEO_TW9906 is not set -# CONFIG_VIDEO_TW9910 is not set -# CONFIG_VIDEO_VPX3220 is not set - -# -# Video and audio decoders -# -# CONFIG_VIDEO_SAA717X is not set -# CONFIG_VIDEO_CX25840 is not set -# end of Video decoders - -# -# Video encoders -# -# CONFIG_VIDEO_ADV7170 is not set -# CONFIG_VIDEO_ADV7175 is not set -# CONFIG_VIDEO_ADV7343 is not set -# CONFIG_VIDEO_ADV7393 is not set -# CONFIG_VIDEO_ADV7511 is not set -# CONFIG_VIDEO_AK881X is not set -# CONFIG_VIDEO_SAA7127 is not set -# CONFIG_VIDEO_SAA7185 is not set -# CONFIG_VIDEO_THS8200 is not set -# end of Video encoders - -# -# Video improvement chips -# -# CONFIG_VIDEO_UPD64031A is not set -# CONFIG_VIDEO_UPD64083 is not set -# end of Video improvement chips - -# -# Audio/Video compression chips -# -# CONFIG_VIDEO_SAA6752HS is not set -# end of Audio/Video compression chips - -# -# SDR tuner chips -# -# CONFIG_SDR_MAX2175 is not set -# end of SDR tuner chips - -# -# Miscellaneous helper chips -# -# CONFIG_VIDEO_I2C is not set -# CONFIG_VIDEO_M52790 is not set -# CONFIG_VIDEO_ST_MIPID02 is not set -# CONFIG_VIDEO_THS7303 is not set -# end of Miscellaneous helper chips - -# -# Video serializers and deserializers -# -# CONFIG_VIDEO_DS90UB913 is not set -# CONFIG_VIDEO_DS90UB953 is not set -# CONFIG_VIDEO_DS90UB960 is not set -# CONFIG_VIDEO_MAX96714 is not set -# CONFIG_VIDEO_MAX96717 is not set -# end of Video serializers and deserializers - -# -# Media SPI Adapters -# -# CONFIG_CXD2880_SPI_DRV is not set -# CONFIG_VIDEO_GS1662 is not set -# end of Media SPI Adapters - -CONFIG_MEDIA_TUNER=m - -# -# Customize TV tuners -# -# CONFIG_MEDIA_TUNER_E4000 is not set -# CONFIG_MEDIA_TUNER_FC0011 is not set -# CONFIG_MEDIA_TUNER_FC0012 is not set -# CONFIG_MEDIA_TUNER_FC0013 is not set -# CONFIG_MEDIA_TUNER_FC2580 is not set -# CONFIG_MEDIA_TUNER_IT913X is not set -# CONFIG_MEDIA_TUNER_M88RS6000T is not set -# CONFIG_MEDIA_TUNER_MAX2165 is not set -# CONFIG_MEDIA_TUNER_MC44S803 is not set -# CONFIG_MEDIA_TUNER_MSI001 is not set -# CONFIG_MEDIA_TUNER_MT2060 is not set -# CONFIG_MEDIA_TUNER_MT2063 is not set -# CONFIG_MEDIA_TUNER_MT20XX is not set -# CONFIG_MEDIA_TUNER_MT2131 is not set -# CONFIG_MEDIA_TUNER_MT2266 is not set -# CONFIG_MEDIA_TUNER_MXL301RF is not set -# CONFIG_MEDIA_TUNER_MXL5005S is not set -# CONFIG_MEDIA_TUNER_MXL5007T is not set -# CONFIG_MEDIA_TUNER_QM1D1B0004 is not set -# CONFIG_MEDIA_TUNER_QM1D1C0042 is not set -# CONFIG_MEDIA_TUNER_QT1010 is not set -# CONFIG_MEDIA_TUNER_R820T is not set -# CONFIG_MEDIA_TUNER_SI2157 is not set -# CONFIG_MEDIA_TUNER_SIMPLE is not set -# CONFIG_MEDIA_TUNER_TDA18212 is not set -# CONFIG_MEDIA_TUNER_TDA18218 is not set -# CONFIG_MEDIA_TUNER_TDA18250 is not set -# CONFIG_MEDIA_TUNER_TDA18271 is not set -# CONFIG_MEDIA_TUNER_TDA827X is not set -# CONFIG_MEDIA_TUNER_TDA8290 is not set -# CONFIG_MEDIA_TUNER_TDA9887 is not set -# CONFIG_MEDIA_TUNER_TEA5761 is not set -# CONFIG_MEDIA_TUNER_TEA5767 is not set -# CONFIG_MEDIA_TUNER_TUA9001 is not set -# CONFIG_MEDIA_TUNER_XC2028 is not set -# CONFIG_MEDIA_TUNER_XC4000 is not set -# CONFIG_MEDIA_TUNER_XC5000 is not set -# end of Customize TV tuners - -# -# Customise DVB Frontends -# - -# -# Multistandard (satellite) frontends -# -# CONFIG_DVB_MXL5XX is not set -# CONFIG_DVB_STB0899 is not set -# CONFIG_DVB_STB6100 is not set -# CONFIG_DVB_STV090x is not set -# CONFIG_DVB_STV0910 is not set -# CONFIG_DVB_STV6110x is not set -# CONFIG_DVB_STV6111 is not set - -# -# Multistandard (cable + terrestrial) frontends -# -# CONFIG_DVB_DRXK is not set -# CONFIG_DVB_MN88472 is not set -# CONFIG_DVB_MN88473 is not set -# CONFIG_DVB_SI2165 is not set -# CONFIG_DVB_TDA18271C2DD is not set - -# -# DVB-S (satellite) frontends -# -# CONFIG_DVB_CX24110 is not set -# CONFIG_DVB_CX24116 is not set -# CONFIG_DVB_CX24117 is not set -# CONFIG_DVB_CX24120 is not set -# CONFIG_DVB_CX24123 is not set -# CONFIG_DVB_DS3000 is not set -# CONFIG_DVB_MB86A16 is not set -# CONFIG_DVB_MT312 is not set -# CONFIG_DVB_S5H1420 is not set -# CONFIG_DVB_SI21XX is not set -# CONFIG_DVB_STB6000 is not set -# CONFIG_DVB_STV0288 is not set -# CONFIG_DVB_STV0299 is not set -# CONFIG_DVB_STV0900 is not set -# CONFIG_DVB_STV6110 is not set -# CONFIG_DVB_TDA10071 is not set -# CONFIG_DVB_TDA10086 is not set -# CONFIG_DVB_TDA8083 is not set -# CONFIG_DVB_TDA8261 is not set -# CONFIG_DVB_TDA826X is not set -# CONFIG_DVB_TS2020 is not set -# CONFIG_DVB_TUA6100 is not set -# CONFIG_DVB_TUNER_CX24113 is not set -# CONFIG_DVB_TUNER_ITD1000 is not set -# CONFIG_DVB_VES1X93 is not set -# CONFIG_DVB_ZL10036 is not set -# CONFIG_DVB_ZL10039 is not set - -# -# DVB-T (terrestrial) frontends -# -# CONFIG_DVB_CX22700 is not set -# CONFIG_DVB_CX22702 is not set -# CONFIG_DVB_CXD2820R is not set -# CONFIG_DVB_CXD2841ER is not set -# CONFIG_DVB_DIB3000MB is not set -# CONFIG_DVB_DIB3000MC is not set -# CONFIG_DVB_DIB7000M is not set -# CONFIG_DVB_DIB7000P is not set -# CONFIG_DVB_DIB9000 is not set -# CONFIG_DVB_DRXD is not set -# CONFIG_DVB_EC100 is not set -# CONFIG_DVB_L64781 is not set -# CONFIG_DVB_MT352 is not set -# CONFIG_DVB_NXT6000 is not set -# CONFIG_DVB_S5H1432 is not set -# CONFIG_DVB_SP887X is not set -# CONFIG_DVB_STV0367 is not set -# CONFIG_DVB_TDA10048 is not set -# CONFIG_DVB_TDA1004X is not set -# CONFIG_DVB_ZD1301_DEMOD is not set -# CONFIG_DVB_ZL10353 is not set -# CONFIG_DVB_CXD2880 is not set - -# -# DVB-C (cable) frontends -# -# CONFIG_DVB_STV0297 is not set -# CONFIG_DVB_TDA10021 is not set -# CONFIG_DVB_TDA10023 is not set -# CONFIG_DVB_VES1820 is not set - -# -# ATSC (North American/Korean Terrestrial/Cable DTV) frontends -# -# CONFIG_DVB_AU8522_DTV is not set -# CONFIG_DVB_AU8522_V4L is not set -# CONFIG_DVB_BCM3510 is not set -# CONFIG_DVB_LG2160 is not set -# CONFIG_DVB_LGDT3305 is not set -# CONFIG_DVB_LGDT330X is not set -# CONFIG_DVB_MXL692 is not set -# CONFIG_DVB_NXT200X is not set -# CONFIG_DVB_OR51132 is not set -# CONFIG_DVB_OR51211 is not set -# CONFIG_DVB_S5H1409 is not set -# CONFIG_DVB_S5H1411 is not set - -# -# ISDB-T (terrestrial) frontends -# -# CONFIG_DVB_DIB8000 is not set -# CONFIG_DVB_MB86A20S is not set -# CONFIG_DVB_S921 is not set - -# -# ISDB-S (satellite) & ISDB-T (terrestrial) frontends -# -# CONFIG_DVB_MN88443X is not set -# CONFIG_DVB_TC90522 is not set - -# -# Digital terrestrial only tuners/PLL -# -# CONFIG_DVB_PLL is not set -# CONFIG_DVB_TUNER_DIB0070 is not set -# CONFIG_DVB_TUNER_DIB0090 is not set - -# -# SEC control devices for DVB-S -# -# CONFIG_DVB_A8293 is not set -# CONFIG_DVB_AF9033 is not set -# CONFIG_DVB_ASCOT2E is not set -# CONFIG_DVB_ATBM8830 is not set -# CONFIG_DVB_HELENE is not set -# CONFIG_DVB_HORUS3A is not set -# CONFIG_DVB_ISL6405 is not set -# CONFIG_DVB_ISL6421 is not set -# CONFIG_DVB_ISL6423 is not set -# CONFIG_DVB_IX2505V is not set -# CONFIG_DVB_LGS8GL5 is not set -# CONFIG_DVB_LGS8GXX is not set -# CONFIG_DVB_LNBH25 is not set -# CONFIG_DVB_LNBH29 is not set -# CONFIG_DVB_LNBP21 is not set -# CONFIG_DVB_LNBP22 is not set -# CONFIG_DVB_M88RS2000 is not set -# CONFIG_DVB_TDA665x is not set -# CONFIG_DVB_DRX39XYJ is not set - -# -# Common Interface (EN50221) controller drivers -# -# CONFIG_DVB_CXD2099 is not set -# CONFIG_DVB_SP2 is not set -# end of Customise DVB Frontends - -# -# Tools to develop new frontends -# -# CONFIG_DVB_DUMMY_FE is not set -# end of Media ancillary drivers - -# -# Graphics support -# -CONFIG_VIDEO=y -# CONFIG_AUXDISPLAY is not set -CONFIG_DRM=m -CONFIG_DRM_MIPI_DSI=y -# CONFIG_DRM_DEBUG_MM is not set -CONFIG_DRM_KMS_HELPER=m -# CONFIG_DRM_PANIC is not set -# CONFIG_DRM_DEBUG_DP_MST_TOPOLOGY_REFS is not set -# CONFIG_DRM_DEBUG_MODESET_LOCK is not set -CONFIG_DRM_FBDEV_EMULATION=y -CONFIG_DRM_FBDEV_OVERALLOC=100 -# CONFIG_DRM_FBDEV_LEAK_PHYS_SMEM is not set -# CONFIG_DRM_LOAD_EDID_FIRMWARE is not set -CONFIG_DRM_DISPLAY_HELPER=m -CONFIG_DRM_BRIDGE_CONNECTOR=y -# CONFIG_DRM_DISPLAY_DP_AUX_CEC is not set -# CONFIG_DRM_DISPLAY_DP_AUX_CHARDEV is not set -CONFIG_DRM_DISPLAY_HDMI_HELPER=y -CONFIG_DRM_DISPLAY_HDMI_STATE_HELPER=y -CONFIG_DRM_EPD_HELPER=m -CONFIG_DRM_TTM=m -CONFIG_DRM_TTM_HELPER=m -CONFIG_DRM_GEM_DMA_HELPER=m -CONFIG_DRM_GEM_SHMEM_HELPER=m -CONFIG_DRM_SCHED=m - -# -# I2C encoder or helper chips -# -# CONFIG_DRM_I2C_CH7006 is not set -# CONFIG_DRM_I2C_SIL164 is not set -# CONFIG_DRM_I2C_NXP_TDA998X is not set -# CONFIG_DRM_I2C_NXP_TDA9950 is not set -# end of I2C encoder or helper chips - -# -# ARM devices -# -# CONFIG_DRM_HDLCD is not set -# CONFIG_DRM_MALI_DISPLAY is not set -# CONFIG_DRM_KOMEDA is not set -# end of ARM devices - -# CONFIG_DRM_RADEON is not set -# CONFIG_DRM_AMDGPU is not set -# CONFIG_DRM_NOUVEAU is not set -# CONFIG_DRM_XE is not set -CONFIG_DRM_VGEM=m -# CONFIG_DRM_VKMS is not set -CONFIG_DRM_ROCKCHIP=m -CONFIG_ROCKCHIP_VOP=y -CONFIG_ROCKCHIP_VOP2=y -# CONFIG_ROCKCHIP_ANALOGIX_DP is not set -# CONFIG_ROCKCHIP_CDN_DP is not set -CONFIG_ROCKCHIP_DW_HDMI=y -CONFIG_ROCKCHIP_DW_MIPI_DSI=y -CONFIG_ROCKCHIP_INNO_HDMI=y -CONFIG_ROCKCHIP_LVDS=y -# CONFIG_ROCKCHIP_RGB is not set -# CONFIG_ROCKCHIP_RK3066_HDMI is not set -CONFIG_DRM_ROCKCHIP_EBC=m -# CONFIG_DRM_VMWGFX is not set -# CONFIG_DRM_UDL is not set -# CONFIG_DRM_AST is not set -# CONFIG_DRM_MGAG200 is not set -# CONFIG_DRM_QXL is not set -CONFIG_DRM_PANEL=y - -# -# Display Panels -# -# CONFIG_DRM_PANEL_ABT_Y030XX067A is not set -# CONFIG_DRM_PANEL_ARM_VERSATILE is not set -# CONFIG_DRM_PANEL_ASUS_Z00T_TM5P5_NT35596 is not set -# CONFIG_DRM_PANEL_AUO_A030JTN01 is not set -# CONFIG_DRM_PANEL_BOE_BF060Y8M_AJ0 is not set -# CONFIG_DRM_PANEL_BOE_HIMAX8279D is not set -# CONFIG_DRM_PANEL_BOE_TH101MB31UIG002_28A is not set -# CONFIG_DRM_PANEL_BOE_TV101WUM_NL6 is not set -# CONFIG_DRM_PANEL_BOE_TV101WUM_LL2 is not set -# CONFIG_DRM_PANEL_EBBG_FT8719 is not set -# CONFIG_DRM_PANEL_ELIDA_KD35T133 is not set -# CONFIG_DRM_PANEL_FEIXIN_K101_IM2BA02 is not set -# CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D is not set -# CONFIG_DRM_PANEL_DSI_CM is not set -# CONFIG_DRM_PANEL_LVDS is not set -# CONFIG_DRM_PANEL_HIMAX_HX83102 is not set -# CONFIG_DRM_PANEL_HIMAX_HX83112A is not set -# CONFIG_DRM_PANEL_HIMAX_HX8394 is not set -# CONFIG_DRM_PANEL_ILITEK_IL9322 is not set -# CONFIG_DRM_PANEL_ILITEK_ILI9341 is not set -# CONFIG_DRM_PANEL_ILITEK_ILI9805 is not set -# CONFIG_DRM_PANEL_ILITEK_ILI9806E is not set -# CONFIG_DRM_PANEL_ILITEK_ILI9881C is not set -# CONFIG_DRM_PANEL_ILITEK_ILI9882T is not set -# CONFIG_DRM_PANEL_INNOLUX_EJ030NA is not set -# CONFIG_DRM_PANEL_INNOLUX_P079ZCA is not set -# CONFIG_DRM_PANEL_JADARD_JD9365DA_H3 is not set -# CONFIG_DRM_PANEL_JDI_LPM102A188A is not set -# CONFIG_DRM_PANEL_JDI_LT070ME05000 is not set -# CONFIG_DRM_PANEL_JDI_R63452 is not set -# CONFIG_DRM_PANEL_KHADAS_TS050 is not set -# CONFIG_DRM_PANEL_KINGDISPLAY_KD097D04 is not set -# CONFIG_DRM_PANEL_LEADTEK_LTK050H3146W is not set -# CONFIG_DRM_PANEL_LEADTEK_LTK500HD1829 is not set -# CONFIG_DRM_PANEL_LINCOLNTECH_LCD197 is not set -# CONFIG_DRM_PANEL_LG_LB035Q02 is not set -# CONFIG_DRM_PANEL_LG_LG4573 is not set -# CONFIG_DRM_PANEL_LG_SW43408 is not set -# CONFIG_DRM_PANEL_MAGNACHIP_D53E6EA8966 is not set -# CONFIG_DRM_PANEL_MANTIX_MLAF057WE51 is not set -# CONFIG_DRM_PANEL_NEC_NL8048HL11 is not set -# CONFIG_DRM_PANEL_NEWVISION_NV3051D is not set -# CONFIG_DRM_PANEL_NEWVISION_NV3052C is not set -# CONFIG_DRM_PANEL_NOVATEK_NT35510 is not set -# CONFIG_DRM_PANEL_NOVATEK_NT35560 is not set -# CONFIG_DRM_PANEL_NOVATEK_NT35950 is not set -# CONFIG_DRM_PANEL_NOVATEK_NT36523 is not set -# CONFIG_DRM_PANEL_NOVATEK_NT36672A is not set -# CONFIG_DRM_PANEL_NOVATEK_NT36672E is not set -# CONFIG_DRM_PANEL_NOVATEK_NT39016 is not set -# CONFIG_DRM_PANEL_OLIMEX_LCD_OLINUXINO is not set -# CONFIG_DRM_PANEL_ORISETECH_OTA5601A is not set -# CONFIG_DRM_PANEL_ORISETECH_OTM8009A is not set -# CONFIG_DRM_PANEL_OSD_OSD101T2587_53TS is not set -# CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00 is not set -# CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN is not set -# CONFIG_DRM_PANEL_RAYDIUM_RM67191 is not set -# CONFIG_DRM_PANEL_RAYDIUM_RM68200 is not set -# CONFIG_DRM_PANEL_RAYDIUM_RM692E5 is not set -# CONFIG_DRM_PANEL_RAYDIUM_RM69380 is not set -# CONFIG_DRM_PANEL_RONBO_RB070D30 is not set -# CONFIG_DRM_PANEL_SAMSUNG_S6E88A0_AMS452EF01 is not set -# CONFIG_DRM_PANEL_SAMSUNG_ATNA33XC20 is not set -# CONFIG_DRM_PANEL_SAMSUNG_DB7430 is not set -# CONFIG_DRM_PANEL_SAMSUNG_LD9040 is not set -# CONFIG_DRM_PANEL_SAMSUNG_S6E3FA7 is not set -# CONFIG_DRM_PANEL_SAMSUNG_S6D16D0 is not set -# CONFIG_DRM_PANEL_SAMSUNG_S6D27A1 is not set -# CONFIG_DRM_PANEL_SAMSUNG_S6D7AA0 is not set -# CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2 is not set -# CONFIG_DRM_PANEL_SAMSUNG_S6E63J0X03 is not set -# CONFIG_DRM_PANEL_SAMSUNG_S6E63M0 is not set -# CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0 is not set -# CONFIG_DRM_PANEL_SAMSUNG_SOFEF00 is not set -# CONFIG_DRM_PANEL_SEIKO_43WVF1G is not set -# CONFIG_DRM_PANEL_SHARP_LQ101R1SX01 is not set -# CONFIG_DRM_PANEL_SHARP_LS037V7DW01 is not set -# CONFIG_DRM_PANEL_SHARP_LS043T1LE01 is not set -# CONFIG_DRM_PANEL_SHARP_LS060T1SX01 is not set -# CONFIG_DRM_PANEL_SITRONIX_ST7701 is not set -# CONFIG_DRM_PANEL_SITRONIX_ST7703 is not set -# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set -# CONFIG_DRM_PANEL_SONY_ACX565AKM is not set -# CONFIG_DRM_PANEL_SONY_TD4353_JDI is not set -# CONFIG_DRM_PANEL_SONY_TULIP_TRULY_NT35521 is not set -# CONFIG_DRM_PANEL_STARTEK_KD070FHFID015 is not set -# CONFIG_DRM_PANEL_EDP is not set -CONFIG_DRM_PANEL_SIMPLE=m -# CONFIG_DRM_PANEL_SYNAPTICS_R63353 is not set -# CONFIG_DRM_PANEL_TDO_TL070WSH30 is not set -# CONFIG_DRM_PANEL_TPO_TD028TTEC1 is not set -# CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set -# CONFIG_DRM_PANEL_TPO_TPG110 is not set -# CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA is not set -# CONFIG_DRM_PANEL_VISIONOX_R66451 is not set -# CONFIG_DRM_PANEL_VISIONOX_RM69299 is not set -# CONFIG_DRM_PANEL_VISIONOX_VTDR6130 is not set -# CONFIG_DRM_PANEL_WIDECHIPS_WS2401 is not set -# CONFIG_DRM_PANEL_XINPENG_XPP055C272 is not set -# end of Display Panels - -CONFIG_DRM_BRIDGE=y -CONFIG_DRM_PANEL_BRIDGE=y - -# -# Display Interface Bridges -# -# CONFIG_DRM_CHIPONE_ICN6211 is not set -# CONFIG_DRM_CHRONTEL_CH7033 is not set -# CONFIG_DRM_DISPLAY_CONNECTOR is not set -# CONFIG_DRM_ITE_IT6505 is not set -# CONFIG_DRM_LONTIUM_LT8912B is not set -# CONFIG_DRM_LONTIUM_LT9211 is not set -# CONFIG_DRM_LONTIUM_LT9611 is not set -# CONFIG_DRM_LONTIUM_LT9611UXC is not set -# CONFIG_DRM_ITE_IT66121 is not set -# CONFIG_DRM_LVDS_CODEC is not set -# CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set -# CONFIG_DRM_NWL_MIPI_DSI is not set -# CONFIG_DRM_NXP_PTN3460 is not set -# CONFIG_DRM_PARADE_PS8622 is not set -# CONFIG_DRM_PARADE_PS8640 is not set -# CONFIG_DRM_SAMSUNG_DSIM is not set -# CONFIG_DRM_SIL_SII8620 is not set -# CONFIG_DRM_SII902X is not set -# CONFIG_DRM_SII9234 is not set -# CONFIG_DRM_SIMPLE_BRIDGE is not set -# CONFIG_DRM_THINE_THC63LVD1024 is not set -# CONFIG_DRM_TOSHIBA_TC358762 is not set -# CONFIG_DRM_TOSHIBA_TC358764 is not set -# CONFIG_DRM_TOSHIBA_TC358767 is not set -# CONFIG_DRM_TOSHIBA_TC358768 is not set -# CONFIG_DRM_TOSHIBA_TC358775 is not set -# CONFIG_DRM_TI_DLPC3433 is not set -# CONFIG_DRM_TI_TFP410 is not set -# CONFIG_DRM_TI_SN65DSI83 is not set -# CONFIG_DRM_TI_SN65DSI86 is not set -# CONFIG_DRM_TI_TPD12S015 is not set -# CONFIG_DRM_ANALOGIX_ANX6345 is not set -# CONFIG_DRM_ANALOGIX_ANX78XX is not set -# CONFIG_DRM_ANALOGIX_ANX7625 is not set -# CONFIG_DRM_I2C_ADV7511 is not set -# CONFIG_DRM_CDNS_DSI is not set -# CONFIG_DRM_CDNS_MHDP8546 is not set -CONFIG_DRM_DW_HDMI=m -# CONFIG_DRM_DW_HDMI_AHB_AUDIO is not set -# CONFIG_DRM_DW_HDMI_I2S_AUDIO is not set -# CONFIG_DRM_DW_HDMI_GP_AUDIO is not set -# CONFIG_DRM_DW_HDMI_CEC is not set -CONFIG_DRM_DW_MIPI_DSI=m -# end of Display Interface Bridges - -# CONFIG_DRM_ETNAVIV is not set -# CONFIG_DRM_HISI_HIBMC is not set -# CONFIG_DRM_HISI_KIRIN is not set -# CONFIG_DRM_LOGICVC is not set -# CONFIG_DRM_ARCPGU is not set -# CONFIG_DRM_BOCHS is not set -# CONFIG_DRM_CIRRUS_QEMU is not set -# CONFIG_DRM_GM12U320 is not set -# CONFIG_DRM_PANEL_MIPI_DBI is not set -# CONFIG_DRM_SIMPLEDRM is not set -# CONFIG_TINYDRM_HX8357D is not set -# CONFIG_TINYDRM_ILI9163 is not set -# CONFIG_TINYDRM_ILI9225 is not set -# CONFIG_TINYDRM_ILI9341 is not set -# CONFIG_TINYDRM_ILI9486 is not set -# CONFIG_TINYDRM_MI0283QT is not set -# CONFIG_TINYDRM_REPAPER is not set -# CONFIG_TINYDRM_ST7586 is not set -# CONFIG_TINYDRM_ST7735R is not set -# CONFIG_DRM_PL111 is not set -# CONFIG_DRM_LIMA is not set -CONFIG_DRM_PANFROST=m -# CONFIG_DRM_PANTHOR is not set -# CONFIG_DRM_TIDSS is not set -# CONFIG_DRM_GUD is not set -# CONFIG_DRM_SSD130X is not set -# CONFIG_DRM_POWERVR is not set -# CONFIG_DRM_WERROR is not set -CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=m - -# -# Frame buffer Devices -# -CONFIG_FB=y -# CONFIG_FB_CIRRUS is not set -# CONFIG_FB_PM2 is not set -# CONFIG_FB_CYBER2000 is not set -# CONFIG_FB_ASILIANT is not set -# CONFIG_FB_IMSTT is not set -# CONFIG_FB_EFI is not set -# CONFIG_FB_OPENCORES is not set -# CONFIG_FB_S1D13XXX is not set -# CONFIG_FB_NVIDIA is not set -# CONFIG_FB_RIVA is not set -# CONFIG_FB_I740 is not set -# CONFIG_FB_MATROX is not set -# CONFIG_FB_RADEON is not set -# CONFIG_FB_ATY128 is not set -# CONFIG_FB_ATY is not set -# CONFIG_FB_S3 is not set -# CONFIG_FB_SAVAGE is not set -# CONFIG_FB_SIS is not set -# CONFIG_FB_NEOMAGIC is not set -# CONFIG_FB_KYRO is not set -# CONFIG_FB_3DFX is not set -# CONFIG_FB_VOODOO1 is not set -# CONFIG_FB_VT8623 is not set -# CONFIG_FB_TRIDENT is not set -# CONFIG_FB_ARK is not set -# CONFIG_FB_PM3 is not set -# CONFIG_FB_CARMINE is not set -# CONFIG_FB_SMSCUFX is not set -# CONFIG_FB_UDL is not set -# CONFIG_FB_IBM_GXT4500 is not set -# CONFIG_FB_VIRTUAL is not set -# CONFIG_FB_METRONOME is not set -# CONFIG_FB_MB862XX is not set -# CONFIG_FB_SIMPLE is not set -# CONFIG_FB_SSD1307 is not set -# CONFIG_FB_SM712 is not set -CONFIG_FB_CORE=y -CONFIG_FB_NOTIFY=y -# CONFIG_FIRMWARE_EDID is not set -CONFIG_FB_DEVICE=y -CONFIG_FB_SYS_FILLRECT=y -CONFIG_FB_SYS_COPYAREA=y -CONFIG_FB_SYS_IMAGEBLIT=y -# CONFIG_FB_FOREIGN_ENDIAN is not set -CONFIG_FB_SYSMEM_FOPS=y -CONFIG_FB_DEFERRED_IO=y -CONFIG_FB_DMAMEM_HELPERS=y -CONFIG_FB_SYSMEM_HELPERS=y -CONFIG_FB_SYSMEM_HELPERS_DEFERRED=y -# CONFIG_FB_MODE_HELPERS is not set -# CONFIG_FB_TILEBLITTING is not set -# end of Frame buffer Devices - -# -# Backlight & LCD device support -# -# CONFIG_LCD_CLASS_DEVICE is not set -CONFIG_BACKLIGHT_CLASS_DEVICE=y -# CONFIG_BACKLIGHT_KTD253 is not set -# CONFIG_BACKLIGHT_KTD2801 is not set -# CONFIG_BACKLIGHT_KTZ8866 is not set -# CONFIG_BACKLIGHT_PWM is not set -# CONFIG_BACKLIGHT_QCOM_WLED is not set -# CONFIG_BACKLIGHT_ADP8860 is not set -# CONFIG_BACKLIGHT_ADP8870 is not set -# CONFIG_BACKLIGHT_LM3509 is not set -CONFIG_BACKLIGHT_LM3630A=y -# CONFIG_BACKLIGHT_LM3639 is not set -# CONFIG_BACKLIGHT_LP855X is not set -# CONFIG_BACKLIGHT_MP3309C is not set -# CONFIG_BACKLIGHT_GPIO is not set -# CONFIG_BACKLIGHT_LV5207LP is not set -# CONFIG_BACKLIGHT_BD6107 is not set -# CONFIG_BACKLIGHT_ARCXCNN is not set -# CONFIG_BACKLIGHT_LED is not set -# end of Backlight & LCD device support - -CONFIG_VIDEOMODE_HELPERS=y -CONFIG_HDMI=y - -# -# Console display driver support -# -CONFIG_DUMMY_CONSOLE=y -CONFIG_DUMMY_CONSOLE_COLUMNS=80 -CONFIG_DUMMY_CONSOLE_ROWS=25 -CONFIG_FRAMEBUFFER_CONSOLE=y -# CONFIG_FRAMEBUFFER_CONSOLE_LEGACY_ACCELERATION is not set -CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y -CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y -CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER=y -# end of Console display driver support - -# CONFIG_LOGO is not set -# end of Graphics support - -# CONFIG_DRM_ACCEL is not set -CONFIG_SOUND=m -CONFIG_SND=m -CONFIG_SND_TIMER=m -CONFIG_SND_PCM=m -CONFIG_SND_DMAENGINE_PCM=m -CONFIG_SND_HWDEP=m -CONFIG_SND_RAWMIDI=m -CONFIG_SND_UMP=m -CONFIG_SND_UMP_LEGACY_RAWMIDI=y -CONFIG_SND_JACK=y -CONFIG_SND_JACK_INPUT_DEV=y -# CONFIG_SND_OSSEMUL is not set -CONFIG_SND_PCM_TIMER=y -CONFIG_SND_HRTIMER=m -CONFIG_SND_DYNAMIC_MINORS=y -CONFIG_SND_MAX_CARDS=32 -# CONFIG_SND_SUPPORT_OLD_API is not set -CONFIG_SND_PROC_FS=y -CONFIG_SND_VERBOSE_PROCFS=y -CONFIG_SND_CTL_FAST_LOOKUP=y -CONFIG_SND_DEBUG=y -CONFIG_SND_DEBUG_VERBOSE=y -# CONFIG_SND_PCM_XRUN_DEBUG is not set -# CONFIG_SND_CTL_INPUT_VALIDATION is not set -# CONFIG_SND_CTL_DEBUG is not set -# CONFIG_SND_JACK_INJECTION_DEBUG is not set -# CONFIG_SND_UTIMER is not set -CONFIG_SND_VMASTER=y -# CONFIG_SND_SEQUENCER is not set -# CONFIG_SND_DRIVERS is not set -CONFIG_SND_PCI=y -# CONFIG_SND_AD1889 is not set -# CONFIG_SND_ALS300 is not set -# CONFIG_SND_ALI5451 is not set -# CONFIG_SND_ATIIXP is not set -# CONFIG_SND_ATIIXP_MODEM is not set -# CONFIG_SND_AU8810 is not set -# CONFIG_SND_AU8820 is not set -# CONFIG_SND_AU8830 is not set -# CONFIG_SND_AW2 is not set -# CONFIG_SND_AZT3328 is not set -# CONFIG_SND_BT87X is not set -# CONFIG_SND_CA0106 is not set -# CONFIG_SND_CMIPCI is not set -# CONFIG_SND_OXYGEN is not set -# CONFIG_SND_CS4281 is not set -# CONFIG_SND_CS46XX is not set -# CONFIG_SND_CTXFI is not set -# CONFIG_SND_DARLA20 is not set -# CONFIG_SND_GINA20 is not set -# CONFIG_SND_LAYLA20 is not set -# CONFIG_SND_DARLA24 is not set -# CONFIG_SND_GINA24 is not set -# CONFIG_SND_LAYLA24 is not set -# CONFIG_SND_MONA is not set -# CONFIG_SND_MIA is not set -# CONFIG_SND_ECHO3G is not set -# CONFIG_SND_INDIGO is not set -# CONFIG_SND_INDIGOIO is not set -# CONFIG_SND_INDIGODJ is not set -# CONFIG_SND_INDIGOIOX is not set -# CONFIG_SND_INDIGODJX is not set -# CONFIG_SND_EMU10K1 is not set -# CONFIG_SND_EMU10K1X is not set -# CONFIG_SND_ENS1370 is not set -# CONFIG_SND_ENS1371 is not set -# CONFIG_SND_ES1938 is not set -# CONFIG_SND_ES1968 is not set -# CONFIG_SND_FM801 is not set -# CONFIG_SND_HDSP is not set -# CONFIG_SND_HDSPM is not set -# CONFIG_SND_ICE1712 is not set -# CONFIG_SND_ICE1724 is not set -# CONFIG_SND_INTEL8X0 is not set -# CONFIG_SND_INTEL8X0M is not set -# CONFIG_SND_KORG1212 is not set -# CONFIG_SND_LOLA is not set -# CONFIG_SND_LX6464ES is not set -# CONFIG_SND_MAESTRO3 is not set -# CONFIG_SND_MIXART is not set -# CONFIG_SND_NM256 is not set -# CONFIG_SND_PCXHR is not set -# CONFIG_SND_RIPTIDE is not set -# CONFIG_SND_RME32 is not set -# CONFIG_SND_RME96 is not set -# CONFIG_SND_RME9652 is not set -# CONFIG_SND_SE6X is not set -# CONFIG_SND_SONICVIBES is not set -# CONFIG_SND_TRIDENT is not set -# CONFIG_SND_VIA82XX is not set -# CONFIG_SND_VIA82XX_MODEM is not set -# CONFIG_SND_VIRTUOSO is not set -# CONFIG_SND_VX222 is not set -# CONFIG_SND_YMFPCI is not set - -# -# HD-Audio -# -# CONFIG_SND_HDA_INTEL is not set -# end of HD-Audio - -CONFIG_SND_HDA_PREALLOC_SIZE=64 -# CONFIG_SND_SPI is not set -CONFIG_SND_USB=y -CONFIG_SND_USB_AUDIO=m -CONFIG_SND_USB_AUDIO_MIDI_V2=y -CONFIG_SND_USB_AUDIO_USE_MEDIA_CONTROLLER=y -CONFIG_SND_USB_UA101=m -CONFIG_SND_USB_CAIAQ=m -CONFIG_SND_USB_CAIAQ_INPUT=y -CONFIG_SND_USB_6FIRE=m -CONFIG_SND_USB_HIFACE=m -# CONFIG_SND_BCD2000 is not set -CONFIG_SND_USB_LINE6=m -CONFIG_SND_USB_POD=m -CONFIG_SND_USB_PODHD=m -CONFIG_SND_USB_TONEPORT=m -CONFIG_SND_USB_VARIAX=m -CONFIG_SND_SOC=m -CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y -# CONFIG_SND_SOC_ADI is not set -# CONFIG_SND_SOC_AMD_ACP is not set -# CONFIG_SND_AMD_ACP_CONFIG is not set -# CONFIG_SND_ATMEL_SOC is not set -# CONFIG_SND_BCM63XX_I2S_WHISTLER is not set -# CONFIG_SND_DESIGNWARE_I2S is not set - -# -# SoC Audio for Freescale CPUs -# - -# -# Common SoC Audio options for Freescale CPUs: -# -# CONFIG_SND_SOC_FSL_ASRC is not set -# CONFIG_SND_SOC_FSL_SAI is not set -# CONFIG_SND_SOC_FSL_AUDMIX is not set -# CONFIG_SND_SOC_FSL_SSI is not set -# CONFIG_SND_SOC_FSL_SPDIF is not set -# CONFIG_SND_SOC_FSL_ESAI is not set -# CONFIG_SND_SOC_FSL_MICFIL is not set -# CONFIG_SND_SOC_FSL_XCVR is not set -# CONFIG_SND_SOC_IMX_AUDMUX is not set -# end of SoC Audio for Freescale CPUs - -# CONFIG_SND_SOC_CHV3_I2S is not set -# CONFIG_SND_I2S_HI6210_I2S is not set -# CONFIG_SND_SOC_IMG is not set -# CONFIG_SND_SOC_MTK_BTCVSD is not set -CONFIG_SND_SOC_ROCKCHIP=m -# CONFIG_SND_SOC_ROCKCHIP_I2S is not set -CONFIG_SND_SOC_ROCKCHIP_I2S_TDM=m -CONFIG_SND_SOC_ROCKCHIP_PDM=m -# CONFIG_SND_SOC_ROCKCHIP_SPDIF is not set -# CONFIG_SND_SOC_ROCKCHIP_MAX98090 is not set -# CONFIG_SND_SOC_ROCKCHIP_RT5645 is not set -# CONFIG_SND_SOC_RK3288_HDMI_ANALOG is not set -# CONFIG_SND_SOC_RK3399_GRU_SOUND is not set -# CONFIG_SND_SOC_SOF_TOPLEVEL is not set - -# -# STMicroelectronics STM32 SOC audio support -# -# end of STMicroelectronics STM32 SOC audio support - -# CONFIG_SND_SOC_XILINX_I2S is not set -# CONFIG_SND_SOC_XILINX_AUDIO_FORMATTER is not set -# CONFIG_SND_SOC_XILINX_SPDIF is not set -# CONFIG_SND_SOC_XTFPGA_I2S is not set -CONFIG_SND_SOC_I2C_AND_SPI=m - -# -# CODEC drivers -# -# CONFIG_SND_SOC_AC97_CODEC is not set -# CONFIG_SND_SOC_ADAU1372_I2C is not set -# CONFIG_SND_SOC_ADAU1372_SPI is not set -# CONFIG_SND_SOC_ADAU1701 is not set -# CONFIG_SND_SOC_ADAU1761_I2C is not set -# CONFIG_SND_SOC_ADAU1761_SPI is not set -# CONFIG_SND_SOC_ADAU7002 is not set -# CONFIG_SND_SOC_ADAU7118_HW is not set -# CONFIG_SND_SOC_ADAU7118_I2C is not set -# CONFIG_SND_SOC_AK4104 is not set -# CONFIG_SND_SOC_AK4118 is not set -# CONFIG_SND_SOC_AK4375 is not set -# CONFIG_SND_SOC_AK4458 is not set -# CONFIG_SND_SOC_AK4554 is not set -# CONFIG_SND_SOC_AK4613 is not set -# CONFIG_SND_SOC_AK4619 is not set -# CONFIG_SND_SOC_AK4642 is not set -# CONFIG_SND_SOC_AK5386 is not set -# CONFIG_SND_SOC_AK5558 is not set -# CONFIG_SND_SOC_ALC5623 is not set -# CONFIG_SND_SOC_AUDIO_IIO_AUX is not set -# CONFIG_SND_SOC_AW8738 is not set -# CONFIG_SND_SOC_AW88395 is not set -# CONFIG_SND_SOC_AW88261 is not set -# CONFIG_SND_SOC_AW87390 is not set -# CONFIG_SND_SOC_AW88399 is not set -# CONFIG_SND_SOC_BD28623 is not set -CONFIG_SND_SOC_BT_SCO=m -# CONFIG_SND_SOC_CHV3_CODEC is not set -# CONFIG_SND_SOC_CS35L32 is not set -# CONFIG_SND_SOC_CS35L33 is not set -# CONFIG_SND_SOC_CS35L34 is not set -# CONFIG_SND_SOC_CS35L35 is not set -# CONFIG_SND_SOC_CS35L36 is not set -# CONFIG_SND_SOC_CS35L41_SPI is not set -# CONFIG_SND_SOC_CS35L41_I2C is not set -# CONFIG_SND_SOC_CS35L45_SPI is not set -# CONFIG_SND_SOC_CS35L45_I2C is not set -# CONFIG_SND_SOC_CS35L56_I2C is not set -# CONFIG_SND_SOC_CS35L56_SPI is not set -# CONFIG_SND_SOC_CS42L42 is not set -# CONFIG_SND_SOC_CS42L51_I2C is not set -# CONFIG_SND_SOC_CS42L52 is not set -# CONFIG_SND_SOC_CS42L56 is not set -# CONFIG_SND_SOC_CS42L73 is not set -# CONFIG_SND_SOC_CS42L83 is not set -# CONFIG_SND_SOC_CS4234 is not set -# CONFIG_SND_SOC_CS4265 is not set -# CONFIG_SND_SOC_CS4270 is not set -# CONFIG_SND_SOC_CS4271_I2C is not set -# CONFIG_SND_SOC_CS4271_SPI is not set -# CONFIG_SND_SOC_CS42XX8_I2C is not set -# CONFIG_SND_SOC_CS43130 is not set -# CONFIG_SND_SOC_CS4341 is not set -# CONFIG_SND_SOC_CS4349 is not set -# CONFIG_SND_SOC_CS53L30 is not set -# CONFIG_SND_SOC_CS530X_I2C is not set -# CONFIG_SND_SOC_CX2072X is not set -# CONFIG_SND_SOC_DA7213 is not set -CONFIG_SND_SOC_DMIC=m -# CONFIG_SND_SOC_ES7134 is not set -# CONFIG_SND_SOC_ES7241 is not set -# CONFIG_SND_SOC_ES8311 is not set -# CONFIG_SND_SOC_ES8316 is not set -# CONFIG_SND_SOC_ES8326 is not set -# CONFIG_SND_SOC_ES8328_I2C is not set -# CONFIG_SND_SOC_ES8328_SPI is not set -# CONFIG_SND_SOC_GTM601 is not set -# CONFIG_SND_SOC_HDA is not set -# CONFIG_SND_SOC_ICS43432 is not set -# CONFIG_SND_SOC_IDT821034 is not set -# CONFIG_SND_SOC_INNO_RK3036 is not set -# CONFIG_SND_SOC_MAX98088 is not set -# CONFIG_SND_SOC_MAX98090 is not set -# CONFIG_SND_SOC_MAX98357A is not set -# CONFIG_SND_SOC_MAX98504 is not set -# CONFIG_SND_SOC_MAX9867 is not set -# CONFIG_SND_SOC_MAX98927 is not set -# CONFIG_SND_SOC_MAX98520 is not set -# CONFIG_SND_SOC_MAX98373_I2C is not set -# CONFIG_SND_SOC_MAX98388 is not set -# CONFIG_SND_SOC_MAX98390 is not set -# CONFIG_SND_SOC_MAX98396 is not set -# CONFIG_SND_SOC_MAX9860 is not set -# CONFIG_SND_SOC_MSM8916_WCD_DIGITAL is not set -# CONFIG_SND_SOC_PCM1681 is not set -# CONFIG_SND_SOC_PCM1789_I2C is not set -# CONFIG_SND_SOC_PCM179X_I2C is not set -# CONFIG_SND_SOC_PCM179X_SPI is not set -# CONFIG_SND_SOC_PCM186X_I2C is not set -# CONFIG_SND_SOC_PCM186X_SPI is not set -# CONFIG_SND_SOC_PCM3060_I2C is not set -# CONFIG_SND_SOC_PCM3060_SPI is not set -# CONFIG_SND_SOC_PCM3168A_I2C is not set -# CONFIG_SND_SOC_PCM3168A_SPI is not set -# CONFIG_SND_SOC_PCM5102A is not set -# CONFIG_SND_SOC_PCM512x_I2C is not set -# CONFIG_SND_SOC_PCM512x_SPI is not set -# CONFIG_SND_SOC_PCM6240 is not set -# CONFIG_SND_SOC_PEB2466 is not set -# CONFIG_SND_SOC_RK3308 is not set -# CONFIG_SND_SOC_RK3328 is not set -CONFIG_SND_SOC_RK817=m -# CONFIG_SND_SOC_RT5616 is not set -# CONFIG_SND_SOC_RT5631 is not set -# CONFIG_SND_SOC_RT5640 is not set -# CONFIG_SND_SOC_RT5659 is not set -# CONFIG_SND_SOC_RT9120 is not set -# CONFIG_SND_SOC_RTQ9128 is not set -# CONFIG_SND_SOC_SGTL5000 is not set -CONFIG_SND_SOC_SIMPLE_AMPLIFIER=m -# CONFIG_SND_SOC_SIMPLE_MUX is not set -# CONFIG_SND_SOC_SMA1303 is not set -# CONFIG_SND_SOC_SPDIF is not set -# CONFIG_SND_SOC_SRC4XXX_I2C is not set -# CONFIG_SND_SOC_SSM2305 is not set -# CONFIG_SND_SOC_SSM2518 is not set -# CONFIG_SND_SOC_SSM2602_SPI is not set -# CONFIG_SND_SOC_SSM2602_I2C is not set -# CONFIG_SND_SOC_SSM3515 is not set -# CONFIG_SND_SOC_SSM4567 is not set -# CONFIG_SND_SOC_STA32X is not set -# CONFIG_SND_SOC_STA350 is not set -# CONFIG_SND_SOC_STI_SAS is not set -# CONFIG_SND_SOC_TAS2552 is not set -# CONFIG_SND_SOC_TAS2562 is not set -# CONFIG_SND_SOC_TAS2764 is not set -# CONFIG_SND_SOC_TAS2770 is not set -# CONFIG_SND_SOC_TAS2780 is not set -# CONFIG_SND_SOC_TAS2781_I2C is not set -# CONFIG_SND_SOC_TAS5086 is not set -# CONFIG_SND_SOC_TAS571X is not set -# CONFIG_SND_SOC_TAS5720 is not set -# CONFIG_SND_SOC_TAS5805M is not set -# CONFIG_SND_SOC_TAS6424 is not set -# CONFIG_SND_SOC_TDA7419 is not set -# CONFIG_SND_SOC_TFA9879 is not set -# CONFIG_SND_SOC_TFA989X is not set -# CONFIG_SND_SOC_TLV320ADC3XXX is not set -# CONFIG_SND_SOC_TLV320AIC23_I2C is not set -# CONFIG_SND_SOC_TLV320AIC23_SPI is not set -# CONFIG_SND_SOC_TLV320AIC31XX is not set -# CONFIG_SND_SOC_TLV320AIC32X4_I2C is not set -# CONFIG_SND_SOC_TLV320AIC32X4_SPI is not set -# CONFIG_SND_SOC_TLV320AIC3X_I2C is not set -# CONFIG_SND_SOC_TLV320AIC3X_SPI is not set -# CONFIG_SND_SOC_TLV320ADCX140 is not set -# CONFIG_SND_SOC_TS3A227E is not set -# CONFIG_SND_SOC_TSCS42XX is not set -# CONFIG_SND_SOC_TSCS454 is not set -# CONFIG_SND_SOC_UDA1334 is not set -# CONFIG_SND_SOC_WM8510 is not set -# CONFIG_SND_SOC_WM8523 is not set -# CONFIG_SND_SOC_WM8524 is not set -# CONFIG_SND_SOC_WM8580 is not set -# CONFIG_SND_SOC_WM8711 is not set -# CONFIG_SND_SOC_WM8728 is not set -# CONFIG_SND_SOC_WM8731_I2C is not set -# CONFIG_SND_SOC_WM8731_SPI is not set -# CONFIG_SND_SOC_WM8737 is not set -# CONFIG_SND_SOC_WM8741 is not set -# CONFIG_SND_SOC_WM8750 is not set -# CONFIG_SND_SOC_WM8753 is not set -# CONFIG_SND_SOC_WM8770 is not set -# CONFIG_SND_SOC_WM8776 is not set -# CONFIG_SND_SOC_WM8782 is not set -# CONFIG_SND_SOC_WM8804_I2C is not set -# CONFIG_SND_SOC_WM8804_SPI is not set -# CONFIG_SND_SOC_WM8903 is not set -# CONFIG_SND_SOC_WM8904 is not set -# CONFIG_SND_SOC_WM8940 is not set -# CONFIG_SND_SOC_WM8960 is not set -# CONFIG_SND_SOC_WM8961 is not set -# CONFIG_SND_SOC_WM8962 is not set -# CONFIG_SND_SOC_WM8974 is not set -# CONFIG_SND_SOC_WM8978 is not set -# CONFIG_SND_SOC_WM8985 is not set -# CONFIG_SND_SOC_ZL38060 is not set -# CONFIG_SND_SOC_MAX9759 is not set -# CONFIG_SND_SOC_MT6351 is not set -# CONFIG_SND_SOC_MT6357 is not set -# CONFIG_SND_SOC_MT6358 is not set -# CONFIG_SND_SOC_MT6660 is not set -# CONFIG_SND_SOC_NAU8315 is not set -# CONFIG_SND_SOC_NAU8540 is not set -# CONFIG_SND_SOC_NAU8810 is not set -# CONFIG_SND_SOC_NAU8821 is not set -# CONFIG_SND_SOC_NAU8822 is not set -# CONFIG_SND_SOC_NAU8824 is not set -# CONFIG_SND_SOC_TPA6130A2 is not set -# CONFIG_SND_SOC_LPASS_WSA_MACRO is not set -# CONFIG_SND_SOC_LPASS_VA_MACRO is not set -# CONFIG_SND_SOC_LPASS_RX_MACRO is not set -# CONFIG_SND_SOC_LPASS_TX_MACRO is not set -# end of CODEC drivers - -CONFIG_SND_SIMPLE_CARD_UTILS=m -CONFIG_SND_SIMPLE_CARD=m -# CONFIG_SND_AUDIO_GRAPH_CARD is not set -# CONFIG_SND_AUDIO_GRAPH_CARD2 is not set -# CONFIG_SND_TEST_COMPONENT is not set -CONFIG_HID_SUPPORT=y -CONFIG_HID=y -CONFIG_HID_BATTERY_STRENGTH=y -CONFIG_HIDRAW=y -CONFIG_UHID=m -CONFIG_HID_GENERIC=y - -# -# Special HID drivers -# -# CONFIG_HID_A4TECH is not set -# CONFIG_HID_ACCUTOUCH is not set -# CONFIG_HID_ACRUX is not set -# CONFIG_HID_APPLE is not set -# CONFIG_HID_APPLEIR is not set -# CONFIG_HID_ASUS is not set -# CONFIG_HID_AUREAL is not set -# CONFIG_HID_BELKIN is not set -# CONFIG_HID_BETOP_FF is not set -# CONFIG_HID_BIGBEN_FF is not set -# CONFIG_HID_CHERRY is not set -# CONFIG_HID_CHICONY is not set -# CONFIG_HID_CORSAIR is not set -# CONFIG_HID_COUGAR is not set -# CONFIG_HID_MACALLY is not set -# CONFIG_HID_PRODIKEYS is not set -# CONFIG_HID_CMEDIA is not set -# CONFIG_HID_CP2112 is not set -# CONFIG_HID_CREATIVE_SB0540 is not set -# CONFIG_HID_CYPRESS is not set -# CONFIG_HID_DRAGONRISE is not set -# CONFIG_HID_EMS_FF is not set -# CONFIG_HID_ELAN is not set -# CONFIG_HID_ELECOM is not set -# CONFIG_HID_ELO is not set -# CONFIG_HID_EVISION is not set -# CONFIG_HID_EZKEY is not set -# CONFIG_HID_FT260 is not set -# CONFIG_HID_GEMBIRD is not set -# CONFIG_HID_GFRM is not set -# CONFIG_HID_GLORIOUS is not set -# CONFIG_HID_HOLTEK is not set -# CONFIG_HID_GOODIX_SPI is not set -# CONFIG_HID_GOOGLE_STADIA_FF is not set -# CONFIG_HID_VIVALDI is not set -# CONFIG_HID_GT683R is not set -# CONFIG_HID_KEYTOUCH is not set -# CONFIG_HID_KYE is not set -# CONFIG_HID_UCLOGIC is not set -# CONFIG_HID_WALTOP is not set -# CONFIG_HID_VIEWSONIC is not set -# CONFIG_HID_VRC2 is not set -# CONFIG_HID_XIAOMI is not set -# CONFIG_HID_GYRATION is not set -# CONFIG_HID_ICADE is not set -# CONFIG_HID_ITE is not set -# CONFIG_HID_JABRA is not set -# CONFIG_HID_TWINHAN is not set -# CONFIG_HID_KENSINGTON is not set -# CONFIG_HID_LCPOWER is not set -# CONFIG_HID_LED is not set -# CONFIG_HID_LENOVO is not set -# CONFIG_HID_LETSKETCH is not set -# CONFIG_HID_LOGITECH is not set -# CONFIG_HID_MAGICMOUSE is not set -# CONFIG_HID_MALTRON is not set -# CONFIG_HID_MAYFLASH is not set -# CONFIG_HID_MEGAWORLD_FF is not set -# CONFIG_HID_REDRAGON is not set -CONFIG_HID_MICROSOFT=y -# CONFIG_HID_MONTEREY is not set -# CONFIG_HID_MULTITOUCH is not set -# CONFIG_HID_NINTENDO is not set -# CONFIG_HID_NTI is not set -# CONFIG_HID_NTRIG is not set -# CONFIG_HID_NVIDIA_SHIELD is not set -# CONFIG_HID_ORTEK is not set -# CONFIG_HID_PANTHERLORD is not set -# CONFIG_HID_PENMOUNT is not set -# CONFIG_HID_PETALYNX is not set -# CONFIG_HID_PICOLCD is not set -# CONFIG_HID_PLANTRONICS is not set -# CONFIG_HID_PLAYSTATION is not set -# CONFIG_HID_PXRC is not set -# CONFIG_HID_RAZER is not set -# CONFIG_HID_PRIMAX is not set -# CONFIG_HID_RETRODE is not set -# CONFIG_HID_ROCCAT is not set -# CONFIG_HID_SAITEK is not set -# CONFIG_HID_SAMSUNG is not set -# CONFIG_HID_SEMITEK is not set -# CONFIG_HID_SIGMAMICRO is not set -# CONFIG_HID_SONY is not set -# CONFIG_HID_SPEEDLINK is not set -# CONFIG_HID_STEAM is not set -# CONFIG_HID_STEELSERIES is not set -# CONFIG_HID_SUNPLUS is not set -# CONFIG_HID_RMI is not set -# CONFIG_HID_GREENASIA is not set -# CONFIG_HID_SMARTJOYPLUS is not set -# CONFIG_HID_TIVO is not set -# CONFIG_HID_TOPSEED is not set -# CONFIG_HID_TOPRE is not set -# CONFIG_HID_THINGM is not set -# CONFIG_HID_THRUSTMASTER is not set -# CONFIG_HID_UDRAW_PS3 is not set -# CONFIG_HID_WACOM is not set -# CONFIG_HID_WIIMOTE is not set -# CONFIG_HID_WINWING is not set -# CONFIG_HID_XINMO is not set -# CONFIG_HID_ZEROPLUS is not set -# CONFIG_HID_ZYDACRON is not set -# CONFIG_HID_SENSOR_HUB is not set -# CONFIG_HID_ALPS is not set -# CONFIG_HID_MCP2200 is not set -# CONFIG_HID_MCP2221 is not set -# end of Special HID drivers - -# -# HID-BPF support -# -# CONFIG_HID_BPF is not set -# end of HID-BPF support - -# -# USB HID support -# -CONFIG_USB_HID=y -# CONFIG_HID_PID is not set -CONFIG_USB_HIDDEV=y -# end of USB HID support - -CONFIG_I2C_HID=y -CONFIG_I2C_HID_OF=m -# CONFIG_I2C_HID_OF_ELAN is not set -CONFIG_I2C_HID_OF_GOODIX=m -CONFIG_I2C_HID_CORE=m -CONFIG_USB_OHCI_LITTLE_ENDIAN=y -CONFIG_USB_SUPPORT=y -CONFIG_USB_COMMON=y -CONFIG_USB_LED_TRIG=y -# CONFIG_USB_ULPI_BUS is not set -# CONFIG_USB_CONN_GPIO is not set -CONFIG_USB_ARCH_HAS_HCD=y -CONFIG_USB=y -CONFIG_USB_PCI=y -# CONFIG_USB_PCI_AMD is not set -CONFIG_USB_ANNOUNCE_NEW_DEVICES=y - -# -# Miscellaneous USB options -# -CONFIG_USB_DEFAULT_PERSIST=y -# CONFIG_USB_FEW_INIT_RETRIES is not set -CONFIG_USB_DYNAMIC_MINORS=y -CONFIG_USB_OTG=y -# CONFIG_USB_OTG_PRODUCTLIST is not set -# CONFIG_USB_OTG_DISABLE_EXTERNAL_HUB is not set -CONFIG_USB_OTG_FSM=m -CONFIG_USB_LEDS_TRIGGER_USBPORT=y -CONFIG_USB_AUTOSUSPEND_DELAY=2 -CONFIG_USB_DEFAULT_AUTHORIZATION_MODE=1 -# CONFIG_USB_MON is not set - -# -# USB Host Controller Drivers -# -# CONFIG_USB_C67X00_HCD is not set -CONFIG_USB_XHCI_HCD=y -# CONFIG_USB_XHCI_DBGCAP is not set -CONFIG_USB_XHCI_PCI=y -# CONFIG_USB_XHCI_PCI_RENESAS is not set -CONFIG_USB_XHCI_PLATFORM=y -CONFIG_USB_EHCI_HCD=y -CONFIG_USB_EHCI_ROOT_HUB_TT=y -CONFIG_USB_EHCI_TT_NEWSCHED=y -CONFIG_USB_EHCI_PCI=y -# CONFIG_USB_EHCI_FSL is not set -CONFIG_USB_EHCI_HCD_PLATFORM=y -# CONFIG_USB_OXU210HP_HCD is not set -# CONFIG_USB_ISP116X_HCD is not set -# CONFIG_USB_MAX3421_HCD is not set -CONFIG_USB_OHCI_HCD=y -CONFIG_USB_OHCI_HCD_PCI=y -CONFIG_USB_OHCI_HCD_PLATFORM=y -# CONFIG_USB_UHCI_HCD is not set -# CONFIG_USB_SL811_HCD is not set -# CONFIG_USB_R8A66597_HCD is not set -# CONFIG_USB_HCD_TEST_MODE is not set - -# -# USB Device Class drivers -# -# CONFIG_USB_ACM is not set -# CONFIG_USB_PRINTER is not set -# CONFIG_USB_WDM is not set -# CONFIG_USB_TMC is not set - -# -# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may -# - -# -# also be needed; see USB_STORAGE Help for more info -# -CONFIG_USB_STORAGE=m -# CONFIG_USB_STORAGE_DEBUG is not set -# CONFIG_USB_STORAGE_REALTEK is not set -# CONFIG_USB_STORAGE_DATAFAB is not set -# CONFIG_USB_STORAGE_FREECOM is not set -# CONFIG_USB_STORAGE_ISD200 is not set -# CONFIG_USB_STORAGE_USBAT is not set -# CONFIG_USB_STORAGE_SDDR09 is not set -# CONFIG_USB_STORAGE_SDDR55 is not set -# CONFIG_USB_STORAGE_JUMPSHOT is not set -# CONFIG_USB_STORAGE_ALAUDA is not set -# CONFIG_USB_STORAGE_ONETOUCH is not set -# CONFIG_USB_STORAGE_KARMA is not set -# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set -# CONFIG_USB_STORAGE_ENE_UB6250 is not set -CONFIG_USB_UAS=m - -# -# USB Imaging devices -# -# CONFIG_USB_MDC800 is not set -# CONFIG_USB_MICROTEK is not set -# CONFIG_USBIP_CORE is not set - -# -# USB dual-mode controller drivers -# -# CONFIG_USB_CDNS_SUPPORT is not set -# CONFIG_USB_MUSB_HDRC is not set -CONFIG_USB_DWC3=y -# CONFIG_USB_DWC3_HOST is not set -# CONFIG_USB_DWC3_GADGET is not set -CONFIG_USB_DWC3_DUAL_ROLE=y - -# -# Platform Glue Driver Support -# -CONFIG_USB_DWC3_HAPS=y -CONFIG_USB_DWC3_OF_SIMPLE=y -# CONFIG_USB_DWC2 is not set -# CONFIG_USB_CHIPIDEA is not set -# CONFIG_USB_ISP1760 is not set - -# -# USB port drivers -# -CONFIG_USB_SERIAL=y -# CONFIG_USB_SERIAL_CONSOLE is not set -CONFIG_USB_SERIAL_GENERIC=y -# CONFIG_USB_SERIAL_SIMPLE is not set -# CONFIG_USB_SERIAL_AIRCABLE is not set -# CONFIG_USB_SERIAL_ARK3116 is not set -# CONFIG_USB_SERIAL_BELKIN is not set -# CONFIG_USB_SERIAL_CH341 is not set -# CONFIG_USB_SERIAL_WHITEHEAT is not set -# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set -CONFIG_USB_SERIAL_CP210X=m -# CONFIG_USB_SERIAL_CYPRESS_M8 is not set -# CONFIG_USB_SERIAL_EMPEG is not set -# CONFIG_USB_SERIAL_FTDI_SIO is not set -# CONFIG_USB_SERIAL_VISOR is not set -# CONFIG_USB_SERIAL_IPAQ is not set -# CONFIG_USB_SERIAL_IR is not set -# CONFIG_USB_SERIAL_EDGEPORT is not set -# CONFIG_USB_SERIAL_EDGEPORT_TI is not set -# CONFIG_USB_SERIAL_F81232 is not set -# CONFIG_USB_SERIAL_F8153X is not set -# CONFIG_USB_SERIAL_GARMIN is not set -# CONFIG_USB_SERIAL_IPW is not set -# CONFIG_USB_SERIAL_IUU is not set -# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set -# CONFIG_USB_SERIAL_KEYSPAN is not set -# CONFIG_USB_SERIAL_KLSI is not set -# CONFIG_USB_SERIAL_KOBIL_SCT is not set -# CONFIG_USB_SERIAL_MCT_U232 is not set -# CONFIG_USB_SERIAL_METRO is not set -# CONFIG_USB_SERIAL_MOS7720 is not set -# CONFIG_USB_SERIAL_MOS7840 is not set -# CONFIG_USB_SERIAL_MXUPORT is not set -# CONFIG_USB_SERIAL_NAVMAN is not set -# CONFIG_USB_SERIAL_PL2303 is not set -# CONFIG_USB_SERIAL_OTI6858 is not set -# CONFIG_USB_SERIAL_QCAUX is not set -# CONFIG_USB_SERIAL_QUALCOMM is not set -# CONFIG_USB_SERIAL_SPCP8X5 is not set -# CONFIG_USB_SERIAL_SAFE is not set -# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set -# CONFIG_USB_SERIAL_SYMBOL is not set -# CONFIG_USB_SERIAL_TI is not set -# CONFIG_USB_SERIAL_CYBERJACK is not set -# CONFIG_USB_SERIAL_OPTION is not set -# CONFIG_USB_SERIAL_OMNINET is not set -# CONFIG_USB_SERIAL_OPTICON is not set -# CONFIG_USB_SERIAL_XSENS_MT is not set -# CONFIG_USB_SERIAL_WISHBONE is not set -# CONFIG_USB_SERIAL_SSU100 is not set -# CONFIG_USB_SERIAL_QT2 is not set -# CONFIG_USB_SERIAL_UPD78F0730 is not set -# CONFIG_USB_SERIAL_XR is not set -# CONFIG_USB_SERIAL_DEBUG is not set - -# -# USB Miscellaneous drivers -# -# CONFIG_USB_EMI62 is not set -# CONFIG_USB_EMI26 is not set -# CONFIG_USB_ADUTUX is not set -# CONFIG_USB_SEVSEG is not set -# CONFIG_USB_LEGOTOWER is not set -# CONFIG_USB_LCD is not set -# CONFIG_USB_CYPRESS_CY7C63 is not set -# CONFIG_USB_CYTHERM is not set -# CONFIG_USB_IDMOUSE is not set -# CONFIG_USB_APPLEDISPLAY is not set -# CONFIG_APPLE_MFI_FASTCHARGE is not set -# CONFIG_USB_SISUSBVGA is not set -# CONFIG_USB_LD is not set -# CONFIG_USB_TRANCEVIBRATOR is not set -# CONFIG_USB_IOWARRIOR is not set -# CONFIG_USB_TEST is not set -# CONFIG_USB_EHSET_TEST_FIXTURE is not set -# CONFIG_USB_ISIGHTFW is not set -# CONFIG_USB_YUREX is not set -# CONFIG_USB_EZUSB_FX2 is not set -# CONFIG_USB_HUB_USB251XB is not set -# CONFIG_USB_HSIC_USB3503 is not set -# CONFIG_USB_HSIC_USB4604 is not set -# CONFIG_USB_LINK_LAYER_TEST is not set -# CONFIG_USB_ONBOARD_DEV is not set - -# -# USB Physical Layer drivers -# -CONFIG_USB_PHY=y -# CONFIG_NOP_USB_XCEIV is not set -# CONFIG_USB_GPIO_VBUS is not set -# CONFIG_USB_ISP1301 is not set -# CONFIG_USB_ULPI is not set -# end of USB Physical Layer drivers - -CONFIG_USB_GADGET=y -# CONFIG_USB_GADGET_DEBUG is not set -# CONFIG_USB_GADGET_DEBUG_FILES is not set -# CONFIG_USB_GADGET_DEBUG_FS is not set -CONFIG_USB_GADGET_VBUS_DRAW=2 -CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2 -# CONFIG_U_SERIAL_CONSOLE is not set - -# -# USB Peripheral Controller -# -# CONFIG_USB_GR_UDC is not set -# CONFIG_USB_R8A66597 is not set -# CONFIG_USB_PXA27X is not set -# CONFIG_USB_MV_UDC is not set -# CONFIG_USB_MV_U3D is not set -# CONFIG_USB_SNP_UDC_PLAT is not set -# CONFIG_USB_M66592 is not set -# CONFIG_USB_BDC_UDC is not set -# CONFIG_USB_AMD5536UDC is not set -# CONFIG_USB_NET2272 is not set -# CONFIG_USB_NET2280 is not set -# CONFIG_USB_GOKU is not set -# CONFIG_USB_EG20T is not set -# CONFIG_USB_GADGET_XILINX is not set -# CONFIG_USB_MAX3420_UDC is not set -# CONFIG_USB_DUMMY_HCD is not set -# end of USB Peripheral Controller - -CONFIG_USB_LIBCOMPOSITE=m -CONFIG_USB_F_ACM=m -CONFIG_USB_U_SERIAL=m -CONFIG_USB_U_ETHER=m -CONFIG_USB_U_AUDIO=m -CONFIG_USB_F_SERIAL=m -CONFIG_USB_F_OBEX=m -CONFIG_USB_F_NCM=m -CONFIG_USB_F_ECM=m -CONFIG_USB_F_EEM=m -CONFIG_USB_F_SUBSET=m -CONFIG_USB_F_MASS_STORAGE=m -CONFIG_USB_F_FS=m -CONFIG_USB_F_UAC1=m -CONFIG_USB_F_UAC2=m -CONFIG_USB_F_UVC=m -CONFIG_USB_F_MIDI=m -CONFIG_USB_F_MIDI2=m -CONFIG_USB_F_HID=m -CONFIG_USB_CONFIGFS=m -CONFIG_USB_CONFIGFS_SERIAL=y -CONFIG_USB_CONFIGFS_ACM=y -CONFIG_USB_CONFIGFS_OBEX=y -CONFIG_USB_CONFIGFS_NCM=y -CONFIG_USB_CONFIGFS_ECM=y -CONFIG_USB_CONFIGFS_ECM_SUBSET=y -# CONFIG_USB_CONFIGFS_RNDIS is not set -CONFIG_USB_CONFIGFS_EEM=y -CONFIG_USB_CONFIGFS_MASS_STORAGE=y -# CONFIG_USB_CONFIGFS_F_LB_SS is not set -CONFIG_USB_CONFIGFS_F_FS=y -CONFIG_USB_CONFIGFS_F_UAC1=y -# CONFIG_USB_CONFIGFS_F_UAC1_LEGACY is not set -CONFIG_USB_CONFIGFS_F_UAC2=y -CONFIG_USB_CONFIGFS_F_MIDI=y -CONFIG_USB_CONFIGFS_F_MIDI2=y -CONFIG_USB_CONFIGFS_F_HID=y -CONFIG_USB_CONFIGFS_F_UVC=y -# CONFIG_USB_CONFIGFS_F_PRINTER is not set - -# -# USB Gadget precomposed configurations -# -# CONFIG_USB_ZERO is not set -# CONFIG_USB_AUDIO is not set -# CONFIG_USB_ETH is not set -# CONFIG_USB_G_NCM is not set -CONFIG_USB_GADGETFS=y -CONFIG_USB_FUNCTIONFS=m -CONFIG_USB_FUNCTIONFS_ETH=y -# CONFIG_USB_FUNCTIONFS_RNDIS is not set -CONFIG_USB_FUNCTIONFS_GENERIC=y -# CONFIG_USB_MASS_STORAGE is not set -# CONFIG_USB_G_SERIAL is not set -# CONFIG_USB_MIDI_GADGET is not set -# CONFIG_USB_G_PRINTER is not set -CONFIG_USB_CDC_COMPOSITE=m -# CONFIG_USB_G_ACM_MS is not set -CONFIG_USB_G_MULTI=m -# CONFIG_USB_G_MULTI_RNDIS is not set -CONFIG_USB_G_MULTI_CDC=y -# CONFIG_USB_G_HID is not set -# CONFIG_USB_G_DBGP is not set -# CONFIG_USB_G_WEBCAM is not set -# CONFIG_USB_RAW_GADGET is not set -# end of USB Gadget precomposed configurations - -CONFIG_TYPEC=y -# CONFIG_TYPEC_TCPM is not set -# CONFIG_TYPEC_UCSI is not set -# CONFIG_TYPEC_TPS6598X is not set -# CONFIG_TYPEC_ANX7411 is not set -# CONFIG_TYPEC_RT1719 is not set -# CONFIG_TYPEC_HD3SS3220 is not set -# CONFIG_TYPEC_STUSB160X is not set -CONFIG_TYPEC_WUSB3801=m - -# -# USB Type-C Multiplexer/DeMultiplexer Switch support -# -# CONFIG_TYPEC_MUX_FSA4480 is not set -# CONFIG_TYPEC_MUX_GPIO_SBU is not set -# CONFIG_TYPEC_MUX_PI3USB30532 is not set -# CONFIG_TYPEC_MUX_IT5205 is not set -# CONFIG_TYPEC_MUX_NB7VPQ904M is not set -# CONFIG_TYPEC_MUX_PTN36502 is not set -# CONFIG_TYPEC_MUX_WCD939X_USBSS is not set -# end of USB Type-C Multiplexer/DeMultiplexer Switch support - -# -# USB Type-C Alternate Mode drivers -# -# CONFIG_TYPEC_DP_ALTMODE is not set -# end of USB Type-C Alternate Mode drivers - -CONFIG_USB_ROLE_SWITCH=y -CONFIG_MMC=y -CONFIG_PWRSEQ_EMMC=y -CONFIG_PWRSEQ_SIMPLE=y -CONFIG_MMC_BLOCK=y -CONFIG_MMC_BLOCK_MINORS=32 -# CONFIG_SDIO_UART is not set -# CONFIG_MMC_TEST is not set - -# -# MMC/SD/SDIO Host Controller Drivers -# -# CONFIG_MMC_DEBUG is not set -# CONFIG_MMC_ARMMMCI is not set -CONFIG_MMC_SDHCI=y -# CONFIG_MMC_SDHCI_PCI is not set -CONFIG_MMC_SDHCI_PLTFM=y -# CONFIG_MMC_SDHCI_OF_ARASAN is not set -# CONFIG_MMC_SDHCI_OF_AT91 is not set -CONFIG_MMC_SDHCI_OF_DWCMSHC=y -# CONFIG_MMC_SDHCI_CADENCE is not set -# CONFIG_MMC_SDHCI_F_SDH30 is not set -# CONFIG_MMC_SDHCI_MILBEAUT is not set -# CONFIG_MMC_TIFM_SD is not set -# CONFIG_MMC_SPI is not set -# CONFIG_MMC_CB710 is not set -# CONFIG_MMC_VIA_SDMMC is not set -CONFIG_MMC_DW=y -CONFIG_MMC_DW_PLTFM=y -# CONFIG_MMC_DW_BLUEFIELD is not set -# CONFIG_MMC_DW_EXYNOS is not set -# CONFIG_MMC_DW_HI3798CV200 is not set -# CONFIG_MMC_DW_HI3798MV200 is not set -# CONFIG_MMC_DW_K3 is not set -# CONFIG_MMC_DW_PCI is not set -CONFIG_MMC_DW_ROCKCHIP=y -# CONFIG_MMC_VUB300 is not set -# CONFIG_MMC_USHC is not set -# CONFIG_MMC_USDHI6ROL0 is not set -CONFIG_MMC_CQHCI=y -# CONFIG_MMC_HSQ is not set -# CONFIG_MMC_TOSHIBA_PCI is not set -# CONFIG_MMC_MTK is not set -# CONFIG_MMC_SDHCI_XENON is not set -# CONFIG_SCSI_UFSHCD is not set -# CONFIG_MEMSTICK is not set -CONFIG_NEW_LEDS=y -CONFIG_LEDS_CLASS=y -CONFIG_LEDS_CLASS_FLASH=y -CONFIG_LEDS_CLASS_MULTICOLOR=y -# CONFIG_LEDS_BRIGHTNESS_HW_CHANGED is not set - -# -# LED drivers -# -# CONFIG_LEDS_AN30259A is not set -# CONFIG_LEDS_AW200XX is not set -# CONFIG_LEDS_AW2013 is not set -# CONFIG_LEDS_BCM6328 is not set -# CONFIG_LEDS_BCM6358 is not set -# CONFIG_LEDS_CR0014114 is not set -# CONFIG_LEDS_EL15203000 is not set -# CONFIG_LEDS_LM3530 is not set -# CONFIG_LEDS_LM3532 is not set -# CONFIG_LEDS_LM3642 is not set -# CONFIG_LEDS_LM3692X is not set -# CONFIG_LEDS_PCA9532 is not set -CONFIG_LEDS_GPIO=y -# CONFIG_LEDS_LP3944 is not set -# CONFIG_LEDS_LP3952 is not set -# CONFIG_LEDS_LP50XX is not set -# CONFIG_LEDS_LP55XX_COMMON is not set -# CONFIG_LEDS_LP8860 is not set -# CONFIG_LEDS_PCA955X is not set -# CONFIG_LEDS_PCA963X is not set -# CONFIG_LEDS_PCA995X is not set -# CONFIG_LEDS_DAC124S085 is not set -# CONFIG_LEDS_PWM is not set -# CONFIG_LEDS_REGULATOR is not set -# CONFIG_LEDS_BD2606MVV is not set -# CONFIG_LEDS_BD2802 is not set -# CONFIG_LEDS_LT3593 is not set -# CONFIG_LEDS_TCA6507 is not set -# CONFIG_LEDS_TLC591XX is not set -# CONFIG_LEDS_LM355x is not set -# CONFIG_LEDS_IS31FL319X is not set -# CONFIG_LEDS_IS31FL32XX is not set - -# -# LED driver for blink(1) USB RGB LED is under Special HID drivers (HID_THINGM) -# -# CONFIG_LEDS_BLINKM is not set -# CONFIG_LEDS_SYSCON is not set -# CONFIG_LEDS_MLXREG is not set -# CONFIG_LEDS_USER is not set -# CONFIG_LEDS_SPI_BYTE is not set -# CONFIG_LEDS_LM3697 is not set - -# -# Flash and Torch LED drivers -# -# CONFIG_LEDS_AAT1290 is not set -# CONFIG_LEDS_AS3645A is not set -# CONFIG_LEDS_KTD2692 is not set -# CONFIG_LEDS_LM3601X is not set -# CONFIG_LEDS_RT4505 is not set -# CONFIG_LEDS_RT8515 is not set -# CONFIG_LEDS_SGM3140 is not set -# CONFIG_LEDS_SY7802 is not set - -# -# RGB LED drivers -# -# CONFIG_LEDS_GROUP_MULTICOLOR is not set -# CONFIG_LEDS_KTD202X is not set -# CONFIG_LEDS_NCP5623 is not set -# CONFIG_LEDS_PWM_MULTICOLOR is not set - -# -# LED Triggers -# -CONFIG_LEDS_TRIGGERS=y -CONFIG_LEDS_TRIGGER_TIMER=y -CONFIG_LEDS_TRIGGER_ONESHOT=y -# CONFIG_LEDS_TRIGGER_DISK is not set -CONFIG_LEDS_TRIGGER_HEARTBEAT=y -CONFIG_LEDS_TRIGGER_BACKLIGHT=y -CONFIG_LEDS_TRIGGER_CPU=y -CONFIG_LEDS_TRIGGER_ACTIVITY=y -CONFIG_LEDS_TRIGGER_GPIO=y -CONFIG_LEDS_TRIGGER_DEFAULT_ON=y - -# -# iptables trigger is under Netfilter config (LED target) -# -CONFIG_LEDS_TRIGGER_TRANSIENT=y -CONFIG_LEDS_TRIGGER_CAMERA=y -CONFIG_LEDS_TRIGGER_PANIC=y -CONFIG_LEDS_TRIGGER_NETDEV=y -CONFIG_LEDS_TRIGGER_PATTERN=y -CONFIG_LEDS_TRIGGER_TTY=y -# CONFIG_LEDS_TRIGGER_INPUT_EVENTS is not set - -# -# Simple LED drivers -# -# CONFIG_ACCESSIBILITY is not set -# CONFIG_INFINIBAND is not set -CONFIG_EDAC_SUPPORT=y -CONFIG_RTC_LIB=y -CONFIG_RTC_CLASS=y -CONFIG_RTC_HCTOSYS=y -CONFIG_RTC_HCTOSYS_DEVICE="rtc0" -CONFIG_RTC_SYSTOHC=y -CONFIG_RTC_SYSTOHC_DEVICE="rtc0" -# CONFIG_RTC_DEBUG is not set -CONFIG_RTC_NVMEM=y - -# -# RTC interfaces -# -CONFIG_RTC_INTF_SYSFS=y -CONFIG_RTC_INTF_PROC=y -CONFIG_RTC_INTF_DEV=y -# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set -# CONFIG_RTC_DRV_TEST is not set - -# -# I2C RTC drivers -# -# CONFIG_RTC_DRV_ABB5ZES3 is not set -# CONFIG_RTC_DRV_ABEOZ9 is not set -# CONFIG_RTC_DRV_ABX80X is not set -# CONFIG_RTC_DRV_DS1307 is not set -# CONFIG_RTC_DRV_DS1374 is not set -# CONFIG_RTC_DRV_DS1672 is not set -# CONFIG_RTC_DRV_HYM8563 is not set -# CONFIG_RTC_DRV_MAX6900 is not set -# CONFIG_RTC_DRV_MAX31335 is not set -# CONFIG_RTC_DRV_NCT3018Y is not set -CONFIG_RTC_DRV_RK808=y -# CONFIG_RTC_DRV_RS5C372 is not set -# CONFIG_RTC_DRV_ISL1208 is not set -# CONFIG_RTC_DRV_ISL12022 is not set -# CONFIG_RTC_DRV_ISL12026 is not set -# CONFIG_RTC_DRV_X1205 is not set -# CONFIG_RTC_DRV_PCF8523 is not set -# CONFIG_RTC_DRV_PCF85063 is not set -# CONFIG_RTC_DRV_PCF85363 is not set -# CONFIG_RTC_DRV_PCF8563 is not set -# CONFIG_RTC_DRV_PCF8583 is not set -# CONFIG_RTC_DRV_M41T80 is not set -# CONFIG_RTC_DRV_BQ32K is not set -# CONFIG_RTC_DRV_S35390A is not set -# CONFIG_RTC_DRV_FM3130 is not set -# CONFIG_RTC_DRV_RX8010 is not set -# CONFIG_RTC_DRV_RX8111 is not set -# CONFIG_RTC_DRV_RX8581 is not set -# CONFIG_RTC_DRV_RX8025 is not set -# CONFIG_RTC_DRV_EM3027 is not set -# CONFIG_RTC_DRV_RV3028 is not set -# CONFIG_RTC_DRV_RV3032 is not set -# CONFIG_RTC_DRV_RV8803 is not set -# CONFIG_RTC_DRV_SD2405AL is not set -# CONFIG_RTC_DRV_SD3078 is not set - -# -# SPI RTC drivers -# -# CONFIG_RTC_DRV_M41T93 is not set -# CONFIG_RTC_DRV_M41T94 is not set -# CONFIG_RTC_DRV_DS1302 is not set -# CONFIG_RTC_DRV_DS1305 is not set -# CONFIG_RTC_DRV_DS1343 is not set -# CONFIG_RTC_DRV_DS1347 is not set -# CONFIG_RTC_DRV_DS1390 is not set -# CONFIG_RTC_DRV_MAX6916 is not set -# CONFIG_RTC_DRV_R9701 is not set -# CONFIG_RTC_DRV_RX4581 is not set -# CONFIG_RTC_DRV_RS5C348 is not set -# CONFIG_RTC_DRV_MAX6902 is not set -# CONFIG_RTC_DRV_PCF2123 is not set -# CONFIG_RTC_DRV_MCP795 is not set -CONFIG_RTC_I2C_AND_SPI=y - -# -# SPI and I2C RTC drivers -# -# CONFIG_RTC_DRV_DS3232 is not set -# CONFIG_RTC_DRV_PCF2127 is not set -# CONFIG_RTC_DRV_RV3029C2 is not set -# CONFIG_RTC_DRV_RX6110 is not set - -# -# Platform RTC drivers -# -# CONFIG_RTC_DRV_DS1286 is not set -# CONFIG_RTC_DRV_DS1511 is not set -# CONFIG_RTC_DRV_DS1553 is not set -# CONFIG_RTC_DRV_DS1685_FAMILY is not set -# CONFIG_RTC_DRV_DS1742 is not set -# CONFIG_RTC_DRV_DS2404 is not set -# CONFIG_RTC_DRV_EFI is not set -# CONFIG_RTC_DRV_STK17TA8 is not set -# CONFIG_RTC_DRV_M48T86 is not set -# CONFIG_RTC_DRV_M48T35 is not set -# CONFIG_RTC_DRV_M48T59 is not set -# CONFIG_RTC_DRV_MSM6242 is not set -# CONFIG_RTC_DRV_RP5C01 is not set -# CONFIG_RTC_DRV_ZYNQMP is not set - -# -# on-CPU RTC drivers -# -# CONFIG_RTC_DRV_PL030 is not set -# CONFIG_RTC_DRV_PL031 is not set -# CONFIG_RTC_DRV_CADENCE is not set -# CONFIG_RTC_DRV_FTRTC010 is not set -# CONFIG_RTC_DRV_R7301 is not set - -# -# HID Sensor RTC drivers -# -# CONFIG_RTC_DRV_GOLDFISH is not set -CONFIG_DMADEVICES=y -# CONFIG_DMADEVICES_DEBUG is not set - -# -# DMA Devices -# -CONFIG_DMA_ENGINE=y -CONFIG_DMA_OF=y -# CONFIG_ALTERA_MSGDMA is not set -# CONFIG_AMBA_PL08X is not set -# CONFIG_BCM_SBA_RAID is not set -# CONFIG_DW_AXI_DMAC is not set -# CONFIG_FSL_EDMA is not set -# CONFIG_FSL_QDMA is not set -# CONFIG_INTEL_IDMA64 is not set -# CONFIG_MV_XOR_V2 is not set -CONFIG_PL330_DMA=y -# CONFIG_PLX_DMA is not set -# CONFIG_XILINX_DMA is not set -# CONFIG_XILINX_XDMA is not set -# CONFIG_XILINX_ZYNQMP_DMA is not set -# CONFIG_XILINX_ZYNQMP_DPDMA is not set -# CONFIG_AMD_QDMA is not set -# CONFIG_QCOM_HIDMA_MGMT is not set -# CONFIG_QCOM_HIDMA is not set -# CONFIG_DW_DMAC is not set -# CONFIG_DW_DMAC_PCI is not set -# CONFIG_DW_EDMA is not set -# CONFIG_SF_PDMA is not set - -# -# DMA Clients -# -# CONFIG_ASYNC_TX_DMA is not set -# CONFIG_DMATEST is not set - -# -# DMABUF options -# -CONFIG_SYNC_FILE=y -# CONFIG_SW_SYNC is not set -# CONFIG_UDMABUF is not set -# CONFIG_DMABUF_MOVE_NOTIFY is not set -# CONFIG_DMABUF_DEBUG is not set -# CONFIG_DMABUF_SELFTESTS is not set -# CONFIG_DMABUF_HEAPS is not set -# CONFIG_DMABUF_SYSFS_STATS is not set -# end of DMABUF options - -# CONFIG_UIO is not set -# CONFIG_VFIO is not set -# CONFIG_VIRT_DRIVERS is not set -# CONFIG_VIRTIO_MENU is not set -# CONFIG_VDPA is not set -# CONFIG_VHOST_MENU is not set - -# -# Microsoft Hyper-V guest support -# -# end of Microsoft Hyper-V guest support - -# CONFIG_GREYBUS is not set -# CONFIG_COMEDI is not set -CONFIG_STAGING=y -# CONFIG_RTLLIB is not set -# CONFIG_RTL8723BS is not set -# CONFIG_R8712U is not set -# CONFIG_RTS5208 is not set -# CONFIG_VT6655 is not set -# CONFIG_VT6656 is not set - -# -# IIO staging drivers -# - -# -# Accelerometers -# -# CONFIG_ADIS16203 is not set -# CONFIG_ADIS16240 is not set -# end of Accelerometers - -# -# Analog to digital converters -# -# CONFIG_AD7816 is not set -# end of Analog to digital converters - -# -# Analog digital bi-direction converters -# -# CONFIG_ADT7316 is not set -# end of Analog digital bi-direction converters - -# -# Direct Digital Synthesis -# -# CONFIG_AD9832 is not set -# CONFIG_AD9834 is not set -# end of Direct Digital Synthesis - -# -# Network Analyzer, Impedance Converters -# -# CONFIG_AD5933 is not set -# end of Network Analyzer, Impedance Converters -# end of IIO staging drivers - -# CONFIG_FB_SM750 is not set -CONFIG_STAGING_MEDIA=y -# CONFIG_DVB_AV7110 is not set -# CONFIG_VIDEO_MAX96712 is not set -CONFIG_VIDEO_ROCKCHIP_VDEC=m - -# -# StarFive media platform drivers -# -# CONFIG_STAGING_MEDIA_DEPRECATED is not set -# CONFIG_LTE_GDM724X is not set -# CONFIG_FB_TFT is not set -# CONFIG_XIL_AXIS_FIFO is not set -# CONFIG_FIELDBUS_DEV is not set -# CONFIG_VME_BUS is not set -# CONFIG_GOLDFISH is not set -# CONFIG_CHROME_PLATFORMS is not set -# CONFIG_CZNIC_PLATFORMS is not set -# CONFIG_MELLANOX_PLATFORM is not set -# CONFIG_SURFACE_PLATFORMS is not set -CONFIG_ARM64_PLATFORM_DEVICES=y -CONFIG_HAVE_CLK=y -CONFIG_HAVE_CLK_PREPARE=y -CONFIG_COMMON_CLK=y - -# -# Clock driver for ARM Reference designs -# -# CONFIG_CLK_ICST is not set -# CONFIG_CLK_SP810 is not set -# end of Clock driver for ARM Reference designs - -# CONFIG_LMK04832 is not set -# CONFIG_COMMON_CLK_MAX9485 is not set -CONFIG_COMMON_CLK_RK808=y -CONFIG_COMMON_CLK_SCMI=y -# CONFIG_COMMON_CLK_SI5341 is not set -# CONFIG_COMMON_CLK_SI5351 is not set -# CONFIG_COMMON_CLK_SI514 is not set -# CONFIG_COMMON_CLK_SI544 is not set -# CONFIG_COMMON_CLK_SI570 is not set -# CONFIG_COMMON_CLK_CDCE706 is not set -# CONFIG_COMMON_CLK_CDCE925 is not set -# CONFIG_COMMON_CLK_CS2000_CP is not set -# CONFIG_COMMON_CLK_AXI_CLKGEN is not set -# CONFIG_COMMON_CLK_XGENE is not set -# CONFIG_COMMON_CLK_PWM is not set -# CONFIG_COMMON_CLK_RS9_PCIE is not set -# CONFIG_COMMON_CLK_SI521XX is not set -# CONFIG_COMMON_CLK_VC3 is not set -# CONFIG_COMMON_CLK_VC5 is not set -# CONFIG_COMMON_CLK_VC7 is not set -# CONFIG_COMMON_CLK_FIXED_MMIO is not set -CONFIG_COMMON_CLK_ROCKCHIP=y -# CONFIG_CLK_PX30 is not set -# CONFIG_CLK_RK3308 is not set -# CONFIG_CLK_RK3328 is not set -# CONFIG_CLK_RK3368 is not set -# CONFIG_CLK_RK3399 is not set -CONFIG_CLK_RK3568=y -CONFIG_CLK_RK3576=y -CONFIG_CLK_RK3588=y -# CONFIG_XILINX_VCU is not set -# CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set -# CONFIG_HWSPINLOCK is not set - -# -# Clock Source drivers -# -CONFIG_TIMER_OF=y -CONFIG_TIMER_PROBE=y -CONFIG_CLKSRC_MMIO=y -CONFIG_ROCKCHIP_TIMER=y -CONFIG_ARM_ARCH_TIMER=y -CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y -# CONFIG_FSL_ERRATUM_A008585 is not set -# CONFIG_HISILICON_ERRATUM_161010101 is not set -# CONFIG_ARM64_ERRATUM_858921 is not set -# end of Clock Source drivers - -CONFIG_MAILBOX=y -# CONFIG_ARM_MHU is not set -# CONFIG_ARM_MHU_V2 is not set -# CONFIG_ARM_MHU_V3 is not set -# CONFIG_PLATFORM_MHU is not set -# CONFIG_PL320_MBOX is not set -CONFIG_ROCKCHIP_MBOX=y -# CONFIG_ALTERA_MBOX is not set -# CONFIG_MAILBOX_TEST is not set -CONFIG_IOMMU_IOVA=y -CONFIG_IOMMU_API=y -CONFIG_IOMMU_SUPPORT=y - -# -# Generic IOMMU Pagetable Support -# -CONFIG_IOMMU_IO_PGTABLE=y -CONFIG_IOMMU_IO_PGTABLE_LPAE=y -# CONFIG_IOMMU_IO_PGTABLE_LPAE_SELFTEST is not set -# CONFIG_IOMMU_IO_PGTABLE_ARMV7S is not set -# CONFIG_IOMMU_IO_PGTABLE_DART is not set -# end of Generic IOMMU Pagetable Support - -# CONFIG_IOMMU_DEBUGFS is not set -# CONFIG_IOMMU_DEFAULT_DMA_STRICT is not set -# CONFIG_IOMMU_DEFAULT_DMA_LAZY is not set -CONFIG_IOMMU_DEFAULT_PASSTHROUGH=y -CONFIG_OF_IOMMU=y -CONFIG_IOMMU_DMA=y -# CONFIG_IOMMUFD is not set -CONFIG_ROCKCHIP_IOMMU=y -# CONFIG_ARM_SMMU is not set -# CONFIG_ARM_SMMU_V3 is not set - -# -# Remoteproc drivers -# -# CONFIG_REMOTEPROC is not set -# end of Remoteproc drivers - -# -# Rpmsg drivers -# -# CONFIG_RPMSG_QCOM_GLINK_RPM is not set -# CONFIG_RPMSG_VIRTIO is not set -# end of Rpmsg drivers - -# CONFIG_SOUNDWIRE is not set - -# -# SOC (System On Chip) specific Drivers -# - -# -# Amlogic SoC drivers -# -# end of Amlogic SoC drivers - -# -# Broadcom SoC drivers -# -# end of Broadcom SoC drivers - -# -# NXP/Freescale QorIQ SoC drivers -# -# CONFIG_QUICC_ENGINE is not set -# CONFIG_FSL_RCPM is not set -# end of NXP/Freescale QorIQ SoC drivers - -# -# fujitsu SoC drivers -# -# end of fujitsu SoC drivers - -# -# i.MX SoC drivers -# -# end of i.MX SoC drivers - -# -# Enable LiteX SoC Builder specific drivers -# -# CONFIG_LITEX_SOC_CONTROLLER is not set -# end of Enable LiteX SoC Builder specific drivers - -# CONFIG_WPCM450_SOC is not set - -# -# Qualcomm SoC drivers -# -# end of Qualcomm SoC drivers - -CONFIG_ROCKCHIP_GRF=y -CONFIG_ROCKCHIP_IODOMAIN=y -CONFIG_ROCKCHIP_SUSPEND_MODE=y -# CONFIG_SOC_TI is not set - -# -# Xilinx SoC drivers -# -# end of Xilinx SoC drivers -# end of SOC (System On Chip) specific Drivers - -# -# PM Domains -# - -# -# Amlogic PM Domains -# -# end of Amlogic PM Domains - -CONFIG_ARM_SCMI_PERF_DOMAIN=y -CONFIG_ARM_SCMI_POWER_DOMAIN=y - -# -# Broadcom PM Domains -# -# end of Broadcom PM Domains - -# -# i.MX PM Domains -# -# end of i.MX PM Domains - -# -# Qualcomm PM Domains -# -# end of Qualcomm PM Domains - -CONFIG_ROCKCHIP_PM_DOMAINS=y -# end of PM Domains - -CONFIG_PM_DEVFREQ=y - -# -# DEVFREQ Governors -# -CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=y -CONFIG_DEVFREQ_GOV_PERFORMANCE=y -CONFIG_DEVFREQ_GOV_POWERSAVE=y -CONFIG_DEVFREQ_GOV_USERSPACE=y -# CONFIG_DEVFREQ_GOV_PASSIVE is not set - -# -# DEVFREQ Drivers -# -CONFIG_ARM_RK3399_DMC_DEVFREQ=y -CONFIG_PM_DEVFREQ_EVENT=y -CONFIG_DEVFREQ_EVENT_ROCKCHIP_DFI=y -CONFIG_EXTCON=y - -# -# Extcon Device Drivers -# -# CONFIG_EXTCON_ADC_JACK is not set -# CONFIG_EXTCON_FSA9480 is not set -# CONFIG_EXTCON_GPIO is not set -# CONFIG_EXTCON_LC824206XA is not set -# CONFIG_EXTCON_MAX3355 is not set -# CONFIG_EXTCON_PTN5150 is not set -# CONFIG_EXTCON_RT8973A is not set -# CONFIG_EXTCON_SM5502 is not set -# CONFIG_EXTCON_USB_GPIO is not set -# CONFIG_EXTCON_USBC_TUSB320 is not set -# CONFIG_MEMORY is not set -CONFIG_IIO=m -CONFIG_IIO_BUFFER=y -# CONFIG_IIO_BUFFER_CB is not set -# CONFIG_IIO_BUFFER_DMA is not set -# CONFIG_IIO_BUFFER_DMAENGINE is not set -# CONFIG_IIO_BUFFER_HW_CONSUMER is not set -CONFIG_IIO_KFIFO_BUF=m -CONFIG_IIO_TRIGGERED_BUFFER=m -CONFIG_IIO_CONFIGFS=m -CONFIG_IIO_TRIGGER=y -CONFIG_IIO_CONSUMERS_PER_TRIGGER=2 -# CONFIG_IIO_SW_DEVICE is not set -CONFIG_IIO_SW_TRIGGER=m -CONFIG_IIO_TRIGGERED_EVENT=m - -# -# Accelerometers -# -# CONFIG_ADIS16201 is not set -# CONFIG_ADIS16209 is not set -# CONFIG_ADXL313_I2C is not set -# CONFIG_ADXL313_SPI is not set -# CONFIG_ADXL345_I2C is not set -# CONFIG_ADXL345_SPI is not set -# CONFIG_ADXL355_I2C is not set -# CONFIG_ADXL355_SPI is not set -# CONFIG_ADXL367_SPI is not set -# CONFIG_ADXL367_I2C is not set -# CONFIG_ADXL372_SPI is not set -# CONFIG_ADXL372_I2C is not set -# CONFIG_ADXL380_SPI is not set -# CONFIG_ADXL380_I2C is not set -# CONFIG_BMA180 is not set -# CONFIG_BMA220 is not set -# CONFIG_BMA400 is not set -# CONFIG_BMC150_ACCEL is not set -# CONFIG_BMI088_ACCEL is not set -# CONFIG_DA280 is not set -# CONFIG_DA311 is not set -# CONFIG_DMARD06 is not set -# CONFIG_DMARD09 is not set -# CONFIG_DMARD10 is not set -# CONFIG_FXLS8962AF_I2C is not set -# CONFIG_FXLS8962AF_SPI is not set -CONFIG_IIO_ST_ACCEL_3AXIS=m -CONFIG_IIO_ST_ACCEL_I2C_3AXIS=m -CONFIG_IIO_ST_ACCEL_SPI_3AXIS=m -# CONFIG_IIO_KX022A_SPI is not set -# CONFIG_IIO_KX022A_I2C is not set -# CONFIG_KXSD9 is not set -# CONFIG_KXCJK1013 is not set -# CONFIG_MC3230 is not set -# CONFIG_MMA7455_I2C is not set -# CONFIG_MMA7455_SPI is not set -# CONFIG_MMA7660 is not set -# CONFIG_MMA8452 is not set -# CONFIG_MMA9551 is not set -# CONFIG_MMA9553 is not set -# CONFIG_MSA311 is not set -# CONFIG_MXC4005 is not set -# CONFIG_MXC6255 is not set -# CONFIG_SCA3000 is not set -# CONFIG_SCA3300 is not set -# CONFIG_STK8312 is not set -# CONFIG_STK8BA50 is not set -# end of Accelerometers - -# -# Analog to digital converters -# -# CONFIG_AD4000 is not set -# CONFIG_AD4130 is not set -# CONFIG_AD4695 is not set -# CONFIG_AD7091R5 is not set -# CONFIG_AD7091R8 is not set -# CONFIG_AD7124 is not set -# CONFIG_AD7173 is not set -# CONFIG_AD7192 is not set -# CONFIG_AD7266 is not set -# CONFIG_AD7280 is not set -# CONFIG_AD7291 is not set -# CONFIG_AD7292 is not set -# CONFIG_AD7298 is not set -# CONFIG_AD7380 is not set -# CONFIG_AD7476 is not set -# CONFIG_AD7606_IFACE_PARALLEL is not set -# CONFIG_AD7606_IFACE_SPI is not set -# CONFIG_AD7766 is not set -# CONFIG_AD7768_1 is not set -# CONFIG_AD7780 is not set -# CONFIG_AD7791 is not set -# CONFIG_AD7793 is not set -# CONFIG_AD7887 is not set -# CONFIG_AD7923 is not set -# CONFIG_AD7944 is not set -# CONFIG_AD7949 is not set -# CONFIG_AD799X is not set -# CONFIG_AD9467 is not set -# CONFIG_CC10001_ADC is not set -# CONFIG_ENVELOPE_DETECTOR is not set -# CONFIG_HI8435 is not set -# CONFIG_HX711 is not set -# CONFIG_INA2XX_ADC is not set -# CONFIG_LTC2309 is not set -# CONFIG_LTC2471 is not set -# CONFIG_LTC2485 is not set -# CONFIG_LTC2496 is not set -# CONFIG_LTC2497 is not set -# CONFIG_MAX1027 is not set -# CONFIG_MAX11100 is not set -# CONFIG_MAX1118 is not set -# CONFIG_MAX11205 is not set -# CONFIG_MAX11410 is not set -# CONFIG_MAX1241 is not set -# CONFIG_MAX1363 is not set -# CONFIG_MAX34408 is not set -# CONFIG_MAX9611 is not set -# CONFIG_MCP320X is not set -# CONFIG_MCP3422 is not set -# CONFIG_MCP3564 is not set -# CONFIG_MCP3911 is not set -# CONFIG_NAU7802 is not set -# CONFIG_PAC1921 is not set -# CONFIG_PAC1934 is not set -CONFIG_ROCKCHIP_SARADC=m -# CONFIG_RICHTEK_RTQ6056 is not set -# CONFIG_SD_ADC_MODULATOR is not set -# CONFIG_TI_ADC081C is not set -# CONFIG_TI_ADC0832 is not set -# CONFIG_TI_ADC084S021 is not set -# CONFIG_TI_ADC12138 is not set -# CONFIG_TI_ADC108S102 is not set -# CONFIG_TI_ADC128S052 is not set -# CONFIG_TI_ADC161S626 is not set -# CONFIG_TI_ADS1015 is not set -# CONFIG_TI_ADS1119 is not set -# CONFIG_TI_ADS7924 is not set -# CONFIG_TI_ADS1100 is not set -# CONFIG_TI_ADS1298 is not set -# CONFIG_TI_ADS7950 is not set -# CONFIG_TI_ADS8344 is not set -# CONFIG_TI_ADS8688 is not set -# CONFIG_TI_ADS124S08 is not set -# CONFIG_TI_ADS131E08 is not set -# CONFIG_TI_LMP92064 is not set -# CONFIG_TI_TLC4541 is not set -# CONFIG_TI_TSC2046 is not set -# CONFIG_VF610_ADC is not set -# CONFIG_XILINX_XADC is not set -# end of Analog to digital converters - -# -# Analog to digital and digital to analog converters -# -# CONFIG_AD74115 is not set -# CONFIG_AD74413R is not set -# end of Analog to digital and digital to analog converters - -# -# Analog Front Ends -# -# CONFIG_IIO_RESCALE is not set -# end of Analog Front Ends - -# -# Amplifiers -# -# CONFIG_AD8366 is not set -# CONFIG_ADA4250 is not set -# CONFIG_HMC425 is not set -# end of Amplifiers - -# -# Capacitance to digital converters -# -# CONFIG_AD7150 is not set -# CONFIG_AD7746 is not set -# end of Capacitance to digital converters - -# -# Chemical Sensors -# -# CONFIG_AOSONG_AGS02MA is not set -# CONFIG_ATLAS_PH_SENSOR is not set -# CONFIG_ATLAS_EZO_SENSOR is not set -# CONFIG_BME680 is not set -# CONFIG_CCS811 is not set -# CONFIG_ENS160 is not set -# CONFIG_IAQCORE is not set -# CONFIG_PMS7003 is not set -# CONFIG_SCD30_CORE is not set -# CONFIG_SCD4X is not set -# CONFIG_SENSIRION_SGP30 is not set -# CONFIG_SENSIRION_SGP40 is not set -# CONFIG_SPS30_I2C is not set -# CONFIG_SPS30_SERIAL is not set -# CONFIG_SENSEAIR_SUNRISE_CO2 is not set -# CONFIG_VZ89X is not set -# end of Chemical Sensors - -# -# Hid Sensor IIO Common -# -# end of Hid Sensor IIO Common - -# -# IIO SCMI Sensors -# -# CONFIG_IIO_SCMI is not set -# end of IIO SCMI Sensors - -# -# SSP Sensor Common -# -# CONFIG_IIO_SSP_SENSORHUB is not set -# end of SSP Sensor Common - -CONFIG_IIO_ST_SENSORS_I2C=m -CONFIG_IIO_ST_SENSORS_SPI=m -CONFIG_IIO_ST_SENSORS_CORE=m - -# -# Digital to analog converters -# -# CONFIG_AD3552R is not set -# CONFIG_AD5064 is not set -# CONFIG_AD5360 is not set -# CONFIG_AD5380 is not set -# CONFIG_AD5421 is not set -# CONFIG_AD5446 is not set -# CONFIG_AD5449 is not set -# CONFIG_AD5592R is not set -# CONFIG_AD5593R is not set -# CONFIG_AD5504 is not set -# CONFIG_AD5624R_SPI is not set -# CONFIG_AD9739A is not set -# CONFIG_LTC2688 is not set -# CONFIG_AD5686_SPI is not set -# CONFIG_AD5696_I2C is not set -# CONFIG_AD5755 is not set -# CONFIG_AD5758 is not set -# CONFIG_AD5761 is not set -# CONFIG_AD5764 is not set -# CONFIG_AD5766 is not set -# CONFIG_AD5770R is not set -# CONFIG_AD5791 is not set -# CONFIG_AD7293 is not set -# CONFIG_AD7303 is not set -# CONFIG_AD8801 is not set -# CONFIG_DPOT_DAC is not set -# CONFIG_DS4424 is not set -# CONFIG_LTC1660 is not set -# CONFIG_LTC2632 is not set -# CONFIG_LTC2664 is not set -# CONFIG_M62332 is not set -# CONFIG_MAX517 is not set -# CONFIG_MAX5522 is not set -# CONFIG_MAX5821 is not set -# CONFIG_MCP4725 is not set -# CONFIG_MCP4728 is not set -# CONFIG_MCP4821 is not set -# CONFIG_MCP4922 is not set -# CONFIG_TI_DAC082S085 is not set -# CONFIG_TI_DAC5571 is not set -# CONFIG_TI_DAC7311 is not set -# CONFIG_TI_DAC7612 is not set -# CONFIG_VF610_DAC is not set -# end of Digital to analog converters - -# -# IIO dummy driver -# -# end of IIO dummy driver - -# -# Filters -# -# CONFIG_ADMV8818 is not set -# end of Filters - -# -# Frequency Synthesizers DDS/PLL -# - -# -# Clock Generator/Distribution -# -# CONFIG_AD9523 is not set -# end of Clock Generator/Distribution - -# -# Phase-Locked Loop (PLL) frequency synthesizers -# -# CONFIG_ADF4350 is not set -# CONFIG_ADF4371 is not set -# CONFIG_ADF4377 is not set -# CONFIG_ADMFM2000 is not set -# CONFIG_ADMV1013 is not set -# CONFIG_ADMV1014 is not set -# CONFIG_ADMV4420 is not set -# CONFIG_ADRF6780 is not set -# end of Phase-Locked Loop (PLL) frequency synthesizers -# end of Frequency Synthesizers DDS/PLL - -# -# Digital gyroscope sensors -# -# CONFIG_ADIS16080 is not set -# CONFIG_ADIS16130 is not set -# CONFIG_ADIS16136 is not set -# CONFIG_ADIS16260 is not set -# CONFIG_ADXRS290 is not set -# CONFIG_ADXRS450 is not set -# CONFIG_BMG160 is not set -# CONFIG_FXAS21002C is not set -# CONFIG_MPU3050_I2C is not set -# CONFIG_IIO_ST_GYRO_3AXIS is not set -# CONFIG_ITG3200 is not set -# end of Digital gyroscope sensors - -# -# Health Sensors -# - -# -# Heart Rate Monitors -# -# CONFIG_AFE4403 is not set -# CONFIG_AFE4404 is not set -# CONFIG_MAX30100 is not set -# CONFIG_MAX30102 is not set -# end of Heart Rate Monitors -# end of Health Sensors - -# -# Humidity sensors -# -# CONFIG_AM2315 is not set -# CONFIG_DHT11 is not set -# CONFIG_ENS210 is not set -# CONFIG_HDC100X is not set -# CONFIG_HDC2010 is not set -# CONFIG_HDC3020 is not set -# CONFIG_HTS221 is not set -# CONFIG_HTU21 is not set -# CONFIG_SI7005 is not set -# CONFIG_SI7020 is not set -# end of Humidity sensors - -# -# Inertial measurement units -# -# CONFIG_ADIS16400 is not set -# CONFIG_ADIS16460 is not set -# CONFIG_ADIS16475 is not set -# CONFIG_ADIS16480 is not set -# CONFIG_BMI160_I2C is not set -# CONFIG_BMI160_SPI is not set -# CONFIG_BMI323_I2C is not set -# CONFIG_BMI323_SPI is not set -# CONFIG_BOSCH_BNO055_SERIAL is not set -# CONFIG_BOSCH_BNO055_I2C is not set -# CONFIG_FXOS8700_I2C is not set -# CONFIG_FXOS8700_SPI is not set -# CONFIG_KMX61 is not set -# CONFIG_INV_ICM42600_I2C is not set -# CONFIG_INV_ICM42600_SPI is not set -# CONFIG_INV_MPU6050_I2C is not set -# CONFIG_INV_MPU6050_SPI is not set -# CONFIG_IIO_ST_LSM6DSX is not set -# CONFIG_IIO_ST_LSM9DS0 is not set -# end of Inertial measurement units - -# -# Light sensors -# -# CONFIG_ADJD_S311 is not set -# CONFIG_ADUX1020 is not set -# CONFIG_AL3010 is not set -# CONFIG_AL3320A is not set -# CONFIG_APDS9300 is not set -# CONFIG_APDS9306 is not set -# CONFIG_APDS9960 is not set -# CONFIG_AS73211 is not set -# CONFIG_BH1745 is not set -# CONFIG_BH1750 is not set -# CONFIG_BH1780 is not set -# CONFIG_CM32181 is not set -# CONFIG_CM3232 is not set -# CONFIG_CM3323 is not set -# CONFIG_CM3605 is not set -# CONFIG_CM36651 is not set -# CONFIG_GP2AP002 is not set -# CONFIG_GP2AP020A00F is not set -# CONFIG_SENSORS_ISL29018 is not set -# CONFIG_SENSORS_ISL29028 is not set -# CONFIG_ISL29125 is not set -# CONFIG_ISL76682 is not set -# CONFIG_JSA1212 is not set -# CONFIG_ROHM_BU27008 is not set -# CONFIG_ROHM_BU27034 is not set -# CONFIG_RPR0521 is not set -# CONFIG_LTR390 is not set -# CONFIG_LTR501 is not set -# CONFIG_LTRF216A is not set -# CONFIG_LV0104CS is not set -# CONFIG_MAX44000 is not set -# CONFIG_MAX44009 is not set -# CONFIG_NOA1305 is not set -# CONFIG_OPT3001 is not set -# CONFIG_OPT4001 is not set -# CONFIG_PA12203001 is not set -# CONFIG_SI1133 is not set -# CONFIG_SI1145 is not set -# CONFIG_STK3310 is not set -# CONFIG_ST_UVIS25 is not set -# CONFIG_TCS3414 is not set -# CONFIG_TCS3472 is not set -# CONFIG_SENSORS_TSL2563 is not set -# CONFIG_TSL2583 is not set -# CONFIG_TSL2591 is not set -# CONFIG_TSL2772 is not set -# CONFIG_TSL4531 is not set -# CONFIG_US5182D is not set -# CONFIG_VCNL4000 is not set -# CONFIG_VCNL4035 is not set -# CONFIG_VEML6030 is not set -# CONFIG_VEML6040 is not set -# CONFIG_VEML6070 is not set -# CONFIG_VEML6075 is not set -# CONFIG_VL6180 is not set -# CONFIG_ZOPT2201 is not set -# end of Light sensors - -# -# Magnetometer sensors -# -# CONFIG_AF8133J is not set -# CONFIG_AK8974 is not set -# CONFIG_AK8975 is not set -# CONFIG_AK09911 is not set -# CONFIG_BMC150_MAGN_I2C is not set -# CONFIG_BMC150_MAGN_SPI is not set -# CONFIG_MAG3110 is not set -# CONFIG_MMC35240 is not set -# CONFIG_IIO_ST_MAGN_3AXIS is not set -# CONFIG_SENSORS_HMC5843_I2C is not set -# CONFIG_SENSORS_HMC5843_SPI is not set -# CONFIG_SENSORS_RM3100_I2C is not set -# CONFIG_SENSORS_RM3100_SPI is not set -# CONFIG_TI_TMAG5273 is not set -# CONFIG_YAMAHA_YAS530 is not set -# end of Magnetometer sensors - -# -# Multiplexers -# -# CONFIG_IIO_MUX is not set -# end of Multiplexers - -# -# Inclinometer sensors -# -# end of Inclinometer sensors - -# -# Triggers - standalone -# -# CONFIG_IIO_HRTIMER_TRIGGER is not set -# CONFIG_IIO_INTERRUPT_TRIGGER is not set -# CONFIG_IIO_TIGHTLOOP_TRIGGER is not set -# CONFIG_IIO_SYSFS_TRIGGER is not set -# end of Triggers - standalone - -# -# Linear and angular position sensors -# -# end of Linear and angular position sensors - -# -# Digital potentiometers -# -# CONFIG_AD5110 is not set -# CONFIG_AD5272 is not set -# CONFIG_DS1803 is not set -# CONFIG_MAX5432 is not set -# CONFIG_MAX5481 is not set -# CONFIG_MAX5487 is not set -# CONFIG_MCP4018 is not set -# CONFIG_MCP4131 is not set -# CONFIG_MCP4531 is not set -# CONFIG_MCP41010 is not set -# CONFIG_TPL0102 is not set -# CONFIG_X9250 is not set -# end of Digital potentiometers - -# -# Digital potentiostats -# -# CONFIG_LMP91000 is not set -# end of Digital potentiostats - -# -# Pressure sensors -# -# CONFIG_ABP060MG is not set -# CONFIG_ROHM_BM1390 is not set -# CONFIG_BMP280 is not set -# CONFIG_DLHL60D is not set -# CONFIG_DPS310 is not set -# CONFIG_HP03 is not set -# CONFIG_HSC030PA is not set -# CONFIG_ICP10100 is not set -# CONFIG_MPL115_I2C is not set -# CONFIG_MPL115_SPI is not set -# CONFIG_MPL3115 is not set -# CONFIG_MPRLS0025PA is not set -# CONFIG_MS5611 is not set -# CONFIG_MS5637 is not set -# CONFIG_SDP500 is not set -# CONFIG_IIO_ST_PRESS is not set -# CONFIG_T5403 is not set -# CONFIG_HP206C is not set -# CONFIG_ZPA2326 is not set -# end of Pressure sensors - -# -# Lightning sensors -# -# CONFIG_AS3935 is not set -# end of Lightning sensors - -# -# Proximity and distance sensors -# -# CONFIG_HX9023S is not set -# CONFIG_IRSD200 is not set -# CONFIG_ISL29501 is not set -# CONFIG_LIDAR_LITE_V2 is not set -# CONFIG_MB1232 is not set -# CONFIG_PING is not set -# CONFIG_RFD77402 is not set -# CONFIG_SRF04 is not set -# CONFIG_SX9310 is not set -# CONFIG_SX9324 is not set -# CONFIG_SX9360 is not set -# CONFIG_SX9500 is not set -# CONFIG_SRF08 is not set -# CONFIG_VCNL3020 is not set -# CONFIG_VL53L0X_I2C is not set -# CONFIG_AW96103 is not set -# end of Proximity and distance sensors - -# -# Resolver to digital converters -# -# CONFIG_AD2S90 is not set -# CONFIG_AD2S1200 is not set -# CONFIG_AD2S1210 is not set -# end of Resolver to digital converters - -# -# Temperature sensors -# -# CONFIG_LTC2983 is not set -# CONFIG_MAXIM_THERMOCOUPLE is not set -# CONFIG_MLX90614 is not set -# CONFIG_MLX90632 is not set -# CONFIG_MLX90635 is not set -# CONFIG_TMP006 is not set -# CONFIG_TMP007 is not set -# CONFIG_TMP117 is not set -# CONFIG_TSYS01 is not set -# CONFIG_TSYS02D is not set -# CONFIG_MAX30208 is not set -# CONFIG_MAX31856 is not set -# CONFIG_MAX31865 is not set -# CONFIG_MCP9600 is not set -# end of Temperature sensors - -# CONFIG_NTB is not set -CONFIG_PWM=y -# CONFIG_PWM_DEBUG is not set -# CONFIG_PWM_ATMEL_TCB is not set -# CONFIG_PWM_CLK is not set -# CONFIG_PWM_DWC is not set -# CONFIG_PWM_FSL_FTM is not set -# CONFIG_PWM_GPIO is not set -# CONFIG_PWM_PCA9685 is not set -CONFIG_PWM_ROCKCHIP=y -# CONFIG_PWM_XILINX is not set - -# -# IRQ chip support -# -CONFIG_IRQCHIP=y -CONFIG_ARM_GIC=y -CONFIG_ARM_GIC_MAX_NR=1 -CONFIG_ARM_GIC_V2M=y -CONFIG_ARM_GIC_V3=y -CONFIG_ARM_GIC_V3_ITS=y -CONFIG_IRQ_MSI_LIB=y -# CONFIG_AL_FIC is not set -# CONFIG_LAN966X_OIC is not set -# CONFIG_XILINX_INTC is not set -CONFIG_PARTITION_PERCPU=y -# end of IRQ chip support - -# CONFIG_IPACK_BUS is not set -CONFIG_ARCH_HAS_RESET_CONTROLLER=y -CONFIG_RESET_CONTROLLER=y -# CONFIG_RESET_GPIO is not set -CONFIG_RESET_SCMI=y -# CONFIG_RESET_SIMPLE is not set -# CONFIG_RESET_TI_SYSCON is not set -# CONFIG_RESET_TI_TPS380X is not set - -# -# PHY Subsystem -# -CONFIG_GENERIC_PHY=y -CONFIG_GENERIC_PHY_MIPI_DPHY=y -# CONFIG_PHY_CAN_TRANSCEIVER is not set - -# -# PHY drivers for Broadcom platforms -# -# CONFIG_BCM_KONA_USB2_PHY is not set -# end of PHY drivers for Broadcom platforms - -# CONFIG_PHY_CADENCE_TORRENT is not set -# CONFIG_PHY_CADENCE_DPHY is not set -# CONFIG_PHY_CADENCE_DPHY_RX is not set -# CONFIG_PHY_CADENCE_SIERRA is not set -# CONFIG_PHY_CADENCE_SALVO is not set -# CONFIG_PHY_PXA_28NM_HSIC is not set -# CONFIG_PHY_PXA_28NM_USB2 is not set -# CONFIG_PHY_LAN966X_SERDES is not set -# CONFIG_PHY_CPCAP_USB is not set -# CONFIG_PHY_MAPPHONE_MDM6600 is not set -# CONFIG_PHY_OCELOT_SERDES is not set -# CONFIG_PHY_ROCKCHIP_DP is not set -# CONFIG_PHY_ROCKCHIP_DPHY_RX0 is not set -# CONFIG_PHY_ROCKCHIP_EMMC is not set -CONFIG_PHY_ROCKCHIP_INNO_HDMI=y -CONFIG_PHY_ROCKCHIP_INNO_USB2=y -CONFIG_PHY_ROCKCHIP_INNO_CSIDPHY=y -CONFIG_PHY_ROCKCHIP_INNO_DSIDPHY=y -CONFIG_PHY_ROCKCHIP_NANENG_COMBO_PHY=y -CONFIG_PHY_ROCKCHIP_PCIE=y -# CONFIG_PHY_ROCKCHIP_SAMSUNG_HDPTX is not set -# CONFIG_PHY_ROCKCHIP_SNPS_PCIE3 is not set -# CONFIG_PHY_ROCKCHIP_TYPEC is not set -# CONFIG_PHY_ROCKCHIP_USB is not set -# CONFIG_PHY_ROCKCHIP_USBDP is not set -# end of PHY Subsystem - -# CONFIG_POWERCAP is not set -# CONFIG_MCB is not set - -# -# Performance monitor support -# -# CONFIG_ARM_CCI_PMU is not set -# CONFIG_ARM_CCN is not set -# CONFIG_ARM_CMN is not set -# CONFIG_ARM_NI is not set -CONFIG_ARM_PMU=y -# CONFIG_ARM_SMMU_V3_PMU is not set -CONFIG_ARM_PMUV3=y -# CONFIG_ARM_DSU_PMU is not set -# CONFIG_ARM_SPE_PMU is not set -# CONFIG_HISI_PCIE_PMU is not set -# CONFIG_HNS3_PMU is not set -# CONFIG_DWC_PCIE_PMU is not set -# CONFIG_ARM_CORESIGHT_PMU_ARCH_SYSTEM_PMU is not set -# end of Performance monitor support - -# CONFIG_RAS is not set -# CONFIG_USB4 is not set - -# -# Android -# -CONFIG_ANDROID_BINDER_IPC=y -CONFIG_ANDROID_BINDERFS=y -CONFIG_ANDROID_BINDER_DEVICES="binder,hwbinder,vndbinder" -# CONFIG_ANDROID_BINDER_IPC_SELFTEST is not set -# end of Android - -# CONFIG_LIBNVDIMM is not set -# CONFIG_DAX is not set -CONFIG_NVMEM=y -CONFIG_NVMEM_SYSFS=y -CONFIG_NVMEM_LAYOUTS=y - -# -# Layout Types -# -# CONFIG_NVMEM_LAYOUT_SL28_VPD is not set -# CONFIG_NVMEM_LAYOUT_ONIE_TLV is not set -# CONFIG_NVMEM_LAYOUT_U_BOOT_ENV is not set -# end of Layout Types - -# CONFIG_NVMEM_RMEM is not set -# CONFIG_NVMEM_ROCKCHIP_EFUSE is not set -# CONFIG_NVMEM_ROCKCHIP_OTP is not set - -# -# HW tracing support -# -# CONFIG_STM is not set -# CONFIG_INTEL_TH is not set -# CONFIG_HISI_PTT is not set -# end of HW tracing support - -# CONFIG_FPGA is not set -# CONFIG_FSI is not set -# CONFIG_TEE is not set -CONFIG_PM_OPP=y -# CONFIG_SIOX is not set -# CONFIG_SLIMBUS is not set -# CONFIG_INTERCONNECT is not set -# CONFIG_COUNTER is not set -# CONFIG_MOST is not set -# CONFIG_PECI is not set -# CONFIG_HTE is not set -# CONFIG_CDX_BUS is not set -# end of Device Drivers - -# -# File systems -# -CONFIG_DCACHE_WORD_ACCESS=y -# CONFIG_VALIDATE_FS_PARSER is not set -CONFIG_FS_IOMAP=y -CONFIG_FS_STACK=y -CONFIG_BUFFER_HEAD=y -CONFIG_LEGACY_DIRECT_IO=y -# CONFIG_EXT2_FS is not set -# CONFIG_EXT3_FS is not set -CONFIG_EXT4_FS=y -CONFIG_EXT4_USE_FOR_EXT2=y -CONFIG_EXT4_FS_POSIX_ACL=y -CONFIG_EXT4_FS_SECURITY=y -# CONFIG_EXT4_DEBUG is not set -CONFIG_JBD2=y -# CONFIG_JBD2_DEBUG is not set -CONFIG_FS_MBCACHE=y -# CONFIG_REISERFS_FS is not set -# CONFIG_JFS_FS is not set -CONFIG_XFS_FS=y -# CONFIG_XFS_SUPPORT_V4 is not set -CONFIG_XFS_SUPPORT_ASCII_CI=y -# CONFIG_XFS_QUOTA is not set -CONFIG_XFS_POSIX_ACL=y -# CONFIG_XFS_RT is not set -# CONFIG_XFS_ONLINE_SCRUB is not set -# CONFIG_XFS_WARN is not set -# CONFIG_XFS_DEBUG is not set -# CONFIG_GFS2_FS is not set -# CONFIG_OCFS2_FS is not set -CONFIG_BTRFS_FS=m -CONFIG_BTRFS_FS_POSIX_ACL=y -# CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set -# CONFIG_BTRFS_DEBUG is not set -# CONFIG_BTRFS_ASSERT is not set -# CONFIG_BTRFS_FS_REF_VERIFY is not set -# CONFIG_NILFS2_FS is not set -CONFIG_F2FS_FS=y -CONFIG_F2FS_STAT_FS=y -CONFIG_F2FS_FS_XATTR=y -CONFIG_F2FS_FS_POSIX_ACL=y -CONFIG_F2FS_FS_SECURITY=y -# CONFIG_F2FS_CHECK_FS is not set -# CONFIG_F2FS_FAULT_INJECTION is not set -# CONFIG_F2FS_FS_COMPRESSION is not set -CONFIG_F2FS_IOSTAT=y -# CONFIG_F2FS_UNFAIR_RWSEM is not set -# CONFIG_BCACHEFS_FS is not set -CONFIG_FS_POSIX_ACL=y -CONFIG_EXPORTFS=y -# CONFIG_EXPORTFS_BLOCK_OPS is not set -CONFIG_FILE_LOCKING=y -# CONFIG_FS_ENCRYPTION is not set -# CONFIG_FS_VERITY is not set -CONFIG_FSNOTIFY=y -# CONFIG_DNOTIFY is not set -CONFIG_INOTIFY_USER=y -# CONFIG_FANOTIFY is not set -CONFIG_QUOTA=y -# CONFIG_QUOTA_NETLINK_INTERFACE is not set -# CONFIG_QUOTA_DEBUG is not set -# CONFIG_QFMT_V1 is not set -# CONFIG_QFMT_V2 is not set -CONFIG_QUOTACTL=y -CONFIG_AUTOFS_FS=y -CONFIG_FUSE_FS=m -# CONFIG_CUSE is not set -# CONFIG_VIRTIO_FS is not set -CONFIG_FUSE_PASSTHROUGH=y -CONFIG_OVERLAY_FS=m -# CONFIG_OVERLAY_FS_REDIRECT_DIR is not set -CONFIG_OVERLAY_FS_REDIRECT_ALWAYS_FOLLOW=y -# CONFIG_OVERLAY_FS_INDEX is not set -# CONFIG_OVERLAY_FS_XINO_AUTO is not set -# CONFIG_OVERLAY_FS_METACOPY is not set -# CONFIG_OVERLAY_FS_DEBUG is not set - -# -# Caches -# -CONFIG_NETFS_SUPPORT=m -CONFIG_NETFS_STATS=y -# CONFIG_NETFS_DEBUG is not set -CONFIG_FSCACHE=y -CONFIG_FSCACHE_STATS=y -CONFIG_CACHEFILES=m -# CONFIG_CACHEFILES_DEBUG is not set -# CONFIG_CACHEFILES_ERROR_INJECTION is not set -# CONFIG_CACHEFILES_ONDEMAND is not set -# end of Caches - -# -# CD-ROM/DVD Filesystems -# -CONFIG_ISO9660_FS=m -CONFIG_JOLIET=y -# CONFIG_ZISOFS is not set -CONFIG_UDF_FS=m -# end of CD-ROM/DVD Filesystems - -# -# DOS/FAT/EXFAT/NT Filesystems -# -CONFIG_FAT_FS=y -# CONFIG_MSDOS_FS is not set -CONFIG_VFAT_FS=y -CONFIG_FAT_DEFAULT_CODEPAGE=437 -CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" -CONFIG_FAT_DEFAULT_UTF8=y -CONFIG_EXFAT_FS=m -CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8" -CONFIG_NTFS3_FS=m -# CONFIG_NTFS3_64BIT_CLUSTER is not set -# CONFIG_NTFS3_LZX_XPRESS is not set -# CONFIG_NTFS3_FS_POSIX_ACL is not set -# CONFIG_NTFS_FS is not set -# end of DOS/FAT/EXFAT/NT Filesystems - -# -# Pseudo filesystems -# -CONFIG_PROC_FS=y -CONFIG_PROC_KCORE=y -CONFIG_PROC_VMCORE=y -# CONFIG_PROC_VMCORE_DEVICE_DUMP is not set -CONFIG_PROC_SYSCTL=y -CONFIG_PROC_PAGE_MONITOR=y -CONFIG_PROC_CHILDREN=y -CONFIG_KERNFS=y -CONFIG_SYSFS=y -CONFIG_TMPFS=y -CONFIG_TMPFS_POSIX_ACL=y -CONFIG_TMPFS_XATTR=y -CONFIG_TMPFS_INODE64=y -# CONFIG_TMPFS_QUOTA is not set -CONFIG_ARCH_SUPPORTS_HUGETLBFS=y -CONFIG_HUGETLBFS=y -CONFIG_HUGETLB_PAGE=y -CONFIG_HUGETLB_PMD_PAGE_TABLE_SHARING=y -CONFIG_ARCH_HAS_GIGANTIC_PAGE=y -CONFIG_CONFIGFS_FS=y -CONFIG_EFIVAR_FS=y -# end of Pseudo filesystems - -# CONFIG_MISC_FILESYSTEMS is not set -CONFIG_NETWORK_FILESYSTEMS=y -CONFIG_NFS_FS=m -CONFIG_NFS_V2=m -CONFIG_NFS_V3=m -CONFIG_NFS_V3_ACL=y -CONFIG_NFS_V4=m -CONFIG_NFS_V4_1=y -CONFIG_NFS_V4_2=y -CONFIG_PNFS_FILE_LAYOUT=m -CONFIG_PNFS_BLOCK=m -CONFIG_PNFS_FLEXFILE_LAYOUT=m -CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org" -# CONFIG_NFS_V4_1_MIGRATION is not set -CONFIG_NFS_FSCACHE=y -# CONFIG_NFS_USE_LEGACY_DNS is not set -CONFIG_NFS_USE_KERNEL_DNS=y -CONFIG_NFS_DISABLE_UDP_SUPPORT=y -CONFIG_NFS_V4_2_READ_PLUS=y -# CONFIG_NFSD is not set -CONFIG_GRACE_PERIOD=m -CONFIG_LOCKD=m -CONFIG_LOCKD_V4=y -CONFIG_NFS_ACL_SUPPORT=m -CONFIG_NFS_COMMON=y -CONFIG_NFS_V4_2_SSC_HELPER=y -CONFIG_SUNRPC=m -CONFIG_SUNRPC_GSS=m -CONFIG_SUNRPC_BACKCHANNEL=y -CONFIG_RPCSEC_GSS_KRB5=m -# CONFIG_SUNRPC_DEBUG is not set -# CONFIG_CEPH_FS is not set -CONFIG_CIFS=m -CONFIG_CIFS_STATS2=y -CONFIG_CIFS_ALLOW_INSECURE_LEGACY=y -CONFIG_CIFS_UPCALL=y -CONFIG_CIFS_XATTR=y -# CONFIG_CIFS_POSIX is not set -CONFIG_CIFS_DEBUG=y -# CONFIG_CIFS_DEBUG2 is not set -# CONFIG_CIFS_DEBUG_DUMP_KEYS is not set -# CONFIG_CIFS_DFS_UPCALL is not set -# CONFIG_CIFS_SWN_UPCALL is not set -CONFIG_CIFS_FSCACHE=y -# CONFIG_CIFS_COMPRESSION is not set -# CONFIG_SMB_SERVER is not set -CONFIG_SMBFS=m -# CONFIG_CODA_FS is not set -# CONFIG_AFS_FS is not set -CONFIG_NLS=y -CONFIG_NLS_DEFAULT="iso8859-1" -CONFIG_NLS_CODEPAGE_437=y -# CONFIG_NLS_CODEPAGE_737 is not set -# CONFIG_NLS_CODEPAGE_775 is not set -# CONFIG_NLS_CODEPAGE_850 is not set -# CONFIG_NLS_CODEPAGE_852 is not set -# CONFIG_NLS_CODEPAGE_855 is not set -# CONFIG_NLS_CODEPAGE_857 is not set -# CONFIG_NLS_CODEPAGE_860 is not set -# CONFIG_NLS_CODEPAGE_861 is not set -# CONFIG_NLS_CODEPAGE_862 is not set -# CONFIG_NLS_CODEPAGE_863 is not set -# CONFIG_NLS_CODEPAGE_864 is not set -# CONFIG_NLS_CODEPAGE_865 is not set -# CONFIG_NLS_CODEPAGE_866 is not set -# CONFIG_NLS_CODEPAGE_869 is not set -# CONFIG_NLS_CODEPAGE_936 is not set -# CONFIG_NLS_CODEPAGE_950 is not set -# CONFIG_NLS_CODEPAGE_932 is not set -# CONFIG_NLS_CODEPAGE_949 is not set -# CONFIG_NLS_CODEPAGE_874 is not set -# CONFIG_NLS_ISO8859_8 is not set -# CONFIG_NLS_CODEPAGE_1250 is not set -# CONFIG_NLS_CODEPAGE_1251 is not set -# CONFIG_NLS_ASCII is not set -CONFIG_NLS_ISO8859_1=y -# CONFIG_NLS_ISO8859_2 is not set -# CONFIG_NLS_ISO8859_3 is not set -# CONFIG_NLS_ISO8859_4 is not set -# CONFIG_NLS_ISO8859_5 is not set -# CONFIG_NLS_ISO8859_6 is not set -# CONFIG_NLS_ISO8859_7 is not set -# CONFIG_NLS_ISO8859_9 is not set -# CONFIG_NLS_ISO8859_13 is not set -# CONFIG_NLS_ISO8859_14 is not set -# CONFIG_NLS_ISO8859_15 is not set -# CONFIG_NLS_KOI8_R is not set -# CONFIG_NLS_KOI8_U is not set -# CONFIG_NLS_MAC_ROMAN is not set -# CONFIG_NLS_MAC_CELTIC is not set -# CONFIG_NLS_MAC_CENTEURO is not set -# CONFIG_NLS_MAC_CROATIAN is not set -# CONFIG_NLS_MAC_CYRILLIC is not set -# CONFIG_NLS_MAC_GAELIC is not set -# CONFIG_NLS_MAC_GREEK is not set -# CONFIG_NLS_MAC_ICELAND is not set -# CONFIG_NLS_MAC_INUIT is not set -# CONFIG_NLS_MAC_ROMANIAN is not set -# CONFIG_NLS_MAC_TURKISH is not set -CONFIG_NLS_UTF8=y -CONFIG_NLS_UCS2_UTILS=m -# CONFIG_DLM is not set -CONFIG_UNICODE=y -# CONFIG_UNICODE_NORMALIZATION_SELFTEST is not set -CONFIG_IO_WQ=y -# end of File systems - -# -# Security options -# -CONFIG_KEYS=y -# CONFIG_KEYS_REQUEST_CACHE is not set -# CONFIG_PERSISTENT_KEYRINGS is not set -# CONFIG_TRUSTED_KEYS is not set -# CONFIG_ENCRYPTED_KEYS is not set -# CONFIG_KEY_DH_OPERATIONS is not set -# CONFIG_SECURITY_DMESG_RESTRICT is not set -CONFIG_PROC_MEM_ALWAYS_FORCE=y -# CONFIG_PROC_MEM_FORCE_PTRACE is not set -# CONFIG_PROC_MEM_NO_FORCE is not set -# CONFIG_SECURITY is not set -# CONFIG_SECURITYFS is not set -# CONFIG_HARDENED_USERCOPY is not set -# CONFIG_FORTIFY_SOURCE is not set -# CONFIG_STATIC_USERMODEHELPER is not set -# CONFIG_IMA_SECURE_AND_OR_TRUSTED_BOOT is not set -CONFIG_DEFAULT_SECURITY_DAC=y -CONFIG_LSM="" - -# -# Kernel hardening options -# - -# -# Memory initialization -# -CONFIG_CC_HAS_AUTO_VAR_INIT_PATTERN=y -CONFIG_CC_HAS_AUTO_VAR_INIT_ZERO_BARE=y -CONFIG_CC_HAS_AUTO_VAR_INIT_ZERO=y -# CONFIG_INIT_STACK_NONE is not set -# CONFIG_INIT_STACK_ALL_PATTERN is not set -CONFIG_INIT_STACK_ALL_ZERO=y -# CONFIG_GCC_PLUGIN_STACKLEAK is not set -# CONFIG_INIT_ON_ALLOC_DEFAULT_ON is not set -# CONFIG_INIT_ON_FREE_DEFAULT_ON is not set -CONFIG_CC_HAS_ZERO_CALL_USED_REGS=y -# CONFIG_ZERO_CALL_USED_REGS is not set -# end of Memory initialization - -# -# Hardening of kernel data structures -# -# CONFIG_LIST_HARDENED is not set -# CONFIG_BUG_ON_DATA_CORRUPTION is not set -# end of Hardening of kernel data structures - -CONFIG_RANDSTRUCT_NONE=y -# CONFIG_RANDSTRUCT_FULL is not set -# CONFIG_RANDSTRUCT_PERFORMANCE is not set -# end of Kernel hardening options -# end of Security options - -CONFIG_XOR_BLOCKS=m -CONFIG_CRYPTO=y - -# -# Crypto core or helper -# -CONFIG_CRYPTO_ALGAPI=y -CONFIG_CRYPTO_ALGAPI2=y -CONFIG_CRYPTO_AEAD=y -CONFIG_CRYPTO_AEAD2=y -CONFIG_CRYPTO_SIG2=y -CONFIG_CRYPTO_SKCIPHER=y -CONFIG_CRYPTO_SKCIPHER2=y -CONFIG_CRYPTO_HASH=y -CONFIG_CRYPTO_HASH2=y -CONFIG_CRYPTO_RNG=y -CONFIG_CRYPTO_RNG2=y -CONFIG_CRYPTO_RNG_DEFAULT=y -CONFIG_CRYPTO_AKCIPHER2=y -CONFIG_CRYPTO_KPP2=y -CONFIG_CRYPTO_KPP=y -CONFIG_CRYPTO_ACOMP2=y -CONFIG_CRYPTO_MANAGER=y -CONFIG_CRYPTO_MANAGER2=y -# CONFIG_CRYPTO_USER is not set -CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y -CONFIG_CRYPTO_NULL=y -CONFIG_CRYPTO_NULL2=y -# CONFIG_CRYPTO_PCRYPT is not set -# CONFIG_CRYPTO_CRYPTD is not set -CONFIG_CRYPTO_AUTHENC=m -# CONFIG_CRYPTO_TEST is not set -# end of Crypto core or helper - -# -# Public-key cryptography -# -# CONFIG_CRYPTO_RSA is not set -# CONFIG_CRYPTO_DH is not set -CONFIG_CRYPTO_ECC=y -CONFIG_CRYPTO_ECDH=y -# CONFIG_CRYPTO_ECDSA is not set -# CONFIG_CRYPTO_ECRDSA is not set -# CONFIG_CRYPTO_CURVE25519 is not set -# end of Public-key cryptography - -# -# Block ciphers -# -CONFIG_CRYPTO_AES=y -# CONFIG_CRYPTO_AES_TI is not set -# CONFIG_CRYPTO_ARIA is not set -# CONFIG_CRYPTO_BLOWFISH is not set -# CONFIG_CRYPTO_CAMELLIA is not set -# CONFIG_CRYPTO_CAST5 is not set -# CONFIG_CRYPTO_CAST6 is not set -CONFIG_CRYPTO_DES=y -# CONFIG_CRYPTO_FCRYPT is not set -# CONFIG_CRYPTO_SERPENT is not set -# CONFIG_CRYPTO_SM4_GENERIC is not set -# CONFIG_CRYPTO_TWOFISH is not set -# end of Block ciphers - -# -# Length-preserving ciphers and modes -# -# CONFIG_CRYPTO_ADIANTUM is not set -# CONFIG_CRYPTO_CHACHA20 is not set -CONFIG_CRYPTO_CBC=y -CONFIG_CRYPTO_CTR=y -# CONFIG_CRYPTO_CTS is not set -CONFIG_CRYPTO_ECB=y -# CONFIG_CRYPTO_HCTR2 is not set -# CONFIG_CRYPTO_KEYWRAP is not set -# CONFIG_CRYPTO_LRW is not set -# CONFIG_CRYPTO_PCBC is not set -CONFIG_CRYPTO_XTS=y -# end of Length-preserving ciphers and modes - -# -# AEAD (authenticated encryption with associated data) ciphers -# -# CONFIG_CRYPTO_AEGIS128 is not set -# CONFIG_CRYPTO_CHACHA20POLY1305 is not set -CONFIG_CRYPTO_CCM=y -CONFIG_CRYPTO_GCM=y -CONFIG_CRYPTO_GENIV=y -CONFIG_CRYPTO_SEQIV=y -CONFIG_CRYPTO_ECHAINIV=m -CONFIG_CRYPTO_ESSIV=m -# end of AEAD (authenticated encryption with associated data) ciphers - -# -# Hashes, digests, and MACs -# -CONFIG_CRYPTO_BLAKE2B=m -CONFIG_CRYPTO_CMAC=y -CONFIG_CRYPTO_GHASH=y -CONFIG_CRYPTO_HMAC=y -# CONFIG_CRYPTO_MD4 is not set -CONFIG_CRYPTO_MD5=y -# CONFIG_CRYPTO_MICHAEL_MIC is not set -# CONFIG_CRYPTO_POLY1305 is not set -# CONFIG_CRYPTO_RMD160 is not set -CONFIG_CRYPTO_SHA1=y -CONFIG_CRYPTO_SHA256=y -CONFIG_CRYPTO_SHA512=y -CONFIG_CRYPTO_SHA3=y -# CONFIG_CRYPTO_SM3_GENERIC is not set -# CONFIG_CRYPTO_STREEBOG is not set -# CONFIG_CRYPTO_VMAC is not set -# CONFIG_CRYPTO_WP512 is not set -# CONFIG_CRYPTO_XCBC is not set -CONFIG_CRYPTO_XXHASH=m -# end of Hashes, digests, and MACs - -# -# CRCs (cyclic redundancy checks) -# -CONFIG_CRYPTO_CRC32C=y -CONFIG_CRYPTO_CRC32=y -# CONFIG_CRYPTO_CRCT10DIF is not set -# end of CRCs (cyclic redundancy checks) - -# -# Compression -# -# CONFIG_CRYPTO_DEFLATE is not set -# CONFIG_CRYPTO_LZO is not set -# CONFIG_CRYPTO_842 is not set -# CONFIG_CRYPTO_LZ4 is not set -# CONFIG_CRYPTO_LZ4HC is not set -# CONFIG_CRYPTO_ZSTD is not set -# end of Compression - -# -# Random number generation -# -# CONFIG_CRYPTO_ANSI_CPRNG is not set -CONFIG_CRYPTO_DRBG_MENU=y -CONFIG_CRYPTO_DRBG_HMAC=y -CONFIG_CRYPTO_DRBG_HASH=y -CONFIG_CRYPTO_DRBG_CTR=y -CONFIG_CRYPTO_DRBG=y -CONFIG_CRYPTO_JITTERENTROPY=y -CONFIG_CRYPTO_JITTERENTROPY_MEMORY_BLOCKS=64 -CONFIG_CRYPTO_JITTERENTROPY_MEMORY_BLOCKSIZE=32 -CONFIG_CRYPTO_JITTERENTROPY_OSR=1 -# end of Random number generation - -# -# Userspace interface -# -CONFIG_CRYPTO_USER_API=y -CONFIG_CRYPTO_USER_API_HASH=y -CONFIG_CRYPTO_USER_API_SKCIPHER=y -# CONFIG_CRYPTO_USER_API_RNG is not set -# CONFIG_CRYPTO_USER_API_AEAD is not set -# CONFIG_CRYPTO_USER_API_ENABLE_OBSOLETE is not set -# end of Userspace interface - -# CONFIG_CRYPTO_NHPOLY1305_NEON is not set -CONFIG_CRYPTO_CHACHA20_NEON=m - -# -# Accelerated Cryptographic Algorithms for CPU (arm64) -# -# CONFIG_CRYPTO_GHASH_ARM64_CE is not set -CONFIG_CRYPTO_POLY1305_NEON=m -CONFIG_CRYPTO_SHA1_ARM64_CE=y -CONFIG_CRYPTO_SHA256_ARM64=y -CONFIG_CRYPTO_SHA2_ARM64_CE=y -CONFIG_CRYPTO_SHA512_ARM64=y -CONFIG_CRYPTO_SHA512_ARM64_CE=y -# CONFIG_CRYPTO_SHA3_ARM64 is not set -# CONFIG_CRYPTO_SM3_NEON is not set -# CONFIG_CRYPTO_SM3_ARM64_CE is not set -# CONFIG_CRYPTO_POLYVAL_ARM64_CE is not set -# CONFIG_CRYPTO_AES_ARM64 is not set -CONFIG_CRYPTO_AES_ARM64_CE=y -CONFIG_CRYPTO_AES_ARM64_CE_BLK=y -# CONFIG_CRYPTO_AES_ARM64_NEON_BLK is not set -# CONFIG_CRYPTO_AES_ARM64_BS is not set -# CONFIG_CRYPTO_SM4_ARM64_CE is not set -# CONFIG_CRYPTO_SM4_ARM64_CE_BLK is not set -# CONFIG_CRYPTO_SM4_ARM64_NEON_BLK is not set -# CONFIG_CRYPTO_AES_ARM64_CE_CCM is not set -# CONFIG_CRYPTO_SM4_ARM64_CE_CCM is not set -# CONFIG_CRYPTO_SM4_ARM64_CE_GCM is not set -# end of Accelerated Cryptographic Algorithms for CPU (arm64) - -# CONFIG_CRYPTO_HW is not set -# CONFIG_ASYMMETRIC_KEY_TYPE is not set - -# -# Certificates for signature checking -# -# CONFIG_SYSTEM_BLACKLIST_KEYRING is not set -# end of Certificates for signature checking - -CONFIG_BINARY_PRINTF=y - -# -# Library routines -# -CONFIG_RAID6_PQ=m -CONFIG_RAID6_PQ_BENCHMARK=y -CONFIG_LINEAR_RANGES=y -# CONFIG_PACKING is not set -CONFIG_BITREVERSE=y -CONFIG_HAVE_ARCH_BITREVERSE=y -CONFIG_GENERIC_STRNCPY_FROM_USER=y -CONFIG_GENERIC_STRNLEN_USER=y -CONFIG_GENERIC_NET_UTILS=y -# CONFIG_CORDIC is not set -# CONFIG_PRIME_NUMBERS is not set -CONFIG_RATIONAL=y -CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y -CONFIG_ARCH_HAS_FAST_MULTIPLIER=y -CONFIG_ARCH_USE_SYM_ANNOTATIONS=y -# CONFIG_INDIRECT_PIO is not set -# CONFIG_TRACE_MMIO_ACCESS is not set - -# -# Crypto library routines -# -CONFIG_CRYPTO_LIB_UTILS=y -CONFIG_CRYPTO_LIB_AES=y -CONFIG_CRYPTO_LIB_ARC4=m -CONFIG_CRYPTO_LIB_GF128MUL=y -CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=y -CONFIG_CRYPTO_ARCH_HAVE_LIB_CHACHA=m -CONFIG_CRYPTO_LIB_CHACHA_GENERIC=m -CONFIG_CRYPTO_LIB_CHACHA=m -CONFIG_CRYPTO_LIB_CURVE25519_GENERIC=m -CONFIG_CRYPTO_LIB_CURVE25519=m -CONFIG_CRYPTO_LIB_DES=y -CONFIG_CRYPTO_LIB_POLY1305_RSIZE=9 -CONFIG_CRYPTO_ARCH_HAVE_LIB_POLY1305=m -CONFIG_CRYPTO_LIB_POLY1305=m -CONFIG_CRYPTO_LIB_CHACHA20POLY1305=m -CONFIG_CRYPTO_LIB_SHA1=y -CONFIG_CRYPTO_LIB_SHA256=y -# end of Crypto library routines - -# CONFIG_CRC_CCITT is not set -CONFIG_CRC16=y -# CONFIG_CRC_T10DIF is not set -# CONFIG_CRC64_ROCKSOFT is not set -CONFIG_CRC_ITU_T=m -CONFIG_CRC32=y -# CONFIG_CRC32_SELFTEST is not set -CONFIG_CRC32_SLICEBY8=y -# CONFIG_CRC32_SLICEBY4 is not set -# CONFIG_CRC32_SARWATE is not set -# CONFIG_CRC32_BIT is not set -# CONFIG_CRC64 is not set -# CONFIG_CRC4 is not set -# CONFIG_CRC7 is not set -CONFIG_LIBCRC32C=y -# CONFIG_CRC8 is not set -CONFIG_XXHASH=y -CONFIG_AUDIT_ARCH_COMPAT_GENERIC=y -# CONFIG_RANDOM32_SELFTEST is not set -CONFIG_ZLIB_INFLATE=y -CONFIG_ZLIB_DEFLATE=m -CONFIG_LZO_COMPRESS=m -CONFIG_LZO_DECOMPRESS=m -CONFIG_ZSTD_COMMON=y -CONFIG_ZSTD_COMPRESS=m -CONFIG_ZSTD_DECOMPRESS=y -CONFIG_XZ_DEC=y -CONFIG_XZ_DEC_X86=y -CONFIG_XZ_DEC_POWERPC=y -CONFIG_XZ_DEC_ARM=y -CONFIG_XZ_DEC_ARMTHUMB=y -CONFIG_XZ_DEC_ARM64=y -CONFIG_XZ_DEC_SPARC=y -CONFIG_XZ_DEC_RISCV=y -# CONFIG_XZ_DEC_MICROLZMA is not set -CONFIG_XZ_DEC_BCJ=y -# CONFIG_XZ_DEC_TEST is not set -CONFIG_DECOMPRESS_GZIP=y -CONFIG_DECOMPRESS_ZSTD=y -CONFIG_GENERIC_ALLOCATOR=y -CONFIG_XARRAY_MULTI=y -CONFIG_ASSOCIATIVE_ARRAY=y -CONFIG_HAS_IOMEM=y -CONFIG_HAS_IOPORT=y -CONFIG_HAS_IOPORT_MAP=y -CONFIG_HAS_DMA=y -CONFIG_DMA_OPS_HELPERS=y -CONFIG_NEED_SG_DMA_FLAGS=y -CONFIG_NEED_SG_DMA_LENGTH=y -CONFIG_NEED_DMA_MAP_STATE=y -CONFIG_ARCH_DMA_ADDR_T_64BIT=y -CONFIG_DMA_DECLARE_COHERENT=y -CONFIG_ARCH_HAS_SETUP_DMA_OPS=y -CONFIG_ARCH_HAS_SYNC_DMA_FOR_DEVICE=y -CONFIG_ARCH_HAS_SYNC_DMA_FOR_CPU=y -CONFIG_ARCH_HAS_DMA_PREP_COHERENT=y -CONFIG_SWIOTLB=y -# CONFIG_SWIOTLB_DYNAMIC is not set -CONFIG_DMA_BOUNCE_UNALIGNED_KMALLOC=y -CONFIG_DMA_NEED_SYNC=y -# CONFIG_DMA_RESTRICTED_POOL is not set -CONFIG_DMA_NONCOHERENT_MMAP=y -CONFIG_DMA_COHERENT_POOL=y -CONFIG_DMA_DIRECT_REMAP=y -CONFIG_DMA_CMA=y - -# -# Default contiguous memory area size: -# -CONFIG_CMA_SIZE_MBYTES=16 -CONFIG_CMA_SIZE_SEL_MBYTES=y -# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set -# CONFIG_CMA_SIZE_SEL_MIN is not set -# CONFIG_CMA_SIZE_SEL_MAX is not set -CONFIG_CMA_ALIGNMENT=8 -# CONFIG_DMA_API_DEBUG is not set -# CONFIG_DMA_MAP_BENCHMARK is not set -CONFIG_SGL_ALLOC=y -CONFIG_CPU_RMAP=y -CONFIG_DQL=y -CONFIG_GLOB=y -# CONFIG_GLOB_SELFTEST is not set -CONFIG_NLATTR=y -# CONFIG_IRQ_POLL is not set -CONFIG_LIBFDT=y -CONFIG_OID_REGISTRY=m -CONFIG_UCS2_STRING=y -CONFIG_HAVE_GENERIC_VDSO=y -CONFIG_GENERIC_GETTIMEOFDAY=y -CONFIG_GENERIC_VDSO_TIME_NS=y -CONFIG_VDSO_GETRANDOM=y -CONFIG_FONT_SUPPORT=y -# CONFIG_FONTS is not set -CONFIG_FONT_8x8=y -CONFIG_FONT_8x16=y -CONFIG_SG_POOL=y -CONFIG_ARCH_STACKWALK=y -CONFIG_SBITMAP=y -# CONFIG_LWQ_TEST is not set -# end of Library routines - -CONFIG_GENERIC_IOREMAP=y -CONFIG_GENERIC_LIB_DEVMEM_IS_ALLOWED=y - -# -# Kernel hacking -# - -# -# printk and dmesg options -# -CONFIG_PRINTK_TIME=y -# CONFIG_PRINTK_CALLER is not set -# CONFIG_STACKTRACE_BUILD_ID is not set -CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7 -CONFIG_CONSOLE_LOGLEVEL_QUIET=4 -CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 -# CONFIG_BOOT_PRINTK_DELAY is not set -CONFIG_DYNAMIC_DEBUG=y -CONFIG_DYNAMIC_DEBUG_CORE=y -CONFIG_SYMBOLIC_ERRNAME=y -CONFIG_DEBUG_BUGVERBOSE=y -# end of printk and dmesg options - -CONFIG_DEBUG_KERNEL=y -# CONFIG_DEBUG_MISC is not set - -# -# Compile-time checks and compiler options -# -CONFIG_DEBUG_INFO=y -CONFIG_AS_HAS_NON_CONST_ULEB128=y -# CONFIG_DEBUG_INFO_NONE is not set -# CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT is not set -# CONFIG_DEBUG_INFO_DWARF4 is not set -CONFIG_DEBUG_INFO_DWARF5=y -CONFIG_DEBUG_INFO_REDUCED=y -CONFIG_DEBUG_INFO_COMPRESSED_NONE=y -# CONFIG_DEBUG_INFO_COMPRESSED_ZLIB is not set -# CONFIG_DEBUG_INFO_COMPRESSED_ZSTD is not set -CONFIG_DEBUG_INFO_SPLIT=y -# CONFIG_GDB_SCRIPTS is not set -CONFIG_FRAME_WARN=2048 -# CONFIG_STRIP_ASM_SYMS is not set -# CONFIG_READABLE_ASM is not set -# CONFIG_HEADERS_INSTALL is not set -# CONFIG_DEBUG_SECTION_MISMATCH is not set -CONFIG_SECTION_MISMATCH_WARN_ONLY=y -# CONFIG_DEBUG_FORCE_FUNCTION_ALIGN_64B is not set -CONFIG_ARCH_WANT_FRAME_POINTERS=y -CONFIG_FRAME_POINTER=y -# CONFIG_VMLINUX_MAP is not set -# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set -# end of Compile-time checks and compiler options - -# -# Generic Kernel Debugging Instruments -# -CONFIG_MAGIC_SYSRQ=y -CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1 -# CONFIG_MAGIC_SYSRQ_SERIAL is not set -CONFIG_DEBUG_FS=y -CONFIG_DEBUG_FS_ALLOW_ALL=y -# CONFIG_DEBUG_FS_DISALLOW_MOUNT is not set -# CONFIG_DEBUG_FS_ALLOW_NONE is not set -CONFIG_HAVE_ARCH_KGDB=y -# CONFIG_KGDB is not set -CONFIG_ARCH_HAS_UBSAN=y -# CONFIG_UBSAN is not set -CONFIG_HAVE_ARCH_KCSAN=y -CONFIG_HAVE_KCSAN_COMPILER=y -# CONFIG_KCSAN is not set -# end of Generic Kernel Debugging Instruments - -# -# Networking Debugging -# -# CONFIG_NET_DEV_REFCNT_TRACKER is not set -# CONFIG_NET_NS_REFCNT_TRACKER is not set -# CONFIG_DEBUG_NET is not set -# end of Networking Debugging - -# -# Memory Debugging -# -# CONFIG_PAGE_EXTENSION is not set -# CONFIG_DEBUG_PAGEALLOC is not set -# CONFIG_SLUB_DEBUG is not set -# CONFIG_PAGE_OWNER is not set -# CONFIG_PAGE_POISONING is not set -# CONFIG_DEBUG_PAGE_REF is not set -# CONFIG_DEBUG_RODATA_TEST is not set -CONFIG_ARCH_HAS_DEBUG_WX=y -# CONFIG_DEBUG_WX is not set -CONFIG_GENERIC_PTDUMP=y -# CONFIG_PTDUMP_DEBUGFS is not set -CONFIG_HAVE_DEBUG_KMEMLEAK=y -# CONFIG_DEBUG_KMEMLEAK is not set -# CONFIG_PER_VMA_LOCK_STATS is not set -# CONFIG_DEBUG_OBJECTS is not set -# CONFIG_SHRINKER_DEBUG is not set -# CONFIG_DEBUG_STACK_USAGE is not set -# CONFIG_SCHED_STACK_END_CHECK is not set -CONFIG_ARCH_HAS_DEBUG_VM_PGTABLE=y -# CONFIG_DEBUG_VM is not set -# CONFIG_DEBUG_VM_PGTABLE is not set -CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y -# CONFIG_DEBUG_VIRTUAL is not set -# CONFIG_DEBUG_MEMORY_INIT is not set -# CONFIG_DEBUG_PER_CPU_MAPS is not set -# CONFIG_MEM_ALLOC_PROFILING is not set -CONFIG_HAVE_ARCH_KASAN=y -CONFIG_HAVE_ARCH_KASAN_SW_TAGS=y -CONFIG_HAVE_ARCH_KASAN_VMALLOC=y -CONFIG_CC_HAS_KASAN_GENERIC=y -CONFIG_CC_HAS_KASAN_SW_TAGS=y -CONFIG_CC_HAS_WORKING_NOSANITIZE_ADDRESS=y -# CONFIG_KASAN is not set -CONFIG_HAVE_ARCH_KFENCE=y -# CONFIG_KFENCE is not set -# end of Memory Debugging - -# CONFIG_DEBUG_SHIRQ is not set - -# -# Debug Oops, Lockups and Hangs -# -CONFIG_PANIC_ON_OOPS=y -CONFIG_PANIC_ON_OOPS_VALUE=1 -CONFIG_PANIC_TIMEOUT=1 -CONFIG_LOCKUP_DETECTOR=y -CONFIG_SOFTLOCKUP_DETECTOR=y -CONFIG_SOFTLOCKUP_DETECTOR_INTR_STORM=y -# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set -CONFIG_HAVE_HARDLOCKUP_DETECTOR_BUDDY=y -# CONFIG_HARDLOCKUP_DETECTOR is not set -# CONFIG_DETECT_HUNG_TASK is not set -CONFIG_WQ_WATCHDOG=y -# CONFIG_WQ_CPU_INTENSIVE_REPORT is not set -# CONFIG_TEST_LOCKUP is not set -# end of Debug Oops, Lockups and Hangs - -# -# Scheduler Debugging -# -CONFIG_SCHED_DEBUG=y -CONFIG_SCHED_INFO=y -CONFIG_SCHEDSTATS=y -# end of Scheduler Debugging - -# CONFIG_DEBUG_TIMEKEEPING is not set - -# -# Lock Debugging (spinlocks, mutexes, etc...) -# -CONFIG_LOCK_DEBUGGING_SUPPORT=y -# CONFIG_PROVE_LOCKING is not set -# CONFIG_LOCK_STAT is not set -# CONFIG_DEBUG_RT_MUTEXES is not set -# CONFIG_DEBUG_SPINLOCK is not set -# CONFIG_DEBUG_MUTEXES is not set -# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set -# CONFIG_DEBUG_RWSEMS is not set -# CONFIG_DEBUG_LOCK_ALLOC is not set -# CONFIG_DEBUG_ATOMIC_SLEEP is not set -# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set -# CONFIG_LOCK_TORTURE_TEST is not set -# CONFIG_WW_MUTEX_SELFTEST is not set -# CONFIG_SCF_TORTURE_TEST is not set -# CONFIG_CSD_LOCK_WAIT_DEBUG is not set -# end of Lock Debugging (spinlocks, mutexes, etc...) - -# CONFIG_DEBUG_IRQFLAGS is not set -CONFIG_STACKTRACE=y -# CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set -# CONFIG_DEBUG_KOBJECT is not set - -# -# Debug kernel data structures -# -# CONFIG_DEBUG_LIST is not set -# CONFIG_DEBUG_PLIST is not set -# CONFIG_DEBUG_SG is not set -# CONFIG_DEBUG_NOTIFIERS is not set -# CONFIG_DEBUG_MAPLE_TREE is not set -# end of Debug kernel data structures - -# -# RCU Debugging -# -# CONFIG_RCU_SCALE_TEST is not set -# CONFIG_RCU_TORTURE_TEST is not set -# CONFIG_RCU_REF_SCALE_TEST is not set -CONFIG_RCU_CPU_STALL_TIMEOUT=21 -CONFIG_RCU_EXP_CPU_STALL_TIMEOUT=0 -# CONFIG_RCU_CPU_STALL_CPUTIME is not set -CONFIG_RCU_TRACE=y -# CONFIG_RCU_EQS_DEBUG is not set -# end of RCU Debugging - -# CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set -CONFIG_CPU_HOTPLUG_STATE_CONTROL=y -# CONFIG_LATENCYTOP is not set -CONFIG_USER_STACKTRACE_SUPPORT=y -CONFIG_NOP_TRACER=y -CONFIG_HAVE_FUNCTION_TRACER=y -CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y -CONFIG_HAVE_FUNCTION_GRAPH_RETVAL=y -CONFIG_HAVE_DYNAMIC_FTRACE=y -CONFIG_HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS=y -CONFIG_HAVE_DYNAMIC_FTRACE_WITH_CALL_OPS=y -CONFIG_HAVE_DYNAMIC_FTRACE_WITH_ARGS=y -CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y -CONFIG_HAVE_SYSCALL_TRACEPOINTS=y -CONFIG_HAVE_C_RECORDMCOUNT=y -CONFIG_TRACE_CLOCK=y -CONFIG_RING_BUFFER=y -CONFIG_EVENT_TRACING=y -CONFIG_CONTEXT_SWITCH_TRACER=y -CONFIG_TRACING=y -CONFIG_GENERIC_TRACER=y -CONFIG_TRACING_SUPPORT=y -CONFIG_FTRACE=y -# CONFIG_BOOTTIME_TRACING is not set -CONFIG_FUNCTION_TRACER=y -CONFIG_FUNCTION_GRAPH_TRACER=y -CONFIG_FUNCTION_GRAPH_RETVAL=y -CONFIG_DYNAMIC_FTRACE=y -CONFIG_DYNAMIC_FTRACE_WITH_DIRECT_CALLS=y -CONFIG_DYNAMIC_FTRACE_WITH_CALL_OPS=y -CONFIG_DYNAMIC_FTRACE_WITH_ARGS=y -# CONFIG_FUNCTION_PROFILER is not set -# CONFIG_STACK_TRACER is not set -# CONFIG_IRQSOFF_TRACER is not set -# CONFIG_SCHED_TRACER is not set -# CONFIG_HWLAT_TRACER is not set -# CONFIG_OSNOISE_TRACER is not set -# CONFIG_TIMERLAT_TRACER is not set -# CONFIG_FTRACE_SYSCALLS is not set -# CONFIG_TRACER_SNAPSHOT is not set -CONFIG_BRANCH_PROFILE_NONE=y -# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set -# CONFIG_PROFILE_ALL_BRANCHES is not set -# CONFIG_BLK_DEV_IO_TRACE is not set -# CONFIG_UPROBE_EVENTS is not set -CONFIG_FTRACE_MCOUNT_RECORD=y -CONFIG_FTRACE_MCOUNT_USE_PATCHABLE_FUNCTION_ENTRY=y -# CONFIG_SYNTH_EVENTS is not set -# CONFIG_USER_EVENTS is not set -# CONFIG_HIST_TRIGGERS is not set -# CONFIG_TRACE_EVENT_INJECT is not set -# CONFIG_TRACEPOINT_BENCHMARK is not set -# CONFIG_RING_BUFFER_BENCHMARK is not set -# CONFIG_TRACE_EVAL_MAP_FILE is not set -# CONFIG_FTRACE_RECORD_RECURSION is not set -# CONFIG_FTRACE_VALIDATE_RCU_IS_WATCHING is not set -# CONFIG_FTRACE_STARTUP_TEST is not set -# CONFIG_RING_BUFFER_STARTUP_TEST is not set -# CONFIG_RING_BUFFER_VALIDATE_TIME_DELTAS is not set -# CONFIG_PREEMPTIRQ_DELAY_TEST is not set -# CONFIG_RV is not set -# CONFIG_SAMPLES is not set -CONFIG_HAVE_SAMPLE_FTRACE_DIRECT=y -CONFIG_HAVE_SAMPLE_FTRACE_DIRECT_MULTI=y -# CONFIG_STRICT_DEVMEM is not set - -# -# arm64 Debugging -# -# CONFIG_PID_IN_CONTEXTIDR is not set -# CONFIG_DEBUG_EFI is not set -# CONFIG_ARM64_RELOC_TEST is not set -# CONFIG_CORESIGHT is not set -# end of arm64 Debugging - -# -# Kernel Testing and Coverage -# -# CONFIG_KUNIT is not set -# CONFIG_NOTIFIER_ERROR_INJECTION is not set -# CONFIG_FAULT_INJECTION is not set -CONFIG_ARCH_HAS_KCOV=y -CONFIG_CC_HAS_SANCOV_TRACE_PC=y -# CONFIG_KCOV is not set -# CONFIG_RUNTIME_TESTING_MENU is not set -CONFIG_ARCH_USE_MEMTEST=y -# CONFIG_MEMTEST is not set -# end of Kernel Testing and Coverage - -# -# Rust hacking -# -# end of Rust hacking -# end of Kernel hacking diff --git a/pmos/pinenote-dbus-service/APKBUILD b/pmos/pinenote-dbus-service/APKBUILD deleted file mode 100644 index 0136557..0000000 --- a/pmos/pinenote-dbus-service/APKBUILD +++ /dev/null @@ -1,34 +0,0 @@ -# Maintainer: Petr Hodina -pkgname=pinenote-dbus-service -pkgver=0.2.2_pre5 -_gittag=0.2.2-dev5 -pkgrel=1 -pkgdesc="Dbus daemon for controlling driver aspects on Pine64 Pinenote" -url="https://github.com/m-weigand/pinenote_dbus_service" -arch="aarch64" -license="MIT" -makedepends="cargo" -depends="dbus-dev" -source=" - pinenote-dbus-service-$_gittag.tar.gz::https://github.com/m-weigand/pinenote_dbus_service/archive/refs/tags/v$_gittag.tar.gz - pinenote.initd -" - -builddir="$srcdir/pinenote_dbus_service-$_gittag" - -build() { - cargo build --release --locked -} - -package() { - cargo install --path . --root="$pkgdir/usr" - install -Dm644 dbus_security_configuration/pinenote.conf -t "$pkgdir"/usr/share/dbus-1/system.d/ - install -Dm755 "$srcdir"/pinenote.initd $pkgdir/etc/init.d/pinenote - rm "$pkgdir"/usr/.crates.toml - rm "$pkgdir"/usr/.crates2.json -} - -sha512sums=" -10cf05f9e1e8affec97b532611a9bffb86928cabe4eb9bd321b66e8dba340e6a7916fa0c8286f81300bfa655d5596bba09f0316abcafa6c55128823c78acb807 pinenote-dbus-service-0.2.2-dev5.tar.gz -362c20218610e7a5349eef40d54463a05906e258157e590ad1635591a548ddc60050142cfab41a0423797182e5ae392a7fe6476fc71b9c01cece384351e6f148 pinenote.initd -" diff --git a/pmos/pinenote-dbus-service/pinenote.initd b/pmos/pinenote-dbus-service/pinenote.initd deleted file mode 100644 index 0301c53..0000000 --- a/pmos/pinenote-dbus-service/pinenote.initd +++ /dev/null @@ -1,10 +0,0 @@ -#!/sbin/openrc-run - -description="Launch DBus service for driver aspects" -command="/usr/bin/pinenote_dbus_service" -command_background=yes -pidfile="/run/${RC_SVCNAME}.pid" - -depend() { - need dbus -}