From 12cc464155b559c379ce2014352c6052d3f995c0 Mon Sep 17 00:00:00 2001 From: MilhouseVH Date: Fri, 8 Feb 2019 17:17:43 +0000 Subject: [PATCH] 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". --- packages/virtual/initramfs/package.mk | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/virtual/initramfs/package.mk b/packages/virtual/initramfs/package.mk index ef17f196ce..b278804659 100644 --- a/packages/virtual/initramfs/package.mk +++ b/packages/virtual/initramfs/package.mk @@ -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 \