rbe-tebako 0.15.0

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.
Files changed (87) hide show
  1. checksums.yaml +7 -0
  2. data/.clang-format +4 -0
  3. data/Brewfile +23 -0
  4. data/CMakeLists.txt +464 -0
  5. data/CODE_OF_CONDUCT.adoc +128 -0
  6. data/CONTRIBUTING.adoc +294 -0
  7. data/Gemfile +31 -0
  8. data/INSTALLATION.adoc +233 -0
  9. data/LICENSE.md +33 -0
  10. data/README.adoc +1363 -0
  11. data/Rakefile +35 -0
  12. data/bin/console +15 -0
  13. data/bin/setup +8 -0
  14. data/cmake/copy_dir.cmake +29 -0
  15. data/common.env +5 -0
  16. data/exe/rbe-tebako +32 -0
  17. data/exe/rbe-tebako-packager +77 -0
  18. data/include/tebako/tebako-fs.h +43 -0
  19. data/include/tebako/tebako-main.h +42 -0
  20. data/include/tebako/tebako-prism.h +51 -0
  21. data/lib/rbe-tebako.rb +6 -0
  22. data/lib/tebako/build_helpers.rb +77 -0
  23. data/lib/tebako/cache_manager.rb +112 -0
  24. data/lib/tebako/cli.rb +220 -0
  25. data/lib/tebako/cli_helpers.rb +165 -0
  26. data/lib/tebako/codegen.rb +252 -0
  27. data/lib/tebako/deploy_helper.rb +258 -0
  28. data/lib/tebako/error.rb +70 -0
  29. data/lib/tebako/options_manager.rb +338 -0
  30. data/lib/tebako/package_descriptor.rb +143 -0
  31. data/lib/tebako/packager/pass1_patch.rb +266 -0
  32. data/lib/tebako/packager/pass1a_patch.rb +55 -0
  33. data/lib/tebako/packager/pass2_patch.rb +140 -0
  34. data/lib/tebako/packager/pass2_patch_crt.rb +46 -0
  35. data/lib/tebako/packager/pass2msys_patch.rb +190 -0
  36. data/lib/tebako/packager/patch.rb +54 -0
  37. data/lib/tebako/packager/patch_buildsystem.rb +124 -0
  38. data/lib/tebako/packager/patch_helpers.rb +109 -0
  39. data/lib/tebako/packager/patch_libraries.rb +188 -0
  40. data/lib/tebako/packager/patch_literals.rb +275 -0
  41. data/lib/tebako/packager/patch_main.rb +93 -0
  42. data/lib/tebako/packager/rubygems_patch.rb +83 -0
  43. data/lib/tebako/packager.rb +210 -0
  44. data/lib/tebako/packager_lite.rb +78 -0
  45. data/lib/tebako/ruby_builder.rb +71 -0
  46. data/lib/tebako/ruby_version.rb +206 -0
  47. data/lib/tebako/scenario_manager.rb +251 -0
  48. data/lib/tebako/stripper.rb +135 -0
  49. data/lib/tebako/version.rb +30 -0
  50. data/lib/tebako.rb +34 -0
  51. data/src/tebako-main.cpp +168 -0
  52. data/tools/.gitattributes +4 -0
  53. data/tools/.github/workflows/build-containers.yml +190 -0
  54. data/tools/.github/workflows/lint.yml +41 -0
  55. data/tools/.github/workflows/test.yml +331 -0
  56. data/tools/.gitignore +1 -0
  57. data/tools/README.md +49 -0
  58. data/tools/ci-scripts/arm-brew-install.sh +43 -0
  59. data/tools/ci-scripts/arm-brew-setup.sh +33 -0
  60. data/tools/ci-scripts/level-up.sh +35 -0
  61. data/tools/ci-scripts/patch-fbthrift.sh +94 -0
  62. data/tools/ci-scripts/patch-folly.sh +551 -0
  63. data/tools/ci-scripts/patch-glog.sh +57 -0
  64. data/tools/ci-scripts/patch-zstd.sh +57 -0
  65. data/tools/ci-scripts/tools.sh +63 -0
  66. data/tools/ci-scripts/x86-brew-install.sh +43 -0
  67. data/tools/ci-scripts/x86-brew-setup.sh +33 -0
  68. data/tools/cmake-scripts/def-external-project.cmake +96 -0
  69. data/tools/cmake-scripts/macos-environment.cmake +91 -0
  70. data/tools/cmake-scripts/msys-environment.cmake +78 -0
  71. data/tools/cmake-scripts/setup-libarchive.cmake +93 -0
  72. data/tools/cmake-scripts/setup-libfmt.cmake +61 -0
  73. data/tools/cmake-scripts/setup-libhowardhinnerdate.cmake +55 -0
  74. data/tools/cmake-scripts/setup-libutfcpp.cmake +56 -0
  75. data/tools/cmake-scripts/version.cmake +162 -0
  76. data/tools/docker/alpine-3.17-dev.Dockerfile +49 -0
  77. data/tools/docker/tools/tools.sh +66 -0
  78. data/tools/docker/ubuntu-20.04-dev.Dockerfile +51 -0
  79. data/tools/dwarfs-test-helper/CMakeLists.txt +34 -0
  80. data/tools/include/pro-statvfs.h +57 -0
  81. data/tools/tests/cmake/CMakeLists.txt +81 -0
  82. data/tools/tests/setup-libfmt/CMakeLists.txt +35 -0
  83. data/tools/tests/setup-libhowardhinnerdate/CMakeLists.txt +35 -0
  84. data/tools/tests/setup-librachive/CMakeLists.txt +35 -0
  85. data/tools/tests/setup-libutfcpp/CMakeLists.txt +36 -0
  86. data/tools/tests/setup-openssl/CMakeLists.txt +36 -0
  87. metadata +312 -0
