diff --git a/.appveyor.yml b/.appveyor.yml
index 17c5ada670..71ec26a28f 100644
--- a/.appveyor.yml
+++ b/.appveyor.yml
@@ -1,24 +1,33 @@
-version: 1.0.0-R-post{build}
+version: 1.8.0-R-post{build}
pull_requests:
do_not_increment_build_number: true
-image: Visual Studio 2013
+image: Visual Studio 2015
configuration: Release
environment:
+ runtime: v140
matrix:
- platform: x64
+ arch: x64
- platform: win32
+ arch: x86
install:
-- ps: "& .\\win32\\install-openssl.ps1"
- ps: "& .\\win32\\install-coapp.ps1"
+ # Update vcpkg (is outdated on the VS 2015 image)
+- cmd: |
+ cd "C:\Tools\vcpkg"
+ git pull -q
+ .\bootstrap-vcpkg.bat
+ cd %appveyor_build_folder%
cache:
-- c:\OpenSSL-Win32 -> win32\install-openssl.ps1
-- c:\OpenSSL-Win64 -> win32\install-openssl.ps1
+ - c:\tools\vcpkg\installed
+ - C:\Users\appveyor\AppData\Local\vcpkg\archives
+ - C:\Users\appveyor\AppData\Local\vcpkg\installed
nuget:
account_feed: true
project_feed: true
disable_publish_on_pr: true
before_build:
-- cmd: nuget restore win32/librdkafka.sln
+ - cmd: vcpkg --feature-flags=versions install --triplet %arch%-windows
build:
project: win32/librdkafka.sln
publish_nuget: true
@@ -27,7 +36,7 @@ build:
parallel: true
verbosity: normal
test_script:
-- cmd: cd tests && ..\win32\outdir\v120\%PLATFORM%\%CONFIGURATION%\tests.exe -l -Q -p1 && cd ..
+- cmd: cd tests && ..\win32\outdir\%runtime%\%PLATFORM%\%CONFIGURATION%\tests.exe -l -Q -p1 && cd ..
artifacts:
- path: test_report*.json
name: Test report
@@ -41,7 +50,8 @@ artifacts:
name: Libraries
- path: '**\*.exe'
name: Executables
-before_deploy:
+#before_deploy:
+after_test:
- ps: >-
# FIXME: Add to Deployment condition above:
@@ -53,13 +63,13 @@ before_deploy:
$autopkgFile = "win32/librdkafka.autopkg"
- pwd
+ pwd
+
+
+ ls $autopkgFile
-
- ls $autopkgFile
-
# Get the ".autopkg.template" file, replace "@version" with the Appveyor version number, then save to the ".autopkg" file.
cat ($autopkgFile + ".template") | % { $_ -replace "@version", $env:appveyor_build_version } > $autopkgFile
@@ -76,9 +86,9 @@ before_deploy:
deploy:
- provider: S3
access_key_id:
- secure: iBK0xb23FMYOrOsOb8cw3YGyU+6vvPX5BF+PXuMub8M=
+ secure: iBK0xb23FMYOrOsOb8cw3YGyU+6vvPX5BF+PXuMub8M=
secret_access_key:
- secure: jJsj373UiOtuXf/u0LLL0Q8XQMyu4s/ucx0+vH4GpKbAfZJUwYB4dEO1//mQDNuC
+ secure: jJsj373UiOtuXf/u0LLL0Q8XQMyu4s/ucx0+vH4GpKbAfZJUwYB4dEO1//mQDNuC
region: us-west-1
bucket: librdkafka-ci-packages
folder: librdkafka/p-librdkafka__bld-appveyor__plat-windows__arch-$(platform)__bldtype-$(configuration)__tag-$(APPVEYOR_REPO_TAG_NAME)__sha-$(APPVEYOR_REPO_COMMIT)__bid-$(APPVEYOR_BUILD_ID)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index b579886349..33b4412b9d 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -62,8 +62,19 @@ librdkafka v1.7.0 is feature release:
* The binary librdkafka artifacts for Alpine are now using Alpine 3.12.
OpenSSL 1.1.1k.
* Improved static librdkafka Windows builds using MinGW (@neptoess, #3130).
+ * The `librdkafka.redist` NuGet package now has updated zlib, zstd and
+ OpenSSL versions (from vcpkg).
+## Security considerations
+
+ * The zlib version bundled with the `librdkafka.redist` NuGet package has now been upgraded
+ from zlib 1.2.8 to 1.2.11, fixing the following CVEs:
+ * CVE-2016-9840: undefined behaviour (compiler dependent) in inflate (decompression) code: this is used by the librdkafka consumer. Risk of successfully exploitation through consumed messages is eastimated very low.
+ * CVE-2016-9841: undefined behaviour (compiler dependent) in inflate code: this is used by the librdkafka consumer. Risk of successfully exploitation through consumed messages is eastimated very low.
+ * CVE-2016-9842: undefined behaviour in inflateMark(): this API is not used by librdkafka.
+ * CVE-2016-9843: issue in crc32_big() which is called from crc32_z(): this API is not used by librdkafka.
+
## Upgrade considerations
* The C++ `oauthbearer_token_refresh_cb()` was missing a `Handle *`
@@ -79,6 +90,8 @@ librdkafka v1.7.0 is feature release:
This is more correct than the previous `consumer_lag` which was using
either `committed_offset` or `app_offset` (last message passed
to application).
+ * The `librdkafka.redist` NuGet package is now built with MSVC runtime v140
+ (VS 2015). Previous versions were built with MSVC runtime v120 (VS 2013).
## Fixes
diff --git a/packaging/RELEASE.md b/packaging/RELEASE.md
index ba5e38a4ec..33b6398ddd 100644
--- a/packaging/RELEASE.md
+++ b/packaging/RELEASE.md
@@ -98,9 +98,10 @@ Release candidates start at 200, thus 0xAABBCCc9 is RC1, 0xAABBCCca is RC2, etc.
Change the `RD_KAFKA_VERSION` defines in both `src/rdkafka.h` and
`src-cpp/rdkafkacpp.h` to the version to build, such as 0x000b01c9
for v0.11.1-RC1, or 0x000b01ff for the final v0.11.1 release.
+Update the librdkafka version in `vcpkg.json`.
# Update defines
- $ $EDITOR src/rdkafka.h src-cpp/rdkafkacpp.h
+ $ $EDITOR src/rdkafka.h src-cpp/rdkafkacpp.h vcpkg.json
# Reconfigure and build
$ ./configure
diff --git a/packaging/nuget/packaging.py b/packaging/nuget/packaging.py
index 1ca774fc43..b130ba77df 100755
--- a/packaging/nuget/packaging.py
+++ b/packaging/nuget/packaging.py
@@ -327,19 +327,19 @@ def build (self, buildtype):
a.info.get('arch'),
a.info.get('bldtype'))
if 'toolset' not in a.info:
- a.info['toolset'] = 'v120'
+ a.info['toolset'] = 'v140'
mappings = [
- [{'arch': 'x64', 'plat': 'linux', 'fname_glob': 'librdkafka-gcc.tar.gz'}, './include/librdkafka/rdkafka.h', 'build/native/include/librdkafka/rdkafka.h'],
- [{'arch': 'x64', 'plat': 'linux', 'fname_glob': 'librdkafka-gcc.tar.gz'}, './include/librdkafka/rdkafkacpp.h', 'build/native/include/librdkafka/rdkafkacpp.h'],
- [{'arch': 'x64', 'plat': 'linux', 'fname_glob': 'librdkafka-gcc.tar.gz'}, './include/librdkafka/rdkafka_mock.h', 'build/native/include/librdkafka/rdkafka_mock.h'],
+ [{'arch': 'x64', 'plat': 'linux', 'lnk': 'std', 'fname_glob': 'librdkafka-gcc.tar.gz'}, './include/librdkafka/rdkafka.h', 'build/native/include/librdkafka/rdkafka.h'],
+ [{'arch': 'x64', 'plat': 'linux', 'lnk': 'std', 'fname_glob': 'librdkafka-gcc.tar.gz'}, './include/librdkafka/rdkafkacpp.h', 'build/native/include/librdkafka/rdkafkacpp.h'],
+ [{'arch': 'x64', 'plat': 'linux', 'lnk': 'std', 'fname_glob': 'librdkafka-gcc.tar.gz'}, './include/librdkafka/rdkafka_mock.h', 'build/native/include/librdkafka/rdkafka_mock.h'],
# Travis OSX build
[{'arch': 'x64', 'plat': 'osx', 'fname_glob': 'librdkafka-clang.tar.gz'}, './lib/librdkafka.dylib', 'runtimes/osx-x64/native/librdkafka.dylib'],
# Travis Manylinux build
[{'arch': 'x64', 'plat': 'linux', 'fname_glob': 'librdkafka-manylinux*x86_64.tgz'}, './lib/librdkafka.so.1', 'runtimes/linux-x64/native/centos6-librdkafka.so'],
# Travis Ubuntu 14.04 build
- [{'arch': 'x64', 'plat': 'linux', 'fname_glob': 'librdkafka-gcc.tar.gz'}, './lib/librdkafka.so.1', 'runtimes/linux-x64/native/librdkafka.so'],
+ [{'arch': 'x64', 'plat': 'linux', 'lnk': 'std', 'fname_glob': 'librdkafka-gcc.tar.gz'}, './lib/librdkafka.so.1', 'runtimes/linux-x64/native/librdkafka.so'],
# Travis CentOS 7 RPM build
[{'arch': 'x64', 'plat': 'linux', 'fname_glob': 'librdkafka1*el7.x86_64.rpm'}, './usr/lib64/librdkafka.so.1', 'runtimes/linux-x64/native/centos7-librdkafka.so'],
# Travis Alpine build
@@ -348,32 +348,37 @@ def build (self, buildtype):
[{'arch': 'arm64', 'plat': 'linux', 'fname_glob': 'librdkafka-gcc.tar.gz'}, './lib/librdkafka.so.1', 'runtimes/linux-arm64/native/librdkafka.so'],
# Common Win runtime
- [{'arch': 'x64', 'plat': 'win', 'fname_glob': 'msvcr120.zip'}, 'msvcr120.dll', 'runtimes/win-x64/native/msvcr120.dll'],
- [{'arch': 'x64', 'plat': 'win', 'fname_glob': 'msvcr120.zip'}, 'msvcp120.dll', 'runtimes/win-x64/native/msvcp120.dll'],
+ [{'arch': 'x64', 'plat': 'win', 'fname_glob': 'msvcr140.zip'}, 'vcruntime140.dll', 'runtimes/win-x64/native/vcruntime140.dll'],
+ [{'arch': 'x64', 'plat': 'win', 'fname_glob': 'msvcr140.zip'}, 'msvcp140.dll', 'runtimes/win-x64/native/msvcp140.dll'],
# matches librdkafka.redist.{VER}.nupkg
- [{'arch': 'x64', 'plat': 'win', 'fname_glob': 'librdkafka.redist*'}, 'build/native/bin/v120/x64/Release/librdkafka.dll', 'runtimes/win-x64/native/librdkafka.dll'],
- [{'arch': 'x64', 'plat': 'win', 'fname_glob': 'librdkafka.redist*'}, 'build/native/bin/v120/x64/Release/librdkafkacpp.dll', 'runtimes/win-x64/native/librdkafkacpp.dll'],
- [{'arch': 'x64', 'plat': 'win', 'fname_glob': 'librdkafka.redist*'}, 'build/native/bin/v120/x64/Release/zlib.dll', 'runtimes/win-x64/native/zlib.dll'],
- [{'arch': 'x64', 'plat': 'win', 'fname_glob': 'librdkafka.redist*'}, 'build/native/bin/v120/x64/Release/libzstd.dll', 'runtimes/win-x64/native/libzstd.dll'],
+ [{'arch': 'x64', 'plat': 'win', 'fname_glob': 'librdkafka.redist*'}, 'build/native/bin/v140/x64/Release/librdkafka.dll', 'runtimes/win-x64/native/librdkafka.dll'],
+ [{'arch': 'x64', 'plat': 'win', 'fname_glob': 'librdkafka.redist*'}, 'build/native/bin/v140/x64/Release/librdkafkacpp.dll', 'runtimes/win-x64/native/librdkafkacpp.dll'],
+ [{'arch': 'x64', 'plat': 'win', 'fname_glob': 'librdkafka.redist*'}, 'build/native/bin/v140/x64/Release/libcrypto-1_1-x64.dll', 'runtimes/win-x64/native/libcrypto-1_1-x64.dll'],
+ [{'arch': 'x64', 'plat': 'win', 'fname_glob': 'librdkafka.redist*'}, 'build/native/bin/v140/x64/Release/libssl-1_1-x64.dll', 'runtimes/win-x64/native/libssl-1_1-x64.dll'],
+ [{'arch': 'x64', 'plat': 'win', 'fname_glob': 'librdkafka.redist*'}, 'build/native/bin/v140/x64/Release/zlib1.dll', 'runtimes/win-x64/native/zlib1.dll'],
+ [{'arch': 'x64', 'plat': 'win', 'fname_glob': 'librdkafka.redist*'}, 'build/native/bin/v140/x64/Release/zstd.dll', 'runtimes/win-x64/native/zstd.dll'],
# matches librdkafka.{VER}.nupkg
- [{'arch': 'x64', 'plat': 'win', 'fname_glob': 'librdkafka*', 'fname_excludes': ['redist', 'symbols']},
- 'build/native/lib/v120/x64/Release/librdkafka.lib', 'build/native/lib/win/x64/win-x64-Release/v120/librdkafka.lib'],
- [{'arch': 'x64', 'plat': 'win', 'fname_glob': 'librdkafka*', 'fname_excludes': ['redist', 'symbols']},
- 'build/native/lib/v120/x64/Release/librdkafkacpp.lib', 'build/native/lib/win/x64/win-x64-Release/v120/librdkafkacpp.lib'],
+ [{'arch': 'x64', 'plat': 'win', 'fname_glob': 'librdkafka*.nupkg', 'fname_excludes': ['redist', 'symbols']},
+ 'build/native/lib/v140/x64/Release/librdkafka.lib', 'build/native/lib/win/x64/win-x64-Release/v140/librdkafka.lib'],
+ [{'arch': 'x64', 'plat': 'win', 'fname_glob': 'librdkafka*.nupkg', 'fname_excludes': ['redist', 'symbols']},
+ 'build/native/lib/v140/x64/Release/librdkafkacpp.lib', 'build/native/lib/win/x64/win-x64-Release/v140/librdkafkacpp.lib'],
- [{'arch': 'x86', 'plat': 'win', 'fname_glob': 'msvcr120.zip'}, 'msvcr120.dll', 'runtimes/win-x86/native/msvcr120.dll'],
- [{'arch': 'x86', 'plat': 'win', 'fname_glob': 'msvcr120.zip'}, 'msvcp120.dll', 'runtimes/win-x86/native/msvcp120.dll'],
+ [{'arch': 'x86', 'plat': 'win', 'fname_glob': 'msvcr140.zip'}, 'vcruntime140.dll', 'runtimes/win-x86/native/vcruntime140.dll'],
+ [{'arch': 'x86', 'plat': 'win', 'fname_glob': 'msvcr140.zip'}, 'msvcp140.dll', 'runtimes/win-x86/native/msvcp140.dll'],
# matches librdkafka.redist.{VER}.nupkg
- [{'arch': 'x86', 'plat': 'win', 'fname_glob': 'librdkafka.redist*'}, 'build/native/bin/v120/Win32/Release/librdkafka.dll', 'runtimes/win-x86/native/librdkafka.dll'],
- [{'arch': 'x86', 'plat': 'win', 'fname_glob': 'librdkafka.redist*'}, 'build/native/bin/v120/Win32/Release/librdkafkacpp.dll', 'runtimes/win-x86/native/librdkafkacpp.dll'],
- [{'arch': 'x86', 'plat': 'win', 'fname_glob': 'librdkafka.redist*'}, 'build/native/bin/v120/Win32/Release/zlib.dll', 'runtimes/win-x86/native/zlib.dll'],
- [{'arch': 'x86', 'plat': 'win', 'fname_glob': 'librdkafka.redist*'}, 'build/native/bin/v120/Win32/Release/libzstd.dll', 'runtimes/win-x86/native/libzstd.dll'],
+ [{'arch': 'x86', 'plat': 'win', 'fname_glob': 'librdkafka.redist*'}, 'build/native/bin/v140/Win32/Release/librdkafka.dll', 'runtimes/win-x86/native/librdkafka.dll'],
+ [{'arch': 'x86', 'plat': 'win', 'fname_glob': 'librdkafka.redist*'}, 'build/native/bin/v140/Win32/Release/librdkafkacpp.dll', 'runtimes/win-x86/native/librdkafkacpp.dll'],
+ [{'arch': 'x86', 'plat': 'win', 'fname_glob': 'librdkafka.redist*'}, 'build/native/bin/v140/Win32/Release/libcrypto-1_1.dll', 'runtimes/win-x86/native/libcrypto-1_1.dll'],
+ [{'arch': 'x86', 'plat': 'win', 'fname_glob': 'librdkafka.redist*'}, 'build/native/bin/v140/Win32/Release/libssl-1_1.dll', 'runtimes/win-x86/native/libssl-1_1.dll'],
+
+ [{'arch': 'x86', 'plat': 'win', 'fname_glob': 'librdkafka.redist*'}, 'build/native/bin/v140/Win32/Release/zlib1.dll', 'runtimes/win-x86/native/zlib1.dll'],
+ [{'arch': 'x86', 'plat': 'win', 'fname_glob': 'librdkafka.redist*'}, 'build/native/bin/v140/Win32/Release/zstd.dll', 'runtimes/win-x86/native/zstd.dll'],
# matches librdkafka.{VER}.nupkg
- [{'arch': 'x86', 'plat': 'win', 'fname_glob': 'librdkafka*', 'fname_excludes': ['redist', 'symbols']},
- 'build/native/lib/v120/Win32/Release/librdkafka.lib', 'build/native/lib/win/x86/win-x86-Release/v120/librdkafka.lib'],
- [{'arch': 'x86', 'plat': 'win', 'fname_glob': 'librdkafka*', 'fname_excludes': ['redist', 'symbols']},
- 'build/native/lib/v120/Win32/Release/librdkafkacpp.lib', 'build/native/lib/win/x86/win-x86-Release/v120/librdkafkacpp.lib']
+ [{'arch': 'x86', 'plat': 'win', 'fname_glob': 'librdkafka*.nupkg', 'fname_excludes': ['redist', 'symbols']},
+ 'build/native/lib/v140/Win32/Release/librdkafka.lib', 'build/native/lib/win/x86/win-x86-Release/v140/librdkafka.lib'],
+ [{'arch': 'x86', 'plat': 'win', 'fname_glob': 'librdkafka*.nupkg', 'fname_excludes': ['redist', 'symbols']},
+ 'build/native/lib/v140/Win32/Release/librdkafkacpp.lib', 'build/native/lib/win/x86/win-x86-Release/v140/librdkafkacpp.lib']
]
for m in mappings:
@@ -385,36 +390,36 @@ def build (self, buildtype):
fname_excludes = attributes['fname_excludes']
del attributes['fname_excludes']
- artifact = None
- for a in self.arts.artifacts:
- found = True
+ outf = os.path.join(self.stpath, m[2])
+ member = m[1]
+ found = False
+ # Try all matching artifacts until we find the wanted file (member)
+ for a in self.arts.artifacts:
for attr in attributes:
- if a.info[attr] != attributes[attr]:
- found = False
- break
+ if a.info.get(attr, None) != attributes[attr]:
+ continue
if not fnmatch(a.fname, fname_glob):
- found = False
+ continue
for exclude in fname_excludes:
if exclude in a.fname:
- found = False
- break
+ continue
- if found:
- artifact = a
- break
+ try:
+ zfile.ZFile.extract(a.lpath, member, outf)
+ except KeyError as e:
+ continue
+ except Exception as e:
+ raise Exception('file not found in archive %s: %s. Files in archive are: %s' % (a.lpath, e, zfile.ZFile(a.lpath).getnames()))
- if artifact is None:
- raise MissingArtifactError('unable to find artifact with tags %s matching "%s"' % (str(attributes), fname_glob))
+ found = True
+ break
+
+ if not found:
+ raise MissingArtifactError('unable to find artifact with tags %s matching "%s" for file "%s"' % (str(attributes), fname_glob, member))
- outf = os.path.join(self.stpath, m[2])
- member = m[1]
- try:
- zfile.ZFile.extract(artifact.lpath, member, outf)
- except KeyError as e:
- raise Exception('file not found in archive %s: %s. Files in archive are: %s' % (artifact.lpath, e, zfile.ZFile(artifact.lpath).getnames()))
print('Tree extracted to %s' % self.stpath)
@@ -437,28 +442,34 @@ def verify (self, path):
"build/native/include/librdkafka/rdkafka.h",
"build/native/include/librdkafka/rdkafkacpp.h",
"build/native/include/librdkafka/rdkafka_mock.h",
- "build/native/lib/win/x64/win-x64-Release/v120/librdkafka.lib",
- "build/native/lib/win/x64/win-x64-Release/v120/librdkafkacpp.lib",
- "build/native/lib/win/x86/win-x86-Release/v120/librdkafka.lib",
- "build/native/lib/win/x86/win-x86-Release/v120/librdkafkacpp.lib",
+ "build/native/lib/win/x64/win-x64-Release/v140/librdkafka.lib",
+ "build/native/lib/win/x64/win-x64-Release/v140/librdkafkacpp.lib",
+ "build/native/lib/win/x86/win-x86-Release/v140/librdkafka.lib",
+ "build/native/lib/win/x86/win-x86-Release/v140/librdkafkacpp.lib",
"runtimes/linux-x64/native/centos7-librdkafka.so",
"runtimes/linux-x64/native/centos6-librdkafka.so",
"runtimes/linux-x64/native/alpine-librdkafka.so",
"runtimes/linux-x64/native/librdkafka.so",
"runtimes/linux-arm64/native/librdkafka.so",
"runtimes/osx-x64/native/librdkafka.dylib",
+ # win x64
"runtimes/win-x64/native/librdkafka.dll",
"runtimes/win-x64/native/librdkafkacpp.dll",
- "runtimes/win-x64/native/msvcr120.dll",
- "runtimes/win-x64/native/msvcp120.dll",
- "runtimes/win-x64/native/zlib.dll",
- "runtimes/win-x64/native/libzstd.dll",
+ "runtimes/win-x64/native/vcruntime140.dll",
+ "runtimes/win-x64/native/msvcp140.dll",
+ "runtimes/win-x64/native/libcrypto-1_1-x64.dll",
+ "runtimes/win-x64/native/libssl-1_1-x64.dll",
+ "runtimes/win-x64/native/zlib1.dll",
+ "runtimes/win-x64/native/zstd.dll",
+ # win x86
"runtimes/win-x86/native/librdkafka.dll",
"runtimes/win-x86/native/librdkafkacpp.dll",
- "runtimes/win-x86/native/msvcr120.dll",
- "runtimes/win-x86/native/msvcp120.dll",
- "runtimes/win-x86/native/zlib.dll",
- "runtimes/win-x86/native/libzstd.dll"]
+ "runtimes/win-x86/native/vcruntime140.dll",
+ "runtimes/win-x86/native/msvcp140.dll",
+ "runtimes/win-x86/native/libcrypto-1_1.dll",
+ "runtimes/win-x86/native/libssl-1_1.dll",
+ "runtimes/win-x86/native/zlib1.dll",
+ "runtimes/win-x86/native/zstd.dll"]
missing = list()
with zfile.ZFile(path, 'r') as zf:
diff --git a/packaging/nuget/templates/librdkafka.redist.targets b/packaging/nuget/templates/librdkafka.redist.targets
index 03981bd9e2..4f662624f7 100644
--- a/packaging/nuget/templates/librdkafka.redist.targets
+++ b/packaging/nuget/templates/librdkafka.redist.targets
@@ -1,10 +1,10 @@
- $(MSBuildThisFileDirectory)lib\win\x64\win-x64-Release\v120\librdkafka.lib;%(AdditionalDependencies)
- $(MSBuildThisFileDirectory)lib\win\x86\win-x86-Release\v120\librdkafka.lib;%(AdditionalDependencies)
- $(MSBuildThisFileDirectory)lib\win\x64\win-x64-Release\v120;%(AdditionalLibraryDirectories)
- $(MSBuildThisFileDirectory)lib\win\x86\win-x86-Release\v120;%(AdditionalLibraryDirectories)
+ $(MSBuildThisFileDirectory)lib\win\x64\win-x64-Release\v140\librdkafka.lib;%(AdditionalDependencies)
+ $(MSBuildThisFileDirectory)lib\win\x86\win-x86-Release\v140\librdkafka.lib;%(AdditionalDependencies)
+ $(MSBuildThisFileDirectory)lib\win\x64\win-x64-Release\v140;%(AdditionalLibraryDirectories)
+ $(MSBuildThisFileDirectory)lib\win\x86\win-x86-Release\v140;%(AdditionalLibraryDirectories)
$(MSBuildThisFileDirectory)include;%(AdditionalIncludeDirectories)
diff --git a/src/rdkafka_ssl.c b/src/rdkafka_ssl.c
index e0b3b98858..2a83894471 100644
--- a/src/rdkafka_ssl.c
+++ b/src/rdkafka_ssl.c
@@ -39,6 +39,8 @@
#ifdef _WIN32
#include
#pragma comment (lib, "crypt32.lib")
+#pragma comment (lib, "libcrypto.lib")
+#pragma comment (lib, "libssl.lib")
#endif
#include
diff --git a/vcpkg.json b/vcpkg.json
new file mode 100644
index 0000000000..3f71294e1c
--- /dev/null
+++ b/vcpkg.json
@@ -0,0 +1,19 @@
+{
+ "name": "librdkafka",
+ "version": "1.8.0",
+ "dependencies": [
+ {
+ "name": "zstd",
+ "version>=": "1.4.9"
+ },
+ {
+ "name": "zlib",
+ "version>=": "1.2.11"
+ },
+ {
+ "name": "openssl",
+ "version>=": "1.1.1k"
+ }
+ ],
+ "builtin-baseline": "cf03dac5c25dd5a8d207d0b7d546f24424898418"
+}
diff --git a/win32/librdkafka.autopkg.template b/win32/librdkafka.autopkg.template
index 3105102f32..bf9c3cfbe0 100644
--- a/win32/librdkafka.autopkg.template
+++ b/win32/librdkafka.autopkg.template
@@ -1,7 +1,7 @@
configurations {
Toolset {
key : "PlatformToolset";
- choices: { v120, v140 };
+ choices: { v120, v140, v142 };
// Explicitly Not including pivot variants: "WindowsKernelModeDriver8.0", "WindowsApplicationForDrivers8.0", "WindowsUserModeDriver8.0"
@@ -25,7 +25,7 @@ nuget {
summary: "The Apache Kafka C/C++ client library";
description:"The Apache Kafka C/C++ client library";
releaseNotes: "Release of librdkafka";
- copyright: "Copyright 2016";
+ copyright: "Copyright 2012-2021";
tags: { native, kafka, librdkafka, C, C++ };
};
@@ -39,7 +39,7 @@ nuget {
};
docs: { ${TOPDIR}README.md, ${TOPDIR}CONFIGURATION.md, ${TOPDIR}LICENSES.txt };
- ("v120,v140", "Win32,x64", "Release,Debug") => {
+ ("v120,v140,v142", "Win32,x64", "Release,Debug") => {
[${0},${1},${2}] {
lib: { outdir\${0}\${1}\${2}\librdkafka*.lib };
symbols: { outdir\${0}\${1}\${2}\librdkafka*.pdb };
diff --git a/win32/librdkafka.sln b/win32/librdkafka.sln
index 737e079ca9..614396ed44 100644
--- a/win32/librdkafka.sln
+++ b/win32/librdkafka.sln
@@ -1,6 +1,6 @@
Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 14
-VisualStudioVersion = 14.0.25420.1
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.31112.23
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librdkafka", "librdkafka.vcxproj", "{4BEBB59C-477B-4F7A-8AE8-4228D0861E54}"
EndProject
@@ -220,4 +220,7 @@ Global
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {C6FC23A9-9ED2-4E8F-AC27-BF023227C588}
+ EndGlobalSection
EndGlobal
diff --git a/win32/librdkafka.vcxproj b/win32/librdkafka.vcxproj
index 4baf8a42f7..042b685303 100644
--- a/win32/librdkafka.vcxproj
+++ b/win32/librdkafka.vcxproj
@@ -12,8 +12,8 @@
- $(VC_IncludePath);$(WindowsSDK_IncludePath);C:\OpenSSL-Win32\include
- $(VC_LibraryPath_x86);$(WindowsSDK_LibraryPath_x86);C:\OpenSSL-Win32\lib\VC\static
+ $(VC_IncludePath);$(WindowsSDK_IncludePath)
+ $(VC_LibraryPath_x86);$(WindowsSDK_LibraryPath_x86)
$(VC_IncludePath);$(WindowsSDK_IncludePath);C:\OpenSSL-Win64\include
@@ -33,7 +33,7 @@
Windows
true
- kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies);libeay32MT.lib;ssleay32MT.lib
+ kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)
@@ -50,7 +50,7 @@
Windows
true
- kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies);libeay32MT.lib;ssleay32MT.lib
+ kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)
@@ -70,7 +70,7 @@
true
true
/SAFESEH:NO
- kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies);libeay32MT.lib;ssleay32MT.lib
+ kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)
@@ -89,7 +89,7 @@
true
true
true
- kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies);libeay32MT.lib;ssleay32MT.lib
+ kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)
@@ -246,18 +246,6 @@
-
-
-
-
-
-
-
- This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.
-
-
-
-
diff --git a/win32/packages.config b/win32/packages.config
deleted file mode 100644
index 69c9c236ab..0000000000
--- a/win32/packages.config
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file