1
0
mirror of https://git.FreeBSD.org/ports.git synced 2025-01-03 06:04:53 +00:00

Repo-copy existing lang/mono port to lang/mono5.10 in preparation for

switching lang/mono to a metaport.
This commit is contained in:
Mark Linimon 2020-12-18 19:32:37 +00:00
parent 4efe7bdc2b
commit fcb2e9b294
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=558399
16 changed files with 3352 additions and 0 deletions

95
lang/mono5.10/Makefile Normal file
View File

@ -0,0 +1,95 @@
# Created by: Yukihiro Nakai <nakai@FreeBSD.org>
# $FreeBSD$
PORTNAME= mono
PORTVERSION= 5.10.1.57
PORTREVISION= 3
CATEGORIES= lang
MASTER_SITES= https://download.mono-project.com/sources/mono/
DISTFILES= ${PORTNAME}-${PORTVERSION}${EXTRACT_SUFX}
MAINTAINER= mono@FreeBSD.org
COMMENT= Open source implementation of .NET Development Framework
LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/LICENSE
ONLY_FOR_ARCHS= amd64 armv6 armv7 i386 powerpc
BUILD_DEPENDS= p5-XML-Parser>=0:textproc/p5-XML-Parser \
bash:shells/bash \
cmake>0:devel/cmake
LIB_DEPENDS= libinotify.so:devel/libinotify
RUN_DEPENDS= ${PY_PILLOW} \
ca_root_nss>=0:security/ca_root_nss
CONFLICTS_INSTALL= czmq-3*
OPTIONS_DEFINE= MONOLITE NLS X11
OPTIONS_DEFAULT= MONOLITE X11
OPTIONS_SUB= yes
MONOLITE_DESC= Use monolite to bootstrap mcs (otherwise use installed mcs)
MONOLITE_DISTFILES= monolite-linux-${MONOLITE_VERSION}-latest.tar.gz:monolite
MONOLITE_MASTER_SITES= http://download.mono-project.com/monolite/:monolite
MONOLITE_VERSION= 1051000004
NLS_CONFIGURE_OFF= --disable-nls
NLS_USES= gettext
X11_USES= display:test
USES= autoreconf bison compiler:c11 cpe gmake iconv libtool \
pathfix perl5 python shebangfix tar:bzip2
USE_PERL5= build
GNU_CONFIGURE= yes
USE_LDCONFIG= yes
SHEBANG_FILES= scripts/mono-heapviz mono/mini/genmdesc.py mono/tests/test_lldb.py
BINARY_ALIAS= python=${PYTHON_CMD}
CONFIGURE_ARGS= --disable-dtrace --enable-btls
CONFIGURE_ENV= ac_cv_header_sys_inotify_h=no
MAKE_ENV= MONO_SHARED_DIR="${WRKDIR}" \
INSTALL_STRIP_FLAG="${STRIP}" \
TZ=UTC
TEST_ARGS= -k
TEST_TARGET= check
PORTSCOUT= limit:^\d+\.\d+\.[1-9]\d*
LOCALBASE?= /usr/local
.if !exists(${LOCALBASE}/bin/mcs)
OPTIONS_SLAVE= MONOLITE
.endif
post-extract-MONOLITE-on:
${MKDIR} ${WRKSRC}/mcs/class/lib/monolite-linux
${MV} ${WRKDIR}/monolite-linux-${MONOLITE_VERSION}-latest ${WRKSRC}/mcs/class/lib/monolite-linux/${MONOLITE_VERSION}
post-patch:
${REINPLACE_CMD} -e 's|^#!/bin/bash|#!/usr/bin/env bash|g' \
${WRKSRC}/scripts/mono-find-provides.in \
${WRKSRC}/scripts/mono-find-requires.in \
${WRKSRC}/scripts/mono-test-install
${FIND} ${WRKSRC} -name '*.sh' | ${XARGS} ${REINPLACE_CMD} \
-e 's|^#!/bin/bash|#!/bin/sh|g'
${SED} 's/tarball/${PORTVERSION}/' ${WRKSRC}/mono/mini/Makefile.am.in \
> ${WRKSRC}/mono/mini/Makefile.am
${REINPLACE_CMD} -e 's|/usr/share|${PREFIX}|g' \
${WRKSRC}/mcs/class/corlib/System/Environment.cs \
${WRKSRC}/external/corefx/src/System.Runtime.Extensions/src/System/Environment.Unix.cs
${REINPLACE_CMD} -e 's|/usr/share/.mono|${PREFIX}/share/mono|g' \
${WRKSRC}/man/mono-configuration-crypto.1 \
${WRKSRC}/man/mono.1 \
${WRKSRC}/man/mozroots.1
post-configure:
${REINPLACE_CMD} -e 's|share\/man|man|g' \
${WRKSRC}/mcs/jay/Makefile
post-install:
${MKDIR} ${STAGEDIR}${PREFIX}/mono
.include <bsd.port.mk>

