LogoopenSUSE Build Service > Projects
Sign Up | Log In

View File vim.spec of Package vim-redhat (Project home:fusion809)

# Maintainer: Brenton Horne (fusion809)
# This spec file provides both vim-gtk2 and vim-gtk3

%define        patchlevel 1330
%if 0%{?mageia}
%define        WITH_SELINUX 0
%else
%define        WITH_SELINUX 1
%endif
%define        desktop_file 1
%if %{desktop_file}
%define        desktop_file_utils_version 0.2.93
%endif

%define        withnetbeans 1
%define        withvimspell 0
%define        withhunspell 0
%define        withruby 1
%define        withlua 1
%define        baseversion 8.0
%define        vimdir vim80

Summary:       The Vim editor
URL:           http://www.vim.org/
Name:          vim
Version:       %{baseversion}.%{patchlevel}
Release:       1
License:       Vim
Group:         Applications/Editors
Source0:       https://github.com/vim/vim/archive/v%{baseversion}.%{patchlevel}.tar.gz
Source1:       vim.sh
Source2:       vim.csh
Source4:       virc
Source5:       vimrc
Source7:       gvim16.png
Source8:       gvim32.png
Source9:       gvim48.png
Source10:      gvim64.png
%if %{withvimspell}
Source13:      vim-spell-files.tar.bz2
%endif
Source14:      spec-template
Source15:      spec-template.new
Source16:      macros.vim
Source17:      gvim.desktop
Source18:      vim.desktop
Patch2002:     vim-7.0-fixkeys.patch
Patch2003:     vim-7.4-specsyntax.patch
%if %{withhunspell}
Patch2011:     vim-7.0-hunspell.patch
BuildRequires: hunspell-devel
%endif
Patch3000:     vim-7.4-syntax.patch
Patch3002:     vim-7.4-nowarnings.patch
Patch3004:     vim-7.0-rclocation.patch
Patch3006:     vim-7.4-checkhl.patch
Patch3007:     vim-7.4-fstabsyntax.patch
#Patch3008:     vim-8.0-syncolor.patch
Patch3009:     vim-7.0-specedit.patch
Patch3010:     vim-7.3-manpage-typo-668894-675480.patch
Patch3011:     vim-manpagefixes-948566.patch
Patch3012:     vim-7.4-licensemacro-1151450.patch
Patch3013:     vim-7.4-globalsyntax.patch
Patch3014:     vim-7.4-releasestring-1318991.patch
Patch3016:     vim-8.0-copy-paste.patch
Patch3017:     vim-7.3-filetype_changes.patch
#Patch3018:     terminal-add.patch
BuildRoot:     %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: python-devel ncurses-devel gettext
%if 0%{?rhel}
%else
BuildRequires: python3-devel
%endif
%if 0%{?rhel} > 5 || 0%{?fedora} || 0%{?mageia}
BuildRequires: perl-devel perl(ExtUtils::Embed) perl(ExtUtils::ParseXS)
%endif
%if 0%{?rhel} == 5 || 0%{?mageia}
%else
BuildRequires: perl-generators
%endif

%if 0%{?rhel} || 0%{?mageia} || 0%{?fedora}
%else
BuildRequires: gtk3-devel
%endif

%if 0%{?rhel} > 6
BuildRequires: liberation-sans-fonts
%endif
BuildRequires: libacl-devel autoconf file
%if %{WITH_SELINUX}
BuildRequires: libselinux-devel
%endif
%if "%{withruby}" == "1"
Buildrequires: ruby-devel ruby
%endif
%if "%{withlua}" == "1"
BuildRequires: lua-devel
%endif
%if %{desktop_file}
Requires:      desktop-file-utils
BuildRequires: desktop-file-utils >= %{desktop_file_utils_version}
%endif
Epoch:         2
Conflicts:     filesystem < 3

%description
Vim (VIsual editor iMproved) is an updated and improved version of the
vi editor.  Vi was the first real screen-based editor for UNIX, and is
still very popular.  Vim improves on vi by adding new features:
multiple windows, multi-level undo, block highlighting and more.

%package common
Summary:       The common files needed by any version of the Vim editor
Group:         Applications/Editors
Epoch:         2
Conflicts:     man-pages-fr < 0.9.7-14
Conflicts:     man-pages-it < 0.3.0-17
Conflicts:     man-pages-pl < 0.24-2
Requires:      %{name}-filesystem

%description common
Vim (VIsual editor iMproved) is an updated and improved version of the
vi editor.  Vi was the first real screen-based editor for UNIX, and is
still very popular.  Vim improves on vi by adding new features:
multiple windows, multi-level undo, block highlighting and more.  The
vim-common package contains files which every Vim binary will need in
order to run.

If you are installing vim-enhanced or vim-X11, you'll also need
to install the vim-common package.

%package spell
Summary:       The dictionaries for spell checking. This package is optional
Group:         Applications/Editors
Epoch:         2
Requires:      vim-common = %{epoch}:%{version}-%{release}

%description spell
This subpackage contains dictionaries for vim spell checking in
many different languages.

%package minimal
Summary:       A minimal version of the Vim editor
Group:         Applications/Editors
Epoch:         2
Provides:      vi = %{version}-%{release}
Provides:      /bin/vi

%description minimal
Vim (VIsual editor iMproved) is an updated and improved version of the
vi editor.  Vi was the first real screen-based editor for UNIX, and is
still very popular.  Vim improves on vi by adding new features:
multiple windows, multi-level undo, block highlighting and more. The
vim-minimal package includes a minimal version of Vim, which is
installed into /bin/vi for use when only the root partition is
present. NOTE: The online help is only available when the vim-common
package is installed.

