rbe-tebako 0.16.0 → 0.16.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3d051f3caca43f3080ba1793827fe2390b7a9410ed53cd8c5426856c70592cd9
4
- data.tar.gz: 9466ae396ba0171287dd792fb99cc58995aa76b750772b146f92687f862e28e1
3
+ metadata.gz: ae8e7d799dcd1f708aae6e207f52209723ddc002d974630329f366f5868e4969
4
+ data.tar.gz: 43fde362f15747f05c1ac17c6d87e642fb6726cf63aad5518631b61b79349d2d
5
5
  SHA512:
6
- metadata.gz: d3bcdf7fd8770090d25ca313808091f3785c5fbac4015af47a6bd745acaae341efcd9381225eeae1dd1d986cfcb4ad895d92c4215586e338c1127be8a9004c15
7
- data.tar.gz: 6151c0a0d960ef89d768a3510400a6bd4ba2fa01b4756e224222e026cc776ad2ddf17978bc9b561a230251c6ffa191ec0833c31cea717cd0db499507b1c705c8
6
+ metadata.gz: d4544ed4430fa4c6feebeca5faed6aae71a5e1b8059760d0cd3eae4ca0b9bfc6058f48606dba2ee050b728a7eb7ceca1bf4d965b51a9f118ceff84c4456bb0c8
7
+ data.tar.gz: 92100591623e76a5078ff059d54b8071443a6bd1bd9e7a8bfd8879c7c511d325fb937984ee228045025a136b469aefb1c4446eab9d56d293968f85159035cdae
data/Brewfile CHANGED
@@ -1,23 +1,30 @@
1
- # frozen_string_literal: true
2
-
3
- brew "zlib"
4
- brew "ncurses"
5
- brew "libevent"
6
- brew "libsodium"
7
- brew "lz4"
8
- brew "xz"
9
- brew "gdbm"
10
- brew "pkg-config"
11
- brew "libyaml"
12
- brew "curl"
13
- brew "bison"
14
- brew "flex"
15
- brew "binutils"
16
- brew "libffi"
17
- brew "double-conversion"
18
- brew "boost"
19
- brew "jemalloc"
20
- brew "fmt"
21
- brew "glog"
22
- brew "gnu-sed"
23
- brew "bash"
1
+ # frozen_string_literal: true
2
+
3
+ brew "zlib"
4
+ brew "openssl@3"
5
+ brew "ncurses"
6
+ brew "readline"
7
+ brew "libevent"
8
+ brew "libsodium"
9
+ brew "lz4"
10
+ brew "xz"
11
+ brew "gdbm"
12
+ brew "pkg-config"
13
+ brew "libyaml"
14
+ brew "curl"
15
+ brew "bison"
16
+ brew "flex"
17
+ brew "binutils"
18
+ brew "libffi"
19
+ brew "double-conversion"
20
+ brew "boost"
21
+ brew "xxhash"
22
+ brew "zstd"
23
+ brew "brotli"
24
+ brew "flac"
25
+ brew "libogg"
26
+ brew "jemalloc"
27
+ brew "fmt"
28
+ brew "glog"
29
+ brew "gnu-sed"
30
+ brew "bash"
@@ -29,6 +29,7 @@
29
29
 
30
30
  #pragma once
31
31
 
32
+ #define INCBIN_SILENCE_BITCODE_WARNING
32
33
  #include <incbin/incbin.h>
33
34
 
34
35
  INCBIN_EXTERN(fs);
@@ -32,7 +32,7 @@ module Tebako
32
32
  module Packager
33
33
  # Ruby patching definitions (pass2)
34
34
  module PatchLibraries
35
- class << self
35
+ class << self # rubocop:disable Metrics/ClassLength
36
36
  # rubocop:disable Style/WordArray
37
37
  DARWIN_BREW_LIBS = [
38
38
  ["zlib", "z"], ["gdbm", "gdbm"], ["readline", "readline"], ["libffi", "ffi"],
@@ -40,13 +40,14 @@ module Tebako
40
40
  ["boost", "boost_chrono"], ["double-conversion", "double-conversion"],
41
41
  # DwarFS v0.15 compression/hash deps (were staged into deps_lib_dir under the bridge)
42
42
  ["xxhash", "xxhash"], ["zstd", "zstd"],
43
- ["brotli", "brotlienc"], ["brotli", "brotlidec"], ["brotli", "brotlicommon"],
43
+ ["brotli", "brotlienc"], ["brotli", "brotlidec"], ["brotli", "brotlicommon"],
44
44
  # DwarFS reader link deps
45
45
  ["boost", "boost_filesystem"], ["boost", "boost_atomic"],
46
46
  ["boost", "boost_iostreams"], ["boost", "boost_program_options"],
47
47
  ["boost", "boost_context"], ["boost", "boost_regex"],
48
48
  ["boost", "boost_thread"],
49
- ["flac", "FLAC"], ["flac", "FLAC++"],
49
+ ["fmt", "fmt"],
50
+ ["flac", "FLAC"], ["flac", "FLAC++"],
50
51
  ["libogg", "ogg"]
51
52
  ].freeze
52
53
 
@@ -55,8 +56,8 @@ module Tebako
55
56
  DARWIN_BREW_LIBS_31 = [["openssl@3", "ssl"], ["openssl@3", "crypto"]].freeze
56
57
 
