Skip to content

Commit

Permalink
czmq & libzmq: update to 4.2.1 & 4.3.5 respectively
Browse files Browse the repository at this point in the history
  • Loading branch information
benoit-pierre authored and Frenzie committed Aug 17, 2024
1 parent cd3ffc4 commit 99ddf05
Show file tree
Hide file tree
Showing 11 changed files with 108 additions and 197 deletions.
13 changes: 5 additions & 8 deletions ffi-cdecl/zeromq_cdecl.c
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@

#include "ffi-cdecl.h"

cdecl_type(zctx_t)
cdecl_type(zmsg_t)
cdecl_type(zhash_t)
cdecl_type(zsock_t)
Expand All @@ -19,13 +18,11 @@ cdecl_const(ZMQ_STREAM)
cdecl_func(zmq_getsockopt)
cdecl_func(zmq_send)

cdecl_func(zctx_new)
cdecl_func(zctx_destroy)

cdecl_func(zsocket_bind)
cdecl_func(zsocket_connect)
cdecl_func(zsocket_destroy)
cdecl_func(zsocket_new)
cdecl_func(zsock_bind)
cdecl_func(zsock_connect)
cdecl_func(zsock_destroy)
cdecl_func(zsock_new)
cdecl_func(zsock_resolve)

cdecl_func(zframe_data)
cdecl_func(zframe_destroy)
Expand Down
14 changes: 6 additions & 8 deletions ffi/zeromq_h.lua
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
local ffi = require("ffi")

ffi.cdef[[
typedef struct _zctx_t zctx_t;
typedef struct _zmsg_t zmsg_t;
typedef struct _zhash_t zhash_t;
typedef struct _zsock_t zsock_t;
Expand All @@ -13,12 +12,11 @@ static const int ZMQ_IDENTITY = 5;
static const int ZMQ_STREAM = 11;
int zmq_getsockopt(void *, int, void *, size_t *);
int zmq_send(void *, const void *, size_t, int);
zctx_t *zctx_new(void);
void zctx_destroy(zctx_t **);
int zsocket_bind(void *, const char *, ...);
int zsocket_connect(void *, const char *, ...);
void zsocket_destroy(zctx_t *, void *);
void *zsocket_new(zctx_t *, int);
int zsock_bind(zsock_t *, const char *, ...);
int zsock_connect(zsock_t *, const char *, ...);
void zsock_destroy(zsock_t **);
zsock_t *zsock_new(int);
void *zsock_resolve(void *);
unsigned char *zframe_data(zframe_t *);
void zframe_destroy(zframe_t **);
zframe_t *zframe_recv(void *);
Expand All @@ -33,7 +31,7 @@ int zmsg_send(zmsg_t **, void *);
size_t zmsg_size(zmsg_t *);
void zstr_free(char **);
int zstr_send(void *, const char *);
char *zhash_cursor(zhash_t *);
const char *zhash_cursor(zhash_t *);
void zhash_destroy(zhash_t **);
zhash_t *zhash_unpack(zframe_t *);
void zpoller_destroy(zpoller_t **);
Expand Down
28 changes: 19 additions & 9 deletions thirdparty/czmq/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,22 +1,32 @@
list(APPEND PATCH_FILES cmake_tweaks.patch)
if(NOT APPLE)
# patch: ignore limited broadcast address
list(APPEND PATCH_FILES zbeacon.patch)
# patch: add _DEFAULT_SOURCE define for glibc starting at version 2.20
list(APPEND PATCH_FILES czmq_default_source_define.patch)
if(ANDROID)
list(APPEND PATCH_FILES android.patch)
endif()

list(APPEND CMAKE_ARGS -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE})
list(APPEND CMAKE_ARGS
-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}
# Project options.
-DCZMQ_BUILD_STATIC=FALSE
-DENABLE_DRAFTS=FALSE
# Disable some dependencies (which will automatically
# disable the corresponding project optional features).
-DCMAKE_DISABLE_FIND_PACKAGE_libcurl=TRUE
-DCMAKE_DISABLE_FIND_PACKAGE_libmicrohttpd=TRUE
-DCMAKE_DISABLE_FIND_PACKAGE_lz4=TRUE
-DCMAKE_DISABLE_FIND_PACKAGE_nss=TRUE
-DCMAKE_DISABLE_FIND_PACKAGE_systemd=TRUE
-DCMAKE_DISABLE_FIND_PACKAGE_uuid=TRUE
)

list(APPEND BUILD_CMD COMMAND ninja czmq)

list(APPEND INSTALL_CMD COMMAND ${CMAKE_COMMAND} --install .)

append_shared_lib_install_commands(INSTALL_CMD czmq VERSION 1)
append_shared_lib_install_commands(INSTALL_CMD czmq VERSION 4)

