start-update-interface: item_updater & activation

Refactor item_updater so new update-manager module can call create the
required interfaces such as version, activation etc for the incoming
update request. To facilitate this, new APIs are exposed and
useUpdateDBusInterface is added to class constructor so required
initializations can be performed accordingly. useUpdateDBusInterface
helps to skip D-Bus callback registration for new software interfaces as
item_updater will rely on start update D-Bus interface for intercepting
image update requests.
The apply time will be passed to the software manager via start update
interface, so this patch adds an apply time parameter to the activation
class. checkApplyTimeImmediate() can decide based on
useUpdateDBusInterface whether to use the ApplyTime value from
activation class or get it from the Settingsd for the old legacy flow.
This change is based on -
https://gerrit.openbmc.org/c/openbmc/phosphor-dbus-interfaces/+/65738
https://gerrit.openbmc.org/c/openbmc/docs/+/65739

Change-Id: I8477b0850f0a18630c197774bfa076d4c98096b1
Signed-off-by: Jagpal Singh Gill <paligill@gmail.com>
5 files changed
tree: 16b4ffa015f8d71619ae302b214529341c4ef331
  1. mmc/
  2. side-switch/
  3. static/
  4. subprojects/
  5. test/
  6. ubi/
  7. usb/
  8. .clang-format
  9. .clang-tidy
  10. .gitignore
  11. .shellcheck
  12. activation.cpp
  13. activation.hpp
  14. detect-slot-aspeed
  15. download_manager.cpp
  16. download_manager.hpp
  17. download_manager_main.cpp
  18. flash.hpp
  19. force-reboot.service.in
  20. gen-bios-tar
  21. image_manager.cpp
  22. image_manager.hpp
  23. image_manager_main.cpp
  24. image_verify.cpp
  25. image_verify.hpp
  26. images.cpp
  27. images.hpp
  28. item_updater.cpp
  29. item_updater.hpp
  30. item_updater_helper.hpp
  31. item_updater_main.cpp
  32. LICENSE
  33. meson.build
  34. meson.options
  35. msl_verify.cpp
  36. msl_verify.hpp
  37. obmc-flash-bmc
  38. obmc-flash-bmc-setenv@.service.in
  39. obmc-flash-host-bios@.service.in
  40. openssl_alloc.cpp
  41. openssl_alloc.hpp
  42. OWNERS
  43. README.md
  44. reboot-guard-disable.service.in
  45. reboot-guard-enable.service.in
  46. reset-cs0-aspeed
  47. serialize.cpp
  48. serialize.hpp
  49. software.conf
  50. software_manager.cpp
  51. sync-once.sh
  52. sync_manager.cpp
  53. sync_manager.hpp
  54. sync_manager_main.cpp
  55. sync_watch.cpp
  56. sync_watch.hpp
  57. synclist
  58. usr-local.mount.in
  59. utils.cpp
  60. utils.hpp
  61. version.cpp
  62. version.hpp
  63. watch.cpp
  64. watch.hpp
  65. xyz.openbmc_project.Software.BMC.Updater.service.in
  66. xyz.openbmc_project.Software.Download.service.in
  67. xyz.openbmc_project.Software.Manager.service.in
  68. xyz.openbmc_project.Software.Sync.service.in
  69. xyz.openbmc_project.Software.Version.service.in
README.md

phosphor-bmc-code-mgmt

Phosphor BMC Code Management provides a set of system software management applications. More information can be found at Software Architecture

To Build

To build this package, do the following steps:

  1. meson build
  2. ninja -C build

To clean the repository run rm -r build.