~ruther/guix-local

27d7d879b79230143c81b114d98fd977325ea36b — unmush 1 year, 7 months ago b0ef15d
gnu: Add mono-5.8.0.

* gnu/packages/dotnet.scm (mono-5.8.0-external-repo-specs, mono-5.8.0):
New variables.
* gnu/packages/patches/mono-5.8.0-patches.patch: New patch.
* gnu/local.mk (dist_patch_DATA): Register new patch.

Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
Change-Id: Ibb7379d4b3dacd6c40418510da7b6f203ded812f
3 files changed, 189 insertions(+), 0 deletions(-)

M gnu/local.mk
M gnu/packages/dotnet.scm
A gnu/packages/patches/mono-5.8.0-patches.patch
M gnu/local.mk => gnu/local.mk +1 -0
@@ 1837,6 1837,7 @@ dist_patch_DATA =						\
  %D%/packages/patches/mono-2.11.4-fixes.patch			\
  %D%/packages/patches/mono-4.9.0-fix-runtimemetadataversion.patch		\
  %D%/packages/patches/mono-5.4.0-patches.patch		\
  %D%/packages/patches/mono-5.8.0-patches.patch		\
  %D%/packages/patches/mosaicatcher-unbundle-htslib.patch	\
  %D%/packages/patches/mrrescue-support-love-11.patch		\
  %D%/packages/patches/mtools-mformat-uninitialized.patch	\

