On Thu, Oct 16, 2008 at 04:02:00PM +0400, Vitaly Ostanin wrote: > Обнаружил, что при наличии в спеке в %files > такой строки > %doc %_defaultdocdir/%name-%version > > пакет не собирается со странными > сообщениями: > > Wrote: /usr/src/RPM/SRPMS/heartbeat-2.1.3-alt1.src.rpm > error: create archive failed on file > /usr/src/tmp/heartbeat-buildroot/usr/share/doc/heartbeat-2.1.3/AUTHORS: > cpio: open failed - Bad file descriptor > > RPM build errors: > File listed twice: /etc/ha.d/resource.d/ldirectord > File listed twice: /usr/lib/ocf/resource.d/heartbeat/ldirectord > File listed twice: /usr/share/doc/heartbeat-2.1.3 > > Если эту строку удалить, то пакет > собирается нормально. Нельзя одновременно использовать %doc <абсолютный-путь-в-дефолтном-каталоге> %doc <относительный-путь> Это связано с тем, что, когда выполняется %doc второго вида, то дефолтный каталог сначала удаляется, потом заново создаётся, и в него копируются <относительные-пути>. %build touch Changes %install install -pD -m644 /dev/null %buildroot%_docdir/%name-%version/README %files %doc %_docdir/%name-%version %doc Changes Когда "%doc Changes" будет исполнен, то он "затрёт" README. Executing(%doc): /bin/sh -e /tmp/.private/at/rpm-tmp.96021 + umask 022 + /bin/mkdir -p /tmp/.private/at/BUILD + cd /tmp/.private/at/BUILD + DOCDIR=/tmp/.private/at/test-buildroot/usr/share/doc/test-0 + export DOCDIR + rm -rf /tmp/.private/at/test-buildroot/usr/share/doc/test-0 + /bin/mkdir -p /tmp/.private/at/test-buildroot/usr/share/doc/test-0 + cp -prL Changes /tmp/.private/at/test-buildroot/usr/share/doc/test-0 + chmod -R go-w /tmp/.private/at/test-buildroot/usr/share/doc/test-0 + chmod -R a+rX /tmp/.private/at/test-buildroot/usr/share/doc/test-0 + exit 0 > Я понимаю, что сам > дурак и всё такое, но всё же rpm мог бы > выводить более понятное сообщение об > ошибке. rpm сказал правильное сообщение об ошибке: error: create archive failed on file /tmp/.private/at/test-buildroot/usr/share/doc/test-0/README: cpio: open failed - Bad file descriptor Если посмотреть, то в билдруте файла README действительно больше нет. Но он был. А куда он делся rpm объяснить не может. > Не собирающийся коммит: > http://git.altlinux.org/people/vyt/packages/?p=heartbeat.git;a=commit;h=5f30983b0956d58906f39a8389a0d288ba3759e4 > Собирающийся: > http://git.altlinux.org/people/vyt/packages/?p=heartbeat.git;a=commit;h=394bef3755c3ebfa30672854d9d403b9e46cd07b