diff mbox

[OpenWrt-Devel,1/1] package: contrib: add smstools3 package

Message ID 1419145792-17513-1-git-send-email-dreagle@doukki.net
State Not Applicable
Headers show

Commit Message

DrEagle Dec. 21, 2014, 7:09 a.m. UTC
Add smstools3 package from http://smstools3.kekekasvi.com/

Signed-off-by: Gerald Kerma <dreagle@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

Comments

DrEagle Dec. 21, 2014, 7:17 a.m. UTC | #1
Hi,

Le 21/12/2014 08:09, Gerald Kerma a écrit :
> Add smstools3 package from http://smstools3.kekekasvi.com/
> 
> Signed-off-by: Gerald Kerma <dreagle@doukki.net>

Tested successfull as an email/sms gateway with :
- Device: ID 12d1:1001 Huawei Technologies Co., Ltd. E169/E620/E800 HSDPA Modem
- Trunk: OpenWrt Chaos Calmer r43753
- Kirkwood : Globalscale Technologies Guruplug Server Plus

Send and receive SMS with modem : OK
Forward received SMS to mailhub : OK
Jiri Slachta Dec. 21, 2014, 7:48 a.m. UTC | #2
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hello Gerald,

I would recommend you to resend the patch to the openwrt packages repository on
github as a pull request.

Please follow the Contributing Guidelines[1] for packages in OpenWrt package 
repository. In your Makefile the PKG_MAINTAINER is not defined and the PKG_RELEASE 
should be reset to 1 since the package Makefile is at its initial version.

Kind regards,
Jiri Slachta

[1] https://github.com/openwrt/packages/blob/master/CONTRIBUTING.md

Dne 21.12.2014 v 08:09 Gerald Kerma napsal(a):
> Add smstools3 package from http://smstools3.kekekasvi.com/
> 
> Signed-off-by: Gerald Kerma <dreagle@doukki.net>
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iQIcBAEBAgAGBQJUlnssAAoJECilMVBDttCPrJsP/1zyIQpfHeqj2Ieas9xl9gSd
dtdeN5GRteir8Tc+o/yf2eKJV0B3XqPiI0bGkJnMyRWPr7SzPlE7dlaZso7w8pHR
DK+4e07D6exmRXri0iEpRW1o4tdEQd/Xs+xm8BxWAXSTqJULZpnA414arZFvcnoT
whljSET6T2+TEMD3w5+jJMs6wnmxPM97Dxd9rxKmOmBGaDYfIWkkGSpMM30XYt0z
ZMqXwqYwM5awjh+AaGtc/PWzOVZUvAyo5e1kURred5eAfzm2SPwfQH2oNyv023dR
MeAXoZloq7QGn8b0qzLyStVU/F7NmsJA0tKHaYZJ3Nme0j54aCr+T3GXnkzjwBCR
YCDXUefIKsMmeMJeCknpBGKCWivYud8gIGM7+DzPiFCTVxET8yBkLqlRahOTuWyM
FMogk90CllHt236mrEeeFYfPTJsQSVjXO/zzvbHzYJKLW1dyGNPoLW9GufoubatN
xXFxJ+aW/NVUi0TKtxBEpkkPNhkRW1Z/FFNqb7By6S+4lTiRiXvJQlDOVft/6bvR
aUan169Xz32eGiNf4wP3G0DPfIytgKUmcdIzx78kxXiN5GYH9/8NU9DKXR4D1LId
BUbRPlVaC41p5KV76uTt94TN3z4kjDGwry7SiAoSbprPsSSRE4n6E5XAZrGyLQn7
fHLpFuNX27z+6iWDpOYy
=ei6Z
-----END PGP SIGNATURE-----
DrEagle Dec. 23, 2014, 6 a.m. UTC | #3
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hello Jiri,

