Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Conan version does not support tls mode #962

Open
MateuszMiekicki opened this issue Dec 4, 2022 · 4 comments
Open

Conan version does not support tls mode #962

MateuszMiekicki opened this issue Dec 4, 2022 · 4 comments

Comments

@MateuszMiekicki
Copy link

MateuszMiekicki commented Dec 4, 2022

I installed the versions from the package manager and cannot compile the examples with TLS. Some files are missing. Is it possible to add an option to make this possible? https://conan.io/center/redboltz-mqtt_cpp

Logs:
[1/2] Building CXX object packages/broker/mqtt/src/CMakeFiles/mqtt.dir/Mqtt.cc.obj
FAILED: packages/broker/mqtt/src/CMakeFiles/mqtt.dir/Mqtt.cc.obj
C:\msys64\mingw64\bin\c++.exe -DBOOST_ALL_NO_LIB -DBOOST_STACKTRACE_USE_NOOP -DBOOST_STACKTRACE_USE_WINDBG -DBOOST_STACKTRACE_USE_WINDBG_CACHED -Dmqtt_EXPORTS -IC:/Users/haven/Desktop/terrarium/packages/broker/mqtt/src/../include -isystem C:/Users/haven/.conan/data/redboltz-mqtt_cpp/13.0.0///package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/include -isystem C:/.conan/f490c6/1/include -isystem C:/Users/haven/.conan/data/bzip2/1.0.8///package/d16a91eadaaf5829b928b12d2f836ff7680d3df5/include -isystem C:/Users/haven/.conan/data/zlib/1.2.13///package/3fb49604f9c2f729b85ba3115852006824e72cab/include -g -Werror -Wall -Wduplicated-cond -Wformat=2 -Weffc++ -Wdouble-promotion -Wuseless-cast -Wnull-dereference -Wlogical-op -Wduplicated-branches -Wmisleading-indentation -Wsign-conversion -Wpedantic -Wconversion -Woverloaded-virtual -Wunused -Wextra -Wshadow -Wnon-virtual-dtor -pedantic -Wold-style-cast -Wcast-align -Wundef -Wpointer-arith -Wstrict-overflow=5 -Wswitch-default -Wunreachable-code -g3 -O0 -std=c++20 -MD -MT packages/broker/mqtt/src/CMakeFiles/mqtt.dir/Mqtt.cc.obj -MF packages\broker\mqtt\src\CMakeFiles\mqtt.dir\Mqtt.cc.obj.d -o packages/broker/mqtt/src/CMakeFiles/mqtt.dir/Mqtt.cc.obj -c C:/Users/haven/Desktop/terrarium/packages/broker/mqtt/src/Mqtt.cc
C:/Users/haven/Desktop/terrarium/packages/broker/mqtt/src/Mqtt.cc:17:24: error: 'server_tls' in namespace 'mqtt' does not name a template type; did you mean 'server'?
17 | using con_t = MQTT_NS::server_tls<>::endpoint_t;
| ^~~~~~~~~~
| server
C:/Users/haven/Desktop/terrarium/packages/broker/mqtt/src/Mqtt.cc:18:34: error: 'con_t' was not declared in this scope; did you mean 'const'?
18 | using con_sp_t = std::shared_ptr<con_t>;
| ^~~~~
| const
C:/Users/haven/Desktop/terrarium/packages/broker/mqtt/src/Mqtt.cc:18:39: error: template argument 1 is invalid
18 | using con_sp_t = std::shared_ptr<con_t>;
| ^
C:/Users/haven/Desktop/terrarium/packages/broker/mqtt/src/Mqtt.cc:18:23: error: '' in namespace 'std' does not name a type
18 | using con_sp_t = std::shared_ptr<con_t>;
| ^~~~~~~~~~~~~~~~~
C:/Users/haven/Desktop/terrarium/packages/broker/mqtt/src/Mqtt.cc:21:36: error: 'con_sp_t' has not been declared
21 | sub_con(MQTT_NS::buffer topic, con_sp_t con, MQTT_NS::qos qos_value)
| ^~~~~~~~
C:/Users/haven/Desktop/terrarium/packages/broker/mqtt/src/Mqtt.cc:24:5: error: 'con_sp_t' does not name a type; did you mean 'const'?
24 | con_sp_t con;
| ^~~~~~~~
| const
C:/Users/haven/Desktop/terrarium/packages/broker/mqtt/src/Mqtt.cc: In constructor 'sub_con::sub_con(mqtt::buffer, int, mqtt::qos)':
C:/Users/haven/Desktop/terrarium/packages/broker/mqtt/src/Mqtt.cc:21:63: error: declaration of 'qos_value' shadows a member of 'sub_con' [-Werror=shadow]
21 | sub_con(MQTT_NS::buffer topic, con_sp_t con, MQTT_NS::qos qos_value)
| ^
C:/Users/haven/Desktop/terrarium/packages/broker/mqtt/src/Mqtt.cc:25:18: note: shadowed declaration is here
25 | MQTT_NS::qos qos_value;
| ^~~~~~~~~
C:/Users/haven/Desktop/terrarium/packages/broker/mqtt/src/Mqtt.cc:21:29: error: declaration of 'topic' shadows a member of 'sub_con' [-Werror=shadow]
21 | sub_con(MQTT_NS::buffer topic, con_sp_t con, MQTT_NS::qos qos_value)
| ^
C:/Users/haven/Desktop/terrarium/packages/broker/mqtt/src/Mqtt.cc:23:21: note: shadowed declaration is here
23 | MQTT_NS::buffer topic;
| ^~~~~
C:/Users/haven/Desktop/terrarium/packages/broker/mqtt/src/Mqtt.cc:22:35: error: class 'sub_con' does not have any field named 'con'
22 | :topic(std::move(topic)), con(std::move(con)), qos_value(qos_value) {}
| ^~~
C:/Users/haven/Desktop/terrarium/packages/broker/mqtt/src/Mqtt.cc: In constructor 'sub_con::sub_con(mqtt::buffer, int, mqtt::qos)':
C:/Users/haven/Desktop/terrarium/packages/broker/mqtt/src/Mqtt.cc:21:63: error: declaration of 'qos_value' shadows a member of 'sub_con' [-Werror=shadow]
21 | sub_con(MQTT_NS::buffer topic, con_sp_t con, MQTT_NS::qos qos_value)
| ^
C:/Users/haven/Desktop/terrarium/packages/broker/mqtt/src/Mqtt.cc:25:18: note: shadowed declaration is here
25 | MQTT_NS::qos qos_value;
| ^~~~~~~~~
C:/Users/haven/Desktop/terrarium/packages/broker/mqtt/src/Mqtt.cc:21:29: error: declaration of 'topic' shadows a member of 'sub_con' [-Werror=shadow]
21 | sub_con(MQTT_NS::buffer topic, con_sp_t con, MQTT_NS::qos qos_value)
| ^
C:/Users/haven/Desktop/terrarium/packages/broker/mqtt/src/Mqtt.cc:23:21: note: shadowed declaration is here
23 | MQTT_NS::buffer topic;
| ^~~~~
C:/Users/haven/Desktop/terrarium/packages/broker/mqtt/src/Mqtt.cc: In constructor 'sub_con::sub_con(mqtt::buffer, int, mqtt::qos)':
C:/Users/haven/Desktop/terrarium/packages/broker/mqtt/src/Mqtt.cc:21:63: error: declaration of 'qos_value' shadows a member of 'sub_con' [-Werror=shadow]
21 | sub_con(MQTT_NS::buffer topic, con_sp_t con, MQTT_NS::qos qos_value)
| ^
C:/Users/haven/Desktop/terrarium/packages/broker/mqtt/src/Mqtt.cc:25:18: note: shadowed declaration is here
25 | MQTT_NS::qos qos_value;
| ^~~~~~~~~
C:/Users/haven/Desktop/terrarium/packages/broker/mqtt/src/Mqtt.cc:21:29: error: declaration of 'topic' shadows a member of 'sub_con' [-Werror=shadow]
21 | sub_con(MQTT_NS::buffer topic, con_sp_t con, MQTT_NS::qos qos_value)
| ^
C:/Users/haven/Desktop/terrarium/packages/broker/mqtt/src/Mqtt.cc:23:21: note: shadowed declaration is here
23 | MQTT_NS::buffer topic;
| ^~~~~
In file included from C:/Users/haven/.conan/data/redboltz-mqtt_cpp/13.0.0///package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/include/mqtt/endpoint.hpp:28,
from C:/Users/haven/.conan/data/redboltz-mqtt_cpp/13.0.0///package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/include/mqtt/server.hpp:18,
from C:/Users/haven/.conan/data/redboltz-mqtt_cpp/13.0.0///package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/include/mqtt_server_cpp.hpp:9,
from C:/Users/haven/Desktop/terrarium/packages/broker/mqtt/src/Mqtt.cc:7:
C:/Users/haven/Desktop/terrarium/packages/broker/mqtt/src/Mqtt.cc: At global scope:
C:/Users/haven/Desktop/terrarium/packages/broker/mqtt/src/Mqtt.cc:39:51: error: 'con_sp_t' was not declared in this scope; did you mean 'const'?
39 | BOOST_MULTI_INDEX_MEMBER(sub_con, con_sp_t, con),
| ^~~~~~~~
C:/Users/haven/Desktop/terrarium/packages/broker/mqtt/src/Mqtt.cc:39:61: error: 'con' is not a member of 'sub_con'
39 | BOOST_MULTI_INDEX_MEMBER(sub_con, con_sp_t, con),
| ^~~
C:/Users/haven/Desktop/terrarium/packages/broker/mqtt/src/Mqtt.cc:39:17: error: template argument 2 is invalid
39 | BOOST_MULTI_INDEX_MEMBER(sub_con, con_sp_t, con),
| ^~~~~~~~~~~~~~~~~~~~~~~~
C:/Users/haven/Desktop/terrarium/packages/broker/mqtt/src/Mqtt.cc:39:17: error: template argument 3 is invalid
C:/Users/haven/Desktop/terrarium/packages/broker/mqtt/src/Mqtt.cc:41:13: error: template argument 2 is invalid
41 | >
| ^
C:/Users/haven/Desktop/terrarium/packages/broker/mqtt/src/Mqtt.cc:42:9: error: template argument 2 is invalid
42 | >,
| ^
C:/Users/haven/Desktop/terrarium/packages/broker/mqtt/src/Mqtt.cc:49:47: error: 'con_sp_t' was not declared in this scope; did you mean 'const'?
49 | BOOST_MULTI_INDEX_MEMBER(sub_con, con_sp_t, con)
| ^~~~~~~~
C:/Users/haven/Desktop/terrarium/packages/broker/mqtt/src/Mqtt.cc:49:57: error: 'con' is not a member of 'sub_con'
49 | BOOST_MULTI_INDEX_MEMBER(sub_con, con_sp_t, con)
| ^~~
C:/Users/haven/Desktop/terrarium/packages/broker/mqtt/src/Mqtt.cc:49:13: error: template argument 2 is invalid
49 | BOOST_MULTI_INDEX_MEMBER(sub_con, con_sp_t, con)
| ^~~~~~~~~~~~~~~~~~~~~~~~
C:/Users/haven/Desktop/terrarium/packages/broker/mqtt/src/Mqtt.cc:49:13: error: template argument 3 is invalid
C:/Users/haven/Desktop/terrarium/packages/broker/mqtt/src/Mqtt.cc:50:9: error: template argument 2 is invalid
50 | >
| ^
C:/Users/haven/Desktop/terrarium/packages/broker/mqtt/src/Mqtt.cc:51:5: error: template argument 1 is invalid
51 | >
| ^
C:/Users/haven/Desktop/terrarium/packages/broker/mqtt/src/Mqtt.cc:51:5: error: template argument 3 is invalid
C:/Users/haven/Desktop/terrarium/packages/broker/mqtt/src/Mqtt.cc:52:1: error: template argument 2 is invalid
52 | >;
| ^
C:/Users/haven/Desktop/terrarium/packages/broker/mqtt/src/Mqtt.cc:32:24: error: '' in namespace 'mi' does not name a type
32 | using mi_sub_con = mi::multi_index_container<
| ^~~~~~~~~~~~~~~~~~~~~~
33 | sub_con,
| ~~~~~~~~
34 | mi::indexed_by<
| ~~~~~~~~~~~~~~~
35 | mi::ordered_unique<
| ~~~~~~~~~~~~~~~~~~~
36 | mi::tag<tag_con_topic>,
| ~~~~~~~~~~~~~~~~~~~~~~~
37 | mi::composite_key<
| ~~~~~~~~~~~~~~~~~~
38 | sub_con,
| ~~~~~~~~
39 | BOOST_MULTI_INDEX_MEMBER(sub_con, con_sp_t, con),
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
40 | BOOST_MULTI_INDEX_MEMBER(sub_con, MQTT_NS::buffer, topic)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
41 | >
| ~
42 | >,
| ~~
43 | mi::ordered_non_unique<
| ~~~~~~~~~~~~~~~~~~~~~~~
44 | mi::tag<tag_topic>,
| ~~~~~~~~~~~~~~~~~~~
45 | BOOST_MULTI_INDEX_MEMBER(sub_con, MQTT_NS::buffer, topic)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
46 | >,
| ~~
47 | mi::ordered_non_unique<
| ~~~~~~~~~~~~~~~~~~~~~~~
48 | mi::tag<tag_con>,
| ~~~~~~~~~~~~~~~~~
49 | BOOST_MULTI_INDEX_MEMBER(sub_con, con_sp_t, con)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
50 | >
| ~
51 | >
| ~
52 | >;
| ~
C:/Users/haven/Desktop/terrarium/packages/broker/mqtt/src/Mqtt.cc:55:33: error: 'con_sp_t' was not declared in this scope; did you mean 'const'?
55 | inline void close_proc(std::set<con_sp_t>& cons, mi_sub_con& subs, con_sp_t const& con) {
| ^~~~~~~~
| const
C:/Users/haven/Desktop/terrarium/packages/broker/mqtt/src/Mqtt.cc:55:41: error: template argument 1 is invalid
55 | inline void close_proc(std::set<con_sp_t>& cons, mi_sub_con& subs, con_sp_t const& con) {
| ^
55 | inline void close_proc(std::set<con_sp_t>& cons, mi_sub_con& subs, con_sp_t const& con) {
| ^
C:/Users/haven/Desktop/terrarium/packages/broker/mqtt/src/Mqtt.cc:55:41: error: template argument 2 is invalid
C:/Users/haven/Desktop/terrarium/packages/broker/mqtt/src/Mqtt.cc:55:41: error: template argument 3 is invalid
C:/Users/haven/Desktop/terrarium/packages/broker/mqtt/src/Mqtt.cc:55:50: error: 'mi_sub_con' has not been declared
55 | inline void close_proc(std::set<con_sp_t>& cons, mi_sub_con& subs, con_sp_t const& con) {
| ^~~~~~~~~~
C:/Users/haven/Desktop/terrarium/packages/broker/mqtt/src/Mqtt.cc:55:68: error: 'con_sp_t' has not been declared
55 | inline void close_proc(std::set<con_sp_t>& cons, mi_sub_con& subs, con_sp_t const& con) {
| ^~~~~~~~C:/Users/haven/Desktop/terrarium/packages/broker/mqtt/src/Mqtt.cc: In function 'void close_proc(int&, int&, const int&)':
C:/Users/haven/Desktop/terrarium/packages/broker/mqtt/src/Mqtt.cc:56:10: error: request for member 'erase' in 'cons', which is of non-class type 'int'
56 | cons.erase(con); | ^~~~~
C:/Users/haven/Desktop/terrarium/packages/broker/mqtt/src/Mqtt.cc:58:22: error: request for member 'get' in 'subs', which is of non-class type 'int'
58 | auto& idx = subs.get<tag_con>();
| ^~~
C:/Users/haven/Desktop/terrarium/packages/broker/mqtt/src/Mqtt.cc:58:33: error: expected primary-expression before '>' token
58 | auto& idx = subs.get<tag_con>();
| ^
C:/Users/haven/Desktop/terrarium/packages/broker/mqtt/src/Mqtt.cc:58:35: error: expected primary-expression before ')' token
58 | auto& idx = subs.get<tag_con>();
| ^
cc1plus.exe: all warnings being treated as errors
ninja: build stopped: subcommand failed.

@redboltz
Copy link
Owner

redboltz commented Dec 5, 2022

I don't know much about conan.
mqtt_cpp has MQTT_USE_TLS option for cmake.
See

IF (MQTT_USE_TLS)
LIST (APPEND exec_PROGRAMS
tls_client.cpp
tls_client_with_sni.cpp
tls_server.cpp
tls_both.cpp
tls_both_client_cert.cpp
)
ENDIF ()

Maybe you need to add the option to conan.
If it is not possible I guess that conan repository should be fixed.
It is not a part of mqtt_cpp project. I'm not sure but you can send pull request to conan.

@MateuszMiekicki
Copy link
Author

Hi, little by little I succeed in adding the package for the newer package together with the flags.
conan-io/conan-center-index#14591

@redboltz
Copy link
Owner

Great work!
By the way, mqtt_cpp's preprosessor macro flags are documented https://github.com/redboltz/mqtt_cpp/wiki/Config
I'm not sure how it work with conan but it seems that you've already followed those flags on your pull request for conan.

@MateuszMiekicki
Copy link
Author

I have bundled all from c++ 17 into one, it seems to make sense to me. Plus I separated for TLS as well as websockets. If there's anything worth including, write away, I'll try to apply it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants