removed community/mongodb

This commit is contained in:
Kevin Mihelich 2017-12-27 13:44:40 +00:00
parent 64217ae556
commit 5374f15c2c
9 changed files with 0 additions and 929 deletions

View file

@ -1,106 +0,0 @@
# $Id$
# Maintainer: Felix Yan <felixonmars@archlinux.org>
# Contributor: Sven-Hendrik Haase <sh@lutzhaase.com>
# Contributor: Thomas Dziedzic < gostrc at gmail >
# Contributor: Mathias Stearn <mathias@10gen.com>
# Contributor: Alec Thomas
# ALARM: Kevin Mihelich <kevin@archlinuxarm.org>
# - x86_64 import, no changes
# - only build for AArch64; 32-bit is unsupported
buildarch=8
highmem=1
pkgname=mongodb
pkgver=3.4.9
pkgrel=1.1
pkgdesc='A high-performance, open source, schema-free document-oriented database'
arch=('x86_64')
url='http://www.mongodb.org'
license=('AGPL3')
depends=('pcre' 'snappy' 'openssl' 'libsasl' 'boost-libs' 'yaml-cpp' 'lsb-release' 'wiredtiger'
'libstemmer')
makedepends=('scons' 'readline' 'ncurses' 'libpcap' 'boost')
checkdepends=('python2-pymongo' 'python2-yaml')
optdepends=('libpcap: needed for mongosniff'
'mongodb-tools: mongoimport, mongodump, mongotop, etc')
backup=('etc/mongodb.conf')
install=mongodb.install
source=("http://downloads.mongodb.org/src/mongodb-src-r${pkgver}.tar.gz"
'mongodb.conf' 'mongodb.service' 'mongodb-3.2.10-boost-1.62.0.patch'
'asio-openssl-1.1.0.patch'
'using-std-string.patch')
sha512sums=('b6803c91e9cda8e6963359386d2014d03f68151f64d580d5baacc3c66b2adabc62ee5c2cf203b9aee7d11942934afc6f9e17364d2f3aafd238ba88d13c77f26d'
'05dead727d3ea5fe8af1a3c3888693f6b3e2b8cb7f197a5d793352e10d2c524e96c9a5c55ad2e88c1114643a9612ec0b26a2574b48a5260a9b51ec8941461f1c'
'177251404b2e818ae2b546fe8b13cb76e348c99e85c7bef22a04b0f07b600fd515a309ede50214f4198594388a6d2b31f46e945b9dae84aabb4dfa13b1123bb9'
'd6f014d2778decde268b9e856d812bc61f7c45986aad751e44fdece39aa8a96505b77e0b917ea38880501497e01d4b051a6f3205c82af653425b5247cd813417'
'aea8fecb17be07e4517822798810751114f61164dc3ab3e335a7b837876acb918d287caa8b9fe32d7b1d9e7cad2e677d9818a1532ae08b8b013840d2a68b25f5'
'f2e1e9b9418701738c7a9b6db4f894dc3c35a6fbbf9ded8321080350ba692c6c8b11d6f507043a5bdae83fe8f9806426c0f33acd94895412369e4776c2358052')
_scons_args=(
--use-system-boost
--use-system-pcre
--use-system-snappy
--use-system-yaml
--use-system-zlib
--use-system-wiredtiger
--use-system-stemmer
--use-sasl-client
--ssl
--disable-warnings-as-errors
# --use-system-asio # https://jira.mongodb.org/browse/SERVER-21839
# --use-system-v8 # Doesn't compile
# --use-system-icu
# --use-system-tcmalloc # Disabled as upstream suggests in https://jira.mongodb.org/browse/SERVER-17447?focusedCommentId=841890&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-841890
)
prepare() {
cd mongodb-src-r${pkgver}
patch -Np1 -i ../using-std-string.patch
patch -Np1 -i ../mongodb-3.2.10-boost-1.62.0.patch
sed -e 's|-std=c++11|-std=gnu++11|g' -i SConstruct # tests use hex floats, not supported in plain C++
sed -i '/#include "mongo.platform.strnlen.h"/a using namespace std;' src/mongo/bson/bsonelement.h
cd src/third_party/asio-asio-1-11-0
patch -Np1 -i "${srcdir}/asio-openssl-1.1.0.patch"
}
build() {
cd mongodb-src-r${pkgver}
export SCONSFLAGS="$MAKEFLAGS"
scons core tools "${_scons_args[@]}"
}
check() {
cd mongodb-src-r${pkgver}
export SCONSFLAGS="$MAKEFLAGS"
# Setting LANG to workaround the following test error:
# std::exception: locale::facet::_S_create_c_locale name not valid
# 3.4.9: Tests hang
# scons unittests "${_scons_args[@]}"
# sed -i -e '/oplog_buffer_collection_test/d' build/unittests.txt
# LANG=en_US.UTF-8 python2 buildscripts/resmoke.py --suites=unittests
scons dbtest "${_scons_args[@]}"
python2 buildscripts/resmoke.py --suites=dbtest
#scons integration_tests "${_scons_args[@]}"
#python2 buildscripts/resmoke.py --suites=integration_tests_replset,integration_tests_standalone --dbpathPrefix="$srcdir"
}
package() {
cd mongodb-src-r${pkgver}
scons install --prefix="$pkgdir/usr" --nostrip "${_scons_args[@]}"
install -Dm644 "$srcdir/mongodb.conf" "$pkgdir/etc/mongodb.conf"
install -Dm644 "$srcdir/mongodb.service" "$pkgdir/usr/lib/systemd/system/mongodb.service"
install -dm700 "$pkgdir/var/lib/mongodb"
install -dm755 "$pkgdir/var/log/mongodb"
}

