Difference between revisions of "Mosquitto from Source"

From Da Nerd Mage Wiki
Jump to navigation Jump to search
Line 51: Line 51:


* <code>sudo make install</code>
* <code>sudo make install</code>
== '''<span style="color: rgb(132, 63, 161);">Enable it as a systemd service:</span>''' ==
* <code>sudo cp service/systemd/mosquitto.service.simple /etc/systemd/system/mosquitto.service</code>
* <code>sudo vi /etc/systemd/system/mosquitto.service</code>
Fix the location in line 8.
The install step on Debian puts the executable in '''/usr/local/sbin''' not '''/usr/sbin'''
* <code>sudo systemctl daemon-reload</code>
* <code>sudo systemctl restart mosquitto.service</code>
= '''<span style="color: rgb(186, 55, 42); text-decoration: underline;">To be done:</span>'''=
= '''<span style="color: rgb(186, 55, 42); text-decoration: underline;">To be done:</span>'''=



Revision as of 19:39, 2 March 2024

The required tools:

  • apt install git build-essential autoconf cmake

Get the source:

  • git clone https://github.com/eclipse/mosquitto.git

The prerequisites:

  • apt install libc-ares-dev libwebsockets-dev libssl-dev xsltproc docbook-xsl libsystemd-dev libwrap0-dev openssl
  • # cJSON
    • git clone https://github.com/DaveGamble/cJSON
    • cd cJSON
    • mkdir build
    • cd build
    • cmake ..
    • make
    • sudo make install
    • cd ../..
  • # uthash / utlist
    • git clone https://github.com/troydhanson/uthash
    • cp uthash/src/* mosquitto/include
  • # For testing
    • apt install python3-psutil
    • git clone https://gitlab.com/cunity/cunit.git
    • cd cunit
    • mkdir local-build
    • cd local-build
    • cmake ..
    • cmake --build .
    • sudo make install
    • cd ../..

Build it:

  • cd mosquitto
  • make

Test it:

  • make test

or

  • make check

Note: There are a fairly large number of tests that bring this to a grinding halt unless you comment them out. MUCH more research is needed...

24/1474 tests fail...

18 of those make the test procedure halt...

Install it:

  • sudo make install

Enable it as a systemd service:

  • sudo cp service/systemd/mosquitto.service.simple /etc/systemd/system/mosquitto.service
  • sudo vi /etc/systemd/system/mosquitto.service

Fix the location in line 8.

The install step on Debian puts the executable in /usr/local/sbin not /usr/sbin

  • sudo systemctl daemon-reload
  • sudo systemctl restart mosquitto.service

To be done:

Configure it:

Use it: