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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e7482a572c9c213f8c2b6b59003b7265c8668535b13de72591ef2f2750bb9a27
4
- data.tar.gz: 2d308207651c814f42c0012a1eccf0ce02db8b4eb38f9c195c06f0cd815ba2af
3
+ metadata.gz: 32bc84615f87ea1dba23c659ef4efe66906fd3ff2d913c5bb5710533a7f2e947
4
+ data.tar.gz: 4ee0c2ea6565dd76fd797df814c11c190155eeb90b3beba05e3a94183e4368a5
5
5
  SHA512:
6
- metadata.gz: 15d0d729e275a6b1022159294c7a402559a34c6e3086701ca528e06ac5fc7536ed8e369061466244b0b615a40bb28aeddaa718e264e056e71e65c02c39976ded
7
- data.tar.gz: 2c85725fe1478d2604af8a52efa44fdc2abebf66f7a854d42a033dd40fd35c0181d5a7536ecfd4d07d371e8b53f4f6d2b8685dadf0e764ef0186234ae86a6430
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?
@@ -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
- "-DREMOVE_GLIBC_PRIVATE=#{remove_glibc_private} -DTEBAKO_VERSION:STRING=\"#{Tebako::VERSION}\""
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 ||= options["patchelf"] ? "ON" : "OFF"
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"], ["fmt", "fmt"], ["lz4", "lz4"], ["xz", "lzma"],
40
- ["libyaml", "yaml"], ["boost", "boost_chrono"], ["double-conversion", "double-conversion"]
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", "zstd"].freeze
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 = [
@@ -26,5 +26,5 @@
26
26
  # POSSIBILITY OF SUCH DAMAGE.
27
27
 
28
28
  module Tebako
29
- VERSION = "0.8.7"
29
+ VERSION = "0.8.8"
30
30
  end
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.7
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-03 00:00:00.000000000 Z
11
+ date: 2024-09-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor