From 5f1eb40b78da9f7ccf261b51e0e1f6d6fdbe8044 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Sun, 5 Jan 2025 23:07:19 -0500 Subject: [PATCH 001/210] user/velocity: new aport --- user/velocity/APKBUILD | 51 +++ user/velocity/velocity.conf | 28 ++ user/velocity/velocity.initd | 32 ++ user/velocity/velocity.post-install | 9 + user/velocity/velocity.sh | 495 ++++++++++++++++++++++++++++ 5 files changed, 615 insertions(+) create mode 100644 user/velocity/APKBUILD create mode 100644 user/velocity/velocity.conf create mode 100644 user/velocity/velocity.initd create mode 100755 user/velocity/velocity.post-install create mode 100755 user/velocity/velocity.sh diff --git a/user/velocity/APKBUILD b/user/velocity/APKBUILD new file mode 100644 index 0000000..5a920d5 --- /dev/null +++ b/user/velocity/APKBUILD @@ -0,0 +1,51 @@ +# Maintainer: Antoine Martin (ayakael) +# Contributor: Antoine Martin (ayakael) +pkgname=velocity +pkgver=3.4.0_pre459 +_gittag=00b68859fffa31bc5bd66338e339131ddbb50ff5 +pkgrel=0 +pkgdesc="The modern, next-generation Minecraft server proxy." +arch='noarch' +url="https://papermc.io/software/velocity" +license='GPL-3.0-only' +depends='openjdk21-jdk screen sudo bash gawk sed netcat-openbsd' +makedepends="gradle" +options="!check" +subpackages="$pkgname-openrc" +builddir="$srcdir"/Velocity-$_gittag +source=" + $pkgname-$_gittag.tar.gz::https://github.com/PaperMC/Velocity/archive/$_gittag.tar.gz + velocity.initd + velocity.conf + velocity.sh +" + +build() { + ./gradlew --parallel build +} + +check() { + ./gradlew --parallel check +} + +package() { + install -Dm644 "$srcdir"/$pkgname.conf "$pkgdir"/etc/conf.d/$pkgname + install -Dm755 "$srcdir"/$pkgname.sh "$pkgdir"/usr/bin/$pkgname + install -Dm755 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname + install -Dm644 "$builddir"/build/libs/velocity*.jar "$pkgdir"/var/lib/$pkgname/$pkgver.jar + ln -s $pkgver.jar "$pkgdir"/var/lib/$pkgname/server.jar + + # Link the log files + mkdir -p "$pkgdir"/var/log/ + install -dm2755 "$pkgdir"/var/lib/$pkgname/logs + ln -s "/var/lib/$pkgname"/logs "$pkgdir"/var/log/$pkgname + + # Give the group write permissions and set user or group ID on execution + chmod g+ws "$pkgdir"/var/lib/$pkgname +} +sha512sums=" +856d3b0efdc7199b922aae07cf33259af74823dd95fce8deb0fd54db0d416b935330487568989ec576616fac562c3e9bb8626c79c84ce2e4060225c50ec161ae velocity-00b68859fffa31bc5bd66338e339131ddbb50ff5.tar.gz +c5d1bf85ceb74162aaaf2bcd2d06dc2e3dd2e37c39f0cee2be7c8dbff9970a6aff1e48a43e6d1e83e6a0ac610bd89f62b1279bf27b64afa88d9831a36aebbd3e velocity.initd +9b8e267428731ee9255f82a93f1e8674d7e917a0f154bd395cd2280a49aa248a4b8427520b08dbb4b3a74a5471dac0e439eedc8ab94bf2e53bb8d411d2d8a789 velocity.conf +943ba0d4c10173246bdc6497dcedd54da0788f966841c8d3381398711d79f8d5eb07a24ce28f519b6f24f59d99fa9e74bc6bb882059f343df4eeda5de3660ac7 velocity.sh +" diff --git a/user/velocity/velocity.conf b/user/velocity/velocity.conf new file mode 100644 index 0000000..3b840eb --- /dev/null +++ b/user/velocity/velocity.conf @@ -0,0 +1,28 @@ +# THIS IS THE CONFIGURATION FILE FOR THE MANAGING SCRIPT NOT FOR THE ACTUAL SERVER +# Variables are interpreted in bash. Simply using bash-syntax is sufficient. + +# General parameters +SERVER_ROOT="/var/lib/papermc" +BACKUP_DEST="/var/lib/papermc/backup" +BACKUP_PATHS="world" # World paths separated by spaces relative to SERVER_ROOT +KEEP_BACKUPS="10" +GAME_USER="craftbukkit" +MAIN_EXECUTABLE="papermc_server.jar" +SESSION_NAME="papermc" + +# System parameters for java +# -Xms sets the intial heap size (must be a multiple of 1024 and greater than 2MB, no spaces!) +# -Xmx sets the maximum heap size (must be a multiple of 1024 and greater than 2MB, no spaces!) +# -XX:ParallelGCThreads defines the number of threads the server may use +SERVER_START_CMD="java -Xms512M -Xmx1024M -XX:ParallelGCThreads=1 -jar './${MAIN_EXECUTABLE}' nogui" + +# System parameters for the actual game server +# Describes whether a daemon process which stops the server if it is not used by a player +# within IDLE_IF_TIME seconds should be started. The GAME_PORT is not inhereted to the server! +IDLE_SERVER=false # true or false +# Ensure that if SESSION_NAME is passed through the command line and therefore set to read only by the script, +# IDLE_SESSION_NAME gets altered according to the command line and not the configurtion file, hence invoke the variable +IDLE_SESSION_NAME="idle_server_${SESSION_NAME}" +GAME_PORT="25565" # used to listen for incoming connections when the server is down +CHECK_PLAYER_TIME="30" # in seconds +IDLE_IF_TIME="1200" # in seconds diff --git a/user/velocity/velocity.initd b/user/velocity/velocity.initd new file mode 100644 index 0000000..e1cad4d --- /dev/null +++ b/user/velocity/velocity.initd @@ -0,0 +1,32 @@ +#!/sbin/openrc-run +# Distributed under the terms of the GNU General Public License, v2 or later + +PAPERMC_HOME=${PAPERMC_HOME:-/var/lib/${SVCNAME}} +PAPERMC_USER=${PAPERMC_USER:-${SVCNAME}} +PIDFILE=/run/papermc/papermc.pid + +depend() { + after net +} + +start() { + checkpath -dq -o papermc:papermc -m 755 /run/papermc/ + ebegin "Starting ${SVCNAME}" + start-stop-daemon \ + --start --user "${PAPERMC_USER}" --name papermc \ + --env HOME="${PAPERMC_HOME}" --exec /usr/bin/papermc \ + --pidfile="${PIDFILE}" \ + -- \ + start + eend $? +} + +stop() { + ebegin "Stopping ${SVCNAME}" + start-stop-daemon --stop --user "${PAPERMC_USER}" \ + --pidfile "${PIDFILE}" \ + --wait 15000 \ + --progress + eend $? +} + diff --git a/user/velocity/velocity.post-install b/user/velocity/velocity.post-install new file mode 100755 index 0000000..297423e --- /dev/null +++ b/user/velocity/velocity.post-install @@ -0,0 +1,9 @@ +_game="papermc" +_user="craftbukkit" +_server_root="/var/lib/papermc" + + echo "The world data is stored under ${_server_root} and the server runs as ${_user} user to increase security." + echo "Use the ${_game} script under /usr/bin/${_game} to start, stop or backup the server." + echo "Adjust the configuration file under /etc/conf.d/${_game} to your liking." + echo "For the server to start you have to accept the EULA in ${_server_root}/eula.txt !" + echo "The EULA file is generated after the first server start." diff --git a/user/velocity/velocity.sh b/user/velocity/velocity.sh new file mode 100755 index 0000000..cb9486a --- /dev/null +++ b/user/velocity/velocity.sh @@ -0,0 +1,495 @@ +#!/bin/bash + +# The actual program name +declare -r myname="papermc" +declare -r game="papermc" + +# General rule for the variable-naming-schema: +# Variables in capital letters may be passed through the command line others not. +# Avoid altering any of those later in the code since they may be readonly (IDLE_SERVER is an exception!) + +# You may use this script for any game server of your choice, just alter the config file +[[ -n "${SERVER_ROOT}" ]] && declare -r SERVER_ROOT=${SERVER_ROOT} || SERVER_ROOT="/srv/${game}" +[[ -n "${BACKUP_DEST}" ]] && declare -r BACKUP_DEST=${BACKUP_DEST} || BACKUP_DEST="/srv/${game}/backup" +[[ -n "${BACKUP_PATHS}" ]] && declare -r BACKUP_PATHS=${BACKUP_PATHS} || BACKUP_PATHS="world" +[[ -n "${BACKUP_FLAGS}" ]] && declare -r BACKUP_FLAGS=${BACKUP_FLAGS} || BACKUP_FLAGS="-z" +[[ -n "${KEEP_BACKUPS}" ]] && declare -r KEEP_BACKUPS=${KEEP_BACKUPS} || KEEP_BACKUPS="10" +[[ -n "${GAME_USER}" ]] && declare -r GAME_USER=${GAME_USER} || GAME_USER="papermc" +[[ -n "${MAIN_EXECUTABLE}" ]] && declare -r MAIN_EXECUTABLE=${MAIN_EXECUTABLE} || MAIN_EXECUTABLE="papermc_server.jar" +[[ -n "${SESSION_NAME}" ]] && declare -r SESSION_NAME=${SESSION_NAME} || SESSION_NAME="${game}" + +# Command and parameter declaration with which to start the server +[[ -n "${SERVER_START_CMD}" ]] && declare -r SERVER_START_CMD=${SERVER_START_CMD} || SERVER_START_CMD="java -Xms512M -Xmx1024M -XX:ParallelGCThreads=1 -jar './${MAIN_EXECUTABLE}' nogui" + +# System parameters for the control script +[[ -n "${IDLE_SERVER}" ]] && tmp_IDLE_SERVER=${IDLE_SERVER} || IDLE_SERVER="false" +[[ -n "${IDLE_SESSION_NAME}" ]] && declare -r IDLE_SESSION_NAME=${IDLE_SESSION_NAME} || IDLE_SESSION_NAME="idle_server_${SESSION_NAME}" +[[ -n "${GAME_PORT}" ]] && declare -r GAME_PORT=${GAME_PORT} || GAME_PORT="25565" +[[ -n "${CHECK_PLAYER_TIME}" ]] && declare -r CHECK_PLAYER_TIME=${CHECK_PLAYER_TIME} || CHECK_PLAYER_TIME="30" +[[ -n "${IDLE_IF_TIME}" ]] && declare -r IDLE_IF_TIME=${IDLE_IF_TIME} || IDLE_IF_TIME="1200" + +# Additional configuration options which only few may need to alter +[[ -n "${GAME_COMMAND_DUMP}" ]] && declare -r GAME_COMMAND_DUMP=${GAME_COMMAND_DUMP} || GAME_COMMAND_DUMP="/tmp/${myname}_${SESSION_NAME}_command_dump.txt" + +# Variables passed over the command line will always override the one from a config file +source /etc/conf.d/"${game}" 2>/dev/null || >&2 echo "Could not source /etc/conf.d/${game}" + +# Preserve the content of IDLE_SERVER without making it readonly +[[ -n ${tmp_IDLE_SERVER} ]] && IDLE_SERVER=${tmp_IDLE_SERVER} + + +# Strictly disallow uninitialized Variables +set -u +# Exit if a single command breaks and its failure is not handled accordingly +set -e + +# Check whether sudo is needed at all +if [[ "$(whoami)" == "${GAME_USER}" ]]; then + SUDO_CMD="" +else + SUDO_CMD="sudo -u ${GAME_USER}" +fi + +# Choose which flavor of netcat is to be used +if command -v netcat &> /dev/null; then + NETCAT_CMD="netcat" +elif command -v ncat &> /dev/null; then + NETCAT_CMD="ncat" +else + NETCAT_CMD="" +fi + +# Check for sudo rigths +if [[ "$(${SUDO_CMD} whoami)" != "${GAME_USER}" ]]; then + >&2 echo -e "You have \e[39;1mno permission\e[0m to run commands as $GAME_USER user." + exit 21 +fi + +# Pipe any given argument to the game server console, +# sleep for $sleep_time and return its output if $return_stdout is set +game_command() { + if [[ -z "${return_stdout:-}" ]]; then + ${SUDO_CMD} screen -S "${SESSION_NAME}" -X stuff "$(printf "%s\r" "$*")" + else + ${SUDO_CMD} screen -S "${SESSION_NAME}" -X log on + ${SUDO_CMD} screen -S "${SESSION_NAME}" -X stuff "$(printf "%s\r" "$*")" + sleep "${sleep_time:-0.3}" + ${SUDO_CMD} screen -S "${SESSION_NAME}" -X log off + ${SUDO_CMD} cat "${GAME_COMMAND_DUMP}" + ${SUDO_CMD} rm "${GAME_COMMAND_DUMP}" + fi +} + +# Check whether there are player on the server through list +is_player_online() { + response="$(sleep_time=0.6 return_stdout=true game_command list)" + # Delete leading line and free response string from fancy characters + response="$(echo "${response}" | sed -r -e 's/\x1B\[([0-9]{1,2}(;[0-9]{1,2})*)?[JKmsuG]//g')" + # The list command prints a line containing the usernames after the last occurrence of ": " + # and since playernames may not contain this string the clean player-list can easily be retrieved. + # Otherwise check the first digit after the last occurrence of "There are". If it is 0 then there + # are no players on the server. Should this test fail as well. Assume that a player is online. + if [[ $(echo "${response}" | grep ":" | sed -e 's/.*\: //' | tr -d '\n' | wc -c) -le 1 ]]; then + # No player is online + return 0 + elif [[ "x$(echo "${response}" | grep "There are" | sed -r -e 's/.*\: //' -e 's/^([^.]+).*$/\1/; s/^[^0-9]*([0-9]+).*$/\1/' | tr -d '\n')" == "x0" ]]; then + # No player is online + return 0 + else + # A player is online (or it could not be determined) + return 1 + fi +} + +# Check whether the server is visited by a player otherwise shut it down +idle_server_daemon() { + # This function is run within a screen session of the GAME_USER therefore SUDO_CMD can be omitted + if [[ "$(whoami)" != "${GAME_USER}" ]]; then + >&2 echo "Somehow this hidden function was not executed by the ${GAME_USER} user." + >&2 echo "This should not have happend. Are you messing around with this script? :P" + exit 22 + fi + + # Time in seconds for which no player was on the server + no_player=0 + + while true; do + echo -e "no_player: ${no_player}s\tcheck_player_time: ${CHECK_PLAYER_TIME}s\tidle_if_time: ${IDLE_IF_TIME}s" + # Retry in ${CHECK_PLAYER_TIME} seconds + sleep ${CHECK_PLAYER_TIME} + + if screen -S "${SESSION_NAME}" -Q select . > /dev/null; then + # Game server is up and running + if [[ "$(screen -S "${SESSION_NAME}" -ls | sed -n "s/.*${SESSION_NAME}\s\+//gp")" == "(Attached)" ]]; then + # An administrator is connected to the console, pause player checking + echo "An admin is connected to the console. Pause player checking." + # Check for active player + elif SUDO_CMD="" is_player_online; then + # No player was seen on the server through list + no_player=$(( no_player + CHECK_PLAYER_TIME )) + # Stop the game server if no player was active for at least ${IDLE_IF_TIME} + if [[ "${no_player}" -ge "${IDLE_IF_TIME}" ]]; then + IDLE_SERVER="false" ${myname} stop + # Wait for game server to go down + for i in {1..100}; do + screen -S "${SESSION_NAME}" -Q select . > /dev/null || break + [[ $i -eq 100 ]] && echo -e "An \e[39;1merror\e[0m occurred while trying to reset the idle_server!" + sleep 0.1 + done + # Reset timer and give the player 300 seconds to connect after pinging + no_player=$(( IDLE_IF_TIME - 300 )) + # Game server is down, listen on port ${GAME_PORT} for incoming connections + echo -n "Netcat: " + ${NETCAT_CMD} -v -l -p ${GAME_PORT} && echo "Netcat caught an connection. The server is coming up again..." + IDLE_SERVER="false" ${myname} start + fi + else + # Reset timer since there is an active player on the server + no_player=0 + fi + else + # Reset timer and give the player 300 seconds to connect after pinging + no_player=$(( IDLE_IF_TIME - 300 )) + # Game server is down, listen on port ${GAME_PORT} for incoming connections + echo -n "Netcat: " + ${NETCAT_CMD} -v -l -p ${GAME_PORT} && echo "Netcat caught an connection. The server is coming up again..." + IDLE_SERVER="false" ${myname} start + fi + done +} + +# Start the server if it is not already running +server_start() { + # Start the game server + if ${SUDO_CMD} screen -S "${SESSION_NAME}" -Q select . > /dev/null; then + echo "A screen ${SESSION_NAME} session is already running. Please close it first." + else + echo -en "Starting server..." + ${SUDO_CMD} screen -dmS "${SESSION_NAME}" /bin/bash -c "cd '${SERVER_ROOT}'; ${SERVER_START_CMD}" + local PID=$(${SUDO_CMD} screen -list | grep "\.papermc" | cut -f1 -d'.' | sed 's/\W//g') + echo -en " on process ${PID}..." + echo ${PID} > /run/papermc/papermc.pid + ${SUDO_CMD} screen -S "${SESSION_NAME}" -X logfile "${GAME_COMMAND_DUMP}" + echo -e "\e[39;1m done\e[0m" + fi + + if [[ "${IDLE_SERVER,,}" == "true" ]]; then + # Check for the availability of the netcat (nc) binaries + if [[ -z "${NETCAT_CMD}" ]]; then + >&2 echo "The netcat binaries are needed for suspending an idle server." + exit 12 + fi + + # Start the idle server daemon + if ${SUDO_CMD} screen -S "${IDLE_SESSION_NAME}" -Q select . > /dev/null; then + ${SUDO_CMD} screen -S "${IDLE_SESSION_NAME}" -X quit + # Restart as soon as the idle_server_daemon has shut down completely + for i in {1..100}; do + if ! ${SUDO_CMD} screen -S "${IDLE_SESSION_NAME}" -Q select . > /dev/null; then + ${SUDO_CMD} screen -dmS "${IDLE_SESSION_NAME}" /bin/bash -c "${myname} idle_server_daemon" + break + fi + [[ $i -eq 100 ]] && echo -e "An \e[39;1merror\e[0m occurred while trying to reset the idle_server!" + sleep 0.1 + done + else + echo -en "Starting idle server daemon..." + ${SUDO_CMD} screen -dmS "${IDLE_SESSION_NAME}" /bin/bash -c "${myname} idle_server_daemon" + echo -e "\e[39;1m done\e[0m" + fi + fi +} + +# Stop the server gracefully by saving everything prior and warning the users +server_stop() { + # Quit the idle daemon + if [[ "${IDLE_SERVER,,}" == "true" ]]; then + # Check for the availability of the netcat (nc) binaries + if [[ -z "${NETCAT_CMD}" ]]; then + >&2 echo "The netcat binaries are needed for suspending an idle server." + exit 12 + fi + + if ${SUDO_CMD} screen -S "${IDLE_SESSION_NAME}" -Q select . > /dev/null; then + echo -en "Stopping idle server daemon..." + ${SUDO_CMD} screen -S "${IDLE_SESSION_NAME}" -X quit + echo -e "\e[39;1m done\e[0m" + else + echo "The corresponding screen session for ${IDLE_SESSION_NAME} was already dead." + fi + fi + + # Gracefully exit the game server + if ${SUDO_CMD} screen -S "${SESSION_NAME}" -Q select . > /dev/null; then + # Game server is up and running, gracefully stop the server when there are still active players + + # Check for active player + if is_player_online; then + # No player was seen on the server through list + echo -en "Server is going down..." + game_command stop + else + # Player(s) were seen on the server through list (or an error occurred) + # Warning the users through the server console + game_command say "Server is going down in 10 seconds! HURRY UP WITH WHATEVER YOU ARE DOING!" + game_command save-all + echo -en "Server is going down in..." + for i in {1..10}; do + game_command say "down in... $(( 10 - i ))" + echo -n " $(( 10 - i ))" + sleep 1 + done + game_command stop + fi + + # Finish as soon as the server has shut down completely + for i in {1..100}; do + if ! ${SUDO_CMD} screen -S "${SESSION_NAME}" -Q select . > /dev/null; then + echo -e "\e[39;1m done\e[0m" + break + fi + [[ $i -eq 100 ]] && echo -e "\e[39;1m timed out\e[0m" + sleep 0.1 + done + else + echo "The corresponding screen session for ${SESSION_NAME} was already dead." + fi +} + +# Print whether the server is running and if so give some information about memory usage and threads +server_status() { + # Print status information about the idle daemon + if [[ "${IDLE_SERVER,,}" == "true" ]]; then + # Check for the availability of the netcat (nc) binaries + if [[ -z "${NETCAT_CMD}" ]]; then + >&2 echo "The netcat binaries are needed for suspending an idle server." + exit 12 + fi + + if ${SUDO_CMD} screen -S "${IDLE_SESSION_NAME}" -Q select . > /dev/null; then + echo -e "Idle server daemon status:\e[39;1m running\e[0m" + else + echo -e "Idle server daemon status:\e[39;1m stopped\e[0m" + fi + fi + + # Print status information for the game server + if ${SUDO_CMD} screen -S "${SESSION_NAME}" -Q select . > /dev/null; then + echo -e "Status:\e[39;1m running\e[0m" + + # Calculating memory usage + for p in $(${SUDO_CMD} pgrep -f "${MAIN_EXECUTABLE}"); do + ps -p"${p}" -O rss | tail -n 1; + done | gawk '{ count ++; sum += $2 }; END {count --; print "Number of processes =", count, "(screen, bash,", count-2, "x server)"; print "Total memory usage =", sum/1024, "MB" ;};' + else + echo -e "Status:\e[39;1m stopped\e[0m" + fi +} + +# Restart the complete server by shutting it down and starting it again +server_restart() { + if ${SUDO_CMD} screen -S "${SESSION_NAME}" -Q select . > /dev/null; then + server_stop + server_start + else + server_start + fi +} + +# Backup the directories specified in BACKUP_PATHS +backup_files() { + # Check for the availability of the tar binaries + if ! command -v tar &> /dev/null; then + >&2 echo "The tar binaries are needed for a backup." + exit 11 + fi + + echo "Starting backup..." + fname="$(date +%Y_%m_%d_%H.%M.%S).tar.gz" + ${SUDO_CMD} mkdir -p "${BACKUP_DEST}" + if ${SUDO_CMD} screen -S "${SESSION_NAME}" -Q select . > /dev/null; then + game_command save-off + game_command save-all + sync && wait + ${SUDO_CMD} tar -C "${SERVER_ROOT}" -cf "${BACKUP_DEST}/${fname}" ${BACKUP_PATHS} --totals ${BACKUP_FLAGS} 2>&1 | grep -v "tar: Removing leading " + game_command save-on + else + ${SUDO_CMD} tar -C "${SERVER_ROOT}" -cf "${BACKUP_DEST}/${fname}" ${BACKUP_PATHS} --totals ${BACKUP_FLAGS} 2>&1 | grep -v "tar: Removing leading " + fi + echo -e "\e[39;1mbackup completed\e[0m\n" + + echo -n "Only keeping the last ${KEEP_BACKUPS} backups and removing the other ones..." + backup_count=$(for f in "${BACKUP_DEST}"/[0-9_.]*; do echo "${f}"; done | wc -l) + if [[ $(( backup_count - KEEP_BACKUPS )) -gt 0 ]]; then + for old_backup in $(for f in "${BACKUP_DEST}"/[0-9_.]*; do echo "${f}"; done | head -n"$(( backup_count - KEEP_BACKUPS ))"); do + ${SUDO_CMD} rm "${old_backup}"; + done + echo -e "\e[39;1m done\e[0m ($(( backup_count - KEEP_BACKUPS)) backup(s) pruned)" + else + echo -e "\e[39;1m done\e[0m (no backups pruned)" + fi +} + +# Restore backup +backup_restore() { + # Check for the availability of the tar binaries + if ! command -v tar &> /dev/null; then + >&2 echo "The tar binaries are needed for a backup." + exit 11 + fi + + # Only allow the user to restore a backup if the server is down + if ${SUDO_CMD} screen -S "${SESSION_NAME}" -Q select . > /dev/null; then + >&2 echo -e "The \e[39;1mserver should be down\e[0m in order to restore the world data." + exit 3 + fi + + # Either let the user choose a backup or expect one as an argument + if [[ $# -lt 1 ]]; then + echo "Please enter the corresponding number for the backup to be restored: " + i=1 + for f in "${BACKUP_DEST}"/[0-9_.]*; do + echo -e " \e[39;1m$i)\e[0m\t$f" + i=$(( i + 1 )) + done + echo -en "Restore backup number: " + + # Read in user input + read -r user_choice + + # Interpeting the input + if [[ $user_choice =~ ^-?[0-9]+$ ]]; then + n=1 + for f in "${BACKUP_DEST}"/[0-9_.]*; do + [[ ${n} -eq $user_choice ]] && fname="$f" + n=$(( n + 1 )) + done + if [[ -z $fname ]]; then + >&2 echo -e "\e[39;1mFailed\e[0m to interpret your input. Please enter the digit of the presented options." + exit 5 + fi + else + >&2 echo -e "\e[39;1mFailed\e[0m to interpret your input. Please enter a valid digit for one of the presented options." + exit 6 + fi + elif [[ $# -eq 1 ]]; then + # Check for the existance of the specified file + if [[ -f "$1" ]]; then + fname="$1" + else + if [[ -f "${BACKUP_DEST}"/"$1" ]]; then + fname="${BACKUP_DEST}"/"$1" + else + >&2 echo -e "Sorry, but '$1', is \e[39;1mnot a valid file\e[0m, neither in your current directory nor in the backup folder." + exit 4 + fi + fi + elif [[ $# -gt 1 ]]; then + >&2 echo -e "\e[39;1mToo many arguments.\e[0m Please pass only the filename for the world data as an argument." + >&2 echo "Or alternatively, no arguments at all to choose from a list of available backups." + exit 7 + fi + + echo "Restoring backup..." + if ${SUDO_CMD} tar -xf "${fname}" -C "${SERVER_ROOT}" 2>&1; then + echo -e "\e[39;1mRestoration completed\e[0m" + else + echo -e "\e[39;1mFailed to restore backup.\e[0m" + fi +} + +# Run the given command at the game server console +server_command() { + if [[ $# -lt 1 ]]; then + >&2 echo "No server command specified. Try 'help' for a list of commands." + exit 1 + fi + + if ${SUDO_CMD} screen -S "${SESSION_NAME}" -Q select . > /dev/null; then + return_stdout=true game_command "$@" + else + echo "There is no ${SESSION_NAME} session to connect to." + fi +} + +# Enter the screen game session +server_console() { + if ${SUDO_CMD} screen -S "${SESSION_NAME}" -Q select . > /dev/null; then + # Circumvent a permission bug related to running GNU screen as a different user, + # see e.g. https://serverfault.com/questions/116775/sudo-as-different-user-and-running-screen + ${SUDO_CMD} script -q -c "screen -S \"${SESSION_NAME}\" -rx" /dev/null + else + echo "There is no ${SESSION_NAME} session to connect to." + fi +} + +# Help function, no arguments required +help() { + cat <<-EOF + This script was designed to easily control any ${game} server. Almost any parameter for a given + ${game} server derivative can be changed by editing the variables in the configuration file. + + Usage: ${myname} {start|stop|restart|status|backup|restore|command |console} + start Start the ${game} server + stop Stop the ${game} server + restart Restart the ${game} server + status Print some status information + backup Backup the world data + restore [filename] Restore the world data from a backup + command Run the given command at the ${game} server console + console Enter the server console through a screen session + + Copyright (c) Gordian Edenhofer + EOF +} + +case "${1:-}" in + start) + server_start + ;; + + stop) + server_stop + ;; + + status) + server_status + ;; + + restart) + server_restart + ;; + + console) + server_console + ;; + + command) + server_command "${@:2}" + ;; + + backup) + backup_files + ;; + + restore) + backup_restore "${@:2}" + ;; + + idle_server_daemon) + # This shall be a hidden function which should only be invoced internally + idle_server_daemon + ;; + + -h|--help) + help + exit 0 + ;; + + *) + help + exit 1 + ;; +esac + +exit 0 From 8c9065c3af0f30a1953b6d8a70b8c2647af4d940 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Tue, 7 Jan 2025 11:01:44 -0500 Subject: [PATCH 002/210] user/papermc-plugin-worldedit: fix packaging --- user/papermc-plugin-worldedit/APKBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/user/papermc-plugin-worldedit/APKBUILD b/user/papermc-plugin-worldedit/APKBUILD index 5634b03..96e0215 100644 --- a/user/papermc-plugin-worldedit/APKBUILD +++ b/user/papermc-plugin-worldedit/APKBUILD @@ -3,7 +3,7 @@ pkgname=papermc-plugin-worldedit pkgver=7.3.9 _pkgver=$pkgver -pkgrel=0 +pkgrel=1 pkgdesc="WorldEdit is an easy-to-use in-game Minecraft map editor" arch='noarch !aarch64' url="https://github.com/EngineHub/WorldEdit" @@ -22,7 +22,7 @@ check() { } package() { - install -Dm644 "$builddir"/worldedit-bukkit/build/libs/worldedit-bukkit-$pkgver.jar "$pkgdir/var/lib/papermc/plugins/WorldEdit.jar" + install -Dm644 "$builddir"/worldedit-bukkit/build/libs/worldedit-bukkit-$pkgver-dist.jar "$pkgdir/var/lib/papermc/plugins/WorldEdit.jar" } sha512sums=" 35eb83dfcd192884a86f9bec3cbe586af6141b8c10461937b2ef112bfb4d64f5f7c6e950108a7893dc5b1054f1d0206f74ec6b4702481c0da69bf89627dbfb06 papermc-plugin-worldedit-7.3.9.tar.gz From c2b6767bfae64bcb9d6a2eed5094f520b7d7f9f0 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Wed, 8 Jan 2025 18:42:10 -0500 Subject: [PATCH 003/210] forgejo-ci: add postmarketOS repo when building aport under pmos --- .forgejo/bin/build.sh | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/.forgejo/bin/build.sh b/.forgejo/bin/build.sh index d9e327f..ad5e30c 100755 --- a/.forgejo/bin/build.sh +++ b/.forgejo/bin/build.sh @@ -7,7 +7,7 @@ set -eu -o pipefail readonly APORTSDIR=$CI_PROJECT_DIR -readonly REPOS="backports user" +readonly REPOS="backports user pmos" readonly ALPINE_REPOS="main community testing" readonly ARCH=$(apk --print-arch) # gitlab variables @@ -16,6 +16,8 @@ readonly BASEBRANCH=$CI_MERGE_REQUEST_TARGET_BRANCH_NAME : "${REPODEST:=$HOME/packages}" : "${MIRROR:=https://ayakael.net/api/packages/forge/alpine}" : "${ALPINE_MIRROR:=http://dl-cdn.alpinelinux.org/alpine}" +: "${PMOS_MIRROR:=http://mirror.postmarketos.org/postmarketos}" +: "${PMOS_KEY:=https://git.syndicate-lang.org/synit/pmbootstrap/raw/commit/8efee86388408c0d8de45c64fe383580ffd91700/pmb/data/keys/build.postmarketos.org.rsa.pub}" : "${MAX_ARTIFACT_SIZE:=300000000}" #300M : "${CI_DEBUG_BUILD:=}" @@ -137,6 +139,22 @@ setup_system() { git config --global init.defaultBranch master } +setup_pmos() { + local release + + case $BASEBRANCH in + v3.21) release="v24.12";; + v3.20) release="v24.6";; + v3.19) release="v23.12";; + edge) release=master;; + *) die "Branch \"$BASEBRANCH\" not supported!" + esac + + doas wget "$PMOS_KEY" -P /etc/apk/keys + doas sh -c "echo $PMOS_MIRROR/$release >> /etc/apk/repositories" + doas apk update || true +} + sysinfo() { printf ">>> Host system information (arch: %s, release: %s) <<<\n" "$ARCH" "$(get_release)" printf "- Number of Cores: %s\n" "$(nproc)" @@ -144,6 +162,7 @@ sysinfo() { printf "- Free space: %s\n" "$(df -hP / | awk '/\/$/ {print $4}')" } + copy_artifacts() { cd "$APORTSDIR" @@ -204,6 +223,7 @@ build_limit=$CI_ALPINE_BUILD_LIMIT for repo in $(changed_repos); do set_repositories_for "$repo" + [ "$repo" == "pmos" ] && setup_pmos built_aports=0 changed_aports_in_repo=$(changed_aports "$repo") changed_aports_in_repo_count=$(echo "$changed_aports_in_repo" | wc -l) From 5d7449a835f5d26c634f6a861431042675630a48 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Wed, 8 Jan 2025 22:39:59 -0500 Subject: [PATCH 004/210] pmos/linux-pine64-pinenote: new aport --- pmos/linux-pine64-pinenote/APKBUILD | 59 + .../config-pine64-pinenote.aarch64 | 7536 +++++++++++++++++ 2 files changed, 7595 insertions(+) create mode 100644 pmos/linux-pine64-pinenote/APKBUILD create mode 100644 pmos/linux-pine64-pinenote/config-pine64-pinenote.aarch64 diff --git a/pmos/linux-pine64-pinenote/APKBUILD b/pmos/linux-pine64-pinenote/APKBUILD new file mode 100644 index 0000000..9d00d99 --- /dev/null +++ b/pmos/linux-pine64-pinenote/APKBUILD @@ -0,0 +1,59 @@ +# Reference: +# Kernel config based on: arch/arm64/configs/(CHANGEME!) + +pkgname=linux-pine64-pinenote +pkgver=6.12.0_rc2 +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="5392aa8e38082b431f3330c873b288f72ae98f90" +_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=" +34f410639b0046a192f18518db2c12593bf2acb27fd76560801d9010558f55b71cb1c3208b9755f1991f361c70cb80265bb587b7028945da85763de25e73704e linux-pine64-pinenote-5392aa8e38082b431f3330c873b288f72ae98f90.tar.gz +d460b63f8b7d32849a3ae426e0258a2b66b251c654f42c69a65b8ec77f24c6f9d0277f0c66879218dfa9aaa58c019592c17b34f5a8518bd67a62a1fbbddb9f9f config-pine64-pinenote.aarch64 +" diff --git a/pmos/linux-pine64-pinenote/config-pine64-pinenote.aarch64 b/pmos/linux-pine64-pinenote/config-pine64-pinenote.aarch64 new file mode 100644 index 0000000..8078456 --- /dev/null +++ b/pmos/linux-pine64-pinenote/config-pine64-pinenote.aarch64 @@ -0,0 +1,7536 @@ +# +# Automatically generated file; DO NOT EDIT. +# Linux/arm64 6.12.0-rc2 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_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_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_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_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 is not set +# 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 is not set +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_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_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_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 is not set +# CONFIG_SND_USB_UA101 is not set +# CONFIG_SND_USB_CAIAQ is not set +# CONFIG_SND_USB_6FIRE is not set +# CONFIG_SND_USB_HIFACE is not set +# CONFIG_SND_BCD2000 is not set +# CONFIG_SND_USB_POD is not set +# CONFIG_SND_USB_PODHD is not set +# CONFIG_SND_USB_TONEPORT is not set +# CONFIG_SND_USB_VARIAX is not set +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 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_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_HID=m +CONFIG_USB_CONFIGFS=m +CONFIG_USB_CONFIGFS_SERIAL=y +CONFIG_USB_CONFIGFS_ACM=y +# CONFIG_USB_CONFIGFS_OBEX is not set +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 is not set +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 is not set +# CONFIG_USB_CONFIGFS_F_MIDI2 is not set +CONFIG_USB_CONFIGFS_F_HID=y +# CONFIG_USB_CONFIGFS_F_UVC is not set +# 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_ARM_GIC_V3_ITS_PCI=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 +# +# 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 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_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_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 From c82ac68ca4f8bc4309f303e5007844fdbf3a2592 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Wed, 8 Jan 2025 23:01:42 -0500 Subject: [PATCH 005/210] pmos/pinenote-dbus-service: move from user --- {user => pmos}/pinenote-dbus-service/APKBUILD | 2 +- {user => pmos}/pinenote-dbus-service/pinenote.initd | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename {user => pmos}/pinenote-dbus-service/APKBUILD (99%) rename {user => pmos}/pinenote-dbus-service/pinenote.initd (100%) diff --git a/user/pinenote-dbus-service/APKBUILD b/pmos/pinenote-dbus-service/APKBUILD similarity index 99% rename from user/pinenote-dbus-service/APKBUILD rename to pmos/pinenote-dbus-service/APKBUILD index 0312e65..0136557 100644 --- a/user/pinenote-dbus-service/APKBUILD +++ b/pmos/pinenote-dbus-service/APKBUILD @@ -2,7 +2,7 @@ pkgname=pinenote-dbus-service pkgver=0.2.2_pre5 _gittag=0.2.2-dev5 -pkgrel=0 +pkgrel=1 pkgdesc="Dbus daemon for controlling driver aspects on Pine64 Pinenote" url="https://github.com/m-weigand/pinenote_dbus_service" arch="aarch64" diff --git a/user/pinenote-dbus-service/pinenote.initd b/pmos/pinenote-dbus-service/pinenote.initd similarity index 100% rename from user/pinenote-dbus-service/pinenote.initd rename to pmos/pinenote-dbus-service/pinenote.initd From c6d37636b60f161af16ccdb130d9a7773b6bbcdc Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Wed, 8 Jan 2025 22:59:15 -0500 Subject: [PATCH 006/210] pmos/linux-pine64-pinenote: upgrade to 6.12.0 --- pmos/linux-pine64-pinenote/APKBUILD | 8 +- .../config-pine64-pinenote.aarch64 | 170 +++++++++++++++--- 2 files changed, 154 insertions(+), 24 deletions(-) diff --git a/pmos/linux-pine64-pinenote/APKBUILD b/pmos/linux-pine64-pinenote/APKBUILD index 9d00d99..84f8643 100644 --- a/pmos/linux-pine64-pinenote/APKBUILD +++ b/pmos/linux-pine64-pinenote/APKBUILD @@ -2,7 +2,7 @@ # Kernel config based on: arch/arm64/configs/(CHANGEME!) pkgname=linux-pine64-pinenote -pkgver=6.12.0_rc2 +pkgver=6.12.0 pkgrel=0 pkgdesc="Pine64 PineNote kernel fork" arch="aarch64" @@ -24,7 +24,7 @@ makedepends=" # Source _repository="linux" -_commit="5392aa8e38082b431f3330c873b288f72ae98f90" +_commit="9d066a65f5cbaa8cd3bfc73a1b54fbac2d0f76ac" _config="config-$_flavor.$arch" source=" $pkgname-$_commit.tar.gz::https://github.com/m-weigand/linux/archive/$_commit.tar.gz @@ -54,6 +54,6 @@ package() { } sha512sums=" -34f410639b0046a192f18518db2c12593bf2acb27fd76560801d9010558f55b71cb1c3208b9755f1991f361c70cb80265bb587b7028945da85763de25e73704e linux-pine64-pinenote-5392aa8e38082b431f3330c873b288f72ae98f90.tar.gz -d460b63f8b7d32849a3ae426e0258a2b66b251c654f42c69a65b8ec77f24c6f9d0277f0c66879218dfa9aaa58c019592c17b34f5a8518bd67a62a1fbbddb9f9f config-pine64-pinenote.aarch64 +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 index 8078456..8e3fb39 100644 --- a/pmos/linux-pine64-pinenote/config-pine64-pinenote.aarch64 +++ b/pmos/linux-pine64-pinenote/config-pine64-pinenote.aarch64 @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/arm64 6.12.0-rc2 Kernel Configuration +# 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 @@ -12,6 +12,7 @@ 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 @@ -438,6 +439,7 @@ 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 @@ -810,6 +812,7 @@ CONFIG_BFQ_GROUP_IOSCHED=y # 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 @@ -1005,6 +1008,7 @@ CONFIG_XFRM_USER=m 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 @@ -1388,7 +1392,7 @@ CONFIG_NET_CLS_CGROUP=m # CONFIG_NET_CLS_ACT is not set CONFIG_NET_SCH_FIFO=y # CONFIG_DCB is not set -# CONFIG_DNS_RESOLVER is not set +CONFIG_DNS_RESOLVER=m # CONFIG_BATMAN_ADV is not set # CONFIG_OPENVSWITCH is not set # CONFIG_VSOCKETS is not set @@ -1427,7 +1431,9 @@ CONFIG_BT=m CONFIG_BT_BREDR=y CONFIG_BT_RFCOMM=y CONFIG_BT_RFCOMM_TTY=y -# CONFIG_BT_BNEP is not set +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 @@ -3722,6 +3728,7 @@ CONFIG_VIDEO_HANTRO_ROCKCHIP=y # 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 @@ -4522,6 +4529,10 @@ 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 @@ -4540,6 +4551,7 @@ CONFIG_SND_DEBUG_VERBOSE=y # 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 @@ -4616,16 +4628,20 @@ CONFIG_SND_PCI=y CONFIG_SND_HDA_PREALLOC_SIZE=64 # CONFIG_SND_SPI is not set CONFIG_SND_USB=y -# CONFIG_SND_USB_AUDIO is not set -# CONFIG_SND_USB_UA101 is not set -# CONFIG_SND_USB_CAIAQ is not set -# CONFIG_SND_USB_6FIRE is not set -# CONFIG_SND_USB_HIFACE is not set +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_POD is not set -# CONFIG_SND_USB_PODHD is not set -# CONFIG_SND_USB_TONEPORT is not set -# CONFIG_SND_USB_VARIAX 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 @@ -5134,7 +5150,60 @@ CONFIG_USB_DWC3_OF_SIMPLE=y # # USB port drivers # -# CONFIG_USB_SERIAL is not set +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 @@ -5210,6 +5279,7 @@ 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 @@ -5218,11 +5288,14 @@ 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 is not set +CONFIG_USB_CONFIGFS_OBEX=y CONFIG_USB_CONFIGFS_NCM=y CONFIG_USB_CONFIGFS_ECM=y CONFIG_USB_CONFIGFS_ECM_SUBSET=y @@ -5230,14 +5303,14 @@ CONFIG_USB_CONFIGFS_ECM_SUBSET=y 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 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 is not set -# CONFIG_USB_CONFIGFS_F_MIDI2 is not set +CONFIG_USB_CONFIGFS_F_MIDI=y +CONFIG_USB_CONFIGFS_F_MIDI2=y CONFIG_USB_CONFIGFS_F_HID=y -# CONFIG_USB_CONFIGFS_F_UVC is not set +CONFIG_USB_CONFIGFS_F_UVC=y # CONFIG_USB_CONFIGFS_F_PRINTER is not set # @@ -6515,7 +6588,6 @@ CONFIG_ARM_GIC_MAX_NR=1 CONFIG_ARM_GIC_V2M=y CONFIG_ARM_GIC_V3=y CONFIG_ARM_GIC_V3_ITS=y -CONFIG_ARM_GIC_V3_ITS_PCI=y CONFIG_IRQ_MSI_LIB=y # CONFIG_AL_FIC is not set # CONFIG_LAN966X_OIC is not set @@ -6727,6 +6799,15 @@ CONFIG_OVERLAY_FS_REDIRECT_ALWAYS_FOLLOW=y # # 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 # @@ -6783,7 +6864,54 @@ CONFIG_EFIVAR_FS=y # end of Pseudo filesystems # CONFIG_MISC_FILESYSTEMS is not set -# CONFIG_NETWORK_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 @@ -6835,6 +6963,7 @@ CONFIG_NLS_ISO8859_1=y # 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 @@ -7226,6 +7355,7 @@ CONFIG_GLOB=y 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 From d08c1392bc90a7fc2ac391ed88e8a98406ec50ce Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Wed, 8 Jan 2025 22:46:54 -0500 Subject: [PATCH 007/210] pmos/device-pine64-pinenote: new aport --- .../50-touchscreen.conf | 11 +++ .../81-libinput-pinenote.rules | 9 +++ .../82-ebc-rockchip.rules | 2 + pmos/device-pine64-pinenote/APKBUILD | 81 +++++++++++++++++++ pmos/device-pine64-pinenote/blacklist.conf | 3 + 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 | 1 + 11 files changed, 162 insertions(+) create mode 100644 pmos/device-pine64-pinenote/50-touchscreen.conf create mode 100644 pmos/device-pine64-pinenote/81-libinput-pinenote.rules create mode 100644 pmos/device-pine64-pinenote/82-ebc-rockchip.rules create mode 100644 pmos/device-pine64-pinenote/APKBUILD create mode 100644 pmos/device-pine64-pinenote/blacklist.conf create mode 100644 pmos/device-pine64-pinenote/deviceinfo create mode 100644 pmos/device-pine64-pinenote/local-overrides.quirks create mode 100644 pmos/device-pine64-pinenote/modules-initfs create mode 100644 pmos/device-pine64-pinenote/panfrost.conf create mode 100644 pmos/device-pine64-pinenote/phoc.ini create mode 100644 pmos/device-pine64-pinenote/rockchip_ebc.conf diff --git a/pmos/device-pine64-pinenote/50-touchscreen.conf b/pmos/device-pine64-pinenote/50-touchscreen.conf new file mode 100644 index 0000000..f2d643b --- /dev/null +++ b/pmos/device-pine64-pinenote/50-touchscreen.conf @@ -0,0 +1,11 @@ +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 new file mode 100644 index 0000000..700c71c --- /dev/null +++ b/pmos/device-pine64-pinenote/81-libinput-pinenote.rules @@ -0,0 +1,9 @@ +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 new file mode 100644 index 0000000..56c673d --- /dev/null +++ b/pmos/device-pine64-pinenote/82-ebc-rockchip.rules @@ -0,0 +1,2 @@ +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 new file mode 100644 index 0000000..5e0ad0b --- /dev/null +++ b/pmos/device-pine64-pinenote/APKBUILD @@ -0,0 +1,81 @@ +# Maintainer: Petr Hodina +pkgname=device-pine64-pinenote +pkgdesc="Pine64 PineNote" +pkgver=2 +pkgrel=8 +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 + blacklist.conf + 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"/blacklist.conf \ + -t "$pkgdir"/etc/modprobe.d + install -Dm644 "$srcdir"/panfrost.conf \ + "$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 +aed87c0f0ef9ed8ac0b4c96591cf712d8f34c7b3bfc58aaa738c7baf6d095c8cdd2914c47c7f0caccb90cdb3a540abaa077ec8cd30198fcdfced8d964f0c1072 blacklist.conf +6ba6638754e00908243de2f73ed6898dac03638a200dcf7b7cd9684757355ee1eb0ac874af0f971ad2e054c1a8c471867bdaea4d9aaf7eea6d3cf81ac7dd73a2 panfrost.conf +8f01d9662c064cd6dd9eb0fe6ca36b7cf4304d1860f094c2c9c9f22ffdcfc2fde1040b5eeed016cb77a91d5b73382046e51a0b7a58334fcd7486befbf9fed7f0 rockchip_ebc.conf +" diff --git a/pmos/device-pine64-pinenote/blacklist.conf b/pmos/device-pine64-pinenote/blacklist.conf new file mode 100644 index 0000000..58a1553 --- /dev/null +++ b/pmos/device-pine64-pinenote/blacklist.conf @@ -0,0 +1,3 @@ +# rockchip-rga will crash the kernel on unload at the moment +blacklist rockchip-rga +blacklist ws8100_pen diff --git a/pmos/device-pine64-pinenote/deviceinfo b/pmos/device-pine64-pinenote/deviceinfo new file mode 100644 index 0000000..22b6d1c --- /dev/null +++ b/pmos/device-pine64-pinenote/deviceinfo @@ -0,0 +1,37 @@ +# 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 new file mode 100644 index 0000000..030ca8b --- /dev/null +++ b/pmos/device-pine64-pinenote/local-overrides.quirks @@ -0,0 +1,5 @@ +[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 new file mode 100644 index 0000000..1b49e53 --- /dev/null +++ b/pmos/device-pine64-pinenote/modules-initfs @@ -0,0 +1,5 @@ +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 new file mode 100644 index 0000000..31a1750 --- /dev/null +++ b/pmos/device-pine64-pinenote/panfrost.conf @@ -0,0 +1,2 @@ +softdep panfrost pre: rockchip_ebc +# blacklist rockchip_ebc diff --git a/pmos/device-pine64-pinenote/phoc.ini b/pmos/device-pine64-pinenote/phoc.ini new file mode 100644 index 0000000..90d53d8 --- /dev/null +++ b/pmos/device-pine64-pinenote/phoc.ini @@ -0,0 +1,6 @@ +# /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 new file mode 100644 index 0000000..f3904c2 --- /dev/null +++ b/pmos/device-pine64-pinenote/rockchip_ebc.conf @@ -0,0 +1 @@ +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 From b03043f08cd4080bee763ec091aad5197b524071 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Sat, 11 Jan 2025 11:28:36 -0500 Subject: [PATCH 008/210] pmos/device-pine64-pinenote: fix blacklist --- pmos/device-pine64-pinenote/APKBUILD | 10 +++------- pmos/device-pine64-pinenote/blacklist.conf | 3 --- pmos/device-pine64-pinenote/rockchip_ebc.conf | 4 ++++ 3 files changed, 7 insertions(+), 10 deletions(-) delete mode 100644 pmos/device-pine64-pinenote/blacklist.conf diff --git a/pmos/device-pine64-pinenote/APKBUILD b/pmos/device-pine64-pinenote/APKBUILD index 5e0ad0b..1cf2b3c 100644 --- a/pmos/device-pine64-pinenote/APKBUILD +++ b/pmos/device-pine64-pinenote/APKBUILD @@ -2,7 +2,7 @@ pkgname=device-pine64-pinenote pkgdesc="Pine64 PineNote" pkgver=2 -pkgrel=8 +pkgrel=9 url="https://postmarketos.org" license="MIT" arch="aarch64" @@ -21,7 +21,6 @@ source=" 50-touchscreen.conf 81-libinput-pinenote.rules 82-ebc-rockchip.rules - blacklist.conf panfrost.conf rockchip_ebc.conf " @@ -45,10 +44,8 @@ package() { -t "$pkgdir"/usr/lib/udev/rules.d install -Dm644 "$srcdir"/82-ebc-rockchip.rules \ "$pkgdir"/usr/lib/udev/rules.d - install -Dm644 "$srcdir"/blacklist.conf \ - -t "$pkgdir"/etc/modprobe.d install -Dm644 "$srcdir"/panfrost.conf \ - "$pkgdir"/etc/modprobe.d + -t "$pkgdir"/etc/modprobe.d install -Dm644 "$srcdir"/rockchip_ebc.conf \ "$pkgdir"/etc/modprobe.d } @@ -75,7 +72,6 @@ sha512sums=" ac433eebbc35a48561837495997aee4e55510b979bc0d8e3bafb761bc1be5b4bdeed2f456369dcbc582688aefd07c63966b0d72b6ffa99e84cfd868e677f02c8 50-touchscreen.conf 2bc51f200baefc37abfaaad368a911244999e906bdca4b728ac233f49a8fb3ae7206ee3c95cdb20d7dceae2a31d25a57f4e1da4fd67057fd64724b8232e42aed 81-libinput-pinenote.rules 19e922eec89dba419798c4e1dc9b39c040db33986d0969a39a8220c642fa081763f15ff2418115d5a748af4054a1be0784927d1712ea79942c2b237ebab47728 82-ebc-rockchip.rules -aed87c0f0ef9ed8ac0b4c96591cf712d8f34c7b3bfc58aaa738c7baf6d095c8cdd2914c47c7f0caccb90cdb3a540abaa077ec8cd30198fcdfced8d964f0c1072 blacklist.conf 6ba6638754e00908243de2f73ed6898dac03638a200dcf7b7cd9684757355ee1eb0ac874af0f971ad2e054c1a8c471867bdaea4d9aaf7eea6d3cf81ac7dd73a2 panfrost.conf -8f01d9662c064cd6dd9eb0fe6ca36b7cf4304d1860f094c2c9c9f22ffdcfc2fde1040b5eeed016cb77a91d5b73382046e51a0b7a58334fcd7486befbf9fed7f0 rockchip_ebc.conf +b52d2e7f0c62d7c313b6db9aeb706cdb2596b6aa637aeddb862abf1e256103377fb6267e38cd4285e25d32112acf8d03bbf32ecff7be3dfbb9176209ea7ae283 rockchip_ebc.conf " diff --git a/pmos/device-pine64-pinenote/blacklist.conf b/pmos/device-pine64-pinenote/blacklist.conf deleted file mode 100644 index 58a1553..0000000 --- a/pmos/device-pine64-pinenote/blacklist.conf +++ /dev/null @@ -1,3 +0,0 @@ -# rockchip-rga will crash the kernel on unload at the moment -blacklist rockchip-rga -blacklist ws8100_pen diff --git a/pmos/device-pine64-pinenote/rockchip_ebc.conf b/pmos/device-pine64-pinenote/rockchip_ebc.conf index f3904c2..e457ac9 100644 --- a/pmos/device-pine64-pinenote/rockchip_ebc.conf +++ b/pmos/device-pine64-pinenote/rockchip_ebc.conf @@ -1 +1,5 @@ +# 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 From 6b56f7cb5104b04d6b789df7bf009ba4eee39d97 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Fri, 14 Feb 2025 19:45:05 -0500 Subject: [PATCH 009/210] user/openterface-qt: new aport --- .../51-openterface-permissions.rules | 1 + user/openterface-qt/APKBUILD | 42 +++++++++++++++++++ .../openterface-qt.post-install | 3 ++ user/openterface-qt/openterfaceQT.desktop | 8 ++++ 4 files changed, 54 insertions(+) create mode 100644 user/openterface-qt/51-openterface-permissions.rules create mode 100644 user/openterface-qt/APKBUILD create mode 100755 user/openterface-qt/openterface-qt.post-install create mode 100644 user/openterface-qt/openterfaceQT.desktop diff --git a/user/openterface-qt/51-openterface-permissions.rules b/user/openterface-qt/51-openterface-permissions.rules new file mode 100644 index 0000000..e8f2971 --- /dev/null +++ b/user/openterface-qt/51-openterface-permissions.rules @@ -0,0 +1 @@ +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", MODE="0660", GROUP="plugdev" diff --git a/user/openterface-qt/APKBUILD b/user/openterface-qt/APKBUILD new file mode 100644 index 0000000..b0bb703 --- /dev/null +++ b/user/openterface-qt/APKBUILD @@ -0,0 +1,42 @@ +# Maintainer: Antoine Martin (ayakael) +pkgname=openterface-qt +pkgver=0.1.0 +pkgrel=0 +pkgdesc="Openterface Mini-KVM Host Application" +arch='all' +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' +install="$pkgname.post-install" +builddir="$srcdir"/Openterface_QT-$pkgver +source=" + $pkgname-$pkgver.tar.gz::https://github.com/TechxArtisanStudio/Openterface_QT/archive/v$pkgver.tar.gz + openterfaceQT.desktop + 51-openterface-permissions.rules + " + +prepare() { + default_prepare + mkdir build && cd build + qmake6 .. +} + +build() { + cd build + make +} + +package() { + install -Dm755 "$builddir"/build/openterfaceQT "$pkgdir"/usr/bin/openterfaceQT + install -Dm644 "$srcdir"/51-openterface-permissions.rules "$pkgdir"/etc/udev/rules.d/51-openterface-permissions.rules + install -Dm644 "$srcdir"/openterfaceQT.desktop "$pkgdir"/usr/share/applications/openterfaceQT.desktop + 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 +} +sha512sums=" +2aff3b5b92d5d12d1d748726e2565f5d410611b242b4fac04289b6b057eb1d39b7c2c9bcf613b3b9636a74f17c3fb69ff52177ee889f4d34de7b5b5388e75964 openterface-qt-0.1.0.tar.gz +e39cfa04cbcb59e8ba54110a28eff41854f73fa7c4baeeed5433907c79781946f12bd3a731763caa1d591e664eab0650bdbd2a844954baa12bb96a76a17c6e4f openterfaceQT.desktop +aed752c03acfb5e7d3dc206fd342c1eed6b56353801e54b925e5d3a3e673bf604e0e94424e5e8fddb31c21d3acfbda351f1ea6e8ddc8057f7354ec86a4c74a5e 51-openterface-permissions.rules +" diff --git a/user/openterface-qt/openterface-qt.post-install b/user/openterface-qt/openterface-qt.post-install new file mode 100755 index 0000000..09d267b --- /dev/null +++ b/user/openterface-qt/openterface-qt.post-install @@ -0,0 +1,3 @@ +#!/bin/bash +echo "Setup the dialout permission for Serial port." +echo "Run: sudo usermod -a -G video,plugdev \$USER" diff --git a/user/openterface-qt/openterfaceQT.desktop b/user/openterface-qt/openterfaceQT.desktop new file mode 100644 index 0000000..907976c --- /dev/null +++ b/user/openterface-qt/openterfaceQT.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Version=1.0 +Type=Application +Name=OpenterfaceQT +Exec=/usr/bin/openterfaceQT +Icon=openterfaceQT +Comment=OpenterfaceQT Application +Categories=Utility; From 928ff35f6b4978121e1a3aac2f5f96c90712b5fb Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Tue, 18 Feb 2025 12:59:44 -0500 Subject: [PATCH 010/210] forgejo: use ISSUE_TOKEN instead of FORGEJO_TOKEN --- .forgejo/bin/create_issue.sh | 16 ++++++++-------- .forgejo/workflows/check-backports.yml | 2 +- .forgejo/workflows/check-community.yml | 2 +- .forgejo/workflows/check-testing.yml | 2 +- .forgejo/workflows/check-user.yml | 2 +- 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/.forgejo/bin/create_issue.sh b/.forgejo/bin/create_issue.sh index d162758..6369371 100755 --- a/.forgejo/bin/create_issue.sh +++ b/.forgejo/bin/create_issue.sh @@ -1,7 +1,7 @@ #!/bin/bash # expects: -# env variable FORGEJO_TOKEN +# env variable ISSUE_TOKEN # file out_of_date IFS=' @@ -20,7 +20,7 @@ does_it_exist() { result="$(curl --silent -X 'GET' \ "$GITHUB_SERVER_URL/api/v1/repos/$GITHUB_REPOSITORY/issues?state=open&q=$query&type=issues" \ -H 'accept: application/json' \ - -H "authorization: Basic $FORGEJO_TOKEN" + -H "Authorization: token $ISSUE_TOKEN" )" if [ "$result" == "[]" ]; then @@ -40,7 +40,7 @@ is_it_old() { result="$(curl --silent -X 'GET' \ "$GITHUB_SERVER_URL/api/v1/repos/$GITHUB_REPOSITORY/issues?state=open&q=$query&type=issues" \ -H 'accept: application/json' \ - -H "authorization: Basic $FORGEJO_TOKEN" + -H "authorization: token $ISSUE_TOKEN" )" result_title="$(echo $result | jq -r '.[].title' )" @@ -64,7 +64,7 @@ update_title() { result=$(curl --silent -X 'PATCH' \ "$GITHUB_SERVER_URL/api/v1/repos/$GITHUB_REPOSITORY/issues/$id" \ -H 'accept: application/json' \ - -H "authorization: Basic $FORGEJO_TOKEN" \ + -H "authorization: token $ISSUE_TOKEN" \ -H 'Content-Type: application/json' \ -d "{ \"title\": \"$repo/$name: upgrade to $upstream_version\" @@ -83,7 +83,7 @@ create_issue() { result=$(curl --silent -X 'POST' \ "$GITHUB_SERVER_URL/api/v1/repos/$GITHUB_REPOSITORY/issues" \ -H 'accept: application/json' \ - -H "authorization: Basic $FORGEJO_TOKEN" \ + -H "authorization: token $ISSUE_TOKEN" \ -H 'Content-Type: application/json' \ -d "{ \"title\": \"$repo/$name: upgrade to $upstream_version\", @@ -131,7 +131,7 @@ if [ -f not_in_anitya ]; then result="$(curl --silent -X 'GET' \ "$GITHUB_SERVER_URL/api/v1/repos/$GITHUB_REPOSITORY/issues?state=open&q=$query&type=issues" \ -H 'accept: application/json' \ - -H "authorization: Basic $FORGEJO_TOKEN" + -H "authorization: token $ISSUE_TOKEN" )" if [ "$result" == "[]" ]; then @@ -139,7 +139,7 @@ if [ -f not_in_anitya ]; then result=$(curl --silent -X 'POST' \ "$GITHUB_SERVER_URL/api/v1/repos/$GITHUB_REPOSITORY/issues" \ -H 'accept: application/json' \ - -H "authorization: Basic $FORGEJO_TOKEN" \ + -H "authorization: token $ISSUE_TOKEN" \ -H 'Content-Type: application/json' \ -d "{ \"title\": \"Add missing $repo packages to anitya\", @@ -155,7 +155,7 @@ if [ -f not_in_anitya ]; then result=$(curl --silent -X 'PATCH' \ "$GITHUB_SERVER_URL/api/v1/repos/$GITHUB_REPOSITORY/issues/$result_id" \ -H 'accept: application/json' \ - -H "authorization: Basic $FORGEJO_TOKEN" \ + -H "authorization: token $ISSUE_TOKEN" \ -H 'Content-Type: application/json' \ -d "{ \"body\": \"- [ ] $(sed '{:q;N;s/\n/\\n- [ ] /g;t q}' not_in_anitya)\" diff --git a/.forgejo/workflows/check-backports.yml b/.forgejo/workflows/check-backports.yml index b9f76a6..a25ad4e 100644 --- a/.forgejo/workflows/check-backports.yml +++ b/.forgejo/workflows/check-backports.yml @@ -12,7 +12,7 @@ jobs: image: alpine:latest env: downstream: https://ayakael.net/api/packages/forge/alpine/v3.21/backports - FORGEJO_TOKEN: ${{ secrets.forgejo_token }} + ISSUE_TOKEN: ${{ secrets.issue_token }} LABEL_NUMBER: 1 ALL_PACKAGES: true steps: diff --git a/.forgejo/workflows/check-community.yml b/.forgejo/workflows/check-community.yml index 9385687..b083219 100644 --- a/.forgejo/workflows/check-community.yml +++ b/.forgejo/workflows/check-community.yml @@ -12,7 +12,7 @@ jobs: image: alpine:latest env: downstream: https://dl-cdn.alpinelinux.org/alpine/edge/community - FORGEJO_TOKEN: ${{ secrets.forgejo_token }} + ISSUE_TOKEN: ${{ secrets.issue_token }} LABEL_NUMBER: 4 steps: - name: Environment setup diff --git a/.forgejo/workflows/check-testing.yml b/.forgejo/workflows/check-testing.yml index 2b8f7ed..1c3abe9 100644 --- a/.forgejo/workflows/check-testing.yml +++ b/.forgejo/workflows/check-testing.yml @@ -12,7 +12,7 @@ jobs: image: alpine:latest env: downstream: https://dl-cdn.alpinelinux.org/alpine/edge/testing - FORGEJO_TOKEN: ${{ secrets.forgejo_token }} + ISSUE_TOKEN: ${{ secrets.issue_token }} LABEL_NUMBER: 4 steps: - name: Environment setup diff --git a/.forgejo/workflows/check-user.yml b/.forgejo/workflows/check-user.yml index 09b0f3c..502933e 100644 --- a/.forgejo/workflows/check-user.yml +++ b/.forgejo/workflows/check-user.yml @@ -12,7 +12,7 @@ jobs: image: alpine:latest env: downstream: https://ayakael.net/api/packages/forge/alpine/edge/user - FORGEJO_TOKEN: ${{ secrets.forgejo_token }} + ISSUE_TOKEN: ${{ secrets.issue_token }} LABEL_NUMBER: 4 steps: - name: Environment setup From 3e86f4927c9c18d992c3a773116882a6e3a83850 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Thu, 8 May 2025 21:14:23 -0400 Subject: [PATCH 011/210] ci: upgrade container as first action --- .forgejo/workflows/build-aarch64.yaml | 1 + .forgejo/workflows/build-x86_64.yaml | 1 + .forgejo/workflows/lint.yaml | 4 +++- 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/.forgejo/workflows/build-aarch64.yaml b/.forgejo/workflows/build-aarch64.yaml index 59f90c9..0b6d800 100644 --- a/.forgejo/workflows/build-aarch64.yaml +++ b/.forgejo/workflows/build-aarch64.yaml @@ -15,6 +15,7 @@ jobs: 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 diff --git a/.forgejo/workflows/build-x86_64.yaml b/.forgejo/workflows/build-x86_64.yaml index 298a213..90c516e 100644 --- a/.forgejo/workflows/build-x86_64.yaml +++ b/.forgejo/workflows/build-x86_64.yaml @@ -15,6 +15,7 @@ jobs: 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 diff --git a/.forgejo/workflows/lint.yaml b/.forgejo/workflows/lint.yaml index 3614deb..3b8241f 100644 --- a/.forgejo/workflows/lint.yaml +++ b/.forgejo/workflows/lint.yaml @@ -14,7 +14,9 @@ jobs: CI_MERGE_REQUEST_PROJECT_URL: ${{ github.server_url }}/${{ github.repository }} CI_MERGE_REQUEST_TARGET_BRANCH_NAME: ${{ github.base_ref }} steps: - - run: doas apk add nodejs git + - run: | + doas apk upgrade -a + doas apk add nodejs git - uses: actions/checkout@v4 with: fetch-depth: 500 From a7d9756c6404408afccc01946ed4fce779571978 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Thu, 8 May 2025 21:17:14 -0400 Subject: [PATCH 012/210] ci: fix lint --- .forgejo/workflows/lint.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.forgejo/workflows/lint.yaml b/.forgejo/workflows/lint.yaml index 3b8241f..743cefc 100644 --- a/.forgejo/workflows/lint.yaml +++ b/.forgejo/workflows/lint.yaml @@ -15,8 +15,8 @@ jobs: CI_MERGE_REQUEST_TARGET_BRANCH_NAME: ${{ github.base_ref }} steps: - run: | - doas apk upgrade -a - doas apk add nodejs git + doas apk upgrade -a + doas apk add nodejs git - uses: actions/checkout@v4 with: fetch-depth: 500 From 99107ff63a125a70045fc26c8bcc3230877f586d Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Sun, 11 May 2025 10:59:10 -0400 Subject: [PATCH 013/210] ci: update create_issue to support forgejo 11 --- .forgejo/bin/create_issue.sh | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.forgejo/bin/create_issue.sh b/.forgejo/bin/create_issue.sh index 6369371..995e519 100755 --- a/.forgejo/bin/create_issue.sh +++ b/.forgejo/bin/create_issue.sh @@ -15,10 +15,10 @@ does_it_exist() { repo=$4 query="$repo/$name: upgrade to $upstream_version" - query="$(echo $query | sed 's| |%20|g' | sed 's|:|%3A|g' | sed 's|/|%2F|g' )" + query="%22$(echo $query | sed 's| |%20|g' | sed 's|:|%3A|g' | sed 's|/|%2F|g' )%22" result="$(curl --silent -X 'GET' \ - "$GITHUB_SERVER_URL/api/v1/repos/$GITHUB_REPOSITORY/issues?state=open&q=$query&type=issues" \ + "$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" )" @@ -35,10 +35,10 @@ is_it_old() { repo=$4 query="$repo/$name: upgrade to" - query="$(echo $query | sed 's| |%20|g' | sed 's|:|%3A|g' | sed 's|/|%2F|g' )" + query="%22$(echo $query | sed 's| |%20|g' | sed 's|:|%3A|g' | sed 's|/|%2F|g' )%22" result="$(curl --silent -X 'GET' \ - "$GITHUB_SERVER_URL/api/v1/repos/$GITHUB_REPOSITORY/issues?state=open&q=$query&type=issues" \ + "$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" )" @@ -126,10 +126,10 @@ fi if [ -f not_in_anitya ]; then query="Add missing $repo packages to anitya" - query="$(echo $query | sed 's| |%20|g')" + query="%22$(echo $query | sed 's| |%20|g')%22" result="$(curl --silent -X 'GET' \ - "$GITHUB_SERVER_URL/api/v1/repos/$GITHUB_REPOSITORY/issues?state=open&q=$query&type=issues" \ + "$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" )" From ab7d3dce4ab64569f1bc6ff61f30b0bb7aa40894 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Sun, 11 May 2025 17:16:58 -0400 Subject: [PATCH 014/210] ci: add special exception for electron --- .forgejo/bin/check_ver.sh | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/.forgejo/bin/check_ver.sh b/.forgejo/bin/check_ver.sh index d2720f3..c230a94 100755 --- a/.forgejo/bin/check_ver.sh +++ b/.forgejo/bin/check_ver.sh @@ -26,6 +26,16 @@ for pkg in $owned_by_you; do case $pkg in freetube) upstream_version=$(curl --fail -X GET -sS -H 'Content-Type: application/json' "https://release-monitoring.org/api/v2/packages/?name=$pkg&distribution=Alpine" | jq -r '.items.[].version' | sed "s|-beta||");; dotnet9-sdk|dotnet9-stage0) upstream_version=${upstream_version/-*};; + electron) + upstream_version=$(curl --fail -X GET -sS -H 'Content-Type: application/json' "https://release-monitoring.org/api/v2/projects/?name=electron&distribution=Alpine" | jq -r '.items.[].stable_versions' | jq -r ".[] | match(\"${downstream_version/.*}.*\").string" | head -n 1) + latest_version=$(curl --fail -X GET -sS -H 'Content-Type: application/json' "https://release-monitoring.org/api/v2/packages/?name=electron&distribution=Alpine" | jq -r '.items.[].stable_version' ) + # 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" >> out_of_date + pkg=electron${upstream_version/.*} + fi + ;; esac if [ -z "$upstream_version" ]; then From dd132b86fac01b69348c172f4acffc0aa5b9e9aa Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Thu, 15 May 2025 14:55:25 -0400 Subject: [PATCH 015/210] ci: abstract electron special code --- .forgejo/bin/check_ver.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.forgejo/bin/check_ver.sh b/.forgejo/bin/check_ver.sh index c230a94..015965f 100755 --- a/.forgejo/bin/check_ver.sh +++ b/.forgejo/bin/check_ver.sh @@ -27,13 +27,13 @@ for pkg in $owned_by_you; do freetube) upstream_version=$(curl --fail -X GET -sS -H 'Content-Type: application/json' "https://release-monitoring.org/api/v2/packages/?name=$pkg&distribution=Alpine" | jq -r '.items.[].version' | sed "s|-beta||");; dotnet9-sdk|dotnet9-stage0) upstream_version=${upstream_version/-*};; electron) - upstream_version=$(curl --fail -X GET -sS -H 'Content-Type: application/json' "https://release-monitoring.org/api/v2/projects/?name=electron&distribution=Alpine" | jq -r '.items.[].stable_versions' | jq -r ".[] | match(\"${downstream_version/.*}.*\").string" | head -n 1) - latest_version=$(curl --fail -X GET -sS -H 'Content-Type: application/json' "https://release-monitoring.org/api/v2/packages/?name=electron&distribution=Alpine" | jq -r '.items.[].stable_version' ) + upstream_version=$(curl --fail -X GET -sS -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 -sS -H 'Content-Type: application/json' "https://release-monitoring.org/api/v2/packages/?name=$pkg&distribution=Alpine" | jq -r '.items.[].stable_version' ) # 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" >> out_of_date - pkg=electron${upstream_version/.*} + pkg=$pkg${upstream_version/.*} fi ;; esac From eb38d0963f18711e496c43674e9aa127d12d524f Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 10:05:57 -0400 Subject: [PATCH 016/210] ci: set specific label for user packages --- .forgejo/workflows/check-user.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.forgejo/workflows/check-user.yml b/.forgejo/workflows/check-user.yml index 502933e..ba6ed80 100644 --- a/.forgejo/workflows/check-user.yml +++ b/.forgejo/workflows/check-user.yml @@ -13,7 +13,7 @@ jobs: env: downstream: https://ayakael.net/api/packages/forge/alpine/edge/user ISSUE_TOKEN: ${{ secrets.issue_token }} - LABEL_NUMBER: 4 + LABEL_NUMBER: 12 steps: - name: Environment setup run: apk add grep coreutils gawk curl wget bash nodejs git jq sed From 0bb36c34c9df4bf7a445fff3993fca1f6eca5749 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 11:50:42 -0400 Subject: [PATCH 017/210] ci: add special case for dotnet*sdk and dotnet*stage0 --- .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 015965f..acf9910 100755 --- a/.forgejo/bin/check_ver.sh +++ b/.forgejo/bin/check_ver.sh @@ -25,7 +25,7 @@ for pkg in $owned_by_you; do # special cases case $pkg in freetube) upstream_version=$(curl --fail -X GET -sS -H 'Content-Type: application/json' "https://release-monitoring.org/api/v2/packages/?name=$pkg&distribution=Alpine" | jq -r '.items.[].version' | sed "s|-beta||");; - dotnet9-sdk|dotnet9-stage0) upstream_version=${upstream_version/-*};; + dotnet*sdk|dotnet*stage0) upstream_version=$(curl --fail -X GET -sS -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);; electron) upstream_version=$(curl --fail -X GET -sS -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 -sS -H 'Content-Type: application/json' "https://release-monitoring.org/api/v2/packages/?name=$pkg&distribution=Alpine" | jq -r '.items.[].stable_version' ) From 6306486b826b57e7e836b7098535c15f1afed4cc Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 12:14:00 -0400 Subject: [PATCH 018/210] ci: add special case for arm-trusted-firmware --- .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 acf9910..36da7ef 100755 --- a/.forgejo/bin/check_ver.sh +++ b/.forgejo/bin/check_ver.sh @@ -36,6 +36,7 @@ for pkg in $owned_by_you; do pkg=$pkg${upstream_version/.*} fi ;; + arm-trusted-firmware) upstream_version=$(curl --fail -X GET -sS -H 'Content-Type: application/json' "https://release-monitoring.org/api/project/Alpine/$pkg" | jq -r ".stable_versions.[] | match(\"${downstream_version::-2}.*\").string" | head -n1);; esac if [ -z "$upstream_version" ]; then From a7e99375b3d7b9cb4511daf7674141e34cb62c74 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 12:14:35 -0400 Subject: [PATCH 019/210] ci: add check for main repo --- .forgejo/workflows/check-main.yml | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 .forgejo/workflows/check-main.yml diff --git a/.forgejo/workflows/check-main.yml b/.forgejo/workflows/check-main.yml new file mode 100644 index 0000000..c9561f0 --- /dev/null +++ b/.forgejo/workflows/check-main.yml @@ -0,0 +1,27 @@ +on: + workflow_dispatch: + + schedule: + - cron: '0 5 * * *' + +jobs: + check-main: + name: Check main repo + runs-on: x86_64 + container: + image: alpine:latest + env: + downstream: https://dl-cdn.alpinelinux.org/alpine/edge/main + ISSUE_TOKEN: ${{ secrets.issue_token }} + LABEL_NUMBER: 4 + 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 edf630c6dc84475d090f70c074f27f0716a42b57 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 17:02:39 -0400 Subject: [PATCH 020/210] ci: add ability to track minor and/or fix releases only --- .forgejo/bin/check_ver.sh | 63 +++++++++++++++++++++++++++++++++------ 1 file changed, 54 insertions(+), 9 deletions(-) diff --git a/.forgejo/bin/check_ver.sh b/.forgejo/bin/check_ver.sh index 36da7ef..bc6fc24 100755 --- a/.forgejo/bin/check_ver.sh +++ b/.forgejo/bin/check_ver.sh @@ -1,10 +1,36 @@ #!/bin/bash # expects the following env variables: -# downstream: downstream repo +# downstream: downstream repo +# +# env variables to track minor or bug-fix updates +# minor_only: array of packages that should only track minor releases (seperate by space) +# default: none +# all packages: all +# 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 +# +# optional env variables +# ALL_PACKAGES: when true, ignore is package is owned by me +# repo=${downstream/*\/} +is_semantic() { + local downstream_version_dot=${1//[^.]} + if [[ ${#downstream_version_dot} -eq 2 ]]; then + return 0 + fi + return 1 +} + +echo "Checking $downstream for out of date packages" curl --silent $downstream/x86_64/APKINDEX.tar.gz | tar -O -zx APKINDEX > APKINDEX if [ "$ALL_PACKAGES" == "true" ]; then @@ -18,17 +44,16 @@ fi rm -f out_of_date not_in_anitya for pkg in $owned_by_you; do - upstream_version=$(curl --fail -X GET -sS -H 'Content-Type: application/json' "https://release-monitoring.org/api/v2/packages/?name=$pkg&distribution=Alpine" | jq -r '.items.[].stable_version') downstream_version=$(sed -n "/^P:$pkg$/,/^$/p" APKINDEX | awk -F ':' '{if($1=="V"){print $2}}' | sort -V | tail -n 1) downstream_version=${downstream_version/-*} - # special cases + # special cases where package is not semantic case $pkg in - freetube) upstream_version=$(curl --fail -X GET -sS -H 'Content-Type: application/json' "https://release-monitoring.org/api/v2/packages/?name=$pkg&distribution=Alpine" | jq -r '.items.[].version' | sed "s|-beta||");; - dotnet*sdk|dotnet*stage0) upstream_version=$(curl --fail -X GET -sS -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);; + 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||");; + 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);; electron) - upstream_version=$(curl --fail -X GET -sS -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 -sS -H 'Content-Type: application/json' "https://release-monitoring.org/api/v2/packages/?name=$pkg&distribution=Alpine" | jq -r '.items.[].stable_version' ) + 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' ) # 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" @@ -36,12 +61,32 @@ for pkg in $owned_by_you; do pkg=$pkg${upstream_version/.*} fi ;; - arm-trusted-firmware) upstream_version=$(curl --fail -X GET -sS -H 'Content-Type: application/json' "https://release-monitoring.org/api/project/Alpine/$pkg" | jq -r ".stable_versions.[] | match(\"${downstream_version::-2}.*\").string" | head -n1);; + 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);; + *) + # continues when package version scheme is not semantic, but minor_only or fix_only is set + if [ -n ${minor_only+x} ] || [ -n ${fix_only+x} ]; then + if ! is_semantic $downstream_version; then + echo "$pkg is not semantic, and fix_only or 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 + 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) + fi + ;; esac if [ -z "$upstream_version" ]; then echo "$pkg not in anitya" - echo "$pkg" >> not_in_anitya + # do not track not_in_anitya if either minor_only or fix_only is set + if [ -z ${minor_only+x} ] && [ -z ${fix_only+x} ]; then + 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" continue From 4e133161c75719454468f735542ce899ada47b7a Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 17:03:12 -0400 Subject: [PATCH 021/210] ci: add in brackets release when not edge --- .forgejo/bin/check_ver.sh | 6 ++++-- .forgejo/bin/create_issue.sh | 17 ++++++++++++----- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/.forgejo/bin/check_ver.sh b/.forgejo/bin/check_ver.sh index bc6fc24..58f6194 100755 --- a/.forgejo/bin/check_ver.sh +++ b/.forgejo/bin/check_ver.sh @@ -21,6 +21,8 @@ # repo=${downstream/*\/} +release=${downstream/\/$repo/} +release=${release/*\/} is_semantic() { local downstream_version_dot=${1//[^.]} @@ -91,7 +93,7 @@ for pkg in $owned_by_you; do echo "$pkg higher downstream" continue elif [ "$upstream_version" != "$downstream_version" ]; then - echo "$pkg upstream version $upstream_version does not match downstream version $downstream_version" - echo "$pkg $downstream_version $upstream_version $repo" >> out_of_date + echo "$pkg upstream version $upstream_version does not match downstream version $downstream_version in $release" + echo "$pkg $downstream_version $upstream_version $repo $release" >> out_of_date fi done diff --git a/.forgejo/bin/create_issue.sh b/.forgejo/bin/create_issue.sh index 995e519..17ba339 100755 --- a/.forgejo/bin/create_issue.sh +++ b/.forgejo/bin/create_issue.sh @@ -13,8 +13,10 @@ does_it_exist() { downstream_version=$2 upstream_version=$3 repo=$4 + 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' )%22" result="$(curl --silent -X 'GET' \ @@ -33,8 +35,10 @@ is_it_old() { downstream_version=$2 upstream_version=$3 repo=$4 + 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' )%22" result="$(curl --silent -X 'GET' \ @@ -59,7 +63,8 @@ update_title() { downstream_version=$2 upstream_version=$3 repo=$4 - id=$5 + release=$5 + id=$6 result=$(curl --silent -X 'PATCH' \ "$GITHUB_SERVER_URL/api/v1/repos/$GITHUB_REPOSITORY/issues/$id" \ @@ -79,6 +84,7 @@ create_issue() { downstream_version=$2 upstream_version=$3 repo=$4 + release=$5 result=$(curl --silent -X 'POST' \ "$GITHUB_SERVER_URL/api/v1/repos/$GITHUB_REPOSITORY/issues" \ @@ -105,22 +111,23 @@ if [ -f out_of_date ]; then downstream_version="$(echo $pkg | awk '{print $2}')" upstream_version="$(echo $pkg | awk '{print $3}')" repo="$(echo $pkg | awk '{print $4}')" + release="$(echo $pkg | awk '{print $5}')" - if does_it_exist $name $downstream_version $upstream_version $repo; then + if does_it_exist $name $downstream_version $upstream_version $repo $release; then echo "Issue for $repo/$name already exists" continue fi - id=$(is_it_old $name $downstream_version $upstream_version $repo) + id=$(is_it_old $name $downstream_version $upstream_version $repo $release) if [ "$id" != "0" ] && [ -n "$id" ]; then echo "Issue for $repo/$name needs updating" - update_title $name $downstream_version $upstream_version $repo $id + update_title $name $downstream_version $upstream_version $repo $release $id continue fi echo "Creating issue for $repo/$name" - create_issue $name $downstream_version $upstream_version $repo + create_issue $name $downstream_version $upstream_version $repo $release done fi From 2c9d1bc657ca820746ef2967e54e2a7ffc3b19b6 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 17:04:25 -0400 Subject: [PATCH 022/210] ci: check v3.21 release of community --- .forgejo/workflows/check-community.yml | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/.forgejo/workflows/check-community.yml b/.forgejo/workflows/check-community.yml index b083219..ff30c6a 100644 --- a/.forgejo/workflows/check-community.yml +++ b/.forgejo/workflows/check-community.yml @@ -5,8 +5,8 @@ on: - cron: '0 5 * * *' jobs: - check-community: - name: Check community repo + check-community-edge: + name: Check community(edge) repo runs-on: x86_64 container: image: alpine:latest @@ -25,3 +25,24 @@ jobs: run: ${{ github.workspace }}/.forgejo/bin/check_ver.sh - name: Create issues run: ${{ github.workspace }}/.forgejo/bin/create_issue.sh + check-community-v3.21: + name: Check community(v3.21) repo + runs-on: x86_64 + container: + image: alpine:latest + env: + downstream: https://dl-cdn.alpinelinux.org/alpine/v3.21/community + 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 From d20ee3e612949aa1d1609946f83b7f56288c376d Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 17:09:29 -0400 Subject: [PATCH 023/210] ci: fix semantic context checker --- .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 58f6194..c1c93c5 100755 --- a/.forgejo/bin/check_ver.sh +++ b/.forgejo/bin/check_ver.sh @@ -66,7 +66,7 @@ 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::-2}.*\").string" | head -n1);; *) # continues when package version scheme is not semantic, but minor_only or fix_only is set - if [ -n ${minor_only+x} ] || [ -n ${fix_only+x} ]; then + if [ -n "${minor_only}" ] || [ -n "${fix_only}" ]; then if ! is_semantic $downstream_version; then echo "$pkg is not semantic, and fix_only or minor_only is set" continue From c7fa4babd2dd226d7a7f85fd6f9bbd60aaef9443 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 17:13:22 -0400 Subject: [PATCH 024/210] ci: fix bracket chracters in query when creating issue --- .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 17ba339..6ea3ded 100755 --- a/.forgejo/bin/create_issue.sh +++ b/.forgejo/bin/create_issue.sh @@ -17,7 +17,7 @@ does_it_exist() { 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' )%22" + query="%22$(echo $query | sed 's| |%20|g' | sed 's|:|%3A|g' | sed 's|/|%2F|g' | sed 's|[|%5B|' | sed 's|]|%5D|')%22" result="$(curl --silent -X 'GET' \ "$GITHUB_SERVER_URL/api/v1/repos/$GITHUB_REPOSITORY/issues?state=open&q=$query&type=issues&sort=latest" \ @@ -39,7 +39,7 @@ is_it_old() { 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' )%22" + query="%22$(echo $query | sed 's| |%20|g' | sed 's|:|%3A|g' | sed 's|/|%2F|g' | sed 's|[|%5B|' | sed 's|]|%5D|')%22" result="$(curl --silent -X 'GET' \ "$GITHUB_SERVER_URL/api/v1/repos/$GITHUB_REPOSITORY/issues?state=open&q=$query&type=issues&sort=latest" \ From 3c3b7fe1ae7c950c8e5d127d84f893c8935ed3b0 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 17:16:01 -0400 Subject: [PATCH 025/210] ci: fix unterminated s in sed command --- .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 6ea3ded..ee73250 100755 --- a/.forgejo/bin/create_issue.sh +++ b/.forgejo/bin/create_issue.sh @@ -17,7 +17,7 @@ does_it_exist() { 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|' | sed 's|]|%5D|')%22" + 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" result="$(curl --silent -X 'GET' \ "$GITHUB_SERVER_URL/api/v1/repos/$GITHUB_REPOSITORY/issues?state=open&q=$query&type=issues&sort=latest" \ @@ -39,7 +39,7 @@ is_it_old() { 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|' | sed 's|]|%5D|')%22" + 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" result="$(curl --silent -X 'GET' \ "$GITHUB_SERVER_URL/api/v1/repos/$GITHUB_REPOSITORY/issues?state=open&q=$query&type=issues&sort=latest" \ From 61153cb9899109ee8b6ef50e8f659e698c5214bc Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 17:21:27 -0400 Subject: [PATCH 026/210] ci: attempt bracket release title --- .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 ee73250..0ae2580 100755 --- a/.forgejo/bin/create_issue.sh +++ b/.forgejo/bin/create_issue.sh @@ -16,7 +16,7 @@ does_it_exist() { release=$5 query="$repo/$name: upgrade to $upstream_version" - if [[ "$release" != "edge" ]]; then query="[$release] $query"; fi + 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" result="$(curl --silent -X 'GET' \ @@ -38,7 +38,7 @@ is_it_old() { release=$5 query="$repo/$name: upgrade to" - if [[ "$release" != "edge" ]]; then query="[$release] $query"; fi + 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" result="$(curl --silent -X 'GET' \ From d7538d14bb8ecd6f88645cdc886f117c7c46876e Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 17:23:15 -0400 Subject: [PATCH 027/210] ci: track community v3.22 instead of v3.21 --- .forgejo/workflows/check-community.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.forgejo/workflows/check-community.yml b/.forgejo/workflows/check-community.yml index ff30c6a..1730960 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-v3.21: - name: Check community(v3.21) repo + check-community-v3.22: + name: Check community(v3.22) repo runs-on: x86_64 container: image: alpine:latest env: - downstream: https://dl-cdn.alpinelinux.org/alpine/v3.21/community + downstream: https://dl-cdn.alpinelinux.org/alpine/v3.22/community ISSUE_TOKEN: ${{ secrets.issue_token }} LABEL_NUMBER: 13 fix_only: all From 63dd181c593219d9becde96fb2d85bb7ebdd8947 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 17:25:13 -0400 Subject: [PATCH 028/210] ci: introduce release in title when not edge --- .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 0ae2580..c8e5daa 100755 --- a/.forgejo/bin/create_issue.sh +++ b/.forgejo/bin/create_issue.sh @@ -86,13 +86,16 @@ create_issue() { repo=$4 release=$5 + title="$repo/$name: upgrade to $upstream_version" + if [ "$release" != "edge" ]; then title="[$release] $title"; fi + result=$(curl --silent -X 'POST' \ "$GITHUB_SERVER_URL/api/v1/repos/$GITHUB_REPOSITORY/issues" \ -H 'accept: application/json' \ -H "authorization: token $ISSUE_TOKEN" \ -H 'Content-Type: application/json' \ -d "{ - \"title\": \"$repo/$name: upgrade to $upstream_version\", + \"title\": \"$title\", \"labels\": [ $LABEL_NUMBER ] From 2d19224dcb36ff6e716333eacccf503458ae4c80 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 17:26:55 -0400 Subject: [PATCH 029/210] ci: drop v from $release --- .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 c1c93c5..6f160f4 100755 --- a/.forgejo/bin/check_ver.sh +++ b/.forgejo/bin/check_ver.sh @@ -23,6 +23,7 @@ repo=${downstream/*\/} release=${downstream/\/$repo/} release=${release/*\/} +release=${release/v} is_semantic() { local downstream_version_dot=${1//[^.]} From 474e2ea62d5c54fcf51d6e20984bfdaace753f1b Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 17:44:23 -0400 Subject: [PATCH 030/210] ci: add ability to skip packages --- .forgejo/bin/check_ver.sh | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.forgejo/bin/check_ver.sh b/.forgejo/bin/check_ver.sh index 6f160f4..e931cb6 100755 --- a/.forgejo/bin/check_ver.sh +++ b/.forgejo/bin/check_ver.sh @@ -18,6 +18,7 @@ # # optional env variables # ALL_PACKAGES: when true, ignore is package is owned by me +# skip_package: array of packages to skip # repo=${downstream/*\/} @@ -50,6 +51,12 @@ for pkg in $owned_by_you; do downstream_version=$(sed -n "/^P:$pkg$/,/^$/p" APKINDEX | awk -F ':' '{if($1=="V"){print $2}}' | sort -V | tail -n 1) downstream_version=${downstream_version/-*} + # skip package if in $skip_package array + if [[ "$skip_package" == *$pkg* ]]; then + echo "$pkg skipped" + continue + fi + # special cases where package is not semantic case $pkg in 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||");; From 7caaeeee04473c901cafea2109793064b0bff574 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 17:45:10 -0400 Subject: [PATCH 031/210] ci: skip dotnet9-stage0 and dotnet8-stage0 in v3.22 community check --- .forgejo/workflows/check-community.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.forgejo/workflows/check-community.yml b/.forgejo/workflows/check-community.yml index 1730960..7b8b5a3 100644 --- a/.forgejo/workflows/check-community.yml +++ b/.forgejo/workflows/check-community.yml @@ -35,6 +35,7 @@ jobs: ISSUE_TOKEN: ${{ secrets.issue_token }} LABEL_NUMBER: 13 fix_only: all + skip_package: dotnet9-stage0 dotnet8-stage0 steps: - name: Environment setup run: apk add grep coreutils gawk curl wget bash nodejs git jq sed From 8763a65fdb54407370c18f1e7e01926c91f816b0 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 17:50:49 -0400 Subject: [PATCH 032/210] ci: check main v3.22 --- .forgejo/workflows/check-main.yml | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/.forgejo/workflows/check-main.yml b/.forgejo/workflows/check-main.yml index c9561f0..5c3a1eb 100644 --- a/.forgejo/workflows/check-main.yml +++ b/.forgejo/workflows/check-main.yml @@ -5,8 +5,8 @@ on: - cron: '0 5 * * *' jobs: - check-main: - name: Check main repo + check-main-edge: + name: Check main(edge) repo runs-on: x86_64 container: image: alpine:latest @@ -25,3 +25,24 @@ jobs: 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: x86_64 + container: + image: alpine:latest + env: + downstream: https://dl-cdn.alpinelinux.org/alpine/v3.22/main + ISSUE_TOKEN: ${{ secrets.issue_token }} + LABEL_NUMBER: 4 + 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 1351bcc0fd9235301950a97faaacdbee67660689 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 17:53:05 -0400 Subject: [PATCH 033/210] ci: also check last 2 years of alpine releases on main --- .forgejo/workflows/check-main.yml | 65 ++++++++++++++++++++++++++++++- 1 file changed, 64 insertions(+), 1 deletion(-) diff --git a/.forgejo/workflows/check-main.yml b/.forgejo/workflows/check-main.yml index 5c3a1eb..58e8001 100644 --- a/.forgejo/workflows/check-main.yml +++ b/.forgejo/workflows/check-main.yml @@ -33,7 +33,70 @@ jobs: env: downstream: https://dl-cdn.alpinelinux.org/alpine/v3.22/main ISSUE_TOKEN: ${{ secrets.issue_token }} - LABEL_NUMBER: 4 + 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.21: + name: Check main(3.21) repo + runs-on: x86_64 + container: + image: alpine:latest + env: + downstream: https://dl-cdn.alpinelinux.org/alpine/v3.21/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.20: + name: Check main(3.20) repo + runs-on: x86_64 + container: + image: alpine:latest + env: + downstream: https://dl-cdn.alpinelinux.org/alpine/v3.20/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.19: + name: Check main(3.19) repo + runs-on: x86_64 + 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 From e861045fe30550f054f6601d512b1f38b5489dd5 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 17:54:28 -0400 Subject: [PATCH 034/210] ci: check community workflow title change --- .forgejo/workflows/check-community.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.forgejo/workflows/check-community.yml b/.forgejo/workflows/check-community.yml index 7b8b5a3..8c5f3c5 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-v3.22: - name: Check community(v3.22) repo + check-community-3.22: + name: Check community(3.22) repo runs-on: x86_64 container: image: alpine:latest env: - downstream: https://dl-cdn.alpinelinux.org/alpine/v3.22/community + downstream: https://dl-cdn.alpinelinux.org/alpine/3.22/community ISSUE_TOKEN: ${{ secrets.issue_token }} LABEL_NUMBER: 13 fix_only: all From c7b89349dd8fe3742eec382d464a02252ed2fbc1 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 17:59:21 -0400 Subject: [PATCH 035/210] backports/*: sync with v3.21 --- backports/calibre/APKBUILD | 5 +- backports/caprine/APKBUILD | 12 +- backports/coin/APKBUILD | 10 +- backports/dex/APKBUILD | 6 +- backports/electron/APKBUILD | 59 +++-- backports/electron/README.md | 59 +++++ backports/electron/compiler.patch | 50 +++- .../electron_system-zlib-headers.patch | 18 +- .../electron/electron_unbundle-node.patch | 179 +++++++++----- backports/electron/fix-opus.patch | 7 +- backports/electron/gperf-3.2-fix.patch | 29 +++ backports/electron/pipewire-1.4.patch | 23 ++ backports/element-desktop/APKBUILD | 171 +++++++++++++ .../element-desktop/add-alpine-targets.patch | 52 ++++ backports/element-desktop/element-desktop | 3 + .../element-desktop/no-source-maps.patch.web | 18 ++ .../element-desktop/tasje-no-fuses.patch | 52 ++++ backports/element-desktop/tasje-one-hak.patch | 20 ++ .../use-system-fonts.patch.web | 79 ++++++ .../element-desktop/use-system-headers.patch | 15 ++ backports/freecad/APKBUILD | 80 +++++++ backports/freecad/no-execinfo.patch | 54 +++++ backports/freetube/APKBUILD | 6 +- backports/gn/APKBUILD | 59 +++++ backports/libmedc/APKBUILD | 43 ++++ backports/libmedc/cmake-config-dir.patch | 11 + backports/libmedc/hdf5.patch | 94 ++++++++ backports/nb/APKBUILD | 4 +- .../pnpm/0001-no-check-for-updates.patch | 14 ++ backports/pnpm/0002-no-self-update.patch | 14 ++ backports/pnpm/APKBUILD | 73 ++++++ backports/py3-apsw/APKBUILD | 4 +- backports/py3-colored/APKBUILD | 10 +- backports/py3-levenshtein/APKBUILD | 11 +- backports/py3-limits/APKBUILD | 15 +- .../py3-limits/our-std-is-good-enough.patch | 13 +- .../tests-drop-etcd3-and-k-argument.patch | 24 ++ backports/py3-pathvalidate/APKBUILD | 4 +- backports/rapidfuzz/APKBUILD | 6 +- backports/signal-desktop/APKBUILD | 168 +++++++------ backports/signal-desktop/README.md | 61 +++++ .../ringrtc-webrtc-renamed.patch | 34 +-- backports/signal-desktop/signal-desktop.sh | 6 + .../signal-disable-updates.patch | 4 +- ...signal-do-not-package-sqlcipher-deps.patch | 12 + .../signal-rollback-locale-changes.patch | 225 ++++++++++++++++++ .../signal-show-window-please.patch | 6 +- .../signal-desktop/signal-update-links.patch | 8 +- .../signal-use-system-sqlcipher.patch | 40 +--- .../signal-desktop/webrtc-compiler.patch | 72 +++++- backports/signal-desktop/webrtc-gcc13.patch | 11 + .../signal-desktop/webrtc-pipewire-1.4.patch | 23 ++ .../webrtc-rollback-3rdparty-build-gn.patch | 31 +++ .../signal-desktop/webrtc-rollback-red.patch | 136 +++++++++++ backports/soqt/APKBUILD | 13 +- backports/swig3/APKBUILD | 46 ++++ ...de-for-constant-expressions-containi.patch | 191 +++++++++++++++ 57 files changed, 2185 insertions(+), 308 deletions(-) create mode 100644 backports/electron/README.md create mode 100644 backports/electron/gperf-3.2-fix.patch create mode 100644 backports/electron/pipewire-1.4.patch create mode 100644 backports/element-desktop/APKBUILD create mode 100644 backports/element-desktop/add-alpine-targets.patch create mode 100755 backports/element-desktop/element-desktop create mode 100644 backports/element-desktop/no-source-maps.patch.web create mode 100644 backports/element-desktop/tasje-no-fuses.patch create mode 100644 backports/element-desktop/tasje-one-hak.patch create mode 100644 backports/element-desktop/use-system-fonts.patch.web create mode 100644 backports/element-desktop/use-system-headers.patch create mode 100644 backports/freecad/APKBUILD create mode 100644 backports/freecad/no-execinfo.patch create mode 100644 backports/gn/APKBUILD create mode 100644 backports/libmedc/APKBUILD create mode 100644 backports/libmedc/cmake-config-dir.patch create mode 100644 backports/libmedc/hdf5.patch create mode 100644 backports/pnpm/0001-no-check-for-updates.patch create mode 100644 backports/pnpm/0002-no-self-update.patch create mode 100644 backports/pnpm/APKBUILD create mode 100644 backports/py3-limits/tests-drop-etcd3-and-k-argument.patch create mode 100644 backports/signal-desktop/README.md create mode 100755 backports/signal-desktop/signal-desktop.sh create mode 100644 backports/signal-desktop/signal-do-not-package-sqlcipher-deps.patch create mode 100644 backports/signal-desktop/signal-rollback-locale-changes.patch create mode 100644 backports/signal-desktop/webrtc-pipewire-1.4.patch create mode 100644 backports/signal-desktop/webrtc-rollback-3rdparty-build-gn.patch create mode 100644 backports/signal-desktop/webrtc-rollback-red.patch create mode 100644 backports/swig3/APKBUILD create mode 100644 backports/swig3/swig-3.0.12-Fix-generated-code-for-constant-expressions-containi.patch diff --git a/backports/calibre/APKBUILD b/backports/calibre/APKBUILD index 64a7a04..3cf2747 100644 --- a/backports/calibre/APKBUILD +++ b/backports/calibre/APKBUILD @@ -1,6 +1,6 @@ # Maintainer: Cowington Post pkgname=calibre -pkgver=7.21.0 +pkgver=7.26.0 pkgrel=0 pkgdesc="Ebook management application" # qt6-webengine @@ -41,6 +41,7 @@ depends=" qt6-qtimageformats qt6-qtsvg qt6-qtwebengine + qt6-qtbase-dev udisks2 " makedepends=" @@ -111,6 +112,6 @@ package() { } sha512sums=" -0c2ee610833df83219c0c33b09e1374a8262f1630ccd48e3c4725c92922a3ac5d102ad83fc213457fb9de3efa4f5a2c98ff6dff039828e1661085a1054d7f631 calibre-7.21.0.tar.xz +e477a2dcdd1c52074bd5c0df5d79b2b609d76bf9e1cb5e3d32f79a89d6e0e2798cb980e2cf74e126fb2856273a14b0e2e92b39ffca74461569233c0a87968bfe calibre-7.26.0.tar.xz eb8e7ce40ff8b8daf6e7e55a5dff8ec4dff06c45744266bb48b3194e92ab1196bc91468203e3c2ca1e5144166a7d6be90e6cf0253513e761b56a4c85be4c2c76 0001-calibre-no-update.patch " diff --git a/backports/caprine/APKBUILD b/backports/caprine/APKBUILD index 9a73d39..41f1806 100644 --- a/backports/caprine/APKBUILD +++ b/backports/caprine/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Antoine Martin (ayakael) # Maintainer: Antoine Martin (ayakael) pkgname=caprine -pkgver=2.60.1 +pkgver=2.60.3 pkgrel=2 pkgdesc="Elegant Facebook Messenger desktop app" arch="x86_64 aarch64" # blocked by electron @@ -17,12 +17,10 @@ source=" " build() { - npm install --ignore-scripts - npx --yes patch-package + npm ci --ignore-scripts + npx patch-package npx tsc - rm -r node_modules - npm install --ignore-scripts --production - npx --yes patch-package + npm prune --ignore-scripts --omit=dev } package() { @@ -59,7 +57,7 @@ package() { -or -name "test" -prune -exec rm -r '{}' \; } sha512sums=" -0df7f233c91f5a044dcffde94b976c6ad71e6d355518615c48cd825a249c01d63f455de31ece69193a66ca0fd8157506f9b88088da1bd47fc75e9d3800784ed0 caprine-2.60.1.tar.gz +edf6452294b3c661befd9811c5836da33311171d587cb9a5939ac11a0c1e2a7ebbc4f2a8d81e02c1db1a2d814ac1aa7bbdadca9e21892cc8d7f7e9c23dc2e221 caprine-2.60.3.tar.gz a469e3bea24926119e51642b777ef794c5fa65421107903f967c36d81bbb1adb3d52469ce3a3301b2c890f1aa53ab989ded22a7c6e811fb8cf0a582dbd835e19 caprine.desktop 3ad8994c1a0417e73d622587769e527b4236a32c1a89442ff76413b75b4392d667c9e2908979b453e5926e54db6d94b31625340c5a94e84e91ea77f56feae778 caprine.sh " diff --git a/backports/coin/APKBUILD b/backports/coin/APKBUILD index 723ea30..e6068c3 100644 --- a/backports/coin/APKBUILD +++ b/backports/coin/APKBUILD @@ -1,15 +1,15 @@ # Contributor: Aiden Grossman -# Maintainer: +# Maintainer: Antoine Martin (ayakael) pkgname=coin -pkgver=4.0.0 -pkgrel=7 +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/Coin-$pkgver/coin-$pkgver-src.tar.gz +source="https://github.com/coin3d/coin/releases/download/v$pkgver/coin-$pkgver-src.tar.gz TestSuitePatch.patch " builddir="$srcdir/coin" @@ -31,6 +31,6 @@ package() { } sha512sums=" -e036276a243bfe252569cee1b67d38b8633fcf35bdf4e366a92ca67e23799d54d91fe272c23b383c451d330cee284809f28f237857493948149e0da1ebd64fae coin-4.0.0-src.tar.gz +b661bf2124b0de1b46e76a6699b0975abb3aed4dc9019bf32531c535179dc84a90fe4e19def6f6cda7b175470636040d0e58812d532198cf207296d37c539915 coin-4.0.3-src.tar.gz aab464244b13371badf0878e5bfbcce859a42756cf8c7657d1480318aa291d296eac2741219c346bae056f761c5f46857f8fd1ec1c4129f86bc10236d3869deb TestSuitePatch.patch " diff --git a/backports/dex/APKBUILD b/backports/dex/APKBUILD index e777d8d..2b9e1e0 100644 --- a/backports/dex/APKBUILD +++ b/backports/dex/APKBUILD @@ -1,8 +1,8 @@ # Contributor: Anjandev Momi # Maintainer: Anjandev Momi pkgname=dex -pkgver=0.9.0 -pkgrel=1 +pkgver=0.10.1 +pkgrel=0 pkgdesc="program to generate and execute DesktopEntry files of the Application type" url="https://github.com/jceb/dex" arch="all" @@ -22,5 +22,5 @@ package() { } sha512sums=" -d68f5482cb0948f27a724437ddfc6de9a0f502bfd0d5c60c76fb85dda3c30e4c432013e530f6a91138c9ac9ff36b3824cd5e382e9d29bb9fb2ec2b9de4133094 dex-0.9.0.tar.gz +4832e60416f07b90d4f4d03d6493322ccd44a73270edf289d80136587859d137cf39db12fc5cf38d3bdfa46aae3a4d1353c7776e702240b560a287190bdc2b57 dex-0.10.1.tar.gz " diff --git a/backports/electron/APKBUILD b/backports/electron/APKBUILD index 72d6e87..424b602 100644 --- a/backports/electron/APKBUILD +++ b/backports/electron/APKBUILD @@ -1,11 +1,11 @@ # Contributor: lauren n. liberda # Maintainer: Antoine Martin (ayakael) pkgname=electron -pkgver=33.2.1 +pkgver=35.3.0 _gittag=v"${pkgver/_beta/-beta.}" pkgrel=0 -_chromium=130.0.6723.127 -_copium_tag=129.1 +_chromium=134.0.6998.205 +_copium_tag=134.0 _depot_tools=495b23b39aaba2ca3b55dd27cadc523f1cb17ee6 pkgdesc="Electron cross-platform desktop toolkit" url="https://github.com/electron/electron" @@ -17,7 +17,6 @@ makedepends=" ada-dev alsa-lib-dev aom-dev - base64-dev bash brotli-dev bsd-compat-headers @@ -59,7 +58,6 @@ makedepends=" libbsd-dev libcap-dev libdrm-dev - libevent-dev libexif-dev libgcrypt-dev libjpeg-turbo-dev @@ -77,6 +75,7 @@ makedepends=" libxslt-dev linux-headers lld + llhttp-dev llvm$_llvmver mesa-dev minizip-dev @@ -96,12 +95,12 @@ makedepends=" py3-setuptools py3-six python3 - qt5-qtbase-dev re2-dev rsync rust rust-bindgen samurai + simdutf-dev snappy-dev speex-dev spirv-tools-dev @@ -129,7 +128,6 @@ source=" musl-auxv.patch musl-sandbox.patch musl-tid-caching.patch - musl-v8-monotonic-pthread-cont_timedwait.patch no-execinfo.patch no-mallinfo.patch no-res-ninit-nclose.patch @@ -137,7 +135,6 @@ source=" partalloc-no-tagging-arm64.patch pvalloc.patch temp-failure-retry.patch - yes-musl.patch electron_icon.patch electron_python-jinja-3.10.patch @@ -150,17 +147,18 @@ source=" electron-launcher.sh " _copium_patches=" - cr124-iwyu-sys-select-dawn-terminal.patch - cr126-aarch64-musl-unsupported-relocation.patch - cr129-ffmpeg-no-noh264parse.patch - cr129-musl-metricts-imports.patch + 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 " +# Avoid conflicting providers +sonameprefix="$pkgname:" # tests are todo for some base checks options="!check net suid" builddir="$srcdir/electron-$_gittag-$_chromium" -export PATH="$PATH:/usr/lib/qt5/bin" - export CC=clang-$_llvmver export CXX=clang++-$_llvmver @@ -312,6 +310,7 @@ prepare() { # libaom - https://aomedia.googlesource.com/aom/+/706ee36dcc82%5E%21/ # but watch this space: https://aomedia-review.googlesource.com/c/aom/+/188606 # jsoncpp, re2, snappy, swiftshader-*, woff2 - requires use_custom_libcxx=false + # icu 76 does not build - https://bugs.gentoo.org/943216 local chromium_use_system=" brotli crc32c @@ -322,9 +321,7 @@ prepare() { fontconfig freetype harfbuzz-ng - icu libdrm - libevent libjpeg libsecret libusb @@ -333,6 +330,7 @@ prepare() { libxslt openh264 opus + simdutf zlib zstd " @@ -352,10 +350,9 @@ prepare() { -delete done - # llhttp - 9.x needed, 8.x in repo (2023-12-17) # ada - needs use_custom_libcxx=false local node_use_system=" - base64 + llhttp brotli cares corepack @@ -432,10 +429,14 @@ _configure() { local symbol_level=0 local vaapi=true + # added_rust_stdlib_libs and removed_rust_stdlib_libs workaround change in Rust 1.86, + # feel free to remove after upgrading rust + # shellcheck disable=2089 local gn_config=" import(\"//electron/build/args/release.gn\") + added_rust_stdlib_libs=[\"adler\"] blink_enable_generated_code_formatting=false cc_wrapper=\"$cc_wrapper\" chrome_pgo_phase=0 @@ -458,9 +459,11 @@ _configure() { is_clang=true is_component_ffmpeg=true is_debug=false + is_musl=true is_official_build=true link_pulseaudio=true proprietary_codecs=true + removed_rust_stdlib_libs=[\"adler2\"] rtc_link_pipewire=true rtc_use_pipewire=true rustc_version=\"yes\" @@ -482,12 +485,11 @@ _configure() { skia_use_dawn=false use_dawn=false use_system_ada=false - use_system_base64=true use_system_cares=true use_system_histogram=true use_system_lcms2=true use_system_libffi=true - use_system_llhttp=false + use_system_llhttp=true use_system_nghttp2=true " @@ -497,14 +499,13 @@ _configure() { } build() { - export PATH="$PATH:/usr/lib/qt5/bin" + export ELECTRON_OUT_DIR="$builddir"/out/Release/ ninja -C out/Release \ copy_node_headers \ electron_dist_zip \ node_gypi_headers \ node_version_header - } package() { @@ -544,21 +545,20 @@ lang() { } sha512sums=" -e2df4454f4178af859c13aadee4ea04a5b6aa202972cad625e54bc68f5b8c25e098e50d428ec9c1886c37ccf49aaaedb4c5f02fc8bdd498314ba216901932185 electron-v33.2.1-130.0.6723.127.tar.zst -6138b3dbf3903c78f4ca1ed5a6c3c3c485471ded31976010484ce8893d03953df2b8f066a4fe84bbde5ae7ef9bbff664ef917e247b2e95dd471de40f2774d7d0 copium-129.1.tar.gz +7dd33e03f30b753a52a8801bd8aaffbd4229280df0c6754e2fadbf6d22e7f89f9bb1db0b30de0c403e9f61a09b1989e9b810d2cb7e8a301724132c20540618ef electron-v35.3.0-134.0.6998.205.tar.zst +c1857b5d6975650f915f3db552666f521822b857e39958ccfb54129f3878f272deaafc3dd446bc8441a5e84f075791feeeb62841b74bb555d8c546bfe231d164 copium-134.0.tar.gz 29bb685e03356a77df5fd347cdf55194cc8b3265c421cc76e54d64edefc329dbcb052deb26b22e8f587ce68456876c071de1b7d258dd0fcc6ee66c875ec4a020 chromium-revert-drop-of-system-java.patch -53b7cdee8f7bfb4c9371cb385c473e34ed3d8ac7efaa43c0af061107560be30d8747b07fb0b16c01079b8c770f2c721bb5a8081313b7c126856ea4078a74da2a compiler.patch +d9cc4a37a0311d23ae315a8d8124f8dbf60db8cc4a3943818638174b20387f1d770d00871f6608957b246ad956abca43c22ea0b072724287f2947e1909e47323 compiler.patch 4057cc78f10bfd64092bc35a373869abb1d68b880cdbca70422f39ffd78a929c19c7728d4d4c40709aaba25581148a93ae5343e724849fd35323062ed68753fa disable-dns_config_service.patch 2470904846e3adde2c9506f9e78220daca0932320b628dd3d427bf2b7c17a8f7880cb97e787b046c28de7aca642e1a8d30824d6049905976da77e7473baa64da disable-failing-tests.patch 5fc5c012c1db6cf1ba82f38c6f3f4f5ca3a209e47ac708a74de379b018e0649b7694877c9571ef79002dde875ffc07b458a3355425f1c01867f362c66c2bc1bf fc-cache-version.patch -b24563e9a738c00fce7ff2fbdee3d7c024d9125d7c74d9ab90af6bdb16f7ec8419f2c8aa78c0640f6d5d81c17dc2c673a194401d354f466749672729b48ed068 fix-opus.patch +f7fe8a8e5eee17310fb4c3e5de621b4b89ea0567f75033c65be970950cca62b50c5fbd004735e4ad39bdb2e1638b3b73ea614203d323f8181ae18c71edf302a0 fix-opus.patch c63dee5044353eb306a39ca1526158c0f003ab310ecb03d1c368dc2a979454590c84b8d3c15484517d5e66bb8add9b231da9abbadf2e50850abd72ac1345c4ab fstatat-32bit.patch 33ee60863cc438ef57ffef92ba4cf67a856a5ffc16138bce241bcf87e47b15154aa86918e793c26f7ec4dc62a445257ad5673ed7001daf22c4043cf6cc57da7f gdbinit.patch 36a764fa73443b47d38050b52dbe6ad2fa8d67201ff4ccdbad13b52308ef165ca046aac6f9609fe35890a6485f0f3e672e78cc41e3e44f3cdc7f145e540524e8 generic-sensor-include.patch 99bcc7dd485b404a90c606a96addab1d900852128d44fb8cea8acc7303189ef87c89a7b0e749fd0e10c5ef5f6bf1fadeb5c16a34503cab6a59938ce2653d887e musl-auxv.patch 51f1959bd622af26a1c3a1f4b0ad9a5bfa461057aa4cf9960c568dddf8ac47d55989c277f5d5ab5db040a04c54925a531af7a1cc767559218b408eaa6bdd7577 musl-sandbox.patch e7163ac5810ac85366cef2447412287c856e3d67c6b77f219a6e5a418b1965b98e449c409424ad0704a5bded9355dd0aec3dc4585918ce5a2ab36c079707afe2 musl-tid-caching.patch -92eb002718026611f5542362ad69b67f0a398ff71b3fca5c05d55cb5c6f9f29334e5e127bb4860cfaa3fba0f0d4c901e2b98808217e7dc02e254a64a5c9521aa musl-v8-monotonic-pthread-cont_timedwait.patch a250cff50d282b02ce0f28880d0a2b4fb8e7df51bc072bfeeddc561c29a7c76453dbcbc7b17b82966a7b30a31409d2555720d1dcf963e1b3fb8a2a06a6abcf46 no-execinfo.patch 0b41aeb6b212f9c3f61aa0a8d3085c9e865a2e68f3270ceec2376aab67f337ac46eaea7da36d3fd7219e2a1cb731b7aa2d3fb619a374d2b7653976b9f4f384bb no-mallinfo.patch e4c4e5bc6f828f9c883dd418c0ba01887949c29c311f76206a1ec29f620b0c0ba0452949dc2778a9c46ea066405857536964a36436a68eecf7da7952736333cf no-res-ninit-nclose.patch @@ -566,12 +566,11 @@ e4c4e5bc6f828f9c883dd418c0ba01887949c29c311f76206a1ec29f620b0c0ba0452949dc2778a9 f2b08538ff57c50b3772a07ca91845f9d45f4a5112f608b6192d4fb5d7be48f478c0c36194d95ab7bbf933e0278e5c6d578619d8643895cdc40386eebc5b975f partalloc-no-tagging-arm64.patch 03f829a2da633533ef3fd0f287f5ec602d936a97a98b53cd2415553c2537ae9d571f35397ca7c9fb3f4b0806c300e3b189569f8d979ca132e1a2a4dae7206396 pvalloc.patch e48693e6b7aeebf69a5acbf80d9a35defe4c23835121dfeb58b051ac7c527e758a41004f4d193274fe1b01c0bfb1dbc77b09cb6a404a3fdee507a2918afb0edb temp-failure-retry.patch -914ccf649d7771f19f209ab97f99c481aebc6f66174d68e8b539f6ad4a70bc8cb0fae2df6dadbf0415958ffb3574c420fe029079dcce45f5e5add4db2e903566 yes-musl.patch 465107da7818b237e3c144a318ab80c3c9343b51ed38b8971ef204692d13346929becbe94cefad4c153788d3a200642143584d5ca070f6304e768ba2139c19ec electron_icon.patch e05180199ee1d559e4e577cedd3e589844ecf40d98a86321bf1bea5607b02eeb5feb486deddae40e1005b644550331f6b8500177aa7e79bcb3750d3c1ceb76c3 electron_python-jinja-3.10.patch 2aa340854316f1284217c0ca17cbf44953684ad6c7da90815117df30928612eb9fb9ffb734b948dfc309cd25d1a67cd57f77aac2d052a3dd9aca07a3a58cbb30 electron_webpack-hash.patch -57aa81d46b9cc931092d9d9b3cb4a9859f86c183a236bc5cca6abbaeca86b82bf1b537dd9cb3412114fa4e86087c0022ee3f7e88de974d29b309e9d1714df7a5 electron_unbundle-node.patch -1b35edcf0b41e39e20c4d64dbb978bcaab8036f2fe839930709b269c50cb1321458a15b4d0013246f9e03f58f250a1e3a57ea910db1aa0adbd602a6a11ad33b9 electron_system-zlib-headers.patch +1ab45199c5eb896f57407876e9ca435af3ed63a65136f97526f6a07c3a2db223e646ea365630b0eda441ea88dbb0c07ab00b77de25edce07453f038c5339203d electron_unbundle-node.patch +4d9287d4cdfe27fbfb7be3d4b26c0c40edbd6a0c3ff926d60f2093ca09c15bcb58e20c2ccc8c0606aafd66c6d25a54225bc329cb056d8c5b297db4c6d0e768e6 electron_system-zlib-headers.patch e8ea87c547546011c4c8fc2de30e4f443b85cd4cfcff92808e2521d2f9ada03feefb8e1b0cf0f6b460919c146e56ef8d5ad4bb5e2461cc5247c30d92eb4d068e default.conf 191559fc7aa1ea0353c6fb0cc321ee1d5803a0e44848c8be941cfab96277b0de6a59962d373e2a2a1686c8f9be2bcf2d2f33706759a339a959e297d3f7fda463 electron.desktop 5f7ba5ad005f196facec1c0f26108356b64cafb1e5cfa462ff714a33b8a4c757ac00bfcb080da09eb5b65032f8eb245d9676a61ec554515d125ed63912708648 electron-launcher.sh diff --git a/backports/electron/README.md b/backports/electron/README.md new file mode 100644 index 0000000..2a12409 --- /dev/null +++ b/backports/electron/README.md @@ -0,0 +1,59 @@ +# electron + +This is the `electron` package for Alpine Linux. + +Please report any issues [using Gitlab](https://gitlab.alpinelinux.org/alpine/aports/-/issues/new) and tag @ayakael + +## Building electron + +Electron is an application framework based on `chromium`. Just like `chromium`, +and any Google application, the build process is a form of [hostile +architecture] (https://en.wikipedia.org/wiki/Hostile_architecture) It's quite +literally chromium with patches applied on top for the most part. The build +process applies a series of git patches against `chromium` from directories +with a script. + +Its source code isn't available as a downloadable tarball. It is only fetchable +using Google's `gclient` available in `depot_tools` with a reimplemented +version in the `teapot` package. By executing, `abuild snapshot`, the tarball +can be fetched and packaged, as long as `gclient` is in your path. For ease of +maintenance, a workflow on [Ayakael's Forge](https://ayakael.net/mirrors/electron) +automatically fetches and packages the source code on new releases and makes it +available in a [generic Forgejo repository](https://ayakael.net/mirrors/-/packages/generic/electron). + +## Electron maintenance cycle + +Security / bug fixes land from upstream land randomly, but chromium security fixes land +basically weekly around Tuesday in `America/Los_Angeles`. Minor relases only require +an upgrade to the `electron` packages. It is advisable to follow chromium weekly +security fixes, although following `electron` minor releases is fine. + +Major version upgrades require a more thorough approach. For one, most changes +can be backported from `chromium` APKBUILD by diffing the previous version +packaged with `electron` with the current (set with `_chromium` var). You also +need to rebuild all `electron` apps, with patches sometimes necessary when +upstream bumps to a new `nodejs` major verion. Major electron releases are +every two `chromium` major releases, with [dates known well ahead] +(https://chromiumdash.appspot.com/schedule) with a few major releases of +`electron` [officially supported at a time](https://www.electronjs.org/docs/latest/tutorial/electron-timelines). + +Steps, in a nutshell: + +1. Set `pkgver` to up-to-date version + +2. Optional: fetch source-code using `abuild snapshot`, making sure `gclient` +is in your path + +3. Update source checksum using `abuild checksum` + +4. If major update, backport changes from `chromium` aport and bump `pkgrel` +for all electron-based applications. + +## Why is this package still in testing + +[Work is under way](https://gitlab.alpinelinux.org/alpine/aports/-/issues/15760) +to make this aport ready for `community` + +Until that happens, this package is also kept-to-date against the latest +release of Alpine Linux in [Ayakael's Forge](https://ayakael.net/forge/-/packages/alpine/signal-desktop) +This is true of all Ayakael's packages still in `testing`. diff --git a/backports/electron/compiler.patch b/backports/electron/compiler.patch index cce8a23..df41f2c 100644 --- a/backports/electron/compiler.patch +++ b/backports/electron/compiler.patch @@ -1,6 +1,6 @@ --- ./build/config/compiler/BUILD.gn.orig +++ ./build/config/compiler/BUILD.gn -@@ -568,24 +568,6 @@ +@@ -591,24 +591,6 @@ } } @@ -25,7 +25,7 @@ # TODO(crbug.com/40192287): Investigate why/if this should be needed. if (is_win) { cflags += [ "/clang:-ffp-contract=off" ] -@@ -998,17 +980,6 @@ +@@ -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", @@ -40,13 +40,24 @@ - # 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) { -@@ -1175,8 +1146,8 @@ +@@ -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 @@ + } } else if (current_cpu == "arm") { - if (is_clang && !is_android && !is_nacl && - !(is_chromeos_lacros && is_chromeos_device)) { + if (is_clang && !is_android && !is_nacl && !is_chromeos_device) { - cflags += [ "--target=arm-linux-gnueabihf" ] - ldflags += [ "--target=arm-linux-gnueabihf" ] + cflags += [ "--target=armv7-alpine-linux-musleabihf" ] @@ -54,10 +65,10 @@ } if (!is_nacl) { cflags += [ -@@ -1190,8 +1161,8 @@ +@@ -1257,8 +1224,8 @@ } else if (current_cpu == "arm64") { if (is_clang && !is_android && !is_nacl && !is_fuchsia && - !(is_chromeos_lacros && is_chromeos_device)) { + !is_chromeos_device) { - cflags += [ "--target=aarch64-linux-gnu" ] - ldflags += [ "--target=aarch64-linux-gnu" ] + cflags += [ "--target=aarch64-alpine-linux-musl" ] @@ -65,7 +76,7 @@ } } else if (current_cpu == "mipsel" && !is_nacl) { ldflags += [ "-Wl,--hash-style=sysv" ] -@@ -1982,7 +1953,7 @@ +@@ -2086,7 +2053,7 @@ defines = [ "_HAS_NODISCARD" ] } } else { @@ -76,41 +87,46 @@ cflags += [ "-Wextra" ] --- ./build/config/rust.gni.orig +++ ./build/config/rust.gni -@@ -185,11 +185,11 @@ +@@ -198,13 +198,13 @@ 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") { - float_suffix = "hf" -@@ -198,15 +198,15 @@ +@@ -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 + 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 { # 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 @@ @@ -133,3 +149,13 @@ } 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/electron_system-zlib-headers.patch b/backports/electron/electron_system-zlib-headers.patch index 0dc5c8e..644f5e7 100644 --- a/backports/electron/electron_system-zlib-headers.patch +++ b/backports/electron/electron_system-zlib-headers.patch @@ -1,10 +1,12 @@ ---- ./electron/BUILD.gn.orig -+++ ./electron/BUILD.gn -@@ -1565,7 +1565,6 @@ - public_deps = header_groups + [ - ":node_gypi_headers", - ":node_version_header", -- ":zlib_headers", - ] +diff --git a/electron/BUILD.gn.orig b/electron/BUILD.gn +index 235c7abd3e8..088c24ac45e 100644 +--- a/electron/BUILD.gn.orig ++++ b/electron/BUILD.gn +@@ -1569,7 +1569,6 @@ group("copy_node_headers") { + ":generate_node_headers", + ":node_gypi_headers", + ":node_version_header", +- ":zlib_headers", + ] } diff --git a/backports/electron/electron_unbundle-node.patch b/backports/electron/electron_unbundle-node.patch index d69f5ae..8392a85 100644 --- a/backports/electron/electron_unbundle-node.patch +++ b/backports/electron/electron_unbundle-node.patch @@ -1,69 +1,122 @@ ---- ./third_party/electron_node/BUILD.gn.orig -+++ ./third_party/electron_node/BUILD.gn -@@ -40,6 +40,8 @@ - node_release_urlbase = "" - - # Allows downstream packagers (eg. Linux distributions) to build Electron against system shared libraries. -+ use_system_ada = false -+ use_system_base64 = false - use_system_cares = false - use_system_nghttp2 = false - use_system_llhttp = false -@@ -48,6 +50,16 @@ - - if (is_linux) { - import("//build/config/linux/pkg_config.gni") -+ if (use_system_ada) { -+ config("ada") { -+ libs = [ "ada" ] -+ } -+ } -+ if (use_system_base64) { -+ pkg_config("base64") { -+ packages = [ "base64" ] -+ } -+ } - if (use_system_cares) { - pkg_config("cares") { - packages = [ "libcares" ] -@@ -258,8 +270,6 @@ - deps = [ - ":node_js2c_exec", - "deps/googletest:gtest", -- "deps/ada", -- "deps/base64", - "deps/simdutf", - "deps/uvwasi", - "//third_party/zlib", -@@ -267,6 +277,16 @@ - "//third_party/brotli:enc", - "//v8:v8_libplatform", - ] -+ if (use_system_ada) { -+ configs += [ ":ada" ] -+ } else { -+ deps += [ "deps/ada" ] -+ } -+ if (use_system_base64) { -+ configs += [ ":base64" ] -+ } else { -+ deps += [ "deps/base64" ] -+ } - if (use_system_cares) { - configs += [ ":cares" ] - } else { -diff --git a/./electron/script/generate-config-gypi.py.orig b/./electron/script/generate-config-gypi.py -index b41cd7eb450..bc4098debb5 100755 ---- a/./electron/script/generate-config-gypi.py.orig -+++ b/./electron/script/generate-config-gypi.py -@@ -62,6 +62,11 @@ def main(target_file, target_cpu): - # Used by certain versions of node-gyp. - v['build_v8_with_gn'] = 'false' - +diff --git a/electron/script/generate-config-gypi.py.orig b/electron/script/generate-config-gypi.py +index 58c973b..c215d90 100755 +--- a/electron/script/generate-config-gypi.py.orig ++++ b/electron/script/generate-config-gypi.py +@@ -64,6 +64,11 @@ def main(target_file, target_cpu): + # in common.gypi + if 'clang' in v: + del v['clang'] ++ + with open(os.path.join(NODE_DIR, 'use_system.txt')) as f: + for dep in f.read().strip().split(' '): + if v.get(f'node_shared_{dep}') is not None: + v[f'node_shared_{dep}'] = 'true' -+ + with open(target_file, 'w+', encoding='utf-8') as file_out: file_out.write(pprint.pformat(config, indent=2)) + +diff --git a/third_party/electron_node/node.gni.orig b/third_party/electron_node/node.gni +index 73bf383..1c80d5a 100644 +--- a/third_party/electron_node/node.gni.orig ++++ b/third_party/electron_node/node.gni +@@ -73,6 +73,7 @@ declare_args() { + node_use_amaro = true + + # Allows downstream packagers (eg. Linux distributions) to build against system shared libraries. ++ use_system_ada = false + use_system_cares = false + use_system_nghttp2 = false + use_system_llhttp = false +diff --git a/third_party/electron_node/unofficial.gni.orig b/third_party/electron_node/unofficial.gni +index d61a9bd..8bf990e 100644 +--- a/third_party/electron_node/unofficial.gni.orig ++++ b/third_party/electron_node/unofficial.gni +@@ -143,7 +143,6 @@ template("node_gn_build") { + "deps/googletest:googletest_config", + ] + public_deps = [ +- "deps/ada", + "deps/uv", + "//electron:electron_js2c", + "deps/simdjson", +@@ -151,10 +150,7 @@ template("node_gn_build") { + ] + deps = [ + ":run_node_js2c", +- "deps/cares", +- "deps/histogram", + "deps/nbytes", +- "deps/nghttp2", + "deps/postject", + "deps/sqlite", + "deps/uvwasi", +@@ -182,12 +178,30 @@ template("node_gn_build") { + if (is_posix) { + configs -= [ "//build/config/gcc:symbol_visibility_hidden" ] + configs += [ "//build/config/gcc:symbol_visibility_default" ] ++ libs = [] ++ include_dirs = [] + } + if (use_system_llhttp) { + libs += [ "llhttp" ] + } else { + deps += [ "deps/llhttp" ] + } ++ if (use_system_cares) { ++ libs += [ "cares" ] ++ } else { ++ deps += [ "deps/cares" ] ++ } ++ if (use_system_nghttp2) { ++ libs += [ "nghttp2" ] ++ } else { ++ deps += [ "deps/nghttp2" ] ++ } ++ if (use_system_ada) { ++ libs += [ "ada" ] ++ include_dirs += [ "/usr/include/ada" ] ++ } else { ++ public_deps += [ "deps/ada" ] ++ } + if (use_system_histogram) { + libs += [ "hdr_histogram" ] + include_dirs += [ "/usr/include/hdr" ] +@@ -208,7 +222,7 @@ template("node_gn_build") { + "src/inspector:node_protocol_generated_sources", + "src/inspector:v8_inspector_compress_protocol_json", + ] +- include_dirs = [ ++ include_dirs += [ + "$target_gen_dir/src", + "$target_gen_dir/src/inspector", + "$node_inspector_protocol_path", +@@ -222,17 +236,18 @@ template("node_gn_build") { + sources += node_inspector.node_inspector_sources + + node_inspector.node_inspector_generated_sources + } +- if (is_linux) { +- import("//build/config/linux/pkg_config.gni") +- if (use_system_cares) { +- pkg_config("cares") { +- packages = [ "libcares" ] +- } +- } +- if (use_system_nghttp2) { +- pkg_config("nghttp2") { +- packages = [ "libnghttp2" ] +- } ++ } ++ ++ if (is_linux) { ++ import("//build/config/linux/pkg_config.gni") ++ if (use_system_cares) { ++ pkg_config("cares") { ++ packages = [ "libcares" ] ++ } ++ } ++ if (use_system_nghttp2) { ++ pkg_config("nghttp2") { ++ packages = [ "libnghttp2" ] + } + } + } diff --git a/backports/electron/fix-opus.patch b/backports/electron/fix-opus.patch index 8841a32..836b719 100644 --- a/backports/electron/fix-opus.patch +++ b/backports/electron/fix-opus.patch @@ -1,6 +1,6 @@ ---- a/media/filters/ffmpeg_glue.cc -+++ b/media/filters/ffmpeg_glue.cc -@@ -142,7 +142,7 @@ const char* FFmpegGlue::GetAllowedAudioDecoders() { +--- 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( @@ -9,4 +9,3 @@ "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 new file mode 100644 index 0000000..fa462e3 --- /dev/null +++ b/backports/electron/gperf-3.2-fix.patch @@ -0,0 +1,29 @@ +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/pipewire-1.4.patch b/backports/electron/pipewire-1.4.patch new file mode 100644 index 0000000..ab9c37f --- /dev/null +++ b/backports/electron/pipewire-1.4.patch @@ -0,0 +1,23 @@ +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/element-desktop/APKBUILD b/backports/element-desktop/APKBUILD new file mode 100644 index 0000000..de6a4d7 --- /dev/null +++ b/backports/element-desktop/APKBUILD @@ -0,0 +1,171 @@ +# Contributor: lauren n. liberda +maintainer="lauren n. liberda " +pkgname=element-desktop +pkgver=1.11.100 +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 +depends=" + electron~$_electronver + font-inconsolata + font-inter + font-nunito + font-opensans + font-twemoji + " +makedepends=" + cargo + electron-dev~$_electronver + electron-tasje + jq + libsecret-dev + nodejs + npm + python3 + py3-setuptools + sqlcipher-dev + swc + yarn + " +source=" + https://github.com/vector-im/element-desktop/archive/refs/tags/v$pkgver/element-desktop-$pkgver.tar.gz + https://github.com/vector-im/element-web/archive/refs/tags/v$pkgver/element-web-$pkgver.tar.gz + + add-alpine-targets.patch + use-system-headers.patch + tasje-one-hak.patch + tasje-no-fuses.patch + no-source-maps.patch.web + use-system-fonts.patch.web + + element-desktop + " +options="net !check" # broken + +# secfixes: +# 1.11.30-r0: +# - CVE-2023-30609 +# 1.11.26-r0: +# - CVE-2023-28103 +# - CVE-2023-28427 +# 1.11.7-r0: +# - CVE-2022-39249 +# - CVE-2022-39250 +# - CVE-2022-39251 +# - CVE-2022-39236 +# 1.11.4-r0: +# - CVE-2022-36059 +# - CVE-2022-36060 + +# used by buildscripts (at least web's webpack) +export VERSION=$pkgver + +export CARGO_PROFILE_RELEASE_OPT_LEVEL=2 +export CARGO_PROFILE_RELEASE_STRIP="symbols" +export NODE_OPTIONS="--openssl-legacy-provider" + +prepare() { + default_prepare + + msg "Applying more patches" + for x in $source; do + case "$x" in + *.patch.web) + msg "$x" + patch -p1 -i "$srcdir"/$x -d "$srcdir"/element-web-$pkgver + ;; + esac + done + + rm -rf res/fonts + + ( + cd "$srcdir"/element-web-$pkgver + + msg "Fetch element-web dependencies" + yarn install --frozen-lockfile --ignore-scripts --ignore-engines + jq '.show_labs_settings = true' < config.sample.json > config.json + ) + + ln -s "$srcdir"/element-web-$pkgver/webapp webapp + + msg "Fetch element-desktop dependencies" + yarn install --frozen-lockfile --ignore-scripts +} + +build() { + ( + cd "$srcdir"/element-web-$pkgver + + msg "Build element-web" + NODE_ENV=production yarn build + ) + + msg "Build element-desktop" + + yarn asar-webapp + + # add "optional" native dependencies + # hak stands for hack + yarn run hak --target "$(uname -m)-alpine-linux-musl" + + yarn build:ts + + yarn build:res + + # we need it as js to be of any use for tasje. + # fails with `yarn tsc`. https://github.com/electron-userland/electron-builder/issues/7961 + swc compile electron-builder.ts --out-file electron-builder.mjs + + yarn install --frozen-lockfile --ignore-scripts --production + + npm rebuild keytar-forked --nodedir=/usr/include/electron/node_headers --build-from-source + find node_modules/keytar-forked/build/ -type f \ + \! -path node_modules/keytar-forked/build/Release/keytar.node \ + -delete + # stripping in build because it gets into asar + strip node_modules/keytar-forked/build/Release/keytar.node + + tasje -c electron-builder.mjs pack +} + +check() { + ( + cd "$srcdir"/element-web-$pkgver + + yarn test + ) +} + +package() { + local resources="dist/resources" + + install -Dm644 $resources/app.asar "$pkgdir"/usr/lib/element-desktop/app.asar + install -Dm644 webapp.asar "$pkgdir"/usr/lib/element-desktop/webapp.asar + + 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 -Dm755 "$srcdir"/$pkgname "$pkgdir"/usr/bin/$pkgname + + install -Dm644 dist/$pkgname.desktop "$pkgdir"/usr/share/applications/$pkgname.desktop + while read -r size; do + install -Dm644 dist/icons/$size.png "$pkgdir"/usr/share/icons/hicolor/$size/apps/$pkgname.png + done < dist/icons/size-list +} + +sha512sums=" +a8ac5180df3b204fb1947ecaa4786c9c5fdd53ffe705f4dfe97a0b051fa371fd9102c41a898e8783cf25f732674da2d987ef315f2facc7b18b20ef214ea0f81d element-desktop-1.11.100.tar.gz +e3e50fd867f9b7388eb22778ccb97d6504a480ab4e2aa9eba10fd0f4d0324a1525c2afe6c80181567d8e554f03086a9e0994a6221cfcb0ca29700754c8f31cac element-web-1.11.100.tar.gz +4747893ed3e43d3074e9afe1cdd668a6be0de073d439205fe8c38c5e0f4091cc76e3cd15d98818bea5139add29501d8d07e83c58e9da230a4ce5bb538d388f80 add-alpine-targets.patch +755b17f7b828eb6920c06a6950ad4e14c32c99d22e9c05fcef7a081b5d2034adb03db3958aa5209c99fb7201f4d888c2383fc9864c5e743dd33f8b5c4925acd7 use-system-headers.patch +92e69817fdc71f60c5c7dcbd3c7b13428cc18141cf5f27720326390f6817bec85fb1c60f8016b3a8fa275f601b16f646cda12b5e379a349368eef2f801b4de7a tasje-one-hak.patch +a1399662bdbe5e7256d31f7bdc05070e7009d70113699856b025a1d5ab1d9b8bf1020072a08255d4eddab0874044131dec296f98a91ba5c12ca61948b1d18dbe tasje-no-fuses.patch +ec635fde026f7fce8e8cc57960b5b9dcec4418416d4867ed47711422d48f068bb58a3c9ceb7715efc9c177beca3788da6b0babc9b689ea8c0724a0395f2b85f8 no-source-maps.patch.web +aaf46476bac403aa5204aa265fcf0654fad4c149fd74d0ec4273c051a5549943384cae3cdd62c5b78fdedfed55c11ecceb898b886e44165cbe7e30953a095cf9 use-system-fonts.patch.web +afc588311dc3b566a754e3e7fe6b37b99a06d47b8bbce0ed9acca8ef308fdab0bd1d41b406199e5cbdd86bdce695ff847cd8668857a235cbdc292ad8b899c063 element-desktop +" diff --git a/backports/element-desktop/add-alpine-targets.patch b/backports/element-desktop/add-alpine-targets.patch new file mode 100644 index 0000000..87e1148 --- /dev/null +++ b/backports/element-desktop/add-alpine-targets.patch @@ -0,0 +1,52 @@ +--- a/scripts/hak/target.ts ++++ b/scripts/hak/target.ts +@@ -29,8 +29,10 @@ + | "i686-unknown-linux-gnu" + | "x86_64-unknown-linux-musl" + | "x86_64-unknown-linux-gnu" ++ | "x86_64-alpine-linux-musl" + | "aarch64-unknown-linux-musl" + | "aarch64-unknown-linux-gnu" ++ | "aarch64-alpine-linux-musl" + | "powerpc64le-unknown-linux-musl" + | "powerpc64le-unknown-linux-gnu"; + +@@ -112,6 +114,13 @@ + libC: MUSL, + }; + ++const x8664AlpineLinuxMusl: LinuxTarget = { ++ id: "x86_64-alpine-linux-musl", ++ platform: "linux", ++ arch: "x64", ++ libC: MUSL, ++}; ++ + const i686UnknownLinuxGnu: LinuxTarget = { + id: "i686-unknown-linux-gnu", + platform: "linux", +@@ -140,6 +149,13 @@ + libC: MUSL, + }; + ++const aarch64AlpineLinuxMusl: LinuxTarget = { ++ id: "aarch64-alpine-linux-musl", ++ platform: "linux", ++ arch: "arm64", ++ libC: MUSL, ++}; ++ + const powerpc64leUnknownLinuxGnu: LinuxTarget = { + id: "powerpc64le-unknown-linux-gnu", + platform: "linux", +@@ -167,8 +183,10 @@ + "i686-unknown-linux-gnu": i686UnknownLinuxGnu, + "x86_64-unknown-linux-musl": x8664UnknownLinuxMusl, + "x86_64-unknown-linux-gnu": x8664UnknownLinuxGnu, ++ "x86_64-alpine-linux-musl": x8664AlpineLinuxMusl, + "aarch64-unknown-linux-musl": aarch64UnknownLinuxMusl, + "aarch64-unknown-linux-gnu": aarch64UnknownLinuxGnu, ++ "aarch64-alpine-linux-musl": aarch64AlpineLinuxMusl, + "powerpc64le-unknown-linux-musl": powerpc64leUnknownLinuxMusl, + "powerpc64le-unknown-linux-gnu": powerpc64leUnknownLinuxGnu, + }; diff --git a/backports/element-desktop/element-desktop b/backports/element-desktop/element-desktop new file mode 100755 index 0000000..de3c5b2 --- /dev/null +++ b/backports/element-desktop/element-desktop @@ -0,0 +1,3 @@ +#!/bin/sh + +exec electron /usr/lib/element-desktop/app.asar "$@" diff --git a/backports/element-desktop/no-source-maps.patch.web b/backports/element-desktop/no-source-maps.patch.web new file mode 100644 index 0000000..86b3bac --- /dev/null +++ b/backports/element-desktop/no-source-maps.patch.web @@ -0,0 +1,18 @@ +--- ./webpack.config.js.orig ++++ ./webpack.config.js +@@ -102,15 +102,6 @@ + } + + const development = {}; +- if (devMode) { +- // Embedded source maps for dev builds, can't use eval-source-map due to CSP +- development["devtool"] = "inline-source-map"; +- } else { +- // High quality source maps in separate .map files which include the source. This doesn't bulk up the .js +- // payload file size, which is nice for performance but also necessary to get the bundle to a small enough +- // size that sentry will accept the upload. +- development["devtool"] = "source-map"; +- } + + // Resolve the directories for the js-sdk for later use. We resolve these early, so we + // don't have to call them over and over. We also resolve to the package.json instead of the src diff --git a/backports/element-desktop/tasje-no-fuses.patch b/backports/element-desktop/tasje-no-fuses.patch new file mode 100644 index 0000000..72c515f --- /dev/null +++ b/backports/element-desktop/tasje-no-fuses.patch @@ -0,0 +1,52 @@ +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", diff --git a/backports/element-desktop/tasje-one-hak.patch b/backports/element-desktop/tasje-one-hak.patch new file mode 100644 index 0000000..a855eee --- /dev/null +++ b/backports/element-desktop/tasje-one-hak.patch @@ -0,0 +1,20 @@ +directories in .hak/hakModules are already symlinked inside node_modules, +and as such are already being copied by default. this makes tasje fail with: +``` +thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: +FileAlreadyWritten("/node_modules/keytar/package.json")', src/main.rs:200:18 +``` + +--- ./electron-builder.ts.orig ++++ ./electron-builder.ts +@@ -74,10 +74,6 @@ + }, + files: [ + "package.json", +- { +- from: ".hak/hakModules", +- to: "node_modules", +- }, + "lib/**", + ], + extraResources: [ diff --git a/backports/element-desktop/use-system-fonts.patch.web b/backports/element-desktop/use-system-fonts.patch.web new file mode 100644 index 0000000..855fdea --- /dev/null +++ b/backports/element-desktop/use-system-fonts.patch.web @@ -0,0 +1,79 @@ +--- a/src/vector/jitsi/index.pcss ++++ b/src/vector/jitsi/index.pcss +@@ -14,7 +14,7 @@ + font-family: "Nunito"; + font-style: normal; + font-weight: 400; +- src: url("$(res)/fonts/Nunito/Nunito-Regular.ttf") format("truetype"); ++ src: local("Nunito Regular"); + } + + $dark-fg: #edf3ff; +--- a/res/themes/light/css/_fonts.pcss ++++ b/res/themes/light/css/_fonts.pcss +@@ -5,16 +5,16 @@ + @font-face { + font-family: "Twemoji"; + font-weight: 400; +- src: url("$(res)/fonts/Twemoji_Mozilla/TwemojiMozilla-colr.woff2") format("woff2"); ++ src: local("Twemoji"); + } + /* For at least Chrome on Windows 10, we have to explictly add extra weights for the emoji to appear in bold messages, etc. */ + @font-face { + font-family: "Twemoji"; + font-weight: 600; +- src: url("$(res)/fonts/Twemoji_Mozilla/TwemojiMozilla-colr.woff2") format("woff2"); ++ src: local("Twemoji"); + } + @font-face { + font-family: "Twemoji"; + font-weight: 700; +- src: url("$(res)/fonts/Twemoji_Mozilla/TwemojiMozilla-colr.woff2") format("woff2"); ++ src: local("Twemoji"); + } +--- a/res/themes/legacy-light/css/_fonts.pcss ++++ b/res/themes/legacy-light/css/_fonts.pcss +@@ -23,17 +23,17 @@ + font-family: "Nunito"; + font-style: normal; + font-weight: 400; +- src: url("$(res)/fonts/Nunito/Nunito-Regular.ttf") format("truetype"); ++ src: local("Nunito Regular"); + } + @font-face { + font-family: "Nunito"; + font-style: normal; + font-weight: 600; +- src: url("$(res)/fonts/Nunito/Nunito-SemiBold.ttf") format("truetype"); ++ src: local("Nunito SemiBold"); + } + @font-face { + font-family: "Nunito"; + font-style: normal; + font-weight: 700; +- src: url("$(res)/fonts/Nunito/Nunito-Bold.ttf") format("truetype"); ++ src: local("Nunito Bold"); + } +--- ./src/theme.ts.orig ++++ ./src/theme.ts +@@ -7,20 +7,6 @@ + Please see LICENSE files in the repository root for full details. + */ + +-import "@fontsource/inter/400.css"; +-import "@fontsource/inter/400-italic.css"; +-import "@fontsource/inter/500.css"; +-import "@fontsource/inter/500-italic.css"; +-import "@fontsource/inter/600.css"; +-import "@fontsource/inter/600-italic.css"; +-import "@fontsource/inter/700.css"; +-import "@fontsource/inter/700-italic.css"; +- +-import "@fontsource/inconsolata/latin-ext-400.css"; +-import "@fontsource/inconsolata/latin-400.css"; +-import "@fontsource/inconsolata/latin-ext-700.css"; +-import "@fontsource/inconsolata/latin-700.css"; +- + import { logger } from "matrix-js-sdk/src/logger"; + + import { _t } from "./languageHandler"; diff --git a/backports/element-desktop/use-system-headers.patch b/backports/element-desktop/use-system-headers.patch new file mode 100644 index 0000000..6ea957b --- /dev/null +++ b/backports/element-desktop/use-system-headers.patch @@ -0,0 +1,15 @@ +--- a/scripts/hak/hakEnv.ts ++++ b/scripts/hak/hakEnv.ts +@@ -101,11 +101,10 @@ + ...process.env, + npm_config_arch: this.target.arch, + npm_config_target_arch: this.target.arch, +- npm_config_disturl: "https://electronjs.org/headers", ++ npm_config_nodedir: "/usr/include/electron/node_headers", + npm_config_runtime: this.runtime, + npm_config_target: this.runtimeVersion, + npm_config_build_from_source: "true", +- npm_config_devdir: path.join(os.homedir(), ".electron-gyp"), + }; + } + diff --git a/backports/freecad/APKBUILD b/backports/freecad/APKBUILD new file mode 100644 index 0000000..8967ba7 --- /dev/null +++ b/backports/freecad/APKBUILD @@ -0,0 +1,80 @@ +# Contributor: Bryce Vandegrift +# Maintainer: Bryce Vandegrift +pkgname=freecad +pkgver=1.0.0 +_ondsel_ver="2e3659c4bce3e6885269e0cb3d640261b2a91108" +_gsl_ver="b39e7e4b0987859f5b19ff7686b149c916588658" +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=" +afc1079ea04fd5bb8135f8ad1012d9e4e05c8839dd0a4e00253eada58fe018f445c1200d1ca7ac9f268644c946cbf55b7b313dc3d6bd010f9da3a3334103b7db freecad-1.0.0.tar.gz +8b08a668c63b57a49b8d95308f31496c1bcb27a5fb024d2e6b9744bd2e4819e82c59f68a8b99cc1be3e2bdfcdf435da5e342afaff4f28d97a849f9c01736af89 OndselSolver-2e3659c4bce3e6885269e0cb3d640261b2a91108.tar.gz +01ae556b70f7b5b572d15a427a6a5e0e7a4047727958be4c61d7dd84fc3bc97aebeaebf60c48064c565884441605fca180d5fdc8c920d35b2a8874664c024b01 GSL-b39e7e4b0987859f5b19ff7686b149c916588658.tar.gz +2f190118bddbf2e070519d0244eafd15ae7919f9759f925f593ce43988a7f9ab023c50bec3768404926e8cc661e829f6a55bec5e9e58c58735c050338fbcec16 no-execinfo.patch +" diff --git a/backports/freecad/no-execinfo.patch b/backports/freecad/no-execinfo.patch new file mode 100644 index 0000000..9443301 --- /dev/null +++ b/backports/freecad/no-execinfo.patch @@ -0,0 +1,54 @@ +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/freetube/APKBUILD b/backports/freetube/APKBUILD index 3d4ac08..19bacf0 100644 --- a/backports/freetube/APKBUILD +++ b/backports/freetube/APKBUILD @@ -1,8 +1,8 @@ # Maintainer: Antoine Martin (ayakael) # Contributor: Antoine Martin (ayakael) pkgname=freetube -pkgver=0.21.3 -pkgrel=2 +pkgver=0.23.5 +pkgrel=1 pkgdesc="An open source desktop YouTube player built with privacy in mind." arch="x86_64 aarch64" # blocked by electron license="AGPL-3.0-only" @@ -50,7 +50,7 @@ package() { } sha512sums=" -22e5ab677cd442d50237b2d62534698d8ad73a37e1731003dc23c4ea3da992b3cae936f0bb3a0a86cd4b7fba731c9fa53276cb0a6cd5bab213ff2a6c9006cb05 freetube-0.21.3.tar.gz +5811ac53788a12f94cbd4cec6f7075350c223865cb4cf4436f131b9d1197b89aa5da128d6c531d1e56a0302aa3d2523c7ba8d48edbf5f328be6fed3fbba02752 freetube-0.23.5.tar.gz 2ce2effc794bb663789cefe968b5899122127983dbfa1b240aa33a2be383720b18204e6d01b4a550df72956f02b6636b79c93a58f470a970b09b770f5b8f2fc4 freetube.sh d27cb896b65a7e8d52ffe86e5f74eed72b6cf976b28e1a13012d34c7eceba5ff6f20298017738dfa93c0336ffa52b8ee4da7e06b02747062898db7e678819526 tasje-dotdash.patch " diff --git a/backports/gn/APKBUILD b/backports/gn/APKBUILD new file mode 100644 index 0000000..b5ec871 --- /dev/null +++ b/backports/gn/APKBUILD @@ -0,0 +1,59 @@ +# Contributor: TBK +maintainer="lauren n. liberda " +pkgname=gn +pkgver=0_git20250311 +pkgrel=0 +_commit=18602f6cf1168cf78302024043edc02e8bad2ffb +pkgdesc="Meta-build system that generates build files for Ninja" +arch="all" +url="https://gn.googlesource.com/gn" +license="BSD-3-Clause" +depends="samurai" +makedepends="python3 zstd" +# gitiles has no clones +source="https://ab-sn.lnl.gay/gn-$_commit.tar.zst + " +builddir="$srcdir/gn" + +_distbucket="sakamoto/lnl-aports-snapshots/" +snapshot() { + clean + deps + mkdir -p "$srcdir" && cd "$srcdir" + git clone https://gn.googlesource.com/gn + ( + cd gn + git checkout -q $_commit + python3 ./build/gen.py + ) + rm -rf gn/.git + tar cf gn-$_commit.tar gn + zstd --auto-threads=logical --ultra --long -22 -T"${ZSTD_LIMIT:-0}" -vv gn-$_commit.tar \ + -o "$SRCDEST"/gn-$_commit.tar.zst + mcli cp "$SRCDEST"/gn-$_commit.tar.zst "$_distbucket" +} + +build() { + unset CFLAGS # all sources C++ but passes both + # Breaks build since upstream passes -Wno-format, + # annotated: "Use of %llx, which is supported by _UCRT, false positive" + CXXFLAGS="${CXXFLAGS/-Werror=format-security} -flto=auto" \ + python3 ./build/gen.py \ + --no-last-commit-position \ + --no-static-libstdc++ \ + --no-strip \ + --allow-warnings + ninja -C out +} + +check() { + ./out/gn_unittests +} + +package() { + install -Dm755 out/gn "$pkgdir"/usr/bin/gn +} + +sha512sums=" +9638e177bfd6eecc6af1a9323efa93dc65d1d1f3599037851d19ba076f3b0c9e91366c143e6b6e334fc63baa0bdad80415dbad4ec96585850b462e2904c836d6 gn-18602f6cf1168cf78302024043edc02e8bad2ffb.tar.zst +" diff --git a/backports/libmedc/APKBUILD b/backports/libmedc/APKBUILD new file mode 100644 index 0000000..39408fc --- /dev/null +++ b/backports/libmedc/APKBUILD @@ -0,0 +1,43 @@ +# Contributor: Aiden Grossman +# Maintainer: +pkgname=libmedc +pkgver=4.1.1 +pkgrel=4 +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 swig3 python3-dev samurai" +options="!check" #test suite is nonfunctional with python bindings +subpackages="$pkgname-dev $pkgname-doc $pkgname-python-pyc $pkgname-python:_py" +source=" + ftp://ftp.cea.fr/pub/salome/prerequisites/med-$pkgver.tar.gz + hdf5.patch + cmake-config-dir.patch + " +builddir="$srcdir"/med-$pkgver + +build() { + cmake -B build -G Ninja \ + -DCMAKE_BUILD_TYPE=None \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DMEDFILE_BUILD_TESTS=OFF \ + -DMEDFILE_BUILD_PYTHON=ON + cmake --build build +} + +package() { + DESTDIR="$pkgdir" cmake --install build +} + +_py() { + pkgdesc="Python bindings for libmedc" + depends="python3" + amove usr/lib/python3* +} + +sha512sums=" +f211fa82750a7cc935baa3a50a55d16e40117a0f2254b482492ba8396d82781ca84960995da7a16b2b5be0b93ce76368bf4b311bb8af0e5f0243e7051c9c554c med-4.1.1.tar.gz +68d9291e73a68d674081314028c0fce7bbd4a7b78b93b7e5078117ce62f2d07318bc33ec95091ce677148ec3926c1ce653d0760c34e74b29257a7be59210f040 hdf5.patch +8d0f58cd67d205fbacaff0e6da76e2ee5473457b478ede13a551ebe5853c0716c7406b74c3792e1ace33a34d352fccca8dd2940f063a7c060a12529d060a991a cmake-config-dir.patch +" diff --git a/backports/libmedc/cmake-config-dir.patch b/backports/libmedc/cmake-config-dir.patch new file mode 100644 index 0000000..e1f43a4 --- /dev/null +++ b/backports/libmedc/cmake-config-dir.patch @@ -0,0 +1,11 @@ +--- 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.patch b/backports/libmedc/hdf5.patch new file mode 100644 index 0000000..bc4764b --- /dev/null +++ b/backports/libmedc/hdf5.patch @@ -0,0 +1,94 @@ +Originally from https://gist.github.com/jedbrown/527ef81ff59a0dccf833da40fdd15a47 +diff -rupN med-4.1.0/config/cmake_files/medMacros.cmake med-4.1.0-new/config/cmake_files/medMacros.cmake +--- med-4.1.0/config/cmake_files/medMacros.cmake 2021-12-03 09:35:30.675827163 +0100 ++++ med-4.1.0-new/config/cmake_files/medMacros.cmake 2021-12-03 09:32:31.894994147 +0100 +@@ -447,7 +447,7 @@ MACRO(MED_FIND_HDF5) + ## + ## Requires 1.10.x version + ## +- IF (NOT HDF_VERSION_MAJOR_REF EQUAL 1 OR NOT HDF_VERSION_MINOR_REF EQUAL 10 OR NOT HDF_VERSION_RELEASE_REF GREATER 1) ++ IF (HDF5_VERSION VERSION_LESS 1.10.2) + MESSAGE(FATAL_ERROR "HDF5 version is ${HDF_VERSION_REF}. Only versions >= 1.10.2 are supported.") + ENDIF() + ## +diff -rupN med-4.1.0/src/ci/MEDfileCompatibility.c med-4.1.0-new/src/ci/MEDfileCompatibility.c +--- med-4.1.0/src/ci/MEDfileCompatibility.c 2021-12-03 09:35:30.676827162 +0100 ++++ med-4.1.0-new/src/ci/MEDfileCompatibility.c 2021-12-03 09:33:26.292942149 +0100 +@@ -71,7 +71,7 @@ MEDfileCompatibility(const char* const f + _hversionMMR=10000*_hmajeur+100*_hmineur+_hrelease; + /* ISCRUTE(_hversionMMR); */ + /* ISCRUTE(HDF_VERSION_NUM_REF); */ +- if ( (_hversionMMR >= HDF_VERSION_NUM_REF) && (_hmineur == HDF_VERSION_MINOR_REF) ) *hdfok = MED_TRUE; ++ if (_hversionMMR >= HDF_VERSION_NUM_REF) *hdfok = MED_TRUE; + + /* TODO : Vérifier si la version mineure HDF du fichier est supérieure + à la version mineure de la bibliothèque HDF utilisée : +@@ -113,7 +113,7 @@ MEDfileCompatibility(const char* const f + #if MED_NUM_MAJEUR != 4 + #error "Don't forget to update the test version here when you change the major version of the library !" + #endif +-#if H5_VERS_MINOR > 10 ++#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 med-4.1.0/src/hdfi/_MEDfileCreate.c med-4.1.0-new/src/hdfi/_MEDfileCreate.c +--- med-4.1.0/src/hdfi/_MEDfileCreate.c 2021-12-03 09:35:30.677827161 +0100 ++++ med-4.1.0-new/src/hdfi/_MEDfileCreate.c 2021-12-03 09:32:31.894994147 +0100 +@@ -159,7 +159,7 @@ med_idt _MEDfileCreate(const char * cons + * 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 > 10 ++#if H5_VERS_MINOR > 14 + #error "Don't forget to change the compatibility version of the library !" + #endif + +diff -rupN med-4.1.0/src/hdfi/_MEDfileOpen.c med-4.1.0-new/src/hdfi/_MEDfileOpen.c +--- med-4.1.0/src/hdfi/_MEDfileOpen.c 2021-12-03 09:35:30.677827161 +0100 ++++ med-4.1.0-new/src/hdfi/_MEDfileOpen.c 2021-12-03 09:32:31.894994147 +0100 +@@ -72,7 +72,7 @@ med_idt _MEDfileOpen(const char * const + + • The creation order tracking property, H5P_CRT_ORDER_TRACKED, has been set in the group creation property list (see H5Pset_link_creation_order). + */ +-#if H5_VERS_MINOR > 10 ++#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 med-4.1.0/src/hdfi/_MEDmemFileOpen.c med-4.1.0-new/src/hdfi/_MEDmemFileOpen.c +--- med-4.1.0/src/hdfi/_MEDmemFileOpen.c 2021-12-03 09:35:30.678827160 +0100 ++++ med-4.1.0-new/src/hdfi/_MEDmemFileOpen.c 2021-12-03 09:32:31.894994147 +0100 +@@ -434,7 +434,7 @@ med_idt _MEDmemFileOpen(const char * con + goto ERROR; + } + +-#if H5_VERS_MINOR > 10 ++#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_18, H5F_LIBVER_18) ) { +diff -rupN med-4.1.0/src/hdfi/_MEDparFileCreate.c med-4.1.0-new/src/hdfi/_MEDparFileCreate.c +--- med-4.1.0/src/hdfi/_MEDparFileCreate.c 2021-12-03 09:35:30.678827160 +0100 ++++ med-4.1.0-new/src/hdfi/_MEDparFileCreate.c 2021-12-03 09:32:31.894994147 +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 > 10 ++#if H5_VERS_MINOR > 14 + #error "Don't forget to change the compatibility version of the library !" + #endif + +diff -rupN med-4.1.0/src/hdfi/_MEDparFileOpen.c med-4.1.0-new/src/hdfi/_MEDparFileOpen.c +--- med-4.1.0/src/hdfi/_MEDparFileOpen.c 2021-12-03 09:35:30.679827159 +0100 ++++ med-4.1.0-new/src/hdfi/_MEDparFileOpen.c 2021-12-03 09:32:31.894994147 +0100 +@@ -55,7 +55,7 @@ med_idt _MEDparFileOpen(const char * con + MED_ERR_(_fid,MED_ERR_INIT,MED_ERR_PROPERTY,MED_ERR_PARALLEL_MSG); + goto ERROR; + } +-#if H5_VERS_MINOR > 10 ++#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_18, H5F_LIBVER_18 ) ) { diff --git a/backports/nb/APKBUILD b/backports/nb/APKBUILD index d8b8b08..d5ba0c6 100644 --- a/backports/nb/APKBUILD +++ b/backports/nb/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Quillith # Maintainer: Quillith pkgname=nb -pkgver=7.12.1 +pkgver=7.15.1 pkgrel=0 pkgdesc="Command line note-taking, bookmarking, archiving, and knowledge base application" url="https://github.com/xwmx/nb" @@ -41,5 +41,5 @@ full() { } sha512sums=" -ed3d41a809e39a19711c6c97c38216f17f144b8b474eb94aec4134f9756da03440073f3f6557acf8f7959d3d9fba6392d1d5f59e8b94d5269b7336b11353457e nb-7.12.1.tar.gz +95229ac3c7da47c8e8e80fb68376dcf866fa2c2799e0c150e225f453e92b714c592dd67e016054a6a6f7d53c09f7cc537250217057d42872fb273ee911e82757 nb-7.15.1.tar.gz " diff --git a/backports/pnpm/0001-no-check-for-updates.patch b/backports/pnpm/0001-no-check-for-updates.patch new file mode 100644 index 0000000..2d74688 --- /dev/null +++ b/backports/pnpm/0001-no-check-for-updates.patch @@ -0,0 +1,14 @@ +Disable available update messages as it outputs invalid upgrade process + +diff --git a/dist/pnpm.cjs b/dist/pnpm.cjs +index b93ea78..6daefd6 100644 +--- a/dist/pnpm.cjs ++++ b/dist/pnpm.cjs +@@ -114026,6 +114026,7 @@ var require_checkForUpdates = __commonJS({ + var write_json_file_1 = __importDefault2(require_write_json_file()); + var UPDATE_CHECK_FREQUENCY = 24 * 60 * 60 * 1e3; + async function checkForUpdates(config) { ++ return; + const stateFile = path_1.default.join(config.stateDir, "pnpm-state.json"); + let state; + try { diff --git a/backports/pnpm/0002-no-self-update.patch b/backports/pnpm/0002-no-self-update.patch new file mode 100644 index 0000000..b016ecc --- /dev/null +++ b/backports/pnpm/0002-no-self-update.patch @@ -0,0 +1,14 @@ +Disable command "pnpm self-update" as we install via apk + +diff --git a/dist/pnpm.cjs b/dist/pnpm.cjs +index b93ea78..8da50c3 100644 +--- a/dist/pnpm.cjs ++++ b/dist/pnpm.cjs +@@ -220258,6 +220258,7 @@ var require_selfUpdate = __commonJS({ + }); + } + async function handler(opts, params) { ++ throw new error_1.PnpmError("CANT_SELF_UPDATE_IN_APK", "You should update pnpm with apk"); + if ((0, cli_meta_1.isExecutedByCorepack)()) { + throw new error_1.PnpmError("CANT_SELF_UPDATE_IN_COREPACK", "You should update pnpm with corepack"); + } diff --git a/backports/pnpm/APKBUILD b/backports/pnpm/APKBUILD new file mode 100644 index 0000000..8772842 --- /dev/null +++ b/backports/pnpm/APKBUILD @@ -0,0 +1,73 @@ +# Contributor: Hygna +# Contributor: Fabricio Silva +maintainer="Fabricio Silva " +pkgname=pnpm +pkgver=10.9.0 +pkgrel=0 +pkgdesc="Fast, disk space efficient package manager" +url="https://pnpm.io" +arch="noarch" +license="MIT" +depends="nodejs" +subpackages=" + $pkgname-doc + $pkgname-bash-completion + $pkgname-zsh-completion + $pkgname-fish-completion + " +source="https://registry.npmjs.org/pnpm/-/pnpm-$pkgver.tgz + 0001-no-check-for-updates.patch + 0002-no-self-update.patch + " +builddir="$srcdir/package" + +prepare() { + default_prepare + + # remove node-gyp + rm -rf dist/node-gyp-bin dist/node_modules/node-gyp + # remove windows files + rm -rf dist/vendor/*.exe + + # remove other unnecessary files + find . -type f \( \ + -name '.*' -o \ + -name '*.cmd' -o \ + -name '*.bat' -o \ + -name '*.map' -o \ + -name '*.md' -o \ + -name '*.darwin*' -o \ + -name '*.win*' -o \ + -iname 'README*' \) -delete +} + +check() { + ./bin/pnpm.cjs --help +} + +package() { + local destdir="$pkgdir"/usr/share/node_modules/$pkgname + + install -Dm644 LICENSE -t "$pkgdir"/usr/share/licenses/$pkgname + + install -Dm644 dist/templates/completion.bash \ + "$pkgdir"/usr/share/bash-completion/completions/$pkgname + install -Dm644 dist/templates/completion.zsh \ + "$pkgdir"/usr/share/zsh/site-functions/_$pkgname + install -Dm644 dist/templates/completion.fish \ + "$pkgdir"/usr/share/fish/vendor_completions.d/$pkgname.fish + + install -Dm644 package.json -t "$destdir" + install -Dm755 bin/pnpm.cjs bin/pnpx.cjs -t "$destdir"/bin + cp -r dist "$destdir"/dist + + mkdir -p "$pkgdir"/usr/bin + ln -sf ../share/node_modules/pnpm/bin/pnpm.cjs "$pkgdir"/usr/bin/pnpm + ln -sf ../share/node_modules/pnpm/bin/pnpx.cjs "$pkgdir"/usr/bin/pnpx +} + +sha512sums=" +0486e394640d3c1fb3c9d43d49cf92879ff74f8516959c235308f5a8f62e2e19528a65cdc2a3058f587cde71eba3d5b56327c8c33a97e4c4051ca48a10ca2d5f pnpm-10.9.0.tgz +f53903c506a676393dd8b31e1194b92612bfa877a8e17edc530e308921caf454248e181a3e620a17a941eba126349128963b2b0b1e48f8d927307c9cf335290e 0001-no-check-for-updates.patch +5582d11fcd1782f40a4f9269b477af25057e3a3d60cddef8b64a8592fafdc7a572822c8267a7abf9e8bfa4b726dcb291885642070a838e360fc542cee10c9569 0002-no-self-update.patch +" diff --git a/backports/py3-apsw/APKBUILD b/backports/py3-apsw/APKBUILD index c0b8c6d..051f2c9 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.46.1.0 +pkgver=3.47.2.0 pkgrel=0 pkgdesc="Another Python SQLite Wrapper" url="https://github.com/rogerbinns/apsw" @@ -41,6 +41,6 @@ package() { } sha512sums=" -8d24825c8346b05a99b8959ce1fd45ae5162c95b020ecc63bd3491bfd1579370a0e6b1a962f7f64a7e7e415846007e64d90b28e2065ae047e228d60b12b9cb02 py3-apsw-3.46.1.0.zip +9884f36811bfff7276642841ebaa198669c48f4d54bb764a985ea5bdd88f9f630f9fd8a13cf0a44b5675e374c2a911fcec579ca4165622e8049bff327ef66c1d py3-apsw-3.47.2.0.zip 8f3957bd6fecb5660a7cab367043e4ccdacd87d8963bbe41cc3d525265de28f08aa207099658d785be29c5c90b818c1418f766995cd780d02b8e36252a389758 detect-sqlite-config.patch " diff --git a/backports/py3-colored/APKBUILD b/backports/py3-colored/APKBUILD index deb152a..f2efb49 100644 --- a/backports/py3-colored/APKBUILD +++ b/backports/py3-colored/APKBUILD @@ -1,14 +1,14 @@ -# Maintainer: Hoang Nguyen +# Maintainer: Antoine Martin (ayakael) pkgname=py3-colored _pyname=${pkgname/py3-/} -pkgver=1.4.4 -pkgrel=3 +pkgver=2.2.4 +pkgrel=0 pkgdesc="Simple Python library for color and formatting in terminal" url="https://gitlab.com/dslackw/colored" arch="noarch" license="MIT" depends="python3" -makedepends="py3-setuptools py3-gpep517" +makedepends="py3-setuptools py3-gpep517 py3-flit" checkdepends="py3-pytest" subpackages="$pkgname-pyc" source="https://gitlab.com/dslackw/colored/-/archive/$pkgver/colored-$pkgver.tar.gz" @@ -27,5 +27,5 @@ package() { } sha512sums=" -d49075f97bcc220802a8a64780b4c3910acd420e7e0e82ee71659132e7a294a638b098e4e46ae54f531739f8a43cd35979e521c02bb359205a13d96e37cfe8ed colored-1.4.4.tar.gz +8fd293c95c2cfa6c3c31a91f946414e5c2581ea12a60e38ad1e6a5e44a85589a81c5e8205c4c518ed0d809840bf1b37b0cb5af4cf48c0706aa52017bf9c04489 colored-2.2.4.tar.gz " diff --git a/backports/py3-levenshtein/APKBUILD b/backports/py3-levenshtein/APKBUILD index c146867..d6a7572 100644 --- a/backports/py3-levenshtein/APKBUILD +++ b/backports/py3-levenshtein/APKBUILD @@ -1,8 +1,8 @@ # Contributor: Galen Abell # Maintainer: Galen Abell pkgname=py3-levenshtein -pkgver=0.25.1 -pkgrel=2 +pkgver=0.26.1 +pkgrel=0 pkgdesc="Python extension for computing string edit distances and similarities" url="https://github.com/maxbachmann/Levenshtein" arch="all" @@ -13,6 +13,7 @@ makedepends=" cython py3-gpep517 py3-scikit-build + py3-scikit-build-core python3-dev rapidfuzz samurai @@ -31,15 +32,15 @@ build() { check() { python3 -m venv --clear --without-pip --system-site-packages .testenv .testenv/bin/python3 -m installer \ - .dist/Levenshtein*.whl + .dist/levenshtein*.whl .testenv/bin/python3 -m pytest } package() { python3 -m installer -d "$pkgdir" \ - .dist/Levenshtein*.whl + .dist/levenshtein*.whl } sha512sums=" -936dab36b15df6f2ee5425efb1fdb1490fb8f618ba453f464a6dd615bcc427e55ceee7474f06b34392871d9f38470b853602a11d8f9776eee66ec34156511ca4 py3-levenshtein-0.25.1.tar.gz +589b1f404108f488caf880063f20ee9c6a2033b0a2cd819352bf15e285ea8537c1dc8117de70679f720fd3da47546f7e0e5c620e4da8cf09bf8df9b119e6abc9 py3-levenshtein-0.26.1.tar.gz " diff --git a/backports/py3-limits/APKBUILD b/backports/py3-limits/APKBUILD index 814a4bd..af4516d 100644 --- a/backports/py3-limits/APKBUILD +++ b/backports/py3-limits/APKBUILD @@ -1,8 +1,8 @@ # Contributor: lauren n. liberda # Maintainer: lauren n. liberda pkgname=py3-limits -pkgver=3.13.0 -pkgrel=1 +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" @@ -19,14 +19,16 @@ checkdepends=" py3-pytest-asyncio py3-pytest-benchmark py3-pytest-cov + py3-pytest-lazy-fixtures + py3-pymemcache py3-redis " subpackages="$pkgname-pyc" -options="!check" # most tests are integration with db connections, assume all connectors installed 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" @@ -39,7 +41,7 @@ build() { check() { python3 -m venv --clear --without-pip --system-site-packages .testenv gpep517 install-wheel --destdir .testenv --prefix '' .dist/*.whl - .testenv/bin/python3 -m pytest \ + .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 } @@ -50,6 +52,7 @@ package() { } sha512sums=" -0a13d08001c2f95e559ac1be35fa8cc178ad2d41bd5bf7b7e85781a428f550c350c21b92942b5b7e45f0f4c0604e96e579c8a26b5e9ca1196e6605608721030a limits-3.13.0.tar.gz -0364d51f9f879b95c6a4a3c9e9fd3d7d1e15ea214c50ae98cd36826b8c0b2d903cf1128741ac83738e305a207dae8955a0b2c8679484d2d6643e334595bdb1d7 our-std-is-good-enough.patch +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 index 94c0c30..32d7d73 100644 --- a/backports/py3-limits/our-std-is-good-enough.patch +++ b/backports/py3-limits/our-std-is-good-enough.patch @@ -1,14 +1,3 @@ ---- ./limits/util.py.orig -+++ ./limits/util.py -@@ -8,7 +8,7 @@ - from types import ModuleType - from typing import TYPE_CHECKING, cast - --import importlib_resources -+from importlib import resources as importlib_resources - from packaging.version import Version - - from limits.typing import Dict, List, NamedTuple, Optional, Tuple, Type, Union --- ./limits/typing.py.orig +++ ./limits/typing.py @@ -13,7 +13,7 @@ @@ -19,4 +8,4 @@ +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 diff --git a/backports/py3-pathvalidate/APKBUILD b/backports/py3-pathvalidate/APKBUILD index fc26a08..94d2053 100644 --- a/backports/py3-pathvalidate/APKBUILD +++ b/backports/py3-pathvalidate/APKBUILD @@ -1,7 +1,7 @@ # Contributor: lauren n. liberda # Maintainer: lauren n. liberda pkgname=py3-pathvalidate -pkgver=3.2.1 +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" @@ -33,5 +33,5 @@ package() { } sha512sums=" -094bb442258ba58fff11691f5b60976513924443247e808effbc26b9dd6c336f5f84d8e4563643b7def19d9f82170eb9ec6cd89491f9115df8d1634d2aa12206 pathvalidate-3.2.1.tar.gz +674cddcf94d4f03aff5fe968c4c678f6fa510c8ff4dfd9232b2b075ccfaa17de86a08d497c10664399694c5e72b354d452d75f11f6b40d2f9778a2466af0b265 pathvalidate-3.2.3.tar.gz " diff --git a/backports/rapidfuzz/APKBUILD b/backports/rapidfuzz/APKBUILD index 4194b3a..aa0eefd 100644 --- a/backports/rapidfuzz/APKBUILD +++ b/backports/rapidfuzz/APKBUILD @@ -1,6 +1,6 @@ -# Maintainer: +# Maintainer: Antoine Martin (ayakael) pkgname=rapidfuzz -pkgver=3.0.0 +pkgver=3.2.0 pkgrel=0 pkgdesc="Rapid fuzzy string matching in C++ using the Levenshtein Distance" url="https://github.com/maxbachmann/rapidfuzz-cpp" @@ -40,6 +40,6 @@ package() { } sha512sums=" -c5f20399bd1cfaa057c40cc17be5d730d50c1014553241f80f461a2fa89de670357d17a4f090394170263b09a53aa29238e5eff2caf9064a2a118c42aa14f320 rapidfuzz-cpp-3.0.0.tar.gz +cf306fc4a6c0b6fc1a1c3b0b235aa54588bd87a5d07f96c1bc9711a08159ca71580b5958e66e8b4358d34e522041934903079aabe6e5a450cece7d6db6edcbe0 rapidfuzz-cpp-3.2.0.tar.gz 216c5082498830d42d2eb14d3eba35dd08446008916c920db7b55eaf3dd2358f86a61c238315b85fefecf08b9e902dc4db172f91a8479cfd735e53c7b3e03bf5 cstdint.patch " diff --git a/backports/signal-desktop/APKBUILD b/backports/signal-desktop/APKBUILD index 0bfb575..aea8d4c 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.34.0 +pkgver=7.54.0 pkgrel=0 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=18 +_llvmver=19 depends=" electron font-barlow @@ -40,16 +40,16 @@ makedepends=" libavif-dev libjpeg-turbo-dev libepoxy-dev - libevent-dev libsecret-dev libvpx-dev libwebp-dev libxml2-dev - lld$_llvmver + lld llvm$_llvmver-dev mesa-dev nodejs npm + pnpm openh264-dev openssl-dev opus-dev @@ -58,6 +58,7 @@ makedepends=" pulseaudio-dev py3-setuptools python3 + re2-dev samurai sqlcipher-dev vips-dev @@ -66,31 +67,35 @@ makedepends=" options="net !check" # use _check_depends to validate this -_libsignalver=0.60.2 -_ringrtcver=2.48.7 -_webrtcver=6723a -_stokenizerver=0.2.1 +_libsignalver=0.70.0 +_ringrtcver=2.51.0 +_webrtcver=6998b +_sqlcipherver=2.0.1 source=" https://github.com/signalapp/Signal-Desktop/archive/refs/tags/v$pkgver/Signal-Desktop-$pkgver.tar.gz https://github.com/signalapp/libsignal/archive/refs/tags/v$_libsignalver/libsignal-$_libsignalver.tar.gz https://github.com/signalapp/ringrtc/archive/refs/tags/v$_ringrtcver/ringrtc-$_ringrtcver.tar.gz + https://github.com/signalapp/node-sqlcipher/archive/refs/tags/v$_sqlcipherver/node-sqlcipher-$_sqlcipherver.tar.gz https://ayakael.net/api/packages/mirrors/generic/webrtc/$_webrtcver/webrtc-$_webrtcver.tar.zst - https://github.com/signalapp/Signal-FTS5-Extension/archive/refs/tags/v$_stokenizerver/stokenizer-$_stokenizerver.tar.gz libsignal-auditable.patch signal-use-system-sqlcipher.patch signal-disable-updates.patch signal-update-links.patch signal-show-window-please.patch + signal-rollback-locale-changes.patch + signal-do-not-package-sqlcipher-deps.patch ringrtc-webrtc-renamed.patch webrtc-shared-libs.patch webrtc-compiler.patch webrtc-gcc13.patch + webrtc-rollback-red.patch + webrtc-rollback-3rdparty-build-gn.patch - signal-desktop + signal-desktop.sh " -builddir="$srcdir/Signal-Desktop-$pkgver" +builddir="$srcdir" # webrtc broken on clang https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101227 export CC=gcc @@ -112,24 +117,25 @@ export CARGO_PROFILE_RELEASE_STRIP="symbols" export YARN_CACHE_FOLDER="$srcdir/.yarn" -_check_depends() { +_update_depends() { + msg "Updating extra dependencies version information in $APKBUILD..." # _libsignalver: follow signal-desktop package.json -> @signalapp/libsignal-client # _ringrtcver: follow signal-desktop package.json -> @signalapp/ringrtc # _webrtcver: follow ringrtc (on version above) -> config/version.properties -> webrtc.version # downloading tarball generated with abuild snapshot (with gclient dependencies fetched) - # _stokenizerver: follow @signalapp/better-sqlite3 (on version in package.json) -> deps/download.js -> TOKENIZER_VERSION + # _sqlcipherver: follow signal-desktop package.json -> @signalapp/sqlcipher - local _libsignalver=$(curl --silent https://raw.githubusercontent.com/signalapp/Signal-Desktop/v$pkgver/package-lock.json | grep "@signalapp/libsignal-client\": \"" | awk '{print $2}' | tr -d ',' | tr -d '"' | head -n 1) - local _ringrtcver=$(curl --silent https://raw.githubusercontent.com/signalapp/Signal-Desktop/v$pkgver/package-lock.json | grep "@signalapp/ringrtc\": \"" | awk '{print $2}' | tr -d ',' | tr -d '"' | head -n 1) - local _bsqlitever=$(curl --silent https://raw.githubusercontent.com/signalapp/Signal-Desktop/v$pkgver/package-lock.json | grep "@signalapp/better-sqlite3\": \"" | awk '{print $2}' | tr -d ',' | tr -d '"' | head -n 1) + local _libsignalver=$(curl --silent https://raw.githubusercontent.com/signalapp/Signal-Desktop/v$pkgver/package.json | grep "@signalapp/libsignal-client\": \"" | awk '{print $2}' | tr -d ',' | tr -d '"' | head -n 1) + local _ringrtcver=$(curl --silent https://raw.githubusercontent.com/signalapp/Signal-Desktop/v$pkgver/package.json | grep "@signalapp/ringrtc\": \"" | awk '{print $2}' | tr -d ',' | tr -d '"' | head -n 1) local _webrtcver=$(curl --silent https://raw.githubusercontent.com/signalapp/ringrtc/v$_ringrtcver/config/version.properties | awk -F '=' '{if($1 == "webrtc.version"){print $2}}' | head -n 1) - local _extensionver=$(curl --silent https://raw.githubusercontent.com/signalapp/better-sqlite3/v$_bsqlitever/deps/download.js | grep "const EXTENSION_VERSION" | awk '{print $4}' | tr -d "'" | tr -d ';' | head -n 1) - local _stokenizerver=$(curl --silent https://raw.githubusercontent.com/signalapp/Signal-Sqlcipher-Extension/refs/tags/v$_extensionver/Cargo.lock | sed -n "/^name = \"signal-tokenizer\"$/,/^$/p" | awk -F ' = ' '{if($1=="version"){print $2}}' | tr -d '"') + local _sqlcipherver=$(curl --silent https://raw.githubusercontent.com/signalapp/Signal-Desktop/v$pkgver/package.json | grep "@signalapp/sqlcipher\": \"" | awk '{print $2}' | tr -d ',' | tr -d '"' | head -n 1) - echo _libsignalver=$_libsignalver - echo _ringrtcver=$_ringrtcver - echo _webrtcver=$_webrtcver - echo _stokenizerver=$_stokenizerver + sed -i \ + -e "s|^_libsignalver=.*|_libsignalver=$_libsignalver|" \ + -e "s|^_ringrtcver=.*|_ringrtcver=$_ringrtcver|" \ + -e "s|^_webrtcver=.*|_webrtcver=$_webrtcver|" \ + -e "s|^_sqlcipherver=.*|_sqlcipherver=$_sqlcipherver|" \ + APKBUILD } # webrtc only, the other dependencies are fine with tarballs @@ -183,14 +189,21 @@ target_cpu_only = True prepare() { # Moves to builddir to use abuild patch logics - for i in libsignal-$_libsignalver ringrtc-$_ringrtcver webrtc-$_webrtcver Signal-FTS5-Extension-$_stokenizerver; do + for i in Signal-Desktop-$pkgver libsignal-$_libsignalver ringrtc-$_ringrtcver webrtc-$_webrtcver node-sqlcipher-$_sqlcipherver; do mv "$srcdir"/$i "$builddir"/${i%-*} done + default_prepare + + cd "$builddir"/Signal-Desktop + + # puts node modules in the root node_modules instead of under .pnpm + echo "node-linker=hoisted" >> .npmrc msg "Installing signal-desktop JS dependencies" - npm ci --ignore-scripts + pnpm install --ignore-scripts - default_prepare + # remove shipped fonts for system-provided (part 1) + rm -rf fonts/ ( cd "$builddir"/webrtc @@ -211,7 +224,6 @@ prepare() { libaom libavif libdrm - libevent libjpeg libpng libsecret @@ -245,6 +257,9 @@ prepare() { python3 build/linux/unbundle/replace_gn_files.py --system-libraries \ $use_system + # zlib depends on base for no reason + sed -i '/\/\/base/d' ./third_party/zlib/BUILD.gn + # allow system dependencies in "official builds" sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \ tools/generate_shim_headers/generate_shim_headers.py @@ -268,10 +283,13 @@ prepare() { ) ( - cd "$builddir"/Signal-FTS5-Extension + cd "$builddir"/node-sqlcipher - msg "Installing signal tokenizer rust dependencies" - cargo fetch --target="$CTARGET" --locked + # fix target + sed -i 's/unknown-linux-gnu/alpine-linux-musl/g' deps/extension/extension.gyp + + msg "Installing sqlcipher js dependencies" + pnpm install --ignore-scripts ) ( @@ -290,9 +308,6 @@ prepare() { msg "Installing libsignal js dependencies" yarn --ignore-scripts --frozen-lockfile ) - - # remove shipped fonts for system-provided (part 1) - rm -rf fonts/ } build() { @@ -379,58 +394,73 @@ build() { ) ( - cd "$builddir"/Signal-FTS5-Extension + cd "$builddir"/node-sqlcipher - msg "Building signal tokenizer" - cargo auditable build --features extension --release --frozen - cbindgen --profile release . -o target/release/signal-tokenizer.h + ( + cd deps/extension + msg "Building sqlcipher-extension" + cargo auditable build --release --target $CTARGET + ) + + msg "Building sqlcipher" + node-gyp configure --nodedir=/usr/include/electron/node_headers --build-from-source + node-gyp build --nodedir=/usr/include/electron/node_headers --build-from-source + + msg "Building sqlcipher glue code" + pnpm build + + mkdir -p prebuilds/linux-$chromium_arch + mv build/Release/obj.target/node_sqlcipher.node prebuilds/linux-$chromium_arch/node.napi.node + + msg "Cleaning dev dependencies for sqlcipher" + pnpm prune --ignore-scripts --prod ) + msg "Building signal-desktop" + cd "$builddir"/Signal-Desktop + # from package.json postinstall - npm run build:acknowledgments - npm exec patch-package + pnpm run build:acknowledgments rm -rf node_modules/dtrace-provider # get esbuild installed (needed for next step) - npm rebuild esbuild + pnpm rebuild esbuild # build front + # resets GIT_CEILING_DIRECTORIES as sometimes abuild sets this and breaks get-expire-time NODE_ENV=production \ SIGNAL_ENV=production \ NODE_OPTIONS=--openssl-legacy-provider \ - npm run build:dev + GIT_CEILING_DIRECTORIES= \ + pnpm run build:dev # purge non-production deps - npm prune --ignore-scripts --omit=dev + pnpm prune --ignore-scripts --prod # use our libsignal rm -rf node_modules/@signalapp/libsignal-client/ - mv libsignal/node/ node_modules/@signalapp/libsignal-client + cp -r "$builddir"/libsignal/node/ node_modules/@signalapp/libsignal-client # use our libringrtc rm -rf node_modules/@signalapp/ringrtc/ - mv ringrtc/src/node/ node_modules/@signalapp/ringrtc + cp -r "$builddir"/ringrtc/src/node/ node_modules/@signalapp/ringrtc - mkdir node_modules/@signalapp/better-sqlite3/tokenizer - mv Signal-FTS5-Extension/target/release/libsignal_tokenizer.a node_modules/@signalapp/better-sqlite3/tokenizer/ - mv Signal-FTS5-Extension/target/release/signal-tokenizer.h node_modules/@signalapp/better-sqlite3/tokenizer/ - - npm rebuild \ - sharp @signalapp/better-sqlite3 spellchecker websocket \ - utf-8-validate bufferutil fs-xattr \ - --nodedir=/usr/include/electron/node_headers --build-from-source + # use our sqlcipher + rm -rf node_modules/@signalapp/sqlcipher/ + cp -r "$builddir"/node-sqlcipher node_modules/@signalapp/sqlcipher SIGNAL_ENV=production \ tasje pack } check() { + cd "$builddir"/Signal-Desktop # tests run against downloaded build of electron for glibc, probably can be patched - npm run test + pnpm run test } package() { - cd "$builddir"/tasje_out + cd "$builddir"/Signal-Desktop/tasje_out install -Dm644 resources/app.asar "$pkgdir"/usr/lib/$pkgname/app.asar cp -r resources/app.asar.unpacked "$pkgdir"/usr/lib/$pkgname/app.asar.unpacked @@ -439,7 +469,7 @@ package() { # this should be in /usr/lib/signal-desktop. however, it does not simply work and I stopped to care install -Dm755 "$builddir"/ringrtc/out/release/libsignaldeswebrtc.so "$pkgdir"/usr/lib/libsignaldeswebrtc.so - install -Dm755 "$srcdir"/signal-desktop "$pkgdir"/usr/bin/signal-desktop + install -Dm755 "$srcdir"/signal-desktop.sh "$pkgdir"/usr/bin/signal-desktop while read -r size; do install -Dm644 icons/$size.png "$pkgdir"/usr/share/icons/hicolor/$size/apps/$pkgname.png @@ -447,19 +477,23 @@ package() { } sha512sums=" -30e06721b01e580414c5e57b63350fc42edbe837b0a60a9cd100bc6ab1758fa6fd5744dc3a35d991db62f363eab791c45b43e1d9d5c81af9e67685114ae2e630 Signal-Desktop-7.34.0.tar.gz -26780a0a6a529cee18f5c3b58f0395c6b5b630dbc8d2bbaa345dd7dd319a0e8548575c915dc16de6ac5d421fffdbe898f2dedb1fa3b4eab5d26debdfc1da515b libsignal-0.60.2.tar.gz -e5e5ab27dc3bd37ef577c248d450e70fa11e72bdfab00fef233aad84d3d8aa3434166c03267f6b95b69d593e9da2f37017b5b7a0913f68499f387354742ba50a ringrtc-2.48.7.tar.gz -64eed5c2a6f5a505d014bc4fa80e15b21103df1ea27825eaa1dfecc23c269f198a7e98472f29de7cae4ac7fa4fede6e837c27494b8ec4d03e36b85b029c64831 webrtc-6723a.tar.zst -84a1f2fc29262a12842e94698d124a85b823128e72a493b0be8ea92fbb72c5c268499f4a6827cdedaae06ec73cce4039a39fe5c5d536cbef330e59ba0183da28 stokenizer-0.2.1.tar.gz +ca512bfdd8c78b6c440214db95347b59928314cd27d74b22828de5d701aaf8e675eb5c71603bb6a39fd224812204d9f656290637d402966760bdb3958d3923c8 Signal-Desktop-7.54.0.tar.gz +52d66cf2643402673858def81a9a3c98a0d16525e126c9e5ea1e3c62150f321e486c8c79bcea11a9636c9b05f541fdf0718869d52b9a789f05cad741ba37c7ad libsignal-0.70.0.tar.gz +8e32d75f9f8216106b6858d9ab58ad53f209408fc155fe27dec184c8c65c9ab5a3a93e9567953f209424ed435ccc6d4903a49a4edae36eb744a897cc02098312 ringrtc-2.51.0.tar.gz +592987c1661de464a4e6dee3081cb5fd32e5afdacdba43d901557a217e62301b4655009ad5bdc0c1dcff5e8b67d7acd68ac953cd638f31196162aa3ccdd9c63b node-sqlcipher-2.0.1.tar.gz +ba02cb0c293210f9a683b0e08c6acbe84f5b78089329ec017b0db3493b38ccf39e92c49c2475dc66b5ce3bfe060686718cb5053787e2d61ed320dadb22891989 webrtc-6998b.tar.zst 8d2d2d82c8546c2dd1fef161b61df79918f8c22235a56a46adb375a0beb4acef12c5fe53e67242a4be97f77adc522ff79b47949c352956c742a70d50f4179f7f libsignal-auditable.patch -cee74edb504ee5ae685e8a449ac35fabf949c33bfee5905778f850c3b18e17f9ae9bd501c89a7fd2c9c81a5bb2b0af0c0b3c72e32128603b3923c32d2a493ce9 signal-use-system-sqlcipher.patch -152435231cdcf52a17a9e24aadf95d77511258e818172941ba074a73a90a541f0136feb58868674f2bcb19191a6d12933fe6cd5baf3ee99e508915c72523163b signal-disable-updates.patch -d50eb5724502df9ea4d795db8cfc27af767c25168d7db2af512e615be7cc2ca290210a9ae78e1abb153c0198677e858ad3d74926c958099d0319295e7d9e7f1d signal-update-links.patch -bfc8acdd13aa48d29c7657311733cc9d33c4899782efbd1ef6d25ad1698be4de7cc67e829324bc0309715d69ae37ea9f782cf54887317e817213e110d73d68e7 signal-show-window-please.patch -10284e0d86ab88de161ae689871082194f689ce416f3ebada8991d5db707994ea1cb8b4212756dd93ba5a3469964050988220f18afc37e38f3404a6e17ec8caf ringrtc-webrtc-renamed.patch +7ee747c8aaa9d6e9149fe0a031e3d4cc9e9c08f22c42076bd05e2acb86952f8170032613d13a53716010edfa3f26ad97b530e82460318eb46a42e28cf5faeb9d signal-use-system-sqlcipher.patch +fc2af28645364cd85c106304a26811b036f6be048c52137fbbcc112870a84132a181f532563e0569b560fde3cf8c02480666a9b01d804b0008f97c728005b1c7 signal-disable-updates.patch +853de84d636f730694f17bcec63463fa7bfbdd0a7f7a64618a8fc6bc523ce1a9854b4c651753735af735c18101295d3efbe54f83ae0bccbed83c8c1fee3e7049 signal-update-links.patch +882d6889b23a3ebc6449c8b6acec8c3853674a7e94f066d65b57bab674ba8c11d582ba2c760825cb67b9202716e6d8b7123001d1e9f9229e49a0b77e9d978265 signal-show-window-please.patch +aca92e4de6cd005d660d7e8b99607de96ca2d7dc220e3465247d517e915e4d41a4b0eb519e85c5eca1c81cd8bac9821acd03ff57f1603918987829c6ea7757b4 signal-rollback-locale-changes.patch +961568777b86f8fbcc73360252123686c9d1e16b2650f23d8afbc6d7580d53024f81b62e9e9cbdcd0031b5cf99854bd47c6dd4580197f2b27b8b4cbb51c6c9c9 signal-do-not-package-sqlcipher-deps.patch +02a648bb8541a39c75fec2db39f024a27976afca41908eefa2fe1f2e30b05b5d59f980ccc930021c0b0c09ba8b0cbcae071e9f0dd530543c667adbc4272af552 ringrtc-webrtc-renamed.patch 98a7e4df27c3ed56c5968ebc3ae8e08bfb54362d0c910f9af1d414079a6d5fe0f18aa570ae3c38042f4691af6a130cb3ff689625e26a3987720dd319a5f587b1 webrtc-shared-libs.patch -fe78cdc58c18826fc4227cc8e9377980766229390544578f6a1a6f7322bc3243c066963b589323dbfe4f2bfd37f8859ad84f63cb3783317892e5ae3652270a3a webrtc-compiler.patch -48ab5c733e643eaff08ccbe839086bebbb68d397984ad7c5c5b68df8071f75d2dfe92c3f52d9fbf9b81754934bdfa8a67c69addd476ce4265b978592fb4ff9bd webrtc-gcc13.patch -87534e7b5ad7365509eab75629e6bd1a9ed61ee92f7e358405a0abaf0df57de14623fb3894eb082f8785422e5c087e1c50f9e2e5cafbb2529591fd7bf447f7f5 signal-desktop +897174fa3b1eaa74a3b2d7d861863a9f60550ddb0d7be700cd590600efdc3bd962f52c21e371276eaf8d5657c98fe8ade9853b0197b61a68d5dce6fa03b5899b webrtc-compiler.patch +3f1095861a79862ab5a55c86d7e353d272974617afba39e4d4441024bede8d7b9b8e122da90d56a9c3c0965171803d6b9e29e91d78167a08c6bcc86b3eedab18 webrtc-gcc13.patch +8f53dcf3264c5cec338f037e57a7770ec939ee06dfb0c5dfeab23967a3a64d3f861a6b5419766ac892676036b4522bce2f47279ca3658b5c0b6a31c82ac05053 webrtc-rollback-red.patch +f8bd574a0de077a643ced26e8a0e3f162e014bbf91c957bbefd113883a70e2b63e483bf400b7e2da8d09edfe76d4f6a257f194a14124f344f1625c5632d12acb webrtc-rollback-3rdparty-build-gn.patch +87534e7b5ad7365509eab75629e6bd1a9ed61ee92f7e358405a0abaf0df57de14623fb3894eb082f8785422e5c087e1c50f9e2e5cafbb2529591fd7bf447f7f5 signal-desktop.sh " diff --git a/backports/signal-desktop/README.md b/backports/signal-desktop/README.md new file mode 100644 index 0000000..a23f037 --- /dev/null +++ b/backports/signal-desktop/README.md @@ -0,0 +1,61 @@ +# signal-desktop + +This is the `signal-desktop` package for Alpine Linux. + +Please report any issues [using Gitlab](https://gitlab.alpinelinux.org/alpine/aports/-/issues/new) and tag @ayakael + +## Building signal-desktop + +Signal-desktop is an electron application that is rather complex to build + +The first layer of complexity is the use of dependencies that are themselves +rather complex to build. Some are based on nodejs, others rust. Those +dependencies are built before signal-desktop, like ringrtc, webrtc and +libsignal. The versions of those dependencies are tracked in different files, +which adds complexity when maintaining the package. Executing `abuild +_update_depends` automatically fetches the expected versions and updates +the relevant variables. + +A second layer of complexity is that webrtc's source code isn't available as a +downloadable tarball. It is only fetchable using Google's `gclient` available +in `depot_tools` with a reimplemented version in the `teapot` package. By +executing, `abuild snapshot`, webrtc tarball can be fetched and packaged, as +long as `gclient` is in your path. For ease of maintenance, a workflow on +[Ayakael's Forge](https://ayakael.net/mirrors/signal-desktop) automatically +fetches and packages the source code and makes it available in a [generic +Forgejo repository](https://ayakael.net/mirrors/-/packages/generic/webrtc). + +## Updating signal-desktop + +In a nutshell: + +1. Set `pkgver` to up-to-date version + +2. Update the dependency versions using `abuild _update_depends` + +3. Optional: fetch webrtc using `abuild snapshot`, making sure `client` +is in your path + +4. Update source checksum using `abuild checksum` + +## Finding dependency version information + +Here is where the version information is stored. It is different for every +extra dependency. + +* _libsignalver: follow signal-desktop package.json -> +@signalapp/libsignal-client +* _ringrtcver: follow signal-desktop package.json -> @signalapp/ringrtc +* _webrtcver: follow ringrtc (on version above) -> config/version.properties -> +webrtc.version downloading tarball generated with abuild snapshot (with gclient +dependencies fetched) +* _stokenizerver: follow @signalapp/better-sqlite3 (on version in package.json) +-> deps/download.js -> TOKENIZER_VERSION + +## Why is this package still in testing + +As `electron` is still in testing, this package cannot yet be moved to +`community`. Until that changes, this package is also kept-to-date against the +latest release of Alpine Linux (along with `electron`) in +[Ayakael's Forge](https://ayakael.net/forge/-/packages/alpine/signal-desktop). +This is true of all Ayakael's packages still in `testing`. diff --git a/backports/signal-desktop/ringrtc-webrtc-renamed.patch b/backports/signal-desktop/ringrtc-webrtc-renamed.patch index 6f8a2b3..6e5e6d1 100644 --- a/backports/signal-desktop/ringrtc-webrtc-renamed.patch +++ b/backports/signal-desktop/ringrtc-webrtc-renamed.patch @@ -1,20 +1,22 @@ ---- ./ringrtc/src/rust/build.rs.orig -+++ ./ringrtc/src/rust/build.rs -@@ -79,6 +79,7 @@ - +diff --git a/ringrtc/src/rust/build.rs.orig b/ringrtc/src/rust/build.rs +index ff2ce04d1cf..ccdaaaef84d 100644 +--- a/ringrtc/src/rust/build.rs.orig ++++ b/ringrtc/src/rust/build.rs +@@ -61,6 +61,7 @@ fn main() { if cfg!(feature = "native") { - let webrtc_dir = if cfg!(feature = "prebuilt_webrtc") { -+ panic!("trying to download prebuild webrtc"); - if let Err(e) = fs::create_dir_all(&out_dir) { - panic!("Failed to create webrtc out directory: {:?}", e); - } -@@ -86,12 +87,12 @@ - // Ignore build type since we only have release prebuilts - format!("{}/release/obj/", out_dir) - } else { -- format!("{}/{}/obj", out_dir, build_type) -+ format!("{}/{}", out_dir, build_type) - }; + let webrtc_dir = + if cfg!(feature = "prebuilt_webrtc") || cfg!(feature = "prebuilt_webrtc_sim") { ++ panic!("trying to download prebuild webrtc"); + if let Err(e) = fs::create_dir_all(&out_dir) { + panic!("Failed to create webrtc out directory: {:?}", e); + } +@@ -74,12 +75,12 @@ fn main() { + // Ignore build type since we only have release prebuilts + format!("{}/release/obj/", out_dir) + } else { +- format!("{}/{}/obj", out_dir, build_type) ++ format!("{}/{}", out_dir, build_type) + }; println!("cargo:rerun-if-changed={}", webrtc_dir); println!("cargo:rerun-if-changed={}", config_dir()); println!("cargo:rustc-link-search=native={}", webrtc_dir); diff --git a/backports/signal-desktop/signal-desktop.sh b/backports/signal-desktop/signal-desktop.sh new file mode 100755 index 0000000..370469c --- /dev/null +++ b/backports/signal-desktop/signal-desktop.sh @@ -0,0 +1,6 @@ +#!/bin/sh + +# app chooses config (including used endpoints) based on this +export NODE_ENV=production + +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 9b9c134..f5496f4 100644 --- a/backports/signal-desktop/signal-disable-updates.patch +++ b/backports/signal-desktop/signal-disable-updates.patch @@ -1,5 +1,5 @@ ---- a/config/production.json -+++ b/config/production.json +--- a/Signal-Desktop/config/production.json ++++ b/Signal-Desktop/config/production.json @@ -16,5 +16,5 @@ "serverTrustRoot": "BXu6QIKVz5MA8gstzfOgRQGqyLqOwNKHL6INkv3IHWMF", "genericServerPublicParams": "AByD873dTilmOSG0TjKrvpeaKEsUmIO8Vx9BeMmftwUs9v7ikPwM8P3OHyT0+X3EUMZrSe9VUp26Wai51Q9I8mdk0hX/yo7CeFGJyzoOqn8e/i4Ygbn5HoAyXJx5eXfIbqpc0bIxzju4H/HOQeOpt6h742qii5u/cbwOhFZCsMIbElZTaeU+BWMBQiZHIGHT5IE0qCordQKZ5iPZom0HeFa8Yq0ShuEyAl0WINBiY6xE3H/9WnvzXBbMuuk//eRxXgzO8ieCeK8FwQNxbfXqZm6Ro1cMhCOF3u7xoX83QhpN", diff --git a/backports/signal-desktop/signal-do-not-package-sqlcipher-deps.patch b/backports/signal-desktop/signal-do-not-package-sqlcipher-deps.patch new file mode 100644 index 0000000..c91209d --- /dev/null +++ b/backports/signal-desktop/signal-do-not-package-sqlcipher-deps.patch @@ -0,0 +1,12 @@ +diff --git a/Signal-Desktop/package.json.orig b/Signal-Desktop/package.json +index 5b7b015e20a..bb348fdb4c2 100644 +--- a/Signal-Desktop/package.json.orig ++++ b/Signal-Desktop/package.json +@@ -607,6 +607,7 @@ + "node_modules/socks/build/client/*.js", + "node_modules/smart-buffer/build/*.js", + "node_modules/@signalapp/sqlcipher/prebuilds/${platform}-${arch}/*.node", ++ "!node_modules/@signalapp/sqlcipher/deps/**", + "node_modules/@signalapp/libsignal-client/prebuilds/${platform}-${arch}/*.node", + "!node_modules/@signalapp/ringrtc/scripts/*", + "node_modules/@signalapp/ringrtc/build/${platform}/*${arch}*.node", diff --git a/backports/signal-desktop/signal-rollback-locale-changes.patch b/backports/signal-desktop/signal-rollback-locale-changes.patch new file mode 100644 index 0000000..fce29a2 --- /dev/null +++ b/backports/signal-desktop/signal-rollback-locale-changes.patch @@ -0,0 +1,225 @@ +From a094a2ca2b6d8758b4aea24389c35fc4f142b715 Mon Sep 17 00:00:00 2001 +From: Fedor Indutny <79877362+indutny-signal@users.noreply.github.com> +Date: Mon, 3 Mar 2025 19:10:01 -0800 +Subject: [PATCH] Compactify locales even more + +Rollback of Compactify locales even more. For some reason, (maybe tasje?), +these new locales aren't working + +--- + app/locale.ts | 56 ++++++++++++++++-- + package.json | 2 +- + ts/scripts/generate-compact-locales.ts | 82 +++++++++++++++++++------- + 3 files changed, 112 insertions(+), 28 deletions(-) + + +diff --git a/Signal-Desktop/package.json.orig b/Signal-Desktop/package.json +index 04dd9f9200b..e7b69ef963f 100644 +--- a/Signal-Desktop/package.json.orig ++++ b/Signal-Desktop/package.json +@@ -538,10 +538,7 @@ + { + "from": "build/compact-locales", + "to": "_locales", +- "filter": [ +- "**/values.json", +- "keys.json" +- ] ++ "filter": "**/messages.json" + }, + "js/**", + "libtextsecure/**", +diff --git a/Signal-Desktop/app/locale.ts.orig b/Signal-Desktop/app/locale.ts +index a63eef4079d..2a959da4d0d 100644 +--- a/Signal-Desktop/app/locale.ts.orig ++++ b/Signal-Desktop/app/locale.ts +@@ -1,9 +1,8 @@ + // Copyright 2017 Signal Messenger, LLC + // SPDX-License-Identifier: AGPL-3.0-only + +-import { join } from 'node:path'; +-import { readFileSync } from 'node:fs'; +-import { app } from 'electron'; ++import { join } from 'path'; ++import { readFileSync } from 'fs'; + import { merge } from 'lodash'; + import * as LocaleMatcher from '@formatjs/intl-localematcher'; + import { z } from 'zod'; +@@ -16,9 +15,6 @@ import type { LocalizerType } from '../ts/types/Util'; + import * as Errors from '../ts/types/errors'; + import { parseUnknown } from '../ts/util/schemas'; + +-type CompactLocaleMessagesType = ReadonlyArray; +-type CompactLocaleKeysType = ReadonlyArray; +- + const TextInfoSchema = z.object({ + direction: z.enum(['ltr', 'rtl']), + }); +@@ -29,17 +25,6 @@ function getLocaleMessages(locale: string): LocaleMessagesType { + return JSON.parse(readFileSync(targetFile, 'utf-8')); + } + +-function getCompactLocaleKeys(): CompactLocaleKeysType { +- const targetFile = join(__dirname, '..', '_locales', 'keys.json'); +- return JSON.parse(readFileSync(targetFile, 'utf-8')); +-} +- +-function getCompactLocaleValues(locale: string): CompactLocaleMessagesType { +- const targetFile = join(__dirname, '..', '_locales', locale, 'values.json'); +- +- return JSON.parse(readFileSync(targetFile, 'utf-8')); +-} +- + export type LocaleDisplayNames = Record>; + export type CountryDisplayNames = Record>; + +@@ -154,42 +139,13 @@ export function load({ + + logger.info(`locale: Matched locale: ${matchedLocale}`); + ++ const matchedLocaleMessages = getLocaleMessages(matchedLocale); ++ const englishMessages = getLocaleMessages('en'); + const localeDisplayNames = getLocaleDisplayNames(); + const countryDisplayNames = getCountryDisplayNames(); + +- let finalMessages: LocaleMessagesType; +- if (app.isPackaged) { +- const matchedLocaleMessages = getCompactLocaleValues(matchedLocale); +- const englishMessages = getCompactLocaleValues('en'); +- const keys = getCompactLocaleKeys(); +- if (matchedLocaleMessages.length !== keys.length) { +- throw new Error( +- `Invalid "${matchedLocale}" entry count, ` + +- `${matchedLocaleMessages.length} != ${keys.length}` +- ); +- } +- if (englishMessages.length !== keys.length) { +- throw new Error( +- `Invalid "en" entry count, ${englishMessages.length} != ${keys.length}` +- ); +- } +- +- // We start with english, then overwrite that with anything present in locale +- finalMessages = Object.create(null); +- for (const [i, key] of keys.entries()) { +- finalMessages[key] = { +- messageformat: +- matchedLocaleMessages[i] ?? englishMessages[i] ?? undefined, +- }; +- } +- } else { +- const matchedLocaleMessages = getLocaleMessages(matchedLocale); +- const englishMessages = getLocaleMessages('en'); +- +- // We start with english, then overwrite that with anything present in locale +- finalMessages = merge(englishMessages, matchedLocaleMessages); +- } +- ++ // We start with english, then overwrite that with anything present in locale ++ const finalMessages = merge(englishMessages, matchedLocaleMessages); + const i18n = setupI18n(matchedLocale, finalMessages, { + renderEmojify: shouldNeverBeCalled, + }); +diff --git a/Signal-Desktop/ts/scripts/generate-compact-locales.ts.orig b/Signal-Desktop/ts/scripts/generate-compact-locales.ts +index 7187d287acc..9a17d638f44 100644 +--- a/Signal-Desktop/ts/scripts/generate-compact-locales.ts.orig ++++ b/Signal-Desktop/ts/scripts/generate-compact-locales.ts +@@ -3,49 +3,6 @@ + + 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'; +- +-async function compact({ +- sourceDir, +- targetDir, +- locale, +- keys, +-}: { +- sourceDir: string; +- targetDir: string; +- locale: string; +- keys: ReadonlyArray; +-}): Promise> { +- const sourcePath = join(sourceDir, locale, 'messages.json'); +- const targetPath = join(targetDir, locale, 'values.json'); +- +- await mkdir(dirname(targetPath), { recursive: true }); +- +- const json = JSON.parse(await readFile(sourcePath, 'utf8')); +- +- const result = new Array(); +- for (const key of keys) { +- if (json[key] == null) { +- // Pull English translation, or leave blank (string was deleted) +- result.push(null); +- continue; +- } +- +- const value = json[key]; +- if (!isLocaleMessageType(value)) { +- continue; +- } +- if (value.messageformat == null) { +- continue; +- } +- result.push(value.messageformat); +- } +- +- await writeFile(targetPath, JSON.stringify(result)); +- +- return keys; +-} + + async function main(): Promise { + const rootDir = join(__dirname, '..', '..'); +@@ -54,27 +11,30 @@ async function main(): Promise { + + const locales = await readdir(sourceDir); + +- const allKeys = await pMap( +- locales, +- async locale => { ++ await Promise.all( ++ locales.map(async locale => { + const sourcePath = join(sourceDir, locale, 'messages.json'); +- const json = JSON.parse(await readFile(sourcePath, 'utf8')); +- return Object.entries(json) +- .filter(([, value]) => isLocaleMessageType(value)) +- .map(([key]) => key); +- }, +- { concurrency: 10 } +- ); ++ const targetPath = join(targetDir, locale, 'messages.json'); + +- // Sort keys alphabetically for better incremental updates. +- const keys = Array.from(new Set(allKeys.flat())).sort(); +- await mkdir(targetDir, { recursive: true }); +- await writeFile(join(targetDir, 'keys.json'), JSON.stringify(keys)); ++ await mkdir(dirname(targetPath), { recursive: true }); + +- await pMap( +- locales, +- locale => compact({ sourceDir, targetDir, locale, keys }), +- { concurrency: 10 } ++ const json = JSON.parse(await readFile(sourcePath, 'utf8')); ++ for (const value of Object.values(json)) { ++ const typedValue = value as { description?: string }; ++ delete typedValue.description; ++ } ++ delete json.smartling; ++ ++ const entries = [...Object.entries(json)]; ++ ++ // Sort entries alphabetically for better incremental updates. ++ entries.sort(([a], [b]) => { ++ return a < b ? -1 : 1; ++ }); ++ ++ const result = Object.fromEntries(entries); ++ await writeFile(targetPath, JSON.stringify(result)); ++ }) + ); + } + diff --git a/backports/signal-desktop/signal-show-window-please.patch b/backports/signal-desktop/signal-show-window-please.patch index 73c94af..c8c5a65 100644 --- a/backports/signal-desktop/signal-show-window-please.patch +++ b/backports/signal-desktop/signal-show-window-please.patch @@ -1,7 +1,7 @@ -diff --git a/app/main.ts.orig b/app/main.ts +diff --git a/Signal-Desktop/app/main.ts.orig b/Signal-Desktop/app/main.ts index aa1bec8..bd7c1d5 100644 ---- a/app/main.ts.orig -+++ b/app/main.ts +--- a/Signal-Desktop/app/main.ts.orig ++++ b/Signal-Desktop/app/main.ts @@ -690,7 +690,7 @@ async function createWindow() { : DEFAULT_HEIGHT; diff --git a/backports/signal-desktop/signal-update-links.patch b/backports/signal-desktop/signal-update-links.patch index 39ec819..afd0b6b 100644 --- a/backports/signal-desktop/signal-update-links.patch +++ b/backports/signal-desktop/signal-update-links.patch @@ -1,5 +1,5 @@ ---- ./ts/components/DialogExpiredBuild.tsx.orig -+++ ./ts/components/DialogExpiredBuild.tsx +--- ./Signal-Desktop/ts/components/DialogExpiredBuild.tsx.orig ++++ ./Signal-Desktop/ts/components/DialogExpiredBuild.tsx @@ -23,9 +23,9 @@ containerWidthBreakpoint={containerWidthBreakpoint} type="error" @@ -12,8 +12,8 @@ hasAction > {i18n('icu:expiredWarning')}{' '} ---- ./ts/types/support.ts.orig -+++ ./ts/types/support.ts +--- ./Signal-Desktop/ts/types/support.ts.orig ++++ ./Signal-Desktop/ts/types/support.ts @@ -1,7 +1,7 @@ // Copyright 2023 Signal Messenger, LLC // SPDX-License-Identifier: AGPL-3.0-only diff --git a/backports/signal-desktop/signal-use-system-sqlcipher.patch b/backports/signal-desktop/signal-use-system-sqlcipher.patch index 22b2e2f..576ee66 100644 --- a/backports/signal-desktop/signal-use-system-sqlcipher.patch +++ b/backports/signal-desktop/signal-use-system-sqlcipher.patch @@ -1,26 +1,25 @@ -diff --git a/node_modules/@signalapp/better-sqlite3/binding.gyp.orig b/node_modules/@signalapp/better-sqlite3/binding.gyp -index c370c30b309..bf0207e6fec 100644 ---- a/node_modules/@signalapp/better-sqlite3/binding.gyp.orig -+++ b/node_modules/@signalapp/better-sqlite3/binding.gyp -@@ -7,7 +7,16 @@ +diff --git a/node-sqlcipher/binding.gyp.orig b/node-sqlcipher/binding.gyp +index 9a5caa2f713..8d3da54fea7 100644 +--- a/node-sqlcipher/binding.gyp.orig ++++ b/node-sqlcipher/binding.gyp +@@ -3,8 +3,15 @@ 'targets': [ { - 'target_name': 'better_sqlite3', -- 'dependencies': ['deps/sqlite3.gyp:sqlite3'], -+ 'include_dirs': [ + 'target_name': 'node_sqlcipher', ++ 'include_dirs': [ + '/usr/include/sqlcipher', -+ 'tokenizer', + ], + 'link_settings': { + 'libraries': [ + '-lsqlcipher', -+ ' #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 new file mode 100644 index 0000000..2c39a9e --- /dev/null +++ b/backports/signal-desktop/webrtc-pipewire-1.4.patch @@ -0,0 +1,23 @@ +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 new file mode 100644 index 0000000..6352e27 --- /dev/null +++ b/backports/signal-desktop/webrtc-rollback-3rdparty-build-gn.patch @@ -0,0 +1,31 @@ +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 new file mode 100644 index 0000000..c11eb07 --- /dev/null +++ b/backports/signal-desktop/webrtc-rollback-red.patch @@ -0,0 +1,136 @@ +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/soqt/APKBUILD b/backports/soqt/APKBUILD index 359bfb2..e4c6995 100644 --- a/backports/soqt/APKBUILD +++ b/backports/soqt/APKBUILD @@ -1,22 +1,23 @@ # Contributor: Aiden Grossman -# Maintainer: +# Maintainer: Antoine Martin (ayakael) pkgname=soqt -pkgver=1.6.0 -pkgrel=1 +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 qt5-qtbase-dev" +makedepends="coin-dev cmake mesa-dev 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/SoQt-$pkgver/soqt-$pkgver-src.tar.gz" +source="https://github.com/coin3d/soqt/releases/download/v$pkgver/soqt-$pkgver-src.tar.gz" builddir="$srcdir/$pkgname" build() { cmake -B build . \ -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_BUILD_TYPE=None \ + -DSOQT_BUILD_DOCUMENTATION=ON \ -DSOQT_BUILD_DOC_MAN=ON cmake --build build } @@ -26,5 +27,5 @@ package() { } sha512sums=" -4221e98f51cca4dda23043428e869b60ab4d994710f97c0f44cd82631ffad2bd8bbaf0b820434a4636892df663d66ecd2aec14b185972671b2d22c0fe242b553 soqt-1.6.0-src.tar.gz +8cef22cf4214dd03bb4639c1fff77c127bf80f99e3b7fb7c1c21c25a281aa484252414f4a48fa59b8b2485afe7920ce9e86366fd1343badc77b75b78d3ac4c53 soqt-1.6.3-src.tar.gz " diff --git a/backports/swig3/APKBUILD b/backports/swig3/APKBUILD new file mode 100644 index 0000000..4abe017 --- /dev/null +++ b/backports/swig3/APKBUILD @@ -0,0 +1,46 @@ +# Maintainer: Noel Kuntze +pkgname=swig3 +pkgver=3.0.12 +pkgrel=3 +pkgdesc="A compiler that makes it easy to integrate C and C++ code with scripting languages" +url="https://www.swig.org/" +arch="all" +license="GPL-3.0-only" +depends="guile" +makedepends="zlib-dev pcre-dev bison" +checkdepends="boost-dev perl-dev python3-dev diffutils" +options="!check" # Check for javascript fails +subpackages="$pkgname-doc" +source="https://downloads.sourceforge.net/swig/swig-$pkgver.tar.gz + swig-3.0.12-Fix-generated-code-for-constant-expressions-containi.patch +" + +builddir="$srcdir/swig-$pkgver" + +prepare() { + default_prepare + update_config_sub +} + +build() { + ./configure \ + --build=$CBUILD \ + --host=$CHOST \ + --prefix=/usr \ + --with-python3=/usr/bin/python3 \ + --program-suffix=3.0 + make +} + +check() { + env PERL5LIB=. make check +} + +package() { + make DESTDIR="$pkgdir" install + install -D -m644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE + install -D -m644 LICENSE-UNIVERSITIES "$pkgdir"/usr/share/licenses/$pkgname/LICENSE-UNIVERSITIES +} + +sha512sums="5eaa2e06d8e4197fd02194051db1e518325dbb074a4c55a91099ad9c55193874f577764afc9029409a41bd520a95154095f26e33ef5add5c102bb2c1d98d33eb swig-3.0.12.tar.gz +0cde94a04a3f914f6e1ac79866d199981600c0f4be18b52d08194de96d524027c6572eacd5c1e155a9007fc34ed9dece27dbcb974874de072fb42bf564978cd0 swig-3.0.12-Fix-generated-code-for-constant-expressions-containi.patch" diff --git a/backports/swig3/swig-3.0.12-Fix-generated-code-for-constant-expressions-containi.patch b/backports/swig3/swig-3.0.12-Fix-generated-code-for-constant-expressions-containi.patch new file mode 100644 index 0000000..7198c21 --- /dev/null +++ b/backports/swig3/swig-3.0.12-Fix-generated-code-for-constant-expressions-containi.patch @@ -0,0 +1,191 @@ +From 90ba174fcea1618af57aa594199541d47a89b7f6 Mon Sep 17 00:00:00 2001 +From: William S Fulton +Date: Sun, 17 Sep 2017 19:02:55 +0100 +Subject: [PATCH 1/2] Fix generated code for constant expressions containing + wchar_t L literals. + +Such as: + # define __WCHAR_MAX (0x7fffffff + L'\0') + +Reported on swig-user mailing list. +--- + CHANGES.current | 5 +++++ + Examples/test-suite/csharp/preproc_constants_c_runme.cs | 3 ++- + Examples/test-suite/csharp/preproc_constants_runme.cs | 2 ++ + Examples/test-suite/d/preproc_constants_c_runme.1.d | 2 ++ + Examples/test-suite/d/preproc_constants_c_runme.2.d | 2 ++ + Examples/test-suite/d/preproc_constants_runme.1.d | 2 ++ + Examples/test-suite/d/preproc_constants_runme.2.d | 2 ++ + Examples/test-suite/php/preproc_constants_c_runme.php | 2 ++ + Examples/test-suite/php/preproc_constants_runme.php | 2 ++ + Examples/test-suite/php5/preproc_constants_c_runme.php | 2 ++ + Examples/test-suite/php5/preproc_constants_runme.php | 2 ++ + Examples/test-suite/preproc_constants.i | 3 +++ + Source/CParse/parser.y | 2 +- + 13 files changed, 29 insertions(+), 2 deletions(-) + +#diff --git a/CHANGES.current b/CHANGES.current +#index 1e4a244..b455a9f 100644 +#--- a/CHANGES.current +#+++ b/CHANGES.current +#@@ -7,6 +7,11 @@ the issue number to the end of the URL: https://github.com/swig/swig/issues/ +# Version 4.0.0 (in progress) +# =========================== +# +#+2017-09-17: wsfulton +#+ Fix generated code for constant expressions containing wchar_t L literals such as: +#+ # define __WCHAR_MAX (0x7fffffff + L'\0') +#+ # define __WCHAR_MIN (-__WCHAR_MAX - 1) +#+ +# 2017-09-10: mlamarre +# [Python] Patch #1083. Define_DEBUG to 1 to do exactly like Visual Studio +# /LDd, /MDd or /MTd compiler options. +diff --git a/Examples/test-suite/csharp/preproc_constants_c_runme.cs b/Examples/test-suite/csharp/preproc_constants_c_runme.cs +index 76c684d..1c28e49 100644 +--- a/Examples/test-suite/csharp/preproc_constants_c_runme.cs ++++ b/Examples/test-suite/csharp/preproc_constants_c_runme.cs +@@ -61,7 +61,8 @@ public class runme { + assert( typeof(int) == preproc_constants_c.EXPR_LAND.GetType() ); + assert( typeof(int) == preproc_constants_c.EXPR_LOR.GetType() ); + assert( typeof(double) == preproc_constants_c.EXPR_CONDITIONAL.GetType() ); +- ++ assert( typeof(int) == preproc_constants_c.EXPR_WCHAR_MAX.GetType() ); ++ assert( typeof(int) == preproc_constants_c.EXPR_WCHAR_MIN.GetType() ); + } + static void assert(bool assertion) { + if (!assertion) +diff --git a/Examples/test-suite/csharp/preproc_constants_runme.cs b/Examples/test-suite/csharp/preproc_constants_runme.cs +index 9fae591..6b02e30 100644 +--- a/Examples/test-suite/csharp/preproc_constants_runme.cs ++++ b/Examples/test-suite/csharp/preproc_constants_runme.cs +@@ -60,6 +60,8 @@ public class runme { + assert( typeof(bool) == preproc_constants.EXPR_LAND.GetType() ); + assert( typeof(bool) == preproc_constants.EXPR_LOR.GetType() ); + assert( typeof(double) == preproc_constants.EXPR_CONDITIONAL.GetType() ); ++ assert( typeof(int) == preproc_constants.EXPR_WCHAR_MAX.GetType() ); ++ assert( typeof(int) == preproc_constants.EXPR_WCHAR_MIN.GetType() ); + + } + static void assert(bool assertion) { +diff --git a/Examples/test-suite/d/preproc_constants_c_runme.1.d b/Examples/test-suite/d/preproc_constants_c_runme.1.d +index d846c71..2b349af 100644 +--- a/Examples/test-suite/d/preproc_constants_c_runme.1.d ++++ b/Examples/test-suite/d/preproc_constants_c_runme.1.d +@@ -61,4 +61,6 @@ void main() { + static assert(is(int == typeof(EXPR_LAND()))); + static assert(is(int == typeof(EXPR_LOR()))); + static assert(is(double == typeof(EXPR_CONDITIONAL()))); ++ static assert(is(int == typeof(EXPR_WCHAR_MAX()))); ++ static assert(is(int == typeof(EXPR_WCHAR_MIN()))); + } +diff --git a/Examples/test-suite/d/preproc_constants_c_runme.2.d b/Examples/test-suite/d/preproc_constants_c_runme.2.d +index 9bdbb93..1bac525 100644 +--- a/Examples/test-suite/d/preproc_constants_c_runme.2.d ++++ b/Examples/test-suite/d/preproc_constants_c_runme.2.d +@@ -61,4 +61,6 @@ void main() { + static assert(is(int == typeof(EXPR_LAND()))); + static assert(is(int == typeof(EXPR_LOR()))); + static assert(is(double == typeof(EXPR_CONDITIONAL()))); ++ static assert(is(int == typeof(EXPR_WCHAR_MAX()))); ++ static assert(is(int == typeof(EXPR_WCHAR_MIN()))); + } +diff --git a/Examples/test-suite/d/preproc_constants_runme.1.d b/Examples/test-suite/d/preproc_constants_runme.1.d +index 009405f..f743f48 100644 +--- a/Examples/test-suite/d/preproc_constants_runme.1.d ++++ b/Examples/test-suite/d/preproc_constants_runme.1.d +@@ -60,4 +60,6 @@ void main() { + static assert(is(bool == typeof(EXPR_LAND()))); + static assert(is(bool == typeof(EXPR_LOR()))); + static assert(is(double == typeof(EXPR_CONDITIONAL()))); ++ static assert(is(int == typeof(EXPR_WCHAR_MAX()))); ++ static assert(is(int == typeof(EXPR_WCHAR_MIN()))); + } +diff --git a/Examples/test-suite/d/preproc_constants_runme.2.d b/Examples/test-suite/d/preproc_constants_runme.2.d +index 2d92ef0..0d96c37 100644 +--- a/Examples/test-suite/d/preproc_constants_runme.2.d ++++ b/Examples/test-suite/d/preproc_constants_runme.2.d +@@ -60,4 +60,6 @@ void main() { + static assert(is(bool == typeof(EXPR_LAND()))); + static assert(is(bool == typeof(EXPR_LOR()))); + static assert(is(double == typeof(EXPR_CONDITIONAL()))); ++ static assert(is(int == typeof(EXPR_WCHAR_MAX()))); ++ static assert(is(int == typeof(EXPR_WCHAR_MIN()))); + } +diff --git a/Examples/test-suite/php/preproc_constants_c_runme.php b/Examples/test-suite/php/preproc_constants_c_runme.php +index af9b76e..e59fe18 100644 +--- a/Examples/test-suite/php/preproc_constants_c_runme.php ++++ b/Examples/test-suite/php/preproc_constants_c_runme.php +@@ -62,5 +62,7 @@ check::equal(gettype(preproc_constants_c::EXPR_OR), "integer", "preproc_constant + check::equal(gettype(preproc_constants_c::EXPR_LAND), "integer", "preproc_constants.EXPR_LAND has unexpected type"); + check::equal(gettype(preproc_constants_c::EXPR_LOR), "integer", "preproc_constants.EXPR_LOR has unexpected type"); + check::equal(gettype(preproc_constants_c::EXPR_CONDITIONAL), "double", "preproc_constants.EXPR_CONDITIONAL has unexpected type"); ++check::equal(gettype(preproc_constants_c::EXPR_WCHAR_MAX), "integer", "preproc_constants.EXPR_WCHAR_MAX has unexpected type"); ++check::equal(gettype(preproc_constants_c::EXPR_WCHAR_MIN), "integer", "preproc_constants.EXPR_WCHAR_MIN has unexpected type"); + + ?> +diff --git a/Examples/test-suite/php/preproc_constants_runme.php b/Examples/test-suite/php/preproc_constants_runme.php +index 5c9119b..8e117ea 100644 +--- a/Examples/test-suite/php/preproc_constants_runme.php ++++ b/Examples/test-suite/php/preproc_constants_runme.php +@@ -61,5 +61,7 @@ check::equal(gettype(preproc_constants::EXPR_OR), "integer", "preproc_constants. + check::equal(gettype(preproc_constants::EXPR_LAND), "boolean", "preproc_constants.EXPR_LAND has unexpected type"); + check::equal(gettype(preproc_constants::EXPR_LOR), "boolean", "preproc_constants.EXPR_LOR has unexpected type"); + check::equal(gettype(preproc_constants::EXPR_CONDITIONAL), "double", "preproc_constants.EXPR_CONDITIONAL has unexpected type"); ++check::equal(gettype(preproc_constants::EXPR_WCHAR_MAX), "integer", "preproc_constants.EXPR_WCHAR_MAX has unexpected type"); ++check::equal(gettype(preproc_constants::EXPR_WCHAR_MIN), "integer", "preproc_constants.EXPR_WCHAR_MIN has unexpected type"); + + ?> +diff --git a/Examples/test-suite/php5/preproc_constants_c_runme.php b/Examples/test-suite/php5/preproc_constants_c_runme.php +index 1ea0195..d978fab 100644 +--- a/Examples/test-suite/php5/preproc_constants_c_runme.php ++++ b/Examples/test-suite/php5/preproc_constants_c_runme.php +@@ -62,5 +62,7 @@ check::equal(gettype(preproc_constants_c::EXPR_OR), "integer", "preproc_constant + check::equal(gettype(preproc_constants_c::EXPR_LAND), "integer", "preproc_constants.EXPR_LAND has unexpected type"); + check::equal(gettype(preproc_constants_c::EXPR_LOR), "integer", "preproc_constants.EXPR_LOR has unexpected type"); + check::equal(gettype(preproc_constants_c::EXPR_CONDITIONAL), "double", "preproc_constants.EXPR_CONDITIONAL has unexpected type"); ++check::equal(gettype(preproc_constants_c::EXPR_WCHAR_MAX), "integer", "preproc_constants.EXPR_WCHAR_MAX has unexpected type"); ++check::equal(gettype(preproc_constants_c::EXPR_WCHAR_MIN), "integer", "preproc_constants.EXPR_WCHAR_MIN has unexpected type"); + + ?> +diff --git a/Examples/test-suite/php5/preproc_constants_runme.php b/Examples/test-suite/php5/preproc_constants_runme.php +index fb9ee4f..7527026 100644 +--- a/Examples/test-suite/php5/preproc_constants_runme.php ++++ b/Examples/test-suite/php5/preproc_constants_runme.php +@@ -70,5 +70,7 @@ check::equal(gettype(preproc_constants::EXPR_LAND), "integer", "preproc_constant + check::equal(gettype(preproc_constants::EXPR_LOR), "integer", "preproc_constants.EXPR_LOR has unexpected type"); + + check::equal(gettype(preproc_constants::EXPR_CONDITIONAL), "double", "preproc_constants.EXPR_CONDITIONAL has unexpected type"); ++check::equal(gettype(preproc_constants::EXPR_WCHAR_MAX), "integer", "preproc_constants.EXPR_WCHAR_MAX has unexpected type"); ++check::equal(gettype(preproc_constants::EXPR_WCHAR_MIN), "integer", "preproc_constants.EXPR_WCHAR_MIN has unexpected type"); + + ?> +diff --git a/Examples/test-suite/preproc_constants.i b/Examples/test-suite/preproc_constants.i +index 3a999ad..16b44c9 100644 +--- a/Examples/test-suite/preproc_constants.i ++++ b/Examples/test-suite/preproc_constants.i +@@ -87,6 +87,9 @@ + #define EXPR_LOR 0xFF || 1 + #define EXPR_CONDITIONAL true ? 2 : 2.2 + ++#define EXPR_WCHAR_MAX (0x7fffffff + L'\0') ++#define EXPR_WCHAR_MIN (-EXPR_WCHAR_MAX - 1) ++ + #define EXPR_CHAR_COMPOUND_ADD 'A' + 12 + #define EXPR_CHAR_COMPOUND_LSHIFT 'B' << 6 + #define H_SUPPRESS_SCALING_MAGIC (('s'<<24) | ('u'<<16) | ('p'<<8) | 'p') +diff --git a/Source/CParse/parser.y b/Source/CParse/parser.y +index 2e92cd0..273dadb 100644 +--- a/Source/CParse/parser.y ++++ b/Source/CParse/parser.y +@@ -194,7 +194,7 @@ int SWIG_cparse_template_reduce(int treduce) { + * ----------------------------------------------------------------------------- */ + + static int promote_type(int t) { +- if (t <= T_UCHAR || t == T_CHAR) return T_INT; ++ if (t <= T_UCHAR || t == T_CHAR || t == T_WCHAR) return T_INT; + return t; + } + +-- +2.9.5 + From 0261319dda85376b6132081585ac4157df93339e Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Wed, 21 May 2025 23:01:10 -0400 Subject: [PATCH 036/210] backports/electron: upgrade to 35.4.0 --- backports/electron/APKBUILD | 6 +++--- .../electron/electron_unbundle-node.patch | 21 +++++++++++++++++++ 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/backports/electron/APKBUILD b/backports/electron/APKBUILD index 424b602..21ed96e 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.3.0 +pkgver=35.4.0 _gittag=v"${pkgver/_beta/-beta.}" pkgrel=0 _chromium=134.0.6998.205 @@ -545,7 +545,7 @@ lang() { } sha512sums=" -7dd33e03f30b753a52a8801bd8aaffbd4229280df0c6754e2fadbf6d22e7f89f9bb1db0b30de0c403e9f61a09b1989e9b810d2cb7e8a301724132c20540618ef electron-v35.3.0-134.0.6998.205.tar.zst +30a116328f9a5af05b16cf85e31672407c51aef895b29441220f439d66af947272daa8e2ac88d9e4b8f7a9e0bb883932c36d2f1642fd18c5da885931c1c97fe0 electron-v35.4.0-134.0.6998.205.tar.zst c1857b5d6975650f915f3db552666f521822b857e39958ccfb54129f3878f272deaafc3dd446bc8441a5e84f075791feeeb62841b74bb555d8c546bfe231d164 copium-134.0.tar.gz 29bb685e03356a77df5fd347cdf55194cc8b3265c421cc76e54d64edefc329dbcb052deb26b22e8f587ce68456876c071de1b7d258dd0fcc6ee66c875ec4a020 chromium-revert-drop-of-system-java.patch d9cc4a37a0311d23ae315a8d8124f8dbf60db8cc4a3943818638174b20387f1d770d00871f6608957b246ad956abca43c22ea0b072724287f2947e1909e47323 compiler.patch @@ -569,7 +569,7 @@ e48693e6b7aeebf69a5acbf80d9a35defe4c23835121dfeb58b051ac7c527e758a41004f4d193274 465107da7818b237e3c144a318ab80c3c9343b51ed38b8971ef204692d13346929becbe94cefad4c153788d3a200642143584d5ca070f6304e768ba2139c19ec electron_icon.patch e05180199ee1d559e4e577cedd3e589844ecf40d98a86321bf1bea5607b02eeb5feb486deddae40e1005b644550331f6b8500177aa7e79bcb3750d3c1ceb76c3 electron_python-jinja-3.10.patch 2aa340854316f1284217c0ca17cbf44953684ad6c7da90815117df30928612eb9fb9ffb734b948dfc309cd25d1a67cd57f77aac2d052a3dd9aca07a3a58cbb30 electron_webpack-hash.patch -1ab45199c5eb896f57407876e9ca435af3ed63a65136f97526f6a07c3a2db223e646ea365630b0eda441ea88dbb0c07ab00b77de25edce07453f038c5339203d electron_unbundle-node.patch +c7f57929943a86f9e5f333da9d5691da88038770eeb46dd0a0719962c934deb2879f0e7a1ed714e9383e38ee4d68eb754501f362c4d7cdee76cfc2e980b21272 electron_unbundle-node.patch 4d9287d4cdfe27fbfb7be3d4b26c0c40edbd6a0c3ff926d60f2093ca09c15bcb58e20c2ccc8c0606aafd66c6d25a54225bc329cb056d8c5b297db4c6d0e768e6 electron_system-zlib-headers.patch e8ea87c547546011c4c8fc2de30e4f443b85cd4cfcff92808e2521d2f9ada03feefb8e1b0cf0f6b460919c146e56ef8d5ad4bb5e2461cc5247c30d92eb4d068e default.conf 191559fc7aa1ea0353c6fb0cc321ee1d5803a0e44848c8be941cfab96277b0de6a59962d373e2a2a1686c8f9be2bcf2d2f33706759a339a959e297d3f7fda463 electron.desktop diff --git a/backports/electron/electron_unbundle-node.patch b/backports/electron/electron_unbundle-node.patch index 8392a85..d518d7e 100644 --- a/backports/electron/electron_unbundle-node.patch +++ b/backports/electron/electron_unbundle-node.patch @@ -120,3 +120,24 @@ index d61a9bd..8bf990e 100644 } } } +diff --git a/third_party/electron_node/unofficial.gni.orig b/third_party/electron_node/unofficial.gni +index 6bcc40b..7e383b2 100644 +--- a/third_party/electron_node/unofficial.gni.orig ++++ b/third_party/electron_node/unofficial.gni +@@ -142,7 +142,6 @@ template("node_gn_build") { + public_configs = [ + ":node_external_config", + "deps/googletest:googletest_config", +- ":zstd_include_config" + ] + public_deps = [ + "deps/ada", +@@ -163,8 +162,6 @@ template("node_gn_build") { + "//third_party/zlib", + "//third_party/brotli:dec", + "//third_party/brotli:enc", +- "//third_party/zstd:decompress", +- "//third_party/zstd:headers", + "$node_simdutf_path", + "$node_v8_path:v8_libplatform", + ] From b4c27f6e3e6f81013e41c272de9cff486d61c95c Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 18:13:10 -0400 Subject: [PATCH 037/210] backports/dex: drop due to in community --- backports/dex/APKBUILD | 26 -------------------------- 1 file changed, 26 deletions(-) delete mode 100644 backports/dex/APKBUILD diff --git a/backports/dex/APKBUILD b/backports/dex/APKBUILD deleted file mode 100644 index 2b9e1e0..0000000 --- a/backports/dex/APKBUILD +++ /dev/null @@ -1,26 +0,0 @@ -# Contributor: Anjandev Momi -# Maintainer: Anjandev Momi -pkgname=dex -pkgver=0.10.1 -pkgrel=0 -pkgdesc="program to generate and execute DesktopEntry files of the Application type" -url="https://github.com/jceb/dex" -arch="all" -license="GPL-3.0-or-later" -depends="python3" -makedepends="py3-sphinx" -subpackages="$pkgname-doc" -source="$pkgname-$pkgver.tar.gz::https://github.com/jceb/dex/archive/refs/tags/v$pkgver.tar.gz" -options="!check" # no testsuite - -build() { - make -} - -package() { - make install PREFIX=/usr MANPREFIX=/usr/share/man DESTDIR="$pkgdir" -} - -sha512sums=" -4832e60416f07b90d4f4d03d6493322ccd44a73270edf289d80136587859d137cf39db12fc5cf38d3bdfa46aae3a4d1353c7776e702240b560a287190bdc2b57 dex-0.10.1.tar.gz -" From 1f49286ca28c1f57d9f83c12b73cc6e0c52dfe8f Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 18:14:06 -0400 Subject: [PATCH 038/210] backports/gn: drop due to needed version --- backports/gn/APKBUILD | 59 ------------------------------------------- 1 file changed, 59 deletions(-) delete mode 100644 backports/gn/APKBUILD diff --git a/backports/gn/APKBUILD b/backports/gn/APKBUILD deleted file mode 100644 index b5ec871..0000000 --- a/backports/gn/APKBUILD +++ /dev/null @@ -1,59 +0,0 @@ -# Contributor: TBK -maintainer="lauren n. liberda " -pkgname=gn -pkgver=0_git20250311 -pkgrel=0 -_commit=18602f6cf1168cf78302024043edc02e8bad2ffb -pkgdesc="Meta-build system that generates build files for Ninja" -arch="all" -url="https://gn.googlesource.com/gn" -license="BSD-3-Clause" -depends="samurai" -makedepends="python3 zstd" -# gitiles has no clones -source="https://ab-sn.lnl.gay/gn-$_commit.tar.zst - " -builddir="$srcdir/gn" - -_distbucket="sakamoto/lnl-aports-snapshots/" -snapshot() { - clean - deps - mkdir -p "$srcdir" && cd "$srcdir" - git clone https://gn.googlesource.com/gn - ( - cd gn - git checkout -q $_commit - python3 ./build/gen.py - ) - rm -rf gn/.git - tar cf gn-$_commit.tar gn - zstd --auto-threads=logical --ultra --long -22 -T"${ZSTD_LIMIT:-0}" -vv gn-$_commit.tar \ - -o "$SRCDEST"/gn-$_commit.tar.zst - mcli cp "$SRCDEST"/gn-$_commit.tar.zst "$_distbucket" -} - -build() { - unset CFLAGS # all sources C++ but passes both - # Breaks build since upstream passes -Wno-format, - # annotated: "Use of %llx, which is supported by _UCRT, false positive" - CXXFLAGS="${CXXFLAGS/-Werror=format-security} -flto=auto" \ - python3 ./build/gen.py \ - --no-last-commit-position \ - --no-static-libstdc++ \ - --no-strip \ - --allow-warnings - ninja -C out -} - -check() { - ./out/gn_unittests -} - -package() { - install -Dm755 out/gn "$pkgdir"/usr/bin/gn -} - -sha512sums=" -9638e177bfd6eecc6af1a9323efa93dc65d1d1f3599037851d19ba076f3b0c9e91366c143e6b6e334fc63baa0bdad80415dbad4ec96585850b462e2904c836d6 gn-18602f6cf1168cf78302024043edc02e8bad2ffb.tar.zst -" From c319f2b6cae692e6b6a534b8c2b97aea21670099 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 18:15:00 -0400 Subject: [PATCH 039/210] backports/openssl1.1-compat: drop due to not necessary --- backports/openssl1.1-compat/APKBUILD | 168 ------------------ backports/openssl1.1-compat/man-section.patch | 54 ------ backports/openssl1.1-compat/ppc64.patch | 96 ---------- 3 files changed, 318 deletions(-) delete mode 100644 backports/openssl1.1-compat/APKBUILD delete mode 100644 backports/openssl1.1-compat/man-section.patch delete mode 100644 backports/openssl1.1-compat/ppc64.patch diff --git a/backports/openssl1.1-compat/APKBUILD b/backports/openssl1.1-compat/APKBUILD deleted file mode 100644 index fb31eaa..0000000 --- a/backports/openssl1.1-compat/APKBUILD +++ /dev/null @@ -1,168 +0,0 @@ -# Contributor: Ariadne Conill -# Maintainer: Timo Teras -pkgname=openssl1.1-compat -pkgver=1.1.1w -_abiver=${pkgver%.*} -pkgrel=1 -pkgdesc="toolkit for transport layer security (TLS) - version 1.1" -url="https://www.openssl.org/" -arch="all" -license="OpenSSL" -replaces="libressl" -depends_dev="!openssl-dev" -makedepends_build="perl" -makedepends_host="linux-headers" -makedepends="$makedepends_host $makedepends_build" -subpackages="$pkgname-dbg $pkgname-libs-static:_static $pkgname-dev - libcrypto$_abiver:_libcrypto libssl$_abiver:_libssl" -source="https://www.openssl.org/source/openssl-$pkgver.tar.gz - man-section.patch - ppc64.patch - " -builddir="$srcdir/openssl-$pkgver" -pcprefix="openssl$_abiver:pc:" - -# secfixes: -# 1.1.1u-r1: -# - CVE-2023-3446 -# 1.1.1t-r2: -# - CVE-2023-0465 -# 1.1.1t-r1: -# - CVE-2023-0464 -# 1.1.1t-r0: -# - CVE-2022-4304 -# - CVE-2022-4450 -# - CVE-2023-0215 -# - CVE-2023-0286 -# 1.1.1q-r0: -# - CVE-2022-2097 -# 1.1.1n-r0: -# - CVE-2022-0778 -# 1.1.1l-r0: -# - CVE-2021-3711 -# - CVE-2021-3712 -# 1.1.1k-r0: -# - CVE-2021-3449 -# - CVE-2021-3450 -# 1.1.1j-r0: -# - CVE-2021-23841 -# - CVE-2021-23840 -# - CVE-2021-23839 -# 1.1.1i-r0: -# - CVE-2020-1971 -# 1.1.1g-r0: -# - CVE-2020-1967 -# 1.1.1d-r3: -# - CVE-2019-1551 -# 1.1.1d-r1: -# - CVE-2019-1547 -# - CVE-2019-1549 -# - CVE-2019-1563 -# 1.1.1b-r1: -# - CVE-2019-1543 -# 1.1.1a-r0: -# - CVE-2018-0734 -# - CVE-2018-0735 -# 0: -# - CVE-2022-1292 -# - CVE-2022-2068 - -build() { - local _target _optflags - - # openssl will prepend crosscompile always core CC et al - CC=${CC#${CROSS_COMPILE}} - CXX=${CXX#${CROSS_COMPILE}} - CPP=${CPP#${CROSS_COMPILE}} - - # determine target OS for openssl - case "$CARCH" in - aarch64*) _target="linux-aarch64" ;; - arm*) _target="linux-armv4" ;; - ppc) _target="linux-ppc" ;; - ppc64) _target="linux-ppc64" ;; - ppc64le) _target="linux-ppc64le" ;; - x86) _target="linux-elf" ;; - x86_64) _target="linux-x86_64"; _optflags="enable-ec_nistp_64_gcc_128" ;; - s390x) _target="linux64-s390x";; - riscv64) _target="linux-generic64";; - loongarch64) _target="linux-generic64";; - *) msg "Unable to determine architecture from (CARCH=$CARCH)" ; return 1 ;; - esac - - # Configure assumes --options are for it, so can't use - # gcc's --sysroot fake this by overriding CC - [ -n "$CBUILDROOT" ] && CC="$CC --sysroot=$CBUILDROOT" - - # when cross building do not enable threads as libatomic is not avaiable - if [ "$CBUILD" != "$CHOST" ]; then - case $CARCH in - riscv64) _optflags="$_optflags no-threads";; - esac - fi - - perl ./Configure \ - $_target \ - --prefix=/usr \ - --libdir=/usr/lib \ - --openssldir=/etc/ssl1.1 \ - shared \ - no-zlib \ - no-async \ - no-comp \ - no-idea \ - no-mdc2 \ - no-rc5 \ - no-ec2m \ - no-sm2 \ - no-sm4 \ - no-ssl2 \ - no-ssl3 \ - no-seed \ - no-weak-ssl-ciphers \ - $_optflags \ - $CPPFLAGS \ - $CFLAGS \ - $LDFLAGS -Wa,--noexecstack - make -} - -check() { - # AFALG tests have a sporadic test failure, just delete the broken - # test for now. - rm -f test/recipes/30-test_afalg.t - - make test -} - -package() { - make DESTDIR="$pkgdir" install_sw install_ssldirs - # remove the script c_rehash - rm "$pkgdir"/usr/bin/c_rehash - mv -f "$pkgdir"/usr/bin/openssl "$pkgdir"/usr/bin/openssl$_abiver -} - -_libcrypto() { - pkgdesc="Crypto library from openssl" - replaces="libressl2.7-libcrypto" - - amove etc - amove usr/lib/libcrypto* - amove usr/lib/engines-$_abiver -} - -_libssl() { - pkgdesc="SSL shared libraries" - - amove usr/lib/libssl* -} - -_static() { - default_static -} - -sha512sums=" -b4c625fe56a4e690b57b6a011a225ad0cb3af54bd8fb67af77b5eceac55cc7191291d96a660c5b568a08a2fbf62b4612818e7cca1bb95b2b6b4fc649b0552b6d openssl-1.1.1w.tar.gz -43c3255118db6f5f340dc865c0f25ccbcafe5bf7507585244ca59b4d27daf533d6c3171aa32a8685cbb6200104bec535894b633de13feaadff87ab86739a445a man-section.patch -e040f23770d52b988578f7ff84d77563340f37c026db7643db8e4ef18e795e27d10cb42cb8656da4d9c57a28283a2828729d70f940edc950c3422a54fea55509 ppc64.patch -" diff --git a/backports/openssl1.1-compat/man-section.patch b/backports/openssl1.1-compat/man-section.patch deleted file mode 100644 index 0606897..0000000 --- a/backports/openssl1.1-compat/man-section.patch +++ /dev/null @@ -1,54 +0,0 @@ -From: Debian OpenSSL Team -Date: Sun, 5 Nov 2017 15:09:09 +0100 -Subject: man-section - ---- - Configurations/unix-Makefile.tmpl | 6 ++++-- - util/process_docs.pl | 3 ++- - 2 files changed, 6 insertions(+), 3 deletions(-) - -diff --git a/Configurations/unix-Makefile.tmpl b/Configurations/unix-Makefile.tmpl -index 1292053546f5..c034d21884d8 100644 ---- a/Configurations/unix-Makefile.tmpl -+++ b/Configurations/unix-Makefile.tmpl -@@ -183,7 +183,8 @@ HTMLDIR=$(DOCDIR)/html - # MANSUFFIX is for the benefit of anyone who may want to have a suffix - # appended after the manpage file section number. "ssl" is popular, - # resulting in files such as config.5ssl rather than config.5. --MANSUFFIX= -+MANSUFFIX=ssl -+MANSECTION=SSL - HTMLSUFFIX=html - - # For "optional" echo messages, to get "real" silence -@@ -726,7 +727,8 @@ uninstall_runtime: uninstall_programs uninstall_runtime_libs - @[ -n "$(INSTALLTOP)" ] || (echo INSTALLTOP should not be empty; exit 1) - @$(ECHO) "*** Installing manpages" - $(PERL) $(SRCDIR)/util/process_docs.pl \ -- "--destdir=$(DESTDIR)$(MANDIR)" --type=man --suffix=$(MANSUFFIX) -+ "--destdir=$(DESTDIR)$(MANDIR)" --type=man --suffix=$(MANSUFFIX) \ -+ --mansection=$(MANSECTION) - - uninstall_man_docs: - @$(ECHO) "*** Uninstalling manpages" -diff --git a/util/process_docs.pl b/util/process_docs.pl -index 30b149eb8fcc..424155ea808e 100755 ---- a/util/process_docs.pl -+++ b/util/process_docs.pl -@@ -37,6 +37,7 @@ GetOptions(\%options, - 'type=s', # The result type, 'man' or 'html' - 'suffix:s', # Suffix to add to the extension. - # Only used with type=man -+ 'mansection:s', # Section to put to manpage in - 'remove', # To remove files rather than writing them - 'dry-run|n', # Only output file names on STDOUT - 'debug|D+', -@@ -97,7 +98,7 @@ foreach my $section (sort @{$options{section}}) { - my $name = uc $podname; - my $suffix = { man => ".$podinfo{section}".($options{suffix} // ""), - html => ".html" } -> {$options{type}}; -- my $generate = { man => "pod2man --name=$name --section=$podinfo{section} --center=OpenSSL --release=$config{version} \"$podpath\"", -+ my $generate = { man => "pod2man --name=$name --section=$podinfo{section}$options{mansection} --center=OpenSSL --release=$config{version} \"$podpath\"", - html => "pod2html \"--podroot=$options{sourcedir}\" --htmldir=$updir --podpath=man1:man3:man5:man7 \"--infile=$podpath\" \"--title=$podname\" --quiet" - } -> {$options{type}}; - my $output_dir = catdir($options{destdir}, "man$podinfo{section}"); diff --git a/backports/openssl1.1-compat/ppc64.patch b/backports/openssl1.1-compat/ppc64.patch deleted file mode 100644 index c75ceed..0000000 --- a/backports/openssl1.1-compat/ppc64.patch +++ /dev/null @@ -1,96 +0,0 @@ -From 34ab13b7d8e3e723adb60be8142e38b7c9cd382a Mon Sep 17 00:00:00 2001 -From: Andy Polyakov -Date: Sun, 5 May 2019 18:25:50 +0200 -Subject: [PATCH] crypto/perlasm/ppc-xlate.pl: add linux64v2 flavour -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -This is a big endian ELFv2 configuration. ELFv2 was already being -used for little endian, and big endian was traditionally ELFv1 -but there are practical configurations that use ELFv2 with big -endian nowadays (Adélie Linux, Void Linux, possibly Gentoo, etc.) - -Reviewed-by: Paul Dale -Reviewed-by: Richard Levitte -(Merged from https://github.com/openssl/openssl/pull/8883) ---- - crypto/perlasm/ppc-xlate.pl | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/crypto/perlasm/ppc-xlate.pl b/crypto/perlasm/ppc-xlate.pl -index e52f2f6ea62..5fcd0526dff 100755 ---- a/crypto/perlasm/ppc-xlate.pl -+++ b/crypto/perlasm/ppc-xlate.pl -@@ -49,7 +49,7 @@ - /osx/ && do { $name = "_$name"; - last; - }; -- /linux.*(32|64le)/ -+ /linux.*(32|64(le|v2))/ - && do { $ret .= ".globl $name"; - if (!$$type) { - $ret .= "\n.type $name,\@function"; -@@ -80,7 +80,7 @@ - }; - my $text = sub { - my $ret = ($flavour =~ /aix/) ? ".csect\t.text[PR],7" : ".text"; -- $ret = ".abiversion 2\n".$ret if ($flavour =~ /linux.*64le/); -+ $ret = ".abiversion 2\n".$ret if ($flavour =~ /linux.*64(le|v2)/); - $ret; - }; - my $machine = sub { -@@ -186,7 +186,7 @@ - - # Some ABIs specify vrsave, special-purpose register #256, as reserved - # for system use. --my $no_vrsave = ($flavour =~ /aix|linux64le/); -+my $no_vrsave = ($flavour =~ /aix|linux64(le|v2)/); - my $mtspr = sub { - my ($f,$idx,$ra) = @_; - if ($idx == 256 && $no_vrsave) { -@@ -318,7 +318,7 @@ sub vfour { - if ($label) { - my $xlated = ($GLOBALS{$label} or $label); - print "$xlated:"; -- if ($flavour =~ /linux.*64le/) { -+ if ($flavour =~ /linux.*64(le|v2)/) { - if ($TYPES{$label} =~ /function/) { - printf "\n.localentry %s,0\n",$xlated; - } - -From 098404128383ded87ba390dd74ecd9e2ffa6f530 Mon Sep 17 00:00:00 2001 -From: Andy Polyakov -Date: Sun, 5 May 2019 18:30:55 +0200 -Subject: [PATCH] Configure: use ELFv2 ABI on some ppc64 big endian systems - -If _CALL_ELF is defined to be 2, it's an ELFv2 system. -Conditionally switch to the v2 perlasm scheme. - -Reviewed-by: Paul Dale -Reviewed-by: Richard Levitte -(Merged from https://github.com/openssl/openssl/pull/8883) ---- - Configure | 10 +++++++--- - 1 file changed, 7 insertions(+), 3 deletions(-) - -diff --git a/Configure b/Configure -index 22082deb4c7..e303d98deb3 100755 ---- a/Configure -+++ b/Configure -@@ -1402,8 +1402,15 @@ - my %predefined_C = compiler_predefined($config{CROSS_COMPILE}.$config{CC}); - my %predefined_CXX = $config{CXX} - ? compiler_predefined($config{CROSS_COMPILE}.$config{CXX}) - : (); - -+unless ($disabled{asm}) { -+ # big endian systems can use ELFv2 ABI -+ if ($target eq "linux-ppc64") { -+ $target{perlasm_scheme} = "linux64v2" if ($predefined_C{_CALL_ELF} == 2); -+ } -+} -+ - # Check for makedepend capabilities. - if (!$disabled{makedepend}) { - if ($config{target} =~ /^(VC|vms)-/) { From 16e489995a936e152c14e9f10bbba539cbc5d406 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 18:15:11 -0400 Subject: [PATCH 040/210] backports/pnpm: drop due to not necessary --- .../pnpm/0001-no-check-for-updates.patch | 14 ---- backports/pnpm/0002-no-self-update.patch | 14 ---- backports/pnpm/APKBUILD | 73 ------------------- 3 files changed, 101 deletions(-) delete mode 100644 backports/pnpm/0001-no-check-for-updates.patch delete mode 100644 backports/pnpm/0002-no-self-update.patch delete mode 100644 backports/pnpm/APKBUILD diff --git a/backports/pnpm/0001-no-check-for-updates.patch b/backports/pnpm/0001-no-check-for-updates.patch deleted file mode 100644 index 2d74688..0000000 --- a/backports/pnpm/0001-no-check-for-updates.patch +++ /dev/null @@ -1,14 +0,0 @@ -Disable available update messages as it outputs invalid upgrade process - -diff --git a/dist/pnpm.cjs b/dist/pnpm.cjs -index b93ea78..6daefd6 100644 ---- a/dist/pnpm.cjs -+++ b/dist/pnpm.cjs -@@ -114026,6 +114026,7 @@ var require_checkForUpdates = __commonJS({ - var write_json_file_1 = __importDefault2(require_write_json_file()); - var UPDATE_CHECK_FREQUENCY = 24 * 60 * 60 * 1e3; - async function checkForUpdates(config) { -+ return; - const stateFile = path_1.default.join(config.stateDir, "pnpm-state.json"); - let state; - try { diff --git a/backports/pnpm/0002-no-self-update.patch b/backports/pnpm/0002-no-self-update.patch deleted file mode 100644 index b016ecc..0000000 --- a/backports/pnpm/0002-no-self-update.patch +++ /dev/null @@ -1,14 +0,0 @@ -Disable command "pnpm self-update" as we install via apk - -diff --git a/dist/pnpm.cjs b/dist/pnpm.cjs -index b93ea78..8da50c3 100644 ---- a/dist/pnpm.cjs -+++ b/dist/pnpm.cjs -@@ -220258,6 +220258,7 @@ var require_selfUpdate = __commonJS({ - }); - } - async function handler(opts, params) { -+ throw new error_1.PnpmError("CANT_SELF_UPDATE_IN_APK", "You should update pnpm with apk"); - if ((0, cli_meta_1.isExecutedByCorepack)()) { - throw new error_1.PnpmError("CANT_SELF_UPDATE_IN_COREPACK", "You should update pnpm with corepack"); - } diff --git a/backports/pnpm/APKBUILD b/backports/pnpm/APKBUILD deleted file mode 100644 index 8772842..0000000 --- a/backports/pnpm/APKBUILD +++ /dev/null @@ -1,73 +0,0 @@ -# Contributor: Hygna -# Contributor: Fabricio Silva -maintainer="Fabricio Silva " -pkgname=pnpm -pkgver=10.9.0 -pkgrel=0 -pkgdesc="Fast, disk space efficient package manager" -url="https://pnpm.io" -arch="noarch" -license="MIT" -depends="nodejs" -subpackages=" - $pkgname-doc - $pkgname-bash-completion - $pkgname-zsh-completion - $pkgname-fish-completion - " -source="https://registry.npmjs.org/pnpm/-/pnpm-$pkgver.tgz - 0001-no-check-for-updates.patch - 0002-no-self-update.patch - " -builddir="$srcdir/package" - -prepare() { - default_prepare - - # remove node-gyp - rm -rf dist/node-gyp-bin dist/node_modules/node-gyp - # remove windows files - rm -rf dist/vendor/*.exe - - # remove other unnecessary files - find . -type f \( \ - -name '.*' -o \ - -name '*.cmd' -o \ - -name '*.bat' -o \ - -name '*.map' -o \ - -name '*.md' -o \ - -name '*.darwin*' -o \ - -name '*.win*' -o \ - -iname 'README*' \) -delete -} - -check() { - ./bin/pnpm.cjs --help -} - -package() { - local destdir="$pkgdir"/usr/share/node_modules/$pkgname - - install -Dm644 LICENSE -t "$pkgdir"/usr/share/licenses/$pkgname - - install -Dm644 dist/templates/completion.bash \ - "$pkgdir"/usr/share/bash-completion/completions/$pkgname - install -Dm644 dist/templates/completion.zsh \ - "$pkgdir"/usr/share/zsh/site-functions/_$pkgname - install -Dm644 dist/templates/completion.fish \ - "$pkgdir"/usr/share/fish/vendor_completions.d/$pkgname.fish - - install -Dm644 package.json -t "$destdir" - install -Dm755 bin/pnpm.cjs bin/pnpx.cjs -t "$destdir"/bin - cp -r dist "$destdir"/dist - - mkdir -p "$pkgdir"/usr/bin - ln -sf ../share/node_modules/pnpm/bin/pnpm.cjs "$pkgdir"/usr/bin/pnpm - ln -sf ../share/node_modules/pnpm/bin/pnpx.cjs "$pkgdir"/usr/bin/pnpx -} - -sha512sums=" -0486e394640d3c1fb3c9d43d49cf92879ff74f8516959c235308f5a8f62e2e19528a65cdc2a3058f587cde71eba3d5b56327c8c33a97e4c4051ca48a10ca2d5f pnpm-10.9.0.tgz -f53903c506a676393dd8b31e1194b92612bfa877a8e17edc530e308921caf454248e181a3e620a17a941eba126349128963b2b0b1e48f8d927307c9cf335290e 0001-no-check-for-updates.patch -5582d11fcd1782f40a4f9269b477af25057e3a3d60cddef8b64a8592fafdc7a572822c8267a7abf9e8bfa4b726dcb291885642070a838e360fc542cee10c9569 0002-no-self-update.patch -" From ef52fcc239cdc907174a6aa8776bded39b10cada Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 18:15:40 -0400 Subject: [PATCH 041/210] backports/py3-colored: drop due to in community --- backports/py3-colored/APKBUILD | 31 ------------------------------- 1 file changed, 31 deletions(-) delete mode 100644 backports/py3-colored/APKBUILD diff --git a/backports/py3-colored/APKBUILD b/backports/py3-colored/APKBUILD deleted file mode 100644 index f2efb49..0000000 --- a/backports/py3-colored/APKBUILD +++ /dev/null @@ -1,31 +0,0 @@ -# Maintainer: Antoine Martin (ayakael) -pkgname=py3-colored -_pyname=${pkgname/py3-/} -pkgver=2.2.4 -pkgrel=0 -pkgdesc="Simple Python library for color and formatting in terminal" -url="https://gitlab.com/dslackw/colored" -arch="noarch" -license="MIT" -depends="python3" -makedepends="py3-setuptools py3-gpep517 py3-flit" -checkdepends="py3-pytest" -subpackages="$pkgname-pyc" -source="https://gitlab.com/dslackw/colored/-/archive/$pkgver/colored-$pkgver.tar.gz" -builddir="$srcdir/$_pyname-$pkgver" -options="!check" # No testsuite - -build() { - gpep517 build-wheel \ - --wheel-dir .dist \ - --output-fd 3 3>&1 >&2 -} - -package() { - gpep517 install-wheel --destdir "$pkgdir" \ - .dist/*.whl -} - -sha512sums=" -8fd293c95c2cfa6c3c31a91f946414e5c2581ea12a60e38ad1e6a5e44a85589a81c5e8205c4c518ed0d809840bf1b37b0cb5af4cf48c0706aa52017bf9c04489 colored-2.2.4.tar.gz -" From 90bda986c797e8db2e9d0849d3cc6517872d858c Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 18:16:03 -0400 Subject: [PATCH 042/210] backports/py3-fuzzywuzzy: drop due to in community --- backports/py3-fuzzywuzzy/APKBUILD | 37 ------------------------------- 1 file changed, 37 deletions(-) delete mode 100644 backports/py3-fuzzywuzzy/APKBUILD diff --git a/backports/py3-fuzzywuzzy/APKBUILD b/backports/py3-fuzzywuzzy/APKBUILD deleted file mode 100644 index c659b1b..0000000 --- a/backports/py3-fuzzywuzzy/APKBUILD +++ /dev/null @@ -1,37 +0,0 @@ -# Contributor: Galen Abell -# Maintainer: Galen Abell -pkgname=py3-fuzzywuzzy -_pyname=fuzzywuzzy -pkgver=0.18.0 -pkgrel=7 -pkgdesc="Fuzzy string matching in python" -url="https://github.com/seatgeek/fuzzywuzzy" -arch="noarch" -license="GPL-2.0-only" -depends="python3 py3-levenshtein" -makedepends="py3-setuptools py3-gpep517" -checkdepends="py3-pytest py3-pycodestyle py3-hypothesis" -subpackages="$pkgname-pyc" -source="https://files.pythonhosted.org/packages/source/${_pyname%${_pyname#?}}/$_pyname/$_pyname-$pkgver.tar.gz" -builddir="$srcdir/$_pyname-$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 -} - -package() { - gpep517 install-wheel --destdir "$pkgdir" \ - .dist/*.whl -} - -sha512sums=" -4a21ea67278fa525842d48fed8db666d00eae6d13254e8844d11f63b47c3a305b3cac760f28c24c6347aebcf73e96180e0a7cfba29c75f01ece2f7751e0398c5 fuzzywuzzy-0.18.0.tar.gz -" From 2162431bb5ec65172049e111c1203bd77eba6e23 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 18:16:20 -0400 Subject: [PATCH 043/210] backports/py3-levenshtein: drop due to in community --- backports/py3-levenshtein/APKBUILD | 46 ------------------------------ 1 file changed, 46 deletions(-) delete mode 100644 backports/py3-levenshtein/APKBUILD diff --git a/backports/py3-levenshtein/APKBUILD b/backports/py3-levenshtein/APKBUILD deleted file mode 100644 index d6a7572..0000000 --- a/backports/py3-levenshtein/APKBUILD +++ /dev/null @@ -1,46 +0,0 @@ -# Contributor: Galen Abell -# Maintainer: Galen Abell -pkgname=py3-levenshtein -pkgver=0.26.1 -pkgrel=0 -pkgdesc="Python extension for computing string edit distances and similarities" -url="https://github.com/maxbachmann/Levenshtein" -arch="all" -license="GPL-2.0-only" -depends="py3-rapidfuzz" -makedepends=" - cmake - cython - py3-gpep517 - py3-scikit-build - py3-scikit-build-core - python3-dev - rapidfuzz - samurai - " -checkdepends="py3-pytest" -subpackages="$pkgname-pyc" -source="$pkgname-$pkgver.tar.gz::https://github.com/maxbachmann/Levenshtein/archive/refs/tags/v$pkgver.tar.gz" -builddir="$srcdir/Levenshtein-$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 - .testenv/bin/python3 -m installer \ - .dist/levenshtein*.whl - .testenv/bin/python3 -m pytest -} - -package() { - python3 -m installer -d "$pkgdir" \ - .dist/levenshtein*.whl -} - -sha512sums=" -589b1f404108f488caf880063f20ee9c6a2033b0a2cd819352bf15e285ea8537c1dc8117de70679f720fd3da47546f7e0e5c620e4da8cf09bf8df9b119e6abc9 py3-levenshtein-0.26.1.tar.gz -" From 10c0f61045dc57d0eaa701da99e5bbf6ebb194e5 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 18:16:37 -0400 Subject: [PATCH 044/210] backports/rapidfuzz: drop due to in community --- backports/rapidfuzz/APKBUILD | 45 ------------------------------- backports/rapidfuzz/cstdint.patch | 12 --------- 2 files changed, 57 deletions(-) delete mode 100644 backports/rapidfuzz/APKBUILD delete mode 100644 backports/rapidfuzz/cstdint.patch diff --git a/backports/rapidfuzz/APKBUILD b/backports/rapidfuzz/APKBUILD deleted file mode 100644 index aa0eefd..0000000 --- a/backports/rapidfuzz/APKBUILD +++ /dev/null @@ -1,45 +0,0 @@ -# Maintainer: Antoine Martin (ayakael) -pkgname=rapidfuzz -pkgver=3.2.0 -pkgrel=0 -pkgdesc="Rapid fuzzy string matching in C++ using the Levenshtein Distance" -url="https://github.com/maxbachmann/rapidfuzz-cpp" -arch="all" -license="MIT" -makedepends=" - cmake - samurai - " -checkdepends="catch2-3" -source="$pkgname-cpp-$pkgver.tar.gz::https://github.com/maxbachmann/rapidfuzz-cpp/archive/refs/tags/v$pkgver.tar.gz - cstdint.patch - " -builddir="$srcdir/rapidfuzz-cpp-$pkgver" - -case "$CARCH" in -x86) - # float rounding - options="!check" - ;; -esac - -build() { - cmake -B build -G Ninja \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=/usr \ - -DRAPIDFUZZ_BUILD_TESTING="$(want_check && echo ON || echo OFF)" - cmake --build build -} - -check() { - ctest --test-dir build --output-on-failure -} - -package() { - DESTDIR="$pkgdir" cmake --install build -} - -sha512sums=" -cf306fc4a6c0b6fc1a1c3b0b235aa54588bd87a5d07f96c1bc9711a08159ca71580b5958e66e8b4358d34e522041934903079aabe6e5a450cece7d6db6edcbe0 rapidfuzz-cpp-3.2.0.tar.gz -216c5082498830d42d2eb14d3eba35dd08446008916c920db7b55eaf3dd2358f86a61c238315b85fefecf08b9e902dc4db172f91a8479cfd735e53c7b3e03bf5 cstdint.patch -" diff --git a/backports/rapidfuzz/cstdint.patch b/backports/rapidfuzz/cstdint.patch deleted file mode 100644 index cce9033..0000000 --- a/backports/rapidfuzz/cstdint.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/rapidfuzz_reference/JaroWinkler.hpp b/rapidfuzz_reference/JaroWinkler.hpp -index 3b717d8..9d415e4 100644 ---- a/rapidfuzz_reference/JaroWinkler.hpp -+++ b/rapidfuzz_reference/JaroWinkler.hpp -@@ -2,6 +2,7 @@ - /* Copyright © 2022-present Max Bachmann */ - - #pragma once -+#include - #include "Jaro.hpp" - - namespace rapidfuzz_reference { From dc8a32f4b9cef26cb9ed3218637e581574878819 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 18:17:26 -0400 Subject: [PATCH 045/210] backports/calibre: upgrade to 8.4.0 --- backports/calibre/APKBUILD | 8 +++++--- backports/calibre/musl-pread.patch | 11 +++++++++++ 2 files changed, 16 insertions(+), 3 deletions(-) create mode 100644 backports/calibre/musl-pread.patch diff --git a/backports/calibre/APKBUILD b/backports/calibre/APKBUILD index 3cf2747..5771907 100644 --- a/backports/calibre/APKBUILD +++ b/backports/calibre/APKBUILD @@ -1,6 +1,6 @@ # Maintainer: Cowington Post pkgname=calibre -pkgver=7.26.0 +pkgver=8.4.0 pkgrel=0 pkgdesc="Ebook management application" # qt6-webengine @@ -41,7 +41,7 @@ depends=" qt6-qtimageformats qt6-qtsvg qt6-qtwebengine - qt6-qtbase-dev + qt6-qtbase-private-dev udisks2 " makedepends=" @@ -70,6 +70,7 @@ subpackages=" " source="https://download.calibre-ebook.com/$pkgver/calibre-$pkgver.tar.xz 0001-$pkgname-no-update.patch + musl-pread.patch " # net: downloads iso-codes # !check: no tests ran @@ -112,6 +113,7 @@ package() { } sha512sums=" -e477a2dcdd1c52074bd5c0df5d79b2b609d76bf9e1cb5e3d32f79a89d6e0e2798cb980e2cf74e126fb2856273a14b0e2e92b39ffca74461569233c0a87968bfe calibre-7.26.0.tar.xz +df998fa31b9e581739872a649669fccf29f34d3ac1b4d0a96c37e08a0b049b1357b56a2af25f2733936e78901dd61b38a24e536e107e7094ada7e60a5c2c56ab calibre-8.4.0.tar.xz eb8e7ce40ff8b8daf6e7e55a5dff8ec4dff06c45744266bb48b3194e92ab1196bc91468203e3c2ca1e5144166a7d6be90e6cf0253513e761b56a4c85be4c2c76 0001-calibre-no-update.patch +d27d29c434a3d2df1b18125225a4d3762bf6fdba77385b377b18a7f325f29ae0b698974a39263f4f7aed8a368c87d0dc4446f488505b8e38664f8e9ee5b9bd12 musl-pread.patch " diff --git a/backports/calibre/musl-pread.patch b/backports/calibre/musl-pread.patch new file mode 100644 index 0000000..241ce63 --- /dev/null +++ b/backports/calibre/musl-pread.patch @@ -0,0 +1,11 @@ +--- 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 366cbca424cab4bc5cb7066d12b08409809bb050 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 18:17:54 -0400 Subject: [PATCH 046/210] backports/electron: fix build on edge --- backports/electron/APKBUILD | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/backports/electron/APKBUILD b/backports/electron/APKBUILD index 21ed96e..6721e7c 100644 --- a/backports/electron/APKBUILD +++ b/backports/electron/APKBUILD @@ -12,7 +12,7 @@ url="https://github.com/electron/electron" arch="aarch64 x86_64" # same as chromium license="MIT" depends="gtk+3.0 so:libudev.so.1 xdg-utils" -_llvmver=19 +_llvmver=20 makedepends=" ada-dev alsa-lib-dev @@ -135,6 +135,8 @@ source=" partalloc-no-tagging-arm64.patch pvalloc.patch temp-failure-retry.patch + pipewire-1.4.patch + gperf-3.2-fix.patch electron_icon.patch electron_python-jinja-3.10.patch @@ -429,14 +431,10 @@ _configure() { local symbol_level=0 local vaapi=true - # added_rust_stdlib_libs and removed_rust_stdlib_libs workaround change in Rust 1.86, - # feel free to remove after upgrading rust - # shellcheck disable=2089 local gn_config=" import(\"//electron/build/args/release.gn\") - added_rust_stdlib_libs=[\"adler\"] blink_enable_generated_code_formatting=false cc_wrapper=\"$cc_wrapper\" chrome_pgo_phase=0 @@ -463,7 +461,6 @@ _configure() { is_official_build=true link_pulseaudio=true proprietary_codecs=true - removed_rust_stdlib_libs=[\"adler2\"] rtc_link_pipewire=true rtc_use_pipewire=true rustc_version=\"yes\" @@ -566,6 +563,8 @@ e4c4e5bc6f828f9c883dd418c0ba01887949c29c311f76206a1ec29f620b0c0ba0452949dc2778a9 f2b08538ff57c50b3772a07ca91845f9d45f4a5112f608b6192d4fb5d7be48f478c0c36194d95ab7bbf933e0278e5c6d578619d8643895cdc40386eebc5b975f partalloc-no-tagging-arm64.patch 03f829a2da633533ef3fd0f287f5ec602d936a97a98b53cd2415553c2537ae9d571f35397ca7c9fb3f4b0806c300e3b189569f8d979ca132e1a2a4dae7206396 pvalloc.patch e48693e6b7aeebf69a5acbf80d9a35defe4c23835121dfeb58b051ac7c527e758a41004f4d193274fe1b01c0bfb1dbc77b09cb6a404a3fdee507a2918afb0edb temp-failure-retry.patch +1814096bc611e7f56cc5c570214dae715a4cda1fba96a6b585a73a1abc8b9161efaa799dc83887dac531dbafe9479bbe235cabe1a61cb3081e268c53a6144908 pipewire-1.4.patch +4bc087a1e5acbb0f8f884756b40c127df88699ecd6eb42c4aff6691b87239bb6915dd102e9ef2544502a12bff011859ad497206940473e6b0a0fd75afb562a4c gperf-3.2-fix.patch 465107da7818b237e3c144a318ab80c3c9343b51ed38b8971ef204692d13346929becbe94cefad4c153788d3a200642143584d5ca070f6304e768ba2139c19ec electron_icon.patch e05180199ee1d559e4e577cedd3e589844ecf40d98a86321bf1bea5607b02eeb5feb486deddae40e1005b644550331f6b8500177aa7e79bcb3750d3c1ceb76c3 electron_python-jinja-3.10.patch 2aa340854316f1284217c0ca17cbf44953684ad6c7da90815117df30928612eb9fb9ffb734b948dfc309cd25d1a67cd57f77aac2d052a3dd9aca07a3a58cbb30 electron_webpack-hash.patch From 5901ea37ae3a9a73c0f816540a809ea1d14b8ac9 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 18:18:11 -0400 Subject: [PATCH 047/210] backports/freecad: upgrade to 1.0.1 --- backports/freecad/APKBUILD | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/backports/freecad/APKBUILD b/backports/freecad/APKBUILD index 8967ba7..7b99447 100644 --- a/backports/freecad/APKBUILD +++ b/backports/freecad/APKBUILD @@ -1,9 +1,9 @@ # Contributor: Bryce Vandegrift # Maintainer: Bryce Vandegrift pkgname=freecad -pkgver=1.0.0 -_ondsel_ver="2e3659c4bce3e6885269e0cb3d640261b2a91108" -_gsl_ver="b39e7e4b0987859f5b19ff7686b149c916588658" +pkgver=1.0.1 +_ondsel_ver="09d6175a2ba69e7016fcecc4f384946a2f84f92d" +_gsl_ver="2828399820ef4928cc89b65605dca5dc68efca6e" pkgrel=0 pkgdesc="Open-source parametric 3D modeler" url="https://www.freecad.org/" @@ -73,8 +73,8 @@ package() { } sha512sums=" -afc1079ea04fd5bb8135f8ad1012d9e4e05c8839dd0a4e00253eada58fe018f445c1200d1ca7ac9f268644c946cbf55b7b313dc3d6bd010f9da3a3334103b7db freecad-1.0.0.tar.gz -8b08a668c63b57a49b8d95308f31496c1bcb27a5fb024d2e6b9744bd2e4819e82c59f68a8b99cc1be3e2bdfcdf435da5e342afaff4f28d97a849f9c01736af89 OndselSolver-2e3659c4bce3e6885269e0cb3d640261b2a91108.tar.gz -01ae556b70f7b5b572d15a427a6a5e0e7a4047727958be4c61d7dd84fc3bc97aebeaebf60c48064c565884441605fca180d5fdc8c920d35b2a8874664c024b01 GSL-b39e7e4b0987859f5b19ff7686b149c916588658.tar.gz +69a82c0af45137079b1ce184a4a3df475c005da66b4a4cab17371a1f62432b13f721e3da8b350b3ad50125c939cdfa5fed477e0605d52bd8fcee3c528931a185 freecad-1.0.1.tar.gz +7ad78da60320a686f0734da5196ce4cba49a2ff9ecf0bcd6016a56d65c8a8f7570f2898f84c2602a454bc9ccd8ac12fd137d2a952ffb7cbd15e38350fbbd3d79 OndselSolver-09d6175a2ba69e7016fcecc4f384946a2f84f92d.tar.gz +a6d731c450da91cba34c13293cc0881a842bd90268dd5ef721ae1f48752c41dc355ebea7716a6de5b49d41568e55751c46a9dd78da4cd68656bffd33e5ee448e GSL-2828399820ef4928cc89b65605dca5dc68efca6e.tar.gz 2f190118bddbf2e070519d0244eafd15ae7919f9759f925f593ce43988a7f9ab023c50bec3768404926e8cc661e829f6a55bec5e9e58c58735c050338fbcec16 no-execinfo.patch " From 4677e14f49e0193e31d91984b988170989a0fbbb Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 18:18:58 -0400 Subject: [PATCH 048/210] backports/libmedc: fix source url --- backports/libmedc/APKBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/backports/libmedc/APKBUILD b/backports/libmedc/APKBUILD index 39408fc..8976805 100644 --- a/backports/libmedc/APKBUILD +++ b/backports/libmedc/APKBUILD @@ -7,15 +7,15 @@ 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 swig3 python3-dev samurai" +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" source=" - ftp://ftp.cea.fr/pub/salome/prerequisites/med-$pkgver.tar.gz + https://files.salome-platform.org/Salome/medfile/med-$pkgver.tar.gz hdf5.patch cmake-config-dir.patch " -builddir="$srcdir"/med-$pkgver +builddir="$srcdir/med-$pkgver" build() { cmake -B build -G Ninja \ From bcbb961623dfcace9ef39789a6e322ee404dbade Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 18:19:19 -0400 Subject: [PATCH 049/210] backports/libnestd: fix build on edge --- backports/libnest2d/APKBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/backports/libnest2d/APKBUILD b/backports/libnest2d/APKBUILD index bc8059b..c0e8dd5 100644 --- a/backports/libnest2d/APKBUILD +++ b/backports/libnest2d/APKBUILD @@ -2,7 +2,7 @@ # Maintainer: Anjandev Momi pkgname=libnest2d pkgver=0.4 -pkgrel=6 +pkgrel=7 pkgdesc="2D irregular bin packaging and nesting library written in modern C++" url="https://github.com/tamasmeszaros/libnest2d" arch="noarch" @@ -27,7 +27,7 @@ build() { check() { cd build - CTEST_OUTPUT_ON_FAILURE=TRUE ctest + ctest } package() { From 5ccaf8e4d76c4d93af30c5a1ca83af8afb40c487 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 18:19:33 -0400 Subject: [PATCH 050/210] backports/libspatialindex: fix build on edge --- backports/libspatialindex/APKBUILD | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/backports/libspatialindex/APKBUILD b/backports/libspatialindex/APKBUILD index 1de6552..4ef768c 100644 --- a/backports/libspatialindex/APKBUILD +++ b/backports/libspatialindex/APKBUILD @@ -1,33 +1,36 @@ # Contributor: Alex Yam -# Maintainer: Alex Yam +# Maintainer: Celeste +maintainer="Celeste " pkgname=libspatialindex pkgver=0_git20210205 _commit=8ee223632f95c81f49f5eb2d547ad973475c4601 -pkgrel=1 -pkgdesc="extensible framework for robust spatial indexing methods" +pkgrel=2 +pkgdesc="Extensible framework for robust spatial indexing methods" url="https://libspatialindex.org/" arch="all" license="MIT" -makedepends="cmake" +makedepends="cmake samurai" subpackages="$pkgname-dev" source="$pkgname-$_commit.tar.gz::https://github.com/libspatialindex/libspatialindex/archive/$_commit.tar.gz" builddir="$srcdir/$pkgname-$_commit" build() { - cmake -B build \ + cmake -B build -G Ninja \ -DCMAKE_BUILD_TYPE=MinSizeRel \ -DCMAKE_PREFIX_PATH=/usr \ -DCMAKE_INSTALL_PREFIX=/usr \ - -DBUILD_TESTING=ON + -DBUILD_TESTING="$(want_check && echo ON || echo OFF)" cmake --build build } check() { - cd build && ctest + ctest --test-dir build } package() { - DESTDIR="$pkgdir" cmake --build build --target install + DESTDIR="$pkgdir" cmake --install build } -sha512sums="caf91aac77b75445e4fc4d0baedcd10c619b2097dfd841b00339d9ddd4b73db05b99de1d84be88f1083f4713a936cf110d5851523491f5a74c6f96e1d5795dbb libspatialindex-8ee223632f95c81f49f5eb2d547ad973475c4601.tar.gz" +sha512sums=" +caf91aac77b75445e4fc4d0baedcd10c619b2097dfd841b00339d9ddd4b73db05b99de1d84be88f1083f4713a936cf110d5851523491f5a74c6f96e1d5795dbb libspatialindex-8ee223632f95c81f49f5eb2d547ad973475c4601.tar.gz +" From c1baeb0f355ff86e725383b42f1410c0edcdeec2 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 18:19:47 -0400 Subject: [PATCH 051/210] backports/nb: upgrade to 7.19.1 --- backports/nb/APKBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/backports/nb/APKBUILD b/backports/nb/APKBUILD index d5ba0c6..9540e5c 100644 --- a/backports/nb/APKBUILD +++ b/backports/nb/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Quillith # Maintainer: Quillith pkgname=nb -pkgver=7.15.1 +pkgver=7.19.1 pkgrel=0 pkgdesc="Command line note-taking, bookmarking, archiving, and knowledge base application" url="https://github.com/xwmx/nb" @@ -41,5 +41,5 @@ full() { } sha512sums=" -95229ac3c7da47c8e8e80fb68376dcf866fa2c2799e0c150e225f453e92b714c592dd67e016054a6a6f7d53c09f7cc537250217057d42872fb273ee911e82757 nb-7.15.1.tar.gz +fdfcedc5a32c1a5fe62b00141e25193bc33eee9249fef559938f2b4baf0bff5eb7cc792db3c664c68afb2ba2db84303432790ae5254a9cdd319ce4d9a9face9f nb-7.19.1.tar.gz " From 91d930b63d60df33b6f78e2441fccf2df22769e5 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 18:19:57 -0400 Subject: [PATCH 052/210] backports/nlopt: upgrade to 2.10.0 --- backports/nlopt/APKBUILD | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/backports/nlopt/APKBUILD b/backports/nlopt/APKBUILD index 49b6b8b..66aea68 100644 --- a/backports/nlopt/APKBUILD +++ b/backports/nlopt/APKBUILD @@ -2,7 +2,7 @@ # Maintainer: Celeste maintainer="Celeste " pkgname=nlopt -pkgver=2.8.0 +pkgver=2.10.0 pkgrel=0 pkgdesc="Library for nonlinear optimization" url="https://github.com/stevengj/nlopt" @@ -40,12 +40,13 @@ build() { -DCMAKE_INSTALL_LIBDIR=lib \ -DBUILD_SHARED_LIBS=ON \ -DCMAKE_BUILD_TYPE=MinSizeRel \ + -DNLOPT_TESTS="$(want_check && echo ON || echo OFF)" \ $crossopts cmake --build build } check() { - ctest --test-dir build --output-on-failure + ctest --test-dir build } package() { @@ -67,5 +68,5 @@ octave() { } sha512sums=" -cb294caa5532e11ae0d22ed849705920bbae79f712144c840a5ca865ef8e6a15c6c9540c81ced0c3c05b9f44c360d50f74e235e69d893be34b7e1c5599f07c71 nlopt-2.8.0.tar.gz +7668db6997ba141ee1759f222bad23a7854aa17962470653ddb5824c25100b50f52c462441f0cc12a62e2322ff084c7f7b7fab09471b0acb13a861d7f7575655 nlopt-2.10.0.tar.gz " From 637e2f14edd9413779e885e0a4cfc5562d7318f5 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 18:20:15 -0400 Subject: [PATCH 053/210] backports/apsw: upgrade to 3.49.1.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 051f2c9..8f034f7 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.47.2.0 +pkgver=3.49.1.0 pkgrel=0 pkgdesc="Another Python SQLite Wrapper" url="https://github.com/rogerbinns/apsw" @@ -41,6 +41,6 @@ package() { } sha512sums=" -9884f36811bfff7276642841ebaa198669c48f4d54bb764a985ea5bdd88f9f630f9fd8a13cf0a44b5675e374c2a911fcec579ca4165622e8049bff327ef66c1d py3-apsw-3.47.2.0.zip +faae9cceb462428345fd2815a970dfc80574848f87bade7cceb09aed17127d020fd16402b3d36afe0fbc6bf707a408feea0ce038486c2a68a2ab1077a9b68d0a py3-apsw-3.49.1.0.zip 8f3957bd6fecb5660a7cab367043e4ccdacd87d8963bbe41cc3d525265de28f08aa207099658d785be29c5c90b818c1418f766995cd780d02b8e36252a389758 detect-sqlite-config.patch " From 0a65a63be1896cad8b3d78a69a7c8a3118e0eab5 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 18:20:35 -0400 Subject: [PATCH 054/210] backports/py3-arcus: bump pkgrel --- backports/py3-arcus/APKBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backports/py3-arcus/APKBUILD b/backports/py3-arcus/APKBUILD index 1971b01..d3643d7 100644 --- a/backports/py3-arcus/APKBUILD +++ b/backports/py3-arcus/APKBUILD @@ -3,7 +3,7 @@ pkgname=py3-arcus # Needs to be upgraded in sync with libarcus pkgver=5.3.0 -pkgrel=1 +pkgrel=4 pkgdesc="Python bindings for libarcus" url="https://github.com/Ultimaker/pyArcus" arch="all" From 11b717b3c22be762fca85da1a2be7959091933ad Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 18:20:52 -0400 Subject: [PATCH 055/210] backports/py3-flask-limiter: upgrade to 3.10.1 --- backports/py3-flask-limiter/APKBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/backports/py3-flask-limiter/APKBUILD b/backports/py3-flask-limiter/APKBUILD index 9bca96d..cd15f22 100644 --- a/backports/py3-flask-limiter/APKBUILD +++ b/backports/py3-flask-limiter/APKBUILD @@ -1,7 +1,7 @@ # Contributor: lauren n. liberda maintainer="lauren n. liberda " pkgname=py3-flask-limiter -pkgver=3.9.2 +pkgver=3.10.1 pkgrel=0 pkgdesc="Rate Limiting extension for Flask" url="https://github.com/alisaifee/flask-limiter" @@ -50,6 +50,6 @@ package() { } sha512sums=" -69e488a641ab39c088185fabcde19ebb4cbe1683e9143efdf146163bb0254e0c4f8b4b72df407542d540394e7e3b2d7498b9c93c25ae8a8128e05e319f342318 flask-limiter-3.9.2.tar.gz +a0d3af6f93d4283309d6df46ddb7fed4c358bbc712c2bd9e6897362c6d086c395cb9587c3d9da283ad757b574fd8c09d909f3c4b76d02ae8aade3e61dbea6aa0 flask-limiter-3.10.1.tar.gz 1b90e9134076cda249695d5ea741db9d205a2ae452c7d6edfe01eb37a221ce6f64b0e8ddcdbbee9b0e0fb16a28e5eabf14f1c1e41e965c7e3b93ea4f42caf553 our-std-is-good-enough.patch " From 48ef10378e69262ade6c72f1487f56efdfdcea10 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 18:21:15 -0400 Subject: [PATCH 056/210] backports/py3-piby: sync with aports --- backports/py3-pivy/APKBUILD | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/backports/py3-pivy/APKBUILD b/backports/py3-pivy/APKBUILD index 6b5f0f5..300d9e7 100644 --- a/backports/py3-pivy/APKBUILD +++ b/backports/py3-pivy/APKBUILD @@ -5,8 +5,9 @@ pkgver=0.6.9 pkgrel=2 pkgdesc="Python3 bindings for coin" url="https://github.com/coin3d/pivy" -# riscv64: blocked by py3-pyside6 -arch="all !riscv64" +# 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" From 747c2c79a6936f4bd6e386de16c5b8a3bc538d15 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 18:21:27 -0400 Subject: [PATCH 057/210] backports/py3-pyinstrument: upgrade to 5.0.2 --- backports/py3-pyinstrument/APKBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/backports/py3-pyinstrument/APKBUILD b/backports/py3-pyinstrument/APKBUILD index e4ab2cf..6070e94 100644 --- a/backports/py3-pyinstrument/APKBUILD +++ b/backports/py3-pyinstrument/APKBUILD @@ -2,7 +2,7 @@ # Maintainer: Celeste maintainer="Celeste " pkgname=py3-pyinstrument -pkgver=4.7.3 +pkgver=5.0.2 pkgrel=0 pkgdesc="Call stack profiler for Python" url="https://github.com/joerick/pyinstrument" @@ -46,5 +46,5 @@ package() { } sha512sums=" -24feac08a9726379b749f391bdb6ddbca6d3631cf3515d3ead85ace7a96f213bf60e2cd4d4f3c7cade68b5e481b4bfd562482817befe6322579101a8d91add66 py3-pyinstrument-4.7.3.tar.gz +7eeb0e05ceb31eab6b4cfcfae7095e7fe9399a7292a12ea427c6ce4f343b1f85be60496c071c2a983b9d0b40f76e18140a836b77a6df0765e40779758212d4cf py3-pyinstrument-5.0.2.tar.gz " From 420fc93b8481751627ac8404b1da9ee39a5df7f6 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 18:21:45 -0400 Subject: [PATCH 058/210] backports/py3-pynest2d: fix build on edge --- backports/py3-pynest2d/APKBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/backports/py3-pynest2d/APKBUILD b/backports/py3-pynest2d/APKBUILD index 357a1c3..503b762 100644 --- a/backports/py3-pynest2d/APKBUILD +++ b/backports/py3-pynest2d/APKBUILD @@ -2,7 +2,7 @@ # Maintainer: Anjandev Momi pkgname=py3-pynest2d pkgver=5.2.2 -pkgrel=4 +pkgrel=5 pkgdesc="Python bindings for libnest2d" url="https://github.com/Ultimaker/pynest2d" arch="all" @@ -34,7 +34,7 @@ build() { check() { cd build - CTEST_OUTPUT_ON_FAILURE=TRUE ctest + ctest } package() { From ffdbdaafd93f7bc34d66e0202dd2550c1ac426c5 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 18:21:58 -0400 Subject: [PATCH 059/210] backports/py3-rtree: upgrade to 1.4.0 --- backports/py3-rtree/APKBUILD | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/backports/py3-rtree/APKBUILD b/backports/py3-rtree/APKBUILD index 491e8e9..f42ccfc 100644 --- a/backports/py3-rtree/APKBUILD +++ b/backports/py3-rtree/APKBUILD @@ -1,9 +1,9 @@ # Contributor: Alex Yam -# Maintainer: Alex Yam +# Maintainer: Celeste +maintainer="Celeste " pkgname=py3-rtree -_pkgname=rtree -pkgver=1.1.0 -pkgrel=2 +pkgver=1.4.0 +pkgrel=1 pkgdesc="Python3 library for r-tree spatial index (wrapper for libspatialindex)" url="https://pypi.org/project/Rtree/" # s390x: Test failed: IndexSerialization::test_interleaving - AssertionError @@ -15,7 +15,7 @@ makedepends="py3-setuptools py3-wheel py3-gpep517" checkdepends="py3-pytest py3-numpy" subpackages="$pkgname-pyc" source="$pkgname-$pkgver.tar.gz::https://github.com/Toblerity/rtree/archive/$pkgver.tar.gz" -builddir="$srcdir"/$_pkgname-$pkgver +builddir="$srcdir/rtree-$pkgver" build() { gpep517 build-wheel \ @@ -35,5 +35,5 @@ package() { } sha512sums=" -97a87027e49520f12cb86444ee8a9795fabeec6d8f0e3e869f2714df8f7c649ced1374385852af0ce7d7eb91e5a2cb464a4330807be15d538dc0a4d8de7b7ca2 py3-rtree-1.1.0.tar.gz +9f253a4e4bce1e9210943d1a7b211895baf0478927c58a576235492f2705f4ff61df5fff46db382d6b7c04bde058f046ea0a408a4b504bd1a9bde37c8b1c277c py3-rtree-1.4.0.tar.gz " From 83207c4dae9c2dbded5d698f5590a7527dde7af7 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 18:22:17 -0400 Subject: [PATCH 060/210] backports/shntool: sync pkgrel --- backports/shntool/APKBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/backports/shntool/APKBUILD b/backports/shntool/APKBUILD index 60dd2b5..117a36b 100644 --- a/backports/shntool/APKBUILD +++ b/backports/shntool/APKBUILD @@ -1,8 +1,8 @@ # Contributor: Carlo Landmeter -# Maintainer: Jean-Louis Fuchs +# Maintainer: Jean-Louis Fuchs pkgname=shntool pkgver=3.0.10 -pkgrel=4 +pkgrel=5 pkgdesc="A multi-purpose WAVE data processing and reporting utility" url="http://shnutils.freeshell.org/shntool/" arch="all" From 25ba00ae7fe3f52b255cfda4b890df4285c7e114 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 18:22:43 -0400 Subject: [PATCH 061/210] backports/signal-desktop: upgrade to 7.55.0 --- backports/signal-desktop/APKBUILD | 12 +++++++----- backports/signal-desktop/signal-desktop | 6 ------ 2 files changed, 7 insertions(+), 11 deletions(-) delete mode 100755 backports/signal-desktop/signal-desktop diff --git a/backports/signal-desktop/APKBUILD b/backports/signal-desktop/APKBUILD index aea8d4c..f1cd958 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.54.0 +pkgver=7.55.0 pkgrel=0 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=19 +_llvmver=20 depends=" electron font-barlow @@ -67,7 +67,7 @@ makedepends=" options="net !check" # use _check_depends to validate this -_libsignalver=0.70.0 +_libsignalver=0.71.1 _ringrtcver=2.51.0 _webrtcver=6998b _sqlcipherver=2.0.1 @@ -92,6 +92,7 @@ source=" webrtc-gcc13.patch webrtc-rollback-red.patch webrtc-rollback-3rdparty-build-gn.patch + webrtc-pipewire-1.4.patch signal-desktop.sh " @@ -477,8 +478,8 @@ package() { } sha512sums=" -ca512bfdd8c78b6c440214db95347b59928314cd27d74b22828de5d701aaf8e675eb5c71603bb6a39fd224812204d9f656290637d402966760bdb3958d3923c8 Signal-Desktop-7.54.0.tar.gz -52d66cf2643402673858def81a9a3c98a0d16525e126c9e5ea1e3c62150f321e486c8c79bcea11a9636c9b05f541fdf0718869d52b9a789f05cad741ba37c7ad libsignal-0.70.0.tar.gz +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 @@ -495,5 +496,6 @@ aca92e4de6cd005d660d7e8b99607de96ca2d7dc220e3465247d517e915e4d41a4b0eb519e85c5ec 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 " diff --git a/backports/signal-desktop/signal-desktop b/backports/signal-desktop/signal-desktop deleted file mode 100755 index 370469c..0000000 --- a/backports/signal-desktop/signal-desktop +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh - -# app chooses config (including used endpoints) based on this -export NODE_ENV=production - -exec electron /usr/lib/signal-desktop/app.asar From 4919fe261cffa782c901a5a28886e5a9596a830f Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 18:22:59 -0400 Subject: [PATCH 062/210] backports/soqt: fix build on edge --- backports/soqt/APKBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/backports/soqt/APKBUILD b/backports/soqt/APKBUILD index e4c6995..b96f3dd 100644 --- a/backports/soqt/APKBUILD +++ b/backports/soqt/APKBUILD @@ -7,14 +7,14 @@ pkgdesc="GUI binding library for coin" url="https://github.com/coin3d/soqt" arch="all" license="BSD-3-Clause" -makedepends="coin-dev cmake mesa-dev qt5-qtbase-dev doxygen" +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 . \ + cmake -B build -G Ninja . \ -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_BUILD_TYPE=None \ -DSOQT_BUILD_DOCUMENTATION=ON \ From cea504a9246d9df2dbc5111234b8a270248bf5e4 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 18:23:34 -0400 Subject: [PATCH 063/210] backports/swig3: drop to not needed --- backports/swig3/APKBUILD | 46 ----- ...de-for-constant-expressions-containi.patch | 191 ------------------ 2 files changed, 237 deletions(-) delete mode 100644 backports/swig3/APKBUILD delete mode 100644 backports/swig3/swig-3.0.12-Fix-generated-code-for-constant-expressions-containi.patch diff --git a/backports/swig3/APKBUILD b/backports/swig3/APKBUILD deleted file mode 100644 index 4abe017..0000000 --- a/backports/swig3/APKBUILD +++ /dev/null @@ -1,46 +0,0 @@ -# Maintainer: Noel Kuntze -pkgname=swig3 -pkgver=3.0.12 -pkgrel=3 -pkgdesc="A compiler that makes it easy to integrate C and C++ code with scripting languages" -url="https://www.swig.org/" -arch="all" -license="GPL-3.0-only" -depends="guile" -makedepends="zlib-dev pcre-dev bison" -checkdepends="boost-dev perl-dev python3-dev diffutils" -options="!check" # Check for javascript fails -subpackages="$pkgname-doc" -source="https://downloads.sourceforge.net/swig/swig-$pkgver.tar.gz - swig-3.0.12-Fix-generated-code-for-constant-expressions-containi.patch -" - -builddir="$srcdir/swig-$pkgver" - -prepare() { - default_prepare - update_config_sub -} - -build() { - ./configure \ - --build=$CBUILD \ - --host=$CHOST \ - --prefix=/usr \ - --with-python3=/usr/bin/python3 \ - --program-suffix=3.0 - make -} - -check() { - env PERL5LIB=. make check -} - -package() { - make DESTDIR="$pkgdir" install - install -D -m644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE - install -D -m644 LICENSE-UNIVERSITIES "$pkgdir"/usr/share/licenses/$pkgname/LICENSE-UNIVERSITIES -} - -sha512sums="5eaa2e06d8e4197fd02194051db1e518325dbb074a4c55a91099ad9c55193874f577764afc9029409a41bd520a95154095f26e33ef5add5c102bb2c1d98d33eb swig-3.0.12.tar.gz -0cde94a04a3f914f6e1ac79866d199981600c0f4be18b52d08194de96d524027c6572eacd5c1e155a9007fc34ed9dece27dbcb974874de072fb42bf564978cd0 swig-3.0.12-Fix-generated-code-for-constant-expressions-containi.patch" diff --git a/backports/swig3/swig-3.0.12-Fix-generated-code-for-constant-expressions-containi.patch b/backports/swig3/swig-3.0.12-Fix-generated-code-for-constant-expressions-containi.patch deleted file mode 100644 index 7198c21..0000000 --- a/backports/swig3/swig-3.0.12-Fix-generated-code-for-constant-expressions-containi.patch +++ /dev/null @@ -1,191 +0,0 @@ -From 90ba174fcea1618af57aa594199541d47a89b7f6 Mon Sep 17 00:00:00 2001 -From: William S Fulton -Date: Sun, 17 Sep 2017 19:02:55 +0100 -Subject: [PATCH 1/2] Fix generated code for constant expressions containing - wchar_t L literals. - -Such as: - # define __WCHAR_MAX (0x7fffffff + L'\0') - -Reported on swig-user mailing list. ---- - CHANGES.current | 5 +++++ - Examples/test-suite/csharp/preproc_constants_c_runme.cs | 3 ++- - Examples/test-suite/csharp/preproc_constants_runme.cs | 2 ++ - Examples/test-suite/d/preproc_constants_c_runme.1.d | 2 ++ - Examples/test-suite/d/preproc_constants_c_runme.2.d | 2 ++ - Examples/test-suite/d/preproc_constants_runme.1.d | 2 ++ - Examples/test-suite/d/preproc_constants_runme.2.d | 2 ++ - Examples/test-suite/php/preproc_constants_c_runme.php | 2 ++ - Examples/test-suite/php/preproc_constants_runme.php | 2 ++ - Examples/test-suite/php5/preproc_constants_c_runme.php | 2 ++ - Examples/test-suite/php5/preproc_constants_runme.php | 2 ++ - Examples/test-suite/preproc_constants.i | 3 +++ - Source/CParse/parser.y | 2 +- - 13 files changed, 29 insertions(+), 2 deletions(-) - -#diff --git a/CHANGES.current b/CHANGES.current -#index 1e4a244..b455a9f 100644 -#--- a/CHANGES.current -#+++ b/CHANGES.current -#@@ -7,6 +7,11 @@ the issue number to the end of the URL: https://github.com/swig/swig/issues/ -# Version 4.0.0 (in progress) -# =========================== -# -#+2017-09-17: wsfulton -#+ Fix generated code for constant expressions containing wchar_t L literals such as: -#+ # define __WCHAR_MAX (0x7fffffff + L'\0') -#+ # define __WCHAR_MIN (-__WCHAR_MAX - 1) -#+ -# 2017-09-10: mlamarre -# [Python] Patch #1083. Define_DEBUG to 1 to do exactly like Visual Studio -# /LDd, /MDd or /MTd compiler options. -diff --git a/Examples/test-suite/csharp/preproc_constants_c_runme.cs b/Examples/test-suite/csharp/preproc_constants_c_runme.cs -index 76c684d..1c28e49 100644 ---- a/Examples/test-suite/csharp/preproc_constants_c_runme.cs -+++ b/Examples/test-suite/csharp/preproc_constants_c_runme.cs -@@ -61,7 +61,8 @@ public class runme { - assert( typeof(int) == preproc_constants_c.EXPR_LAND.GetType() ); - assert( typeof(int) == preproc_constants_c.EXPR_LOR.GetType() ); - assert( typeof(double) == preproc_constants_c.EXPR_CONDITIONAL.GetType() ); -- -+ assert( typeof(int) == preproc_constants_c.EXPR_WCHAR_MAX.GetType() ); -+ assert( typeof(int) == preproc_constants_c.EXPR_WCHAR_MIN.GetType() ); - } - static void assert(bool assertion) { - if (!assertion) -diff --git a/Examples/test-suite/csharp/preproc_constants_runme.cs b/Examples/test-suite/csharp/preproc_constants_runme.cs -index 9fae591..6b02e30 100644 ---- a/Examples/test-suite/csharp/preproc_constants_runme.cs -+++ b/Examples/test-suite/csharp/preproc_constants_runme.cs -@@ -60,6 +60,8 @@ public class runme { - assert( typeof(bool) == preproc_constants.EXPR_LAND.GetType() ); - assert( typeof(bool) == preproc_constants.EXPR_LOR.GetType() ); - assert( typeof(double) == preproc_constants.EXPR_CONDITIONAL.GetType() ); -+ assert( typeof(int) == preproc_constants.EXPR_WCHAR_MAX.GetType() ); -+ assert( typeof(int) == preproc_constants.EXPR_WCHAR_MIN.GetType() ); - - } - static void assert(bool assertion) { -diff --git a/Examples/test-suite/d/preproc_constants_c_runme.1.d b/Examples/test-suite/d/preproc_constants_c_runme.1.d -index d846c71..2b349af 100644 ---- a/Examples/test-suite/d/preproc_constants_c_runme.1.d -+++ b/Examples/test-suite/d/preproc_constants_c_runme.1.d -@@ -61,4 +61,6 @@ void main() { - static assert(is(int == typeof(EXPR_LAND()))); - static assert(is(int == typeof(EXPR_LOR()))); - static assert(is(double == typeof(EXPR_CONDITIONAL()))); -+ static assert(is(int == typeof(EXPR_WCHAR_MAX()))); -+ static assert(is(int == typeof(EXPR_WCHAR_MIN()))); - } -diff --git a/Examples/test-suite/d/preproc_constants_c_runme.2.d b/Examples/test-suite/d/preproc_constants_c_runme.2.d -index 9bdbb93..1bac525 100644 ---- a/Examples/test-suite/d/preproc_constants_c_runme.2.d -+++ b/Examples/test-suite/d/preproc_constants_c_runme.2.d -@@ -61,4 +61,6 @@ void main() { - static assert(is(int == typeof(EXPR_LAND()))); - static assert(is(int == typeof(EXPR_LOR()))); - static assert(is(double == typeof(EXPR_CONDITIONAL()))); -+ static assert(is(int == typeof(EXPR_WCHAR_MAX()))); -+ static assert(is(int == typeof(EXPR_WCHAR_MIN()))); - } -diff --git a/Examples/test-suite/d/preproc_constants_runme.1.d b/Examples/test-suite/d/preproc_constants_runme.1.d -index 009405f..f743f48 100644 ---- a/Examples/test-suite/d/preproc_constants_runme.1.d -+++ b/Examples/test-suite/d/preproc_constants_runme.1.d -@@ -60,4 +60,6 @@ void main() { - static assert(is(bool == typeof(EXPR_LAND()))); - static assert(is(bool == typeof(EXPR_LOR()))); - static assert(is(double == typeof(EXPR_CONDITIONAL()))); -+ static assert(is(int == typeof(EXPR_WCHAR_MAX()))); -+ static assert(is(int == typeof(EXPR_WCHAR_MIN()))); - } -diff --git a/Examples/test-suite/d/preproc_constants_runme.2.d b/Examples/test-suite/d/preproc_constants_runme.2.d -index 2d92ef0..0d96c37 100644 ---- a/Examples/test-suite/d/preproc_constants_runme.2.d -+++ b/Examples/test-suite/d/preproc_constants_runme.2.d -@@ -60,4 +60,6 @@ void main() { - static assert(is(bool == typeof(EXPR_LAND()))); - static assert(is(bool == typeof(EXPR_LOR()))); - static assert(is(double == typeof(EXPR_CONDITIONAL()))); -+ static assert(is(int == typeof(EXPR_WCHAR_MAX()))); -+ static assert(is(int == typeof(EXPR_WCHAR_MIN()))); - } -diff --git a/Examples/test-suite/php/preproc_constants_c_runme.php b/Examples/test-suite/php/preproc_constants_c_runme.php -index af9b76e..e59fe18 100644 ---- a/Examples/test-suite/php/preproc_constants_c_runme.php -+++ b/Examples/test-suite/php/preproc_constants_c_runme.php -@@ -62,5 +62,7 @@ check::equal(gettype(preproc_constants_c::EXPR_OR), "integer", "preproc_constant - check::equal(gettype(preproc_constants_c::EXPR_LAND), "integer", "preproc_constants.EXPR_LAND has unexpected type"); - check::equal(gettype(preproc_constants_c::EXPR_LOR), "integer", "preproc_constants.EXPR_LOR has unexpected type"); - check::equal(gettype(preproc_constants_c::EXPR_CONDITIONAL), "double", "preproc_constants.EXPR_CONDITIONAL has unexpected type"); -+check::equal(gettype(preproc_constants_c::EXPR_WCHAR_MAX), "integer", "preproc_constants.EXPR_WCHAR_MAX has unexpected type"); -+check::equal(gettype(preproc_constants_c::EXPR_WCHAR_MIN), "integer", "preproc_constants.EXPR_WCHAR_MIN has unexpected type"); - - ?> -diff --git a/Examples/test-suite/php/preproc_constants_runme.php b/Examples/test-suite/php/preproc_constants_runme.php -index 5c9119b..8e117ea 100644 ---- a/Examples/test-suite/php/preproc_constants_runme.php -+++ b/Examples/test-suite/php/preproc_constants_runme.php -@@ -61,5 +61,7 @@ check::equal(gettype(preproc_constants::EXPR_OR), "integer", "preproc_constants. - check::equal(gettype(preproc_constants::EXPR_LAND), "boolean", "preproc_constants.EXPR_LAND has unexpected type"); - check::equal(gettype(preproc_constants::EXPR_LOR), "boolean", "preproc_constants.EXPR_LOR has unexpected type"); - check::equal(gettype(preproc_constants::EXPR_CONDITIONAL), "double", "preproc_constants.EXPR_CONDITIONAL has unexpected type"); -+check::equal(gettype(preproc_constants::EXPR_WCHAR_MAX), "integer", "preproc_constants.EXPR_WCHAR_MAX has unexpected type"); -+check::equal(gettype(preproc_constants::EXPR_WCHAR_MIN), "integer", "preproc_constants.EXPR_WCHAR_MIN has unexpected type"); - - ?> -diff --git a/Examples/test-suite/php5/preproc_constants_c_runme.php b/Examples/test-suite/php5/preproc_constants_c_runme.php -index 1ea0195..d978fab 100644 ---- a/Examples/test-suite/php5/preproc_constants_c_runme.php -+++ b/Examples/test-suite/php5/preproc_constants_c_runme.php -@@ -62,5 +62,7 @@ check::equal(gettype(preproc_constants_c::EXPR_OR), "integer", "preproc_constant - check::equal(gettype(preproc_constants_c::EXPR_LAND), "integer", "preproc_constants.EXPR_LAND has unexpected type"); - check::equal(gettype(preproc_constants_c::EXPR_LOR), "integer", "preproc_constants.EXPR_LOR has unexpected type"); - check::equal(gettype(preproc_constants_c::EXPR_CONDITIONAL), "double", "preproc_constants.EXPR_CONDITIONAL has unexpected type"); -+check::equal(gettype(preproc_constants_c::EXPR_WCHAR_MAX), "integer", "preproc_constants.EXPR_WCHAR_MAX has unexpected type"); -+check::equal(gettype(preproc_constants_c::EXPR_WCHAR_MIN), "integer", "preproc_constants.EXPR_WCHAR_MIN has unexpected type"); - - ?> -diff --git a/Examples/test-suite/php5/preproc_constants_runme.php b/Examples/test-suite/php5/preproc_constants_runme.php -index fb9ee4f..7527026 100644 ---- a/Examples/test-suite/php5/preproc_constants_runme.php -+++ b/Examples/test-suite/php5/preproc_constants_runme.php -@@ -70,5 +70,7 @@ check::equal(gettype(preproc_constants::EXPR_LAND), "integer", "preproc_constant - check::equal(gettype(preproc_constants::EXPR_LOR), "integer", "preproc_constants.EXPR_LOR has unexpected type"); - - check::equal(gettype(preproc_constants::EXPR_CONDITIONAL), "double", "preproc_constants.EXPR_CONDITIONAL has unexpected type"); -+check::equal(gettype(preproc_constants::EXPR_WCHAR_MAX), "integer", "preproc_constants.EXPR_WCHAR_MAX has unexpected type"); -+check::equal(gettype(preproc_constants::EXPR_WCHAR_MIN), "integer", "preproc_constants.EXPR_WCHAR_MIN has unexpected type"); - - ?> -diff --git a/Examples/test-suite/preproc_constants.i b/Examples/test-suite/preproc_constants.i -index 3a999ad..16b44c9 100644 ---- a/Examples/test-suite/preproc_constants.i -+++ b/Examples/test-suite/preproc_constants.i -@@ -87,6 +87,9 @@ - #define EXPR_LOR 0xFF || 1 - #define EXPR_CONDITIONAL true ? 2 : 2.2 - -+#define EXPR_WCHAR_MAX (0x7fffffff + L'\0') -+#define EXPR_WCHAR_MIN (-EXPR_WCHAR_MAX - 1) -+ - #define EXPR_CHAR_COMPOUND_ADD 'A' + 12 - #define EXPR_CHAR_COMPOUND_LSHIFT 'B' << 6 - #define H_SUPPRESS_SCALING_MAGIC (('s'<<24) | ('u'<<16) | ('p'<<8) | 'p') -diff --git a/Source/CParse/parser.y b/Source/CParse/parser.y -index 2e92cd0..273dadb 100644 ---- a/Source/CParse/parser.y -+++ b/Source/CParse/parser.y -@@ -194,7 +194,7 @@ int SWIG_cparse_template_reduce(int treduce) { - * ----------------------------------------------------------------------------- */ - - static int promote_type(int t) { -- if (t <= T_UCHAR || t == T_CHAR) return T_INT; -+ if (t <= T_UCHAR || t == T_CHAR || t == T_WCHAR) return T_INT; - return t; - } - --- -2.9.5 - From 260eca3424a8cb654b48b2604f7d4ee5aa1d60d0 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 18:23:54 -0400 Subject: [PATCH 064/210] backports/uranium: fix build on edge --- backports/uranium/APKBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backports/uranium/APKBUILD b/backports/uranium/APKBUILD index 7badd09..e896971 100644 --- a/backports/uranium/APKBUILD +++ b/backports/uranium/APKBUILD @@ -42,7 +42,7 @@ build() { check() { # useless code style test with another dependency - ctest --output-on-failure -T Test + ctest -T Test } package() { From 50524f1f2a1ae8671bf83ea85347335582cab271 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 18:38:31 -0400 Subject: [PATCH 065/210] ci: check backports of 3.22 --- .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 a25ad4e..cd8f63b 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.21/backports + downstream: https://ayakael.net/api/packages/forge/alpine/v3.22/backports ISSUE_TOKEN: ${{ secrets.issue_token }} LABEL_NUMBER: 1 ALL_PACKAGES: true From 48447cd14c9c7786a5715c0877aa2cade9542e15 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 19:05:21 -0400 Subject: [PATCH 066/210] unmaintained/znapzend: move from user --- {user => unmaintained}/znapzend/APKBUILD | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {user => unmaintained}/znapzend/APKBUILD (100%) diff --git a/user/znapzend/APKBUILD b/unmaintained/znapzend/APKBUILD similarity index 100% rename from user/znapzend/APKBUILD rename to unmaintained/znapzend/APKBUILD From 24d2f84bab20ea195a9ff76ac0d5abb192a81e00 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 19:05:47 -0400 Subject: [PATCH 067/210] unmaintained/soci: move from user --- {user => unmaintained}/soci/APKBUILD | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {user => unmaintained}/soci/APKBUILD (100%) diff --git a/user/soci/APKBUILD b/unmaintained/soci/APKBUILD similarity index 100% rename from user/soci/APKBUILD rename to unmaintained/soci/APKBUILD From ff38eb32003e9592d79caaf4ebc0f48087ec89b9 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 19:06:56 -0400 Subject: [PATCH 068/210] user/freecad: drop due to in backports --- user/freecad/APKBUILD | 108 --- user/freecad/missing-include-cstdint.patch | 11 - user/freecad/no-execinfo.patch | 46 -- user/freecad/no-workaround-spnav.patch | 69 -- user/freecad/numpy-1.20.patch | 25 - user/freecad/opencascade-7.8.0.patch | 877 --------------------- user/freecad/resourceDirectory.patch | 11 - user/freecad/tests.patch | 33 - 8 files changed, 1180 deletions(-) delete mode 100644 user/freecad/APKBUILD delete mode 100644 user/freecad/missing-include-cstdint.patch delete mode 100644 user/freecad/no-execinfo.patch delete mode 100644 user/freecad/no-workaround-spnav.patch delete mode 100644 user/freecad/numpy-1.20.patch delete mode 100644 user/freecad/opencascade-7.8.0.patch delete mode 100644 user/freecad/resourceDirectory.patch delete mode 100644 user/freecad/tests.patch diff --git a/user/freecad/APKBUILD b/user/freecad/APKBUILD deleted file mode 100644 index 30c9eb5..0000000 --- a/user/freecad/APKBUILD +++ /dev/null @@ -1,108 +0,0 @@ -# Contributor: Aiden Grossman -# Maintainer: Aiden Grossman -pkgname=freecad -pkgver=0.20.2 -pkgrel=5 -pkgdesc="Free and open source 3D parametric modeler" -url="https://freecadweb.org/" -license="LGPL-2.0-or-later" -arch="" # removed dependency py3-pyside2 -#arch="x86_64" # dependency OpenCascade is only x86_64 -depends=" - graphviz - hdf5 - opencascade - py3-matplotlib - py3-numpy - py3-pivy - py3-ply - py3-pyside2 - py3-six - py3-yaml - python3 - " -makedepends=" - boost-dev - cmake - coin-dev - doxygen - eigen-dev - freeimage-dev - glu-dev - hdf5-dev - libmedc-dev - libshiboken2-dev - onetbb-dev - opencascade-dev - py3-pyside2-dev - python3-dev - shiboken2 - qt5-qtsvg-dev - qt5-qtwebengine-dev - qt5-qtxmlpatterns-dev - samurai - swig - vtk-dev - xerces-c-dev - " -checkdepends="xvfb-run mesa mesa-dri-gallium font-opensans" -source="https://github.com/FreeCAD/FreeCAD/archive/$pkgver/freecad-$pkgver.tar.gz - $pkgname-python3.11-1.patch::https://github.com/FreeCAD/FreeCAD/commit/fe02d63c8c9b1280978be841d04e68a0a55cceb9.patch - numpy-1.20.patch - no-execinfo.patch - no-workaround-spnav.patch - resourceDirectory.patch - tests.patch - opencascade-7.8.0.patch - missing-include-cstdint.patch - " -builddir="$srcdir/FreeCAD-$pkgver" - -build() { - cmake -B build -G Ninja \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_C_FLAGS="$CFLAGS -fPIC -w" \ - -DCMAKE_CXX_FLAGS="$CXXFLAGS -fPIC -w" \ - -DCMAKE_INSTALL_PREFIX=/usr/lib/freecad \ - -DCMAKE_INSTALL_DATADIR=/usr/share/freecad \ - -DCMAKE_INSTALL_DATAROOTDIR=/usr/share \ - -DCMAKE_INSTALL_DOCDIR=/usr/share/freecad/doc \ - -DBUILD_ENABLE_CXX_STD=C++17 \ - -DBUILD_QT5=ON \ - -DFREECAD_USE_EXTERNAL_PIVY=ON \ - -DFREECAD_USE_OCC_VARIANT="Official Version" \ - -DFREECAD_USE_QT_FILEDIALOG=ON \ - -DPYTHON_EXECUTABLE=/usr/bin/python3 - cmake --build build -} - -check() { - DESTDIR=test_install cmake --install build - mkdir -p test_install/usr/bin - ln -s ../lib/freecad/bin/FreeCAD test_install/usr/bin/FreeCAD - ln -s ../lib/freecad/bin/FreeCADCmd test_install/usr/bin/FreeCADCmd - LD_LIBRARY_PATH="$PWD"/test_install/usr/lib/freecad/lib \ - xvfb-run "$PWD"/test_install/usr/bin/FreeCAD -t 0 -} - -package() { - DESTDIR="$pkgdir" cmake --install build - - # FreeCAD does not initialize correctly when binaries - # are located under /usr/bin; thus, symlinks are necessary. - install -d "$pkgdir"/usr/bin - ln -s /usr/lib/freecad/bin/FreeCAD "$pkgdir"/usr/bin/FreeCAD - ln -s /usr/lib/freecad/bin/FreeCADCmd "$pkgdir"/usr/bin/FreeCADCmd -} - -sha512sums=" -c3acd77dd2bb9a2a23ac354da3b6102effb89c95d675e91421d65486414dfe8cc0188a7212245e0deb63f17b9c5df76133017be09e4cd14b833be8cbec52a08d freecad-0.20.2.tar.gz -75a237f7ed7a89a98c0e5bdb3d3f0788749602daf718089aa0814e05f93ced1e15ad5867c7c87f170b48c5984f9ace1bbc95c4f386ce72bfb8d616323b47f1e5 freecad-python3.11-1.patch -80b08b031810fce7b6d698c662f64fa4f8a904f283f46b478b1d718529164c0ee61ce190f633abf04e03212720480f3f0603b0c1e160af79d7b6bb82da3bd0e4 numpy-1.20.patch -73aaba7015dce7048eb7d2456131b5b5ba4673cc980503331987be54d99daed5f61db015ca33d7d2ef0f02bd3192da8ce122c103c3b93f9959927deb4f0b933e no-execinfo.patch -15696bdaaf77482f1b5d3806535a8004c8cec7d598d62092d9f0394b4ca9e2ad6cedd77c4b86a83a06324d16678c1c6bbf3a390b807729717a2f513e858afd50 no-workaround-spnav.patch -8ba13b17bad66316757d180c1b9e9e72a24382627eac7c43a2264b3b5101e6e8f701775f2b805ed733f500fbcd8b0e8e422ec58a9ab3d948d613b666157d4c52 resourceDirectory.patch -5db19e0aa2ca1fd21f4c56afc9db54390a799262aaa0a741704c2c304b0068fd6ca1dcc086465e12e9c0cfe06aac750aaf9b8f5f4db324539af4dd3394803ff9 tests.patch -f933680dea8744e147f38abce389cb7fd0ec3fb3566454fdd5e6ea07b2faaac5fe61aabe1df3bda9f0d7b4fca16055aa2ad700e9cce10d2604ae37b761b68ade opencascade-7.8.0.patch -fec515cc63830f0e715527c7890173705b24e7d99d225821ec4300104cf3affdee49243bbd4d0a331a902cf04db756a1b8f18f0a17cc71f5757f8b5c73c78ede missing-include-cstdint.patch -" diff --git a/user/freecad/missing-include-cstdint.patch b/user/freecad/missing-include-cstdint.patch deleted file mode 100644 index 363a706..0000000 --- a/user/freecad/missing-include-cstdint.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff --color -rupN a/src/3rdParty/libE57Format/include/E57Format.h b/src/3rdParty/libE57Format/include/E57Format.h ---- a/src/3rdParty/libE57Format/include/E57Format.h 2022-12-07 03:35:37.000000000 +0100 -+++ b/src/3rdParty/libE57Format/include/E57Format.h 2024-02-27 14:06:29.308892531 +0100 -@@ -32,6 +32,7 @@ - //! @file E57Format.h header file for the E57 API - - #include -+#include - #include - #include - diff --git a/user/freecad/no-execinfo.patch b/user/freecad/no-execinfo.patch deleted file mode 100644 index 3e1c39c..0000000 --- a/user/freecad/no-execinfo.patch +++ /dev/null @@ -1,46 +0,0 @@ -diff --git a/src/3rdParty/salomesmesh/src/DriverSTL/Basics_Utils.cpp b/src/3rdParty/salomesmesh/src/DriverSTL/Basics_Utils.cpp -index 23c5083..54c7ecf 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 - - -@@ -109,20 +108,7 @@ namespace Kernel_Utils - #ifndef WIN32 - void print_traceback() - { -- void *array[50]; -- 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); -+ std::cerr << "there is no backtrace." << std::endl; - } - #else - #if (_MSC_VER >= 1400) // Visual Studio 2005 -diff --git a/src/App/Application.cpp b/src/App/Application.cpp -index 3081623..ba3525f 100644 ---- a/src/App/Application.cpp -+++ b/src/App/Application.cpp -@@ -1732,7 +1732,6 @@ static void freecadNewHandler () - #endif - - #if defined(FC_OS_LINUX) --#include - #include - #include - diff --git a/user/freecad/no-workaround-spnav.patch b/user/freecad/no-workaround-spnav.patch deleted file mode 100644 index ee4fead..0000000 --- a/user/freecad/no-workaround-spnav.patch +++ /dev/null @@ -1,69 +0,0 @@ -Patch-Source: https://github.com/FreeCAD/FreeCAD/commit/7b377a216b9185960e4cee980a6504dc1a755f50 -fixes stderr reassignment --- -From 7b377a216b9185960e4cee980a6504dc1a755f50 Mon Sep 17 00:00:00 2001 -From: wmayer -Date: Wed, 29 Jun 2022 15:19:18 +0200 -Subject: [PATCH] Gui: remove workaround for spnav 0.23 due to build failure - with musl libc - ---- - src/Gui/3Dconnexion/GuiNativeEventLinux.cpp | 27 --------------------- - 1 file changed, 27 deletions(-) - -diff --git a/src/Gui/3Dconnexion/GuiNativeEventLinux.cpp b/src/Gui/3Dconnexion/GuiNativeEventLinux.cpp -index 7f0ddd75d262..455ece0b36bd 100644 ---- a/src/Gui/3Dconnexion/GuiNativeEventLinux.cpp -+++ b/src/Gui/3Dconnexion/GuiNativeEventLinux.cpp -@@ -21,42 +21,17 @@ - ***************************************************************************/ - - #include --#include - - #include "GuiNativeEventLinux.h" - - #include "GuiApplicationNativeEventAware.h" - #include --#include - #include - - #include - - #include - --namespace { --class RedirectStdErr --{ --public: -- RedirectStdErr() -- : fi(Base::FileInfo::getTempFileName()) -- , file(stderr) -- { -- stderr = fopen(fi.filePath().c_str(), "w"); -- } -- ~RedirectStdErr() -- { -- fclose(stderr); -- fi.deleteFile(); -- stderr = file; -- } -- --private: -- Base::FileInfo fi; -- FILE* file; --}; --} -- - Gui::GuiNativeEvent::GuiNativeEvent(Gui::GUIApplicationNativeEventAware *app) - : GuiAbstractNativeEvent(app) - { -@@ -72,8 +47,6 @@ Gui::GuiNativeEvent::~GuiNativeEvent() - - void Gui::GuiNativeEvent::initSpaceball(QMainWindow *window) - { -- // tmp. redirect stderr to a file to suppress an error message from spnav_open() -- RedirectStdErr err; - Q_UNUSED(window) - if (spnav_open() == -1) { - Base::Console().Log("Couldn't connect to spacenav daemon. Please ignore if you don't have a spacemouse.\n"); diff --git a/user/freecad/numpy-1.20.patch b/user/freecad/numpy-1.20.patch deleted file mode 100644 index 20f4b41..0000000 --- a/user/freecad/numpy-1.20.patch +++ /dev/null @@ -1,25 +0,0 @@ -Patch-Source: https://github.com/FreeCAD/FreeCAD/commit/8b0df1dc936b544091f6a2d68df1c1a14ae3de5b --- -From 8b0df1dc936b544091f6a2d68df1c1a14ae3de5b Mon Sep 17 00:00:00 2001 -From: lorenz -Date: Tue, 27 Dec 2022 04:59:35 +0100 -Subject: [PATCH] FEM: femmesh: fix AttributeError: module 'numpy' has no - attribute 'int' - ---- - src/Mod/Fem/femmesh/meshtools.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/Mod/Fem/femmesh/meshtools.py b/src/Mod/Fem/femmesh/meshtools.py -index dd8671b..d2e2b0a 100644 ---- a/src/Mod/Fem/femmesh/meshtools.py -+++ b/src/Mod/Fem/femmesh/meshtools.py -@@ -485,7 +485,7 @@ def get_femelement_sets( - # fem_objects = FreeCAD FEM document objects - # get femelements for reference shapes of each obj.References - count_femelements = 0 -- referenced_femelements = np.zeros((max(femelement_table.keys())+1,),dtype=np.int) -+ referenced_femelements = np.zeros((max(femelement_table.keys())+1,),dtype=int) - has_remaining_femelements = None - for fem_object_i, fem_object in enumerate(fem_objects): - obj = fem_object["Object"] diff --git a/user/freecad/opencascade-7.8.0.patch b/user/freecad/opencascade-7.8.0.patch deleted file mode 100644 index 582fbde..0000000 --- a/user/freecad/opencascade-7.8.0.patch +++ /dev/null @@ -1,877 +0,0 @@ -Fix compilation with opencascase 7.8.0 - -Base on https://github.com/FreeCAD/FreeCAD/pull/11909 - -diff --color -rupN a/cMake/FindOCC.cmake b/cMake/FindOCC.cmake ---- a/cMake/FindOCC.cmake 2022-12-07 03:35:37.000000000 +0100 -+++ b/cMake/FindOCC.cmake 2024-02-27 15:00:48.248873883 +0100 -@@ -127,8 +127,6 @@ if(OCC_FOUND) - TKG2d - TKG3d - TKMath -- TKIGES -- TKSTL - TKShHealing - TKXSBase - TKBool -@@ -139,10 +137,6 @@ if(OCC_FOUND) - TKGeomBase - TKOffset - TKPrim -- TKSTEPBase -- TKSTEPAttr -- TKSTEP209 -- TKSTEP - TKHLR - TKFeat - ) -@@ -154,17 +148,19 @@ if(OCC_FOUND) - TKLCAF - TKVCAF - TKCDF -- TKXDESTEP -- TKXDEIGES - TKMeshVS - TKService - TKV3d - ) -- if(OCC_VERSION_STRING VERSION_LESS 6.7.3) -- list(APPEND OCC_OCAF_LIBRARIES TKAdvTools) -- elseif(NOT OCC_VERSION_STRING VERSION_LESS 7.5.0) -+ if(NOT OCC_VERSION_STRING VERSION_LESS 7.5.0) - list(APPEND OCC_OCAF_LIBRARIES TKRWMesh) -- endif(OCC_VERSION_STRING VERSION_LESS 6.7.3) -+ endif(NOT OCC_VERSION_STRING VERSION_LESS 7.5.0) -+ if(OCC_VERSION_STRING VERSION_LESS 7.8.0) -+ list(APPEND OCC_LIBRARIES TKIGES TKSTL TKSTEPBase TKSTEPAttr TKSTEP209 TKSTEP) -+ list(APPEND OCC_OCAF_LIBRARIES TKXDESTEP TKXDEIGES) -+ else(OCC_VERSION_STRING VERSION_LESS 7.8.0) -+ list(APPEND OCC_LIBRARIES TKDESTEP TKDEIGES TKDEGLTF TKDESTL) -+ endif(OCC_VERSION_STRING VERSION_LESS 7.8.0) - message(STATUS "-- Found OCE/OpenCASCADE version: ${OCC_VERSION_STRING}") - message(STATUS "-- OCE/OpenCASCADE include directory: ${OCC_INCLUDE_DIR}") - message(STATUS "-- OCE/OpenCASCADE shared libraries directory: ${OCC_LIBRARY_DIR}") -diff --color -rupN a/src/3rdParty/salomesmesh/inc/SMESHDS_DataMapOfShape.hxx b/src/3rdParty/salomesmesh/inc/SMESHDS_DataMapOfShape.hxx ---- a/src/3rdParty/salomesmesh/inc/SMESHDS_DataMapOfShape.hxx 2022-12-07 03:35:37.000000000 +0100 -+++ b/src/3rdParty/salomesmesh/inc/SMESHDS_DataMapOfShape.hxx 2024-02-27 15:00:48.248873883 +0100 -@@ -29,22 +29,35 @@ - - #include - -+#include -+ - /* - * This method needed for instance NCollection_DataMap with TopoDS_Shape as key - */ -+#if OCC_VERSION_HEX >= 0x070800 - struct SMESHDS_Hasher - { -- static inline Standard_Boolean IsEqual(const TopoDS_Shape& S1, -- const TopoDS_Shape& S2) -- { -- return S1.IsSame(S2); -+ size_t operator()(const TopoDS_Shape& S) const noexcept { -+ return std::hash{}(S); - } -- static inline Standard_Integer HashCode(const TopoDS_Shape& S, -- const Standard_Integer Upper) -- { -- return ::HashCode( S, Upper); -+ size_t operator()(const TopoDS_Shape& S1, const TopoDS_Shape& S2) const noexcept { -+ return S1.IsSame(S2); - } - }; -- -+#else -+struct SMESHDS_Hasher -+{ -+static inline Standard_Boolean IsEqual(const TopoDS_Shape& S1, -+ const TopoDS_Shape& S2) -+{ -+ return S1.IsSame(S2); -+} -+static inline Standard_Integer HashCode(const TopoDS_Shape& S, -+ const Standard_Integer Upper) -+{ -+ return ::HashCode( S, Upper); -+} -+}; -+#endif - - #endif -diff --color -rupN a/src/3rdParty/salomesmesh/inc/SMESH_MeshVSLink.hxx b/src/3rdParty/salomesmesh/inc/SMESH_MeshVSLink.hxx ---- a/src/3rdParty/salomesmesh/inc/SMESH_MeshVSLink.hxx 2022-12-07 03:35:37.000000000 +0100 -+++ b/src/3rdParty/salomesmesh/inc/SMESH_MeshVSLink.hxx 2024-02-27 15:00:48.248873883 +0100 -@@ -57,9 +57,6 @@ - #ifndef _MeshVS_EntityType_HeaderFile - #include - #endif --#ifndef _Standard_Address_HeaderFile --#include --#endif - #ifndef _TColStd_HArray1OfInteger_HeaderFile - #include - #endif -diff --color -rupN a/src/3rdParty/salomesmesh/inc/SMESH_SMESH.hxx b/src/3rdParty/salomesmesh/inc/SMESH_SMESH.hxx ---- a/src/3rdParty/salomesmesh/inc/SMESH_SMESH.hxx 2022-12-07 03:35:37.000000000 +0100 -+++ b/src/3rdParty/salomesmesh/inc/SMESH_SMESH.hxx 2024-02-27 15:00:48.248873883 +0100 -@@ -37,4 +37,5 @@ - #define SMESH_EXPORT - #endif - -+#include - #endif -diff --color -rupN a/src/3rdParty/salomesmesh/inc/SMESH_SequenceOfNode.hxx b/src/3rdParty/salomesmesh/inc/SMESH_SequenceOfNode.hxx ---- a/src/3rdParty/salomesmesh/inc/SMESH_SequenceOfNode.hxx 2022-12-07 03:35:37.000000000 +0100 -+++ b/src/3rdParty/salomesmesh/inc/SMESH_SequenceOfNode.hxx 2024-02-27 15:00:48.252207183 +0100 -@@ -28,10 +28,11 @@ - - #include "SMESH_SMESH.hxx" - --#include - #if OCC_VERSION_HEX >= 0x060703 - #include - #include -+#else -+#include - #endif - - typedef const SMDS_MeshNode* SMDS_MeshNodePtr; -diff --color -rupN a/src/3rdParty/salomesmesh/inc/SMESH_TypeDefs.hxx b/src/3rdParty/salomesmesh/inc/SMESH_TypeDefs.hxx ---- a/src/3rdParty/salomesmesh/inc/SMESH_TypeDefs.hxx 2022-12-07 03:35:37.000000000 +0100 -+++ b/src/3rdParty/salomesmesh/inc/SMESH_TypeDefs.hxx 2024-02-27 15:00:48.252207183 +0100 -@@ -185,11 +185,18 @@ typedef std::vector< UVPtStruct > UVPtSt - - // -------------------------------------------------------------------------------- - // class SMESH_SequenceOfElemPtr -+#include -+#if OCC_VERSION_HEX >= 0x060703 -+#include -+#else - #include -+#endif - - class SMDS_MeshElement; - - typedef const SMDS_MeshElement* SMDS_MeshElementPtr; -+#define DEFINE_SEQUENCE(_ClassName_, _BaseCollection_, TheItemType) \ -+typedef NCollection_Sequence _ClassName_; - - DEFINE_SEQUENCE (SMESH_SequenceOfElemPtr, SMESH_BaseCollectionElemPtr, SMDS_MeshElementPtr) - -diff --color -rupN a/src/3rdParty/salomesmesh/src/DriverSTL/DriverSTL_R_SMDS_Mesh.cpp b/src/3rdParty/salomesmesh/src/DriverSTL/DriverSTL_R_SMDS_Mesh.cpp ---- a/src/3rdParty/salomesmesh/src/DriverSTL/DriverSTL_R_SMDS_Mesh.cpp 2022-12-07 03:35:37.000000000 +0100 -+++ b/src/3rdParty/salomesmesh/src/DriverSTL/DriverSTL_R_SMDS_Mesh.cpp 2024-02-27 15:00:48.252207183 +0100 -@@ -33,10 +33,33 @@ - #include "SMDS_MeshNode.hxx" - #include "SMESH_File.hxx" - -+#include -+ - namespace - { - struct Hasher - { -+#if OCC_VERSION_HEX >= 0x070800 -+ size_t operator()(const gp_Pnt& point) const noexcept -+ { -+ union -+ { -+ Standard_Real R[3]; -+ Standard_Integer I[6]; -+ } U; -+ -+ point.Coord( U.R[0], U.R[1], U.R[2] ); -+ return std::hash{}(U.I[0]/23+U.I[1]/19+U.I[2]/17+U.I[3]/13+U.I[4]/11+U.I[5]/7); -+ } -+ -+ size_t operator()(const gp_Pnt& point1, const gp_Pnt& point2) const noexcept -+ { -+ static Standard_Real tab1[3], tab2[3]; -+ point1.Coord(tab1[0],tab1[1],tab1[2]); -+ point2.Coord(tab2[0],tab2[1],tab2[2]); -+ return (memcmp(tab1,tab2,sizeof(tab1)) == 0); -+ } -+#else - //======================================================================= - //function : HashCode - //purpose : -@@ -51,9 +74,9 @@ namespace - } U; - - point.Coord( U.R[0], U.R[1], U.R[2] ); -- -- return ::HashCode(U.I[0]/23+U.I[1]/19+U.I[2]/17+U.I[3]/13+U.I[4]/11+U.I[5]/7,Upper); -+ return std::hash{}(U.I[0]/23+U.I[1]/19+U.I[2]/17+U.I[3]/13+U.I[4]/11+U.I[5]/7); - } -+ - //======================================================================= - //function : IsEqual - //purpose : -@@ -66,7 +89,9 @@ namespace - point2.Coord(tab2[0],tab2[1],tab2[2]); - return (memcmp(tab1,tab2,sizeof(tab1)) == 0); - } -+#endif - }; -+ - typedef NCollection_DataMap TDataMapOfPntNodePtr; - - const int HEADER_SIZE = 84; -diff --color -rupN a/src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_Quadrangle_2D.cpp b/src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_Quadrangle_2D.cpp ---- a/src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_Quadrangle_2D.cpp 2022-12-07 03:35:37.000000000 +0100 -+++ b/src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_Quadrangle_2D.cpp 2024-02-27 15:00:48.252207183 +0100 -@@ -48,7 +48,6 @@ - #include - #include - #include --#include - #include - #include - #include -diff --color -rupN a/src/Mod/Drawing/App/PreCompiled.h b/src/Mod/Drawing/App/PreCompiled.h ---- a/src/Mod/Drawing/App/PreCompiled.h 2022-12-07 03:35:37.000000000 +0100 -+++ b/src/Mod/Drawing/App/PreCompiled.h 2024-02-27 15:00:48.252207183 +0100 -@@ -70,7 +70,6 @@ - #include - #include - #include --#include - #include - #include - #include -diff --color -rupN a/src/Mod/Drawing/Gui/TaskDialog.cpp b/src/Mod/Drawing/Gui/TaskDialog.cpp ---- a/src/Mod/Drawing/Gui/TaskDialog.cpp 2022-12-07 03:35:37.000000000 +0100 -+++ b/src/Mod/Drawing/Gui/TaskDialog.cpp 2024-02-27 15:00:48.252207183 +0100 -@@ -29,7 +29,6 @@ - #endif - - --#include - #include "TaskDialog.h" - #include - #include -diff --color -rupN a/src/Mod/Fem/Gui/PreCompiled.h b/src/Mod/Fem/Gui/PreCompiled.h ---- a/src/Mod/Fem/Gui/PreCompiled.h 2022-12-07 03:35:37.000000000 +0100 -+++ b/src/Mod/Fem/Gui/PreCompiled.h 2024-02-27 15:00:48.252207183 +0100 -@@ -63,7 +63,6 @@ - #endif - - // OCC --#include - #include - #include - #include -diff --color -rupN a/src/Mod/Fem/Gui/TaskCreateNodeSet.cpp b/src/Mod/Fem/Gui/TaskCreateNodeSet.cpp ---- a/src/Mod/Fem/Gui/TaskCreateNodeSet.cpp 2022-12-07 03:35:37.000000000 +0100 -+++ b/src/Mod/Fem/Gui/TaskCreateNodeSet.cpp 2024-02-27 15:00:48.252207183 +0100 -@@ -28,7 +28,6 @@ - - # include - # include --# include - #endif - - #include -diff --color -rupN a/src/Mod/Import/App/ImportOCAF.cpp b/src/Mod/Import/App/ImportOCAF.cpp ---- a/src/Mod/Import/App/ImportOCAF.cpp 2022-12-07 03:35:37.000000000 +0100 -+++ b/src/Mod/Import/App/ImportOCAF.cpp 2024-02-27 15:00:48.252207183 +0100 -@@ -165,7 +165,11 @@ void ImportOCAF::loadShapes(const TDF_La - std::vector localValue; - - if (aShapeTool->GetShape(label,aShape)) { -+#if OCC_VERSION_HEX >= 0x070800 -+ hash = std::hash{}(aShape); -+#else - hash = aShape.HashCode(HashUpper); -+#endif - } - - Handle(TDataStd_Name) name; -@@ -235,7 +239,11 @@ void ImportOCAF::loadShapes(const TDF_La - if (isRef || myRefShapes.find(hash) == myRefShapes.end()) { - TopoDS_Shape aShape; - if (isRef && aShapeTool->GetShape(label, aShape)) -+#if OCC_VERSION_HEX >= 0x070800 -+ myRefShapes.insert(std::hash{}(aShape)); -+#else - myRefShapes.insert(aShape.HashCode(HashUpper)); -+#endif - - if (aShapeTool->IsSimpleShape(label) && (isRef || aShapeTool->IsFree(label))) { - if (!asm_name.empty()) -@@ -565,7 +573,11 @@ void ImportXCAF::createShape(const TopoD - part->Label.setValue(default_name); - part->Shape.setValue(shape); - std::map::const_iterator jt; -+#if OCC_VERSION_HEX >= 0x070800 -+ jt = myColorMap.find(std::hash{}(shape)); -+#else - jt = myColorMap.find(shape.HashCode(INT_MAX)); -+#endif - - App::Color partColor(0.8f,0.8f,0.8f); - #if 0//TODO -@@ -586,7 +598,11 @@ void ImportXCAF::createShape(const TopoD - // set label name if defined - if (setname && !myNameMap.empty()) { - std::map::const_iterator jt; -+#if OCC_VERSION_HEX >= 0x070800 -+ jt = myNameMap.find(std::hash{}(shape)); -+#else - jt = myNameMap.find(shape.HashCode(INT_MAX)); -+#endif - if (jt != myNameMap.end()) { - part->Label.setValue(jt->second); - } -@@ -606,7 +622,11 @@ void ImportXCAF::createShape(const TopoD - faceColors.resize(faces.Extent(), partColor); - xp.Init(shape,TopAbs_FACE); - while (xp.More()) { -+#if OCC_VERSION_HEX >= 0x070800 -+ jt = myColorMap.find(std::hash{}(xp.Current())); -+#else - jt = myColorMap.find(xp.Current().HashCode(INT_MAX)); -+#endif - if (jt != myColorMap.end()) { - int index = faces.FindIndex(xp.Current()); - faceColors[index-1] = convertColor(jt->second); -@@ -641,23 +661,51 @@ void ImportXCAF::loadShapes(const TDF_La - // add the shapes - TopExp_Explorer xp; - for (xp.Init(aShape, TopAbs_SOLID); xp.More(); xp.Next(), ctSolids++) -+#if OCC_VERSION_HEX >= 0x070800 -+ this->mySolids[std::hash{}(xp.Current())] = (xp.Current()); -+#else - this->mySolids[xp.Current().HashCode(INT_MAX)] = (xp.Current()); -+#endif - for (xp.Init(aShape, TopAbs_SHELL, TopAbs_SOLID); xp.More(); xp.Next(), ctShells++) -+#if OCC_VERSION_HEX >= 0x070800 -+ this->myShells[std::hash{}(xp.Current())] = (xp.Current()); -+#else - this->myShells[xp.Current().HashCode(INT_MAX)] = (xp.Current()); -+#endif - // if no solids and no shells were found then go for compounds - if (ctSolids == 0 && ctShells == 0) { - for (xp.Init(aShape, TopAbs_COMPOUND); xp.More(); xp.Next(), ctComps++) -+#if OCC_VERSION_HEX >= 0x070800 -+ this->myCompds[std::hash{}(xp.Current())] = (xp.Current()); -+#else - this->myCompds[xp.Current().HashCode(INT_MAX)] = (xp.Current()); -+#endif - } - if (ctComps == 0) { - for (xp.Init(aShape, TopAbs_FACE, TopAbs_SHELL); xp.More(); xp.Next()) -+#if OCC_VERSION_HEX >= 0x070800 -+ this->myShapes[std::hash{}(xp.Current())] = (xp.Current()); -+#else - this->myShapes[xp.Current().HashCode(INT_MAX)] = (xp.Current()); -+#endif - for (xp.Init(aShape, TopAbs_WIRE, TopAbs_FACE); xp.More(); xp.Next()) -+#if OCC_VERSION_HEX >= 0x070800 -+ this->myShapes[std::hash{}(xp.Current())] = (xp.Current()); -+#else - this->myShapes[xp.Current().HashCode(INT_MAX)] = (xp.Current()); -+#endif - for (xp.Init(aShape, TopAbs_EDGE, TopAbs_WIRE); xp.More(); xp.Next()) -+#if OCC_VERSION_HEX >= 0x070800 -+ this->myShapes[std::hash{}(xp.Current())] = (xp.Current()); -+#else - this->myShapes[xp.Current().HashCode(INT_MAX)] = (xp.Current()); -+#endif - for (xp.Init(aShape, TopAbs_VERTEX, TopAbs_EDGE); xp.More(); xp.Next()) -+#if OCC_VERSION_HEX >= 0x070800 -+ this->myShapes[std::hash{}(xp.Current())] = (xp.Current()); -+#else - this->myShapes[xp.Current().HashCode(INT_MAX)] = (xp.Current()); -+#endif - } - } - -@@ -667,7 +715,11 @@ void ImportXCAF::loadShapes(const TDF_La - hColors->GetColor(label, XCAFDoc_ColorSurf, col) || - hColors->GetColor(label, XCAFDoc_ColorCurv, col)) { - // add defined color -+#if OCC_VERSION_HEX >= 0x070800 -+ myColorMap[std::hash{}(aShape)] = col; -+#else - myColorMap[aShape.HashCode(INT_MAX)] = col; -+#endif - } - else { - // http://www.opencascade.org/org/forum/thread_17107/ -@@ -677,7 +729,11 @@ void ImportXCAF::loadShapes(const TDF_La - hColors->GetColor(it.Value(), XCAFDoc_ColorSurf, col) || - hColors->GetColor(it.Value(), XCAFDoc_ColorCurv, col)) { - // add defined color -+#if OCC_VERSION_HEX >= 0x070800 -+ myColorMap[std::hash{}(it.Value())] = col; -+#else - myColorMap[it.Value().HashCode(INT_MAX)] = col; -+#endif - } - } - } -@@ -690,7 +746,11 @@ void ImportXCAF::loadShapes(const TDF_La - extstr.ToUTF8CString(str); - std::string labelName(str); - if (!labelName.empty()) -+#if OCC_VERSION_HEX >= 0x070800 -+ myNameMap[std::hash{}(aShape)] = labelName; -+#else - myNameMap[aShape.HashCode(INT_MAX)] = labelName; -+#endif - delete [] str; - } - -diff --color -rupN a/src/Mod/Import/App/ImportOCAF.h b/src/Mod/Import/App/ImportOCAF.h ---- a/src/Mod/Import/App/ImportOCAF.h 2022-12-07 03:35:37.000000000 +0100 -+++ b/src/Mod/Import/App/ImportOCAF.h 2024-02-27 15:00:48.252207183 +0100 -@@ -29,7 +29,6 @@ - #include - #include - #include --#include - #include - #include - #include -diff --color -rupN a/src/Mod/Import/App/ImportOCAF2.h b/src/Mod/Import/App/ImportOCAF2.h ---- a/src/Mod/Import/App/ImportOCAF2.h 2022-12-07 03:35:37.000000000 +0100 -+++ b/src/Mod/Import/App/ImportOCAF2.h 2024-02-27 15:06:12.358890276 +0100 -@@ -27,7 +27,6 @@ - #include - #include - #include --#include - #include - #include - #include -@@ -57,13 +56,21 @@ namespace Import { - - struct ShapeHasher { - std::size_t operator()(const TopoDS_Shape &s) const { -+#if OCC_VERSION_HEX >= 0x070800 -+ return std::hash{}(s); -+#else - return s.HashCode(INT_MAX); -+#endif - } - }; - - struct LabelHasher { - std::size_t operator()(const TDF_Label &l) const { -+#if OCC_VERSION_HEX >= 0x070800 -+ return std::hash {}(l); -+#else - return TDF_LabelMapHasher::HashCode(l,INT_MAX); -+#endif - } - }; - -diff --color -rupN a/src/Mod/MeshPart/App/CurveProjector.h b/src/Mod/MeshPart/App/CurveProjector.h ---- a/src/Mod/MeshPart/App/CurveProjector.h 2022-12-07 03:35:37.000000000 +0100 -+++ b/src/Mod/MeshPart/App/CurveProjector.h 2024-02-27 15:00:48.252207183 +0100 -@@ -20,6 +20,7 @@ - * * - ***************************************************************************/ - -+#include - - #ifndef _CurveProjector_h_ - #define _CurveProjector_h_ -@@ -64,8 +65,13 @@ public: - - template - struct TopoDSLess { -- bool operator()(const T& x, const T& y) const { -- return x.HashCode(INT_MAX-1) < y.HashCode(INT_MAX-1); -+ bool operator()(const T& x, const T& y) const { -+#if OCC_VERSION_HEX >= 0x070800 -+ std::hash hasher; -+ return hasher(x) < hasher(y); -+#else -+ return x.HashCode(INT_MAX-1) < y.HashCode(INT_MAX-1); -+#endif - } - }; - -diff --color -rupN a/src/Mod/MeshPart/App/PreCompiled.h b/src/Mod/MeshPart/App/PreCompiled.h ---- a/src/Mod/MeshPart/App/PreCompiled.h 2022-12-07 03:35:37.000000000 +0100 -+++ b/src/Mod/MeshPart/App/PreCompiled.h 2024-02-27 15:00:48.252207183 +0100 -@@ -76,7 +76,6 @@ - #include - #include - #include --#include - #include - #include - #include -diff --color -rupN a/src/Mod/MeshPart/Gui/CrossSections.cpp b/src/Mod/MeshPart/Gui/CrossSections.cpp ---- a/src/Mod/MeshPart/Gui/CrossSections.cpp 2022-12-07 03:35:37.000000000 +0100 -+++ b/src/Mod/MeshPart/Gui/CrossSections.cpp 2024-02-27 15:00:48.252207183 +0100 -@@ -24,7 +24,6 @@ - #include "PreCompiled.h" - #ifndef _PreComp_ - # include --# include - # include - # include - # include -diff --color -rupN a/src/Mod/Part/App/ImportStep.cpp b/src/Mod/Part/App/ImportStep.cpp ---- a/src/Mod/Part/App/ImportStep.cpp 2022-12-07 03:35:37.000000000 +0100 -+++ b/src/Mod/Part/App/ImportStep.cpp 2024-02-27 15:00:48.255540482 +0100 -@@ -167,7 +167,12 @@ int Part::ImportStepParts(App::Document - // This is a trick to access the GUI via Python and set the color property - // of the associated view provider. If no GUI is up an exception is thrown - // and cleared immediately -+#if OCC_VERSION_HEX >= 0x070800 -+ std::hash hasher; -+ std::map::iterator it = hash_col.find(hasher(aSolid)); -+#else - std::map::iterator it = hash_col.find(aSolid.HashCode(INT_MAX)); -+#endif - if (it != hash_col.end()) { - try { - Py::Object obj(pcFeature->getPyObject(), true); -diff --color -rupN a/src/Mod/Part/App/OCCError.h b/src/Mod/Part/App/OCCError.h ---- a/src/Mod/Part/App/OCCError.h 2022-12-07 03:35:37.000000000 +0100 -+++ b/src/Mod/Part/App/OCCError.h 2024-02-27 15:00:48.255540482 +0100 -@@ -50,7 +50,6 @@ - # include - # include - # include --# include - # include - # include - -diff --color -rupN a/src/Mod/Part/App/OpenCascadeAll.h b/src/Mod/Part/App/OpenCascadeAll.h ---- a/src/Mod/Part/App/OpenCascadeAll.h 2022-12-07 03:35:37.000000000 +0100 -+++ b/src/Mod/Part/App/OpenCascadeAll.h 2024-02-27 15:00:48.255540482 +0100 -@@ -49,7 +49,6 @@ - #include - #include - #include --#include - #include - #include - #include -diff --color -rupN a/src/Mod/Part/App/TopoShapePyImp.cpp b/src/Mod/Part/App/TopoShapePyImp.cpp ---- a/src/Mod/Part/App/TopoShapePyImp.cpp 2022-12-07 03:35:37.000000000 +0100 -+++ b/src/Mod/Part/App/TopoShapePyImp.cpp 2024-02-27 15:00:48.255540482 +0100 -@@ -1321,7 +1321,11 @@ PyObject* TopoShapePy::ancestorsOfType( - TopTools_ListIteratorOfListOfShape it(ancestors); - for (; it.More(); it.Next()) { - // make sure to avoid duplicates -+#if OCC_VERSION_HEX >= 0x070800 -+ const size_t code = std::hash{}(static_cast(it.Value())); -+#else - Standard_Integer code = it.Value().HashCode(INT_MAX); -+#endif - if (hashes.find(code) == hashes.end()) { - list.append(shape2pyshape(it.Value())); - hashes.insert(code); -@@ -1943,7 +1947,11 @@ PyObject* TopoShapePy::hashCode(PyObject - if (!PyArg_ParseTuple(args, "|i",&upper)) - return nullptr; - -+#if OCC_VERSION_HEX >= 0x070800 -+ int hc = std::hash{}(getTopoShapePtr()->getShape()); -+#else - int hc = getTopoShapePtr()->getShape().HashCode(upper); -+#endif - return Py_BuildValue("i", hc); - } - -diff --color -rupN a/src/Mod/Part/Gui/AppPartGui.cpp b/src/Mod/Part/Gui/AppPartGui.cpp ---- a/src/Mod/Part/Gui/AppPartGui.cpp 2022-12-07 03:35:37.000000000 +0100 -+++ b/src/Mod/Part/Gui/AppPartGui.cpp 2024-02-27 15:00:48.255540482 +0100 -@@ -11,9 +11,6 @@ - - - #include "PreCompiled.h" --#ifndef _PreComp_ --# include --#endif - - #include - #include -diff --color -rupN a/src/Mod/Part/Gui/Command.cpp b/src/Mod/Part/Gui/Command.cpp ---- a/src/Mod/Part/Gui/Command.cpp 2022-12-07 03:35:37.000000000 +0100 -+++ b/src/Mod/Part/Gui/Command.cpp 2024-02-27 15:00:48.255540482 +0100 -@@ -26,7 +26,6 @@ - # include - # include - # include --# include - # include - # include - # include -diff --color -rupN a/src/Mod/Part/Gui/CommandSimple.cpp b/src/Mod/Part/Gui/CommandSimple.cpp ---- a/src/Mod/Part/Gui/CommandSimple.cpp 2022-12-07 03:35:37.000000000 +0100 -+++ b/src/Mod/Part/Gui/CommandSimple.cpp 2024-02-27 15:00:48.255540482 +0100 -@@ -22,9 +22,6 @@ - - - #include "PreCompiled.h" --#ifndef _PreComp_ --# include --#endif - - #include - #include -diff --color -rupN a/src/Mod/Part/Gui/CrossSections.cpp b/src/Mod/Part/Gui/CrossSections.cpp ---- a/src/Mod/Part/Gui/CrossSections.cpp 2022-12-07 03:35:37.000000000 +0100 -+++ b/src/Mod/Part/Gui/CrossSections.cpp 2024-02-27 15:00:48.255540482 +0100 -@@ -23,7 +23,6 @@ - - #include "PreCompiled.h" - #ifndef _PreComp_ --# include - # include - # include - # include -diff --color -rupN a/src/Mod/Part/Gui/ViewProvider2DObject.cpp b/src/Mod/Part/Gui/ViewProvider2DObject.cpp ---- a/src/Mod/Part/Gui/ViewProvider2DObject.cpp 2022-12-07 03:35:37.000000000 +0100 -+++ b/src/Mod/Part/Gui/ViewProvider2DObject.cpp 2024-02-27 15:00:48.255540482 +0100 -@@ -26,8 +26,6 @@ - #ifndef _PreComp_ - # include - --# include -- - # include - # include - # include -diff --color -rupN a/src/Mod/Part/Gui/ViewProviderExt.cpp b/src/Mod/Part/Gui/ViewProviderExt.cpp ---- a/src/Mod/Part/Gui/ViewProviderExt.cpp 2022-12-07 03:35:37.000000000 +0100 -+++ b/src/Mod/Part/Gui/ViewProviderExt.cpp 2024-02-27 15:00:48.255540482 +0100 -@@ -978,7 +978,11 @@ void ViewProviderPartExt::updateVisual() - - TopExp_Explorer xp; - for (xp.Init(faceMap(i),TopAbs_EDGE);xp.More();xp.Next()) -+#if OCC_VERSION_HEX >= 0x070800 -+ faceEdges.insert(std::hash{}(xp.Current())); -+#else - faceEdges.insert(xp.Current().HashCode(INT_MAX)); -+#endif - numFaces++; - } - -@@ -1006,7 +1010,11 @@ void ViewProviderPartExt::updateVisual() - // So, we have to store the hashes of the edges associated to a face. - // If the hash of a given edge is not in this list we know it's really - // a free edge. -+#if OCC_VERSION_HEX >= 0x070800 -+ int hash = std::hash{}(aEdge); -+#else - int hash = aEdge.HashCode(INT_MAX); -+#endif - if (faceEdges.find(hash) == faceEdges.end()) { - Handle(Poly_Polygon3D) aPoly = Part::Tools::polygonOfEdge(aEdge, aLoc); - if (!aPoly.IsNull()) { -@@ -1205,7 +1213,11 @@ void ViewProviderPartExt::updateVisual() - TopLoc_Location aLoc; - - // handling of the free edge that are not associated to a face -+#if OCC_VERSION_HEX >= 0x070800 -+ int hash = std::hash{}(aEdge); -+#else - int hash = aEdge.HashCode(INT_MAX); -+#endif - if (faceEdges.find(hash) == faceEdges.end()) { - Handle(Poly_Polygon3D) aPoly = Part::Tools::polygonOfEdge(aEdge, aLoc); - if (!aPoly.IsNull()) { -diff --color -rupN a/src/Mod/Part/Gui/ViewProviderExt.h b/src/Mod/Part/Gui/ViewProviderExt.h ---- a/src/Mod/Part/Gui/ViewProviderExt.h 2022-12-07 03:35:37.000000000 +0100 -+++ b/src/Mod/Part/Gui/ViewProviderExt.h 2024-02-27 15:00:48.255540482 +0100 -@@ -24,7 +24,6 @@ - #ifndef PARTGUI_VIEWPROVIDERPARTEXT_H - #define PARTGUI_VIEWPROVIDERPARTEXT_H - --#include - #include - #include - #include -diff --color -rupN a/src/Mod/Part/Gui/ViewProviderMirror.cpp b/src/Mod/Part/Gui/ViewProviderMirror.cpp ---- a/src/Mod/Part/Gui/ViewProviderMirror.cpp 2022-12-07 03:35:37.000000000 +0100 -+++ b/src/Mod/Part/Gui/ViewProviderMirror.cpp 2024-02-27 15:00:48.255540482 +0100 -@@ -27,7 +27,6 @@ - # include - # include - # include --# include - # include - # include - # include -diff --color -rupN a/src/Mod/Part/Gui/ViewProviderPython.cpp b/src/Mod/Part/Gui/ViewProviderPython.cpp ---- a/src/Mod/Part/Gui/ViewProviderPython.cpp 2022-12-07 03:35:37.000000000 +0100 -+++ b/src/Mod/Part/Gui/ViewProviderPython.cpp 2024-02-27 15:00:48.255540482 +0100 -@@ -23,7 +23,6 @@ - - #include "PreCompiled.h" - --#include - #ifndef _PreComp_ - # include - #endif -diff --color -rupN a/src/Mod/Part/Gui/ViewProviderReference.h b/src/Mod/Part/Gui/ViewProviderReference.h ---- a/src/Mod/Part/Gui/ViewProviderReference.h 2022-12-07 03:35:37.000000000 +0100 -+++ b/src/Mod/Part/Gui/ViewProviderReference.h 2024-02-27 15:00:48.255540482 +0100 -@@ -24,7 +24,6 @@ - #ifndef PARTGUI_ViewProviderPartReference_H - #define PARTGUI_ViewProviderPartReference_H - --#include - #include - #include - #include -diff --color -rupN a/src/Mod/PartDesign/Gui/PreCompiled.h b/src/Mod/PartDesign/Gui/PreCompiled.h ---- a/src/Mod/PartDesign/Gui/PreCompiled.h 2022-12-07 03:35:37.000000000 +0100 -+++ b/src/Mod/PartDesign/Gui/PreCompiled.h 2024-02-27 15:00:48.255540482 +0100 -@@ -44,7 +44,6 @@ - #include - - // OCC --#include - #include - #include - #include -diff --color -rupN a/src/Mod/Path/App/Voronoi.cpp b/src/Mod/Path/App/Voronoi.cpp ---- a/src/Mod/Path/App/Voronoi.cpp 2022-12-07 03:35:37.000000000 +0100 -+++ b/src/Mod/Path/App/Voronoi.cpp 2024-02-27 15:00:48.255540482 +0100 -@@ -23,10 +23,6 @@ - - #include "PreCompiled.h" - --#ifndef _PreComp_ --# include --#endif -- - #include - - #include "Voronoi.h" -diff --color -rupN a/src/Mod/Path/Gui/PreCompiled.h b/src/Mod/Path/Gui/PreCompiled.h ---- a/src/Mod/Path/Gui/PreCompiled.h 2022-12-07 03:35:37.000000000 +0100 -+++ b/src/Mod/Path/Gui/PreCompiled.h 2024-02-27 15:00:48.258873781 +0100 -@@ -38,8 +38,6 @@ - # define PathGuiExport - #endif - --#include -- - #ifdef _MSC_VER - # pragma warning( disable : 4273 ) - #endif -diff --color -rupN a/src/Mod/Robot/Gui/PreCompiled.h b/src/Mod/Robot/Gui/PreCompiled.h ---- a/src/Mod/Robot/Gui/PreCompiled.h 2022-12-07 03:35:37.000000000 +0100 -+++ b/src/Mod/Robot/Gui/PreCompiled.h 2024-02-27 15:00:48.258873781 +0100 -@@ -39,8 +39,6 @@ - # define RobotGuiExport - #endif - --#include -- - #ifdef _MSC_VER - # pragma warning(disable : 4005) - # pragma warning(disable : 4273) -diff --color -rupN a/src/Mod/Sandbox/Gui/AppSandboxGui.cpp b/src/Mod/Sandbox/Gui/AppSandboxGui.cpp ---- a/src/Mod/Sandbox/Gui/AppSandboxGui.cpp 2022-12-07 03:35:37.000000000 +0100 -+++ b/src/Mod/Sandbox/Gui/AppSandboxGui.cpp 2024-02-27 15:00:48.258873781 +0100 -@@ -24,7 +24,6 @@ - #include "PreCompiled.h" - #ifndef _PreComp_ - # include --# include - # include - # include - # include -diff --color -rupN a/src/Mod/Sketcher/App/SketchAnalysis.cpp b/src/Mod/Sketcher/App/SketchAnalysis.cpp ---- a/src/Mod/Sketcher/App/SketchAnalysis.cpp 2022-12-07 03:35:37.000000000 +0100 -+++ b/src/Mod/Sketcher/App/SketchAnalysis.cpp 2024-02-27 15:00:48.258873781 +0100 -@@ -25,7 +25,6 @@ - #include "PreCompiled.h" - - #ifndef _PreComp_ --# include - # include - # include - # include -diff --color -rupN a/src/Mod/Sketcher/Gui/DrawSketchHandler.cpp b/src/Mod/Sketcher/Gui/DrawSketchHandler.cpp ---- a/src/Mod/Sketcher/Gui/DrawSketchHandler.cpp 2022-12-07 03:35:37.000000000 +0100 -+++ b/src/Mod/Sketcher/Gui/DrawSketchHandler.cpp 2024-02-27 15:00:48.258873781 +0100 -@@ -24,7 +24,6 @@ - #include "PreCompiled.h" - - #ifndef _PreComp_ --# include - # include - # include - # include -diff --color -rupN a/src/Mod/Sketcher/Gui/EditDatumDialog.cpp b/src/Mod/Sketcher/Gui/EditDatumDialog.cpp ---- a/src/Mod/Sketcher/Gui/EditDatumDialog.cpp 2022-12-07 03:35:37.000000000 +0100 -+++ b/src/Mod/Sketcher/Gui/EditDatumDialog.cpp 2024-02-27 15:00:48.258873781 +0100 -@@ -23,7 +23,6 @@ - #include "PreCompiled.h" - - #ifndef _PreComp_ --# include - /// Qt Include Files - # include - # include -diff --color -rupN a/src/Mod/Sketcher/Gui/TaskSketcherValidation.cpp b/src/Mod/Sketcher/Gui/TaskSketcherValidation.cpp ---- a/src/Mod/Sketcher/Gui/TaskSketcherValidation.cpp 2022-12-07 03:35:37.000000000 +0100 -+++ b/src/Mod/Sketcher/Gui/TaskSketcherValidation.cpp 2024-02-27 15:00:48.258873781 +0100 -@@ -24,7 +24,6 @@ - #include "PreCompiled.h" - - #ifndef _PreComp_ --# include - # include - # include - # include -diff --color -rupN a/src/Mod/Sketcher/Gui/ViewProviderPython.cpp b/src/Mod/Sketcher/Gui/ViewProviderPython.cpp ---- a/src/Mod/Sketcher/Gui/ViewProviderPython.cpp 2022-12-07 03:35:37.000000000 +0100 -+++ b/src/Mod/Sketcher/Gui/ViewProviderPython.cpp 2024-02-27 15:00:48.258873781 +0100 -@@ -23,7 +23,6 @@ - - #include "PreCompiled.h" - --#include - #ifndef _PreComp_ - # include - #endif -diff --color -rupN a/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp b/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp ---- a/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp 2022-12-07 03:35:37.000000000 +0100 -+++ b/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp 2024-02-27 15:00:48.258873781 +0100 -@@ -24,7 +24,6 @@ - #include "PreCompiled.h" - - #ifndef _PreComp_ --# include - - # include - # include -diff --color -rupN a/src/Mod/Surface/Gui/Command.cpp b/src/Mod/Surface/Gui/Command.cpp ---- a/src/Mod/Surface/Gui/Command.cpp 2022-12-07 03:35:37.000000000 +0100 -+++ b/src/Mod/Surface/Gui/Command.cpp 2024-02-27 15:00:48.258873781 +0100 -@@ -31,7 +31,6 @@ - #include - #include - #include --#include - #include - #include - #include -diff --color -rupN a/src/Mod/TechDraw/Gui/TaskProjection.cpp b/src/Mod/TechDraw/Gui/TaskProjection.cpp ---- a/src/Mod/TechDraw/Gui/TaskProjection.cpp 2022-12-07 03:35:37.000000000 +0100 -+++ b/src/Mod/TechDraw/Gui/TaskProjection.cpp 2024-02-27 15:00:48.258873781 +0100 -@@ -29,9 +29,6 @@ - # include - #endif - -- --#include -- - #include - #include - #include diff --git a/user/freecad/resourceDirectory.patch b/user/freecad/resourceDirectory.patch deleted file mode 100644 index a2a16d1..0000000 --- a/user/freecad/resourceDirectory.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- ./cMake/FreeCAD_Helpers/ConfigureCMakeVariables.cmake.orig -+++ ./cMake/FreeCAD_Helpers/ConfigureCMakeVariables.cmake -@@ -23,7 +23,7 @@ - "Path to the directory containing PyCXX's cxxextensions.c source file") - - # used as compiler defines -- set(RESOURCEDIR "${CMAKE_INSTALL_DATADIR}") -+ set(RESOURCEDIR "../../share/freecad") - set(LIBRARYDIR "${CMAKE_INSTALL_LIBDIR}") - set(DOCDIR "${CMAKE_INSTALL_DOCDIR}") - diff --git a/user/freecad/tests.patch b/user/freecad/tests.patch deleted file mode 100644 index 4b63a20..0000000 --- a/user/freecad/tests.patch +++ /dev/null @@ -1,33 +0,0 @@ ---- ./src/Mod/Mesh/App/MeshTestsApp.py.orig -+++ ./src/Mod/Mesh/App/MeshTestsApp.py -@@ -423,30 +423,6 @@ - self.planarMesh = [] - FreeCAD.newDocument("MeshTest") - -- def testRayPick(self): -- if not FreeCAD.GuiUp: -- return -- self.planarMesh.append( [-16.097176,-29.891157,15.987688] ) -- self.planarMesh.append( [-16.176304,-29.859991,15.947966] ) -- self.planarMesh.append( [-16.071451,-29.900553,15.912505] ) -- self.planarMesh.append( [-16.092241,-29.893408,16.020439] ) -- self.planarMesh.append( [-16.007210,-29.926180,15.967641] ) -- self.planarMesh.append( [-16.064457,-29.904951,16.090832] ) -- planarMeshObject = Mesh.Mesh(self.planarMesh) -- -- from pivy import coin; import FreeCADGui -- Mesh.show(planarMeshObject) -- view=FreeCADGui.ActiveDocument.ActiveView.getViewer() -- rp=coin.SoRayPickAction(view.getSoRenderManager().getViewportRegion()) -- rp.setRay(coin.SbVec3f(-16.05,16.0,16.0),coin.SbVec3f(0,-1,0)) -- rp.apply(view.getSoRenderManager().getSceneGraph()) -- pp=rp.getPickedPoint() -- self.assertTrue(pp != None) -- det=pp.getDetail() -- self.assertTrue(det.getTypeId() == coin.SoFaceDetail.getClassTypeId()) -- det=coin.cast(det, det.getTypeId().getName().getString()) -- self.assertTrue(det.getFaceIndex() == 1) -- - def testPrimitiveCount(self): - if not FreeCAD.GuiUp: - return From ab89660806ecf36a69d1160d64dc2efc36556270 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 19:16:38 -0400 Subject: [PATCH 069/210] user/sane: drop due to in community --- user/sane/APKBUILD | 163 ------------------ user/sane/check.patch | 11 -- user/sane/include.patch | 11 -- user/sane/pidfile.patch | 11 -- user/sane/sane-backends-no-avahi-thread.patch | 48 ------ user/sane/sane-saned.pre-install | 5 - user/sane/sane.pre-install | 5 - user/sane/saned.initd | 14 -- 8 files changed, 268 deletions(-) delete mode 100644 user/sane/APKBUILD delete mode 100644 user/sane/check.patch delete mode 100644 user/sane/include.patch delete mode 100644 user/sane/pidfile.patch delete mode 100644 user/sane/sane-backends-no-avahi-thread.patch delete mode 100644 user/sane/sane-saned.pre-install delete mode 100644 user/sane/sane.pre-install delete mode 100644 user/sane/saned.initd diff --git a/user/sane/APKBUILD b/user/sane/APKBUILD deleted file mode 100644 index 62a8a34..0000000 --- a/user/sane/APKBUILD +++ /dev/null @@ -1,163 +0,0 @@ -# Contributor: Fabio Riga -# Contributor: Valery Kartel -# Maintainer: Valery Kartel -pkgname=sane -_pkgname=sane-backends -pkgver=1.1.1 -pkgrel=3 -pkgdesc="Scanner Access Now Easy - universal scanner interface" -url="http://www.sane-project.org/" -# FTBFS -# arch="all" -license="GPL-2.0-or-later GPL-2.0-or-later-with-sane-exception Public-Domain" -makedepends="diffutils file libtool libusb-dev v4l-utils-dev net-snmp-dev - avahi-dev curl-dev libpng-dev libjpeg-turbo-dev tiff-dev libgphoto2-dev - poppler-dev linux-headers libieee1284-dev libxml2-dev" -install="$pkgname-saned.pre-install $pkgname.pre-install" -pkgusers="saned" -pkggroups="scanner" -_backends="abaton agfafocus apple artec artec_eplus48u as6e avision bh canon - canon630u canon_dr canon_pp cardscan coolscan coolscan2 coolscan3 dc25 - dc210 dc240 dell1600n_net dmc epjitsu epson epson2 epsonds escl fujitsu - genesys gphoto2 gt68xx hp hp3500 hp3900 hp4200 hp5400 hp5590 hpsj5s - hpljm1005 hs2p ibm kodak kodakaio kvs1025 kvs20xx kvs40xx leo lexmark - ma1509 magicolor matsushita microtek microtek2 mustek mustek_pp mustek_usb - mustek_usb2 nec net niash p5 pie pieusb pixma plustek plustek_pp ricoh ricoh2 - rts8891 s9036 sceptre sharp sm3600 sm3840 snapscan sp15c st400 stv680 - tamarack teco1 teco2 teco3 test u12 umax umax_pp umax1220u v4l - xerox_mfp" - -case "$CARCH" in - x86) - options="$options !check" - _backends="$_backends qcam canon_lide70" - ;; - x86_64) - _backends="$_backends qcam canon_lide70" - ;; -esac - -_pkgdesc_dell1600n_net="SANE backend for Dell 1600n that supports colour and monochrome scans over ethernet, usb not supported" -for _backend in $_backends; do - subpackages="$subpackages $pkgname-backend-$_backend:_backend" -done -subpackages="$pkgname-doc $pkgname-dev $subpackages $pkgname-utils $pkgname-saned - $pkgname-udev::noarch $_pkgname::noarch" -source="https://gitlab.com/sane-project/backends/uploads/7d30fab4e115029d91027b6a58d64b43/sane-backends-$pkgver.tar.gz - $pkgname-fix-tests.patch::https://gitlab.com/sane-project/backends/-/commit/edfc90450ee06149537fadb3095ba4b215c5c4fa.patch - saned.initd - include.patch - pidfile.patch - check.patch - sane-backends-no-avahi-thread.patch - " -builddir="$srcdir"/$_pkgname-$pkgver - -# secfixes: -# 1.0.30-r0: -# - CVE-2020-12861 -# - CVE-2020-12862 -# - CVE-2020-12863 -# - CVE-2020-12864 -# - CVE-2020-12865 -# - CVE-2020-12866 -# - CVE-2020-12867 - -build() { - ./configure \ - --prefix=/usr \ - --sysconfdir=/etc \ - --with-docdir=/usr/share/doc/$pkgname \ - --with-usb \ - --enable-avahi \ - --disable-rpath \ - --disable-locking - make -} - -check() { - make check -} - -package() { - make DESTDIR="$pkgdir" install - echo -n "" > "$pkgdir"/etc/$pkgname.d/dll.conf - install -Dm644 backend/dll.aliases "$pkgdir"/etc/$pkgname.d/dll.aliases -} - -doc() { - default_doc - mkdir -p "$subpkgdir"/usr/share/licenses/$_pkgname - mv "$subpkgdir"/usr/share/doc/$_pkgname/LICENSE \ - "$subpkgdir"/usr/share/licenses/$_pkgname -} - -saned() { - local name=${subpkgname#$pkgname-} - pkgdesc="$pkgdesc (network scanner server)" - mkdir -p "$subpkgdir"/etc/$pkgname.d "$subpkgdir"/usr - mv "$pkgdir"/etc/$pkgname.d/$name.conf "$subpkgdir"/etc/$pkgname.d - mv "$pkgdir"/usr/sbin "$subpkgdir"/usr/ - install -Dm755 "$srcdir"/$name.initd "$subpkgdir"/etc/init.d/$name -} - -utils() { - pkgdesc="$pkgdesc (utilities)" - mkdir -p "$subpkgdir"/usr - mv "$pkgdir"/usr/bin "$subpkgdir"/usr - rm -fr "$pkgdir"/usr/share -} - -udev() { - pkgdesc="$pkgdesc (udev rules)" - install_if="$pkgname=$pkgver-r$pkgrel udev" - install -Dm644 "$builddir"/tools/udev/lib$pkgname.rules \ - "$subpkgdir"/usr/lib/udev/rules.d/49-$pkgname.rules - sed -i 's|NAME="%k", ||g' "$subpkgdir"/usr/lib/udev/rules.d/49-$pkgname.rules -} - -backends() { - local _backend; - pkgdesc="$pkgdesc (metapackage)" - depends="$pkgname-utils $pkgname-saned" - for _backend in $_backends; do - [ "$_backend" = "test" ] && continue - depends="$depends $pkgname-backend-$_backend" - done - mkdir -p "$subpkgdir" -} - -_backend() { - local name=${subpkgname#$pkgname-backend-} - depends="$pkgname" - pkgdesc=$(eval echo \$_pkgdesc_$name) - if [ ! "$pkgdesc" ]; then - # cut description from man-page - pkgdesc=$(tr '\n' ' ' < "$builddir"/doc/$pkgname-$name.man) - pkgdesc=${pkgdesc#*\- } - pkgdesc=${pkgdesc%% .SH *}; - fi - mkdir -p "$subpkgdir"/usr/lib/$pkgname \ - "$subpkgdir"/etc/$pkgname.d/dll.d - mv "$pkgdir"/usr/lib/$pkgname/lib$pkgname-$name.* \ - "$subpkgdir"/usr/lib/$pkgname - echo "$name" > "$subpkgdir"/etc/$pkgname.d/dll.d/$name - if [ -f "$pkgdir"/etc/$pkgname.d/$name.conf ]; then - mv "$pkgdir"/etc/$pkgname.d/$name.conf \ - "$subpkgdir"/etc/$pkgname.d - fi - if [ -f "$pkgdir"/usr/bin/$name ]; then - mkdir -p "$subpkgdir"/usr/bin - mv "$pkgdir"/usr/bin/$name "$subpkgdir"/usr/bin - fi -} - -sha512sums=" -25bd9f90d550cfe6a6d01c48e83716a53f4b0e3a294287e455ecb5e5b80c8fe1699f45c6c87f694475cceb85745c70597e18a7b1094669d5091c5fb183dfe94d sane-backends-1.1.1.tar.gz -f4187409a85dbdb95213948fcc1bb34cf319a3a5ae34093d1e9e7983dfc89336c75132713e6f3113ad7ef2b0ed78bdc0c6e031796fca7004787776f46c742ec6 sane-fix-tests.patch -0a06eaa28b345202f2bdf8361e06f843bb7a010b7d8f80132f742672c94249c43f64031cefa161e415e2e2ab3a53b23070fb63854283f9e040f5ff79394ac7d1 saned.initd -1779ff8beb1ba5f9238c25d819a7f0045f7e257c19b511315feb85650e445ca86450a9e1d7ff8650499d3dae808589a6c2e358d5f3f39a3f40ce4999179b86d6 include.patch -09505943f9441854a6c333f19e2535b4a646a8cc060fe82c6261e7d29c72773ebe98d43a91acc951f4336a3c8b4c84ab7c7b0763426136b4b59d9546bc2fa8c0 pidfile.patch -cfa327209efd9a2a2db7cbcf571852959823aaa19b43d5f6415834cd5ae38b6324ecae16779f6f896aa0d7ac890fe23244100b7d6a68e5e9d52cd38ec82bfac8 check.patch -6e6b6336203ee6d1ac96ed2d742e181fb65e8d93386b76d70b6359afbcce98343d89ec8b2b611261f79901779a2999f9262c3f85898bd15c74b00348e0cd3cd7 sane-backends-no-avahi-thread.patch -" diff --git a/user/sane/check.patch b/user/sane/check.patch deleted file mode 100644 index afbc7ef..0000000 --- a/user/sane/check.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/testsuite/sanei/Makefile.in -+++ b/testsuite/sanei/Makefile.in -@@ -77,7 +77,7 @@ - POST_UNINSTALL = : - build_triplet = @build@ - host_triplet = @host@ --check_PROGRAMS = sanei_usb_test$(EXEEXT) test_wire$(EXEEXT) \ -+check_PROGRAMS = test_wire$(EXEEXT) \ - sanei_check_test$(EXEEXT) sanei_config_test$(EXEEXT) \ - sanei_constrain_test$(EXEEXT) - subdir = testsuite/sanei diff --git a/user/sane/include.patch b/user/sane/include.patch deleted file mode 100644 index 518d3b4..0000000 --- a/user/sane/include.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/include/sane/sane.h -+++ b/include/sane/sane.h -@@ -16,6 +16,8 @@ - #ifndef sane_h - #define sane_h - -+#include -+ - #ifdef __cplusplus - extern "C" { - #endif diff --git a/user/sane/pidfile.patch b/user/sane/pidfile.patch deleted file mode 100644 index 457755b..0000000 --- a/user/sane/pidfile.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/frontend/saned.c -+++ b/frontend/saned.c -@@ -224,7 +224,7 @@ - int numchildren; - - #define SANED_CONFIG_FILE "saned.conf" --#define SANED_PID_FILE "/var/run/saned.pid" -+#define SANED_PID_FILE "/run/saned/saned.pid" - - #define SANED_SERVICE_NAME "sane-port" - #define SANED_SERVICE_PORT 6566 diff --git a/user/sane/sane-backends-no-avahi-thread.patch b/user/sane/sane-backends-no-avahi-thread.patch deleted file mode 100644 index 149a305..0000000 --- a/user/sane/sane-backends-no-avahi-thread.patch +++ /dev/null @@ -1,48 +0,0 @@ -diff --git a/backend/net.c.orig b/backend/net.c -index 7c4aae9..0adfbc2 100644 ---- a/backend/net.c.orig -+++ b/backend/net.c -@@ -1043,12 +1043,12 @@ sane_init (SANE_Int * version_code, SANE_Auth_Callback authorize) - continue; - } - #if WITH_AVAHI -- avahi_threaded_poll_lock (avahi_thread); -+ if(avahi_thread) avahi_threaded_poll_lock (avahi_thread); - #endif /* WITH_AVAHI */ - DBG (2, "sane_init: trying to add %s\n", device_name); - add_device (device_name, 0); - #if WITH_AVAHI -- avahi_threaded_poll_unlock (avahi_thread); -+ if(avahi_thread) avahi_threaded_poll_unlock (avahi_thread); - #endif /* WITH_AVAHI */ - } - -@@ -1094,12 +1094,12 @@ sane_init (SANE_Int * version_code, SANE_Auth_Callback authorize) - continue; - #endif /* ENABLE_IPV6 */ - #if WITH_AVAHI -- avahi_threaded_poll_lock (avahi_thread); -+ if(avahi_thread) avahi_threaded_poll_lock (avahi_thread); - #endif /* WITH_AVAHI */ - DBG (2, "sane_init: trying to add %s\n", host); - add_device (host, 0); - #if WITH_AVAHI -- avahi_threaded_poll_unlock (avahi_thread); -+ if(avahi_thread) avahi_threaded_poll_unlock (avahi_thread); - #endif /* WITH_AVAHI */ - } - free (copy); -@@ -1517,11 +1517,11 @@ sane_open (SANE_String_Const full_name, SANE_Handle * meta_handle) - "sane_open: device %s not found, trying to register it anyway\n", - nd_name); - #if WITH_AVAHI -- avahi_threaded_poll_lock (avahi_thread); -+ if(avahi_thread) avahi_threaded_poll_lock (avahi_thread); - #endif /* WITH_AVAHI */ - status = add_device (nd_name, &dev); - #if WITH_AVAHI -- avahi_threaded_poll_unlock (avahi_thread); -+ if(avahi_thread) avahi_threaded_poll_unlock (avahi_thread); - #endif /* WITH_AVAHI */ - if (status != SANE_STATUS_GOOD) - { diff --git a/user/sane/sane-saned.pre-install b/user/sane/sane-saned.pre-install deleted file mode 100644 index caad990..0000000 --- a/user/sane/sane-saned.pre-install +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh - -adduser -SDH -h /run/saned -s /sbin/nologin -G scanner -g saned saned 2>/dev/null - -exit 0 diff --git a/user/sane/sane.pre-install b/user/sane/sane.pre-install deleted file mode 100644 index b75c867..0000000 --- a/user/sane/sane.pre-install +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh - -addgroup -S scanner 2>/dev/null - -exit 0 diff --git a/user/sane/saned.initd b/user/sane/saned.initd deleted file mode 100644 index 6482073..0000000 --- a/user/sane/saned.initd +++ /dev/null @@ -1,14 +0,0 @@ -#!/sbin/openrc-run - -description="SANE network scanner server" - -owner=saned -pidfile=/run/saned/saned.pid -cfgfile=/etc/sane.d/saned.conf -command=/usr/sbin/saned -command_args="-a $owner" -required_files="$cfgfile" - -start_pre() { - checkpath -dm755 -o $owner ${pidfile%/*} -} From ea32d2af8eec861491381aa7565260f9178dd631 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 19:18:39 -0400 Subject: [PATCH 070/210] backports/thelounge: move from user, upgrade to 4.4.3 --- backports/thelounge/APKBUILD | 83 +++++++++++++++++++ .../allow-https-for-connect-src.patch | 0 .../thelounge/no-version-test.patch | 0 backports/thelounge/thelounge.confd | 9 ++ backports/thelounge/thelounge.initd | 34 ++++++++ backports/thelounge/thelounge.post-install | 10 +++ backports/thelounge/thelounge.pre-install | 6 ++ user/thelounge/APKBUILD | 83 ------------------- user/thelounge/thelounge.initd | 14 ---- user/thelounge/thelounge.post-install | 13 --- user/thelounge/thelounge.pre-install | 6 -- 11 files changed, 142 insertions(+), 116 deletions(-) create mode 100644 backports/thelounge/APKBUILD rename {user => backports}/thelounge/allow-https-for-connect-src.patch (100%) rename {user => backports}/thelounge/no-version-test.patch (100%) create mode 100644 backports/thelounge/thelounge.confd create mode 100644 backports/thelounge/thelounge.initd create mode 100644 backports/thelounge/thelounge.post-install create mode 100644 backports/thelounge/thelounge.pre-install delete mode 100644 user/thelounge/APKBUILD delete mode 100644 user/thelounge/thelounge.initd delete mode 100644 user/thelounge/thelounge.post-install delete mode 100644 user/thelounge/thelounge.pre-install diff --git a/backports/thelounge/APKBUILD b/backports/thelounge/APKBUILD new file mode 100644 index 0000000..bc0de04 --- /dev/null +++ b/backports/thelounge/APKBUILD @@ -0,0 +1,83 @@ +# Contributor: Kay Thomas +# Contributor: Fabricio Silva +# Maintainer: Fabricio Silva +pkgname=thelounge +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 +license="MIT" +depends="nodejs" +makedepends="yarn py3-setuptools" +subpackages="$pkgname-openrc $pkgname-doc" +install="$pkgname.pre-install $pkgname.post-install" +source=" + $pkgname-$pkgver.tar.gz::https://github.com/thelounge/thelounge/archive/v$pkgver.tar.gz + thelounge.initd + thelounge.confd + " +options="net" # net for npm + +case $CARCH in + # loongarch64: 2 tests failed on the builder + # 1) SQLite Message Storage: should retrieve latest LIMIT messages in order + # 2) SQLite Message Storage: should search messages + loongarch64) options="$options !check";; +esac + +prepare() { + default_prepare + + export BROWSERSLIST_IGNORE_OLD_DATA=true + # to build npm/sqlite3 from source + export npm_config_build_from_source=true + yarn install --frozen-lockfile +} + +build() { + NODE_ENV=production yarn build + + # these are the same file + ln -sf ../package.json ./dist/package.json + # set home location + echo "/var/lib/thelounge" >.thelounge_home +} + +check() { + # skips tests that checks if version is using "source" and "git sha" + yarn test:mocha --grep "\#getVersion" --invert +} + +package() { + # cleanup unused files (cant be done before check) + yarn install --production --ignore-scripts --prefer-offline + find ./ -type f \( \ + -iname "*.ts" -o -iname "*.map" -o -iname "*.md" -o -iname "*.sh" -o \ + -iname "babel.config*" -o -iname "webpack.config*" -o -iname "tsconfig*" \ + \) -delete + find ./node_modules -type f \( \ + -iname "Makefile*" -o -iname "README*" -o -iname "LICENSE*" -o -iname "CHANGELOG*" \ + \) -delete + find ./node_modules -type d \( \ + -iname "test" -o -iname "node-gyp" -o -iname ".github" \ + \) -prune -exec rm -rf {} \; + + install -dm755 "$pkgdir"/usr/share/webapps/thelounge + install -Dm755 index.js -t "$pkgdir"/usr/share/webapps/thelounge/ + install -Dm644 package.json .thelounge_home -t "$pkgdir"/usr/share/webapps/thelounge/ + install -Dm644 client/index.html.tpl -t "$pkgdir"/usr/share/webapps/thelounge/client/ + cp -a node_modules public dist "$pkgdir"/usr/share/webapps/thelounge/ + mkdir -p "$pkgdir"/usr/bin + ln -sf ../share/webapps/thelounge/index.js "$pkgdir"/usr/bin/thelounge + + install -Dm644 LICENSE -t "$pkgdir"/usr/share/licenses/thelounge/ + install -Dm755 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname + install -Dm755 "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname +} + +sha512sums=" +d1a873b15b5ac003c59257c591030ebeb8810609ea646477cc319ddb82fa2842b0b71f3edfe60eb5b54749ed90d55074d5b82ab6312b55cccee8281057b425f2 thelounge-4.4.3.tar.gz +126913f79c3eda7c0e6f2f792ce8a799e2100259b62de57c97329f079072e3d8d81c5591b08b99630803c9e320c85c8e34ac7ffe2ddba7f2982a5ba958960789 thelounge.initd +2c44963a1e4303a6045b80df0931bb636150cb7b1f14d536c3624bb6dacfabfa08d7ea4e261e40245b80eedbb53a47fbf73672a02c865295300c5121fb83a558 thelounge.confd +" diff --git a/user/thelounge/allow-https-for-connect-src.patch b/backports/thelounge/allow-https-for-connect-src.patch similarity index 100% rename from user/thelounge/allow-https-for-connect-src.patch rename to backports/thelounge/allow-https-for-connect-src.patch diff --git a/user/thelounge/no-version-test.patch b/backports/thelounge/no-version-test.patch similarity index 100% rename from user/thelounge/no-version-test.patch rename to backports/thelounge/no-version-test.patch diff --git a/backports/thelounge/thelounge.confd b/backports/thelounge/thelounge.confd new file mode 100644 index 0000000..a7e59bd --- /dev/null +++ b/backports/thelounge/thelounge.confd @@ -0,0 +1,9 @@ +# thelounge configuration options + +command_user="thelounge:thelounge" # user:group +supervisor="supervise-daemon" +directory="/var/lib/thelounge" + +logdir="/var/log/thelounge" +output_log="$logdir/output.log" +error_log="$logdir/error.log" diff --git a/backports/thelounge/thelounge.initd b/backports/thelounge/thelounge.initd new file mode 100644 index 0000000..fc00ef8 --- /dev/null +++ b/backports/thelounge/thelounge.initd @@ -0,0 +1,34 @@ +#!/sbin/openrc-run + +# fallback values for /etc/conf.d/thelounge +: ${command_user:=thelounge:thelounge} +: ${directory:=/var/lib/thelounge} +: ${logdir:=/var/log/thelounge} + +name="thelounge" +command="/usr/bin/thelounge" +command_args="start" +command_background=true +pidfile="/run/thelounge.pid" + +depend() { + need net + use dns + after firewall +} + +start_pre() { + checkpath -d -o "$command_user" "$directory" + + if [ -n "$logdir" ]; then + checkpath -d -o "$command_user" "$logdir" + fi + + if [ -n "$output_log" ]; then + checkpath -f -o "$command_user" "$output_log" + fi + + if [ -n "$error_log" ]; then + checkpath -f -o "$command_user" "$error_log" + fi +} diff --git a/backports/thelounge/thelounge.post-install b/backports/thelounge/thelounge.post-install new file mode 100644 index 0000000..b08cddb --- /dev/null +++ b/backports/thelounge/thelounge.post-install @@ -0,0 +1,10 @@ +#!/bin/sh + +cat >&2 <<-EOF +* +* The configuration will be placed at /var/lib/thelounge/config.js after first run +* To add users, use the cli: doas -u thelounge thelounge add myuser +* +EOF + +exit 0 diff --git a/backports/thelounge/thelounge.pre-install b/backports/thelounge/thelounge.pre-install new file mode 100644 index 0000000..dd54b45 --- /dev/null +++ b/backports/thelounge/thelounge.pre-install @@ -0,0 +1,6 @@ +#!/bin/sh + +addgroup -S thelounge 2>/dev/null +adduser -S -D -h /var/lib/thelounge -s /sbin/nologin -G thelounge -g thelounge thelounge 2>/dev/null + +exit 0 diff --git a/user/thelounge/APKBUILD b/user/thelounge/APKBUILD deleted file mode 100644 index 7988787..0000000 --- a/user/thelounge/APKBUILD +++ /dev/null @@ -1,83 +0,0 @@ -# Contributor: Kay Thomas -# Maintainer: Kay Thomas -pkgname=thelounge -pkgver=4.4.1 -pkgrel=2 -pkgdesc="Modern, responsive, cross-platform, self-hosted web IRC client" -url="https://thelounge.chat" -# x86: textrels -# s390x: fails to check -# riscv64: fails to build -arch="all !x86 !s390x !riscv64" -license="MIT" -depends="nodejs" -makedepends="yarn npm python3" -subpackages="$pkgname-openrc" -pkgusers="thelounge" -pkggroups="thelounge" -install="$pkgname.pre-install $pkgname.post-install" -source="$pkgname-$pkgver.tar.gz::https://github.com/thelounge/thelounge/archive/v$pkgver.tar.gz - no-version-test.patch - thelounge.initd - allow-https-for-connect-src.patch - " -options="net" # npm - -prepare() { - default_prepare - - yarn install --frozen-lockfile -} - -build() { - NODE_ENV=production yarn run build -} - -check() { - CI=yes yarn run test:mocha -} - -package() { - yarn install --production --ignore-scripts --prefer-offline - NODE_ENV=production npm install --unsafe-perm -g --prefix "$pkgdir"/usr - - # Remove incorrect symlink, copy correct files - rm "$pkgdir"/usr/lib/node_modules/thelounge - mkdir -p "$pkgdir"/usr/lib/node_modules/thelounge - cp -a index.js client public node_modules dist package.json "$pkgdir"/usr/lib/node_modules/thelounge/ - - # cleanup unused files - find "$pkgdir" -type f -a \( \ - -name "*.ts" \ - -o -name "webpack*" \ - -o -name "tsconfig*" \ - -o -name "babel.config*" \ - -o -name "README*" \ - -o -name "CHANGELOG*" \ - -o -name "*.map" \ - -o -name "LICENSE" \ - \) \ - -delete - - # Set home location - echo /var/lib/thelounge > \ - "$pkgdir"/usr/lib/node_modules/$pkgname/.thelounge_home - - # Add default config - # this is only read from 'home' so we have to just put everything in var/lib - install -dm755 -o thelounge -g thelounge \ - "$pkgdir"/var/lib/thelounge - install -m644 -o thelounge -g thelounge \ - "$pkgdir"/usr/lib/node_modules/$pkgname/dist/defaults/config.js \ - "$pkgdir"/var/lib/thelounge/config.js - - install -Dm755 "$srcdir"/$pkgname.initd \ - "$pkgdir"/etc/init.d/$pkgname -} - -sha512sums=" -7695121a713a23688bc6f52dae2574bab1288eea930fd50d4dd85037233e9f23bd8e460980c69cdd14ea8648da4720d84e8196547b6a18e69d2f478b43d6e29a thelounge-4.4.1.tar.gz -cbf80e23b0af8f0185699d6b03816c645c51b85fff7f163d3cd3d00296ed816b6ab01529b359fbfd549a79e8adb72bbc83bc7a389cf13e0afd50636ff79a138e no-version-test.patch -f367d27ebcc412ff03c12ae98e50aeae5051fb5ffa9da6220f664c59993ed0e330b55b3b41fe941d546634901163d006e318891b4b886f6c49a93e0888fccd3e thelounge.initd -212e468d6cedaa528b7fad534b8ba0e7a3d69137940cdabd22dbe34375491900d5b7d577550aa3b245ad7775488a90e308019db55ff15e8ede105c4b9c15b015 allow-https-for-connect-src.patch -" diff --git a/user/thelounge/thelounge.initd b/user/thelounge/thelounge.initd deleted file mode 100644 index b10d1c5..0000000 --- a/user/thelounge/thelounge.initd +++ /dev/null @@ -1,14 +0,0 @@ -#!/sbin/openrc-run - -supervisor=supervise-daemon -name="thelounge" -command="/usr/bin/thelounge" -command_args="start" -command_user="thelounge:thelounge" -command_background=true -pidfile="/run/thelounge.pid" - -depend() { - need net localmount - after firewall -} diff --git a/user/thelounge/thelounge.post-install b/user/thelounge/thelounge.post-install deleted file mode 100644 index 1651780..0000000 --- a/user/thelounge/thelounge.post-install +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh - -cat >&2 <<-EOF -* -* The configuration is in /var/lib/thelounge/config.js. -* To add users, use the cli: -* doas -u thelounge thelounge .. -* e.g. -* doas -u thelounge thelounge add myuser -* -EOF - -exit 0 diff --git a/user/thelounge/thelounge.pre-install b/user/thelounge/thelounge.pre-install deleted file mode 100644 index b91b1ef..0000000 --- a/user/thelounge/thelounge.pre-install +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh - -addgroup -S thelounge 2>/dev/null -adduser -S -D -H -s /sbin/nologin -G thelounge -g thelounge thelounge 2>/dev/null - -exit 0 From 975ca3acc66b67710789510247f59ae6764e620d Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 19:19:14 -0400 Subject: [PATCH 071/210] user/u-boot-rm: drop for pmos --- user/u-boot-rm/APKBUILD | 125 -------------------- user/u-boot-rm/README.txt | 32 ----- user/u-boot-rm/fix-linking-with-ld.patch | 52 --------- user/u-boot-rm/rm1-ttygs0-serial.diff | 13 --- user/u-boot-rm/rm1-uboot-config-patch.diff | 83 ------------- user/u-boot-rm/rm2-uboot-config-patch.diff | 75 ------------ user/u-boot-rm/update-u-boot | 129 --------------------- 7 files changed, 509 deletions(-) delete mode 100644 user/u-boot-rm/APKBUILD delete mode 100644 user/u-boot-rm/README.txt delete mode 100644 user/u-boot-rm/fix-linking-with-ld.patch delete mode 100644 user/u-boot-rm/rm1-ttygs0-serial.diff delete mode 100644 user/u-boot-rm/rm1-uboot-config-patch.diff delete mode 100644 user/u-boot-rm/rm2-uboot-config-patch.diff delete mode 100755 user/u-boot-rm/update-u-boot diff --git a/user/u-boot-rm/APKBUILD b/user/u-boot-rm/APKBUILD deleted file mode 100644 index da2e135..0000000 --- a/user/u-boot-rm/APKBUILD +++ /dev/null @@ -1,125 +0,0 @@ -# Maintainer: Antoine Martin (ayakael) -# Contributor: Antoine Martin (ayakael) - -pkgname=u-boot-rm -pkgver=2020.09 -_rm1tag=97b35fdddf0077abd2e0f0409b94ef20adbe8565 -_rm2tag=47c91918aa7724c16b6eaf87cf5dfbf4548eafc1 -pkgrel=9 -pkgdesc="u-boot bootloader common files" -url="https://www.denx.de/wiki/U-Boot/" -arch="armv7" -license="GPL-2.0-or-later OFL-1.1 BSD-2-Clause BSD-3-Clause eCos-2.0 IBM-pibs - ISC LGPL-2.0-only LGPL-2.1-only X11" -options="!check" # no tests -makedepends=" - bc - bison - dtc - flex - gnutls-dev - linux-headers - openssl-dev>3 - py3-elftools - py3-setuptools - python3-dev - swig - util-linux-dev - " -source=" - u-boot-rm1-$_rm1tag.tar.gz::https://github.com/reMarkable/uboot/archive/$_rm1tag.tar.gz - u-boot-rm2-$_rm2tag.tar.gz::https://github.com/reMarkable/uboot/archive/$_rm2tag.tar.gz - update-u-boot - README.txt - rm1-uboot-config-patch.diff - rm2-uboot-config-patch.diff - " -builddir="$srcdir" - -#rm2:zero-sugar broken -case "$CARCH" in -arm*) board_configs=" - zerogravitas:zero-gravitas - ";; -esac - -for board_config in $board_configs; do - _allboards="$_allboards $pkgname-${board_config%%:*}" -done - -subpackages="$pkgname-all:_all $_allboards" -prepare() { - default_prepare - - cd "$builddir"/uboot-$_rm1tag - patch -p1 -i "$srcdir"/rm1-uboot-config-patch.diff - # patch -p1 -i "$srcdir"/rm1-ttygs0-serial.diff - cd "$builddir"/uboot-$_rm2tag - patch -p1 -i "$srcdir"/rm2-uboot-config-patch.diff -} - -build() { - local board_config board - for board_config in $board_configs; do - local configs="${board_config#*:}" - for board in ${configs//,/ }; do - msg "Building u-boot for $board" - case $board in - zero-gravitas) cd "$builddir"/uboot-$_rm1tag;; - zero-sugar) cd "$builddir"/uboot-$_rm2tag;; - esac - - touch include/config.h - LC_ALL=C date +'#define U_BOOT_DATE "%b %d %C%y"' > include/timestamp_autogenerated.h - LC_ALL=C date +'#define U_BOOT_TIME "%T"' >> include/timestamp_autogenerated.h - - export BUILD_DIR="$builddir"/build/$board - mkdir -p "$BUILD_DIR" - make O="$BUILD_DIR" ${board}_config - make O="$BUILD_DIR" all - done - done -} - -package() { - mkdir -p "$pkgdir"/usr/share/$pkgname "$pkgdir"/usr/sbin - install "$srcdir"/README.txt "$pkgdir"/usr/share/$pkgname/README.txt - install "$srcdir"/update-u-boot "$pkgdir"/usr/sbin -} - -_all() { - pkgdesc="u-boot for all boards (meta package)" - depends="$_allboards" - - mkdir -p "$subpkgdir"/ -} - -_split_boards() { - cd "$builddir"/build - pkgdesc="u-boot for $1" - depends="u-boot-rm" - shift - local board - for board; do - msg "Including board $board" - mkdir -p "$subpkgdir"/usr/share/$pkgname/$board - export BUILD_DIR="$builddir"/build/$board - - cp "$BUILD_DIR"/u-boot.imx "$subpkgdir"/usr/share/$pkgname/$board/u-boot.bin - done -} - -for board_config in $board_configs; do - _board="${board_config%%:*}" - _configs="${board_config#*:}" - eval "$_board() { _split_boards $_board ${_configs//,/ }; }" -done - -sha512sums=" -7cc8d513cac1d63ee5119529caa056164ee3bc3633da5d880fbfb344b770c7c53c41475d42dd129b505390dcd5449e14524afc06f7cdba9354af7e70a7035ef9 u-boot-rm1-97b35fdddf0077abd2e0f0409b94ef20adbe8565.tar.gz -d0d18b123c4281285a8b3c1afd9ef623b48a33506399c8e0dbc393f22d967ee3e5df7030aab26c4fe8cad614f3f22f1ea5d6b5bb4ef5cc46fffe56b7ac7c3c28 u-boot-rm2-47c91918aa7724c16b6eaf87cf5dfbf4548eafc1.tar.gz -a905e4dcdb2704e0b1d4f0ab4a6333d3f1ffcec5c3a8359f5789800eb2114dad673cf0b5f24cae3a590f27333dff2e96b6f1efae5a466f9281a3d65efe403a1e update-u-boot -f8c9bb6e84d6f0620c976ac7ad5dd7ec7ff9dfdd4b1d03d2bf6653e7beccf80bdf2debfc92fb1f696dba92fb40287d3c45897e0078951451d0835cb61a5f16d1 README.txt -673cb917cc565ae245d4a7d659227bc240473112bc9c73ae184a64ce74be7994273d6dc4db17194d348941f83a42b3b67d3140f6f23c37c13d6dc93f7d76cc39 rm1-uboot-config-patch.diff -0e98404ca6d20eb01bd9c129b05e2eb10c60a692a56adc221ea283b4bfe7b0bcc2851121d4c3fe51e07a9784c339f7ccb221e0cc3f3603144fec46be66d0cbcc rm2-uboot-config-patch.diff -" diff --git a/user/u-boot-rm/README.txt b/user/u-boot-rm/README.txt deleted file mode 100644 index c342913..0000000 --- a/user/u-boot-rm/README.txt +++ /dev/null @@ -1,32 +0,0 @@ -WandBoard ---------- - -- ROM loads boot loader from raw MMC sectors at fixed address -- NOTE: 1st partition needs to start after boot loader - -- Install u-boot with: - dd if=wandboard/SPL of=/dev/mmcblk0 bs=1k seek=1 - dd if=wandboard/u-boot.img of=/dev/mmcblk0 bs=1k seek=69 - sync - - (Note - the SD card node may vary, so adjust this as needed). - -- Insert the SD card into the slot located in the bottom of the board - (same side as the mx6 processor) - -BeagleBoard ------------ - -- ROM looks for 1st partition with FAT, and loads MLO from it -- NOTE: MLO needs to be the first file created on this partition - -- Install u-boot with: - cp am335x_boneblack/{MLO,u-boot.img} /media/mmcblk0p1/ - -Sunxi (Cubie* etc) ------------------- - -- ROM loads boot loader from SD-CARD sectors at fixed address -- Install u-boot with: - sudo dd if=/u-boot-sunxi-with-spl.bin of=/dev/sda bs=1024 seek=8 - diff --git a/user/u-boot-rm/fix-linking-with-ld.patch b/user/u-boot-rm/fix-linking-with-ld.patch deleted file mode 100644 index 827c566..0000000 --- a/user/u-boot-rm/fix-linking-with-ld.patch +++ /dev/null @@ -1,52 +0,0 @@ -From 58772283210e15f8d803db4aa67c877d668db867 Mon Sep 17 00:00:00 2001 -Patch-Source: https://github.com/u-boot/u-boot/commit/58772283210e15f8d803db4aa67c877d668db867 -From: Alistair Delva -Date: Wed, 20 Oct 2021 21:31:33 +0000 -Subject: [PATCH] x86: Fix linking u-boot with ld.lld - -When linking the final u-boot binary with LLD, the following link errors -are seen: - -ld.lld: error: can't create dynamic relocation R_386_32 against local - symbol in readonly segment; recompile object files with - -fPIC or pass '-Wl,-z,notext' to allow text relocations - in the output ->>> defined in arch/x86/cpu/start.o ->>> referenced by arch/x86/cpu/start.o:(.text.start+0x32) -[...] ->>> defined in arch/x86/cpu/start16.o ->>> referenced by arch/x86/cpu/start16.o:(.start16+0x1C) - -According to Nick Desaulniers: - -"This is a known difference between GNU and LLVM linkers; the GNU - linkers permit relocations in readonly segments (making them not read - only), LLVM does not (by default)." - -Since U-Boot apparently seems to use relocations in readonly segments, -change the global linker flags to permit them when linking with LLD by -specifying '-z notext'. - -Signed-off-by: Alistair Delva -Cc: Nick Desaulniers -Cc: Simon Glass -Cc: Bin Meng -Reviewed-by: Simon Glass ---- - Makefile | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/Makefile b/Makefile -index c0ea933cb636..286757986c02 100644 ---- a/Makefile -+++ b/Makefile -@@ -776,6 +776,9 @@ ifneq ($(CONFIG_SYS_TEXT_BASE),) - LDFLAGS_u-boot += -Ttext $(CONFIG_SYS_TEXT_BASE) - endif - -+# ld.lld support -+LDFLAGS_u-boot += -z notext -+ - # Normally we fill empty space with 0xff - quiet_cmd_objcopy = OBJCOPY $@ - cmd_objcopy = $(OBJCOPY) --gap-fill=0xff $(OBJCOPYFLAGS) \ diff --git a/user/u-boot-rm/rm1-ttygs0-serial.diff b/user/u-boot-rm/rm1-ttygs0-serial.diff deleted file mode 100644 index 9596fc4..0000000 --- a/user/u-boot-rm/rm1-ttygs0-serial.diff +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/include/configs/zero-gravitas.h.orig b/include/configs/zero-gravitas.h -index 818ed56..6eb7447 100644 ---- a/include/configs/zero-gravitas.h.orig -+++ b/include/configs/zero-gravitas.h -@@ -73,7 +73,7 @@ - "active_partition=2\0" \ - "bootlimit=1\0" \ - "por=undefined\0" \ -- "mmcargs=setenv bootargs console=${console},${baudrate} " \ -+ "mmcargs=setenv bootargs console=${console},${baudrate} console=ttyGS0,115200 " \ - "root=/dev/mmcblk1p2 rootwait rootfstype=ext4 rw por=${por};\0" \ - "loadimage=ext4load mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}\0" \ - "loadfdt=ext4load mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}\0" \ diff --git a/user/u-boot-rm/rm1-uboot-config-patch.diff b/user/u-boot-rm/rm1-uboot-config-patch.diff deleted file mode 100644 index 55d6ce1..0000000 --- a/user/u-boot-rm/rm1-uboot-config-patch.diff +++ /dev/null @@ -1,83 +0,0 @@ -diff --git a/include/configs/zero-gravitas.h b/include/configs/zero-gravitas.h -index 074f171422..818ed56892 100644 ---- a/include/configs/zero-gravitas.h -+++ b/include/configs/zero-gravitas.h -@@ -71,12 +71,10 @@ - "splashimage=0x80000000\0" \ - "splashpos=m,m\0" \ - "active_partition=2\0" \ -- "fallback_partition=3\0" \ - "bootlimit=1\0" \ - "por=undefined\0" \ - "mmcargs=setenv bootargs console=${console},${baudrate} " \ -- "systemd.crash_reboot=true memtest " \ -- "root=/dev/mmcblk1p${active_partition} rootwait rootfstype=ext4 quiet rw por=${por};\0" \ -+ "root=/dev/mmcblk1p2 rootwait rootfstype=ext4 rw por=${por};\0" \ - "loadimage=ext4load mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}\0" \ - "loadfdt=ext4load mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}\0" \ - "mmcboot=echo Booting from mmc ...; " \ -@@ -89,41 +87,13 @@ - "echo WARN: Cannot load the DT; " \ - "fi; " \ - "fi; " \ -- "fi;\0" \ -- "memboot=echo Booting from memory...; " \ -- "setenv bootargs console=${console},${baudrate} " \ -- "g_mass_storage.stall=0 g_mass_storage.removable=1 " \ -- "g_mass_storage.idVendor=0x066F g_mass_storage.idProduct=0x37FF "\ -- "g_mass_storage.iSerialNumber=\"\" rdinit=/linuxrc; "\ -- "bootz ${loadaddr} ${initrd} ${fdt_addr};\0" \ -- "altbootcmd=echo Running from fallback root...; " \ -- "run memboot; " \ -- "if test ${bootcount} -gt 10; then " \ -- "echo WARN: Failed too much, resetting bootcount and turning off; " \ -- "setenv bootcount 0; " \ -- "saveenv; " \ -- "poweroff; " \ -- "fi; " \ -- "setenv mmcpart ${fallback_partition}; " \ -- "setenv bootargs console=${console},${baudrate} " \ -- "root=/dev/mmcblk1p${fallback_partition} rootwait rootfstype=ext4 quiet rw " \ -- "systemd.log_level=debug systemd.log_target=kmsg memtest " \ -- "log_buf_len=1M printk.devkmsg systemd.journald.forward_to_console=1; " \ -- "run mmcboot;\0" \ -+ "fi;\0" - - /* Always try to boot from memory first, in case of USB download mode */ - #define CONFIG_BOOTCOMMAND \ -- "if test ! -e mmc 1:1 uboot.env; then " \ -- "saveenv; " \ -- "fi; " \ -- "run memboot; " \ - "run mmcargs; " \ - "setenv mmcpart ${active_partition}; " \ -- "run mmcboot; " \ -- "echo WARN: unable to boot from either RAM or eMMC; " \ -- "setenv upgrade_available 1; " \ -- "saveenv; " \ -- "reset; " -+ "run mmcboot; " - - #ifdef CONFIG_BOOTDELAY - #undef CONFIG_BOOTDELAY -@@ -157,18 +127,8 @@ - /* Environment organization */ - #define CONFIG_ENV_SIZE SZ_8K - --#define CONFIG_ENV_IS_IN_FAT --/*#define CONFIG_ENV_IS_NOWHERE*/ -- --#ifdef CONFIG_ENV_IS_IN_FAT --#define CONFIG_BOOTCOUNT_LIMIT --#define CONFIG_BOOTCOUNT_ENV -- --#define FAT_ENV_INTERFACE "mmc" --#define FAT_ENV_DEVICE_AND_PART "1:1" --#define CONFIG_FAT_WRITE --#define FAT_ENV_FILE "uboot.env" --#endif -+/*#define CONFIG_ENV_IS_IN_FAT*/ -+#define CONFIG_ENV_IS_NOWHERE - - #ifdef CONFIG_CMD_SF - #define CONFIG_MXC_SPI diff --git a/user/u-boot-rm/rm2-uboot-config-patch.diff b/user/u-boot-rm/rm2-uboot-config-patch.diff deleted file mode 100644 index 4aa04bc..0000000 --- a/user/u-boot-rm/rm2-uboot-config-patch.diff +++ /dev/null @@ -1,75 +0,0 @@ -diff --git a/include/configs/zero-sugar.h.orig b/include/configs/zero-sugar.h -index 6b5450a..dd6da5c 100644 ---- a/include/configs/zero-sugar.h.orig -+++ b/include/configs/zero-sugar.h -@@ -122,12 +122,10 @@ - "panel=EPD\0" \ - "mmcdev=0\0" \ - "active_partition=2\0" \ -- "fallback_partition=3\0 " \ - "bootlimit=1\0 " \ - "mmcautodetect=yes\0" \ - "mmcargs=setenv bootargs console=${console},${baudrate} " \ -- "root=/dev/mmcblk2p${active_partition} rootwait rootfstype=ext4 rw " \ -- "quiet panic=20 systemd.crash_reboot\0" \ -+ "root=/dev/mmcblk2p2 rootwait rootfstype=ext4 rw " \ - "loadimage=ext4load mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}\0" \ - "loadfdt=ext4load mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}\0" \ - "mmcboot=echo Booting from mmc ...; " \ -@@ -140,41 +138,13 @@ - "echo WARN: Cannot load the DT; " \ - "fi; " \ - "fi; " \ -- "fi;\0" \ -- "memboot=echo Booting from memory...; " \ -- "setenv bootargs console=${console},${baudrate} " \ -- "g_mass_storage.stall=0 g_mass_storage.removable=1 " \ -- "g_mass_storage.idVendor=0x066F g_mass_storage.idProduct=0x37FF "\ -- "g_mass_storage.iSerialNumber=\"\" rdinit=/linuxrc; "\ -- "bootz ${loadaddr} ${initrd} ${fdt_addr};\0" \ -- "altbootcmd=echo Running from fallback root...; " \ -- "run memboot; " \ -- "if test ${bootcount} -gt 10; then " \ -- "echo WARN: Failed too much, resetting bootcount and turning off; " \ -- "setenv bootcount 0; " \ -- "saveenv; " \ -- "poweroff; " \ -- "fi; " \ -- "setenv mmcpart ${fallback_partition}; " \ -- "setenv bootargs console=${console},${baudrate} " \ -- "root=/dev/mmcblk2p${fallback_partition} rootwait rootfstype=ext4 quiet rw " \ -- "systemd.log_level=debug systemd.log_target=kmsg memtest " \ -- "log_buf_len=1M printk.devkmsg systemd.journald.forward_to_console=1; " \ -- "run mmcboot;\0" \ -+ "fi;\0" - - /* Always try to boot from memory first, in case of USB download mode */ - #define CONFIG_BOOTCOMMAND \ -- "if test ! -e mmc 0:1 uboot.env; then " \ -- "saveenv; " \ -- "fi; " \ -- "run memboot; " \ - "run mmcargs; " \ - "setenv mmcpart ${active_partition}; " \ -- "run mmcboot; " \ -- "echo WARN: unable to boot from either RAM or eMMC; " \ -- "setenv upgrade_available 1; " \ -- "saveenv; " \ -- "reset; " -+ "run mmcboot; " - - #define CONFIG_SYS_MEMTEST_START 0x80000000 - #define CONFIG_SYS_MEMTEST_END (CONFIG_SYS_MEMTEST_START + 0x20000000) -@@ -198,10 +168,8 @@ - /* Environment organization */ - #define CONFIG_ENV_SIZE SZ_8K - --#ifdef CONFIG_ENV_IS_IN_FAT --#define CONFIG_BOOTCOUNT_LIMIT --#define CONFIG_BOOTCOUNT_ENV --#endif -+/*#define CONFIG_ENV_IS_IN_FAT*/ -+#define CONFIG_ENV_IS_NOWHERE - - #define CONFIG_SYS_FSL_USDHC_NUM 2 - diff --git a/user/u-boot-rm/update-u-boot b/user/u-boot-rm/update-u-boot deleted file mode 100755 index e90bcbd..0000000 --- a/user/u-boot-rm/update-u-boot +++ /dev/null @@ -1,129 +0,0 @@ -#!/bin/sh - -verbose= -board= -device= -dryrun= -imagedir= - -get_defaults() { - if [ -z "$board" -a -e /sys/firmware/devicetree/base/compatible ]; then - case "$(cat /sys/firmware/devicetree/base/compatible 2>/dev/null)" in - wand,*) board=wand ;; - esac - fi - - if [ -z "$device" ]; then - case "$board" in - wand|cubie|cubie2) device=/dev/mmcblk0p0 ;; - zero-gravitas) device=/dev/mmcblk1 ;; - esac - fi - - if [ -z "$imagedir" ]; then - imagedir="$(realpath $(dirname $0))" - [ -f "$imagedir/README.txt" ] || imagedir="/usr/share/u-boot-rm" - fi -} - -die() { - echo "ERROR: $@" - exit 1 -} - -usage() { - get_defaults - - cat <] [-d|--device ] - -options: - - -b,--board Specify the board type: wand, cubie, cubie2 - (current default: ${board:-none}) - - -d,--device Specify the device where to install u-boot - (current default: ${device:-none}) - - -i,--imagedir Specify u-boot image directory - (current default: ${imagedir:-none}) - - -n,--dry-run Print commands but don't execute them - -EOF -} - -while [ $# -gt 0 ]; do - opt="$1" - shift - case "$opt" in - -b|--board) - case "$1" in - wand|wandboard) board="wand" ;; - cubie|cubieboard) board="cubie" ;; - zerogravitas) board="zero-gravitas" ;; - zerosugar) board="zero-sugar" ;; - *) usage; exit 1;; - esac - shift - ;; - -d|--device) - device="$1" - shift - ;; - -i|--imagedir) - imagedir="$1" - shift - ;; - -n|--dry-run) - dryrun="echo" - ;; - --) - break - ;; - -*) - usage - exit 1 - ;; - esac -done - -get_defaults -if [ -z "$board" -o -z "$device" -o -z "$imagedir" -o ! -e "$imagedir" ]; then - usage - exit 1 -fi - -if [ -z "$dryrun" ]; then - echo "Updating $board u-boot in $device in 3 seconds..." - sleep 3 -fi - -( -set -e -case "$board" in -wand) - [ -e "$imagedir/wandboard" ] || die "wandboard images not installed, apk add u-boot-wandboard" - $dryrun dd if=$imagedir/wandboard/SPL of=$device bs=1k seek=1 status=none - $dryrun dd if=$imagedir/wandboard/u-boot.img of=$device bs=1k seek=69 status=none - ;; -cubie|cubie2) - [ -e "$imagedir/Cubieboard${board#cubie}" ] || die "Cubieboard images not installed, apk add u-boot-cubieboard" - $dryrun dd if=$imagedir/Cubieboard${board#cubie}/u-boot-sunxi-with-spl.bin of=/dev/sda bs=1024 seek=8 status=none - ;; -zero-gravitas) - [ -e "$imagedir/zero-gravitas" ] || die "rM1 images not installed, apk add u-boot-rm1" - $dryrun dd if=/dev/zero of=$device bs=512 seek=1536 count=16 - [ -z "$dryrun" ] && echo 0 > /sys/block/${device/\/dev\/}boot0/force_ro - $dryrun dd if=/dev/zero of=${device}boot0 bs=512 count=2 - $dryrun dd if=$imagedir/zero-gravitas/u-boot.bin of=${device}boot0 bs=512 seek=2 - [ -z "$dryrun" ] && echo 1 > /sys/block/${device/\/dev\/}boot0/force_ro - ;; -zero-sugar) - die "rM2 not yet tested" - ;; -esac -$dryrun sync -) || die "U-Boot installation in $device failed" - -[ -z "$dryrun" ] && echo "Completed successfully." From de224ac5c470ff1a590f87e9660d8af5e30417e5 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 19:19:27 -0400 Subject: [PATCH 072/210] user/rm-utils: drop for pmos --- user/rm-utils/APKBUILD | 38 ------- user/rm-utils/battery-monitor.sh | 37 ------- user/rm-utils/epdc-init-auto.c | 126 --------------------- user/rm-utils/epdc-show-bitmap.c | 184 ------------------------------- user/rm-utils/xorg.conf | 62 ----------- 5 files changed, 447 deletions(-) delete mode 100644 user/rm-utils/APKBUILD delete mode 100644 user/rm-utils/battery-monitor.sh delete mode 100644 user/rm-utils/epdc-init-auto.c delete mode 100644 user/rm-utils/epdc-show-bitmap.c delete mode 100644 user/rm-utils/xorg.conf diff --git a/user/rm-utils/APKBUILD b/user/rm-utils/APKBUILD deleted file mode 100644 index d8f2b68..0000000 --- a/user/rm-utils/APKBUILD +++ /dev/null @@ -1,38 +0,0 @@ -# Maintainer: Antoine Martin (ayakael) -# Contributor: Antoine Martin (ayakael) - -pkgname=rm-utils -pkgver=0.0.1 -pkgrel=4 -pkgdesc="Utility files for reMarkable tablet" -arch="armv7" -url="http://www.davisr.me/projects/parabola-rm/" -license="GPL-3.0-only" -makedepends="musl-dev linux-rm-headers" -options="!check" # No testsuite -builddir="$srcdir" -source=" - battery-monitor.sh - epdc-init-auto.c - epdc-show-bitmap.c - xorg.conf -" - -build() { - $CC $CFLAGS epdc-init-auto.c -o epdc-init-auto - $CC $CFLAGS epdc-show-bitmap.c -o epdc-show-bitmap -} - -package() { - install -vDm755 battery-monitor.sh "$pkgdir"/usr/bin/battery-monitor - install -vDm755 epdc-show-bitmap -t "$pkgdir"/usr/bin/ - install -vDm755 epdc-init-auto -t "$pkgdir"/usr/bin/ - install -vDm644 xorg.conf -t "$pkgdir"/etc/defaults/ -} - -sha512sums=" -7f0e6cb276357983b76c37c81a91c0d278dbec16d8982a97618f2217ef5e4d706211d921af6c79db3aad912d50aaed8cf5ce67f52a1081f61585eb97322c8deb battery-monitor.sh -f145d6af541828e69217a73f7b848f7fe57cce37426e15469a1d6a5540604f4078d4cd1f67e69e77b961b608a7b8e2930e1e82b13fe9dd181361e361895a66be epdc-init-auto.c -409744c4bbcac462c38add2b19d3b433e44cb326905fe3af240931e27bb2b71b14696229c46187bf7c060f83d77920376b5c6161f62949a2fa2c0a5464753cc0 epdc-show-bitmap.c -e14a61751e4c830652e7a849b9d596c6bc213fed87ba3f9f7c3df0d5fe35ddf28bde7de2fa977c0321639503ceff5abffd0d856380eacce24389fd50eaf3372a xorg.conf -" diff --git a/user/rm-utils/battery-monitor.sh b/user/rm-utils/battery-monitor.sh deleted file mode 100644 index fb5dbc7..0000000 --- a/user/rm-utils/battery-monitor.sh +++ /dev/null @@ -1,37 +0,0 @@ -#!/usr/bin/env bash -# -# battery-monitor.sh -# Prints the state of charge of the tablet's battery -# -# Parabola-rM is a free operating system for the reMarakble tablet. -# Copyright (C) 2020 -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. - -# Path for Linux 4.9 -battpath="/sys/class/power_supply/bq27441-0" - -chargenow="$(cat $battpath/charge_now)" -chargefull="$(cat $battpath/charge_full)" -status="$(cat $battpath/status)" - -chargepct="$(echo $chargenow $chargefull \ - | awk '{printf "%f", $1 / $2 * 100}' \ - | cut -d'.' -f1)" -symbol="" -if [[ "Charging" == "$status" ]]; then - symbol=$'\u26a1' # Lightning symbol -fi - -echo "${symbol}${chargepct}%" diff --git a/user/rm-utils/epdc-init-auto.c b/user/rm-utils/epdc-init-auto.c deleted file mode 100644 index 069ea9f..0000000 --- a/user/rm-utils/epdc-init-auto.c +++ /dev/null @@ -1,126 +0,0 @@ -/* - epdc-init-auto.c - Initializes the EPDC framebuffer into a deferred-IO automatic-update - mode - - Parabola-rM is a free operating system for the reMarakble tablet. - Copyright (C) 2020 Davis Remmel - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - -#include -#include -#include -#include -#include -#include -#include -#include - -int main() -{ - int ret; - int fb = open("/dev/fb0", O_RDWR); - struct fb_var_screeninfo vinfo; - ret = ioctl(fb, FBIOGET_VSCREENINFO, &vinfo); - if (0 != ret) { - fprintf(stderr, "FBIOGET_VSCREENINFO failed with error " - "%d, aborting\n", ret); - return 1; - } - - vinfo.xres = 1872; - vinfo.yres = 1404; - vinfo.pixclock = 160000000; - vinfo.left_margin = 32; - vinfo.right_margin = 326; - vinfo.upper_margin = 4; - vinfo.lower_margin = 12; - vinfo.hsync_len = 44; - vinfo.vsync_len = 1; - vinfo.sync = 0; - vinfo.vmode = FB_VMODE_NONINTERLACED; - vinfo.accel_flags = 0; - vinfo.activate = FB_ACTIVATE_FORCE; - - // Put screen info. Sometimes this fails when trying to set the - // pixclock. This may be a bug in the driver's arithmetic. - ret = ioctl(fb, FBIOPUT_VSCREENINFO, &vinfo); - if (0 != ret) { - fprintf(stderr, "FBIOPUT_VSCREENINFO failed with error " - "%d, attempting to reset pixclock\n", ret); - vinfo.pixclock = 6250; - ioctl(fb, FBIOPUT_VSCREENINFO, &vinfo); - vinfo.pixclock = 160000000; - ret = ioctl(fb, FBIOPUT_VSCREENINFO, &vinfo); - if (0 != ret) { - fprintf(stderr, "FBIOPUT_VSCREENINFO failed " - "with error %d, aborting\n", ret); - return 1; - } - } - - // Pull the screeninfo agian - ret = ioctl(fb, FBIOGET_VSCREENINFO, &vinfo); - if (0 != ret) { - fprintf(stderr, "FBIOGET_VSCREENINFO failed with error " - "%d, aborting\n", ret); - return 1; - } - - printf("x:%d y:%d activate:%d bpp:%d rotate:%d hsync_len:%d" - "vsync_len: %d sync:%d\n", - vinfo.xres, vinfo.yres, vinfo.activate, - vinfo.bits_per_pixel, vinfo.rotate, vinfo.hsync_len, - vinfo.vsync_len, vinfo.sync); - - struct fb_fix_screeninfo finfo; - ret = ioctl(fb, FBIOGET_FSCREENINFO, &finfo); - if (0 != ret) { - fprintf(stderr, "FBIOGET_FSCREENINFO failed with error " - "%d, aborting\n", ret); - return 1; - } - - // In case the EPDC wasn't accessible - ret = ioctl(fb, MXCFB_ENABLE_EPDC_ACCESS); - if (0 != ret) { - fprintf(stderr, "MXCFB_ENABLE_EPDC_ACCESS failed with " - "error %d, aborting\n", ret); - return 1; - } - - // Set auto update mode - __u32 aumode = AUTO_UPDATE_MODE_AUTOMATIC_MODE; - ret = ioctl(fb, MXCFB_SET_AUTO_UPDATE_MODE, &aumode); - if (0 != ret) { - fprintf(stderr, "MXCFB_SET_AUTO_UPDATE_MODE failed " - "with error %d, aborting\n", ret); - return 1; - } - - // Queue-and-merge is best-performing - __u32 uscheme = UPDATE_SCHEME_QUEUE_AND_MERGE; - ret = ioctl(fb, MXCFB_SET_UPDATE_SCHEME, &uscheme); - if (0 != ret) { - fprintf(stderr, "MXCFB_SET_UPDATE_SCHEME failed with " - "error %d, aborting\n", ret); - return 1; - } - - close(fb); - return 0; -} - diff --git a/user/rm-utils/epdc-show-bitmap.c b/user/rm-utils/epdc-show-bitmap.c deleted file mode 100644 index c42bf30..0000000 --- a/user/rm-utils/epdc-show-bitmap.c +++ /dev/null @@ -1,184 +0,0 @@ -/* -epdc-show-bitmap.c -Displays a raw image to the EPDC framebuffer - -Parabola-rM is a free operating system for the reMarakble tablet. -Copyright (C) 2020 Davis Remmel - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -int main(int argc, char *argv[]) { - if (argc < 2) { - printf("Must pass an image as an argument.\n"); - return 1; - } - - int ret; - int fb = open("/dev/fb0", O_RDWR); - struct fb_var_screeninfo vinfo; - ret = ioctl(fb, FBIOGET_VSCREENINFO, &vinfo); - if (0 != ret) { - printf("FBIOGET_VSCREENINFO failed with error %d" - ", aborting\n", ret); - return 1; - } - - vinfo.xres = 1872; - vinfo.yres = 1404; - vinfo.pixclock = 160000000; - vinfo.left_margin = 32; - vinfo.right_margin = 326; - vinfo.upper_margin = 4; - vinfo.lower_margin = 12; - vinfo.hsync_len = 44; - vinfo.vsync_len = 1; - vinfo.sync = 0; - vinfo.vmode = FB_VMODE_NONINTERLACED; - vinfo.accel_flags = 0; - vinfo.activate = FB_ACTIVATE_FORCE; - - // Put screen info. Sometimes this fails when trying to set the - // pixclock. This may be a bug in the driver's arithmetic. - ret = ioctl(fb, FBIOPUT_VSCREENINFO, &vinfo); - if (0 != ret) { - fprintf(stderr, "FBIOPUT_VSCREENINFO failed with error " - "%d, attempting To reset pixclock\n", ret); - vinfo.pixclock = 6250; - ioctl(fb, FBIOPUT_VSCREENINFO, &vinfo); - vinfo.pixclock = 160000000; - ret = ioctl(fb, FBIOPUT_VSCREENINFO, &vinfo); - if (0 != ret) { - fprintf(stderr, "FBIOPUT_VSCREENINFO failed " - "with error %d, aborting\n", ret); - return 1; - } - } - - printf("x:%d y:%d activate:%d bpp:%d rotate:%d hsync_len:%d" - "vsync_len: %d sync:%d\n", - vinfo.xres, vinfo.yres, vinfo.activate, - vinfo.bits_per_pixel, vinfo.rotate, vinfo.hsync_len, - vinfo.vsync_len, vinfo.sync); - - struct fb_fix_screeninfo finfo; - ret = ioctl(fb, FBIOGET_FSCREENINFO, &finfo); - if (0 != ret) { - fprintf(stderr, "FBIOGET_FSCREENINFO failed with error " - "%d, aborting\n", ret); - return 1; - } - - // In case the EPDC wasn't accessible - ret = ioctl(fb, MXCFB_ENABLE_EPDC_ACCESS); - if (0 != ret) { - fprintf(stderr, "MXCFB_ENABLE_EPDC_ACCESS failed with " - "error %d, aborting\n", ret); - return 1; - } - - // Set to partial mode to control update parameters - __u32 aumode = AUTO_UPDATE_MODE_REGION_MODE; - ret = ioctl(fb, MXCFB_SET_AUTO_UPDATE_MODE, &aumode); - if (0 != ret) { - fprintf(stderr, "MXCFB_SET_AUTO_UPDATE_MODE failed " - "with error %d, aborting\n", ret); - return 1; - } - - - // No artifacts in display output - __u32 uscheme = UPDATE_SCHEME_SNAPSHOT; - ret = ioctl(fb, MXCFB_SET_UPDATE_SCHEME, &uscheme); - if (0 != ret) { - fprintf(stderr, "MXCFB_SET_UPDATE_SCHEME failed with " - "error %d, aborting\n", ret); - return 1; - } - - // Set up update (same region for all writes, gets reused) - struct mxcfb_update_data bupdate; - bupdate.update_region.left = 0; - bupdate.update_region.top = 0; - bupdate.update_region.width = 1872; - bupdate.update_region.height = 1404; - bupdate.waveform_mode = WAVEFORM_MODE_AUTO; - bupdate.update_mode = UPDATE_MODE_FULL; - bupdate.update_marker = 0; - bupdate.temp = TEMP_USE_AMBIENT; - bupdate.flags = 0; - - struct mxcfb_update_marker_data updm; - updm.update_marker = 0; - - // mmap to framebuffer - int buflength = vinfo.yres_virtual * finfo.line_length; - printf("buflength %d\n", buflength); - char * region = mmap(0, buflength, PROT_READ | PROT_WRITE, - MAP_SHARED, fb, (off_t)0); - if (region == MAP_FAILED) { - fprintf(stderr, "map failed!\n"); - return 1; - } - - // Write black - memset(region, 0x00, buflength); - ioctl(fb, MXCFB_SEND_UPDATE, &bupdate); - ioctl(fb, MXCFB_WAIT_FOR_UPDATE_COMPLETE, &updm); - - // Write white - memset(region, 0xff, buflength); - ioctl(fb, MXCFB_SEND_UPDATE, &bupdate); - ioctl(fb, MXCFB_WAIT_FOR_UPDATE_COMPLETE, &updm); - - // Write image - FILE *pattern = fopen(argv[1], "rb"); - fseek(pattern, 0, SEEK_END); - long psize = ftell(pattern); - printf("psize is %d\n", psize); - fseek(pattern, 0, SEEK_SET); - - if (psize != buflength) { - fprintf(stderr, "Image must match framebuffer size\n"); - return 1; - } - - char *buffer = malloc(psize); - fread(buffer, psize, 1, pattern); - fclose(pattern); - - memcpy(region, buffer, psize); - ret = ioctl(fb, MXCFB_SEND_UPDATE, &bupdate); - ioctl(fb, MXCFB_WAIT_FOR_UPDATE_COMPLETE, &updm); - if (0 != ret) { - fprintf(stderr, "MXCFB_SEND_UPDATE failed with error " - "%d, aborting\n", ret); - return 1; - } - - close(fb); - return 0; -} diff --git a/user/rm-utils/xorg.conf b/user/rm-utils/xorg.conf deleted file mode 100644 index 8ebf064..0000000 --- a/user/rm-utils/xorg.conf +++ /dev/null @@ -1,62 +0,0 @@ -Section "ServerLayout" - Identifier "reMarkable Tablet RM100" - Screen 0 "Screen0" - InputDevice "wacom" "CorePointer" -EndSection - -Section "ServerFlags" - Option "BlankTime" "0" - Option "StandbyTime" "0" - Option "SuspendTime" "0" - Option "OffTime" "0" -EndSection - -Section "Monitor" - Identifier "Monitor0" - DisplaySize 210 158 # mm, sets DPI - Modeline "1872x1404_30.00" 104.26 1872 1960 2152 2432 1404 1405 \ - 1408 1429 -HSync +Vsync - Option "PreferredMode" "1872x1404_30.00" -EndSection - -Section "Screen" - Identifier "Screen0" - Monitor "Monitor0" - Device "epdc0" - DefaultDepth 16 - SubSection "Display" - Depth 16 - Modes "1872x1404_30.00" - EndSubSection -EndSection - -Section "Device" - Identifier "epdc0" - Driver "fbdev" - Option "fbdev" "/dev/fb0" - Option "Rotate" "CW" -EndSection - -Section "InputDevice" - Identifier "wacom" - Driver "evdev" - Option "Protocol" "Auto" - Option "Device" "/dev/input/event0" - Option "SwapAxes" "1" - Option "InvertY" "1" -EndSection - -Section "InputClass" - Identifier "touchscreen" - MatchIsTouchscreen "on" - MatchDevicePath "/dev/input/event1" - Driver "libinput" - Option "CalibrationMatrix" "-1 0 1 0 -1 1 0 0 1" # Rot 180 -EndSection - -Section "InputClass" - Identifier "facialbuttons" - MatchIsKeyboard "on" - MatchDevicePath "/dev/input/event2" - Driver "libinput" -EndSection From c4e065619263be6186dd4c6c6e48a7d318121d1c Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 19:19:39 -0400 Subject: [PATCH 073/210] user/rm-extractor: drop for pmos --- user/rm-extractor/APKBUILD | 26 -------------------------- 1 file changed, 26 deletions(-) delete mode 100644 user/rm-extractor/APKBUILD diff --git a/user/rm-extractor/APKBUILD b/user/rm-extractor/APKBUILD deleted file mode 100644 index f581976..0000000 --- a/user/rm-extractor/APKBUILD +++ /dev/null @@ -1,26 +0,0 @@ -# Contributor: Antoine Martin (ayakael) -# Maintainer: Antoine Martin (ayakael) -pkgname=rm-extractor -_gittag=9d37e9437affea379dadb59e646a819b3b9147dd -pkgver=0.0.1 -pkgrel=4 -pkgdesc="Image extractor for reMarkable firmware files" -arch="noarch" -url="https://github.com/ddvk/remarkable-update" -license="MIT" -depends="py3-six py3-protobuf" -options="!check" # No testsuite -builddir="$srcdir/remarkable-update-$_gittag" -source="$pkgname-$pkgver.tar.gz::https://github.com/ddvk/remarkable-update/archive/$_gittag.tar.gz" - -package() { - install -vDm755 "$builddir"/extractor/extractor.py "$pkgdir"/usr/lib/rm-extractor/extractor.py - install -vDm644 "$builddir"/extractor/update_metadata.proto "$pkgdir"/usr/lib/rm-extractor/update_metadata.proto - install -vDm755 "$builddir"/extractor/update_metadata_pb2.py "$pkgdir"/usr/lib/rm-extractor/update_metadata_pb2.py - install -vdm755 "$pkgdir"/usr/bin - ln -s /usr/lib/rm-extractor/extractor.py "$pkgdir"/usr/bin/rm-extractor -} - -sha512sums=" -866c483950ee2cf7085e7d43d8752458d9aeb58b4361c05f50ac3118e87b295ff62b3d4288ad846eda5f93a4afe38891f6a9166f839c66f5ff0ab07afab6ae16 rm-extractor-0.0.1.tar.gz -" From 9ab70541a03989424bbb431e7a9c85345b349214 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 19:19:51 -0400 Subject: [PATCH 074/210] user/linux-rm: drop for pmos --- user/linux-rm/APKBUILD | 258 ------ ...sun-style-flash-on-section-directive.patch | 428 ---------- .../brcmfmac-disable-power-management.patch | 13 - ...suspend-resume-when-power-is-cut-off.patch | 221 ----- user/linux-rm/config-changes-rm.armhf | 1 - user/linux-rm/config-changes-rm.armv7 | 62 -- user/linux-rm/config-changes-rm2.armhf | 1 - user/linux-rm/config-changes-rm2.armv7 | 1 - .../enable-automatic-partial-refreshing.patch | 26 - user/linux-rm/enable-sdhc1.patch | 790 ------------------ 10 files changed, 1801 deletions(-) delete mode 100644 user/linux-rm/APKBUILD delete mode 100644 user/linux-rm/arm-replace-sun-style-flash-on-section-directive.patch delete mode 100644 user/linux-rm/brcmfmac-disable-power-management.patch delete mode 100644 user/linux-rm/brcmfmac-fix-suspend-resume-when-power-is-cut-off.patch delete mode 120000 user/linux-rm/config-changes-rm.armhf delete mode 100644 user/linux-rm/config-changes-rm.armv7 delete mode 120000 user/linux-rm/config-changes-rm2.armhf delete mode 120000 user/linux-rm/config-changes-rm2.armv7 delete mode 100644 user/linux-rm/enable-automatic-partial-refreshing.patch delete mode 100644 user/linux-rm/enable-sdhc1.patch diff --git a/user/linux-rm/APKBUILD b/user/linux-rm/APKBUILD deleted file mode 100644 index 864b2b5..0000000 --- a/user/linux-rm/APKBUILD +++ /dev/null @@ -1,258 +0,0 @@ -# Maintainer: Antoine Martin (ayakael) -# Contributor: Antoine Martin (ayakael) - -pkgname=linux-rm -pkgver=5.4.70 -_rmver=1.3.4 -pkgrel=11 -pkgdesc="Linux kernel with reMarkable patches" -url=https://github.com/reMarkable/linux -depends="initramfs-generator linux-firmware-brcm linux-firmware-cypress" -_depends_dev="perl gmp-dev elfutils-dev bash mpc1-dev mpfr-dev" -makedepends="$_depends_dev sed installkernel bc linux-headers linux-firmware mawk - bison flex openssl-dev>3 diffutils pahole findutils xz lzop -" -options="!strip !check" -builddir="$srcdir"/linux-RM1XX_${pkgver}_v$_rmver -source=" - https://github.com/reMarkable/linux/archive/refs/tags/RM1XX_${pkgver}_v$_rmver.tar.gz - https://raw.githubusercontent.com/ichaozi/RemarkableFramebuffer/0f37dc8c06d340dc1af52ff2d4d6d5789ccf14bb/kernel-mxc-epdc-fb-reference/epdc_ES103CS1.fw - arm-replace-sun-style-flash-on-section-directive.patch - brcmfmac-disable-power-management.patch - brcmfmac-fix-suspend-resume-when-power-is-cut-off.patch - enable-automatic-partial-refreshing.patch - config-changes-rm.armv7 - config-changes-rm.armhf - " -arch="armv7" -license="GPL-2.0" -for _i in $source; do - case $_i in - config-*.$CARCH) - _f=${_i%."$CARCH"} - _f=${_f#config-changes-} - _flavors="$_flavors $_f" - [ "linux-$_f" != "$pkgname" ] && subpackages="$subpackages linux-$_f::$CTARGET_ARCH" - subpackages="$subpackages linux-$_f-dev:_dev:$CTARGET_ARCH" - ;; - esac -done - -_carch=$CARCH -case "$CARCH" in - aarch64) _carch="arm64" ;; - arm*) _carch="arm" ;; -esac - -# generate config from defconfig and apply local changes. -# config-changes-$flavor.$CARCH holds a list of = delimited -# config command and values used by kernel scripts/config script. -_genconfig() { - local flavor=$1 defconfig= - local subbuilddir="$srcdir"/build-$flavor - local defconfig= - case $flavor in - rm) defconfig=zero-gravitas_defconfig ;; - rm2) defconfig=zero-sugar_defconfig ;; - *) die "Unknown flavor: $flavor" ;; - esac - - cp "$builddir"/arch/$_carch/configs/$defconfig \ - "$subbuilddir"/.config - - while read -r line; do - # skip comments - case "$line" in - "#"*) continue;; - esac - local option=${line%%=*} str= - local cmd=$(echo $line | cut -d= -f2) - case "$cmd" in - y) cmd="enable";; - n) cmd="disable";; - m) cmd="module";; - '"'*) cmd="set-str"; str="${line#*=}";; - [0-9]*) cmd="set-val"; str="${line#*=}";; - *) die "Command $cmd not accepted" ;; - esac - msg "[$flavor] $cmd: $option $str" - "$builddir"/scripts/config \ - --file "$subbuilddir"/.config \ - --$cmd "$option" "${str//\"/}" - done < "$srcdir"/config-changes-$flavor.$CARCH -} - -# verify if options are set to correct value -_verifyconfig() { - local flavor=$1 - local subbuilddir="$srcdir"/build-$flavor - while read -r line; do - [ ${line:0:1} = "#" ] && continue - local option=${line%%=*} str= invert= - local cmd=$(echo $line | cut -d= -f2) - case "$cmd" in - enable) str="$option=y" ;; - disable) str="$option"; invert="-v" ;; - module) str="$option=m" ;; - set-val) str="$option=${line##*=}" ;; - set-str) str=${line##*=} - str="$option=\"${str//\"/}\"" ;; - esac - grep -q $invert "^$str" "$subbuilddir"/.config || \ - die "Config: $option not properly set!" - done < "$srcdir"/config-changes-$flavor.$CARCH -} - -prepare() { - default_prepare - - local flavor= - for flavor in $_flavors; do - local _builddir="$srcdir"/build-$flavor - mkdir -p "$_builddir" - echo "-$pkgrel-$flavor" > "$_builddir"/localversion-alpine - _genconfig $flavor - make -C "$builddir" \ - O="$_builddir" \ - ARCH="$_carch" \ - olddefconfig - _verifyconfig $flavor - done -} - -build() { - unset LDFLAGS - for i in $_flavors; do - cd "$srcdir"/build-$i - local _kver=$(make kernelversion) - if [ "$_kver" != "$pkgver" ]; then - error "Version in Makefile ($_kver) does not correspond with pkgver ($pkgver)" - return 1 - fi - - make ARCH="$_carch" CC="${CC:-gcc}" KLZOP="/usr/bin/lzop" \ - KBUILD_BUILD_VERSION="$((pkgrel + 1 ))-Alpine" - done -} - -_package() { - local _flavor="$1" _outdir="$2" - local _builddir="$srcdir"/build-$_flavor - local _abi_release="$(make -C "$_builddir" -s kernelrelease)" - - cd "$srcdir"/build-$_flavor - - mkdir -p "$_outdir"/boot "$_outdir"/lib/modules - - local _install="zinstall dtbs_install" - - cd "$srcdir"/build-$_flavor - # modules_install seems to regenerate a defect Modules.symvers. Work - # around it by backing it up and restore it after modules_install - cp Module.symvers Module.symvers.backup - - local INSTALL_DTBS_PATH="$_outdir"/boot - make -j1 modules_install $_install \ - ARCH="$_carch" \ - INSTALL_MOD_PATH="$_outdir" \ - INSTALL_MOD_STRIP=1 \ - INSTALL_PATH="$_outdir"/boot \ - INSTALL_DTBS_PATH="$INSTALL_DTBS_PATH" - cp Module.symvers.backup Module.symvers - - cp "$_builddir"/arch/arm/boot/zImage "$_outdir"/boot/zImage - rm "$_outdir"/boot/vmlinuz-$_flavor - - rm -f "$_outdir"/lib/modules/$_abi_release/build \ - "$_outdir"/lib/modules/$_abi_release/source - rm -rf "$_outdir"/lib/firmware - - install -D -m644 include/config/kernel.release \ - "$_outdir"/usr/share/kernel/$_flavor/kernel.release - - # install missing firmware - install -vDm644 "$srcdir"/epdc_ES103CS1.fw "$_outdir"/lib/firmware/imx/epdc/epdc_ES103CS1.fw -} - -# main flavor installs in $pkgdir -package() { - _package rm "$pkgdir" -} - -# subflavors install in $subpkgdir -rm2() { - depends="initramfs-generator linux-firmware-brcm linux-firmware-cypress" - _package rm2 "$subpkgdir" -} - -_dev() { - local _flavor=$(echo $subpkgname | sed -E 's/(^linux-|-dev$)//g') - local _builddir="$srcdir"/build-$_flavor - local _abi_release="$(make -C "$_builddir" -s kernelrelease)" - # copy the only the parts that we really need for build 3rd party - # kernel modules and install those as /usr/src/linux-headers, - # simlar to what ubuntu does - # - # this way you dont need to install the 300-400 kernel sources to - # build a tiny kernel module - # - pkgdesc="Headers and script for third party modules for $_flavor kernel" - depends="$_depends_dev" - local dir="$subpkgdir"/usr/src/linux-headers-$_abi_release - - # first we import config, run prepare to set up for building - # external modules, and create the scripts - mkdir -p "$dir" - cp "$_builddir"/.config "$dir"/.config - echo "-$pkgrel-$_flavor" > "$dir"/localversion-alpine - - make -j1 -C "$builddir" \ - O="$dir" \ - ARCH="$_carch" \ - AWK="${AWK:-mawk}" \ - syncconfig prepare modules_prepare scripts - - # remove the stuff that points to real sources. we want 3rd party - # modules to believe this is the soruces - rm "$dir"/Makefile "$dir"/source - - # scripts aren't being crossbuilt from some reason - if cross_compiling; then - for i in $(scanelf -R "$dir" | awk '{print $2}' | sed '1d'); do rm "$i"; done - fi - - # copy the needed stuff from real sources - # - # this is taken from ubuntu kernel build script - # http://kernel.ubuntu.com/git/ubuntu/ubuntu-zesty.git/tree/debian/rules.d/3-binary-indep.mk - cd "$builddir" - find . -path './include/*' -prune \ - -o -path './scripts/*' -prune -o -type f \ - \( -name 'Makefile*' -o -name 'Kconfig*' -o -name 'Kbuild*' -o \ - -name '*.sh' -o -name '*.pl' -o -name '*.lds' \) \ - -print | cpio -pdm "$dir" - - cp -a scripts include "$dir" - - # shellcheck disable=SC2046 - find $(find arch -name include -type d -print) -type f \ - | cpio -pdm "$dir" - - install -Dm644 "$_builddir"/Module.symvers \ - "$dir"/Module.symvers - - mkdir -p "$subpkgdir"/lib/modules/$_abi_release - ln -sf /usr/src/linux-headers-$_abi_release \ - "$subpkgdir"/lib/modules/$_abi_release/build -} - -sha512sums=" -0409c8443f5a705e8254858f966eed571b935f1be952f64c1d74b52a043d0638ba358370ca20f665d69b70aabe06f03e0bfa02ccd1a4a2a174d5b9579a10b44e RM1XX_5.4.70_v1.3.4.tar.gz -ad4bd6f332319aceee7a1c7b71b49439e8217621214b6249c7e20198360d02ea442f31edfc8e1af1b85ed71e6f97c1cb7decf7b0885c9d0293361eef47f218b2 epdc_ES103CS1.fw -f9114f8843317e1d26fbf1831182bc9c8d5907a92af6312c778f32be81414cfddfc3ced7b58375960232031d3295e8770b1a1e7466d2ace99e01bbcccd838543 arm-replace-sun-style-flash-on-section-directive.patch -c5fc4f2f70112cc66a91a2948f7fd4adcd7172a95191b4c862084c7b80093cfa696925aa9a825c41bddac7441ba153eb264b8146e52a4556a73349e6fd10e641 brcmfmac-disable-power-management.patch -27ec1bc1d916dbd2258192c1ed864eacbd2746b49caa554fbaf1124bac478bab0b729e7fabbab8705ae175bb098800f795d415f4de4964da921c1b802560b67a brcmfmac-fix-suspend-resume-when-power-is-cut-off.patch -0f47278c5bfafb939e46224fbf16f9491e3cc560ac128dcf430a1f6cf9064fb1c5bf5db1a3076c35d30c004aec525a7d6616a647564f197bb29c57701c1db982 enable-automatic-partial-refreshing.patch -9d01054ea7e4ee43836cc536bead5c1707b133790a4ef63e29feb10de4e0b290ba8829980b5340f56bee1e9ec0de66e1e4a55f03c0e6aacbce871a9d60e6ef2e config-changes-rm.armv7 -9d01054ea7e4ee43836cc536bead5c1707b133790a4ef63e29feb10de4e0b290ba8829980b5340f56bee1e9ec0de66e1e4a55f03c0e6aacbce871a9d60e6ef2e config-changes-rm.armhf -" diff --git a/user/linux-rm/arm-replace-sun-style-flash-on-section-directive.patch b/user/linux-rm/arm-replace-sun-style-flash-on-section-directive.patch deleted file mode 100644 index 29fef7f..0000000 --- a/user/linux-rm/arm-replace-sun-style-flash-on-section-directive.patch +++ /dev/null @@ -1,428 +0,0 @@ -From 790756c7e0229dedc83bf058ac69633045b1000e Mon Sep 17 00:00:00 2001 -From: Nick Desaulniers -Date: Mon, 4 Nov 2019 19:31:45 +0100 -Subject: [PATCH] ARM: 8933/1: replace Sun/Solaris style flag on section - directive - -It looks like a section directive was using "Solaris style" to declare -the section flags. Replace this with the GNU style so that Clang's -integrated assembler can assemble this directive. - -The modified instances were identified via: -$ ag \.section | grep # - -Link: https://ftp.gnu.org/old-gnu/Manuals/gas-2.9.1/html_chapter/as_7.html#SEC119 -Link: https://github.com/ClangBuiltLinux/linux/issues/744 -Link: https://bugs.llvm.org/show_bug.cgi?id=43759 -Link: https://reviews.llvm.org/D69296 - -Acked-by: Nicolas Pitre -Reviewed-by: Ard Biesheuvel -Reviewed-by: Stefan Agner -Signed-off-by: Nick Desaulniers -Suggested-by: Fangrui Song -Suggested-by: Jian Cai -Suggested-by: Peter Smith -Signed-off-by: Russell King ---- - arch/arm/boot/bootp/init.S | 2 +- - arch/arm/boot/compressed/big-endian.S | 2 +- - arch/arm/boot/compressed/head.S | 2 +- - arch/arm/boot/compressed/piggy.S | 2 +- - arch/arm/mm/proc-arm1020.S | 2 +- - arch/arm/mm/proc-arm1020e.S | 2 +- - arch/arm/mm/proc-arm1022.S | 2 +- - arch/arm/mm/proc-arm1026.S | 2 +- - arch/arm/mm/proc-arm720.S | 2 +- - arch/arm/mm/proc-arm740.S | 2 +- - arch/arm/mm/proc-arm7tdmi.S | 2 +- - arch/arm/mm/proc-arm920.S | 2 +- - arch/arm/mm/proc-arm922.S | 2 +- - arch/arm/mm/proc-arm925.S | 2 +- - arch/arm/mm/proc-arm926.S | 2 +- - arch/arm/mm/proc-arm940.S | 2 +- - arch/arm/mm/proc-arm946.S | 2 +- - arch/arm/mm/proc-arm9tdmi.S | 2 +- - arch/arm/mm/proc-fa526.S | 2 +- - arch/arm/mm/proc-feroceon.S | 2 +- - arch/arm/mm/proc-mohawk.S | 2 +- - arch/arm/mm/proc-sa110.S | 2 +- - arch/arm/mm/proc-sa1100.S | 2 +- - arch/arm/mm/proc-v6.S | 2 +- - arch/arm/mm/proc-v7.S | 2 +- - arch/arm/mm/proc-v7m.S | 4 ++-- - arch/arm/mm/proc-xsc3.S | 2 +- - arch/arm/mm/proc-xscale.S | 2 +- - 28 files changed, 29 insertions(+), 29 deletions(-) - -diff --git a/arch/arm/boot/bootp/init.S b/arch/arm/boot/bootp/init.S -index 5c476bd2b4ce9c..b562da2f704088 100644 ---- a/arch/arm/boot/bootp/init.S -+++ b/arch/arm/boot/bootp/init.S -@@ -13,7 +13,7 @@ - * size immediately following the kernel, we could build this into - * a binary blob, and concatenate the zImage using the cat command. - */ -- .section .start,#alloc,#execinstr -+ .section .start, "ax" - .type _start, #function - .globl _start - -diff --git a/arch/arm/boot/compressed/big-endian.S b/arch/arm/boot/compressed/big-endian.S -index 88e2a88d324b25..0e092c36da2f27 100644 ---- a/arch/arm/boot/compressed/big-endian.S -+++ b/arch/arm/boot/compressed/big-endian.S -@@ -6,7 +6,7 @@ - * Author: Nicolas Pitre - */ - -- .section ".start", #alloc, #execinstr -+ .section ".start", "ax" - - mrc p15, 0, r0, c1, c0, 0 @ read control reg - orr r0, r0, #(1 << 7) @ enable big endian mode -diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S -index ae70754d003daa..ead21e5f2b8032 100644 ---- a/arch/arm/boot/compressed/head.S -+++ b/arch/arm/boot/compressed/head.S -@@ -140,7 +140,7 @@ - #endif - .endm - -- .section ".start", #alloc, #execinstr -+ .section ".start", "ax" - /* - * sort out different calling conventions - */ -diff --git a/arch/arm/boot/compressed/piggy.S b/arch/arm/boot/compressed/piggy.S -index 0284f84dcf3804..27577644ee721a 100644 ---- a/arch/arm/boot/compressed/piggy.S -+++ b/arch/arm/boot/compressed/piggy.S -@@ -1,5 +1,5 @@ - /* SPDX-License-Identifier: GPL-2.0 */ -- .section .piggydata,#alloc -+ .section .piggydata, "a" - .globl input_data - input_data: - .incbin "arch/arm/boot/compressed/piggy_data" -diff --git a/arch/arm/mm/proc-arm1020.S b/arch/arm/mm/proc-arm1020.S -index 4fa5371bc6624c..2785da387c9104 100644 ---- a/arch/arm/mm/proc-arm1020.S -+++ b/arch/arm/mm/proc-arm1020.S -@@ -491,7 +491,7 @@ cpu_arm1020_name: - - .align - -- .section ".proc.info.init", #alloc -+ .section ".proc.info.init", "a" - - .type __arm1020_proc_info,#object - __arm1020_proc_info: -diff --git a/arch/arm/mm/proc-arm1020e.S b/arch/arm/mm/proc-arm1020e.S -index 5d8a8339e09a4e..e9ea237ed78525 100644 ---- a/arch/arm/mm/proc-arm1020e.S -+++ b/arch/arm/mm/proc-arm1020e.S -@@ -449,7 +449,7 @@ arm1020e_crval: - - .align - -- .section ".proc.info.init", #alloc -+ .section ".proc.info.init", "a" - - .type __arm1020e_proc_info,#object - __arm1020e_proc_info: -diff --git a/arch/arm/mm/proc-arm1022.S b/arch/arm/mm/proc-arm1022.S -index b3dd95c345e482..920c279e7879d8 100644 ---- a/arch/arm/mm/proc-arm1022.S -+++ b/arch/arm/mm/proc-arm1022.S -@@ -443,7 +443,7 @@ arm1022_crval: - - .align - -- .section ".proc.info.init", #alloc -+ .section ".proc.info.init", "a" - - .type __arm1022_proc_info,#object - __arm1022_proc_info: -diff --git a/arch/arm/mm/proc-arm1026.S b/arch/arm/mm/proc-arm1026.S -index e927187157d7d5..0bdf25a95b107d 100644 ---- a/arch/arm/mm/proc-arm1026.S -+++ b/arch/arm/mm/proc-arm1026.S -@@ -437,7 +437,7 @@ arm1026_crval: - string cpu_arm1026_name, "ARM1026EJ-S" - .align - -- .section ".proc.info.init", #alloc -+ .section ".proc.info.init", "a" - - .type __arm1026_proc_info,#object - __arm1026_proc_info: -diff --git a/arch/arm/mm/proc-arm720.S b/arch/arm/mm/proc-arm720.S -index c99d24363f32ee..39361e196d61b8 100644 ---- a/arch/arm/mm/proc-arm720.S -+++ b/arch/arm/mm/proc-arm720.S -@@ -172,7 +172,7 @@ arm720_crval: - * See for a definition of this structure. - */ - -- .section ".proc.info.init", #alloc -+ .section ".proc.info.init", "a" - - .macro arm720_proc_info name:req, cpu_val:req, cpu_mask:req, cpu_name:req, cpu_flush:req - .type __\name\()_proc_info,#object -diff --git a/arch/arm/mm/proc-arm740.S b/arch/arm/mm/proc-arm740.S -index 1b4a3838393fbd..1a94bbf6e53fc2 100644 ---- a/arch/arm/mm/proc-arm740.S -+++ b/arch/arm/mm/proc-arm740.S -@@ -128,7 +128,7 @@ __arm740_setup: - - .align - -- .section ".proc.info.init", #alloc -+ .section ".proc.info.init", "a" - .type __arm740_proc_info,#object - __arm740_proc_info: - .long 0x41807400 -diff --git a/arch/arm/mm/proc-arm7tdmi.S b/arch/arm/mm/proc-arm7tdmi.S -index 17a4687065c7f9..52b66cf0259e3f 100644 ---- a/arch/arm/mm/proc-arm7tdmi.S -+++ b/arch/arm/mm/proc-arm7tdmi.S -@@ -72,7 +72,7 @@ __arm7tdmi_setup: - - .align - -- .section ".proc.info.init", #alloc -+ .section ".proc.info.init", "a" - - .macro arm7tdmi_proc_info name:req, cpu_val:req, cpu_mask:req, cpu_name:req, \ - extra_hwcaps=0 -diff --git a/arch/arm/mm/proc-arm920.S b/arch/arm/mm/proc-arm920.S -index 298c76b47749f9..31ac8acc34dc55 100644 ---- a/arch/arm/mm/proc-arm920.S -+++ b/arch/arm/mm/proc-arm920.S -@@ -434,7 +434,7 @@ arm920_crval: - - .align - -- .section ".proc.info.init", #alloc -+ .section ".proc.info.init", "a" - - .type __arm920_proc_info,#object - __arm920_proc_info: -diff --git a/arch/arm/mm/proc-arm922.S b/arch/arm/mm/proc-arm922.S -index 824be3a0bc2382..ca2c7ca8af2146 100644 ---- a/arch/arm/mm/proc-arm922.S -+++ b/arch/arm/mm/proc-arm922.S -@@ -412,7 +412,7 @@ arm922_crval: - - .align - -- .section ".proc.info.init", #alloc -+ .section ".proc.info.init", "a" - - .type __arm922_proc_info,#object - __arm922_proc_info: -diff --git a/arch/arm/mm/proc-arm925.S b/arch/arm/mm/proc-arm925.S -index d40cff8f102c2b..a381a0c9f1092e 100644 ---- a/arch/arm/mm/proc-arm925.S -+++ b/arch/arm/mm/proc-arm925.S -@@ -477,7 +477,7 @@ arm925_crval: - - .align - -- .section ".proc.info.init", #alloc -+ .section ".proc.info.init", "a" - - .macro arm925_proc_info name:req, cpu_val:req, cpu_mask:req, cpu_name:req, cache - .type __\name\()_proc_info,#object -diff --git a/arch/arm/mm/proc-arm926.S b/arch/arm/mm/proc-arm926.S -index 4ef89e1d11276e..1ba253c2bce190 100644 ---- a/arch/arm/mm/proc-arm926.S -+++ b/arch/arm/mm/proc-arm926.S -@@ -460,7 +460,7 @@ arm926_crval: - - .align - -- .section ".proc.info.init", #alloc -+ .section ".proc.info.init", "a" - - .type __arm926_proc_info,#object - __arm926_proc_info: -diff --git a/arch/arm/mm/proc-arm940.S b/arch/arm/mm/proc-arm940.S -index 1c26d991386d7d..4b8a00220cc976 100644 ---- a/arch/arm/mm/proc-arm940.S -+++ b/arch/arm/mm/proc-arm940.S -@@ -340,7 +340,7 @@ __arm940_setup: - - .align - -- .section ".proc.info.init", #alloc -+ .section ".proc.info.init", "a" - - .type __arm940_proc_info,#object - __arm940_proc_info: -diff --git a/arch/arm/mm/proc-arm946.S b/arch/arm/mm/proc-arm946.S -index 2dc1c75a4fd4a8..555becf9c758d1 100644 ---- a/arch/arm/mm/proc-arm946.S -+++ b/arch/arm/mm/proc-arm946.S -@@ -395,7 +395,7 @@ __arm946_setup: - - .align - -- .section ".proc.info.init", #alloc -+ .section ".proc.info.init", "a" - .type __arm946_proc_info,#object - __arm946_proc_info: - .long 0x41009460 -diff --git a/arch/arm/mm/proc-arm9tdmi.S b/arch/arm/mm/proc-arm9tdmi.S -index 913c06e590af51..ef517530130b03 100644 ---- a/arch/arm/mm/proc-arm9tdmi.S -+++ b/arch/arm/mm/proc-arm9tdmi.S -@@ -66,7 +66,7 @@ __arm9tdmi_setup: - - .align - -- .section ".proc.info.init", #alloc -+ .section ".proc.info.init", "a" - - .macro arm9tdmi_proc_info name:req, cpu_val:req, cpu_mask:req, cpu_name:req - .type __\name\()_proc_info, #object -diff --git a/arch/arm/mm/proc-fa526.S b/arch/arm/mm/proc-fa526.S -index 8120b6f4dbb83e..dddf833fe00078 100644 ---- a/arch/arm/mm/proc-fa526.S -+++ b/arch/arm/mm/proc-fa526.S -@@ -185,7 +185,7 @@ fa526_cr1_set: - - .align - -- .section ".proc.info.init", #alloc -+ .section ".proc.info.init", "a" - - .type __fa526_proc_info,#object - __fa526_proc_info: -diff --git a/arch/arm/mm/proc-feroceon.S b/arch/arm/mm/proc-feroceon.S -index bb6dc34d42a374..b12b76bc8d30ca 100644 ---- a/arch/arm/mm/proc-feroceon.S -+++ b/arch/arm/mm/proc-feroceon.S -@@ -571,7 +571,7 @@ feroceon_crval: - - .align - -- .section ".proc.info.init", #alloc -+ .section ".proc.info.init", "a" - - .macro feroceon_proc_info name:req, cpu_val:req, cpu_mask:req, cpu_name:req, cache:req - .type __\name\()_proc_info,#object -diff --git a/arch/arm/mm/proc-mohawk.S b/arch/arm/mm/proc-mohawk.S -index f083085788857b..d47d6c5cee63a6 100644 ---- a/arch/arm/mm/proc-mohawk.S -+++ b/arch/arm/mm/proc-mohawk.S -@@ -416,7 +416,7 @@ mohawk_crval: - - .align - -- .section ".proc.info.init", #alloc -+ .section ".proc.info.init", "a" - - .type __88sv331x_proc_info,#object - __88sv331x_proc_info: -diff --git a/arch/arm/mm/proc-sa110.S b/arch/arm/mm/proc-sa110.S -index d5bc5d70256399..baba503ba81669 100644 ---- a/arch/arm/mm/proc-sa110.S -+++ b/arch/arm/mm/proc-sa110.S -@@ -196,7 +196,7 @@ sa110_crval: - - .align - -- .section ".proc.info.init", #alloc -+ .section ".proc.info.init", "a" - - .type __sa110_proc_info,#object - __sa110_proc_info: -diff --git a/arch/arm/mm/proc-sa1100.S b/arch/arm/mm/proc-sa1100.S -index be7b611c76c76a..75ebacc8e4e5cb 100644 ---- a/arch/arm/mm/proc-sa1100.S -+++ b/arch/arm/mm/proc-sa1100.S -@@ -239,7 +239,7 @@ sa1100_crval: - - .align - -- .section ".proc.info.init", #alloc -+ .section ".proc.info.init", "a" - - .macro sa1100_proc_info name:req, cpu_val:req, cpu_mask:req, cpu_name:req - .type __\name\()_proc_info,#object -diff --git a/arch/arm/mm/proc-v6.S b/arch/arm/mm/proc-v6.S -index c1c85eb3484f31..1dd0d5ca27da8f 100644 ---- a/arch/arm/mm/proc-v6.S -+++ b/arch/arm/mm/proc-v6.S -@@ -261,7 +261,7 @@ v6_crval: - string cpu_elf_name, "v6" - .align - -- .section ".proc.info.init", #alloc -+ .section ".proc.info.init", "a" - - /* - * Match any ARMv6 processor core. -diff --git a/arch/arm/mm/proc-v7.S b/arch/arm/mm/proc-v7.S -index c4e8006a1a8cdd..48e0ef6f0dccfe 100644 ---- a/arch/arm/mm/proc-v7.S -+++ b/arch/arm/mm/proc-v7.S -@@ -644,7 +644,7 @@ __v7_setup_stack: - string cpu_elf_name, "v7" - .align - -- .section ".proc.info.init", #alloc -+ .section ".proc.info.init", "a" - - /* - * Standard v7 proc info content -diff --git a/arch/arm/mm/proc-v7m.S b/arch/arm/mm/proc-v7m.S -index 1a49d503eafc80..84459c1d31b87f 100644 ---- a/arch/arm/mm/proc-v7m.S -+++ b/arch/arm/mm/proc-v7m.S -@@ -93,7 +93,7 @@ ENTRY(cpu_cm7_proc_fin) - ret lr - ENDPROC(cpu_cm7_proc_fin) - -- .section ".init.text", #alloc, #execinstr -+ .section ".init.text", "ax" - - __v7m_cm7_setup: - mov r8, #(V7M_SCB_CCR_DC | V7M_SCB_CCR_IC| V7M_SCB_CCR_BP) -@@ -177,7 +177,7 @@ ENDPROC(__v7m_setup) - string cpu_elf_name "v7m" - string cpu_v7m_name "ARMv7-M" - -- .section ".proc.info.init", #alloc -+ .section ".proc.info.init", "a" - - .macro __v7m_proc name, initfunc, cache_fns = nop_cache_fns, hwcaps = 0, proc_fns = v7m_processor_functions - .long 0 /* proc_info_list.__cpu_mm_mmu_flags */ -diff --git a/arch/arm/mm/proc-xsc3.S b/arch/arm/mm/proc-xsc3.S -index 1ac0fbbe9f127f..42eaecc43cfeff 100644 ---- a/arch/arm/mm/proc-xsc3.S -+++ b/arch/arm/mm/proc-xsc3.S -@@ -496,7 +496,7 @@ xsc3_crval: - - .align - -- .section ".proc.info.init", #alloc -+ .section ".proc.info.init", "a" - - .macro xsc3_proc_info name:req, cpu_val:req, cpu_mask:req - .type __\name\()_proc_info,#object -diff --git a/arch/arm/mm/proc-xscale.S b/arch/arm/mm/proc-xscale.S -index bdb2b7749b0393..18ac5a1f892258 100644 ---- a/arch/arm/mm/proc-xscale.S -+++ b/arch/arm/mm/proc-xscale.S -@@ -610,7 +610,7 @@ xscale_crval: - - .align - -- .section ".proc.info.init", #alloc -+ .section ".proc.info.init", "a" - - .macro xscale_proc_info name:req, cpu_val:req, cpu_mask:req, cpu_name:req, cache - .type __\name\()_proc_info,#object diff --git a/user/linux-rm/brcmfmac-disable-power-management.patch b/user/linux-rm/brcmfmac-disable-power-management.patch deleted file mode 100644 index 2d48b3f..0000000 --- a/user/linux-rm/brcmfmac-disable-power-management.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/./drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c.orig b/./drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c -index f507d82..6c06044 100644 ---- a/./drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c.orig -+++ b/./drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c -@@ -2743,6 +2743,8 @@ brcmf_cfg80211_set_power_mgmt(struct wiphy *wiphy, struct net_device *ndev, - * preference in cfg struct to apply this to - * FW later while initializing the dongle - */ -+ pr_info("power management disabled\n"); -+ enabled = false; - cfg->pwr_save = enabled; - if (!check_vif_up(ifp->vif)) { - diff --git a/user/linux-rm/brcmfmac-fix-suspend-resume-when-power-is-cut-off.patch b/user/linux-rm/brcmfmac-fix-suspend-resume-when-power-is-cut-off.patch deleted file mode 100644 index 713c034..0000000 --- a/user/linux-rm/brcmfmac-fix-suspend-resume-when-power-is-cut-off.patch +++ /dev/null @@ -1,221 +0,0 @@ -From patchwork Wed Sep 25 13:44:57 2019 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Adrian Ratiu -X-Patchwork-Id: 11160709 -X-Patchwork-Delegate: kvalo@adurom.com -Return-Path: -Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org - [172.30.200.123]) - by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id E6264924 - for ; - Wed, 25 Sep 2019 13:45:07 +0000 (UTC) -Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) - by mail.kernel.org (Postfix) with ESMTP id CEE8421D7E - for ; - Wed, 25 Sep 2019 13:45:07 +0000 (UTC) -Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand - id S2406776AbfIYNo5 (ORCPT - ); - Wed, 25 Sep 2019 09:44:57 -0400 -Received: from bhuna.collabora.co.uk ([46.235.227.227]:57998 "EHLO - bhuna.collabora.co.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org - with ESMTP id S2406646AbfIYNo5 (ORCPT - ); - Wed, 25 Sep 2019 09:44:57 -0400 -Received: from [127.0.0.1] (localhost [127.0.0.1]) - (Authenticated sender: aratiu) - with ESMTPSA id 34818280400 -From: Adrian Ratiu -To: brcm80211-dev-list.pdl@broadcom.com -Cc: linux-wireless@vger.kernel.org, netdev@vger.kernel.org, - linux-kernel@vger.kernel.org, - Martyn Welch -Subject: [PATCH 1/2] brcmfmac: don't WARN when there are no requests -Date: Wed, 25 Sep 2019 16:44:57 +0300 -Message-Id: <20190925134458.1413790-1-adrian.ratiu@collabora.com> -X-Mailer: git-send-email 2.23.0 -MIME-Version: 1.0 -Sender: linux-wireless-owner@vger.kernel.org -Precedence: bulk -List-ID: -X-Mailing-List: linux-wireless@vger.kernel.org - -When n_reqs == 0 there is nothing to do so it doesn't make sense to -search for requests and issue a warning because none is found. - -Signed-off-by: Martyn Welch -Signed-off-by: Adrian Ratiu ---- - drivers/net/wireless/broadcom/brcm80211/brcmfmac/pno.c | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pno.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pno.c -index 14e530601ef3..fabfbb0b40b0 100644 ---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pno.c -+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pno.c -@@ -57,6 +57,10 @@ static int brcmf_pno_remove_request(struct brcmf_pno_info *pi, u64 reqid) - - mutex_lock(&pi->req_lock); - -+ /* Nothing to do if we have no requests */ -+ if (pi->n_reqs == 0) -+ goto done; -+ - /* find request */ - for (i = 0; i < pi->n_reqs; i++) { - if (pi->reqs[i]->reqid == reqid) - -From patchwork Wed Sep 25 13:44:58 2019 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Adrian Ratiu -X-Patchwork-Id: 11160707 -X-Patchwork-Delegate: kvalo@adurom.com -Return-Path: -Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org - [172.30.200.123]) - by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 47A3C14DB - for ; - Wed, 25 Sep 2019 13:45:03 +0000 (UTC) -Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) - by mail.kernel.org (Postfix) with ESMTP id 2F3CC21D7F - for ; - Wed, 25 Sep 2019 13:45:03 +0000 (UTC) -Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand - id S2406832AbfIYNo6 (ORCPT - ); - Wed, 25 Sep 2019 09:44:58 -0400 -Received: from bhuna.collabora.co.uk ([46.235.227.227]:58004 "EHLO - bhuna.collabora.co.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org - with ESMTP id S2406650AbfIYNo5 (ORCPT - ); - Wed, 25 Sep 2019 09:44:57 -0400 -Received: from [127.0.0.1] (localhost [127.0.0.1]) - (Authenticated sender: aratiu) - with ESMTPSA id 8EFA628BCCF -From: Adrian Ratiu -To: brcm80211-dev-list.pdl@broadcom.com -Cc: linux-wireless@vger.kernel.org, netdev@vger.kernel.org, - linux-kernel@vger.kernel.org, - Gustavo Padovan -Subject: [PATCH 2/2] brcmfmac: fix suspend/resume when power is cut off -Date: Wed, 25 Sep 2019 16:44:58 +0300 -Message-Id: <20190925134458.1413790-2-adrian.ratiu@collabora.com> -X-Mailer: git-send-email 2.23.0 -In-Reply-To: <20190925134458.1413790-1-adrian.ratiu@collabora.com> -References: <20190925134458.1413790-1-adrian.ratiu@collabora.com> -MIME-Version: 1.0 -Sender: linux-wireless-owner@vger.kernel.org -Precedence: bulk -List-ID: -X-Mailing-List: linux-wireless@vger.kernel.org - -brcmfmac assumed the wifi device always remains powered on and thus -hardcoded the MMC_PM_KEEP_POWER flag expecting the wifi device to -remain on even during suspend/resume cycles. - -This is not always the case, some appliances cut power to everything -connected via SDIO for efficiency reasons and this leads to wifi not -being usable after coming out of suspend because the device was not -correctly reinitialized. - -So we check for the keep_power capability and if it's not present then -we remove the device and probe it again during resume to mirror what's -happening in hardware and ensure correct reinitialization in the case -when MMC_PM_KEEP_POWER is not supported. - -Suggested-by: Gustavo Padovan -Signed-off-by: Adrian Ratiu ---- - .../broadcom/brcm80211/brcmfmac/bcmsdh.c | 53 ++++++++++++++----- - 1 file changed, 39 insertions(+), 14 deletions(-) - -diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c -index 987731b..dac4685 100644 ---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c -+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c -@@ -1136,7 +1136,8 @@ static int brcmf_ops_sdio_suspend(struct device *dev) - struct sdio_func *func; - struct brcmf_bus *bus_if; - struct brcmf_sdio_dev *sdiodev; -- mmc_pm_flag_t sdio_flags; -+ mmc_pm_flag_t pm_caps, sdio_flags; -+ int ret = 0; - struct brcmf_cfg80211_info *config; - int retry = BRCMF_PM_WAIT_MAXRETRY; - -@@ -1159,19 +1160,33 @@ static int brcmf_ops_sdio_suspend(struct device *dev) - - sdiodev = bus_if->bus_priv.sdio; - -- brcmf_sdiod_freezer_on(sdiodev); -- brcmf_sdio_wd_timer(sdiodev->bus, 0); -- -- sdio_flags = MMC_PM_KEEP_POWER; -- if (sdiodev->wowl_enabled) { -- if (sdiodev->settings->bus.sdio.oob_irq_supported) -- enable_irq_wake(sdiodev->settings->bus.sdio.oob_irq_nr); -- else -- sdio_flags |= MMC_PM_WAKE_SDIO_IRQ; -+ pm_caps = sdio_get_host_pm_caps(func); -+ -+ if (pm_caps & MMC_PM_KEEP_POWER) { -+ /* preserve card power during suspend */ -+ brcmf_sdiod_freezer_on(sdiodev); -+ brcmf_sdio_wd_timer(sdiodev->bus, 0); -+ -+ sdio_flags = MMC_PM_KEEP_POWER; -+ if (sdiodev->wowl_enabled) { -+ if (sdiodev->settings->bus.sdio.oob_irq_supported) -+ enable_irq_wake(sdiodev->settings->bus.sdio.oob_irq_nr); -+ else -+ sdio_flags |= MMC_PM_WAKE_SDIO_IRQ; -+ } -+ -+ if (sdio_set_host_pm_flags(sdiodev->func1, sdio_flags)) -+ brcmf_err("Failed to set pm_flags %x\n", sdio_flags); -+ -+ } else { -+ /* power will be cut so remove device, probe again in resume */ -+ brcmf_sdiod_intr_unregister(sdiodev); -+ ret = brcmf_sdiod_remove(sdiodev); -+ if (ret) -+ brcmf_err("Failed to remove device on suspend\n"); - } -- if (sdio_set_host_pm_flags(sdiodev->func1, sdio_flags)) -- brcmf_err("Failed to set pm_flags %x\n", sdio_flags); -- return 0; -+ -+ return ret; - } - - static int brcmf_ops_sdio_resume(struct device *dev) -@@ -1179,13 +1194,23 @@ static int brcmf_ops_sdio_resume(struct device *dev) - struct brcmf_bus *bus_if = dev_get_drvdata(dev); - struct brcmf_sdio_dev *sdiodev = bus_if->bus_priv.sdio; - struct sdio_func *func = container_of(dev, struct sdio_func, dev); -+ mmc_pm_flag_t pm_caps = sdio_get_host_pm_caps(func); -+ int ret = 0; - - brcmf_dbg(SDIO, "Enter: F%d\n", func->num); - if (func->num != 2) - return 0; - -- brcmf_sdiod_freezer_off(sdiodev); -- return 0; -+ if (!(pm_caps & MMC_PM_KEEP_POWER)) { -+ /* bus was powered off and device removed, probe again */ -+ ret = brcmf_sdiod_probe(sdiodev); -+ if (ret) -+ brcmf_err("Failed to probe device on resume\n"); -+ } else { -+ brcmf_sdiod_freezer_off(sdiodev); -+ } -+ -+ return ret; - } - - static const struct dev_pm_ops brcmf_sdio_pm_ops = { diff --git a/user/linux-rm/config-changes-rm.armhf b/user/linux-rm/config-changes-rm.armhf deleted file mode 120000 index 6c4e6a5..0000000 --- a/user/linux-rm/config-changes-rm.armhf +++ /dev/null @@ -1 +0,0 @@ -config-changes-rm.armv7 \ No newline at end of file diff --git a/user/linux-rm/config-changes-rm.armv7 b/user/linux-rm/config-changes-rm.armv7 deleted file mode 100644 index fa272a1..0000000 --- a/user/linux-rm/config-changes-rm.armv7 +++ /dev/null @@ -1,62 +0,0 @@ -# format is config=command -# where command can be one of: -# y,n,m,", -# from remarkable-microsd project -# see http://www.davisr.me/projects/remarkable-microsd/ -CONFIG_RTL_CARDS=y -CONFIG_BATTERY_BQ27XXX=y -CONFIG_BATTERY_BQ27XXX_I2C=y -CONFIG_CRYPTO_AEAD=y -CONFIG_CRYPTO_GF128MUL=y -CONFIG_CRYPTO_NULL=y -CONFIG_CRYPTO_SEQIV=y -CONFIG_CRYPTO_CTR=y -CONFIG_CRYPTO_GHASH=y -# serial through USB -CONFIG_USB_ACM=y -CONFIG_USB_F_ACM=y -CONFIG_USB_U_SERIAL=y -CONFIG_USB_CDC_COMPOSITE=y -# console through serial -CONFIG_USB_G_SERIAL=y -CONFIG_U_SERIAL_CONSOLE=y -# wifi module doesn't load early enough for lack of initramfs -CONFIG_CFG80211=m -CONFIG_MAC80211=m -CONFIG_BRCMFMAC=m -CONFIG_BRCMUTIL=m -# iwd requires these modules -CONFIG_CRYPTO_AES=y -CONFIG_CRYPTO_USER_API_HASH=y -CONFIG_CRYPTO_USER_API_SKCIPHER=y -CONFIG_KEY_DH_OPERATIONS=y -CONFIG_CRYPTO_ECB=y -CONFIG_CRYPTO_MD4=y -CONFIG_CRYPTO_MD5=y -CONFIG_CRYPTO_CBC=y -CONFIG_CRYPTO_SHA256=y -CONFIG_CRYPTO_DES=y -CONFIG_CRYPTO_CMAC=y -CONFIG_CRYPTO_HMAC=y -CONFIG_CRYPTO_SHA512=y -CONFIG_CRYPTO_SHA1=y -# other -LOCALVERSION="" -CONFIG_DEFAULT_HOSTNAME="remarkable" -CONFIG_MODULE_UNLOAD=y -# f2fs support -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=n -CONFIG_F2FS_IO_TRACE=n -CONFIG_F2FS_FAULT_INJECTION=n -CONFIG_F2FS_FS_COMPRESSION=y -CONFIG_F2FS_FS_LZO=y -CONFIG_F2FS_FS_LZ4=y -CONFIG_F2FS_FS_ZSTD=y -CONFIG_F2FS_FS_LZORLE=y -# disabled as breaks build -CONFIG_MXC_GPU_VIV=n diff --git a/user/linux-rm/config-changes-rm2.armhf b/user/linux-rm/config-changes-rm2.armhf deleted file mode 120000 index 6c4e6a5..0000000 --- a/user/linux-rm/config-changes-rm2.armhf +++ /dev/null @@ -1 +0,0 @@ -config-changes-rm.armv7 \ No newline at end of file diff --git a/user/linux-rm/config-changes-rm2.armv7 b/user/linux-rm/config-changes-rm2.armv7 deleted file mode 120000 index 6c4e6a5..0000000 --- a/user/linux-rm/config-changes-rm2.armv7 +++ /dev/null @@ -1 +0,0 @@ -config-changes-rm.armv7 \ No newline at end of file diff --git a/user/linux-rm/enable-automatic-partial-refreshing.patch b/user/linux-rm/enable-automatic-partial-refreshing.patch deleted file mode 100644 index e78bc13..0000000 --- a/user/linux-rm/enable-automatic-partial-refreshing.patch +++ /dev/null @@ -1,26 +0,0 @@ -diff --git a/drivers/video/fbdev/mxc/mxc_epdc_fb.c.orig b/drivers/video/fbdev/mxc/mxc_epdc_fb.c -index 5c7d87d..5c31379 100644 ---- a/drivers/video/fbdev/mxc/mxc_epdc_fb.c.orig -+++ b/drivers/video/fbdev/mxc/mxc_epdc_fb.c -@@ -3489,10 +3489,10 @@ static void mxc_epdc_fb_update_pages(struct mxc_epdc_fb_data *fb_data, - update.update_region.top = y1; - update.update_region.height = y2 - y1; - update.waveform_mode = WAVEFORM_MODE_AUTO; -- update.update_mode = UPDATE_MODE_FULL; -+ update.update_mode = UPDATE_MODE_PARTIAL; - update.update_marker = 0; - update.temp = TEMP_USE_AMBIENT; -- update.flags = 0; -+ update.flags = EPDC_FLAG_USE_REGAL; - - mxc_epdc_fb_send_update(&update, &fb_data->info); - } -@@ -3687,7 +3687,7 @@ static struct fb_ops mxc_epdc_fb_ops = { - }; - - static struct fb_deferred_io mxc_epdc_fb_defio = { -- .delay = HZ, -+ .delay = HZ / 30, - .deferred_io = mxc_epdc_fb_deferred_io, - }; - diff --git a/user/linux-rm/enable-sdhc1.patch b/user/linux-rm/enable-sdhc1.patch deleted file mode 100644 index 31c2b72..0000000 --- a/user/linux-rm/enable-sdhc1.patch +++ /dev/null @@ -1,790 +0,0 @@ -diff --git a/arch/arm/boot/dts/zero-gravitas.dts b/arch/arm/boot/dts/zero-gravitas.dts -index f51edfdedf8a..947f43c3434c 100644 ---- a/arch/arm/boot/dts/zero-gravitas.dts -+++ b/arch/arm/boot/dts/zero-gravitas.dts -@@ -1,6 +1,783 @@ --#include "zero-gravitas-factory.dts" -+/* -+ * Copyright (C) 2013 Freescale Semiconductor, Inc. -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License version 2 as -+ * published by the Free Software Foundation. -+ */ -+ -+/dts-v1/; -+ -+#include -+#include -+#include "imx6sl.dtsi" -+#include "zero-gravitas-padctl.h" -+ -+/ { -+ model = "reMarkable 1.0"; -+ compatible = "remarkable,zero-gravitas", "fsl,imx6sl"; -+ -+ memory { -+ reg = <0x80000000 0x20000000>; -+ }; -+ -+ wifi_pwrseq: wifi_pwrseq { -+ compatible = "mmc-pwrseq-simple"; -+ reset-gpios = <&gpio3 30 GPIO_ACTIVE_LOW>, -+ <&gpio4 0 GPIO_ACTIVE_LOW>; -+ clocks = <&clks IMX6SL_CLK_OSC>; -+ clock-names = "ext_clock"; -+ }; -+ -+ regulators { -+ compatible = "simple-bus"; -+ #address-cells = <1>; -+ #size-cells = <0>; -+ -+ reg_usb_otg1_vbus: regulator@0 { -+ compatible = "regulator-fixed"; -+ reg = <0>; -+ regulator-name = "usb_otg1_vbus"; -+ regulator-min-microvolt = <5000000>; -+ regulator-max-microvolt = <5000000>; -+ gpio = <&gpio4 15 0>; -+ enable-active-high; -+ vin-supply = <&swbst_reg>; -+ }; -+ -+ charger_regulator: regulator@1 { -+ reg = <1>; -+ compatible = "regulator-fixed"; -+ regulator-name = "charger-regulator"; -+ regulator-min-microamp = <5000000>; -+ regulator-max-microamp = <5000000>; -+ gpios = <&gpio3 27 GPIO_ACTIVE_LOW>; -+ enable-active-high; /* Don't invert twice */ -+ regulator-boot-on; -+ status = "disabled"; -+ }; -+ }; -+ -+ wacom_reset: wacom-reset { -+ compatible = "gpio-reset"; -+ reset-gpios = <&gpio4 4 1>; -+ reset-delay-us = <100000>; -+ #reset-cells = <0>; -+ }; -+ -+ gpio-keys { -+ compatible = "gpio-keys"; -+ pinctrl-0 = <&pinctrl_keys>; -+ pinctrl-names = "default"; -+ status = "okay"; -+ -+ button_0 { -+ label = "Power"; -+ gpios = <&gpio4 9 GPIO_ACTIVE_LOW>; -+ linux,code = ; -+ gpio-key,wakeup; -+ debounce-interval = <10>; -+ }; -+ -+ button_1 { -+ label = "Left"; -+ gpios = <&gpio3 24 GPIO_ACTIVE_LOW>; -+ linux,code = ; -+ gpio-key,wakeup; -+ debounce-interval = <5>; -+ }; -+ -+ button_2 { -+ label = "Home"; -+ gpios = <&gpio3 26 GPIO_ACTIVE_LOW>; -+ linux,code = ; -+ gpio-key,wakeup; -+ debounce-interval = <5>; -+ }; -+ button_3 { -+ label = "Right"; -+ gpios = <&gpio3 28 GPIO_ACTIVE_LOW>; -+ linux,code = ; -+ gpio-key,wakeup; -+ debounce-interval = <5>; -+ }; -+ button_4 { -+ label = "LowPower"; -+ gpios = <&gpio3 31 GPIO_ACTIVE_LOW>; -+ linux,code = ; -+ gpio-key,wakeup; -+ debounce-interval = <100>; -+ }; -+ }; -+ -+ usb_charger: usb_charger { -+ compatible = "gpio-charger"; -+ gpios = <&gpio4 1 0>; -+ status = "disabled"; -+ }; -+}; -+ -+&epdc { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&pinctrl_epdc_0>; -+ VCOM-supply = <&VCOM_reg>; -+ DISPLAY-supply = <&DISPLAY_reg>; -+ TMST-supply = <&TMST_reg>; -+ status = "okay"; -+}; -+ -+&gpc { -+ fsl,ldo-bypass = <1>; -+}; -+ -+®_arm { -+ vin-supply = <&sw1a_reg>; -+ regulator-allow-bypass; -+}; -+ -+®_soc { -+ vin-supply = <&sw1c_reg>; -+ regulator-allow-bypass; -+}; -+ -+®_pu { -+ vin-supply = <&sw1c_reg>; -+ regulator-allow-bypass; -+}; -+ -+&i2c1 { -+ clock-frequency = <100000>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&pinctrl_i2c1>; -+ status = "okay"; -+ -+ battery: bq27441@55 { -+ reg = <0x55>; -+ compatible = "ti,bq27441"; -+ /*power-supplies = <&usb_charger>;*/ -+ /*charger-supply = <&charger_regulator>;*/ -+ /*interrupt-parent = <&gpio3>; -+ interrupts = <31 IRQ_TYPE_LEVEL_HIGH>;*/ -+ ti,resistor-sense = <10>; -+ }; -+ -+ pmic: pfuze100@8 { -+ compatible = "fsl,pfuze100"; -+ reg = <0x08>; -+ -+ regulators { -+ sw1a_reg: sw1ab { -+ regulator-min-microvolt = <300000>; -+ regulator-max-microvolt = <1875000>; -+ regulator-boot-on; -+ regulator-always-on; -+ regulator-ramp-delay = <6250>; -+ }; -+ -+ sw1c_reg: sw1c { -+ regulator-min-microvolt = <300000>; -+ regulator-max-microvolt = <1875000>; -+ regulator-boot-on; -+ regulator-always-on; -+ regulator-ramp-delay = <6250>; -+ }; -+ -+ sw2_reg: sw2 { -+ regulator-min-microvolt = <400000>; -+ regulator-max-microvolt = <3300000>; -+ regulator-boot-on; -+ regulator-always-on; -+ }; -+ -+ sw3a_reg: sw3a { -+ regulator-min-microvolt = <400000>; -+ regulator-max-microvolt = <1975000>; -+ regulator-boot-on; -+ regulator-always-on; -+ }; -+ -+ sw3b_reg: sw3b { -+ regulator-min-microvolt = <400000>; -+ regulator-max-microvolt = <1975000>; -+ regulator-boot-on; -+ regulator-always-on; -+ }; -+ -+ sw4_reg: sw4 { -+ regulator-min-microvolt = <800000>; -+ regulator-max-microvolt = <3300000>; -+ }; -+ -+ swbst_reg: swbst { -+ regulator-min-microvolt = <5000000>; -+ regulator-max-microvolt = <5150000>; -+ }; -+ -+ snvs_reg: vsnvs { -+ regulator-min-microvolt = <1000000>; -+ regulator-max-microvolt = <3000000>; -+ regulator-boot-on; -+ regulator-always-on; -+ }; -+ -+ vref_reg: vrefddr { -+ regulator-boot-on; -+ regulator-always-on; -+ }; -+ -+ vgen1_reg: vgen1 { -+ regulator-min-microvolt = <800000>; -+ regulator-max-microvolt = <1550000>; -+ regulator-always-on; -+ }; -+ -+ vgen2_reg: vgen2 { -+ regulator-min-microvolt = <800000>; -+ regulator-max-microvolt = <1550000>; -+ }; -+ -+ vgen3_reg: vgen3 { -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <3300000>; -+ }; -+ -+ vgen4_reg: vgen4 { -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <3300000>; -+ regulator-always-on; -+ }; -+ -+ vgen5_reg: vgen5 { -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <3300000>; -+ regulator-always-on; -+ }; -+ -+ vgen6_reg: vgen6 { -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <3300000>; -+ regulator-always-on; -+ }; -+ }; -+ }; -+ -+ max17135@48 { -+ compatible = "maxim,max17135"; -+ reg = <0x48>; -+ pass_num = <2>; -+ gvee_pwrup = <0>; /* ms */ -+ vneg_pwrup = <3>; -+ vpos_pwrup = <6>; -+ gvdd_pwrup = <3>; -+ -+ gvdd_pwrdn = <1>; -+ vpos_pwrdn = <2>; -+ vneg_pwrdn = <6>; -+ gvee_pwrdn = <50>; -+ /* These are only for passnum 1, we use i2c */ -+ gpio_pmic_pwrgood = <&gpio2 13 0>; -+ gpio_pmic_vcom_ctrl = <&gpio2 3 0>; -+ gpio_pmic_wakeup = <&gpio2 14 0>; -+ gpio_pmic_v3p3 = <&gpio2 7 0>; -+ gpio_pmic_intr = <&gpio2 12 0>; -+ -+ regulators { -+ DISPLAY_reg: DISPLAY { -+ regulator-name = "DISPLAY"; -+ }; -+ -+ GVDD_reg: GVDD { -+ /* 20v */ -+ regulator-name = "GVDD"; -+ }; -+ -+ GVEE_reg: GVEE { -+ /* -22v */ -+ regulator-name = "GVEE"; -+ }; -+ -+ HVINN_reg: HVINN { -+ /* -22v */ -+ regulator-name = "HVINN"; -+ }; -+ -+ HVINP_reg: HVINP { -+ /* 20v */ -+ regulator-name = "HVINP"; -+ }; -+ -+ VCOM_reg: VCOM { -+ regulator-name = "VCOM"; -+ /* Real max value: -500000 */ -+ regulator-max-microvolt = <4325000>; -+ /* Real min value: -4325000 */ -+ regulator-min-microvolt = <500000>; -+ }; -+ -+ VNEG_reg: VNEG { -+ /* -15v */ -+ regulator-name = "VNEG"; -+ }; -+ -+ VPOS_reg: VPOS { -+ /* 15v */ -+ regulator-name = "VPOS"; -+ }; -+ -+ TMST_reg: TMST { -+ regulator-name = "TMST"; -+ /* 2's-compliment, -127 */ -+ regulator-min-microvolt = <0xffffff81>; -+ /* 2's-compliment, +127 */ -+ regulator-max-microvolt = <0x0000007f>; -+ }; -+ }; -+ }; -+ -+}; -+ -+&i2c2 { -+ clock-frequency = <100000>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&pinctrl_i2c2>; -+ status = "okay"; -+ -+ digitizer: wacom-i2c@9 { -+ compatible = "wacom,wacom-i2c"; -+ reg = <0x09>; -+ interrupt-parent = <&gpio2>; -+ interrupts = <10 2>; -+ resets = <&wacom_reset>; -+ }; -+}; -+ -+&i2c3 { -+ clock-frequency = <100000>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&pinctrl_i2c3>; -+ status = "okay"; -+ -+ tsc@24 { -+ compatible = "cy,cyttsp5_i2c_adapter"; -+ reg = <0x24>; -+ interrupt-parent = <&gpio4>; -+ interrupts = <3 2>; -+ cy,adapter_id = "cyttsp5_i2c_adapter"; -+ status = "okay"; -+ -+ cy,core { -+ cy,name = "cyttsp5_core"; -+ -+ cy,irq_gpio = <&gpio4 3 0>; -+ cy,rst_gpio = <&gpio4 5 0>; -+ cy,hid_desc_register = <1>; -+ /* CY_CORE_FLAG_RESTORE_PARAMETERS */ -+ cy,flags = <4>; -+ /* CY_CORE_EWG_NONE */ -+ cy,easy_wakeup_gesture = <0>; -+ cy,btn_keys = <172 /* KEY_HOMEPAGE */ -+ /* previously was KEY_HOME, new Android versions use KEY_HOMEPAGE */ -+ 139 /* KEY_MENU */ -+ 158 /* KEY_BACK */ -+ 217 /* KEY_SEARCH */ -+ 114 /* KEY_VOLUMEDOWN */ -+ 115 /* KEY_VOLUMEUP */ -+ 212 /* KEY_CAMERA */ -+ 116>; /* KEY_POWER */ -+ cy,btn_keys-tag = <0>; -+ -+ cy,mt { -+ cy,name = "cyttsp5_mt"; -+ -+ cy,inp_dev_name = "cyttsp5_mt"; -+ cy,flags = <0>; -+ cy,abs = -+ /* ABS_MT_POSITION_X, CY_ABS_MIN_X, CY_ABS_MAX_X, 0, 0 */ -+ <0x35 0 880 0 0 -+ /* ABS_MT_POSITION_Y, CY_ABS_MIN_Y, CY_ABS_MAX_Y, 0, 0 */ -+ 0x36 0 1280 0 0 -+ /* ABS_MT_PRESSURE, CY_ABS_MIN_P, CY_ABS_MAX_P, 0, 0 */ -+ 0x3a 0 255 0 0 -+ /* CY_IGNORE_VALUE, CY_ABS_MIN_W, CY_ABS_MAX_W, 0, 0 */ -+ 0xffff 0 255 0 0 -+ /* ABS_MT_TRACKING_ID, CY_ABS_MIN_T, CY_ABS_MAX_T, 0, 0 */ -+ 0x39 0 15 0 0 -+ /* ABS_MT_TOUCH_MAJOR, 0, 255, 0, 0 */ -+ 0x30 0 255 0 0 -+ /* ABS_MT_TOUCH_MINOR, 0, 255, 0, 0 */ -+ 0x31 0 255 0 0 -+ /* ABS_MT_ORIENTATION, -127, 127, 0, 0 */ -+ 0x34 0xffffff81 127 0 0 -+ /* ABS_MT_TOOL_TYPE, 0, MT_TOOL_MAX, 0, 0 */ -+ 0x37 0 1 0 0 -+ /* ABS_DISTANCE, 0, 255, 0, 0 */ -+ 0x19 0 255 0 0>; -+ -+ cy,vkeys_x = <720>; -+ cy,vkeys_y = <1280>; -+ -+ cy,virtual_keys = /* KeyCode CenterX CenterY Width Height */ -+ /* KEY_BACK */ -+ <158 1360 90 160 180 -+ /* KEY_MENU */ -+ 139 1360 270 160 180 -+ /* KEY_HOMEPAGE */ -+ 172 1360 450 160 180 -+ /* KEY SEARCH */ -+ 217 1360 630 160 180>; -+ }; -+ }; -+ }; -+}; -+ -+&iomuxc { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&pinctrl_hog>; -+ -+ zero-gravitas { -+ pinctrl_hog: hoggrp { -+ fsl,pins = < -+ /* MAX17135 pwrgood */ -+ MX6SL_PAD_EPDC_PWRSTAT__GPIO2_IO13 PAD_CTL_NONE -+ /* MAX17135 vcom ctrl */ -+ MX6SL_PAD_EPDC_VCOM0__GPIO2_IO03 PAD_CTL_NONE -+ /* MAX17135 wakeup */ -+ MX6SL_PAD_EPDC_PWRWAKEUP__GPIO2_IO14 PAD_CTL_NONE -+ /* MAX17135 v3p3 */ -+ MX6SL_PAD_EPDC_PWRCTRL0__GPIO2_IO07 PAD_CTL_NONE -+ /* MAX17135 intr */ -+ MX6SL_PAD_EPDC_PWRINT__GPIO2_IO12 PAD_CTL_NONE -+ -+ /* BQ27441 low power */ -+ MX6SL_PAD_KEY_ROW3__GPIO3_IO31 0x17000 -+ -+ /* Wacom interrupt */ -+ MX6SL_PAD_EPDC_PWRCTRL3__GPIO2_IO10 0x17000 -+ /* Wacom reset */ -+ MX6SL_PAD_KEY_COL6__GPIO4_IO04 0x110b0 -+ -+ /* CYTTSP interrupt */ -+ MX6SL_PAD_KEY_ROW5__GPIO4_IO03 0x17000 -+ /* CYTTSP reset */ -+ MX6SL_PAD_KEY_ROW6__GPIO4_IO05 0x110b0 -+ -+ /* USB OTG1 voltage control */ -+ /*MX6SL_PAD_ECSPI2_SS0__GPIO4_IO15 0x17000*/ -+ /*MX6SL_PAD_ECSPI2_SS0__GPIO4_IO15 0x000b0*/ -+ MX6SL_PAD_ECSPI2_SS0__GPIO4_IO15 PAD_CTL_NONE -+ /*MX6SL_PAD_ECSPI2_SS0__USB_OTG1_PWR 0x17000*/ -+ /* USB OTG1 over current detection */ -+ MX6SL_PAD_ECSPI2_MISO__USB_OTG1_OC 0x1b0b0 -+ -+ /* Charger control */ -+ MX6SL_PAD_KEY_ROW1__GPIO3_IO27 0x110b0 -+ /* Charger status */ -+ MX6SL_PAD_KEY_ROW4__GPIO4_IO01 PAD_CTL_NONE -+ -+ /* USDHC1 card detect */ -+ MX6SL_PAD_KEY_ROW7__GPIO4_IO07 0x17059 -+ -+ /* CHIP_WAKE_HOST */ -+ MX6SL_PAD_KEY_COL5__GPIO4_IO02 PAD_CTL_NONE -+ /* POWER_WIFI: WiFi external power control */ -+ MX6SL_PAD_KEY_COL3__GPIO3_IO30 PAD_CTL_NONE -+ /* WL_DIS: WiFi internal power control */ -+ MX6SL_PAD_KEY_COL4__GPIO4_IO00 PAD_CTL_NONE -+ -+ /* 32Khz clock from i.MX6 to WiFi for power saving */ -+ MX6SL_PAD_REF_CLK_32K__XTALOSC_REF_CLK_32K 0x1b0b0 -+ >; -+ }; -+ -+ pinctrl_epdc_0: epdcgrp-0 { -+ fsl,pins = < -+ MX6SL_PAD_EPDC_D0__EPDC_DATA00 PAD_CTL_NONE -+ MX6SL_PAD_EPDC_D1__EPDC_DATA01 PAD_CTL_NONE -+ MX6SL_PAD_EPDC_D2__EPDC_DATA02 PAD_CTL_NONE -+ MX6SL_PAD_EPDC_D3__EPDC_DATA03 PAD_CTL_NONE -+ MX6SL_PAD_EPDC_D4__EPDC_DATA04 PAD_CTL_NONE -+ MX6SL_PAD_EPDC_D5__EPDC_DATA05 PAD_CTL_NONE -+ MX6SL_PAD_EPDC_D6__EPDC_DATA06 PAD_CTL_NONE -+ MX6SL_PAD_EPDC_D7__EPDC_DATA07 PAD_CTL_NONE -+ MX6SL_PAD_EPDC_D8__EPDC_DATA08 PAD_CTL_NONE -+ MX6SL_PAD_EPDC_D9__EPDC_DATA09 PAD_CTL_NONE -+ MX6SL_PAD_EPDC_D10__EPDC_DATA10 PAD_CTL_NONE -+ MX6SL_PAD_EPDC_D11__EPDC_DATA11 PAD_CTL_NONE -+ MX6SL_PAD_EPDC_D12__EPDC_DATA12 PAD_CTL_NONE -+ MX6SL_PAD_EPDC_D13__EPDC_DATA13 PAD_CTL_NONE -+ MX6SL_PAD_EPDC_D14__EPDC_DATA14 PAD_CTL_NONE -+ MX6SL_PAD_EPDC_D15__EPDC_DATA15 PAD_CTL_NONE -+ MX6SL_PAD_EPDC_GDCLK__EPDC_GDCLK PAD_CTL_NONE -+ MX6SL_PAD_EPDC_GDOE__EPDC_GDOE PAD_CTL_NONE -+ MX6SL_PAD_EPDC_GDSP__EPDC_GDSP PAD_CTL_NONE -+ MX6SL_PAD_EPDC_SDCE0__EPDC_SDCE0 PAD_CTL_NONE -+ MX6SL_PAD_EPDC_SDCLK__EPDC_SDCLK_P PAD_CTL_NONE -+ MX6SL_PAD_EPDC_SDLE__EPDC_SDLE PAD_CTL_NONE -+ MX6SL_PAD_EPDC_SDOE__EPDC_SDOE PAD_CTL_NONE -+ MX6SL_PAD_EPDC_BDR0__EPDC_BDR0 PAD_CTL_NONE -+ MX6SL_PAD_EPDC_BDR1__EPDC_BDR1 PAD_CTL_NONE -+ >; -+ }; -+ -+ pinctrl_i2c1: i2c1grp { -+ fsl,pins = < -+ MX6SL_PAD_I2C1_SCL__I2C1_SCL 0x4001b8b1 -+ MX6SL_PAD_I2C1_SDA__I2C1_SDA 0x4001b8b1 -+ >; -+ }; -+ -+ -+ pinctrl_i2c2: i2c2grp { -+ fsl,pins = < -+ MX6SL_PAD_I2C2_SCL__I2C2_SCL 0x4001b8b1 -+ MX6SL_PAD_I2C2_SDA__I2C2_SDA 0x4001b8b1 -+ >; -+ }; -+ -+ pinctrl_i2c3: i2c3grp { -+ fsl,pins = < -+ MX6SL_PAD_AUD_RXFS__I2C3_SCL 0x4001b8b1 -+ MX6SL_PAD_AUD_RXC__I2C3_SDA 0x4001b8b1 -+ >; -+ }; -+ -+ pinctrl_keys: keygrp { -+ fsl,pins = < -+ MX6SL_PAD_ECSPI1_MOSI__GPIO4_IO09 0x100b1 -+ MX6SL_PAD_KEY_COL0__GPIO3_IO24 0x100b1 -+ MX6SL_PAD_KEY_COL1__GPIO3_IO26 0x100b1 -+ MX6SL_PAD_KEY_COL2__GPIO3_IO28 0x100b1 -+ >; -+ }; -+ -+ pinctrl_uart1: uart1grp { -+ fsl,pins = < -+ MX6SL_PAD_UART1_RXD__UART1_RX_DATA 0x1b0b1 -+ MX6SL_PAD_UART1_TXD__UART1_TX_DATA 0x1b0b1 -+ >; -+ }; -+ -+ pinctrl_usbotg1: usbotg1grp { -+ fsl,pins = < -+ MX6SL_PAD_EPDC_PWRCOM__USB_OTG1_ID 0x17059 -+ >; -+ }; -+ -+ pinctrl_usdhc1: usdhc1grp { -+ fsl,pins = < -+ MX6SL_PAD_SD1_CMD__SD1_CMD PAD_CTL_USDHC_DEFAULT -+ MX6SL_PAD_SD1_CLK__SD1_CLK PAD_CTL_USDHC_CLK_DEFAULT -+ MX6SL_PAD_SD1_DAT0__SD1_DATA0 PAD_CTL_USDHC_DEFAULT -+ MX6SL_PAD_SD1_DAT1__SD1_DATA1 PAD_CTL_USDHC_DEFAULT -+ MX6SL_PAD_SD1_DAT2__SD1_DATA2 PAD_CTL_USDHC_DEFAULT -+ MX6SL_PAD_SD1_DAT3__SD1_DATA3 PAD_CTL_USDHC_DEFAULT -+ >; -+ }; -+ -+ pinctrl_usdhc1_100mhz: usdhc1grp100mhz { -+ fsl,pins = < -+ MX6SL_PAD_SD1_CMD__SD1_CMD PAD_CTL_USDHC_100MHZ -+ MX6SL_PAD_SD1_CLK__SD1_CLK PAD_CTL_USDHC_CLK_100MHZ -+ MX6SL_PAD_SD1_DAT0__SD1_DATA0 PAD_CTL_USDHC_100MHZ -+ MX6SL_PAD_SD1_DAT1__SD1_DATA1 PAD_CTL_USDHC_100MHZ -+ MX6SL_PAD_SD1_DAT2__SD1_DATA2 PAD_CTL_USDHC_100MHZ -+ MX6SL_PAD_SD1_DAT3__SD1_DATA3 PAD_CTL_USDHC_100MHZ -+ >; -+ }; -+ -+ pinctrl_usdhc1_200mhz: usdhc1grp200mhz { -+ fsl,pins = < -+ MX6SL_PAD_SD1_CMD__SD1_CMD PAD_CTL_USDHC_200MHZ -+ MX6SL_PAD_SD1_CLK__SD1_CLK PAD_CTL_USDHC_CLK_200MHZ -+ MX6SL_PAD_SD1_DAT0__SD1_DATA0 PAD_CTL_USDHC_200MHZ -+ MX6SL_PAD_SD1_DAT1__SD1_DATA1 PAD_CTL_USDHC_200MHZ -+ MX6SL_PAD_SD1_DAT2__SD1_DATA2 PAD_CTL_USDHC_200MHZ -+ MX6SL_PAD_SD1_DAT3__SD1_DATA3 PAD_CTL_USDHC_200MHZ -+ >; -+ }; -+ -+ pinctrl_usdhc2: usdhc2grp { -+ fsl,pins = < -+ MX6SL_PAD_SD2_CMD__SD2_CMD PAD_CTL_USDHC_DEFAULT -+ MX6SL_PAD_SD2_CLK__SD2_CLK PAD_CTL_USDHC_CLK_DEFAULT -+ MX6SL_PAD_SD2_DAT0__SD2_DATA0 PAD_CTL_USDHC_DEFAULT -+ MX6SL_PAD_SD2_DAT1__SD2_DATA1 PAD_CTL_USDHC_DEFAULT -+ MX6SL_PAD_SD2_DAT2__SD2_DATA2 PAD_CTL_USDHC_DEFAULT -+ MX6SL_PAD_SD2_DAT3__SD2_DATA3 PAD_CTL_USDHC_DEFAULT -+ MX6SL_PAD_SD2_DAT4__SD2_DATA4 PAD_CTL_USDHC_DEFAULT -+ MX6SL_PAD_SD2_DAT5__SD2_DATA5 PAD_CTL_USDHC_DEFAULT -+ MX6SL_PAD_SD2_DAT6__SD2_DATA6 PAD_CTL_USDHC_DEFAULT -+ MX6SL_PAD_SD2_DAT7__SD2_DATA7 PAD_CTL_USDHC_DEFAULT -+ MX6SL_PAD_SD2_RST__SD2_RESET PAD_CTL_USDHC_CLK_DEFAULT -+ >; -+ }; -+ -+ pinctrl_usdhc2_100mhz: usdhc2grp100mhz { -+ fsl,pins = < -+ MX6SL_PAD_SD2_CMD__SD2_CMD PAD_CTL_USDHC_100MHZ -+ MX6SL_PAD_SD2_CLK__SD2_CLK PAD_CTL_USDHC_CLK_100MHZ -+ MX6SL_PAD_SD2_DAT0__SD2_DATA0 PAD_CTL_USDHC_100MHZ -+ MX6SL_PAD_SD2_DAT1__SD2_DATA1 PAD_CTL_USDHC_100MHZ -+ MX6SL_PAD_SD2_DAT2__SD2_DATA2 PAD_CTL_USDHC_100MHZ -+ MX6SL_PAD_SD2_DAT3__SD2_DATA3 PAD_CTL_USDHC_100MHZ -+ MX6SL_PAD_SD2_DAT4__SD2_DATA4 PAD_CTL_USDHC_100MHZ -+ MX6SL_PAD_SD2_DAT5__SD2_DATA5 PAD_CTL_USDHC_100MHZ -+ MX6SL_PAD_SD2_DAT6__SD2_DATA6 PAD_CTL_USDHC_100MHZ -+ MX6SL_PAD_SD2_DAT7__SD2_DATA7 PAD_CTL_USDHC_100MHZ -+ MX6SL_PAD_SD2_RST__SD2_RESET PAD_CTL_USDHC_CLK_DEFAULT -+ >; -+ }; -+ -+ pinctrl_usdhc2_200mhz: usdhc2grp200mhz { -+ fsl,pins = < -+ MX6SL_PAD_SD2_CMD__SD2_CMD PAD_CTL_USDHC_200MHZ -+ MX6SL_PAD_SD2_CLK__SD2_CLK PAD_CTL_USDHC_CLK_200MHZ -+ MX6SL_PAD_SD2_DAT0__SD2_DATA0 PAD_CTL_USDHC_200MHZ -+ MX6SL_PAD_SD2_DAT1__SD2_DATA1 PAD_CTL_USDHC_200MHZ -+ MX6SL_PAD_SD2_DAT2__SD2_DATA2 PAD_CTL_USDHC_200MHZ -+ MX6SL_PAD_SD2_DAT3__SD2_DATA3 PAD_CTL_USDHC_200MHZ -+ MX6SL_PAD_SD2_DAT4__SD2_DATA4 PAD_CTL_USDHC_200MHZ -+ MX6SL_PAD_SD2_DAT5__SD2_DATA5 PAD_CTL_USDHC_200MHZ -+ MX6SL_PAD_SD2_DAT6__SD2_DATA6 PAD_CTL_USDHC_200MHZ -+ MX6SL_PAD_SD2_DAT7__SD2_DATA7 PAD_CTL_USDHC_200MHZ -+ MX6SL_PAD_SD2_RST__SD2_RESET PAD_CTL_USDHC_CLK_DEFAULT -+ >; -+ }; -+ -+ pinctrl_usdhc3: usdhc3grp { -+ fsl,pins = < -+ MX6SL_PAD_SD3_CMD__SD3_CMD PAD_CTL_USDHC_DEFAULT -+ MX6SL_PAD_SD3_CLK__SD3_CLK PAD_CTL_USDHC_CLK_DEFAULT -+ MX6SL_PAD_SD3_DAT0__SD3_DATA0 PAD_CTL_USDHC_DEFAULT -+ MX6SL_PAD_SD3_DAT1__SD3_DATA1 PAD_CTL_USDHC_DEFAULT -+ MX6SL_PAD_SD3_DAT2__SD3_DATA2 PAD_CTL_USDHC_DEFAULT -+ MX6SL_PAD_SD3_DAT3__SD3_DATA3 PAD_CTL_USDHC_DEFAULT -+ >; -+ }; -+ -+ pinctrl_usdhc3_100mhz: usdhc3grp100mhz { -+ fsl,pins = < -+ MX6SL_PAD_SD3_CMD__SD3_CMD PAD_CTL_USDHC_100MHZ -+ MX6SL_PAD_SD3_CLK__SD3_CLK PAD_CTL_USDHC_CLK_100MHZ -+ MX6SL_PAD_SD3_DAT0__SD3_DATA0 PAD_CTL_USDHC_100MHZ -+ MX6SL_PAD_SD3_DAT1__SD3_DATA1 PAD_CTL_USDHC_100MHZ -+ MX6SL_PAD_SD3_DAT2__SD3_DATA2 PAD_CTL_USDHC_100MHZ -+ MX6SL_PAD_SD3_DAT3__SD3_DATA3 PAD_CTL_USDHC_100MHZ -+ >; -+ }; -+ -+ pinctrl_usdhc3_200mhz: usdhc3grp200mhz { -+ fsl,pins = < -+ MX6SL_PAD_SD3_CMD__SD3_CMD PAD_CTL_USDHC_200MHZ -+ MX6SL_PAD_SD3_CLK__SD3_CLK PAD_CTL_USDHC_CLK_200MHZ -+ MX6SL_PAD_SD3_DAT0__SD3_DATA0 PAD_CTL_USDHC_200MHZ -+ MX6SL_PAD_SD3_DAT1__SD3_DATA1 PAD_CTL_USDHC_200MHZ -+ MX6SL_PAD_SD3_DAT2__SD3_DATA2 PAD_CTL_USDHC_200MHZ -+ MX6SL_PAD_SD3_DAT3__SD3_DATA3 PAD_CTL_USDHC_200MHZ -+ >; -+ }; -+ }; -+}; -+ -+&pxp { -+ status = "okay"; -+}; -+ -+&snvs_poweroff { -+ status = "okay"; -+}; -+ -+&uart1 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&pinctrl_uart1>; -+ status = "okay"; -+}; -+ -+/*&usbmisc { -+ vbus-wakeup-supply = <®_usb_otg1_vbus>; -+};*/ - - &usbotg1 { -- vbus-supply = <®_usb_otg1_vbus>; -+ /*vbus-supply = <®_usb_otg1_vbus>;*/ -+ pinctrl-names = "default"; -+ pinctrl-0 = <&pinctrl_usbotg1>; -+ disable-over-current; -+ /* This kills the speed */ -+ imx-usb-charger-detection; -+ srp-disable; -+ hnp-disable; -+ adp-disable; -+ status = "okay"; - }; - -+&usbotg2 { -+ dr_mode = "host"; -+ disable-over-current; -+ srp-disable; -+ hnp-disable; -+ adp-disable; -+ status = "disabled"; -+}; -+ -+ -+&usbphy1 { -+ tx-d-cal = <0x5>; -+}; -+ -+&usbphy2 { -+ tx-d-cal = <0x5>; -+ status = "disabled"; -+}; -+ -+&usdhc1 { -+ pinctrl-names = "default", "state_100mhz", "state_200mhz"; -+ pinctrl-0 = <&pinctrl_usdhc1>; -+ pinctrl-1 = <&pinctrl_usdhc1_100mhz>; -+ pinctrl-2 = <&pinctrl_usdhc1_200mhz>; -+ bus-width = <4>; -+ cd-gpios = <&gpio4 7 GPIO_ACTIVE_LOW>; -+ disable-wp; -+ wp-controller; -+ keep-power-in-suspend; -+ enable-sdio-wakeup; -+ no-1-8-v; -+ status = "okay"; -+}; -+ -+&usdhc2 { -+ pinctrl-names = "default", "state_100mhz", "state_200mhz"; -+ pinctrl-0 = <&pinctrl_usdhc2>; -+ pinctrl-1 = <&pinctrl_usdhc2_100mhz>; -+ pinctrl-2 = <&pinctrl_usdhc2_200mhz>; -+ bus-width = <8>; -+ non-removable; -+ keep-power-in-suspend; -+ no-1-8-v; -+ disable-wp; -+ cap-mmc-highspeed; -+ status = "okay"; -+}; -+ -+&usdhc3 { -+ #address-cells = <1>; -+ #size-cells = <0>; -+ pinctrl-names = "default", "state_100mhz", "state_200mhz"; -+ pinctrl-0 = <&pinctrl_usdhc3>; -+ pinctrl-1 = <&pinctrl_usdhc3_100mhz>; -+ pinctrl-2 = <&pinctrl_usdhc3_200mhz>; -+ mmc-pwrseq = <&wifi_pwrseq>; -+ bus-width = <4>; -+ enable-sdio-wakeup; -+ non-removable; -+ disable-wp; -+ no-1-8-v; -+ wifi-host; -+ keep-power-in-suspend; -+ status = "okay"; -+ -+ brcmf: bcrmf@1 { -+ reg = <1>; -+ compatible = "brcm,bcm4329-fmac"; -+ /*resets = <&wifi_reset>;*/ -+ }; -+}; From 494a4e9ebd58b500645ca49457f76e7e5fe1c345 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 19:20:03 -0400 Subject: [PATCH 075/210] user/linux-rm-headers: drop for pmos --- user/linux-rm-headers/APKBUILD | 40 ---------------------------------- 1 file changed, 40 deletions(-) delete mode 100644 user/linux-rm-headers/APKBUILD diff --git a/user/linux-rm-headers/APKBUILD b/user/linux-rm-headers/APKBUILD deleted file mode 100644 index 0e34b2d..0000000 --- a/user/linux-rm-headers/APKBUILD +++ /dev/null @@ -1,40 +0,0 @@ -# Maintainer: Antoine Martin (ayakael) -# Contributor: Antoine Martin (ayakael) - -pkgname=linux-rm-headers -pkgver=5.4.70 -_rmver=1.3.4 -pkgrel=2 -pkgdesc="Linux kernel headers with reMarkable patches" -url=https://github.com/reMarkable/linux -provides="linux-headers=$pkgver-r$pkgrel" -makedepends="perl" -options="!check !dbg !strip !tracedeps" -builddir="$srcdir"/linux-RM1XX_${pkgver}_v$_rmver -source="https://github.com/reMarkable/linux/archive/refs/tags/RM1XX_${pkgver}_v$_rmver.tar.gz" -arch="noarch" -license="GPL-2.0" - -_carch=$CARCH -case "$CARCH" in - aarch64) _carch="arm64" ;; - arm*) _carch="arm" ;; -esac - -build() { - make headers ARCH="$_carch" -} - -package() { - mkdir -p "$pkgdir"/usr/ - cp -a usr/include/ "$pkgdir"/usr/include/ - - msg "purging non header files.." - find "$pkgdir"/usr/include/ ! -iname "*.h" -type f -exec rm -v {} \+ - - # provided by libdrm - rm -rf "$pkgdir"/usr/include/drm -} -sha512sums=" -0409c8443f5a705e8254858f966eed571b935f1be952f64c1d74b52a043d0638ba358370ca20f665d69b70aabe06f03e0bfa02ccd1a4a2a174d5b9579a10b44e RM1XX_5.4.70_v1.3.4.tar.gz -" From 0cfe53ed2cca9841120f153f081cbbacd3d4c6c2 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 19:24:25 -0400 Subject: [PATCH 076/210] user/xf86-video-fbdev-rm: drop for pmos --- user/xf86-video-fbdev-rm/APKBUILD | 40 ------ .../epdc_auto-update-patch.patch | 128 ------------------ user/xf86-video-fbdev-rm/fix-build.patch | 17 --- 3 files changed, 185 deletions(-) delete mode 100644 user/xf86-video-fbdev-rm/APKBUILD delete mode 100644 user/xf86-video-fbdev-rm/epdc_auto-update-patch.patch delete mode 100644 user/xf86-video-fbdev-rm/fix-build.patch diff --git a/user/xf86-video-fbdev-rm/APKBUILD b/user/xf86-video-fbdev-rm/APKBUILD deleted file mode 100644 index edfe76b..0000000 --- a/user/xf86-video-fbdev-rm/APKBUILD +++ /dev/null @@ -1,40 +0,0 @@ -# Maintainer: Natanael Copa -pkgname=xf86-video-fbdev-rm -pkgver=0.5.0 -pkgrel=3 -pkgdesc="Video driver for framebuffer device with rM patches" -url="https://www.x.org" -arch="all" -license="MIT" -subpackages="$pkgname-doc" -provides="xf86-video-fbdev=$pkgver-r$pkgrel" -makedepends="xorg-server-dev libxi-dev util-macros xorgproto linux-rm-headers" -builddir="$srcdir"/xf86-video-fbdev-$pkgver -source=" - https://www.x.org/releases/individual/driver/xf86-video-fbdev-$pkgver.tar.bz2 - epdc_auto-update-patch.patch - fix-build.patch - " - -build() { - export LDFLAGS="$LDFLAGS -Wl,-z,lazy" - ./configure \ - --build=$CBUILD \ - --host=$CHOST \ - --prefix=/usr - make -} - -check() { - make check -} - -package() { - make DESTDIR="$pkgdir" install -} - -sha512sums=" -c1217b943bbe3301b3c2a8649ed1004c3c67b02607bd56bbc14f6dfa05e7f0184332c81a6a19595514745501ed88526aee932e555779b7c3a8233646b0979448 xf86-video-fbdev-0.5.0.tar.bz2 -c211a2edf90b622d522a0513358431afa33c7b3b958b054221ff3a6e8ff72d1012b0141b073ea070f4bb2d2f9042d8e092434f14a91bea3bf8bf188c78c0bcb7 epdc_auto-update-patch.patch -19c6680d8e8b0ba3903fb76438b54f294a1715b93d50e1cb2ef95bb04770add5fdad1df4260ab7eb00bb26578baa79b7cfed3f7fa6cba70348611cc3797af3ee fix-build.patch -" diff --git a/user/xf86-video-fbdev-rm/epdc_auto-update-patch.patch b/user/xf86-video-fbdev-rm/epdc_auto-update-patch.patch deleted file mode 100644 index f54f524..0000000 --- a/user/xf86-video-fbdev-rm/epdc_auto-update-patch.patch +++ /dev/null @@ -1,128 +0,0 @@ -diff --git a/src/fbdev.c.orig b/src/fbdev.c -index f25ef72..46b3c8c 100644 ---- a/src/fbdev.c.orig -+++ b/src/fbdev.c -@@ -8,6 +8,8 @@ - #endif - - #include -+#include -+#include - - /* all driver need this */ - #include "xf86.h" -@@ -18,6 +20,7 @@ - #include "colormapst.h" - #include "xf86cmap.h" - #include "shadow.h" -+#include "os.h" - #include "dgaproc.h" - - /* for visuals */ -@@ -186,6 +189,9 @@ typedef struct { - int rotate; - Bool shadowFB; - Bool shadow24; -+ Bool timerActive; -+ OsTimerPtr timer; -+ RegionPtr region_queue; - void *shadow; - CloseScreenProcPtr CloseScreen; - CreateScreenResourcesProcPtr CreateScreenResources; -@@ -697,6 +703,87 @@ fbdevUpdatePacked(ScreenPtr pScreen, shadowBufPtr pBuf) - shadowUpdatePacked(pScreen, pBuf); - } - -+static CARD32 FBDevEPDUpdateWork(OsTimerPtr timer, -+ CARD32 time, -+ void *arg); -+ -+static void FBDevEPDUpdate(ScreenPtr pScreen, shadowBufPtr pBuf) -+{ -+ RegionPtr damage = DamageRegion(pBuf->pDamage); -+ -+ ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); -+ FBDevPtr fPtr = FBDEVPTR(pScrn); -+ shadowUpdateProc update; -+ if (fPtr->shadow24) -+ update = fbdevUpdate32to24; -+ else if (fPtr->rotate) -+ update = fbdevUpdateRotatePacked; -+ else -+ update = fbdevUpdatePacked; -+ -+ update(pScreen, pBuf); -+ -+ if (fPtr->region_queue) { -+ RegionAppend(fPtr->region_queue, damage); -+ } else { -+ fPtr->region_queue = RegionDuplicate(damage); -+ } -+ -+ if (!fPtr->timerActive) { -+ FBDevEPDUpdateWork(fPtr->timer, GetTimeInMillis(), -+ pScreen); -+ } -+} -+ -+static CARD32 FBDevEPDUpdateWork(OsTimerPtr timer, -+ CARD32 time, -+ void *arg) -+{ -+ ScreenPtr pScreen = (void *)arg; -+ ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); -+ FBDevPtr fPtr = FBDEVPTR(pScrn); -+ BoxPtr pbox; -+ Bool overlap; -+ int nbox; -+ int fd = fbdevHWGetFD(pScrn); -+ if (fPtr->region_queue == NULL) { -+ fPtr->timerActive = FALSE; -+ return 0; -+ } -+ -+ struct mxcfb_update_data upd_region; -+ RegionValidate(fPtr->region_queue, &overlap); -+ pbox = RegionRects(fPtr->region_queue); -+ nbox = RegionNumRects(fPtr->region_queue); -+ -+ while(nbox--) { -+ int x, y, w, h; -+ int ret; -+ x = pbox->x1; -+ y = pbox->y1; -+ w = (pbox->x2 - pbox->x1); -+ h = pbox->y2 - pbox->y1; -+ memset(&upd_region, 0, sizeof(upd_region)); -+ upd_region.update_region.left = x; -+ upd_region.update_region.top = y; -+ upd_region.update_region.width = w; -+ upd_region.update_region.height = h; -+ upd_region.waveform_mode = WAVEFORM_MODE_AUTO; -+ upd_region.temp = TEMP_USE_AMBIENT; -+ upd_region.update_mode = UPDATE_MODE_PARTIAL; -+ upd_region.flags = 0; -+ ret = ioctl(fd, MXCFB_SEND_UPDATE, &upd_region); -+ if (ret < 0) -+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR,"update ioctl failed: %d\n", ret); -+ pbox++; -+ } -+ fPtr->timer = TimerSet(timer, 0, 50, FBDevEPDUpdateWork, pScreen); -+ fPtr->timerActive = TRUE; -+ RegionDestroy(fPtr->region_queue); -+ fPtr->region_queue = NULL; -+ return 0; -+} -+ - static Bool - FBDevCreateScreenResources(ScreenPtr pScreen) - { -@@ -722,7 +809,7 @@ FBDevCreateScreenResources(ScreenPtr pScreen) - else - update = fbdevUpdatePacked; - -- if (!shadowAdd(pScreen, pPixmap, update, FBDevWindowLinear, fPtr->rotate, -+ if (!shadowAdd(pScreen, pPixmap, FBDevEPDUpdate, FBDevWindowLinear, fPtr->rotate, - NULL)) { - return FALSE; - } diff --git a/user/xf86-video-fbdev-rm/fix-build.patch b/user/xf86-video-fbdev-rm/fix-build.patch deleted file mode 100644 index f1ca165..0000000 --- a/user/xf86-video-fbdev-rm/fix-build.patch +++ /dev/null @@ -1,17 +0,0 @@ -Upstream: no (too lazy) -Reason: fixes build by getting rid of old cpp macro - -diff --git a/src/fbdev.c b/src/fbdev.c -index f25ef72..02a2b7a 100644 ---- a/src/fbdev.c -+++ b/src/fbdev.c -@@ -1010,7 +1010,7 @@ FBDevScreenInit(SCREEN_INIT_ARGS_DECL) - fPtr->CloseScreen = pScreen->CloseScreen; - pScreen->CloseScreen = FBDevCloseScreen; - --#if XV -+#if defined(XV) - { - XF86VideoAdaptorPtr *ptr; - - From 39823fcb316a0eb117c425cbf133387d233661d9 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 19:26:34 -0400 Subject: [PATCH 077/210] user/uvicorn: new aport --- .../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 insertions(+) create mode 100644 user/uvicorn/2540_add-websocketssansioprotocol.patch create mode 100644 user/uvicorn/2541_bump-wesockets-on-requirements.patch create mode 100644 user/uvicorn/APKBUILD create mode 100644 user/uvicorn/test_multiprocess.patch diff --git a/user/uvicorn/2540_add-websocketssansioprotocol.patch b/user/uvicorn/2540_add-websocketssansioprotocol.patch new file mode 100644 index 0000000..a1fe5bf --- /dev/null +++ b/user/uvicorn/2540_add-websocketssansioprotocol.patch @@ -0,0 +1,1194 @@ +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 new file mode 100644 index 0000000..6b9f671 --- /dev/null +++ b/user/uvicorn/2541_bump-wesockets-on-requirements.patch @@ -0,0 +1,559 @@ +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 new file mode 100644 index 0000000..62d0a4c --- /dev/null +++ b/user/uvicorn/APKBUILD @@ -0,0 +1,55 @@ +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 new file mode 100644 index 0000000..231526e --- /dev/null +++ b/user/uvicorn/test_multiprocess.patch @@ -0,0 +1,14 @@ +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 39b8c7c45d82481d8dcc9a33c7263ab754082707 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 19:27:01 -0400 Subject: [PATCH 078/210] user/paperless-ngx: re-enable --- user/paperless-ngx/APKBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/user/paperless-ngx/APKBUILD b/user/paperless-ngx/APKBUILD index 9a6e7ab..01ea699 100644 --- a/user/paperless-ngx/APKBUILD +++ b/user/paperless-ngx/APKBUILD @@ -9,7 +9,7 @@ license="GPL-3.0-only" # s390x: ocrmypdf py3-joblib py3-scikit-learn py3-watchfiles # armhf / ppc64le: py3-uvloop # all: uvicorn doesn't yet work with websockets 14 -# arch="noarch !s390x !armhf !ppc64le" +arch="noarch !s390x !armhf !ppc64le" install="$pkgname.post-install $pkgname.post-upgrade $pkgname.pre-install" depends=" file From a6c26bc587dd9f2f4b0f6cc7bcb3528adccd3bac Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 19:27:43 -0400 Subject: [PATCH 079/210] user/tandoor-recipes: enable build --- user/tandoor-recipes/APKBUILD | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/user/tandoor-recipes/APKBUILD b/user/tandoor-recipes/APKBUILD index 6ae8824..75ecd85 100644 --- a/user/tandoor-recipes/APKBUILD +++ b/user/tandoor-recipes/APKBUILD @@ -4,8 +4,7 @@ pkgname=tandoor-recipes pkgver=1.5.12 pkgrel=1 pkgdesc="Application for managing recipes, planning meals, building shopping lists, etc." -# FTBFS -# arch="noarch" +arch="noarch" url="https://github.com/TandoorRecipes/recipes" license="AGPL-3.0-only" depends=" From 41cd4ce83b8cd1febd72121966bff9afb2040435 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 19:28:27 -0400 Subject: [PATCH 080/210] user/xochitl-bin: drop due to pmos --- user/xochitl-bin/APKBUILD | 50 ------------------------------------- user/xochitl-bin/xochitl.sh | 12 --------- 2 files changed, 62 deletions(-) delete mode 100644 user/xochitl-bin/APKBUILD delete mode 100755 user/xochitl-bin/xochitl.sh diff --git a/user/xochitl-bin/APKBUILD b/user/xochitl-bin/APKBUILD deleted file mode 100644 index 4ea4dfa..0000000 --- a/user/xochitl-bin/APKBUILD +++ /dev/null @@ -1,50 +0,0 @@ -# Maintainer: Antoine Martin (ayakael) -# Contributor: Antoine Martin (ayakael) - -pkgname=xochitl-bin -pkgver=2.15.1.1189 -_pkgprefix=Xdvv3lBmE4 -pkgrel=1 -pkgdesc="Image extractor for reMarkable firmware files" -arch="armv7" -url="https://archive.org/download/rm110/RM110/" -license="MIT" -makedepends="rm-extractor p7zip" -options="!check !strip !tracedeps" # No testsuite -subpackages="$pkgname-rm1 $pkgname-rm2" -builddir="$srcdir" -source=" - $pkgname-rm1-$pkgver.signed::https://archive.org/download/rm110/RM110/2.15.1.1189_reMarkable-Xdvv3lBmE4-.signed - $pkgname-rm2-$pkgver.signed::https://archive.org/download/rm110/RM110/2.15.1.1189_reMarkable2-wVbHkgKisg-.signed - xochitl.sh -" -package() { - install -vdm755 "$pkgdir"/var/lib/$pkgname - install -vDm755 "$srcdir"/xochitl.sh "$pkgdir"/usr/bin/xochitl -} - -rm1() { - depends="$pkgname" - - mkdir -p "$subpkgdir"/usr/lib/$pkgname - cd "$subpkgdir"/usr/lib/$pkgname - rm-extractor "$builddir"/$pkgname-rm1-$pkgver.signed - 7z x out || true - rm out -} - -rm2() { - depends="$pkgname" - - mkdir -p "$subpkgdir"/usr/lib/$pkgname - cd "$subpkgdir"/usr/lib/$pkgname - rm-extractor "$builddir"/$pkgname-rm1-$pkgver.signed - 7z x out || true - rm out -} - -sha512sums=" -294a5dccebb11366ad4e9a39d15829f310f575044f6e4db2747364ae61ef984cf3e0a8f09f3a33f157365b637d0217f34a01000eff3f92dd177afd011c7b2c9f xochitl-bin-rm1-2.15.1.1189.signed -6b2baac5c970ddfbf84f376fbfd22dab0a72979160b6889352bb2464f46f9d85d0fdc9f5754dbcb431b3629df833e64913c81aa7838f636cce11b00413d8506e xochitl-bin-rm2-2.15.1.1189.signed -e0f7ce6a5a29f98929339f55a2073b251ce76802c244473677be35eeef82e0e840edddfdfe56f8dc16fe80865d22e8dd35f3815f716903966768c3d9300831f2 xochitl.sh -" diff --git a/user/xochitl-bin/xochitl.sh b/user/xochitl-bin/xochitl.sh deleted file mode 100755 index 1e02b34..0000000 --- a/user/xochitl-bin/xochitl.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/bash - -# we chroot into codex root, thus need to bind mount -mount -o bind /dev /usr/lib/xochitl-bin/dev -mount -o bind /proc /usr/lib/xochitl-bin/proc -mount -o bind /sys /usr/lib/xochitl-bin/sys - -# xochitl expects home to be mounted -mount -o bind /var/lib/xochitl-bin /usr/lib/xochitl-bin/home/root - -# start xochitl -chroot /usr/lib/xochitl-bin /usr/bin/xochitl From 20281faaf5e5ae13ae35597318014c70358174b1 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 20:37:42 -0400 Subject: [PATCH 081/210] backports/airsonic-advanced: drop for lack of need --- backports/airsonic-advanced/APKBUILD | 48 ------------------- .../airsonic-advanced/airsonic-advanced.initd | 14 ------ .../airsonic-advanced.pre-install | 6 --- backports/airsonic-advanced/maven.patch | 8 ---- 4 files changed, 76 deletions(-) delete mode 100644 backports/airsonic-advanced/APKBUILD delete mode 100644 backports/airsonic-advanced/airsonic-advanced.initd delete mode 100644 backports/airsonic-advanced/airsonic-advanced.pre-install delete mode 100644 backports/airsonic-advanced/maven.patch diff --git a/backports/airsonic-advanced/APKBUILD b/backports/airsonic-advanced/APKBUILD deleted file mode 100644 index ec5e7c1..0000000 --- a/backports/airsonic-advanced/APKBUILD +++ /dev/null @@ -1,48 +0,0 @@ -# Contributor: Kay Thomas -# Maintainer: Kay Thomas -pkgname=airsonic-advanced -_sha=1397446f979b1cdea283eec89ce4f0eae7d63450 -pkgver=11.0.0_git20230217 -pkgrel=0 -pkgdesc="Modern implementation of the Airsonic fork with several key performance and feature enhancements" -url="https://github.com/airsonic-advanced/airsonic-advanced" -# inconsistent test and build failures on other arches -arch="x86_64" -license="GPL-3.0-or-later" -depends="openjdk11" -makedepends="maven" -subpackages="$pkgname-openrc" -pkgusers="airsonic-advanced" -pkggroups="airsonic-advanced" -install="$pkgname.pre-install" -source="$pkgname-$pkgver.tar.gz::https://github.com/airsonic-advanced/airsonic-advanced/archive/$_sha.tar.gz - maven.patch - airsonic-advanced.initd - " -builddir="$srcdir/$pkgname-$_sha" - -build() { - mvn clean package -DskipTests -} - -check() { - mvn test -} - -package() { - install -dm755 -o airsonic-advanced -g airsonic-advanced \ - "$pkgdir"/var/airsonic - - install -m755 -o airsonic-advanced -g airsonic-advanced \ - "$builddir"/airsonic-main/target/airsonic.war \ - "$pkgdir"/var/airsonic/airsonic.war - - install -Dm755 "$srcdir"/$pkgname.initd \ - "$pkgdir"/etc/init.d/$pkgname -} - -sha512sums=" -f415620bdbed9fb3874afbf30d9362e68b1e9e8e90dbbed4ca3206b643cad97ca0558e64ec5b4440382f0ec908c3325e321ea3631c38ff9a2109163c8f0cfe0b airsonic-advanced-11.0.0_git20230217.tar.gz -6cb52fee19815fcdf2596e55d97d3e750321b1df7a4fec36fc9bc2a57d4be979a3905a42d3aa9dbeb2bf0d4f56edbf344f13551219b8e4d2ca583abd4bb5c8f9 maven.patch -ca87e6a7199950e6ac52aeb076a03f831d60ee9d4ceed47366bbd78443765d205796d895ebb244051d8033e5b2e9ccd648d20434039c854b8b50e766cc5cd10d airsonic-advanced.initd -" diff --git a/backports/airsonic-advanced/airsonic-advanced.initd b/backports/airsonic-advanced/airsonic-advanced.initd deleted file mode 100644 index c1ce9bd..0000000 --- a/backports/airsonic-advanced/airsonic-advanced.initd +++ /dev/null @@ -1,14 +0,0 @@ -#!/sbin/openrc-run - -supervisor=supervise-daemon -name="airsonic-advanced" -command="/usr/lib/jvm/java-11-openjdk/jre/bin/java" -command_args="-jar airsonic.war" -command_user="airsonic-advanced:airsonic-advanced" -directory="/var/airsonic" -pidfile="/run/airsonic-advanced.pid" - -depend() { - need net localmount - after firewall -} diff --git a/backports/airsonic-advanced/airsonic-advanced.pre-install b/backports/airsonic-advanced/airsonic-advanced.pre-install deleted file mode 100644 index 373b896..0000000 --- a/backports/airsonic-advanced/airsonic-advanced.pre-install +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh - -addgroup -S airsonic-advanced 2>/dev/null -adduser -S -D -H -s /sbin/nologin -G airsonic-advanced -g airsonic-advanced airsonic-advanced 2>/dev/null - -exit 0 diff --git a/backports/airsonic-advanced/maven.patch b/backports/airsonic-advanced/maven.patch deleted file mode 100644 index 56594b6..0000000 --- a/backports/airsonic-advanced/maven.patch +++ /dev/null @@ -1,8 +0,0 @@ -fixes maven 3.9 breaking change -https://maven.apache.org/docs/3.9.0/release-notes.html#potentially-breaking-core-changes ---- airsonic-advanced-1397446f979b1cdea283eec89ce4f0eae7d63450/.mvn/maven.config -+++ airsonic-advanced-1397446f979b1cdea283eec89ce4f0eae7d63450/.mvn/maven.config -@@ -1 +1,2 @@ ----settings ./.mvn/settings.xml -+--settings -+./.mvn/settings.xml From 012a294f6db18b2e5545cf601a3e44527303d4f0 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 20:38:39 -0400 Subject: [PATCH 082/210] backports/perl-math-random-isaac-xs: drop for lack of need --- backports/perl-math-random-isaac-xs/APKBUILD | 39 -------------------- 1 file changed, 39 deletions(-) delete mode 100644 backports/perl-math-random-isaac-xs/APKBUILD diff --git a/backports/perl-math-random-isaac-xs/APKBUILD b/backports/perl-math-random-isaac-xs/APKBUILD deleted file mode 100644 index 8cb2f95..0000000 --- a/backports/perl-math-random-isaac-xs/APKBUILD +++ /dev/null @@ -1,39 +0,0 @@ -# Automatically generated by apkbuild-cpan, template 4 -# Contributor: Timo Teräs -# Maintainer: Celeste -maintainer="Celeste " -pkgname=perl-math-random-isaac-xs -pkgver=1.004 -pkgrel=8 -#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan -_pkgreal=Math-Random-ISAAC-XS -pkgdesc="C implementation of the ISAAC PRNG algorithm" -url="https://metacpan.org/release/Math-Random-ISAAC-XS/" -arch="all" -license="Public-Domain" -depends="perl" -makedepends="perl-dev perl-module-build" -checkdepends="perl-test-nowarnings" -subpackages="$pkgname-doc" -source="https://cpan.metacpan.org/authors/id/J/JA/JAWNSY/Math-Random-ISAAC-XS-$pkgver.tar.gz" -builddir="$srcdir/$_pkgreal-$pkgver" - -build() { - export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}') - perl Build.PL \ - --installdirs=vendor \ - --create_packlist=0 - ./Build -} - -check() { - ./Build test -} - -package() { - ./Build install --destdir="$pkgdir" -} - -sha512sums=" -40c46b5f247f585a407ef9f36b5874d9cf03ec05963a9d92d988ebd63daf1e37b1b51308845d4596f47b5ad7203953bcb7fbb421c905b526dbe99b246ccb4d87 Math-Random-ISAAC-XS-1.004.tar.gz -" From 166b95251601ceb3d0cde812f5d26a69b3a5eb58 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 20:39:26 -0400 Subject: [PATCH 083/210] unmaintained/rstudio-desktop: move from user --- .../rstudio-desktop/12317_support-system-yaml-cpp.patch | 0 {user => unmaintained}/rstudio-desktop/APKBUILD | 0 {user => unmaintained}/rstudio-desktop/cran_multithread.patch | 0 .../rstudio-desktop/desktop-main-skip-nosandbox-on-musl.patch | 0 {user => unmaintained}/rstudio-desktop/filepath-use-unistd.patch | 0 {user => unmaintained}/rstudio-desktop/nodejs-external.patch | 0 {user => unmaintained}/rstudio-desktop/qt.conf | 0 .../rstudio-desktop/sessionhistoryarchive-use-ctime.patch | 0 8 files changed, 0 insertions(+), 0 deletions(-) rename {user => unmaintained}/rstudio-desktop/12317_support-system-yaml-cpp.patch (100%) rename {user => unmaintained}/rstudio-desktop/APKBUILD (100%) rename {user => unmaintained}/rstudio-desktop/cran_multithread.patch (100%) rename {user => unmaintained}/rstudio-desktop/desktop-main-skip-nosandbox-on-musl.patch (100%) rename {user => unmaintained}/rstudio-desktop/filepath-use-unistd.patch (100%) rename {user => unmaintained}/rstudio-desktop/nodejs-external.patch (100%) rename {user => unmaintained}/rstudio-desktop/qt.conf (100%) rename {user => unmaintained}/rstudio-desktop/sessionhistoryarchive-use-ctime.patch (100%) diff --git a/user/rstudio-desktop/12317_support-system-yaml-cpp.patch b/unmaintained/rstudio-desktop/12317_support-system-yaml-cpp.patch similarity index 100% rename from user/rstudio-desktop/12317_support-system-yaml-cpp.patch rename to unmaintained/rstudio-desktop/12317_support-system-yaml-cpp.patch diff --git a/user/rstudio-desktop/APKBUILD b/unmaintained/rstudio-desktop/APKBUILD similarity index 100% rename from user/rstudio-desktop/APKBUILD rename to unmaintained/rstudio-desktop/APKBUILD diff --git a/user/rstudio-desktop/cran_multithread.patch b/unmaintained/rstudio-desktop/cran_multithread.patch similarity index 100% rename from user/rstudio-desktop/cran_multithread.patch rename to unmaintained/rstudio-desktop/cran_multithread.patch diff --git a/user/rstudio-desktop/desktop-main-skip-nosandbox-on-musl.patch b/unmaintained/rstudio-desktop/desktop-main-skip-nosandbox-on-musl.patch similarity index 100% rename from user/rstudio-desktop/desktop-main-skip-nosandbox-on-musl.patch rename to unmaintained/rstudio-desktop/desktop-main-skip-nosandbox-on-musl.patch diff --git a/user/rstudio-desktop/filepath-use-unistd.patch b/unmaintained/rstudio-desktop/filepath-use-unistd.patch similarity index 100% rename from user/rstudio-desktop/filepath-use-unistd.patch rename to unmaintained/rstudio-desktop/filepath-use-unistd.patch diff --git a/user/rstudio-desktop/nodejs-external.patch b/unmaintained/rstudio-desktop/nodejs-external.patch similarity index 100% rename from user/rstudio-desktop/nodejs-external.patch rename to unmaintained/rstudio-desktop/nodejs-external.patch diff --git a/user/rstudio-desktop/qt.conf b/unmaintained/rstudio-desktop/qt.conf similarity index 100% rename from user/rstudio-desktop/qt.conf rename to unmaintained/rstudio-desktop/qt.conf diff --git a/user/rstudio-desktop/sessionhistoryarchive-use-ctime.patch b/unmaintained/rstudio-desktop/sessionhistoryarchive-use-ctime.patch similarity index 100% rename from user/rstudio-desktop/sessionhistoryarchive-use-ctime.patch rename to unmaintained/rstudio-desktop/sessionhistoryarchive-use-ctime.patch From 27e1275d13b8e21e42944f37de53908ebc599415 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 20:40:30 -0400 Subject: [PATCH 084/210] unmaintained/mathjax2: move from user --- unmaintained/mathjax2/APKBUILD | 53 ++++++++++++++++++---------------- user/mathjax2/APKBUILD | 38 ------------------------ 2 files changed, 28 insertions(+), 63 deletions(-) delete mode 100644 user/mathjax2/APKBUILD diff --git a/unmaintained/mathjax2/APKBUILD b/unmaintained/mathjax2/APKBUILD index 3075ca1..ceb2b15 100644 --- a/unmaintained/mathjax2/APKBUILD +++ b/unmaintained/mathjax2/APKBUILD @@ -1,35 +1,38 @@ -# $Id: PKGBUILD 362427 2018-07-19 17:42:59Z arojas $ -# Maintainer: Antonio Rojas -# Contributor: Kevin Dodd -# Contributor: Tianjiao Yin +# Maintainer: Antoine Martin (ayakael) +# Contributor: Antoine Martin (ayakael) pkgname=mathjax2 pkgver=2.7.9 -pkgrel=0 -pkgdesc='An open source JavaScript display engine for mathematics that works in all modern browsers' -url='https://www.mathjax.org/' +pkgrel=1 +pkgdesc="An open source JavaScript display engine for mathematics that works in all modern browsers" +url="https://www.mathjax.org/" arch=noarch -license=Apache +license="Apache-2.0" source="$pkgname-$pkgver.tar.gz::https://github.com/mathjax/MathJax/archive/$pkgver.tar.gz" -options=!check +builddir="$srcdir"/MathJax-$pkgver +options="!check" # No testsuite -prepare() { - cd $srcdir/MathJax-$pkgver - -# Remove unneeded stuff, see https://github.com/mathjax/MathJax-docs/wiki/Guide%3A-reducing-size-of-a-mathjax-installation - rm -r docs test unpacked - rm -r fonts/HTML-CSS/TeX/png - for _format in eot otf svg ; do - find . -type d -name "$_format" -prune -exec rm -rf {} \; - done +build() { + # Remove unneeded stuff, see https://github.com/mathjax/MathJax-docs/wiki/Guide%3A-reducing-size-of-a-mathjax-installation + for i in docs test unpacked fonts/HTML-CSS/TeX/png; do + rm -r $i + done + for _format in eot otf svg ; do + find . -type d -name "$_format" -prune -exec rm -rf {} \; + done } package() { - cd ${srcdir} - mkdir -p "$pkgdir"/usr/share/fonts "$pkgdir"/usr/share/licenses/mathjax2 - cp -a MathJax-$pkgver "$pkgdir"/usr/share/mathjax2 - mv "$pkgdir"/usr/share/mathjax2/fonts "$pkgdir"/usr/share/fonts/mathjax2 - ln -s /usr/share/fonts/mathjax2 "$pkgdir"/usr/share/mathjax2/fonts - mv "$pkgdir"/usr/share/mathjax2/LICENSE "$pkgdir"/usr/share/licenses/mathjax2/ + mkdir -p \ + "$pkgdir"/usr/share/fonts \ + "$pkgdir"/usr/share/licenses/mathjax2 + + cp -a "$builddir" "$pkgdir"/usr/share/mathjax2 + + mv "$pkgdir"/usr/share/mathjax2/fonts "$pkgdir"/usr/share/fonts/mathjax2 + ln -s /usr/share/fonts/mathjax2 "$pkgdir"/usr/share/mathjax2/fonts + mv "$pkgdir"/usr/share/mathjax2/LICENSE "$pkgdir"/usr/share/licenses/mathjax2/ } -sha512sums="ac7b2dfc6064148e941e5ee05361467514e5f28449dbb697ff1df556968ccb71f501c4021ade285cbbb995983513669c14d9c06886a7b83a5c75fa30504fa8ab mathjax2-2.7.9.tar.gz" +sha512sums=" +ac7b2dfc6064148e941e5ee05361467514e5f28449dbb697ff1df556968ccb71f501c4021ade285cbbb995983513669c14d9c06886a7b83a5c75fa30504fa8ab mathjax2-2.7.9.tar.gz +" diff --git a/user/mathjax2/APKBUILD b/user/mathjax2/APKBUILD deleted file mode 100644 index ceb2b15..0000000 --- a/user/mathjax2/APKBUILD +++ /dev/null @@ -1,38 +0,0 @@ -# Maintainer: Antoine Martin (ayakael) -# Contributor: Antoine Martin (ayakael) - -pkgname=mathjax2 -pkgver=2.7.9 -pkgrel=1 -pkgdesc="An open source JavaScript display engine for mathematics that works in all modern browsers" -url="https://www.mathjax.org/" -arch=noarch -license="Apache-2.0" -source="$pkgname-$pkgver.tar.gz::https://github.com/mathjax/MathJax/archive/$pkgver.tar.gz" -builddir="$srcdir"/MathJax-$pkgver -options="!check" # No testsuite - -build() { - # Remove unneeded stuff, see https://github.com/mathjax/MathJax-docs/wiki/Guide%3A-reducing-size-of-a-mathjax-installation - for i in docs test unpacked fonts/HTML-CSS/TeX/png; do - rm -r $i - done - for _format in eot otf svg ; do - find . -type d -name "$_format" -prune -exec rm -rf {} \; - done -} - -package() { - mkdir -p \ - "$pkgdir"/usr/share/fonts \ - "$pkgdir"/usr/share/licenses/mathjax2 - - cp -a "$builddir" "$pkgdir"/usr/share/mathjax2 - - mv "$pkgdir"/usr/share/mathjax2/fonts "$pkgdir"/usr/share/fonts/mathjax2 - ln -s /usr/share/fonts/mathjax2 "$pkgdir"/usr/share/mathjax2/fonts - mv "$pkgdir"/usr/share/mathjax2/LICENSE "$pkgdir"/usr/share/licenses/mathjax2/ -} -sha512sums=" -ac7b2dfc6064148e941e5ee05361467514e5f28449dbb697ff1df556968ccb71f501c4021ade285cbbb995983513669c14d9c06886a7b83a5c75fa30504fa8ab mathjax2-2.7.9.tar.gz -" From 9a735111c74bd45d449b0fb1b21f434be099f906 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 20:42:05 -0400 Subject: [PATCH 085/210] backports/cura: drop due to unmaintained --- backports/cura/APKBUILD | 76 ----------------------- backports/cura/AppDesktopData.patch | 58 ------------------ backports/cura/CuraVersion.patch | 16 ----- backports/cura/cmake-helpers.patch | 95 ----------------------------- backports/cura/cmake.patch | 85 -------------------------- 5 files changed, 330 deletions(-) delete mode 100644 backports/cura/APKBUILD delete mode 100644 backports/cura/AppDesktopData.patch delete mode 100644 backports/cura/CuraVersion.patch delete mode 100644 backports/cura/cmake-helpers.patch delete mode 100644 backports/cura/cmake.patch diff --git a/backports/cura/APKBUILD b/backports/cura/APKBUILD deleted file mode 100644 index 7c669be..0000000 --- a/backports/cura/APKBUILD +++ /dev/null @@ -1,76 +0,0 @@ -# Contributor: Anjandev Momi -# Maintainer: Anjandev Momi -pkgname=cura -# uranium and curaengine packages must be updated in sync with this verion number -# py3-pynest2d and fdm-materials should be checked as well, but their versions are not always in sync -pkgver=5.2.2 -pkgrel=1 -pkgdesc="3D printer / slicing GUI built on top of the Uranium framework" -url="https://ultimaker.com/software/ultimaker-cura" -# ppc64le: no py3-keyring -# x86: no curaengine -# armhf: no uranium, qt5-qtquickcontrols, qt5-qtquickcontrols2, qt5-qtgraphicaleffects -# riscv64: no uranium -# s390x: no py3-trimesh, no py3-numpy-stl -# armv7: no py3-trimesh -arch="noarch !ppc64le !x86 !armhf !riscv64 !s390x !armv7" -license="LGPL-3.0-or-later" -# add cura-binary-data to depends when packaged -depends=" - curaengine - fdm-materials - uranium - py3-arcus - py3-keyring - py3-numpy-stl - py3-pyclipper - py3-pynest2d - py3-pyserial - py3-qt6 - py3-requests - py3-trimesh - py3-zeroconf - " -makedepends="samurai cmake gettext gettext-dev" # needs msginit from gettext -checkdepends="py3-pytest" -subpackages="$pkgname-lang" -source="$pkgname-$pkgver.tar.gz::https://github.com/Ultimaker/Cura/archive/refs/tags/$pkgver.tar.gz - AppDesktopData.patch - CuraVersion.patch - cmake-helpers.patch - cmake.patch" -builddir="$srcdir/Cura-$pkgver" -options="!check" # tests broken after v5.x - -build() { - local pyver="$(python3 -c 'import sys; print(f"{sys.version_info.major}.{sys.version_info.minor}")')" - cmake -B build -G Ninja \ - -DCURA_VERSION=$pkgver \ - -DPython_VERSION=$pyver \ - -DURANIUM_DIR=/usr/share/uranium \ - -DCMAKE_INSTALL_PREFIX=/usr \ - -DCMAKE_INSTALL_LIBDIR=lib \ - -DGETTEXT_MSGINIT_EXECUTABLE=msginit \ - -DCURA_BINARY_DATA_DIRECTORY=/usr/share/cura \ - -DCMAKE_BUILD_TYPE=minsizerel - cmake --build build -} - -package() { - DESTDIR="$pkgdir" cmake --install build - mv $pkgdir/usr/bin/cura_app.py $pkgdir/usr/bin/cura - - # don't ever send any user or print info through the internet to Ultimaker - rm -rf "$pkgdir/usr/lib/cura/plugins/SliceInfoPlugin" - - install -d "$pkgdir"/usr/share/locale - mv "$pkgdir"/usr/share/cura/resources/i18n/* "$pkgdir"/usr/share/locale/ -} - -sha512sums=" -5d4e0fdc740d0c048905e2b87cc8c73eedea59b54766b74760505902007b365582d22b46b1cfdcd6914828840865c10a3beb0ef6a1f04ea181c81d44f42434bc cura-5.2.2.tar.gz -214e373f6cab7e3ccac12c96d1b5ca636d8d1e9ecdadaae84fc28fb429969c7c2d6055ce2a01b6db3ad85ab6cbc8d135cf2c26c77d7cfe13a73eb81aa5e85f11 AppDesktopData.patch -e3bb302db70ca195b2ce9831e71302c8ee2a51955fecc7264a495d7d4fc9c107cfd48811aa5865f16671e7b1ae126f95d3d7bbb6a70f367f7f91a2b32bce377b CuraVersion.patch -0db4ff97e7f82ae1a9dbc9c330d08c3e46249feeb3fb630f7c4e2de73749327337ec041680c39a07e0b5034c1b3f3656d75614ab4dc2f39861c8e27bdb2a58ef cmake-helpers.patch -05a73f892700ff6279230385b04180873a62b7413fa7f7d55ae150f1bcee57ef05eda0bd7fe444fe660ab66a044c958f42badd33b743fca81033ae8f19dd3805 cmake.patch -" diff --git a/backports/cura/AppDesktopData.patch b/backports/cura/AppDesktopData.patch deleted file mode 100644 index 9e2134f..0000000 --- a/backports/cura/AppDesktopData.patch +++ /dev/null @@ -1,58 +0,0 @@ ---- /dev/null -+++ ./com.ultimaker.cura.appdata.xml -@@ -0,0 +1,33 @@ -+ -+ -+ -+ com.ultimaker.cura.desktop -+ CC0-1.0 -+ LGPL-3.0 and CC-BY-SA-4.0 -+ Cura -+ The world's most advanced 3d printer software -+ -+

-+ Cura creates a seamless integration between hardware, software and -+ materials for the best 3D printing experience around. -+ Cura supports the 3MF, OBJ and STL file formats and is available on -+ Windows, Mac and Linux. -+

-+
    -+
  • Novices can start printing right away
  • -+
  • Experts are able to customize 300 settings to achieve the best results
  • -+
  • Optimized profiles for Ultimaker materials
  • -+
  • Supported by a global network of Ultimaker certified service partners
  • -+
  • Print multiple objects at once with different settings for each object
  • -+
  • Cura supports STL, 3MF and OBJ file formats
  • -+
  • Open source and completely free
  • -+
-+
-+ -+ -+ https://raw.githubusercontent.com/Ultimaker/Cura/master/screenshot.png -+ -+ -+ https://ultimaker.com/software/ultimaker-cura?utm_source=cura&utm_medium=software&utm_campaign=cura-update-linux -+ Cura -+
---- /dev/null -+++ ./com.ultimaker.cura.desktop.in -@@ -0,0 +1,19 @@ -+[Desktop Entry] -+Name=Ultimaker Cura -+Name[de]=Ultimaker Cura -+Name[nl]=Ultimaker Cura -+GenericName=3D Printing Software -+GenericName[de]=3D-Druck-Software -+GenericName[nl]=3D-printsoftware -+Comment=Cura converts 3D models into paths for a 3D printer. It prepares your print for maximum accuracy, minimum printing time and good reliability with many extra features that make your print come out great. -+Comment[de]=Cura wandelt 3D-Modelle in Pfade für einen 3D-Drucker um. Es bereitet Ihren Druck für maximale Genauigkeit, minimale Druckzeit und guter Zuverlässigkeit mit vielen zusätzlichen Funktionen vor, damit Ihr Druck großartig wird. -+Comment[nl]=Cura converteert 3D-modellen naar paden voor een 3D printer. Het bereidt je print voor om zeer precies, snel en betrouwbaar te kunnen printen, met veel extra functionaliteit om je print er goed uit te laten komen. -+Exec=@CMAKE_INSTALL_FULL_BINDIR@/cura %F -+TryExec=@CMAKE_INSTALL_FULL_BINDIR@/cura -+Icon=cura-icon -+Terminal=false -+Type=Application -+MimeType=model/stl;application/vnd.ms-3mfdocument;application/prs.wavefront-obj;image/bmp;image/gif;image/jpeg;image/png;text/x-gcode;application/x-amf;application/x-ply;application/x-ctm;model/vnd.collada+xml;model/gltf-binary;model/gltf+json;model/vnd.collada+xml+zip; -+Categories=Graphics; -+Keywords=3D;Printing;Slicer; -+StartupWMClass=cura.real diff --git a/backports/cura/CuraVersion.patch b/backports/cura/CuraVersion.patch deleted file mode 100644 index 916225d..0000000 --- a/backports/cura/CuraVersion.patch +++ /dev/null @@ -1,16 +0,0 @@ ---- /dev/null -+++ ./cura/CuraVersion.py.in -@@ -0,0 +1,13 @@ -+# Copyright (c) 2020 Ultimaker B.V. -+# Cura is released under the terms of the LGPLv3 or higher. -+ -+CuraAppName = "@CURA_APP_NAME@" -+CuraAppDisplayName = "@CURA_APP_DISPLAY_NAME@" -+CuraVersion = "@CURA_VERSION@" -+CuraBuildType = "@CURA_BUILDTYPE@" -+CuraDebugMode = True if "@_cura_debugmode@" == "ON" else False -+CuraCloudAPIRoot = "@CURA_CLOUD_API_ROOT@" -+CuraCloudAPIVersion = "@CURA_CLOUD_API_VERSION@" -+CuraCloudAccountAPIRoot = "@CURA_CLOUD_ACCOUNT_API_ROOT@" -+CuraMarketplaceRoot = "@CURA_MARKETPLACE_ROOT@" -+CuraDigitalFactoryURL = "@CURA_DIGITAL_FACTORY_URL@" diff --git a/backports/cura/cmake-helpers.patch b/backports/cura/cmake-helpers.patch deleted file mode 100644 index 6204aaa..0000000 --- a/backports/cura/cmake-helpers.patch +++ /dev/null @@ -1,95 +0,0 @@ ---- /dev/null -+++ ./cmake/CuraPluginInstall.cmake -@@ -0,0 +1,92 @@ -+# Copyright (c) 2022 Ultimaker B.V. -+# CuraPluginInstall.cmake is released under the terms of the LGPLv3 or higher. -+ -+# -+# This module detects all plugins that need to be installed and adds them using the CMake install() command. -+# It detects all plugin folder in the path "plugins/*" where there's a "plugin.json" in it. -+# -+# Plugins can be configured to NOT BE INSTALLED via the variable "CURA_NO_INSTALL_PLUGINS" as a list of string in the -+# form of "a;b;c" or "a,b,c". By default all plugins will be installed. -+# -+ -+option(PRINT_PLUGIN_LIST "Should the list of plugins that are installed be printed?" ON) -+ -+# Options or configuration variables -+set(CURA_NO_INSTALL_PLUGINS "" CACHE STRING "A list of plugins that should not be installed, separated with ';' or ','.") -+ -+file(GLOB_RECURSE _plugin_json_list ${CMAKE_SOURCE_DIR}/plugins/*/plugin.json) -+list(LENGTH _plugin_json_list _plugin_json_list_len) -+ -+# Sort the lists alphabetically so we can handle cases like this: -+# - plugins/my_plugin/plugin.json -+# - plugins/my_plugin/my_module/plugin.json -+# In this case, only "plugins/my_plugin" should be added via install(). -+set(_no_install_plugin_list ${CURA_NO_INSTALL_PLUGINS}) -+# Sanitize the string so the comparison will be case-insensitive. -+string(STRIP "${_no_install_plugin_list}" _no_install_plugin_list) -+string(TOLOWER "${_no_install_plugin_list}" _no_install_plugin_list) -+ -+# WORKAROUND counterpart of what's in cura-build. -+string(REPLACE "," ";" _no_install_plugin_list "${_no_install_plugin_list}") -+ -+list(LENGTH _no_install_plugin_list _no_install_plugin_list_len) -+ -+if(_no_install_plugin_list_len GREATER 0) -+ list(SORT _no_install_plugin_list) -+endif() -+if(_plugin_json_list_len GREATER 0) -+ list(SORT _plugin_json_list) -+endif() -+ -+# Check all plugin directories and add them via install() if needed. -+set(_install_plugin_list "") -+foreach(_plugin_json_path ${_plugin_json_list}) -+ get_filename_component(_plugin_dir ${_plugin_json_path} DIRECTORY) -+ file(RELATIVE_PATH _rel_plugin_dir ${CMAKE_CURRENT_SOURCE_DIR} ${_plugin_dir}) -+ get_filename_component(_plugin_dir_name ${_plugin_dir} NAME) -+ -+ # Make plugin name comparison case-insensitive -+ string(TOLOWER "${_plugin_dir_name}" _plugin_dir_name_lowercase) -+ -+ # Check if this plugin needs to be skipped for installation -+ set(_add_plugin ON) # Indicates if this plugin should be added to the build or not. -+ set(_is_no_install_plugin OFF) # If this plugin will not be added, this indicates if it's because the plugin is -+ # specified in the NO_INSTALL_PLUGINS list. -+ if(_no_install_plugin_list) -+ if("${_plugin_dir_name_lowercase}" IN_LIST _no_install_plugin_list) -+ set(_add_plugin OFF) -+ set(_is_no_install_plugin ON) -+ endif() -+ endif() -+ -+ # Make sure this is not a subdirectory in a plugin that's already in the install list -+ if(_add_plugin) -+ foreach(_known_install_plugin_dir ${_install_plugin_list}) -+ if(_plugin_dir MATCHES "${_known_install_plugin_dir}.+") -+ set(_add_plugin OFF) -+ break() -+ endif() -+ endforeach() -+ endif() -+ -+ if(_add_plugin) -+ if(${PRINT_PLUGIN_LIST}) -+ message(STATUS "[+] PLUGIN TO INSTALL: ${_rel_plugin_dir}") -+ endif() -+ get_filename_component(_rel_plugin_parent_dir ${_rel_plugin_dir} DIRECTORY) -+ install(DIRECTORY ${_rel_plugin_dir} -+ DESTINATION lib${LIB_SUFFIX}/cura/${_rel_plugin_parent_dir} -+ PATTERN "__pycache__" EXCLUDE -+ PATTERN "*.qmlc" EXCLUDE -+ ) -+ list(APPEND _install_plugin_list ${_plugin_dir}) -+ elseif(_is_no_install_plugin) -+ if(${PRINT_PLUGIN_LIST}) -+ message(STATUS "[-] PLUGIN TO REMOVE : ${_rel_plugin_dir}") -+ endif() -+ execute_process(COMMAND ${Python_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/cmake/mod_bundled_packages_json.py -+ -d ${CMAKE_CURRENT_SOURCE_DIR}/resources/bundled_packages -+ ${_plugin_dir_name} -+ RESULT_VARIABLE _mod_json_result) -+ endif() -+endforeach() diff --git a/backports/cura/cmake.patch b/backports/cura/cmake.patch deleted file mode 100644 index a74477f..0000000 --- a/backports/cura/cmake.patch +++ /dev/null @@ -1,85 +0,0 @@ ---- ./CMakeLists.txt.orig -+++ ./CMakeLists.txt -@@ -1,10 +1,6 @@ - # Copyright (c) 2022 Ultimaker B.V. - # Cura is released under the terms of the LGPLv3 or higher. - --# NOTE: This is only being used for translation scripts. -- --# For MSVC flags, will be ignored on non-Windows OS's and this project in general. Only needed for cura-build-environment. --cmake_policy(SET CMP0091 NEW) - project(cura) - cmake_minimum_required(VERSION 3.18) - -@@ -15,8 +11,44 @@ - set(URANIUM_DIR "${CMAKE_SOURCE_DIR}/../Uranium" CACHE PATH "The location of the Uranium repository") - set(URANIUM_SCRIPTS_DIR "${URANIUM_DIR}/scripts" CACHE PATH "The location of the scripts directory of the Uranium repository") - -+option(CURA_DEBUGMODE "Enable debug dialog and other debug features" OFF) -+if(CURA_DEBUGMODE) -+ set(_cura_debugmode "ON") -+endif() -+ - option(GENERATE_TRANSLATIONS "Should the translations be generated?" ON) - -+set(CURA_APP_NAME "cura" CACHE STRING "Short name of Cura, used for configuration folder") -+set(CURA_APP_DISPLAY_NAME "Ultimaker Cura" CACHE STRING "Display name of Cura") -+set(CURA_VERSION "master" CACHE STRING "Version name of Cura") -+set(CURA_BUILDTYPE "" CACHE STRING "Build type of Cura, eg. 'PPA'") -+set(CURA_CLOUD_API_ROOT "" CACHE STRING "Alternative Cura cloud API root") -+set(CURA_CLOUD_API_VERSION "" CACHE STRING "Alternative Cura cloud API version") -+set(CURA_CLOUD_ACCOUNT_API_ROOT "" CACHE STRING "Alternative Cura cloud account API version") -+set(CURA_MARKETPLACE_ROOT "" CACHE STRING "Alternative Marketplace location") -+set(CURA_DIGITAL_FACTORY_URL "" CACHE STRING "Alternative Digital Factory location") -+ -+configure_file(${CMAKE_SOURCE_DIR}/com.ultimaker.cura.desktop.in ${CMAKE_BINARY_DIR}/com.ultimaker.cura.desktop @ONLY) -+ -+configure_file(cura/CuraVersion.py.in CuraVersion.py @ONLY) -+ -+if(NOT DEFINED Python_VERSION) -+ set(Python_VERSION -+ 3.11 -+ CACHE STRING "Python Version" FORCE) -+ message(STATUS "Setting Python version to ${Python_VERSION}. Set Python_VERSION if you want to compile against an other version.") -+endif() -+if(APPLE) -+ set(Python_FIND_FRAMEWORK NEVER) -+endif() -+find_package(Python ${Python_VERSION} EXACT REQUIRED COMPONENTS Interpreter) -+message(STATUS "Linking and building ${project_name} against Python ${Python_VERSION}") -+if(NOT DEFINED Python_SITELIB_LOCAL) -+ set(Python_SITELIB_LOCAL -+ "${Python_SITELIB}" -+ CACHE PATH "Local alternative site-package location to install Cura" FORCE) -+endif() -+ - if(NOT ${URANIUM_DIR} STREQUAL "") - set(CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH};${URANIUM_DIR}/cmake") - endif() -@@ -29,4 +61,24 @@ - if(${GENERATE_TRANSLATIONS}) - CREATE_TRANSLATION_TARGETS() - endif() --endif() -\ No newline at end of file -+endif() -+ -+install(DIRECTORY resources DESTINATION ${CMAKE_INSTALL_DATADIR}/cura) -+ -+include(CuraPluginInstall) -+ -+install(FILES cura_app.py DESTINATION ${CMAKE_INSTALL_BINDIR} -+ PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) -+install(DIRECTORY cura DESTINATION "${Python_SITELIB_LOCAL}") -+install(FILES ${CMAKE_BINARY_DIR}/CuraVersion.py DESTINATION "${Python_SITELIB_LOCAL}/cura/") -+if(NOT APPLE AND NOT WIN32) -+ install(FILES ${CMAKE_BINARY_DIR}/com.ultimaker.cura.desktop -+ DESTINATION ${CMAKE_INSTALL_DATADIR}/applications) -+ install(FILES ${CMAKE_SOURCE_DIR}/resources/images/cura-icon.png -+ DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/hicolor/128x128/apps/) -+ install(FILES com.ultimaker.cura.appdata.xml -+ DESTINATION ${CMAKE_INSTALL_DATADIR}/metainfo) -+ install(FILES cura.sharedmimeinfo -+ DESTINATION ${CMAKE_INSTALL_DATADIR}/mime/packages/ -+ RENAME cura.xml ) -+endif() From b4b4877fd3fb62c8f37dbf65066ae755363ee9a8 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 20:42:18 -0400 Subject: [PATCH 086/210] backports/py3-arcus: drop due to unmaintained --- backports/py3-arcus/APKBUILD | 42 ---- backports/py3-arcus/cmake-helpers.patch | 254 ------------------------ backports/py3-arcus/cmake.patch | 32 --- backports/py3-arcus/pyproject.patch | 20 -- 4 files changed, 348 deletions(-) delete mode 100644 backports/py3-arcus/APKBUILD delete mode 100644 backports/py3-arcus/cmake-helpers.patch delete mode 100644 backports/py3-arcus/cmake.patch delete mode 100644 backports/py3-arcus/pyproject.patch diff --git a/backports/py3-arcus/APKBUILD b/backports/py3-arcus/APKBUILD deleted file mode 100644 index d3643d7..0000000 --- a/backports/py3-arcus/APKBUILD +++ /dev/null @@ -1,42 +0,0 @@ -# Contributor: Aiden Grossman -# Maintainer: -pkgname=py3-arcus -# Needs to be upgraded in sync with libarcus -pkgver=5.3.0 -pkgrel=4 -pkgdesc="Python bindings for libarcus" -url="https://github.com/Ultimaker/pyArcus" -arch="all" -license="LGPL-3.0-only" -makedepends=" - cmake - libarcus-dev - protobuf-dev - py3-sip - python3-dev - samurai - " -options="!check" # package doesn't provide any tests -source="$pkgname-$pkgver.tar.gz::https://github.com/Ultimaker/pyArcus/archive/refs/tags/$pkgver.tar.gz - cmake.patch - cmake-helpers.patch - pyproject.patch" -builddir="$srcdir/pyArcus-$pkgver" - -build() { - cmake -G Ninja -B build \ - -DBUILD_SHARED_LIBS=ON \ - -DCMAKE_BUILD_TYPE=Release - cmake --build build -} - -package() { - DESTDIR="$pkgdir" cmake --install build -} - -sha512sums=" -d4a114994fa3e3156eae95dde58df13237b8bb0571a1219d6dee6b6338fd65f911f27887d6ab32b7a3cb32bc45ca6c25147e7c2d246cb0707326b88246abfbcd py3-arcus-5.3.0.tar.gz -f14e55cd31c13051981f26364e34da8c94e8eb5227b1cfd6fe44b9f97b5a4dcf6142a1751fa62eb0514a47583e6ec2d51dc253f23cf72c3fe6a1cb5dca136f21 cmake.patch -de75b985607feae0a9c511742915814e9c3d4bc467183f010ccc334ce4d0d952b6ff86020360b78558c4738cc03cf62c386b44ed76bcec12075c4a93dd03eeb7 cmake-helpers.patch -ef593230d5c78da8ba0fc6ea83225c4543857de1837d3151c45e59ffd7c98063b8f97f25d01c15b6a8f90c26c919206f9f7fa26c9650117f4ce7be49ebca876f pyproject.patch -" diff --git a/backports/py3-arcus/cmake-helpers.patch b/backports/py3-arcus/cmake-helpers.patch deleted file mode 100644 index c556985..0000000 --- a/backports/py3-arcus/cmake-helpers.patch +++ /dev/null @@ -1,254 +0,0 @@ ---- /dev/null -+++ ./cmake/CMakeBuilder.py -@@ -0,0 +1,13 @@ -+from sipbuild import SetuptoolsBuilder -+ -+ -+class CMakeBuilder(SetuptoolsBuilder): -+ def __init__(self, project, **kwargs): -+ print("Using the CMake builder") -+ super().__init__(project, **kwargs) -+ -+ def build(self): -+ """ Only Generate the source files """ -+ print("Generating the source files") -+ self._generate_bindings() -+ self._generate_scripts() ---- /dev/null -+++ ./cmake/FindSIP.cmake -@@ -0,0 +1,65 @@ -+# Find SIP -+# ~~~~~~~~ -+# -+# SIP website: http://www.riverbankcomputing.co.uk/sip/index.php -+# -+# Find the installed version of SIP. FindSIP should be called after Python -+# has been found. -+# -+# This file defines the following variables: -+# -+# SIP_VERSION - The version of SIP found expressed as a 6 digit hex number -+# suitable for comparison as a string. -+# -+# SIP_VERSION_STR - The version of SIP found as a human readable string. -+# -+# SIP_BINARY_PATH - Path and filename of the SIP command line executable. -+# -+# SIP_INCLUDE_DIR - Directory holding the SIP C++ header file. -+# -+# SIP_DEFAULT_SIP_DIR - Default directory where .sip files should be installed -+# into. -+ -+# Copyright (c) 2007, Simon Edwards -+# Redistribution and use is allowed according to the terms of the BSD license. -+# For details see the accompanying COPYING-CMAKE-SCRIPTS file. -+ -+ -+ -+IF(SIP_VERSION OR SIP_BUILD_EXECUTABLE) -+ # Already in cache, be silent -+ SET(SIP_FOUND TRUE) -+ELSE() -+ -+ FIND_FILE(_find_sip_py FindSIP.py PATHS ${CMAKE_MODULE_PATH} NO_CMAKE_FIND_ROOT_PATH) -+ -+ EXECUTE_PROCESS(COMMAND ${Python_EXECUTABLE} ${_find_sip_py} OUTPUT_VARIABLE sip_config) -+ IF(sip_config) -+ STRING(REGEX REPLACE "^sip_version:([^\n]+).*$" "\\1" SIP_VERSION ${sip_config}) -+ STRING(REGEX REPLACE ".*\nsip_version_num:([^\n]+).*$" "\\1" SIP_VERSION_NUM ${sip_config}) -+ STRING(REGEX REPLACE ".*\nsip_version_str:([^\n]+).*$" "\\1" SIP_VERSION_STR ${sip_config}) -+ STRING(REGEX REPLACE ".*\ndefault_sip_dir:([^\n]+).*$" "\\1" SIP_DEFAULT_SIP_DIR ${sip_config}) -+ IF(${SIP_VERSION_STR} VERSION_LESS 5) -+ STRING(REGEX REPLACE ".*\nsip_bin:([^\n]+).*$" "\\1" SIP_BINARY_PATH ${sip_config}) -+ STRING(REGEX REPLACE ".*\nsip_inc_dir:([^\n]+).*$" "\\1" SIP_INCLUDE_DIR ${sip_config}) -+ STRING(REGEX REPLACE ".*\nsip_module_dir:([^\n]+).*$" "\\1" SIP_MODULE_DIR ${sip_config}) -+ ELSE(${SIP_VERSION_STR} VERSION_LESS 5) -+ FIND_PROGRAM(SIP_BUILD_EXECUTABLE sip-build) -+ ENDIF(${SIP_VERSION_STR} VERSION_LESS 5) -+ SET(SIP_FOUND TRUE) -+ ENDIF(sip_config) -+ -+ IF(SIP_FOUND) -+ IF(NOT SIP_FIND_QUIETLY) -+ MESSAGE(STATUS "Found SIP version: ${SIP_VERSION_STR}") -+ ENDIF(NOT SIP_FIND_QUIETLY) -+ ELSE(SIP_FOUND) -+ IF(SIP_FIND_REQUIRED) -+ MESSAGE(FATAL_ERROR "Could not find SIP") -+ ENDIF(SIP_FIND_REQUIRED) -+ ENDIF(SIP_FOUND) -+ -+ENDIF() -+ -+include(${CMAKE_SOURCE_DIR}/cmake/SIPMacros.cmake) -+ADD_DEFINITIONS(-DSIP_VERSION=0x${SIP_VERSION}) ---- /dev/null -+++ ./cmake/FindSIP.py -@@ -0,0 +1,57 @@ -+# -*- coding: utf-8 -*- -+# -+# Copyright (c) 2007, Simon Edwards -+# All rights reserved. -+# -+# Redistribution and use in source and binary forms, with or without -+# modification, are permitted provided that the following conditions are met: -+# * Redistributions of source code must retain the above copyright -+# notice, this list of conditions and the following disclaimer. -+# * Redistributions in binary form must reproduce the above copyright -+# notice, this list of conditions and the following disclaimer in the -+# documentation and/or other materials provided with the distribution. -+# * Neither the name of the Simon Edwards nor the -+# names of its contributors may be used to endorse or promote products -+# derived from this software without specific prior written permission. -+# -+# THIS SOFTWARE IS PROVIDED BY Simon Edwards ''AS IS'' AND ANY -+# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -+# DISCLAIMED. IN NO EVENT SHALL Simon Edwards BE LIABLE FOR ANY -+# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -+# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -+# -+# FindSIP.py -+# Copyright (c) 2007, Simon Edwards -+# Redistribution and use is allowed according to the terms of the BSD license. -+# For details see the accompanying COPYING-CMAKE-SCRIPTS file. -+ -+try: -+ import sipbuild -+ -+ print("sip_version:%06.0x" % sipbuild.version.SIP_VERSION) -+ print("sip_version_num:%d" % sipbuild.version.SIP_VERSION) -+ print("sip_version_str:%s" % sipbuild.version.SIP_VERSION_STR) -+ -+ from distutils.sysconfig import get_python_lib -+ python_modules_dir = get_python_lib(plat_specific=1) -+ print("default_sip_dir:%s" % python_modules_dir) -+except ImportError: # Code for SIP v4 -+ import sipconfig -+ -+ sipcfg = sipconfig.Configuration() -+ print("sip_version:%06.0x" % sipcfg.sip_version) -+ print("sip_version_num:%d" % sipcfg.sip_version) -+ print("sip_version_str:%s" % sipcfg.sip_version_str) -+ print("sip_bin:%s" % sipcfg.sip_bin) -+ print("default_sip_dir:%s" % sipcfg.default_sip_dir) -+ print("sip_inc_dir:%s" % sipcfg.sip_inc_dir) -+ # SIP 4.19.10+ has new sipcfg.sip_module_dir -+ if hasattr(sipcfg, "sip_module_dir"): -+ print("sip_module_dir:%s" % sipcfg.sip_module_dir) -+ else: -+ print("sip_module_dir:%s" % sipcfg.sip_mod_dir) ---- /dev/null -+++ ./cmake/SIPMacros.cmake -@@ -0,0 +1,107 @@ -+ -+ -+# Macros for SIP -+# ~~~~~~~~~~~~~~ -+ -+set(SIP_ARGS --pep484-pyi --no-protected-is-public) -+ -+function(add_sip_module MODULE_TARGET) -+ if(NOT SIP_BUILD_EXECUTABLE) -+ set(SIP_BUILD_EXECUTABLE ${CMAKE_PREFIX_PATH}/Scripts/sip-build) -+ endif() -+ -+ message(STATUS "SIP: Generating pyproject.toml") -+ configure_file(${CMAKE_SOURCE_DIR}/pyproject.toml.in ${CMAKE_CURRENT_BINARY_DIR}/pyproject.toml) -+ configure_file(${CMAKE_SOURCE_DIR}/cmake/CMakeBuilder.py ${CMAKE_CURRENT_BINARY_DIR}/CMakeBuilder.py) -+ if(WIN32) -+ set(ext .pyd) -+ set(env_path_sep ";") -+ else() -+ set(ext .so) -+ set(env_path_sep ":") -+ endif() -+ -+ message(STATUS "SIP: Generating source files") -+ execute_process( -+ COMMAND ${CMAKE_COMMAND} -E env "PYTHONPATH=${PYTHONPATH}${env_path_sep}$ENV{PYTHONPATH}${env_path_sep}${CMAKE_CURRENT_BINARY_DIR}" ${SIP_BUILD_EXECUTABLE} ${SIP_ARGS} -+ COMMAND_ECHO STDOUT -+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/ -+ ) -+ # This will generate the source-files during the configuration step in CMake. Needed to obtain the sources -+ -+ # Touch the generated files (8 in total) to make them dirty and force them to rebuild -+ message(STATUS "SIP: Touching the source files") -+ set(_sip_output_files) -+ list(LENGTH SIP_FILES _no_outputfiles) -+ foreach(_concat_file_nr RANGE 0 ${_no_outputfiles}) -+ if(${_concat_file_nr} LESS 8) -+ list(APPEND _sip_output_files "${CMAKE_CURRENT_BINARY_DIR}/${MODULE_TARGET}/${MODULE_TARGET}/sip${MODULE_TARGET}part${_concat_file_nr}.cpp") -+ endif() -+ endforeach() -+ -+ # Find the generated source files -+ message(STATUS "SIP: Collecting the generated source files") -+ file(GLOB sip_c "${CMAKE_CURRENT_BINARY_DIR}/${MODULE_TARGET}/${MODULE_TARGET}/*.c") -+ file(GLOB sip_cpp "${CMAKE_CURRENT_BINARY_DIR}/${MODULE_TARGET}/${MODULE_TARGET}/*.cpp") -+ file(GLOB sip_hdr "${CMAKE_CURRENT_BINARY_DIR}/${MODULE_TARGET}/${MODULE_TARGET}/*.h") -+ -+ # Add the user specified source files -+ message(STATUS "SIP: Collecting the user specified source files") -+ get_target_property(usr_src ${MODULE_TARGET} SOURCES) -+ -+ # create the target library and link all the files (generated and user specified -+ message(STATUS "SIP: Linking the interface target against the shared library") -+ set(sip_sources "${sip_c}" "${sip_cpp}" "${usr_src}") -+ -+ if (BUILD_SHARED_LIBS) -+ add_library("sip_${MODULE_TARGET}" SHARED ${sip_sources}) -+ else() -+ add_library("sip_${MODULE_TARGET}" STATIC ${sip_sources}) -+ endif() -+ -+ # Make sure that the library name of the target is the same as the MODULE_TARGET with the appropriate extension -+ target_link_libraries("sip_${MODULE_TARGET}" PRIVATE "${MODULE_TARGET}") -+ set_target_properties("sip_${MODULE_TARGET}" PROPERTIES PREFIX "") -+ set_target_properties("sip_${MODULE_TARGET}" PROPERTIES SUFFIX ${ext}) -+ set_target_properties("sip_${MODULE_TARGET}" PROPERTIES OUTPUT_NAME "${MODULE_TARGET}") -+ -+ # Add the custom command to (re-)generate the files and mark them as dirty. This allows the user to actually work -+ # on the sip definition files without having to reconfigure the complete project. -+ if (NOT DEFINED PYTHONPATH) -+ set(PYTHONPATH "") -+ endif () -+ add_custom_command( -+ TARGET "sip_${MODULE_TARGET}" -+ COMMAND ${CMAKE_COMMAND} -E env "PYTHONPATH=${PYTHONPATH}${env_path_sep}$ENV{PYTHONPATH}${env_path_sep}${CMAKE_CURRENT_BINARY_DIR}" ${SIP_BUILD_EXECUTABLE} ${SIP_ARGS} -+ COMMAND ${CMAKE_COMMAND} -E touch ${_sip_output_files} -+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/ -+ MAIN_DEPENDENCY ${MODULE_SIP} -+ DEPENDS ${sip_sources} -+ VERBATIM -+ ) -+ -+ set_target_properties("sip_${MODULE_TARGET}" -+ PROPERTIES -+ RESOURCE "${CMAKE_CURRENT_BINARY_DIR}/${MODULE_TARGET}/${MODULE_TARGET}/${MODULE_TARGET}.pyi") -+endfunction() -+ -+function(install_sip_module MODULE_TARGET) -+ if(DEFINED ARGV1) -+ set(_install_path ${ARGV1}) -+ else() -+ if(DEFINED Python_SITEARCH) -+ set(_install_path ${Python_SITEARCH}) -+ elseif(DEFINED Python_SITELIB) -+ set(_install_path ${Python_SITELIB}) -+ else() -+ message(FATAL_ERROR "SIP: Specify the site-packages location") -+ endif() -+ endif() -+ message(STATUS "SIP: Installing Python module and PEP 484 file in ${_install_path}") -+ install(TARGETS "sip_${MODULE_TARGET}" -+ ARCHIVE DESTINATION ${_install_path} -+ LIBRARY DESTINATION ${_install_path} -+ RUNTIME DESTINATION ${_install_path} -+ RESOURCE DESTINATION ${_install_path} -+ ) -+endfunction() diff --git a/backports/py3-arcus/cmake.patch b/backports/py3-arcus/cmake.patch deleted file mode 100644 index e7390e0..0000000 --- a/backports/py3-arcus/cmake.patch +++ /dev/null @@ -1,32 +0,0 @@ ---- ./CMakeLists.txt.orig -+++ ./CMakeLists.txt -@@ -2,22 +2,22 @@ - project(pyarcus) - cmake_minimum_required(VERSION 3.20) - --find_package(protobuf REQUIRED) --find_package(cpython REQUIRED) --find_package(arcus REQUIRED) -+list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake) - --find_package(standardprojectsettings REQUIRED) --find_package(sipbuildtool REQUIRED) -+find_package(Protobuf REQUIRED) -+find_package(Python REQUIRED COMPONENTS Interpreter Development) -+find_package(Arcus REQUIRED) - -+find_package(SIP 6.5.0 REQUIRED) -+ - add_library(pyArcus INTERFACE src/PythonMessage.cpp) --use_threads(pyArcus) - - target_include_directories(pyArcus - INTERFACE - $ - $ - ) --target_link_libraries(pyArcus INTERFACE arcus::arcus protobuf::libprotobuf cpython::cpython) -+target_link_libraries(pyArcus INTERFACE Arcus protobuf::libprotobuf Python::Python) - add_sip_module(pyArcus) - install_sip_module(pyArcus) - diff --git a/backports/py3-arcus/pyproject.patch b/backports/py3-arcus/pyproject.patch deleted file mode 100644 index 3dd7f3a..0000000 --- a/backports/py3-arcus/pyproject.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- /dev/null -+++ ./pyproject.toml.in -@@ -0,0 +1,17 @@ -+[build-system] -+requires = ["sip >=6, <7"] -+build-backend = "sipbuild.api" -+ -+[tool.sip.metadata] -+name = "pyArcus" -+ -+[tool.sip.project] -+builder-factory = "CMakeBuilder" -+sip-files-dir = "${CMAKE_CURRENT_SOURCE_DIR}/python/" -+sip-include-dirs = ["CMAKE_CURRENT_SOURCE_DIR/python/"] -+build-dir = "${CMAKE_CURRENT_BINARY_DIR}/pyArcus/" -+ -+[tool.sip.bindings.pyArcus] -+exceptions = true -+release-gil = true -+concatenate = 8 From 9e839bd17b0f12f5580b8ac6edd0df534b4689f7 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 20:42:58 -0400 Subject: [PATCH 087/210] unmaintained/py3-html5-parser: drop for in backports --- unmaintained/py3-html5-parser/APKBUILD | 33 -------------------------- 1 file changed, 33 deletions(-) delete mode 100644 unmaintained/py3-html5-parser/APKBUILD diff --git a/unmaintained/py3-html5-parser/APKBUILD b/unmaintained/py3-html5-parser/APKBUILD deleted file mode 100644 index 160a9ee..0000000 --- a/unmaintained/py3-html5-parser/APKBUILD +++ /dev/null @@ -1,33 +0,0 @@ -# Maintainer: Antoine Martin - -_pkgname="html5-parser" -pkgname='py3-html5-parser' -pkgver=0.4.9 -pkgrel=0 -pkgdesc="Fast C based HTML 5 parsing for python" -arch='x86_64' -url="https://github.com/kovidgoyal/${_pkgname}" -license='Apache' -checkdepends='py3-beautifulsoup4' -makedepends='py3-chardet py3-lxml py3-setuptools libxml2-dev python3-dev' -source="${pkgname}-${pkgver}.tar.gz::${url}/archive/v${pkgver}.tar.gz" - -build() { - cd "${srcdir}"/${_pkgname}-${pkgver} - - python3 setup.py build -} - -check() { - cd "${srcdir}"/${_pkgname}-${pkgver} - - python3 setup.py test -} - -package() { - cd "${srcdir}"/${_pkgname}-${pkgver} - python3 setup.py install --root="${pkgdir}" --optimize=1 --skip-build -} - - -sha512sums="31d0499e690c1cfe86fcaabddf4a5842b504706f6d95268dfad4ce80a8b91df6ba779c27dd4fe877232f6664142ed04b9d2af0aff601aa1855f91d9720adf512 py3-html5-parser-0.4.9.tar.gz" From 6abdbe7e50afa44051f81f1dd53f972be5c85761 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 20:43:44 -0400 Subject: [PATCH 088/210] backports/py3-mapbox-eacut: drop due to not needed --- backports/py3-mapbox-earcut/APKBUILD | 35 ---------------------------- 1 file changed, 35 deletions(-) delete mode 100644 backports/py3-mapbox-earcut/APKBUILD diff --git a/backports/py3-mapbox-earcut/APKBUILD b/backports/py3-mapbox-earcut/APKBUILD deleted file mode 100644 index fe17670..0000000 --- a/backports/py3-mapbox-earcut/APKBUILD +++ /dev/null @@ -1,35 +0,0 @@ -# Contributor: Aiden Grossman -# Maintainer: -pkgname=py3-mapbox-earcut -pkgver=1.0.1 -pkgrel=2 -pkgdesc="Python bindings for the mapbox earcut c++ library" -url="https://github.com/skogler/mapbox_earcut_python" -arch="all" -license="ISC" -depends="py3-numpy" -makedepends="py3-setuptools py3-pybind11-dev python3-dev py3-gpep517" -checkdepends="py3-pytest" -source="$pkgname-$pkgver.tar.gz::https://github.com/skogler/mapbox_earcut_python/archive/refs/tags/v$pkgver.tar.gz" -builddir="$srcdir/mapbox_earcut_python-$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 -} - -package() { - gpep517 install-wheel --destdir "$pkgdir" \ - .dist/*.whl -} - -sha512sums=" -cdb32585cbaf74c15e59af0ae70d983dd2f9bc9cfe1b59b3eadc4d442f7d962241854b589a035deae67cacd9334833b911d0981f0d417fe587348fc7d24f0c0a py3-mapbox-earcut-1.0.1.tar.gz -" From 59283db32af088273ac45376f9f0fba6881ceabc Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 20:44:08 -0400 Subject: [PATCH 089/210] backports/py3-trimesh: drop due to not needed --- backports/py3-trimesh/APKBUILD | 65 ---------------------------------- 1 file changed, 65 deletions(-) delete mode 100644 backports/py3-trimesh/APKBUILD diff --git a/backports/py3-trimesh/APKBUILD b/backports/py3-trimesh/APKBUILD deleted file mode 100644 index 7087c8d..0000000 --- a/backports/py3-trimesh/APKBUILD +++ /dev/null @@ -1,65 +0,0 @@ -# Contributor: Aiden Grossman -# Maintainer: -pkgname=py3-trimesh -pkgver=3.22.1 -pkgrel=2 -pkgdesc="Python library for working with triangular meshes" -url="https://github.com/mikedh/trimesh" -# x86, armhf, armv7 Tests fail on int64 to int32 casts on these arches -# s390x, no py3-rtree -# riscv64, no py3-shapely -arch="noarch !x86 !armhf !armv7 !s390x !riscv64" -# TODO: investigate why checks stall -options="!check" -license="MIT" -depends=" - py3-colorlog - py3-jsonschema - py3-lxml - py3-mapbox-earcut - py3-msgpack - py3-networkx - py3-numpy - py3-pillow - py3-requests - py3-rtree - py3-scipy - py3-shapely - py3-svgpath - python3 - " -makedepends=" - py3-gpep517 - py3-setuptools - py3-wheel - " -checkdepends="py3-pytest py3-pytest-xdist py3-pyinstrument" -subpackages="$pkgname-pyc" -source="$pkgname-$pkgver.tar.gz::https://github.com/mikedh/trimesh/archive/refs/tags/$pkgver.tar.gz" -builddir="$srcdir/trimesh-$pkgver" - -build() { - gpep517 build-wheel \ - --wheel-dir .dist \ - --output-fd 3 3>&1 >&2 -} - -check() { - # test_obj.py: no format zae, probably needs more investigation - python3 -m venv --clear --without-pip --system-site-packages .testenv - .testenv/bin/python3 -m installer .dist/*.whl - .testenv/bin/python3 -m pytest -n auto \ - --deselect tests/test_dae.py::DAETest::test_material_round \ - --deselect tests/test_dae.py::DAETest::test_obj_roundtrip \ - --deselect tests/test_light.py::LightTests::test_scene \ - --deselect tests/test_obj.py::OBJTest::test_multi_nodupe -} - -package() { - python3 -m installer -d "$pkgdir" \ - .dist/*.whl -} - -sha512sums=" -27952e0d29ccd110d4087b4144e0923706bed3cd0734e7a17d7f55738c6322849c5dad04ab4ecfe0638bc16d65d1e647d08905a396dd6ebd1f78c833a8b95636 py3-trimesh-3.22.1.tar.gz -" From e73030be6b7fb071e17d92f9118849c4ea100bca Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 20:44:34 -0400 Subject: [PATCH 090/210] backports/py3-numpy-stl: drop due to not needed --- backports/py3-numpy-stl/APKBUILD | 39 -------------------------------- 1 file changed, 39 deletions(-) delete mode 100644 backports/py3-numpy-stl/APKBUILD diff --git a/backports/py3-numpy-stl/APKBUILD b/backports/py3-numpy-stl/APKBUILD deleted file mode 100644 index 1191396..0000000 --- a/backports/py3-numpy-stl/APKBUILD +++ /dev/null @@ -1,39 +0,0 @@ -# Contributor: Aiden Grossman -# Maintainer: -pkgname=py3-numpy-stl -pkgver=3.2.0 -pkgrel=0 -pkgdesc="Library for working with STLs" -url="https://github.com/WoLpH/numpy-stl" -# s390x: no py3-utils -arch="noarch !s390x" -license="BSD-3-Clause" -depends="python3 py3-utils py3-numpy" -makedepends="py3-setuptools py3-gpep517" -checkdepends="py3-pytest py3-pytest-cov py3-pygments" -subpackages="$pkgname-pyc" -source="$pkgname-$pkgver.tar.gz::https://github.com/wolph/numpy-stl/archive/refs/tags/v$pkgver.tar.gz" -builddir="$srcdir/numpy-stl-$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 - # deselected test needs xvfb-run and fails - .testenv/bin/python3 -m pytest \ - --deselect tests/test_ascii.py::test_use_with_qt_with_custom_locale_decimal_delimeter -} - -package() { - gpep517 install-wheel --destdir "$pkgdir" \ - .dist/*.whl -} - -sha512sums=" -a08053ed264dbfd629229af3db9c38deed2932b28feced56e2d4c20476f1ba85ddc80881fb82330ea3f4fff9a3f91da20db7447050da5c75f1c04455a67538dc py3-numpy-stl-3.2.0.tar.gz -" From d09e18a9dab11c66028f0dd20ba56aea7c9ec7ec Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 20:45:18 -0400 Subject: [PATCH 091/210] backports/py3-pyinstrument: drop due to not needed --- backports/py3-pyinstrument/APKBUILD | 50 ----------------------------- 1 file changed, 50 deletions(-) delete mode 100644 backports/py3-pyinstrument/APKBUILD diff --git a/backports/py3-pyinstrument/APKBUILD b/backports/py3-pyinstrument/APKBUILD deleted file mode 100644 index 6070e94..0000000 --- a/backports/py3-pyinstrument/APKBUILD +++ /dev/null @@ -1,50 +0,0 @@ -# Contributor: Aiden Grossman -# Maintainer: Celeste -maintainer="Celeste " -pkgname=py3-pyinstrument -pkgver=5.0.2 -pkgrel=0 -pkgdesc="Call stack profiler for Python" -url="https://github.com/joerick/pyinstrument" -arch="all" -license="BSD-3-Clause" -makedepends=" - py3-gpep517 - py3-setuptools - py3-wheel - python3-dev - " -checkdepends=" - py3-flaky - py3-greenlet - py3-pytest - py3-pytest-asyncio - py3-trio - " -subpackages="$pkgname-pyc" -source="$pkgname-$pkgver.tar.gz::https://github.com/joerick/pyinstrument/archive/refs/tags/v$pkgver.tar.gz" -builddir="$srcdir/pyinstrument-$pkgver" - -build() { - gpep517 build-wheel \ - --wheel-dir .dist \ - --output-fd 3 3>&1 >&2 -} - -check() { - [ -d "pyinstrument" ] && mv -v pyinstrument pyinstrument.src - - python3 -m venv --clear --without-pip --system-site-packages .testenv - .testenv/bin/python3 -m installer .dist/*.whl - - # test_cmdline.py tries to run "pyinstrument" executable - PATH="$builddir/.testenv/bin:$PATH" .testenv/bin/python3 -m pytest -} - -package() { - python3 -m installer -d "$pkgdir" .dist/*.whl -} - -sha512sums=" -7eeb0e05ceb31eab6b4cfcfae7095e7fe9399a7292a12ea427c6ce4f343b1f85be60496c071c2a983b9d0b40f76e18140a836b77a6df0765e40779758212d4cf py3-pyinstrument-5.0.2.tar.gz -" From b72d6e62e430f2e86d0b733ee09282639e192e28 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 20:45:38 -0400 Subject: [PATCH 092/210] backports/py3-pynest2d: drop due to not needed --- backports/py3-pynest2d/APKBUILD | 49 ---- backports/py3-pynest2d/cmake-helpers.patch | 253 --------------------- backports/py3-pynest2d/cmake.patch | 34 --- backports/py3-pynest2d/pyproject.patch | 21 -- 4 files changed, 357 deletions(-) delete mode 100644 backports/py3-pynest2d/APKBUILD delete mode 100644 backports/py3-pynest2d/cmake-helpers.patch delete mode 100644 backports/py3-pynest2d/cmake.patch delete mode 100644 backports/py3-pynest2d/pyproject.patch diff --git a/backports/py3-pynest2d/APKBUILD b/backports/py3-pynest2d/APKBUILD deleted file mode 100644 index 503b762..0000000 --- a/backports/py3-pynest2d/APKBUILD +++ /dev/null @@ -1,49 +0,0 @@ -# Contributor: Anjandev Momi -# Maintainer: Anjandev Momi -pkgname=py3-pynest2d -pkgver=5.2.2 -pkgrel=5 -pkgdesc="Python bindings for libnest2d" -url="https://github.com/Ultimaker/pynest2d" -arch="all" -license="LGPL-3.0-or-later" -makedepends="samurai cmake libnest2d-dev clipper-dev py3-sip nlopt-dev boost-dev python3-dev" -source="$pkgname-$pkgver.tar.gz::https://github.com/Ultimaker/pynest2d/archive/refs/tags/$pkgver.tar.gz - cmake.patch - cmake-helpers.patch - pyproject.patch" -builddir="$srcdir/pynest2d-$pkgver" -options="!check" # doesn't seem like tests are packaged anymore - -prepare() { - mv ./python ./src - default_prepare -} - -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=Release \ - $CMAKE_CROSSOPTS - cmake --build build -} - -check() { - cd build - ctest -} - -package() { - DESTDIR="$pkgdir" cmake --install build -} - -sha512sums=" -f5d701e431c81f8d2da7b14ca5677d3303064cf7910e80d289d7ff8fe99117fb9c470242f25f21fa8e1f064c63accf5349f4956981e316b09b14342223f79b61 py3-pynest2d-5.2.2.tar.gz -c8133d221a2fd8ed5fb32933a69f992dab2e83cdb9db30dcb715ebdfe6d403be3e94df393a921f506b63ef9d8b30a107f26b57cd39810faa9bee461afe5e1afd cmake.patch -dbf6609a21e39ae87fa89f2faf9c98a011f287cb383c5b74f92f41e3a350b487e69643c94110f7fcc25e9e25921a698cc20d9ee021d36ff908d03c0d5ca88a46 cmake-helpers.patch -f1b710509d97b5a2a4d021747e73884d27ae00fd93a04c90be01f123cdcc59be4757b4a73dff9c9921b7794551e531cf6729e4211144c60294d107b92a928b51 pyproject.patch -" diff --git a/backports/py3-pynest2d/cmake-helpers.patch b/backports/py3-pynest2d/cmake-helpers.patch deleted file mode 100644 index 288df07..0000000 --- a/backports/py3-pynest2d/cmake-helpers.patch +++ /dev/null @@ -1,253 +0,0 @@ ---- /dev/null -+++ ./cmake/CMakeBuilder.py -@@ -0,0 +1,13 @@ -+from sipbuild import SetuptoolsBuilder -+ -+ -+class CMakeBuilder(SetuptoolsBuilder): -+ def __init__(self, project, **kwargs): -+ print("Using the CMake builder") -+ super().__init__(project, **kwargs) -+ -+ def build(self): -+ """ Only Generate the source files """ -+ print("Generating the source files") -+ self._generate_bindings() -+ self._generate_scripts() -\ No newline at end of file ---- /dev/null -+++ ./cmake/FindSIP.py -@@ -0,0 +1,57 @@ -+# -*- coding: utf-8 -*- -+# -+# Copyright (c) 2007, Simon Edwards -+# All rights reserved. -+# -+# Redistribution and use in source and binary forms, with or without -+# modification, are permitted provided that the following conditions are met: -+# * Redistributions of source code must retain the above copyright -+# notice, this list of conditions and the following disclaimer. -+# * Redistributions in binary form must reproduce the above copyright -+# notice, this list of conditions and the following disclaimer in the -+# documentation and/or other materials provided with the distribution. -+# * Neither the name of the Simon Edwards nor the -+# names of its contributors may be used to endorse or promote products -+# derived from this software without specific prior written permission. -+# -+# THIS SOFTWARE IS PROVIDED BY Simon Edwards ''AS IS'' AND ANY -+# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -+# DISCLAIMED. IN NO EVENT SHALL Simon Edwards BE LIABLE FOR ANY -+# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -+# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -+# -+# FindSIP.py -+# Copyright (c) 2007, Simon Edwards -+# Redistribution and use is allowed according to the terms of the BSD license. -+# For details see the accompanying COPYING-CMAKE-SCRIPTS file. -+ -+try: -+ import sipbuild -+ -+ print("sip_version:%06.0x" % sipbuild.version.SIP_VERSION) -+ print("sip_version_num:%d" % sipbuild.version.SIP_VERSION) -+ print("sip_version_str:%s" % sipbuild.version.SIP_VERSION_STR) -+ -+ from distutils.sysconfig import get_python_lib -+ python_modules_dir = get_python_lib(plat_specific=1) -+ print("default_sip_dir:%s" % python_modules_dir) -+except ImportError: # Code for SIP v4 -+ import sipconfig -+ -+ sipcfg = sipconfig.Configuration() -+ print("sip_version:%06.0x" % sipcfg.sip_version) -+ print("sip_version_num:%d" % sipcfg.sip_version) -+ print("sip_version_str:%s" % sipcfg.sip_version_str) -+ print("sip_bin:%s" % sipcfg.sip_bin) -+ print("default_sip_dir:%s" % sipcfg.default_sip_dir) -+ print("sip_inc_dir:%s" % sipcfg.sip_inc_dir) -+ # SIP 4.19.10+ has new sipcfg.sip_module_dir -+ if hasattr(sipcfg, "sip_module_dir"): -+ print("sip_module_dir:%s" % sipcfg.sip_module_dir) -+ else: -+ print("sip_module_dir:%s" % sipcfg.sip_mod_dir) ---- /dev/null -+++ ./cmake/FindSIP.cmake -@@ -0,0 +1,65 @@ -+# Find SIP -+# ~~~~~~~~ -+# -+# SIP website: http://www.riverbankcomputing.co.uk/sip/index.php -+# -+# Find the installed version of SIP. FindSIP should be called after Python -+# has been found. -+# -+# This file defines the following variables: -+# -+# SIP_VERSION - The version of SIP found expressed as a 6 digit hex number -+# suitable for comparison as a string. -+# -+# SIP_VERSION_STR - The version of SIP found as a human readable string. -+# -+# SIP_BINARY_PATH - Path and filename of the SIP command line executable. -+# -+# SIP_INCLUDE_DIR - Directory holding the SIP C++ header file. -+# -+# SIP_DEFAULT_SIP_DIR - Default directory where .sip files should be installed -+# into. -+ -+# Copyright (c) 2007, Simon Edwards -+# Redistribution and use is allowed according to the terms of the BSD license. -+# For details see the accompanying COPYING-CMAKE-SCRIPTS file. -+ -+ -+ -+IF(SIP_VERSION OR SIP_BUILD_EXECUTABLE) -+ # Already in cache, be silent -+ SET(SIP_FOUND TRUE) -+ELSE() -+ -+ FIND_FILE(_find_sip_py FindSIP.py PATHS ${CMAKE_MODULE_PATH} NO_CMAKE_FIND_ROOT_PATH) -+ -+ EXECUTE_PROCESS(COMMAND ${Python_EXECUTABLE} ${_find_sip_py} OUTPUT_VARIABLE sip_config) -+ IF(sip_config) -+ STRING(REGEX REPLACE "^sip_version:([^\n]+).*$" "\\1" SIP_VERSION ${sip_config}) -+ STRING(REGEX REPLACE ".*\nsip_version_num:([^\n]+).*$" "\\1" SIP_VERSION_NUM ${sip_config}) -+ STRING(REGEX REPLACE ".*\nsip_version_str:([^\n]+).*$" "\\1" SIP_VERSION_STR ${sip_config}) -+ STRING(REGEX REPLACE ".*\ndefault_sip_dir:([^\n]+).*$" "\\1" SIP_DEFAULT_SIP_DIR ${sip_config}) -+ IF(${SIP_VERSION_STR} VERSION_LESS 5) -+ STRING(REGEX REPLACE ".*\nsip_bin:([^\n]+).*$" "\\1" SIP_BINARY_PATH ${sip_config}) -+ STRING(REGEX REPLACE ".*\nsip_inc_dir:([^\n]+).*$" "\\1" SIP_INCLUDE_DIR ${sip_config}) -+ STRING(REGEX REPLACE ".*\nsip_module_dir:([^\n]+).*$" "\\1" SIP_MODULE_DIR ${sip_config}) -+ ELSE(${SIP_VERSION_STR} VERSION_LESS 5) -+ FIND_PROGRAM(SIP_BUILD_EXECUTABLE sip-build) -+ ENDIF(${SIP_VERSION_STR} VERSION_LESS 5) -+ SET(SIP_FOUND TRUE) -+ ENDIF(sip_config) -+ -+ IF(SIP_FOUND) -+ IF(NOT SIP_FIND_QUIETLY) -+ MESSAGE(STATUS "Found SIP version: ${SIP_VERSION_STR}") -+ ENDIF(NOT SIP_FIND_QUIETLY) -+ ELSE(SIP_FOUND) -+ IF(SIP_FIND_REQUIRED) -+ MESSAGE(FATAL_ERROR "Could not find SIP") -+ ENDIF(SIP_FIND_REQUIRED) -+ ENDIF(SIP_FOUND) -+ -+ENDIF() -+ -+include(${CMAKE_SOURCE_DIR}/cmake/SIPMacros.cmake) -+ADD_DEFINITIONS(-DSIP_VERSION=0x${SIP_VERSION}) ---- /dev/null -+++ ./cmake/SIPMacros.cmake -@@ -0,0 +1,105 @@ -+# Macros for SIP -+# ~~~~~~~~~~~~~~ -+ -+set(SIP_ARGS --pep484-pyi --no-protected-is-public) -+ -+function(add_sip_module MODULE_TARGET) -+ if(NOT SIP_BUILD_EXECUTABLE) -+ set(SIP_BUILD_EXECUTABLE ${CMAKE_PREFIX_PATH}/Scripts/sip-build) -+ endif() -+ -+ message(STATUS "SIP: Generating pyproject.toml") -+ configure_file(${CMAKE_SOURCE_DIR}/pyproject.toml.in ${CMAKE_CURRENT_BINARY_DIR}/pyproject.toml) -+ configure_file(${CMAKE_SOURCE_DIR}/cmake/CMakeBuilder.py ${CMAKE_CURRENT_BINARY_DIR}/CMakeBuilder.py) -+ if(WIN32) -+ set(ext .pyd) -+ set(env_path_sep ";") -+ else() -+ set(ext .so) -+ set(env_path_sep ":") -+ endif() -+ -+ message(STATUS "SIP: Generating source files") -+ execute_process( -+ COMMAND ${CMAKE_COMMAND} -E env "PYTHONPATH=${PYTHONPATH}${env_path_sep}$ENV{PYTHONPATH}${env_path_sep}${CMAKE_CURRENT_BINARY_DIR}" ${SIP_BUILD_EXECUTABLE} ${SIP_ARGS} -+ COMMAND_ECHO STDOUT -+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/ -+ ) -+ # This will generate the source-files during the configuration step in CMake. Needed to obtain the sources -+ -+ # Touch the generated files (8 in total) to make them dirty and force them to rebuild -+ message(STATUS "SIP: Touching the source files") -+ set(_sip_output_files) -+ list(LENGTH SIP_FILES _no_outputfiles) -+ foreach(_concat_file_nr RANGE 0 ${_no_outputfiles}) -+ if(${_concat_file_nr} LESS 8) -+ list(APPEND _sip_output_files "${CMAKE_CURRENT_BINARY_DIR}/${MODULE_TARGET}/${MODULE_TARGET}/sip${MODULE_TARGET}part${_concat_file_nr}.cpp") -+ endif() -+ endforeach() -+ -+ # Find the generated source files -+ message(STATUS "SIP: Collecting the generated source files") -+ file(GLOB sip_c "${CMAKE_CURRENT_BINARY_DIR}/${MODULE_TARGET}/${MODULE_TARGET}/*.c") -+ file(GLOB sip_cpp "${CMAKE_CURRENT_BINARY_DIR}/${MODULE_TARGET}/${MODULE_TARGET}/*.cpp") -+ file(GLOB sip_hdr "${CMAKE_CURRENT_BINARY_DIR}/${MODULE_TARGET}/${MODULE_TARGET}/*.h") -+ -+ # Add the user specified source files -+ message(STATUS "SIP: Collecting the user specified source files") -+ get_target_property(usr_src ${MODULE_TARGET} SOURCES) -+ -+ # create the target library and link all the files (generated and user specified -+ message(STATUS "SIP: Linking the interface target against the shared library") -+ set(sip_sources "${sip_c}" "${sip_cpp}") -+ if(${usr_src}) -+ list(APPEND sip_sources "${usr_src}") -+ endif() -+ -+ if (BUILD_SHARED_LIBS) -+ add_library("sip_${MODULE_TARGET}" SHARED ${sip_sources}) -+ else() -+ add_library("sip_${MODULE_TARGET}" STATIC ${sip_sources}) -+ endif() -+ -+ # Make sure that the library name of the target is the same as the MODULE_TARGET with the appropriate extension -+ target_link_libraries("sip_${MODULE_TARGET}" PRIVATE "${MODULE_TARGET}") -+ set_target_properties("sip_${MODULE_TARGET}" PROPERTIES PREFIX "") -+ set_target_properties("sip_${MODULE_TARGET}" PROPERTIES SUFFIX ${ext}) -+ set_target_properties("sip_${MODULE_TARGET}" PROPERTIES OUTPUT_NAME "${MODULE_TARGET}") -+ -+ # Add the custom command to (re-)generate the files and mark them as dirty. This allows the user to actually work -+ # on the sip definition files without having to reconfigure the complete project. -+ add_custom_command( -+ TARGET "sip_${MODULE_TARGET}" -+ COMMAND ${CMAKE_COMMAND} -E env "PYTHONPATH=${PYTHONPATH}${env_path_sep}$ENV{PYTHONPATH}${env_path_sep}${CMAKE_CURRENT_BINARY_DIR}" ${SIP_BUILD_EXECUTABLE} ${SIP_ARGS} -+ COMMAND ${CMAKE_COMMAND} -E touch ${_sip_output_files} -+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/ -+ MAIN_DEPENDENCY ${MODULE_SIP} -+ DEPENDS ${sip_sources} -+ VERBATIM -+ ) -+ -+ set_target_properties("sip_${MODULE_TARGET}" -+ PROPERTIES -+ RESOURCE "${CMAKE_CURRENT_BINARY_DIR}/${MODULE_TARGET}/${MODULE_TARGET}/${MODULE_TARGET}.pyi") -+endfunction() -+ -+function(install_sip_module MODULE_TARGET) -+ if(DEFINED ARGV1) -+ set(_install_path ${ARGV1}) -+ else() -+ if(DEFINED Python_SITEARCH) -+ set(_install_path ${Python_SITEARCH}) -+ elseif(DEFINED Python_SITELIB) -+ set(_install_path ${Python_SITELIB}) -+ else() -+ message(FATAL_ERROR "SIP: Specify the site-packages location") -+ endif() -+ endif() -+ message(STATUS "SIP: Installing Python module and PEP 484 file in ${_install_path}") -+ install(TARGETS "sip_${MODULE_TARGET}" -+ ARCHIVE DESTINATION ${_install_path} -+ LIBRARY DESTINATION ${_install_path} -+ RUNTIME DESTINATION ${_install_path} -+ RESOURCE DESTINATION ${_install_path} -+ ) -+endfunction() diff --git a/backports/py3-pynest2d/cmake.patch b/backports/py3-pynest2d/cmake.patch deleted file mode 100644 index c2ac24e..0000000 --- a/backports/py3-pynest2d/cmake.patch +++ /dev/null @@ -1,34 +0,0 @@ ---- ./CMakeLists.txt.orig -+++ ./CMakeLists.txt -@@ -2,16 +2,25 @@ - project(pynest2d) - cmake_minimum_required(VERSION 3.20) - --find_package(nest2d REQUIRED) --find_package(cpython REQUIRED) -+list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake) - --find_package(standardprojectsettings REQUIRED) --find_package(sipbuildtool REQUIRED) -+find_package(Libnest2D REQUIRED) - -+find_package(Python REQUIRED COMPONENTS Interpreter Development) -+find_package(SIP REQUIRED 6.5.0) -+ - add_library(pynest2d INTERFACE) --use_threads(pynest2d) - --target_link_libraries(pynest2d INTERFACE nest2d::nest2d cpython::cpython) -+target_include_directories(pynest2d -+ INTERFACE -+ $ -+ $ -+ ) -+ -+find_package(Threads REQUIRED) -+find_package(Boost REQUIRED) -+target_link_libraries(pynest2d INTERFACE Libnest2D::libnest2d Python::Python Threads::Threads Boost::boost) -+ - add_sip_module(pynest2d) - install_sip_module(pynest2d) - diff --git a/backports/py3-pynest2d/pyproject.patch b/backports/py3-pynest2d/pyproject.patch deleted file mode 100644 index 3c74389..0000000 --- a/backports/py3-pynest2d/pyproject.patch +++ /dev/null @@ -1,21 +0,0 @@ ---- /dev/null -+++ ./pyproject.toml.in -@@ -0,0 +1,17 @@ -+[build-system] -+requires = ["sip >=6, <7"] -+build-backend = "sipbuild.api" -+ -+[tool.sip.metadata] -+name = "pynest2d" -+ -+[tool.sip.project] -+builder-factory = "CMakeBuilder" -+sip-files-dir = "${CMAKE_CURRENT_SOURCE_DIR}/src/" -+sip-include-dirs = ["CMAKE_CURRENT_SOURCE_DIR/src/"] -+build-dir = "${CMAKE_CURRENT_BINARY_DIR}/pynest2d/" -+ -+[tool.sip.bindings.pynest2d] -+exceptions = true -+release-gil = true -+concatenate = 8 -\ No newline at end of file From 6a037b09a692047293fbaa347cfb52c55e9d13d7 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 20:46:17 -0400 Subject: [PATCH 093/210] backports/py3-rtree: drop due to not needed --- backports/py3-rtree/APKBUILD | 39 ------------------------------------ 1 file changed, 39 deletions(-) delete mode 100644 backports/py3-rtree/APKBUILD diff --git a/backports/py3-rtree/APKBUILD b/backports/py3-rtree/APKBUILD deleted file mode 100644 index f42ccfc..0000000 --- a/backports/py3-rtree/APKBUILD +++ /dev/null @@ -1,39 +0,0 @@ -# Contributor: Alex Yam -# Maintainer: Celeste -maintainer="Celeste " -pkgname=py3-rtree -pkgver=1.4.0 -pkgrel=1 -pkgdesc="Python3 library for r-tree spatial index (wrapper for libspatialindex)" -url="https://pypi.org/project/Rtree/" -# s390x: Test failed: IndexSerialization::test_interleaving - AssertionError -# s390x: Test failed: IndexStream::test_stream_input - AssertionError -arch="noarch !s390x" -license="MIT" -depends="python3 libspatialindex-dev" -makedepends="py3-setuptools py3-wheel py3-gpep517" -checkdepends="py3-pytest py3-numpy" -subpackages="$pkgname-pyc" -source="$pkgname-$pkgver.tar.gz::https://github.com/Toblerity/rtree/archive/$pkgver.tar.gz" -builddir="$srcdir/rtree-$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 -v --doctest-modules rtree tests -} - -package() { - gpep517 install-wheel --destdir "$pkgdir" \ - .dist/*.whl -} - -sha512sums=" -9f253a4e4bce1e9210943d1a7b211895baf0478927c58a576235492f2705f4ff61df5fff46db382d6b7c04bde058f046ea0a408a4b504bd1a9bde37c8b1c277c py3-rtree-1.4.0.tar.gz -" From 26821abb534e5e24a7b73bb7cd011bbf896c23ab Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 20:46:39 -0400 Subject: [PATCH 094/210] backports/py3-svgpath: drop due to not needed --- .../105_use-better-than-nothing-font.patch | 300 ------------------ backports/py3-svgpath/APKBUILD | 41 --- backports/py3-svgpath/no-install-tests.patch | 15 - 3 files changed, 356 deletions(-) delete mode 100644 backports/py3-svgpath/105_use-better-than-nothing-font.patch delete mode 100644 backports/py3-svgpath/APKBUILD delete mode 100644 backports/py3-svgpath/no-install-tests.patch diff --git a/backports/py3-svgpath/105_use-better-than-nothing-font.patch b/backports/py3-svgpath/105_use-better-than-nothing-font.patch deleted file mode 100644 index 7e3d18d..0000000 --- a/backports/py3-svgpath/105_use-better-than-nothing-font.patch +++ /dev/null @@ -1,300 +0,0 @@ -From a17ed35e490a99a7dfab9833f6f3be86f004f699 Mon Sep 17 00:00:00 2001 -From: Benjamin Drung -Date: Fri, 15 Dec 2023 15:32:16 +0100 -Subject: [PATCH] tests: Use better than nothing font -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Pillow 10.1.0 uses a version of Aileron Regular instead of the previous -“better than nothing” default font (in case FreeType support is -available). This font change changes the resulting bitmap. - -Use the "better than nothing" font to keep the expected result -identical. The proper solution is either to use one specific font in -svg.path or make pillow support loading the “better than nothing” -default font. - -Bug-Debian: https://bugs.debian.org/1055159 ---- - tests/font.py | 145 ++++++++++++++++++++++++++++++++ - tests/test_boundingbox_image.py | 18 ++-- - tests/test_image.py | 18 +++- - 3 files changed, 170 insertions(+), 11 deletions(-) - create mode 100644 tests/font.py - -diff --git a/tests/font.py b/tests/font.py -new file mode 100644 -index 0000000..d375f49 ---- /dev/null -+++ b/tests/font.py -@@ -0,0 +1,145 @@ -+# Code taken from https://github.com/python-pillow/Pillow/blob/main/src/PIL/ImageFont.py -+# -+# License: the open source HPND License -+# Copyright (c) 1997-2003 by Secret Labs AB -+# Copyright (c) 1996-2003 by Fredrik Lundh -+ -+from PIL import Image, ImageFont -+from io import BytesIO -+import base64 -+ -+ -+def get_better_than_nothing_font(): -+ font = ImageFont.ImageFont() -+ font._load_pilfont_data( -+ # courB08 -+ BytesIO( -+ base64.b64decode( -+ b""" -+UElMZm9udAo7Ozs7OzsxMDsKREFUQQoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAA//8AAQAAAAAAAAABAAEA -+BgAAAAH/+gADAAAAAQAAAAMABgAGAAAAAf/6AAT//QADAAAABgADAAYAAAAA//kABQABAAYAAAAL -+AAgABgAAAAD/+AAFAAEACwAAABAACQAGAAAAAP/5AAUAAAAQAAAAFQAHAAYAAP////oABQAAABUA -+AAAbAAYABgAAAAH/+QAE//wAGwAAAB4AAwAGAAAAAf/5AAQAAQAeAAAAIQAIAAYAAAAB//kABAAB -+ACEAAAAkAAgABgAAAAD/+QAE//0AJAAAACgABAAGAAAAAP/6AAX//wAoAAAALQAFAAYAAAAB//8A -+BAACAC0AAAAwAAMABgAAAAD//AAF//0AMAAAADUAAQAGAAAAAf//AAMAAAA1AAAANwABAAYAAAAB -+//kABQABADcAAAA7AAgABgAAAAD/+QAFAAAAOwAAAEAABwAGAAAAAP/5AAYAAABAAAAARgAHAAYA -+AAAA//kABQAAAEYAAABLAAcABgAAAAD/+QAFAAAASwAAAFAABwAGAAAAAP/5AAYAAABQAAAAVgAH -+AAYAAAAA//kABQAAAFYAAABbAAcABgAAAAD/+QAFAAAAWwAAAGAABwAGAAAAAP/5AAUAAABgAAAA -+ZQAHAAYAAAAA//kABQAAAGUAAABqAAcABgAAAAD/+QAFAAAAagAAAG8ABwAGAAAAAf/8AAMAAABv -+AAAAcQAEAAYAAAAA//wAAwACAHEAAAB0AAYABgAAAAD/+gAE//8AdAAAAHgABQAGAAAAAP/7AAT/ -+/gB4AAAAfAADAAYAAAAB//oABf//AHwAAACAAAUABgAAAAD/+gAFAAAAgAAAAIUABgAGAAAAAP/5 -+AAYAAQCFAAAAiwAIAAYAAP////oABgAAAIsAAACSAAYABgAA////+gAFAAAAkgAAAJgABgAGAAAA -+AP/6AAUAAACYAAAAnQAGAAYAAP////oABQAAAJ0AAACjAAYABgAA////+gAFAAAAowAAAKkABgAG -+AAD////6AAUAAACpAAAArwAGAAYAAAAA//oABQAAAK8AAAC0AAYABgAA////+gAGAAAAtAAAALsA -+BgAGAAAAAP/6AAQAAAC7AAAAvwAGAAYAAP////oABQAAAL8AAADFAAYABgAA////+gAGAAAAxQAA -+AMwABgAGAAD////6AAUAAADMAAAA0gAGAAYAAP////oABQAAANIAAADYAAYABgAA////+gAGAAAA -+2AAAAN8ABgAGAAAAAP/6AAUAAADfAAAA5AAGAAYAAP////oABQAAAOQAAADqAAYABgAAAAD/+gAF -+AAEA6gAAAO8ABwAGAAD////6AAYAAADvAAAA9gAGAAYAAAAA//oABQAAAPYAAAD7AAYABgAA//// -++gAFAAAA+wAAAQEABgAGAAD////6AAYAAAEBAAABCAAGAAYAAP////oABgAAAQgAAAEPAAYABgAA -+////+gAGAAABDwAAARYABgAGAAAAAP/6AAYAAAEWAAABHAAGAAYAAP////oABgAAARwAAAEjAAYA -+BgAAAAD/+gAFAAABIwAAASgABgAGAAAAAf/5AAQAAQEoAAABKwAIAAYAAAAA//kABAABASsAAAEv -+AAgABgAAAAH/+QAEAAEBLwAAATIACAAGAAAAAP/5AAX//AEyAAABNwADAAYAAAAAAAEABgACATcA -+AAE9AAEABgAAAAH/+QAE//wBPQAAAUAAAwAGAAAAAP/7AAYAAAFAAAABRgAFAAYAAP////kABQAA -+AUYAAAFMAAcABgAAAAD/+wAFAAABTAAAAVEABQAGAAAAAP/5AAYAAAFRAAABVwAHAAYAAAAA//sA -+BQAAAVcAAAFcAAUABgAAAAD/+QAFAAABXAAAAWEABwAGAAAAAP/7AAYAAgFhAAABZwAHAAYAAP// -+//kABQAAAWcAAAFtAAcABgAAAAD/+QAGAAABbQAAAXMABwAGAAAAAP/5AAQAAgFzAAABdwAJAAYA -+AP////kABgAAAXcAAAF+AAcABgAAAAD/+QAGAAABfgAAAYQABwAGAAD////7AAUAAAGEAAABigAF -+AAYAAP////sABQAAAYoAAAGQAAUABgAAAAD/+wAFAAABkAAAAZUABQAGAAD////7AAUAAgGVAAAB -+mwAHAAYAAAAA//sABgACAZsAAAGhAAcABgAAAAD/+wAGAAABoQAAAacABQAGAAAAAP/7AAYAAAGn -+AAABrQAFAAYAAAAA//kABgAAAa0AAAGzAAcABgAA////+wAGAAABswAAAboABQAGAAD////7AAUA -+AAG6AAABwAAFAAYAAP////sABgAAAcAAAAHHAAUABgAAAAD/+wAGAAABxwAAAc0ABQAGAAD////7 -+AAYAAgHNAAAB1AAHAAYAAAAA//sABQAAAdQAAAHZAAUABgAAAAH/+QAFAAEB2QAAAd0ACAAGAAAA -+Av/6AAMAAQHdAAAB3gAHAAYAAAAA//kABAABAd4AAAHiAAgABgAAAAD/+wAF//0B4gAAAecAAgAA -+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAB -+//sAAwACAecAAAHpAAcABgAAAAD/+QAFAAEB6QAAAe4ACAAGAAAAAP/5AAYAAAHuAAAB9AAHAAYA -+AAAA//oABf//AfQAAAH5AAUABgAAAAD/+QAGAAAB+QAAAf8ABwAGAAAAAv/5AAMAAgH/AAACAAAJ -+AAYAAAAA//kABQABAgAAAAIFAAgABgAAAAH/+gAE//sCBQAAAggAAQAGAAAAAP/5AAYAAAIIAAAC -+DgAHAAYAAAAB//kABf/+Ag4AAAISAAUABgAA////+wAGAAACEgAAAhkABQAGAAAAAP/7AAX//gIZ -+AAACHgADAAYAAAAA//wABf/9Ah4AAAIjAAEABgAAAAD/+QAHAAACIwAAAioABwAGAAAAAP/6AAT/ -++wIqAAACLgABAAYAAAAA//kABP/8Ai4AAAIyAAMABgAAAAD/+gAFAAACMgAAAjcABgAGAAAAAf/5 -+AAT//QI3AAACOgAEAAYAAAAB//kABP/9AjoAAAI9AAQABgAAAAL/+QAE//sCPQAAAj8AAgAGAAD/ -+///7AAYAAgI/AAACRgAHAAYAAAAA//kABgABAkYAAAJMAAgABgAAAAH//AAD//0CTAAAAk4AAQAG -+AAAAAf//AAQAAgJOAAACUQADAAYAAAAB//kABP/9AlEAAAJUAAQABgAAAAH/+QAF//4CVAAAAlgA -+BQAGAAD////7AAYAAAJYAAACXwAFAAYAAP////kABgAAAl8AAAJmAAcABgAA////+QAGAAACZgAA -+Am0ABwAGAAD////5AAYAAAJtAAACdAAHAAYAAAAA//sABQACAnQAAAJ5AAcABgAA////9wAGAAAC -+eQAAAoAACQAGAAD////3AAYAAAKAAAAChwAJAAYAAP////cABgAAAocAAAKOAAkABgAA////9wAG -+AAACjgAAApUACQAGAAD////4AAYAAAKVAAACnAAIAAYAAP////cABgAAApwAAAKjAAkABgAA//// -++gAGAAACowAAAqoABgAGAAAAAP/6AAUAAgKqAAACrwAIAAYAAP////cABQAAAq8AAAK1AAkABgAA -+////9wAFAAACtQAAArsACQAGAAD////3AAUAAAK7AAACwQAJAAYAAP////gABQAAAsEAAALHAAgA -+BgAAAAD/9wAEAAACxwAAAssACQAGAAAAAP/3AAQAAALLAAACzwAJAAYAAAAA//cABAAAAs8AAALT -+AAkABgAAAAD/+AAEAAAC0wAAAtcACAAGAAD////6AAUAAALXAAAC3QAGAAYAAP////cABgAAAt0A -+AALkAAkABgAAAAD/9wAFAAAC5AAAAukACQAGAAAAAP/3AAUAAALpAAAC7gAJAAYAAAAA//cABQAA -+Au4AAALzAAkABgAAAAD/9wAFAAAC8wAAAvgACQAGAAAAAP/4AAUAAAL4AAAC/QAIAAYAAAAA//oA -+Bf//Av0AAAMCAAUABgAA////+gAGAAADAgAAAwkABgAGAAD////3AAYAAAMJAAADEAAJAAYAAP// -+//cABgAAAxAAAAMXAAkABgAA////9wAGAAADFwAAAx4ACQAGAAD////4AAYAAAAAAAoABwASAAYA -+AP////cABgAAAAcACgAOABMABgAA////+gAFAAAADgAKABQAEAAGAAD////6AAYAAAAUAAoAGwAQ -+AAYAAAAA//gABgAAABsACgAhABIABgAAAAD/+AAGAAAAIQAKACcAEgAGAAAAAP/4AAYAAAAnAAoA -+LQASAAYAAAAA//gABgAAAC0ACgAzABIABgAAAAD/+QAGAAAAMwAKADkAEQAGAAAAAP/3AAYAAAA5 -+AAoAPwATAAYAAP////sABQAAAD8ACgBFAA8ABgAAAAD/+wAFAAIARQAKAEoAEQAGAAAAAP/4AAUA -+AABKAAoATwASAAYAAAAA//gABQAAAE8ACgBUABIABgAAAAD/+AAFAAAAVAAKAFkAEgAGAAAAAP/5 -+AAUAAABZAAoAXgARAAYAAAAA//gABgAAAF4ACgBkABIABgAAAAD/+AAGAAAAZAAKAGoAEgAGAAAA -+AP/4AAYAAABqAAoAcAASAAYAAAAA//kABgAAAHAACgB2ABEABgAAAAD/+AAFAAAAdgAKAHsAEgAG -+AAD////4AAYAAAB7AAoAggASAAYAAAAA//gABQAAAIIACgCHABIABgAAAAD/+AAFAAAAhwAKAIwA -+EgAGAAAAAP/4AAUAAACMAAoAkQASAAYAAAAA//gABQAAAJEACgCWABIABgAAAAD/+QAFAAAAlgAK -+AJsAEQAGAAAAAP/6AAX//wCbAAoAoAAPAAYAAAAA//oABQABAKAACgClABEABgAA////+AAGAAAA -+pQAKAKwAEgAGAAD////4AAYAAACsAAoAswASAAYAAP////gABgAAALMACgC6ABIABgAA////+QAG -+AAAAugAKAMEAEQAGAAD////4AAYAAgDBAAoAyAAUAAYAAP////kABQACAMgACgDOABMABgAA//// -++QAGAAIAzgAKANUAEw== -+""" -+ ) -+ ), -+ Image.open( -+ BytesIO( -+ base64.b64decode( -+ b""" -+iVBORw0KGgoAAAANSUhEUgAAAx4AAAAUAQAAAAArMtZoAAAEwElEQVR4nABlAJr/AHVE4czCI/4u -+Mc4b7vuds/xzjz5/3/7u/n9vMe7vnfH/9++vPn/xyf5zhxzjt8GHw8+2d83u8x27199/nxuQ6Od9 -+M43/5z2I+9n9ZtmDBwMQECDRQw/eQIQohJXxpBCNVE6QCCAAAAD//wBlAJr/AgALyj1t/wINwq0g -+LeNZUworuN1cjTPIzrTX6ofHWeo3v336qPzfEwRmBnHTtf95/fglZK5N0PDgfRTslpGBvz7LFc4F -+IUXBWQGjQ5MGCx34EDFPwXiY4YbYxavpnhHFrk14CDAAAAD//wBlAJr/AgKqRooH2gAgPeggvUAA -+Bu2WfgPoAwzRAABAAAAAAACQgLz/3Uv4Gv+gX7BJgDeeGP6AAAD1NMDzKHD7ANWr3loYbxsAD791 -+NAADfcoIDyP44K/jv4Y63/Z+t98Ovt+ub4T48LAAAAD//wBlAJr/AuplMlADJAAAAGuAphWpqhMx -+in0A/fRvAYBABPgBwBUgABBQ/sYAyv9g0bCHgOLoGAAAAAAAREAAwI7nr0ArYpow7aX8//9LaP/9 -+SjdavWA8ePHeBIKB//81/83ndznOaXx379wAAAD//wBlAJr/AqDxW+D3AABAAbUh/QMnbQag/gAY -+AYDAAACgtgD/gOqAAAB5IA/8AAAk+n9w0AAA8AAAmFRJuPo27ciC0cD5oeW4E7KA/wD3ECMAn2tt -+y8PgwH8AfAxFzC0JzeAMtratAsC/ffwAAAD//wBlAJr/BGKAyCAA4AAAAvgeYTAwHd1kmQF5chkG -+ABoMIHcL5xVpTfQbUqzlAAAErwAQBgAAEOClA5D9il08AEh/tUzdCBsXkbgACED+woQg8Si9VeqY -+lODCn7lmF6NhnAEYgAAA/NMIAAAAAAD//2JgjLZgVGBg5Pv/Tvpc8hwGBjYGJADjHDrAwPzAjv/H -+/Wf3PzCwtzcwHmBgYGcwbZz8wHaCAQMDOwMDQ8MCBgYOC3W7mp+f0w+wHOYxO3OG+e376hsMZjk3 -+AAAAAP//YmCMY2A4wMAIN5e5gQETPD6AZisDAwMDgzSDAAPjByiHcQMDAwMDg1nOze1lByRu5/47 -+c4859311AYNZzg0AAAAA//9iYGDBYihOIIMuwIjGL39/fwffA8b//xv/P2BPtzzHwCBjUQAAAAD/ -+/yLFBrIBAAAA//9i1HhcwdhizX7u8NZNzyLbvT97bfrMf/QHI8evOwcSqGUJAAAA//9iYBB81iSw -+pEE170Qrg5MIYydHqwdDQRMrAwcVrQAAAAD//2J4x7j9AAMDn8Q/BgYLBoaiAwwMjPdvMDBYM1Tv -+oJodAAAAAP//Yqo/83+dxePWlxl3npsel9lvLfPcqlE9725C+acfVLMEAAAA//9i+s9gwCoaaGMR -+evta/58PTEWzr21hufPjA8N+qlnBwAAAAAD//2JiWLci5v1+HmFXDqcnULE/MxgYGBj+f6CaJQAA -+AAD//2Ji2FrkY3iYpYC5qDeGgeEMAwPDvwQBBoYvcTwOVLMEAAAA//9isDBgkP///0EOg9z35v// -+Gc/eeW7BwPj5+QGZhANUswMAAAD//2JgqGBgYGBgqEMXlvhMPUsAAAAA//8iYDd1AAAAAP//AwDR -+w7IkEbzhVQAAAABJRU5ErkJggg== -+""" -+ ) -+ ) -+ ), -+ ) -+ return font -diff --git a/tests/test_boundingbox_image.py b/tests/test_boundingbox_image.py -index 21f19a7..414f0b1 100644 ---- a/tests/test_boundingbox_image.py -+++ b/tests/test_boundingbox_image.py -@@ -5,6 +5,7 @@ - - from PIL import Image, ImageDraw, ImageColor, ImageChops - from svg.path.path import CubicBezier, QuadraticBezier, Line, Arc -+from .font import get_better_than_nothing_font - - - RED = ImageColor.getcolor("red", mode="RGB") -@@ -57,17 +58,15 @@ def draw_boundingbox(self, path): - sys.platform != "linux", reason="Different platforms have different fonts" - ) - def test_image(self): -- self.draw.text((10, 10), "This is an SVG line:") -- self.draw.text( -- (10, 100), -- "The red line is a bounding box.", -- ) -+ font = get_better_than_nothing_font() -+ self.draw.text((10, 10), "This is an SVG line:", font=font) -+ self.draw.text((10, 100), "The red line is a bounding box.", font=font) - - line1 = Line(40 + 60j, 200 + 80j) - self.draw_path(line1) - self.draw_boundingbox(line1) - -- self.draw.text((10, 140), "These are Arc segments:") -+ self.draw.text((10, 140), "These are Arc segments:", font=font) - arc1 = Arc(260 + 320j, 100 + 100j, 0, 1, 1, 260 + 319j) - self.draw_path(arc1) - self.draw_boundingbox(arc1) -@@ -83,6 +82,7 @@ def test_image(self): - self.draw.text( - (10, 500), - "Next we have a quadratic bezier curve, with one tangent:", -+ font=font, - ) - start = 30 + 600j - control = 400 + 540j -@@ -95,12 +95,16 @@ def test_image(self): - self.draw.text( - (10, 670), - "The white dot is the control point, and the cyan lines are ", -+ font=font, -+ ) -+ self.draw.text( -+ (10, 690), "illustrating the how the control point works.", font=font - ) -- self.draw.text((10, 690), "illustrating the how the control point works.") - - self.draw.text( - (10, 730), - "Lastly is a cubic bezier, with 2 tangents, and 2 control points:", -+ font=font, - ) - - start = 200 + 800j -diff --git a/tests/test_image.py b/tests/test_image.py -index 49967ea..ae3a357 100644 ---- a/tests/test_image.py -+++ b/tests/test_image.py -@@ -4,6 +4,7 @@ - from math import sqrt - - from svg.path.path import CubicBezier, QuadraticBezier, Line, Arc -+from .font import get_better_than_nothing_font - - - RED = ImageColor.getcolor("red", mode="RGB") -@@ -57,25 +58,30 @@ def draw_tangents(self, path, count): - self.draw.line([c2t(p), c2t(tt + p)], fill=YELLOW, width=1) - - def test_image(self): -- self.draw.text((10, 10), "This is an SVG line:") -+ font = get_better_than_nothing_font() -+ self.draw.text((10, 10), "This is an SVG line:", font=font) - self.draw.text( - (10, 100), - "The red line is a tangent, and the yellow is 90 degrees from that.", -+ font=font, - ) - - line1 = Line(40 + 60j, 200 + 80j) - self.draw_path(line1) - self.draw_tangents(line1, 1) - -- self.draw.text((10, 140), "This is an Arc segment, almost a whole circle:") -+ self.draw.text( -+ (10, 140), "This is an Arc segment, almost a whole circle:", font=font -+ ) - arc1 = Arc(260 + 320j, 100 + 100j, 0, 1, 1, 260 + 319j) - self.draw_path(arc1) - self.draw_tangents(arc1, 5) -- self.draw.text((10, 460), "With five tangents.") -+ self.draw.text((10, 460), "With five tangents.", font=font) - - self.draw.text( - (10, 500), - "Next we have a quadratic bezier curve, with one tangent:", -+ font=font, - ) - start = 30 + 600j - control = 400 + 540j -@@ -88,12 +94,16 @@ def test_image(self): - self.draw.text( - (10, 670), - "The white dot is the control point, and the cyan lines are ", -+ font=font, -+ ) -+ self.draw.text( -+ (10, 690), "illustrating the how the control point works.", font=font - ) -- self.draw.text((10, 690), "illustrating the how the control point works.") - - self.draw.text( - (10, 730), - "Lastly is a cubic bezier, with 2 tangents, and 2 control points:", -+ font=font, - ) - - start = 30 + 800j diff --git a/backports/py3-svgpath/APKBUILD b/backports/py3-svgpath/APKBUILD deleted file mode 100644 index 3cfbc91..0000000 --- a/backports/py3-svgpath/APKBUILD +++ /dev/null @@ -1,41 +0,0 @@ -# Contributor: Aiden Grossman -# Maintainer: Celeste -maintainer="Celeste " -pkgname=py3-svgpath -pkgver=6.3 -pkgrel=3 -pkgdesc="SVG path and object parser" -url="https://github.com/regebro/svg.path" -arch="noarch" -license="MIT" -makedepends="py3-setuptools py3-gpep517 py3-wheel" -checkdepends="py3-pytest py3-pillow" -subpackages="$pkgname-pyc" -source="$pkgname-$pkgver.tar.gz::https://github.com/regebro/svg.path/archive/refs/tags/$pkgver.tar.gz - 105_use-better-than-nothing-font.patch - no-install-tests.patch - " -builddir="$srcdir/svg.path-$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 - .testenv/bin/python3 -m installer .dist/*.whl - .testenv/bin/python3 -m pytest -} - -package() { - python3 -m installer -d "$pkgdir" \ - .dist/*.whl -} - -sha512sums=" -fd9dd9e1e603be5e212e3eb247c9f3778203f5285397a4cdde4c038c3f31f7bc2b8904491c208256996e2fbd39b4e5f7ea58d964bd5d22bc09c57e4bc2c70317 py3-svgpath-6.3.tar.gz -d12d32b0f6b075ee8602a7eee5dd1ddaa8f097fe3d471f2941fac0bba335641111eb2c0e2819dffea822f895833ffafa35baac80085cf759ca1ed8f7a6b92773 105_use-better-than-nothing-font.patch -62ab1e0980c7fb797f74b81c937a68b6af1112fff293e6ddec6389a8e490a08e181c37217408b58ce3a2ae2afda7813bb3bbe57d5414cfc18e4e53e6d2f2ea5a no-install-tests.patch -" diff --git a/backports/py3-svgpath/no-install-tests.patch b/backports/py3-svgpath/no-install-tests.patch deleted file mode 100644 index 994ce3c..0000000 --- a/backports/py3-svgpath/no-install-tests.patch +++ /dev/null @@ -1,15 +0,0 @@ ---- ./setup.py.orig -+++ ./setup.py -@@ -1,3 +1,3 @@ --from setuptools import setup -+from setuptools import setup, find_packages - --setup() -+setup(packages=find_packages("src", exclude=["*tests"])) ---- ./MANIFEST.in.orig -+++ ./MANIFEST.in -@@ -3,3 +3,4 @@ - - recursive-include src *.png - -+global-exclude tests/* From 73b064ed374506e1287a575cf93b84c065fc3013 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 20:47:05 -0400 Subject: [PATCH 095/210] backports/uranium: drop due to not needed --- ...ix-simplebutton-use-of-um-colorimage.patch | 34 ------- backports/uranium/APKBUILD | 61 ------------ backports/uranium/cmake-helpers.patch | 89 ----------------- backports/uranium/cmake.patch | 16 ---- .../fix-logger-used-but-not-imported.patch | 14 --- .../uranium/qt-try-ints-then-bytes.patch | 96 ------------------- 6 files changed, 310 deletions(-) delete mode 100644 backports/uranium/874_fix-simplebutton-use-of-um-colorimage.patch delete mode 100644 backports/uranium/APKBUILD delete mode 100644 backports/uranium/cmake-helpers.patch delete mode 100644 backports/uranium/cmake.patch delete mode 100644 backports/uranium/fix-logger-used-but-not-imported.patch delete mode 100644 backports/uranium/qt-try-ints-then-bytes.patch diff --git a/backports/uranium/874_fix-simplebutton-use-of-um-colorimage.patch b/backports/uranium/874_fix-simplebutton-use-of-um-colorimage.patch deleted file mode 100644 index 3112c9c..0000000 --- a/backports/uranium/874_fix-simplebutton-use-of-um-colorimage.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 88fd460a63263d66173f1e0127b0f208577d7f4e Mon Sep 17 00:00:00 2001 -Patch-Source: https://github.com/Ultimaker/Uranium/pull/874 -From: fieldOfView -Date: Sat, 20 May 2023 21:14:36 +0200 -Subject: [PATCH] Fix SimpleButton use of UM.ColorImage - -Fixes https://github.com/Ultimaker/Cura/issues/15524 ---- - UM/Qt/qml/UM/SimpleButton.qml | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -diff --git a/UM/Qt/qml/UM/SimpleButton.qml b/UM/Qt/qml/UM/SimpleButton.qml -index d3d398753c..d3bd0e8e14 100644 ---- a/UM/Qt/qml/UM/SimpleButton.qml -+++ b/UM/Qt/qml/UM/SimpleButton.qml -@@ -1,7 +1,8 @@ --// Copyright (c) 2018 Ultimaker B.V. -+// Copyright (c) 2023 Ultimaker B.V. - // Uranium is released under the terms of the LGPLv3 or higher. - - import QtQuick 2.1 -+import UM 1.5 as UM - - MouseArea - { -@@ -27,7 +28,7 @@ MouseArea - radius: 0 - } - -- ColorImage -+ UM.ColorImage - { - id: image - diff --git a/backports/uranium/APKBUILD b/backports/uranium/APKBUILD deleted file mode 100644 index e896971..0000000 --- a/backports/uranium/APKBUILD +++ /dev/null @@ -1,61 +0,0 @@ -# Contributor: Anjandev Momi -# Maintainer: Anjandev Momi -pkgname=uranium -pkgver=5.2.2 -pkgrel=3 -pkgdesc="A Python framework for building Desktop applications" -url="https://github.com/Ultimaker/Uranium" -arch="noarch !armhf !riscv64" # armhf: no py3-qt5, rv64: no py3-shapely -license="LGPL-3.0-or-later" -depends=" - py3-cryptography - py3-numpy - py3-qt6 - py3-scipy - python3 - " -# add cura-binary-data to makedepends when packaged -makedepends="samurai cmake doxygen gettext-dev graphviz" -checkdepends="py3-pytest py3-pytest-benchmark py3-twisted" -options="!check" # checks broken from 5.x onward -source="$pkgname-$pkgver.tar.gz::https://github.com/Ultimaker/Uranium/archive/refs/tags/$pkgver.tar.gz - cmake.patch - 874_fix-simplebutton-use-of-um-colorimage.patch - fix-logger-used-but-not-imported.patch - qt-try-ints-then-bytes.patch - cmake-helpers.patch" -builddir="$srcdir/Uranium-$pkgver" - -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 \ - -DCMAKE_INSTALL_LIBDIR=lib \ - -DCMAKE_BUILD_TYPE=MinSizeRel \ - -DGETTEXT_MSGINIT_EXECUTABLE=msginit \ - -DCURA_BINARY_DATA_DIRECTORY=/usr/share/cura \ - $CMAKE_CROSSOPTS - cmake --build build -} - -check() { - # useless code style test with another dependency - ctest -T Test -} - -package() { - DESTDIR="$pkgdir" cmake --install build - mkdir "$pkgdir"/usr/share/uranium/cmake - mv "$pkgdir"/usr/share/cmake-*/Modules/* "$pkgdir"/usr/share/uranium/cmake/ -} - -sha512sums=" -a9c222400022e05b5c42c72843b024204a58f5d233805bdffa610a2d9cbd1873773868b049aabbe52c6e859f235ca5428fcdfdbb86651f428483999060611e10 uranium-5.2.2.tar.gz -196a04164de288f5bffeebb73ace9390059dcffebaf40395368f413d1af2e2c668d85dd4c761ad226732540d41598235c2c368152cc157d2e89445ce27738c9b cmake.patch -c50b37a3a44c4d4f66d115e72a430b82a8125efa49ce51271d5cad7fac15b2941a6a82b71fd07cef751b159296b64d783b348cebe7dfd865f0121815d2cf41f4 874_fix-simplebutton-use-of-um-colorimage.patch -78e1415133bc4135f93633375bdb71a9e04b9cd128067d223985d0878f0e3de3ed1d336117fc527f0804b99878bd56817e3eb7a5aa545cc877b9f43386e17e78 fix-logger-used-but-not-imported.patch -26489638fcf80822d16b0a295aee21a8973c23a023b1daf7f2cf5f7be7c56e72a15edd87ac6993f8a2ad09086d7d1a8b7d32247522c9429183625e3a0b63f2ae qt-try-ints-then-bytes.patch -aa185ce3592036f045e3386266015cc08443c2e4f9b9a4c03c77c13525af98d68eaa3360e8858e0561417a826c73bf8a2b209bcad91d2cc16cce32fb0231fcf8 cmake-helpers.patch -" diff --git a/backports/uranium/cmake-helpers.patch b/backports/uranium/cmake-helpers.patch deleted file mode 100644 index 3c5d1f3..0000000 --- a/backports/uranium/cmake-helpers.patch +++ /dev/null @@ -1,89 +0,0 @@ ---- /dev/null -+++ ./cmake/UraniumPluginInstall.cmake -@@ -0,0 +1,86 @@ -+# Copyright (c) 2022 Ultimaker B.V. -+# UraniumPluginInstall.cmake is released under the terms of the LGPLv3 or higher. -+ -+# -+# This module detects all plugins that need to be installed and adds them using the CMake install() command. -+# It detects all plugin folder in the path "plugins/*" where there's a "plugin.json" in it. -+# -+# Plugins can be configured to NOT BE INSTALLED via the variable "UM_NO_INSTALL_PLUGINS" as a list of string in the -+# form of "a;b;c" or "a,b,c". By default all plugins will be installed. -+# -+ -+# Options or configuration variables -+set(UM_NO_INSTALL_PLUGINS "" CACHE STRING "A list of plugins that should not be installed, separated with ';' or ','.") -+ -+file(GLOB_RECURSE _plugin_json_list ${CMAKE_SOURCE_DIR}/plugins/*/plugin.json) -+list(LENGTH _plugin_json_list _plugin_json_list_len) -+ -+# Sort the lists alphabetically so we can handle cases like this: -+# - plugins/my_plugin/plugin.json -+# - plugins/my_plugin/my_module/plugin.json -+# In this case, only "plugins/my_plugin" should be added via install(). -+set(_no_install_plugin_list ${UM_NO_INSTALL_PLUGINS}) -+# Sanitize the string so the comparison will be case-insensitive. -+string(STRIP "${_no_install_plugin_list}" _no_install_plugin_list) -+string(TOLOWER "${_no_install_plugin_list}" _no_install_plugin_list) -+ -+# WORKAROUND counterpart of what's in cura-build. -+string(REPLACE "," ";" _no_install_plugin_list "${_no_install_plugin_list}") -+ -+list(LENGTH _no_install_plugin_list _no_install_plugin_list_len) -+ -+if(_no_install_plugin_list_len GREATER 0) -+ list(SORT _no_install_plugin_list) -+endif() -+if(_plugin_json_list_len GREATER 0) -+ list(SORT _plugin_json_list) -+endif() -+ -+# Check all plugin directories and add them via install() if needed. -+set(_install_plugin_list "") -+foreach(_plugin_json_path ${_plugin_json_list}) -+ get_filename_component(_plugin_dir ${_plugin_json_path} DIRECTORY) -+ file(RELATIVE_PATH _rel_plugin_dir ${CMAKE_CURRENT_SOURCE_DIR} ${_plugin_dir}) -+ get_filename_component(_plugin_dir_name ${_plugin_dir} NAME) -+ -+ # Make plugin name comparison case-insensitive -+ string(TOLOWER "${_plugin_dir_name}" _plugin_dir_name_lowercase) -+ -+ # Check if this plugin needs to be skipped for installation -+ set(_add_plugin ON) # Indicates if this plugin should be added to the build or not. -+ set(_is_no_install_plugin OFF) # If this plugin will not be added, this indicates if it's because the plugin is -+ # specified in the NO_INSTALL_PLUGINS list. -+ if(_no_install_plugin_list) -+ if("${_plugin_dir_name_lowercase}" IN_LIST _no_install_plugin_list) -+ set(_add_plugin OFF) -+ set(_is_no_install_plugin ON) -+ endif() -+ endif() -+ -+ # Make sure this is not a subdirectory in a plugin that's already in the install list -+ if(_add_plugin) -+ foreach(_known_install_plugin_dir ${_install_plugin_list}) -+ if(_plugin_dir MATCHES "${_known_install_plugin_dir}.+") -+ set(_add_plugin OFF) -+ break() -+ endif() -+ endforeach() -+ endif() -+ -+ if(_add_plugin) -+ message(STATUS "[+] PLUGIN TO INSTALL: ${_rel_plugin_dir}") -+ get_filename_component(_rel_plugin_parent_dir ${_rel_plugin_dir} DIRECTORY) -+ install(DIRECTORY ${_rel_plugin_dir} -+ DESTINATION lib${LIB_SUFFIX}/uranium/${_rel_plugin_parent_dir} -+ PATTERN "__pycache__" EXCLUDE -+ PATTERN "*.qmlc" EXCLUDE -+ ) -+ list(APPEND _install_plugin_list ${_plugin_dir}) -+ elseif(_is_no_install_plugin) -+ message(STATUS "[-] PLUGIN TO REMOVE : ${_rel_plugin_dir}") -+ execute_process(COMMAND ${Python_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/cmake/mod_bundled_packages_json.py -+ -d ${CMAKE_CURRENT_SOURCE_DIR}/resources/bundled_packages -+ ${_plugin_dir_name} -+ RESULT_VARIABLE _mod_json_result) -+ endif() -+endforeach() diff --git a/backports/uranium/cmake.patch b/backports/uranium/cmake.patch deleted file mode 100644 index b1a888b..0000000 --- a/backports/uranium/cmake.patch +++ /dev/null @@ -1,16 +0,0 @@ ---- ./CMakeLists.txt.orig -+++ ./CMakeLists.txt -@@ -19,9 +19,12 @@ - # Build Translations - CREATE_TRANSLATION_TARGETS() - -+find_package(Python REQUIRED COMPONENTS Interpreter) - --install(DIRECTORY UM DESTINATION "${Python_SITELIB_LOCAL}") -+install(DIRECTORY UM DESTINATION "${Python_SITELIB}") - - install(FILES ${CMAKE_SOURCE_DIR}/cmake/UraniumTranslationTools.cmake - DESTINATION ${CMAKE_INSTALL_DATADIR}/cmake-${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}/Modules/ ) - install(DIRECTORY resources DESTINATION ${CMAKE_INSTALL_DATADIR}/uranium) -+ -+include(UraniumPluginInstall) diff --git a/backports/uranium/fix-logger-used-but-not-imported.patch b/backports/uranium/fix-logger-used-but-not-imported.patch deleted file mode 100644 index 151893c..0000000 --- a/backports/uranium/fix-logger-used-but-not-imported.patch +++ /dev/null @@ -1,14 +0,0 @@ -Patch-Source: https://src.fedoraproject.org/rpms/python-uranium/blob/rawhide/f/Uranium-5.3.0-qt-try-ints-then-bytes-for-gl-mask-functions.patch - -diff --git a/UM/View/SelectionPass.py.orig b/UM/View/SelectionPass.py -index 945b789..ef042a5 100644 ---- a/UM/View/SelectionPass.py.orig -+++ b/UM/View/SelectionPass.py -@@ -5,6 +5,7 @@ import enum - import random - from typing import TYPE_CHECKING - -+from UM.Logger import Logger - from UM.Resources import Resources - from UM.Application import Application - diff --git a/backports/uranium/qt-try-ints-then-bytes.patch b/backports/uranium/qt-try-ints-then-bytes.patch deleted file mode 100644 index 8f7d6db..0000000 --- a/backports/uranium/qt-try-ints-then-bytes.patch +++ /dev/null @@ -1,96 +0,0 @@ -Patch-Source: https://src.fedoraproject.org/rpms/python-uranium/blob/rawhide/f/Uranium-5.3.0-qt-try-ints-then-bytes-for-gl-mask-functions.patch - -diff --git a/UM/View/RenderBatch.py.orig b/UM/View/RenderBatch.py -index 6deeeb1..5f1eda5 100644 ---- a/UM/View/RenderBatch.py.orig -+++ b/UM/View/RenderBatch.py -@@ -186,10 +186,24 @@ class RenderBatch: - - if self._render_type == self.RenderType.Solid: - self._gl.glEnable(self._gl.GL_DEPTH_TEST) -- self._gl.glDepthMask(self._gl.GL_TRUE) -+ try: -+ self._gl.glDepthMask(self._gl.GL_TRUE) -+ except: -+ Logger.log("w", "glDepthMask does not like ints, trying bytes...") -+ try: -+ self._gl.glDepthMask(b'1') -+ except: -+ Logger.log("e", "glDepthMask does not like ints or bytes, no idea what it wants") - elif self._render_type == self.RenderType.Transparent: - self._gl.glEnable(self._gl.GL_DEPTH_TEST) -- self._gl.glDepthMask(self._gl.GL_FALSE) -+ try: -+ self._gl.glDepthMask(self._gl.GL_FALSE) -+ except: -+ Logger.log("w", "glDepthMask does not like ints, trying bytes...") -+ try: -+ self._gl.glDepthMask(b'1') -+ except: -+ Logger.log("e", "glDepthMask does not like ints or bytes, no idea what it wants") - elif self._render_type == self.RenderType.Overlay: - self._gl.glDisable(self._gl.GL_DEPTH_TEST) - -diff --git a/UM/View/RenderPass.py.orig b/UM/View/RenderPass.py -index 8068ddf..8cb4f67 100644 ---- a/UM/View/RenderPass.py.orig -+++ b/UM/View/RenderPass.py -@@ -93,8 +93,22 @@ class RenderPass: - self._fbo.bind() - - # Ensure we can actually write to the relevant FBO components. -- self._gl.glColorMask(self._gl.GL_TRUE, self._gl.GL_TRUE,self._gl.GL_TRUE, self._gl.GL_TRUE) -- self._gl.glDepthMask(self._gl.GL_TRUE) -+ try: -+ self._gl.glColorMask(self._gl.GL_TRUE, self._gl.GL_TRUE,self._gl.GL_TRUE, self._gl.GL_TRUE) -+ except: -+ Logger.log("w", "glColorMask does not like ints, trying bytes...") -+ try: -+ self._gl.glColorMask(b'1', b'1',b'1', b'1') -+ except: -+ Logger.log("e", "glColorMask does not like ints or bytes, no idea what it wants") -+ try: -+ self._gl.glDepthMask(self._gl.GL_TRUE) -+ except: -+ Logger.log("w", "glDepthMask does not like ints, trying bytes...") -+ try: -+ self._gl.glDepthMask(b'1') -+ except: -+ Logger.log("e", "glDepthMask does not like ints or bytes, no idea what it wants") - - self._gl.glClear(self._gl.GL_COLOR_BUFFER_BIT | self._gl.GL_DEPTH_BUFFER_BIT) - -diff --git a/UM/View/SelectionPass.py.orig b/UM/View/SelectionPass.py -index ef042a5..c28fe4f 100644 ---- a/UM/View/SelectionPass.py.orig -+++ b/UM/View/SelectionPass.py -@@ -110,13 +110,27 @@ class SelectionPass(RenderPass): - if selectable_objects: - batch.render(self._scene.getActiveCamera()) - -- self._gl.glColorMask(self._gl.GL_TRUE, self._gl.GL_TRUE, self._gl.GL_TRUE, self._gl.GL_FALSE) -+ try: -+ self._gl.glColorMask(self._gl.GL_TRUE, self._gl.GL_TRUE, self._gl.GL_TRUE, self._gl.GL_FALSE) -+ except: -+ Logger.log("w", "glColorMask does not like ints, trying bytes...") -+ try: -+ self._gl.glColorMask(b'1', b'1', b'1', b'0') -+ except: -+ Logger.log("e", "glColorMask does not like ints or bytes, no idea what it wants") - self._gl.glDisable(self._gl.GL_DEPTH_TEST) - - tool_handle.render(self._scene.getActiveCamera()) - - self._gl.glEnable(self._gl.GL_DEPTH_TEST) -- self._gl.glColorMask(self._gl.GL_TRUE, self._gl.GL_TRUE, self._gl.GL_TRUE, self._gl.GL_TRUE) -+ try: -+ self._gl.glColorMask(self._gl.GL_TRUE, self._gl.GL_TRUE, self._gl.GL_TRUE, self._gl.GL_TRUE) -+ except: -+ Logger.log("w", "glColorMask does not like ints, trying bytes...") -+ try: -+ self._gl.glColorMask(b'1', b'1', b'1', b'1') -+ except: -+ Logger.log("e", "glColorMask does not like ints or bytes, no idea what it wants") - - self.release() - From 024544f4df3782212ebb0ab38accc67b009811d6 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 20:47:41 -0400 Subject: [PATCH 096/210] backports/libnest2d: drop due to not needed --- backports/libnest2d/APKBUILD | 40 ------ .../libnest2d/allow-disallowed-area.patch | 124 ------------------ 2 files changed, 164 deletions(-) delete mode 100644 backports/libnest2d/APKBUILD delete mode 100644 backports/libnest2d/allow-disallowed-area.patch diff --git a/backports/libnest2d/APKBUILD b/backports/libnest2d/APKBUILD deleted file mode 100644 index c0e8dd5..0000000 --- a/backports/libnest2d/APKBUILD +++ /dev/null @@ -1,40 +0,0 @@ -# Contributor: Anjandev Momi -# Maintainer: Anjandev Momi -pkgname=libnest2d -pkgver=0.4 -pkgrel=7 -pkgdesc="2D irregular bin packaging and nesting library written in modern C++" -url="https://github.com/tamasmeszaros/libnest2d" -arch="noarch" -license="LGPL-3.0-only" -makedepends="samurai cmake clipper-dev boost-dev nlopt-dev" -subpackages="$pkgname-dev" -source="$pkgname-$pkgver.tar.gz::https://github.com/tamasmeszaros/libnest2d/archive/refs/tags/$pkgver.tar.gz - allow-disallowed-area.patch" - -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 \ - -DCMAKE_INSTALL_LIBDIR=lib \ - -DBUILD_SHARED_LIBS=True \ - -DCMAKE_BUILD_TYPE=minsizerel \ - $CMAKE_CROSSOPTS . - cmake --build build -} - -check() { - cd build - ctest -} - -package() { - DESTDIR="$pkgdir" cmake --install build -} - -sha512sums=" -fadce18986b844eed13a581f84055df909a17407a0980deb6c7c24248a969a537a8840650bcfc673e61973810ce9a008acb599e3b8e00c9bff6b566ca41cd62c libnest2d-0.4.tar.gz -2e8cd3343c72c576ecb54960d7ad9f4f2322f822b19ac41850b3b28da95e97c2cefe7c67de6c97627df08cd5cdc1660ce4dfa95fe51f88e0ff5c066c8d785458 allow-disallowed-area.patch -" diff --git a/backports/libnest2d/allow-disallowed-area.patch b/backports/libnest2d/allow-disallowed-area.patch deleted file mode 100644 index 479b9c4..0000000 --- a/backports/libnest2d/allow-disallowed-area.patch +++ /dev/null @@ -1,124 +0,0 @@ -From 2e91be2679b5efa0773292d9d0a2ae72255bb271 Mon Sep 17 00:00:00 2001 -From: Ghostkeeper -Date: Tue, 6 Oct 2020 16:13:15 +0200 -Subject: [PATCH 1/3] Allow for an item to be a disallowed area - -url: https://github.com/tamasmeszaros/libnest2d/pull/18 - -Disallowed areas have slightly different behaviour from fixed items: Other items won't get packed closely around them. Implementation of that pending. - -Contributes to issue CURA-7754. ---- - include/libnest2d/nester.hpp | 16 ++++++++++++++++ - 1 file changed, 16 insertions(+) - -diff --git a/include/libnest2d/nester.hpp b/include/libnest2d/nester.hpp -index 2f207d5..932a060 100644 ---- a/include/libnest2d/nester.hpp -+++ b/include/libnest2d/nester.hpp -@@ -71,6 +71,15 @@ class _Item { - int binid_{BIN_ID_UNSET}, priority_{0}; - bool fixed_{false}; - -+ /** -+ * \brief If this is a fixed area, indicates whether it is a disallowed area -+ * or a previously placed item. -+ * -+ * If this is a disallowed area, other objects will not get packed close -+ * together with this item. It only blocks other items in its area. -+ */ -+ bool disallowed_{false}; -+ - public: - - /// The type of the shape which was handed over as the template argument. -@@ -129,11 +138,18 @@ class _Item { - sh_(sl::create(std::move(contour), std::move(holes))) {} - - inline bool isFixed() const noexcept { return fixed_; } -+ inline bool isDisallowedArea() const noexcept { return disallowed_; } - inline void markAsFixedInBin(int binid) - { - fixed_ = binid >= 0; - binid_ = binid; - } -+ inline void markAsDisallowedAreaInBin(int binid) -+ { -+ fixed_ = binid >= 0; -+ binid_ = binid; -+ disallowed_ = true; -+ } - - inline void binId(int idx) { binid_ = idx; } - inline int binId() const noexcept { return binid_; } - -From ff61049e59d3151462bca7ff2e2268c2b32731e7 Mon Sep 17 00:00:00 2001 -From: Ghostkeeper -Date: Tue, 6 Oct 2020 16:14:36 +0200 -Subject: [PATCH 2/3] Allow unsetting of being a disallowed area - -If you set the bin to -1 or set the item to be a simple fixed item afterwards, it'll no longer be a disallowed area. - -Contributes to issue CURA-7754. ---- - include/libnest2d/nester.hpp | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/include/libnest2d/nester.hpp b/include/libnest2d/nester.hpp -index 932a060..54761a6 100644 ---- a/include/libnest2d/nester.hpp -+++ b/include/libnest2d/nester.hpp -@@ -143,12 +143,13 @@ class _Item { - { - fixed_ = binid >= 0; - binid_ = binid; -+ disallowed_ = false; - } - inline void markAsDisallowedAreaInBin(int binid) - { - fixed_ = binid >= 0; - binid_ = binid; -- disallowed_ = true; -+ disallowed_ = fixed_; - } - - inline void binId(int idx) { binid_ = idx; } - -From 31391fd173249ad9b906390058e13b09238fadc8 Mon Sep 17 00:00:00 2001 -From: Ghostkeeper -Date: Thu, 8 Oct 2020 11:06:58 +0200 -Subject: [PATCH 3/3] Align items to their starting position if all placed - items are disallowed - -We shouldn't align items to disallowed areas. So place them in the starting position according to the alignment property. - -Lot of work to investigate. But very little code changes! - -Contributes to issue CURA-7754. ---- - include/libnest2d/placers/nfpplacer.hpp | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -diff --git a/include/libnest2d/placers/nfpplacer.hpp b/include/libnest2d/placers/nfpplacer.hpp -index 96a8cff..b0ebb15 100644 ---- a/include/libnest2d/placers/nfpplacer.hpp -+++ b/include/libnest2d/placers/nfpplacer.hpp -@@ -101,7 +101,7 @@ struct NfpPConfig { - * alignment with the candidate item or do anything else. - * - * \param remaining A container with the remaining items waiting to be -- * placed. You can use some features about the remaining items to alter to -+ * placed. You can use some features about the remaining items to alter the - * score of the current placement. If you know that you have to leave place - * for other items as well, that might influence your decision about where - * the current candidate should be placed. E.g. imagine three big circles -@@ -735,7 +735,8 @@ class _NofitPolyPlacer: public PlacerBoilerplate<_NofitPolyPlacer Date: Mon, 26 May 2025 20:48:05 -0400 Subject: [PATCH 097/210] backports/nlopt: drop due to not needed --- backports/nlopt/APKBUILD | 72 ---------------------------------------- 1 file changed, 72 deletions(-) delete mode 100644 backports/nlopt/APKBUILD diff --git a/backports/nlopt/APKBUILD b/backports/nlopt/APKBUILD deleted file mode 100644 index 66aea68..0000000 --- a/backports/nlopt/APKBUILD +++ /dev/null @@ -1,72 +0,0 @@ -# Contributor: Anjandev Momi -# Maintainer: Celeste -maintainer="Celeste " -pkgname=nlopt -pkgver=2.10.0 -pkgrel=0 -pkgdesc="Library for nonlinear optimization" -url="https://github.com/stevengj/nlopt" -arch="all" -license="LGPL-2.1-or-later" -makedepends=" - cmake - guile-dev - python3-dev - samurai - swig - " -subpackages=" - $pkgname-dev - $pkgname-doc - $pkgname-guile - " -source="$pkgname-$pkgver.tar.gz::https://github.com/stevengj/nlopt/archive/refs/tags/v$pkgver.tar.gz" - -case "$CARCH" in -# octave unavailable on these 3 archs -s390x|riscv64|ppc64le) ;; -*) - makedepends="$makedepends octave-dev" - subpackages="$subpackages $pkgname-octave" - ;; -esac - -build() { - if [ "$CBUILD" != "$CHOST" ]; then - local crossopts="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux" - fi - cmake -B build -G Ninja \ - -DCMAKE_INSTALL_PREFIX=/usr \ - -DCMAKE_INSTALL_LIBDIR=lib \ - -DBUILD_SHARED_LIBS=ON \ - -DCMAKE_BUILD_TYPE=MinSizeRel \ - -DNLOPT_TESTS="$(want_check && echo ON || echo OFF)" \ - $crossopts - cmake --build build -} - -check() { - ctest --test-dir build -} - -package() { - DESTDIR="$pkgdir" cmake --install build -} - -guile() { - pkgdesc="$pkgdesc (Guile bindings)" - depends="$pkgname=$pkgver-r$pkgrel guile" - - amove usr/lib/guile usr/share/guile -} - -octave() { - pkgdesc="$pkgdesc (Octave bindings)" - depends="$pkgname=$pkgver-r$pkgrel octave" - - amove usr/lib/octave usr/share/octave -} - -sha512sums=" -7668db6997ba141ee1759f222bad23a7854aa17962470653ddb5824c25100b50f52c462441f0cc12a62e2322ff084c7f7b7fab09471b0acb13a861d7f7575655 nlopt-2.10.0.tar.gz -" From 0df5b0abb671fed50c07f30ae01f0dcc76df8d00 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 20:48:28 -0400 Subject: [PATCH 098/210] backports/nibspatialindex: drop due to not needed --- backports/libspatialindex/APKBUILD | 36 ------------------------------ 1 file changed, 36 deletions(-) delete mode 100644 backports/libspatialindex/APKBUILD diff --git a/backports/libspatialindex/APKBUILD b/backports/libspatialindex/APKBUILD deleted file mode 100644 index 4ef768c..0000000 --- a/backports/libspatialindex/APKBUILD +++ /dev/null @@ -1,36 +0,0 @@ -# Contributor: Alex Yam -# Maintainer: Celeste -maintainer="Celeste " -pkgname=libspatialindex -pkgver=0_git20210205 -_commit=8ee223632f95c81f49f5eb2d547ad973475c4601 -pkgrel=2 -pkgdesc="Extensible framework for robust spatial indexing methods" -url="https://libspatialindex.org/" -arch="all" -license="MIT" -makedepends="cmake samurai" -subpackages="$pkgname-dev" -source="$pkgname-$_commit.tar.gz::https://github.com/libspatialindex/libspatialindex/archive/$_commit.tar.gz" -builddir="$srcdir/$pkgname-$_commit" - -build() { - cmake -B build -G Ninja \ - -DCMAKE_BUILD_TYPE=MinSizeRel \ - -DCMAKE_PREFIX_PATH=/usr \ - -DCMAKE_INSTALL_PREFIX=/usr \ - -DBUILD_TESTING="$(want_check && echo ON || echo OFF)" - cmake --build build -} - -check() { - ctest --test-dir build -} - -package() { - DESTDIR="$pkgdir" cmake --install build -} - -sha512sums=" -caf91aac77b75445e4fc4d0baedcd10c619b2097dfd841b00339d9ddd4b73db05b99de1d84be88f1083f4713a936cf110d5851523491f5a74c6f96e1d5795dbb libspatialindex-8ee223632f95c81f49f5eb2d547ad973475c4601.tar.gz -" From a04e0ca17b7e63b3f96b18ba0cab9e3ed89a3952 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 20:49:05 -0400 Subject: [PATCH 099/210] backports/fdm-materials: drop due to not needed --- backports/fdm-materials/APKBUILD | 27 --------------------------- 1 file changed, 27 deletions(-) delete mode 100644 backports/fdm-materials/APKBUILD diff --git a/backports/fdm-materials/APKBUILD b/backports/fdm-materials/APKBUILD deleted file mode 100644 index 5780f02..0000000 --- a/backports/fdm-materials/APKBUILD +++ /dev/null @@ -1,27 +0,0 @@ -# Contributor: Aiden Grossman -# Maintainer: -pkgname=fdm-materials -pkgver=5.2.2 -pkgrel=1 -pkgdesc="FDM Material Database" -url="https://github.com/Ultimaker/fdm_materials" -arch="noarch" -license="CC0-1.0" -makedepends="cmake samurai" -options="!check" # no checks provided -source="$pkgname-$pkgver.tar.gz::https://github.com/Ultimaker/fdm_materials/archive/refs/tags/$pkgver.tar.gz" -builddir="$srcdir/fdm_materials-$pkgver" - -build() { - cmake -B build -G Ninja \ - -DCMAKE_INSTALL_PREFIX=/usr - cmake --build build -} - -package() { - DESTDIR="$pkgdir" cmake --install build -} - -sha512sums=" -73eefec8b7b88af73afc578ffba583480bda30309945b1720d7a1a075bd7ab3279599d53fe83f4c96695f294a5a3e11297abc334ca6cc9db163d4eb0fbdaf0f9 fdm-materials-5.2.2.tar.gz -" From d55be2f427e165d4a9aaf8b3c93ea365a5ffb4a0 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 22:09:21 -0400 Subject: [PATCH 100/210] backports/electron: add rust 1.87 patches --- ...l_allocator-to-provide-Rust-allocato.patch | 730 ++++++++++++++++++ ...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 | 14 + 6 files changed, 1563 insertions(+) create mode 100644 backports/electron/0001-Reland-Use-global_allocator-to-provide-Rust-allocato.patch create mode 100644 backports/electron/0002-Call-Rust-default-allocator-directly-from-Rust.patch create mode 100644 backports/electron/0003-Roll-rust-only-f7b43542838f0a4a6cfdb17fbeadf45002042.patch create mode 100644 backports/electron/0004-Drop-remap_alloc-dep.patch create mode 100644 backports/electron/0005-rust-Clean-up-build-rust-allocator-after-a-Rust-tool.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 new file mode 100644 index 0000000..580323c --- /dev/null +++ b/backports/electron/0001-Reland-Use-global_allocator-to-provide-Rust-allocato.patch @@ -0,0 +1,730 @@ +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/0002-Call-Rust-default-allocator-directly-from-Rust.patch b/backports/electron/0002-Call-Rust-default-allocator-directly-from-Rust.patch new file mode 100644 index 0000000..12b3aaa --- /dev/null +++ b/backports/electron/0002-Call-Rust-default-allocator-directly-from-Rust.patch @@ -0,0 +1,319 @@ +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 new file mode 100644 index 0000000..1cfa07f --- /dev/null +++ b/backports/electron/0003-Roll-rust-only-f7b43542838f0a4a6cfdb17fbeadf45002042.patch @@ -0,0 +1,102 @@ +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 new file mode 100644 index 0000000..c6762a4 --- /dev/null +++ b/backports/electron/0004-Drop-remap_alloc-dep.patch @@ -0,0 +1,44 @@ +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 new file mode 100644 index 0000000..5ba4d83 --- /dev/null +++ b/backports/electron/0005-rust-Clean-up-build-rust-allocator-after-a-Rust-tool.patch @@ -0,0 +1,354 @@ +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 6721e7c..c95f43a 100644 --- a/backports/electron/APKBUILD +++ b/backports/electron/APKBUILD @@ -137,6 +137,11 @@ source=" 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 @@ -184,6 +189,10 @@ esac # breaks chromium-based stuff export CXXFLAGS="${CXXFLAGS/-D_GLIBCXX_ASSERTIONS=1}" +# workaround to error: undefined symbol: __rustc::__rust_dealloc +# with 000*.patch patches +export RUSTC_BOOTSTRAP=1 + # creates a dist tarball that does not need to git clone everything at build time. _distbucket="sakamoto/lnl-aports-snapshots/" snapshot() { @@ -565,6 +574,11 @@ f2b08538ff57c50b3772a07ca91845f9d45f4a5112f608b6192d4fb5d7be48f478c0c36194d95ab7 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 From 9a93d206fb9763ac042f76c8fc95af737f529090 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 22:36:58 -0400 Subject: [PATCH 101/210] ci: skip dotnet6* on testing --- .forgejo/workflows/check-testing.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.forgejo/workflows/check-testing.yml b/.forgejo/workflows/check-testing.yml index 1c3abe9..2137944 100644 --- a/.forgejo/workflows/check-testing.yml +++ b/.forgejo/workflows/check-testing.yml @@ -14,6 +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 steps: - name: Environment setup run: apk add grep coreutils gawk curl wget bash nodejs git jq sed From 234904618e6d0bf718c717584ec1d43a677b6568 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 23:00:12 -0400 Subject: [PATCH 102/210] backports/libmedc: upgrade to 5.0.0 --- backports/libmedc/APKBUILD | 34 +++++-- backports/libmedc/hdf5-1.14.patch | 119 +++++++++++++++++++++++++ backports/libmedc/hdf5.patch | 94 ------------------- backports/libmedc/med-py3.13.patch | 26 ++++++ backports/libmedc/med-swig-4.3.0.patch | 59 ++++++++++++ 5 files changed, 229 insertions(+), 103 deletions(-) create mode 100644 backports/libmedc/hdf5-1.14.patch delete mode 100644 backports/libmedc/hdf5.patch create mode 100644 backports/libmedc/med-py3.13.patch create mode 100644 backports/libmedc/med-swig-4.3.0.patch diff --git a/backports/libmedc/APKBUILD b/backports/libmedc/APKBUILD index 8976805..0bf52fc 100644 --- a/backports/libmedc/APKBUILD +++ b/backports/libmedc/APKBUILD @@ -1,8 +1,8 @@ # Contributor: Aiden Grossman # Maintainer: pkgname=libmedc -pkgver=4.1.1 -pkgrel=4 +pkgver=5.0.0 +pkgrel=0 pkgdesc="Open source library for numerical simulation" url="https://www.salome-platform.org/" arch="all" @@ -10,22 +10,36 @@ 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=" - https://files.salome-platform.org/Salome/medfile/med-$pkgver.tar.gz - hdf5.patch + $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=None \ + -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=/usr \ - -DMEDFILE_BUILD_TESTS=OFF \ - -DMEDFILE_BUILD_PYTHON=ON + -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 } @@ -37,7 +51,9 @@ _py() { } sha512sums=" -f211fa82750a7cc935baa3a50a55d16e40117a0f2254b482492ba8396d82781ca84960995da7a16b2b5be0b93ce76368bf4b311bb8af0e5f0243e7051c9c554c med-4.1.1.tar.gz -68d9291e73a68d674081314028c0fce7bbd4a7b78b93b7e5078117ce62f2d07318bc33ec95091ce677148ec3926c1ce653d0760c34e74b29257a7be59210f040 hdf5.patch +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/hdf5-1.14.patch b/backports/libmedc/hdf5-1.14.patch new file mode 100644 index 0000000..6202f74 --- /dev/null +++ b/backports/libmedc/hdf5-1.14.patch @@ -0,0 +1,119 @@ +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/hdf5.patch b/backports/libmedc/hdf5.patch deleted file mode 100644 index bc4764b..0000000 --- a/backports/libmedc/hdf5.patch +++ /dev/null @@ -1,94 +0,0 @@ -Originally from https://gist.github.com/jedbrown/527ef81ff59a0dccf833da40fdd15a47 -diff -rupN med-4.1.0/config/cmake_files/medMacros.cmake med-4.1.0-new/config/cmake_files/medMacros.cmake ---- med-4.1.0/config/cmake_files/medMacros.cmake 2021-12-03 09:35:30.675827163 +0100 -+++ med-4.1.0-new/config/cmake_files/medMacros.cmake 2021-12-03 09:32:31.894994147 +0100 -@@ -447,7 +447,7 @@ MACRO(MED_FIND_HDF5) - ## - ## Requires 1.10.x version - ## -- IF (NOT HDF_VERSION_MAJOR_REF EQUAL 1 OR NOT HDF_VERSION_MINOR_REF EQUAL 10 OR NOT HDF_VERSION_RELEASE_REF GREATER 1) -+ IF (HDF5_VERSION VERSION_LESS 1.10.2) - MESSAGE(FATAL_ERROR "HDF5 version is ${HDF_VERSION_REF}. Only versions >= 1.10.2 are supported.") - ENDIF() - ## -diff -rupN med-4.1.0/src/ci/MEDfileCompatibility.c med-4.1.0-new/src/ci/MEDfileCompatibility.c ---- med-4.1.0/src/ci/MEDfileCompatibility.c 2021-12-03 09:35:30.676827162 +0100 -+++ med-4.1.0-new/src/ci/MEDfileCompatibility.c 2021-12-03 09:33:26.292942149 +0100 -@@ -71,7 +71,7 @@ MEDfileCompatibility(const char* const f - _hversionMMR=10000*_hmajeur+100*_hmineur+_hrelease; - /* ISCRUTE(_hversionMMR); */ - /* ISCRUTE(HDF_VERSION_NUM_REF); */ -- if ( (_hversionMMR >= HDF_VERSION_NUM_REF) && (_hmineur == HDF_VERSION_MINOR_REF) ) *hdfok = MED_TRUE; -+ if (_hversionMMR >= HDF_VERSION_NUM_REF) *hdfok = MED_TRUE; - - /* TODO : Vérifier si la version mineure HDF du fichier est supérieure - à la version mineure de la bibliothèque HDF utilisée : -@@ -113,7 +113,7 @@ MEDfileCompatibility(const char* const f - #if MED_NUM_MAJEUR != 4 - #error "Don't forget to update the test version here when you change the major version of the library !" - #endif --#if H5_VERS_MINOR > 10 -+#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 med-4.1.0/src/hdfi/_MEDfileCreate.c med-4.1.0-new/src/hdfi/_MEDfileCreate.c ---- med-4.1.0/src/hdfi/_MEDfileCreate.c 2021-12-03 09:35:30.677827161 +0100 -+++ med-4.1.0-new/src/hdfi/_MEDfileCreate.c 2021-12-03 09:32:31.894994147 +0100 -@@ -159,7 +159,7 @@ med_idt _MEDfileCreate(const char * cons - * 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 > 10 -+#if H5_VERS_MINOR > 14 - #error "Don't forget to change the compatibility version of the library !" - #endif - -diff -rupN med-4.1.0/src/hdfi/_MEDfileOpen.c med-4.1.0-new/src/hdfi/_MEDfileOpen.c ---- med-4.1.0/src/hdfi/_MEDfileOpen.c 2021-12-03 09:35:30.677827161 +0100 -+++ med-4.1.0-new/src/hdfi/_MEDfileOpen.c 2021-12-03 09:32:31.894994147 +0100 -@@ -72,7 +72,7 @@ med_idt _MEDfileOpen(const char * const - - • The creation order tracking property, H5P_CRT_ORDER_TRACKED, has been set in the group creation property list (see H5Pset_link_creation_order). - */ --#if H5_VERS_MINOR > 10 -+#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 med-4.1.0/src/hdfi/_MEDmemFileOpen.c med-4.1.0-new/src/hdfi/_MEDmemFileOpen.c ---- med-4.1.0/src/hdfi/_MEDmemFileOpen.c 2021-12-03 09:35:30.678827160 +0100 -+++ med-4.1.0-new/src/hdfi/_MEDmemFileOpen.c 2021-12-03 09:32:31.894994147 +0100 -@@ -434,7 +434,7 @@ med_idt _MEDmemFileOpen(const char * con - goto ERROR; - } - --#if H5_VERS_MINOR > 10 -+#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_18, H5F_LIBVER_18) ) { -diff -rupN med-4.1.0/src/hdfi/_MEDparFileCreate.c med-4.1.0-new/src/hdfi/_MEDparFileCreate.c ---- med-4.1.0/src/hdfi/_MEDparFileCreate.c 2021-12-03 09:35:30.678827160 +0100 -+++ med-4.1.0-new/src/hdfi/_MEDparFileCreate.c 2021-12-03 09:32:31.894994147 +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 > 10 -+#if H5_VERS_MINOR > 14 - #error "Don't forget to change the compatibility version of the library !" - #endif - -diff -rupN med-4.1.0/src/hdfi/_MEDparFileOpen.c med-4.1.0-new/src/hdfi/_MEDparFileOpen.c ---- med-4.1.0/src/hdfi/_MEDparFileOpen.c 2021-12-03 09:35:30.679827159 +0100 -+++ med-4.1.0-new/src/hdfi/_MEDparFileOpen.c 2021-12-03 09:32:31.894994147 +0100 -@@ -55,7 +55,7 @@ med_idt _MEDparFileOpen(const char * con - MED_ERR_(_fid,MED_ERR_INIT,MED_ERR_PROPERTY,MED_ERR_PARALLEL_MSG); - goto ERROR; - } --#if H5_VERS_MINOR > 10 -+#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_18, H5F_LIBVER_18 ) ) { diff --git a/backports/libmedc/med-py3.13.patch b/backports/libmedc/med-py3.13.patch new file mode 100644 index 0000000..164daf0 --- /dev/null +++ b/backports/libmedc/med-py3.13.patch @@ -0,0 +1,26 @@ +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 new file mode 100644 index 0000000..e9dcb5e --- /dev/null +++ b/backports/libmedc/med-swig-4.3.0.patch @@ -0,0 +1,59 @@ +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) { From e287d269969e89ad83ff8a6d89c84470decc032c Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 23:42:40 -0400 Subject: [PATCH 103/210] ci: add special case for zotero --- .forgejo/bin/check_ver.sh | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/.forgejo/bin/check_ver.sh b/.forgejo/bin/check_ver.sh index e931cb6..e281294 100755 --- a/.forgejo/bin/check_ver.sh +++ b/.forgejo/bin/check_ver.sh @@ -59,6 +59,16 @@ for pkg in $owned_by_you; do # special cases where package is not semantic case $pkg in + 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}}') + upstream_fx_ver=$(curl --fail -X GET -s -H 'Content-Type: application/json' "https://release-monitoring.org/api/project/Alpine/firefox-esr" | jq -r ".stable_versions.[] | match(\"${downstream_fx_ver/.*.*}.*\").string" | head -n1) + if [ "$upstream_fx_ver" != "$downstream_fx_ver" ]; then + echo "$pkg new Firefox $upstream_fx_ver version available" + echo "$pkg(fx_ver) $downstream_fx_ver $upstream_fx_ver $repo $release" >> out_of_date + 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) + ;; 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||");; 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);; electron) From 23c870f2c6aae462312195083ae6f01d9c7674df Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 26 May 2025 23:43:08 -0400 Subject: [PATCH 104/210] ci: fix special case for electron --- .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 e281294..6468ed7 100755 --- a/.forgejo/bin/check_ver.sh +++ b/.forgejo/bin/check_ver.sh @@ -77,7 +77,7 @@ for pkg in $owned_by_you; do # 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" >> out_of_date + echo "$pkg${latest_version/.*} $downstream_version $latest_version $repo $release" >> out_of_date pkg=$pkg${upstream_version/.*} fi ;; From 92c41ceef9fa0ddf480b44f38d8b305ddec949e1 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Tue, 27 May 2025 00:02:39 -0400 Subject: [PATCH 105/210] ci: update electron title --- .forgejo/bin/check_ver.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.forgejo/bin/check_ver.sh b/.forgejo/bin/check_ver.sh index 6468ed7..3a0684e 100755 --- a/.forgejo/bin/check_ver.sh +++ b/.forgejo/bin/check_ver.sh @@ -76,9 +76,9 @@ for pkg in $owned_by_you; do 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' ) # 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/.*} + 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 ;; 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);; From 370d84dc77e4d3932d95b7e0e876531bf2da1914 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Tue, 27 May 2025 09:15:55 -0400 Subject: [PATCH 106/210] user/openterface-qt: upgrade to 0.3.13 --- .../51-openterface-permissions.rules | 3 ++- user/openterface-qt/APKBUILD | 21 +++++++++---------- .../openterface-qt.post-install | 2 +- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/user/openterface-qt/51-openterface-permissions.rules b/user/openterface-qt/51-openterface-permissions.rules index e8f2971..a74cfbd 100644 --- a/user/openterface-qt/51-openterface-permissions.rules +++ b/user/openterface-qt/51-openterface-permissions.rules @@ -1 +1,2 @@ -KERNEL=="hidraw*", SUBSYSTEM=="hidraw", MODE="0660", GROUP="plugdev" +SUBSYSTEM=="usb", ATTRS{idVendor}=="534d", ATTRS{idProduct}=="2109", MODE="0660", GROUP="plugdev" +SUBSYSTEM=="usb", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", MODE="0660", GROUP="plugdev" diff --git a/user/openterface-qt/APKBUILD b/user/openterface-qt/APKBUILD index b0bb703..cf753a7 100644 --- a/user/openterface-qt/APKBUILD +++ b/user/openterface-qt/APKBUILD @@ -1,17 +1,17 @@ # Maintainer: Antoine Martin (ayakael) pkgname=openterface-qt -pkgver=0.1.0 +pkgver=0.3.13 pkgrel=0 pkgdesc="Openterface Mini-KVM Host Application" -arch='all' +arch="all !armhf" # missing qt6-qtmultimedia 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' +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" install="$pkgname.post-install" builddir="$srcdir"/Openterface_QT-$pkgver source=" - $pkgname-$pkgver.tar.gz::https://github.com/TechxArtisanStudio/Openterface_QT/archive/v$pkgver.tar.gz + $pkgname-$pkgver.tar.gz::https://github.com/TechxArtisanStudio/Openterface_QT/archive/$pkgver.tar.gz openterfaceQT.desktop 51-openterface-permissions.rules " @@ -19,12 +19,11 @@ source=" prepare() { default_prepare mkdir build && cd build - qmake6 .. + qmake6 .. } build() { - cd build - make + make -C build } package() { @@ -36,7 +35,7 @@ package() { install -Dm644 "$builddir"/images/icon_128.png "$pkgdir"/usr/share/icons/hicolor/128x128/apps/openterfaceQT.png } sha512sums=" -2aff3b5b92d5d12d1d748726e2565f5d410611b242b4fac04289b6b057eb1d39b7c2c9bcf613b3b9636a74f17c3fb69ff52177ee889f4d34de7b5b5388e75964 openterface-qt-0.1.0.tar.gz +7261ce2875b1617d27945de591c72779d2305889b7f53bb6758cb5e1d4dc01c969fef1638726d868f75e995c44a8e2c453cac45c90cfb3d140b8120523c4038d openterface-qt-0.3.13.tar.gz e39cfa04cbcb59e8ba54110a28eff41854f73fa7c4baeeed5433907c79781946f12bd3a731763caa1d591e664eab0650bdbd2a844954baa12bb96a76a17c6e4f openterfaceQT.desktop -aed752c03acfb5e7d3dc206fd342c1eed6b56353801e54b925e5d3a3e673bf604e0e94424e5e8fddb31c21d3acfbda351f1ea6e8ddc8057f7354ec86a4c74a5e 51-openterface-permissions.rules +f50d721a6a2d1e0183c81e99230e91e127ee6c6f3243af1cff3e3cb78e2913ebab3346ec8b461a4710220d1ce2e12a7cc960ded6e0dc2def539375c6e737b647 51-openterface-permissions.rules " diff --git a/user/openterface-qt/openterface-qt.post-install b/user/openterface-qt/openterface-qt.post-install index 09d267b..b853907 100755 --- a/user/openterface-qt/openterface-qt.post-install +++ b/user/openterface-qt/openterface-qt.post-install @@ -1,3 +1,3 @@ -#!/bin/bash +#!/bin/sh echo "Setup the dialout permission for Serial port." echo "Run: sudo usermod -a -G video,plugdev \$USER" From 6b7279026db646a79187c5afbb2886dbb0c25f4f Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Tue, 27 May 2025 09:18:25 -0400 Subject: [PATCH 107/210] user/rmfakecloud: upgrade to 0.0.24 --- user/rmfakecloud/APKBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/user/rmfakecloud/APKBUILD b/user/rmfakecloud/APKBUILD index 4bc816e..d9402ab 100644 --- a/user/rmfakecloud/APKBUILD +++ b/user/rmfakecloud/APKBUILD @@ -2,7 +2,7 @@ # Contributor: Antoine Martin (ayakael) pkgname=rmfakecloud -pkgver=0.0.19 +pkgver=0.0.24 _gittag=v$pkgver pkgrel=0 pkgdesc="A selfhosted cloud for the Remarkable Tablet" @@ -37,7 +37,7 @@ package() { install -Dm755 "$srcdir"/rmfakecloud.openrc "$pkgdir"/etc/init.d/rmfakecloud } sha512sums=" -55948ede5f8a4cc9e74c9c68f83d14dec4950f23da5ef053f3ae708edf2643f64e5736abfe63cbf6700e5277adff7167ce0f228a8241169261f4ce59e2815a35 rmfakecloud-0.0.19.tar.gz +c0c96cb9168b8152da3842fac095a6bd33e74b5f7a5cefe72e44853f4059c966336e98cd4c62235f7a2fe625acdd93452f718c19a1bf65f5dd7dbd8bb5cd1f8c rmfakecloud-0.0.24.tar.gz d5677cef282085cd6642a034dd258ffa294862aeb0ce81d6485a524a15564849bc4eb90a9d1fa4dbcf4eab69dcd893302aa06493fc8fad74d69200c2bdf246c0 rmfakecloud.conf 891d0945886796132f951293e081046334857563b4ebae28a3aa5b6bc37768767c49ce102de645ed8340af2518de606be8bf6ecafeb6d189dd937970aa3e6498 rmfakecloud.openrc " From 56f0391fd1296acc5ee8aa0c6530c3b148bbb420 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Tue, 27 May 2025 09:19:49 -0400 Subject: [PATCH 108/210] user/scantopl: upgrade to 1.0.0 --- user/scantopl/APKBUILD | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/user/scantopl/APKBUILD b/user/scantopl/APKBUILD index 725e413..dea4f1e 100644 --- a/user/scantopl/APKBUILD +++ b/user/scantopl/APKBUILD @@ -2,10 +2,10 @@ # Contributor: Antoine Martin (ayakael) pkgname=scantopl -pkgver=0.0.1 +pkgver=1.0.0 pkgrel=0 pkgdesc="Automatically send scanservjs scanned document to paperless-ng" -_gittag="5c5d71a9e1cf8985d374453c866c1711692334e2" +_gittag="v$pkgver" url="https://github.com/Celedhrim/scantopl" arch="all" license="WTFPL" @@ -16,7 +16,7 @@ source=" scantopl.initd scantopl.conf " -builddir="$srcdir/$pkgname-$_gittag" +builddir="$srcdir/$pkgname-${_gittag/v}" options="!check" # No testsuite build() { @@ -31,7 +31,7 @@ package() { install -Dm644 "$srcdir"/scantopl.conf "$pkgdir"/etc/conf.d/scantopl } sha512sums=" -f47823ffdea68de71ce9f3a347f31eee3556aae2087f68d2cf4078b9694894d06fc8de94e806ad34358e0ec636ace6dc5d97273c3102192584cb540ede3bd288 scantopl-0.0.1.tar.gz +d4eca1adc326f1e730ae195bd44f1cf05d404488ce20fd612467c572ea7fa718034bb7b16d3e007976349f6852e83569aa17727dcc61f9e7ab1934995b3bc3e6 scantopl-1.0.0.tar.gz 8238411fe8881be6690a583a6bfc71e52f3131320f5d92bb36f8af61802980265a8cf5250eb699d9214f7c6c168d14c39867a09587fb07841a8504a6a28db74b scantopl.initd ee2e631901b1d88c0dede6587318e44884255a7c82e090371f017dbb91563c16f0567c0d45b3183d0a8abb3ee4b71a33f3d79258ad2b2f6d8930a5bc7625070a scantopl.conf " From 5d9d856a6c399ec27e57af08006709271cbdd456 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Tue, 27 May 2025 09:39:06 -0400 Subject: [PATCH 109/210] backports/thelounge: disable tests --- backports/thelounge/APKBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/backports/thelounge/APKBUILD b/backports/thelounge/APKBUILD index bc0de04..0e84a6e 100644 --- a/backports/thelounge/APKBUILD +++ b/backports/thelounge/APKBUILD @@ -3,7 +3,7 @@ # Maintainer: Fabricio Silva pkgname=thelounge pkgver=4.4.3 -pkgrel=0 +pkgrel=1 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="net" # net for npm +options="!check net" # net for npm case $CARCH in # loongarch64: 2 tests failed on the builder From 2fb7a3cd257d7210f17a301d2f4768507698110a Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Tue, 27 May 2025 09:41:29 -0400 Subject: [PATCH 110/210] user/firefly-iii: disable due to FTBFS --- user/firefly-iii/APKBUILD | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/user/firefly-iii/APKBUILD b/user/firefly-iii/APKBUILD index cc3f123..08f146b 100644 --- a/user/firefly-iii/APKBUILD +++ b/user/firefly-iii/APKBUILD @@ -5,7 +5,8 @@ pkgname=firefly-iii pkgver=5.7.18 pkgrel=0 pkgdesc="PHP personal finances manager" -arch="noarch" +# FTBFS +#arch="noarch" url="https://github.com/firefly-iii/firefly-iii" license="AGPL-3.0-only" options="!check" # No testsuite From ce94f901d0ee4553af3ff6ef9c01d35e9cd0f795 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Tue, 27 May 2025 09:42:02 -0400 Subject: [PATCH 111/210] unmaintained/jellysub: move from user --- {user => unmaintained}/jellysub/APKBUILD | 0 {user => unmaintained}/jellysub/jellysub.conf | 0 {user => unmaintained}/jellysub/jellysub.openrc | 0 3 files changed, 0 insertions(+), 0 deletions(-) rename {user => unmaintained}/jellysub/APKBUILD (100%) rename {user => unmaintained}/jellysub/jellysub.conf (100%) rename {user => unmaintained}/jellysub/jellysub.openrc (100%) diff --git a/user/jellysub/APKBUILD b/unmaintained/jellysub/APKBUILD similarity index 100% rename from user/jellysub/APKBUILD rename to unmaintained/jellysub/APKBUILD diff --git a/user/jellysub/jellysub.conf b/unmaintained/jellysub/jellysub.conf similarity index 100% rename from user/jellysub/jellysub.conf rename to unmaintained/jellysub/jellysub.conf diff --git a/user/jellysub/jellysub.openrc b/unmaintained/jellysub/jellysub.openrc similarity index 100% rename from user/jellysub/jellysub.openrc rename to unmaintained/jellysub/jellysub.openrc From 72e6999c8715ab6018e2c82942c427eeec464765 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Tue, 27 May 2025 09:56:52 -0400 Subject: [PATCH 112/210] user/papermc: upgrade to 1.21.4 --- user/papermc/APKBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/user/papermc/APKBUILD b/user/papermc/APKBUILD index 23930f7..ae99e5b 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.3 +pkgver=1.21.4 _gittag=${pkgver/.0} pkgrel=0 pkgdesc="Next generation of Minecraft server, compatible with Spigot plugins and offering uncompromising performance" @@ -43,7 +43,7 @@ package() { chmod g+ws "$pkgdir"/var/lib/$pkgname } sha512sums=" -630c0fafd53082bec3992234f7422c4714c30ad0fac240c6dc80091fc7d49b57bc2cb7365366ac015d2a9217c4fd561f0649f738cb0d90ea7a7b6355f9839ff6 papermc-1.21.3.tar.zst +5e815c4ee4f9d99ecb173d2b81131d0531359f1d2d48dee429476a7b39c37140fe2085d9a657435e347ca1bc5930402bac1a533692cd8387811b2577384c827b papermc-1.21.4.tar.zst c5d1bf85ceb74162aaaf2bcd2d06dc2e3dd2e37c39f0cee2be7c8dbff9970a6aff1e48a43e6d1e83e6a0ac610bd89f62b1279bf27b64afa88d9831a36aebbd3e papermc.initd 9b8e267428731ee9255f82a93f1e8674d7e917a0f154bd395cd2280a49aa248a4b8427520b08dbb4b3a74a5471dac0e439eedc8ab94bf2e53bb8d411d2d8a789 papermc.conf 943ba0d4c10173246bdc6497dcedd54da0788f966841c8d3381398711d79f8d5eb07a24ce28f519b6f24f59d99fa9e74bc6bb882059f343df4eeda5de3660ac7 papermc.sh From 762159a7e939d675db447a4895db255217508b32 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Tue, 27 May 2025 10:14:42 -0400 Subject: [PATCH 113/210] user/papermc-plugin-worledit: upgrade to 7.3.13 --- user/papermc-plugin-worldedit/APKBUILD | 12 ++++++++---- .../papermc-fix-build.patch | 13 +++++++++++++ 2 files changed, 21 insertions(+), 4 deletions(-) create mode 100644 user/papermc-plugin-worldedit/papermc-fix-build.patch diff --git a/user/papermc-plugin-worldedit/APKBUILD b/user/papermc-plugin-worldedit/APKBUILD index 96e0215..6949ab5 100644 --- a/user/papermc-plugin-worldedit/APKBUILD +++ b/user/papermc-plugin-worldedit/APKBUILD @@ -1,16 +1,19 @@ # Contributor: Antoine Martin (ayakael) # Maintainer: Antoine Martin (ayakael) pkgname=papermc-plugin-worldedit -pkgver=7.3.9 +pkgver=7.3.13 _pkgver=$pkgver -pkgrel=1 +pkgrel=0 pkgdesc="WorldEdit is an easy-to-use in-game Minecraft map editor" arch='noarch !aarch64' url="https://github.com/EngineHub/WorldEdit" license="GPL-3.0" depends="papermc>=1.13.2" makedepends="openjdk21-jdk" -source="$pkgname-$pkgver.tar.gz::https://github.com/EngineHub/WorldEdit/archive/refs/tags/$pkgver.tar.gz" +source=" + $pkgname-$pkgver.tar.gz::https://github.com/EngineHub/WorldEdit/archive/refs/tags/$pkgver.tar.gz + papermc-fix-build.patch + " builddir="$srcdir"/WorldEdit-$pkgver build() { @@ -25,5 +28,6 @@ package() { install -Dm644 "$builddir"/worldedit-bukkit/build/libs/worldedit-bukkit-$pkgver-dist.jar "$pkgdir/var/lib/papermc/plugins/WorldEdit.jar" } sha512sums=" -35eb83dfcd192884a86f9bec3cbe586af6141b8c10461937b2ef112bfb4d64f5f7c6e950108a7893dc5b1054f1d0206f74ec6b4702481c0da69bf89627dbfb06 papermc-plugin-worldedit-7.3.9.tar.gz +dbea1e2ff5b41ad25f8ddc5ae5456f9b7337d406cb4791fb3718b38bfbb94b0d8ba9fc7e2cd5c0d94c3c1845a35e68a87d89c0f147f9d988dd3fc3e375144198 papermc-plugin-worldedit-7.3.13.tar.gz +e36ac06da26e8817c7c666c972a09cbdba0fca8e0a511e53c5650d46ef1ee9a44d783900ed0afb39faab5dc718bf68e26d8c9b310ceedffa5d11bd15880aaa88 papermc-fix-build.patch " diff --git a/user/papermc-plugin-worldedit/papermc-fix-build.patch b/user/papermc-plugin-worldedit/papermc-fix-build.patch new file mode 100644 index 0000000..95710e9 --- /dev/null +++ b/user/papermc-plugin-worldedit/papermc-fix-build.patch @@ -0,0 +1,13 @@ +diff --git a/gradle/libs.versions.toml.orig b/gradle/libs.versions.toml +index 5f0e7da..ff0569b 100644 +--- a/gradle/libs.versions.toml.orig ++++ b/gradle/libs.versions.toml +@@ -77,7 +77,7 @@ mockito-junit-jupiter.module = "org.mockito:mockito-junit-jupiter" + commonsCli = "commons-cli:commons-cli:1.4" + + # https://repo.papermc.io/service/rest/repository/browse/maven-public/io/papermc/paper/paper-api/ +-paperApi = "io.papermc.paper:paper-api:1.21.5-R0.1-20250503.204036-71" ++paperApi = "io.papermc.paper:paper-api:1.21.5-R0.1-20250520.110141-3" + paperLib = "io.papermc:paperlib:1.0.8" + + dummypermscompat = "com.sk89q:dummypermscompat:1.10" From 352e518f8e22fef85069800fe6e59ba76e26b930 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Tue, 27 May 2025 10:20:39 -0400 Subject: [PATCH 114/210] unmaintained/firefly-iii: move from user --- {user => unmaintained}/firefly-iii/APKBUILD | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {user => unmaintained}/firefly-iii/APKBUILD (100%) diff --git a/user/firefly-iii/APKBUILD b/unmaintained/firefly-iii/APKBUILD similarity index 100% rename from user/firefly-iii/APKBUILD rename to unmaintained/firefly-iii/APKBUILD From 5503c80497c863267ede2b8b01790dcdfc2d326e Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Tue, 27 May 2025 10:36:08 -0400 Subject: [PATCH 115/210] unmaintained/calibre-web: move from user --- {user => unmaintained}/calibre-web/APKBUILD | 0 {user => unmaintained}/calibre-web/calibre-web.conf | 0 {user => unmaintained}/calibre-web/calibre-web.initd | 0 {user => unmaintained}/calibre-web/calibre-web.service | 0 {user => unmaintained}/calibre-web/calibre-web.sysusers | 0 {user => unmaintained}/calibre-web/calibre-web.tmpfiles | 0 6 files changed, 0 insertions(+), 0 deletions(-) rename {user => unmaintained}/calibre-web/APKBUILD (100%) rename {user => unmaintained}/calibre-web/calibre-web.conf (100%) rename {user => unmaintained}/calibre-web/calibre-web.initd (100%) rename {user => unmaintained}/calibre-web/calibre-web.service (100%) rename {user => unmaintained}/calibre-web/calibre-web.sysusers (100%) rename {user => unmaintained}/calibre-web/calibre-web.tmpfiles (100%) diff --git a/user/calibre-web/APKBUILD b/unmaintained/calibre-web/APKBUILD similarity index 100% rename from user/calibre-web/APKBUILD rename to unmaintained/calibre-web/APKBUILD diff --git a/user/calibre-web/calibre-web.conf b/unmaintained/calibre-web/calibre-web.conf similarity index 100% rename from user/calibre-web/calibre-web.conf rename to unmaintained/calibre-web/calibre-web.conf diff --git a/user/calibre-web/calibre-web.initd b/unmaintained/calibre-web/calibre-web.initd similarity index 100% rename from user/calibre-web/calibre-web.initd rename to unmaintained/calibre-web/calibre-web.initd diff --git a/user/calibre-web/calibre-web.service b/unmaintained/calibre-web/calibre-web.service similarity index 100% rename from user/calibre-web/calibre-web.service rename to unmaintained/calibre-web/calibre-web.service diff --git a/user/calibre-web/calibre-web.sysusers b/unmaintained/calibre-web/calibre-web.sysusers similarity index 100% rename from user/calibre-web/calibre-web.sysusers rename to unmaintained/calibre-web/calibre-web.sysusers diff --git a/user/calibre-web/calibre-web.tmpfiles b/unmaintained/calibre-web/calibre-web.tmpfiles similarity index 100% rename from user/calibre-web/calibre-web.tmpfiles rename to unmaintained/calibre-web/calibre-web.tmpfiles From dfe9556b9d20f5d4581c5d279fd73309832d229f Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Tue, 27 May 2025 10:37:31 -0400 Subject: [PATCH 116/210] unmaintained/paperless-ngx: move from user --- .../1746_add-OpenID-Connect-SSO-support-via-django-allauth.patch | 0 {user => unmaintained}/paperless-ngx/APKBUILD | 0 {user => unmaintained}/paperless-ngx/paperless-consumer.openrc | 0 {user => unmaintained}/paperless-ngx/paperless-ngx.post-install | 0 {user => unmaintained}/paperless-ngx/paperless-ngx.post-upgrade | 0 {user => unmaintained}/paperless-ngx/paperless-ngx.pre-install | 0 {user => unmaintained}/paperless-ngx/paperless-scheduler.openrc | 0 {user => unmaintained}/paperless-ngx/paperless-task-queue.openrc | 0 {user => unmaintained}/paperless-ngx/paperless-webserver.openrc | 0 {user => unmaintained}/paperless-ngx/paperless.conf | 0 10 files changed, 0 insertions(+), 0 deletions(-) rename {user => unmaintained}/paperless-ngx/1746_add-OpenID-Connect-SSO-support-via-django-allauth.patch (100%) rename {user => unmaintained}/paperless-ngx/APKBUILD (100%) rename {user => unmaintained}/paperless-ngx/paperless-consumer.openrc (100%) rename {user => unmaintained}/paperless-ngx/paperless-ngx.post-install (100%) rename {user => unmaintained}/paperless-ngx/paperless-ngx.post-upgrade (100%) rename {user => unmaintained}/paperless-ngx/paperless-ngx.pre-install (100%) rename {user => unmaintained}/paperless-ngx/paperless-scheduler.openrc (100%) rename {user => unmaintained}/paperless-ngx/paperless-task-queue.openrc (100%) rename {user => unmaintained}/paperless-ngx/paperless-webserver.openrc (100%) rename {user => unmaintained}/paperless-ngx/paperless.conf (100%) diff --git a/user/paperless-ngx/1746_add-OpenID-Connect-SSO-support-via-django-allauth.patch b/unmaintained/paperless-ngx/1746_add-OpenID-Connect-SSO-support-via-django-allauth.patch similarity index 100% rename from user/paperless-ngx/1746_add-OpenID-Connect-SSO-support-via-django-allauth.patch rename to unmaintained/paperless-ngx/1746_add-OpenID-Connect-SSO-support-via-django-allauth.patch diff --git a/user/paperless-ngx/APKBUILD b/unmaintained/paperless-ngx/APKBUILD similarity index 100% rename from user/paperless-ngx/APKBUILD rename to unmaintained/paperless-ngx/APKBUILD diff --git a/user/paperless-ngx/paperless-consumer.openrc b/unmaintained/paperless-ngx/paperless-consumer.openrc similarity index 100% rename from user/paperless-ngx/paperless-consumer.openrc rename to unmaintained/paperless-ngx/paperless-consumer.openrc diff --git a/user/paperless-ngx/paperless-ngx.post-install b/unmaintained/paperless-ngx/paperless-ngx.post-install similarity index 100% rename from user/paperless-ngx/paperless-ngx.post-install rename to unmaintained/paperless-ngx/paperless-ngx.post-install diff --git a/user/paperless-ngx/paperless-ngx.post-upgrade b/unmaintained/paperless-ngx/paperless-ngx.post-upgrade similarity index 100% rename from user/paperless-ngx/paperless-ngx.post-upgrade rename to unmaintained/paperless-ngx/paperless-ngx.post-upgrade diff --git a/user/paperless-ngx/paperless-ngx.pre-install b/unmaintained/paperless-ngx/paperless-ngx.pre-install similarity index 100% rename from user/paperless-ngx/paperless-ngx.pre-install rename to unmaintained/paperless-ngx/paperless-ngx.pre-install diff --git a/user/paperless-ngx/paperless-scheduler.openrc b/unmaintained/paperless-ngx/paperless-scheduler.openrc similarity index 100% rename from user/paperless-ngx/paperless-scheduler.openrc rename to unmaintained/paperless-ngx/paperless-scheduler.openrc diff --git a/user/paperless-ngx/paperless-task-queue.openrc b/unmaintained/paperless-ngx/paperless-task-queue.openrc similarity index 100% rename from user/paperless-ngx/paperless-task-queue.openrc rename to unmaintained/paperless-ngx/paperless-task-queue.openrc diff --git a/user/paperless-ngx/paperless-webserver.openrc b/unmaintained/paperless-ngx/paperless-webserver.openrc similarity index 100% rename from user/paperless-ngx/paperless-webserver.openrc rename to unmaintained/paperless-ngx/paperless-webserver.openrc diff --git a/user/paperless-ngx/paperless.conf b/unmaintained/paperless-ngx/paperless.conf similarity index 100% rename from user/paperless-ngx/paperless.conf rename to unmaintained/paperless-ngx/paperless.conf From 106fe3e570db9b26798a9f2a69d9bca8f6a7622e Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Tue, 27 May 2025 11:18:17 -0400 Subject: [PATCH 117/210] user/papermc-plugin-essentialsx: upgrade to 2.21.1 --- user/papermc-plugin-essentialsx/APKBUILD | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/user/papermc-plugin-essentialsx/APKBUILD b/user/papermc-plugin-essentialsx/APKBUILD index a815212..6abab9f 100644 --- a/user/papermc-plugin-essentialsx/APKBUILD +++ b/user/papermc-plugin-essentialsx/APKBUILD @@ -1,8 +1,8 @@ # Contributor: Antoine Martin (ayakael) # Maintainer: Antoine Martin (ayakael) pkgname=papermc-plugin-essentialsx -pkgver=2.21.0_pre151 -_gittag=f2af9528b0f99f2ff121dda2607e51d391a2a8bf +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' @@ -75,5 +75,5 @@ xmpp() { } sha512sums=" -5fabf6b2091f7182ff23ca02e2f93ff22527668d55bbf60977ad414881c201bdc4608fe3618ca0d1312beb8fe8768f36cd792099817a0205f791ab2f9b212e04 papermc-plugin-essentialsx-f2af9528b0f99f2ff121dda2607e51d391a2a8bf.tar.gz +2634a909e4fced837acfd89e0972511da418a9ab3d648f4eb466688b779c7d4215aa25ed891504bc39805d292f1ebf72bb71077c0354117fdaf28ba032483262 papermc-plugin-essentialsx-2.21.1.tar.gz " From 378739e007b146c1b02befb028ecbb24f9a83180 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Tue, 27 May 2025 11:21:16 -0400 Subject: [PATCH 118/210] user/papermc: fix jar install --- user/papermc/APKBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/user/papermc/APKBUILD b/user/papermc/APKBUILD index ae99e5b..c93d3a2 100644 --- a/user/papermc/APKBUILD +++ b/user/papermc/APKBUILD @@ -31,7 +31,7 @@ package() { install -Dm644 "$srcdir"/$pkgname.conf "$pkgdir"/etc/conf.d/$pkgname install -Dm755 "$srcdir"/$pkgname.sh "$pkgdir"/usr/bin/$pkgname install -Dm755 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname - install -Dm644 "$builddir"/build/libs/paper*.jar "$pkgdir"/var/lib/$pkgname/$pkgver.jar + install -Dm644 "$builddir"/paper-server/build/libs/paper-server*.jar "$pkgdir"/var/lib/$pkgname/$pkgver.jar ln -s $pkgver.jar "$pkgdir"/var/lib/$pkgname/server.jar # Link the log files From f94e3afd3355b86bfa0d4e6a95d9e64417c69302 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Tue, 27 May 2025 17:31:53 -0400 Subject: [PATCH 119/210] user/looking-glass: drop due to in testing --- user/looking-glass/APKBUILD | 93 ------------------- .../looking-glass.post-deinstall | 2 - user/looking-glass/missing-includes.patch | 92 ------------------ .../module_1075-fix-build-linux64.patch | 25 ----- .../module_1124-fix-build-linux610.patch | 23 ----- user/looking-glass/obs-plugins-lib.patch | 12 --- user/looking-glass/werror.patch | 24 ----- 7 files changed, 271 deletions(-) delete mode 100644 user/looking-glass/APKBUILD delete mode 100644 user/looking-glass/looking-glass.post-deinstall delete mode 100644 user/looking-glass/missing-includes.patch delete mode 100644 user/looking-glass/module_1075-fix-build-linux64.patch delete mode 100644 user/looking-glass/module_1124-fix-build-linux610.patch delete mode 100644 user/looking-glass/obs-plugins-lib.patch delete mode 100644 user/looking-glass/werror.patch diff --git a/user/looking-glass/APKBUILD b/user/looking-glass/APKBUILD deleted file mode 100644 index fc66935..0000000 --- a/user/looking-glass/APKBUILD +++ /dev/null @@ -1,93 +0,0 @@ -# Contributor: Rogério da Silva Yokomizo -# Contributor: Antoine Martin (ayakael) -# Maintainer: Rogério da Silva Yokomizo -pkgname=looking-glass -_gittag=b7_git20240607 -pkgver=7b_git20240607 -pkgrel=0 -pkgdesc="Allows the use of a KVM configured for VGA PCI Pass-through without an attached physical monitor, keyboard or mouse" -url="https://looking-glass.io/" -arch="x86_64" -license="GPL-2.0-or-later" -makedepends=" - cmake - fontconfig-dev - libsamplerate-dev - libx11-dev - libxcursor-dev - libxfixes-dev - libxi-dev - libxinerama-dev - libxkbcommon-dev - libxpresent-dev - libxscrnsaver-dev - nettle-dev - obs-studio-dev - pipewire-dev - pulseaudio-dev - samurai - spice-dev - wayland-dev - wayland-protocols - " -source="$pkgname-$_gittag.tar.gz::https://lab.ilot.io/mirrors/looking-glass/-/releases/$_gittag/downloads/tarball/looking-glass-$_gittag.tar.gz - missing-includes.patch - obs-plugins-lib.patch - werror.patch - " -subpackages="$pkgname-obs $pkgname-module" -builddir="$srcdir/$pkgname-$_gittag" -options="!check" # There are no tests nor --version. - -build() { - cmake -S client -B build-client -G Ninja \ - -DENABLE_BACKTRACE=OFF \ - -DOPTIMIZE_FOR_NATIVE=OFF \ - -DCMAKE_INSTALL_PREFIX=/usr - - cmake -S obs -B build-obs -G Ninja \ - -DENABLE_BACKTRACE=OFF \ - -DOPTIMIZE_FOR_NATIVE=OFF \ - -DCMAKE_INSTALL_PREFIX=/usr - - cmake --build build-client - cmake --build build-obs -} - -package() { - DESTDIR="$pkgdir" cmake --install build-client - DESTDIR="$pkgdir" cmake --install build-obs -} - -module() { - pkgdesc="Looking Glass kernel module (AKMS)" - depends="akms" - install_if="looking-glass=$pkgver-r$pkgrel" - _modver=$(awk -F "=" '{if($1=="PACKAGE_VERSION"){print $2}}' src/looking-glass-B6/module/dkms.conf | tr -d '"') - - install -Dm644 "$builddir"/module/Makefile "$subpkgdir"/usr/src/looking-glass/Makefile - install -Dm644 "$builddir"/module/kvmfr* "$subpkgdir"/usr/src/looking-glass/. - - cat ->> "$subpkgdir"/usr/src/looking-glass/AKMBUILD < "$subpkgdir"/etc/udev/rules.d/99-kvmfr.rules - -} - -obs() { - pkgdesc="$pkgdesc (obs plugin)" - amove usr/lib/obs-plugins -} - -sha512sums=" -959f49c91dc7bb06dfae890547bfbd1c02bd4154f4ba1c898a12d15a3579658d65fcb9fc4b951c04180e17fc9151e551858e0fb60f20e3f1a72d19b86c7dc3db looking-glass-b7_git20240607.tar.gz -6d2449764a8316dd3c1b5cc0aa552671068f89ed2f95297f3c5256af8529b93e5ec7af8f979bd2e744fd09b11063e8a93f3ed26284f0e49294e467ca10f6e772 missing-includes.patch -33c5463412a16691f47d7833ebf81d7cf20c560a077dca141dcc9f02a5d6dfb676e483835f39a06012b114be9f509dda4614fe253bb1c72a0142e82dc265a5ca obs-plugins-lib.patch -b952d1fd284aed15bcfe7990f160dec3a4565fb5833ce339920f62de6bb46fbc09265a0a79fe80d212eecc6a1813614e1e193a8846c37e2afd18431dc3a89ca4 werror.patch -" diff --git a/user/looking-glass/looking-glass.post-deinstall b/user/looking-glass/looking-glass.post-deinstall deleted file mode 100644 index f193065..0000000 --- a/user/looking-glass/looking-glass.post-deinstall +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -exec /usr/sbin/akms uninstall kvmfr diff --git a/user/looking-glass/missing-includes.patch b/user/looking-glass/missing-includes.patch deleted file mode 100644 index 635752c..0000000 --- a/user/looking-glass/missing-includes.patch +++ /dev/null @@ -1,92 +0,0 @@ ---- a/repos/PureSpice/src/agent.c -+++ b/repos/PureSpice/src/agent.c -@@ -31,6 +31,7 @@ Place, Suite 330, Boston, MA 02111-1307 - #include - #include - #include -+#include - #include - - #include ---- a/repos/PureSpice/src/channel_cursor.c -+++ b/repos/PureSpice/src/channel_cursor.c -@@ -25,6 +25,7 @@ Place, Suite 330, Boston, MA 02111-1307 - #include "channel_cursor.h" - - #include -+#include - - #include "messages.h" - ---- a/repos/PureSpice/src/channel_display.c -+++ b/repos/PureSpice/src/channel_display.c -@@ -19,6 +19,7 @@ Place, Suite 330, Boston, MA 02111-1307 - - #include "purespice.h" - #include -+#include - - #include "ps.h" - #include "log.h" ---- a/repos/PureSpice/src/channel_inputs.c -+++ b/repos/PureSpice/src/channel_inputs.c -@@ -25,6 +25,7 @@ Place, Suite 330, Boston, MA 02111-1307 - #include "messages.h" - - #include -+#include - - const SpiceLinkHeader * channelInputs_getConnectPacket(void) - { ---- a/repos/PureSpice/src/channel_main.c -+++ b/repos/PureSpice/src/channel_main.c -@@ -24,6 +24,7 @@ Place, Suite 330, Boston, MA 02111-1307 - #include "messages.h" - - #include -+#include - - struct ChannelMain - { ---- a/repos/PureSpice/src/channel_playback.c -+++ b/repos/PureSpice/src/channel_playback.c -@@ -26,6 +26,8 @@ Place, Suite 330, Boston, MA 02111-1307 - - #include "messages.h" - -+#include -+ - const SpiceLinkHeader * channelPlayback_getConnectPacket(void) - { - typedef struct ---- a/repos/PureSpice/src/channel_record.c -+++ b/repos/PureSpice/src/channel_record.c -@@ -26,6 +26,8 @@ Place, Suite 330, Boston, MA 02111-1307 - - #include "messages.h" - -+#include -+ - const SpiceLinkHeader * channelRecord_getConnectPacket(void) - { - typedef struct ---- a/repos/PureSpice/src/log.c -+++ b/repos/PureSpice/src/log.c -@@ -25,6 +25,7 @@ Place, Suite 330, Boston, MA 02111-1307 - - #include - #include -+#include - - static void log_stdout(const char * file, unsigned int line, - const char * function, const char * format, ...) ---- a/repos/PureSpice/src/ps.c -+++ b/repos/PureSpice/src/ps.c -@@ -37,6 +37,7 @@ Place, Suite 330, Boston, MA 02111-1307 - #include - #include - #include -+#include - #include - #include - diff --git a/user/looking-glass/module_1075-fix-build-linux64.patch b/user/looking-glass/module_1075-fix-build-linux64.patch deleted file mode 100644 index bf594b5..0000000 --- a/user/looking-glass/module_1075-fix-build-linux64.patch +++ /dev/null @@ -1,25 +0,0 @@ -From e32b292cc1ba089db6ed28e4d5eb0fc8cc4c2235 Mon Sep 17 00:00:00 2001 -From: esi -Date: Fri, 12 May 2023 16:28:01 -0400 -Subject: [PATCH] [module] Fix build on Linux 6.4 (fixes #1075) - ---- - module/dkms.conf | 2 +- - module/kvmfr.c | 4 ++++ - 2 files changed, 5 insertions(+), 1 deletion(-) - -diff --git a/module/kvmfr.c b/module/kvmfr.c -index ca0cca685..c711e000e 100644 ---- a/module/kvmfr.c -+++ b/module/kvmfr.c -@@ -539,7 +539,11 @@ static int __init kvmfr_module_init(void) - if (kvmfr->major < 0) - goto out_free; - -+#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 4, 0) - kvmfr->pClass = class_create(THIS_MODULE, KVMFR_DEV_NAME); -+#else -+ kvmfr->pClass = class_create(KVMFR_DEV_NAME); -+#endif - if (IS_ERR(kvmfr->pClass)) - goto out_unreg; diff --git a/user/looking-glass/module_1124-fix-build-linux610.patch b/user/looking-glass/module_1124-fix-build-linux610.patch deleted file mode 100644 index c194c78..0000000 --- a/user/looking-glass/module_1124-fix-build-linux610.patch +++ /dev/null @@ -1,23 +0,0 @@ -From 7305ce36af211220419eeab302ff28793d515df2 Mon Sep 17 00:00:00 2001 -From: Geoffrey McRae -Date: Fri, 7 Jun 2024 19:01:38 +1000 -Subject: [PATCH] [module] fix build on linux 6.10 - -Fixes #1124 - Thanks @pongo1231 ---- - module/dkms.conf | 2 +- - module/kvmfr.c | 1 + - 2 files changed, 2 insertions(+), 1 deletion(-) - -diff --git a/module/kvmfr.c b/module/kvmfr.c -index b5acd18de..c99a5d79c 100644 ---- a/module/kvmfr.c -+++ b/module/kvmfr.c -@@ -30,6 +30,7 @@ - #include - #include - #include -+#include - - #include - diff --git a/user/looking-glass/obs-plugins-lib.patch b/user/looking-glass/obs-plugins-lib.patch deleted file mode 100644 index 1390adb..0000000 --- a/user/looking-glass/obs-plugins-lib.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- a/obs/CMakeLists.txt -+++ b/obs/CMakeLists.txt -@@ -84,7 +84,8 @@ target_link_libraries(looking-glass-obs - ) - - install(TARGETS looking-glass-obs -- LIBRARY DESTINATION ${OBS_PLUGIN_PREFIX}/${CMAKE_PROJECT_NAME}/bin/${OBS_PLUGIN_DIR} -+ # LIBRARY DESTINATION ${OBS_PLUGIN_PREFIX}/${CMAKE_PROJECT_NAME}/bin/${OBS_PLUGIN_DIR} -+ LIBRARY DESTINATION /usr/lib/obs-plugins - ) - - feature_summary(WHAT ENABLED_FEATURES DISABLED_FEATURES) diff --git a/user/looking-glass/werror.patch b/user/looking-glass/werror.patch deleted file mode 100644 index 436419f..0000000 --- a/user/looking-glass/werror.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff --git a/client/CMakeLists.txt b/client/CMakeLists.txt -index 836f814..7047365 100644 ---- a/client/CMakeLists.txt -+++ b/client/CMakeLists.txt -@@ -68,7 +68,6 @@ add_compile_options( - "-Wno-unused-parameter" - "$<$:-Wstrict-prototypes>" - "$<$:-Wimplicit-fallthrough=2>" -- "-Werror" - "-Wfatal-errors" - "-ffast-math" - "-fdata-sections" -diff --git a/obs/CMakeLists.txt b/obs/CMakeLists.txt -index 0491e65..60b37ff 100644 ---- a/obs/CMakeLists.txt -+++ b/obs/CMakeLists.txt -@@ -18,7 +18,6 @@ add_feature_info(ENABLE_BACKTRACE ENABLE_BACKTRACE "Backtrace support.") - - add_compile_options( - "-Wall" -- "-Werror" - "-Wfatal-errors" - "-ffast-math" - "-fdata-sections" From fd63d1544f87fd0f122ce073022e98e851eeaa21 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Wed, 28 May 2025 15:12:39 -0400 Subject: [PATCH 120/210] ci: add cross-gen workflow --- .forgejo/bin/build.sh | 2 +- .forgejo/bin/deploy.sh | 2 +- .forgejo/bin/generate-cross.sh | 54 ++++++++++++++++++++++++ .forgejo/workflows/build-aarch64.yaml | 1 + .forgejo/workflows/build-cross.yaml | 59 +++++++++++++++++++++++++++ .forgejo/workflows/build-x86_64.yaml | 1 + 6 files changed, 117 insertions(+), 2 deletions(-) create mode 100755 .forgejo/bin/generate-cross.sh create mode 100644 .forgejo/workflows/build-cross.yaml diff --git a/.forgejo/bin/build.sh b/.forgejo/bin/build.sh index ad5e30c..445929f 100755 --- a/.forgejo/bin/build.sh +++ b/.forgejo/bin/build.sh @@ -201,7 +201,7 @@ setup_system || die "Failed to setup system" # git no longer allows to execute in repositories owned by different users doas chown -R buildozer: . -fetch_flags="-qn" +fetch_flags="-qnu" debugging && fetch_flags="-v" git fetch $fetch_flags "$CI_MERGE_REQUEST_PROJECT_URL" \ diff --git a/.forgejo/bin/deploy.sh b/.forgejo/bin/deploy.sh index 3138b69..57afd32 100755 --- a/.forgejo/bin/deploy.sh +++ b/.forgejo/bin/deploy.sh @@ -4,7 +4,7 @@ set -eu -o pipefail readonly REPOS="backports user" -readonly BASEBRANCH=$GITHUB_BASE_REF +readonly BASEBRANCH=$CI_MERGE_REQUEST_TARGET_BRANCH_NAME readonly TARGET_REPO=$CI_ALPINE_REPO apkgs=$(find package -type f -name "*.apk") diff --git a/.forgejo/bin/generate-cross.sh b/.forgejo/bin/generate-cross.sh new file mode 100755 index 0000000..878b25f --- /dev/null +++ b/.forgejo/bin/generate-cross.sh @@ -0,0 +1,54 @@ +#!/bin/bash + +TARGET_RELEASE=$1 +shift +TARGET_ARCH=$@ +CURRENT_ARCH=$(cat /etc/apk/arch) + +if [ -z "$TARGET_RELEASE" ]; then + echo ">>> No target release specified, assumming edge" + TARGET_RELEASE=edge +fi +[[ "$TARGET_RELEASE" == "edge" ]] && TARGET_BRANCH=master || TARGET_BRANCH="${TARGET_RELEASE/v}-stable" + +if [[ ! -d "aports-$TARGET_RELEASE" ]]; then + echo ">>> Fetching aports for $TARGET_RELEASE" + git init aports-$TARGET_RELEASE + git -C aports-$TARGET_RELEASE remote add origin https://gitlab.alpinelinux.org/alpine/aports + git -C aports-$TARGET_RELEASE fetch --depth 1 origin $TARGET_BRANCH + git -C aports-$TARGET_RELEASE checkout $TARGET_BRANCH + [[ $? -ne 0 ]] && { echo ">>> Git fetch failed, does your release exist?"; exit; } || true +fi + +if [ -z "$TARGET_ARCH" ]; then + echo ">>> No arch specified, assuming target to all arches supported by upstream for release $TARGET_RELEASE" + TARGET_ARCH=$(cat aports-$TARGET_RELEASE/scripts/mkimg.minirootfs.sh | tr -d "\t" | awk -F "=" '{if($1=="arch"){print $2}}' | tr -d \" | sed "s| $CURRENT_ARCH||") + if [ -z "$TARGET_ARCH" ]; then + echo ">>> Could not compute arches that are supported, does your release exist?" + exit + fi +fi + +. /usr/share/abuild/functions.sh + +for arch in $TARGET_ARCH; do + if [[ "$(arch_to_hostspec $arch)" == "unknown" ]]; then + echo ">>> $arch not valid arch, please chose among the following" + sed -n '/^arch_to_hostspec/,/esac$/ {s/esac//;p;}' /usr/share/abuild/functions.sh | sed -e '/unknown/d' -e '/arch/d' -e '/case/d' -e "/$CURRENT_ARCH/d" | awk '{print $1}' | tr -d ')' + exit + fi +done + +echo ">>> Targetting $TARGET_ARCH for cross generation" + +( + cd aports-$TARGET_RELEASE/scripts + # this stops bootstrap from building the whole base system + sed -i 's|^msg "Cross building base system"|exit; msg "Cross building base system"|' bootstrap.sh + for arch in $TARGET_ARCH; do + echo ">>> Building cross-compilers for $arch" + ./bootstrap.sh $arch + [[ $? -ne 0 ]] && { echo ">>> Cross-build failure"; exit; } || true + done + echo ">>> Building done" +) diff --git a/.forgejo/workflows/build-aarch64.yaml b/.forgejo/workflows/build-aarch64.yaml index 0b6d800..0ff5e7c 100644 --- a/.forgejo/workflows/build-aarch64.yaml +++ b/.forgejo/workflows/build-aarch64.yaml @@ -40,6 +40,7 @@ jobs: 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: diff --git a/.forgejo/workflows/build-cross.yaml b/.forgejo/workflows/build-cross.yaml new file mode 100644 index 0000000..6d770f7 --- /dev/null +++ b/.forgejo/workflows/build-cross.yaml @@ -0,0 +1,59 @@ +on: + workflow_dispatch: + inputs: + target_arch: + description: 'target arch' + required: false + type: string + +jobs: + build-cross: + runs-on: x86_64 + 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.ref_name }} + steps: + - name: Environment setup + run: | + doas apk upgrade -a + doas apk add nodejs git patch curl bash + 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 + ${{ 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 + with: + name: package + path: packages + + deploy-cross: + needs: [build-cross] + runs-on: x86_64 + container: + image: alpine:latest + env: + CI_ALPINE_REPO: 'https://ayakael.net/api/packages/forge/alpine' + CI_MERGE_REQUEST_TARGET_BRANCH_NAME: ${{ github.ref_name }} + 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: forgejo/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 90c516e..ad7abb3 100644 --- a/.forgejo/workflows/build-x86_64.yaml +++ b/.forgejo/workflows/build-x86_64.yaml @@ -40,6 +40,7 @@ jobs: 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: From 614aa49d499be572a2d34cfc505f58bddf37fb41 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Wed, 28 May 2025 15:43:04 -0400 Subject: [PATCH 121/210] ci: add clear-repo workflow --- .forgejo/bin/clear-repo.sh | 21 +++++++++++++-------- .forgejo/workflows/clear-repo.yml | 25 +++++++++++++++++++++++++ 2 files changed, 38 insertions(+), 8 deletions(-) create mode 100644 .forgejo/workflows/clear-repo.yml diff --git a/.forgejo/bin/clear-repo.sh b/.forgejo/bin/clear-repo.sh index 14110ea..486321b 100755 --- a/.forgejo/bin/clear-repo.sh +++ b/.forgejo/bin/clear-repo.sh @@ -1,17 +1,22 @@ #!/bin/sh TARGET_REPO=$1 -ARCH=$2 +ARCH="x86 x86_64 armhf armv7 aarch64 ppc64le s390x mips64 riscv64 loongarch64" +for arch in $ARCH; do + # check if repo exists + wget --spider $TARGET_REPO/$arch/APKINDEX.tar.gz -o /dev/null || continue + echo ">>> Clearing repo $TARGET_REPO/$arch" -curl --silent $TARGET_REPO/$ARCH/APKINDEX.tar.gz | tar -O -zx APKINDEX > APKINDEX + curl --silent $TARGET_REPO/$arch/APKINDEX.tar.gz | tar -O -zx APKINDEX > APKINDEX -pkgs=$(awk -F ':' '{if($1=="o"){print $2}}' APKINDEX | sort | uniq) + pkgs=$(awk -F ':' '{if($1=="o"){print $2}}' APKINDEX | sort | uniq) -for pkg in $pkgs; do - pkgvers=$(sed -n "/^P:$pkg$/,/^$/p" APKINDEX | awk -F ':' '{if($1=="V"){print $2}}') - for pkgver in $pkgvers; do - echo "Deleting $pkg-$pkgver of arch $ARCH from $TARGET_REPO" - curl -s --user $FORGE_REPO_USER:$FORGE_REPO_TOKEN -X DELETE $TARGET_REPO/$ARCH/$pkg-$pkgver.apk + for pkg in $pkgs; do + pkgvers=$(sed -n "/^P:$pkg$/,/^$/p" APKINDEX | awk -F ':' '{if($1=="V"){print $2}}') + for pkgver in $pkgvers; do + echo "Deleting $pkg-$pkgver of arch $arch from $TARGET_REPO" + curl -s --user $FORGE_REPO_USER:$FORGE_REPO_TOKEN -X DELETE $TARGET_REPO/$arch/$pkg-$pkgver.apk + done done done diff --git a/.forgejo/workflows/clear-repo.yml b/.forgejo/workflows/clear-repo.yml new file mode 100644 index 0000000..f60f5e7 --- /dev/null +++ b/.forgejo/workflows/clear-repo.yml @@ -0,0 +1,25 @@ +on: + workflow_dispatch: + inputs: + target_repo: + description: 'target repo' + default: 'edge/user' + required: true + type: string + +jobs: + clear-repo: + runs-on: x86_64 + container: + image: alpine:latest + env: + TARGET_REPO: 'https://ayakael.net/api/packages/forge/alpine/${{ inputs.target_repo }}' + 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: Clear repo + run: ${{ github.workspace }}/.forgejo/bin/clear-repo.sh $TARGET_REPO From 97a6234e8eabfc97abb03d2550c89d2ffee40b45 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Wed, 28 May 2025 16:01:14 -0400 Subject: [PATCH 122/210] 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 123/210] 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 124/210] 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 125/210] 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 126/210] 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 127/210] 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 128/210] 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 129/210] 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 130/210] 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 131/210] 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 132/210] 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 133/210] 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 134/210] 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 135/210] 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 136/210] 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 137/210] 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 138/210] 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 139/210] 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 140/210] 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 141/210] 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 142/210] 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 143/210] 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 144/210] 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 145/210] 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 146/210] 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 147/210] 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 148/210] 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 149/210] 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 150/210] 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 151/210] 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 152/210] 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 153/210] 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 154/210] 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 155/210] 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 156/210] 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 157/210] 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 158/210] 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 159/210] 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 160/210] 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 161/210] 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 162/210] 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 163/210] 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 164/210] 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 165/210] 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 166/210] 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 167/210] 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 168/210] 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 169/210] 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 170/210] 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 171/210] 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 172/210] 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 173/210] 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 174/210] 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 175/210] 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 176/210] 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 177/210] 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 178/210] 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 179/210] 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 180/210] 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 181/210] 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 182/210] 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 183/210] 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 184/210] 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 185/210] 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 186/210] 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 187/210] 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 188/210] 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 189/210] 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 190/210] 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 191/210] 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 192/210] 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 193/210] 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 194/210] 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 195/210] 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 196/210] 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 197/210] 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 198/210] 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 199/210] 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 200/210] 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 201/210] 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 202/210] 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 203/210] 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 204/210] 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 205/210] 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 206/210] 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 207/210] 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 208/210] 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 209/210] 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 210/210] 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 -}