diff mbox series

[1/2] package/dotnet-sdk: new package

Message ID 20210113074647.1826-1-deinok@deinok.com
State Changes Requested
Delegated to: Thomas Petazzoni
Headers show
Series [1/2] package/dotnet-sdk: new package | expand

Commit Message

Raul Hidalgo Caballero Jan. 13, 2021, 7:46 a.m. UTC
---
 DEVELOPERS                                    |  5 ++++
 package/Config.in.host                        |  1 +
 package/dotnet-sdk/dotnet-sdk.hash            |  3 ++
 package/dotnet-sdk/dotnet-sdk.mk              | 20 +++++++++++++
 package/dotnet/Config.in.host                 | 15 ++++++++++
 .../testing/tests/package/test_dotnet_sdk.py  | 28 +++++++++++++++++++
 6 files changed, 72 insertions(+)
 create mode 100644 package/dotnet-sdk/dotnet-sdk.hash
 create mode 100644 package/dotnet-sdk/dotnet-sdk.mk
 create mode 100644 package/dotnet/Config.in.host
 create mode 100644 support/testing/tests/package/test_dotnet_sdk.py

Comments

Romain Naour Jan. 9, 2022, 11:13 p.m. UTC | #1
Hello Raul,

Your SoB line is missing.

It was present on your v1:
http://lists.busybox.net/pipermail/buildroot/2021-January/300681.html

Le 13/01/2021 à 08:46, Raul Hidalgo Caballero a écrit :
> ---
>  DEVELOPERS                                    |  5 ++++
>  package/Config.in.host                        |  1 +
>  package/dotnet-sdk/dotnet-sdk.hash            |  3 ++
>  package/dotnet-sdk/dotnet-sdk.mk              | 20 +++++++++++++
>  package/dotnet/Config.in.host                 | 15 ++++++++++
>  .../testing/tests/package/test_dotnet_sdk.py  | 28 +++++++++++++++++++
>  6 files changed, 72 insertions(+)
>  create mode 100644 package/dotnet-sdk/dotnet-sdk.hash
>  create mode 100644 package/dotnet-sdk/dotnet-sdk.mk
>  create mode 100644 package/dotnet/Config.in.host
>  create mode 100644 support/testing/tests/package/test_dotnet_sdk.py
> 
> diff --git a/DEVELOPERS b/DEVELOPERS
> index 05b509c9c4..ea85f7c9c3 100644
> --- a/DEVELOPERS
> +++ b/DEVELOPERS
> @@ -2206,6 +2206,11 @@ F:	package/python-botocore/
>  F:	package/python-jmespath/
>  F:	package/python-s3transfer/
>  
> +N:	Raul Hidalgo Caballero <deinok@deinok.com>
> +F:	package/dotnet/
> +F:	package/dotnet-sdk/
> +F:	support/testing/tests/package/test_dotnet_sdk.py
> +
>  N:	Refik Tuzakli <tuzakli.refik@gmail.com>
>  F:	package/freescale-imx/
>  F:	package/paho-mqtt-cpp/
> diff --git a/package/Config.in.host b/package/Config.in.host
> index ba6a68c728..16f0e9f690 100644
> --- a/package/Config.in.host
> +++ b/package/Config.in.host
> @@ -16,6 +16,7 @@ menu "Host utilities"
>  	source "package/dfu-util/Config.in.host"
>  	source "package/dos2unix/Config.in.host"
>  	source "package/dosfstools/Config.in.host"
> +	source "package/dotnet/Config.in.host"

Must be "dotnet-sdk" here.

