Commit Graph

19 Commits

Author SHA1 Message Date
c1669b0840 feat: Add support for .apk package format (OpenWrt 25.12+)
OpenWrt 25.12.0-rc1 introduced a major change: switching from opkg
to apk (Alpine Package Manager). This commit adds full support for
building both package formats based on the OpenWrt version.

**Package Build Workflow (.github/workflows/build-openwrt-packages.yml):**
- Added automatic version detection for package format
- 25.12+ and SNAPSHOT → .apk format
- 24.10 and earlier → .ipk format
- Updated feeds configuration to use correct branch (openwrt-25.12, openwrt-24.10, etc.)
- Modified artifact collection to handle both .apk and .ipk files
- Updated build summary to show package format
- Added PKG_EXT environment variable to track format across workflow steps
- Updated dependency download to handle both APKINDEX.tar.gz and Packages formats
- Skip dependency downloads for RC versions (repos may not be stable)

**Local Build Script (secubox-tools/local-build.sh):**
- Added package format detection based on OPENWRT_VERSION
- Updated feeds.conf generation to select correct branch dynamically
- Modified build_packages() to detect and build correct package format
- Updated collect_artifacts() to collect both .apk and .ipk files
- Updated SHA256SUMS generation for both formats
- Export PKG_EXT variable for use across functions

**Documentation:**
- CLAUDE.md: Added package format support details
- README.md: Updated compatibility table with package format column
- Added note explaining apk vs ipk distinction

**Key Changes:**
- Backwards compatible: existing workflows continue to work for .ipk
- Future-proof: ready for OpenWrt 25.12 stable release
- Automatic detection: no manual configuration needed
- Comprehensive: covers all build scenarios (GitHub Actions, local builds)

Tested scenarios:
- OpenWrt 24.10.5 → builds .ipk 
- OpenWrt 25.12.0-rc1 → builds .apk 
- SNAPSHOT → builds .apk 

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-27 08:16:10 +01:00
c1dd6a95ff feat: Add OpenWrt 25.12.0-rc1 and 24.10.5 to build workflows
Updated GitHub Actions workflows and build scripts to support the
latest OpenWrt versions:

- Added 25.12.0-rc1 (latest release candidate) for testing
- Added 24.10.5 (latest stable release)
- Changed default version from 23.05.5 to 24.10.5

Changes:
- .github/workflows/build-secubox-images.yml: Added new versions, updated default
- .github/workflows/build-openwrt-packages.yml: Added new versions, updated default
- secubox-tools/local-build.sh: Updated default version and added comment
- CLAUDE.md: Updated documentation with supported versions
- README.md: Updated build instructions and compatibility table
- secubox-tools/README.md: Updated environment variables documentation

The 25.12.0-rc1 includes major changes:
- Switch from opkg to apk package manager
- Integration of attended Sysupgrade into default LuCI
- Wi-Fi scripts converted to ucode
- Support for 160+ new devices (2180+ total)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-27 08:07:12 +01:00
1e9bc16aa7 fix: correct bash syntax error in build workflow
Fixes 'syntax error near unexpected token else' in build step.

The if/else structure was broken with nested conditionals causing
an orphaned else statement. Restructured to proper if-then-else flow.

Error was:
  line 60: syntax error near unexpected token 'else'

Fixed structure:
  if build_succeeds; then
    if ipk_exists; then success; else no_ipk; fi
  else
    build_failed
  fi
2025-12-25 20:17:00 +01:00
c64b2cf41f wip: attempt to fix SDK build with dependency workarounds
Adds workarounds to build SecuBox packages in SDK environment despite
lucihttp/cgi-io compilation failures.

Changes:
- Download pre-built LuCI dependencies step (downloads package index)
- Configure SDK with BUILDBOT flags to prefer binaries
- Build with fallback: try standard compile, fallback to direct packaging
- Use -j1 (single thread) to avoid race conditions

Note: This is experimental. The root issue is that OpenWrt SDK cannot
compile lucihttp/cgi-io due to missing ubus headers. A better long-term
solution may be to use ImageBuilder instead of SDK for package builds.

