diff --git a/vim.spec b/vim.spec index 4e9fcb8..76b6e30 100644 --- a/vim.spec +++ b/vim.spec @@ -1,11 +1,4 @@ -%define patchlevel 4006 -%if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} -%define WITH_SELINUX 1 -%endif -%define desktop_file 1 -%if %{desktop_file} -%define desktop_file_utils_version 0.2.93 -%endif +%bcond_without gui %if 0%{?fedora} %bcond_without default_editor @@ -15,6 +8,22 @@ %bcond_with libsodium_crypt %endif +%define patchlevel 4006 + +%if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} +%define WITH_SELINUX 1 +%endif + +%if %{with gui} +%define desktop_file 1 +%else +%define desktop_file 0 +%endif + +%if %{desktop_file} +%define desktop_file_utils_version 0.2.93 +%endif + %define withnetbeans 1 %define withvimspell 0 @@ -29,7 +38,7 @@ Summary: The VIM editor URL: http://www.vim.org/ Name: vim Version: %{baseversion}.%{patchlevel} -Release: 1%{?dist} +Release: 2%{?dist} Epoch: 2 License: Vim and MIT Source0: ftp://ftp.vim.org/pub/vim/unix/vim-%{baseversion}-%{patchlevel}.tar.bz2 @@ -54,6 +63,7 @@ Source100: vim-spell-files.tar.bz2 Patch2000: vim-7.0-fixkeys.patch Patch2001: vim-7.4-specsyntax.patch + %if %{withhunspell} Patch2002: vim-7.0-hunspell.patch BuildRequires: hunspell-devel @@ -74,15 +84,18 @@ Patch3007: vim-8.0-copy-paste.patch # uses autoconf in spec file BuildRequires: autoconf + %if %{desktop_file} # for /usr/bin/desktop-file-install BuildRequires: desktop-file-utils >= %{desktop_file_utils_version} Requires: desktop-file-utils %endif + # gcc is no longer in buildroot by default BuildRequires: gcc # for translations BuildRequires: gettext + # glibc in F35 bootstraped several conversion formats from # iconv into a separate package. Vim needs those additional # formats during compilation. @@ -91,22 +104,27 @@ BuildRequires: gettext %if 0%{?fedora} >= 35 BuildRequires: glibc-gconv-extra %endif + # for mouse support in console BuildRequires: gpm-devel # for setting ACL on created files BuildRequires: libacl-devel + # selinux support %if %{WITH_SELINUX} BuildRequires: libselinux-devel %endif + # for xchacha20 encryption %if %{with libsodium_crypt} BuildRequires: libsodium-devel %endif + # for lua plugin %if "%{withlua}" == "1" BuildRequires: lua-devel %endif + # uses make BuildRequires: make # screen handling library @@ -118,6 +136,7 @@ BuildRequires: perl(ExtUtils::Embed) BuildRequires: perl(ExtUtils::ParseXS) # for python plugin BuildRequires: python3-devel + # for ruby plugin %if "%{withruby}" == "1" BuildRequires: ruby @@ -201,10 +220,12 @@ Requires: which %if "%{withlua}" == "1" Suggests: lua-libs %endif + Suggests: perl-devel Suggests: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version)) Suggests: python3 Suggests: python3-libs + %if "%{withruby}" == "1" Suggests: ruby Suggests: ruby-libs @@ -231,6 +252,7 @@ BuildArch: noarch This package provides some directories which are required by other packages that add vim files, p.e. additional syntax files or filetypes. +%if %{with gui} %package X11 Summary: The VIM version of the vi editor for the X Window System - GVim # devel of libICE, gtk3, libSM, libX11, libXpm and libXt are needed in buildroot @@ -265,17 +287,19 @@ Requires: libattr >= 2.4 Requires: vim-common = %{epoch}:%{version}-%{release} # suggest python3, python2, lua, ruby and perl packages because of their # embedded functionality in Vim/GVim -%if "%{withlua}" == "1" + %if "%{withlua}" == "1" Suggests: lua-libs -%endif + %endif + Suggests: perl-devel Suggests: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version)) Suggests: python3 Suggests: python3-libs -%if "%{withruby}" == "1" + + %if "%{withruby}" == "1" Suggests: ruby Suggests: ruby-libs -%endif + %endif %description X11 VIM (VIsual editor iMproved) is an updated and improved version of the @@ -289,6 +313,7 @@ application with a full GUI interface and mouse support by command gvim. Install the vim-X11 package if you'd like to try out a version of vi with graphics and mouse capabilities. You'll also need to install the vim-common package. +%endif %package data Summary: Shared data for Vi and Vim @@ -329,9 +354,11 @@ sed -i -e 's,/usr/bin/python3,%{__python3},' %{PATCH3005} chmod -x runtime/tools/mve.awk %patch2000 -p1 -b .fixkeys %patch2001 -p1 + %if %{withhunspell} %patch2002 -p1 %endif + perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk # install spell files @@ -394,6 +421,7 @@ make clean mv -f os_unix.h.save os_unix.h +%if %{with gui} # More configure options: # --enable-xim - enabling X Input Method - international input module for X, # it is for multibyte languages in Vim with X @@ -410,37 +438,38 @@ mv -f os_unix.h.save os_unix.h --enable-fips-warning \ --with-compiledby="" --enable-cscope \ --with-modified-by="" \ -%if "%{withnetbeans}" == "1" + %if "%{withnetbeans}" == "1" --enable-netbeans \ -%else + %else --disable-netbeans \ -%endif -%if %{WITH_SELINUX} + %endif + %if %{WITH_SELINUX} --enable-selinux \ -%else + %else --disable-selinux \ -%endif -%if "%{withruby}" == "1" + %endif + %if "%{withruby}" == "1" --enable-rubyinterp=dynamic \ -%else + %else --disable-rubyinterp \ -%endif -%if "%{withlua}" == "1" + %endif + %if "%{withlua}" == "1" --enable-luainterp=dynamic \ -%else + %else --disable-luainterp \ -%endif -%if %{with libsodium_crypt} + %endif + %if %{with libsodium_crypt} --enable-libsodium \ -%else + %else --disable-libsodium \ -%endif + %endif --enable-fail-if-missing \ --enable-canberra %make_build cp vim gvim make clean +%endif %configure CFLAGS="${CFLAGS} -DSYS_VIMRC_FILE='\"/etc/vimrc\"'" \ --prefix=%{_prefix} --with-features=huge \ @@ -502,14 +531,16 @@ cd src # make install creates vim binary and view symlink, they will be wrappers # so remove them here rm -f %{buildroot}%{_bindir}/{vim,view} -make installgtutorbin DESTDIR=%{buildroot} BINDIR=%{_bindir} mkdir -p %{buildroot}%{_datadir}/icons/hicolor/{16x16,32x32,48x48,64x64}/apps mkdir -p %{buildroot}%{_libexecdir} install -m755 minimal-vim %{buildroot}%{_libexecdir}/vi install -m755 enhanced-vim %{buildroot}%{_bindir}/vim -install -m755 gvim %{buildroot}%{_bindir}/gvim install -m755 %{SOURCE12} %{buildroot}%{_bindir}/view install -m755 %{SOURCE13} %{buildroot}%{_bindir}/vi + +%if %{with gui} +make installgtutorbin DESTDIR=%{buildroot} BINDIR=%{_bindir} +install -m755 gvim %{buildroot}%{_bindir}/gvim install -p -m644 %{SOURCE3} \ %{buildroot}%{_datadir}/icons/hicolor/16x16/apps/gvim.png install -p -m644 %{SOURCE4} \ @@ -562,6 +593,20 @@ SentUpstream: 2014-05-22 EOF +appstream-util validate-relax --nonet %{buildroot}/%{_datadir}/metainfo/*.appdata.xml + +for i in gvim.1 gex.1 gview.1 vimx.1; do + echo ".so man1/vim.1" > %{buildroot}/%{_mandir}/man1/$i +done +echo ".so man1/vimdiff.1" > %{buildroot}/%{_mandir}/man1/gvimdiff.1 +echo ".so man1/vimtutor.1" > %{buildroot}/%{_mandir}/man1/gvimtutor.1 +%else +# Remove files included in X11 subpackage, but built by default: +rm %{buildroot}/%{_mandir}/man1/evim.* +rm %{buildroot}/%{_datadir}/applications/{vim,gvim}.desktop +rm %{buildroot}/%{_datadir}/icons/{hicolor,locolor}/*/apps/gvim.png +%endif + ( cd %{buildroot} ln -sf %{_libexecdir}/vi .%{_bindir}/rvi ln -sf %{_libexecdir}/vi .%{_bindir}/rview @@ -576,6 +621,8 @@ EOF ln -sf vi.1.gz .%{_mandir}/man1/view.1 ln -sf vi.1.gz .%{_mandir}/man1/rview.1 ln -sf vim.1.gz .%{_mandir}/man1/vimdiff.1.gz + +%if %{with gui} ln -sf gvim ./%{_bindir}/gview ln -sf gvim ./%{_bindir}/gex ln -sf gvim ./%{_bindir}/evim @@ -591,13 +638,14 @@ EOF mkdir -p ./%{_sysconfdir}/X11/applnk/Applications cp %{buildroot}/%{_datadir}/applications/gvim.desktop ./%{_sysconfdir}/X11/applnk/Applications/gvim.desktop %endif + +%endif + # ja_JP.ujis is obsolete, ja_JP.eucJP is recommended. ( cd ./%{_datadir}/%{name}/%{vimdir}/lang; \ ln -sf menu_ja_jp.ujis.vim menu_ja_jp.eucjp.vim ) ) -appstream-util validate-relax --nonet %{buildroot}/%{_datadir}/metainfo/*.appdata.xml - pushd %{buildroot}/%{_datadir}/%{name}/%{vimdir}/tutor mkdir conv iconv -f CP1252 -t UTF8 tutor.ca > conv/tutor.ca @@ -669,11 +717,9 @@ for i in fr.UTF-8 it.UTF-8 pl.UTF-8 da.UTF-8 de.UTF-8 tr.UTF-8; do rm -rf %{buildroot}/%{_mandir}/$i done -for i in rvim.1 gvim.1 gex.1 gview.1 vimx.1; do - echo ".so man1/vim.1" > %{buildroot}/%{_mandir}/man1/$i -done -echo ".so man1/vimdiff.1" > %{buildroot}/%{_mandir}/man1/gvimdiff.1 -echo ".so man1/vimtutor.1" > %{buildroot}/%{_mandir}/man1/gvimtutor.1 +# Install symlink for rvim man page +echo ".so man1/vim.1" > %{buildroot}/%{_mandir}/man1/rvim.1 + mkdir -p %{buildroot}/%{_mandir}/man5 echo ".so man1/vim.1" > %{buildroot}/%{_mandir}/man5/vimrc.5 echo ".so man1/vi.1" > %{buildroot}/%{_mandir}/man5/virc.5 @@ -711,9 +757,11 @@ touch %{buildroot}/%{_datadir}/%{name}/vimfiles/doc/tags %{_datadir}/%{name}/%{vimdir}/print %{_datadir}/%{name}/%{vimdir}/syntax %{_datadir}/%{name}/%{vimdir}/tutor + %if ! %{withvimspell} %{_datadir}/%{name}/%{vimdir}/spell %endif + %lang(af) %{_datadir}/%{name}/%{vimdir}/lang/af %lang(ca) %{_datadir}/%{name}/%{vimdir}/lang/ca %lang(cs) %{_datadir}/%{name}/%{vimdir}/lang/cs @@ -756,16 +804,20 @@ touch %{buildroot}/%{_datadir}/%{name}/vimfiles/doc/tags %lang(zh_CN.UTF-8) %{_datadir}/%{name}/%{vimdir}/lang/zh_CN.UTF-8 %lang(zh_TW.UTF-8) %{_datadir}/%{name}/%{vimdir}/lang/zh_TW.UTF-8 /%{_bindir}/xxd -%{_mandir}/man1/gex.* -%{_mandir}/man1/gview.* -%{_mandir}/man1/gvim* %{_mandir}/man1/rvim.* %{_mandir}/man1/vim.* %{_mandir}/man1/vimdiff.* %{_mandir}/man1/vimtutor.* -%{_mandir}/man1/vimx.* %{_mandir}/man1/xxd.* %{_mandir}/man5/vimrc.* + +%if %{with gui} +%{_mandir}/man1/gex.* +%{_mandir}/man1/gview.* +%{_mandir}/man1/gvim* +%{_mandir}/man1/vimx.* +%endif + %lang(fr) %{_mandir}/fr/man1/* %lang(da) %{_mandir}/da/man1/* %lang(de) %{_mandir}/de/man1/* @@ -873,14 +925,15 @@ touch %{buildroot}/%{_datadir}/%{name}/vimfiles/doc/tags %dir %{_datadir}/%{name}/vimfiles/syntax %dir %{_datadir}/%{name}/vimfiles/tutor +%if %{with gui} %files X11 -%if "%{desktop_file}" == "1" + %if "%{desktop_file}" == "1" %{_datadir}/metainfo/*.appdata.xml /%{_datadir}/applications/* %exclude /%{_datadir}/applications/vim.desktop -%else + %else /%{_sysconfdir}/X11/applnk/*/gvim.desktop -%endif + %endif %{_bindir}/gvimtutor %{_bindir}/gvim %{_bindir}/gvimdiff @@ -898,6 +951,7 @@ touch %{buildroot}/%{_datadir}/%{name}/vimfiles/doc/tags %dir %{_datadir}/icons/locolor/* %dir %{_datadir}/icons/locolor/*/apps %{_datadir}/icons/locolor/*/apps/* +%endif %files data %license LICENSE @@ -915,6 +969,9 @@ touch %{buildroot}/%{_datadir}/%{name}/vimfiles/doc/tags %endif %changelog +* Fri Jan 07 2022 Malcolm Inglis - 2:8.2.4006-2 +- add 'gui' build condition for vim-X11 + * Wed Jan 05 2022 Zdenek Dohnal - 2:8.2.4006-1 - patchlevel 4006