user/dotnet8-runtime: upgrade to 8.0.0

This commit is contained in:
Antoine Martin 2023-11-27 10:40:30 -05:00
parent 883a51cf92
commit c33f747dcc
4 changed files with 82 additions and 51 deletions

View file

@ -2,15 +2,16 @@
# Contributor: Antoine Martin (ayakael) <dev@ayakael.net>
pkgname=dotnet8-runtime
pkgver=8.0.0_pre7
pkgrel=2
_gittag=v8.0.0-preview.7.23375.6
pkgver=8.0.0
pkgrel=0
_gittag=v8.0.0
_giturl="https://github.com/dotnet/dotnet"
_testtag=e1cc0f181ffd4d755756d30d985513897d592ba4
_bunnytag=v12
_stage0ver=8.0.0_pre7-r2
_testtag=d3d39e7c404c6e45c3e7ab6621c5f6cabf1540b0
_bunnytag=v15
_stage0ver=8.0.100-r0
_patches="
aspnetcore_portable-build-workaround.patch
aspire_fix-gitinfo-target.patch
build_enable-timestamps.patch
installer_hard-dereference-tar-gz.patch
roslyn-analyzer_disable-apphost.patch
@ -29,8 +30,9 @@ _pkgver_sdk=${pkgver/0./0.10}
pkgdesc="The .NET $_pkgver_macro Core runtime"
# x86: blocked by https://github.com/dotnet/runtime/issues/77667
# armhf: blocked by https://github.com/dotnet/runtime/issues/77663
# upgrade needed
#arch="all !x86 !armhf"
# riscv64: blocked by https://github.com/dotnet/runtime/issues/84834
# s390x | ppc64le: mono-based runtime still has issues on musl
arch="all !x86 !armhf !riscv64 !s390x !ppc64le"
url=https://dotnet.microsoft.com
license="MIT"
provides="dotnet$_pkgver_name=$pkgver-r$pkgrel"
@ -203,7 +205,7 @@ build() {
ulimit -n 4096
# Disable use of LTTng as tracing on lttng <=2,13,0 is broken
# Disable use of LTTng as tracing on lttng <=2.13.0 is broken
# See https://github.com/dotnet/runtime/issues/57784.
if [ -f "/usr/lib/liblttng-ust.so.1 " ]; then
export DOTNET_LTTng=0
@ -236,8 +238,21 @@ build() {
riscv64|s390x|ppc64le) local args="$args /p:SourceBuildUseMonoRuntime=true";;
esac
# Source-Build now builds using portable RID
local args="$args /p:PortableBuild=true /p:PortableRid=linux-musl-$_dotnet_arch /p:_portableRidOverridden=true"
# Sets TargetRid manually as dotnet cannot be trusted to reliably compute
# the machine's runtime ID between releases.
# shellcheck disable=SC2034
. /etc/os-release
local VERSION_ID_DOT="${VERSION_ID//[^.]}"
while [ ${#VERSION_ID_DOT} -gt 1 ]; do
local VERSION_ID="${VERSION_ID%.*}"
local VERSION_ID_DOT="${VERSION_ID//[^.]}"
done
local VERSION_ID_DASH="${VERSION_ID//[^_]}"
while [ ${#VERSION_ID_DASH} -ge 1 ]; do
local VERSION_ID="${VERSION_ID%_*}"
local VERSION_ID_DASH="${VERSION_ID//[^_]}"
done
local args="$args /p:TargetRid=$ID.$VERSION_ID-$_dotnet_arch"
./build.sh \
--with-sdk "$_cli_root" \
@ -252,12 +267,13 @@ check() {
local _tests_timeout=1000
# Test suite disable flags
# following tests can only work after packaging step
local _disabled_tests="man-pages distribution-package bash-completion install-location release-version-sane"
local _disabled_tests="man-pages distribution-package bash-completion install-location release-version-sane managed-symbols-available tools-in-path"
# test broken: permission issue on lxc / pipelines
local _disabled_tests="$_disabled_tests createdump-aspnet workload"
# liblttng-ust_sys-sdt.h: no 'NT_STAPSDT' on Alpine's lttng-ust package
# lttng: known issue, see https://github.com/dotnet/runtime/issues/57784
local _disabled_tests="$_disabled_tests liblttng-ust_sys-sdt.h lttng"
local _disabled_tests="$_disabled_tests createdump-aspnet"
# test broken: cannot pg_ctl can't create postgresql server
local _disabled_tests="$_disabled_tests system-data-odbc"
# test broken: no such file or directory bug
local _disabled_tests="$_disabled_tests limits"
# {bundled,system}-libunwind: use system version on all but aarch64/armv7, as broken
# see https://github.com/redhat-developer/dotnet-regular-tests/issues/113
# disable on mono-flavored runtime as mono does not use libunwind
@ -266,14 +282,10 @@ check() {
s390x|ppc64le|armhf) local _disabled_tests="$_disabled_tests bundled-libunwind system-libunwind";;
*) local _disabled_tests="$_disabled_tests bundled-libunwind";;
esac
# test unit broken currently
_disabled_tests="$_disabled_tests system-libunwind"
# nativeaot is not supported on armv7
case $CARCH in
armv7) local _disabled_tests="$_disabled_tests nativeaot"
esac
# debugging-via-dotnet-dump hangs
local _disabled_tests="$_disabled_tests debugging-via-dotnet-dump"
msg "Unpacking produced dotnet"
export DOTNET_ROOT="$_checkdir/release"
@ -295,7 +307,7 @@ check() {
fi
if [ ! -d "$_checkdir"/turkey ]; then
cd "$_checkdir"/Turkey
dotnet publish -bl:"$_logdir"/check/turkey.binlog -f netcoreapp3.1 -c Release -p:VersionPrefix=1 -p:VersionSuffix="$(git rev-parse --short HEAD)" -o "$_checkdir"/turkey
dotnet publish -bl:"$_logdir"/check/turkey.binlog -f net6.0 -c Release -p:VersionPrefix=1 -p:VersionSuffix="$(git rev-parse --short HEAD)" -o "$_checkdir"/turkey
fi
msg "Running test suite"
@ -347,7 +359,7 @@ artifacts() {
-C "$subpkgdir"/$_libdir/dotnet/artifacts/$_pkgver_sdk/ \
--no-same-owner \
--exclude '*Intermediate*' \
--exclude '*linux-musl*'
--exclude '*alpine*'
}
bootstrap() {
@ -375,7 +387,7 @@ bootstrap() {
-C "$subpkgdir"/$_libdir/dotnet/artifacts/$_pkgver_sdk/ \
--no-same-owner \
--wildcards \
'*linux-musl*'
'*alpine*'
# assemble docs
find "$builddir" -iname 'dotnet*.1' -type f -exec cp '{}' "$subpkgdir"/$_libdir/dotnet/bootstrap/$_pkgver_sdk/docs/. \;
@ -500,17 +512,18 @@ aspnetcore_targeting_pack() {
}
sha512sums="
06cb81a5667153a7d6ae190d169dcafea88954d1d42f9f1ae0fffe7cb4787599d7cad5428f66a6ce10af24898bd4ffbe1b9e95f1d3b698641437298055ebd10f dotnet-tarball-v8.0.0-preview.7.23375.6.tar.gz
5598ae0b9044dd2d2b5eba10ce420cd14266bd25412b37e9766bbaf1b1ce79438a5c7db559431aa59c0b49f14187ca3f78a57065b7802df304910b00b6694bfa dotnet-release-v8.0.0-preview.7.23375.6.json
e9f3df13d093fac214778c1137857e065f58d4e0d2a48d540d8ed7bb41e2fd73b2b3f62a0aa5b0e80fa80a5b58ba77ff19b9d10a492802f8539e3a6ed79d299d dotnet-testsuite-e1cc0f181ffd4d755756d30d985513897d592ba4.tar.gz
0028d5d97b814b122d73137b4e0d64ca5d788aa0ae5fde500de722e23522827f2538f06e75acb17cc39b8917961ee78d1f0bbc84b2b624ae0e9bf88adca2ba6f dotnet-bunny-v12.tar.gz
094265462d66d97b51ebfbe5fb06d4a679b97881f1f5a07a87a282a96eeaabfe97ca42061d59aac71dd8861c07f07dda16a72e29ae03167407e51d3fd2767562 dotnet-tarball-v8.0.0.tar.gz
55f2c56f7fbed4137ebe5e81c7b86d199d7ff91c6e19fbc9a4af8cd5d0f0195273356ead8b80aedfff56a3d704a541a7c2a7395bec3fa5d6585f3afd056b1220 dotnet-release-v8.0.0.json
8fe41ddd03c1b98dc9eec5e337ca0dcc8fbeff65b67ac1a383bd7d1e5fd3c21b820dacd498d1c2268445bb634cfb9dba3e8924e71a98f2ccd8221b17fb079044 dotnet-testsuite-d3d39e7c404c6e45c3e7ab6621c5f6cabf1540b0.tar.gz
7f59b10878aa90a6953ee4d88d08fa932910a24018dace92b173ee87c847d14734f93dc5fc031982a3d0a5cb4ac223b83d0e548531c23c4e3326dc83510989a9 dotnet-bunny-v15.tar.gz
c3f31956976b77198e72a3fef3427338b6b2961f8c121416040c1105de0ce8073e46f4c2e9ef22a001aee69cbe39621c2ddac988522693110071dfae42f2e2b7 dotnet.sh.in
ad7373a112acc07a6a7bbc522d417b26d90b3e3ae9c1e66a6cc70af16af7e7111d9764e7758062d0a5e67f026cc44f2b111051c3d484bd56917f2144db88588b aspnetcore_portable-build-workaround.patch
e5b9b947226456844f705e66f3f19d4519ce88f360e3f3413999c2867c31d9008db78f5806bfee7185d7548c6279ef6492a40ff24c20ed9d58b6ef66b167d7a8 aspire_fix-gitinfo-target.patch
eed7a7481a967f6938de956a6df485efa6dd61bf36ae4a768493cb1f7da0296dc91e0f2f89f7c302083ba9cf0c778e28228ec1b52e902077a00072d7d9957ef3 build_enable-timestamps.patch
ab362bdbbea8d8116b6bf7bf58e330ce6d7d171b42613ac03514f76afa2574b75d6566148d1b72047fbfe61b40ac67b3f2d8af87a7074c790bf882a5b7e73960 installer_hard-dereference-tar-gz.patch
097db705c787501782a1b203e8c453453075dfcadc4f5282849c6ffdda4d7832f75c56089bced4542cc83704fe33842cc725084dac2ba261cacdaf54ae468b3c roslyn-analyzer_disable-apphost.patch
d732df247c721c9f677baabdd7f36dbf4b564814ff64164361065bb1c196b767494a1d39f634eadf01a23032c7b3e64102614b7213065c81096bbf3f8022e6a0 runtime_82269-mono-thread-coop-undefine-fortify-source.patch
c1e8a51bca47f13e60cb28fa3c58c4bdc0fd8fa19177855b6cc9a767016fc239064aced57530e227c772e302671fc91e86c718a39aecb05eb7f601c8d931de81 runtime_90251-rename-mono-cmake-host-var.patch
3354fa721809f1b94c579408ee78004ff3ca2ba79212c1a0ecc424a9955bb5d5a80c115d4c30dd257526f356ea76f0562db6f83d8dd0b6135f8c689886b3348d runtime_90251-rename-mono-cmake-host-var.patch
39e1b848d1ae81e4b81758522de7d3e36b11d2ab626565efb8e4cceae8da29018277709f0af8fcfa75be8da79f8d6432eb6aac49a5e82510c3aca34632df4d8e runtime_enable-system-libunwind.diff
887112eb2b103eadd6887529ebae7f9a75df2c2cb168e84fd40cc09f9bcd20917d428bbba06968b07b0a463890da82b1b2b1d033a3dd016e6494067464ae6f74 runtime_more-clang-16-suppression.patch
0c25319125ef5b0ad490b37a643c0c5257c796d5ed24f9ac404f698710b07de790bcbb0b6336d4a50025b94c3bff99b214951bd8f0a79a8d6f543ebaa300740f runtime_remove-usage-of-off64-t.patch

View file

@ -12,6 +12,8 @@ Please report any issues [using Gitlab](https://gitlab.alpinelinux.org/alpine/ap
* `dotnet8-apphost-pack` (used by dotnet8-runtime)
* `dotnet8-hostfxr` (used by dotnet-host)
* `dotnet8-runtime`
* `dotnet8-runtime-artifacts` (aimed for internal use as bootstrap)
* `dotnet8-runtime-bootstrap` (aimed for internal use as bootstrap)
* `dotnet8-targeting-pack`
* `dotnet-host`
@ -30,13 +32,16 @@ In summary, dotnet8 is built using three different aports.
* `community/dotnet8-stage0`
Builds minimum components for full build of dotnet8, and packages these in an initial
`dotnet8-stage0-bootstrap` package that `dotnet8-build` pulls.
* `community/dotnet8-build`
`dotnet8-stage0-bootstrap` package that `dotnet8-runtime` pulls.
* `community/dotnet8-runtime`
Builds full and packages dotnet8 fully using either stage0 or previoulsy built
dotnet8 build.
* `community/dotnet8-runtime`
* `community/dotnet8-sdk`
As abuild does not allow different versions for subpackages, a different aport
is required to package runtime bits from dotnet8-build.
is required to package sdk bits from dotnet8-runtime. dotnet8-runtime only
builds 8.0.1xx feature branch of SDK. Thus, when a new feature branch of sdk is
released, the updated components are to be built on dotnet8-sdk rather than
simply repackaging dotnet8-runtime artifacts.
## Crossbuilding with `stage0`
Crossbuilding `stage0` is a three step process:
@ -73,7 +78,7 @@ follow.
2. Checkout the forked repository.
- `git clone ssh://git@gitlab.alpinelinux.org/$USER/aports`
- `cd community/dotnet8-build`
- `cd community/dotnet8-runtime`
3. Make your changes. Don't forget to add a changelog.
@ -88,7 +93,7 @@ follow.
- `git checkout -b dotnet8/<name>`
- `git add` any new patches
- `git remove` any now-unnecessary patches
- `git commit -m 'community/dotnet8-build: descriptive description'`
- `git commit -m 'community/dotnet8-runtime: descriptive description'`
- `git push`
7. Create a merge request with your changes, tagging @ayakael for review.
@ -103,7 +108,7 @@ follow.
2. Checkout the forked repository.
- `git clone ssh://git@gitlab.alpinelinux.org/$USER/aports`
- `cd community/dotnet8-build`
- `cd community/dotnet8-runtime`
3. Build the new upstream source tarball. Update the versions in the
@ -127,7 +132,7 @@ follow.
- `git checkout -b dotnet8/<name>`
- `git add` any new patches
- `git remove` any now-unnecessary patches
- `git commit -m 'community/dotnet8-build: upgrade to <new-version>`
- `git commit -m 'community/dotnet8-runtime: upgrade to <new-version>`
- `git push`
8. Create a merge request with your changes, tagging @ayakael for review.

View file

@ -0,0 +1,20 @@
diff --git a/src/aspire/Directory.Build.targets.orig b/src/aspire/Directory.Build.targets
index 511adb03a5d..d62a050caab 100644
--- a/src/aspire/Directory.Build.targets.orig
+++ b/src/aspire/Directory.Build.targets
@@ -6,13 +6,12 @@
<PackageReadmeFile Condition="'$(PackageReadmeFile)' == '' And '$(ReadMeExists)' == 'true'">README.md</PackageReadmeFile>
</PropertyGroup>
- <Import Condition="'$(SampleProject)' == 'true' or '$(CI)' != 'true' " Project="eng\Versions.dev.targets" />
- <Import Condition="'$(SampleProject)' != 'true' and '$(CI)' == 'true' " Project="eng\Versions.targets" />
+ <Import Project="eng\Versions.dev.targets" />
<Import Project="Sdk.targets" Sdk="Microsoft.DotNet.Arcade.Sdk" />
<ItemGroup Condition="'$(ReadMeExists)' == 'true'">
<None Include="$(ReadMePath)" Pack="true" PackagePath="\" />
</ItemGroup>
-
+
</Project>

View file

@ -48,25 +48,23 @@ index e04d9e9d364..00e54a25d69 100644
# larger than the initial committed stack size.
add_definitions(-DENSURE_PRIMARY_STACK_SIZE)
endif()
diff --git a/src/runtime/src/mono/mono/mini/CMakeLists.txt b/src/runtime/src/mono/mono/mini/CMakeLists.txt
index d23b7985802..b5f63fc638c 100644
--- a/src/runtime/src/mono/mono/mini/CMakeLists.txt
diff --git a/src/runtime/src/mono/mono/mini/CMakeLists.txt.orig b/src/runtime/src/mono/mono/mini/CMakeLists.txt
index 5d6ef3d..c3e5414 100644
--- a/src/runtime/src/mono/mono/mini/CMakeLists.txt.orig
+++ b/src/runtime/src/mono/mono/mini/CMakeLists.txt
@@ -378,10 +378,10 @@ if(NOT DISABLE_SHARED_LIBS)
add_library(monosgen-shared SHARED $<TARGET_OBJECTS:monosgen-objects>)
target_compile_definitions(monosgen-objects PRIVATE -DMONO_DLL_EXPORT)
@@ -400,9 +400,9 @@ if(NOT DISABLE_SHARED_LIBS)
endif()
- # Alpine Linux implements ucontext in a different library
target_compile_definitions(monosgen-shared PRIVATE -DMONO_DLL_EXPORT)
# Alpine Linux implements ucontext in a different library
- if(CLR_CMAKE_HOST_ALPINE_LINUX AND TARGET_S390X)
+ # musl-libc implements ucontext in a different library
+ if(CLR_CMAKE_TARGET_LINUX_MUSL AND TARGET_S390X)
target_link_libraries(monosgen-shared PRIVATE ucontext)
- endif(CLR_CMAKE_HOST_ALPINE_LINUX AND TARGET_S390X)
+ endif(CLR_CMAKE_TARGET_LINUX_MUSL TARGET_S390X)
+ endif(CLR_CMAKE_TARGET_LINUX_MUSL AND TARGET_S390X)
set_target_properties(monosgen-shared PROPERTIES OUTPUT_NAME ${MONO_SHARED_LIB_NAME})
if(MONO_SET_RPATH_ORIGIN)
set_target_properties(monosgen-shared PROPERTIES INSTALL_RPATH "$ORIGIN")
@@ -560,10 +560,10 @@ if(NOT DISABLE_EXECUTABLES)
@@ -601,10 +601,10 @@ if(NOT DISABLE_EXECUTABLES)
target_link_libraries(mono-sgen PRIVATE icu_shim_objects)
endif()
target_link_libraries(mono-sgen PRIVATE ${OS_LIBS} ${LLVM_LIBS} ${ICU_LIBS} ${Z_LIBS})
@ -80,8 +78,3 @@ index d23b7985802..b5f63fc638c 100644
if(NOT DISABLE_COMPONENTS AND STATIC_COMPONENTS AND NOT DISABLE_LINK_STATIC_COMPONENTS)
# if components are built statically, link them into runtime.
target_sources(mono-sgen PRIVATE "${mono-components-objects}")
diff --git a/src/runtime/src/coreclr/pgosupport.cmake.orig b/src/runtime/src/coreclr/pgosupport.cmake
index 719ac14..34a4278 100644
--- a/src/runtime/src/coreclr/pgosupport.cmake.orig
+++ b/src/runtime/src/coreclr/pgosupport.cmake