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?
_______________________________________________
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org

Reply via email to