Hi

This add Freelan (p2p vpn) to openwrt (http://www.freelan.org/).
As it require async io, it can't be build with uclibc for now.
It fully functional with eglibc 2.15 (tested with trunk and AA).

Signed-off-by: Etienne CHAMPETIER <[email protected]>

Index: net/freelan/Makefile
===================================================================
--- net/freelan/Makefile    (révision 0)
+++ net/freelan/Makefile    (révision 0)
@@ -0,0 +1,220 @@
+#
+# Copyright (C) 2007-2013 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:=freelan
+PKG_VERSION:=2013-02-20
+PKG_RELEASE=$(PKG_SOURCE_VERSION)
+
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_URL:=git://github.com/freelan-developers/freelan-all.git
+PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
+PKG_SOURCE_VERSION:=97b07df88267ba12e42111be261de5cf188f2a70
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
+
+PKG_LICENSE:=GPLv3+
+PKG_LICENSE_FILES:=
+
+PKG_MAINTAINER:=Etienne CHAMPETIER <[email protected]>
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/freelan
+  SECTION:=net
+  CATEGORY:=Network
+  SUBMENU:=VPN
+  DEPENDS:=+libfreelan +boost-filesystem +boost-program_options 
+  TITLE:=highly-configurable peer-to-peer VPN software
+  URL:=http://www.freelan.org
+endef
+
+define Package/freelan/description
+    A free, open-source, multi-platform, highly-configurable and peer-to-peer 
VPN software, designed to easily connect remote hosts and mainly focused on 
security and performance.
+endef
+
+define Package/freelanlibs/Default
+  SECTION:=libs
+  CATEGORY:=Libraries
+  URL:=http://www.freelan.org
+endef
+
+define Package/libasiotap
+  $(call Package/freelanlibs/Default)
+  TITLE:=TAP adapters C++ wrapper (FreeLAN)
+  DEPENDS:=@!USE_UCLIBC +kmod-tun +boost-system +librt +libpthread
+endef
+
+define Package/libcryptoplus
+  $(call Package/freelanlibs/Default)
+  TITLE:=OpenSSL C++ wrapper (FreeLAN)
+  DEPENDS:=+libopenssl +libstdcpp
+endef
+
+define Package/libfreelan
+  $(call Package/freelanlibs/Default)
+  TITLE:=The FreeLAN C++ library
+  DEPENDS:=+libasiotap +libfscp +boost-thread +libcurl +libkfather
+endef
+
+define Package/libfscp
+  $(call Package/freelanlibs/Default)
+  TITLE:=FreeLAN Secure Channel protocol library
+  DEPENDS:=+libcryptoplus +boost-system +boost-date_time +libpthread
+endef
+
+define Package/libiconvplus
+  $(call Package/freelanlibs/Default)
+  TITLE:=C++ wrapper for iconv (FreeLAN)
+  DEPENDS:=+boost-system
+endef
+
+define Package/libkfather
+  $(call Package/freelanlibs/Default)
+  TITLE:=A C++ JSON lib (FreeLAN)
+  DEPENDS:=+libiconvplus
+endef
+
+export PLATFORM=posix
+
+SCONS_VARS = \
+    PYTHONPATH="$(PKG_BUILD_DIR)/freelan-buildtools" \
+    FREELAN_ARCH=$(ARCH) \
+    CXX=$(TARGET_CXX_NOCACHE) \
+    FREELAN_INSTALL_PREFIX="$(PKG_INSTALL_DIR)/usr" \
+    
CPLUS_INCLUDE_PATH="$(PKG_INSTALL_DIR)/usr/include:$(PKG_BUILD_DIR)/lib*/include"
 \
+    CXXFLAGS="$(TARGET_CFLAGS) $(EXTRA_CFLAGS)"
+
+
+ifneq ($(CONFIG_PACKAGE_freelan),)
+ define Build/Configure/freelan
+    cd $(PKG_BUILD_DIR)/freelan
+    $(SCONS_VARS) scons -C $(PKG_BUILD_DIR)/freelan install
+ endef
+endif
+
+ifneq ($(CONFIG_PACKAGE_libasiotap),)
+ define Build/Configure/libasiotap
+    cd $(PKG_BUILD_DIR)/libasiotap
+    $(SCONS_VARS) scons -C $(PKG_BUILD_DIR)/libasiotap install
+ endef
+endif
+
+ifneq ($(CONFIG_PACKAGE_libcryptoplus),)
+ define Build/Configure/libcryptoplus
+    cd $(PKG_BUILD_DIR)/libcryptoplus
+    $(SCONS_VARS) scons -C $(PKG_BUILD_DIR)/libcryptoplus install
+ endef
+endif
+
+ifneq ($(CONFIG_PACKAGE_libfreelan),)
+ define Build/Configure/libfreelan
+    cd $(PKG_BUILD_DIR)/libfreelan
+    $(SCONS_VARS) scons -C $(PKG_BUILD_DIR)/libfreelan install
+ endef
+endif
+
+ifneq ($(CONFIG_PACKAGE_libfscp),)
+ define Build/Configure/libfscp
+    cd $(PKG_BUILD_DIR)/libfscp
+    $(SCONS_VARS) scons -C $(PKG_BUILD_DIR)/libfscp install
+ endef
+endif
+
+ifneq ($(CONFIG_PACKAGE_libiconvplus),)
+ define Build/Configure/libiconvplus
+    cd $(PKG_BUILD_DIR)/libiconvplus
+    $(SCONS_VARS) scons -C $(PKG_BUILD_DIR)/libiconvplus install
+ endef
+endif
+
+ifneq ($(CONFIG_PACKAGE_libkfather),)
+ define Build/Configure/libkfather
+    cd $(PKG_BUILD_DIR)/libkfather
+    $(SCONS_VARS) scons -C $(PKG_BUILD_DIR)/libkfather install
+ endef
+endif
+
+define Build/Configure
+    $(call Build/Configure/libiconvplus)
+    $(call Build/Configure/libkfather)
+    $(call Build/Configure/libcryptoplus)
+    $(call Build/Configure/libasiotap)
+    $(call Build/Configure/libfscp)
+    $(call Build/Configure/libfreelan)
+    $(call Build/Configure/freelan)
+endef
+
+define Build/Compile
+endef
+
+define Package/freelan/install
+    $(INSTALL_DIR) \
+        $(1)/usr/sbin \
+        $(1)/etc/freelan \
+        $(1)/etc/init.d   
+
+    # copying binary
+    $(INSTALL_BIN) \
+        $(PKG_INSTALL_DIR)/usr/bin/freelan \
+        $(1)/usr/sbin/freelan
+
+    # copying configuration
+    $(INSTALL_CONF) \
+        $(PKG_BUILD_DIR)/freelan/config/* \
+        $(1)/etc/freelan
+
+    # creatign service
+    $(INSTALL_BIN) \
+        files/freelan.init \
+        $(1)/etc/init.d/freelan
+endef
+
+define Package/freelanlibs/Default/install
+    $(INSTALL_DIR) \
+        $(1)/usr/lib
+    $(CP) \
+        $(PKG_INSTALL_DIR)/usr/lib/$(2).so.*.* \
+        $(1)/usr/lib/
+    cd $(1)/usr/lib/;LIB=`ls $(2).so.*.*`;ln -s $$$${LIB} $$$${LIB%.*};ln -s 
$$$${LIB} $$$${LIB%.*.*};
+endef
+
+define Package/libasiotap/install
+  $(call Package/freelanlibs/Default/install,$(1),libasiotap)
+endef
+
+define Package/libcryptoplus/install
+  $(call Package/freelanlibs/Default/install,$(1),libcryptoplus)
+endef
+
+define Package/libfreelan/install
+  $(call Package/freelanlibs/Default/install,$(1),libfreelan)
+endef
+
+define Package/libfscp/install
+  $(call Package/freelanlibs/Default/install,$(1),libfscp)
+endef
+
+define Package/libiconvplus/install
+  $(call Package/freelanlibs/Default/install,$(1),libiconvplus)
+endef
+
+define Package/libkfather/install
+  $(call Package/freelanlibs/Default/install,$(1),libkfather)
+endef
+
+define Package/freelan/conffiles
+  /etc/freelan
+endef
+
+$(eval $(call BuildPackage,freelan))
+$(eval $(call BuildPackage,libasiotap))
+$(eval $(call BuildPackage,libcryptoplus))
+$(eval $(call BuildPackage,libfreelan))
+$(eval $(call BuildPackage,libfscp))
+$(eval $(call BuildPackage,libiconvplus))
+$(eval $(call BuildPackage,libkfather))
Index: net/freelan/files/freelan.init
===================================================================
--- net/freelan/files/freelan.init    (révision 0)
+++ net/freelan/files/freelan.init    (révision 0)
@@ -0,0 +1,15 @@
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2006-2012 OpenWrt.org
+
+SERVICE_PID_FILE=/var/run/freelan.pid
+SERVICE_USE_PID=1
+START=46
+
+start() {
+    service_start /usr/sbin/freelan -c /etc/freelan/freelan.cfg -p 
/var/run/freelan.pid
+}
+
+stop() {
+    service_stop /usr/sbin/freelan
+}
+
_______________________________________________
openwrt-devel mailing list
[email protected]
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to