From 78a32bad301e9e15b48d8866249c2a110a3ca04e Mon Sep 17 00:00:00 2001 From: GONG Jie Date: Mon, 29 Oct 2018 15:42:56 +0800 Subject: [PATCH 1/2] Fix github issue #5740 - Avoid remove symbolic link as directory --- xCAT-genesis-builder/xCAT-genesis-base.spec | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/xCAT-genesis-builder/xCAT-genesis-base.spec b/xCAT-genesis-builder/xCAT-genesis-base.spec index 76bd5644b..cc77653c4 100644 --- a/xCAT-genesis-builder/xCAT-genesis-base.spec +++ b/xCAT-genesis-builder/xCAT-genesis-base.spec @@ -112,11 +112,16 @@ local function remove_directory_deep(directory) -- print(directory) - num_dirs, num_files = remove_directory(directory, 0, '') + local info = assert(posix.stat(directory)) + if info.type == 'directory' then + num_dirs, num_files = remove_directory(directory, 0, '') - -- printf('\ndropped %d directories, %d files\n', num_dirs, num_files) + -- printf('\ndropped %d directories, %d files\n', num_dirs, num_files) - posix.rmdir(directory) + posix.rmdir(directory) + else + posix.unlink(directory) + end end remove_directory_deep("/opt/xcat/share/xcat/netboot/genesis/%{tarch}/fs/bin") From cda300faa74be551c95964bd09a3405e30a0fef7 Mon Sep 17 00:00:00 2001 From: GONG Jie Date: Mon, 29 Oct 2018 15:44:35 +0800 Subject: [PATCH 2/2] Fix indents --- xCAT-genesis-builder/xCAT-genesis-base.spec | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/xCAT-genesis-builder/xCAT-genesis-base.spec b/xCAT-genesis-builder/xCAT-genesis-base.spec index cc77653c4..aa9f5bc4e 100644 --- a/xCAT-genesis-builder/xCAT-genesis-base.spec +++ b/xCAT-genesis-builder/xCAT-genesis-base.spec @@ -89,7 +89,7 @@ local function remove_directory(directory, level, prefix) posix.unlink(full_name) end - -- printf('%s%s%s%s\n', prefix, prefix2, name, link) + -- printf('%s%s%s%s\n', prefix, prefix2, name, link) if info.type == 'directory' then local indent = is_tail and tail_leaf_indent or leaf_indent @@ -132,13 +132,13 @@ remove_directory_deep("/opt/xcat/share/xcat/netboot/genesis/%{tarch}/fs/var/run" %post if [ "$1" == "2" ]; then #only on upgrade, as on install it's probably not going to work... - if [ -f "/proc/cmdline" ]; then # prevent running it during install into chroot image - . /etc/profile.d/xcat.sh - #mknb %{tarch} + if [ -f "/proc/cmdline" ]; then # prevent running it during install into chroot image + . /etc/profile.d/xcat.sh + #mknb %{tarch} echo "If you are installing/updating xCAT-genesis-base separately, not as part of installing/updating all of xCAT, run 'mknb ' manually" mkdir -p /etc/xcat touch /etc/xcat/genesis-base-updated - fi + fi fi %Files