diff mbox

[v2] azmq: Add new package

Message ID 20170728180459.32667-1-rj.ascani@gmail.com
State Accepted
Headers show

Commit Message

RJ Ascani July 28, 2017, 6:04 p.m. UTC
The azmq library provides Boost Asio style bindings for ZeroMQ. This
library is built on top of ZeroMQ's standard C interface and is intended
to work well with C++ applications which use the Boost libraries in
general, and Asio in particular.

Signed-off-by: RJ Ascani <rj.ascani@gmail.com>
---
 DEVELOPERS                                         |  3 ++
 package/Config.in                                  |  1 +
 ...Conditionally-disable-test-and-doc-builds.patch | 43 ++++++++++++++++++++++
 package/azmq/Config.in                             | 28 ++++++++++++++
 package/azmq/azmq.hash                             |  3 ++
 package/azmq/azmq.mk                               | 18 +++++++++
 6 files changed, 96 insertions(+)
 create mode 100644 package/azmq/0001-Conditionally-disable-test-and-doc-builds.patch
 create mode 100644 package/azmq/Config.in
 create mode 100644 package/azmq/azmq.hash
 create mode 100644 package/azmq/azmq.mk

Comments

RJ Ascani Aug. 1, 2017, 3:42 p.m. UTC | #1
Hi there,
I realize there's a lot of higher priority patches going through at
the moment, but is there any chance I can get a review on this one? I
know there are already two other ZeroMQ bindings for C++ already in
buildroot, but these are specifically designed to work with the Boost
Asio networking library. It was moved under the ZeroMQ organizational
umbrella quite some time ago.

Thanks!
-RJ Ascani

