[patchteam] - New Package - Deluge - with daemon, console and web ui

Singed off by alexander@sulfrian.net


git-svn-id: svn://svn.openwrt.org/openwrt/packages@20178 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
dingo 2010-03-13 03:02:58 +00:00
parent 3f68505481
commit 9eb3db5c50
3 changed files with 151 additions and 0 deletions

86
net/deluge/Makefile Normal file
View File

@ -0,0 +1,86 @@
#
# Copyright (C) 2008 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:=deluge
PKG_VERSION:=1.2.0
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=http://download.deluge-torrent.org/source/
PKG_MD5SUM:=cec6b48f0abd79ea2cff3815a1124192
include $(INCLUDE_DIR)/package.mk
$(call include_mk, python-package.mk)
define Package/deluge
SUBMENU:=BitTorrent
SECTION:=net
CATEGORY:=Network
TITLE:=deluge-daemon
URL:=http://deluge-torrent.org/
DEPENDS:=+python +rblibtorrent +python2-chardet +pyxdg +twisted +twisted-web +pyopenssl +distribute
endef
define Package/deluge/config
config DELUGE_WITH_WEBUI
bool "Include the web interface"
select PACKAGE_mako
default n
config DELUGE_WITH_GTKUI
bool "Include the GTK interface"
depends PACKAGE_pygame
depends PACKAGE_pygobject
depends PACKAGE_pygtk
depends PACKAGE_librsvg
default n
endef
define Package/deluge/description
BitTorrent client with a client/server model.
endef
define Package/deluge/conffiles
/etc/config/deluge
endef
define Build/Prepare
$(call Build/Prepare/Default)
$(CP) -a files $(PKG_BUILD_DIR)
find $(PKG_BUILD_DIR)/files -name 'CVS' -o -name '.svn' -o -name '*~' | $(XARGS) rm -rf
endef
define Build/Compile
$(call Build/Compile/PyMod,,install --prefix=/usr --root=$(PKG_INSTALL_DIR))
$(if $(CONFIG_DELUGE_WITH_WEBUI),,$(RM) "$(PKG_INSTALL_DIR)/usr/bin/deluge-web" ; \
$(RM) "$(PKG_INSTALL_DIR)/usr/share/man/man1/deluge-web.1" ; \
$(RM) -r "$(PKG_INSTALL_DIR)$(PYTHON_PKG_DIR)/deluge/ui/web")
$(if $(CONFIG_DELUGE_WITH_GTKUI),,$(RM) "$(PKG_INSTALL_DIR)/usr/bin/deluge-gtk" ; \
$(RM) "$(PKG_INSTALL_DIR)/usr/share/man/man1/deluge-gtk.1" ; \
$(RM) -r "$(PKG_INSTALL_DIR)/usr/share/applications" ; \
$(RM) -r "$(PKG_INSTALL_DIR)$(PYTHON_PKG_DIR)/deluge/ui/gtkui")
endef
define Package/deluge/install
$(INSTALL_DIR) $(1)$(PYTHON_PKG_DIR) $(1)/usr/bin $(1)/etc/config $(1)/etc/init.d
$(CP) \
$(PKG_INSTALL_DIR)$(PYTHON_PKG_DIR)/* \
$(1)$(PYTHON_PKG_DIR)
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/* $(1)/usr/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/files/deluge.init $(1)/etc/init.d/deluge
$(INSTALL_CONF) $(PKG_BUILD_DIR)/files/deluge.config $(1)/etc/config/deluge
$(SED) 's,#!$(STAGING_DIR)/host/bin/$(PYTHON),#!/usr/bin/$(PYTHON),' $(1)/usr/bin/*
endef
$(eval $(call BuildPackage,deluge))

View File

@ -0,0 +1,5 @@
config global deluged
option 'user' 'deluge:deluge'
option 'home' ''
option 'options' ''
option 'enabled' 1

View File

@ -0,0 +1,60 @@
#!/bin/sh /etc/rc.common
# Copyright (C) 2010 OpenWrt.org
# Copyright (C) 2010 Alexander Sulfrian
NAME=deluge
PIDFILE=/var/run/deluged.pid
START=50
STOP=50
load_config()
{
config_get_bool enabled $1 enabled 0
[ "${enabled}" -eq 0 ] && return 1
config_get user $1 user
if [ "${user}" == "" ]; then
echo "Please check your uci config. User for '$1' should not be empty."
return 1
fi
username=$(echo ${user} | cut -d ':' -f 1)
group=$(echo ${user} | cut -d ':' -f 2)
if ! $(cut -d ':' -f 1 /etc/passwd | grep -sq "${username}"); then
echo "Please check your uci config. User for '$1' should exist."
return 1
fi
if [ "${group}" != "" ]; then
if ! $(cut -d ':' -f 1 /etc/passwd | grep -sq "${group}"); then
echo "Please check your uci config. Group for '$1' should exist."
return 1
fi
fi
}
start()
{
config_load "${NAME}"
load_config deluged || return $?
config_get options deluged options
config_get home deluged home
if [ "${home}" == "" ]; then
home=$(grep "^${username}:" /etc/passwd | cut -d ':' -f 6)
fi
HOME="${home}" /sbin/start-stop-daemon -S -u "${username}" \
-p "${PIDFILE}" -b -m -x "/usr/bin/python2.6" -a deluged \
-c "${user}" -- --do-not-daemonize ${options}
}
stop()
{
config_load "${NAME}"
load_config deluged || return $?
/sbin/start-stop-daemon -K -u "${username}" -n deluged -p "${PIDFILE}"
}