initramfs: use ln -sfn when LINK_NAME is a directory

INSTALL      initramfs (target)
ln: failed to create symbolic link '/home/ubuntu/projects/LibreELEC.tv/build.LibreELEC-RPi2.arm-9.0-devel-mt/initramfs/lib/lib': Permission denied
ln: failed to create symbolic link '/home/ubuntu/projects/LibreELEC.tv/build.LibreELEC-RPi2.arm-9.0-devel-mt/initramfs/bin/bin': Permission denied
ln: failed to create symbolic link '/home/ubuntu/projects/LibreELEC.tv/build.LibreELEC-RPi2.arm-9.0-devel-mt/initramfs/sbin/sbin': Permission denied

If the directory sym link already exists, we try to
create a directory within the dereferenced sym link. So...

ln -sf /usr/lib $BUILD/initramfs/lib

means we attempt to create a sym link within the existing
$BUILD/initramfs/lib which is derefernced to /usr/lib/lib,
resulting in "permission denied".
This commit is contained in:
MilhouseVH 2019-02-08 17:17:43 +00:00
parent 37e89c21f5
commit 12cc464155

View File

@ -22,14 +22,14 @@ fi
post_install() {
( cd $BUILD/initramfs
if [ "$TARGET_ARCH" = "x86_64" ]; then
ln -sf /usr/lib $BUILD/initramfs/lib64
ln -sfn /usr/lib $BUILD/initramfs/lib64
mkdir -p $BUILD/initramfs/usr
ln -sf /usr/lib $BUILD/initramfs/usr/lib64
ln -sfn /usr/lib $BUILD/initramfs/usr/lib64
fi
ln -sf /usr/lib $BUILD/initramfs/lib
ln -sf /usr/bin $BUILD/initramfs/bin
ln -sf /usr/sbin $BUILD/initramfs/sbin
ln -sfn /usr/lib $BUILD/initramfs/lib
ln -sfn /usr/bin $BUILD/initramfs/bin
ln -sfn /usr/sbin $BUILD/initramfs/sbin
mkdir -p $BUILD/image/
fakeroot -- sh -c \