[main/dotnet-3.1] APKBUILD cleanup

This commit is contained in:
build@apk-groulx 2021-12-05 18:24:01 +00:00
parent adcbde6f85
commit 40009f07d1
7 changed files with 328 additions and 430 deletions

View file

@ -7,22 +7,15 @@
# Krzysztof Bogacki <krzysztof.bogacki@leancode.pl> # Krzysztof Bogacki <krzysztof.bogacki@leancode.pl>
# Build vars # Build vars
_bootstrap=true _bootstrap=false
_bootstrap_sdk='3.1.115' _bootstrap_sdk=3.1.20-r2
_bootstrap_runtime='3.1.1' _bootstrap_runtime=3.1.20-r2
_llvmver=12 _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 pkgname=dotnet-3.1
pkgdesc='The .NET Core SDK' pkgdesc='The .NET Core SDK'
pkgver=3.1.20 pkgver=3.1.20
pkgrel=0 pkgrel=2
arch='x86_64' arch='x86_64'
url=https://www.microsoft.com/net/core url=https://www.microsoft.com/net/core
license='MIT' license='MIT'
@ -47,139 +40,80 @@ makedepends="
zlib-dev zlib-dev
" "
if [ ${_bootstrap} != 'true' ]; then if [ $_bootstrap != 'true' ]; then
makedepends=" makedepends="
${makedepends} $makedepends
dotnet-bootstrap-sdk-3.1 dotnet-bootstrap-sdk-3.1
dotnet-bootstrap-runtime-3.1 dotnet-bootstrap-runtime-3.1
" "
fi 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" subpackages="
_gittag=v${pkgver}-runtime 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 _giturl=https://github.com/dotnet/source-build
options="!check !archcheck" options="!check"
source=" source="
$pkgname-$pkgver.git.zip $pkgname-$pkgver.git.zip
dotnet.sh dotnet.sh
" applications-insights_fix-net40-location.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_fix-build-on-Alpine-edge-45352.patch
coreclr_non-portable-distrorid-fix-alpine.patch coreclr_non-portable-distrorid-fix-alpine.patch
core-setup_rid-plat-generation-on-alpine-fix.patch core-setup_rid-plat-generation-on-alpine-fix.patch
installer_hack-for-building-on-alpine-with-core-setup-rid-patc.patch installer_generate-layout-core-setup-blob-path-fix.patch
corefx_fix-build-clang10.patch corefx_fix-build-clang10.patch
corefx_added-alpine-315-rid.patch corefx_added-alpine-315-rid.patch
build_coreclr-tools-path.patch
build_darc-fix-alpine.patch build_darc-fix-alpine.patch
" "
builddir="$srcdir/$pkgname" 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() { snapshot() {
mkdir -p "$srcdir" mkdir -p "$srcdir"
cd "${srcdir}" cd "$srcdir"
if ! [ -d $pkgname.git ]; then if ! [ -d $pkgname.git ]; then
git clone $_giturl $pkgname.git || return 1 git clone $_giturl $pkgname.git
cd $pkgname.git cd $pkgname.git
else else
cd $pkgname.git cd $pkgname.git
git fetch || return 1 git fetch
fi fi
echo "Repo archive" echo "Repo archive"
mkfifo $pkgname-$pkgver.git mkfifo $pkgname-$_gittag.git
git bundle create - $_gittag > $pkgname-$pkgver.git & git bundle create - $_gittag > $pkgname-$_gittag.git &
zip --fifo "${SRCDEST}"/$pkgname-$pkgver.git.zip $pkgname-$pkgver.git zip --fifo "$SRCDEST"/$pkgname-$_gittag.git.zip $pkgname-$_gittag.git
rm $pkgname-$pkgver.git rm $pkgname-$_gittag.git
ln -s "$SRCDEST"/$pkgname-$pkgver.git.zip "$startdir"/$pkgname-$pkgver.git.zip ln -s "$SRCDEST"/$pkgname-$_gittag.git.zip "$startdir"/$pkgname-$_gittag.git.zip
} }
unpack() { unpack() {
default_unpack default_unpack
cd "${srcdir}" cd "$srcdir"
git clone $pkgname-$pkgver.git $pkgname --branch $_gittag 1>/dev/null 2>&1 git clone $pkgname-$_gittag.git $pkgname --branch $_gittag 1>/dev/null 2>&1
} }
prepare() { default_prepare() {
local i failed= local i failed=
[ -n "$builddir" -a -d "$builddir" ] && cd "$builddir" [ -n "$builddir" -a -d "$builddir" ] && cd "$builddir"
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 if ! have_patches; then
return 0 return 0
fi fi
[ -d "$builddir" ] || { error "Is \$builddir set correctly?"; return 1; } [ -d "$builddir" ] || { error "Is \$builddir set correctly?"; return 1; }
msg "Deploying patches" msg "Deploying patches"
for i in $source; do for i in $source; do
case ${i%::*} in case ${i%::*} in
@ -187,14 +121,15 @@ prepare() {
patch ${patch_args:--p1} -i "$srcdir/$(filename_from_uri $i)" || failed="$failed $i" patch ${patch_args:--p1} -i "$srcdir/$(filename_from_uri $i)" || failed="$failed $i"
;; ;;
*.patch) *.patch)
local _package=$(echo ${i} | sed 's|_.*||') local _package=$(echo $i | sed 's|_.*||')
local _patch=$(echo ${i} | sed "s|${_package}_||") local _patch=$(echo $i | sed "s|"$_package"_||")
echo "cp $_patch -> $_package" echo "cp $_patch -> $_package"
[ -d patches/$_package ] || mkdir patches/$_package [ -d patches/$_package ] || mkdir patches/$_package
cp "$srcdir"/"$i" patches/${_package}/${_patch} cp "$srcdir"/"$i" patches/$_package/$_patch
;; ;;
esac esac
done done
if [ -z "$failed" ]; then if [ -z "$failed" ]; then
return 0 return 0
fi fi
@ -205,29 +140,34 @@ prepare() {
return 1 return 1
} }
prepare() {
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
# disable warnings
sed -i 's|skiptests|skiptests ignorewarnings|' repos/runtime.common.props
}
pkgver() { 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 _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 _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() { 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 \ ./build.sh \
--with-sdk ../$pkgname \ --with-sdk ../$pkgname \
/p:ArchiveDownloadedPackages=true \ /p:ArchiveDownloadedPackages=true \
@ -248,7 +188,7 @@ package() {
aspnet-targeting-pack-3.1 aspnet-targeting-pack-3.1
netstandard-targeting-pack netstandard-targeting-pack
' '
mkdir -p "${pkgdir}" mkdir -p "$pkgdir"
} }
sdk() { sdk() {
@ -260,18 +200,13 @@ sdk() {
netstandard-targeting-pack netstandard-targeting-pack
aspnet-targeting-pack-3.1 aspnet-targeting-pack-3.1
' '
# 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" 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 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 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 ln -s dotnet-host "$subpkgdir"/usr/share/licenses/dotnet-sdk-3.1
} }
@ -286,11 +221,11 @@ host() {
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-*.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 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/dotnet "$subpkgdir"/usr/bin/dotnet
ln -s /usr/share/dotnet/host/fxr/${pkgver}/libhostfxr.so "${subpkgdir}"/usr/lib/libhostfxr.so 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/ install -Dm 644 "$srcdir"/dotnet.sh -t "$subpkgdir"/etc/profile.d/
} }
runtime() { runtime() {
@ -312,29 +247,26 @@ runtime() {
zlib zlib
openssl openssl
' '
# 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" 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 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 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 ln -s dotnet-host "$subpkgdir"/usr/share/licenses/dotnet-runtime-3.1
} }
aspnet_runtime() { aspnet_runtime() {
pkgdesc='The ASP.NET Core runtime' pkgdesc='The ASP.NET Core runtime'
depends='dotnet-runtime-3.1' 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 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 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 ln -s dotnet-host "$subpkgdir"/usr/share/licenses/aspnet-runtime-3.1
} }
targeting_pack() { targeting_pack() {
@ -344,30 +276,44 @@ targeting_pack() {
cd "$builddir"/artifacts/x64/Release cd "$builddir"/artifacts/x64/Release
install -dm 755 "$subpkgdir"/usr/share/dotnet "$subpkgdir"/usr/share/licenses 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 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 ln -s dotnet-host "$subpkgdir"/usr/share/licenses/dotnet-targeting-pack-3.1
} }
aspnet_targeting_pack() { netstandard_targeting_pack() {
pkgdesc='The ASP.NET Core targeting pack' pkgdesc='The .NET Standard 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 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 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/aspnet-targeting-pack-3.1 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
'
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/Microsoft.AspNetCore.App.Ref
ln -s dotnet-host "$subpkgdir"/usr/share/licenses/aspnet-targeting-pack-3.1
} }
# vim: ts=2 sw=2 et:
sha512sums=" sha512sums="
9e5e2bccb4338a18996e53e80c45525b3ba332d11cd896d1ba72bd8406735281aae7b98f614212a99475621000ca3fa5daf2d639953b163196aa2884c8773f2e dotnet-3.1-3.1.20.git.zip 9e5e2bccb4338a18996e53e80c45525b3ba332d11cd896d1ba72bd8406735281aae7b98f614212a99475621000ca3fa5daf2d639953b163196aa2884c8773f2e dotnet-3.1-3.1.20.git.zip
e61b9e3e5a2305646a616d598378230c9755c5dd5363692cc363f8f4add3807563c324dd86f3a7ae9d358c82d730608e7b293935a2b6c81c0c0f62d752a0a1cf dotnet.sh e61b9e3e5a2305646a616d598378230c9755c5dd5363692cc363f8f4add3807563c324dd86f3a7ae9d358c82d730608e7b293935a2b6c81c0c0f62d752a0a1cf dotnet.sh
0469d571d0f7634d3794761f04e1cbff9d27d642d134a11a13560574280e5cab6f366eb8820e61a449eca99470fdea8d9f6a7d97b633059b2fe25257ed1579e6 applications-insights_fix-net40-location.patch
b3475c0b727c5258c7bc6f4c53305f9ced991e57f9f46a2ad323bed40627662eb8bf57286bf6a22d9a22bfdea9282da4630dd094166f0805c783aece5df5dff3 coreclr_fix-build-on-Alpine-edge-45352.patch b3475c0b727c5258c7bc6f4c53305f9ced991e57f9f46a2ad323bed40627662eb8bf57286bf6a22d9a22bfdea9282da4630dd094166f0805c783aece5df5dff3 coreclr_fix-build-on-Alpine-edge-45352.patch
6ac9bdbc47b24cafbb3386e21756c540313680fed6994791ff5a3c75b422742ecf102d7736ac79de6d7f1a0892464f83cbab181ed505e4d827dc7f113e3a4017 coreclr_non-portable-distrorid-fix-alpine.patch 6ac9bdbc47b24cafbb3386e21756c540313680fed6994791ff5a3c75b422742ecf102d7736ac79de6d7f1a0892464f83cbab181ed505e4d827dc7f113e3a4017 coreclr_non-portable-distrorid-fix-alpine.patch
983a81bbcef45fbcd9a44187c3e7565631c8e72fca8427958b23097e7b291148e6f8656fe5619b7f5270311f47379498aaaa82919845bac96d02c764f95ac1f5 core-setup_rid-plat-generation-on-alpine-fix.patch 720fefc20ef4985917cfd243bbef427862af9ea0156cc6c78502daf8da5f6293bba0a1a5180c88dc145921592d533a8508b30eab2f388be1be7d6d10b6ab91d0 core-setup_rid-plat-generation-on-alpine-fix.patch
ccdfd8e4e726bf626e7d922ecb79de70d2852875b6f1c66c5d72d9605aac5701e3ab45e546b8d266cc6b83ce3a88bf5d79e1675a06a7b41dc7cdce7e4cb79c71 installer_hack-for-building-on-alpine-with-core-setup-rid-patc.patch e67f4f92659892aa65de7192dfbbf2cafab17e1a4ef60e4981507c7309da61b866864a18b0452e47cee2ce9253032c3f4c39e4426b7b2216ffa73236239c9669 installer_generate-layout-core-setup-blob-path-fix.patch
eb107ae9765d9eebe2f2ab4cebda4d3f76d683e21d88f806bb008e29051ad196ea637d410075b7ed61f4997a22085e4c36021860b82c4c0822c23ba9ded9656a corefx_fix-build-clang10.patch eb107ae9765d9eebe2f2ab4cebda4d3f76d683e21d88f806bb008e29051ad196ea637d410075b7ed61f4997a22085e4c36021860b82c4c0822c23ba9ded9656a corefx_fix-build-clang10.patch
72092a7323bb91e8d011ad09cefcc3fd0e4ebfc7c258895d454cc1d015eda36c7de97b09af76a492fa689f39b9216435faace77edd0ca75d8e39a34ed6641840 corefx_added-alpine-315-rid.patch 72092a7323bb91e8d011ad09cefcc3fd0e4ebfc7c258895d454cc1d015eda36c7de97b09af76a492fa689f39b9216435faace77edd0ca75d8e39a34ed6641840 corefx_added-alpine-315-rid.patch
2334e36d5bb24b9b834800407c6110c09262af20a4353e92ef1897855f27eab117270dda0637071010a7a5ac8c4a5d4032240a7b659d8576801b503b66b14ab7 build_coreclr-tools-path.patch
74767c34f15e0eaee3682516e093296621efaeeb6d84e62d826587db9b559fb7c00c42aafbf4fdfd34460d1cf16edad3fd5f720f2b37f8bf52b26d7f73f79d5e build_darc-fix-alpine.patch 74767c34f15e0eaee3682516e093296621efaeeb6d84e62d826587db9b559fb7c00c42aafbf4fdfd34460d1cf16edad3fd5f720f2b37f8bf52b26d7f73f79d5e build_darc-fix-alpine.patch
" "

View file

@ -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
<dotnet/core-setup>/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
<dotnet/coreclr>/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
<dotnet/core-setup> 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 <dotnet/installer>/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 <dotnet/applications-insights>/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 <dotnet/source-build> 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

View file

@ -1,30 +0,0 @@
From f8861719b8a4a64df0228bb63dcec72ceb08d562 Mon Sep 17 00:00:00 2001
From: "build@apk-groulx" <build@apk-groulx.praxis>
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 @@
<Sha>0e89c2116ad28e404ba56c14d1c3f938caa25a01</Sha>
<RepoName>clicommandlineparser</RepoName>
</Dependency>
- <Dependency Name="Microsoft.ApplicationInsights" Version="2.0.0">
+ <Dependency Name="Microsoft.ApplicationInsights" Version="2.0.0">
- <Uri>https://github.com/Microsoft/ApplicationInsights-dotnet</Uri>
+ <Uri>https://github.com/SergeyRazmyslov/ApplicationInsights-dotnet</Uri>
- <Sha>53b80940842204f78708a538628288ff5d741a1d</Sha>
+ <Sha>53b80940842204f78708a538628288ff5d741a1d</Sha>
<RepoName>application-insights</RepoName>
</Dependency>
<!-- once https://github.com/dotnet/arcade/issues/3099 is fixed this should have a coherency parent. -->
--
2.30.2

View file

@ -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" <build@apk-groulx.praxis> From: "build@apk-groulx" <build@apk-groulx.praxis>
Date: Wed, 14 Jul 2021 04:15:54 +0000 Date: Sun, 5 Dec 2021 15:46:08 +0000
Subject: [PATCH 1/1] dotnet-source-build-coreclr-tools-path.patch 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-portable.proj | 2 +-
repos/coreclr.common.props | 2 +-
repos/coreclr.proj | 4 ++-- 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 @@
<AspNetRazorBuildServerLogDir>$(BaseOutputPath)aspnet-debug</AspNetRazorBuildServerLogDir>
<AspNetRazorBuildServerLogFile>$(AspNetRazorBuildServerLogDir)razor-build-server.log</AspNetRazorBuildServerLogFile>
<IlasmPath Condition="'$(OfflineBuild)' != 'true'">invalid: ILAsm is not expected to be needed in the online build</IlasmPath>
- <IlasmPath Condition="'$(OfflineBuild)' == 'true'">$(PrebuiltSourceBuiltPackagesPath)coreclr-tools/$(BuildArchitecture)/ilasm</IlasmPath>
- <IldasmPath Condition="'$(OfflineBuild)' != 'true'">$(ToolPackageExtractDir)coreclr-tools/$(BuildArchitecture)/ildasm</IldasmPath>
+ <IlasmPath Condition="'$(OfflineBuild)' == 'true'">$(PrebuiltSourceBuiltPackagesPath)coreclr-tools/ilasm</IlasmPath>
+ <IldasmPath Condition="'$(OfflineBuild)' != 'true'">$(ToolPackageExtractDir)coreclr-tools/ildasm</IldasmPath>
<IldasmPath Condition="'$(OfflineBuild)' == 'true'">invalid: ILDasm is not expected to be needed in the offline build</IldasmPath>
<!-- Dir where git info is generated during online builds. -->
<GitInfoOutputDir>$(BaseOutputPath)git-info/</GitInfoOutputDir>
diff --git a/repos/coreclr-portable.proj b/repos/coreclr-portable.proj 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 --- a/repos/coreclr-portable.proj
+++ b/repos/coreclr-portable.proj +++ b/repos/coreclr-portable.proj
@@ -19,7 +19,7 @@ @@ -19,7 +19,7 @@
@ -22,7 +40,7 @@ index 78adc146..378547ea 100644
<AssemblyExtension Condition="'$(TargetOS)' == 'FreeBSD'">so</AssemblyExtension> <AssemblyExtension Condition="'$(TargetOS)' == 'FreeBSD'">so</AssemblyExtension>
<AssemblyExtension Condition="'$(TargetOS)' == 'OSX'">dylib</AssemblyExtension> <AssemblyExtension Condition="'$(TargetOS)' == 'OSX'">dylib</AssemblyExtension>
diff --git a/repos/coreclr.proj b/repos/coreclr.proj diff --git a/repos/coreclr.proj b/repos/coreclr.proj
index 7e67b283..6f7851b1 100644 index 7e67b28..037c68a 100644
--- a/repos/coreclr.proj --- a/repos/coreclr.proj
+++ b/repos/coreclr.proj +++ b/repos/coreclr.proj
@@ -15,11 +15,11 @@ @@ -15,11 +15,11 @@
@ -40,5 +58,5 @@ index 7e67b283..6f7851b1 100644
<AssemblyExtension Condition="'$(TargetOS)' == 'FreeBSD'">so</AssemblyExtension> <AssemblyExtension Condition="'$(TargetOS)' == 'FreeBSD'">so</AssemblyExtension>
<AssemblyExtension Condition="'$(TargetOS)' == 'OSX'">dylib</AssemblyExtension> <AssemblyExtension Condition="'$(TargetOS)' == 'OSX'">dylib</AssemblyExtension>
-- --
2.30.2 2.34.0

View file

@ -1,26 +0,0 @@
From 0c83f6ee54f8eb40a9ed229ab3f11aa821b09dc5 Mon Sep 17 00:00:00 2001
From: "build@apk-groulx" <build@apk-groulx.praxis>
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())</_runtimePackageId>
<_runtimePackageVersion>$(MicrosoftNETCoreRuntimeCoreCLRPackageVersion)</_runtimePackageVersion>
- <_runtimePackageDir>$(PackagesDir)$(_runtimePackageId)/$(_runtimePackageVersion)/</_runtimePackageDir>
+ <_runtimePackageDir>$(PackagesDir)$(_runtimePackageId)/$(MicrosoftNETCoreRuntimeCoreCLRPackageVersion)/</_runtimePackageDir>
<_jitPackageDir>$(PackagesDir)transport.runtime.$(PackageRID).microsoft.netcore.jit/$(MicrosoftNETCoreRuntimeCoreCLRPackageVersion)/</_jitPackageDir>
<_corefxPackageDir>$(PackagesDir)runtime.$(PackageRID).$(MicrosoftPrivateCoreFxNETCoreAppPackage.ToLowerInvariant())/$(MicrosoftPrivateCoreFxNETCoreAppPackageVersion)/</_corefxPackageDir>
<_winmdPackageDir>$(PackagesDir)$(MicrosoftTargetingPackPrivateWinRTPackage.ToLowerInvariant())/$(MicrosoftTargetingPackPrivateWinRTPackageVersion)/</_winmdPackageDir>
--
2.30.2

View file

@ -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" <build@apk-groulx.praxis> From: "build@apk-groulx" <build@apk-groulx.praxis>
Date: Sat, 4 Dec 2021 20:18:40 +0000 Date: Sun, 5 Dec 2021 15:33:35 +0000
Subject: [PATCH 1/1] Hack for building on alpine with core-setup rid patch Subject: [PATCH 1/1] GenerateLayout CoreSetup blob path fix
--- ---
src/redist/targets/GenerateLayout.targets | 3 ++- src/redist/targets/GenerateLayout.targets | 2 +-
1 file changed, 2 insertions(+), 1 deletion(-) 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/redist/targets/GenerateLayout.targets b/src/redist/targets/GenerateLayout.targets 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 --- a/src/redist/targets/GenerateLayout.targets
+++ b/src/redist/targets/GenerateLayout.targets +++ b/src/redist/targets/GenerateLayout.targets
@@ -12,7 +12,8 @@ @@ -12,7 +12,7 @@
<PropertyGroup> <PropertyGroup>
<!-- Blob storage directories are not stabilized, so these must refer to a package that does not stabilize --> <!-- Blob storage directories are not stabilized, so these must refer to a package that does not stabilize -->
<AspNetCoreBlobVersion>$(MicrosoftAspNetCoreDeveloperCertificatesXPlatPackageVersion)</AspNetCoreBlobVersion> <AspNetCoreBlobVersion>$(MicrosoftAspNetCoreAppRuntimewinx64PackageVersion)</AspNetCoreBlobVersion>
- <CoreSetupBlobVersion>$(MicrosoftNETCoreAppInternalPackageVersion)</CoreSetupBlobVersion> - <CoreSetupBlobVersion>$(MicrosoftNETCoreAppRuntimePackageVersion)</CoreSetupBlobVersion>
+ <CoreSetupBlobRid>alpine.3.15</CoreSetupBlobRid> + <CoreSetupBlobVersion>$(MicrosoftNETCoreAppRuntimePackageVersion)-$([System.Text.RegularExpressions.Regex]::Replace($(Rid), "-.*", ""))</CoreSetupBlobVersion>
+ <CoreSetupBlobVersion>$(MicrosoftNETCoreAppRuntimePackageVersion)-$(CoreSetupBlobRid)</CoreSetupBlobVersion>
<!-- Change these individually to or $(CoreSetupBlobVersion), $(AspNetCoreBlobVersion), or appropriate fixed version depending if corresponding .Ref packages are unpinned. --> <!-- Change these individually to or $(CoreSetupBlobVersion), $(AspNetCoreBlobVersion), or appropriate fixed version depending if corresponding .Ref packages are unpinned. -->
<NETCoreAppTargetingPackBlobVersion Condition="'$(Rid)' != 'win-arm64'">3.1.0-rtm.19565.2</NETCoreAppTargetingPackBlobVersion> <NETCoreAppTargetingPackBlobVersion Condition="'$(Rid)' != 'win-arm64'">3.1.0-rtm.19565.2</NETCoreAppTargetingPackBlobVersion>

View file

@ -1,67 +0,0 @@
From d5749e5d22db7930bb2a1c7b53dae3d3840c03dc Mon Sep 17 00:00:00 2001
From: "build@apk-groulx" <build@apk-groulx.praxis>
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 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
- <TargetFrameworks>netcoreapp2.0;net46</TargetFrameworks>
- <TargetFrameworks Condition="'$(OS)' != 'Windows_NT'">netcoreapp2.0</TargetFrameworks>
+ <TargetFrameworks>netcoreapp2.1;net46</TargetFrameworks>
+ <TargetFrameworks Condition="'$(OS)' != 'Windows_NT'">netcoreapp2.1</TargetFrameworks>
<BuildOutputTargetFolder>tools</BuildOutputTargetFolder>
<EnableDefaultItems>false</EnableDefaultItems>
<DisableImplicitFrameworkReferences>true</DisableImplicitFrameworkReferences>
<IsPackable>true</IsPackable>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
<LangVersion>7.2</LangVersion>
+ <SuppressDependenciesWhenPacking>true</SuppressDependenciesWhenPacking>
</PropertyGroup>
<ItemGroup>
@@ -23,7 +24,7 @@
<InternalsVisibleTo Include="XliffTasks.Tests" />
</ItemGroup>
- <ItemGroup Condition="'$(TargetFramework)' == 'netcoreapp2.0'">
+ <ItemGroup Condition="'$(TargetFramework)' == 'netcoreapp2.1'">
<PackageReference Include="Microsoft.Build.Framework" Version="15.1.1012" PrivateAssets="All" />
<PackageReference Include="Microsoft.Build.Utilities.Core" Version="15.1.1012" PrivateAssets="All" />
<PackageReference Include="Microsoft.NETCore.App" Version="2.0.0" PrivateAssets="All" />
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 @@
<Project>
<PropertyGroup>
- <MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
- <XliffTasksDirectory Condition="'$(MSBuildRuntimeType)' == 'Core'">$(MSBuildThisFileDirectory)..\tools\netcoreapp2.0\</XliffTasksDirectory>
+ <XliffTasksDirectory Condition="'$(MSBuildRuntimeType)' == 'Core'">$(MSBuildThisFileDirectory)..\tools\netcoreapp2.1\</XliffTasksDirectory>
<XliffTasksDirectory Condition="'$(MSBuildRuntimeType)' != 'Core'">$(MSBuildThisFileDirectory)..\tools\net46\</XliffTasksDirectory>
<XliffTasksAssembly>$(XliffTasksDirectory)XliffTasks.dll</XliffTasksAssembly>
</PropertyGroup>
@@ -64,7 +63,7 @@
/>
<Target Name="EnsureXlfIsUpToDate"
- Condition="'$(ErrorOnOutOfDateXlf)' == 'true'"
+ Condition="'$(ErrorOnOutOfDateXlf)' == 'true' and '$(DesignTimeBuild)' != 'true' and '$(BuildingProject)' != 'false'"
DependsOnTargets="_DisallowXlfModification;_UpdateXlf"
/>
--
2.30.2