diff mbox series

comgt: Move to community packages repo

Message ID 20210628165238.25082-1-arjunak234@gmail.com
State Rejected
Delegated to: Petr Štetiar
Headers show
Series comgt: Move to community packages repo | expand

Commit Message

Arjun AK June 28, 2021, 4:52 p.m. UTC
Signed-off-by: Arjun AK <arjunak234@gmail.com>
---
 package/network/utils/comgt/Makefile          | 106 --------
 package/network/utils/comgt/files/3g.chat     |  12 -
 package/network/utils/comgt/files/3g.sh       | 116 --------
 package/network/utils/comgt/files/3g.usb      |  33 ---
 .../utils/comgt/files/directip-stop.gcom      |  16 --
 .../network/utils/comgt/files/directip.gcom   |  55 ----
 package/network/utils/comgt/files/directip.sh | 114 --------
 package/network/utils/comgt/files/evdo.chat   |  17 --
 .../utils/comgt/files/getcardinfo.gcom        |  14 -
 .../network/utils/comgt/files/getcarrier.gcom |  20 --
 .../network/utils/comgt/files/getcnum.gcom    |  20 --
 .../network/utils/comgt/files/getimsi.gcom    |  17 --
 .../utils/comgt/files/getstrength.gcom        |  14 -
 package/network/utils/comgt/files/ncm.json    |  78 ------
 package/network/utils/comgt/files/ncm.sh      | 255 ------------------
 .../network/utils/comgt/files/runcommand.gcom |  31 ---
 .../network/utils/comgt/files/setmode.gcom    |  26 --
 package/network/utils/comgt/files/setpin.gcom |  56 ----
 package/network/utils/comgt/files/ussd.gcom   |  21 --
 .../utils/comgt/patches/001-compile_fix.patch |  23 --
 .../utils/comgt/patches/002-termios.patch     | 105 --------
 .../utils/comgt/patches/003-no_XCASE.patch    |  20 --
 .../utils/comgt/patches/004-check_tty.patch   |  68 -----
 23 files changed, 1237 deletions(-)
 delete mode 100644 package/network/utils/comgt/Makefile
 delete mode 100644 package/network/utils/comgt/files/3g.chat
 delete mode 100644 package/network/utils/comgt/files/3g.sh
 delete mode 100644 package/network/utils/comgt/files/3g.usb
 delete mode 100644 package/network/utils/comgt/files/directip-stop.gcom
 delete mode 100644 package/network/utils/comgt/files/directip.gcom
 delete mode 100644 package/network/utils/comgt/files/directip.sh
 delete mode 100644 package/network/utils/comgt/files/evdo.chat
 delete mode 100644 package/network/utils/comgt/files/getcardinfo.gcom
 delete mode 100644 package/network/utils/comgt/files/getcarrier.gcom
 delete mode 100644 package/network/utils/comgt/files/getcnum.gcom
 delete mode 100644 package/network/utils/comgt/files/getimsi.gcom
 delete mode 100644 package/network/utils/comgt/files/getstrength.gcom
 delete mode 100644 package/network/utils/comgt/files/ncm.json
 delete mode 100644 package/network/utils/comgt/files/ncm.sh
 delete mode 100644 package/network/utils/comgt/files/runcommand.gcom
 delete mode 100644 package/network/utils/comgt/files/setmode.gcom
 delete mode 100644 package/network/utils/comgt/files/setpin.gcom
 delete mode 100644 package/network/utils/comgt/files/ussd.gcom
 delete mode 100644 package/network/utils/comgt/patches/001-compile_fix.patch
 delete mode 100644 package/network/utils/comgt/patches/002-termios.patch
 delete mode 100644 package/network/utils/comgt/patches/003-no_XCASE.patch
 delete mode 100644 package/network/utils/comgt/patches/004-check_tty.patch

Comments

