karafka-rdkafka 0.21.0.rc2-aarch64-linux-gnu → 0.22.0-aarch64-linux-gnu
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +8 -1
- data/README.md +2 -1
- data/ext/librdkafka.so +0 -0
- data/karafka-rdkafka.gemspec +33 -6
- data/lib/rdkafka/version.rb +3 -3
- data/renovate.json +5 -17
- metadata +2 -67
- data/.github/CODEOWNERS +0 -3
- data/.github/FUNDING.yml +0 -1
- data/.github/workflows/ci_linux_alpine_x86_64_musl.yml +0 -197
- data/.github/workflows/ci_linux_alpine_x86_64_musl_complementary.yml +0 -264
- data/.github/workflows/ci_linux_debian_x86_64_gnu.yml +0 -271
- data/.github/workflows/ci_linux_debian_x86_64_gnu_complementary.yml +0 -334
- data/.github/workflows/ci_linux_ubuntu_aarch64_gnu.yml +0 -271
- data/.github/workflows/ci_linux_ubuntu_aarch64_gnu_complementary.yml +0 -295
- data/.github/workflows/ci_linux_ubuntu_x86_64_gnu.yml +0 -281
- data/.github/workflows/ci_linux_ubuntu_x86_64_gnu_complementary.yml +0 -294
- data/.github/workflows/ci_macos_arm64.yml +0 -284
- data/.github/workflows/push_linux_aarch64_gnu.yml +0 -65
- data/.github/workflows/push_linux_x86_64_gnu.yml +0 -65
- data/.github/workflows/push_linux_x86_64_musl.yml +0 -79
- data/.github/workflows/push_macos_arm64.yml +0 -54
- data/.github/workflows/push_ruby.yml +0 -37
- data/.github/workflows/trigger-wiki-refresh.yml +0 -30
- data/.github/workflows/verify-action-pins.yml +0 -16
- data/.gitignore +0 -16
- data/.rspec +0 -3
- data/.ruby-gemset +0 -1
- data/.ruby-version +0 -1
- data/.yardopts +0 -2
- data/dist/cyrus-sasl-2.1.28.tar.gz +0 -0
- data/dist/krb5-1.21.3.tar.gz +0 -0
- data/dist/openssl-3.0.16.tar.gz +0 -0
- data/dist/zlib-1.3.1.tar.gz +0 -0
- data/dist/zstd-1.5.7.tar.gz +0 -0
- data/ext/README.md +0 -19
- data/ext/Rakefile +0 -131
- data/ext/build_common.sh +0 -376
- data/ext/build_linux_aarch64_gnu.sh +0 -326
- data/ext/build_linux_x86_64_gnu.sh +0 -317
- data/ext/build_linux_x86_64_musl.sh +0 -773
- data/ext/build_macos_arm64.sh +0 -557
- data/ext/generate-ssl-certs.sh +0 -109
- data/spec/integrations/ssl_stress_spec.rb +0 -121
- data/spec/lib/rdkafka/abstract_handle_spec.rb +0 -117
- data/spec/lib/rdkafka/admin/create_acl_handle_spec.rb +0 -56
- data/spec/lib/rdkafka/admin/create_acl_report_spec.rb +0 -18
- data/spec/lib/rdkafka/admin/create_topic_handle_spec.rb +0 -54
- data/spec/lib/rdkafka/admin/create_topic_report_spec.rb +0 -16
- data/spec/lib/rdkafka/admin/delete_acl_handle_spec.rb +0 -85
- data/spec/lib/rdkafka/admin/delete_acl_report_spec.rb +0 -72
- data/spec/lib/rdkafka/admin/delete_topic_handle_spec.rb +0 -54
- data/spec/lib/rdkafka/admin/delete_topic_report_spec.rb +0 -16
- data/spec/lib/rdkafka/admin/describe_acl_handle_spec.rb +0 -85
- data/spec/lib/rdkafka/admin/describe_acl_report_spec.rb +0 -73
- data/spec/lib/rdkafka/admin_spec.rb +0 -982
- data/spec/lib/rdkafka/bindings_spec.rb +0 -198
- data/spec/lib/rdkafka/callbacks_spec.rb +0 -20
- data/spec/lib/rdkafka/config_spec.rb +0 -258
- data/spec/lib/rdkafka/consumer/headers_spec.rb +0 -73
- data/spec/lib/rdkafka/consumer/message_spec.rb +0 -139
- data/spec/lib/rdkafka/consumer/partition_spec.rb +0 -57
- data/spec/lib/rdkafka/consumer/topic_partition_list_spec.rb +0 -248
- data/spec/lib/rdkafka/consumer_spec.rb +0 -1343
- data/spec/lib/rdkafka/error_spec.rb +0 -95
- data/spec/lib/rdkafka/metadata_spec.rb +0 -79
- data/spec/lib/rdkafka/native_kafka_spec.rb +0 -130
- data/spec/lib/rdkafka/producer/delivery_handle_spec.rb +0 -60
- data/spec/lib/rdkafka/producer/delivery_report_spec.rb +0 -25
- data/spec/lib/rdkafka/producer/partitions_count_cache_spec.rb +0 -359
- data/spec/lib/rdkafka/producer_spec.rb +0 -1527
- data/spec/spec_helper.rb +0 -230
@@ -1,79 +0,0 @@
|
|
1
|
-
name: Push Linux x86_64 musl Platform Gem
|
2
|
-
on:
|
3
|
-
push:
|
4
|
-
tags:
|
5
|
-
- v*
|
6
|
-
permissions:
|
7
|
-
contents: read
|
8
|
-
env:
|
9
|
-
BUNDLE_RETRY: 6
|
10
|
-
BUNDLE_JOBS: 4
|
11
|
-
jobs:
|
12
|
-
build:
|
13
|
-
if: github.repository_owner == 'karafka'
|
14
|
-
timeout-minutes: 30
|
15
|
-
runs-on: ubuntu-latest
|
16
|
-
environment: deployment
|
17
|
-
container:
|
18
|
-
# Same as CI, we build on the oldest possible for ABI compatibility
|
19
|
-
image: alpine:3.18@sha256:de0eb0b3f2a47ba1eb89389859a9bd88b28e82f5826b6969ad604979713c2d4f # renovate: ignore
|
20
|
-
steps:
|
21
|
-
- name: Install dependencies
|
22
|
-
run: |
|
23
|
-
apk add --no-cache git curl ca-certificates build-base linux-headers \
|
24
|
-
pkgconf perl autoconf automake libtool bison flex file bash wget zstd-dev \
|
25
|
-
openssl-dev cyrus-sasl-dev cyrus-sasl cyrus-sasl-login \
|
26
|
-
cyrus-sasl-crammd5 cyrus-sasl-digestmd5 cyrus-sasl-gssapiv2 cyrus-sasl-scram \
|
27
|
-
krb5-libs openssl zlib zlib-dev zstd-libs
|
28
|
-
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
29
|
-
with:
|
30
|
-
fetch-depth: 0
|
31
|
-
- name: Configure git safe directory
|
32
|
-
run: git config --global --add safe.directory /__w/karafka-rdkafka/karafka-rdkafka
|
33
|
-
- name: Cache build-tmp directory
|
34
|
-
uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4
|
35
|
-
with:
|
36
|
-
path: ext/build-tmp-musl
|
37
|
-
key: build-tmp-musl-${{ runner.os }}-${{ hashFiles('ext/*.sh', 'ext/Rakefile') }}-v2
|
38
|
-
- name: Build precompiled librdkafka.so
|
39
|
-
run: |
|
40
|
-
cd ext
|
41
|
-
bash ./build_linux_x86_64_musl.sh
|
42
|
-
- name: Upload precompiled library
|
43
|
-
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
|
44
|
-
with:
|
45
|
-
name: librdkafka-precompiled-musl
|
46
|
-
path: ext/
|
47
|
-
retention-days: 1
|
48
|
-
|
49
|
-
push:
|
50
|
-
if: github.repository_owner == 'karafka'
|
51
|
-
timeout-minutes: 30
|
52
|
-
runs-on: ubuntu-latest
|
53
|
-
needs: build
|
54
|
-
environment: deployment
|
55
|
-
permissions:
|
56
|
-
contents: write
|
57
|
-
id-token: write
|
58
|
-
steps:
|
59
|
-
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
60
|
-
with:
|
61
|
-
fetch-depth: 0
|
62
|
-
- name: Download precompiled library
|
63
|
-
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
|
64
|
-
with:
|
65
|
-
name: librdkafka-precompiled-musl
|
66
|
-
path: ext/
|
67
|
-
- name: Set up Ruby
|
68
|
-
uses: ruby/setup-ruby@2a7b30092b0caf9c046252510f9273b4875f3db9 # v1.254.0
|
69
|
-
with:
|
70
|
-
ruby-version: '3.4'
|
71
|
-
bundler-cache: false
|
72
|
-
- name: Configure trusted publishing credentials
|
73
|
-
uses: rubygems/configure-rubygems-credentials@bc6dd217f8a4f919d6835fcfefd470ef821f5c44 # v1.0.0
|
74
|
-
- name: Build and push platform-specific gem
|
75
|
-
run: |
|
76
|
-
gem build *.gemspec
|
77
|
-
gem push *.gem
|
78
|
-
env:
|
79
|
-
RUBY_PLATFORM: 'x86_64-linux-musl'
|
@@ -1,54 +0,0 @@
|
|
1
|
-
name: Push macOS ARM64 Platform Gem
|
2
|
-
|
3
|
-
on:
|
4
|
-
push:
|
5
|
-
tags:
|
6
|
-
- v*
|
7
|
-
|
8
|
-
permissions:
|
9
|
-
contents: read
|
10
|
-
|
11
|
-
env:
|
12
|
-
BUNDLE_RETRY: 6
|
13
|
-
BUNDLE_JOBS: 4
|
14
|
-
|
15
|
-
jobs:
|
16
|
-
push:
|
17
|
-
if: github.repository_owner == 'karafka'
|
18
|
-
timeout-minutes: 30
|
19
|
-
runs-on: macos-14
|
20
|
-
environment: deployment
|
21
|
-
permissions:
|
22
|
-
contents: write
|
23
|
-
id-token: write
|
24
|
-
steps:
|
25
|
-
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
26
|
-
with:
|
27
|
-
fetch-depth: 0
|
28
|
-
- name: Install Bash 4+ and Kerberos
|
29
|
-
run: |
|
30
|
-
brew install bash
|
31
|
-
brew list krb5 &>/dev/null || brew install krb5
|
32
|
-
echo "/opt/homebrew/bin" >> $GITHUB_PATH
|
33
|
-
- name: Cache build-tmp directory
|
34
|
-
uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4
|
35
|
-
with:
|
36
|
-
path: ext/build-tmp-macos
|
37
|
-
key: build-tmp-${{ runner.os }}-${{ hashFiles('ext/*.sh', 'ext/Rakefile') }}-v2
|
38
|
-
- name: Set up Ruby
|
39
|
-
uses: ruby/setup-ruby@2a7b30092b0caf9c046252510f9273b4875f3db9 # v1.254.0
|
40
|
-
with:
|
41
|
-
ruby-version: '3.4'
|
42
|
-
bundler-cache: false
|
43
|
-
- name: Build precompiled librdkafka for macOS ARM64
|
44
|
-
run: |
|
45
|
-
cd ext
|
46
|
-
/opt/homebrew/bin/bash ./build_macos_arm64.sh
|
47
|
-
- name: Configure trusted publishing credentials
|
48
|
-
uses: rubygems/configure-rubygems-credentials@bc6dd217f8a4f919d6835fcfefd470ef821f5c44 # v1.0.0
|
49
|
-
- name: Build and push platform-specific gem
|
50
|
-
run: |
|
51
|
-
gem build *.gemspec
|
52
|
-
gem push *.gem
|
53
|
-
env:
|
54
|
-
RUBY_PLATFORM: 'arm64-darwin'
|
@@ -1,37 +0,0 @@
|
|
1
|
-
name: Push Ruby Platform Gem
|
2
|
-
|
3
|
-
on:
|
4
|
-
push:
|
5
|
-
tags:
|
6
|
-
- v*
|
7
|
-
|
8
|
-
permissions:
|
9
|
-
contents: read
|
10
|
-
|
11
|
-
jobs:
|
12
|
-
push:
|
13
|
-
if: github.repository_owner == 'karafka'
|
14
|
-
runs-on: ubuntu-latest
|
15
|
-
environment: deployment
|
16
|
-
|
17
|
-
permissions:
|
18
|
-
contents: write
|
19
|
-
id-token: write
|
20
|
-
|
21
|
-
steps:
|
22
|
-
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
23
|
-
with:
|
24
|
-
fetch-depth: 0
|
25
|
-
|
26
|
-
- name: Set up Ruby
|
27
|
-
uses: ruby/setup-ruby@2a7b30092b0caf9c046252510f9273b4875f3db9 # v1.254.0
|
28
|
-
with:
|
29
|
-
bundler-cache: false
|
30
|
-
|
31
|
-
- name: Build rdkafka-ruby
|
32
|
-
run: |
|
33
|
-
set -e
|
34
|
-
bundle install
|
35
|
-
cd ext && bundle exec rake
|
36
|
-
|
37
|
-
- uses: rubygems/release-gem@a25424ba2ba8b387abc8ef40807c2c85b96cbe32 # v1.1.1
|
@@ -1,30 +0,0 @@
|
|
1
|
-
name: Trigger Wiki Refresh
|
2
|
-
|
3
|
-
on:
|
4
|
-
release:
|
5
|
-
types: [published]
|
6
|
-
push:
|
7
|
-
branches: [main]
|
8
|
-
|
9
|
-
jobs:
|
10
|
-
trigger-wiki-refresh:
|
11
|
-
runs-on: ubuntu-latest
|
12
|
-
environment: wiki-trigger
|
13
|
-
if: github.repository_owner == 'karafka'
|
14
|
-
steps:
|
15
|
-
- name: Trigger wiki refresh
|
16
|
-
uses: peter-evans/repository-dispatch@ff45666b9427631e3450c54a1bcbee4d9ff4d7c0 # v3.0.0
|
17
|
-
with:
|
18
|
-
token: ${{ secrets.WIKI_REPO_TOKEN }}
|
19
|
-
repository: karafka/wiki
|
20
|
-
event-type: sync-trigger
|
21
|
-
client-payload: |
|
22
|
-
{
|
23
|
-
"repository": "${{ github.repository }}",
|
24
|
-
"event_name": "${{ github.event_name }}",
|
25
|
-
"release_tag": "${{ github.event.release.tag_name || '' }}",
|
26
|
-
"release_name": "${{ github.event.release.name || '' }}",
|
27
|
-
"commit_sha": "${{ github.sha }}",
|
28
|
-
"commit_message": "Trigger Wiki Refresh",
|
29
|
-
"triggered_by": "${{ github.actor }}"
|
30
|
-
}
|
@@ -1,16 +0,0 @@
|
|
1
|
-
name: Verify Action Pins
|
2
|
-
on:
|
3
|
-
pull_request:
|
4
|
-
paths:
|
5
|
-
- '.github/workflows/**'
|
6
|
-
jobs:
|
7
|
-
verify_action_pins:
|
8
|
-
runs-on: ubuntu-latest
|
9
|
-
steps:
|
10
|
-
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
11
|
-
- name: Check SHA pins
|
12
|
-
run: |
|
13
|
-
if grep -E -r "uses: .*/.*@(v[0-9]+|main|master)($|[[:space:]]|$)" --include="*.yml" --include="*.yaml" .github/workflows/ | grep -v "#"; then
|
14
|
-
echo "::error::Actions should use SHA pins, not tags or branch names"
|
15
|
-
exit 1
|
16
|
-
fi
|
data/.gitignore
DELETED
data/.rspec
DELETED
data/.ruby-gemset
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
rdkafka-ruby
|
data/.ruby-version
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
3.4.5
|
data/.yardopts
DELETED
Binary file
|
data/dist/krb5-1.21.3.tar.gz
DELETED
Binary file
|
data/dist/openssl-3.0.16.tar.gz
DELETED
Binary file
|
data/dist/zlib-1.3.1.tar.gz
DELETED
Binary file
|
data/dist/zstd-1.5.7.tar.gz
DELETED
Binary file
|
data/ext/README.md
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
# Ext
|
2
|
-
|
3
|
-
This gem depends on the `librdkafka` C library. It is downloaded, stored in
|
4
|
-
`dist/` directory, and checked into source control.
|
5
|
-
|
6
|
-
To update the `librdkafka` version follow the following steps:
|
7
|
-
|
8
|
-
* Go to https://github.com/confluentinc/librdkafka/releases to get the new
|
9
|
-
version number and asset checksum for `tar.gz`.
|
10
|
-
* Change the version in `lib/rdkafka/version.rb`
|
11
|
-
* Change the `sha256` in `lib/rdkafka/version.rb`
|
12
|
-
* Run `bundle exec rake dist:download` in the `ext` directory to download the
|
13
|
-
new release and place it in the `dist/` for you
|
14
|
-
* Run `bundle exec rake` in the `ext` directory to build the new version
|
15
|
-
* Run `docker-compose pull` in the main gem directory to ensure the docker
|
16
|
-
images used by the tests and run `docker-compose up`
|
17
|
-
* Finally, run `bundle exec rspec` in the main gem directory to execute
|
18
|
-
the test suite to detect any regressions that may have been introduced
|
19
|
-
by the update
|
data/ext/Rakefile
DELETED
@@ -1,131 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require File.expand_path('../../lib/rdkafka/version', __FILE__)
|
4
|
-
require "digest"
|
5
|
-
require "fileutils"
|
6
|
-
require "open-uri"
|
7
|
-
|
8
|
-
task :default => :clean do
|
9
|
-
# For nix users, nix can't locate the file paths because the packages it's requiring aren't managed by the system but are
|
10
|
-
# managed by nix itself, so using the normal file paths doesn't work for nix users.
|
11
|
-
#
|
12
|
-
# Mini_portile causes an issue because it's dependencies are downloaded on the fly and therefore don't exist/aren't
|
13
|
-
# accessible in the nix environment
|
14
|
-
if ENV.fetch('RDKAFKA_EXT_PATH', '').empty?
|
15
|
-
# Download and compile librdkafka if RDKAFKA_EXT_PATH is not set
|
16
|
-
require "mini_portile2"
|
17
|
-
recipe = MiniPortile.new("librdkafka", Rdkafka::LIBRDKAFKA_VERSION)
|
18
|
-
|
19
|
-
# Use default homebrew openssl if we're on mac and the directory exists, is not using nix-prepared libraries
|
20
|
-
# and each of flags is not already set
|
21
|
-
if recipe.host&.include?("darwin") && system("which brew &> /dev/null") && Dir.exist?("#{homebrew_prefix = %x(brew --prefix openssl).strip}") && !ENV.key?("NIX_LDFLAGS")
|
22
|
-
ENV["CPPFLAGS"] = "-I#{homebrew_prefix}/include" unless ENV.key?("CPPFLAGS")
|
23
|
-
ENV["LDFLAGS"] = "-L#{homebrew_prefix}/lib" unless ENV.key?("LDFLAGS")
|
24
|
-
end
|
25
|
-
|
26
|
-
releases = File.expand_path(File.join(File.dirname(__FILE__), '../dist'))
|
27
|
-
|
28
|
-
recipe.files << {
|
29
|
-
:url => "file://#{releases}/librdkafka-#{Rdkafka::LIBRDKAFKA_VERSION}.tar.gz",
|
30
|
-
:sha256 => Rdkafka::LIBRDKAFKA_SOURCE_SHA256
|
31
|
-
}
|
32
|
-
recipe.configure_options = ["--host=#{recipe.host}"]
|
33
|
-
|
34
|
-
recipe.patch_files = Dir[File.join(releases, 'patches', "*.patch")].sort
|
35
|
-
|
36
|
-
# Disable using libc regex engine in favor of the embedded one
|
37
|
-
# The default regex engine of librdkafka does not always work exactly as most of the users
|
38
|
-
# would expect, hence this flag allows for changing it to the other one
|
39
|
-
if ENV.key?('RDKAFKA_DISABLE_REGEX_EXT')
|
40
|
-
recipe.configure_options << '--disable-regex-ext'
|
41
|
-
end
|
42
|
-
|
43
|
-
recipe.cook
|
44
|
-
# Move dynamic library we're interested in
|
45
|
-
if recipe.host.include?('darwin')
|
46
|
-
from_extension = '1.dylib'
|
47
|
-
to_extension = 'dylib'
|
48
|
-
else
|
49
|
-
from_extension = 'so.1'
|
50
|
-
to_extension = 'so'
|
51
|
-
end
|
52
|
-
lib_path = File.join(File.dirname(__FILE__), "ports/#{recipe.host}/librdkafka/#{Rdkafka::LIBRDKAFKA_VERSION}/lib/librdkafka.#{from_extension}")
|
53
|
-
FileUtils.mv(lib_path, File.join(File.dirname(__FILE__), "librdkafka.#{to_extension}"))
|
54
|
-
# Cleanup files created by miniportile we don't need in the gem
|
55
|
-
FileUtils.rm_rf File.join(File.dirname(__FILE__), "tmp")
|
56
|
-
FileUtils.rm_rf File.join(File.dirname(__FILE__), "ports")
|
57
|
-
else
|
58
|
-
# Otherwise, copy existing libraries to ./ext
|
59
|
-
if ENV['RDKAFKA_EXT_PATH'].nil? || ENV['RDKAFKA_EXT_PATH'].empty?
|
60
|
-
raise "RDKAFKA_EXT_PATH must be set in your nix config when running under nix"
|
61
|
-
end
|
62
|
-
files = [
|
63
|
-
File.join(ENV['RDKAFKA_EXT_PATH'], 'lib', 'librdkafka.dylib'),
|
64
|
-
File.join(ENV['RDKAFKA_EXT_PATH'], 'lib', 'librdkafka.so')
|
65
|
-
]
|
66
|
-
files.each { |ext| FileUtils.cp(ext, File.dirname(__FILE__)) if File.exist?(ext) }
|
67
|
-
end
|
68
|
-
end
|
69
|
-
|
70
|
-
task :clean do
|
71
|
-
FileUtils.rm_f File.join(File.dirname(__FILE__), "librdkafka.dylib")
|
72
|
-
FileUtils.rm_f File.join(File.dirname(__FILE__), "librdkafka.so")
|
73
|
-
FileUtils.rm_rf File.join(File.dirname(__FILE__), "ports")
|
74
|
-
FileUtils.rm_rf File.join(File.dirname(__FILE__), "tmp")
|
75
|
-
end
|
76
|
-
|
77
|
-
namespace :dist do
|
78
|
-
task :dir do
|
79
|
-
ENV["RDKAFKA_DIST_PATH"] ||= File.expand_path(File.join(File.dirname(__FILE__), '..', 'dist'))
|
80
|
-
end
|
81
|
-
|
82
|
-
task :file => "dist:dir" do
|
83
|
-
ENV["RDKAFKA_DIST_FILE"] ||= File.join(ENV["RDKAFKA_DIST_PATH"], "librdkafka_#{Rdkafka::LIBRDKAFKA_VERSION}.tar.gz")
|
84
|
-
end
|
85
|
-
|
86
|
-
task :clean => "dist:file" do
|
87
|
-
Dir.glob(File.join("#{ENV['RDKAFKA_DIST_PATH']}", "*")).each do |filename|
|
88
|
-
next if filename.include? ENV["RDKAFKA_DIST_FILE"]
|
89
|
-
|
90
|
-
FileUtils.rm_rf filename
|
91
|
-
end
|
92
|
-
end
|
93
|
-
|
94
|
-
task :download => "dist:file" do
|
95
|
-
version = Rdkafka::LIBRDKAFKA_VERSION
|
96
|
-
librdkafka_download = "https://codeload.github.com/confluentinc/librdkafka/tar.gz/v#{version}"
|
97
|
-
|
98
|
-
URI.open(librdkafka_download) do |file|
|
99
|
-
filename = ENV["RDKAFKA_DIST_FILE"]
|
100
|
-
data = file.read
|
101
|
-
|
102
|
-
if Digest::SHA256.hexdigest(data) != Rdkafka::LIBRDKAFKA_SOURCE_SHA256
|
103
|
-
raise "SHA256 does not match downloaded file"
|
104
|
-
end
|
105
|
-
|
106
|
-
File.write(filename, data)
|
107
|
-
end
|
108
|
-
end
|
109
|
-
|
110
|
-
task :update => %w[dist:download dist:clean]
|
111
|
-
end
|
112
|
-
|
113
|
-
namespace :build do
|
114
|
-
desc "Build librdkafka at the given git sha or tag"
|
115
|
-
task :git, [:ref] do |task, args|
|
116
|
-
ref = args[:ref]
|
117
|
-
version = "git-#{ref}"
|
118
|
-
|
119
|
-
recipe = MiniPortile.new("librdkafka", version)
|
120
|
-
recipe.files << "https://github.com/confluentinc/librdkafka/archive/#{ref}.tar.gz"
|
121
|
-
recipe.configure_options = ["--host=#{recipe.host}","--enable-static", "--enable-zstd"]
|
122
|
-
recipe.patch_files = Dir[File.join(releases, 'patches', "*.patch")].sort
|
123
|
-
recipe.cook
|
124
|
-
|
125
|
-
ext = recipe.host.include?("darwin") ? "dylib" : "so"
|
126
|
-
lib = File.expand_path("ports/#{recipe.host}/librdkafka/#{version}/lib/librdkafka.#{ext}", __dir__)
|
127
|
-
|
128
|
-
# Copy will copy the content, following any symlinks
|
129
|
-
FileUtils.cp(lib, __dir__)
|
130
|
-
end
|
131
|
-
end
|