rootfs_rpm.bbclass 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. #
  2. # Creates a root filesystem out of rpm packages
  3. #
  4. ROOTFS_PKGMANAGE = "rpm dnf"
  5. # dnf is using our custom distutils, and so will fail without these
  6. export STAGING_INCDIR
  7. export STAGING_LIBDIR
  8. # Add 100Meg of extra space for dnf
  9. IMAGE_ROOTFS_EXTRA_SPACE_append = "${@bb.utils.contains("PACKAGE_INSTALL", "dnf", " + 102400", "", d)}"
  10. # Dnf is python based, so be sure python3-native is available to us.
  11. EXTRANATIVEPATH += "python3-native"
  12. # opkg is needed for update-alternatives
  13. RPMROOTFSDEPENDS = "rpm-native:do_populate_sysroot \
  14. dnf-native:do_populate_sysroot \
  15. createrepo-c-native:do_populate_sysroot \
  16. opkg-native:do_populate_sysroot"
  17. do_rootfs[depends] += "${RPMROOTFSDEPENDS}"
  18. do_populate_sdk[depends] += "${RPMROOTFSDEPENDS}"
  19. do_rootfs[recrdeptask] += "do_package_write_rpm do_package_qa"
  20. do_rootfs[vardeps] += "PACKAGE_FEED_URIS"
  21. python () {
  22. if d.getVar('BUILD_IMAGES_FROM_FEEDS'):
  23. flags = d.getVarFlag('do_rootfs', 'recrdeptask')
  24. flags = flags.replace("do_package_write_rpm", "")
  25. flags = flags.replace("do_deploy", "")
  26. flags = flags.replace("do_populate_sysroot", "")
  27. d.setVarFlag('do_rootfs', 'recrdeptask', flags)
  28. d.setVar('RPM_PREPROCESS_COMMANDS', '')
  29. d.setVar('RPM_POSTPROCESS_COMMANDS', '')
  30. }