SpecTips/doc: различия между версиями
< SpecTips
м (a bit more cleanup + link + cat) |
Нет описания правки |
||
(не показано 9 промежуточных версий 2 участников) | |||
Строка 1: | Строка 1: | ||
[[Category:Devel]] | [[Category:Devel]] | ||
== Использование %doc == | == Использование %doc == | ||
В спек-файле нельзя использовать конструкции | В спек-файле нельзя одновременно использовать конструкции | ||
%doc <абсолютный-путь-в-%_docdir> | %doc <абсолютный-путь-в-%_docdir в %buildroot> | ||
и | и | ||
%doc <относительный-путь> | %doc <относительный-путь в каталоге, полученном в %prep> | ||
Это является особенностью | Это является особенностью<ref>http://lists.altlinux.org/pipermail/devel/2008-October/080757.html</ref> реализации RPM: когда выполняется <tt>%doc</tt> второго вида, то каталог <tt>%_docdir</tt> сначала удаляется, потом заново создаётся, и в него копируются файлы, указанные в виде относительных путей. При повторном указании %doc второго вида каталог <tt>%_docdir</tt> не удаляется. | ||
В этом примере в %doc попадут только Changes и AUTHORS, без README: | |||
<pre> | <pre> | ||
%build | %build | ||
Строка 20: | Строка 18: | ||
%doc %_docdir/%name-%version | %doc %_docdir/%name-%version | ||
%doc Changes | %doc Changes | ||
%doc AUTHORS | |||
</pre> | </pre> | ||
Сборка пакета при этом остановится с ошибкой: | |||
<pre> | |||
Wrote: /usr/src/RPM/SRPMS/name-2.1.3-alt1.src.rpm | |||
error: create archive failed on file | |||
/usr/src/tmp/name-buildroot/usr/share/doc/name-2.1.3/README: | |||
cpio: open failed - Bad file descriptor | |||
</pre> | |||
== Ссылки == | |||
<references/> | |||
# http://lists.altlinux.org/pipermail/devel/2008-October/080670.html |
Текущая версия от 18:05, 19 октября 2008
Использование %doc
В спек-файле нельзя одновременно использовать конструкции
%doc <абсолютный-путь-в-%_docdir в %buildroot>
и
%doc <относительный-путь в каталоге, полученном в %prep>
Это является особенностью[1] реализации RPM: когда выполняется %doc второго вида, то каталог %_docdir сначала удаляется, потом заново создаётся, и в него копируются файлы, указанные в виде относительных путей. При повторном указании %doc второго вида каталог %_docdir не удаляется.
В этом примере в %doc попадут только Changes и AUTHORS, без README:
%build touch Changes %install install -pD -m644 /dev/null %buildroot%_docdir/%name-%version/README %files %doc %_docdir/%name-%version %doc Changes %doc AUTHORS
Сборка пакета при этом остановится с ошибкой:
Wrote: /usr/src/RPM/SRPMS/name-2.1.3-alt1.src.rpm error: create archive failed on file /usr/src/tmp/name-buildroot/usr/share/doc/name-2.1.3/README: cpio: open failed - Bad file descriptor