[yocto] Possible issue when supported distros update their GNU tar package to version 1.27

Yannis Damigos giannis.damigos at gmail.com
Fri Oct 11 05:09:49 PDT 2013


Hi everyone,

I work on Archlinux (64bit) and build a beagleboard image.
Build Configuration:
BB_VERSION        = "1.20.0"
BUILD_SYS         = "x86_64-linux"
NATIVELSBSTRING   = "Arch-Linux"
TARGET_SYS        = "arm-poky-linux-gnueabi"
MACHINE           = "beagleboard"
DISTRO            = "poky"
DISTRO_VERSION    = "1.5"
TUNE_FEATURES     = "armv7a vfp neon"
TARGET_FPU        = "vfp-neon"
meta              
meta-yocto        
meta-yocto-bsp    = "master:102bf5e0f640fe85068452a42b85077f1c81e0c9"

The build process stops at the task "quilt-native_0.60.bb, do_populate_sysroot"
with the following error:
    tar: --same-order option cannot be used with -c
    Try 'tar --help' or 'tar --usage' for more information.
    tar: This does not look like a tar archive
    tar: Exiting with failure status due to previous errors

Searching around I found out that the problem was found at the file
meta/classes/staging.bbclass at line 16: 
    tar -cf - -C "$src" -ps . | tar -xf - -C "$dest"

The issue comes up if user's distro is using  GNU tar version 1.27
Here is a link to the tar patch that causing the problem:
http://git.savannah.gnu.org/cgit/tar.git/commit/?id=74ce228f6df956e6b7be9fd4f993bada4b7ea645

If I downgrade the tar package to version 1.26, the build ends with success.

Here is a list with all the files that should be updated/patched
./meta/lib/oe/path.py: cmd = 'tar -cf - -C %s -ps . | tar -xf - -C %s' % (src, dst)
./meta/lib/oe/path.py: cmd = 'cd %s; find . -type d -print | tar -cf - -C %s -ps --files-from - | tar -xf - -C %s' % (src, src, dst)
./meta/classes/package.bbclass: cmd = 'tar -cf - -C %s -ps . | tar -xf - -C %s' % (dest, dvar)
./meta/classes/populate_sdk_deb.bbclass: tar -cf - -C ${STAGING_ETCDIR_NATIVE} -ps apt | tar -xf - -C ${target_rootfs}/etc
./meta/classes/libc-package.bbclass: tar -cf - -C ${LOCALETREESRC}${datadir} -ps i18n | tar -xf - -C $treedir/${datadir}
./meta/classes/libc-package.bbclass: tar -cf - -C ${LOCALETREESRC}${base_libdir} -ps . | tar -xf - -C $treedir/${base_libdir}
./meta/classes/libc-package.bbclass: tar -cf - -C ${STAGING_DIR_NATIVE}/${prefix_native}/${base_libdir} -ps libgcc_s.* | tar -xf - -C $treedir/${base_libdir}
./meta/classes/libc-package.bbclass: tar -cf - -C $treedir/$parent -ps $(basename ${localedir}) | tar -xf - -C ${PKGD}$parent
./meta/classes/staging.bbclass: tar -cf - -C "$src" -ps . | tar -xf - -C "$dest"
./bitbake/lib/bb/fetch2/__init__.py: #cmd = 'tar -cf - -C "%d" -ps . | tar -xf - -C "%s/%s/"' % (file, rootdir, destdir)

Best regards,
Yannis



More information about the yocto mailing list