diff mbox

azure-iot-sdk-c: New package

Message ID 1496945304-8582-1-git-send-email-nerv@dawncrow.de
State Changes Requested
Headers show

Commit Message

André Zwing June 8, 2017, 6:08 p.m. UTC
From: André Hentschel <andre.hentschel@zf.com>

Signed-off-by: André Hentschel <nerv@dawncrow.de>
---
 package/Config.in                          |  1 +
 package/azure-iot-sdk-c/Config.in          | 14 ++++++++
 package/azure-iot-sdk-c/azure-iot-sdk-c.mk | 52 ++++++++++++++++++++++++++++++
 3 files changed, 67 insertions(+)
 create mode 100644 package/azure-iot-sdk-c/Config.in
 create mode 100644 package/azure-iot-sdk-c/azure-iot-sdk-c.mk

Comments

Arnout Vandecappelle June 10, 2017, 12:03 p.m. UTC | #1
Hi André,

On 08-06-17 20:08, André Hentschel wrote:
> From: André Hentschel <andre.hentschel@zf.com>
> 
> Signed-off-by: André Hentschel <nerv@dawncrow.de>

 Please keep your Signed-off-by e-mail address the same as the author e-mail.

> ---
>  package/Config.in                          |  1 +
>  package/azure-iot-sdk-c/Config.in          | 14 ++++++++
>  package/azure-iot-sdk-c/azure-iot-sdk-c.mk | 52 ++++++++++++++++++++++++++++++

 Please add yourself to DEVELOPERS as well.
[snip]
> diff --git a/package/azure-iot-sdk-c/Config.in b/package/azure-iot-sdk-c/Config.in
> new file mode 100644
> index 0000000..a0fac8d
> --- /dev/null
> +++ b/package/azure-iot-sdk-c/Config.in
> @@ -0,0 +1,14 @@
> +config BR2_PACKAGE_AZURE_IOT_SDK_C
> +	bool "azure-iot-sdk-c"
> +	depends on BR2_INSTALL_LIBSTDCPP
> +	select BR2_PACKAGE_LIBCURL
> +	select BR2_PACKAGE_LIBXML2
> +	select BR2_PACKAGE_OPENSSL
> +	select BR2_PACKAGE_UTIL_LINUX
> +	select BR2_PACKAGE_UTIL_LINUX_LIBUUID
> +	help
> +	  Microsoft Azure IoT Hub device SDK for C is used
> +	  to connect devices running C code to Azure IoT Hub.

 Missing upstream URL. E.g.
https://docs.microsoft.com/nl-nl/azure/iot-hub/iot-hub-device-sdk-c-intro

> +
> +comment "azure-iot-sdk-c needs a toolchain w/ C++"
> +	depends on !BR2_INSTALL_LIBSTDCPP
> diff --git a/package/azure-iot-sdk-c/azure-iot-sdk-c.mk b/package/azure-iot-sdk-c/azure-iot-sdk-c.mk
> new file mode 100644
> index 0000000..79d97c1
> --- /dev/null
> +++ b/package/azure-iot-sdk-c/azure-iot-sdk-c.mk
> @@ -0,0 +1,52 @@
> +################################################################################
> +#
> +# azure-iot-sdk-c
> +#
> +################################################################################
> +
> +AZURE_IOT_SDK_C_VERSION = lts_03_2017

 This is a branch, not a tag. Please use 2017-03-24 instead.

 However, that branch doesn't seem to have received any commits since its
release, so I wonder if it doesn't make more sense to use the 2017-06-02 tag.

> +AZURE_IOT_SDK_C_SITE = https://github.com/Azure/azure-iot-sdk-c
> +AZURE_IOT_SDK_C_SITE_METHOD = git
> +AZURE_IOT_SDK_C_GIT_SUBMODULES = YES

 Argh, annoying... It looks like most of the dependencies could be packaged
separately, but apparently parson can't :-( Oh well.


> +AZURE_IOT_SDK_C_LICENSE = MIT
> +AZURE_IOT_SDK_C_LICENSE_FILES = LICENSE
> +AZURE_IOT_SDK_C_INSTALL_STAGING = YES
> +AZURE_IOT_SDK_C_DEPENDENCIES = libxml2 openssl libcurl util-linux
> +AZURE_IOT_SDK_C_CONF_OPTS = -Dskip_samples=ON
> +
> +AZURE_IOT_SDK_C_LIBS =

 No need.

