diff options
author | Dennis Lamm <expeditioneer@gentoo.org> | 2023-03-18 19:04:39 +0100 |
---|---|---|
committer | Matt Turner <mattst88@gentoo.org> | 2023-03-29 12:51:15 -0400 |
commit | 5cb59f66ac4f379b267af8074afda23206cca8aa (patch) | |
tree | b9e4d74af00263bdb005e1d426c052b47b20be10 /app-misc | |
parent | sci-electronics/gazebo: fix build with ffmpeg6 (diff) | |
download | gentoo-5cb59f66ac4f379b267af8074afda23206cca8aa.tar.gz gentoo-5cb59f66ac4f379b267af8074afda23206cca8aa.tar.bz2 gentoo-5cb59f66ac4f379b267af8074afda23206cca8aa.zip |
app-misc/mosquitto: added systemd notify support
Closes: https://bugs.gentoo.org/878969
Signed-off-by: Dennis Lamm <expeditioneer@gentoo.org>
Closes: https://github.com/gentoo/gentoo/pull/30215
Signed-off-by: Matt Turner <mattst88@gentoo.org>
Diffstat (limited to 'app-misc')
-rw-r--r-- | app-misc/mosquitto/files/mosquitto.notify.service | 15 | ||||
-rw-r--r-- | app-misc/mosquitto/mosquitto-2.0.15-r1.ebuild | 127 |
2 files changed, 142 insertions, 0 deletions
diff --git a/app-misc/mosquitto/files/mosquitto.notify.service b/app-misc/mosquitto/files/mosquitto.notify.service new file mode 100644 index 000000000000..5cbce2151e9d --- /dev/null +++ b/app-misc/mosquitto/files/mosquitto.notify.service @@ -0,0 +1,15 @@ +[Unit] +Description=Mosquitto MQTT Broker +Documentation=man:mosquitto.conf(5) man:mosquitto(8) +After=network.target +Wants=network.target + +[Service] +Type=notify +NotifyAccess=main +ExecStart=/usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf +ExecReload=/bin/kill -HUP $MAINPID +Restart=on-failure + +[Install] +WantedBy=multi-user.target diff --git a/app-misc/mosquitto/mosquitto-2.0.15-r1.ebuild b/app-misc/mosquitto/mosquitto-2.0.15-r1.ebuild new file mode 100644 index 000000000000..29bf8bdd7b4a --- /dev/null +++ b/app-misc/mosquitto/mosquitto-2.0.15-r1.ebuild @@ -0,0 +1,127 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 +PYTHON_COMPAT=( python3_{9..11} ) + +inherit python-any-r1 systemd toolchain-funcs + +DESCRIPTION="An Open Source MQTT v3 Broker" +HOMEPAGE="https://mosquitto.org/ https://github.com/eclipse/mosquitto" +SRC_URI="https://mosquitto.org/files/source/${P}.tar.gz" + +LICENSE="EPL-1.0" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~x86" +IUSE="bridge examples +persistence +srv ssl systemd tcpd test websockets" +RESTRICT="!test? ( test )" + +REQUIRED_USE="test? ( bridge )" + +RDEPEND=" + acct-user/mosquitto + acct-group/mosquitto + dev-libs/cJSON:= + srv? ( net-dns/c-ares:= ) + ssl? ( + dev-libs/openssl:0= + ) + systemd? ( sys-apps/systemd ) + tcpd? ( sys-apps/tcp-wrappers ) + websockets? ( net-libs/libwebsockets[lejp] ) +" +DEPEND=" + ${RDEPEND} + test? ( dev-util/cunit ) +" +BDEPEND=" + test? ( ${PYTHON_DEPS} ) +" + +pkg_setup() { + use test && python_setup +} + +_emake() { + local LIBDIR=$(get_libdir) + emake \ + CC="$(tc-getCC)" \ + CXX="$(tc-getCXX)" \ + CLIENT_LDFLAGS="${LDFLAGS}" \ + LIB_SUFFIX="${LIBDIR:3}" \ + WITH_BRIDGE="$(usex bridge)" \ + WITH_PERSISTENCE="$(usex persistence)" \ + WITH_SRV="$(usex srv)" \ + WITH_SYSTEMD="$(usex systemd)" \ + WITH_TLS="$(usex ssl)" \ + WITH_WEBSOCKETS="$(usex websockets)" \ + WITH_WRAP="$(usex tcpd)" \ + "$@" +} + +src_prepare() { + default + if use persistence; then + sed -i -e "/^#autosave_interval/s|^#||" \ + -e "s|^#persistence false$|persistence true|" \ + -e "/^#persistence_file/s|^#||" \ + -e "s|#persistence_location|persistence_location /var/lib/mosquitto/|" \ + mosquitto.conf || die + fi + + # Remove failing tests + sed -i \ + -e '/06-bridge-reconnect-local-out.py/d' \ + test/broker/Makefile || die + sed -i \ + -e '/02-subscribe-qos1-async2.test/d' \ + test/lib/Makefile || die + + # Extend test timeout to prevent spurious failures + sed -i -e 's/SUB_TIMEOUT=1/SUB_TIMEOUT=3/' \ + test/client/test.sh || die + + use test && python_fix_shebang test +} + +src_compile() { + _emake +} + +src_test() { + _emake test +} + +src_install() { + _emake DESTDIR="${D}" prefix=/usr install + keepdir /var/lib/mosquitto + fowners mosquitto:mosquitto /var/lib/mosquitto + dodoc README.md CONTRIBUTING.md ChangeLog.txt + doinitd "${FILESDIR}"/mosquitto + insinto /etc/mosquitto + doins mosquitto.conf + insinto /usr/share/mosquitto + doins misc/letsencrypt/mosquitto-copy.sh + systemd_newunit "${FILESDIR}/mosquitto.notify.service" mosquitto.service + + if use examples; then + docompress -x "/usr/share/doc/${PF}/examples" + dodoc -r examples + fi +} + +pkg_postinst() { + for v in ${REPLACING_VERSIONS}; do + if [[ $(ver_cut 1 "$v") -lt 2 ]]; then + elog + elog "Please read the migration guide at:" + elog "https://mosquitto.org/documentation/migrating-to-2-0/" + elog + elog "If you use Lets Encrypt TLS certificates, take note of" + elog "the changes required to run the daemon as the unprivileged" + elog "mosquitto user. The mosquitto-copy.sh script has been" + elog "installed to /usr/share/mosquitto/ for your convenience." + elog + fi + done +} |