libtorrent: import from packages and update to 0.13.4 Signed-off-by: Peter Wagner <tripolar@gmx.at>lilik-openwrt-22.03
@ -0,0 +1,71 @@ | |||||
# | |||||
# 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:=libtorrent | |||||
PKG_VERSION:=0.13.4-git | |||||
PKG_RELEASE=$(PKG_SOURCE_VERSION)-1 | |||||
PKG_SOURCE_PROTO:=git | |||||
PKG_SOURCE_URL:=https://github.com/rakshasa/libtorrent.git | |||||
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION) | |||||
PKG_SOURCE_VERSION:=51cd5ea8913a5f5062813d9f5b6256c76d41ea11 | |||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz | |||||
PKG_FIXUP:=autoreconf | |||||
PKG_BUILD_PARALLEL:=1 | |||||
PKG_INSTALL:=1 | |||||
include $(INCLUDE_DIR)/package.mk | |||||
define Package/libtorrent | |||||
SECTION:=libs | |||||
CATEGORY:=Libraries | |||||
TITLE:=Rakshasa's BitTorrent library | |||||
URL:=http://libtorrent.rakshasa.no/ | |||||
DEPENDS:=+libopenssl +libsigcxx | |||||
endef | |||||
define Package/libtorrent/description | |||||
LibTorrent is a BitTorrent library written in C++ for *nix, with a focus on | |||||
high performance and good code. The library differentiates itself from other | |||||
implementations by transfering directly from file pages to the network stack. | |||||
On high-bandwidth connections it is able to seed at 3 times the speed of the | |||||
official client. | |||||
endef | |||||
TARGET_LDFLAGS += $(LIBGCC_S) | |||||
CONFIGURE_ARGS+= \ | |||||
--enable-shared \ | |||||
--enable-static \ | |||||
--enable-aligned \ | |||||
--disable-debug \ | |||||
--enable-openssl \ | |||||
--disable-instrumentation | |||||
define Build/Configure | |||||
( cd $(PKG_BUILD_DIR); ./autogen.sh ); | |||||
$(call Build/Configure/Default) | |||||
endef | |||||
define Build/InstallDev | |||||
$(INSTALL_DIR) $(1)/usr/include | |||||
$(CP) $(PKG_INSTALL_DIR)/usr/include/torrent $(1)/usr/include/ | |||||
$(INSTALL_DIR) $(1)/usr/lib | |||||
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libtorrent.{a,so*} $(1)/usr/lib/ | |||||
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig | |||||
$(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libtorrent.pc $(1)/usr/lib/pkgconfig/ | |||||
endef | |||||
define Package/libtorrent/install | |||||
$(INSTALL_DIR) $(1)/usr/lib | |||||
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libtorrent.so.* $(1)/usr/lib/ | |||||
endef | |||||
$(eval $(call BuildPackage,libtorrent)) |
@ -0,0 +1,41 @@ | |||||
--- a/configure.ac | |||||
+++ b/configure.ac | |||||
@@ -19,7 +19,6 @@ AC_SUBST(LIBTORRENT_INTERFACE_VERSION_NO | |||||
AM_INIT_AUTOMAKE | |||||
AC_CONFIG_HEADERS(config.h) | |||||
-AM_PATH_CPPUNIT(1.9.6) | |||||
AC_PROG_CXX | |||||
--- a/scripts/checks.m4 | |||||
+++ b/scripts/checks.m4 | |||||
@@ -96,7 +96,7 @@ AC_DEFUN([TORRENT_CHECK_KQUEUE], [ | |||||
AC_DEFUN([TORRENT_CHECK_KQUEUE_SOCKET_ONLY], [ | |||||
AC_MSG_CHECKING(whether kqueue supports pipes and ptys) | |||||
- AC_RUN_IFELSE([AC_LANG_SOURCE([ | |||||
+ AC_LINK_IFELSE([AC_LANG_SOURCE([ | |||||
#include <fcntl.h> | |||||
#include <stdlib.h> | |||||
#include <unistd.h> | |||||
--- a/scripts/common.m4 | |||||
+++ b/scripts/common.m4 | |||||
@@ -223,7 +223,7 @@ dnl Need to fix this so that it uses t | |||||
AC_DEFUN([TORRENT_CHECK_EXECINFO], [ | |||||
AC_MSG_CHECKING(for execinfo.h) | |||||
- AC_RUN_IFELSE([AC_LANG_SOURCE([ | |||||
+ AC_LINK_IFELSE([AC_LANG_SOURCE([ | |||||
#include <execinfo.h> | |||||
int main() { backtrace((void**)0, 0); backtrace_symbols((char**)0, 0); return 0;} | |||||
])], | |||||
@@ -238,7 +238,7 @@ AC_DEFUN([TORRENT_CHECK_EXECINFO], [ | |||||
AC_DEFUN([TORRENT_CHECK_ALIGNED], [ | |||||
AC_MSG_CHECKING(the byte alignment) | |||||
- AC_RUN_IFELSE([AC_LANG_SOURCE([ | |||||
+ AC_LINK_IFELSE([AC_LANG_SOURCE([ | |||||
#include <inttypes.h> | |||||
int main() { | |||||
char buf@<:@8@:>@ = { 0, 0, 0, 0, 1, 0, 0, 0 }; |
@ -0,0 +1,26 @@ | |||||
--- a/src/net/socket_datagram.cc | |||||
+++ b/src/net/socket_datagram.cc | |||||
@@ -73,6 +73,23 @@ SocketDatagram::write_datagram(const voi | |||||
int r; | |||||
if (sa != NULL) { | |||||
+#ifdef RAK_USE_INET6 | |||||
+ if (m_ipv6_socket && sa->family() == rak::socket_address::pf_inet) { | |||||
+ uint32_t addr32[4]; | |||||
+ sockaddr_in6 mapped_addr; | |||||
+ memset(&mapped_addr, 0, sizeof(mapped_addr)); | |||||
+ mapped_addr.sin6_family = AF_INET6; | |||||
+ addr32[0] = 0; | |||||
+ addr32[1] = 0; | |||||
+ addr32[2] = htonl(0xffff); | |||||
+ addr32[3] = sa->sa_inet()->address_n(); | |||||
+ memcpy(mapped_addr.sin6_addr.s6_addr, addr32, sizeof(uint32_t) * 4); | |||||
+ mapped_addr.sin6_port = sa->sa_inet()->port_n(); | |||||
+ r = ::sendto(m_fileDesc, buffer, length, 0, (sockaddr*)&mapped_addr, sizeof(mapped_addr)); | |||||
+ } else if (m_ipv6_socket && sa->family() == rak::socket_address::pf_inet6) { | |||||
+ r = ::sendto(m_fileDesc, buffer, length, 0, sa->sa_inet6()->c_sockaddr(), sizeof(rak::socket_address_inet6)); | |||||
+ } else | |||||
+#endif | |||||
r = ::sendto(m_fileDesc, buffer, length, 0, sa->sa_inet()->c_sockaddr(), sizeof(rak::socket_address_inet)); | |||||
} else { | |||||
r = ::send(m_fileDesc, buffer, length, 0); |
@ -0,0 +1,92 @@ | |||||
# | |||||
# 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:=rtorrent | |||||
PKG_VERSION:=0.9.4-git | |||||
PKG_RELEASE:=$(PKG_SOURCE_VERSION)-1 | |||||
PKG_SOURCE_PROTO:=git | |||||
PKG_SOURCE_URL:=https://github.com/rakshasa/rtorrent.git | |||||
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION) | |||||
PKG_SOURCE_VERSION:=6a3234eaa79f15857260df31f98711ef24266191 | |||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz | |||||
PKG_FIXUP:=autoreconf | |||||
PKG_BUILD_PARALLEL:=1 | |||||
PKG_INSTALL:=1 | |||||
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION) | |||||
include $(INCLUDE_DIR)/package.mk | |||||
define Package/rtorrent/Default | |||||
SUBMENU:=BitTorrent | |||||
SECTION:=net | |||||
CATEGORY:=Network | |||||
TITLE:=BitTorrent client for ncurses | |||||
URL:=http://libtorrent.rakshasa.no/ | |||||
DEPENDS:=+libcurl +libtorrent +libncursesw +libsigcxx +libpthread | |||||
endef | |||||
define Package/rtorrent/Default/description | |||||
rTorrent is a BitTorrent client for ncurses, using the libtorrent library. | |||||
The client and library is written in C++ with emphasis on speed and | |||||
efficiency, while delivering equivalent features to those found in GUI based | |||||
clients in an ncurses client. | |||||
endef | |||||
define Package/rtorrent | |||||
$(call Package/rtorrent/Default) | |||||
VARIANT:=norpc | |||||
endef | |||||
define Package/rtorrent/description | |||||
$(call Package/rtorrent/Default/description) | |||||
This package is built without xmlrpc support | |||||
endef | |||||
define Package/rtorrent-rpc | |||||
$(call Package/rtorrent/Default) | |||||
VARIANT:=rpc | |||||
DEPENDS+=+xmlrpc-c-server | |||||
TITLE+=(with rpc support) | |||||
endef | |||||
define Package/rtorrent-rpc/description | |||||
$(call Package/rtorrent/Default/description) | |||||
This package is built with xmlrpc support | |||||
endef | |||||
TARGET_LDFLAGS += -lpthread -Wl,-rpath-link=$(STAGING_DIR)/usr/lib | |||||
CONFIGURE_ARGS+= \ | |||||
--enable-shared \ | |||||
--disable-static \ | |||||
--disable-debug | |||||
ifeq ($(BUILD_VARIANT),rpc) | |||||
CONFIGURE_ARGS += \ | |||||
--with-xmlrpc-c | |||||
endif | |||||
define Build/Configure | |||||
( cd $(PKG_BUILD_DIR); ./autogen.sh ); | |||||
$(call Build/Configure/Default) | |||||
endef | |||||
define Package/rtorrent/install | |||||
$(INSTALL_DIR) $(1)/usr/bin | |||||
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/rtorrent $(1)/usr/bin/ | |||||
endef | |||||
Package/rtorrent-rpc/install = $(Package/rtorrent/install) | |||||
$(eval $(call BuildPackage,rtorrent)) | |||||
$(eval $(call BuildPackage,rtorrent-rpc)) |
@ -0,0 +1,30 @@ | |||||
--- a/configure.ac | |||||
+++ b/configure.ac | |||||
@@ -4,7 +4,6 @@ AC_DEFINE(API_VERSION, 8, api version) | |||||
AM_INIT_AUTOMAKE | |||||
AC_CONFIG_HEADERS(config.h) | |||||
-AM_PATH_CPPUNIT(1.9.6) | |||||
AC_PROG_CXX | |||||
AC_PROG_LIBTOOL | |||||
--- a/scripts/common.m4 | |||||
+++ b/scripts/common.m4 | |||||
@@ -223,7 +223,7 @@ dnl Need to fix this so that it uses t | |||||
AC_DEFUN([TORRENT_CHECK_EXECINFO], [ | |||||
AC_MSG_CHECKING(for execinfo.h) | |||||
- AC_RUN_IFELSE([AC_LANG_SOURCE([ | |||||
+ AC_LINK_IFELSE([AC_LANG_SOURCE([ | |||||
#include <execinfo.h> | |||||
int main() { backtrace((void**)0, 0); backtrace_symbols((char**)0, 0); return 0;} | |||||
])], | |||||
@@ -238,7 +238,7 @@ AC_DEFUN([TORRENT_CHECK_EXECINFO], [ | |||||
AC_DEFUN([TORRENT_CHECK_ALIGNED], [ | |||||
AC_MSG_CHECKING(the byte alignment) | |||||
- AC_RUN_IFELSE([AC_LANG_SOURCE([ | |||||
+ AC_LINK_IFELSE([AC_LANG_SOURCE([ | |||||
#include <inttypes.h> | |||||
int main() { | |||||
char buf@<:@8@:>@ = { 0, 0, 0, 0, 1, 0, 0, 0 }; |
@ -0,0 +1,11 @@ | |||||
--- a/src/display/canvas.h | |||||
+++ b/src/display/canvas.h | |||||
@@ -48,7 +48,7 @@ class Canvas { | |||||
public: | |||||
typedef std::vector<Attributes> attributes_list; | |||||
- Canvas(int x = 0, int y = 0, int width = 0, int height = 0); | |||||
+ Canvas(int x = 0, int y = 0, int width = 1, int height = 1); | |||||
~Canvas() { delwin(m_window); } | |||||
void refresh() { wnoutrefresh(m_window); } |