[main/dotnet5][main/dotnet5-stage0][main/dotnet31][main/dotnet31-stage0] Conversion of dotnet-3.1 / dotnet-5.0 to dotnet31 / dotnet5 implementation with -stage0 versions of each

This commit is contained in:
build@apk-groulx 2021-12-13 05:29:35 +00:00
parent 340c7e636d
commit 015c0dd5aa
28 changed files with 421 additions and 175 deletions

View file

@ -0,0 +1,87 @@
# Maintainer: Antoine Martin (ayakael) <dev@ayakael.net>
pkgname=dotnet31-stage0
pkgdesc='The .NET Core SDK'
pkgver=3.1.120
pkgrel=0
arch='x86_64 aarch64 armv7'
url=https://www.microsoft.com/net/core
license='MIT'
makedepends="
gcc
libcurl
krb5-libs
libintl
libstdc++
lttng-ust
zlib
"
subpackages="
dotnet31-stage0-runtime:runtime
dotnet31-stage0-sdk:sdk
dotnet31-stage0-host:host
"
options="!check !tracedeps !archcheck"
case $CARCH in
x86_64)_arch=x64;;
aarch64)_arch=arm64;;
armv7)_arch=arm;;
esac
source="
https://dotnetcli.azureedge.net/dotnet/Sdk/$pkgver/dotnet-sdk-$pkgver-linux-musl-$_arch.tar.gz
dotnet.sh
"
builddir="$srcdir"
package() {
export _runtimever=$("$srcdir"/dotnet --list-runtimes | awk '($1 == "Microsoft.NETCore.App"){print $2}')
export _sdkver=$("$srcdir"/dotnet --list-sdks | awk '{print $1}')
depends='
dotnet31-stage0-sdk
dotnet31-stage0-runtime
dotnet31-stage0-host
'
mkdir -p "$pkgdir"
}
host() {
pkgdesc='A generic driver for the .NET Core Command Line Interface'
pkgver=$_runtimever
provides=dotnet-host
provider_priority=1
depends='gcc musl'
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 "$srcdir"/dotnet-sdk-*.tar.gz -C "$subpkgdir"/usr/share/dotnet/ --no-same-owner dotnet host
bsdtar -xf "$srcdir"/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
install -Dm 644 "$srcdir"/dotnet.sh -t "$subpkgdir"/etc/profile.d/
}
sdk() {
provides=dotnet31-bootstrap-sdk
pkgver=$_sdkver
provider_priority=1
install -dm 755 "$subpkgdir"/usr/share/dotnet "$subpkgdir"/usr/share/licenses
bsdtar -xf "$srcdir"/dotnet-sdk-*.tar.gz -C "$subpkgdir"/usr/share/dotnet/ --no-same-owner sdk templates
ln -s dotnet-host "$subpkgdir"/usr/share/licenses/dotnet31-sdk
}
runtime() {
pkgdesc='The .NET Core runtime'
pkgver=$_runtimever
provides=dotnet31-bootstrap-runtime
provider_priority=1
install -dm 755 "$subpkgdir"/usr/share/dotnet "$subpkgdir"/usr/share/licenses
bsdtar -xf "$srcdir"/dotnet-sdk-*.tar.gz -C "$subpkgdir"/usr/share/dotnet/ --no-same-owner shared/Microsoft.NETCore.App
ln -s dotnet-host "$subpkgdir"/usr/share/licenses/dotnet31-runtime
}
sha512sums="
d1f5565fef5a496643ef5c67cc54d8bf33bb7b59d9d04c24a91f54624a8cd673ddf98e4369a7c10ef9f31aa30041b20ef04cb6be563f2043bf123460c9e7f4a5 dotnet-sdk-3.1.120-linux-musl-x64.tar.gz
f58bd83b709dcb4b0b67830756069c34258a167b33cb290cbf30f21d69d75402d38e013fd7bbf00640fe19e397f78df6ff787cf8484ee8967d5b8809f033eafb dotnet.sh
"

View file

@ -0,0 +1,16 @@
# Description
APKBUILD for dotnet31-stage0
# How to build dotnet31 stack
* Build testing/dotnet31-stage0 first (provides binary
dotnet31-bootstrap-runtime / sdk and dotnet-host)
* Build testing/dotnet31 once (with binary bootstraps, provides repo versions
of above packages, and more)
* Build testing/dotnet31 again (with repo bootstraps, provides full repo
versions)
# Known issues
* Option !archcheck used because main package has nothing in it by design,
wants noarch.
* Option !tracedeps used as setting pkgver in subpkgver breaks dependency
tracing.

