include $(TOPDIR)/rules.mk
PKG_NAME:=proftpd
-PKG_VERSION:=1.3.2e
+PKG_VERSION:=1.3.3
PKG_RELEASE:=1
-PKG_SOURCE_URL:=ftp://ftp.proftpd.org/distrib/source
-PKG_MD5SUM:=018e0eb1757d9cea2a0e17f2c9b1ca2d
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
+PKG_SOURCE_URL:=ftp://ftp.proftpd.org/distrib/source
+PKG_MD5SUM:=3951244f1940f0a40e8af142a9cf67fe
PKG_FIXUP:=libtool
-PKG_INSTALL=1
+PKG_INSTALL:=1
include $(INCLUDE_DIR)/package.mk
define Package/proftpd/install
$(INSTALL_DIR) $(1)/etc
+ $(if $(CONFIG_IPV6),,$(SED) 's/^UseIPv6/#UseIPv6/' $(PKG_INSTALL_DIR)/etc/proftpd.conf)
$(INSTALL_CONF) $(PKG_INSTALL_DIR)/etc/proftpd.conf $(1)/etc/
+ $(INSTALL_DIR) $(1)/etc/init.d
+ $(INSTALL_BIN) ./files/proftpd.init $(1)/etc/init.d/proftpd
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/ftp{count,top,who} $(1)/usr/bin/
$(INSTALL_DIR) $(1)/usr/sbin
$(CP) $(PKG_INSTALL_DIR)/usr/sbin/in.proftpd $(1)/usr/sbin/
endef
+define Package/proftpd/postinst
+#!/bin/sh
+
+name=ftp
+id=55
+home=/home/$${name}
+shell=/bin/ash
+
+# do not change below
+# # check if we are on real system
+if [ -z "$${IPKG_INSTROOT}" ]; then
+ # create copies of passwd and group, if we use squashfs
+ rootfs=`mount |awk '/root/ { print $$5 }'`
+ if [ "$$rootfs" = "squashfs" ]; then
+ if [ -h /etc/group ]; then
+ rm /etc/group
+ cp /rom/etc/group /etc/group
+ fi
+ if [ -h /etc/passwd ]; then
+ rm /etc/passwd
+ cp /rom/etc/passwd /etc/passwd
+ fi
+ fi
+fi
+
+echo ""
+if [ -z "$$(grep ^\\$${name}: $${IPKG_INSTROOT}/etc/group)" ]; then
+ echo "adding group $$name to /etc/group"
+ echo "$${name}:x:$${id}:" >> $${IPKG_INSTROOT}/etc/group
+fi
+
+if [ -z "$$(grep ^\\$${name}: $${IPKG_INSTROOT}/etc/passwd)" ]; then
+ echo "adding user $$name to /etc/passwd"
+ echo "$${name}:x:$${id}:$${id}:$${name}:$${home}:$${shell}" >> $${IPKG_INSTROOT}/etc/passwd
+fi
+endef
+
$(eval $(call BuildPackage,proftpd))
--- /dev/null
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2010 OpenWrt.org
+
+START=50
+
+BIN=/usr/sbin/proftpd
+HOME=/home/ftp
+RUN_D=/var
+PID_F=$RUN_D/proftpd.pid
+RUN_USER=ftp
+RUN_GROUP=$RUN_USER
+
+EXTRA_COMMANDS="suspend resume"
+EXTRA_HELP=" suspend Suspend the service
+ resume Resume the service"
+
+start() {
+ [ -d $HOME ] || ( mkdir -p $HOME && chown $RUN_USER:$RUN_GROUP $HOME )
+
+ [ ! -f $PID_F ] && $BIN
+}
+
+stop() {
+ [ -f $PID_F ] && kill $(cat $PID_F)
+}
+
+reload() {
+ [ -f $PID_F ] && kill -HUP $(cat $PID_F)
+}
+
+suspend() {
+ echo "Suspending NOW"
+ ftpshut now "Maintenance in progress"
+}
+
+resume() {
+ [ -f /etc/shutmsg ] && {
+ echo "Allowing sessions again"
+ ftpshut -R > /dev/null
+ }
+}