From 40009f07d11e2ec17ddff1d455c8e3c750d064d5 Mon Sep 17 00:00:00 2001 From: "build@apk-groulx" Date: Sun, 5 Dec 2021 18:24:01 +0000 Subject: [PATCH] [main/dotnet-3.1] APKBUILD cleanup --- apk/v3.15/main/dotnet-3.1/APKBUILD | 524 ++++++++---------- apk/v3.15/main/dotnet-3.1/README.md | 58 ++ ...plicationinsights-alternative-source.patch | 30 - .../dotnet-3.1/build_coreclr-tools-path.patch | 32 +- ...-setup_attempt-fix-transport-runtime.patch | 26 - ...ate-layout-core-setup-blob-path-fix.patch} | 21 +- .../xliff-tasks_use-netcoreapp21.patch | 67 --- 7 files changed, 328 insertions(+), 430 deletions(-) create mode 100644 apk/v3.15/main/dotnet-3.1/README.md delete mode 100644 apk/v3.15/main/dotnet-3.1/build_applicationinsights-alternative-source.patch delete mode 100644 apk/v3.15/main/dotnet-3.1/core-setup_attempt-fix-transport-runtime.patch rename apk/v3.15/main/dotnet-3.1/{installer_hack-for-building-on-alpine-with-core-setup-rid-patc.patch => installer_generate-layout-core-setup-blob-path-fix.patch} (55%) delete mode 100644 apk/v3.15/main/dotnet-3.1/xliff-tasks_use-netcoreapp21.patch diff --git a/apk/v3.15/main/dotnet-3.1/APKBUILD b/apk/v3.15/main/dotnet-3.1/APKBUILD index 190dd12..2fd40e8 100644 --- a/apk/v3.15/main/dotnet-3.1/APKBUILD +++ b/apk/v3.15/main/dotnet-3.1/APKBUILD @@ -1,373 +1,319 @@ -# Maintainer: Antoine Martin (ayakael) - +# Maintainer: Antoine Martin (ayakael) + # Based on Archlinux PKGBUILD by: # Maxime Gauduin -# Kristian Mosegaard +# Kristian Mosegaard # Max Liebkies # Krzysztof Bogacki # Build vars -_bootstrap=true -_bootstrap_sdk='3.1.115' -_bootstrap_runtime='3.1.1' +_bootstrap=false +_bootstrap_sdk=3.1.20-r2 +_bootstrap_runtime=3.1.20-r2 _llvmver=12 -# Certain check and balances are mitigated when doing a portable build, thus making targetRID linux-musl-x64. TBD if we really want this. Maybe newer version are less capricious. -_targetrid=linux-musl-x64 - -# Part of the core-setup mitigation detailed below -_coreclrbld=21470.3 -_coreclrver=3.1.20-servicing - pkgname=dotnet-3.1 pkgdesc='The .NET Core SDK' pkgver=3.1.20 -pkgrel=0 +pkgrel=2 arch='x86_64' url=https://www.microsoft.com/net/core license='MIT' makedepends=" - bash - clang - cmake - git - icu-dev - inetutils-syslogd - krb5-dev - libgit2-dev - libunwind-dev - libxml2-dev - libxml2-utils - lldb-dev - llvm$_llvmver-dev - lttng-ust-dev - linux-headers - nodejs - openssl-dev - zlib-dev + bash + clang + cmake + git + icu-dev + inetutils-syslogd + krb5-dev + libgit2-dev + libunwind-dev + libxml2-dev + libxml2-utils + lldb-dev + llvm$_llvmver-dev + lttng-ust-dev + linux-headers + nodejs + openssl-dev + zlib-dev " -if [ ${_bootstrap} != 'true' ]; then - makedepends=" - ${makedepends} - dotnet-bootstrap-sdk-3.1 - dotnet-bootstrap-runtime-3.1 - " +if [ $_bootstrap != 'true' ]; then + makedepends=" + $makedepends + dotnet-bootstrap-sdk-3.1 + dotnet-bootstrap-runtime-3.1 + " fi -subpackages="dotnet-sdk-3.1:sdk dotnet-host:host dotnet-runtime-3.1:runtime aspnet-runtime-3.1:aspnet_runtime:noarch dotnet-targeting-pack-3.1:targeting_pack aspnet-targeting-pack-3.1:aspnet_targeting_pack:noarch" -_gittag=v${pkgver}-runtime +subpackages=" + dotnet-sdk-3.1:sdk + dotnet-runtime-3.1:runtime + aspnet-runtime-3.1:aspnet_runtime:noarch + dotnet-targeting-pack-3.1:targeting_pack + aspnet-targeting-pack-3.1:aspnet_targeting_pack:noarch + " +if [ $_bootstrap == 'true' ]; then + subpackages=" + $subpackages + dotnet-host:host + netstandard-targeting-pack:netstandard_tagering_pack:noarch + " +fi + +_gittag=v$pkgver-runtime _giturl=https://github.com/dotnet/source-build -options="!check !archcheck" +options="!check" source=" - $pkgname-$pkgver.git.zip - dotnet.sh + $pkgname-$pkgver.git.zip + dotnet.sh + applications-insights_fix-net40-location.patch + coreclr_fix-build-on-Alpine-edge-45352.patch + coreclr_non-portable-distrorid-fix-alpine.patch + core-setup_rid-plat-generation-on-alpine-fix.patch + installer_generate-layout-core-setup-blob-path-fix.patch + corefx_fix-build-clang10.patch + corefx_added-alpine-315-rid.patch + build_coreclr-tools-path.patch + build_darc-fix-alpine.patch " -# -# Patches description -# -# coreclr_fix-build-on-Alpine-edge-45352.patch -# Fixes a build error for Alpine Linux. It has since been fixed in dotnet-5.0, see issue dotnet/runtime 45352. -# -# corefx_fix-build-clang10.patch -# Fixes a build error for clang 10 -# -# xliff-tasks_use_netcoreapp21.patch -# For some god awful reason, xliff looks for netcoreapp2.0 when building, when netcoreapp2.1 is provided. This patch gives it the correct path. -# -# coresetup_rid-plat-generation-on-alpine-fix.patch -# build.sh for corehost on coresetup seems to generate the wrong rid on alpine. Rather than building corehost for the expected alpine.3.xx-x64 platform, -# it compiles to linux-musl-x64. This patch adjusts the computed RID to match what's expected, implementing the rest of coreclr_non-portable-distrorid-fix-alpine.patch -# -# coreclr_non-portable-distrorid-fix-alpine.patch -# coreclr's DistroRid generation seems broken on alpine by leaving a trailing version ID. Thus, the distroRid for alpine 3.15 comes out as alpine-3.15.0-x64 instead of -# the expected alpine-3.15-x64. This patch fixes this by bring alpine's Rid generation under RHEL's algorithm. -# -# installer_hack-for-building-on-alpine-with-core-setup-rid-patc.patch -# Hack that adjusts where dotnet-runtime-3.1.20-alpine.3.15-x64.tar.gz is expected. -# Expectation: artifacts/obj/x64/Release/blobs/Runtime/3.1.20 -# Actual: artifacts/obj/x64/Release/blobs/Runtime/3.1.20-alpine.3.15 -# This is likely caused by core-setup_rid-plat-generation-on-alpine-fix.patch as part of the build system -# expected musl-linux-x64 while another part expects alpine-3.15-x64. -# What's weird is that, at worst, the blobs should be sent to 3.1.20-alpine.3.15-x64. -# Why ommit arch? Probably is worth another patch in core-setup -# -# applications-insights_fix-net40-location.patch -# Because Linux is sane, paths are case sensitive. Applications insights looks for Utils.cs in net40 while the repo has it in Net40. Patch makes it all okay. -# -# build_applicationinsights-alternative-source.patch -# Another act of the spaguetti monster: there is a difference between the official ApplicationInsights-dotnet repo and unofficial "original" versions for commit 53b8094 which breaks certain paths (again) -# This patch changes the repo URL to an "original" version that I host on github.com, which I forked from SergeyRazmyslov, who forked it originally from ApplicationInsights-dotnet before (presumably) -# Microsoft did a forced push. Not entirely sure what's up here. -# -# build_coreclr-tools-path.patch -# Coreclr looks for its ilasm and ildasm tools in the wrong path. -# Patch makes it all okay by adjusting the paths accordingly -# Ideal solution is to provide ilasm and ildasm in a seperate package. -# -# build_darc-fix-alpine.patch -# Darc has a segmentation fault on Alpine due to not chosing the correct binary architecture. -# This patch deletes all the wrong ones so that it is forced to chose the correct one. -# See dotnet/source-build issue #1868, and dotnet/source-build issue #297 (which would also fix all the other RID issues. -# - -source=" - ${source} - coreclr_fix-build-on-Alpine-edge-45352.patch - coreclr_non-portable-distrorid-fix-alpine.patch - core-setup_rid-plat-generation-on-alpine-fix.patch - installer_hack-for-building-on-alpine-with-core-setup-rid-patc.patch - corefx_fix-build-clang10.patch - corefx_added-alpine-315-rid.patch - build_darc-fix-alpine.patch -" - - builddir="$srcdir/$pkgname" -# -# A custom version of snapshot is used because Darc expects the build directory to be a git repo, thus the auto-generated tar.gz on github is not sufficient. -# There's a way to trick Darc into thinking its in a git repo but it's hardly elegant. Thus make sure to 'abuild snapshot' before 'abuild -r' -# +snapshot() { + mkdir -p "$srcdir" + cd "$srcdir" + if ! [ -d $pkgname.git ]; then + git clone $_giturl $pkgname.git + cd $pkgname.git + else + cd $pkgname.git + git fetch + fi + + echo "Repo archive" + mkfifo $pkgname-$_gittag.git + git bundle create - $_gittag > $pkgname-$_gittag.git & + zip --fifo "$SRCDEST"/$pkgname-$_gittag.git.zip $pkgname-$_gittag.git + rm $pkgname-$_gittag.git + + ln -s "$SRCDEST"/$pkgname-$_gittag.git.zip "$startdir"/$pkgname-$_gittag.git.zip +} -snapshot() { - mkdir -p "$srcdir" - cd "${srcdir}" - if ! [ -d $pkgname.git ]; then - git clone $_giturl $pkgname.git || return 1 - cd $pkgname.git - else - cd $pkgname.git - git fetch || return 1 - fi - - echo "Repo archive" - mkfifo $pkgname-$pkgver.git - git bundle create - $_gittag > $pkgname-$pkgver.git & - zip --fifo "${SRCDEST}"/$pkgname-$pkgver.git.zip $pkgname-$pkgver.git - rm $pkgname-$pkgver.git - - ln -s "$SRCDEST"/$pkgname-$pkgver.git.zip "$startdir"/$pkgname-$pkgver.git.zip -} - unpack() { - default_unpack - cd "${srcdir}" - git clone $pkgname-$pkgver.git $pkgname --branch $_gittag 1>/dev/null 2>&1 + default_unpack + cd "$srcdir" + git clone $pkgname-$_gittag.git $pkgname --branch $_gittag 1>/dev/null 2>&1 } - + +default_prepare() { + local i failed= + [ -n "$builddir" -a -d "$builddir" ] && cd "$builddir" + if ! have_patches; then + return 0 + fi + [ -d "$builddir" ] || { error "Is \$builddir set correctly?"; return 1; } + msg "Deploying patches" + for i in $source; do + case ${i%::*} in + build_*.patch) + patch ${patch_args:--p1} -i "$srcdir/$(filename_from_uri $i)" || failed="$failed $i" + ;; + *.patch) + local _package=$(echo $i | sed 's|_.*||') + local _patch=$(echo $i | sed "s|"$_package"_||") + echo "cp $_patch -> $_package" + [ -d patches/$_package ] || mkdir patches/$_package + cp "$srcdir"/"$i" patches/$_package/$_patch + ;; + esac + done + + if [ -z "$failed" ]; then + return 0 + fi + error "The following patches failed to apply:" + for i in $failed; do + printf " %s\n" "$i" + done + return 1 +} + prepare() { - local i failed= - [ -n "$builddir" -a -d "$builddir" ] && cd "$builddir" + default_prepare + msg "Settings up bootstrap SDK" + if [ "$_bootstrap" == 'true' ]; then + chmod +x "$srcdir"/dotnet-install.sh + "$srcdir"/dotnet-install.sh --install-dir ./ + "$srcdir"/dotnet-install.sh --install-dir ./ --runtime dotnet + else + cp -r /usr/share/dotnet/* ./ + fi - msg "Settings up bootstrap SDK" - if [ "${_bootstrap}" == 'true' ]; then - eng/common/dotnet-install.sh -runtime dotnet -version $_bootstrap_runtime - bash .dotnet/dotnet-install.sh --version $_bootstrap_sdk --install-dir ./ - bash .dotnet/dotnet-install.sh --version $_bootstrap_runtime --install-dir ./ --runtime dotnet - else - cp -r /usr/share/dotnet/* ./ - fi - - - # disable warnings - sed -i 's|skiptests|skiptests ignorewarnings|' repos/coreclr.common.props - - export SOURCE_BUILD_SKIP_SUBMODULE_CHECK=1 - - if ! have_patches; then - return 0 - fi - [ -d "$builddir" ] || { error "Is \$builddir set correctly?"; return 1; } - - msg "Deploying patches" - for i in $source; do - case ${i%::*} in - build_*.patch) - patch ${patch_args:--p1} -i "$srcdir/$(filename_from_uri $i)" || failed="$failed $i" - ;; - *.patch) - local _package=$(echo ${i} | sed 's|_.*||') - local _patch=$(echo ${i} | sed "s|${_package}_||") - echo "cp $_patch -> $_package" - [ -d patches/$_package ] || mkdir patches/$_package - cp "$srcdir"/"$i" patches/${_package}/${_patch} - ;; - esac - done - if [ -z "$failed" ]; then - return 0 - fi - error "The following patches failed to apply:" - for i in $failed; do - printf " %s\n" "$i" - done - return 1 + # disable warnings + sed -i 's|skiptests|skiptests ignorewarnings|' repos/runtime.common.props } + pkgver() { - cd "$builddir" + cd "$builddir" - local _runtimever=$(xmllint --xpath "//Dependency[@Name='Microsoft.NETCore.App.Runtime.win-x64']/@Version" eng/Version.Details.xml | cut -d '=' -f 2 | sed 's/^"//; s/"$//') - local _sdkver=$(xmllint --xpath "//Dependency[@Name='Microsoft.NET.Sdk']/@Version" eng/Version.Details.xml | cut -d '=' -f 2 | sed 's/^"//; s/"$//; s/-rtm.*//; s/-servicing.*//') + local _runtimever=$(xmllint --xpath "//Dependency[@Name='Microsoft.NETCore.App.Runtime.win-x64']/@Version" eng/Version.Details.xml | cut -d '=' -f 2 | sed 's/^"//; s/"$//') + local _sdkver=$(xmllint --xpath "//Dependency[@Name='Microsoft.NET.Sdk']/@Version" eng/Version.Details.xml | cut -d '=' -f 2 | sed 's/^"//; s/"$//; s/-rtm.*//; s/-servicing.*//') - echo "${_runtimever}.sdk${_sdkver##*.}" + echo "$_runtimever.sdk${_sdkver##*.}" } build() { - cd "$builddir" + export SOURCE_BUILD_SKIP_SUBMODULE_CHECK=1 - export SOURCE_BUILD_SKIP_SUBMODULE_CHECK=1 - - # - # Notes - # - # Very important that --with-sdk stays at ../$pkgname. For some reason *anything else* makes "Building 'sdk' to produce tarball" step stalls after creating Microsoft.NET.Sdk nupkg. - # To be investigated further why this is so finicky. If all else fails, remove that line and make sure _bootstrap=true. - # - # Rid generation for alpine on dotnet-3.1 tend to be finicky. For simplicity's sake (and my sanity), TargetRid is set to linux-musl-x64. - # - - ./build.sh \ - --with-sdk ../$pkgname \ - /p:ArchiveDownloadedPackages=true \ - /p:ContinueOnPrebuiltBaselineError=true \ - /p:SkipPortableRuntimeBuild=true \ - /p:SkipPrebuiltEnforcement=true \ - /p:UseSystemLibraries=true \ - /p:UseSystemLibunwind=true + ./build.sh \ + --with-sdk ../$pkgname \ + /p:ArchiveDownloadedPackages=true \ + /p:ContinueOnPrebuiltBaselineError=true \ + /p:SkipPortableRuntimeBuild=true \ + /p:SkipPrebuiltEnforcement=true \ + /p:UseSystemLibraries=true \ + /p:UseSystemLibunwind=true } package() { - depends=' - dotnet-sdk-3.1 - dotnet-host - dotnet-runtime-3.1 - dotnet-targetting-pack-3.1 - aspnet-runtime-3.1 - aspnet-targeting-pack-3.1 - netstandard-targeting-pack - ' - mkdir -p "${pkgdir}" + depends=' + dotnet-sdk-3.1 + dotnet-host + dotnet-runtime-3.1 + dotnet-targetting-pack-3.1 + aspnet-runtime-3.1 + aspnet-targeting-pack-3.1 + netstandard-targeting-pack + ' + mkdir -p "$pkgdir" } sdk() { - depends=' - dotnet-runtime-3.1 - dotnet-targeting-pack-3.1 - musl - libgcc - netstandard-targeting-pack - aspnet-targeting-pack-3.1 - ' + depends=' + dotnet-runtime-3.1 + dotnet-targeting-pack-3.1 + musl + libgcc + netstandard-targeting-pack + aspnet-targeting-pack-3.1 + ' + provides="dotnet-bootstrap-sdk-3.1=$pkgver-r$pkgrel" - # XXX: This is a hack to allow this abuild to depend on itself. Adding "dotnet" - # to makedepends would not work, because abuild implicitly removes $pkgname - # and $subpackages from the abuild's dependencies. - # - provides="dotnet-bootstrap-sdk-3.1=$pkgver-r$pkgrel" - - cd "$builddir"/artifacts/x64/Release + cd "$builddir"/artifacts/x64/Release - install -dm 755 "$subpkgdir"/usr/share/dotnet "$subpkgdir"/usr/share/licenses - bsdtar -xf dotnet-sdk-${pkgver%.*}.*-$_targetrid.tar.gz -C "${subpkgdir}"/usr/share/dotnet/ --no-same-owner sdk templates - ln -s dotnet-host "${subpkgdir}"/usr/share/licenses/dotnet-sdk-3.1 + install -dm 755 "$subpkgdir"/usr/share/dotnet "$subpkgdir"/usr/share/licenses + bsdtar -xf dotnet-sdk-*.tar.gz -C "$subpkgdir"/usr/share/dotnet/ --no-same-owner sdk templates + ln -s dotnet-host "$subpkgdir"/usr/share/licenses/dotnet-sdk-3.1 } host() { - pkgdesc='A generic driver for the .NET Core Command Line Interface' - depends=' - gcc - musl - ' + pkgdesc='A generic driver for the .NET Core Command Line Interface' + depends=' + gcc + musl + ' - cd $builddir/artifacts/x64/Release + cd $builddir/artifacts/x64/Release - install -dm 755 "$subpkgdir"/etc/profile.d "$subpkgdir"/usr/bin "$subpkgdir"/usr/lib "$subpkgdir"/usr/share/dotnet "$subpkgdir"/usr/share/licenses/dotnet-host + install -dm 755 "$subpkgdir"/etc/profile.d "$subpkgdir"/usr/bin "$subpkgdir"/usr/lib "$subpkgdir"/usr/share/dotnet "$subpkgdir"/usr/share/licenses/dotnet-host - bsdtar -xf dotnet-sdk-${pkgver%.*}.*-$_targetrid.tar.gz -C "${subpkgdir}"/usr/share/dotnet/ --no-same-owner dotnet host - bsdtar -xf dotnet-sdk-${pkgver%.*}.*-$_targetrid.tar.gz -C "${subpkgdir}"/usr/share/licenses/dotnet-host/ --no-same-owner LICENSE.txt ThirdPartyNotices.txt - ln -s /usr/share/dotnet/dotnet "${subpkgdir}"/usr/bin/dotnet - ln -s /usr/share/dotnet/host/fxr/${pkgver}/libhostfxr.so "${subpkgdir}"/usr/lib/libhostfxr.so - install -Dm 644 "${srcdir}"/dotnet.sh -t "${subpkgdir}"/etc/profile.d/ + bsdtar -xf dotnet-sdk-*.tar.gz -C "$subpkgdir"/usr/share/dotnet/ --no-same-owner dotnet host + bsdtar -xf dotnet-sdk-*.tar.gz -C "$subpkgdir"/usr/share/licenses/dotnet-host/ --no-same-owner LICENSE.txt ThirdPartyNotices.txt + ln -s /usr/share/dotnet/dotnet "$subpkgdir"/usr/bin/dotnet + ln -s /usr/share/dotnet/host/fxr/$pkgver/libhostfxr.so "$subpkgdir"/usr/lib/libhostfxr.so + install -Dm 644 "$srcdir"/dotnet.sh -t "$subpkgdir"/etc/profile.d/ } runtime() { - pkgdesc='The .NET Core runtime' - makedepends=' - icu-dev - krb5-dev - libunwind-dev - zlib-dev - openssl-dev - ' - depends=' - dotnet-host - libgcc - musl - icu - krb5-libs - libunwind - zlib - openssl - ' + pkgdesc='The .NET Core runtime' + makedepends=' + icu-dev + krb5-dev + libunwind-dev + zlib-dev + openssl-dev + ' + depends=' + dotnet-host + libgcc + musl + icu + krb5-libs + libunwind + zlib + openssl + ' + provides="dotnet-bootstrap-runtime-3.1=$pkgver-r$pkgrel" - # XXX: This is a hack to allow this abuild to depend on itself. Adding "dotnet" - # to makedepends would not work, because abuild implicitly removes $pkgname - # and $subpackages from the abuild's dependencies. - # - provides="dotnet-bootstrap-runtime-3.1=$pkgver-r$pkgrel" + cd "$builddir"/artifacts/x64/Release - cd "$builddir"/artifacts/x64/Release - - install -dm 755 "$subpkgdir"/usr/share/dotnet "$subpkgdir"/usr/share/licenses - bsdtar -xf dotnet-sdk-${pkgver%.*}.*-$_targetrid.tar.gz -C "${subpkgdir}"/usr/share/dotnet/ --no-same-owner shared/Microsoft.NETCore.App - ln -s dotnet-host "${subpkgdir}"/usr/share/licenses/dotnet-runtime-3.1 + install -dm 755 "$subpkgdir"/usr/share/dotnet "$subpkgdir"/usr/share/licenses + bsdtar -xf dotnet-sdk-*.tar.gz -C "$subpkgdir"/usr/share/dotnet/ --no-same-owner shared/Microsoft.NETCore.App + ln -s dotnet-host "$subpkgdir"/usr/share/licenses/dotnet-runtime-3.1 } aspnet_runtime() { - pkgdesc='The ASP.NET Core runtime' - depends='dotnet-runtime-3.1' + pkgdesc='The ASP.NET Core runtime' + depends=' + dotnet-runtime-3.1 + ' - cd "$builddir"/artifacts/x64/Release + cd "$builddir"/artifacts/x64/Release - install -dm 755 "$subpkgdir"/usr/share/dotnet "$subpkgdir"/usr/share/licenses - bsdtar -xf dotnet-sdk-${pkgver%.*}.*-$_targetrid.tar.gz -C "${subpkgdir}"/usr/share/dotnet/ --no-same-owner shared/Microsoft.AspNetCore.App - ln -s dotnet-host "${subpkgdir}"/usr/share/licenses/aspnet-runtime-3.1 + install -dm 755 "$subpkgdir"/usr/share/dotnet "$subpkgdir"/usr/share/licenses + bsdtar -xf dotnet-sdk-*.tar.gz -C "$subpkgdir"/usr/share/dotnet/ --no-same-owner shared/Microsoft.AspNetCore.App + ln -s dotnet-host "$subpkgdir"/usr/share/licenses/aspnet-runtime-3.1 } targeting_pack() { - pkgdesc='The .NET Core targeting pack' - depends='netstandard-targeting-pack' + pkgdesc='The .NET Core targeting pack' + depends='netstandard-targeting-pack' - cd "$builddir"/artifacts/x64/Release + cd "$builddir"/artifacts/x64/Release - install -dm 755 "$subpkgdir"/usr/share/dotnet "$subpkgdir"/usr/share/licenses - bsdtar -xf dotnet-sdk-${pkgver%.*}.*-$_targetrid.tar.gz -C "${subpkgdir}"/usr/share/dotnet/ --no-same-owner packs/Microsoft.NETCore.App.Host.$_targetrid packs/Microsoft.NETCore.App.Ref - ln -s dotnet-host "${subpkgdir}"/usr/share/licenses/dotnet-targeting-pack-3.1 + install -dm 755 "$subpkgdir"/usr/share/dotnet "$subpkgdir"/usr/share/licenses + bsdtar -xf dotnet-sdk-*.tar.gz -C "$subpkgdir"/usr/share/dotnet/ --no-same-owner packs/Microsoft.NETCore.App.Host.* packs/Microsoft.NETCore.App.Ref + ln -s dotnet-host "$subpkgdir"/usr/share/licenses/dotnet-targeting-pack-3.1 } +netstandard_targeting_pack() { + pkgdesc='The .NET Standard targeting pack' + + cd "$builddir"/artifacts/x64/Release + + install -dm 755 "$subpkgdir"/usr/share/dotnet "$subpkgdir"/usr/share/licenses + bsdtar -xf dotnet-sdk-*.tar.gz -C "$subpkgdir"/usr/share/dotnet/ --no-same-owner packs/NETStandard.Library.Ref + ln -s dotnet-host "$subpkgdir"/usr/share/licenses/netstandard-targeting-pack-3.1 +} + + aspnet_targeting_pack() { - pkgdesc='The ASP.NET Core targeting pack' - depends='dotnet-targeting-pack-3.1' + pkgdesc='The ASP.NET Core targeting pack' + depends=' + dotnet-targeting-pack-3.1 + ' - cd "$builddir"/artifacts/x64/Release + cd "$builddir"/artifacts/x64/Release - install -dm 755 "$subpkgdir"/usr/share/dotnet "$subpkgdir"/usr/share/licenses - bsdtar -xf dotnet-sdk-${pkgver%.*}.*-$_targetrid.tar.gz -C "${subpkgdir}"/usr/share/dotnet/ --no-same-owner packs/Microsoft.AspNetCore.App.Ref - ln -s dotnet-host "${subpkgdir}"/usr/share/licenses/aspnet-targeting-pack-3.1 + install -dm 755 "$subpkgdir"/usr/share/dotnet "$subpkgdir"/usr/share/licenses + bsdtar -xf dotnet-sdk-*.tar.gz -C "$subpkgdir"/usr/share/dotnet/ --no-same-owner packs/Microsoft.AspNetCore.App.Ref + ln -s dotnet-host "$subpkgdir"/usr/share/licenses/aspnet-targeting-pack-3.1 } -# vim: ts=2 sw=2 et: sha512sums=" 9e5e2bccb4338a18996e53e80c45525b3ba332d11cd896d1ba72bd8406735281aae7b98f614212a99475621000ca3fa5daf2d639953b163196aa2884c8773f2e dotnet-3.1-3.1.20.git.zip e61b9e3e5a2305646a616d598378230c9755c5dd5363692cc363f8f4add3807563c324dd86f3a7ae9d358c82d730608e7b293935a2b6c81c0c0f62d752a0a1cf dotnet.sh +0469d571d0f7634d3794761f04e1cbff9d27d642d134a11a13560574280e5cab6f366eb8820e61a449eca99470fdea8d9f6a7d97b633059b2fe25257ed1579e6 applications-insights_fix-net40-location.patch b3475c0b727c5258c7bc6f4c53305f9ced991e57f9f46a2ad323bed40627662eb8bf57286bf6a22d9a22bfdea9282da4630dd094166f0805c783aece5df5dff3 coreclr_fix-build-on-Alpine-edge-45352.patch 6ac9bdbc47b24cafbb3386e21756c540313680fed6994791ff5a3c75b422742ecf102d7736ac79de6d7f1a0892464f83cbab181ed505e4d827dc7f113e3a4017 coreclr_non-portable-distrorid-fix-alpine.patch -983a81bbcef45fbcd9a44187c3e7565631c8e72fca8427958b23097e7b291148e6f8656fe5619b7f5270311f47379498aaaa82919845bac96d02c764f95ac1f5 core-setup_rid-plat-generation-on-alpine-fix.patch -ccdfd8e4e726bf626e7d922ecb79de70d2852875b6f1c66c5d72d9605aac5701e3ab45e546b8d266cc6b83ce3a88bf5d79e1675a06a7b41dc7cdce7e4cb79c71 installer_hack-for-building-on-alpine-with-core-setup-rid-patc.patch +720fefc20ef4985917cfd243bbef427862af9ea0156cc6c78502daf8da5f6293bba0a1a5180c88dc145921592d533a8508b30eab2f388be1be7d6d10b6ab91d0 core-setup_rid-plat-generation-on-alpine-fix.patch +e67f4f92659892aa65de7192dfbbf2cafab17e1a4ef60e4981507c7309da61b866864a18b0452e47cee2ce9253032c3f4c39e4426b7b2216ffa73236239c9669 installer_generate-layout-core-setup-blob-path-fix.patch eb107ae9765d9eebe2f2ab4cebda4d3f76d683e21d88f806bb008e29051ad196ea637d410075b7ed61f4997a22085e4c36021860b82c4c0822c23ba9ded9656a corefx_fix-build-clang10.patch 72092a7323bb91e8d011ad09cefcc3fd0e4ebfc7c258895d454cc1d015eda36c7de97b09af76a492fa689f39b9216435faace77edd0ca75d8e39a34ed6641840 corefx_added-alpine-315-rid.patch +2334e36d5bb24b9b834800407c6110c09262af20a4353e92ef1897855f27eab117270dda0637071010a7a5ac8c4a5d4032240a7b659d8576801b503b66b14ab7 build_coreclr-tools-path.patch 74767c34f15e0eaee3682516e093296621efaeeb6d84e62d826587db9b559fb7c00c42aafbf4fdfd34460d1cf16edad3fd5f720f2b37f8bf52b26d7f73f79d5e build_darc-fix-alpine.patch " diff --git a/apk/v3.15/main/dotnet-3.1/README.md b/apk/v3.15/main/dotnet-3.1/README.md new file mode 100644 index 0000000..29d96b1 --- /dev/null +++ b/apk/v3.15/main/dotnet-3.1/README.md @@ -0,0 +1,58 @@ +# Description +APKBUILD for dotnet 3.1. + +# How to build +If built for the first time, make sure that _bootstrap=true, as build +needs either Microsoft bootstrap or repo's bootstrap to build +* abuild snapshot +* abuild -r +If you built with _bootstrap=true, push pkgrel by one and rebuild with +_bootstrap=false as build with bootstrap creates packages that confuse +dependencies between dotnet-3.1 and dotnet-5.0 + +# Known issues +* Build oddities here and there that the patches fix. In the process of +upstreaming to clear them out +* A custom version of snapshot is used because Darc considers the build +directory as the top-most git directory. Thus, an error occurs when one +attempts a build within aports (or other git repos). There's likely +a way to adjust this, but for now this will do. + + +# Patch notes + +## coreclr_fix-build-on-Alpine-edge-45352.patch + Fixes a build error for Alpine Linux. It has since been fixed in dotnet-5.0, + see issue dotnet/runtime 45352. +## corefx_fix-build-clang10.patch + Fixes a build error for clang 10 +## core-setup_rid-plat-generation-on-alpine-fix.patch + /src/corehost/build.sh generates wrong plat_rid on Alpine + Generated RID is expected to be alpine.x.xx-xx, while the computed RID + is linux-musl-xxx. This patches it by matching what's expected. +## coreclr_non-portable-distrorid-fix-alpine.patch + /init-distro-id.sh generates incorrect DistroRid on Alpine. + While the expected DistroRid (alpine-x.xx-xxx) should only include macro + version, init-distro-id.sh includes the micro version. This patches it + to cut off the trailing subversion off of VERSION_ID by treating it + the same way RHEL's VERSION_ID is treated. +## installer_generate-layout-core-setup-blob-path-fix.patch + blobs are written to $builddir/artifacts/obj/x64/Release/ + blobs/Runtime/3.1.20-alpine.3.15 while installer expects them in 3.1.20. + This patches /src/redist/targets/GenerateLayout.targets + to point to actual path. +## applications-insights_fix-net40-location.patch + Because paths on Linux are case sensitive. Applications insights looks + for /src/Core/Managed/net40 in net40 + while the repo has a Net40. Patch moves whatever is in Net40 to net40. +## build_coreclr-tools-path.patch + Various steps in the build process looks for ilasm in ildasm in + $builddir/src/dotnet-3.1/Tools/source-built/coreclr-tools/x64 while they are + built to $builddir/src/dotnet-3.1/Tools/source-built/coreclr-tools. + This patches to look for ilasm and ildasm + in correct path. +## build_darc-fix-alpine.patch + Darc has a segmentation fault on Alpine due to not chosing the correct + binary architecture. This patch deletes all the wrong ones so that it + is forced to chose the correct one. See issue dotnet/source-build #1868 + diff --git a/apk/v3.15/main/dotnet-3.1/build_applicationinsights-alternative-source.patch b/apk/v3.15/main/dotnet-3.1/build_applicationinsights-alternative-source.patch deleted file mode 100644 index 324b837..0000000 --- a/apk/v3.15/main/dotnet-3.1/build_applicationinsights-alternative-source.patch +++ /dev/null @@ -1,30 +0,0 @@ -From f8861719b8a4a64df0228bb63dcec72ceb08d562 Mon Sep 17 00:00:00 2001 -From: "build@apk-groulx" -Date: Thu, 3 Jun 2021 20:10:24 +0000 -Subject: [PATCH] Fixed problematic version of ApplicationInsights-dotnet, - pushed to v2.2.0 - ---- - eng/Version.Details.xml | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml -index 0b7309c6..bc626e4b 100644 ---- a/eng/Version.Details.xml -+++ b/eng/Version.Details.xml -@@ -73,9 +73,9 @@ - 0e89c2116ad28e404ba56c14d1c3f938caa25a01 - clicommandlineparser - -- -+ -- https://github.com/Microsoft/ApplicationInsights-dotnet -+ https://github.com/SergeyRazmyslov/ApplicationInsights-dotnet -- 53b80940842204f78708a538628288ff5d741a1d -+ 53b80940842204f78708a538628288ff5d741a1d - application-insights - - --- -2.30.2 - diff --git a/apk/v3.15/main/dotnet-3.1/build_coreclr-tools-path.patch b/apk/v3.15/main/dotnet-3.1/build_coreclr-tools-path.patch index dc21199..e89187f 100644 --- a/apk/v3.15/main/dotnet-3.1/build_coreclr-tools-path.patch +++ b/apk/v3.15/main/dotnet-3.1/build_coreclr-tools-path.patch @@ -1,15 +1,33 @@ -From b2148eeb23bd54513a11682c025976ee1798d682 Mon Sep 17 00:00:00 2001 +From 4603257752b01b60f1c1f2d1c2a77e07ae814647 Mon Sep 17 00:00:00 2001 From: "build@apk-groulx" -Date: Wed, 14 Jul 2021 04:15:54 +0000 -Subject: [PATCH 1/1] dotnet-source-build-coreclr-tools-path.patch +Date: Sun, 5 Dec 2021 15:46:08 +0000 +Subject: [PATCH 1/1] Ildasm and ilasm paths changed to where they actually + apper --- + Directory.Build.props | 4 ++-- repos/coreclr-portable.proj | 2 +- + repos/coreclr.common.props | 2 +- repos/coreclr.proj | 4 ++-- - 2 files changed, 3 insertions(+), 3 deletions(-) + 4 files changed, 6 insertions(+), 6 deletions(-) +diff --git a/Directory.Build.props b/Directory.Build.props +index f6a6f54..8247c3e 100644 +--- a/Directory.Build.props ++++ b/Directory.Build.props +@@ -133,8 +133,8 @@ + $(BaseOutputPath)aspnet-debug + $(AspNetRazorBuildServerLogDir)razor-build-server.log + invalid: ILAsm is not expected to be needed in the online build +- $(PrebuiltSourceBuiltPackagesPath)coreclr-tools/$(BuildArchitecture)/ilasm +- $(ToolPackageExtractDir)coreclr-tools/$(BuildArchitecture)/ildasm ++ $(PrebuiltSourceBuiltPackagesPath)coreclr-tools/ilasm ++ $(ToolPackageExtractDir)coreclr-tools/ildasm + invalid: ILDasm is not expected to be needed in the offline build + + $(BaseOutputPath)git-info/ diff --git a/repos/coreclr-portable.proj b/repos/coreclr-portable.proj -index 78adc146..378547ea 100644 +index 78adc14..378547e 100644 --- a/repos/coreclr-portable.proj +++ b/repos/coreclr-portable.proj @@ -19,7 +19,7 @@ @@ -22,7 +40,7 @@ index 78adc146..378547ea 100644 so dylib diff --git a/repos/coreclr.proj b/repos/coreclr.proj -index 7e67b283..6f7851b1 100644 +index 7e67b28..037c68a 100644 --- a/repos/coreclr.proj +++ b/repos/coreclr.proj @@ -15,11 +15,11 @@ @@ -40,5 +58,5 @@ index 7e67b283..6f7851b1 100644 so dylib -- -2.30.2 +2.34.0 diff --git a/apk/v3.15/main/dotnet-3.1/core-setup_attempt-fix-transport-runtime.patch b/apk/v3.15/main/dotnet-3.1/core-setup_attempt-fix-transport-runtime.patch deleted file mode 100644 index 2bcf1e2..0000000 --- a/apk/v3.15/main/dotnet-3.1/core-setup_attempt-fix-transport-runtime.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 0c83f6ee54f8eb40a9ed229ab3f11aa821b09dc5 Mon Sep 17 00:00:00 2001 -From: "build@apk-groulx" -Date: Wed, 14 Jul 2021 04:10:40 +0000 -Subject: [PATCH 1/1] Attempt at fixing unfindable version of - transport.runtime.linux-x64.microsoft.netcore.runtime.coreclr - ---- - src/pkg/packaging-tools/framework.dependency.targets | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/pkg/packaging-tools/framework.dependency.targets b/src/pkg/packaging-tools/framework.dependency.targets -index 3c34242d..a73ea003 100644 ---- a/src/pkg/packaging-tools/framework.dependency.targets -+++ b/src/pkg/packaging-tools/framework.dependency.targets -@@ -238,7 +238,7 @@ - <_runtimePackageId>transport.runtime.$(PackageRID).$(MicrosoftNETCoreRuntimeCoreCLRPackage.ToLowerInvariant()) - <_runtimePackageVersion>$(MicrosoftNETCoreRuntimeCoreCLRPackageVersion) - -- <_runtimePackageDir>$(PackagesDir)$(_runtimePackageId)/$(_runtimePackageVersion)/ -+ <_runtimePackageDir>$(PackagesDir)$(_runtimePackageId)/$(MicrosoftNETCoreRuntimeCoreCLRPackageVersion)/ - <_jitPackageDir>$(PackagesDir)transport.runtime.$(PackageRID).microsoft.netcore.jit/$(MicrosoftNETCoreRuntimeCoreCLRPackageVersion)/ - <_corefxPackageDir>$(PackagesDir)runtime.$(PackageRID).$(MicrosoftPrivateCoreFxNETCoreAppPackage.ToLowerInvariant())/$(MicrosoftPrivateCoreFxNETCoreAppPackageVersion)/ - <_winmdPackageDir>$(PackagesDir)$(MicrosoftTargetingPackPrivateWinRTPackage.ToLowerInvariant())/$(MicrosoftTargetingPackPrivateWinRTPackageVersion)/ --- -2.30.2 - diff --git a/apk/v3.15/main/dotnet-3.1/installer_hack-for-building-on-alpine-with-core-setup-rid-patc.patch b/apk/v3.15/main/dotnet-3.1/installer_generate-layout-core-setup-blob-path-fix.patch similarity index 55% rename from apk/v3.15/main/dotnet-3.1/installer_hack-for-building-on-alpine-with-core-setup-rid-patc.patch rename to apk/v3.15/main/dotnet-3.1/installer_generate-layout-core-setup-blob-path-fix.patch index 7678e43..f8b2294 100644 --- a/apk/v3.15/main/dotnet-3.1/installer_hack-for-building-on-alpine-with-core-setup-rid-patc.patch +++ b/apk/v3.15/main/dotnet-3.1/installer_generate-layout-core-setup-blob-path-fix.patch @@ -1,23 +1,22 @@ -From 4f60524a67ef11744dfcf5b5a9bd098938b0ca3b Mon Sep 17 00:00:00 2001 +From 94e8b5473285f0ae97204c726b2f8119f178f197 Mon Sep 17 00:00:00 2001 From: "build@apk-groulx" -Date: Sat, 4 Dec 2021 20:18:40 +0000 -Subject: [PATCH 1/1] Hack for building on alpine with core-setup rid patch +Date: Sun, 5 Dec 2021 15:33:35 +0000 +Subject: [PATCH 1/1] GenerateLayout CoreSetup blob path fix --- - src/redist/targets/GenerateLayout.targets | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) + src/redist/targets/GenerateLayout.targets | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/redist/targets/GenerateLayout.targets b/src/redist/targets/GenerateLayout.targets -index 42277cf98..ae9ade23c 100644 +index eb4e312c0..240dbf403 100644 --- a/src/redist/targets/GenerateLayout.targets +++ b/src/redist/targets/GenerateLayout.targets -@@ -12,7 +12,8 @@ +@@ -12,7 +12,7 @@ - $(MicrosoftAspNetCoreDeveloperCertificatesXPlatPackageVersion) -- $(MicrosoftNETCoreAppInternalPackageVersion) -+ alpine.3.15 -+ $(MicrosoftNETCoreAppRuntimePackageVersion)-$(CoreSetupBlobRid) + $(MicrosoftAspNetCoreAppRuntimewinx64PackageVersion) +- $(MicrosoftNETCoreAppRuntimePackageVersion) ++ $(MicrosoftNETCoreAppRuntimePackageVersion)-$([System.Text.RegularExpressions.Regex]::Replace($(Rid), "-.*", "")) 3.1.0-rtm.19565.2 diff --git a/apk/v3.15/main/dotnet-3.1/xliff-tasks_use-netcoreapp21.patch b/apk/v3.15/main/dotnet-3.1/xliff-tasks_use-netcoreapp21.patch deleted file mode 100644 index 1129b81..0000000 --- a/apk/v3.15/main/dotnet-3.1/xliff-tasks_use-netcoreapp21.patch +++ /dev/null @@ -1,67 +0,0 @@ -From d5749e5d22db7930bb2a1c7b53dae3d3840c03dc Mon Sep 17 00:00:00 2001 -From: "build@apk-groulx" -Date: Sat, 10 Jul 2021 19:32:29 +0000 -Subject: [PATCH] Updated to netcore 2.1 - ---- - src/XliffTasks/XliffTasks.csproj | 7 ++++--- - src/XliffTasks/build/XliffTasks.targets | 5 ++--- - 2 files changed, 6 insertions(+), 6 deletions(-) - -diff --git a/src/XliffTasks/XliffTasks.csproj b/src/XliffTasks/XliffTasks.csproj -index d967ac3..a8332e9 100644 ---- a/src/XliffTasks/XliffTasks.csproj -+++ b/src/XliffTasks/XliffTasks.csproj -@@ -3,14 +3,15 @@ - - - -- netcoreapp2.0;net46 -- netcoreapp2.0 -+ netcoreapp2.1;net46 -+ netcoreapp2.1 - tools - false - true - true - MIT - 7.2 -+ true - - - -@@ -23,7 +24,7 @@ - - - -- -+ - - - -diff --git a/src/XliffTasks/build/XliffTasks.targets b/src/XliffTasks/build/XliffTasks.targets -index 40df6d1..a9c09cf 100644 ---- a/src/XliffTasks/build/XliffTasks.targets -+++ b/src/XliffTasks/build/XliffTasks.targets -@@ -4,8 +4,7 @@ - - - -- $(MSBuildAllProjects);$(MSBuildThisFileFullPath) -- $(MSBuildThisFileDirectory)..\tools\netcoreapp2.0\ -+ $(MSBuildThisFileDirectory)..\tools\netcoreapp2.1\ - $(MSBuildThisFileDirectory)..\tools\net46\ - $(XliffTasksDirectory)XliffTasks.dll - -@@ -64,7 +63,7 @@ - /> - - - --- -2.30.2 -