rootfs_deb: move the lock from WORKDIR to DEPLOY_DIR_DEB
authorRobert Yang <liezhi.yang@windriver.com>
Mon, 13 Aug 2012 13:03:45 +0000 (21:03 +0800)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Fri, 17 Aug 2012 17:04:23 +0000 (18:04 +0100)
* There would be race issue if we put the lock to the WORKDIR, for
  example:
  bitbake core-image-sato core-image-sato-sdk

  If the lock is in their own WORKDIR, the apt-rootfs.conf and
  Packages.gz maybe be written by two tasks at the same time, which
  would cause unexpected errors.

* Create ${target_rootfs}/etc since the "tar -C" needs it.

Note:
  * The rpm has put the lock to DEPLOY_DIR_RPM
  * The ipk doesn't need it since it has locks for each deploy directory
    and put the opkg.conf in his own WORKDIR, which doesn't like deb put
    the apt-rootfs.conf in ${STAGING_ETCDIR_NATIVE}/apt/.

[YOCTO #2495]

(From OE-Core rev: 23ac392f8b868296eb9e7cd840f9b28ed6917b27)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/classes/populate_sdk_deb.bbclass
meta/classes/rootfs_deb.bbclass

index 6f89dcf..f2d0621 100644 (file)
@@ -6,12 +6,13 @@ DEB_SDK_ARCH = "${@[d.getVar('SDK_ARCH', True), "i386"]\
                 [d.getVar('SDK_ARCH', True) in \
                 ["x86", "i486", "i586", "i686", "pentium"]]}"
 
-do_populate_sdk[lockfiles] += "${WORKDIR}/deb.lock"
+do_populate_sdk[lockfiles] += "${DEPLOY_DIR_DEB}/deb.lock"
 
 populate_sdk_post_deb () {
 
        local target_rootfs=$1
 
+       mkdir -p ${target_rootfs}/etc
        tar -cf - -C ${STAGING_ETCDIR_NATIVE} -ps apt | tar -xf - -C ${target_rootfs}/etc
 }
 
index 750a8ca..881fdbd 100644 (file)
@@ -8,7 +8,7 @@ ROOTFS_PKGMANAGE_BOOTSTRAP  = "run-postinsts"
 do_rootfs[depends] += "dpkg-native:do_populate_sysroot apt-native:do_populate_sysroot"
 do_rootfs[recrdeptask] += "do_package_write_deb"
 
-do_rootfs[lockfiles] += "${WORKDIR}/deb.lock"
+do_rootfs[lockfiles] += "${DEPLOY_DIR_DEB}/deb.lock"
 
 DEB_POSTPROCESS_COMMANDS = ""