nixpkgs/pkgs/servers/amqp/rabbitmq-server/default.nix

68 lines
2.0 KiB
Nix
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{ stdenv, fetchurl
, erlang, python, libxml2, libxslt, xmlto
, docbook_xml_dtd_45, docbook_xsl, zip, unzip, rsync
, AppKit, Carbon, Cocoa
, getconf
}:
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 = "1zdmil657mhjmd20jv47s5dfpj2liqwvyg0zv2ky3akanfpgj98y";
};
buildInputs =
[ erlang python libxml2 libxslt xmlto docbook_xml_dtd_45 docbook_xsl zip unzip rsync ]
++ stdenv.lib.optionals stdenv.isDarwin [ AppKit Carbon Cocoa ];
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
# 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"
# theres 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 ];
};
}