name: mosquitto
version: 1.6.9
summary: Eclipse Mosquitto MQTT broker
description: This is a message broker that supports version 3.1 and 3.1.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 an arduino for
    example.
confinement: strict
grade: stable

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

  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:
    after:
      - lws
    plugin: make
    make-parameters: ["prefix=/usr", "WITH_WEBSOCKETS=yes", "WITH_ADNS=yes", "CFLAGS=-Wall -ggdb -O2 -I$SNAPCRAFT_STAGE -D_GNU_SOURCE"]
    source: https://github.com/eclipse/mosquitto
    source-type: git

    build-packages:
      - libssl-dev
      - xsltproc
      - docbook-xsl
      - gcc
      - g++
    stage-packages:
      - libssl1.0.0
      - ca-certificates
    prime:
      - usr/sbin/mosquitto
      - usr/bin/mosquitto_pub
      - usr/bin/mosquitto_rr
      - usr/bin/mosquitto_sub
      - usr/bin/mosquitto_passwd
      - usr/lib/libmosquitto.so*
      - lib/*-linux-gnu/libcrypto.so*
      - lib/*-linux-gnu/libssl.so*
      - usr/include/mosquitto.h
      - usr/include/mosquitto_broker.h
      - usr/include/mosquitto_plugin.h

  lws:
    plugin: cmake
    configflags: ["-DLWS_IPV6=ON", "-DLWS_WITHOUT_CLIENT=ON", "-DLWS_WITHOUT_EXTENSIONS=ON", "-DLWS_WITH_ZIP_FOPS=OFF", "-DLWS_WITH_ZLIB=OFF", "-DLWS_WITH_SHARED=OFF"]
    source: https://github.com/warmcat/libwebsockets/archive/v2.4.2.tar.gz
    source-type: tar
    stage:
      - include/libwebsockets.h
      - include/lws_config.h
      - lib/libwebsockets.a
    prime: [-*]
