From: Yann E. MORIN <yann.morin.1998@free.fr>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH 00/24] system: properly handle systemd as init system (branch yem/systemd-skeleton)
Date: Sat, 18 Jun 2016 11:36:38 +0200 [thread overview]
Message-ID: <20160618093638.GA3573@free.fr> (raw)
In-Reply-To: <cover.1465766789.git.yann.morin.1998@free.fr>
All,
On 2016-06-12 23:55 +0200, Yann E. MORIN spake thusly:
> Hello All!
>
> This series is a proposal to fix our handling of systemd as an init
> system.
I've marked this series as Changes Requested: the commit logs were not
really complete. So I detaield each commit a bit more.
I'll respin a new version of the series by the end of the day.
Regards,
Yann E. MORIN.
> Our default skeleton is not well suited for systemd:
>
> - we have /var/log a symlink to /tmp/log, but the way systemd starts
> hides the journals:
> - start systemd-journald, stores journals in /tmp/log/ (because of
> the redirection above)
> - mounts a tmpfs over /tmp, thus hidding the journals.
>
> - on a read-only rootfs, systemd expects /var to be read-write, which
> we do not provide.
>
>
> All of this sounds trivial, but fixing it is definitely not.
>
> The overall idea is that we need different skeletons, one for each of
> the init systems (and as can be seen later, there is in fact none for
> systeemd).
>
> Also, the organisation of the rootfs is different between the different
> init systems, with different mount points in some cases.
>
> First comes a long and rather boring sub-series aimed at preparing for
> the various skeletons, with patches 1-11 some cleanups and re-factoring
> of the system sub-menu, plus limiting our tweaks in the custom skeleton.
>
> Then comes more in-depth preparatory works in the core infra: allow
> packages to explicitly declare target-finalize hooks, or avoid the
> dependency on the skeleton.
>
> Third, we split the current skeleton into various parts: one skeleton
> for the sysv-like init systems (busybox, sysv-init), one skeleton for
> sysv-like network management (because shared between sysv and
> systemd-without-networkd) and a third to handle the custom skeleton.
>
> Finally, we introduce the skeleton for systemd, add missing pieces it
> really needs (timezones) and make it work flawlessly on a read-only
> rootfs.
>
> Please have a look at the various commit logs for more in-depth
> explanations for the vairious pieces.
>
> With this series, I was able to build and run without issues those
> combinations:
>
> init system rootfs DHCP? target
> ----------------------------------------------------
> busybox ext4 no rpi0
> busybox ext4 eth0 rpi1-B
> busybox squashfs no rpi0
> busybox squashfs eth0 rpi1-B
> * systemd-minimal ext4 no rpi0
> systemd-minimal ext4 eth0 rpi1-B
> systemd-minimal squashfs no rpi0
> systemd-minimal squashfs eth0 rpi1-B
> ** systemd-full ext4 no rpi0
> systemd-full ext4 eth0 rpi1-B
> systemd-full squashfs no rpi0
> systemd-full squashfs eth0 rpi1-B
>
>
> * systemd-minimal: only what gets selected automatically when systemd
> is used as init system, with all other options unset
>
> ** systemd-full: all systemd options enabled
>
> To be noted for future work:
>
> - systemd-230 (which we currently have) has dropped support for legacy
> libs, patch should be trivial;
>
> - systemd-230 also ditched systemd-bootchartd, which is now a separate
> package; until recently it did not compile against systemd-230; its
> repository was recently updated to supposedly fix this issue, but I
> did not have time to test;
>
> - I also had a look at all the pending patches on the list; I'll
> handle them after this series has been completed (i.e. applied after
> any necessary rework). I don;t want to carry a series with tens and
> tens of patches... ;-)
>
>
> Regards,
> Yann E. MORIN.
>
>
> The following changes since commit 494b0a5b6b0018bfd05ae5d7c09f57c881ed2b72
>
> gst1-imx: make kernel dependency optional (2016-06-12 22:38:19 +0200)
>
>
> are available in the git repository at:
>
> https://git.busybox.net/~ymorin/git/buildroot
>
> for you to fetch changes up to 4bfd9509ba59300ae2fa25be5cebfd6786ca7f7c
>
> system: allow DHCP interface with systemd-networkd (2016-06-12 22:46:00 +0200)
>
>
> ----------------------------------------------------------------
> Yann E. MORIN (24):
> package/skeleton: remove useless .empty file
> system: sysvinit only selects busybox-show-others if busybox is enabled
> package/skeleton: respect variables namespace
> system/skeleton: update etc/mtab with a more sensible link
> system: systemd only really supports a R/W rootfs
> package/systemd: disabling tty1 getty is a post-install hook
> system: provide no default for custom skeleton path
> system: move the rootfs skeleton choice
> system: do not handle network settings for custom skeleton
> package/perl: use dummy hostname
> system: do not set hostname and issue for custom skeleton
> core/pkg-generic: add variable to skip skeleton dependency
> package/skeleton: add macro to rsync skeleton directory
> core/pkg-generic: allow packages to declare target-finalize hooks
> packages: use the <PKG>_TARGET_FINALIZE_HOOKS
> package/skeleton: split into sysv and custom skeleton
> package/skeleton: make it a virtual package
> package/skeleton-sysv: split into skeleton-common
> system: split skeleton
> package/skeleton-systemd: new package
> system/systemd: needs timezone
> fs: add pre- and post-command hooks
> system: make systemd work on a read-only rootfs
> system: allow DHCP interface with systemd-networkd
>
> docs/manual/adding-packages-hooks.txt | 7 +
> fs/common.mk | 4 +
> package/Config.in | 4 +
> package/google-breakpad/google-breakpad.mk | 6 +-
> package/libglib2/libglib2.mk | 6 +-
> package/libgtk3/libgtk3.mk | 4 +-
> package/luarocks/luarocks.mk | 3 +-
> package/perl/perl.mk | 6 +-
> package/pkg-generic.mk | 13 +-
> package/python/python.mk | 10 +-
> package/python3/python3.mk | 10 +-
> package/skeleton-common/Config.in | 2 +
> package/skeleton-common/skeleton-common.mk | 99 ++++++++++
> package/skeleton-custom/Config.in | 6 +
> package/skeleton-custom/skeleton-custom.mk | 114 +++++++++++
> package/skeleton-systemd/Config.in | 7 +
> package/skeleton-systemd/skeleton-systemd.mk | 106 ++++++++++
> package/skeleton-sysv/Config.in | 7 +
> package/skeleton-sysv/skeleton-sysv.mk | 79 ++++++++
> package/skeleton/Config.in | 10 +
> package/skeleton/skeleton.mk | 213 +++------------------
> package/systemd/systemd.mk | 12 +-
> system/Config.in | 78 ++++----
> .../etc/network/if-down.d}/.empty | 0
> .../etc/network/if-post-down.d}/.empty | 0
> .../etc/network/if-pre-up.d/wait_iface | 0
> .../etc/network/if-up.d}/.empty | 0
> system/{skeleton => skeleton-sysv}/dev/log | 0
> .../if-down.d => skeleton-sysv/dev/pts}/.empty | 0
> system/{skeleton => skeleton-sysv}/dev/shm/.empty | 0
> system/{skeleton => skeleton-sysv}/etc/fstab | 0
> system/{skeleton => skeleton-sysv}/etc/resolv.conf | 0
> system/{skeleton => skeleton-sysv}/var/cache | 0
> system/{skeleton => skeleton-sysv}/var/lib/misc | 0
> system/{skeleton => skeleton-sysv}/var/lock | 0
> system/{skeleton => skeleton-sysv}/var/log | 0
> system/{skeleton => skeleton-sysv}/var/run | 0
> system/{skeleton => skeleton-sysv}/var/spool | 0
> system/{skeleton => skeleton-sysv}/var/tmp | 0
> system/skeleton/dev/{pts => }/.empty | 0
> system/skeleton/etc/mtab | 2 +-
> 41 files changed, 548 insertions(+), 260 deletions(-)
> create mode 100644 package/skeleton-common/Config.in
> create mode 100644 package/skeleton-common/skeleton-common.mk
> create mode 100644 package/skeleton-custom/Config.in
> create mode 100644 package/skeleton-custom/skeleton-custom.mk
> create mode 100644 package/skeleton-systemd/Config.in
> create mode 100644 package/skeleton-systemd/skeleton-systemd.mk
> create mode 100644 package/skeleton-sysv/Config.in
> create mode 100644 package/skeleton-sysv/skeleton-sysv.mk
> rename system/{skeleton/etc/network/if-up.d => skeleton-net/etc/network/if-down.d}/.empty (100%)
> rename system/{skeleton/etc/network/if-pre-up.d => skeleton-net/etc/network/if-post-down.d}/.empty (100%)
> rename system/{skeleton => skeleton-net}/etc/network/if-pre-up.d/wait_iface (100%)
> rename system/{skeleton/etc/network/if-post-down.d => skeleton-net/etc/network/if-up.d}/.empty (100%)
> rename system/{skeleton => skeleton-sysv}/dev/log (100%)
> rename system/{skeleton/etc/network/if-down.d => skeleton-sysv/dev/pts}/.empty (100%)
> rename system/{skeleton => skeleton-sysv}/dev/shm/.empty (100%)
> rename system/{skeleton => skeleton-sysv}/etc/fstab (100%)
> rename system/{skeleton => skeleton-sysv}/etc/resolv.conf (100%)
> rename system/{skeleton => skeleton-sysv}/var/cache (100%)
> rename system/{skeleton => skeleton-sysv}/var/lib/misc (100%)
> rename system/{skeleton => skeleton-sysv}/var/lock (100%)
> rename system/{skeleton => skeleton-sysv}/var/log (100%)
> rename system/{skeleton => skeleton-sysv}/var/run (100%)
> rename system/{skeleton => skeleton-sysv}/var/spool (100%)
> rename system/{skeleton => skeleton-sysv}/var/tmp (100%)
> rename system/skeleton/dev/{pts => }/.empty (100%)
>
> --
> .-----------------.--------------------.------------------.--------------------.
> | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
> | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
> | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no |
> | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
> '------------------------------^-------^------------------^--------------------'
--
.-----------------.--------------------.------------------.--------------------.
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
| +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
'------------------------------^-------^------------------^--------------------'
prev parent reply other threads:[~2016-06-18 9:36 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-06-12 21:55 [Buildroot] [PATCH 00/24] system: properly handle systemd as init system (branch yem/systemd-skeleton) Yann E. MORIN
2016-06-12 21:55 ` [Buildroot] [PATCH 01/24] package/skeleton: remove useless .empty file Yann E. MORIN
2016-06-12 21:55 ` [Buildroot] [PATCH 02/24] system: sysvinit only selects busybox-show-others if busybox is enabled Yann E. MORIN
2016-06-12 21:55 ` [Buildroot] [PATCH 03/24] package/skeleton: respect variables namespace Yann E. MORIN
2016-06-12 21:55 ` [Buildroot] [PATCH 04/24] system/skeleton: update etc/mtab with a more sensible link Yann E. MORIN
2016-06-12 21:55 ` [Buildroot] [PATCH 05/24] system: systemd only really supports a R/W rootfs Yann E. MORIN
2016-06-12 21:55 ` [Buildroot] [PATCH 06/24] package/systemd: disabling tty1 getty is a post-install hook Yann E. MORIN
2016-06-12 21:55 ` [Buildroot] [PATCH 07/24] system: provide no default for custom skeleton path Yann E. MORIN
2016-06-12 21:55 ` [Buildroot] [PATCH 08/24] system: move the rootfs skeleton choice Yann E. MORIN
2016-06-12 21:55 ` [Buildroot] [PATCH 09/24] system: do not handle network settings for custom skeleton Yann E. MORIN
2016-06-12 21:55 ` [Buildroot] [PATCH 10/24] package/perl: use dummy hostname Yann E. MORIN
2016-06-12 21:55 ` [Buildroot] [PATCH 11/24] system: do not set hostname and issue for custom skeleton Yann E. MORIN
2016-06-12 21:55 ` [Buildroot] [PATCH 12/24] core/pkg-generic: add variable to skip skeleton dependency Yann E. MORIN
2016-06-12 21:55 ` [Buildroot] [PATCH 13/24] package/skeleton: add macro to rsync skeleton directory Yann E. MORIN
2016-06-12 21:55 ` [Buildroot] [PATCH 14/24] core/pkg-generic: allow packages to declare target-finalize hooks Yann E. MORIN
2016-06-12 21:55 ` [Buildroot] [PATCH 15/24] packages: use the <PKG>_TARGET_FINALIZE_HOOKS Yann E. MORIN
2016-06-12 21:55 ` [Buildroot] [PATCH 16/24] package/skeleton: split into sysv and custom skeleton Yann E. MORIN
2016-06-12 21:55 ` [Buildroot] [PATCH 17/24] package/skeleton: make it a virtual package Yann E. MORIN
2016-06-12 21:55 ` [Buildroot] [PATCH 18/24] package/skeleton-sysv: split into skeleton-common Yann E. MORIN
2016-06-12 21:55 ` [Buildroot] [PATCH 19/24] system: split skeleton Yann E. MORIN
2016-06-12 21:55 ` [Buildroot] [PATCH 20/24] package/skeleton-systemd: new package Yann E. MORIN
2016-06-12 21:55 ` [Buildroot] [PATCH 21/24] system/systemd: needs timezone Yann E. MORIN
2016-06-12 21:55 ` [Buildroot] [PATCH 22/24] fs: add pre- and post-command hooks Yann E. MORIN
2016-06-12 21:55 ` [Buildroot] [PATCH 23/24] system: make systemd work on a read-only rootfs Yann E. MORIN
2016-06-12 21:55 ` [Buildroot] [PATCH 24/24] system: allow DHCP interface with systemd-networkd Yann E. MORIN
2016-06-18 9:36 ` Yann E. MORIN [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20160618093638.GA3573@free.fr \
--to=yann.morin.1998@free.fr \
--cc=buildroot@busybox.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox