leptris 1.9.162.3-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 +4 -4
- data/CHANGELOG.md +23 -1
- data/Rakefile +18 -0
- data/ext/leptris/native/extconf.rb +26 -1
- data/lib/leptris/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: d94bbf339aada43aa8e5f7abacde4125f6cbfe2155dd66d2227d353f68559227
|
|
4
|
+
data.tar.gz: 3a1eadd4695267e72fd0f2b48a8183f5bb4294f392b81c9c9e4350b16bf89f91
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 0206d776e3db7c02447311042236685f3fd06437b8325c028f7833ffd6d8852538f0f0702a1aed1290680bf4390a5483ea8f15f6a26abc1db2c28405a168a076
|
|
7
|
+
data.tar.gz: fcc2a4962f63d7e9c54bf03557ee1d7df6f7a3a6d17d3e8f51f12b3d14f12084e24a3f323e9eb3880a3d0378c012bf17d060062d22f4e0a3797bdde731bc2ce8
|
data/CHANGELOG.md
CHANGED
|
@@ -5,7 +5,29 @@ 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.
|
|
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
|
|
21
|
+
|
|
22
|
+
### Fixed
|
|
23
|
+
|
|
24
|
+
- **Native layer linkage, second round**: 1.9.162.3's
|
|
25
|
+
-undefined dynamic_lookup rode $LDFLAGS, which the release
|
|
26
|
+
runner's Ruby 3.3 mkmf drops from the bundle link line. The
|
|
27
|
+
extconf now pins BOTH $LDFLAGS and $DLDFLAGS (plus
|
|
28
|
+
-mmacosx-version-min in the compile flags) — verified locally:
|
|
29
|
+
minos 11.0, libSystem-only linkage.
|
|
30
|
+
\n## [1.9.162.3] - 2026-09-14
|
|
9
31
|
|
|
10
32
|
### Fixed
|
|
11
33
|
|
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
|
|
@@ -7,6 +7,31 @@
|
|
|
7
7
|
ENV["MACOSX_DEPLOYMENT_TARGET"] ||= "11.0"
|
|
8
8
|
require "mkmf"
|
|
9
9
|
if RUBY_PLATFORM =~ /darwin/
|
|
10
|
-
|
|
10
|
+
# Robust across mkmf versions: older rubies drop $(ldflags)
|
|
11
|
+
# from the bundle link line, so pin BOTH the compile and link
|
|
12
|
+
# variables. -undefined dynamic_lookup is the standard C-ext
|
|
13
|
+
# convention (Ruby symbols resolve from the loading
|
|
14
|
+
# interpreter); -mmacosx-version-min keeps the bundle loadable
|
|
15
|
+
# on older user OSes than the building runner.
|
|
16
|
+
min = " -mmacosx-version-min=#{ENV['MACOSX_DEPLOYMENT_TARGET']}"
|
|
17
|
+
lookup = " -undefined dynamic_lookup"
|
|
18
|
+
[$LDFLAGS, $DLDFLAGS, $CFLAGS, $CXXFLAGS].each do |var|
|
|
19
|
+
var << min unless var.include?(min.strip)
|
|
20
|
+
end
|
|
21
|
+
[$LDFLAGS, $DLDFLAGS].each do |var|
|
|
22
|
+
var << lookup unless var.include?("dynamic_lookup")
|
|
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"] = ""
|
|
11
36
|
end
|
|
12
37
|
create_makefile("leptris/xml/native")
|
data/lib/leptris/version.rb
CHANGED