name: mosquitto
version: 2.0.22
summary: Eclipse Mosquitto MQTT broker
description: This is a message broker that supports version 5.0, 3.1.1, and 3.1 of the MQTT protocol.
    MQTT provides a method of carrying out messaging using a publish/subscribe
    model. It is lightweight, both in terms of bandwidth usage and ease of
    implementation. This makes it particularly useful at the edge of the network
    where a sensor or other simple device may be implemented using a microcontroller for
    example.
confinement: strict
grade: stable
base: core24

apps:
  mosquitto:
    command: launcher.sh
    daemon: simple
    restart-condition: always
    plugs: [home, network, network-bind]

  ctrl:
    command: usr/bin/mosquitto_ctrl
    plugs: [home, network]

  pub:
    command: usr/bin/mosquitto_pub
    plugs: [home, network]

  rr:
    command: usr/bin/mosquitto_rr
    plugs: [home, network]

  sub:
    command: usr/bin/mosquitto_sub
    plugs: [home, network]

  passwd:
    command: usr/bin/mosquitto_passwd
    plugs: [home]


parts:
  script:
    plugin: dump
    source: snap/local/
    prime:
      - default_config.conf
      - launcher.sh
  config:
    plugin: dump
    source: .
    prime:
      - mosquitto.conf


  mosquitto:
    plugin: make
    make-parameters: ["prefix=/usr", "WITH_WEBSOCKETS=yes", "WITH_ADNS=yes", 'CFLAGS="-Wall -ggdb -O2 -I$CRAFT_STAGE/include"']
    source: https://github.com/eclipse-mosquitto/mosquitto
    source-type: git

    build-packages:
      - libcjson-dev
      - libssl-dev
      - libwebsockets-dev
      - xsltproc
      - docbook-xsl
      - gcc
      - g++
    stage-packages:
      - ca-certificates
      - libcjson1
      - libssl3t64
      - libwebsockets19t64
    prime:
      - usr/sbin/mosquitto
      - usr/bin/mosquitto_ctrl
      - usr/bin/mosquitto_pub
      - usr/bin/mosquitto_rr
      - usr/bin/mosquitto_sub
      - usr/bin/mosquitto_passwd
      - usr/lib/libmosquitto.so*
      - usr/lib/mosquitto_dynamic_security.so*
      - usr/lib/*/libcjson.so*
      - usr/lib/*/libcrypto.so*
      - usr/lib/*/libssl.so*
      - usr/lib/*/libwebsockets.so*
      - usr/include/mosquitto.h
      - usr/include/mosquitto_broker.h
      - usr/include/mosquitto_plugin.h
      - usr/include/mqtt_protocol.h
