Browse Source

use cpio instead of gnu tar, otherwise the /etc/mtab symlinks fails to be included

Waldemar Brodkorb 13 years ago
parent
commit
c7fb9b1655
3 changed files with 4 additions and 2 deletions
  1. 1 0
      mk/vars.mk
  2. 1 0
      package/bkeymaps/Makefile
  3. 2 2
      scripts/ipkg

+ 1 - 0
mk/vars.mk

@@ -150,6 +150,7 @@ PKG_INSTALL:=		IPKG_TMP=$(BUILD_DIR)/tmp \
 			IPKG_INSTROOT=$(TARGET_DIR) \
 			IPKG_CONF_DIR=$(STAGING_TARGET_DIR)/etc \
 			IPKG_OFFLINE_ROOT=$(TARGET_DIR) \
+			TOOLS_DIR=$(TOOLS_DIR) \
 			${BASH} ${SCRIPT_DIR}/ipkg \
 			-force-defaults -force-depends install
 PKG_STATE_DIR:=		$(TARGET_DIR)/usr/lib/ipkg

+ 1 - 0
package/bkeymaps/Makefile

@@ -9,6 +9,7 @@ PKG_RELEASE:=		2
 PKG_MD5SUM:=		a68058ab4a81cf9a8dcbaaa7a5df5b11
 PKG_DESCR:=		binary keymaps for busybox loadkmap
 PKG_SECTION:=		utils
+PKG_BUILDDEP:=		base-files
 PKG_SITES:=		http://openadk.org/distfiles/
 
 PKG_DFLT_BKEYMAPS:=	y if ADK_TARGET_WITH_INPUT

+ 2 - 2
scripts/ipkg

@@ -808,7 +808,7 @@ Status: install ok pending" | ipkg_status_update_sd $sd $pkg
 	set -o noglob
 	rm -r $IPKG_TMP/$pkg/control
 
-	if ! $pkg_extract_stdout $filename ./data.tar.gz|gzip -dc|tar -xf - -C $IPKG_TMP/$pkg/data ; then
+	if ! $pkg_extract_stdout $filename ./data.tar.gz|gzip -dc|(cd $IPKG_TMP/$pkg/data && $TOOLS_DIR/cpio -iud -H ustar) ; then
 		echo "ipkg_install_file: ERROR unpacking data.tar.gz from $filename"
 		return 1
 	fi
@@ -876,7 +876,7 @@ diff -u $dest/$conffile $IPKG_TMP/$pkg/data/$conffile"
 	fi
 
 	local owd="`pwd`"
-	(cd $IPKG_TMP/$pkg/data/; tar cf - . | (cd $owd; cd $dest; tar xf -))
+	(cd $IPKG_TMP/$pkg/data/; find . | $TOOLS_DIR/cpio -o -H ustar | (cd $owd; cd $dest; $TOOLS_DIR/cpio -iud -H ustar))
 	rm -rf $IPKG_TMP/$pkg/data
 	rmdir $IPKG_TMP/$pkg
 	rm -f $info_dir/$pkg.list