1. 05 Sep, 2025 13 commits
    • 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 27 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