Your message dated Mon, 15 Aug 2022 17:44:26 +0000
with message-id <[email protected]>
and subject line Bug#972785: fixed in zeromq3 4.3.4-3
has caused the Debian Bug report #972785,
regarding zeromq3: Include cmake files for cppzmq
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
972785: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=972785
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Source: zeromq3
Severity: normal
Tags: patch

src:zeromq3 and libzmq3-dev currently embed headers from the separate
cppzmq repository. However, the associated cmake files are not included,
which means when trying to build downstream projects which use cppzmq
and cmake, it's necessary to hack the buildsystem or embed the cmake
files from cppzmq.

I've included a patch (against 4.3.3-2) which adds these files to the
source package and libzmq3-dev. Specifically:

 * move the existing cppzmq files (zmq.hpp, zmq_addon.hpp) to
   debian/cppzmq/ and add the cmake files from cppzmq 4.6.0
 * add Provides: cppzmq-dev to libzmq3-dev, which would hopefully make
   it easier to split the packages in future
 * build-depend on cmake, and add an override after dh_auto_install to
   process and install the cmake.in files from cppzmq 

I appreciate this is a larger change than #951135. Other options would be to

* continue to bundle cppzmq in a common source package, but use
  multiple upstream tarballs so cppzmq is a more obvious component and
  the embedded files can be more readily updated together.
* split cppzmq into a separate source package. Some downstream
  dependencies would need to be fixed. Codesearch suggests gnuradio,
  libopenshot, thrift, tango, ignition-transport, horizon-eda

Gordon
From 5c8f7f94d1e62a8a51bf73484493d9ae2e332a4d Mon Sep 17 00:00:00 2001
From: Gordon Ball <[email protected]>
Date: Tue, 15 Sep 2020 08:52:10 +0000
Subject: [PATCH] Add cppzmq cmake files

---
 debian/changelog                              |  10 ++
 debian/control                                |   5 +-
 debian/copyright                              |   6 +-
 debian/cppzmq/CMakeLists.txt                  | 102 ++++++++++++++++++
 debian/cppzmq/cmake/DetectCPPZMQVersion.cmake |   8 ++
 debian/cppzmq/cppzmqConfig.cmake.in           |  36 +++++++
 .../cppzmq/libzmq-pkg-config/FindZeroMQ.cmake |  26 +++++
 debian/{ => cppzmq}/zmq.hpp                   |   0
 debian/{ => cppzmq}/zmq_addon.hpp             |   0
 debian/libzmq3-dev.install                    |   3 +-
 debian/rules                                  |   9 ++
 11 files changed, 199 insertions(+), 6 deletions(-)
 create mode 100644 debian/cppzmq/CMakeLists.txt
 create mode 100644 debian/cppzmq/cmake/DetectCPPZMQVersion.cmake
 create mode 100644 debian/cppzmq/cppzmqConfig.cmake.in
 create mode 100644 debian/cppzmq/libzmq-pkg-config/FindZeroMQ.cmake
 rename debian/{ => cppzmq}/zmq.hpp (100%)
 rename debian/{ => cppzmq}/zmq_addon.hpp (100%)

diff --git a/debian/changelog b/debian/changelog
index 072ba91..d020488 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,13 @@
+zeromq3 (4.3.3-3) UNRELEASED; urgency=medium
+
+  * In addition to the header files zmq.hpp and zmq_addon.hpp from cppzmq,
+    libzmq3-dev now includes the associated CMake files for cppzmq
+     + The embedded cppzmq source files have been moved to d/cppzmq/
+     + Add Provides: cppzmq-dev to libzmq3-dev
+     + Add cmake to Build-Depends
+
+ -- Gordon Ball <[email protected]>  Tue, 25 Aug 2020 14:32:39 +0000
+
 zeromq3 (4.3.3-2) unstable; urgency=medium
 
   * Backport upstream fix of broken zmq_ctx_get API.
diff --git a/debian/control b/debian/control
index cac55c3..7eb56ac 100644
--- a/debian/control
+++ b/debian/control
@@ -9,7 +9,8 @@ Build-Depends: debhelper-compat (= 11),
  libkrb5-dev,
  pkg-config,
  xmlto,
- asciidoc
+ asciidoc,
+ cmake
 Standards-Version: 4.5.0
 #Vcs-Browser: http://anonscm.debian.org/gitweb/?p=collab-maint/zeromq3.git
 #Vcs-Git: git://anonscm.debian.org/collab-maint/zeromq3.git
