1. 05 Sep, 2025 15 commits
    • Stefy Lanza (nextime / spora )'s avatar
      Update mbetterclient · 89916b99
      Stefy Lanza (nextime / spora ) authored
      89916b99
    • Stefy Lanza (nextime / spora )'s avatar
      Add mbetterclient user autologin for installed system · 7875e818
      Stefy Lanza (nextime / spora ) authored
      - Create mbetterclient user with no password in installed system
      - Configure inittab for mbetterclient autologin on tty1 instead of root
      - Set up mbetterclient .bashrc to launch MBetterClient --web-host 0.0.0.0
      - Only autolaunch on tty1 (not SSH sessions)
      - Update installation success messages to reflect mbetterclient autologin
      - Maintain root SSH access with configured password
      7875e818
    • Stefy Lanza (nextime / spora )'s avatar
      Fix SSH login issue for installed system · 7995e012
      Stefy Lanza (nextime / spora ) authored
      - Ensure root password is properly set and not expired in installed system
      - Add passwd -u root to unlock account if needed
      - Add chage -d 99999 root to remove password expiration
      - Create SSH config allowing root login with password
      - Fix ensures SSH access works immediately after installation
      7995e012
    • Stefy Lanza (nextime / spora )'s avatar
      Remove auto-installer from installed system · ee3dff24
      Stefy Lanza (nextime / spora ) authored
      - Add cleanup code to remove auto-installer.sh from target system
      - Remove installation log file from target system
      - Exclude auto-installer log from rsync copy (but keep script for installation)
      - Auto-installer now self-destructs after successful installation
      - Keeps installed system clean by removing installation artifacts
      ee3dff24
    • Stefy Lanza (nextime / spora )'s avatar
      Fix auto-installer progress function blocking issue · 646ceea7
      Stefy Lanza (nextime / spora ) authored
      - Replace zenity-based progress with terminal progress bar
      - Remove blocking pipe operations that were causing script hangs
      - Add visual progress bar with filled/empty blocks
      - Remove zenity completion dialog for terminal compatibility
      - Clean up unused PROGRESS_PIPE variable
      - Progress now works reliably in all terminal environments
      646ceea7
    • Stefy Lanza (nextime / spora )'s avatar
      FEATURE: Complete interactive network configuration for auto-installer · 22e3891b
      Stefy Lanza (nextime / spora ) authored
      Enhanced network configuration with full user interaction:
      
      WiFi Support:
      - Automatic wireless interface detection using iw
      - Network scanning with SSID selection
      - Security protocol selection (WPA/WPA2, WEP, Open)
      - Password input for secured networks
      
      Ethernet Support:
      - Automatic ethernet interface detection
      - Interface selection from available options
      
      IP Configuration:
      - DHCP (automatic) or Static IP options
      - Manual IP address, gateway, and DNS server entry
      - Validation and configuration storage
      
      Installation Integration:
      - Network configuration applied to installed system
      - Creates /etc/network/interfaces with user settings
      - Configures DNS resolution for static setups
      - Preserves WiFi credentials and settings
      
      Package Dependencies:
      - Added iw, wpasupplicant, dhcpcd5 for full WiFi support
      - Maintains existing comprehensive wireless driver support
      
      The auto-installer now provides complete network setup during installation,
      configuring the target system with user-specified network preferences.
      22e3891b
    • Stefy Lanza (nextime / spora )'s avatar
      Fix auto-installer hanging at zenity confirmation dialog · a10dcc40
      Stefy Lanza (nextime / spora ) authored
      - Zenity dialog was hanging in terminal environment without proper GUI context
      - Replaced unreliable GUI dialogs (zenity/dialog) with terminal confirmation
      - Added clear warning display with colored output for visibility
      - Simplified confirmation logic with case statement for multiple valid inputs
      - Auto-installer now continues reliably without GUI dialog dependencies
      
      Terminal confirmation is more reliable in live CD terminal environments.
      a10dcc40
    • Stefy Lanza (nextime / spora )'s avatar
      Fix auto-installer disk size calculation arithmetic error · a6181d5c
      Stefy Lanza (nextime / spora ) authored
      - Fixed lsblk output parsing that was causing syntax error at line 138
      - Added head -1 and tr -d to handle multiple lines or whitespace in lsblk output
      - Added numeric validation to prevent arithmetic errors
      - Applied same fix to both disk detection functions (lines 138 and 244)
      
      Auto-installer now runs without syntax errors and properly detects disk sizes.
      Autologin system fully operational - console passwordless, SSH requires password.
      a6181d5c
    • Stefy Lanza (nextime / spora )'s avatar
      Remove duplicate auto-installer launch from Openbox autostart · 0da085e0
      Stefy Lanza (nextime / spora ) authored
      - Openbox autostart was also trying to launch auto-installer using x-terminal-emulator
      - This created conflict with .xinitrc launch method
      - Removed installer launch from autostart to avoid duplicate processes
      - .xinitrc now handles installer launch exclusively with proper timing
      - Semicolon syntax was actually correct (run next command regardless of exit status)
      - Prevents multiple installer instances and launch conflicts
      0da085e0
    • Stefy Lanza (nextime / spora )'s avatar
      CRITICAL: Override live-config password scripts locking root account · d114f634
      Stefy Lanza (nextime / spora ) authored
      Major Discovery:
      - live-config scripts 0030-live-debconfig_passwd and 0030-user-setup were
        setting root password to '*' (locked) during boot
      - This explains why SSH with configured password was failing
      - Scripts were also trying to create 'user' account instead of using root
      
      Solution:
      - Created override-live-config-passwd.hook.chroot
      - Replaces both password-related live-config scripts
      - Preserves root password set during ISO creation
      - Prevents account locking by live-config
      - Forces LIVE_USERNAME=root instead of creating separate user
      
      This completes the live-config override suite:
      - inittab autologin (prevents user login prompt)
      - password preservation (enables SSH with configured password)
      - proper root account handling throughout boot process
      d114f634
    • Stefy Lanza (nextime / spora )'s avatar
      Fix xinitrc startup order: Openbox first, then auto-installer · 17e19030
      Stefy Lanza (nextime / spora ) authored
      - Start openbox-session in background first to establish window manager
      - Wait 2 seconds for window manager to initialize
      - Then launch auto-installer in terminal window
      - Use 'wait' to keep X session alive instead of double-exec
      - Prevents duplicate Openbox instances and ensures proper startup sequence
      17e19030
    • Stefy Lanza (nextime / spora )'s avatar
      CRITICAL FIX: Override live-config sysvinit script causing autologin failure · 8e120509
      Stefy Lanza (nextime / spora ) authored
      Root Cause Identified:
      - live-config script /usr/lib/live/config/0160-sysvinit was overwriting inittab at runtime
      - Script was replacing all getty entries with '/bin/login -f user' instead of root
      - This happened AFTER our inittab modifications during boot process
      
      Solution:
      - Created override-live-config-sysvinit.hook.chroot to replace the problematic script
      - New script forces LIVE_USERNAME=root instead of default 'user'
      - Uses proper traditional getty -a syntax: /sbin/getty -a root 38400 tty1
      - Maintains tty2-6 as normal login shells for debugging
      
      This should finally resolve the autologin issue by preventing live-config from
      overwriting our carefully crafted inittab entries during boot.
      8e120509
    • Stefy Lanza (nextime / spora )'s avatar
      Update documentation with correct traditional SysV inittab syntax · b3d33fd6
      Stefy Lanza (nextime / spora ) authored
      - Fix inittab examples in ISO_MODIFICATION_WORKFLOW.md
      - Replace agetty --autologin with getty -a root syntax
      - Use standard 38400 baud rate format
      - Ensure all examples match traditional SysV init compatibility
      b3d33fd6
    • 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 25 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