On Fri, Jul 28, 2017 at 11:04 AM, RJ Ascani <rj.ascani@gmail.com> wrote:
> The azmq library provides Boost Asio style bindings for ZeroMQ. This
> library is built on top of ZeroMQ's standard C interface and is intended
> to work well with C++ applications which use the Boost libraries in
> general, and Asio in particular.
>
> Signed-off-by: RJ Ascani <rj.ascani@gmail.com>
> ---
>  DEVELOPERS                                         |  3 ++
>  package/Config.in                                  |  1 +
>  ...Conditionally-disable-test-and-doc-builds.patch | 43 ++++++++++++++++++++++
>  package/azmq/Config.in                             | 28 ++++++++++++++
>  package/azmq/azmq.hash                             |  3 ++
>  package/azmq/azmq.mk                               | 18 +++++++++
>  6 files changed, 96 insertions(+)
>  create mode 100644 package/azmq/0001-Conditionally-disable-test-and-doc-builds.patch
>  create mode 100644 package/azmq/Config.in
>  create mode 100644 package/azmq/azmq.hash
>  create mode 100644 package/azmq/azmq.mk
>
> diff --git a/DEVELOPERS b/DEVELOPERS
> index e01c1bade..51186a630 100644
> --- a/DEVELOPERS
> +++ b/DEVELOPERS
> @@ -1420,6 +1420,9 @@ N:        Rico Bachmann <bachmann@tofwerk.com>
>  F:     package/apr-util/
>  F:     package/subversion/
>
> +N:     RJ Ascani <rj.ascani@gmail.com>
> +F:     package/azmq/
> +
>  N:     Rodrigo Rebello <rprebello@gmail.com>
>  F:     package/chocolate-doom/
>  F:     package/irssi/
> diff --git a/package/Config.in b/package/Config.in
> index 484c75327..e6168d776 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -1274,6 +1274,7 @@ menu "Networking"
>         source "package/alljoyn-base/Config.in"
>         source "package/alljoyn-tcl/Config.in"
>         source "package/alljoyn-tcl-base/Config.in"
> +       source "package/azmq/Config.in"
>         source "package/azure-iot-sdk-c/Config.in"
>         source "package/batman-adv/Config.in"
>         source "package/c-ares/Config.in"
> diff --git a/package/azmq/0001-Conditionally-disable-test-and-doc-builds.patch b/package/azmq/0001-Conditionally-disable-test-and-doc-builds.patch
> new file mode 100644
> index 000000000..98975d27e
> --- /dev/null
> +++ b/package/azmq/0001-Conditionally-disable-test-and-doc-builds.patch
> @@ -0,0 +1,43 @@
> +From d960f93fb52e373f76cfedbee5f4fb0c5276856a Mon Sep 17 00:00:00 2001
> +From: RJ Ascani <rj.ascani@gmail.com>
> +Date: Thu, 20 Jul 2017 15:53:40 -0700
> +Subject: [PATCH] Conditionally disable test and doc builds
> +
> +Signed-off-by: RJ Ascani <rj.ascani@gmail.com>
> +---
> + CMakeLists.txt | 12 +++++++++---
> + 1 file changed, 9 insertions(+), 3 deletions(-)
> +
> +diff --git a/CMakeLists.txt b/CMakeLists.txt
> +index 5b5b9cc..97006a4 100644
> +--- a/CMakeLists.txt
> ++++ b/CMakeLists.txt
> +@@ -49,7 +49,9 @@ include_directories(${Boost_INCLUDE_DIRS}
> +                     ${ZeroMQ_INCLUDE_DIRS}
> +                     ${PROJECT_SOURCE_DIR})
> +
> +-enable_testing()
> ++if (BUILD_TESTING)
> ++    enable_testing()
> ++endif()
> +
> + macro(add_catch_test name)
> +     if (TEST_REPORT_FORMAT)
> +@@ -59,8 +61,12 @@ macro(add_catch_test name)
> +     endif()
> + endmacro()
> +
> +-add_subdirectory(test)
> +-add_subdirectory(doc)
> ++if (BUILD_TESTING)
> ++    add_subdirectory(test)
> ++endif()
> ++if (BUILD_DOC)
> ++    add_subdirectory(doc)
> ++endif()
> +
> + install(DIRECTORY ${PROJECT_SOURCE_DIR}/azmq
> +         DESTINATION include)
> +--
> +2.13.3
> +
> diff --git a/package/azmq/Config.in b/package/azmq/Config.in
> new file mode 100644
> index 000000000..422a05883
> --- /dev/null
> +++ b/package/azmq/Config.in
> @@ -0,0 +1,28 @@
> +config BR2_PACKAGE_AZMQ
> +       bool "azmq"
> +       depends on BR2_INSTALL_LIBSTDCPP
> +       depends on BR2_TOOLCHAIN_HAS_ATOMIC
> +       depends on BR2_TOOLCHAIN_HAS_THREADS # zeromq
> +       depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11
> +       depends on BR2_USE_WCHAR # boost
> +       depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # exception_ptr
> +       select BR2_PACKAGE_ZEROMQ
> +       select BR2_PACKAGE_BOOST
> +       select BR2_PACKAGE_BOOST_CHRONO
> +       select BR2_PACKAGE_BOOST_DATE_TIME
> +       select BR2_PACKAGE_BOOST_LOG
> +       select BR2_PACKAGE_BOOST_RANDOM
> +       select BR2_PACKAGE_BOOST_REGEX
> +       select BR2_PACKAGE_BOOST_SYSTEM
> +       select BR2_PACKAGE_BOOST_THREAD
> +       help
> +         This library provides Boost Asio style bindings for ZeroMQ.
> +
> +         https://github.com/zeromq/azmq
> +
> +comment "azmq needs a toolchain w/ C++11, wchar and threads"
> +       depends on !(BR2_INSTALL_LIBSTDCPP && BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 \
> +               && BR2_USE_WCHAR && BR2_TOOLCHAIN_HAS_THREADS)
> +
> +comment "azmq needs exception_ptr"
> +       depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735
> diff --git a/package/azmq/azmq.hash b/package/azmq/azmq.hash
> new file mode 100644
> index 000000000..d3993f498
> --- /dev/null
> +++ b/package/azmq/azmq.hash
> @@ -0,0 +1,3 @@
> +# Locally calculated
> +# https://github.com/zeromq/azmq/archive/v1.0.tar.gz
> +sha256 c204c731bcb7810ca3a2c5515e88974ef2ff8d0589e60a897dc238b369180e7b  azmq-v1.0.tar.gz
> diff --git a/package/azmq/azmq.mk b/package/azmq/azmq.mk
> new file mode 100644
> index 000000000..427ad0f5b
> --- /dev/null
> +++ b/package/azmq/azmq.mk
> @@ -0,0 +1,18 @@
> +################################################################################
> +#
> +# azmq
> +#
> +################################################################################
> +
> +AZMQ_VERSION = v1.0
> +AZMQ_SITE = $(call github,zeromq,azmq,$(AZMQ_VERSION))
> +AZMQ_DEPENDENCIES = boost zeromq
> +AZMQ_LICENSE = BSL-1.0
> +AZMQ_LICENSE_FILES = LICENSE-BOOST_1_0
> +
> +# AZMQ is a header only library, so it does not need to be installed on the
> +# target.
> +AZMQ_INSTALL_STAGING = YES
> +AZMQ_INSTALL_TARGET = NO
> +
> +$(eval $(cmake-package))
> --
> 2.13.3
>
Arnout Vandecappelle Aug. 2, 2017, 10:29 p.m. UTC | #2
Hi RJ,

 I'm not sure if we can still get this in 2017.08 since I have a few comments
