rtklib: move to github
rtklib: move to github

Signed-off-by: Nuno Goncalves <nunojpg@gmail.com>

git-svn-id: svn://svn.openwrt.org/openwrt/packages@42567 3c298f89-4303-0410-b956-a3cf2f4a3e73

#  
# Copyright (C) 2008-2012 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:=diffutils  
PKG_VERSION:=3.0  
PKG_RELEASE:=3  
 
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz  
PKG_SOURCE_URL:=@GNU/diffutils  
PKG_MD5SUM:=684aaba1baab743a2a90e52162ff07da  
 
PKG_INSTALL:=1  
 
include $(INCLUDE_DIR)/package.mk  
 
define Package/diffutils  
SECTION:=devel  
CATEGORY:=Development  
DEPENDS:=+USE_EGLIBC:librt  
TITLE:=diffutils  
URL:=http://www.gnu.org/software/diffutils/  
endef  
 
define Package/diffutils/description  
The Diffutils package contains programs that show the differences between  
files or directories.  
endef  
 
CONFIGURE_VARS += \  
ac_cv_func_mempcpy=n \  
 
define Package/diffutils/install  
$(INSTALL_DIR) $(1)/usr/bin  
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/{sdiff,diff3,diff,cmp} $(1)/usr/bin/  
endef  
 
define Package/diffutils/preinst  
#!/bin/sh  
for x in sdiff diff3 diff cmp; do  
[ -L "$${IPKG_INSTROOT}/usr/bin/$$x" ] && rm -f "$${IPKG_INSTROOT}/usr/bin/$$x"  
done  
exit 0  
endef  
 
define Package/diffutils/postrm  
#!/bin/sh  
for x in sdiff diff3 diff cmp; do  
/bin/busybox $$x -h 2>&1 | grep -q BusyBox && ln -sf ../../bin/busybox /usr/bin/$$x  
done  
exit 0  
endef  
 
$(eval $(call BuildPackage,diffutils))  
 
file:a/libs/libnatpmp/Makefile (deleted)
#  
# Copyright (C) 2011-2012 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:=libnatpmp  
PKG_VERSION:=20110808  
PKG_RELEASE:=1  
 
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz  
PKG_SOURCE_URL:=http://miniupnp.free.fr/files  
PKG_MD5SUM:=22a1225b890471a7750a9bf26eb863f7  
 
PKG_INSTALL:=1  
 
include $(INCLUDE_DIR)/package.mk  
 
define Package/libnatpmp/Default  
TITLE:=NAT Port Mapping Protocol (NAT-PMP)  
URL:=http://miniupnp.free.fr/libnatpmp.html  
endef  
 
define Package/libnatpmp/Default/description  
libnatpmp is an attempt to make a portable and fully compliant implementation  
of the protocol for the client side. It is based on non blocking sockets and  
all calls of the API are asynchronous. It is therefore very easy to integrate  
the NAT-PMP code to any event driven code.  
endef  
 
define Package/libnatpmp  
$(call Package/libnatpmp/Default)  
SECTION:=libs  
CATEGORY:=Libraries  
TITLE+= library  
endef  
 
define Package/libnatpmp/description  
$(call Package/libnatpmp/Default/description)  
This package contains the shared library.  
endef  
 
define Package/natpmpc  
$(call Package/libnatpmp/Default)  
SECTION:=net  
CATEGORY:=Network  
SUBMENU:=Firewall  
TITLE+= client  
DEPENDS:=+libnatpmp  
endef  
 
define Package/natpmpc/description  
$(call Package/libnatpmp/Default/description)  
This package contains the natpmp client.  
endef  
 
MAKE_FLAGS += \  
COPTS="$(TARGET_CFLAGS)" \  
PREFIX="$(PKG_INSTALL_DIR)" \  
OS="Linux"  
 
define Build/InstallDev  
$(INSTALL_DIR) $(1)/usr/include  
$(CP) $(PKG_INSTALL_DIR)/usr/include/natpmp.h $(1)/usr/include/  
$(INSTALL_DIR) $(1)/usr/lib  
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libnatpmp*.{so*,a} $(1)/usr/lib/  
endef  
 
define Package/libnatpmp/install  
$(INSTALL_DIR) $(1)/usr/lib  
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/libnatpmp.so.* $(1)/usr/lib/  
endef  
 
define Package/natpmpc/install  
$(INSTALL_DIR) $(1)/usr/bin  
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/natpmpc $(1)/usr/bin/  
endef  
 
$(eval $(call BuildPackage,libnatpmp))  
$(eval $(call BuildPackage,natpmpc))  
 
--- a/Makefile  
+++ b/Makefile  
@@ -11,7 +11,8 @@ INSTALL = install  
# APIVERSION is used in soname  
APIVERSION = 1  
#LDFLAGS = -Wl,--no-undefined  
-CFLAGS = -O -fPIC -Wall -DENABLE_STRNATPMPERR  
+COPTS = -O  
+CFLAGS = $(COPTS) -fPIC -Wall -DENABLE_STRNATPMPERR  
 
LIBOBJS = natpmp.o getgateway.o  
 
 
file:a/libs/neon/Makefile (deleted)
#  
# Copyright (C) 2007-2011 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:=neon  
PKG_VERSION:=0.29.6  
PKG_RELEASE:=2  
 
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz  
PKG_SOURCE_URL:=http://www.webdav.org/neon  
PKG_MD5SUM:=591e0c82e6979e7e615211b386b8f6bc  
 
PKG_FIXUP:=autoreconf  
PKG_INSTALL:=1  
 
include $(INCLUDE_DIR)/package.mk  
 
define Package/libneon  
SECTION:=libs  
CATEGORY:=Libraries  
TITLE:=HTTP and WebDAV client library  
URL:=http://www.webdav.org/neon/  
DEPENDS:=+libopenssl +libexpat  
endef  
 
TARGET_CFLAGS += $(FPIC)  
TARGET_CPPFLAGS += -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE  
 
CONFIGURE_ARGS += \  
--enable-shared \  
--enable-static \  
--with-expat \  
--with-ssl="openssl" \  
--without-egd \  
--without-libproxy \  
 
CONFIGURE_VARS += \  
LDFLAGS="$$$$LDFLAGS -lcrypto -lssl"  
 
