From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <gentoo-commits+bounces-1578048-garchives=archives.gentoo.org@lists.gentoo.org>
Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (2048 bits))
	(No client certificate requested)
	by finch.gentoo.org (Postfix) with ESMTPS id CB8C7158013
	for <garchives@archives.gentoo.org>; Sat,  9 Dec 2023 18:11:08 +0000 (UTC)
Received: from pigeon.gentoo.org (localhost [127.0.0.1])
	by pigeon.gentoo.org (Postfix) with SMTP id 038322BC02F;
	Sat,  9 Dec 2023 18:11:08 +0000 (UTC)
Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(No client certificate requested)
	by pigeon.gentoo.org (Postfix) with ESMTPS id D01EF2BC04D
	for <gentoo-commits@lists.gentoo.org>; Sat,  9 Dec 2023 18:11:07 +0000 (UTC)
Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(No client certificate requested)
	by smtp.gentoo.org (Postfix) with ESMTPS id ABA01342FAB
	for <gentoo-commits@lists.gentoo.org>; Sat,  9 Dec 2023 18:11:06 +0000 (UTC)
Received: from localhost.localdomain (localhost [IPv6:::1])
	by oystercatcher.gentoo.org (Postfix) with ESMTP id C8FFEB40
	for <gentoo-commits@lists.gentoo.org>; Sat,  9 Dec 2023 18:11:04 +0000 (UTC)
From: "Sam James" <sam@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Content-Transfer-Encoding: 8bit
Content-type: text/plain; charset=UTF-8
Reply-To: gentoo-dev@lists.gentoo.org, "Sam James" <sam@gentoo.org>
Message-ID: <1702145159.6b4bcffa3bccaf8ba8c99c65bd9dbd1f445b196d.sam@gentoo>
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-lang/mono/files/, dev-lang/mono/
X-VCS-Repository: repo/gentoo
X-VCS-Files: dev-lang/mono/files/mono-6.12.0.199-configure-c99.patch dev-lang/mono/mono-6.12.0.199-r2.ebuild
X-VCS-Directories: dev-lang/mono/ dev-lang/mono/files/
X-VCS-Committer: sam
X-VCS-Committer-Name: Sam James
X-VCS-Revision: 6b4bcffa3bccaf8ba8c99c65bd9dbd1f445b196d
X-VCS-Branch: master
Date: Sat,  9 Dec 2023 18:11:04 +0000 (UTC)
Precedence: bulk
List-Post: <mailto:gentoo-commits@lists.gentoo.org>
List-Help: <mailto:gentoo-commits+help@lists.gentoo.org>
List-Unsubscribe: <mailto:gentoo-commits+unsubscribe@lists.gentoo.org>
List-Subscribe: <mailto:gentoo-commits+subscribe@lists.gentoo.org>
List-Id: Gentoo Linux mail <gentoo-commits.gentoo.org>
X-BeenThere: gentoo-commits@lists.gentoo.org
X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply
X-Archives-Salt: 2b0513a3-3480-480f-bff0-9714b3ff8e42
X-Archives-Hash: 5967f77bc52b2d5dffca690326c5b090

commit:     6b4bcffa3bccaf8ba8c99c65bd9dbd1f445b196d
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sat Dec  9 15:27:04 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sat Dec  9 18:05:59 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6b4bcffa

dev-lang/mono: fix modern C issue in configure

Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../mono/files/mono-6.12.0.199-configure-c99.patch |  51 ++++++++
 dev-lang/mono/mono-6.12.0.199-r2.ebuild            | 130 +++++++++++++++++++++
 2 files changed, 181 insertions(+)