that I can't fix up myself...

On 28-07-17 20:04, RJ Ascani wrote:
> The azmq library provides Boost Asio style bindings for ZeroMQ. This
> library is built on top of ZeroMQ's standard C interface and is intended
> to work well with C++ applications which use the Boost libraries in
> general, and Asio in particular.
> 
> Signed-off-by: RJ Ascani <rj.ascani@gmail.com>

 We require the Signed-off-by to be a full, real name because it's a legal
statement. It is a short way for you to assert that you are entitled to
contribute the patch under buildroot's GPL license.  See
http://elinux.org/Developer_Certificate_Of_Origin for more details.

 The Author should be the same name, of course.


[snip]
> +From d960f93fb52e373f76cfedbee5f4fb0c5276856a Mon Sep 17 00:00:00 2001
> +From: RJ Ascani <rj.ascani@gmail.com>
> +Date: Thu, 20 Jul 2017 15:53:40 -0700
> +Subject: [PATCH] Conditionally disable test and doc builds

 What is the upstream status of this patch? Please send it upstream if you
didn't already do so.

> +
> +Signed-off-by: RJ Ascani <rj.ascani@gmail.com>
> +---
> + CMakeLists.txt | 12 +++++++++---
> + 1 file changed, 9 insertions(+), 3 deletions(-)
> +
> +diff --git a/CMakeLists.txt b/CMakeLists.txt
> +index 5b5b9cc..97006a4 100644
> +--- a/CMakeLists.txt
> ++++ b/CMakeLists.txt
> +@@ -49,7 +49,9 @@ include_directories(${Boost_INCLUDE_DIRS}
> +                     ${ZeroMQ_INCLUDE_DIRS}
> +                     ${PROJECT_SOURCE_DIR})
> +
> +-enable_testing()
> ++if (BUILD_TESTING)

 I would expect that upstream would require BUILD_TESTING to be set to ON by
default. Also, I think BUILD_TESTS is more common, but I have no data to back
that up.

> ++    enable_testing()
> ++endif()
> +
> + macro(add_catch_test name)
> +     if (TEST_REPORT_FORMAT)
> +@@ -59,8 +61,12 @@ macro(add_catch_test name)
> +     endif()
> + endmacro()
> +
> +-add_subdirectory(test)
> +-add_subdirectory(doc)
> ++if (BUILD_TESTING)
> ++    add_subdirectory(test)
> ++endif()
> ++if (BUILD_DOC)

 Same here, of course.

> ++    add_subdirectory(doc)
> ++endif()
> +
> + install(DIRECTORY ${PROJECT_SOURCE_DIR}/azmq
> +         DESTINATION include)
[snip]
> index 000000000..d3993f498
> --- /dev/null
> +++ b/package/azmq/azmq.hash
> @@ -0,0 +1,3 @@
> +# Locally calculated
> +# https://github.com/zeromq/azmq/archive/v1.0.tar.gz
> +sha256 c204c731bcb7810ca3a2c5515e88974ef2ff8d0589e60a897dc238b369180e7b  azmq-v1.0.tar.gz
> diff --git a/package/azmq/azmq.mk b/package/azmq/azmq.mk
> new file mode 100644
> index 000000000..427ad0f5b
> --- /dev/null
> +++ b/package/azmq/azmq.mk
> @@ -0,0 +1,18 @@
> +################################################################################
> +#
> +# azmq
> +#
> +################################################################################
> +
> +AZMQ_VERSION = v1.0
> +AZMQ_SITE = $(call github,zeromq,azmq,$(AZMQ_VERSION))
> +AZMQ_DEPENDENCIES = boost zeromq
> +AZMQ_LICENSE = BSL-1.0
> +AZMQ_LICENSE_FILES = LICENSE-BOOST_1_0
> +
> +# AZMQ is a header only library, so it does not need to be installed on the
> +# target.
> +AZMQ_INSTALL_STAGING = YES
> +AZMQ_INSTALL_TARGET = NO

 So I would expect that we would need to pass an explicit -DBUILD_TESTING=OFF
