On 12/24/2016 11:12 AM, David Muse wrote:
On 12/24/2016 3:49 AM, Michael Schwendt wrote:
On Sat, 24 Dec 2016 03:32:41 -0500, David Muse wrote:
Hello,
I recently started getting errors like:
17046740 build (f26, rudiments-1.0.1-1.fc24.src.rpm): open
(arm04-builder06.arm.fedoraproject.org) -> FAILED: BuildError: The
following noarch package built differently on different architectures:
rudiments-doc-1.0.1-1.fc26.noarch.rpm
rpmdiff output was:
error: cannot open Packages index using db5 - Permission denied (13)
error: cannot open Packages database in /var/lib/rpm
error: cannot open Packages database in /var/lib/rpm
...when doing koji builds. Eg:
koji build --scratch f26 rudiments-1.0.1-1.fc24.src.rpm
It's odd because the rpm in question is just docs. Nothing is built
per-se, some static files are just installed. I'd expect it to be the
same on all platforms.
It seems that it always fails when building for arm. I don't have an
arm platform available to test on though. Is there any way to get more
information about what's different about the rpm on the different
platforms?
You can submit a separate scratch build for each target arch, then
download the built rpms and compare them all.
rudiments does something to generate its HTML documentation. It doesn't
use Doxygen, but whatever it does to the files may lead to different
results
depending on what arch the build machine is.
I tried building for i686 and x86_64 and the noarch RPM did in fact turn
out different for each platform:
$ md5sum */*
ed58927ce25fa51e3f5e16d81cc195fa
i686/rudiments-doc-1.0.1-1.fc26.noarch.rpm
0789684c36ddcaadc4ee5216cfe7037e
x86_64/rudiments-doc-1.0.1-1.fc26.noarch.rpm
I tried installing them into separate roots using rpm --root and then
removing the var directories that rpm creates for its database. After
that, a diff -urN of the roots showed no differences. So, the files
that are installed by both RPMs appear to be identical.
However, a vbindiff of the two rpms shows plenty of differences. At
first there are really sparse, like maybe individual numbers are
different, but then there are some notable differences include the name
of the build machine, and what appear to be build options like: -O2 -g
-pipe ... -m64 -mtune=generic.cpio.xz.2.x86_64-redhat-linux-gnu, and
then the compressed data is all very different.
I would expect the name of the build machine and build options to be
very different between systems of different architectures. And I'd
think that the different strings would throw off the compressed data
further on in the file.
Am I doing something wrong that causes this info to be included in the
noarch RPM?
I tried fiddling with some parameters in my spec file. Eg. I don't have
any patches to apply, so I removed the -p1 from the %autosetup, and I
removed the Requires from the doc package, but those changes didn't make
any difference.
Is that info supposed to be included, and maybe there's just a bug in
the code that compares noarch rpms? Or something else? Can I safely
ignore the error?
Oh, I just realized that there's an rpmdiff tool. Well, I tried that,
and the only difference it shows is the timestamp for each file, which I
would expect to be different. An rpmdiff -iT of the two noarch rpms
returns nothing.
Strange.
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx