systemd: split out systemd-binfmt as a separate package
If binfmt_misc was compiled as a module but isn't installed then systemd-binfmt will put an automounter on /proc/sys/fs/binfmt_misc and when it attempts to automount (e.g. when df is called) it can't find support for the filesystem, and throws an error. As binfmt_misc isn't commonly used, split this helper into it's own package, add a dependency on kernel-module-binfmt-misc, and ensure the service gets started when it's installed. [ YOCTO #4863 ] (From OE-Core rev: d42f7fc333495dc35227a6d1027492ab70f29b23) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
9b84fc7cc2
commit
76e8678c2f
|
@ -0,0 +1,51 @@
|
||||||
|
Don't install dependency links at install time for the binfmt services, use
|
||||||
|
[Install] blocks so that they get created when the service is enabled.
|
||||||
|
|
||||||
|
Upstream-Status: Inappropriate(Makefile.am) / Submitted(units/)
|
||||||
|
Signed-off-by: Ross Burton <ross.burton@intel.com>
|
||||||
|
|
||||||
|
diff --git a/Makefile.am b/Makefile.am
|
||||||
|
index 7933de6..78acb6f 100644
|
||||||
|
--- a/Makefile.am
|
||||||
|
+++ b/Makefile.am
|
||||||
|
@@ -3133,10 +3133,6 @@ INSTALL_DIRS += \
|
||||||
|
$(prefix)/lib/binfmt.d \
|
||||||
|
$(sysconfdir)/binfmt.d
|
||||||
|
|
||||||
|
-SYSINIT_TARGET_WANTS += \
|
||||||
|
- systemd-binfmt.service \
|
||||||
|
- proc-sys-fs-binfmt_misc.automount
|
||||||
|
-
|
||||||
|
endif
|
||||||
|
|
||||||
|
EXTRA_DIST += \
|
||||||
|
diff --git a/units/proc-sys-fs-binfmt_misc.automount b/units/proc-sys-fs-binfmt_misc.automount
|
||||||
|
index 6be3893..709adef 100644
|
||||||
|
--- a/units/proc-sys-fs-binfmt_misc.automount
|
||||||
|
+++ b/units/proc-sys-fs-binfmt_misc.automount
|
||||||
|
@@ -16,3 +16,6 @@ ConditionPathIsReadWrite=/proc/sys/
|
||||||
|
|
||||||
|
[Automount]
|
||||||
|
Where=/proc/sys/fs/binfmt_misc
|
||||||
|
+
|
||||||
|
+[Install]
|
||||||
|
+WantedBy=sysinit.target
|
||||||
|
diff --git a/units/systemd-binfmt.service.in b/units/systemd-binfmt.service.in
|
||||||
|
index 02dfe77..86d3481 100644
|
||||||
|
--- a/units/systemd-binfmt.service.in
|
||||||
|
+++ b/units/systemd-binfmt.service.in
|
||||||
|
@@ -11,6 +11,7 @@ Documentation=man:systemd-binfmt.service(8) man:binfmt.d(5)
|
||||||
|
Documentation=https://www.kernel.org/doc/Documentation/binfmt_misc.txt
|
||||||
|
DefaultDependencies=no
|
||||||
|
Conflicts=shutdown.target
|
||||||
|
+Wants=proc-sys-fs-binfmt_misc.automount
|
||||||
|
After=systemd-readahead-collect.service systemd-readahead-replay.service proc-sys-fs-binfmt_misc.automount
|
||||||
|
Before=sysinit.target shutdown.target
|
||||||
|
ConditionPathIsReadWrite=/proc/sys/
|
||||||
|
@@ -24,3 +25,6 @@ ConditionDirectoryNotEmpty=|/run/binfmt.d
|
||||||
|
Type=oneshot
|
||||||
|
RemainAfterExit=yes
|
||||||
|
ExecStart=@rootlibexecdir@/systemd-binfmt
|
||||||
|
+
|
||||||
|
+[Install]
|
||||||
|
+WantedBy=sysinit.target
|
|
@ -15,11 +15,12 @@ DEPENDS += "${@base_contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}"
|
||||||
|
|
||||||
SECTION = "base/shell"
|
SECTION = "base/shell"
|
||||||
|
|
||||||
inherit gtk-doc useradd pkgconfig autotools perlnative update-rc.d update-alternatives qemu
|
inherit gtk-doc useradd pkgconfig autotools perlnative update-rc.d update-alternatives qemu systemd
|
||||||
|
|
||||||
SRC_URI = "http://www.freedesktop.org/software/systemd/systemd-${PV}.tar.xz \
|
SRC_URI = "http://www.freedesktop.org/software/systemd/systemd-${PV}.tar.xz \
|
||||||
file://0001-use-CAP_MKNOD-ConditionCapability.patch \
|
file://0001-use-CAP_MKNOD-ConditionCapability.patch \
|
||||||
file://0001-Use-bin-mkdir-instead-of-host-mkdir-path.patch \
|
file://0001-Use-bin-mkdir-instead-of-host-mkdir-path.patch \
|
||||||
|
file://binfmt-install.patch \
|
||||||
file://touchscreen.rules \
|
file://touchscreen.rules \
|
||||||
${UCLIBCPATCHES} \
|
${UCLIBCPATCHES} \
|
||||||
file://00-create-volatile.conf \
|
file://00-create-volatile.conf \
|
||||||
|
@ -119,7 +120,10 @@ python populate_packages_prepend (){
|
||||||
}
|
}
|
||||||
PACKAGES_DYNAMIC += "^lib(udev|gudev|systemd).*"
|
PACKAGES_DYNAMIC += "^lib(udev|gudev|systemd).*"
|
||||||
|
|
||||||
PACKAGES =+ "${PN}-gui ${PN}-vconsole-setup ${PN}-initramfs ${PN}-analyze ${PN}-kernel-install ${PN}-rpm-macros"
|
PACKAGES =+ "${PN}-gui ${PN}-vconsole-setup ${PN}-initramfs ${PN}-analyze ${PN}-kernel-install ${PN}-rpm-macros ${PN}-binfmt"
|
||||||
|
|
||||||
|
SYSTEMD_PACKAGES = "${PN}-binfmt"
|
||||||
|
SYSTEMD_SERVICE_${PN}-binfmt = "systemd-binfmt.service"
|
||||||
|
|
||||||
USERADD_PACKAGES = "${PN}"
|
USERADD_PACKAGES = "${PN}"
|
||||||
GROUPADD_PARAM_${PN} = "-r lock; -r systemd-journal"
|
GROUPADD_PARAM_${PN} = "-r lock; -r systemd-journal"
|
||||||
|
@ -142,6 +146,13 @@ FILES_${PN}-kernel-install = "${bindir}/kernel-install \
|
||||||
FILES_${PN}-rpm-macros = "${libdir}/rpm \
|
FILES_${PN}-rpm-macros = "${libdir}/rpm \
|
||||||
"
|
"
|
||||||
|
|
||||||
|
FILES_${PN}-binfmt = "${sysconfdir}/binfmt.d/ \
|
||||||
|
${exec_prefix}/lib/binfmt.d \
|
||||||
|
${rootlibexecdir}/systemd/systemd-binfmt \
|
||||||
|
${systemd_unitdir}/system/proc-sys-fs-binfmt_misc.* \
|
||||||
|
${systemd_unitdir}/system/systemd-binfmt.service"
|
||||||
|
RRECOMMENDS_${PN}-binfmt = "kernel-module-binfmt-misc"
|
||||||
|
|
||||||
RRECOMMENDS_${PN}-vconsole-setup = "kbd kbd-consolefonts"
|
RRECOMMENDS_${PN}-vconsole-setup = "kbd kbd-consolefonts"
|
||||||
|
|
||||||
CONFFILES_${PN} = "${sysconfdir}/systemd/journald.conf \
|
CONFFILES_${PN} = "${sysconfdir}/systemd/journald.conf \
|
||||||
|
@ -156,7 +167,6 @@ FILES_${PN} = " ${base_bindir}/* \
|
||||||
${datadir}/polkit-1 \
|
${datadir}/polkit-1 \
|
||||||
${datadir}/${BPN} \
|
${datadir}/${BPN} \
|
||||||
${sysconfdir}/bash_completion.d/ \
|
${sysconfdir}/bash_completion.d/ \
|
||||||
${sysconfdir}/binfmt.d/ \
|
|
||||||
${sysconfdir}/dbus-1/ \
|
${sysconfdir}/dbus-1/ \
|
||||||
${sysconfdir}/machine-id \
|
${sysconfdir}/machine-id \
|
||||||
${sysconfdir}/modules-load.d/ \
|
${sysconfdir}/modules-load.d/ \
|
||||||
|
@ -178,7 +188,6 @@ FILES_${PN} = " ${base_bindir}/* \
|
||||||
${bindir}/kernel-install \
|
${bindir}/kernel-install \
|
||||||
${exec_prefix}/lib/tmpfiles.d/*.conf \
|
${exec_prefix}/lib/tmpfiles.d/*.conf \
|
||||||
${exec_prefix}/lib/systemd \
|
${exec_prefix}/lib/systemd \
|
||||||
${exec_prefix}/lib/binfmt.d \
|
|
||||||
${exec_prefix}/lib/modules-load.d \
|
${exec_prefix}/lib/modules-load.d \
|
||||||
${exec_prefix}/lib/sysctl.d \
|
${exec_prefix}/lib/sysctl.d \
|
||||||
${localstatedir} \
|
${localstatedir} \
|
||||||
|
|
Loading…
Reference in New Issue