> +ifeq ($(BR2_STATIC_LIBS),y)

 This should be
ifeq ($(BR2_SHARED_LIBS),)

i.e. in the SHARED_STATIC case you also want to install the static libraries.

> +AZURE_IOT_SDK_C_LIBS += uamqp/libuamqp.a c-utility/libaziotsharedutil.a \
> +	iothub_client/libiothub_client.a iothub_client/libiothub_client_mqtt_ws_transport.a \
> +	iothub_client/libiothub_client_amqp_ws_transport.a \
> +	iothub_client/libiothub_client_http_transport.a \
> +	iothub_client/libiothub_client_amqp_transport.a \
> +	iothub_client/libiothub_client_mqtt_transport.a \
> +	iothub_service_client/libiothub_service_client.a serializer/libserializer.a umqtt/libumqtt.a
> +endif # Static enabled

 Comment not needed here.

> +
> +ifeq ($(BR2_SHARED_LIBS)$(BR2_SHARED_STATIC_LIBS),y)

ifeq ($(BR2_STATIC_LIBS),)

> +AZURE_IOT_SDK_C_LIBS += uamqp/libuamqp.so c-utility/libaziotsharedutil.so \
> +	iothub_client/libiothub_client.so iothub_client/libiothub_client_mqtt_ws_transport.so \
> +	iothub_client/libiothub_client_amqp_ws_transport.so \
> +	iothub_client/libiothub_client_http_transport.so \
> +	iothub_client/libiothub_client_amqp_transport.so \
> +	iothub_client/libiothub_client_mqtt_transport.so \
> +	iothub_service_client/libiothub_service_client.so serializer/libserializer.so umqtt/libumqtt.so
> +endif # Shared enabled
> +
> +define AZURE_IOT_SDK_C_INSTALL_STAGING_CMDS
> +	$(foreach l,$(AZURE_IOT_SDK_C_LIBS), \
> +		$(INSTALL) -D -m 0755 $(@D)/$(l) $(STAGING_DIR)/usr/lib/
> +	)
> +	cp -a $(@D)/c-utility/inc/* $(STAGING_DIR)/usr/include/
> +	cp -a $(@D)/iothub_client/inc/* $(STAGING_DIR)/usr/include/

 Why are these custom commands needed? I had a quick look at the CMakeLists.txt
and it doesn't look like it does anything special.

 If they are needed, please explain in a comment or the commit message.

 Regards,
 Arnout

> +endef
> +
> +define AZURE_IOT_SDK_C_INSTALL_TARGET_CMDS
> +	$(foreach l,$(AZURE_IOT_SDK_C_LIBS), \
> +		$(INSTALL) -D -m 0755 $(@D)/$(l) $(TARGET_DIR)/usr/lib/
> +	)
> +endef
> +
> +$(eval $(cmake-package))
>
André Zwing June 11, 2017, 9:53 p.m. UTC | #2
Hi Arnout,

Thank you for your review!
I'm about to send v2, so here some comments inline:

Am 10.06.2017 um 14:03 schrieb Arnout Vandecappelle:
>  Hi André,
> 
> On 08-06-17 20:08, André Hentschel wrote:
>> From: André Hentschel <andre.hentschel@zf.com>
>>
>> Signed-off-by: André Hentschel <nerv@dawncrow.de>
> 
>  Please keep your Signed-off-by e-mail address the same as the author e-mail.

Yes, that was by mistake, done

> 
>> ---
>>  package/Config.in                          |  1 +
>>  package/azure-iot-sdk-c/Config.in          | 14 ++++++++
>>  package/azure-iot-sdk-c/azure-iot-sdk-c.mk | 52 ++++++++++++++++++++++++++++++
> 
>  Please add yourself to DEVELOPERS as well.

done

> [snip]
>> diff --git a/package/azure-iot-sdk-c/Config.in b/package/azure-iot-sdk-c/Config.in
>> new file mode 100644
>> index 0000000..a0fac8d
>> --- /dev/null
>> +++ b/package/azure-iot-sdk-c/Config.in
>> @@ -0,0 +1,14 @@
>> +config BR2_PACKAGE_AZURE_IOT_SDK_C
>> +	bool "azure-iot-sdk-c"
>> +	depends on BR2_INSTALL_LIBSTDCPP
>> +	select BR2_PACKAGE_LIBCURL
>> +	select BR2_PACKAGE_LIBXML2
>> +	select BR2_PACKAGE_OPENSSL
>> +	select BR2_PACKAGE_UTIL_LINUX
>> +	select BR2_PACKAGE_UTIL_LINUX_LIBUUID
>> +	help
>> +	  Microsoft Azure IoT Hub device SDK for C is used
>> +	  to connect devices running C code to Azure IoT Hub.
> 
>  Missing upstream URL. E.g.
> https://docs.microsoft.com/nl-nl/azure/iot-hub/iot-hub-device-sdk-c-intro

done

> 
>> +
>> +comment "azure-iot-sdk-c needs a toolchain w/ C++"
>> +	depends on !BR2_INSTALL_LIBSTDCPP
>> diff --git a/package/azure-iot-sdk-c/azure-iot-sdk-c.mk b/package/azure-iot-sdk-c/azure-iot-sdk-c.mk
>> new file mode 100644
>> index 0000000..79d97c1
>> --- /dev/null
>> +++ b/package/azure-iot-sdk-c/azure-iot-sdk-c.mk
>> @@ -0,0 +1,52 @@
>> +################################################################################
>> +#
>> +# azure-iot-sdk-c
>> +#
>> +################################################################################
>> +
>> +AZURE_IOT_SDK_C_VERSION = lts_03_2017
> 
>  This is a branch, not a tag. Please use 2017-03-24 instead.
> 
>  However, that branch doesn't seem to have received any commits since its
> release, so I wonder if it doesn't make more sense to use the 2017-06-02 tag.

I use 2017-05-05 now, because newer versions will need some fixes (maybe as patches), so let's start with a cleaner version that just works.

> 
>> +AZURE_IOT_SDK_C_SITE = https://github.com/Azure/azure-iot-sdk-c
>> +AZURE_IOT_SDK_C_SITE_METHOD = git
>> +AZURE_IOT_SDK_C_GIT_SUBMODULES = YES
> 
>  Argh, annoying... It looks like most of the dependencies could be packaged
> separately, but apparently parson can't :-( Oh well.
> 
> 
>> +AZURE_IOT_SDK_C_LICENSE = MIT
>> +AZURE_IOT_SDK_C_LICENSE_FILES = LICENSE
>> +AZURE_IOT_SDK_C_INSTALL_STAGING = YES
>> +AZURE_IOT_SDK_C_DEPENDENCIES = libxml2 openssl libcurl util-linux
>> +AZURE_IOT_SDK_C_CONF_OPTS = -Dskip_samples=ON
>> +
>> +AZURE_IOT_SDK_C_LIBS =
> 
>  No need.

done, good to know

> 
>> +ifeq ($(BR2_STATIC_LIBS),y)
> 
>  This should be
> ifeq ($(BR2_SHARED_LIBS),)
> 
> i.e. in the SHARED_STATIC case you also want to install the static libraries.
> 
>> +AZURE_IOT_SDK_C_LIBS += uamqp/libuamqp.a c-utility/libaziotsharedutil.a \
>> +	iothub_client/libiothub_client.a iothub_client/libiothub_client_mqtt_ws_transport.a \
>> +	iothub_client/libiothub_client_amqp_ws_transport.a \
>> +	iothub_client/libiothub_client_http_transport.a \
>> +	iothub_client/libiothub_client_amqp_transport.a \
>> +	iothub_client/libiothub_client_mqtt_transport.a \
>> +	iothub_service_client/libiothub_service_client.a serializer/libserializer.a umqtt/libumqtt.a
>> +endif # Static enabled
> 
>  Comment not needed here.
> 
>> +
>> +ifeq ($(BR2_SHARED_LIBS)$(BR2_SHARED_STATIC_LIBS),y)
> 
> ifeq ($(BR2_STATIC_LIBS),)
> 
>> +AZURE_IOT_SDK_C_LIBS += uamqp/libuamqp.so c-utility/libaziotsharedutil.so \
>> +	iothub_client/libiothub_client.so iothub_client/libiothub_client_mqtt_ws_transport.so \
>> +	iothub_client/libiothub_client_amqp_ws_transport.so \
>> +	iothub_client/libiothub_client_http_transport.so \
>> +	iothub_client/libiothub_client_amqp_transport.so \
>> +	iothub_client/libiothub_client_mqtt_transport.so \
>> +	iothub_service_client/libiothub_service_client.so serializer/libserializer.so umqtt/libumqtt.so
>> +endif # Shared enabled
>> +
>> +define AZURE_IOT_SDK_C_INSTALL_STAGING_CMDS
>> +	$(foreach l,$(AZURE_IOT_SDK_C_LIBS), \
>> +		$(INSTALL) -D -m 0755 $(@D)/$(l) $(STAGING_DIR)/usr/lib/
>> +	)
>> +	cp -a $(@D)/c-utility/inc/* $(STAGING_DIR)/usr/include/
>> +	cp -a $(@D)/iothub_client/inc/* $(STAGING_DIR)/usr/include/
> 
>  Why are these custom commands needed? I had a quick look at the CMakeLists.txt
> and it doesn't look like it does anything special.
> 
>  If they are needed, please explain in a comment or the commit message.

Depending on the version the install target either installs only files which no one is interested in (sample libs or something) or it fails because they removed the install target


> 
>  Regards,
>  Arnout
> 
>> +endef
>> +
>> +define AZURE_IOT_SDK_C_INSTALL_TARGET_CMDS
>> +	$(foreach l,$(AZURE_IOT_SDK_C_LIBS), \
>> +		$(INSTALL) -D -m 0755 $(@D)/$(l) $(TARGET_DIR)/usr/lib/
>> +	)
>> +endef
>> +
>> +$(eval $(cmake-package))
>>
>
Arnout Vandecappelle June 12, 2017, 7:58 a.m. UTC | #3
On 11-06-17 23:53, André Hentschel wrote:
> Hi Arnout,
> 
> Thank you for your review!
> I'm about to send v2, so here some comments inline:
> 
> Am 10.06.2017 um 14:03 schrieb Arnout Vandecappelle:
>>  Hi André,
>>
>> On 08-06-17 20:08, André Hentschel wrote:
[snip]
>>> +AZURE_IOT_SDK_C_VERSION = lts_03_2017
>>
>>  This is a branch, not a tag. Please use 2017-03-24 instead.
>>
>>  However, that branch doesn't seem to have received any commits since its
>> release, so I wonder if it doesn't make more sense to use the 2017-06-02 tag.
> 
> I use 2017-05-05 now, because newer versions will need some fixes (maybe as patches), so let's start with a cleaner version that just works.

 OK, please make this clear in the commit message.

[snip]
>>> +define AZURE_IOT_SDK_C_INSTALL_STAGING_CMDS
>>> +	$(foreach l,$(AZURE_IOT_SDK_C_LIBS), \
>>> +		$(INSTALL) -D -m 0755 $(@D)/$(l) $(STAGING_DIR)/usr/lib/
>>> +	)
>>> +	cp -a $(@D)/c-utility/inc/* $(STAGING_DIR)/usr/include/
>>> +	cp -a $(@D)/iothub_client/inc/* $(STAGING_DIR)/usr/include/
>>
>>  Why are these custom commands needed? I had a quick look at the CMakeLists.txt
>> and it doesn't look like it does anything special.
>>
>>  If they are needed, please explain in a comment or the commit message.
> 
> Depending on the version the install target either installs only files which no one is interested in (sample libs or something) or it fails because they removed the install target

 They *removed* the install target? I didn't even know that was possible in CMake...

 Anyway, please clarify this in the commit message (you only need to explain the
problem in the version that you use, so not either/or).

 Regards,
 Arnout

> 
> 
>>
>>  Regards,
>>  Arnout
>>
>>> +endef
>>> +
>>> +define AZURE_IOT_SDK_C_INSTALL_TARGET_CMDS
>>> +	$(foreach l,$(AZURE_IOT_SDK_C_LIBS), \
>>> +		$(INSTALL) -D -m 0755 $(@D)/$(l) $(TARGET_DIR)/usr/lib/
>>> +	)
>>> +endef
>>> +
>>> +$(eval $(cmake-package))
>>>
>>
>
diff mbox

Patch

diff --git a/package/Config.in b/package/Config.in
index e00b162..a56520b 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1247,6 +1247,7 @@  menu "Networking"
 	source "package/alljoyn-base/Config.in"
 	source "package/alljoyn-tcl/Config.in"
 	source "package/alljoyn-tcl-base/Config.in"
+	source "package/azure-iot-sdk-c/Config.in"
 	source "package/batman-adv/Config.in"
 	source "package/c-ares/Config.in"
 	source "package/canfestival/Config.in"
diff --git a/package/azure-iot-sdk-c/Config.in b/package/azure-iot-sdk-c/Config.in
new file mode 100644
index 0000000..a0fac8d
--- /dev/null
+++ b/package/azure-iot-sdk-c/Config.in
@@ -0,0 +1,14 @@ 
+config BR2_PACKAGE_AZURE_IOT_SDK_C
+	bool "azure-iot-sdk-c"
+	depends on BR2_INSTALL_LIBSTDCPP
+	select BR2_PACKAGE_LIBCURL
+	select BR2_PACKAGE_LIBXML2
+	select BR2_PACKAGE_OPENSSL
+	select BR2_PACKAGE_UTIL_LINUX
+	select BR2_PACKAGE_UTIL_LINUX_LIBUUID
+	help
+	  Microsoft Azure IoT Hub device SDK for C is used
+	  to connect devices running C code to Azure IoT Hub.
+
+comment "azure-iot-sdk-c needs a toolchain w/ C++"
+	depends on !BR2_INSTALL_LIBSTDCPP
diff --git a/package/azure-iot-sdk-c/azure-iot-sdk-c.mk b/package/azure-iot-sdk-c/azure-iot-sdk-c.mk
new file mode 100644
index 0000000..79d97c1
--- /dev/null
+++ b/package/azure-iot-sdk-c/azure-iot-sdk-c.mk
@@ -0,0 +1,52 @@ 
+################################################################################
+#
+# azure-iot-sdk-c
+#
+################################################################################
+
+AZURE_IOT_SDK_C_VERSION = lts_03_2017
+AZURE_IOT_SDK_C_SITE = https://github.com/Azure/azure-iot-sdk-c
+AZURE_IOT_SDK_C_SITE_METHOD = git
+AZURE_IOT_SDK_C_GIT_SUBMODULES = YES
+AZURE_IOT_SDK_C_LICENSE = MIT
+AZURE_IOT_SDK_C_LICENSE_FILES = LICENSE
+AZURE_IOT_SDK_C_INSTALL_STAGING = YES
+AZURE_IOT_SDK_C_DEPENDENCIES = libxml2 openssl libcurl util-linux
+AZURE_IOT_SDK_C_CONF_OPTS = -Dskip_samples=ON
+
+AZURE_IOT_SDK_C_LIBS =
+ifeq ($(BR2_STATIC_LIBS),y)
+AZURE_IOT_SDK_C_LIBS += uamqp/libuamqp.a c-utility/libaziotsharedutil.a \
+	iothub_client/libiothub_client.a iothub_client/libiothub_client_mqtt_ws_transport.a \
+	iothub_client/libiothub_client_amqp_ws_transport.a \
+	iothub_client/libiothub_client_http_transport.a \
+	iothub_client/libiothub_client_amqp_transport.a \
+	iothub_client/libiothub_client_mqtt_transport.a \
+	iothub_service_client/libiothub_service_client.a serializer/libserializer.a umqtt/libumqtt.a
+endif # Static enabled
+
+ifeq ($(BR2_SHARED_LIBS)$(BR2_SHARED_STATIC_LIBS),y)
+AZURE_IOT_SDK_C_LIBS += uamqp/libuamqp.so c-utility/libaziotsharedutil.so \
+	iothub_client/libiothub_client.so iothub_client/libiothub_client_mqtt_ws_transport.so \
+	iothub_client/libiothub_client_amqp_ws_transport.so \
+	iothub_client/libiothub_client_http_transport.so \
+	iothub_client/libiothub_client_amqp_transport.so \
+	iothub_client/libiothub_client_mqtt_transport.so \
+	iothub_service_client/libiothub_service_client.so serializer/libserializer.so umqtt/libumqtt.so
+endif # Shared enabled
+
+define AZURE_IOT_SDK_C_INSTALL_STAGING_CMDS
+	$(foreach l,$(AZURE_IOT_SDK_C_LIBS), \
+		$(INSTALL) -D -m 0755 $(@D)/$(l) $(STAGING_DIR)/usr/lib/
+	)
+	cp -a $(@D)/c-utility/inc/* $(STAGING_DIR)/usr/include/
+	cp -a $(@D)/iothub_client/inc/* $(STAGING_DIR)/usr/include/
+endef
+
+define AZURE_IOT_SDK_C_INSTALL_TARGET_CMDS
+	$(foreach l,$(AZURE_IOT_SDK_C_LIBS), \
+		$(INSTALL) -D -m 0755 $(@D)/$(l) $(TARGET_DIR)/usr/lib/
+	)
+endef
+
+$(eval $(cmake-package))