journald supports catalog files, or rather a binary database of
those.
Functionality added includes:
- A config option allows enabling the binary database.
- If BR2_ENABLE_LOCALE_PURGE is enabled, the catalogs not in the
language whitelist are deleted first. This is done independently
of the new option, since the catalogs are removed later anyway.
- If the option is enabled, the database is built and moved to
/usr/share/factory. This makes sure that /usr contains the entire
system. A symlink is created in /var pointing to that file.
- The catalog source files are deleted. They serve no purpose on the
target once the database exists.
- All of the above is done in a ROOTFS_PRE_CMD_HOOK rather than in the
build/install step, because other packages than systemd itself may
also install catalogs. This also makes sure that it is possible to
do a re-build, because the catalog files are not removed in
$(TARGET_DIR) itself, only in the temporary copy for rootfs creation.
- The service normally used for creating the DB during boot is
deleted. If the DB is not enabled, we also don't want to waste time
and space on re-generating every boot. Conversely, if the DB is
enabled, it is already there so doesn't need to be re-done on every
boot either.
The new option depends on !BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW because
if the rootfs is not RW, /var is overmounted with a tmpfs. The factory
should handle this, but this only half-works [1].
[1] http://lists.busybox.net/pipermail/buildroot/2020-July/287016.html
Signed-off-by: Norbert Lange <nolange79@gmail.com>
Reviewed-by: Jérémy Rosen <jeremy.rosen@smile.fr>
Reviewed-by: Adam Duskett <aduskett@gmail.com>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>