From 5043f84ead088a484e17e9514ec02d460a81bc2e Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Tue, 28 Mar 2023 17:13:54 -0400 Subject: [PATCH] user/dotnet7-stage0: upgrade to 7.0.104 --- user/dotnet7-stage0/APKBUILD | 111 ++++++----- .../installer_2780-reprodicible-tarball.patch | 122 ------------ ...ime_81573-suppress-clang-16-warnings.patch | 175 ++++++++++++++++++ ...-thread-coop-undefine-fortify-source.patch | 25 +++ .../runtime_enable-runtime-marshalling.diff | 25 --- .../runtime_musl-x86-build-fix.patch | 28 +++ .../runtime_no-additional-runtime-id.patch | 6 +- 7 files changed, 294 insertions(+), 198 deletions(-) delete mode 100644 user/dotnet7-stage0/installer_2780-reprodicible-tarball.patch create mode 100644 user/dotnet7-stage0/runtime_81573-suppress-clang-16-warnings.patch create mode 100644 user/dotnet7-stage0/runtime_82269-mono-thread-coop-undefine-fortify-source.patch create mode 100644 user/dotnet7-stage0/runtime_musl-x86-build-fix.patch diff --git a/user/dotnet7-stage0/APKBUILD b/user/dotnet7-stage0/APKBUILD index 7ceaf6f..b473339 100644 --- a/user/dotnet7-stage0/APKBUILD +++ b/user/dotnet7-stage0/APKBUILD @@ -2,36 +2,38 @@ # Contributor: Antoine Martin (ayakael) pkgname=dotnet7-stage0 -pkgver=7.0.101 +pkgver=7.0.104 pkgrel=0 [ "$CBUILD" != "$CHOST" ] && _cross="-$CARCH" || _cross="" # Tag of tarball generator. -_gittag=v7.0.101-source-build +_gittag=v7.0.104 # Versions of prebuilt artifacts and bootstrap tar -_artifactsver=7.0.101 -_bootstrapver="7.0.101" +_artifactsver=7.0.102 +_bootstrapver="7.0.104" +_bootstraprel=1 _installerver=$_bootstrapver # Version of packages that aren't defined in git-info or badly defined -_iltoolsver=7.0.1-servicing.22579.1 -_aspnetver=7.0.1 +_iltoolsver=7.0.2-servicing.22607.1 +_aspnetver=7.0.4 # Patches to be used. String before '_' refers to repo to patch # Look for patch notes within each patch for what they fix / where they come from # build_* patches applies directly to $builddir _patches=" aspnetcore_use-linux-musl-crossgen-on-non-x64.patch - build_set-local-repo.patch - installer_2780-reprodicible-tarball.patch installer_runtimepacks.patch roslyn_allow-extra-params.patch runtime_76500-mono-musl-support.patch runtime_76500-properly-set-toolchain-for-alpine.patch + runtime_81573-suppress-clang-16-warnings.patch + runtime_82269-mono-thread-coop-undefine-fortify-source.patch runtime_enable-runtime-marshalling.diff runtime_make-lld-use-depend-on-existing-on-target.patch + runtime_musl-x86-build-fix.patch runtime_no-additional-runtime-id.patch sdk_dummyshim-fix.patch sdk_fix-sdk-download.patch @@ -42,11 +44,12 @@ _pkgver_macro=${pkgver%.*} _pkgver_prior=1 _pkgver_name="${_pkgver_macro//[.0]}" pkgdesc="The .NET Core stage0 bits for dotnet build" -# x86: blocked by https://github.com/dotnet/runtime/issues/77667 # armhf: blocked by https://github.com/dotnet/runtime/issues/77663 +# x86: blocked by https://github.com/dotnet/runtime/issues/83509 # riscv64: port WIP https://github.com/dotnet/runtime/issues/36748 -#arch="all !x86 !armhf !riscv64" +arch="all !x86 !armhf !riscv64" url=https://dotnet.microsoft.com +_giturl=https://lab.ilot.io/dotnet/installer license="MIT" options="!check" # Testsuite in main -build aport subpackages=" @@ -54,12 +57,12 @@ subpackages=" dotnet$_pkgver_name-stage0-bootstrap " source=" - https://repo.gpg.nz/apk/archives/dotnet-${_gittag/release\/}.tar.xz + https://lab.ilot.io/dotnet/installer/-/releases/$_gittag/downloads/tarball/dotnet-$_gittag.tar.xz dotnet-sdk-$_bootstrapver-linux-musl-x64.noextract::https://dotnetcli.azureedge.net/dotnet/Sdk/$_bootstrapver/dotnet-sdk-$_bootstrapver-linux-musl-x64.tar.gz dotnet-sdk-$_bootstrapver-linux-musl-arm64.noextract::https://dotnetcli.azureedge.net/dotnet/Sdk/$_bootstrapver/dotnet-sdk-$_bootstrapver-linux-musl-arm64.tar.gz dotnet-sdk-$_bootstrapver-linux-musl-arm.noextract::https://dotnetcli.azureedge.net/dotnet/Sdk/$_bootstrapver/dotnet-sdk-$_bootstrapver-linux-musl-arm.tar.gz - dotnet-sdk-$_bootstrapver-linux-musl-s390x.noextract::https://repo.gpg.nz/apk/archives/dotnet-sdk-$_bootstrapver-linux-musl-s390x.tar.gz - dotnet-sdk-$_bootstrapver-linux-musl-ppc64le.noextract::https://repo.gpg.nz/apk/archives/dotnet-sdk-$_bootstrapver-linux-musl-ppc64le.tar.gz + dotnet-sdk-$_bootstrapver-r$_bootstraprel-linux-musl-s390x.noextract::https://lab.ilot.io/ayakael/dotnet-stage0/-/releases/$_bootstrapver-r$_bootstraprel/downloads/sdk/dotnet-sdk-$_bootstrapver-r$_bootstraprel-linux-musl-s390x.tar.xz + dotnet-sdk-$_bootstrapver-r$_bootstraprel-linux-musl-ppc64le.noextract::https://lab.ilot.io/ayakael/dotnet-stage0/-/releases/$_bootstrapver-r$_bootstraprel/downloads/sdk/dotnet-sdk-$_bootstrapver-r$_bootstraprel-linux-musl-ppc64le.tar.xz Private.SourceBuilt.Artifacts.$_artifactsver.noextract::https://dotnetcli.azureedge.net/source-built-artifacts/assets/Private.SourceBuilt.Artifacts.$_artifactsver.tar.gz $_extra_nupkgs $_patches @@ -78,6 +81,7 @@ makedepends_host=" gcc grep icu-dev + jq krb5-dev libintl libstdc++ @@ -96,7 +100,7 @@ makedepends_host=" zlib-dev " case $CARCH in - s390x|x86) ;; + s390x) ;; *) makedepends_host="$makedepends_host lld-dev";; esac makedepends_build=" @@ -104,9 +108,11 @@ makedepends_build=" binutils$_cross git gcc$_cross + jq llvm llvm-dev python3 + sed xz " case $CBUILD_ARCH in @@ -152,14 +158,15 @@ snapshot() { if [ -d "installer" ]; then cd "$srcdir"/installer else - git clone https://github.com/dotnet/installer && cd "$srcdir"/installer + git clone $_giturl --branch $_gittag && cd "$srcdir"/installer fi - git checkout $_gittag - sed 's|/src/installer||' "$startdir"/installer_2780-reprodicible-tarball.patch | patch -Np1 || true - sed 's|/src/installer||' "$startdir"/installer_fix-version.patch | patch -Np1 || true - if [ ! -d "$_cli_root" ]; then - local _cli_root= + sed 's||' -i src/SourceBuild/Arcade/tools/SourceBuildArcadeTarball.targets + + if [ -d "$_libdir/dotnet/bootstrap" ]; then + local _cli_root="$(find $_libdir/dotnet/bootstrap/${_pkgver_macro}* -maxdepth 0 -type d | sort -r | head -n 1)" + else + local _cli_root="" fi _InitializeDotNetCli="$_cli_root" DOTNET_INSTALL_DIR="$_cli_root" DotNetBuildFromSource=true ./build.sh \ @@ -187,14 +194,6 @@ prepare() { ;; esac - # adjusts sdk version to expected - sed "s|7.0.100|$_bootstrapver|" -i "$builddir"/src/sdk/global.json - sed "s|7.0.100|$_bootstrapver|" -i "$builddir"/src/aspnetcore/global.json - - for i in runtime sdk installer aspnetcore roslyn; do - sed "s|@@PACKAGESDIR@@|$_packagesdir|" -i "$builddir"/src/$i/NuGet.config - done - mkdir -p "$_cli_root" mkdir -p $_packagesdir $_downloaddir $_outputdir $_nugetdir $_logdir @@ -210,10 +209,19 @@ prepare() { ln -s "$_logdir"/${i##*\/} "$builddir"/src/${i##*\/}/artifacts/log done - tar --use-compress-program="pigz" -xf "$srcdir"/dotnet-sdk-$_pkgver_macro*$_dotnet_arch.noextract -C "$_cli_root" --no-same-owner + tar -xf "$srcdir"/dotnet-sdk-$_pkgver_macro*$_dotnet_arch.noextract -C "$_cli_root" --no-same-owner for i in $_extra_nupkgs; do - $_nuget push "$srcdir"/${i##*/} --source="$_packagesdir" + local filename=${i/::*} + local filename=${filename##*/} + $_nuget push "$srcdir"/$filename --source="$_packagesdir" + done + + # adjusts sdk version and packagedir to expected + for i in runtime sdk installer aspnetcore roslyn; do + $_nuget add source $_packagesdir --name local --configfile "$builddir"/src/$i/NuGet.config + tmp=$(mktemp) + jq ".sdk.version = \"$_bootstrapver\"" "$builddir"/src/$i/global.json > $tmp && mv $tmp "$builddir"/src/$i/global.json done } @@ -235,7 +243,8 @@ _runtime() { /consoleLoggerParameters:ShowTimestamp /p:NoPgoOptimize=true /p:EnableNgenOptimization=false - /p:GitCommitHash=$(cat ./.git/HEAD) + /p:ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch=none + /p:GitCommitHash=$(grep GitCommitHash "$builddir"/git-info/runtime.props | sed -E 's|||g' | tr -d ' ') " if [ "$CBUILD" != "$CHOST" ]; then local args="$args -cross" @@ -243,7 +252,7 @@ _runtime() { if [ "$_runtimever" != "${_runtimever##*-}" ]; then local args="$args /p:VersionSuffix=${_runtimever##*-}" fi - ROOTFS_DIR="$CBUILDROOT" ./build.sh $args + DotNetBuildFromSource=false ROOTFS_DIR="$CBUILDROOT" ./build.sh $args for i in artifacts/packages/*/*/*.nupkg; do $_nuget push $i --source="$_packagesdir" @@ -266,7 +275,7 @@ _roslyn() { -c Release -bl /consoleLoggerParameters:ShowTimestamp - /p:GitCommitHash=$(cat ./.git/HEAD) + /p:GitCommitHash=$(grep GitCommitHash "$builddir"/git-info/roslyn.props | sed -E 's|||g' | tr -d ' ') " if [ "$_roslynver" != "${_roslynver##*-}" ]; then local args="$args /p:VersionSuffix=${_roslynver##*-}" @@ -292,7 +301,7 @@ _sdk() { -c Release -bl /consoleLoggerParameters:ShowTimestamp - /p:GitCommitHash=$(cat ./.git/HEAD) + /p:GitCommitHash=$(grep GitCommitHash "$builddir"/git-info/sdk.props | sed -E 's|||g' | tr -d ' ') /p:Architecture=$_dotnet_target " if [ "$_sdkver" != "${_sdkver##*-}" ]; then @@ -327,7 +336,7 @@ _aspnetcore() { -no-build-nodejs /consoleLoggerParameters:ShowTimestamp /p:BuildNodeJs=false - /p:GitCommitHash=$(cat ./.git/HEAD) + /p:GitCommitHash=$(grep GitCommitHash "$builddir"/git-info/aspnetcore.props | sed -E 's|||g' | tr -d ' ') /p:DotNetAssetRootUrl=file://$_downloaddir/ /p:EnablePackageValidation=false " @@ -361,7 +370,8 @@ _installer() { /p:Architecture=$_dotnet_target /p:CoreSetupBlobRootUrl=file://$_downloaddir/ /p:DotnetToolsetBlobRootUrl=file://$_downloaddir/ - /p:GitCommitHash=$(cat ./.git/HEAD) + /p:EnableSourceLink=false + /p:GitCommitHash=$(grep GitCommitHash "$builddir"/git-info/installer.props | sed -E 's|||g' | tr -d ' ') /p:GitCommitCount=$(grep GitCommitCount "$builddir"/git-info/installer.props | sed -E 's|||g' | tr -d ' ') /p:PublicBaseURL=file://$_downloaddir/ " @@ -444,7 +454,11 @@ bootstrap() { # copies artifacts to artifacts dir for use by future dotnet builds for i in $_nupkgsArray; do install -Dm644 "$_packagesdir"/$i "$subpkgdir"/$_libdir/dotnet/artifacts/$pkgver/ || true; done - for i in $_extra_nupkgs; do install -Dm644 "$srcdir"/${i##*/} "$subpkgdir"/$_libdir/dotnet/artifacts/$pkgver/; done + for i in $_extra_nupkgs; do + local filename=${i/::*} + local filename=${filename##*/} + install -Dm644 "$srcdir"/$filename "$subpkgdir"/$_libdir/dotnet/artifacts/$pkgver/ + done msg "Changing iltools version to $_iltoolsver" # source-build expects a certain version of ilasm, ildasm and testhost @@ -496,24 +510,25 @@ artifacts() { } sha512sums=" -5256c5467de0d92e1c78e80a3c571ba842bff3ab487e88061dfebfde1b8052c37263369e379dfd762194409d2bd31692bdfe6fc2ba2622530c5c6695aff1fbb1 dotnet-v7.0.101-source-build.tar.xz -e487532682df94378387acf07a11583a982418a46ccd07a20258ae8850fd549153d468771d9e44171790322f5fb3571be0ea242863853c5f95ca6697463f7262 dotnet-sdk-7.0.101-linux-musl-x64.noextract -341819fe59a7eb2199bafd4e01bd329f522d20e9f8f796676dfd7cdbfe59e1344eeeca6aadbce70fab44d655036ab86bd2b34135c732ebec068009b63f8f510f dotnet-sdk-7.0.101-linux-musl-arm64.noextract -a454cbffb42b218d3d2d37fdb68f2a15fc32319472abc61d018701b7845d9828c65bb1157eab0789c7073a411fd4744e969bec912e0a4b737c31714acd80006f dotnet-sdk-7.0.101-linux-musl-arm.noextract -bfbc6d9417347c90d2de334d07b67a650c4f8dee13725cd47eb0e8268ed6f405ecc84b4720a9b78047a987f6ba907a8af8b9c1c6639385e54c5171442f3b3466 dotnet-sdk-7.0.101-linux-musl-s390x.noextract -17b5f8856024baf6e5b61e095e1da8fb32b1b45b925885408efc97ebd06ac79b4dcf7dc661ef60910136f340bbc35c0ccddbe007f5e4ee0abaa438d27caf7bf3 dotnet-sdk-7.0.101-linux-musl-ppc64le.noextract -898df8010f0486b2b0afad8f9d7b830d60db42336cc1fdcc603bc8e43e46b8d071757370a2279030231b0843ffd31949c1f6b4452e726123088852913466acca Private.SourceBuilt.Artifacts.7.0.101.noextract +3adb3cfe451e04c56265306869c3023c281322510d6e0eb182f233e549bdd4b9c738f41bb60470fce09cc386be4d1ea47d78846842f35e4bd9047b04bef16286 dotnet-v7.0.104.tar.xz +b622027eb455388d9401f7df9d9d1259659739ebda109b24c2a478113bcfe8f588ac9bf1856c5b7ba125e30351aff7ef4eb8f465da13fa1cef0b0d41a07aad38 dotnet-sdk-7.0.104-linux-musl-x64.noextract +c0b0326e1d00fe0f989a3b81953057d5f1d84f1f33c2d7116ddcb64bd628755f1b4d3912f86a7423b45f27fed2f17e3ecef0292c37f9bb61b52b5632da429c7e dotnet-sdk-7.0.104-linux-musl-arm64.noextract +073fbba13f539e4d784e7368afa7ff28b7f477ddc786b007763fe1d46d6501a07a5fdf96b78bfda1e5cefcaf0e66724b1037f1f469c2b6b8750945034752061b dotnet-sdk-7.0.104-linux-musl-arm.noextract +1e8670787f517a0fa360a5dfb4176b58efad53f92d78fdd1c357eae2c0d4b3490d13629ea696217ebdca309695e9e90a6ef0180c7fb51599b43fdd2ed95d1da5 dotnet-sdk-7.0.104-r1-linux-musl-s390x.noextract +956f7f22d01df953c939b5ca38d8a756cc55915ba31b28e953aea86baf61f4317c6023d1f2978417143f27a1f1d41bd1c543a8edc278327913208dced3e1983f dotnet-sdk-7.0.104-r1-linux-musl-ppc64le.noextract +e5d8f11d5da842309c1e7cf9936eb0cf3cfb56aaa17aeee64fe264b3e6771ee56dd6c405a4c16950b4e4607dab21bc0ec40783f69b0865a6112d7d03b1b57487 Private.SourceBuilt.Artifacts.7.0.102.noextract 2ede8d9352a51861a5b2550010ff55da8241381a6fa6cc49e025f1c289b230b8c0177e93850de4ea8b6f702c1f2d50d81a9f4d890ca9441c257b614f2a5e05dd stylecop.analyzers.1.2.0-beta.435.nupkg ae8588bf0ee3c60d2d511241a9acdef209218390e9609cbd920c9d88b9180519f5dfba430534d1f97a7efbf891c57265403e13db2d23730c0a4d6a75a9c5602d aspnetcore_use-linux-musl-crossgen-on-non-x64.patch -97d3194f8ad96521002e3693261451154d6ba567ea807e9daa4d55e1cda0693791fab4443e3d0d0fa8bc51ba53dd9b4077c723fa8f1f34cdd1661df828ce4227 build_set-local-repo.patch -0215d0fdbb4f46ab1cab547076cff39ccbe3e6ef0fdd26a60a562c60e1c022ee14286692a3880d75c665410a3db137f817e04c8c311a3960f8dede0036488741 installer_2780-reprodicible-tarball.patch 1fe84c55f63c3b32fe7c58aa23ba25e2e9ddeee21acd664947206b8a9678bf38e2c1a95252243d7981dd9423bda49f40dd463fa6e619fe7f329a31794829ee88 installer_runtimepacks.patch ead82bb2276acc273d661e42597c76661984143bb7736cd6a64241f51b2da3b9b8625b6232e24c7f9a6965436f65a5b7bf1ba7669a01e6b9774ebd3a62f7ebe0 roslyn_allow-extra-params.patch 43355fdb9531a08a9a141b016c049cc61d779e797f182456f56e5dc3af76fd31643d84d7ad7982080921681d2bbfc7bbaaa64f50c3899b023222eb0d841fbb2a runtime_76500-mono-musl-support.patch 24f3fed752922d2ca3c151f21fedf6a257c7c74a155105a1aa09cdc847ba24e496212cb2d8548b134a8901c7da8d78c27fa93579211f7bdeadc598f808fed4a8 runtime_76500-properly-set-toolchain-for-alpine.patch -218e26f752de0e1dbb7a62b142a894cfda9a8a59d09c60525039dd7d99847dd17f181ef8ff2b6ad9ce74001ad771c78093c61c8882de58f16070d74be36b2765 runtime_enable-runtime-marshalling.diff +3d241fce16038a4790151342dd95c77c39c8a63aeba75921bb6cd6a1b9698668b99dceb89e993b30d0087e56c5d3fecd272c016d03f22bf5b25a41d5fa62f3fc runtime_81573-suppress-clang-16-warnings.patch +d732df247c721c9f677baabdd7f36dbf4b564814ff64164361065bb1c196b767494a1d39f634eadf01a23032c7b3e64102614b7213065c81096bbf3f8022e6a0 runtime_82269-mono-thread-coop-undefine-fortify-source.patch +1f7be536c4826638853f110ee88bbd554be015cc88c6491c1066830789be18ad324f8ed2b1b75ed7aad74457dcafc812730059cb25d36d6344bfae8a517c00c4 runtime_enable-runtime-marshalling.diff 2ff8b42bce25b8389177bb6389bfdc796c104c5d992e72a6e7c8af0cda8f70f26f480071db380df78db745eee72e4343220f79ec6b22aa880fa2531eda8c8593 runtime_make-lld-use-depend-on-existing-on-target.patch -96e77705c3c88058f5e246822cee76c14c18d7ef2deb47b042e289dfe1e695bdcfa650d50b099f58f65966c8a3a6c818fc72e0893ba31acc85a78cb3cbd05c54 runtime_no-additional-runtime-id.patch +87e726cc4677213cace34df5eb50881d88ed0e618ba5eb9dc27c1f75d09a1eec8a9e8b4b7940714d4c9f74ce6dfa142882e642311cb45e33339aed65347dbb3e runtime_musl-x86-build-fix.patch +ce7496f734aed63009f25a12b8588e23d1714bd05ac0ea1d744f096dbd5787afb6ccd29f79ef0f14abb43fe0fb6d1ad00e4fbd488678b616a8bbe50dc42e7eed runtime_no-additional-runtime-id.patch b5f28aa8bdbd24c589276a60893859965eb78b0abfbdac7a6e86715ac87e3bbd8bc271852ff62a41ea83b53af02e1c1814abcccc8862c07b3ac74633d1be0a32 sdk_dummyshim-fix.patch 5fe72c206564ad6a3d96e7a32cf76509819cdbe2620f67266e100e7426c04a3e861985ffd0999afc6baf28a04606e1124482b8a0f46dae3095da59bd57e31697 sdk_fix-sdk-download.patch " diff --git a/user/dotnet7-stage0/installer_2780-reprodicible-tarball.patch b/user/dotnet7-stage0/installer_2780-reprodicible-tarball.patch deleted file mode 100644 index 2c8d8ec..0000000 --- a/user/dotnet7-stage0/installer_2780-reprodicible-tarball.patch +++ /dev/null @@ -1,122 +0,0 @@ -From 3669424e83ce393e2e0ee3f23b5a255c3a11a192 Mon Sep 17 00:00:00 2001 -Patch-Source: https://github.com/dotnet/source-build/issues/2780 -From: Antoine Martin -Date: Wed, 16 Feb 2022 15:59:42 +0000 -Subject: [PATCH 1/1] reproducible tarball - -By default, tarball is not reprodicible due to a select few of volatile -files. This volatility is associated with .git directories and -OfficialBuildId of a few packages that source it from tarball build -date. This patch allows stripping of git directories to bare minimum and -sources OfficialBuildId with generic date to be modified later for -build. - ---- - .../src/Tarball_WriteSourceRepoProperties.cs | 6 +-- - .../tools/SourceBuildArcadeTarball.targets | 9 +++-- - .../SourceBuildArcadeTarball_strip-git.sh | 38 +++++++++++++++++++ - 3 files changed, 46 insertions(+), 7 deletions(-) - create mode 100755 src/SourceBuild/Arcade/tools/SourceBuildArcadeTarball_strip-git.sh - -diff --git a/src/installer/src/SourceBuild/Arcade/src/Tarball_WriteSourceRepoProperties.cs b/src/installer/src/SourceBuild/Arcade/src/Tarball_WriteSourceRepoProperties.cs -index b6b2793f3..55d680971 100644 ---- a/src/installer/src/SourceBuild/Arcade/src/Tarball_WriteSourceRepoProperties.cs -+++ b/src/installer/src/SourceBuild/Arcade/src/Tarball_WriteSourceRepoProperties.cs -@@ -106,7 +106,7 @@ private static DerivedVersion GetVersionInfo(string repoName, string version, st - if (repoName.Contains("nuget")) - { - // NuGet does this - arbitrary build IDs -- return new DerivedVersion { OfficialBuildId = DateTime.Now.ToString("yyyyMMdd.1"), PreReleaseVersionLabel = releaseParts[0] }; -+ return new DerivedVersion { OfficialBuildId = DateTime.Now.ToString("19900101.1"), PreReleaseVersionLabel = releaseParts[0] }; - } - else if (releaseParts.Length == 3) - { -@@ -140,7 +140,7 @@ private static DerivedVersion GetVersionInfo(string repoName, string version, st - { - // finalized version number (x.y.z) - probably not our code - // Application Insights, Newtonsoft.Json do this -- return new DerivedVersion { OfficialBuildId = DateTime.Now.ToString("yyyyMMdd.1"), PreReleaseVersionLabel = string.Empty }; -+ return new DerivedVersion { OfficialBuildId = DateTime.Now.ToString("19900101.1"), PreReleaseVersionLabel = string.Empty }; - } - - throw new FormatException($"Can't derive a build ID from version {version} (commit count {commitCount}, release {string.Join(";", nugetVersion.Release.Split('-', '.'))})"); -diff --git a/src/installer/src/SourceBuild/Arcade/tools/SourceBuildArcadeTarball.targets b/src/installer/src/SourceBuild/Arcade/tools/SourceBuildArcadeTarball.targets -index a516a86cf..eb5858ba3 100644 ---- a/src/installer/src/SourceBuild/Arcade/tools/SourceBuildArcadeTarball.targets -+++ b/src/installer/src/SourceBuild/Arcade/tools/SourceBuildArcadeTarball.targets -@@ -15,6 +15,7 @@ - - $(RepoRoot)artifacts/ - $(ArtifactsDir)tarball/ -+ $([MSBuild]::MakeRelative($([System.IO.Path]::GetDirectoryName($(TarballDir))), $(TarballDir))) - $([MSBuild]::EnsureTrailingSlash('$(TarballDir)')) - $(TarballRootDir)src/ - $(TarballRootDir)git-info/ -@@ -42,7 +43,7 @@ - - - -- -+ - - - -@@ -189,10 +190,10 @@ - Command="git config --file $(TarballRepoSourceDir)/.git/config --add remote.origin.url $(OriginalRepoUri)" - WorkingDirectory="$(RepoRoot)"/> - -- -+ - - - -diff --git a/src/installer/src/SourceBuild/Arcade/tools/SourceBuildArcadeTarball_strip-git.sh b/src/installer/src/SourceBuild/Arcade/tools/SourceBuildArcadeTarball_strip-git.sh -new file mode 100755 -index 000000000..63858732f ---- /dev/null -+++ b/src/installer/src/SourceBuild/Arcade/tools/SourceBuildArcadeTarball_strip-git.sh -@@ -0,0 +1,38 @@ -+#!/bin/bash -+repodir="$1" -+ -+gitdir="$repodir"/.git -+stripdir="$repodir"/.strip -+mkdir "$stripdir" -+ -+commit=$(git -C "$repodir" rev-parse HEAD) -+url="$(grep -m 1 url "$gitdir"/config)" -+url=${url#*= } -+ -+echo $commit > "$stripdir"/HEAD -+{ -+echo "[remote \"origin\"]" -+echo " url = \"$url\"" -+} > "$stripdir"/config -+ -+if [ -f "$repodir"/.gitmodules ]; then -+ cat "$repodir"/.gitmodules >> "$stripdir"/config -+ -+ for subdir in $(find "$gitdir"/modules -type f -name 'config'); do -+ subdir=${subdir/\/config} -+ substripdir="${subdir/.git/.strip}" -+ commit=$(git -C "$subdir" rev-parse HEAD) -+ url="$(grep -m 1 url "$subdir"/config)" -+ url=${url#*= } -+ -+ mkdir -p "$substripdir" -+ echo $commit > "$substripdir"/HEAD -+ { -+ echo "[remote \"origin\"]" -+ echo " url = \"$url\"" -+ } > "$substripdir"/config -+ done -+fi -+ -+rm -fR "$gitdir" -+mv "$stripdir" "$gitdir" - diff --git a/user/dotnet7-stage0/runtime_81573-suppress-clang-16-warnings.patch b/user/dotnet7-stage0/runtime_81573-suppress-clang-16-warnings.patch new file mode 100644 index 0000000..8196dc6 --- /dev/null +++ b/user/dotnet7-stage0/runtime_81573-suppress-clang-16-warnings.patch @@ -0,0 +1,175 @@ +From 0ca07a2faf1e97b37893e8c8868280bd7052f09d Mon Sep 17 00:00:00 2001 +Patch-Source: https://github.com/dotnet/runtime/pull/81573 +From: Adeel <3840695+am11@users.noreply.github.com> +Date: Fri, 3 Feb 2023 01:01:10 +0200 +Subject: [PATCH 1/3] Suppress clang-16 warnings + +--- + eng/common/native/init-compiler.sh | 2 +- + eng/native/configurecompiler.cmake | 8 ++++++++ + src/coreclr/dlls/mscordbi/CMakeLists.txt | 1 + + src/native/corehost/apphost/static/CMakeLists.txt | 4 ++-- + ...t_OSXexports.src => singlefilehost_freebsdexports.src} | 4 ++++ + .../apphost/static/singlefilehost_unixexports.src | 4 ---- + 6 files changed, 16 insertions(+), 7 deletions(-) + rename src/native/corehost/apphost/static/{singlefilehost_OSXexports.src => singlefilehost_freebsdexports.src} (81%) + +diff --git a/src/runtime/eng/common/native/init-compiler.sh b/src/runtime/eng/common/native/init-compiler.sh +index 41a26d8..f13b740 100644 +--- a/src/runtime/eng/common/native/init-compiler.sh ++++ b/src/runtime/eng/common/native/init-compiler.sh +@@ -71,7 +71,7 @@ if [[ -z "$CLR_CC" ]]; then + # Set default versions + if [[ -z "$majorVersion" ]]; then + # note: gcc (all versions) and clang versions higher than 6 do not have minor version in file name, if it is zero. +- if [[ "$compiler" == "clang" ]]; then versions=( 15 14 13 12 11 10 9 8 7 6.0 5.0 4.0 3.9 3.8 3.7 3.6 3.5 ) ++ if [[ "$compiler" == "clang" ]]; then versions=( 16 15 14 13 12 11 10 9 8 7 6.0 5.0 4.0 3.9 3.8 3.7 3.6 3.5 ) + elif [[ "$compiler" == "gcc" ]]; then versions=( 12 11 10 9 8 7 6 5 4.9 ); fi + + for version in "${versions[@]}"; do +diff --git a/src/runtime/eng/native/configurecompiler.cmake b/src/runtime/eng/native/configurecompiler.cmake +index 867e9ea9862e6..34fb9a51a7055 100644 +--- a/src/runtime/eng/native/configurecompiler.cmake ++++ b/src/runtime/eng/native/configurecompiler.cmake +@@ -453,6 +453,15 @@ if (CLR_CMAKE_HOST_UNIX) + add_compile_options(-Wno-incompatible-ms-struct) + + add_compile_options(-Wno-reserved-identifier) ++ ++ # clang 16.0 introduced buffer hardening https://discourse.llvm.org/t/rfc-c-buffer-hardening/65734 ++ # which we are not conforming to yet. ++ add_compile_options(-Wno-unsafe-buffer-usage) ++ ++ # other clang 16.0 suppressions ++ add_compile_options(-Wno-single-bit-bitfield-constant-conversion) ++ add_compile_options(-Wno-cast-function-type-strict) ++ add_compile_options(-Wno-incompatible-function-pointer-types-strict) + else() + add_compile_options(-Wno-uninitialized) + add_compile_options(-Wno-strict-aliasing) +diff --git a/src/runtime/src/coreclr/dlls/mscordbi/CMakeLists.txt b/src/runtime/src/coreclr/dlls/mscordbi/CMakeLists.txt +index c24a90cf70409..ee41919ffaa6b 100644 +--- a/src/runtime/src/coreclr/dlls/mscordbi/CMakeLists.txt ++++ b/src/runtime/src/coreclr/dlls/mscordbi/CMakeLists.txt +@@ -109,6 +109,7 @@ elseif(CLR_CMAKE_HOST_UNIX) + + if(CLR_CMAKE_HOST_LINUX) + add_dependencies(mscordbi pal_redefines_file) ++ set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--undefined-version") + endif(CLR_CMAKE_HOST_LINUX) + + endif(CLR_CMAKE_HOST_WIN32) +diff --git a/src/runtime/src/native/corehost/apphost/static/CMakeLists.txt b/src/runtime/src/native/corehost/apphost/static/CMakeLists.txt +index 395293a41784f..89c51af5645dd 100644 +--- a/src/runtime/src/native/corehost/apphost/static/CMakeLists.txt ++++ b/src/runtime/src/native/corehost/apphost/static/CMakeLists.txt +@@ -66,8 +66,8 @@ if(CLR_CMAKE_TARGET_WIN32) + add_linker_flag("/DEF:${CMAKE_CURRENT_SOURCE_DIR}/singlefilehost.def") + + else() +- if(CLR_CMAKE_TARGET_OSX) +- set(DEF_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/singlefilehost_OSXexports.src) ++ if(CLR_CMAKE_TARGET_FREEBSD) ++ set(DEF_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/singlefilehost_freebsdexports.src) + else() + set(DEF_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/singlefilehost_unixexports.src) + endif() +diff --git a/src/runtime/src/native/corehost/apphost/static/singlefilehost_OSXexports.src b/src/runtime/src/native/corehost/apphost/static/singlefilehost_freebsdexports.src +similarity index 81% +rename from src/native/corehost/apphost/static/singlefilehost_OSXexports.src +rename to src/native/corehost/apphost/static/singlefilehost_freebsdexports.src +index 18d5697e84580..1f9c517821855 100644 +--- a/src/runtime/src/native/corehost/apphost/static/singlefilehost_OSXexports.src ++++ b/src/runtime/src/native/corehost/apphost/static/singlefilehost_freebsdexports.src +@@ -9,3 +9,7 @@ g_dacTable + + ; Used by profilers + MetaDataGetDispenser ++ ++; FreeBSD needs to reexport these ++__progname ++environ +diff --git a/src/runtime/src/native/corehost/apphost/static/singlefilehost_unixexports.src b/src/runtime/src/native/corehost/apphost/static/singlefilehost_unixexports.src +index 1f9c517821855..18d5697e84580 100644 +--- a/src/runtime/src/native/corehost/apphost/static/singlefilehost_unixexports.src ++++ b/src/runtime/src/native/corehost/apphost/static/singlefilehost_unixexports.src +@@ -9,7 +9,3 @@ g_dacTable + + ; Used by profilers + MetaDataGetDispenser +- +-; FreeBSD needs to reexport these +-__progname +-environ + +From a95105f744a4e60a67a4b1258c1bae5d67d6a23d Mon Sep 17 00:00:00 2001 +From: Adeel <3840695+am11@users.noreply.github.com> +Date: Fri, 3 Feb 2023 23:54:13 +0200 +Subject: [PATCH 2/3] Remove a strange (one-of-a-kind) workaround + +--- + src/coreclr/dlls/mscordbi/CMakeLists.txt | 5 +---- + 1 file changed, 1 insertion(+), 4 deletions(-) + +diff --git a/src/runtime/src/coreclr/dlls/mscordbi/CMakeLists.txt b/src/runtime/src/coreclr/dlls/mscordbi/CMakeLists.txt +index ee41919ffaa6b..fccc4e7c6fa62 100644 +--- a/src/runtime/src/coreclr/dlls/mscordbi/CMakeLists.txt ++++ b/src/runtime/src/coreclr/dlls/mscordbi/CMakeLists.txt +@@ -100,10 +100,7 @@ elseif(CLR_CMAKE_HOST_UNIX) + mscordaccore + ) + +- # COREDBI_LIBRARIES is mentioned twice because ld is one pass linker and will not find symbols +- # if they are defined after they are used. Having all libs twice makes sure that ld will actually +- # find all symbols. +- target_link_libraries(mscordbi ${COREDBI_LIBRARIES} ${COREDBI_LIBRARIES}) ++ target_link_libraries(mscordbi ${COREDBI_LIBRARIES}) + + add_dependencies(mscordbi mscordaccore) + + +From dced5d027248be11e8916a181b0f0358dcc1b086 Mon Sep 17 00:00:00 2001 +From: Adeel <3840695+am11@users.noreply.github.com> +Date: Fri, 3 Feb 2023 02:05:49 +0200 +Subject: [PATCH 3/3] Add thunk for PAL_{Unr,R}egisterModule + +--- + src/coreclr/dlls/mscordbi/CMakeLists.txt | 1 - + src/coreclr/dlls/mscordbi/mscordbi.cpp | 15 +++++++++++++++ + 2 files changed, 15 insertions(+), 1 deletion(-) + +diff --git a/src/runtime/src/coreclr/dlls/mscordbi/CMakeLists.txt b/src/runtime/src/coreclr/dlls/mscordbi/CMakeLists.txt +index fccc4e7c6fa62..95e92034e238f 100644 +--- a/src/runtime/src/coreclr/dlls/mscordbi/CMakeLists.txt ++++ b/src/runtime/src/coreclr/dlls/mscordbi/CMakeLists.txt +@@ -106,7 +106,6 @@ elseif(CLR_CMAKE_HOST_UNIX) + + if(CLR_CMAKE_HOST_LINUX) + add_dependencies(mscordbi pal_redefines_file) +- set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--undefined-version") + endif(CLR_CMAKE_HOST_LINUX) + + endif(CLR_CMAKE_HOST_WIN32) +diff --git a/src/runtime/src/coreclr/dlls/mscordbi/mscordbi.cpp b/src/runtime/src/coreclr/dlls/mscordbi/mscordbi.cpp +index 891c01e144f5c..109fe6a5b5417 100644 +--- a/src/runtime/src/coreclr/dlls/mscordbi/mscordbi.cpp ++++ b/src/runtime/src/coreclr/dlls/mscordbi/mscordbi.cpp +@@ -32,3 +32,18 @@ BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved) + // Defer to the main debugging code. + return DbgDllMain(hInstance, dwReason, lpReserved); + } ++ ++#if defined(HOST_LINUX) && defined(TARGET_LINUX) ++PALIMPORT HINSTANCE PALAPI DAC_PAL_RegisterModule(IN LPCSTR lpLibFileName); ++PALIMPORT VOID PALAPI DAC_PAL_UnregisterModule(IN HINSTANCE hInstance); ++ ++HINSTANCE PALAPI PAL_RegisterModule(IN LPCSTR lpLibFileName) ++{ ++ return DAC_PAL_RegisterModule(lpLibFileName); ++} ++ ++VOID PALAPI PAL_UnregisterModule(IN HINSTANCE hInstance) ++{ ++ DAC_PAL_UnregisterModule(hInstance); ++} ++#endif diff --git a/user/dotnet7-stage0/runtime_82269-mono-thread-coop-undefine-fortify-source.patch b/user/dotnet7-stage0/runtime_82269-mono-thread-coop-undefine-fortify-source.patch new file mode 100644 index 0000000..d4cbe4d --- /dev/null +++ b/user/dotnet7-stage0/runtime_82269-mono-thread-coop-undefine-fortify-source.patch @@ -0,0 +1,25 @@ +From 98054ea87ce70247bb09ceafd2ad1a0b36d2fef4 Mon Sep 17 00:00:00 2001 +Patch-Source: https://github.com/dotnet/runtime/issues/82269 +From: Antoine Martin +Date: Sat, 1 Oct 2022 09:21:58 -0400 +Subject: [PATCH] Undefine fortify-source on mono-thread-coop + +When _FORTIFY_SOURCE=2, there is a bug relating to memcpy that expresses itself. +See: https://gitlab.alpinelinux.org/alpine/aports/-/issues/14105. Alpine Linux +now sets this by default since https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/43463, +which makes mono-flavored runtime dump its core. This patch offers a workaround +by undefining _FORTIFY_SOURCE in the problematic file. + +--- +diff --git a/src/runtime/src/mono/mono/utils/mono-threads-coop.c b/src/runtime/src/mono/mono/utils/mono-threads-coop.c +index 4ed659d6605..34bb5785fba 100644 +--- a/src/runtime/src/mono/mono/utils/mono-threads-coop.c ++++ b/src/runtime/src/mono/mono/utils/mono-threads-coop.c +@@ -15,6 +15,7 @@ + #ifdef TARGET_MACH + #define _DARWIN_C_SOURCE + #endif ++#undef _FORTIFY_SOURCE + + #include + #include diff --git a/user/dotnet7-stage0/runtime_enable-runtime-marshalling.diff b/user/dotnet7-stage0/runtime_enable-runtime-marshalling.diff index 54aec95..f609cfa 100644 --- a/user/dotnet7-stage0/runtime_enable-runtime-marshalling.diff +++ b/user/dotnet7-stage0/runtime_enable-runtime-marshalling.diff @@ -1605,31 +1605,6 @@ index 8523c0d8296..2045f05a28e 100644 - -- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent);$(NetCoreAppMinimum)-windows;$(NetCoreAppMinimum);netstandard2.0;$(NetFrameworkMinimum) -+ $(NetCoreAppCurrent);$(NetCoreAppMinimum);netstandard2.0;$(NetFrameworkMinimum) - true - true - true -diff --git a/src/runtime/src/libraries/System.Security.Cryptography.ProtectedData/tests/System.Security.Cryptography.ProtectedData.Tests.csproj b/src/runtime/src/libraries/System.Security.Cryptography.ProtectedData/tests/System.Security.Cryptography.ProtectedData.Tests.csproj -index 61408ea83bc..2bdefe93760 100644 ---- a/src/runtime/src/libraries/System.Security.Cryptography.ProtectedData/tests/System.Security.Cryptography.ProtectedData.Tests.csproj -+++ b/src/runtime/src/libraries/System.Security.Cryptography.ProtectedData/tests/System.Security.Cryptography.ProtectedData.Tests.csproj -@@ -1,7 +1,7 @@ - - - true -- $(NetCoreAppCurrent)-windows;$(NetFrameworkMinimum) -+ $(NetFrameworkMinimum) - - - diff --git a/src/runtime/src/libraries/System.Security.Cryptography.X509Certificates/tests/System.Security.Cryptography.X509Certificates.Tests.csproj b/src/runtime/src/libraries/System.Security.Cryptography.X509Certificates/tests/System.Security.Cryptography.X509Certificates.Tests.csproj index a284d8edf47..cefeb84c128 100644 --- a/src/runtime/src/libraries/System.Security.Cryptography.X509Certificates/tests/System.Security.Cryptography.X509Certificates.Tests.csproj diff --git a/user/dotnet7-stage0/runtime_musl-x86-build-fix.patch b/user/dotnet7-stage0/runtime_musl-x86-build-fix.patch new file mode 100644 index 0000000..6e47af3 --- /dev/null +++ b/user/dotnet7-stage0/runtime_musl-x86-build-fix.patch @@ -0,0 +1,28 @@ +diff --git a/src/runtime/eng/Subsets.props b/src/runtime/eng/Subsets.props +index cd5f39e..4addef7 100644 +--- a/src/runtime/eng/Subsets.props ++++ b/src/runtime/eng/Subsets.props +@@ -35,7 +35,7 @@ + mono+libs+packs + mono+libs+host+packs + +- clr+libs+host+packs ++ clr+libs+host+packs + + + +diff --git a/src/runtime/eng/native/configurecompiler.cmake b/src/runtime/eng/native/configurecompiler.cmake +index 9090289..b37864c 100644 +--- a/src/runtime/eng/native/configurecompiler.cmake ++++ b/src/runtime/eng/native/configurecompiler.cmake +@@ -575,6 +575,10 @@ endif(CLR_CMAKE_HOST_UNIX_ARMV6) + + if(CLR_CMAKE_HOST_UNIX_X86) + add_compile_options(-msse2) ++ if(CLR_CMAKE_HOST_ALPINE_LINUX) ++ add_linker_flag(-Wl,-z,notext) ++ add_compile_options(-Wno-ignored-attributes) ++ endif() + endif() + + if(CLR_CMAKE_HOST_UNIX) diff --git a/user/dotnet7-stage0/runtime_no-additional-runtime-id.patch b/user/dotnet7-stage0/runtime_no-additional-runtime-id.patch index c6884b7..0c80557 100644 --- a/user/dotnet7-stage0/runtime_no-additional-runtime-id.patch +++ b/user/dotnet7-stage0/runtime_no-additional-runtime-id.patch @@ -8,7 +8,7 @@ Since we know our portable RID exists, just skip ensuring RID existence --- diff --git a/src/runtime/src/libraries/Microsoft.NETCore.Platforms/src/Microsoft.NETCore.Platforms.csproj b/src/runtime/src/libraries/Microsoft.NETCore.Platforms/src/Microsoft.NETCore.Platforms.csproj -index 742f1788189..81877a5e6cd 100644 +index 46850f9..e7d861e 100644 --- a/src/runtime/src/libraries/Microsoft.NETCore.Platforms/src/Microsoft.NETCore.Platforms.csproj +++ b/src/runtime/src/libraries/Microsoft.NETCore.Platforms/src/Microsoft.NETCore.Platforms.csproj @@ -21,8 +21,6 @@ @@ -17,9 +17,9 @@ index 742f1788189..81877a5e6cd 100644 <_generateRuntimeGraphTask>$([MSBuild]::NormalizePath('$(BaseOutputPath)', $(Configuration), '$(_generateRuntimeGraphTargetFramework)', '$(AssemblyName).dll')) - - $(AdditionalRuntimeIdentifiers);$(OutputRID) + 1 + true - - -- 2.37.1