Merge origin/master: combine restart loop fixes into 5.2.0-3

Agent-Logs-Url: https://github.com/alexbelgium/hassio-addons/sessions/0b6f18f4-1da4-4284-86c4-a883db0a8e04

Co-authored-by: alexbelgium <44178713+alexbelgium@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot]
2026-05-10 15:17:42 +00:00
committed by GitHub
parent 61011dc352
commit cb6e9e0ecb
8 changed files with 81 additions and 12 deletions

View File

@@ -1,4 +1,7 @@
## v3.17.0-1 (2026-05-10)
- Fix sidebar panel not visible to non-admin HA users (remove duplicate panel_admin key, keep panel_admin: false)
## v3.17.0 (2026-05-09)
- Update to latest version from mealie-recipes/mealie (changelog : https://github.com/mealie-recipes/mealie/releases)

View File

@@ -94,7 +94,6 @@ options:
ssl: false
panel_admin: false
panel_icon: mdi:silverware-fork-knife
panel_admin: false
ports:
9001/tcp: 9090
ports_description:
@@ -115,4 +114,4 @@ schema:
slug: mealie
udev: true
url: https://github.com/alexbelgium/hassio-addons
version: "v3.17.0"
version: "v3.17.0-1"

View File

@@ -1,7 +1,10 @@
## 5.2.0-3 (2026-05-10)
- Fix qBittorrent restart loop: remove s6-notifyoncheck (notification-fd 3 EBADF when not running under s6-rc), discover binary path dynamically across LSIO image layouts, remove `/dev/stdout` redirect that fails on some ARM runtimes, align with upstream LSIO run script (WebUI address from config, LSIO_NON_ROOT_USER)
- Fix Dockerfile: add missing `-i` flag to `sed '11,13d'` so default config lines are actually removed at build time
## 5.2.0-2 (2026-05-10)
- Fix qbittorrent restart loop on aarch64/ARM64 devices (e.g. odroid-c2): remove `> /dev/stdout` redirect in service run script that could fail on certain container runtimes, align with upstream LSIO run script (read WebUI address from config, honour LSIO_NON_ROOT_USER)
- Fix Dockerfile: add missing `-i` flag to `sed '11,13d'` so default config lines are actually removed at build time
- Fix qBittorrent restart loop: remove s6-notifyoncheck (avoids notification-fd EBADF crash) and discover binary path dynamically across LSIO image layouts
## 5.2.0-1 (2026-05-10)
- Fix qbittorrent-nox path (/usr/bin → /app) after LSIO image update

View File

@@ -143,4 +143,4 @@ schema:
slug: qbittorrent
udev: true
url: https://github.com/alexbelgium/hassio-addons
version: "5.2.0-2"
version: "5.2.0-3"

View File

@@ -42,6 +42,20 @@ fi
# --- Launch qBittorrent ---
# Find qbittorrent-nox binary across different LSIO image layouts
QB_BIN=""
for candidate in /app/qbittorrent-nox /usr/bin/qbittorrent-nox /usr/local/bin/qbittorrent-nox; do
if [[ -x "${candidate}" ]]; then
QB_BIN="${candidate}"
break
fi
done
if [[ -z "${QB_BIN}" ]]; then
bashio::log.fatal "qbittorrent-nox binary not found"
exit 1
fi
bashio::log.info "Starting qBittorrent..."
# Suppress output in silent mode by redirecting the current shell's stdout/stderr
@@ -52,11 +66,7 @@ if bashio::config.true 'silent'; then
fi
if [[ -z ${LSIO_NON_ROOT_USER} ]]; then
exec \
s6-notifyoncheck -d -n 300 -w 1000 -c "nc -z ${WEBUI_ADDRESS} ${WEBUI_PORT}" \
s6-setuidgid abc /app/qbittorrent-nox --webui-port="${WEBUI_PORT}"
exec s6-setuidgid abc "${QB_BIN}" --webui-port="${WEBUI_PORT}"
else
exec \
s6-notifyoncheck -d -n 300 -w 1000 -c "nc -z ${WEBUI_ADDRESS} ${WEBUI_PORT}" \
/app/qbittorrent-nox --webui-port="${WEBUI_PORT}"
exec "${QB_BIN}" --webui-port="${WEBUI_PORT}"
fi

View File

@@ -1,4 +1,7 @@
## 12.0.18-4 (2026-05-10)
- Fix admin account creation by writing `conf/admin.txt` and seeding `seafile.env` with `SEAFILE_ADMIN_EMAIL`/`SEAFILE_ADMIN_PASSWORD` so the upstream `check_init_admin.py` no longer falls back to an interactive prompt (#2685)
## 12.0.18-3 (2026-05-10)
- Fix MariaDB connection on HAOS >=17.3 by forcing IPv4 host resolution (#2688)

View File

@@ -128,5 +128,5 @@ services:
slug: seafile
udev: true
url: https://github.com/alexbelgium/hassio-addons/tree/master/seafile
version: "12.0.18-3"
version: "12.0.18-4"
webui: http://[HOST]:[PORT:8000]

View File

@@ -94,6 +94,57 @@ sed -i "s|/shared|$DATA_LOCATION|g" /docker_entrypoint.sh
sed -i "s|/shared|$DATA_LOCATION|g" /home/seafile/*.sh
#sed -i "s=cp -r ./media $DATA_LOCATION/=chown -R seafile:seafile $DATA_LOCATION/* && chmod -R 777 $DATA_LOCATION/media && cp -rnf ./media/. $DATA_LOCATION/media ||true=g" /home/seafile/*.sh
#####################
# Admin credentials #
#####################
# Seafile's check_init_admin.py looks for SEAFILE_ADMIN_EMAIL and
# SEAFILE_ADMIN_PASSWORD in the env, then falls back to conf/admin.txt, and
# only prompts interactively if neither is available. The upstream init.sh
# writes admin.txt, but it is skipped when conf/ccnet.conf or conf/revision
# already exist (e.g. after a partial previous install) and the env vars do
# not always reach the seahub subprocess via su. Write admin.txt directly and
# inject the values into seafile.env so admin creation succeeds (#2685).
ADMIN_EMAIL_VAL="$(bashio::config 'SEAFILE_ADMIN_EMAIL')"
ADMIN_PASSWORD_VAL="$(bashio::config 'SEAFILE_ADMIN_PASSWORD')"
if [[ -n "${ADMIN_EMAIL_VAL}" && "${ADMIN_EMAIL_VAL}" != "null" \
&& -n "${ADMIN_PASSWORD_VAL}" && "${ADMIN_PASSWORD_VAL}" != "null" ]]; then
bashio::log.info "Seeding admin credentials"
mkdir -p "${DATA_LOCATION}/conf"
ADMIN_FILE="${DATA_LOCATION}/conf/admin.txt"
jq -n --arg email "${ADMIN_EMAIL_VAL}" --arg password "${ADMIN_PASSWORD_VAL}" \
'{email: $email, password: $password}' > "${ADMIN_FILE}"
chown seafile:seafile "${ADMIN_FILE}"
chmod 600 "${ADMIN_FILE}"
SEAFILE_ENV_FILE="${DATA_LOCATION}/conf/seafile.env"
touch "${SEAFILE_ENV_FILE}"
sed -i '/^SEAFILE_ADMIN_EMAIL=/d' "${SEAFILE_ENV_FILE}"
sed -i '/^SEAFILE_ADMIN_PASSWORD=/d' "${SEAFILE_ENV_FILE}"
case "${ADMIN_EMAIL_VAL}" in
*$'\n'*|*$'\r'*)
bashio::exit.nok "SEAFILE_ADMIN_EMAIL must not contain newlines"
;;
esac
case "${ADMIN_PASSWORD_VAL}" in
*$'\n'*|*$'\r'*)
bashio::exit.nok "SEAFILE_ADMIN_PASSWORD must not contain newlines"
;;
esac
{
printf 'SEAFILE_ADMIN_EMAIL=%s\n' "${ADMIN_EMAIL_VAL}"
printf 'SEAFILE_ADMIN_PASSWORD=%s\n' "${ADMIN_PASSWORD_VAL}"
} >> "${SEAFILE_ENV_FILE}"
chown seafile:seafile "${SEAFILE_ENV_FILE}"
chmod 600 "${SEAFILE_ENV_FILE}"
fi
#############################################
# Configure service URL and file server root #
#############################################