and -DBUILD_DOCS=OFF

 Regards,
 Arnout

> +
> +$(eval $(cmake-package))
>
RJ Ascani Aug. 2, 2017, 11:45 p.m. UTC | #3
Hi Arnout,

Thank you so much for the review. I'm not in any rush, so making it
into 2017.08 is not a necessity.

On Wed, Aug 2, 2017 at 3:29 PM, Arnout Vandecappelle <arnout@mind.be> wrote:
>  Hi RJ,
>
>  I'm not sure if we can still get this in 2017.08 since I have a few comments
> that I can't fix up myself...
>
> On 28-07-17 20:04, RJ Ascani wrote:
>> The azmq library provides Boost Asio style bindings for ZeroMQ. This
>> library is built on top of ZeroMQ's standard C interface and is intended
>> to work well with C++ applications which use the Boost libraries in
>> general, and Asio in particular.
>>
>> Signed-off-by: RJ Ascani <rj.ascani@gmail.com>
>
>  We require the Signed-off-by to be a full, real name because it's a legal
> statement. It is a short way for you to assert that you are entitled to
> contribute the patch under buildroot's GPL license.  See
> http://elinux.org/Developer_Certificate_Of_Origin for more details.
>
>  The Author should be the same name, of course.
>

Just to be clear, it's my initials that are the issue? I've gone by RJ
my entire life so I didn't realize that would be an issue.

>
> [snip]
>> +From d960f93fb52e373f76cfedbee5f4fb0c5276856a Mon Sep 17 00:00:00 2001
>> +From: RJ Ascani <rj.ascani@gmail.com>
>> +Date: Thu, 20 Jul 2017 15:53:40 -0700
>> +Subject: [PATCH] Conditionally disable test and doc builds
>
>  What is the upstream status of this patch? Please send it upstream if you
> didn't already do so.
>

Actually, I probably should have elaborated a bit more in the
explanation here. The reason I added this patch was actually because
there is a bug in building the tests under buildroot. Upstream is
missing a library that needs to be linked in their test
CMakeLists.txt. Since buildroot already forcibly tries to disable docs
and tests for cmake packages, I assumed it would be better to just
have the tests not even be built for buildroot. I'm not certain I
could get those conditionals into upstream, but I'm fairly certain I
could get the test bug patched upstream. Would it be preferable to: 1)
patch the actual test bug and let the tests build or 2) disable the
building of the tests entirely?

>> +
>> +Signed-off-by: RJ Ascani <rj.ascani@gmail.com>
>> +---
>> + CMakeLists.txt | 12 +++++++++---
>> + 1 file changed, 9 insertions(+), 3 deletions(-)
>> +
>> +diff --git a/CMakeLists.txt b/CMakeLists.txt
>> +index 5b5b9cc..97006a4 100644
>> +--- a/CMakeLists.txt
>> ++++ b/CMakeLists.txt
>> +@@ -49,7 +49,9 @@ include_directories(${Boost_INCLUDE_DIRS}
>> +                     ${ZeroMQ_INCLUDE_DIRS}
>> +                     ${PROJECT_SOURCE_DIR})
>> +
>> +-enable_testing()
>> ++if (BUILD_TESTING)
>
>  I would expect that upstream would require BUILD_TESTING to be set to ON by
> default. Also, I think BUILD_TESTS is more common, but I have no data to back
> that up.

