GNU bug report logs -
#75021
[PATCH] services: Add mosquitto-service-type.
Previous Next
Reported by: Evgeny Pisemsky <mail <at> pisemsky.site>
Date: Sun, 22 Dec 2024 09:12:01 UTC
Severity: normal
Tags: patch
Done: Danny Milosavljevic <dannym <at> friendly-machines.com>
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 75021 in the body.
You can then email your comments to 75021 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
guix-patches <at> gnu.org
:
bug#75021
; Package
guix-patches
.
(Sun, 22 Dec 2024 09:12:02 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Evgeny Pisemsky <mail <at> pisemsky.site>
:
New bug report received and forwarded. Copy sent to
guix-patches <at> gnu.org
.
(Sun, 22 Dec 2024 09:12:02 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
[0001-services-Add-mosquitto-service-type.patch (text/x-patch, inline)]
From b7dce453fc4dd29309687b2eb5bea99663b44212 Mon Sep 17 00:00:00 2001
Message-ID: <b7dce453fc4dd29309687b2eb5bea99663b44212.1734858256.git.mail <at> pisemsky.site>
From: Evgeny Pisemsky <mail <at> pisemsky.site>
Date: Sun, 22 Dec 2024 12:00:50 +0300
Subject: [PATCH] services: Add mosquitto-service-type.
Change-Id: I65c141a1aac4a932a8eead86626e4284346c1d91
---
doc/guix.texi | 32 +++++++++++++++++
gnu/services/messaging.scm | 71 +++++++++++++++++++++++++++++++++++++-
2 files changed, 102 insertions(+), 1 deletion(-)
diff --git a/doc/guix.texi b/doc/guix.texi
index f7b7569887..55cfbbceac 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -134,6 +134,7 @@
Copyright @copyright{} 2024 Nigko Yerden@*
Copyright @copyright{} 2024 Troy Figiel@*
Copyright @copyright{} 2024 Sharlatan Hellseher@*
+Copyright @copyright{} 2024 Evgeny Pisemsky@*
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
@@ -29403,6 +29404,37 @@ Messaging Services
@end table
@end deftp
+@subsubheading Mosquitto Service
+
+@url{https://mosquitto.org/,Mosquitto} is a lightweight message broker
+that implements the MQTT protocol versions 5.0, 3.1.1 and 3.1. It is
+suitable for use on all devices from low power single board computers to
+full servers.
+
+@defvar mosquitto-service-type
+This is the service type for the @url{https://mosquitto.org/,Mosquitto}
+MQTT broker. Its value is a @code{mosquitto-configuration} (see below).
+@end defvar
+
+@deftp {Data Type} mosquitto-configuration
+This is the configuration for Mosquitto, with the following fields:
+
+@table @asis
+@item @code{package} (default: @code{mosquitto})
+The Mosquitto package to use.
+
+@item @code{config-file} (default: @code{#f})
+The Mosquitto configuration file as a file-like object or the value
+@code{#f} to use the default configuration.
+
+@item @code{user} (default: @code{"mosquitto"})
+Owner of the broker process.
+
+@item @code{group} (default: @code{"mosquitto"})
+Owner's group of the broker process.
+@end table
+@end deftp
+
@node Telephony Services
@subsection Telephony Services
diff --git a/gnu/services/messaging.scm b/gnu/services/messaging.scm
index a914d0f89e..056aa8b207 100644
--- a/gnu/services/messaging.scm
+++ b/gnu/services/messaging.scm
@@ -3,6 +3,7 @@
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe <at> gmail.com>
;;; Copyright © 2015, 2017-2020, 2022-2024 Ludovic Courtès <ludo <at> gnu.org>
;;; Copyright © 2018 Pierre-Antoine Rouby <contact <at> parouby.fr>
+;;; Copyright © 2024 Evgeny Pisemsky <mail <at> pisemsky.site>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -59,7 +60,15 @@ (define-module (gnu services messaging)
bitlbee-service-type
quassel-configuration
- quassel-service-type))
+ quassel-service-type
+
+ mosquitto-configuration
+ mosquitto-configuration?
+ mosquitto-configuration-package
+ mosquitto-configuration-config-file
+ mosquitto-configuration-user
+ mosquitto-configuration-group
+ mosquitto-service-type))
;;; Commentary:
;;;
@@ -1002,3 +1011,63 @@ (define quassel-service-type
"Run @url{https://quassel-irc.org/,quasselcore}, the backend
for the distributed IRC client quassel, which allows you to connect from
multiple machines simultaneously.")))
+
+;;;
+;;; Mosquitto.
+;;;
+
+(define-record-type* <mosquitto-configuration>
+ mosquitto-configuration
+ make-mosquitto-configuration
+ mosquitto-configuration?
+ (package mosquitto-configuration-package
+ (default mosquitto))
+ (config-file mosquitto-configuration-config-file
+ (default #f))
+ (user mosquitto-configuration-user
+ (default "mosquitto"))
+ (group mosquitto-configuration-group
+ (default "mosquitto")))
+
+(define (mosquitto-accounts config)
+ (match-record config <mosquitto-configuration>
+ (user group)
+ (filter identity
+ (list
+ (and (equal? group "mosquitto")
+ (user-group
+ (name "mosquitto")
+ (system? #t)))
+ (and (equal? user "mosquitto")
+ (user-account
+ (name "mosquitto")
+ (group group)
+ (system? #t)
+ (comment "bzzz")
+ (home-directory "/var/empty")
+ (shell (file-append shadow "/sbin/nologin"))))))))
+
+(define (mosquitto-shepherd-service config)
+ (match-record config <mosquitto-configuration>
+ (package config-file user group)
+ (list (shepherd-service
+ (documentation "Run the Mosquitto MQTT broker.")
+ (provision '(mosquitto))
+ (requirement '(networking syslogd user-processes))
+ (start #~(make-forkexec-constructor
+ (list #$(file-append package "/sbin/mosquitto")
+ #$@(if config-file
+ (list "-c" config-file)
+ '()))
+ #:user #$user
+ #:group #$group))
+ (stop #~(make-kill-destructor))))))
+
+(define mosquitto-service-type
+ (service-type
+ (description "Run the Mosquitto MQTT broker.")
+ (name 'mosquitto)
+ (extensions
+ (list (service-extension account-service-type mosquitto-accounts)
+ (service-extension shepherd-root-service-type mosquitto-shepherd-service)))
+ (default-value (mosquitto-configuration))))
base-commit: 02e6fa8f923849afa0d46f81262936880000664f
--
2.46.0
Information forwarded
to
guix-patches <at> gnu.org
:
bug#75021
; Package
guix-patches
.
(Fri, 27 Dec 2024 15:33:02 GMT)
Full text and
rfc822 format available.
Message #8 received at 75021 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
I have described changes in a commit message.
[0001-services-Add-mosquitto-service-type.patch (text/x-patch, attachment)]
Information forwarded
to
guix-patches <at> gnu.org
:
bug#75021
; Package
guix-patches
.
(Mon, 07 Apr 2025 20:14:01 GMT)
Full text and
rfc822 format available.
Message #11 received at 75021 <at> debbugs.gnu.org (full text, mbox):
Ping.
bug closed, send any further explanations to
75021 <at> debbugs.gnu.org and Evgeny Pisemsky <mail <at> pisemsky.site>
Request was from
Danny Milosavljevic <dannym <at> friendly-machines.com>
to
control <at> debbugs.gnu.org
.
(Fri, 09 May 2025 17:54:01 GMT)
Full text and
rfc822 format available.
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Sat, 07 Jun 2025 11:24:08 GMT)
Full text and
rfc822 format available.
This bug report was last modified 24 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.