%package enhanced
Summary:       A version of the Vim editor which includes recent enhancements
Group:         Applications/Editors
Epoch:         2
Requires:      vim-common = %{epoch}:%{version}-%{release} which
Conflicts:     vim-common < %{epoch}:%{version}-%{release}
Provides:      vim = %{version}-%{release}
Provides:      mergetool
%if 0%{?rhel} > 5 || 0%{?fedora}
Requires:      perl-libs
%else
# Mageia uses perl to provide perl-libs
Requires:      perl
%endif
Requires:      vim-icons

%description enhanced
Vim (VIsual editor iMproved) is an updated and improved version of the
vi editor.  Vi was the first real screen-based editor for UNIX, and is
still very popular.  Vim improves on vi by adding new features:
multiple windows, multi-level undo, block highlighting and more.  The
vim-enhanced package contains a version of Vim with extra, recently
introduced features like Python and Perl interpreters.

Install the vim-enhanced package if you'd like to use a version of the
Vim editor which includes recently added enhancements like
interpreters for the Python and Perl scripting languages.  You'll also
need to install the vim-common package.

%package filesystem
Summary:       Vim filesystem layout
Group:         Applications/Editors
Epoch:         2

%Description filesystem
This package provides some directories which are required by other
packages that add vim files, p.e.  additional syntax files or filetypes.

%package gtk2
Summary:       The Vim version of the vi editor for the X Window System with the GTK+ 2 toolkit
Group:         Applications/Editors
Epoch:         2
Requires:      vim-common = %{epoch}:%{version}-%{release} gtk2
Provides:      gvim = %{version}-%{release}
Provides:      mergetool
BuildRequires: gtk2-devel
%if 0%{?mageia}
BuildRequires: libsm-devel libxt-devel libxpm-devel
%else
BuildRequires: libSM-devel libXt-devel libXpm-devel
Requires:      perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))
%endif
Requires:      vim-X11

%description gtk2
Vim (VIsual editor iMproved) is an updated and improved version of the
libsm-devel libxt-devel libxpm-develvi editor.  Vi was the first real screen-based editor for UNIX, and is
still very popular.  Vim improves on vi by adding new features:
multiple windows, multi-level undo, block highlighting and
more. vim-gtk2 is a version of the Vim editor which will run within the
X Window System.  If you install this package, you can run Vim as an X
application with a full GUI interface and mouse support.

Install the vim-gtk2 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.

%if 0%{?rhel} == 7 || 0%{?fedora} || 0%{?mageia}
%package gtk3
Summary:       The Vim version of the vi editor for the X Window System with the GTK+ 3 toolkit
Group:         Applications/Editors
Epoch:         2
Requires:      vim-common = %{epoch}:%{version}-%{release}
Provides:      gvim = %{version}-%{release}
Provides:      mergetool
BuildRequires: gtk3-devel
%if 0%{?mageia}
BuildRequires: libsm-devel libxt-devel libxpm-devel
Requires:      gtk+3.0
%else
BuildRequires: libSM-devel libXt-devel libXpm-devel
Requires:      perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version)) gtk3
%endif
Requires:      vim-X11

%description gtk3
Vim (VIsual editor iMproved) is an updated and improved version of the
vi editor.  Vi was the first real screen-based editor for UNIX, and is
still very popular.  Vim improves on vi by adding new features:
multiple windows, multi-level undo, block highlighting and
more. vim-gtk3 is a version of the Vim editor which will run within the
X Window System.  If you install this package, you can run Vim as an X
application with a full GUI interface and mouse support.

Install the vim-gtk3 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 X11
Summary:       The Vim version of the vi editor for the X Window System
Group:         Applications/Editors
Epoch:         2
Requires:      vim-common = %{epoch}:%{version}-%{release}
BuildRequires: gtk2-devel
%if 0%{?mageia}
BuildRequires: libsm-devel libxt-devel libxpm-devel
%else
BuildRequires: libSM-devel libXt-devel libXpm-devel
Requires:      perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))
%endif
Requires:      vim-icons
BuildArch:     noarch

%description X11
Vim (VIsual editor iMproved) is an updated and improved version of the
vi editor.  Vi was the first real screen-based editor for UNIX, and is
still very popular.  Vim improves on vi by adding new features:
multiple windows, multi-level undo, block highlighting and
more.

vim-X11 provides the common files to vim-gtk2 and vim-gtk3.

%package icons
Summary:       The Vim editor's icons package
Group:         Applications/Editors
Epoch:         2
Requires:      vim-common = %{epoch}:%{version}-%{release}
Requires:      hicolor-icon-theme

%description icons
Vim (VIsual editor iMproved) is an updated and improved version of the
vi editor.  Vi was the first real screen-based editor for UNIX, and is
still very popular.  Vim improves on vi by adding new features:
multiple windows, multi-level undo, block highlighting and
more.

vim-icons provides the icons for Vim.

%prep
%setup -q -b 0 -n vim-%{baseversion}.%{patchlevel}
chmod -x runtime/tools/mve.awk
%patch2002 -p1
%patch2003 -p1
%if %{withhunspell}
%patch2011 -p1
%endif
perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk

# install spell files
%if %{withvimspell}
%{__tar} xjf %{SOURCE13}
%endif

