fix packaging ownership for Unraid
This commit is contained in:
+23
-2
@@ -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 "===================================================="
|
||||
|
||||
Reference in New Issue
Block a user