summaryrefslogtreecommitdiff
path: root/packaging/macports/net/rabbitmq-server/Portfile
blob: d9d16dbbb2881011bb48a049a7cee1db875d1598 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:filetype=tcl:et:sw=4:ts=4:sts=4
# $Id$

PortSystem      1.0

name            rabbitmq-server
version         1.5.3
categories      net
maintainers     tonyg@rabbitmq.com
platforms       darwin
description     The RabbitMQ AMQP Server
long_description    \
    RabbitMQ is an implementation of AMQP, the emerging standard for \
    high performance enterprise messaging. The RabbitMQ server is a \
    robust and scalable implementation of an AMQP broker.


homepage        http://www.rabbitmq.com/
master_sites    http://www.rabbitmq.com/releases/rabbitmq-server/v${version}/

checksums \
    md5 3242a67885c2471b5ab62254bf024679 \
    sha1 f4d6a01eaa2c74fa32f567fe410d21d9be1b43aa \
    rmd160 1a1c4b97d765548028c161d1617905151ca9e040

depends_build   port:erlang port:py25-simplejson
depends_run     port:erlang

set serveruser  rabbitmq
set servergroup rabbitmq
set serverhome ${prefix}/var/lib/rabbitmq
set logdir ${prefix}/var/log/rabbitmq
set mnesiadbdir ${prefix}/var/lib/rabbitmq/mnesia
set plistloc ${prefix}/etc/LaunchDaemons/org.macports.rabbitmq-server

use_configure   no

use_parallel_build yes

build.args      PYTHON=${prefix}/bin/python2.5

destroot.destdir \
    TARGET_DIR=${destroot}${prefix}/lib/erlang/lib/rabbitmq_server-${version} \
    SBIN_DIR=${destroot}${prefix}/sbin \
    MAN_DIR=${destroot}${prefix}/share/man

destroot.keepdirs \
    ${destroot}${logdir} \
    ${destroot}${mnesiadbdir}

pre-destroot {
    addgroup ${servergroup}
    adduser ${serveruser} gid=[existsgroup ${servergroup}] realname=RabbitMQ\ Server home=${serverhome}
}

post-destroot {
    xinstall -d -g [existsgroup ${servergroup}] -m 775 ${destroot}${logdir}
    xinstall -d -g [existsgroup ${servergroup}] -m 775 ${destroot}${serverhome}
    xinstall -d -g [existsgroup ${servergroup}] -m 775 ${destroot}${mnesiadbdir}

    reinplace -E "s:(/etc/rabbitmq/rabbitmq.conf):${prefix}\\1:g" \
        ${destroot}${prefix}/sbin/rabbitmq-multi \
        ${destroot}${prefix}/sbin/rabbitmq-server \
        ${destroot}${prefix}/sbin/rabbitmqctl
    reinplace -E "s:(RABBITMQ_CLUSTER_CONFIG_FILE)=/:\\1=${prefix}/:" \
        ${destroot}${prefix}/sbin/rabbitmq-multi \
        ${destroot}${prefix}/sbin/rabbitmq-server \
        ${destroot}${prefix}/sbin/rabbitmqctl
    reinplace -E "s:(RABBITMQ_LOG_BASE)=/:\\1=${prefix}/:" \
        ${destroot}${prefix}/sbin/rabbitmq-multi \
        ${destroot}${prefix}/sbin/rabbitmq-server \
        ${destroot}${prefix}/sbin/rabbitmqctl
    reinplace -E "s:(RABBITMQ_MNESIA_BASE)=/:\\1=${prefix}/:" \
        ${destroot}${prefix}/sbin/rabbitmq-multi \
        ${destroot}${prefix}/sbin/rabbitmq-server \
        ${destroot}${prefix}/sbin/rabbitmqctl
    reinplace -E "s:(RABBITMQ_PIDS_FILE)=/:\\1=${prefix}/:" \
        ${destroot}${prefix}/sbin/rabbitmq-multi \
        ${destroot}${prefix}/sbin/rabbitmq-server \
        ${destroot}${prefix}/sbin/rabbitmqctl

    file rename ${destroot}${prefix}/sbin/rabbitmqctl ${destroot}${prefix}/sbin/rabbitmqctl_real
    xinstall -m 555 ${filespath}/rabbitmqctl_wrapper ${destroot}${prefix}/sbin
    file rename ${destroot}${prefix}/sbin/rabbitmqctl_wrapper ${destroot}${prefix}/sbin/rabbitmqctl

    reinplace -E "s:@PREFIX@:${prefix}:" \
        ${destroot}${prefix}/sbin/rabbitmqctl
}

pre-install {
    system "cd ${destroot}${plistloc}; patch <${filespath}/patch-org.macports.rabbitmq-server.plist.diff"
}

startupitem.create      yes
startupitem.init        "PATH=${prefix}/bin:${prefix}/sbin:\$PATH; export PATH"
startupitem.start       "rabbitmq-server 2>&1"
startupitem.stop        "rabbitmqctl stop 2>&1"
startupitem.logfile     ${prefix}/var/log/rabbitmq/startupitem.log