[OE-core] [OE-Core][PATCH v5 0/6] Fix systemd service enables/move towards "stateless" configuration

Alex Kiernan alex.kiernan at gmail.com
Mon Apr 29 14:43:19 UTC 2019


This is largely Jonas Bonn <jonas at norrbonn.se> patchset to move towards a
"stateless" configuration:

  These patches make some modifications to systemd with the long-term goal
  of being able to run OE in systemd's "stateless" configuration.
  "Stateless" boils down to building an image with empty /etc and /var
  directories so that volatile (tmpfs) filesystems can be mounted there;
  this requires that the system subsequently be able to populate these
  directories dynamically, which systemd mostly takes care of if things are
  done right.

  In these patches:
  i)   Don't include machine-id in writable images so that systemd can run
       its first-boot machinery
  ii)  Move systemd configuration files out of /etc
  iii) Allow systemd to dynamically enable services and populate
       /etc/systemd/system via the presets mechanism

  There's a long way to go to get to a working "stateless" configuration.
  Getting to a "volatile" system (just empty /var) should be easier and I'll
  post patches moving things in that direction shortly.

As a result of the systemd 242 upgrade, which includes 01d2041e41f4
("meson: stop creating enablement symlinks in /etc during
installation"), services such as systemd-networkd are no longer enabled
in images.

This patch set fixes this problem in addition to satisfying the goal of
moving towards "stateless" configurations.

The issue with respect to image testing during CI was caused by
systemd-time-wait-sync.service being enabled due to the lack of a
default preset policy:

https://www.freedesktop.org/wiki/Software/systemd/Preset/#howto

We include a default policy of "enable nothing" which matches that used
by (at least) Arch and Fedora.

Changes in v5:
- rebased for systemd 242
- install default preset distribution policy of "enable nothing"

Changes in v4:
- add patch to make systemd-firstboot a non-default option to systemd to
  prevent unexpected prompts at runtime

Changes in v3:
- parameterize preset-file installation location (as suggested in patch
  review)

Changes in v2:
- address patchtest warnings:
  - include sign-offs on patches
  - include License-Update tag on patch that makes licensing change
- dropped patch implementing brute-force removal of unit files installed
  by systemd into /etc
- reworked the systemd-conf patch to restore the installation of the
  base systemd configuration files

Jonas Bonn (6):
  systemd: don't build firstboot by default
  systemd: do not create machine-id
  systemd-conf: simplify creation of machine-specific configuration
  systemd: create preset files instead of installing in image
  systemd-systemctl-native: simplify and support preset-all
  rootfs-postcommands: call preset-all for read-only-rootfs

 meta/classes/rootfs-postcommands.bbclass      |  8 +++
 meta/classes/systemd.bbclass                  | 33 ++++++------
 meta/recipes-core/systemd/systemd-conf_242.bb | 53 ++++++++-----------
 .../systemd/systemd-systemctl/systemctl       | 36 +++----------
 .../systemd/systemd/99-default.preset         |  1 +
 meta/recipes-core/systemd/systemd_242.bb      | 23 ++++----
 6 files changed, 68 insertions(+), 86 deletions(-)
 create mode 100644 meta/recipes-core/systemd/systemd/99-default.preset

-- 
2.17.1



More information about the Openembedded-core mailing list