fix(ci): copy all Lua headers from source directory to fix lualib.h error
Enhanced Lua header installation in SDK to copy ALL .h files from the Lua source directory, not just search for lua.h individually. Changes: - Primary: Copy all *.h files from feeds/packages/lang/lua/src/lua-*/ - Fallback 1: Find directory with lua.h in build_dir and copy ALL headers - Fallback 2: Search for lua.h, lualib.h, lauxlib.h individually - Added verification for all 3 critical headers This fixes the lualib.h missing error that occurred even when lua.h was successfully found and installed. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
59c3e0dd53
commit
39ca4af683
53
.github/workflows/build-openwrt-packages.yml
vendored
53
.github/workflows/build-openwrt-packages.yml
vendored
@ -562,26 +562,55 @@ jobs:
|
|||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
else
|
else
|
||||||
echo "⚠️ Lua source not found in feeds, trying alternative method..."
|
echo "⚠️ Lua source not found in feeds, trying alternative methods..."
|
||||||
|
|
||||||
# Alternative: use system lua headers if available
|
# Alternative 1: Search for Lua headers in build_dir
|
||||||
for STAGING in staging_dir/target-*; do
|
LUA_BUILD_DIR=$(find build_dir -type f -name "lua.h" -printf '%h\n' 2>/dev/null | head -1)
|
||||||
if [ -d "$STAGING" ]; then
|
|
||||||
mkdir -p "$STAGING/usr/include"
|
if [ -n "$LUA_BUILD_DIR" ]; then
|
||||||
# Copy from build_dir if lua was built
|
echo "Found Lua headers in build_dir at: $LUA_BUILD_DIR"
|
||||||
find build_dir -name "lua.h" -exec cp {} "$STAGING/usr/include/" \; 2>/dev/null || true
|
|
||||||
fi
|
for STAGING in staging_dir/target-*; do
|
||||||
done
|
if [ -d "$STAGING" ]; then
|
||||||
|
mkdir -p "$STAGING/usr/include"
|
||||||
|
# Copy ALL header files from the directory
|
||||||
|
cp -v "$LUA_BUILD_DIR"/*.h "$STAGING/usr/include/" 2>/dev/null || true
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
else
|
||||||
|
# Alternative 2: Use system Lua headers as last resort
|
||||||
|
echo "Searching for system Lua headers..."
|
||||||
|
|
||||||
|
for STAGING in staging_dir/target-*; do
|
||||||
|
if [ -d "$STAGING" ]; then
|
||||||
|
mkdir -p "$STAGING/usr/include"
|
||||||
|
|
||||||
|
# Try to find lua headers anywhere in the SDK
|
||||||
|
find . -type f \( -name "lua.h" -o -name "lualib.h" -o -name "lauxlib.h" \) \
|
||||||
|
-exec cp {} "$STAGING/usr/include/" \; 2>/dev/null || true
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Verify headers are installed
|
# Verify headers are installed
|
||||||
echo ""
|
echo ""
|
||||||
echo "Verifying Lua headers installation:"
|
echo "Verifying Lua headers installation:"
|
||||||
for STAGING in staging_dir/target-*; do
|
for STAGING in staging_dir/target-*; do
|
||||||
if [ -f "$STAGING/usr/include/lua.h" ]; then
|
HEADERS_FOUND=0
|
||||||
echo "✅ $STAGING/usr/include/lua.h found"
|
for HEADER in lua.h lualib.h lauxlib.h; do
|
||||||
|
if [ -f "$STAGING/usr/include/$HEADER" ]; then
|
||||||
|
echo "✅ $STAGING/usr/include/$HEADER"
|
||||||
|
HEADERS_FOUND=$((HEADERS_FOUND + 1))
|
||||||
|
else
|
||||||
|
echo "❌ $STAGING/usr/include/$HEADER NOT FOUND"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ $HEADERS_FOUND -eq 3 ]; then
|
||||||
|
echo "✅ All required Lua headers installed for $(basename $STAGING)"
|
||||||
else
|
else
|
||||||
echo "❌ $STAGING/usr/include/lua.h NOT FOUND"
|
echo "⚠️ Warning: Missing some Lua headers in $(basename $STAGING)"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|||||||
@ -507,15 +507,35 @@ FEEDS
|
|||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
else
|
else
|
||||||
print_warn "Lua source not found in feeds, trying alternative method..."
|
print_warn "Lua source not found in feeds, trying alternative methods..."
|
||||||
|
|
||||||
# Alternative: use system lua headers if available
|
# Alternative 1: Search for Lua headers in build_dir
|
||||||
for STAGING in staging_dir/target-*; do
|
LUA_BUILD_DIR=$(find build_dir -type f -name "lua.h" -printf '%h\n' 2>/dev/null | head -1)
|
||||||
if [ -d "$STAGING" ]; then
|
|
||||||
mkdir -p "$STAGING/usr/include"
|
if [ -n "$LUA_BUILD_DIR" ]; then
|
||||||
find build_dir -name "lua.h" -exec cp {} "$STAGING/usr/include/" \; 2>/dev/null || true
|
echo "Found Lua headers in build_dir at: $LUA_BUILD_DIR"
|
||||||
fi
|
|
||||||
done
|
for STAGING in staging_dir/target-*; do
|
||||||
|
if [ -d "$STAGING" ]; then
|
||||||
|
mkdir -p "$STAGING/usr/include"
|
||||||
|
# Copy ALL header files from the directory
|
||||||
|
cp "$LUA_BUILD_DIR"/*.h "$STAGING/usr/include/" 2>/dev/null || true
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
else
|
||||||
|
# Alternative 2: Use system Lua headers as last resort
|
||||||
|
echo "Searching for system Lua headers..."
|
||||||
|
|
||||||
|
for STAGING in staging_dir/target-*; do
|
||||||
|
if [ -d "$STAGING" ]; then
|
||||||
|
mkdir -p "$STAGING/usr/include"
|
||||||
|
|
||||||
|
# Try to find lua headers anywhere in the SDK
|
||||||
|
find . -type f \( -name "lua.h" -o -name "lualib.h" -o -name "lauxlib.h" \) \
|
||||||
|
-exec cp {} "$STAGING/usr/include/" \; 2>/dev/null || true
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Verify headers are installed
|
# Verify headers are installed
|
||||||
@ -1117,15 +1137,35 @@ setup_openwrt_feeds() {
|
|||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
else
|
else
|
||||||
print_warning "Lua source not found in feeds, trying alternative method..."
|
print_warning "Lua source not found in feeds, trying alternative methods..."
|
||||||
|
|
||||||
# Alternative: use system lua headers if available
|
# Alternative 1: Search for Lua headers in build_dir
|
||||||
for STAGING in staging_dir/target-*; do
|
LUA_BUILD_DIR=$(find build_dir -type f -name "lua.h" -printf '%h\n' 2>/dev/null | head -1)
|
||||||
if [ -d "$STAGING" ]; then
|
|
||||||
mkdir -p "$STAGING/usr/include"
|
if [ -n "$LUA_BUILD_DIR" ]; then
|
||||||
find build_dir -name "lua.h" -exec cp {} "$STAGING/usr/include/" \; 2>/dev/null || true
|
echo "Found Lua headers in build_dir at: $LUA_BUILD_DIR"
|
||||||
fi
|
|
||||||
done
|
for STAGING in staging_dir/target-*; do
|
||||||
|
if [ -d "$STAGING" ]; then
|
||||||
|
mkdir -p "$STAGING/usr/include"
|
||||||
|
# Copy ALL header files from the directory
|
||||||
|
cp "$LUA_BUILD_DIR"/*.h "$STAGING/usr/include/" 2>/dev/null || true
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
else
|
||||||
|
# Alternative 2: Use system Lua headers as last resort
|
||||||
|
echo "Searching for system Lua headers..."
|
||||||
|
|
||||||
|
for STAGING in staging_dir/target-*; do
|
||||||
|
if [ -d "$STAGING" ]; then
|
||||||
|
mkdir -p "$STAGING/usr/include"
|
||||||
|
|
||||||
|
# Try to find lua headers anywhere in the SDK
|
||||||
|
find . -type f \( -name "lua.h" -o -name "lualib.h" -o -name "lauxlib.h" \) \
|
||||||
|
-exec cp {} "$STAGING/usr/include/" \; 2>/dev/null || true
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Verify headers are installed
|
# Verify headers are installed
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user