- 07 Sep, 2025 2 commits
-
-
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
-
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
-
- 06 Sep, 2025 28 commits
-
-
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
-
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
-
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.
-
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.
-
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. -
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
Stefy Lanza (nextime / spora ) authored
- Set default timezone to Africa/Johannesburg - Auto-detect and select first available WiFi network with strongest signal - Prompt for WiFi password when network is selected - Fallback to first available Ethernet interface if no WiFi found - Set default IP method to DHCP for both WiFi and Ethernet - Auto-detect first available installation disk (not USB, >4GB) - Pre-populate GUI with detected defaults on startup - Add set_defaults() method called during GUI initialization - Implement WiFi scanning with signal strength sorting - Add detect_default_network() and detect_default_disk() methods - Use QInputDialog for WiFi password input This provides sensible defaults for all GUI selections, making the installation process more user-friendly by pre-selecting appropriate options based on the detected hardware and network environment.
-
Stefy Lanza (nextime / spora ) authored
- Remove automatic fullscreen setting from AutoInstallerGUI constructor - Allow main() function to control fullscreen/windowed mode based on --no-fullscreen argument - Fix logic: when --no-fullscreen is specified, use window.show() instead of fullscreen - When --no-fullscreen is NOT specified, use window.showFullScreen() for production use - Ensures command line argument properly controls the application's display mode This resolves the issue where --no-fullscreen option was not working correctly and allows proper testing in windowed mode while maintaining fullscreen for production.
-
Stefy Lanza (nextime / spora ) authored
- Add detailed copy system step with real-time rsync output display - Show current file being copied, transfer statistics, and progress details - Add small text area for copy progress with monospace font and auto-scroll - Move network configuration file creation to occur after disk mounting - This ensures /target/etc/network/interfaces is created on the mounted filesystem - Update installation progress percentages to accommodate new network config step - Add copy_progress signal and update_copy_progress method for GUI updates - Enhanced rsync command with --progress and --stats for detailed output - Improved error handling for rsync process with proper cleanup This provides users with detailed feedback during the system copy process and ensures network configuration files are properly created on target system.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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)
-
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.
-
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
-
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.
-
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.
-
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.
-
- 05 Sep, 2025 10 commits
-
-
Stefy Lanza (nextime / spora ) authored
-
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
-
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
-
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
-
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
-
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
-
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
-
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)
-
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
-
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
-