Opened 15 months ago
Last modified 14 months ago
#67874 assigned update
mosquitto: update to 2.0.15 — at Version 4
Reported by: | danh1979 | Owned by: | slewsys (Andrew L. Moore) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.8.1 |
Keywords: | haspatch | Cc: | slewsys (Andrew L. Moore) |
Port: | mosquitto |
Description (last modified by danh1979)
This was tested on Ventura 13.5 on M2 Pro by creating my own local Portfile and installing it from source. After some Internet-search-aided debugging, I found that I needed to:
- add libcjson dependency
- deal with missing symbols via the extra linker flag
- deal with an xslt error by installing docbook XSL
Code highlighting:
-
net/mosquitto/Portfile
diff --git a/net/mosquitto/Portfile b/net/mosquitto/Portfile index 61e7927e..5271927c 100644
a b PortSystem 1.0 4 4 PortGroup cmake 1.1 5 5 6 6 name mosquitto 7 version 2.0. 98 revision 17 version 2.0.15 8 revision 0 9 9 10 10 categories net devel 11 11 platforms darwin … … long_description \ 21 21 both C and C++ client libraries. 22 22 23 23 homepage https://mosquitto.org 24 master_sites http://mosquitto.org/files/source/24 master_sites ${homepage}/files/source/ 25 25 26 checksums rmd160 6925455f51b6c79ebd160aba2f3709864aa5c05d\27 sha256 1b8553ef64a1cf5e4f4cfbe098330ae612adccd3d37f35b2db6f6fab501b01d4\28 size 7 5787826 checksums rmd160 c669450aff623dd5c9c5e2b6306975139ea95117 \ 27 sha256 4735b1d32e3f91c7a8896741d88a3022e89730a1ee897946decfa0df27039ac6 \ 28 size 792632 29 29 30 30 depends_build-append \ 31 path:bin/xsltproc:libxslt 31 path:bin/xsltproc:libxslt \ 32 port:docbook-xsl-nons 32 33 33 34 depends_lib port:c-ares \ 35 port:libcjson \ 34 36 port:libwebsockets \ 35 37 port:tcp_wrappers \ 36 38 path:lib/libssl.dylib:openssl … … depends_lib port:c-ares \ 38 40 depends_test-append \ 39 41 port:python27 40 42 43 patchfiles CMAKE_MODULE_LINKER_FLAGS.patch 44 41 45 configure.args-append \ 42 46 -DUSE_LIBWRAP:BOOL=ON \ 43 47 -DWITH_SRV:BOOL=ON \ -
new file net/mosquitto/files/CMAKE_MODULE_LINKER_FLAGS.patch
diff --git a/net/mosquitto/files/CMAKE_MODULE_LINKER_FLAGS.patch b/net/mosquitto/files/CMAKE_MODULE_LINKER_FLAGS.patch new file mode 100644 index 00000000..ec3044ea
- + 1 --- CMakeLists.txt.orig 2023-08-03 23:00:17 2 +++ CMakeLists.txt 2023-08-03 23:00:13 3 @@ -20,7 +20,7 @@ 4 endif (WIN32) 5 6 if(APPLE) 7 - set(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "${CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS} -undefined dynamic_lookup") 8 + set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -undefined dynamic_lookup") 9 endif(APPLE) 10 11 include(GNUInstallDirs) 12
Change History (4)
comment:1 Changed 15 months ago by ryandesign (Ryan Carsten Schmidt)
Owner: | set to slewsys |
---|---|
Status: | new → assigned |
comment:2 Changed 14 months ago by ryandesign (Ryan Carsten Schmidt)
Summary: | update mosquitto to 2.0.15 → mosquitto: update to 2.0.15 |
---|
comment:3 Changed 14 months ago by danh1979
Description: | modified (diff) |
---|
I updated the patch with the revision
and master_sites
suggestions.
Regarding -undefined dynamic_lookup
, it seems there are some plugins in mosquitto, written add_library(targetname MODULE ...)
in cmake, where targetname
is one of these three:
mosquitto_dynamic_security
mosquitto_message_timestamp
mosquitto_payload_modification
These don't compile without adding -DCMAKE_MODULE_LINKER_FLAGS="-undefined dynamic_lookup"
.
Prompted by your suggestion, and then learning about cmake-1.1.tcl
and recreating a macports-equivalent build environment, I searched the mosquitto source and found
https://github.com/eclipse/mosquitto/blob/v2.0.15/CMakeLists.txt#L22
If I change this to
-
CMakeLists.txt
diff --git a/CMakeLists.txt b/CMakeLists.txt index b8913c2d..145f6255 100644
a b if (WIN32) 20 20 endif (WIN32) 21 21 22 22 if(APPLE) 23 set(CMAKE_ SHARED_LIBRARY_CREATE_C_FLAGS "${CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS} -undefined dynamic_lookup")23 set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -undefined dynamic_lookup") 24 24 endif(APPLE) 25 25 26 26 include(GNUInstallDirs)
... then mosquitto builds without -DCMAKE_MODULE_LINKER_FLAGS="-undefined dynamic_lookup"
fed on the cmake command line.
comment:4 Changed 14 months ago by danh1979
Description: | modified (diff) |
---|
modified patch for this port to use a patch for mosquitto's CMakeLists.txt instead of an extra command line arg
revision
should drop to0
when theversion
is increased.http://mosquitto.org redirects to https://mosquitto.org so
master_sites
should be changed to${homepage}/files/source/
.Needing to specify
-undefined dynamic_lookup
manually is surprising and suggests a bug in the build system. What error did you get before adding that? Did you file a bug report with upstream? Please provide its URL.