miredo: Initial version 1.2.6
Teredo IPv6 tunneling utility Signed-off-by: Nikita Vostokov <yawosk@yandex.com>
This commit is contained in:
parent
09d0928cc2
commit
424aafc417
5 changed files with 179 additions and 0 deletions
70
ipv6/miredo/Makefile
Normal file
70
ipv6/miredo/Makefile
Normal file
|
@ -0,0 +1,70 @@
|
|||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=miredo
|
||||
PKG_VERSION:=1.2.6
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE:=miredo-$(PKG_VERSION).tar.xz
|
||||
PKG_SOURCE_URL:=https://www.remlab.net/files/miredo/
|
||||
PKG_HASH:=fa26d2f4a405415833669e2e2e22677b225d8f83600844645d5683535ea43149
|
||||
PKG_LICENSE:=GPL-2.0
|
||||
PKG_LICENSE_FILES:=COPYING
|
||||
|
||||
PKG_CONFIG_DEPENDS := \
|
||||
CONFIG_IPV6 \
|
||||
CONFIG_TUN
|
||||
PKG_BUILD_PARALLEL:=1
|
||||
PKG_INSTALL:=1
|
||||
PKG_MAINTAINER:=
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
CONFIGURE_ARGS+= \
|
||||
--enable-shared \
|
||||
--enable-static \
|
||||
--disable-binreloc \
|
||||
--with-pic \
|
||||
--without-libiconv-prefix \
|
||||
--without-libintl-prefix
|
||||
|
||||
TARGET_CFLAGS+= $(FPIC) \
|
||||
-std=gnu99 \
|
||||
-O3 \
|
||||
-ffunction-sections \
|
||||
-fdata-sections \
|
||||
-Wno-format-security
|
||||
|
||||
TARGET_LDFLAGS += -Wl,--gc-sections
|
||||
|
||||
define Package/miredo
|
||||
SECTION:=net
|
||||
CATEGORY:=Network
|
||||
TITLE:=Teredo IPv6 tunneling utility
|
||||
URL:=https://www.remlab.net/miredo/
|
||||
VERSION:=$(PKG_VERSION)
|
||||
DEPENDS:=@IPV6 +libpthread +librt +kmod-tun
|
||||
endef
|
||||
|
||||
define Package/miredo/description
|
||||
Miredo is an open-source Teredo IPv6 tunneling software, for Linux and the BSD
|
||||
operating systems. It includes functional implementations of all components of
|
||||
the Teredo specification (client, relay and server). It is meant to provide
|
||||
IPv6 connectivity even from behind NAT devices.
|
||||
endef
|
||||
|
||||
define Package/miredo/install
|
||||
$(INSTALL_DIR) $(1)/usr/lib
|
||||
$(CP) $(PKG_INSTALL_DIR)/usr/lib/*.so* $(1)/usr/lib/
|
||||
$(INSTALL_DIR) $(1)/usr/sbin
|
||||
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/miredo $(1)/usr/sbin/
|
||||
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/miredo-checkconf $(1)/usr/sbin/
|
||||
$(INSTALL_DIR) $(1)/usr/lib/miredo
|
||||
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/miredo/miredo-privproc $(1)/usr/lib/miredo
|
||||
$(INSTALL_DIR) $(1)/etc/miredo
|
||||
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/miredo/miredo.conf $(1)/etc/miredo
|
||||
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/etc/miredo/client-hook $(1)/etc/miredo
|
||||
$(INSTALL_DIR) $(1)/etc/init.d/
|
||||
$(INSTALL_BIN) ./files/miredo.init $(1)/etc/init.d/miredo
|
||||
endef
|
||||
|
||||
$(eval $(call BuildPackage,miredo))
|
17
ipv6/miredo/files/miredo.init
Normal file
17
ipv6/miredo/files/miredo.init
Normal file
|
@ -0,0 +1,17 @@
|
|||
#!/bin/sh /etc/rc.common
|
||||
|
||||
USE_PROCD=1
|
||||
START=20
|
||||
|
||||
PROG=/usr/sbin/miredo
|
||||
CONFFILE=/etc/miredo/miredo.conf
|
||||
|
||||
start_service() {
|
||||
procd_open_instance
|
||||
procd_set_param command $PROG -f -c $CONFFILE
|
||||
procd_set_param respawn
|
||||
procd_set_param file $CONFFILE
|
||||
procd_set_param stdout 1 # forward stdout of the command to logd
|
||||
procd_set_param stderr 1 # same for stderr
|
||||
procd_close_instance
|
||||
}
|
24
ipv6/miredo/patches/001-fix-musl-pthread-non-portable.patch
Normal file
24
ipv6/miredo/patches/001-fix-musl-pthread-non-portable.patch
Normal file
|
@ -0,0 +1,24 @@
|
|||
--- a/libteredo/debug.h 2009-02-28 23:17:14.000000000 +0300
|
||||
+++ b/libteredo/debug.h 2019-04-07 01:46:48.235087395 +0300
|
||||
@@ -43,8 +43,10 @@
|
||||
# ifdef __linux__
|
||||
# include <errno.h>
|
||||
# include <assert.h>
|
||||
-# undef PTHREAD_MUTEX_INITIALIZER
|
||||
-# define PTHREAD_MUTEX_INITIALIZER PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP
|
||||
+# if defined(PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP)
|
||||
+# undef PTHREAD_MUTEX_INITIALIZER
|
||||
+# define PTHREAD_MUTEX_INITIALIZER PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP
|
||||
+# endif
|
||||
|
||||
static inline int
|
||||
d_pthread_mutex_init (pthread_mutex_t *mutex, pthread_mutexattr_t *pattr)
|
||||
@@ -57,7 +59,7 @@
|
||||
pthread_mutexattr_init (&attr);
|
||||
}
|
||||
|
||||
- pthread_mutexattr_settype (pattr, PTHREAD_MUTEX_ERRORCHECK_NP);
|
||||
+ pthread_mutexattr_settype (pattr, PTHREAD_MUTEX_ERRORCHECK);
|
||||
int res = pthread_mutex_init (mutex, pattr);
|
||||
|
||||
if (pattr == &attr)
|
21
ipv6/miredo/patches/002-fix-redefinition-ethadr.patch
Normal file
21
ipv6/miredo/patches/002-fix-redefinition-ethadr.patch
Normal file
|
@ -0,0 +1,21 @@
|
|||
--- a/libtun6/tun6.c 2012-09-12 17:03:59.000000000 +0400
|
||||
+++ b/libtun6/tun6.c 2019-04-07 02:21:07.439952535 +0300
|
||||
@@ -53,7 +53,7 @@
|
||||
const char os_driver[] = "Linux";
|
||||
# define USE_LINUX 1
|
||||
|
||||
-# include <linux/if_tun.h> // TUNSETIFF - Linux tunnel driver
|
||||
+# include <linux/if_tun.h> // TUNSETIFF - Linux tunnel driver, ETH_P_IPV6
|
||||
/*
|
||||
* <linux/ipv6.h> conflicts with <netinet/in.h> and <arpa/inet.h>,
|
||||
* so we've got to declare this structure by hand.
|
||||
@@ -65,7 +65,7 @@
|
||||
};
|
||||
|
||||
# include <net/route.h> // struct in6_rtmsg
|
||||
-# include <netinet/if_ether.h> // ETH_P_IPV6
|
||||
+//# include <netinet/if_ether.h> // ETH_P_IPV6
|
||||
|
||||
typedef struct
|
||||
{
|
||||
|
47
ipv6/miredo/patches/003-fix-warnings-portable-defined.patch
Normal file
47
ipv6/miredo/patches/003-fix-warnings-portable-defined.patch
Normal file
|
@ -0,0 +1,47 @@
|
|||
--- a/include/gettext.h 2012-09-12 16:57:52.000000000 +0400
|
||||
+++ b/include/gettext.h 2019-04-07 01:11:52.492519796 +0300
|
||||
@@ -182,7 +182,7 @@
|
||||
(((__GNUC__ >= 3 || __GNUG__ >= 2) && !defined(__STRICT_ANSI__)) \
|
||||
/* || __STDC_VERSION__ >= 199901L */ )
|
||||
|
||||
-#if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS
|
||||
+#if !defined(_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS)
|
||||
#include <stdlib.h>
|
||||
#endif
|
||||
|
||||
@@ -206,7 +206,7 @@
|
||||
size_t msgctxt_len = strlen (msgctxt) + 1;
|
||||
size_t msgid_len = strlen (msgid) + 1;
|
||||
const char *translation;
|
||||
-#if _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS
|
||||
+#if defined(_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS)
|
||||
char msg_ctxt_id[msgctxt_len + msgid_len];
|
||||
#else
|
||||
char buf[1024];
|
||||
@@ -221,7 +221,7 @@
|
||||
msg_ctxt_id[msgctxt_len - 1] = '\004';
|
||||
memcpy (msg_ctxt_id + msgctxt_len, msgid, msgid_len);
|
||||
translation = dcgettext (domain, msg_ctxt_id, category);
|
||||
-#if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS
|
||||
+#if !defined(_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS)
|
||||
if (msg_ctxt_id != buf)
|
||||
free (msg_ctxt_id);
|
||||
#endif
|
||||
@@ -252,7 +252,7 @@
|
||||
size_t msgctxt_len = strlen (msgctxt) + 1;
|
||||
size_t msgid_len = strlen (msgid) + 1;
|
||||
const char *translation;
|
||||
-#if _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS
|
||||
+#if defined(_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS)
|
||||
char msg_ctxt_id[msgctxt_len + msgid_len];
|
||||
#else
|
||||
char buf[1024];
|
||||
@@ -267,7 +267,7 @@
|
||||
msg_ctxt_id[msgctxt_len - 1] = '\004';
|
||||
memcpy (msg_ctxt_id + msgctxt_len, msgid, msgid_len);
|
||||
translation = dcngettext (domain, msg_ctxt_id, msgid_plural, n, category);
|
||||
-#if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS
|
||||
+#if !defined(_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS)
|
||||
if (msg_ctxt_id != buf)
|
||||
free (msg_ctxt_id);
|
||||
#endif
|
Loading…
Reference in a new issue