Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 13 additions & 6 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -118,9 +118,13 @@ jobs:
matrix:
include:
- name: "centos8 glibc +gssapi"
artifact_key: p-librdkafka__plat-linux__dist-centos8__arch-x64__lnk-std__extra-gssapi
artifact_key: p-librdkafka__plat-linux__dist-centos8__arch-x64__lnk-std__extra-gssapi__sasl2abi-v3
image: quay.io/pypa/manylinux_2_28_x86_64:2024.07.01-1
extra_args: ""
- name: "centos8 glibc +gssapi +sasl2abi-v2"
artifact_key: p-librdkafka__plat-linux__dist-centos8__arch-x64__lnk-std__extra-gssapi__sasl2abi-v2
image: quay.io/pypa/manylinux_2_28_x86_64:2024.07.01-1
extra_args: "--sasl2-abi-v2"
- name: "centos8 glibc"
artifact_key: p-librdkafka__plat-linux__dist-centos8__arch-x64__lnk-all
image: quay.io/pypa/manylinux_2_28_x86_64:2024.07.01-1
Expand Down Expand Up @@ -151,9 +155,13 @@ jobs:
matrix:
include:
- name: "centos8 glibc +gssapi"
artifact_key: p-librdkafka__plat-linux__dist-centos8__arch-arm64__lnk-std__extra-gssapi
artifact_key: p-librdkafka__plat-linux__dist-centos8__arch-arm64__lnk-std__extra-gssapi__sasl2abi-v3
image: quay.io/pypa/manylinux_2_28_aarch64:2024.07.01-1
extra_args: ""
- name: "centos8 glibc +gssapi +sasl2abi-v2"
artifact_key: p-librdkafka__plat-linux__dist-centos8__arch-arm64__lnk-std__extra-gssapi__sasl2abi-v2
image: quay.io/pypa/manylinux_2_28_aarch64:2024.07.01-1
extra_args: "--sasl2-abi-v2"
- name: "centos8 glibc"
artifact_key: p-librdkafka__plat-linux__dist-centos8__arch-arm64__lnk-all
image: quay.io/pypa/manylinux_2_28_aarch64:2024.07.01-1
Expand Down Expand Up @@ -259,11 +267,10 @@ jobs:
shell: pwsh
run: |
# Different packaging for tagged vs untagged builds
$vstring = "2.11.0-"
if ($env:GITHUB_REF -match '^refs/tags/') {
$vstring += "gr"
if ($env:GITHUB_REF -match '^refs/tags/v') {
$vstring = $env:GITHUB_REF -replace '^refs/tags/v', ''
} else {
$vstring += "ci-$env:GITHUB_RUN_ID"
$vstring = "$((Get-Content .\vcpkg.json | ConvertFrom-Json).version)-ci-$($env:GITHUB_RUN_ID)"
}

mkdir packages
Expand Down
42 changes: 40 additions & 2 deletions packaging/nuget/nugetpackage.py
Original file line number Diff line number Diff line change
Expand Up @@ -71,10 +71,40 @@ class NugetPackage (Package):
Mapping({'arch': 'x64',
'plat': 'linux',
'dist': 'centos8',
'lnk': 'std'},
'lnk': 'std',
'sasl2abi': 'v3'},
'librdkafka.tgz',
'./usr/local/lib/librdkafka.so.1',
'runtimes/linux-x64/native/librdkafka.so'),
# Linux glibc centos8 arm64 with GSSAPI
Mapping({'arch': 'arm64',
'plat': 'linux',
'dist': 'centos8',
'lnk': 'std',
'sasl2abi': 'v3'},
'librdkafka.tgz',
'./usr/local/lib/librdkafka.so.1',
'runtimes/linux-arm64/native/librdkafka.so'),

# Linux glibc centos8 x64 with GSSAPI and SASL2 v2 ABI
Mapping({'arch': 'x64',
'plat': 'linux',
'dist': 'centos8',
'lnk': 'std',
'sasl2abi': 'v2'},
'librdkafka.tgz',
'./usr/local/lib/librdkafka.so.1',
'runtimes/linux-x64/native/sasl2abiv2-librdkafka.so'),
# Linux glibc centos8 arm64 with GSSAPI and SASL2 v2 ABI
Mapping({'arch': 'arm64',
'plat': 'linux',
'dist': 'centos8',
'lnk': 'std',
'sasl2abi': 'v2'},
'librdkafka.tgz',
'./usr/local/lib/librdkafka.so.1',
'runtimes/linux-arm64/native/sasl2abiv2-librdkafka.so'),

# Linux glibc centos8 x64 without GSSAPI (no external deps)
Mapping({'arch': 'x64',
'plat': 'linux',
Expand All @@ -90,7 +120,7 @@ class NugetPackage (Package):
'lnk': 'all'},
'librdkafka.tgz',
'./usr/local/lib/librdkafka.so.1',
'runtimes/linux-arm64/native/librdkafka.so'),
'runtimes/linux-arm64/native/centos8-librdkafka.so'),

# Linux musl alpine x64 without GSSAPI (no external deps)
Mapping({'arch': 'x64',
Expand All @@ -100,6 +130,14 @@ class NugetPackage (Package):
'librdkafka.tgz',
'./usr/local/lib/librdkafka.so.1',
'runtimes/linux-x64/native/alpine-librdkafka.so'),
# Linux musl alpine arm64 without GSSAPI (no external deps)
Mapping({'arch': 'arm64',
'plat': 'linux',
'dist': 'alpine',
'lnk': 'all'},
'librdkafka.tgz',
'./usr/local/lib/librdkafka.so.1',
'runtimes/linux-arm64/native/alpine-librdkafka.so'),

# Common Win runtime
Mapping({'arch': 'x64',
Expand Down
14 changes: 13 additions & 1 deletion packaging/tools/build-release-artifacts.sh
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,14 @@ else
disable_gssapi=""
fi

# If --sasl2-abi-v2 is specified, we build librdkafka with the v2 ABI.
if [ "$1" = "--sasl2-abi-v2" ]; then
sasl2_abi_v2="$1"
shift
else
sasl2_abi_v2=""
fi

# Check if we're running on the host or the (docker) build target.
if [ "$1" = "--in-docker" -a $# -eq 2 ]; then
output="$2"
Expand All @@ -55,7 +63,7 @@ fi

if [ -n "$docker_image" ]; then
# Running on the host, spin up the docker builder.
exec docker run -v "$PWD:/v" $docker_image /v/packaging/tools/build-release-artifacts.sh $disable_gssapi --in-docker "/v/$output"
exec docker run -v "$PWD:/v" $docker_image /v/packaging/tools/build-release-artifacts.sh $disable_gssapi $sasl2_abi_v2 --in-docker "/v/$output"
# Only reached on exec error
exit $?
fi
Expand Down Expand Up @@ -97,6 +105,10 @@ make -j

# Show library linkage (for troubleshooting) and checksums (for verification)
for lib in src/librdkafka.so.1 src-cpp/librdkafka++.so.1; do
if [ -n "$sasl2_abi_v2" ]; then
echo "$0: Patching $lib to use libsasl2.so.2"
patchelf --replace-needed libsasl2.so.3 libsasl2.so.2 ${lib}
fi
echo "$0: LINKAGE ${lib}:"
ldd src/librdkafka.so.1
echo "$0: SHA256 ${lib}:"
Expand Down
Loading