5895de181a
- Update to 1.4.13 * Security: - Fix CVE-2017-9868. The persistence file was readable by all local users, potentially allowing sensitive information to be leaked. This can also be fixed administratively, by restricting access to the directory in which the persistence file is stored. * Broker: - Fix for poor websockets performance. - Fix lazy bridges not timing out for idle_timeout. - Fix problems with large retained messages over websockets. - Set persistence file to only be readable by owner, except on Windows. - Fix CONNECT check for reserved=0, as per MQTT v3.1.1 check MQTT-3.1.2-3. - When the broker stop, wills for any connected clients are now "sent". - Auth plugins can be configured to disable the check for +# in usernames/client ids with the auth_plugin_deny_special_chars option. Partially closes #462. - Restrictions for CVE-2017-7650 have been relaxed - '/' is allowed in usernames/client ids. Remainder of fix for #462. Clients: - Don't use / in auto-generated client ids. OBS-URL: https://build.opensuse.org/request/show/508416 OBS-URL: https://build.opensuse.org/package/show/network:messaging:mqtt/mosquitto?expand=0&rev=2
263 lines
9.0 KiB
RPMSpec
263 lines
9.0 KiB
RPMSpec
#
|
|
# spec file for package mosquitto
|
|
#
|
|
# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
|
|
#
|
|
# All modifications and additions to the file contributed by third parties
|
|
# remain the property of their copyright owners, unless otherwise agreed
|
|
# upon. The license for this file, and modifications and additions to the
|
|
# file, is the same license as for the pristine package itself (unless the
|
|
# license for the pristine package is not an Open Source License, in which
|
|
# case the license is the MIT License). An "Open Source License" is a
|
|
# license that conforms to the Open Source Definition (Version 1.9)
|
|
# published by the Open Source Initiative.
|
|
|
|
# Please submit bugfixes or comments via http://bugs.opensuse.org/
|
|
#
|
|
|
|
%if 0%{?suse_version} > 1230 || 0%{?rhel_version} > 600 || 0%{?centos_version} > 600 || 0%{?fedora_version} >= 20 || 0%{?el7}%{?fc20}%{?fc21}%{?fc22}%{?fc23}%{?fc24}%{?fc25}
|
|
%bcond_without systemd
|
|
%else
|
|
%bcond_with systemd
|
|
%endif
|
|
%bcond_without websockets
|
|
|
|
Name: mosquitto
|
|
Version: 1.4.13
|
|
Release: 0
|
|
License: EPL-1.0
|
|
Summary: An Open Source MQTT v3.1/v3.1.1 Broker
|
|
Url: http://mosquitto.org/
|
|
Group: System/Daemons
|
|
Source: http://mosquitto.org/files/source/mosquitto-%{version}.tar.gz
|
|
Source1: mosquitto.service
|
|
Source2: mosquitto.fw
|
|
Source4: README-conf-d
|
|
Source5: README-ca_certificates
|
|
Source6: README-certs
|
|
Patch: mosquitto-1.4.1_apparmor.patch
|
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
|
BuildRequires: cmake
|
|
BuildRequires: gcc-c++
|
|
BuildRequires: libcares-devel
|
|
BuildRequires: libuuid-devel
|
|
%if %{with websockets}
|
|
BuildRequires: libwebsockets-devel
|
|
%endif
|
|
BuildRequires: openssl-devel >= 1.0.0
|
|
BuildRequires: tcpd-devel
|
|
%if %{with systemd}
|
|
BuildRequires: pkgconfig(systemd)
|
|
%{?systemd_requires}
|
|
%endif
|
|
|
|
%define _fwdefdir /etc/sysconfig/SuSEfirewall2.d/services
|
|
%define home /var/lib/%{name}
|
|
%define c_lib libmosquitto1
|
|
%define cpp_lib libmosquittopp1
|
|
|
|
%description
|
|
Mosquitto is an open source (BSD licensed) message broker that implements the
|
|
MQ Telemetry Transport protocol versions 3.1 and 3.1.1. MQTT provides a
|
|
lightweight method of carrying out messaging using a publish/subscribe model.
|
|
This makes it suitable for "machine to machine" messaging such as with low
|
|
power sensors or mobile devices such as phones, embedded computers or
|
|
microcontrollers like the Arduino. A good example of this is all of the work
|
|
that Andy Stanford-Clark (one of the originators of MQTT) has done in home
|
|
monitoring and automation with his twittering house and twittering ferry.
|
|
|
|
%package -n %{c_lib}
|
|
Group: Development/Libraries/C and C++
|
|
|
|
Summary: Shared C Library for %{name}
|
|
%description -n %{c_lib}
|
|
Mosquitto is an open source (BSD licensed) message broker that implements the
|
|
MQ Telemetry Transport protocol versions 3.1 and 3.1.1. MQTT provides a
|
|
lightweight method of carrying out messaging using a publish/subscribe model.
|
|
This makes it suitable for "machine to machine" messaging such as with low
|
|
power sensors or mobile devices such as phones, embedded computers or
|
|
microcontrollers like the Arduino. A good example of this is all of the work
|
|
that Andy Stanford-Clark (one of the originators of MQTT) has done in home
|
|
monitoring and automation with his twittering house and twittering ferry.
|
|
|
|
This package holds the shared C library.
|
|
|
|
|
|
%package -n %{cpp_lib}
|
|
Group: Development/Libraries/C and C++
|
|
|
|
Summary: Shared C++ Library for %{name}
|
|
%description -n %{cpp_lib}
|
|
Mosquitto is an open source (BSD licensed) message broker that implements the
|
|
MQ Telemetry Transport protocol versions 3.1 and 3.1.1. MQTT provides a
|
|
lightweight method of carrying out messaging using a publish/subscribe model.
|
|
This makes it suitable for "machine to machine" messaging such as with low
|
|
power sensors or mobile devices such as phones, embedded computers or
|
|
microcontrollers like the Arduino. A good example of this is all of the work
|
|
that Andy Stanford-Clark (one of the originators of MQTT) has done in home
|
|
monitoring and automation with his twittering house and twittering ferry.
|
|
|
|
This package holds the shared C++ library.
|
|
|
|
%package devel
|
|
Group: Development/Libraries/C and C++
|
|
Requires: %{c_lib} = %{version}
|
|
Requires: %{cpp_lib} = %{version}
|
|
Provides: libmosquitto-devel = %{version}-%{release}
|
|
Provides: libmosquittopp-devel = %{version}-%{release}
|
|
Summary: Development files %{name}
|
|
%description devel
|
|
Mosquitto is an open source (BSD licensed) message broker that implements the
|
|
MQ Telemetry Transport protocol versions 3.1 and 3.1.1. MQTT provides a
|
|
lightweight method of carrying out messaging using a publish/subscribe model.
|
|
This makes it suitable for "machine to machine" messaging such as with low
|
|
power sensors or mobile devices such as phones, embedded computers or
|
|
microcontrollers like the Arduino. A good example of this is all of the work
|
|
that Andy Stanford-Clark (one of the originators of MQTT) has done in home
|
|
monitoring and automation with his twittering house and twittering ferry.
|
|
|
|
This package holds the development files.
|
|
|
|
%package clients
|
|
Group: System/Daemons
|
|
|
|
Summary: Client for Mosquitto
|
|
%description clients
|
|
Mosquitto is an open source (BSD licensed) message broker that implements the
|
|
MQ Telemetry Transport protocol versions 3.1 and 3.1.1. MQTT provides a
|
|
lightweight method of carrying out messaging using a publish/subscribe model.
|
|
This makes it suitable for "machine to machine" messaging such as with low
|
|
power sensors or mobile devices such as phones, embedded computers or
|
|
microcontrollers like the Arduino. A good example of this is all of the work
|
|
that Andy Stanford-Clark (one of the originators of MQTT) has done in home
|
|
monitoring and automation with his twittering house and twittering ferry.
|
|
|
|
Client for Mosquitto.
|
|
|
|
%prep
|
|
%setup -q
|
|
%patch -p1
|
|
find misc -type f -print0 | xargs -r0 chmod a-x
|
|
|
|
%build
|
|
%cmake \
|
|
%if %{with websockets}
|
|
-DWITH_WEBSOCKETS=ON \
|
|
%endif
|
|
-DUSE_LIBWRAP=ON
|
|
make
|
|
|
|
%install
|
|
%cmake_install
|
|
%if %{with systemd}
|
|
install -D -m 0644 %{S:1} \
|
|
%{buildroot}%{_unitdir}/%{name}.service
|
|
ln -sf %{_sbindir}/service %{buildroot}%{_sbindir}/rc%{name}
|
|
%endif
|
|
install -Dd -m 0750 %{buildroot}%{home}
|
|
chmod -R o= %{buildroot}%{_sysconfdir}/%{name}/
|
|
%if 0%{?suse_version}
|
|
install -D -m 644 %{S:2} %{buildroot}%{_fwdefdir}/mosquitto
|
|
install -D -m 644 security/mosquitto.apparmor %{buildroot}/etc/apparmor.d/usr.sbin.mosquitto
|
|
install -D -m 755 -d %{buildroot}/etc/apparmor.d/local/
|
|
echo "# Site-specific additions and overrides for 'usr.sbin.mosquitto'" > %{buildroot}/etc/apparmor.d/local/usr.sbin.mosquitto
|
|
%endif
|
|
install -D -m 644 %{S:4} %{buildroot}/etc/mosquitto/conf.d/README
|
|
install -D -m 644 %{S:5} %{buildroot}/etc/mosquitto/ca_certificates/README
|
|
install -D -m 644 %{S:6} %{buildroot}/etc/mosquitto/certs/README
|
|
|
|
%pre
|
|
/usr/sbin/groupadd -r %{name} >/dev/null 2>&1 || :
|
|
/usr/sbin/useradd -g %{name} -s /bin/false -r -c "%{name}" -d %{home} %{name} >/dev/null 2>&1 || :
|
|
# START BIG SYSTEMD
|
|
%if %{with systemd}
|
|
%if 0%{?suse_version}
|
|
%service_add_pre %{name}.service
|
|
%endif
|
|
|
|
%preun
|
|
%if 0%{?suse_version}
|
|
%service_del_preun %{name}.service
|
|
%else
|
|
%systemd_preun %{name}.service
|
|
%endif
|
|
|
|
%post
|
|
%if 0%{?suse_version}
|
|
%service_add_post %{name}.service
|
|
%else
|
|
%systemd_post %{name}.service
|
|
%endif
|
|
|
|
%postun
|
|
%if 0%{?suse_version}
|
|
%service_del_postun %{name}.service
|
|
%else
|
|
%systemd_postun_with_restart %{name}.service
|
|
%endif
|
|
%endif
|
|
# /END BIG SYSTEMD
|
|
|
|
%post -n %{c_lib} -p /sbin/ldconfig
|
|
%postun -n %{c_lib} -p /sbin/ldconfig
|
|
|
|
%post -n %{cpp_lib} -p /sbin/ldconfig
|
|
%postun -n %{cpp_lib} -p /sbin/ldconfig
|
|
|
|
%files
|
|
%defattr(-,root,root)
|
|
%doc edl-v10 epl-v10 LICENSE.txt
|
|
%doc CONTRIBUTING.md ChangeLog.txt readme.md *.html *.example
|
|
%doc examples/ logo/ security/ misc/
|
|
%config(noreplace) %attr(-,root,%{name}) %{_sysconfdir}/mosquitto/
|
|
%{_bindir}/mosquitto_passwd
|
|
%{_sbindir}/mosquitto
|
|
%{_mandir}/man1/mosquitto_passwd.1%{ext_man}
|
|
%{_mandir}/man5/mosquitto.conf.5%{ext_man}
|
|
%{_mandir}/man7/mosquitto-tls.7%{ext_man}
|
|
%{_mandir}/man7/mqtt.7%{ext_man}
|
|
%{_mandir}/man8/mosquitto.8%{ext_man}
|
|
%if %{with systemd}
|
|
%{_unitdir}/%{name}.service
|
|
%if 0%{?suse_version}
|
|
%{_sbindir}/rc%{name}
|
|
%endif
|
|
%endif
|
|
%dir %attr(-,%{name},%{name}) %{home}
|
|
%if 0%{?suse_version}
|
|
%dir /etc/apparmor.d/
|
|
%dir /etc/apparmor.d/local/
|
|
%config /etc/apparmor.d/usr.sbin.mosquitto
|
|
%config(noreplace) /etc/apparmor.d/local/usr.sbin.mosquitto
|
|
%config(noreplace) %{_fwdefdir}/mosquitto
|
|
%endif
|
|
|
|
%files clients
|
|
%defattr(-,root,root,-)
|
|
%doc edl-v10 epl-v10 LICENSE.txt
|
|
%{_bindir}/mosquitto_pub
|
|
%{_bindir}/mosquitto_sub
|
|
%{_mandir}/man1/mosquitto_pub.1%{ext_man}
|
|
%{_mandir}/man1/mosquitto_sub.1%{ext_man}
|
|
|
|
%files -n %{c_lib}
|
|
%defattr(-,root,root)
|
|
%doc edl-v10 epl-v10 LICENSE.txt
|
|
%{_libdir}/libmosquitto.so.*
|
|
|
|
%files -n %{cpp_lib}
|
|
%defattr(-,root,root)
|
|
%doc edl-v10 epl-v10 LICENSE.txt
|
|
%{_libdir}/libmosquittopp.so.*
|
|
|
|
%files devel
|
|
%defattr(-,root,root)
|
|
%{_libdir}/libmosquitto.so
|
|
%{_libdir}/libmosquittopp.so
|
|
%{_includedir}/mosquitto.h
|
|
%{_includedir}/mosquitto_plugin.h
|
|
%{_includedir}/mosquittopp.h
|
|
%{_mandir}/man3/libmosquitto.3%{ext_man}
|
|
|
|
%changelog
|