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