summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHeather Cynede <cynede@gentoo.org>2016-04-06 13:37:32 +0400
committerHeather Cynede <cynede@gentoo.org>2016-04-06 13:39:12 +0400
commit01db1fd33d509b11a3063208e78976f505c4c5b0 (patch)
treeaaae04f654de331845fadb5d0bf4d91245699d92 /dev-lang/mono
parentgnome-extra/gnome-commander: version bump to 1.4.8 (diff)
downloadgentoo-01db1fd33d509b11a3063208e78976f505c4c5b0.tar.gz
gentoo-01db1fd33d509b11a3063208e78976f505c4c5b0.tar.bz2
gentoo-01db1fd33d509b11a3063208e78976f505c4c5b0.zip
dev-lang/mono: bump to 4.4.0.40
Package-Manager: portage-2.2.28
Diffstat (limited to 'dev-lang/mono')
-rw-r--r--dev-lang/mono/Manifest1
-rw-r--r--dev-lang/mono/files/files/add_missing_vb_portable_targets.patch20
-rw-r--r--dev-lang/mono/files/files/fix-for-GitExtensions-issue-2710-another-resolution.patch48
-rw-r--r--dev-lang/mono/files/files/fix-for-GitExtensions-issue-2710.patch28
-rw-r--r--dev-lang/mono/files/files/fix-for-bug36724.patch13
-rw-r--r--dev-lang/mono/files/files/mono-3.2.1-mdoc-fix.patch12
-rw-r--r--dev-lang/mono/files/files/mono-4.0.2.5-fix-decimal-ms-on-big-endian.patch22
-rw-r--r--dev-lang/mono/files/files/mono-4.0.2.5-fix-mono-dis-makefile-am-when-without-sgen.patch15
-rw-r--r--dev-lang/mono/files/files/mono-4.0.2.5-fix-ppc-atomic-add-i4.patch79
-rw-r--r--dev-lang/mono/files/files/systemweb3.patch22
-rw-r--r--dev-lang/mono/mono-4.4.0.40.ebuild120
11 files changed, 380 insertions, 0 deletions
diff --git a/dev-lang/mono/Manifest b/dev-lang/mono/Manifest
index 75d2aea542a9..f2311659ed34 100644
--- a/dev-lang/mono/Manifest
+++ b/dev-lang/mono/Manifest
@@ -5,3 +5,4 @@ DIST mono-4.2.1.124.tar.bz2 96235544 SHA256 6098476ce5c74685b23e7a96be8fe28a27db
DIST mono-4.2.2.10.tar.bz2 96232441 SHA256 c772db0be6f108e6832103675c41a3b31439e0203e77a9b321e48ac3bbb9fd25 SHA512 a50082a872e5866d264c1627477accd28539274af1488d0ad92e9fb0d4da56fe35fbe25f57062d7d570a527b9dd6df0d44c586633210c2c7a1fd34ae537bfc62 WHIRLPOOL 40c050a12ccd62ee3ae38ad74d3f0034e341a2d2d4936ff3a73610b265fe946df75741496d655b88e7bc61022d90cae174fc10ada07e93193337dd753b7939f6
DIST mono-4.2.2.30.tar.bz2 78365827 SHA256 57858cd033be9915d7abdc5158c1faae8fa05757c3b7117cab3d703aa696c56b SHA512 5aa93b362da84970310cc35bf02300718a20d2b508c263f45224d89f7aee84ead90c6fd7230ee2f17a2c02d480e3a8f7d2c9308cec0062a8f4c107f674a7c752 WHIRLPOOL fed4edbc5a724777bfe32edd4493c95904983e295c5c093f36231dfcdd9466daa8a21ed79c2686f8f0c6c5bbef8dafd88e82b3131e69e2d31e99fdc36de5aaf5
DIST mono-4.2.3.4.tar.bz2 79614085 SHA256 4703d390416a6e9977585f13711f59a6d54431086c2dbacee49888dcc31937be SHA512 6c7f0dbd6b9efa0481d72c68c7b4ea54cfda0a99c250040c696c7705f70c957c2c26e83221cd1272b159733bdad4e447675b79df68205a09c8d178d570629275 WHIRLPOOL 3acb7deac7c1047230d1940b2d2419d792703d5b65aac1c3baf441618c81de27eb4db66a717d91cc7bd22ae96d433e91832e1db517383e0b94467b1eb1aede84
+DIST mono-4.4.0.40.tar.bz2 84877673 SHA256 803cd367562affb4150783e0b7dc7986f633ebcb61e6d733650a8485385e0fff SHA512 e9d2386a27316e5da03ac4943b60b436d51343a9bf04b924becd3c141726580fe74df373ade7b1061eaaab6c91a39a595aa95b84f132567f80af9a91da99eaf7 WHIRLPOOL 76e5545d8ffff92e1271b63c86ab0d703afaf9cf5685e4f8a9801700c84106037fcc34e1a9c91bce319779dc753a149162db212924996df2e843014fd1ad35ea
diff --git a/dev-lang/mono/files/files/add_missing_vb_portable_targets.patch b/dev-lang/mono/files/files/add_missing_vb_portable_targets.patch
new file mode 100644
index 000000000000..ece90a587713
--- /dev/null
+++ b/dev-lang/mono/files/files/add_missing_vb_portable_targets.patch
@@ -0,0 +1,20 @@
+Index: mcs/tools/xbuild/targets/Microsoft.Portable.VisualBasic_4.0.targets
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ mcs/tools/xbuild/targets/Microsoft.Portable.VisualBasic_4.0.targets 2015-05-15 15:55:12.074775985 +0100
+@@ -0,0 +1,5 @@
++<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
++ <Import Project="..\Microsoft.Portable.Core.props" />
++ <Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
++ <Import Project="..\Microsoft.Portable.Core.targets" />
++</Project>
+Index: mcs/tools/xbuild/targets/Microsoft.Portable.VisualBasic_4.5.targets
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ mcs/tools/xbuild/targets/Microsoft.Portable.VisualBasic_4.5.targets 2015-05-15 15:55:19.194775876 +0100
+@@ -0,0 +1,5 @@
++<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
++ <Import Project="..\Microsoft.Portable.Core.props" />
++ <Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
++ <Import Project="..\Microsoft.Portable.Core.targets" />
++</Project>
diff --git a/dev-lang/mono/files/files/fix-for-GitExtensions-issue-2710-another-resolution.patch b/dev-lang/mono/files/files/fix-for-GitExtensions-issue-2710-another-resolution.patch
new file mode 100644
index 000000000000..b306b697c09d
--- /dev/null
+++ b/dev-lang/mono/files/files/fix-for-GitExtensions-issue-2710-another-resolution.patch
@@ -0,0 +1,48 @@
+diff --git a/mcs/class/System/System.Configuration/CustomizableFileSettingsProvider.cs b/mcs/class/System/System.Configuration/CustomizableFileSettingsProvider.cs
+index 4b69010..1bb6195 100644
+--- a/mcs/class/System/System.Configuration/CustomizableFileSettingsProvider.cs
++++ b/mcs/class/System/System.Configuration/CustomizableFileSettingsProvider.cs
+@@ -578,6 +578,34 @@ namespace System.Configuration
+ private ExeConfigurationFileMap exeMapPrev = null;
+ private SettingsPropertyValueCollection values = null;
+
++ /// <remarks>
++ /// Hack to remove the XmlDeclaration that the XmlSerializer adds.
++ /// <br />
++ /// see <a href="https://github.com/mono/mono/pull/2273">Issue 2273</a> for details
++ /// </remarks>
++ private string StripXmlHeader(string serializedValue)
++ {
++ if (serializedValue == null)
++ {
++ return string.Empty;
++ }
++
++ XmlDocument doc = new XmlDocument();
++ XmlElement valueXml = doc.CreateElement("value");
++ valueXml.InnerXml = serializedValue;
++
++ foreach (XmlNode child in valueXml.ChildNodes) {
++ if (child.NodeType == XmlNodeType.XmlDeclaration) {
++ valueXml.RemoveChild(child);
++ break;
++ }
++ }
++
++ // InnerXml will give you well-formed XML that you could save as a separate document, and
++ // InnerText will immediately give you a pure-text representation of this inner XML.
++ return valueXml.InnerXml;
++ }
++
+ private void SaveProperties (ExeConfigurationFileMap exeMap, SettingsPropertyValueCollection collection, ConfigurationUserLevel level, SettingsContext context, bool checkUserLevel)
+ {
+ Configuration config = ConfigurationManager.OpenMappedExeConfiguration (exeMap, level);
+@@ -623,7 +651,7 @@ namespace System.Configuration
+ element.Value.ValueXml = new XmlDocument ().CreateElement ("value");
+ switch (value.Property.SerializeAs) {
+ case SettingsSerializeAs.Xml:
+- element.Value.ValueXml.InnerXml = (value.SerializedValue as string) ?? string.Empty;
++ element.Value.ValueXml.InnerXml = StripXmlHeader(value.SerializedValue as string);
+ break;
+ case SettingsSerializeAs.String:
+ element.Value.ValueXml.InnerText = value.SerializedValue as string;
diff --git a/dev-lang/mono/files/files/fix-for-GitExtensions-issue-2710.patch b/dev-lang/mono/files/files/fix-for-GitExtensions-issue-2710.patch
new file mode 100644
index 000000000000..3d60923d9714
--- /dev/null
+++ b/dev-lang/mono/files/files/fix-for-GitExtensions-issue-2710.patch
@@ -0,0 +1,28 @@
+diff --git a/mcs/class/System/System.Configuration/SettingsPropertyValue.cs b/mcs/class/System/System.Configuration/SettingsPropertyValue.cs
+index 9bf62c0..9f026461 100644
+--- a/mcs/class/System/System.Configuration/SettingsPropertyValue.cs
++++ b/mcs/class/System/System.Configuration/SettingsPropertyValue.cs
+@@ -118,11 +118,18 @@ namespace System.Configuration
+ #if (XML_DEP)
+ case SettingsSerializeAs.Xml:
+ if (propertyValue != null) {
+- XmlSerializer serializer = new XmlSerializer (propertyValue.GetType ());
+- StringWriter w = new StringWriter(CultureInfo.InvariantCulture);
+-
+- serializer.Serialize (w, propertyValue);
+- serializedValue = w.ToString();
++ using (StringWriter w = new StringWriter(CultureInfo.InvariantCulture))
++ {
++ var xmlSettings = new XmlWriterSettings();
++ xmlSettings.OmitXmlDeclaration = true;
++ using (var writer = XmlWriter.Create(w, xmlSettings))
++ {
++ XmlSerializer serializer = new XmlSerializer(propertyValue.GetType ());
++ var emptyNamespaces = new XmlSerializerNamespaces(new[] { XmlQualifiedName.Empty });
++ serializer.Serialize(writer, propertyValue, emptyNamespaces);
++ } // writer.Flush happens here
++ serializedValue = w.ToString();
++ }
+ }
+ else
+ serializedValue = null;
diff --git a/dev-lang/mono/files/files/fix-for-bug36724.patch b/dev-lang/mono/files/files/fix-for-bug36724.patch
new file mode 100644
index 000000000000..187b4babed20
--- /dev/null
+++ b/dev-lang/mono/files/files/fix-for-bug36724.patch
@@ -0,0 +1,13 @@
+diff --git a/mcs/class/System.Web/System.Web.Util/UrlUtils.cs b/mcs/class/System.Web/System.Web.Util/UrlUtils.cs
+index 4f07e83..e229a91 100644
+--- a/mcs/class/System.Web/System.Web.Util/UrlUtils.cs
++++ b/mcs/class/System.Web/System.Web.Util/UrlUtils.cs
+@@ -54,7 +54,7 @@ namespace System.Web.Util {
+ if (path.StartsWith (appvpath))
+ path = path.Substring (appvpath.Length);
+
+- if (path [0] == '/')
++ if (path.StartsWith("/"))
+ path = path.Length > 1 ? path.Substring (1) : "";
+
+ return Canonic (appvpath + "(" + id + ")/" + path);
diff --git a/dev-lang/mono/files/files/mono-3.2.1-mdoc-fix.patch b/dev-lang/mono/files/files/mono-3.2.1-mdoc-fix.patch
new file mode 100644
index 000000000000..b8fcea967892
--- /dev/null
+++ b/dev-lang/mono/files/files/mono-3.2.1-mdoc-fix.patch
@@ -0,0 +1,12 @@
+diff -Naur mono-3.2.1.orig/mcs/tools/mdoc/Resources/monodoc-ecma.xsd mono-3.2.1/mcs/tools/mdoc/Resources/monodoc-ecma.xsd
+--- mono-3.2.1.orig/mcs/tools/mdoc/Resources/monodoc-ecma.xsd 2013-08-26 09:33:59.410610438 +0200
++++ mono-3.2.1/mcs/tools/mdoc/Resources/monodoc-ecma.xsd 2013-08-26 09:34:54.057804438 +0200
+@@ -351,7 +351,7 @@
+ <xs:element name="format">
+ <xs:complexType>
+ <xs:sequence>
+- <xs:any minOccurs="0" processContents="lax" />
++ <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax" />
+ </xs:sequence>
+ <xs:attribute ref="type" />
+ </xs:complexType>
diff --git a/dev-lang/mono/files/files/mono-4.0.2.5-fix-decimal-ms-on-big-endian.patch b/dev-lang/mono/files/files/mono-4.0.2.5-fix-decimal-ms-on-big-endian.patch
new file mode 100644
index 000000000000..c6349fe3828a
--- /dev/null
+++ b/dev-lang/mono/files/files/mono-4.0.2.5-fix-decimal-ms-on-big-endian.patch
@@ -0,0 +1,22 @@
+diff -up mono/metadata/decimal-ms.c.than
+mono/metadata/decimal-ms.c
+--- mono/metadata/decimal-ms.c.than 2015-07-06 08:21:27.524461795
+-0400
++++ mono/metadata/decimal-ms.c 2015-07-06 08:30:26.954461795
+-0400
+@@ -55,8 +55,13 @@ static const uint32_t ten_to_ten_div_4 =
+ #define DECIMAL_LO32(dec) ((dec).v.v.Lo32)
+ #define DECIMAL_MID32(dec) ((dec).v.v.Mid32)
+ #define DECIMAL_HI32(dec) ((dec).Hi32)
+-#define DECIMAL_LO64_GET(dec) ((dec).v.Lo64)
+-#define DECIMAL_LO64_SET(dec,value) {(dec).v.Lo64 = value; }
++#if G_BYTE_ORDER != G_LITTLE_ENDIAN
++# define DECIMAL_LO64_GET(dec) (((uint64_t)((dec).v.v.Mid32) << 32) | (dec).v.v.Lo32)
++# define DECIMAL_LO64_SET(dec,value) {(dec).v.v.Lo32 = (value); (dec).v.v.Mid32 = ((value) >> 32); }
++#else
++# define DECIMAL_LO64_GET(dec) ((dec).v.Lo64)
++# define DECIMAL_LO64_SET(dec,value) {(dec).v.Lo64 = value; }
++#endif
+
+ #define DECIMAL_SETZERO(dec) {DECIMAL_LO32(dec) = 0; DECIMAL_MID32(dec) = 0; DECIMAL_HI32(dec) = 0; DECIMAL_SIGNSCALE(dec) = 0;}
+ #define COPYDEC(dest, src) {DECIMAL_SIGNSCALE(dest) = DECIMAL_SIGNSCALE(src); DECIMAL_HI32(dest) = DECIMAL_HI32(src); \
diff --git a/dev-lang/mono/files/files/mono-4.0.2.5-fix-mono-dis-makefile-am-when-without-sgen.patch b/dev-lang/mono/files/files/mono-4.0.2.5-fix-mono-dis-makefile-am-when-without-sgen.patch
new file mode 100644
index 000000000000..bbf4c6fd72e3
--- /dev/null
+++ b/dev-lang/mono/files/files/mono-4.0.2.5-fix-mono-dis-makefile-am-when-without-sgen.patch
@@ -0,0 +1,15 @@
+===================================================================
+RCS file: mono/dis/RCS/Makefile.am,v
+retrieving revision 1.1
+diff -up -r1.1 mono/dis/Makefile.am
+--- mono/dis/Makefile.am 2015/05/08 15:00:22 1.1
++++ mono/dis/Makefile.am 2015/07/14 11:20:29
+@@ -7,7 +7,7 @@ endif
+ if SUPPORT_SGEN
+ metadata_lib=$(top_builddir)/mono/metadata/libmonoruntimesgen-static.la
+ else
+-metadata_lib=$(top_builddir)/mono/metadata/libmonoruntime-static.a
++metadata_lib=$(top_builddir)/mono/metadata/libmonoruntime-static.la
+ gc_lib=$(LIBGC_STATIC_LIBS)
+ endif
+
diff --git a/dev-lang/mono/files/files/mono-4.0.2.5-fix-ppc-atomic-add-i4.patch b/dev-lang/mono/files/files/mono-4.0.2.5-fix-ppc-atomic-add-i4.patch
new file mode 100644
index 000000000000..fd5de72b136f
--- /dev/null
+++ b/dev-lang/mono/files/files/mono-4.0.2.5-fix-ppc-atomic-add-i4.patch
@@ -0,0 +1,79 @@
+From f967c79926900343f399c75624deedaba460e544 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Alex=20R=C3=B8nne=20Petersen?= <alexrp@xamarin.com>
+Date: Mon, 3 Aug 2015 17:32:07 +0200
+Subject: [PATCH 1/2] [ppc] Instruction length of atomic_add_i4 is 28.
+
+---
+ mono/mini/cpu-ppc.md | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/mono/mini/cpu-ppc.md b/mono/mini/cpu-ppc.md
+index ba2ec60..e6baf91 100644
+--- a/mono/mini/cpu-ppc.md
++++ b/mono/mini/cpu-ppc.md
+@@ -314,5 +314,5 @@ vcall2_membase: src1:b len:16 clob:c
+
+ jump_table: dest:i len:8
+
+-atomic_add_i4: src1:b src2:i dest:i len:20
++atomic_add_i4: src1:b src2:i dest:i len:28
+ atomic_cas_i4: src1:b src2:i src3:i dest:i len:38
+
+From 8f379f0c8f98493180b508b9e68b9aa76c0c5bdf Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Alex=20R=C3=B8nne=20Petersen?= <alexrp@xamarin.com>
+Date: Mon, 3 Aug 2015 17:32:31 +0200
+Subject: [PATCH 2/2] [ppc] Fix atomic_add_i4 support for 32-bit PPC.
+
+---
+ mono/mini/mini-ppc.c | 31 ++++++++++++++++---------------
+ 1 file changed, 16 insertions(+), 15 deletions(-)
+
+diff --git a/mono/mini/mini-ppc.c b/mono/mini/mini-ppc.c
+index 758a63f..06528bd 100644
+--- a/mono/mini/mini-ppc.c
++++ b/mono/mini/mini-ppc.c
+@@ -4420,6 +4420,22 @@ mono_arch_output_basic_block (MonoCompile *cfg, MonoBasicBlock *bb)
+ else
+ ppc_mr (code, ins->dreg, ins->sreg1);
+ break;
++#else
++ case OP_ICONV_TO_R4:
++ case OP_ICONV_TO_R8: {
++ if (cpu_hw_caps & PPC_ISA_64) {
++ ppc_srawi(code, ppc_r0, ins->sreg1, 31);
++ ppc_stw (code, ppc_r0, -8, ppc_r1);
++ ppc_stw (code, ins->sreg1, -4, ppc_r1);
++ ppc_lfd (code, ins->dreg, -8, ppc_r1);
++ ppc_fcfid (code, ins->dreg, ins->dreg);
++ if (ins->opcode == OP_ICONV_TO_R4)
++ ppc_frsp (code, ins->dreg, ins->dreg);
++ }
++ break;
++ }
++#endif
++
+ case OP_ATOMIC_ADD_I4:
+ CASE_PPC64 (OP_ATOMIC_ADD_I8) {
+ int location = ins->inst_basereg;
+@@ -4453,21 +4469,6 @@ mono_arch_output_basic_block (MonoCompile *cfg, MonoBasicBlock *bb)
+ ppc_mr (code, ins->dreg, ppc_r0);
+ break;
+ }
+-#else
+- case OP_ICONV_TO_R4:
+- case OP_ICONV_TO_R8: {
+- if (cpu_hw_caps & PPC_ISA_64) {
+- ppc_srawi(code, ppc_r0, ins->sreg1, 31);
+- ppc_stw (code, ppc_r0, -8, ppc_r1);
+- ppc_stw (code, ins->sreg1, -4, ppc_r1);
+- ppc_lfd (code, ins->dreg, -8, ppc_r1);
+- ppc_fcfid (code, ins->dreg, ins->dreg);
+- if (ins->opcode == OP_ICONV_TO_R4)
+- ppc_frsp (code, ins->dreg, ins->dreg);
+- }
+- break;
+- }
+-#endif
+ case OP_ATOMIC_CAS_I4:
+ CASE_PPC64 (OP_ATOMIC_CAS_I8) {
+ int location = ins->sreg1;
diff --git a/dev-lang/mono/files/files/systemweb3.patch b/dev-lang/mono/files/files/systemweb3.patch
new file mode 100644
index 000000000000..5ccb63a87869
--- /dev/null
+++ b/dev-lang/mono/files/files/systemweb3.patch
@@ -0,0 +1,22 @@
+--- a/mcs/class/System.Web.Routing/System.Web.Routing/RouteBase.cs 2015-05-08 18:00:15.000000000 +0300
++++ b/mcs/class/System.Web.Routing/System.Web.Routing/RouteBase.cs 2015-07-20 14:13:09.215784924 +0300
+@@ -41,5 +41,19 @@
+ {
+ public abstract RouteData GetRouteData (HttpContextBase httpContext);
+ public abstract VirtualPathData GetVirtualPath (RequestContext requestContext, RouteValueDictionary values);
++
++ // Default needs to be true to avoid breaking change
++ private bool _routeExistingFiles = true;
++ public bool RouteExistingFiles
++ {
++ get
++ {
++ return _routeExistingFiles;
++ }
++ set
++ {
++ _routeExistingFiles = value;
++ }
++ }
+ }
+ }
diff --git a/dev-lang/mono/mono-4.4.0.40.ebuild b/dev-lang/mono/mono-4.4.0.40.ebuild
new file mode 100644
index 000000000000..be546cf6bda9
--- /dev/null
+++ b/dev-lang/mono/mono-4.4.0.40.ebuild
@@ -0,0 +1,120 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=6
+AUTOTOOLS_PRUNE_LIBTOOL_FILES="all"
+AUTOTOOLS_AUTORECONF=1
+
+inherit eutils linux-info mono-env flag-o-matic pax-utils versionator
+
+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"
+
+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 )
+ !dev-lang/mono-basic
+"
+
+MAKEOPTS="${MAKEOPTS} -j1" #nowarn
+S="${WORKDIR}/${PN}-$(get_version_component_range 1-3)"
+
+pkg_pretend() {
+ # https://github.com/gentoo/gentoo/blob/f200e625bda8de696a28338318c9005b69e34710/eclass/linux-info.eclass#L686
+ # 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 MPROTECT is enable. #286280
+ # RANDMMAP kill the build proces to #347365
+ # use paxmark.sh to get PT/XT logic #532244
+ 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\paxmark.sh -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
+
+ # Fix VB targets
+ # http://osdir.com/ml/general/2015-05/msg20808.html
+ #eapply "${FILESDIR}/add_missing_vb_portable_targets.patch"
+
+ # Fix build when sgen disabled
+ # https://bugzilla.xamarin.com/show_bug.cgi?id=32015
+ #eapply "${FILESDIR}/${PN}-4.0.2.5-fix-mono-dis-makefile-am-when-without-sgen.patch"
+
+ # TODO: update patch
+ # Fix atomic_add_i4 support for 32-bit ppc
+ # https://github.com/mono/mono/compare/f967c79926900343f399c75624deedaba460e544^...8f379f0c8f98493180b508b9e68b9aa76c0c5bdf
+ #epatch "${FILESDIR}/${PN}-4.0.2.5-fix-ppc-atomic-add-i4.patch"
+
+ # TODO: update patch
+ #epatch "${FILESDIR}/systemweb3.patch"
+ #epatch "${FILESDIR}/fix-for-GitExtensions-issue-2710-another-resolution.patch"
+ #epatch "${FILESDIR}/fix-for-bug36724.patch"
+
+ default_src_prepare
+ #eapply_user
+}
+
+src_configure() {
+ local myeconfargs=(
+ --disable-silent-rules
+ $(use_with xen xen_opt)
+ --without-ikvm-native
+ --disable-dtrace
+ $(use_with doc mcs-docs)
+ $(use_enable nls)
+ )
+
+ default_src_configure
+}
+
+src_compile() {
+ default_src_compile
+}
+
+src_test() {
+ cd mcs/tests || die
+ emake check
+}
+
+src_install() {
+ default_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
+}