diff options
| author | Mathieu Lirzin <mthl@gnu.org> | 2026-02-08 23:15:54 +0100 |
|---|---|---|
| committer | Sharlatan Hellseher <sharlatanus@gmail.com> | 2026-02-25 22:06:21 +0000 |
| commit | 0d52bda71c985d397bb8889f6a9145c7564990e5 (patch) | |
| tree | 6dee8dba6d74df06dba68377c90c067fc1ba3f72 | |
| parent | 625ee243a6e7fa0bc6960f39be937a05cfa61661 (diff) | |
gnu: rabbitmq: Define rabbitmq-programs only once.
* gnu/packages/high-availability.scm (rabbitmq): Define rabbitmq-programs only
once.
Change-Id: I6d7e22b2984d3dfe590f31531587e09873c5eede
Reviewed-by: Nguyễn Gia Phong <cnx@loang.net>
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
| -rw-r--r-- | gnu/packages/high-availability.scm | 142 |
1 files changed, 68 insertions, 74 deletions
diff --git a/gnu/packages/high-availability.scm b/gnu/packages/high-availability.scm index 5acdba9ac11..36db6760ee9 100644 --- a/gnu/packages/high-availability.scm +++ b/gnu/packages/high-availability.scm | |||
| @@ -560,80 +560,74 @@ Virtually anything that can be scripted can be managed as part of a Pacemaker cl | |||
| 560 | (string-append "RABBITMQ_VERSION=" | 560 | (string-append "RABBITMQ_VERSION=" |
| 561 | #$version)) | 561 | #$version)) |
| 562 | #:phases | 562 | #:phases |
| 563 | #~(modify-phases %standard-phases | 563 | #~(let ((rabbitmq-programs (list "rabbitmqctl" |
| 564 | ;; erlang.mk contains the entries | 564 | "rabbitmq-diagnostics" |
| 565 | ;; | 565 | "rabbitmq-plugins" |
| 566 | ;; ELIXIR_BIN ?= $(shell readlink -f `which elixir`) | 566 | "rabbitmq-queues" |
| 567 | ;; ELIXIR_LIBS ?= $(abspath $(dir $(ELIXIR_BIN))/../lib) | 567 | "rabbitmq-server" |
| 568 | ;; | 568 | "rabbitmq-streams" |
| 569 | ;; but fails to find elixir.app when building plugins. | 569 | "rabbitmq-upgrade"))) |
| 570 | ;; | 570 | (modify-phases %standard-phases |
| 571 | ;; Despite the failures, the build is reported successful while some | 571 | ;; erlang.mk contains the entries |
| 572 | ;; plugins are not built. For example, running rabbitmqctl | 572 | ;; |
| 573 | ;; command-line utility gives error | 573 | ;; ELIXIR_BIN ?= $(shell readlink -f `which elixir`) |
| 574 | ;; | 574 | ;; ELIXIR_LIBS ?= $(abspath $(dir $(ELIXIR_BIN))/../lib) |
| 575 | ;; undefined function Elixir.RabbitMQCtl':main/1 | 575 | ;; |
| 576 | ;; | 576 | ;; but fails to find elixir.app when building plugins. |
| 577 | ;; After changing `dir` to `dirname`, all plugins build successfully | 577 | ;; |
| 578 | ;; and it is possible to use the command-line utilities. | 578 | ;; Despite the failures, the build is reported successful while some |
| 579 | (add-after 'unpack 'extract-rabbitmq-sources | 579 | ;; plugins are not built. For example, running rabbitmqctl |
| 580 | (lambda _ | 580 | ;; command-line utility gives error |
| 581 | (substitute* "erlang.mk" | 581 | ;; |
| 582 | (("dir \\$\\(ELIXIR_BIN\\)") | 582 | ;; undefined function Elixir.RabbitMQCtl':main/1 |
| 583 | "shell dirname \\$\\(ELIXIR_BIN\\)")))) | 583 | ;; |
| 584 | (add-after 'install 'wrap-rabbitmq | 584 | ;; After changing `dir` to `dirname`, all plugins build successfully |
| 585 | (lambda* (#:key outputs inputs #:allow-other-keys) | 585 | ;; and it is possible to use the command-line utilities. |
| 586 | (let ((sbindir (string-append #$output "/lib/rabbitmq_server-" | 586 | (add-after 'unpack 'extract-rabbitmq-sources |
| 587 | #$version "/sbin")) | 587 | (lambda _ |
| 588 | (rabbitmq-programs (list "rabbitmqctl" | 588 | (substitute* "erlang.mk" |
| 589 | "rabbitmq-diagnostics" | 589 | (("dir \\$\\(ELIXIR_BIN\\)") |
| 590 | "rabbitmq-plugins" | 590 | "shell dirname \\$\\(ELIXIR_BIN\\)")))) |
| 591 | "rabbitmq-queues" | 591 | (add-after 'install 'wrap-rabbitmq |
| 592 | "rabbitmq-server" | 592 | (lambda* (#:key outputs inputs #:allow-other-keys) |
| 593 | "rabbitmq-streams" | 593 | (let ((sbindir (string-append #$output "/lib/rabbitmq_server-" |
| 594 | "rabbitmq-upgrade"))) | 594 | #$version "/sbin"))) |
| 595 | ;; Starting RabbitMQ server requires: getconf, df, erl. | 595 | ;; Starting RabbitMQ server requires: getconf, df, erl. |
| 596 | (wrap-program (string-append sbindir "/rabbitmq-server") | 596 | (wrap-program (string-append sbindir "/rabbitmq-server") |
| 597 | `("PATH" ":" prefix | 597 | `("PATH" ":" prefix |
| 598 | (,(dirname (search-input-file inputs "bin/getconf")) | 598 | (,(dirname (search-input-file inputs "bin/getconf")) |
| 599 | ,(dirname (search-input-file inputs "bin/df")) | 599 | ,(dirname (search-input-file inputs "bin/df")) |
| 600 | ,(dirname (search-input-file inputs "bin/erl"))))) | 600 | ,(dirname (search-input-file inputs "bin/erl"))))) |
| 601 | ;; Each of the RabbitMQ programs requires Erlang cookie | 601 | ;; Each of the RabbitMQ programs requires Erlang cookie |
| 602 | ;; stored in RabbitMQ'S user home directory. | 602 | ;; stored in RabbitMQ'S user home directory. |
| 603 | (for-each (lambda (prog) | 603 | (for-each (lambda (prog) |
| 604 | (wrap-program (string-append sbindir "/" prog) | 604 | (wrap-program (string-append sbindir "/" prog) |
| 605 | `("PATH" suffix | 605 | `("PATH" suffix |
| 606 | (,(string-append #$erlang "/bin"))) | 606 | (,(string-append #$erlang "/bin"))) |
| 607 | `("HOME" = | 607 | `("HOME" = |
| 608 | ("/var/lib/rabbitmq")))) rabbitmq-programs)))) | 608 | ("/var/lib/rabbitmq")))) |
| 609 | (delete 'configure) | 609 | rabbitmq-programs)))) |
| 610 | (add-after 'install 'patch-scripts | 610 | (delete 'configure) |
| 611 | (lambda* (#:key inputs outputs #:allow-other-keys) | 611 | (add-after 'install 'patch-scripts |
| 612 | (substitute* (string-append #$output "/lib/rabbitmq_server-" | 612 | (lambda* (#:key inputs outputs #:allow-other-keys) |
| 613 | #$version "/sbin/rabbitmq-env") | 613 | (substitute* (string-append #$output "/lib/rabbitmq_server-" |
| 614 | (("basename") | 614 | #$version "/sbin/rabbitmq-env") |
| 615 | (which "basename")) | 615 | (("basename") |
| 616 | (("dirname") | 616 | (which "basename")) |
| 617 | (which "dirname")) | 617 | (("dirname") |
| 618 | (("readlink") | 618 | (which "dirname")) |
| 619 | (which "readlink"))))) | 619 | (("readlink") |
| 620 | (add-after 'install 'install-bin | 620 | (which "readlink"))))) |
| 621 | (lambda* (#:key inputs outputs #:allow-other-keys) | 621 | (add-after 'install 'install-bin |
| 622 | (let ((target (string-append #$output "/sbin")) | 622 | (lambda* (#:key inputs outputs #:allow-other-keys) |
| 623 | (sbindir (string-append #$output "/lib/rabbitmq_server-" | 623 | (let ((target (string-append #$output "/sbin")) |
| 624 | #$version "/sbin")) | 624 | (sbindir (string-append #$output "/lib/rabbitmq_server-" |
| 625 | (rabbitmq-programs (list "rabbitmqctl" | 625 | #$version "/sbin"))) |
| 626 | "rabbitmq-diagnostics" | 626 | (mkdir-p target) |
| 627 | "rabbitmq-plugins" | 627 | (for-each (lambda (prog) |
| 628 | "rabbitmq-queues" | 628 | (symlink (string-append sbindir "/" prog) |
| 629 | "rabbitmq-server" | 629 | (string-append target "/" prog))) |
| 630 | "rabbitmq-streams" | 630 | rabbitmq-programs)))))))) |
| 631 | "rabbitmq-upgrade"))) | ||
| 632 | (mkdir-p target) | ||
| 633 | (for-each (lambda (prog) | ||
| 634 | (symlink (string-append sbindir "/" prog) | ||
| 635 | (string-append target "/" prog))) | ||
| 636 | rabbitmq-programs))))))) | ||
| 637 | (inputs (list bash-minimal)) | 631 | (inputs (list bash-minimal)) |
| 638 | (native-inputs (list erlang elixir python-wrapper which p7zip)) | 632 | (native-inputs (list erlang elixir python-wrapper which p7zip)) |
| 639 | (synopsis | 633 | (synopsis |
