logo

overlay

My (experimental) gentoo overlay
commit: 467ab6496539a3b35d7b01cf4afb8343c02990ed
parent: c27b7bf8e6e613dafa536044ff529b58e9acd037
Author: Haelwenn (lanodan) Monnier <contact@hacktivis.me>
Date:   Thu, 26 Sep 2019 23:32:54 +0200

dev-lang/mono: Version bump from :gentoo, 6.4.0.198

Diffstat:

Adev-dotnet/dotnetcore-sdk/Manifest1+
Adev-dotnet/dotnetcore-sdk/dotnetcore-sdk-3.0.100.ebuild21+++++++++++++++++++++
Adev-lang/mono/Manifest1+
Adev-lang/mono/files/mono-5.0.1.1-x86_32.patch21+++++++++++++++++++++
Adev-lang/mono/files/mono-5.12-try-catch.patch31+++++++++++++++++++++++++++++++
Adev-lang/mono/metadata.xml12++++++++++++
Adev-lang/mono/mono-6.4.0.198.ebuild106+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
7 files changed, 193 insertions(+), 0 deletions(-)

diff --git a/dev-dotnet/dotnetcore-sdk/Manifest b/dev-dotnet/dotnetcore-sdk/Manifest @@ -0,0 +1 @@ +DIST dotnetcore-sdk-3.0.100.tar.gz 242229 BLAKE2B e50df681b973d2bc3731f093608daa9682d2d25938ea700c2266170aad2ac75b7d46b4058805dbb1aa7fb3904e04f15e4f6a419521fcd68a7e6be0d472fd8636 SHA512 44c80a558cc7c46ef82b84a99f6f815ac7e523fb02c78051444c6ecc860fc5b397e6c1c6f750c0734f9895d4f73bf21db305fff3f3b391413937e5d23d1fe8af diff --git a/dev-dotnet/dotnetcore-sdk/dotnetcore-sdk-3.0.100.ebuild b/dev-dotnet/dotnetcore-sdk/dotnetcore-sdk-3.0.100.ebuild @@ -0,0 +1,21 @@ +# Copyright 2019 Haelwenn (lanodan) Monnier <contact@hacktivis.me> +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +DESCRIPTION=".NET Core cli utility for building, testing, packaging and running projects" +HOMEPAGE="https://www.microsoft.com/net/core https://github.com/dotnet/core-sdk" +LICENSE="MIT" +SRC_URI="https://github.com/dotnet/core-sdk/archive/v${PV}.tar.gz -> ${P}.tar.gz" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64" +#IUSE="" + +S="${WORKDIR}/core-sdk-${PV}" + +#DEPEND="" +#RDEPEND="${DEPEND}" + +src_compile() { + OFFLINE=true ./build.sh || die +} diff --git a/dev-lang/mono/Manifest b/dev-lang/mono/Manifest @@ -0,0 +1 @@ +DIST mono-6.4.0.198.tar.xz 230056560 BLAKE2B 725ac790e235569837052e54f2cfa603ea8212e956f11ac8a5feb692bc41ed7e5de37c90a150e95624e41763e7b85496090a426e0dccb378dbb6836e6bf73a6f SHA512 2804f1a2e10de683230fc77684b9f795259e4d494e819afd3c9cf247bed20cac2b7f80612eccc8af619158d077447989784e9f2e56fc741bf601894b1969600d diff --git a/dev-lang/mono/files/mono-5.0.1.1-x86_32.patch b/dev-lang/mono/files/mono-5.0.1.1-x86_32.patch @@ -0,0 +1,21 @@ +Native toolchain can default to different ABI (amd64 in bug case). +Set target to i386. +https://bugs.gentoo.org/600664 +diff --git a/mono/mini/aot-compiler.c b/mono/mini/aot-compiler.c +index 0656a57..690c96b 100644 +--- a/mono/mini/aot-compiler.c ++++ b/mono/mini/aot-compiler.c +@@ -9926,4 +9926,6 @@ compile_asm (MonoAotCompile *acfg) + #ifdef TARGET_WIN32_MSVC + #define AS_OPTIONS "-c -x assembler" ++#elif defined(TARGET_X86) && !defined(TARGET_MACH) ++#define AS_OPTIONS "--32" + #elif defined(TARGET_AMD64) && !defined(TARGET_MACH) + #define AS_OPTIONS "--64" +@@ -9981,4 +9983,6 @@ compile_asm (MonoAotCompile *acfg) + #elif defined(TARGET_POWERPC64) + #define LD_OPTIONS "-m elf64ppc" ++#elif defined(TARGET_X86) ++#define LD_OPTIONS "-m elf_i386" + #endif + diff --git a/dev-lang/mono/files/mono-5.12-try-catch.patch b/dev-lang/mono/files/mono-5.12-try-catch.patch @@ -0,0 +1,31 @@ +diff -ur mono-5.9.0.398/mcs/class/System.Windows.Forms/System.Windows.Forms/XplatUIX11.cs mono-patched-5.9.0.398/mcs/class/System.Windows.Forms/System.Windows.Forms/XplatUIX11.cs +--- mono-5.9.0.398/mcs/class/System.Windows.Forms/System.Windows.Forms/XplatUIX11.cs 2017-11-17 18:12:57.000000000 +0300 ++++ mono-patched-5.9.0.398/mcs/class/System.Windows.Forms/System.Windows.Forms/XplatUIX11.cs 2017-12-06 06:24:45.067519852 +0300 +@@ -2810,14 +2810,21 @@ + + internal override object ClipboardRetrieve(IntPtr handle, int type, XplatUI.ClipboardToObject converter) + { +- XConvertSelection(DisplayHandle, handle, (IntPtr)type, (IntPtr)type, FosterParent, IntPtr.Zero); ++ try ++ { ++ XConvertSelection(DisplayHandle, handle, (IntPtr)type, (IntPtr)type, FosterParent, IntPtr.Zero); + +- Clipboard.Retrieving = true; +- while (Clipboard.Retrieving) { +- UpdateMessageQueue(null, false); +- } ++ Clipboard.Retrieving = true; ++ while (Clipboard.Retrieving) { ++ UpdateMessageQueue(null, false); ++ } + +- return Clipboard.Item; ++ return Clipboard.Item; ++ } ++ catch (Exception ex) ++ { ++ return null; ++ } + } + + internal override void ClipboardStore (IntPtr handle, object obj, int type, XplatUI.ObjectToClipboard converter, bool copy) diff --git a/dev-lang/mono/metadata.xml b/dev-lang/mono/metadata.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>contact@hacktivis.me</email> + <name>Haelwenn (lanodan) Monnier</name> + </maintainer> + <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-6.4.0.198.ebuild b/dev-lang/mono/mono-6.4.0.198.ebuild @@ -0,0 +1,106 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86 ~amd64-linux" + +SLOT="0" + +IUSE="nls minimal pax_kernel xen doc" + +inherit autotools eutils linux-info mono-env flag-o-matic pax-utils multilib-minimal + +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" + +SRC_URI="http://download.mono-project.com/sources/mono/${P}.tar.xz" + +#Note: mono works incorrect with older versions of libgdiplus +#details on dotnet overlay issue: https://github.com/gentoo/dotnet/issues/429 +COMMONDEPEND=" + !minimal? ( >=dev-dotnet/libgdiplus-5.6.1 ) + ia64? ( sys-libs/libunwind ) + nls? ( sys-devel/gettext ) +" +RDEPEND="${COMMONDEPEND}" +DEPEND="${COMMONDEPEND} + sys-devel/bc + virtual/yacc + pax_kernel? ( sys-apps/elfix ) + dev-util/cmake +" + +PATCHES=( + "${FILESDIR}"/${PN}-5.0.1.1-x86_32.patch + "${FILESDIR}"/mono-5.12-try-catch.patch +) + +pkg_pretend() { + linux-info_pkg_setup + if use kernel_linux; then + if linux_config_exists; then + linux_chkconfig_builtin SYSVIPC || die "SYSVIPC not enabled in the kernel" + else + # https://github.com/gentoo/gentoo/blob/f200e625bda8de696a28338318c9005b69e34710/eclass/linux-info.eclass#L686 + ewarn "kernel config not found" + ewarn "If CONFIG_SYSVIPC is not set in your kernel .config, mono will hang while compiling." + ewarn "See https://bugs.gentoo.org/261869 for more info." + fi + fi +} + +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 + + default + + # PATCHES contains configure.ac patch + eautoreconf + 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 +}