diff --git a/ftp/pure-ftpd/Makefile b/ftp/pure-ftpd/Makefile index bc8c1e93a8db..f79ea5b2cea8 100644 --- a/ftp/pure-ftpd/Makefile +++ b/ftp/pure-ftpd/Makefile @@ -1,96 +1,97 @@ PORTNAME= pure-ftpd PORTVERSION= 1.0.53 +PORTREVISION= 1 CATEGORIES= ftp MASTER_SITES= https://download.pureftpd.org/pub/pure-ftpd/releases/ MAINTAINER= sunpoet@FreeBSD.org COMMENT= Small, easy to set up, fast, and secure FTP server WWW= https://www.pureftpd.org/ \ https://github.com/jedisct1/pure-ftpd LICENSE= ISCL LICENSE_FILE= ${WRKSRC}/COPYING USES= cpe tar:bzip2 CONFIGURE_ARGS= --sysconfdir=${PREFIX}/etc \ --with-altlog --with-cookie --with-diraliases \ --with-everything --with-extauth --with-ftpwho \ --with-language=${LANGUAGE} --with-paranoidmsg --with-puredb \ --with-quotas --with-ratios GNU_CONFIGURE= yes USE_RC_SUBR= pure-ftpd SUB_FILES= pkg-message CPE_VENDOR= pureftpd LANGUAGE?= english OPTIONS_DEFINE= ANONDELETE ANONRENAME ANONRESUME DOCS EXAMPLES LARGEFILE LDAP MYSQL PAM PERUSERLIMITS PGSQL PRIVSEP SCRYPT SENDFILE THROTTLING TLS UPLOADSCRIPT VIRTUALCHROOT OPTIONS_DEFAULT=LARGEFILE PAM PERUSERLIMITS PRIVSEP SCRYPT SENDFILE THROTTLING TLS UPLOADSCRIPT VIRTUALCHROOT ANONDELETE_DESC= Allow anonymous user to delete files ANONRENAME_DESC= Allow anonymous user to rename files ANONRESUME_DESC= Allow anonymous user to resume file upload LARGEFILE_DESC= 2GB+ file download LDAP_DESC= User accounts in LDAP directories MYSQL_DESC= User accounts in MySQL database PAM_DESC= PAM authentication PGSQL_DESC= User accounts in PostgreSQL database PERUSERLIMITS_DESC= Per-user concurrency limits PRIVSEP_DESC= Privilege separation (recommended) SCRYPT_DESC= Hash passwords in PureDB with scrypt SENDFILE_DESC= Sendfile syscall THROTTLING_DESC= Bandwidth throttling UPLOADSCRIPT_DESC= Uploadscript daemon support VIRTUALCHROOT_DESC= Follow symlinks outside a chroot jail ANONDELETE_CPPFLAGS= -DANON_CAN_DELETE ANONRENAME_CPPFLAGS= -DANON_CAN_RENAME ANONRESUME_CPPFLAGS= -DANON_CAN_RESUME LARGEFILE_CONFIGURE_ENABLE= largefile LDAP_CONFIGURE_WITH= ldap LDAP_USES= ldap MYSQL_CONFIGURE_WITH= mysql MYSQL_USES= mysql PAM_CONFIGURE_WITH= pam PERUSERLIMITS_CONFIGURE_WITH= peruserlimits PGSQL_CONFIGURE_WITH= pgsql PGSQL_USES= pgsql PRIVSEP_CONFIGURE_WITH= privsep SCRYPT_LIB_DEPENDS= libsodium.so:security/libsodium SENDFILE_CONFIGURE_WITH=sendfile THROTTLING_CONFIGURE_WITH= throttling TLS_CONFIGURE_WITH= tls TLS_CPPFLAGS= -I${OPENSSLINC} TLS_LDFLAGS= -L${OPENSSLLIB} TLS_USES= ssl UPLOADSCRIPT_CONFIGURE_WITH= uploadscript VIRTUALCHROOT_CONFIGURE_WITH= virtualchroot pre-fetch: @${ECHO_MSG} "You can use the following additional options:" @${ECHO_MSG} "" @${ECHO_MSG} "LANGUAGE=lang (default: english)" @${ECHO_MSG} "- Enable compilation of one language support" @${ECHO_MSG} " available lang: albanian, brazilian-portuguese, catalan, czech, danish, dutch," @${ECHO_MSG} " english, french, german, hungarian, italian, korean, norwegian, polish," @${ECHO_MSG} " romanian, russian, simplified-chinese, slovak, spanish, swedish," @${ECHO_MSG} " traditional-chinese." @${ECHO_MSG} "" post-install: ${MV} ${STAGEDIR}${PREFIX}/etc/pure-ftpd.conf ${STAGEDIR}${PREFIX}/etc/pure-ftpd.conf.sample ${INSTALL_DATA} ${WRKSRC}/pureftpd-ldap.conf ${STAGEDIR}${PREFIX}/etc/pureftpd-ldap.conf.sample ${INSTALL_DATA} ${WRKSRC}/pureftpd-mysql.conf ${STAGEDIR}${PREFIX}/etc/pureftpd-mysql.conf.sample ${INSTALL_DATA} ${WRKSRC}/pureftpd-pgsql.conf ${STAGEDIR}${PREFIX}/etc/pureftpd-pgsql.conf.sample ${INSTALL_SCRIPT} ${FILESDIR}/pure-alwaysfail ${STAGEDIR}${PREFIX}/sbin/ post-install-DOCS-on: ${INSTALL_DATA} ${WRKSRC}/README ${STAGEDIR}${DOCSDIR}/ post-install-EXAMPLES-on: ${MKDIR} ${STAGEDIR}${EXAMPLESDIR}/pam.d/ ${INSTALL_DATA} ${FILESDIR}/pam.conf.5 ${STAGEDIR}${EXAMPLESDIR}/pam.d/pure-ftpd .include diff --git a/ftp/pure-ftpd/files/pure-ftpd.in b/ftp/pure-ftpd/files/pure-ftpd.in index fb71a8f84dd3..ee6e348759be 100644 --- a/ftp/pure-ftpd/files/pure-ftpd.in +++ b/ftp/pure-ftpd/files/pure-ftpd.in @@ -1,100 +1,99 @@ #!/bin/sh # 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_flags="" # # Add the following lines to /etc/rc.conf to enable pure-authd daemon: # # pureftpd_authd_enable="yes" # pureftpd_authdscript="/full/path/to/auth_script" # pureftpd_authsocket="/var/run/ftpd.sock" # # 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 name=pureftpd rcvar=pureftpd_enable load_rc_config $name command=%%PREFIX%%/sbin/pure-ftpd procname=pure-ftpd pureftpd_config=${pureftpd_config:-"%%PREFIX%%/etc/pure-ftpd.conf"} +: ${pureftpd_flags:=$pureftpd_config} pureftpd_enable=${pureftpd_enable:-"no"} pureftpd_pidfile=${pureftpd_pidfile:-"/var/run/pure-ftpd.pid"} required_files=${pureftpd_config} # authd command_authd=%%PREFIX%%/sbin/pure-authd pidfile_authd=${pidfile_authd:-"/var/run/pure-authd.pid"} pureftpd_authd_enable=${pureftpd_authd_enable:-"no"} pureftpd_authdscript=${pureftpd_authdscript:-"%%PREFIX%%/sbin/pure-alwaysfail"} pureftpd_authsocket=${pureftpd_authsocket:-"/var/run/ftpd.sock"} # uploadscript command_upload=%%PREFIX%%/sbin/pure-uploadscript pidfile_uploadscript=${pidfile_uploadscript:-"/var/run/pure-uploadscript.pid"} pureftpd_upload_enable=${pureftpd_upload_enable:-"no"} pureftpd_uploadscript=${pureftpd_uploadscript:-"/usr/bin/touch"} # command_args -flags="${pureftpd_config}" -command_args="${pureftpd_flags}" command_authd_args="-B -p ${pidfile_authd} -r ${pureftpd_authdscript} -s ${pureftpd_authsocket}" command_upload_args="-B -p ${pidfile_uploadscript} -r ${pureftpd_uploadscript}" start_precmd=start_precmd start_postcmd=start_postcmd stop_postcmd=stop_postcmd start_precmd() { if checkyesno pureftpd_authd_enable && test -x ${pureftpd_authdscript}; then echo "Starting ${command_authd}." ${command_authd} ${command_authd_args} fi } start_postcmd() { if checkyesno pureftpd_upload_enable; then echo "Starting ${command_upload}." ${command_upload} ${command_upload_args} fi } stop_postcmd() { if checkyesno pureftpd_authd_enable; then pid=$(check_pidfile ${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 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 b87239c7b0a2..aa53006c4768 100644 --- a/ftp/pure-ftpd/pkg-plist +++ b/ftp/pure-ftpd/pkg-plist @@ -1,41 +1,41 @@ bin/pure-pw bin/pure-pwconvert bin/pure-statsdecode -etc/pure-ftpd.conf.sample -etc/pureftpd-ldap.conf.sample -etc/pureftpd-mysql.conf.sample -etc/pureftpd-pgsql.conf.sample +@sample etc/pure-ftpd.conf.sample +@sample etc/pureftpd-ldap.conf.sample +@sample etc/pureftpd-mysql.conf.sample +@sample etc/pureftpd-pgsql.conf.sample sbin/pure-alwaysfail sbin/pure-authd sbin/pure-certd sbin/pure-ftpd sbin/pure-ftpwho sbin/pure-mrtginfo sbin/pure-quotacheck sbin/pure-uploadscript %%PORTDOCS%%%%DOCSDIR%%/FAQ %%PORTDOCS%%%%DOCSDIR%%/README %%PORTDOCS%%%%DOCSDIR%%/README.Authentication-Modules %%PORTDOCS%%%%DOCSDIR%%/README.Configuration-File %%PORTDOCS%%%%DOCSDIR%%/README.LDAP %%PORTDOCS%%%%DOCSDIR%%/README.MacOS-X %%PORTDOCS%%%%DOCSDIR%%/README.MySQL %%PORTDOCS%%%%DOCSDIR%%/README.PGSQL %%PORTDOCS%%%%DOCSDIR%%/README.TLS %%PORTDOCS%%%%DOCSDIR%%/README.Virtual-Users %%PORTDOCS%%%%DOCSDIR%%/pure-ftpd.conf %%PORTDOCS%%%%DOCSDIR%%/pureftpd-ldap.conf %%PORTDOCS%%%%DOCSDIR%%/pureftpd-mysql.conf %%PORTDOCS%%%%DOCSDIR%%/pureftpd-pgsql.conf %%PORTDOCS%%%%DOCSDIR%%/pureftpd.schema %%PORTEXAMPLES%%%%EXAMPLESDIR%%/pam.d/pure-ftpd share/man/man8/pure-authd.8.gz share/man/man8/pure-certd.8.gz share/man/man8/pure-ftpd.8.gz share/man/man8/pure-ftpwho.8.gz share/man/man8/pure-mrtginfo.8.gz share/man/man8/pure-pw.8.gz share/man/man8/pure-pwconvert.8.gz share/man/man8/pure-quotacheck.8.gz share/man/man8/pure-statsdecode.8.gz share/man/man8/pure-uploadscript.8.gz