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
+1
View File
@@ -5,6 +5,7 @@
# OS
.DS_Store
._*
Thumbs.db
# IDE
Binary file not shown.
+2 -2
View File
@@ -8,7 +8,7 @@
<!ENTITY pluginLOC "/boot/config/plugins/&name;">
<!ENTITY emhttpLOC "/usr/local/emhttp/plugins/&name;">
<!ENTITY txzURL "http://192.168.1.2:4000/michael/MUA-Mikes-Unraid-Agent/raw/branch/main/dist/mua-2026.08.18.r006-x86_64-1.txz">
<!ENTITY txzSHA256 "ad1537bd4ac3c77e1a32316622022d311dc2d0d6fad4f05044ba0bc4abf48561">
<!ENTITY txzSHA256 "b01b62d482f91bf51029b85639bb67a9db919a383ae5cf3316c59bd022766e7d">
]>
<PLUGIN name="&name;"
@@ -81,7 +81,7 @@ Das .txz enthält:
install/doinst.sh (läuft nach Installation)
===========================================
-->
<FILE Name="mua-2026.08.18.r006-x86_64-1.txz" Run="upgradepkg --install-new" Mode="755" Min="7.0.0">
<FILE Name="/boot/config/plugins/&name;/mua-2026.08.18.r006-x86_64-1.txz" Run="upgradepkg --install-new" Mode="755" Min="7.0.0">
<URL>&txzURL;</URL>
<SHA256>&txzSHA256;</SHA256>
</FILE>
+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 "===================================================="