1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-12-21 04:06:46 +00:00

Resurrect www/mod_gnutls and update to 0.8.2.

This commit is contained in:
Jung-uk Kim 2017-08-24 01:39:16 +00:00
parent f461ac0cc2
commit c3a2552c8e
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=448644
10 changed files with 153 additions and 1 deletions

1
MOVED
View File

@ -6872,7 +6872,6 @@ www/lusca-head||2014-09-01|Not staged
www/mod_auth_form||2014-09-01|Not staged
www/mod_auth_mellon||2014-09-01|Not staged
www/mod_ftp||2014-09-01|Not staged
www/mod_gnutls||2014-09-01|Not staged
www/mod_log_dbd||2014-09-01|Not staged
www/mod_pagespeed||2014-09-01|Not staged
www/moodle24||2014-09-01|Not staged

View File

@ -450,6 +450,7 @@
SUBDIR += mod_fileiri
SUBDIR += mod_flickr
SUBDIR += mod_geoip2
SUBDIR += mod_gnutls
SUBDIR += mod_gzip2
SUBDIR += mod_h264_streaming
SUBDIR += mod_hosts_access

32
www/mod_gnutls/Makefile Normal file
View File

@ -0,0 +1,32 @@
# $FreeBSD$
PORTNAME= mod_gnutls
PORTVERSION= 0.8.2
CATEGORIES= www security
MASTER_SITES= https://mod.gnutls.org/downloads/
PKGNAMEPREFIX= ${APACHE_PKGNAMEPREFIX}
MAINTAINER= ports@FreeBSD.org
COMMENT= Extension for Apache httpd using GnuTLS library to provide HTTPS
LICENSE= APACHE20
LICENSE_FILE= ${WRKSRC}/LICENSE
LIB_DEPENDS= libgnutls.so:security/gnutls
GNU_CONFIGURE= yes
USES= libtool pkgconfig tar:bzip2
USE_APACHE= 24
DBDIR= ${PREFIX}/var/db/${PORTNAME}
PLIST_SUB= SED="${SED}" WWWGRP=${WWWGRP} WWWOWN=${WWWOWN}
SUB_FILES= pkg-message
SUB_LIST= DBDIR="${DBDIR}"
CFLAGS+= -Wno-deprecated-declarations
CONFIGURE_ARGS= --with-apxs="${APXS}"
post-install:
${MKDIR} "${STAGEDIR}${DBDIR}"
.include <bsd.port.mk>

3
www/mod_gnutls/distinfo Normal file
View File

@ -0,0 +1,3 @@
TIMESTAMP = 1503524329
SHA256 (mod_gnutls-0.8.2.tar.bz2) = 05eeb78e41f1fd6780607a17d705b1965ce5c3ce6223a9a8a86ba9288d22e683
SIZE (mod_gnutls-0.8.2.tar.bz2) = 415903

View File

