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

Zoltan Varga vargaz at gmail.com
Sat Nov 29 12:03:39 EST 2008


Hi,

  I have no idea whenever $(prefix)/lib or $(libdir) is the correct
approach, but the assemblies
shipped with mono _are_ platform independent, whenever they are
'built' using a JIT or
not. For proof, they can be copied to any other architecture supported
by mono, like arm
or itanium, or even windows, and they will run just fine there.

                             Zoltan

On Sat, Nov 29, 2008 at 3:21 PM, Paul <paul at all-the-johnsons.co.uk> wrote:
> Hi,
>
> 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.
>
> TTFN
>
> Paul
> (long time mono user and mono packager for Fedora)
> --
> Sie können mich aufreizen und wirklich heiß machen!
>
> _______________________________________________
> mono-packagers-list mailing list
> mono-packagers-list at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-packagers-list
>
>


More information about the mono-packagers-list mailing list