Skip to contentSkip to conversation

vim: create a relative symlink for vi

PATCH New Baruch Siach 2 participants 3 messages Jul 13, 2018

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 vim: create a relative symlink for vi

/bin/vi is created as a canonical symlink, which might be dangling when the host doesn't have vim installed. This is not a problem by itself. But since commit 50dc350c65f4 (package/busybox: update to 1.29.0) we use noclobber install of busybox. The dangling symlink is interpreted as non existing file, which breaks the noclobber install.

Fixes:
http://autobuild.buildroot.net/results/796/796107430db6545401d9926e84f19eaf2040b756/

---
Yann, in the general case we should probably not copy over a dangling symlink. So maybe we need to account for that in the install.sh script of busybox.

---
 package/vim/vim.mk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
package/vim/vim.mk +1 -1
index dbf71c573f6c..4a8bbdad2e1e 100644
@@ -64,7 +64,7 @@ endef
 
 # Avoid oopses with vipw/vigr, lack of $EDITOR and 'vi' command expectation
 define VIM_INSTALL_VI_SYMLINK
-	ln -sf /usr/bin/vim $(TARGET_DIR)/bin/vi
+	ln -sf ../usr/bin/vim $(TARGET_DIR)/bin/vi
 endef
 VIM_POST_INSTALL_TARGET_HOOKS += VIM_INSTALL_VI_SYMLINK
 
Signature · 1 line
2.18.0
#1 lore raw

PATCH 1/1 vim: create a relative symlink for vi

Quoted 23 lines · Baruch Siach

/bin/vi is created as a canonical symlink, which might be dangling when the host doesn't have vim installed. This is not a problem by itself. But since commit 50dc350c65f4 (package/busybox: update to 1.29.0) we use noclobber install of busybox. The dangling symlink is interpreted as non existing file, which breaks the noclobber install.

Fixes:
http://autobuild.buildroot.net/results/796/796107430db6545401d9926e84f19eaf2040b756/

---
Yann, in the general case we should probably not copy over a dangling symlink. So maybe we need to account for that in the install.sh script of busybox.

---
 package/vim/vim.mk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
package/vim/vim.mk +0 -0
index dbf71c573f6c..4a8bbdad2e1e 100644

package/vim/vim.mk endef · line 67

Quoted 5 lines
package/vim/vim.mk +1 -1
@@ -64,7 +64,7 @@ endef
 
 # Avoid oopses with vipw/vigr, lack of $EDITOR and 'vi' command expectation
 define VIM_INSTALL_VI_SYMLINK
-	ln -sf /usr/bin/vim $(TARGET_DIR)/bin/vi
+	ln -sf ../usr/bin/vim $(TARGET_DIR)/bin/vi

Won't this break under BR2_ROOTFS_MERGED_USR?

That's a problem with relative symlinks in general: the .. may not point to the
directory you expect...

Regards,
Arnout

Quoted 4 lines
package/vim/vim.mk +0 -0
 endef
 VIM_POST_INSTALL_TARGET_HOOKS += VIM_INSTALL_VI_SYMLINK
 
Signature · 6 lines
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF
#2 lore raw

PATCH 1/1 vim: create a relative symlink for vi

Hi Arnout,

Quoted 32 lines · Arnout Vandecappelle
Quoted 23 lines · Baruch Siach

/bin/vi is created as a canonical symlink, which might be dangling when the host doesn't have vim installed. This is not a problem by itself. But since commit 50dc350c65f4 (package/busybox: update to 1.29.0) we use noclobber install of busybox. The dangling symlink is interpreted as non existing file, which breaks the noclobber install.

Fixes:
http://autobuild.buildroot.net/results/796/796107430db6545401d9926e84f19eaf2040b756/

---
Yann, in the general case we should probably not copy over a dangling symlink. So maybe we need to account for that in the install.sh script of busybox.

---
 package/vim/vim.mk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
package/vim/vim.mk +0 -0
index dbf71c573f6c..4a8bbdad2e1e 100644

package/vim/vim.mk endef · line 67

Quoted 5 lines
package/vim/vim.mk +1 -1
@@ -64,7 +64,7 @@ endef
 
 # Avoid oopses with vipw/vigr, lack of $EDITOR and 'vi' command expectation
 define VIM_INSTALL_VI_SYMLINK
-	ln -sf /usr/bin/vim $(TARGET_DIR)/bin/vi
+	ln -sf ../usr/bin/vim $(TARGET_DIR)/bin/vi

Won't this break under BR2_ROOTFS_MERGED_USR?

Quoted 2 lines

That's a problem with relative symlinks in general: the .. may not point to the
directory you expect...

So the real fix requires a change to the busybox install.sh, right?

baruch

Signature · 3 lines
     http://baruch.siach.name/blog/                  ~. .~   Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
   - baruch at tkos.co.il - tel: +972.52.368.4656, http://www.tkos.co.il -