Merge pull request #70 from ghostbsd/add-noduplication
Prevent duplicate instances and add IPC for check-now command
Add error handling for server requests and improve UI localization
- Backend: Add try-except handling with timeouts for server request failures (`requests.get`), preventing UI blocking during unreachable servers.
- Frontend: Localize UI strings with `_()` for better internationalization support.
- UI: Refactor dialog buttons to invoke corresponding "Yes" and "No" click handlers, improving code clarity and maintainability.
Prevent duplicate instances and add IPC for check-now command
- Use setproctitle and psutil to detect existing update-station processes
- Send SIGUSR1 to running instance when 'check-now' is invoked, triggering update check in existing GTK loop
- Consolidate notification.py into frontend.py to reduce module count
- Simplify boolean returns in backend.py
- Exit with error if tray mode started while instance is already running
This prevents multiple update-station processes from running simultaneously
and allows the check-now command to communicate with the existing tray
instance instead of spawning a separate GUI process.
Merge pull request #69 from ghostbsd/refactor-frontend-dialog
Refactor InstallUpdate.read_output() and consolidate dialog windows
Refactor InstallUpdate.read_output() and consolidate dialog windows
This commit simplifies the package update installation process and standardizes window close behavior across the application.
Frontend refactoring (frontend.py):
- Moved subprocess creation from frontend to backend via command_output()
- Extracted read_output() into focused helper methods:
* process_output() - runs commands and reads stdout line-by-line
* log_failure() - writes error details to update.failed file
* needs_reboot() - checks if installed packages require reboot
* is_pkg_only_update() - detects pkg-only updates
* install_packages() - handles install with retry logic for temp file failures
* fetch_packages() - downloads package updates
* bootstrap_major_upgrade() - bootstraps pkg for major version upgrades
* prepare_backup() - creates ZFS boot environment backups
- Improved returncode==3 retry logic: delete failed packages, collect for
reinstall after upgrade completes (max 5 retries)
- Fixed race condition: replaced `if proc.poll() is not None` with
`if not line: break` for EOF detection, then proc.wait()
[25 lines not shown]Merge pull request #68 from ghostbsd/fix-window-memory-leak
Replaced `hide()` with `destroy()`
Replaced `hide()` with `destroy()`
Updated conditionals for readability and bumped a version to 6.8 in setup.py.
Merge pull request #67 from tmtfx/master
Add Friulian translation
Add Friulian translation
Merge pull request #66 from alexax66/master
Update translations
Rename pt_br.po to pt_BR.po
Update all po
fix update_translations.sh
Merge pull request #65 from ghostbsd/improve-be-destroy
Improved deleting old be
Improved deleting old be
Merge pull request #64 from ghostbsd/fix-po
Fixed and updated PO files
Fixed and updated PO files
Merge pull request #63 from ghostbsd/ericbsd-patch-1
Fixed version in setup.py
Fixed version in setup.py
Merge pull request #62 from ghostbsd/revert-kernel-update-chage
Reverted the removal of force upgrade and improved some code
Changed sleeps
Fixed UpdateCompleted homogeneous variable
Reverted the removal of force upgrade and improved some code.
Remove some unused variable
Simplify the update-station backend
Now that pkg has a better support for upgrading packages with base. I have cleanup the code that was forcing reinstall, replace pkg-static by pkg. this should take care of the loop issue.
Also took time to clean some deprecated GTK code.
Merge pull request #60 from ghostbsd/translation-pt_br
Issue 196 - Translation
Added translation for Brazilian Portuguese
Merge pull request #59 from ghostbsd/progress-fraction
Fixed the progress fraction
Fixed the progress fraction
Merge pull request #58 from ghostbsd/ericbsd-patch-1
Update setup.py version