From a9141db36d01eee0c78440731ba533d1d50d5ca5 Mon Sep 17 00:00:00 2001 From: brice-fromentin <21100662+brice-fromentin@users.noreply.github.com> Date: Sat, 7 Dec 2024 17:34:33 +0100 Subject: [PATCH] [New package] .NET 9 (#6344) * Initial release. * Change picture to use the dotnet8 package one. * add support for DSM 6 --------- Co-authored-by: Brice FROMENTIN Co-authored-by: hgy59 --- cross/dotnet9-runtime/Makefile | 46 +++++++++++++++++++++++++++++ cross/dotnet9-runtime/PLIST.auto | 0 cross/dotnet9-runtime/digests | 9 ++++++ spk/dotnet9-runtime/Makefile | 40 +++++++++++++++++++++++++ spk/dotnet9-runtime/src/dotnet.png | Bin 0 -> 14592 bytes 5 files changed, 95 insertions(+) create mode 100644 cross/dotnet9-runtime/Makefile create mode 100644 cross/dotnet9-runtime/PLIST.auto create mode 100644 cross/dotnet9-runtime/digests create mode 100644 spk/dotnet9-runtime/Makefile create mode 100644 spk/dotnet9-runtime/src/dotnet.png diff --git a/cross/dotnet9-runtime/Makefile b/cross/dotnet9-runtime/Makefile new file mode 100644 index 00000000000..e26b27d6946 --- /dev/null +++ b/cross/dotnet9-runtime/Makefile @@ -0,0 +1,46 @@ +PKG_NAME = aspnetcore-runtime +PKG_VERS = 9.0.0 +PKG_EXT = tar.gz +PKG_DIST_NAME = $(PKG_NAME)-$(PKG_VERS)-$(PKG_DIST_ARCH).$(PKG_EXT) +PKG_DIST_SITE = https://download.visualstudio.microsoft.com/download/pr/$(PKG_DIST_FOLDER) +PKG_DIR = $(PKG_NAME)-$(PKG_VERS) +EXTRACT_PATH = $(WORK_DIR)/$(PKG_DIR) + +include ../../mk/spksrc.archs.mk + +# use digests with multiple files and individual dist names +# both lists must have the same order +PKG_DIST_ARCH_LIST = linux-x64 linux-arm linux-arm64 +PKG_DIST_SITE_LIST = https://download.visualstudio.microsoft.com/download/pr/e4791376-b70d-431f-bd98-5397c876b946/64ffc29a4edc8fd70b151c2963b38b09/$(PKG_NAME)-$(PKG_VERS)-linux-x64.$(PKG_EXT) +PKG_DIST_SITE_LIST += https://download.visualstudio.microsoft.com/download/pr/84aa8e86-c6a1-4562-84f3-828e836ef26c/96772a224b9ff3be8904b63f37d7cf63/$(PKG_NAME)-$(PKG_VERS)-linux-arm.$(PKG_EXT) +PKG_DIST_SITE_LIST += https://download.visualstudio.microsoft.com/download/pr/b2029a3e-c67e-4905-ad1f-08b164322520/bd68ea0b77f12df21b935da338fdaf25/$(PKG_NAME)-$(PKG_VERS)-linux-arm64.$(PKG_EXT) + +ifeq ($(findstring $(ARCH), $(x64_ARCHS)),$(ARCH)) +PKG_DIST_ARCH = $(word 1,$(PKG_DIST_ARCH_LIST)) +PKG_DIST_FOLDER = $(shell echo $(word 1,$(PKG_DIST_SITE_LIST)) | grep -o1P ".*/download/pr/\K([^/]*/[^/]*)") +endif +ifeq ($(findstring $(ARCH), $(ARMv7_ARCHS)),$(ARCH)) +PKG_DIST_ARCH = $(word 2,$(PKG_DIST_ARCH_LIST)) +PKG_DIST_FOLDER = $(shell echo $(word 2,$(PKG_DIST_SITE_LIST)) | grep -o1P ".*/download/pr/\K([^/]*/[^/]*)") +endif +ifeq ($(findstring $(ARCH), $(ARMv8_ARCHS)),$(ARCH)) +PKG_DIST_ARCH = $(word 3,$(PKG_DIST_ARCH_LIST)) +PKG_DIST_FOLDER = $(shell echo $(word 3,$(PKG_DIST_SITE_LIST)) | grep -o1P ".*/download/pr/\K([^/]*/[^/]*)") +endif + +ifeq ($(PKG_DIST_ARCH),) +$(error Unsupported ARCH $(ARCH)) +endif + +HOMEPAGE = https://dotnet.microsoft.com/ +COMMENT = Free. Cross-platform. Open source. A developer platform for building all apps. +LICENSE = MIT + +INSTALL_TARGET = dotnet_runtime_custom_install + +include ../../mk/spksrc.install-resources.mk + +.PHONY: dotnet_runtime_custom_install +dotnet_runtime_custom_install: + mkdir -p "$(INSTALL_DIR)/$(INSTALL_PREFIX)/share/dotnet/" + tar -cf - -C $(EXTRACT_PATH) . | tar -xf - -C "$(INSTALL_DIR)/$(INSTALL_PREFIX)/share/dotnet/" diff --git a/cross/dotnet9-runtime/PLIST.auto b/cross/dotnet9-runtime/PLIST.auto new file mode 100644 index 00000000000..e69de29bb2d diff --git a/cross/dotnet9-runtime/digests b/cross/dotnet9-runtime/digests new file mode 100644 index 00000000000..c7c30e455db --- /dev/null +++ b/cross/dotnet9-runtime/digests @@ -0,0 +1,9 @@ +aspnetcore-runtime-9.0.0-linux-x64.tar.gz MD5 2c998f639d0accaa5bc95897dcfe3457 +aspnetcore-runtime-9.0.0-linux-x64.tar.gz SHA1 38f09aca9ef8f85812bd01b8bd2fab87fc33aec8 +aspnetcore-runtime-9.0.0-linux-x64.tar.gz SHA256 e00636ad9ca0fbcd777188036b52e520279dc4ac38fde3d14898869d16557ae0 +aspnetcore-runtime-9.0.0-linux-arm.tar.gz MD5 d6464c1cc89a6ebb9b945096b44eeac5 +aspnetcore-runtime-9.0.0-linux-arm.tar.gz SHA1 bbfd89cc61608323789d130f98d49fb7f426cc3d +aspnetcore-runtime-9.0.0-linux-arm.tar.gz SHA256 f3bf3dfe0f21afae8a130c07e67028abd1b80ac5523624729dac39ad0f2d8d9f +aspnetcore-runtime-9.0.0-linux-arm64.tar.gz MD5 3c5728f2b36debee4824a87a9d4af09f +aspnetcore-runtime-9.0.0-linux-arm64.tar.gz SHA1 d2fd672e4f89345e7636c39b8c4677d919082dde +aspnetcore-runtime-9.0.0-linux-arm64.tar.gz SHA256 9811d42c2dc6ffd9b6b69d4f2f6387f0d4add812eddf28ea178b5f751741bf7c diff --git a/spk/dotnet9-runtime/Makefile b/spk/dotnet9-runtime/Makefile new file mode 100644 index 00000000000..0171466aaf3 --- /dev/null +++ b/spk/dotnet9-runtime/Makefile @@ -0,0 +1,40 @@ +SPK_NAME = dotnet9-runtime +SPK_VERS = 9.0.0 +SPK_REV = 1 +SPK_ICON = src/dotnet.png + +OPTIONAL_DEPENDS = cross/libstdc++ +DEPENDS = cross/dotnet9-runtime + +REQUIRED_MIN_DSM = 6.0 + +# Arch exclusions for dotnet +DOTNET_CORE_ARCHS = 1 + +MAINTAINER = brice-fromentin +DESCRIPTION = Free. Cross-platform. Open source. A developer platform for building all apps. This package installs the dotnet runtime and the asp.net.core runtime. +CHANGELOG = "Initial release of dotnet-runtime v9.0.0." + +STARTABLE = no +DISPLAY_NAME = .NET 9 runtime + +HOMEPAGE = https://dotnet.microsoft.com/ +LICENSE = MIT + +include ../../mk/spksrc.common.mk +ifeq ($(call version_lt, ${TCVERSION}, 7.0),1) +# we do not only need the updated libstdc++ library, we also need to +# adjust the library search path for dotnet to use this version. +DEPENDS += cross/libstdc++ +POST_STRIP_TARGET = dotnet_patch_target +endif + +SPK_COMMANDS = share/dotnet/dotnet + +include ../../mk/spksrc.spk.mk + +.PHONY: dotnet_patch_target +# Set library path to use bundled libstdc++ +dotnet_patch_target: + @$(MSG) "Set library runpath in dotnet executable." + @patchelf --set-rpath /var/packages/$(SPK_NAME)/target/lib $(STAGING_DIR)/share/dotnet/dotnet diff --git a/spk/dotnet9-runtime/src/dotnet.png b/spk/dotnet9-runtime/src/dotnet.png new file mode 100644 index 0000000000000000000000000000000000000000..e7d830b69c0651ad51d8d63464edcb3f1fc0b5a3 GIT binary patch literal 14592 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 literal 0 HcmV?d00001