mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
In various distros (i.e. Debian), /lib is a symbolic link. The tar
command in install.sh replaces the /lib symlink with a directory and
results in a non-functioning system. This has been introduced by the
installation of the systemd watchdog sleep script in /lib/systemd.
This patch adds the tar option --dereference (-h for short) to preserve
symlinks when extracting the dist archive.
Fixes: e54a6cd6a1 ("systemd: Add hooks to stop/start xen-watchdog on suspend/resume")
Signed-off-by: Thierry Escande <thierry.escande@vates.tech>
Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>
Tested-by: Jason Andryuk <jason.andryuk@amd.com>
Acked-by: Anthony PERARD <anthony.perard@vates.tech>
36 lines
659 B
Bash
36 lines
659 B
Bash
#!/bin/sh
|
|
|
|
src='./install'
|
|
if [ -d ./dist ]; then
|
|
src='./dist/install'
|
|
fi
|
|
|
|
if ! [ -d $src ]; then
|
|
echo "ERROR: Could not find a valid distribution directory."
|
|
echo " If this is a source-only release, try 'make dist'."
|
|
exit 1
|
|
fi
|
|
|
|
dst='/'
|
|
if [ $# -ne 0 ]; then
|
|
dst=$1
|
|
fi
|
|
|
|
if ! [ -d $dst ]; then
|
|
echo "ERROR: You must specify a valid install directory."
|
|
echo " The specified directory '$dst' is not valid."
|
|
exit 1
|
|
fi
|
|
|
|
tmp="`mktemp -d`"
|
|
|
|
echo "Installing Xen from '$src' to '$dst'..."
|
|
(cd $src; tar -cf - * ) | tar -C "$tmp" -xf -
|
|
|
|
(cd $tmp; tar -cf - *) | tar --no-same-owner -C "$dst" -xhf -
|
|
rm -rf "$tmp"
|
|
|
|
echo "All done."
|
|
|
|
exit 0
|