rootfs_rpm.bbclass 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #
  2. # Creates a root filesystem out of rpm packages
  3. #
  4. ROOTFS_PKGMANAGE = "rpm smartpm"
  5. ROOTFS_PKGMANAGE_BOOTSTRAP = "run-postinsts"
  6. # Add 50Meg of extra space for Smart
  7. IMAGE_ROOTFS_EXTRA_SPACE_append = "${@bb.utils.contains("PACKAGE_INSTALL", "smartpm", " + 51200", "" ,d)}"
  8. # Smart is python based, so be sure python-native is available to us.
  9. EXTRANATIVEPATH += "python-native"
  10. # opkg is needed for update-alternatives
  11. RPMROOTFSDEPENDS = "rpm-native:do_populate_sysroot \
  12. rpmresolve-native:do_populate_sysroot \
  13. python-smartpm-native:do_populate_sysroot \
  14. createrepo-native:do_populate_sysroot \
  15. opkg-native:do_populate_sysroot"
  16. do_rootfs[depends] += "${RPMROOTFSDEPENDS}"
  17. do_populate_sdk[depends] += "${RPMROOTFSDEPENDS}"
  18. do_rootfs[recrdeptask] += "do_package_write_rpm"
  19. do_rootfs[vardeps] += "PACKAGE_FEED_URIS"
  20. # RPM doesn't work with multiple rootfs generation at once due to collisions in the use of files
  21. # in ${DEPLOY_DIR_RPM}. This can be removed if package_update_index_rpm can be called concurrently
  22. do_rootfs[lockfiles] += "${DEPLOY_DIR_RPM}/rpm.lock"
  23. do_populate_sdk[lockfiles] += "${DEPLOY_DIR_RPM}/rpm.lock"
  24. python () {
  25. if d.getVar('BUILD_IMAGES_FROM_FEEDS', True):
  26. flags = d.getVarFlag('do_rootfs', 'recrdeptask', True)
  27. flags = flags.replace("do_package_write_rpm", "")
  28. flags = flags.replace("do_deploy", "")
  29. flags = flags.replace("do_populate_sysroot", "")
  30. d.setVarFlag('do_rootfs', 'recrdeptask', flags)
  31. d.setVar('RPM_PREPROCESS_COMMANDS', '')
  32. d.setVar('RPM_POSTPROCESS_COMMANDS', '')
  33. }
  34. # Smart is python based, so be sure python-native is available to us.
  35. EXTRANATIVEPATH += "python-native"
  36. rpmlibdir = "/var/lib/rpm"