tebako 0.5.0 → 0.5.2

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.
@@ -1,4 +1,3 @@
1
- #!/usr/bin/env ruby
2
1
  # frozen_string_literal: true
3
2
 
4
3
  # Copyright (c) 2021-2023 [Ribose Inc](https://www.ribose.com).
@@ -36,18 +35,24 @@ require_relative "packager/pass2"
36
35
  module Tebako
37
36
  # Tebako packaging support (internal)
38
37
  module Packager
39
- FILES_TO_RESTORE = [
40
- "main.c", "dir.c", "dln.c",
41
- "file.c", "io.c", "tool/mkconfig.rb"
38
+ FILES_TO_RESTORE = %w[
39
+ main.c
40
+ dir.c
41
+ dln.c
42
+ file.c
43
+ io.c
44
+ tool/mkconfig.rb
42
45
  ].freeze
43
46
 
44
- FILES_TO_RESTORE_MSYS = [
45
- "ruby.c", "win32/win32.c",
46
- "win32/file.c", "win32/dir.h"
47
+ FILES_TO_RESTORE_MSYS = %w[
48
+ ruby.c
49
+ win32/win32.c
50
+ win32/file.c
51
+ win32/dir.h
47
52
  ].freeze
48
53
 
49
- FILES_TO_RESTORE_MUSL = [
50
- "thread_pthread.c"
54
+ FILES_TO_RESTORE_MUSL = %w[
55
+ thread_pthread.c
51
56
  ].freeze
52
57
 
53
58
  class << self
@@ -84,7 +89,7 @@ module Tebako
84
89
  # puts " ... creating pristine ruby environment at #{src_dir} [patience, it will take some time]"
85
90
  # out, st = Open3.capture2e("cmake", "-E", "chdir", ruby_source_dir, "make", "install")
86
91
  # print out if st.exitstatus != 0 || verbose
87
- # raise TebakoError.new("stash [make install] failed with code #{st.exitstatus}") if st.exitstatus != 0
92
+ # raise Tebako::Error.new("stash [make install] failed with code #{st.exitstatus}") if st.exitstatus != 0
88
93
  # end
89
94
 
90
95
  puts " ... saving pristine ruby environment to #{stash_dir}"
@@ -111,7 +116,7 @@ module Tebako
111
116
  end
112
117
 
113
118
  def restore_and_save(fname)
114
- raise TebakoError, "Could not save #{fname} because it does not exist." unless File.exist?(fname)
119
+ raise Tebako::Error, "Could not save #{fname} because it does not exist." unless File.exist?(fname)
115
120
 
116
121
  old_fname = "#{fname}.old"
117
122
  if File.exist?(old_fname)
@@ -128,7 +133,7 @@ module Tebako
128
133
  end
129
134
 
130
135
  def patch_file(fname, mapping)
131
- raise TebakoError, "Could not patch #{fname} because it does not exist." unless File.exist?(fname)
136
+ raise Tebako::Error, "Could not patch #{fname} because it does not exist." unless File.exist?(fname)
132
137
 
133
138
  puts " ... patching #{fname}"
134
139
  restore_and_save(fname)
@@ -143,68 +148,3 @@ module Tebako
143
148
  end
144
149
  end
145
150
  end
146
-
147
- begin
148
- unless ARGV.length.positive?
149
- raise Tebako::TebakoError, "Tebako script needs at least 1 arguments (command), none has been provided."
150
- end
151
-
152
- case ARGV[0]
153
- when "pass1"
154
- # ARGV[0] -- command
155
- # ARGV[1] -- OSTYPE
156
- # ARGV[2] -- RUBY_SOURCE_DIR
157
- # ARGV[3] -- FS_MOUNT_POINT
158
- # ARGV[4] -- DATA_SRC_DIR
159
- # ARGV[5] -- RUBY_VER
160
- unless ARGV.length == 6
161
- raise Tebako::TebakoError,
162
- "pass1 script expects 6 arguments, #{ARGV.length} has been provided."
163
- end
164
-
165
- Tebako::Packager.pass1(ARGV[1], ARGV[2], ARGV[3], ARGV[4], ARGV[5])
166
- when "stash"
167
- # ARGV[0] -- command
168
- # ARGV[1] -- DATA_SRC_DIR
169
- # ARGV[2] -- RUBY_STASH_DIR
170
- unless ARGV.length == 3
171
- raise Tebako::TebakoError,
172
- "stash script expects 3 arguments, #{ARGV.length} has been provided."
173
- end
174
-
175
- Tebako::Packager.stash(ARGV[1], ARGV[2])
176
- when "pass2"
177
- # ARGV[0] -- command
178
- # ARGV[1] -- OSTYPE
179
- # ARGV[2] -- RUBY_SOURCE_DIR
180
- # ARGV[3] -- DEPS_LIB_DIR
181
- # ARGV[4] -- DATA_SRC_DIR
182
- # ARGV[5] -- RUBY_STASH_DIR
183
- # ARGV[6] -- RUBY_VER
184
- unless ARGV.length == 7
185
- raise Tebako::TebakoError,
186
- "pass1 script expects 7 arguments, #{ARGV.length} has been provided."
187
- end
188
-
189
- Tebako::Packager.stash(ARGV[4], ARGV[5])
190
- Tebako::Packager.pass2(ARGV[1], ARGV[2], ARGV[3], ARGV[6])
191
- when "deploy"
192
- # ARGV[0] -- command
193
- # ARGV[1] -- FS_STASH_DIR
194
- # ARGV[2] -- DATA_SRC_DIR
195
- # ARGV[3] -- DATA_PRE_DIR
196
- # ARGV[4] -- DATA_BIN_DIR
197
- unless ARGV.length == 5
198
- raise Tebako::TebakoError,
199
- "deploy script expects 5 arguments, #{ARGV.length} has been provided."
200
- end
201
- Tebako::Packager.deploy(ARGV[1], ARGV[2], ARGV[3], ARGV[4])
202
- else
203
- raise Tebako::TebakoError, "Tebako script cannot process #{ARGV[0]} command"
204
- end
205
- rescue Tebako::TebakoError => e
206
- puts "Tebako script failed: #{e.message} [#{e.error_code}]"
207
- exit(e.error_code)
208
- end
209
-
210
- exit(0)
@@ -26,5 +26,5 @@
26
26
  # POSSIBILITY OF SUCH DAMAGE.
27
27
 
28
28
  module Tebako
29
- VERSION = "0.5.0"
29
+ VERSION = "0.5.2"
30
30
  end
@@ -25,4 +25,10 @@
25
25
  # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
26
26
  # POSSIBILITY OF SUCH DAMAGE.
27
27
 
28
- require_relative "tebako/cli"
28
+ # Tebako - an executable packager
29
+ # Core module
30
+ module Tebako
31
+ end
32
+
33
+ require_relative "tebako/version"
34
+ require_relative "tebako/error"
data/tebako.gemspec CHANGED
@@ -54,6 +54,9 @@ Gem::Specification.new do |spec|
54
54
  f.match(%r{\A(?:(?:test|spec|features|deps|output|common\.env)/|\.(?:git|cirrus|tebako|rubocop))})
55
55
  end
56
56
  end
57
+
58
+ spec.files << "version.txt"
59
+
57
60
  spec.bindir = "exe"
58
61
  spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
59
62
  spec.require_paths = %w[cmake exe ext include lib resources src tools/ci-scripts tools/cmake-scripts tools/includes]
@@ -268,11 +268,12 @@ class TebakoTest < MiniTest::Test
268
268
  # -- that we are linking to known set of shared libraries (https://github.com/tamatebako/tebako/issues/42)
269
269
 
270
270
  def expected_libs
271
- if RbConfig::CONFIG["target_os"] =~ /darwin/
271
+ case RbConfig::CONFIG["target_os"]
272
+ when /darwin/
272
273
  ["Security.framework", "Foundation.framework", "CoreFoundation.framework", "libSystem",
273
274
  "libc++", "launcher-package-package:"]
274
275
  # This is the test program itself: 'launcher-package-package:'
275
- elsif RbConfig::CONFIG["target_os"] =~ /linux-musl/
276
+ when /linux-musl/
276
277
  ["libc.musl-x86_64.so", "ld-musl-x86_64.so"]
277
278
  else # linux-gnu assumed
278
279
  ["linux-vdso.so", "libpthread.so", "libdl.so", "libc.so", "ld-linux-", "libm.so",
@@ -0,0 +1,4 @@
1
+ *.giattributes text eol=lf
2
+ *.sh text eol=lf
3
+ *.cmake text eol=lf
4
+ *.h text eol=lf
@@ -0,0 +1,41 @@
1
+ # Copyright (c) 2022, [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
+ name: lint
27
+
28
+ on:
29
+ push:
30
+ branches: [ master ]
31
+ pull_request:
32
+ workflow_dispatch:
33
+
34
+ jobs:
35
+ shellcheck:
36
+ runs-on: ubuntu-latest
37
+ steps:
38
+ - uses: actions/checkout@v3
39
+ - uses: ludeeus/action-shellcheck@master
40
+ env:
41
+ SHELLCHECK_OPTS: -x
data/tools/README.md ADDED
@@ -0,0 +1,5 @@
1
+ [![lint](https://github.com/tamatebako/macos-cross-compile/actions/workflows/lint.yml/badge.svg)](https://github.com/tamatebako/macos-cross-compile/actions/workflows/lint.yml)
2
+
3
+ ## Tebako portability tools ##
4
+
5
+ This repository contains cmake, shell scripts and include files aimed to support tebako builds on different platforms.
@@ -0,0 +1,43 @@
1
+ #! /bin/bash
2
+ #
3
+ # Copyright (c) 2022, [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
+ set -o errexit -o pipefail -o noclobber -o nounset
29
+
30
+ # for zsh
31
+ # https://stackoverflow.com/questions/6715388/variable-expansion-is-different-in-zsh-from-that-in-bash
32
+ # setopt sh_word_split
33
+
34
+ DIR0="$( cd "$1" && pwd )"
35
+ DIR1="$DIR0/arm-homebrew"
36
+
37
+ for bottle in "${@:2}"
38
+ do
39
+ echo "Installing $bottle"
40
+ response=$("$DIR1/bin/brew" fetch --force --bottle-tag=arm64_big_sur "$bottle" | grep "Downloaded to")
41
+ IFS=" " read -r -a parsed <<< "$response"
42
+ "$DIR1/bin/brew" install "${parsed[2]}"
43
+ done
@@ -0,0 +1,33 @@
1
+ #! /bin/bash
2
+ #
3
+ # Copyright (c) 2022, [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
+ set -o errexit -o pipefail -o noclobber -o nounset
29
+
30
+ DIR0="$( cd "$1" && pwd )"
31
+ DIR1="$DIR0/arm-homebrew"
32
+ mkdir "$DIR1"
33
+ curl -L https://github.com/Homebrew/brew/tarball/master | tar xz --strip 1 -C "$DIR1"
@@ -0,0 +1,35 @@
1
+ #! /bin/bash
2
+ #
3
+ # Copyright (c) 2022, [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
+ set -o errexit -o pipefail -o noclobber -o nounset
29
+
30
+ # for zsh
31
+ # https://stackoverflow.com/questions/6715388/variable-expansion-is-different-in-zsh-from-that-in-bash
32
+ # setopt sh_word_split
33
+
34
+ DIR0="$( cd "$1" && pwd )"
35
+ echo "$DIR0"
@@ -0,0 +1,92 @@
1
+ #! /bin/bash
2
+ # Copyright (c) 2022, [Ribose Inc](https://www.ribose.com).
3
+ # All rights reserved.
4
+ # This file is a part of tebako
5
+ #
6
+ # Redistribution and use in source and binary forms, with or without
7
+ # modification, are permitted provided that the following conditions
8
+ # are met:
9
+ # 1. Redistributions of source code must retain the above copyright
10
+ # notice, this list of conditions and the following disclaimer.
11
+ # 2. Redistributions in binary form must reproduce the above copyright
12
+ # notice, this list of conditions and the following disclaimer in the
13
+ # documentation and/or other materials provided with the distribution.
14
+ #
15
+ # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
16
+ # ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
17
+ # TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
18
+ # PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS
19
+ # BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
20
+ # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
21
+ # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
22
+ # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
23
+ # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
24
+ # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
25
+ # POSSIBILITY OF SUCH DAMAGE.
26
+
27
+ set -o errexit -o pipefail -o noclobber -o nounset
28
+
29
+ # ....................................................
30
+ restore_and_save() {
31
+ echo "Patching $1"
32
+ test -e "$1.old" && cp -f "$1.old" "$1"
33
+ cp -f "$1" "$1.old"
34
+ }
35
+
36
+ do_patch() {
37
+ restore_and_save "$1"
38
+ sed -i "s/$2/$3/g" "$1"
39
+ }
40
+
41
+ # ....................................................
42
+ # Surprise, surprise ... Upstream project shall found boost libraries for fbthrift
43
+ # https://github.com/facebook/fbthrift/commit/c23af9dee42374d43d2f10e0e07edf1c1c97c328
44
+
45
+
46
+ if [[ "$OSTYPE" == "linux-gnu"* || "$OSTYPE" == "linux-musl"* || "$OSTYPE" == "msys" ]]; then
47
+ gSed="sed"
48
+ # shellcheck disable=SC2251
49
+ ! IFS= read -r -d '' sbst << EOM
50
+ find_package(OpenSSL REQUIRED)
51
+ # -- Start of tebako patch --
52
+ find_package(Boost 1.65 REQUIRED COMPONENTS filesystem)
53
+ include_directories(\${Boost_INCLUDE_DIRS})
54
+ # -- End of tebako patch --
55
+ EOM
56
+
57
+ elif [[ "$OSTYPE" == "darwin"* ]]; then
58
+ gSed="gsed"
59
+
60
+ # shellcheck disable=SC2251
61
+ ! IFS= read -r -d '' sbst << EOM
62
+ find_package(OpenSSL REQUIRED)
63
+ # -- Start of tebako patch --
64
+ find_package(Boost 1.65 REQUIRED COMPONENTS filesystem)
65
+ include_directories(\${Boost_INCLUDE_DIRS})
66
+ # Suppress superfluous randlib warnings about \"*.a\" having no symbols on MacOSX.
67
+ set(CMAKE_C_ARCHIVE_CREATE \"<CMAKE_AR> Scr <TARGET> <LINK_FLAGS> <OBJECTS>\")
68
+ set(CMAKE_CXX_ARCHIVE_CREATE \"<CMAKE_AR> Scr <TARGET> <LINK_FLAGS> <OBJECTS>\")
69
+ set(CMAKE_C_ARCHIVE_FINISH \"<CMAKE_RANLIB> -no_warning_for_no_symbols -c <TARGET>\")
70
+ set(CMAKE_CXX_ARCHIVE_FINISH \"<CMAKE_RANLIB> -no_warning_for_no_symbols -c <TARGET>\")
71
+ # -- End of tebako patch --
72
+ EOM
73
+
74
+ else
75
+ echo "Unknown OSTYPE=$OSTYPE"
76
+ exit 1
77
+ fi
78
+
79
+ restore_and_save "$1/CMakeLists.txt"
80
+ re="find_package(OpenSSL REQUIRED)"
81
+ "$gSed" -i "s/$re/${sbst//$'\n'/"\\n"}/g" "$1/CMakeLists.txt"
82
+
83
+ if [[ "$OSTYPE" == "msys" ]]; then
84
+ re="if(WIN32)"
85
+ sbst="if(MSVC) # tebako patched"
86
+ do_patch "$1/thrift/compiler/CMakeLists.txt" "$re" "$sbst"
87
+
88
+ re="ftruncate(file\.fd(), finalBufferSize);"
89
+ sbst="folly::portability::unistd::ftruncate(file.fd(), finalBufferSize); \/* tebako patched *\/"
90
+ do_patch "$1/thrift/lib/cpp2/frozen/FrozenUtil.h" "$re" "$sbst"
91
+
92
+ fi