Package: guix-patches;
Reported by: Christopher Baines <mail <at> cbaines.net>
Date: Sun, 20 May 2018 20:37:02 UTC
Severity: normal
Tags: easy
To reply to this bug, email your comments to 31539 AT debbugs.gnu.org.
Toggle the display of automated, internal messages from the tracker.
View this report as an mbox folder, status mbox, maintainer mbox
guix-patches <at> gnu.org
:bug#31539
; Package guix-patches
.
(Sun, 20 May 2018 20:37:02 GMT) Full text and rfc822 format available.Christopher Baines <mail <at> cbaines.net>
:guix-patches <at> gnu.org
.
(Sun, 20 May 2018 20:37:02 GMT) Full text and rfc822 format available.Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
From: Christopher Baines <mail <at> cbaines.net> To: guix-patches <at> gnu.org Subject: [PATCH] Add RabbitMQ package and service. Date: Sun, 20 May 2018 21:36:12 +0100
[Message part 1 (text/plain, inline)]
Tags: moreinfo RabbitMQ is a message broker/queuing system service. I've managed to get a package that builds, and a service which at least starts and seems to work. The package still needs more work, I haven't looked too closely at the source and what might need stripping out. As for the service, it's very minimal, and I don't have very much experience with RabbitMQ. However, this is a start, so here are some patches. Christopher Baines (2): gnu: Add rabbitmq. services: Add RabbitMQ. gnu/local.mk | 3 + gnu/packages/rabbitmq.scm | 90 +++++++++++++++++++++++++++ gnu/services/message-broker.scm | 105 ++++++++++++++++++++++++++++++++ gnu/tests/message-broker.scm | 86 ++++++++++++++++++++++++++ 4 files changed, 284 insertions(+) create mode 100644 gnu/packages/rabbitmq.scm create mode 100644 gnu/services/message-broker.scm create mode 100644 gnu/tests/message-broker.scm
[signature.asc (application/pgp-signature, inline)]
guix-patches <at> gnu.org
:bug#31539
; Package guix-patches
.
(Sun, 20 May 2018 20:41:02 GMT) Full text and rfc822 format available.Message #8 received at 31539 <at> debbugs.gnu.org (full text, mbox):
From: Christopher Baines <mail <at> cbaines.net> To: 31539 <at> debbugs.gnu.org Subject: [PATCH 2/2] services: Add RabbitMQ. Date: Sun, 20 May 2018 21:39:58 +0100
* gnu/services/message-broker.scm: New file. * gnu/services/message-broker.scm: New file. * gnu/local.mk: Add entries for new files. --- gnu/local.mk | 2 + gnu/services/message-broker.scm | 105 ++++++++++++++++++++++++++++++++ gnu/tests/message-broker.scm | 86 ++++++++++++++++++++++++++ 3 files changed, 193 insertions(+) create mode 100644 gnu/services/message-broker.scm create mode 100644 gnu/tests/message-broker.scm diff --git a/gnu/local.mk b/gnu/local.mk index 22aad6d7e..7f5bc19e9 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -478,6 +478,7 @@ GNU_SYSTEM_MODULES = \ %D%/services/virtualization.scm \ %D%/services/mail.scm \ %D%/services/mcron.scm \ + %D%/services/message-broker.scm \ %D%/services/messaging.scm \ %D%/services/monitoring.scm \ %D%/services/networking.scm \ @@ -532,6 +533,7 @@ GNU_SYSTEM_MODULES = \ %D%/tests/nfs.scm \ %D%/tests/install.scm \ %D%/tests/mail.scm \ + %D%/tests/message-broker.scm \ %D%/tests/messaging.scm \ %D%/tests/networking.scm \ %D%/tests/rsync.scm \ diff --git a/gnu/services/message-broker.scm b/gnu/services/message-broker.scm new file mode 100644 index 000000000..2685ee0fc --- /dev/null +++ b/gnu/services/message-broker.scm @@ -0,0 +1,105 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2018 Christopher Baines <mail <at> cbaines.net> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gnu services message-broker) + #:use-module (gnu services) + #:use-module (gnu services shepherd) + #:use-module (gnu system shadow) + #:use-module (gnu packages admin) + #:use-module (gnu packages rabbitmq) + #:use-module (guix modules) + #:use-module (guix records) + #:use-module (guix gexp) + #:use-module (ice-9 match) + #:export (<rabbitmq-configuration> + rabbitmq-configuration + rabbitmq-configuration? + rabbitmq-configuration-rabbitmq + rabbitmq-configuration-interfaces + rabbitmq-configuration-tcp-port + rabbitmq-configuration-udp-port + rabbitmq-configuration-additional-options + + rabbitmq-service-type)) + + +;;; +;;; RabbitMQ +;;; + +(define-record-type* <rabbitmq-configuration> + rabbitmq-configuration make-rabbitmq-configuration + rabbitmq-configuration? + (rabbitmq rabbitmq-configuration-rabbitmq ;<package> + (default rabbitmq)) + (interfaces rabbitmq-configuration-interfaces + (default '("0.0.0.0"))) + (tcp-port rabbitmq-configuration-tcp-port + (default 11211)) + (udp-port rabbitmq-configuration-udp-port + (default 11211)) + (additional-options rabbitmq-configuration-additional-options + (default '()))) + +(define %rabbitmq-accounts + (list (user-group (name "rabbitmq") (system? #t)) + (user-account + (name "rabbitmq") + (group "rabbitmq") + (system? #t) + (comment "Rabbitmq server user") + (home-directory "/var/empty") + (shell (file-append shadow "/sbin/nologin"))))) + +(define rabbitmq-activation + #~(begin + (use-modules (guix build utils)) + (let ((user (getpwnam "rabbitmq"))) + (mkdir-p "/var/run/rabbitmq") + (chown "/var/run/rabbitmq" + (passwd:uid user) (passwd:gid user))))) + +(define rabbitmq-shepherd-service + (match-lambda + (($ <rabbitmq-configuration> rabbitmq interfaces tcp-port udp-port + additional-options) + (with-imported-modules (source-module-closure + '((gnu build shepherd))) + (list (shepherd-service + (provision '(rabbitmq)) + (documentation "Run the Rabbitmq daemon.") + (requirement '(user-processes loopback)) + (modules '((gnu build shepherd))) + (start #~(make-forkexec-constructor + `(#$(file-append rabbitmq "/sbin/rabbitmq-server")) + #:pid-file "/var/run/rabbitmq/pid" + #:environment-variables + `("RABBITMQ_PID_FILE=/var/run/rabbitmq/pid" + ,@(environ)))) + (stop #~(make-kill-destructor)))))))) + +(define rabbitmq-service-type + (service-type (name 'rabbitmq) + (extensions + (list (service-extension shepherd-root-service-type + rabbitmq-shepherd-service) + (service-extension activation-service-type + (const rabbitmq-activation)) + (service-extension account-service-type + (const %rabbitmq-accounts)))) + (default-value (rabbitmq-configuration)))) diff --git a/gnu/tests/message-broker.scm b/gnu/tests/message-broker.scm new file mode 100644 index 000000000..f2f559081 --- /dev/null +++ b/gnu/tests/message-broker.scm @@ -0,0 +1,86 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2017 Christopher Baines <mail <at> cbaines.net> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gnu tests message-broker) + #:use-module (gnu tests) + #:use-module (gnu system) + #:use-module (gnu system file-systems) + #:use-module (gnu system shadow) + #:use-module (gnu system vm) + #:use-module (gnu services) + #:use-module (gnu services message-broker) + #:use-module (gnu services networking) + #:use-module (guix gexp) + #:use-module (guix store) + #:export (%test-rabbitmq)) + +(define %rabbitmq-os + (simple-operating-system + (dhcp-client-service) + (service rabbitmq-service-type))) + +(define* (run-rabbitmq-test #:optional (port 11211)) + "Run tests in %RABBITMQ-OS, forwarding PORT." + (define os + (marionette-operating-system + %rabbitmq-os + #:imported-modules '((gnu services herd) + (guix combinators)))) + + (define vm + (virtual-machine + (operating-system os) + (port-forwardings `((11211 . ,port))))) + + (define test + (with-imported-modules '((gnu build marionette)) + #~(begin + (use-modules (srfi srfi-11) (srfi srfi-64) + (gnu build marionette) + (ice-9 rdelim)) + + (define marionette + (make-marionette (list #$vm))) + + (mkdir #$output) + (chdir #$output) + + (test-begin "rabbitmq") + + ;; Wait for rabbitmq to be up and running. + (test-assert "service running" + (marionette-eval + '(begin + (use-modules (gnu services herd)) + (match (start-service 'rabbitmq) + (#f #f) + (('service response-parts ...) + (match (assq-ref response-parts 'running) + ((pid) (number? pid)))))) + marionette)) + + (test-end) + (exit (= (test-runner-fail-count (test-runner-current)) 0))))) + + (gexp->derivation "rabbitmq-test" test)) + +(define %test-rabbitmq + (system-test + (name "rabbitmq") + (description "Connect to a running RABBITMQ server.") + (value (run-rabbitmq-test)))) -- 2.17.0
guix-patches <at> gnu.org
:bug#31539
; Package guix-patches
.
(Sun, 20 May 2018 20:41:02 GMT) Full text and rfc822 format available.Message #11 received at 31539 <at> debbugs.gnu.org (full text, mbox):
From: Christopher Baines <mail <at> cbaines.net> To: 31539 <at> debbugs.gnu.org Subject: [PATCH 1/2] gnu: Add rabbitmq. Date: Sun, 20 May 2018 21:39:57 +0100
* gnu/packages/rabbitmq.scm: New file. * gnu/local.mk: Add gnu/packages/rabbitmq.scm. --- gnu/local.mk | 1 + gnu/packages/rabbitmq.scm | 90 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 91 insertions(+) create mode 100644 gnu/packages/rabbitmq.scm diff --git a/gnu/local.mk b/gnu/local.mk index fbdb30989..22aad6d7e 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -359,6 +359,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/toys.scm \ %D%/packages/tryton.scm \ %D%/packages/qt.scm \ + %D%/packages/rabbitmq.scm \ %D%/packages/ragel.scm \ %D%/packages/rails.scm \ %D%/packages/ratpoison.scm \ diff --git a/gnu/packages/rabbitmq.scm b/gnu/packages/rabbitmq.scm new file mode 100644 index 000000000..d453dfe10 --- /dev/null +++ b/gnu/packages/rabbitmq.scm @@ -0,0 +1,90 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2017 Christopher Baines <mail <at> cbaines.net> +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gnu packages rabbitmq) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix utils) + #:use-module (guix build-system gnu) + #:use-module (guix download) + #:use-module (guix packages) + #:use-module (gnu packages base) + #:use-module (gnu packages compression) + #:use-module (gnu packages xml) + #:use-module (gnu packages rsync) + #:use-module (gnu packages erlang) + #:use-module (gnu packages elixir) + #:use-module (gnu packages python)) + +(define-public rabbitmq + (package + (name "rabbitmq") + (version "3.7.4") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/rabbitmq/rabbitmq-server/releases/download/v" + version + "/rabbitmq-server-" version ".tar.xz")) + (file-name (string-append name "-" version ".tar.xz")) + (sha256 + (base32 + "0y3c3kmj2jnfic4rzfn5x0raigkgscxv94fn3ijnnk535b209iw8")))) + (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-source + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "deps/rabbit_common/src/vm_memory_monitor.erl" + (("getconf") (string-append (assoc-ref inputs "glibc") + "/bin/getconf"))) + #t)) + (delete 'configure) + (delete 'check) + (add-after 'install 'patch-scripts + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out"))) + (substitute* (string-append out "/sbin/rabbitmq-server") + (("uname") (which "uname")) + (("mkdir") (which "mkdir")) + (("cp ") (string-append (which "cp") " ")) + (("\\$\\{ERL\\_DIR\\}") (string-append (dirname (which "erl")) + "/")) + (("dirname") (which "dirname"))) + (substitute* (string-append out "/sbin/rabbitmq-env") + (("dirname") (which "dirname")) + (("\\$\\{ERL\\_DIR\\}") (string-append (dirname (which "erl")) + "/")) + (("\\| tr") (string-append "| " (which "tr"))) + (("basename") (which "basename")) + (("sed") (which "sed"))) + #t)))) + #:make-flags + (list (string-append "RMQ_ERLAPP_DIR=" (assoc-ref %outputs "out"))))) + (native-inputs + `(("erlang" ,erlang) + ("elixir" ,elixir) + ("python" ,python-wrapper) + ("libxslt" ,libxslt) + ("rsync" ,rsync) + ("glibc",glibc) + ("zip" ,zip))) + (home-page "http://www.rabbitmq.com/") + (synopsis "TODO") + (description "TODO") + (license "TODO"))) + -- 2.17.0
guix-patches <at> gnu.org
:bug#31539
; Package guix-patches
.
(Tue, 20 Oct 2020 07:46:02 GMT) Full text and rfc822 format available.Message #14 received at 31539 <at> debbugs.gnu.org (full text, mbox):
From: zimoun <zimon.toutoune <at> gmail.com> To: Christopher Baines <mail <at> cbaines.net> Cc: 31539 <at> debbugs.gnu.org Subject: Re: [bug#31539] [PATCH] Add RabbitMQ package and service. Date: Tue, 20 Oct 2020 09:45:41 +0200
Dear, The 2 patches [1] are more than 2 years old. They are about adding RabbitMQ package and service. Have they been fallen in the crack? Are they still relevant? They are tagged ’moreinfo’, why? Because the package needs more work? 1: <http://issues.guix.gnu.org/issue/31539> On Sun, 20 May 2018 at 21:36, Christopher Baines <mail <at> cbaines.net> wrote: > Tags: moreinfo > > RabbitMQ is a message broker/queuing system service. I've managed to get > a package that builds, and a service which at least starts and seems to > work. > > The package still needs more work, I haven't looked too closely at the > source and what might need stripping out. > > As for the service, it's very minimal, and I don't have very much > experience with RabbitMQ. However, this is a start, so here are some > patches. > > > Christopher Baines (2): > gnu: Add rabbitmq. > services: Add RabbitMQ. > > gnu/local.mk | 3 + > gnu/packages/rabbitmq.scm | 90 +++++++++++++++++++++++++++ > gnu/services/message-broker.scm | 105 ++++++++++++++++++++++++++++++++ > gnu/tests/message-broker.scm | 86 ++++++++++++++++++++++++++ > 4 files changed, 284 insertions(+) > create mode 100644 gnu/packages/rabbitmq.scm > create mode 100644 gnu/services/message-broker.scm > create mode 100644 gnu/tests/message-broker.scm All the best, simon
guix-patches <at> gnu.org
:bug#31539
; Package guix-patches
.
(Tue, 20 Oct 2020 08:00:02 GMT) Full text and rfc822 format available.Message #17 received at 31539 <at> debbugs.gnu.org (full text, mbox):
From: Christopher Baines <mail <at> cbaines.net> To: zimoun <zimon.toutoune <at> gmail.com> Cc: 31539 <at> debbugs.gnu.org Subject: Re: [bug#31539] [PATCH] Add RabbitMQ package and service. Date: Tue, 20 Oct 2020 08:59:01 +0100
[Message part 1 (text/plain, inline)]
zimoun <zimon.toutoune <at> gmail.com> writes: > The 2 patches [1] are more than 2 years old. They are about adding > RabbitMQ package and service. Have they been fallen in the crack? > > Are they still relevant? They are tagged ’moreinfo’, why? Because the > package needs more work? The service is OK, but the package needs some work before merging. It doesn't built RabbitMQ from source.
[signature.asc (application/pgp-signature, inline)]
zimoun <zimon.toutoune <at> gmail.com>
to control <at> debbugs.gnu.org
.
(Wed, 28 Oct 2020 17:29:02 GMT) Full text and rfc822 format available.zimoun <zimon.toutoune <at> gmail.com>
to control <at> debbugs.gnu.org
.
(Wed, 28 Oct 2020 17:29:02 GMT) Full text and rfc822 format available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.