commit: fd66d2443a28cec81ad498ab5caa9e3188e4f783 Author: Heather <Heather <AT> live <DOT> ru> AuthorDate: Sat Aug 1 14:24:29 2015 +0000 Commit: Heather Cynede <cynede <AT> gentoo <DOT> org> CommitDate: Sat Aug 1 14:24:29 2015 +0000 URL: https://gitweb.gentoo.org/proj/dotnet.git/commit/?id=fd66d244
port mono improvements from pr #88 to mono 4.0.3.13 dev-lang/mono/mono-4.0.3.13.ebuild | 106 +++++++------------------------------ 1 file changed, 19 insertions(+), 87 deletions(-) diff --git a/dev-lang/mono/mono-4.0.3.13.ebuild b/dev-lang/mono/mono-4.0.3.13.ebuild index 67f224e..e182449 100644 --- a/dev-lang/mono/mono-4.0.3.13.ebuild +++ b/dev-lang/mono/mono-4.0.3.13.ebuild @@ -4,8 +4,9 @@ EAPI=5 AUTOTOOLS_PRUNE_LIBTOOL_FILES="all" +AUTOTOOLS_AUTORECONF=1 -inherit eutils linux-info mono-env flag-o-matic pax-utils autotools-utils +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" @@ -16,12 +17,11 @@ SLOT="0" KEYWORDS="~amd64 ~ppc ~ppc64 ~x86 ~amd64-linux" -#IUSE="nls minimal pax_kernel xen doc debug sgen llvm" -IUSE="nls minimal pax_kernel xen doc debug sgen" +IUSE="nls minimal pax_kernel xen doc" COMMONDEPEND=" !minimal? ( >=dev-dotnet/libgdiplus-2.10 ) - ia64? ( sys-libs/libunwind ) + ia64? ( sys-libs/libunwind ) nls? ( sys-devel/gettext ) " RDEPEND="${COMMONDEPEND} @@ -34,7 +34,8 @@ DEPEND="${COMMONDEPEND} " MAKEOPTS="${MAKEOPTS} -j1" #nowarn -S="${WORKDIR}/${PN}-4.0.3" + +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. @@ -59,113 +60,44 @@ src_prepare() { sed '/exec "/ i\paxctl-ng -mr "$r/@mono_runtime@"' -i "${S}"/runtime/mono-wrapper.in || die "Failed to sed mono-wrapper.in" fi - # strip-flags and append-flags are from - # https://devmanual.gentoo.org/eclass-reference/flag-o-matic.eclass/index.html - # (common functions to manipulate and query toolchain flags) - # mono build system can fail otherwise strip-flags - # Remove this at your own peril. Mono will barf in unexpected ways. - append-flags -fno-strict-aliasing - - #fix vb targets http://osdir.com/ml/general/2015-05/msg20808.html + # Fix VB targets + # http://osdir.com/ml/general/2015-05/msg20808.html epatch "${FILESDIR}/add_missing_vb_portable_targets.patch" + # Fix build on big-endian machines + # https://bugzilla.xamarin.com/show_bug.cgi?id=31779 + epatch "${FILESDIR}/${PN}-4.0.2.5-fix-decimal-ms-on-big-endian.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" + autotools-utils_src_prepare + epatch "${FILESDIR}/systemweb3.patch" } src_configure() { - # Very handy to specify ./configure argument without modifying .ebuild: - # EXTRA_ECONF="--enable-foo ......" emerge package - # see also - # https://devmanual.gentoo.org/ebuild-writing/functions/src_configure/configuring/index.html - # https://devmanual.gentoo.org/eclass-reference/autotools.eclass/ - - # NOTE: We need the static libs for now so mono-debugger works. - # See http://bugs.gentoo.org/show_bug.cgi?id=256264 for details - # - # --without-moonlight since www-plugins/moonlight is not the only one - # using mono: https://bugzilla.novell.com/show_bug.cgi?id=641005#c3 - # - # --with-profile4 needs to be always enabled since it's used by default - # and, otherwise, problems like bug #340641 appear. - # - # sgen fails on ppc, bug #359515 local myeconfargs=( - --enable-system-aot=yes - --enable-static - --disable-quiet-build - --without-moonlight - --with-libgdiplus=$(usex minimal no installed) + --disable-silent-rules $(use_with xen xen_opt) --without-ikvm-native - --with-jit --disable-dtrace - --with-profile4 - --with-sgen=$(usex ppc no yes) $(use_with doc mcs-docs) - $(use_enable debug) $(use_enable nls) ) -# # "included" is default option - https://github.com/mono/mono#configuration-options -# if use boehm-gc; then -# myeconfargs+=( -# --with-gc=included -# ) -# fi - -# this will lead to error -# make[3]: *** No rule to make target '../../mono/metadata/libmonoruntime-static.a', needed by 'monodis'. Stop. -# if ! use sgen; then -# myeconfargs+=( -# --with-sgen=no -# ) -# fi - -# if use llvm; then -# myeconfargs+=( -# --enable-llvm -# --enable-loadedllvm -# ) -# fi - - elog "myeconfargs=${myeconfargs}" autotools-utils_src_configure - - # FIX for uncompilable 3.4.0 sources - FF="${WORKDIR}/mono-3.4.0/mcs/tools/xbuild/targets/Microsoft.Portable.Common.targets" - rm -f $FF - touch $FF - echo '<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">' >> $FF - echo ' <Import Project="..\\Microsoft.Portable.Core.props" />' >> $FF - echo ' <Import Project="..\\Microsoft.Portable.Core.targets" />' >> $FF - echo '</Project>' >> $FF } src_compile() { - nonfatal autotools-utils_src_compile || { - eqawarn "maintainer of this ebuild has no idea why it fails. If you happen to know how to fix it - please let me know" - autotools-utils_src_compile - } + autotools-utils_src_compile } src_test() { cd mcs/tests || die emake check } - -src_install() { - autotools-utils_src_install - - elog "Rewriting symlink" - # you have mono-boehm and mono-sgen executables - # mono is just a symlink to mono-sgen - if use sgen; then - dosym mono-sgen /usr/bin/mono - else - dosym mono-boehm /usr/bin/mono - fi -}
