summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin H. Johnson <robbat2@gentoo.org>2015-08-08 13:49:04 -0700
committerRobin H. Johnson <robbat2@gentoo.org>2015-08-08 17:38:18 -0700
commit56bd759df1d0c750a065b8c845e93d5dfa6b549d (patch)
tree3f91093cdb475e565ae857f1c5a7fd339e2d781e /dev-lang/mono
downloadgentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.gz
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.bz2
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.zip
proj/gentoo: Initial commit
This commit represents a new era for Gentoo: Storing the gentoo-x86 tree in Git, as converted from CVS. This commit is the start of the NEW history. Any historical data is intended to be grafted onto this point. Creation process: 1. Take final CVS checkout snapshot 2. Remove ALL ChangeLog* files 3. Transform all Manifests to thin 4. Remove empty Manifests 5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$ 5.1. Do not touch files with -kb/-ko keyword flags. Signed-off-by: Robin H. Johnson <robbat2@gentoo.org> X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration tests X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this project X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo developer, wrote Git features for the migration X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve cvs2svn X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014 work in migration X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed
Diffstat (limited to 'dev-lang/mono')
-rw-r--r--dev-lang/mono/Manifest5
-rw-r--r--dev-lang/mono/files/mono-2.10.1-ppc-len.patch13
-rw-r--r--dev-lang/mono/files/mono-2.10.2-threads-access.patch40
-rw-r--r--dev-lang/mono/files/mono-2.10.9-CVE-2012-3382.patch13
-rw-r--r--dev-lang/mono/files/mono-2.10.9-CVE-2012-3543.patch196
-rw-r--r--dev-lang/mono/files/mono-2.10.9-CVE-2012-3543_2.patch34
-rw-r--r--dev-lang/mono/files/mono-3.2.8-disable-missing-test.patch7
-rw-r--r--dev-lang/mono/metadata.xml9
-rw-r--r--dev-lang/mono/mono-2.10.9-r2.ebuild265
-rw-r--r--dev-lang/mono/mono-3.0.7.ebuild100
-rw-r--r--dev-lang/mono/mono-3.12.1.ebuild117
-rw-r--r--dev-lang/mono/mono-3.2.3.ebuild119
-rw-r--r--dev-lang/mono/mono-3.2.8.ebuild123
13 files changed, 1041 insertions, 0 deletions
diff --git a/dev-lang/mono/Manifest b/dev-lang/mono/Manifest
new file mode 100644
index 000000000000..89fd30f3002c
--- /dev/null
+++ b/dev-lang/mono/Manifest
@@ -0,0 +1,5 @@
+DIST mono-2.10.9.tar.bz2 34038017 SHA256 541038cd4edd4a1c485638d49697d45015ef7483bcb21bb6165e4d7eb770c9a5 SHA512 426881873e7f9aaf01e1306bed7b3ac220082ca40dce91fa4f4f331944e8d91453b3cdcc4918882ab039ed694ae8819eeb787edf6a2ad42cc661614076725c01 WHIRLPOOL 93f54fbbf032fb60467fd4317630588d349c3dfb50158bad478bd3e2650fd3e8f12d45be372873b57626d4ac48f798646c3650590bbf731dc2f005ee618b8548
+DIST mono-3.0.7.tar.bz2 81538605 SHA256 89357e58a1b5cb6ff3116d4ce8227dee61b1c0cb494fa2844da5b1fc55fb890b SHA512 b1cb57a38c22d9186fcc1cfbd344e05e24edc5d56391238311ac6b2841a4f971a32f46c3e064760045e8352140a7c4fe785a6108d945371af9de3730e186fbdd WHIRLPOOL 19f451194361d0f0fa3c403310c63cd2f444a2132693fc4b127311a57d0a1df18f917d4c373b8f8f9fbf217d5c6d85f3092ac75d6aede285ed80d3bb2b07f758
+DIST mono-3.12.1.tar.bz2 73487974 SHA256 5d8cf153af2948c06bc9fbf5088f6834868e4db8e5f41c7cff76da173732b60d SHA512 7ff87d95c347186347dc7a9ffb767112717de2b808f8f1b612c56c9eb70fdcc0c8f586989be44444509a2768e71854d8195567196c992cc2c5b184ecbe5ac190 WHIRLPOOL fe3a6cdb8bf4602ad1d1e43099b2a552005c315a232a7d2bddf0081a68e882228712af5301f18d3a890f454041c4a34d6f0926aaba34401ecfa702eecd9415c8
+DIST mono-3.2.3.tar.bz2 81810387 SHA256 b8c2f97d6a5232dbf5a8180e5c38d4722b81af748893649d7d9e82c5cf8ef41a SHA512 a40a03d09ce07d7f8c25ef872835f6f29458e02aa386e4097b2cffd918d3bece1205bb42beb51a1384eba884e4c6f9b6505421babf337ec64f670c7f90c6262d WHIRLPOOL 9781dd387ce57a54ae84c91b6bfc346c4607daa3738746db0f41515dfc6c0b271b6e7d2ec828f75dc6953d15fd965cd3ef1d88fe5925c6dc8019cc9d188d6982
+DIST mono-3.2.8.tar.bz2 77515552 SHA256 fdb48cad26149288dcb99a3d9b4ec89735706000242c50bdc21ce657af201a40 SHA512 822e9064b7f5897f960e3fbe9de5db31ac1825ecb6edb2b5b49d92fc658fe3ac2580458ecb26b6da7b6135e86a39d7376b8c0eb52d8c3298292a4dae7983f329 WHIRLPOOL 21e22fe0204ae9263f10fa5379d7c884519bb5cddf6f780f5ba6615db25954b1ea8ef1746ee8db738f7d461e93626656525da5cc6221061e8a53bdd0d0c5f62c
diff --git a/dev-lang/mono/files/mono-2.10.1-ppc-len.patch b/dev-lang/mono/files/mono-2.10.1-ppc-len.patch
new file mode 100644
index 000000000000..6cfd0882d03a
--- /dev/null
+++ b/dev-lang/mono/files/mono-2.10.1-ppc-len.patch
@@ -0,0 +1,13 @@
+diff --git a/mono/mini/cpu-ppc.md b/mono/mini/cpu-ppc.md
+index a9f679f..f21320c 100644
+--- a/mono/mini/cpu-ppc.md
++++ b/mono/mini/cpu-ppc.md
+@@ -48,7 +48,7 @@
+ memory_barrier: len:4
+ nop: len:4
+ relaxed_nop: len:4
+-break: len:4
++break: len:32
+ seq_point: len:24
+ jmp: len:108
+ tailcall: len:120 clob:c
diff --git a/dev-lang/mono/files/mono-2.10.2-threads-access.patch b/dev-lang/mono/files/mono-2.10.2-threads-access.patch
new file mode 100644
index 000000000000..d677b0113e2d
--- /dev/null
+++ b/dev-lang/mono/files/mono-2.10.2-threads-access.patch
@@ -0,0 +1,40 @@
+From 722f9890f09aadfc37ae479e7d946d5fc5ef7b91 Mon Sep 17 00:00:00 2001
+From: Sebastien Pouliot <sebastien@ximian.com>
+Date: Wed, 6 Apr 2011 13:24:31 -0400
+Subject: [PATCH] Fix access to freed members of a dead thread
+
+* threads.c: Fix access to freed members of a dead thread. Found
+and fixed by Rodrigo Kumpera <rkumpera@novell.com>
+Ref: CVE-2011-0992
+---
+ mono/metadata/threads.c | 11 ++++++++---
+ 1 files changed, 8 insertions(+), 3 deletions(-)
+
+diff --git a/mono/metadata/threads.c b/mono/metadata/threads.c
+index 3fe4e93..a7a721d 100644
+--- a/mono/metadata/threads.c
++++ b/mono/metadata/threads.c
+@@ -1036,12 +1036,17 @@ void ves_icall_System_Threading_InternalThread_Thread_free_internal (MonoInterna
+ CloseHandle (thread);
+
+ if (this->synch_cs) {
+- DeleteCriticalSection (this->synch_cs);
+- g_free (this->synch_cs);
++ CRITICAL_SECTION *synch_cs = this->synch_cs;
+ this->synch_cs = NULL;
++ DeleteCriticalSection (synch_cs);
++ g_free (synch_cs);
+ }
+
+- g_free (this->name);
++ if (this->name) {
++ void *name = this->name;
++ this->name = NULL;
++ g_free (name);
++ }
+ }
+
+ static void mono_thread_start (MonoThread *thread)
+--
+1.7.5.4
+
diff --git a/dev-lang/mono/files/mono-2.10.9-CVE-2012-3382.patch b/dev-lang/mono/files/mono-2.10.9-CVE-2012-3382.patch
new file mode 100644
index 000000000000..434adf283d99
--- /dev/null
+++ b/dev-lang/mono/files/mono-2.10.9-CVE-2012-3382.patch
@@ -0,0 +1,13 @@
+diff --git a/mcs/class/System.Web/System.Web/HttpForbiddenHandler.cs b/mcs/class/System.Web/System.Web/HttpForbiddenHandler.cs
+index af5ddf4..7e87d48 100644
+--- a/mcs/class/System.Web/System.Web/HttpForbiddenHandler.cs
++++ b/mcs/class/System.Web/System.Web/HttpForbiddenHandler.cs
+@@ -42,7 +42,7 @@ public void ProcessRequest (HttpContext context)
+
+ throw new HttpException (403,
+ "This type of page is not served.",
+- req != null ? req.Path : null,
++ req != null ? HttpUtility.HtmlEncode (req.Path) : null,
+ description);
+ }
+
diff --git a/dev-lang/mono/files/mono-2.10.9-CVE-2012-3543.patch b/dev-lang/mono/files/mono-2.10.9-CVE-2012-3543.patch
new file mode 100644
index 000000000000..307e10fb3ee6
--- /dev/null
+++ b/dev-lang/mono/files/mono-2.10.9-CVE-2012-3543.patch
@@ -0,0 +1,196 @@
+From 04245de5c480db5dff5983467f7a8606f1321ed6 Mon Sep 17 00:00:00 2001
+From: Marek Habersack <grendel@twistedcode.net>
+Date: Tue, 24 Jul 2012 18:49:34 -0400
+Subject: [PATCH] Fix for Novell bug #739119
+
+---
+ .../System.Web.Util/SecureHashCodeProvider.cs | 131 ++++++++++++++++++++
+ mcs/class/System.Web/System.Web.dll.sources | 1 +
+ mcs/class/System.Web/System.Web/WebROCollection.cs | 5 +-
+ 3 files changed, 136 insertions(+), 1 deletion(-)
+ create mode 100644 mcs/class/System.Web/System.Web.Util/SecureHashCodeProvider.cs
+
+diff --git a/mcs/class/System.Web/System.Web.Util/SecureHashCodeProvider.cs b/mcs/class/System.Web/System.Web.Util/SecureHashCodeProvider.cs
+new file mode 100644
+index 0000000..165022c
+--- /dev/null
++++ b/mcs/class/System.Web/System.Web.Util/SecureHashCodeProvider.cs
+@@ -0,0 +1,131 @@
++//
++// System.Collections.SecureHashCodeProvider.cs
++//
++// Authors:
++// Sergey Chaban (serge@wildwestsoftware.com)
++// Andreas Nahr (ClassDevelopment@A-SoftTech.com)
++// Sebastien Pouliot <sebastien@ximian.com>
++//
++// Copyright (C) 2004-2005 Novell, Inc (http://www.novell.com)
++// Copyright 2012 Xamarin, Inc (http://xamarin.com)
++//
++// Permission is hereby granted, free of charge, to any person obtaining
++// a copy of this software and associated documentation files (the
++// "Software"), to deal in the Software without restriction, including
++// without limitation the rights to use, copy, modify, merge, publish,
++// distribute, sublicense, and/or sell copies of the Software, and to
++// permit persons to whom the Software is furnished to do so, subject to
++// the following conditions:
++//
++// The above copyright notice and this permission notice shall be
++// included in all copies or substantial portions of the Software.
++//
++// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
++// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
++// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
++// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
++// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
++// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
++// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
++//
++using System;
++using System.Collections;
++using System.Globalization;
++
++namespace System.Web.Util
++{
++ class SecureHashCodeProvider : IHashCodeProvider
++ {
++ static readonly SecureHashCodeProvider singletonInvariant = new SecureHashCodeProvider (CultureInfo.InvariantCulture);
++ static SecureHashCodeProvider singleton;
++ static readonly object sync = new object ();
++ static readonly int seed;
++
++ TextInfo m_text; // must match MS name for serialization
++
++ public static SecureHashCodeProvider Default {
++ get {
++ lock (sync) {
++ if (singleton == null) {
++ singleton = new SecureHashCodeProvider ();
++ } else if (singleton.m_text == null) {
++ if (!AreEqual (CultureInfo.CurrentCulture, CultureInfo.InvariantCulture))
++ singleton = new SecureHashCodeProvider ();
++ } else if (!AreEqual (singleton.m_text, CultureInfo.CurrentCulture)) {
++ singleton = new SecureHashCodeProvider ();
++ }
++ return singleton;
++ }
++ }
++ }
++
++ public static SecureHashCodeProvider DefaultInvariant {
++ get { return singletonInvariant; }
++ }
++
++ static SecureHashCodeProvider ()
++ {
++ // It should be enough to fend off the attack described in
++ // https://bugzilla.novell.com/show_bug.cgi?id=739119
++ // In order to predict value of the seed, the attacker would have to know the exact time when
++ // the server process started and since it's a remote attack, this is next to impossible.
++ // Using milliseconds instead of ticks here would make it easier for the attackers since there
++ // would only be as many as 1000 possible values
++ seed = (int)DateTime.UtcNow.Ticks;
++ }
++
++ // Public instance constructor
++ public SecureHashCodeProvider ()
++ {
++ CultureInfo culture = CultureInfo.CurrentCulture;
++ if (!AreEqual (culture, CultureInfo.InvariantCulture))
++ m_text = CultureInfo.CurrentCulture.TextInfo;
++ }
++
++ public SecureHashCodeProvider (CultureInfo culture)
++ {
++ if (culture == null)
++ throw new ArgumentNullException ("culture");
++ if (!AreEqual (culture, CultureInfo.InvariantCulture))
++ m_text = culture.TextInfo;
++ }
++
++ static bool AreEqual (CultureInfo a, CultureInfo b)
++ {
++ return a.LCID == b.LCID;
++ }
++
++ static bool AreEqual (TextInfo info, CultureInfo culture)
++ {
++ return info.LCID == culture.LCID;
++ }
++
++ public int GetHashCode (object obj)
++ {
++ if (obj == null)
++ throw new ArgumentNullException ("obj");
++
++ string str = obj as string;
++
++ if (str == null)
++ return obj.GetHashCode ();
++
++ int h = seed;
++ char c;
++
++ if ((m_text != null) && !AreEqual (m_text, CultureInfo.InvariantCulture)) {
++ str = m_text.ToLower (str);
++ for (int i = 0; i < str.Length; i++) {
++ c = str [i];
++ h = h * 31 + c;
++ }
++ } else {
++ for (int i = 0; i < str.Length; i++) {
++ c = Char.ToLower (str [i], CultureInfo.InvariantCulture);
++ h = h * 31 + c;
++ }
++ }
++ return h;
++ }
++ }
++}
+diff --git a/mcs/class/System.Web/System.Web.dll.sources b/mcs/class/System.Web/System.Web.dll.sources
+index ca7745a..aa41fca 100644
+--- a/mcs/class/System.Web/System.Web.dll.sources
++++ b/mcs/class/System.Web/System.Web.dll.sources
+@@ -1174,6 +1174,7 @@ System.Web.Util/IWebPropertyAccessor.cs
+ System.Web.Util/MachineKeySectionUtils.cs
+ System.Web.Util/RuntimeHelpers.cs
+ System.Web.Util/SearchPattern.cs
++System.Web.Util/SecureHashCodeProvider.cs
+ System.Web.Util/SerializationHelper.cs
+ System.Web.Util/StrUtils.cs
+ System.Web.Util/TimeUtil.cs
+diff --git a/mcs/class/System.Web/System.Web/WebROCollection.cs b/mcs/class/System.Web/System.Web/WebROCollection.cs
+index ddb2e30..e1b98df 100644
+--- a/mcs/class/System.Web/System.Web/WebROCollection.cs
++++ b/mcs/class/System.Web/System.Web/WebROCollection.cs
+@@ -5,6 +5,7 @@
+ // Gonzalo Paniagua Javier (gonzalo@novell.com)
+ //
+ // (c) 2005-2009 Novell, Inc. (http://www.novell.com)
++// Copyright 2012 Xamarin, Inc (http://xamarin.com)
+ //
+ //
+ // Permission is hereby granted, free of charge, to any person obtaining
+@@ -26,8 +27,10 @@
+ // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ //
++using System.Collections;
+ using System.Collections.Specialized;
+ using System.Text;
++using System.Web.Util;
+
+ namespace System.Web
+ {
+@@ -36,7 +39,7 @@ class WebROCollection : NameValueCollection
+ bool got_id;
+ int id;
+
+- public WebROCollection () : base (StringComparer.OrdinalIgnoreCase) { }
++ public WebROCollection () : base (SecureHashCodeProvider.DefaultInvariant, CaseInsensitiveComparer.DefaultInvariant) { }
+ public bool GotID {
+ get { return got_id; }
+ }
+--
+1.7.10
+
diff --git a/dev-lang/mono/files/mono-2.10.9-CVE-2012-3543_2.patch b/dev-lang/mono/files/mono-2.10.9-CVE-2012-3543_2.patch
new file mode 100644
index 000000000000..6ab3e077b689
--- /dev/null
+++ b/dev-lang/mono/files/mono-2.10.9-CVE-2012-3543_2.patch
@@ -0,0 +1,34 @@
+From 049bb49f1c5b650166de2a266bc1879c5def0190 Mon Sep 17 00:00:00 2001
+From: Marek Habersack <grendel@twistedcode.net>
+Date: Wed, 25 Jul 2012 08:42:09 -0400
+Subject: [PATCH] Update to fix for Novell bug #739119
+
+---
+ mcs/class/System.Web/System.Web.UI/Page.cs | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/mcs/class/System.Web/System.Web.UI/Page.cs b/mcs/class/System.Web/System.Web.UI/Page.cs
+index 989af7e..b2316a4 100644
+--- a/mcs/class/System.Web/System.Web.UI/Page.cs
++++ b/mcs/class/System.Web/System.Web.UI/Page.cs
+@@ -1175,7 +1175,7 @@ internal void OnFormPostRender (HtmlTextWriter writer, string formUniqueID)
+
+ void ProcessPostData (NameValueCollection data, bool second)
+ {
+- NameValueCollection requestValues = _requestValueCollection == null ? new NameValueCollection () : _requestValueCollection;
++ NameValueCollection requestValues = _requestValueCollection == null ? new NameValueCollection (SecureHashCodeProvider.DefaultInvariant, CaseInsensitiveComparer.DefaultInvariant) : _requestValueCollection;
+
+ if (data != null && data.Count > 0) {
+ var used = new Dictionary <string, string> (StringComparer.Ordinal);
+@@ -1210,7 +1210,7 @@ void ProcessPostData (NameValueCollection data, bool second)
+
+ } else if (!second) {
+ if (secondPostData == null)
+- secondPostData = new NameValueCollection ();
++ secondPostData = new NameValueCollection (SecureHashCodeProvider.DefaultInvariant, CaseInsensitiveComparer.DefaultInvariant);
+ secondPostData.Add (id, data [id]);
+ }
+ }
+--
+1.7.10
+
diff --git a/dev-lang/mono/files/mono-3.2.8-disable-missing-test.patch b/dev-lang/mono/files/mono-3.2.8-disable-missing-test.patch
new file mode 100644
index 000000000000..79c2674a6598
--- /dev/null
+++ b/dev-lang/mono/files/mono-3.2.8-disable-missing-test.patch
@@ -0,0 +1,7 @@
+--- a/mcs/tests/Makefile
++++ b/mcs/tests/Makefile
+@@ -96,4 +96,3 @@
+ setup:
+ $(CSCOMPILE) -t:library dlls/test-679-2/test-679-lib-2.cs
+ $(CSCOMPILE) -t:library dlls/test-679-1/test-679-lib.cs -r:dlls/test-679-2/test-679-lib-2.dll
+- $(ILASM) -dll dlls/test-883.il
diff --git a/dev-lang/mono/metadata.xml b/dev-lang/mono/metadata.xml
new file mode 100644
index 000000000000..9529ca592b67
--- /dev/null
+++ b/dev-lang/mono/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>dotnet</herd>
+<use>
+ <flag name='pax_kernel'>Enable if the user plans to run the package under a pax enabled hardened kernel</flag>
+ <flag name='xen'>Make mono generate code that is considerably faster on xen VMs but slightly slower on for normal systems.</flag>
+</use>
+</pkgmetadata>
diff --git a/dev-lang/mono/mono-2.10.9-r2.ebuild b/dev-lang/mono/mono-2.10.9-r2.ebuild
new file mode 100644
index 000000000000..1990c36cb9d9
--- /dev/null
+++ b/dev-lang/mono/mono-2.10.9-r2.ebuild
@@ -0,0 +1,265 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+
+inherit linux-info mono eutils flag-o-matic multilib go-mono pax-utils
+
+DESCRIPTION="Mono runtime and class libraries, a C# compiler/interpreter"
+HOMEPAGE="http://www.mono-project.com/Main_Page"
+
+LICENSE="MIT LGPL-2.1 GPL-2 BSD-4 NPL-1.1 Ms-PL GPL-2-with-linking-exception IDPL"
+SLOT="0"
+KEYWORDS="amd64 ppc ~ppc64 x86"
+
+IUSE="minimal pax_kernel xen"
+
+#Bash requirement is for += operator
+COMMONDEPEND="!dev-util/monodoc
+ !minimal? ( =dev-dotnet/libgdiplus-${GO_MONO_REL_PV}* )
+ ia64? ( sys-libs/libunwind )"
+RDEPEND="${COMMONDEPEND}
+ || ( www-client/links www-client/lynx )"
+
+DEPEND="${COMMONDEPEND}
+ sys-devel/bc
+ virtual/yacc
+ >=app-shells/bash-3.2
+ pax_kernel? ( sys-apps/elfix )"
+
+MAKEOPTS="${MAKEOPTS} -j1"
+
+RESTRICT="test"
+
+pkg_setup() {
+ if use kernel_linux
+ then
+ get_version
+ if linux_config_exists
+ then
+ if linux_chkconfig_present SYSVIPC
+ then
+ einfo "CONFIG_SYSVIPC is set, looking good."
+ else
+ eerror "If CONFIG_SYSVIPC is not set in your kernel .config, mono will hang while compiling."
+ eerror "See http://bugs.gentoo.org/261869 for more info."
+ eerror "Please set CONFIG_SYSVIPC in your kernel .config if build fails."
+ fi
+ else
+ ewarn "Was unable to determine your kernel .config"
+ ewarn "Please note that if CONFIG_SYSVIPC is not set in your kernel .config, mono will hang while compiling."
+ ewarn "See http://bugs.gentoo.org/261869 for more info."
+ fi
+ fi
+ PATCHES=( "${FILESDIR}/${PN}-2.10.2-threads-access.patch"
+ "${FILESDIR}/${PN}-2.10.9-CVE-2012-3382.patch"
+ "${FILESDIR}/${PN}-2.10.9-CVE-2012-3543.patch"
+ "${FILESDIR}/${PN}-2.10.9-CVE-2012-3543_2.patch" )
+}
+
+src_prepare() {
+ go-mono_src_prepare
+
+ # we need to sed in the paxctl-ng -mr in the runtime/mono-wrapper.in so it doesn't
+ # get killed in the build process when MPROTECT is enabled. #286280
+ # RANDMMAP kills the build process to #347365
+ if use pax_kernel ; then
+ ewarn "We are disabling MPROTECT on the mono binary."
+ sed '/exec "/ i\paxctl-ng -mr "$r/@mono_runtime@"' -i "${S}"/runtime/mono-wrapper.in || die "Failed to sed mono-wrapper.in"
+ fi
+}
+
+src_configure() {
+ # mono's build system is finiky, strip the flags
+ strip-flags
+
+ # Remove this at your own peril. Mono will barf in unexpected ways.
+ append-flags -fno-strict-aliasing
+
+ # NOTE: We need the static libs for now so mono-debugger works.
+ # See http://bugs.gentoo.org/show_bug.cgi?id=256264 for details
+ #
+ # --without-moonlight since www-plugins/moonlight is not the only one
+ # using mono: https://bugzilla.novell.com/show_bug.cgi?id=641005#c3
+ #
+ # --with-profile4 needs to be always enabled since it's used by default
+ # and, otherwise, problems like bug #340641 appear.
+ #
+ # sgen fails on ppc, bug #359515
+
+ local myconf=""
+ use ppc && myconf="${myconf} --with-sgen=no"
+ go-mono_src_configure \
+ --enable-static \
+ --disable-quiet-build \
+ --without-moonlight \
+ --with-libgdiplus=$(use minimal && printf "no" || printf "installed" ) \
+ $(use_with xen xen_opt) \
+ --without-ikvm-native \
+ --with-jit \
+ --disable-dtrace \
+ --with-profile4 \
+ ${myconf}
+}
+
+src_test() {
+ echo ">>> Test phase [check]: ${CATEGORY}/${PF}"
+
+ export MONO_REGISTRY_PATH="${T}/registry"
+ export XDG_DATA_HOME="${T}/data"
+ export MONO_SHARED_DIR="${T}/shared"
+ export XDG_CONFIG_HOME="${T}/config"
+ export HOME="${T}/home"
+
+ emake -j1 check
+}
+
+src_install() {
+ go-mono_src_install
+
+ # Remove files not respecting LDFLAGS and that we are not supposed to provide, see Fedora
+ # mono.spec and http://www.mail-archive.com/mono-devel-list@lists.ximian.com/msg24870.html
+ # for reference.
+ rm -f "${ED}"/usr/$(get_libdir)/mono/2.0/mscorlib.dll.so
+ rm -f "${ED}"/usr/$(get_libdir)/mono/2.0/mcs.exe.so
+}
+
+#THINK!!!! Before touching postrm and postinst
+#Reference phase order:
+#pkg_preinst
+#pkg_prerm
+#pkg_postrm
+#pkg_postinst
+
+pkg_preinst() {
+ local symlink
+ local NUNIT_DIR="/usr/$(get_libdir)/mono/nunit"
+ local pv_atom
+ if [[ "$(readlink "${ROOT}"/${NUNIT_DIR})" == *"mono-nunit"* ]]
+ then
+ for pv_atom in 2.2{,-r1,-r2,-r3,-r4} '2.4_pre*' '2.4_rc*' 2.4
+ do
+ if has_version "=dev-lang/mono-${pv_atom}"
+ then
+ einfo "If you just received a file collision warning message,"
+ einfo "be advised that this is a known problem, which will now be fixed:"
+ ebegin "Found broken symlinks created by $(best_version dev-lang/mono), fixing"
+ for symlink in \
+ "${ROOT}/${NUNIT_DIR}" \
+ "${ROOT}/usr/$(get_libdir)/pkgconfig/nunit.pc" \
+ "${ROOT}/usr/bin/nunit-console" \
+ "${ROOT}/usr/bin/nunit-console2"
+ do
+ if [[ -L "${symlink}" ]]
+ then
+ rm -f "${symlink}" &> /dev/null
+ fi
+ done
+ eend 0
+ break
+ fi
+ done
+ fi
+}
+
+#pkg_postinst() {
+# elog "PLEASE TAKE NOTE!"
+# elog ""
+# elog "Some of the namespaces supported by Mono require extra packages to be installed."
+# elog "Below is a list of namespaces and the corresponding package you must install:"
+# elog ""
+# elog ">=x11-libs/cairo-1.6.4"
+# elog " Mono.Cairo"
+# elog "Also read:"
+# elog "http://www.mono-project.com/Mono.Cairo"
+# elog ""
+# elog ">=dev-db/firebird-2.0.4.13130.1"
+# elog " FirebirdSql.Data.Firebird"
+# elog "Also read:"
+# elog "http://www.mono-project.com/Firebird_Interbase"
+# elog ""
+# elog "dev-db/sqlite:3"
+# elog " Mono.Data.Sqlite"
+# elog "Also read:"
+# elog "http://www.mono-project.com/SQLite"
+# elog ""
+# elog ">=dev-db/oracle-instantclient-basic-10.2"
+# elog " System.Data.OracleClient"
+# elog "Also read:"
+# elog "http://www.mono-project.com/Oracle"
+# elog ""
+# elog "Mono also has support for packages that are not included in portage:"
+# elog ""
+# elog "No ebuild available:"
+# elog " IBM.Data.DB2"
+# elog "Also read: http://www.mono-project.com/IBM_DB2"
+# elog ""
+# elog "No ebuild needed:"
+# elog " Mono.Data.SybaseClient"
+# elog "Also read: http://www.mono-project.com/Sybase"
+#}
+
+# NOTICE: THE COPYRIGHT FILES IN THE TARBALL ARE UNCLEAR!
+# WHENEVER YOU THINK SOMETHING IS GPL-2+, IT'S ONLY GPL-2
+# UNLESS MIGUEL DE ICAZA HIMSELF SAYS OTHERWISE.
+
+# mono
+# The code we use is LGPL, but contributions must be made under the MIT/X11
+# license, so Novell can serve its paying customers. Exception is mono/man.
+# LICENSE="LGPL-2.1"
+
+ # mono/man
+ # LICENSE="MIT"
+
+# mcs/mcs
+# mcs/gmcs
+# LICENSE="GPL-2 MIT"
+
+# tests
+# LICENSE="MIT"
+
+# mcs/class
+# Except the listed exceptions:
+# LICENSE="MIT"
+
+ # mcs/class/ByteFX.Data
+ # mcs/class/Npgsql
+ # LICENSE="LGPL-2.1"
+
+ # mcs/class/FirebirdSql.Data.Firebird
+ # LICENSE="IDPL"
+
+ # mcs/class/ICSharpCode.SharpZipLib
+ # LICENSE="GPL-2-with-linking-exception"
+
+ # mcs/class/MicrosoftAjaxLibrary
+ # LICENSE="Ms-Pl"
+
+ # mcs/class/Microsoft.JScript/Microsoft.JScript/TokenStream.cs
+ # mcs/class/Microsoft.JScript/Microsoft.JScript/Token.cs
+ # mcs/class/Microsoft.JScript/Microsoft.JScript/Parser.cs
+ # mcs/class/Microsoft.JScript/Microsoft.JScript/Decompiler.cs
+ # LICENSE="|| ( NPL-1.1 GPL-2 )"
+
+# mcs/jay
+# LICENSE="BSD-4"
+
+# mcs/tools
+# Except the listed exceptions:
+# LICENSE="MIT"
+
+ # mcs/tools/mdoc/Mono.Documentation/monodocs2html.cs
+ # LICENSE="GPL-2"
+
+ # mcs/tools/sqlsharp/SqlSharpCli.cs
+ # LICENSE="GPL-2"
+
+ # mcs/tools/csharp/repl.cs
+ # LICENSE="|| ( MIT GPL-2 )"
+
+ # mcs/tools/mono-win32-setup.nsi
+ # LICENSE="GPL-2"
+
+# samples
+# LICENSE="MIT"
diff --git a/dev-lang/mono/mono-3.0.7.ebuild b/dev-lang/mono/mono-3.0.7.ebuild
new file mode 100644
index 000000000000..9735a81edff4
--- /dev/null
+++ b/dev-lang/mono/mono-3.0.7.ebuild
@@ -0,0 +1,100 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+AUTOTOOLS_PRUNE_LIBTOOL_FILES="all"
+
+inherit linux-info mono-env flag-o-matic pax-utils autotools-utils
+
+DESCRIPTION="Mono runtime and class libraries, a C# compiler/interpreter"
+HOMEPAGE="http://www.mono-project.com/Main_Page"
+SRC_URI="http://download.mono-project.com/sources/${PN}/${P}.tar.bz2"
+
+LICENSE="MIT LGPL-2.1 GPL-2 BSD-4 NPL-1.1 Ms-PL GPL-2-with-linking-exception IDPL"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~ppc64 ~x86 ~amd64-linux"
+IUSE="minimal pax_kernel xen doc"
+
+COMMONDEPEND="
+ !dev-util/monodoc
+ !minimal? ( >=dev-dotnet/libgdiplus-2.10 )
+ ia64? ( sys-libs/libunwind )
+"
+RDEPEND="${COMMONDEPEND}
+ || ( www-client/links www-client/lynx )
+"
+DEPEND="${COMMONDEPEND}
+ sys-devel/bc
+ virtual/yacc
+ pax_kernel? ( sys-apps/paxctl )
+"
+
+pkg_pretend() {
+ # If CONFIG_SYSVIPC is not set in your kernel .config, mono will hang while compiling.
+ # See http://bugs.gentoo.org/261869 for more info."
+ CONFIG_CHECK="~SYSVIPC"
+ use kernel_linux && check_extra_config
+}
+
+pkg_setup() {
+ linux-info_pkg_setup
+ mono-env_pkg_setup
+}
+
+src_prepare() {
+ # we need to sed in the paxctl -mr in the runtime/mono-wrapper.in so it don't
+ # get killed in the build proces when MPROTEC is enable. #286280
+ # RANDMMAP kill the build proces to #347365
+ if use pax_kernel ; then
+ ewarn "We are disabling MPROTECT on the mono binary."
+ sed '/exec/ i\paxctl -mr "$r/@mono_runtime@"' -i "${S}"/runtime/mono-wrapper.in
+ fi
+
+ # mono build system can fail otherwise
+ strip-flags
+
+ # Remove this at your own peril. Mono will barf in unexpected ways.
+ append-flags -fno-strict-aliasing
+
+ autotools-utils_src_prepare
+}
+
+src_configure() {
+ # NOTE: We need the static libs for now so mono-debugger works.
+ # See http://bugs.gentoo.org/show_bug.cgi?id=256264 for details
+ #
+ # --without-moonlight since www-plugins/moonlight is not the only one
+ # using mono: https://bugzilla.novell.com/show_bug.cgi?id=641005#c3
+ #
+ # --with-profile4 needs to be always enabled since it's used by default
+ # and, otherwise, problems like bug #340641 appear.
+ #
+ # sgen fails on ppc, bug #359515
+ local myeconfargs=(
+ --enable-system-aot=yes
+ --enable-static
+ --disable-quiet-build
+ --without-moonlight
+ --with-libgdiplus=$(use minimal && printf "no" || printf "installed" )
+ $(use_with xen xen_opt)
+ --without-ikvm-native
+ --with-jit
+ --disable-dtrace
+ --with-profile4
+ --with-sgen=$(use ppc && printf "no" || printf "yes" )
+ $(use_with doc mcs-docs)
+ )
+
+ autotools-utils_src_configure
+}
+
+src_install() {
+ autotools-utils_src_install
+
+ # Remove files not respecting LDFLAGS and that we are not supposed to provide, see Fedora
+ # mono.spec and http://www.mail-archive.com/mono-devel-list@lists.ximian.com/msg24870.html
+ # for reference.
+ rm -f "${ED}"/usr/lib/mono/{2.0,4.5}/mscorlib.dll.so
+ rm -f "${ED}"/usr/lib/mono/{2.0,4.5}/mcs.exe.so
+}
diff --git a/dev-lang/mono/mono-3.12.1.ebuild b/dev-lang/mono/mono-3.12.1.ebuild
new file mode 100644
index 000000000000..03928d106f7d
--- /dev/null
+++ b/dev-lang/mono/mono-3.12.1.ebuild
@@ -0,0 +1,117 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+AUTOTOOLS_PRUNE_LIBTOOL_FILES="all"
+
+inherit eutils linux-info mono-env flag-o-matic pax-utils autotools-utils
+
+DESCRIPTION="Mono runtime and class libraries, a C# compiler/interpreter"
+HOMEPAGE="http://www.mono-project.com/Main_Page"
+SRC_URI="http://download.mono-project.com/sources/${PN}/${P}.tar.bz2"
+
+LICENSE="MIT LGPL-2.1 GPL-2 BSD-4 NPL-1.1 Ms-PL GPL-2-with-linking-exception IDPL"
+SLOT="0"
+
+KEYWORDS="~amd64 ~ppc ~ppc64 ~x86 ~amd64-linux"
+
+IUSE="nls minimal pax_kernel xen doc debug"
+
+COMMONDEPEND="
+ !minimal? ( >=dev-dotnet/libgdiplus-2.10 )
+ ia64? ( sys-libs/libunwind )
+ nls? ( sys-devel/gettext )
+"
+RDEPEND="${COMMONDEPEND}
+ || ( www-client/links www-client/lynx )
+"
+DEPEND="${COMMONDEPEND}
+ sys-devel/bc
+ virtual/yacc
+ pax_kernel? ( sys-apps/elfix )
+"
+
+pkg_pretend() {
+ # If CONFIG_SYSVIPC is not set in your kernel .config, mono will hang while compiling.
+ # See http://bugs.gentoo.org/261869 for more info."
+ CONFIG_CHECK="~SYSVIPC"
+ use kernel_linux && check_extra_config
+}
+
+pkg_setup() {
+ linux-info_pkg_setup
+ mono-env_pkg_setup
+}
+
+src_prepare() {
+ # we need to sed in the paxctl-ng -mr in the runtime/mono-wrapper.in so it don't
+ # get killed in the build proces when MPROTEC is enable. #286280
+ # RANDMMAP kill the build proces to #347365
+ if use pax_kernel ; then
+ ewarn "We are disabling MPROTECT on the mono binary."
+
+ # issue 9 : https://github.com/Heather/gentoo-dotnet/issues/9
+ sed '/exec "/ i\paxctl-ng -mr "$r/@mono_runtime@"' -i "${S}"/runtime/mono-wrapper.in || die "Failed to sed mono-wrapper.in"
+ fi
+
+ # mono build system can fail otherwise
+ strip-flags
+
+ # Remove this at your own peril. Mono will barf in unexpected ways.
+ append-flags -fno-strict-aliasing
+
+ autotools-utils_src_prepare
+}
+
+src_configure() {
+ # NOTE: We need the static libs for now so mono-debugger works.
+ # See http://bugs.gentoo.org/show_bug.cgi?id=256264 for details
+ #
+ # --without-moonlight since www-plugins/moonlight is not the only one
+ # using mono: https://bugzilla.novell.com/show_bug.cgi?id=641005#c3
+ #
+ # --with-profile4 needs to be always enabled since it's used by default
+ # and, otherwise, problems like bug #340641 appear.
+ #
+ # sgen fails on ppc, bug #359515
+ local myeconfargs=(
+ --enable-system-aot=yes
+ --enable-static
+ --disable-quiet-build
+ --without-moonlight
+ --with-libgdiplus=$(usex minimal no installed)
+ $(use_with xen xen_opt)
+ --without-ikvm-native
+ --with-jit
+ --disable-dtrace
+ --with-profile4
+ --with-sgen=$(usex ppc no yes)
+ $(use_with doc mcs-docs)
+ $(use_enable debug)
+ $(use_enable nls)
+ )
+
+ autotools-utils_src_configure
+
+ # FIX for uncompilable 3.4.0 sources
+ FF="${WORKDIR}/mono-3.4.0/mcs/tools/xbuild/targets/Microsoft.Portable.Common.targets"
+ rm -f $FF
+ touch $FF
+ echo '<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">' >> $FF
+ echo ' <Import Project="..\\Microsoft.Portable.Core.props" />' >> $FF
+ echo ' <Import Project="..\\Microsoft.Portable.Core.targets" />' >> $FF
+ echo '</Project>' >> $FF
+}
+
+src_compile() {
+ nonfatal autotools-utils_src_compile || {
+ eqawarn "maintainer of this ebuild has no idea why it fails. If you happen to know how to fix it - please let me know"
+ autotools-utils_src_compile
+ }
+}
+
+src_test() {
+ cd mcs/tests || die
+ emake check
+}
diff --git a/dev-lang/mono/mono-3.2.3.ebuild b/dev-lang/mono/mono-3.2.3.ebuild
new file mode 100644
index 000000000000..462e3ab5de6b
--- /dev/null
+++ b/dev-lang/mono/mono-3.2.3.ebuild
@@ -0,0 +1,119 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+AUTOTOOLS_PRUNE_LIBTOOL_FILES="all"
+
+inherit eutils linux-info mono-env flag-o-matic pax-utils autotools-utils
+
+DESCRIPTION="Mono runtime and class libraries, a C# compiler/interpreter"
+HOMEPAGE="http://www.mono-project.com/Main_Page"
+SRC_URI="http://download.mono-project.com/sources/${PN}/${P}.tar.bz2"
+
+LICENSE="MIT LGPL-2.1 GPL-2 BSD-4 NPL-1.1 Ms-PL GPL-2-with-linking-exception IDPL"
+SLOT="0"
+
+KEYWORDS="~amd64 ~ppc ~ppc64 ~x86 ~amd64-linux"
+
+IUSE="nls minimal pax_kernel xen doc debug"
+
+COMMONDEPEND="
+ !dev-util/monodoc
+ !minimal? ( >=dev-dotnet/libgdiplus-2.10 )
+ ia64? ( sys-libs/libunwind )
+ nls? ( sys-devel/gettext )
+"
+RDEPEND="${COMMONDEPEND}
+ || ( www-client/links www-client/lynx )
+"
+DEPEND="${COMMONDEPEND}
+ sys-devel/bc
+ virtual/yacc
+ pax_kernel? ( sys-apps/elfix )
+"
+
+pkg_pretend() {
+ # If CONFIG_SYSVIPC is not set in your kernel .config, mono will hang while compiling.
+ # See http://bugs.gentoo.org/261869 for more info."
+ CONFIG_CHECK="~SYSVIPC"
+ use kernel_linux && check_extra_config
+}
+
+pkg_setup() {
+ linux-info_pkg_setup
+ mono-env_pkg_setup
+}
+
+src_prepare() {
+ # we need to sed in the paxctl-ng -mr in the runtime/mono-wrapper.in so it don't
+ # get killed in the build proces when MPROTEC is enable. #286280
+ # RANDMMAP kill the build proces to #347365
+ if use pax_kernel ; then
+ ewarn "We are disabling MPROTECT on the mono binary."
+
+ # issue 9 : https://github.com/Heather/gentoo-dotnet/issues/9
+ sed '/exec "/ i\paxctl-ng -mr "$r/@mono_runtime@"' -i "${S}"/runtime/mono-wrapper.in || die "Failed to sed mono-wrapper.in"
+ fi
+
+ # mono build system can fail otherwise
+ strip-flags
+
+ # Remove this at your own peril. Mono will barf in unexpected ways.
+ append-flags -fno-strict-aliasing
+
+ autotools-utils_src_prepare
+}
+
+src_configure() {
+ # NOTE: We need the static libs for now so mono-debugger works.
+ # See http://bugs.gentoo.org/show_bug.cgi?id=256264 for details
+ #
+ # --without-moonlight since www-plugins/moonlight is not the only one
+ # using mono: https://bugzilla.novell.com/show_bug.cgi?id=641005#c3
+ #
+ # --with-profile4 needs to be always enabled since it's used by default
+ # and, otherwise, problems like bug #340641 appear.
+ #
+ # sgen fails on ppc, bug #359515
+ local myeconfargs=(
+ --enable-system-aot=yes
+ --enable-static
+ --disable-quiet-build
+ --without-moonlight
+ --with-libgdiplus=$(usex minimal no installed)
+ $(use_with xen xen_opt)
+ --without-ikvm-native
+ --with-jit
+ --disable-dtrace
+ --with-profile4
+ --with-sgen=$(usex ppc no yes)
+ $(use_with doc mcs-docs)
+ $(use_enable debug)
+ $(use_enable nls)
+ )
+
+ autotools-utils_src_configure
+}
+
+src_compile() {
+ nonfatal autotools-utils_src_compile || {
+ eqawarn "maintainer of this ebuild has no idea why it fails. If you happen to know how to fix it - please let me know"
+ autotools-utils_src_compile
+ }
+}
+
+src_test() {
+ cd mcs/tests || die
+ emake check
+}
+
+src_install() {
+ autotools-utils_src_install
+
+ # Remove files not respecting LDFLAGS and that we are not supposed to provide, see Fedora
+ # mono.spec and http://www.mail-archive.com/mono-devel-list@lists.ximian.com/msg24870.html
+ # for reference.
+ rm -f "${ED}"/usr/lib/mono/{2.0,4.5}/mscorlib.dll.so || die
+ rm -f "${ED}"/usr/lib/mono/{2.0,4.5}/mcs.exe.so || die
+}
diff --git a/dev-lang/mono/mono-3.2.8.ebuild b/dev-lang/mono/mono-3.2.8.ebuild
new file mode 100644
index 000000000000..ec4e9e89cf01
--- /dev/null
+++ b/dev-lang/mono/mono-3.2.8.ebuild
@@ -0,0 +1,123 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+AUTOTOOLS_PRUNE_LIBTOOL_FILES="all"
+
+inherit eutils linux-info mono-env flag-o-matic pax-utils autotools-utils
+
+DESCRIPTION="Mono runtime and class libraries, a C# compiler/interpreter"
+HOMEPAGE="http://www.mono-project.com/Main_Page"
+SRC_URI="http://download.mono-project.com/sources/${PN}/${P}.tar.bz2"
+
+LICENSE="MIT LGPL-2.1 GPL-2 BSD-4 NPL-1.1 Ms-PL GPL-2-with-linking-exception IDPL"
+SLOT="0"
+
+KEYWORDS="~amd64 ~ppc ~ppc64 ~x86 ~amd64-linux"
+
+IUSE="nls minimal pax_kernel xen doc debug"
+
+COMMONDEPEND="
+ !dev-util/monodoc
+ !minimal? ( >=dev-dotnet/libgdiplus-2.10 )
+ ia64? ( sys-libs/libunwind )
+ nls? ( sys-devel/gettext )
+"
+RDEPEND="${COMMONDEPEND}
+ || ( www-client/links www-client/lynx )
+"
+DEPEND="${COMMONDEPEND}
+ sys-devel/bc
+ virtual/yacc
+ pax_kernel? ( sys-apps/elfix )
+"
+
+pkg_pretend() {
+ # If CONFIG_SYSVIPC is not set in your kernel .config, mono will hang while compiling.
+ # See http://bugs.gentoo.org/261869 for more info."
+ CONFIG_CHECK="~SYSVIPC"
+ use kernel_linux && check_extra_config
+}
+
+pkg_setup() {
+ linux-info_pkg_setup
+ mono-env_pkg_setup
+}
+
+src_prepare() {
+ # we need to sed in the paxctl-ng -mr in the runtime/mono-wrapper.in so it don't
+ # get killed in the build proces when MPROTEC is enable. #286280
+ # RANDMMAP kill the build proces to #347365
+ if use pax_kernel ; then
+ ewarn "We are disabling MPROTECT on the mono binary."
+
+ # issue 9 : https://github.com/Heather/gentoo-dotnet/issues/9
+ sed '/exec "/ i\paxctl-ng -mr "$r/@mono_runtime@"' -i "${S}"/runtime/mono-wrapper.in || die "Failed to sed mono-wrapper.in"
+ fi
+
+ # mono build system can fail otherwise
+ strip-flags
+
+ # Remove this at your own peril. Mono will barf in unexpected ways.
+ append-flags -fno-strict-aliasing
+
+ # Bug #504108, dlls/test-883.il unexisting; TODO: Figure out how to make it.
+ epatch "${FILESDIR}"/${P}-disable-missing-test.patch
+ rm mcs/tests/test-883{,-lib}.cs|| die
+
+ autotools-utils_src_prepare
+}
+
+src_configure() {
+ # NOTE: We need the static libs for now so mono-debugger works.
+ # See http://bugs.gentoo.org/show_bug.cgi?id=256264 for details
+ #
+ # --without-moonlight since www-plugins/moonlight is not the only one
+ # using mono: https://bugzilla.novell.com/show_bug.cgi?id=641005#c3
+ #
+ # --with-profile4 needs to be always enabled since it's used by default
+ # and, otherwise, problems like bug #340641 appear.
+ #
+ # sgen fails on ppc, bug #359515
+ local myeconfargs=(
+ --enable-system-aot=yes
+ --enable-static
+ --disable-quiet-build
+ --without-moonlight
+ --with-libgdiplus=$(usex minimal no installed)
+ $(use_with xen xen_opt)
+ --without-ikvm-native
+ --with-jit
+ --disable-dtrace
+ --with-profile4
+ --with-sgen=$(usex ppc no yes)
+ $(use_with doc mcs-docs)
+ $(use_enable debug)
+ $(use_enable nls)
+ )
+
+ autotools-utils_src_configure
+}
+
+src_compile() {
+ nonfatal autotools-utils_src_compile || {
+ eqawarn "maintainer of this ebuild has no idea why it fails. If you happen to know how to fix it - please let me know"
+ autotools-utils_src_compile
+ }
+}
+
+src_test() {
+ cd mcs/tests || die
+ emake check
+}
+
+src_install() {
+ autotools-utils_src_install
+
+ # Remove files not respecting LDFLAGS and that we are not supposed to provide, see Fedora
+ # mono.spec and http://www.mail-archive.com/mono-devel-list@lists.ximian.com/msg24870.html
+ # for reference.
+ rm -f "${ED}"/usr/lib/mono/{2.0,4.5}/mscorlib.dll.so || die
+ rm -f "${ED}"/usr/lib/mono/{2.0,4.5}/mcs.exe.so || die
+}