[devel] [spec-lynch] vim.spec

Sergey Vlasov vsu at altlinux.ru
Sun Oct 11 14:55:03 UTC 2009


On Sun, Oct 11, 2009 at 05:10:17PM +0400, Alexey I. Froloff wrote:
>   58 %define oname vim
>   59 %define major           7
>   60 %define minor           2
>   61 #define pre
>   62 %define patchlevel      262
>   67 Version: %major.%minor%{?pre:.000.%pre}%{?patchlevel:.%patchlevel}
> 
> Не самый удачный способ кодирования версии.  Во первых такую
> конструкцию не понимает gear, во вторых она не работает как надо.

Да, %{?...} в gear не работает (хотя простая подстановка строк
сработает правильно, за исключением случая, когда используемые там
макросы определяются внутри какого-нибудь %if... - в этом случае gear
не сможет выбрать из нескольких определений макроса нужное и молча
подставит не то, что нужно).

Ещё один способ борьбы с gear - не собирать Version: из компонентов, а
писать в окончательном виде, после чего разбирать на нужные
компоненты, используя что-то типа %( echo %version | sed ... ).

>  401 PreReq: alternatives >= 0.2.0-alt0.7
>  402 Requires: gtk+ >= 1.2.3
> 
> Алексей Турбин совершенно зря потратил кучу времени пркручивая
> версионирование символов к библиотекам.

К ископаемому gtk1 они ещё не прикручивались.  Впрочем, сборка пакета
vim-X11-gtk всё равно отключена с 2006 года; возможно, его стоит
похоронить окончательно.  Ну а alternatives - это совсем отдельный
вопрос; если древние версии этого пакета ещё рано объявлять
несуществующими, возможно, получится хотя бы проставлять эту
зависимость автоматически.

>  719 cat <<EOF >%buildroot%_rpmmacrosdir/vim
>  720 # Global runtime
>  721 %%vim_dir       %_datadir/vim
> 
> Когда макросы делаются через HEREDOC надо не забывать
> экранировать % там где нужно.

И $ (хотя против этого есть средства - см. далее; а вот от %% уже
никуда не деться).

>  726 %%mkvimspell(L:a)       %%{!-L:%%{!-a:%%{error:mkvimspell: neither language nor -a is specified} }}%%{-L:env LANG="%%{-L*}"} %_bindir/vim-console -E -X -N -n -i NONE -u NONE -U NONE -c 'mkspell! %%{-a:-ascii} %%*' -c q
> 
> Макрос использует vim-console, однако rpm-build-vim от него не
> зависит.

С другой стороны, не всем пользователям rpm-build-vim нужен этот
макрос...

>  768 cat <<EOF >%buildroot%_bindir/update-vimhelp
>  774 [ -x "\$VIM" ] || exit 1
> 
> Когда шелл-скрипты делаются через HEREDOC надо не забывать
> экранировать $ там где нужно.  Лучше подобные вещи делать
> отдельным Source.

Можно ещё cat <<'EOF' - тогда от sh ничего экранировать не нужно.
Вариант с отдельным Source не всегда удобен - иногда нужно раскрыть
какие-нибудь %macros в содержимом файла, тогда может быть проще
сделать heredoc, чем плодить sed.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://lists.altlinux.org/pipermail/devel/attachments/20091011/df600420/attachment.bin>


More information about the Devel mailing list