tebako 0.8.7 → 0.8.8

Sign up to get free protection for your applications and to get access to all the features.
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