diff --git a/dev-lang/mono/files/mono-6.12.0.199-configure-c99.patch b/dev-lang/mono/files/mono-6.12.0.199-configure-c99.patch
new file mode 100644
index 000000000000..3018dbe8339c
--- /dev/null
+++ b/dev-lang/mono/files/mono-6.12.0.199-configure-c99.patch
@@ -0,0 +1,51 @@
+https://github.com/mono/mono/pull/21730
+
+From 90315aa24569d13da93230ac2d3e5ec3c96f35b4 Mon Sep 17 00:00:00 2001
+From: Florian Weimer <fweimer@redhat.com>
+Date: Sat, 9 Dec 2023 00:06:09 +0100
+Subject: [PATCH] configure: Fix type errors in __thread test
+
+The thread start routine must return void *, and int and void *
+are distinct types.  Compilers increasingly issue errors instead
+of warnings for such type errors, and this causes the configure
+probe to fail unconditionally, even if the system supports
+__thread variables.
+---
+ configure.ac | 10 +++++++---
+ 1 file changed, 7 insertions(+), 3 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index dbc4904d9b2e4..7518439118e37 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -2831,14 +2831,16 @@ if test x$host_win32 = xno; then
+ 			__thread int i;
+ 			static int res1, res2;
+ 
+-			void thread_main (void *arg)
++			void *thread_main (void *parg)
+ 			{
++				int arg = *(int *)parg;
+ 				i = arg;
+ 				sleep (1);
+ 				if (arg == 1)
+ 					res1 = (i == arg);
+ 				else
+ 					res2 = (i == arg);
++				return NULL;
+ 			}
+ 
+ 			int main () {
+@@ -2846,8 +2848,10 @@ if test x$host_win32 = xno; then
+ 
+ 				i = 5;
+ 
+-				pthread_create (&t1, NULL, thread_main, 1);
+-				pthread_create (&t2, NULL, thread_main, 2);
++				int one = 1;
++				pthread_create (&t1, NULL, thread_main, &one);
++				int two = 2;
++				pthread_create (&t2, NULL, thread_main, &two);
+ 
+ 				pthread_join (t1, NULL);
+ 				pthread_join (t2, NULL);

diff --git a/dev-lang/mono/mono-6.12.0.199-r2.ebuild b/dev-lang/mono/mono-6.12.0.199-r2.ebuild
new file mode 100644
index 000000000000..f18742acabed
--- /dev/null
+++ b/dev-lang/mono/mono-6.12.0.199-r2.ebuild
@@ -0,0 +1,130 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CHECKREQS_DISK_BUILD="4500M"
+inherit autotools check-reqs flag-o-matic linux-info mono-env pax-utils multilib-minimal
+
+DESCRIPTION="Mono runtime and class libraries, a C# compiler/interpreter"
+HOMEPAGE="https://mono-project.com"
+SRC_URI="https://download.mono-project.com/sources/mono/${P}.tar.xz"
+
+LICENSE="MIT LGPL-2.1 GPL-2 BSD-4 NPL-1.1 Ms-PL GPL-2-with-linking-exception IDPL"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 -riscv ~x86 ~amd64-linux"
+IUSE="doc minimal nls pax-kernel selinux xen"
+
+# Note: mono works incorrect with older versions of libgdiplus
+# Details on dotnet overlay issue: https://github.com/gentoo/dotnet/issues/429
+DEPEND="
+	app-crypt/mit-krb5[${MULTILIB_USEDEP}]
+	sys-libs/zlib[${MULTILIB_USEDEP}]
+	ia64? ( sys-libs/libunwind )
+	!minimal? ( >=dev-dotnet/libgdiplus-6.0.2 )
+	nls? ( sys-devel/gettext )
+"
+RDEPEND="
+	${DEPEND}
+	app-misc/ca-certificates
+	selinux? ( sec-policy/selinux-mono )
+"
+# CMake is used for bundled deps
+BDEPEND="
+	dev-util/cmake
+	sys-devel/bc
+	app-alternatives/yacc
+	pax-kernel? ( sys-apps/elfix )
+"
+
+PATCHES=(
+	"${FILESDIR}"/${PN}-5.12-try-catch.patch
+	"${FILESDIR}"/${PN}-6.12.0.122-disable-automagic-ccache.patch
+	"${FILESDIR}"/${PN}-6.12.0.199-configure-c99.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
+
+	# bug #687892
+	check-reqs_pkg_pretend
+}
+
+pkg_setup() {
+	mono-env_pkg_setup
+	check-reqs_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 enabled, bug #286280
+	# RANDMMAP kills the build process too, bug #347365
+	# We use paxmark.sh to get PT/XT logic, bug #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
+
+	default
+
+	# PATCHES contains configure.ac patch
+	eautoreconf
+	multilib_copy_sources
+}
+
+multilib_src_configure() {
+	# Many, many unsafe warnings. Miscompiled with -O3 too: bug #915985.
+	append-flags -O2 -fno-strict-aliasing
+	filter-lto
+
+	local myeconfargs=(
+		$(use_with xen xen_opt)
+		--without-ikvm-native
+		--disable-dtrace
+		--enable-system-aot
+		$(multilib_native_use_with doc mcs-docs)
+		$(use_enable nls)
+	)
+
+	# Workaround(?) for bug #779025
+	# May be able to do a real fix by adjusting path used?
+	if multilib_is_native_abi ; then
+		myeconfargs+=( --enable-system-aot )
+	else
+		myeconfargs+=( --disable-system-aot )
+	fi
+
+	econf "${myeconfargs[@]}"
+}
+
+multilib_src_test() {
+	emake -C mcs/tests check
+}
+
+multilib_src_install() {
+	default
+
+	# 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
+}
+
+pkg_postinst() {
+	# bug #762265
+	cert-sync "${EROOT}"/etc/ssl/certs/ca-certificates.crt
+}