5
lang/mono5.10/distinfo Normal file
View File

@ -0,0 +1,5 @@
TIMESTAMP = 1535767329
SHA256 (mono-5.10.1.57.tar.bz2) = 76cbd8545db6adc5a1738c343d957a7015c95e1439c461ea4f2bd56bd6337ab4
SIZE (mono-5.10.1.57.tar.bz2) = 210896685
SHA256 (monolite-linux-1051000004-latest.tar.gz) = 209804685ba87ecc5838addc8f089e858bfad4c7627c26d118f4f6889648e0cd
SIZE (monolite-linux-1051000004-latest.tar.gz) = 4820712

View File

@ -0,0 +1,20 @@
--- configure.ac.orig 2018-04-18 10:51:42.000000000 +0300
+++ configure.ac 2018-06-24 02:38:19.860780000 +0300
@@ -3271,6 +3271,8 @@
BTLS_PLATFORM=i386
;;
openbsd*|freebsd*|kfreebsd-gnu*)
+ BTLS_SUPPORTED=yes
+ BTLS_PLATFORM=i386
;;
esac
;;
@@ -3295,6 +3297,8 @@
boehm_supported=false
;;
openbsd*|freebsd*|kfreebsd-gnu*)
+ BTLS_SUPPORTED=yes
+ BTLS_PLATFORM=x86_64
;;
mingw*)
;;

View File

