On Wed, 13 Nov 2013, Daniel P. Berrange wrote:
On Wed, Nov 13, 2013 at 12:02:08PM +1100, Michael Chapman wrote:
> RHEL's rpmbuild wipes the docdir for a (sub-)package if any %doc
> directives are present, prior to copying in the marked documentation.
> This means we can't prepopulate this directory with the HTML
> documentation during the %install phase.
>
> Instead, move the HTML documentation to a temporary directory during
> %install and mark the contents of this temporary directory with %doc.
Huh, AFAICT, this has worked fine for years. What actual problem are
you seeing without this patch ? Do you have the 'redhat-rpm-config'
package installed ?
Yes, I do.
Here's the relevant bits from my Mock log:
Executing(%doc): /bin/sh -e /var/tmp/rpm-tmp.ZgFSCX
+ umask 022
+ cd /builddir/build/BUILD
+ cd libvirt-1.1.4
+
DOCDIR=/builddir/build/BUILDROOT/libvirt-1.1.4-1.el6.x86_64/usr/share/doc/libvirt-docs-1.1.4
+ export DOCDIR
+ rm -rf
/builddir/build/BUILDROOT/libvirt-1.1.4-1.el6.x86_64/usr/share/doc/libvirt-docs-1.1.4
+ /bin/mkdir -p
/builddir/build/BUILDROOT/libvirt-1.1.4-1.el6.x86_64/usr/share/doc/libvirt-docs-1.1.4
+ cp -pr AUTHORS ChangeLog.gz NEWS README TODO
/builddir/build/BUILDROOT/libvirt-1.1.4-1.el6.x86_64/usr/share/doc/libvirt-docs-1.1.4
+ exit 0
warning: File listed twice: /usr/share/doc/libvirt-docs-1.1.4
Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <=
4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1
...
error: create archive failed on file
/builddir/build/BUILDROOT/libvirt-1.1.4-1.el6.x86_64/usr/share/doc/libvirt-docs-1.1.4/html/32favicon.png:
cpio: Bad magic
RPM build errors:
File listed twice: /usr/share/doc/libvirt-docs-1.1.4
create archive failed on file
/builddir/build/BUILDROOT/libvirt-1.1.4-1.el6.x86_64/usr/share/doc/libvirt-docs-1.1.4/html/32favicon.png:
cpio: Bad magic
I think the problem was introduced with commit e23216da, and that it's
only because the %doc directive now contains relative paths. Before then
the only %doc directives in that subpackage were absolute paths. RHEL 6's
rpmbuild at least seems to handle those differently, and it doesn't
generate an "rm -rf" line if only absolute paths are present.
- Michael