diff options
author | Michael Spradling | 2017-12-03 00:14:37 -0500 |
---|---|---|
committer | Michael Spradling | 2017-12-03 00:14:37 -0500 |
commit | d2429a43f61892f6c97f8634bc1fa197931ba0b7 (patch) | |
tree | da3a4222f69388042bad0de923e935f6ff40c8e6 | |
download | aur-d2429a43f61892f6c97f8634bc1fa197931ba0b7.tar.gz |
Initial version of emq 2.3.0
-rw-r--r-- | .SRCINFO | 44 | ||||
-rw-r--r-- | 0001-Update-vars-for-build.patch | 51 | ||||
-rw-r--r-- | PKGBUILD | 57 | ||||
-rw-r--r-- | emq.service | 14 | ||||
-rw-r--r-- | emqttd.install | 62 |
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 +} |