blob: a13257cc225816d87516fa0958dd36c3da6c7ffe (
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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
|
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{10..12} )
inherit python-any-r1 systemd toolchain-funcs
DESCRIPTION="An Open Source MQTT v3 Broker"
HOMEPAGE="https://mosquitto.org/ https://github.com/eclipse/mosquitto"
SRC_URI="https://mosquitto.org/files/source/${P}.tar.gz"
LICENSE="EPL-1.0"
SLOT="0"
KEYWORDS="amd64 ~arm ~arm64 ~x86"
IUSE="+bridge examples +persistence +srv ssl systemd tcpd test websockets"
RESTRICT="!test? ( test )"
REQUIRED_USE="test? ( bridge )"
RDEPEND="
acct-user/mosquitto
acct-group/mosquitto
dev-libs/cJSON
srv? ( net-dns/c-ares:= )
ssl? (
dev-libs/openssl:0=
)
systemd? ( sys-apps/systemd:= )
tcpd? ( sys-apps/tcp-wrappers )
websockets? ( net-libs/libwebsockets[lejp] )
"
DEPEND="
${RDEPEND}
test? ( dev-util/cunit )
"
BDEPEND="
test? (
${PYTHON_DEPS}
$(python_gen_any_dep 'dev-python/psutil[${PYTHON_USEDEP}]')
)
"
pkg_setup() {
use test && python_setup
}
_emake() {
local LIBDIR=$(get_libdir)
emake \
CC="$(tc-getCC)" \
CXX="$(tc-getCXX)" \
CLIENT_LDFLAGS="${LDFLAGS}" \
LIB_SUFFIX="${LIBDIR:3}" \
WITH_BRIDGE="$(usex bridge)" \
WITH_PERSISTENCE="$(usex persistence)" \
WITH_SRV="$(usex srv)" \
WITH_SYSTEMD="$(usex systemd)" \
WITH_TLS="$(usex ssl)" \
WITH_WEBSOCKETS="$(usex websockets)" \
WITH_WRAP="$(usex tcpd)" \
"$@"
}
src_prepare() {
default
if use persistence; then
sed -i -e "/^#autosave_interval/s|^#||" \
-e "s|^#persistence false$|persistence true|" \
-e "/^#persistence_file/s|^#||" \
-e "s|#persistence_location|persistence_location /var/lib/mosquitto/|" \
mosquitto.conf || die
fi
# Remove failing tests
sed -i \
-e '/06-bridge-reconnect-local-out.py/d' \
test/broker/Makefile || die
sed -i \
-e '/02-subscribe-qos1-async2.test/d' \
test/lib/Makefile || die
# Extend test timeout to prevent spurious failures
sed -i -e 's/SUB_TIMEOUT=1/SUB_TIMEOUT=3/' \
test/client/test.sh || die
use test && python_fix_shebang test
}
src_compile() {
_emake
}
src_test() {
_emake test
}
src_install() {
_emake DESTDIR="${D}" prefix=/usr install
keepdir /var/lib/mosquitto
fowners mosquitto:mosquitto /var/lib/mosquitto
dodoc README.md CONTRIBUTING.md ChangeLog.txt
doinitd "${FILESDIR}"/mosquitto
insinto /etc/mosquitto
doins mosquitto.conf
insinto /usr/share/mosquitto
doins misc/letsencrypt/mosquitto-copy.sh
systemd_newunit "${FILESDIR}/mosquitto.notify.service" mosquitto.service
if use examples; then
docompress -x "/usr/share/doc/${PF}/examples"
dodoc -r examples
fi
}
pkg_postinst() {
for v in ${REPLACING_VERSIONS}; do
if [[ $(ver_cut 1 "$v") -lt 2 ]]; then
elog
elog "Please read the migration guide at:"
elog "https://mosquitto.org/documentation/migrating-to-2-0/"
elog
elog "If you use Lets Encrypt TLS certificates, take note of"
elog "the changes required to run the daemon as the unprivileged"
elog "mosquitto user. The mosquitto-copy.sh script has been"
elog "installed to /usr/share/mosquitto/ for your convenience."
elog
fi
done
}
|