# -*- 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 3.6.5 categories net platforms darwin maintainers nomaintainer license MPL-1.1 MIT Apache-2 supported_archs noarch 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}/ use_xz yes distfiles ${name}-generic-unix-${version}${extract.suffix} worksrcdir [string map {- _} $name]-$version checksums rmd160 6133c55ae339c5e0b86895830ec42524530521f1 \ sha256 232d558addf74cb371fc65ca10a7b3a2b6b31951b39baa1610488135d0f8ebf1 depends_lib port:erlang depends_build port:libxslt platform darwin 8 { depends_build-append port:py26-simplejson build.args PYTHON=${prefix}/bin/python2.6 } platform darwin 9 { depends_build-append port:py26-simplejson build.args PYTHON=${prefix}/bin/python2.6 } # no need for simplejson on Snow Leopard or higher if {${os.major} > 9 && ${os.platform} eq "darwin"} { # python3.X doesn't work build.args PYTHON=python2.7 } set serveruser rabbitmq set servergroup rabbitmq set serverhome ${prefix}/var/lib/rabbitmq set logdir ${prefix}/var/log/rabbitmq set confdir ${prefix}/etc/rabbitmq set mnesiadbdir ${prefix}/var/lib/rabbitmq/mnesia set plistloc ${prefix}/etc/LaunchDaemons/org.macports.rabbitmq-server set rootdest ${prefix}/lib/rabbitmq set rootserver ${rootdest}/lib/${worksrcdir} set sbindir ${destroot}${rootdest}/bin set wrappersbin ${destroot}${prefix}/sbin set realsbin ${destroot}${rootserver}/sbin set mansrc ${workpath}/${worksrcdir}/share/man set mandest ${destroot}${prefix}/share/man add_users ${serveruser} group=${servergroup} realname=RabbitMQ\ Server home=${serverhome} use_configure no build {} destroot.keepdirs \ ${destroot}${confdir} \ ${destroot}${logdir} \ ${destroot}${mnesiadbdir} destroot { # This is a hack: We need to patch the startupitem, so generate it manually # here, then define the function to empty to avoid overwriting it later package require portstartupitem 1.0 portstartupitem::startupitem_create proc portstartupitem::startupitem_create {args} {} system -W "${destroot}${plistloc}" "patch <${filespath}/patch-org.macports.rabbitmq-server.plist.diff" xinstall -d -m 775 ${destroot}${confdir} 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} xinstall -d -g [existsgroup ${servergroup}] -m 775 ${destroot}${rootserver} xinstall -d -g [existsgroup ${servergroup}] -m 775 ${destroot} xinstall -d -g [existsgroup ${servergroup}] -m 775 ${sbindir} copy {*}[glob ${worksrcpath}/*] ${destroot}${rootserver}/ reinplace -E "s:^SYS_PREFIX=\${RABBITMQ_HOME}$:SYS_PREFIX=${prefix}:" \ ${realsbin}/rabbitmq-defaults reinplace -E "s:^SYS_PREFIX=$:SYS_PREFIX=${prefix}:" \ ${realsbin}/rabbitmq-defaults xinstall -m 755 ${filespath}/rabbitmq-script-wrapper \ ${wrappersbin}/rabbitmq-server reinplace -E "s:@MACPORTS_PREFIX@:${prefix}:g" \ ${wrappersbin}/rabbitmq-server reinplace -E "s:/usr/lib/rabbitmq/bin/:${prefix}/lib/rabbitmq/bin/:g" \ ${wrappersbin}/rabbitmq-server reinplace -E "s:/var/lib/rabbitmq:${prefix}/var/lib/rabbitmq:g" \ ${wrappersbin}/rabbitmq-server copy ${wrappersbin}/rabbitmq-server ${wrappersbin}/rabbitmqctl copy ${wrappersbin}/rabbitmq-server ${wrappersbin}/rabbitmq-plugins file attributes ${destroot}${serverhome} -owner ${serveruser} -group ${servergroup} file attributes ${destroot}${logdir} -owner ${serveruser} -group ${servergroup} foreach script {rabbitmq-defaults rabbitmq-env rabbitmq-plugins rabbitmq-server rabbitmqctl} { ln -s ../lib/${worksrcdir}/sbin/${script} ${sbindir}/${script} } xinstall -m 644 -W ${mansrc}/man1 rabbitmq-server.1.gz rabbitmqctl.1.gz rabbitmq-plugins.1.gz \ ${mandest}/man1/ xinstall -m 644 -W ${mansrc}/man5 rabbitmq-env.conf.5.gz ${mandest}/man5/ } 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 livecheck.type regex livecheck.url http://www.rabbitmq.com/releases/rabbitmq-server/current/ livecheck.regex "${name}-(\\d+(?:\\.\\d+)*)"