>  	source "package/doxygen/Config.in.host"
>  	source "package/dtc/Config.in.host"
>  	source "package/e2fsprogs/Config.in.host"
> diff --git a/package/dotnet-sdk/dotnet-sdk.hash b/package/dotnet-sdk/dotnet-sdk.hash
> new file mode 100644
> index 0000000000..a3016b2e49
> --- /dev/null
> +++ b/package/dotnet-sdk/dotnet-sdk.hash
> @@ -0,0 +1,3 @@
> +sha256  cfc21f5e8bd655ae997eec916138b707b1d290b83272c02a95c9f821b8c87310  LICENSE.txt
> +sha256  01564961f8ca9744d0ecc5d3e72d7c1659df95898f3a077fd9140fd4023f3579  ThirdPartyNotices.txt
> +sha256  23df1eca7eb1302dfb10f4edce7edf7150e57698576f61b2dcb777c833cbd80c  dotnet-sdk-5.0.101-linux-x64.tar.gz
> diff --git a/package/dotnet-sdk/dotnet-sdk.mk b/package/dotnet-sdk/dotnet-sdk.mk
> new file mode 100644
> index 0000000000..133b39b3f5
> --- /dev/null
> +++ b/package/dotnet-sdk/dotnet-sdk.mk
> @@ -0,0 +1,20 @@
> +################################################################################
> +#
> +# dotnet-sdk
> +#
> +################################################################################
> +
> +HOST_DOTNET_SDK_VERSION = 5.0.101
> +HOST_DOTNET_SDK_SITE = https://dotnetcli.azureedge.net/dotnet/Sdk/$(HOST_DOTNET_SDK_VERSION)
> +HOST_DOTNET_SDK_SOURCE = dotnet-sdk-$(HOST_DOTNET_SDK_VERSION)-$(call qstrip,$(BR2_PACKAGE_HOST_DOTNET_RID)).tar.gz
> +HOST_DOTNET_SDK_LICENSE = MIT
> +HOST_DOTNET_SDK_LICENSE_FILES = LICENSE.txt ThirdPartyNotices.txt
> +
> +define HOST_DOTNET_SDK_INSTALL_CMDS
> +	mkdir -p $(HOST_DIR)/usr/share/dotnet/
> +	cp -dpfr $(@D)/* $(HOST_DIR)/usr/share/dotnet/
> +	mkdir -p $(HOST_DIR)/usr/bin/
> +	ln -s ../share/dotnet/dotnet $(HOST_DIR)/usr/bin/dotnet

The dotnet is a binary blob, there is no sources for it ?

> +endef
> +
> +$(eval $(host-generic-package))
> diff --git a/package/dotnet/Config.in.host b/package/dotnet/Config.in.host
> new file mode 100644
> index 0000000000..90b477a6a1
> --- /dev/null
> +++ b/package/dotnet/Config.in.host
> @@ -0,0 +1,15 @@
> +config BR2_PACKAGE_HOST_DOTNET_ARCH_SUPPORTS
> +	bool
> +	default y if BR2_HOSTARCH = "x86_64"
> +
> +config BR2_PACKAGE_HOST_DOTNET_RID
> +	string
> +	default "linux-x64" if BR2_HOSTARCH = "x86_64"
> +
> +config BR2_PACKAGE_HOST_DOTNET_SDK
> +	bool "host dotnet-sdk"
> +	depends on BR2_PACKAGE_HOST_DOTNET_ARCH_SUPPORTS
> +	help
> +		Dotnet SDK
> +
> +		https://dotnet.microsoft.com/

Indent the help text with on tab and two spaces.

You can check the coding style with ./utils/check-package script

> diff --git a/support/testing/tests/package/test_dotnet_sdk.py b/support/testing/tests/package/test_dotnet_sdk.py
> new file mode 100644
> index 0000000000..288e873597
> --- /dev/null
> +++ b/support/testing/tests/package/test_dotnet_sdk.py
> @@ -0,0 +1,28 @@
> +import os
> +import tempfile
> +import subprocess
> +import shutil
> +
> +import infra.basetest
> +
> +
> +class TestDotnetSdkBase(infra.basetest.BRTest):
> +
> +    config = infra.basetest.BASIC_TOOLCHAIN_CONFIG + \
> +        """
> +        BR2_TARGET_ROOTFS_CPIO=y
> +        """
> +
> +class TestHostDotnetSdk(TestDotnetSdkBase):
> +    config = TestDotnetSdkBase.config + \
> +        """
> +        BR2_PACKAGE_HOST_DOTNET_SDK=y
> +        """
> +
> +    def test_run(self):
> +        env = os.environ.copy()

You second patch remove this line [1].

Squash you two patch into one.

> +        hostdir = os.path.join(self.builddir, 'host')
> +        dotnet = os.path.join(hostdir, 'usr', 'bin', 'dotnet')
> +        cmd = [dotnet, '--version']

Running "dotnet --version" on the host is really worth it ?

Have you made some progress on dotnet-runtime and dotnet-aspnet [2]

I have marked your patches as "Changes Requested".

[1]
http://patchwork.ozlabs.org/project/buildroot/patch/20210113074647.1826-2-deinok@deinok.com/
[2] http://lists.busybox.net/pipermail/buildroot/2021-January/603271.html

Best regards,
Romain


> +        exit_code = subprocess.call(cmd, stdout=self.b.logfile, stderr=self.b.logfile, env=env)
> +        self.assertEqual(exit_code, 0)
>
diff mbox series

Patch

diff --git a/DEVELOPERS b/DEVELOPERS
index 05b509c9c4..ea85f7c9c3 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -2206,6 +2206,11 @@  F:	package/python-botocore/
 F:	package/python-jmespath/
 F:	package/python-s3transfer/
 
+N:	Raul Hidalgo Caballero <deinok@deinok.com>
+F:	package/dotnet/
+F:	package/dotnet-sdk/
+F:	support/testing/tests/package/test_dotnet_sdk.py
+
 N:	Refik Tuzakli <tuzakli.refik@gmail.com>
 F:	package/freescale-imx/
 F:	package/paho-mqtt-cpp/
diff --git a/package/Config.in.host b/package/Config.in.host
index ba6a68c728..16f0e9f690 100644
--- a/package/Config.in.host
+++ b/package/Config.in.host
@@ -16,6 +16,7 @@  menu "Host utilities"
 	source "package/dfu-util/Config.in.host"
 	source "package/dos2unix/Config.in.host"
 	source "package/dosfstools/Config.in.host"
+	source "package/dotnet/Config.in.host"
 	source "package/doxygen/Config.in.host"
 	source "package/dtc/Config.in.host"
 	source "package/e2fsprogs/Config.in.host"
diff --git a/package/dotnet-sdk/dotnet-sdk.hash b/package/dotnet-sdk/dotnet-sdk.hash
new file mode 100644
index 0000000000..a3016b2e49
--- /dev/null
+++ b/package/dotnet-sdk/dotnet-sdk.hash
@@ -0,0 +1,3 @@ 
+sha256  cfc21f5e8bd655ae997eec916138b707b1d290b83272c02a95c9f821b8c87310  LICENSE.txt
+sha256  01564961f8ca9744d0ecc5d3e72d7c1659df95898f3a077fd9140fd4023f3579  ThirdPartyNotices.txt
+sha256  23df1eca7eb1302dfb10f4edce7edf7150e57698576f61b2dcb777c833cbd80c  dotnet-sdk-5.0.101-linux-x64.tar.gz
diff --git a/package/dotnet-sdk/dotnet-sdk.mk b/package/dotnet-sdk/dotnet-sdk.mk
new file mode 100644
index 0000000000..133b39b3f5
--- /dev/null
+++ b/package/dotnet-sdk/dotnet-sdk.mk
@@ -0,0 +1,20 @@ 
+################################################################################
+#
+# dotnet-sdk
+#
+################################################################################
+
+HOST_DOTNET_SDK_VERSION = 5.0.101
+HOST_DOTNET_SDK_SITE = https://dotnetcli.azureedge.net/dotnet/Sdk/$(HOST_DOTNET_SDK_VERSION)
+HOST_DOTNET_SDK_SOURCE = dotnet-sdk-$(HOST_DOTNET_SDK_VERSION)-$(call qstrip,$(BR2_PACKAGE_HOST_DOTNET_RID)).tar.gz
+HOST_DOTNET_SDK_LICENSE = MIT
+HOST_DOTNET_SDK_LICENSE_FILES = LICENSE.txt ThirdPartyNotices.txt
+
+define HOST_DOTNET_SDK_INSTALL_CMDS
+	mkdir -p $(HOST_DIR)/usr/share/dotnet/
+	cp -dpfr $(@D)/* $(HOST_DIR)/usr/share/dotnet/
+	mkdir -p $(HOST_DIR)/usr/bin/
+	ln -s ../share/dotnet/dotnet $(HOST_DIR)/usr/bin/dotnet
+endef
+
+$(eval $(host-generic-package))
diff --git a/package/dotnet/Config.in.host b/package/dotnet/Config.in.host
new file mode 100644
index 0000000000..90b477a6a1
--- /dev/null
+++ b/package/dotnet/Config.in.host
@@ -0,0 +1,15 @@ 
+config BR2_PACKAGE_HOST_DOTNET_ARCH_SUPPORTS
+	bool
+	default y if BR2_HOSTARCH = "x86_64"
+
+config BR2_PACKAGE_HOST_DOTNET_RID
+	string
+	default "linux-x64" if BR2_HOSTARCH = "x86_64"
+
+config BR2_PACKAGE_HOST_DOTNET_SDK
+	bool "host dotnet-sdk"
+	depends on BR2_PACKAGE_HOST_DOTNET_ARCH_SUPPORTS
+	help
+		Dotnet SDK
+
+		https://dotnet.microsoft.com/
diff --git a/support/testing/tests/package/test_dotnet_sdk.py b/support/testing/tests/package/test_dotnet_sdk.py
new file mode 100644
index 0000000000..288e873597
--- /dev/null
+++ b/support/testing/tests/package/test_dotnet_sdk.py
@@ -0,0 +1,28 @@ 
+import os
+import tempfile
+import subprocess
+import shutil
+
+import infra.basetest
+
+
+class TestDotnetSdkBase(infra.basetest.BRTest):
+
+    config = infra.basetest.BASIC_TOOLCHAIN_CONFIG + \
+        """
+        BR2_TARGET_ROOTFS_CPIO=y
+        """
+
+class TestHostDotnetSdk(TestDotnetSdkBase):
+    config = TestDotnetSdkBase.config + \
+        """
+        BR2_PACKAGE_HOST_DOTNET_SDK=y
+        """
+
+    def test_run(self):
+        env = os.environ.copy()
+        hostdir = os.path.join(self.builddir, 'host')
+        dotnet = os.path.join(hostdir, 'usr', 'bin', 'dotnet')
+        cmd = [dotnet, '--version']
+        exit_code = subprocess.call(cmd, stdout=self.b.logfile, stderr=self.b.logfile, env=env)
+        self.assertEqual(exit_code, 0)