tebako 0.8.0 → 0.8.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 +4 -4
- data/CMakeLists.txt +12 -12
- data/README.adoc +34 -0
- data/common.env +1 -1
- data/lib/tebako/packager/pass1.rb +18 -8
- data/lib/tebako/packager/patch_libraries.rb +3 -6
- data/lib/tebako/version.rb +1 -1
- data/version.txt +1 -1
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 91362403f264faf856ec42bf6eb6d8411a595ba037e8d102132147301975f4b1
|
4
|
+
data.tar.gz: 559b3f4aa269c5b0d0b271ebce87046f591adf229afb51a2f5715ac184b2e3de
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 40d38a252bd29670656293ba1d5beb9bf166159a15380e2e8862448d0312146364882bb441c20891d53aa9742ff07c918f3ff2bb5bb1963b7978392376eb8ea4
|
7
|
+
data.tar.gz: 91228cf1d10a6392b0725418eacfb35a00f982f8a111ed95811c37353a10720f7e786bc169036e41f335faf38e148caf7cdb63410b0fa025bdbf032401b481c5
|
data/CMakeLists.txt
CHANGED
@@ -193,18 +193,18 @@ set(RUBY_STASH_DIR ${DEPS}/stash_${RUBY_VER})
|
|
193
193
|
string(SUBSTRING ${RUBY_VER} 0 3 RUBY_VER_BASE)
|
194
194
|
string(CONCAT RUBY_API_VER ${RUBY_VER_BASE} ".0")
|
195
195
|
|
196
|
-
if(DWARFS_PRELOAD)
|
197
|
-
def_ext_prj_t(LIBDWARFS_WR "0.5.5" "7bf8e5b4432f35b65f6034f614067c2018995c1bebaf935e8cdddc1a3e045c01")
|
198
|
-
|
199
|
-
string(REGEX REPLACE "^([0-9]+)\\.([0-9]+)\\.([0-9]+).*" "\\1;\\2;\\3" LIBDWARFS_WR_VER_COMPONENTS ${LIBDWARFS_WR_VER})
|
200
|
-
|
201
|
-
list(GET LIBDWARFS_WR_VER_COMPONENTS 0 LIBDWARFS_WR_VER_MAJOR)
|
202
|
-
list(GET LIBDWARFS_WR_VER_COMPONENTS 1 LIBDWARFS_WR_VER_MINOR)
|
203
|
-
list(GET LIBDWARFS_WR_VER_COMPONENTS 2 LIBDWARFS_WR_VER_PATCH)
|
204
|
-
set (LIBDWARFS_WR_VER_M ${LIBDWARFS_WR_VER_MAJOR}.${LIBDWARFS_WR_VER_MINOR}.${LIBDWARFS_WR_VER_PATCH})
|
205
|
-
else(DWARFS_PRELOAD)
|
206
|
-
|
207
|
-
endif(DWARFS_PRELOAD)
|
196
|
+
#if(DWARFS_PRELOAD)
|
197
|
+
# def_ext_prj_t(LIBDWARFS_WR "0.5.5" "7bf8e5b4432f35b65f6034f614067c2018995c1bebaf935e8cdddc1a3e045c01")
|
198
|
+
#
|
199
|
+
# string(REGEX REPLACE "^([0-9]+)\\.([0-9]+)\\.([0-9]+).*" "\\1;\\2;\\3" LIBDWARFS_WR_VER_COMPONENTS ${LIBDWARFS_WR_VER})
|
200
|
+
#
|
201
|
+
# list(GET LIBDWARFS_WR_VER_COMPONENTS 0 LIBDWARFS_WR_VER_MAJOR)
|
202
|
+
# list(GET LIBDWARFS_WR_VER_COMPONENTS 1 LIBDWARFS_WR_VER_MINOR)
|
203
|
+
# list(GET LIBDWARFS_WR_VER_COMPONENTS 2 LIBDWARFS_WR_VER_PATCH)
|
204
|
+
# set (LIBDWARFS_WR_VER_M ${LIBDWARFS_WR_VER_MAJOR}.${LIBDWARFS_WR_VER_MINOR}.${LIBDWARFS_WR_VER_PATCH})
|
205
|
+
#else(DWARFS_PRELOAD)
|
206
|
+
def_ext_prj_g(DWARFS_WR "v0.5.7")
|
207
|
+
#endif(DWARFS_PRELOAD)
|
208
208
|
|
209
209
|
set(LIBYAML_RUBY_OPTION "")
|
210
210
|
if(${RUBY_VER} VERSION_LESS "3.2.0")
|
data/README.adoc
CHANGED
@@ -518,6 +518,40 @@ correct version.
|
|
518
518
|
Run the following command prior to using Tebako, or add it into your shell
|
519
519
|
profile.
|
520
520
|
|
521
|
+
====== jemalloc Library Build
|
522
|
+
|
523
|
+
The `libdwarfs` build script creates an additional jemalloc installation on macOS. This is done to satisfy the magic applied by folly during linking but uses a static library.
|
524
|
+
If the library is created in an emulated environment (QEMU, Rosetta, etc.), there are known issues (link:https://github.com/jemalloc/jemalloc/issues/1997[jemalloc issue #1997]) where jemalloc incorrectly defines the number of significant virtual address bits (lg-vaddr parameter).
|
525
|
+
|
526
|
+
These issues can be fixed by explicitly setting the `--with-lg-vaddr` parameter for the jemalloc build. We decided not to automate this since we do not feel that we can provide reasonable test coverage. Instead, our build script accepts the `LG_VADDR` environment variable and passes it to the jemalloc build as `--with-lg-vaddr=${LG_VADDR}`.
|
527
|
+
|
528
|
+
The `LG_VADDR` parameter specifies the number of significant virtual address bits, which can vary based on the CPU architecture and emulation status.
|
529
|
+
|
530
|
+
Simple script to set `LG_VADDR`. Please note that it is provided for illustration only.
|
531
|
+
|
532
|
+
[source,sh]
|
533
|
+
----
|
534
|
+
#!/bin/bash
|
535
|
+
|
536
|
+
# Check the CPU architecture
|
537
|
+
ARCH=$(uname -m)
|
538
|
+
|
539
|
+
# Check if running under Rosetta 2 emulation
|
540
|
+
if [[ "$ARCH" == "x86_64" && $(sysctl -n sysctl.proc_translated) == "1" ]]; then
|
541
|
+
echo "Running on Apple Silicon under Rosetta 2 emulation"
|
542
|
+
export LG_VADDR=39
|
543
|
+
elif [[ "$ARCH" == "arm64" ]]; then
|
544
|
+
echo "Running on Apple Silicon"
|
545
|
+
export LG_VADDR=39
|
546
|
+
else
|
547
|
+
echo "Running on Intel Silicon"
|
548
|
+
export LG_VADDR=48
|
549
|
+
fi
|
550
|
+
|
551
|
+
echo "Setting lg-vaddr to $LG_VADDR"
|
552
|
+
----
|
553
|
+
|
554
|
+
|
521
555
|
[source,sh]
|
522
556
|
----
|
523
557
|
export PATH="$(brew --prefix bison)/bin:$PATH"
|
data/common.env
CHANGED
@@ -88,9 +88,23 @@ module Tebako
|
|
88
88
|
SUBST
|
89
89
|
}.freeze
|
90
90
|
|
91
|
-
#
|
92
|
-
#
|
93
|
-
#
|
91
|
+
# The logic for statically linked extensions is broken entirely in the latest Ruby versions.
|
92
|
+
# The code below looks reasonble - we do not set -bundle_loader when building with -with-static-ext option
|
93
|
+
# However Gems bundled with Ruby just ignore with-static-ext option and build extensions as shared libraries
|
94
|
+
# So the -bundler_loader option is required for them to link.
|
95
|
+
# It is strange that it is disabled in any case because this option does not create any issues for static
|
96
|
+
# libraries.
|
97
|
+
# ---------------------------------------------------
|
98
|
+
# elif test "x$EXTSTATIC" = x
|
99
|
+
# then :
|
100
|
+
#
|
101
|
+
# # When building exts as bundles, a mach-o bundle needs to know its loader
|
102
|
+
# # program to bind symbols from the ruby executable
|
103
|
+
# EXTDLDFLAGS="-bundle_loader '\$(BUILTRUBY)'"
|
104
|
+
|
105
|
+
DARWIN_CONFIGURE_PATCH = {
|
106
|
+
"elif test \"x$EXTSTATIC\" = x" => "elif true"
|
107
|
+
}.freeze
|
94
108
|
|
95
109
|
OPENSSL_EXTCONF_RB_SUBST = <<~SUBST
|
96
110
|
# Start of tebako patch
|
@@ -137,11 +151,7 @@ module Tebako
|
|
137
151
|
patch_map = get_base_patch_map(mount_point)
|
138
152
|
|
139
153
|
# ....................................................
|
140
|
-
|
141
|
-
# On MacOS it generates bod EXTDLDFLAGS WITH -bundle_loader <missing parameter>
|
142
|
-
# However, it loooks likes EXTDLDFLAGS are just redundant for final Ruby linkage, so we are
|
143
|
-
# just removing it on pass 2 (at least for now)
|
144
|
-
# patch_map.store("configure", DARWIN_CONFIGURE_PATCH) if ostype =~ /darwin/
|
154
|
+
patch_map.store("configure", DARWIN_CONFIGURE_PATCH) if ostype =~ /darwin/
|
145
155
|
|
146
156
|
# ....................................................
|
147
157
|
# autoload :OpenSSL, "openssl"
|
@@ -34,13 +34,10 @@ module Tebako
|
|
34
34
|
module PatchLibraries
|
35
35
|
class << self
|
36
36
|
# rubocop:disable Style/WordArray
|
37
|
-
|
38
|
-
# NOTE: folly provides build-in implementation of jemalloc
|
39
|
-
|
40
37
|
DARWIN_BREW_LIBS = [
|
41
|
-
["zlib", "z"],
|
42
|
-
["ncurses", "ncurses"],
|
43
|
-
["libyaml", "yaml"],
|
38
|
+
["zlib", "z"], ["gdbm", "gdbm"], ["readline", "readline"], ["libffi", "ffi"],
|
39
|
+
["ncurses", "ncurses"], ["fmt", "fmt"], ["lz4", "lz4"], ["xz", "lzma"],
|
40
|
+
["libyaml", "yaml"], ["boost", "boost_chrono"], ["double-conversion", "double-conversion"]
|
44
41
|
].freeze
|
45
42
|
|
46
43
|
DARWIN_BREW_LIBS_PRE_31 = [["openssl@1.1", "ssl"], ["openssl@1.1", "crypto"]].freeze
|
data/lib/tebako/version.rb
CHANGED
data/version.txt
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.8.
|
1
|
+
0.8.1
|
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.8.
|
4
|
+
version: 0.8.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ribose Inc.
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-08-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -115,7 +115,7 @@ licenses:
|
|
115
115
|
metadata:
|
116
116
|
homepage_uri: https://github.com/tamatebako/tebako
|
117
117
|
source_code_uri: https://github.com/tamatebako/tebako
|
118
|
-
post_install_message:
|
118
|
+
post_install_message:
|
119
119
|
rdoc_options: []
|
120
120
|
require_paths:
|
121
121
|
- cmake
|
@@ -139,8 +139,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
139
139
|
- !ruby/object:Gem::Version
|
140
140
|
version: '0'
|
141
141
|
requirements: []
|
142
|
-
rubygems_version: 3.
|
143
|
-
signing_key:
|
142
|
+
rubygems_version: 3.3.27
|
143
|
+
signing_key:
|
144
144
|
specification_version: 4
|
145
145
|
summary: Packager for Ruby executables
|
146
146
|
test_files: []
|