1. 05 Sep, 2025 2 commits
    • Stefy Lanza (nextime / spora )'s avatar
      Fix inittab syntax for traditional SysV init compatibility · 2624ae31
      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
      2624ae31
    • Stefy Lanza (nextime / spora )'s avatar
      Complete autologin system overhaul: console autologin + SSH fixes + ISO tools · 383121b6
      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
      383121b6
  2. 04 Sep, 2025 30 commits
    • Stefy Lanza (nextime / spora )'s avatar
      Add user confirmation before destructive disk operations in autoinstaller · ea15fed4
      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
      ea15fed4
    • Stefy Lanza (nextime / spora )'s avatar
      ab65d8d2
    • Stefy Lanza (nextime / spora )'s avatar
      Replace diskpart with PowerShell for more reliable Windows USB formatting · 578da2d9
      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
      578da2d9
    • Stefy Lanza (nextime / spora )'s avatar
      Add comprehensive diskpart debugging to identify script execution issues · 30760e9e
      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
      30760e9e
    • Stefy Lanza (nextime / spora )'s avatar
      Fix diskpart script encoding for Windows compatibility · 115966c3
      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
      115966c3
    • Stefy Lanza (nextime / spora )'s avatar
      Fix faulty file existence check causing diskpart stdin fallback · f2fb7fbb
      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
      f2fb7fbb
    • Stefy Lanza (nextime / spora )'s avatar
      Add stdin fallback for diskpart when script file is virtualized/blocked · ba2bf20d
      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
      ba2bf20d
    • Stefy Lanza (nextime / spora )'s avatar
      Add comprehensive debugging for diskpart script creation issues · 4cfe722d
      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
      4cfe722d
    • Stefy Lanza (nextime / spora )'s avatar
      Add PyInstaller compatibility for diskpart script location handling · f4d916ba
      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
      f4d916ba
    • Stefy Lanza (nextime / spora )'s avatar
      Fix diskpart script file not found error (WinError 2) · 57273887
      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
      57273887
    • Stefy Lanza (nextime / spora )'s avatar
      Fix Windows USB formatting timeout and diskpart errors · 46fb0ab1
      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
      46fb0ab1
    • Stefy Lanza (nextime / spora )'s avatar
      Update win binary · ec43ec7a
      Stefy Lanza (nextime / spora ) authored
      ec43ec7a
    • Stefy Lanza (nextime / spora )'s avatar
      Add Windows administrator privilege checking and error handling · 4cb511e1
      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
      4cb511e1
    • Stefy Lanza (nextime / spora )'s avatar
      Implement complete Windows USB writing functionality · c52aa4a0
      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
      c52aa4a0
    • Stefy Lanza (nextime / spora )'s avatar
      Enhance 7-zip detection on Windows · 81773817
      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
      81773817
    • Stefy Lanza (nextime / spora )'s avatar
      Update windows binary · ab3b9e0c
      Stefy Lanza (nextime / spora ) authored
      ab3b9e0c
    • Stefy Lanza (nextime / spora )'s avatar
      Fix PyQt6 compatibility issues in usb_creator_gui.py · 5c3932a8
      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
      5c3932a8
    • Stefy Lanza (nextime / spora )'s avatar
      731abab5
    • Stefy Lanza (nextime / spora )'s avatar
      Fix missing icon file issue on Windows build · 2a0531cf
      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
      2a0531cf
    • Stefy Lanza (nextime / spora )'s avatar
      Add usb_spec file · 8a4863ab
      Stefy Lanza (nextime / spora ) authored
      8a4863ab
    • Stefy Lanza (nextime / spora )'s avatar
      579176ab
    • Stefy Lanza (nextime / spora )'s avatar
      Fix Unicode encoding error on Windows in build_usb_creator.py · 10b2d3fd
      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
      10b2d3fd
    • Stefy Lanza (nextime / spora )'s avatar
      Fix chroot/sys unmount issue by targeting only chroot-specific rg/fd processes · 4dc65b5e
      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
      4dc65b5e
    • Stefy Lanza (nextime / spora )'s avatar
    • Stefy Lanza (nextime / spora )'s avatar
      Fix dependency detection in build script · 9c93d944
      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
      9c93d944
    • Stefy Lanza (nextime / spora )'s avatar
      Update build script to check dependencies instead of auto-installing · bc563017
      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
      bc563017
    • Stefy Lanza (nextime / spora )'s avatar
      Add MBetterClient Executable Customization to USB Creator · 2f668ea2
      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.
      2f668ea2
    • Stefy Lanza (nextime / spora )'s avatar
      Latest changes · cb1dcaef
      Stefy Lanza (nextime / spora ) authored
      cb1dcaef
    • Stefy Lanza (nextime / spora )'s avatar
      Add Visual Progress Bar to Auto-Installer · 8a105b29
      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
      8a105b29
    • Stefy Lanza (nextime / spora )'s avatar
      Major Release: Complete Autologin Fix + Professional USB Creator Tool · 6067043b
      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.
      6067043b
  3. 01 Sep, 2025 8 commits
    • Stefy Lanza (nextime / spora )'s avatar
      Fix sources.list syntax and mirror configuration · a41c04f0
      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
      a41c04f0
    • Stefy Lanza (nextime / spora )'s avatar
      Fix bootstrap configuration for proper repository access · 17c41cc1
      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
      17c41cc1
    • Stefy Lanza (nextime / spora )'s avatar
      Fix apt-update hook timing for proper package installation · 9fdc6515
      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
      9fdc6515
    • Stefy Lanza (nextime / spora )'s avatar
      Add apt-get update hook for chroot package installation · b4b7616f
      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
      b4b7616f
    • Stefy Lanza (nextime / spora )'s avatar
      update to last changes · 59c9fee8
      Stefy Lanza (nextime / spora ) authored
      59c9fee8
    • Stefy Lanza (nextime / spora )'s avatar
      Remove Devuan security repos and fix firmware-nonfree naming · 74046e4b
      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
      74046e4b
    • Stefy Lanza (nextime / spora )'s avatar
      Add complete repository configuration for chroot environment · ff9e648c
      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
      ff9e648c
    • Stefy Lanza (nextime / spora )'s avatar
      Add Debian repository support for comprehensive firmware packages · 545ef2e7
      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
      545ef2e7