View file

@ -1,666 +0,0 @@
From 628e3ca9fe7a1bed1ce2308e2df4a1a4ecd1dfe7 Mon Sep 17 00:00:00 2001
From: Christopher Kohlhoff <chris@kohlhoff.com>
Date: Fri, 20 Mar 2015 08:46:51 +1100
Subject: [PATCH] ERR_remove_state is deprecated, use ERR_remove_thread_state
instead.
---
asio/include/asio/ssl/detail/impl/openssl_init.ipp | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/asio/include/asio/ssl/detail/impl/openssl_init.ipp b/asio/include/asio/ssl/detail/impl/openssl_init.ipp
index 2c40d40..da66fc1 100644
--- a/asio/include/asio/ssl/detail/impl/openssl_init.ipp
+++ b/asio/include/asio/ssl/detail/impl/openssl_init.ipp
@@ -63,7 +63,11 @@ public:
::CRYPTO_set_id_callback(0);
::CRYPTO_set_locking_callback(0);
::ERR_free_strings();
+#if (OPENSSL_VERSION_NUMBER >= 0x10000000L)
+ ::ERR_remove_thread_state(NULL);
+#else // (OPENSSL_VERSION_NUMBER >= 0x10000000L)
::ERR_remove_state(0);
+#endif // (OPENSSL_VERSION_NUMBER >= 0x10000000L)
::EVP_cleanup();
::CRYPTO_cleanup_all_ex_data();
::CONF_modules_unload(1);
From aa21de0944b4327f998fe161dde5ddaaf38cec5c Mon Sep 17 00:00:00 2001
From: Christopher Kohlhoff <chris@kohlhoff.com>
Date: Sat, 21 Mar 2015 20:52:42 +1100
Subject: [PATCH] Remove redundant pointer check in SSL engine.
---
asio/include/asio/ssl/detail/impl/engine.ipp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/asio/include/asio/ssl/detail/impl/engine.ipp b/asio/include/asio/ssl/detail/impl/engine.ipp
index 5504411..2e4a39d 100644
--- a/asio/include/asio/ssl/detail/impl/engine.ipp
+++ b/asio/include/asio/ssl/detail/impl/engine.ipp
@@ -206,7 +206,7 @@ const asio::error_code& engine::map_error_code(
// SSL v2 doesn't provide a protocol-level shutdown, so an eof on the
// underlying transport is passed through.
- if (ssl_ && ssl_->version == SSL2_VERSION)
+ if (ssl_->version == SSL2_VERSION)
return ec;
// Otherwise, the peer should have negotiated a proper shutdown.
From 6c70257e20ef159c581298b54838361bb54bfce4 Mon Sep 17 00:00:00 2001
From: Christopher Kohlhoff <chris@kohlhoff.com>
Date: Thu, 1 Oct 2015 08:44:30 +1000
Subject: [PATCH] Use SSL_CTX_clear_chain_certs, if available.
---
asio/include/asio/ssl/impl/context.ipp | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/asio/include/asio/ssl/impl/context.ipp b/asio/include/asio/ssl/impl/context.ipp
index 08705e7..77da84e 100644
--- a/asio/include/asio/ssl/impl/context.ipp
+++ b/asio/include/asio/ssl/impl/context.ipp
@@ -539,11 +539,15 @@ asio::error_code context::use_certificate_chain(
return ec;
}
+#if (OPENSSL_VERSION_NUMBER >= 0x10002000L)
+ ::SSL_CTX_clear_chain_certs(handle_);
+#else
if (handle_->extra_certs)
{
::sk_X509_pop_free(handle_->extra_certs, X509_free);
handle_->extra_certs = 0;
}
+#endif // (OPENSSL_VERSION_NUMBER >= 0x10002000L)
while (X509* cacert = ::PEM_read_bio_X509(bio.p, 0,
handle_->default_passwd_callback,
From 92bfc623e6a71353dd2c783f4c9fef5591ac550d Mon Sep 17 00:00:00 2001
From: Christopher Kohlhoff <chris@kohlhoff.com>
Date: Thu, 19 Nov 2015 10:24:56 +1100
Subject: [PATCH] Add new error category and constant for
ssl::error::stream_truncated.
This error replaces uses of SSL_R_SHORT_READ, and indicates that the
SSL stream has been shut down abruptly. (I.e. the underlying socket
has been closed without performing an SSL-layer shutdown.)
---
asio/include/asio/ssl/detail/impl/engine.ipp | 8 ++-----
asio/include/asio/ssl/error.hpp | 34 ++++++++++++++++++++++++++++
asio/include/asio/ssl/impl/error.ipp | 33 ++++++++++++++++++++++++++-
3 files changed, 68 insertions(+), 7 deletions(-)
diff --git a/asio/include/asio/ssl/detail/impl/engine.ipp b/asio/include/asio/ssl/detail/impl/engine.ipp
index b59cf18..9abe010 100644
--- a/asio/include/asio/ssl/detail/impl/engine.ipp
+++ b/asio/include/asio/ssl/detail/impl/engine.ipp
@@ -195,9 +195,7 @@ const asio::error_code& engine::map_error_code(
// If there's data yet to be read, it's an error.
if (BIO_wpending(ext_bio_))
{
- ec = asio::error_code(
- ERR_PACK(ERR_LIB_SSL, 0, SSL_R_SHORT_READ),
- asio::error::get_ssl_category());
+ ec = asio::ssl::error::stream_truncated;
return ec;
}
@@ -209,9 +207,7 @@ const asio::error_code& engine::map_error_code(
// Otherwise, the peer should have negotiated a proper shutdown.
if ((::SSL_get_shutdown(ssl_) & SSL_RECEIVED_SHUTDOWN) == 0)
{
- ec = asio::error_code(
- ERR_PACK(ERR_LIB_SSL, 0, SSL_R_SHORT_READ),
- asio::error::get_ssl_category());
+ ec = asio::ssl::error::stream_truncated;
}
return ec;
diff --git a/asio/include/asio/ssl/error.hpp b/asio/include/asio/ssl/error.hpp
index 1385d2a..f044f59 100644
--- a/asio/include/asio/ssl/error.hpp
+++ b/asio/include/asio/ssl/error.hpp
@@ -25,6 +25,7 @@ namespace error {
enum ssl_errors
{
+ // Error numbers are those produced by openssl.
};
extern ASIO_DECL
@@ -34,6 +35,23 @@ static const asio::error_category& ssl_category
= asio::error::get_ssl_category();
} // namespace error
+namespace ssl {
+namespace error {
+
+enum stream_errors
+{
+ /// The underlying stream closed before the ssl stream gracefully shut down.
+ stream_truncated = 1
+};
+
+extern ASIO_DECL
+const asio::error_category& get_stream_category();
+
+static const asio::error_category& stream_category
+ = asio::ssl::error::get_stream_category();
+
+} // namespace error
+} // namespace ssl
} // namespace asio
#if defined(ASIO_HAS_STD_SYSTEM_ERROR)
@@ -44,6 +62,11 @@ template<> struct is_error_code_enum<asio::error::ssl_errors>
static const bool value = true;
};
+template<> struct is_error_code_enum<asio::ssl::error::stream_errors>
+{
+ static const bool value = true;
+};
+
} // namespace std
#endif // defined(ASIO_HAS_STD_SYSTEM_ERROR)
@@ -57,6 +80,17 @@ inline asio::error_code make_error_code(ssl_errors e)
}
} // namespace error
+namespace ssl {
+namespace error {
+
+inline asio::error_code make_error_code(stream_errors e)
+{
+ return asio::error_code(
+ static_cast<int>(e), get_stream_category());
+}
+
+} // namespace error
+} // namespace ssl
} // namespace asio
#include "asio/detail/pop_options.hpp"
diff --git a/asio/include/asio/ssl/impl/error.ipp b/asio/include/asio/ssl/impl/error.ipp
index 9e76039..8c20e81 100644
--- a/asio/include/asio/ssl/impl/error.ipp
+++ b/asio/include/asio/ssl/impl/error.ipp
@@ -23,7 +23,6 @@
namespace asio {
namespace error {
-
namespace detail {
class ssl_category : public asio::error_category
@@ -50,6 +49,38 @@ const asio::error_category& get_ssl_category()
}
} // namespace error
+namespace ssl {
+namespace error {
+namespace detail {
+
+class stream_category : public asio::error_category
+{
+public:
+ const char* name() const ASIO_ERROR_CATEGORY_NOEXCEPT
+ {
+ return "asio.ssl.stream";
+ }
+
+ std::string message(int value) const
+ {
+ switch (value)
+ {
+ case stream_truncated: return "stream truncated";
+ default: return "asio.ssl.stream error";
+ }
+ }
+};
+
+} // namespace detail
+
+const asio::error_category& get_stream_category()
+{
+ static detail::stream_category instance;
+ return instance;
+}
+
+} // namespace error
+} // namespace ssl
} // namespace asio
#include "asio/detail/pop_options.hpp"
From 5fa80539834c10406611bb02c20cdba2a9171f4a Mon Sep 17 00:00:00 2001
From: Christopher Kohlhoff <chris@kohlhoff.com>
Date: Thu, 19 Nov 2015 10:25:42 +1100
Subject: [PATCH] BoringSSL does not provide CONF_modules_unload.
---
asio/include/asio/ssl/detail/impl/openssl_init.ipp | 2 ++
1 file changed, 2 insertions(+)
diff --git a/asio/include/asio/ssl/detail/impl/openssl_init.ipp b/asio/include/asio/ssl/detail/impl/openssl_init.ipp
index da66fc1..2a70bf5 100644
--- a/asio/include/asio/ssl/detail/impl/openssl_init.ipp
+++ b/asio/include/asio/ssl/detail/impl/openssl_init.ipp
@@ -70,7 +70,9 @@ public:
#endif // (OPENSSL_VERSION_NUMBER >= 0x10000000L)
::EVP_cleanup();
::CRYPTO_cleanup_all_ex_data();
+#if !defined(OPENSSL_IS_BORINGSSL)
::CONF_modules_unload(1);
+#endif // !defined(OPENSSL_IS_BORINGSSL)
#if !defined(OPENSSL_NO_ENGINE)
::ENGINE_cleanup();
#endif // !defined(OPENSSL_NO_ENGINE)
From 062b19c97bb85f4625b46f93ee19b234948ff235 Mon Sep 17 00:00:00 2001
From: Marcel Raad <raad@teamviewer.com>
Date: Fri, 1 Apr 2016 10:46:17 +0200
Subject: [PATCH] Add compatibility with OpenSSL 1.1 - SSLv2 has been
completely removed from OpenSSL, even without OPENSSL_NO_SSL2 - there is a
new threading API without locking callbacks - struct SSL_CTX has been made
opaque and must be used via accessor functions - some cleanup functions have
been removed
---
asio/include/asio/ssl/detail/impl/engine.ipp | 2 +
asio/include/asio/ssl/detail/impl/openssl_init.ipp | 20 ++++--
asio/include/asio/ssl/impl/context.ipp | 71 +++++++++++++++++-----
3 files changed, 72 insertions(+), 21 deletions(-)
diff --git a/asio/include/asio/ssl/detail/impl/engine.ipp b/asio/include/asio/ssl/detail/impl/engine.ipp
index fa5d4b0..22b7cdd 100644
--- a/asio/include/asio/ssl/detail/impl/engine.ipp
+++ b/asio/include/asio/ssl/detail/impl/engine.ipp
@@ -201,8 +201,10 @@ const asio::error_code& engine::map_error_code(
// SSL v2 doesn't provide a protocol-level shutdown, so an eof on the
// underlying transport is passed through.
+#if (OPENSSL_VERSION_NUMBER < 0x10100000L)
if (ssl_->version == SSL2_VERSION)
return ec;
+#endif // (OPENSSL_VERSION_NUMBER < 0x10100000L)
// Otherwise, the peer should have negotiated a proper shutdown.
if ((::SSL_get_shutdown(ssl_) & SSL_RECEIVED_SHUTDOWN) == 0)
diff --git a/asio/include/asio/ssl/detail/impl/openssl_init.ipp b/asio/include/asio/ssl/detail/impl/openssl_init.ipp
index 700b678..62a49cd 100644
--- a/asio/include/asio/ssl/detail/impl/openssl_init.ipp
+++ b/asio/include/asio/ssl/detail/impl/openssl_init.ipp
@@ -39,11 +39,13 @@ public:
::SSL_load_error_strings();
::OpenSSL_add_all_algorithms();
+#if (OPENSSL_VERSION_NUMBER < 0x10100000L)
mutexes_.resize(::CRYPTO_num_locks());
for (size_t i = 0; i < mutexes_.size(); ++i)
mutexes_[i].reset(new asio::detail::mutex);
::CRYPTO_set_locking_callback(&do_init::openssl_locking_func);
::CRYPTO_set_id_callback(&do_init::openssl_id_func);
+#endif // (OPENSSL_VERSION_NUMBER < 0x10100000L)
#if !defined(SSL_OP_NO_COMPRESSION) \
&& (OPENSSL_VERSION_NUMBER >= 0x00908000L)
@@ -60,22 +62,26 @@ public:
#endif // !defined(SSL_OP_NO_COMPRESSION)
// && (OPENSSL_VERSION_NUMBER >= 0x00908000L)
+#if (OPENSSL_VERSION_NUMBER < 0x10100000L)
::CRYPTO_set_id_callback(0);
::CRYPTO_set_locking_callback(0);
::ERR_free_strings();
-#if (OPENSSL_VERSION_NUMBER >= 0x10000000L)
- ::ERR_remove_thread_state(NULL);
-#else // (OPENSSL_VERSION_NUMBER >= 0x10000000L)
- ::ERR_remove_state(0);
-#endif // (OPENSSL_VERSION_NUMBER >= 0x10000000L)
::EVP_cleanup();
::CRYPTO_cleanup_all_ex_data();
+#endif // (OPENSSL_VERSION_NUMBER < 0x10100000L)
+#if (OPENSSL_VERSION_NUMBER < 0x10000000L)
+ ::ERR_remove_state(0);
+#elif (OPENSSL_VERSION_NUMBER < 0x10100000L)
+ ::ERR_remove_thread_state(NULL);
+#endif // (OPENSSL_VERSION_NUMBER < 0x10000000L)
#if !defined(OPENSSL_IS_BORINGSSL)
::CONF_modules_unload(1);
#endif // !defined(OPENSSL_IS_BORINGSSL)
-#if !defined(OPENSSL_NO_ENGINE)
+#if !defined(OPENSSL_NO_ENGINE) \
+ && (OPENSSL_VERSION_NUMBER < 0x10100000L)
::ENGINE_cleanup();
#endif // !defined(OPENSSL_NO_ENGINE)
+ // && (OPENSSL_VERSION_NUMBER < 0x10100000L)
}
#if !defined(SSL_OP_NO_COMPRESSION) \
@@ -104,10 +110,12 @@ private:
static void openssl_locking_func(int mode, int n,
const char* /*file*/, int /*line*/)
{
+#if (OPENSSL_VERSION_NUMBER < 0x10100000L)
if (mode & CRYPTO_LOCK)
instance()->mutexes_[n]->lock();
else
instance()->mutexes_[n]->unlock();
+#endif // (OPENSSL_VERSION_NUMBER < 0x10100000L)
}
// Mutexes to be used in locking callbacks.
diff --git a/asio/include/asio/ssl/impl/context.ipp b/asio/include/asio/ssl/impl/context.ipp
index 02210d9..fde7709 100644
--- a/asio/include/asio/ssl/impl/context.ipp
+++ b/asio/include/asio/ssl/impl/context.ipp
@@ -66,7 +66,8 @@ context::context(context::method m)
switch (m)
{
-#if defined(OPENSSL_NO_SSL2)
+#if defined(OPENSSL_NO_SSL2) \
+ || (OPENSSL_VERSION_NUMBER >= 0x10100000L)
case context::sslv2:
case context::sslv2_client:
case context::sslv2_server:
@@ -74,6 +75,7 @@ context::context(context::method m)
asio::error::invalid_argument, "context");
break;
#else // defined(OPENSSL_NO_SSL2)
+ // || (OPENSSL_VERSION_NUMBER >= 0x10100000L)
case context::sslv2:
handle_ = ::SSL_CTX_new(::SSLv2_method());
break;
@@ -84,6 +86,7 @@ context::context(context::method m)
handle_ = ::SSL_CTX_new(::SSLv2_server_method());
break;
#endif // defined(OPENSSL_NO_SSL2)
+ // || (OPENSSL_VERSION_NUMBER >= 0x10100000L)
#if defined(OPENSSL_NO_SSL3)
case context::sslv3:
case context::sslv3_client:
@@ -192,13 +195,22 @@ context::~context()
{
if (handle_)
{
- if (handle_->default_passwd_callback_userdata)
+#if (OPENSSL_VERSION_NUMBER >= 0x10100000L)
+ void* cb_userdata = ::SSL_CTX_get_default_passwd_cb_userdata(handle_);
+#else // (OPENSSL_VERSION_NUMBER >= 0x10100000L)
+ void* cb_userdata = handle_->default_passwd_callback_userdata;
+#endif // (OPENSSL_VERSION_NUMBER >= 0x10100000L)
+ if (cb_userdata)
{
detail::password_callback_base* callback =
static_cast<detail::password_callback_base*>(
- handle_->default_passwd_callback_userdata);
+ cb_userdata);
delete callback;
+#if (OPENSSL_VERSION_NUMBER >= 0x10100000L)
+ ::SSL_CTX_set_default_passwd_cb_userdata(handle_, 0);
+#else // (OPENSSL_VERSION_NUMBER >= 0x10100000L)
handle_->default_passwd_callback_userdata = 0;
+#endif // (OPENSSL_VERSION_NUMBER >= 0x10100000L)
}
if (SSL_CTX_get_app_data(handle_))
@@ -528,10 +540,17 @@ ASIO_SYNC_OP_VOID context::use_certificate_chain(
bio_cleanup bio = { make_buffer_bio(chain) };
if (bio.p)
{
+#if (OPENSSL_VERSION_NUMBER >= 0x10100000L)
+ pem_password_cb* callback = ::SSL_CTX_get_default_passwd_cb(handle_);
+ void* cb_userdata = ::SSL_CTX_get_default_passwd_cb_userdata(handle_);
+#else // (OPENSSL_VERSION_NUMBER >= 0x10100000L)
+ pem_password_cb* callback = handle_->default_passwd_callback;
+ void* cb_userdata = handle_->default_passwd_callback_userdata;
+#endif // (OPENSSL_VERSION_NUMBER >= 0x10100000L)
x509_cleanup cert = {
::PEM_read_bio_X509_AUX(bio.p, 0,
- handle_->default_passwd_callback,
- handle_->default_passwd_callback_userdata) };
+ callback,
+ cb_userdata) };
if (!cert.p)
{
ec = asio::error_code(ERR_R_PEM_LIB,
@@ -559,8 +578,8 @@ ASIO_SYNC_OP_VOID context::use_certificate_chain(
#endif // (OPENSSL_VERSION_NUMBER >= 0x10002000L)
while (X509* cacert = ::PEM_read_bio_X509(bio.p, 0,
- handle_->default_passwd_callback,
- handle_->default_passwd_callback_userdata))
+ callback,
+ cb_userdata))
{
if (!::SSL_CTX_add_extra_chain_cert(handle_, cacert))
{
@@ -625,6 +644,14 @@ ASIO_SYNC_OP_VOID context::use_private_key(
{
::ERR_clear_error();
+#if (OPENSSL_VERSION_NUMBER >= 0x10100000L)
+ pem_password_cb* callback = ::SSL_CTX_get_default_passwd_cb(handle_);
+ void* cb_userdata = ::SSL_CTX_get_default_passwd_cb_userdata(handle_);
+#else // (OPENSSL_VERSION_NUMBER >= 0x10100000L)
+ pem_password_cb* callback = handle_->default_passwd_callback;
+ void* cb_userdata = handle_->default_passwd_callback_userdata;
+#endif // (OPENSSL_VERSION_NUMBER >= 0x10100000L)
+
bio_cleanup bio = { make_buffer_bio(private_key) };
if (bio.p)
{
@@ -636,8 +663,8 @@ ASIO_SYNC_OP_VOID context::use_private_key(
break;
case context_base::pem:
evp_private_key.p = ::PEM_read_bio_PrivateKey(
- bio.p, 0, handle_->default_passwd_callback,
- handle_->default_passwd_callback_userdata);
+ bio.p, 0, callback,
+ cb_userdata);
break;
default:
{
@@ -684,6 +711,14 @@ ASIO_SYNC_OP_VOID context::use_rsa_private_key(
{
::ERR_clear_error();
+#if (OPENSSL_VERSION_NUMBER >= 0x10100000L)
+ pem_password_cb* callback = ::SSL_CTX_get_default_passwd_cb(handle_);
+ void* cb_userdata = ::SSL_CTX_get_default_passwd_cb_userdata(handle_);
+#else // (OPENSSL_VERSION_NUMBER >= 0x10100000L)
+ pem_password_cb* callback = handle_->default_passwd_callback;
+ void* cb_userdata = handle_->default_passwd_callback_userdata;
+#endif // (OPENSSL_VERSION_NUMBER >= 0x10100000L)
+
bio_cleanup bio = { make_buffer_bio(private_key) };
if (bio.p)
{
@@ -695,8 +730,8 @@ ASIO_SYNC_OP_VOID context::use_rsa_private_key(
break;
case context_base::pem:
rsa_private_key.p = ::PEM_read_bio_RSAPrivateKey(
- bio.p, 0, handle_->default_passwd_callback,
- handle_->default_passwd_callback_userdata);
+ bio.p, 0, callback,
+ cb_userdata);
break;
default:
{
@@ -915,11 +950,17 @@ int context::verify_callback_function(int preverified, X509_STORE_CTX* ctx)
ASIO_SYNC_OP_VOID context::do_set_password_callback(
detail::password_callback_base* callback, asio::error_code& ec)
{
- if (handle_->default_passwd_callback_userdata)
- delete static_cast<detail::password_callback_base*>(
- handle_->default_passwd_callback_userdata);
-
+#if (OPENSSL_VERSION_NUMBER >= 0x10100000L)
+ void* old_callback = ::SSL_CTX_get_default_passwd_cb_userdata(handle_);
+ ::SSL_CTX_set_default_passwd_cb_userdata(handle_, callback);
+#else // (OPENSSL_VERSION_NUMBER >= 0x10100000L)
+ void* old_callback = handle_->default_passwd_callback_userdata;
handle_->default_passwd_callback_userdata = callback;
+#endif // (OPENSSL_VERSION_NUMBER >= 0x10100000L)
+
+ if (old_callback)
+ delete static_cast<detail::password_callback_base*>(
+ old_callback);
SSL_CTX_set_default_passwd_cb(handle_, &context::password_callback_function);
From 69e44a4cc6eb5ba21ede409779a7b777c0eb3869 Mon Sep 17 00:00:00 2001
From: Christopher Kohlhoff <chris@kohlhoff.com>
Date: Sun, 28 Aug 2016 10:02:08 +1000
Subject: [PATCH] Fix errors when OPENSSL_NO_DEPRECATED is defined.
---
asio/include/asio/ssl/detail/impl/openssl_init.ipp | 23 +++++++++++-----------
asio/include/asio/ssl/detail/openssl_types.hpp | 2 ++
2 files changed, 13 insertions(+), 12 deletions(-)
diff --git a/asio/include/asio/ssl/detail/impl/openssl_init.ipp b/asio/include/asio/ssl/detail/impl/openssl_init.ipp
index 62a49cd..4cc9859 100644
--- a/asio/include/asio/ssl/detail/impl/openssl_init.ipp
+++ b/asio/include/asio/ssl/detail/impl/openssl_init.ipp
@@ -44,8 +44,10 @@ public:
for (size_t i = 0; i < mutexes_.size(); ++i)
mutexes_[i].reset(new asio::detail::mutex);
::CRYPTO_set_locking_callback(&do_init::openssl_locking_func);
- ::CRYPTO_set_id_callback(&do_init::openssl_id_func);
#endif // (OPENSSL_VERSION_NUMBER < 0x10100000L)
+#if (OPENSSL_VERSION_NUMBER < 0x10000000L)
+ ::CRYPTO_set_id_callback(&do_init::openssl_id_func);
+#endif // (OPENSSL_VERSION_NUMBER < 0x10000000L)
#if !defined(SSL_OP_NO_COMPRESSION) \
&& (OPENSSL_VERSION_NUMBER >= 0x00908000L)
@@ -62,8 +64,10 @@ public:
#endif // !defined(SSL_OP_NO_COMPRESSION)
// && (OPENSSL_VERSION_NUMBER >= 0x00908000L)
-#if (OPENSSL_VERSION_NUMBER < 0x10100000L)
+#if (OPENSSL_VERSION_NUMBER < 0x10000000L)
::CRYPTO_set_id_callback(0);
+#endif // (OPENSSL_VERSION_NUMBER < 0x10000000L)
+#if (OPENSSL_VERSION_NUMBER < 0x10100000L)
::CRYPTO_set_locking_callback(0);
::ERR_free_strings();
::EVP_cleanup();
@@ -94,38 +98,33 @@ public:
// && (OPENSSL_VERSION_NUMBER >= 0x00908000L)
private:
+#if (OPENSSL_VERSION_NUMBER < 0x10000000L)
static unsigned long openssl_id_func()
{
#if defined(ASIO_WINDOWS) || defined(__CYGWIN__)
return ::GetCurrentThreadId();
#else // defined(ASIO_WINDOWS) || defined(__CYGWIN__)
- void* id = instance()->thread_id_;
- if (id == 0)
- instance()->thread_id_ = id = &id; // Ugh.
+ void* id = &errno;
ASIO_ASSERT(sizeof(unsigned long) >= sizeof(void*));
return reinterpret_cast<unsigned long>(id);
#endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__)
}
+#endif // (OPENSSL_VERSION_NUMBER < 0x10000000L)
+#if (OPENSSL_VERSION_NUMBER < 0x10100000L)
static void openssl_locking_func(int mode, int n,
const char* /*file*/, int /*line*/)
{
-#if (OPENSSL_VERSION_NUMBER < 0x10100000L)
if (mode & CRYPTO_LOCK)
instance()->mutexes_[n]->lock();
else
instance()->mutexes_[n]->unlock();
-#endif // (OPENSSL_VERSION_NUMBER < 0x10100000L)
}
// Mutexes to be used in locking callbacks.
std::vector<asio::detail::shared_ptr<
asio::detail::mutex> > mutexes_;
-
-#if !defined(ASIO_WINDOWS) && !defined(__CYGWIN__)
- // The thread identifiers to be used by openssl.
- asio::detail::tss_ptr<void> thread_id_;
-#endif // !defined(ASIO_WINDOWS) && !defined(__CYGWIN__)
+#endif // (OPENSSL_VERSION_NUMBER < 0x10100000L)
#if !defined(SSL_OP_NO_COMPRESSION) \
&& (OPENSSL_VERSION_NUMBER >= 0x00908000L)
diff --git a/asio/include/asio/ssl/detail/openssl_types.hpp b/asio/include/asio/ssl/detail/openssl_types.hpp
index d9cfc71..eda740d 100644
--- a/asio/include/asio/ssl/detail/openssl_types.hpp
+++ b/asio/include/asio/ssl/detail/openssl_types.hpp
@@ -21,7 +21,9 @@
#if !defined(OPENSSL_NO_ENGINE)
# include <openssl/engine.h>
#endif // !defined(OPENSSL_NO_ENGINE)
+#include <openssl/dh.h>
#include <openssl/err.h>
+#include <openssl/rsa.h>
#include <openssl/x509v3.h>
#include "asio/detail/socket_types.hpp"
From 2cde22623ca0fd9571d8d57c5a8965082d815e1c Mon Sep 17 00:00:00 2001
From: Christopher Kohlhoff <chris@kohlhoff.com>
Date: Tue, 13 Sep 2016 21:59:03 +1000
Subject: [PATCH] Call SSL_COMP_free_compression_methods() on ssl cleanup.
This call is needed for OpenSSL >=1.0.2 and <1.1.0.
---
asio/include/asio/ssl/detail/impl/openssl_init.ipp | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/asio/include/asio/ssl/detail/impl/openssl_init.ipp b/asio/include/asio/ssl/detail/impl/openssl_init.ipp
index 4cc9859..392eff9 100644
--- a/asio/include/asio/ssl/detail/impl/openssl_init.ipp
+++ b/asio/include/asio/ssl/detail/impl/openssl_init.ipp
@@ -78,6 +78,11 @@ public:
#elif (OPENSSL_VERSION_NUMBER < 0x10100000L)
::ERR_remove_thread_state(NULL);
#endif // (OPENSSL_VERSION_NUMBER < 0x10000000L)
+#if (OPENSSL_VERSION_NUMBER >= 0x10002000L) \
+ && (OPENSSL_VERSION_NUMBER < 0x10100000L)
+ ::SSL_COMP_free_compression_methods();
+#endif // (OPENSSL_VERSION_NUMBER >= 0x10002000L)
+ // && (OPENSSL_VERSION_NUMBER < 0x10100000L)
#if !defined(OPENSSL_IS_BORINGSSL)
::CONF_modules_unload(1);
#endif // !defined(OPENSSL_IS_BORINGSSL)
From dc2b5b9ac09326ba1e38a28b48170063ca2b1332 Mon Sep 17 00:00:00 2001
From: Marcel Raad <MarcelRaad@users.noreply.github.com>
Date: Mon, 31 Oct 2016 10:32:19 +0100
Subject: [PATCH] Fix compilation with OpenSSL 1.1 API
With OPENSSL_API_COMPAT=0x10100000L, SSL_library_init, SSL_load_error_strings, and OpenSSL_add_all_algorithms are removed.
With OPENSSL_API_COMPAT=0x10000000L, these are function-style macros mapping to OPENSSL_init_ssl, which is called automatically anyway.
References:
https://www.openssl.org/docs/man1.1.0/ssl/OPENSSL_init_ssl.html
https://www.openssl.org/docs/man1.1.0/crypto/OPENSSL_init_crypto.html
---
asio/include/asio/ssl/detail/impl/openssl_init.ipp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/asio/include/asio/ssl/detail/impl/openssl_init.ipp b/asio/include/asio/ssl/detail/impl/openssl_init.ipp
index 392eff9..5de0caa 100644
--- a/asio/include/asio/ssl/detail/impl/openssl_init.ipp
+++ b/asio/include/asio/ssl/detail/impl/openssl_init.ipp
@@ -35,11 +35,11 @@ class openssl_init_base::do_init
public:
do_init()
{
+#if (OPENSSL_VERSION_NUMBER < 0x10100000L)
::SSL_library_init();
::SSL_load_error_strings();
::OpenSSL_add_all_algorithms();
-#if (OPENSSL_VERSION_NUMBER < 0x10100000L)
mutexes_.resize(::CRYPTO_num_locks());
for (size_t i = 0; i < mutexes_.size(); ++i)
mutexes_[i].reset(new asio::detail::mutex);

View file

@ -1,11 +0,0 @@
diff -uprb mongodb-src-r3.2.0.orig/SConstruct mongodb-src-r3.2.0/SConstruct
--- mongodb-src-r3.2.0.orig/SConstruct 2015-12-02 21:01:34.000000000 +0200
+++ mongodb-src-r3.2.0/SConstruct 2015-12-22 11:18:23.613216445 +0200
@@ -2245,6 +2245,7 @@ def doConfigure(myenv):
# permit more than four parameters.
"BOOST_THREAD_DONT_PROVIDE_VARIADIC_THREAD",
"BOOST_SYSTEM_NO_DEPRECATED",
+ "BOOST_OPTIONAL_USE_SINGLETON_DEFINITION_OF_NONE",
]
)

View file

@ -1,15 +0,0 @@
$NetBSD: patch-src_mongo_db_fts_unicode_string.cpp,v 1.1 2016/10/10 13:15:40 ryoon Exp $
* Fix build with boost 1.62.0
--- a/src/mongo/db/fts/unicode/string.cpp.orig 2016-09-26 12:10:04.000000000 +0000
+++ b/src/mongo/db/fts/unicode/string.cpp
@@ -274,7 +274,7 @@ bool String::substrMatch(const std::stri
// Case sensitive and diacritic sensitive.
return boost::algorithm::boyer_moore_search(
- haystack.begin(), haystack.end(), needle.begin(), needle.end()) != haystack.end();
+ haystack.begin(), haystack.end(), needle.begin(), needle.end()) != std::make_pair(haystack.end(), haystack.end());
}
} // namespace unicode

View file

@ -1,23 +0,0 @@
From ea20ce71ee1151abc5bbe5ea60713a86d34a751a Mon Sep 17 00:00:00 2001
From: Waley Chen <waleycz@gmail.com>
Date: Fri, 6 May 2016 17:53:10 -0400
Subject: [PATCH] SERVER-23951 network_interface_asio_integration_test //
ExceededTimeLimit
---
src/mongo/executor/network_interface_asio_integration_test.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/mongo/executor/network_interface_asio_integration_test.cpp b/src/mongo/executor/network_interface_asio_integration_test.cpp
index cb85f27..617ae36 100644
--- a/src/mongo/executor/network_interface_asio_integration_test.cpp
+++ b/src/mongo/executor/network_interface_asio_integration_test.cpp
@@ -170,7 +170,7 @@ class StressTestOp {
using Fixture = NetworkInterfaceASIOIntegrationTest;
using Pool = ThreadPoolInterface;
- Deferred<Status> run(Fixture* fixture, Pool* pool, Milliseconds timeout = Milliseconds(5000)) {
+ Deferred<Status> run(Fixture* fixture, Pool* pool, Milliseconds timeout = Milliseconds(60000)) {
auto cb = makeCallbackHandle();
auto self = *this;
auto out =

View file

@ -1,8 +0,0 @@
# See http://www.mongodb.org/display/DOCS/File+Based+Configuration for format details
# Run mongod --help to see a list of options
bind_ip = 127.0.0.1
quiet = true
dbpath = /var/lib/mongodb
logpath = /var/log/mongodb/mongod.log
logappend = true

View file

@ -1,20 +0,0 @@
# vim: syntax=sh
post_install() {
post_upgrade $1 ''
if [ "$(uname -m)" != "x86_64" ]
then
echo '==> Warning: the 32 bit version of MongoDB is limited to about 2GB of data.'
echo '==> See http://blog.mongodb.org/post/137788967/32-bit-limitations'
fi
}
post_upgrade() {
if ! getent passwd mongodb >/dev/null
then
useradd -r -g daemon -d /var/lib/mongodb -s /bin/bash mongodb
fi
chown -R mongodb:daemon /var/lib/mongodb
chown -R mongodb:daemon /var/log/mongodb
}

View file

@ -1,10 +0,0 @@
[Unit]
Description=High-performance, schema-free document-oriented database
After=network.target
[Service]
User=mongodb
ExecStart=/usr/bin/mongod --quiet --config /etc/mongodb.conf
[Install]
WantedBy=multi-user.target

View file

@ -1,70 +0,0 @@
diff --git a/src/mongo/db/dbwebserver.cpp b/src/mongo/db/dbwebserver.cpp
index b202e05..0255613 100644
--- a/src/mongo/db/dbwebserver.cpp
+++ b/src/mongo/db/dbwebserver.cpp
@@ -67,6 +67,7 @@ namespace mongo {
using std::map;
using std::stringstream;
using std::vector;
+using std::string;
using namespace html;
diff --git a/src/mongo/db/matcher/expression_leaf.cpp b/src/mongo/db/matcher/expression_leaf.cpp
index d562bff..b96a36d 100644
--- a/src/mongo/db/matcher/expression_leaf.cpp
+++ b/src/mongo/db/matcher/expression_leaf.cpp
@@ -202,7 +202,7 @@ void ComparisonMatchExpression::debugString(StringBuilder& debug, int level) con
}
void ComparisonMatchExpression::serialize(BSONObjBuilder* out) const {
- string opString = "";
+ std::string opString = "";
switch (matchType()) {
case LT:
opString = "$lt";
@@ -884,7 +884,7 @@ void BitTestMatchExpression::debugString(StringBuilder& debug, int level) const
}
void BitTestMatchExpression::serialize(BSONObjBuilder* out) const {
- string opString = "";
+ std::string opString = "";
switch (matchType()) {
case BITS_ALL_SET:
diff --git a/src/mongo/db/repl/master_slave.cpp b/src/mongo/db/repl/master_slave.cpp
index 05faad1..7fbc062 100644
--- a/src/mongo/db/repl/master_slave.cpp
+++ b/src/mongo/db/repl/master_slave.cpp
@@ -81,6 +81,7 @@ using std::set;
using std::stringstream;
using std::unique_ptr;
using std::vector;
+using std::string;
namespace mongo {
namespace repl {
diff --git a/src/mongo/shell/bench.cpp b/src/mongo/shell/bench.cpp
index 040002f..cb0f6f4 100644
--- a/src/mongo/shell/bench.cpp
+++ b/src/mongo/shell/bench.cpp
@@ -78,6 +78,7 @@ namespace mongo {
using std::unique_ptr;
using std::cout;
using std::map;
+using std::string;
const std::map<OpType, std::string> opTypeName{{OpType::NONE, "none"},
{OpType::NOP, "nop"},
diff --git a/src/mongo/util/net/miniwebserver.cpp b/src/mongo/util/net/miniwebserver.cpp
index 5f4165d..7a7d071 100644
--- a/src/mongo/util/net/miniwebserver.cpp
+++ b/src/mongo/util/net/miniwebserver.cpp
@@ -47,6 +47,7 @@ namespace mongo {
using std::shared_ptr;
using std::stringstream;
using std::vector;
+using std::string;
MiniWebServer::MiniWebServer(const string& name, const string& ip, int port, ServiceContext* ctx)
: Listener(name, ip, port, ctx, false, false) {}