@ -0,0 +1,36 @@
--- src/gnutls_io.c.orig 2016-12-25 18:36:37 UTC
+++ src/gnutls_io.c
@@ -23,7 +23,8 @@
APLOG_USE_MODULE(gnutls);
#endif
-#if defined(__GNUC__) && __GNUC__ < 5 && !defined(__clang__)
+#if defined(__GNUC__) && __GNUC__ < 5 && \
+ !(defined(__clang__) && __has_builtin(__builtin_add_overflow))
#include <inttypes.h>
#endif
@@ -572,18 +573,21 @@ apr_status_t mgs_filter_input(ap_filter_t * f,
* might have different lengths. Read sizes should be too
* small for 32 or 64 bit to matter, but we have to make
* sure. */
-#if defined(__GNUC__) && __GNUC__ < 5 && !defined(__clang__)
+#if defined(__GNUC__) && __GNUC__ < 5 && \
+ !(defined(__clang__) && __has_builtin(__builtin_add_overflow))
if ((apr_size_t) readbytes < len)
{
+#if INTMAX_MAX > SIZE_MAX
/* If readbytes is negative the function fails in the
* check above, but the compiler doesn't get that. */
- if (__builtin_expect(imaxabs(readbytes) > SIZE_MAX, 0))
+ if (__builtin_expect(imaxabs(readbytes) > (intmax_t) SIZE_MAX, 0))
{
ap_log_cerror(APLOG_MARK, APLOG_CRIT, APR_EINVAL, ctxt->c,
"%s: prevented buffer length overflow",
__func__);
return APR_EINVAL;
}
+#endif
len = (apr_size_t) readbytes;
}
#else

View File

@ -0,0 +1,32 @@
--- src/gnutls_ocsp.c.orig 2017-01-08 14:16:07 UTC
+++ src/gnutls_ocsp.c
@@ -414,7 +414,8 @@ static gnutls_datum_t mgs_get_cert_fingerprint(apr_poo
/* Safe integer type conversion: The types of fingerprint.size
* (unsigned int) and fplen (size_t) may have different
* lengths. */
-#if defined(__GNUC__) && __GNUC__ < 5 && !defined(__clang__)
+#if defined(__GNUC__) && __GNUC__ < 5 && \
+ !(defined(__clang__) && __has_builtin(__builtin_add_overflow))
if (__builtin_expect(fplen <= UINT_MAX, 1))
{
fingerprint.size = (unsigned int) fplen;
@@ -569,7 +570,8 @@ static apr_status_t do_ocsp_request(apr_pool_t *p, ser
}
/* With the length restriction this really should not overflow. */
-#if defined(__GNUC__) && __GNUC__ < 5 && !defined(__clang__)
+#if defined(__GNUC__) && __GNUC__ < 5 && \
+ !(defined(__clang__) && __has_builtin(__builtin_add_overflow))
if (__builtin_expect(len > UINT_MAX, 0))
#else
if (__builtin_add_overflow(len, 0, &response->size))
@@ -580,7 +582,8 @@ static apr_status_t do_ocsp_request(apr_pool_t *p, ser
}
else
{
-#if defined(__GNUC__) && __GNUC__ < 5 && !defined(__clang__)
+#if defined(__GNUC__) && __GNUC__ < 5 && \
+ !(defined(__clang__) && __has_builtin(__builtin_add_overflow))
response->size = (unsigned int) len;
#endif
response->data = apr_pmemdup(p, buf, len);

View File

@ -0,0 +1,12 @@
--- src/gnutls_util.c.orig 2016-12-25 18:36:37 UTC
+++ src/gnutls_util.c
@@ -113,7 +113,8 @@ apr_status_t datum_from_file(apr_pool_t *p, const char
/* safe integer type conversion: unsigned int and apr_size_t might
* have different sizes */
-#if defined(__GNUC__) && __GNUC__ < 5 && !defined(__clang__)
+#if defined(__GNUC__) && __GNUC__ < 5 && \
+ !(defined(__clang__) && __has_builtin(__builtin_add_overflow))
if (__builtin_expect(br > UINT_MAX, 0))
return APR_EINVAL;
else

View File

@ -0,0 +1,27 @@
*********************************************************************
Sample %%PREFIX%%/%%APACHEETCDIR%%/httpd.conf:
#LoadModule ssl_module %%APACHEMODDIR%%/mod_ssl.so
LoadModule gnutls_module %%APACHEMODDIR%%/mod_gnutls.so
<IfModule gnutls_module>
Include %%APACHEETCDIR%%/extra/httpd-gnutls.conf
</IfModule>
Sample %%PREFIX%%/%%APACHEETCDIR%%/extra/httpd-gnutls.conf:
Listen 443
GnuTLSCache dbm %%DBDIR%%/tls-cache
GnuTLSCacheTimeout 500
<VirtualHost _default_:443>
GnuTLSEnable on
GnuTLSKeyFile %%PREFIX%%/etc/ssl/certs/private/example_com.key.pem
GnuTLSCertificateFile %%PREFIX%%/etc/ssl/certs/example_com.crt.pem
GnuTLSClientCAFile %%PREFIX%%/etc/ssl/certs/example_com.ca.pem
GnuTLSPriorities NORMAL:%COMPAT
</VirtualHost>
*********************************************************************

5
www/mod_gnutls/pkg-descr Normal file
View File

@ -0,0 +1,5 @@
mod_gnutls uses the GnuTLS library to provide SSL 3.0, TLS 1.0, TLS
1.1 and 1.2 encryption for Apache HTTPD. It is similar to mod_ssl in
purpose, but does not use OpenSSL.
WWW: https://mod.gnutls.org

5
www/mod_gnutls/pkg-plist Normal file
View File

@ -0,0 +1,5 @@
%%APACHEMODDIR%%/%%AP_MODULE%%
@postexec %D/sbin/apxs -e %%AP_MOD_EN%% -n %%AP_NAME%% %D/%F
@postunexec %%SED%% -i '' -E '/LoadModule[[:blank:]]+%%AP_NAME%%_module/d' %D/%%APACHEETCDIR%%/httpd.conf
@postunexec echo "Don't forget to remove all mod_%%AP_NAME%%-related directives in your httpd.conf"
@dir(%%WWWOWN%%,%%WWWGRP%%,750) var/db/mod_%%AP_NAME%%