From 32039f7299b3b546709e168c723d81b69eab0efc Mon Sep 17 00:00:00 2001 From: Oliver Ertl Date: Mon, 15 Oct 2007 11:37:54 +0000 Subject: [PATCH] pure-ftpd: * Migrate configuration to UCI * Cleanup Makefile * Refresh patch SVN-Revision: 9325 --- net/pure-ftpd/Makefile | 32 +++++----- net/pure-ftpd/files/pure-ftpd.config | 10 ++++ net/pure-ftpd/files/pure-ftpd.init | 59 +++++++++++++++---- net/pure-ftpd/patches/001-cross_compile.patch | 6 +- 4 files changed, 78 insertions(+), 29 deletions(-) create mode 100644 net/pure-ftpd/files/pure-ftpd.config diff --git a/net/pure-ftpd/Makefile b/net/pure-ftpd/Makefile index 1d685fb8ca..d05172130c 100644 --- a/net/pure-ftpd/Makefile +++ b/net/pure-ftpd/Makefile @@ -1,5 +1,5 @@ # -# Copyright (C) 2006 OpenWrt.org +# Copyright (C) 2007 OpenWrt.org # # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. @@ -10,15 +10,10 @@ include $(TOPDIR)/rules.mk PKG_NAME:=pure-ftpd PKG_VERSION:=1.0.21 PKG_RELEASE:=1 -PKG_MD5SUM:=ca8a8dbec0cd9c8ea92fc4c37ea9c410 -PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION) -PKG_SOURCE_URL:=http://download.pureftpd.org/pub/pure-ftpd/releases/ PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 - -PKG_CAT:=bzcat - -PKG_INSTALL_DIR:=$(PKG_BUILD_DIR)/ipkg-install +PKG_SOURCE_URL:=http://download.pureftpd.org/pub/pure-ftpd/releases/ +PKG_MD5SUM:=ca8a8dbec0cd9c8ea92fc4c37ea9c410 include $(INCLUDE_DIR)/package.mk @@ -32,18 +27,23 @@ define Package/pure-ftpd endef define Package/pure-ftpd/description - Pure-FTPd is a free (BSD), secure, production-quality and standard-conformant FTP server.\ It doesn't provide useless bells and whistles, but focuses on efficiency and ease of use.\ It provides simple answers to common needs, plus unique useful features for personal users\ as well as hosting providers. + Pure-FTPd is a free (BSD), secure, production-quality and standard-conformant + FTP server. It doesn't provide useless bells and whistles, but focuses on + efficiency and ease of use. + It provides simple answers to common needs, plus unique useful features for + personal users as well as hosting providers. endef -define Build/Configure - $(call Build/Configure/Default,--with-everything) -endef +CONFIGURE_ARGS += \ + --with-everything \ define Package/pure-ftpd/install - $(INSTALL_DIR) $(1)/etc/init.d $(1)/usr/sbin - install -m0755 ./files/$(PKG_NAME).init $(1)/etc/init.d/$(PKG_NAME) - $(CP) $(PKG_BUILD_DIR)/src/pure-{ftpd,pw,ftpwho,mrtginfo,pwconvert,quotacheck,statsdecode,uploadscript,authd} $(1)/usr/sbin/ - $(CP) $(PKG_BUILD_DIR)/src/ptracetest $(1)/usr/sbin/ + $(INSTALL_DIR) $(1)/etc/config $(1)/etc/init.d $(1)/usr/sbin + $(INSTALL_DATA) ./files/$(PKG_NAME).config $(1)/etc/config/$(PKG_NAME) + $(INSTALL_BIN) ./files/$(PKG_NAME).init $(1)/etc/init.d/$(PKG_NAME) + $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/ptracetest $(1)/usr/sbin + $(INSTALL_BIN) $(foreach i,ftpd pw ftpwho mrtginfo pwconvert quotacheck statsdecode uploadscript authd, \ + $(PKG_BUILD_DIR)/src/pure-$(i)) $(1)/usr/sbin endef $(eval $(call BuildPackage,pure-ftpd)) diff --git a/net/pure-ftpd/files/pure-ftpd.config b/net/pure-ftpd/files/pure-ftpd.config new file mode 100644 index 0000000000..69aa7347f2 --- /dev/null +++ b/net/pure-ftpd/files/pure-ftpd.config @@ -0,0 +1,10 @@ +config pure-ftpd + option port '21' + option noanonymous '1' + option chrooteveryone '1' + option maxclientsperip '10' + option maxclientsnumber '4' + option peruserlimits '3:4' + option umask '133:022' + option authentication 'unix' + option enabled '0' diff --git a/net/pure-ftpd/files/pure-ftpd.init b/net/pure-ftpd/files/pure-ftpd.init index 8ac070343d..11315edc4b 100644 --- a/net/pure-ftpd/files/pure-ftpd.init +++ b/net/pure-ftpd/files/pure-ftpd.init @@ -2,20 +2,57 @@ # Copyright (C) 2006 OpenWrt.org START=50 -BIN=pure-ftpd -DEFAULT=/etc/default/$BIN -LOG_D=/var/log/$BIN -RUN_D=/var/run -PID_F=$RUN_D/$BIN.pid -OPTIONS="-A -B -c 10 -C 4 -E -lunix -U 133:022 -g $PID_F -y 3:4" -[ -f $DEFAULT ] && . $DEFAULT +SSD=start-stop-daemon +PIDF=/var/run/pure-ftpd.pid +PROG=/usr/sbin/pure-ftpd + +append_bool() { + local section="$1" + local option="$2" + local value="$3" + local _val + config_get_bool _val "$section" "$option" '0' + [ "$_val" -gt 0 ] && append args "$3" +} + +append_string() { + local section="$1" + local option="$2" + local value="$3" + local _val + config_get _val "$section" "$option" + [ -n "$_val" ] && append args "$3 $_val" +} + +start_service() { + local section="$1" + args="" + + append_string "$section" port "-S" + append_bool "$section" noanonymous "-E" + append_bool "$section" chrooteveryone "-A" + append_string "$section" maxclientsperip "-c" + append_string "$section" maxclientsnumber "-C" + append_string "$section" peruserlimits "-y" + append_string "$section" umask "-U" + append_string "$section" authentication "-l" + config_get_bool "enabled" "$section" "enabled" '1' + [ "$enabled" -gt 0 ] && $SSD -S -p $PIDF -q -x $PROG -- -g $PIDF -B $args +} + +stop_service() { + killall pure-ftpd 2>&1 > /dev/null + + # FIXME: Fix Busybox start-stop-daemon to work with multiple PIDs + # $SSD -K -p $PIDF -q +} start() { - mkdir -p $LOG_D - mkdir -p $RUN_D - $BIN $OPTIONS + config_load "pure-ftpd" + config_foreach start_service "pure-ftpd" } stop() { - [ -f $PID_F ] && kill $(cat $PID_F) + config_load "pure-ftpd" + config_foreach stop_service "pure-ftpd" } diff --git a/net/pure-ftpd/patches/001-cross_compile.patch b/net/pure-ftpd/patches/001-cross_compile.patch index 51d5aa9ef4..6152d8d1a5 100644 --- a/net/pure-ftpd/patches/001-cross_compile.patch +++ b/net/pure-ftpd/patches/001-cross_compile.patch @@ -1,5 +1,7 @@ ---- pure-ftpd-1.0.21/configure 2006-02-19 15:33:05.000000000 +0100 -+++ pure-ftpd-1.0.21.new/configure 2006-12-11 16:07:29.000000000 +0100 +Index: pure-ftpd-1.0.21/configure +=================================================================== +--- pure-ftpd-1.0.21.orig/configure 2007-10-14 22:03:46.000000000 +0200 ++++ pure-ftpd-1.0.21/configure 2007-10-14 22:03:46.000000000 +0200 @@ -9273,7 +9273,7 @@ if test "$cross_compiling" = yes; then { { echo "$as_me:$LINENO: error: internal error: not reached in cross-compile" >&5 -- 2.30.2