[oe] [PATCH 00/22] hybrid systemd/sysvinit, and systemd fixes

Ross Burton ross.burton at intel.com
Fri Mar 22 17:38:20 UTC 2013


Hi,

This series changes the package groups and distro feature setup to allow
simultaneous use of sysvinit and systemd, with a number of fixes that were
discovered on the way.

As before there are sysvinit and systemd DISTRO_FEATURES.  These are not
mutually exclusive, and sysvinit is backfilled for compatibility.

Common Scenarios
===

"I want sysvinit, just like before"

Do nothing, sysvinit is backfilled and the image is effectively identical as it
was before this series.

"I just want systemd"

Add systemd to DISTRO_FEATURES, and sysvinit to
DISTRO_FEATURES_BACKFILL_CONSIDERED.  You'll only get the sysvinit scripts where
required: when a package doesn't have systemd support.

"I want my main image to boot using systemd, but a rescue image to use sysvinit"

This is less elegant, but can probably be improved later.  Add systemd to
DISTRO_FEATURES and sysvinit will be backfilled for you (feel free to add it
explicitly for clarity).  Then set VIRTUAL-RUNTIME_init_manager to "systemd" and
any images using package-group-core-boot will boot using systemd.  For your
rescue/minimal images I expect you're not using package-group-core-boot anyway,
so pull sysvinit+initscripts into those images however you wish.


Future Plans
===

Mainly, finish integrating the bulk of meta-systemd into oe-core!

There's potential for reducing the footprint of the hwdb by building/patching
udevadm on the host to generate the hwdb.bin file at image construction time,
and then removing the source files leaving just the binary cache.  As it is,
udev-hwdb is a recommendation so if your system doesn't actually need it, you
can blacklist it.

Cheers,
Ross

The following changes since commit 6211a2bdd32f7b2c8de7a5d75353c0522c8d4230:

  scripts/qemu-testlib: Add more debugging information (2013-03-21 17:05:15 +0000)

are available in the git repository at:

  git://git.yoctoproject.org/poky-contrib ross/systemd

for you to fetch changes up to 0e1da1e227c8e52087f7a52f8501a81cd28e76c7:

  systemd: recommend systemd-compat-units (2013-03-22 17:24:21 +0000)

----------------------------------------------------------------
Andreas Oberritter (1):
      Revert "base-files: add fstab for systemd based systems"

Radu Moisan (1):
      busybox: enable systemd integration for syslogd

Ross Burton (20):
      busybox: add strictatime support to mount
      systemd: make xz support (compressed journal) optional, defaulting to on.
      systemd: merge udev-systemd into udev
      core-image-minimal-initramfs: don't install busybox-syslog
      systemd: don't depend on the PCI/USB databases
      systemd: split out the hwdb data
      default-providers: change udev selection logic
      update-rcd.bbclass: handle both sysvinit and systemd features being present
      util-linux: split uuidd into it's own package, and enable for systemd
      update-rcd: drop depends to recommends, check for update-rcd in scripts
      systemd: check for systemctl first, and don't force systemd to be installed.
      systemd: add udev init script for hybrid sysvinit/systemd usage
      update-rc.d/systemd: change communication variable name
      default-distrovars: don't add INITMAN to DISTRO_FEATURES and DISTRO_FEATURES_BACKFILL
      bitbake.conf: explicitly backfill sysvinit, not DISTRO_FEATURES_INITMAN
      local.conf.sample.extended: remove obsolete DISTRO_FEATURES_INITMAN reference
      default-distrovars: remove obsolete DISTRO_FEATURES_INITMAN reference
      packagegroup-core-boot: revert to specifying sysvinit as default init manager
      systemd-compat-units: disable dbus-1
      systemd: recommend systemd-compat-units

 meta-yocto/conf/local.conf.sample.extended         |    4 -
 meta/classes/systemd.bbclass                       |   38 ++++----
 meta/classes/update-rc.d.bbclass                   |   22 +++--
 meta/conf/bitbake.conf                             |    2 +-
 meta/conf/distro/include/default-distrovars.inc    |    3 +-
 meta/conf/distro/include/default-providers.inc     |    2 +-
 .../base-files/base-files/fstab.systemd            |    9 --
 meta/recipes-core/base-files/base-files_3.0.14.bb  |    7 +-
 .../busybox/busybox-1.20.2/strict-atime.patch      |   49 ++++++++++
 meta/recipes-core/busybox/busybox.inc              |   18 +++-
 meta/recipes-core/busybox/busybox_1.20.2.bb        |    5 +-
 .../busybox/files/busybox-klogd.service.in         |    8 ++
 .../busybox/files/busybox-syslog.service.in        |   13 +++
 .../images/core-image-minimal-initramfs.bb         |    2 +
 .../packagegroups/packagegroup-core-boot.bb        |    6 +-
 meta/recipes-core/systemd/systemd-compat-units.bb  |    1 +
 meta/recipes-core/systemd/systemd/init             |  101 ++++++++++++++++++++
 meta/recipes-core/systemd/systemd_197.bb           |   49 +++++++---
 meta/recipes-core/util-linux/util-linux.inc        |   11 ++-
 19 files changed, 280 insertions(+), 70 deletions(-)
 delete mode 100644 meta/recipes-core/base-files/base-files/fstab.systemd
 create mode 100644 meta/recipes-core/busybox/busybox-1.20.2/strict-atime.patch
 create mode 100644 meta/recipes-core/busybox/files/busybox-klogd.service.in
 create mode 100644 meta/recipes-core/busybox/files/busybox-syslog.service.in
 create mode 100644 meta/recipes-core/systemd/systemd/init

