From 8908eb30375d19816e1329b8a4aa4daa430204b0 Mon Sep 17 00:00:00 2001 From: "Yann E. MORIN\"" Date: Sat, 2 Jan 2010 18:00:54 +0100 Subject: misc: do not use "tar cf - |tar xf -" Using this: tar cf - -C "/some/place" |tar xf - -C "/some/other/place" to copy a directory to another place does not properly fail (when it does). Using this instead: cp -av "/some/place" "/some/other/place" makes it easy to see why and how it failed. Impacted: libc/uClibc debug/ltrace tools/sstrip scripts/populate diff --git a/scripts/build/debug/400-ltrace.sh b/scripts/build/debug/400-ltrace.sh index f1e799c..6b289ab 100644 --- a/scripts/build/debug/400-ltrace.sh +++ b/scripts/build/debug/400-ltrace.sh @@ -20,11 +20,11 @@ do_debug_ltrace_extract() { do_debug_ltrace_build() { CT_DoStep INFO "Installing ltrace" - mkdir -p "${CT_BUILD_DIR}/build-ltrace" - CT_Pushd "${CT_BUILD_DIR}/build-ltrace" CT_DoLog EXTRA "Copying sources to build dir" - (cd "${CT_SRC_DIR}/ltrace-${CT_LTRACE_VERSION}"; tar cf - .)| tar xvf - |CT_DoLog ALL + CT_DoExecLog ALL cp -av "${CT_SRC_DIR}/ltrace-${CT_LTRACE_VERSION}" \ + "${CT_BUILD_DIR}/build-ltrace" + CT_Pushd "${CT_BUILD_DIR}/build-ltrace" CT_DoLog EXTRA "Configuring ltrace" CT_DoExecLog ALL \ diff --git a/scripts/build/libc/uClibc.sh b/scripts/build/libc/uClibc.sh index 21b09fb..3dcc111 100644 --- a/scripts/build/libc/uClibc.sh +++ b/scripts/build/libc/uClibc.sh @@ -58,15 +58,14 @@ do_libc_headers() { CT_DoStep INFO "Installing C library headers" - mkdir -p "${CT_BUILD_DIR}/build-libc-headers" - cd "${CT_BUILD_DIR}/build-libc-headers" - - # Simply copy files until uClibc has the ablity to build out-of-tree + # Simply copy files until uClibc has the ability to build out-of-tree CT_DoLog EXTRA "Copying sources to build dir" - tar cf - -C "${CT_SRC_DIR}/uClibc-${CT_LIBC_VERSION}" . |tar xf - + CT_DoExecLog ALL cp -av "${CT_SRC_DIR}/uClibc-${CT_LIBC_VERSION}" \ + "${CT_BUILD_DIR}/build-libc-headers" + cd "${CT_BUILD_DIR}/build-libc-headers" # Retrieve the config file - cp "${CT_CONFIG_DIR}/uClibc.config" .config + CT_DoExecLog ALL cp "${CT_CONFIG_DIR}/uClibc.config" .config # uClibc uses the CROSS environment variable as a prefix to the # compiler tools to use. Setting it to the empty string forces @@ -99,15 +98,14 @@ do_libc_start_files() { do_libc() { CT_DoStep INFO "Installing C library" - mkdir -p "${CT_BUILD_DIR}/build-libc" - cd "${CT_BUILD_DIR}/build-libc" - - # Simply copy files until uClibc has the ablity to build out-of-tree + # Simply copy files until uClibc has the ability to build out-of-tree CT_DoLog EXTRA "Copying sources to build dir" - tar cf - -C "${CT_SRC_DIR}/uClibc-${CT_LIBC_VERSION}" . |tar xf - + CT_DoExecLog ALL cp -av "${CT_SRC_DIR}/uClibc-${CT_LIBC_VERSION}" \ + "${CT_BUILD_DIR}/build-libc" + cd "${CT_BUILD_DIR}/build-libc" # Retrieve the config file - cp "${CT_CONFIG_DIR}/uClibc.config" .config + CT_DoExecLog ALL cp "${CT_CONFIG_DIR}/uClibc.config" .config # uClibc uses the CROSS environment variable as a prefix to the compiler # tools to use. The newly built tools should be in our path, so we need diff --git a/scripts/build/tools/200-sstrip.sh b/scripts/build/tools/200-sstrip.sh index b72aa79..c677072 100644 --- a/scripts/build/tools/200-sstrip.sh +++ b/scripts/build/tools/200-sstrip.sh @@ -12,9 +12,9 @@ case "${CT_SSTRIP_FROM}" in } do_tools_sstrip_build() { CT_DoStep INFO "Installing sstrip" - mkdir -p "${CT_BUILD_DIR}/build-strip" + CT_DoExecLog ALL cp -av "${CT_SRC_DIR}/ELFkickers-${CT_SSTRIP_ELFKICKERS_VERSION}/sstrip" \ + "${CT_BUILD_DIR}/build-strip" cd "${CT_BUILD_DIR}/build-strip" - ( cd "${CT_SRC_DIR}/ELFkickers-${CT_SSTRIP_ELFKICKERS_VERSION}/sstrip"; tar cf - . ) |tar xf - CT_DoLog EXTRA "Building sstrip" CT_DoExecLog ALL make CC="${CT_HOST}-gcc" sstrip diff --git a/scripts/populate.in b/scripts/populate.in index 9bb5afb..5dbe313 100644 --- a/scripts/populate.in +++ b/scripts/populate.in @@ -127,9 +127,9 @@ mkdir -p "${CT_ROOT_DST_DIR}" CT_ROOT_SRC_DIR=$(cd "${CT_ROOT_SRC_DIR}"; pwd) CT_ROOT_DST_DIR=$(cd "${CT_ROOT_DST_DIR}"; pwd) -# Populate the destination directory with files form the source directory +# Populate the destination directory with files from the source directory pushd "${CT_ROOT_SRC_DIR}" >/dev/null -tar cf - . |tar xf - -C "${CT_ROOT_DST_DIR}" +cp -a . "${CT_ROOT_DST_DIR}" popd >/dev/null # A function do search for a library -- cgit v0.10.2-6-g49f6