1PORTNAME?= proftpd 2.if !defined(DISTVERSION) 3PORTVERSION?= ${PROFTPD_VERSION} 4.endif 5PORTREVISION?= 0 6CATEGORIES?= ftp 7MASTER_SITES= ftp://ftp.proftpd.org/distrib/source/ \ 8 https://github.com/downloads/proftpd/proftpd.github.com/ \ 9 ftp://ftpmirror.uk/ftp.proftpd.org/distrib/source/ \ 10 http://www.mirrorservice.org/sites/ftp.proftpd.org/distrib/source/ 11.if defined(_BUILDING_PROFTPD_MODULE) 12DISTNAME= proftpd-${PROFTPD_VERSION} 13.endif 14 15MAINTAINER?= ports@MidnightBSD.org 16COMMENT?= Highly configurable FTP daemon 17WWW?= http://www.proftpd.org/ 18 19LICENSE?= gpl2 20LICENSE_FILE?= ${WRKSRC}/COPYING 21 22.if defined(_BUILDING_PROFTPD_MODULE) 23BUILD_DEPENDS+= ${LOCALBASE}/sbin/proftpd:ftp/proftpd 24RUN_DEPENDS+= ${LOCALBASE}/sbin/proftpd:ftp/proftpd 25.endif 26 27PROFTPD_VERSION= 1.3.8b 28 29CPE_VENDOR= proftpd 30CPE_PRODUCT= proftpd 31 32.if defined(_BUILDING_PROFTPD_MODULE) 33DISTFILES+= ${DISTNAME}${EXTRACT_SUFX} 34EXTRACT_ONLY+= ${DISTNAME}${EXTRACT_SUFX} 35WRKSRC= ${WRKDIR}/proftpd-${PROFTPD_VERSION} 36. if defined(_PROFTPD_MODULE_EXTRACT_ONLY) 37EXTRACT_ONLY+= ${_PROFTPD_MODULE_EXTRACT_ONLY} 38. endif 39. if defined(_PROFTPD_MODULE_DISTFILES) 40DISTFILES+= ${_PROFTPD_MODULE_DISTFILES} 41DISTINFO_FILE= ${.CURDIR}/distinfo 42. endif 43. if defined(_PROFTPD_MODULE_MASTER_SITES) 44MASTER_SITES+= ${_PROFTPD_MODULE_MASTER_SITES} 45. endif 46.endif 47 48.if !defined(_BUILDING_PROFTPD_MODULE) 49PORTDOCS= * 50.endif 51 52MAKE_JOBS_UNSAFE= yes 53USES+= gmake libtool 54GNU_CONFIGURE= yes 55 56.if !defined(_BUILDING_PROFTPD_MODULE) 57USES+= cpe ssl 58USE_RC_SUBR= proftpd 59.endif 60 61LOCALSTATEDIR?= /var/run 62 63CONFIGURE_ARGS=--localstatedir=${LOCALSTATEDIR} \ 64 --libexecdir=${PREFIX}/libexec/proftpd \ 65 --with-pkgconfig=libdata/pkgconfig \ 66 --sysconfdir=${PREFIX}/etc \ 67 --enable-ctrls \ 68 --enable-dso \ 69 --disable-sendfile 70 71CONFIGURE_ENV+= install_user=`${ID} -u` \ 72 install_group=`${ID} -g` 73 74.if defined(_BUILDING_PROFTPD_MODULE) 75MODULES= ${_BUILDING_PROFTPD_MODULE} 76.for m in ${MODULES} 77__MODULES:=${__MODULES}:${m} 78.endfor 79CONFIGURE_ARGS+= --with-shared=${__MODULES:C/^://g} 80INCLUDEDIRS:=${INCLUDEDIRS}:${LOCALBASE}/include/proftpd 81ALL_TARGET= shared 82BUILD_WRKSRC= ${WRKSRC}/modules 83INSTALL_WRKSRC= ${WRKSRC}/modules 84PLIST= ${WRKDIR}/PLIST 85.for m in ${MODULES} 86PLIST_FILES+= libexec/proftpd/${m}.a \ 87 libexec/proftpd/${m}.so 88.endfor 89.else 90OPTIONS_DEFINE= DOCS HTMLDOCS IPV6 NLS MEMCACHE REDIS 91OPTIONS_DEFAULT= PCRE2 92 93OPTIONS_RADIO+= PCREVER 94OPTIONS_RADIO_PCREVER= PCRE1 PCRE2 95 96HTMLDOCS_DESC= Include HTML documentation 97MEMCACHE_DESC= Memcache support using libmemcached 98PCREVER_DESC= PCRE library to use 99PCRE1_DESC= ${PCRE_DESC} 100PCRE2_DESC= ${PCRE_DESC} version 2 101REDIS_DESC= Redis support using hiredis 102 103PLIST_SUB+= LOCALSTATEDIR="${LOCALSTATEDIR}" 104OPTIONS_SUB= yes 105 106.endif #!defined(_BUILDING_PROFTPD_MODULE) 107 108.if !defined(_BUILDING_PROFTPD_MODULE) 109CPPFLAGS+= -DHAVE_OPENSSL -I${OPENSSLINC} 110LIBS+= -lssl -lcrypto -L${OPENSSLLIB} 111LDFLAGS+= -lpthread 112.endif 113 114.if !defined(_BUILDING_PROFTPD_MODULE) 115LIBDIRS?= ${LOCALBASE}/lib 116INCLUDEDIRS?= ${LOCALBASE}/include 117 118# Always built modules 119MODULES+= mod_ban \ 120 mod_copy \ 121 mod_ctrls_admin \ 122 mod_deflate \ 123 mod_dnsbl \ 124 mod_dynmasq \ 125 mod_exec \ 126 mod_ifsession \ 127 mod_ifversion \ 128 mod_qos \ 129 mod_quotatab \ 130 mod_quotatab_file \ 131 mod_quotatab_radius \ 132 mod_quotatab_sql \ 133 mod_radius \ 134 mod_ratio \ 135 mod_readme \ 136 mod_rewrite \ 137 mod_sftp \ 138 mod_sftp_pam \ 139 mod_sftp_sql \ 140 mod_shaper \ 141 mod_site_misc \ 142 mod_snmp \ 143 mod_sql \ 144 mod_sql_passwd \ 145 mod_tls \ 146 mod_tls_shmcache \ 147 mod_unique_id \ 148 mod_wrap2 \ 149 mod_wrap2_file \ 150 mod_wrap2_sql 151 152IPV6_CONFIGURE_ENABLE=ipv6 153 154NLS_CONFIGURE_ON= --enable-nls 155NLS_USES= gettext iconv 156 157PCRE1_CONFIGURE_ENABLE= pcre 158PCRE1_CONFIGURE_ON= --disable-pcre2 159PCRE1_LIB_DEPENDS= libpcre.so:devel/pcre 160 161PCRE2_CONFIGURE_ENABLE= pcre2 162PCRE2_CONFIGURE_ON= --disable-pcre 163PCRE2_LIB_DEPENDS= libpcre2-8.so:devel/pcre2 164 165MEMCACHE_LIB_DEPENDS= libmemcached.so:databases/libmemcached 166MEMCACHE_CONFIGURE_ENABLE= memcache 167MEMCACHE_VARS= MODULES+="mod_memcache mod_tls_memcache" \ 168 LIBS+="-L${LOCALBASE}/lib -lmemcached -lmemcachedutil" 169 170REDIS_LIB_DEPENDS= libhiredis.so:databases/hiredis 171REDIS_CONFIGURE_ENABLE= redis 172REDIS_VARS= MODULES+="mod_redis mod_tls_redis mod_wrap2_redis" \ 173 LIBS+="-L${LOCALBASE}/lib -lhiredis" 174 175.include <bsd.mport.options.mk> 176 177# Generate modules configuration string 178.for m in ${MODULES} 179_MODULES:=${_MODULES}:${m} 180.endfor 181 182# Keep this here below, in case similar constructs need to be made 183CONFIGURE_ARGS+= --with-shared=${_MODULES:C/^://g} 184 185.endif #!defined(_BUILDING_PROFTPD_MODULE) 186 187CONFIGURE_ARGS+= --with-includes=${INCLUDEDIRS} 188CONFIGURE_ARGS+= --with-libraries=${LIBDIRS} 189 190.include <bsd.port.pre.mk> 191 192.if !defined(_BUILDING_PROFTPD_MODULE) 193 194.if empty(ICONV_PREFIX) 195CONFIGURE_ARGS+= ac_cv_lib_iconv_iconv_open=no \ 196 ac_cv_lib_iconv_libiconv_open=no 197.endif 198 199post-patch: 200 @${REINPLACE_CMD} -e 's|proftpd\.conf |proftpd.conf.sample |g' ${WRKSRC}/Makefile.in 201 202pre-configure: 203 @${ECHO_MSG} "==> Configuring with following modules:" 204 @${ECHO_MSG} "${MODULES:C/^://g}" 205 206post-configure: 207 ${REINPLACE_CMD} -e 's: -lnsl::' ${WRKSRC}/Make.rules 208 ${REINPLACE_CMD} -e 's:/usr/sbin:${PREFIX}/sbin:' \ 209 -e 's:/usr/bin:${PREFIX}/bin:' \ 210 ${WRKSRC}/src/proftpd.8 ${WRKSRC}/utils/ftpshut.8 \ 211 ${WRKSRC}/utils/ftpcount.1 212 213.endif #!defined(_BUILDING_PROFTPD_MODULE) 214 215.if defined(_BUILDING_PROFTPD_MODULE) 216pre-build: 217 @cd ${WRKSRC} && ${MAKE_CMD} include/buildstamp.h 218 219pre-install: 220 @${MKDIR} ${PREFIX}/libexec/proftpd 221 222.else 223post-install: 224 @${MKDIR} /var/run/proftpd 225.if ${PORT_OPTIONS:MDOCS} 226 @${INSTALL} -d ${DOCSDIR} 227 @cd ${WRKSRC} && ${CP} README* RELEASE_NOTES ${DOCSDIR} 228 @cd ${WRKSRC}/doc/ && ${INSTALL_DATA} license.txt ${DOCSDIR} 229. if ${PORT_OPTIONS:MHTMLDOCS} 230 @${INSTALL} -d ${DOCSDIR}/html 231 @cd ${WRKSRC}/doc/ && ${INSTALL_DATA} faq.html ${DOCSDIR}/html 232 @${CP} -RP ${WRKSRC}/doc/contrib ${DOCSDIR}/html/contrib 233 @${CP} -RP ${WRKSRC}/doc/modules ${DOCSDIR}/html/modules 234 @${CP} -RP ${WRKSRC}/doc/howto ${DOCSDIR}/html/howto 235. endif 236.endif 237 @${INSTALL_MAN} ${WRKSRC}/src/ftpdctl.8 ${PREFIX}/share/man/man8/ 238.endif #!defined(_BUILDING_PROFTPD_MODULE) 239 240.include <bsd.port.post.mk> 241