BUILD_TESTING is an actually a built-in for CTest (CMake's testing module).

>
>> ++    enable_testing()
>> ++endif()
>> +
>> + macro(add_catch_test name)
>> +     if (TEST_REPORT_FORMAT)
>> +@@ -59,8 +61,12 @@ macro(add_catch_test name)
>> +     endif()
>> + endmacro()
>> +
>> +-add_subdirectory(test)
>> +-add_subdirectory(doc)
>> ++if (BUILD_TESTING)
>> ++    add_subdirectory(test)
>> ++endif()
>> ++if (BUILD_DOC)
>
>  Same here, of course.
>
>> ++    add_subdirectory(doc)
>> ++endif()
>> +
>> + install(DIRECTORY ${PROJECT_SOURCE_DIR}/azmq
>> +         DESTINATION include)
> [snip]
>> index 000000000..d3993f498
>> --- /dev/null
>> +++ b/package/azmq/azmq.hash
>> @@ -0,0 +1,3 @@
>> +# Locally calculated
>> +# https://github.com/zeromq/azmq/archive/v1.0.tar.gz
>> +sha256 c204c731bcb7810ca3a2c5515e88974ef2ff8d0589e60a897dc238b369180e7b  azmq-v1.0.tar.gz
>> diff --git a/package/azmq/azmq.mk b/package/azmq/azmq.mk
>> new file mode 100644
>> index 000000000..427ad0f5b
>> --- /dev/null
>> +++ b/package/azmq/azmq.mk
>> @@ -0,0 +1,18 @@
>> +################################################################################
>> +#
>> +# azmq
>> +#
>> +################################################################################
>> +
>> +AZMQ_VERSION = v1.0
>> +AZMQ_SITE = $(call github,zeromq,azmq,$(AZMQ_VERSION))
>> +AZMQ_DEPENDENCIES = boost zeromq
>> +AZMQ_LICENSE = BSL-1.0
>> +AZMQ_LICENSE_FILES = LICENSE-BOOST_1_0
>> +
>> +# AZMQ is a header only library, so it does not need to be installed on the
>> +# target.
>> +AZMQ_INSTALL_STAGING = YES
>> +AZMQ_INSTALL_TARGET = NO
>
>  So I would expect that we would need to pass an explicit -DBUILD_TESTING=OFF
> and -DBUILD_DOCS=OFF
>

Those are already added to the cmake configure command from
package/pkg-cmake.mk. Are you saying we should also add them as an
explicit option in AZMQ_CONF_OPTS?

>  Regards,
>  Arnout
>
>> +
>> +$(eval $(cmake-package))
>>
>
> --
> Arnout Vandecappelle                          arnout at mind be
> Senior Embedded Software Architect            +32-16-286500
> Essensium/Mind                                http://www.mind.be
> G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
> LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
> GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF

Thanks again!
-RJ
Arnout Vandecappelle Aug. 3, 2017, 7:12 a.m. UTC | #4
On 03-08-17 01:45, RJ Ascani wrote:
> Hi Arnout,
> 
> Thank you so much for the review. I'm not in any rush, so making it
> into 2017.08 is not a necessity.
> 
> On Wed, Aug 2, 2017 at 3:29 PM, Arnout Vandecappelle <arnout@mind.be> wrote:
>>  Hi RJ,
>>
>>  I'm not sure if we can still get this in 2017.08 since I have a few comments
>> that I can't fix up myself...
>>
>> On 28-07-17 20:04, RJ Ascani wrote:
>>> The azmq library provides Boost Asio style bindings for ZeroMQ. This
>>> library is built on top of ZeroMQ's standard C interface and is intended
>>> to work well with C++ applications which use the Boost libraries in
>>> general, and Asio in particular.
>>>
>>> Signed-off-by: RJ Ascani <rj.ascani@gmail.com>
>>
>>  We require the Signed-off-by to be a full, real name because it's a legal
>> statement. It is a short way for you to assert that you are entitled to
>> contribute the patch under buildroot's GPL license.  See
>> http://elinux.org/Developer_Certificate_Of_Origin for more details.
>>
>>  The Author should be the same name, of course.
>>
> 
> Just to be clear, it's my initials that are the issue? I've gone by RJ
> my entire life so I didn't realize that would be an issue.

 In that case it's OK - it looked like an alias/nick, that's all.


>> [snip]
>>> +From d960f93fb52e373f76cfedbee5f4fb0c5276856a Mon Sep 17 00:00:00 2001
>>> +From: RJ Ascani <rj.ascani@gmail.com>
>>> +Date: Thu, 20 Jul 2017 15:53:40 -0700
>>> +Subject: [PATCH] Conditionally disable test and doc builds
>>
>>  What is the upstream status of this patch? Please send it upstream if you
>> didn't already do so.
>>
> 
> Actually, I probably should have elaborated a bit more in the
> explanation here. The reason I added this patch was actually because
> there is a bug in building the tests under buildroot. Upstream is
> missing a library that needs to be linked in their test
> CMakeLists.txt. Since buildroot already forcibly tries to disable docs
> and tests for cmake packages, I assumed it would be better to just
> have the tests not even be built for buildroot. I'm not certain I
> could get those conditionals into upstream, but I'm fairly certain I
> could get the test bug patched upstream. Would it be preferable to: 1)
> patch the actual test bug and let the tests build or 2) disable the
> building of the tests entirely?

 Disabling building of tests is preferable, yes. I don't see why upstream
