[Pkg-mono-devel] Nemerle

Eduard Bloch edi@gmx.de
Tue, 3 Feb 2004 00:02:54 +0100


#include <hallo.h>
* rzyjontko [Mon, Feb 02 2004, 08:05:29PM]:

>  - After installing nemerle compiler under /usr/local I have to set
>    MONO_PATH so that it can find Nemerle.dll in /usr/local/lib
>    I suppose it's because mono has everything installed under /usr,
>    and searches for libraries in /usr, and nowhere else.

That is correct. Mono currently has (IMHO) no sane system for search in
the library path. There is no concurent version concept (to have
multiple incompatible versions of some DLL), and there is no good way to
tell the compiler/mono where your libs are (except of setting MONO_PATH
which is a crude method).

Correct me if I am wrong. Miguel has a different opinion but I guess he
never tried to create distributable _and_ stable packages from the
stuff.

>  - I'd like to create a debian package for nemerle compiler.  Are
>    there any documents (like policy draft) somewhere?

Not really. The few things we have declared as de-facto policy are:

 - depend on cli-virtual-machine to get the interpreter (called via
   /usr/bin/cli which itself is a symlink to the best VM, configured by
   update-alternatives)
 - depend on mono-assemblies-arch if you use System.Drawing (this is a
   provisoric solution)
 - depend on "mono-mcs | c-sharp-compiler" to get the compiler. 
   There is, however, no c-sharp-compiler alternative yet. 
   
   // FIXME: Do we need it? ;)

Further, please provide a shell wrapper for your .exe file. I wrote a
binary wrapper which will be in the next mono package and call
/usr/bin/foo.exe if you make a symlink from the wrapper to /usr/bin/foo
and call it.

>  - All dll files are placed in /usr/lib.  Doesn't it violate policy,
>    and FHS?  These files are architecture independent, and thus should
>    be placed in /usr/share/mono.

Theoreticaly, yes. But we are in trouble, the policy also says:

9.9 Environment variables

A program must not depend on environment variables to get reasonable defaults. (That's because these environment variables would have to be set in a system-wide configuration file like /etc/profile, which is not supported by all shells.)

and we cannot fix it right now. Maybe with the MONO_PATh workaround
using wrappers for every application, but it really sucks, since people
will complain that they cannot run their self-compiled mono applications
or by calling them as .exe.

Regards,
Eduard.
-- 
Hallo Zähneputzer!