@@ -36,7 +37,7 @@ Section: libdevel
 Depends: libzmq5 (= ${binary:Version}), ${misc:Depends}, libpgm-dev (>= 
5.2.122~dfsg), libsodium-dev, libnorm-dev, libkrb5-dev
 Conflicts: libzmq-dev, libzmq5-dev
 Replaces: libzmq5-dev
-Provides: libzmq5-dev
+Provides: libzmq5-dev, cppzmq-dev
 Multi-Arch: same
 Description: lightweight messaging kernel (development files)
  ØMQ is a library which extends the standard socket interfaces with features
diff --git a/debian/copyright b/debian/copyright
index a7cd247..f11fb19 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -55,12 +55,14 @@ Copyright: 2014-    , Laszlo Boszormenyi (GCS) 
<[email protected]>
  2012, Alessandro Ghedini <[email protected]>
 License: LGPL-2.0+
 
-Files: debian/zmq.hpp
+Files: debian/cppzmq/*
 Copyright: 2009-2011, 250bpm s.r.o.
  2011, Botond Ballo
  2007-2013, iMatix Corporation
+ 2016, VOCA AS / Harald Nøkland
+ 2016-2020, ZeroMQ community
 License: MIT
-Comment: The C++ header was downloaded from https://github.com/zeromq/cppzmq
+Comment: Downloaded from https://github.com/zeromq/cppzmq
 
 License: LGPL-2.0+
  This package is free software; you can redistribute it and/or
diff --git a/debian/cppzmq/CMakeLists.txt b/debian/cppzmq/CMakeLists.txt
new file mode 100644
index 0000000..81e19e8
--- /dev/null
+++ b/debian/cppzmq/CMakeLists.txt
@@ -0,0 +1,102 @@
+cmake_minimum_required(VERSION 3.0.0)
+
+list (APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
+
+include (DetectCPPZMQVersion)
+
+project(cppzmq VERSION ${DETECTED_CPPZMQ_VERSION})
+
+find_package(ZeroMQ QUIET)
+
+# libzmq autotools install: fallback to pkg-config
+if(NOT ZeroMQ_FOUND)
+    message(STATUS "CMake libzmq package not found, trying again with 
pkg-config (normal install of zeromq)")
+    list (APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/libzmq-pkg-config)
+    find_package(ZeroMQ REQUIRED)
+endif()
+
+# TODO "REQUIRED" above should already cause a fatal failure if not found, but 
this doesn't seem to work
+if(NOT ZeroMQ_FOUND)
+    message(FATAL_ERROR "ZeroMQ was not found, neither as a CMake package nor 
via pkg-config")
+endif()
+
+if (ZeroMQ_FOUND AND (NOT TARGET libzmq OR NOT TARGET libzmq-static))
+  message(FATAL_ERROR "ZeroMQ version not supported!")
+endif()
+
+if (EXISTS "${CMAKE_SOURCE_DIR}/.git")
+    OPTION (ENABLE_DRAFTS "Build and install draft classes and methods" ON)
+else ()
+    OPTION (ENABLE_DRAFTS "Build and install draft classes and methods" OFF)
+endif ()
+if (ENABLE_DRAFTS)
+    ADD_DEFINITIONS (-DZMQ_BUILD_DRAFT_API)
+    set (pkg_config_defines "-DZMQ_BUILD_DRAFT_API=1")
+else (ENABLE_DRAFTS)
+    set (pkg_config_defines "")
+endif (ENABLE_DRAFTS)
+
+message(STATUS "cppzmq v${cppzmq_VERSION}")
+
+set(CPPZMQ_HEADERS
+    zmq.hpp
+    zmq_addon.hpp
+)
+
+foreach (target cppzmq cppzmq-static)
+  add_library(${target} INTERFACE)
+  target_include_directories(${target} INTERFACE 
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
+                                                 $<INSTALL_INTERFACE:include>)
+endforeach()
+
+target_link_libraries(cppzmq INTERFACE libzmq)
+target_link_libraries(cppzmq-static INTERFACE libzmq-static)
+
+include(GNUInstallDirs)
+include(CMakePackageConfigHelpers)
+
+install(TARGETS cppzmq cppzmq-static
+        EXPORT ${PROJECT_NAME}-targets)
+
+install(FILES ${CPPZMQ_HEADERS}
+        DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
+
+# GNUInstallDirs "DATADIR" wrong here; CMake search path wants "share".
+set(CPPZMQ_CMAKECONFIG_INSTALL_DIR "share/cmake/${PROJECT_NAME}" CACHE STRING 
"install path for cppzmqConfig.cmake")
+
+configure_file(libzmq-pkg-config/FindZeroMQ.cmake
+               libzmq-pkg-config/FindZeroMQ.cmake
+               COPYONLY)
+
+export(EXPORT ${PROJECT_NAME}-targets
+     FILE "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Targets.cmake")
+configure_package_config_file(${PROJECT_NAME}Config.cmake.in
+                              
"${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake"
+                              INSTALL_DESTINATION 
${CPPZMQ_CMAKECONFIG_INSTALL_DIR})
+# Workaround until ARCH_INDEPENDENT flag can be used with cmake 3.14.
+# The ConigVersion.cmake file contains checks for the architecture is was
+# generated on, which can cause problems for header only libraries
+# used with e.g. the Conan package manager. Since it is header only we
+# can/should omit those checks.
+set(CPPZMQ_SIZEOF_VOID_P ${CMAKE_SIZEOF_VOID_P})
+set(CMAKE_SIZEOF_VOID_P "") # a simple unset is not sufficient
+write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake
+                                 VERSION ${CPPZMQ_VERSION}
+                                 COMPATIBILITY AnyNewerVersion)
+set(CMAKE_SIZEOF_VOID_P ${CPPZMQ_SIZEOF_VOID_P})
+
+install(EXPORT ${PROJECT_NAME}-targets
+        FILE ${PROJECT_NAME}Targets.cmake
+        DESTINATION ${CPPZMQ_CMAKECONFIG_INSTALL_DIR})
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake
+              ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake
+              DESTINATION ${CPPZMQ_CMAKECONFIG_INSTALL_DIR})
+install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/libzmq-pkg-config/FindZeroMQ.cmake
+              DESTINATION ${CPPZMQ_CMAKECONFIG_INSTALL_DIR}/libzmq-pkg-config)
+
+option(CPPZMQ_BUILD_TESTS "Whether or not to build the tests" ON)
+
+if (CPPZMQ_BUILD_TESTS)
+    enable_testing()
+    add_subdirectory(tests)
+endif()
diff --git a/debian/cppzmq/cmake/DetectCPPZMQVersion.cmake 
b/debian/cppzmq/cmake/DetectCPPZMQVersion.cmake
new file mode 100644
index 0000000..99ed9bf
--- /dev/null
+++ b/debian/cppzmq/cmake/DetectCPPZMQVersion.cmake
@@ -0,0 +1,8 @@
+
+file(READ "${CMAKE_CURRENT_SOURCE_DIR}/zmq.hpp" _CPPZMQ_H_CONTENTS)
+string(REGEX REPLACE ".*#define CPPZMQ_VERSION_MAJOR ([0-9]+).*" "\\1" 
DETECTED_CPPZMQ_VERSION_MAJOR "${_CPPZMQ_H_CONTENTS}")
+string(REGEX REPLACE ".*#define CPPZMQ_VERSION_MINOR ([0-9]+).*" "\\1" 
DETECTED_CPPZMQ_VERSION_MINOR "${_CPPZMQ_H_CONTENTS}")
+string(REGEX REPLACE ".*#define CPPZMQ_VERSION_PATCH ([0-9]+).*" "\\1" 
DETECTED_CPPZMQ_VERSION_PATCH "${_CPPZMQ_H_CONTENTS}")
+set(DETECTED_CPPZMQ_VERSION 
"${DETECTED_CPPZMQ_VERSION_MAJOR}.${DETECTED_CPPZMQ_VERSION_MINOR}.${DETECTED_CPPZMQ_VERSION_PATCH}")
+
+message(STATUS "Detected CPPZMQ Version - ${DETECTED_CPPZMQ_VERSION}")
diff --git a/debian/cppzmq/cppzmqConfig.cmake.in 
b/debian/cppzmq/cppzmqConfig.cmake.in
new file mode 100644
index 0000000..f596517
--- /dev/null
+++ b/debian/cppzmq/cppzmqConfig.cmake.in
@@ -0,0 +1,36 @@
+# cppzmq cmake module
+#
+# The following import targets are created
+#
+# ::
+#
+#   cppzmq-static
+#   cppzmq
+#
+# This module sets the following variables in your project::
+#
+# cppzmq_FOUND - true if cppzmq found on the system
+# cppzmq_INCLUDE_DIR - the directory containing cppzmq headers
+# cppzmq_LIBRARY - the ZeroMQ library for dynamic linking
+# cppzmq_STATIC_LIBRARY - the ZeroMQ library for static linking
+
+@PACKAGE_INIT@
+
+include(CMakeFindDependencyMacro)
+find_package(ZeroMQ QUIET)
+
+# libzmq autotools install: fallback to pkg-config
+if(NOT ZeroMQ_FOUND)
+    list (APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/libzmq-pkg-config)
+    find_package(ZeroMQ REQUIRED)
+endif()
+
+if(NOT ZeroMQ_FOUND)
+    message(FATAL_ERROR "ZeroMQ was NOT found!")
+endif()
+
+if(NOT TARGET @PROJECT_NAME@)
+    include("${CMAKE_CURRENT_LIST_DIR}/@[email protected]")
+    get_target_property(@PROJECT_NAME@_INCLUDE_DIR cppzmq 
INTERFACE_INCLUDE_DIRECTORIES)
+endif()
+
diff --git a/debian/cppzmq/libzmq-pkg-config/FindZeroMQ.cmake 
b/debian/cppzmq/libzmq-pkg-config/FindZeroMQ.cmake
new file mode 100644
index 0000000..1b84c95
--- /dev/null
+++ b/debian/cppzmq/libzmq-pkg-config/FindZeroMQ.cmake
@@ -0,0 +1,26 @@
+set(PKG_CONFIG_USE_CMAKE_PREFIX_PATH ON)
+find_package(PkgConfig)
+pkg_check_modules(PC_LIBZMQ QUIET libzmq)
+
+set(ZeroMQ_VERSION ${PC_LIBZMQ_VERSION})
+find_library(ZeroMQ_LIBRARY NAMES libzmq.so libzmq.dylib libzmq.dll
+             PATHS ${PC_LIBZMQ_LIBDIR} ${PC_LIBZMQ_LIBRARY_DIRS})
+find_library(ZeroMQ_STATIC_LIBRARY NAMES libzmq-static.a libzmq.a libzmq.dll.a
+             PATHS ${PC_LIBZMQ_LIBDIR} ${PC_LIBZMQ_LIBRARY_DIRS})
+
+if(ZeroMQ_LIBRARY OR ZeroMQ_STATIC_LIBRARY)
+    set(ZeroMQ_FOUND ON)
+endif()
+
+if (TARGET libzmq)
+    # avoid errors defining targets twice
+    return()
+endif()
+
+add_library(libzmq SHARED IMPORTED)
+set_property(TARGET libzmq PROPERTY INTERFACE_INCLUDE_DIRECTORIES 
${PC_LIBZMQ_INCLUDE_DIRS})
+set_property(TARGET libzmq PROPERTY IMPORTED_LOCATION ${ZeroMQ_LIBRARY})
+
+add_library(libzmq-static STATIC IMPORTED ${PC_LIBZMQ_INCLUDE_DIRS})
+set_property(TARGET libzmq-static PROPERTY INTERFACE_INCLUDE_DIRECTORIES 
${PC_LIBZMQ_INCLUDE_DIRS})
+set_property(TARGET libzmq-static PROPERTY IMPORTED_LOCATION 
${ZeroMQ_STATIC_LIBRARY})
diff --git a/debian/zmq.hpp b/debian/cppzmq/zmq.hpp
similarity index 100%
rename from debian/zmq.hpp
rename to debian/cppzmq/zmq.hpp
diff --git a/debian/zmq_addon.hpp b/debian/cppzmq/zmq_addon.hpp
similarity index 100%
rename from debian/zmq_addon.hpp
rename to debian/cppzmq/zmq_addon.hpp
diff --git a/debian/libzmq3-dev.install b/debian/libzmq3-dev.install
index d984009..a1e6692 100644
--- a/debian/libzmq3-dev.install
+++ b/debian/libzmq3-dev.install
@@ -2,5 +2,4 @@ usr/include/*
 usr/lib/*/libzmq.a
 usr/lib/*/libzmq.so
 usr/lib/*/pkgconfig/libzmq.pc
