Last active
April 23, 2021 14:25
-
-
Save vigevenoj/a911eef4a6cbaa306247 to your computer and use it in GitHub Desktop.
Building mosquitto on centos 6 with websocket support
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
sudo yum install wget mercurial cmake openssl-devel c-ares-devel libuuid-devel | |
wget https://github.com/warmcat/libwebsockets/archive/v2.1.0.tar.gz | |
tar xf v2.1.0.tar.gz | |
cd libwebsockets-2.1.0 | |
mkdir build; cd build | |
cmake .. -DLIB_SUFFIX=64 | |
sudo make install | |
echo "/usr/local/lib64" | sudo tee -a /etc/ld.so.conf.d/libwebsockets.conf | |
sudo ldconfig | |
ldconfig -p | grep libwebsockets | |
cd | |
wget https://github.com/eclipse/mosquitto/archive/v1.4.10.tar.gz | |
tar xf v1.4.10.tar.gz | |
cd mosquitto-1.4.10 | |
make WITH_LIBWEBSOCKETS=yes binary | |
# Edit ./man/Makefile to comment out the `all` and `dist` targets | |
# Edit ./man/Makefile to comment out all of the work in the `install` target | |
sudo make install | |
# sudo ln -s /usr/local/lib64/libwebsockets.so.4.0.0 /usr/lib/libwebsockets.so.4.0.0 # not needed | |
# I forgot how to make an rpm from these instructions |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# TODO | |
# - initscript | |
Summary: An Open Source MQTT v3.1 Broker | |
Name: mosquitto | |
Version: 1.4.3 | |
Release: 0.1 | |
License: BSD | |
Group: Applications | |
Source0: http://mosquitto.org/files/source/%{name}-%{version}.tar.gz | |
#Patch1: mosquitto.config.patch | |
# Source0-md5: cd879f5964311501ba8e2275add71484 | |
URL: http://mosquitto.org/ | |
#BuildRequires: cmake | |
BuildRequires: libwebsockets | |
BuildRequires: libstdc++-devel | |
BuildRequires: tcp_wrappers-devel | |
BuildRequires: tcp_wrappers | |
BuildRequires: openssl-devel | |
BuildRequires: python-devel | |
#BuildRequires: python-modules | |
BuildRequires: python-setuptools | |
BuildRequires: rpm-python | |
#BuildRequires: rpmbuild(macros) >= 1.219 | |
#BuildRequires: sqlite3-devel >= 3.5 | |
Requires(postun): /usr/sbin/groupdel | |
Requires(postun): /usr/sbin/userdel | |
Requires(pre): /usr/bin/id | |
#Requires(pre): /usr/bin/getgid | |
Requires(pre): /usr/sbin/groupadd | |
Requires(pre): /usr/sbin/useradd | |
#Suggests: %{name}-clients | |
Provides: group(mosquitto) | |
Provides: user(mosquitto) | |
#BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) | |
BuildRoot: %{_tmppath}/%{name}-%{version}-build | |
%description | |
Mosquitto is an open source (BSD licensed) message broker that | |
implements the MQ Telemetry Transport protocol version 3.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 micro-controllers like the | |
Arduino. | |
%package clients | |
Summary: Mosquitto command line pub/sub clients | |
Group: Applications/Networking | |
Requires: libmosquitto = %{version}-%{release} | |
%description clients | |
This is two MQTT version 3 clients. The first can publish messages to | |
a broker, the second can subscribe to multiple topics on a broker. | |
%package -n libmosquitto | |
Summary: MQTT C client library | |
Group: Development/Libraries | |
%description -n libmosquitto | |
This is a library that provides a means of implementing MQTT version 3 | |
clients. MQTT provides a lightweight method of carrying out messaging | |
using a publish/subscribe model. | |
%package -n libmosquitto-devel | |
Summary: MQTT C client library development files | |
Group: Development/Libraries | |
Group: Development/Libraries | |
Requires: libmosquitto = %{version}-%{release} | |
%description -n libmosquitto-devel | |
This is a library that provides a means of implementing MQTT version 3 | |
clients. MQTT provides a lightweight method of carrying out messaging | |
using a publish/subscribe model. | |
%package -n libmosquittopp | |
Summary: MQTT C++ client library | |
Group: Development/Libraries | |
%description -n libmosquittopp | |
This is a library that provides a means of implementing MQTT version 3 | |
clients. MQTT provides a lightweight method of carrying out messaging | |
using a publish/subscribe model. | |
%package -n libmosquittopp-devel | |
Summary: MQTT C++ client library development files | |
Group: Development/Libraries | |
Requires: libmosquittopp = %{version}-%{release} | |
%description -n libmosquittopp-devel | |
This is a library that provides a means of implementing MQTT version 3 | |
clients. MQTT provides a lightweight method of carrying out messaging | |
using a publish/subscribe model. | |
%prep | |
%setup -q | |
#%patch1 -p0 | |
%build | |
install -d build | |
cd build | |
%cmake \ | |
-DUSE_LIBWRAP:BOOL=OFF \ | |
-DWITH_WEBSOCKETS:BOOL=ON \ | |
-DWITH_DOCS=OFF \ | |
.. | |
%{__make} | |
cd .. | |
#make WITH_WRAP=yes WITH_WEBSOCKETS=yes WITH_DOCS=no | |
%install | |
rm -rf $RPM_BUILD_ROOT | |
%{__make} -C build install \ | |
DESTDIR=$RPM_BUILD_ROOT | |
#make install DESTDIR=$RPM_BUILD_ROOT prefix=/usr | |
rm $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/*.example | |
%clean | |
rm -rf $RPM_BUILD_ROOT | |
%pre | |
# User needs to be present before install so permissions can be set. | |
getent group mosquitto >/dev/null || /usr/sbin/groupadd -r mosquitto | |
getent passwd mosquitto >/dev/null || /usr/sbin/useradd -r -g mosquitto -d /var/lib/mosquitto -s /bin/false -c "Mosquitto broker" mosquitto | |
if [ "$1" = "0" ]; then | |
%userremove mosquitto | |
%groupremove mosquitto | |
fi | |
%post -n libmosquitto -p /sbin/ldconfig | |
%postun -n libmosquitto -p /sbin/ldconfig | |
%post -n libmosquittopp -p /sbin/ldconfig | |
%postun -n libmosquittopp -p /sbin/ldconfig | |
%files | |
%defattr(644,root,root,755) | |
#%doc LICENSE.txt readme.txt *.example | |
%dir %{_sysconfdir}/%{name} | |
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/%{name}.conf | |
%attr(755,root,root) %{_bindir}/mosquitto_passwd | |
%attr(755,root,root) %{_sbindir}/mosquitto | |
%files clients | |
%defattr(644,root,root,755) | |
%attr(755,root,root) %{_bindir}/mosquitto_pub | |
%attr(755,root,root) %{_bindir}/mosquitto_sub | |
%files -n libmosquitto | |
%defattr(644,root,root,755) | |
%attr(755,root,root) %{_libdir}/libmosquitto.so.* | |
#%ghost %{_libdir}/libmosquitto.so.1 | |
%files -n libmosquitto-devel | |
%defattr(644,root,root,755) | |
#%{_mandir}/man3/libmosquitto.3* | |
%{_libdir}/libmosquitto.so | |
%{_includedir}/mosquitto.h | |
%{_includedir}/mosquitto_plugin.h | |
%files -n libmosquittopp | |
%defattr(644,root,root,755) | |
%attr(755,root,root) %{_libdir}/libmosquittopp.so.* | |
%ghost %{_libdir}/libmosquittopp.so.1 | |
%files -n libmosquittopp-devel | |
%defattr(644,root,root,755) | |
%{_libdir}/libmosquittopp.so | |
%{_includedir}/mosquittopp.h | |
Thanks a lot
Great!
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
very helpful