# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4 # $Id$ PortSystem 1.0 name pure-ftpd set pretty_name Pure-FTPd version 1.0.42 categories net platforms darwin maintainers pixilla openmaintainer license BSD homepage http://pureftpd.org/ description ${pretty_name} is a fast, production-quality, standard-conformant FTP (SSL/TLS) \ server, based upon Troll-FTPd. long_description ${pretty_name} has been designed to be secure in default configuration\; it has no\ known vulnerabilities. Features include: virtual domains, built-in 'ls', \ anti-warez system, configurable ports for passive downloads, FXP protocol, \ bandwidth throttling, ratios, LDAP / MySQL / PostgreSQL-based authentication,\ fortune files, Apache-like log files, text / HTML / XML real-time status report,\ virtual users, virtual quotas, privilege separation, SSL/TLS and more. master_sites ftp://ftp.pureftpd.org/pure-ftpd/releases/ \ ftp://ftp.fr.pureftpd.org/pure-ftpd/releases/ \ http://download.pureftpd.org/pub/pure-ftpd/releases/ use_bzip2 yes checksums rmd160 9e169a59846be32006842f5fb575f98657ffa26f \ sha256 efd11295998453e31dbeef9159624beabbac2643a338134ae8c2ef529aa2ec10 livecheck.type regex livecheck.url http://download.pureftpd.org/pub/${name}/releases/ livecheck.regex ${name}-(\[0-9.\]+)\\.tar configure.args --with-everything \ --with-pam \ --with-virtualchroot \ --with-paranoidmsg \ --with-bonjour \ --without-inetd \ --mandir=${prefix}/share/man \ --infodir=${prefix}/share/info \ --sysconfdir=${prefix}/etc/${name}/conf \ --localstatedir=${prefix}/var destroot.destdir prefix=${destroot}${prefix} \ mandir=${destroot}${prefix}/share/man destroot.keepdirs ${destroot}${prefix}/etc/${name}/ssl \ ${destroot}${prefix}/etc/${name}/conf \ ${destroot}${prefix}/var/log/${name} post-destroot { file mkdir ${destroot}${prefix}/etc/${name}/ssl file mkdir ${destroot}${prefix}/etc/${name}/conf file mkdir ${destroot}${prefix}/var/log/${name} file mkdir ${destroot}${prefix}/share/doc/${name} # Install the notes and readme files xinstall -m 644 -W ${worksrcpath} \ AUTHORS ChangeLog CONTACT COPYING FAQ HISTORY INSTALL NEWS README \ pureftpd-ldap.conf pureftpd-mysql.conf pureftpd-pgsql.conf pureftpd.schema \ README.Authentication-Modules README.Configuration-File \ README README.Authentication-Modules README.Configuration-File README.Contrib \ README.Donations README.LDAP README.PGSQL README.TLS \ README.MySQL README.Virtual-Users README.MySQL README.PGSQL README.TLS README.Virtual-Users \ THANKS \ ${destroot}${prefix}/share/doc/${name} # Install in the modified README.MacOS-X file xinstall -m 644 ${filespath}/README.MacOS-X ${destroot}${prefix}/share/doc/${name}/README.MacOS-X reinplace "s|@PREFIX@|${prefix}|g" ${destroot}${prefix}/share/doc/${name}/README.MacOS-X # Copy in the sample launchd plists item file copy ${filespath}/org.pure-ftpd.ftpd.plist.basic.sample.in ${destroot}${prefix}/share/doc/${name}/org.pure-ftpd.ftpd.plist.basic.sample reinplace "s|@PREFIX@|${prefix}|g" ${destroot}${prefix}/share/doc/${name}/org.pure-ftpd.ftpd.plist.basic.sample # Copy in the sample pure-ftpd pam file file copy ${filespath}/pure-ftpd.pam.10.5.sample ${destroot}${prefix}/share/doc/${name}/pure-ftpd.pam.10.5.sample file copy ${filespath}/pure-ftpd.pam.10.6.sample ${destroot}${prefix}/share/doc/${name}/pure-ftpd.pam.10.6.sample } # Variants variant uploadscript description "Configures ${name} to support post processing of uploaded files" { configure.args-append --with-uploadscript } variant mysql5 \ conflicts mysql51 mysql55 mysql56 mysql57 mariadb percona \ description "Enable MySQL 5.1 support" { depends_lib-append port:mysql5 configure.env-append PATH=${prefix}/lib/mysql5/bin:$env(PATH) configure.args-append --with-mysql } variant mysql51 \ conflicts mysql5 mysql55 mysql56 mysql57 mariadb percona \ description "Enable MySQL 5.1 support" { depends_lib-append port:mysql51 configure.env-append PATH=${prefix}/lib/mysql51/bin:$env(PATH) configure.args-append --with-mysql } variant mysql55 \ conflicts mysql5 mysql51 mysql56 mysql57 mariadb percona \ description "Enable MySQL 5.5 support" { depends_lib-append port:mysql55 configure.env-append PATH=${prefix}/lib/mysql55/bin:$env(PATH) configure.args-append --with-mysql } variant mysql56 \ conflicts mysql5 mysql51 mysql55 mysql57 mariadb percona \ description "Enable MySQL 5.6 support" { depends_lib-append port:mysql56 configure.env-append PATH=${prefix}/lib/mysql56/bin:$env(PATH) configure.args-append --with-mysql } variant mysql57 \ conflicts mysql5 mysql51 mysql55 mysql56 mariadb percona \ description "Enable MySQL 5.6 support" { depends_lib-append port:mysql57 configure.env-append PATH=${prefix}/lib/mysql57/bin:$env(PATH) configure.args-append --with-mysql } variant mariadb \ conflicts mysql5 mysql51 mysql55 mysql56 mysql57 percona \ description "Enable MariaDB (MySQL) support" { depends_lib-append port:mariadb configure.env-append PATH=${prefix}/lib/mariadb/bin:$env(PATH) configure.args-append --with-mysql } variant percona \ conflicts mysql5 mysql51 mysql55 mysql56 mysql57 mariadb \ description "Enable Percona (MySQL) support" { depends_lib-append port:percona configure.env-append PATH=${prefix}/lib/percona/bin:$env(PATH) configure.args-append --with-mysql=yes } variant postgresql82 \ conflicts mysql5 postgresql83 postgresql84 \ description "Enable PostgreSQL 8.2 support" { depends_lib-append port:postgresql82 configure.args-append --with-pgsql configure.env-append PATH=${prefix}/lib/postgresql82/bin:$env(PATH) } variant postgresql83 \ conflicts mysql5 postgresql82 postgresql84 \ description "Enable PostgreSQL 8.3 support" { depends_lib-append port:postgresql83 configure.args-append --with-pgsql configure.env-append PATH=${prefix}/lib/postgresql83/bin:$env(PATH) } variant postgresql84 \ conflicts mysql5 postgresql82 postgresql83 \ description "Enable PostgreSQL 8.4 support" { depends_lib-append port:postgresql84 configure.args-append --with-pgsql configure.env-append PATH=${prefix}/lib/postgresql84/bin:$env(PATH) } variant tls \ description "Encryption of ftp control and data channels using SSL/TLS" { depends_lib-append path:lib/libssl.dylib:openssl configure.args-append --with-tls \ --with-certfile=${prefix}/etc/${name}/ssl/pure-ftpd.pem } # Language variants, should only be able to choose one. set variants { lang_brazilian lang_czech lang_danish lang_dutch lang_french lang_french_funny lang_german lang_italian lang_korean lang_norwegian lang_polish lang_romanian lang_russian lang_simplified_chinese lang_slovak lang_spanish lang_swedish lang_trad_chinese } foreach variant_name $variants { # Quick way to remove the working variant from the list set the_conflicts [lsearch -all -inline -not -exact $variants $variant_name] # String replace away the lang_ part, as that is not part of the name used for the compile args set variant_configure_name [string map {"lang_" ""} $variant_name] set variant_line "variant $variant_name conflicts $the_conflicts description \"Use $variant_name for server messages\" { configure.args-append --with-language=$variant_configure_name }" eval $variant_line } # Notify the user how to launch the ftpd post-activate { ui_msg "========================================================================" ui_msg "${pretty_name} documentation is located in: ${prefix}/share/doc/${name}" ui_msg "" ui_msg "You can start ${pretty_name} from the command line with:" ui_msg " sudo ${prefix}/sbin/${name} &" ui_msg "A future release of ${pretty_name} will no longer support" ui_msg "xinetd, and has been removed from this version. If you are using that" ui_msg "method to start ${pretty_name} now, please switch to using launchd(8)." ui_msg "" ui_msg "A sample launchd plist has been created to get you started." ui_msg " 1) org.pure-ftpd.ftpd.plist.basic.sample" ui_msg " Basic but secure chrooted ftp server" ui_msg "" ui_msg "To install the launchd item, issue the following commands:" ui_msg "cd ${prefix}/share/doc/${name}/" ui_msg "sudo cp org.pure-ftpd.ftpd.plist.basic.sample /Library/LaunchDaemons/org.pure-ftpd.ftpd.plist" ui_msg " - and then load the launchd item - " ui_msg "sudo launchctl load -w /Library/LaunchDaemons/org.pure-ftpd.ftpd.plist" ui_msg "" ui_msg "If you intend to use pure-FTPd with PAM, meaning you want to authenticate against Mac OS X" ui_msg "user accounts, please copy the pure-ftpd.pam.10.x.sample file to /etc/pam.d/pure-ftpd" ui_msg "cd ${prefix}/share/doc/${name}/" ui_msg "sudo cp pure-ftpd.pam.10.x.sample /etc/pam.d/pure-ftpd" ui_msg "You can now test the server with:" ui_msg " ftp localhost" ui_msg "You should see a Welcome to ${pretty_name} message." ui_msg "" ui_msg "See ${homepage} for more information." ui_msg "========================================================================" }