Commit ad2eb34a07ed ("vim: prevent file name conflicts with busybox")
prevented vim being selected if busybox vi is selected. However, the vim
package does not currently install /usr/bin/vi, so the only conflict is
between vim's xxd and busybox's xxd.

Allow vim to be installed alongside busybox vi. Also add a configuration
option to allow installation of a /usr/bin/vi symbolic link to
/usr/bin/vim, but only allow it to be selected if busybox vi is not
selected.

Make the auto-selection of LIBC_M depend on VIM_VIM because VIM_XXD does
not appear to require it.  While we are at it, remove the obsolete
GCCLIBS_GCC_S and LIBC_DL selections.

Signed-off-by: Ian Abbott <abbo...@mev.co.uk>
---
v2: Corrected dependency problem I introduced by moving the
auto-selection of the required libraries from VIM to VIM_VIM.  I have
move them back, but only select them if VIM_VIM is selected, as
suggested by Alexander Dahl

v3: Applied changes requested by Michael Olbrich. (1) Align the 'if ...'
with tabs. [Actually, there is now only one 'if ...' now! -- IA] (2) vim
is still compiled even if VIM_VIM is disabled, so leave the NCURSES
dependency as is. (3) Remove GCCLIBC_GCC_S and LIBC_DL dependencies as
they are no longer used. (4) Add '|| ALLYES' dependency to conditionally
built items for better build tests.

v4: Updated commit description which I forgot to do in v3.
---
 rules/vim.in   | 22 ++++++++++------------
 rules/vim.make |  4 ++++
 2 files changed, 14 insertions(+), 12 deletions(-)

diff --git a/rules/vim.in b/rules/vim.in
index c4c9d14e6..d16b54a2d 100644
--- a/rules/vim.in
+++ b/rules/vim.in
@@ -1,14 +1,8 @@
 ## SECTION=editors
 
-comment "BusyBox' vi and xxd is selected!"
-       depends on BUSYBOX_VI && BUSYBOX_XXD
-
 menuconfig VIM
        tristate
-       depends on !(BUSYBOX_VI && BUSYBOX_XXD)
-       select LIBC_DL
-       select LIBC_M
-       select GCCLIBS_GCC_S
+       select LIBC_M   if VIM_VIM
        select NCURSES
        prompt "vim                           "
        help
@@ -18,18 +12,22 @@ menuconfig VIM
 
 if VIM
 
-comment "BusyBox' vi is selected!"
-       depends on BUSYBOX_VI
-
 config VIM_VIM
-       depends on !BUSYBOX_VI
        bool "Vim Editor"
 
+comment "BusyBox' vi is selected!"
+       depends on VIM_VIM && BUSYBOX_VI
+
+config VIM_VI_SYMLINK
+       depends on VIM_VIM && !BUSYBOX_VI || ALLYES
+       bool "install symbolic link /usr/bin/vi"
+       default y
+
 comment "BusyBox' xxd is selected!"
        depends on BUSYBOX_XXD
 
 config VIM_XXD
-       depends on !BUSYBOX_XXD
+       depends on !BUSYBOX_XXD || ALLYES
        bool "XXD"
 
 endif
diff --git a/rules/vim.make b/rules/vim.make
index b03778e53..8700b70bd 100644
--- a/rules/vim.make
+++ b/rules/vim.make
@@ -103,6 +103,10 @@ VIM_INSTALL_OPT := \
 
 VIM_LINKS := ex rview rvim view vimdiff
 
+ifdef PTXCONF_VIM_VI_SYMLINK
+VIM_LINKS += vi
+endif
+
 $(STATEDIR)/vim.targetinstall:
        @$(call targetinfo)
 
-- 
2.43.0


Reply via email to