Ok, after alot more digging and experimenting, there is a ton of work to make this like the Java implementation, which, I still think is the 'correct' answer, but it's going to have to be the longer term answer. I don't think we can get it all done between now and the next release without more time and resource than I can dedicate to it.

Here is what I would propose:

Phase I:

A .pkg installer that installs Mono and Mcs to /usr/local/, with a detailed description on how to properly set up the environment to use /usr/local/bin. This package would use glib statically linked, to avoid the need to also deploy glib to the users machine.

Seperate .pkg installers would also be made available for XSP, MOD_MONO, GTK# and any other optional elements of Mono.

Phase II:

A process to automatically build the Mono and Mcs into a standalone MonoVM.Framework that installs to /Library/ with an installer (.pkg) that aliases the core commands, mono, mint, mcs, and the others to /usr/bin. I know that Apple reserves the right to the /usr/bin directory, but from an Apple 'it just works' perspective, it is the only place to put them.


With Phase II, it would be feasable to ship .app bundles that uses an exectuable that calls the /usr/bin/mono framework and launches just like any other OS X application. Ultimately, this opens the door for Mono to provide the same level of application parity as Java, Cocoa (Objective C), or Carbon (C/C++).

The problem with the second is that as far as I can tell, it would require XCode projects to build the framework, and all the associated dylibs. creating that project is going to be time consuming, and it will require updating to be kept in sync with the ./configure & make process.

I've got most of Phase I complete at this point, I'm doing some testing now, and should have a working deliverable in the next few days. Once that is completed, I'll begin the long and arduous process of doing Phase II.

Andy Satori

On Feb 25, 2004, at 9:22 AM, Urs Muff wrote:

This is great! Please publish the Xcode projects and scripts you use to
make the package and framework so others can build it from CVS. Miguel or
myself will check them into CVS in case you don't have access.

- Urs

-----Original Message-----
From: Andy Satori [mailto:[EMAIL PROTECTED]
Sent: Wednesday, February 25, 2004 7:21 AM
To: Urs Muff
Cc: 'Miguel de Icaza'; [EMAIL PROTECTED]
Subject: Re: [Mono-list] MacOS packages.

Urs is correct, after some more digging, it's the 'way' to go.  it's
going to take me a couple of days to cleanup my own system to get all
this built and tested (wish I had another machine for this...  oh
well).

I've got the packages and base installer's built, I just need to run
through and tweak them into frameworks.  This will also make them much
easier to install and manage in the future.

Andy

On Feb 25, 2004, at 8:21 AM, Urs Muff wrote:

If you actually look at /usr/bin/javac, /usr/bin/java, those are soft
links
to
/System/Library/Framework/JavaVM.Framework/Version/1.4.2/Command/java.

--> We only have to create soft links for stuff main executables, but
not
necessary the .exe assemblies since those are just .Net assemblies
unless we
have some .exe Mono launcher in /etc/... as discussed many times on
this
list.

As for the version: that is the framework version not the assembly
version.
The GAC is fine and no problem, but Apple is talking about the
executables
(mono,mint) dynamic libraries (libmono.dylib, ...) and the C-headers,
and
that has a standard folder structure.

- URS C. MUFF

-----Original Message-----
From: Miguel de Icaza [mailto:[EMAIL PROTECTED]
Sent: Tuesday, February 24, 2004 7:43 PM
To: Urs C Muff
Cc: Andy Satori; [EMAIL PROTECTED]
Subject: Re: [Mono-list] MacOS packages.

Hello,

Well actually I agree that the shell scripts 'mono' and 'mcs' might
live in /usr/bin, but I would create a Framework and put it in
/System/Library/Frameworks/MonoVM.Framework the same way as
/System/Library/Frameworks/JavaVM.Framework is placed (look at the
folder structure within the framework to see how Apple is structuring
such a beast).

But the .Net assemblies should live in
/System/Library/Frameworks/MonoVM.Framework/Versions/0.30/Assemblies
where there is a link pointing there @
/System/Library/Frameworks/MonoVM.Framework/Assemblies.

That would conform with Apple's standard much better: I don't know how
we would have to build mono to include those in the assembly load
path...

I think you just build mono with a prefix of:

/System/Library/Frameworks/MonoVM.Framework

And just copy anything that is installed in the bin/ subdirectory to
/usr/bin.

As for the versioning: we will be taking care of library versions in a
different way (the GAC approach)


Attachment: smime.p7s
Description: S/MIME cryptographic signature



Reply via email to