%bcond_without gnome # don't build GNOME-based gvim support
%bcond_without heavy # don't build heavy (full-featured GNOME-based gvim/vim)
%bcond_without gui # don't build any GUI
+%bcond_without light # don't build light (minimal, ncurses, but not static)
+%bcond_with lua # with Lua interp in vim package
%bcond_with perl # with Perl interp in vim package
%bcond_with python # with Python interp in vim package
%bcond_with ruby # with Ruby interp in vim package
# Command to check for latest patch:
# wget ftp://ftp.vim.org/pub/editors/vim/patches/7.4/MD5SUMS -O sources
# tail -n1 sources | awk '{print $2}'
-# VCS Commits: https://code.google.com/p/vim/source/browse/
+# VCS Commits: https://github.com/vim/vim/commits/master
-%define ver 7.4
-%define patchlevel 132
+%define ver 7.4.2054
%define rel 1
Summary: Vi IMproved - a Vi clone
Summary(de.UTF-8): VIsual editor iMproved
Summary(tr.UTF-8): Gelişmiş bir vi sürümü
Summary(uk.UTF-8): Visual editor IMproved - Єдино Вірний Редактор :)
Name: vim
-Version: %{ver}.%{patchlevel}
+Version: %{ver}
+# keep macro for release, otherwise people tend to increment Epoch instead
Release: %{rel}
Epoch: 4
License: Charityware
Group: Applications/Editors/Vim
-Source0: ftp://ftp.vim.org/pub/vim/unix/%{name}-%{ver}.tar.bz2
-# Source0-md5: 607e135c559be642f210094ad023dc65
+#Source0: ftp://ftp.vim.org/pub/vim/unix/%{name}-%{ver}.tar.bz2
+Source0: https://github.com/vim/vim/archive/v%{ver}.tar.gz
+# Source0-md5: 76acebdc395e57fc993d444d9e9b97df
Source1: http://www.mif.pg.gda.pl/homepages/ankry/man-PLD/%{name}-non-english-man-pages.tar.bz2
# Source1-md5: bc4d1e115ca506ad7751b9bd2b773a7f
Source2: http://skawina.eu.org/mikolaj/usr_doc_pl.zip
# Source2-md5: ff96284b1c913d55cf0877839b34d490
-Source10: g%{name}-athena.desktop
-Source11: g%{name}-motif.desktop
-Source12: g%{name}-gtk.desktop
-Source13: g%{name}-gnome.desktop
-Source14: %{name}.desktop
Source15: update-source.sh
# syntax files
# http://www.vim.org/scripts/script.php?script_id=1491 (0.7.5)
Source32: oceandeep.vim
# http://www.vim.org/scripts/script.php?script_id=1464 (2.6.3)
Source33: moria.vim
-%patchset_source -f ftp://ftp.vim.org/pub/editors/vim/patches/%{ver}/%{ver}.%03g 1 %{patchlevel}
Patch0: %{name}-sysconfdir.patch
-Patch1: %{name}-visual.patch
+
Patch2: %{name}-paths.patch
Patch3: %{name}-no_libelf.patch
Patch4: %{name}-egrep.patch
Patch10: %{name}-doubleparenthesis.patch
Patch11: %{name}-syntax-fstab.patch
Patch12: 010_all_%{name}-6.3-vixie.patch
-Patch13: 013_all_%{name}-7.0-cron-vars-79981.patch
Patch14: 020_all_%{name}-7.0-fstab-tmpfs-size.patch
Patch15: 021_all_%{name}-7.0-fstab-bogus-errors.patch
-Patch16: 024_all_%{name}-6.3-bash-83565.patch
Patch17: 027_all_%{name}-7.0-automake-substitutions-93378.patch
Patch18: %{name}-smarty.patch
Patch19: %{name}-tutor-lessdeps.patch
Patch28: %{name}-ft-cron.patch
Patch29: %{name}-phpscript.patch
Patch30: %{name}-pam.patch
-Patch31: %{name}-ft-bash.patch
Patch32: %{name}-localedir.patch
Patch33: %{name}-locales.patch
Patch34: %{name}-rtdir.patch
Patch36: %{name}-ft-lib-udevrules.patch
Patch37: %{name}-ft-mysql.patch
Patch38: %{name}-ft-gyp.patch
+Patch39: %{name}-revert-7.4.165-noundo.patch
+Patch40: desktop.patch
+Patch41: %{name}-lua.patch
URL: http://www.vim.org/
BuildRequires: acl-devel
BuildRequires: autoconf
-BuildRequires: gettext-devel
BuildRequires: gpm-devel
%if "%{pld_release}" == "ac"
%{?with_athena:BuildRequires: XFree86-devel}
+BuildRequires: gettext-devel
%else
+BuildRequires: gettext-tools
%{?with_athena:BuildRequires: xorg-lib-libXaw-devel}
%endif
%if %{with gtk} || %{with heavy}
%if %{with selinux} || %{with heavy}
BuildRequires: libselinux-devel
%endif
+%if %{with lua} || %{with heavy}
+BuildRequires: lua52-devel
+%endif
%{?with_motif:BuildRequires: motif-devel}
BuildRequires: ncurses-devel
BuildRequires: pkgconfig
%endif
%if %{with python} || %{with heavy}
BuildRequires: python-devel
+BuildRequires: rpm-pythonprov
%endif
BuildRequires: rpm >= 4.4.9-56
BuildRequires: rpmbuild(macros) >= 1.426
Pakiet ten dostarcza w pełni funkcjonalną wersję Vima, czyli
zawierającą obsługę skryptów w językach Perl, Python, Ruby oraz Tcl.
+%package light
+Summary: Minimal build of Vim
+Summary(pl.UTF-8): Minimalna wersja vima
+Group: Applications/Editors/Vim
+Provides: vi-editor
+Provides: vi
+Provides: vim-editor = %{epoch}:%{version}-%{release}
+
+%description light
+This package provides light featured version of Vim.
+
+%description light -l pl.UTF-8
+Pakiet ten dostarcza minimalną wersję Vima.
+
%package -n vimx
Summary: Vi IMproved - a Vi clone
Summary(pl.UTF-8): Vi IMproved - klon edytora Vi
Requires: vim-plugin-securemodelines
Obsoletes: gvim-bonobo
Obsoletes: vim-common
+Obsoletes: vim-syntax-gitcommit
+Obsoletes: vim-syntax-golang <= 1.3.3-1
+Obsoletes: vim-syntax-lxc-docker <= 0.9.0-1
+Obsoletes: vim-syntax-docker < 1.10.1
Obsoletes: vim-syntax-upstart
%if "%{_rpmversion}" >= "5"
BuildArch: noarch
jak również GUI GTK+2.
%prep
-%setup -q -n %{name}74
+%setup -q
-# official patches
-%patchset_patch 1 %{patchlevel}
+cp -p runtime/gvim.desktop gvim-athena.desktop
+cp -p runtime/gvim.desktop gvim-gnome.desktop
+cp -p runtime/gvim.desktop gvim-gtk.desktop
+cp -p runtime/gvim.desktop gvim-motif.desktop
%patch0 -p1
-%patch1 -p1
+
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch10 -p1
%patch11 -p1
%patch12 -p1
-%patch13 -p1
%patch14 -p1
%patch15 -p1
-%patch16 -p0
%patch17 -p0
%patch18 -p1
%patch19 -p1
%patch28 -p1
%patch29 -p1
%patch30 -p1
-%patch31 -p1
%patch32 -p1
%patch33 -p1
%patch34 -p1
%patch36 -p1
%patch37 -p1
%patch38 -p1
+%patch39 -p1
+%patch40 -p1
+%patch41 -p1
cp -p %{SOURCE20} runtime/syntax
cp -p %{SOURCE22} runtime/syntax
%{__mv} runtime/lang/menu_n{o,b}_no.latin1.vim
%{__mv} runtime/lang/menu_n{o,b}_no.utf-8.vim
+# not info files but some binary files for Amiga:
+# Amiga Workbench drawer icon
+# Amiga Workbench project icon
+# Amiga Workbench tool icon
+find -name '*.info' | xargs rm -v
+
%build
cd src
%{__autoconf}
--with-tlib="ncursesw"
%endif
- %{__make} distclean
+ %{__make} -j1 distclean
# add common options, can override (disable) if needed with args
%configure \
+ --%{!?with_lua:dis}%{?with_lua:en}able-luainterp \
--%{!?with_perl:dis}%{?with_perl:en}able-perlinterp \
--%{!?with_python:dis}%{?with_python:en}able-pythoninterp \
--%{!?with_ruby:dis}%{?with_ruby:en}able-rubyinterp \
--disable-gui \
--without-x \
--with-features=small \
+ --disable-luainterp \
--disable-perlinterp \
--disable-pythoninterp \
--disable-rubyinterp \
LDFLAGS="%{rpmldflags}"
%endif
+%if %{with light}
+build vim.light \
+ --disable-gui \
+ --without-x \
+ --with-features=small \
+ --disable-luainterp \
+ --disable-perlinterp \
+ --disable-pythoninterp \
+ --disable-rubyinterp \
+ --disable-tclinterp \
+ --disable-cscope \
+ --disable-gpm \
+ --disable-nls
+%endif
+
build vim.ncurses \
--disable-gui \
--without-x \
--with-features=huge \
--disable-gui \
--without-x \
+ --enable-luainterp \
--enable-perlinterp \
--enable-pythoninterp \
--enable-rubyinterp \
--enable-gtk2-check \
--enable-gnome-check \
--with-x \
+ --enable-luainterp \
--enable-perlinterp \
--enable-pythoninterp \
--enable-rubyinterp \
%{__make} -j1 install \
DESTDIR=$RPM_BUILD_ROOT
+# generic gvim from upstream, but we have bunch of subpackages
+%{__rm} $RPM_BUILD_ROOT%{_desktopdir}/gvim.desktop
+
# not supported locales added by 7.3.764 or later
%{__rm} -r $RPM_BUILD_ROOT%{_localedir}/cs.cp1250
%{__rm} -r $RPM_BUILD_ROOT%{_localedir}/ja.sjis
%find_lang %{name}
-# use compressed docs, see :help gzip-helpfile
-%{__gzip} -9 $RPM_BUILD_ROOT%{_datadir}/vim/doc/*.txt
-%{__sed} -i -e 's=\(\t.*\.txt\)\t=\1.gz\t=' $RPM_BUILD_ROOT%{_datadir}/vim/doc/tags
-
-%{__gzip} -9 $RPM_BUILD_ROOT%{_datadir}/vim/doc/*.??x
-%{__sed} -i -e 's=\(\t.*\.plx\)\t=\1.gz\t=' $RPM_BUILD_ROOT%{_datadir}/vim/doc/tags-pl
-
%{__rm} $RPM_BUILD_ROOT%{_bindir}/*
%if %{with static}
ln -sf vi $RPM_BUILD_ROOT/bin/view
ln -sf vi $RPM_BUILD_ROOT/bin/rview
-cp -p %{SOURCE14} $RPM_BUILD_ROOT%{_desktopdir}
-
%if %{with athena}
-install -p src/bin/gvim.athena $RPM_BUILD_ROOT%{_bindir}/gvim.athena
-cp -p %{SOURCE10} $RPM_BUILD_ROOT%{_desktopdir}
+install -p src/bin/gvim.athena $RPM_BUILD_ROOT%{_bindir}/gvim.athena
+cp -p gvim-athena.desktop $RPM_BUILD_ROOT%{_desktopdir}
%endif
%if %{with motif}
-install -p src/bin/gvim.motif $RPM_BUILD_ROOT%{_bindir}/gvim.motif
-cp -p %{SOURCE11} $RPM_BUILD_ROOT%{_desktopdir}
+install -p src/bin/gvim.motif $RPM_BUILD_ROOT%{_bindir}/gvim.motif
+cp -p gvim-motif.desktop $RPM_BUILD_ROOT%{_desktopdir}
%endif
%if %{with gnome}
-install -p src/bin/gvim.gnome $RPM_BUILD_ROOT%{_bindir}/gvim.gnome
-cp -p %{SOURCE13} $RPM_BUILD_ROOT%{_desktopdir}
+install -p src/bin/gvim.gnome $RPM_BUILD_ROOT%{_bindir}/gvim.gnome
+cp -p gvim-gnome.desktop $RPM_BUILD_ROOT%{_desktopdir}
%endif
%if %{with gtk}
install -p src/bin/gvim.gtk $RPM_BUILD_ROOT%{_bindir}/gvim.gtk
+cp -p gvim-gtk.desktop $RPM_BUILD_ROOT%{_desktopdir}
ln -sf gvim.gtk $RPM_BUILD_ROOT%{_bindir}/gvim
ln -sf gvim $RPM_BUILD_ROOT%{_bindir}/eview
ln -sf gvim $RPM_BUILD_ROOT%{_bindir}/evim
ln -sf gvim $RPM_BUILD_ROOT%{_bindir}/gvimdiff
ln -sf gvim $RPM_BUILD_ROOT%{_bindir}/rgview
ln -sf gvim $RPM_BUILD_ROOT%{_bindir}/rgvim
-cp -p %{SOURCE12} $RPM_BUILD_ROOT%{_desktopdir}
%endif
%if %{with heavy}
install -p src/bin/vim.heavy $RPM_BUILD_ROOT%{_bindir}
install -p src/bin/gvim.heavy $RPM_BUILD_ROOT%{_bindir}
%endif
+%if %{with light}
+install -p src/bin/vim.light $RPM_BUILD_ROOT%{_bindir}
+%endif
install -d $RPM_BUILD_ROOT%{_pixmapsdir}
cp -p runtime/vim48x48.png $RPM_BUILD_ROOT%{_pixmapsdir}/vim.png
%lang(ru) %{_mandir}/ru/man1/rvim.1*
%lang(ru) %{_mandir}/ru/man1/vim.1*
%lang(ru) %{_mandir}/ru/man1/vimdiff.1*
-%{_desktopdir}/%{name}.desktop
+%{_desktopdir}/vim.desktop
%if %{with static}
%files static
%dir %{_datadir}/vim
%dir %{_datadir}/vim/doc
+%verify(not md5 mtime size) %{_datadir}/vim/doc/tags
+%lang(pl) %verify(not md5 mtime size) %{_datadir}/vim/doc/tags-pl
+%verify(not md5 mtime size) %{_datadir}/vim/vimfiles/doc/tags
+# X11 colours definition for colour name lookup
+%{_datadir}/vim/rgb.txt
%dir %{_datadir}/vim/vimfiles
%dir %{_datadir}/vim/vimfiles/doc
%dir %{_datadir}/vim/vimfiles/plugin
%dir %{_datadir}/vim/vimfiles/spell
%dir %{_datadir}/vim/vimfiles/syntax
-%verify(not md5 mtime size) %{_datadir}/vim/vimfiles/doc/tags
%{_datadir}/vim/*.vim
%dir %{_datadir}/vim/autoload
+%{_datadir}/vim/autoload/*complete.vim
%doc %{_datadir}/vim/autoload/README.txt
%dir %{_datadir}/vim/ftdetect
%doc %{_datadir}/vim/keymap/README.txt
%{_datadir}/vim/keymap/*.vim
+%{_datadir}/vim/pack
+
%dir %{_datadir}/vim/plugin
%doc %{_datadir}/vim/plugin/README.txt
%defattr(644,root,root,755)
%{_datadir}/vim/plugin/*.vim
%{_datadir}/vim/autoload/*.vim
+%exclude %{_datadir}/vim/autoload/*complete.vim
%{_datadir}/vim/autoload/xml
%{_datadir}/vim/compiler
%{_datadir}/vim/macros
%files doc
%defattr(644,root,root,755)
# English
-%{_datadir}/vim/doc/*.txt.gz
-%verify(not md5 mtime size) %{_datadir}/vim/doc/tags
+%{_datadir}/vim/doc/*.txt
# Polish
-%lang(pl) %{_datadir}/vim/doc/*.plx.gz
-%lang(pl) %verify(not md5 mtime size) %{_datadir}/vim/doc/tags-pl
+%lang(pl) %{_datadir}/vim/doc/*.plx
%files tutor
%defattr(644,root,root,755)
%lang(sk) %{_datadir}/vim/tutor/tutor.sk
%lang(sk) %{_datadir}/vim/tutor/tutor.sk.cp1250
%lang(sk) %{_datadir}/vim/tutor/tutor.sk.utf-8
+%lang(sr) %{_datadir}/vim/tutor/tutor.sr.cp1250
+%lang(sr) %{_datadir}/vim/tutor/tutor.sr.utf-8
%lang(sv) %{_datadir}/vim/tutor/tutor.sv
%lang(sv) %{_datadir}/vim/tutor/tutor.sv.utf-8
%lang(tr) %{_datadir}/vim/tutor/tutor.tr.iso9
%lang(tr) %{_datadir}/vim/tutor/tutor.tr.utf-8
+%lang(uk) %{_datadir}/vim/tutor/tutor.uk.utf-8
%lang(vi) %{_datadir}/vim/tutor/tutor.vi.utf-8
%lang(zh_CN) %{_datadir}/vim/tutor/tutor.zh_cn.utf-8
%lang(zh_TW) %{_datadir}/vim/tutor/tutor.zh.big5
%attr(755,root,root) %{_bindir}/vim.heavy
%endif
+%if %{with light}
+%files light
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/vim.light
+%endif
+
%files spell-en
%defattr(644,root,root,755)
%{_datadir}/vim/spell/en.*.*