How to customise /etc/fstab per image ?
/etc/fstab is provided by base-files.
base-files-X and base-files-Y packages with the same content as base-files with only changed /etc/fstab: https://
yocto.yoctoproject.narkive.com/XcannnRd/per-image-customizationspython populate_packages and see what others do
Adapted solution from 1st link almost works. Until SPDX fails because base-files-devel provides base-files.
PACKAGES += "${PN}-devel" PROVIDES += "${PN}-devel" CONFFILES:${PN}-devel = "${CONFFILES:${PN}}" RREPLACES:${PN}-devel = "${PN}" RCONFLICTS:${PN}-devel = "${PN}" # ${PN}-devel also provides ${PN} - for compatibility with other packages # But it breaks SPDX generation in do_rootfs so disable it RPROVIDES:${PN}-devel = "${PN}" CVE_PRODUCT:${PN}-devel = "base-files" python populate_packages:prepend() { import shutil packages = ("${PN}-devel",) # PKGD (Package Destination Directory): This is the directory where files are # staged before they are split into individual packages. It represents the intermediate, # unsplit state of the files that do_install has already installed. # # PKGDEST (Package Destination): This is the parent directory where packages reside after they have # been split. It is often referred to as the packages-split directory, containing subdirectories for # each package (e.g., pkg-name, pkg-name-dbg, pkg-name-dev). preinst = d.getVar('pkg_preinst:${PN}') for package in packages: d.setVar(d.expand(f"pkg_preinst:{package}"), preinst) # copy ${PN} content to other packages shutil.copytree(d.expand("${PKGD}"), d.expand("${PKGDEST}"+ f"/{package}"), symlinks=True) # replace fstab if package == "${PN}-devel": shutil.copy(d.expand("${WORKDIR}/fstab-devel"), d.expand("${PKGDEST}/${PN}-devel/etc/fstab")) } INSANE_SKIP:${PN}-devel += "empty-dirs"
Create second .bb file and include content of original file.
/etc/fstab in base-files:FILESEXTRAPATHS:prepend := "${THISDIR}/files:" SRC_URI:append = " \ file://fstab \ "
/etc/fstab in new package base-files-devel:require recipes-core/base-files/base-files_${PV}.bb FILESEXTRAPATHS:append := ":${COREBASE}/meta/recipes-core/base-files/base-files" SUMMARY = "Devel version of base-files package." RPROVIDES:${PN} = "base-files" SRC_URI += " \ file://fstab-devel \ " do_install:append() { install -m 0644 ${WORKDIR}/fstab-devel ${D}${sysconfdir}/fstab }