fix packaging ownership for Unraid

This commit is contained in:
Mikei386
2026-08-20 23:13:30 +02:00
parent d20487e684
commit 514310912c
4 changed files with 26 additions and 4 deletions
+23 -2
View File
@@ -9,10 +9,16 @@
# etc/rc.d/rc.mua (SysVinit-Service)
# usr/local/emhttp/plugins/mua/mua.page (WebGUI-Tab)
#
# Cross-Platform: .txz ist ein gzip-tar, funktioniert auf macOS + Linux.
# Cross-Platform: .txz ist ein xz-komprimiertes tar und funktioniert auf
# macOS sowie Linux.
set -euo pipefail
# macOS erzeugt beim Kopieren/Packen auf manchen Dateisystemen AppleDouble-
# Dateien (._*) und speichert die lokale UID/GID im Archiv. Auf Unraid kann
# das sogar /, /usr oder /etc auf UID 501 umhängen. Beides verhindern.
export COPYFILE_DISABLE=1
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
# Version aus package.json lesen (Argument überschreibt)
PKG_VERSION="$(python3 -c "import json;print(json.load(open('${ROOT}/package.json'))['version'])" 2>/dev/null || echo "")"
@@ -109,7 +115,22 @@ DESCEOF
mkdir -p "${DIST_DIR}"
TXZ_NAME="${PKG_NAME}-${VERSION}-${ARCH}-${BUILD_NUM}.txz"
echo " Erstelle ${TXZ_NAME}..."
( cd "${BUILD_DIR}" && tar cf - . | xz -9 -c > "${DIST_DIR}/${TXZ_NAME}" )
find "${BUILD_DIR}" -name '._*' -delete
if tar --version 2>/dev/null | grep -q 'GNU tar'; then
TAR_OWNER_FLAGS=(--owner=0 --group=0 --numeric-owner)
else
TAR_OWNER_FLAGS=(--uid 0 --gid 0 --uname root --gname root)
fi
# Absichtlich nicht "." archivieren: Ein Archiveintrag für ./ darf beim
# Installieren niemals Eigentümer oder Modus des Unraid-Wurzelverzeichnisses
# überschreiben.
(
cd "${BUILD_DIR}"
tar --no-xattrs "${TAR_OWNER_FLAGS[@]}" -cf - etc install usr \
| xz -9 -c > "${DIST_DIR}/${TXZ_NAME}"
)
echo ""
echo "===================================================="