aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsbyx <steven@midlink.org>2014-07-13 13:22:35 +0200
committersbyx <steven@midlink.org>2014-07-13 13:22:35 +0200
commit3339a690a0ea68d67b7a349d11837469312c3d66 (patch)
tree7adf7f8b05f7a1a531815ffbc03adfce5d9dbe2c
parent063a4321ad1b9b0021ccd7d20c44cccdc6b98080 (diff)
parentb459aad2600a9e9dfff6bf57660cad6abd1339d3 (diff)
Merge pull request #90 from mstorchak/transmission
transmission: import from packages, update to latest
-rw-r--r--net/transmission/Makefile122
-rw-r--r--net/transmission/files/transmission.config71
-rw-r--r--net/transmission/files/transmission.init111
-rw-r--r--net/transmission/patches/010_libtransmission_fallocate64_eglibc.patch12
-rw-r--r--net/transmission/patches/020-use-internal-miniupnp.patch11
5 files changed, 327 insertions, 0 deletions
diff --git a/net/transmission/Makefile b/net/transmission/Makefile
new file mode 100644
index 000000000..df74fd566
--- /dev/null
+++ b/net/transmission/Makefile
@@ -0,0 +1,122 @@
+#
+# Copyright (C) 2009-2014 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:=transmission
+PKG_VERSION:=2.84
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
+PKG_SOURCE_URL:=http://download-origin.transmissionbt.com/files/ http://mirrors.m0k.org/transmission/files
+PKG_MD5SUM:=411aec1c418c14f6765710d89743ae42
+
+PKG_FIXUP:=autoreconf
+PKG_INSTALL:=1
+PKG_BUILD_PARALLEL:=1
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/transmission/template
+ SUBMENU:=BitTorrent
+ SECTION:=net
+ CATEGORY:=Network
+ TITLE:=A free, lightweight BitTorrent client
+ URL:=http://www.transmissionbt.com
+ MAINTAINER:=Cezary Jackiewicz <cezary@eko.one.pl>
+endef
+
+define Package/transmission-daemon
+ $(call Package/transmission/template)
+ DEPENDS:=+libcurl +libopenssl +libpthread +libevent2 +librt
+ MENU:=1
+endef
+
+define Package/transmission-cli
+ $(call Package/transmission/template)
+ DEPENDS:=transmission-daemon
+endef
+
+define Package/transmission-remote
+ $(call Package/transmission/template)
+ DEPENDS:=+libcurl +libopenssl +libpthread +libevent2 +librt
+endef
+
+define Package/transmission-web
+ $(call Package/transmission/template)
+ DEPENDS:=transmission-daemon
+endef
+
+
+define Package/transmission-daemon/description
+ Transmission is a simple BitTorrent client.
+ It features a very simple, intuitive interface
+ on top on an efficient, cross-platform back-end.
+ This package contains the daemon itself.
+endef
+
+define Package/transmission-cli/description
+ CLI utilities for transmission.
+endef
+
+define Package/transmission-remote/description
+ CLI remote interface for transmission.
+endef
+
+define Package/transmission-web/description
+ Webinterface resources for transmission.
+endef
+
+define Package/transmission-daemon/conffiles
+/etc/config/transmission
+endef
+
+CONFIGURE_VARS += \
+ LIBEVENT_LIBS="$(STAGING_DIR)/usr/lib/libevent-2.0.so.5"
+
+CONFIGURE_ARGS += \
+ --enable-daemon \
+ --enable-cli \
+ --without-gtk \
+ --enable-largefile \
+ --enable-lightweight
+
+MAKE_FLAGS += \
+ CFLAGS="$(TARGET_CFLAGS) -D_GNU_SOURCE"
+
+define Package/transmission-daemon/install
+ $(INSTALL_DIR) $(1)/usr/bin
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/transmission-daemon $(1)/usr/bin/
+ $(INSTALL_DIR) $(1)/etc/init.d/
+ $(INSTALL_BIN) files/transmission.init $(1)/etc/init.d/transmission
+ $(INSTALL_DIR) $(1)/etc/config
+ $(INSTALL_CONF) files/transmission.config $(1)/etc/config/transmission
+endef
+
+define Package/transmission-cli/install
+ $(INSTALL_DIR) $(1)/usr/bin
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/transmission-cli \
+ $(PKG_INSTALL_DIR)/usr/bin/transmission-create \
+ $(PKG_INSTALL_DIR)/usr/bin/transmission-edit \
+ $(PKG_INSTALL_DIR)/usr/bin/transmission-show \
+ $(1)/usr/bin/
+endef
+
+define Package/transmission-remote/install
+ $(INSTALL_DIR) $(1)/usr/bin
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/transmission-remote $(1)/usr/bin/
+endef
+
+define Package/transmission-web/install
+ $(INSTALL_DIR) $(1)/usr/share/transmission
+ $(CP) $(PKG_INSTALL_DIR)/usr/share/transmission/web $(1)/usr/share/transmission/
+endef
+
+$(eval $(call BuildPackage,transmission-daemon))
+$(eval $(call BuildPackage,transmission-cli))
+$(eval $(call BuildPackage,transmission-remote))
+$(eval $(call BuildPackage,transmission-web))
diff --git a/net/transmission/files/transmission.config b/net/transmission/files/transmission.config
new file mode 100644
index 000000000..a8fd56d9b
--- /dev/null
+++ b/net/transmission/files/transmission.config
@@ -0,0 +1,71 @@
+config transmission
+ option enabled 0
+ option config_dir '/tmp/transmission'
+ #option user 'nobody'
+ option alt_speed_down 50
+ option alt_speed_enabled false
+ option alt_speed_time_begin 540
+ option alt_speed_time_day 127
+ option alt_speed_time_enabled false
+ option alt_speed_time_end 1020
+ option alt_speed_up 50
+ option bind_address_ipv4 '0.0.0.0'
+ option bind_address_ipv6 '::'
+ option blocklist_enabled false
+ option blocklist_url ''
+ option cache_size_mb 2
+ option dht_enabled true
+ option download_dir '/tmp/transmission/done'
+ option download_queue_enabled true
+ option download_queue_size 4
+ option encryption 1
+ option idle_seeding_limit 30
+ option idle_seeding_limit_enabled false
+ option incomplete_dir '/tmp/transmission/incomplete'
+ option incomplete_dir_enabled false
+ option lazy_bitfield_enabled true
+ option lpd_enabled false
+ option message_level 1
+ option peer_congestion_algorithm ''
+ option peer_limit_global 240
+ option peer_limit_per_torrent 60
+ option peer_port 51413
+ option peer_port_random_high 65535
+ option peer_port_random_low 49152
+ option peer_port_random_on_start false
+ option peer_socket_tos 'default'
+ option pex_enabled true
+ option port_forwarding_enabled true
+ option preallocation 1
+ option prefetch_enabled true
+ option queue_stalled_enabled true
+ option queue_stalled_minutes 30
+ option ratio_limit 2.0000
+ option ratio_limit_enabled false
+ option rename_partial_files true
+ option rpc_authentication_required false
+ option rpc_bind_address '0.0.0.0'
+ option rpc_enabled true
+ option rpc_password ''
+ option rpc_port 9091
+ option rpc_url '/transmission/'
+ option rpc_username ''
+ option rpc_whitelist '127.0.0.1,192.168.1.*'
+ option rpc_whitelist_enabled true
+ option scrape_paused_torrents_enabled true
+ option script_torrent_done_enabled false
+ option script_torrent_done_filename ''
+ option seed_queue_enabled false
+ option seed_queue_size 10
+ option speed_limit_down 100
+ option speed_limit_down_enabled false
+ option speed_limit_up 20
+ option speed_limit_up_enabled false
+ option start_added_torrents true
+ option trash_original_torrent_files false
+ option umask 18
+ option upload_slots_per_torrent 14
+ option utp_enabled true
+ option scrape_paused_torrents true
+ option watch_dir_enabled false
+ option watch_dir ''
diff --git a/net/transmission/files/transmission.init b/net/transmission/files/transmission.init
new file mode 100644
index 000000000..669e710ec
--- /dev/null
+++ b/net/transmission/files/transmission.init
@@ -0,0 +1,111 @@
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2010-2012 OpenWrt.org
+
+START=99
+
+LIST_SEP="
+"
+
+append_params() {
+ local p; local v; local s="$1"; shift
+ for p in $*; do
+ config_get v "$s" "$p"
+ IFS="$LIST_SEP"
+ for v in $v; do
+ [ -n "$v" ] && (
+ echo "\""$p"\": "$v"," | sed -e 's|_|-|g' >> $config_file
+ )
+ done
+ unset IFS
+ done
+}
+
+append_params_quotes() {
+ local p; local v; local s="$1"; shift
+ for p in $*; do
+ config_get v "$s" "$p"
+ IFS="$LIST_SEP"
+ for v in $v; do
+ [ -n "$v" ] && (
+ echo -n "\""$p | sed -e 's|/|\\/|g;s|_|-|g' >> $config_file; \
+ echo "\": \""$v"\"," >> $config_file
+ )
+ done
+ unset IFS
+ done
+}
+
+section_enabled() {
+ config_get_bool enabled "$1" 'enabled' 0
+ [ $enabled -gt 0 ]
+}
+
+start_instance() {
+ local s="$1"
+ local user
+
+ section_enabled "$section" || return 1
+
+ config_get config_dir "$s" 'config_dir' '/var/etc/transmission'
+ config_get user "$s" 'user'
+
+ config_file="$config_dir/settings.json"
+ [ -d $config_dir ] || {
+ mkdir -m 0755 -p "$config_dir"
+ touch $config_file
+ [ -z "$user" ] || chown -R $user $config_dir
+ }
+
+ echo "{" > $config_file
+
+ append_params "$s" \
+ alt_speed_down alt_speed_enabled alt_speed_time_begin alt_speed_time_day \
+ alt_speed_time_enabled alt_speed_time_end alt_speed_up blocklist_enabled \
+ cache_size_mb download_queue_enabled download_queue_size \
+ dht_enabled encryption idle_seeding_limit idle_seeding_limit_enabled \
+ incomplete_dir_enabled lazy_bitfield_enabled lpd_enabled message_level \
+ peer_limit_global peer_limit_per_torrent peer_port \
+ peer_port_random_high peer_port_random_low peer_port_random_on_start \
+ pex_enabled port_forwarding_enabled preallocation prefetch_enabled \
+ ratio_limit ratio_limit_enabled rename_partial_files rpc_authentication_required \
+ rpc_enabled rpc_port rpc_whitelist_enabled queue_stalled_enabled \
+ queue_stalled_minutes scrape_paused_torrents_enabled script_torrent_done_enabled \
+ seed_queue_enabled seed_queue_size \
+ speed_limit_down speed_limit_down_enabled speed_limit_up \
+ speed_limit_up_enabled start_added_torrents trash_original_torrent_files \
+ umask upload_slots_per_torrent utp_enabled scrape_paused_torrents \
+ watch_dir_enabled
+
+ append_params_quotes "$s" \
+ blocklist_url bind_address_ipv4 bind_address_ipv6 download_dir incomplete_dir \
+ peer_congestion_algorithm peer_socket_tos rpc_bind_address rpc_password rpc_url \
+ rpc_username rpc_whitelist script_torrent_done_filename watch_dir
+
+ echo "\""invalid-key"\": false" >> $config_file
+ echo "}" >> $config_file
+
+ SERVICE_UID="$user" \
+ service_start /usr/bin/transmission-daemon -g $config_dir
+}
+
+stop_instance() {
+ local s="$1"
+ local user
+
+ section_enabled "$section" || return 1
+
+ config_get user "$s" 'user'
+
+ SERVICE_UID="$user" \
+ service_stop /usr/bin/transmission-daemon
+}
+
+start() {
+ config_load 'transmission'
+ config_foreach start_instance 'transmission'
+}
+
+stop() {
+ config_load 'transmission'
+ config_foreach stop_instance 'transmission'
+}
diff --git a/net/transmission/patches/010_libtransmission_fallocate64_eglibc.patch b/net/transmission/patches/010_libtransmission_fallocate64_eglibc.patch
new file mode 100644
index 000000000..d4f82fc2c
--- /dev/null
+++ b/net/transmission/patches/010_libtransmission_fallocate64_eglibc.patch
@@ -0,0 +1,12 @@
+--- a/libtransmission/fdlimit.c 2014-07-01 20:08:59.000000000 +0300
++++ b/libtransmission/fdlimit.c 2014-07-13 13:30:17.000000000 +0300
+@@ -22,7 +22,8 @@
+ #include <fcntl.h>
+ #endif
+
+-#ifdef HAVE_FALLOCATE64
++/* no need to define fallocate64 in glibc/eglibc case */
++#if defined(__UCLIBC__) && (HAVE_FALLOCATE64)
+ /* FIXME can't find the right #include voodoo to pick up the declaration.. */
+ extern int fallocate64 (int fd, int mode, uint64_t offset, uint64_t len);
+ #endif
diff --git a/net/transmission/patches/020-use-internal-miniupnp.patch b/net/transmission/patches/020-use-internal-miniupnp.patch
new file mode 100644
index 000000000..cf7856795
--- /dev/null
+++ b/net/transmission/patches/020-use-internal-miniupnp.patch
@@ -0,0 +1,11 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -251,7 +251,7 @@
+ AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM([#include <miniupnpc/miniupnpc.h>],
+ [struct UPNPDev dev;])],
+- [upnp_version="unknown"],
++ [upnp_version="none"],
+ [upnp_version="none"]
+ )
+