aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-lang')
-rw-r--r--dev-lang/mono/Manifest1
-rw-r--r--dev-lang/mono/files/autofac.patch24
-rw-r--r--dev-lang/mono/mono-4.9.0.729-r2.ebuild102
3 files changed, 127 insertions, 0 deletions
diff --git a/dev-lang/mono/Manifest b/dev-lang/mono/Manifest
new file mode 100644
index 0000000..a26d89e
--- /dev/null
+++ b/dev-lang/mono/Manifest
@@ -0,0 +1 @@
+DIST mono-4.9.0.729.tar.bz2 100437013 SHA256 05dcd396c29d40ccc0c4985138bcbd7abca1c326b69c3a85edbc21d8bb5448ef SHA512 7db4b184a2cb6d8aec19cb9e7efd4bbd6fb1c3910bd7141c1109242dd9c389b33403ba28de8bd42c6af5620e92af4c8f79fef0eef2428c53960fc78077f1f973 WHIRLPOOL 070cc2a47ff2f87d7953d50e63c4d379961cb39fcc8009fe19ee7f2ca77fd65ff9f66e7b3844b0b33e89d41ac2d82876b07eec7bf63863a51932161aa4dae065
diff --git a/dev-lang/mono/files/autofac.patch b/dev-lang/mono/files/autofac.patch
new file mode 100644
index 0000000..1983c1d
--- /dev/null
+++ b/dev-lang/mono/files/autofac.patch
@@ -0,0 +1,24 @@
+--- a/mcs/class/System.Web/System.Web.Hosting/HostingEnvironment.cs
++++ b/mcs/class/System.Web/System.Web.Hosting/HostingEnvironment.cs
+@@ -156,9 +156,18 @@
+
+ HttpContext context = HttpContext.Current;
+ HttpRequest req = context == null ? null : context.Request;
+- if (req == null)
+- return null;
+-
++ if (req == null) // ADDED for Orchard
++ {
++ var pp = HostingEnvironment.ApplicationPhysicalPath;
++ String vp=virtualPath;
++ if (vp.IndexOf("~/") == 0)
++ {
++ vp = pp + virtualPath.Substring(2);
++ }
++ // TODO: if not "~/" ???? then what?
++ return vp;
++ } // END added for Orchard
++ else
+ return req.MapPath (virtualPath);
+ }
+
diff --git a/dev-lang/mono/mono-4.9.0.729-r2.ebuild b/dev-lang/mono/mono-4.9.0.729-r2.ebuild
new file mode 100644
index 0000000..5875ed3
--- /dev/null
+++ b/dev-lang/mono/mono-4.9.0.729-r2.ebuild
@@ -0,0 +1,102 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=6
+
+inherit eutils linux-info mono-env flag-o-matic pax-utils versionator multilib-minimal
+
+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}/nightly/${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
+"
+
+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_preinst() {
+ "${WORKDIR}/mono-4.9.0-abi_x86_32.x86/mono/mini/mono-sgen" "${WORKDIR}/mono-4.9.0-abi_x86_32.x86/mcs/tools/security/sn.exe" -i "${S}/mcs/class/mono.snk" "mono" || die
+}
+
+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
+
+ eapply "${FILESDIR}/autofac.patch"
+
+ default
+ #eapply_user
+ multilib_copy_sources
+}
+
+multilib_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)
+ )
+
+ econf "${myeconfargs[@]}"
+}
+
+multilib_src_test() {
+ cd mcs/tests || die
+ emake check
+}
+
+multilib_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
+}