Skip to content

Commit

Permalink
Sync with latest Wiki changes
Browse files Browse the repository at this point in the history
  • Loading branch information
akoeplinger committed Aug 8, 2014
1 parent 73dea6a commit f1ab650
Show file tree
Hide file tree
Showing 3 changed files with 114 additions and 6 deletions.
7 changes: 2 additions & 5 deletions docs/advanced/runtime/docs/thread-safety.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,10 +63,8 @@ Our locking hierarchy so far looks like this:
<LOADER LOCK>
\
<DOMAIN LOCK>
\
<DOMAIN JIT LOCK>
\ \
<SIMPLE LOCK 1> <SIMPLE LOCK 2>
\ \ \
<DOMAIN JIT LOCK> <SIMPLE LOCK 1> <SIMPLE LOCK 2>

### Notes

Expand Down Expand Up @@ -126,4 +124,3 @@ To enable lock tracer support define LOCK\_TRACER in mono/mono/metadata/lock-tra
The lock tracer produces a file in the same directory of the application, it's named 'lock.ZZZ' where ZZZ is the pid of the mono process.

After producing such lock file, run the trace decoder that can be found in mono/data/lock-decoder. It currently only works on linux and OSX, it requires binutils to be installed. The decoder will report locking errors specifying the functions that caused it.

104 changes: 104 additions & 0 deletions docs/getting-started/install/linux/ci-packages.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
---
title: Continuous Integration packages
---

The Mono Project hosts a [public Jenkins instance](http://jenkins.mono-project.com/), which attempts to compile distribution packages for major GNU/Linux distributions for every commit made to the public Mono git repository on [GitHub](https://github.com/mono/mono).

Requirements
------------

We are building our packages twice, in the most cross-release-compatible way we can manage.

For **Debian-derived** distributions (any distribution which uses .deb files), you need the **GNU C library 2.13** or above - this should cover Debian 7+, Ubuntu 11.04+, Mint 11+, Elementary 0.2+, and a huge number of other distributions.

For **Red Hat-derived** distributions (any distribution which uses .rpm files), you need the **GNU C library 2.17** or above - this should cover CentOS 7+, Mageia 3+, Fedora 19+, openSUSE 12.3+, and a huge number of other distributions.

Installation
------------

Regardless of your distribution, you will need the Mono Project public Jenkins GPG signing key, which package managers require:

[http://jenkins.mono-project.com/repo/xamarin.gpg](http://jenkins.mono-project.com/repo/xamarin.gpg)

### Debian, Ubuntu, and derivatives

Add the GPG key in a root shell with:

**`apt-key add xamarin.gpg`**

Next, add the package repository in a root shell:

**`echo "deb http://jenkins.mono-project.com/repo/debian sid main" > /etc/apt/sources.list.d/mono-jenkins.list`**

Update your package cache if necessary.

### CentOS, Fedora, and derivatives

Add the GPG key in a root shell with:

**`rpm --import xamarin.gpg`**

Next, add the package repository in a root shell:

**`yum-config-manager --add-repo http://jenkins.mono-project.com/repo/centos/`**

Update your package cache if necessary.

Usage
-----

Search your package manager for **mono-snapshot** to find a number of possible packages to install:

[directhex@centossy ~]$ yum search mono-snapshot
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirror.econdc.com
* extras: mirrors.clouvider.net
* updates: mirrors.clouvider.net
========================== N/S matched: mono-snapshot ==========================
mono-snapshot-20140807112602.x86_64 : Mono runtime snapshot - runtime (git
 : commit 76c34a1)
mono-snapshot-20140807112602-assemblies.noarch : Mono runtime snapshot -
 : assemblies (git commit 76c34a1)
mono-snapshot-20140807155904.x86_64 : Mono runtime snapshot - runtime (git
 : commit 766e8c3)
mono-snapshot-20140807155904-assemblies.noarch : Mono runtime snapshot -
 : assemblies (git commit 766e8c3)
mono-snapshot-common.noarch : Common helper tools for Mono snapshot packages
mono-snapshot-latest.noarch : Mono runtime snapshot - latest version metapackage

Name and summary matches only, use "search all" for everything.

Install the **mono-snapshot-XXXXXXXXX** package for a specific version, or **mono-snapshot-latest** to install whatever the latest available version is. With **mono-snapshot-latest**, your package manager will keep updating you to the latest available version whenever it runs.

Whenever you install any snapshot package, the **`mono-snapshot`** utility will be installed alongside it. Run **`mono-snapshot`** to see which snapshot packages are available and installed:

[directhex@centossy ~]$ mono-snapshot
This script will help you to set up your environment to use a
snapshot package of Mono. To use it, run:

. mono-snapshot APP/VER

You have the following possible combinations of APP/VER:

mono/20140807112602
mono/20140807155904

Calling APP without specifying VER will load the latest version

You can then configure your environment to use the desired version by calling **`. mono-snapshot APP/VER`** - for example, **`. mono-snapshot mono/20140807112602`** (or simply **`. mono-snapshot mono`**). Please note the leading "**`. `**":

[directhex@centossy ~]$ . mono-snapshot mono
[mono-20140807155904][directhex@centossy ~]$ mono --version
Mono JIT compiler version 3.8.1 (tarball Fri Aug 8 05:39:07 EDT 2014)
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
TLS: __thread
SIGSEGV: altstack
Notifications: epoll
Architecture: amd64
Disabled: none
Misc: softdebug
LLVM: supported, not enabled.
GC: sgen

Note: On Debian-based distributions, any distribution-provided Mono libraries (such as GTK\#) are automatically installed into your mono-snapshot GAC and are available for use. This is not automatic on Red Hat-based distributions.
9 changes: 8 additions & 1 deletion download/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -35,14 +35,21 @@ <h4>Mono for Linux is available for various distributions</h4>
<p>Please refer to the <a href="{{ site.github.url }}/docs/getting-started/install/linux">installation guide</a> for more information about how to install and configure your Mono environment.</p>
<h5>Xamarin packages</h5>
<p>
<span>These packages are built, tested and distributed by Xamarin.</span>
<span>These packages are built, tested and distributed by Xamarin. Use these if you want to use a stable, official version of Mono.</span>
<ul>
<li><a href="{{ site.github.url }}/docs/getting-started/install/linux/debian/">Debian</a></li>
<li><a href="{{ site.github.url }}/docs/getting-started/install/linux/ubuntu/">Ubuntu</a></li>
<li><a href="{{ site.github.url }}/docs/getting-started/install/linux/centos/">CentOS</a></li>
<li><a href="{{ site.github.url }}/docs/getting-started/install/linux/opensuse/">OpenSUSE</a></li>
</ul>
</p>
<h5>Continuous Integration packages</h5>
<p>
<span>Every commit to our repository automatically builds distribution packages. Use these if you want the bleeding edge Mono version and don't care about stability.</span>
<div>
<a href="{{ site.github.url }}/docs/getting-started/install/linux/ci-packages/"><i class="fa fa-book"></i> Learn more</a>
</div>
</p>
<h5>Community packages</h5>
<p>
<span>These packages are provided by the community and linked here for your convenience. They are not tested by Xamarin, so use them at your own risk.</span>
Expand Down

0 comments on commit f1ab650

Please sign in to comment.