diff mbox series

azure-iot-sdk-c: Bump to version 2018-12-13

Message ID 20181221173729.41870-1-Nikita.Sobolev@synopsys.com
State New
Headers show
Series azure-iot-sdk-c: Bump to version 2018-12-13 | expand

Commit Message

Nikita Sobolev Dec. 21, 2018, 5:37 p.m. UTC
From: NikitaSobolev <Nikita.Sobolev@synopsys.com>

Bump azure-iot-sdk-c to 2018-12-13 release.
Add patch, that removes Windows specified variables from
azure-iot-sdk-c-2018-12-13 release. That variables cause
build errors.

Signed-off-by: Nikita Sobolev <Nikita.Sobolev@synopsys.com>
---
 ...-azure-iot-sdk-c-Delete-windows-variables.patch | 34 ++++++++++++++++++++++
 package/azure-iot-sdk-c/azure-iot-sdk-c.mk         |  2 +-
 2 files changed, 35 insertions(+), 1 deletion(-)
 create mode 100644 package/azure-iot-sdk-c/0001-azure-iot-sdk-c-Delete-windows-variables.patch

Comments

Peter Korsgaard Dec. 21, 2018, 10:02 p.m. UTC | #1
>>>>> "Nikita" == Nikita Sobolev <Nikita.Sobolev@synopsys.com> writes:

 > From: NikitaSobolev <Nikita.Sobolev@synopsys.com>
 > Bump azure-iot-sdk-c to 2018-12-13 release.
 > Add patch, that removes Windows specified variables from
 > azure-iot-sdk-c-2018-12-13 release. That variables cause
 > build errors.

 > Signed-off-by: Nikita Sobolev <Nikita.Sobolev@synopsys.com>
 > ---
 >  ...-azure-iot-sdk-c-Delete-windows-variables.patch | 34 ++++++++++++++++++++++
 >  package/azure-iot-sdk-c/azure-iot-sdk-c.mk         |  2 +-
 >  2 files changed, 35 insertions(+), 1 deletion(-)
 >  create mode 100644 package/azure-iot-sdk-c/0001-azure-iot-sdk-c-Delete-windows-variables.patch

 > diff --git
 > a/package/azure-iot-sdk-c/0001-azure-iot-sdk-c-Delete-windows-variables.patch
 > b/package/azure-iot-sdk-c/0001-azure-iot-sdk-c-Delete-windows-variables.patch
 > new file mode 100644
 > index 0000000000..e8ff53cb5a
 > --- /dev/null
 > +++ b/package/azure-iot-sdk-c/0001-azure-iot-sdk-c-Delete-windows-variables.patch
 > @@ -0,0 +1,34 @@
 > +From 6c01ef50e0c2d562388aacbb60a1506e70db2218 Mon Sep 17 00:00:00 2001
 > +From: Nikita Sobolev <Nikita.Sobolev@synopsys.com>
 > +Date: Thu, 20 Dec 2018 19:31:20 +0300
 > +Subject: [PATCH] azure-iot-sdk-c: Delete windows variables
 > +
 > +Delete windows specified variables, that have been added
 > +to azure-iot-sdk-c-2018-12-13 release. These variables
 > +are not defined for Linux and cause build errors.
 > +
 > +Signed-off-by: Nikita Sobolev <Nikita.Sobolev@synopsys.com>
 > +---
 > + c-utility/CMakeLists.txt | 6 ------
 > + 1 file changed, 6 deletions(-)
 > +
 > +diff --git a/c-utility/CMakeLists.txt b/c-utility/CMakeLists.txt
 > +index 190ea87dca..464d6d1069 100644
 > +--- a/c-utility/CMakeLists.txt
 > ++++ b/c-utility/CMakeLists.txt
 > +@@ -264,12 +264,6 @@ if(${use_applessl})
 > +     include_directories(./pal/ios-osx/)
 > + endif()
 > + 
 > +-if (WIN32 AND (${CMAKE_SYSTEM_VERSION} VERSION_EQUAL "10.0.17763.0"
 > OR ${CMAKE_SYSTEM_VERSION} VERSION_GREATER "10.0.17763.0"))
 > +-    # Windows added support for UNIX domain sockets to the OS and SDK
 > +-    # in the Oct 2018 update (10.0.17763.0, aka RS5)
 > +-    add_definitions(-DAF_UNIX_ON_WINDOWS)
 > +-endif()