@ -0,0 +1,11 @@
--- mcs/class/Mono.Security/Mono.Security.Cryptography/KeyPairPersistence.cs.orig 2017-07-20 18:10:59 UTC
+++ mcs/class/Mono.Security/Mono.Security.Cryptography/KeyPairPersistence.cs
@@ -244,7 +244,7 @@ namespace Mono.Security.Cryptography {
if ((_machinePath == null) || (!_machinePathExists)) {
_machinePath = Path.Combine (
Environment.GetFolderPath (Environment.SpecialFolder.CommonApplicationData),
- ".mono");
+ "mono");
_machinePath = Path.Combine (_machinePath, "keypairs");
_machinePathExists = Directory.Exists (_machinePath);

View File

@ -0,0 +1,20 @@
--- mcs/class/Mono.Security/Mono.Security.X509/X509StoreManager.cs.orig 2017-07-20 18:10:59 UTC
+++ mcs/class/Mono.Security/Mono.Security.X509/X509StoreManager.cs
@@ -73,7 +73,7 @@ namespace Mono.Security.X509 {
if (_localMachinePath == null) {
_localMachinePath = Path.Combine (
Environment.GetFolderPath (Environment.SpecialFolder.CommonApplicationData),
- ".mono");
+ "mono");
_localMachinePath = Path.Combine (_localMachinePath, "certs");
}
return _localMachinePath;
@@ -97,7 +97,7 @@ namespace Mono.Security.X509 {
if (_newLocalMachinePath == null) {
_newLocalMachinePath = Path.Combine (
Environment.GetFolderPath (Environment.SpecialFolder.CommonApplicationData),
- ".mono");
+ "mono");
_newLocalMachinePath = Path.Combine (_newLocalMachinePath, "new-certs");
}
return _newLocalMachinePath;

View File

@ -0,0 +1,11 @@
--- mcs/tools/mono-configuration-crypto/lib/Mono.Configuration.Crypto/KeyContainerCollection.cs.orig 2017-07-20 18:10:59 UTC
+++ mcs/tools/mono-configuration-crypto/lib/Mono.Configuration.Crypto/KeyContainerCollection.cs
@@ -32,7 +32,7 @@ namespace Mono.Configuration.Crypto
string topPath;
if (machineStore)
- topPath = Path.Combine (Environment.GetFolderPath (Environment.SpecialFolder.CommonApplicationData), ".mono");
+ topPath = Path.Combine (Environment.GetFolderPath (Environment.SpecialFolder.CommonApplicationData), "mono");
else
topPath = Path.Combine (Environment.GetFolderPath (Environment.SpecialFolder.ApplicationData), ".mono");
topPath = Path.Combine (topPath, "keypairs");

View File

@ -0,0 +1,25 @@
--- mcs/tools/xbuild/data/12.0/Microsoft.CSharp.targets.orig 2017-07-20 18:10:59 UTC
+++ mcs/tools/xbuild/data/12.0/Microsoft.CSharp.targets
@@ -20,6 +20,11 @@
<NoCompilerStandardLib Condition="'$(NoCompilerStandardLib)'==''">true</NoCompilerStandardLib>
</PropertyGroup>
+ <PropertyGroup >
+ <SnToolExe>sn</SnToolExe>
+ <SnToolPath>$(CscToolPath)</SnToolPath>
+ </PropertyGroup>
+
<ItemGroup>
<DocFileItem Include="$(DocumentationFile)" Condition="'$(DocumentationFile)' != ''"/>
</ItemGroup>
@@ -102,6 +107,10 @@
ToolExe="$(CscToolExe)"
ToolPath="$(CscToolPath)" />
+ <Exec
+ Command="$(SnToolPath)$(SnToolExe) -R @(IntermediateAssembly) $(KeyOriginatorFile)"
+ Condition="'$(DelaySign)' == '' and '$(KeyContainerName)' == '' and '$(KeyOriginatorFile)' != '' and ( $(CscToolExe.EndsWith('csc.exe')) or $(CscToolExe.EndsWith('csc')) or $(CscToolExe) == '' )" />
+
</Target>
<Target Name="CreateManifestResourceNames">

View File

@ -0,0 +1,25 @@
--- mcs/tools/xbuild/data/14.0/Microsoft.CSharp.targets.orig 2017-07-20 18:10:59 UTC
+++ mcs/tools/xbuild/data/14.0/Microsoft.CSharp.targets
@@ -20,6 +20,11 @@
<NoCompilerStandardLib Condition="'$(NoCompilerStandardLib)'==''">true</NoCompilerStandardLib>
</PropertyGroup>
+ <PropertyGroup >
+ <SnToolExe>sn</SnToolExe>
+ <SnToolPath>$(CscToolPath)</SnToolPath>
+ </PropertyGroup>
+
<ItemGroup>
<DocFileItem Include="$(DocumentationFile)" Condition="'$(DocumentationFile)' != ''"/>
</ItemGroup>
@@ -102,6 +107,10 @@
ToolExe="$(CscToolExe)"
ToolPath="$(CscToolPath)" />
+ <Exec
+ Command="$(SnToolPath)$(SnToolExe) -R @(IntermediateAssembly) $(KeyOriginatorFile)"
+ Condition="'$(DelaySign)' == '' and '$(KeyContainerName)' == '' and '$(KeyOriginatorFile)' != '' and ( $(CscToolExe.EndsWith('csc.exe')) or $(CscToolExe.EndsWith('csc')) or $(CscToolExe) == '' )" />
+
</Target>
<Target Name="CreateManifestResourceNames">

View File

@ -0,0 +1,11 @@
--- mono/eglib/gfile-posix.c.orig 2018-01-10 08:03:25 UTC
+++ mono/eglib/gfile-posix.c
@@ -161,7 +161,7 @@ g_get_current_dir (void)
do {
buffer = g_realloc (buffer, s);
r = getcwd (buffer, s);
- fail = (r == NULL && errno == ERANGE);
+ fail = (r == NULL && (errno == ERANGE || errno == 0));
if (fail) {
s <<= 1;
}

View File

@ -0,0 +1,26 @@
--- mono/mini/tramp-amd64.c.orig 2018-04-13 23:37:57 UTC
+++ mono/mini/tramp-amd64.c
@@ -363,7 +363,11 @@ mono_arch_create_generic_trampoline (Mon
}
for (i = 0; i < AMD64_XMM_NREG; ++i)
if (AMD64_IS_ARGUMENT_XREG (i))
+#if defined(MONO_HAVE_SIMD_REG)
amd64_movdqu_membase_reg (code, AMD64_RBP, saved_fpregs_offset + (i * sizeof(MonoContextSimdReg)), i);
+#else
+ amd64_movsd_membase_reg (code, AMD64_RBP, saved_fpregs_offset + (i * sizeof(double)), i);
+#endif
/* Check that the stack is aligned */
amd64_mov_reg_reg (code, AMD64_R11, AMD64_RSP, sizeof (mgreg_t));
@@ -540,7 +544,11 @@ mono_arch_create_generic_trampoline (Mon
amd64_mov_reg_membase (code, i, AMD64_RBP, saved_regs_offset + (i * sizeof(mgreg_t)), sizeof(mgreg_t));
for (i = 0; i < AMD64_XMM_NREG; ++i)
if (AMD64_IS_ARGUMENT_XREG (i))
+#if defined(MONO_HAVE_SIMD_REG)
amd64_movdqu_reg_membase (code, i, AMD64_RBP, saved_fpregs_offset + (i * sizeof(MonoContextSimdReg)));
+#else
+ amd64_movsd_reg_membase (code, i, AMD64_RBP, saved_fpregs_offset + (i * sizeof(double)));
+#endif
/* Restore stack */
#if TARGET_WIN32

View File

@ -0,0 +1,42 @@
--- mono/utils/mono-context.h.orig 2018-04-13 23:37:57 UTC
+++ mono/utils/mono-context.h
@@ -24,23 +24,30 @@
#if defined(TARGET_X86)
#if defined(__APPLE__)
+#define MONO_HAVE_SIMD_REG
typedef struct __darwin_xmm_reg MonoContextSimdReg;
#endif
#elif defined(TARGET_AMD64)
#if defined(__APPLE__)
+#define MONO_HAVE_SIMD_REG
typedef struct __darwin_xmm_reg MonoContextSimdReg;
#elif defined(__linux__) && defined(__GLIBC__)
+#define MONO_HAVE_SIMD_REG
typedef struct _libc_xmmreg MonoContextSimdReg;
#elif defined(HOST_WIN32)
+#define MONO_HAVE_SIMD_REG
#include <emmintrin.h>
typedef __m128d MonoContextSimdReg;
#elif defined(HOST_ANDROID)
+#define MONO_HAVE_SIMD_REG
typedef struct _libc_xmmreg MonoContextSimdReg;
#elif defined(__linux__)
+#define MONO_HAVE_SIMD_REG
#include <emmintrin.h>
typedef __m128d MonoContextSimdReg;
#endif
#elif defined(TARGET_ARM64)
+#define MONO_HAVE_SIMD_REG
typedef __uint128_t MonoContextSimdReg;
#endif
@@ -255,7 +262,7 @@ typedef struct {
typedef struct {
mgreg_t gregs [AMD64_NREG];
-#if defined(__APPLE__) || (defined(__linux__) && defined(__GLIBC__)) || defined(HOST_WIN32)
+#if defined(MONO_HAVE_SIMD_REG)
MonoContextSimdReg fregs [AMD64_XMM_NREG];
#else
double fregs [AMD64_XMM_NREG];

View File

@ -0,0 +1,20 @@
--- mono/utils/mono-threads.c.orig 2018-04-13 23:37:57 UTC
+++ mono/utils/mono-threads.c
@@ -1316,7 +1316,7 @@ mono_thread_info_sleep (guint32 ms, gboo
} while (1);
} else {
int ret;
-#if defined (__linux__) && !defined(HOST_ANDROID)
+#if defined (HAVE_CLOCK_NANOSLEEP) && !defined(HOST_ANDROID)
struct timespec start, target;
/* Use clock_nanosleep () to prevent time drifting problems when nanosleep () is interrupted by signals */
@@ -1346,7 +1346,7 @@ mono_thread_info_sleep (guint32 ms, gboo
memset (&rem, 0, sizeof (rem));
ret = nanosleep (&req, &rem);
} while (ret != 0);
-#endif /* __linux__ */
+#endif /* HAVE_CLOCK_NANOSLEEP */
}
MONO_EXIT_GC_SAFE;

View File

@ -0,0 +1,11 @@
--- scripts/mono-heapviz.orig 2018-01-18 17:41:54 UTC
+++ scripts/mono-heapviz
@@ -7,7 +7,7 @@
from __future__ import print_function
import sys, os
-import Image, ImageDraw
+from PIL import Image, ImageDraw
from xml.sax import ContentHandler, make_parser
from xml.sax.handler import feature_namespaces
from optparse import OptionParser

9
lang/mono5.10/pkg-descr Normal file
View File

@ -0,0 +1,9 @@
Mono is an open source implementation of .NET Development Framework. Its
objective is to enable UNIX developers to build and deploy cross-platform
.NET Applications. The project implements various technologies developed by
Microsoft that have now been submitted to the ECMA for standardization.
Mono provides the necessary software to develop and run .NET client and
server applications on BSD, Linux, Solaris, Mac OS X, Windows, and Unix.
WWW: http://www.mono-project.com/

37
lang/mono5.10/pkg-message Normal file
View File

@ -0,0 +1,37 @@
[
{ type: install
message: <<EOM
If you have build/runtime errors with Mono and Gtk# apps please try the
following first:
* Build Mono and gtk+ (x11-toolkits/gtk20) without CPUTYPE and with the
default FreeBSD CFLAGS ('-O2 -fno-strict-aliasing -pipe') as Mono has
been known to expose compiler bugs.
* Try building and running Mono with the GENERIC kernel.
- Mono requires SYSVSHM, SYSVMSG, and SYSVSEM which are part of the
GENERIC kernel.
- Removing kernel options or changing defaults to use experimental
options can adversely affect Mono's ability to build and run.
* Remove leftover semaphores / increase semaphore limits.
- Close apps which use Mono and run `ipcs -sbt`. Remove the
semaphores with MODE "--rw-------" and NSEMS "8" using ipcrm (1)
- _OR_ simply reboot which is the safest method.
- On multi-user systems the semaphore limits may need to be increased
from the defaults. The following should comfortably support 30 users.
# echo "kern.ipc.semmni=40" >> /boot/loader.conf
# echo "kern.ipc.semmns=300" >> /boot/loader.conf
* If you are in a jailed environment, ensure System V IPC are enabled.
You can rely on the security.jail.sysvipc_allowed sysctl to check
this status. The following enables this feature on the host system:
# echo "jail_sysvipc_allow=\"YES\"" >> /etc/rc.conf
* Some process information are accessed through /proc (e.g. when using
NUnit) and procfs(5) has to be mounted for these features to work:
# echo "proc /proc procfs rw 0 0" >> /etc/fstab
EOM
}
]

2984
lang/mono5.10/pkg-plist Normal file

File diff suppressed because it is too large Load Diff