leptris 1.9.162.4-aarch64-linux → 1.9.162.5-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: d94bbf339aada43aa8e5f7abacde4125f6cbfe2155dd66d2227d353f68559227
4
+ data.tar.gz: 3a1eadd4695267e72fd0f2b48a8183f5bb4294f392b81c9c9e4350b16bf89f91
5
5
  SHA512:
6
- metadata.gz: 6404c8450e0c87a8102b121acd89ffc375183b8d2e4d9d288d347a77bcc18591fce826ea21f31e7d1228d71c407465b89b3f53d52dfde0d9b11d4623ca3c4b76
7
- data.tar.gz: 4eb989911f8b9102841c416a4abbf724fed458e9e29c97819698eb908179fb745cb69e38c23e39aa9536b53eeffb285badf6e8b1545191ee453d9b7d755cdcb1
6
+ metadata.gz: 0206d776e3db7c02447311042236685f3fd06437b8325c028f7833ffd6d8852538f0f0702a1aed1290680bf4390a5483ea8f15f6a26abc1db2c28405a168a076
7
+ data.tar.gz: fcc2a4962f63d7e9c54bf03557ee1d7df6f7a3a6d17d3e8f51f12b3d14f12084e24a3f323e9eb3880a3d0378c012bf17d060062d22f4e0a3797bdde731bc2ce8
data/CHANGELOG.md CHANGED
@@ -5,7 +5,19 @@ 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.5] - 2026-09-14
9
+
10
+ ### Fixed
11
+
12
+ - **Native layer linkage, third round**: the runner-side
13
+ libruby reference came from setup-ruby's LIBRUBYARG_SHARED
14
+ (an absolute runner path recorded as LC_LOAD_DYLIB —
15
+ unresolvable on user machines), not from the link flags. The
16
+ extconf now clears the libruby link args for the bundle target
17
+ (Ruby symbols resolve from the loading interpreter); the
18
+ Rakefile prints otool -L into the build log as the standing
19
+ linkage contract check.
20
+ \n## [1.9.162.4] - 2026-09-14
9
21
 
10
22
  ### Fixed
11
23
 
data/Rakefile CHANGED
@@ -96,6 +96,24 @@ task :compile do
96
96
  end
97
97
  bundle = Dir.glob("#{ext_dir}/native.{bundle,so,dll}").first
98
98
  raise "native layer bundle not found after build" unless bundle
99
+ if RUBY_PLATFORM =~ /darwin/
100
+ # The linkage contract is libSystem-only. setup-ruby's custom
101
+ # rubies make mkmf link libruby by absolute runner path
102
+ # (unresolvable on user machines) regardless of cleared
103
+ # RbConfig entries — rewrite that dependency post-link: Ruby
104
+ # symbols resolve from the loading interpreter via
105
+ # -undefined dynamic_lookup, so the libruby LC_LOAD_DYLIB is
106
+ # dead weight; point it at libSystem and re-sign (arm64
107
+ # requires a valid signature after any rewrite).
108
+ `otool -L #{bundle}`.lines.each do |line|
109
+ if (libruby = line[/\S*libruby[\d.]*\.dylib/])
110
+ sh "install_name_tool -change #{libruby} /usr/lib/libSystem.B.dylib #{bundle}"
111
+ end
112
+ end
113
+ sh "codesign --force -s - #{bundle}" if RUBY_PLATFORM =~ /arm64/
114
+ # Build-log proof of the contract.
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.5"
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.5
5
5
  platform: aarch64-linux
6
6
  authors:
7
7
  - Ribose Inc.