SUMMARY = "Volatile bind mount setup and configuration for read-only-rootfs" DESCRIPTION = "${SUMMARY}" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://COPYING.MIT;md5=5750f3aa4ea2b00c2bf21b2b2a7b714d" SRC_URI = "\ file://mount-copybind \ file://COPYING.MIT \ file://volatile-binds.service.in \ " S = "${WORKDIR}" inherit allarch systemd features_check REQUIRED_DISTRO_FEATURES = "systemd" VOLATILE_BINDS ?= "\ /var/volatile/lib /var/lib\n\ /var/volatile/cache /var/cache\n\ /var/volatile/spool /var/spool\n\ /var/volatile/srv /srv\n\ " VOLATILE_BINDS[type] = "list" VOLATILE_BINDS[separator] = "\n" def volatile_systemd_services(d): services = [] for line in oe.data.typed_value("VOLATILE_BINDS", d): if not line: continue what, where = line.split(None, 1) services.append("%s.service" % what[1:].replace("/", "-")) return " ".join(services) SYSTEMD_SERVICE_${PN} = "${@volatile_systemd_services(d)}" FILES_${PN} += "${systemd_unitdir}/system/*.service ${servicedir}" do_compile () { while read spec mountpoint; do if [ -z "$spec" ]; then continue fi servicefile="${spec#/}" servicefile="$(echo "$servicefile" | tr / -).service" sed -e "s#@what@#$spec#g; s#@where@#$mountpoint#g" \ -e "s#@whatparent@#${spec%/*}#g; s#@whereparent@#${mountpoint%/*}#g" \ volatile-binds.service.in >$servicefile done <