summaryrefslogtreecommitdiffstats
path: root/core/rootfs/rootfs-stage31/data
diff options
context:
space:
mode:
authorJonathan Bauer2020-08-10 15:10:36 +0200
committerJonathan Bauer2020-08-10 15:10:36 +0200
commita5a99f8a16abc1413dc9b0d3755e545fb72ad211 (patch)
tree0ce0c646bc090d9bc4d59f4a36c1c8b33ffc6de9 /core/rootfs/rootfs-stage31/data
parent[dnbd3] fix fuse group creation (diff)
parent[xorg] Conditionally apply Iris workaround (diff)
downloadmltk-a5a99f8a16abc1413dc9b0d3755e545fb72ad211.tar.gz
mltk-a5a99f8a16abc1413dc9b0d3755e545fb72ad211.tar.xz
mltk-a5a99f8a16abc1413dc9b0d3755e545fb72ad211.zip
Merge branch 'master' into installer
Diffstat (limited to 'core/rootfs/rootfs-stage31/data')
-rw-r--r--core/rootfs/rootfs-stage31/data/inc/activate_sysconfig10
1 files changed, 9 insertions, 1 deletions
diff --git a/core/rootfs/rootfs-stage31/data/inc/activate_sysconfig b/core/rootfs/rootfs-stage31/data/inc/activate_sysconfig
index 2d6015e1..c93d6e0d 100644
--- a/core/rootfs/rootfs-stage31/data/inc/activate_sysconfig
+++ b/core/rootfs/rootfs-stage31/data/inc/activate_sysconfig
@@ -65,7 +65,15 @@ install_config_tgz() {
local TEMP_EXTRACT_DIR="/tmp/config.tgz.tmp"
# TODO perserve existing directories permissions (but overwrite the permissions of files!)
mkdir -p "${TEMP_EXTRACT_DIR}"
- tar xf "${CONFIG}.tgz" -C "${TEMP_EXTRACT_DIR}" || { echo "Could not untar ${CONFIG}.tgz to ${TEMP_EXTRACT_DIR}"; return 1; }
+ # Recent versions of busybox tar bail out if two symlinks with the same name exist in archive
+ if ! tar xf "${CONFIG}.tgz" -C "${TEMP_EXTRACT_DIR}" 2> /tmp/tarpit; then
+ # Exit code is unclean...
+ if ! [ -s /tmp/tarpit ] || grep -q -v 'create symlink' /tmp/tarpit; then
+ # ...and we have en empty error log, OR any error that isn't "can't create symlink" -> abort
+ echo "Could not untar ${CONFIG}.tgz to ${TEMP_EXTRACT_DIR}"
+ return 1
+ fi
+ fi
# Write list to stage32 for debug
tar tvf "${CONFIG}.tgz" > "${FUTURE_ROOT}/opt/openslx/config.tgz.list" 2>&1
chown -R 0:0 "${TEMP_EXTRACT_DIR}" 2>/dev/null