[OpenWrt-Devel] [PATCH 1/1] package: contrib: add smstools3 package
Gerald Kerma
dreagle at doukki.net
Sun Dec 21 02:09:52 EST 2014
Add smstools3 package from http://smstools3.kekekasvi.com/
Signed-off-by: Gerald Kerma <dreagle at doukki.net>
---
package/contrib/smstools3/Makefile | 73 ++++++++++
package/contrib/smstools3/files/smstools3.conf | 20 +++
package/contrib/smstools3/files/smstools3.init | 152 +++++++++++++++++++++
package/contrib/smstools3/patches/001-smsd.patch | 13 ++
.../contrib/smstools3/patches/002-Makefile.patch | 12 ++
5 files changed, 270 insertions(+)
create mode 100644 package/contrib/smstools3/Makefile
create mode 100644 package/contrib/smstools3/files/smstools3.conf
create mode 100644 package/contrib/smstools3/files/smstools3.init
create mode 100644 package/contrib/smstools3/patches/001-smsd.patch
create mode 100644 package/contrib/smstools3/patches/002-Makefile.patch
diff --git a/package/contrib/smstools3/Makefile b/package/contrib/smstools3/Makefile
new file mode 100644
index 0000000..efbaa55
--- /dev/null
+++ b/package/contrib/smstools3/Makefile
@@ -0,0 +1,73 @@
+#
+# 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.15
+PKG_RELEASE:=3
+
+PKG_LICENSE:=GPL-2.0
+PKG_LICENSE_FILES:=LICENSE
+
+PKG_BUILD_PARALLEL:=0
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=http://smstools3.kekekasvi.com/packages/
+PKG_MD5SUM:=0241ef60e646fac1a06254a848e61ed7
+
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)
+PKG_BUILD_DEPENDS:=libiconv-full iconv socket nsl
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/smstools3
+ SECTION:=utils
+ CATEGORY:=Utilities
+ TITLE:=SMS Server Tools 3
+ DEPENDS:=+libiconv-full +iconv
+ 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 += -D USE_ICONV
+TARGET_CFLAGS += -D DISABLE_INET_SOCKET
+TARGET_CFLAGS += -W -Wall
+TARGET_CFLAGS += -D_FILE_OFFSET_BITS=64
+
+TARGET_LDFLAGS += -liconv
+
+BINDIR=/usr/local/bin
+
+define Build/Compile
+ $(MAKE) -C "$(PKG_BUILD_DIR)"/src \
+ CC="$(TARGET_CC)" \
+ USER_CFLAGS='$(TARGET_CFLAGS) $(EXTRA_CFLAGS) $(TARGET_CPPFLAGS) $(EXTRA_CPPFLAGS) \
+ -I"$(STAGING_DIR)/usr/lib/libiconv-full/include"' \
+ USER_LDFLAGS='$(TARGET_LFLAGS) $(EXTRA_LDFLAGS) -L"$(STAGING_DIR)/usr/lib/libiconv-full/lib"' \
+ all
+endef
+
+define Package/smstools3/install
+ $(INSTALL_DIR) $(1)/$(BINDIR)
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/smsd $(1)/$(BINDIR)/smsd
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/scripts/sendsms $(1)/$(BINDIR)/sendsms
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/scripts/sms2html $(1)/$(BINDIR)/sms2html
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/scripts/sms2unicode $(1)/$(BINDIR)/sms2unicode
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/scripts/unicode2sms $(1)/$(BINDIR)/unicode2sms
+ $(INSTALL_DIR) $(1)/etc/init.d
+ $(INSTALL_DATA) -m 0755 ./files/smstools3.init $(1)/etc/init.d/smstools3
+ $(INSTALL_DIR) $(1)/etc
+ $(INSTALL_DATA) -m 0755 ./files/smstools3.conf $(1)/etc/smsd.conf
+endef
+
+$(eval $(call BuildPackage,smstools3))
diff --git a/package/contrib/smstools3/files/smstools3.conf b/package/contrib/smstools3/files/smstools3.conf
new file mode 100644
index 0000000..c8732e3
--- /dev/null
+++ b/package/contrib/smstools3/files/smstools3.conf
@@ -0,0 +1,20 @@
+#
+# 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
+
+[GSM1]
+init = AT+CPMS="ME","ME","ME"
+device = /dev/ttyUSB0
+incoming = yes
+pin = 0000
+baudrate = 9600
+
diff --git a/package/contrib/smstools3/files/smstools3.init b/package/contrib/smstools3/files/smstools3.init
new file mode 100644
index 0000000..1638c60
--- /dev/null
+++ b/package/contrib/smstools3/files/smstools3.init
@@ -0,0 +1,152 @@
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2014 OpenWrt.org
+# smsd initscript openwrt mod
+
+START=99
+STOP=99
+
+EXTRA_COMMANDS="status"
+EXTRA_HELP=" status View pid and service status "
+
+# Set USER and GROUP, if necessary:
+USER=""
+GROUP=""
+
+# 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"
+# Logfile can also be defined in here:
+LOGFILE="/var/log/smsd.log"
+
+DAEMON=/usr/local/bin/smsd
+# A program which turns power off for couple of seconds:
+RESETMODEMS=/usr/local/bin/smsd_resetmodems
+NAME=smsd
+PSOPT=""
+
+# Set/edit this before starting service !!!!!
+WRT_SPOOL=/var/spool
+
+# Maximum time to stop smsd, after that it gets killed hardly:
+MAXWAIT=45
+
+boot() {
+ start
+}
+
+start() {
+ test -x $DAEMON || exit 0
+
+ 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
+
+ echo -n "Starting SMS Daemon: "
+ MSG="."
+ ARGS="-n MAINPROCESS -p$PIDFILE -i$INFOFILE"
+ [ "x$USER" != x ] && ARGS="$ARGS -u$USER"
+ [ "x$GROUP" != x ] && ARGS="$ARGS -g$GROUP"
+ [ "x$LOGFILE" != x ] && ARGS="$ARGS -l$LOGFILE"
+ PID=`cat $PIDFILE 2>/dev/null`
+ if [ "x$PID" != x ]; then
+ if kill -0 $PID 2>/dev/null; then
+ MSG=" already running ($PID)."
+ else
+ PID=""
+ fi
+ fi
+ if [ "x$PID" = x ]; then
+ if ps $PSOPT | grep $NAME | grep -v grep >/dev/null; then
+ MSG=" already running."
+ else
+ $DAEMON $ARGS
+ sleep 1
+ PIDS=`ps $PSOPT | grep $NAME | grep -v grep`
+ [ "x$PIDS" = x ] && MSG=" failed."
+ fi
+ fi
+ echo "$NAME$MSG"
+}
+
+stop() {
+ if ps $PSOPT | grep $NAME | grep -v grep >/dev/null; then
+ PID=`cat $PIDFILE 2>/dev/null`
+ if [ "x$PID" != x ]; then
+ P=`kill -0 $PID 2>/dev/null`
+ [ "x$P" != x ] && PID=""
+ fi
+ if [ "x$PID" != x ]; then
+ kill $PID
+ else
+ kill `ps $PSOPT | grep $NAME | grep -v grep | awk '{print $1}'` >/dev/null 2>&1
+ fi
+ sleep 1
+ if ps $PSOPT | grep $NAME | grep -v grep >/dev/null; then
+ echo "Allowing $NAME to terminate gracefully within $MAXWAIT seconds"
+ infofound=0
+ dots=0
+ seconds=0
+ while ps $PSOPT | grep $NAME | grep -v grep >/dev/null; do
+ if [ $infofound -lt 1 ]; then
+ if [ -f $INFOFILE ]; then
+ infofound=1
+ if [ $dots -gt 0 ]; then
+ echo ""
+ dots=0
+ fi
+ $ECHO -n "$NAME is currently "
+ cat $INFOFILE
+ echo "Time counting is now disabled and we will wait until this job is complete."
+ fi
+ fi
+ [ $infofound -lt 1 ] && seconds=`expr $seconds + 1`
+ echo -n "."
+ dots=`expr $dots + 1`
+ if [ "$seconds" -ge $MAXWAIT ]; then
+ if [ $dots -gt 0 ]; then
+ echo ""
+ dots=0
+ fi
+ echo "Timeout occured, killing $NAME hardly."
+ kill -9 `ps $PSOPT | grep $NAME | grep -v grep | awk '{print $1}'` >/dev/null 2>&1
+ [ -f $PIDFILE ] && rm $PIDFILE
+ seconds=0
+ fi
+ sleep 1
+ done
+ [ $dots -gt 0 ] && echo ""
+ #echo "$NAME is stopped."
+ fi
+ fi
+}
+
+restart() {
+ stop
+ start
+}
+
+
+status() {
+ PID=$(cat $PIDFILE)
+
+ test -e $PIDFILE
+ if [ $? == 0 ]; then
+ echo $NAME " running! pid $PID"
+ else
+ echo $NAME " not running !!!"
+ fi
+}
+
+reset() {
+ $0 stop
+ [ -f "$RESETMODEMS" ] && "$RESETMODEMS"
+ sleep 30
+ $0 start
+}
+
diff --git a/package/contrib/smstools3/patches/001-smsd.patch b/package/contrib/smstools3/patches/001-smsd.patch
new file mode 100644
index 0000000..6761661
--- /dev/null
+++ b/package/contrib/smstools3/patches/001-smsd.patch
@@ -0,0 +1,13 @@
+--- a/src/smsd.c 2010-09-21 13:47:48.000000000 +0300
++++ b/src/smsd.c 2013-03-05 05:26:26.000000000 +0300
+@@ -5200,8 +5200,8 @@
+ int result = 1;
+ char *cmd;
+ char *p;
+- char answer[500];
+- char buffer[600];
++ char answer[1024];
++ char buffer[1024];
+ int fd;
+ int log_retry = 3;
+ int i;
diff --git a/package/contrib/smstools3/patches/002-Makefile.patch b/package/contrib/smstools3/patches/002-Makefile.patch
new file mode 100644
index 0000000..a8445ef
--- /dev/null
+++ b/package/contrib/smstools3/patches/002-Makefile.patch
@@ -0,0 +1,12 @@
+--- a/src/Makefile 2014-12-20 18:33:55.654252867 +0100
++++ b/src/Makefile 2014-12-20 18:31:10.241359741 +0100
+@@ -43,7 +43,7 @@
+
+ ifneq (,$(findstring SOLARIS,$(CFLAGS)))
+ ifeq (,$(findstring DISABLE_INET_SOCKET,$(CFLAGS)))
+-override LFLAGS += -lsocket -lnsl
++ override LFLAGS += -lsocket -lnsl
+ endif
+ endif
+
+
--
2.1.3
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel
More information about the openwrt-devel
mailing list