Mosquitto: major update to version 2.0

Major release, full release notes available at:
https://mosquitto.org/blog/2020/12/version-2-0-0-released/

Tested on ath79, ssl full, ssl trimmed and non-ssl builds, and also all
at the same time.
Users may/will run into some of the changes in default
authentication.  Note
https://mosquitto.org/documentation/migrating-to-2-0/ for tips on
migrating.

Patch included has already merged upstream, but didn't make the release:
https://github.com/eclipse/mosquitto/pull/1930

Signed-off-by: Karl Palsson <karlp@etactica.com>
This commit is contained in:
Karl Palsson 2020-12-04 11:11:04 +00:00 committed by Karl Palsson
parent 2973f85310
commit 7218ff0318
3 changed files with 59 additions and 20 deletions

View File

@ -5,6 +5,22 @@ config MOSQUITTO_LWS
help help
Includes websockets support in the broker, via libwebsockets Includes websockets support in the broker, via libwebsockets
config MOSQUITTO_CTRL
bool "Include mosquitto_ctrl utility"
depends on PACKAGE_mosquitto-ssl
default y
help
mosquitto_ctrl is a tool for managing the broker at run time.
config MOSQUITTO_DYNAMIC_SECURITY
bool "Install mosquitto_dynamic_security.so"
depends on PACKAGE_mosquitto-ssl
default y
help
This enables the dynamic security modes documented at
https://mosquitto.org/documentation/dynamic-security/
but does add ~88kB. If you're not using it, you can disable it
config MOSQUITTO_PASSWD config MOSQUITTO_PASSWD
bool "Include mosquitto_passwd utility" bool "Include mosquitto_passwd utility"
depends on PACKAGE_mosquitto-ssl depends on PACKAGE_mosquitto-ssl

View File

