tebako 0.8.7 → 0.8.8
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/README.adoc +72 -1
- data/lib/tebako/cli_helpers.rb +8 -2
- data/lib/tebako/packager/patch_libraries.rb +4 -4
- data/lib/tebako/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 32bc84615f87ea1dba23c659ef4efe66906fd3ff2d913c5bb5710533a7f2e947
|
4
|
+
data.tar.gz: 4ee0c2ea6565dd76fd797df814c11c190155eeb90b3beba05e3a94183e4368a5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7a96e28c1eed3205db11cc6dd16c91ca13a01959fb792ed5f504d057bd252e0618b1d0eb2d787ddc6a7ca6627743b8187dc6c060c6d34bcabf64343a176dcb2f
|
7
|
+
data.tar.gz: 5e94107188ab47055ae4dc07bd3acea650288ed4964e16a2752962bc9306c6b29ecf4303b03f74df9b01f2560110a1e6a432c8fd53bbea5fe01a5683ffdf88a6
|
data/README.adoc
CHANGED
@@ -98,6 +98,78 @@ with debug information unstripped. You can opt to run 'strip -S' manually, it mo
|
|
98
98
|
|
99
99
|
NOTE: Our goal is to support all maintained Ruby releases, including minor versions.
|
100
100
|
|
101
|
+
|
102
|
+
== Package portability
|
103
|
+
|
104
|
+
=== General
|
105
|
+
|
106
|
+
Tebako packages are designed to be "forward portable" across different operating
|
107
|
+
systems and architectures to allow for easy distribution and deployment.
|
108
|
+
|
109
|
+
Forward portability means that a package created on a specific platform can be
|
110
|
+
executed on a newer version of the same platform.
|
111
|
+
|
112
|
+
=== macOS
|
113
|
+
|
114
|
+
macOS packages are forward portable across different macOS versions.
|
115
|
+
|
116
|
+
[example]
|
117
|
+
A Tebako executable package built on macOS 12 (Monterey) can be executed on
|
118
|
+
macOS 14 (Sonoma), but not vice versa.
|
119
|
+
|
120
|
+
`x86_64` macOS packages can be run on Apple M (ARM) systems.
|
121
|
+
|
122
|
+
|
123
|
+
=== Linux distributions using `musl`
|
124
|
+
|
125
|
+
Packages built for the
|
126
|
+
https://musl.libc.org[`musl` implementation of the C standard library]
|
127
|
+
(such as https://alpinelinux.org[Alpine Linux]) are forward portable.
|
128
|
+
|
129
|
+
[example]
|
130
|
+
A Tebako executable package built on Alpine 3.17 can be executed on Alpine 3.19.
|
131
|
+
|
132
|
+
Usage of the
|
133
|
+
https://github.com/tamatebako/tebako-ci-containers[Tebako Docker containers] for
|
134
|
+
packaging is encouraged since it eliminates the effort needed for toolchain
|
135
|
+
setup and configuration.
|
136
|
+
|
137
|
+
|
138
|
+
=== Linux distributions using `glibc`
|
139
|
+
|
140
|
+
Packages built for the
|
141
|
+
https://sourceware.org/glibc[`glibc` implementation of the C standard library]
|
142
|
+
are forward portable if the `--patchelf` experimental option is enabled.
|
143
|
+
|
144
|
+
The `--patchelf` option allows these packages to be portable to Linux GNU
|
145
|
+
distributions with GLIBC version 2.31 and above.
|
146
|
+
|
147
|
+
[example]
|
148
|
+
A Tebako executable package built on Ubuntu 20.04 with `--patchelf` option can
|
149
|
+
be executed on Rocky Linux 9.
|
150
|
+
|
151
|
+
Usage of the
|
152
|
+
https://github.com/tamatebako/tebako-ci-containers[Tebako Docker containers] for
|
153
|
+
packaging is encouraged since it eliminates the effort needed for toolchain
|
154
|
+
setup and configuration.
|
155
|
+
|
156
|
+
|
157
|
+
.Minimum versions of GLIBC Linux distributions that support Tebako packages with forward portability
|
158
|
+
[cols="3", options="header"]
|
159
|
+
|===
|
160
|
+
| Distribution | Minimal supported version | GLIBC version
|
161
|
+
|
162
|
+
| Ubuntu | 20.04 (Focal Fossa) | GLIBC 2.31
|
163
|
+
| Debian | 11 (Bullseye) | GLIBC 2.31
|
164
|
+
| Rocky Linux | 9 | GLIBC 2.34
|
165
|
+
| Fedora | 33 | GLIBC 2.32
|
166
|
+
| CentOS | 9 | GLIBC 2.34
|
167
|
+
| Red Hat Enterprise Linux (RHEL) | 9 | GLIBC 2.34
|
168
|
+
| Oracle Linux | 9 | GLIBC 2.34
|
169
|
+
|
170
|
+
|===
|
171
|
+
|
172
|
+
|
101
173
|
== Future plans
|
102
174
|
|
103
175
|
* Downloading new DwarFS images to be stored in the local home directory
|
@@ -105,7 +177,6 @@ NOTE: Our goal is to support all maintained Ruby releases, including minor versi
|
|
105
177
|
* Supporting a COW mechanism that the newly written files are stored
|
106
178
|
in a separate image that can be loaded on top of the read-only file systems.
|
107
179
|
|
108
|
-
|
109
180
|
== FAQ
|
110
181
|
|
111
182
|
=== Why use Tebako?
|
data/lib/tebako/cli_helpers.rb
CHANGED
@@ -56,7 +56,7 @@ module Tebako
|
|
56
56
|
@cfg_options ||=
|
57
57
|
"-DCMAKE_BUILD_TYPE=Release -DRUBY_VER:STRING=\"#{ruby_ver}\" -DRUBY_HASH:STRING=\"#{ruby_hash}\" " \
|
58
58
|
"-DDEPS:STRING=\"#{deps}\" -G \"#{m_files}\" -B \"#{output_folder}\" -S \"#{source}\" " \
|
59
|
-
"
|
59
|
+
"#{remove_glibc_private} -DTEBAKO_VERSION:STRING=\"#{Tebako::VERSION}\""
|
60
60
|
end
|
61
61
|
|
62
62
|
def clean_cache
|
@@ -87,6 +87,7 @@ module Tebako
|
|
87
87
|
merged_env = ENV.to_h.merge(b_env)
|
88
88
|
Tebako.packaging_error(103) unless system(merged_env, cfg_cmd)
|
89
89
|
Tebako.packaging_error(104) unless system(merged_env, build_cmd)
|
90
|
+
true
|
90
91
|
end
|
91
92
|
|
92
93
|
def do_setup
|
@@ -95,6 +96,7 @@ module Tebako
|
|
95
96
|
merged_env = ENV.to_h.merge(b_env)
|
96
97
|
Tebako.packaging_error(101) unless system(merged_env, cfg_cmd)
|
97
98
|
Tebako.packaging_error(102) unless system(merged_env, build_cmd)
|
99
|
+
true
|
98
100
|
end
|
99
101
|
|
100
102
|
def ensure_version_file
|
@@ -175,7 +177,11 @@ module Tebako
|
|
175
177
|
end
|
176
178
|
|
177
179
|
def remove_glibc_private
|
178
|
-
@remove_glibc_private ||=
|
180
|
+
@remove_glibc_private ||= if RUBY_PLATFORM.end_with?("linux") || RUBY_PLATFORM.end_with?("linux-gnu")
|
181
|
+
"-DREMOVE_GLIBC_PRIVATE=#{options["patchelf"] ? "ON" : "OFF"}"
|
182
|
+
else
|
183
|
+
""
|
184
|
+
end
|
179
185
|
end
|
180
186
|
|
181
187
|
def handle_nil_prefix
|
@@ -36,16 +36,16 @@ module Tebako
|
|
36
36
|
# rubocop:disable Style/WordArray
|
37
37
|
DARWIN_BREW_LIBS = [
|
38
38
|
["zlib", "z"], ["gdbm", "gdbm"], ["readline", "readline"], ["libffi", "ffi"],
|
39
|
-
["ncurses", "ncurses"], ["
|
40
|
-
["
|
39
|
+
["ncurses", "ncurses"], ["lz4", "lz4"], ["xz", "lzma"], ["libyaml", "yaml"],
|
40
|
+
["boost", "boost_chrono"], ["double-conversion", "double-conversion"]
|
41
41
|
].freeze
|
42
42
|
|
43
43
|
DARWIN_BREW_LIBS_PRE_31 = [["openssl@1.1", "ssl"], ["openssl@1.1", "crypto"]].freeze
|
44
44
|
|
45
45
|
DARWIN_BREW_LIBS_31 = [["openssl@3", "ssl"], ["openssl@3", "crypto"]].freeze
|
46
46
|
|
47
|
-
DARWIN_DEP_LIBS_1 = ["folly", "fsst", "metadata_thrift", "thrift_light", "xxhash",
|
48
|
-
DARWIN_DEP_LIBS_2 = ["glog", "gflags", "brotlienc", "brotlidec", "brotlicommon"].freeze
|
47
|
+
DARWIN_DEP_LIBS_1 = ["folly", "fsst", "metadata_thrift", "thrift_light", "xxhash", "zstd"].freeze
|
48
|
+
DARWIN_DEP_LIBS_2 = ["glog", "gflags", "brotlienc", "brotlidec", "brotlicommon", "fmt"].freeze
|
49
49
|
# rubocop:enable Style/WordArray
|
50
50
|
|
51
51
|
COMMON_LINUX_LIBRARIES = [
|
data/lib/tebako/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tebako
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ribose Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-09-
|
11
|
+
date: 2024-09-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|