wouldn't agree with a patch that makes that optional - especially if the name is
standard, like you mention below. So please send it upstream (after checking
that the defaults for both these symbols is ON).

>>> +
>>> +Signed-off-by: RJ Ascani <rj.ascani@gmail.com>
>>> +---
>>> + CMakeLists.txt | 12 +++++++++---
>>> + 1 file changed, 9 insertions(+), 3 deletions(-)
>>> +
>>> +diff --git a/CMakeLists.txt b/CMakeLists.txt
>>> +index 5b5b9cc..97006a4 100644
>>> +--- a/CMakeLists.txt
>>> ++++ b/CMakeLists.txt
>>> +@@ -49,7 +49,9 @@ include_directories(${Boost_INCLUDE_DIRS}
>>> +                     ${ZeroMQ_INCLUDE_DIRS}
>>> +                     ${PROJECT_SOURCE_DIR})
>>> +
>>> +-enable_testing()
>>> ++if (BUILD_TESTING)
>>
>>  I would expect that upstream would require BUILD_TESTING to be set to ON by
>> default. Also, I think BUILD_TESTS is more common, but I have no data to back
>> that up.
> 
> BUILD_TESTING is an actually a built-in for CTest (CMake's testing module).

 OK, I didn't know that, thanks!

[snip]
>>
>>  So I would expect that we would need to pass an explicit -DBUILD_TESTING=OFF
>> and -DBUILD_DOCS=OFF
>>
> 
> Those are already added to the cmake configure command from
> package/pkg-cmake.mk. Are you saying we should also add them as an
> explicit option in AZMQ_CONF_OPTS?

 D'oh, I actually knew that, silly me!

 So the patch is OK then, I've applied to the next branch unchanged.

 Could you still send a patch that adds you to the DEVELOPERS file? That way,
you'll get a personal mail when this package breaks in the autobuilders.

 Regards,
 Arnout
Arnout Vandecappelle Aug. 3, 2017, 7:12 a.m. UTC | #5
On 03-08-17 09:12, Arnout Vandecappelle wrote:
>  Could you still send a patch that adds you to the DEVELOPERS file? That way,
> you'll get a personal mail when this package breaks in the autobuilders.

 Argh, you already were in the developers file, so please ignore this :-)

 Regards,
 Arnout
diff mbox

Patch

diff --git a/DEVELOPERS b/DEVELOPERS
index e01c1bade..51186a630 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -1420,6 +1420,9 @@  N:	Rico Bachmann <bachmann@tofwerk.com>
 F:	package/apr-util/
 F:	package/subversion/
 
+N:	RJ Ascani <rj.ascani@gmail.com>
+F:	package/azmq/
+
 N:	Rodrigo Rebello <rprebello@gmail.com>
 F:	package/chocolate-doom/
 F:	package/irssi/
diff --git a/package/Config.in b/package/Config.in
index 484c75327..e6168d776 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1274,6 +1274,7 @@  menu "Networking"
 	source "package/alljoyn-base/Config.in"
 	source "package/alljoyn-tcl/Config.in"
 	source "package/alljoyn-tcl-base/Config.in"
+	source "package/azmq/Config.in"
 	source "package/azure-iot-sdk-c/Config.in"
 	source "package/batman-adv/Config.in"
 	source "package/c-ares/Config.in"
