package/vim: fix reinstallation with a patch

In commit 67e84345c156170fa01103289f1d255a74ad830d ("package/vim: fix
reinstallation"), we fixed the reinstallation of vim for the target
package by removing symlinks before calling "make installlinks".

However, this didn't fix the same problem for the host-vim package.

So instead, this commit adds a patch, accepted upstream, that uses "ln
-sf" instead of "ln -s" to create the symlinks, allowing them to be
overwriten on reinstallation.

Fixes:

ln: failed to create symbolic link 'view': File exists

on reinstallation of host-vim.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Julien Olivain <ju.o@free.fr>
(cherry picked from commit ee656a4486cecc24dc424e4de62ca6c185432d0b)
Signed-off-by: Thomas Perale <thomas.perale@mind.be>
This commit is contained in:
Thomas Petazzoni
2025-12-28 20:23:43 +01:00
committed by Thomas Perale
parent c24744dcbc
commit 6d92d9ae99
2 changed files with 78 additions and 1 deletions

View File

@@ -0,0 +1,78 @@
From 5686ef63f81fcac2ca6ec6e7160829b295ad4e79 Mon Sep 17 00:00:00 2001
From: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Date: Sun, 28 Dec 2025 15:01:38 +0100
Subject: [PATCH] src/Makefile: create links with ln -sf
Running "make installlinks" twice towards the same destination
directory will fail, as symlink will already exist. This is not really
expected as "make install" is normally expected to work again and
again towards the same destination directory.
Fix this by using ln -sf.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Upstream: https://github.com/vim/vim/commit/6df5360691266b5eca49380e94f3e21fa48e5e0b
---
src/Makefile | 24 ++++++++++++------------
1 file changed, 12 insertions(+), 12 deletions(-)
diff --git a/src/Makefile b/src/Makefile
index 6fb1eb95e..39f798260 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -2746,40 +2746,40 @@ installvimdiff: $(DEST_BIN)/$(VIMDIFFTARGET)
installgvimdiff: $(DEST_BIN)/$(GVIMDIFFTARGET)
$(DEST_BIN)/$(EXTARGET): $(DEST_BIN)
- cd $(DEST_BIN); ln -s $(VIMTARGET) $(EXTARGET)
+ cd $(DEST_BIN); ln -sf $(VIMTARGET) $(EXTARGET)
$(DEST_BIN)/$(VIEWTARGET): $(DEST_BIN)
- cd $(DEST_BIN); ln -s $(VIMTARGET) $(VIEWTARGET)
+ cd $(DEST_BIN); ln -sf $(VIMTARGET) $(VIEWTARGET)
$(DEST_BIN)/$(GVIMTARGET): $(DEST_BIN)
- cd $(DEST_BIN); ln -s $(VIMTARGET) $(GVIMTARGET)
+ cd $(DEST_BIN); ln -sf $(VIMTARGET) $(GVIMTARGET)
$(DEST_BIN)/$(GVIEWTARGET): $(DEST_BIN)
- cd $(DEST_BIN); ln -s $(VIMTARGET) $(GVIEWTARGET)
+ cd $(DEST_BIN); ln -sf $(VIMTARGET) $(GVIEWTARGET)
$(DEST_BIN)/$(RVIMTARGET): $(DEST_BIN)
- cd $(DEST_BIN); ln -s $(VIMTARGET) $(RVIMTARGET)
+ cd $(DEST_BIN); ln -sf $(VIMTARGET) $(RVIMTARGET)
$(DEST_BIN)/$(RVIEWTARGET): $(DEST_BIN)
- cd $(DEST_BIN); ln -s $(VIMTARGET) $(RVIEWTARGET)
+ cd $(DEST_BIN); ln -sf $(VIMTARGET) $(RVIEWTARGET)
$(DEST_BIN)/$(RGVIMTARGET): $(DEST_BIN)
- cd $(DEST_BIN); ln -s $(VIMTARGET) $(RGVIMTARGET)
+ cd $(DEST_BIN); ln -sf $(VIMTARGET) $(RGVIMTARGET)
$(DEST_BIN)/$(RGVIEWTARGET): $(DEST_BIN)
- cd $(DEST_BIN); ln -s $(VIMTARGET) $(RGVIEWTARGET)
+ cd $(DEST_BIN); ln -sf $(VIMTARGET) $(RGVIEWTARGET)
$(DEST_BIN)/$(VIMDIFFTARGET): $(DEST_BIN)
- cd $(DEST_BIN); ln -s $(VIMTARGET) $(VIMDIFFTARGET)
+ cd $(DEST_BIN); ln -sf $(VIMTARGET) $(VIMDIFFTARGET)
$(DEST_BIN)/$(GVIMDIFFTARGET): $(DEST_BIN)
- cd $(DEST_BIN); ln -s $(VIMTARGET) $(GVIMDIFFTARGET)
+ cd $(DEST_BIN); ln -sf $(VIMTARGET) $(GVIMDIFFTARGET)
$(DEST_BIN)/$(EVIMTARGET): $(DEST_BIN)
- cd $(DEST_BIN); ln -s $(VIMTARGET) $(EVIMTARGET)
+ cd $(DEST_BIN); ln -sf $(VIMTARGET) $(EVIMTARGET)
$(DEST_BIN)/$(EVIEWTARGET): $(DEST_BIN)
- cd $(DEST_BIN); ln -s $(VIMTARGET) $(EVIEWTARGET)
+ cd $(DEST_BIN); ln -sf $(VIMTARGET) $(EVIEWTARGET)
# Create links for the manual pages with various names to vim. This is only
# done when the links (or manpages with the same name) don't exist yet.
--
2.52.0

View File

@@ -55,7 +55,6 @@ VIM_INSTALL_TARGETS += installrtbase installmacros
endif
define VIM_INSTALL_TARGET_CMDS
$(RM) -f $(TARGET_DIR)/usr/bin/{ex,view,rvim,rview,vimdiff}
$(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/src DESTDIR=$(TARGET_DIR) \
$(VIM_INSTALL_TARGETS)
$(RM) -rf $(TARGET_DIR)/usr/share/vim/vim*/doc/