SpecTips/doc

Материал из ALT Linux Wiki

< SpecTips(Различия между версиями)
Перейти к: навигация, поиск
 
(5 промежуточных версий не показаны.)
Строка 1: Строка 1:
[[Category:Devel]]
[[Category:Devel]]
-
 
== Использование %doc ==
== Использование %doc ==
Строка 8: Строка 7:
  %doc <относительный-путь в каталоге, полученном в %prep>
  %doc <относительный-путь в каталоге, полученном в %prep>
-
Это является особенностью (или ошибкой) реализации RPM: когда выполняется <tt>%doc</tt> второго вида, то каталог <tt>%_docdir</tt> сначала удаляется, потом заново создаётся, и в него копируются файлы, указанные в виде относительных путей. При повторном указании %doc второго вида каталог <tt>%_docdir</tt> не удаляется (и это наводит на мысль, что на самом деле <tt>%_docdir</tt> удаляется не при указании <tt>%_doc</tt> второго вида, а в конце обработки <tt>%_doc</tt> первого вида).
+
Это является особенностью<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:
В этом примере в %doc попадут только Changes и AUTHORS, без README:
Строка 30: Строка 29:
</pre>
</pre>
-
=== Ссылки ===
+
== Ссылки ==
-
* http://lists.altlinux.org/pipermail/devel/2008-October/080670.html
+
<references/>
 +
# http://lists.altlinux.org/pipermail/devel/2008-October/080670.html

Текущая версия на 15: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

Ссылки

  1. http://lists.altlinux.org/pipermail/devel/2008-October/080757.html
  1. http://lists.altlinux.org/pipermail/devel/2008-October/080670.html
 
Личные инструменты