1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-10-18 19:49:40 +00:00

Update ftp/proftpd to 1.3.6

Fix compatibility in databases/proftpd-mod_sql_tds
This commit is contained in:
Martin Matuska 2017-07-27 15:25:30 +00:00
parent 4e72deff05
commit 038563bcf2
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=446747
10 changed files with 78 additions and 260 deletions

View File

@ -30,4 +30,9 @@ _BUILDING_PROFTPD_MODULE= ${PORTNAME}
post-extract:
@${MV} ${WRKDIR}/mod_sql_tds.c ${WRKSRC}/contrib
post-patch:
@${REINPLACE_CMD} -e 's| ERROR_MSG| PR_ERROR_MSG|g' \
-e 's| HANDLED| PR_HANDLED|g' \
${WRKSRC}/contrib/mod_sql_tds.c
.include "${MASTERDIR}/Makefile"

View File

@ -26,7 +26,7 @@ BUILD_DEPENDS+= ${LOCALBASE}/sbin/proftpd:ftp/proftpd
RUN_DEPENDS+= ${LOCALBASE}/sbin/proftpd:ftp/proftpd
.endif
PROFTPD_VERSION= 1.3.5e
PROFTPD_VERSION= 1.3.6
.if defined(_BUILDING_PROFTPD_MODULE)
DISTFILES+= ${DISTNAME}${EXTRACT_SUFX}
@ -86,11 +86,12 @@ PLIST_FILES+= libexec/proftpd/${m}.a \
libexec/proftpd/${m}.so
.endfor
.else
OPTIONS_DEFINE= DOCS HTMLDOCS IPV6 NLS MEMCACHE PCRE
OPTIONS_DEFINE= DOCS HTMLDOCS IPV6 NLS MEMCACHE PCRE REDIS
OPTIONS_DEFAULT= PCRE
HTMLDOCS_DESC= Include HTML documentation
MEMCACHE_DESC= Memcache support using libmemcached
REDIS_DESC= Redis support using hiredis
PLIST_SUB+= LOCALSTATEDIR="${LOCALSTATEDIR}"
OPTIONS_SUB= yes
@ -154,6 +155,11 @@ MEMCACHE_CONFIGURE_ENABLE= memcache
MEMCACHE_VARS= MODULES+="mod_memcache mod_tls_memcache" \
LIBS+="-L${LOCALBASE}/lib -lmemcached -lmemcachedutil"
REDIS_LIB_DEPENDS= libhiredis.so:databases/hiredis
REDIS_CONFIGURE_ENABLE= redis
REDIS_VARS= MODULES+="mod_redis mod_tls_redis mod_wrap2_redis" \
LIBS+="-L${LOCALBASE}/lib -lhiredis"
.include <bsd.port.options.mk>
# Generate modules configuration string

View File

@ -1,6 +1,6 @@
TIMESTAMP = 1499982806
SHA256 (proftpd-1.3.5e.tar.gz) = 8307dc0103a8e716b99745919be7f09b54708c57c7d5aa70262f7593dc56bc9d
SIZE (proftpd-1.3.5e.tar.gz) = 29968142
TIMESTAMP = 1499982985
SHA256 (proftpd-1.3.6.tar.gz) = 91ef74b143495d5ff97c4d4770c6804072a8c8eb1ad1ecc8cc541b40e152ecaf
SIZE (proftpd-1.3.6.tar.gz) = 20251898
SHA256 (mod_clamav-v0.14rc2.tar.gz) = 0a865a659541f7ff5c46532c79aac652cdd004f604fb6a874f57dfb95bfe5a1e
SIZE (mod_clamav-v0.14rc2.tar.gz) = 19721
SHA256 (mod_sql_tds-4.13.tar.gz) = 9d9fb6c4b9a952739a84e166ed8b0d93f539c7bcf73e32923318e00cbd7eea08

View File

