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:
parent
3e6d91ece0
commit
d3d236b2bf
|
@ -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
|
||||
|
|
|
@ -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 () {
|
||||
|
|
|
@ -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() {
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue