trap chmod errors in tar unpack on bsd - modes like 02755 fail

SVN-Revision: 5656
This commit is contained in:
Felix Fietkau 2006-11-27 04:25:34 +00:00
parent a1ac6d1d9f
commit 387570cc06
2 changed files with 19 additions and 1 deletions

View File

@ -13,3 +13,18 @@ isset() {
eval "var=\"\${$1}\"" eval "var=\"\${$1}\""
[ -n "$var" ] [ -n "$var" ]
} }
trapret() {(
local retvals="$1"; shift
local cmd="$1"; shift
for retval in $(echo $retvals); do
local trap_$retval=1
done
"$cmd" "$@" || {
local retval="$?"
eval "trapped=\${trap_$retval}"
[ -n "$trapped" ] || {
return $retval
}
}
)}

View File

@ -1,9 +1,12 @@
ifeq ($(strip $(PKG_UNPACK)),) ifeq ($(strip $(PKG_UNPACK)),)
ifneq ($(HOST_OS),Linux)
TAR := trapret 2 $(PKG_UNPACK) $(TAR)
endif
ifneq ($(strip $(PKG_CAT)),) ifneq ($(strip $(PKG_CAT)),)
# use existing PKG_CAT # use existing PKG_CAT
PKG_UNPACK:=$(PKG_CAT) $(DL_DIR)/$(PKG_SOURCE) | $(TAR) -C $(PKG_BUILD_DIR)/.. $(TAR_OPTIONS) PKG_UNPACK:=$(PKG_CAT) $(DL_DIR)/$(PKG_SOURCE) | $(TAR) -C $(PKG_BUILD_DIR)/.. $(TAR_OPTIONS)
ifeq ($(PKG_CAT),unzip) ifeq ($(PKG_CAT),unzip)
PKG_UNPACK=unzip -d $(PKG_BUILD_DIR) $(DL_DIR)/$(PKG_SOURCE) PKG_UNPACK:=unzip -d $(PKG_BUILD_DIR) $(DL_DIR)/$(PKG_SOURCE)
endif endif
# replace zcat with $(ZCAT), because some system have it as gzcat # replace zcat with $(ZCAT), because some system have it as gzcat
ifeq ($(PKG_CAT),zcat) ifeq ($(PKG_CAT),zcat)