- 05 Sep, 2025 2 commits
-
-
Stefy Lanza (nextime / spora ) authored
- Replace agetty --autologin with traditional getty -a root syntax - Remove bash expansion {2..6} and use explicit tty entries - Remove linux parameter that may not be supported in older systems - Use standard 38400 baud rate format - Ensure compatibility with traditional SysV init systems Traditional SysV inittab entries now: 1:23:respawn:/sbin/getty -a root 38400 tty1 # Autologin 2:23:respawn:/sbin/getty 38400 tty2 # Normal login 3:23:respawn:/sbin/getty 38400 tty3 # Normal login ...etc -
Stefy Lanza (nextime / spora ) authored
Major Changes: - Replaced LightDM/SLiM with direct console autologin using SysV inittab - Fixed root account locking that prevented autologin - Added comprehensive SSH configuration for remote access - Created robust auto-start X session with auto-installer launch - Added terminal emulator support (xterm, lxterminal, xfce4-terminal) Key Features: - tty1: Auto-login as root → auto-start X → auto-installer appears - tty2-6: Normal login shells for debugging access - SSH: Uses root password from ISO creation (not hardcoded) - Installed system: Auto-login + OpenVPN + MBetterClient with --web-host 0.0.0.0 Tools Added: - extract_iso.sh / rebuild_iso.sh: Immediate ISO modification workflow - fix_inittab_in_image.sh: Complete ISO analysis and rebuild - Enhanced cleanup.sh with --no-cache option for faster rebuilds - Comprehensive diagnostic tools and logging Build System: - SysV init compatible (no systemd dependencies) - Clean package list (removed display managers, added xinit) - Proper inittab format compliance (max 4 char ID fields) - Enhanced post-installation system configuration Files Modified: - config/hooks/live/setup-console-autologin.hook.chroot (new) - config/hooks/live/enable-ssh-root.hook.chroot (enhanced) - config/hooks/live/run-autologin-debug.hook.chroot (new) - config/package-lists/live.list.chroot (cleaned, added terminals) - config/includes.chroot/root/.bashrc (auto-start X) - config/includes.chroot/root/.xinitrc (auto-installer launch) - config/includes.binary/setup-installed-system.sh (OpenVPN + MBetterClient) - config/includes.chroot/usr/local/bin/live-autologin-debug.sh (new) - Various diagnostic and logging enhancements
-
- 04 Sep, 2025 30 commits
-
-
Stefy Lanza (nextime / spora ) authored
- Add confirm_installation() function with detailed warning dialog - Show target disk information (size, model, device path) - Warn users that all data will be completely erased - Support graphical confirmation (zenity), text-based (dialog), and terminal fallback - Require explicit 'yes' confirmation before proceeding - Add as step 4 before any disk partitioning or formatting - Update total steps from 8 to 9 and renumber subsequent steps - Installation can be safely cancelled without any changes to target disk - Improves safety by preventing accidental data loss
-
Stefy Lanza (nextime / spora ) authored
-
Stefy Lanza (nextime / spora ) authored
- Use PowerShell Format-Volume cmdlet as primary formatting method - More reliable than diskpart with better error handling - Get drive information before formatting for verification - Keep diskpart as fallback method only - PowerShell doesn't require script files and works more consistently - Should resolve blank diskpart window and script access issues - Modern approach using native Windows PowerShell cmdlets
-
Stefy Lanza (nextime / spora ) authored
- Show script content and file size in debug output - Display exact diskpart command being executed - Capture and display diskpart stdout and stderr - Show diskpart exit code for better error analysis - Use Windows ANSI (cp1252) encoding for better diskpart compatibility - Should reveal why diskpart window remains blank and help identify the root cause
-
Stefy Lanza (nextime / spora ) authored
- Use cp1252 (Windows ANSI) encoding instead of UTF-8 for diskpart script - Diskpart expects ANSI encoding and may not read UTF-8 files correctly - Should resolve issue where diskpart window remains blank - File creation and reading now use consistent Windows-compatible encoding
-
Stefy Lanza (nextime / spora ) authored
- Remove incorrect file existence verification that was triggering stdin fallback - User confirmed script file exists and is visible during execution - Faulty check was causing blank diskpart window (stdin mode) - Now always uses script file approach since file creation is actually working - Resolves diskpart execution issue where working script file was being bypassed
-
Stefy Lanza (nextime / spora ) authored
- Detect when script file disappears after successful creation - Fall back to piping diskpart commands via stdin instead of script file - Bypasses Windows security features that may block/virtualize temp files - More reliable approach when file system access is restricted - Addresses issue where file appears created but doesn't actually exist - Resolves diskpart script access problems on secured Windows systems
-
Stefy Lanza (nextime / spora ) authored
- Add detailed status messages for each directory attempt - Explicit UTF-8 encoding for script file creation - Verify file exists and has content after creation - Enhanced error reporting with specific failure reasons - Better handling of permission errors vs other exceptions - Final verification before using script path - Will help identify exactly where script creation fails
-
Stefy Lanza (nextime / spora ) authored
- Detect if running as PyInstaller executable using sys.frozen - Use different directory priority order for PyInstaller vs development: - PyInstaller: prioritize user home directory and executable location - Development: prioritize current working directory - Include executable directory (sys.executable) as fallback for PyInstaller - Ensures diskpart script creation works reliably in both scenarios - Addresses file access issues when running as compiled executable
-
Stefy Lanza (nextime / spora ) authored
- Replace tempfile.NamedTemporaryFile with manual file creation in Windows temp directory - Use Windows TEMP/TMP environment variables for script location - Add file existence verification before running diskpart - Enhanced error handling for FileNotFoundError and subprocess errors - Robust cleanup that won't fail if file deletion fails - Add specific handling for diskpart exit code 2 (file not found) - Resolves '[WinError 2] the system cannot find the file specified' error
-
Stefy Lanza (nextime / spora ) authored
- Improve diskpart script to use disk selection instead of volume - Add disk number detection for more reliable USB targeting - Add fallback formatting using Windows 'format' command - Handle timeout errors (exit code 2147755049 / 0x80070079) - Add timeout handling with 60-second limit - Enhanced error messages for diskpart-specific issues - Better handling of USB drives that may be slow or busy - Resolves 'Command returned non-zero exit status 2147755049' error
-
Stefy Lanza (nextime / spora ) authored
-
Stefy Lanza (nextime / spora ) authored
- Add is_admin_windows() function to check for administrator privileges - Require administrator privileges on Windows startup with clear instructions - Enhanced error handling in USB writing to detect elevation errors - Provide clear guidance on running as administrator - Handle WinError 740 and other elevation-related errors - Resolves 'The requested operation requires elevation' error
-
Stefy Lanza (nextime / spora ) authored
- Replace placeholder with full Windows USB writing implementation - Use diskpart for USB drive formatting and partitioning - Implement file copying with robocopy and Python shutil fallback - Add bootloader file copying to make USB bootable - Enhance USB device detection on Windows: - Show drive letters, volume names, and sizes - Fallback to Windows API for drive type detection - Better user-friendly device labeling - Resolves 'Windows USB writing not implemented' error
-
Stefy Lanza (nextime / spora ) authored
- Try 7z from PATH first - Fallback to default installation directories: - C:\Program Files\7-Zip\7z.exe - C:\Program Files (x86)\7-Zip\7z.exe - Better error handling for extraction failures - Improves compatibility with standard 7-zip installations on Windows
-
Stefy Lanza (nextime / spora ) authored
-
Stefy Lanza (nextime / spora ) authored
- Fix Qt.AlignCenter -> Qt.AlignmentFlag.AlignCenter (line 227) - Fix QLineEdit.Password -> QLineEdit.EchoMode.Password (password fields) - Fix QMessageBox constants to use StandardButton enum - Fix app.exec_() -> app.exec() for PyQt6 compatibility - Resolves AttributeError issues on Windows with PyQt6
-
Stefy Lanza (nextime / spora ) authored
-
Stefy Lanza (nextime / spora ) authored
- Make icon files optional in PyInstaller spec - Check for icon.ico existence before using it on Windows - Check for icon.icns existence before using it on macOS - Added ICON_INFO.md with instructions for creating icon files - Build will now succeed even without icon files present
-
Stefy Lanza (nextime / spora ) authored
-
Stefy Lanza (nextime / spora ) authored
-
Stefy Lanza (nextime / spora ) authored
- Replace Unicode checkmark characters (✓) with ASCII [OK] text - Replace Unicode X marks (✗) with ASCII [ERROR] text - Fixes UnicodeEncodeError with 'charmap' codec on Windows systems - Updated both build_usb_creator.py and BUILD_INSTRUCTIONS.md files
-
Stefy Lanza (nextime / spora ) authored
- Added 9999-cleanup-processes.hook.chroot to terminate only chroot-specific processes - Enhanced build.sh and cleanup.sh with targeted process termination - Only terminate rg/fd processes running inside chroot environment - Added documentation file SYS_UNMOUNT_ISSUE.md
-
Stefy Lanza (nextime / spora ) authored
-
Stefy Lanza (nextime / spora ) authored
✅ FIXED DEPENDENCY DETECTION: - Corrected import testing logic for PyQt6 and PyInstaller - Now properly detects installed packages instead of false negatives - Uses correct import names: PyQt6.QtWidgets and PyInstaller - Eliminates false 'missing dependency' errors when packages are installed TECHNICAL FIX: - Fixed import_tests dictionary for accurate package detection - Proper case-sensitive import checking - Resolves issue where installed packages were incorrectly flagged as missing -
Stefy Lanza (nextime / spora ) authored
✅ SAFER BUILD PROCESS: - Changed install_dependencies() to check_dependencies() - No longer automatically installs PyQt6/pyinstaller - Provides clear instructions if dependencies are missing - User must manually install: pip install -r requirements.txt - Added --check-deps option for dependency verification only TECHNICAL DETAILS: - More secure: doesn't modify user's Python environment - Better control: user chooses when to install packages - Clear feedback: shows which packages are missing - Improved workflow: separates dependency management from building USER WORKFLOW: 1. pip install -r requirements.txt (manual) 2. python3 build_usb_creator.py (checks deps then builds) 3. Executable created if all dependencies satisfied -
Stefy Lanza (nextime / spora ) authored
✅ ENHANCED USB CREATOR with MBetterClient Replacement: - Added optional MBetterClient executable selection (checkbox controlled) - Replace default MBetterClient with custom version in ISO - Updates multiple locations in ISO structure for comprehensive replacement - Validation and file existence checking - Enhanced confirmation dialog showing all customizations TECHNICAL DETAILS: + MBetterClient selection UI group with browse functionality + replace_mbetter_client() method replaces executable in all ISO locations + Updated WorkerThread to handle MBetterClient parameter + Enhanced validation logic for executable file checking + Updated confirmation dialog to show all optional configurations USER WORKFLOW: 1. Select ISO file (required) 2. Choose USB device (required) 3. Set root password (optional) 4. Add OpenVPN config (optional) 5. Replace MBetterClient executable (optional) 6. Create customized USB with all configurations This completes the USB creator tool with full customization capabilities. -
Stefy Lanza (nextime / spora ) authored
-
Stefy Lanza (nextime / spora ) authored
✅ ENHANCED AUTO-INSTALLER with Visual Progress: - Added zenity for graphical progress dialogs - Added dialog fallback for text-based progress - 8-step installation process with clear progress tracking - Real-time progress updates during installation - Professional completion dialog TECHNICAL DETAILS: + zenity package added for GUI progress bars + Progress tracking functions in auto-installer.sh + Visual feedback for all installation steps + Enhanced cleanup.sh to remove PyInstaller artifacts USER EXPERIENCE: - Live CD shows professional progress bar during installation - Clear step-by-step progress indication - Completion notification before reboot - Fallback to text mode if GUI unavailable -
Stefy Lanza (nextime / spora ) authored
🚀 MAJOR FEATURES:✅ AUTOLOGIN SYSTEM - COMPLETELY FIXED: - Fixed LightDM autologin that was previously broken - Created missing autologin infrastructure (groups, PAM configs) - Added USB boot compatibility (CD/DVD + USB drives) - Smart environment detection (live vs installed systems)✅ PROFESSIONAL USB CREATOR TOOL (PyQt6): - usb_creator_gui.py: Cross-platform GUI application - Optional root password configuration (checkbox controlled) - Optional OpenVPN integration (checkbox controlled) - Standalone executables (PyInstaller build system) - Safe USB detection (removable devices only)✅ AUTOMATIC INSTALLATION SYSTEM: - auto-installer.sh: Custom offline installer (not Calamares) - Immediate auto-start after autologin - Network-only user interaction - Offline capable (no internet required) - USB-aware disk detection🔧 TECHNICAL IMPROVEMENTS: AUTOLOGIN INFRASTRUCTURE: + config/hooks/live/setup-autologin.hook.chroot + config/includes.chroot/etc/pam.d/lightdm* + Enhanced config/includes.chroot/etc/lightdm/lightdm.conf INSTALLATION SYSTEM: + config/includes.chroot/usr/local/bin/auto-installer.sh + config/includes.binary/setup-installed-system.sh + Enhanced config/includes.chroot/root/.config/openbox/autostart + Updated config/preseed/debian-installer.cfg HARDWARE COMPATIBILITY: + 20+ WiFi firmware packages (Intel, Realtek, Atheros, Broadcom, etc.) + Comprehensive network tools (iw, wireless-tools, network-manager) + Hardware detection tools (lshw, hwinfo, pciutils, usbutils) - Removed non-existent packages (crda, mii-diag) with better alternatives USB CREATOR TOOLS: + usb_creator_gui.py: PyQt6 professional GUI + build_usb_creator.py: PyInstaller build automation + setup_usb_creator.py: One-click setup and launch + requirements.txt: PyQt6 dependencies + USB_CREATOR_README.md: Complete documentation📚 DOCUMENTATION: + CHANGELOG.md: Comprehensive version history + Updated README.md: Complete feature overview + USB_CREATOR_README.md: USB creator guide⚡ INSTALLATION FLOW: 1. USB Boot → Autologin → Auto-installer starts immediately 2. Network setup (only user interaction) → Offline installation 3. Installed system → Autologin + MBetter Client + VPN🛡 ️ SECURITY & SEPARATION: - Live CD: Temporary passwordless root - Installed System: Proper password authentication - VPN configs: Only affect installed system - Password changes: Only affect installed system This release transforms MBetter from a basic live CD into a professional automated deployment platform with comprehensive hardware support and user-friendly creation tools.
-
- 01 Sep, 2025 8 commits
-
-
Stefy Lanza (nextime / spora ) authored
- Fixed incorrect sources.list syntax that combined multiple mirrors on single lines - Removed Devuan security repositories from all configurations - Updated bootstrap and main config to use single mirrors properly - Added Debian testing-updates repository for additional packages - Ensured each repository has its own deb line with proper syntax - Prevents malformed sources.list that was causing build failures - Maintains proper repository hierarchy: Devuan primary, Debian fallback
-
Stefy Lanza (nextime / spora ) authored
- Updated LB_ARCHIVE_AREAS to include non-free-firmware - Added Debian fallback mirrors to bootstrap configuration - Removed Devuan security mirror references from bootstrap - Ensures bootstrap phase has access to all required repositories - Critical for firmware package installation during initial setup - Aligns bootstrap config with main configuration settings
-
Stefy Lanza (nextime / spora ) authored
- Renamed hook to 00-apt-update.hook.chroot to run first in chroot stage - Ensures apt-get update runs before any package installation - Added proper error handling with exit code checking - Hook now runs early enough to update package lists before firmware packages - Prevents 'package not found' errors during ISO build process - Critical for accessing firmware packages from Devuan and Debian repos
-
Stefy Lanza (nextime / spora ) authored
- Created apt-update.hook.chroot to run apt-get update before package installation - Ensures chroot has current package lists from all configured repositories - Critical for firmware package installation from Devuan and Debian repos - Runs automatically during live-build process before packages are installed - Prevents package installation failures due to outdated package lists
-
Stefy Lanza (nextime / spora ) authored
-
Stefy Lanza (nextime / spora ) authored
- Removed Devuan testing-security repositories from all sources.list files - Removed Devuan security mirror references from main config - Changed all instances of 'firmware-nonfree' to 'non-free-firmware' - Updated preseed to use correct non-free-firmware component name - Updated apt preferences to remove Devuan security references - Maintains Debian security updates while removing Devuan security repos - Ensures consistent naming convention across all configuration files
-
Stefy Lanza (nextime / spora ) authored
- Created sources.list in includes.chroot_before_packages for build-time access - Added Debian backports repository for additional packages - Created apt preferences file for proper package priority management - Devuan packages prioritized over Debian (pin-priority 900 vs 100) - Firmware packages from Debian get higher priority if not in Devuan - Security updates properly prioritized - Ensures chroot has access to all repositories during build process - Maintains compatibility between Devuan and Debian package ecosystems
-
Stefy Lanza (nextime / spora ) authored
- Re-added all firmware packages to package list (WiFi, graphics, network) - Added Debian testing repository as additional source for firmware packages - Updated main config to include Debian mirrors for live-build - Ensures access to firmware packages not available in Devuan - Maintains Devuan as primary repository with Debian as fallback - Provides maximum hardware compatibility for WiFi and graphics cards
-