[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