Andreas Oberritter (1):
  Revert "base-files: add fstab for systemd based systems"

Radu Moisan (1):
  busybox: enable systemd integration for syslogd

Ross Burton (20):
  busybox: add strictatime support to mount
  systemd: make xz support (compressed journal) optional, defaulting to
    on.
  systemd: merge udev-systemd into udev
  core-image-minimal-initramfs: don't install busybox-syslog
  systemd: don't depend on the PCI/USB databases
  systemd: split out the hwdb data
  default-providers: change udev selection logic
  update-rcd.bbclass: handle both sysvinit and systemd features being
    present
  util-linux: split uuidd into it's own package, and enable for systemd
  update-rcd: drop depends to recommends, check for update-rcd in
    scripts
  systemd: check for systemctl first, and don't force systemd to be
    installed.
  systemd: add udev init script for hybrid sysvinit/systemd usage
  update-rc.d/systemd: change communication variable name
  default-distrovars: don't add INITMAN to DISTRO_FEATURES and
    DISTRO_FEATURES_BACKFILL
  bitbake.conf: explicitly backfill sysvinit, not
    DISTRO_FEATURES_INITMAN
  local.conf.sample.extended: remove obsolete DISTRO_FEATURES_INITMAN
    reference
  default-distrovars: remove obsolete DISTRO_FEATURES_INITMAN reference
  packagegroup-core-boot: revert to specifying sysvinit as default init
    manager
  systemd-compat-units: disable dbus-1
  systemd: recommend systemd-compat-units

 meta-yocto/conf/local.conf.sample.extended         |    4 -
 meta/classes/systemd.bbclass                       |   38 ++++----
 meta/classes/update-rc.d.bbclass                   |   22 +++--
 meta/conf/bitbake.conf                             |    2 +-
 meta/conf/distro/include/default-distrovars.inc    |    3 +-
 meta/conf/distro/include/default-providers.inc     |    2 +-
 .../base-files/base-files/fstab.systemd            |    9 --
 meta/recipes-core/base-files/base-files_3.0.14.bb  |    7 +-
 .../busybox/busybox-1.20.2/strict-atime.patch      |   49 ++++++++++
 meta/recipes-core/busybox/busybox.inc              |   18 +++-
 meta/recipes-core/busybox/busybox_1.20.2.bb        |    5 +-
 .../busybox/files/busybox-klogd.service.in         |    8 ++
 .../busybox/files/busybox-syslog.service.in        |   13 +++
 .../images/core-image-minimal-initramfs.bb         |    2 +
 .../packagegroups/packagegroup-core-boot.bb        |    6 +-
 meta/recipes-core/systemd/systemd-compat-units.bb  |    1 +
 meta/recipes-core/systemd/systemd/init             |  101 ++++++++++++++++++++
 meta/recipes-core/systemd/systemd_197.bb           |   49 +++++++---
 meta/recipes-core/util-linux/util-linux.inc        |   11 ++-
 19 files changed, 280 insertions(+), 70 deletions(-)
 delete mode 100644 meta/recipes-core/base-files/base-files/fstab.systemd
 create mode 100644 meta/recipes-core/busybox/busybox-1.20.2/strict-atime.patch
 create mode 100644 meta/recipes-core/busybox/files/busybox-klogd.service.in
 create mode 100644 meta/recipes-core/busybox/files/busybox-syslog.service.in
 create mode 100644 meta/recipes-core/systemd/systemd/init

-- 
1.7.10.4





More information about the Openembedded-devel mailing list