nongnu: dotnet: Support ARM systems.

* nongnu/packages/dotnet.scm (dotnet): Support ARM systems.
[source]: Make conditional.
[arguments]: Make conditional.
[inputs]: Add missing glibc input for RPATH validation.
[supported-systems]: List new systems.
(dotnet-core-3.1): Support ARM systems.
[source]: Make conditional.
[arguments]: Make conditional.
[supported-systems]: List new systems.
This commit is contained in:
Leo Nikkilä 2023-08-06 21:41:40 +03:00
parent 1a3082c574
commit 15b5a12fb0

View File

@ -1,5 +1,6 @@
;;; SPDX-License-Identifier: GPL-3.0-or-later ;;; SPDX-License-Identifier: GPL-3.0-or-later
;;; Copyright © 2021 Jelle Licht <jlicht@fsfe.org> ;;; Copyright © 2021 Jelle Licht <jlicht@fsfe.org>
;;; Copyright © 2023 Leo Nikkilä <hello@lnikki.la>
(define-module (nongnu packages dotnet) (define-module (nongnu packages dotnet)
#:use-module (ice-9 match) #:use-module (ice-9 match)
@ -67,7 +68,12 @@ various IDEs and plugins.")
(license license:expat))) (license license:expat)))
(define-public dotnet (define-public dotnet
(let ((dotnet-sdk-version "6.0.9")) (let ((dotnet-sdk-version "6.0.9")
(dotnet-sdk-target
(match (or (%current-target-system) (%current-system))
("armhf-linux" "linux-arm")
("aarch64-linux" "linux-arm64")
(_ "linux-x64"))))
(package (package
(name "dotnet") (name "dotnet")
(version "6.0.401") (version "6.0.401")
@ -75,17 +81,30 @@ various IDEs and plugins.")
(origin (origin
(method url-fetch/tarbomb) (method url-fetch/tarbomb)
(uri (uri
(string-append "https://download.visualstudio.microsoft.com/download/pr/8159607a-e686-4ead-ac99-b4c97290a5fd/ec6070b1b2cc0651ebe57cf1bd411315/dotnet-sdk-" (match dotnet-sdk-target
version ("linux-arm"
"-linux-x64.tar.gz")) (string-append "https://download.visualstudio.microsoft.com/download/pr/451f282f-dd26-4acd-9395-36cc3a9758e4/f5399d2ebced2ad9640db6283aa9d714/dotnet-sdk-"
version "-" dotnet-sdk-target ".tar.gz"))
("linux-arm64"
(string-append "https://download.visualstudio.microsoft.com/download/pr/a567a07f-af9d-451a-834c-a746ac299e6b/1d9d74b54cf580f93cad71a6bf7b32be/dotnet-sdk-"
version "-" dotnet-sdk-target ".tar.gz"))
("linux-x64"
(string-append "https://download.visualstudio.microsoft.com/download/pr/8159607a-e686-4ead-ac99-b4c97290a5fd/ec6070b1b2cc0651ebe57cf1bd411315/dotnet-sdk-"
version "-" dotnet-sdk-target ".tar.gz"))))
(sha256 (sha256
(base32 (base32
"05yr64ffcaf48ripxzcv9nwlzp7r83cy9hz17dm5c0317lhksqch")))) (match dotnet-sdk-target
("linux-arm"
"1rypjl48f3fww0kjbngim3r1a2qv47ckr9kzpb70iijip0m89s4w")
("linux-arm64"
"0znm4i27yvnzbd77vgqwnrcgdkfkwipw2php2y4wp66wsdq3ysib")
("linux-x64"
"05yr64ffcaf48ripxzcv9nwlzp7r83cy9hz17dm5c0317lhksqch"))))))
(build-system binary-build-system) (build-system binary-build-system)
(arguments (arguments
`(#:patchelf-plan `(#:patchelf-plan
`(("dotnet" `(("dotnet"
("gcc:lib" "zlib")) ("glibc" "gcc:lib" "zlib"))
(,,(string-append "shared/Microsoft.NETCore.App/" (,,(string-append "shared/Microsoft.NETCore.App/"
dotnet-sdk-version dotnet-sdk-version
"/libSystem.Net.Security.Native.so") "/libSystem.Net.Security.Native.so")
@ -123,17 +142,20 @@ various IDEs and plugins.")
(,,(string-append "shared/Microsoft.NETCore.App/" (,,(string-append "shared/Microsoft.NETCore.App/"
dotnet-sdk-version "/libmscordbi.so") dotnet-sdk-version "/libmscordbi.so")
("gcc:lib")) ("gcc:lib"))
(,,(string-append "packs/Microsoft.NETCore.App.Host.linux-x64/" (,,(string-append "packs/Microsoft.NETCore.App.Host."
dotnet-sdk-version dotnet-sdk-target "/"
"/runtimes/linux-x64/native/singlefilehost") dotnet-sdk-version "/runtimes/"
dotnet-sdk-target "/native/singlefilehost")
("gcc:lib" "openssl" "mit-krb5" "zlib" "icu4c")) ("gcc:lib" "openssl" "mit-krb5" "zlib" "icu4c"))
(,,(string-append "packs/Microsoft.NETCore.App.Host.linux-x64/" (,,(string-append "packs/Microsoft.NETCore.App.Host."
dotnet-sdk-version dotnet-sdk-target "/"
"/runtimes/linux-x64/native/apphost") dotnet-sdk-version "/runtimes/"
dotnet-sdk-target "/native/apphost")
("gcc:lib")) ("gcc:lib"))
(,,(string-append "packs/Microsoft.NETCore.App.Host.linux-x64/" (,,(string-append "packs/Microsoft.NETCore.App.Host."
dotnet-sdk-version dotnet-sdk-target "/"
"/runtimes/linux-x64/native/libnethost.so") dotnet-sdk-version "/runtimes/"
dotnet-sdk-target "/native/libnethost.so")
("gcc:lib")) ("gcc:lib"))
(,,(string-append "sdk/" version "/AppHostTemplate/apphost") (,,(string-append "sdk/" version "/AppHostTemplate/apphost")
("gcc:lib")) ("gcc:lib"))
@ -165,20 +187,26 @@ various IDEs and plugins.")
(files '("share/dotnet"))))) (files '("share/dotnet")))))
(inputs (inputs
`(("gcc:lib" ,gcc "lib") `(("gcc:lib" ,gcc "lib")
("glibc" ,glibc)
("icu4c" ,icu4c) ("icu4c" ,icu4c)
("lttng-ust" ,lttng-ust) ("lttng-ust" ,lttng-ust)
("mit-krb5" ,mit-krb5) ("mit-krb5" ,mit-krb5)
("openssl" ,openssl) ("openssl" ,openssl)
("zlib" ,zlib))) ("zlib" ,zlib)))
(home-page "https://docs.microsoft.com/en-us/dotnet/") (home-page "https://docs.microsoft.com/en-us/dotnet/")
(supported-systems '("x86_64-linux")) (supported-systems '("armhf-linux" "aarch64-linux" "x86_64-linux"))
(synopsis "Binary build of the @code{.NET} SDK and runtime") (synopsis "Binary build of the @code{.NET} SDK and runtime")
(description "@code{.NET} is a cross-platform developer platform for (description "@code{.NET} is a cross-platform developer platform for
building different types of applications.") building different types of applications.")
(license license:expat)))) (license license:expat))))
(define-public dotnet-core-3.1 (define-public dotnet-core-3.1
(let ((dotnet-sdk-version "3.1.25")) (let ((dotnet-sdk-version "3.1.25")
(dotnet-sdk-target
(match (or (%current-target-system) (%current-system))
("armhf-linux" "linux-arm")
("aarch64-linux" "linux-arm64")
(_ "linux-x64"))))
(package (package
(name "dotnet") (name "dotnet")
(version "3.1.419") (version "3.1.419")
@ -187,11 +215,17 @@ building different types of applications.")
(method url-fetch/tarbomb) (method url-fetch/tarbomb)
(uri (uri
(string-append "https://dotnetcli.azureedge.net/dotnet/Sdk/" (string-append "https://dotnetcli.azureedge.net/dotnet/Sdk/"
version "/dotnet-sdk-" version "/dotnet-sdk-" version "-"
version "-linux-x64.tar.gz")) dotnet-sdk-target ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0wg91y5czimcrcv4rfvza9qc1n7l29szbs9qnmr437175zl10ksi")))) (match dotnet-sdk-target
("linux-arm"
"0vlmm3y1q5rr9w7p4h5nfzwqmg3h98lb3za6hdd1rgxd5zip9rw2")
("linux-arm64"
"0jv9caw0krq6hf4zi7chlxcgiqbjw8n6yf1kpy7bdahm51ib7j6n")
("linux-x64"
"0wg91y5czimcrcv4rfvza9qc1n7l29szbs9qnmr437175zl10ksi"))))))
(build-system binary-build-system) (build-system binary-build-system)
(arguments (arguments
`(#:patchelf-plan `(#:patchelf-plan
@ -234,13 +268,15 @@ building different types of applications.")
(,,(string-append "shared/Microsoft.NETCore.App/" (,,(string-append "shared/Microsoft.NETCore.App/"
dotnet-sdk-version "/libmscordbi.so") dotnet-sdk-version "/libmscordbi.so")
("gcc:lib")) ("gcc:lib"))
(,,(string-append "packs/Microsoft.NETCore.App.Host.linux-x64/" (,,(string-append "packs/Microsoft.NETCore.App.Host."
dotnet-sdk-version dotnet-sdk-target "/"
"/runtimes/linux-x64/native/apphost") dotnet-sdk-version "/runtimes/"
dotnet-sdk-target "/native/apphost")
("gcc:lib")) ("gcc:lib"))
(,,(string-append "packs/Microsoft.NETCore.App.Host.linux-x64/" (,,(string-append "packs/Microsoft.NETCore.App.Host."
dotnet-sdk-version dotnet-sdk-target "/"
"/runtimes/linux-x64/native/libnethost.so") dotnet-sdk-version "/runtimes/"
dotnet-sdk-target "/native/libnethost.so")
("gcc:lib")) ("gcc:lib"))
(,,(string-append "sdk/" version "/AppHostTemplate/apphost") (,,(string-append "sdk/" version "/AppHostTemplate/apphost")
("gcc:lib")) ("gcc:lib"))
@ -281,7 +317,7 @@ building different types of applications.")
("openssl" ,openssl) ("openssl" ,openssl)
("zlib" ,zlib))) ("zlib" ,zlib)))
(home-page "https://dotnet.microsoft.com/en-us/") (home-page "https://dotnet.microsoft.com/en-us/")
(supported-systems '("x86_64-linux")) (supported-systems '("armhf-linux" "aarch64-linux" "x86_64-linux"))
(synopsis "Binary build of the @code{.NET} SDK and runtime") (synopsis "Binary build of the @code{.NET} SDK and runtime")
(description "@code{.NET} is a cross-platform developer platform for (description "@code{.NET} is a cross-platform developer platform for
building different types of applications.") building different types of applications.")