external_project(
DOWNLOAD GIT 2a0ddbc4b2dde623220d7f4980ddd60e910cfa78
https://github.com/zeromq/czmq.git
DOWNLOAD URL 471e9ec120fc66a2fe2aae14359e3cfa
https://github.com/zeromq/czmq/releases/download/v4.2.1/czmq-4.2.1.tar.gz
PATCH_FILES ${PATCH_FILES}
CMAKE_ARGS ${CMAKE_ARGS}
BUILD_COMMAND ${BUILD_CMD}
Expand Down
10 changes: 10 additions & 0 deletions thirdparty/czmq/android.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -89,6 +89,7 @@
if(HAVE_CLOCK_GETTIME)
list(APPEND MORE_LIBRARIES -lrt)
endif()
+list(APPEND MORE_LIBRARIES -llog)

########################################################################
# ZMQ dependency
52 changes: 26 additions & 26 deletions thirdparty/czmq/cmake_tweaks.patch
Original file line number Diff line number Diff line change
@@ -1,41 +1,41 @@
--- i/CMakeLists.txt
+++ w/CMakeLists.txt
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -6,7 +6,7 @@
########################################################################
# Project setup
########################################################################
-cmake_minimum_required(VERSION 2.8)
-cmake_minimum_required(VERSION 2.8.12)
+cmake_minimum_required(VERSION 3.15)
project(czmq)
enable_language(C)
enable_testing()
@@ -64,6 +64,12 @@ if (MINGW)
set(MORE_LIBRARIES -lws2_32 -lrpcrt4 -liphlpapi)
@@ -123,6 +123,13 @@
set(MORE_LIBRARIES)
endif()

+if (LINUX)
+ set(THREADS_PREFER_PTHREAD_FLAG TRUE)
+ find_package(Threads REQUIRED)
+ set(MORE_LIBRARIES Threads::Threads)
+set(CMAKE_REQUIRED_LIBRARIES -lrt)
+check_symbol_exists(clock_gettime "time.h" HAVE_CLOCK_GETTIME)
+set(CMAKE_REQUIRED_LIBRARIES)
+if(HAVE_CLOCK_GETTIME)
+ list(APPEND MORE_LIBRARIES -lrt)
+endif()
+
list(APPEND CMAKE_MODULE_PATH "${SOURCE_DIR}")
set(OPTIONAL_LIBRARIES)
set(OPTIONAL_LIBRARIES_STATIC)
@@ -544,6 +549,7 @@
########################################################################
# zeromq depedency
# executables
########################################################################
@@ -103,7 +103,7 @@ set (czmq_headers
include/zstr.h
include/zsys.h
include/zuuid.h
- include/zgossip_msg.h
+ src/zgossip_msg.h
include/zctx.h
include/zmonitor.h
include/zmutex.h
@@ -159,6 +159,7 @@ set (czmq_sources
source_group ("Source Files" FILES ${czmq_sources})
add_library(czmq SHARED ${czmq_sources})
set_target_properties(czmq PROPERTIES DEFINE_SYMBOL "LIBCZMQ_EXPORTS")
+set_target_properties(czmq PROPERTIES VERSION 1)
target_link_libraries(czmq ${ZEROMQ_LIBRARIES} ${MORE_LIBRARIES})
+if(FALSE)
add_executable(
zmakecert
"${SOURCE_DIR}/src/zmakecert.c"
@@ -631,6 +637,7 @@
${OPTIONAL_LIBRARIES_STATIC}
)
endif()
+endif()

install(TARGETS czmq
########################################################################
# tests
14 changes: 0 additions & 14 deletions thirdparty/czmq/czmq_default_source_define.patch

This file was deleted.

48 changes: 0 additions & 48 deletions thirdparty/czmq/zbeacon.patch

This file was deleted.

32 changes: 11 additions & 21 deletions thirdparty/libzmq/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,43 +1,33 @@
list(APPEND PATCH_FILES
android.patch
cmake_tweaks.patch
)
list(APPEND PATCH_FILES cmake_tweaks.patch)
if(LEGACY OR POCKETBOOK)
list(APPEND PATCH_FILES disable_eventfd.patch)
endif()

list(APPEND CMAKE_ARGS
-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}
# Project options.
-DENABLE_DRAFTS=FALSE
-DWITH_DOC=FALSE
-DWITH_TWEETNACL=TRUE
-DWITH_LIBBSD=FALSE
-DZMQ_BUILD_FRAMEWORK=FALSE
-DZMQ_BUILD_TESTS=FALSE
# Disable some dependencies (which will automatically
# disable the corresponding project optional features).
-DCMAKE_DISABLE_FIND_PACKAGE_AsciiDoc=TRUE
)
if(NOT EMULATE_READER)
list(APPEND CMAKE_ARGS
-DZMQ_HAVE_SOCK_CLOEXEC_EXITCODE=1
-DZMQ_HAVE_SOCK_CLOEXEC_EXITCODE__TRYRUN_OUTPUT=
-DZMQ_HAVE_SO_KEEPALIVE_EXITCODE=1
-DZMQ_HAVE_SO_KEEPALIVE_EXITCODE__TRYRUN_OUTPUT=
-DZMQ_HAVE_TCP_KEEPCNT_EXITCODE=1
-DZMQ_HAVE_TCP_KEEPCNT_EXITCODE__TRYRUN_OUTPUT=
-DZMQ_HAVE_TCP_KEEPIDLE_EXITCODE=1
-DZMQ_HAVE_TCP_KEEPIDLE_EXITCODE__TRYRUN_OUTPUT=
-DZMQ_HAVE_TCP_KEEPINTVL_EXITCODE=1
-DZMQ_HAVE_TCP_KEEPINTVL_EXITCODE__TRYRUN_OUTPUT=
)
if(LEGACY OR POCKETBOOK)
list(APPEND CMAKE_ARGS -DPOLLER=epoll)
endif()

list(APPEND BUILD_CMD COMMAND ninja)

list(APPEND INSTALL_CMD COMMAND ${CMAKE_COMMAND} --install .)

append_shared_lib_install_commands(INSTALL_CMD zmq VERSION 4)
append_shared_lib_install_commands(INSTALL_CMD zmq VERSION 5)

external_project(
DOWNLOAD GIT 883e95b22e0bffffa72312ea1fec76199afbe458
https://github.com/zeromq/libzmq
DOWNLOAD URL ae933b1e98411fd7cb8309f9502d2737
https://github.com/zeromq/libzmq/releases/download/v4.3.5/zeromq-4.3.5.tar.gz
PATCH_FILES ${PATCH_FILES}
CMAKE_ARGS ${CMAKE_ARGS}
BUILD_COMMAND ${BUILD_CMD}
Expand Down
11 changes: 0 additions & 11 deletions thirdparty/libzmq/android.patch

This file was deleted.

66 changes: 21 additions & 45 deletions thirdparty/libzmq/cmake_tweaks.patch
Original file line number Diff line number Diff line change
@@ -1,49 +1,25 @@
--- i/CMakeLists.txt
+++ w/CMakeLists.txt
@@ -1,6 +1,6 @@
# CMake build script for ZeroMQ

-cmake_minimum_required(VERSION 2.8)
+cmake_minimum_required(VERSION 3.15)
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -2,9 +2,9 @@
project(ZeroMQ)

option(WITH_OPENPGM "Build with support for OpenPGM" OFF)
@@ -125,8 +125,6 @@ check_library_exists(iphlpapi printf "" HAVE_IPHLAPI) # GetAdaptersAddresses
check_cxx_symbol_exists(SO_PEERCRED sys/socket.h ZMQ_HAVE_SO_PEERCRED)
check_cxx_symbol_exists(LOCAL_PEERCRED sys/socket.h ZMQ_HAVE_LOCAL_PEERCRED)

-find_library(RT_LIBRARY rt)
-
find_package(Threads)


@@ -266,10 +264,6 @@ elseif(CMAKE_SYSTEM_NAME MATCHES "Darwin")
add_definitions(-D_DARWIN_C_SOURCE)
endif()

-set(CMAKE_PYTHON_VERSION 2.7 2.6 2.5 2.4)
-find_package(PythonInterp)
-find_package(AsciiDoc)
-
cmake_dependent_option(WITH_DOC "Build Reference Guide documentation(requires DocBook)" ON
"PYTHON_FOUND;ASCIIDOC_FOUND" OFF)

@@ -609,6 +603,7 @@ else()
else()
set_target_properties(libzmq PROPERTIES
OUTPUT_NAME "zmq"
+ VERSION 4
PUBLIC_HEADER "${public_headers}")
endif()
endif()
@@ -628,8 +623,8 @@ if(HAVE_IPHLAPI)
target_link_libraries(libzmq iphlpapi)
endif()

-if(RT_LIBRARY)
- target_link_libraries(libzmq ${RT_LIBRARY})
+if(HAVE_CLOCK_GETTIME)
+ target_link_libraries(libzmq -lrt)
if(${CMAKE_SYSTEM_NAME} STREQUAL Darwin)
- cmake_minimum_required(VERSION 3.0.2)
+ cmake_minimum_required(VERSION 3.15)
else()
- cmake_minimum_required(VERSION 2.8.12)
+ cmake_minimum_required(VERSION 2.15)
endif()

set(perf-tools local_lat
include(CheckIncludeFiles)
@@ -1469,6 +1469,10 @@
if(BUILD_SHARED)
target_link_libraries(libzmq ${CMAKE_THREAD_LIBS_INIT})

+ if(HAVE_CLOCK_GETTIME)
+ target_link_libraries(libzmq -lrt)
+ endif()
+
if(QNX)
target_link_libraries(libzmq -lsocket)
endif()
Loading

0 comments on commit 99ddf05

Please sign in to comment.