57
58
  # DwarFS v0.15 split static libs (installed to deps_lib_dir by libdwarfs). folly/fbthrift
58
- # are gone; the thrift/fsst/frozen libs are now real .a files. glog/gflags/fmt are no
59
- # longer linked (fmt is header-only / baked into the DwarFS libs).
59
+ # are gone; the thrift/fsst/frozen libs are now real .a files. glog/gflags are no longer
60
+ # linked. fmt remains a compiled dependency of the DwarFS reader/common archives.
60
61
  DARWIN_DEP_LIBS_1 = [
61
62
  "dwarfs_reader", "dwarfs_common",
62
63
  "dwarfs_fsst", "dwarfs_frozen", "dwarfs_thrift_lite_v2",
@@ -139,7 +140,7 @@ module Tebako
139
140
  brew_libs.each { |lib| libs << "#{PatchHelpers.get_prefix_macos(lib[0]).chop}/lib/lib#{lib[1]}.a " }
140
141
  end
141
142
 
142
- def darwin_libraries(deps_lib_dir, ruby_ver, with_compression)
143
+ def darwin_libraries(deps_lib_dir, ruby_ver, with_compression) # rubocop:disable Metrics/MethodLength
143
144
  libs = String.new
144
145
 
145
146
  DARWIN_DEP_LIBS_1.each { |lib| libs << "#{deps_lib_dir}/lib#{lib}.a " }
@@ -151,7 +152,7 @@ module Tebako
151
152
  compression_lib =
152
153
  if with_compression
153
154
  "-force_load #{deps_lib_dir}/libdwarfs_decompressor.a " \
154
- "-force_load #{deps_lib_dir}/libdwarfs_compressor.a"
155
+ "-force_load #{deps_lib_dir}/libdwarfs_compressor.a"
155
156
  else
156
157
  ""
157
158
  end
@@ -107,12 +107,31 @@ module Tebako
107
107
  "-f",
108
108
  "exts.mk",
109
109
  "tebako-bundle",
110
+ "EXTENCS=#{enc_link_objects.join(" ")}",
110
111
  "TEBAKO_BUNDLE_OUTPUT=#{build_name}",
111
112
  "TEBAKO_APPLICATION_LDFLAGS=#{application_link_flags(application)}"
112
113
  )
113
114
  end
114
115
  end
115
116
 
117
+ # exts.mk's SUBMAKEOPTS folds $(EXTENCS) into the EXTOBJS it hands the
118
+ # sub-make. Ruby's own build supplies it (common.mk build-ext passes
119
+ # EXTENCS="$(ENCOBJS)"); invoked standalone the variable expands empty,
120
+ # the static encoding objects drop out of the link, and libruby-static.a's
121
+ # dmyenc.o (a no-op Init_enc) satisfies the symbol instead. The resulting
122
+ # binary boots with only builtin encodings and NO Encoding constants, and
123
+ # the first extension that looks up Encoding::UTF_8 (json) dies with
124
+ # NameError.
125
+ def enc_link_objects
126
+ objects = ["enc/encinit.o", "enc/libenc.a", "enc/libtrans.a"]
127
+ missing = objects.reject { |path| File.file?(File.join(@src_dir, path)) }
128
+ unless missing.empty?
129
+ raise Tebako::Error.new("static encoding objects missing from Ruby build: #{missing.join(", ")}", 120)
130
+ end
131
+
132
+ objects
133
+ end
134
+
116
135
  def publish_application_link(output, target, build_target)
117
136
  raise Tebako::Error.new("macOS application link did not create #{output}", 120) unless File.file?(build_target)
118
137
 
@@ -68,6 +68,10 @@ module Tebako
68
68
  return if File.file?(marker) && File.binread(marker) == @runtime_identity
69
69
 
70
70
  base = File.join(@opts.output_folder, "bundle-work", output_identity, "macho-link-runtime")
71
+ # The runtime build's final strip writes here with `strip -o`, which
72
+ # cannot create missing directories — without this, a fresh identity dir
73
+ # produces a "could not strip" warning and no byproduct file.
74
+ FileUtils.mkdir_p(File.dirname(base))
71
75
  Tebako::RuntimeBuilder.new(runtime_options(base), @scm).build
72
76
  end
73
77
 
@@ -26,5 +26,5 @@
26
26
  # POSSIBILITY OF SUCH DAMAGE.
27
27
 
28
28
  module Tebako
29
- VERSION = "0.16.0"
29
+ VERSION = "0.16.2"
30
30
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rbe-tebako
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.16.0
4
+ version: 0.16.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrea Fomera
@@ -310,7 +310,7 @@ licenses:
310
310
  - BSD-2-Clause
311
311
  metadata:
312
312
  homepage_uri: https://github.com/RubyEverywhere/tebako
313
- source_code_uri: https://github.com/RubyEverywhere/tebako/tree/v0.16.0
313
+ source_code_uri: https://github.com/RubyEverywhere/tebako/tree/v0.16.2
314
314
  allowed_push_host: https://rubygems.org
315
315
  rdoc_options: []
316
316
  require_paths:
@@ -335,7 +335,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
335
335
  - !ruby/object:Gem::Version
336
336
  version: '0'
337
337
  requirements: []
338
- rubygems_version: 4.0.13
338
+ rubygems_version: 4.0.16
339
339
  specification_version: 4
340
340
  summary: Packager for Ruby executables (RubyEverywhere fork of tebako)
341
341
  test_files: []