ASR_BASE

Change-Id: Icf3719cc0afe3eeb3edc7fa80a2eb5199ca9dda1
diff --git a/external/subpack/utils/smstools3/Makefile b/external/subpack/utils/smstools3/Makefile
new file mode 100644
index 0000000..3a63323
--- /dev/null
+++ b/external/subpack/utils/smstools3/Makefile
@@ -0,0 +1,65 @@
+#
+# Copyright (C) 2014 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:=smstools3
+PKG_VERSION:=3.1.21
+PKG_RELEASE:=4
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=http://smstools3.kekekasvi.com/packages/
+PKG_HASH:=a26ba4c02b16f6cf13177bffca6c9230dc5fefaeba8e3030cd4e4905f6a92084
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)
+
+PKG_MAINTAINER:=Harald Geyer <harald@ccbib.org>
+PKG_LICENSE:=GPL-2.0
+PKG_LICENSE_FILES:=LICENSE
+
+PKG_BUILD_PARALLEL:=0
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/nls.mk
+
+define Package/smstools3
+  SECTION:=utils
+  CATEGORY:=Utilities
+  TITLE:=SMS Server Tools 3
+  DEPENDS:=$(ICONV_DEPENDS)
+  URL:=http://smstools3.kekekasvi.com/
+endef
+
+define Package/smstools3/description
+ The SMS Server Tools 3 is a SMS Gateway software which can send and receive
+ short messages through GSM modems and mobile phones.
+endef
+
+TARGET_CFLAGS += -D NUMBER_OF_MODEMS=1
+TARGET_CFLAGS += $(if $(ICONV_FULL),-D USE_ICONV)
+TARGET_CFLAGS += -D DISABLE_INET_SOCKET
+TARGET_CFLAGS += -W -Wall
+TARGET_CFLAGS += -D_FILE_OFFSET_BITS=64
+TARGET_CFLAGS += -fcommon
+
+MAKE_VARS += LFLAGS="$(TARGET_LDFLAGS) $(if $(ICONV_FULL),-liconv)"
+
+define Package/smstools3/configure
+endef
+
+define Package/smstools3/install
+	$(INSTALL_DIR) $(1)/usr/bin
+	$(INSTALL_BIN) \
+		$(PKG_BUILD_DIR)/src/smsd \
+		$(PKG_BUILD_DIR)/scripts/sendsms \
+		$(1)/usr/bin/
+	$(INSTALL_DIR) $(1)/etc/init.d
+	$(INSTALL_BIN) ./files/smstools3.init $(1)/etc/init.d/smstools3
+	$(INSTALL_DIR) $(1)/etc
+	$(INSTALL_CONF) ./files/smstools3.conf $(1)/etc/smsd.conf
+endef
+
+$(eval $(call BuildPackage,smstools3))
diff --git a/external/subpack/utils/smstools3/files/smstools3.conf b/external/subpack/utils/smstools3/files/smstools3.conf
new file mode 100644
index 0000000..da5a36a
--- /dev/null
+++ b/external/subpack/utils/smstools3/files/smstools3.conf
@@ -0,0 +1,24 @@
+#
+# Description: Main configuration file for the smsd
+#
+
+devices = GSM1
+incoming = /var/spool/sms/incoming
+outgoing = /var/spool/sms/outgoing
+checked = /var/spool/sms/checked
+failed = /var/spool/sms/failed
+sent = /var/spool/sms/sent
+receive_before_send = no
+autosplit = 3
+logfile = 1
+loglevel = 5
+
+# Uncomment (and edit) this section to allow smsd to start:
+#
+#[GSM1]
+#init = AT+CPMS="ME","ME","ME"
+#device = /dev/ttyUSB0
+#incoming = yes
+#pin = 0000
+#baudrate = 115200
+
diff --git a/external/subpack/utils/smstools3/files/smstools3.init b/external/subpack/utils/smstools3/files/smstools3.init
new file mode 100644
index 0000000..c036b8a
--- /dev/null
+++ b/external/subpack/utils/smstools3/files/smstools3.init
@@ -0,0 +1,37 @@
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2014-2018 OpenWrt.org
+
+START=94
+
+USE_PROCD=1
+
+# If an unpriviledged user is selected, make sure that next two
+# files are writable by that user:
+PIDFILE="/var/run/smsd.pid"
+INFOFILE="/var/run/smsd.working"
+
+DAEMON=/usr/bin/smsd
+
+# Set/edit this before starting service !!!!!
+WRT_SPOOL=/var/spool
+
+start_service() {
+	echo "Creating minimum spool directories"
+	mkdir -p $WRT_SPOOL
+	mkdir -p $WRT_SPOOL/sms
+	mkdir -p $WRT_SPOOL/sms/incoming
+	mkdir -p $WRT_SPOOL/sms/outgoing
+	mkdir -p $WRT_SPOOL/sms/checked
+	mkdir -p $WRT_SPOOL/sms/failed
+	mkdir -p $WRT_SPOOL/sms/sent
+
+	procd_open_instance
+
+	procd_set_param command $DAEMON -t -n MAINPROCESS -p$PIDFILE -i$INFOFILE
+	procd_set_param respawn
+	procd_set_param stdout 1
+
+	procd_close_instance
+}
+
+
diff --git a/external/subpack/utils/smstools3/patches/002-Makefile.patch b/external/subpack/utils/smstools3/patches/002-Makefile.patch
new file mode 100644
index 0000000..a52aee4
--- /dev/null
+++ b/external/subpack/utils/smstools3/patches/002-Makefile.patch
@@ -0,0 +1,11 @@
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -1,7 +1,7 @@
+ # In case of windows, use os_cygwin=yes setting in the configuration file (smsd.conf).
+ 
+ # Select your setup size:
+-CFLAGS = -D NUMBER_OF_MODEMS=64
++CFLAGS ?= -D NUMBER_OF_MODEMS=64
+ 
+ # Uncomment for Solaris
+ # CFLAGS += -D SOLARIS
diff --git a/external/subpack/utils/smstools3/patches/003-bash-ash.patch b/external/subpack/utils/smstools3/patches/003-bash-ash.patch
new file mode 100644
index 0000000..4ad1663
--- /dev/null
+++ b/external/subpack/utils/smstools3/patches/003-bash-ash.patch
@@ -0,0 +1,8 @@
+--- a/scripts/sendsms
++++ b/scripts/sendsms
+@@ -1,4 +1,4 @@
+-#!/bin/bash
++#!/bin/ash
+ # This script send a text sms at the command line by creating
+ # a sms file in the outgoing queue.
+ 
diff --git a/external/subpack/utils/smstools3/patches/004-modem-processes.patch b/external/subpack/utils/smstools3/patches/004-modem-processes.patch
new file mode 100644
index 0000000..8f0f446
--- /dev/null
+++ b/external/subpack/utils/smstools3/patches/004-modem-processes.patch
@@ -0,0 +1,24 @@
+commit 3790bd05ed86b1692719df22857ef76c1293b01c
+Author: Harald Geyer <harald@ccbib.org>
+Date:   Sun Feb 18 19:24:48 2018 +0100
+
+    Make modem processes terminate when main process dies
+
+--- a/src/smsd.c
++++ b/src/smsd.c
+@@ -34,6 +34,7 @@ Either version 2 of the License, or (at
+ #ifndef DISABLE_INOTIFY
+ #include <sys/inotify.h>
+ #endif
++#include <sys/prctl.h>
+ 
+ #include "extras.h"
+ #include "locking.h"
+@@ -8100,6 +8101,7 @@ int main(int argc,char** argv)
+ 
+       if (pid == 0)
+       {
++        prctl(PR_SET_PDEATHSIG, SIGTERM, 0, 0, 0);
+         process_id = i;
+         strcpy(process_title, DEVICE.name);
+         apply_process_name(argc, argv, process_title);