tebako 0.13.0 → 0.13.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b76afc326826bf28f1e102114a95d5be16e3fb3ec8755830ad719c0c17da0244
4
- data.tar.gz: fae51d705eedb1735426ca175ce89ccad509aaaf9fcb4436d5cef19d7ff7ac38
3
+ metadata.gz: 1524faa221f3fae3637ac7ac4f7fb84d62d8c3dab17ac606833f5457c8a124a0
4
+ data.tar.gz: c50e0dbaf81db65888ee57bd87a4368714a8f9ec732037de1824b62e0f20bae4
5
5
  SHA512:
6
- metadata.gz: ef50f9c470ce36732df94ec543feae0ec9ec27c8baa7f62043937ab8bef5cf07466ee613336d987d304b47e10cbbac5f4404f9b85a17f294e21002c3cb8fec13
7
- data.tar.gz: 57390b1c83cbfad6d65b37a80f6d64cb5897c794113134284e1bf6a44efadbf746892cc2c980e17bafb12ccb508e3e45b799e5624f30555cc942349a38585c79
6
+ metadata.gz: b1743d1621e52aac4868387f792544e8bdd8b0dda55d2767028b30b94c4b1bfa5f57d870e279212a4f04258cc25b401e3e133a46231ff29c5378081783266b1e
7
+ data.tar.gz: '02189ef5819acc25ff49bef4ae94b749b77fb53a9a60fd562b7cbca60eea409f97537d8078b967a94353d868408752e49a08bbd63438ab010ecef7d69b9114cb'
data/CMakeLists.txt CHANGED
@@ -178,7 +178,7 @@ string(CONCAT RUBY_API_VER ${RUBY_VER_BASE} ".0")
178
178
  # list(GET LIBDWARFS_WR_VER_COMPONENTS 2 LIBDWARFS_WR_VER_PATCH)
179
179
  # set (LIBDWARFS_WR_VER_M ${LIBDWARFS_WR_VER_MAJOR}.${LIBDWARFS_WR_VER_MINOR}.${LIBDWARFS_WR_VER_PATCH})
180
180
  #else(DWARFS_PRELOAD)
181
- def_ext_prj_g(DWARFS_WR "v0.10.1")
181
+ def_ext_prj_g(DWARFS_WR "v0.10.3")
182
182
  #endif(DWARFS_PRELOAD)
183
183
 
184
184
  def_ext_prj_g(PATCHELF "65e14792061c298f1d2bc44becd48a10cbf0bc81")
