mirror of
https://https.git.savannah.gnu.org/git/guix.git/
synced 2025-07-13 10:30:43 +02:00
gnu: Add mono-1.9.1.
* gnu/packages/dotnet.scm (mono-1.9.1): New variable. * gnu/packages/patches/mono-1.9.1-add-MONO_CREATE_IMAGE_VERSION.patch: New patch. * gnu/packages/patches/mono-1.9.1-fixes.patch: New patch. * gnu/local.mk (dist_patch_DATA): Register new patches. Signed-off-by: Efraim Flashner <efraim@flashner.co.il> Change-Id: I013646625b9e5dbc1cd68ecaf8cf4b591dc016a0
This commit is contained in:
parent
7d96fa640a
commit
893bd4a8ef
4 changed files with 133 additions and 0 deletions
|
@ -1828,6 +1828,8 @@ dist_patch_DATA = \
|
||||||
%D%/packages/patches/module-init-tools-moduledir.patch \
|
%D%/packages/patches/module-init-tools-moduledir.patch \
|
||||||
%D%/packages/patches/monero-use-system-miniupnpc.patch \
|
%D%/packages/patches/monero-use-system-miniupnpc.patch \
|
||||||
%D%/packages/patches/mono-1.2.6-bootstrap.patch \
|
%D%/packages/patches/mono-1.2.6-bootstrap.patch \
|
||||||
|
%D%/packages/patches/mono-1.9.1-add-MONO_CREATE_IMAGE_VERSION.patch \
|
||||||
|
%D%/packages/patches/mono-1.9.1-fixes.patch \
|
||||||
%D%/packages/patches/mosaicatcher-unbundle-htslib.patch \
|
%D%/packages/patches/mosaicatcher-unbundle-htslib.patch \
|
||||||
%D%/packages/patches/mrrescue-support-love-11.patch \
|
%D%/packages/patches/mrrescue-support-love-11.patch \
|
||||||
%D%/packages/patches/mtools-mformat-uninitialized.patch \
|
%D%/packages/patches/mtools-mformat-uninitialized.patch \
|
||||||
|
|
|
@ -397,3 +397,61 @@ a C-style programming language from Microsoft that is very similar to Java.")
|
||||||
license:lgpl2.0+ ;; note: ./mcs/LICENSE.LGPL specifies no version
|
license:lgpl2.0+ ;; note: ./mcs/LICENSE.LGPL specifies no version
|
||||||
;; mcs/jay
|
;; mcs/jay
|
||||||
license:bsd-4))))
|
license:bsd-4))))
|
||||||
|
|
||||||
|
(define-public mono-1.9.1
|
||||||
|
(package
|
||||||
|
(inherit mono-1.2.6)
|
||||||
|
(version "1.9.1")
|
||||||
|
(name "mono")
|
||||||
|
(source (origin
|
||||||
|
(method git-fetch)
|
||||||
|
(uri (git-reference
|
||||||
|
(url "https://gitlab.winehq.org/mono/mono.git")
|
||||||
|
(commit "mono-1.9.1.1")))
|
||||||
|
(file-name (git-file-name name version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0s1n3zdhc2alk9smxfdl1kjz7lz2p19gs0ks4hgr864jlmf13bws"))
|
||||||
|
(modules '((guix build utils)
|
||||||
|
(ice-9 string-fun)))
|
||||||
|
(snippet prepare-mono-source)
|
||||||
|
(patches (search-patches
|
||||||
|
"mono-1.9.1-fixes.patch"
|
||||||
|
"mono-1.9.1-add-MONO_CREATE_IMAGE_VERSION.patch"))))
|
||||||
|
(native-inputs
|
||||||
|
(modify-inputs (package-native-inputs mono-1.2.6)
|
||||||
|
(delete "pnet-git")
|
||||||
|
(delete "pnetlib-git")
|
||||||
|
(prepend mono-1.2.6)
|
||||||
|
(append which)
|
||||||
|
;; needed for tests
|
||||||
|
(append perl)))
|
||||||
|
(arguments
|
||||||
|
(substitute-keyword-arguments (package-arguments mono-1.2.6)
|
||||||
|
((#:make-flags _ #f)
|
||||||
|
#~(list #$(string-append "CC=" (cc-for-target)) "V=1"))
|
||||||
|
((#:phases phases #~%standard-phases)
|
||||||
|
#~(modify-phases #$phases
|
||||||
|
(add-before 'configure 'set-cflags
|
||||||
|
(lambda _
|
||||||
|
;; apparently can't be set via make flags in this version
|
||||||
|
(let ((original (getenv "CFLAGS")))
|
||||||
|
(setenv "CFLAGS" (string-append (or original "")
|
||||||
|
(if original " " "")
|
||||||
|
"-DARG_MAX=500")))))
|
||||||
|
(add-before 'configure 'set-create-image-version
|
||||||
|
(lambda _
|
||||||
|
;; pnet produces v2.x assemblies. Mono does this weird thing
|
||||||
|
;; where it always produces assemblies of the same version as
|
||||||
|
;; the runtime that is running it, which is based on the
|
||||||
|
;; version of the assembly that it loaded, which is based on
|
||||||
|
;; what it decided for the previous compiler... on and on all
|
||||||
|
;; the way back to pnet. This breaks that chain, because
|
||||||
|
;; otherwise it ends up compiling the initial mcs against .NET
|
||||||
|
;; 2.0 libraries and then running with .NET 1.0 libraries.
|
||||||
|
(setenv "MONO_CREATE_IMAGE_VERSION" "v1.1.4322")))
|
||||||
|
(add-after 'unpack 'patch-test-driver-shebang
|
||||||
|
(lambda _
|
||||||
|
(patch-shebang "mono/tests/test-driver")))))
|
||||||
|
((#:tests? _ #f) #f)
|
||||||
|
((#:parallel-tests? _ #f) #f)))))
|
||||||
|
|
|
@ -0,0 +1,14 @@
|
||||||
|
diff --git a/mono/metadata/reflection.c b/mono/metadata/reflection.c
|
||||||
|
index ce053b0ef49..7c51f20c4cf 100644
|
||||||
|
--- a/mono/metadata/reflection.c
|
||||||
|
+++ b/mono/metadata/reflection.c
|
||||||
|
@@ -4336,6 +4336,9 @@ create_dynamic_mono_image (MonoDynamicAssembly *assembly, char *assembly_name, c
|
||||||
|
|
||||||
|
const char *version = mono_get_runtime_info ()->runtime_version;
|
||||||
|
|
||||||
|
+ char *env_ver = getenv("MONO_CREATE_IMAGE_VERSION");
|
||||||
|
+ if (env_ver) version = env_ver;
|
||||||
|
+
|
||||||
|
#if HAVE_BOEHM_GC
|
||||||
|
image = GC_MALLOC (sizeof (MonoDynamicImage));
|
||||||
|
#else
|
59
gnu/packages/patches/mono-1.9.1-fixes.patch
Normal file
59
gnu/packages/patches/mono-1.9.1-fixes.patch
Normal file
|
@ -0,0 +1,59 @@
|
||||||
|
diff --git a/data/mono.pc.in b/data/mono.pc.in
|
||||||
|
index 6da0960db2d..d43bb187218 100644
|
||||||
|
--- a/data/mono.pc.in
|
||||||
|
+++ b/data/mono.pc.in
|
||||||
|
@@ -7,6 +7,6 @@ sysconfdir=@sysconfdir@
|
||||||
|
Name: Mono
|
||||||
|
Description: Mono Runtime
|
||||||
|
Version: @VERSION@
|
||||||
|
-Requires: glib-2.0 gthread-2.0
|
||||||
|
+Requires: glib-2.0 gthread-2.0 bdw-gc
|
||||||
|
Libs: -L${libdir} @export_ldflags@ -lmono @libmono_ldflags@
|
||||||
|
Cflags: -I${includedir} @libmono_cflags@
|
||||||
|
diff --git a/mono-uninstalled.pc.in b/mono-uninstalled.pc.in
|
||||||
|
index 7fa3f12dc91..2a0734362fd 100644
|
||||||
|
--- a/mono-uninstalled.pc.in
|
||||||
|
+++ b/mono-uninstalled.pc.in
|
||||||
|
@@ -1,6 +1,6 @@
|
||||||
|
Name: Mono
|
||||||
|
Description: Mono Runtime
|
||||||
|
Version: @VERSION@
|
||||||
|
-Requires: glib-2.0 gthread-2.0
|
||||||
|
+Requires: glib-2.0 gthread-2.0 bdw-gc
|
||||||
|
Libs: -L@mono_build_root@/mono/mini/.libs @export_ldflags@ -lmono @libmono_ldflags@
|
||||||
|
Cflags: -I@abs_top_srcdir@ -I@abs_top_srcdir@/mono @libmono_cflags@
|
||||||
|
diff --git a/mono/metadata/Makefile.am b/mono/metadata/Makefile.am
|
||||||
|
index 2e480190c8c..90d0f619959 100644
|
||||||
|
--- a/mono/metadata/Makefile.am
|
||||||
|
+++ b/mono/metadata/Makefile.am
|
||||||
|
@@ -157,7 +157,6 @@ libmonoruntimeinclude_HEADERS = \
|
||||||
|
object.h \
|
||||||
|
exception.h \
|
||||||
|
profiler.h \
|
||||||
|
- appdomain.h \
|
||||||
|
mono-config.h \
|
||||||
|
debug-helpers.h \
|
||||||
|
mempool.h
|
||||||
|
diff --git a/mono/mini/driver.c b/mono/mini/driver.c
|
||||||
|
index ffa4b5e5e69..85a954960eb 100644
|
||||||
|
--- a/mono/mini/driver.c
|
||||||
|
+++ b/mono/mini/driver.c
|
||||||
|
@@ -1033,6 +1033,7 @@ mono_main (int argc, char* argv[])
|
||||||
|
#endif
|
||||||
|
if (!g_thread_supported ())
|
||||||
|
g_thread_init (NULL);
|
||||||
|
+ GC_allow_register_threads();
|
||||||
|
|
||||||
|
if (mono_running_on_valgrind () && getenv ("MONO_VALGRIND_LEAK_CHECK")) {
|
||||||
|
GMemVTable mem_vtable;
|
||||||
|
diff --git a/runtime/Makefile.am b/runtime/Makefile.am
|
||||||
|
index e3a8a21e9e2..587b9f4aa79 100644
|
||||||
|
--- a/runtime/Makefile.am
|
||||||
|
+++ b/runtime/Makefile.am
|
||||||
|
@@ -1,6 +1,3 @@
|
||||||
|
-# hack to prevent 'check' from depending on 'all'
|
||||||
|
-AUTOMAKE_OPTIONS = cygnus
|
||||||
|
-
|
||||||
|
tmpinst = _tmpinst
|
||||||
|
|
||||||
|
noinst_SCRIPTS = mono-wrapper monodis-wrapper semdel-wrapper
|
Loading…
Add table
Add a link
Reference in a new issue