[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

@ -1,373 +1,319 @@
# Maintainer: Antoine Martin (ayakael) <dev@ayakael.net>
# Maintainer: Antoine Martin (ayakael) <dev@ayakael.net>
# Based on Archlinux PKGBUILD by:
# Maxime Gauduin <alucryd@archlinux.org>
# Kristian Mosegaard <kristian@mosen.me>
# Kristian Mosegaard <kristian@mosen.me>
# Max Liebkies <mail@maxliebkies.de>
# Krzysztof Bogacki <krzysztof.bogacki@leancode.pl>
# 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
"

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>
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 @@
<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
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
<AssemblyExtension Condition="'$(TargetOS)' == 'FreeBSD'">so</AssemblyExtension>
<AssemblyExtension Condition="'$(TargetOS)' == 'OSX'">dylib</AssemblyExtension>
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
<AssemblyExtension Condition="'$(TargetOS)' == 'FreeBSD'">so</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>
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 @@
<PropertyGroup>
<!-- Blob storage directories are not stabilized, so these must refer to a package that does not stabilize -->
<AspNetCoreBlobVersion>$(MicrosoftAspNetCoreDeveloperCertificatesXPlatPackageVersion)</AspNetCoreBlobVersion>
- <CoreSetupBlobVersion>$(MicrosoftNETCoreAppInternalPackageVersion)</CoreSetupBlobVersion>
+ <CoreSetupBlobRid>alpine.3.15</CoreSetupBlobRid>
+ <CoreSetupBlobVersion>$(MicrosoftNETCoreAppRuntimePackageVersion)-$(CoreSetupBlobRid)</CoreSetupBlobVersion>
<AspNetCoreBlobVersion>$(MicrosoftAspNetCoreAppRuntimewinx64PackageVersion)</AspNetCoreBlobVersion>
- <CoreSetupBlobVersion>$(MicrosoftNETCoreAppRuntimePackageVersion)</CoreSetupBlobVersion>
+ <CoreSetupBlobVersion>$(MicrosoftNETCoreAppRuntimePackageVersion)-$([System.Text.RegularExpressions.Regex]::Replace($(Rid), "-.*", ""))</CoreSetupBlobVersion>
<!-- 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>

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