%patch3000 -p1
%patch3002 -p1
%patch3004 -p1
%patch3006 -p1
%patch3007 -p1
# Tried to fix but isn't working
# %patch3008 -p1
%patch3010 -p1
%patch3011 -p1
%patch3012 -p1
%patch3013 -p1
%patch3014 -p1
%patch3016 -p1
%patch3017 -p1
#%patch3018 -p1

%build
cd src

sed -e "s+VimRCLOC	= \$(VIMLOC)+VIMRCLOC	= /etc+" Makefile > Makefile.tmp
mv -f Makefile.tmp Makefile

export CFLAGS="%{optflags} -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2"
export CXXFLAGS="%{optflags} -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2"
%if 0%{?mageia}
unset LDFLAGS
%endif

cp -f os_unix.h os_unix.h.save
cp -f ex_cmds.c ex_cmds.c.save

perl -pi -e "s/vimrc/virc/"  os_unix.h
%configure --prefix=%{_prefix} --with-features=small --with-x=no \
  --enable-multibyte \
  --disable-netbeans \
%if %{WITH_SELINUX}
  --enable-selinux \
%else
  --disable-selinux \
%endif
  --disable-pythoninterp --disable-perlinterp --disable-tclinterp \
  --enable-gui=no --disable-gpm --exec-prefix=/ \
  --with-compiledby="Brenton Horne (fusion809)" \
  --with-modified-by="Brenton Horne (fusion809)"

make VimRCLOC=/etc VIMRUNTIMEDIR=/usr/share/vim/%{vimdir} %{?_smp_mflags}
cp vim minimal-vim
make clean

%if 0%{?mageia}
unset LDFLAGS
%endif
mv -f os_unix.h.save os_unix.h
mv -f ex_cmds.c.save ex_cmds.c

%configure --with-features=huge \
  --enable-pythoninterp=dynamic \
  %if 0%{?fedora} || 0%{?mageia}
  --enable-python3interp=dynamic \
  %endif
  %if 0%{?rhel} > 5 || 0%{?fedora} || 0%{?mageia}
  --enable-perlinterp=dynamic \
  %if "%{withlua}" == "1"
  --enable-luainterp=dynamic \
  %else
  --disable-luainterp \
  %endif
  %endif
  --disable-tclinterp --with-x=yes \
  --enable-xim --enable-multibyte \
  --enable-gtk2-check --enable-gui=gtk2 \
  --with-compiledby="Brenton Horne (fusion809)" --enable-cscope \
  --with-modified-by="Brenton Horne (fusion809)" \
%if "%{withnetbeans}" == "1"
  --enable-netbeans \
%else
  --disable-netbeans \
%endif
%if %{WITH_SELINUX}
  --enable-selinux \
%else
  --disable-selinux \
%endif
%if "%{withruby}" == "1"
  --enable-rubyinterp=dynamic \
%else
  --disable-rubyinterp \
%endif
  --enable-termtruecolor

make VimRCLOC=/etc VIMRUNTIMEDIR=/usr/share/vim/%{vimdir} %{?_smp_mflags}
cp vim gvim-gtk2
cp vimtutor vimtutor-gtk2
cp gvimtutor gvimtutor-gtk2
make clean
%if 0%{?mageia}
unset LDFLAGS
%endif

%if 0%{?rhel} > 6 || 0%{?fedora} || 0%{?mageia}
%configure --with-features=huge \
  --enable-pythoninterp=dynamic \
  %if 0%{?fedora} || 0%{?mageia}
  --enable-python3interp=dynamic \
  %endif
  --enable-perlinterp=dynamic \
  %if "%{withlua}" == "1"
  --enable-luainterp=dynamic \
  %else
  --disable-luainterp \
  %endif
  --disable-tclinterp --with-x=yes \
  --enable-xim --enable-multibyte \
  --enable-gtk3-check --enable-gui=gtk3 \
  --with-compiledby="Brenton Horne (fusion809)" --enable-cscope \
  --with-modified-by="Brenton Horne (fusion809)" \
%if "%{withnetbeans}" == "1"
  --enable-netbeans \
%else
  --disable-netbeans \
%endif
%if %{WITH_SELINUX}
  --enable-selinux \
%else
  --disable-selinux \
%endif
%if "%{withruby}" == "1"
  --enable-rubyinterp=dynamic \
%else
  --disable-rubyinterp \
%endif
  --enable-termtruecolor

make VimRCLOC=/etc VIMRUNTIMEDIR=/usr/share/vim/%{vimdir} %{?_smp_mflags}
cp vim gvim-gtk3
cp vimtutor vimtutor-gtk3
cp gvimtutor gvimtutor-gtk3
make clean
%endif

%if 0%{?mageia}
unset LDFLAGS
%endif

%configure --prefix=%{_prefix} --with-features=huge \
 --enable-pythoninterp=dynamic \
 %if 0%{?fedora} || 0%{?mageia}
 --enable-python3interp=dynamic \
 %endif
 --disable-tclinterp \
 --with-x=no \
 --enable-gui=no --exec-prefix=%{_prefix} --enable-multibyte \
 --enable-cscope \
 --with-compiledby="Brenton Horne (fusion809)" \
%if "%{withnetbeans}" == "1"
  --enable-netbeans \
%else
  --disable-netbeans \
%endif
%if %{WITH_SELINUX}
  --enable-selinux \
%else
  --disable-selinux \
%endif
%if "%{withruby}" == "1"
  --enable-rubyinterp=dynamic \
%else
  --disable-rubyinterp \
