On 01/05/2016 10:55 AM, Lukas Slebodnik wrote:
On (05/01/16 10:37), Lukas Slebodnik wrote:
On (22/12/15 16:31), Petr Vobornik wrote:
Build of 4.3 on Fedora rawhide failed at the end on rpmdiff check. Builds for
all arches were successful and also works in COPR.
0 free 1 open 4 done 0 failed
12284450 build (rawhide, /freeipa:b2442d51ba3f2a5f907f72e9bd90c5889bd89c0e):
open (buildppcle-07.phx2.fedoraproject.org) -> FAILED: BuildError: mismatch
when analyzing python3-ipatests-4.3.0-1.fc24.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
removed REQUIRES python3-ipalib(armv7hl-32) = 4.3.0-1.fc24
added REQUIRES python3-ipalib(x86-64) = 4.3.0-1.fc24
0 free 0 open 4 done 1 failed
I think that log file is crystal clear.

The noarch package "python3-ipatests-4.3.0-1.fc24.noarch.rpm"
requires packages with strict architecture.

sh$ wget 

sh $rpm -qp --requires python3-ipatests-4.3.0-1.fc24.noarch.rpm
freeipa-client-common = 4.3.0-1.fc24
python(abi) = 3.5
python3-ipalib(x86-64) = 4.3.0-1.fc24
python3-pytest >= 2.6
python3-pytest-multihost >= 0.5
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(PayloadIsXz) <= 5.2-1

noarch pacakges are build for each architecture: armv7hl-32, x86-64, i686
But the same package should be built on each platform.

In your case requires, provides are different. This is a reason
why rpmdiff failed for some noarch packages.

Attached are two patches which fix issues with build in koji.
The 1st patch removes usage of %{_isa} in noarch packages.

The second one violates python packaging guidelines
But there seems to be bug (in rpmbuild???) because "rpm --eval" does not
generate provides with architecture.

sh$ wget 

sh$ rpm -qp --provides python2-ipatests-4.3.0-1.fc24.noarch.rpm
freeipa-tests(x86-64) = 4.3.0-1.fc24
ipa-tests(x86-64) = 4.3.0
python-ipatests = 4.3.0-1.fc24
python-ipatests(x86-64) = 4.3.0-1.fc24
python2-ipatests = 4.3.0-1.fc24

sh$ rpm --eval "%{?python_provide:%python_provide python2-ipatests}"
Provides: python-ipatests = %{version}-%{release}
Obsoletes: python-ipatests < %{version}-%{release}

So better workaround could be to replace macro "%python_provide"
with manually generated "Provides" and "Obsoletes"
It's up to you and discussion with python experts :-)


>From 0674e1e6aae2423c050be520b9c1b13f8feeb3d8 Mon Sep 17 00:00:00 2001
From: Lukas Slebodnik <lsleb...@redhat.com>
Date: Mon, 4 Jan 2016 19:02:24 +0100
Subject: [PATCH 1/2] Remove _isa from requires and provides

And here is a link to koji build with the patches


Thanks Lukas, especially for the second part. I found out the first part yesterday [1].

I'm still not sure if it wouldn't be better to change the noarch packages to arch specific. We wouldn't have to use the workaround and we could keep the arch specific requires.

[1] https://fedorahosted.org/freeipa/ticket/5568

Petr Vobornik

Manage your subscription for the Freeipa-devel mailing list:
Contribute to FreeIPA: http://www.freeipa.org/page/Contribute/Code

Reply via email to