From ccb1a4d414b45bda480f0a42598ced299c18113b Mon Sep 17 00:00:00 2001 From: "Scott V. Kamp" Date: Sat, 13 Mar 2010 03:02:58 +0000 Subject: [PATCH] [patchteam] - New Package - Deluge - with daemon, console and web ui Singed off by alexander@sulfrian.net SVN-Revision: 20178 --- net/deluge/Makefile | 86 ++++++++++++++++++++++++++++++++++ net/deluge/files/deluge.config | 5 ++ net/deluge/files/deluge.init | 60 ++++++++++++++++++++++++ 3 files changed, 151 insertions(+) create mode 100644 net/deluge/Makefile create mode 100644 net/deluge/files/deluge.config create mode 100644 net/deluge/files/deluge.init diff --git a/net/deluge/Makefile b/net/deluge/Makefile new file mode 100644 index 0000000000..8f8ac5d1d8 --- /dev/null +++ b/net/deluge/Makefile @@ -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)) diff --git a/net/deluge/files/deluge.config b/net/deluge/files/deluge.config new file mode 100644 index 0000000000..576379f8a6 --- /dev/null +++ b/net/deluge/files/deluge.config @@ -0,0 +1,5 @@ +config global deluged + option 'user' 'deluge:deluge' + option 'home' '' + option 'options' '' + option 'enabled' 1 diff --git a/net/deluge/files/deluge.init b/net/deluge/files/deluge.init new file mode 100644 index 0000000000..234a13db68 --- /dev/null +++ b/net/deluge/files/deluge.init @@ -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}" +} -- 2.30.2