Packaging help needed: Prevent noarch package from requiring 32bit RPMs on a 64bit system

Miro Hrončok miro at hroncok.cz
Wed Oct 31 15:26:46 UTC 2012


Hi,
I am trying to package slic3r -> it is a perl noarch package, but it
requires a lot of arch specific perl modules.

The Requires section form spec file:

Requires:       perl(XML::SAX)
Requires:       perl(Growl::GNTP)
Requires:       perl(Net::DBus)
Requires:       perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`";
echo $version))

https://github.com/hroncok/SPECS/blob/master/slic3r.spec

The rest of Requires are automatically added.

When I built the package and add it to the repository together with
required packages I made, it requires arch mishmash on a 64bit system:

Install:
 slic3r                         noarch   myrepo
Install requires:
 perl-Boost-Geometry-Utils      i686     myrepo
 perl-Class-Accessor            noarch
 perl-Class-Method-Modifiers    noarch
 perl-Crypt-CBC                 noarch
 perl-Devel-Symdump             noarch
 perl-Digest-SHA                x86_64
 perl-Digest-SHA1               x86_64
 perl-File-HomeDir              noarch
 perl-File-Which                noarch
 perl-Growl-GNTP                noarch   myrepo
 perl-JSON                      noarch
 perl-Language-Expr             noarch   myrepo
 perl-Math-Clipper              i686     myrepo
 perl-Math-ConvexHull           noarch   myrepo
 perl-Math-Expression-Evaluator noarch   myrepo
 perl-Math-Factor-XS            i686     myrepo
 perl-Math-Geometry-Voronoi     i686     myrepo
 perl-Math-Libm                 x86_64   myrepo
 perl-Math-NumSeq               noarch   myrepo
 perl-Math-PlanePath            noarch   myrepo
 perl-Math-Prime-XS             i686     myrepo
 perl-Math-Symbolic             noarch
 perl-Module-Load               noarch
 perl-Module-Util               noarch
 perl-Moo                       noarch
 perl-Net-DBus                  x86_64
 perl-Params-Validate           x86_64
 perl-Parse-RecDescent          noarch
 perl-Pod-Coverage              noarch
 perl-Regexp-Grammars           noarch
 perl-Role-Tiny                 noarch
 perl-SVG                       noarch
 perl-Test-Pod                  noarch
 perl-Test-Pod-Coverage         noarch
 perl-Test-Simple               noarch
 perl-UUID-Tiny                 noarch   myrepo
 perl-Wx                        x86_64
 perl-XML-Twig                  noarch
 perl-boolean                   noarch
 perl-constant-defer            noarch   myrepo
 perl-libintl                   x86_64
 perl-parent                    noarch
 perl-strictures                noarch

Lines with myrepo are made by me, you can see specs here:
https://github.com/hroncok/SPECS/

As you can see, it installs 64bit required packages from officail
repositories, but it installs 32bit packages from mine (64bit packages
also exists, that's not the problem).

It installs slic3r, but it won't work, as it looks up its't arch
specific modules in 64bit directories.

If I manually run
yum install perl-Boost-Geometry-Utils perl-Math-Clipper
perl-Math-Factor-XS perl-Math-Geometry-Voronoi perl-Math-Prime-XS
slic3r

It works as expected (install 64bit packages).

What should I as a packager do, to avoid this situation?

Thank you very much.

Miro Hrončok

Jabber: miro at hroncok.cz
Telefon: +420777974800


More information about the devel mailing list