Index: head/ftp/proftpd/Makefile =================================================================== --- head/ftp/proftpd/Makefile (revision 440870) +++ head/ftp/proftpd/Makefile (revision 440871) @@ -1,229 +1,226 @@ # Created by: Stephane Legrand # $FreeBSD$ PORTNAME?= proftpd .if !defined(DISTVERSION) PORTVERSION?= ${PROFTPD_VERSION} .endif PORTREVISION?= 0 CATEGORIES?= ftp MASTER_SITES= ftp://ftp.proftpd.org/distrib/source/ \ https://github.com/downloads/proftpd/proftpd.github.com/ \ ftp://ftpmirror.uk/ftp.proftpd.org/distrib/source/ \ http://www.mirrorservice.org/sites/ftp.proftpd.org/distrib/source/ .if defined(_BUILDING_PROFTPD_MODULE) DISTNAME= proftpd-${PROFTPD_VERSION} .endif MAINTAINER?= mm@FreeBSD.org COMMENT?= Highly configurable FTP daemon LICENSE?= GPLv2 LICENSE_FILE?= ${WRKSRC}/COPYING .if defined(_BUILDING_PROFTPD_MODULE) BUILD_DEPENDS+= ${LOCALBASE}/sbin/proftpd:ftp/proftpd RUN_DEPENDS+= ${LOCALBASE}/sbin/proftpd:ftp/proftpd .endif PROFTPD_VERSION= 1.3.5d .if defined(_BUILDING_PROFTPD_MODULE) DISTFILES+= ${DISTNAME}${EXTRACT_SUFX} EXTRACT_ONLY+= ${DISTNAME}${EXTRACT_SUFX} WRKSRC= ${WRKDIR}/proftpd-${PROFTPD_VERSION} . if defined(_PROFTPD_MODULE_EXTRACT_ONLY) EXTRACT_ONLY+= ${_PROFTPD_MODULE_EXTRACT_ONLY} . endif . if defined(_PROFTPD_MODULE_DISTFILES) DISTFILES+= ${_PROFTPD_MODULE_DISTFILES} . endif . if defined(_PROFTPD_MODULE_MASTER_SITES) MASTER_SITES+= ${_PROFTPD_MODULE_MASTER_SITES} . endif .endif .if !defined(_BUILDING_PROFTPD_MODULE) PORTDOCS= * .endif MAKE_JOBS_UNSAFE= yes USES+= cpe gmake libtool USE_AUTOTOOLS= autoconf GNU_CONFIGURE= yes .if !defined(_BUILDING_PROFTPD_MODULE) USES+= ssl USE_RC_SUBR= proftpd .endif LOCALSTATEDIR?= /var/run CONFIGURE_ARGS=--localstatedir=${LOCALSTATEDIR} \ --libexecdir=${PREFIX}/libexec/proftpd \ --with-pkgconfig=libdata/pkgconfig \ --sysconfdir=${PREFIX}/etc \ --enable-ctrls \ --enable-dso \ --disable-sendfile CONFIGURE_ENV+= install_user=`${ID} -u` \ install_group=`${ID} -g` .if defined(_BUILDING_PROFTPD_MODULE) MODULES= ${_BUILDING_PROFTPD_MODULE} .for m in ${MODULES} __MODULES:=${__MODULES}:${m} .endfor CONFIGURE_ARGS+= --with-shared=${__MODULES:C/^://g} INCLUDEDIRS:=${INCLUDEDIRS}:${LOCALBASE}/include/proftpd ALL_TARGET= shared BUILD_WRKSRC= ${WRKSRC}/modules INSTALL_WRKSRC= ${WRKSRC}/modules PLIST= ${WRKDIR}/PLIST .for m in ${MODULES} PLIST_FILES+= libexec/proftpd/${m}.a \ libexec/proftpd/${m}.so .endfor .else OPTIONS_DEFINE= DOCS HTMLDOCS IPV6 NLS MEMCACHE PCRE OPTIONS_DEFAULT= PCRE HTMLDOCS_DESC= Include HTML documentation MEMCACHE_DESC= Memcache support using libmemcached PLIST_SUB+= LOCALSTATEDIR="${LOCALSTATEDIR}" OPTIONS_SUB= yes .endif #!defined(_BUILDING_PROFTPD_MODULE) .if !defined(_BUILDING_PROFTPD_MODULE) CPPFLAGS+= -DHAVE_OPENSSL -I${OPENSSLINC} LIBS+= -lssl -lcrypto -L${OPENSSLLIB} LDFLAGS+= -lpthread .endif .if !defined(_BUILDING_PROFTPD_MODULE) LIBDIRS?= ${LOCALBASE}/lib INCLUDEDIRS?= ${LOCALBASE}/include # Always built modules MODULES+= mod_ban \ mod_copy \ mod_ctrls_admin \ mod_deflate \ mod_dnsbl \ mod_dynmasq \ mod_exec \ mod_ifsession \ mod_ifversion \ mod_qos \ mod_quotatab \ mod_quotatab_file \ mod_quotatab_radius \ mod_quotatab_sql \ mod_radius \ mod_ratio \ mod_readme \ mod_rewrite \ mod_sftp \ mod_sftp_pam \ mod_sftp_sql \ mod_shaper \ mod_site_misc \ mod_snmp \ mod_sql \ mod_sql_passwd \ mod_tls \ mod_tls_shmcache \ mod_unique_id \ mod_wrap2 \ mod_wrap2_file \ mod_wrap2_sql IPV6_CONFIGURE_ENABLE=ipv6 NLS_CONFIGURE_ON= --enable-nls NLS_USES= gettext iconv PCRE_CONFIGURE_ENABLE= pcre PCRE_LIB_DEPENDS= libpcre.so:devel/pcre MEMCACHE_LIB_DEPENDS= libmemcached.so:databases/libmemcached MEMCACHE_CONFIGURE_ENABLE= memcache MEMCACHE_VARS= MODULES+="mod_memcache mod_tls_memcache" \ LIBS+="-L${LOCALBASE}/lib -lmemcached -lmemcachedutil" .include # Generate modules configuration string .for m in ${MODULES} _MODULES:=${_MODULES}:${m} .endfor # Keep this here below, in case similar constructs need to be made CONFIGURE_ARGS+= --with-shared=${_MODULES:C/^://g} .endif #!defined(_BUILDING_PROFTPD_MODULE) CONFIGURE_ARGS+= --with-includes=${INCLUDEDIRS} CONFIGURE_ARGS+= --with-libraries=${LIBDIRS} .include .if ${SSL_DEFAULT:Mopenssl-devel} BROKEN= Does not build with openssl-devel .endif -.if ${SSL_DEFAULT:Mlibressl*} -BROKEN= Does not build with libressl -.endif .if !defined(_BUILDING_PROFTPD_MODULE) .if empty(ICONV_PREFIX) CONFIGURE_ARGS+= ac_cv_lib_iconv_iconv_open=no \ ac_cv_lib_iconv_libiconv_open=no .endif post-patch: @${REINPLACE_CMD} -e 's|proftpd\.conf |proftpd.conf.sample |g' ${WRKSRC}/Makefile.in pre-configure: @${ECHO_MSG} "==> Configuring with following modules:" @${ECHO_MSG} "${MODULES:C/^://g}" post-configure: ${REINPLACE_CMD} -e 's: -lnsl::' ${WRKSRC}/Make.rules ${REINPLACE_CMD} -e 's:/usr/sbin:${PREFIX}/sbin:' \ -e 's:/usr/bin:${PREFIX}/bin:' \ ${WRKSRC}/src/proftpd.8 ${WRKSRC}/utils/ftpshut.8 \ ${WRKSRC}/utils/ftpcount.1 .endif #!defined(_BUILDING_PROFTPD_MODULE) .if defined(_BUILDING_PROFTPD_MODULE) pre-build: @cd ${WRKSRC} && ${MAKE} include/buildstamp.h pre-install: @${MKDIR} ${STAGEDIR}${PREFIX}/libexec/proftpd .else post-install: @${MKDIR} ${STAGEDIR}/var/run/proftpd .if ${PORT_OPTIONS:MDOCS} @${INSTALL} -d ${STAGEDIR}${DOCSDIR} @cd ${WRKSRC} && ${CP} README* RELEASE_NOTES ${STAGEDIR}${DOCSDIR} @cd ${WRKSRC}/doc/ && ${INSTALL_DATA} license.txt ${STAGEDIR}${DOCSDIR} . if ${PORT_OPTIONS:MHTMLDOCS} @${INSTALL} -d ${STAGEDIR}${DOCSDIR}/html @cd ${WRKSRC}/doc/ && ${INSTALL_DATA} Configuration.html faq.html ${STAGEDIR}${DOCSDIR}/html @${CP} -RP ${WRKSRC}/doc/contrib ${STAGEDIR}${DOCSDIR}/html/contrib @${CP} -RP ${WRKSRC}/doc/modules ${STAGEDIR}${DOCSDIR}/html/modules @${CP} -RP ${WRKSRC}/doc/howto ${STAGEDIR}${DOCSDIR}/html/howto . endif .endif @${INSTALL_MAN} ${WRKSRC}/src/ftpdctl.8 ${STAGEDIR}${MAN8PREFIX}/man/man8/ .endif #!defined(_BUILDING_PROFTPD_MODULE) .include Index: head/ftp/proftpd/files/patch-contrib_mod__tls.c =================================================================== --- head/ftp/proftpd/files/patch-contrib_mod__tls.c (nonexistent) +++ head/ftp/proftpd/files/patch-contrib_mod__tls.c (revision 440871) @@ -0,0 +1,200 @@ +--- contrib/mod_tls.c.orig 2017-01-16 01:13:01 UTC ++++ contrib/mod_tls.c +@@ -96,7 +96,7 @@ static DH *get_dh(BIGNUM *p, BIGNUM *g) + return NULL; + } + +-#if OPENSSL_VERSION_NUMBER >= 0x10100000L ++#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER) + if (DH_set0_pqg(dh, p, NULL, g) != 1) { + pr_trace_msg(trace_channel, 3, "error setting DH p/q parameters: %s", + ERR_error_string(ERR_get_error(), NULL)); +@@ -114,7 +114,7 @@ static DH *get_dh(BIGNUM *p, BIGNUM *g) + static X509 *read_cert(FILE *fh, SSL_CTX *ssl_ctx) { + X509 *cert; + +-#if OPENSSL_VERSION_NUMBER >= 0x10100000L ++#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER) + cert = PEM_read_X509(fh, NULL, SSL_CTX_get_default_passwd_cb(ssl_ctx), + SSL_CTX_get_default_passwd_cb_userdata(ssl_ctx)); + #else +@@ -128,7 +128,7 @@ static X509 *read_cert(FILE *fh, SSL_CTX + static int get_pkey_type(EVP_PKEY *pkey) { + int pkey_type; + +-#if OPENSSL_VERSION_NUMBER >= 0x10100000L ++#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER) + pkey_type = EVP_PKEY_id(pkey); + #else + pkey_type = EVP_PKEY_type(pkey->type); +@@ -609,7 +609,7 @@ static void tls_diags_cb(const SSL *ssl, + break; + #endif + +-#if OPENSSL_VERSION_NUMBER >= 0x10100000L ++#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER) + case TLS_ST_OK: + #else + case SSL_ST_OK: +@@ -633,7 +633,7 @@ static void tls_diags_cb(const SSL *ssl, + + ssl_state = SSL_get_state(ssl); + +-#if OPENSSL_VERSION_NUMBER >= 0x10100000L ++#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER) + if (ssl_state == TLS_ST_SR_CLNT_HELLO) { + #else + if (ssl_state == SSL3_ST_SR_CLNT_HELLO_A || +@@ -675,7 +675,7 @@ static void tls_diags_cb(const SSL *ssl, + } + + #if OPENSSL_VERSION_NUMBER >= 0x009080cfL && \ +- OPENSSL_VERSION_NUMBER < 0x10100000L ++ (OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)) + } else if (ssl_state & SSL_ST_RENEGOTIATE) { + if ((ssl == ctrl_ssl && !tls_ctrl_need_init_handshake) || + (ssl != ctrl_ssl && !tls_data_need_init_handshake)) { +@@ -2932,7 +2932,8 @@ static int tls_init_ctx(void) { + } + + SSL_CTX_set_tmp_dh_callback(ssl_ctx, tls_dh_cb); +-#if defined(PR_USE_OPENSSL_ECC) && OPENSSL_VERSION_NUMBER < 0x10100000L ++#if defined(PR_USE_OPENSSL_ECC) && \ ++ (OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)) + SSL_CTX_set_tmp_ecdh_callback(ssl_ctx, tls_ecdh_cb); + #endif /* PR_USE_OPENSSL_ECC */ + +@@ -4837,7 +4838,7 @@ static int tls_dotlogin_allow(const char + + pr_signals_handle(); + +-#if OPENSSL_VERSION_NUMBER >= 0x10100000L ++#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER) + X509_get0_signature(&client_sig, NULL, client_cert); + X509_get0_signature(&file_sig, NULL, file_cert); + #else +@@ -4845,7 +4846,7 @@ static int tls_dotlogin_allow(const char + file_sig = file_cert->signature; + #endif /* OpenSSL-1.1.x and later */ + +-#if OPENSSL_VERSION_NUMBER >= 0x10100000L ++#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER) + if (!ASN1_STRING_cmp(client_sig, file_sig)) { + #else + if (!M_ASN1_BIT_STRING_cmp(client_sig, file_sig)) { +@@ -5320,7 +5321,7 @@ static void tls_setup_cert_dn_environ(co + int nentries; + char *k, *v; + +-#if OPENSSL_VERSION_NUMBER >= 0x10100000L ++#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER) + nentries = X509_NAME_entry_count(name); + #else + nentries = sk_X509_NAME_ENTRY_num(name->entries); +@@ -5333,7 +5334,7 @@ static void tls_setup_cert_dn_environ(co + + pr_signals_handle(); + +-#if OPENSSL_VERSION_NUMBER >= 0x10100000L ++#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER) + entry = X509_NAME_get_entry(name, i); + nid = OBJ_obj2nid(X509_NAME_ENTRY_get_object(entry)); + entry_data = ASN1_STRING_data(X509_NAME_ENTRY_get_data(entry)); +@@ -5512,7 +5513,7 @@ static void tls_setup_cert_environ(const + BIO_free(bio); + + bio = BIO_new(BIO_s_mem()); +-#if OPENSSL_VERSION_NUMBER >= 0x10100000L ++#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER) + X509_get0_signature(NULL, &algo, cert); + #else + algo = cert->cert_info->signature; +@@ -5528,7 +5529,7 @@ static void tls_setup_cert_environ(const + BIO_free(bio); + + bio = BIO_new(BIO_s_mem()); +-#if OPENSSL_VERSION_NUMBER >= 0x10100000L ++#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER) + pubkey = X509_get_X509_PUBKEY(cert); + X509_PUBKEY_get0_param(NULL, NULL, NULL, &algo, pubkey); + #else +@@ -5587,7 +5588,7 @@ static void tls_setup_environ(SSL *ssl) + const unsigned char *sess_data; + unsigned int sess_datalen; + +-#if OPENSSL_VERSION_NUMBER >= 0x10100000L ++#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER) + sess_data = SSL_SESSION_get_id(ssl_session, &sess_datalen); + #else + sess_datalen = ssl_session->session_id_length; +@@ -5738,7 +5739,7 @@ static int tls_verify_cb(int ok, X509_ST + X509 *cert = X509_STORE_CTX_get_current_cert(ctx); + int ctx_error, depth = X509_STORE_CTX_get_error_depth(ctx); + +-#if OPENSSL_VERSION_NUMBER >= 0x10100000L ++#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER) + verify_err = X509_STORE_CTX_get_error(ctx); + #else + verify_err = ctx->error; +@@ -5755,7 +5756,7 @@ static int tls_verify_cb(int ok, X509_ST + X509_STORE_CTX_set_error(ctx, X509_V_ERR_CERT_CHAIN_TOO_LONG); + } + +-#if OPENSSL_VERSION_NUMBER >= 0x10100000L ++#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER) + ctx_error = X509_STORE_CTX_get_error(ctx); + #else + ctx_error = ctx->error; +@@ -5886,7 +5887,7 @@ static int tls_verify_crl(int ok, X509_S + X509_STORE_CTX_init(store_ctx, tls_crl_store, NULL, NULL); + #endif + +-#if OPENSSL_VERSION_NUMBER >= 0x10100000L ++#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER) + crls = X509_STORE_CTX_get1_crls(store_ctx, subject); + #elif OPENSSL_VERSION_NUMBER >= 0x10000000L + crls = X509_STORE_get1_crls(store_ctx, subject); +@@ -5906,14 +5907,14 @@ static int tls_verify_crl(int ok, X509_S + X509_NAME_print(b, issuer, 0); + + BIO_printf(b, ", lastUpdate: "); +-#if OPENSSL_VERSION_NUMBER >= 0x10100000L ++#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER) + ASN1_UTCTIME_print(b, X509_CRL_get_lastUpdate(crl)); + #else + ASN1_UTCTIME_print(b, crl->crl->lastUpdate); + #endif /* OpenSSL-1.1.x and later */ + + BIO_printf(b, ", nextUpdate: "); +-#if OPENSSL_VERSION_NUMBER >= 0x10100000L ++#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER) + ASN1_UTCTIME_print(b, X509_CRL_get_nextUpdate(crl)); + #else + ASN1_UTCTIME_print(b, crl->crl->nextUpdate); +@@ -5983,7 +5984,7 @@ static int tls_verify_crl(int ok, X509_S + * the current certificate in order to check for revocation. + */ + +-#if OPENSSL_VERSION_NUMBER >= 0x10100000L ++#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER) + crls = X509_STORE_CTX_get1_crls(store_ctx, subject); + #elif OPENSSL_VERSION_NUMBER >= 0x10000000L + crls = X509_STORE_get1_crls(store_ctx, subject); +@@ -6005,7 +6006,7 @@ static int tls_verify_crl(int ok, X509_S + ASN1_INTEGER *sn; + + revoked = sk_X509_REVOKED_value(X509_CRL_get_REVOKED(crl), i); +-#if OPENSSL_VERSION_NUMBER >= 0x10100000L ++#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER) + sn = X509_REVOKED_get0_serialNumber(revoked); + #else + sn = revoked->serialNumber; +@@ -6371,7 +6372,7 @@ static int tls_verify_ocsp_url(X509_STOR + return FALSE; + } + +-#if OPENSSL_VERSION_NUMBER >= 0x10100000L ++#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER) + store = X509_STORE_CTX_get0_store(ctx); + #else + store = ctx->ctx; Property changes on: head/ftp/proftpd/files/patch-contrib_mod__tls.c ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property