From f9262ba8288def4ddede03bf3e8998f8865fbf61fe8658c56cae0cdafd349eed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ismail=20D=C3=B6nmez?= Date: Thu, 19 Oct 2017 09:44:42 +0000 Subject: [PATCH] Accepting request 534610 from home:Warhammer40k:Mono:Factory Update to version 5.4.0.201 (5.4.0 Stable) OBS-URL: https://build.opensuse.org/request/show/534610 OBS-URL: https://build.opensuse.org/package/show/Mono:Factory/mono-core?expand=0&rev=188 --- ...LD_SHARED_LIBS-while-building-boring.patch | 28 -- fix-project-builds-linux.patch | 94 ----- mcs-compatibility-fix.patch | 320 ++++++++++++++++++ mono-5.2.0.224.tar.bz2 | 3 - mono-5.4.0.201.tar.bz2 | 3 + mono-core.changes | 100 ++++++ mono-core.spec | 37 +- 7 files changed, 447 insertions(+), 138 deletions(-) delete mode 100644 0001-btls-Disable-BUILD_SHARED_LIBS-while-building-boring.patch delete mode 100644 fix-project-builds-linux.patch create mode 100644 mcs-compatibility-fix.patch delete mode 100644 mono-5.2.0.224.tar.bz2 create mode 100644 mono-5.4.0.201.tar.bz2 diff --git a/0001-btls-Disable-BUILD_SHARED_LIBS-while-building-boring.patch b/0001-btls-Disable-BUILD_SHARED_LIBS-while-building-boring.patch deleted file mode 100644 index d6c113a..0000000 --- a/0001-btls-Disable-BUILD_SHARED_LIBS-while-building-boring.patch +++ /dev/null @@ -1,28 +0,0 @@ -From e6e0fb82261340f9181d1b2b11a9706a16c5dbc7 Mon Sep 17 00:00:00 2001 -From: Zoltan Varga -Date: Fri, 4 Aug 2017 11:39:28 -0400 -Subject: [PATCH] [btls] Disable BUILD_SHARED_LIBS while building boringssl, so - its symbols are not exported from the btls shared lib. (#5307) - ---- - mono/btls/CMakeLists.txt | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/mono/btls/CMakeLists.txt b/mono/btls/CMakeLists.txt -index 9f2365d3e50..d33038d75cf 100644 ---- a/mono/btls/CMakeLists.txt -+++ b/mono/btls/CMakeLists.txt -@@ -31,7 +31,10 @@ set (CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} ${BTLS_CFLAGS}") - set (CMAKE_MACOSX_RPATH 1) - set (MONO_BTLS 1) - -+set(BUILD_SHARED_LIBS_SAVED "${BUILD_SHARED_LIBS}") -+set(BUILD_SHARED_LIBS OFF) - add_subdirectory (${BTLS_ROOT} boringssl) -+set(BUILD_SHARED_LIBS "${BUILD_SHARED_LIBS_SAVED}") - - include_directories ( - ${SRC_DIR} --- -2.11.0 - diff --git a/fix-project-builds-linux.patch b/fix-project-builds-linux.patch deleted file mode 100644 index f662597..0000000 --- a/fix-project-builds-linux.patch +++ /dev/null @@ -1,94 +0,0 @@ -diff --git a/external/nuget-buildtasks/src/Microsoft.NuGet.Build.Tasks/NuGetPackageObject.cs b/external/nuget-buildtasks/src/Microsoft.NuGet.Build.Tasks/NuGetPackageObject.cs -index 26f04c1..703a648 100644 ---- a/external/nuget-buildtasks/src/Microsoft.NuGet.Build.Tasks/NuGetPackageObject.cs -+++ b/external/nuget-buildtasks/src/Microsoft.NuGet.Build.Tasks/NuGetPackageObject.cs -@@ -34,6 +34,7 @@ public NuGetPackageObject(string id, string version, Func fullPackagePat - - public string Id { get; } - public string Version { get; } -+ public string RelativePackagePath => (string)LibraryObject["path"]; - - /// - /// The JSON object from the "targets" section in the project.lock.json for this package. -diff --git a/external/nuget-buildtasks/src/Microsoft.NuGet.Build.Tasks/ResolveNuGetPackageAssets.cs b/external/nuget-buildtasks/src/Microsoft.NuGet.Build.Tasks/ResolveNuGetPackageAssets.cs -index 8acffe3..a074997 100644 ---- a/external/nuget-buildtasks/src/Microsoft.NuGet.Build.Tasks/ResolveNuGetPackageAssets.cs -+++ b/external/nuget-buildtasks/src/Microsoft.NuGet.Build.Tasks/ResolveNuGetPackageAssets.cs -@@ -369,7 +369,7 @@ private void GetAnalyzers(JObject lockFile) - if (Path.GetExtension(file).Equals(".dll", StringComparison.OrdinalIgnoreCase)) - { - string path; -- if (TryGetFile(package.Id, package.Version, file, out path)) -+ if (TryGetFile(package.Id, package.Version, package.RelativePackagePath, file, out path)) - { - var analyzer = new TaskItem(path); - -@@ -441,16 +441,16 @@ private void SetWinMDMetadata(IEnumerable runtimeWinMDs, ICollection< - } - } - -- private bool TryGetFile(string packageName, string packageVersion, string file, out string path) -+ private bool TryGetFile(string packageName, string packageVersion, string packageRelativePath, string file, out string path) - { - if (IsFileValid(file, "C#", "VB")) - { -- path = GetPath(packageName, packageVersion, file); -+ path = GetPath(packageName, packageVersion, packageRelativePath, file); - return true; - } - else if (IsFileValid(file, "VB", "C#")) - { -- path = GetPath(packageName, packageVersion, file); -+ path = GetPath(packageName, packageVersion, packageRelativePath, file); - return true; - } - -@@ -469,9 +469,9 @@ private bool IsFileValid(string file, string expectedLanguage, string unExpected - !file.Split('/').Any(x => x.Equals(unExpectedLanguage, StringComparison.OrdinalIgnoreCase))); - } - -- private string GetPath(string packageName, string packageVersion, string file) -+ private string GetPath(string packageId, string packageVersion, string packageRelativePath, string file) - { -- return Path.Combine(GetNuGetPackagePath(packageName, packageVersion), file.Replace('/', Path.DirectorySeparatorChar)); -+ return Path.Combine(GetNuGetPackagePath(packageId, packageVersion, packageRelativePath), file.Replace('/', Path.DirectorySeparatorChar)); - } - - /// -@@ -932,17 +932,23 @@ private void AddReferencedPackages(JArray packageDependencies, SortedSet - } - } - -- private string GetNuGetPackagePath(string packageId, string packageVersion) -+ private string GetNuGetPackagePath(string packageId, string packageVersion, string packageRelativePath) - { -+ string relativePathToUse = String.IsNullOrEmpty(packageRelativePath) -+ ? Path.Combine(packageId, packageVersion) -+ : packageRelativePath.Replace('/', Path.DirectorySeparatorChar); -+ -+ string hashFileName = $"{packageId.ToLowerInvariant()}.{packageVersion.ToLowerInvariant()}.nupkg.sha512"; -+ - foreach (var packagesFolder in _packageFolders) - { -- string packagePath = Path.Combine(packagesFolder, packageId, packageVersion); -+ string packageFullPath = Path.Combine(packagesFolder, relativePathToUse); - - // The proper way to check if a package is available is to look for the hash file, since that's the last - // file written as a part of the restore process. If it's not there, it means something failed part way through. -- if (_fileExists(Path.Combine(packagePath, $"{packageId}.{packageVersion}.nupkg.sha512"))) -+ if (_fileExists(Path.Combine(packageFullPath, hashFileName))) - { -- return packagePath; -+ return packageFullPath; - } - } - -@@ -972,7 +978,7 @@ private IEnumerable GetPackagesFromTarget(JObject lockFile, - } - else - { -- fullPackagePathGenerator = () => GetNuGetPackagePath(id, version); -+ fullPackagePathGenerator = () => GetNuGetPackagePath(id, version, (string)libraryObject["path"]); - } - - yield return new NuGetPackageObject(id, version, fullPackagePathGenerator, (JObject)package.Value, libraryObject); diff --git a/mcs-compatibility-fix.patch b/mcs-compatibility-fix.patch new file mode 100644 index 0000000..6d70ed3 --- /dev/null +++ b/mcs-compatibility-fix.patch @@ -0,0 +1,320 @@ +diff -uprN mono-5.4.0.201.old/external/corefx/src/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/Semantics/EXPRExtensions.cs mono-5.4.0.201/external/corefx/src/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/Semantics/EXPRExtensions.cs +--- mono-5.4.0.201.old/external/corefx/src/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/Semantics/EXPRExtensions.cs 2017-10-04 18:31:23.000000000 +0300 ++++ mono-5.4.0.201/external/corefx/src/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/Semantics/EXPRExtensions.cs 2017-10-17 21:13:18.835702962 +0300 +@@ -33,8 +33,9 @@ namespace Microsoft.CSharp.RuntimeBinder + Expr exprCur = expr; + while (exprCur != null) + { +- if (exprCur is ExprList list) ++ if (exprCur is ExprList) + { ++ var list = (ExprList)exprCur; + yield return list.OptionalElement; + exprCur = list.OptionalNextListNode; + } +@@ -61,12 +62,12 @@ namespace Microsoft.CSharp.RuntimeBinder + } + public static bool isNull(this Expr expr) + { +- return expr is ExprConstant constant && constant.IsOK && (expr.Type.fundType() == FUNDTYPE.FT_REF) && constant.Val.IsNullRef; ++ return expr is ExprConstant && ((ExprConstant)expr).IsOK && (expr.Type.fundType() == FUNDTYPE.FT_REF) && ((ExprConstant)expr).Val.IsNullRef; + } + + public static bool IsZero(this Expr expr) + { +- return expr is ExprConstant constant && constant.IsOK && constant.IsZero; ++ return expr is ExprConstant && ((ExprConstant)expr).IsOK && ((ExprConstant)expr).IsZero; + } + + private static Expr GetSeqVal(this Expr expr) +diff -uprN mono-5.4.0.201.old/external/corefx/src/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/Semantics/Nullable.cs mono-5.4.0.201/external/corefx/src/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/Semantics/Nullable.cs +--- mono-5.4.0.201.old/external/corefx/src/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/Semantics/Nullable.cs 2017-10-04 18:31:23.000000000 +0300 ++++ mono-5.4.0.201/external/corefx/src/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/Semantics/Nullable.cs 2017-10-17 20:53:01.339702962 +0300 +@@ -29,8 +29,9 @@ namespace Microsoft.CSharp.RuntimeBinder + { + Debug.Assert(expr != null); + +- if (expr is ExprCall pCall && pCall.MemberGroup.OptionalObject == null) ++ if (expr is ExprCall && ((ExprCall)expr).MemberGroup.OptionalObject == null) + { ++ var pCall = (ExprCall)expr; + MethodSymbol meth = pCall.MethWithInst.Meth(); + if (meth != null && meth.IsNullableConstructor()) + { +@@ -45,7 +46,8 @@ namespace Microsoft.CSharp.RuntimeBinder + + public static Expr StripNullableConstructor(Expr pExpr) + { +- while (IsNullableConstructor(pExpr, out ExprCall call)) ++ ExprCall call; ++ while (IsNullableConstructor(pExpr, out call)) + { + pExpr = call.OptionalArguments; + Debug.Assert(pExpr != null && !(pExpr is ExprList)); +@@ -60,7 +62,8 @@ namespace Microsoft.CSharp.RuntimeBinder + Debug.Assert(exprSrc != null && exprSrc.Type.IsNullableType()); + + // For new T?(x), the answer is x. +- if (IsNullableConstructor(exprSrc, out ExprCall call)) ++ ExprCall call; ++ if (IsNullableConstructor(exprSrc, out call)) + { + var args = call.OptionalArguments; + Debug.Assert(args != null && !(args is ExprList)); +diff -uprN mono-5.4.0.201.old/external/corefx/src/System.Collections/src/System/Collections/Generic/SortedSet.TreeSubSet.cs mono-5.4.0.201/external/corefx/src/System.Collections/src/System/Collections/Generic/SortedSet.TreeSubSet.cs +--- mono-5.4.0.201.old/external/corefx/src/System.Collections/src/System/Collections/Generic/SortedSet.TreeSubSet.cs 2017-10-04 18:31:23.000000000 +0300 ++++ mono-5.4.0.201/external/corefx/src/System.Collections/src/System/Collections/Generic/SortedSet.TreeSubSet.cs 2017-10-17 17:12:55.639702962 +0300 +@@ -352,7 +352,7 @@ namespace System.Collections.Generic + throw new PlatformNotSupportedException(); + } + +- protected override void OnDeserialization(Object sender) => throw new PlatformNotSupportedException(); ++ protected override void OnDeserialization(Object sender) { throw new PlatformNotSupportedException(); } + } + } + } +diff -uprN mono-5.4.0.201.old/external/corefx/src/System.Linq.Expressions/src/System/Dynamic/Utils/TypeExtensions.cs mono-5.4.0.201/external/corefx/src/System.Linq.Expressions/src/System/Dynamic/Utils/TypeExtensions.cs +--- mono-5.4.0.201.old/external/corefx/src/System.Linq.Expressions/src/System/Dynamic/Utils/TypeExtensions.cs 2017-10-04 18:31:23.000000000 +0300 ++++ mono-5.4.0.201/external/corefx/src/System.Linq.Expressions/src/System/Dynamic/Utils/TypeExtensions.cs 2017-10-17 19:28:46.291702962 +0300 +@@ -65,7 +65,8 @@ namespace System.Dynamic.Utils + internal static ParameterInfo[] GetParametersCached(this MethodBase method) + { + CacheDict pic = s_paramInfoCache; +- if (!pic.TryGetValue(method, out ParameterInfo[] pis)) ++ ParameterInfo[] pis; ++ if (!pic.TryGetValue(method, out pis)) + { + pis = method.GetParameters(); + +diff -uprN mono-5.4.0.201.old/external/corefx/src/System.Linq.Expressions/src/System/Linq/Expressions/Compiler/LambdaCompiler.Expressions.cs mono-5.4.0.201/external/corefx/src/System.Linq.Expressions/src/System/Linq/Expressions/Compiler/LambdaCompiler.Expressions.cs +--- mono-5.4.0.201.old/external/corefx/src/System.Linq.Expressions/src/System/Linq/Expressions/Compiler/LambdaCompiler.Expressions.cs 2017-10-04 18:31:23.000000000 +0300 ++++ mono-5.4.0.201/external/corefx/src/System.Linq.Expressions/src/System/Linq/Expressions/Compiler/LambdaCompiler.Expressions.cs 2017-10-17 19:42:26.615702962 +0300 +@@ -952,8 +952,9 @@ namespace System.Linq.Expressions.Compil + private void EmitMemberAssignment(MemberAssignment binding, Type objectType) + { + EmitExpression(binding.Expression); +- if (binding.Member is FieldInfo fi) ++ if (binding.Member is FieldInfo) + { ++ var fi = (FieldInfo)binding.Member; + _ilg.Emit(OpCodes.Stfld, fi); + } + else +@@ -1097,7 +1098,7 @@ namespace System.Linq.Expressions.Compil + private static Type GetMemberType(MemberInfo member) + { + Debug.Assert(member is FieldInfo || member is PropertyInfo); +- return member is FieldInfo fi ? fi.FieldType : (member as PropertyInfo).PropertyType; ++ return member is FieldInfo ? ((FieldInfo)member).FieldType : (member as PropertyInfo).PropertyType; + } + + #endregion +diff -uprN mono-5.4.0.201.old/external/corefx/src/System.Linq.Expressions/src/System/Linq/Expressions/MemberAssignment.cs mono-5.4.0.201/external/corefx/src/System.Linq.Expressions/src/System/Linq/Expressions/MemberAssignment.cs +--- mono-5.4.0.201.old/external/corefx/src/System.Linq.Expressions/src/System/Linq/Expressions/MemberAssignment.cs 2017-10-04 18:31:23.000000000 +0300 ++++ mono-5.4.0.201/external/corefx/src/System.Linq.Expressions/src/System/Linq/Expressions/MemberAssignment.cs 2017-10-17 19:35:40.931702962 +0300 +@@ -93,24 +93,24 @@ namespace System.Linq.Expressions + + // Null paramName as there are two paths here with different parameter names at the API + TypeUtils.ValidateType(decType, null); +- switch (member) +- { +- case PropertyInfo pi: +- if (!pi.CanWrite) +- { +- throw Error.PropertyDoesNotHaveSetter(pi, nameof(member)); +- } +- +- memberType = pi.PropertyType; +- break; +- +- case FieldInfo fi: +- memberType = fi.FieldType; +- break; +- +- default: +- throw Error.ArgumentMustBeFieldInfoOrPropertyInfo(nameof(member)); +- } ++ if (member is PropertyInfo) ++ { ++ var pi = (PropertyInfo)member; ++ if (!pi.CanWrite) ++ { ++ throw Error.PropertyDoesNotHaveSetter(pi, nameof(member)); ++ } ++ memberType = pi.PropertyType; ++ } ++ else if (member is FieldInfo) ++ { ++ var fi = (FieldInfo)member; ++ memberType = fi.FieldType; ++ } ++ else ++ { ++ throw Error.ArgumentMustBeFieldInfoOrPropertyInfo(nameof(member)); ++ } + } + } + } +diff -uprN mono-5.4.0.201.old/external/corefx/src/System.Linq.Expressions/src/System/Linq/Expressions/MemberBinding.cs mono-5.4.0.201/external/corefx/src/System.Linq.Expressions/src/System/Linq/Expressions/MemberBinding.cs +--- mono-5.4.0.201.old/external/corefx/src/System.Linq.Expressions/src/System/Linq/Expressions/MemberBinding.cs 2017-10-04 18:31:23.000000000 +0300 ++++ mono-5.4.0.201/external/corefx/src/System.Linq.Expressions/src/System/Linq/Expressions/MemberBinding.cs 2017-10-17 19:36:39.243702962 +0300 +@@ -61,6 +61,6 @@ namespace System.Linq.Expressions + return ExpressionStringBuilder.MemberBindingToString(this); + } + +- internal virtual void ValidateAsDefinedHere(int index) => throw Error.UnknownBindingType(index); ++ internal virtual void ValidateAsDefinedHere(int index) { throw Error.UnknownBindingType(index); } + } + } +diff -uprN mono-5.4.0.201.old/external/corefx/src/System.Linq.Expressions/src/System/Linq/Expressions/MemberMemberBinding.cs mono-5.4.0.201/external/corefx/src/System.Linq.Expressions/src/System/Linq/Expressions/MemberMemberBinding.cs +--- mono-5.4.0.201.old/external/corefx/src/System.Linq.Expressions/src/System/Linq/Expressions/MemberMemberBinding.cs 2017-10-04 18:31:23.000000000 +0300 ++++ mono-5.4.0.201/external/corefx/src/System.Linq.Expressions/src/System/Linq/Expressions/MemberMemberBinding.cs 2017-10-17 19:39:08.035702962 +0300 +@@ -127,24 +127,24 @@ namespace System.Linq.Expressions + + // Null paramName as there are several paths here with different parameter names at the API + TypeUtils.ValidateType(decType, null, allowByRef: true, allowPointer: true); +- switch (member) +- { +- case PropertyInfo pi: +- if (!pi.CanRead) +- { +- throw Error.PropertyDoesNotHaveGetter(pi, nameof(member)); +- } +- +- memberType = pi.PropertyType; +- break; +- +- case FieldInfo fi: +- memberType = fi.FieldType; +- break; +- +- default: +- throw Error.ArgumentMustBeFieldInfoOrPropertyInfo(nameof(member)); +- } ++ if (member is PropertyInfo) ++ { ++ var pi = (PropertyInfo)member; ++ if (!pi.CanRead) ++ { ++ throw Error.PropertyDoesNotHaveGetter(pi, nameof(member)); ++ } ++ memberType = pi.PropertyType; ++ } ++ else if (member is FieldInfo) ++ { ++ var fi = (FieldInfo)member; ++ memberType = fi.FieldType; ++ } ++ else ++ { ++ throw Error.ArgumentMustBeFieldInfoOrPropertyInfo(nameof(member)); ++ } + } + + private static void ValidateMemberInitArgs(Type type, ReadOnlyCollection bindings) +diff -uprN mono-5.4.0.201.old/external/corefx/src/System.Net.HttpListener/src/System/Net/WebSockets/HttpListenerWebSocketContext.cs mono-5.4.0.201/external/corefx/src/System.Net.HttpListener/src/System/Net/WebSockets/HttpListenerWebSocketContext.cs +--- mono-5.4.0.201.old/external/corefx/src/System.Net.HttpListener/src/System/Net/WebSockets/HttpListenerWebSocketContext.cs 2017-10-04 18:31:24.000000000 +0300 ++++ mono-5.4.0.201/external/corefx/src/System.Net.HttpListener/src/System/Net/WebSockets/HttpListenerWebSocketContext.cs 2017-10-17 17:17:31.687702962 +0300 +@@ -94,8 +94,9 @@ namespace System.Net.WebSockets + if (!(user is WindowsPrincipal)) + { + // AuthenticationSchemes.Basic. +- if (user.Identity is HttpListenerBasicIdentity basicIdentity) ++ if (user.Identity is HttpListenerBasicIdentity) + { ++ var basicIdentity=(HttpListenerBasicIdentity)user.Identity; + return new GenericPrincipal(new HttpListenerBasicIdentity(basicIdentity.Name, basicIdentity.Password), null); + } + } +diff -uprN mono-5.4.0.201.old/mcs/class/System/Mono.Net.Security/AsyncProtocolRequest.cs mono-5.4.0.201/mcs/class/System/Mono.Net.Security/AsyncProtocolRequest.cs +--- mono-5.4.0.201.old/mcs/class/System/Mono.Net.Security/AsyncProtocolRequest.cs 2017-10-04 18:30:40.000000000 +0300 ++++ mono-5.4.0.201/mcs/class/System/Mono.Net.Security/AsyncProtocolRequest.cs 2017-10-17 19:11:21.963702962 +0300 +@@ -316,7 +316,7 @@ namespace Mono.Net.Security + { + Debug ("ProcessRead - read user: {0} {1}", this, status); + +- var (ret, wantMore) = Parent.ProcessRead (UserBuffer); ++ int ret; bool wantMore; Parent.ProcessRead (UserBuffer, out ret, out wantMore); + + Debug ("ProcessRead - read user done: {0} - {1} {2}", this, ret, wantMore); + +@@ -355,7 +355,7 @@ namespace Mono.Net.Security + return AsyncOperationStatus.Complete; + } + +- var (ret, wantMore) = Parent.ProcessWrite (UserBuffer); ++ int ret; bool wantMore; Parent.ProcessWrite(UserBuffer, out ret, out wantMore); + + Debug ("ProcessWrite - write user done: {0} - {1} {2}", this, ret, wantMore); + +diff -uprN mono-5.4.0.201.old/mcs/class/System/Mono.Net.Security/MobileAuthenticatedStream.cs mono-5.4.0.201/mcs/class/System/Mono.Net.Security/MobileAuthenticatedStream.cs +--- mono-5.4.0.201.old/mcs/class/System/Mono.Net.Security/MobileAuthenticatedStream.cs 2017-10-04 18:30:40.000000000 +0300 ++++ mono-5.4.0.201/mcs/class/System/Mono.Net.Security/MobileAuthenticatedStream.cs 2017-10-17 19:11:27.267702962 +0300 +@@ -403,7 +403,7 @@ namespace Mono.Net.Security + asyncReadRequest != null ? "async" : "", + readBuffer != null ? readBuffer.ToString () : ""); + var asyncRequest = asyncHandshakeRequest ?? asyncReadRequest; +- var (ret, wantMore) = InternalRead (asyncRequest, readBuffer, buffer, offset, size); ++ int ret; bool wantMore; InternalRead (asyncRequest, readBuffer, buffer, offset, size, out ret, out wantMore); + outWantMore = wantMore; + return ret; + } catch (Exception ex) { +@@ -414,7 +414,7 @@ namespace Mono.Net.Security + } + } + +- (int, bool) InternalRead (AsyncProtocolRequest asyncRequest, BufferOffsetSize internalBuffer, byte[] buffer, int offset, int size) ++ void InternalRead (AsyncProtocolRequest asyncRequest, BufferOffsetSize internalBuffer, byte[] buffer, int offset, int size, out int _ret, out bool _wantMore) + { + if (asyncRequest == null) + throw new InvalidOperationException (); +@@ -436,10 +436,10 @@ namespace Mono.Net.Security + Debug ("InternalRead #1: {0} {1} {2}", internalBuffer.Offset, internalBuffer.TotalBytes, size); + internalBuffer.Offset = internalBuffer.Size = 0; + asyncRequest.RequestRead (size); +- return (0, true); ++ _ret = 0; _wantMore = true; return; + } + +- /* ++ /*Сабж. И чтобы гонка по кольцевым трассам. В третьи-четвёртые NFS наигрался, хочется новых трасс при схожем геймплее. + * The second time we're called, the native buffer will contain the exact amount of data that the + * previous call requested from us, so we should be able to return it all here. However, just in + * case that Apple's native function changed its mind, we can also return less. +@@ -451,7 +451,7 @@ namespace Mono.Net.Security + Buffer.BlockCopy (internalBuffer.Buffer, internalBuffer.Offset, buffer, offset, len); + internalBuffer.Offset += len; + internalBuffer.Size -= len; +- return (len, !internalBuffer.Complete && len < size); ++ _ret = len; _wantMore = !internalBuffer.Complete && len < size; return; + } + + /* +@@ -620,21 +620,21 @@ namespace Mono.Net.Security + } + } + +- internal (int, bool) ProcessRead (BufferOffsetSize userBuffer) ++ internal void ProcessRead (BufferOffsetSize userBuffer, out int _ret, out bool _wantMore) + { + lock (ioLock) { + // This operates on the internal buffer and will never block. +- var ret = xobileTlsContext.Read (userBuffer.Buffer, userBuffer.Offset, userBuffer.Size, out bool wantMore); +- return (ret, wantMore); ++ _ret = xobileTlsContext.Read (userBuffer.Buffer, userBuffer.Offset, userBuffer.Size, out _wantMore); ++ return; + } + } + +- internal (int, bool) ProcessWrite (BufferOffsetSize userBuffer) ++ internal void ProcessWrite (BufferOffsetSize userBuffer, out int _ret, out bool _wantMore) + { + lock (ioLock) { + // This operates on the internal buffer and will never block. +- var ret = xobileTlsContext.Write (userBuffer.Buffer, userBuffer.Offset, userBuffer.Size, out bool wantMore); +- return (ret, wantMore); ++ _ret = xobileTlsContext.Write (userBuffer.Buffer, userBuffer.Offset, userBuffer.Size, out _wantMore); ++ return; + } + } + diff --git a/mono-5.2.0.224.tar.bz2 b/mono-5.2.0.224.tar.bz2 deleted file mode 100644 index a8077c1..0000000 --- a/mono-5.2.0.224.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:03b8e463032bc425673dec844b35b4c669f5b99b0e45521195efb3741a9f5e94 -size 158434164 diff --git a/mono-5.4.0.201.tar.bz2 b/mono-5.4.0.201.tar.bz2 new file mode 100644 index 0000000..e7dfbe7 --- /dev/null +++ b/mono-5.4.0.201.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2a2f5c2a214a9980c086ac7561a5dd106f13d823a630de218eabafe1d995c5b4 +size 204925122 diff --git a/mono-core.changes b/mono-core.changes index e8ec76a..795af0e 100644 --- a/mono-core.changes +++ b/mono-core.changes @@ -1,3 +1,103 @@ +------------------------------------------------------------------- +Tue Oct 17 00:00:00 UTC 2017 - fwdsbs.to.11df@xoxy.net + +- Update to version 5.4.0.201 (5.4.0 Stable) +- Minor packaging updates +- Remove patch: 0001-btls-Disable-BUILD_SHARED_LIBS-while-building-boring.patch +- Remove patch: fix-project-builds-linux.patch +- Add patch mcs-compatibility-fix.patch: + * When using deprecated MCS compiler to build Mono, convert incompatible C#6\C#7 code to C#5 analog in order to fix build errors. +- New features and changes: + * JIT Job Control: improve Roslyn performance + * Array element store optimization + * Load scalability improvements + * ValueType write barrier optimization + * Make jit method table resizing more scalable + * Reflection queries scalability improvements + * Intrisificy Marshal.PtrToStruct for blitable types + * Revamped unaligned memory access support + * Interpreter works in JIT restricted environments + * Interpreter supports ARM and ARM64 + * Class Libraries: integrated AppContextSwitch code from reference sources which allows all of its compat switches to be used, added reference assemblies for .NET Framework 4.7 to support builds targetting .NET 4.7. + * Tools: bundled nuget binary was updated to version 4.3.0, added packaging for roslyn-parts of msbuild. +- Bugfixes: + * bxc#580 - Type.Load loads strong type despite version mismatch + * bxc#17325 - RealProxy returns MarshalByRefObject for an Interface instead of the real interface type + * bxc#44907 - Applications crash on Nexus 9 devices only since Xamarin.Android 7.0.0.18 + * bxc#46482 - SIGSEGV at random code lines after application start on Nexus 9 with Xamarin Android 7 + * bxc#51791 - [XA] HTC Nexus 9 - app closes on launch + * bxc#52508 - TLS SignalR Self-host Hang + * bxc#53038 - SRE should fail more gracefully when SymbolWriter is missing + * bxc#53202 - Number minus Enum gives wrong value + * bxc#53244 - mcs generates ParamArrayAttribute when specifying “params” in overridden method where base doesn’t have it + * bxc#53792 - CFNetworkHandler reports correct download when internet connection is lost during request + * bxc#54159 - Compiler crashes when calling method named Finalize + * bxc#54322 - await in catch-block inside a loop causes the same exception to be caught multiple times + * bxc#54388 - InternalsVisibleTo is case sensitive + * bxc#54448 - Unable to revert to thread-local storage for CurrentThread.CultureInfo + * bxc#54485 - Creating an open generic type with recurrent constraint fails + * bxc#54658 - [iOS]BCL test failed with Assertion failures error: * Assertion at /Users/builder/data/lanes/4691/6bea7a5b/source/xamarin-macios/external/mono/mono/mini/aot-runtime.c:2924, condition `!async’ not met and condition `unwind_options == MONO_UNWIND_NONE’ not + * bxc#54976 - [iOS]fsharp test failing on iOS device with Assertion at /Users/builder/data/lanes/4691/9245c1c0/source/xamarin-macios/external/mono/mono/mini/mini-arm-gsharedvt.c:220, condition `src_slot < 16’ not met + * bxc#54991 - Cannot compile get => _text + * bxc#55041 - Stripping mscorlib in simple example changes IntPtr (5) behavior? + * bxc#55083 - coreclr test b353858.il fails after 6f33b62f39a273fccb78f71513cb5e0dfb987c70 + * bxc#55095 - Breakpoints not hit for ASP.NET MVC Project + * bxc#55348 - “using static” results in invalid compiler errors + * bxc#55400 - MCS produces incorrect code for generic instantiated with a gtd + * bxc#55436 - System.Runtime refuses to load with strict naming + * bxc#55577 - SIMD instructions with System.Numerics.Vectors do not work + * bxc#55603 - Follow-up to bug 52845: Satellite assemblies not loaded by app when using “Bundle assemblies into native code” even though they are now successfully mkbundled + * bxc#55604 - Incorrect struct size when using property setter + * bxc#55697 - .NET 2.0 style web services fail to build under msbuild in Release but work with xbuild + * bxc#56081 - Returning a valuetype from an async method with an awaited parameter yields a Mono.CSharp.InternalErrorException: Await yields with non-empty stack + * bxc#56111 - Hitting assertion after enabling AOT+LLVM on x86 devices in tramp-x86.c:124 + * bxc#56202 - [mono-2017-04]Apps fail to launch on 32 bit device with error EXC_ARM_DA_ALIGN at 0x0142ccec + * bxc#56240 - Performance Degradation When Using Expressions + * bxc#56242 - TypeTest.GetGenericMethodDefinitionOverInflatedMethodOnGTD throws NRE on Android in Release mode + * bxc#56247 - Enumerable.OrderByDescending behaves differently on LLVM FullAOT + * bxc#56452 - Problem Stack too big + * bxc#56462 - Custom operator causes internal compiler error + * bxc#56493 - Windows MMAP doesn’t release file + * bxc#56499 - DateTime.Now throws exception if /etc/localtime symlink destination missing + * bxc#56567 - Passing large struct into exception filter method crashes runtime with SIGSEGV + * bxc#56611 - Regression: ArrayTypeMismatchException when running F# script + * bxc#56616 - Missing CS1629 for unsafe code in iterators + * bxc#56627 - mcs inherits interface implementation, while csc doesn’t + * bxc#56684 - (mono-2.0-sgen.dll) in mono.exe: 0xC0000005: Access violation reading location 0x04FA3D9A. + * bxc#56694 - Assertion: should not be reached at d:\j\workspace\v\repos\mono\mono\sgen\sgen-scan-object.h:91 + * bxc#56814 - Xamarin.Mac.dll Memory Leak starting with 3.2.0.175 Release + * bxc#56821 - Static ctor of MarshalByRefObject runs in primary AppDomain + * bxc#56824 - Runtime crash with VSMEF + * bxc#57002 - New bockbuild package is missing .dSYM directories + * bxc#57222 - System.Reflection.AmbiguousMatchException for two fields with same name but different types + * bxc#57232 - Compiler error when using ternary operator and no whitespace + * bxc#57242 - [StructLayout (LayoutKind.Sequential, Pack = 1)] doesn’t work as expected + * bxc#57301 - Running IronPython’s executable under Mono 5.0.x causes a SIGSEGV on exit, this did not happen on 4.8 + * bxc#57496 - [Slovenian CultureInfo + others] .Parse throws exception when parsing negative values + * bxc#57505 - Missing error CS0165 in presence of commented line + * bxc#57629 - [io-layer] File.Delete () throws System.UnauthorizedAccessException on non-existing files on a read-only path + * bxc#57691 - InternalsVisibleTo doesn’t work with 2048-bit SNK files + * bxc#57744 - ReflectionTypeLoadException.LoaderExceptions has null exceptions + * bxc#57771 - F#.NET Core 2.0 projects do not compile + * bxc#57796 - Compiler Crash instead of CS1621 + * bxc#57850 - Mono assertion when ResolveEventHandler returns a reflection-only assembly + * bxc#57851 - Assertion if using ResolveEventHandler to find custom attributes + * bxc#57930 - Building netstandard 2.0 project throws DllNotFoundException: hostfxr during msbuild + * bxc#57959 - SIGSEGV in roslyn with corrupted stack + * bxc#58114 - [llvm] csc (Rolsyn) produce fault clauses that the llvm backend does not support + * bxc#58210 - “* Assertion at metadata.c:1048, condition `index < meta->heap_strings.size’ not met” is output on startup - works fine on Windows + * bxc#58344 - SIMD crash using System.Numerics.Vector + * bxc#58361 - EnumBuilder can no longer be used to generate IL code + * bxc#58399 - Delegates as collection key are ~500x slower than previously + * bxc#58421 - sre-save.c asserts in fixup_method () if TypeBuilder token is used across assemblies + * bxc#58446 - [iOS]EnumerableMoreTest.ConcatArgumentNullTest crash on tvOS device + * bxc#58454 - Cannot resolve method Subscription`1 Subscribe[TSelection](System.Func`2[TState,TSelection], System.Action`2[TSelection,TState]) because the declaring type of the method handle FSI_0002+Store`1[TState] is generic. Explicitly provide the declaring type to + * bxc#58738 - System.IO.MonoIO.Read - Native Crash when device file is gone + * bxc#58782 - Exception stack traces are deleted when reaching the native-to-managed wrapper in a reverse invoke + * bxc#58829 - Application Output Window being flooded with “[Mono] worker parking, [Mono] worker unparking” messages when debugging agasint Android Emulator + * bxc#59235 - [mono-2017-06] android.runtime.JavaProxyThrowable: System.ObjectDisposedException: Cannot access a disposed object. + * bxc#59274 - [Mac]A crash report is generated on closing mac apps + ------------------------------------------------------------------- Fri Sep 29 21:00:00 UTC 2017 - fwdsbs.to.11df@xoxy.net diff --git a/mono-core.spec b/mono-core.spec index f989f72..0a1546c 100644 --- a/mono-core.spec +++ b/mono-core.spec @@ -26,7 +26,7 @@ %define boehm yes %endif -%ifarch %ix86 x86_64 +%ifarch %ix86 x86_64 armv7l armv7hl aarch64 %define btls yes %else %define btls no @@ -38,10 +38,10 @@ %define roslyn no %endif -%define version_suffix 224 +%define version_suffix 201 Name: mono-core -Version: 5.2.0 +Version: 5.4.0 Release: 0 Summary: Cross-platform, Open Source, .NET development framework License: LGPL-2.1 and MIT and MS-PL @@ -56,16 +56,14 @@ ExcludeArch: ppc Patch1: ucontext.patch # PATCH-FIX-UPSTREAM search provides (for RPM-packaging) not only for GAC dir, but also for "Facades" and "4.5" mono-libdirs Patch2: provides-facades.patch -# PATCH-FIX-UPSTREAM disable BUILD_SHARED_LIBS while building boringssl, so its symbols are not exported from the btls shared lib (https://github.com/mono/mono/commit/e6e0fb82261340f9181d1b2b11a9706a16c5dbc7) -Patch3: 0001-btls-Disable-BUILD_SHARED_LIBS-while-building-boring.patch -# PATCH-FIX-UPSTREAM fix finding nuget packages in lower-case dirs on case-sensitive filesystems (https://github.com/mono/NuGet.BuildTasks/commit/112685a925e5c0d26fcf9c9006341d4fa4f66515) -Patch4: fix-project-builds-linux.patch # PATCH-FIX-OPENSUSE remove checks for libmono in mono-find-provides and mono-find-requires scripts Patch14: find-deps-fix.patch # PATCH-FIX-OPENSUSE revert Microsoft.Build.Tasks library to use old mcs compiler. This will make xbuild to use old mcs instead of csc - patch is used when roslyn is unavailable for current platform (big-endian systems). Patch15: xbuild-revert-to-mcs.patch # PATCH-FIX-OPENSUSE add missing internal headers to distribution, this is necessary for mono-debugger package. (Seems this bug is caused by this upstream commit: https://github.com/mono/mono/commit/e71a7f33ef30a5bbd0047b37a95533d06c860846) Patch16: fix-dbg-headers.patch +# PATCH-FIX-OPENSUSE if using deprecated mcs compiler instead of roslyn-csc convert non-compatible c#6 and c#7 code to older c#5 analogs, so mcs can compile it without errors. +Patch17: mcs-compatibility-fix.patch BuildRequires: cmake BuildRequires: autoconf BuildRequires: automake @@ -186,10 +184,13 @@ Provides: mono(Mono.Configuration.Crypto) = 4.0.0.0 Requires: timezone %define _use_internal_dependency_generator 0 + # mono now ships with precompiled roslyn components that will lead us to broken requires\provides # instead of filtering bigger list of broken requires\provides, filter initial filelist and disable precompiled binaries from evaluation %define roslyn_prefix %{buildroot}%{_prefix}/lib/mono/4.5 -%define filtered_filelist printf "%s\\n" "${filelist[@]}" | grep -v "%{roslyn_prefix}/Microsoft.CodeAnalysis.CSharp.dll" | grep -v "%{roslyn_prefix}/Microsoft.CodeAnalysis.dll" | grep -v "%{roslyn_prefix}/System.Collections.Immutable.dll" | grep -v "%{roslyn_prefix}/System.Reflection.Metadata.dll" | grep -v "%{roslyn_prefix}/csc.exe" | cat - +%define msbuild_prefix %{buildroot}%{_prefix}/lib/mono/msbuild/15.0/bin/Roslyn +%define filtered_filelist printf "%s\\n" "${filelist[@]}" | grep -v "%{roslyn_prefix}/Microsoft.CodeAnalysis" | grep -v "%{roslyn_prefix}/Microsoft.Build.Tasks.CodeAnalysis.dll" | grep -v "%{roslyn_prefix}/System.Collections.Immutable.dll" | grep -v "%{roslyn_prefix}/System.Reflection.Metadata.dll" | grep -v "%{roslyn_prefix}/csc.exe" | grep -v "%{roslyn_prefix}/csi.exe" | grep -v "%{roslyn_prefix}/VBCSCompiler.exe" | grep -v "%{msbuild_prefix}/Microsoft.CodeAnalysis" | grep -v "%{msbuild_prefix}/Microsoft.Build.Tasks.CodeAnalysis.dll" | grep -v "%{msbuild_prefix}/System.Collections.Immutable.dll" | grep -v "%{msbuild_prefix}/System.Reflection.Metadata.dll" | grep -v "%{msbuild_prefix}/csc.exe" | grep -v "%{msbuild_prefix}/csi.exe" | grep -v "%{msbuild_prefix}/VBCSCompiler.exe" | cat - + %define __find_provides env sh -c 'filelist=($(cat)) && { %{filtered_filelist} | /usr/lib/rpm/find-provides && %{filtered_filelist} | prefix=%{buildroot}%{_prefix} %{buildroot}%{_bindir}/mono-find-provides ; } | sort | uniq' %define __find_requires env sh -c 'filelist=($(cat)) && { %{filtered_filelist} | /usr/lib/rpm/find-requires && %{filtered_filelist} | prefix=%{buildroot}%{_prefix} %{buildroot}%{_bindir}/mono-find-requires ; } | sort | uniq' @@ -204,12 +205,11 @@ technologies that have been submitted to the ECMA for standardization. %setup -q -n mono-%{version}.%{version_suffix} %patch1 -p1 %patch2 -p1 -%patch3 -p1 -%patch4 -p1 %patch14 -p1 %patch16 -p1 %if %roslyn == no %patch15 -p1 +%patch17 -p1 %endif %build @@ -260,9 +260,6 @@ export PATH=/opt/novell/llvm-mono/bin:$PATH %ifnarch %ix86 x86_64 --disable-system-aot \ %endif -%if %btls == yes - --enable-dynamic-btls \ -%endif %if %roslyn == no --with-csc=mcs \ %endif @@ -331,8 +328,15 @@ rm -v %{buildroot}%{_prefix}/lib/mono/4.5/Microsoft.CodeAnalysis.CSharp.dll* rm -v %{buildroot}%{_prefix}/lib/mono/4.5/Microsoft.CodeAnalysis.dll* rm -v %{buildroot}%{_prefix}/lib/mono/4.5/System.Collections.Immutable.dll* rm -v %{buildroot}%{_prefix}/lib/mono/4.5/System.Reflection.Metadata.dll* +rm -v %{buildroot}%{_prefix}/lib/mono/4.5/Microsoft.CodeAnalysis.CSharp.Scripting.dll* +rm -v %{buildroot}%{_prefix}/lib/mono/4.5/Microsoft.CodeAnalysis.Scripting.dll* +rm -v %{buildroot}%{_prefix}/lib/mono/4.5/Microsoft.CodeAnalysis.VisualBasic.dll* +rm -v %{buildroot}%{_prefix}/lib/mono/4.5/VBCSCompiler.* rm -v %{buildroot}%{_prefix}/lib/mono/4.5/csc.* +rm -v %{buildroot}%{_prefix}/lib/mono/4.5/csi.* rm -v %{buildroot}%{_bindir}/csc +rm -v %{buildroot}%{_bindir}/csi +rm -rfv %{msbuild_prefix} %endif %fdupes %{buildroot}%{_prefix} @@ -514,11 +518,17 @@ rm %{buildroot}%{_bindir}/mono-sgen-gdb.py %endif %if %roslyn == yes %{_bindir}/csc +%{_bindir}/csi %{_prefix}/lib/mono/4.5/csc.* +%{_prefix}/lib/mono/4.5/csi.* %{_prefix}/lib/mono/4.5/System.Collections.Immutable.dll* %{_prefix}/lib/mono/4.5/Microsoft.CodeAnalysis.dll* %{_prefix}/lib/mono/4.5/Microsoft.CodeAnalysis.CSharp.dll* +%{_prefix}/lib/mono/4.5/Microsoft.CodeAnalysis.CSharp.Scripting.dll* +%{_prefix}/lib/mono/4.5/Microsoft.CodeAnalysis.Scripting.dll* +%{_prefix}/lib/mono/4.5/Microsoft.CodeAnalysis.VisualBasic.dll* %{_prefix}/lib/mono/4.5/System.Reflection.Metadata.dll* +%{_prefix}/lib/mono/4.5/VBCSCompiler.* %{_prefix}/lib/mono/4.5/al.pdb %{_prefix}/lib/mono/4.5/cert-sync.pdb %{_prefix}/lib/mono/4.5/certmgr.pdb @@ -1439,6 +1449,7 @@ Mono development tools. %dir %{_libdir}/mono/ %{_libdir}/mono/lldb %if %roslyn == yes +%{_prefix}/lib/mono/msbuild %{_prefix}/lib/mono/4.5/caspol.pdb %{_prefix}/lib/mono/4.5/cccheck.pdb %{_prefix}/lib/mono/4.5/ccrewrite.pdb