Skip to Content.
Sympa Menu

sm-commit - [SM-Commit] GIT changes to master grimoire by Pavel Vinogradov (8d472737bf2cd02b370c6599c765b2b4185a3f72)

sm-commit AT lists.ibiblio.org

Subject: Source Mage code commit list

List archive

Chronological Thread  
  • From: Pavel Vinogradov <scm AT sourcemage.org>
  • To: sm-commit AT lists.ibiblio.org
  • Subject: [SM-Commit] GIT changes to master grimoire by Pavel Vinogradov (8d472737bf2cd02b370c6599c765b2b4185a3f72)
  • Date: Fri, 3 Feb 2017 23:18:14 +0000

GIT changes to master grimoire by Pavel Vinogradov <public AT sourcemage.org>:

http/nghttp2/DETAILS | 4
http/nghttp2/HISTORY | 5
http/nghttp2/PRE_BUILD | 4
http/nghttp2/nghttpx-psk-libressl.patch | 181
++++++++++++++++++++++++++++++++
4 files changed, 192 insertions(+), 2 deletions(-)

New commits:
commit 8d472737bf2cd02b370c6599c765b2b4185a3f72
Author: Pavel Vinogradov <public AT sourcemage.org>
Commit: Pavel Vinogradov <public AT sourcemage.org>

http/nghttp2: version 1.19.0

diff --git a/http/nghttp2/DETAILS b/http/nghttp2/DETAILS
index ae77d24..b41172c 100755
--- a/http/nghttp2/DETAILS
+++ b/http/nghttp2/DETAILS
@@ -1,6 +1,6 @@
SPELL="nghttp2"
- VERSION="1.16.0"
-
SOURCE_HASH="sha512:8dccecea61cdbbeeefefaba078af76125cfa81231fb36202055e0abda6153ffdb86d7e58133edfd65b2a517e36a617d13f32459b922774a48bc5dc93d3f57d77"
+ VERSION="1.19.0"
+
SOURCE_HASH="sha512:848c25ad8ef3cf3388e35f0ee074441a4e0bc0a68739f8eaecb6185f3e1bb9cf190df75fda2c0182d93500522663549309a20ded4803dcb5b5731f9748e98f4f"
SOURCE="${SPELL}-${VERSION}.tar.xz"

