2 # Copyright (C) 2014,2015 Hyperboria.net
4 # You may redistribute this program and/or modify it under the terms of
5 # the GNU General Public License as published by the Free Software Foundation,
6 # either version 3 of the License, or (at your option) any later version.
8 # This program is distributed in the hope that it will be useful,
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 # GNU General Public License for more details.
13 # You should have received a copy of the GNU General Public License
14 # along with this program. If not, see <http://www.gnu.org/licenses/>.
17 include $(TOPDIR
)/rules.mk
23 PKG_SOURCE_URL
:=https
://github.com
/cjdelisle
/cjdns.git
25 PKG_SOURCE_VERSION
:=45cdd8b3eebb18b6239feeef3b787e40d773edfb
27 PKG_SOURCE
:=$(PKG_NAME
)-$(PKG_SOURCE_VERSION
).
tar.bz2
28 PKG_SOURCE_SUBDIR
:=$(PKG_NAME
)-$(PKG_SOURCE_VERSION
)
29 PKG_BUILD_DIR
:=$(BUILD_DIR
)/$(PKG_NAME
)-$(PKG_SOURCE_VERSION
)
31 include $(INCLUDE_DIR
)/package.mk
37 SUBMENU
:=Routing and Redirection
38 TITLE
:=Encrypted near-zero-conf mesh routing protocol
39 URL
:=https
://github.com
/cjdelisle
/cjdns
40 MAINTAINER
:=Lars Gierth
<larsg@systemli.org
>
41 DEPENDS
:=@
!arc @IPV6
+kmod-tun
+libnl-tiny
+libpthread
+librt \
42 +libuci-lua
+lua-bencode
+dkjson
+luasocket
+lua-sha2
45 define Package
/cjdns
/description
46 Cjdns implements an encrypted IPv6 network using public-key cryptography \
47 for address allocation and a distributed hash table for routing. \
48 This provides near-zero-configuration networking
, and prevents many \
49 of the security and scalability issues that plague existing networks.
52 define Package
/cjdns-tests
55 SUBMENU
:=Routing and Redirection
56 TITLE
:=cjdns
test cases
57 URL
:=https
://github.com
/cjdelisle
/cjdns
58 MAINTAINER
:=Lars Gierth
<larsg@systemli.org
>
59 DEPENDS
:=+libpthread
+librt @
!arc
62 define Package
/cjdns-test
/description
66 define Build
/Configure
69 PKG_DO_VARS
:=CJDNS_RELEASE_VERSION
=$(PKG_SOURCE_VERSION
)
71 ifneq ($(CONFIG_KERNEL_SECCOMP_FILTER
),y
)
72 PKG_DO_VARS
+= Seccomp_NO
=1
75 ifneq ($(CONFIG_USE_UCLIBC
),)
76 PKG_DO_VARS
+= UCLIBC
=1
80 $(INSTALL_DIR
) $(PKG_BUILD_DIR
)/tmp
81 (cd
$(PKG_BUILD_DIR
) && \
85 RANLIB
="$(TARGET_RANLIB)" \
86 CFLAGS
="$(TARGET_CFLAGS) -U_FORTIFY_SOURCE" \
87 LDFLAGS
="$(TARGET_LDFLAGS)" \
89 TARGET_ARCH
="$(CONFIG_ARCH)" \
90 SSP_SUPPORT
="$(CONFIG_SSP_SUPPORT)" \
91 GYP_ADDITIONAL_ARGS
="-f make-linux" \
92 CJDNS_BUILD_TMPDIR
="$(PKG_BUILD_DIR)/tmp" \
97 define Package
/cjdns
/install
103 $(1)/etc
/uci-defaults \
104 $(1)/usr
/lib
/lua
/cjdns
107 .
/files
/cjdrouteconf \
111 $(PKG_BUILD_DIR
)/cjdroute \
115 $(PKG_BUILD_DIR
)/publictoip6 \
120 $(1)/etc
/init.d
/cjdns
123 .
/files
/cjdns.defaults \
124 $(1)/etc
/uci-defaults
/cjdns
128 $(1)/usr
/lib
/lua
/cjdns
131 define Package
/cjdns
/postinst
133 if
[ -z
$${IPKG_INSTROOT} ] ; then
134 ( .
/etc
/uci-defaults
/cjdns
) && rm -f
/etc
/uci-defaults
/cjdns
135 # TODO: we should have an 'Enable' button instead
136 /etc
/init.d
/cjdns enabled ||
/etc
/init.d
/cjdns enable
141 define Package
/cjdns-tests
/install
142 $(INSTALL_DIR
) $(1)/usr
/bin
144 $(PKG_BUILD_DIR
)/build_linux
/test_testcjdroute_c \
148 $(eval
$(call BuildPackage
,cjdns
))
149 $(eval
$(call BuildPackage
,cjdns-tests
))