The previous fix only installed Lua via feeds but didn't compile it,
so lua.h headers were still missing from staging_dir. This caused
all LuCI packages to fail compilation with:
fatal error: lua.h: No such file or directory
Root cause: ./scripts/feeds install lua only adds the package to the
build system but doesn't compile it or install headers to staging_dir.
Solution:
1. Install lua package via feeds
2. Enable lua in .config with CONFIG_PACKAGE_lua=m
3. Compile lua package: make package/lua/compile
4. This installs lua.h and other headers to staging_dir/target-*/usr/include/
5. Verify headers are present before continuing
Changes:
- GitHub Actions: Update "Install Lua" step to compile package
- local-build.sh: Update both Lua installation sections (2 places)
- Both: Add verification that lua.h exists in staging_dir
This ensures lucihttp and all LuCI packages can find Lua headers
during compilation, preventing the SDK build failures.
Related: f5c98d9 (previous incomplete fix)
Fixes: #lucihttp-missing-headers
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
226 lines
12 KiB
JSON
226 lines
12 KiB
JSON
{
|
|
"permissions": {
|
|
"allow": [
|
|
"Bash(done)",
|
|
"Bash(ls:*)",
|
|
"Bash(find:*)",
|
|
"Bash(xargs:*)",
|
|
"Bash(mkdir:*)",
|
|
"Bash(shellcheck:*)",
|
|
"Bash(git add:*)",
|
|
"Bash(git commit:*)",
|
|
"Bash(git push)",
|
|
"Bash(git remote set-url:*)",
|
|
"Bash(git tag:*)",
|
|
"Bash(git push:*)",
|
|
"Bash(for module in crowdsec netdata netifyd)",
|
|
"Bash(do echo \"=== $module-dashboard ===\" grep '\"\"\"\"path\"\"\"\":' luci-app-$module-dashboard/root/usr/share/luci/menu.d/*.json)",
|
|
"Bash(grep:*)",
|
|
"Bash(for module in cdn-cache client-guardian crowdsec netdata netifyd-dashboard network-modes system-hub wireguard-dashboard)",
|
|
"Bash(do echo '=== $module ===' find luci-app-$module/htdocs -name *.js -exec grep -h object: {})",
|
|
"Bash(chmod:*)",
|
|
"Bash(./secubox-tools/validate-modules.sh:*)",
|
|
"Bash(./secubox-tools/validate-module-generation.sh:*)",
|
|
"Bash(bash:*)",
|
|
"Bash(timeout 10 ./secubox-tools/validate-module-generation.sh:*)",
|
|
"Bash(cat:*)",
|
|
"Bash(python3:*)",
|
|
"Bash(for file in luci-app-vhost-manager/htdocs/luci-static/resources/view/vhost-manager/*.js)",
|
|
"Bash(do)",
|
|
"Bash(node -c:*)",
|
|
"Bash(for file in luci-app-bandwidth-manager/htdocs/luci-static/resources/view/bandwidth-manager/*.js)",
|
|
"Bash(for file in luci-app-system-hub/htdocs/luci-static/resources/view/system-hub/*.js)",
|
|
"Bash(./local-build.sh:*)",
|
|
"Bash(./scripts/feeds list:*)",
|
|
"Bash(./scripts/feeds update:*)",
|
|
"Bash(./scripts/feeds install:*)",
|
|
"Bash(make:*)",
|
|
"Bash(rsync:*)",
|
|
"Bash(./secubox-tools/local-build.sh:*)",
|
|
"Bash(gh --version:*)",
|
|
"Bash(git reset:*)",
|
|
"Bash(test:*)",
|
|
"Bash(for file in luci-app-traffic-shaper/htdocs/luci-static/resources/view/traffic-shaper/*.js)",
|
|
"Bash(wc:*)",
|
|
"Bash(./secubox-tools/show-module-status.sh:*)",
|
|
"Bash(for file in luci-app-client-guardian/htdocs/luci-static/resources/view/client-guardian/*.js luci-app-client-guardian/htdocs/luci-static/resources/client-guardian/api.js)",
|
|
"Bash(for file in luci-app-crowdsec-dashboard/htdocs/luci-static/resources/view/crowdsec-dashboard/*.js luci-app-crowdsec-dashboard/htdocs/luci-static/resources/crowdsec-dashboard/api.js)",
|
|
"Bash(for file in luci-app-netdata-dashboard/htdocs/luci-static/resources/view/netdata-dashboard/*.js luci-app-netdata-dashboard/htdocs/luci-static/resources/netdata-dashboard/api.js)",
|
|
"Bash(do echo \"Checking $file...\")",
|
|
"Bash(echo:*)",
|
|
"Bash(for file in luci-app-media-flow/htdocs/luci-static/resources/view/media-flow/*.js luci-app-media-flow/htdocs/luci-static/resources/media-flow/*.js)",
|
|
"WebFetch(domain:github.com)",
|
|
"Bash(for file in luci-app-traffic-shaper/htdocs/luci-static/resources/view/traffic-shaper/*.js luci-app-traffic-shaper/htdocs/luci-static/resources/traffic-shaper/api.js)",
|
|
"Bash(timeout 5 ./secubox-tools/validate-modules.sh:*)",
|
|
"Bash(tree:*)",
|
|
"Bash(for file in luci-app-ksm-manager/htdocs/luci-static/resources/view/ksm-manager/*.js luci-app-ksm-manager/htdocs/luci-static/resources/ksm-manager/api.js)",
|
|
"Bash(git show:*)",
|
|
"Bash(for module in luci-app-*/root/usr/share/luci/menu.d/*.json)",
|
|
"Bash(do if [ -f $module ])",
|
|
"Bash(then echo '=== $\\(basename $module\\) ===' jq -r \".[\"\"admin/secubox\"\"] // empty | keys[]\" $module)",
|
|
"Bash(for category in security monitoring network system services)",
|
|
"Bash(do echo \"=== admin/secubox/$category ===\" grep -h \"\"\"admin/secubox/$category/\" luci-app-*/root/usr/share/luci/menu.d/*.json)",
|
|
"Bash(pgrep:*)",
|
|
"Bash(git rev-parse:*)",
|
|
"Bash(ping:*)",
|
|
"Bash(timeout 5 curl:*)",
|
|
"Bash(gh run list:*)",
|
|
"Bash(for dir in luci-app-*/)",
|
|
"Bash(do if [ -f \"$dir/Makefile\" ])",
|
|
"Bash(then if ! grep -q \"include.*luci.mk\" \"$dir/Makefile\")",
|
|
"Bash(fi)",
|
|
"Bash(gh workflow run:*)",
|
|
"Bash(curl:*)",
|
|
"Bash(sudo apt-get install:*)",
|
|
"Bash(/tmp/deploy-system-hub.sh)",
|
|
"Bash(ssh:*)",
|
|
"Bash(timeout 10 ./secubox-tools/validate-modules.sh:*)",
|
|
"Bash(scp:*)",
|
|
"Bash(./deploy-theme-system.sh)",
|
|
"Bash(for file in health.js services.js logs.js backup.js components.js remote.js settings.js diagnostics.js)",
|
|
"Bash(if [ -f \"$file\" ])",
|
|
"Bash(then)",
|
|
"Bash(if ! grep -q \"system-hub/theme\" \"$file\")",
|
|
"Bash(for file in services.js logs.js backup.js components.js remote.js settings.js diagnostics.js)",
|
|
"Bash(do if [ -f \"$file\" ])",
|
|
"Bash(then head -10 \"$file\")",
|
|
"Bash(./deploy-beta-release.sh:*)",
|
|
"Bash(./deploy-v0.1.1.sh:*)",
|
|
"Bash(luci-app-secubox/Makefile )",
|
|
"Bash(luci-app-secubox/htdocs/luci-static/resources/secubox/*.css)",
|
|
"Bash(luci-app-secubox/htdocs/luci-static/resources/secubox/theme.js )",
|
|
"Bash(luci-app-secubox/htdocs/luci-static/resources/view/secubox/*.js)",
|
|
"Bash(luci-app-secubox/root/usr/libexec/rpcd/luci.secubox )",
|
|
"Bash(luci-app-secubox/root/usr/share/rpcd/acl.d/luci-app-secubox.json )",
|
|
"Bash(luci-app-system-hub/Makefile )",
|
|
"Bash(luci-app-system-hub/README.md )",
|
|
"Bash(luci-app-system-hub/htdocs/luci-static/resources/system-hub/api.js )",
|
|
"Bash(luci-app-system-hub/htdocs/luci-static/resources/system-hub/dashboard.css )",
|
|
"Bash(luci-app-system-hub/htdocs/luci-static/resources/system-hub/theme.js )",
|
|
"Bash(luci-app-system-hub/htdocs/luci-static/resources/view/system-hub/*.js)",
|
|
"Bash(luci-app-system-hub/root/usr/libexec/rpcd/luci.system-hub )",
|
|
"Bash(luci-app-system-hub/root/usr/share/rpcd/acl.d/luci-app-system-hub.json )",
|
|
"Bash(LUCI_DEVELOPMENT_REFERENCE.md)",
|
|
"Bash(while read file)",
|
|
"Bash(do echo \"=== $file ===\" grep \"object:\" \"$file\")",
|
|
"Bash(for file in luci-app-secubox/htdocs/luci-static/resources/view/secubox/*.js luci-app-secubox/htdocs/luci-static/resources/secubox/*.js)",
|
|
"Bash(./deploy-secubox-fix.sh)",
|
|
"Bash(./deploy-modules-v2.sh:*)",
|
|
"Bash(./deploy-dynamic-modules.sh:*)",
|
|
"Bash(/tmp/force-reload-luci.sh:*)",
|
|
"Bash(/tmp/deploy-common-css.sh)",
|
|
"Bash(/tmp/deploy-services.sh)",
|
|
"Bash(/tmp/deploy-health.sh)",
|
|
"Bash(/tmp/deploy-system-hub-all.sh)",
|
|
"Bash(/tmp/deploy-secubox-final.sh)",
|
|
"WebFetch(domain:cybermind.fr)",
|
|
"Bash(/tmp/deploy-system-hub-demo-style.sh)",
|
|
"Bash(./secubox-tools/build-modules.sh:*)",
|
|
"Bash(./secubox-tools/fix-permissions.sh:*)",
|
|
"Bash(/tmp/deploy-acl-updates.sh:*)",
|
|
"Bash(/tmp/deploy-acl-updates-v2.sh)",
|
|
"WebSearch",
|
|
"WebFetch(domain:secubox.cybermood.eu)",
|
|
"Bash(timeout 5 ssh:*)",
|
|
"Bash(ssh-keygen:*)",
|
|
"Bash(/tmp/deploy-v0.3.1.sh)",
|
|
"Bash(/tmp/deploy-v0.3.1-scp.sh)",
|
|
"Bash(tar czf:*)",
|
|
"Bash(__NEW_LINE__ echo \"\")",
|
|
"Bash(./secubox-tools/add-pkg-file-modes.sh:*)",
|
|
"Bash(luci-app-secubox/htdocs/luci-static/resources/view/secubox/dashboard.js )",
|
|
"Bash(luci-app-secubox/htdocs/luci-static/resources/view/secubox/modules.js )",
|
|
"Bash(git checkout:*)",
|
|
"Bash(./scripts/setup-github-pages.sh:*)",
|
|
"Bash(mkdocs:*)",
|
|
"Bash(apt search:*)",
|
|
"Bash(source .venv/bin/activate)",
|
|
"Bash(pip install:*)",
|
|
"Bash(./scripts/setup-wiki.sh:*)",
|
|
"Bash(gh repo edit --help:*)",
|
|
"Bash(gh repo edit:*)",
|
|
"Bash(gh auth status:*)",
|
|
"Bash(git ls-remote:*)",
|
|
"Bash(for module in luci-app-ksm-manager luci-app-media-flow luci-app-netdata-dashboard luci-app-netifyd-dashboard luci-app-network-modes luci-app-secubox luci-app-system-hub luci-app-traffic-shaper luci-app-vhost-manager luci-app-wireguard-dashboard)",
|
|
"Bash(do echo \"=== $module ===\" find \"$module/htdocs/luci-static/resources/view\" -name \"*.js\")",
|
|
"Bash(gh run view:*)",
|
|
"Bash(/tmp/deploy-system-hub-overview-fix.sh)",
|
|
"Bash(./secubox-tools/deploy-network-modes.sh:*)",
|
|
"Bash(/tmp/generalize-makefile-filemodes.sh)",
|
|
"Bash(for file in luci-theme-secubox/htdocs/luci-static/resources/secubox-theme/i18n/*.json)",
|
|
"Bash(./deploy-theme.sh:*)",
|
|
"Bash(./deploy-modules-with-theme.sh:*)",
|
|
"Bash(luci-app-network-modes/htdocs/luci-static/resources/view/network-modes/overview.js )",
|
|
"Bash(luci-app-system-hub/htdocs/luci-static/resources/view/system-hub/overview.js )",
|
|
"Bash(luci-app-system-hub/htdocs/luci-static/resources/view/system-hub/services.js )",
|
|
"Bash(deploy-modules-with-theme.sh)",
|
|
"Bash(timeout 120 ./local-build.sh:*)",
|
|
"Bash(do echo \"=== admin/secubox/$category ===\")",
|
|
"Bash(./secubox-tools/sync_module_versions.sh:*)",
|
|
"Bash(for f in /home/reepost/CyberMindStudio/_files/secubox-openwrt/luci-app-*/htdocs/luci-static/resources/view/*/*.js)",
|
|
"Bash(do grep -q \"secubox-theme/theme\" \"$f\")",
|
|
"Bash(! grep -q \"cyberpunk.css\" \"$f\")",
|
|
"Bash(./secubox-tools/quick-deploy.sh:*)",
|
|
"WebFetch(domain:raw.githubusercontent.com)",
|
|
"WebFetch(domain:docs.crowdsec.net)",
|
|
"Bash(timeout 600 make:*)",
|
|
"Bash(timeout 300 make:*)",
|
|
"Bash(timeout 120 make:*)",
|
|
"Bash(ln:*)",
|
|
"Bash(tee:*)",
|
|
"Bash(feeds/packages/net/crowdsec/patches/)",
|
|
"Bash(feeds/packages/net/crowdsec/files/)",
|
|
"Bash(feeds/packages/net/crowdsec/Makefile)",
|
|
"Bash(feeds/packages/net/crowdsec/patches/002-fix_go_version.patch)",
|
|
"Bash(tail:*)",
|
|
"Bash(pkill -f \"local-build.sh build secubox-app-crowdsec\")",
|
|
"Bash(go version:*)",
|
|
"Bash(timeout 600 ./secubox-tools/local-build.sh:*)",
|
|
"Bash(timeout 300 ./secubox-tools/local-build.sh:*)",
|
|
"Bash(paste:*)",
|
|
"Bash(git -C /home/reepost/CyberMindStudio/_files/secubox-openwrt status --short .github/workflows/)",
|
|
"Bash(/tmp/deploy-secubox-bonus.sh)",
|
|
"Bash(git rm:*)",
|
|
"Bash(timeout 180 ./local-build.sh:*)",
|
|
"Bash(tar:*)",
|
|
"Bash(for makefile in luci-app-*/Makefile)",
|
|
"Bash(do echo \"=== $makefile ===\" grep -A15 \"define Package.*install\" \"$makefile\")",
|
|
"Bash(ssh root@192.168.8.191:*)",
|
|
"Bash(flatpak-spawn --host which:*)",
|
|
"Bash(export PATH=\"$HOME/.local/bin:$PATH\")",
|
|
"Bash(jsonfilter:*)",
|
|
"Bash(for app in luci-app-auth-guardian luci-app-bandwidth-manager luci-app-cdn-cache luci-app-client-guardian luci-app-crowdsec-dashboard)",
|
|
"Bash(do echo \"Moving $app...\")",
|
|
"Bash(git mv:*)",
|
|
"Bash(rm:*)",
|
|
"Bash(find . -type d -name \"appstore\" ! -path \"*/\\\\.git/*\" ! -path \"*/sdk/*\" -exec sh -c 'echo \"\"{}:\"\" && ls -la \"\"{}\"\" | tail -n +4 | head -5' ;)",
|
|
"Bash(find . -type d -name \"modules\" ! -path \"*/\\\\.git/*\" ! -path \"*/sdk/*\" ! -path \"*/node_modules/*\" -exec sh -c 'dir=\"\"{}\"\"; if echo \"\"$dir\"\" | grep -q \"\"secubox\"\"; then echo \"\"$dir:\"\" && ls -la \"\"$dir\"\" 2>/dev/null | tail -n +4 | head -5 || echo \"\" \\(empty\\)\"\"; fi' ;)",
|
|
"Bash(find . -type d -name \"components\" ! -path \"*/\\\\.git/*\" ! -path \"*/sdk/*\" ! -path \"*/node_modules/*\" -exec sh -c 'dir=\"\"{}\"\"; if echo \"\"$dir\"\" | grep -q \"\"secubox\"\"; then echo \"\"$dir:\"\" && ls -la \"\"$dir\"\" 2>/dev/null | tail -n +4 | head -5 || echo \"\" \\(empty\\)\"\"; fi' ;)",
|
|
"Bash(for file in package/secubox/secubox-core/root/usr/share/secubox/plugins/catalog/*.json)",
|
|
"Bash(do jq:*)",
|
|
"Bash(then jq -e . \"$file\")",
|
|
"Bash(sh:*)",
|
|
"Bash(/tmp/deploy-components-modules-fix.sh)",
|
|
"Bash(while read d)",
|
|
"Bash(do mf=\"$d/Makefile\")",
|
|
"Bash(if [ -f \"$mf\" ])",
|
|
"Bash(then echo \"$mf\")",
|
|
"Bash(for d in package/secubox/luci-app-*/)",
|
|
"Bash(do if [ -d \"$d/files\" ])",
|
|
"Bash(for d in secubox-tools/local-feed/luci-app-*/)",
|
|
"Bash(sudo apt-get update:*)",
|
|
"Bash(apt-get update:*)",
|
|
"Bash(apt-get install:*)",
|
|
"Bash(uvicorn:*)",
|
|
"Bash(lsof:*)",
|
|
"Bash(netstat:*)",
|
|
"Bash(python -c:*)",
|
|
"Bash(python -m pytest:*)",
|
|
"Bash(source secubox-tools/webui/.venv/bin/activate:*)",
|
|
"Bash(python -m app.ingest:*)",
|
|
"Bash(python -m json.tool:*)",
|
|
"Bash(python -m uvicorn:*)"
|
|
]
|
|
}
|
|
}
|