%endif
%if 0%{?rhel} > 5 || 0%{?fedora} || 0%{?mageia}
--enable-perlinterp=dynamic \
%if "%{withlua}" == "1"
--enable-luainterp=dynamic \
%else
--disable-luainterp \
%endif
%endif
  --enable-termtruecolor

make VimRCLOC=/etc VIMRUNTIMEDIR=/usr/share/vim/%{vimdir} %{?_smp_mflags}
cp vim enhanced-vim

%install
rm -rf %{buildroot}
mkdir -p %{buildroot}/%{_bindir}
mkdir -p %{buildroot}/%{_datadir}/%{name}/vimfiles/{after,autoload,colors,compiler,doc,ftdetect,ftplugin,indent,keymap,lang,plugin,print,spell,syntax,tutor}
mkdir -p %{buildroot}/%{_datadir}/%{name}/vimfiles/after/{autoload,colors,compiler,doc,ftdetect,ftplugin,indent,keymap,lang,plugin,print,spell,syntax,tutor}
%if %{?rhel}%{!?rhel:0} >= 6
cp -f %{SOURCE15} %{buildroot}/%{_datadir}/%{name}/vimfiles/template.spec
%else
cp -f %{SOURCE14} %{buildroot}/%{_datadir}/%{name}/vimfiles/template.spec
%endif
cp runtime/doc/uganda.txt LICENSE
rm -f README*.info

cd src
make install DESTDIR=%{buildroot} BINDIR=%{_bindir} VimRCLOC=/etc VIMRUNTIMEDIR=/usr/share/vim/%{vimdir}
make installgtutorbin  DESTDIR=%{buildroot} BINDIR=%{_bindir} VimRCLOC=/etc VIMRUNTIMEDIR=/usr/share/vim/%{vimdir}
mkdir -p %{buildroot}%{_datadir}/icons/hicolor/{16x16,32x32,48x48,64x64}/apps
install -m755 minimal-vim %{buildroot}%{_bindir}/vi
install -m755 enhanced-vim %{buildroot}%{_bindir}/vim
install -m755 gvim-gtk2 %{buildroot}%{_bindir}/gvim-gtk2
install -m755 vimtutor-gtk2 %{buildroot}%{_bindir}/vimtutor
install -m755 gvimtutor-gtk2 %{buildroot}%{_bindir}/gvimtutor
%if 0%{?rhel} > 6 || 0%{?fedora} || 0%{?mageia}
install -m755 gvim-gtk3 %{buildroot}%{_bindir}/gvim-gtk3
%endif
install -p -m644 %{SOURCE7} \
   %{buildroot}%{_datadir}/icons/hicolor/16x16/apps/gvim.png
install -p -m644 %{SOURCE8} \
   %{buildroot}%{_datadir}/icons/hicolor/32x32/apps/gvim.png
install -p -m644 %{SOURCE9} \
   %{buildroot}%{_datadir}/icons/hicolor/48x48/apps/gvim.png
install -p -m644 %{SOURCE10} \
   %{buildroot}%{_datadir}/icons/hicolor/64x64/apps/gvim.png

sed -e 's/Exec=gvim/Exec=gvim-gtk2/g' %{SOURCE17} > %{buildroot}%{_datadir}/applications/gvim-gtk2.desktop
sed -i -e 's/GVim/GVim (GTK+ 2)/g' %{buildroot}%{_datadir}/applications/gvim-gtk2.desktop
%if 0%{?rhel} > 6 || 0%{?fedora} || 0%{?mageia}
sed -e 's/Exec=gvim/Exec=gvim-gtk3/g' %{SOURCE17} > %{buildroot}%{_datadir}/applications/gvim-gtk3.desktop
sed -i -e 's/GVim/GVim (GTK+ 3)/g' %{buildroot}%{_datadir}/applications/gvim-gtk3.desktop
%endif
sed -i -e 's/VIM=vim/VIM=gvim-gtk2/g' %{buildroot}%{_bindir}/vimtutor
rm %{buildroot}%{_datadir}/applications/gvim.desktop
rm %{buildroot}%{_datadir}/applications/vim.desktop

install -Dm755 %{SOURCE18} %{buildroot}%{_datadir}/applications/vim.desktop

mkdir -p $RPM_BUILD_ROOT%{_datadir}/appdata
cat > $RPM_BUILD_ROOT%{_datadir}/appdata/gvim-gtk2.appdata.xml <<EOF
<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright 2014 Richard Hughes <richard@hughsie.com> -->
<!--
EmailAddress: Bram@moolenaar.net>
SentUpstream: 2014-05-22
-->
<application>
  <id type="desktop">gvim-gtk2.desktop</id>
  <metadata_license>CC0-1.0</metadata_license>
  <project_license>Vim</project_license>
  <description>
    <p>
     Vim is an advanced text editor that seeks to provide the power of the
     de-facto Unix editor 'Vi', with a more complete feature set.
     It's useful whether you're already using vi or using a different editor.
    </p>
    <p>
     Vim is a highly configurable text editor built to enable efficient text
     editing.
     Vim is often called a "programmer's editor," and so useful for programming
     that many consider it an entire IDE. It is not just for programmers, though.
     Vim is perfect for all kinds of text editing, from composing email to
     editing configuration files.
    </p>
  </description>
  <url type="homepage">http://www.vim.org/</url>
</application>
EOF

