aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormpkh <cynede@gentoo.org>2018-03-26 10:34:59 +0400
committerGitHub <noreply@github.com>2018-03-26 10:34:59 +0400
commit4df81e950c5029612611ac183270477818861f44 (patch)
tree6274c1922ac77bd26d6fc26911dff88776927748
parentfix #384 (diff)
parentupdates to dotnet core sdk / runtime (diff)
downloaddotnet-4df81e950c5029612611ac183270477818861f44.tar.gz
dotnet-4df81e950c5029612611ac183270477818861f44.tar.bz2
dotnet-4df81e950c5029612611ac183270477818861f44.zip
Merge pull request #385 from grbd/master
Latest mono and a couple of fixes
-rw-r--r--dev-dotnet/dotnetcore-runtime-bin/Manifest2
-rw-r--r--dev-dotnet/dotnetcore-runtime-bin/dotnetcore-runtime-bin-2.0.6.ebuild45
-rw-r--r--dev-dotnet/dotnetcore-sdk-bin/Manifest1
-rw-r--r--dev-dotnet/dotnetcore-sdk-bin/dotnetcore-sdk-bin-2.1.102.ebuild46
-rw-r--r--dev-dotnet/dotnetzip-semverd/dotnetzip-semverd-1.9.3-r2.ebuild2
-rw-r--r--dev-lang/mono/Manifest2
-rw-r--r--dev-lang/mono/files/mono-5.10.0.179-ncurses61.patch106
-rw-r--r--dev-lang/mono/mono-5.10.0.160.ebuild110
-rw-r--r--dev-lang/mono/mono-5.10.0.179.ebuild114
-rw-r--r--eclass/mono.snkbin0 -> 596 bytes
-rw-r--r--eclass/xbuild.eclass3
11 files changed, 429 insertions, 2 deletions
diff --git a/dev-dotnet/dotnetcore-runtime-bin/Manifest b/dev-dotnet/dotnetcore-runtime-bin/Manifest
index 0ed3541..47d37cd 100644
--- a/dev-dotnet/dotnetcore-runtime-bin/Manifest
+++ b/dev-dotnet/dotnetcore-runtime-bin/Manifest
@@ -1,2 +1,4 @@
DIST dotnet-runtime-2.0.4-linux-arm.tar.gz 12742851 SHA256 50e8955644ebbecce51ea2cd6f28a5db3b2b93b2f7201befae30da2fa17ac299 SHA512 f3fff6782f8a704f5a2fbdb2680d81b15b80758525b3ebf52936e3b24afbfb5096a337cbd4a26414dfa2019a099dbfe6ab4de6ddaa048bdbabf9860f1c654491 WHIRLPOOL 0326470e45976a6ecd24a312960e284d683d4502b00c3b74c89f2381d0b7fa880a0591a2837a01f4e1f2debd94a2d01ff3c2b3bb0996b3a9fcfe8fa209870f9e
DIST dotnet-runtime-2.0.4-linux-x64.tar.gz 26017967 SHA256 9c0080bd82ea26a5721fa063885c5675071af9741693e90efeb8eea8c70ac6bc SHA512 447d9f20f97133e344bdc331c2e89d9b0d05818f9ad62a72ba021343d77df4cddad15f328f79797a67c9ca205a9f1fed1e6a3f156579467454aac24c7cf260b2 WHIRLPOOL 3f5900f3ffc2ad1a002de1a12398bf3c70dce5d8cff0463aa05650463926630a60df746377fe94c2ad785b1a8e03cdb2b37b3fafa0ced2d541269b964988df8e
+DIST dotnet-runtime-2.0.6-linux-arm.tar.gz 12746480 SHA256 57fb1c249af3389b4f9ac02cb02a5f67b95231edde02a68e1278fc21cb93c3ad SHA512 367ac4cef9507f8776edca8c73886dd100c1ad19a994139a0076c02426abac5ad1750ee16306c10be3fa6c428edcb02045ddbcd5b4603734a7b2a55ed0c4213a WHIRLPOOL 8b3218036ff4aa2bb78971b3d2da21aee0f95c1629f5250da88e08fba7e6f83f799899b34c5d438b1b0831a63e4a4045d87e8b7b096ba39f913ce1730dd5dcab
+DIST dotnet-runtime-2.0.6-linux-x64.tar.gz 26029472 SHA256 0eeb894d6e17ac0fc036997ba11ddf6665da5161e2e898788220e1945fa9bf11 SHA512 b8a00bbac9b0f4f9cf03785afa2aa71e6e5d24c1035ad9865e14c259eb06b3d98a524c1f2bb1567810a556a5c2380252642b7b43d919982c89962707e5361383 WHIRLPOOL 692fbc6de7c265fad2a6bb83cdf9f79113131f2b278d454dbd34870c0be6094e6a76692a001cfef3e642675cf6bc2fcae4dde86aec45d6a759ff14c6ce7b1bdc
diff --git a/dev-dotnet/dotnetcore-runtime-bin/dotnetcore-runtime-bin-2.0.6.ebuild b/dev-dotnet/dotnetcore-runtime-bin/dotnetcore-runtime-bin-2.0.6.ebuild
new file mode 100644
index 0000000..960374f
--- /dev/null
+++ b/dev-dotnet/dotnetcore-runtime-bin/dotnetcore-runtime-bin-2.0.6.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="6"
+
+inherit eutils
+
+DESCRIPTION=".NET Core Runtime - binary precompiled for glibc"
+HOMEPAGE="https://www.microsoft.com/net/core"
+LICENSE="MIT"
+
+SRC_URI="
+amd64? ( https://dotnetcli.blob.core.windows.net/dotnet/Runtime/${PV}/dotnet-runtime-${PV}-linux-x64.tar.gz -> dotnet-runtime-${PV}-linux-x64.tar.gz )
+arm? ( https://dotnetcli.blob.core.windows.net/dotnet/Runtime/${PV}/dotnet-runtime-${PV}-linux-arm.tar.gz -> dotnet-runtime-${PV}-linux-arm.tar.gz )
+"
+
+SLOT="0"
+KEYWORDS="~amd64 ~arm"
+
+# The sdk includes the runtime-bin and aspnet-bin so prevent from installing at the same time
+
+RDEPEND="
+ >=sys-apps/lsb-release-1.4
+ >=sys-devel/llvm-4.0
+ amd64? ( >=dev-util/lldb-4.0 )
+ >=sys-libs/libunwind-1.1-r1
+ >=dev-libs/icu-57.1
+ >=dev-util/lttng-ust-2.8.1
+ >=dev-libs/openssl-1.0.2h-r2
+ >=net-misc/curl-7.49.0
+ >=app-crypt/mit-krb5-1.14.2
+ >=sys-libs/zlib-1.2.8-r1
+ !dev-dotnet/dotnetcore-sdk
+ !dev-dotnet/dotnetcore-sdk-bin"
+
+S=${WORKDIR}
+
+src_install() {
+ local dest="opt/dotnet_core"
+ dodir "${dest}"
+
+ local ddest="${D}${dest}"
+ cp -a "${S}"/* "${ddest}/" || die
+ dosym "/${dest}/dotnet" "/usr/bin/dotnet"
+}
diff --git a/dev-dotnet/dotnetcore-sdk-bin/Manifest b/dev-dotnet/dotnetcore-sdk-bin/Manifest
index 97cdec4..98b7e00 100644
--- a/dev-dotnet/dotnetcore-sdk-bin/Manifest
+++ b/dev-dotnet/dotnetcore-sdk-bin/Manifest
@@ -1 +1,2 @@
+DIST dotnet-sdk-2.1.102-linux-x64.tar.gz 160471459 SHA256 9ce5b9031099bd89ecea9180f48a39e6fbd388b651d4d9e99e95711662988343 SHA512 39bcc14c6453552ea5f400aac7b5838a0361dd15cc2ed9d2794f1185ac2e38c82478e32712e1ad483eeb4edf4b485bb799de26368fccacd98e6c0819f8ff7eef WHIRLPOOL 083237e48e92bb8e83f813d6c5e6cda398b6a38179f4da651ee7e7fa43045cf4e71ed5d3eeec2eb61a0843f37d6480ae55c609c34a0a3466e34d8a3e7a2a5f48
DIST dotnet-sdk-2.1.3-linux-x64.tar.gz 148274081 SHA256 e6432b824395d88a69b77cc50427f2b5a41d44964c377125c53f02783aaa5005 SHA512 509b88895fd5a6a90e245141eb52f188aa9ee7d20188c213892483c142900d6975013aef9ca6d8da986cc5617a2c3571e22318297c51578b871c047602757600 WHIRLPOOL 8970e566a9e64d85d697adf785d468bf35493b743011fd1bd3cc82be0de6bdf34752376590272951ba00182ee5a7b97b5ff572af1321c76e3237af40d07fbbbe
diff --git a/dev-dotnet/dotnetcore-sdk-bin/dotnetcore-sdk-bin-2.1.102.ebuild b/dev-dotnet/dotnetcore-sdk-bin/dotnetcore-sdk-bin-2.1.102.ebuild
new file mode 100644
index 0000000..572e61c
--- /dev/null
+++ b/dev-dotnet/dotnetcore-sdk-bin/dotnetcore-sdk-bin-2.1.102.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="6"
+
+inherit eutils
+
+DESCRIPTION=".NET Core SDK - binary precompiled for glibc"
+HOMEPAGE="https://www.microsoft.com/net/core"
+LICENSE="MIT"
+
+SRC_URI="
+amd64? ( https://download.microsoft.com/download/1/2/E/12E2BC14-7A9F-4497-A351-02B7C2DDD599/dotnet-sdk-${PV}-linux-x64.tar.gz -> dotnet-sdk-${PV}-linux-x64.tar.gz )
+"
+
+SLOT="0"
+KEYWORDS="~amd64"
+
+# The sdk includes the runtime-bin and aspnet-bin so prevent from installing at the same time
+# dotnetcore-sdk is the source based build
+
+RDEPEND="
+ >=sys-apps/lsb-release-1.4
+ >=sys-devel/llvm-4.0
+ >=dev-util/lldb-4.0
+ >=sys-libs/libunwind-1.1-r1
+ >=dev-libs/icu-57.1
+ >=dev-util/lttng-ust-2.8.1
+ >=dev-libs/openssl-1.0.2h-r2
+ >=net-misc/curl-7.49.0
+ >=app-crypt/mit-krb5-1.14.2
+ >=sys-libs/zlib-1.2.8-r1
+ !dev-dotnet/dotnetcore-sdk
+ !dev-dotnet/dotnetcore-runtime-bin
+ !dev-dotnet/dotnetcore-aspnet-bin"
+
+S=${WORKDIR}
+
+src_install() {
+ local dest="opt/dotnet_core"
+ dodir "${dest}"
+
+ local ddest="${D}${dest}"
+ cp -a "${S}"/* "${ddest}/" || die
+ dosym "/${dest}/dotnet" "/usr/bin/dotnet"
+}
diff --git a/dev-dotnet/dotnetzip-semverd/dotnetzip-semverd-1.9.3-r2.ebuild b/dev-dotnet/dotnetzip-semverd/dotnetzip-semverd-1.9.3-r2.ebuild
index 84901af..3916d5e 100644
--- a/dev-dotnet/dotnetzip-semverd/dotnetzip-semverd-1.9.3-r2.ebuild
+++ b/dev-dotnet/dotnetzip-semverd/dotnetzip-semverd-1.9.3-r2.ebuild
@@ -11,7 +11,7 @@ SLOT="0"
USE_DOTNET="net45"
-inherit dotnet gac mono-pkg-config
+inherit dotnet gac mono-pkg-config xbuild
SRC_URI="https://github.com/haf/DotNetZip.Semverd/archive/v1.9.3.tar.gz -> ${PV}.tar.gz
https://github.com/mono/mono/raw/master/mcs/class/mono.snk"
diff --git a/dev-lang/mono/Manifest b/dev-lang/mono/Manifest
index 00c5414..27ca072 100644
--- a/dev-lang/mono/Manifest
+++ b/dev-lang/mono/Manifest
@@ -1,4 +1,6 @@
DIST mono-5.0.1.1.tar.bz2 154477308 SHA256 48d6ae71d593cd01bf0f499de569359d45856cda325575e1bacb5fabaa7e9718 SHA512 de2a8a3580b8236bafdc7e6967d68da08bf2dc775bce5166aba6134c1b986ae7fc56b97743d5122de14bf8fe074d3508c07324735616439dea0913633ee817da WHIRLPOOL 21fa5f28ed85873d41b1d3a724e7a47c678a177a350a648bf148b6aa870f68caaf47da9ba139a0c3d4a71cc15416a086642a522676a542771e5142c757c9fea6
+DIST mono-5.10.0.160.tar.bz2 210503187 SHA256 167d3e1504bfb4fdbf08708f75937bf0e8421bf481de1723d9fa219dc7c8f8d8 SHA512 60e9781309a8b92626ba31bb3b9c98faa63c92b494f20399c8fce50b4370c774c361fca3150d30ea7c672fba17ecc0c2c057682043cca7172857b286f25d115f WHIRLPOOL 6ae83ee98471425bb543a7811888422b0d9b2995772ab1c3fa41c53a370b071c77d5fbdced4f1504b4c63f2a69829e439021c15f07981866b6c648f24a10328b
+DIST mono-5.10.0.179.tar.bz2 210710890 SHA256 e7bdd638d456364abc34440523cef39f4f89e6ee4e7b0a329d3e42fc74de5cd8 SHA512 bda3e13f8c1598ecf2ab4ad288a4f92b24e91262c2e4ddf318d2dba981198fd28427a4ff455e68f71c88b995db950b85da69d197ce04147281ffa94a994e3434 WHIRLPOOL 21b4c531a9145793fb5522526412a6d93012bfdb457f8f556e69df52baf30479daf7c7e5431cd9c15ba111e78d7e30720c0803bf54b53164b50e66592cce22f1
DIST mono-5.11.0.132.tar.bz2 208457253 SHA256 e04847b69ebf5cc34779fd3cd50cf5a67befaa33a49deb209dcc8700e1b3ec1f SHA512 56058e5ad62a31b6e8748de94d1f416f18f3a85fd996b9c4560fc552b96e00cd3b326b8e98e3736eccc131f19e3525a5982fa4781d5d165d4d4f4f0f64cda689 WHIRLPOOL be0977ea7a60257aba7a9eca3fa1a8793b7f693ffa9c54354207b0d0966841f65e82a459dab5d4bf260d331783a96f50babd40d3d6df76748970a46e58db1981
DIST mono-5.2.0.196.tar.bz2 158175736 SHA256 731634b24c89680660fed1efd63a39ec6c052e519ae9a2dce61f875598329366 SHA512 9a767d3fa30ef2d96cce13767c5da5604443495071da475a1f1452916501f2b6a94c2a45dfeee49cc0423cfeee48640a28989ea5d61270fbd51cadd143dc425c WHIRLPOOL 85841722c311d5eb976213a18a771930bd67994706007f1ffa536c4380c877f2b7d422798f51a6567554eb93e81fff33477106bba534881fcd985076f8168fa6
DIST mono-5.2.0.224.tar.bz2 158434164 SHA256 03b8e463032bc425673dec844b35b4c669f5b99b0e45521195efb3741a9f5e94 SHA512 914ab11c892f6e59c1a89d92eb4b130a62ea606691820f9d9f48a2a68f7de3e593c233be071cd37ad5d817c5f5fda6892f89f1b0985fc44de97c1297300c706b WHIRLPOOL 3c16019246341dc1abcc98358bc977142ff35510c226a76d5069bce0cece4754c1f81ca176f1ad988aabebfd482a03b524267aa3136e0df144c703ba3bea6c6f
diff --git a/dev-lang/mono/files/mono-5.10.0.179-ncurses61.patch b/dev-lang/mono/files/mono-5.10.0.179-ncurses61.patch
new file mode 100644
index 0000000..93a1f8f
--- /dev/null
+++ b/dev-lang/mono/files/mono-5.10.0.179-ncurses61.patch
@@ -0,0 +1,106 @@
+diff -Naur mono-5.10.0.179.orig/mcs/class/corlib/System/TermInfoReader.cs mono-5.10.0.179/mcs/class/corlib/System/TermInfoReader.cs
+--- mono-5.10.0.179.orig/mcs/class/corlib/System/TermInfoReader.cs 2018-03-19 07:46:31.000000000 +0000
++++ mono-5.10.0.179/mcs/class/corlib/System/TermInfoReader.cs 2018-03-25 20:57:57.721279733 +0100
+@@ -72,16 +72,16 @@
+ //
+
+ class TermInfoReader {
+- //short nameSize;
+- short boolSize;
+- short numSize;
+- short strOffsets;
+- //short strSize;
++ int boolSize;
++ int numSize;
++ int strOffsets;
+
+ //string [] names; // Last one is the description
+ byte [] buffer;
+ int booleansOffset;
+ //string term;
++
++ int intOffset;
+
+ public TermInfoReader (string term, string filename)
+ {
+@@ -114,12 +114,21 @@
+ // get { return term; }
+ // }
+
++ void DetermineVersion (short magic)
++ {
++ if (magic == 0x11a)
++ intOffset = 2;
++ else if (magic == 0x21e)
++ intOffset = 4;
++ else
++ throw new Exception (String.Format ("Magic number is unexpected: {0}", magic));
++ }
++
+ void ReadHeader (byte [] buffer, ref int position)
+ {
+ short magic = GetInt16 (buffer, position);
+ position += 2;
+- if (magic != 282)
+- throw new Exception (String.Format ("Magic number is wrong: {0}", magic));
++ DetermineVersion (magic);
+
+ /*nameSize =*/ GetInt16 (buffer, position);
+ position += 2;
+@@ -161,8 +170,8 @@
+ if ((offset % 2) == 1)
+ offset++;
+
+- offset += ((int) number) * 2;
+- return GetInt16 (buffer, offset);
++ offset += ((int) number) * intOffset;
++ return GetInteger (buffer, offset);
+ }
+
+ public string Get (TermInfoStrings tstr)
+@@ -175,7 +184,7 @@
+ if ((offset % 2) == 1)
+ offset++;
+
+- offset += numSize * 2;
++ offset += numSize * intOffset;
+ int off2 = GetInt16 (buffer, offset + (int) tstr * 2);
+ if (off2 == -1)
+ return null;
+@@ -193,7 +202,7 @@
+ if ((offset % 2) == 1)
+ offset++;
+
+- offset += numSize * 2;
++ offset += numSize * intOffset;
+ int off2 = GetInt16 (buffer, offset + (int) tstr * 2);
+ if (off2 == -1)
+ return null;
+@@ -211,6 +220,27 @@
+ return (short) (uno + dos * 256);
+ }
+
++ int GetInt32 (byte [] buffer, int offset)
++ {
++ int b1 = (int) buffer [offset];
++ int b2 = (int) buffer [offset + 1];
++ int b3 = (int) buffer [offset + 2];
++ int b4 = (int) buffer [offset + 3];
++ if (b1 == 255 && b2 == 255 && b3 == 255 && b4 == 255)
++ return -1;
++
++ return b1 + b2 << 8 + b3 << 16 + b4 << 24;
++ }
++
++ int GetInteger (byte [] buffer, int offset)
++ {
++ if (intOffset == 2)
++ return GetInt16 (buffer, offset);
++ else
++ // intOffset == 4
++ return GetInt32 (buffer, offset);
++ }
++
+ string GetString (byte [] buffer, int offset)
+ {
+ int length = 0;
diff --git a/dev-lang/mono/mono-5.10.0.160.ebuild b/dev-lang/mono/mono-5.10.0.160.ebuild
new file mode 100644
index 0000000..f25dd8d
--- /dev/null
+++ b/dev-lang/mono/mono-5.10.0.160.ebuild
@@ -0,0 +1,110 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit autotools 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}/${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 ~arm64"
+
+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-util/cmake
+ !dev-lang/mono-basic
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-5.0.1.1-x86_32.patch
+)
+
+#S="${WORKDIR}/${PN}-$(get_version_component_range 1-3)"
+
+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
+
+ #TODO: resolve problem with newer binutils
+ #bug: https://bugs.gentoo.org/show_bug.cgi?id=600664
+ #append-flags -fPIC
+
+ 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
+}
diff --git a/dev-lang/mono/mono-5.10.0.179.ebuild b/dev-lang/mono/mono-5.10.0.179.ebuild
new file mode 100644
index 0000000..f709724
--- /dev/null
+++ b/dev-lang/mono/mono-5.10.0.179.ebuild
@@ -0,0 +1,114 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit autotools 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}/${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 ~arm64"
+
+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-util/cmake
+ !dev-lang/mono-basic
+"
+
+# Patch added for ncurses 6.1
+# https://github.com/mono/mono/issues/6752
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-5.0.1.1-x86_32.patch
+ "${FILESDIR}"/${PN}-5.10.0.179-ncurses61.patch
+)
+
+#S="${WORKDIR}/${PN}-$(get_version_component_range 1-3)"
+
+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
+
+ #TODO: resolve problem with newer binutils
+ #bug: https://bugs.gentoo.org/show_bug.cgi?id=600664
+ #append-flags -fPIC
+
+ 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
+}
diff --git a/eclass/mono.snk b/eclass/mono.snk
new file mode 100644
index 0000000..380116c
--- /dev/null
+++ b/eclass/mono.snk
Binary files differ
diff --git a/eclass/xbuild.eclass b/eclass/xbuild.eclass
index 90a60c1..7e935d3 100644
--- a/eclass/xbuild.eclass
+++ b/eclass/xbuild.eclass
@@ -52,10 +52,11 @@ exbuild() {
# @DESCRIPTION: run xbuild with default key signing
exbuild_strong() {
# http://stackoverflow.com/questions/7903321/only-sign-assemblies-with-strong-name-during-release-build
+ DOTNET_ECLASSDIR="`dirname "${EBUILD}"`/../../eclass"
if use gac; then
if [[ -z ${SNK_FILENAME} ]]; then
# elog ${BASH_SOURCE}
- SNK_FILENAME=/var/lib/layman/dotnet/eclass/mono.snk
+ SNK_FILENAME="${DOTNET_ECLASSDIR}/mono.snk"
# sn - Digitally sign/verify/compare strongnames on CLR assemblies.
# man sn = http://linux.die.net/man/1/sn
if [ -f ${SNK_FILENAME} ]; then