-debian/zmq.hpp usr/include
-debian/zmq_addon.hpp usr/include
+usr/share/cmake
diff --git a/debian/rules b/debian/rules
index ae2707b..e59dba0 100755
--- a/debian/rules
+++ b/debian/rules
@@ -20,6 +20,15 @@ override_dh_auto_configure:
        dh_auto_configure -- --with-pgm --with-libsodium --with-norm=yes \
                --with-libgssapi_krb5=yes
 
+override_dh_auto_install:
+       dh_auto_install
+       # configure and build cppzmq cmake files after libzmq is installed
+       # in the package build dir, which we can then use as the cmake prefix
+       # so that the library is found
+       dh_auto_configure --buildsystem=cmake --sourcedir=debian/cppzmq -- 
-DCPPZMQ_BUILD_TESTS=OFF -DCMAKE_PREFIX_PATH=../../debian/tmp/usr
+       dh_auto_build --buildsystem=cmake --sourcedir=debian/cppzmq
+       dh_auto_install --buildsystem=cmake --sourcedir=debian/cppzmq
+
 override_dh_auto_test:
 ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
 ifneq ($(DO_TEST), no)
-- 
2.28.0


--- End Message ---
--- Begin Message ---
Source: zeromq3
Source-Version: 4.3.4-3
Done: Laszlo Boszormenyi (GCS) <[email protected]>