diff --git a/package/azmq/0001-Conditionally-disable-test-and-doc-builds.patch b/package/azmq/0001-Conditionally-disable-test-and-doc-builds.patch
new file mode 100644
index 000000000..98975d27e
--- /dev/null
+++ b/package/azmq/0001-Conditionally-disable-test-and-doc-builds.patch
@@ -0,0 +1,43 @@ 
+From d960f93fb52e373f76cfedbee5f4fb0c5276856a Mon Sep 17 00:00:00 2001
+From: RJ Ascani <rj.ascani@gmail.com>
+Date: Thu, 20 Jul 2017 15:53:40 -0700
+Subject: [PATCH] Conditionally disable test and doc builds
+
+Signed-off-by: RJ Ascani <rj.ascani@gmail.com>
+---
+ CMakeLists.txt | 12 +++++++++---
+ 1 file changed, 9 insertions(+), 3 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 5b5b9cc..97006a4 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -49,7 +49,9 @@ include_directories(${Boost_INCLUDE_DIRS}
+                     ${ZeroMQ_INCLUDE_DIRS}
+                     ${PROJECT_SOURCE_DIR})
+
+-enable_testing()
++if (BUILD_TESTING)
++    enable_testing()
++endif()
+
+ macro(add_catch_test name)
+     if (TEST_REPORT_FORMAT)
+@@ -59,8 +61,12 @@ macro(add_catch_test name)
+     endif()
+ endmacro()
+
+-add_subdirectory(test)
+-add_subdirectory(doc)
++if (BUILD_TESTING)
++    add_subdirectory(test)
++endif()
++if (BUILD_DOC)
++    add_subdirectory(doc)
++endif()
+
+ install(DIRECTORY ${PROJECT_SOURCE_DIR}/azmq
+         DESTINATION include)
+--
+2.13.3
+
diff --git a/package/azmq/Config.in b/package/azmq/Config.in
new file mode 100644
index 000000000..422a05883
--- /dev/null
+++ b/package/azmq/Config.in
@@ -0,0 +1,28 @@ 
+config BR2_PACKAGE_AZMQ
+	bool "azmq"
+	depends on BR2_INSTALL_LIBSTDCPP
+	depends on BR2_TOOLCHAIN_HAS_ATOMIC
+	depends on BR2_TOOLCHAIN_HAS_THREADS # zeromq
+	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11
+	depends on BR2_USE_WCHAR # boost
+	depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # exception_ptr
+	select BR2_PACKAGE_ZEROMQ
+	select BR2_PACKAGE_BOOST
+	select BR2_PACKAGE_BOOST_CHRONO
+	select BR2_PACKAGE_BOOST_DATE_TIME
+	select BR2_PACKAGE_BOOST_LOG
+	select BR2_PACKAGE_BOOST_RANDOM
+	select BR2_PACKAGE_BOOST_REGEX
+	select BR2_PACKAGE_BOOST_SYSTEM
+	select BR2_PACKAGE_BOOST_THREAD
+	help
+	  This library provides Boost Asio style bindings for ZeroMQ.
+
+	  https://github.com/zeromq/azmq
+
+comment "azmq needs a toolchain w/ C++11, wchar and threads"
+	depends on !(BR2_INSTALL_LIBSTDCPP && BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 \
+		&& BR2_USE_WCHAR && BR2_TOOLCHAIN_HAS_THREADS)
+
+comment "azmq needs exception_ptr"
+	depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735
diff --git a/package/azmq/azmq.hash b/package/azmq/azmq.hash
new file mode 100644
index 000000000..d3993f498
--- /dev/null
+++ b/package/azmq/azmq.hash
@@ -0,0 +1,3 @@ 
+# Locally calculated
+# https://github.com/zeromq/azmq/archive/v1.0.tar.gz
+sha256 c204c731bcb7810ca3a2c5515e88974ef2ff8d0589e60a897dc238b369180e7b  azmq-v1.0.tar.gz
diff --git a/package/azmq/azmq.mk b/package/azmq/azmq.mk
new file mode 100644
index 000000000..427ad0f5b
--- /dev/null
+++ b/package/azmq/azmq.mk
@@ -0,0 +1,18 @@ 
+################################################################################
+#
+# azmq
+#
+################################################################################
+
+AZMQ_VERSION = v1.0
+AZMQ_SITE = $(call github,zeromq,azmq,$(AZMQ_VERSION))
+AZMQ_DEPENDENCIES = boost zeromq
+AZMQ_LICENSE = BSL-1.0
+AZMQ_LICENSE_FILES = LICENSE-BOOST_1_0
+
+# AZMQ is a header only library, so it does not need to be installed on the
+# target.
+AZMQ_INSTALL_STAGING = YES
+AZMQ_INSTALL_TARGET = NO
+
+$(eval $(cmake-package))