1. 18 Mar, 2022 1 commit
  2. 17 Mar, 2022 1 commit
    • Karel Koci's avatar
      Version 1.5.2 · 61a21045
      Karel Koci authored
      Fixed
      * crash when approvals are enabled without window being configured
      61a21045
  3. 11 Mar, 2022 2 commits
  4. 24 Feb, 2022 1 commit
    • Karel Koci's avatar
      Version 1.5.1 · a347f870
      Karel Koci authored
      Fixed
      * block of execution when package is removed or reinstalled using opkg
      * do not attempt recovery of journal on package installation
      a347f870
  5. 22 Feb, 2022 1 commit
    • Karel Koci's avatar
      files/immediate_reboot: fix block on package removal · 0791fd0a
      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.
      0791fd0a
  6. 16 Feb, 2022 1 commit
    • Karel Koci's avatar
      Version 1.5.0 · 225ffd9a
      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.
      225ffd9a
  7. 15 Feb, 2022 4 commits
    • Karel Koci's avatar
      approvals: add info about automatic installation to notification · bf16862c
      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.
      bf16862c
    • Karel Koci's avatar
      svupdater: add ability to set auto-approve window · 3a649af2
      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.
      3a649af2
    • Karel Koci's avatar
      approvals: propagate info about reboot · aecdf2c4
      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.
      aecdf2c4
    • Karel Koci's avatar
      Switch from state-log to changelog · 6a78d5b7
      Karel Koci authored
      The changelog is unconditional log tracked by new versions of updater.
      We can use that for notifications.
      6a78d5b7
  8. 26 Mar, 2021 1 commit
    • Karel Koci's avatar
      Replace ping with curl for network check · 76bd7cb7
      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.
      76bd7cb7
  9. 04 Dec, 2020 1 commit
    • Karel Koci's avatar
      Version 1.4.3 · c6087fc5
      Karel Koci authored
      Fixed
      * `packages` module failure when there is uninstalled package in index
      c6087fc5
  10. 02 Dec, 2020 1 commit
    • Karel Koci's avatar
      Fix check for installed packages and removed package · 25574fdb
      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.
      25574fdb
  11. 01 Dec, 2020 2 commits
  12. 27 Nov, 2020 1 commit
  13. 20 Nov, 2020 4 commits
    • Karel Koci's avatar
      Version 1.4.1 · 8845ef7d
      Karel Koci authored
      * Merged changes from 1.3.3 fixup release
      8845ef7d
    • Karel Koci's avatar
      Merge tag 'v1.3.3' · e5113c60
      Karel Koci authored
      Updater Supervisor version 1.3.3
      
      Fixed
      * exception raised when "approvals needed" was configured there was
        pending approval
      e5113c60
    • Karel Koci's avatar
      Version 1.3.3 · d2535532
      Karel Koci authored
      Fixed
      * exception raised when "approvals needed" was configured there was
        pending approval
      d2535532
    • Karel Koci's avatar
      approvals: fix exception on approval required · de26ffde
      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.
      de26ffde
  14. 06 Nov, 2020 10 commits
    • Karel Koci's avatar
      Version 1.4.0 · a157f5bc
      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
      a157f5bc
    • Karel Koci's avatar
      General code refactor · d04ed05a
      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.
      d04ed05a
    • Karel Koci's avatar
      files/cron: incorporate latest changes · 2381b0ec
      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.
      2381b0ec
    • Karel Koci's avatar
      Add --autorun option and allow run even if autorun is disabled · 649023ed
      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.
      649023ed
    • Karel Koci's avatar
      Add module packages · 448f5954
      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).
      448f5954
    • Karel Koci's avatar
      Add msgtrace module · 1daeb9ba
      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.
      1daeb9ba
    • Karel Koci's avatar
      Solidify public API with typing · e12ade9b
      Karel Koci authored
      This adds type hints on all public functions and methods.
      e12ade9b
    • Karel Koci's avatar
      Added option --no-network-fail · 772939b0
      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.
      772939b0
    • Karel Koci's avatar
      Move license to one central file · a5e0e6ca
      Karel Koci authored
      a5e0e6ca
    • Karel Koci's avatar
      files/immediate_reboot: block shutdown when updater or opkg is running · 753f01a3
      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.
      753f01a3
  15. 15 Sep, 2020 1 commit
    • Karel Koci's avatar
      svupdater/branch: define default for mode · 71a3ea87
      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.
      71a3ea87
  16. 17 Aug, 2020 2 commits
    • Karel Koci's avatar
      Version 1.3.2 · 7e3b9b0f
      Karel Koci authored
      Changed
      * pkgupdate is now not run with `--task-log`
      7e3b9b0f
    • Karel Koci's avatar
      svupdater: do not run pkgupdate with --task-log · 254559fb
      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.
      254559fb
  17. 05 Jun, 2020 2 commits
    • Karel Koci's avatar
      Version 1.3.1 · d35c3038
      Karel Koci authored
      Added
      - Support for package lists filter based on board
      - New dependency is now distro
      d35c3038
    • Karel Koci's avatar
      Add support for boards package lists filter · 18c6ce08
      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).
      18c6ce08
  18. 09 Apr, 2020 3 commits
    • Karel Koci's avatar
      Version 1.3.0 · ff3302c7
      Karel Koci authored
      ff3302c7
    • Štěpán Henek's avatar
      setup.py: add pyuci dependency · 064a68e4
      Štěpán Henek authored and Karel Koci's avatar Karel Koci committed
      064a68e4
    • Karel Koci's avatar
      svupdater/lists: add support for labels · df1bde02
      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.
      df1bde02
  19. 08 Mar, 2020 1 commit