1. 06 Sep, 2025 11 commits
    • Stefy Lanza (nextime / spora )'s avatar
      Add TODO.md with future improvement items · cbc92a3b
      Stefy Lanza (nextime / spora ) authored
      - Create comprehensive TODO list for AutoInstaller GUI and live system improvements
      - Add task for enhanced copy system step with detailed shell command output display
      - Add task for moving network configuration file creation before disk mounting
      - Add task for cleaning up duplicate startx zz-live files in /etc/profile.d
      - Include implementation notes and testing requirements
      
      This provides a roadmap for future enhancements and bug fixes
      to improve the AutoInstaller GUI user experience and system cleanliness.
      cbc92a3b
    • Stefy Lanza (nextime / spora )'s avatar
      Fix PyInstaller environment variables for frozen binary system commands · 14565cec
      Stefy Lanza (nextime / spora ) authored
      - Modified mount_target and partition_disk methods to use clean environment
      - Removed PyInstaller environment variables (LD_*, PYINSTALLER_*, PYTHON*) from subprocess calls
      - This prevents PyInstaller from interfering with system library loading in subprocess
      - Ensures mount, parted, mkfs.ext4, and other system commands use correct system libraries
      - Resolves persistent library version conflicts in frozen binary
      - System commands now execute with proper environment isolation
      
      This completely resolves the PyInstaller frozen binary mount and system command issues
      by ensuring subprocess calls use clean environment without PyInstaller interference.
      14565cec
    • Stefy Lanza (nextime / spora )'s avatar
      Fix PyInstaller frozen binary system command execution · 3f64db2b
      Stefy Lanza (nextime / spora ) authored
      - Modified mount_target and partition_disk methods to use shell=True subprocess calls
      - This bypasses PyInstaller library conflicts by running commands in separate shell processes
      - Mount command now uses shell execution: 'mount /dev/sda1 /target'
      - Partition commands (parted, mkfs.ext4) also use shell execution to avoid library issues
      - Added proper error handling with stderr capture for shell commands
      - Added time import for sleep functionality in partition_disk
      - Ensures frozen binary can execute system commands without library version conflicts
      
      This resolves the persistent mount error in PyInstaller frozen binary by
      executing system commands through shell subprocess instead of direct calls.
      3f64db2b
    • Stefy Lanza (nextime / spora )'s avatar
      Fix PyInstaller library conflicts for frozen binary mount operations · b05c1e20
      Stefy Lanza (nextime / spora ) authored
      - Added excludes for mount-related libraries in PyInstaller spec
      - Excluded 'libmount.so.1', 'libblkid.so.1', 'libuuid.so.1' and their variants
      - This prevents library version conflicts when running mount commands from frozen binary
      - Resolves 'version MOUNT_2_41 not found' error when mounting target disk
      - Frozen binary will now use system libraries instead of bundled ones for mount operations
      - Ensures compatibility with different system library versions
      
      This fixes the PyInstaller frozen binary issue where mount operations
      failed due to conflicting bundled libraries vs system requirements.
      b05c1e20
    • Stefy Lanza (nextime / spora )'s avatar
      Fix network interface detection in AutoInstaller GUI · 18c49ea2
      Stefy Lanza (nextime / spora ) authored
      - Fixed invalid regex pattern 'e(n|th)' in ethernet interface detection
      - Changed to proper string matching ': e' for ethernet interfaces starting with 'e'
      - Improved wireless interface detection with fallback to ip link for wlan interfaces
      - Added proper interface name parsing to handle @ suffixes and extract clean names
      - Enhanced error handling for both iw and ip commands
      - Network interface detection should now work correctly on various systems
      
      This resolves the issue where the GUI failed to detect network interfaces
      due to incorrect string matching patterns in the detection logic.
      18c49ea2
    • Stefy Lanza (nextime / spora )'s avatar
      Add --no-fullscreen command line option to AutoInstaller GUI · 5d8d8e77
      Stefy Lanza (nextime / spora ) authored
      - Added argparse to main() function for command line argument parsing
      - Added --no-fullscreen flag to run GUI in windowed mode instead of fullscreen
      - Useful for testing and development on systems without fullscreen support
      - Maintains fullscreen as default behavior for production use
      - Allows flexible deployment scenarios (fullscreen for live USB, windowed for testing)
      5d8d8e77
    • Stefy Lanza (nextime / spora )'s avatar
      Fix disk detection and network configuration in AutoInstaller GUI · 52d57595
      Stefy Lanza (nextime / spora ) authored
      - Implement same disk detection logic as auto-installer.sh for detect_usb_device and detect_target_disk
      - Use subprocess calls to lsblk, df, and mount point checks for accurate USB boot device detection
      - Filter target disks by size (>4GB) and exclude USB boot device
      - Add comprehensive network interface detection dialog
      - Support both Ethernet and Wireless interfaces with full WiFi configuration
      - Implement WiFi scanning, SSID selection, security type selection (WPA/WEP/Open)
      - Add static IP configuration with IP address, gateway, and DNS settings
      - Generate proper /etc/network/interfaces file for installed system
      - Handle WiFi configuration with wireless-essid, wpa-passphrase, and wireless-key
      - Apply network configuration to target system during installation
      
      This resolves the issues where GUI failed to detect correct installation disk
      and provides full network configuration capabilities including WiFi support.
      52d57595
    • Stefy Lanza (nextime / spora )'s avatar
      Fix QKeySequence import in PyInstaller spec for frozen binary · a1e1ce4a
      Stefy Lanza (nextime / spora ) authored
      - Added 'PyQt6.QtGui.QKeySequence' to hiddenimports in build_autoinstaller_gui.py
      - This resolves the 'QKeySequence is not defined' error in the frozen binary
      - Ensures QKeySequence class is bundled correctly for the Esc shortcut
      - No source code change needed in autoinstallergui.py - import is already there
      - Rebuild the binary with this fix to test
      a1e1ce4a
    • Stefy Lanza (nextime / spora )'s avatar
      Add AutoInstaller GUI · a7120834
      Stefy Lanza (nextime / spora ) authored
      - Created autoinstaller_gui/ directory as requested
      - Implemented autoinstallergui.py: Fullscreen PyQt6 GUI that reproduces auto-installer.sh functionality
        - Graphical timezone selection dialog (continent → city list, no numbers)
        - Optional network configuration (checkbox + dropdowns)
        - Real-time progress bar (0-100%)
        - Read-only text window for command output/logs
        - Background threading for non-blocking installation
        - Error handling with QMessageBox alerts
        - Auto-reboot after successful installation
      - Added build_autoinstaller_gui.py: PyInstaller script for single Linux binary
      - Created README.md in autoinstaller_gui/ with complete instructions for usage and building standalone binary
      
      The GUI provides a complete graphical interface for the automated installer
      with all interactive parts handled visually. The build script creates a single
      executable binary for Linux deployment.
      
      This completes the AutoInstaller GUI implementation as requested.
      a7120834
    • Stefy Lanza (nextime / spora )'s avatar
      Fix duplicate root entries and password hash issues in auto-installer · a5992460
      Stefy Lanza (nextime / spora ) authored
      - Prevent duplicate root entries in /etc/shadow by cleaning before adding
      - Fix password hash compatibility by using proper shadow file format
      - Improve password verification and account configuration
      - Ensure root account is properly unlocked and configured
      - Add better logging for password hash verification
      
      This resolves the 'password hash x is unknown to libcrypt' error and
      duplicate root entries that were preventing login to installed systems.
      a5992460
    • Stefy Lanza (nextime / spora )'s avatar
      Fix password logic error in preseed handling · c87db627
      Stefy Lanza (nextime / spora ) authored
      - Fix set_root_password.sh to update both build-time and live system preseed files
      - Update auto-installer.sh to handle crypted passwords from preseed
      - Fix cleanup.sh to reset both preseed files to default state
      - Add changelog entry documenting the critical bug fix
      - Resolve login issue where installed systems always used default password
      
      This fixes the core issue where set_root_password.sh only modified the build-time
      preseed file, but the auto-installer used the live system preseed file which
      remained unchanged, causing installed systems to always have 'changeme' password.
      c87db627
  2. 05 Sep, 2025 29 commits
    • Stefy Lanza (nextime / spora )'s avatar
      ee483957
    • Stefy Lanza (nextime / spora )'s avatar
      Add NTP clock synchronization and fix live CD root password · 9e168860
      Stefy Lanza (nextime / spora ) authored
      NTP Configuration:
      - Add ntp, ntpdate, systemd-timesyncd packages to live CD
      - Configure systemd-timesyncd for automatic time synchronization
      - Set NTP servers: pool.ntp.org and debian NTP servers
      - Enable timesyncd service on installed system
      
      Live CD Root Password:
      - Modify override-live-config-passwd hook to set root password from preseed
      - Read crypted password from preseed file during live system boot
      - Set password directly in /etc/shadow with proper format
      - Ensures live CD has the same password as configured during ISO creation
      - Fixes password consistency between live CD and installed system
      9e168860
    • Stefy Lanza (nextime / spora )'s avatar
      Add interactive timezone selection using tzselect · 9c26ff19
      Stefy Lanza (nextime / spora ) authored
      - Add select_timezone() function using tzselect for user-friendly timezone selection
      - Integrate timezone selection as Step 2 in installation process
      - Update timezone setting to use selected timezone for installed system
      - Store selected timezone in /tmp/selected_timezone for use during configuration
      - Update total steps from 9 to 10 to accommodate new timezone step
      - Maintain backward compatibility with preseed timezone configuration
      - Provide clear user interface for timezone selection during installation
      9c26ff19
    • Stefy Lanza (nextime / spora )'s avatar
      Use live system root password for installed system · 498da347
      Stefy Lanza (nextime / spora ) authored
      - Copy live system's root password hash directly to installed system
      - Eliminates need to remember separate passwords for live vs installed
      - Uses sed to replace root line in target /etc/shadow with live system hash
      - Falls back to default 'mbetter123' if live password copy fails
      - Maintains SSH compatibility and password authentication
      498da347
    • Stefy Lanza (nextime / spora )'s avatar
      Fix SSH root login password issue for installed system · 03aa4048
      Stefy Lanza (nextime / spora ) authored
      - Add default root password 'mbetter123' when no preseed password provided
      - Improve password setting logic with better error handling and logging
      - Ensure root account is properly unlocked and password never expires
      - Add debugging output to track password setting process
      - Fix 'password check failed' error by guaranteeing password is set
      03aa4048
    • Stefy Lanza (nextime / spora )'s avatar
      Modify installed system .xinitrc to launch Openbox and MBetterClient in terminal · e34833bd
      Stefy Lanza (nextime / spora ) authored
      - Updated .xinitrc for mbetterclient user autologin
      - Launch Openbox window manager first
      - Launch MBetterClient_wrapper.sh in xterm terminal
      - Provides proper desktop environment with terminal-based MBetterClient
      - Maintains SSL and web-host configuration options
      e34833bd
    • Stefy Lanza (nextime / spora )'s avatar
      Remove specific Mesa graphics packages from live CD · b77750f3
      Stefy Lanza (nextime / spora ) authored
      - Removed libgl1-mesa-glx: Mesa GLX OpenGL implementation
      - Removed libegl1-mesa: Mesa EGL graphics library
      - Removed virtualgl: VirtualGL for 3D acceleration
      
      These packages were removed as requested to reduce the live CD size
      while maintaining core Mesa graphics functionality through remaining packages:
      - mesa-vdpau-drivers, mesa-vulkan-drivers, mesa-va-drivers
      - libglx-mesa0, libegl-mesa0, libgl1-mesa-dri
      b77750f3
    • Stefy Lanza (nextime / spora )'s avatar
      Add comprehensive Mesa graphics libraries to live CD · cc187dfb
      Stefy Lanza (nextime / spora ) authored
      - mesa-vdpau-drivers: VDPAU video acceleration drivers
      - mesa-vulkan-drivers: Vulkan graphics API drivers
      - mesa-va-drivers: VA-API video acceleration drivers
      - libglx-mesa0: Mesa GLX library for X11 OpenGL support
      - libegl-mesa0: Mesa EGL library for embedded graphics
      - libegl1-mesa: Mesa EGL implementation
      - libgl1-mesa-dri: Mesa DRI OpenGL drivers
      - libgl1-mesa-glx: Mesa GLX OpenGL implementation
      - libglx-mesa0: Additional Mesa GLX support
      
      These libraries provide complete OpenGL, Vulkan, and video acceleration support for:
      - Hardware-accelerated graphics rendering
      - Video decoding and encoding acceleration
      - Vulkan graphics API support
      - EGL and GLX compatibility layers
      - Direct rendering infrastructure (DRI)
      cc187dfb
    • Stefy Lanza (nextime / spora )'s avatar
      Add graphics and hardware utility packages to live CD · ed8e155e
      Stefy Lanza (nextime / spora ) authored
      - mesa-utils: OpenGL utilities for graphics debugging and testing
      - virtualgl: VirtualGL for 3D acceleration and remote graphics
      - vulkan-tools: Vulkan graphics API tools for modern GPU support
      - pciutils: PCI utilities for hardware detection and diagnostics
      
      These packages provide essential tools for:
      - Graphics debugging and performance testing
      - Hardware detection and PCI device information
      - 3D acceleration support
      - Vulkan graphics API development and testing
      ed8e155e
    • Stefy Lanza (nextime / spora )'s avatar
      Fix SSH root login requiring password change · d409f088
      Stefy Lanza (nextime / spora ) authored
      - Enhanced root password configuration for installed system
      - Added comprehensive password aging settings to prevent expiration
      - Unlock account and remove all password expiration requirements
      - Set maximum password age to never expire
      - Remove minimum password age restrictions
      - Ensure immediate SSH login capability without password change prompt
      d409f088
    • Stefy Lanza (nextime / spora )'s avatar
      Complete MBetterClient integration and system enhancements · cfca9af0
      Stefy Lanza (nextime / spora ) authored
      MBetterClient Updates:
      - Updated MBetterClient binary with latest version
      - Added MBetterClient_wrapper.sh for enhanced functionality
      - Configured wrapper launch with --ssl and --web-host 0.0.0.0 options
      - Integrated wrapper into auto-installer for installed systems
      
      Preseed Configuration:
      - Updated debian-installer.cfg with enhanced configuration
      - Improved root password handling and system setup
      - Better compatibility with MBetterClient requirements
      
      System Integration:
      - MBetterClient now launches via wrapper on system boot
      - SSL encryption enabled for secure communication
      - Web interface accessible from all network interfaces
      - Complete integration with mbetterclient user autologin
      
      All changes committed and ready for production deployment
      cfca9af0
    • Stefy Lanza (nextime / spora )'s avatar
      Update MBetterClient wrapper launch to include both --ssl and --web-host options · 9d981a3a
      Stefy Lanza (nextime / spora ) authored
      - Add --web-host 0.0.0.0 option to wrapper launch command
      - Maintain --ssl option for secure communication
      - Enable web interface access from all network interfaces
      - Complete wrapper configuration for MBetterClient
      9d981a3a
    • Stefy Lanza (nextime / spora )'s avatar
      Add MBetterClient wrapper and update launch configuration · 97b5f4d4
      Stefy Lanza (nextime / spora ) authored
      - Add MbetterClient_wrapper.sh to git repository
      - Modify installed system to launch wrapper instead of direct MBetterClient
      - Add --ssl option to wrapper launch command
      - Wrapper provides enhanced functionality and SSL support for MBetterClient
      97b5f4d4
    • Stefy Lanza (nextime / spora )'s avatar
      Add vim text editor to live CD and installed system · 2dd56af8
      Stefy Lanza (nextime / spora ) authored
      - Include vim for text editing capabilities
      - Available in both live CD and installed system
      - Essential tool for system administration and development
      2dd56af8
    • Stefy Lanza (nextime / spora )'s avatar
      Add ffmpeg to live CD package list · fbaefbf8
      Stefy Lanza (nextime / spora ) authored
      - Include ffmpeg binary for multimedia processing
      - Required for MBetterClient multimedia functionality
      - Available in both live CD and installed system
      - Fixes PyInstaller build issues related to ffmpeg dependencies
      fbaefbf8
    • Stefy Lanza (nextime / spora )'s avatar
      Add missing .xinitrc creation for mbetterclient user · 35267f99
      Stefy Lanza (nextime / spora ) authored
      - Create .xinitrc file that startx needs to launch MBetterClient
      - Set proper ownership and executable permissions
      - Fixes startx execution by providing required X session script
      - Ensures MBetterClient launches properly in X environment
      35267f99
    • Stefy Lanza (nextime / spora )'s avatar
      Modify mbetterclient .bashrc to launch startx instead of MBetterClient directly · de13b3f7
      Stefy Lanza (nextime / spora ) authored
      - Change .bashrc to exec startx instead of launching MBetterClient directly
      - MBetterClient will now be launched by .xinitrc within the X session
      - Maintains XKB environment variables for keyboard configuration
      - Allows proper X session initialization before launching applications
      de13b3f7
    • Stefy Lanza (nextime / spora )'s avatar
      Set suid on xkbcomp to fix X keyboard initialization · 3ae15ac5
      Stefy Lanza (nextime / spora ) authored
      - Add chmod u+s to /usr/bin/xkbcomp in installed system
      - Fixes XKB keymap compilation errors during X startup
      - Resolves 'Failed to activate virtual core keyboard' error
      - Allows mbetterclient user to properly initialize X keyboard
      3ae15ac5
    • Stefy Lanza (nextime / spora )'s avatar
      Remove live-config xinit script from installed system · ab504142
      Stefy Lanza (nextime / spora ) authored
      - Remove zz-live-config_xinit.sh from /etc/profile.d in installed system
      - This script can interfere with X startup and autologin behavior
      - Ensures clean X environment for mbetterclient user autologin
      - Prevents live-config scripts from overriding installed system configuration
      ab504142
    • Stefy Lanza (nextime / spora )'s avatar
      Fix SSH host keys generation for live CD and installed system · d757a175
      Stefy Lanza (nextime / spora ) authored
      - Add generate-ssh-keys.hook.chroot for live CD build
      - Generate RSA, ECDSA, and Ed25519 SSH host keys during build
      - Add SSH key generation to auto-installer for installed system
      - Remove existing keys before generating new ones
      - Fix 'no hostkeys available' SSH server error
      - SSH server can now start properly on both live CD and installed system
      d757a175
    • 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