Problems with the %{?_isa} macro in dependencies


I have tried using the %{_isa} macro in a couple of my packages as
instructed in
and I'm having problems with it.

First case:
The arch-specific libvoikko spell checking package requires the Finnish
morphology, which is in the arch-specific malaga-suomi-voikko package. I
did the following change (the versioned dependency was unnecessary):
-Requires: malaga-suomi-voikko >= 1.4
+Requires: malaga-suomi-voikko%{?_isa}

Now AutoQA's depcheck says there is a problem with the i686 dependency
on x86_64:

"SKIPBROKEN: libvoikko-3.3.1-0.2.rc1.fc16.i686 from pending has
depsolving problems
SKIPBROKEN: --> Package: libvoikko-3.3.1-0.2.rc1.fc16.i686 (pending)
--> Requires: malaga-suomi-voikko(x86-32)"

Second case:
I'm renaming the package to libreoffice-voikko.
Review request: <>,
spec: <>.

The Provides and Obsoletes are as follows:
Provides: = %{version}-%{release}
Obsoletes: < 3.1.2-6

This works, but if I change the Obsoletes to
Obsoletes:{?_isa} < 3.1.2-6
then the package does not obsolete any more, which
results in file conflicts.

Could someone please explain what's going on here?


Re: Problems with the %{?_isa} macro in dependencies

By Jussi Lehtola at 09/25/2011 - 12:49

On Sun, 25 Sep 2011 18:55:42 +0300
Ville-Pekka Vainio < ... at iki dot fi> wrote:
Libraries are multilib'd. malaga-suomi-voikko only contains data
files (in arch specific directories), thus it isn't multilib'd => the
32-bit data package isn't available on x86_64 and you get the
dependency problem.

The obsolete doesn't work, since then you're not obsoleting the
package, instead you're obsoleting what the package provides:
$ rpm -q
$ rpm -q --provides = 3.1.2-3.fc15 = 3.1.2-3.fc15

Re: Problems with the %{?_isa} macro in dependencies

By Ville-Pekka Vainio at 09/25/2011 - 13:36

Thanks for the advice! I've made a libvoikko build without the %{_isa}
macro in the malaga-suomi-voikko dependency.