SOURCE_URL[0]="https://github.com/${SPELL}/${SPELL}/releases/download/v${VERSION}/${SOURCE}";
SOURCE_DIRECTORY="${BUILD_DIRECTORY}/${SPELL}-${VERSION}"
diff --git a/http/nghttp2/HISTORY b/http/nghttp2/HISTORY
index 9f3bb16..a91c11c 100644
--- a/http/nghttp2/HISTORY
+++ b/http/nghttp2/HISTORY
@@ -1,2 +1,7 @@
+2017-02-03 Pavel Vinogradov <public AT sourcemage.org>
+ * DETAILS: version 1.19.0
+ * PRE_BUILD, nghttpx-psk-libressl.patch: added a libressl fix from
+ upstream
+
2016-10-25 Pavel Vinogradov <public AT sourcemage.org>
* DETAILS, DEPENDS, BUILD, INSTALL, init.d/nghttpx: spell created
diff --git a/http/nghttp2/PRE_BUILD b/http/nghttp2/PRE_BUILD
new file mode 100755
index 0000000..562178c
--- /dev/null
+++ b/http/nghttp2/PRE_BUILD
@@ -0,0 +1,4 @@
+default_pre_build &&
+cd ${SOURCE_DIRECTORY} &&
+
+patch -Np1 < ${SPELL_DIRECTORY}/nghttpx-psk-libressl.patch
diff --git a/http/nghttp2/nghttpx-psk-libressl.patch
b/http/nghttp2/nghttpx-psk-libressl.patch
new file mode 100644
index 0000000..33d3baf
--- /dev/null
+++ b/http/nghttp2/nghttpx-psk-libressl.patch
@@ -0,0 +1,181 @@
+From 16be89f9ccba4d37e34ef03f20009a9845efeb99 Mon Sep 17 00:00:00 2001
+From: Bernard Spil <brnrd AT FreeBSD.org>
+Date: Wed, 25 Jan 2017 18:36:54 +0100
+Subject: [PATCH] nghttpx: Don't build PSK features with LibreSSL
+
+LibreSSL removed PSK
+
+Signed-off-by: Bernard Spil <brnrd AT FreeBSD.org>
+---
+ src/shrpx.cc | 6 ++++++
+ src/shrpx_config.cc | 10 ++++++++++
+ src/shrpx_ssl.cc | 8 ++++++++
+ 3 files changed, 24 insertions(+)
+
+diff --git a/src/shrpx.cc b/src/shrpx.cc
+index b636cba..e8477e0 100644
+--- a/src/shrpx.cc
++++ b/src/shrpx.cc
+@@ -2119,6 +2119,7 @@ SSL/TLS:
+ argument <CERT>, or certificate option in configuration
+ file. For additional certificates, use --subcert
+ option. This option requires OpenSSL >= 1.0.2.
++#if !LIBRESSL_IN_USE
+ --psk-secrets=<PATH>
+ Read list of PSK identity and secrets from <PATH>. This
+ is used for frontend connection. The each line of input
+@@ -2146,6 +2147,7 @@ SSL/TLS:
+ HTTP/2. To use those cipher suites with HTTP/2,
+ consider to use --client-no-http2-cipher-black-list
+ option. But be aware its implications.
++#endif // !LIBRESSL_IN_USE
+
+ HTTP/2 and SPDY:
+ -c, --frontend-http2-max-concurrent-streams=<N>
+@@ -3125,8 +3127,10 @@ int main(int argc, char **argv) {
+ {SHRPX_OPT_DNS_MAX_TRY.c_str(), required_argument, &flag, 145},
+ {SHRPX_OPT_FRONTEND_KEEP_ALIVE_TIMEOUT.c_str(), required_argument,
+ &flag, 146},
++#if !LIBRESSL_IN_USE
+ {SHRPX_OPT_PSK_SECRETS.c_str(), required_argument, &flag, 147},
+ {SHRPX_OPT_CLIENT_PSK_SECRETS.c_str(), required_argument, &flag,
148},
++#endif
+ {SHRPX_OPT_CLIENT_NO_HTTP2_CIPHER_BLACK_LIST.c_str(), no_argument,
+ &flag, 149},
+ {SHRPX_OPT_CLIENT_CIPHERS.c_str(), required_argument, &flag, 150},
+@@ -3821,6 +3825,7 @@ int main(int argc, char **argv) {
+ cmdcfgs.emplace_back(SHRPX_OPT_FRONTEND_KEEP_ALIVE_TIMEOUT,
+ StringRef{optarg});
+ break;
++#if !LIBRESSL_IN_USE
+ case 147:
+ // --psk-secrets
+ cmdcfgs.emplace_back(SHRPX_OPT_PSK_SECRETS, StringRef{optarg});
+@@ -3829,6 +3834,7 @@ int main(int argc, char **argv) {
+ // --client-psk-secrets
+ cmdcfgs.emplace_back(SHRPX_OPT_CLIENT_PSK_SECRETS,
StringRef{optarg});
+ break;
++#endif // !LIBRESSL_IN_USE
+ case 149:
+ // --client-no-http2-cipher-black-list
+ cmdcfgs.emplace_back(SHRPX_OPT_CLIENT_NO_HTTP2_CIPHER_BLACK_LIST,
+diff --git a/src/shrpx_config.cc b/src/shrpx_config.cc
+index 56d265c..bf5486c 100644
+--- a/src/shrpx_config.cc
++++ b/src/shrpx_config.cc
+@@ -1199,6 +1199,7 @@ int read_tls_sct_from_dir(std::vector<uint8_t> &dst,
const StringRef &opt,
+ }
+ } // namespace
+
++#if !LIBRESSL_IN_USE
+ namespace {
+ // Reads PSK secrets from path, and parses each line. The result is
+ // directly stored into config->tls.psk_secrets. This function
+@@ -1262,7 +1263,9 @@ int parse_psk_secrets(Config *config, const StringRef
&path) {
+ return 0;
+ }
+ } // namespace
++#endif // !LIBRESSL_IN_USE
+
++#if !LIBRESSL_IN_USE
+ namespace {
+ // Reads PSK secrets from path, and parses each line. The result is
+ // directly stored into config->tls.client.psk. This function returns
+@@ -1322,6 +1325,7 @@ int parse_client_psk_secrets(Config *config, const
StringRef &path) {
+ return 0;
+ }
+ } // namespace
++#endif // !LIBRESSL_IN_USE
+
+ // generated by gennghttpxfun.py
+ int option_lookup_token(const char *name, size_t namelen) {
+@@ -1490,10 +1494,12 @@ int option_lookup_token(const char *name, size_t
namelen) {
+ if (util::strieq_l("ecdh-curve", name, 10)) {
+ return SHRPX_OPTID_ECDH_CURVES;
+ }
++#if !LIBRESSL_IN_USE
+ if (util::strieq_l("psk-secret", name, 10)) {
+ return SHRPX_OPTID_PSK_SECRETS;
+ }
+ break;
++#endif
+ case 't':
+ if (util::strieq_l("write-burs", name, 10)) {
+ return SHRPX_OPTID_WRITE_BURST;
+@@ -1683,11 +1689,13 @@ int option_lookup_token(const char *name, size_t
namelen) {
+ return SHRPX_OPTID_ADD_REQUEST_HEADER;
+ }
+ break;
++#if !LIBRESSL_IN_USE
+ case 's':
+ if (util::strieq_l("client-psk-secret", name, 17)) {
+ return SHRPX_OPTID_CLIENT_PSK_SECRETS;
+ }
+ break;
++#endif // !LIBRESSL_IN_USE
+ case 't':
+ if (util::strieq_l("dns-lookup-timeou", name, 17)) {
+ return SHRPX_OPTID_DNS_LOOKUP_TIMEOUT;
+@@ -3283,10 +3291,12 @@ int parse_config(Config *config, int optid, const
StringRef &opt,
+ case SHRPX_OPTID_FRONTEND_KEEP_ALIVE_TIMEOUT:
+ return parse_duration(&config->conn.upstream.timeout.idle_read, opt,
+ optarg);
++#if !LIBRESSL_IN_USE
+ case SHRPX_OPTID_PSK_SECRETS:
+ return parse_psk_secrets(config, optarg);
+ case SHRPX_OPTID_CLIENT_PSK_SECRETS:
+ return parse_client_psk_secrets(config, optarg);
++#endif // !LIBRESSL_IN_USE
+ case SHRPX_OPTID_CLIENT_NO_HTTP2_CIPHER_BLACK_LIST:
+ config->tls.client.no_http2_cipher_black_list =
+ util::strieq_l("yes", optarg);
+diff --git a/src/shrpx_ssl.cc b/src/shrpx_ssl.cc
+index c5df120..29cdf78 100644
+--- a/src/shrpx_ssl.cc
++++ b/src/shrpx_ssl.cc
+@@ -525,6 +525,7 @@ int sct_parse_cb(SSL *ssl, unsigned int ext_type, const
unsigned char *in,
+ } // namespace
+ #endif // !LIBRESSL_IN_USE && OPENSSL_VERSION_NUMBER >= 0x10002000L
+
++#if !LIBRESSL_IN_USE
+ namespace {
+ unsigned int psk_server_cb(SSL *ssl, const char *identity, unsigned char
*psk,
+ unsigned int max_psk_len) {
+@@ -548,7 +549,9 @@ unsigned int psk_server_cb(SSL *ssl, const char
*identity, unsigned char *psk,
+ return static_cast<unsigned int>(secret.size());
+ }
+ } // namespace
++#endif // !LIBRESSL_IN_USE
+
++#if !LIBRESSL_IN_USE
+ namespace {
+ unsigned int psk_client_cb(SSL *ssl, const char *hint, char *identity_out,
+ unsigned int max_identity_len, unsigned char
*psk,
+@@ -581,6 +584,7 @@ unsigned int psk_client_cb(SSL *ssl, const char *hint,
char *identity_out,
+ return (unsigned int)secret.size();
+ }
+ } // namespace
++#endif // !LIBRESSL_IN_USE
+
+ struct TLSProtocol {
+ StringRef name;
+@@ -784,7 +788,9 @@ SSL_CTX *create_ssl_context(const char
*private_key_file, const char *cert_file,
+ }
+ #endif // !LIBRESSL_IN_USE && OPENSSL_VERSION_NUMBER >= 0x10002000L
+
++#if !LIBRESSL_IN_USE
+ SSL_CTX_set_psk_server_callback(ssl_ctx, psk_server_cb);
++#endif // !LIBRESSL_IN_USE
+
+ auto tls_ctx_data = new TLSContextData();
+ tls_ctx_data->cert_file = cert_file;
+@@ -919,7 +925,9 @@ SSL_CTX *create_ssl_client_context(
+ #endif // HAVE_NEVERBLEED
+ }
+
++#if !LIBRESSL_IN_USE
+ SSL_CTX_set_psk_client_callback(ssl_ctx, psk_client_cb);
++#endif // !LIBRESSL_IN_USE
+
+ // NPN selection callback. This is required to set SSL_CTX because
+ // OpenSSL does not offer SSL_set_next_proto_select_cb.



  • [SM-Commit] GIT changes to master grimoire by Pavel Vinogradov (8d472737bf2cd02b370c6599c765b2b4185a3f72), Pavel Vinogradov, 02/03/2017

Archive powered by MHonArc 2.6.24.

Top of Page