Skip to content

Commit

Permalink
tang: Add package tang into tree
Browse files Browse the repository at this point in the history
Tang is lightweight server for binding data to network presence.
---
Tang's source: https://github.com/latchset/tang

Maintainer: @Tiboris

Compile tested: (mips, TL-WR842N, 17.01.4, r3560-79f57e422d)

**Tang requires a few other software libraries:**

1. libhttp-parser:
2. xinetd's socket activation
3. jose >= 8:

**Compared to tang upstream:**
***Two new files:***
- tangdx : configuration file for xinetd
- tangdw : wrapper for tangd service
	- puts timestamp when service activated, and
	- redirects stderr to log file in /var/log/

***Removed systemd requirement and nagios program***

Signed-off-by: Tibor Dudlák <[email protected]>
  • Loading branch information
Tiboris committed May 7, 2018
1 parent 5800538 commit 3832885
Show file tree
Hide file tree
Showing 6 changed files with 164 additions and 0 deletions.
62 changes: 62 additions & 0 deletions utils/tang/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
#
# Copyright (C) 2018 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#

include $(TOPDIR)/rules.mk

PKG_NAME:=tang
PKG_VERSION:=6
PKG_RELEASE:=1

PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:=https://github.com/latchset/$(PKG_NAME)/releases/download/v$(PKG_VERSION)/
PKG_HASH:=1df78b48a52d2ca05656555cfe52bd4427c884f5a54a2c5e37a7b39da9e155e3

PKG_INSTALL:=1
PKG_BUILD_PARALLEL:=1

PKG_FIXUP:=autoreconf

include $(INCLUDE_DIR)/package.mk

define Package/tang
SECTION:=utils
TITLE:=tang v$(PKG_VERSION) - daemon for binding data to the presence of a third party
DEPENDS:=+libhttp-parser +xinetd +jose +bash
URL:=https://github.com/latchset/tang
endef

define Package/tang/description
Tang is a small daemon for binding data to the presence of a third party.
endef

define Package/tang/install
$(INSTALL_DIR) $(1)/usr/libexec
$(INSTALL_DIR) $(1)/etc/xinetd.d/
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/libexec/tangd* $(1)/usr/libexec/
$(INSTALL_BIN) ./files/tangdw $(1)/usr/libexec/
$(CP) ./files/tangdx $(1)/etc/xinetd.d/
endef

define Package/tang/postinst
#!/bin/sh
if [ -z "$${IPKG_INSTROOT}" ]; then
mkdir -p /usr/share/tang/db && mkdir -p /usr/share/tang/cache
KEYS=$(find /usr/share/tang/db/ -name "*.jw*" -maxdepth 1 | wc -l)
if [ "${KEYS}" = "0" ]; then # if db is empty generate new key pair
/usr/libexec/tangd-keygen /usr/share/tang/db/
elif [ "${KEYS}" = "1" ]; then # having 1 key should not happen
(>&2 echo "Please check the Tang's keys in /usr/share/tang/db \
and regenate cache using /usr/libexec/tangd-update script.")
else
/usr/libexec/tangd-update /usr/share/tang/db/ /usr/share/tang/cache/
fi
(cat /etc/services | grep -E "tangd.*8888\/tcp") > /dev/null \
|| echo -e "tangd\t\t8888/tcp" >> /etc/services
fi
endef

$(eval $(call BuildPackage,tang))
4 changes: 4 additions & 0 deletions utils/tang/files/tangdw
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
#!/bin/bash
echo "==================================" >> /var/log/tangd.log
echo `date`: >> /var/log/tangd.log
/usr/libexec/tangd $1 2>> /var/log/tangd.log
12 changes: 12 additions & 0 deletions utils/tang/files/tangdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
service tangd
{
port = 8888
socket_type = stream
wait = no
user = root
server = /usr/libexec/tangdw
server_args = /usr/share/tang/cache
log_on_success += USERID
log_on_failure += USERID
disable = no
}
34 changes: 34 additions & 0 deletions utils/tang/patches/Makefile_am.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
diff --git a/Makefile.am b/Makefile.am
index 14bf91d..7fa8bdf 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,5 +1,3 @@
-DISTCHECK_CONFIGURE_FLAGS = --with-systemdsystemunitdir=$$dc_install_base/$(systemdsystemunitdir)
-
AM_CFLAGS = @TANG_CFLAGS@ @jose_CFLAGS@
LDADD = @jose_LIBS@ @http_parser_LIBS@

