commit:     bc6bb6ffcb35cc40990250d1f5d1888803ca2172
Author:     Heather Cynede <cynede <AT> gentoo <DOT> org>
AuthorDate: Mon Dec 28 07:56:08 2015 +0000
Commit:     Heather Cynede <cynede <AT> gentoo <DOT> org>
CommitDate: Mon Dec 28 07:56:49 2015 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=bc6bb6ff

dev-lang/mono: mono 4.2.2.10 patch corrections

Package-Manager: portage-2.2.26

 ...tExtensions-issue-2710-another-resolution.patch |  48 +++++++++
 dev-lang/mono/mono-4.2.2.10-r1.ebuild              | 116 +++++++++++++++++++++
 2 files changed, 164 insertions(+)

diff --git 
a/dev-lang/mono/files/fix-for-GitExtensions-issue-2710-another-resolution.patch 
b/dev-lang/mono/files/fix-for-GitExtensions-issue-2710-another-resolution.patch
new file mode 100644
index 0000000..b306b69
--- /dev/null
+++ 
b/dev-lang/mono/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/mono-4.2.2.10-r1.ebuild 
b/dev-lang/mono/mono-4.2.2.10-r1.ebuild
new file mode 100644
index 0000000..677210a
--- /dev/null
+++ b/dev-lang/mono/mono-4.2.2.10-r1.ebuild
@@ -0,0 +1,116 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+AUTOTOOLS_PRUNE_LIBTOOL_FILES="all"
+AUTOTOOLS_AUTORECONF=1
+
+inherit eutils linux-info mono-env flag-o-matic pax-utils autotools-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() {
+       # 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
+       epatch "${FILESDIR}/add_missing_vb_portable_targets.patch"
+
+       # Fix build when sgen disabled
+       # https://bugzilla.xamarin.com/show_bug.cgi?id=32015
+       epatch 
"${FILESDIR}/${PN}-4.0.2.5-fix-mono-dis-makefile-am-when-without-sgen.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"
+
+       epatch "${FILESDIR}/systemweb3.patch"
+       epatch 
"${FILESDIR}/fix-for-GitExtensions-issue-2710-another-resolution.patch"
+       epatch "${FILESDIR}/fix-for-bug36724.patch"
+
+       autotools-utils_src_prepare
+}
+
+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)
+       )
+
+       autotools-utils_src_configure
+}
+
+src_compile() {
+       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
+}

Reply via email to