Le 21/12/2014 08:48, Jiri Slachta a écrit :
> Hello Gerald,
> 
> I would recommend you to resend the patch to the openwrt packages repository on
> github as a pull request.

Is there any another method to contribute that using github ?

> Please follow the Contributing Guidelines[1] for packages in OpenWrt package 
> repository. In your Makefile the PKG_MAINTAINER is not defined and the PKG_RELEASE 
> should be reset to 1 since the package Makefile is at its initial version.

Read and applied.

Regards,
Gérald

> Kind regards,
> Jiri Slachta
> 
> [1] https://github.com/openwrt/packages/blob/master/CONTRIBUTING.md
> 
> Dne 21.12.2014 v 08:09 Gerald Kerma napsal(a):
>> Add smstools3 package from http://smstools3.kekekasvi.com/
> 
>> Signed-off-by: Gerald Kerma <dreagle@doukki.net>
> 

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iQEcBAEBAgAGBQJUmQT8AAoJEIoWzNw2mnfM18wH/AzuFJJlly4UKr3QZr/QPX1w
O+SFkY7gkKzEEzyFFGlTFJQl6RjU7trdeI0KtEteWXHbPzWmLygN08AY1fzFZ+dg
5qdxl0rBlO5QAM+T9eQt7UvkrqN0g+lMn9HpP4q0w3uEkKXuvHi/kqiWKYuHmROG
E4h8E4KuAeNp6PQVsk2eNiM1QQfZaXpakiQzVr0Cx3DUqZlPOwKapTM2qd64rkLU
OQg+eZwG4OOHSG7Nle7gR43o/QWYnXzEkPahg9ceFNGI3sjY+Et+0Lm2LunI93D5
WBoZ4mGzKz34oRmZkJMYMR5cZ0fFLmj9u+8m6Js3CwI7QOayJ3/f1rjkEMdkc+A=
=Re2k
-----END PGP SIGNATURE-----
DrEagle Dec. 23, 2014, 5:54 p.m. UTC | #4
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hello Jiri,

Le 21/12/2014 08:48, Jiri Slachta a écrit :
> Hello Gerald,
> 
> I would recommend you to resend the patch to the openwrt packages repository on
> github as a pull request.

I have proposed and ask for a pull.

Thanks for the review.

Regards,
Gérald

> Please follow the Contributing Guidelines[1] for packages in OpenWrt package 
> repository. In your Makefile the PKG_MAINTAINER is not defined and the PKG_RELEASE 
> should be reset to 1 since the package Makefile is at its initial version.
> 
> Kind regards,
> Jiri Slachta
> 
> [1] https://github.com/openwrt/packages/blob/master/CONTRIBUTING.md
> 
> Dne 21.12.2014 v 08:09 Gerald Kerma napsal(a):
>> Add smstools3 package from http://smstools3.kekekasvi.com/
> 
>> Signed-off-by: Gerald Kerma <dreagle@doukki.net>
> 

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iQEcBAEBAgAGBQJUmaxcAAoJEIoWzNw2mnfMEqgH/3YKNvdUFejjD7W5hd3RBS42
LbO8CDPfnCZul3lqo4M0ENhSFr2XL9jxwGdnEl4eckFU8eJSBTxpsSIQ0pSd0K/X
RHF/Gah+wqpGim7QSOUW7jUFFTSXblor/JikSjgBURgu5lnqu/uqi9+W8qz4KkTR
jIkfCykxsqzzcXKU5P0cgUOOMpWqmv3HWbXdln0RTNMbFrciTz5Ssi1R7KVotidB
UecDNW/t9p0+ELQHC5C6Bld7Xl9fdZeac9e77dQH4iYXzBYOKDHeajXKcpnTbD2V
ttrQExLIL9BsbudIbIdQ0Z0/wO4boA/5FhL1FUhIuanfxnlgc29rwUnNfPHFdrE=
=CB7S
-----END PGP SIGNATURE-----
diff mbox

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
+ 
+