From 1ddde3ff4dcb6196d010fc5169e7bdbc74d5b82d Mon Sep 17 00:00:00 2001 From: Arfrever Frehtes Taifersar Arahesis Date: Wed, 31 Mar 2021 20:00:00 +0000 Subject: [PATCH] dev-lang/mono: Add "kerberos" USE flag. Support app-crypt/heimdal. Closes: https://bugs.gentoo.org/779577 Signed-off-by: Arfrever Frehtes Taifersar Arahesis --- dev-lang/mono/files/mono-6.12.0.122-gss.patch | 126 ++++++++++++++++++ dev-lang/mono/mono-6.12.0.122.ebuild | 6 +- 2 files changed, 130 insertions(+), 2 deletions(-) create mode 100644 dev-lang/mono/files/mono-6.12.0.122-gss.patch diff --git a/dev-lang/mono/files/mono-6.12.0.122-gss.patch b/dev-lang/mono/files/mono-6.12.0.122-gss.patch new file mode 100644 index 00000000000..5478e0e843f --- /dev/null +++ b/dev-lang/mono/files/mono-6.12.0.122-gss.patch @@ -0,0 +1,126 @@ +--- /configure.ac ++++ /configure.ac +@@ -3804,45 +3804,74 @@ + # HAVE_CURLPIPE_MULTIPLEX check skipped because we don't use libcurl in mono + # HAVE_CURL_SSLVERSION_TLSv1_012 check skipped because we don't use libcurl in mono + +- enable_gss=no; +- AC_MSG_CHECKING(for GSS/GSS.h) +- AC_TRY_COMPILE([ +- #include +- ], [ +- ],[ +- AC_MSG_RESULT(yes) +- AC_DEFINE(HAVE_GSSFW_HEADERS, 1, [GSS/GSS.h]) +- AC_DEFINE(HAVE_GSS_SPNEGO_MECHANISM, 1, [GSS_SPNEGO_MECHANISM]) +- enable_gss=yes +- AC_DEFINE(ENABLE_GSS, 1, [ENABLE_GSS]) +- ], [ +- AC_MSG_RESULT(no) +- ]) ++ AC_ARG_ENABLE(gss, [ --enable-gss Enable support for GSS (enabled by default)], enable_gss=$enableval, enable_gss=yes) ++ if test "x$enable_gss" = "xyes"; then ++ AC_MSG_CHECKING(for GSS/GSS.h) ++ AC_TRY_COMPILE([ ++ #include ++ ], [ ++ ],[ ++ AC_MSG_RESULT(yes) ++ AC_DEFINE(HAVE_GSSFW_HEADERS, 1, [GSS/GSS.h]) ++ AC_DEFINE(HAVE_GSS_SPNEGO_MECHANISM, 1, [GSS_SPNEGO_MECHANISM]) ++ AC_DEFINE(ENABLE_GSS, 1, [ENABLE_GSS]) ++ ], [ ++ AC_MSG_RESULT(no) + +- AC_MSG_CHECKING(for gssapi/gssapi_ext.h) +- AC_TRY_COMPILE([ +- #include +- ], [ +- ],[ +- AC_MSG_RESULT(yes) +- enable_gss=yes +- AC_DEFINE(ENABLE_GSS, 1, [ENABLE_GSS]) +- ], [ +- AC_MSG_RESULT(no) +- ]) ++ AC_MSG_CHECKING(for gssapi/gssapi_ext.h) ++ AC_TRY_COMPILE([ ++ #include ++ ], [ ++ ],[ ++ AC_MSG_RESULT(yes) ++ AC_DEFINE(ENABLE_GSS, 1, [ENABLE_GSS]) ++ ], [ ++ AC_MSG_RESULT(no) ++ ++ AC_MSG_CHECKING(for gssapi/gssapi.h) ++ AC_TRY_COMPILE([ ++ #include ++ ], [ ++ ],[ ++ AC_MSG_RESULT(yes) ++ ++ AC_DEFINE(ENABLE_GSS, 1, [ENABLE_GSS]) ++ AC_DEFINE(HAVE_HEIMDAL_HEADERS, 1, [HAVE_HEIMDAL_HEADERS]) ++ ], [ ++ AC_MSG_RESULT(no) ++ enable_gss=no ++ ]) ++ ]) ++ ]) + +- AC_MSG_CHECKING(for GSS_SPNEGO_MECHANISM) +- AC_TRY_COMPILE([ +- #include +- #include +- gss_OID_set_desc gss_mech_spnego_OID_set_desc = {.count = 1, .elements = GSS_SPNEGO_MECHANISM}; +- ], [ +- ],[ +- AC_MSG_RESULT(yes) +- AC_DEFINE(HAVE_GSS_SPNEGO_MECHANISM, 1, [GSS_SPNEGO_MECHANISM]) +- ], [ +- AC_MSG_RESULT(no) +- ]) ++ if test "x$enable_gss" = "xyes"; then ++ AC_MSG_CHECKING(for GSS_SPNEGO_MECHANISM) ++ AC_TRY_COMPILE([ ++ #if HAVE_HEIMDAL_HEADERS ++ #include ++ #else ++ #include ++ #endif ++ #include ++ gss_OID_set_desc gss_mech_spnego_OID_set_desc = {.count = 1, .elements = GSS_SPNEGO_MECHANISM}; ++ ], [ ++ ],[ ++ AC_MSG_RESULT(yes) ++ AC_DEFINE(HAVE_GSS_SPNEGO_MECHANISM, 1, [GSS_SPNEGO_MECHANISM]) ++ ], [ ++ AC_MSG_RESULT(no) ++ ]) ++ ++ gssapi_lib="" ++ AC_CHECK_LIB(gssapi_krb5, gss_acquire_cred, [ ++ gssapi_lib="-lgssapi_krb5" ++ ], [ ++ AC_CHECK_LIB(gssapi, gss_acquire_cred, [ ++ gssapi_lib="-lgssapi" ++ ]) ++ ]) ++ fi ++ fi + + AM_CONDITIONAL(ENABLE_GSS, test x$enable_gss = xyes) + +@@ -6494,9 +6523,9 @@ + MONO_NATIVE_CFLAGS=$CFLAGS + MONO_NATIVE_LDFLAGS=$LDFLAGS + if test x$enable_gss = xyes; then +- MONO_NATIVE_LDFLAGS="$MONO_NATIVE_LDFLAGS -lgssapi_krb5" ++ MONO_NATIVE_LDFLAGS="$MONO_NATIVE_LDFLAGS ${gssapi_lib}" + else +- AC_MSG_WARN([GSS is not enabled, it requires libkrb5-dev package]) ++ AC_MSG_WARN([GSS is not enabled, it requires libkrb5-dev or libheimdal-dev package]) + fi + mono_native=yes + mono_native_compat=no diff --git a/dev-lang/mono/mono-6.12.0.122.ebuild b/dev-lang/mono/mono-6.12.0.122.ebuild index 5c928b7089e..a3ea747f54f 100644 --- a/dev-lang/mono/mono-6.12.0.122.ebuild +++ b/dev-lang/mono/mono-6.12.0.122.ebuild @@ -13,14 +13,14 @@ 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 ~x86 ~amd64-linux" -IUSE="doc minimal nls pax_kernel xen" +IUSE="doc kerberos minimal nls pax_kernel 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 ) + kerberos? ( virtual/krb5[${MULTILIB_USEDEP}] ) !minimal? ( >=dev-dotnet/libgdiplus-6.0.2 ) nls? ( sys-devel/gettext ) " @@ -36,6 +36,7 @@ BDEPEND=" PATCHES=( "${FILESDIR}"/${PN}-5.12-try-catch.patch + "${FILESDIR}"/${PN}-6.12.0.122-gss.patch ) pkg_pretend() { @@ -87,6 +88,7 @@ multilib_src_configure() { --disable-dtrace --enable-system-aot $(use_with doc mcs-docs) + $(use_enable kerberos gss) $(use_enable nls) ) -- 2.31.0