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 +4 -4
- data/Brewfile +30 -23
- data/include/tebako/tebako-fs.h +1 -0
- data/lib/tebako/packager/patch_libraries.rb +8 -7
- data/lib/tebako/ruby_builder.rb +19 -0
- data/lib/tebako/single_file_bundle_builder.rb +4 -0
- data/lib/tebako/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: ae8e7d799dcd1f708aae6e207f52209723ddc002d974630329f366f5868e4969
|
|
4
|
+
data.tar.gz: 43fde362f15747f05c1ac17c6d87e642fb6726cf63aad5518631b61b79349d2d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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 "
|
|
5
|
-
brew "
|
|
6
|
-
brew "
|
|
7
|
-
brew "
|
|
8
|
-
brew "
|
|
9
|
-
brew "
|
|
10
|
-
brew "
|
|
11
|
-
brew "
|
|
12
|
-
brew "
|
|
13
|
-
brew "
|
|
14
|
-
brew "
|
|
15
|
-
brew "
|
|
16
|
-
brew "
|
|
17
|
-
brew "
|
|
18
|
-
brew "
|
|
19
|
-
brew "
|
|
20
|
-
brew "
|
|
21
|
-
brew "
|
|
22
|
-
brew "
|
|
23
|
-
brew "
|
|
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"
|
data/include/tebako/tebako-fs.h
CHANGED
|
@@ -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"],
|
|
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
|
-
["
|
|
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
|
|
59
|
-
#
|
|
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
|
-
|
|
155
|
+
"-force_load #{deps_lib_dir}/libdwarfs_compressor.a"
|
|
155
156
|
else
|
|
156
157
|
""
|
|
157
158
|
end
|
data/lib/tebako/ruby_builder.rb
CHANGED
|
@@ -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
|
|
data/lib/tebako/version.rb
CHANGED
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.
|
|
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.
|
|
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.
|
|
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: []
|