diff --git a/CHANGELOG.md b/CHANGELOG.md
index 27a86a3d0..1fe207330 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,16 @@
+2.17.0
+===========
+* [CPP-942] Add docs on possibility of MITM attacks with cass_cluster_set_use_hostname_resolution()
+* [CPP-955] Unable to use different memory allocators and profilers when using the cassandra driver
+* [CPP-957] Update build/test platforms
+* [CPP-919] CMake 3.16 deprecation warnings
+
+Community
+--------
+* [PR #522] Iterate over all certificates in a trusted cert BIO, not just the first (kw217)
+* [PR #528] Add support for newer versions of LibreSSL (gahr)
+* [PR #525] Allow users to request TLS client-side enforcement (FalacerSelene)
+
2.16.2
===========
@@ -5,7 +18,10 @@ Bug Fixes
--------
* [CPP-946] Core dump on unclean event loop shutdown
* [PR #513] Fix SNI events
-* [PR #518] Replace deprecated function for OpenSSL >= 3.0
+
+Community
+--------
+* [PR #518] Replace deprecated function for OpenSSL >= 3.0 (pjgeorg)
2.16.1
===========
diff --git a/Jenkinsfile b/Jenkinsfile
index 6223df9f3..9e18094db 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -263,7 +263,7 @@ def testDriverInstallation() {
}
def deployDriver() {
- withCredentials([usernameColonPassword(credentialsId: 'drivers-artifactory-upload-username-encrypted-password', variable: 'ARTIFACTORY_CREDENTIALS'),
+ withCredentials([usernameColonPassword(credentialsId: 'cpp-drivers-artifactory-upload-username-encrypted-password', variable: 'ARTIFACTORY_CREDENTIALS'),
string(credentialsId: 'artifactory-base-url', variable: 'ARTIFACTORY_BASE_URL')]) {
sh label: 'Deploy driver to Artifactory', script: '''#!/bin/bash -le
. ${DRIVER_BUILD_SCRIPT}
@@ -406,9 +406,9 @@ pipeline {
choice(
name: 'ADHOC_BUILD_AND_EXECUTE_TESTS_SERVER_VERSION',
choices: [
- '3.0', // Previous Apache Cassandra®
- '3.11', // Current Apache Cassandra®
- '4.0', // Development Apache Cassandra®
+ '3.0', // Previous Apache Cassandra
+ '3.11', // Current Apache Cassandra
+ '4.0', // Development Apache Cassandra
'dse-5.1.35', // Legacy DataStax Enterprise
'dse-6.8.30', // Development DataStax Enterprise
'ALL'],
@@ -728,9 +728,9 @@ pipeline {
axes {
axis {
name 'SERVER_VERSION'
- values '3.0', // Previous Apache Cassandra®
- '3.11', // Current Apache Cassandra®
- '4.0', // Development Apache Cassandra®
+ values '3.0', // Previous Apache Cassandra
+ '3.11', // Current Apache Cassandra
+ '4.0', // Development Apache Cassandra
'dse-5.1.35', // Legacy DataStax Enterprise
'dse-6.8.30' // Development DataStax Enterprise
}
diff --git a/README.md b/README.md
index dd5d2e783..66f899aa5 100644
--- a/README.md
+++ b/README.md
@@ -10,22 +10,28 @@ products:
## Getting the Driver
-Binary versions of the driver, available for multiple operating systems and
-multiple architectures, can be obtained from our [download server]. The
-source code is made available via [GitHub].
-
-Packages for the driver's dependencies, libuv (1.x), OpenSSL, and zlib are also
-provided under the `dependencies` directory for each platform (if applicable).
-__Note__: CentOS and Ubuntu use the version of OpenSSL and zlib provided with the
-distribution:
-
-* [CentOS 6][centos-6-dependencies]
-* [CentOS 7][centos-7-dependencies]
-* [CentOS 8][centos-8-dependencies]
-* [Ubuntu 14.04][ubuntu-14-04-dependencies]
-* [Ubuntu 16.04][ubuntu-16-04-dependencies]
-* [Ubuntu 18.04][ubuntu-18-04-dependencies]
-* [Windows][windows-dependencies]
+The source code is made available via [GitHub]. Additionally binary versions of
+the driver (for multiple operating systems and multiple architectures) can be
+obtained from our [Artifactory server]. Binaries are available for the following
+operating systems:
+
+* CentOS 7
+* Rocky Linux 8.8
+* Rocky Linux 9.2
+* Ubuntu 20.04
+* Ubuntu 22.04
+* Windows
+
+The driver depends on the following libraries:
+
+* libuv (1.x)
+* OpenSSL
+* zlib
+
+The version of OpenSSL and zlib provided with each Linux distribution above can be used
+to build the driver. A version of libuv > 1.x is provided for CentOS 7 and Rocky
+Linux; this can be found under the `dependencies` directory for each platform.
+Packages for all three dependencies are provided for Windows distributions.
## Upgrading
@@ -41,7 +47,7 @@ Linking changes will be required when migrating to this driver. Replace `-ldse`
No changes will be required when upgrading to this driver. There will be new
driver dependencies when using any of the binary versions obtained from our
-[download server] as [Kerberos] is utilized in the [DSE features] of this
+[Artifactory server] as [Kerberos] is utilized in the [DSE features] of this
driver. See the [installation] section for more information on obtaining the
dependencies for a specific platform.
@@ -85,11 +91,22 @@ dependencies for a specific platform.
## Compatibility
This driver works exclusively with the Cassandra Query Language v3 (CQL3) and
-Cassandra's native protocol. The current version works with:
+Cassandra's native protocol. The current version works with the following
+server versions:
+
+* Apache Cassandra® versions 3.0.x, 3.11.x and 4.0.x
+* DSE versions 6.8.x and 5.1.x
+
+Both 32-bit (x86) and 64-bit (x64) architectures are supported
+
+We build and test the driver on the following platforms:
-* Apache Cassandra® versions 2.1, 2.2 and 3.0+
-* Architectures: 32-bit (x86) and 64-bit (x64)
-* Compilers: GCC 4.1.2+, Clang 3.4+, and MSVC 2010/2012/2013/2015/2017/2019
+* CentOS 7 w/ gcc 4.8.5
+* Rocky Linux 8.8 w/ gcc 8.5.0
+* Rocky Linux 9.2 w/ gcc 11.3.1
+* Ubuntu 20.04 w/ gcc 9.4.0
+* Ubuntu 22.04 w/ gcc 11.3.0
+* Microsoft Visual Studio 2013, 2015, 2017 and 2019
A complete compatibility matrix for both Apache Cassandra®
and DataStax Enterprise can be found [here][cpp-driver-compatability-matrix].
@@ -105,8 +122,8 @@ __Disclaimer__: DataStax products do not support big-endian systems.
## Getting Help
-* JIRA: https://datastax-oss.atlassian.net/browse/CPP
-* Mailing List: https://groups.google.com/a/lists.datastax.com/forum/#!forum/cpp-driver-user
+* JIRA: [jira]
+* Mailing List: [mailing list]
## Examples
@@ -207,20 +224,15 @@ specific language governing permissions and limitations under the License.
[Apache Cassandra®]: http://cassandra.apache.org
[DataStax Enterprise]: http://www.datastax.com/products/datastax-enterprise
[Examples]: examples/
-[download server]: http://downloads.datastax.com/cpp-driver/
+[Artifactory server]: https://datastax.jfrog.io/artifactory/cpp-php-drivers/cpp-driver/builds
[GitHub]: https://github.com/datastax/cpp-driver
-[cpp-driver-compatability-matrix]: https://docs.datastax.com/en/developer/driver-matrix/doc/cppDrivers.html#cpp-drivers
+[cpp-driver-compatability-matrix]: https://docs.datastax.com/en/driver-matrix/docs/cpp-drivers.html
[Home]: http://docs.datastax.com/en/developer/cpp-driver/latest
[API]: http://docs.datastax.com/en/developer/cpp-driver/latest/api
[Getting Started]: http://docs.datastax.com/en/developer/cpp-driver/latest/topics
[Building]: http://docs.datastax.com/en/developer/cpp-driver/latest/topics/building
-[centos-6-dependencies]: http://downloads.datastax.com/cpp-driver/centos/6/dependencies
-[centos-7-dependencies]: http://downloads.datastax.com/cpp-driver/centos/7/dependencies
-[centos-8-dependencies]: http://downloads.datastax.com/cpp-driver/centos/8/dependencies
-[ubuntu-14-04-dependencies]: http://downloads.datastax.com/cpp-driver/ubuntu/14.04/dependencies
-[ubuntu-16-04-dependencies]: http://downloads.datastax.com/cpp-driver/ubuntu/16.04/dependencies
-[ubuntu-18-04-dependencies]: http://downloads.datastax.com/cpp-driver/ubuntu/18.04/dependencies
-[windows-dependencies]: http://downloads.datastax.com/cpp-driver/windows/dependencies
+[jira]: https://datastax-oss.atlassian.net/browse/CPP
+[mailing list]: https://groups.google.com/a/lists.datastax.com/forum/#!forum/cpp-driver-user
[DataStax Astra]: https://astra.datastax.com
[Kerberos]: https://web.mit.edu/kerberos
diff --git a/appveyor.yml b/appveyor.yml
index 5fc6044aa..a0b05b29a 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -30,11 +30,11 @@ hosts:
cpp-driver.hostname.: 127.254.254.254
environment:
ARTIFACTORY_BASE_URI:
- secure: JgzXEe8SETmb1jGeufZM87ov61t4gvBp/Gq0Q9lCfi41fMgV2z/21SiCobd+twf2aV5Wm+hqBLLdDwukT4UmqSWhfyq7S0CbHmaGzTXG3PE=
+ secure: 5bD6WmK8IFF9jHmEJ75NqryMijhEtC6eRKhA+fYbSFTwCwc9qOAdB1Lpt8CCiaNfD65i3M0rqQYLj3DL3hGTMrBMTqZnVWer5IvowlEWps8=
ARTIFACTORY_USERNAME:
- secure: PLLc0JCL9I7y8zw8p9meQhxXGAbyWCjyWO17xKOsyxE=
+ secure: o2wIBhhU3l2RmYrB+bWAq21iSZahJxHhJKoWKsjadTI=
ARTIFACTORY_PASSWORD:
- secure: h28bN22Py3CZPqrWoZWEjIFnpes+kslusCKP1mRYdUqBEf+OO1kFEQTZ9DGD7tuCSIIRDI3Mf9LX8zgUdmdlZA==
+ secure: npn828fxSYtJ4i/yeONCL7Oc2He42Ti/ohofbykRyBTlQCzIRIUYvh7iO6yqea3uAqjAMc9OtQzjy3CqH8/Vgkdk22lT/ceCfSJIpEtZwrg=
APPVEYOR_IGNORE_COMMIT_FILTERING_ON_TAG: true
DRIVER_TYPE: CASS
LIBSSH2_VERSION: 1.9.0
@@ -43,22 +43,6 @@ environment:
OPENSSL_1_1_VERSION: 1.1.1d
ZLIB_VERSION: 1.2.11
matrix:
- - CMAKE_GENERATOR: Visual Studio 10 2010
- OPENSSL_MAJOR_MINOR: 1.0
- VISUAL_STUDIO_INTERNAL_VERSION: 100
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
-# - CMAKE_GENERATOR: Visual Studio 10 2010
-# OPENSSL_MAJOR_MINOR: 1.1
-# VISUAL_STUDIO_INTERNAL_VERSION: 100
-# APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
- - CMAKE_GENERATOR: Visual Studio 11 2012
- OPENSSL_MAJOR_MINOR: 1.0
- VISUAL_STUDIO_INTERNAL_VERSION: 110
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
-# - CMAKE_GENERATOR: Visual Studio 11 2012
-# OPENSSL_MAJOR_MINOR: 1.1
-# VISUAL_STUDIO_INTERNAL_VERSION: 110
-# APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
- CMAKE_GENERATOR: Visual Studio 12 2013
OPENSSL_MAJOR_MINOR: 1.0
VISUAL_STUDIO_INTERNAL_VERSION: 120
diff --git a/include/cassandra.h b/include/cassandra.h
index bb8c20c34..bbe9c6c1c 100644
--- a/include/cassandra.h
+++ b/include/cassandra.h
@@ -54,7 +54,7 @@
#define CASS_VERSION_MAJOR 2
#define CASS_VERSION_MINOR 17
#define CASS_VERSION_PATCH 0
-#define CASS_VERSION_SUFFIX "rc1"
+#define CASS_VERSION_SUFFIX ""
#ifdef __cplusplus
extern "C" {
diff --git a/topics/building/README.md b/topics/building/README.md
index 125278150..69fe9a89f 100644
--- a/topics/building/README.md
+++ b/topics/building/README.md
@@ -4,13 +4,12 @@ The DataStax C/C++ Driver for Apache Cassandra and DataStax Products will build
on most standard Unix-like and Microsoft Windows platforms. Packages are
available for the following platforms:
-* [CentOS 6][cpp-driver-centos6]
-* [CentOS 7][cpp-driver-centos7]
-* [CentOS 8][cpp-driver-centos8]
-* [Ubuntu 14.04 LTS][cpp-driver-ubuntu14-04]
-* [Ubuntu 16.04 LTS][cpp-driver-ubuntu16-04]
-* [Ubuntu 18.04 LTS][cpp-driver-ubuntu18-04]
-* [Windows][cpp-driver-windows]
+* CentOS 7
+* Rocky Linux 8.8
+* Rocky Linux 9.2
+* Ubuntu 20.04
+* Ubuntu 22.04
+* Windows
__NOTE__: The build procedures only need to be performed for driver development
or if your system doesn't have packages available for download and
@@ -19,13 +18,13 @@ __NOTE__: The build procedures only need to be performed for driver development
## Compatibility
* Architectures: 32-bit (x86) and 64-bit (x64)
-* Compilers: GCC 4.1.2+ Clang 3.4+, and MSVC 2010/2012/2013/2015/2017/2019
+* Compilers: GCC 4.8.5+ Clang 3.4+, and MSVC 2013/2015/2017/2019
## Dependencies
The C/C++ driver depends on the following software:
-* [CMake] v2.6.4+
+* [CMake] v2.8.12+
* [libuv] 1.x
* Kerberos v5 ([Heimdal] or [MIT]) \*
* [OpenSSL] v1.0.x or v1.1.x \*\*
@@ -101,16 +100,12 @@ libuv v1.x should be used in order to ensure all features of the C/C++ driver
are available. When using a package manager for your operating system make sure
you install v1.x; if available.
-##### CentOS/RHEL and Ubuntu packages
+##### CentOS, Rocky and Ubuntu packages
-Packages are available from our [download server]:
-
-* [CentOS 6][libuv-centos6]
-* [CentOS 7][libuv-centos7]
-* [CentOS 8][libuv-centos8]
-* [Ubuntu 14.04 LTS][libuv-ubuntu14-04]
-* [Ubuntu 16.04 LTS][libuv-ubuntu16-04]
-* [Ubuntu 18.04 LTS][libuv-ubuntu18-04]
+Packages are available from our [Artifactory server]. Select the driver version,
+build and platform and then look for the `dependencies` directory. Note that the
+version of libuv available on Ubuntu can be used when building the driver. As a
+result we only provide packages for CentOS and Rocky.
##### Mac OS (Brew)
@@ -255,7 +250,7 @@ cmake -DCASS_BUILD_UNIT_TESTS=On ..
## Windows
-The driver is known to build with Visual Studio 2010, 2012, 2013, 2015, 2017, and 2019.
+The driver is known to build with Visual Studio 2013, 2015, 2017, and 2019.
### Obtaining build dependencies
@@ -278,8 +273,6 @@ First you will need to open a "Command Prompt" to execute the CMake commands.
#### Building the C/C++ driver
Supported generators are:
-* Visual Studio 10 2010
-* Visual Studio 11 2012
* Visual Studio 12 2013
* Visual Studio 14 2015
* Visual Studio 15 2017
@@ -329,20 +322,7 @@ cmake -G "Visual Studio 16 2019" -A x64 -DCASS_BUILD_INTEGRATION_TESTS=On ..
cmake -G "Visual Studio 16 2019" -A x64 -DCASS_BUILD_UNIT_TESTS=On ..
```
-[download server]: http://downloads.datastax.com
-[cpp-driver-centos6]: http://downloads.datastax.com/cpp-driver/centos/6/cassandra
-[cpp-driver-centos7]: http://downloads.datastax.com/cpp-driver/centos/7/cassandra
-[cpp-driver-centos8]: http://downloads.datastax.com/cpp-driver/centos/8/cassandra
-[cpp-driver-ubuntu14-04]: http://downloads.datastax.com/cpp-driver/ubuntu/14.04/cassandra
-[cpp-driver-ubuntu16-04]: http://downloads.datastax.com/cpp-driver/ubuntu/16.04/cassandra
-[cpp-driver-ubuntu18-04]: http://downloads.datastax.com/cpp-driver/ubuntu/18.04/cassandra
-[cpp-driver-windows]: http://downloads.datastax.com/cpp-driver/windows/cassandra
-[libuv-centos6]: http://downloads.datastax.com/cpp-driver/centos/6/dependencies/libuv
-[libuv-centos7]: http://downloads.datastax.com/cpp-driver/centos/7/dependencies/libuv
-[libuv-centos8]: http://downloads.datastax.com/cpp-driver/centos/8/dependencies/libuv
-[libuv-ubuntu14-04]: http://downloads.datastax.com/cpp-driver/ubuntu/14.04/dependencies/libuv
-[libuv-ubuntu16-04]: http://downloads.datastax.com/cpp-driver/ubuntu/16.04/dependencies/libuv
-[libuv-ubuntu18-04]: http://downloads.datastax.com/cpp-driver/ubuntu/18.04/dependencies/libuv
+[Artifactory server]: https://datastax.jfrog.io/artifactory/cpp-php-drivers/cpp-driver/builds
[Homebrew]: https://brew.sh
[Bison]: http://gnuwin32.sourceforge.net/downlinks/bison.php
[CMake]: http://www.cmake.org/download
diff --git a/topics/installation/README.md b/topics/installation/README.md
index 2bd6b058c..e50697e79 100644
--- a/topics/installation/README.md
+++ b/topics/installation/README.md
@@ -2,66 +2,17 @@
## Packages
-Pre-built packages are available for CentOS 6/7/8, Ubuntu 14.04/16.04/18.04 and
-Windows 7 SP1 and above.
+Pre-built packages are available for CentOS 7, Ubuntu 20.04/22.04,
+Rocky Linux 8 and 9 and Windows. All packages are available from our
+[Artifactory server].
### CentOS
-
-
-
- Version |
- URL |
-
-
-
-
-
- CentOS 6 |
- http://downloads.datastax.com/cpp-driver/centos/6/cassandra |
-
-
- CentOS 7 |
- http://downloads.datastax.com/cpp-driver/centos/7/cassandra |
-
-
- CentOS 8 |
- http://downloads.datastax.com/cpp-driver/centos/8/cassandra |
-
-
-
-
-#### Dependencies
-
CentOS doesn't have up-to-date versions of libuv so we provide current packages.
+These packages can be found in the `dependencies` directory under each driver
+version in Artifactory.
-
-
-
- Version |
- URL |
-
-
-
-
-
- CentOS 6 |
- http://downloads.datastax.com/cpp-driver/centos/6/dependencies |
-
-
- CentOS 7 |
- http://downloads.datastax.com/cpp-driver/centos/7/dependencies |
-
-
- CentOS 8 |
- http://downloads.datastax.com/cpp-driver/centos/8/dependencies |
-
-
-
-
-#### To Install
-
-Install dependencies:
+First install dependencies:
```bash
yum install openssl krb5 zlib
@@ -70,7 +21,7 @@ rpm -Uvh libuv-.rpm
Note: Replace `` with the release version of the package.
-Install the runtime library:
+Then install the runtime library:
```bash
rpm -Uvh cassandra-cpp-driver-.rpm
@@ -84,70 +35,31 @@ rpm -Uvh cassandra-cpp-driver-devel-.rpm
rpm -Uvh cassandra-cpp-driver-debuginfo-.rpm
```
-### Ubuntu
+### Rocky Linux
-
-
-
- Version |
- URL |
-
-
-
-
-
- Ubuntu 14.04 |
- http://downloads.datastax.com/cpp-driver/ubuntu/14.04/cassandra |
-
-
- Ubuntu 16.04 |
- http://downloads.datastax.com/cpp-driver/ubuntu/16.04/cassandra |
-
-
- Ubuntu 18.04 |
- http://downloads.datastax.com/cpp-driver/ubuntu/18.04/cassandra |
-
-
-
-
-#### Dependencies
-
-Ubuntu doesn't have up-to-date versions of libuv so we provide current packages.
-
-
-
-
- Version |
- URL |
-
-
-
-
-
- Ubuntu 14.04 |
- http://downloads.datastax.com/cpp-driver/ubuntu/14.04/dependencies |
-
-
- Ubuntu 16.04 |
- http://downloads.datastax.com/cpp-driver/ubuntu/16.04/dependencies |
-
-
- Ubuntu 18.04 |
- http://downloads.datastax.com/cpp-driver/ubuntu/18.04/dependencies |
-
-
-
-
-#### To Install
-
-Install dependencies:
+Rocky Linux also doesn't have up-to-date versions of libuv so packages are available
+for this platform as well.
+
+To install dependencies:
```bash
-apt-get install libssl libkrb5 zlib1g
-dpkg -i libuv_.deb
+yum install openssl krb5 zlib
+rpm -Uvh libuv-.rpm
```
-Note: Replace `` with the release version of the package.
+Then install the runtime library (and optionally the development package and debug
+symbols) as described above.
+
+### Ubuntu
+
+Newer versions of Ubuntu include workable versions of all dependencies; you do not
+need to download anything from Artifactory.
+
+To install dependencies:
+
+```bash
+apt-get install libssl libkrb5 zlib1g libuv1
+```
Install the runtime library:
@@ -165,51 +77,15 @@ dpkg -i cassandra-cpp-driver-dbg_.deb
### Windows
-
-
-
- Version |
- URL |
-
-
-
-
-
- Windows |
- http://downloads.datastax.com/cpp-driver/windows/cassandra |
-
-
-
-
-#### Dependencies
-
We provide packages (`.zip` files) for all the dependencies (except for
Kerberos) on Windows because they can be difficult to install/build.
-
-
-
- Version |
- URL |
-
-
-
-
-
- Windows |
- http://downloads.datastax.com/cpp-driver/windows/dependencies |
-
-
-
-
-#### To Install
-
-First, you will need to download and install [Kerberos] for Windows.
-
-Unzip the packages (from http://downloads.datastax.com) and add the include and
+Unzip the packages obtained from Artifactory and add the include and
library directories to your project's `Additional Include Directories` and
`Additional Dependencies` configuration properties.
+You will also need to download and install [Kerberos] for Windows.
+
## Building
If pre-built packages are not available for your platform or architecture you
@@ -217,4 +93,5 @@ will need to build the driver from source. Directions for building and
installing the DataStax C/C++ Driver for Apache Cassandra and DataStax Products
can be found [here](/topics/building/).
+[Artifactory server]: https://datastax.jfrog.io/artifactory/cpp-php-drivers/cpp-driver/builds
[Kerberos]: https://web.mit.edu/kerberos