Can you be more specific what the issue is exactly? Given the WIN32 in
this conditional this should never be true in the context of Buildroot,
so the define shouldn't get added?
Nikita Sobolev Dec. 24, 2018, 12:46 p.m. UTC | #2
There's no problem with WIN32 variable.
Buildroot can not find CMAKE_SYSTEM_VERSION while building in Linux.
It fails with error:
-------------------->8----------------------
CMake Error at c-utility/CMakeLists.txt:267 (if):
 if given arguments:

   "WIN32" "AND" "(" "VERSION_EQUAL" "10.0.17763.0" "OR" "VERSION_GREATER" "10.0.17763.0" ")"

 Unknown arguments specified


-- Configuring incomplete, errors occurred!
-------------------->8-----------------------

   On Fri, 2018-12-21 at 23:02 +0100, Peter Korsgaard wrote:
   > > > > > > "Nikita" == Nikita Sobolev <Nikita.Sobolev@synopsys.com> writes:
> 
>  > From: NikitaSobolev <Nikita.Sobolev@synopsys.com>
>  > Bump azure-iot-sdk-c to 2018-12-13 release.
>  > Add patch, that removes Windows specified variables from
>  > azure-iot-sdk-c-2018-12-13 release. That variables cause
>  > build errors.
> 
>  > Signed-off-by: Nikita Sobolev <Nikita.Sobolev@synopsys.com>
>  > ---
>  >  ...-azure-iot-sdk-c-Delete-windows-variables.patch | 34 ++++++++++++++++++++++
>  >  package/azure-iot-sdk-c/azure-iot-sdk-c.mk         |  2 +-
>  >  2 files changed, 35 insertions(+), 1 deletion(-)
>  >  create mode 100644 package/azure-iot-sdk-c/0001-azure-iot-sdk-c-Delete-windows-variables.patch
> 
>  > diff --git
>  > a/package/azure-iot-sdk-c/0001-azure-iot-sdk-c-Delete-windows-variables.patch
>  > b/package/azure-iot-sdk-c/0001-azure-iot-sdk-c-Delete-windows-variables.patch
>  > new file mode 100644
>  > index 0000000000..e8ff53cb5a
>  > --- /dev/null
>  > +++ b/package/azure-iot-sdk-c/0001-azure-iot-sdk-c-Delete-windows-variables.patch
>  > @@ -0,0 +1,34 @@
>  > +From 6c01ef50e0c2d562388aacbb60a1506e70db2218 Mon Sep 17 00:00:00 2001
>  > +From: Nikita Sobolev <Nikita.Sobolev@synopsys.com>
>  > +Date: Thu, 20 Dec 2018 19:31:20 +0300
>  > +Subject: [PATCH] azure-iot-sdk-c: Delete windows variables
>  > +
>  > +Delete windows specified variables, that have been added
>  > +to azure-iot-sdk-c-2018-12-13 release. These variables
>  > +are not defined for Linux and cause build errors.
>  > +
>  > +Signed-off-by: Nikita Sobolev <Nikita.Sobolev@synopsys.com>
>  > +---
>  > + c-utility/CMakeLists.txt | 6 ------
>  > + 1 file changed, 6 deletions(-)
>  > +
>  > +diff --git a/c-utility/CMakeLists.txt b/c-utility/CMakeLists.txt
>  > +index 190ea87dca..464d6d1069 100644
>  > +--- a/c-utility/CMakeLists.txt
>  > ++++ b/c-utility/CMakeLists.txt
>  > +@@ -264,12 +264,6 @@ if(${use_applessl})
>  > +     include_directories(./pal/ios-osx/)
>  > + endif()
>  > + 
>  > +-if (WIN32 AND (${CMAKE_SYSTEM_VERSION} VERSION_EQUAL "10.0.17763.0"
>  > OR ${CMAKE_SYSTEM_VERSION} VERSION_GREATER "10.0.17763.0"))
>  > +-    # Windows added support for UNIX domain sockets to the OS and SDK
>  > +-    # in the Oct 2018 update (10.0.17763.0, aka RS5)
>  > +-    add_definitions(-DAF_UNIX_ON_WINDOWS)
>  > +-endif()
> 
> Can you be more specific what the issue is exactly? Given the WIN32 in
> this conditional this should never be true in the context of Buildroot,
> so the define shouldn't get added?
>
André Zwing Dec. 29, 2018, 1:05 p.m. UTC | #3
Am 24.12.18 um 13:46 schrieb Nikita Sobolev:
> There's no problem with WIN32 variable.
> Buildroot can not find CMAKE_SYSTEM_VERSION while building in Linux.
> It fails with error:
> -------------------->8----------------------
> CMake Error at c-utility/CMakeLists.txt:267 (if):
>  if given arguments:
> 
>    "WIN32" "AND" "(" "VERSION_EQUAL" "10.0.17763.0" "OR" "VERSION_GREATER" "10.0.17763.0" ")"
> 
>  Unknown arguments specified
> 
> 
> -- Configuring incomplete, errors occurred!
> -------------------->8-----------------------
> 
>    On Fri, 2018-12-21 at 23:02 +0100, Peter Korsgaard wrote:
>    > > > > > > "Nikita" == Nikita Sobolev <Nikita.Sobolev@synopsys.com> writes:
>>
>>  > From: NikitaSobolev <Nikita.Sobolev@synopsys.com>
>>  > Bump azure-iot-sdk-c to 2018-12-13 release.
>>  > Add patch, that removes Windows specified variables from
>>  > azure-iot-sdk-c-2018-12-13 release. That variables cause
>>  > build errors.
>>
>>  > Signed-off-by: Nikita Sobolev <Nikita.Sobolev@synopsys.com>
>>  > ---
>>  >  ...-azure-iot-sdk-c-Delete-windows-variables.patch | 34 ++++++++++++++++++++++
>>  >  package/azure-iot-sdk-c/azure-iot-sdk-c.mk         |  2 +-
>>  >  2 files changed, 35 insertions(+), 1 deletion(-)
>>  >  create mode 100644 package/azure-iot-sdk-c/0001-azure-iot-sdk-c-Delete-windows-variables.patch
>>
>>  > diff --git
>>  > a/package/azure-iot-sdk-c/0001-azure-iot-sdk-c-Delete-windows-variables.patch
>>  > b/package/azure-iot-sdk-c/0001-azure-iot-sdk-c-Delete-windows-variables.patch
>>  > new file mode 100644
>>  > index 0000000000..e8ff53cb5a
>>  > --- /dev/null
>>  > +++ b/package/azure-iot-sdk-c/0001-azure-iot-sdk-c-Delete-windows-variables.patch
>>  > @@ -0,0 +1,34 @@
>>  > +From 6c01ef50e0c2d562388aacbb60a1506e70db2218 Mon Sep 17 00:00:00 2001
>>  > +From: Nikita Sobolev <Nikita.Sobolev@synopsys.com>
>>  > +Date: Thu, 20 Dec 2018 19:31:20 +0300
>>  > +Subject: [PATCH] azure-iot-sdk-c: Delete windows variables
>>  > +
>>  > +Delete windows specified variables, that have been added
>>  > +to azure-iot-sdk-c-2018-12-13 release. These variables
>>  > +are not defined for Linux and cause build errors.
>>  > +
>>  > +Signed-off-by: Nikita Sobolev <Nikita.Sobolev@synopsys.com>
>>  > +---
>>  > + c-utility/CMakeLists.txt | 6 ------
>>  > + 1 file changed, 6 deletions(-)
>>  > +
>>  > +diff --git a/c-utility/CMakeLists.txt b/c-utility/CMakeLists.txt
>>  > +index 190ea87dca..464d6d1069 100644
>>  > +--- a/c-utility/CMakeLists.txt
>>  > ++++ b/c-utility/CMakeLists.txt
>>  > +@@ -264,12 +264,6 @@ if(${use_applessl})
>>  > +     include_directories(./pal/ios-osx/)
>>  > + endif()
>>  > + 
>>  > +-if (WIN32 AND (${CMAKE_SYSTEM_VERSION} VERSION_EQUAL "10.0.17763.0"
>>  > OR ${CMAKE_SYSTEM_VERSION} VERSION_GREATER "10.0.17763.0"))
>>  > +-    # Windows added support for UNIX domain sockets to the OS and SDK
>>  > +-    # in the Oct 2018 update (10.0.17763.0, aka RS5)
>>  > +-    add_definitions(-DAF_UNIX_ON_WINDOWS)
>>  > +-endif()
>>
>> Can you be more specific what the issue is exactly? Given the WIN32 in
>> this conditional this should never be true in the context of Buildroot,
>> so the define shouldn't get added?
>>


