tebako 0.7.3 → 0.8.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.
- checksums.yaml +4 -4
- data/CMakeLists.txt +20 -29
- data/README.adoc +659 -174
- data/common.env +1 -1
- data/exe/tebako-packager +10 -20
- data/lib/tebako/cli.rb +2 -2
- data/lib/tebako/cli_rubies.rb +3 -5
- data/lib/tebako/deploy_helper.rb +18 -5
- data/lib/tebako/packager/pass1.rb +7 -4
- data/lib/tebako/packager/pass2.rb +14 -16
- data/lib/tebako/packager/patch_buildsystem.rb +41 -7
- data/lib/tebako/packager/patch_helpers.rb +8 -4
- data/lib/tebako/packager/patch_libraries.rb +84 -65
- data/lib/tebako/packager/patch_literals.rb +15 -17
- data/lib/tebako/packager.rb +15 -13
- data/lib/tebako/stripper.rb +30 -7
- data/lib/tebako/version.rb +1 -1
- data/src/tebako-main.cpp +7 -0
- data/version.txt +1 -1
- metadata +2 -2
data/lib/tebako/stripper.rb
CHANGED
@@ -28,12 +28,13 @@
|
|
28
28
|
require "fileutils"
|
29
29
|
require "find"
|
30
30
|
|
31
|
+
require_relative "packager/patch_helpers"
|
32
|
+
|
31
33
|
# Tebako - an executable packager
|
32
34
|
module Tebako
|
33
35
|
# Tebako packaging support (stripper)
|
34
36
|
module Stripper
|
35
|
-
DELETE_EXTENSIONS = %w[o lo obj a lib].freeze
|
36
|
-
STRIP_EXTENSIONS = %w[dll so].freeze
|
37
|
+
DELETE_EXTENSIONS = %w[o lo obj a la lib].freeze
|
37
38
|
BIN_FILES = %w[
|
38
39
|
bundle bundler rbs erb gem irb racc racc2y rake rdoc ri y2racc rdbg typeprof
|
39
40
|
].freeze
|
@@ -47,15 +48,29 @@ module Tebako
|
|
47
48
|
# from memfs or not. For debugging purposes it is very handy to have it here
|
48
49
|
def strip(ostype, src_dir)
|
49
50
|
puts " ... stripping the output"
|
50
|
-
strip_bs(
|
51
|
+
strip_bs(src_dir)
|
51
52
|
strip_fi(ostype, src_dir)
|
52
53
|
strip_li(ostype, src_dir)
|
53
54
|
end
|
54
55
|
|
56
|
+
def strip_file(file_in, file_out = nil)
|
57
|
+
params = ["strip", "-S", file_in]
|
58
|
+
params << "-o" << file_out unless file_out.nil?
|
59
|
+
out, st = Open3.capture2e(*params)
|
60
|
+
|
61
|
+
# Some gems (well, libmspack) has bundled extensions for several architectures)
|
62
|
+
# Getting something like:
|
63
|
+
# strip: Unable to recognise the format of the input file
|
64
|
+
# `/tmp/cirrus-ci-build/o/s/lib/ruby/gems/3.1.0/gems/libmspack-0.11.0/ext/x86_64-linux/libmspack.so'
|
65
|
+
# on aarch64
|
66
|
+
|
67
|
+
puts "Warning: could not strip #{file_in}:\n #{out}" unless st.exitstatus.zero?
|
68
|
+
end
|
69
|
+
|
55
70
|
private
|
56
71
|
|
57
72
|
def get_files(ostype)
|
58
|
-
exe_suffix = ostype
|
73
|
+
exe_suffix = Packager::PatchHelpers.exe_suffix(ostype)
|
59
74
|
files = BIN_FILES.flat_map do |f|
|
60
75
|
[f, "#{f}#{CMD_SUFFIX}", "#{f}#{BAT_SUFFIX}"]
|
61
76
|
end
|
@@ -64,7 +79,7 @@ module Tebako
|
|
64
79
|
files
|
65
80
|
end
|
66
81
|
|
67
|
-
def strip_bs(
|
82
|
+
def strip_bs(src_dir)
|
68
83
|
FileUtils.rm_rf([
|
69
84
|
File.join(src_dir, "share"),
|
70
85
|
File.join(src_dir, "include"),
|
@@ -78,17 +93,25 @@ module Tebako
|
|
78
93
|
end
|
79
94
|
|
80
95
|
def strip_li(ostype, src_dir)
|
96
|
+
sext = strip_extensions(ostype)
|
81
97
|
Find.find(src_dir) do |file|
|
82
98
|
next if File.directory?(file)
|
83
99
|
|
84
100
|
extension = File.extname(file).delete_prefix(".").downcase
|
85
101
|
if DELETE_EXTENSIONS.include?(extension)
|
86
102
|
FileUtils.rm(file)
|
87
|
-
elsif
|
88
|
-
|
103
|
+
elsif sext.include?(extension) # && !Packager::PatchHelpers.msys?(ostype)
|
104
|
+
strip_file(file)
|
89
105
|
end
|
90
106
|
end
|
91
107
|
end
|
108
|
+
|
109
|
+
def strip_extensions(ostype)
|
110
|
+
sext = ["so"]
|
111
|
+
sext << "dll" if Packager::PatchHelpers.msys?(ostype)
|
112
|
+
sext << "dylib" << "bundle" if Packager::PatchHelpers.macos?(ostype)
|
113
|
+
sext
|
114
|
+
end
|
92
115
|
end
|
93
116
|
end
|
94
117
|
end
|
data/lib/tebako/version.rb
CHANGED
data/src/tebako-main.cpp
CHANGED
@@ -156,3 +156,10 @@ extern "C" const char* tebako_mount_point(void) {
|
|
156
156
|
extern "C" int tebako_is_running_miniruby(void) {
|
157
157
|
return running_miniruby;
|
158
158
|
}
|
159
|
+
|
160
|
+
#ifdef RB_W32_PRE_33
|
161
|
+
extern "C" ssize_t rb_w32_pread(int /* fd */, void* /* buf */, size_t /* size */, size_t /* offset */)
|
162
|
+
{
|
163
|
+
return -1;
|
164
|
+
}
|
165
|
+
#endif
|
data/version.txt
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.8.0
|
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.
|
4
|
+
version: 0.8.0
|
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-07-
|
11
|
+
date: 2024-07-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|