From 81a2d845131616c9776d167d42ed4dec2ad99ab7 Mon Sep 17 00:00:00 2001 From: "Ralf S. Engelschall" Date: Wed, 19 Jun 2019 20:24:50 +0200 Subject: [PATCH] new package --- mosquitto-auth-http/mosquitto-auth-http.conf | 22 ++++ mosquitto-auth-http/mosquitto-auth-http.patch | 17 +++ mosquitto-auth-http/mosquitto-auth-http.spec | 105 ++++++++++++++++++ 3 files changed, 144 insertions(+) create mode 100644 mosquitto-auth-http/mosquitto-auth-http.conf create mode 100644 mosquitto-auth-http/mosquitto-auth-http.patch create mode 100644 mosquitto-auth-http/mosquitto-auth-http.spec diff --git a/mosquitto-auth-http/mosquitto-auth-http.conf b/mosquitto-auth-http/mosquitto-auth-http.conf new file mode 100644 index 0000000000..3d91919df6 --- /dev/null +++ b/mosquitto-auth-http/mosquitto-auth-http.conf @@ -0,0 +1,22 @@ +## +## mosquitto-auth-http.conf -- HTTP authentication and authorization for Mosquitto +## + +auth_plugin @l_prefix@/libexec/mosquitto/mosquitto-auth-http.so + +auth_opt_log_level debug +auth_opt_log_dest file +auth_opt_log_file @l_prefix@/var/mosquitto/log/mosquitto.log + +auth_opt_backends http + +auth_opt_http_host 127.0.0.1 +auth_opt_http_port 8080 +auth_opt_http_getuser_uri /auth +auth_opt_http_superuser_uri /auth +auth_opt_http_aclcheck_uri /acl +auth_opt_http_with_tls false +auth_opt_http_verify_peer false +auth_opt_http_response_mode status +auth_opt_http_params_mode json + diff --git a/mosquitto-auth-http/mosquitto-auth-http.patch b/mosquitto-auth-http/mosquitto-auth-http.patch new file mode 100644 index 0000000000..bfc37bf1f2 --- /dev/null +++ b/mosquitto-auth-http/mosquitto-auth-http.patch @@ -0,0 +1,17 @@ +Index: src/github.com/iegomez/mosquitto-go-auth/backends/grpc.go +--- src/github.com/iegomez/mosquitto-go-auth/backends/grpc.go.orig 2019-06-19 15:52:53.000000000 +0200 ++++ src/github.com/iegomez/mosquitto-go-auth/backends/grpc.go 2019-06-19 17:39:03.041303000 +0200 +@@ -148,3 +148,13 @@ + + return gsClient, gs.NewAuthServiceClient(gsClient), nil + } ++ ++//GetName returns the backend's name ++func (o GRPC) GetName() string { ++ return "GRPC" ++} ++ ++//Halt terminates the connection. ++func (o GRPC) Halt() { ++} ++ diff --git a/mosquitto-auth-http/mosquitto-auth-http.spec b/mosquitto-auth-http/mosquitto-auth-http.spec new file mode 100644 index 0000000000..33416bc4a2 --- /dev/null +++ b/mosquitto-auth-http/mosquitto-auth-http.spec @@ -0,0 +1,105 @@ +## +## mosquitto-auth-http.spec -- OpenPKG RPM Package Specification +## Copyright (c) 2000-2019 OpenPKG Project +## +## Permission to use, copy, modify, and distribute this software for +## any purpose with or without fee is hereby granted, provided that +## the above copyright notice and this permission notice appear in all +## copies. +## +## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED +## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR +## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +## SUCH DAMAGE. +## + +# package version +%define V_base 0.6.0 +%define V_snap 20190619 + +# package information +Name: mosquitto-auth-http +Summary: HTTP Authentication Plugin for Mosquitto MQTT Broker +URL: https://github.com/iegomez/mosquitto-go-auth +Vendor: Ignacio Gómez +Packager: OpenPKG Project +Distribution: OpenPKG Community +Class: EVAL +Group: Networking +License: MIT +Version: %{V_base}.%{V_snap} +Release: 20190619 + +# list of sources +Source0: http://download.openpkg.org/components/versioned/mosquitto-go-auth/mosquitto-go-auth-%{V_snap}.tar.xz +Source1: mosquitto-auth-http.conf +Patch0: mosquitto-auth-http.patch + +# build information +BuildPreReq: OpenPKG, openpkg >= 20160101 +PreReq: OpenPKG, openpkg >= 20160101 +BuildPreReq: mosquitto +PreReq: mosquitto + +%description + This is a plugin to authenticate and authorize Mosquitto MQTT broker + users via HTTP Basic Authentication. + +%track + prog mosquitto-auth-http:release = { + version = %{V_base} + url = https://github.com/iegomez/mosquitto-go-auth/releases + regex = (__VER__)\.tar\.gz + } + prog mosquitto-auth-http:snapshot = { + version = %{V_snap} + url = http://download.openpkg.org/components/versioned/mosquitto-go-auth/ + regex = mosquitto-go-auth-(__VER__)\.tar\.xz + } + +%prep + %setup -q -n mosquitto-go-auth + %patch -p0 + +%build + # build plugin + export GOPATH=`pwd` + cd src/github.com/iegomez/mosquitto-go-auth + export CGO_CFLAGS="%{l_cflags -O} %{l_cppflags}" + export CGO_LDFLAGS="%{l_ldflags} -shared" + go build -v -buildmode=c-archive go-auth.go + go build -v -buildmode=c-shared -o go-auth.so + +%install + # create installation hierarchy + %{l_shtool} mkdir -f -p -m 755 \ + $RPM_BUILD_ROOT%{l_prefix}/etc/mosquitto/mosquitto.d \ + $RPM_BUILD_ROOT%{l_prefix}/libexec/mosquitto + + # install default configuration + %{l_shtool} install -c -m 644 %{l_value -s -a} \ + %{SOURCE mosquitto-auth-http.conf} \ + $RPM_BUILD_ROOT%{l_prefix}/etc/mosquitto/mosquitto.d/ + + # install plugin + %{l_shtool} install -c -m 755 \ + src/github.com/iegomez/mosquitto-go-auth/go-auth.so \ + $RPM_BUILD_ROOT%{l_prefix}/libexec/mosquitto/mosquitto-auth-http.so + + # determine installation files + %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \ + %{l_files_std} \ + '%config %{l_prefix}/etc/mosquitto/mosquitto.d/*' + +%files -f files + +%clean +