There shouldn't be a problem, all variables/macros should be defined by cmake:
https://cmake.org/cmake/help/v3.0/variable/CMAKE_VERSION.html
https://cmake.org/cmake/help/v3.0/variable/WIN32.html
https://cmake.org/cmake/help/v3.0/variable/CMAKE_SYSTEM_VERSION.html

On a site note: 2018-12-13 would fix the recently build failures for this package...
@Nikita: Would you mind taking maintainership for this package by adding it and yourself to the DEVELOPERS file? And could you please elaborate the cmake problem above some more?


Thanks!
Thomas Petazzoni Dec. 30, 2018, 9:41 p.m. UTC | #4
Hello,

On Fri, 21 Dec 2018 20:37:29 +0300, Nikita Sobolev wrote:
> From: NikitaSobolev <Nikita.Sobolev@synopsys.com>
> 
> Bump azure-iot-sdk-c to 2018-12-13 release.
> Add patch, that removes Windows specified variables from
> azure-iot-sdk-c-2018-12-13 release. That variables cause
> build errors.
> 
> Signed-off-by: Nikita Sobolev <Nikita.Sobolev@synopsys.com>

So, I looked into this. Indeed, without the patch, the build fails with:

CMake Error at c-utility/CMakeLists.txt:267 (if):
  if given arguments:

    "WIN32" "AND" "(" "VERSION_EQUAL" "10.0.17763.0" "OR" "VERSION_GREATER" "10.0.17763.0" ")"

  Unknown arguments specified