define Build/InstallDev  
$(INSTALL_DIR) $(1)/usr/bin  
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/neon-config $(1)/usr/bin/  
$(INSTALL_DIR) $(1)/usr/include  
$(CP) $(PKG_INSTALL_DIR)/usr/include/neon $(1)/usr/include/  
$(INSTALL_DIR) $(1)/usr/lib  
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libneon.{a,so*} $(1)/usr/lib/  
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig  
$(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/neon.pc $(1)/usr/lib/pkgconfig/  
$(SED) 's,-I$$$${includedir}/,-I$(STAGING_DIR)/usr/include/,g' $(1)/usr/bin/neon-config  
$(SED) 's,-L$$$${libdir},,g' $(1)/usr/bin/neon-config  
endef  
 
define Package/libneon/install  
$(INSTALL_DIR) $(1)/usr/lib  
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libneon.so.* $(1)/usr/lib/  
endef  
 
$(eval $(call BuildPackage,libneon))  
 
--- /dev/null  
+++ b/Makefile.am  
@@ -0,0 +1,2 @@  
+SUBDIRS = .  
+ACLOCAL_AMFLAGS = -I macros  
 
file:a/net/lftp/Makefile (deleted)
#  
# Copyright (C) 2008-2012 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:=lftp  
PKG_VERSION:=4.3.6  
PKG_RELEASE:=2  
 
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz  
PKG_SOURCE_URL:=http://lftp.cybermirror.org \  
http://lftp.cybermirror.org/old  
PKG_MD5SUM:=ffcdbaec5d1416cb6dd754efd43fa61a  
 
PKG_INSTALL:=1  
 
include $(INCLUDE_DIR)/uclibc++.mk  
include $(INCLUDE_DIR)/package.mk  
 
define Package/lftp  
SUBMENU:=File Transfer  
SECTION:=net  
CATEGORY:=Network  
DEPENDS:=+libncurses +libopenssl +libreadline $(CXX_DEPENDS) +libexpat  
TITLE:=Sophisticated file transfer program  
URL:=http://lftp.yar.ru/  
endef  
 
define Package/lftp/description  
lftp is sophisticated file transfer program with command line interface. It  
supports FTP, HTTP, FISH, SFTP and FILE (local FS) protocols. GNU Readline  
library is used for input. BitTorrent protocol is supported as built-in  
`torrent' command.  
endef  
 
CONFIGURE_ARGS += \  
--without-libiconv-prefix \  
--without-libintl-prefix \  
--without-gnutls \  
--without-libresolv \  
--with-openssl="$(STAGING_DIR)/usr" \  
--disable-static  
 
CONFIGURE_VARS += \  
LIBS="-lz -lutil -lcurses -ldl" \  
i_cv_posix_fallocate_works=no  
 
MAKE_VARS += \  
LD="$(TARGET_CXX)"  
 
define Package/lftp/install  
$(INSTALL_DIR) $(1)/usr/bin  
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/lftp $(1)/usr/bin/  
endef  
 
$(eval $(call BuildPackage,lftp))  
 
--- a/lib/gettext.h  
+++ b/lib/gettext.h  
@@ -22,7 +22,6 @@  
#if ENABLE_NLS  
 
/* Get declarations of GNU message catalog functions. */  
-# include <libintl.h>  
 
/* You can set the DEFAULT_TEXT_DOMAIN macro to specify the domain used by  
the gettext() and ngettext() macros. This is an alternative to calling  
@@ -54,7 +53,6 @@  
#if defined(__cplusplus) && defined(__GNUG__) && (__GNUC__ >= 3)  
# include <cstdlib>  
# if (__GLIBC__ >= 2 && !defined __UCLIBC__) || _GLIBCXX_HAVE_LIBINTL_H  
-# include <libintl.h>  
# endif  
#endif  
 
 
#  
# Copyright (C) 2011 segal.ubi.pt  
#  
# This is free software, licensed under the GNU General Public License v2.  
# See /LICENSE for more information.  
#  
 
include $(TOPDIR)/rules.mk  
 
PKG_NAME:=ntripcaster  
PKG_VERSION:=0.1.5  
PKG_RELEASE:=1  
 
PKG_SOURCE:=$(PKG_NAME)$(PKG_VERSION).zip  
PKG_SOURCE_URL:=http://igs.bkg.bund.de/root_ftp/NTRIP/software/  
PKG_MD5SUM:=8c85a6c31d8c5cdf2638fe103207a1fd  
 
PKG_MAINTAINER:=Nuno Goncalves <nunojpg@gmail.com>  
 
include $(INCLUDE_DIR)/package.mk  
 
define Package/ntripcaster  
SECTION:=net  
CATEGORY:=Network  
SUBMENU:=NTRIP  
TITLE:=Standard Ntrip Broadcaster  
URL:=http://igs.bkg.bund.de/ntrip/download  
DEPENDS:=+libpthread  
endef  
 
define Package/ntripcaster/description  
BKG Standard Ntrip Broadcaster  
endef  
 
define Build/Prepare  
mkdir -p $(PKG_BUILD_DIR)  
unzip $(DL_DIR)/$(PKG_SOURCE) -d $(PKG_BUILD_DIR)  
mv $(PKG_BUILD_DIR)/$(PKG_NAME)$(PKG_VERSION)/* $(PKG_BUILD_DIR)  
chmod +x $(PKG_BUILD_DIR)/configure  
endef  
 
define Package/ntripcaster/install  
$(INSTALL_DIR) $(1)/usr/local/ntripcaster/bin  
$(INSTALL_BIN) $(PKG_BUILD_DIR)/src/ntripcaster $(1)/usr/local/ntripcaster/bin/  
$(INSTALL_DIR) $(1)/usr/local/ntripcaster/conf  
$(INSTALL_DATA) $(PKG_BUILD_DIR)/conf/ntripcaster.conf.dist $(1)/usr/local/ntripcaster/conf/  
$(INSTALL_DATA) $(PKG_BUILD_DIR)/conf/sourcetable.dat.dist $(1)/usr/local/ntripcaster/conf/  
endef  
 
$(eval $(call BuildPackage,ntripcaster))  
 
#  
# Copyright (C) 2011 segal.ubi.pt  
#  
# This is free software, licensed under the GNU General Public License v2.  
# See /LICENSE for more information.  
#  
 
include $(TOPDIR)/rules.mk  
 
PKG_NAME:=ntripclient  
PKG_VERSION:=1.5.0  
PKG_RELEASE:=2  
 
PKG_SOURCE:=$(PKG_NAME).zip  
PKG_SOURCE_URL:=http://igs.bkg.bund.de/root_ftp/NTRIP/software/  
PKG_MD5SUM:=4b357fa648d74e4e13c4b5a2a39f5624  
 
PKG_MAINTAINER:=Nuno Goncalves <nunojpg@gmail.com>  
 
include $(INCLUDE_DIR)/package.mk  
 
define Package/ntripclient  
SECTION:=net  
CATEGORY:=Network  
SUBMENU:=NTRIP  
TITLE:=Ntrip Version 2.0 Command Line Client  
URL:=http://igs.bkg.bund.de/ntrip/download  
endef  
 
define Package/ntripclient/description  
Ntrip Version 2.0 Command Line Client, reading from Ntrip Version 1.0 or 2.0 Caster  
endef  
 
define Build/Prepare  
mkdir -p $(PKG_BUILD_DIR)  
unzip $(DL_DIR)/$(PKG_SOURCE) -d $(PKG_BUILD_DIR)  
endef  
 
MAKE_FLAGS += \  
OPTS="$(TARGET_CFLAGS)"  
 
define Package/ntripclient/install  
$(INSTALL_DIR) $(1)/usr/bin  
$(INSTALL_BIN) $(PKG_BUILD_DIR)/ntripclient $(1)/usr/bin/  
endef  
 
$(eval $(call BuildPackage,ntripclient))  
 
#  
# Copyright (C) 2011 segal.ubi.pt  
#  
# This is free software, licensed under the GNU General Public License v2.  
# See /LICENSE for more information.  
#  
 
include $(TOPDIR)/rules.mk  
 
PKG_NAME:=ntripserver  
PKG_VERSION:=1.5.1  
PKG_RELEASE:=2  
 
PKG_SOURCE:=$(PKG_NAME).zip  
PKG_SOURCE_URL:=http://igs.bkg.bund.de/root_ftp/NTRIP/software/  
PKG_MD5SUM:=cecff5da0173896df041bd889935fc12  
 
PKG_MAINTAINER:=Nuno Goncalves <nunojpg@gmail.com>  
 
include $(INCLUDE_DIR)/package.mk  
 
define Package/ntripserver  
SECTION:=net  
CATEGORY:=Network  
SUBMENU:=NTRIP  
TITLE:=Ntrip Version 2.0 Command Line Server  
URL:=http://igs.bkg.bund.de/ntrip/download  
endef  
 
define Package/ntripserver/description  
Ntrip Version 2.0 Command Line Server, reading from SISNeT Server, TCP/UDP IP Port, Serial port, or NtripCaster to support an Ntrip Version 1.0 or 2.0 Caster  
endef  
 
MAKE_FLAGS += \  
OPTS="$(TARGET_CFLAGS)"  
 
define Build/Prepare  
mkdir -p $(PKG_BUILD_DIR)  
unzip $(DL_DIR)/$(PKG_SOURCE) -d $(PKG_BUILD_DIR)  
endef  
 
define Package/ntripserver/install  
$(INSTALL_DIR) $(1)/usr/bin  
$(INSTALL_BIN) $(PKG_BUILD_DIR)/ntripserver $(1)/usr/bin/  
endef  
 
$(eval $(call BuildPackage,ntripserver))  
 
file:a/net/sshtunnel/Makefile (deleted)
#  
# Copyright (C) 2010-2011 OpenWrt.org  
# Copyright (C) 2010 segal.di.ubi.pt  
#  
# This is free software, licensed under the GNU General Public License v2.  
# See /LICENSE for more information.  
#  
 
include $(TOPDIR)/rules.mk  
 
PKG_NAME:=sshtunnel  
PKG_VERSION:=3  
PKG_RELEASE:=3  
 
PKG_MAINTAINER:=Nuno Goncalves <nunojpg@gmail.com>  
 
include $(INCLUDE_DIR)/package.mk  
 
define Package/sshtunnel  
SECTION:=net  
CATEGORY:=Network  
SUBMENU:=SSH  
TITLE:=Manages Local and Remote openssh ssh(1) tunnels  
DEPENDS:=+openssh-client  
endef  
 
define Package/sshtunnel/description  
Creates openssh ssh(1) Local and Remote tunnels configured in UCI file. Can be used to allow remote connections, possibly over NATed connections or without public IP/DNS  
endef  
 
define Package/sshtunnel/conffiles  
/etc/config/sshtunnel  
endef  
 
define Build/Compile  
endef  
 
define Package/sshtunnel/install  
$(INSTALL_DIR) $(1)/etc/init.d  
$(INSTALL_BIN) ./files/sshtunnel.init $(1)/etc/init.d/sshtunnel  
$(INSTALL_DIR) $(1)/usr/bin  
$(INSTALL_BIN) ./files/sshtunnel.sh $(1)/usr/bin/  
$(INSTALL_DIR) $(1)/etc/config  
$(INSTALL_DATA) ./files/uci_sshtunnel $(1)/etc/config/sshtunnel  
endef  
 
$(eval $(call BuildPackage,sshtunnel))  
 
#!/bin/sh /etc/rc.common  
 
START=99  
STOP=01  
 
PIDFILE="/tmp/run/sshtunnel"  
 
 
append_params() {  
local p; local v; local args;  
for p in $*; do  
eval "v=\$$p"  
[ -n "$v" ] && args="$args -o $p=$v"  
done  
 
ARGS_options="${args# *}"  
}  
 
append_string() {  
local varname="$1"; local add="$2"; local separator="${3:- }"; local actual  
eval "actual=\$$varname"  
 
new="${actual:+$actual$separator}$add"  
eval "$varname=\$new"  
}  
 
load_tunnelR() {  
config_get section_server $1 server  
[ "$server" = "$section_server" ] || return 0 # continue to read next section if this is not for the current server  
let count++ # count nr of valid sections to make sure there are at least one  
 
config_get remoteaddress $1 remoteaddress "*"  
config_get remoteport $1 remoteport  
config_get localaddress $1 localaddress  
config_get localport $1 localport  
 
[ "$remoteport" -gt 0 ] || append_string "error" "[tunnelR: $1]remoteport must be a positive integer" "; "  
[ "$localport" -gt 0 ] || append_string "error" "[tunnelR: $1]localport must be a positive integer" "; "  
[ -n "$error" ] && return 1  
 
append_string "ARGS_tunnels" "-R $remoteaddress:$remoteport:$localaddress:$localport"  
}  
 
load_tunnelL() {  
config_get section_server $1 server  
[ "$server" = "$section_server" ] || return 0 # continue to read next section if this is not for the current server  
let count++ # count nr of valid sections to make sure there are at least one  
 
config_get localaddress $1 localaddress "*"  
config_get localport $1 localport  
config_get remoteaddress $1 remoteaddress  
config_get remoteport $1 remoteport  
 
[ "$remoteport" -gt 0 ] || append_string "error" "[tunnelL: $1]remoteport must be a positive integer" "; "  
[ "$localport" -gt 0 ] || append_string "error" "[tunnelL: $1]localport must be a positive integer" "; "  
[ -n "$error" ] && return 1  
 
append_string "ARGS_tunnels" "-L $localaddress:$localport:$remoteaddress:$remoteport"  
}  
 
load_tunnelD() {  
config_get section_server $1 server  
[ "$server" = "$section_server" ] || return 0 # continue to read next section if this is not for the current server  
let count++ # count nr of valid sections to make sure there are at least one  
 
config_get localaddress $1 localaddress "*"  
config_get localport $1 localport  
 
[ "$remoteport" -gt 0 ] || append_string "error" "[tunnelD: $1]remoteport must be a positive integer" "; "  
[ "$localport" -gt 0 ] || append_string "error" "[tunnelD: $1]localport must be a positive integer" "; "  
[ -n "$error" ] && return 1  
 
append_string "ARGS_tunnels" "-D $localaddress:$localport"  
}  
 
load_tunnelW() {  
config_get section_server $1 server  
[ "$server" = "$section_server" ] || return 0 # continue to read next section if this is not for the current server  
let count++ # count nr of valid sections to make sure there are at least one  
 
config_get localdev $1 localdev "*"  
config_get remotedev $1 remotedev "*"  
config_get vpntype $1 vpntype "*"  
 
[ "$vpntype" == "ethernet" ] || [ "$vpntype" == "point-to-point" ] || append_string "error" "[tunnelW: $1] vpntype must be \"ethernet\" (tap) or \"pointopoint\" (tun)" "; "  
[ "$localdev" == "any" ] || [ "$localdev" -ge 0 ] || append_string "error" "[tunnelW: $1] localdev must be an integer or \"any\"" "; "  
[ "$remotedev" == "any" ] || [ "$remotedev" -ge 0 ] || append_string "error" "[tunnelW: $1] remotedev must be an integer or \"any\"" "; "  
[ "$user" == "root" ] || logger -p user.warn -t "sshtunnel" "warning: root is required unless the tunnel device has been created manually"  
[ -n "$error" ] && return 1  
 
append_string "ARGS_tunnels" "-w $localdev:$remotedev -o Tunnel=$vpntype"  
}  
 
load_server() {  
server="$1"  
 
config_get user $1 user  
config_get hostname $1 hostname  
config_get port $1 port "22"  
config_get retrydelay $1 retrydelay "60"  
config_get PKCS11Provider $1 PKCS11Provider  
config_get CheckHostIP $1 CheckHostIP  
config_get Compression $1 Compression  
config_get CompressionLevel $1 CompressionLevel  
config_get IdentityFile $1 IdentityFile  
config_get LogLevel $1 LogLevel  
config_get ServerAliveCountMax $1 ServerAliveCountMax  
config_get ServerAliveInterval $1 ServerAliveInterval  
config_get StrictHostKeyChecking $1 StrictHostKeyChecking  
config_get TCPKeepAlive $1 TCPKeepAlive  
config_get VerifyHostKeyDNS $1 VerifyHostKeyDNS  
 
error=""  
[ -n "$user" ] \  
|| append_string "error" "user is not set" "; "  
[ -n "$hostname" ] \  
|| append_string "error" "hostname is not set" "; "  
[ "$retrydelay" -ge 1 ] \  
|| append_string "error" "retrydelay must be a positive integer" "; "  
[ -z "$PKCS11Provider" -o -f "$PKCS11Provider" ] \  
|| append_string "error" "PKCS11Provider must be a pkcs11 shared library accessible" "; "  
[ -z "$CheckHostIP" -o "$CheckHostIP"="yes" -o "$CheckHostIP"="no" ] \  
|| append_string "error" "CheckHostIP must be 'yes' or 'no'" "; "  
[ -z "$Compression" -o "$Compression"="yes" -o "$Compression"="no" ] \  
|| append_string "error" "Compression must be 'yes' or 'no'" "; "  
[ -z "$CompressionLevel" ] || [ "$CompressionLevel" -ge 1 -a "$CompressionLevel" -le 9 ] \  
|| append_string "error" "CompressionLevel must be between 1 and 9" "; "  
[ -z "$IdentityFile" -o -f "$IdentityFile" ] \  
|| append_string "error" "IdentityFile $IdentityFile not accessible" "; "  
[ -z "$LogLevel" -o "$LogLevel" = "QUIET" -o "$LogLevel" = "FATAL" -o "$LogLevel" = "ERROR" -o \  
"$LogLevel" = "INFO" -o "$LogLevel" = "VERBOSE" -o "$LogLevel" = "DEBUG" -o \  
"$LogLevel" = "DEBUG1" -o "$LogLevel" = "DEBUG2" -o "$LogLevel" = "DEBUG3" ] \  
|| append_string "error" "LogLevel is invalid" "; "  
[ -z "$ServerAliveCountMax" ] || [ "$ServerAliveCountMax" -ge 1 ] \  
|| append_string "error" "ServerAliveCountMax must be greater or equal than 1" "; "  
[ -z "$ServerAliveInterval" ] || [ "$ServerAliveInterval" -ge 0 ] \  
|| append_string "error" "ServerAliveInterval must be greater or equal than 0" "; "  
[ -z "$StrictHostKeyChecking" -o "$StrictHostKeyChecking" = "yes" -o "$StrictHostKeyChecking" = "ask" -o "$StrictHostKeyChecking" = "no" ] \  
|| append_string "error" "StrictHostKeyChecking must be 'yes', 'ask' or 'no'" "; "  
[ -z "$TCPKeepAlive" -o "$TCPKeepAlive" = "yes" -o "$TCPKeepAlive" = "no" ] \  
|| append_string "error" "TCPKeepAlive must be 'yes' or 'no'" "; "  
[ -z "$VerifyHostKeyDNS" -o "$VerifyHostKeyDNS" = "yes" -o "$VerifyHostKeyDNS" = "no" ] \  
|| append_string "error" "VerifyHostKeyDNS must be 'yes' or 'no'" "; "  
 
[ -n "$error" ] && { logger -p user.err -t "sshtunnel" "tunnels to $server not started - $error"; return; }  
 
 
ARGS=""  
ARGS_options=""  
ARGS_tunnels=""  
 
count=0  
config_foreach load_tunnelR tunnelR && config_foreach load_tunnelL tunnelL && config_foreach load_tunnelD tunnelD  
[ -n "$error" ] && { logger -p user.err -t "sshtunnel" "tunnels to $server not started - $error"; return; }  
[ "$count" -eq 0 ] && { logger -p user.err -t "sshtunnel" "tunnels to $server not started - no tunnels defined"; return; }  
 
append_params CheckHostIP Compression CompressionLevel IdentityFile LogLevel PKCS11Provider ServerAliveCountMax ServerAliveInterval StrictHostKeyChecking TCPKeepAlive VerifyHostKeyDNS  
ARGS="$ARGS_options -o ExitOnForwardFailure=yes -o BatchMode=yes -nN $ARGS_tunnels -p $port $user@$hostname"  
 
/usr/bin/sshtunnel.sh "$ARGS" "$retrydelay" "$server" &  
echo $! >> "${PIDFILE}.pids"  
logger -p user.info -t "sshtunnel" "started tunnels to $server (pid=$!;retrydelay=$retrydelay)"  
}  
 
stop() {  
if [ -f "$PIDFILE".pids ]  
then  
logger -p user.info -t "sshtunnel" "stopping all tunnels"  
 
while read pid  
do  
kill "$pid" # kill mother process first  
 
[ -f "${PIDFILE}_${pid}.pid" ] && { # if ssh was running, kill it also (mother process could be in retry wait)  
start-stop-daemon -K -p "${PIDFILE}_${pid}.pid"  
rm "${PIDFILE}_${pid}.pid"  
}  
 
logger -p daemon.info -t "sshtunnel[$pid]" "tunnel stopped"  
 
done < "${PIDFILE}.pids"  
 
rm "${PIDFILE}.pids"  
 
logger -p user.info -t "sshtunnel" "all tunnels stopped"  
else  
logger -p user.info -t "sshtunnel" "no tunnels running"  
fi  
}  
 
start() {  
[ -f "${PIDFILE}.pids" ] && stop  
 
config_load sshtunnel  
if [ -n "$(uci show sshtunnel.@server[0])" ] # at least one server section exists  
then  
logger -p user.info -t "sshtunnel" "starting all tunnels"  
config_foreach load_server server  
logger -p user.info -t "sshtunnel" "all tunnels started"  
else  
logger -p user.info -t "sshtunnel" "no servers defined"  
fi  
}  
 
#!/bin/sh  
 
PIDFILE="/tmp/run/sshtunnel"  
 
args="$1"  
retrydelay="$2"  
server="$3"  
 
while true  
do  
logger -p daemon.info -t "sshtunnel[$$][$server]" "connection started"  
 
start-stop-daemon -S -p "${PIDFILE}_${$}.pid" -mx ssh -- $args &>/tmp/log/sshtunnel_$$  
 
logger -p daemon.err -t "sshtunnel[$$][$server]" < /tmp/log/sshtunnel_$$  
rm /tmp/log/sshtunnel_$$  
logger -p daemon.info -t "sshtunnel[$$][$server]" "ssh exited with code $?, retrying in $retrydelay seconds"  
rm "${PIDFILE}_${$}.pid"  
 
sleep "$retrydelay" & wait  
done  
 
#  
# password authentication is not possible, public key authentication must be used.  
# set "option IdentityFile" to he file from which the identity (private key) for RSA or DSA authentication is read.  
# The default is ~/.ssh/identity for protocol version 1, and ~/.ssh/id_rsa and ~/.ssh/id_dsa for protocol version 2.  
# ssh will also try to load certificate information from the filename obtained by appending -cert.pub to identity filenames.  
#  
 
#config server disney  
# option user mourinho  
# option hostname server.disney.com  
# option port 22  
# option retrydelay 1  
# option CheckHostIP yes  
# option Compression no  
# option CompressionLevel 6  
# option IdentityFile ~/.ssh/id_rsa  
# option LogLevel INFO  
# option PKCS11Provider /lib/pteidpkcs11.so  
# option ServerAliveCountMax 3  
# option ServerAliveInterval 0  
# option StrictHostKeyChecking ask  
# option TCPKeepAlive yes  
# option VerifyHostKeyDNS yes  
 
# tunnelR(emote) - when the connection will be initiated to the R(emote) endpoint at  
# remoteaddress:remoteport and then forwarded to localaddress:localport  
#  
#config tunnelR http  
# option server disney  
# option remoteaddress *  
# option remoteport 9009  
# option localaddress 192.168.1.13  
# option localport 80  
 
# tunnelL(ocal) - when the connection will be initiated to the L(ocal) endpoint at  
# localaddress:localport and then forwarded to remoteaddress:remoteport  
#  
#config tunnelL test  
# option server disney  
# option localaddress *  
# option localport 1022  
# option remoteaddress secretserver.disney.com  
# option remoteport 22  
 
# tunnelD(ynamic) - when the connection will be initiated with the SOCKS4 or SOCKS5 protocol  
# to the local endpoint at localaddress:localport and then forwarded over the remote host  
#  
#config tunnelD proxy  
# option server disney  
# option localaddress *  
# option localport 4055  
 
# tunnelW - creates TUN/TAP devices on client and server to establish a VPN tunnel between them  
# vpntypes:  
# point-to-point = TUN  
# ethernet = TAP  
#  
#config tunnelW proxy  
# option server disney  
# option vpntype point-to-point|ethernet  
# option localdev any|0|1|2|...  
# option remotedev any|0|1|2|...  
 
 
file:a/net/tor/Makefile (deleted)
#  
# Copyright (C) 2008-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:=tor  
PKG_VERSION:=0.2.4.22  
PKG_RELEASE:=1  
 
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz  
PKG_SOURCE_URL:=https://www.torproject.org/dist \  
https://archive.torproject.org/tor-package-archive  
PKG_MD5SUM:=5a7eee0d9df87233255d78b25c6f8270  
 
PKG_BUILD_DEPENDS:=libminiupnpc libnatpmp  
PKG_INSTALL:=1  
 
include $(INCLUDE_DIR)/package.mk  
 
define Package/tor/Default  
SECTION:=net  
CATEGORY:=Network  
URL:=https://www.torproject.org/  
endef  
 
define Package/tor/Default/description  
Tor is a toolset for a wide range of organizations and people that want to  
improve their safety and security on the Internet. Using Tor can help you  
anonymize web browsing and publishing, instant messaging, IRC, SSH, and  
more. Tor also provides a platform on which software developers can build  
new applications with built-in anonymity, safety, and privacy features.  
endef  
 
define Package/tor  
$(call Package/tor/Default)  
TITLE:=An anonymous Internet communication system  
DEPENDS:=+libevent2 +libopenssl +libpthread +librt +SSP_SUPPORT:libssp  
endef  
 
define Package/tor/description  
$(call Package/tor/Default/description)  
This package contains the tor daemon.  
endef  
 
define Package/tor-fw-helper  
$(call Package/tor/Default)  
TITLE:=Firewall helper for tor  
DEPENDS:=+tor +libminiupnpc +libnatpmp  
endef  
 
define Package/tor-fw-helper/description  
$(call Package/tor/Default/description)  
This package contains a helper for automatically configuring port forwarding.  
endef  
 
define Package/tor-geoip  
$(call Package/tor/Default)  
TITLE:=GeoIP db for tor  
DEPENDS:=+tor  
endef  
 
define Package/tor-geoip/description  
$(call Package/tor/Default/description)  
This package contains a GeoIP database mapping IP addresses to countries.  
endef  
 
define Package/tor/conffiles  
/etc/tor/torrc  
endef  
 
CONFIGURE_ARGS += \  
--with-libevent-dir="$(STAGING_DIR)/usr" \  
--with-ssl-dir="$(STAGING_DIR)/usr" \  
--enable-upnp \  
--with-libminiupnpc-dir="$(STAGING_DIR)/usr" \  
--enable-nat-pmp \  
--with-libnatpmp-dir="$(STAGING_DIR)/usr" \  
--disable-asciidoc  
 
ifneq ($(CONFIG_SSP_SUPPORT),y)  
CONFIGURE_ARGS += \  
--disable-gcc-hardening  
MAKE_FLAGS += \  
CFLAGS="$(TARGET_CFLAGS)"  
else  
MAKE_FLAGS += \  
CFLAGS="$(TARGET_CFLAGS) -fPIC"  
endif  
 
CONFIGURE_VARS += \  
CROSS_COMPILE="yes"  
 
define Package/tor/install  
$(INSTALL_DIR) $(1)/usr/sbin  
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/tor $(1)/usr/sbin/  
$(INSTALL_DIR) $(1)/etc/init.d  
$(INSTALL_BIN) ./files/tor.init $(1)/etc/init.d/tor  
$(INSTALL_DIR) $(1)/etc/tor  
$(INSTALL_CONF) $(PKG_INSTALL_DIR)/etc/tor/torrc.sample $(1)/etc/tor/torrc  
endef  
 
define Package/tor-fw-helper/install  
$(INSTALL_DIR) $(1)/usr/bin  
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/tor-fw-helper $(1)/usr/bin/  
endef  
 
define Package/tor-geoip/install  
$(INSTALL_DIR) $(1)/usr/share/tor  
$(CP) $(PKG_INSTALL_DIR)/usr/share/tor/geoip $(1)/usr/share/tor/  
endef  
 
$(eval $(call BuildPackage,tor))  
$(eval $(call BuildPackage,tor-fw-helper))  
$(eval $(call BuildPackage,tor-geoip))  
 
file:a/net/tor/files/tor.init (deleted)
#!/bin/sh /etc/rc.common  
# Copyright (C) 2006-2011 OpenWrt.org  
 
START=50  
STOP=50  
 
USE_PROCD=1  
 
start_service() {  
user_exists tor 52 || user_add tor 52 52 /var/lib/tor  
group_exists tor 52 || group_add tor 52  
[ -f /var/run/tor.pid ] || {  
touch /var/run/tor.pid  
chown tor:tor /var/run/tor.pid  
}  
[ -d /var/lib/tor ] || {  
mkdir -m 0755 -p /var/lib/tor  
chmod 0700 /var/lib/tor  
chown tor:tor /var/lib/tor  
}  
[ -d /var/log/tor ] || {  
mkdir -m 0755 -p /var/log/tor  
chown tor:tor /var/log/tor  
}  
procd_open_instance  
procd_set_param command /usr/sbin/tor --runasdaemon 0  
procd_close_instance  
}  
 
--- a/src/config/torrc.sample.in  
+++ b/src/config/torrc.sample.in  
@@ -45,11 +45,11 @@  
## Uncomment this to start the process in the background... or use  
## --runasdaemon 1 on the command line. This is ignored on Windows;  
## see the FAQ entry if you want Tor to run as an NT service.  
-#RunAsDaemon 1  
+RunAsDaemon 1  
 
## The directory for keeping all the keys/etc. By default, we store  
## things in $HOME/.tor on Unix, and in Application Data\tor on Windows.  
-#DataDirectory @LOCALSTATEDIR@/lib/tor  
+DataDirectory @LOCALSTATEDIR@/lib/tor  
 
## The port on which Tor will listen for local connections from Tor  
## controller applications, as documented in control-spec.txt.  
@@ -187,3 +187,4 @@  
## address manually to your friends, uncomment this line:  
#PublishServerDescriptor 0  
 
+User tor  
 
file:a/utils/open2300/Makefile (deleted)
#  
# Copyright (C) 2010 segal.ubi.pt  
# Copyright (C) 2014 nunojpg@gmail.com  
#  
# This is free software, licensed under the GNU General Public License v2.  
# See /LICENSE for more information.  
#  
 
include $(TOPDIR)/rules.mk  
 
PKG_NAME:=open2300  
PKG_VERSION:=1.12  
PKG_RELEASE:=3  
 
PKG_SOURCE_PROTO:=svn  
PKG_SOURCE_URL:=http://www.lavrsen.dk/svn/open2300/trunk  
PKG_SOURCE_VERSION:=r12  
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz  
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)  
 
PKG_MAINTAINER:=Nuno Goncalves <nunojpg@gmail.com>  
 
include $(INCLUDE_DIR)/package.mk  
 
define Package/open2300  
SECTION:=utils  
CATEGORY:=Utilities  
TITLE:=WS23XX weather station utilities  
URL:=http://www.lavrsen.dk/foswiki/bin/view/Open2300  
endef  
 
define Package/open2300/description  
This is an utility suite used to communicate with and collect data from a WS23XX wheather station.  
endef  
 
MAKE_FLAGS += \  
CFLAGS="$(TARGET_CFLAGS) -DVERSION=\"$(PKG_VERSION)\""  
 
define Package/open2300/install  
$(INSTALL_DIR) $(1)/usr/bin  
$(INSTALL_BIN) $(PKG_BUILD_DIR)/bin2300 $(1)/usr/bin/  
$(INSTALL_BIN) $(PKG_BUILD_DIR)/cw2300 $(1)/usr/bin/  
$(INSTALL_BIN) $(PKG_BUILD_DIR)/dump2300 $(1)/usr/bin/  
$(INSTALL_BIN) $(PKG_BUILD_DIR)/fetch2300 $(1)/usr/bin/  
$(INSTALL_BIN) $(PKG_BUILD_DIR)/histlog2300 $(1)/usr/bin/  
$(INSTALL_BIN) $(PKG_BUILD_DIR)/history2300 $(1)/usr/bin/  
$(INSTALL_BIN) $(PKG_BUILD_DIR)/interval2300 $(1)/usr/bin/  
$(INSTALL_BIN) $(PKG_BUILD_DIR)/light2300 $(1)/usr/bin/  
$(INSTALL_BIN) $(PKG_BUILD_DIR)/log2300 $(1)/usr/bin/  
$(INSTALL_BIN) $(PKG_BUILD_DIR)/minmax2300 $(1)/usr/bin/  
$(INSTALL_BIN) $(PKG_BUILD_DIR)/open2300 $(1)/usr/bin/  
$(INSTALL_BIN) $(PKG_BUILD_DIR)/wu2300 $(1)/usr/bin/  
$(INSTALL_BIN) $(PKG_BUILD_DIR)/xml2300 $(1)/usr/bin/  
 
$(INSTALL_DIR) $(1)/etc  
$(INSTALL_DATA) ./files/open2300.conf $(1)/etc/  
 
$(INSTALL_DIR) $(1)/usr/lib  
$(INSTALL_BIN) $(PKG_BUILD_DIR)/lib2300.so.1.11 $(1)/usr/lib/  
ln -sf /usr/lib/lib2300.so.1.11 $(1)/usr/lib/lib2300.so  
endef  
 
$(eval $(call BuildPackage,open2300))  
 
# open2300.conf  
#  
# Configuration files for open2300 weather station tools  
#  
# Default locations in which the programs will search for this file:  
# Programs search in this sequence:  
# 1. Path to config file including filename given as parameter (not supported by all tools)  
# 2. ./open2300.conf (current working directory)  
# 3. /jffs/etc/open2300.conf (typical DD-WRT location)  
# 4. /etc/open2300.conf (typical Linux location)  
#  
# All names are case sensitive!!!  
 
 
# Set to your serial port and time zone  
# For Windows use COM1, COM2, COM2 etc  
# For Linux use /dev/ttyS0, /dev/ttyS1 etc  
 
SERIAL_DEVICE /dev/tts/1 # /dev/ttyS0, /dev/ttyS1, COM1, COM2 etc  
TIMEZONE 1 # Hours Relative to UTC. East is positive, west is negative  
 
 
# Units of measure (set them to your preference)  
# The units of measure are ignored by wu2300 and cw2300 because both requires specific units  
 
WIND_SPEED m/s # select MPH (miles/hour), m/s, or km/h  
TEMPERATURE C # Select C or F  
RAIN mm # Select mm or IN  
PRESSURE hPa # Select hPa, mb or INHG  
 
 
#### Citizens Weather variables (used only by cw2300)  
# Format for latitude is  
# [2 digit degrees][2 digit minutes].[2 decimals minutes - NOT seconds][N for north or S for south]  
# Format for longitude is  
# [3 digit degrees][2 digit minutes].[2 decimals minutes - NOT seconds][E for east or W for west]  
# Use leading zeros to get the format ####.##N (lat) and #####.##E (long)  
 
CITIZEN_WEATHER_ID CW0000 # CW0000 should be replaced by HAM call or actual CW number  
CITIZEN_WEATHER_LATITUDE 5540.12N # DDMM.mmN or S - example 55 deg, 40.23 minutes north  
CITIZEN_WEATHER_LONGITUDE 01224.60E # DDDMM.mmE or W - example 12 deg, 24.60 minutes east  
 
APRS_SERVER rotate.aprs.net 14580 # These are the APRS servers and ports for  
APRS_SERVER first.aprs.net 14580 # Citizens Weather reporting.  
APRS_SERVER second.aprs.net 14580 # They they are tried in the entered order  
APRS_SERVER third.aprs.net 14580 # you may enter up to 5 alternate servers  
 
 
#### WEATHER UNDERGROUND variables (used only by wu2300)  
 
WEATHER_UNDERGROUND_ID WUID # ID received from Weather Underground  
WEATHER_UNDERGROUND_PASSWORD WUPASSWORD # Password for Weather Underground  
 
 
### MYSQL Settings (only used by mysql2300)  
 
#MYSQL_HOST localhost # Localhost or IP address/host name  
#MYSQL_USERNAME open2300 # Name of the MySQL user that has access to the database  
#MYSQL_PASSWORD mysql2300 # Password for the MySQL user  
#MYSQL_DATABASE open2300 # Named of your database  
#MYSQL_PORT 0 # TCP/IP Port number. Zero means default  
 
#PGSQL_CONNECT hostaddr='127.0.0.1'dbname='open2300'user='postgres'password='sql' # Connection string  
#PGSQL_TABLE weather # Table name  
#PGSQL_STATION open2300 # Unique station id  
 
--- a/Makefile  
+++ b/Makefile  
@@ -15,87 +15,82 @@  
prefix = /usr/local  
exec_prefix = ${prefix}  
bindir = ${exec_prefix}/bin  
+libdir = ${prefix}/lib  
 
#########################################  
 
CC = gcc  
-OBJ = open2300.o rw2300.o linux2300.o win2300.o  
-LOGOBJ = log2300.o rw2300.o linux2300.o win2300.o  
-FETCHOBJ = fetch2300.o rw2300.o linux2300.o win2300.o  
-WUOBJ = wu2300.o rw2300.o linux2300.o win2300.o  
-CWOBJ = cw2300.o rw2300.o linux2300.o win2300.o  
-DUMPOBJ = dump2300.o rw2300.o linux2300.o win2300.o  
-HISTOBJ = history2300.o rw2300.o linux2300.o win2300.o  
-HISTLOGOBJ = histlog2300.o rw2300.o linux2300.o win2300.o  
-DUMPBINOBJ = bin2300.o rw2300.o linux2300.o win2300.o  
-XMLOBJ = xml2300.o rw2300.o linux2300.o win2300.o  
-PGSQLOBJ = pgsql2300.o rw2300.o linux2300.o win2300.o  
-LIGHTOBJ = light2300.o rw2300.o linux2300.o win2300.o  
-INTERVALOBJ = interval2300.o rw2300.o linux2300.o win2300.o  
-MINMAXOBJ = minmax2300.o rw2300.o linux2300.o win2300.o  
-MYSQLHISTLOGOBJ = mysqlhistlog2300.o rw2300.o linux2300.o win2300.o  
+LIB = lib2300  
+LIB_C = rw2300.c linux2300.c  
+LIBOBJ = rw2300.o linux2300.o  
 
VERSION = 1.11  
 
CFLAGS = -Wall -O3 -DVERSION=\"$(VERSION)\"  
-CC_LDFLAGS = -lm  
-CC_WINFLAG =  
-# For Windows - comment the two line above and un-comment the two lines below.  
-#CC_LDFLAGS = -lm -lwsock32  
-#CC_WINFLAG = -mwindows  
+CC_LDFLAGS = -L. -lm -l2300  
+LFLAGS = -shared -Wl,-soname  
INSTALL = install  
+MAKE_EXEC = $(CC) $(CFLAGS) $@.c -o $@ $(CC_LDFLAGS)  
 
####### Build rules  
 
-all: open2300 dump2300 log2300 fetch2300 wu2300 cw2300 history2300 histlog2300 bin2300 xml2300 light2300 interval2300 minmax2300 mysql2300 mysqlhistlog2300  
+all: open2300 dump2300 log2300 fetch2300 wu2300 cw2300 history2300 histlog2300 bin2300 xml2300 light2300 interval2300 minmax2300 #mysql2300 mysqlhistlog2300  
 
-open2300 : $(OBJ)  
- $(CC) $(CFLAGS) -o $@ $(OBJ) $(CC_LDFLAGS)  
-  
-dump2300 : $(DUMPOBJ)  
- $(CC) $(CFLAGS) -o $@ $(DUMPOBJ) $(CC_LDFLAGS)  
+lib2300 :  
+ $(CC) -c -fPIC $(CFLAGS) $(LIB_C)  
+ $(CC) $(LFLAGS),$@.so -o $@.so.$(VERSION) $(LIBOBJ)  
+ ln -sf $@.so.$(VERSION) $@.so  
+  
+open2300 : $(LIB)  
+ $(MAKE_EXEC)  
 
-log2300 : $(LOGOBJ)  
- $(CC) $(CFLAGS) -o $@ $(LOGOBJ) $(CC_LDFLAGS) $(CC_WINFLAG)  
+dump2300 : $(LIB)  
+ $(MAKE_EXEC)  
 
-fetch2300 : $(FETCHOBJ)  
- $(CC) $(CFLAGS) -o $@ $(FETCHOBJ) $(CC_LDFLAGS)  
+log2300 : $(LIB)  
+ $(MAKE_EXEC)  
 
-wu2300 : $(WUOBJ)  
- $(CC) $(CFLAGS) -o $@ $(WUOBJ) $(CC_LDFLAGS) $(CC_WINFLAG)  
+fetch2300 : $(LIB)  
+ $(MAKE_EXEC)  
+  
+srv2300 : $(LIB)  
+ $(MAKE_EXEC)  
+  
+wu2300 : $(LIB)  
+ $(MAKE_EXEC)  
 
-cw2300 : $(CWOBJ)  
- $(CC) $(CFLAGS) -o $@ $(CWOBJ) $(CC_LDFLAGS) $(CC_WINFLAG)  
+cw2300 : $(LIB)  
+ $(MAKE_EXEC)  
 
-history2300 : $(HISTOBJ)  
- $(CC) $(CFLAGS) -o $@ $(HISTOBJ) $(CC_LDFLAGS)  
+history2300 : $(LIB)  
+ $(MAKE_EXEC)  
 
-histlog2300 : $(HISTLOGOBJ)  
- $(CC) $(CFLAGS) -o $@ $(HISTLOGOBJ) $(CC_LDFLAGS) $(CC_WINFLAG)  
+histlog2300 : $(LIB)  
+ $(MAKE_EXEC)  
 
-bin2300 : $(DUMPBINOBJ)  
- $(CC) $(CFLAGS) -o $@ $(DUMPBINOBJ) $(CC_LDFLAGS)  
+bin2300 : $(LIB)  
+ $(MAKE_EXEC)  
 
-xml2300 : $(XMLOBJ)  
- $(CC) $(CFLAGS) -o $@ $(XMLOBJ) $(CC_LDFLAGS) $(CC_WINFLAG)  
+xml2300 : $(LIB)  
+ $(MAKE_EXEC)  
 
-mysql2300:  
- $(CC) $(CFLAGS) -o mysql2300 mysql2300.c rw2300.c linux2300.c $(CC_LDFLAGS) $(CC_WINFLAG) -I/usr/include/mysql -L/usr/lib/mysql -lmysqlclient  
+mysql2300: $(LIB)  
+ $(CC) $(CFLAGS) $@.c -o $@ -I/usr/include/mysql -L/usr/lib/mysql $(CC_LDFLAGS) -lmysqlclient  
 
-pgsql2300: $(PGSQLOBJ)  
- $(CC) $(CFLAGS) -o $@ $(PGSQLOBJ) $(CC_LDFLAGS) $(CC_WINFLAG) -I/usr/include/pgsql -L/usr/lib/pgsql -lpq  
+pgsql2300: $(LIB)  
+ $(CC) $(CFLAGS) $@.c -o $@ -I/usr/include/pgsql -L/usr/lib/pgsql $(CC_LDFLAGS) -lpq  
 
-light2300: $(LIGHTOBJ)  
- $(CC) $(CFLAGS) -o $@ $(LIGHTOBJ) $(CC_LDFLAGS)  
+light2300: $(LIB)  
+ $(MAKE_EXEC)  
 
-interval2300: $(INTERVALOBJ)  
- $(CC) $(CFLAGS) -o $@ $(INTERVALOBJ) $(CC_LDFLAGS)  
+interval2300: $(LIB)  
+ $(MAKE_EXEC)  
 
-minmax2300: $(MINMAXOBJ)  
- $(CC) $(CFLAGS) -o $@ $(MINMAXOBJ) $(CC_LDFLAGS) $(CC_WINFLAG)  
+minmax2300: $(LIB)  
+ $(MAKE_EXEC)  
 
-mysqlhistlog2300 :  
- $(CC) $(CFLAGS) -o mysqlhistlog2300 mysqlhistlog2300.c rw2300.c linux2300.c $(CC_LDFLAGS) $(CC_WINFLAG) -I/usr/include/mysql -L/usr/lib/mysql -lmysqlclient  
+mysqlhistlog2300 : $(LIB)  
+ $(CC) $(CFLAGS) $@.c -o $@ -I/usr/include/mysql -L/usr/lib/mysql $(CC_LDFLAGS) -lmysqlclient  
 
 
install:  
 
#  
# Copyright (C) 2010 segal.di.ubi.pt  
#  
# This is free software, licensed under the GNU General Public License v2.  
# See /LICENSE for more information.  
#  
 
include $(TOPDIR)/rules.mk  
 
PKG_NAME:=restorefactory  
PKG_VERSION:=1  
PKG_RELEASE:=6  
 
PKG_MAINTAINER:=Nuno Goncalves <nunojpg@gmail.com>  
 
include $(INCLUDE_DIR)/package.mk  
 
define Package/restorefactory  
SECTION:=utils  
CATEGORY:=Utilities  
TITLE:=Mimic original functionality of the reset button  
endef  
 
define Package/restorefactory/description  
RestoreFactory handles the reset button event and issues a "firstboot" command.  
Button and wait time can be configured with a UCI file.  
endef  
 
define Build/Compile  
endef  
 
define Package/restorefactory/install  
$(INSTALL_DIR) $(1)/etc/hotplug.d/button  
$(INSTALL_BIN) ./files/hotplug_restorefactory $(1)/etc/hotplug.d/button/50-restorefactory  
$(INSTALL_DIR) $(1)/etc/uci-defaults  
$(INSTALL_BIN) ./files/uci_defaults_restorefactory $(1)/etc/uci-defaults/50-restorefactory  
endef  
 
$(eval $(call BuildPackage,restorefactory))  
 
#!/bin/sh  
 
system_config() {  
config_get button "$1" button "reset"  
config_get action "$1" action "pressed"  
config_get timeout "$1" timeout "5"  
}  
 
config_load system  
config_foreach system_config restorefactory  
 
[ "$BUTTON" = "$button" ] && {  
 
[ -f /tmp/run/restorefactory.pid ] && read PID < /tmp/run/restorefactory.pid && kill $PID && rm /tmp/run/restorefactory.pid && logger -p user.info -t "restorefactory" "restore to factory defaults aborted"  
 
[ "$ACTION" = "$action" ] && {  
 
if [ "$timeout" -gt 0 ]  
then  
sleep "$timeout" && firstboot && reboot &  
echo $! > /tmp/run/restorefactory.pid  
logger -p user.info -t "restorefactory" "restoring to factory defaults in $timeout seconds"  
elif [ "$timeout" -eq 0 ]  
then  
firstboot && reboot &  
else  
logger -p user.info -t "restorefactory" "invalid timeout value ($timeout)"  
fi  
}  
}  
 
 
#!/bin/sh  
 
uci -q show system.@restorefactory[0] || {  
uci add system restorefactory  
uci set system.@restorefactory[0].button=reset  
uci set system.@restorefactory[0].action=pressed  
uci set system.@restorefactory[0].timeout=5  
uci commit  
}  
 
 
file:a/utils/rtklib/Makefile (deleted)
#  
# Copyright (C) 2014 nunojpg@gmail.com  
#  
# This is free software, licensed under the GNU General Public License v2.  
# See /LICENSE for more information.  
 
include $(TOPDIR)/rules.mk  
 
PKG_NAME:=rtklib  
PKG_VERSION:=2.4.2_p4  
PKG_RELEASE:=$(PKG_SOURCE_VERSION)  
 
PKG_SOURCE_PROTO:=git  
PKG_SOURCE_URL:=git://github.com/tomojitakasu/RTKLIB.git  
PKG_SOURCE_VERSION:=4464e1259f34ba8a8b71f0e5f078faf62e1d9ced  
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz  
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)  
 
PKG_MAINTAINER:=Nuno Goncalves <nunojpg@gmail.com>  
 
include $(INCLUDE_DIR)/package.mk  
 
define Package/rtklib/default  
SUBMENU:=RTKLIB Suite  
SECTION:=utils  
CATEGORY:=Utilities  
URL:=http://www.rtklib.com/  
DEPENDS:=+libpthread +librt  
endef  
 
define Package/convbin  
$(call Package/rtklib/default)  
TITLE:=RINEX Converter  
endef  
 
define Package/pos2kml  
$(call Package/rtklib/default)  
TITLE:=Solution to KML converter  
endef  
 
define Package/rnx2rtkp  
$(call Package/rtklib/default)  
TITLE:=Post-Processing Analysis  
endef  
 
define Package/rtkrcv  
$(call Package/rtklib/default)  
TITLE:=Real-Time Positioning  
endef  
 
define Package/str2str  
$(call Package/rtklib/default)  
TITLE:=Communication Server  
endef  
 
define Build/Compile  
rm -rf $(PKG_INSTALL_DIR)  
mkdir -p $(PKG_INSTALL_DIR)  
$(MAKE) -C $(PKG_BUILD_DIR)/app/convbin/gcc CC="$(TARGET_CC) $(TARGET_CFLAGS)"  
$(MAKE) -C $(PKG_BUILD_DIR)/app/pos2kml/gcc CC="$(TARGET_CC) $(TARGET_CFLAGS)"  
$(MAKE) -C $(PKG_BUILD_DIR)/app/rnx2rtkp/gcc CC="$(TARGET_CC) $(TARGET_CFLAGS)"  
$(MAKE) -C $(PKG_BUILD_DIR)/app/rtkrcv/gcc CC="$(TARGET_CC) $(TARGET_CFLAGS)"  
$(MAKE) -C $(PKG_BUILD_DIR)/app/str2str/gcc CC="$(TARGET_CC) $(TARGET_CFLAGS)"  
endef  
 
define Package/convbin/install  
$(INSTALL_DIR) $(1)/usr/bin  
$(INSTALL_BIN) $(PKG_BUILD_DIR)/app/convbin/gcc/convbin $(1)/usr/bin/  
endef  
 
define Package/pos2kml/install  
$(INSTALL_DIR) $(1)/usr/bin  
$(INSTALL_BIN) $(PKG_BUILD_DIR)/app/pos2kml/gcc/pos2kml $(1)/usr/bin/  
endef  
 
define Package/rnx2rtkp/install  
$(INSTALL_DIR) $(1)/usr/bin  
$(INSTALL_BIN) $(PKG_BUILD_DIR)/app/rnx2rtkp/gcc/rnx2rtkp $(1)/usr/bin/  
endef  
 
define Package/rtkrcv/install  
$(INSTALL_DIR) $(1)/usr/bin  
$(INSTALL_BIN) $(PKG_BUILD_DIR)/app/rtkrcv/gcc/rtkrcv $(1)/usr/bin/  
endef  
 
define Package/str2str/install  
$(INSTALL_DIR) $(1)/usr/bin  
$(INSTALL_BIN) $(PKG_BUILD_DIR)/app/str2str/gcc/str2str $(1)/usr/bin/  
endef  
 
$(eval $(call BuildPackage,convbin))  
$(eval $(call BuildPackage,pos2kml))  
$(eval $(call BuildPackage,rnx2rtkp))  
$(eval $(call BuildPackage,rtkrcv))  
$(eval $(call BuildPackage,str2str))  
 
file:a/utils/tcsh/Makefile (deleted)
#  
# Copyright (C) 2011 Nuno Goncalves <nunojpg@gmail.com>  
#  
# This is free software, licensed under the GNU General Public License v2.  
# See /LICENSE for more information.  
 
include $(TOPDIR)/rules.mk  
 
PKG_NAME:=tcsh  
PKG_VERSION:=6.17.00  
PKG_RELEASE:=1  
 
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz  
PKG_SOURCE_URL:=ftp://ftp.astron.com/pub/tcsh/  
PKG_MD5SUM:=c47de903e3d52f6824c8dd0c91eeb477  
 
PKG_MAINTAINER:=Nuno Goncalves <nunojpg@gmail.com>  
 
include $(INCLUDE_DIR)/package.mk  
 
define Package/tcsh  
SECTION:=utils  
CATEGORY:=Utilities  
TITLE:=Enhanced Berkeley UNIX C shell  
DEPENDS:=+libncurses  
URL:=http://www.tcsh.org/  
endef  
 
define Package/tcsh/description  
Tcsh is an enhanced, but completely compatible  
version of the Berkeley UNIX C shell (csh). It  
is a command language interpreter usable both  
as an interactive login shell and a shell  
script command processor. It includes a  
command-line editor, programmable word  
completion, spelling correction, a history  
mechanism, job control and a C-like syntax.  
endef  
 
define Package/tcsh/postinst  
#!/bin/sh  
grep tcsh $${IPKG_INSTROOT}/etc/shells || \  
echo "/bin/tcsh" >> $${IPKG_INSTROOT}/etc/shells  
echo "/bin/csh" >> $${IPKG_INSTROOT}/etc/shells  
endef  
 
define Package/tcsh/install  
$(INSTALL_DIR) $(1)/bin  
$(INSTALL_BIN) $(PKG_BUILD_DIR)/tcsh $(1)/bin/  
ln -sf tcsh $(1)/bin/csh  
endef  
 
$(eval $(call BuildPackage,tcsh))  
 
--- a/Makefile.in  
+++ b/Makefile.in  
@@ -365,7 +365,7 @@  
 
gethost: gethost.c sh.err.h tc.const.h sh.h  
rm -f gethost  
- ${CC} -o gethost ${LDFLAGS} ${CFLAGS} ${CPPFLAGS} ${DFLAGS} $(srcdir)/gethost.c ${LIBES} ${EXTRALIBS}  
+ gcc -o gethost -g -O2 -I. -I. -D_PATH_TCSHELL='"/usr/local/bin/tcsh"' $(srcdir)/gethost.c ${LIBES} ${EXTRALIBS}  
 
tc.defs.c: gethost host.defs  
@rm -f $@.tmp  
 
--- a/config/linux  
+++ b/config/linux  
@@ -106,6 +106,4 @@  
#endif  
#define ECHO_STYLE BOTH_ECHO  
 
-#define NLS_CATALOGS  
-  
#endif /* _h_config */  
 
#  
# Copyright (C) 2010-2013 OpenWrt.org  
# Copyright (C) 2010 segal.di.ubi.pt  
#  
# This is free software, licensed under the GNU General Public License v2.  
# See /LICENSE for more information.  
#  
 
include $(TOPDIR)/rules.mk  
 
PKG_NAME:=wifitoggle  
PKG_VERSION:=1  
PKG_RELEASE:=4  
 
PKG_MAINTAINER:=Nuno Goncalves <nunojpg@gmail.com>  
 
include $(INCLUDE_DIR)/package.mk  
 
define Package/wifitoggle  
SECTION:=utils  
CATEGORY:=Utilities  
TITLE:=Script to toggle Wi-Fi with a button and UCI config  
endef  
 
define Package/wifitoggle/description  
Very versatile script to toggle Wi-Fi with a button. Allows to set  
timeouts, persist changes after boot, and set LEDs according to the state.  
endef  
 
define Package/wifitoggle/conffiles  
/etc/config/wifitoggle  
endef  
 
define Build/Compile  
endef  
 
define Package/wifitoggle/install  
$(INSTALL_DIR) $(1)/etc/hotplug.d/button  
$(INSTALL_BIN) ./files/wifitoggle.hotplug $(1)/etc/hotplug.d/button/50-wifitoggle  
$(INSTALL_DIR) $(1)/etc/config  
$(INSTALL_DATA) ./files/wifitoggle.config $(1)/etc/config/wifitoggle  
endef  
 
$(eval $(call BuildPackage,wifitoggle))  
 
config wifitoggle  
option button 'wps'  
 
option persistent '0'  
option timer '600'  
 
option led_sysfs 'wrt160nl:amber:wps'  
option led_enable_trigger 'timer'  
option led_enable_delayon '500'  
option led_enable_delayoff '500'  
option led_disable_default '0'  
 
# /bin/sh  
 
setled() {  
if [ -e /sys/class/leds/${led_sysfs}/brightness ]  
then  
[ $led_default -eq 1 ] && echo 1 >/sys/class/leds/${led_sysfs}/brightness  
[ $led_default -eq 1 ] || echo 0 >/sys/class/leds/${led_sysfs}/brightness  
 
echo $led_trigger > /sys/class/leds/${led_sysfs}/trigger  
 
[ "$led_trigger" == "netdev" -a -n "$led_dev" ] && {  
echo $led_dev > /sys/class/leds/${led_sysfs}/device_name  
echo $led_mode > /sys/class/leds/${led_sysfs}/mode  
}  
 
[ "$led_trigger" == "timer" ] && {  
[ -n "$led_delayon" ] && echo $led_delayon > /sys/class/leds/${led_sysfs}/delay_on  
[ -n "$led_delayoff" ] && echo $led_delayoff > /sys/class/leds/${led_sysfs}/delay_off  
}  
else  
logger -p user.err -t "wifitoggle" "led: ${led_sysfs} not found"  
fi  
}  
 
load_wireless() {  
disabled="$(uci get wireless.${1}.disabled)"  
}  
 
save_wireless() {  
[ "$device" = "all" -o "$device" = "${1}" ] && {  
uci set "wireless.${1}.disabled=$disabled"  
}  
}  
 
setwifi() {  
setled  
 
config_load wireless  
config_foreach save_wireless wifi-device  
 
if ubus list network.wireless >/dev/null 2>/dev/null; then  
ubus call network reload  
else  
wifi  
fi  
}  
 
 
save_system() {  
config_get sysfs $1 sysfs  
[ "$sysfs" = "$led_sysfs" ] && {  
uci set "system.${1}.trigger=$led_trigger"  
uci set "system.${1}.dev=$led_dev"  
uci set "system.${1}.mode=$led_mode"  
uci set "system.${1}.default=$led_default"  
uci set "system.${1}.delayon=$led_delayon"  
uci set "system.${1}.delayoff=$led_delayoff"  
 
ledset=1  
}  
}  
 
commit_changes() {  
ledset=""  
 
config_load system  
config_foreach save_system led  
 
[ "$ledset" -eq 1 ] || {  
section=$(uci add system led)  
uci set "system.${section}.sysfs=$led_sysfs"  
uci set "system.${section}.trigger=$led_trigger"  
uci set "system.${section}.dev=$led_dev"  
uci set "system.${section}.mode=$led_mode"  
uci set "system.${section}.default=$led_default"  
uci set "system.${section}.delayon=$led_delayon"  
uci set "system.${section}.delayoff=$led_delayoff"  
}  
 
uci commit  
}  
 
enable() {  
 
led_trigger="$led_enable_trigger"  
led_trigger="$led_enable_trigger"  
led_dev="$led_enable_dev"  
led_mode="$led_enable_mode"  
led_default="$led_enable_default"  
led_delayon="$led_enable_delayon"  
led_delayoff="$led_enable_delayoff"  
disabled=0  
 
setwifi  
 
[ "$timer" -le 0 -a "$persistent" -eq 1 ] && commit_changes  
 
logger -p user.info -t "wifitoggle" "device($device) enabled"  
 
[ "$timer" -gt 0 ] && {  
sleep "$timer" && disable && rm /tmp/run/wirelesstoggle_${1}.pid &  
echo $! > /tmp/run/wirelesstoggle_${1}.pid  
logger -p user.info -t "wifitoggle" "auto-disable timer started($timer seconds)"  
}  
}  
 
disable() {  
 
led_trigger="$led_disable_trigger"  
led_trigger="$led_disable_trigger"  
led_dev="$led_disable_dev"  
led_mode="$led_disable_mode"  
led_default="$led_disable_default"  
led_delayon="$led_disable_delayon"  
led_delayoff="$led_disable_delayoff"  
disabled=1  
 
setwifi  
 
[ "$timer" -le 0 -a "$persistent" -eq 1 ] && commit_changes  
 
logger -p user.info -t "wifitoggle" "device($device) disabled"  
}  
 
 
load_wifitoggle() {  
config_get device $1 device "all"  
config_get button $1 button "wps"  
config_get action $1 action "pressed"  
config_get_bool persistent $1 persistent "0"  
config_get timer $1 timer "0"  
 
config_get led_sysfs $1 led_sysfs  
 
config_get led_enable_trigger $1 led_enable_trigger "none"  
config_get led_enable_dev $1 led_enable_dev  
config_get led_enable_mode $1 led_enable_mode "link"  
config_get_bool led_enable_default $1 led_enable_default "1"  
config_get led_enable_delayon $1 led_enable_delayon  
config_get led_enable_delayoff $1 led_enable_delayoff  
 
config_get led_disable_trigger $1 led_disable_trigger "none"  
config_get led_disable_dev $1 led_disable_dev  
config_get led_disable_mode $1 led_disable_mode "link"  
config_get_bool led_disable_default $1 led_disable_default "0"  
config_get led_disable_delayon $1 led_disable_delayon  
config_get led_disable_delayoff $1 led_disable_delayoff  
 
[ "$ACTION" = "$action" -a "$BUTTON" = "$button" ] && {  
 
[ -f /tmp/run/wirelesstoggle_${1}.pid ] && read PID < /tmp/run/wirelesstoggle_${1}.pid && kill $PID && rm /tmp/run/wirelesstoggle_${1}.pid  
 
if [ "$device" = "all" ]  
then  
config_load wireless  
config_foreach load_wireless wifi-device  
else  
disabled="$(uci get wireless."$device".disabled)"  
fi  
 
 
if [ "$disabled" = "1" ]  
then  
enable $1  
else  
disable  
fi  
}  
}  
 
config_load wifitoggle  
config_foreach load_wifitoggle wifitoggle  
 
comments