192b42cb3SPatrick Williams#
292b42cb3SPatrick Williams# Copyright OpenEmbedded Contributors
392b42cb3SPatrick Williams#
492b42cb3SPatrick Williams# SPDX-License-Identifier: MIT
592b42cb3SPatrick Williams#
692b42cb3SPatrick Williams
792b42cb3SPatrick Williams#
892b42cb3SPatrick Williams# Creates a root filesystem out of rpm packages
992b42cb3SPatrick Williams#
1092b42cb3SPatrick Williams
1192b42cb3SPatrick WilliamsROOTFS_PKGMANAGE = "rpm dnf"
1292b42cb3SPatrick Williams
1392b42cb3SPatrick Williams# dnf is using our custom sysconfig module, and so will fail without these
1492b42cb3SPatrick Williamsexport STAGING_INCDIR
1592b42cb3SPatrick Williamsexport STAGING_LIBDIR
1692b42cb3SPatrick Williams
1792b42cb3SPatrick Williams# Add 100Meg of extra space for dnf
1892b42cb3SPatrick WilliamsIMAGE_ROOTFS_EXTRA_SPACE:append = "${@bb.utils.contains("PACKAGE_INSTALL", "dnf", " + 102400", "", d)}"
1992b42cb3SPatrick Williams
2092b42cb3SPatrick Williams# Dnf is python based, so be sure python3-native is available to us.
2192b42cb3SPatrick WilliamsEXTRANATIVEPATH += "python3-native"
2292b42cb3SPatrick Williams
2392b42cb3SPatrick WilliamsRPMROOTFSDEPENDS = "rpm-native:do_populate_sysroot \
2492b42cb3SPatrick Williams    dnf-native:do_populate_sysroot \
25*8f840685SAndrew Geissler    createrepo-c-native:do_populate_sysroot"
2692b42cb3SPatrick Williams
2792b42cb3SPatrick Williamsdo_rootfs[depends] += "${RPMROOTFSDEPENDS}"
2892b42cb3SPatrick Williamsdo_populate_sdk[depends] += "${RPMROOTFSDEPENDS}"
2992b42cb3SPatrick Williams
3092b42cb3SPatrick Williamsdo_rootfs[recrdeptask] += "do_package_write_rpm do_package_qa"
3192b42cb3SPatrick Williamsdo_rootfs[vardeps] += "PACKAGE_FEED_URIS PACKAGE_FEED_BASE_PATHS PACKAGE_FEED_ARCHS"
3292b42cb3SPatrick Williams
3392b42cb3SPatrick Williamspython () {
3492b42cb3SPatrick Williams    if d.getVar('BUILD_IMAGES_FROM_FEEDS'):
3592b42cb3SPatrick Williams        flags = d.getVarFlag('do_rootfs', 'recrdeptask')
3692b42cb3SPatrick Williams        flags = flags.replace("do_package_write_rpm", "")
3792b42cb3SPatrick Williams        flags = flags.replace("do_deploy", "")
3892b42cb3SPatrick Williams        flags = flags.replace("do_populate_sysroot", "")
3992b42cb3SPatrick Williams        d.setVarFlag('do_rootfs', 'recrdeptask', flags)
4092b42cb3SPatrick Williams        d.setVar('RPM_PREPROCESS_COMMANDS', '')
4192b42cb3SPatrick Williams        d.setVar('RPM_POSTPROCESS_COMMANDS', '')
4292b42cb3SPatrick Williams
4392b42cb3SPatrick Williams}
44