- 18 Mar, 2022 1 commit
-
-
Josef Schlehofer authored
-
- 17 Mar, 2022 1 commit
-
-
Karel Koci authored
Fixed * crash when approvals are enabled without window being configured
-
- 11 Mar, 2022 2 commits
-
-
Karel Koci authored
These are mostly type hints related fixes.
-
Karel Koci authored
This fixes case when there is no window specified in configuration (the default behavior). I somehow optimized out that branch out of the code during the review process.
-
- 24 Feb, 2022 1 commit
-
-
Karel Koci authored
Fixed * block of execution when package is removed or reinstalled using opkg * do not attempt recovery of journal on package installation
-
- 22 Feb, 2022 1 commit
-
-
Karel Koci authored
This makes sure that init script is not executed when we are installing or removing package. The important problem this covers is the block of execution on package removal as immediate_reboot init script waits for termination of opkg or updater while at the same time opkg waits for postinstall script termination and thus termination of the initial wait. This creates deadlock.
-
- 16 Feb, 2022 1 commit
-
-
Karel Koci authored
Added * Reboot requirement info to approval message * Ability to set window when update is automatically approved or installed in case of delayed approve Changed * Switch from state log to changelog and improve notifications about changes and updater crashes * `approvals.current` now returns `reboot` field as optional string instead of boolean. This was done to allow access to the information when reboot is requested to be performed.
-
- 15 Feb, 2022 4 commits
-
-
Karel Koci authored
We can guess the date or at minimum the boundary when the changes are going to be installed without explicit user's approval. We can provide this info to the notification as well so that is what this is.
-
Karel Koci authored
The idea here is that user can set when exactly updater can update system by setting start and end periodic times. We use cron syntax for that. There are few hacks that we had to implement to ensure that it is not fragile. The first issue is combination with execution and random delay. We want to always hit the allowed window so we can install any possible update so we need to tweak the random delay to fix that. Also we had to make sure that updater considers all hours of the day. We run updater by cron every two hours now with still the same two hours random delay. This way updater can hit every possible allowed window. The combination of delayed approvals and approval window results in wait for delay first and only after that installation in allowed window. Thus both of them apply.
-
Karel Koci authored
This propagates info about required reboot type. There can be either no reboot (None) or request for reboot after update ("finished") or just some time after update ("delayed"). This info is also now provided in approval notification.
-
Karel Koci authored
The changelog is unconditional log tracked by new versions of updater. We can use that for notifications.
-
- 26 Mar, 2021 1 commit
-
-
Karel Koci authored
In reality we need to download files from repo.turris.cz so it makes sense to try perform real download rather than just ping. This also changes when we check for network. We check every time that is enabled. It makes sense as that way we can cover some temporally service dropouts even when not running from cron. There are other tiny tweaks such as that we no longer use name of package in package itself and rather import relatively.
-
- 04 Dec, 2020 1 commit
-
-
Karel Koci authored
Fixed * `packages` module failure when there is uninstalled package in index
-
- 02 Dec, 2020 1 commit
-
-
Karel Koci authored
Updater preserves removed packages in index if they at time of removal had some modified configuration files. Such packages are removed and should be reported as such. There is also no control file on filesystem. This fixes missing control file error by just not reading control file if it is not present. This has no impact as info is not available about that package and should not be required anyway. This also fixes installed method by properly checking status fields.
-
- 01 Dec, 2020 2 commits
-
-
Karel Koci authored
Fixed * Missing defaults for `--rand-sleep` and `--wait-for-network` arguments * Deprecated usage of `collections
-
Karel Koci authored
This is simple issue. We use it as int but if argument is not used the default is None. We are missing defaults in parser.
-
- 27 Nov, 2020 1 commit
-
-
- 20 Nov, 2020 4 commits
-
-
Karel Koci authored
* Merged changes from 1.3.3 fixup release
-
Karel Koci authored
Updater Supervisor version 1.3.3 Fixed * exception raised when "approvals needed" was configured there was pending approval
-
Karel Koci authored
Fixed * exception raised when "approvals needed" was configured there was pending approval
-
Karel Koci authored
The autorun.auto_approve_time() returns None in case of approvals are required. Instead of checking if it is not None we checked old condition and that if it is larger than 0. This was casing update blockage in case approvals were configured as required.
-
- 06 Nov, 2020 10 commits
-
-
Karel Koci authored
Added * msgtrace module with ability to provide info such as date of last check for updates or updater execution messages * packages module that allows read access of installed packages info * Option --no-network-fail to skip updater run when network connection is unavailable * Possibility to disable network test by setting zero * System shutdown is now retained till there is process holding opkg lock * argument --autorun to mark execution as automatic run to adhere autorun configuration Changed * Disabled autorun now won't prevent from update, you have to use --autorun to get previous behavior
-
Karel Koci authored
This removes some left over Python 2 compatibility code. It also makes sure that public modules do not "unpack" any modules. That is 'from foo import fee` is pretty much not used in public modules.
-
Karel Koci authored
This now has to use --autorun as it is running it automatically and also it is good to use --no-network-fail.
-
Karel Koci authored
The original idea was to use autorun configuration to disable automatic updates. As it was implemented until now it was preventing execution of updates not just automatic but manual as well. The only option was to use pkgupdate directly. This should allow usage of supervisor not just when automatic updates are enabled.
-
Karel Koci authored
This module parses status file and control files of packages installed in system. In allows access to various fields. Primary usage is to check if given package is installed (that covers not just exactly name of package but also all packages providing it).
-
Karel Koci authored
This module is intended as "hack" to allow some state reporting of updater to other components. It is really hack as it relies on debug messages send to syslog. This implementation does not match every single message produced by updater. It only covers standard execution messages and only those with some sort of "benefit" to user.
-
Karel Koci authored
This adds type hints on all public functions and methods.
-
Karel Koci authored
This option should be used for example from cron to not spam pkgupdate when we know it is going to fail. It also prevents from spamming users because of failed update executions.
-
Karel Koci authored
-
Karel Koci authored
This protects against reboots breaking system if they happen in inappropriate time during update. It is not ultimate solution as user can simply unplug router but it helps in some cases.
-
- 15 Sep, 2020 1 commit
-
-
Karel Koci authored
Although mode should be always set it can be removed by user. We should not just fail with exception when we know that branch is the default mode. That means instead just fallback to branch.
-
- 17 Aug, 2020 2 commits
-
-
Karel Koci authored
Changed * pkgupdate is now not run with `--task-log`
-
Karel Koci authored
This removes task log. I was used as kind of history of changes but was primarilly to observe long term execution. There are issues with it as that we do not manage that log correctly (it is not logrotated). It is also questionable how usable it is. One execution can be and is parsed from state-log. This makes this file almost without use and not needed for functionality at all. In the end making it adept for removal.
-
- 05 Jun, 2020 2 commits
-
-
Karel Koci authored
Added - Support for package lists filter based on board - New dependency is now distro
-
Karel Koci authored
This is filter for both package lists as well its options to skip them if they are not compatible with current board. This is primarily intended to support hardware specific extension in package lists. No change is required outside of updater-supervisor as package lists are just skipped and considered as not defined (not existing).
-
- 09 Apr, 2020 3 commits
-
-
Karel Koci authored
-
-
Karel Koci authored
Labels are new generic approach to existing official boolean option. This removes that option and instead introduces flags that can symbol anything. This implementation is just extension of existing one so everything is till returned all at once. Labels can be matched by name between various pkglists but that has to be done by user. Here info for labels is duplicated to every occurrence of that label.
-
- 08 Mar, 2020 1 commit
-
-
Martin Matějek authored
Don't rely on type autodetection
-