The problem comes from the fact that ${CMAKE_SYSTEM_VERSION} is empty.
And the CMake documentation
(https://cmake.org/cmake/help/v3.4/variable/CMAKE_SYSTEM_VERSION.html)
explains why:

  When the CMAKE_SYSTEM_NAME variable is set explicitly to enable cross
  compiling then the value of CMAKE_SYSTEM_VERSION must also be set
  explicitly to specify the target system version.

We are defining CMAKE_SYSTEM_NAME in our toolchain file, but not
CMAKE_SYSTEM_VERSION.

So for now, I simply defined CMAKE_SYSTEM_VERSION locally in
azure-iot-sdk-c, and dropped the patch. Long term, perhaps we should
define CMAKE_SYSTEM_VERSION in our toolchain file. I'm not sure who is
maintaining our CMake infrastructure these days, Samuel Martin used to
do it, but he is no longer very active.

Best regards,

Thomas
Arnout Vandecappelle Jan. 10, 2019, 10:50 p.m. UTC | #5
On 30/12/2018 22:41, Thomas Petazzoni wrote:
> Hello,
> 
> On Fri, 21 Dec 2018 20:37:29 +0300, Nikita Sobolev wrote:
>> From: NikitaSobolev <Nikita.Sobolev@synopsys.com>
>>
>> Bump azure-iot-sdk-c to 2018-12-13 release.
>> Add patch, that removes Windows specified variables from
>> azure-iot-sdk-c-2018-12-13 release. That variables cause
>> build errors.
>>
>> Signed-off-by: Nikita Sobolev <Nikita.Sobolev@synopsys.com>
> 
> So, I looked into this. Indeed, without the patch, the build fails with:
> 
> CMake Error at c-utility/CMakeLists.txt:267 (if):
>   if given arguments:
> 
>     "WIN32" "AND" "(" "VERSION_EQUAL" "10.0.17763.0" "OR" "VERSION_GREATER" "10.0.17763.0" ")"
> 
>   Unknown arguments specified
> 
> The problem comes from the fact that ${CMAKE_SYSTEM_VERSION} is empty.
> And the CMake documentation
> (https://cmake.org/cmake/help/v3.4/variable/CMAKE_SYSTEM_VERSION.html)
> explains why:
> 
>   When the CMAKE_SYSTEM_NAME variable is set explicitly to enable cross
>   compiling then the value of CMAKE_SYSTEM_VERSION must also be set
>   explicitly to specify the target system version.
> 
> We are defining CMAKE_SYSTEM_NAME in our toolchain file, but not
> CMAKE_SYSTEM_VERSION.
> 
> So for now, I simply defined CMAKE_SYSTEM_VERSION locally in
> azure-iot-sdk-c, and dropped the patch. Long term, perhaps we should
> define CMAKE_SYSTEM_VERSION in our toolchain file. I'm not sure who is
> maintaining our CMake infrastructure these days, Samuel Martin used to
> do it, but he is no longer very active.

 Indeed, it should be set in the toolchain file. CMAKE_SYSTEM_VERSION is the
output of `uname -r` of the target system, i.e. the kernel version. We don't
have that, but we do have BR2_TOOLCHAIN_HEADERS_AT_LEAST which should be good
enough.

 Regards,
 Arnout
diff mbox series

Patch

diff --git a/package/azure-iot-sdk-c/0001-azure-iot-sdk-c-Delete-windows-variables.patch b/package/azure-iot-sdk-c/0001-azure-iot-sdk-c-Delete-windows-variables.patch
new file mode 100644
index 0000000000..e8ff53cb5a
--- /dev/null
+++ b/package/azure-iot-sdk-c/0001-azure-iot-sdk-c-Delete-windows-variables.patch
@@ -0,0 +1,34 @@ 
+From 6c01ef50e0c2d562388aacbb60a1506e70db2218 Mon Sep 17 00:00:00 2001
+From: Nikita Sobolev <Nikita.Sobolev@synopsys.com>
+Date: Thu, 20 Dec 2018 19:31:20 +0300
+Subject: [PATCH] azure-iot-sdk-c: Delete windows variables
+
+Delete windows specified variables, that have been added
+to azure-iot-sdk-c-2018-12-13 release. These variables
+are not defined for Linux and cause build errors.
+
+Signed-off-by: Nikita Sobolev <Nikita.Sobolev@synopsys.com>
+---
+ c-utility/CMakeLists.txt | 6 ------
+ 1 file changed, 6 deletions(-)
+
+diff --git a/c-utility/CMakeLists.txt b/c-utility/CMakeLists.txt
+index 190ea87dca..464d6d1069 100644
+--- a/c-utility/CMakeLists.txt
++++ b/c-utility/CMakeLists.txt
+@@ -264,12 +264,6 @@ if(${use_applessl})
+     include_directories(./pal/ios-osx/)
+ endif()
+ 
+-if (WIN32 AND (${CMAKE_SYSTEM_VERSION} VERSION_EQUAL "10.0.17763.0" OR ${CMAKE_SYSTEM_VERSION} VERSION_GREATER "10.0.17763.0"))
+-    # Windows added support for UNIX domain sockets to the OS and SDK
+-    # in the Oct 2018 update (10.0.17763.0, aka RS5)
+-    add_definitions(-DAF_UNIX_ON_WINDOWS)
+-endif()
+-
+ #these are the C headers
+ set(source_h_files
+ ./inc/azure_c_shared_utility/agenttime.h
+-- 
+2.16.2
+
diff --git a/package/azure-iot-sdk-c/azure-iot-sdk-c.mk b/package/azure-iot-sdk-c/azure-iot-sdk-c.mk
index 504929aee6..8b3f670399 100644
--- a/package/azure-iot-sdk-c/azure-iot-sdk-c.mk
+++ b/package/azure-iot-sdk-c/azure-iot-sdk-c.mk
@@ -4,7 +4,7 @@ 
 #
 ################################################################################
 
-AZURE_IOT_SDK_C_VERSION = 2018-03-16
+AZURE_IOT_SDK_C_VERSION = 2018-12-13
 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