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

Paul paul at all-the-johnsons.co.uk
Sat Nov 29 09:21:10 EST 2008


I know this argument has been going on for a while, but I feel it's now
something that really needs to be resolved across all of the mono stack
(and dependencies).

Many many moons ago, Miguel said that as CIL is completely agnostic as
to what it is on, that everything mono related should really be
in /usr/share. Noises were made, but nothing really much happened. There
is logic in using /usr/share, but nothing completely overwhelming.

There is then the argument that all mono packages should be .noarch.
This really is a non-starter, I'll explain below.

The current situation is that by default, mono is installed to
$(prefix)/lib with scripts from $(prefix)/bin pointing to the CIL
binaries or libraries. The only problem is that if you're compiling
using JIT, then binaries (and libraries) are targetting a particular
architecture (albeit x86, PPC, PPC64, x86_64 or any other processor
type) and are therefore incorrectly polluting the /usr/lib directory
which on non-x86 platforms is there for *purely* 32 bit libs.

This means that for mono to be correctly packaged for non-x86 platforms,
all of the makefiles, .pc files and anything else like that has to
patched to use $(libdir) rather than $(prefix)/lib. Okay, it probably
doesn't seem like much, but given the size of mono (and associated
packages), patching becomes a major ball ache!

While I understand that not every distro builds the JIT compiler, using
$(libdir) would mean that for the sake of argument, files are correctly
installed to the correct libdir. I also don't know how Windows is
handled with respect to this.

Using JIT also makes anything built using it a non-noarch package.

There is the flipside in that there is currently no fixed guideline of
where to place files for mono. Some mono packages use $(libdir) in the
makefiles (mono-basic is an example of this), some mix and match (makes
a bloody awful mess of things) and some just use $(prefix)/lib.

I have a whole raft of patches available if we go over to $(libdir) - I
mean lots of them, probably coming up to 100k worth, but we certainly
need to get this sorted as it's starting to get ridiculous.


(long time mono user and mono packager for Fedora)
Sie können mich aufreizen und wirklich heiß machen!
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: This is a digitally signed message part
Url : http://lists.ximian.com/pipermail/mono-packagers-list/attachments/20081129/7fed16de/attachment.bin 

More information about the mono-packagers-list mailing list