diff --git a/.gitignore b/.gitignore index 7e4e825..4760fae 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ /dotnet-9e8b04bbff820c93c142f99a507a46b976f5c14c-x64-bootstrap.tar.xz /dotnet-arm64-prebuilts-2021-10-29.tar.gz /dotnet-s390x-prebuilts-2021-10-29.tar.gz +/dotnet-9e8b04bbff820c93c142f99a507a46b976f5c14c.tar.gz +/dotnet-v6.0.102.tar.gz diff --git a/dotnet6.0.spec b/dotnet6.0.spec index c4b60ba..3801455 100644 --- a/dotnet6.0.spec +++ b/dotnet6.0.spec @@ -1,4 +1,4 @@ -%bcond_without bootstrap +%bcond_with bootstrap # Avoid provides/requires from private libraries %global privlibs libhostfxr @@ -20,11 +20,11 @@ # until that's done, disable LTO. This has to happen before setting the flags below. %define _lto_cflags %{nil} -%global host_version 6.0.0 -%global runtime_version 6.0.0 -%global aspnetcore_runtime_version 6.0.0 -%global sdk_version 6.0.100 -%global templates_version 6.0.0 +%global host_version 6.0.2 +%global runtime_version 6.0.2 +%global aspnetcore_runtime_version %{runtime_version} +%global sdk_version 6.0.102 +%global templates_version %{runtime_version} #%%global templates_version %%(echo %%{runtime_version} | awk 'BEGIN { FS="."; OFS="." } {print $1, $2, $3+1 }') %global host_rpm_version %{host_version} @@ -33,8 +33,7 @@ %global sdk_rpm_version %{sdk_version} # upstream can update releases without revving the SDK version so these don't always match -#%%global upstream_tag v%%{sdk_version}-SDK -%global upstream_tag 9e8b04bbff820c93c142f99a507a46b976f5c14c +%global upstream_tag v%{sdk_version} %if 0%{?fedora} || 0%{?rhel} < 8 %global use_bundled_libunwind 0 @@ -60,7 +59,7 @@ Name: dotnet6.0 Version: %{sdk_rpm_version} -Release: 2%{?dist} +Release: 3%{?dist} Summary: .NET Runtime and SDK License: MIT and ASL 2.0 and BSD and LGPLv2+ and CC-BY and CC0 and MS-PL and EPL-1.0 and GPL+ and GPLv2 and ISC and OFL and zlib URL: https://github.com/dotnet/ @@ -86,10 +85,6 @@ Source11: dotnet.sh.in Patch100: runtime-arm64-lld-fix.patch # Mono still has a dependency on (now unbuildable) ILStrip which was removed from CoreCLR: https://github.com/dotnet/runtime/pull/60315 Patch101: runtime-mono-remove-ilstrip.patch -# https://github.com/dotnet/runtime/pull/61442 -Patch102: runtime-61442-disable-werror.patch -# https://github.com/dotnet/runtime/pull/62170 -Patch103: runtime-62170-clang13.patch # https://github.com/dotnet/command-line-api/pull/1401 Patch300: command-line-api-use-work-tree-with-git-apply.patch @@ -130,8 +125,6 @@ Patch1501: sdk-22373-portablerid.patch # https://github.com/dotnet/installer/pull/12516 Patch1600: installer-12516-portablerid.patch -# https://github.com/dotnet/installer/pull/12622 -Patch1601: installer-12622-fix-runtime-symbols.patch %if 0%{?fedora} || 0%{?rhel} >= 8 @@ -393,8 +386,6 @@ sed -i 's|/usr/share/dotnet|%{_libdir}/dotnet|' src/runtime.*/src/native/corehos pushd src/runtime.* %patch100 -p1 %patch101 -p1 -%patch102 -p1 -%patch103 -p1 popd pushd src/command-line-api.* @@ -447,10 +438,6 @@ pushd src/installer.* %patch1600 -p1 popd -# We need to apply the patch to the already-built tarball's -# repos/runtime.common.targets, not to the installer's "source" copy. -%patch1601 -p5 - # Disable package validation which breaks our build. # There's no need to run validation in RPM packages anyway. # See https://github.com/dotnet/runtime/pull/60881 @@ -528,13 +515,14 @@ ls artifacts/%{runtime_arch}/Release tar xf artifacts/%{runtime_arch}/Release/dotnet-sdk-%{sdk_version}-%{runtime_id}.tar.gz -C %{buildroot}%{_libdir}/dotnet/ # See https://github.com/dotnet/source-build/issues/2579 -find %{buildroot}%{_libdir}/dotnet/ -type f -iname testhost.x86 -delete -find %{buildroot}%{_libdir}/dotnet/ -type f -iname vstest.console -delete +find %{buildroot}%{_libdir}/dotnet/ -type f -name 'testhost.x86' -delete +find %{buildroot}%{_libdir}/dotnet/ -type f -name 'vstest.console' -delete -# Install managed symbols -# Disabled until https://github.com/dotnet/source-build/issues/2623 is sorted out -#tar xf artifacts/%%{runtime_arch}/Release/runtime/dotnet-runtime-symbols-%%{runtime_id}-%%{runtime_version}.tar.gz \ -# -C %%{buildroot}/%%{_libdir}/dotnet/shared/Microsoft.NETCore.App/%%{runtime_version}/ +# Install managed symbols: disabled because they don't contain sources +# but point to the paths the sources would have been at in the build +# servers. The end user experience is pretty bad atm. +# tar xf artifacts/%%{runtime_arch}/Release/runtime/dotnet-runtime-symbols-%%{runtime_id}-%%{runtime_version}.tar.gz \ +# -C %%{buildroot}/%%{_libdir}/dotnet/shared/Microsoft.NETCore.App/%%{runtime_version}/ # Fix executable permissions on files find %{buildroot}%{_libdir}/dotnet/ -type f -name 'apphost' -exec chmod +x {} \; @@ -577,13 +565,15 @@ install install_location_%{runtime_arch} %{buildroot}%{_sysconfdir}/dotnet/ install -dm 0755 %{buildroot}%{_libdir}/dotnet/source-built-artifacts install -m 0644 artifacts/%{runtime_arch}/Release/Private.SourceBuilt.Artifacts.*.tar.gz %{buildroot}/%{_libdir}/dotnet/source-built-artifacts/ +# Quick and dirty check for https://github.com/dotnet/source-build/issues/2731 +test -f %{buildroot}%{_libdir}/dotnet/sdk/%{sdk_version}/Sdks/Microsoft.NET.Sdk/Sdk/Sdk.props + # Check debug symbols in all elf objects. This is not in %%check # because native binaries are stripped by rpm-build after %%install. # So we need to do this check earlier. -# FIXME -#echo "Testing build results for debug symbols..." -#%%{SOURCE10} -v %%{buildroot}%%{_libdir}/dotnet/ +echo "Testing build results for debug symbols..." +%{SOURCE10} -v %{buildroot}%{_libdir}/dotnet/ @@ -648,6 +638,10 @@ test -f %{buildroot}%{_libdir}/dotnet/sdk/%{sdk_version}/Sdks/Microsoft.NET.Sdk/ %changelog +* Tue Feb 15 2022 Omair Majid - 6.0.102-3 +- Disable bootstrap +- Related: RHBZ#1986211 + * Fri Feb 04 2022 Omair Majid - 6.0.100-2 - Rebuild and check SDK to avoid an incomplete SDK - Related: RHBZ#1986211 diff --git a/installer-12622-fix-runtime-symbols.patch b/installer-12622-fix-runtime-symbols.patch deleted file mode 100644 index fa2d46f..0000000 --- a/installer-12622-fix-runtime-symbols.patch +++ /dev/null @@ -1,48 +0,0 @@ -From 7365824ddc6ed66152cfc50f4c8508368953099c Mon Sep 17 00:00:00 2001 -From: Omair Majid -Date: Tue, 9 Nov 2021 08:39:27 -0500 -Subject: [PATCH] Also publish non-portable RID runtime symbols tarball - -This fixes a regression in .NET 6 source-build compared to the .NET -5 source-build. - -source-build wants to publish runtime symbols tarball for portable (eg, -linux-x64) and non-portable (eg, fedora.33-x64) RIDs here after a build. -Following .NET 5 conventions, I expected to see: - - ./artifacts/x64/Release/runtime/dotnet-runtime-symbols-fedora.34-x64-6.0.0.tar.gz - ./artifacts/x64/Release/runtime/dotnet-runtime-symbols-linux-x64-6.0.0.tar.gz - -Unfortunately, only the portable RID (linux-x64) tarball is present -after a full source-build in .NET 6. - -It turns out this is a bug in our build scripts. We try and copy -binaries - including the symbol tarballs - after building each of -runtime-portable and runtime. However, the target dependency is wrong: -after `Build`, the intermediate package doesn't exist from the -just-built repo. - -What ends up happening is that nothing is copied after building -runtime-portable. However, after building runtime, the runtime-portable -intermediate artifacts are found and copied over. So the end -build has portable RID symbos, but not the non-portable ones. - -Fix that by changing the dependency of this target so it runs after -intermediate packages are available. ---- - src/SourceBuild/tarball/content/repos/runtime.common.targets | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/SourceBuild/tarball/content/repos/runtime.common.targets b/src/SourceBuild/tarball/content/repos/runtime.common.targets -index ca606b23d21..862b70dc832 100644 ---- a/src/SourceBuild/tarball/content/repos/runtime.common.targets -+++ b/src/SourceBuild/tarball/content/repos/runtime.common.targets -@@ -23,7 +23,7 @@ - - - - diff --git a/runtime-61442-disable-werror.patch b/runtime-61442-disable-werror.patch deleted file mode 100644 index 401440c..0000000 --- a/runtime-61442-disable-werror.patch +++ /dev/null @@ -1,41 +0,0 @@ -From f41c06ba040adf1930156340c5b03d9864d8a1d4 Mon Sep 17 00:00:00 2001 -From: Omair Majid -Date: Wed, 10 Nov 2021 17:54:45 -0500 -Subject: [PATCH] The 6.0 branch is no longer pre-release - -This has limited affects, but it should have been set to false since 6.0 -is now stable/released. - -The one difference it makes is that -Werror is disabled when building -native code. ---- - Directory.Build.props | 2 +- - eng/native/configureplatform.cmake | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/Directory.Build.props b/Directory.Build.props -index f19ea9208c2c..5cb87bb7c257 100644 ---- a/Directory.Build.props -+++ b/Directory.Build.props -@@ -255,7 +255,7 @@ - https://go.microsoft.com/fwlink/?LinkID=799421 - - -- true -+ false - $(MSBuildProjectName.Contains('Private')) - - true -diff --git a/eng/native/configureplatform.cmake b/eng/native/configureplatform.cmake -index 519431772004..af1c88bce5b6 100644 ---- a/eng/native/configureplatform.cmake -+++ b/eng/native/configureplatform.cmake -@@ -2,7 +2,7 @@ include(${CMAKE_CURRENT_LIST_DIR}/functions.cmake) - - # If set, indicates that this is not an officially supported release - # Keep in sync with IsPrerelease in Directory.Build.props --set(PRERELEASE 1) -+set(PRERELEASE 0) - - #---------------------------------------- - # Detect and set platform variable names diff --git a/runtime-62170-clang13.patch b/runtime-62170-clang13.patch deleted file mode 100644 index 8c47186..0000000 --- a/runtime-62170-clang13.patch +++ /dev/null @@ -1,76 +0,0 @@ -From 9cd95a5608b667e22727d9eb1a5330efd61dfe50 Mon Sep 17 00:00:00 2001 -From: Jan Vorlicek -Date: Mon, 29 Nov 2021 17:32:45 -0800 -Subject: [PATCH] Fix clang 13 induced runtime issues - -The clang 13 optimizer started to assume that "this" pointer is always -properly aligned. That lead to elimination of some code that was actually -needed. -It also takes pointer aliasing rules more strictly in one place in jit. -That caused the optimizer to falsely assume that a callee with an argument -passed by reference is not modifying that argument and used a stale -copy of the original value at the caller site. - -This change fixes both of the issues. With this fix, runtime compiled -using clang 13 seems to be fully functional. ---- - src/coreclr/inc/corhlpr.h | 8 ++++---- - src/coreclr/jit/bitsetasshortlong.h | 4 ++-- - 2 files changed, 6 insertions(+), 6 deletions(-) - -diff --git a/src/coreclr/inc/corhlpr.h b/src/coreclr/inc/corhlpr.h -index 450514da95c1..427e8cdc0ff5 100644 ---- a/src/coreclr/inc/corhlpr.h -+++ b/src/coreclr/inc/corhlpr.h -@@ -336,7 +336,7 @@ struct COR_ILMETHOD_SECT - const COR_ILMETHOD_SECT* Next() const - { - if (!More()) return(0); -- return ((COR_ILMETHOD_SECT*)(((BYTE *)this) + DataSize()))->Align(); -+ return ((COR_ILMETHOD_SECT*)Align(((BYTE *)this) + DataSize())); - } - - const BYTE* Data() const -@@ -374,9 +374,9 @@ struct COR_ILMETHOD_SECT - return((AsSmall()->Kind & CorILMethod_Sect_FatFormat) != 0); - } - -- const COR_ILMETHOD_SECT* Align() const -+ static const void* Align(const void* p) - { -- return((COR_ILMETHOD_SECT*) ((((UINT_PTR) this) + 3) & ~3)); -+ return((void*) ((((UINT_PTR) p) + 3) & ~3)); - } - - protected: -@@ -579,7 +579,7 @@ typedef struct tagCOR_ILMETHOD_FAT : IMAGE_COR_ILMETHOD_FAT - - const COR_ILMETHOD_SECT* GetSect() const { - if (!More()) return (0); -- return(((COR_ILMETHOD_SECT*) (GetCode() + GetCodeSize()))->Align()); -+ return(((COR_ILMETHOD_SECT*) COR_ILMETHOD_SECT::Align(GetCode() + GetCodeSize()))); - } - } COR_ILMETHOD_FAT; - -diff --git a/src/coreclr/jit/bitsetasshortlong.h b/src/coreclr/jit/bitsetasshortlong.h -index d343edeeda4c..365cf346a10a 100644 ---- a/src/coreclr/jit/bitsetasshortlong.h -+++ b/src/coreclr/jit/bitsetasshortlong.h -@@ -345,7 +345,7 @@ class BitSetOps