tarantool / mqtt

Tarantool MQTT client
tarantool.org
BSD 2-Clause "Simplified" License
38 stars 10 forks source link

rocks: unable to install with tarantoolctl rocks on Linux #44

Closed vr009 closed 2 years ago

vr009 commented 2 years ago

The problem from #39 is solved by adding EXCLUDE_FROM_ALL option.

On any platforms many targets from subdirectories are included into make command by default. They are not necessary to build driver.{so|dylib}. EXCLUDE_FROM_ALL option disables all targets at the beginning and only targets which are explicitly added to mqtt dependencies will be built.

Additionally static build for rocks set by default.

Fixes #39

ligurio commented 2 years ago

The problem from #39 is solved by adding EXCLUDE_FROM_ALL option.

I see that issue #39 collects a number of problems:

  1. installation of /usr/local/etc/mosquitto requires administrative privileges
  2. error on linking executable mosquitto_rr

Seems your commit solves only the first problem. What about second one?

ligurio commented 2 years ago

Additionally static build for rocks set by default.

What for?

vr009 commented 2 years ago

I see that issue #39 collects a number of problems:

  1. installation of /usr/local/etc/mosquitto requires administrative privileges
  2. error on linking executable mosquitto_rr

Seems your commit solves only the first problem. What about second one?

  1. The requirement of administrative privileges was caused by some internal targets from libmosquitto subdirectories. They are not necessary to build module's driver. EXCLUDE_FROM_ALL option disables all the targets in current subdirectory by default. So those targets, which are explicitly added to mqtt dependencies, will be built.
  2. Error on linking executable mosquitto_rr was solved here: eclipse/mosquitto#1453. We should update mosquitto to at least 1.6.8.
vr009 commented 2 years ago

Additionally static build for rocks set by default.

What for?

The idea was, that installation from rocks is working everywhere without need to install any library manually. That is default behavior. But it is still possible to build the module with additional options for CMake, if it is needed.

ligurio commented 2 years ago

Additionally static build for rocks set by default.

What for?

The idea was, that installation from rocks is working everywhere without need to install any library manually. That is default behavior. But it is still possible to build the module with additional options for CMake, if it is needed.

Let's add explanation to a commit message.

vr009 commented 2 years ago

Additionally static build for rocks set by default.

What for?

The idea was, that installation from rocks is working everywhere without need to install any library manually. That is default behavior. But it is still possible to build the module with additional options for CMake, if it is needed.

Let's add explanation to a commit message.

Done.