]> git.pld-linux.org Git - packages/mosquitto.git/blob - mosquitto.spec
up to 2.0.18
[packages/mosquitto.git] / mosquitto.spec
1 # TODO
2 # - initscript
3 #
4 # Conditional build:
5 %bcond_without  systemd         # systemd support
6
7 Summary:        An Open Source MQTT v3.1 Broker
8 Name:           mosquitto
9 Version:        2.0.18
10 Release:        1
11 License:        BSD
12 Group:          Applications
13 Source0:        https://mosquitto.org/files/source/%{name}-%{version}.tar.gz
14 # Source0-md5:  7fe95d0bef1aacd291d21d7752fbd21b
15 Source1:        mosquitto.service
16 URL:            http://mosquitto.org/
17 BuildRequires:  cjson-devel
18 BuildRequires:  cmake >= 3.1
19 BuildRequires:  libstdc++-devel
20 BuildRequires:  libwrap-devel
21 BuildRequires:  libxslt-progs
22 BuildRequires:  openssl-devel
23 BuildRequires:  pkgconfig
24 BuildRequires:  rpmbuild(macros) >= 1.742
25 %{?with_systemd:BuildRequires:  systemd-devel}
26 BuildRequires:  uthash-devel
27 Requires(postun):       /usr/sbin/groupdel
28 Requires(postun):       /usr/sbin/userdel
29 Requires(pre):  /bin/id
30 Requires(pre):  /usr/bin/getgid
31 Requires(pre):  /usr/sbin/groupadd
32 Requires(pre):  /usr/sbin/useradd
33 Suggests:       %{name}-admin = %{version}-%{release}
34 Suggests:       %{name}-clients = %{version}-%{release}
35 Suggests:       %{name}-plugin-dynamic-security = %{version}-%{release}
36 Provides:       group(mosquitto)
37 Provides:       user(mosquitto)
38 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
39
40 %define         dynsec_plugin_path      %{_libdir}/mosquitto_dynamic_security.so
41
42 %description
43 Mosquitto is an open source (BSD licensed) message broker that
44 implements the MQ Telemetry Transport protocol version 3.1. MQTT
45 provides a lightweight method of carrying out messaging using a
46 publish/subscribe model. This makes it suitable for "machine to
47 machine" messaging such as with low power sensors or mobile devices
48 such as phones, embedded computers or micro-controllers like the
49 Arduino.
50
51 %package admin
52 Summary:        Tools to manage Mosquitto configuration
53 Group:          Applications/Networking
54 Requires:       libmosquitto = %{version}-%{release}
55
56 %description admin
57 Tools to manage Mosquitto configuration.
58
59 %package clients
60 Summary:        Mosquitto command line pub/sub clients
61 Group:          Applications/Networking
62 Requires:       libmosquitto = %{version}-%{release}
63
64 %description clients
65 This is two MQTT version 3 clients. The first can publish messages to
66 a broker, the second can subscribe to multiple topics on a broker.
67
68 %package plugin-dynamic-security
69 Summary:        Mosquitto Dynamic Security plugin
70 Requires:       %{name} = %{version}-%{release}
71
72 %description plugin-dynamic-security
73 The Dynamic Security plugin is a Mosquitto plugin which provides role
74 based authentication and access control features that can be updated
75 whilst the broker is running, using a special topic based API.
76
77 %package -n libmosquitto
78 Summary:        MQTT C client library
79 Group:          Development/Libraries
80
81 %description -n libmosquitto
82 This is a library that provides a means of implementing MQTT version 3
83 clients. MQTT provides a lightweight method of carrying out messaging
84 using a publish/subscribe model.
85
86 %package -n libmosquitto-devel
87 Summary:        MQTT C client library development files
88 Group:          Development/Libraries
89 Requires:       libmosquitto = %{version}-%{release}
90
91 %description -n libmosquitto-devel
92 This is a library that provides a means of implementing MQTT version 3
93 clients. MQTT provides a lightweight method of carrying out messaging
94 using a publish/subscribe model.
95
96 %package -n libmosquittopp
97 Summary:        MQTT C++ client library
98 Group:          Development/Libraries
99
100 %description -n libmosquittopp
101 This is a library that provides a means of implementing MQTT version 3
102 clients. MQTT provides a lightweight method of carrying out messaging
103 using a publish/subscribe model.
104
105 %package -n libmosquittopp-devel
106 Summary:        MQTT C++ client library development files
107 Group:          Development/Libraries
108 Requires:       libmosquitto-devel = %{version}-%{release}
109 Requires:       libmosquittopp = %{version}-%{release}
110
111 %description -n libmosquittopp-devel
112 This is a library that provides a means of implementing MQTT version 3
113 clients. MQTT provides a lightweight method of carrying out messaging
114 using a publish/subscribe model.
115
116 %prep
117 %setup -q
118
119 %build
120 install -d build
121 cd build
122 %cmake \
123         -DUSE_LIBWRAP:BOOL=ON \
124         -DWITH_BUNDLED_DEPS:BOOL=OFF \
125         %{cmake_on_off systemd WITH_SYSTEMD} \
126         ..
127 %{__make}
128 cd ..
129
130 %install
131 rm -rf $RPM_BUILD_ROOT
132
133 install -d $RPM_BUILD_ROOT%{_sysconfdir}/mosquitto/conf.d
134
135 %{__make} -C build install \
136         DESTDIR=$RPM_BUILD_ROOT
137
138 for file in aclfile pskfile pwfile ; do
139         %{__rm} $RPM_BUILD_ROOT%{_sysconfdir}/mosquitto/$file.example
140         :> $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/$file
141 done
142
143 cat <<EOF >> $RPM_BUILD_ROOT%{_sysconfdir}/mosquitto/%{name}.conf
144 include_dir %{_sysconfdir}/mosquitto/conf.d
145 EOF
146
147 cat <<EOF >> $RPM_BUILD_ROOT%{_sysconfdir}/mosquitto/conf.d/90-dynamic-security.conf
148 plugin %{dynsec_plugin_path}
149 #plugin_opt_config_file %{_sysconfdir}/mosquitto/dynamic-security.json
150 EOF
151
152 %{?with_systemd:install -D %{SOURCE1} $RPM_BUILD_ROOT%{systemdunitdir}/mosquitto.service}
153
154 %clean
155 rm -rf $RPM_BUILD_ROOT
156
157 %pre
158 %groupadd -g 293 -r mosquitto
159 %useradd -u 293 -r -g mosquitto -d %{_sysconfdir}/%{name} -s /sbin/nologin -c "Mosquitto Broker" mosquitto
160
161 if [ "$1" = "0" ]; then
162         %userremove mosquitto
163         %groupremove mosquitto
164 fi
165
166 %post
167 %{?with_systemd:%systemd_post mosquitto.service}
168
169 %preun
170 %{?with_systemd:%systemd_preun mosquitto.service}
171
172 %postun
173 %{?with_systemd:%systemd_reload}
174
175 %post   -n libmosquitto -p /sbin/ldconfig
176 %postun -n libmosquitto -p /sbin/ldconfig
177
178 %post   -n libmosquittopp -p /sbin/ldconfig
179 %postun -n libmosquittopp -p /sbin/ldconfig
180
181 %triggerpostun -- mosquitto < 2.0.17
182 %systemd_trigger mosquitto.service
183
184 %files
185 %defattr(644,root,root,755)
186 %doc LICENSE.txt CONTRIBUTING.md ChangeLog.txt README.md examples aclfile.example mosquitto.conf pskfile.example pwfile.example
187 %attr(700,mosquitto,mosquitto) %dir %{_sysconfdir}/%{name}
188 %attr(700,mosquitto,mosquitto) %dir %{_sysconfdir}/%{name}/conf.d
189 %attr(600,mosquitto,mosquitto) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/%{name}.conf
190 %attr(600,mosquitto,mosquitto) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/aclfile
191 %attr(600,mosquitto,mosquitto) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/pskfile
192 %attr(600,mosquitto,mosquitto) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/pwfile
193 %attr(755,root,root) %{_bindir}/mosquitto_passwd
194 %attr(755,root,root) %{_sbindir}/mosquitto
195 %{?with_systemd:%{systemdunitdir}/mosquitto.service}
196 %{_mandir}/man1/mosquitto_passwd.1*
197 %{_mandir}/man5/mosquitto.conf.5*
198 %{_mandir}/man7/mosquitto-tls.7*
199 %{_mandir}/man7/mqtt.7*
200 %{_mandir}/man8/mosquitto.8*
201
202 %files admin
203 %defattr(644,root,root,755)
204 %attr(755,root,root) %{_bindir}/mosquitto_ctrl
205 %{_mandir}/man1/mosquitto_ctrl.1*
206 %{_mandir}/man1/mosquitto_ctrl_dynsec.1*
207
208 %files clients
209 %defattr(644,root,root,755)
210 %attr(755,root,root) %{_bindir}/mosquitto_pub
211 %attr(755,root,root) %{_bindir}/mosquitto_rr
212 %attr(755,root,root) %{_bindir}/mosquitto_sub
213 %{_mandir}/man1/mosquitto_pub.1*
214 %{_mandir}/man1/mosquitto_rr.1*
215 %{_mandir}/man1/mosquitto_sub.1*
216
217 %files plugin-dynamic-security
218 %defattr(644,root,root,755)
219 %attr(600,mosquitto,mosquitto) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/conf.d/90-dynamic-security.conf
220 %attr(755,root,root) %{dynsec_plugin_path}
221
222 %files -n libmosquitto
223 %defattr(644,root,root,755)
224 %attr(755,root,root) %{_libdir}/libmosquitto.so.*.*.*
225 %ghost %{_libdir}/libmosquitto.so.1
226
227 %files -n libmosquitto-devel
228 %defattr(644,root,root,755)
229 %{_mandir}/man3/libmosquitto.3*
230 %{_libdir}/libmosquitto.so
231 %{_includedir}/mosquitto_broker.h
232 %{_includedir}/mosquitto.h
233 %{_includedir}/mosquitto_plugin.h
234 %{_includedir}/mqtt_protocol.h
235 %{_pkgconfigdir}/libmosquitto.pc
236 %{_pkgconfigdir}/libmosquittopp.pc
237
238 %files -n libmosquittopp
239 %defattr(644,root,root,755)
240 %attr(755,root,root) %{_libdir}/libmosquittopp.so.*.*.*
241 %ghost %{_libdir}/libmosquittopp.so.1
242
243 %files -n libmosquittopp-devel
244 %defattr(644,root,root,755)
245 %{_libdir}/libmosquittopp.so
246 %{_includedir}/mosquittopp.h
This page took 0.100758 seconds and 4 git commands to generate.