aboutsummaryrefslogtreecommitdiff
path: root/ftp/pure-ftpd
diff options
context:
space:
mode:
authorSunpoet Po-Chuan Hsieh <sunpoet@FreeBSD.org>2014-03-31 14:12:42 +0000
committerSunpoet Po-Chuan Hsieh <sunpoet@FreeBSD.org>2014-03-31 14:12:42 +0000
commit214c9d247819326fb7847a7c7013d484f8bbb6e0 (patch)
treea5545cc3b4ff9d801a92e4d27db4958b47d059f2 /ftp/pure-ftpd
parent159d365a45577143c387f580a44c3a71b3c92f58 (diff)
downloadports-214c9d247819326fb7847a7c7013d484f8bbb6e0.tar.gz
ports-214c9d247819326fb7847a7c7013d484f8bbb6e0.zip
- Add pure-authd support in rc script [1][2]
- Indent rc script - Cosmetic change - Bump PORTREVISION for package change PR: ports/163339 [1], ports/180992 [2] (based on) Submitted by: Gabor HALASZ <halasz.g@freemail.hu> [1] Ari Maniatis <ari@ish.com.au> [2]
Notes
Notes: svn path=/head/; revision=349753
Diffstat (limited to 'ftp/pure-ftpd')
-rw-r--r--ftp/pure-ftpd/Makefile2
-rw-r--r--ftp/pure-ftpd/files/pure-alwaysfail4
-rw-r--r--ftp/pure-ftpd/files/pure-ftpd.in91
-rw-r--r--ftp/pure-ftpd/pkg-plist1
4 files changed, 69 insertions, 29 deletions
diff --git a/ftp/pure-ftpd/Makefile b/ftp/pure-ftpd/Makefile
index 2ff3d7d9957c..508ea35ab3d6 100644
--- a/ftp/pure-ftpd/Makefile
+++ b/ftp/pure-ftpd/Makefile
@@ -3,6 +3,7 @@
PORTNAME= pure-ftpd
PORTVERSION= 1.0.36
+PORTREVISION= 1
CATEGORIES= ftp ipv6
MASTER_SITES= http://download.pureftpd.org/pub/pure-ftpd/releases/ \
ftp://ftp.pureftpd.org/pub/pure-ftpd/releases/ \
@@ -105,6 +106,7 @@ post-install:
${INSTALL_DATA} ${WRKSRC}/pureftpd-pgsql.conf ${STAGEDIR}${PREFIX}/etc/pureftpd-pgsql.conf.sample
${INSTALL_DATA} ${WRKSRC}/configuration-file/pure-ftpd.conf ${STAGEDIR}${PREFIX}/etc/pure-ftpd.conf.sample
${INSTALL_SCRIPT} ${WRKSRC}/configuration-file/pure-config.pl ${STAGEDIR}${PREFIX}/sbin/
+ ${INSTALL_SCRIPT} ${FILESDIR}/pure-alwaysfail ${STAGEDIR}${PREFIX}/sbin/
${MKDIR} ${STAGEDIR}${DOCSDIR}/
cd ${WRKSRC}/ && ${INSTALL_DATA} ${PORTDOCS} ${STAGEDIR}${DOCSDIR}/
${MKDIR} ${STAGEDIR}${EXAMPLESDIR}/
diff --git a/ftp/pure-ftpd/files/pure-alwaysfail b/ftp/pure-ftpd/files/pure-alwaysfail
new file mode 100644
index 000000000000..d5a4864c4f2a
--- /dev/null
+++ b/ftp/pure-ftpd/files/pure-alwaysfail
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+echo auth_ok:0
+echo end
diff --git a/ftp/pure-ftpd/files/pure-ftpd.in b/ftp/pure-ftpd/files/pure-ftpd.in
index c8a389076788..a0538b74e2e8 100644
--- a/ftp/pure-ftpd/files/pure-ftpd.in
+++ b/ftp/pure-ftpd/files/pure-ftpd.in
@@ -1,19 +1,26 @@
#!/bin/sh
-
+#
# $FreeBSD$
#
+
# PROVIDE: pureftpd
# REQUIRE: NETWORKING SERVERS
# BEFORE: DAEMON
# KEYWORD: shutdown
-#
+
# Add the following lines to /etc/rc.conf to enable pure-ftpd:
#
-# pureftpd_enable="YES"
+# pureftpd_enable="yes"
+#
+# Add the following lines to /etc/rc.conf to enable pure-authd daemon:
#
-# For launch uploadscript daemon define
-# pureftpd_upload_enable="YES"
-# pureftpd_uploadscript="/full/path/to/launch_script"
+# pureftpd_authd_enable="yes"
+# pureftpd_authdscript="/full/path/to/auth_script"
+#
+# Add the following lines to /etc/rc.conf to enable uploadscript daemon:
+#
+# pureftpd_upload_enable="yes"
+# pureftpd_uploadscript="/full/path/to/upload_script"
. /etc/rc.subr
@@ -23,42 +30,68 @@ rcvar=pureftpd_enable
load_rc_config $name
command=%%PREFIX%%/sbin/pure-config.pl
-command_upload=%%PREFIX%%/sbin/pure-uploadscript
-pureftpd_uploadscript=${pureftpd_uploadscript:-"/usr/bin/touch"}
-pureftpd_config=${pureftpd_config:-"%%PREFIX%%/etc/pure-ftpd.conf"}
-required_files=${pureftpd_config}
+command_args="${pureftpd_config} -g${pidfile}"
pidfile=/var/run/pure-ftpd.pid
-pidfile2=/var/run/pure-uploadscript.pid
procname=pure-ftpd
-
-pureftpd_enable=${pureftpd_enable:-"NO"}
-command_args="${pureftpd_config} -g${pidfile}"
+pureftpd_config=${pureftpd_config:-"%%PREFIX%%/etc/pure-ftpd.conf"}
+pureftpd_enable=${pureftpd_enable:-"no"}
+required_files=${pureftpd_config}
+# authd
+command_authd=%%PREFIX%%/sbin/pure-authd
+command_authd_args="-B -r ${pureftpd_authdscript} -s ${pureftpd_authsocket}"
+pidfile_authd=/var/run/pure-authd.pid
+pureftpd_authdscript=${pureftpd_authdscript:-"%%PREFIX%%/sbin/pure-alwaysfail"}
+pureftpd_authsocket=`%%PREFIX%%/sbin/pure-config.pl ${pureftpd_config} | grep -o ' -lextauth:[^ ]*' | cut -d: -f2`
+# uploadscript
+command_upload=%%PREFIX%%/sbin/pure-uploadscript
command_upload_args="-B -r ${pureftpd_uploadscript}"
+pidfile_uploadscript=/var/run/pure-uploadscript.pid
+pureftpd_uploadscript=${pureftpd_uploadscript:-"/usr/bin/touch"}
+start_precmd=start_precmd
start_postcmd=start_postcmd
stop_postcmd=stop_postcmd
+start_precmd()
+{
+ if test -n ${pureftpd_authd_enable:-""} && checkyesno pureftpd_authd_enable && test -x ${pureftpd_authdscript}; then
+ echo "Starting ${command_authd}."
+ ${command_authd} ${command_authd_args}
+ fi
+}
+
start_postcmd()
{
- if test -n ${pureftpd_upload_enable:-""} && checkyesno pureftpd_upload_enable; then
- echo "Starting ${command_upload}."
- ${command_upload} ${command_upload_args}
- fi
+ if test -n ${pureftpd_upload_enable:-""} && checkyesno pureftpd_upload_enable; then
+ echo "Starting ${command_upload}."
+ ${command_upload} ${command_upload_args}
+ fi
}
stop_postcmd()
{
- if test -n ${pureftpd_upload_enable:-""} && checkyesno pureftpd_upload_enable; then
- pid=$(check_pidfile ${pidfile2} ${command_upload})
- if [ -z ${pid} ]; then
- echo "Upload script not running? (check ${pidfile2})."
- return 1
- fi
- echo "Stopping ${command_upload}."
- kill -${sig_stop:-TERM} ${pid}
- [ $? -ne 0 ] && [ -z "$rc_force" ] && return 1
- wait_for_pids ${pid}
- fi
+ if test -n ${pureftpd_authd_enable:-""} && checkyesno pureftpd_authd_enable; then
+ pid=$(check_pidfile ${pidfile_authd} ${pidfile_authd} ${command_authd})
+ if [ -z ${pid} ]; then
+ echo "pure-authd not running? (check ${pidfile_authd})."
+ return 1
+ fi
+ echo "Stopping ${command_authd}."
+ kill -${sig_stop:-TERM} ${pid}
+ [ $? -ne 0 ] && [ -z "$rc_force" ] && return 1
+ wait_for_pids ${pid}
+ fi
+ if test -n ${pureftpd_upload_enable:-""} && checkyesno pureftpd_upload_enable; then
+ pid=$(check_pidfile ${pidfile_uploadscript} ${command_upload})
+ if [ -z ${pid} ]; then
+ echo "Upload script not running? (check ${pidfile_uploadscript})."
+ return 1
+ fi
+ echo "Stopping ${command_upload}."
+ kill -${sig_stop:-TERM} ${pid}
+ [ $? -ne 0 ] && [ -z "$rc_force" ] && return 1
+ wait_for_pids ${pid}
+ fi
}
run_rc_command "$1"
diff --git a/ftp/pure-ftpd/pkg-plist b/ftp/pure-ftpd/pkg-plist
index 4d04ae8d4813..ac8b7270ec14 100644
--- a/ftp/pure-ftpd/pkg-plist
+++ b/ftp/pure-ftpd/pkg-plist
@@ -14,6 +14,7 @@ man/man8/pure-pwconvert.8.gz
man/man8/pure-quotacheck.8.gz
man/man8/pure-statsdecode.8.gz
man/man8/pure-uploadscript.8.gz
+sbin/pure-alwaysfail
sbin/pure-authd
sbin/pure-config.pl
sbin/pure-ftpd