Sisyphus repository
Last update: 1 october 2023 | SRPMs: 18631 | Visits: 37852703
en ru br
ALT Linux repos
S:9.0.1893-alt1
5.0: 7.2.148-alt2
4.1: 7.2.026-alt0.M41.1
4.0: 7.1.315-alt0.M40.1
+updates:7.1.315-alt0.M40.1
3.0: 6.3.086-alt1

Group :: Editors
RPM: vim

 Main   Changelog   Spec   Patches   Sources   Download   Gear   Bugs and FR  Repocop 

 Особенности сборки VIm в дистрибутивах ALT Linux.

1. Разбивка на под-пакеты. {{{1

+ vim-minimal: options=TINY, GUI=none
+ vim-common: общие файлы для всех вариантов сборки
+ vim-enhanced: options=HUGE, +perl/ruby/tcl, GUI=none
+ vim-X11: общие файлы для всех GUI вариантов сборки
+ vim-X11-athena: options=HUGE, +perl/ruby/tcl, GUI=Xaw
+ vim-X11-gtk: options=HUGE, +perl/ruby/tcl, GUI=Gtk+
+ vim-X11-gtk2: options=HUGE, +perl/ruby/tcl, GUI=Gtk+2
+ vim-X11-motif: options=HUGE, +perl/ruby/tcl, GUI=Motif (OpenMotif)
+ vim-X11-neXtaw: options=HUGE, +perl/ruby/tcl, GUI=neXtaw
+ vim-devel: rpm макросы, необходимые для сборки дополнительных плагинов

Переключение между различными вариантами сборки производится при помощи
пакета alternatives.

1}}}
2. Инициализация. {{{1

Процесс инициализации VIm описан в ":help initialization", отличия в сборках
ALT Linux:

Чтение файлов конфигурации происходит в следующем порядке (* помечены файлы,
обрабатываемые GUI версией VIm):

+ /etc/vim/vimrc
+ ~/.vimrc
+ /etc/vim/gvimrc (*)
+ ~/.gvimrc (*)

По умолчанию опция 'runtimepath' выглядит следующим образом:

+ ~/.vim
+ /usr/share/vim/vimfiles
+ $VIMRUNTIME (/usr/share/vim)
+ /usr/share/vim/vimfiles/after
+ ~/.vim/after

1}}}
3. RPM макросы. {{{1

В пакете vim-devel находятся RPM макросы, облегчающие сборку дополнительных
плагинов:

3.1 Глобальные каталоги, используемые VIm: {{{2

+ %vim_dir - $VIMRUNTIME (/usr/share/vim)
+ %vim_runtime_dir - global runtime (/usr/share/vim/vimfiles)
+ %vim_after_dir - global runtime "after" (/usr/share/vim/vimfiles/after)
2}}}
3.2 Дополнительные подкаталоги в %vim_runtime_dir: {{{2

+ %vim_bitmaps_dir - .../bitmaps
+ %vim_colors_dir - .../colors
+ %vim_compiler_dir - .../compiler
+ %vim_doc_dir - .../doc
+ %vim_ftdetect_dir - .../ftdetect
+ %vim_ftplugin_dir - .../ftplugin
+ %vim_indent_dir - .../indent
+ %vim_keymap_dir - .../keymap
+ %vim_lang_dir - .../lang
+ %vim_plugin_dir - .../plugin
+ %vim_print_dir - .../print
+ %vim_syntax_dir - .../syntax
2}}}
3.3 Дополнительные подкаталоги в %vim_after_dir: {{{2

+ %vim_after_compiler_dir - .../compiler
+ %vim_after_ftplugin_dir - .../ftplugin
+ %vim_after_indent_dir - .../indent
+ %vim_after_plugin_dir - .../plugin
+ %vim_after_syntax_dir - .../syntax
2}}}
3.4 Макрос, определяющий URL по номеру скрипта: {{{2

+ %vim_script_url()

Пример использования:

Url: %vim_script_url 39

Этот макрос будет раскрыт в:

Url: http://www.vim.org/scripts/script.php?script_id=39
2}}}
3.5 Макросы для post-скриптов в пакете: {{{2

+ %update_vimhelp - обновление helptags после установки
+ %clean_vimhelp - обновление helptags после удаления пакета

Пример использования:

%post
%update_vimhelp

%postun
%clean_vimhelp
2}}}
1}}}
4. Рекомендации сборке дополнительных плагинов. {{{1

Все пакеты с дополнительными плагинами (кроме переводов официальной
документации) должны придерживаться следующих правил:

4.1 Общие рекомендации. {{{2

Имена пакетов должны иметь вид

vim-plugin-NAME[-TYPE], где

NAME - название пакета
TYPE - тип пакета (опционально)

Как правило, тип пакета зависит от его местонахождения. Рекомендуемые типы
пакетов:

.../colors - colors
.../compiler - compiler
.../ftplugin - filetype
.../indent - indent
.../plugin - не используется
.../print - print
.../syntax - syntax

Все пакеты должны иметь сборочную зависимость на vim-devel:

BuildPreReq: vim-devel

!!!ВНИМАНИЕ!!! Эта зависимость не определяется автоматически при помощи
buildreq из пакета rpm-utils.

Все пакеты должны иметь runtime зависимость на vim-common:

PreReq: vim-common

Все пакеты, содержащие документацию должны обновлять индексные файлы
справки:

%post
%update_vimhelp

%postun
%clean_vimhelp
2}}}
4.2 Расположение файлов. {{{2

Все скрипты и документация должны находиться внутри %vim_runtime_dir.
Поскольку скрипты в %vim_runtime_dir обрабатываются раньше скриптов
в $VIMRUNTIME, это позволяет переопределить стандартные цветовые схемы,
компиляторы, и т.д.
2}}}
4.3 Конфигурация по умолчанию. {{{2

Все плагины, переопределяющие стандартные скрипты из vim-common (для типов
compiler, indent, print, syntax), и все плагины с типами filetype и plugin,
должны быть по умолчанию выключены.

Механизм включения должен быть одинаковым для всех плагинов. Это достигается
добавлением следующего кода в начало скрипта:

if !exists("use_name_type")
finish
endif

где "use_name_type" - уникальная переменная, состоящая из имени плагина (не
обязательно совпадающего с именем скрипта, например плагин vimruby, скрипт
ruby.vim) и опционально типа скрипта.

Для использования плагина пользователю достаточно в .vimrc добавить строку:

let use_name_type = 1

о чём должно быть упоминание в %description пакета:

...
To enable this plugin define "use_some_filetype" variable somewhere
in your .vimrc file.

Если какие либо из плагинов попадают в основной дистрибутив VIm, в пакет
vim-common прописывается соответствующий Obsoletes:

Provides: vim-plugin-NAME-TYPE = VERSION.vim
Obsoletes: vim-plugin-NAME-TYPE <= VERSION

При этом к версии плагина, указанной в Provides пакета vim-common,
добавляется суффикс ".vim".
2}}}
4.4 Переводы официальной документации. {{{2

Структура переводов официальной документации описана в
":help help-translated". Пакет с документацией имеет следующие отличия:

1. Имя пакета vim-doc-LL, где LL - духсимвольный код языка
2. Пакет содержит только файлы %vim_dir/doc/*.LLx и %vim_dir/doc/tags-LL
3. В post-скриптах не нужно вызывать %update_vimhelp/%clean_vimhelp
2}}}
1}}}
vim:tw=78:fdm=marker:fo=tcqn21:noet:norl:
 
design & coding: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
current maintainer: Michael Shigorin