svn commit: r547154 - in head/www: xshttpd xshttpd-devel xshttpd-devel/files xshttpd/files
Alexey Dokuchaev
danfe at FreeBSD.org
Mon Aug 31 07:14:33 UTC 2020
Author: danfe
Date: Mon Aug 31 07:14:31 2020
New Revision: 547154
URL: https://svnweb.freebsd.org/changeset/ports/547154
Log:
Fix the build against modern versions of OpenSSL and compilers.
Added:
head/www/xshttpd-devel/files/patch-src_extra.c (contents, props changed)
head/www/xshttpd-devel/files/patch-src_httpd.c (contents, props changed)
head/www/xshttpd-devel/files/patch-src_ssl.c (contents, props changed)
head/www/xshttpd/files/patch-src_httpd.c (contents, props changed)
head/www/xshttpd/files/patch-src_ssl.c (contents, props changed)
Modified:
head/www/xshttpd-devel/Makefile
head/www/xshttpd/Makefile
Modified: head/www/xshttpd-devel/Makefile
==============================================================================
--- head/www/xshttpd-devel/Makefile Mon Aug 31 07:12:12 2020 (r547153)
+++ head/www/xshttpd-devel/Makefile Mon Aug 31 07:14:31 2020 (r547154)
@@ -43,17 +43,12 @@ PERL_CONFIGURE_WITH= perl
PORTDOCS= README ChangeLog
-.include <bsd.port.pre.mk>
-
-.if ${SSL_DEFAULT} == base
-BROKEN_FreeBSD_12= variable has incomplete type 'EVP_CIPHER_CTX' (aka 'struct evp_cipher_ctx_st')
-BROKEN_FreeBSD_13= variable has incomplete type 'EVP_CIPHER_CTX' (aka 'struct evp_cipher_ctx_st')
-.endif
-
post-patch:
@${REINPLACE_CMD} \
-e 's|\(MIME_TYPES\).*|\1 "${LOCALBASE}/etc/mime.types"|' \
${WRKSRC}/src/constants.h
+ @${REINPLACE_CMD} -e 's|^struct socket_config|extern &|' \
+ ${WRKSRC}/src/htconfig.h
@${REINPLACE_CMD} -e 's|mime.types ||g' \
${WRKSRC}/config/Makefile.in
@${REINPLACE_CMD} -e '/libdir/ s|(INSTALL_DATA)|& -s|' \
@@ -67,4 +62,4 @@ post-install:
${STAGEDIR}/var/db/xshttpd/sessions
${INSTALL_DATA} ${PORTDOCS:S|^|${WRKSRC}/|} ${STAGEDIR}${DOCSDIR}
-.include <bsd.port.post.mk>
+.include <bsd.port.mk>
Added: head/www/xshttpd-devel/files/patch-src_extra.c
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/www/xshttpd-devel/files/patch-src_extra.c Mon Aug 31 07:14:31 2020 (r547154)
@@ -0,0 +1,34 @@
+--- src/extra.c.orig 2015-01-02 16:49:11 UTC
++++ src/extra.c
+@@ -586,7 +586,7 @@ do_crypt(const char * const skey, const char * const i
+ const unsigned int IVLEN = 16;
+ int outlen,
+ tmplen;
+- EVP_CIPHER_CTX ctx;
++ EVP_CIPHER_CTX *ctx;
+ unsigned char plain[16] = { 0 };
+ unsigned char outbuf[1024];
+ char *encrypted;
+@@ -600,17 +600,17 @@ do_crypt(const char * const skey, const char * const i
+ }
+
+ /* init aes-128-cbc */
+- EVP_CIPHER_CTX_init(&ctx);
+- EVP_EncryptInit_ex(&ctx, EVP_aes_128_cbc(), NULL, key, outbuf /* iv */);
++ ctx = EVP_CIPHER_CTX_new();
++ EVP_EncryptInit_ex(ctx, EVP_aes_128_cbc(), NULL, key, outbuf /* iv */);
+
+- if (!EVP_EncryptUpdate(&ctx, outbuf + outlen, &tmplen,
++ if (!EVP_EncryptUpdate(ctx, outbuf + outlen, &tmplen,
+ plain, sizeof(plain)))
+ return false;
+ outlen += tmplen;
+- if (!EVP_EncryptFinal_ex(&ctx, outbuf + outlen, &tmplen))
++ if (!EVP_EncryptFinal_ex(ctx, outbuf + outlen, &tmplen))
+ return false;
+ outlen += tmplen;
+- EVP_CIPHER_CTX_cleanup(&ctx);
++ EVP_CIPHER_CTX_free(ctx);
+
+ MALLOC(encrypted, char, outlen);
+ memcpy(encrypted, outbuf, outlen);
Added: head/www/xshttpd-devel/files/patch-src_httpd.c
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/www/xshttpd-devel/files/patch-src_httpd.c Mon Aug 31 07:14:31 2020 (r547154)
@@ -0,0 +1,10 @@
+--- src/httpd.c.orig 2015-09-05 20:44:28 UTC
++++ src/httpd.c
+@@ -84,6 +84,7 @@ static char referer[MYBUFSIZ], orig[MYBUFSIZ];
+ static char *startparams, *message503;
+ struct session session;
+ struct env env;
++struct socket_config *cursock;
+
+ /* Prototypes */
+
Added: head/www/xshttpd-devel/files/patch-src_ssl.c
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/www/xshttpd-devel/files/patch-src_ssl.c Mon Aug 31 07:14:31 2020 (r547154)
@@ -0,0 +1,32 @@
+--- src/ssl.c.orig 2015-09-05 20:50:21 UTC
++++ src/ssl.c
+@@ -538,7 +538,11 @@ sslverify_callback(int preverify_ok, X509_STORE_CTX *x
+ X509_NAME *xsname;
+ char *strname;
+ int rc, ovector[OVSIZE];
++# if OPENSSL_VERSION_NUMBER < 0x10100005L
+ X509 *xs = x509_ctx->cert;
++# else
++ X509 *xs = X509_STORE_CTX_get0_cert(x509_ctx);
++# endif
+
+ /* match subject */
+ if (cursock->sslpcresdn)
+@@ -937,11 +941,12 @@ loadssl(struct socket_config * const lsock, struct ssl
+ unsigned char sign[EVP_PKEY_size(evpkey)];
+ unsigned int siglen = 0;
+
+- EVP_MD_CTX mdctx;
+- EVP_MD_CTX_init(&mdctx);
+- EVP_SignInit(&mdctx, EVP_sha384());
+- EVP_SignUpdate(&mdctx, ticketkey, strlen(ticketkey));
+- EVP_SignFinal(&mdctx, sign, &siglen, evpkey);
++ EVP_MD_CTX *mdctx;
++ mdctx = EVP_MD_CTX_create();
++ EVP_SignInit(mdctx, EVP_sha384());
++ EVP_SignUpdate(mdctx, ticketkey, strlen(ticketkey));
++ EVP_SignFinal(mdctx, sign, &siglen, evpkey);
++ EVP_MD_CTX_destroy(mdctx);
+
+ /* The first 48 bytes are used:
+ * - 16 bytes ticket key name
Modified: head/www/xshttpd/Makefile
==============================================================================
--- head/www/xshttpd/Makefile Mon Aug 31 07:12:12 2020 (r547153)
+++ head/www/xshttpd/Makefile Mon Aug 31 07:14:31 2020 (r547154)
@@ -42,13 +42,6 @@ CURL_CONFIGURE_WITH= curl
PORTDOCS= README ChangeLog
-.include <bsd.port.pre.mk>
-
-.if ${SSL_DEFAULT} == base
-BROKEN_FreeBSD_12= incomplete definition of type 'struct x509_store_ctx_st'
-BROKEN_FreeBSD_13= incomplete definition of type 'struct x509_store_ctx_st'
-.endif
-
post-patch:
.for i in man/httpd.1.in man/httpd.conf.5 config/httpd.conf.sample \
contrib/SSL-Makefile contrib/logrotate.sh
@@ -62,6 +55,8 @@ post-patch:
@${REINPLACE_CMD} \
-e 's|\(MIME_TYPES\).*|\1 "${LOCALBASE}/etc/mime.types"|' \
${WRKSRC}/src/constants.h
+ @${REINPLACE_CMD} -e 's|^struct socket_config|extern &|' \
+ ${WRKSRC}/src/htconfig.h
@${REINPLACE_CMD} -e 's|mime.types ||g' \
${WRKSRC}/config/Makefile.in
@@ -69,4 +64,4 @@ post-install:
@${MKDIR} ${STAGEDIR}${DOCSDIR} ${STAGEDIR}${WWWDIR}/htdocs
${INSTALL_DATA} ${PORTDOCS:S|^|${WRKSRC}/|} ${STAGEDIR}${DOCSDIR}
-.include <bsd.port.post.mk>
+.include <bsd.port.mk>
Added: head/www/xshttpd/files/patch-src_httpd.c
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/www/xshttpd/files/patch-src_httpd.c Mon Aug 31 07:14:31 2020 (r547154)
@@ -0,0 +1,11 @@
+--- src/httpd.c.orig 2009-01-10 22:52:29 UTC
++++ src/httpd.c
+@@ -90,6 +90,8 @@ static char referer[MYBUFSIZ], orig[MYBUFSIZ];
+ static char *startparams, *message503;
+ struct session session;
+ struct env env;
++struct socket_config *cursock;
++
+ #define CLEANENV do { \
+ memset(&env, 0, sizeof(struct env));\
+ MALLOC(environ, char *, 1);\
Added: head/www/xshttpd/files/patch-src_ssl.c
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/www/xshttpd/files/patch-src_ssl.c Mon Aug 31 07:14:31 2020 (r547154)
@@ -0,0 +1,14 @@
+--- src/ssl.c.orig 2009-01-10 22:52:29 UTC
++++ src/ssl.c
+@@ -244,7 +244,11 @@ sslverify_callback(int preverify_ok, X509_STORE_CTX *x
+ X509_NAME *xsname;
+ char *strname;
+ int rc, ovector[OVSIZE];
++# if OPENSSL_VERSION_NUMBER < 0x10100005L
+ X509 *xs = x509_ctx->cert;
++# else
++ X509 *xs = X509_STORE_CTX_get0_cert(x509_ctx);
++# endif
+
+ /* match subject */
+ if (cursock->sslpcresdn)
More information about the svn-ports-head
mailing list