%if 0%{?rhel} > 6 || 0%{?fedora} || 0%{?mageia}
cat > $RPM_BUILD_ROOT%{_datadir}/appdata/gvim-gtk3.appdata.xml <<EOF
<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright 2014 Richard Hughes <richard@hughsie.com> -->
<!--
EmailAddress: Bram@moolenaar.net>
SentUpstream: 2014-05-22
-->
<application>
  <id type="desktop">gvim-gtk3.desktop</id>
  <metadata_license>CC0-1.0</metadata_license>
  <project_license>Vim</project_license>
  <description>
    <p>
     Vim is an advanced text editor that seeks to provide the power of the
     de-facto Unix editor 'Vi', with a more complete feature set.
     It's useful whether you're already using vi or using a different editor.
    </p>
    <p>
     Vim is a highly configurable text editor built to enable efficient text
     editing.
     Vim is often called a "programmer's editor," and so useful for programming
     that many consider it an entire IDE. It is not just for programmers, though.
     Vim is perfect for all kinds of text editing, from composing email to
     editing configuration files.
    </p>
  </description>
  <url type="homepage">http://www.vim.org/</url>
</application>
EOF
%endif

mkdir -p %{_builddir}/%{vimdir}/runtime/

( cd %{buildroot}
  ln -sf vi ./%{_bindir}/rvi
  ln -sf vi ./%{_bindir}/rview
  ln -sf vi ./%{_bindir}/view
  ln -sf vi ./%{_bindir}/ex
  ln -sf vim ./%{_bindir}/rvim
  ln -sf vim ./%{_bindir}/vimdiff
  perl -pi -e "s,%{buildroot},," .%{_mandir}/man1/vim.1 .%{_mandir}/man1/vimtutor.1
  rm -f .%{_mandir}/man1/rvim.1
  ln -sf vim.1.gz .%{_mandir}/man1/vi.1.gz
  ln -sf vim.1.gz .%{_mandir}/man1/rvi.1.gz
  ln -sf vim.1.gz .%{_mandir}/man1/vimdiff.1.gz
  ln -sf gvim-gtk2 ./%{_bindir}/gview-gtk2
  ln -sf gvim-gtk2 ./%{_bindir}/gex-gtk2
  ln -sf gvim-gtk2 ./%{_bindir}/evim-gtk2
  ln -sf gvim-gtk2 ./%{_bindir}/gvimdiff-gtk2
  ln -sf gvim-gtk2 ./%{_bindir}/vimx-gtk2
%if 0%{?fedora} || 0%{?rhel} > 6 || 0%{?mageia}
  ln -sf gvim-gtk3 ./%{_bindir}/gview-gtk3
  ln -sf gvim-gtk3 ./%{_bindir}/gex-gtk3
  ln -sf gvim-gtk3 ./%{_bindir}/evim-gtk3
  ln -sf gvim-gtk3 ./%{_bindir}/gvimdiff-gtk3
  ln -sf gvim-gtk3 ./%{_bindir}/vimx-gtk3
%endif
  ( cd ./%{_datadir}/%{name}/%{vimdir}/lang; \
    ln -sf menu_ja_jp.ujis.vim menu_ja_jp.eucjp.vim )
)

pushd %{buildroot}/%{_datadir}/%{name}/%{vimdir}/tutor
mkdir conv
   iconv -f CP1252 -t UTF8 tutor.ca > conv/tutor.ca
   iconv -f CP1252 -t UTF8 tutor.it > conv/tutor.it
   iconv -f CP1252 -t UTF8 tutor.fr > conv/tutor.fr
   iconv -f CP1252 -t UTF8 tutor.es > conv/tutor.es
   iconv -f CP1252 -t UTF8 tutor.de > conv/tutor.de
   iconv -f UTF8 -t UTF8 tutor.ja.utf-8 > conv/tutor.ja.utf-8
   iconv -f UTF8 -t UTF8 tutor.ko.utf-8 > conv/tutor.ko.utf-8
   iconv -f CP1252 -t UTF8 tutor.no > conv/tutor.no
   iconv -f ISO-8859-2 -t UTF8 tutor.pl > conv/tutor.pl
   iconv -f ISO-8859-2 -t UTF8 tutor.sk > conv/tutor.sk
   iconv -f KOI8R -t UTF8 tutor.ru > conv/tutor.ru
   iconv -f CP1252 -t UTF8 tutor.sv > conv/tutor.sv
   mv -f tutor.ja.euc tutor.ja.sjis tutor.ko.euc tutor.pl.cp1250 tutor.zh.big5 tutor.ru.cp1251 tutor.zh.euc conv/
   rm -f tutor.ca tutor.de tutor.es tutor.fr tutor.gr tutor.it tutor.ja.utf-8 tutor.ko.utf-8 tutor.no tutor.pl tutor.sk tutor.ru tutor.sv