Arjun AK June 28, 2021, 4:54 p.m. UTC | #1
On 28/06/21 10:22 pm, Arjun AK wrote:
> Signed-off-by: Arjun AK <arjunak234@gmail.com>
> ---
>   package/network/utils/comgt/Makefile          | 106 --------
>   package/network/utils/comgt/files/3g.chat     |  12 -
>   package/network/utils/comgt/files/3g.sh       | 116 --------
>   package/network/utils/comgt/files/3g.usb      |  33 ---
>   .../utils/comgt/files/directip-stop.gcom      |  16 --
>   .../network/utils/comgt/files/directip.gcom   |  55 ----
>   package/network/utils/comgt/files/directip.sh | 114 --------
>   package/network/utils/comgt/files/evdo.chat   |  17 --
>   .../utils/comgt/files/getcardinfo.gcom        |  14 -
>   .../network/utils/comgt/files/getcarrier.gcom |  20 --
>   .../network/utils/comgt/files/getcnum.gcom    |  20 --
>   .../network/utils/comgt/files/getimsi.gcom    |  17 --
>   .../utils/comgt/files/getstrength.gcom        |  14 -
>   package/network/utils/comgt/files/ncm.json    |  78 ------
>   package/network/utils/comgt/files/ncm.sh      | 255 ------------------
>   .../network/utils/comgt/files/runcommand.gcom |  31 ---
>   .../network/utils/comgt/files/setmode.gcom    |  26 --
>   package/network/utils/comgt/files/setpin.gcom |  56 ----
>   package/network/utils/comgt/files/ussd.gcom   |  21 --
>   .../utils/comgt/patches/001-compile_fix.patch |  23 --
>   .../utils/comgt/patches/002-termios.patch     | 105 --------
>   .../utils/comgt/patches/003-no_XCASE.patch    |  20 --
>   .../utils/comgt/patches/004-check_tty.patch   |  68 -----
>   23 files changed, 1237 deletions(-)
>   delete mode 100644 package/network/utils/comgt/Makefile
>   delete mode 100644 package/network/utils/comgt/files/3g.chat
>   delete mode 100644 package/network/utils/comgt/files/3g.sh
>   delete mode 100644 package/network/utils/comgt/files/3g.usb
>   delete mode 100644 package/network/utils/comgt/files/directip-stop.gcom
>   delete mode 100644 package/network/utils/comgt/files/directip.gcom
>   delete mode 100644 package/network/utils/comgt/files/directip.sh
>   delete mode 100644 package/network/utils/comgt/files/evdo.chat
>   delete mode 100644 package/network/utils/comgt/files/getcardinfo.gcom
>   delete mode 100644 package/network/utils/comgt/files/getcarrier.gcom
>   delete mode 100644 package/network/utils/comgt/files/getcnum.gcom
>   delete mode 100644 package/network/utils/comgt/files/getimsi.gcom
>   delete mode 100644 package/network/utils/comgt/files/getstrength.gcom
>   delete mode 100644 package/network/utils/comgt/files/ncm.json
>   delete mode 100644 package/network/utils/comgt/files/ncm.sh
>   delete mode 100644 package/network/utils/comgt/files/runcommand.gcom
>   delete mode 100644 package/network/utils/comgt/files/setmode.gcom
>   delete mode 100644 package/network/utils/comgt/files/setpin.gcom
>   delete mode 100644 package/network/utils/comgt/files/ussd.gcom
>   delete mode 100644 package/network/utils/comgt/patches/001-compile_fix.patch
>   delete mode 100644 package/network/utils/comgt/patches/002-termios.patch
>   delete mode 100644 package/network/utils/comgt/patches/003-no_XCASE.patch
>   delete mode 100644 package/network/utils/comgt/patches/004-check_tty.patch
> 
> diff --git a/package/network/utils/comgt/Makefile b/package/network/utils/comgt/Makefile
> deleted file mode 100644
> index db5ea57473..0000000000
> --- a/package/network/utils/comgt/Makefile
> +++ /dev/null
> @@ -1,106 +0,0 @@
> -#
> -# Copyright (C) 2006-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:=comgt
> -PKG_VERSION:=0.32
> -PKG_RELEASE:=33
> -
> -PKG_SOURCE:=$(PKG_NAME).$(PKG_VERSION).tgz
> -PKG_SOURCE_URL:=@SF/comgt
> -PKG_HASH:=0cedb2a5aa608510da66a99aab74df3db363df495032e57e791a2ff55f1d7913
> -
> -PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
> -PKG_LICENSE:=GPL-2.0+
> -
> -PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME).$(PKG_VERSION)
> -PKG_CHECK_FORMAT_SECURITY:=0
> -
> -PKG_FLAGS:=nonshared
> -
> -include $(INCLUDE_DIR)/package.mk
> -
> -define Package/comgt/Default
> -  SECTION:=net
> -  CATEGORY:=Network
> -  SUBMENU:=WWAN
> -endef
> -
> -define Package/comgt
> -$(call Package/comgt/Default)
> -  TITLE:=Option/Vodafone 3G/GPRS control tool
> -  DEPENDS:=+chat
> -  URL:=http://manpages.ubuntu.com/manpages/trusty/man1/comgt.1.html
> -endef
> -
> -define Package/comgt-directip
> -$(call Package/comgt/Default)
> -  TITLE:=Sierra Wireless Direct-IP support
> -  DEPENDS:=+comgt +kmod-usb-serial +kmod-usb-serial-sierrawireless +kmod-usb-net +kmod-usb-net-sierrawireless
> -endef
> -
> -define Package/comgt-ncm
> -$(call Package/comgt/Default)
> -  TITLE+=NCM 3G/4G Support
> -  DEPENDS:=+comgt +wwan +kmod-usb-serial-option +kmod-usb-net-huawei-cdc-ncm
> -endef
> -
> -define Package/comgt/description
> - comgt is a scripting language interpreter useful for establishing
> - communications on serial lines and through PCMCIA modems as well as GPRS
> - and 3G datacards.
> -endef
> -
> -define Build/Compile
> -	$(MAKE) -C $(PKG_BUILD_DIR) \
> -		$(TARGET_CONFIGURE_OPTS) \
> -		CFLAGS="$(TARGET_CFLAGS)" \
> -		LDFLAGS="" \
> -		comgt
> -endef
> -
> -define Package/comgt/install
> -	$(INSTALL_DIR) $(1)/usr/bin
> -	$(INSTALL_BIN) $(PKG_BUILD_DIR)/comgt $(1)/usr/bin/
> -	$(LN) comgt $(1)/usr/bin/gcom
> -	$(INSTALL_DIR) $(1)/etc/chatscripts
> -	$(INSTALL_DATA) ./files/3g.chat $(1)/etc/chatscripts/3g.chat
> -	$(INSTALL_DATA) ./files/evdo.chat $(1)/etc/chatscripts/evdo.chat
> -	$(INSTALL_DIR) $(1)/etc/gcom
> -	$(INSTALL_DATA) ./files/setpin.gcom $(1)/etc/gcom/setpin.gcom
> -	$(INSTALL_DATA) ./files/setmode.gcom $(1)/etc/gcom/setmode.gcom
> -	$(INSTALL_DATA) ./files/getcardinfo.gcom $(1)/etc/gcom/getcardinfo.gcom
> -	$(INSTALL_DATA) ./files/getstrength.gcom $(1)/etc/gcom/getstrength.gcom
> -	$(INSTALL_DATA) ./files/getcarrier.gcom $(1)/etc/gcom/getcarrier.gcom
> -	$(INSTALL_DATA) ./files/getcnum.gcom $(1)/etc/gcom/getcnum.gcom
> -	$(INSTALL_DATA) ./files/getimsi.gcom $(1)/etc/gcom/getimsi.gcom
> -	$(INSTALL_DIR) $(1)/etc/hotplug.d/tty
> -	$(INSTALL_CONF) ./files/3g.usb $(1)/etc/hotplug.d/tty/30-3g
> -	$(INSTALL_DIR) $(1)/lib/netifd/proto
> -	$(INSTALL_BIN) ./files/3g.sh $(1)/lib/netifd/proto/3g.sh
> -endef
> -
> -define Package/comgt-directip/install
> -	$(INSTALL_DIR) $(1)/etc/gcom
> -	$(INSTALL_DATA) ./files/directip.gcom $(1)/etc/gcom/directip.gcom
> -	$(INSTALL_DATA) ./files/directip-stop.gcom $(1)/etc/gcom/directip-stop.gcom
> -	$(INSTALL_DIR) $(1)/lib/netifd/proto
> -	$(INSTALL_BIN) ./files/directip.sh $(1)/lib/netifd/proto/directip.sh
> -endef
> -
> -define Package/comgt-ncm/install
> -	$(INSTALL_DIR) $(1)/etc/gcom
> -	$(INSTALL_DATA) ./files/ncm.json $(1)/etc/gcom/ncm.json
> -	$(INSTALL_DATA) ./files/runcommand.gcom $(1)/etc/gcom/runcommand.gcom
> -	$(INSTALL_DIR) $(1)/lib/netifd/proto
> -	$(INSTALL_BIN) ./files/ncm.sh $(1)/lib/netifd/proto/ncm.sh
> -endef
> -
> -$(eval $(call BuildPackage,comgt))
> -$(eval $(call BuildPackage,comgt-directip))
> -$(eval $(call BuildPackage,comgt-ncm))
> diff --git a/package/network/utils/comgt/files/3g.chat b/package/network/utils/comgt/files/3g.chat
> deleted file mode 100644
> index 66562400f0..0000000000
> --- a/package/network/utils/comgt/files/3g.chat
> +++ /dev/null
> @@ -1,12 +0,0 @@
> -ABORT   BUSY
> -ABORT   'NO CARRIER'
> -ABORT   ERROR
> -REPORT  CONNECT
> -TIMEOUT 10
> -""      "AT&F"
> -OK      "ATE1"
> -OK      'AT+CGDCONT=1,"IP","$USE_APN"'
> -SAY     "Calling UMTS/GPRS"
> -TIMEOUT 30
> -OK      "ATD$DIALNUMBER"
> -CONNECT ' '
> diff --git a/package/network/utils/comgt/files/3g.sh b/package/network/utils/comgt/files/3g.sh
> deleted file mode 100644
> index 9220cbf5a0..0000000000
> --- a/package/network/utils/comgt/files/3g.sh
> +++ /dev/null
> @@ -1,116 +0,0 @@
> -#!/bin/sh
> -
> -[ -n "$INCLUDE_ONLY" ] || {
> -	NOT_INCLUDED=1
> -	INCLUDE_ONLY=1
> -
> -	. ../netifd-proto.sh
> -	. ./ppp.sh
> -	init_proto "$@"
> -}
> -
> -proto_3g_init_config() {
> -	no_device=1
> -	available=1
> -	ppp_generic_init_config
> -	proto_config_add_string "device:device"
> -	proto_config_add_string "apn"
> -	proto_config_add_string "service"
> -	proto_config_add_string "pincode"
> -	proto_config_add_string "delay"
> -	proto_config_add_string "dialnumber"
> -}
> -
> -proto_3g_setup() {
> -	local interface="$1"
> -	local chat
> -
> -	json_get_var device device
> -	json_get_var apn apn
> -	json_get_var service service
> -	json_get_var pincode pincode
> -	json_get_var dialnumber dialnumber
> -	json_get_var delay delay
> -
> -	[ -n "$dat_device" ] && device=$dat_device
> -
> -	device="$(readlink -f $device)"
> -	[ -e "$device" ] || {
> -		proto_set_available "$interface" 0
> -		return 1
> -	}
> -
> -	[ -n "$delay" ] && sleep "$delay"
> -
> -	case "$service" in
> -		cdma|evdo)
> -			chat="/etc/chatscripts/evdo.chat"
> -		;;
> -		*)
> -			chat="/etc/chatscripts/3g.chat"
> -			cardinfo=$(gcom -d "$device" -s /etc/gcom/getcardinfo.gcom)
> -			if echo "$cardinfo" | grep -q Novatel; then
> -				case "$service" in
> -					umts_only) CODE=2;;
> -					gprs_only) CODE=1;;
> -					*) CODE=0;;
> -				esac
> -				export MODE="AT\$NWRAT=${CODE},2"
> -			elif echo "$cardinfo" | grep -q Option; then
> -				case "$service" in
> -					umts_only) CODE=1;;
> -					gprs_only) CODE=0;;
> -					*) CODE=3;;
> -				esac
> -				export MODE="AT_OPSYS=${CODE}"
> -			elif echo "$cardinfo" | grep -q "Sierra Wireless"; then
> -				SIERRA=1
> -			elif echo "$cardinfo" | grep -qi huawei; then
> -				case "$service" in
> -					umts_only) CODE="14,2";;
> -					gprs_only) CODE="13,1";;
> -					*) CODE="2,2";;
> -				esac
> -				export MODE="AT^SYSCFG=${CODE},3FFFFFFF,2,4"
> -			fi
> -
> -			if [ -n "$pincode" ]; then
> -				PINCODE="$pincode" gcom -d "$device" -s /etc/gcom/setpin.gcom || {
> -					proto_notify_error "$interface" PIN_FAILED
> -					proto_block_restart "$interface"
> -					return 1
> -				}
> -			fi
> -			[ -n "$MODE" ] && gcom -d "$device" -s /etc/gcom/setmode.gcom
> -
> -			# wait for carrier to avoid firmware stability bugs
> -			[ -n "$SIERRA" ] && {
> -				gcom -d "$device" -s /etc/gcom/getcarrier.gcom || return 1
> -			}
> -
> -			if [ -z "$dialnumber" ]; then
> -				dialnumber="*99***1#"
> -			fi
> -
> -		;;
> -	esac
> -
> -	connect="${apn:+USE_APN=$apn }DIALNUMBER=$dialnumber /usr/sbin/chat -t5 -v -E -f $chat"
> -	ppp_generic_setup "$interface" \
> -		noaccomp \
> -		nopcomp \
> -		novj \
> -		nobsdcomp \
> -		noauth \
> -		set EXTENDPREFIX=1 \
> -		lock \
> -		crtscts \
> -		115200 "$device"
> -	return 0
> -}
> -
> -proto_3g_teardown() {
> -	proto_kill_command "$interface"
> -}
> -
> -[ -z "$NOT_INCLUDED" ] || add_protocol 3g
> diff --git a/package/network/utils/comgt/files/3g.usb b/package/network/utils/comgt/files/3g.usb
> deleted file mode 100644
> index 8f0d62ca83..0000000000
> --- a/package/network/utils/comgt/files/3g.usb
> +++ /dev/null
> @@ -1,33 +0,0 @@
> -#!/bin/sh
> -. /lib/functions.sh
> -. /lib/netifd/netifd-proto.sh
> -
> -find_3g_iface() {
> -	local cfg="$1"
> -	local tty="$2"
> -
> -	local proto
> -	config_get proto "$cfg" proto
> -	[ "$proto" = 3g ] || [ "$proto" = ncm ] || return 0
> -
> -	# bypass state vars here because 00-netstate could clobber .device
> -	local dev=$(uci_get network "$cfg" device)
> -
> -	if [ "${dev##*/}" = "${tty##*/}" ]; then
> -		if [ "$ACTION" = add ]; then
> -			proto_set_available "$cfg" 1
> -		fi
> -		if [ "$ACTION" = remove ]; then
> -			proto_set_available "$cfg" 0
> -		fi
> -	fi
> -}
> -
> -case "$DEVICENAME" in
> -	tty*)
> -		[ -e "/dev/$DEVICENAME" ] || [ "$ACTION" = remove ] || exit 0
> -		config_load network
> -		config_foreach find_3g_iface interface "/dev/$DEVICENAME"
> -	;;
> -esac
> -
> diff --git a/package/network/utils/comgt/files/directip-stop.gcom b/package/network/utils/comgt/files/directip-stop.gcom
> deleted file mode 100644
> index 1c14863734..0000000000
> --- a/package/network/utils/comgt/files/directip-stop.gcom
> +++ /dev/null
> @@ -1,16 +0,0 @@
> -opengt
> -set com 115200n81
> -set comecho off
> -set senddelay 0.05
> -waitquiet 1 0.2
> -
> -:start
> - send "AT!SCACT=0,3^m"
> - waitfor 5 "OK"
> - if % = 0 goto hangupok
> - print "WWAN error. Hangup failed.\r\n"
> - exit 1
> -
> -:hangupok
> - print "WWAN connection established.\r\n"
> - exit 0
> diff --git a/package/network/utils/comgt/files/directip.gcom b/package/network/utils/comgt/files/directip.gcom
> deleted file mode 100644
> index 9a772a90f7..0000000000
> --- a/package/network/utils/comgt/files/directip.gcom
> +++ /dev/null
> @@ -1,55 +0,0 @@
> -opengt
> -set com 115200n81
> -set comecho off
> -set senddelay 0.05
> -waitquiet 1 0.2
> -
> -:start
> - if $env("USE_AUTH") = "0" goto connect
> - send "AT$QCPDPP=3,"
> - send $env("USE_AUTH")
> - send ",\""
> - if $env("USE_USER") <> "" send $env("USE_USER")
> - send "\",\""
> - if $env("USE_PASS") <> "" send $env("USE_PASS")
> - send "\"^m"
> - waitfor 5 "OK"
> - if % = 0 goto connect
> - print "WWAN error. Auth failed.\r\n"
> - exit 1
> -
> -:connect
> - send "AT+CFUN=1^m"
> - send "AT+CGDCONT=3,\"IP\",\""
> - send $env("USE_APN")
> - send "\"^m"
> - waitfor 5 "OK"
> - if % = 0 goto connok
> - print "WWAN error. Connection failed.\r\n"
> - exit 1
> -
> -:connok
> - let c=1
> -:loop
> - sleep 2
> - send "AT+CGATT?^m"
> - waitfor 5 "+CGATT: 1"
> - if % = 0 goto carrierok
> - if c > 10 goto carriererr
> - inc c
> - goto loop
> -
> -:carriererr
> - print "WWAN error. No carrier.\r\n"
> - exit 1
> -
> -:carrierok
> - send "AT!SCACT=1,3^m"
> - waitfor 5 "OK"
> - if % = 0 goto dialok
> - print "WWAN error. Dialing failed.\r\n"
> - exit 1
> -
> -:dialok
> - print "WWAN connection established.\r\n"
> - exit 0
> diff --git a/package/network/utils/comgt/files/directip.sh b/package/network/utils/comgt/files/directip.sh
> deleted file mode 100644
> index 3452fa5db7..0000000000
> --- a/package/network/utils/comgt/files/directip.sh
> +++ /dev/null
> @@ -1,114 +0,0 @@
> -#!/bin/sh
> -
> -[ -n "$INCLUDE_ONLY" ] || {
> -	. /lib/functions.sh
> -	. ../netifd-proto.sh
> -	init_proto "$@"
> -}
> -
> -proto_directip_init_config() {
> -	available=1
> -	no_device=1
> -	proto_config_add_string "device:device"
> -	proto_config_add_string "apn"
> -	proto_config_add_string "pincode"
> -	proto_config_add_string "auth"
> -	proto_config_add_string "username"
> -	proto_config_add_string "password"
> -	proto_config_add_defaults
> -}
> -
> -proto_directip_setup() {
> -	local interface="$1"
> -	local chat devpath devname
> -
> -	local device apn pincode ifname auth username password $PROTO_DEFAULT_OPTIONS
> -	json_get_vars device apn pincode auth username password $PROTO_DEFAULT_OPTIONS
> -
> -	[ -n "$ctl_device" ] && device=$ctl_device
> -
> -	device="$(readlink -f $device)"
> -	[ -e "$device" ] || {
> -		proto_notify_error "$interface" NO_DEVICE
> -		proto_set_available "$interface" 0
> -		return 1
> -	}
> -
> -	devname="$(basename "$device")"
> -	devpath="$(readlink -f /sys/class/tty/$devname/device)"
> -	ifname="$( ls "$devpath"/../../*/net )"
> -
> -	[ -n "$ifname" ] || {
> -		proto_notify_error "$interface" NO_IFNAME
> -		proto_set_available "$interface" 0
> -		return 1
> -	}
> -
> -	gcom -d "$device" -s /etc/gcom/getcardinfo.gcom | grep -q "Sierra Wireless" || {
> -		proto_notify_error "$interface" BAD_DEVICE
> -		proto_block_restart "$interface"
> -		return 1
> -	}
> -
> -	if [ -n "$pincode" ]; then
> -		PINCODE="$pincode" gcom -d "$device" -s /etc/gcom/setpin.gcom || {
> -			proto_notify_error "$interface" PIN_FAILED
> -			proto_block_restart "$interface"
> -			return 1
> -		}
> -	fi
> -	# wait for carrier to avoid firmware stability bugs
> -	gcom -d "$device" -s /etc/gcom/getcarrier.gcom || return 1
> -
> -	local auth_type=0
> -	case $auth in
> -	pap) auth_type=1;;
> -	chap) auth_type=2;;
> -	esac
> -
> -	USE_APN="$apn" USE_USER="$username" USE_PASS="$password" USE_AUTH="$auth_type" \
> -			gcom -d "$device" -s /etc/gcom/directip.gcom || {
> -		proto_notify_error "$interface" CONNECT_FAILED
> -		proto_block_restart "$interface"
> -		return 1
> -	}
> -
> -	logger -p daemon.info -t "directip[$$]" "Connected, starting DHCP"
> -	proto_init_update "$ifname" 1
> -	proto_send_update "$interface"
> -
> -	json_init
> -	json_add_string name "${interface}_4"
> -	json_add_string ifname "@$interface"
> -	json_add_string proto "dhcp"
> -	proto_add_dynamic_defaults
> -	ubus call network add_dynamic "$(json_dump)"
> -
> -	json_init
> -	json_add_string name "${interface}_6"
> -	json_add_string ifname "@$interface"
> -	json_add_string proto "dhcpv6"
> -	json_add_string extendprefix 1
> -	proto_add_dynamic_defaults
> -	ubus call network add_dynamic "$(json_dump)"
> -
> -	return 0
> -}
> -
> -proto_directip_teardown() {
> -	local interface="$1"
> -
> -	local device
> -	json_get_vars device
> -
> -	[ -n "$ctl_device" ] && device=$ctl_device
> -
> -	gcom -d "$device" -s /etc/gcom/directip-stop.gcom || proto_notify_error "$interface" CONNECT_FAILED
> -
> -	proto_init_update "*" 0
> -	proto_send_update "$interface"
> -}
> -
> -[ -n "$INCLUDE_ONLY" ] || {
> -	add_protocol directip
> -}
> diff --git a/package/network/utils/comgt/files/evdo.chat b/package/network/utils/comgt/files/evdo.chat
> deleted file mode 100644
> index de49e41a1b..0000000000
> --- a/package/network/utils/comgt/files/evdo.chat
> +++ /dev/null
> @@ -1,17 +0,0 @@
> -# This is a simple chat script based off of the one provided by Sierra Wireless
> -# for CDMA connections.  It should work for both Sprint and Verizon networks.
> -
> -ABORT	BUSY
> -ABORT 	'NO CARRIER'
> -ABORT	ERROR
> -ABORT 	'NO DIAL TONE'
> -ABORT 	'NO ANSWER'
> -ABORT 	DELAYED
> -REPORT	CONNECT
> -TIMEOUT	10
> -'' 		AT
> -OK 		ATZ
> -SAY     'Calling CDMA/EVDO'
> -TIMEOUT	30
> -OK		ATDT#777
> -CONNECT	''
> diff --git a/package/network/utils/comgt/files/getcardinfo.gcom b/package/network/utils/comgt/files/getcardinfo.gcom
> deleted file mode 100644
> index f91665f72e..0000000000
> --- a/package/network/utils/comgt/files/getcardinfo.gcom
> +++ /dev/null
> @@ -1,14 +0,0 @@
> -opengt
> - set com 115200n81
> - set comecho off
> - set senddelay 0.02
> - waitquiet 0.2 0.2
> - flash 0.1
> -
> -:start
> - send "AT+CGMI^m"
> - get 1 "" $s
> - print $s
> -
> -:continue
> - exit 0
> diff --git a/package/network/utils/comgt/files/getcarrier.gcom b/package/network/utils/comgt/files/getcarrier.gcom
> deleted file mode 100644
> index 1e0216d46a..0000000000
> --- a/package/network/utils/comgt/files/getcarrier.gcom
> +++ /dev/null
> @@ -1,20 +0,0 @@
> -opengt
> -  set senddelay 0.05
> -  waitquiet 1 0.2
> -  let c=1
> - :loop
> -    inc c
> -    send "AT+CGATT?^m"
> -    waitfor 5 "+CGATT: 1","+CGATT: 0"
> -    print "\n."
> -    if % = -1 goto error
> -    if c > 10 goto toolong
> -    if % = 0 goto out
> -    sleep 2
> -    if % = 1 goto loop
> -  :toolong
> -  exit 1
> -  :error
> -  exit 0
> -  :out
> - exit 0
> diff --git a/package/network/utils/comgt/files/getcnum.gcom b/package/network/utils/comgt/files/getcnum.gcom
> deleted file mode 100644
> index 450cf8c413..0000000000
> --- a/package/network/utils/comgt/files/getcnum.gcom
> +++ /dev/null
> @@ -1,20 +0,0 @@
> -opengt
> - set com 115200n81
> - set comecho off
> - set senddelay 0.02
> - waitquiet 0.2 0.2
> - flash 0.1
> -
> -:start
> - send "AT+CNUM^m"
> - get 1 "^m" $n
> - get 1 ":" $n
> - get 1 "\"" $n
> - get 1 "\"" $n
> - get 1 "\"" $n
> - get 1 "\"" $n
> - let n = len($n)
> - if n<1 goto continue
> - print $n
> -:continue
> - exit 0
> diff --git a/package/network/utils/comgt/files/getimsi.gcom b/package/network/utils/comgt/files/getimsi.gcom
> deleted file mode 100644
> index 04854561b1..0000000000
> --- a/package/network/utils/comgt/files/getimsi.gcom
> +++ /dev/null
> @@ -1,17 +0,0 @@
> -opengt
> - set com 115200n81
> - set comecho off
> - set senddelay 0.02
> - waitquiet 0.2 0.2
> - flash 0.1
> -
> -:start
> - send "AT+CIMI^m"
> - get 1 "^m" $s
> - get 1 "^m" $s
> - let x = len($s)
> - if x<2 goto continue
> - let $s = $right($s, x-1)
> - print $s
> -:continue
> - exit 0
> diff --git a/package/network/utils/comgt/files/getstrength.gcom b/package/network/utils/comgt/files/getstrength.gcom
> deleted file mode 100644
> index 2886285971..0000000000
> --- a/package/network/utils/comgt/files/getstrength.gcom
> +++ /dev/null
> @@ -1,14 +0,0 @@
> -opengt
> - set com 115200n81
> - set comecho off
> - set senddelay 0.02
> - waitquiet 0.2 0.2
> - flash 0.1
> -
> -:start
> - send "AT+CSQ^m"
> - get 1 "" $s
> - print $s
> -
> -:continue
> - exit 0
> diff --git a/package/network/utils/comgt/files/ncm.json b/package/network/utils/comgt/files/ncm.json
> deleted file mode 100644
> index bbdb30c5ee..0000000000
> --- a/package/network/utils/comgt/files/ncm.json
> +++ /dev/null
> @@ -1,78 +0,0 @@
> -{
> -	"huawei": {
> -		"initialize": [
> -			"AT",
> -			"ATZ",
> -			"ATQ0",
> -			"ATV1",
> -			"ATE1",
> -			"ATS0=0",
> -			"AT+CGDCONT=${profile},\\\"${pdptype}\\\"${apn:+,\\\"$apn\\\"}"
> -		],
> -		"modes": {
> -			"preferlte": "AT^SYSCFGEX=\\\"030201\\\",3fffffff,2,4,7fffffffffffffff,,",
> -			"preferumts": "AT^SYSCFGEX=\\\"0201\\\",3fffffff,2,4,7fffffffffffffff,,",
> -			"lte": "AT^SYSCFGEX=\\\"03\\\",3fffffff,2,4,7fffffffffffffff,,",
> -			"umts": "AT^SYSCFGEX=\\\"02\\\",3fffffff,2,4,7fffffffffffffff,,",
> -			"gsm": "AT^SYSCFGEX=\\\"01\\\",3fffffff,2,4,7fffffffffffffff,,",
> -			"auto": "AT^SYSCFGEX=\\\"00\\\",3fffffff,2,4,7fffffffffffffff,,"
> -		},
> -		"connect": "AT^NDISDUP=${profile},1${apn:+,\\\"$apn\\\"}${username:+,\\\"$username\\\"}${password:+,\\\"$password\\\"}${auth:+,$auth}",
> -		"disconnect": "AT^NDISDUP=${profile},0"
> -	},
> -	"samsung": {
> -		"initialize": [
> -			"AT",
> -			"AT+CGREG=2",
> -			"AT+CFUN=5",
> -			"AT+MODESELECT=3",
> -			"AT+CGDCONT=${profile},\\\"${pdptype}\\\"${apn:+,\\\"$apn\\\"}"
> -		],
> -		"modes": {
> -			"umts": "AT+CHANGEALLPATH=1"
> -		},
> -		"connect": "AT+CGATT=1",
> -		"disconnect": "AT+CGATT=0"
> -	},
> -	"sierra": {
> -		"initialize": [
> -			"AT+CFUN=1",
> -			"AT+CGDCONT=${profile},\\\"${pdptype}\\\"${apn:+,\\\"$apn\\\"}",
> -			"AT$QCPDPP=${profile},${auth:-0}${password:+,\\\"$password\\\"}${username:+,\\\"$username\\\"}"
> -		],
> -		"modes": {
> -			"preferlte": "AT!SELRAT=07",
> -			"preferumts": "AT!SELRAT=05",
> -			"lte": "AT!SELRAT=06",
> -			"umts": "AT!SELRAT=01",
> -			"gsm": "AT!SELRAT=02",
> -			"auto": "AT!SELRAT=00"
> -		},
> -		"connect": "AT!SCACT=1,${profile}",
> -		"disconnect": "AT!SCACT=0,${profile}"
> -	},
> -	"sony": {
> -		"initialize": [
> -			"AT+CFUN=1",
> -			"AT+CGDCONT=${profile},\\\"${pdptype}\\\"${apn:+,\\\"$apn\\\"}",
> -			"AT*EIAAUW=${profile},1,\\\"${username}\\\",\\\"${password}\\\",${auth:-00111}"
> -		],
> -		"modes": {
> -			"umts": "AT+CFUN=6",
> -			"gsm": "AT+CFUN=5"
> -		},
> -		"connect": "AT*ENAP=1,${profile}",
> -		"disconnect": "AT*ENAP=0"
> -	},
> -	"mtk1": {
> -		"initialize": [
> -			"AT+CFUN=1"
> -		],
> -		"configure": [
> -			"AT+CGDCONT=${profile},\\\"${pdptype}\\\",\\\"${apn}\\\",0,0"
> -		],
> -		"connect": "AT+CGACT=1,${profile}",
> -		"finalize": "AT+CGDATA=\\\"M-MBIM\\\",${profile},1",
> -		"disconnect": "AT+CGACT=0,${profile}"
> -	}
> -}
> diff --git a/package/network/utils/comgt/files/ncm.sh b/package/network/utils/comgt/files/ncm.sh
> deleted file mode 100644
> index 6545091c82..0000000000
> --- a/package/network/utils/comgt/files/ncm.sh
> +++ /dev/null
> @@ -1,255 +0,0 @@
> -#!/bin/sh
> -
> -[ -n "$INCLUDE_ONLY" ] || {
> -	. /lib/functions.sh
> -	. ../netifd-proto.sh
> -	init_proto "$@"
> -}
> -
> -proto_ncm_init_config() {
> -	no_device=1
> -	available=1
> -	proto_config_add_string "device:device"
> -	proto_config_add_string apn
> -	proto_config_add_string auth
> -	proto_config_add_string username
> -	proto_config_add_string password
> -	proto_config_add_string pincode
> -	proto_config_add_string delay
> -	proto_config_add_string mode
> -	proto_config_add_string pdptype
> -	proto_config_add_int profile
> -	proto_config_add_defaults
> -}
> -
> -proto_ncm_setup() {
> -	local interface="$1"
> -
> -	local manufacturer initialize setmode connect finalize ifname devname devpath
> -
> -	local device apn auth username password pincode delay mode pdptype profile $PROTO_DEFAULT_OPTIONS
> -	json_get_vars device apn auth username password pincode delay mode pdptype profile $PROTO_DEFAULT_OPTIONS
> -
> -	[ "$metric" = "" ] && metric="0"
> -
> -	[ -n "$profile" ] || profile=1
> -
> -	pdptype=$(echo "$pdptype" | awk '{print toupper($0)}')
> -	[ "$pdptype" = "IP" -o "$pdptype" = "IPV6" -o "$pdptype" = "IPV4V6" ] || pdptype="IP"
> -
> -	[ -n "$ctl_device" ] && device=$ctl_device
> -
> -	[ -n "$device" ] || {
> -		echo "No control device specified"
> -		proto_notify_error "$interface" NO_DEVICE
> -		proto_set_available "$interface" 0
> -		return 1
> -	}
> -
> -	device="$(readlink -f $device)"
> -	[ -e "$device" ] || {
> -		echo "Control device not valid"
> -		proto_set_available "$interface" 0
> -		return 1
> -	}
> -
> -	devname="$(basename "$device")"
> -	case "$devname" in
> -	'tty'*)
> -		devpath="$(readlink -f /sys/class/tty/$devname/device)"
> -		ifname="$( ls "$devpath"/../../*/net )"
> -		;;
> -	*)
> -		devpath="$(readlink -f /sys/class/usbmisc/$devname/device/)"
> -		ifname="$( ls "$devpath"/net )"
> -		;;
> -	esac
> -	[ -n "$ifname" ] || {
> -		echo "The interface could not be found."
> -		proto_notify_error "$interface" NO_IFACE
> -		proto_set_available "$interface" 0
> -		return 1
> -	}
> -
> -	[ -n "$delay" ] && sleep "$delay"
> -
> -	manufacturer=$(gcom -d "$device" -s /etc/gcom/getcardinfo.gcom | awk 'NF && $0 !~ /AT\+CGMI/ { sub(/\+CGMI: /,""); print tolower($1); exit; }')
> -	[ $? -ne 0 -o -z "$manufacturer" ] && {
> -		echo "Failed to get modem information"
> -		proto_notify_error "$interface" GETINFO_FAILED
> -		return 1
> -	}
> -
> -	json_load "$(cat /etc/gcom/ncm.json)"
> -	json_select "$manufacturer"
> -	[ $? -ne 0 ] && {
> -		echo "Unsupported modem"
> -		proto_notify_error "$interface" UNSUPPORTED_MODEM
> -		proto_set_available "$interface" 0
> -		return 1
> -	}
> -
> -	json_get_values initialize initialize
> -	for i in $initialize; do
> -		eval COMMAND="$i" gcom -d "$device" -s /etc/gcom/runcommand.gcom || {
> -			echo "Failed to initialize modem"
> -			proto_notify_error "$interface" INITIALIZE_FAILED
> -			return 1
> -		}
> -	done
> -
> -	[ -n "$pincode" ] && {
> -		PINCODE="$pincode" gcom -d "$device" -s /etc/gcom/setpin.gcom || {
> -			echo "Unable to verify PIN"
> -			proto_notify_error "$interface" PIN_FAILED
> -			proto_block_restart "$interface"
> -			return 1
> -		}
> -	}
> -
> -	json_get_values configure configure
> -	echo "Configuring modem"
> -	for i in $configure; do
> -		eval COMMAND="$i" gcom -d "$device" -s /etc/gcom/runcommand.gcom || {
> -			echo "Failed to configure modem"
> -			proto_notify_error "$interface" CONFIGURE_FAILED
> -			return 1
> -		}
> -	done
> -
> -	[ -n "$mode" ] && {
> -		json_select modes
> -		json_get_var setmode "$mode"
> -		[ -n "$setmode" ] && {
> -			echo "Setting mode"
> -			eval COMMAND="$setmode" gcom -d "$device" -s /etc/gcom/runcommand.gcom || {
> -				echo "Failed to set operating mode"
> -				proto_notify_error "$interface" SETMODE_FAILED
> -				return 1
> -			}
> -		}
> -		json_select ..
> -	}
> -
> -	echo "Starting network $interface"
> -	json_get_vars connect
> -	[ -n "$connect" ] && {
> -		echo "Connecting modem"
> -		eval COMMAND="$connect" gcom -d "$device" -s /etc/gcom/runcommand.gcom || {
> -			echo "Failed to connect"
> -			proto_notify_error "$interface" CONNECT_FAILED
> -			return 1
> -		}
> -	}
> -
> -	json_get_vars finalize
> -
> -	echo "Setting up $ifname"
> -	proto_init_update "$ifname" 1
> -	proto_add_data
> -	json_add_string "manufacturer" "$manufacturer"
> -	proto_close_data
> -	proto_send_update "$interface"
> -
> -	local zone="$(fw3 -q network "$interface" 2>/dev/null)"
> -
> -	[ "$pdptype" = "IP" -o "$pdptype" = "IPV4V6" ] && {
> -		json_init
> -		json_add_string name "${interface}_4"
> -		json_add_string ifname "@$interface"
> -		json_add_string proto "dhcp"
> -		proto_add_dynamic_defaults
> -		[ -n "$zone" ] && {
> -			json_add_string zone "$zone"
> -		}
> -		json_close_object
> -		ubus call network add_dynamic "$(json_dump)"
> -	}
> -
> -	[ "$pdptype" = "IPV6" -o "$pdptype" = "IPV4V6" ] && {
> -		json_init
> -		json_add_string name "${interface}_6"
> -		json_add_string ifname "@$interface"
> -		json_add_string proto "dhcpv6"
> -		json_add_string extendprefix 1
> -		proto_add_dynamic_defaults
> -		[ -n "$zone" ] && {
> -			json_add_string zone "$zone"
> -		}
> -		json_close_object
> -		ubus call network add_dynamic "$(json_dump)"
> -	}
> -
> -	[ -n "$finalize" ] && {
> -		eval COMMAND="$finalize" gcom -d "$device" -s /etc/gcom/runcommand.gcom || {
> -			echo "Failed to configure modem"
> -			proto_notify_error "$interface" FINALIZE_FAILED
> -			return 1
> -		}
> -	}
> -}
> -
> -proto_ncm_teardown() {
> -	local interface="$1"
> -
> -	local manufacturer disconnect
> -
> -	local device profile
> -	json_get_vars device profile
> -
> -	[ -n "$ctl_device" ] && device=$ctl_device
> -
> -	[ -n "$device" ] || {
> -		echo "No control device specified"
> -		proto_notify_error "$interface" NO_DEVICE
> -		proto_set_available "$interface" 0
> -		return 1
> -	}
> -
> -	device="$(readlink -f $device)"
> -	[ -e "$device" ] || {
> -		echo "Control device not valid"
> -		proto_set_available "$interface" 0
> -		return 1
> -	}
> -
> -	[ -n "$profile" ] || profile=1
> -
> -	echo "Stopping network $interface"
> -
> -	json_load "$(ubus call network.interface.$interface status)"
> -	json_select data
> -	json_get_vars manufacturer
> -	[ $? -ne 0 -o -z "$manufacturer" ] && {
> -		# Fallback to direct detect, for proper handle device replug.
> -		manufacturer=$(gcom -d "$device" -s /etc/gcom/getcardinfo.gcom | awk 'NF && $0 !~ /AT\+CGMI/ { sub(/\+CGMI: /,""); print tolower($1); exit; }')
> -		[ $? -ne 0 -o -z "$manufacturer" ] && {
> -			echo "Failed to get modem information"
> -			proto_notify_error "$interface" GETINFO_FAILED
> -			return 1
> -		}
> -		json_add_string "manufacturer" "$manufacturer"
> -	}
> -
> -	json_load "$(cat /etc/gcom/ncm.json)"
> -	json_select "$manufacturer" || {
> -		echo "Unsupported modem"
> -		proto_notify_error "$interface" UNSUPPORTED_MODEM
> -		return 1
> -	}
> -
> -	json_get_vars disconnect
> -	[ -n "$disconnect" ] && {
> -		eval COMMAND="$disconnect" gcom -d "$device" -s /etc/gcom/runcommand.gcom || {
> -			echo "Failed to disconnect"
> -			proto_notify_error "$interface" DISCONNECT_FAILED
> -			return 1
> -		}
> -	}
> -
> -	proto_init_update "*" 0
> -	proto_send_update "$interface"
> -}
> -[ -n "$INCLUDE_ONLY" ] || {
> -	add_protocol ncm
> -}
> diff --git a/package/network/utils/comgt/files/runcommand.gcom b/package/network/utils/comgt/files/runcommand.gcom
> deleted file mode 100644
> index 88a9d29dc1..0000000000
> --- a/package/network/utils/comgt/files/runcommand.gcom
> +++ /dev/null
> @@ -1,31 +0,0 @@
> -# run AT-command from environment
> -opengt
> - set com 115200n81
> - set senddelay 0.02
> - waitquiet 1 0.2
> - flash 0.1
> -
> -:start
> - print "sending -> ",$env("COMMAND"),"\n"
> - send $env("COMMAND")
> - send "^m"
> -
> - waitfor 25 "OK","ERR","ERROR","COMMAND NOT SUPPORT"
> - if % = 0 goto continue
> - if % = 1 goto error
> - if % = 2 goto error
> - if % = 3 goto notsupported
> -
> - print "Timeout running AT-command\n"
> - exit 1
> -
> -:error
> - print "Error running AT-command\n"
> - exit 1
> -
> -:notsupported
> - print "AT-command not supported\n"
> - exit 1
> -
> -:continue
> - exit 0
> diff --git a/package/network/utils/comgt/files/setmode.gcom b/package/network/utils/comgt/files/setmode.gcom
> deleted file mode 100644
> index 4ce0b5fa78..0000000000
> --- a/package/network/utils/comgt/files/setmode.gcom
> +++ /dev/null
> @@ -1,26 +0,0 @@
> -# set wwan mode from environment
> -opengt
> - set com 115200n81
> - set senddelay 0.02
> - waitquiet 1 0.2
> - flash 0.1
> -
> -:start
> - print "Trying to set mode\n"
> - send $env("MODE")
> - send "^m"
> -
> - waitfor 15 "OK","ERR","ERROR"
> - if % = 0 goto continue
> - if % = 1 goto modeerror
> - if % = 2 goto modeerror
> -
> - print "Timeout setting WWAN mode!\n"
> - exit 1
> -
> -:modeerror
> - print "Error setting WWAN mode!\n"
> - exit 1
> -
> -:continue
> - exit 0
> diff --git a/package/network/utils/comgt/files/setpin.gcom b/package/network/utils/comgt/files/setpin.gcom
> deleted file mode 100644
> index a3f3402797..0000000000
> --- a/package/network/utils/comgt/files/setpin.gcom
> +++ /dev/null
> @@ -1,56 +0,0 @@
> -# set pin code from evnironment "$PINCODE"
> -opengt
> - set com 115200n81
> - set senddelay 0.05
> - waitquiet 3 0.5
> - flash 0.1
> -
> - let c=0
> -:start
> - send "AT+CFUN=1^m"
> - send "AT+CPIN?^m"
> - waitfor 15 "SIM PUK","SIM PIN","READY","ERROR","ERR"
> - if % = -1 goto timeout
> - if % = 0 goto ready
> - if % = 1 goto setpin
> - if % = 2 goto ready
> - if % = 3 goto checkrepeat
> - if % = 4 goto checkrepeat
> -
> -:checkrepeat
> - inc c
> - if c>3 goto pinerror
> - waitquiet 12 0.5
> - goto start
> -
> -:timeout
> - print "timeout checking for PIN."
> - exit 1
> -
> -:ready
> - print "SIM ready\n"
> - goto continue
> - exit 0
> -
> -:setpin
> - # check if output was "SIM PIN2", that's ok.
> - waitfor 1 "2"
> - if % = 0 goto ready
> -
> - print "Trying to set PIN\n"
> - send "AT+CPIN=\""
> - send $env("PINCODE")
> - send "\"^m"
> -
> - waitfor 20 "OK","ERR"
> - if % = -1 goto pinerror
> - if % = 0 goto continue
> - if % = 1 goto pinerror
> -
> -:pinerror
> - print "Error setting PIN, check card manually\n"
> - exit 1
> -
> -:continue
> - print "PIN set successfully\n"
> - exit 0
> diff --git a/package/network/utils/comgt/files/ussd.gcom b/package/network/utils/comgt/files/ussd.gcom
> deleted file mode 100644
> index c5be80b2d7..0000000000
> --- a/package/network/utils/comgt/files/ussd.gcom
> +++ /dev/null
> @@ -1,21 +0,0 @@
> -opengt
> - set com 115200n81
> - set comecho off
> - set senddelay 0.02
> - waitquiet 0.2 0.2
> - flash 0.1
> -
> -:start
> - send "AT+CUSD=1,"
> - send $env("ussd")
> - send ",15"
> - send "^m"
> - waitfor 120 "+CUSD:"
> - if % = -1 goto timeout
> - get 1 "^m" $s
> - print $s
> - exit 0
> -
> -:timeout
> - print "ERROR: no USSD response, timeout.\n"
> - exit 1
> diff --git a/package/network/utils/comgt/patches/001-compile_fix.patch b/package/network/utils/comgt/patches/001-compile_fix.patch
> deleted file mode 100644
> index 15de850b73..0000000000
> --- a/package/network/utils/comgt/patches/001-compile_fix.patch
> +++ /dev/null
> @@ -1,23 +0,0 @@
> ---- a/Makefile
> -+++ b/Makefile
> -@@ -32,6 +32,7 @@ SCRIPTPATH = /etc/comgt/
> - SCRIPTSRC = ./scripts/
> - BIN     = $(CPROG)
> - MANP	= comgt.1 sigmon.1
> -+CC	= cc
> -
> - CFLAGS  = -c
> - LDFLAGS =
> -@@ -70,10 +71,5 @@ clean:
> - 	-rm *~
> - 	-rm $(SCRIPTSRC)*~
> -
> --
> --comgt: comgt.o
> --	cc comgt.o $(LDFLAGS) -o comgt
> --
> --comgt.o: comgt.c comgt.h
> --	cc comgt.c $(CFLAGS)
> --
> -+comgt:  comgt.c comgt.h
> -+	$(CC) $(CFLAGS) -o comgt $< $(LDFLAGS)
> diff --git a/package/network/utils/comgt/patches/002-termios.patch b/package/network/utils/comgt/patches/002-termios.patch
> deleted file mode 100644
> index 08f22d15d9..0000000000
> --- a/package/network/utils/comgt/patches/002-termios.patch
> +++ /dev/null
> @@ -1,105 +0,0 @@
> ---- a/comgt.c
> -+++ b/comgt.c
> -@@ -30,7 +30,7 @@
> - #include <stdio.h>
> - #include <stdlib.h>
> - #include <signal.h>
> --#include <termio.h>
> -+#include <termios.h>
> - #include <fcntl.h>
> - #include <unistd.h>
> - #include <string.h>
> -@@ -81,7 +81,7 @@ char token[MAXTOKEN];   /* For gettoken(
> - char scriptfile[MAXPATH]; /* Script file name */
> - char scriptfilepath[MAXPATH]; /* temp storage for full path */
> - BOOL verbose=0; /* Log actions */
> --struct termio cons, stbuf, svbuf;  /* termios: svbuf=before, stbuf=while */
> -+struct termios cons, stbuf, svbuf;  /* termios: svbuf=before, stbuf=while */
> - int comfd=0; /* Communication file descriptor.  Defaults to stdin. */
> - char msg[STRINGL]; /* Massage messages here */
> - int preturn,returns[MAXGOSUBS];
> -@@ -172,7 +172,7 @@ void dotestkey(void) {
> -
> - /* Exit after resetting terminal settings */
> - void ext(long xtc) {
> --  ioctl(1, TCSETA, &cons);
> -+  ioctl(1, TCSETS, &cons);
> -   exit(xtc);
> - }
> -
> -@@ -920,24 +920,24 @@ BOOL getonoroff(void) {
> - void setcom(void) {
> -   stbuf.c_cflag &= ~(CBAUD | CSIZE | CSTOPB | CLOCAL | PARENB);
> -   stbuf.c_cflag |= (speed | bits | CREAD | clocal | parity | stopbits );
> --  if (ioctl(comfd, TCSETA, &stbuf) < 0) {
> -+  if (ioctl(comfd, TCSETS, &stbuf) < 0) {
> -     serror("Can't ioctl set device",1);
> -   }
> - }
> -
> - void doset(void) {
> --  struct termio console;
> -+  struct termios console;
> -   int a,b;
> -   gettoken();
> -   if(strcmp(token,"echo")==0) {
> -     a=0;
> -     if(getonoroff()) a=ECHO|ECHOE;
> --    if(ioctl(0, TCGETA, &console)<0) {
> -+    if(ioctl(0, TCGETS, &console)<0) {
> -       serror("Can't ioctl FD zero!\n",2);
> -     }
> -     console.c_lflag &= ~(ECHO | ECHOE);
> -     console.c_lflag |= a;
> --    ioctl(0, TCSETA, &console);
> -+    ioctl(0, TCSETS, &console);
> -   }
> -   else if(strcmp(token,"senddelay")==0) {
> -     senddelay=10000L*getdvalue();
> -@@ -1224,7 +1224,7 @@ void doclose(void) {
> -   if(strcmp(token,"hardcom")==0) {
> -     if(comfd== -1) serror("Com device not open",1);
> -     vmsg("Closing device");
> --    if (ioctl(comfd, TCSETA, &svbuf) < 0) {
> -+    if (ioctl(comfd, TCSETS, &svbuf) < 0) {
> -       sprintf(msg,"Can't ioctl set device %s.\n",device);
> -       serror(msg,1);
> -     }
> -@@ -1266,12 +1266,12 @@ void opengt(void) {
> -       ext(1);
> -     }
> -   }
> --  if (ioctl (comfd, TCGETA, &svbuf) < 0) {
> -+  if (ioctl (comfd, TCGETS, &svbuf) < 0) {
> -     sprintf(msg,"Can't control %s, please try again.\n",device);
> -     serror(msg,1);
> -   }
> -   setenv("COMGTDEVICE",device,1);
> --  ioctl(comfd, TCGETA, &stbuf);
> -+  ioctl(comfd, TCGETS, &stbuf);
> -   speed=stbuf.c_cflag & CBAUD;
> -   if (high_speed == 0)  strcpy(cspeed,"115200");
> -   else strcpy(cspeed,"57600");
> -@@ -1303,11 +1303,11 @@ void opendevice(void) {
> -   }
> -   else comfd=0;
> -
> --  if (ioctl (comfd, TCGETA, &svbuf) < 0) {
> -+  if (ioctl (comfd, TCGETS, &svbuf) < 0) {
> -     sprintf(msg,"Can't ioctl get device %s.\n",device);
> -     serror(msg,1);
> -   }
> --  ioctl(comfd, TCGETA, &stbuf);
> -+  ioctl(comfd, TCGETS, &stbuf);
> -   speed=stbuf.c_cflag & CBAUD;
> -   switch(speed) {
> -     case B0: strcpy(cspeed,"0");break;
> -@@ -1553,7 +1553,7 @@ int main(int argc,char **argv) {
> -   skip_default=0;
> -   filep=NULL;
> -   scriptspace=4096;
> --  ioctl(1, TCGETA, &cons);
> -+  ioctl(1, TCGETS, &cons);
> -   if((script=( char *)malloc(scriptspace))==NULL) {
> -     serror("Could not malloc()",3);
> -   }
> diff --git a/package/network/utils/comgt/patches/003-no_XCASE.patch b/package/network/utils/comgt/patches/003-no_XCASE.patch
> deleted file mode 100644
> index f2060a8288..0000000000
> --- a/package/network/utils/comgt/patches/003-no_XCASE.patch
> +++ /dev/null
> @@ -1,20 +0,0 @@
> ---- a/comgt.c
> -+++ b/comgt.c
> -@@ -1281,7 +1281,7 @@ void opengt(void) {
> -   parity=stbuf.c_cflag & (PARENB | PARODD);
> -   stbuf.c_iflag &= ~(IGNCR | ICRNL | IUCLC | INPCK | IXON | IXANY | IGNPAR );
> -   stbuf.c_oflag &= ~(OPOST | OLCUC | OCRNL | ONLCR | ONLRET);
> --  stbuf.c_lflag &= ~(ICANON | XCASE | ECHO | ECHOE | ECHONL);
> -+  stbuf.c_lflag &= ~(ICANON | ECHO | ECHOE | ECHONL);
> -   stbuf.c_lflag &= ~(ECHO | ECHOE);
> -   stbuf.c_cc[VMIN] = 1;
> -   stbuf.c_cc[VTIME] = 0;
> -@@ -1336,7 +1336,7 @@ void opendevice(void) {
> -   parity=stbuf.c_cflag & (PARENB | PARODD);
> -   stbuf.c_iflag &= ~(IGNCR | ICRNL | IUCLC | INPCK | IXON | IXANY | IGNPAR );
> -   stbuf.c_oflag &= ~(OPOST | OLCUC | OCRNL | ONLCR | ONLRET);
> --  stbuf.c_lflag &= ~(ICANON | XCASE | ECHO | ECHOE | ECHONL);
> -+  stbuf.c_lflag &= ~(ICANON | ECHO | ECHOE | ECHONL);
> -   stbuf.c_lflag &= ~(ECHO | ECHOE);
> -   stbuf.c_cc[VMIN] = 1;
> -   stbuf.c_cc[VTIME] = 0;
> diff --git a/package/network/utils/comgt/patches/004-check_tty.patch b/package/network/utils/comgt/patches/004-check_tty.patch
> deleted file mode 100644
> index fb1d9af4bb..0000000000
> --- a/package/network/utils/comgt/patches/004-check_tty.patch
> +++ /dev/null
> @@ -1,68 +0,0 @@
> ---- a/comgt.c
> -+++ b/comgt.c
> -@@ -91,6 +91,7 @@ unsigned long hstart,hset;
> - char NullString[]={ "" };
> - BOOL lastcharnl=1; /* Indicate that last char printed from getonebyte
> -                                was a nl, so no new one is needed */
> -+BOOL tty=1;
> -
> -
> - //"open com \"/dev/modem\"\nset com 38400n81\nset senddelay 0.05\nsend \"ATi^m\"\nget 2 \" ^m\" $s\nprint \"Response : \",$s,\"\\n\"\nget 2 \" ^m\" $s\nprint \"Response :\",$s,\"\\n\"\nget 2 \" ^m\" $s\nprint \"Response : \",$s,\"\\n\"\n\n";
> -@@ -920,7 +921,7 @@ BOOL getonoroff(void) {
> - void setcom(void) {
> -   stbuf.c_cflag &= ~(CBAUD | CSIZE | CSTOPB | CLOCAL | PARENB);
> -   stbuf.c_cflag |= (speed | bits | CREAD | clocal | parity | stopbits );
> --  if (ioctl(comfd, TCSETS, &stbuf) < 0) {
> -+  if (tty && ioctl(comfd, TCSETS, &stbuf) < 0) {
> -     serror("Can't ioctl set device",1);
> -   }
> - }
> -@@ -1224,7 +1225,7 @@ void doclose(void) {
> -   if(strcmp(token,"hardcom")==0) {
> -     if(comfd== -1) serror("Com device not open",1);
> -     vmsg("Closing device");
> --    if (ioctl(comfd, TCSETS, &svbuf) < 0) {
> -+    if (tty && ioctl(comfd, TCSETS, &svbuf) < 0) {
> -       sprintf(msg,"Can't ioctl set device %s.\n",device);
> -       serror(msg,1);
> -     }
> -@@ -1266,12 +1267,17 @@ void opengt(void) {
> -       ext(1);
> -     }
> -   }
> --  if (ioctl (comfd, TCGETS, &svbuf) < 0) {
> -+  if (isatty (comfd))
> -+    tty=1;
> -+  else
> -+    tty=0;
> -+  if (tty && ioctl (comfd, TCGETS, &svbuf) < 0) {
> -     sprintf(msg,"Can't control %s, please try again.\n",device);
> -     serror(msg,1);
> -   }
> -   setenv("COMGTDEVICE",device,1);
> --  ioctl(comfd, TCGETS, &stbuf);
> -+  if (tty)
> -+    ioctl(comfd, TCGETS, &stbuf);
> -   speed=stbuf.c_cflag & CBAUD;
> -   if (high_speed == 0)  strcpy(cspeed,"115200");
> -   else strcpy(cspeed,"57600");
> -@@ -1302,12 +1308,16 @@ void opendevice(void) {
> -     }
> -   }
> -   else comfd=0;
> --
> --  if (ioctl (comfd, TCGETS, &svbuf) < 0) {
> -+  if (isatty (comfd))
> -+    tty=1;
> -+  else
> -+    tty=0;
> -+  if (tty && ioctl (comfd, TCGETS, &svbuf) < 0) {
> -     sprintf(msg,"Can't ioctl get device %s.\n",device);
> -     serror(msg,1);
> -   }
> --  ioctl(comfd, TCGETS, &stbuf);
> -+  if (tty)
> -+    ioctl(comfd, TCGETS, &stbuf);
> -   speed=stbuf.c_cflag & CBAUD;
> -   switch(speed) {
> -     case B0: strcpy(cspeed,"0");break;
> 

CCing current maintainer
Piotr Dymacz June 28, 2021, 5:26 p.m. UTC | #2
Hi Arjun,

On 28.06.2021 18:52, Arjun AK wrote:
> Signed-off-by: Arjun AK <arjunak234@gmail.com>

The only problem here is a D-Link DWR-512B device (ramips/rt305x target) 
which has 'comgt-ncm' package listed under 'DEVICE_PACKAGES', see [1].

I might be wrong here but I think we don't include packages from 
external feeds inside 'DEVICE_PACKAGES' (not sure/don't remember why).

[1] 
https://github.com/openwrt/openwrt/blob/master/target/linux/ramips/image/rt305x.mk#L476
Arjun AK June 28, 2021, 5:43 p.m. UTC | #3
On 28/06/21 10:56 pm, Piotr Dymacz wrote:
> Hi Arjun,
> 
> On 28.06.2021 18:52, Arjun AK wrote:
>> Signed-off-by: Arjun AK <arjunak234@gmail.com>
> 
> The only problem here is a D-Link DWR-512B device (ramips/rt305x target) 
> which has 'comgt-ncm' package listed under 'DEVICE_PACKAGES', see [1].
But the package name is "comgt" not "comgt-ncm". Does this mean DWR-512B 
has no dependency on comgt and is trying to build a non existent package?

-
Arjun
Piotr Dymacz June 28, 2021, 6:16 p.m. UTC | #4
Hi Arjun,

On 28.06.2021 19:43, Arjun AK wrote:
> On 28/06/21 10:56 pm, Piotr Dymacz wrote:
>> Hi Arjun,
>> 
>> On 28.06.2021 18:52, Arjun AK wrote:
>>> Signed-off-by: Arjun AK <arjunak234@gmail.com>
>> 
>> The only problem here is a D-Link DWR-512B device (ramips/rt305x target) 
>> which has 'comgt-ncm' package listed under 'DEVICE_PACKAGES', see [1].
> But the package name is "comgt" not "comgt-ncm". Does this mean DWR-512B
> has no dependency on comgt and is trying to build a non existent package?

'comgt-ncm' is part of the 'comgt', see:
https://github.com/openwrt/openwrt/blob/master/package/network/utils/comgt/Makefile#L47
John Crispin June 28, 2021, 6:32 p.m. UTC | #5
On 28.06.21 19:26, Piotr Dymacz wrote:
> I might be wrong here but I think we don't include packages from 
> external feeds inside 'DEVICE_PACKAGES' (not sure/don't remember why). 

I am in favour of moving all none-core packages to the feeds. the 
dependency should be removed and a note should be added to the wiki 
indicating that if a release/snapshot image is installed an opkg call 
shall be issued

     John
Piotr Dymacz June 28, 2021, 6:53 p.m. UTC | #6
Hi John,

On 28.06.2021 20:32, John Crispin wrote:
> 
> On 28.06.21 19:26, Piotr Dymacz wrote:
>> I might be wrong here but I think we don't include packages from 
>> external feeds inside 'DEVICE_PACKAGES' (not sure/don't remember why). 
> 
> I am in favour of moving all none-core packages to the feeds. the
> dependency should be removed and a note should be added to the wiki
> indicating that if a release/snapshot image is installed an opkg call
> shall be issued

Sounds good to me, just wanted to warn about the existing dependency.
Paul Spooren June 28, 2021, 7:14 p.m. UTC | #7
On 6/28/21 8:53 AM, Piotr Dymacz wrote:
> Hi John,
>
> On 28.06.2021 20:32, John Crispin wrote:
>>
>> On 28.06.21 19:26, Piotr Dymacz wrote:
>>> I might be wrong here but I think we don't include packages from 
>>> external feeds inside 'DEVICE_PACKAGES' (not sure/don't remember why). 
>>
>> I am in favour of moving all none-core packages to the feeds. the
>> dependency should be removed and a note should be added to the wiki
>> indicating that if a release/snapshot image is installed an opkg call
>> shall be issued
I'm in favor of this too but if it's a core feature (i.e. SIM card 
support) we should provide the package by default to, not?
>
> Sounds good to me, just wanted to warn about the existing dependency.
>
John Crispin June 28, 2021, 7:53 p.m. UTC | #8
On 28.06.21 21:14, Paul Spooren wrote:
> I'm in favor of this too but if it's a core feature (i.e. SIM card 
> support) we should provide the package by default to, not? 

this should be explained in the wiki,

     John
Paul Spooren June 28, 2021, 7:55 p.m. UTC | #9
On 6/28/21 9:53 AM, John Crispin wrote:
>
> On 28.06.21 21:14, Paul Spooren wrote:
>> I'm in favor of this too but if it's a core feature (i.e. SIM card 
>> support) we should provide the package by default to, not? 
>
> this should be explained in the wiki,
Agree, APU boards etc also need some extra packages to support SDcards 
and things. Let's do this.
>
>     John
>
>
> _______________________________________________
> openwrt-devel mailing list
> openwrt-devel@lists.openwrt.org
> https://lists.openwrt.org/mailman/listinfo/openwrt-devel
Lech Perczak June 28, 2021, 8:51 p.m. UTC | #10
W dniu 2021-06-28 o 21:55, Paul Spooren pisze:
>
> On 6/28/21 9:53 AM, John Crispin wrote:
>>
>> On 28.06.21 21:14, Paul Spooren wrote:
>>> I'm in favor of this too but if it's a core feature (i.e. SIM card 
>>> support) we should provide the package by default to, not? 
>>
>> this should be explained in the wiki,
> Agree, APU boards etc also need some extra packages to support SDcards 
> and things. Let's do this.
>>
>>     John
>>
>>
>> _______________________________________________
>> openwrt-devel mailing list
>> openwrt-devel@lists.openwrt.org
>> https://lists.openwrt.org/mailman/listinfo/openwrt-devel
>
> _______________________________________________
> openwrt-devel mailing list
> openwrt-devel@lists.openwrt.org
> https://lists.openwrt.org/mailman/listinfo/openwrt-devel

OTOH, this differs a bit from such packages, by being needed to connect 
to WAN on such devices. This is the same way as uqmi does on some - 
removing it would require other Internet connection to bootstrap its 
installation.
Sergey Ryazanov June 28, 2021, 11:07 p.m. UTC | #11
On Mon, Jun 28, 2021 at 11:57 PM Lech Perczak <lech.perczak@gmail.com> wrote:
> W dniu 2021-06-28 o 21:55, Paul Spooren pisze:
>> On 6/28/21 9:53 AM, John Crispin wrote:
>>> On 28.06.21 21:14, Paul Spooren wrote:
>>>> I'm in favor of this too but if it's a core feature (i.e. SIM card
>>>> support) we should provide the package by default to, not?
>>>
>>> this should be explained in the wiki,
>>
>> Agree, APU boards etc also need some extra packages to support SDcards
>> and things. Let's do this.
>
> OTOH, this differs a bit from such packages, by being needed to connect
> to WAN on such devices. This is the same way as uqmi does on some -
> removing it would require other Internet connection to bootstrap its
> installation.

Yep, removing the comgt package from the firmware sounds like an
anecdote from the 90's: The modem driver is on CD, the CD-ROM driver
on the Internet.

OTOH, Arjun has been trying to draw attention to the patch for comgt
for a year. And no one reacted to his quite reasonable fix.
Lech Perczak June 28, 2021, 11:30 p.m. UTC | #12
W dniu 2021-06-29 o 01:07, Sergey Ryazanov pisze:
> On Mon, Jun 28, 2021 at 11:57 PM Lech Perczak <lech.perczak@gmail.com> wrote:
>> W dniu 2021-06-28 o 21:55, Paul Spooren pisze:
>>> On 6/28/21 9:53 AM, John Crispin wrote:
>>>> On 28.06.21 21:14, Paul Spooren wrote:
>>>>> I'm in favor of this too but if it's a core feature (i.e. SIM card
>>>>> support) we should provide the package by default to, not?
>>>> this should be explained in the wiki,
>>> Agree, APU boards etc also need some extra packages to support SDcards
>>> and things. Let's do this.
>> OTOH, this differs a bit from such packages, by being needed to connect
>> to WAN on such devices. This is the same way as uqmi does on some -
>> removing it would require other Internet connection to bootstrap its
>> installation.
> Yep, removing the comgt package from the firmware sounds like an
> anecdote from the 90's: The modem driver is on CD, the CD-ROM driver
> on the Internet.
>
> OTOH, Arjun has been trying to draw attention to the patch for comgt
> for a year. And no one reacted to his quite reasonable fix.
>
My thoughts exactly.
Also, I realized that removing comgt would render the device requiring 
it unable to reestablish WAN connection also after sysupgrade - which is 
a no-brainer for me.
My custom builds carry a very similar patch for a few years now, and 
Arjun's patch looks very reasonable to me - maybe I shall test it in my 
builds very soon, and provide feedback, as I'd like to see it merged as 
well.
Arjun AK June 29, 2021, 3:57 p.m. UTC | #13
On 29/06/21 2:21 am, Lech Perczak wrote:
> W dniu 2021-06-28 o 21:55, Paul Spooren pisze:
>>
>> On 6/28/21 9:53 AM, John Crispin wrote:
>>>
>>> On 28.06.21 21:14, Paul Spooren wrote:
>>>> I'm in favor of this too but if it's a core feature (i.e. SIM card 
>>>> support) we should provide the package by default to, not? 
>>>
>>> this should be explained in the wiki,
>> Agree, APU boards etc also need some extra packages to support SDcards 
>> and things. Let's do this.
>>>
>>>     John
>>>
>>>
>>> _______________________________________________
>>> openwrt-devel mailing list
>>> openwrt-devel@lists.openwrt.org
>>> https://lists.openwrt.org/mailman/listinfo/openwrt-devel
>>
>> _______________________________________________
>> openwrt-devel mailing list
>> openwrt-devel@lists.openwrt.org
>> https://lists.openwrt.org/mailman/listinfo/openwrt-devel
> 
> OTOH, this differs a bit from such packages, by being needed to connect 
> to WAN on such devices. This is the same way as uqmi does on some - 
> removing it would require other Internet connection to bootstrap its 
> installation.
> 

I too agree with this, Unlike SDCard or USB, networking is a core 
feature and should work out of the box.

-
Arjun
Piotr Dymacz June 29, 2021, 8:45 p.m. UTC | #14
Hi Arjun, Lech,

On 29.06.2021 17:57, Arjun AK wrote:
> On 29/06/21 2:21 am, Lech Perczak wrote:

[...]

>> OTOH, this differs a bit from such packages, by being needed to connect 
>> to WAN on such devices. This is the same way as uqmi does on some - 
>> removing it would require other Internet connection to bootstrap its 
>> installation.
>> 
> 
> I too agree with this, Unlike SDCard or USB, networking is a core
> feature and should work out of the box.

I don't think we have such a problem with this particular device.
Its default network configuration [1] has a dedicated WAN port within 
Ethernet switch thus I don't think the 3G modem is the main/only 
Internet connectivity available here.

I don't even think we have a device with just 3G/LTE/5G connectivity in 
our repository. There is always some Ethernet and/or USB on the other 
"end". And with tools like [2] it's now easier for the end user to get 
release/snapshot image with additional packages embedded.

[1] 
https://github.com/openwrt/openwrt/blob/master/target/linux/ramips/rt305x/base-files/etc/board.d/02_network#L109

[2] https://chef.libremesh.org
Alberto Bursi June 30, 2021, 7:16 p.m. UTC | #15
On 28/06/21 22:51, Lech Perczak wrote:
> W dniu 2021-06-28 o 21:55, Paul Spooren pisze:
>>
>> On 6/28/21 9:53 AM, John Crispin wrote:
>>>
>>> On 28.06.21 21:14, Paul Spooren wrote:
>>>> I'm in favor of this too but if it's a core feature (i.e. SIM card 
>>>> support) we should provide the package by default to, not? 
>>>
>>> this should be explained in the wiki,
>> Agree, APU boards etc also need some extra packages to support SDcards 
>> and things. Let's do this.
>>>
>>>     John
>>>
>>>
>>> _______________________________________________
>>> openwrt-devel mailing list
>>> openwrt-devel@lists.openwrt.org
>>> https://lists.openwrt.org/mailman/listinfo/openwrt-devel
>>
>> _______________________________________________
>> openwrt-devel mailing list
>> openwrt-devel@lists.openwrt.org
>> https://lists.openwrt.org/mailman/listinfo/openwrt-devel
> 
> OTOH, this differs a bit from such packages, by being needed to connect 
> to WAN on such devices. This is the same way as uqmi does on some - 
> removing it would require other Internet connection to bootstrap its 
> installation.
> 


No they all have ethernet ports afaik, and that's "good enough" to allow 
the move.

The important thing to keep in mind here is this is a tradeoff. The 
package is being moved over to let someone maintain it properly, while 
nobody reviewed or merged relatively simple bug fixing patches for a 
year now.

I would say that getting an active maintainer is worth more than not 
requiring to connect to the internet through another device first to 
install packages.

-Alberto
Petr Štetiar July 2, 2021, 9:31 a.m. UTC | #16
Sergey Ryazanov <ryazanov.s.a@gmail.com> [2021-06-29 02:07:16]:

> OTOH, Arjun has been trying to draw attention to the patch for comgt
> for a year. And no one reacted to his quite reasonable fix.

As always, any additional `Tested-by` or `Reviewed-by` helps. Anyway, I've
merged it already.

-- ynezz
Sergey Ryazanov July 2, 2021, 10:29 a.m. UTC | #17
Hello Petr,

On Fri, Jul 2, 2021 at 12:31 PM Petr Štetiar <ynezz@true.cz> wrote:
> Sergey Ryazanov <ryazanov.s.a@gmail.com> [2021-06-29 02:07:16]:
>> OTOH, Arjun has been trying to draw attention to the patch for comgt
>> for a year. And no one reacted to his quite reasonable fix.
>
> As always, any additional `Tested-by` or `Reviewed-by` helps.

Yep, it is my fault too :( I thought that this fix is so trivial, but
missed the fact that maintainers need feedback from the community too.
That was discussed many times, but it is much easier to blame
maintainers for not applying fixes, than help with the review :) Let's
hope I learned a thing or two from this case.

> Anyway, I've merged it already.

Thank you!
diff mbox series

Patch

diff --git a/package/network/utils/comgt/Makefile b/package/network/utils/comgt/Makefile
deleted file mode 100644
index db5ea57473..0000000000
--- a/package/network/utils/comgt/Makefile
+++ /dev/null
@@ -1,106 +0,0 @@ 
-#
-# Copyright (C) 2006-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:=comgt
-PKG_VERSION:=0.32
-PKG_RELEASE:=33
-
-PKG_SOURCE:=$(PKG_NAME).$(PKG_VERSION).tgz
-PKG_SOURCE_URL:=@SF/comgt
-PKG_HASH:=0cedb2a5aa608510da66a99aab74df3db363df495032e57e791a2ff55f1d7913
-
-PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
-PKG_LICENSE:=GPL-2.0+
-
-PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME).$(PKG_VERSION)
-PKG_CHECK_FORMAT_SECURITY:=0
-
-PKG_FLAGS:=nonshared
-
-include $(INCLUDE_DIR)/package.mk
-
-define Package/comgt/Default
-  SECTION:=net
-  CATEGORY:=Network
-  SUBMENU:=WWAN
-endef
-
-define Package/comgt
-$(call Package/comgt/Default)
-  TITLE:=Option/Vodafone 3G/GPRS control tool
-  DEPENDS:=+chat
-  URL:=http://manpages.ubuntu.com/manpages/trusty/man1/comgt.1.html
-endef
-
-define Package/comgt-directip
-$(call Package/comgt/Default)
-  TITLE:=Sierra Wireless Direct-IP support
-  DEPENDS:=+comgt +kmod-usb-serial +kmod-usb-serial-sierrawireless +kmod-usb-net +kmod-usb-net-sierrawireless
-endef
-
-define Package/comgt-ncm
-$(call Package/comgt/Default)
-  TITLE+=NCM 3G/4G Support
-  DEPENDS:=+comgt +wwan +kmod-usb-serial-option +kmod-usb-net-huawei-cdc-ncm
-endef
-
-define Package/comgt/description
- comgt is a scripting language interpreter useful for establishing 
- communications on serial lines and through PCMCIA modems as well as GPRS 
- and 3G datacards.
-endef
-
-define Build/Compile
-	$(MAKE) -C $(PKG_BUILD_DIR) \
-		$(TARGET_CONFIGURE_OPTS) \
-		CFLAGS="$(TARGET_CFLAGS)" \
-		LDFLAGS="" \
-		comgt
-endef
-
-define Package/comgt/install
-	$(INSTALL_DIR) $(1)/usr/bin
-	$(INSTALL_BIN) $(PKG_BUILD_DIR)/comgt $(1)/usr/bin/
-	$(LN) comgt $(1)/usr/bin/gcom
-	$(INSTALL_DIR) $(1)/etc/chatscripts
-	$(INSTALL_DATA) ./files/3g.chat $(1)/etc/chatscripts/3g.chat
-	$(INSTALL_DATA) ./files/evdo.chat $(1)/etc/chatscripts/evdo.chat
-	$(INSTALL_DIR) $(1)/etc/gcom
-	$(INSTALL_DATA) ./files/setpin.gcom $(1)/etc/gcom/setpin.gcom
-	$(INSTALL_DATA) ./files/setmode.gcom $(1)/etc/gcom/setmode.gcom
-	$(INSTALL_DATA) ./files/getcardinfo.gcom $(1)/etc/gcom/getcardinfo.gcom
-	$(INSTALL_DATA) ./files/getstrength.gcom $(1)/etc/gcom/getstrength.gcom
-	$(INSTALL_DATA) ./files/getcarrier.gcom $(1)/etc/gcom/getcarrier.gcom
-	$(INSTALL_DATA) ./files/getcnum.gcom $(1)/etc/gcom/getcnum.gcom
-	$(INSTALL_DATA) ./files/getimsi.gcom $(1)/etc/gcom/getimsi.gcom
-	$(INSTALL_DIR) $(1)/etc/hotplug.d/tty
-	$(INSTALL_CONF) ./files/3g.usb $(1)/etc/hotplug.d/tty/30-3g
-	$(INSTALL_DIR) $(1)/lib/netifd/proto
-	$(INSTALL_BIN) ./files/3g.sh $(1)/lib/netifd/proto/3g.sh
-endef
-
-define Package/comgt-directip/install
-	$(INSTALL_DIR) $(1)/etc/gcom
-	$(INSTALL_DATA) ./files/directip.gcom $(1)/etc/gcom/directip.gcom
-	$(INSTALL_DATA) ./files/directip-stop.gcom $(1)/etc/gcom/directip-stop.gcom
-	$(INSTALL_DIR) $(1)/lib/netifd/proto
-	$(INSTALL_BIN) ./files/directip.sh $(1)/lib/netifd/proto/directip.sh
-endef
-
-define Package/comgt-ncm/install
-	$(INSTALL_DIR) $(1)/etc/gcom
-	$(INSTALL_DATA) ./files/ncm.json $(1)/etc/gcom/ncm.json
-	$(INSTALL_DATA) ./files/runcommand.gcom $(1)/etc/gcom/runcommand.gcom
-	$(INSTALL_DIR) $(1)/lib/netifd/proto
-	$(INSTALL_BIN) ./files/ncm.sh $(1)/lib/netifd/proto/ncm.sh
-endef
-
-$(eval $(call BuildPackage,comgt))
-$(eval $(call BuildPackage,comgt-directip))
-$(eval $(call BuildPackage,comgt-ncm))
diff --git a/package/network/utils/comgt/files/3g.chat b/package/network/utils/comgt/files/3g.chat
deleted file mode 100644
index 66562400f0..0000000000
--- a/package/network/utils/comgt/files/3g.chat
+++ /dev/null
@@ -1,12 +0,0 @@ 
-ABORT   BUSY
-ABORT   'NO CARRIER'
-ABORT   ERROR
-REPORT  CONNECT
-TIMEOUT 10
-""      "AT&F"
-OK      "ATE1"
-OK      'AT+CGDCONT=1,"IP","$USE_APN"'
-SAY     "Calling UMTS/GPRS"
-TIMEOUT 30
-OK      "ATD$DIALNUMBER"
-CONNECT ' '
diff --git a/package/network/utils/comgt/files/3g.sh b/package/network/utils/comgt/files/3g.sh
deleted file mode 100644
index 9220cbf5a0..0000000000
--- a/package/network/utils/comgt/files/3g.sh
+++ /dev/null
@@ -1,116 +0,0 @@ 
-#!/bin/sh
-
-[ -n "$INCLUDE_ONLY" ] || {
-	NOT_INCLUDED=1
-	INCLUDE_ONLY=1
-
-	. ../netifd-proto.sh
-	. ./ppp.sh
-	init_proto "$@"
-}
-
-proto_3g_init_config() {
-	no_device=1
-	available=1
-	ppp_generic_init_config
-	proto_config_add_string "device:device"
-	proto_config_add_string "apn"
-	proto_config_add_string "service"
-	proto_config_add_string "pincode"
-	proto_config_add_string "delay"
-	proto_config_add_string "dialnumber"
-}
-
-proto_3g_setup() {
-	local interface="$1"
-	local chat
-
-	json_get_var device device
-	json_get_var apn apn
-	json_get_var service service
-	json_get_var pincode pincode
-	json_get_var dialnumber dialnumber
-	json_get_var delay delay
-
-	[ -n "$dat_device" ] && device=$dat_device
-
-	device="$(readlink -f $device)"
-	[ -e "$device" ] || {
-		proto_set_available "$interface" 0
-		return 1
-	}
-
-	[ -n "$delay" ] && sleep "$delay"
-
-	case "$service" in
-		cdma|evdo)
-			chat="/etc/chatscripts/evdo.chat"
-		;;
-		*)
-			chat="/etc/chatscripts/3g.chat"
-			cardinfo=$(gcom -d "$device" -s /etc/gcom/getcardinfo.gcom)
-			if echo "$cardinfo" | grep -q Novatel; then
-				case "$service" in
-					umts_only) CODE=2;;
-					gprs_only) CODE=1;;
-					*) CODE=0;;
-				esac
-				export MODE="AT\$NWRAT=${CODE},2"
-			elif echo "$cardinfo" | grep -q Option; then
-				case "$service" in
-					umts_only) CODE=1;;
-					gprs_only) CODE=0;;
-					*) CODE=3;;
-				esac
-				export MODE="AT_OPSYS=${CODE}"
-			elif echo "$cardinfo" | grep -q "Sierra Wireless"; then
-				SIERRA=1
-			elif echo "$cardinfo" | grep -qi huawei; then
-				case "$service" in
-					umts_only) CODE="14,2";;
-					gprs_only) CODE="13,1";;
-					*) CODE="2,2";;
-				esac
-				export MODE="AT^SYSCFG=${CODE},3FFFFFFF,2,4"
-			fi
-
-			if [ -n "$pincode" ]; then
-				PINCODE="$pincode" gcom -d "$device" -s /etc/gcom/setpin.gcom || {
-					proto_notify_error "$interface" PIN_FAILED
-					proto_block_restart "$interface"
-					return 1
-				}
-			fi
-			[ -n "$MODE" ] && gcom -d "$device" -s /etc/gcom/setmode.gcom
-
-			# wait for carrier to avoid firmware stability bugs
-			[ -n "$SIERRA" ] && {
-				gcom -d "$device" -s /etc/gcom/getcarrier.gcom || return 1
-			}
-
-			if [ -z "$dialnumber" ]; then
-				dialnumber="*99***1#"
-			fi
-
-		;;
-	esac
-
-	connect="${apn:+USE_APN=$apn }DIALNUMBER=$dialnumber /usr/sbin/chat -t5 -v -E -f $chat"
-	ppp_generic_setup "$interface" \
-		noaccomp \
-		nopcomp \
-		novj \
-		nobsdcomp \
-		noauth \
-		set EXTENDPREFIX=1 \
-		lock \
-		crtscts \
-		115200 "$device"
-	return 0
-}
-
-proto_3g_teardown() {
-	proto_kill_command "$interface"
-}
-
-[ -z "$NOT_INCLUDED" ] || add_protocol 3g
diff --git a/package/network/utils/comgt/files/3g.usb b/package/network/utils/comgt/files/3g.usb
deleted file mode 100644
index 8f0d62ca83..0000000000
--- a/package/network/utils/comgt/files/3g.usb
+++ /dev/null
@@ -1,33 +0,0 @@ 
-#!/bin/sh
-. /lib/functions.sh
-. /lib/netifd/netifd-proto.sh
-
-find_3g_iface() {
-	local cfg="$1"
-	local tty="$2"
-
-	local proto
-	config_get proto "$cfg" proto
-	[ "$proto" = 3g ] || [ "$proto" = ncm ] || return 0
-
-	# bypass state vars here because 00-netstate could clobber .device
-	local dev=$(uci_get network "$cfg" device)
-
-	if [ "${dev##*/}" = "${tty##*/}" ]; then
-		if [ "$ACTION" = add ]; then
-			proto_set_available "$cfg" 1
-		fi
-		if [ "$ACTION" = remove ]; then
-			proto_set_available "$cfg" 0
-		fi
-	fi
-}
-
-case "$DEVICENAME" in
-	tty*)
-		[ -e "/dev/$DEVICENAME" ] || [ "$ACTION" = remove ] || exit 0
-		config_load network
-		config_foreach find_3g_iface interface "/dev/$DEVICENAME"
-	;;
-esac
-
diff --git a/package/network/utils/comgt/files/directip-stop.gcom b/package/network/utils/comgt/files/directip-stop.gcom
deleted file mode 100644
index 1c14863734..0000000000
--- a/package/network/utils/comgt/files/directip-stop.gcom
+++ /dev/null
@@ -1,16 +0,0 @@ 
-opengt
-set com 115200n81
-set comecho off
-set senddelay 0.05
-waitquiet 1 0.2
-
-:start
- send "AT!SCACT=0,3^m"
- waitfor 5 "OK"
- if % = 0 goto hangupok
- print "WWAN error. Hangup failed.\r\n"
- exit 1
-
-:hangupok
- print "WWAN connection established.\r\n"
- exit 0
diff --git a/package/network/utils/comgt/files/directip.gcom b/package/network/utils/comgt/files/directip.gcom
deleted file mode 100644
index 9a772a90f7..0000000000
--- a/package/network/utils/comgt/files/directip.gcom
+++ /dev/null
@@ -1,55 +0,0 @@ 
-opengt
-set com 115200n81
-set comecho off
-set senddelay 0.05
-waitquiet 1 0.2
-
-:start
- if $env("USE_AUTH") = "0" goto connect
- send "AT$QCPDPP=3,"
- send $env("USE_AUTH")
- send ",\""
- if $env("USE_USER") <> "" send $env("USE_USER")
- send "\",\""
- if $env("USE_PASS") <> "" send $env("USE_PASS")
- send "\"^m"
- waitfor 5 "OK"
- if % = 0 goto connect
- print "WWAN error. Auth failed.\r\n"
- exit 1
-
-:connect
- send "AT+CFUN=1^m"
- send "AT+CGDCONT=3,\"IP\",\""
- send $env("USE_APN")
- send "\"^m"
- waitfor 5 "OK"
- if % = 0 goto connok
- print "WWAN error. Connection failed.\r\n"
- exit 1
-
-:connok
- let c=1
-:loop
- sleep 2
- send "AT+CGATT?^m"
- waitfor 5 "+CGATT: 1"
- if % = 0 goto carrierok
- if c > 10 goto carriererr
- inc c
- goto loop
-
-:carriererr
- print "WWAN error. No carrier.\r\n"
- exit 1
-
-:carrierok
- send "AT!SCACT=1,3^m"
- waitfor 5 "OK"
- if % = 0 goto dialok
- print "WWAN error. Dialing failed.\r\n"
- exit 1
-
-:dialok
- print "WWAN connection established.\r\n"
- exit 0
diff --git a/package/network/utils/comgt/files/directip.sh b/package/network/utils/comgt/files/directip.sh
deleted file mode 100644
index 3452fa5db7..0000000000
--- a/package/network/utils/comgt/files/directip.sh
+++ /dev/null
@@ -1,114 +0,0 @@ 
-#!/bin/sh
-
-[ -n "$INCLUDE_ONLY" ] || {
-	. /lib/functions.sh
-	. ../netifd-proto.sh
-	init_proto "$@"
-}
-
-proto_directip_init_config() {
-	available=1
-	no_device=1
-	proto_config_add_string "device:device"
-	proto_config_add_string "apn"
-	proto_config_add_string "pincode"
-	proto_config_add_string "auth"
-	proto_config_add_string "username"
-	proto_config_add_string "password"
-	proto_config_add_defaults
-}
-
-proto_directip_setup() {
-	local interface="$1"
-	local chat devpath devname
-
-	local device apn pincode ifname auth username password $PROTO_DEFAULT_OPTIONS
-	json_get_vars device apn pincode auth username password $PROTO_DEFAULT_OPTIONS
-
-	[ -n "$ctl_device" ] && device=$ctl_device
-
-	device="$(readlink -f $device)"
-	[ -e "$device" ] || {
-		proto_notify_error "$interface" NO_DEVICE
-		proto_set_available "$interface" 0
-		return 1
-	}
-
-	devname="$(basename "$device")"
-	devpath="$(readlink -f /sys/class/tty/$devname/device)"
-	ifname="$( ls "$devpath"/../../*/net )"
-
-	[ -n "$ifname" ] || {
-		proto_notify_error "$interface" NO_IFNAME
-		proto_set_available "$interface" 0
-		return 1
-	}
-
-	gcom -d "$device" -s /etc/gcom/getcardinfo.gcom | grep -q "Sierra Wireless" || {
-		proto_notify_error "$interface" BAD_DEVICE
-		proto_block_restart "$interface"
-		return 1
-	}
-
-	if [ -n "$pincode" ]; then
-		PINCODE="$pincode" gcom -d "$device" -s /etc/gcom/setpin.gcom || {
-			proto_notify_error "$interface" PIN_FAILED
-			proto_block_restart "$interface"
-			return 1
-		}
-	fi
-	# wait for carrier to avoid firmware stability bugs
-	gcom -d "$device" -s /etc/gcom/getcarrier.gcom || return 1
-
-	local auth_type=0
-	case $auth in
-	pap) auth_type=1;;
-	chap) auth_type=2;;
-	esac
-
-	USE_APN="$apn" USE_USER="$username" USE_PASS="$password" USE_AUTH="$auth_type" \
-			gcom -d "$device" -s /etc/gcom/directip.gcom || {
-		proto_notify_error "$interface" CONNECT_FAILED
-		proto_block_restart "$interface"
-		return 1
-	}
-
-	logger -p daemon.info -t "directip[$$]" "Connected, starting DHCP"
-	proto_init_update "$ifname" 1
-	proto_send_update "$interface"
-
-	json_init
-	json_add_string name "${interface}_4"
-	json_add_string ifname "@$interface"
-	json_add_string proto "dhcp"
-	proto_add_dynamic_defaults
-	ubus call network add_dynamic "$(json_dump)"
-
-	json_init
-	json_add_string name "${interface}_6"
-	json_add_string ifname "@$interface"
-	json_add_string proto "dhcpv6"
-	json_add_string extendprefix 1
-	proto_add_dynamic_defaults
-	ubus call network add_dynamic "$(json_dump)"
-
-	return 0
-}
-
-proto_directip_teardown() {
-	local interface="$1"
-
-	local device
-	json_get_vars device
-
-	[ -n "$ctl_device" ] && device=$ctl_device
-
-	gcom -d "$device" -s /etc/gcom/directip-stop.gcom || proto_notify_error "$interface" CONNECT_FAILED
-
-	proto_init_update "*" 0
-	proto_send_update "$interface"
-}
-
-[ -n "$INCLUDE_ONLY" ] || {
-	add_protocol directip
-}
diff --git a/package/network/utils/comgt/files/evdo.chat b/package/network/utils/comgt/files/evdo.chat
deleted file mode 100644
index de49e41a1b..0000000000
--- a/package/network/utils/comgt/files/evdo.chat
+++ /dev/null
@@ -1,17 +0,0 @@ 
-# This is a simple chat script based off of the one provided by Sierra Wireless
-# for CDMA connections.  It should work for both Sprint and Verizon networks.
-
-ABORT	BUSY
-ABORT 	'NO CARRIER'
-ABORT	ERROR
-ABORT 	'NO DIAL TONE'
-ABORT 	'NO ANSWER'
-ABORT 	DELAYED
-REPORT	CONNECT
-TIMEOUT	10
-'' 		AT
-OK 		ATZ
-SAY     'Calling CDMA/EVDO'
-TIMEOUT	30
-OK		ATDT#777
-CONNECT	''
diff --git a/package/network/utils/comgt/files/getcardinfo.gcom b/package/network/utils/comgt/files/getcardinfo.gcom
deleted file mode 100644
index f91665f72e..0000000000
--- a/package/network/utils/comgt/files/getcardinfo.gcom
+++ /dev/null
@@ -1,14 +0,0 @@ 
-opengt
- set com 115200n81
- set comecho off
- set senddelay 0.02
- waitquiet 0.2 0.2
- flash 0.1
-
-:start
- send "AT+CGMI^m"
- get 1 "" $s
- print $s
-
-:continue
- exit 0
diff --git a/package/network/utils/comgt/files/getcarrier.gcom b/package/network/utils/comgt/files/getcarrier.gcom
deleted file mode 100644
index 1e0216d46a..0000000000
--- a/package/network/utils/comgt/files/getcarrier.gcom
+++ /dev/null
@@ -1,20 +0,0 @@ 
-opengt
-  set senddelay 0.05
-  waitquiet 1 0.2
-  let c=1
- :loop
-    inc c
-    send "AT+CGATT?^m"
-    waitfor 5 "+CGATT: 1","+CGATT: 0"
-    print "\n."
-    if % = -1 goto error
-    if c > 10 goto toolong
-    if % = 0 goto out
-    sleep 2
-    if % = 1 goto loop
-  :toolong
-  exit 1
-  :error
-  exit 0
-  :out
- exit 0
diff --git a/package/network/utils/comgt/files/getcnum.gcom b/package/network/utils/comgt/files/getcnum.gcom
deleted file mode 100644
index 450cf8c413..0000000000
--- a/package/network/utils/comgt/files/getcnum.gcom
+++ /dev/null
@@ -1,20 +0,0 @@ 
-opengt
- set com 115200n81
- set comecho off
- set senddelay 0.02
- waitquiet 0.2 0.2
- flash 0.1
-
-:start
- send "AT+CNUM^m"
- get 1 "^m" $n
- get 1 ":" $n
- get 1 "\"" $n
- get 1 "\"" $n
- get 1 "\"" $n
- get 1 "\"" $n
- let n = len($n)
- if n<1 goto continue
- print $n
-:continue
- exit 0
diff --git a/package/network/utils/comgt/files/getimsi.gcom b/package/network/utils/comgt/files/getimsi.gcom
deleted file mode 100644
index 04854561b1..0000000000
--- a/package/network/utils/comgt/files/getimsi.gcom
+++ /dev/null
@@ -1,17 +0,0 @@ 
-opengt
- set com 115200n81
- set comecho off
- set senddelay 0.02
- waitquiet 0.2 0.2
- flash 0.1
-
-:start
- send "AT+CIMI^m"
- get 1 "^m" $s
- get 1 "^m" $s
- let x = len($s)
- if x<2 goto continue
- let $s = $right($s, x-1)
- print $s
-:continue
- exit 0
diff --git a/package/network/utils/comgt/files/getstrength.gcom b/package/network/utils/comgt/files/getstrength.gcom
deleted file mode 100644
index 2886285971..0000000000
--- a/package/network/utils/comgt/files/getstrength.gcom
+++ /dev/null
@@ -1,14 +0,0 @@ 
-opengt
- set com 115200n81
- set comecho off
- set senddelay 0.02
- waitquiet 0.2 0.2
- flash 0.1
-
-:start
- send "AT+CSQ^m"
- get 1 "" $s
- print $s
-
-:continue
- exit 0
diff --git a/package/network/utils/comgt/files/ncm.json b/package/network/utils/comgt/files/ncm.json
deleted file mode 100644
index bbdb30c5ee..0000000000
--- a/package/network/utils/comgt/files/ncm.json
+++ /dev/null
@@ -1,78 +0,0 @@ 
-{
-	"huawei": {
-		"initialize": [
-			"AT",
-			"ATZ",
-			"ATQ0",
-			"ATV1",
-			"ATE1",
-			"ATS0=0",
-			"AT+CGDCONT=${profile},\\\"${pdptype}\\\"${apn:+,\\\"$apn\\\"}"
-		],
-		"modes": {
-			"preferlte": "AT^SYSCFGEX=\\\"030201\\\",3fffffff,2,4,7fffffffffffffff,,",
-			"preferumts": "AT^SYSCFGEX=\\\"0201\\\",3fffffff,2,4,7fffffffffffffff,,",
-			"lte": "AT^SYSCFGEX=\\\"03\\\",3fffffff,2,4,7fffffffffffffff,,",
-			"umts": "AT^SYSCFGEX=\\\"02\\\",3fffffff,2,4,7fffffffffffffff,,",
-			"gsm": "AT^SYSCFGEX=\\\"01\\\",3fffffff,2,4,7fffffffffffffff,,",
-			"auto": "AT^SYSCFGEX=\\\"00\\\",3fffffff,2,4,7fffffffffffffff,,"
-		},
-		"connect": "AT^NDISDUP=${profile},1${apn:+,\\\"$apn\\\"}${username:+,\\\"$username\\\"}${password:+,\\\"$password\\\"}${auth:+,$auth}",
-		"disconnect": "AT^NDISDUP=${profile},0"
-	},
-	"samsung": {
-		"initialize": [
-			"AT",
-			"AT+CGREG=2",
-			"AT+CFUN=5",
-			"AT+MODESELECT=3",
-			"AT+CGDCONT=${profile},\\\"${pdptype}\\\"${apn:+,\\\"$apn\\\"}"
-		],
-		"modes": {
-			"umts": "AT+CHANGEALLPATH=1"
-		},
-		"connect": "AT+CGATT=1",
-		"disconnect": "AT+CGATT=0"
-	},
-	"sierra": {
-		"initialize": [
-			"AT+CFUN=1",
-			"AT+CGDCONT=${profile},\\\"${pdptype}\\\"${apn:+,\\\"$apn\\\"}",
-			"AT$QCPDPP=${profile},${auth:-0}${password:+,\\\"$password\\\"}${username:+,\\\"$username\\\"}"
-		],
-		"modes": {
-			"preferlte": "AT!SELRAT=07",
-			"preferumts": "AT!SELRAT=05",
-			"lte": "AT!SELRAT=06",
-			"umts": "AT!SELRAT=01",
-			"gsm": "AT!SELRAT=02",
-			"auto": "AT!SELRAT=00"
-		},
-		"connect": "AT!SCACT=1,${profile}",
-		"disconnect": "AT!SCACT=0,${profile}"
-	},
-	"sony": {
-		"initialize": [
-			"AT+CFUN=1",
-			"AT+CGDCONT=${profile},\\\"${pdptype}\\\"${apn:+,\\\"$apn\\\"}",
-			"AT*EIAAUW=${profile},1,\\\"${username}\\\",\\\"${password}\\\",${auth:-00111}"
-		],
-		"modes": {
-			"umts": "AT+CFUN=6",
-			"gsm": "AT+CFUN=5"
-		},
-		"connect": "AT*ENAP=1,${profile}",
-		"disconnect": "AT*ENAP=0"
-	},
-	"mtk1": {
-		"initialize": [
-			"AT+CFUN=1"
-		],
-		"configure": [
-			"AT+CGDCONT=${profile},\\\"${pdptype}\\\",\\\"${apn}\\\",0,0"
-		],
-		"connect": "AT+CGACT=1,${profile}",
-		"finalize": "AT+CGDATA=\\\"M-MBIM\\\",${profile},1",
-		"disconnect": "AT+CGACT=0,${profile}"
-	}
-}
diff --git a/package/network/utils/comgt/files/ncm.sh b/package/network/utils/comgt/files/ncm.sh
deleted file mode 100644
index 6545091c82..0000000000
--- a/package/network/utils/comgt/files/ncm.sh
+++ /dev/null
@@ -1,255 +0,0 @@ 
-#!/bin/sh
-
-[ -n "$INCLUDE_ONLY" ] || {
-	. /lib/functions.sh
-	. ../netifd-proto.sh
-	init_proto "$@"
-}
-
-proto_ncm_init_config() {
-	no_device=1
-	available=1
-	proto_config_add_string "device:device"
-	proto_config_add_string apn
-	proto_config_add_string auth
-	proto_config_add_string username
-	proto_config_add_string password
-	proto_config_add_string pincode
-	proto_config_add_string delay
-	proto_config_add_string mode
-	proto_config_add_string pdptype
-	proto_config_add_int profile
-	proto_config_add_defaults
-}
-
-proto_ncm_setup() {
-	local interface="$1"
-
-	local manufacturer initialize setmode connect finalize ifname devname devpath
-
-	local device apn auth username password pincode delay mode pdptype profile $PROTO_DEFAULT_OPTIONS
-	json_get_vars device apn auth username password pincode delay mode pdptype profile $PROTO_DEFAULT_OPTIONS
-
-	[ "$metric" = "" ] && metric="0"
-
-	[ -n "$profile" ] || profile=1
-
-	pdptype=$(echo "$pdptype" | awk '{print toupper($0)}')
-	[ "$pdptype" = "IP" -o "$pdptype" = "IPV6" -o "$pdptype" = "IPV4V6" ] || pdptype="IP"
-
-	[ -n "$ctl_device" ] && device=$ctl_device
-
-	[ -n "$device" ] || {
-		echo "No control device specified"
-		proto_notify_error "$interface" NO_DEVICE
-		proto_set_available "$interface" 0
-		return 1
-	}
-
-	device="$(readlink -f $device)"
-	[ -e "$device" ] || {
-		echo "Control device not valid"
-		proto_set_available "$interface" 0
-		return 1
-	}
-
-	devname="$(basename "$device")"
-	case "$devname" in
-	'tty'*)
-		devpath="$(readlink -f /sys/class/tty/$devname/device)"
-		ifname="$( ls "$devpath"/../../*/net )"
-		;;
-	*)
-		devpath="$(readlink -f /sys/class/usbmisc/$devname/device/)"
-		ifname="$( ls "$devpath"/net )"
-		;;
-	esac
-	[ -n "$ifname" ] || {
-		echo "The interface could not be found."
-		proto_notify_error "$interface" NO_IFACE
-		proto_set_available "$interface" 0
-		return 1
-	}
-
-	[ -n "$delay" ] && sleep "$delay"
-
-	manufacturer=$(gcom -d "$device" -s /etc/gcom/getcardinfo.gcom | awk 'NF && $0 !~ /AT\+CGMI/ { sub(/\+CGMI: /,""); print tolower($1); exit; }')
-	[ $? -ne 0 -o -z "$manufacturer" ] && {
-		echo "Failed to get modem information"
-		proto_notify_error "$interface" GETINFO_FAILED
-		return 1
-	}
-
-	json_load "$(cat /etc/gcom/ncm.json)"
-	json_select "$manufacturer"
-	[ $? -ne 0 ] && {
-		echo "Unsupported modem"
-		proto_notify_error "$interface" UNSUPPORTED_MODEM
-		proto_set_available "$interface" 0
-		return 1
-	}
-
-	json_get_values initialize initialize
-	for i in $initialize; do
-		eval COMMAND="$i" gcom -d "$device" -s /etc/gcom/runcommand.gcom || {
-			echo "Failed to initialize modem"
-			proto_notify_error "$interface" INITIALIZE_FAILED
-			return 1
-		}
-	done
-
-	[ -n "$pincode" ] && {
-		PINCODE="$pincode" gcom -d "$device" -s /etc/gcom/setpin.gcom || {
-			echo "Unable to verify PIN"
-			proto_notify_error "$interface" PIN_FAILED
-			proto_block_restart "$interface"
-			return 1
-		}
-	}
-
-	json_get_values configure configure
-	echo "Configuring modem"
-	for i in $configure; do
-		eval COMMAND="$i" gcom -d "$device" -s /etc/gcom/runcommand.gcom || {
-			echo "Failed to configure modem"
-			proto_notify_error "$interface" CONFIGURE_FAILED
-			return 1
-		}
-	done
-
-	[ -n "$mode" ] && {
-		json_select modes
-		json_get_var setmode "$mode"
-		[ -n "$setmode" ] && {
-			echo "Setting mode"
-			eval COMMAND="$setmode" gcom -d "$device" -s /etc/gcom/runcommand.gcom || {
-				echo "Failed to set operating mode"
-				proto_notify_error "$interface" SETMODE_FAILED
-				return 1
-			}
-		}
-		json_select ..
-	}
-
-	echo "Starting network $interface"
-	json_get_vars connect
-	[ -n "$connect" ] && {
-		echo "Connecting modem"
-		eval COMMAND="$connect" gcom -d "$device" -s /etc/gcom/runcommand.gcom || {
-			echo "Failed to connect"
-			proto_notify_error "$interface" CONNECT_FAILED
-			return 1
-		}
-	}
-
-	json_get_vars finalize
-
-	echo "Setting up $ifname"
-	proto_init_update "$ifname" 1
-	proto_add_data
-	json_add_string "manufacturer" "$manufacturer"
-	proto_close_data
-	proto_send_update "$interface"
-
-	local zone="$(fw3 -q network "$interface" 2>/dev/null)"
-
-	[ "$pdptype" = "IP" -o "$pdptype" = "IPV4V6" ] && {
-		json_init
-		json_add_string name "${interface}_4"
-		json_add_string ifname "@$interface"
-		json_add_string proto "dhcp"
-		proto_add_dynamic_defaults
-		[ -n "$zone" ] && {
-			json_add_string zone "$zone"
-		}
-		json_close_object
-		ubus call network add_dynamic "$(json_dump)"
-	}
-
-	[ "$pdptype" = "IPV6" -o "$pdptype" = "IPV4V6" ] && {
-		json_init
-		json_add_string name "${interface}_6"
-		json_add_string ifname "@$interface"
-		json_add_string proto "dhcpv6"
-		json_add_string extendprefix 1
-		proto_add_dynamic_defaults
-		[ -n "$zone" ] && {
-			json_add_string zone "$zone"
-		}
-		json_close_object
-		ubus call network add_dynamic "$(json_dump)"
-	}
-
-	[ -n "$finalize" ] && {
-		eval COMMAND="$finalize" gcom -d "$device" -s /etc/gcom/runcommand.gcom || {
-			echo "Failed to configure modem"
-			proto_notify_error "$interface" FINALIZE_FAILED
-			return 1
-		}
-	}
-}
-
-proto_ncm_teardown() {
-	local interface="$1"
-
-	local manufacturer disconnect
-
-	local device profile
-	json_get_vars device profile
-
-	[ -n "$ctl_device" ] && device=$ctl_device
-
-	[ -n "$device" ] || {
-		echo "No control device specified"
-		proto_notify_error "$interface" NO_DEVICE
-		proto_set_available "$interface" 0
-		return 1
-	}
-
-	device="$(readlink -f $device)"
-	[ -e "$device" ] || {
-		echo "Control device not valid"
-		proto_set_available "$interface" 0
-		return 1
-	}
-
-	[ -n "$profile" ] || profile=1
-
-	echo "Stopping network $interface"
-
-	json_load "$(ubus call network.interface.$interface status)"
-	json_select data
-	json_get_vars manufacturer
-	[ $? -ne 0 -o -z "$manufacturer" ] && {
-		# Fallback to direct detect, for proper handle device replug.
-		manufacturer=$(gcom -d "$device" -s /etc/gcom/getcardinfo.gcom | awk 'NF && $0 !~ /AT\+CGMI/ { sub(/\+CGMI: /,""); print tolower($1); exit; }')
-		[ $? -ne 0 -o -z "$manufacturer" ] && {
-			echo "Failed to get modem information"
-			proto_notify_error "$interface" GETINFO_FAILED
-			return 1
-		}
-		json_add_string "manufacturer" "$manufacturer"
-	}
-
-	json_load "$(cat /etc/gcom/ncm.json)"
-	json_select "$manufacturer" || {
-		echo "Unsupported modem"
-		proto_notify_error "$interface" UNSUPPORTED_MODEM
-		return 1
-	}
-
-	json_get_vars disconnect
-	[ -n "$disconnect" ] && {
-		eval COMMAND="$disconnect" gcom -d "$device" -s /etc/gcom/runcommand.gcom || {
-			echo "Failed to disconnect"
-			proto_notify_error "$interface" DISCONNECT_FAILED
-			return 1
-		}
-	}
-
-	proto_init_update "*" 0
-	proto_send_update "$interface"
-}
-[ -n "$INCLUDE_ONLY" ] || {
-	add_protocol ncm
-}
diff --git a/package/network/utils/comgt/files/runcommand.gcom b/package/network/utils/comgt/files/runcommand.gcom
deleted file mode 100644
index 88a9d29dc1..0000000000
--- a/package/network/utils/comgt/files/runcommand.gcom
+++ /dev/null
@@ -1,31 +0,0 @@ 
-# run AT-command from environment
-opengt
- set com 115200n81
- set senddelay 0.02
- waitquiet 1 0.2
- flash 0.1
-
-:start
- print "sending -> ",$env("COMMAND"),"\n"
- send $env("COMMAND")
- send "^m"
-
- waitfor 25 "OK","ERR","ERROR","COMMAND NOT SUPPORT"
- if % = 0 goto continue
- if % = 1 goto error
- if % = 2 goto error
- if % = 3 goto notsupported
-
- print "Timeout running AT-command\n"
- exit 1
-
-:error
- print "Error running AT-command\n"
- exit 1
-
-:notsupported
- print "AT-command not supported\n"
- exit 1
-
-:continue
- exit 0
diff --git a/package/network/utils/comgt/files/setmode.gcom b/package/network/utils/comgt/files/setmode.gcom
deleted file mode 100644
index 4ce0b5fa78..0000000000
--- a/package/network/utils/comgt/files/setmode.gcom
+++ /dev/null
@@ -1,26 +0,0 @@ 
-# set wwan mode from environment
-opengt
- set com 115200n81
- set senddelay 0.02
- waitquiet 1 0.2
- flash 0.1
-
-:start
- print "Trying to set mode\n"
- send $env("MODE")
- send "^m"
-
- waitfor 15 "OK","ERR","ERROR"
- if % = 0 goto continue
- if % = 1 goto modeerror
- if % = 2 goto modeerror
-
- print "Timeout setting WWAN mode!\n"
- exit 1
-
-:modeerror
- print "Error setting WWAN mode!\n"
- exit 1
-
-:continue
- exit 0
diff --git a/package/network/utils/comgt/files/setpin.gcom b/package/network/utils/comgt/files/setpin.gcom
deleted file mode 100644
index a3f3402797..0000000000
--- a/package/network/utils/comgt/files/setpin.gcom
+++ /dev/null
@@ -1,56 +0,0 @@ 
-# set pin code from evnironment "$PINCODE"
-opengt
- set com 115200n81
- set senddelay 0.05
- waitquiet 3 0.5
- flash 0.1
-
- let c=0
-:start
- send "AT+CFUN=1^m"
- send "AT+CPIN?^m"
- waitfor 15 "SIM PUK","SIM PIN","READY","ERROR","ERR"
- if % = -1 goto timeout
- if % = 0 goto ready
- if % = 1 goto setpin
- if % = 2 goto ready
- if % = 3 goto checkrepeat
- if % = 4 goto checkrepeat
-
-:checkrepeat
- inc c
- if c>3 goto pinerror
- waitquiet 12 0.5
- goto start
-
-:timeout
- print "timeout checking for PIN."
- exit 1
-
-:ready
- print "SIM ready\n"
- goto continue
- exit 0
-
-:setpin
- # check if output was "SIM PIN2", that's ok.
- waitfor 1 "2"
- if % = 0 goto ready
-
- print "Trying to set PIN\n"
- send "AT+CPIN=\""
- send $env("PINCODE")
- send "\"^m"
-
- waitfor 20 "OK","ERR"
- if % = -1 goto pinerror
- if % = 0 goto continue
- if % = 1 goto pinerror
-
-:pinerror
- print "Error setting PIN, check card manually\n"
- exit 1
-
-:continue
- print "PIN set successfully\n"
- exit 0
diff --git a/package/network/utils/comgt/files/ussd.gcom b/package/network/utils/comgt/files/ussd.gcom
deleted file mode 100644
index c5be80b2d7..0000000000
--- a/package/network/utils/comgt/files/ussd.gcom
+++ /dev/null
@@ -1,21 +0,0 @@ 
-opengt
- set com 115200n81
- set comecho off
- set senddelay 0.02
- waitquiet 0.2 0.2
- flash 0.1
-
-:start
- send "AT+CUSD=1,"
- send $env("ussd")
- send ",15"
- send "^m"
- waitfor 120 "+CUSD:"
- if % = -1 goto timeout
- get 1 "^m" $s
- print $s
- exit 0
-
-:timeout
- print "ERROR: no USSD response, timeout.\n"
- exit 1
diff --git a/package/network/utils/comgt/patches/001-compile_fix.patch b/package/network/utils/comgt/patches/001-compile_fix.patch
deleted file mode 100644
index 15de850b73..0000000000
--- a/package/network/utils/comgt/patches/001-compile_fix.patch
+++ /dev/null
@@ -1,23 +0,0 @@ 
---- a/Makefile
-+++ b/Makefile
-@@ -32,6 +32,7 @@ SCRIPTPATH = /etc/comgt/
- SCRIPTSRC = ./scripts/
- BIN     = $(CPROG) 
- MANP	= comgt.1 sigmon.1
-+CC	= cc
- 
- CFLAGS  = -c
- LDFLAGS =
-@@ -70,10 +71,5 @@ clean:
- 	-rm *~
- 	-rm $(SCRIPTSRC)*~
- 
--
--comgt: comgt.o
--	cc comgt.o $(LDFLAGS) -o comgt
--
--comgt.o: comgt.c comgt.h
--	cc comgt.c $(CFLAGS) 
--
-+comgt:  comgt.c comgt.h
-+	$(CC) $(CFLAGS) -o comgt $< $(LDFLAGS)
diff --git a/package/network/utils/comgt/patches/002-termios.patch b/package/network/utils/comgt/patches/002-termios.patch
deleted file mode 100644
index 08f22d15d9..0000000000
--- a/package/network/utils/comgt/patches/002-termios.patch
+++ /dev/null
@@ -1,105 +0,0 @@ 
---- a/comgt.c
-+++ b/comgt.c
-@@ -30,7 +30,7 @@
- #include <stdio.h>
- #include <stdlib.h>
- #include <signal.h>
--#include <termio.h>
-+#include <termios.h>
- #include <fcntl.h>
- #include <unistd.h>
- #include <string.h>
-@@ -81,7 +81,7 @@ char token[MAXTOKEN];   /* For gettoken(
- char scriptfile[MAXPATH]; /* Script file name */
- char scriptfilepath[MAXPATH]; /* temp storage for full path */
- BOOL verbose=0; /* Log actions */
--struct termio cons, stbuf, svbuf;  /* termios: svbuf=before, stbuf=while */
-+struct termios cons, stbuf, svbuf;  /* termios: svbuf=before, stbuf=while */
- int comfd=0; /* Communication file descriptor.  Defaults to stdin. */
- char msg[STRINGL]; /* Massage messages here */
- int preturn,returns[MAXGOSUBS];
-@@ -172,7 +172,7 @@ void dotestkey(void) {
- 
- /* Exit after resetting terminal settings */
- void ext(long xtc) {
--  ioctl(1, TCSETA, &cons);
-+  ioctl(1, TCSETS, &cons);
-   exit(xtc);
- }
- 
-@@ -920,24 +920,24 @@ BOOL getonoroff(void) {
- void setcom(void) {
-   stbuf.c_cflag &= ~(CBAUD | CSIZE | CSTOPB | CLOCAL | PARENB);
-   stbuf.c_cflag |= (speed | bits | CREAD | clocal | parity | stopbits );
--  if (ioctl(comfd, TCSETA, &stbuf) < 0) {
-+  if (ioctl(comfd, TCSETS, &stbuf) < 0) {
-     serror("Can't ioctl set device",1);
-   }
- }
- 
- void doset(void) {
--  struct termio console;
-+  struct termios console;
-   int a,b;
-   gettoken();
-   if(strcmp(token,"echo")==0) {
-     a=0;
-     if(getonoroff()) a=ECHO|ECHOE;
--    if(ioctl(0, TCGETA, &console)<0) {
-+    if(ioctl(0, TCGETS, &console)<0) {
-       serror("Can't ioctl FD zero!\n",2);
-     }
-     console.c_lflag &= ~(ECHO | ECHOE);
-     console.c_lflag |= a;
--    ioctl(0, TCSETA, &console);
-+    ioctl(0, TCSETS, &console);
-   }
-   else if(strcmp(token,"senddelay")==0) {
-     senddelay=10000L*getdvalue();
-@@ -1224,7 +1224,7 @@ void doclose(void) {
-   if(strcmp(token,"hardcom")==0) {
-     if(comfd== -1) serror("Com device not open",1);
-     vmsg("Closing device");
--    if (ioctl(comfd, TCSETA, &svbuf) < 0) {
-+    if (ioctl(comfd, TCSETS, &svbuf) < 0) {
-       sprintf(msg,"Can't ioctl set device %s.\n",device);
-       serror(msg,1);
-     }
-@@ -1266,12 +1266,12 @@ void opengt(void) {
-       ext(1);
-     }
-   }
--  if (ioctl (comfd, TCGETA, &svbuf) < 0) {
-+  if (ioctl (comfd, TCGETS, &svbuf) < 0) {
-     sprintf(msg,"Can't control %s, please try again.\n",device);
-     serror(msg,1);
-   }
-   setenv("COMGTDEVICE",device,1);
--  ioctl(comfd, TCGETA, &stbuf);
-+  ioctl(comfd, TCGETS, &stbuf);
-   speed=stbuf.c_cflag & CBAUD;
-   if (high_speed == 0)  strcpy(cspeed,"115200");
-   else strcpy(cspeed,"57600");
-@@ -1303,11 +1303,11 @@ void opendevice(void) {
-   }
-   else comfd=0;
- 
--  if (ioctl (comfd, TCGETA, &svbuf) < 0) {
-+  if (ioctl (comfd, TCGETS, &svbuf) < 0) {
-     sprintf(msg,"Can't ioctl get device %s.\n",device);
-     serror(msg,1);
-   }
--  ioctl(comfd, TCGETA, &stbuf);
-+  ioctl(comfd, TCGETS, &stbuf);
-   speed=stbuf.c_cflag & CBAUD;
-   switch(speed) {
-     case B0: strcpy(cspeed,"0");break;
-@@ -1553,7 +1553,7 @@ int main(int argc,char **argv) {
-   skip_default=0;
-   filep=NULL;
-   scriptspace=4096;
--  ioctl(1, TCGETA, &cons);
-+  ioctl(1, TCGETS, &cons);
-   if((script=( char *)malloc(scriptspace))==NULL) {
-     serror("Could not malloc()",3);
-   }
diff --git a/package/network/utils/comgt/patches/003-no_XCASE.patch b/package/network/utils/comgt/patches/003-no_XCASE.patch
deleted file mode 100644
index f2060a8288..0000000000
--- a/package/network/utils/comgt/patches/003-no_XCASE.patch
+++ /dev/null
@@ -1,20 +0,0 @@ 
---- a/comgt.c
-+++ b/comgt.c
-@@ -1281,7 +1281,7 @@ void opengt(void) {
-   parity=stbuf.c_cflag & (PARENB | PARODD);
-   stbuf.c_iflag &= ~(IGNCR | ICRNL | IUCLC | INPCK | IXON | IXANY | IGNPAR );
-   stbuf.c_oflag &= ~(OPOST | OLCUC | OCRNL | ONLCR | ONLRET);
--  stbuf.c_lflag &= ~(ICANON | XCASE | ECHO | ECHOE | ECHONL);
-+  stbuf.c_lflag &= ~(ICANON | ECHO | ECHOE | ECHONL);
-   stbuf.c_lflag &= ~(ECHO | ECHOE);
-   stbuf.c_cc[VMIN] = 1;
-   stbuf.c_cc[VTIME] = 0;
-@@ -1336,7 +1336,7 @@ void opendevice(void) {
-   parity=stbuf.c_cflag & (PARENB | PARODD);
-   stbuf.c_iflag &= ~(IGNCR | ICRNL | IUCLC | INPCK | IXON | IXANY | IGNPAR );
-   stbuf.c_oflag &= ~(OPOST | OLCUC | OCRNL | ONLCR | ONLRET);
--  stbuf.c_lflag &= ~(ICANON | XCASE | ECHO | ECHOE | ECHONL);
-+  stbuf.c_lflag &= ~(ICANON | ECHO | ECHOE | ECHONL);
-   stbuf.c_lflag &= ~(ECHO | ECHOE);
-   stbuf.c_cc[VMIN] = 1;
-   stbuf.c_cc[VTIME] = 0;
diff --git a/package/network/utils/comgt/patches/004-check_tty.patch b/package/network/utils/comgt/patches/004-check_tty.patch
deleted file mode 100644
index fb1d9af4bb..0000000000
--- a/package/network/utils/comgt/patches/004-check_tty.patch
+++ /dev/null
@@ -1,68 +0,0 @@ 
---- a/comgt.c
-+++ b/comgt.c
-@@ -91,6 +91,7 @@ unsigned long hstart,hset;
- char NullString[]={ "" };
- BOOL lastcharnl=1; /* Indicate that last char printed from getonebyte
-                                was a nl, so no new one is needed */
-+BOOL tty=1;
- 
- 
- //"open com \"/dev/modem\"\nset com 38400n81\nset senddelay 0.05\nsend \"ATi^m\"\nget 2 \" ^m\" $s\nprint \"Response : \",$s,\"\\n\"\nget 2 \" ^m\" $s\nprint \"Response :\",$s,\"\\n\"\nget 2 \" ^m\" $s\nprint \"Response : \",$s,\"\\n\"\n\n";
-@@ -920,7 +921,7 @@ BOOL getonoroff(void) {
- void setcom(void) {
-   stbuf.c_cflag &= ~(CBAUD | CSIZE | CSTOPB | CLOCAL | PARENB);
-   stbuf.c_cflag |= (speed | bits | CREAD | clocal | parity | stopbits );
--  if (ioctl(comfd, TCSETS, &stbuf) < 0) {
-+  if (tty && ioctl(comfd, TCSETS, &stbuf) < 0) {
-     serror("Can't ioctl set device",1);
-   }
- }
-@@ -1224,7 +1225,7 @@ void doclose(void) {
-   if(strcmp(token,"hardcom")==0) {
-     if(comfd== -1) serror("Com device not open",1);
-     vmsg("Closing device");
--    if (ioctl(comfd, TCSETS, &svbuf) < 0) {
-+    if (tty && ioctl(comfd, TCSETS, &svbuf) < 0) {
-       sprintf(msg,"Can't ioctl set device %s.\n",device);
-       serror(msg,1);
-     }
-@@ -1266,12 +1267,17 @@ void opengt(void) {
-       ext(1);
-     }
-   }
--  if (ioctl (comfd, TCGETS, &svbuf) < 0) {
-+  if (isatty (comfd))
-+    tty=1;
-+  else
-+    tty=0;
-+  if (tty && ioctl (comfd, TCGETS, &svbuf) < 0) {
-     sprintf(msg,"Can't control %s, please try again.\n",device);
-     serror(msg,1);
-   }
-   setenv("COMGTDEVICE",device,1);
--  ioctl(comfd, TCGETS, &stbuf);
-+  if (tty)
-+    ioctl(comfd, TCGETS, &stbuf);
-   speed=stbuf.c_cflag & CBAUD;
-   if (high_speed == 0)  strcpy(cspeed,"115200");
-   else strcpy(cspeed,"57600");
-@@ -1302,12 +1308,16 @@ void opendevice(void) {
-     }
-   }
-   else comfd=0;
--
--  if (ioctl (comfd, TCGETS, &svbuf) < 0) {
-+  if (isatty (comfd))
-+    tty=1;
-+  else
-+    tty=0;
-+  if (tty && ioctl (comfd, TCGETS, &svbuf) < 0) {
-     sprintf(msg,"Can't ioctl get device %s.\n",device);
-     serror(msg,1);
-   }
--  ioctl(comfd, TCGETS, &stbuf);
-+  if (tty)
-+    ioctl(comfd, TCGETS, &stbuf);
-   speed=stbuf.c_cflag & CBAUD;
-   switch(speed) {
-     case B0: strcpy(cspeed,"0");break;