Devuan:
- Fixed sed syntax error: replaced -E with BRE, removed invalid [^$] pattern
- Simplified regex patterns for inittab autologin matching
openEuler:
- Added template patching to inject /etc/redhat-release before pct create
- This fixes 'error in setup task PVE::LXC::Setup::post_create_hook'
- Reverted to unprivileged container (privileged not needed with patch)
openSUSE:
- Added --gpg-auto-import-keys to zypper to avoid interactive GPG prompts
- This was causing the 15+ minute hangs during package manager init
Gentoo:
- Changed to use emerge-webrsync (http) instead of emerge --sync (rsync)
- webrsync is significantly faster than full rsync sync
- Install curl FIRST before other packages (required for install.func)
- Better error handling with separate curl check
Rocky Linux DNS issue:
- Not a script bug - container network/DNS not working
- User should check container gateway and DNS settings
- Rocky/AlmaLinux 10 (EL10): Version detection for DNF 5 with correct packages (langpacks-en instead of glibc-langpack-en), makecache refresh, fallback to minimal install
- openSUSE: Install ncurses-utils and terminfo-base, set TERM in /etc/profile.d and /etc/environment to fix 'unknown terminal type'
- Gentoo: Fixed template pattern to use underscore (-openrc_) instead of dash, special version handling
- openEuler: Set privileged container (var_unprivileged=0) to workaround PVE setup hook limitation
- Devuan: Enhanced sysvinit autologin with multiple inittab patterns, fallback console entry, telinit reload
- CentOS/all: Updated URLs from raw.githubusercontent.com to git.community-scripts.org
- General: Better error handling and removed duplicate code blocks
Adds explicit locale package installation and locale setup for Debian, Ubuntu, Devuan, RHEL-based, openSUSE, and openEuler containers to ensure proper locale generation on minimal templates. Refines template pattern matching for CentOS Stream and Gentoo, and deduplicates openSUSE handling. Also, refactors misc/core.func for consistent indentation and minor logic improvements.
- Gentoo: Fix template pattern to match 'gentoo-current-openrc' naming
- openSUSE: Sanitize ANSI escape codes from MSG_INFO_SHOWN array keys
- Devuan: Use flexible runlevel matching for sysvinit autologin
- CentOS/RHEL: Add missing '-' before $TERM in agetty commands
Fixes reported issues:
- Gentoo template not found (wrong pattern '-current_')
- openSUSE 'not a valid identifier' error on msg_ok with color codes
- Devuan autologin failing due to strict runlevel pattern
- CentOS autologin improvements for LXC console
Increase default RAM to 4GB and disk to 20GB for Hoodik builds in scripts and metadata. Split frontend and backend build steps, add frontend build commands, and clean up build artifacts after installation. Update installation instructions and warnings to reflect new requirements and build times. Change default URLs to use HTTP instead of HTTPS and adjust systemd service working directory.
Adds calls to post_update_to_api to notify the API of container build failures before prompting for container cleanup in both build and error handler scripts.
Refactored build.func to use a unified install.func for all supported OS types, simplifying OS detection and package installation. Added cleanup_lxc step to all install scripts. Removed support for runit, pacman, and nix-env from install.func, and improved SSH server installation logic for containers. Updated template pattern matching for additional OS types.
Changed all function bodies in misc/build.func to use 2-space indentation for improved readability and consistency. No logic changes were made; only whitespace and indentation were updated.
Simplifies and streamlines storage validation logic in create_lxc_container, removing redundant content checks and using direct exit codes for unsupported storage types. Updates error_handler.func with clearer, more specific Proxmox exit code explanations and improves code consistency and readability throughout error handling functions.
All function bodies in build.func are now consistently indented, improving code readability and maintainability. No logic changes were made; only whitespace and indentation were updated.
Expanded IPv6 configuration in build.func to include a 'disable' option with clearer descriptions. Updated install.func to use IPV6_METHOD for disabling IPv6 via sysctl.d, improving clarity and control over IPv6 management.
Moved and redefined _is_whitelisted_key as a global function for use in multiple locations. Improved formatting and readability in the advanced_settings wizard, including better handling of container type selection and IPv6 configuration steps.
Replaces the old whiptail menu loop in advanced_settings with a state-machine, wizard-style configuration supporting forward and backward navigation. Each step is now modular, input validation is improved, and a summary confirmation is shown before applying settings. This enhances user experience and maintainability for container configuration.
Introduced a new load_vars_file() function to safely parse and load whitelisted var_* keys from vars files. Replaced duplicate local parsing logic in default_var_settings and install_script with the shared function for consistency and maintainability.
Added tput smcup and rmcup to advanced_settings to prevent flicker between dialogs. A trap ensures the alternate screen buffer is exited on any return.
Introduces misc/build refactor_menu.func with comprehensive build and configuration functions for LXC containers in Proxmox VE. Refactors and modularizes initialization, storage selection, resource management, and advanced interactive configuration logic from misc/build.func.
Updated feature flag normalization to support both yes/no and 0/1 formats for ENABLE_NESTING, ENABLE_KEYCTL, and ENABLE_MKNOD. ENABLE_FUSE remains as yes/no for backward compatibility.
Commented out sections related to advanced feature flags, array-based FEATURES and PCT_OPTIONS, and dev mode exports that were causing compatibility and autologin issues. Added notes and TODOs for future integration, and moved MOTD/SSH setup for debugging to only run when containers are kept for troubleshooting.
Changed PCT_OPTIONS from an array to a string for proper export and compatibility with Proxmox pct. Features are now passed as a comma-separated string. Also updated install.func to use a literal heredoc for systemd override configuration.