tebako 0.12.12 → 0.12.14
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 +12 -7
- data/README.adoc +3 -3
- data/common.env +2 -2
- data/lib/tebako/deploy_helper.rb +1 -1
- data/lib/tebako/packager/pass1_patch.rb +1 -1
- data/lib/tebako/packager/pass2_patch.rb +6 -85
- data/lib/tebako/packager/pass2_patch_crt.rb +46 -0
- data/lib/tebako/packager/pass2msys_patch.rb +186 -0
- data/lib/tebako/packager/patch_literals.rb +0 -82
- data/lib/tebako/packager.rb +1 -1
- data/lib/tebako/ruby_version.rb +10 -3
- data/lib/tebako/version.rb +1 -1
- data/tools/.github/workflows/test.yml +26 -0
- data/tools/ci-scripts/patch-folly.sh +2 -0
- data/tools/cmake-scripts/macos-environment.cmake +5 -2
- data/tools/cmake-scripts/setup-libarchive.cmake +8 -3
- data/tools/cmake-scripts/{setup-openssl.cmake → setup-openssl-1.1.1.cmake} +27 -1
- data/tools/dwarfs-test-helper/CMakeLists.txt +34 -0
- data/tools/tests/setup-openssl/CMakeLists.txt +36 -0
- metadata +8 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e5dfbc9c8a17708a202aa333ed09c402b36b6d706f2887c388ff347c894b0aed
|
4
|
+
data.tar.gz: 0ada18f007357af9d5b3669d7978798b3ba75f8e7a33da21db54ef0d5aeb942b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 862754c38a4a4cfaad4efb5d5b8ae17e8e710e4ff6207514dffa9b65f2254300dd545e526c19f3e7af4f716aa5f7c13f13ab75108ae300357d3d2e553f2552c1
|
7
|
+
data.tar.gz: 77a2252f8ee30c8c8ffaa1329f4ada031fc31b9e22e24228886d5a8a59c5e23da8894eea94233e0159f3d08e58ef6d3d7ead9ef25efc290d7ce593de65489400
|
data/CMakeLists.txt
CHANGED
@@ -108,14 +108,15 @@ elseif("${OSTYPE_TXT}" MATCHES "^msys*" OR "${OSTYPE_TXT}" MATCHES "^cygwin*")
|
|
108
108
|
set(RUBY_WITHOUT_EXT "dbm,syslog,pty,gdbm,readline,-test-/*")
|
109
109
|
elseif("${OSTYPE_TXT}" MATCHES "^darwin.*")
|
110
110
|
set(IS_DARWIN ON)
|
111
|
-
if(${RUBY_VER} VERSION_LESS "3.1.0")
|
112
|
-
set(OPENSSL_VER "1.1")
|
113
|
-
else(${RUBY_VER} VERSION_LESS "3.1.0")
|
114
|
-
set(OPENSSL_VER "3")
|
115
|
-
endif(${RUBY_VER} VERSION_LESS "3.1.0")
|
116
|
-
set(BUILD_OPENSSL_ROOT_DIR "${BREW_PREFIX}/opt/openssl@${OPENSSL_VER}")
|
117
111
|
endif()
|
118
112
|
|
113
|
+
if(${RUBY_VER} VERSION_LESS "3.1.0")
|
114
|
+
set(OPENSSL_VER "1.1")
|
115
|
+
else(${RUBY_VER} VERSION_LESS "3.1.0")
|
116
|
+
set(OPENSSL_VER "3")
|
117
|
+
endif(${RUBY_VER} VERSION_LESS "3.1.0")
|
118
|
+
|
119
|
+
|
119
120
|
if(IS_DARWIN)
|
120
121
|
execute_process(
|
121
122
|
COMMAND "sysctl" "-n" "hw.ncpu"
|
@@ -177,7 +178,7 @@ string(CONCAT RUBY_API_VER ${RUBY_VER_BASE} ".0")
|
|
177
178
|
# list(GET LIBDWARFS_WR_VER_COMPONENTS 2 LIBDWARFS_WR_VER_PATCH)
|
178
179
|
# set (LIBDWARFS_WR_VER_M ${LIBDWARFS_WR_VER_MAJOR}.${LIBDWARFS_WR_VER_MINOR}.${LIBDWARFS_WR_VER_PATCH})
|
179
180
|
#else(DWARFS_PRELOAD)
|
180
|
-
def_ext_prj_g(DWARFS_WR "v0.9.
|
181
|
+
def_ext_prj_g(DWARFS_WR "v0.9.6")
|
181
182
|
#endif(DWARFS_PRELOAD)
|
182
183
|
|
183
184
|
def_ext_prj_g(PATCHELF "65e14792061c298f1d2bc44becd48a10cbf0bc81")
|
@@ -288,6 +289,7 @@ else(DWARFS_PRELOAD)
|
|
288
289
|
-DWITH_ASAN:BOOL=OFF
|
289
290
|
-DWITH_COVERAGE:BOOL=OFF
|
290
291
|
-DTEBAKO_BUILD_SCOPE=MKD
|
292
|
+
-DOPENSSL_VERSION=${OPENSSL_VER}
|
291
293
|
-DRB_W32=${RB_W32}
|
292
294
|
-GNinja
|
293
295
|
BUILD_BYPRODUCTS ${__LIBDWARFS_WR}
|
@@ -335,6 +337,9 @@ if(IS_DARWIN)
|
|
335
337
|
else(IS_DARWIN)
|
336
338
|
if(IS_MUSL)
|
337
339
|
string(CONCAT RUBY_C_FLAGS ${RUBY_C_FLAGS} " -DENABLE_PATH_CHECK=0")
|
340
|
+
if("${OPENSSL_VER}" EQUAL "1.1")
|
341
|
+
set(OPENSSL_RUBY_OPTION "--with-openssl-dir=${DEPS}")
|
342
|
+
endif("${OPENSSL_VER}" EQUAL "1.1")
|
338
343
|
endif(IS_MUSL)
|
339
344
|
|
340
345
|
if(RB_W32)
|
data/README.adoc
CHANGED
@@ -104,7 +104,7 @@ higher.
|
|
104
104
|
| 2.7.8 | Linux, macOS
|
105
105
|
| 3.0.7 | Linux, macOS
|
106
106
|
| 3.1.6 | Linux, macOS, Windows
|
107
|
-
| 3.2.{4,5,6} | Linux, macOS, Windows
|
107
|
+
| 3.2.{4,5,6,7} | Linux, macOS, Windows
|
108
108
|
| 3.3.{3,4,5,6,7} | Linux, macOS, Windows
|
109
109
|
| 3.4.1 | Linux, macOS, Windows
|
110
110
|
|
@@ -781,7 +781,7 @@ the Tebako root folder (see details: <<root-folder-selection>>)
|
|
781
781
|
|
782
782
|
`Ruby`::
|
783
783
|
this parameter defines Ruby version that will be packaged (optional, defaults to
|
784
|
-
`3.
|
784
|
+
`3.3.7`)
|
785
785
|
|
786
786
|
`project-root`::
|
787
787
|
a folder at the host source file system where project files are located.
|
@@ -1092,7 +1092,7 @@ specified in Gemfile.
|
|
1092
1092
|
| The version specified by `--Ruby` option if it is supported and satisfies Gemfile requirement; error otherwise
|
1093
1093
|
| The minimal supported Ruby version that satisfies Gemfile requirement; error otherwise
|
1094
1094
|
| *Not specified*
|
1095
|
-
| The version specified by `--Ruby` option if it is supported; error otherwise | Default Tebako Ruby version (3.
|
1095
|
+
| The version specified by `--Ruby` option if it is supported; error otherwise | Default Tebako Ruby version (3.3.7).
|
1096
1096
|
|
1097
1097
|
|===
|
1098
1098
|
|
data/common.env
CHANGED
data/lib/tebako/deploy_helper.rb
CHANGED
@@ -68,7 +68,7 @@ module Tebako
|
|
68
68
|
def deploy
|
69
69
|
BuildHelpers.with_env(deploy_env) do
|
70
70
|
update_rubygems
|
71
|
-
system("#{gem_command} env") if @verbose
|
71
|
+
system("#{@gem_command} env") if @verbose
|
72
72
|
install_gem("tebako-runtime")
|
73
73
|
install_gem("bundler", @bundler_version) if @needs_bundler
|
74
74
|
deploy_solution
|
@@ -236,7 +236,7 @@ module Tebako
|
|
236
236
|
def msys_patches
|
237
237
|
pm = msys_base_patches
|
238
238
|
|
239
|
-
if @ruby_ver.
|
239
|
+
if @ruby_ver.ruby3x7?
|
240
240
|
# ....................................................
|
241
241
|
# RUBY_EXTERN shall be extern for static build but is set to __declspec(dllimport) for encodin libarary
|
242
242
|
pm.store("include/ruby/onigmo.h", INCLUDE_RUBY_ONIGMO_H_PATCH)
|
@@ -35,16 +35,6 @@ require_relative "patch_buildsystem"
|
|
35
35
|
module Tebako
|
36
36
|
# Packager module
|
37
37
|
module Packager
|
38
|
-
class << self
|
39
|
-
def crt_pass2_patch(ostype, deps_lib_dir, ruby_ver)
|
40
|
-
scmb = ScenarioManagerBase.new(ostype)
|
41
|
-
if scmb.msys?
|
42
|
-
Pass2MSysPatch.new(ostype, deps_lib_dir, ruby_ver)
|
43
|
-
else
|
44
|
-
Pass2NonMSysPatch.new(ostype, deps_lib_dir, ruby_ver)
|
45
|
-
end
|
46
|
-
end
|
47
|
-
end
|
48
38
|
# Ruby patching definitions (pass2)
|
49
39
|
class Pass2Patch < Patch
|
50
40
|
def initialize(ostype, deps_lib_dir, ruby_ver)
|
@@ -62,6 +52,12 @@ module Tebako
|
|
62
52
|
pm
|
63
53
|
end
|
64
54
|
|
55
|
+
protected
|
56
|
+
|
57
|
+
def io_c_patch
|
58
|
+
PatchHelpers.patch_c_file_pre("/* define system APIs */")
|
59
|
+
end
|
60
|
+
|
65
61
|
private
|
66
62
|
|
67
63
|
include Tebako::Packager::PatchBuildsystem
|
@@ -88,17 +84,6 @@ module Tebako
|
|
88
84
|
patch
|
89
85
|
end
|
90
86
|
|
91
|
-
def io_c_msys_patch
|
92
|
-
patch = @ruby_ver.ruby32? ? IO_C_MSYS_PATCH : IO_C_MSYS_PATCH_PRE_32
|
93
|
-
patch.merge(IO_C_MSYS_BASE_PATCH)
|
94
|
-
end
|
95
|
-
|
96
|
-
def io_c_patch
|
97
|
-
patch = PatchHelpers.patch_c_file_pre("/* define system APIs */")
|
98
|
-
patch.merge!(io_c_msys_patch) if @scmb.msys?
|
99
|
-
patch
|
100
|
-
end
|
101
|
-
|
102
87
|
def util_c_patch
|
103
88
|
if @ruby_ver.ruby31?
|
104
89
|
PatchHelpers.patch_c_file_post("#endif /* !HAVE_GNU_QSORT_R */")
|
@@ -140,69 +125,6 @@ module Tebako
|
|
140
125
|
end
|
141
126
|
end
|
142
127
|
|
143
|
-
# Msys Pass2 patches
|
144
|
-
class Pass2MSysPatch < Pass2Patch
|
145
|
-
def patch_map
|
146
|
-
pm = super
|
147
|
-
pm.merge!(msys_patches)
|
148
|
-
pm.store("config.status", get_config_status_patch(@ostype, @deps_lib_dir, @ruby_ver))
|
149
|
-
pm
|
150
|
-
end
|
151
|
-
|
152
|
-
private
|
153
|
-
|
154
|
-
include Tebako::Packager::PatchBuildsystem
|
155
|
-
include Tebako::Packager::PatchLiterals
|
156
|
-
|
157
|
-
# Other MSYS (GNUMakefile) specific patches
|
158
|
-
# - The same issue with libraries as for Makefile above
|
159
|
-
# - 'Kill' ruby.exp regeneration on pass2
|
160
|
-
# since we want to use output from pass1 for implib generation
|
161
|
-
# [VERY UGLY HACK]
|
162
|
-
# - Introduce LIBRUBY dependency on static extensions
|
163
|
-
# This is an addition to COMMON_MK_PATCH specified above
|
164
|
-
def gnumakefile_in_patch_p2 # rubocop:disable Metrics/MethodLength
|
165
|
-
objext = @ruby_ver.ruby32? ? "$(OBJEXT)" : "@OBJEXT@"
|
166
|
-
|
167
|
-
{
|
168
|
-
"$(Q) $(DLLWRAP) \\" => GNUMAKEFILE_IN_DLLTOOL_SUBST,
|
169
|
-
|
170
|
-
"--output-exp=$(RUBY_EXP) \\" => "# tebako patched --output-exp=$(RUBY_EXP) \\",
|
171
|
-
|
172
|
-
"--export-all $(LIBRUBY_A) $(LIBS) -o $(PROGRAM)" =>
|
173
|
-
"# tebako patched --export-all $(LIBRUBY_A) $(LIBS) -o $(PROGRAM)",
|
174
|
-
|
175
|
-
"@rm -f $(PROGRAM)" => "# tebako patched @rm -f $(PROGRAM)",
|
176
|
-
|
177
|
-
" $(Q) $(LDSHARED) $(DLDFLAGS) $(OBJS) dmyext.o $(SOLIBS) -o $(PROGRAM)" =>
|
178
|
-
"# tebako patched $(Q) $(LDSHARED) $(DLDFLAGS) $(OBJS) dmyext.o $(SOLIBS) -o $(PROGRAM)",
|
179
|
-
|
180
|
-
"$(WPROGRAM): $(RUBYW_INSTALL_NAME).res.#{objext}" =>
|
181
|
-
"$(WPROGRAM): $(RUBYW_INSTALL_NAME).res.#{objext} $(WINMAINOBJ) # tebako patched",
|
182
|
-
|
183
|
-
"RUBYDEF = $(DLL_BASE_NAME).def" => GNUMAKEFILE_IN_WINMAIN_SUBST,
|
184
|
-
|
185
|
-
"$(MAINOBJ) $(EXTOBJS) $(LIBRUBYARG) $(LIBS) -o $@" =>
|
186
|
-
"$(WINMAINOBJ) $(EXTOBJS) $(LIBRUBYARG) $(MAINLIBS) -o $@ # tebako patched",
|
187
|
-
|
188
|
-
"$(RUBY_EXP): $(LIBRUBY_A)" => "dummy.exp: $(LIBRUBY_A) # tebako patched",
|
189
|
-
|
190
|
-
"$(PROGRAM): $(RUBY_INSTALL_NAME).res.#{objext}" =>
|
191
|
-
"$(PROGRAM): $(RUBY_INSTALL_NAME).res.#{objext} $(LIBRUBY_A) # tebako patched\n" \
|
192
|
-
"$(LIBRUBY_A): $(LIBRUBY_A_OBJS) $(INITOBJS) # tebako patched\n"
|
193
|
-
}
|
194
|
-
end
|
195
|
-
|
196
|
-
def msys_patches
|
197
|
-
{
|
198
|
-
"cygwin/GNUmakefile.in" => gnumakefile_in_patch_p2,
|
199
|
-
"ruby.c" => RUBY_C_MSYS_PATCHES,
|
200
|
-
"win32/file.c" => WIN32_FILE_C_MSYS_PATCHES,
|
201
|
-
"win32/win32.c" => WIN32_WIN32_C_MSYS_PATCHES
|
202
|
-
}
|
203
|
-
end
|
204
|
-
end
|
205
|
-
|
206
128
|
# Non-msys Pass2 patches
|
207
129
|
class Pass2NonMSysPatch < Pass2Patch
|
208
130
|
def patch_map
|
@@ -212,7 +134,6 @@ module Tebako
|
|
212
134
|
pm
|
213
135
|
end
|
214
136
|
|
215
|
-
include Tebako::Packager::PatchBuildsystem
|
216
137
|
include Tebako::Packager::PatchLiterals
|
217
138
|
end
|
218
139
|
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Copyright (c) 2021-2025 [Ribose Inc](https://www.ribose.com).
|
4
|
+
# All rights reserved.
|
5
|
+
# This file is a part of tebako
|
6
|
+
#
|
7
|
+
# Redistribution and use in source and binary forms, with or without
|
8
|
+
# modification, are permitted provided that the following conditions
|
9
|
+
# are met:
|
10
|
+
# 1. Redistributions of source code must retain the above copyright
|
11
|
+
# notice, this list of conditions and the following disclaimer.
|
12
|
+
# 2. Redistributions in binary form must reproduce the above copyright
|
13
|
+
# notice, this list of conditions and the following disclaimer in the
|
14
|
+
# documentation and/or other materials provided with the distribution.
|
15
|
+
#
|
16
|
+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
17
|
+
# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
18
|
+
# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
19
|
+
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS
|
20
|
+
# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
21
|
+
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
22
|
+
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
23
|
+
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
24
|
+
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
25
|
+
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
26
|
+
# POSSIBILITY OF SUCH DAMAGE.
|
27
|
+
|
28
|
+
require_relative "pass2_patch"
|
29
|
+
require_relative "pass2msys_patch"
|
30
|
+
|
31
|
+
# Tebako - an executable packager
|
32
|
+
module Tebako
|
33
|
+
# Packager module
|
34
|
+
module Packager
|
35
|
+
class << self
|
36
|
+
def crt_pass2_patch(ostype, deps_lib_dir, ruby_ver)
|
37
|
+
scmb = ScenarioManagerBase.new(ostype)
|
38
|
+
if scmb.msys?
|
39
|
+
Pass2MSysPatch.new(ostype, deps_lib_dir, ruby_ver)
|
40
|
+
else
|
41
|
+
Pass2NonMSysPatch.new(ostype, deps_lib_dir, ruby_ver)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,186 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Copyright (c) 2021-2025 [Ribose Inc](https://www.ribose.com).
|
4
|
+
# All rights reserved.
|
5
|
+
# This file is a part of tebako
|
6
|
+
#
|
7
|
+
# Redistribution and use in source and binary forms, with or without
|
8
|
+
# modification, are permitted provided that the following conditions
|
9
|
+
# are met:
|
10
|
+
# 1. Redistributions of source code must retain the above copyright
|
11
|
+
# notice, this list of conditions and the following disclaimer.
|
12
|
+
# 2. Redistributions in binary form must reproduce the above copyright
|
13
|
+
# notice, this list of conditions and the following disclaimer in the
|
14
|
+
# documentation and/or other materials provided with the distribution.
|
15
|
+
#
|
16
|
+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
17
|
+
# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
18
|
+
# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
19
|
+
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS
|
20
|
+
# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
21
|
+
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
22
|
+
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
23
|
+
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
24
|
+
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
25
|
+
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
26
|
+
# POSSIBILITY OF SUCH DAMAGE.
|
27
|
+
|
28
|
+
require_relative "pass2_patch"
|
29
|
+
require_relative "patch_helpers"
|
30
|
+
require_relative "patch_literals"
|
31
|
+
|
32
|
+
# Tebako - an executable packager
|
33
|
+
module Tebako
|
34
|
+
# Packager module
|
35
|
+
module Packager
|
36
|
+
IO_C_MSYS_BASE_PATCH = {
|
37
|
+
"#define open rb_w32_uopen" => "#define open(p, f, m) tebako_open(3, (p), (f), (m))"
|
38
|
+
}.freeze
|
39
|
+
|
40
|
+
IO_C_MSYS_PATCH_PRE_32 = {
|
41
|
+
"(rb_w32_io_cancelable_p((fptr)->fd) ? Qnil : rb_io_wait(fptr->self, RB_INT2NUM(RUBY_IO_READABLE), Qnil))" =>
|
42
|
+
"((is_tebako_file_descriptor((fptr)->fd) || rb_w32_io_cancelable_p((fptr)->fd)) ? \\\n" \
|
43
|
+
"Qnil : rb_io_wait(fptr->self, RB_INT2NUM(RUBY_IO_READABLE), Qnil))"
|
44
|
+
}.freeze
|
45
|
+
|
46
|
+
IO_C_MSYS_PATCH = {
|
47
|
+
"(rb_w32_io_cancelable_p((fptr)->fd) ? Qnil : rb_io_wait(fptr->self, " \
|
48
|
+
"RB_INT2NUM(RUBY_IO_READABLE), RUBY_IO_TIMEOUT_DEFAULT))" =>
|
49
|
+
"((is_tebako_file_descriptor((fptr)->fd) || rb_w32_io_cancelable_p((fptr)->fd)) ? \\\n" \
|
50
|
+
"Qnil : rb_io_wait(fptr->self, RB_INT2NUM(RUBY_IO_READABLE), RUBY_IO_TIMEOUT_DEFAULT))"
|
51
|
+
}.freeze
|
52
|
+
|
53
|
+
RUBY_C_MSYS_PATH_SUBST = <<~SUBST
|
54
|
+
/* -- Start of tebako patch -- */
|
55
|
+
VALUE path = within_tebako_memfs(paths) ?
|
56
|
+
rb_str_new_cstr(paths) :
|
57
|
+
RUBY_RELATIVE(paths, len);
|
58
|
+
/* -- End of tebako patch -- */
|
59
|
+
SUBST
|
60
|
+
|
61
|
+
RUBY_C_MSYS_PATCHES = {
|
62
|
+
"#ifndef MAXPATHLEN" => "#{PatchLiterals::C_FILE_SUBST_LESS}\n#ifndef MAXPATHLEN",
|
63
|
+
"VALUE path = RUBY_RELATIVE(paths, len);" => RUBY_C_MSYS_PATH_SUBST
|
64
|
+
}.freeze
|
65
|
+
|
66
|
+
WIN32_FILE_C_MSYS_SUBST = <<~SUBST
|
67
|
+
/* -- Start of tebako patch -- */
|
68
|
+
if (tebako_file_load_ok(path)) return ret;
|
69
|
+
/* -- End of tebako patch -- */
|
70
|
+
wpath = mbstr_to_wstr(CP_UTF8, path, -1, &len);
|
71
|
+
SUBST
|
72
|
+
|
73
|
+
WIN32_FILE_C_MSYS_PATCHES = {
|
74
|
+
"#ifndef INVALID_FILE_ATTRIBUTES" => "#{PatchLiterals::C_FILE_SUBST_LESS}\n#ifndef INVALID_FILE_ATTRIBUTES",
|
75
|
+
"wpath = mbstr_to_wstr(CP_UTF8, path, -1, &len);" => WIN32_FILE_C_MSYS_SUBST
|
76
|
+
}.freeze
|
77
|
+
|
78
|
+
WIN32_WIN32_C_MSYS_SUBST = <<~SUBST
|
79
|
+
/* -- Start of tebako patch -- */
|
80
|
+
if (is_tebako_cwd()) {
|
81
|
+
char* tebako_cwd = tebako_getcwd(NULL,0);
|
82
|
+
if (tebako_cwd == NULL) {
|
83
|
+
errno = ENOMEM;
|
84
|
+
return NULL;
|
85
|
+
}
|
86
|
+
len = strlen(tebako_cwd) + 1;
|
87
|
+
|
88
|
+
if (buffer) {
|
89
|
+
if (size < len) {
|
90
|
+
free(tebako_cwd);
|
91
|
+
errno = ERANGE;
|
92
|
+
return NULL;
|
93
|
+
}
|
94
|
+
}
|
95
|
+
else {
|
96
|
+
buffer = (*alloc)(len, arg);
|
97
|
+
if (!buffer) {
|
98
|
+
free(tebako_cwd);
|
99
|
+
errno = ENOMEM;
|
100
|
+
return NULL;
|
101
|
+
}
|
102
|
+
}
|
103
|
+
translate_char(tebako_cwd, (char)0x5c, '/', CP_UTF8);
|
104
|
+
strcpy(buffer, tebako_cwd);
|
105
|
+
free(tebako_cwd);
|
106
|
+
return buffer;
|
107
|
+
}
|
108
|
+
/* -- End of tebako patch -- */
|
109
|
+
|
110
|
+
len = GetCurrentDirectoryW(0, NULL);
|
111
|
+
SUBST
|
112
|
+
|
113
|
+
WIN32_WIN32_C_MSYS_PATCHES = {
|
114
|
+
"#if defined _MSC_VER && _MSC_VER <= 1200" =>
|
115
|
+
"#{PatchLiterals::C_FILE_SUBST_LESS}\n#if defined _MSC_VER && _MSC_VER <= 1200",
|
116
|
+
"len = GetCurrentDirectoryW(0, NULL);" => WIN32_WIN32_C_MSYS_SUBST
|
117
|
+
}.freeze
|
118
|
+
|
119
|
+
# Msys Pass2 patches
|
120
|
+
class Pass2MSysPatch < Pass2Patch
|
121
|
+
def patch_map
|
122
|
+
pm = super
|
123
|
+
pm.merge!(msys_patches)
|
124
|
+
pm.store("config.status", get_config_status_patch(@ostype, @deps_lib_dir, @ruby_ver))
|
125
|
+
pm
|
126
|
+
end
|
127
|
+
|
128
|
+
private
|
129
|
+
|
130
|
+
# Other MSYS (GNUMakefile) specific patches
|
131
|
+
# - The same issue with libraries as for Makefile above
|
132
|
+
# - 'Kill' ruby.exp regeneration on pass2
|
133
|
+
# since we want to use output from pass1 for implib generation
|
134
|
+
# [VERY UGLY HACK]
|
135
|
+
# - Introduce LIBRUBY dependency on static extensions
|
136
|
+
# This is an addition to COMMON_MK_PATCH specified above
|
137
|
+
def gnumakefile_in_patch_p2 # rubocop:disable Metrics/MethodLength
|
138
|
+
objext = @ruby_ver.ruby32? ? "$(OBJEXT)" : "@OBJEXT@"
|
139
|
+
|
140
|
+
{
|
141
|
+
"$(Q) $(DLLWRAP) \\" => GNUMAKEFILE_IN_DLLTOOL_SUBST,
|
142
|
+
|
143
|
+
"--output-exp=$(RUBY_EXP) \\" => "# tebako patched --output-exp=$(RUBY_EXP) \\",
|
144
|
+
|
145
|
+
"--export-all $(LIBRUBY_A) $(LIBS) -o $(PROGRAM)" =>
|
146
|
+
"# tebako patched --export-all $(LIBRUBY_A) $(LIBS) -o $(PROGRAM)",
|
147
|
+
|
148
|
+
"@rm -f $(PROGRAM)" => "# tebako patched @rm -f $(PROGRAM)",
|
149
|
+
|
150
|
+
" $(Q) $(LDSHARED) $(DLDFLAGS) $(OBJS) dmyext.o $(SOLIBS) -o $(PROGRAM)" =>
|
151
|
+
"# tebako patched $(Q) $(LDSHARED) $(DLDFLAGS) $(OBJS) dmyext.o $(SOLIBS) -o $(PROGRAM)",
|
152
|
+
|
153
|
+
"$(WPROGRAM): $(RUBYW_INSTALL_NAME).res.#{objext}" =>
|
154
|
+
"$(WPROGRAM): $(RUBYW_INSTALL_NAME).res.#{objext} $(WINMAINOBJ) # tebako patched",
|
155
|
+
|
156
|
+
"RUBYDEF = $(DLL_BASE_NAME).def" => GNUMAKEFILE_IN_WINMAIN_SUBST,
|
157
|
+
|
158
|
+
"$(MAINOBJ) $(EXTOBJS) $(LIBRUBYARG) $(LIBS) -o $@" =>
|
159
|
+
"$(WINMAINOBJ) $(EXTOBJS) $(LIBRUBYARG) $(MAINLIBS) -o $@ # tebako patched",
|
160
|
+
|
161
|
+
"$(RUBY_EXP): $(LIBRUBY_A)" => "dummy.exp: $(LIBRUBY_A) # tebako patched",
|
162
|
+
|
163
|
+
"$(PROGRAM): $(RUBY_INSTALL_NAME).res.#{objext}" =>
|
164
|
+
"$(PROGRAM): $(RUBY_INSTALL_NAME).res.#{objext} $(LIBRUBY_A) # tebako patched\n" \
|
165
|
+
"$(LIBRUBY_A): $(LIBRUBY_A_OBJS) $(INITOBJS) # tebako patched\n"
|
166
|
+
}
|
167
|
+
end
|
168
|
+
|
169
|
+
def io_c_patch
|
170
|
+
patch = super
|
171
|
+
patch.merge!(@ruby_ver.ruby32? ? IO_C_MSYS_PATCH : IO_C_MSYS_PATCH_PRE_32)
|
172
|
+
patch.merge!(IO_C_MSYS_BASE_PATCH)
|
173
|
+
patch
|
174
|
+
end
|
175
|
+
|
176
|
+
def msys_patches
|
177
|
+
{
|
178
|
+
"cygwin/GNUmakefile.in" => gnumakefile_in_patch_p2,
|
179
|
+
"ruby.c" => RUBY_C_MSYS_PATCHES,
|
180
|
+
"win32/file.c" => WIN32_FILE_C_MSYS_PATCHES,
|
181
|
+
"win32/win32.c" => WIN32_WIN32_C_MSYS_PATCHES
|
182
|
+
}
|
183
|
+
end
|
184
|
+
end
|
185
|
+
end
|
186
|
+
end
|
@@ -220,23 +220,6 @@ module Tebako
|
|
220
220
|
flags = fcntl(fd, F_GETFD); /* should not fail except EBADF. */
|
221
221
|
SUBST
|
222
222
|
|
223
|
-
IO_C_MSYS_BASE_PATCH = {
|
224
|
-
"#define open rb_w32_uopen" => "#define open(p, f, m) tebako_open(3, (p), (f), (m))"
|
225
|
-
}.freeze
|
226
|
-
|
227
|
-
IO_C_MSYS_PATCH_PRE_32 = {
|
228
|
-
"(rb_w32_io_cancelable_p((fptr)->fd) ? Qnil : rb_io_wait(fptr->self, RB_INT2NUM(RUBY_IO_READABLE), Qnil))" =>
|
229
|
-
"((is_tebako_file_descriptor((fptr)->fd) || rb_w32_io_cancelable_p((fptr)->fd)) ? \\\n" \
|
230
|
-
"Qnil : rb_io_wait(fptr->self, RB_INT2NUM(RUBY_IO_READABLE), Qnil))"
|
231
|
-
}.freeze
|
232
|
-
|
233
|
-
IO_C_MSYS_PATCH = {
|
234
|
-
"(rb_w32_io_cancelable_p((fptr)->fd) ? Qnil : rb_io_wait(fptr->self, " \
|
235
|
-
"RB_INT2NUM(RUBY_IO_READABLE), RUBY_IO_TIMEOUT_DEFAULT))" =>
|
236
|
-
"((is_tebako_file_descriptor((fptr)->fd) || rb_w32_io_cancelable_p((fptr)->fd)) ? \\\n" \
|
237
|
-
"Qnil : rb_io_wait(fptr->self, RB_INT2NUM(RUBY_IO_READABLE), RUBY_IO_TIMEOUT_DEFAULT))"
|
238
|
-
}.freeze
|
239
|
-
|
240
223
|
FILE_C_MSYS_SUBST = <<~SUBST
|
241
224
|
/* -- Start of tebako patch -- */
|
242
225
|
if (is_tebako_file_descriptor((fptr)->fd)) return ENOTSUP;
|
@@ -248,71 +231,6 @@ module Tebako
|
|
248
231
|
"while ((int)rb_thread_io_blocking_region(rb_thread_flock, op, fptr->fd) < 0) {" => FILE_C_MSYS_SUBST
|
249
232
|
}.freeze
|
250
233
|
|
251
|
-
RUBY_C_MSYS_PATH_SUBST = <<~SUBST
|
252
|
-
/* -- Start of tebako patch -- */
|
253
|
-
VALUE path = within_tebako_memfs(paths) ?
|
254
|
-
rb_str_new_cstr(paths) :
|
255
|
-
RUBY_RELATIVE(paths, len);
|
256
|
-
/* -- End of tebako patch -- */
|
257
|
-
SUBST
|
258
|
-
|
259
|
-
RUBY_C_MSYS_PATCHES = {
|
260
|
-
"#ifndef MAXPATHLEN" => "#{C_FILE_SUBST_LESS}\n#ifndef MAXPATHLEN",
|
261
|
-
"VALUE path = RUBY_RELATIVE(paths, len);" => RUBY_C_MSYS_PATH_SUBST
|
262
|
-
}.freeze
|
263
|
-
|
264
|
-
WIN32_FILE_C_MSYS_SUBST = <<~SUBST
|
265
|
-
/* -- Start of tebako patch -- */
|
266
|
-
if (tebako_file_load_ok(path)) return ret;
|
267
|
-
/* -- End of tebako patch -- */
|
268
|
-
wpath = mbstr_to_wstr(CP_UTF8, path, -1, &len);
|
269
|
-
SUBST
|
270
|
-
|
271
|
-
WIN32_FILE_C_MSYS_PATCHES = {
|
272
|
-
"#ifndef INVALID_FILE_ATTRIBUTES" => "#{C_FILE_SUBST_LESS}\n#ifndef INVALID_FILE_ATTRIBUTES",
|
273
|
-
"wpath = mbstr_to_wstr(CP_UTF8, path, -1, &len);" => WIN32_FILE_C_MSYS_SUBST
|
274
|
-
}.freeze
|
275
|
-
|
276
|
-
WIN32_WIN32_C_MSYS_SUBST = <<~SUBST
|
277
|
-
/* -- Start of tebako patch -- */
|
278
|
-
if (is_tebako_cwd()) {
|
279
|
-
char* tebako_cwd = tebako_getcwd(NULL,0);
|
280
|
-
if (tebako_cwd == NULL) {
|
281
|
-
errno = ENOMEM;
|
282
|
-
return NULL;
|
283
|
-
}
|
284
|
-
len = strlen(tebako_cwd) + 1;
|
285
|
-
|
286
|
-
if (buffer) {
|
287
|
-
if (size < len) {
|
288
|
-
free(tebako_cwd);
|
289
|
-
errno = ERANGE;
|
290
|
-
return NULL;
|
291
|
-
}
|
292
|
-
}
|
293
|
-
else {
|
294
|
-
buffer = (*alloc)(len, arg);
|
295
|
-
if (!buffer) {
|
296
|
-
free(tebako_cwd);
|
297
|
-
errno = ENOMEM;
|
298
|
-
return NULL;
|
299
|
-
}
|
300
|
-
}
|
301
|
-
translate_char(tebako_cwd, (char)0x5c, '/', CP_UTF8);
|
302
|
-
strcpy(buffer, tebako_cwd);
|
303
|
-
free(tebako_cwd);
|
304
|
-
return buffer;
|
305
|
-
}
|
306
|
-
/* -- End of tebako patch -- */
|
307
|
-
|
308
|
-
len = GetCurrentDirectoryW(0, NULL);
|
309
|
-
SUBST
|
310
|
-
|
311
|
-
WIN32_WIN32_C_MSYS_PATCHES = {
|
312
|
-
"#if defined _MSC_VER && _MSC_VER <= 1200" => "#{C_FILE_SUBST_LESS}\n#if defined _MSC_VER && _MSC_VER <= 1200",
|
313
|
-
"len = GetCurrentDirectoryW(0, NULL);" => WIN32_WIN32_C_MSYS_SUBST
|
314
|
-
}.freeze
|
315
|
-
|
316
234
|
LINUX_PATCHES = {
|
317
235
|
"ext/extmk.rb" => {
|
318
236
|
"mf.macro \"EXTLIBS\", $extlibs" => "# mf.macro \"EXTLIBS\", $extlibs tebako patched"
|
data/lib/tebako/packager.rb
CHANGED
@@ -35,7 +35,7 @@ require_relative "ruby_builder"
|
|
35
35
|
require_relative "stripper"
|
36
36
|
require_relative "packager/pass1_patch"
|
37
37
|
require_relative "packager/pass1a_patch"
|
38
|
-
require_relative "packager/
|
38
|
+
require_relative "packager/pass2_patch_crt"
|
39
39
|
require_relative "packager/patch_helpers"
|
40
40
|
|
41
41
|
# Tebako - an executable packager
|
data/lib/tebako/ruby_version.rb
CHANGED
@@ -39,6 +39,7 @@ module Tebako
|
|
39
39
|
"3.2.4" => "c72b3c5c30482dca18b0f868c9075f3f47d8168eaf626d4e682ce5b59c858692",
|
40
40
|
"3.2.5" => "ef0610b498f60fb5cfd77b51adb3c10f4ca8ed9a17cb87c61e5bea314ac34a16",
|
41
41
|
"3.2.6" => "d9cb65ecdf3f18669639f2638b63379ed6fbb17d93ae4e726d4eb2bf68a48370",
|
42
|
+
"3.2.7" => "8488fa620ff0333c16d437f2b890bba3b67f8745fdecb1472568a6114aad9741",
|
42
43
|
"3.3.3" => "83c05b2177ee9c335b631b29b8c077b4770166d02fa527f3a9f6a40d13f3cce2",
|
43
44
|
"3.3.4" => "fe6a30f97d54e029768f2ddf4923699c416cdbc3a6e96db3e2d5716c7db96a34",
|
44
45
|
"3.3.5" => "3781a3504222c2f26cb4b9eb9c1a12dbf4944d366ce24a9ff8cf99ecbce75196",
|
@@ -48,7 +49,7 @@ module Tebako
|
|
48
49
|
}.freeze
|
49
50
|
|
50
51
|
MIN_RUBY_VERSION_WINDOWS = "3.1.6"
|
51
|
-
DEFAULT_RUBY_VERSION = "3.
|
52
|
+
DEFAULT_RUBY_VERSION = "3.3.7"
|
52
53
|
|
53
54
|
def initialize(ruby_version)
|
54
55
|
@ruby_version = ruby_version.nil? ? DEFAULT_RUBY_VERSION : ruby_version
|
@@ -90,8 +91,14 @@ module Tebako
|
|
90
91
|
@ruby33 ||= ruby3x? && @ruby_version[2].to_i >= 3
|
91
92
|
end
|
92
93
|
|
93
|
-
def
|
94
|
-
@
|
94
|
+
def ruby33only?
|
95
|
+
@ruby33only ||= ruby3x? && @ruby_version[2] == "3"
|
96
|
+
end
|
97
|
+
|
98
|
+
def ruby3x7?
|
99
|
+
@ruby3x7 ||= ruby34? ||
|
100
|
+
(ruby33only? && @ruby_version[4].to_i >= 7) ||
|
101
|
+
(ruby32only? && @ruby_version[4].to_i >= 7)
|
95
102
|
end
|
96
103
|
|
97
104
|
def ruby34?
|
data/lib/tebako/version.rb
CHANGED
@@ -182,3 +182,29 @@ jobs:
|
|
182
182
|
|
183
183
|
- name: Run CMake test
|
184
184
|
run: cmake -B test.build -S tests/cmake
|
185
|
+
|
186
|
+
test-setup-openssl-alpine:
|
187
|
+
name: test openssl 1.1.1 setup on alpine
|
188
|
+
runs-on: ubuntu-latest
|
189
|
+
container:
|
190
|
+
image: alpine:3.17
|
191
|
+
|
192
|
+
steps:
|
193
|
+
- name: Install packages
|
194
|
+
run: |
|
195
|
+
apk --no-cache --upgrade add git bash cmake make build-base autoconf binutils-dev linux-headers
|
196
|
+
git config --global --add safe.directory $PWD
|
197
|
+
|
198
|
+
- name: Checkout
|
199
|
+
uses: actions/checkout@v4
|
200
|
+
|
201
|
+
- name: Run cmake script
|
202
|
+
run: |
|
203
|
+
cmake -B build/setup-openssl tests/setup-openssl
|
204
|
+
cmake --build build/setup-openssl
|
205
|
+
|
206
|
+
- name: Test
|
207
|
+
run: |
|
208
|
+
set -o errexit -o pipefail -o noclobber -o nounset
|
209
|
+
v=$(build/setup-openssl/deps/bin/openssl version)
|
210
|
+
[ "$v" = "OpenSSL 1.1.1w 11 Sep 2023" ]
|
@@ -499,6 +499,8 @@ EOM
|
|
499
499
|
defined_msc_ver_to_win32 "$1/folly/external/farmhash/farmhash.cpp"
|
500
500
|
defined_msc_ver_to_win32 "$1/folly/detail/IPAddressSource.h"
|
501
501
|
defined_msc_ver_to_win32 "$1/folly/portability/Sockets.cpp"
|
502
|
+
defined_win32_to_msc_ver "$1/folly/portability/Sched.h"
|
503
|
+
defined_win32_to_msc_ver "$1/folly/portability/Sched.cpp"
|
502
504
|
|
503
505
|
defined_n_win32_to_msc_ver "$1/folly/portability/Dirent.h"
|
504
506
|
defined_win32_to_msc_ver "$1/folly/portability/Dirent.cpp"
|
@@ -55,7 +55,10 @@ if (CMAKE_HOST_SYSTEM_NAME MATCHES "Darwin")
|
|
55
55
|
|
56
56
|
message(STATUS "Using brew environment at ${BREW_PREFIX}")
|
57
57
|
# https://github.com/actions/virtual-environments/blob/main/images/macos/macos-10.15-Readme.me
|
58
|
-
|
58
|
+
if(NOT DEFINED OPENSSL_VERSION)
|
59
|
+
set(OPENSSL_VERSION "3")
|
60
|
+
endif()
|
61
|
+
set(OPENSSL_ROOT_DIR "${BREW_PREFIX}/opt/openssl@${OPENSSL_VERSION}")
|
59
62
|
set(CMAKE_PREFIX_PATH "${BREW_PREFIX}")
|
60
63
|
include_directories("${OPENSSL_ROOT_DIR}/include")
|
61
64
|
include_directories("${BREW_PREFIX}/include")
|
@@ -80,7 +83,7 @@ if (CMAKE_HOST_SYSTEM_NAME MATCHES "Darwin")
|
|
80
83
|
set(CMAKE_CXX_FLAGS "-DTARGET_OS_SIMULATOR=0 -DTARGET_OS_IPHONE=0")
|
81
84
|
|
82
85
|
set(BUILD_CMAKE_ARGUMENTS -DCMAKE_PREFIX_PATH=${BUILD_CMAKE_PREFIX_PATH}
|
83
|
-
-DOPENSSL_ROOT_DIR=${
|
86
|
+
-DOPENSSL_ROOT_DIR=${OPENSSL_ROOT_DIR}
|
84
87
|
-DBISON_EXECUTABLE=${BISON_EXECUTABLE}
|
85
88
|
-DFLEX_EXECUTABLE=${FLEX_EXECUTABLE}
|
86
89
|
)
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (c) 2022-
|
1
|
+
# Copyright (c) 2022-2025 [Ribose Inc](https://www.ribose.com).
|
2
2
|
# All rights reserved.
|
3
3
|
# This file is a part of tebako
|
4
4
|
#
|
@@ -27,6 +27,10 @@ def_ext_prj_t(LIBARCHIVE "3.6.2" "9e2c1b80d5fbe59b61308fdfab6c79b5021d7ff4ff2489
|
|
27
27
|
|
28
28
|
message(STATUS "Collecting libarchive - " v${LIBARCHIVE_VER} " at " ${LIBARCHIVE_SOURCE_DIR})
|
29
29
|
|
30
|
+
if(DEFINED OPENSSL_ROOT_DIR)
|
31
|
+
set(OPENSSL_DIR_OPT "-DOPENSSL_ROOT_DIR=${OPENSSL_ROOT_DIR}")
|
32
|
+
endif(DEFINED OPENSSL_ROOT_DIR)
|
33
|
+
|
30
34
|
set(CMAKE_ARGUMENTS -DCMAKE_INSTALL_PREFIX=${DEPS}
|
31
35
|
-DCMAKE_BUILD_TYPE=Release
|
32
36
|
-DBUILD_SHARED_LIBS:BOOL=OFF
|
@@ -41,13 +45,14 @@ set(CMAKE_ARGUMENTS -DCMAKE_INSTALL_PREFIX=${DEPS}
|
|
41
45
|
-DENABLE_TEST:BOOL=OFF
|
42
46
|
-DCMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH}
|
43
47
|
-DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES}
|
48
|
+
${OPENSSL_DIR_OPT}
|
44
49
|
)
|
45
50
|
|
46
|
-
if(TEBAKO_BUILD_TARGET)
|
51
|
+
if(DEFINED TEBAKO_BUILD_TARGET)
|
47
52
|
list(APPEND CMAKE_ARGUMENTS -DCMAKE_C_FLAGS=--target=${TEBAKO_BUILD_TARGET})
|
48
53
|
list(APPEND CMAKE_ARGUMENTS -DCMAKE_EXE_LINKER_FLAGS=--target=${TEBAKO_BUILD_TARGET})
|
49
54
|
list(APPEND CMAKE_ARGUMENTS -DCMAKE_SHARED_LINKER_FLAGS=--target=${TEBAKO_BUILD_TARGET})
|
50
|
-
endif(TEBAKO_BUILD_TARGET)
|
55
|
+
endif(DEFINED TEBAKO_BUILD_TARGET)
|
51
56
|
|
52
57
|
# ...................................................................
|
53
58
|
# libarchive is the module that creates the real pain here
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (c) 2023 [Ribose Inc](https://www.ribose.com).
|
1
|
+
# Copyright (c) 2023-2025 [Ribose Inc](https://www.ribose.com).
|
2
2
|
# All rights reserved.
|
3
3
|
# This file is a part of tebako
|
4
4
|
#
|
@@ -38,6 +38,7 @@ if(OPENSSL_RES EQUAL 0)
|
|
38
38
|
message(STATUS "Found OpenSSL version ${OPENSSL_VER} at ${DEPS}/bin/openssl")
|
39
39
|
if((${OPENSSL_VER} VERSION_GREATER_EQUAL "1.1.0") AND (${OPENSSL_VER} VERSION_LESS "3.0.0"))
|
40
40
|
set(WITH_OPENSSL_BUILD OFF)
|
41
|
+
set(OPENSSL_ROOT_DIR "${DEPS}")
|
41
42
|
endif((${OPENSSL_VER} VERSION_GREATER_EQUAL "1.1.0") AND (${OPENSSL_VER} VERSION_LESS "3.0.0"))
|
42
43
|
endif(OPENSSL_RES EQUAL 0)
|
43
44
|
|
@@ -67,3 +68,28 @@ if(WITH_OPENSSL_BUILD)
|
|
67
68
|
endif((${OPENSSL_VER} VERSION_GREATER_EQUAL "1.1.0") AND (${OPENSSL_VER} VERSION_LESS "3.0.0"))
|
68
69
|
endif(OPENSSL_RES EQUAL 0)
|
69
70
|
endif(WITH_OPENSSL_BUILD)
|
71
|
+
|
72
|
+
if(WITH_OPENSSL_BUILD)
|
73
|
+
message(STATUS "Building OpenSSL 1.1.1w")
|
74
|
+
def_ext_prj_g(OPENSSL "OpenSSL_1_1_1w")
|
75
|
+
|
76
|
+
set(__LIBSSL "${DEPS}/lib/libssl.a")
|
77
|
+
set(__LIBCRYPTO "${DEPS}/lib/libcrypto.a")
|
78
|
+
|
79
|
+
ExternalProject_Add(${OPENSSL_PRJ}
|
80
|
+
PREFIX ${DEPS}
|
81
|
+
GIT_REPOSITORY "https://github.com/openssl/openssl.git"
|
82
|
+
GIT_TAG ${OPENSSL_TAG}
|
83
|
+
UPDATE_COMMAND ""
|
84
|
+
SOURCE_DIR ${OPENSSL_SOURCE_DIR}
|
85
|
+
BINARY_DIR ${OPENSSL_BINARY_DIR}
|
86
|
+
CONFIGURE_COMMAND ${GNU_BASH} -c "${OPENSSL_SOURCE_DIR}/config \
|
87
|
+
--openssldir=${DEPS} \
|
88
|
+
--prefix=${DEPS} \
|
89
|
+
no-shared"
|
90
|
+
BUILD_BYPRODUCTS ${__LIBSSL} ${__LIBCRYPTO}
|
91
|
+
)
|
92
|
+
|
93
|
+
set(OPENSSL_ROOT_DIR "${DEPS}")
|
94
|
+
|
95
|
+
endif(WITH_OPENSSL_BUILD)
|
@@ -0,0 +1,34 @@
|
|
1
|
+
# Copyright (c) 2025, [Ribose Inc](https://www.ribose.com).
|
2
|
+
# All rights reserved.
|
3
|
+
# This file is a part of tebako
|
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)
|
28
|
+
|
29
|
+
include(ExternalProject)
|
30
|
+
|
31
|
+
set(GNU_BASH bash)
|
32
|
+
|
33
|
+
include(${ROOT}/tools/cmake-scripts/def-external-project.cmake)
|
34
|
+
include(${ROOT}/tools/cmake-scripts/setup-openssl-1.1.1.cmake)
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# Copyright (c) 2025, [Ribose Inc](https://www.ribose.com).
|
2
|
+
# All rights reserved.
|
3
|
+
# This file is a part of tebako
|
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
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.12.
|
4
|
+
version: 0.12.14
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ribose Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2025-02-
|
11
|
+
date: 2025-02-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -219,6 +219,8 @@ files:
|
|
219
219
|
- lib/tebako/packager/pass1_patch.rb
|
220
220
|
- lib/tebako/packager/pass1a_patch.rb
|
221
221
|
- lib/tebako/packager/pass2_patch.rb
|
222
|
+
- lib/tebako/packager/pass2_patch_crt.rb
|
223
|
+
- lib/tebako/packager/pass2msys_patch.rb
|
222
224
|
- lib/tebako/packager/patch.rb
|
223
225
|
- lib/tebako/packager/patch_buildsystem.rb
|
224
226
|
- lib/tebako/packager/patch_helpers.rb
|
@@ -254,14 +256,16 @@ files:
|
|
254
256
|
- tools/cmake-scripts/setup-libfmt.cmake
|
255
257
|
- tools/cmake-scripts/setup-libhowardhinnerdate.cmake
|
256
258
|
- tools/cmake-scripts/setup-libutfcpp.cmake
|
257
|
-
- tools/cmake-scripts/setup-openssl.cmake
|
259
|
+
- tools/cmake-scripts/setup-openssl-1.1.1.cmake
|
258
260
|
- tools/cmake-scripts/version.cmake
|
261
|
+
- tools/dwarfs-test-helper/CMakeLists.txt
|
259
262
|
- tools/include/pro-statvfs.h
|
260
263
|
- tools/tests/cmake/CMakeLists.txt
|
261
264
|
- tools/tests/setup-libfmt/CMakeLists.txt
|
262
265
|
- tools/tests/setup-libhowardhinnerdate/CMakeLists.txt
|
263
266
|
- tools/tests/setup-librachive/CMakeLists.txt
|
264
267
|
- tools/tests/setup-libutfcpp/CMakeLists.txt
|
268
|
+
- tools/tests/setup-openssl/CMakeLists.txt
|
265
269
|
homepage: https://github.com/tamatebako/tebako
|
266
270
|
licenses:
|
267
271
|
- BSD-2-Clause
|
@@ -292,7 +296,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
292
296
|
- !ruby/object:Gem::Version
|
293
297
|
version: '0'
|
294
298
|
requirements: []
|
295
|
-
rubygems_version: 3.
|
299
|
+
rubygems_version: 3.5.22
|
296
300
|
signing_key:
|
297
301
|
specification_version: 4
|
298
302
|
summary: Packager for Ruby executables
|