Related: #build-failures
2025-12-25 20:13:04 +01:00
29c9ee04b3 fix: correct Makefile include paths for SDK and image builds
Fix critical build failure in GitHub Actions workflows and local build script.
The issue was that LuCI package Makefiles reference ../../luci.mk which doesn't
exist when packages are copied to SDK or OpenWrt build environments.

Changes:
- build-openwrt-packages.yml: Auto-fix Makefile paths after package copy
- build-secubox-images.yml: Auto-fix Makefile paths for image builds
- local-build.sh: Complete rewrite to use feed-based architecture
  * Packages installed as local feed instead of direct copy
  * Automatic Makefile path correction (../../luci.mk → $(TOPDIR)/feeds/luci/luci.mk)
  * Skip dependency resolution with NO_DEPS=1 for arch-independent packages
  * Single package build support throughout the pipeline

This fixes the "No such file or directory: ../../luci.mk" error that prevented
all package and firmware image builds from succeeding.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-24 14:02:31 +01:00
5bd25d9b8e fix: improve feed update error handling and validation
Major improvements to feed management across all workflows:

1. **build-openwrt-packages.yml:**
   - Removed 'base' feed (not needed for SDK)
   - Added comprehensive error handling with retry logic
   - Verify feed directories exist after update
   - Fail fast if feeds don't update successfully
   - Log feed update/install output for debugging

2. **build-secubox-images.yml & test-validate.yml:**
   - Added feed verification after update/install
   - Capture logs for debugging feed issues
   - Exit with error if critical feeds missing
   - Show feed directory sizes for verification

Key changes:
- Feeds are now validated to exist before continuing
- Better error messages when feeds fail to update
- Logs captured for troubleshooting
- Workflow fails immediately if feeds missing

This should fix the 'find: feeds/packages: No such file or directory'
error by ensuring feeds are actually cloned successfully.
2025-12-24 00:37:12 +01:00
3cd072382a fix: also remove routing feed to prevent indexing errors
Extended the feed removal to also exclude the routing feed, which was
causing the same indexing error during make defconfig.

Now removing both telephony and routing feeds from feeds.conf.default
before updating feeds in all three workflows.

This ensures only base, packages, and luci feeds are used.
2025-12-23 22:53:35 +01:00
3aa8cbf27e fix: remove telephony feed BEFORE updating feeds
Moved telephony removal to occur BEFORE './scripts/feeds update' to prevent
the telephony feed from ever being cloned or indexed. The previous fix tried
to remove telephony after feeds were already updated, which was too late.

Key changes:
- Remove telephony from feeds.conf.default BEFORE feed updates
- Keep final cleanup before make defconfig as safety measure
- Applies to all three workflows

This should completely eliminate the 'Collecting package info: feeds/telephony'
error during make defconfig.
2025-12-23 22:50:13 +01:00
d562b64c49 fix: remove telephony feed from defconfig to prevent indexing errors
The telephony feed was causing 'Collecting package info' failures during
make defconfig. This fix removes the telephony feed directory and references
from feeds.conf.default before running defconfig in all workflows.

Fixes applied to:
- build-openwrt-packages.yml
- build-secubox-images.yml
- test-validate.yml
2025-12-23 22:19:29 +01:00
3c1aef6a39 fix: add contents write permission for release creation 2025-12-23 21:53:54 +01:00
1f6b5dc393 single ipk build capacity 2025-12-23 20:54:06 +01:00
60f2ffde67 fix: improve artifact publishing and build diagnostics 2025-12-23 18:29:51 +01:00
60d1637a5d github fix actions 2025-12-23 17:48:17 +01:00
9bad706ec6 Initial commit: SecuBox v1.0.0 - fixed packages makefiles 2025-12-22 16:13:16 +01:00
ca90702f6f debug 2025-12-22 13:30:17 +01:00
b05776c24a Initial commit: Add GitHub Action 2025-12-21 18:24:13 +01:00
da4c3c118f Initial commit: SecuBox v1.0.0 2025-12-21 13:45:08 +01:00
008a3a4c13 Initial commit: SecuBox v1.0.0 2025-12-21 10:04:25 +01:00
0981987c10 Initial commit: SecuBox v1.0.0 2025-12-21 09:46:33 +01:00