libdatadog 30.0.0.1.0-aarch64-linux → 33.0.0.1.0-aarch64-linux

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.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/lib/libdatadog/version.rb +1 -1
  3. data/tasks/build.rake +175 -0
  4. data/vendor/libdatadog-33.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/LICENSE-3rdparty.csv +548 -0
  5. data/vendor/{libdatadog-30.0.0 → libdatadog-33.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/common.h +80 -19
  6. data/vendor/{libdatadog-30.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl → libdatadog-33.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu}/include/datadog/data-pipeline.h +17 -4
  7. data/vendor/{libdatadog-30.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl → libdatadog-33.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu}/include/datadog/ffe.h +7 -3
  8. data/vendor/{libdatadog-30.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl → libdatadog-33.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu}/include/datadog/profiling.h +36 -0
  9. data/vendor/{libdatadog-30.0.0 → libdatadog-33.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/telemetry.h +21 -0
  10. data/vendor/{libdatadog-30.0.0 → libdatadog-33.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/lib/libdatadog_profiling.so +0 -0
  11. data/vendor/{libdatadog-30.0.0 → libdatadog-33.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/lib/pkgconfig/datadog_profiling_with_rpath.pc +1 -1
  12. data/vendor/libdatadog-33.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/LICENSE-3rdparty.csv +548 -0
  13. data/vendor/{libdatadog-30.0.0 → libdatadog-33.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/bin/libdatadog-crashtracking-receiver +0 -0
  14. data/vendor/{libdatadog-30.0.0 → libdatadog-33.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/common.h +80 -19
  15. data/vendor/{libdatadog-30.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu → libdatadog-33.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl}/include/datadog/data-pipeline.h +17 -4
  16. data/vendor/{libdatadog-30.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu → libdatadog-33.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl}/include/datadog/ffe.h +7 -3
  17. data/vendor/{libdatadog-30.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu → libdatadog-33.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl}/include/datadog/profiling.h +36 -0
  18. data/vendor/{libdatadog-30.0.0 → libdatadog-33.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/telemetry.h +21 -0
  19. data/vendor/{libdatadog-30.0.0 → libdatadog-33.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/lib/libdatadog_profiling.so +0 -0
  20. data/vendor/{libdatadog-30.0.0 → libdatadog-33.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/lib/pkgconfig/datadog_profiling_with_rpath.pc +1 -1
  21. metadata +34 -33
  22. data/vendor/libdatadog-30.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/LICENSE-3rdparty.yml +0 -53656
  23. data/vendor/libdatadog-30.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/LICENSE-3rdparty.yml +0 -53656
  24. /data/vendor/{libdatadog-30.0.0 → libdatadog-33.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/LICENSE +0 -0
  25. /data/vendor/{libdatadog-30.0.0 → libdatadog-33.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/NOTICE +0 -0
  26. /data/vendor/{libdatadog-30.0.0 → libdatadog-33.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/bin/libdatadog-crashtracking-receiver +0 -0
  27. /data/vendor/{libdatadog-30.0.0 → libdatadog-33.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/blazesym.h +0 -0
  28. /data/vendor/{libdatadog-30.0.0 → libdatadog-33.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/crashtracker.h +0 -0
  29. /data/vendor/{libdatadog-30.0.0 → libdatadog-33.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/ddsketch.h +0 -0
  30. /data/vendor/{libdatadog-30.0.0 → libdatadog-33.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/library-config.h +0 -0
  31. /data/vendor/{libdatadog-30.0.0 → libdatadog-33.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/log.h +0 -0
  32. /data/vendor/{libdatadog-30.0.0 → libdatadog-33.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/LICENSE +0 -0
  33. /data/vendor/{libdatadog-30.0.0 → libdatadog-33.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/NOTICE +0 -0
  34. /data/vendor/{libdatadog-30.0.0 → libdatadog-33.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/blazesym.h +0 -0
  35. /data/vendor/{libdatadog-30.0.0 → libdatadog-33.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/crashtracker.h +0 -0
  36. /data/vendor/{libdatadog-30.0.0 → libdatadog-33.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/ddsketch.h +0 -0
  37. /data/vendor/{libdatadog-30.0.0 → libdatadog-33.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/library-config.h +0 -0
  38. /data/vendor/{libdatadog-30.0.0 → libdatadog-33.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/log.h +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e643565188623677890fea4f7e2f9439bbc0db5c0a26a831a7b2f956008a4d92
4
- data.tar.gz: 0b828a1586d7ebcbc143336707b6c791c34061c8fed18dc7ba09a332749df741
3
+ metadata.gz: de4a583daaad84afa2490571e9ad70bf8c43e5885d8ceab8d64f74a99b672e8c
4
+ data.tar.gz: 1df1b8bbf4e4552b6e347f4e6d5bfbab8db7eac141479542c4addcbb8ee204c5
5
5
  SHA512:
6
- metadata.gz: 7610579b5832b1b63c19afa33d13cf69130cf52ce9052b6bedd301a91ace3002e1bfad40639a03ca629eb2d580f09e0db8f25af8fbbabc906aac341060b04c98
7
- data.tar.gz: f8cd11ca5e50e394d1284766cf116b773ee4ec07b4063edf8e7f04ae6f067b0202e59d3305d9d9ae1b1dcc2decb09814336170900de173dd6a04c5ab8ea4be77
6
+ metadata.gz: e1f2da4bf10c28e377832e36235c1c63da18a65522a80fb5c11cd56baa7dbb0c670b6dfe7a30585d9f4a23fa6997229dde64a4cb9cff4d6aff46fffb11e1d939
7
+ data.tar.gz: ccbc74d62b10bd40023d7e1822de07f66f03ddd33e3e232cc60246f66404e6ae4c1a7165c2e5a706dff85c3219afd0b419d0ee0c1545702d5792be532fd49cff
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Libdatadog
4
4
  # Current libdatadog version
5
- LIB_VERSION = "30.0.0"
5
+ LIB_VERSION = "33.0.0"
6
6
 
7
7
  GEM_MAJOR_VERSION = "1"
8
8
  GEM_MINOR_VERSION = "0"
data/tasks/build.rake ADDED
@@ -0,0 +1,175 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "etc"
4
+ require "pathname"
5
+
6
+ module BuildFromSource
7
+ module Target
8
+ # Mapping from Rust target triples to Ruby gem platform names.
9
+ # x86_64-apple-darwin is deliberately not supported.
10
+ RUST_TO_RUBY = {
11
+ "x86_64-unknown-linux-gnu" => "x86_64-linux",
12
+ "x86_64-unknown-linux-musl" => "x86_64-linux-musl",
13
+ "aarch64-unknown-linux-gnu" => "aarch64-linux",
14
+ "aarch64-unknown-linux-musl" => "aarch64-linux-musl",
15
+ "aarch64-apple-darwin" => "arm64-darwin"
16
+ }.freeze
17
+
18
+ class << self
19
+ def host_triple
20
+ @host_triple ||= begin
21
+ output = `rustc -vV`
22
+ raise "rustc not found or failed" unless $?.success?
23
+
24
+ triple = output[/^host:\s*(.+)$/, 1]
25
+ raise "Could not determine host triple from rustc output" unless triple
26
+
27
+ triple = triple.strip
28
+
29
+ triple
30
+ end
31
+ end
32
+
33
+ def ruby_platform(rust_triple = host_triple)
34
+ RUST_TO_RUBY.fetch(rust_triple) do
35
+ raise "Unsupported Rust target: #{rust_triple}. " \
36
+ "Supported: #{RUST_TO_RUBY.keys.join(", ")}"
37
+ end
38
+ end
39
+ end
40
+ end
41
+
42
+ module Paths
43
+ class << self
44
+ # Project root
45
+ def root
46
+ @root ||= (Pathname.new(__dir__) / "..").expand_path
47
+ end
48
+
49
+ # Intermediate build artifacts
50
+ def tmp
51
+ root / "tmp"
52
+ end
53
+
54
+ def builder_root
55
+ tmp / "builder"
56
+ end
57
+
58
+ def builder_bin
59
+ builder_root / "bin" / "release"
60
+ end
61
+
62
+ def cargo_target
63
+ tmp / "cargo-target"
64
+ end
65
+
66
+ def cmake_out
67
+ tmp / "cmake-out"
68
+ end
69
+
70
+ # Vendor output tree
71
+ def vendor
72
+ root / "vendor" / "libdatadog-#{Libdatadog::LIB_VERSION}"
73
+ end
74
+
75
+ def vendor_target(ruby_platform = Target.ruby_platform)
76
+ vendor / ruby_platform
77
+ end
78
+ end
79
+ end
80
+
81
+ module Builder
82
+ class << self
83
+ # Build the cargo install command for the builder crate's `release` binary.
84
+ #
85
+ # source: optional path to a local libdatadog checkout
86
+ # features: optional comma-separated feature override
87
+ def cargo_install_cmd(source: nil, features: nil)
88
+ cmd = %W[cargo install --bin release --root #{Paths.builder_root} --force]
89
+
90
+ cmd += if source
91
+ ["--path", (Pathname.new(source).expand_path / "builder").to_s]
92
+ else
93
+ [
94
+ "--git", "https://github.com/DataDog/libdatadog",
95
+ "--tag", "v#{Libdatadog::LIB_VERSION}",
96
+ "builder"
97
+ ]
98
+ end
99
+
100
+ cmd += ["--no-default-features", "--features", features] if features
101
+
102
+ cmd
103
+ end
104
+
105
+ # Environment variables required by the builder binary at runtime.
106
+ #
107
+ # The builder reads PROFILE, TARGET, and CARGO_PKG_VERSION via env::var()
108
+ # (they are NOT baked in at compile time despite the build script's cargo:rustc-env).
109
+ # CARGO_TARGET_DIR is needed because we are not inside a cargo workspace.
110
+ # HOST, OUT_DIR, OPT_LEVEL, DEBUG, and NUM_JOBS are required by the cmake crate
111
+ # used internally to build the crashtracker receiver.
112
+ def env(host_triple)
113
+ {
114
+ "PROFILE" => "release",
115
+ "OPT_LEVEL" => "3",
116
+ "DEBUG" => "false",
117
+ "TARGET" => host_triple,
118
+ "HOST" => host_triple,
119
+ "CARGO_PKG_VERSION" => Libdatadog::LIB_VERSION,
120
+ "CARGO_TARGET_DIR" => Paths.cargo_target.to_s,
121
+ "OUT_DIR" => Paths.cmake_out.to_s,
122
+ "NUM_JOBS" => begin
123
+ Etc.nprocessors
124
+ rescue
125
+ 1
126
+ end.to_s
127
+ }
128
+ end
129
+ end
130
+ end
131
+ end
132
+
133
+ namespace :libdatadog do
134
+ desc "Build libdatadog from source for the current platform"
135
+ task :build do
136
+ host_triple = BuildFromSource::Target.host_triple
137
+ ruby_platform = BuildFromSource::Target.ruby_platform(host_triple)
138
+ paths = BuildFromSource::Paths
139
+
140
+ # Install builder binary
141
+ source = ENV["LIBDATADOG_SOURCE"]
142
+ features = ENV["LIBDATADOG_FEATURES"]
143
+ install_cmd = BuildFromSource::Builder.cargo_install_cmd(source: source, features: features)
144
+
145
+ info = source ? "local: #{source}" : "v#{Libdatadog::LIB_VERSION}"
146
+ puts "Installing builder (#{info})..."
147
+ system(*install_cmd) || raise("Failed to install builder via cargo")
148
+
149
+ # Prepare output directories
150
+ target_dir = paths.vendor_target(ruby_platform)
151
+ [target_dir, paths.cargo_target, paths.cmake_out].each(&:mkpath)
152
+
153
+ # Invoke builder
154
+ env = BuildFromSource::Builder.env(host_triple)
155
+
156
+ puts "Building libdatadog for #{ruby_platform} (#{host_triple})"
157
+ puts "Output: #{target_dir}"
158
+ system(env, paths.builder_bin.to_s, "--out", target_dir.to_s) || raise("Builder failed")
159
+
160
+ # Fix file permissions to match expected values for packaging
161
+ Helpers.fix_file_permissions(target_dir.to_s)
162
+
163
+ puts "Done! Artifacts in #{target_dir}"
164
+ end
165
+
166
+ desc "Remove build intermediates and vendor tree"
167
+ task :clean do
168
+ [BuildFromSource::Paths.tmp, BuildFromSource::Paths.vendor].each do |dir|
169
+ if dir.exist?
170
+ puts "Removing #{dir}"
171
+ dir.rmtree
172
+ end
173
+ end
174
+ end
175
+ end