rootfs_rpm.bbclass 1.3 KB

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