v1.5.15 - Linux Icons Compatibility Fix
🐧 Critical Linux Fix
- Fixed Icons enum crash: Created safe_icons.py module to replace problematic flet.core.icons
- Excluded problematic module: PyInstaller now excludes flet.core.icons enum that caused KeyboardInterrupt
- Safe Icons implementation: String-based icons instead of large enum to prevent loading issues
- Enhanced PyInstaller config: Added --exclude-module flag for problematic Flet modules
🛠️ Advanced Build System
- Spec file support: Added portfolio-manager-safe.spec for fine-grained PyInstaller control
- Safe version: main_flet_safe.py with minimal Flet imports for testing
- Enhanced build script: build_new.py with improved Flet dependency handling
- Fallback Icons: Automatic fallback to string constants if safe_icons unavailable
🔧 Technical Improvements
- Module exclusion: --exclude-module flet.core.icons prevents enum loading crash
- Minimal imports: Only essential Flet modules included to reduce startup time
- Safe Icons class: Lightweight replacement for heavyweight Icons enum
- Console mode: Linux builds use --console for better debugging
🎯 Targeted Fixes
- Fixed: KeyboardInterrupt in flet/core/icons.py line 8842 during enum creation
- Fixed: 'name exit is not defined' error in Flet framework initialization
- Fixed: PyInstaller bundling issues with large enum modules
- Fixed: Linux desktop compatibility with X11/Wayland sessions
📦 New Files
- safe_icons.py: Lightweight Icons replacement module
- portfolio-manager-safe.spec: PyInstaller spec file for advanced control
- build_new.py: Enhanced build script with Icons fix support
📥 Downloads
- Windows: PortfolioManager-windows.exe (22.9 MB)
- macOS: PortfolioManager-darwin (18.5 MB)
- Linux: PortfolioManager-linux (31.3 MB)
🚀 Usage
The executables should now start without the Icons enum crash on Linux systems!
🔧 Installation
- Download the executable for your platform
- On Linux/macOS:
chmod +x PortfolioManager-* - Run the executable
- Configure student information on first launch
This release specifically targets the Icons enum loading issue that prevented the application from starting on Linux systems.