View file

@ -6,17 +6,13 @@
# Max Liebkies <mail@maxliebkies.de>
# Krzysztof Bogacki <krzysztof.bogacki@leancode.pl>
# Build vars
_bootstrap=false
_bootstrap_sdk=3.1.20-r2
_bootstrap_runtime=3.1.20-r2
_llvmver=12
pkgname=dotnet-3.1
pkgname=dotnet31
pkgdesc='The .NET Core SDK'
pkgver=3.1.20
pkgrel=2
arch='x86 x86_64 armv7 aarch64'
pkgver=3.1.120
pkgrel=0
arch='x86_64 armv7 aarch64'
url=https://www.microsoft.com/net/core
license='MIT'
makedepends="
@ -39,34 +35,21 @@ makedepends="
nodejs
openssl-dev
zlib-dev
dotnet31-bootstrap-sdk
dotnet31-bootstrap-runtime
"
if [ $_bootstrap != 'true' ]; then
makedepends="
$makedepends
dotnet-bootstrap-sdk-3.1
dotnet-bootstrap-runtime-3.1
"
fi
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
dotnet31-host:host
dotnet31-sdk:sdk
dotnet31-runtime:runtime
aspnet31-runtime:aspnet_runtime:noarch
dotnet31-targeting-pack:targeting_pack
aspnet31-targeting-pack:aspnet_targeting_pack:noarch
netstandard31-targeting-pack:netstandard_targeting_pack:noarch
"
if [ $_bootstrap != 'true' ]; then
subpackages="
$subpackages
dotnet-host:host
netstandard-targeting-pack:netstandard_targeting_pack:noarch
"
fi
_gittag=v$pkgver-runtime
_gittag=v$pkgver-SDK
_giturl=https://github.com/dotnet/source-build
options="!check"
options="!check !archcheck !tracedeps"
source="
$pkgname-$_gittag.tar.gz::$_giturl/archive/refs/tags/$_gittag.tar.gz
https://dot.net/v1/dotnet-install.sh
@ -120,16 +103,10 @@ default_prepare() {
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/* ./
if [[ $(find sdk -type d -not -name '3.1.*' -maxdepth 1 -mindepth 1) ]]; then
find sdk -type d -not -name '3.1.*' -maxdepth 1 -mindepth 1 -print0 | xargs -0 rm -R --
fi
fi
# disable warnings
sed -i 's|skiptests|skiptests ignorewarnings|' repos/coreclr.common.props
@ -139,16 +116,8 @@ prepare() {
}
pkgver() {
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.*//')
echo "$_runtimever.sdk${_sdkver##*.}"
}
build() {
msg "Building $pkgname-$pkgver"
export SOURCE_BUILD_SKIP_SUBMODULE_CHECK=1
./build.sh \
@ -163,42 +132,50 @@ build() {
package() {
depends='
dotnet-sdk-3.1
dotnet31-sdk
dotnet-host
dotnet-runtime-3.1
dotnet-targetting-pack-3.1
aspnet-runtime-3.1
aspnet-targeting-pack-3.1
netstandard-targeting-pack
dotnet31-runtime
dotnet31-targetting-pack
aspnet31-runtime
aspnet31-targeting-pack
netstandard21-targeting-pack
'
export _runtimever=$(xmllint --xpath "//Dependency[@Name='Microsoft.NETCore.App.Runtime.linux-x64']/@Version" "$builddir"/eng/Version.Details.xml | cut -d '=' -f 2 | sed 's/^"//; s/"$//')
export _sdkver=$(xmllint --xpath "//Dependency[@Name='Microsoft.NET.Sdk']/@Version" "$builddir"/eng/Version.Details.xml | cut -d '=' -f 2 | sed 's/^"//; s/"$//; s/-rtm.*//; s/-servicing.*//')
mkdir -p "$pkgdir"
}
sdk() {
depends='
dotnet-runtime-3.1
dotnet-targeting-pack-3.1
dotnet31-runtime
dotnet31-targeting-pack
musl
libgcc
netstandard-targeting-pack
aspnet-targeting-pack-3.1
netstandard21-targeting-pack
aspnet31-targeting-pack
'
provides="dotnet-bootstrap-sdk-3.1=$pkgver-r$pkgrel"
pkgver=$_sdkver
provider_priority=100
provides="dotnet31-bootstrap-sdk"
cd "$builddir"/artifacts/x64/Release
install -dm 755 "$subpkgdir"/usr/share/dotnet "$subpkgdir"/usr/share/licenses
bsdtar -xf dotnet-sdk-3.1*.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/dotnet31-sdk
}
host() {
pkgdesc='A generic driver for the .NET Core Command Line Interface'
pkgver=$_runtimever
depends='
gcc
musl
'
provides="dotnet-host"
provider_priority=2
cd $builddir/artifacts/x64/Release
@ -213,6 +190,7 @@ host() {
runtime() {
pkgdesc='The .NET Core runtime'
pkgver=$_runtimever
makedepends='
icu-dev
krb5-dev
@ -230,65 +208,68 @@ runtime() {
zlib
openssl
'
provides="dotnet-bootstrap-runtime-3.1=$pkgver-r$pkgrel"
provider_priority=100
provides="dotnet31-bootstrap-runtime"
cd "$builddir"/artifacts/x64/Release
install -dm 755 "$subpkgdir"/usr/share/dotnet "$subpkgdir"/usr/share/licenses
bsdtar -xf dotnet-sdk-3.1*.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/dotnet31-runtime
}
aspnet_runtime() {
pkgdesc='The ASP.NET Core runtime'
depends='
dotnet-runtime-3.1
'
pkgver=$_runtimever
depends='dotnet31-runtime'
cd "$builddir"/artifacts/x64/Release
install -dm 755 "$subpkgdir"/usr/share/dotnet "$subpkgdir"/usr/share/licenses
bsdtar -xf dotnet-sdk-3.1*.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/aspnet31-runtime
}
targeting_pack() {
pkgdesc='The .NET Core targeting pack'
depends='netstandard-targeting-pack'
pkgver=$_runtimever
depends='netstandard21-targeting-pack'
cd "$builddir"/artifacts/x64/Release
install -dm 755 "$subpkgdir"/usr/share/dotnet "$subpkgdir"/usr/share/licenses
bsdtar -xf dotnet-sdk-3.1*.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/dotnet31-targeting-pack
}
netstandard_targeting_pack() {
pkgdesc='The .NET Standard targeting pack'
pkgver=$_runtimever
provides="netstandard21-targeting-pack"
provider_priority=1
cd "$builddir"/artifacts/x64/Release
install -dm 755 "$subpkgdir"/usr/share/dotnet "$subpkgdir"/usr/share/licenses
bsdtar -xf dotnet-sdk-3.1*.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
ln -s dotnet-host "$subpkgdir"/usr/share/licenses/netstandard21-targeting-pack
}
aspnet_targeting_pack() {
pkgdesc='The ASP.NET Core targeting pack'
depends='
dotnet-targeting-pack-3.1
'
pkgver=$_runtimever
depends='dotnet31-targeting-pack'
cd "$builddir"/artifacts/x64/Release
install -dm 755 "$subpkgdir"/usr/share/dotnet "$subpkgdir"/usr/share/licenses
bsdtar -xf dotnet-sdk-3.1*.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
ln -s dotnet-host "$subpkgdir"/usr/share/licenses/aspnet31-targeting-pack
}
sha512sums="
51395877eb14ad6c5c81a2dd804a4135adb2d5d4ddf4e33d3e08379872b1eb843b0912fd644cee4e988360f650585701b2266f634c4189554f7c4c1415a28d7f dotnet-3.1-v3.1.20-runtime.tar.gz
33b0f76ca72e6b2ebef50338b6c4208e02f513ebfc67525481f945c12359ea030fe48017971d9f64522dc2f829beff790f10ba79e3b579c2ef90703fe9b4b27d dotnet31-v3.1.120-SDK.tar.gz
ecab4809e617e9cd30940b1c1a700e16b37b5974c850a60da7f1a25bf81516850e4533ef39d2d8786381e0e4e325d3b53fbb2377ecaa6c0813bb00fc1c92b784 dotnet-install.sh
e61b9e3e5a2305646a616d598378230c9755c5dd5363692cc363f8f4add3807563c324dd86f3a7ae9d358c82d730608e7b293935a2b6c81c0c0f62d752a0a1cf dotnet.sh
0469d571d0f7634d3794761f04e1cbff9d27d642d134a11a13560574280e5cab6f366eb8820e61a449eca99470fdea8d9f6a7d97b633059b2fe25257ed1579e6 application-insights_fix-net40-location.patch

View file

@ -1,26 +1,25 @@
# Description
APKBUILD for dotnet 3.1.
APKBUILD for dotnet31.
# 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
# How to build dotnet31 stack
* Build testing/dotnet31-stage0 first (provides binary
dotnet31-bootstrap-runtime / sdk and dotnet-host)
* Build testing/dotnet31 once (with binary bootstraps, provides repo versions
of above packages, and more)
* Build testing/dotnet31 again (with repo bootstraps, provides full repo
versions)
# 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.
* No check() mechanism, havn't found any docs for source-build tests
* Tested only build for x86_64. While dotnet supports x86, aarch64 and
armv7, I have not attempted a build on these architectures due to lack
of time and hardware.
* Option !archcheck used because main package has nothing in it by design,
wants noarch.
* Option !tracedeps used as setting pkgver in subpkgver breaks dependency
tracing.
# Patch notes

View file

@ -0,0 +1,87 @@
# Maintainer: Antoine Martin (ayakael) <dev@ayakael.net>
pkgname=dotnet5-stage0
pkgdesc='The .NET Core SDK'
pkgver=5.0.209
pkgrel=0
arch='x86_64 aarch64 armv7'
url=https://www.microsoft.com/net/core
license='MIT'
makedepends="
gcc
libcurl
krb5-libs
libintl
libstdc++
lttng-ust
zlib
"
subpackages="
dotnet5-stage0-runtime:runtime
dotnet5-stage0-sdk:sdk
dotnet5-stage0-host:host
"
options="!check !tracedeps !archcheck"
case $CARCH in
x86_64)_arch=x64;;
aarch64)_arch=arm64;;
armv7)_arch=arm;;
esac
source="
https://dotnetcli.azureedge.net/dotnet/Sdk/$pkgver/dotnet-sdk-$pkgver-linux-musl-$_arch.tar.gz
dotnet.sh
"
builddir="$srcdir"
package() {
export _runtimever=$("$srcdir"/dotnet --list-runtimes | awk '($1 == "Microsoft.NETCore.App"){print $2}')
export _sdkver=$("$srcdir"/dotnet --list-sdks | awk '{print $1}')
depends='
dotnet5-stage0-sdk
dotnet5-stage0-runtime
dotnet5-stage0-host
'
mkdir -p "$pkgdir"
}
host() {
pkgdesc='A generic driver for the .NET Core Command Line Interface'
pkgver=$_runtimever
provides=dotnet-host
provider_priority=1
depends='gcc musl'
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 "$srcdir"/dotnet-sdk-*.tar.gz -C "$subpkgdir"/usr/share/dotnet/ --no-same-owner dotnet host
bsdtar -xf "$srcdir"/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
install -Dm 644 "$srcdir"/dotnet.sh -t "$subpkgdir"/etc/profile.d/
}
sdk() {
provides=dotnet5-bootstrap-sdk
pkgver=$_sdkver
provider_priority=1
install -dm 755 "$subpkgdir"/usr/share/dotnet "$subpkgdir"/usr/share/licenses
bsdtar -xf "$srcdir"/dotnet-sdk-*.tar.gz -C "$subpkgdir"/usr/share/dotnet/ --no-same-owner sdk templates
ln -s dotnet-host "$subpkgdir"/usr/share/licenses/dotnet5-sdk
}
runtime() {
pkgdesc='The .NET Core runtime'
pkgver=$_runtimever
provides=dotnet5-bootstrap-runtime
provider_priority=1
install -dm 755 "$subpkgdir"/usr/share/dotnet "$subpkgdir"/usr/share/licenses
bsdtar -xf "$srcdir"/dotnet-sdk-*.tar.gz -C "$subpkgdir"/usr/share/dotnet/ --no-same-owner shared/Microsoft.NETCore.App
ln -s dotnet-host "$subpkgdir"/usr/share/licenses/dotnet5-runtime
}
sha512sums="
129ad36d92a58a1bf549add5b2c9400858d31f4ae74d5d2b1f37831464a16a98dbaa1445a3179fffb3a8020a137b8302355e4a076522ca4a8217443f1b67d29d dotnet-sdk-5.0.209-linux-musl-x64.tar.gz
f58bd83b709dcb4b0b67830756069c34258a167b33cb290cbf30f21d69d75402d38e013fd7bbf00640fe19e397f78df6ff787cf8484ee8967d5b8809f033eafb dotnet.sh
"

View file

@ -0,0 +1,24 @@
# Description
APKBUILD for dotnet5-stage0
# How to build dotnet5 stack
(note: dotnet31 only needed for Darc, which usually retrieves the 3.1.1 runtime
automatically. Per preference of using repo versions of runtimes, retrieval
is disabled by patch)
* Build testing/dotnet31-stage0 first (provides binary
dotnet31-bootstrap-runtime / sdk and dotnet-host)
* Build testing/dotnet31 once (with binary bootstraps, provides repo versions
of above packages, and more)
* Build testing/dotnet31 again (with repo bootstraps, provides full repo
versions)
* Build testing/dotnet5-stage0 (provides dotnet5-bootstrap-runtime / sdk)
* Build testing/dotnet5 once (using dotnet31 runtime bootstrap and
dotnet5-stage0 runtime / sdk bootstrap)
* Build testing/dotnet5 again (with repo bootstraps, provides full repo
versions)
# Known issues
* Option !archcheck used because main package has nothing in it by design,
wants noarch.
* Option !tracedeps used as setting pkgver in subpkgver breaks dependency
tracing.

View file

@ -0,0 +1,13 @@
# Set location for AppHost lookup
[ -z "$DOTNET_ROOT" ] && export DOTNET_ROOT=/usr/share/dotnet
# Add dotnet tools directory to PATH
DOTNET_TOOLS_PATH="$HOME/.dotnet/tools"
case "$PATH" in
*"$DOTNET_TOOLS_PATH"* ) true ;;
* ) PATH="$PATH:$DOTNET_TOOLS_PATH" ;;
esac
# Extract self-contained executables under HOME to avoid multi-user issues from using the default '/var/tmp'
[ -z "$DOTNET_BUNDLE_EXTRACT_BASE_DIR" ] && export DOTNET_BUNDLE_EXTRACT_BASE_DIR="${XDG_CACHE_HOME:-"$HOME"/.cache}/dotnet_bundle_extract"

