[mono-packagers] The $(prefix)/usr vs $(libdir) argument

Jonathan Pryor jonpryor at vt.edu
Mon Dec 1 15:55:26 EST 2008

On Sat, 2008-11-29 at 19:49 +0000, Paul wrote:
> Assuming a 32 bit system, binaries /usr/bin, libs /usr/lib
>            64 bit                  /usr/bin,      /usr/lib64
> On a 64 bit system if a library comes from a vendor who has only
> provided a 32 bit binary with a lib or a binary which requires a 32 bit
> lib, then /usr/lib is used.
> It's a carte blanche approach for everything.

Yes, but it doesn't quite answer the question;

1. On a 64-bit platform, can you install *both* 32-bit and 64-bit
versions of Perl/Python/etc.?

2. If (1) is true, how is this done?

On openSUSE, (1) is true, and the 64-bit `perl` package contains both
platform-independent files (e.g. /usr/lib/perl5/5.10.0/CGI.pm) AND
platform-specific files
(e.g. /usr/lib/perl5/5.10.0/x86_64-linux-thread-multi/auto/B/B.so).

Meanwhile, the 32-bit `perl-32bit` package contains *just* the .so files
for 32-bit use,
e.g. /usr/lib/perl5/5.10.0/i586-linux-thread-multi/auto/B/B.so.

Oddly, there isn't a /usr/bin/perl32 program in there, so I have no idea
how to _use_ these 32-bit Perl libraries, but the point remains that
this is partially how openSUSE handles the dual-architecture question.

Python is ~identical to Perl -- the "main" `python` package includes
both source & platform-compiled versions of Python packages, while the
`python-32bit` package contains *only* shared libraries for 32-bit use
and NOT the source files.  (Doubly oddly, Python places .py files
under /usr/lib64 while Perl places .pm files under /usr/lib, and (again)
there isn't a python32 app to actually use these 32-bit libraries, but
the pattern for bi-arch support is fairly evident here.)

So how does Fedora support bi-arch platforms?

 - Jon

More information about the mono-packagers-list mailing list