leptris 1.9.162.4-aarch64-linux → 1.9.162.6-aarch64-linux

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: dc2e4cafdd7c4b60876da359f49de834b7f7833a2e655344102085ae915baa2e
4
- data.tar.gz: b12dff1daedfa186f5f6a7e225908c48d92aeee6ffd48478a6c11703773035fd
3
+ metadata.gz: 210112c3f5ff8c521e136403e6136ed3ac8333127620e75927b9c1490e7fc99e
4
+ data.tar.gz: 603ce7eb9a8115451f707553018a7bfa8bf7d7165cf68968c197c29b99d40ea6
5
5
  SHA512:
6
- metadata.gz: 6404c8450e0c87a8102b121acd89ffc375183b8d2e4d9d288d347a77bcc18591fce826ea21f31e7d1228d71c407465b89b3f53d52dfde0d9b11d4623ca3c4b76
7
- data.tar.gz: 4eb989911f8b9102841c416a4abbf724fed458e9e29c97819698eb908179fb745cb69e38c23e39aa9536b53eeffb285badf6e8b1545191ee453d9b7d755cdcb1
6
+ metadata.gz: fcd31e807435d4ee0327e535691b364f30a9f85d25e4cf822e6de60653f2bb78f804e4f5c24166f53e774f9d45422b3d1ae1df30be332b46281d501f4a7ccdef
7
+ data.tar.gz: b55db4976ed0c1029c5d3b0c587f232e7c0c692f9d3f91c2d2aedcfcac655a0cd7f955686c73f2f9816c3e65a34e18b6d43a8bdb7cb19e366dad1eefb6003f56
data/CHANGELOG.md CHANGED
@@ -5,7 +5,32 @@ All notable changes to Leptris will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
- ## [1.9.162.4] - 2026-09-14
8
+ ## [1.9.162.6] - 2026-09-14
9
+
10
+ ### Fixed
11
+
12
+ - **Native layer linkage, resolved**: setup-ruby's custom rubies
13
+ link libruby by absolute runner path through mkmf no matter
14
+ which RbConfig entries are cleared (and a post-link
15
+ install_name_tool rewrite rebinds every Ruby symbol to the
16
+ replacement — 1.9.162.5's "Symbol not found: rb_cObject"). The
17
+ darwin bundle is now linked directly in the Rakefile: compile
18
+ via the Makefile, link with pure -undefined dynamic_lookup and
19
+ -mmacosx-version-min=11.0 — no libruby LC_LOAD_DYLIB can exist.
20
+ Build log prints otool -L as the standing contract check.
21
+ \n## [1.9.162.5] - 2026-09-14
22
+
23
+ ### Fixed
24
+
25
+ - **Native layer linkage, third round**: the runner-side
26
+ libruby reference came from setup-ruby's LIBRUBYARG_SHARED
27
+ (an absolute runner path recorded as LC_LOAD_DYLIB —
28
+ unresolvable on user machines), not from the link flags. The
29
+ extconf now clears the libruby link args for the bundle target
30
+ (Ruby symbols resolve from the loading interpreter); the
31
+ Rakefile prints otool -L into the build log as the standing
32
+ linkage contract check.
33
+ \n## [1.9.162.4] - 2026-09-14
9
34
 
10
35
  ### Fixed
11
36
 
data/Rakefile CHANGED
@@ -92,10 +92,28 @@ task :compile do
92
92
  ext_dir = "ext/leptris/native"
93
93
  Dir.chdir(ext_dir) do
94
94
  sh "ruby extconf.rb"
95
- sh "make"
95
+ if RUBY_PLATFORM =~ /darwin/
96
+ # Link the bundle ourselves: setup-ruby's custom rubies make
97
+ # mkmf link libruby by absolute runner path no matter which
98
+ # RbConfig entries are cleared, and any libruby
99
+ # LC_LOAD_DYLIB is unresolvable on user machines. Compile
100
+ # via the Makefile, link with pure -undefined dynamic_lookup
101
+ # (Ruby symbols resolve from the loading interpreter) and a
102
+ # conservative deployment target.
103
+ sh "make native.o"
104
+ sh "cc -dynamic -bundle -undefined dynamic_lookup " \
105
+ "-mmacosx-version-min=#{ENV['MACOSX_DEPLOYMENT_TARGET'] || '11.0'} " \
106
+ "-o native.bundle native.o"
107
+ else
108
+ sh "make"
109
+ end
96
110
  end
97
111
  bundle = Dir.glob("#{ext_dir}/native.{bundle,so,dll}").first
98
112
  raise "native layer bundle not found after build" unless bundle
113
+ if RUBY_PLATFORM =~ /darwin/
114
+ # Build-log proof of the linkage contract: libSystem only.
115
+ puts `otool -L #{bundle}`
116
+ end
99
117
  cp(bundle, "lib/leptris/xml/#{File.basename(bundle)}")
100
118
  puts "Vendored native layer (#{File.basename(bundle)}) into lib/leptris/xml/"
101
119
  end
@@ -21,5 +21,17 @@ if RUBY_PLATFORM =~ /darwin/
21
21
  [$LDFLAGS, $DLDFLAGS].each do |var|
22
22
  var << lookup unless var.include?("dynamic_lookup")
23
23
  end
24
+ # setup-ruby builds carry the RUNNER's absolute libruby path in
25
+ # LIBRUBYARG_SHARED — recorded as an LC_LOAD_DYLIB in the
26
+ # bundle, unresolvable on user machines. A Ruby extension
27
+ # resolves Ruby symbols from the loading interpreter; never
28
+ # link libruby.
29
+ # BOTH maps: mkmf's Makefile interpolates from MAKEFILE_CONFIG,
30
+ # not CONFIG — clearing only CONFIG is a silent no-op (caught via
31
+ # the build-log otool on the runner).
32
+ RbConfig::CONFIG["LIBRUBYARG_SHARED"] = ""
33
+ RbConfig::CONFIG["LIBRUBYARG_STATIC"] = ""
34
+ RbConfig::MAKEFILE_CONFIG["LIBRUBYARG_SHARED"] = ""
35
+ RbConfig::MAKEFILE_CONFIG["LIBRUBYARG_STATIC"] = ""
24
36
  end
25
37
  create_makefile("leptris/xml/native")
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Leptris
4
- VERSION = "1.9.162.4"
4
+ VERSION = "1.9.162.6"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: leptris
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.9.162.4
4
+ version: 1.9.162.6
5
5
  platform: aarch64-linux
6
6
  authors:
7
7
  - Ribose Inc.