data/Gemfile CHANGED
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2023 [Ribose Inc](https://www.ribose.com).
3
+ # Copyright (c) 2023-2025 [Ribose Inc](https://www.ribose.com).
4
4
  # All rights reserved.
5
5
  # This file is a part of the Tebako project.
6
6
  #
data/INSTALLATION.adoc CHANGED
@@ -185,6 +185,9 @@ The following instructions have been tested on:
185
185
 
186
186
  ==== Ruby
187
187
 
188
+ Ensure that you have long filenames enabled in Windows.
189
+ https://learn.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation?tabs=registry#enable-long-paths-in-windows-10-version-1607-and-later[long filenames enabled in Windows]. This is required for the majority of applications.
190
+
188
191
  To run Tebako, a Ruby development environment is required.
189
192
  The simplest option is to use the Ruby development environment provided by
190
193
  https://rubyinstaller.org[RubyInstaller].
@@ -199,10 +202,9 @@ The `ridk` command originates from the RubyInstaller installation.
199
202
 
200
203
  [source,sh]
201
204
  ----
202
- ridk enable ucrt64
203
- pacman -S git tar bison flex toolchain make cmake \
204
- boost diffutils libevent double-conversion \
205
- fmt glog dlfcn gtest autotools ncurses libyaml
205
+ idk enable ucrt64
206
+ pacman -S git tar bison flex pactoys
207
+ bash -c "pacboy sync toolchain:p make:p cmake:p boost:p diffutils:p libevent:p double-conversion:p fmt:p glog:p dlfcn:p gtest:p autotools:p ncurses:p libyaml:p"
206
208
  ----
207
209
 
208
210
  == Gem Installation
data/README.adoc CHANGED
@@ -5,12 +5,11 @@
5
5
  |===
6
6
  |*Platform Tests* |Architecture |Status
7
7
 
8
- .2+|Ubuntu
9
- |amd64 | image:https://github.com/tamatebako/tebako/actions/workflows/ubuntu.yml/badge.svg["Ubuntu amd64", link="https://github.com/tamatebako/tebako/actions/workflows/ubuntu.yml"]
10
- |arm64 |image:https://api.cirrus-ci.com/github/tamatebako/tebako.svg?branch=main&task=ubuntu-aarch64["Ubuntu aarch64", link="https://cirrus-ci.com/github/tamatebako/tebako"]
8
+ |Ubuntu
9
+ |amd64 + arm64 | image:https://github.com/tamatebako/tebako/actions/workflows/ubuntu.yml/badge.svg["Ubuntu amd64", link="https://github.com/tamatebako/tebako/actions/workflows/ubuntu.yml"]
11
10
 
12
11
  |Alpine
13
- |amd64 |image:https://github.com/tamatebako/tebako/actions/workflows/alpine.yml/badge.svg["Alpine", link="https://github.com/tamatebako/tebako/actions/workflows/alpine.yml"]
12
+ |amd64 + arm64 |image:https://github.com/tamatebako/tebako/actions/workflows/alpine.yml/badge.svg["Alpine", link="https://github.com/tamatebako/tebako/actions/workflows/alpine.yml"]
14
13
 
15
14
  |macOS
16
15
  |amd64 + arm64
@@ -24,6 +23,9 @@
24
23
  |Tebako containers
25
24
  | |image:https://github.com/tamatebako/tebako-ci-containers/actions/workflows/build-containers.yml/badge.svg["Tebako containers", link="https://github.com/tamatebako/tebako-ci-containers/actions/workflows/build-containers.yml"]
26
25
 
26
+ |Runtimes
27
+ | |image:https://github.com/tamatebako/tebako-runtime-ruby/actions/workflows/build-runtime-packages.yml/badge.svg["Ruby runtimes", link="https://github.com/tamatebako/tebako-runtime-ruby/actions/workflows/build-runtime-packages.yml"]
28
+
27
29
  3+|*Quality*
28
30
 
29
31
  |Lint and RSpec
@@ -31,8 +33,11 @@
31
33
 
32
34
  |Code Coverage
33
35
  | |image:https://codecov.io/gh/tamatebako/tebako/graph/badge.svg?token=XD3emQ5qsY["Tebako CLI RSpec coverage", link="https://codecov.io/gh/tamatebako/tebako"]
34
- |===
35
36
 
37
+ 3+|*Info*
38
+ |Gem
39
+ | |image:https://img.shields.io/gem/v/tebako.svg["Version", link="https://rubygems.org/gems/tebako"]
40
+ |===
36
41
 
37
42
  == Purpose
38
43
 
@@ -910,79 +915,128 @@ and the bundler version requirements specified in the Gemfile.
910
915
 
911
916
  == Packaging scenarios
912
917
 
913
- Depending on the configuration files that are present in the root project folder, the Tebako Ruby packager supports different packaging scenarios.
918
+ There are two common methods for distributing a Ruby application:
919
+
920
+ * Copying the entire directory tree of the application to the target system.
921
+ * Creating a Ruby gem from the application and publishing or distributing it
922
+ as a gem.
923
+
924
+ Tebako supports both methods, but with an important distinction: during
925
+ packaging, it does not deploy the application to the target system. Instead,
926
+ it places it in a pristine Ruby environment that functions as an in-memory
927
+ filesystem ("memfs").
914
928
 
915
- These scenarios differ in what files are packaged and where the entry point is located.
929
+ Regardless of the packaging scenario, Tebako requires two inputs:
916
930
 
917
- Here is a summary of the scenarios:
931
+ * A root folder containing the application to be packaged.
932
+ * An entry point — a Ruby file that will be executed when the packaged
933
+ application starts.
918
934
 
919
- [cols="a,2a,4a,3a,a,a,a"]
935
+ The appropriate packaging scenario is determined by the contents of the
936
+ root folder:
937
+
938
+ [cols="3", options="header"]
920
939
  |===
921
- | Scenario | Description | Packaging | Entry point | `*.gemspec` | `Gemfile` | `*.gem`
940
+ | #
941
+ | Conditions
942
+ | Scenario Description
922
943
 
923
944
  | 1
924
- | Simple ruby script
925
- | Copy `<project-root>` with all sub-folders to packaged filesystem
926
- | `<mount_point>/local/<entry_point base name>`
927
- | No
928
- | No
929
- | No
930
-
945
+ | No `Gemfile`, `.gemspec`, or `.gem` files
946
+ | <<1-simple-script,Simple Script>>
931
947
 
932
948
  | 2
933
- | Packaged gem
934
- | Install the gem with `gem install` to packaged filesystem
935
- | `<mount_point>/bin/<entry_point base name>` (i.e., binstub is expected)
936
- | No
937
- | No
938
- | One
939
-
949
+ | `Gemfile` present, no `.gemspec` files
950
+ | <<2-bundled-project, Bundled Project>>
940
951
 
941
952
  | 3
942
- | Gem source, no `bundler`
943
- |
944
- . Build the gem using `gem build` command at the host
945
- . Install it with `gem install` to packaged filesystem
953
+ | `.gemspec` present, no `Gemfile`
954
+ | <<3-gem, Gem>>
946
955
 
947
- | `<mount_point>/bin/<entry_point base name>` (i.e., binstub is expected)
948
- | One
949
- | No
950
- | Any
956
+ | 4
957
+ | Both `.gemspec` and `Gemfile` present
958
+ | <<4-bundled-gem, Bundled Gem>>
951
959
 
960
+ | 5
961
+ | `.gem` files present, no `Gemfile` or `.gemspec`
962
+ | <<5-prebuilt-gem, Prebuilt Gem>>
952
963
 
953
- | 4
954
- | Gem source, `bundler`
955
- |
956
- . Collect dependencies at the host with `bundle install`
957
- . Build the gem using `gem build` command
958
- . Install it with `gem install` to packaged file system
964
+ |===
959
965
 
960
- | `<mount_point>/bin/<entry_point base name>` (i.e., binstub is expected)
961
- | One
962
- | One
963
- | Any
966
+ === 1. Simple Script
967
+ If the root folder does not contain a `Gemfile`, `.gemspec`, or `.gem`
968
+ files, Tebako treats the application as a simple script.
964
969
 
970
+ In this case:
965
971
 
966
- | Error
967
- | Error: Two or more `*.gem` files present
968
- | -
969
- | -
970
- | No
971
- | No
972
- | Two or more
972
+ * The entire root folder (including subdirectories) is copied to
973
+ `<memfs root>/local`.
974
+ * On startup, Tebako executes `<memfs root>/local/<entry point>`.
973
975
 
976
+ === 2. Bundled Project
977
+ If the root folder contains a `Gemfile` but no `.gemspec` files, the
978
+ application is considered a bundled project. This is common for Rails or
979
+ Sinatra projects.
974
980
 
975
- | Error
976
- | Error: Two or more `*.gemspec` files present
977
- | -
978
- | -
979
- | Two or more
980
- | Any
981
- | Any
981
+ In this scenario, Tebako:
982
982
 
983
- |===
983
+ * Runs `bundle install` using the provided `Gemfile` within the pristine
984
+ Ruby environment.
985
+ * Copies the root folder and all subdirectories to `<memfs root>/local`.
986
+ * Executes `<memfs root>/local/<entry point>` on startup.
987
+
988
+ === 3. Gem
989
+ If the root folder contains a `.gemspec` file but no `Gemfile`, Tebako
990
+ assumes it is packaging a gem.
991
+
992
+ In this case:
993
+
994
+ * Tebako runs the following commands within the pristine Ruby environment:
995
+
996
+ [source,sh]
997
+ ----
998
+ gem build
999
+ gem install
1000
+ ----
1001
+
1002
+ * The entry point is assumed to be one of the gem’s executables, placed in
1003
+ the binary folder during installation. Within Tebako’s in-memory
1004
+ filesystem, this folder is `<memfs root>/bin`.
1005
+ * On startup, Tebako executes `<memfs root>/bin/<entry point>`.
1006
+
1007
+ NOTE: Multiple `.gemspec` files in the root folder are not supported.
1008
+
1009
+ === 4. Bundled Gem
1010
+ If the root folder contains both a `.gemspec` file and a `Gemfile`, Tebako
1011
+ assumes it is packaging a bundled gem.
1012
+
1013
+ In this case:
1014
+
1015
+ * Tebako runs the following commands within the pristine Ruby environment:
1016
+
1017
+ [source,sh]
1018
+ ----
1019
+ bundle install
1020
+ bundle exec gem build
1021
+ bundle exec gem install
1022
+ ----
1023
+
1024
+ * The entry point follows the same logic as in the Gem Packaging scenario
1025
+ (`<memfs root>/bin/<entry point>`).
1026
+
1027
+ NOTE: Multiple `.gemspec` files in the root folder are not supported.
1028
+
1029
+ === 5. Prebuilt Gem
1030
+ If the root folder contains `.gem` files but no `Gemfile` or `.gemspec`,
1031
+ Tebako assumes it is packaging prebuilt gems.
1032
+
1033
+ In this case:
1034
+
1035
+ * Tebako runs `gem install` for all `.gem` files in the root folder, in
1036
+ a random order.
1037
+ * The entry point follows the same logic as in the Gem Packaging scenario
1038
+ (`<memfs root>/bin/<entry point>`).
984
1039
 
985
- These scenarios determine how the project is packaged and where the entry point is located within the packaged filesystem.
986
1040
 
987
1041
  == Tebako runtime and application packages. Splitting and bundling.
988
1042
 
data/Rakefile CHANGED
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2023-2024 [Ribose Inc](https://www.ribose.com).
3
+ # Copyright (c) 2023-2025 [Ribose Inc](https://www.ribose.com).
4
4
  # All rights reserved.
5
5
  # This file is a part of the Tebako project.
6
6
  #
data/common.env CHANGED
@@ -1,5 +1,5 @@
1
1
  BUILD_TYPE=Release
2
2
  DEPS=deps
3
3
  INCBIN_TAG=348e36b
4
- DWARFS_WR_TAG=v0.10.1
4
+ DWARFS_WR_TAG=v0.10.3
5
5
  RUBY_VER=3.3.7
data/exe/tebako CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
  # frozen_string_literal: true
3
3
 
4
- # Copyright (c) 2023 [Ribose Inc](https://www.ribose.com).
4
+ # Copyright (c) 2023-2025 [Ribose Inc](https://www.ribose.com).
5
5
  # All rights reserved.
6
6
  # This file is a part of the Tebako project.
7
7
  #
data/exe/tebako-packager CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
  # frozen_string_literal: true
3
3
 
4
- # Copyright (c) 2023-2024 [Ribose Inc](https://www.ribose.com).
4
+ # Copyright (c) 2023-2025 [Ribose Inc](https://www.ribose.com).
5
5
  # All rights reserved.
6
6
  # This file is a part of the Tebako project.
7
7
  #
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  *
3
- * Copyright (c) 2021-2024, [Ribose Inc](https://www.ribose.com).
3
+ * Copyright (c) 2021-2025, [Ribose Inc](https://www.ribose.com).
4
4
  * All rights reserved.
5
5
  * This file is a part of the Tebako project.
6
6
  *
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  *
3
- * Copyright (c) 2021-2024, [Ribose Inc](https://www.ribose.com).
3
+ * Copyright (c) 2021-2025, [Ribose Inc](https://www.ribose.com).
4
4
  * All rights reserved.
5
5
  * This file is a part of the Tebako project.
6
6
  *
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2023-2024 [Ribose Inc](https://www.ribose.com).
3
+ # Copyright (c) 2023-2025 [Ribose Inc](https://www.ribose.com).
4
4
  # All rights reserved.
5
5
  # This file is a part of the Tebako project.
6
6
  #
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2024 [Ribose Inc](https://www.ribose.com).
3
+ # Copyright (c) 2024-2025 [Ribose Inc](https://www.ribose.com).
4
4
  # All rights reserved.
5
5
  # This file is a part of the Tebako project.
6
6
  #
data/lib/tebako/cli.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
  # frozen_string_literal: true
3
3
 
4
- # Copyright (c) 2021-2023 [Ribose Inc](https://www.ribose.com).
4
+ # Copyright (c) 2021-2025 [Ribose Inc](https://www.ribose.com).
5
5
  # All rights reserved.
6
6
  # This file is a part of the Tebako project.
7
7
  #
@@ -157,23 +157,32 @@ module Tebako
157
157
  return unless nmr.any? && ScenarioManagerBase.new.msys?
158
158
 
159
159
  nmr.each do |path|
160
- if File.basename(path) == "NUL"
161
- full_path = "//?/#{path}"
162
- FileUtils.rm_f(full_path)
163
- end
160
+ next unless File.directory?(path)
161
+
162
+ extra_win_clean_dir(path)
164
163
  end
164
+
165
165
  FileUtils.rm_rf(nmr, secure: true)
166
166
  end
167
167
 
168
+ def extra_win_clean_dir(path)
169
+ Find.find(path) do |file_path|
170
+ full_path = "//?/#{file_path}"
171
+ next unless File.file?(full_path) && File.basename(full_path) == "NUL"
172
+
173
+ FileUtils.rm_f(full_path)
174
+ end
175
+ end
176
+ end
177
+
178
+ no_commands do
168
179
  def initialize(*args)
169
180
  super
170
181
  return if args[2][:current_command].name.include?("hash")
171
182
 
172
183
  puts "Tebako executable packager version #{Tebako::VERSION}"
173
184
  end
174
- end
175
185
 
176
- no_commands do
177
186
  def options
178
187
  original_options = super
179
188
  tebafile = original_options["tebafile"].nil? ? DEFAULT_TEBAFILE : original_options["tebafile"]
@@ -189,7 +198,9 @@ module Tebako
189
198
  c_path = Pathname.new(__FILE__).realpath
190
199
  @source ||= File.expand_path("../../..", c_path)
191
200
  end
201
+ end
192
202
 
203
+ no_commands do
193
204
  def validate_press_options
194
205
  return unless options["mode"] != "runtime"
195
206
 
@@ -201,9 +212,7 @@ module Tebako
201
212
  end
202
213
  raise Thor::Error, "No value provided for required options #{opts}" unless opts.empty?
203
214
  end
204
- end
205
215
 
206
- no_commands do
207
216
  include Tebako::CliHelpers
208
217
  end
209
218
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2024 [Ribose Inc](https://www.ribose.com).
3
+ # Copyright (c) 2024-2025 [Ribose Inc](https://www.ribose.com).
4
4
  # All rights reserved.
5
5
  # This file is a part of the Tebako project.
6
6
  #
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2024 [Ribose Inc](https://www.ribose.com).
3
+ # Copyright (c) 2024-2025 [Ribose Inc](https://www.ribose.com).
4
4
  # All rights reserved.
5
5
  # This file is a part of the Tebako project.
6
6
  #
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2023-2024 [Ribose Inc](https://www.ribose.com).
3
+ # Copyright (c) 2023-2025 [Ribose Inc](https://www.ribose.com).
4
4
  # All rights reserved.
5
5
  # This file is a part of the Tebako project.
6
6
  #
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2023-2024 [Ribose Inc](https://www.ribose.com).
3
+ # Copyright (c) 2023-2025 [Ribose Inc](https://www.ribose.com).
4
4
  # All rights reserved.
5
5
  # This file is a part of the Tebako project.
6
6
  #
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2023-2024 [Ribose Inc](https://www.ribose.com).
3
+ # Copyright (c) 2023-2025 [Ribose Inc](https://www.ribose.com).
4
4
  # All rights reserved.
5
5
  # This file is a part of the Tebako project.
6
6
  #
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2021-2024 [Ribose Inc](https://www.ribose.com).
3
+ # Copyright (c) 2021-2025 [Ribose Inc](https://www.ribose.com).
4
4
  # All rights reserved.
5
5
  # This file is a part of the Tebako project.
6
6
  #
@@ -80,14 +80,13 @@ module Tebako
80
80
  ].freeze
81
81
 
82
82
  MSYS_LIBRARIES = [
83
- "-l:liblz4.a", "-l:libz.a", "-l:libzstd.a", "-l:liblzma.a",
84
- "-l:libncurses.a", "-l:libunwind.a", "-l:liblzma.a", "-l:libiberty.a",
85
- "LIBYAML", "-l:libffi.a", "-l:libboost_chrono-mt.a", # "-l:libboost_system-mt.a",
86
- "-l:libstdc++.a", "-l:libdl.a", "-static-libgcc", "-static-libstdc++",
87
- "-l:libssl.a", "-l:libcrypto.a", "-l:libz.a", "-l:libwinpthread.a",
88
- "-lcrypt32", "-lshlwapi", "-lwsock32", "-liphlpapi",
89
- "-limagehlp", "-lbcrypt", "-lole32", "-loleaut32",
90
- "-luuid", "-lws2_32"
83
+ "-l:liblz4.a", "-l:libz.a", "-l:libzstd.a", "-l:liblzma.a",
84
+ "-l:libncurses.a", "-l:liblzma.a", "-l:libiberty.a", "LIBYAML",
85
+ "-l:libffi.a", "-l:libboost_chrono-mt.a", "-l:libstdc++.a", "-l:libdl.a",
86
+ "-static-libgcc", "-static-libstdc++", "-l:libssl.a", "-l:libcrypto.a",
87
+ "-l:libz.a", "-l:libwinpthread.a", "-lcrypt32", "-lshlwapi",
88
+ "-lwsock32", "-liphlpapi", "-limagehlp", "-lbcrypt",
89
+ "-lole32", "-loleaut32", "-luuid", "-lws2_32"
91
90
  ].freeze
92
91
 
93
92
  def linux_gnu_libraries(ruby_ver, with_compression)
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2023-2024 [Ribose Inc](https://www.ribose.com).
3
+ # Copyright (c) 2023-2025 [Ribose Inc](https://www.ribose.com).
4
4
  # All rights reserved.
5
5
  # This file is a part of the Tebako project.
6
6
  #
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2023-2024 [Ribose Inc](https://www.ribose.com).
3
+ # Copyright (c) 2023-2025 [Ribose Inc](https://www.ribose.com).
4
4
  # All rights reserved.
5
5
  # This file is a part of the Tebako project.
6
6
  #
@@ -26,5 +26,5 @@
26
26
  # POSSIBILITY OF SUCH DAMAGE.
27
27
 
28
28
  module Tebako
29
- VERSION = "0.13.0"
29
+ VERSION = "0.13.1"
30
30
  end
data/lib/tebako.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2023 [Ribose Inc](https://www.ribose.com).
3
+ # Copyright (c) 2023-2025 [Ribose Inc](https://www.ribose.com).
4
4
  # All rights reserved.
5
5
  # This file is a part of the Tebako project.
6
6
  #
data/src/tebako-main.cpp CHANGED
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  *
3
- * Copyright (c) 2021-2024 [Ribose Inc](https://www.ribose.com).
3
+ * Copyright (c) 2021-2025 [Ribose Inc](https://www.ribose.com).
4
4
  * All rights reserved.
5
5
  * This file is a part of the Tebako project.
6
6
  *
data/tebako.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2023 [Ribose Inc](https://www.ribose.com).
3
+ # Copyright (c) 2023-2025 [Ribose Inc](https://www.ribose.com).
4
4
  # All rights reserved.
5
5
  # This file is a part of the Tebako project.
6
6
  #
@@ -144,7 +144,6 @@ jobs:
144
144
  run: |
145
145
  set -o errexit -o pipefail -o noclobber -o nounset
146
146
  test -f build/setup-librachive/deps/lib/pkgconfig/libarchive.pc
147
- test -f build/setup-librachive/deps/lib/libarchive.so || test -f build/setup-librachive/deps/lib/libarchive.dylib
148
147
  test -f build/setup-librachive/deps/lib/libarchive.a
149
148
  test -f build/setup-librachive/deps/include/archive.h
150
149
  test -f build/setup-librachive/deps/include/archive_entry.h
@@ -178,7 +177,6 @@ jobs:
178
177
  run: |
179
178
  set -o errexit -o pipefail -o noclobber -o nounset
180
179
  test -f build/setup-librachive/deps/lib/pkgconfig/libarchive.pc
181
- test -f build/setup-librachive/deps/lib/libarchive.so || test -f build/setup-librachive/deps/lib/libarchive.dylib
182
180
  test -f build/setup-librachive/deps/lib/libarchive.a
183
181
  test -f build/setup-librachive/deps/include/archive.h
184
182
  test -f build/setup-librachive/deps/include/archive_entry.h
@@ -316,6 +314,9 @@ jobs:
316
314
  - name: Checkout
317
315
  uses: actions/checkout@v4
318
316
 
317
+ - name: Checkout
318
+ uses: actions/checkout@v4
319
+
319
320
  - name: Install packages
320
321
  run: brew install flex bison bash
321
322
 
@@ -52,6 +52,10 @@ else
52
52
  exit 1
53
53
  fi
54
54
 
55
+ re="cmake_minimum_required(VERSION 3.1.3 FATAL_ERROR)"
56
+ sbst="cmake_minimum_required(VERSION 3.24.0)"
57
+ do_patch "$1/CMakeLists.txt" "$re" "$sbst"
58
+
55
59
  if [[ "$OSTYPE" == "msys" || "$OSTYPE" == "cygwin" ]]; then
56
60
  re="ftruncate(file\.fd(), finalBufferSize),"
57
61
  sbst="folly::portability::unistd::ftruncate(file.fd(), finalBufferSize), \/* tebako patched *\/"
@@ -148,6 +148,11 @@ funky_formatter_patch() {
148
148
  do_patch "$1" "$re" "$sbst"
149
149
  }
150
150
 
151
+
152
+ re="cmake_minimum_required(VERSION 3.0.2 FATAL_ERROR)"
153
+ sbst="cmake_minimum_required(VERSION 3.24.0)"
154
+ do_patch "$1/CMakeLists.txt" "$re" "$sbst"
155
+
151
156
  if [[ "$OSTYPE" == "linux-musl"* ]]; then
152
157
  # https://github.com/facebook/folly/issues/1478
153
158
  re="#elif defined(__FreeBSD__)"
@@ -23,7 +23,7 @@
23
23
  # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
24
24
  # POSSIBILITY OF SUCH DAMAGE.
25
25
 
26
- def_ext_prj_t(LIBARCHIVE "3.6.2" "9e2c1b80d5fbe59b61308fdfab6c79b5021d7ff4ff2489fb12daf0a96a83551d")
26
+ def_ext_prj_t(LIBARCHIVE "3.7.9" "ed8b5732e4cd6e30fae909fb945cad8ff9cb7be5c6cdaa3944ec96e4a200c04c")
27
27
 
28
28
  message(STATUS "Collecting libarchive - " v${LIBARCHIVE_VER} " at " ${LIBARCHIVE_SOURCE_DIR})
29
29
 
@@ -74,15 +74,11 @@ endif(DEFINED TEBAKO_BUILD_TARGET)
74
74
  # Method #1 is implemented here.
75
75
  # ...................................................................
76
76
 
77
- if(${IS_MSYS})
78
- set(__LIBARCHIVE "${DEPS}/lib/libarchive_static.a")
79
- else(${IS_MSYS})
80
- set(__LIBARCHIVE "${DEPS}/lib/libarchive.a")
81
- endif(${IS_MSYS})
77
+ set(__LIBARCHIVE "${DEPS}/lib/libarchive.a")
82
78
 
83
79
  ExternalProject_Add(${LIBARCHIVE_PRJ}
84
80
  PREFIX "${DEPS}"
85
- URL http://www.libarchive.org/downloads/libarchive-${LIBARCHIVE_VER}.tar.xz
81
+ URL https://www.libarchive.org/downloads/libarchive-${LIBARCHIVE_VER}.tar.xz
86
82
  URL_HASH SHA256=${LIBARCHIVE_HASH}
87
83
  DOWNLOAD_NO_PROGRESS true
88
84
  UPDATE_COMMAND ""
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.13.0
4
+ version: 0.13.1
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-03-21 00:00:00.000000000 Z
11
+ date: 2025-04-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler