You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(build): resolve Windows DLL loading and GLIBC compatibility issues
- Add libiconv as static library dependency to fix Windows Error 126
(missing libiconv-2.dll dependency)
- Update Linux glibc builds to use ubuntu-22.04 for GLIBC 2.35 compatibility
- Fix CMake flag typos (:: to :) for ENABLE_ZLIB, ENABLE_EXPAT, ENABLE_LZO, ENABLE_CPIO
- Update inspection steps to fail if no compiled libraries found
- Fix workflow library detection to handle multiple file types correctly
closes#35, closes#38
# Display compiled libraries for debugging - MUST FAIL if none found
92
92
- name: Inspect built libraries
93
93
if: matrix.platform != 'any'
94
94
shell: bash
95
95
run: |
96
96
echo "=== Platform: ${{ matrix.platform }} ==="
97
97
echo "=== Compiled libraries ==="
98
-
ls lib/ffi-libarchive-binary/*.dll lib/ffi-libarchive-binary/*.so lib/ffi-libarchive-binary/*.dylib 2>/dev/null || echo "No compiled libraries found"
98
+
FOUND=0
99
+
for ext in dll so dylib; do
100
+
for f in lib/ffi-libarchive-binary/*.$ext; do
101
+
if [ -f "$f" ]; then
102
+
echo "$f"
103
+
FOUND=1
104
+
fi
105
+
done
106
+
done
107
+
if [ "$FOUND" -eq 0 ]; then
108
+
echo "ERROR: No compiled libraries found!"
109
+
echo "=== Library directory contents ==="
110
+
ls -la lib/ffi-libarchive-binary/ 2>/dev/null || echo "Directory not found"
111
+
exit 1
112
+
fi
99
113
echo "=== Library directory contents ==="
100
-
ls -la lib/ffi-libarchive-binary/ 2>/dev/null || echo "Directory not found"
114
+
ls -la lib/ffi-libarchive-binary/
101
115
102
-
# Unpack gem and display contents
116
+
# Unpack gem and verify it contains compiled libraries - MUST FAIL if none found
103
117
- name: Inspect gem contents
104
118
shell: bash
105
119
run: |
@@ -108,7 +122,17 @@ jobs:
108
122
echo "=== Files in gem ==="
109
123
ls -R */lib/ 2>/dev/null | head -50
110
124
echo "=== Compiled libraries in gem ==="
111
-
ls */lib/ffi-libarchive-binary/*.dll */lib/ffi-libarchive-binary/*.so */lib/ffi-libarchive-binary/*.dylib 2>/dev/null || echo "No compiled libraries found in gem"
125
+
FOUND=0
126
+
for ext in dll so dylib; do
127
+
for f in $(find . -name "*.$ext" 2>/dev/null); do
128
+
echo "$f"
129
+
FOUND=1
130
+
done
131
+
done
132
+
if [ "$FOUND" -eq 0 ] && [ "${{ matrix.platform }}" != "any" ]; then
# Unpack gem and display compiled libraries for debugging
80
+
# Unpack gem and display compiled libraries for debugging - MUST FAIL if none found
81
81
- name: Inspect gem contents
82
82
shell: bash
83
83
run: |
84
84
cd pkg
85
85
gem unpack ffi-libarchive-binary-*.gem
86
86
echo "=== Platform: ${{ matrix.platform }} ==="
87
87
echo "=== Compiled libraries in gem ==="
88
-
ls */lib/ffi-libarchive-binary/*.dll */lib/ffi-libarchive-binary/*.so */lib/ffi-libarchive-binary/*.dylib 2>/dev/null || echo "No compiled libraries found in gem"
88
+
FOUND=0
89
+
for ext in dll so dylib; do
90
+
for f in $(find . -name "*.$ext" 2>/dev/null); do
91
+
echo "$f"
92
+
FOUND=1
93
+
done
94
+
done
95
+
if [ "$FOUND" -eq 0 ]; then
96
+
echo "ERROR: No compiled libraries found in gem!"
97
+
echo "=== Full lib directory contents ==="
98
+
ls -la */lib/ffi-libarchive-binary/ 2>/dev/null || echo "Directory not found"
99
+
exit 1
100
+
fi
89
101
echo "=== Full lib directory contents ==="
90
-
ls -la */lib/ffi-libarchive-binary/ 2>/dev/null || echo "Directory not found"
0 commit comments