Niko Mauno
2018-11-11 14:19:49 UTC
Commit fcb26339000021eb9bb711aa264247aebcfdd4ae which added Debian-style
support for link relocation tries to relocate symbolic link on host OS,
resulting in following-like error when two alternative packages have
symbolic link source located in different directories (/bin/rev ->
/bin/busybox.nosuid and /usr/bin/rev -> /usr/bin/rev.util-linux):
update-alternatives: renaming rev link from /bin/rev to /usr/bin/rev
mv: cannot stat '/bin/rev': No such file or directory
Fix the issue by prefixing 'olink' and 'link' variable references with
path to targeted root filesystem's root directory.
Signed-off-by: Niko Mauno <***@iki.fi>
---
update-alternatives | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/update-alternatives b/update-alternatives
index 89a440b..d4fa7eb 100644
--- a/update-alternatives
+++ b/update-alternatives
@@ -58,7 +58,7 @@ register_alt() {
local link_str=`echo $link | protect_slashes`
sed -e "1s/.*/$link_str/" $ad/$name > $ad/$name.new
mv $ad/$name.new $ad/$name
- mv $olink $link
+ mv $OPKG_OFFLINE_ROOT$olink $OPKG_OFFLINE_ROOT$link
fi
else
echo "$link" > "$ad/$name"
support for link relocation tries to relocate symbolic link on host OS,
resulting in following-like error when two alternative packages have
symbolic link source located in different directories (/bin/rev ->
/bin/busybox.nosuid and /usr/bin/rev -> /usr/bin/rev.util-linux):
update-alternatives: renaming rev link from /bin/rev to /usr/bin/rev
mv: cannot stat '/bin/rev': No such file or directory
Fix the issue by prefixing 'olink' and 'link' variable references with
path to targeted root filesystem's root directory.
Signed-off-by: Niko Mauno <***@iki.fi>
---
update-alternatives | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/update-alternatives b/update-alternatives
index 89a440b..d4fa7eb 100644
--- a/update-alternatives
+++ b/update-alternatives
@@ -58,7 +58,7 @@ register_alt() {
local link_str=`echo $link | protect_slashes`
sed -e "1s/.*/$link_str/" $ad/$name > $ad/$name.new
mv $ad/$name.new $ad/$name
- mv $olink $link
+ mv $OPKG_OFFLINE_ROOT$olink $OPKG_OFFLINE_ROOT$link
fi
else
echo "$link" > "$ad/$name"
--
2.19.1
--
2.19.1
--