summaryrefslogtreecommitdiffstats
path: root/pkgs/servers/amqp
diff options
context:
space:
mode:
authorProfpatsch <mail@profpatsch.de>2018-02-19 18:54:16 +0100
committerProfpatsch <mail@profpatsch.de>2018-02-22 17:04:20 +0100
commit186c76539855a8d1a3e76af0ff95b5de50aa48f8 (patch)
treebd23dad23081c3fa7edd8e5f120f33f97d911e01 /pkgs/servers/amqp
parentf1dfc2212853daa57d676b1e5d79d3df625c6573 (diff)
rabbitmq: 3.6.10 -> 3.6.15 (and various improvements)
- split outputs (doc, man, out) - a new runtime dependency on getconf - fix up SCRIPTS_DIR in wrapper - clean output folder of stray doc files - add license & maintainer Tested with `nixos/tests/rabbitmq.nix`, inside a docker image and manually.
Diffstat (limited to 'pkgs/servers/amqp')
-rw-r--r--pkgs/servers/amqp/rabbitmq-server/default.nix59
1 files changed, 46 insertions, 13 deletions
diff --git a/pkgs/servers/amqp/rabbitmq-server/default.nix b/pkgs/servers/amqp/rabbitmq-server/default.nix
index 889ec4d3745f..3d4a8902c918 100644
--- a/pkgs/servers/amqp/rabbitmq-server/default.nix
+++ b/pkgs/servers/amqp/rabbitmq-server/default.nix
@@ -1,40 +1,73 @@
-{ stdenv, fetchurl, erlang, python, libxml2, libxslt, xmlto
+{ stdenv, fetchurl, runCommand
+, erlang, python, libxml2, libxslt, xmlto
, docbook_xml_dtd_45, docbook_xsl, zip, unzip, rsync
, AppKit, Carbon, Cocoa
}:
-stdenv.mkDerivation rec {
- name = "rabbitmq-server-${version}";
+let
+ # we only need that one glibc binary (28k instead of 2.7M)
+ getconf = runCommand "getconf" {} ''
+ install -D ${stdenv.lib.getBin stdenv.cc.libc}/bin/getconf $out/bin/getconf
+ '';
- version = "3.6.10";
+in stdenv.mkDerivation rec {
+ name = "rabbitmq-server-${version}";
+ version = "3.6.15";
src = fetchurl {
url = "https://www.rabbitmq.com/releases/rabbitmq-server/v${version}/${name}.tar.xz";
- sha256 = "0k1rhg1a51201b1hp6vaf4fk48hqz7m9hw55b8xnnyz2ld88jiqg";
+ sha256 = "1zdmil657mhjmd20jv47s5dfpj2liqwvyg0zv2ky3akanfpgj98y";
};
buildInputs =
[ erlang python libxml2 libxslt xmlto docbook_xml_dtd_45 docbook_xsl zip unzip rsync ]
++ stdenv.lib.optionals stdenv.isDarwin [ AppKit Carbon Cocoa ];
- preBuild =
- ''
- # Fix the "/usr/bin/env" in "calculate-relative".
- patchShebangs .
- '';
+ outputs = [ "out" "man" "doc" ];
+
+ postPatch = with stdenv.lib; ''
+ # patch the path to getconf
+ substituteInPlace deps/rabbit_common/src/vm_memory_monitor.erl \
+ --replace "getconf PAGESIZE" "${getconf}/bin/getconf PAGESIZE"
+ '';
+
+ preBuild = ''
+ # Fix the "/usr/bin/env" in "calculate-relative".
+ patchShebangs .
+ '';
installFlags = "PREFIX=$(out) RMQ_ERLAPP_DIR=$(out)";
installTargets = "install install-man";
- postInstall =
- ''
- echo 'PATH=${erlang}/bin:''${PATH:+:}$PATH' >> $out/sbin/rabbitmq-env
+ postInstall = ''
+ echo 'PATH=${erlang}/bin:''${PATH:+:}$PATH' >> $out/sbin/rabbitmq-env
+
+ # we know exactly where rabbitmq is gonna be,
+ # so we patch that into the env-script
+ substituteInPlace $out/sbin/rabbitmq-env \
+ --replace 'RABBITMQ_SCRIPTS_DIR=`dirname $SCRIPT_PATH`' \
+ "RABBITMQ_SCRIPTS_DIR=$out/sbin"
+
+ # there’s a few stray files that belong into share
+ mkdir -p $doc/share/doc/rabbitmq-server
+ mv $out/LICENSE* $doc/share/doc/rabbitmq-server
+
+ # and an unecessarily copied INSTALL file
+ rm $out/INSTALL
+
+ # patched into a source file above;
+ # needs to be explicitely passed to not be stripped by fixup
+ mkdir -p $out/nix-support
+ echo "${getconf}" > $out/nix-support/dont-strip-getconf
+
'';
meta = {
homepage = http://www.rabbitmq.com/;
description = "An implementation of the AMQP messaging protocol";
+ license = stdenv.lib.licenses.mpl11;
platforms = stdenv.lib.platforms.unix;
+ maintainers = with stdenv.lib.maintainers; [ Profpatsch ];
};
}