summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Spradling2017-12-03 00:14:37 -0500
committerMichael Spradling2017-12-03 00:14:37 -0500
commitd2429a43f61892f6c97f8634bc1fa197931ba0b7 (patch)
treeda3a4222f69388042bad0de923e935f6ff40c8e6
downloadaur-d2429a43f61892f6c97f8634bc1fa197931ba0b7.tar.gz
Initial version of emq 2.3.0
-rw-r--r--.SRCINFO44
-rw-r--r--0001-Update-vars-for-build.patch51
-rw-r--r--PKGBUILD57
-rw-r--r--emq.service14
-rw-r--r--emqttd.install62
5 files changed, 228 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..da300d5f470b
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,44 @@
+pkgbase = emq
+ pkgdesc = emqtt: The Massively Scalable MQTT Broker for IoT and Mobile Applications
+ pkgver = 2.3.0
+ pkgrel = 1
+ url = http://emqtt.io
+ install = emqttd.install
+ arch = x86_64
+ arch = i686
+ license = GPL
+ depends = erlang
+ depends = rebar
+ backup = etc/emqttd/emq.conf
+ backup = etc/emqttd/acl.conf
+ backup = etc/emqttd/plugins/ekka.conf.example
+ backup = etc/emqttd/plugins/ekka.config.example
+ backup = etc/emqttd/plugins/emq_auth_clientid.conf
+ backup = etc/emqttd/plugins/emq_auth_http.conf
+ backup = etc/emqttd/plugins/emq_auth_jwt.conf
+ backup = etc/emqttd/plugins/emq_auth_ldap.conf
+ backup = etc/emqttd/plugins/emq_auth_mongo.conf
+ backup = etc/emqttd/plugins/emq_auth_mysql.conf
+ backup = etc/emqttd/plugins/emq_auth_pgsql.conf
+ backup = etc/emqttd/plugins/emq_auth_redis.conf
+ backup = etc/emqttd/plugins/emq_auth_username.conf
+ backup = etc/emqttd/plugins/emq_coap.conf
+ backup = etc/emqttd/plugins/emq_dashboard.conf
+ backup = etc/emqttd/plugins/emq_lua_hook.conf
+ backup = etc/emqttd/plugins/emq_modules.conf
+ backup = etc/emqttd/plugins/emq_plugin_template.config
+ backup = etc/emqttd/plugins/emq_recon.conf
+ backup = etc/emqttd/plugins/emq_reloader.conf
+ backup = etc/emqttd/plugins/emq_retainer.conf
+ backup = etc/emqttd/plugins/emq_sn.conf
+ backup = etc/emqttd/plugins/emq_stomp.conf
+ backup = etc/emqttd/plugins/emq_web_hook.conf
+ source = emq::git+https://github.com/emqtt/emq-relx.git#tag=v2.3.0
+ source = emq.service
+ source = 0001-Update-vars-for-build.patch
+ md5sums = SKIP
+ md5sums = 1091148c71c9498263b4f9179ee8a1fe
+ md5sums = 53da2693269a9de92bf6b3497d2995f3
+
+pkgname = emq
+
diff --git a/0001-Update-vars-for-build.patch b/0001-Update-vars-for-build.patch
new file mode 100644
index 000000000000..a33cf36cdb9f
--- /dev/null
+++ b/0001-Update-vars-for-build.patch
@@ -0,0 +1,51 @@
+From 0173df1eed5401f4a73b9a1d8bc9b97efc14e60c Mon Sep 17 00:00:00 2001
+From: Michael Spradling <mike@mspradling.com>
+Date: Sun, 3 Dec 2017 00:01:21 -0500
+Subject: [PATCH] Update vars for build
+
+---
+ vars.config | 22 +++++++++++-----------
+ 1 file changed, 11 insertions(+), 11 deletions(-)
+
+diff --git a/vars.config b/vars.config
+index 14dedd0..7b02f9e 100644
+--- a/vars.config
++++ b/vars.config
+@@ -2,23 +2,23 @@
+ %% ex: ft=erlang ts=4 sw=4 et
+
+ %% Platform-specific installation paths
+-{platform_bin_dir, "bin"}.
+-{platform_data_dir, "data"}.
+-{platform_etc_dir, "etc"}.
+-{platform_lib_dir, "lib"}.
+-{platform_log_dir, "log"}.
++{platform_bin_dir, "/usr/bin"}.
++{platform_data_dir, "/var/lib/emqttd"}.
++{platform_etc_dir, "/etc/emqttd"}.
++{platform_lib_dir, "/usr/libemqttd"}.
++{platform_log_dir, "/var/log/emqttd"}.
+
+ %%
+ %% bin/emqttd
+ %%
+ %% {runner_script_dir, "$(cd ${0%/*} && pwd)"}.
+-{runner_root_dir, ""}.
++{runner_root_dir, "/lib/emqttd"}.
+ {runner_base_dir, ""}.
+-{runner_bin_dir, "$RUNNER_ROOT_DIR/bin"}.
+-{runner_etc_dir, "$RUNNER_ROOT_DIR/etc"}.
++{runner_bin_dir, "/usr/bin"}.
++{runner_etc_dir, "/etc/emqttd"}.
+ {runner_lib_dir, "$RUNNER_ROOT_DIR/lib"}.
+-{runner_log_dir, "$RUNNER_ROOT_DIR/log"}.
+-{runner_data_dir, "$RUNNER_ROOT_DIR/data"}.
++{runner_log_dir, "/var/log/emqttd"}.
++{runner_data_dir, "/var/lib/emqttd"}.
+ {pipe_dir, "/tmp/$RUNNER_SCRIPT/"}.
+-{runner_user, ""}.
++{runner_user, "emqtt"}.
+
+--
+2.15.0
+
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..b8cb0ec42a63
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,57 @@
+# Contributor: Michael Spradling <mike@mspradling.com>
+# Maintainer: Michael Spradling <mike@mspradling.com>
+pkgname=emq
+pkgver=2.3.0
+pkgrel=1
+pkgdesc="emqtt: The Massively Scalable MQTT Broker for IoT and Mobile Applications"
+url="http://emqtt.io"
+license=('GPL')
+arch=('x86_64' 'i686')
+backup=('etc/emqttd/emq.conf' 'etc/emqttd/acl.conf' 'etc/emqttd/plugins/ekka.conf.example' 'etc/emqttd/plugins/ekka.config.example' 'etc/emqttd/plugins/emq_auth_clientid.conf' 'etc/emqttd/plugins/emq_auth_http.conf' 'etc/emqttd/plugins/emq_auth_jwt.conf' 'etc/emqttd/plugins/emq_auth_ldap.conf' 'etc/emqttd/plugins/emq_auth_mongo.conf' 'etc/emqttd/plugins/emq_auth_mysql.conf' 'etc/emqttd/plugins/emq_auth_pgsql.conf' 'etc/emqttd/plugins/emq_auth_redis.conf' 'etc/emqttd/plugins/emq_auth_username.conf' 'etc/emqttd/plugins/emq_coap.conf' 'etc/emqttd/plugins/emq_dashboard.conf' 'etc/emqttd/plugins/emq_lua_hook.conf' 'etc/emqttd/plugins/emq_modules.conf' 'etc/emqttd/plugins/emq_plugin_template.config' 'etc/emqttd/plugins/emq_recon.conf' 'etc/emqttd/plugins/emq_reloader.conf' 'etc/emqttd/plugins/emq_retainer.conf' 'etc/emqttd/plugins/emq_sn.conf' 'etc/emqttd/plugins/emq_stomp.conf' 'etc/emqttd/plugins/emq_web_hook.conf')
+depends=('erlang' 'rebar')
+source=("${pkgname}::git+https://github.com/emqtt/emq-relx.git#tag=v${pkgver}" 'emq.service' '0001-Update-vars-for-build.patch')
+md5sums=('SKIP' '1091148c71c9498263b4f9179ee8a1fe' '53da2693269a9de92bf6b3497d2995f3')
+install=emqttd.install
+
+prepare() {
+ cd "$pkgname"
+ patch -Np1 -i "${srcdir}/0001-Update-vars-for-build.patch"
+}
+
+build() {
+ cd "$pkgname"
+ # parallel builds are broken
+ make -j1
+}
+
+package() {
+ cd "$pkgname"
+
+ mkdir -p $pkgdir/etc/emqttd
+ mkdir -p $pkgdir/usr/lib/emqttd
+ mkdir -p $pkgdir/var/lib/emqttd
+ mkdir -p $pkgdir/var/log/emqttd
+ mkdir -p $pkgdir/run/emqttd
+ mkdir $pkgdir/usr/lib/emqttd/bin
+ mkdir -p $pkgdir/usr/bin
+
+
+ cp -R _rel/emqttd/lib $pkgdir/usr/lib/emqttd
+ cp -R _rel/emqttd/erts-* $pkgdir/usr/lib/emqttd
+ cp -R _rel/emqttd/releases $pkgdir/usr/lib/emqttd
+
+ # Executables
+ install -p -D -m 0755 _rel/emqttd/bin/emqttd $pkgdir/usr/bin
+ install -p -D -m 0755 _rel/emqttd/bin/emqttd_ctl $pkgdir/usr/bin
+ cp _rel/emqttd/bin/cuttlefish $pkgdir/usr/lib/emqttd/bin
+ cp _rel/emqttd/bin/install_upgrade_escript $pkgdir/usr/lib/emqttd/bin
+ cp _rel/emqttd/bin/nodetool $pkgdir/usr/lib/emqttd/bin
+ cp _rel/emqttd/bin/start_clean.boot $pkgdir/usr/lib/emqttd/bin
+
+ # Config files
+ cp -R _rel/emqttd/etc/* $pkgdir/etc/emqttd
+
+ mkdir -p $pkgdir/var/lib/emqttd
+
+ cp -R _rel/emqttd/data/* $pkgdir/var/lib/emqttd
+}
diff --git a/emq.service b/emq.service
new file mode 100644
index 000000000000..b4c9986c8d73
--- /dev/null
+++ b/emq.service
@@ -0,0 +1,14 @@
+[Unit]
+Description=emqtt daemon
+After=network.target
+
+[Service]
+Type=forking
+Environment=HOME=/root
+ExecStart=/bin/sh /usr/bin/emqttd start
+LimitNOFILE=1048576
+User=emqtt
+Group=emqtt
+
+[Install]
+WantedBy=multi-user.target
diff --git a/emqttd.install b/emqttd.install
new file mode 100644
index 000000000000..6a3dd6768ec7
--- /dev/null
+++ b/emqttd.install
@@ -0,0 +1,62 @@
+## arg 1: the new package version
+pre_install() {
+ true
+}
+
+## arg 1: the new package version
+post_install() {
+ if ! getent group emqtt >/dev/null 2>&1; then
+ groupadd -r emqtt
+ fi
+
+ if getent passwd emqtt >/dev/null 2>&1; then
+ usermod -d /var/lib/emqttd emqtt || true
+ else
+ useradd -r -g emqtt \
+ --home /var/lib/emqttd \
+ --comment "emqtt user" \
+ --shell /bin/bash \
+ emqtt
+ fi
+
+ for i in lib run log; do
+ chown -R emqtt:emqtt /var/$i/emqttd
+ done
+
+ chown -R emqtt:emqtt /usr/lib/emqttd
+ chown -R emqtt:emqtt /etc/emqttd
+
+ chmod 0755 /var/run/emqttd /etc/emqttd
+ chmod 0644 /etc/emqttd/*
+ chmod -R +X /etc/emqttd
+ chmod 0755 /usr/lib/emqttd/bin/nodetool
+}
+
+## arg 1: the new package version
+## arg 2: the old package version
+pre_upgrade() {
+ true
+}
+
+## arg 1: the new package version
+## arg 2: the old package version
+post_upgrade() {
+ true
+}
+
+## arg 1: the old package version
+pre_remove() {
+ true
+}
+
+## arg 1: the old package version
+post_remove() {
+ # Remove User & Group, killing any process owned by them
+ if getent passwd emqtt >/dev/null; then
+ pkill -u emqtt || true
+ userdel --remove emqtt
+ fi
+ if getent group emqtt >/dev/null; then
+ groupdel emqtt
+ fi
+}