summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--user/mosquitto/APKBUILD80
-rw-r--r--user/mosquitto/disable-flaky-test.patch11
-rw-r--r--user/mosquitto/mosquitto.initd36
-rw-r--r--user/mosquitto/mosquitto.pre-install7
-rw-r--r--user/mosquitto/openrc-conf.patch20
-rw-r--r--user/mosquitto/python3.patch48
-rw-r--r--user/py3-paho-mqtt/APKBUILD33
-rw-r--r--user/py3-paho-mqtt/setup.patch24
8 files changed, 259 insertions, 0 deletions
diff --git a/user/mosquitto/APKBUILD b/user/mosquitto/APKBUILD
new file mode 100644
index 000000000..e7cd25057
--- /dev/null
+++ b/user/mosquitto/APKBUILD
@@ -0,0 +1,80 @@
+# Contributor: Pedro Filipe <xpecex@outlook.com>
+# Contributor: Natanael Copa <ncopa@alpinelinux.org>
+# Maintainer: Max Rees <maxcrees@me.com>
+pkgname=mosquitto
+pkgver=1.6.6
+pkgrel=0
+pkgdesc="An Open Source MQTT Broker"
+url="https://mosquitto.org/"
+arch="all"
+license="EPL-1.0 AND EDL-1.0 AND MIT AND BSD-3-Clause"
+depends=""
+makedepends="c-ares-dev openssl-dev util-linux-dev"
+checkdepends="python3"
+subpackages="$pkgname-dev $pkgname-doc $pkgname-libs $pkgname-openrc
+ $pkgname-clients"
+install="$pkgname.pre-install"
+source="http://mosquitto.org/files/source/$pkgname-$pkgver.tar.gz
+ mosquitto.initd
+ disable-flaky-test.patch
+ openrc-conf.patch
+ python3.patch"
+
+# secfixes:
+# 1.6.6-r0:
+# - CVE-2019-11779
+# 1.5.6-r0:
+# - CVE-2018-12546
+# - CVE-2018-12550
+# - CVE-2018-12551
+# 1.5.3-r0:
+# - CVE-2018-12543
+# 1.4.15-r0:
+# - CVE-2017-7652
+# - CVE-2017-7651
+# 1.4.13-r0:
+# - CVE-2017-9868
+# 1.4.12-r0:
+# - CVE-2017-7650
+
+build() {
+ make \
+ WITH_ADNS=no \
+ WITH_MEMORY_TRACKING=no \
+ WITH_SRV=yes \
+ prefix=/usr
+}
+
+check() {
+ # Unit tests require cunit, so skip them.
+ make -j1 -C test/broker test
+ make -j1 -C test/lib test
+}
+
+package() {
+ make prefix=/usr DESTDIR="$pkgdir" install
+
+ # C++ bindings are deprecated, so don't install them.
+ make -C lib/cpp prefix=/usr DESTDIR="$pkgdir" uninstall
+ rm "$pkgdir"/usr/lib/pkgconfig/libmosquittopp.pc
+
+ mv "$pkgdir"/usr/sbin/mosquitto "$pkgdir"/usr/bin
+ mv "$pkgdir"/etc/mosquitto/mosquitto.conf.example \
+ "$pkgdir"/etc/mosquitto/mosquitto.conf
+
+ install -Dm755 "$srcdir"/mosquitto.initd \
+ "$pkgdir"/etc/init.d/mosquitto
+}
+
+clients() {
+ pkgdesc="Mosquitto command line MQTT clients"
+
+ mkdir -p "$subpkgdir"/usr/bin
+ mv "$pkgdir"/usr/bin/mosquitto_[ps]ub "$subpkgdir"/usr/bin/
+}
+
+sha512sums="ea6ba7b57773c8f4a59e708ae305a0e38ca85df94854410b29cccddbe10bbb91c2ea5e827fefb3f57cb4fce188ab9c3021804f1ae398b7fd5e9e965354b68bc1 mosquitto-1.6.6.tar.gz
+681fddc737b3ef3e6c052f0c854a730df290352640a18a63e23ef83d14c425558aff87805d1eb95e44de101b5df48872173af9f5414464ffa8cf727ea2c0491e mosquitto.initd
+3886171e36f759a717aa6626d5b8dbd392963c737d5de28b4d52b81359008927b99ff7a0ca82f56a0e5deaed4585571759ba9216336a664fd346845837c2bc18 disable-flaky-test.patch
+b07f9bec2751ab32c43f53e74d8fca18dbf2d7ce7f8fab562dbcf75de19609ba6219d735ac504697404e0ed36613a14074e3a19e735297195877798f778d337a openrc-conf.patch
+078197e6c3e59b664f5fdd1e4a4f669c9a76ab84fe4a5d8602ac80406b85c4e1cce29d9372e76d995155b74abb438d0dc0cdcdb98251fb904122073c4088d76a python3.patch"
diff --git a/user/mosquitto/disable-flaky-test.patch b/user/mosquitto/disable-flaky-test.patch
new file mode 100644
index 000000000..8fd51c403
--- /dev/null
+++ b/user/mosquitto/disable-flaky-test.patch
@@ -0,0 +1,11 @@
+--- mosquitto-1.6.4/test/broker/Makefile 2019-08-01 19:50:01.000000000 +0000
++++ mosquitto-1.6.4/test/broker/Makefile 2019-08-28 00:03:54.430562623 +0000
+@@ -193,7 +193,7 @@ endif
+ ./10-listener-mount-point.py
+
+ 11 :
+- ./11-message-expiry.py
++ #./11-message-expiry.py
+ ./11-persistent-subscription.py
+ ./11-persistent-subscription-v5.py
+ ./11-persistent-subscription-no-local.py
diff --git a/user/mosquitto/mosquitto.initd b/user/mosquitto/mosquitto.initd
new file mode 100644
index 000000000..818931213
--- /dev/null
+++ b/user/mosquitto/mosquitto.initd
@@ -0,0 +1,36 @@
+#!/sbin/openrc-run
+MOSQUITTO_CFG="${MOSQUITTO_CFG:-/etc/mosquitto/${RC_SVCNAME}.conf}"
+
+command="/usr/bin/mosquitto"
+command_args="-c '${MOSQUITTO_CFG}' $command_args"
+command_args_background="--daemon"
+pidfile="$(awk '$1 == "pid_file" {print $2}' "${MOSQUITTO_CFG}" || true)"
+
+extra_started_commands="reload"
+description_reload="Reload configuration"
+
+start_pre() {
+ if ! [ -e "$MOSQUITTO_CFG" ]; then
+ eerror "$MOSQUITTO_CFG does not exist"
+ return 1
+ fi
+
+ if [ -z "$pidfile" ]; then
+ eerror "${MOSQUITTO_CFG} is missing the pid_file option"
+ return 1
+ fi
+
+ MOSQUITTO_LOG="$(awk '$1 " " $2 == "log_dest file" {print $3}' "${MOSQUITTO_CFG}")"
+ if [ -n "$MOSQUITTO_LOG" ]; then
+ MOSQUITTO_USER="$(awk '$1 == "user" {print $2}' "${MOSQUITTO_CFG}")"
+ MOSQUITTO_USER="${MOSQUITTO_USER:-mosquitto}"
+ checkpath -fm 660 -o "${MOSQUITTO_USER}" \
+ "${MOSQUITTO_LOG}" || return 1
+ fi
+}
+
+reload() {
+ ebegin "Reloading ${RC_SVCNAME}"
+ start-stop-daemon --signal HUP --pidfile "${pidfile}"
+ eend $?
+}
diff --git a/user/mosquitto/mosquitto.pre-install b/user/mosquitto/mosquitto.pre-install
new file mode 100644
index 000000000..ac36da04c
--- /dev/null
+++ b/user/mosquitto/mosquitto.pre-install
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+groupadd -r mosquitto 2>/dev/null
+useradd -c mosquitto -s /sbin/nologin -g mosquitto \
+ -m -d /var/empty -k /etc/skel -r mosquitto 2>/dev/null
+
+exit 0
diff --git a/user/mosquitto/openrc-conf.patch b/user/mosquitto/openrc-conf.patch
new file mode 100644
index 000000000..d1c5ee04b
--- /dev/null
+++ b/user/mosquitto/openrc-conf.patch
@@ -0,0 +1,20 @@
+--- mosquitto-1.6.4/mosquitto.conf 2019-08-01 14:50:01.000000000 -0500
++++ mosquitto-1.6.4/mosquitto.conf 2019-08-27 18:16:52.290542736 -0500
+@@ -158,7 +158,7 @@
+ # This should be set to /var/run/mosquitto.pid if mosquitto is
+ # being run automatically on boot with an init script and
+ # start-stop-daemon or similar.
+-#pid_file
++pid_file /var/run/mosquitto.pid
+
+ # Set to true to queue messages with QoS 0 when a persistent client is
+ # disconnected. These messages are included in the limit imposed by
+@@ -585,7 +585,7 @@
+ # Note that if the broker is running as a Windows service it will default to
+ # "log_dest none" and neither stdout nor stderr logging is available.
+ # Use "log_dest none" if you wish to disable logging.
+-#log_dest stderr
++log_dest file /var/log/mosquitto.log
+
+ # Types of messages to log. Use multiple log_type lines for logging
+ # multiple types of messages.
diff --git a/user/mosquitto/python3.patch b/user/mosquitto/python3.patch
new file mode 100644
index 000000000..f348cbc3e
--- /dev/null
+++ b/user/mosquitto/python3.patch
@@ -0,0 +1,48 @@
+--- mosquitto-1.6.4/test/broker/09-extended-auth-change-username.py.old 2019-08-01 19:50:01.000000000 +0000
++++ mosquitto-1.6.4/test/broker/09-extended-auth-change-username.py 2019-08-27 22:20:08.560518752 +0000
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ # Check whether an extended auth plugin can change the username of a client.
+
+--- mosquitto-1.6.4/test/broker/09-extended-auth-multistep-reauth.py.old 2019-08-01 19:50:01.000000000 +0000
++++ mosquitto-1.6.4/test/broker/09-extended-auth-multistep-reauth.py 2019-08-27 22:22:11.530519618 +0000
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ from mosq_test_helper import *
+
+--- mosquitto-1.6.4/test/broker/09-extended-auth-multistep.py.old 2019-08-01 19:50:01.000000000 +0000
++++ mosquitto-1.6.4/test/broker/09-extended-auth-multistep.py 2019-08-27 22:20:37.030518952 +0000
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ from mosq_test_helper import *
+
+--- mosquitto-1.6.4/test/broker/09-extended-auth-single.py.old 2019-08-01 19:50:01.000000000 +0000
++++ mosquitto-1.6.4/test/broker/09-extended-auth-single.py 2019-08-27 22:21:42.250519412 +0000
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ # Multi tests for extended auth with a single step.
+ # * Error in plugin
+--- mosquitto-1.6.4/test/broker/09-extended-auth-single2.py.old 2019-08-01 19:50:01.000000000 +0000
++++ mosquitto-1.6.4/test/broker/09-extended-auth-single2.py 2019-08-27 22:21:02.220519130 +0000
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ # Multi tests for extended auth with a single step - multiple plugins at once.
+ # * Error in plugin
+--- mosquitto-1.6.4/test/broker/09-extended-auth-unsupported.py.old 2019-08-01 19:50:01.000000000 +0000
++++ mosquitto-1.6.4/test/broker/09-extended-auth-unsupported.py 2019-08-27 22:21:20.360519257 +0000
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ # Test whether an unsupported extended auth is rejected.
+
diff --git a/user/py3-paho-mqtt/APKBUILD b/user/py3-paho-mqtt/APKBUILD
new file mode 100644
index 000000000..cda723c76
--- /dev/null
+++ b/user/py3-paho-mqtt/APKBUILD
@@ -0,0 +1,33 @@
+# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
+# Maintainer: Max Rees <maxcrees@me.com>
+pkgname=py3-paho-mqtt
+_pkgname=paho.mqtt.python
+pkgver=1.4.0
+pkgrel=0
+pkgdesc="MQTT version 3.1.1 client class for Python"
+url="https://www.eclipse.org/paho/"
+# Certified net clean
+arch="noarch"
+license="EPL-1.0 AND EDL-1.0"
+depends="python3"
+makedepends=""
+checkdepends="py3-pytest"
+# Use GitHub tarball since PyPI doesn't include tests
+source="$pkgname-$pkgver.tar.gz::https://github.com/eclipse/paho.mqtt.python/archive/v$pkgver.tar.gz
+ setup.patch"
+builddir="$srcdir/$_pkgname-$pkgver"
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ PYTHONPATH="$builddir"/src pytest
+}
+
+package() {
+ python3 setup.py install --prefix=/usr --root="$pkgdir"
+}
+
+sha512sums="2e49f0f146207ab4fbc8c346b10d3e2b50869b2d9db7c999b6645f7213fb635b64cff01c5405e7833a8b25334d24685ce6ed734a6e4b6b0660b48f65cf4a941c py3-paho-mqtt-1.4.0.tar.gz
+0cfff826651b36b5062dae8bad3abcab428dc18bfcee6c941a46f5c8900c871bd475d96fa382e06d731ea451ad9159edadf0ee3767f7dea992cb7a7ed7313d80 setup.patch"
diff --git a/user/py3-paho-mqtt/setup.patch b/user/py3-paho-mqtt/setup.patch
new file mode 100644
index 000000000..70ccc869f
--- /dev/null
+++ b/user/py3-paho-mqtt/setup.patch
@@ -0,0 +1,24 @@
+--- paho.mqtt.python-1.4.0/setup.py 2018-09-02 11:20:42.000000000 +0000
++++ paho.mqtt.python-1.4.0/setup.py 2019-08-28 02:51:55.690633661 +0000
+@@ -11,9 +11,8 @@ with open('README.rst', 'rb') as readme_
+ readme = readme_file.read().decode('utf-8')
+
+ requirements = []
+-test_requirements = ['pytest', 'pylama']
+-needs_pytest = {'pytest', 'test', 'ptr'}.intersection(sys.argv)
+-setup_requirements = ['pytest-runner'] if needs_pytest else []
++test_requirements = ['pytest']
++setup_requirements = []
+
+ if sys.version_info < (3, 0):
+ test_requirements += ['mock']
+--- paho.mqtt.python-1.4.0/setup.cfg 2018-09-02 11:20:42.000000000 +0000
++++ paho.mqtt.python-1.4.0/setup.cfg 2019-08-28 02:50:19.540632984 +0000
+@@ -1,7 +1,6 @@
+ [aliases]
+ test=pytest
+ [tool:pytest]
+-addopts=-r xs --pylama
+ strict=True
+ testpaths=tests src
+ [pylama]