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

Paul Howarth paul at city-fan.org
Wed Oct 31 19:44:51 UTC 2012


On Wed, 31 Oct 2012 16:26:46 +0100
Miro HronĨok <miro at hroncok.cz> wrote:

> 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.


I think this is down to having both i686 and x86_64 perl module
packages in your own repo; I don't think Fedora multilibs perl modules.

Paul.


More information about the devel mailing list