1. 13 Sep, 2025 9 commits
  2. 10 Sep, 2025 6 commits
  3. 08 Sep, 2025 1 commit
  4. 07 Sep, 2025 10 commits
    • Stefy Lanza (nextime / spora )'s avatar
      Fix AutoInstaller GUI post-installation finalization · 5813d546
      Stefy Lanza (nextime / spora ) authored
      - Implement proper root password configuration matching auto-installer.sh:
        * Support preseed file passwords (both plain and crypted)
        * Copy live system root password hash when available
        * Set default password as fallback
        * Proper shadow file management and password aging
      
      - Fix mbetterclient user creation with complete autologin setup:
        * Create user with proper home directory and bash shell
        * Remove password for autologin
        * Configure .bashrc for automatic X session launch on tty1
        * Create .xinitrc for proper X session with MBetterClient
        * Set proper file ownership
      
      - Implement complete inittab configuration for autologin:
        * Configure getty for mbetterclient autologin on tty1
        * Maintain normal getty for other terminals
        * Proper runlevel configuration
      
      - Add system cleanup functionality:
        * Remove live-specific systemd configurations
        * Remove live directories and profile configurations
        * Remove live initramfs hooks
      
      - Enhance post-install cleanup:
        * Remove auto-installer script from installed system
        * Remove auto-installer log files
        * Run post-installation setup scripts if available
      
      These changes ensure the installed system boots correctly with:
      - Proper network configuration using selected interface
      - Working root password (from live system or default)
      - Automatic mbetterclient user login and MBetterClient startup
      - Clean system without live-specific configurations
      5813d546
    • Stefy Lanza (nextime / spora )'s avatar
      Optimize rsync performance and reduce GUI overhead during copy stage · 1c403584
      Stefy Lanza (nextime / spora ) authored
      - Replace --progress with --info=progress2 for better rsync performance
      - Change -av to -a to reduce verbose output
      - Reduce progress update frequency from 1%/3s to 2%/5s
      - Reduce re-estimation frequency from 5s to 10s
      - Add fallback progress parsing for --info=progress2 format
      - These changes should significantly speed up the copy stage
      1c403584
    • Stefy Lanza (nextime / spora )'s avatar
      Update copy speed estimation to 20 MB/s for more conservative progress · 6cd581e6
      Stefy Lanza (nextime / spora ) authored
      - Change copy speed estimation from 50 MB/s to 20 MB/s
      - This accounts for slower USB drives and system overhead
      - Prevents progress bar from jumping too quickly to high percentages
      - Provides more realistic time estimates for the copy operation
      6cd581e6
    • Stefy Lanza (nextime / spora )'s avatar
      Fix UI sizing and progress estimation issues · 1412f2d7
      Stefy Lanza (nextime / spora ) authored
      - Reduce UI element sizes to fit within screen bounds in fullscreen mode
      - Add margins to fullscreen geometry to prevent window overflow
      - Make log and copy progress text areas more compact
      - Improve progress estimation to prevent jumping to 82% too quickly
      - Use more conservative time estimates (50 MB/s instead of 100 MB/s)
      - Cap data-based progress at 75% initially to prevent premature completion
      - Add gradual progress completion at the end to avoid sudden jumps
      - Reduce spacing and margins in layout for better screen fit
      
      This ensures the fullscreen window fits properly on screen and provides
      more accurate, gradual progress updates during the copy operation.
      1412f2d7
    • Stefy Lanza (nextime / spora )'s avatar
      Fix GRUB installation timing and environment variable issues · fb22c36f
      Stefy Lanza (nextime / spora ) authored
      - Move GRUB installation to occur BEFORE unmounting target filesystem
      - Install GRUB inside configure_target_system method before cleanup
      - Ensure all mount/umount operations use clean environment variables
      - Specifically empty LD_PRELOAD variable to prevent PyInstaller interference
      - Update partition_disk, mount_target, and install_bootloader methods
      - Remove duplicate GRUB installation call from main run method
      
      This ensures GRUB can access the mounted target filesystem and prevents
      PyInstaller environment variables from interfering with system calls.
      fb22c36f
    • Stefy Lanza (nextime / spora )'s avatar
      Increase initial copy time estimation multiplier from 4x to 10x · 46fa1122
      Stefy Lanza (nextime / spora ) authored
      - Change conservative copy time estimation from 4x to 10x multiplier
      - Provides more realistic initial time estimates for copy operations
      - Helps prevent progress bar from appearing to complete too quickly initially
      46fa1122
    • Stefy Lanza (nextime / spora )'s avatar
      Fix mount failures in configure_target_system and ensure progress never goes backward · 99673d23
      Stefy Lanza (nextime / spora ) authored
      - Add graceful error handling for mount operations in live system environment
      - Check if mount points are already mounted before attempting to mount
      - Continue installation despite mount failures with proper logging
      - Ensure progress bar never decreases by only updating when progress increases
      - Update re-estimation to show progress every 5 seconds with detailed ETA
      - Add proper unmount error handling for cleanup operations
      99673d23
    • Stefy Lanza (nextime / spora )'s avatar
      Fix progress bar estimation and GUI responsiveness during copy stage · 1ae64b33
      Stefy Lanza (nextime / spora ) authored
      Progress Estimation Improvements:
      - Changed re-estimation interval from 10 seconds to 5 seconds for more frequent updates
      - Multiplied initial time estimation by 4 to make it more conservative and realistic
      - Better accuracy for long-running copy operations with more frequent recalculations
      
      GUI Responsiveness Fix:
      - Added QApplication.processEvents() calls in the copy loop to keep GUI responsive
      - Exit button and other UI elements now remain interactive during copy operations
      - Prevents blocking calls that would freeze the interface during file copying
      
      Technical Details:
      - Re-estimation now occurs every 5 seconds instead of 10 seconds
      - Initial estimation multiplied by 4 for more conservative time prediction
      - GUI event processing integrated into copy loop to maintain responsiveness
      - Progress text now shows '5-second estimation' instead of '10-second estimation'
      1ae64b33
    • Stefy Lanza (nextime / spora )'s avatar
      Comprehensive AutoInstaller GUI fixes and improvements · 1e71d54c
      Stefy Lanza (nextime / spora ) authored
      Mount Operations Fix:
      - Add graceful error handling for mount operations in configure_target_system()
      - Handle 'already mounted' errors common in live systems
      - Continue installation despite mount failures instead of crashing
      - Ensure mount point directories exist before mounting
      - Update unmount operations with similar error handling
      
      Progress Tracking Enhancement:
      - Re-estimate copy progress every 10 seconds based on actual transfer rate
      - Display real-time speed, ETA, and remaining data in progress text area
      - Use dynamic rate calculation instead of static time-based estimation
      - Better accuracy for long-running copy operations
      
      Build Process Optimization:
      - Move AutoInstaller GUI build to early stage of ISO build process
      - Ensure binary is included in the live system within the ISO
      - Remove duplicate build section from end of script
      - Add confirmation messages that binary is included in ISO
      
      Code Quality Improvements:
      - Fix AttributeError: 'network_label' -> 'interface_label' in set_defaults()
      - Remove incorrect PyInstaller hidden imports (QShortcut, QKeySequence)
      - Update documentation and README files with recent fixes
      - Better error handling throughout the installation process
      1e71d54c
    • Stefy Lanza (nextime / spora )'s avatar
      Fix mount failures in AutoInstaller GUI · 5e4c59d3
      Stefy Lanza (nextime / spora ) authored
      - Add graceful error handling for mount operations in configure_target_system()
      - Fix mount order: mount /dev before /dev/pts to avoid dependency issues
      - Add directory existence checks before mounting
      - Add small delay to ensure directories are fully created
      - Update mount_target() to handle failures gracefully
      - Update unmount operations to handle 'already mounted' and 'not mounted' cases
      - Continue installation despite mount failures to prevent crashes
      5e4c59d3
  5. 06 Sep, 2025 14 commits
    • Stefy Lanza (nextime / spora )'s avatar
      Move AutoInstaller GUI build to early stage of ISO build process · 0581e759
      Stefy Lanza (nextime / spora ) authored
      - Build and copy AutoInstaller GUI binary before ISO build starts
      - Ensures binary is included in the live system within the ISO
      - Remove duplicate build section from end of script
      - Add confirmation messages that binary is included in ISO
      0581e759
    • Stefy Lanza (nextime / spora )'s avatar
      Fix AutoInstaller GUI issues and improve progress tracking · 033f74ba
      Stefy Lanza (nextime / spora ) authored
      - Fix AttributeError: 'network_label' -> 'interface_label' in set_defaults()
      - Remove incorrect PyInstaller hidden imports (QShortcut, QKeySequence)
      - Add 10-second progress re-estimation with real-time ETA display
      - Update build.sh to properly handle AutoInstallerGUI binary naming
      - Update README files with recent fixes and improvements
      033f74ba
    • Stefy Lanza (nextime / spora )'s avatar
      Optimize rsync command in AutoInstaller GUI for better performance · 42416d0f
      Stefy Lanza (nextime / spora ) authored
      - Remove --stats and --human-readable flags from rsync command
      - These flags add overhead by generating statistics and human-readable output
      - Now matches the original auto-installer.sh rsync command exactly
      - Should improve copy performance by reducing processing overhead
      - Maintains --progress flag for dynamic progress updates in GUI
      
      This optimizes the system copy process to match the performance
      of the original auto-installer.sh script while preserving GUI progress feedback.
      42416d0f
    • Stefy Lanza (nextime / spora )'s avatar
      Integrate AutoInstaller GUI build and cleanup into main project scripts · 5e67930f
      Stefy Lanza (nextime / spora ) authored
      - Update cleanup.sh to call autoinstaller_gui/cleanup.sh for comprehensive cleanup
      - Update build.sh to automatically build AutoInstaller GUI binary after successful ISO build
      - Copy the built binary to config/includes.chroot/usr/local/bin/autoinstallergui
      - Ensure the GUI binary is included in the live system and accessible via .xinitrc
      - Make binary executable and properly integrated into the live system
      - This provides seamless integration of the GUI into the main build process
      
      This ensures the AutoInstaller GUI is automatically built and included
      in the live system whenever the main project is built, providing
      users with the graphical installer option out of the box.
      5e67930f
    • Stefy Lanza (nextime / spora )'s avatar
      Fix rsync command to exclude target directory to prevent copying into itself · ed7187d2
      Stefy Lanza (nextime / spora ) authored
      - Added dynamic exclude for target directory in rsync command
      - Uses f'--exclude={target_mount}' to exclude the target mount point
      - This prevents rsync from trying to copy the target directory into itself
      - Matches the behavior of the original auto-installer.sh script
      - Ensures clean system copy without recursive target directory issues
      
      This resolves potential issues where rsync might attempt to copy
      the target directory into itself during the system copy process.
      ed7187d2
    • Stefy Lanza (nextime / spora )'s avatar
      Add select and fcntl modules to PyInstaller hiddenimports · c3224f98
      Stefy Lanza (nextime / spora ) authored
      - Added 'select' and 'fcntl' modules to hiddenimports in build_autoinstaller_gui.py
      - These modules are used for non-blocking I/O operations in the copy_live_system method
      - Ensures PyInstaller includes these standard library modules in the frozen binary
      - Prevents import errors when running the frozen AutoInstaller GUI binary
      - Required for dynamic progress updates during system copy process
      
      This ensures the PyInstaller frozen binary has all necessary modules
      for the enhanced copy progress functionality with non-blocking I/O.
      c3224f98
    • Stefy Lanza (nextime / spora )'s avatar
      Fix third UnboundLocalError for 'time' variable in copy_live_system method · ec3319e2
      Stefy Lanza (nextime / spora ) authored
      - Removed local import of 'time' module in copy_live_system method
      - This was the third instance of the same variable shadowing issue
      - Local import was creating a variable that shadowed the globally imported module
      - This caused UnboundLocalError when trying to access time.sleep(0.01) during system copy
      - Now uses the globally imported time module correctly
      - System copy process should now complete without variable scoping errors
      
      This completely resolves all UnboundLocalError issues in the AutoInstaller GUI
      by ensuring no local imports shadow the globally imported time module anywhere in the code.
      ec3319e2
    • Stefy Lanza (nextime / spora )'s avatar
      Fix additional UnboundLocalError for 'time' variable in WiFi scanning · ece530e2
      Stefy Lanza (nextime / spora ) authored
      - Removed second local import of 'time' module in scan_and_select_best_wifi method
      - This was another instance of the same variable shadowing issue
      - Both scan_wifi_networks and scan_and_select_best_wifi methods had local time imports
      - Now both methods use the globally imported time module correctly
      - WiFi scanning and network selection should work without any variable scoping errors
      
      This completely resolves the UnboundLocalError issues in WiFi network scanning
      by ensuring no local imports shadow the globally imported time module.
      ece530e2
    • Stefy Lanza (nextime / spora )'s avatar
      Fix UnboundLocalError for 'time' variable in WiFi scanning · c4afd571
      Stefy Lanza (nextime / spora ) authored
      - Removed local import of 'time' module in scan_wifi_networks method
      - The 'time' module is already imported at the top of the file
      - Local import was creating a variable that shadowed the imported module
      - This caused UnboundLocalError when trying to access time.sleep(2)
      - WiFi scanning should now work without variable scoping errors
      
      This resolves the 'cannot access local variable time where is not associated with a value' error
      that occurred during WiFi network scanning in the AutoInstaller GUI.
      c4afd571
    • Stefy Lanza (nextime / spora )'s avatar
      Reduce GUI element sizes for better layout · 7ee823b1
      Stefy Lanza (nextime / spora ) authored
      - Reduce title font size from 24pt to 18pt for more compact header
      - Reduce copy progress text area height from 100px to 60px
      - Maintains readability while improving overall GUI layout proportions
      - Better space utilization in the fullscreen interface
      
      This improves the visual balance of the AutoInstaller GUI by making
      the title and copy progress area more appropriately sized.
      7ee823b1
    • Stefy Lanza (nextime / spora )'s avatar
      Make auto-selected destination disk visible in AutoInstaller GUI · 8df19d8a
      Stefy Lanza (nextime / spora ) authored
      - Update detect_default_disk method to display selected disk in GUI label
      - Show disk path and size when auto-detection finds suitable installation disk
      - Users can now see which disk was automatically selected without interaction
      - Maintains existing auto-detection logic while providing visual feedback
      - Label format: 'Auto-selected: /dev/sda (32 GB)'
      
      This ensures users are informed about the auto-selected installation disk
      even when they don't manually interact with the disk selection dialog.
      8df19d8a
    • Stefy Lanza (nextime / spora )'s avatar
      Add disk selection dialog and improve GUI layout · 6bd1fbd7
      Stefy Lanza (nextime / spora ) authored
      - Add DiskSelectionDialog class for manual disk selection
      - Implement select_installation_disk method with size display and model info
      - Update GUI layout to place Network, Disk, and Timezone side by side in first row
      - Add QScrollArea to prevent content from going out of sight
      - Update start_installation to include selected disk in config
      - Ensure proper validation for disk selection before installation
      - Maintain auto-detection as default with manual override capability
      
      This provides users with manual disk selection while keeping auto-detection
      as the default, and ensures all GUI content remains visible with proper scrolling.
      6bd1fbd7
    • Stefy Lanza (nextime / spora )'s avatar
      Fix PyInstaller frozen binary AttributeError for missing log method · c54ccba7
      Stefy Lanza (nextime / spora ) authored
      - Fixed AttributeError: 'AutoInstallerGUI' object has no attribute 'log'
      - Replaced self.log() call with print() in detect_default_disk method
      - The log method is only available in InstallerWorker class, not AutoInstallerGUI
      - This resolves the crash when running frozen PyInstaller binary
      - Maintains logging functionality for disk detection without breaking frozen binary
      
      This fixes the PyInstaller frozen binary crash that occurred during GUI initialization
      when trying to auto-detect the default installation disk.
      c54ccba7
    • Stefy Lanza (nextime / spora )'s avatar
      Fix fullscreen window geometry to prevent bottom content from going out of view · d7404ec6
      Stefy Lanza (nextime / spora ) authored
      - Use availableGeometry() instead of full screen geometry for fullscreen mode
      - This accounts for taskbars, panels, and other system UI elements that may overlap
      - Set window geometry to available screen space before calling showFullScreen()
      - Ensures all GUI content remains visible in fullscreen mode
      - Resolves issue where bottom part of fullscreen window was hidden/cut off
      
      This fixes the fullscreen display issue where the window extended beyond
      the visible screen area, making the bottom content inaccessible.
      d7404ec6