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