View file

@ -6,22 +6,14 @@
# Max Liebkies <mail@maxliebkies.de>
# Krzysztof Bogacki <krzysztof.bogacki@leancode.pl>
#
# Build vars
#
# Sets whether we use pre-built bootstraps from microsoft or repo-provided
# bootstraps for building
_bootstrap=false
_bootstrap_sdk=5.0.12-r0
_bootstrap_runtime=3.1.20-r2
# LLVM version
_llvmver=12
pkgname=dotnet-5.0
pkgname=dotnet5
pkgdesc='The .NET Core SDK'
pkgver=5.0.12
pkgrel=1
arch='x86 x86_64 aarch64 armv7'
pkgver=5.0.209
pkgrel=0
arch='x86_64 aarch64 armv7'
url=https://www.microsoft.com/net/core
license='MIT'
makedepends="
@ -45,32 +37,28 @@ makedepends="
openssl-dev
linux-headers
zlib-dev
dotnet5-bootstrap-runtime
dotnet31-bootstrap-runtime
dotnet5-bootstrap-sdk
"
if [ $_bootstrap != 'true' ]; then
makedepends="
$makedepends
dotnet-bootstrap-runtime-3.1=$_bootstrap_runtime
dotnet-bootstrap-sdk-5.0=$_bootstrap_sdk
"
fi
subpackages="
dotnet-sdk-5.0:sdk
dotnet-host:host
dotnet-runtime-5.0:runtime
aspnet-runtime-5.0:aspnet_runtime:noarch
netstandard-targeting-pack:netstandard_targeting_pack:noarch
dotnet-targeting-pack-5.0:targeting_pack
aspnet-targeting-pack-5.0:aspnet_targeting_pack:noarch"
_gittag=v$pkgver.1-runtime
dotnet5-sdk:sdk
dotnet5-host:host
dotnet5-runtime:runtime
aspnet5-runtime:aspnet_runtime:noarch
netstandard5-targeting-pack:netstandard_targeting_pack:noarch
dotnet5-targeting-pack:targeting_pack
aspnet5-targeting-pack:aspnet_targeting_pack:noarch"
_gittag=v$pkgver.1-SDK
_giturl=https://github.com/dotnet/source-build
options="!check"
options="!check !archcheck !tracedeps"
source="
$pkgname-$_gittag.tar.gz::$_giturl/archive/refs/tags/$_gittag.tar.gz
dotnet.sh
https://dot.net/v1/dotnet-install.sh
application-insights_fix-net40-location.patch
build_darc-fix-alpine.patch
build_darc-disable-runtime-retrieval.patch
runtime_add-rid-for-alpine-315.patch
runtime_link-order.patch
runtime_non-portable-distrorid-fix-alpine.patch
@ -115,16 +103,10 @@ default_prepare() {
prepare() {
default_prepare
msg "Settings up bootstrap SDK"
if [ "$_bootstrap" == 'true' ]; then
chmod +x "$srcdir"/dotnet-install.sh
"$srcdir"/dotnet-install.sh --version=5.0.205 --install-dir ./
"$srcdir"/dotnet-install.sh --version=3.1.17 --install-dir ./ --runtime dotnet
else
cp -r /usr/share/dotnet/* ./
if [[ $(find sdk -type d -not -name '5.0.*' -maxdepth 1 -mindepth 1) ]]; then
find sdk -type d -not -name '5.0.*' -maxdepth 1 -mindepth 1 -print0 | xargs -0 rm -R --
fi
fi
# disable warnings
sed -i 's|skiptests|skiptests ignorewarnings|' repos/runtime.common.props
@ -133,15 +115,6 @@ prepare() {
git init
}
pkgver() {
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.*//')
echo "$_runtimever.sdk${_sdkver##*.}"
}
build() {
msg "Building $pkgname-$pkgver"
@ -159,38 +132,46 @@ build() {
package() {
depends='
dotnet-sdk-5.0
dotnet5-sdk
dotnet-host
dotnet-runtime-5.0
dotnet-targetting-pack-5.0
aspnet-runtime-5.0
aspnet-targeting-pack-5.0
netstandard-targeting-pack
dotnet5-runtime
dotnet5-targetting-pack
aspnet5-runtime
aspnet5-targeting-pack
netstandard21-targeting-pack
'
export _runtimever=$(xmllint --xpath "//Dependency[@Name='Microsoft.NETCore.App.Runtime.win-x64']/@Version" "$builddir"/eng/Version.Details.xml | cut -d '=' -f 2 | sed 's/^"//; s/"$//')
export _sdkver=$(xmllint --xpath "//Dependency[@Name='Microsoft.NET.Sdk']/@Version" "$builddir"/eng/Version.Details.xml | cut -d '=' -f 2 | sed 's/^"//; s/"$//; s/-rtm.*//; s/-servicing.*//')
mkdir -p "$pkgdir"
}
sdk() {
depends='
dotnet-runtime-5.0
dotnet-targeting-pack-5.0
dotnet5-runtime
dotnet5-targeting-pack
musl
libgcc
netstandard-targeting-pack
aspnet-targeting-pack-5.0
netstandard21-targeting-pack
aspnet5-targeting-pack
'
provides="dotnet-bootstrap-sdk-5.0=$pkgver-r$pkgrel"
provides="dotnet5-bootstrap-sdk"
provider_priority=100
pkgver=$_sdkver
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 sdk templates
ln -s dotnet-host "$subpkgdir"/usr/share/licenses/dotnet-sdk-5.0
ln -s dotnet-host "$subpkgdir"/usr/share/licenses/dotnet5-sdk
}
host() {
pkgdesc='A generic driver for the .NET Core Command Line Interface'
provides=dotnet-host
provider_priority=100
pkgver=$_runtimever
depends='
gcc
musl
@ -209,6 +190,7 @@ host() {
runtime() {
pkgdesc='The .NET Core runtime'
pkgver=$_runtimever
makedepends='
icu-dev
krb5-dev
@ -226,64 +208,72 @@ runtime() {
zlib
openssl
'
provides="dotnet-bootstrap-runtime-5.0=$pkgver-r$pkgrel"
provides="dotnet5-bootstrap-runtime"
provider_priority=100
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 shared/Microsoft.NETCore.App
ln -s dotnet-host "$subpkgdir"/usr/share/licenses/dotnet-runtime-5.0
ln -s dotnet-host "$subpkgdir"/usr/share/licenses/dotnet5-runtime
}
aspnet_runtime() {
pkgdesc='The ASP.NET Core runtime'
depends='dotnet-runtime-5.0'
pkgver=$_runtimever
depends='dotnet5-runtime'
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 shared/Microsoft.AspNetCore.App
ln -s dotnet-host "$subpkgdir"/usr/share/licenses/aspnet-runtime-5.0
ln -s dotnet-host "$subpkgdir"/usr/share/licenses/aspnet5-runtime
}
netstandard_targeting_pack() {
pkgdesc='The .NET Standard targeting pack'
provides="netstandard21-targeting-pack"
provider_priority=100
pkgver=$_sdkver
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-5.0
ln -s dotnet-host "$subpkgdir"/usr/share/licenses/netstandard21-targeting-pack
}
targeting_pack() {
pkgdesc='The .NET Core targeting pack'
depends='netstandard-targeting-pack'
pkgver=$_runtimever
depends='netstandard21-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/Microsoft.NETCore.App.Host.*' packs/Microsoft.NETCore.App.Ref
ln -s dotnet-host "$subpkgdir"/usr/share/licenses/dotnet-targeting-pack-5.0
ln -s dotnet-host "$subpkgdir"/usr/share/licenses/dotnet5-targeting-pack
}
aspnet_targeting_pack() {
pkgdesc='The ASP.NET Core targeting pack'
depends='dotnet-targeting-pack-5.0'
pkgver=$_runtimever
depends='dotnet5-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/Microsoft.AspNetCore.App.Ref
ln -s dotnet-host "$subpkgdir"/usr/share/licenses/aspnet-targeting-pack-5.0
ln -s dotnet-host "$subpkgdir"/usr/share/licenses/aspnet5-targeting-pack
}
sha512sums="
5d957694c33a2f4440af7955a526141859c1ad0dccf07b1efe2f474f855650ba5d3256a19b38216d7a7a86d62890034fb060f1bb14733daddc97a871d7e2aad7 dotnet-5.0-v5.0.12.1-runtime.tar.gz
9e5a762ae9e90bac51b586cb084d92581ee9eaabd620852273eab5a463f676e285f071ec734f4f18b587584edfde44597a1d21ce10af5dc7cb4dba2c1a187436 dotnet5-v5.0.209.1-SDK.tar.gz
f58bd83b709dcb4b0b67830756069c34258a167b33cb290cbf30f21d69d75402d38e013fd7bbf00640fe19e397f78df6ff787cf8484ee8967d5b8809f033eafb dotnet.sh
ecab4809e617e9cd30940b1c1a700e16b37b5974c850a60da7f1a25bf81516850e4533ef39d2d8786381e0e4e325d3b53fbb2377ecaa6c0813bb00fc1c92b784 dotnet-install.sh
0469d571d0f7634d3794761f04e1cbff9d27d642d134a11a13560574280e5cab6f366eb8820e61a449eca99470fdea8d9f6a7d97b633059b2fe25257ed1579e6 application-insights_fix-net40-location.patch
74767c34f15e0eaee3682516e093296621efaeeb6d84e62d826587db9b559fb7c00c42aafbf4fdfd34460d1cf16edad3fd5f720f2b37f8bf52b26d7f73f79d5e build_darc-fix-alpine.patch
07d1cbfb0d7ee8c673a96b30b7c05fe7cab91b11387175712bd721b57342c293f790ad8ff36ccf56e5078cb708266b7386ebb807ab99290facfdd953419de2f7 build_darc-disable-runtime-retrieval.patch
4899175597a1d4cd14c382469fe17e6d8d4644b784dca02eb2d4f71afa8e898e60269d5b0cdfea6e3ed6dc92feb676c6db21aae3bcb206d859c02cd10cdcaca0 runtime_add-rid-for-alpine-315.patch
0d6ca9b4c6bb0999102f8a51b408c6f938d7262af552d63ef180fdc9a48bba940d0437d0d06916c3f7be7e70e2717a46a4ebc91c0f85467cbc7776b944eca83e runtime_link-order.patch
6dd3ff4db79aa95fa37ba4011da82c74d8ac83a7a92124fc4a97bd78b818b024b569df293b1edae2b16d8161c76b6a00e1c81bd421480e367925af64673b0f84 runtime_non-portable-distrorid-fix-alpine.patch

View file

@ -1,27 +1,33 @@
# Description
APKBUILD for dotnet 5.0.
APKBUILD for dotnet5
# 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:w
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
# How to build dotnet5 stack
(note: dotnet31 only needed for Darc, which usually retrieves the 3.1.1 runtime
automatically. Per preference of using repo versions of runtimes, retrieval
is disabled by patch)
* Build testing/dotnet31-stage0 first (provides binary
dotnet31-bootstrap-runtime / sdk and dotnet-host)
* Build testing/dotnet31 once (with binary bootstraps, provides repo versions
of above packages, and more)
* Build testing/dotnet31 again (with repo bootstraps, provides full repo
versions)
* Build testing/dotnet5-stage0 (provides dotnet5-bootstrap-runtime / sdk)
* Build testing/dotnet5 once (using dotnet31 runtime bootstrap and
dotnet5-stage0 runtime / sdk bootstrap)
* Build testing/dotnet5 again (with repo bootstraps, provides full repo
versions)
# Known issues
* The build itself has some odd kinks here and there that various patches
addresses. Please feel free to share any notes from your build environment.
* 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.
* Build oddities here and there that the patches fix. In the process of
upstreaming to clear them out
* No check() mechanism, havn't found any docs for source-build tests
* Tested only build for x86_64. While dotnet supports x86, aarch64 and
armv7, I have not attempted a build on these architectures due to lack
of time and hardware.
* Option !archcheck used because main package has nothing in it by design,
wants noarch.
* Option !tracedeps used as setting pkgver in subpkgver breaks dependency
tracing.
# Patch notes
@ -33,7 +39,11 @@ of time and hardware.
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.
## runtime_add-rid-for-alpine-315.patch/_
## build_darc-disable-runtime-retrieval.patch
Darc needs runtime 3.1 to function, but still tries to download it even when
provided. This patch disables runtime retrieval, forcing Darc to use local
runtime.
## runtime_add-rid-for-alpine-315.patch
As of version 5.0.12, runtime does not have the RIDs for Alpine Linux 3.15.
This patch adds them. See dotnet/core issue #6985
## runtime_link-order.patch

View file

@ -0,0 +1,26 @@
From 50f736ef0d60fbc8fbab636ee965272ef961a491 Mon Sep 17 00:00:00 2001
From: "build@apk-groulx" <build@apk-groulx.praxis>
Date: Mon, 13 Dec 2021 02:26:25 +0000
Subject: [PATCH 1/1] Disable runtime 3.1.1 retrieval for Darc
---
build.sh | 3 ---
1 file changed, 3 deletions(-)
diff --git a/build.sh b/build.sh
index 161f6314..8decf9af 100755
--- a/build.sh
+++ b/build.sh
@@ -138,9 +138,6 @@ fi
set -x
scriptroot="$( cd -P "$( dirname "$source" )" && pwd )"
-# runtime 3.1.1 required for darc
-"$scriptroot/eng/common/dotnet-install.sh" -runtime dotnet -version 3.1.1
-
if [ "$alternateTarget" == "true" ]; then
"$CLIPATH/dotnet" $SDKPATH/MSBuild.dll "$scriptroot/build.proj" /bl:source-build-test.binlog /flp:v=diag /clp:v=m "$@"
else
--
2.34.1

View file

@ -0,0 +1,13 @@
# Set location for AppHost lookup
[ -z "$DOTNET_ROOT" ] && export DOTNET_ROOT=/usr/share/dotnet
# Add dotnet tools directory to PATH
DOTNET_TOOLS_PATH="$HOME/.dotnet/tools"
case "$PATH" in
*"$DOTNET_TOOLS_PATH"* ) true ;;
* ) PATH="$PATH:$DOTNET_TOOLS_PATH" ;;
esac
# Extract self-contained executables under HOME to avoid multi-user issues from using the default '/var/tmp'
[ -z "$DOTNET_BUNDLE_EXTRACT_BASE_DIR" ] && export DOTNET_BUNDLE_EXTRACT_BASE_DIR="${XDG_CACHE_HOME:-"$HOME"/.cache}/dotnet_bundle_extract"