rtorrent: Switch to using static libtorrent

rtorrent is the only user of libtorrent. Statically link to save space.

Added usleep patch.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
This commit is contained in:
Rosen Penev 2019-09-09 15:16:08 -07:00
parent e56fada5a8
commit 358495f118
No known key found for this signature in database
GPG Key ID: 36D31CFA845F0E3B
2 changed files with 39 additions and 6 deletions

View File

@ -9,12 +9,11 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=rtorrent
PKG_VERSION:=0.9.8
PKG_RELEASE:=1
PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/rakshasa/rtorrent/tar.gz/v$(PKG_VERSION)?
PKG_HASH:=bc889ce1dde475ec56aa72ae996912ff58723226a4f4256fef4f1f8636d991d4
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
PKG_MAINTAINER:=Rosen Penev <rosenp@gmail.com>
PKG_LICENSE:=GPL-2.0-or-later
@ -23,7 +22,7 @@ PKG_LICENSE_FILES:=COPYING
PKG_FIXUP:=autoreconf
PKG_INSTALL:=1
PKG_BUILD_PARALLEL:=1
PKG_REMOVE_FILES:=autogen.sh
PKG_BUILD_DEPENDS:=libtorrent
include $(INCLUDE_DIR)/package.mk
@ -33,7 +32,7 @@ define Package/rtorrent/Default
CATEGORY:=Network
TITLE:=BitTorrent client for ncurses
URL:=https://github.com/rakshasa/rtorrent
DEPENDS:=+libcurl +libtorrent +libncurses +libpthread
DEPENDS:=+libcurl +libncurses +libpthread +libopenssl +libstdcpp +zlib
endef
define Package/rtorrent/Default/description
@ -66,8 +65,8 @@ $(call Package/rtorrent/Default/description)
endef
CONFIGURE_ARGS += \
--enable-shared \
--disable-static \
--enable-static \
--disable-shared \
--disable-debug \
--with-libcurl="$(STAGING_DIR)/usr" \
--with-ncurses \
@ -78,6 +77,7 @@ CONFIGURE_ARGS += --with-xmlrpc-c
endif
TARGET_CXXFLAGS += -faligned-new
TARGET_LDFLAGS += -lcrypto -lz
define Package/rtorrent/install
$(INSTALL_DIR) $(1)/usr/bin

View File

@ -0,0 +1,33 @@
From b3d75a642177f21f00d18f0e46bca4a9f363d08e Mon Sep 17 00:00:00 2001
From: Rosen Penev <rosenp@gmail.com>
Date: Fri, 23 Aug 2019 13:35:28 -0700
Subject: [PATCH] Replace usleep with C++11 sleep_for
usleep was deprecated with POSIX 2008 and optionally unavailable with
uClibc-ng.
---
src/thread_base.cc | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/thread_base.cc b/src/thread_base.cc
index 081791d4..275015ab 100644
--- a/src/thread_base.cc
+++ b/src/thread_base.cc
@@ -42,6 +42,8 @@
#include <cstdlib>
#include <cstring>
#include <iostream>
+#include <chrono>
+#include <thread>
#include <signal.h>
#include <unistd.h>
#include <rak/error_number.h>
@@ -66,7 +68,7 @@ class lt_cacheline_aligned thread_queue_hack {
thread_queue_hack() { std::memset(this, 0, sizeof(thread_queue_hack)); }
- void lock() { while (!__sync_bool_compare_and_swap(&m_lock, 0, 1)) usleep(0); }
+ void lock() { while (!__sync_bool_compare_and_swap(&m_lock, 0, 1)) std::this_thread::sleep_for(std::chrono::microseconds(0)); }
void unlock() { __sync_bool_compare_and_swap(&m_lock, 1, 0); }
iterator begin() { return m_queue; }