We believe that the bug you reported is fixed in the latest version of
zeromq3, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to [email protected],
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Laszlo Boszormenyi (GCS) <[email protected]> (supplier of updated zeromq3 package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [email protected])


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Format: 1.8
Date: Mon, 15 Aug 2022 18:40:34 +0200
Source: zeromq3
Architecture: source
Version: 4.3.4-3
Distribution: unstable
Urgency: medium
Maintainer: Laszlo Boszormenyi (GCS) <[email protected]>
Changed-By: Laszlo Boszormenyi (GCS) <[email protected]>
Closes: 972785
Changes:
 zeromq3 (4.3.4-3) unstable; urgency=medium
 .
   * Remove zmq{,_addon}.hpp as these provided by cppzmq-dev from now on
     (closes: #972785).
Checksums-Sha1:
 2e853d523417a8c8aa74e93ee8f14dd810fecc42 1873 zeromq3_4.3.4-3.dsc
 a10343faf7a503582181acdf36e5d1f0c2d22430 10856 zeromq3_4.3.4-3.debian.tar.xz
Checksums-Sha256:
 4b555fed5ede5f2ca7fd647efa4a1674e3a66c6873b9e4bf9ac090673ec9ae5b 1873 
zeromq3_4.3.4-3.dsc
 42b8ea92f09f61b2065dc304cce2886a621511ce5f50047189f112468f20b46a 10856 
zeromq3_4.3.4-3.debian.tar.xz
Files:
 1ca5dc0d7fc0ded8abeb28ddb0348031 1873 libs optional zeromq3_4.3.4-3.dsc
 a6bda14dee9ed25d17ed3e6dab8f2048 10856 libs optional 
zeromq3_4.3.4-3.debian.tar.xz

-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEEfYh9yLp7u6e4NeO63OMQ54ZMyL8FAmL6evgACgkQ3OMQ54ZM
yL/D+A/9FFMXObj0RokFzlxHdj4fMKvtnJ3QTefyV0xiL9zi4oMUAdBzEI3D2l1s
Ycg49EHhH9/VIuN48dfoIX64dtMnWiZpAapF9pqjokfJb1qWJ+4DJEre6YzqL2Bl
y0nBoTjM6tNENnT+YZeNBNeL8ZY20dA9cd5Xz5+lMAUEvZGZG5BeCHvQ0pEJNLgw
++0VSYzg/e9U7rqU9K0kNOrYlxw/IeC1FmZDg4DMg1+COzm2xdfkFXi9usktXiW7
LfK3h9du4f+z6K+oiCCG8NIcFDLdwnCTVYRmhGi+v5fWQy3pxNGzc+eD2Q4sqPaj
agCANJNl9VSQHQIU+xURe8I72RuBqN6mWU/SSeuCrzDUqGTswioRUfLZx2YMRcC+
NqvAZYJVVdNwBZBSX0Kruf0krTnbpwYwWP7+dYGdw6OJnyTbJn3kTHwW3DkotYBD
QcieGPpr1k68Kxu6I1hyC1GBBrwZyhdyLcT21JYMJ/SKPhxV7sTRAklIvIilQkwO
jUMz1YG42nCd2CsNROBCMd1GdmicmIBOBXwIcL8OinBfpTsXJbZzeRPerJCNOtpo
L7fYj8M5+CQibRFtRHHapxDm+ELoaBQ6lUVF2hIGhn/TebOn1W0YdS3rm9L1l3Hq
2J5RYOSr43SnZXLaWm6ALJ1N98CqyAqifH9k9Y1OoGVvjkbnx7Y=
=zsnm
-----END PGP SIGNATURE-----

--- End Message ---

Reply via email to