Misc hard link fixes

I searched the various classes and looked for copies that should attempt to
preserve hardlinks.  This fixes the majority of this copies by switching to
using tar as the copy method.  It also has the side effect of preserving sparse
files.

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
This commit is contained in:
Mark Hatle 2011-02-08 22:16:41 -06:00 committed by Richard Purdie
parent 3e6d91ece0
commit d3d236b2bf
4 changed files with 9 additions and 9 deletions

View File

@ -104,24 +104,24 @@ TMP_LOCALE="/tmp/locale${libdir}/locale"
do_prep_locale_tree() {
treedir=${WORKDIR}/locale-tree
rm -rf $treedir
mkdir -p $treedir/bin $treedir/lib $treedir/${datadir} $treedir/${libdir}/locale
cp -pPR ${PKGD}${datadir}/i18n $treedir/${datadir}/i18n
mkdir -p $treedir/${base_bindir} $treedir/${base_libdir} $treedir/${datadir} $treedir/${libdir}/locale
tar -cf - -C ${PKGD}${datadir} -ps i18n | tar -xf - -C $treedir/${datadir}
# unzip to avoid parsing errors
for i in $treedir/${datadir}/i18n/charmaps/*gz; do
gunzip $i
done
cp -pPR ${PKGD}${base_libdir}/* $treedir/lib
tar -cf - -C ${PKGD}${base_libdir} -ps . | tar -xf - -C $treedir/${base_libdir}
if [ -f ${STAGING_DIR_NATIVE}${prefix_native}/lib/libgcc_s.* ]; then
cp -pPR ${STAGING_DIR_NATIVE}/${prefix_native}/lib/libgcc_s.* $treedir/lib
tar -cf - -C ${STAGING_DIR_NATIVE}/${prefix_native}/${base_libdir} -ps libgcc_s.* | tar -xf - -C $treedir/${base_libdir}
fi
install -m 0755 ${PKGD}${bindir}/localedef $treedir/bin
install -m 0755 ${PKGD}${bindir}/localedef $treedir/${base_bindir}
}
do_collect_bins_from_locale_tree() {
treedir=${WORKDIR}/locale-tree
mkdir -p ${PKGD}${libdir}
cp -pPR $treedir/${libdir}/locale ${PKGD}${libdir}
tar -cf - -C $treedir/${libdir} -ps locale | tar -xf - -C ${PKGD}${libdir}
}
inherit qemu

View File

@ -6,7 +6,7 @@ populate_sdk_post_deb () {
local target_rootfs=$1
cp -r ${STAGING_ETCDIR_NATIVE}/apt ${target_rootfs}/etc
tar -cf -C ${STAGING_ETCDIR_NATIVE} -ps apt | tar -xf - -C ${target_rootfs}/etc
}
fakeroot populate_sdk_deb () {

View File

@ -41,7 +41,7 @@ sourcepkg_do_create_orig_tgz(){
echo $src_tree
oenote "Creating .orig.tar.gz in ${DEPLOY_DIR_SRC}/${P}.orig.tar.gz"
tar cvzf ${DEPLOY_DIR_SRC}/${P}.orig.tar.gz --exclude-from temp/exclude-from-file $src_tree
cp -pPR $src_tree $src_tree.orig
tar -cf - -C $src_tree -ps . | tar -xf - -C $src_tree.orig
}
sourcepkg_do_archive_bb() {

View File

@ -17,7 +17,7 @@ sysroot_stage_dir() {
# However we always want to stage a $src itself, even if it's empty
mkdir -p "$dest"
if [ -d "$src" ]; then
cp -fpPR "$src"/* "$dest"
tar -cf - -C "$src" -ps . | tar -xf - -C "$dest"
fi
}