From 5d120fa58637ac653c065f3b2040acaaee92faa34f7cbbe1666b40d049ec350b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ismail=20D=C3=B6nmez?= Date: Tue, 16 May 2017 09:00:28 +0000 Subject: [PATCH] Accepting request 494748 from home:Warhammer40k:Mono:Factory Update to Mono 5.0 stable. OBS-URL: https://build.opensuse.org/request/show/494748 OBS-URL: https://build.opensuse.org/package/show/Mono:Factory/mono-core?expand=0&rev=182 --- mono-4.8.1.0.tar.bz2 | 3 - mono-5.0.0.100.tar.bz2 | 3 + mono-core.changes | 14 ++++ mono-core.spec | 159 ++++++++++++++++++++++++++++++++++--- xbuild-revert-to-mcs.patch | 12 +++ 5 files changed, 176 insertions(+), 15 deletions(-) delete mode 100644 mono-4.8.1.0.tar.bz2 create mode 100644 mono-5.0.0.100.tar.bz2 create mode 100644 xbuild-revert-to-mcs.patch diff --git a/mono-4.8.1.0.tar.bz2 b/mono-4.8.1.0.tar.bz2 deleted file mode 100644 index 46e4ce0..0000000 --- a/mono-4.8.1.0.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:18cb38a670e51609c36c687ed90ad42cfedabeffd0a2dc5f7f0c46249eb8dbef -size 87375499 diff --git a/mono-5.0.0.100.tar.bz2 b/mono-5.0.0.100.tar.bz2 new file mode 100644 index 0000000..a2af2e0 --- /dev/null +++ b/mono-5.0.0.100.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:368da3ff9f42592920cd8cf6fa15c6c16558e967144c4d3df873352e5d2bb6df +size 154086441 diff --git a/mono-core.changes b/mono-core.changes index cd7f320..f8f86ca 100644 --- a/mono-core.changes +++ b/mono-core.changes @@ -1,3 +1,17 @@ +------------------------------------------------------------------- +Thu May 11 23:00:00 UTC 2017 - fwdsbs.to.11df@xoxy.net + +- Update to version 5.0.0.100 (5.0 Stable) +- New features and changes: + * Shipping Roslyn C# compiler to enable C#7 support + * Support for msbuild and deprecating xbuild + (msbuild currently not included, xbuild deprecated but still maintained) + * Enabling concurrent SGen garbage collector to reduce time spent in GC + * Continued Progress on .NET Class Library convergence +- Packaging changes: + * Do not package roslyn csc compiler on platforms that do not support it + * Add xbuild-revert-to-mcs.patch: revert xbuild to use old mcs compiler on platforms that do not support roslyn + ------------------------------------------------------------------- Tue May 4 12:00:00 UTC 2017 - fwdsbs.to.11df@xoxy.net diff --git a/mono-core.spec b/mono-core.spec index 5e044c2..dcd1fef 100644 --- a/mono-core.spec +++ b/mono-core.spec @@ -15,6 +15,7 @@ # Please submit bugfixes or comments via http://bugs.opensuse.org/ # +# norootforbuild %{!?ext_man: %define ext_man .gz} %define llvm no @@ -31,21 +32,28 @@ %define btls no %endif +%ifarch %ix86 x86_64 ppc64le armv7l armv7hl aarch64 +%define roslyn yes +%else +%define roslyn no +%endif Name: mono-core -Version: 4.8.1 +Version: 5.0.0 Release: 0 Summary: Cross-platform, Open Source, .NET development framework License: LGPL-2.1 and MIT and MS-PL Group: Development/Languages/Mono Url: http://www.mono-project.com -Source0: http://download.mono-project.com/sources/mono/mono-%{version}.0.tar.bz2 +Source0: http://download.mono-project.com/sources/mono/mono-%{version}.100.tar.bz2 Source1: mono-core.rpmlintrc Source2: gmcs # ppc build segfault so exclude it ExcludeArch: ppc # 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 BuildRequires: cmake BuildRequires: autoconf BuildRequires: automake @@ -166,8 +174,12 @@ Provides: mono(Mono.Configuration.Crypto) = 4.0.0.0 Requires: timezone %define _use_internal_dependency_generator 0 -%define __find_provides env sh -c 'filelist=($(cat)) && { printf "%s\\n" "${filelist[@]}" | /usr/lib/rpm/find-provides && printf "%s\\n" "${filelist[@]}" | prefix=%{buildroot}%{_prefix} %{buildroot}%{_bindir}/mono-find-provides ; } | sort | uniq' -%define __find_requires env sh -c 'filelist=($(cat)) && { printf "%s\\n" "${filelist[@]}" | /usr/lib/rpm/find-requires && printf "%s\\n" "${filelist[@]}" | prefix=%{buildroot}%{_prefix} %{buildroot}%{_bindir}/mono-find-requires ; } | sort | uniq' +# 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 __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' %description The Mono Project is an open development initiative that is working to @@ -179,13 +191,35 @@ technologies that have been submitted to the ECMA for standardization. %prep %setup -q -n mono-%{version} %patch14 -p1 +%if %roslyn == no +%patch15 -p1 +%endif %build -NOCONFIGURE="yes" ./autogen.sh -# These are only needed if there are patches to the runtime -#rm -f libgc/libtool.m4 -#autoreconf --force --install -#autoreconf --force --install libgc +# autogen.sh seems broken: it is not processing libgs subdirectory leaving old stuff there untouched. +# so, remove gnu-build-system files manually +find . \( \ +-name "Makefile.in" \ +-o -name "missing" \ +-o -name "ltmain.sh" \ +-o -name "install-sh" \ +-o -name "depcomp" \ +-o -name "configure" \ +-o -name "compile" \ +-o -name "config.guess" \ +-o -name "config.sub" \ +-o -name "config.h.in" \ +-o -name "aclocal.m4" \ +-o -name "test-driver" \ +-o -name "libtool.m4" \ +-o -name "ltoptions.m4" \ +-o -name "ltsugar.m4" \ +-o -name "ltversion.m4" \ +-o -name "lt~obsolete.m4" \ +\) -a -not -path "./external/*" \ +-exec rm -v {} \; +# and recreate them with autoreconf +autoreconf -fvi export CFLAGS=" %{optflags} -fno-strict-aliasing" %ifarch armv7l armv7hl export MONO_CPU_ARCH="armv7l-thumb" @@ -211,6 +245,9 @@ export PATH=/opt/novell/llvm-mono/bin:$PATH %endif %if %btls == yes --enable-dynamic-btls \ +%endif +%if %roslyn == no + --with-csc=mcs \ %endif --with-ikvm=yes \ --with-moonlight=no @@ -243,8 +280,9 @@ rm -rf %{buildroot}%{_datadir}/libgc-mono # remove stuff that we don't package rm -f %{buildroot}%{_bindir}/cilc rm -f %{buildroot}%{_mandir}/man1/cilc.1* -rm -f %{buildroot}%{_prefix}/lib/mono/*/browsercaps-updater.exe* -rm -f %{buildroot}%{_prefix}/lib/mono/*/culevel.exe* +rm -f %{buildroot}%{_mandir}/man1/mdb2ppdb.1* +rm -f %{buildroot}%{_prefix}/lib/mono/*/browsercaps-updater.* +rm -f %{buildroot}%{_prefix}/lib/mono/*/culevel.* # brp-compress doesn't search _mandir # so we cheat it @@ -267,6 +305,19 @@ rm -rf %{buildroot}%{_prefix}/lib/mono/xbuild/12.0/bin/Microsoft.Build.Utilities # Fake the deprecated binary to build legacy packages. install -D -m 0755 %{S:2} %{buildroot}%{_bindir}/gmcs +# remove roslyn components, if it is disabled from build. +# this trick is needed to fix build for some packages (gnome-keyring-sharp for example), +# that incorrectly detect CSC precense when it is actually not usable for current platform. +# mono still package roslyn components even if it is disabled from build +%if %roslyn == no +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/csc.* +rm -v %{buildroot}%{_bindir}/csc +%endif + %fdupes %{buildroot}%{_prefix} %find_lang mcs @@ -445,6 +496,27 @@ rm %{buildroot}%{_bindir}/mono-sgen-gdb.py %{_prefix}/lib/mono/4.5/Mono.Btls.Interface.dll %{_prefix}/lib/mono/gac/Mono.Btls.Interface %endif +%if %roslyn == yes +%{_bindir}/csc +%{_prefix}/lib/mono/4.5/csc.* +%{_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/System.Reflection.Metadata.dll* +%{_prefix}/lib/mono/4.5/al.pdb +%{_prefix}/lib/mono/4.5/cert-sync.pdb +%{_prefix}/lib/mono/4.5/certmgr.pdb +%{_prefix}/lib/mono/4.5/chktrust.pdb +%{_prefix}/lib/mono/4.5/crlupdate.pdb +%{_prefix}/lib/mono/4.5/csharp.pdb +%{_prefix}/lib/mono/4.5/gacutil.pdb +%{_prefix}/lib/mono/4.5/ikdasm.pdb +%{_prefix}/lib/mono/4.5/mcs.pdb +%{_prefix}/lib/mono/4.5/mozroots.pdb +%{_prefix}/lib/mono/4.5/setreg.pdb +%{_prefix}/lib/mono/4.5/sn.pdb +%{_prefix}/lib/mono/4.5/mscorlib.pdb +%endif %post cert-sync /etc/ssl/ca-bundle.pem @@ -715,6 +787,10 @@ Database connectivity for Mono. %{_prefix}/lib/mono/gac/System.Runtime.Serialization %{_prefix}/lib/mono/gac/System.Transactions %{_prefix}/lib/mono/gac/WebMatrix.Data +%if %roslyn == yes +%{_prefix}/lib/mono/4.5/sqlmetal.pdb +%{_prefix}/lib/mono/4.5/sqlsharp.pdb +%endif %package -n mono-winforms Summary: Mono's Windows Forms implementation @@ -836,6 +912,11 @@ Extra packages. %{_prefix}/lib/mono/gac/System.ServiceProcess %{_prefix}/lib/mono/gac/System.Xaml %{_prefix}/lib/mono/gac/mono-service +%if %roslyn == yes +%{_prefix}/lib/mono/4.5/installutil.pdb +%{_prefix}/lib/mono/4.5/mono-service.pdb +%{_prefix}/lib/mono/4.5/RabbitMQ.Client.Apigen.pdb +%endif %package -n mono-data-sqlite Summary: Database connectivity for Mono @@ -902,6 +983,9 @@ Mono implementation of WCF, Windows Communication Foundation %{_prefix}/lib/mono/gac/System.ServiceModel.Routing %{_prefix}/lib/mono/gac/System.ServiceModel.Web %{_prefix}/lib/mono/gac/SMDiagnostics +%if %roslyn == yes +%{_prefix}/lib/mono/4.5/svcutil.pdb +%endif %package -n mono-winfxcore Summary: Mono implementation of core WinFX APIs @@ -1027,6 +1111,13 @@ Mono implementation of ASP.NET, Remoting and Web Services. %{_prefix}/lib/mono/gac/System.Web.WebPages.Deployment %{_prefix}/lib/mono/gac/System.Web.WebPages.Razor %{_prefix}/lib/mono/gac/System.Web.WebPages +%if %roslyn == yes +%{_prefix}/lib/mono/4.5/disco.pdb +%{_prefix}/lib/mono/4.5/mconfig.pdb +%{_prefix}/lib/mono/4.5/soapsuds.pdb +%{_prefix}/lib/mono/4.5/wsdl.pdb +%{_prefix}/lib/mono/4.5/xsd.pdb +%endif %package -n mono-mvc Summary: Mono implementation of ASP @@ -1121,6 +1212,9 @@ NUnit brings xUnit to all .NET languages. %{_prefix}/lib/mono/gac/nunit.framework.extensions %{_prefix}/lib/mono/gac/nunit.mocks %{_prefix}/lib/mono/gac/nunit.util +%if %roslyn == yes +%{_prefix}/lib/mono/4.5/nunit-console.pdb +%endif %package -n mono-devel Summary: Mono development tools @@ -1246,7 +1340,6 @@ Mono development tools. %{_mandir}/man1/mprof-report.1%ext_man %{_mandir}/man1/pdb2mdb.1%ext_man %{_mandir}/man1/permview.1%ext_man -%{_mandir}/man1/prj2make.1%ext_man %{_mandir}/man1/resgen.1%ext_man %{_mandir}/man1/secutil.1%ext_man %{_mandir}/man1/sgen.1%ext_man @@ -1254,6 +1347,11 @@ Mono development tools. %{_mandir}/man1/xbuild.1%ext_man %{_prefix}/lib/mono-source-libs %{_prefix}/lib/mono/4.0 +%{_prefix}/lib/mono/4.6.2-api +%{_prefix}/lib/mono/4.6.1-api +%{_prefix}/lib/mono/4.6-api +%{_prefix}/lib/mono/4.5.2-api +%{_prefix}/lib/mono/4.5.1-api %{_prefix}/lib/mono/4.5-api %{_prefix}/lib/mono/4.0-api %{_prefix}/lib/mono/3.5-api @@ -1323,6 +1421,39 @@ Mono development tools. %{_prefix}/lib/mono/xbuild-frameworks %dir %{_libdir}/mono/ %{_libdir}/mono/lldb +%if %roslyn == yes +%{_prefix}/lib/mono/4.5/caspol.pdb +%{_prefix}/lib/mono/4.5/cccheck.pdb +%{_prefix}/lib/mono/4.5/ccrewrite.pdb +%{_prefix}/lib/mono/4.5/cert2spc.pdb +%{_prefix}/lib/mono/4.5/dtd2rng.pdb +%{_prefix}/lib/mono/4.5/dtd2xsd.pdb +%{_prefix}/lib/mono/4.5/genxs.pdb +%{_prefix}/lib/mono/4.5/httpcfg.pdb +%{_prefix}/lib/mono/4.5/ictool.pdb +%{_prefix}/lib/mono/4.5/ilasm.pdb +%{_prefix}/lib/mono/4.5/installvst.pdb +%{_prefix}/lib/mono/4.5/lc.pdb +%{_prefix}/lib/mono/4.5/linkeranalyzer.pdb +%{_prefix}/lib/mono/4.5/macpack.pdb +%{_prefix}/lib/mono/4.5/makecert.pdb +%{_prefix}/lib/mono/4.5/mdbrebase.pdb +%{_prefix}/lib/mono/4.5/mkbundle.pdb +%{_prefix}/lib/mono/4.5/mono-api-info.pdb +%{_prefix}/lib/mono/4.5/mono-api-html.pdb +%{_prefix}/lib/mono/4.5/mono-cil-strip.pdb +%{_prefix}/lib/mono/4.5/mono-shlib-cop.pdb +%{_prefix}/lib/mono/4.5/mono-xmltool.pdb +%{_prefix}/lib/mono/4.5/monop.pdb +%{_prefix}/lib/mono/4.5/pdb2mdb.pdb +%{_prefix}/lib/mono/4.5/permview.pdb +%{_prefix}/lib/mono/4.5/resgen.pdb +%{_prefix}/lib/mono/4.5/secutil.pdb +%{_prefix}/lib/mono/4.5/sgen.pdb +%{_prefix}/lib/mono/4.5/signcode.pdb +%{_prefix}/lib/mono/4.5/*symbolicate.pdb +%{_prefix}/lib/mono/4.5/xbuild.pdb +%endif %package -n mono-reactive Summary: Reactive Extensions @@ -1409,6 +1540,10 @@ Monodoc-core contains documentation tools for C#. %{_prefix}/lib/mono/gac/monodoc %{_prefix}/lib/mono/monodoc %{_prefix}/lib/monodoc +%if %roslyn == yes +%{_prefix}/lib/mono/4.5/mdoc.pdb +%{_prefix}/lib/mono/4.5/mod.pdb +%endif %package -n mono-complete Summary: Install everything built from the mono source tree diff --git a/xbuild-revert-to-mcs.patch b/xbuild-revert-to-mcs.patch new file mode 100644 index 0000000..12b56a2 --- /dev/null +++ b/xbuild-revert-to-mcs.patch @@ -0,0 +1,12 @@ +diff -uprN mono-5.0.0.old/mcs/class/Microsoft.Build.Tasks/Microsoft.Build.Tasks/Csc.cs mono-5.0.0/mcs/class/Microsoft.Build.Tasks/Microsoft.Build.Tasks/Csc.cs +--- mono-5.0.0.old/mcs/class/Microsoft.Build.Tasks/Microsoft.Build.Tasks/Csc.cs 2017-05-03 18:45:38.000000000 +0300 ++++ mono-5.0.0/mcs/class/Microsoft.Build.Tasks/Microsoft.Build.Tasks/Csc.cs 2017-05-05 05:05:48.901776264 +0300 +@@ -219,7 +219,7 @@ namespace Microsoft.Build.Tasks { + + protected override string ToolName { + get { +- return MSBuildUtils.RunningOnWindows ? "csc.bat" : "csc.exe"; ++ return MSBuildUtils.RunningOnWindows ? "mcs.bat" : "mcs.exe"; + } + } +