pmsmall / wine-mono

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Wine Mono is a package containing Mono and other projects, intended as a replacement for the .NET runtime and class libraries in Wine. It works in conjunction with Wine's builtin mscoree.dll, and it is not intended to be useful for any other purpose.


SOURCE CODE

To obtain the source code, clone it from github:

$ git clone --recursive git://github.com/madewokherd/wine-mono.git

To get to the source code for a specific release, check out the appropriate tag, and update the submodules:

$ git checkout wine-mono-0.0.2
$ git submodule update --recursive

Source tarballs and binary packages are available at http://dl.winehq.org/wine/wine-mono/


DEPENDENCIES

To build Wine Mono, you will need the following:
 * All of the dependencies of Mono for your native (presumably Linux) system, such as autotools, a C++ compiler, and a C# compiler (so that Mono ban bootstrap its own).
 * Wine, for the winemsibuilder and cabarc commands.
 * A 32-bit and 64-bit version of Mingw-w64, including a C++ compiler.


BUILD

To build Wine Mono, run the build-winemono.sh script on Linux.

$ ./build-winemono.sh

This will reconfigure and rebuild Mono every time unless the -r switch is passed.

You can set the MAKEOPTS environment variable to use multiple CPUs for some of the build process.

If you supply the -t switch, the Mono test suite will be built and put in directories named like tests-net_*. These directories should be self-contained and work on any .NET implementation, using nunit-console.exe to run the tests. I'm not sure that all of it works, though, since the Mono test suite wasn't designed to be used this way.

Optionally, a build VM can be automatically set up using the Vagrantfile included with the source distribution. To start the VM, run:

$ vagrant up
$ vagrant ssh

You can then cd to /vagrant and use the build-winemono.sh script from there.

Note that the source code will be rsynced into the VM when it is first created. If you edit the source code on the host, you can update the VM by running:

$ vagrant rsync

Or, to have vagrant watch for changes:

$ vagrant rsync-auto


INSTALL

To install Wine Mono, run the generated msi file with msiexec:

$ wine64 msiexec /i winemono.msi

Note that if a Wine Mono with a version number >= to this file is already installed, that command will do nothing, so you may have to remove the existing version (using 'wine64 uninstaller') first.

In a 32-bit prefix, use wine instead of wine64.

If you are making only a few changes that you need to test, it may be more convenient to copy the individual files from the image/ directory to .wine/drive_c/windows/mono/mono-2.0.


COMPOSITION

An installed Wine Mono contains the following:
 * Registry keys and files in C:\windows\Microsoft.NET intended to make it look as if Microsoft .NET is installed, so that applications won't complain that it's missing, and the installers for Microsoft .NET won't install. (Wine Mono should always be removed before installing Microsoft .NET.)
 * A modified version of the Mono runtime and standard class libraries, in C:\windows\mono\mono-2.0.
 * A replacement for the Visual Basic calss libraries, in the Mono GAC (C:\windows\mono\mono-2.0\lib\mono\gac).


BUGS

Bugs involving the use of this package to run Windows programs in Wine should be filed in the Wine bugzilla (http://bugs.winehq.org/) with product set to "Wine" and component set to "mscoree". Bugs in Wine Mono's build system or packaging can also be filed in Wine's bugzilla, or they can be filed as an issue on the wine-mono github.


PATCHES

Patches should be sent as a pull request to https://github.com/madewokherd/wine-mono or the appropriate submodule.

Before sending a patch for one of Wine Mono's forks, please consider whether it would be more appropriate to send to the upstream project. We'd like to keep the diff from upstream to a minimum, so the changes should either be appropriate for Wine but inappropriate for upstream for some reason, or sufficiently important to bypass the upstream project.


About

License:Other


Languages

Language:Shell 89.8%Language:C# 10.2%