e9315f62483d17520235bbe07436e98e381d6fec
[pti/rtp.git] / meta-stx / recipes-extended / rabbitmq / rabbitmq-server_3.6.5.bb
1 #
2 ## Copyright (C) 2019 Wind River Systems, Inc.
3 #
4 #  Licensed under the Apache License, Version 2.0 (the "License");
5 #  you may not use this file except in compliance with the License.
6 #  You may obtain a copy of the License at
7 #
8 #      http://www.apache.org/licenses/LICENSE-2.0
9 #
10 #  Unless required by applicable law or agreed to in writing, software
11 #  distributed under the License is distributed on an "AS IS" BASIS,
12 #  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 #  See the License for the specific language governing permissions and
14 #  limitations under the License.
15
16 DESCRIPTION = "High-performance AMQP-compliant message broker written in Erlang."
17 HOMEPAGE = "http://www.rabbitmq.com/"
18 SECTION = "network"
19
20 LICENSE = "MPL-1.1"
21 LIC_FILES_CHKSUM = "file://LICENSE-MPL-RabbitMQ;md5=ce8293a7cc187353c90cb24a8ecee4ce"
22
23 SRC_URI = " \
24     http://www.rabbitmq.com/releases/rabbitmq-server/v${PV}/${PN}-${PV}.tar.xz \
25     file://rabbitmq-server-0001-Remove-excessive-sd_notify-code.patch \
26     file://rabbitmq-server-0002-Add-systemd-notification-support.patch \
27     file://rabbitmq-server-0003-Revert-Distinct-exit-codes-for-CLI-utilities.patch \
28     file://rabbitmq-server-0004-Allow-guest-login-from-non-loopback-connections.patch \
29     file://rabbitmq-server-0005-Avoid-RPC-roundtrips-in-list-commands.patch \
30     file://rabbitmq-server-0006-rabbit_prelaunch-must-use-RABBITMQ_SERVER_ERL_ARGS.patch \
31     file://rabbitmq-common-0001-Avoid-RPC-roundtrips-while-listing-items.patch;patchdir=deps/rabbit_common \
32     file://rabbitmq-common-0002-Use-proto_dist-from-command-line.patch;patchdir=deps/rabbit_common \
33     file://rabbitmq-server-fails-with-home-not-set.patch \
34     file://rabbitmq-script-wrapper \
35     file://rabbitmq-server.logrotate \
36     file://rabbitmq-server.tmpfiles \
37 "
38
39 SRC_URI[md5sum] = "e9f96b5763a89a246f53250e46c2796b"
40 SRC_URI[sha256sum] = "9550433ca8aaf5130bf5235bb978c44d3c4694cbd09d97114b3859f4895788ec"
41
42 DEPENDS = " \
43     coreutils-native\
44     erlang-ssl \
45     erlang-ssl-dev \
46     erlang-native \
47     libxslt \
48     libxslt-native \
49     python-simplejson \
50     rsync-native \
51     unzip-native \
52     xmlto-native \
53     zip-native \
54 "
55
56 # ../../../../../recipe-sysroot/usr/lib/erlang/lib/ssl-5.3.3/src/
57 do_compile() {
58     export SOCKJS_ERLC_OPTS="-Dpre17_type_specs"
59     rm -rf deps/rabbit_common/include/ssl
60     mkdir ${S}/deps/rabbit_common/include/ssl
61     cp -r ${RECIPE_SYSROOT}/${libdir}/erlang/lib/ssl-5.3.3/src ${S}/deps/rabbit_common/include/ssl
62     oe_runmake
63 }
64
65 do_install() {
66     RABBIT_LIB_DIR=${libdir}/rabbitmq
67
68     oe_runmake install \
69                DESTDIR=${D} \
70                PREFIX=${prefix} \
71                RMQ_ROOTDIR=${RABBIT_LIB_DIR}
72
73     oe_runmake install-man \
74                DESTDIR=${D} \
75                PREFIX=${prefix} \
76                RMQ_ROOTDIR=${RABBIT_LIB_DIR}
77
78     mkdir -p ${D}${localstatedir}/lib/rabbitmq/mnesia
79     mkdir -p ${D}${localstatedir}/log/rabbitmq
80
81     # Copy all necessary lib files etc.
82     install -p -D -m 0644 ${S}/docs/rabbitmq-server.service.example ${D}${systemd_system_unitdir}/rabbitmq-server.service
83     install -p -D -m 0755 ${WORKDIR}/rabbitmq-script-wrapper ${D}${sbindir}/rabbitmqctl
84     install -p -D -m 0755 ${WORKDIR}/rabbitmq-script-wrapper ${D}${sbindir}/rabbitmq-server
85     install -p -D -m 0755 ${WORKDIR}/rabbitmq-script-wrapper ${D}${sbindir}/rabbitmq-plugins
86
87     # Make necessary symlinks
88     mkdir -p ${D}${RABBIT_LIB_DIR}/bin
89     for app in rabbitmq-defaults rabbitmq-env rabbitmq-plugins rabbitmq-server rabbitmqctl; do
90         ln -s ${RABBIT_LIB_DIR}/lib/rabbitmq_server-${PV}/sbin/${app} ${D}${RABBIT_LIB_DIR}/bin/${app}
91     done
92
93     install -p -D -m 0755 ${S}/scripts/rabbitmq-server.ocf ${D}${exec_prefix}/lib/ocf/resource.d/rabbitmq/rabbitmq-server
94     install -p -D -m 0755 ${S}/scripts/rabbitmq-server-ha.ocf ${D}${exec_prefix}/lib/ocf/resource.d/rabbitmq/rabbitmq-server-ha
95
96     install -p -D -m 0644 ${WORKDIR}/rabbitmq-server.logrotate ${D}${sysconfdir}/logrotate.d/rabbitmq-server
97
98     install -p -D -m 0644 ${S}/docs/rabbitmq.config.example ${D}${sysconfdir}/rabbitmq/rabbitmq.config
99
100     rm -rf ${D}${RABBIT_LIB_DIR}/lib/rabbitmq_server-${PV}/{LICENSE,LICENSE-*,INSTALL}
101
102     install -p -D -m 0644 ${WORKDIR}/rabbitmq-server.tmpfiles ${D}${prefix}/lib/tmpfiles.d/${BPN}.conf
103 }
104
105 inherit useradd systemd openssl10
106
107 USERADD_PACKAGES = "${PN}"
108 GROUPADD_PARAM_${PN} = "--system rabbitmq"
109 USERADD_PARAM_${PN}  = " \
110     --system --create-home \
111     --home ${localstatedir}/lib/rabbitmq \
112     -g rabbitmq rabbitmq \
113 "
114
115 SYSTEMD_SERVICE_${PN} = "rabbitmq-server.service"
116 SYSTEMD_AUTO_ENABLE_${PN} = "disable"
117
118 FILES_${PN} += " \
119     ${RABBIT_LIB_DIR}/* \
120     ${exec_prefix}/lib/* \
121     ${localstatedir} \
122 "
123
124 FILES_${PN}-doc += "LICENSE* INSTALL"
125
126 RDEPENDS_${PN} = " \
127     erlang \
128     erlang-modules \
129 "
130
131 INSANE_SKIP_${PN} = "unsafe-references-in-scripts"