@@ -0,0 +1,36 @@
1
+ # Copyright (c) 2024-2025 [Ribose Inc](https://www.ribose.com).
2
+ # All rights reserved.
3
+ # This file is a part of the Tebako project.
4
+ #
5
+ # Redistribution and use in source and binary forms, with or without
6
+ # modification, are permitted provided that the following conditions
7
+ # are met:
8
+ # 1. Redistributions of source code must retain the above copyright
9
+ # notice, this list of conditions and the following disclaimer.
10
+ # 2. Redistributions in binary form must reproduce the above copyright
11
+ # notice, this list of conditions and the following disclaimer in the
12
+ # documentation and/or other materials provided with the distribution.
13
+ #
14
+ # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
15
+ # ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
16
+ # TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
17
+ # PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS
18
+ # BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
19
+ # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
20
+ # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
21
+ # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
22
+ # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
23
+ # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
24
+ # POSSIBILITY OF SUCH DAMAGE.
25
+
26
+ cmake_minimum_required(VERSION 3.24.0)
27
+ project(setup-libutfcpp-test)
28
+
29
+ include(ExternalProject)
30
+
31
+ set(ROOT ${CMAKE_CURRENT_SOURCE_DIR}/../..)
32
+ set(DEPS ${CMAKE_CURRENT_BINARY_DIR}/deps)
33
+ set(DEPS_INCLUDE_DIR ${DEPS}/include)
34
+
35
+ include(${ROOT}/cmake-scripts/def-external-project.cmake)
36
+ include(${ROOT}/cmake-scripts/setup-libutfcpp.cmake)
@@ -0,0 +1,36 @@
1
+ # Copyright (c) 2025-2025 [Ribose Inc](https://www.ribose.com).
2
+ # All rights reserved.
3
+ # This file is a part of the Tebako project.
4
+ #
5
+ # Redistribution and use in source and binary forms, with or without
6
+ # modification, are permitted provided that the following conditions
7
+ # are met:
8
+ # 1. Redistributions of source code must retain the above copyright
9
+ # notice, this list of conditions and the following disclaimer.
10
+ # 2. Redistributions in binary form must reproduce the above copyright
11
+ # notice, this list of conditions and the following disclaimer in the
12
+ # documentation and/or other materials provided with the distribution.
13
+ #
14
+ # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
15
+ # ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
16
+ # TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
17
+ # PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS
18
+ # BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
19
+ # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
20
+ # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
21
+ # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
22
+ # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
23
+ # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
24
+ # POSSIBILITY OF SUCH DAMAGE.
25
+
26
+ cmake_minimum_required(VERSION 3.24.0)
27
+ project(setup-openssl-test)
28
+
29
+ include(ExternalProject)
30
+
31
+ set(ROOT ${CMAKE_CURRENT_SOURCE_DIR}/../..)
32
+ set(DEPS ${CMAKE_CURRENT_BINARY_DIR}/deps)
33
+ set(GNU_BASH bash)
34
+
35
+ include(${ROOT}/cmake-scripts/def-external-project.cmake)
36
+ include(${ROOT}/cmake-scripts/setup-openssl-1.1.1.cmake)
metadata ADDED
@@ -0,0 +1,312 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rbe-tebako
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.15.0
5
+ platform: ruby
6
+ authors:
7
+ - Andrea Fomera
8
+ - Ribose Inc.
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 1980-01-02 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: thor
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.2'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1.2'
41
+ - !ruby/object:Gem::Dependency
42
+ name: yaml
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 0.2.1
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 0.2.1
55
+ - !ruby/object:Gem::Dependency
56
+ name: debug
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: hoe
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: minitest
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: rdbg
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: rspec
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '3.2'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '3.2'
125
+ - !ruby/object:Gem::Dependency
126
+ name: rubocop
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: '1.52'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: '1.52'
139
+ - !ruby/object:Gem::Dependency
140
+ name: rubocop-rubycw
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ - !ruby/object:Gem::Dependency
154
+ name: simplecov
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
167
+ - !ruby/object:Gem::Dependency
168
+ name: simplecov-cobertura
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - ">="
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - ">="
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
181
+ description: |
182
+ rbe-tebako is the RubyEverywhere fork of tebako, an executable packager. It
183
+ packages a set of files into a single executable binary that allows a user
184
+ to run a selected file from the packaged software as if it is a mounted
185
+ filesystem. This fork targets Ruby 3.2 through 4.0.
186
+ email:
187
+ - andrea.fomera@gmail.com
188
+ executables:
189
+ - rbe-tebako
190
+ - rbe-tebako-packager
191
+ extensions: []
192
+ extra_rdoc_files: []
193
+ files:
194
+ - ".clang-format"
195
+ - Brewfile
196
+ - CMakeLists.txt
197
+ - CODE_OF_CONDUCT.adoc
198
+ - CONTRIBUTING.adoc
199
+ - Gemfile
200
+ - INSTALLATION.adoc
201
+ - LICENSE.md
202
+ - README.adoc
203
+ - Rakefile
204
+ - bin/console
205
+ - bin/setup
206
+ - cmake/copy_dir.cmake
207
+ - common.env
208
+ - exe/rbe-tebako
209
+ - exe/rbe-tebako-packager
210
+ - include/tebako/tebako-fs.h
211
+ - include/tebako/tebako-main.h
212
+ - include/tebako/tebako-prism.h
213
+ - lib/rbe-tebako.rb
214
+ - lib/tebako.rb
215
+ - lib/tebako/build_helpers.rb
216
+ - lib/tebako/cache_manager.rb
217
+ - lib/tebako/cli.rb
218
+ - lib/tebako/cli_helpers.rb
219
+ - lib/tebako/codegen.rb
220
+ - lib/tebako/deploy_helper.rb
221
+ - lib/tebako/error.rb
222
+ - lib/tebako/options_manager.rb
223
+ - lib/tebako/package_descriptor.rb
224
+ - lib/tebako/packager.rb
225
+ - lib/tebako/packager/pass1_patch.rb
226
+ - lib/tebako/packager/pass1a_patch.rb
227
+ - lib/tebako/packager/pass2_patch.rb
228
+ - lib/tebako/packager/pass2_patch_crt.rb
229
+ - lib/tebako/packager/pass2msys_patch.rb
230
+ - lib/tebako/packager/patch.rb
231
+ - lib/tebako/packager/patch_buildsystem.rb
232
+ - lib/tebako/packager/patch_helpers.rb
233
+ - lib/tebako/packager/patch_libraries.rb
234
+ - lib/tebako/packager/patch_literals.rb
235
+ - lib/tebako/packager/patch_main.rb
236
+ - lib/tebako/packager/rubygems_patch.rb
237
+ - lib/tebako/packager_lite.rb
238
+ - lib/tebako/ruby_builder.rb
239
+ - lib/tebako/ruby_version.rb
240
+ - lib/tebako/scenario_manager.rb
241
+ - lib/tebako/stripper.rb
242
+ - lib/tebako/version.rb
243
+ - src/tebako-main.cpp
244
+ - tools/.gitattributes
245
+ - tools/.github/workflows/build-containers.yml
246
+ - tools/.github/workflows/lint.yml
247
+ - tools/.github/workflows/test.yml
248
+ - tools/.gitignore
249
+ - tools/README.md
250
+ - tools/ci-scripts/arm-brew-install.sh
251
+ - tools/ci-scripts/arm-brew-setup.sh
252
+ - tools/ci-scripts/level-up.sh
253
+ - tools/ci-scripts/patch-fbthrift.sh
254
+ - tools/ci-scripts/patch-folly.sh
255
+ - tools/ci-scripts/patch-glog.sh
256
+ - tools/ci-scripts/patch-zstd.sh
257
+ - tools/ci-scripts/tools.sh
258
+ - tools/ci-scripts/x86-brew-install.sh
259
+ - tools/ci-scripts/x86-brew-setup.sh
260
+ - tools/cmake-scripts/def-external-project.cmake
261
+ - tools/cmake-scripts/macos-environment.cmake
262
+ - tools/cmake-scripts/msys-environment.cmake
263
+ - tools/cmake-scripts/setup-libarchive.cmake
264
+ - tools/cmake-scripts/setup-libfmt.cmake
265
+ - tools/cmake-scripts/setup-libhowardhinnerdate.cmake
266
+ - tools/cmake-scripts/setup-libutfcpp.cmake
267
+ - tools/cmake-scripts/version.cmake
268
+ - tools/docker/alpine-3.17-dev.Dockerfile
269
+ - tools/docker/tools/tools.sh
270
+ - tools/docker/ubuntu-20.04-dev.Dockerfile
271
+ - tools/dwarfs-test-helper/CMakeLists.txt
272
+ - tools/include/pro-statvfs.h
273
+ - tools/tests/cmake/CMakeLists.txt
274
+ - tools/tests/setup-libfmt/CMakeLists.txt
275
+ - tools/tests/setup-libhowardhinnerdate/CMakeLists.txt
276
+ - tools/tests/setup-librachive/CMakeLists.txt
277
+ - tools/tests/setup-libutfcpp/CMakeLists.txt
278
+ - tools/tests/setup-openssl/CMakeLists.txt
279
+ homepage: https://github.com/RubyEverywhere/tebako
280
+ licenses:
281
+ - BSD-2-Clause
282
+ metadata:
283
+ homepage_uri: https://github.com/RubyEverywhere/tebako
284
+ source_code_uri: https://github.com/RubyEverywhere/tebako
285
+ allowed_push_host: https://rubygems.org
286
+ rdoc_options: []
287
+ require_paths:
288
+ - cmake
289
+ - exe
290
+ - ext
291
+ - include
292
+ - lib
293
+ - resources
294
+ - src
295
+ - tools/ci-scripts
296
+ - tools/cmake-scripts
297
+ - tools/includes
298
+ required_ruby_version: !ruby/object:Gem::Requirement
299
+ requirements:
300
+ - - ">="
301
+ - !ruby/object:Gem::Version
302
+ version: 3.2.0
303
+ required_rubygems_version: !ruby/object:Gem::Requirement
304
+ requirements:
305
+ - - ">="
306
+ - !ruby/object:Gem::Version
307
+ version: '0'
308
+ requirements: []
309
+ rubygems_version: 4.0.13
310
+ specification_version: 4
311
+ summary: Packager for Ruby executables (RubyEverywhere fork of tebako)
312
+ test_files: []