@@ -7,13 +5,6 @@ nagiosdir = $(libdir)/nagios/plugins
cachedir = $(localstatedir)/cache/$(PACKAGE_NAME)
jwkdir = $(localstatedir)/db/$(PACKAGE_NAME)

-nodist_systemdsystemunit_DATA = \
- units/[email protected] \
- units/tangd.socket \
- units/tangd-update.path \
- units/tangd-update.service \
- units/tangd-keygen.service
-
dist_libexec_SCRIPTS = src/tangd-update src/tangd-keygen
libexec_PROGRAMS = src/tangd
nagios_PROGRAMS = src/tang
@@ -34,9 +25,7 @@ src_tang_SOURCES = src/nagios.c
AM_TESTS_ENVIRONMENT = SD_ACTIVATE="@SD_ACTIVATE@" PATH=$(srcdir)/src:$(builddir)/src:$(PATH)
TESTS = tests/adv tests/rec tests/nagios

-CLEANFILES = $(nodist_systemdsystemunit_DATA)
EXTRA_DIST = \
- $(foreach unit,$(nodist_systemdsystemunit_DATA),$(unit).in) \
COPYING \
$(TESTS) \
$(man1_MANS) \
37 changes: 37 additions & 0 deletions utils/tang/patches/configure_ac.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
diff --git a/configure.ac b/configure.ac
index b51bb31..4b37d30 100644
--- a/configure.ac
+++ b/configure.ac
@@ -27,32 +27,6 @@ AC_CHECK_LIB([http_parser], [http_parser_execute],
[AC_MSG_ERROR([http-parser required!])])

PKG_CHECK_MODULES([jose], [jose >= 8])
-PKG_CHECK_MODULES([systemd], [systemd])
-
-AC_ARG_WITH([systemdsystemunitdir],
- [AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [Directory for systemd service files])],
- [],
- [with_systemdsystemunitdir=$($PKG_CONFIG --variable=systemdsystemunitdir systemd)])
-
-AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir])
-
-for ac_prog in systemd-socket-activate systemd-activate; do
- AC_CHECK_PROG([SD_ACTIVATE], [$ac_prog], [$as_dir/$ac_prog], [],
- [$PATH$PATH_SEPARATOR$($PKG_CONFIG --variable=systemdutildir systemd)])
- test -n "$SD_ACTIVATE" && break
-done
-
-test -n "$SD_ACTIVATE" || AC_MSG_ERROR([systemd-socket-activate required!])
-
-AC_MSG_CHECKING([systemd-socket-activate inetd flag])
-if $SD_ACTIVATE --help | grep -q inetd; then
- SD_ACTIVATE="$SD_ACTIVATE --inetd"
- AC_MSG_RESULT([--inetd])
-else
- AC_MSG_RESULT([(default)])
-fi
-
-AC_SUBST(SD_ACTIVATE)

TANG_CFLAGS="\
-Wall \
15 changes: 15 additions & 0 deletions utils/tang/patches/tangd_update.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
diff --git a/src/tangd-update b/src/tangd-update
index 652dbef..01aa842 100755
--- a/src/tangd-update
+++ b/src/tangd-update
@@ -33,8 +33,8 @@ fi

[ ! -d "$2" ] && mkdir -p -m 0700 "$2"

-src=`realpath "$1"`
-dst=`realpath "$2"`
+src=`readlink -f "$1"`
+dst=`readlink -f "$2"`

payl=()
sign=()

0 comments on commit 3832885

Please sign in to comment.