secubox-openwrt/templates/Makefile.template
CyberMind-FR a53e5f7068 feat: Add comprehensive permission management system (v0.3.1)
Implement three-tier permission management across all SecuBox modules:

**1. Package-Level Permissions (PKG_FILE_MODES)**
- Add PKG_FILE_MODES to all 15 module Makefiles
- RPCD scripts: 755 (executable)
- CSS/JS/JSON files: 644 (default, no config needed)
- Ensures correct permissions at installation time

**2. Runtime Permission Fix**
- New script: /usr/libexec/secubox/fix-permissions.sh
- RPCD method: luci.secubox fix_permissions
- UI control: "🔧 Fix Perms" button in Quick Actions
- Fixes all permissions and restarts services

**3. Automation & Documentation**
- secubox-tools/add-pkg-file-modes.sh: Auto-configure PKG_FILE_MODES
- PERMISSIONS-GUIDE.md: Comprehensive permissions guide
- MODULE-ENABLE-DISABLE-DESIGN.md: Enable/disable system design doc
- Updated Makefile template with PKG_FILE_MODES pattern

**Modules Updated:**
- luci-app-auth-guardian
- luci-app-bandwidth-manager
- luci-app-cdn-cache
- luci-app-client-guardian
- luci-app-crowdsec-dashboard
- luci-app-ksm-manager
- luci-app-media-flow
- luci-app-netdata-dashboard
- luci-app-netifyd-dashboard
- luci-app-network-modes
- luci-app-secubox (+ fix-permissions.sh script)
- luci-app-system-hub
- luci-app-traffic-shaper
- luci-app-vhost-manager
- luci-app-wireguard-dashboard

**Benefits:**
- No more manual permission fixes after installation
- Users can fix permissions from UI without SSH access
- Proper OpenWrt package management compliance
- Automated detection and configuration

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-28 02:19:30 +01:00

81 lines
2.8 KiB
Makefile

# Template Makefile for SecuBox LuCI Applications
# ================================================
# Copy this template and customize for each package
include $(TOPDIR)/rules.mk
# Package metadata
PKG_NAME:=luci-app-PACKAGE_NAME
PKG_VERSION:=2.0.0
PKG_RELEASE:=1
PKG_LICENSE:=Apache-2.0
PKG_MAINTAINER:=CyberMind <contact@cybermind.fr>
# LuCI specific
LUCI_TITLE:=LuCI - Package Description
LUCI_DESCRIPTION:=Detailed description of what this package does
LUCI_DEPENDS:=+luci-base +rpcd
LUCI_PKGARCH:=all
# File permissions (CRITICAL: RPCD scripts MUST be executable)
# CSS/JS files are 644 by default (correct)
# Only specify files that need non-default permissions (755 for executables)
PKG_FILE_MODES:=/usr/libexec/rpcd/luci.PACKAGE_NAME:755
# Include LuCI build system
include $(TOPDIR)/feeds/luci/luci.mk
# Call BuildPackage - this is handled by luci.mk
# No need for explicit Package/xxx/install when using luci.mk
# === END OF TEMPLATE ===
# ================================================
# NOTES FOR DEVELOPERS
# ================================================
#
# Directory structure expected by luci.mk:
#
# luci-app-mypackage/
# ├── Makefile # This file
# ├── htdocs/
# │ └── luci-static/
# │ └── resources/
# │ └── view/
# │ └── mypackage/
# │ └── main.js # LuCI JavaScript view
# └── root/
# ├── etc/
# │ ├── config/
# │ │ └── mypackage # UCI config file
# │ ├── init.d/
# │ │ └── mypackage # Init script (executable)
# │ └── uci-defaults/
# │ └── 99-mypackage # First-run setup (executable)
# └── usr/
# ├── libexec/
# │ └── rpcd/
# │ └── mypackage # RPCD backend script (executable)
# └── share/
# ├── luci/
# │ └── menu.d/
# │ └── luci-app-mypackage.json # Menu entry
# └── rpcd/
# └── acl.d/
# └── luci-app-mypackage.json # ACL permissions
#
# ================================================
# COMMON LUCI_DEPENDS OPTIONS
# ================================================
#
# +luci-base - Required for all LuCI apps
# +luci-compat - Legacy API compatibility
# +luci-lib-jsonc - JSON-C library
# +rpcd - RPC daemon (for backend scripts)
# +curl - HTTP client
# +jq - JSON processor
# +wireguard-tools - WireGuard utilities
# +qrencode - QR code generator
#
# ================================================