M gnu/packages/dotnet.scm => gnu/packages/dotnet.scm +128 -0
@@ 1302,3 1302,131 @@ unused0:")))))
         ((#:phases phases #~%standard-phases)
          #~(modify-phases #$phases
              (delete 'patch-sub-autogen.sh-shebang))))))))

(define mono-5.8.0-external-repo-specs
  '(("api-doc-tools"               "d03e819838c6241f92f90655cb448cc47c9e8791"
     "1riki79f3ig3cxigviss81dz601hn92a1gifglm0mzjbs76sf3fj"
     #:recursive? #t)
    ("api-snapshot"                "6668c80a9499218c0b8cc41f48a9e242587df756"
     "0vbwbwa1hr4jlj7283w8bk3v5i8s43h8413r2pkh4hf38b2rks7d")
    ("aspnetwebstack"              "e77b12e6cc5ed260a98447f609e887337e44e299"
     "0rks344qr4fmp3fs1264d2qkmm348m8d1kjd7z4l94iiirwn1fq1")
    (("reference-assemblies" "binary-reference-assemblies")
     "e048fe4a88d237d105ae02fe0363a68296099362"
     "0i87i3x694f4g8s2flflv0ah88blxds7gbiyrwrmscqdjsifhy49")
    ("bockbuild"                   "cb4545409dafe16dfe86c7d8e6548a69c369e2a2"
     "0svdfv61d6ppwd4zgki129r9prf75fnsqihna253zfwfpzpingx7")
    ("boringssl"                   "3e0770e18835714708860ba9fe1af04a932971ff"
     "139a0gl91a52k2r6na6ialzkqykaj1rk88zjrkaz3sdxx7nmmg6y")
    ("cecil"                       "76ffcdabae660e9586273c9b40db180a0dc8d4c8"
     "0f3bsfri28pxmnb0m6074bnmmjgsr7cjixv9fhnp6aimhvy4l5p4")
    (("cecil" "cecil-legacy")      "33d50b874fd527118bc361d83de3d494e8bb55e1"
     "1p4hl1796ib26ykyf5snl6cj0lx0v7mjh0xqhjw6qdh753nsjyhb")
    ("corefx"                      "b965d1f8b5281712c4400ef28ed97670ffd4880d"
     "0r9hr0bs3j3agqi2pq4n1km9jfycaqvxf6756y7r5l3ykqsd6wsr")
    ("corert"                      "48dba73801e804e89f00311da99d873f9c550278"
     "1zw47jf4cwqmaixylisxi73xf6cap41bwf9vlmpxanzxaqklzsvk")
    ("ikdasm"                      "465c0815558fd43c0110f8d00fc186ac0044ac6a"
     "0xir7pcgq04hb7s8g9wsqdrypb6l29raj3iz5rcqzdm0056k75w2")
    (("ikvm-fork" "ikvm")          "847e05fced5c9a41ff0f24f1f9d40d5a8a5772c1"
     "1fl9bm3lmzf8iqv3x4iqkz9fc54mwdvrxisxg2nvwwcsi4saffpi")
    ("linker"                      "c62335c350f3902ff0459112f7efc8b926f4f15d"
     "015191sdw9i7vnhlsycv65pw8nnfpkd65k11jw1y9bikb4x3aj8x")
    ("Newtonsoft.Json"             "471c3e0803a9f40a0acc8aeceb31de6ff93a52c4"
     "0dgngd5hqk6yhlg40kabn6qdnknm32zcx9q6bm2w31csnsk5978s")
    (("NuGet.BuildTasks" "nuget-buildtasks")
     "b2c30bc81b2a7733a4eeb252a55f6b4d50cfc3a1"
     "01vajrfx6y12f525xdiwfbn9qzmym2s65rbiqpy9d9xw0pnq7gbl")
    (("NUnitLite" "nunit-lite")    "764656cdafdb3acd25df8cb52a4e0ea14760fccd"
     "0pc7lk3p916is8cn4ngaqvjlmlzv3vvjpyksy4pvb3qb5iiaw0vq")
    ;; ("roslyn-binaries"          "e484c75e2edd3c3f1870a2468a71a56220cf1f7f"
    ;;  "")
    ("rx"                          "b29a4b0fda609e0af33ff54ed13652b6ccf0e05e"
     "1n1jwhmsbkcv2d806immcpzkb72rz04xy98myw355a8w5ah25yiv")
    ;; ("xunit-binaries"           "d4433b0972f40cb3efaa3fbba52869bde5df8fa8"
    ;;  "")
    ))

(define-public mono-5.8.0
  (package
    (inherit mono-pre-5.8.0)
    (version "5.8.0.129")
    (name "mono")
    (source (origin
              (method git-fetch)
              (uri (git-reference
                    (url "https://gitlab.winehq.org/mono/mono.git")
                    (commit (string-append "mono-" version))))
              (file-name (git-file-name name version))
              (sha256
               (base32
                "0130vd33yzp4w7570qw9xjq2g7b2xmacjbpkmzrpbhy8as5hy4z6"))
              (modules '((guix build utils)
                         (ice-9 string-fun)))
              (snippet #~(begin
                           #$(add-external-repos
                              mono-5.8.0-external-repo-specs)
                           #$@prepare-mono-source-0))
              (patches (search-patches "mono-5.8.0-patches.patch"))))
    (native-inputs (modify-inputs (package-native-inputs mono-pre-5.8.0)
                     (replace "mono" mono-pre-5.8.0)))
    (arguments
     (substitute-keyword-arguments (package-arguments mono-pre-5.8.0)
       ((#:phases phases #~%standard-phases)
        #~(modify-phases #$phases
            (replace 'build-reference-assemblies
              ;; More references need updating this time...
              (lambda* (#:key make-flags parallel-build? #:allow-other-keys)
                (let ((top (getcwd))
                      ;; parallel-build? needs to be false for mono's build
                      ;; phase, but it should work here.
                      (parallel-build? #t))
                  (with-directory-excursion
                      "external/binary-reference-assemblies"
                    (substitute* (find-files "." "^Makefile$")
                      (("CSC_COMMON_ARGS := " all)
                       (string-append all "-delaysign+ "))
                      (("IBM\\.Data\\.DB2_REFS := " all)
                       (string-append all "System.Xml "))
                      (("Mono\\.Data\\.Sqlite_REFS := " all)
                       (string-append all "System.Xml "))
                      (("System\\.Data\\.DataSetExtensions_REFS := " all)
                       (string-append all "System.Xml "))
                      (("System\\.Data\\.OracleClient_REFS := " all)
                       (string-append all "System.Xml "))
                      (("System\\.IdentityModel_REFS := " all)
                       (string-append all "System.Configuration "))
                      (("System\\.Design_REFS := " all)
                       (string-append all "Accessibility "))
                      (("System\\.Web\\.Extensions\\.Design_REFS := " all)
                       (string-append all "System.Windows.Forms System.Web "))
                      (("System\\.ServiceModel\\.Routing_REFS := " all)
                       (string-append all "System.Xml "))
                      (("System\\.Web\\.Abstractions_REFS := " all)
                       (string-append all "System "))
                      (("System\\.Reactive\\.Windows\\.Forms_REFS := " all)
                       (string-append all "System "))
                      (("System\\.Windows\\.Forms\\.DataVisualization_REFS := " all)
                       (string-append all "Accessibility "))
                      (("Facades/System\\.ServiceModel\\.Primitives_REFS := " all)
                       (string-append all "System.Xml "))
                      (("Facades/System\\.Dynamic\\.Runtime_REFS := " all)
                       (string-append all "System "))
                      (("Facades/System\\.Xml\\.XDocument_REFS := " all)
                       (string-append all "System.Xml "))
                      (("Facades/System\\.Runtime\\.Serialization.Xml_REFS := " all)
                       (string-append all "System.Xml "))
                      (("Facades/System\\.Data\\.Common_REFS := " all)
                       (string-append all "System System.Xml ")))
                    (apply invoke "make"
                           `(,@(if parallel-build?
                                   `("-j" ,(number->string
                                            (parallel-job-count)))
                                   '())
                             ,(string-append "CSC=MONO_PATH="
                                             top "/mcs/class/lib/build"
                                             " "
                                             top "/runtime/mono-wrapper"
                                             " "
                                             top "/mcs/class/lib/build/mcs.exe")
                             ,@make-flags))))))))))))

A gnu/packages/patches/mono-5.8.0-patches.patch => gnu/packages/patches/mono-5.8.0-patches.patch +60 -0
@@ 0,0 1,60 @@
diff --git a/mcs/class/System/Mono.AppleTls/AppleTlsContext.cs b/mcs/class/System/Mono.AppleTls/AppleTlsContext.cs
index 0cc69e47648..51ded713ba6 100644
--- a/mcs/class/System/Mono.AppleTls/AppleTlsContext.cs
+++ b/mcs/class/System/Mono.AppleTls/AppleTlsContext.cs
@@ -775,7 +775,7 @@ namespace Mono.AppleTls
 		[DllImport (SecurityLibrary)]
 		extern unsafe static /* OSStatus */ SslStatus SSLRead (/* SSLContextRef */ IntPtr context, /* const void* */ byte* data, /* size_t */ IntPtr dataLength, /* size_t* */ out IntPtr processed);
 
-		public override unsafe (int ret, bool wantMore) Read (byte[] buffer, int offset, int count)
+		public override unsafe System.ValueTuple<int, bool> Read (byte[] buffer, int offset, int count)
 		{
 			if (Interlocked.Exchange (ref pendingIO, 1) == 1)
 				throw new InvalidOperationException ();
@@ -816,7 +816,7 @@ namespace Mono.AppleTls
 		[DllImport (SecurityLibrary)]
 		extern unsafe static /* OSStatus */ SslStatus SSLWrite (/* SSLContextRef */ IntPtr context, /* const void* */ byte* data, /* size_t */ IntPtr dataLength, /* size_t* */ out IntPtr processed);
 
-		public override unsafe (int ret, bool wantMore) Write (byte[] buffer, int offset, int count)
+		public override unsafe System.ValueTuple<int, bool> Write (byte[] buffer, int offset, int count)
 		{
 			if (Interlocked.Exchange (ref pendingIO, 1) == 1)
 				throw new InvalidOperationException ();
diff --git a/mcs/class/System/Mono.Btls/MonoBtlsContext.cs b/mcs/class/System/Mono.Btls/MonoBtlsContext.cs
index 559db4aca5d..b70239c5163 100644
--- a/mcs/class/System/Mono.Btls/MonoBtlsContext.cs
+++ b/mcs/class/System/Mono.Btls/MonoBtlsContext.cs
@@ -300,7 +300,7 @@ namespace Mono.Btls
 			throw new NotImplementedException ();
 		}
 
-		public override (int ret, bool wantMore) Read (byte[] buffer, int offset, int size)
+		public override System.ValueTuple<int, bool> Read (byte[] buffer, int offset, int size)
 		{
 			Debug ("Read: {0} {1} {2}", buffer.Length, offset, size);
 
@@ -329,7 +329,7 @@ namespace Mono.Btls
 			}
 		}
 
-		public override (int ret, bool wantMore) Write (byte[] buffer, int offset, int size)
+		public override System.ValueTuple<int, bool> Write (byte[] buffer, int offset, int size)
 		{
 			Debug ("Write: {0} {1} {2}", buffer.Length, offset, size);
 
diff --git a/mcs/class/System/Mono.Net.Security/MobileTlsContext.cs b/mcs/class/System/Mono.Net.Security/MobileTlsContext.cs
index 74410976a85..46f0eb59b9c 100644
--- a/mcs/class/System/Mono.Net.Security/MobileTlsContext.cs
+++ b/mcs/class/System/Mono.Net.Security/MobileTlsContext.cs
@@ -165,9 +165,9 @@ namespace Mono.Net.Security
 
 		public abstract void Flush ();
 
-		public abstract (int ret, bool wantMore) Read (byte[] buffer, int offset, int count);
+		public abstract System.ValueTuple<int, bool> Read (byte[] buffer, int offset, int count);
 
-		public abstract (int ret, bool wantMore) Write (byte[] buffer, int offset, int count);
+		public abstract System.ValueTuple<int, bool> Write (byte[] buffer, int offset, int count);
 
 		public abstract void Shutdown ();