From b3b450252b29f643c1f1becf25985081108ef2d8 Mon Sep 17 00:00:00 2001 From: "build@apk-groulx" Date: Sun, 2 Jan 2022 03:53:55 +0000 Subject: [PATCH] update --- .../craftbukkit-plugin-customtime/APKBUILD | 4 +- .../main/craftbukkit-plugin-dynmap/APKBUILD | 8 +- .../craftbukkit-plugin-essentialsx/APKBUILD | 83 +- .../craftbukkit-plugin-luckperms/APKBUILD | 10 +- .../craftbukkit-plugin-worldedit/APKBUILD | 10 +- .../craftbukkit-plugin-worldguard/APKBUILD | 6 +- apk/v3.15/main/dotnet21-stage0/APKBUILD | 91 ++ apk/v3.15/main/dotnet21-stage0/README.md | 15 + apk/v3.15/main/dotnet21-stage0/dotnet.sh | 13 + apk/v3.15/main/dotnet21/APKBUILD | 240 ++++ apk/v3.15/main/dotnet21/README.md | 55 + ...lication-insights_fix-net40-location.patch | 17 + .../dotnet21/build_coreclr-tools-path.patch | 62 + .../main/dotnet21/build_darc-fix-alpine.patch | 26 + ...rate-layout-core-setup-blob-path-fix.patch | 25 + ...up_rid-plat-generation-on-alpine-fix.patch | 32 + ...reclr_fix-build-on-Alpine-edge-45352.patch | 31 + ...lr_non-portable-distrorid-fix-alpine.patch | 41 + .../corefx_added-alpine-315-rid.patch | 125 ++ .../dotnet21/corefx_fix-build-clang10.patch | 26 + apk/v3.15/main/dotnet21/dotnet.sh | 12 + apk/v3.15/main/dotnet31-stage0/APKBUILD | 56 +- apk/v3.15/main/dotnet31-stage0/README.md | 7 +- .../main/dotnet31-stage0/dotnet-install.sh | 1092 +++++++++++++++++ apk/v3.15/main/dotnet31/APKBUILD | 106 +- apk/v3.15/main/dotnet31/README.md | 8 +- apk/v3.15/main/dotnet5-stage0/APKBUILD | 38 +- apk/v3.15/main/dotnet5-stage0/README.md | 7 +- apk/v3.15/main/dotnet5/APKBUILD | 118 +- apk/v3.15/main/dotnet5/README.md | 10 +- .../build_darc-use-available-runtime.patch | 48 + apk/v3.15/main/dotnet6-stage0/APKBUILD | 91 ++ apk/v3.15/main/dotnet6-stage0/README.md | 23 + apk/v3.15/main/dotnet6-stage0/dotnet.sh | 13 + apk/v3.15/main/dotnet6/APKBUILD | 251 ++++ apk/v3.15/main/dotnet6/README.md | 37 + apk/v3.15/main/dotnet6/dotnet.sh | 12 + .../runtime_add-rid-for-alpine-315.patch | 200 +++ .../runtime_disable-package-validation.patch | 12 + .../main/dotnet6/sdk_telemetry-optout.patch | 12 + .../main/firefly-iii-plaid-connector/APKBUILD | 6 +- apk/v3.15/main/firefly-iii/APKBUILD | 34 +- apk/v3.15/main/haskell-cpphs/APKBUILD | 34 + apk/v3.15/main/haskell-polyparse/APKBUILD | 12 +- .../0001-Fixed-build-for-musl.patch | 0 .../intel-media-sdk/APKBUILD | 0 apk/v3.15/main/jellyfin-ffmpeg/APKBUILD | 6 +- apk/v3.15/main/jellyfin/APKBUILD | 103 +- apk/v3.15/main/jellyfin/jellyfin.conf | 1 + apk/v3.15/main/jellyfin/jellyfin.initd | 2 +- apk/v3.15/main/jellyfin/jellyfin.service | 13 - apk/v3.15/main/papermc/APKBUILD | 17 +- ...001-dng_sdk-downgrade-for-musl-build.patch | 25 + apk/v3.15/main/skia-sharp/APKBUILD | 84 ++ 54 files changed, 3058 insertions(+), 352 deletions(-) create mode 100644 apk/v3.15/main/dotnet21-stage0/APKBUILD create mode 100644 apk/v3.15/main/dotnet21-stage0/README.md create mode 100644 apk/v3.15/main/dotnet21-stage0/dotnet.sh create mode 100644 apk/v3.15/main/dotnet21/APKBUILD create mode 100644 apk/v3.15/main/dotnet21/README.md create mode 100644 apk/v3.15/main/dotnet21/application-insights_fix-net40-location.patch create mode 100644 apk/v3.15/main/dotnet21/build_coreclr-tools-path.patch create mode 100644 apk/v3.15/main/dotnet21/build_darc-fix-alpine.patch create mode 100644 apk/v3.15/main/dotnet21/core-sdk_generate-layout-core-setup-blob-path-fix.patch create mode 100644 apk/v3.15/main/dotnet21/core-setup_rid-plat-generation-on-alpine-fix.patch create mode 100644 apk/v3.15/main/dotnet21/coreclr_fix-build-on-Alpine-edge-45352.patch create mode 100644 apk/v3.15/main/dotnet21/coreclr_non-portable-distrorid-fix-alpine.patch create mode 100644 apk/v3.15/main/dotnet21/corefx_added-alpine-315-rid.patch create mode 100644 apk/v3.15/main/dotnet21/corefx_fix-build-clang10.patch create mode 100644 apk/v3.15/main/dotnet21/dotnet.sh create mode 100755 apk/v3.15/main/dotnet31-stage0/dotnet-install.sh create mode 100644 apk/v3.15/main/dotnet5/build_darc-use-available-runtime.patch create mode 100644 apk/v3.15/main/dotnet6-stage0/APKBUILD create mode 100644 apk/v3.15/main/dotnet6-stage0/README.md create mode 100644 apk/v3.15/main/dotnet6-stage0/dotnet.sh create mode 100644 apk/v3.15/main/dotnet6/APKBUILD create mode 100644 apk/v3.15/main/dotnet6/README.md create mode 100644 apk/v3.15/main/dotnet6/dotnet.sh create mode 100644 apk/v3.15/main/dotnet6/runtime_add-rid-for-alpine-315.patch create mode 100644 apk/v3.15/main/dotnet6/runtime_disable-package-validation.patch create mode 100644 apk/v3.15/main/dotnet6/sdk_telemetry-optout.patch create mode 100644 apk/v3.15/main/haskell-cpphs/APKBUILD rename apk/v3.15/{testing => main}/intel-media-sdk/0001-Fixed-build-for-musl.patch (100%) rename apk/v3.15/{testing => main}/intel-media-sdk/APKBUILD (100%) delete mode 100644 apk/v3.15/main/jellyfin/jellyfin.service create mode 100644 apk/v3.15/main/skia-sharp/0001-dng_sdk-downgrade-for-musl-build.patch create mode 100644 apk/v3.15/main/skia-sharp/APKBUILD diff --git a/apk/v3.15/main/craftbukkit-plugin-customtime/APKBUILD b/apk/v3.15/main/craftbukkit-plugin-customtime/APKBUILD index 4f10606..a56dbf5 100644 --- a/apk/v3.15/main/craftbukkit-plugin-customtime/APKBUILD +++ b/apk/v3.15/main/craftbukkit-plugin-customtime/APKBUILD @@ -1,13 +1,13 @@ # Maintainer: Antoine Martin (ayakael) pkgname=craftbukkit-plugin-customtime pkgver=2.1.1 -pkgrel=0 +pkgrel=1 pkgdesc="CustomTime is a simple plugin used to control the day/night cycle. You can speed up or slow down time any way you like." options=!check arch='noarch' url="https://dev.bukkit.org/projects/customtime" license="CC-BY-NC-4.0" -depends="craftbukkit>=1.16.1 craftbukkit<=1.17.1" +depends="craftbukkit>=1.16.1 craftbukkit<=1.18.1" source="${pkgname}-${pkgver}.jar::https://media.forgecdn.net/files/3414/509/CustomTime-${pkgver}.jar" noextract="${pkgname}-${pkgver}.jar" diff --git a/apk/v3.15/main/craftbukkit-plugin-dynmap/APKBUILD b/apk/v3.15/main/craftbukkit-plugin-dynmap/APKBUILD index f37664c..1c16117 100644 --- a/apk/v3.15/main/craftbukkit-plugin-dynmap/APKBUILD +++ b/apk/v3.15/main/craftbukkit-plugin-dynmap/APKBUILD @@ -1,14 +1,14 @@ # Maintainer: Antoine Martin (ayakael) pkgname=craftbukkit-plugin-dynmap -pkgver=3.2.1 -_pkgver=${pkgver} +pkgver=3.3 +_pkgver=${pkgver}-beta-3 pkgrel=0 pkgdesc="A Google Maps-like map for your Minecraft server that can be viewed in a browser" options=!check arch='noarch' url="https://github.com/webbukkit/dynmap" license="AGPL-2.0" -depends="craftbukkit>=1.16.1 craftbukkit<=1.17.1" +depends="craftbukkit>=1.16.1 craftbukkit<=1.18.1" source="${pkgname}-${_pkgver}.jar::https://dynmap.us/releases/Dynmap-${_pkgver}-spigot.jar" noextract="${pkgname}-${_pkgver}.jar" @@ -17,5 +17,5 @@ package() { chown craftbukkit:craftbukkit "$pkgdir"/var/lib/craftbukkit/plugins/dynmap.jar } sha512sums=" -e2e15ad809a4674e35bca74685592080258b098ebe8f5572017bd27c8f7bc76cf4952dce9c6ff81466d5764483b188a9b84ed1bc5fbf087e3440486cd47cb94c craftbukkit-plugin-dynmap-3.2.1.jar +2eb005d9391764abf45266dbe87984db49f8f040128041c94b822206f8565e1304c754eeb639b593839b35054aed81726a7e4cc7fdedd86cd676aef3bbd4537f craftbukkit-plugin-dynmap-3.3-beta-3.jar " diff --git a/apk/v3.15/main/craftbukkit-plugin-essentialsx/APKBUILD b/apk/v3.15/main/craftbukkit-plugin-essentialsx/APKBUILD index ec9bcd4..6914643 100644 --- a/apk/v3.15/main/craftbukkit-plugin-essentialsx/APKBUILD +++ b/apk/v3.15/main/craftbukkit-plugin-essentialsx/APKBUILD @@ -1,36 +1,37 @@ # Maintainer: Antoine Martin (ayakael) pkgname=craftbukkit-plugin-essentialx -_pkgver=2.19.1 -_buildver=34 -_buildcommit=5723dac -pkgver=$_pkgver.$_buildver -pkgrel=0 +_pkgver=2.19.2 +_buildver=release +_buildcommit= +pkgrel=1 pkgdesc="EssentialsX is the essential plugin suite for Minecraft servers, with over 130 commands for servers of all size and scale." options=!check arch='noarch' url="https://essentialsx.net/" license="GPL-3.0" -depends="craftbukkit>=1.8.8 craftbukkit<=1.17.1" -source=" - https://ci.ender.zone/job/EssentialsX/lastSuccessfulBuild/artifact/jars/EssentialsX-${_pkgver}-dev+${_buildver}-${_buildcommit}.jar - https://ci.ender.zone/job/EssentialsX/lastSuccessfulBuild/artifact/jars/EssentialsXChat-${_pkgver}-dev+${_buildver}-${_buildcommit}.jar - https://ci.ender.zone/job/EssentialsX/lastSuccessfulBuild/artifact/jars/EssentialsXSpawn-${_pkgver}-dev+${_buildver}-${_buildcommit}.jar - https://ci.ender.zone/job/EssentialsX/lastSuccessfulBuild/artifact/jars/EssentialsXAntiBuild-${_pkgver}-dev+${_buildver}-${_buildcommit}.jar - https://ci.ender.zone/job/EssentialsX/lastSuccessfulBuild/artifact/jars/EssentialsXDiscord-${_pkgver}-dev+${_buildver}-${_buildcommit}.jar - https://ci.ender.zone/job/EssentialsX/lastSuccessfulBuild/artifact/jars/EssentialsXGeoIP-${_pkgver}-dev+${_buildver}-${_buildcommit}.jar - https://ci.ender.zone/job/EssentialsX/lastSuccessfulBuild/artifact/jars/EssentialsXProtect-${_pkgver}-dev+${_buildver}-${_buildcommit}.jar - https://ci.ender.zone/job/EssentialsX/lastSuccessfulBuild/artifact/jars/EssentialsXXMPP-${_pkgver}-dev+${_buildver}-${_buildcommit}.jar - " +depends="craftbukkit>=1.8.8 craftbukkit<=1.18.1" + +if _buildver=release; then + pkgver=$_pkgver + _url=https://github.com/EssentialsX/Essentials/releases/download/$pkgver + _filename="$pkgver.jar" +else + pkgver=$_pkgver.$_buildver + _url=https://ci.ender.zone/job/EssentialsX/lastSuccessfulBuild/artifact/jars + _filename="${_pkgver}-dev+${_buildver}-${_buildcommit}.jar" +fi + +source=" + $_url/EssentialsX-$_filename + $_url/EssentialsXChat-$_filename + $_url/EssentialsXSpawn-$_filename + $_url/EssentialsXAntiBuild-$_filename + $_url/EssentialsXDiscord-$_filename + $_url/EssentialsXGeoIP-$_filename + $_url/EssentialsXProtect-$_filename + $_url/EssentialsXXMPP-$_filename +" -noextract=" - EssentialsXChat-${_pkgver}-dev+${_buildver}-${_buildcommit}.jar - EssentialsXSpawn-${_pkgver}-dev+${_buildver}-${_buildcommit}.jar - EssentialsXAntiBuild-${_pkgver}-dev+${_buildver}-${_buildcommit}.jar - EssentialsXDiscord-${_pkgver}-dev+${_buildver}-${_buildcommit}.jar - EssentialsXGeoIP-${_pkgver}-dev+${_buildver}-${_buildcommit}.jar - EssentialsXProtect-${_pkgver}-dev+${_buildver}-${_buildcommit}.jar - EssentialsXMPP-${_pkgver}-dev+${_buildver}-${_buildcommit}.jar - " subpackages="${pkgname}-core ${pkgname}-chat ${pkgname}-spawn ${pkgname}-antibuild ${pkgname}-discord ${pkgname}-geo ${pkgname}-protect ${pkgname}-xmpp" @@ -40,66 +41,66 @@ package() { core() { pkgdesc="Core functionality: teleports, private messages, homes, warps and more" - install -Dm644 "${srcdir}"/EssentialsX-${_pkgver}-dev+${_buildver}-${_buildcommit}.jar "$subpkgdir/var/lib/craftbukkit/plugins/Essentials.jar" + install -Dm644 "${srcdir}"/EssentialsX-*.jar "$subpkgdir/var/lib/craftbukkit/plugins/Essentials.jar" chown craftbukkit:craftbukkit "$subpkgdir"/var/lib/craftbukkit/plugins/Essentials.jar } chat() { pkgdesc="Chat formatting, local chat" depends="${pkgname}-core" - install -Dm644 "${srcdir}"/EssentialsXChat-${_pkgver}-dev+${_buildver}-${_buildcommit}.jar "$subpkgdir/var/lib/craftbukkit/plugins/EssentialsChat.jar" + install -Dm644 "${srcdir}"/EssentialsXChat-*.jar "$subpkgdir/var/lib/craftbukkit/plugins/EssentialsChat.jar" chown craftbukkit:craftbukkit "$subpkgdir"/var/lib/craftbukkit/plugins/EssentialsChat.jar } spawn() { pkgdesc="Spawnpoint control, per-player spawns" depends="${pkgname}-core" - install -Dm644 "${srcdir}"/EssentialsXSpawn-${_pkgver}-dev+${_buildver}-${_buildcommit}.jar "$subpkgdir/var/lib/craftbukkit/plugins/EssentialsSpawn.jar" + install -Dm644 "${srcdir}"/EssentialsXSpawn-*.jar "$subpkgdir/var/lib/craftbukkit/plugins/EssentialsSpawn.jar" chown craftbukkit:craftbukkit "$subpkgdir"/var/lib/craftbukkit/plugins/EssentialsSpawn.jar } antibuild() { pkgdesc="Simple permissions-based building control" depends="${pkgname}-core" - install -Dm644 "${srcdir}"/EssentialsXAntiBuild-${_pkgver}-dev+${_buildver}-${_buildcommit}.jar "$subpkgdir/var/lib/craftbukkit/plugins/EssentialsAntiBuild.jar" + install -Dm644 "${srcdir}"/EssentialsXAntiBuild-*.jar "$subpkgdir/var/lib/craftbukkit/plugins/EssentialsAntiBuild.jar" chown craftbukkit:craftbukkit "$subpkgdir"/var/lib/craftbukkit/plugins/EssentialsAntiBuild.jar } discord() { pkgdesc="Lightweight chat, messaging and command integration with Discord" depends="${pkgname}-core" - install -Dm644 "${srcdir}"/EssentialsXDiscord-${_pkgver}-dev+${_buildver}-${_buildcommit}.jar "$subpkgdir/var/lib/craftbukkit/plugins/EssentialsDiscord.jar" + install -Dm644 "${srcdir}"/EssentialsXDiscord-*.jar "$subpkgdir/var/lib/craftbukkit/plugins/EssentialsDiscord.jar" chown craftbukkit:craftbukkit "$subpkgdir"/var/lib/craftbukkit/plugins/EssentialsDiscord.jar } geo() { pkgdesc="Geographical player lookup (formerly EssentialsX GeoIP)" depends="${pkgname}-core" - install -Dm644 "${srcdir}"/EssentialsXGeoIP-${_pkgver}-dev+${_buildver}-${_buildcommit}.jar "$subpkgdir/var/lib/craftbukkit/plugins/EssentialsGeo.jar" + install -Dm644 "${srcdir}"/EssentialsXGeoIP-*.jar "$subpkgdir/var/lib/craftbukkit/plugins/EssentialsGeo.jar" chown craftbukkit:craftbukkit "$subpkgdir"/var/lib/craftbukkit/plugins/EssentialsGeo.jar } protect() { pkgdesc="Configurable world protection and control" depends="${pkgname}-core" - install -Dm644 "${srcdir}"/EssentialsXProtect-${_pkgver}-dev+${_buildver}-${_buildcommit}.jar "$subpkgdir/var/lib/craftbukkit/plugins/EssentialsProtect.jar" + install -Dm644 "${srcdir}"/EssentialsXProtect-*.jar "$subpkgdir/var/lib/craftbukkit/plugins/EssentialsProtect.jar" chown craftbukkit:craftbukkit "$subpkgdir"/var/lib/craftbukkit/plugins/EssentialsProtect.jar } xmpp() { pkgdesc="Lightweight chat, messaging and server log integration with Jabber/XMPP services" depends="${pkgname}-core" - install -Dm644 "${srcdir}"/EssentialsXXMPP-${_pkgver}-dev+${_buildver}-${_buildcommit}.jar "$subpkgdir/var/lib/craftbukkit/plugins/EssentialsXMPP.jar" + install -Dm644 "${srcdir}"/EssentialsXXMPP-*.jar "$subpkgdir/var/lib/craftbukkit/plugins/EssentialsXMPP.jar" chown craftbukkit:craftbukkit "$subpkgdir"/var/lib/craftbukkit/plugins/EssentialsXMPP.jar } sha512sums=" -195dfd11ee959fc66acda6f43dd81b17516a92e12a0e7cb30bf4b674321b11141776e59321997372df509e4f3143b982c8eaafe1ee67d49dfb0dc66e5d1da3a2 EssentialsX-2.19.1-dev+34-5723dac.jar -c63d0c41b5ee2963c5d21e2ea5b08fe320a297afecd6a936a8c62143904a8496ce4c5401b3deaab5536d3bfefaacbe1b77a876c530d04d1e17a72dc8ca89cf03 EssentialsXChat-2.19.1-dev+34-5723dac.jar -2de2bd5f1156ed2cb70f05b7118f5832082807989b232ce3e1dbcd0967ddc2c0bbe41d807e61fea57f39d675da61ed620627daa7f59395cf704e8e6c9e50a5fa EssentialsXSpawn-2.19.1-dev+34-5723dac.jar -a33bf1ca55aa7ef6494540d106fb003d6c21ecf5739fae4ad4cf0c3cf03a2e0b932c6196e00c71c9a3ad2c0439d2062669406099dcff436eb27c68772546a378 EssentialsXAntiBuild-2.19.1-dev+34-5723dac.jar -152332e1cbd84bfc823855cabfcdcca163e5639265a8642881b16945099930295f57027e9da9ea593ad628eea8c0afeb8d67a1ca6320b4e675734881a1517373 EssentialsXDiscord-2.19.1-dev+34-5723dac.jar -963ddfe510115fdc689870f6339d0f983c00e55bd7839a3cc8d4e27cfd9a62d9473a8602bc73ebdbd0633a962c03b5c0bbebb81f20bb05b3a1614ba9b86619f9 EssentialsXGeoIP-2.19.1-dev+34-5723dac.jar -636f33a0d2e88cdcd435b1abc5e0435649fafd46596fb8df0225e87b01a54324bfbec3977b01f88f03cd907b99f0206c9b37ddb832ca3f0980670126b68b7723 EssentialsXProtect-2.19.1-dev+34-5723dac.jar -b46e2863d4f6a98b2a01e945b4b3959e2710490dc67cc17a9f6252f05f27f076e7f65dba69b516d00e2d6835a8eab009cd3670741ecdae698d9a87f02d5b261e EssentialsXXMPP-2.19.1-dev+34-5723dac.jar +c91c0905c11482d93b1565f8b9dce7b6f939567b4cb2756b112ee408bdcca1fece04742f9b7b0876d5b2e84cebdbc555d35cf783e9e86ab12fafb9dc02bc6008 EssentialsX-2.19.2.jar +e2df6f242db38689579501b34763ad7d4b5e8ddd87b7b57956c6b5cc667f1b34af6b1289d668a64761da63f8ae8507eb9687ca490cc715a3eff6338770963240 EssentialsXChat-2.19.2.jar +24e41168428f20bd6506282b9920718c43f7e5227bf35e174522e49859e294048a1d979ae42044bdbdba45c8a1109f4db6ffd0e24d5f3e909d0f9a3ac31e21d3 EssentialsXSpawn-2.19.2.jar +326ec004241b526965cb67ae0f0245dfa960da2fdb4b59d867eb08e5196fceb468f9314cb838c8a0bc513cc55f43cf58023d11b18ed98e472be7089838538f97 EssentialsXAntiBuild-2.19.2.jar +211c575adde17c3f2f901144e5c31beb2918df7e6e15f8ebe16805d3b53214a4756b87ec84466790ebf1dacb41e1aea97b6a9ba8ed39e85092293a821044d579 EssentialsXDiscord-2.19.2.jar +7845e7666f983d3e793528a7085ced7c9f1bf881740bcc68b6a54fea74e31c3c0c2a52e26fc20330ba7d4a190dad0a1b27195fed0e1417a48494c5fa2ac60d92 EssentialsXGeoIP-2.19.2.jar +e74ed72a15b5e6cd3c5f61d032a26c151865e3197638c9059237dc2d1144b0cb15668545532fc532ac8ec247bdf9b9ee6843b8f4af7506aef86d155dd5672c5f EssentialsXProtect-2.19.2.jar +8d35009499557700f49c27ca3132e866f511a200791dbcfd2f595396977058cc2fc9349d0b4eaa0eb67b27331e91e6209df6ed57a766c06fd3b3325718462478 EssentialsXXMPP-2.19.2.jar " diff --git a/apk/v3.15/main/craftbukkit-plugin-luckperms/APKBUILD b/apk/v3.15/main/craftbukkit-plugin-luckperms/APKBUILD index a3cad5e..3250243 100644 --- a/apk/v3.15/main/craftbukkit-plugin-luckperms/APKBUILD +++ b/apk/v3.15/main/craftbukkit-plugin-luckperms/APKBUILD @@ -1,15 +1,15 @@ # Maintainer: Antoine Martin (ayakael) pkgname=craftbukkit-plugin-luckperms -_pkgver=5.3.77 -_buildver=1376 +_pkgver=5.3.89 +_buildver=1389 pkgver=$_pkgver.$_buildver -pkgrel=2 +pkgrel=0 pkgdesc="An advanced permissions plugin for Bukkit/Spigot, BungeeCord and Sponge." options=!check arch='noarch' url="https://github.com/lucko/LuckPerms" license="MIT" -depends="craftbukkit>=1.8.8 craftbukkit<=1.17.1" +depends="craftbukkit>=1.8.8 craftbukkit<=1.18.1" source="https://ci.lucko.me/job/LuckPerms/${_buildver}/artifact/bukkit/loader/build/libs/LuckPerms-Bukkit-${_pkgver}.jar" noextract="LuckPerms-Bukkit-$_pkgver.jar" @@ -18,5 +18,5 @@ package() { chown craftbukkit:craftbukkit "$pkgdir"/var/lib/craftbukkit/plugins/LuckPerms.jar } sha512sums=" -df1c3b467b1a39369d850acef3adc7a50900cb0bcd2655642ee10e23ec5c77d410eb7deab067636f8a0044ae9ee350429f60278fa4e80b985243b9aab02b4d3d LuckPerms-Bukkit-5.3.77.jar +7e146616cdf7f667c483bbe2112439c85f32427e9aa3714f0b0e869abf0cde6aacc7341d8d9e6a72ddcf8f35af840f4ba678c4690222912113f497cafce11154 LuckPerms-Bukkit-5.3.89.jar " diff --git a/apk/v3.15/main/craftbukkit-plugin-worldedit/APKBUILD b/apk/v3.15/main/craftbukkit-plugin-worldedit/APKBUILD index e4a6a48..4d41875 100644 --- a/apk/v3.15/main/craftbukkit-plugin-worldedit/APKBUILD +++ b/apk/v3.15/main/craftbukkit-plugin-worldedit/APKBUILD @@ -1,15 +1,15 @@ # Maintainer: Antoine Martin (ayakael) pkgname=craftbukkit-plugin-worldedit -pkgver=7.2.7 +pkgver=7.2.8 _pkgver=${pkgver} pkgrel=0 pkgdesc="WorldEdit is an easy-to-use in-game Minecraft map editor" options=!check arch='noarch' -url="https://media.forgecdn.net/files/3379/705/worldedit-bukkit-7.2.6-beta-01.jar" +url="https://dev.bukkit.org/projects/worldedit" license="GPL-3.0" -depends="craftbukkit>=1.13.2 craftbukkit<=1.17.1" -source="https://media.forgecdn.net/files/3502/99/worldedit-bukkit-${_pkgver}.jar" +depends="craftbukkit>=1.13.2 craftbukkit<=1.18.1" +source="https://media.forgecdn.net/files/3559/523/worldedit-bukkit-7.2.8.jar" noextract="worldedit-bukkit-${_pkgver}.jar" package() { @@ -17,5 +17,5 @@ package() { chown craftbukkit:craftbukkit $pkgdir/var/lib/craftbukkit/plugins/WorldEdit.jar } sha512sums=" -914063eae8b51fd3fdd14e5fd4ffe6f53fa6abea0e0295bd2daf26228fe25ee3941d0eaa8ba6b2f6ffe79802fdb0bfba63754b0e3b1842fd164850ec31e3643e worldedit-bukkit-7.2.7.jar +b57eacf7a2d90461f996f71cf55aa2e328d7b75c724291f11bcd1ab0f7e64e980db7ae3a2a56fffdf2bc31bfbcf68dda89b7c6f2ffa32ee430b8016020d796e3 worldedit-bukkit-7.2.8.jar " diff --git a/apk/v3.15/main/craftbukkit-plugin-worldguard/APKBUILD b/apk/v3.15/main/craftbukkit-plugin-worldguard/APKBUILD index d47af4b..4afce00 100644 --- a/apk/v3.15/main/craftbukkit-plugin-worldguard/APKBUILD +++ b/apk/v3.15/main/craftbukkit-plugin-worldguard/APKBUILD @@ -2,14 +2,14 @@ pkgname=craftbukkit-plugin-worldedit pkgver=7.0.6 _pkgver=${pkgver} -pkgrel=1 +pkgrel=2 pkgdesc="WorldGuard lets you and players guard areas of land against griefers and undesirables" options=!check arch='noarch' url="https://dev.bukkit.org/projects/worldguard" license="GPL-3.0" -depends="craftbukkit>=1.17.0 craftbukkit<=1.17.1" -source="https://media.forgecdn.net/files/3461/546/worldguard-bukkit-${_pkgver}-dist.jar" +depends="craftbukkit>=1.17.0 craftbukkit<=1.18.1" +source="https://media.forgecdn.net/files/3461/546/worldguard-bukkit-7.0.6-dist.jar" noextract="worldguard-bukkit-${_pkgver}-dist.jar" package() { diff --git a/apk/v3.15/main/dotnet21-stage0/APKBUILD b/apk/v3.15/main/dotnet21-stage0/APKBUILD new file mode 100644 index 0000000..a5dc03b --- /dev/null +++ b/apk/v3.15/main/dotnet21-stage0/APKBUILD @@ -0,0 +1,91 @@ +# Maintainer: Antoine Martin (ayakael) + +pkgname=dotnet21-stage0 +pkgdesc="The .NET Core SDK" +pkgver=2.1.524 +pkgrel=0 +arch="x86_64" +url=https://www.microsoft.com/net/core +license="MIT" +makedepends=" + libcurl + krb5-libs + libintl + lttng-ust + zlib + " +subpackages=" + dotnet21-stage0-runtime:runtime + dotnet21-stage0-sdk:sdk + dotnet21-stage0-host:host + " +options="!check" # No test suite +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" + +# Disables dependency tracing for symlinks, thus fixing per-subpkg pkgver setting +scan_symlink_targets() { + return +} + +package() { + export _runtimever=$("$srcdir"/dotnet --list-runtimes | awk '($1 == "Microsoft.NETCore.App"){print $2}') + export _sdkver=$("$srcdir"/dotnet --list-sdks | awk '{print $1}') + + depends=" + dotnet21-stage0-sdk + dotnet21-stage0-runtime + dotnet21-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 + + install -dm 755 "$subpkgdir"/etc/profile.d "$subpkgdir"/usr/bin "$subpkgdir"/usr/lib "$subpkgdir"/usr/share/dotnet "$subpkgdir"/usr/share/licenses/dotnet-host + + tar -xzf "$srcdir"/dotnet-sdk-*.tar.gz -C "$subpkgdir"/usr/share/dotnet/ --no-same-owner ./dotnet ./host + tar -xzf "$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=dotnet21-bootstrap-sdk + depends="dotnet21-bootstrap-runtime" + pkgver=$_sdkver + provider_priority=1 + + install -dm 755 "$subpkgdir"/usr/share/dotnet "$subpkgdir"/usr/share/licenses + tar -xzf "$srcdir"/dotnet-sdk-*.tar.gz -C "$subpkgdir"/usr/share/dotnet/ --no-same-owner ./sdk + ln -s dotnet-host "$subpkgdir"/usr/share/licenses/dotnet21-sdk +} + +runtime() { + pkgdesc="The .NET Core runtime" + pkgver=$_runtimever + depends="dotnet-host" + provides=dotnet21-bootstrap-runtime + provider_priority=1 + + install -dm 755 "$subpkgdir"/usr/share/dotnet "$subpkgdir"/usr/share/licenses + tar -xzf "$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/dotnet21-runtime +} + +sha512sums=" +5cbb7e619921a4438330aac1c70f05a3920f21b4a5ad45d2c5602a402f355f017273c9496b2db2abed2d25819bdadd74326d39fc380c7402027517621de02310 dotnet-sdk-2.1.524-linux-musl-x64.tar.gz +f58bd83b709dcb4b0b67830756069c34258a167b33cb290cbf30f21d69d75402d38e013fd7bbf00640fe19e397f78df6ff787cf8484ee8967d5b8809f033eafb dotnet.sh +" diff --git a/apk/v3.15/main/dotnet21-stage0/README.md b/apk/v3.15/main/dotnet21-stage0/README.md new file mode 100644 index 0000000..ff789d4 --- /dev/null +++ b/apk/v3.15/main/dotnet21-stage0/README.md @@ -0,0 +1,15 @@ +# 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 +* Havn't tested for builds with armv7 and aarch64 as dotnet31-stage0 doesn't +have bootstrap binaries available for those architectures, need to figure this +out diff --git a/apk/v3.15/main/dotnet21-stage0/dotnet.sh b/apk/v3.15/main/dotnet21-stage0/dotnet.sh new file mode 100644 index 0000000..085d677 --- /dev/null +++ b/apk/v3.15/main/dotnet21-stage0/dotnet.sh @@ -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" + diff --git a/apk/v3.15/main/dotnet21/APKBUILD b/apk/v3.15/main/dotnet21/APKBUILD new file mode 100644 index 0000000..aa3b147 --- /dev/null +++ b/apk/v3.15/main/dotnet21/APKBUILD @@ -0,0 +1,240 @@ +# Maintainer: Antoine Martin (ayakael) + +# Build vars +_llvmver=12 + +pkgname=dotnet21 +pkgdesc="The .NET Core SDK" +pkgver=2.1.524 +pkgrel=0 +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 + libintl + lldb-dev + llvm$_llvmver-dev + lttng-ust-dev + linux-headers + nodejs + openssl-dev + zlib-dev + dotnet21-bootstrap-sdk + dotnet21-bootstrap-runtime +" +subpackages=" + dotnet21-host:host + dotnet21-sdk:sdk + dotnet21-runtime:runtime + aspnet21-runtime:aspnet_runtime:noarch + dotnet21-targeting-pack:targeting_pack + aspnet21-targeting-pack:aspnet_targeting_pack:noarch + netstandard21-targeting-pack:netstandard_targeting_pack:noarch + " +_gittag=v$pkgver-SDK +_giturl=https://github.com/dotnet/source-build +options="!check" # No test suite +source=" + $pkgname-$_gittag.tar.gz::$_giturl/archive/refs/tags/$_gittag.tar.gz + dotnet.sh +" +_srcbld="source-build-$(echo $_gittag | sed 's|v||')" +builddir="$srcdir/$_srcbld" + +# Disables dependency tracing for symlinks, thus fixing per-subpkg pkgver setting +scan_symlink_targets() { + return +} + +_patch() { + local i failed= + 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 +} + +prepare() { + _patch + msg "Settings up bootstrap SDK" + cp -r /usr/share/dotnet/* ./ + if [ "$(find sdk -type d -not -name '2.1.*' -maxdepth 1 -mindepth 1)" ]; then + find sdk -type d -not -name '2.1.*' -maxdepth 1 -mindepth 1 -print0 | xargs -0 rm -R -- + fi + + # disable warnings + sed -i "s|skiptests|skiptests ignorewarnings|" repos/coreclr.proj + + # darc git init + git init +} + + +build() { + msg "Building $pkgname-$pkgver" + export SOURCE_BUILD_SKIP_SUBMODULE_CHECK=1 + + ./build.sh \ + --with-sdk ../$_srcbld \ + /p:ArchiveDownloadedPackages=true \ + /p:ContinueOnPrebuiltBaselineError=true \ + /p:SkipPortableRuntimeBuild=true \ + /p:SkipPrebuiltEnforcement=true \ + /p:UseSystemLibraries=true \ + /p:UseSystemLibunwind=true +} + +package() { + depends=" + dotnet21-sdk + dotnet-host + dotnet21-runtime + dotnet21-targeting-pack + aspnet21-runtime + aspnet21-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=" + dotnet21-runtime + dotnet21-targeting-pack + netstandard21-targeting-pack + aspnet21-targeting-pack + " + pkgver=$_sdkver + provider_priority=100 + provides="dotnet21-bootstrap-sdk" + + cd "$builddir"/artifacts/x64/Release + + install -dm 755 "$subpkgdir"/usr/share/dotnet "$subpkgdir"/usr/share/licenses + tar -xzf dotnet-sdk-3.1*.tar.gz -C "$subpkgdir"/usr/share/dotnet/ --no-same-owner ./sdk ./templates + ln -s dotnet-host "$subpkgdir"/usr/share/licenses/dotnet21-sdk +} + + +host() { + pkgdesc="A generic driver for the .NET Core Command Line Interface" + pkgver=$_runtimever + provides="dotnet-host" + provider_priority=2 + + 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 + + tar -xzf dotnet-sdk-3.1*.tar.gz -C "$subpkgdir"/usr/share/dotnet/ --no-same-owner ./dotnet ./host + tar -xzf dotnet-sdk-3.1*.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" + pkgver=$_runtimever + depends="dotnet-host" + provider_priority=100 + provides="dotnet21-bootstrap-runtime" + + cd "$builddir"/artifacts/x64/Release + + install -dm 755 "$subpkgdir"/usr/share/dotnet "$subpkgdir"/usr/share/licenses + tar -xzf 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/dotnet21-runtime +} + +aspnet_runtime() { + pkgdesc="The ASP.NET Core runtime" + pkgver=$_runtimever + depends="dotnet21-runtime" + + cd "$builddir"/artifacts/x64/Release + + install -dm 755 "$subpkgdir"/usr/share/dotnet "$subpkgdir"/usr/share/licenses + tar -xzf 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/aspnet21-runtime +} + +targeting_pack() { + pkgdesc="The .NET Core targeting pack" + pkgver=$_runtimever + depends="netstandard21-targeting-pack" + + cd "$builddir"/artifacts/x64/Release + + install -dm 755 "$subpkgdir"/usr/share/dotnet "$subpkgdir"/usr/share/licenses + tar -xzf dotnet-sdk-3.1*.tar.gz -C "$subpkgdir"/usr/share/dotnet/ --no-same-owner --wildcards ./packs/Microsoft.NETCore.App.Host.* ./packs/Microsoft.NETCore.App.Ref + ln -s dotnet-host "$subpkgdir"/usr/share/licenses/dotnet21-targeting-pack +} + +netstandard_targeting_pack() { + pkgdesc="The .NET Standard targeting pack" + pkgver=$_runtimever + provides="netstandard21-targeting-pack" + provider_priority=100 + + cd "$builddir"/artifacts/x64/Release + + install -dm 755 "$subpkgdir"/usr/share/dotnet "$subpkgdir"/usr/share/licenses + tar -xzf 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/netstandard21-targeting-pack +} + + +aspnet_targeting_pack() { + pkgdesc="The ASP.NET Core targeting pack" + pkgver=$_runtimever + depends="dotnet21-targeting-pack" + + cd "$builddir"/artifacts/x64/Release + + install -dm 755 "$subpkgdir"/usr/share/dotnet "$subpkgdir"/usr/share/licenses + tar -xzf 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/aspnet21-targeting-pack +} + +sha512sums=" +feb388f7a0f3dfebbee85a8e27ada8f275a2cde0ff28540ba2c7438e3e834577fb2c12fcc168c5ff834042b10e5779ae42875f06ccc4628874274d118d6abf8a dotnet21-v2.1.524-SDK.tar.gz +e61b9e3e5a2305646a616d598378230c9755c5dd5363692cc363f8f4add3807563c324dd86f3a7ae9d358c82d730608e7b293935a2b6c81c0c0f62d752a0a1cf dotnet.sh +" diff --git a/apk/v3.15/main/dotnet21/README.md b/apk/v3.15/main/dotnet21/README.md new file mode 100644 index 0000000..66d286a --- /dev/null +++ b/apk/v3.15/main/dotnet21/README.md @@ -0,0 +1,55 @@ +# Description +APKBUILD for dotnet31. + +# 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 +* 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 apparent +lack of -stage0 binaries for dotnet31 + +# Patch notes + +## application-insights_fix-net40-location.patch + Because paths on Linux are case sensitive. Applications insights looks + for /src/Core/Managed/net40 in net40 + while the repo has a Net40. Patch moves whatever is in Net40 to net40. +## build_coreclr-tools-path.patch + Various steps in the build process looks for ilasm in ildasm in + $builddir/src/dotnet-3.1/Tools/source-built/coreclr-tools/x64 while they are + built to $builddir/src/dotnet-3.1/Tools/source-built/coreclr-tools. + This patches to look for ilasm and ildasm + in correct path. +## build_darc-fix-alpine.patch + Darc has a segmentation fault on Alpine due to not chosing the correct + binary architecture. This patch deletes all the wrong ones so that it + is forced to chose the correct one. See issue dotnet/source-build #1868 +## coreclr_fix-build-on-Alpine-edge-45352.patch + Fixes a build error for Alpine Linux. It has since been fixed in dotnet-5.0, + see issue dotnet/runtime 45352. +## corefx_fix-build-clang10.patch + Fixes a build error for clang 10 +## core-setup_rid-plat-generation-on-alpine-fix.patch + /src/corehost/build.sh generates wrong plat_rid on Alpine + Generated RID is expected to be alpine.x.xx-xx, while the computed RID + is linux-musl-xxx. This patches it by matching what's expected. +## coreclr_non-portable-distrorid-fix-alpine.patch + /init-distro-id.sh generates incorrect DistroRid on Alpine. + While the expected DistroRid (alpine-x.xx-xxx) should only include macro + version, init-distro-id.sh includes the micro version. This patches it + to cut off the trailing subversion off of VERSION_ID by treating it + the same way RHEL's VERSION_ID is treated. +## installer_generate-layout-core-setup-blob-path-fix.patch + blobs are written to $builddir/artifacts/obj/x64/Release/ + blobs/Runtime/3.1.20-alpine.3.15 while installer expects them in 3.1.20. + This patches /src/redist/targets/GenerateLayout.targets + to point to actual path. diff --git a/apk/v3.15/main/dotnet21/application-insights_fix-net40-location.patch b/apk/v3.15/main/dotnet21/application-insights_fix-net40-location.patch new file mode 100644 index 0000000..753b310 --- /dev/null +++ b/apk/v3.15/main/dotnet21/application-insights_fix-net40-location.patch @@ -0,0 +1,17 @@ +From 387efb0ac01e40cd85cf9f5ce770be6437265ca4 Mon Sep 17 00:00:00 2001 +From: "build@apk-groulx" +Date: Fri, 4 Jun 2021 13:32:53 +0000 +Subject: [PATCH] FIxed Net40 location + +--- + src/Core/Managed/{Net40 => net40}/CorrelationHelper.cs | 0 + 1 file changed, 0 insertions(+), 0 deletions(-) + rename src/Core/Managed/{Net40 => net40}/CorrelationHelper.cs (100%) + +diff --git a/src/Core/Managed/Net40/CorrelationHelper.cs b/src/Core/Managed/net40/CorrelationHelper.cs +similarity index 100% +rename from src/Core/Managed/Net40/CorrelationHelper.cs +rename to src/Core/Managed/net40/CorrelationHelper.cs +-- +2.30.2 + diff --git a/apk/v3.15/main/dotnet21/build_coreclr-tools-path.patch b/apk/v3.15/main/dotnet21/build_coreclr-tools-path.patch new file mode 100644 index 0000000..e89187f --- /dev/null +++ b/apk/v3.15/main/dotnet21/build_coreclr-tools-path.patch @@ -0,0 +1,62 @@ +From 4603257752b01b60f1c1f2d1c2a77e07ae814647 Mon Sep 17 00:00:00 2001 +From: "build@apk-groulx" +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 ++-- + 4 files changed, 6 insertions(+), 6 deletions(-) + +diff --git a/Directory.Build.props b/Directory.Build.props +index f6a6f54..8247c3e 100644 +--- a/Directory.Build.props ++++ b/Directory.Build.props +@@ -133,8 +133,8 @@ + $(BaseOutputPath)aspnet-debug + $(AspNetRazorBuildServerLogDir)razor-build-server.log + invalid: ILAsm is not expected to be needed in the online build +- $(PrebuiltSourceBuiltPackagesPath)coreclr-tools/$(BuildArchitecture)/ilasm +- $(ToolPackageExtractDir)coreclr-tools/$(BuildArchitecture)/ildasm ++ $(PrebuiltSourceBuiltPackagesPath)coreclr-tools/ilasm ++ $(ToolPackageExtractDir)coreclr-tools/ildasm + invalid: ILDasm is not expected to be needed in the offline build + + $(BaseOutputPath)git-info/ +diff --git a/repos/coreclr-portable.proj b/repos/coreclr-portable.proj +index 78adc14..378547e 100644 +--- a/repos/coreclr-portable.proj ++++ b/repos/coreclr-portable.proj +@@ -19,7 +19,7 @@ + Inputs="$(MSBuildProjectFullPath)" + Outputs="$(RepoCompletedSemaphorePath)CopyTools.complete"> + +- $(ToolPackageExtractDir)coreclr-tools/$(BuildArchitecture) ++ $(ToolPackageExtractDir)coreclr-tools + so + so + dylib +diff --git a/repos/coreclr.proj b/repos/coreclr.proj +index 7e67b28..037c68a 100644 +--- a/repos/coreclr.proj ++++ b/repos/coreclr.proj +@@ -15,11 +15,11 @@ + + + +- $(ToolPackageExtractDir)coreclr-tools/$(BuildArchitecture) ++ $(ToolPackageExtractDir)coreclr-tools + so + so + dylib +-- +2.34.0 + diff --git a/apk/v3.15/main/dotnet21/build_darc-fix-alpine.patch b/apk/v3.15/main/dotnet21/build_darc-fix-alpine.patch new file mode 100644 index 0000000..9731c43 --- /dev/null +++ b/apk/v3.15/main/dotnet21/build_darc-fix-alpine.patch @@ -0,0 +1,26 @@ +From d07d50c6f8a5793badc50fb2c964b87dec87a3a1 Mon Sep 17 00:00:00 2001 +From: "build@apk-groulx" +Date: Thu, 15 Jul 2021 15:37:33 +0000 +Subject: [PATCH 1/1] Fixed darc init for Alpine + +--- + eng/common/darc-init.sh | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/eng/common/darc-init.sh b/eng/common/darc-init.sh +index 82b2b57..5227a37 100755 +--- a/eng/common/darc-init.sh ++++ b/eng/common/darc-init.sh +@@ -77,6 +77,9 @@ function InstallDarcCli { + else + echo $($dotnet_root/dotnet tool install $darc_cli_package_name --version $darcVersion --add-source "$arcadeServicesSource" -v $verbosity --tool-path "$toolpath") + fi ++ for i in win* ubuntu.1* rhel-x64 osx fedora-x64 debian*; do ++ rm -R $toolpath/.store/microsoft.dotnet.darc/*/microsoft.dotnet.darc/*/tools/netcoreapp3.0/any/runtimes/${i} ++ done + } + + InstallDarcCli +-- +2.30.2 + diff --git a/apk/v3.15/main/dotnet21/core-sdk_generate-layout-core-setup-blob-path-fix.patch b/apk/v3.15/main/dotnet21/core-sdk_generate-layout-core-setup-blob-path-fix.patch new file mode 100644 index 0000000..f8b2294 --- /dev/null +++ b/apk/v3.15/main/dotnet21/core-sdk_generate-layout-core-setup-blob-path-fix.patch @@ -0,0 +1,25 @@ +From 94e8b5473285f0ae97204c726b2f8119f178f197 Mon Sep 17 00:00:00 2001 +From: "build@apk-groulx" +Date: Sun, 5 Dec 2021 15:33:35 +0000 +Subject: [PATCH 1/1] GenerateLayout CoreSetup blob path fix + +--- + 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 eb4e312c0..240dbf403 100644 +--- a/src/redist/targets/GenerateLayout.targets ++++ b/src/redist/targets/GenerateLayout.targets +@@ -12,7 +12,7 @@ + + + $(MicrosoftAspNetCoreAppRuntimewinx64PackageVersion) +- $(MicrosoftNETCoreAppRuntimePackageVersion) ++ $(MicrosoftNETCoreAppRuntimePackageVersion)-$([System.Text.RegularExpressions.Regex]::Replace($(Rid), "-.*", "")) + + + 3.1.0-rtm.19565.2 +-- +2.34.0 + diff --git a/apk/v3.15/main/dotnet21/core-setup_rid-plat-generation-on-alpine-fix.patch b/apk/v3.15/main/dotnet21/core-setup_rid-plat-generation-on-alpine-fix.patch new file mode 100644 index 0000000..afbed67 --- /dev/null +++ b/apk/v3.15/main/dotnet21/core-setup_rid-plat-generation-on-alpine-fix.patch @@ -0,0 +1,32 @@ +From c65a25ff18fa16dd0f134897b93919eab6a57bb9 Mon Sep 17 00:00:00 2001 +From: "build@apk-groulx" +Date: Sat, 4 Dec 2021 06:12:30 +0000 +Subject: [PATCH 1/1] Fixed __rid_plat generation on alpine for core-setup + +--- + src/corehost/build.sh | 5 +---- + 1 file changed, 1 insertion(+), 4 deletions(-) + +diff --git a/src/corehost/build.sh b/src/corehost/build.sh +index fb503e74..854b7f8a 100755 +--- a/src/corehost/build.sh ++++ b/src/corehost/build.sh +@@ -21,14 +21,11 @@ init_rid_plat() + __rid_plat="" + if [ -e /etc/os-release ]; then + source /etc/os-release +- if [[ "$ID" == "rhel" ]]; then ++ if [ "$ID" == "rhel" ] || [ "$ID" == "alpine" ] ; then + # remove the last version number + VERSION_ID=${VERSION_ID%.*} + fi + __rid_plat="$ID.$VERSION_ID" +- if [[ "$ID" == "alpine" ]]; then +- __rid_plat="linux-musl" +- fi + elif [ -e /etc/redhat-release ]; then + local redhatRelease=$( +Date: Sat, 10 Jul 2021 06:02:50 +0000 +Subject: [PATCH] Fix build on Alpine edge (#45352) + +--- + src/pal/src/include/pal/palinternal.h | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/src/pal/src/include/pal/palinternal.h b/src/pal/src/include/pal/palinternal.h +index 77978f30d7..bcc8d0d947 100644 +--- a/src/pal/src/include/pal/palinternal.h ++++ b/src/pal/src/include/pal/palinternal.h +@@ -173,6 +173,7 @@ function_name() to call the system's implementation + #define memset DUMMY_memset + #define memmove DUMMY_memmove + #define memchr DUMMY_memchr ++#define atoll DUMMY_atoll + #define strlen DUMMY_strlen + #define stricmp DUMMY_stricmp + #define strstr DUMMY_strstr +@@ -371,6 +372,7 @@ function_name() to call the system's implementation + #undef memset + #undef memmove + #undef memchr ++#undef atoll + #undef strlen + #undef strnlen + #undef wcsnlen +-- +2.30.2 diff --git a/apk/v3.15/main/dotnet21/coreclr_non-portable-distrorid-fix-alpine.patch b/apk/v3.15/main/dotnet21/coreclr_non-portable-distrorid-fix-alpine.patch new file mode 100644 index 0000000..df69c48 --- /dev/null +++ b/apk/v3.15/main/dotnet21/coreclr_non-portable-distrorid-fix-alpine.patch @@ -0,0 +1,41 @@ +From 88a1cd85cbc73631d67406b3ad740ee7bd36bc8b Mon Sep 17 00:00:00 2001 +From: "build@apk-groulx" +Date: Sat, 4 Dec 2021 05:03:48 +0000 +Subject: [PATCH 1/1] Fix non-portable distrorid alpine generation + +--- + init-distro-rid.sh | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/init-distro-rid.sh b/init-distro-rid.sh +index 49d8981c4f..7cec3cf649 100755 +--- a/init-distro-rid.sh ++++ b/init-distro-rid.sh +@@ -51,7 +51,7 @@ initNonPortableDistroRid() + # We have forced __PortableBuild=0. This is because -portablebuld + # has been passed as false. + if (( ${isPortable} == 0 )); then +- if [ "${ID}" == "rhel" ]; then ++ if [ "${ID}" == "rhel" ] || [ "${ID}" = "alpine" ]; then + # remove the last version digit + VERSION_ID=${VERSION_ID%.*} + fi +@@ -73,7 +73,7 @@ initNonPortableDistroRid() + fi + elif [ -e "${rootfsDir}/android_platform" ]; then + source $rootfsDir/android_platform +- nonPortableBuildID="$RID" ++ HE nonPortableBuildID="$RID" + fi + fi + +@@ -185,4 +185,4 @@ initDistroRidGlobal() + + export __RuntimeId=${__DistroRid} + fi +-} +\ No newline at end of file ++} +-- +2.34.0 + diff --git a/apk/v3.15/main/dotnet21/corefx_added-alpine-315-rid.patch b/apk/v3.15/main/dotnet21/corefx_added-alpine-315-rid.patch new file mode 100644 index 0000000..dbbfe20 --- /dev/null +++ b/apk/v3.15/main/dotnet21/corefx_added-alpine-315-rid.patch @@ -0,0 +1,125 @@ +From 4243324d64dda9fbcaa76c37cf1e5090205d0320 Mon Sep 17 00:00:00 2001 +From: "build@apk-groulx" +Date: Sat, 4 Dec 2021 04:59:26 +0000 +Subject: [PATCH 1/1] Added Alpine 3.15 rid + +--- + .../runtime.compatibility.json | 53 ++++++++++++++++++- + pkg/Microsoft.NETCore.Platforms/runtime.json | 13 ++++- + .../runtimeGroups.props | 2 +- + 3 files changed, 65 insertions(+), 3 deletions(-) + +diff --git a/pkg/Microsoft.NETCore.Platforms/runtime.compatibility.json b/pkg/Microsoft.NETCore.Platforms/runtime.compatibility.json +index f34e8dbb82..6b0678be9f 100644 +--- a/pkg/Microsoft.NETCore.Platforms/runtime.compatibility.json ++++ b/pkg/Microsoft.NETCore.Platforms/runtime.compatibility.json +@@ -224,6 +224,57 @@ + "any", + "base" + ], ++ "alpine.3.15": [ ++ "alpine.3.15", ++ "alpine.3.14", ++ "alpine.3.13", ++ "alpine.3.12", ++ "alpine.3.11", ++ "alpine.3.10", ++ "alpine.3.9", ++ "alpine.3.8", ++ "alpine.3.7", ++ "alpine.3.6", ++ "alpine", ++ "linux-musl", ++ "linux", ++ "unix", ++ "any", ++ "base" ++ ], ++ "alpine.3.15-x64": [ ++ "alpine.3.15-x64", ++ "alpine.3.15", ++ "alpine.3.14-x64", ++ "alpine.3.14", ++ "alpine.3.13-x64", ++ "alpine.3.13", ++ "alpine.3.12-x64", ++ "alpine.3.12", ++ "alpine.3.11-x64", ++ "alpine.3.11", ++ "alpine.3.10-x64", ++ "alpine.3.10", ++ "alpine.3.9-x64", ++ "alpine.3.9", ++ "alpine.3.8-x64", ++ "alpine.3.8", ++ "alpine.3.7-x64", ++ "alpine.3.7", ++ "alpine.3.6-x64", ++ "alpine.3.6", ++ "alpine-x64", ++ "alpine", ++ "linux-musl-x64", ++ "linux-musl", ++ "linux-x64", ++ "linux", ++ "unix-x64", ++ "unix", ++ "any", ++ "base" ++ ], ++ + "alpine.3.6": [ + "alpine.3.6", + "alpine", +@@ -5372,4 +5423,4 @@ + "any", + "base" + ] +-} +\ No newline at end of file ++} +diff --git a/pkg/Microsoft.NETCore.Platforms/runtime.json b/pkg/Microsoft.NETCore.Platforms/runtime.json +index 20082ac80f..20485cce4d 100644 +--- a/pkg/Microsoft.NETCore.Platforms/runtime.json ++++ b/pkg/Microsoft.NETCore.Platforms/runtime.json +@@ -66,6 +66,17 @@ + "alpine.3.13-x64" + ] + }, ++ "alpine.3.15": { ++ "#import": [ ++ "alpine.3.14" ++ ] ++ }, ++ "alpine.3.15-x64": { ++ "#import": [ ++ "alpine.3.15", ++ "alpine.3.14-x64" ++ ] ++ }, + "alpine.3.6": { + "#import": [ + "alpine" +@@ -2453,4 +2464,4 @@ + ] + } + } +-} +\ No newline at end of file ++} +diff --git a/pkg/Microsoft.NETCore.Platforms/runtimeGroups.props b/pkg/Microsoft.NETCore.Platforms/runtimeGroups.props +index 3434ed138a..c466a38915 100644 +--- a/pkg/Microsoft.NETCore.Platforms/runtimeGroups.props ++++ b/pkg/Microsoft.NETCore.Platforms/runtimeGroups.props +@@ -16,7 +16,7 @@ + + linux-musl + x64 +- 3.6;3.7;3.8;3.9;3.10;3.11;3.12;3.13;3.14 ++ 3.6;3.7;3.8;3.9;3.10;3.11;3.12;3.13;3.14;3.15 + + + +-- +2.34.0 + diff --git a/apk/v3.15/main/dotnet21/corefx_fix-build-clang10.patch b/apk/v3.15/main/dotnet21/corefx_fix-build-clang10.patch new file mode 100644 index 0000000..a1578ba --- /dev/null +++ b/apk/v3.15/main/dotnet21/corefx_fix-build-clang10.patch @@ -0,0 +1,26 @@ + +From cfd492403e5a0f8d7d170937ca71a2bbe40563a3 Mon Sep 17 00:00:00 2001 +From: "build@apk-groulx" +Date: Thu, 29 Jul 2021 19:49:08 +0000 +Subject: [PATCH 1/1] fix build clang10 + +--- + src/Native/Unix/CMakeLists.txt | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/src/Native/Unix/CMakeLists.txt b/src/Native/Unix/CMakeLists.txt +index c5772c7e02..910823581d 100644 +--- a/src/Native/Unix/CMakeLists.txt ++++ b/src/Native/Unix/CMakeLists.txt +@@ -26,6 +26,8 @@ add_compile_options(-Wno-empty-translation-unit) + add_compile_options(-Wno-cast-align) + add_compile_options(-Wno-typedef-redefinition) + add_compile_options(-Wno-c11-extensions) ++add_compile_options(-Wno-sign-conversion) ++add_compile_options(-Wno-unused-result) + add_compile_options(-I${CMAKE_CURRENT_SOURCE_DIR}/Common) + add_compile_options(-I${CMAKE_CURRENT_BINARY_DIR}/Common) + add_compile_options(-g) +-- +2.32.0 + diff --git a/apk/v3.15/main/dotnet21/dotnet.sh b/apk/v3.15/main/dotnet21/dotnet.sh new file mode 100644 index 0000000..fcc0bfd --- /dev/null +++ b/apk/v3.15/main/dotnet21/dotnet.sh @@ -0,0 +1,12 @@ +# 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" diff --git a/apk/v3.15/main/dotnet31-stage0/APKBUILD b/apk/v3.15/main/dotnet31-stage0/APKBUILD index 293c063..e851fd9 100644 --- a/apk/v3.15/main/dotnet31-stage0/APKBUILD +++ b/apk/v3.15/main/dotnet31-stage0/APKBUILD @@ -1,83 +1,95 @@ # Maintainer: Antoine Martin (ayakael) pkgname=dotnet31-stage0 -pkgdesc='The .NET Core SDK' +pkgdesc="The .NET Core SDK" pkgver=3.1.120 -pkgrel=0 -arch='x86_64 aarch64 armv7' +_runtimever=3.1.22 +pkgrel=2 +arch="x86_64 aarch64" url=https://www.microsoft.com/net/core -license='MIT' +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" +options="!check" # No test suite case $CARCH in - x86_64)_arch=x64;; - aarch64)_arch=arm64;; - armv7)_arch=arm;; + x86_64) + _arch=x64 + source="https://dotnetcli.azureedge.net/dotnet/Sdk/$pkgver/dotnet-sdk-$pkgver-linux-musl-$_arch.tar.gz" + subpackages="$subpackages dotnet31-stage0-sdk:sdk" + ;; + aarch64) + _arch=arm64 + source="https://dotnetcli.azureedge.net/dotnet/Runtime/$_runtimever/dotnet-runtime-$_runtimever-linux-musl-$_arch.tar.gz" + ;; esac source=" - https://dotnetcli.azureedge.net/dotnet/Sdk/$pkgver/dotnet-sdk-$pkgver-linux-musl-$_arch.tar.gz + $source dotnet.sh " + + builddir="$srcdir" +# Disables dependency tracing for symlinks, thus fixing per-subpkg pkgver setting +scan_symlink_targets() { + return +} + 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 + depends=" dotnet31-stage0-runtime dotnet31-stage0-host - ' + " + [ $CARCH == "x86_64" ] && depends="$depends dotnet31-stage0-sdk" mkdir -p "$pkgdir" } host() { - pkgdesc='A generic driver for the .NET Core Command Line Interface' + 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 + tar -xzf "$srcdir"/dotnet-sdk-*.tar.gz -C "$subpkgdir"/usr/share/dotnet/ --no-same-owner ./dotnet ./host + tar -xzf "$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 + depends="dotnet31-bootstrap-runtime" 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 + tar -xzf "$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' + pkgdesc="The .NET Core runtime" pkgver=$_runtimever + depends="dotnet-host" 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 + tar -xzf "$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 } diff --git a/apk/v3.15/main/dotnet31-stage0/README.md b/apk/v3.15/main/dotnet31-stage0/README.md index 1d75229..ff789d4 100644 --- a/apk/v3.15/main/dotnet31-stage0/README.md +++ b/apk/v3.15/main/dotnet31-stage0/README.md @@ -10,7 +10,6 @@ of above packages, and more) 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. +* Havn't tested for builds with armv7 and aarch64 as dotnet31-stage0 doesn't +have bootstrap binaries available for those architectures, need to figure this +out diff --git a/apk/v3.15/main/dotnet31-stage0/dotnet-install.sh b/apk/v3.15/main/dotnet31-stage0/dotnet-install.sh new file mode 100755 index 0000000..31303d9 --- /dev/null +++ b/apk/v3.15/main/dotnet31-stage0/dotnet-install.sh @@ -0,0 +1,1092 @@ +#!/usr/bin/env bash +# Copyright (c) .NET Foundation and contributors. All rights reserved. +# Licensed under the MIT license. See LICENSE file in the project root for full license information. +# + +# Stop script on NZEC +set -e +# Stop script if unbound variable found (use ${var:-} if intentional) +set -u +# By default cmd1 | cmd2 returns exit code of cmd2 regardless of cmd1 success +# This is causing it to fail +set -o pipefail + +# Use in the the functions: eval $invocation +invocation='say_verbose "Calling: ${yellow:-}${FUNCNAME[0]} ${green:-}$*${normal:-}"' + +# standard output may be used as a return value in the functions +# we need a way to write text on the screen in the functions so that +# it won't interfere with the return value. +# Exposing stream 3 as a pipe to standard output of the script itself +exec 3>&1 + +# Setup some colors to use. These need to work in fairly limited shells, like the Ubuntu Docker container where there are only 8 colors. +# See if stdout is a terminal +if [ -t 1 ] && command -v tput > /dev/null; then + # see if it supports colors + ncolors=$(tput colors) + if [ -n "$ncolors" ] && [ $ncolors -ge 8 ]; then + bold="$(tput bold || echo)" + normal="$(tput sgr0 || echo)" + black="$(tput setaf 0 || echo)" + red="$(tput setaf 1 || echo)" + green="$(tput setaf 2 || echo)" + yellow="$(tput setaf 3 || echo)" + blue="$(tput setaf 4 || echo)" + magenta="$(tput setaf 5 || echo)" + cyan="$(tput setaf 6 || echo)" + white="$(tput setaf 7 || echo)" + fi +fi + +say_warning() { + printf "%b\n" "${yellow:-}dotnet_install: Warning: $1${normal:-}" +} + +say_err() { + printf "%b\n" "${red:-}dotnet_install: Error: $1${normal:-}" >&2 +} + +say() { + # using stream 3 (defined in the beginning) to not interfere with stdout of functions + # which may be used as return value + printf "%b\n" "${cyan:-}dotnet-install:${normal:-} $1" >&3 +} + +say_verbose() { + if [ "$verbose" = true ]; then + say "$1" + fi +} + +# This platform list is finite - if the SDK/Runtime has supported Linux distribution-specific assets, +# then and only then should the Linux distribution appear in this list. +# Adding a Linux distribution to this list does not imply distribution-specific support. +get_legacy_os_name_from_platform() { + eval $invocation + + platform="$1" + case "$platform" in + "centos.7") + echo "centos" + return 0 + ;; + "debian.8") + echo "debian" + return 0 + ;; + "debian.9") + echo "debian.9" + return 0 + ;; + "fedora.23") + echo "fedora.23" + return 0 + ;; + "fedora.24") + echo "fedora.24" + return 0 + ;; + "fedora.27") + echo "fedora.27" + return 0 + ;; + "fedora.28") + echo "fedora.28" + return 0 + ;; + "opensuse.13.2") + echo "opensuse.13.2" + return 0 + ;; + "opensuse.42.1") + echo "opensuse.42.1" + return 0 + ;; + "opensuse.42.3") + echo "opensuse.42.3" + return 0 + ;; + "rhel.7"*) + echo "rhel" + return 0 + ;; + "ubuntu.14.04") + echo "ubuntu" + return 0 + ;; + "ubuntu.16.04") + echo "ubuntu.16.04" + return 0 + ;; + "ubuntu.16.10") + echo "ubuntu.16.10" + return 0 + ;; + "ubuntu.18.04") + echo "ubuntu.18.04" + return 0 + ;; + "alpine.3.4.3") + echo "alpine" + return 0 + ;; + esac + return 1 +} + +get_linux_platform_name() { + eval $invocation + + if [ -n "$runtime_id" ]; then + echo "${runtime_id%-*}" + return 0 + else + if [ -e /etc/os-release ]; then + . /etc/os-release + echo "$ID${VERSION_ID:+.${VERSION_ID}}" + return 0 + elif [ -e /etc/redhat-release ]; then + local redhatRelease=$(&1 || true) | grep -q musl +} + +get_current_os_name() { + eval $invocation + + local uname=$(uname) + if [ "$uname" = "Darwin" ]; then + echo "osx" + return 0 + elif [ "$uname" = "FreeBSD" ]; then + echo "freebsd" + return 0 + elif [ "$uname" = "Linux" ]; then + local linux_platform_name + linux_platform_name="$(get_linux_platform_name)" || { echo "linux" && return 0 ; } + + if [ "$linux_platform_name" = "rhel.6" ]; then + echo $linux_platform_name + return 0 + elif is_musl_based_distro; then + echo "linux-musl" + return 0 + else + echo "linux" + return 0 + fi + fi + + say_err "OS name could not be detected: UName = $uname" + return 1 +} + +get_legacy_os_name() { + eval $invocation + + local uname=$(uname) + if [ "$uname" = "Darwin" ]; then + echo "osx" + return 0 + elif [ -n "$runtime_id" ]; then + echo $(get_legacy_os_name_from_platform "${runtime_id%-*}" || echo "${runtime_id%-*}") + return 0 + else + if [ -e /etc/os-release ]; then + . /etc/os-release + os=$(get_legacy_os_name_from_platform "$ID${VERSION_ID:+.${VERSION_ID}}" || echo "") + if [ -n "$os" ]; then + echo "$os" + return 0 + fi + fi + fi + + say_verbose "Distribution specific OS name and version could not be detected: UName = $uname" + return 1 +} + +machine_has() { + eval $invocation + + hash "$1" > /dev/null 2>&1 + return $? +} + + +check_min_reqs() { + local hasMinimum=false + if machine_has "curl"; then + hasMinimum=true + elif machine_has "wget"; then + hasMinimum=true + fi + + if [ "$hasMinimum" = "false" ]; then + say_err "curl (recommended) or wget are required to download dotnet. Install missing prerequisite to proceed." + return 1 + fi + return 0 +} + +check_pre_reqs() { + eval $invocation + + if [ "${DOTNET_INSTALL_SKIP_PREREQS:-}" = "1" ]; then + return 0 + fi + + if [ "$(uname)" = "Linux" ]; then + if is_musl_based_distro; then + if ! command -v scanelf > /dev/null; then + say_warning "scanelf not found, please install pax-utils package." + return 0 + fi + LDCONFIG_COMMAND="scanelf --ldpath -BF '%f'" + [ -z "$($LDCONFIG_COMMAND 2>/dev/null | grep libintl)" ] && say_warning "Unable to locate libintl. Probable prerequisite missing; install libintl (or gettext)." + else + if [ ! -x "$(command -v ldconfig)" ]; then + say_verbose "ldconfig is not in PATH, trying /sbin/ldconfig." + LDCONFIG_COMMAND="/sbin/ldconfig" + else + LDCONFIG_COMMAND="ldconfig" + fi + local librarypath=${LD_LIBRARY_PATH:-} + LDCONFIG_COMMAND="$LDCONFIG_COMMAND -NXv ${librarypath//:/ }" + fi + + [ -z "$($LDCONFIG_COMMAND 2>/dev/null | grep zlib)" ] && say_warning "Unable to locate zlib. Probable prerequisite missing; install zlib." + [ -z "$($LDCONFIG_COMMAND 2>/dev/null | grep ssl)" ] && say_warning "Unable to locate libssl. Probable prerequisite missing; install libssl." + [ -z "$($LDCONFIG_COMMAND 2>/dev/null | grep libicu)" ] && say_warning "Unable to locate libicu. Probable prerequisite missing; install libicu." + [ -z "$($LDCONFIG_COMMAND 2>/dev/null | grep lttng)" ] && say_warning "Unable to locate liblttng. Probable prerequisite missing; install libcurl." + [ -z "$($LDCONFIG_COMMAND 2>/dev/null | grep libcurl)" ] && say_warning "Unable to locate libcurl. Probable prerequisite missing; install libcurl." + fi + + return 0 +} + +# args: +# input - $1 +to_lowercase() { + #eval $invocation + + echo "$1" | tr '[:upper:]' '[:lower:]' + return 0 +} + +# args: +# input - $1 +remove_trailing_slash() { + #eval $invocation + + local input="${1:-}" + echo "${input%/}" + return 0 +} + +# args: +# input - $1 +remove_beginning_slash() { + #eval $invocation + + local input="${1:-}" + echo "${input#/}" + return 0 +} + +# args: +# root_path - $1 +# child_path - $2 - this parameter can be empty +combine_paths() { + eval $invocation + + # TODO: Consider making it work with any number of paths. For now: + if [ ! -z "${3:-}" ]; then + say_err "combine_paths: Function takes two parameters." + return 1 + fi + + local root_path="$(remove_trailing_slash "$1")" + local child_path="$(remove_beginning_slash "${2:-}")" + say_verbose "combine_paths: root_path=$root_path" + say_verbose "combine_paths: child_path=$child_path" + echo "$root_path/$child_path" + return 0 +} + +get_machine_architecture() { + eval $invocation + + if command -v uname > /dev/null; then + CPUName=$(uname -m) + case $CPUName in + armv7l) + echo "arm" + return 0 + ;; + aarch64) + echo "arm64" + return 0 + ;; + esac + fi + + # Always default to 'x64' + echo "x64" + return 0 +} + +# args: +# architecture - $1 +get_normalized_architecture_from_architecture() { + eval $invocation + + local architecture="$(to_lowercase "$1")" + case "$architecture" in + \) + echo "$(get_normalized_architecture_from_architecture "$(get_machine_architecture)")" + return 0 + ;; + amd64|x64) + echo "x64" + return 0 + ;; + arm) + echo "arm" + return 0 + ;; + arm64) + echo "arm64" + return 0 + ;; + esac + + say_err "Architecture \`$architecture\` not supported. If you think this is a bug, report it at https://github.com/dotnet/sdk/issues" + return 1 +} + +# The version text returned from the feeds is a 1-line or 2-line string: +# For the SDK and the dotnet runtime (2 lines): +# Line 1: # commit_hash +# Line 2: # 4-part version +# For the aspnetcore runtime (1 line): +# Line 1: # 4-part version + +# args: +# version_text - stdin +get_version_from_version_info() { + eval $invocation + + cat | tail -n 1 | sed 's/\r$//' + return 0 +} + +# args: +# install_root - $1 +# relative_path_to_package - $2 +# specific_version - $3 +is_dotnet_package_installed() { + eval $invocation + + local install_root="$1" + local relative_path_to_package="$2" + local specific_version="${3//[$'\t\r\n']}" + + local dotnet_package_path="$(combine_paths "$(combine_paths "$install_root" "$relative_path_to_package")" "$specific_version")" + say_verbose "is_dotnet_package_installed: dotnet_package_path=$dotnet_package_path" + + if [ -d "$dotnet_package_path" ]; then + return 0 + else + return 1 + fi +} + +# args: +# azure_feed - $1 +# channel - $2 +# normalized_architecture - $3 +# coherent - $4 +get_latest_version_info() { + eval $invocation + + local azure_feed="$1" + local channel="$2" + local normalized_architecture="$3" + local coherent="$4" + + local version_file_url=null + if [[ "$runtime" == "dotnet" ]]; then + version_file_url="$uncached_feed/Runtime/$channel/latest.version" + elif [[ "$runtime" == "aspnetcore" ]]; then + version_file_url="$uncached_feed/aspnetcore/Runtime/$channel/latest.version" + elif [ -z "$runtime" ]; then + if [ "$coherent" = true ]; then + version_file_url="$uncached_feed/Sdk/$channel/latest.coherent.version" + else + version_file_url="$uncached_feed/Sdk/$channel/latest.version" + fi + else + say_err "Invalid value for \$runtime" + return 1 + fi + say_verbose "get_latest_version_info: latest url: $version_file_url" + + download "$version_file_url" + return $? +} + +# args: +# json_file - $1 +parse_jsonfile_for_version() { + eval $invocation + + local json_file="$1" + if [ ! -f "$json_file" ]; then + say_err "Unable to find \`$json_file\`" + return 1 + fi + + sdk_section=$(cat $json_file | awk '/"sdk"/,/}/') + if [ -z "$sdk_section" ]; then + say_err "Unable to parse the SDK node in \`$json_file\`" + return 1 + fi + + sdk_list=$(echo $sdk_section | awk -F"[{}]" '{print $2}') + sdk_list=${sdk_list//[\" ]/} + sdk_list=${sdk_list//,/$'\n'} + sdk_list="$(echo -e "${sdk_list}" | tr -d '[[:space:]]')" + + local version_info="" + while read -r line; do + IFS=: + while read -r key value; do + if [[ "$key" == "version" ]]; then + version_info=$value + fi + done <<< "$line" + done <<< "$sdk_list" + if [ -z "$version_info" ]; then + say_err "Unable to find the SDK:version node in \`$json_file\`" + return 1 + fi + + unset IFS; + echo "$version_info" + return 0 +} + +# args: +# azure_feed - $1 +# channel - $2 +# normalized_architecture - $3 +# version - $4 +# json_file - $5 +get_specific_version_from_version() { + eval $invocation + + local azure_feed="$1" + local channel="$2" + local normalized_architecture="$3" + local version="$(to_lowercase "$4")" + local json_file="$5" + + if [ -z "$json_file" ]; then + case "$version" in + latest) + local version_info + version_info="$(get_latest_version_info "$azure_feed" "$channel" "$normalized_architecture" false)" || return 1 + say_verbose "get_specific_version_from_version: version_info=$version_info" + echo "$version_info" | get_version_from_version_info + return 0 + ;; + coherent) + local version_info + version_info="$(get_latest_version_info "$azure_feed" "$channel" "$normalized_architecture" true)" || return 1 + say_verbose "get_specific_version_from_version: version_info=$version_info" + echo "$version_info" | get_version_from_version_info + return 0 + ;; + *) + echo "$version" + return 0 + ;; + esac + else + local version_info + version_info="$(parse_jsonfile_for_version "$json_file")" || return 1 + echo "$version_info" + return 0 + fi +} + +# args: +# azure_feed - $1 +# channel - $2 +# normalized_architecture - $3 +# specific_version - $4 +construct_download_link() { + eval $invocation + + local azure_feed="$1" + local channel="$2" + local normalized_architecture="$3" + local specific_version="${4//[$'\t\r\n']}" + + local osname + osname="$(get_current_os_name)" || return 1 + + local download_link=null + if [[ "$runtime" == "dotnet" ]]; then + download_link="$azure_feed/Runtime/$specific_version/dotnet-runtime-$specific_version-$osname-$normalized_architecture.tar.gz" + elif [[ "$runtime" == "aspnetcore" ]]; then + download_link="$azure_feed/aspnetcore/Runtime/$specific_version/aspnetcore-runtime-$specific_version-$osname-$normalized_architecture.tar.gz" + elif [ -z "$runtime" ]; then + download_link="$azure_feed/Sdk/$specific_version/dotnet-sdk-$specific_version-$osname-$normalized_architecture.tar.gz" + else + return 1 + fi + + echo "$download_link" + return 0 +} + +# args: +# azure_feed - $1 +# channel - $2 +# normalized_architecture - $3 +# specific_version - $4 +construct_legacy_download_link() { + eval $invocation + + local azure_feed="$1" + local channel="$2" + local normalized_architecture="$3" + local specific_version="${4//[$'\t\r\n']}" + + local distro_specific_osname + distro_specific_osname="$(get_legacy_os_name)" || return 1 + + local legacy_download_link=null + if [[ "$runtime" == "dotnet" ]]; then + legacy_download_link="$azure_feed/Runtime/$specific_version/dotnet-$distro_specific_osname-$normalized_architecture.$specific_version.tar.gz" + elif [ -z "$runtime" ]; then + legacy_download_link="$azure_feed/Sdk/$specific_version/dotnet-dev-$distro_specific_osname-$normalized_architecture.$specific_version.tar.gz" + else + return 1 + fi + + echo "$legacy_download_link" + return 0 +} + +get_user_install_path() { + eval $invocation + + if [ ! -z "${DOTNET_INSTALL_DIR:-}" ]; then + echo "$DOTNET_INSTALL_DIR" + else + echo "$HOME/.dotnet" + fi + return 0 +} + +# args: +# install_dir - $1 +resolve_installation_path() { + eval $invocation + + local install_dir=$1 + if [ "$install_dir" = "" ]; then + local user_install_path="$(get_user_install_path)" + say_verbose "resolve_installation_path: user_install_path=$user_install_path" + echo "$user_install_path" + return 0 + fi + + echo "$install_dir" + return 0 +} + +# args: +# relative_or_absolute_path - $1 +get_absolute_path() { + eval $invocation + + local relative_or_absolute_path=$1 + echo "$(cd "$(dirname "$1")" && pwd -P)/$(basename "$1")" + return 0 +} + +# args: +# input_files - stdin +# root_path - $1 +# out_path - $2 +# override - $3 +copy_files_or_dirs_from_list() { + eval $invocation + + local root_path="$(remove_trailing_slash "$1")" + local out_path="$(remove_trailing_slash "$2")" + local override="$3" + local osname="$(get_current_os_name)" + local override_switch=$( + if [ "$override" = false ]; then + if [ "$osname" = "linux-musl" ]; then + printf -- "-u"; + else + printf -- "-n"; + fi + fi) + + cat | uniq | while read -r file_path; do + local path="$(remove_beginning_slash "${file_path#$root_path}")" + local target="$out_path/$path" + if [ "$override" = true ] || (! ([ -d "$target" ] || [ -e "$target" ])); then + mkdir -p "$out_path/$(dirname "$path")" + if [ -d "$target" ]; then + rm -rf "$target" + fi + cp -R $override_switch "$root_path/$path" "$target" + fi + done +} + +# args: +# zip_path - $1 +# out_path - $2 +extract_dotnet_package() { + eval $invocation + + local zip_path="$1" + local out_path="$2" + + local temp_out_path="$(mktemp -d "$temporary_file_template")" + + local failed=false + tar -xzf "$zip_path" -C "$temp_out_path" > /dev/null || failed=true + + local folders_with_version_regex='^.*/[0-9]+\.[0-9]+[^/]+/' + find "$temp_out_path" -type f | grep -Eo "$folders_with_version_regex" | sort | copy_files_or_dirs_from_list "$temp_out_path" "$out_path" false + find "$temp_out_path" -type f | grep -Ev "$folders_with_version_regex" | copy_files_or_dirs_from_list "$temp_out_path" "$out_path" "$override_non_versioned_files" + + rm -rf "$temp_out_path" + + if [ "$failed" = true ]; then + say_err "Extraction failed" + return 1 + fi +} + +# args: +# remote_path - $1 +# [out_path] - $2 - stdout if not provided +download() { + eval $invocation + + local remote_path="$1" + local out_path="${2:-}" + + if [[ "$remote_path" != "http"* ]]; then + cp "$remote_path" "$out_path" + return $? + fi + + local failed=false + if machine_has "curl"; then + downloadcurl "$remote_path" "$out_path" || failed=true + elif machine_has "wget"; then + downloadwget "$remote_path" "$out_path" || failed=true + else + failed=true + fi + if [ "$failed" = true ]; then + say_verbose "Download failed: $remote_path" + return 1 + fi + return 0 +} + +downloadcurl() { + eval $invocation + local remote_path="$1" + local out_path="${2:-}" + + # Append feed_credential as late as possible before calling curl to avoid logging feed_credential + remote_path="${remote_path}${feed_credential}" + + local failed=false + if [ -z "$out_path" ]; then + curl --retry 10 -sSL -f --create-dirs "$remote_path" || failed=true + else + curl --retry 10 -sSL -f --create-dirs -o "$out_path" "$remote_path" || failed=true + fi + if [ "$failed" = true ]; then + say_verbose "Curl download failed" + return 1 + fi + return 0 +} + +downloadwget() { + eval $invocation + local remote_path="$1" + local out_path="${2:-}" + + # Append feed_credential as late as possible before calling wget to avoid logging feed_credential + remote_path="${remote_path}${feed_credential}" + + local failed=false + if [ -z "$out_path" ]; then + wget -q --tries 10 -O - "$remote_path" || failed=true + else + wget --tries 10 -O "$out_path" "$remote_path" || failed=true + fi + if [ "$failed" = true ]; then + say_verbose "Wget download failed" + return 1 + fi + return 0 +} + +calculate_vars() { + eval $invocation + valid_legacy_download_link=true + + normalized_architecture="$(get_normalized_architecture_from_architecture "$architecture")" + say_verbose "normalized_architecture=$normalized_architecture" + + specific_version="$(get_specific_version_from_version "$azure_feed" "$channel" "$normalized_architecture" "$version" "$json_file")" + say_verbose "specific_version=$specific_version" + if [ -z "$specific_version" ]; then + say_err "Could not resolve version information." + return 1 + fi + + download_link="$(construct_download_link "$azure_feed" "$channel" "$normalized_architecture" "$specific_version")" + say_verbose "Constructed primary named payload URL: $download_link" + + legacy_download_link="$(construct_legacy_download_link "$azure_feed" "$channel" "$normalized_architecture" "$specific_version")" || valid_legacy_download_link=false + + if [ "$valid_legacy_download_link" = true ]; then + say_verbose "Constructed legacy named payload URL: $legacy_download_link" + else + say_verbose "Cound not construct a legacy_download_link; omitting..." + fi + + install_root="$(resolve_installation_path "$install_dir")" + say_verbose "InstallRoot: $install_root" +} + +install_dotnet() { + eval $invocation + local download_failed=false + local asset_name='' + local asset_relative_path='' + + if [[ "$runtime" == "dotnet" ]]; then + asset_relative_path="shared/Microsoft.NETCore.App" + asset_name=".NET Core Runtime" + elif [[ "$runtime" == "aspnetcore" ]]; then + asset_relative_path="shared/Microsoft.AspNetCore.App" + asset_name="ASP.NET Core Runtime" + elif [ -z "$runtime" ]; then + asset_relative_path="sdk" + asset_name=".NET Core SDK" + else + say_err "Invalid value for \$runtime" + return 1 + fi + + # Check if the SDK version is already installed. + if is_dotnet_package_installed "$install_root" "$asset_relative_path" "$specific_version"; then + say "$asset_name version $specific_version is already installed." + return 0 + fi + + mkdir -p "$install_root" + zip_path="$(mktemp "$temporary_file_template")" + say_verbose "Zip path: $zip_path" + + say "Downloading link: $download_link" + + # Failures are normal in the non-legacy case for ultimately legacy downloads. + # Do not output to stderr, since output to stderr is considered an error. + download "$download_link" "$zip_path" 2>&1 || download_failed=true + + # if the download fails, download the legacy_download_link + if [ "$download_failed" = true ]; then + say "Cannot download: $download_link" + + if [ "$valid_legacy_download_link" = true ]; then + download_failed=false + download_link="$legacy_download_link" + zip_path="$(mktemp "$temporary_file_template")" + say_verbose "Legacy zip path: $zip_path" + say "Downloading legacy link: $download_link" + download "$download_link" "$zip_path" 2>&1 || download_failed=true + + if [ "$download_failed" = true ]; then + say "Cannot download: $download_link" + fi + fi + fi + + if [ "$download_failed" = true ]; then + say_err "Could not find/download: \`$asset_name\` with version = $specific_version" + say_err "Refer to: https://aka.ms/dotnet-os-lifecycle for information on .NET Core support" + return 1 + fi + + say "Extracting zip from $download_link" + extract_dotnet_package "$zip_path" "$install_root" + + # Check if the SDK version is installed; if not, fail the installation. + # if the version contains "RTM" or "servicing"; check if a 'release-type' SDK version is installed. + if [[ $specific_version == *"rtm"* || $specific_version == *"servicing"* ]]; then + IFS='-' + read -ra verArr <<< "$specific_version" + release_version="${verArr[0]}" + unset IFS; + say_verbose "Checking installation: version = $release_version" + if is_dotnet_package_installed "$install_root" "$asset_relative_path" "$release_version"; then + return 0 + fi + fi + + # Check if the standard SDK version is installed. + say_verbose "Checking installation: version = $specific_version" + if is_dotnet_package_installed "$install_root" "$asset_relative_path" "$specific_version"; then + return 0 + fi + + say_err "\`$asset_name\` with version = $specific_version failed to install with an unknown error." + return 1 +} + +args=("$@") + +local_version_file_relative_path="/.version" +bin_folder_relative_path="" +temporary_file_template="${TMPDIR:-/tmp}/dotnet.XXXXXXXXX" + +channel="LTS" +version="Latest" +json_file="" +install_dir="" +architecture="" +dry_run=false +no_path=false +no_cdn=false +azure_feed="https://dotnetcli.azureedge.net/dotnet" +uncached_feed="https://dotnetcli.blob.core.windows.net/dotnet" +feed_credential="" +verbose=false +runtime="" +runtime_id="" +override_non_versioned_files=true +non_dynamic_parameters="" + +while [ $# -ne 0 ] +do + name="$1" + case "$name" in + -c|--channel|-[Cc]hannel) + shift + channel="$1" + ;; + -v|--version|-[Vv]ersion) + shift + version="$1" + ;; + -i|--install-dir|-[Ii]nstall[Dd]ir) + shift + install_dir="$1" + ;; + --arch|--architecture|-[Aa]rch|-[Aa]rchitecture) + shift + architecture="$1" + ;; + --shared-runtime|-[Ss]hared[Rr]untime) + say_warning "The --shared-runtime flag is obsolete and may be removed in a future version of this script. The recommended usage is to specify '--runtime dotnet'." + if [ -z "$runtime" ]; then + runtime="dotnet" + fi + ;; + --runtime|-[Rr]untime) + shift + runtime="$1" + if [[ "$runtime" != "dotnet" ]] && [[ "$runtime" != "aspnetcore" ]]; then + say_err "Unsupported value for --runtime: '$1'. Valid values are 'dotnet' and 'aspnetcore'." + if [[ "$runtime" == "windowsdesktop" ]]; then + say_err "WindowsDesktop archives are manufactured for Windows platforms only." + fi + exit 1 + fi + ;; + --dry-run|-[Dd]ry[Rr]un) + dry_run=true + ;; + --no-path|-[Nn]o[Pp]ath) + no_path=true + non_dynamic_parameters+=" $name" + ;; + --verbose|-[Vv]erbose) + verbose=true + non_dynamic_parameters+=" $name" + ;; + --no-cdn|-[Nn]o[Cc]dn) + no_cdn=true + non_dynamic_parameters+=" $name" + ;; + --azure-feed|-[Aa]zure[Ff]eed) + shift + azure_feed="$1" + non_dynamic_parameters+=" $name "\""$1"\""" + ;; + --uncached-feed|-[Uu]ncached[Ff]eed) + shift + uncached_feed="$1" + non_dynamic_parameters+=" $name "\""$1"\""" + ;; + --feed-credential|-[Ff]eed[Cc]redential) + shift + feed_credential="$1" + non_dynamic_parameters+=" $name "\""$1"\""" + ;; + --runtime-id|-[Rr]untime[Ii]d) + shift + runtime_id="$1" + non_dynamic_parameters+=" $name "\""$1"\""" + ;; + --jsonfile|-[Jj][Ss]on[Ff]ile) + shift + json_file="$1" + ;; + --skip-non-versioned-files|-[Ss]kip[Nn]on[Vv]ersioned[Ff]iles) + override_non_versioned_files=false + non_dynamic_parameters+=" $name" + ;; + -?|--?|-h|--help|-[Hh]elp) + script_name="$(basename "$0")" + echo ".NET Tools Installer" + echo "Usage: $script_name [-c|--channel ] [-v|--version ] [-p|--prefix ]" + echo " $script_name -h|-?|--help" + echo "" + echo "$script_name is a simple command line interface for obtaining dotnet cli." + echo "" + echo "Options:" + echo " -c,--channel Download from the channel specified, Defaults to \`$channel\`." + echo " -Channel" + echo " Possible values:" + echo " - Current - most current release" + echo " - LTS - most current supported release" + echo " - 2-part version in a format A.B - represents a specific release" + echo " examples: 2.0; 1.0" + echo " - Branch name" + echo " examples: release/2.0.0; Master" + echo " Note: The version parameter overrides the channel parameter." + echo " -v,--version Use specific VERSION, Defaults to \`$version\`." + echo " -Version" + echo " Possible values:" + echo " - latest - most latest build on specific channel" + echo " - coherent - most latest coherent build on specific channel" + echo " coherent applies only to SDK downloads" + echo " - 3-part version in a format A.B.C - represents specific version of build" + echo " examples: 2.0.0-preview2-006120; 1.1.0" + echo " -i,--install-dir Install under specified location (see Install Location below)" + echo " -InstallDir" + echo " --architecture Architecture of dotnet binaries to be installed, Defaults to \`$architecture\`." + echo " --arch,-Architecture,-Arch" + echo " Possible values: x64, arm, and arm64" + echo " --runtime Installs a shared runtime only, without the SDK." + echo " -Runtime" + echo " Possible values:" + echo " - dotnet - the Microsoft.NETCore.App shared runtime" + echo " - aspnetcore - the Microsoft.AspNetCore.App shared runtime" + echo " --dry-run,-DryRun Do not perform installation. Display download link." + echo " --no-path, -NoPath Do not set PATH for the current process." + echo " --verbose,-Verbose Display diagnostics information." + echo " --azure-feed,-AzureFeed Azure feed location. Defaults to $azure_feed, This parameter typically is not changed by the user." + echo " --uncached-feed,-UncachedFeed Uncached feed location. This parameter typically is not changed by the user." + echo " --feed-credential,-FeedCredential Azure feed shared access token. This parameter typically is not specified." + echo " --skip-non-versioned-files Skips non-versioned files if they already exist, such as the dotnet executable." + echo " -SkipNonVersionedFiles" + echo " --no-cdn,-NoCdn Disable downloading from the Azure CDN, and use the uncached feed directly." + echo " --jsonfile Determines the SDK version from a user specified global.json file." + echo " Note: global.json must have a value for 'SDK:Version'" + echo " --runtime-id Installs the .NET Tools for the given platform (use linux-x64 for portable linux)." + echo " -RuntimeId" + echo " -?,--?,-h,--help,-Help Shows this help message" + echo "" + echo "Obsolete parameters:" + echo " --shared-runtime The recommended alternative is '--runtime dotnet'." + echo " This parameter is obsolete and may be removed in a future version of this script." + echo " Installs just the shared runtime bits, not the entire SDK." + echo "" + echo "Install Location:" + echo " Location is chosen in following order:" + echo " - --install-dir option" + echo " - Environmental variable DOTNET_INSTALL_DIR" + echo " - $HOME/.dotnet" + exit 0 + ;; + *) + say_err "Unknown argument \`$name\`" + exit 1 + ;; + esac + + shift +done + +if [ "$no_cdn" = true ]; then + azure_feed="$uncached_feed" +fi + +check_min_reqs +calculate_vars +script_name=$(basename "$0") + +if [ "$dry_run" = true ]; then + say "Payload URLs:" + say "Primary named payload URL: $download_link" + if [ "$valid_legacy_download_link" = true ]; then + say "Legacy named payload URL: $legacy_download_link" + fi + repeatable_command="./$script_name --version "\""$specific_version"\"" --install-dir "\""$install_root"\"" --architecture "\""$normalized_architecture"\""" + if [[ "$runtime" == "dotnet" ]]; then + repeatable_command+=" --runtime "\""dotnet"\""" + elif [[ "$runtime" == "aspnetcore" ]]; then + repeatable_command+=" --runtime "\""aspnetcore"\""" + fi + repeatable_command+="$non_dynamic_parameters" + say "Repeatable invocation: $repeatable_command" + exit 0 +fi + +check_pre_reqs +install_dotnet + +bin_path="$(get_absolute_path "$(combine_paths "$install_root" "$bin_folder_relative_path")")" +if [ "$no_path" = false ]; then + say "Adding to current process PATH: \`$bin_path\`. Note: This change will be visible only when sourcing script." + export PATH="$bin_path":"$PATH" +else + say "Binaries of dotnet can be found in $bin_path" +fi + +say "Installation finished successfully." diff --git a/apk/v3.15/main/dotnet31/APKBUILD b/apk/v3.15/main/dotnet31/APKBUILD index ea7aa60..1d8a952 100644 --- a/apk/v3.15/main/dotnet31/APKBUILD +++ b/apk/v3.15/main/dotnet31/APKBUILD @@ -1,20 +1,15 @@ # Maintainer: Antoine Martin (ayakael) -# Based on Archlinux PKGBUILD by: -# Maxime Gauduin -# Kristian Mosegaard -# Max Liebkies -# Krzysztof Bogacki - +# Build vars _llvmver=12 pkgname=dotnet31 -pkgdesc='The .NET Core SDK' +pkgdesc="The .NET Core SDK" pkgver=3.1.120 -pkgrel=0 -arch='x86_64 armv7 aarch64' +pkgrel=1 +arch="x86_64" url=https://www.microsoft.com/net/core -license='MIT' +license="MIT" makedepends=" bash clang @@ -49,10 +44,9 @@ subpackages=" " _gittag=v$pkgver-SDK _giturl=https://github.com/dotnet/source-build -options="!check !archcheck !tracedeps" +options="!check" # No test suite source=" $pkgname-$_gittag.tar.gz::$_giturl/archive/refs/tags/$_gittag.tar.gz - https://dot.net/v1/dotnet-install.sh dotnet.sh application-insights_fix-net40-location.patch build_coreclr-tools-path.patch @@ -67,9 +61,13 @@ source=" _srcbld="source-build-$(echo $_gittag | sed 's|v||')" builddir="$srcdir/$_srcbld" -default_prepare() { - local i failed= - if [ -n "$builddir"] && [ -d "$builddir" ]; then cd "$builddir"; fi +# Disables dependency tracing for symlinks, thus fixing per-subpkg pkgver setting +scan_symlink_targets() { + return +} + +_patch() { + local i failed= if ! have_patches; then return 0 fi @@ -82,7 +80,7 @@ default_prepare() { ;; *.patch) local _package=$(echo $i | sed 's|_.*||') - local _patch=$(echo $i | sed "s|$_package_||") + local _patch=$(echo $i | sed "s|$_package\_||") echo "cp $_patch -> $_package" [ -d patches/$_package ] || mkdir patches/$_package cp "$srcdir"/"$i" patches/$_package/$_patch @@ -97,19 +95,18 @@ default_prepare() { for i in $failed; do printf " %s\n" "$i" done - return 1 } prepare() { - default_prepare + _patch msg "Settings up bootstrap SDK" cp -r /usr/share/dotnet/* ./ - if [ $(find sdk -type d -not -name '3.1.*' -maxdepth 1 -mindepth 1) ]; then + 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 # disable warnings - sed -i 's|skiptests|skiptests ignorewarnings|' repos/coreclr.common.props + sed -i "s|skiptests|skiptests ignorewarnings|" repos/coreclr.common.props # darc git init git init @@ -131,15 +128,15 @@ build() { } package() { - depends=' + depends=" dotnet31-sdk dotnet-host dotnet31-runtime - dotnet31-targetting-pack + dotnet31-targeting-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.*//') @@ -147,14 +144,12 @@ package() { } sdk() { - depends=' + depends=" dotnet31-runtime dotnet31-targeting-pack - musl - libgcc netstandard21-targeting-pack aspnet31-targeting-pack - ' + " pkgver=$_sdkver provider_priority=100 provides="dotnet31-bootstrap-sdk" @@ -162,18 +157,14 @@ 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 + tar -xzf dotnet-sdk-3.1*.tar.gz -C "$subpkgdir"/usr/share/dotnet/ --no-same-owner ./sdk ./templates ln -s dotnet-host "$subpkgdir"/usr/share/licenses/dotnet31-sdk } host() { - pkgdesc='A generic driver for the .NET Core Command Line Interface' + pkgdesc="A generic driver for the .NET Core Command Line Interface" pkgver=$_runtimever - depends=' - gcc - musl - ' provides="dotnet-host" provider_priority=2 @@ -181,69 +172,53 @@ 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-3.1*.tar.gz -C "$subpkgdir"/usr/share/dotnet/ --no-same-owner dotnet host - bsdtar -xf dotnet-sdk-3.1*.tar.gz -C "$subpkgdir"/usr/share/licenses/dotnet-host/ --no-same-owner LICENSE.txt ThirdPartyNotices.txt + tar -xzf dotnet-sdk-3.1*.tar.gz -C "$subpkgdir"/usr/share/dotnet/ --no-same-owner ./dotnet ./host + tar -xzf dotnet-sdk-3.1*.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' + pkgdesc="The .NET Core runtime" pkgver=$_runtimever - makedepends=' - icu-dev - krb5-dev - libunwind-dev - zlib-dev - openssl-dev - ' - depends=' - dotnet-host - libgcc - musl - icu - krb5-libs - libunwind - zlib - openssl - ' + depends="dotnet-host" 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 + tar -xzf 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/dotnet31-runtime } aspnet_runtime() { - pkgdesc='The ASP.NET Core runtime' + pkgdesc="The ASP.NET Core runtime" pkgver=$_runtimever - depends='dotnet31-runtime' + 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 + tar -xzf 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/aspnet31-runtime } targeting_pack() { - pkgdesc='The .NET Core targeting pack' + pkgdesc="The .NET Core targeting pack" pkgver=$_runtimever - depends='netstandard21-targeting-pack' + 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 + tar -xzf dotnet-sdk-3.1*.tar.gz -C "$subpkgdir"/usr/share/dotnet/ --no-same-owner --wildcards ./packs/Microsoft.NETCore.App.Host.* ./packs/Microsoft.NETCore.App.Ref ln -s dotnet-host "$subpkgdir"/usr/share/licenses/dotnet31-targeting-pack } netstandard_targeting_pack() { - pkgdesc='The .NET Standard targeting pack' + pkgdesc="The .NET Standard targeting pack" pkgver=$_runtimever provides="netstandard21-targeting-pack" provider_priority=1 @@ -251,26 +226,25 @@ netstandard_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/NETStandard.Library.Ref + tar -xzf 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/netstandard21-targeting-pack } aspnet_targeting_pack() { - pkgdesc='The ASP.NET Core targeting pack' + pkgdesc="The ASP.NET Core targeting pack" pkgver=$_runtimever - depends='dotnet31-targeting-pack' + 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 + tar -xzf 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/aspnet31-targeting-pack } sha512sums=" 33b0f76ca72e6b2ebef50338b6c4208e02f513ebfc67525481f945c12359ea030fe48017971d9f64522dc2f829beff790f10ba79e3b579c2ef90703fe9b4b27d dotnet31-v3.1.120-SDK.tar.gz -ecab4809e617e9cd30940b1c1a700e16b37b5974c850a60da7f1a25bf81516850e4533ef39d2d8786381e0e4e325d3b53fbb2377ecaa6c0813bb00fc1c92b784 dotnet-install.sh e61b9e3e5a2305646a616d598378230c9755c5dd5363692cc363f8f4add3807563c324dd86f3a7ae9d358c82d730608e7b293935a2b6c81c0c0f62d752a0a1cf dotnet.sh 0469d571d0f7634d3794761f04e1cbff9d27d642d134a11a13560574280e5cab6f366eb8820e61a449eca99470fdea8d9f6a7d97b633059b2fe25257ed1579e6 application-insights_fix-net40-location.patch 2334e36d5bb24b9b834800407c6110c09262af20a4353e92ef1897855f27eab117270dda0637071010a7a5ac8c4a5d4032240a7b659d8576801b503b66b14ab7 build_coreclr-tools-path.patch diff --git a/apk/v3.15/main/dotnet31/README.md b/apk/v3.15/main/dotnet31/README.md index 9b1361c..66d286a 100644 --- a/apk/v3.15/main/dotnet31/README.md +++ b/apk/v3.15/main/dotnet31/README.md @@ -14,12 +14,8 @@ versions) 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. +armv7, I have not attempted a build on these architectures due to apparent +lack of -stage0 binaries for dotnet31 # Patch notes diff --git a/apk/v3.15/main/dotnet5-stage0/APKBUILD b/apk/v3.15/main/dotnet5-stage0/APKBUILD index a70e97e..8932247 100644 --- a/apk/v3.15/main/dotnet5-stage0/APKBUILD +++ b/apk/v3.15/main/dotnet5-stage0/APKBUILD @@ -1,18 +1,16 @@ # Maintainer: Antoine Martin (ayakael) pkgname=dotnet5-stage0 -pkgdesc='The .NET Core SDK' +pkgdesc="The .NET Core SDK" pkgver=5.0.209 -pkgrel=0 -arch='x86_64 aarch64 armv7' +pkgrel=1 +arch="x86_64" url=https://www.microsoft.com/net/core -license='MIT' +license="MIT" makedepends=" - gcc libcurl krb5-libs libintl - libstdc++ lttng-ust zlib " @@ -21,7 +19,7 @@ subpackages=" dotnet5-stage0-sdk:sdk dotnet5-stage0-host:host " -options="!check !tracedeps !archcheck" +options="!check" # No test suite case $CARCH in x86_64)_arch=x64;; aarch64)_arch=arm64;; @@ -33,51 +31,57 @@ source=" " builddir="$srcdir" +# Disables dependency tracing for symlinks, thus fixing per-subpkg pkgver setting +scan_symlink_targets() { + return +} + package() { export _runtimever=$("$srcdir"/dotnet --list-runtimes | awk '($1 == "Microsoft.NETCore.App"){print $2}') export _sdkver=$("$srcdir"/dotnet --list-sdks | awk '{print $1}') - depends=' + 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' + 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 + tar -xzf "$srcdir"/dotnet-sdk-*.tar.gz -C "$subpkgdir"/usr/share/dotnet/ --no-same-owner ./dotnet ./host + tar -xzf "$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 + depends="dotnet31-bootstrap-runtime" + provides=dotnet5-bootstrap-sdk 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 + tar -xzf "$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' + pkgdesc="The .NET Core runtime" pkgver=$_runtimever + depends="dotnet-host" 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 + tar -xzf "$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 } diff --git a/apk/v3.15/main/dotnet5-stage0/README.md b/apk/v3.15/main/dotnet5-stage0/README.md index 256127f..00c5dd2 100644 --- a/apk/v3.15/main/dotnet5-stage0/README.md +++ b/apk/v3.15/main/dotnet5-stage0/README.md @@ -18,7 +18,6 @@ dotnet5-stage0 runtime / sdk bootstrap) 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. +* Havn't tested for builds with armv7 and aarch64 as dotnet31-stage0 doesn't +have bootstrap binaries available for those architectures, need to figure this +out diff --git a/apk/v3.15/main/dotnet5/APKBUILD b/apk/v3.15/main/dotnet5/APKBUILD index f1beecd..7d62dcf 100644 --- a/apk/v3.15/main/dotnet5/APKBUILD +++ b/apk/v3.15/main/dotnet5/APKBUILD @@ -1,21 +1,15 @@ # Maintainer: Antoine Martin (ayakael) -# Based on Archlinux PKGBUILD by: -# Maxime Gauduin -# Kristian Mosegaard -# Max Liebkies -# Krzysztof Bogacki - -# LLVM version +# Build vars _llvmver=12 pkgname=dotnet5 -pkgdesc='The .NET Core SDK' +pkgdesc="The .NET Core SDK" pkgver=5.0.209 -pkgrel=0 -arch='x86_64 aarch64 armv7' +pkgrel=2 +arch="x86_64" url=https://www.microsoft.com/net/core -license='MIT' +license="MIT" makedepends=" bash clang @@ -26,7 +20,6 @@ makedepends=" krb5-dev libgit2-dev libunwind-dev - libunwind libxml2-dev libxml2-utils lldb-dev @@ -38,7 +31,6 @@ makedepends=" linux-headers zlib-dev dotnet5-bootstrap-runtime - dotnet31-bootstrap-runtime dotnet5-bootstrap-sdk " subpackages=" @@ -48,16 +40,16 @@ subpackages=" aspnet5-runtime:aspnet_runtime:noarch netstandard5-targeting-pack:netstandard_targeting_pack:noarch dotnet5-targeting-pack:targeting_pack - aspnet5-targeting-pack:aspnet_targeting_pack:noarch" + aspnet5-targeting-pack:aspnet_targeting_pack:noarch + " _gittag=v$pkgver.1-SDK _giturl=https://github.com/dotnet/source-build -options="!check !archcheck !tracedeps" +options="!check" # No test suite 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-push-version.patch build_darc-disable-runtime-retrieval.patch runtime_add-rid-for-alpine-315.patch runtime_link-order.patch @@ -67,9 +59,13 @@ source=" _srcbld="source-build-$(echo $_gittag | sed 's|v||')" builddir="$srcdir/$_srcbld" -default_prepare() { - local i failed= - [ -n "$builddir" -a -d "$builddir" ] && cd "$builddir" +# Disables dependency tracing for symlinks, thus fixing per-subpkg pkgver setting +scan_symlink_targets() { + return +} + +_patch() { + local i failed= if ! have_patches; then return 0 fi @@ -82,7 +78,7 @@ default_prepare() { ;; *.patch) local _package=$(echo $i | sed 's|_.*||') - local _patch=$(echo $i | sed "s|"$_package"_||") + local _patch=$(echo $i | sed "s|$_package/_||") echo "cp $_patch -> $_package" [ -d patches/$_package ] || mkdir patches/$_package cp "$srcdir"/"$i" patches/$_package/$_patch @@ -97,14 +93,13 @@ default_prepare() { for i in $failed; do printf " %s\n" "$i" done - return 1 } prepare() { - default_prepare + _patch msg "Settings up bootstrap SDK" cp -r /usr/share/dotnet/* ./ - if [[ $(find sdk -type d -not -name '5.0.*' -maxdepth 1 -mindepth 1) ]]; then + 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 @@ -131,15 +126,15 @@ build() { } package() { - depends=' + depends=" dotnet5-sdk dotnet-host dotnet5-runtime - dotnet5-targetting-pack + dotnet5-targeting-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.*//') @@ -147,14 +142,12 @@ package() { } sdk() { - depends=' + depends=" dotnet5-runtime dotnet5-targeting-pack - musl - libgcc netstandard21-targeting-pack aspnet5-targeting-pack - ' + " provides="dotnet5-bootstrap-sdk" provider_priority=100 pkgver=$_sdkver @@ -162,117 +155,96 @@ sdk() { 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 + tar -xzf dotnet-sdk-*.tar.gz -C "$subpkgdir"/usr/share/dotnet/ --no-same-owner ./sdk ./templates ln -s dotnet-host "$subpkgdir"/usr/share/licenses/dotnet5-sdk } host() { - pkgdesc='A generic driver for the .NET Core Command Line Interface' + pkgdesc="A generic driver for the .NET Core Command Line Interface" + pkgver=$_runtimever provides=dotnet-host provider_priority=100 - pkgver=$_runtimever - depends=' - gcc - musl - ' 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 - 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 + tar -xzf dotnet-sdk-*.tar.gz -C "$subpkgdir"/usr/share/dotnet/ --no-same-owner ./dotnet ./host + tar -xzf 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' + pkgdesc="The .NET Core runtime" pkgver=$_runtimever - makedepends=' - icu-dev - krb5-dev - libunwind-dev - zlib-dev - openssl-dev - ' - depends=' - dotnet-host - libgcc - musl - icu - krb5-libs - libunwind - zlib - openssl - ' + depends="dotnet-host" 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 + tar -xzf 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 } aspnet_runtime() { - pkgdesc='The ASP.NET Core runtime' + pkgdesc="The ASP.NET Core runtime" pkgver=$_runtimever - depends='dotnet5-runtime' + 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 + tar -xzf dotnet-sdk-*.tar.gz -C "$subpkgdir"/usr/share/dotnet/ --no-same-owner ./shared/Microsoft.AspNetCore.App ln -s dotnet-host "$subpkgdir"/usr/share/licenses/aspnet5-runtime } netstandard_targeting_pack() { - pkgdesc='The .NET Standard targeting pack' + pkgdesc="The .NET Standard targeting pack" + pkgver=$_sdkver 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 + tar -xzf dotnet-sdk-*.tar.gz -C "$subpkgdir"/usr/share/dotnet/ --no-same-owner ./packs/NETStandard.Library.Ref ln -s dotnet-host "$subpkgdir"/usr/share/licenses/netstandard21-targeting-pack } targeting_pack() { - pkgdesc='The .NET Core targeting pack' + pkgdesc="The .NET Core targeting pack" pkgver=$_runtimever - depends='netstandard21-targeting-pack' + 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 + tar -xzf dotnet-sdk-*.tar.gz -C "$subpkgdir"/usr/share/dotnet/ --no-same-owner --wildcards ./packs/Microsoft.NETCore.App.Host.* ./packs/Microsoft.NETCore.App.Ref ln -s dotnet-host "$subpkgdir"/usr/share/licenses/dotnet5-targeting-pack } aspnet_targeting_pack() { - pkgdesc='The ASP.NET Core targeting pack' + pkgdesc="The ASP.NET Core targeting pack" pkgver=$_runtimever - depends='dotnet5-targeting-pack' + 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 + tar -xzf 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/aspnet5-targeting-pack } sha512sums=" 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 +200595ebcd7724ec58781199f8e5b3a6cf41050b2006e0e970b54e69d5905653056d0859eae7fccbc3dfdf6f8e9914d496e0f39074a9ede98fbab9b4cb713ab9 build_darc-push-version.patch 07d1cbfb0d7ee8c673a96b30b7c05fe7cab91b11387175712bd721b57342c293f790ad8ff36ccf56e5078cb708266b7386ebb807ab99290facfdd953419de2f7 build_darc-disable-runtime-retrieval.patch 4899175597a1d4cd14c382469fe17e6d8d4644b784dca02eb2d4f71afa8e898e60269d5b0cdfea6e3ed6dc92feb676c6db21aae3bcb206d859c02cd10cdcaca0 runtime_add-rid-for-alpine-315.patch 0d6ca9b4c6bb0999102f8a51b408c6f938d7262af552d63ef180fdc9a48bba940d0437d0d06916c3f7be7e70e2717a46a4ebc91c0f85467cbc7776b944eca83e runtime_link-order.patch diff --git a/apk/v3.15/main/dotnet5/README.md b/apk/v3.15/main/dotnet5/README.md index 8a0a65f..d40c33a 100644 --- a/apk/v3.15/main/dotnet5/README.md +++ b/apk/v3.15/main/dotnet5/README.md @@ -21,13 +21,9 @@ versions) * 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. +* Tested only build for x86_64. While dotnet supports aarch64 and +armv7, I have not attempted a build on these architectures due to apparent +lack of -stage0 binaries available for dotnet31. # Patch notes diff --git a/apk/v3.15/main/dotnet5/build_darc-use-available-runtime.patch b/apk/v3.15/main/dotnet5/build_darc-use-available-runtime.patch new file mode 100644 index 0000000..19bc304 --- /dev/null +++ b/apk/v3.15/main/dotnet5/build_darc-use-available-runtime.patch @@ -0,0 +1,48 @@ +From 970fa4290ee6b4d43a0fbb19b919f4f260edf6a5 Mon Sep 17 00:00:00 2001 +From: "build@apk-groulx" +Date: Wed, 15 Dec 2021 18:04:02 +0000 +Subject: [PATCH 1/1] Makes darc use whatever runtime is available + +--- + DarcVersion.txt | 2 +- + Directory.Build.props | 2 +- + build.sh | 3 --- + 3 files changed, 2 insertions(+), 5 deletions(-) + +diff --git a/DarcVersion.txt b/DarcVersion.txt +index 3574ff78..a343dfd9 100644 +--- a/DarcVersion.txt ++++ b/DarcVersion.txt +@@ -1 +1 @@ +-1.1.0-beta.19568.2 ++1.1.0-beta.21601.2 +diff --git a/Directory.Build.props b/Directory.Build.props +index d1b268bf..ef0619d7 100644 +--- a/Directory.Build.props ++++ b/Directory.Build.props +@@ -100,7 +100,7 @@ + $(ToolsLocalDir)tasks/ + $(DotNetCliToolDir)tools/ + $([System.IO.File]::ReadAllText('$(ProjectDir)DarcVersion.txt').Trim()) +- $(DotNetCliToolDir)tools/.store/microsoft.dotnet.darc/$(DarcVersion)/microsoft.dotnet.darc/$(DarcVersion)/tools/netcoreapp3.0/any/Microsoft.DotNet.Darc.dll ++ $(DotNetCliToolDir)tools/.store/microsoft.dotnet.darc/$(DarcVersion)/microsoft.dotnet.darc/$(DarcVersion)/tools/netcoreapp3.1/any/Microsoft.DotNet.Darc.dll + + $(TaskDirectory)Microsoft.DotNet.SourceBuild.Tasks.XPlat/bin/$(Configuration)/ + $(XPlatTasksBinDir)Microsoft.DotNet.SourceBuild.Tasks.XPlat.dll +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 + diff --git a/apk/v3.15/main/dotnet6-stage0/APKBUILD b/apk/v3.15/main/dotnet6-stage0/APKBUILD new file mode 100644 index 0000000..1d424c9 --- /dev/null +++ b/apk/v3.15/main/dotnet6-stage0/APKBUILD @@ -0,0 +1,91 @@ +# Maintainer: Antoine Martin (ayakael) + +pkgname=dotnet6-stage0 +pkgdesc="The .NET Core SDK" +pkgver=6.0.100 +pkgrel=0 +arch="x86_64" +url=https://www.microsoft.com/net/core +license="MIT" +makedepends=" + libcurl + krb5-libs + libintl + lttng-ust + zlib + " +subpackages=" + dotnet6-stage0-runtime:runtime + dotnet6-stage0-sdk:sdk + dotnet6-stage0-host:host + " +options="!check" # No test suite +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" + +# Disables dependency tracing for symlinks, thus fixing per-subpkg pkgver setting +scan_symlink_targets() { + return +} + +package() { + export _runtimever=$("$srcdir"/dotnet --list-runtimes | awk '($1 == "Microsoft.NETCore.App"){print $2}') + export _sdkver=$("$srcdir"/dotnet --list-sdks | awk '{print $1}') + + depends=" + dotnet6-stage0-sdk + dotnet6-stage0-runtime + dotnet6-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 + + install -dm 755 "$subpkgdir"/etc/profile.d "$subpkgdir"/usr/bin "$subpkgdir"/usr/lib "$subpkgdir"/usr/share/dotnet "$subpkgdir"/usr/share/licenses/dotnet-host + + tar -xzf "$srcdir"/dotnet-sdk-*.tar.gz -C "$subpkgdir"/usr/share/dotnet/ --no-same-owner ./dotnet ./host + tar -xzf "$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() { + pkgver=$_sdkver + depends="dotnet6-bootstrap-runtime" + provides=dotnet6-bootstrap-sdk + provider_priority=1 + + install -dm 755 "$subpkgdir"/usr/share/dotnet "$subpkgdir"/usr/share/licenses + tar -xzf "$srcdir"/dotnet-sdk-*.tar.gz -C "$subpkgdir"/usr/share/dotnet/ --no-same-owner ./sdk ./templates + ln -s dotnet-host "$subpkgdir"/usr/share/licenses/dotnet6-sdk +} + +runtime() { + pkgdesc="The .NET Core runtime" + pkgver=$_runtimever + depends="dotnet-host" + provides=dotnet6-bootstrap-runtime + provider_priority=1 + + install -dm 755 "$subpkgdir"/usr/share/dotnet "$subpkgdir"/usr/share/licenses + tar -xzf "$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/dotnet6-runtime +} + +sha512sums=" +428082c31fd588b12fd34aeae965a58bf1c26b0282184ae5267a85cdadc503f667c7c00e8641892c97fbd5ef26a38a605b683b45a0fef2da302ec7f921cf64fe dotnet-sdk-6.0.100-linux-musl-x64.tar.gz +f58bd83b709dcb4b0b67830756069c34258a167b33cb290cbf30f21d69d75402d38e013fd7bbf00640fe19e397f78df6ff787cf8484ee8967d5b8809f033eafb dotnet.sh +" diff --git a/apk/v3.15/main/dotnet6-stage0/README.md b/apk/v3.15/main/dotnet6-stage0/README.md new file mode 100644 index 0000000..00c5dd2 --- /dev/null +++ b/apk/v3.15/main/dotnet6-stage0/README.md @@ -0,0 +1,23 @@ +# 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 +* Havn't tested for builds with armv7 and aarch64 as dotnet31-stage0 doesn't +have bootstrap binaries available for those architectures, need to figure this +out diff --git a/apk/v3.15/main/dotnet6-stage0/dotnet.sh b/apk/v3.15/main/dotnet6-stage0/dotnet.sh new file mode 100644 index 0000000..085d677 --- /dev/null +++ b/apk/v3.15/main/dotnet6-stage0/dotnet.sh @@ -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" + diff --git a/apk/v3.15/main/dotnet6/APKBUILD b/apk/v3.15/main/dotnet6/APKBUILD new file mode 100644 index 0000000..9194f43 --- /dev/null +++ b/apk/v3.15/main/dotnet6/APKBUILD @@ -0,0 +1,251 @@ +# Maintainer: Antoine Martin (ayakael) + +# Based on Archlinux PKGBUILD by: +# Maxime Gauduin +# Kristian Mosegaard +# Max Liebkies +# Krzysztof Bogacki + +# Build vars +# LLVM version +_llvmver=12 +_stage0ver_runtime=6.0.1-r0 +_stage0ver_sdk=6.0.100-r0 + +pkgname=dotnet6 +pkgdesc="The .NET Core SDK" +pkgver=6.0.101 +_bootstrapver=0.1.0-6.0.100-bootstrap.29 +pkgrel=0 +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 + nodejs + openssl-dev + linux-headers + zlib-dev + dotnet31-bootstrap-runtime + dotnet6-stage0-runtime=$_stage0ver_runtime + dotnet6-stage0-sdk=$_stage0ver_sdk +" + +subpackages=" + dotnet6-sdk:sdk + dotnet6-host:host + dotnet6-runtime:runtime + aspnet6-runtime:aspnet_runtime:noarch + netstandard6-targeting-pack:netstandard_targeting_pack:noarch + dotnet6-targeting-pack:targeting_pack + aspnet6-targeting-pack:aspnet_targeting_pack:noarch +" +_gittag=v$pkgver +_giturl=https://github.com/dotnet/installer +options="!check" +source=" + $pkgname-$_gittag.tar.gz::$_giturl/archive/refs/tags/$_gittag.tar.gz + dotnet.sh + runtime_disable-package-validation.patch + runtime_add-rid-for-alpine-315.patch + sdk_telemetry-optout.patch +" +builddir="$srcdir/sources" + +# Disables dependency tracing for symlinks, thus fixing per-subpkg pkgver setting +scan_symlink_targets() { + return +} + +# TODO +# Fix ilasm issue in src/source-build-reference-packages.fc184172bf8144f7c91a7bc0226b7d90c5821576 +# Error: +# /var/build/build/apk/v3.15/main/dotnet-6.0/src/sources/src/source-build-reference-packages.fc184172bf8144f7c91a7bc0226b7d90c5821576/artifacts/source-build/self/src/src/targetPacks/build-il.sh: line 11: /var/build/build/apk/v3.15/main/dotnet-6.0/src/sources/src/source-build-reference-packages.fc184172bf8144f7c91a7bc0226b7d90c5821576/artifacts/source-build/self/package-cache/runtime.linux-x64.microsoft.netcore.ilasm/6.0.0/runtimes/linux-x64/native/ilasm: No such file or directory +# This is due to ilasm being precompiled for libc rather than musl. +# Need to figure out how to have it use musl binaries +# +# Tried adjusting /var/build/build/apk/v3.15/main/dotnet-6.0/src/sources/src/source-build-reference-packages.fc184172bf8144f7c91a7bc0226b7d90c5821576/artifacts/source-build/self/src/src/targetPacks/Directory.Build.targets +# to use mono's version of ilasm, but anything past artifacts get regenerated. Need to figure out what patch mecanism source-build-reference-packages uses to patch Directory.Build.targets +# + +_patch(){ + cd "$builddir" + local i failed= + + if ! have_patches; then + return 0 + fi + + 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 "Applying $_patch -> $_package" + if [ -d src/$_package.* ]; then + cd src/$_package.* + else + echo "$_package does not exist for patch" + continue + fi + patch -Np1 -i "$srcdir"/${i} + cd "$builddir" + ;; + 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 +} + +prepare() { + cd "$srcdir"/installer-$pkgver + + # Disabling use of sudo in build.sh + sed -i 's/sudo -E//g' build.sh + + msg "Settings up bootstrap SDK" + cp -r /usr/share/dotnet ./.dotnet + + ./build.sh \ + /p:ArcadeBuildTarball=true \ + /p:TarballDir="$srcdir"/sources + _patch +} + +build() { + msg "Building $pkgname-$pkgver" + ./prep.sh + ./build.sh +} + +package() { + depends=" + dotnet6-sdk + dotnet-host + dotnet6-runtime + dotnet6-targeting-pack + aspnet6-runtime + aspnet6-targeting-pack + netstandard21-targeting-pack + " + mkdir -p "${pkgdir}" +} + +sdk() { + depends=" + dotnet6-runtime + dotnet6-targeting-pack + netstandard21-targeting-pack + aspnet6-targeting-pack + " + provides="dotnet6-bootstrap-sdk" + + cd "$builddir"/artifacts/x64/Release + + install -dm 755 "$subpkgdir"/usr/share/dotnet "$subpkgdir"/usr/share/licenses + tar -xzf dotnet-sdk-*.tar.gz -C "${subpkgdir}"/usr/share/dotnet/ --no-same-owner ./sdk ./templates + ln -s dotnet-host "${subpkgdir}"/usr/share/licenses/dotnet6-sdk +} + + +host() { + pkgdesc="A generic driver for the .NET Core Command Line Interface" + provides="dotnet-host" + provider_priority=6 + + 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 + + tar -xzf dotnet-sdk-*.tar.gz -C "${subpkgdir}"/usr/share/dotnet/ --no-same-owner ./dotnet ./host + tar -xzf 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" + depends="dotnet-host" + provides="dotnet6-bootstrap-runtime" + provider_priority=6 + + cd "$builddir"/artifacts/x64/Release + + install -dm 755 "$subpkgdir"/usr/share/dotnet "$subpkgdir"/usr/share/licenses + tar -xzf dotnet-sdk-*.tar.gz -C "${subpkgdir}"/usr/share/dotnet/ --no-same-owner ./shared/Microsoft.NETCore.App + ln -s dotnet-host "${subpkgdir}"/usr/share/licenses/dotnet6-runtime +} + +aspnet_runtime() { + pkgdesc="The ASP.NET Core runtime" + depends="dotnet6-runtime" + + cd "$builddir"/artifacts/x64/Release + + install -dm 755 "$subpkgdir"/usr/share/dotnet "$subpkgdir"/usr/share/licenses + tar -xzf dotnet-sdk-*.tar.gz -C "${subpkgdir}"/usr/share/dotnet/ --no-same-owner ./shared/Microsoft.AspNetCore.App + ln -s dotnet-host "${subpkgdir}"/usr/share/licenses/aspnet6-runtime +} + +netstandard_targeting_pack() { + kgdesc="The .NET Standard targeting pack" + + cd "$builddir"/artifacts/x64/Release + + install -dm 755 "$subpkgdir"/usr/share/dotnet "$subpkgdir"/usr/share/licenses + + tar -xzf dotnet-sdk-*.tar.gz -C "${subpkgdir}"/usr/share/dotnet/ --no-same-owner ./packs/NETStandard.Library.Ref + ln -s dotnet-host "${subpkgdir}"/usr/share/licenses/netstandard21-targeting-pack +} + +targeting_pack() { + pkgdesc="The .NET Core targeting pack" + depends="netstandard21-targeting-pack" + + cd "$builddir"/artifacts/x64/Release + + install -dm 755 "$subpkgdir"/usr/share/dotnet "$subpkgdir"/usr/share/licenses + tar -xzf dotnet-sdk-*.tar.gz -C "${subpkgdir}"/usr/share/dotnet/ --no-same-owner --wildcards ./packs/Microsoft.NETCore.App.Host.* ./packs/Microsoft.NETCore.App.Ref + ln -s dotnet-host "${subpkgdir}"/usr/share/licenses/dotnet6-targeting-pack +} + +aspnet_targeting_pack() { + pkgdesc="The ASP.NET Core targeting pack" + depends="dotnet6-targeting-pack" + + cd "$builddir"/artifacts/x64/Release + + install -dm 755 "$subpkgdir"/usr/share/dotnet "$subpkgdir"/usr/share/licenses + tar -xzf 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/aspnet6-targeting-pack +} +sha512sums=" +26ad152ce2d8de003dd43033633c73cb1d2607163e6bd7856e568d77b3d7312fad3705d4619804ec5806e6a61a8a3fae6d3ef6cab27da34bba8095fbf8cba1a9 dotnet6-v6.0.101.tar.gz +e61b9e3e5a2305646a616d598378230c9755c5dd5363692cc363f8f4add3807563c324dd86f3a7ae9d358c82d730608e7b293935a2b6c81c0c0f62d752a0a1cf dotnet.sh +352b28eeb84b8ef0354ec8f27bc85babb9f7976acf5c3219a4d47e4930e63ab3a60cea3f95d7fa23ac88796e33b9cbd3d36e1e2833046c5cfee6c95213b3a21b runtime_disable-package-validation.patch +7fd6e99b0eaaa7ebf3acb0947d553b6f52a27a43287447940586f97f478ae4b5d94ce74b2cb3ca932ed6ae64edac949590b8e066d984dfda9d2bceb1e477aff8 runtime_add-rid-for-alpine-315.patch +ec8fdf712b996bfec8384edca3de6c1f9e77c1b7b3569bf461380932a163416920132d7d83843d86b212a0d54542304c754544f2a1f8f881654d352c4adff73d sdk_telemetry-optout.patch +" diff --git a/apk/v3.15/main/dotnet6/README.md b/apk/v3.15/main/dotnet6/README.md new file mode 100644 index 0000000..f11f584 --- /dev/null +++ b/apk/v3.15/main/dotnet6/README.md @@ -0,0 +1,37 @@ +# Description + + +# Known issues +* ilasm pulled from source-build-reference-packages isn't built for musl, thus: +## Error: +``` + /var/build/build/apk/v3.15/main/dotnet-6.0/src/sources/src/source-build-reference-packages.fc184172bf8144f7c91a7bc0226b7d90c5821576/artifacts/source-build/self/src/src/targetPacks/build-il.sh: line 11: /var/build/build/apk/v3.15/main/dotnet-6.0/src/sources/src/source-build-reference-packages.fc184172bf8144f7c91a7bc0226b7d90c5821576/artifacts/source-build/self/package-cache/runtime.linux-x64.microsoft.netcore.ilasm/6.0.0/runtimes/linux-x64/native/ilasm: No such file or directory + ``` +## Attempts: +* Tried adjusting sources/src/source-build-reference-packages.fc184172bf8144f7c91a7bc0226b7d90c5821576/artifacts/source-build/self/src/src/targetPacks/Directory.Build.targets +to use mono's version of ilasm, but anything past artifacts get regenerated. +Need to figure out what patch mecanism source-build-reference-packages uses +to patch Directory.Build.targets + +* 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' + +# Patch notes +* 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 + For some reason, runtime does not link in the right order. This fixes that. +* runtime_non-portable-distrorid-fix-alpine.patch + Runtime adds the extra subversion in its calculation of Alpine's DistroRID + when a non-portable build, but does so inconsistently. This creates an error + when it generates its nuget 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 + + + diff --git a/apk/v3.15/main/dotnet6/dotnet.sh b/apk/v3.15/main/dotnet6/dotnet.sh new file mode 100644 index 0000000..fcc0bfd --- /dev/null +++ b/apk/v3.15/main/dotnet6/dotnet.sh @@ -0,0 +1,12 @@ +# 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" diff --git a/apk/v3.15/main/dotnet6/runtime_add-rid-for-alpine-315.patch b/apk/v3.15/main/dotnet6/runtime_add-rid-for-alpine-315.patch new file mode 100644 index 0000000..83e91e4 --- /dev/null +++ b/apk/v3.15/main/dotnet6/runtime_add-rid-for-alpine-315.patch @@ -0,0 +1,200 @@ +From 09e477fd876de48614d728fbd6582db2a0f203b7 Mon Sep 17 00:00:00 2001 +From: "build@apk-groulx" +Date: Mon, 29 Nov 2021 20:39:25 +0000 +Subject: [PATCH 1/1] add RID for Alpine 3.15 + +--- + .../runtime.compatibility.json | 116 +++++++++++++++++- + .../Microsoft.NETCore.Platforms/src/runtime.json | 25 +++- + .../runtimeGroups.props | 2 +- + 3 files changed, 140 insertions(+), 3 deletions(-) + +diff --git a/src/libraries/Microsoft.NETCore.Platforms/src/runtime.compatibility.json b/src/libraries/pkg/Microsoft.NETCore.Platforms/runtime.compatibility.json +index 844590f8022..7d7517f043b 100644 +--- a/src/libraries/Microsoft.NETCore.Platforms/src/runtime.compatibility.json ++++ b/src/libraries/Microsoft.NETCore.Platforms/src/runtime.compatibility.json +@@ -508,6 +508,120 @@ + "any", + "base" + ], ++ "alpine.3.15": [ ++ "alpine.3.15", ++ "alpine.3.14", ++ "alpine.3.13", ++ "alpine.3.12", ++ "alpine.3.11", ++ "alpine.3.10", ++ "alpine.3.9", ++ "alpine.3.8", ++ "alpine.3.7", ++ "alpine.3.6", ++ "alpine", ++ "linux-musl", ++ "linux", ++ "unix", ++ "any", ++ "base" ++ ], ++ "alpine.3.15-arm": [ ++ "alpine.3.15-arm", ++ "alpine.3.15", ++ "alpine.3.14-arm", ++ "alpine.3.14", ++ "alpine.3.13-arm", ++ "alpine.3.13", ++ "alpine.3.12-arm", ++ "alpine.3.12", ++ "alpine.3.11-arm", ++ "alpine.3.11", ++ "alpine.3.10-arm", ++ "alpine.3.10", ++ "alpine.3.9-arm", ++ "alpine.3.9", ++ "alpine.3.8-arm", ++ "alpine.3.8", ++ "alpine.3.7-arm", ++ "alpine.3.7", ++ "alpine.3.6-arm", ++ "alpine.3.6", ++ "alpine-arm", ++ "alpine", ++ "linux-musl-arm", ++ "linux-musl", ++ "linux-arm", ++ "linux", ++ "unix-arm", ++ "unix", ++ "any", ++ "base" ++ ], ++ "alpine.3.15-arm64": [ ++ "alpine.3.15-arm64", ++ "alpine.3.15", ++ "alpine.3.14-arm64", ++ "alpine.3.14", ++ "alpine.3.13-arm64", ++ "alpine.3.13", ++ "alpine.3.12-arm64", ++ "alpine.3.12", ++ "alpine.3.11-arm64", ++ "alpine.3.11", ++ "alpine.3.10-arm64", ++ "alpine.3.10", ++ "alpine.3.9-arm64", ++ "alpine.3.9", ++ "alpine.3.8-arm64", ++ "alpine.3.8", ++ "alpine.3.7-arm64", ++ "alpine.3.7", ++ "alpine.3.6-arm64", ++ "alpine.3.6", ++ "alpine-arm64", ++ "alpine", ++ "linux-musl-arm64", ++ "linux-musl", ++ "linux-arm64", ++ "linux", ++ "unix-arm64", ++ "unix", ++ "any", ++ "base" ++ ], ++ "alpine.3.15-x64": [ ++ "alpine.3.15-x64", ++ "alpine.3.15", ++ "alpine.3.14-x64", ++ "alpine.3.14", ++ "alpine.3.13-x64", ++ "alpine.3.13", ++ "alpine.3.12-x64", ++ "alpine.3.12", ++ "alpine.3.11-x64", ++ "alpine.3.11", ++ "alpine.3.10-x64", ++ "alpine.3.10", ++ "alpine.3.9-x64", ++ "alpine.3.9", ++ "alpine.3.8-x64", ++ "alpine.3.8", ++ "alpine.3.7-x64", ++ "alpine.3.7", ++ "alpine.3.6-x64", ++ "alpine.3.6", ++ "alpine-x64", ++ "alpine", ++ "linux-musl-x64", ++ "linux-musl", ++ "linux-x64", ++ "linux", ++ "unix-x64", ++ "unix", ++ "any", ++ "base" ++ ], + "alpine.3.6": [ + "alpine.3.6", + "alpine", +@@ -7239,4 +7353,4 @@ + "any", + "base" + ] +-} +\ No newline at end of file ++} +diff --git a/src/libraries/pkg/Microsoft.NETCore.Platforms/runtime.json b/src/libraries/pkg/Microsoft.NETCore.Platforms/runtime.json +index 7d6aa102b50..ea7eac422b8 100644 +--- a/src/libraries/Microsoft.NETCore.Platforms/src/runtime.json ++++ b/src/libraries/Microsoft.NETCore.Platforms/src/runtime.json +@@ -138,6 +138,29 @@ + "alpine.3.13-x64" + ] + }, ++ "alpine.3.15": { ++ "#import": [ ++ "alpine.3.14" ++ ] ++ }, ++ "alpine.3.15-arm": { ++ "#import": [ ++ "alpine.3.15", ++ "alpine.3.14-arm" ++ ] ++ }, ++ "alpine.3.15-arm64": { ++ "#import": [ ++ "alpine.3.15", ++ "alpine.3.14-arm64" ++ ] ++ }, ++ "alpine.3.15-x64": { ++ "#import": [ ++ "alpine.3.15", ++ "alpine.3.14-x64" ++ ] ++ }, + "alpine.3.6": { + "#import": [ + "alpine" +@@ -3196,4 +3219,4 @@ + ] + } + } +-} +\ No newline at end of file ++} +diff --git a/src/libraries/pkg/Microsoft.NETCore.Platforms/runtimeGroups.props b/src/libraries/pkg/Microsoft.NETCore.Platforms/runtimeGroups.props +index 3cb3d2df858..c7a346d1672 100644 +--- a/src/libraries/Microsoft.NETCore.Platforms/src/runtimeGroups.props ++++ b/src/libraries/Microsoft.NETCore.Platforms/src/runtimeGroups.props +@@ -16,7 +16,7 @@ + + linux-musl + x64;arm;arm64 +- 3.6;3.7;3.8;3.9;3.10;3.11;3.12;3.13;3.14 ++ 3.6;3.7;3.8;3.9;3.10;3.11;3.12;3.13;3.14;3.15 + + + +-- +2.34.0 + diff --git a/apk/v3.15/main/dotnet6/runtime_disable-package-validation.patch b/apk/v3.15/main/dotnet6/runtime_disable-package-validation.patch new file mode 100644 index 0000000..94f27c5 --- /dev/null +++ b/apk/v3.15/main/dotnet6/runtime_disable-package-validation.patch @@ -0,0 +1,12 @@ +diff -rupN runtime.4822e3c3aa77eb82b2fb33c9321f923cf11ddde6.orig/eng/packaging.targets runtime.4822e3c3aa77eb82b2fb33c9321f923cf11ddde6/eng/packaging.targets +--- runtime.4822e3c3aa77eb82b2fb33c9321f923cf11ddde6.orig/eng/packaging.targets 2021-11-12 12:56:02.738439496 +0000 ++++ runtime.4822e3c3aa77eb82b2fb33c9321f923cf11ddde6/eng/packaging.targets 2021-11-12 12:56:33.683705462 +0000 +@@ -1,7 +1,7 @@ + + + +- true ++ false + + true + $([MSBuild]::Subtract($(MajorVersion), 1)).0.0 diff --git a/apk/v3.15/main/dotnet6/sdk_telemetry-optout.patch b/apk/v3.15/main/dotnet6/sdk_telemetry-optout.patch new file mode 100644 index 0000000..afd5833 --- /dev/null +++ b/apk/v3.15/main/dotnet6/sdk_telemetry-optout.patch @@ -0,0 +1,12 @@ +diff -rupN sdk.2c798cbf6bf259ce49d94d91bc665a95d42d7a7f.orig/src/Cli/dotnet/Program.cs sdk.2c798cbf6bf259ce49d94d91bc665a95d42d7a7f/src/Cli/dotnet/Program.cs +--- sdk.2c798cbf6bf259ce49d94d91bc665a95d42d7a7f.orig/src/Cli/dotnet/Program.cs 2021-11-13 08:32:52.012563149 +0000 ++++ sdk.2c798cbf6bf259ce49d94d91bc665a95d42d7a7f/src/Cli/dotnet/Program.cs 2021-11-13 08:33:32.414941596 +0000 +@@ -171,7 +171,7 @@ namespace Microsoft.DotNet.Cli + bool generateAspNetCertificate = + environmentProvider.GetEnvironmentVariableAsBool("DOTNET_GENERATE_ASPNET_CERTIFICATE", defaultValue: true); + bool telemetryOptout = +- environmentProvider.GetEnvironmentVariableAsBool("DOTNET_CLI_TELEMETRY_OPTOUT", defaultValue: false); ++ environmentProvider.GetEnvironmentVariableAsBool("DOTNET_CLI_TELEMETRY_OPTOUT", defaultValue: true); + bool addGlobalToolsToPath = + environmentProvider.GetEnvironmentVariableAsBool("DOTNET_ADD_GLOBAL_TOOLS_TO_PATH", defaultValue: true); + bool nologo = diff --git a/apk/v3.15/main/firefly-iii-plaid-connector/APKBUILD b/apk/v3.15/main/firefly-iii-plaid-connector/APKBUILD index 01565e1..d7401b4 100644 --- a/apk/v3.15/main/firefly-iii-plaid-connector/APKBUILD +++ b/apk/v3.15/main/firefly-iii-plaid-connector/APKBUILD @@ -2,14 +2,14 @@ pkgname=firefly-iii-plaid-connector pkgver=0.3.1 -pkgrel=4 +pkgrel=5 pkgdesc='The Free Software Media System' arch='i686 x86_64' url='https://gitlab.com/GeorgeHahn/firefly-plaid-connector' license='MIT' options="!strip !check" -depends='firefly-iii dotnet-runtime-3.1' -makedepends='dotnet-sdk-3.1' +depends='firefly-iii dotnet31-runtime' +makedepends='dotnet31-sdk' source="firefly-plaid-connector-$pkgver.tar.gz::https://gitlab.com/GeorgeHahn/firefly-plaid-connector/-/archive/v${pkgver}/firefly-plaid-connector-v${pkgver}.tar.gz" builddir="${srcdir}/firefly-plaid-connector-v${pkgver}" diff --git a/apk/v3.15/main/firefly-iii/APKBUILD b/apk/v3.15/main/firefly-iii/APKBUILD index fef4ffa..af67473 100644 --- a/apk/v3.15/main/firefly-iii/APKBUILD +++ b/apk/v3.15/main/firefly-iii/APKBUILD @@ -1,21 +1,41 @@ # Maintainer: Antoine Martin pkgname=firefly-iii -pkgver=5.5.13 -pkgrel=0 +pkgver=5.6.8 +pkgrel=3 pkgdesc='PHP personal finances manager' pkgusers='firefly' arch='noarch' url="https://github.com/${pkgname}/${pkgname}" license='custom' options=!check -depends='php7-intl' +depends=' + php8 + php8-intl + php8-curl + php8-bcmath + php8-zip + php8-gd + php8-xml + php8-mbstring + php8-ldap + php8-session + php8-pdo_pgsql + php8-fileinfo + php8-simplexml + php8-sodium + php8-tokenizer + php8-xmlwriter + php8-dom + ' makedepends='composer' source="$pkgname-$pkgver.tar.gz::https://github.com/${pkgname}/${pkgname}/archive/${pkgver}.tar.gz" +builddir="$srcdir/$pkgname-$pkgver" + +prepare() { + composer install --no-scripts --no-dev +} package() { - cd "$srcdir/$pkgname-$pkgver" - composer install --no-scripts --no-dev --ignore-platform-reqs - install -d "$pkgdir/usr/share/webapps/$pkgname" "$pkgdir/usr/share/licenses/$pkgname" "$pkgdir/etc/webapps/$pkgname" cp -rv * "$pkgdir/usr/share/webapps/$pkgname" install -D "$srcdir/$pkgname-$pkgver/LICENSE" "$pkgdir/usr/share/licenses/$pkgname" @@ -43,5 +63,5 @@ package() { # vim:ts=4:sw=4:expandtab sha512sums=" -f1c93ccfadabdb03c700e890664f82e24deb69cb354406bdf7d4e4ca40b7aa72f36b9cf9803e4a308e055d23201260e369807f5459165d0a9b57aeba2287b50e firefly-iii-5.5.13.tar.gz +e49e2847d021b4c75c92893ff96c0f1bf16d79e67ee717c7df4a36cc98bcf8af0d619b406fa9989a53c97aa1b04448c8b1e1e1c6455cc6e4d1a116ef53666df6 firefly-iii-5.6.8.tar.gz " diff --git a/apk/v3.15/main/haskell-cpphs/APKBUILD b/apk/v3.15/main/haskell-cpphs/APKBUILD new file mode 100644 index 0000000..277ff21 --- /dev/null +++ b/apk/v3.15/main/haskell-cpphs/APKBUILD @@ -0,0 +1,34 @@ +# Maintainer: Felix Yan +# Contributor: Arch Haskell Team + +_hkgname=cpphs +pkgname=haskell-cpphs +pkgver=1.20.9.1 +pkgrel=0 +pkgdesc="A liberalised re-implementation of cpp, the C pre-processor." +url="https://projects.haskell.org/cpphs/" +license="LGPL" +arch='x86_64' +depends='ghc haskell-polyparse' +source="https://hackage.haskell.org/packages/archive/${_hkgname}/${pkgver}/${_hkgname}-${pkgver}.tar.gz" +builddir="$srcdir"/$_hkgname-$pkgver + +build() { + runhaskell Setup configure -O --enable-shared --enable-executable-dynamic --disable-library-vanilla \ + --prefix=/usr --docdir=/usr/share/doc/$pkgname \ + --dynlibdir=/usr/lib --libsubdir=\$compiler/\$pkgid --ghc-option=-fllvm + runhaskell Setup build $MAKEFLAGS + runhaskell Setup register --gen-script + runhaskell Setup unregister --gen-script + sed -i -r -e "s|ghc-pkg.*update[^ ]* |&'--force' |" register.sh + sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh +} + +package() { + install -D -m744 register.sh "$pkgdir"/usr/share/haskell/register/$pkgname.sh + install -D -m744 unregister.sh "$pkgdir"/usr/share/haskell/unregister/$pkgname.sh + runhaskell Setup copy --destdir="$pkgdir" +} +sha512sums=" +bc5cd86c1e42061ae5c940612542dbea420344fb8596495d71ff2dc724bc1a3785f830e51c3ae99394488a122deabacd6433a5c919e3682c4129f3b296b7931f cpphs-1.20.9.1.tar.gz +" diff --git a/apk/v3.15/main/haskell-polyparse/APKBUILD b/apk/v3.15/main/haskell-polyparse/APKBUILD index 1d2ff76..05710ec 100644 --- a/apk/v3.15/main/haskell-polyparse/APKBUILD +++ b/apk/v3.15/main/haskell-polyparse/APKBUILD @@ -4,25 +4,23 @@ _hkgname=polyparse pkgname=haskell-polyparse pkgver=1.13 -pkgrel=0 +pkgrel=3 pkgdesc="A variety of alternative parser combinator libraries." url="http://code.haskell.org/~malcolm/polyparse/" license="LGPL" arch='x86_64' makedepends='ghc' source="https://hackage.haskell.org/packages/archive/${_hkgname}/${pkgver}/${_hkgname}-${pkgver}.tar.gz" +builddir=$srcdir/$_hkgname-$pkgver prepare() { - cd $_hkgname-$pkgver sed -i 's/< *4.14/<5/' $_hkgname.cabal } build() { - cd $srcdir/$_hkgname-$pkgver - - runhaskell Setup configure -O --enable-shared --enable-executable-dynamic --disable-library-vanilla \ + runhaskell Setup configure -O --disable-shared --disable-profiling --disable-library-vanilla \ --prefix=/usr --docdir=/usr/share/doc/$pkgname \ - --dynlibdir=/usr/lib --libsubdir=\$compiler/site-local/\$pkgid + --dynlibdir=/usr/lib --libsubdir=\$compiler/\$pkgid runhaskell Setup build $MAKEFLAGS runhaskell Setup register --gen-script runhaskell Setup unregister --gen-script @@ -31,8 +29,6 @@ build() { } package() { - cd $srcdir/$_hkgname-$pkgver - install -D -m744 register.sh "$pkgdir"/usr/share/haskell/register/$pkgname.sh install -D -m744 unregister.sh "$pkgdir"/usr/share/haskell/unregister/$pkgname.sh runhaskell Setup copy --destdir="$pkgdir" diff --git a/apk/v3.15/testing/intel-media-sdk/0001-Fixed-build-for-musl.patch b/apk/v3.15/main/intel-media-sdk/0001-Fixed-build-for-musl.patch similarity index 100% rename from apk/v3.15/testing/intel-media-sdk/0001-Fixed-build-for-musl.patch rename to apk/v3.15/main/intel-media-sdk/0001-Fixed-build-for-musl.patch diff --git a/apk/v3.15/testing/intel-media-sdk/APKBUILD b/apk/v3.15/main/intel-media-sdk/APKBUILD similarity index 100% rename from apk/v3.15/testing/intel-media-sdk/APKBUILD rename to apk/v3.15/main/intel-media-sdk/APKBUILD diff --git a/apk/v3.15/main/jellyfin-ffmpeg/APKBUILD b/apk/v3.15/main/jellyfin-ffmpeg/APKBUILD index cb80cc9..1a9ed8d 100644 --- a/apk/v3.15/main/jellyfin-ffmpeg/APKBUILD +++ b/apk/v3.15/main/jellyfin-ffmpeg/APKBUILD @@ -4,7 +4,7 @@ # Maintainer: Natanael Copa pkgname=jellyfin-ffmpeg pkgver=4.3.2 -pkgrel=0 +pkgrel=1 pkgdesc="Complete and free Internet live audio and video broadcasting solution for Linux/Unix" url="https://ffmpeg.org/" arch="all" @@ -187,8 +187,6 @@ build() { --enable-opencl \ --enable-vaapi \ --enable-amf \ - --enable-cuda \ - --enable-cuda-llvm \ --enable-cuvid \ --enable-nvenc \ --enable-nvdec \ @@ -199,6 +197,8 @@ build() { $_asm $_aom $_dbg #--disable-doc \ +# --enable-cuda-llvm \ +# --enable-cuda \ make ${CC:-gcc} -o tools/qt-faststart $CFLAGS tools/qt-faststart.c diff --git a/apk/v3.15/main/jellyfin/APKBUILD b/apk/v3.15/main/jellyfin/APKBUILD index 9ea7439..691ea7f 100644 --- a/apk/v3.15/main/jellyfin/APKBUILD +++ b/apk/v3.15/main/jellyfin/APKBUILD @@ -1,74 +1,79 @@ -# Maintainer: Antoine Martin +# Maintainer: Antoine "ayakael" Martin pkgname=jellyfin pkgver=10.7.7 -pkgrel=0 -pkgdesc='The Free Software Media System' -arch='i686 x86_64 armv6h' -url='https://github.com/jellyfin/jellyfin' -license='GPL2' -options="!strip" -makedepends='dotnet-sdk-5.0 git npm yarn' -source="jellyfin-$pkgver.tar.gz::https://github.com/jellyfin/jellyfin/archive/v$pkgver.tar.gz - jellyfin-web-$pkgver.tar.gz::https://github.com/jellyfin/jellyfin-web/archive/v$pkgver.tar.gz - jellyfin.conf - jellyfin.initd" -subpackages="$pkgname-web $pkgname-server" +pkgrel=5 +pkgdesc="The Free Software Media System" +arch="x86_64" +url="https://github.com/jellyfin/jellyfin" +license="GPL2" +options="!strip !check" # No testsuite +makedepends="dotnet5-sdk npm yarn icu skia-sharp dotnet5" +source=" + jellyfin-$pkgver.tar.gz::https://github.com/jellyfin/jellyfin/archive/v$pkgver.tar.gz + jellyfin-web-$pkgver.tar.gz::https://github.com/jellyfin/jellyfin-web/archive/v$pkgver.tar.gz + jellyfin.conf + jellyfin.initd +" +subpackages="$pkgname-web::noarch $pkgname-server $pkgname-openrc" build(){ - # Build jellyfin-web - cd "${srcdir}"/jellyfin-web-$pkgver + # Build jellyfin-web + cd "${srcdir}"/jellyfin-web-$pkgver - yarn install --cache-folder "$srcdir"/yarn-cache --update-db + yarn install --cache-folder "$srcdir"/yarn-cache --update-db - # Build jellyfin-server - cd "${srcdir}"/jellyfin-$pkgver + # Build jellyfin-server + cd "${srcdir}"/jellyfin-$pkgver - # Disable dotnet telemetry - export DOTNET_CLI_TELEMETRY_OPTOUT=1 - - dotnet build --configuration Release Jellyfin.Server - # Ideally, this would be run in package() with the --output variable pointing - # to "$pkgdir"/usr/lib/jellyfin, but this step fails in fakeroot. - # The makepkg output looks like - # Restore completed in 56.84 ms for /aur/jellyfin-git/src/jellyfin/Jellyfin.Server/Jellyfin.Server.csproj. - # ==> ERROR: A failure occurred in package(). - # without indicating any sort of failure. - dotnet publish --configuration Release Jellyfin.Server --output "$PWD"/publish - # Clean up the runtimes folder (keep linux-*) - rm -rfv publish/runtimes/{alpine-*,osx*,tizen-*,win*} + # Disable dotnet telemetry + export DOTNET_CLI_TELEMETRY_OPTOUT=1 + + dotnet build --configuration Release Jellyfin.Server + # Ideally, this would be run in package() with the --output variable pointing + # to "$pkgdir"/usr/lib/jellyfin, but this step fails in fakeroot. + # The makepkg output looks like + # Restore completed in 56.84 ms for /aur/jellyfin-git/src/jellyfin/Jellyfin.Server/Jellyfin.Server.csproj. + # ==> ERROR: A failure occurred in package(). + # without indicating any sort of failure. + dotnet publish --configuration Release Jellyfin.Server --output "$PWD"/publish + # Clean up the runtimes folder (keep linux-*) + rm -rfv publish/runtimes/{alpine-*,osx*,tizen-*,win*} } package() { - depends="jellyfin-web=$pkgver jellyfin-server=$pkgver" - mkdir -p "${pkgdir}" + depends="jellyfin-web jellyfin-server" + mkdir -p "${pkgdir}" } server() { - pkgdesc="Jellyfin server component" - depends=' - dotnet-runtime-5.0 - aspnet-runtime-5.0 - ffmpeg - sqlite' + pkgdesc="Jellyfin server component" + depends=" + dotnet5-runtime + aspnet5-runtime + jellyfin-ffmpeg + sqlite + " - mkdir -p "$subpkgdir"/usr/lib - cp -r "${srcdir}"/jellyfin-$pkgver/publish "$subpkgdir"/usr/lib/jellyfin - - install -Dm 755 jellyfin.initd -t "$subpkgdir"/etc/init.d/jellyfin - install -Dm 644 jellyfin.conf "$subpkgdir"/etc/conf.d/jellyfin + mkdir -p "$subpkgdir"/usr/lib + cp -r "${srcdir}"/jellyfin-$pkgver/publish "$subpkgdir"/usr/lib/jellyfin } web() { - pkgdesc="Jellyfin web client" + pkgdesc="Jellyfin web client" - mkdir -p "$subpkgdir"/usr/lib/jellyfin - cp -r "$srcdir"/jellyfin-web-$pkgver/dist "$subpkgdir"/usr/lib/jellyfin/jellyfin-web + mkdir -p "$subpkgdir"/usr/lib/jellyfin + cp -r "$srcdir"/jellyfin-web-$pkgver/dist "$subpkgdir"/usr/lib/jellyfin/jellyfin-web +} + +openrc () { + install -Dm 755 jellyfin.initd "$subpkgdir"/etc/init.d/jellyfin + install -Dm 644 jellyfin.conf "$subpkgdir"/etc/conf.d/jellyfin } sha512sums=" 46da01564c917f65316507c298ab9c30abfd48b351ff6d8ab33429c1ba4800b986267d89431c4c8e3c0274dcd24c6864576b1d7a81a53b61c041da4ba2342d30 jellyfin-10.7.7.tar.gz 0ea3bdce5d99eef9562174410a1b4dde0f083ed92948366ccf3aa259ecfe1ebb559019cbe4d9bbd64e4a35232075d2f9348b63fb3f15ebd6dc2f4e9532903b66 jellyfin-web-10.7.7.tar.gz -2aa97a1a7a8a447171b59be3e93183e09cbbc32c816843cc47c6777b9aec48bd9c1d9d354f166e0b000ad8d2e94e6e4b0559aa52e5c159abbc103ed2c5afa3f0 jellyfin.conf -6974b86bd2bfeff288f3ed059b5d4b94f74fe045df44127c34a755be8d22af7f5338cc706080df4c4a720ef7256fd5a377abea5be4b68b79492bdd59ff962d69 jellyfin.initd +d82fcf2ac22a94c3d189ec2df2e70316688f5e2edbd2f60d6817639cb930a4d19fc5ed2c55bc367f084f91a71cc6d606d1d8e045a6bf947f2a832f682de6734d jellyfin.conf +ed256699b65c6319a42b037e47e99e62db227f336f53599c96914d1b9d859f4a36cca5fdabeec77bd58295a026f11039effd39328d2010ef7537b705a8bd4d60 jellyfin.initd " diff --git a/apk/v3.15/main/jellyfin/jellyfin.conf b/apk/v3.15/main/jellyfin/jellyfin.conf index c659bac..f46e2db 100644 --- a/apk/v3.15/main/jellyfin/jellyfin.conf +++ b/apk/v3.15/main/jellyfin/jellyfin.conf @@ -4,3 +4,4 @@ JELLYFIN_DATA_DIRECTORY="/var/lib/jellyfin" JELLYFIN_CACHE_DIRECTORY="/var/cache/jellyfin" # Additional options for the binary JELLYFIN_ADD_OPTS="" +NICELEVEL=1 diff --git a/apk/v3.15/main/jellyfin/jellyfin.initd b/apk/v3.15/main/jellyfin/jellyfin.initd index 1b09bd0..d24125d 100644 --- a/apk/v3.15/main/jellyfin/jellyfin.initd +++ b/apk/v3.15/main/jellyfin/jellyfin.initd @@ -10,7 +10,7 @@ depend() { } start() { - checkpath -dq -o jellyin:jellyfin -m 755 /run/jellyfin/ + checkpath -dq -o jellyfin:jellyfin -m 755 /run/jellyfin/ ebegin "Starting ${SVCNAME}" start-stop-daemon \ --start --user "${JELLYFIN_USER}" --name jellyfin \ diff --git a/apk/v3.15/main/jellyfin/jellyfin.service b/apk/v3.15/main/jellyfin/jellyfin.service deleted file mode 100644 index cd1626b..0000000 --- a/apk/v3.15/main/jellyfin/jellyfin.service +++ /dev/null @@ -1,13 +0,0 @@ -[Unit] -Description=Jellyfin Media Server -After=network.target - -[Service] -User=jellyfin -EnvironmentFile=/etc/conf.d/jellyfin -ExecStart=/usr/bin/dotnet /usr/lib/jellyfin/jellyfin.dll --datadir ${JELLYFIN_DATA_DIRECTORY} --cachedir ${JELLYFIN_CACHE_DIRECTORY} ${JELLYFIN_ADD_OPTS} -Restart=on-abort -TimeoutSec=20 - -[Install] -WantedBy=multi-user.target diff --git a/apk/v3.15/main/papermc/APKBUILD b/apk/v3.15/main/papermc/APKBUILD index 498bead..9f2911c 100644 --- a/apk/v3.15/main/papermc/APKBUILD +++ b/apk/v3.15/main/papermc/APKBUILD @@ -1,10 +1,10 @@ # Maintainer: Antoine Martin pkgname=papermc -_pkgver=1.17.1 -_build=388 +_pkgver=1.18.1 +_build=99 _license_commit=4a7962c -pkgver="${_pkgver}.${_build}" +pkgver="$_pkgver.$_build" pkgrel=0 pkgdesc="Next generation of Minecraft server, compatible with Spigot plugins and offering uncompromising performance" pkgusers="craftbukkit" @@ -12,17 +12,16 @@ pkggroups="craftbukkit" arch='noarch' url="https://papermc.io/" license='custom' -depends='openjdk16-jre-headless screen sudo bash gawk sed netcat-openbsd tar' +depends='openjdk17-jre-headless screen sudo bash gawk sed netcat-openbsd tar' backup='etc/conf.d/papermc' options="!check" provides="craftbukkit=$_pkgver" subpackages="${pkgname}-openrc" -source="papermc.${pkgver}.jar::https://papermc.io/api/v1/paper/${_pkgver}/${_build}/download +source="papermc.$pkgver.jar::https://papermc.io/api/v2/projects/paper/versions/$_pkgver/builds/$_build/downloads/paper-$_pkgver-$_build.jar papermc.initd papermc.conf papermc.sh - LICENSE_${pkgver}.md"::"https://raw.githubusercontent.com/PaperMC/Paper/${_license_commit}/LICENSE.md" -noextract="papermc.${pkgver}.jar" + LICENSE_$pkgver.md"::"https://raw.githubusercontent.com/PaperMC/Paper/$_license_commit/LICENSE.md" _game="papermc" _server_root="/var/lib/papermc" @@ -48,9 +47,9 @@ package() { install -D ${srcdir}/./LICENSE_${pkgver}.md "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" } sha512sums=" -68d227cddecdd1df549c5ab895b7fdee5a720840d9995f3115ac744f315b1135a97129605ed072cabbd152f21469a190726aad46cac3eaa32662bd2d622b1f45 papermc.1.17.1.388.jar +623d6423ee337671d546469e6bf1821005484192a1ae56d7b77f547f79102df50462e1d0144be13a0de9021c9d931bc974143b1e1526114627ba28688589d76a papermc.1.18.1.99.jar c5d1bf85ceb74162aaaf2bcd2d06dc2e3dd2e37c39f0cee2be7c8dbff9970a6aff1e48a43e6d1e83e6a0ac610bd89f62b1279bf27b64afa88d9831a36aebbd3e papermc.initd 9b8e267428731ee9255f82a93f1e8674d7e917a0f154bd395cd2280a49aa248a4b8427520b08dbb4b3a74a5471dac0e439eedc8ab94bf2e53bb8d411d2d8a789 papermc.conf 943ba0d4c10173246bdc6497dcedd54da0788f966841c8d3381398711d79f8d5eb07a24ce28f519b6f24f59d99fa9e74bc6bb882059f343df4eeda5de3660ac7 papermc.sh -d4c645a58e1a17a0a1e42856a3cc43097711a05bf3d9f18c77c3bc9874417f223552859042ff00b7d3dda0003f49a9ee568540c2eb24e9f8fbb3c055f3b6e0a5 LICENSE_1.17.1.388.md +d4c645a58e1a17a0a1e42856a3cc43097711a05bf3d9f18c77c3bc9874417f223552859042ff00b7d3dda0003f49a9ee568540c2eb24e9f8fbb3c055f3b6e0a5 LICENSE_1.18.1.99.md " diff --git a/apk/v3.15/main/skia-sharp/0001-dng_sdk-downgrade-for-musl-build.patch b/apk/v3.15/main/skia-sharp/0001-dng_sdk-downgrade-for-musl-build.patch new file mode 100644 index 0000000..c82136a --- /dev/null +++ b/apk/v3.15/main/skia-sharp/0001-dng_sdk-downgrade-for-musl-build.patch @@ -0,0 +1,25 @@ +From bccde543276cf97420100b88a970b017f64fcdcf Mon Sep 17 00:00:00 2001 +From: "build@apk-groulx" +Date: Sat, 1 Jan 2022 23:48:10 +0000 +Subject: [PATCH 1/1] dng_sdk downgrade for musl build + +--- + DEPS | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/DEPS b/DEPS +index e5d476e..f6d34b6 100644 +--- a/DEPS ++++ b/DEPS +@@ -9,7 +9,7 @@ deps = { + "common" : "https://skia.googlesource.com/common.git@9737551d7a52c3db3262db5856e6bcd62c462b92", + "third_party/externals/angle2" : "https://chromium.googlesource.com/angle/angle.git@5f857839b9ece789d3e3881395f898b4a5625b54", + "third_party/externals/dawn" : "https://dawn.googlesource.com/dawn.git@3c086a0c2e1dc3e2e14aaa3d78c052c7e07274b4", +- "third_party/externals/dng_sdk" : "https://android.googlesource.com/platform/external/dng_sdk.git@c8d0c9b1d16bfda56f15165d39e0ffa360a11123", ++ "third_party/externals/dng_sdk" : "https://android.googlesource.com/platform/external/dng_sdk.git@29c7498fabe2e3c87a85b487bfe9d783c401e1f0", + "third_party/externals/egl-registry" : "https://skia.googlesource.com/external/github.com/KhronosGroup/EGL-Registry@a0bca08de07c7d7651047bedc0b653cfaaa4f2ae", + "third_party/externals/expat" : "https://android.googlesource.com/platform/external/expat.git@9060df1c8101801e0bebcddc13816ae435686019", + "third_party/externals/freetype" : "https://skia.googlesource.com/third_party/freetype2.git@0a3d2bb99b45b72e1d45185ab054efa993d97210", +-- +2.34.1 + diff --git a/apk/v3.15/main/skia-sharp/APKBUILD b/apk/v3.15/main/skia-sharp/APKBUILD new file mode 100644 index 0000000..5d7fc39 --- /dev/null +++ b/apk/v3.15/main/skia-sharp/APKBUILD @@ -0,0 +1,84 @@ +# Maintainer: Maxime Gauduin + +pkgname=skia-sharp +pkgver=2.80.3 +pkgrel=0 +_major=$(echo $pkgver | awk -F '\.' '{print $2}') +_minor=$(echo $pkgver | awk -F '\.' '{print $3}') +_release=$pkgrel +pkgdesc='The Skia 2D Graphics library from Google exposed to .NET languages and runtimes across the board' +arch="x86_64" +options="!check" # No testsuite +url=https://github.com/mono/SkiaSharp +license="MIT" + +makedepends=" + clang + python2 + gn + ninja + zlib-dev + libpng-dev + libwebp-dev + libjpeg-turbo-dev + freetype-dev + fontconfig-dev + expat-dev +" +_giturl=https://github.com/mono/skia +_gittag=v$pkgver +source=" + $pkgname-$_gittag.tar.gz::$_giturl/archive/refs/tags/$_gittag.tar.gz + 0001-dng_sdk-downgrade-for-musl-build.patch +" +builddir="$srcdir"/skia-$pkgver + +prepare(){ + default_prepare + python2 tools/git-sync-deps +} + +build(){ + CFLAGS="$CFLAGS \ + -I/usr/include/freetype2 \ + -DSKIA_C_DLL" + + extra_cflags="" + for cflag in $CFLAGS; do + extra_cflags="$extra_cflags\"${cflag}\"," + done + extra_ldflags="" + for ldflag in $LDFLAGS; do + extra_ldflags="$extra_ldflags\"${ldflag}\"," + done + + gn gen out \ + --args="target_os=\"linux\" \ + target_cpu=\"x64\" \ + cc=\"clang\" \ + cxx=\"clang++\" \ + extra_cflags=[${extra_cflags}] \ + extra_ldflags=[${extra_ldflags}] \ + skia_enable_gpu=true \ + skia_enable_tools=false \ + skia_use_dng_sdk=true \ + skia_use_icu=false \ + skia_use_piex=true \ + skia_use_sfntly=false \ + is_component_build=false \ + is_debug=false \ + is_official_build=true \ + linux_soname_version=\"${_major}.${_minor}.${_release}\"" + ninja -C out +} + +package() { + install -Dm 755 "$builddir"/out/libSkiaSharp.so.${_major}.${_minor}.${_release} -t "${pkgdir}"/usr/lib/ + ln -s libSkiaSharp.so.${_major}.${_minor}.${_release} "${pkgdir}"/usr/lib/libSkiaSharp.so.${_major} + ln -s libSkiaSharp.so.${_major} "${pkgdir}"/usr/lib/libSkiaSharp.so + install -Dm 644 "$builddir"/LICENSE -t "${pkgdir}"/usr/share/licenses/skia-sharp/ +} +sha512sums=" +b671194e964ca38742bf48e265ec46dfbe02f1cab96a8a0f1638e905f2fe64d7d2ca79b45b3d2d5ed25c96c9b6ebdba3b723bc9976c5a2e529f4635a4d8a30e5 skia-sharp-v2.80.3.tar.gz +aeebbd95c8fb81b49fe83ce951b7b8d7aa2d2665a16c79b448cec8a6d3d6ca3e4f8aa3fb97d4614e40175d57abb29df64fb9a1173e7b126a6b5e5b6c5fa277a3 0001-dng_sdk-downgrade-for-musl-build.patch +"