mv -f conv/* .
rmdir conv
popd

# Dependency cleanups
chmod 644 %{buildroot}/%{_datadir}/%{name}/%{vimdir}/doc/vim2html.pl \
 %{buildroot}/%{_datadir}/%{name}/%{vimdir}/tools/*.pl \
 %{buildroot}/%{_datadir}/%{name}/%{vimdir}/tools/vim132
chmod 644 ../runtime/doc/vim2html.pl

mkdir -p %{buildroot}/%{_sysconfdir}/profile.d
cp %{SOURCE1} %{buildroot}/%{_sysconfdir}/profile.d/vim.sh
cp %{SOURCE2} %{buildroot}/%{_sysconfdir}/profile.d/vim.csh
chmod 0644 %{buildroot}/%{_sysconfdir}/profile.d/vim.*
install -p -m644 %{SOURCE4} %{buildroot}/%{_sysconfdir}/virc
install -p -m644 %{SOURCE5} %{buildroot}/%{_sysconfdir}/vimrc

mkdir -p %{buildroot}%{_libdir}/%{name}
mkdir -p %{buildroot}/etc/rpm/macros.d/
install -p -m644 %{SOURCE16} %{buildroot}/etc/rpm/macros.d/

(cd ../runtime; rm -rf doc; ln -svf ../../vim/%{vimdir}/doc docs;)
rm -f %{buildroot}/%{_datadir}/vim/%{vimdir}/macros/maze/maze*.c
rm -rf %{buildroot}/%{_datadir}/vim/%{vimdir}/tools
rm -rf %{buildroot}/%{_datadir}/vim/%{vimdir}/doc/vim2html.pl
rm -f %{buildroot}/%{_datadir}/vim/%{vimdir}/tutor/tutor.gr.utf-8~
( cd %{buildroot}/%{_mandir}
  for i in `find ??/ -type f`; do
    if [[ "`file $i`" == *UTF-8\ Unicode\ text* ]]; then
      continue
    fi
    bi=`basename $i`
    iconv -f latin1 -t UTF8 $i > %{buildroot}/$bi
    mv -f %{buildroot}/$bi $i
  done
)

# Remove not UTF-8 manpages
for i in pl.ISO8859-2 it.ISO8859-1 ru.KOI8-R fr.ISO8859-1; do
  rm -rf %{buildroot}/%{_mandir}/$i
done

# use common man1/ru directory
mv %{buildroot}/%{_mandir}/ru.UTF-8 %{buildroot}/%{_mandir}/ru

# Remove duplicate man pages
for i in fr.UTF-8 it.UTF-8 pl.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
mkdir -p %{buildroot}/%{_mandir}/man5
for i in virc.5 vimrc.5; do
  echo ".so man1/vim.1" > %{buildroot}/%{_mandir}/man5/$i
done
touch %{buildroot}/%{_datadir}/%{name}/vimfiles/doc/tags

%post enhanced
update-desktop-database &> /dev/null ||:

%postun enhanced
update-desktop-database &> /dev/null ||:

%post icons
touch --no-create %{_datadir}/icons/hicolor
if [ -x /%{_bindir}/gtk-update-icon-cache ]; then
  gtk-update-icon-cache --ignore-theme-index -q %{_datadir}/icons/hicolor
fi

%postun icons
touch --no-create %{_datadir}/icons/hicolor
if [ -x /%{_bindir}/gtk-update-icon-cache ]; then
  gtk-update-icon-cache --ignore-theme-index -q %{_datadir}/icons/hicolor
fi

%postun X11
# Refresh documentation helptags
%transfiletriggerin common -- %{_datadir}/%{name}/vimfiles/doc
vim -c ":helptags %{_datadir}/%{name}/vimfiles/doc" -c :q &> /dev/null

%transfiletriggerpostun common -- %{_datadir}/%{name}/vimfiles/doc
> %{_datadir}/%{name}/vimfiles/doc/tags
vim -c ":helptags %{_datadir}/%{name}/vimfiles/doc" -c :q &> /dev/null

%post gtk2
update-desktop-database &> /dev/null ||:

%postun gtk2
update-desktop-database &> /dev/null ||:

%if 0%{?fedora} || 0%{?rhel} > 6 || 0%{?mageia}
%post gtk3
update-desktop-database &> /dev/null ||:

%postun gtk3
update-desktop-database &> /dev/null ||:
%endif

%clean
rm -rf %{buildroot}

%files common
%defattr(-,root,root)
%config(noreplace) %{_sysconfdir}/vimrc
%{!?_licensedir:%global license %%doc}
%license LICENSE
%doc README*
%doc runtime/docs
%dir %{_datadir}/%{name}
%{_datadir}/%{name}/vimfiles/template.spec
%dir %{_datadir}/%{name}/%{vimdir}
%{_datadir}/%{name}/%{vimdir}/lang/lv/LC_MESSAGES/vim.mo
%{_datadir}/%{name}/%{vimdir}/rgb.txt
%{_datadir}/%{name}/%{vimdir}/autoload
%{_datadir}/%{name}/%{vimdir}/colors
%{_datadir}/%{name}/%{vimdir}/compiler
%{_datadir}/%{name}/%{vimdir}/pack
%{_datadir}/%{name}/%{vimdir}/doc
%{_datadir}/%{name}/%{vimdir}/*.vim
%{_datadir}/%{name}/%{vimdir}/ftplugin
%{_datadir}/%{name}/%{vimdir}/indent
%{_datadir}/%{name}/%{vimdir}/keymap
%{_datadir}/%{name}/%{vimdir}/lang/*.vim
%{_datadir}/%{name}/%{vimdir}/lang/*.txt
%dir %{_datadir}/%{name}/%{vimdir}/lang
%{_datadir}/%{name}/%{vimdir}/macros
%{_datadir}/%{name}/%{vimdir}/plugin
%{_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
%lang(cs.cp1250) %{_datadir}/%{name}/%{vimdir}/lang/cs.cp1250
%lang(de) %{_datadir}/%{name}/%{vimdir}/lang/de
%lang(en_GB) %{_datadir}/%{name}/%{vimdir}/lang/en_GB
%lang(eo) %{_datadir}/%{name}/%{vimdir}/lang/eo
%lang(es) %{_datadir}/%{name}/%{vimdir}/lang/es
%lang(fi) %{_datadir}/%{name}/%{vimdir}/lang/fi
%lang(fr) %{_datadir}/%{name}/%{vimdir}/lang/fr
%lang(ga) %{_datadir}/%{name}/%{vimdir}/lang/ga
%lang(it) %{_datadir}/%{name}/%{vimdir}/lang/it
%lang(ja) %{_datadir}/%{name}/%{vimdir}/lang/ja
%lang(ja.euc-jp) %{_datadir}/%{name}/%{vimdir}/lang/ja.euc-jp
%lang(ja.sjis) %{_datadir}/%{name}/%{vimdir}/lang/ja.sjis
%lang(ko) %{_datadir}/%{name}/%{vimdir}/lang/ko
%lang(ko) %{_datadir}/%{name}/%{vimdir}/lang/ko.UTF-8
%lang(nb) %{_datadir}/%{name}/%{vimdir}/lang/nb
%lang(nl) %{_datadir}/%{name}/%{vimdir}/lang/nl
%lang(no) %{_datadir}/%{name}/%{vimdir}/lang/no
%lang(pl) %{_datadir}/%{name}/%{vimdir}/lang/pl
%lang(pl.UTF-8) %{_datadir}/%{name}/%{vimdir}/lang/pl.UTF-8
%lang(pl.cp1250) %{_datadir}/%{name}/%{vimdir}/lang/pl.cp1250
%lang(pt_BR) %{_datadir}/%{name}/%{vimdir}/lang/pt_BR
%lang(ru) %{_datadir}/%{name}/%{vimdir}/lang/ru
%lang(ru.cp1251) %{_datadir}/%{name}/%{vimdir}/lang/ru.cp1251
%lang(sk) %{_datadir}/%{name}/%{vimdir}/lang/sk
%lang(sk.cp1250) %{_datadir}/%{name}/%{vimdir}/lang/sk.cp1250
%lang(sv) %{_datadir}/%{name}/%{vimdir}/lang/sv
%lang(uk) %{_datadir}/%{name}/%{vimdir}/lang/uk
%lang(uk.cp1251) %{_datadir}/%{name}/%{vimdir}/lang/uk.cp1251
%lang(vi) %{_datadir}/%{name}/%{vimdir}/lang/vi
%lang(zh_CN) %{_datadir}/%{name}/%{vimdir}/lang/zh_CN
%lang(zh_CN.cp936) %{_datadir}/%{name}/%{vimdir}/lang/zh_CN.cp936
%lang(zh_TW) %{_datadir}/%{name}/%{vimdir}/lang/zh_TW
%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.*
%lang(fr) %{_mandir}/fr/man1/*
%lang(it) %{_mandir}/it/man1/*
%lang(ja) %{_mandir}/ja/man1/*
%lang(pl) %{_mandir}/pl/man1/*
%lang(ru) %{_mandir}/ru/man1/*

%if %{withvimspell}
%files spell
%defattr(-,root,root)
%dir %{_datadir}/%{name}/%{vimdir}/spell
%{_datadir}/%{name}/vim70/spell/cleanadd.vim
%lang(af) %{_datadir}/%{name}/%{vimdir}/spell/af.*
%lang(am) %{_datadir}/%{name}/%{vimdir}/spell/am.*
%lang(bg) %{_datadir}/%{name}/%{vimdir}/spell/bg.*
%lang(ca) %{_datadir}/%{name}/%{vimdir}/spell/ca.*
%lang(cs) %{_datadir}/%{name}/%{vimdir}/spell/cs.*
%lang(cy) %{_datadir}/%{name}/%{vimdir}/spell/cy.*
%lang(da) %{_datadir}/%{name}/%{vimdir}/spell/da.*
%lang(de) %{_datadir}/%{name}/%{vimdir}/spell/de.*
%lang(el) %{_datadir}/%{name}/%{vimdir}/spell/el.*
%lang(en) %{_datadir}/%{name}/%{vimdir}/spell/en.*
%lang(eo) %{_datadir}/%{name}/%{vimdir}/spell/eo.*
%lang(es) %{_datadir}/%{name}/%{vimdir}/spell/es.*
%lang(fo) %{_datadir}/%{name}/%{vimdir}/spell/fo.*
%lang(fr) %{_datadir}/%{name}/%{vimdir}/spell/fr.*
%lang(ga) %{_datadir}/%{name}/%{vimdir}/spell/ga.*
%lang(gd) %{_datadir}/%{name}/%{vimdir}/spell/gd.*
%lang(gl) %{_datadir}/%{name}/%{vimdir}/spell/gl.*
%lang(he) %{_datadir}/%{name}/%{vimdir}/spell/he.*
%lang(hr) %{_datadir}/%{name}/%{vimdir}/spell/hr.*
%lang(hu) %{_datadir}/%{name}/%{vimdir}/spell/hu.*
%lang(id) %{_datadir}/%{name}/%{vimdir}/spell/id.*
%lang(it) %{_datadir}/%{name}/%{vimdir}/spell/it.*
%lang(ku) %{_datadir}/%{name}/%{vimdir}/spell/ku.*
%lang(la) %{_datadir}/%{name}/%{vimdir}/spell/la.*
%lang(lt) %{_datadir}/%{name}/%{vimdir}/spell/lt.*
%lang(lv) %{_datadir}/%{name}/%{vimdir}/spell/lv.*
%lang(mg) %{_datadir}/%{name}/%{vimdir}/spell/mg.*
%lang(mi) %{_datadir}/%{name}/%{vimdir}/spell/mi.*
%lang(ms) %{_datadir}/%{name}/%{vimdir}/spell/ms.*
%lang(nb) %{_datadir}/%{name}/%{vimdir}/spell/nb.*
%lang(nl) %{_datadir}/%{name}/%{vimdir}/spell/nl.*
%lang(nn) %{_datadir}/%{name}/%{vimdir}/spell/nn.*
%lang(ny) %{_datadir}/%{name}/%{vimdir}/spell/ny.*
%lang(pl) %{_datadir}/%{name}/%{vimdir}/spell/pl.*
%lang(pt) %{_datadir}/%{name}/%{vimdir}/spell/pt.*
%lang(ro) %{_datadir}/%{name}/%{vimdir}/spell/ro.*
%lang(ru) %{_datadir}/%{name}/%{vimdir}/spell/ru.*
%lang(rw) %{_datadir}/%{name}/%{vimdir}/spell/rw.*
%lang(sk) %{_datadir}/%{name}/%{vimdir}/spell/sk.*
%lang(sl) %{_datadir}/%{name}/%{vimdir}/spell/sl.*
%lang(sv) %{_datadir}/%{name}/%{vimdir}/spell/sv.*
%lang(sw) %{_datadir}/%{name}/%{vimdir}/spell/sw.*
%lang(tet) %{_datadir}/%{name}/%{vimdir}/spell/tet.*
%lang(th) %{_datadir}/%{name}/%{vimdir}/spell/th.*
%lang(tl) %{_datadir}/%{name}/%{vimdir}/spell/tl.*
%lang(tn) %{_datadir}/%{name}/%{vimdir}/spell/tn.*
%lang(uk) %{_datadir}/%{name}/%{vimdir}/spell/uk.*
%lang(yi) %{_datadir}/%{name}/%{vimdir}/spell/yi.*
%lang(yi-tr) %{_datadir}/%{name}/%{vimdir}/spell/yi-tr.*
%lang(zu) %{_datadir}/%{name}/%{vimdir}/spell/zu.*
%endif

%files minimal
%defattr(-,root,root)
%config(noreplace) %{_sysconfdir}/virc
%{_bindir}/ex
%{_bindir}/vi
%{_bindir}/view
%{_bindir}/rvi
%{_bindir}/rview
%{_mandir}/man1/ex.*
%if 0%{?rhel} || 0%{?fedora}
%{_mandir}/man1/vi.*
%{_mandir}/man1/rvi.*
%endif
%{_mandir}/man1/rview.*
%{_mandir}/man1/view.*
%{_mandir}/man5/virc.*

%files icons
%defattr(-,root,root)
%{_datadir}/icons/hicolor/*/apps/*
%{_datadir}/icons/locolor/*/apps/*

%files enhanced
%defattr(-,root,root)
%{_bindir}/vim
%{_bindir}/rvim
%{_bindir}/vimdiff
%{_bindir}/vimtutor
/%{_datadir}/applications/vim.desktop
%config(noreplace) %{_sysconfdir}/profile.d/vim.*

%files filesystem
%defattr(-,root,root)
/etc/rpm/macros.d/macros.vim
%dir %{_libdir}/%{name}
%dir %{_datadir}/%{name}/vimfiles
%dir %{_datadir}/%{name}/vimfiles/after
%dir %{_datadir}/%{name}/vimfiles/after/*
%dir %{_datadir}/%{name}/vimfiles/autoload
%dir %{_datadir}/%{name}/vimfiles/colors
%dir %{_datadir}/%{name}/vimfiles/compiler
%dir %{_datadir}/%{name}/vimfiles/doc
%ghost %{_datadir}/%{name}/vimfiles/doc/tags
%dir %{_datadir}/%{name}/vimfiles/ftdetect
%dir %{_datadir}/%{name}/vimfiles/ftplugin
%dir %{_datadir}/%{name}/vimfiles/indent
%dir %{_datadir}/%{name}/vimfiles/keymap
%dir %{_datadir}/%{name}/vimfiles/lang
%dir %{_datadir}/%{name}/vimfiles/plugin
%dir %{_datadir}/%{name}/vimfiles/print
%dir %{_datadir}/%{name}/vimfiles/spell
%dir %{_datadir}/%{name}/vimfiles/syntax
%dir %{_datadir}/%{name}/vimfiles/tutor

%files gtk2
%defattr(-,root,root)
%{_datadir}/appdata/gvim-gtk2.appdata.xml
%{_datadir}/applications/gvim-gtk2.desktop
%{_bindir}/gvim-gtk2
%{_bindir}/gvimdiff-gtk2
%{_bindir}/gview-gtk2
%{_bindir}/gex-gtk2
%{_bindir}/vimx-gtk2
%{_bindir}/evim-gtk2
%{_bindir}/gvimtutor

%if 0%{?fedora} || 0%{?rhel} > 6 || 0%{?mageia}
%files gtk3
%defattr(-,root,root)
%{_datadir}/appdata/gvim-gtk3.appdata.xml
%{_datadir}/applications/gvim-gtk3.desktop
%{_bindir}/gvim-gtk3
%{_bindir}/gvimdiff-gtk3
%{_bindir}/gview-gtk3
%{_bindir}/gex-gtk3
%{_bindir}/vimx-gtk3
%{_bindir}/evim-gtk3
%endif

%files X11
%defattr(-,root,root)
%{_mandir}/man1/evim.*

%changelog