@ -9,15 +9,15 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=mosquitto PKG_NAME:=mosquitto
PKG_VERSION:=1.6.12 PKG_VERSION:=2.0.0
PKG_RELEASE:=1 PKG_RELEASE:=1
PKG_LICENSE:=BSD-3-Clause PKG_LICENSE:=EPL-2.0
PKG_LICENSE_FILES:=LICENSE.txt PKG_LICENSE_FILES:=LICENSE.txt
PKG_CPE_ID:=cpe:/a:eclipse:mosquitto PKG_CPE_ID:=cpe:/a:eclipse:mosquitto
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://mosquitto.org/files/source/ PKG_SOURCE_URL:=https://mosquitto.org/files/source/
PKG_HASH:=548d73d19fb787dd0530334e398fd256ef3a581181678488a741a995c4f007fb PKG_HASH:=ca8c21d1b04037df27639de9ea8f82fa73e1cbd24e83e6394ed67b537c4b6d86
include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/package.mk
@ -34,7 +34,7 @@ endef
define Package/mosquitto-ssl define Package/mosquitto-ssl
$(call Package/mosquitto/default) $(call Package/mosquitto/default)
TITLE+= (with SSL support) TITLE+= (with SSL support)
DEPENDS+= +libopenssl +MOSQUITTO_LWS:libwebsockets-openssl DEPENDS+= +libopenssl +MOSQUITTO_LWS:libwebsockets-openssl +MOSQUITTO_DYNAMIC_SECURITY:cJSON
VARIANT:=ssl VARIANT:=ssl
PROVIDES:=mosquitto PROVIDES:=mosquitto
endef endef
@ -52,7 +52,7 @@ endef
define Package/mosquitto/default/description define Package/mosquitto/default/description
Mosquitto is an open source (BSD licensed) message broker that implements Mosquitto is an open source (BSD licensed) message broker that implements
the MQTT protocol version 3.1 and 3.1.1. MQTT provides a lightweight the MQTT protocol version 3.1, 3.1.1 and 5. MQTT provides a lightweight
method of carrying out messaging using a publish/subscribe model. method of carrying out messaging using a publish/subscribe model.
This package also includes some basic support for configuring via UCI This package also includes some basic support for configuring via UCI
@ -73,7 +73,7 @@ endef
define Package/mosquitto-client/default define Package/mosquitto-client/default
$(Package/mosquitto/default) $(Package/mosquitto/default)
TITLE:= mosquitto - client tools TITLE:= mosquitto - client tools
DEPENDS+=+libcares DEPENDS+=+libcares +cJSON
PROVIDES:=mosquitto-client PROVIDES:=mosquitto-client
endef endef
define Package/mosquitto-client-ssl define Package/mosquitto-client-ssl
@ -90,8 +90,9 @@ define Package/mosquitto-client-nossl
endef endef
define Package/mosquitto-client/default/description define Package/mosquitto-client/default/description
Command line client tools for publishing messages to MQTT servers Command line client tools for working with mosquitto.
and subscribing to topics. This includes mosquitto_sub, mosquitto_pub, mosquitto_rr
and the mosquitto_ctrl tool.
endef endef
define Package/mosquitto-client-ssl/description define Package/mosquitto-client-ssl/description
@ -126,11 +127,11 @@ endef
define Package/libmosquitto/default/description define Package/libmosquitto/default/description
Library required for mosquitto's command line client tools, also for Library required for mosquitto's command line client tools, also for
use by any third party software that wants to communicate with a use by any third party software that wants to communicate with _any_
mosquitto server. MQTT server.
Should be useable for communicating with any MQTT v3.1/3.1.1 compatible Should be useable for communicating with any MQTT v3.1/3.1.1/5 compatible
server, such as IBM's RSMB, in addition to Mosquitto server, in addition to Mosquitto.
endef endef
define Package/libmosquitto-ssl/description define Package/libmosquitto-ssl/description
@ -176,24 +177,32 @@ define Package/mosquitto-ssl/install
$(call Package/mosquitto/install/default,$(1)) $(call Package/mosquitto/install/default,$(1))
ifeq ($(CONFIG_MOSQUITTO_PASSWD),y) ifeq ($(CONFIG_MOSQUITTO_PASSWD),y)
$(INSTALL_DIR) $(1)/usr/bin $(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/src/mosquitto_passwd $(1)/usr/bin $(INSTALL_BIN) $(PKG_BUILD_DIR)/apps/mosquitto_passwd/mosquitto_passwd $(1)/usr/bin
endif
ifeq ($(CONFIG_MOSQUITTO_DYNAMIC_SECURITY),y)
$(INSTALL_DIR) $(1)/usr/lib
$(INSTALL_BIN) $(PKG_BUILD_DIR)/plugins/dynamic-security/mosquitto_dynamic_security.so $(1)/usr/lib
endif endif
endef endef
define Package/mosquitto-client-ssl/install define Package/mosquitto-client-nossl/install
$(INSTALL_DIR) $(1)/usr/bin $(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/client/mosquitto_pub $(1)/usr/bin/mosquitto_pub $(INSTALL_BIN) $(PKG_BUILD_DIR)/client/mosquitto_pub $(1)/usr/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/client/mosquitto_sub $(1)/usr/bin/mosquitto_sub $(INSTALL_BIN) $(PKG_BUILD_DIR)/client/mosquitto_sub $(1)/usr/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/client/mosquitto_rr $(1)/usr/bin
endef
define Package/mosquitto-client-ssl/install
$(call Package/mosquitto-client-nossl/install,$(1))
ifeq ($(CONFIG_MOSQUITTO_CTRL),y)
$(INSTALL_BIN) $(PKG_BUILD_DIR)/apps/mosquitto_ctrl/mosquitto_ctrl $(1)/usr/bin
endif
endef endef
Package/mosquitto-client-nossl/install = $(Package/mosquitto-client-ssl/install)
# This installs files into ./staging_dir/. so that you can cross compile from the host # This installs files into ./staging_dir/. so that you can cross compile from the host
define Build/InstallDev define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include $(INSTALL_DIR) $(1)/usr/include
$(CP) $(PKG_BUILD_DIR)/lib/mosquitto.h $(1)/usr/include $(CP) $(PKG_BUILD_DIR)/include/*.h $(1)/usr/include
$(CP) $(PKG_BUILD_DIR)/lib/cpp/mosquittopp.h $(1)/usr/include $(CP) $(PKG_BUILD_DIR)/lib/cpp/mosquittopp.h $(1)/usr/include
$(CP) $(PKG_BUILD_DIR)/src/mosquitto_plugin.h $(1)/usr/include
$(CP) $(PKG_BUILD_DIR)/src/mosquitto_broker.h $(1)/usr/include
$(INSTALL_DIR) $(1)/usr/lib $(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_BUILD_DIR)/lib/libmosquitto.so.1 $(1)/usr/lib/ $(CP) $(PKG_BUILD_DIR)/lib/libmosquitto.so.1 $(1)/usr/lib/
$(CP) $(PKG_BUILD_DIR)/lib/cpp/libmosquittopp.so.1 $(1)/usr/lib/ $(CP) $(PKG_BUILD_DIR)/lib/cpp/libmosquittopp.so.1 $(1)/usr/lib/

View File

@ -0,0 +1,14 @@
diff --git a/apps/mosquitto_ctrl/Makefile b/apps/mosquitto_ctrl/Makefile
index 59b23596..3a4843bf 100644
--- a/apps/mosquitto_ctrl/Makefile
+++ b/apps/mosquitto_ctrl/Makefile
@@ -8,8 +8,7 @@ else
LIBMOSQ:=../../lib/libmosquitto.a
endif
-LOCAL_CPPFLAGS:=-I/usr/include/cjson -I/usr/local/include/cjson -I../mosquitto_passwd
-LOCAL_LDFLAGS:=-L/usr/local/lib
+LOCAL_CPPFLAGS:=-I../mosquitto_passwd
OBJS= mosquitto_ctrl.o \
client.o \