diff options
author | Karl Palsson <karlp@tweak.net.au> | 2018-03-06 16:57:54 +0000 |
---|---|---|
committer | Karl Palsson <karlp@etactica.com> | 2018-03-14 10:54:26 +0000 |
commit | 450577536f5abb452bda77d9619a8238c13ce613 (patch) | |
tree | addf168b61c137ff3f24f69872d49d973f62e28b | |
parent | 5f375b9131344082f331f4114707766e64d4e4d9 (diff) |
pagekitec: add new package
From the package description:
PageKite is a system for running publicly visible servers (generally
web servers) on machines without a direct connection to the Internet,
such as mobile devices or computers behind restrictive firewalls.
PageKite works around NAT, firewalls and IP-address limitations by
using a combination of tunnels and reverse proxies.
This package provides an implementation of the PageKite Protocol in C,
optimized for high-performance or embedded applications.
Signed-off-by: Karl Palsson <karlp@tweak.net.au>
-rw-r--r-- | net/pagekitec/Makefile | 104 | ||||
-rw-r--r-- | net/pagekitec/files/etc/config/pagekitec | 1 | ||||
-rwxr-xr-x | net/pagekitec/files/etc/init.d/pagekitec | 36 |
3 files changed, 141 insertions, 0 deletions
diff --git a/net/pagekitec/Makefile b/net/pagekitec/Makefile new file mode 100644 index 000000000..1abed4c70 --- /dev/null +++ b/net/pagekitec/Makefile @@ -0,0 +1,104 @@ +# +# Copyright (C) 2012-2018 Karl Palsson <karlp@tweak.net.au> +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=pagekitec +PKG_REV:=0.91.171102 +PKG_VERSION:=$(PKG_REV)C +PKG_RELEASE:=1 +PKG_LICENSE:=Apache-2.0 +PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION) +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz +PKG_SOURCE_URL:=https://github.com/pagekite/libpagekite.git +PKG_SOURCE_PROTO:=git +PKG_SOURCE_VERSION:=v$(PKG_REV) + +include $(INCLUDE_DIR)/package.mk + +PKG_FIXUP:=autoreconf +PKG_INSTALL:=1 + +CONFIGURE_ARGS += --without-java + +define Package/pagekitec/default + SECTION:=net + CATEGORY:=Network + TITLE:=Make localhost servers publicly visible. + URL:=https://pagekite.net/wiki/Floss/LibPageKite/ + MAINTAINER:= Karl Palsson <karlp@tweak.net.au> + DEPENDS:=+libopenssl +libpthread +libev +endef + +define Package/libpagekite + $(call Package/pagekitec/default) + SECTION:=libs + CATEGORY:=Libraries + TITLE+= (library) +endef + +define Package/pagekitec + $(call Package/pagekitec/default) + DEPENDS:=+libpagekite +endef + +define Package/pagekitec/default/description +PageKite is a system for running publicly visible servers (generally +web servers) on machines without a direct connection to the Internet, +such as mobile devices or computers behind restrictive firewalls. +PageKite works around NAT, firewalls and IP-address limitations by +using a combination of tunnels and reverse proxies. + +This package provides an implementation of the PageKite Protocol in C, +optimized for high-performance or embedded applications. + +endef + +define Package/libpagekite/description + $(call Package/pagekitec/default/description) + +This package contains the core library +endef + +define Package/pagekitec/description + $(call Package/pagekitec/default/description) + +This package contains a basic backend useful for exposing http/ssh servers. + +Basic UCI support for configuring this backend is also included. +endef + +define Package/pagekitec/conffiles +/etc/config/pagekitec +endef + +define Build/Configure + (cd $(PKG_BUILD_DIR); ./autogen.sh ); + $(call Build/Configure/Default) +endef + +#this installs files into ./staging_dir/. so that you can cross compile from the host +define Build/InstallDev + $(INSTALL_DIR) $(1)/usr/{include,lib/pkgconfig} + $(CP) $(PKG_INSTALL_DIR)/usr/include/libpagekite/pagekite.h $(1)/usr/include + $(CP) $(PKG_INSTALL_DIR)/usr/lib/libpagekite.{a,so*} $(1)/usr/lib/ + $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/* $(1)/usr/lib/pkgconfig +endef + +define Package/libpagekite/install + $(INSTALL_DIR) $(1)/usr/lib + $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/libpagekite.so* $(1)/usr/lib +endef + +define Package/pagekitec/install + $(CP) ./files/* $(1)/ + $(INSTALL_DIR) $(1)/usr/bin + $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/pagekitec $(1)/usr/bin +endef + +$(eval $(call BuildPackage,pagekitec)) +$(eval $(call BuildPackage,libpagekite)) diff --git a/net/pagekitec/files/etc/config/pagekitec b/net/pagekitec/files/etc/config/pagekitec new file mode 100644 index 000000000..a26f61510 --- /dev/null +++ b/net/pagekitec/files/etc/config/pagekitec @@ -0,0 +1 @@ +config pagekitec pagekitec diff --git a/net/pagekitec/files/etc/init.d/pagekitec b/net/pagekitec/files/etc/init.d/pagekitec new file mode 100755 index 000000000..56dab0f6a --- /dev/null +++ b/net/pagekitec/files/etc/init.d/pagekitec @@ -0,0 +1,36 @@ +#!/bin/sh /etc/rc.common +# Oct 2012, karlp@remake.is +START=90 +APP=pagekitec +USE_PROCD=1 + +add_instance() { + local cfg="$1" + local kitename kitesecret simple_http simple_ssh static + config_get kitename "$cfg" kitename + config_get kitesecret "$cfg" kitesecret + [ -z "$kitename" -o -z "$kitesecret" ] && { + echo "Both kitename and kitesecret must be specified" + return 1 + } + config_get_bool simple_http "$cfg" simple_http 0 + config_get_bool simple_ssh "$cfg" simple_ssh 0 + config_get_bool static "$cfg" static 0 + + procd_open_instance + procd_set_param command $APP + procd_append_param command -s + [ $static -eq 1 ] && procd_append_param command -S + [ $simple_http -eq 1 ] && procd_append_param command 80 http $kitename 80 $kitesecret + [ $simple_ssh -eq 1 ] && procd_append_param command 22 raw $kitename 443 $kitesecret + procd_close_instance +} + +start_service() { + config_load pagekitec && config_foreach add_instance pagekitec +} + +service_triggers() +{ + procd_add_reload_trigger "pagekitec" +} |