@ -1,6 +1,6 @@
--- contrib/mod_sftp/Makefile.in.orig 2009-09-16 08:09:57.000000000 +0200
+++ contrib/mod_sftp/Makefile.in 2010-03-24 17:38:46.947039120 +0100
@@ -45,8 +45,9 @@
--- contrib/mod_sftp/Makefile.in.orig 2017-04-10 02:31:02 UTC
+++ contrib/mod_sftp/Makefile.in
@@ -60,8 +60,9 @@ install: install-misc
fi
install-misc:
@ -11,4 +11,4 @@
+ $(INSTALL) -o $(INSTALL_USER) -g $(INSTALL_GROUP) -m 0644 blacklist.dat $(DESTDIR)$(sysconfdir)/proftpd/blacklist.dat.sample
clean:
$(RM) $(MODULE_NAME).a *.o *.la *.lo
$(LIBTOOL) --mode=clean $(RM) $(MODULE_NAME).a $(MODULE_NAME).la *.o *.lo .libs/*.o

View File

@ -1,200 +0,0 @@
--- 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;

View File

@ -0,0 +1,18 @@
--- doc/Configuration.html.orig 2017-04-10 02:31:02 UTC
+++ doc/Configuration.html
@@ -4359,7 +4359,7 @@ CLASS="SYNOPSIS"
></DT
><DD
><P
->ftp</P
+>ftpd</P
></DD
><DT
><PRE
@@ -35399,4 +35399,4 @@ CLASS="LITERALLAYOUT"
></TABLE
></BODY
></HTML
->
\ No newline at end of file
+>

View File

@ -1,18 +0,0 @@
--- ./doc/Configuration.html.orig Wed Jan 29 12:27:24 2003
+++ ./doc/Configuration.html Sat Mar 15 11:34:14 2003
@@ -4226,7 +4226,7 @@
></DT
><DD
><P
->ftp</P
+>ftpd</P
></DD
><DT
><PRE
@@ -32252,4 +32252,4 @@
></DIV
></BODY
></HTML
->
\ No newline at end of file
+>

View File

@ -1,5 +1,5 @@
--- sample-configurations/basic.conf.orig 2008-01-21 08:44:06.000000000 -0900
+++ sample-configurations/basic.conf 2009-01-28 11:25:31.000000000 -0900
--- sample-configurations/basic.conf.orig 2017-04-10 02:31:02 UTC
+++ sample-configurations/basic.conf
@@ -1,3 +1,7 @@
+#
+# For more information about Proftpd configuration
@ -24,7 +24,7 @@
# Umask 022 is a good standard umask to prevent new dirs and files
# from being group and world writable.
@@ -25,6 +30,8 @@
@@ -25,6 +30,8 @@ Umask 022
# (such as xinetd).
MaxInstances 30
@ -33,41 +33,32 @@
# Set the user and group under which the server will run.
User nobody
Group nogroup
@@ -43,23 +50,31 @@
@@ -43,23 +50,31 @@ AllowOverwrite on
# A basic anonymous configuration, no upload directories. If you do not
# want anonymous users, simply delete this entire <Anonymous> section.
-<Anonymous ~ftp>
- User ftp
- Group ftp
-
- # We want clients to be able to login with "anonymous" as well as "ftp"
- UserAlias anonymous ftp
-
- # Limit the maximum number of anonymous logins
- MaxClients 10
-
- # We want 'welcome.msg' displayed at login, and '.message' displayed
- # in each newly chdired directory.
- DisplayLogin welcome.msg
- DisplayChdir .message
-
- # Limit WRITE everywhere in the anonymous chroot
- <Limit WRITE>
- DenyAll
- </Limit>
-</Anonymous>
+
+#########################################################################
+# #
+# Uncomment lines with only one # to allow basic anonymous access #
+# #
+#########################################################################
+
- # Limit the maximum number of anonymous logins
- MaxClients 10
+#<Anonymous ~ftp>
+# User ftp
+# Group ftp
+
- # We want 'welcome.msg' displayed at login, and '.message' displayed
- # in each newly chdired directory.
- DisplayLogin welcome.msg
- DisplayChdir .message
+ ### We want clients to be able to login with "anonymous" as well as "ftp"
+ # UserAlias anonymous ftp
+
@ -84,4 +75,9 @@
+ # DenyAll
+ # </Limit>
+#</Anonymous>
+
- # Limit WRITE everywhere in the anonymous chroot
- <Limit WRITE>
- DenyAll
- </Limit>
-</Anonymous>

View File

@ -1,7 +1,7 @@
--- src/fsio.c.orig 2010-04-12 21:00:00.000000000 +0200
+++ src/fsio.c 2011-12-29 21:51:33.844925577 +0100
@@ -50,6 +50,10 @@
# include <acl/libacl.h>
--- src/fsio.c.orig 2017-04-10 02:31:02 UTC
+++ src/fsio.c
@@ -69,6 +69,10 @@ static size_t copy_iter_count = 0;
# define NFS_SUPER_MAGIC 0x6969
#endif
+#if defined(__FreeBSD__)
@ -11,8 +11,8 @@
typedef struct fsopendir fsopendir_t;
struct fsopendir {
@@ -284,7 +288,30 @@
#endif
@@ -1041,7 +1045,30 @@ static int sys_fsetxattr(pool *p, pr_fh_
return res;
}
+#if defined(__FreeBSD__)
@ -39,6 +39,6 @@
+ if (enter_freebsd_restricted_mode() != 0)
+ return -1;
+#endif
if (chroot(path) < 0)
if (chroot(path) < 0) {
return -1;
}

View File

@ -14,12 +14,14 @@ include/proftpd/ascii.h
include/proftpd/auth.h
include/proftpd/bindings.h
include/proftpd/buildstamp.h
include/proftpd/ccan-json.h
include/proftpd/child.h
include/proftpd/class.h
include/proftpd/cmd.h
include/proftpd/compat.h
include/proftpd/conf.h
include/proftpd/config.h
include/proftpd/configdb.h
include/proftpd/ctrls.h
include/proftpd/data.h
include/proftpd/default_paths.h
@ -34,17 +36,19 @@ include/proftpd/filter.h
include/proftpd/fsio.h
include/proftpd/ftp.h
include/proftpd/glibc-glob.h
include/proftpd/hanson-tpl.h
include/proftpd/help.h
include/proftpd/ident.h
include/proftpd/inet.h
include/proftpd/json.h
include/proftpd/lastlog.h
include/proftpd/libsupp.h
include/proftpd/log.h
include/proftpd/logfmt.h
include/proftpd/memcache.h
include/proftpd/mkhome.h
include/proftpd/mod_ctrls.h
include/proftpd/mod_dnsbl.h
include/proftpd/mod_log.h
include/proftpd/mod_quotatab.h
include/proftpd/mod_sftp.h
include/proftpd/mod_snmp.h
@ -63,19 +67,20 @@ include/proftpd/pr-syslog.h
include/proftpd/privs.h
include/proftpd/proctitle.h
include/proftpd/proftpd.h
include/proftpd/redis.h
include/proftpd/regexp.h
include/proftpd/response.h
include/proftpd/rlimit.h
include/proftpd/scoreboard.h
include/proftpd/session.h
include/proftpd/sets.h
include/proftpd/signals.h
include/proftpd/stash.h
include/proftpd/str.h
include/proftpd/support.h
include/proftpd/table.h
include/proftpd/throttle.h
include/proftpd/timers.h
include/proftpd/tpl.h
include/proftpd/trace.h
include/proftpd/utf8.h
include/proftpd/var.h
@ -132,6 +137,8 @@ libexec/proftpd/mod_site_misc.a
libexec/proftpd/mod_site_misc.so
libexec/proftpd/mod_snmp.a
libexec/proftpd/mod_snmp.so
%%REDIS%%libexec/proftpd/mod_redis.a
%%REDIS%%libexec/proftpd/mod_redis.so
libexec/proftpd/mod_sql.a
libexec/proftpd/mod_sql.so
libexec/proftpd/mod_sql_passwd.a
@ -140,6 +147,8 @@ libexec/proftpd/mod_tls.a
libexec/proftpd/mod_tls.so
%%MEMCACHE%%libexec/proftpd/mod_tls_memcache.a
%%MEMCACHE%%libexec/proftpd/mod_tls_memcache.so
%%REDIS%%libexec/proftpd/mod_tls_redis.a
%%REDIS%%libexec/proftpd/mod_tls_redis.so
libexec/proftpd/mod_tls_shmcache.a
libexec/proftpd/mod_tls_shmcache.so
libexec/proftpd/mod_unique_id.a
@ -148,6 +157,8 @@ libexec/proftpd/mod_wrap2.a
libexec/proftpd/mod_wrap2.so
libexec/proftpd/mod_wrap2_file.a
libexec/proftpd/mod_wrap2_file.so
%%REDIS%%libexec/proftpd/mod_wrap2_redis.a
%%REDIS%%libexec/proftpd/mod_wrap2_redis.so
libexec/proftpd/mod_wrap2_sql.a
libexec/proftpd/mod_wrap2_sql.so
man/man1/ftpcount.1.gz