Browse Source

avoid gnu tar features, use cpio instead.

Waldemar Brodkorb 13 years ago
parent
commit
066c41d82e
6 changed files with 16 additions and 18 deletions
  1. 0 1
      Config.in
  2. 6 3
      mk/image.mk
  3. 1 2
      mk/vars.mk
  4. 1 11
      scripts/scan-tools.sh
  5. 2 1
      target/Config.in
  6. 6 0
      target/native/Makefile

+ 0 - 1
Config.in

@@ -51,7 +51,6 @@ config ADK_DEVELSYSTEM
 	select ADK_PACKAGE_PATCH
 	select ADK_PACKAGE_PKG_CONFIG
 	select ADK_PACKAGE_MICROPERL
-	select ADK_PACKAGE_TAR
 	select ADK_PACKAGE_TSORT
 	select BUSYBOX_STAT
 	select BUSYBOX_FEATURE_STAT_FORMAT

+ 6 - 3
mk/image.mk

@@ -50,11 +50,14 @@ INITRAMFS_PIGGYBACK=	${ADK_HW}-${ADK_TARGET}-${ADK_LIBC}-${FS}.cpio
 endif
 
 ${BIN_DIR}/${ROOTFSTARBALL}: ${TARGET_DIR} kernel-package
-	cd ${TARGET_DIR}; tar -cf - --owner=0 --group=0 . | gzip -n9 >$@
+	cd ${TARGET_DIR}; find . | sed -n '/^\.\//s///p' | \
+		sed "s#\(.*\)#:0:0::::::\1#" | sort | \
+		${TOPDIR}/bin/tools/cpio -o -Hustar -P | gzip -n9 >$@
 
 ${BIN_DIR}/${ROOTFSUSERTARBALL}: ${TARGET_DIR}
-	cd ${TARGET_DIR}; tar --exclude ./boot -cf - --owner=0 --group=0 . \
-		| gzip -n9 >$@
+	cd ${TARGET_DIR}; find . | grep -v ./boot | sed -n '/^\.\//s///p' | \
+		sed "s#\(.*\)#:0:0::::::\1#" | sort | \
+		${TOPDIR}/bin/tools/cpio -o -Hustar -P | gzip -n9 >$@
 
 ${BIN_DIR}/${INITRAMFS}: ${TARGET_DIR}
 	cd ${TARGET_DIR}; find . | sed -n '/^\.\//s///p' | \

+ 1 - 2
mk/vars.mk

@@ -85,8 +85,7 @@ HOST_CONFIGURE_OPTS=	CC_FOR_BUILD='${HOSTCC}' \
 PKG_SUFFIX:=		$(strip $(subst ",, $(ADK_PACKAGE_SUFFIX)))
 
 ifeq ($(ADK_TARGET_PACKAGE_IPKG),y)
-PKG_BUILD:=		${BASH} ${SCRIPT_DIR}/ipkg-build -c -o 0 -g 0
-
+PKG_BUILD:=		${BASH} ${SCRIPT_DIR}/ipkg-build -c
 PKG_INSTALL:=		IPKG_TMP=$(BUILD_DIR)/tmp \
 			IPKG_INSTROOT=$(TARGET_DIR) \
 			IPKG_CONF_DIR=$(STAGING_DIR)/etc \

+ 1 - 11
scripts/scan-tools.sh

@@ -102,21 +102,11 @@ fi
 rm test 2>/dev/null
 
 if ! which tar >/dev/null 2>&1; then
-	echo You must install GNU tar to continue.
+	echo You must install tar to continue.
 	echo
 	out=1
 fi
 
-if ! (tar --version | grep GNU) >/dev/null 2>&1;then
-	if ! which gtar >/dev/null 2>&1; then
-		if ! which gnutar >/dev/null 2>&1; then
-			echo You must install GNU tar to continue.
-			echo
-			out=1
-		fi
-	fi
-fi
-
 if ! which gzip >/dev/null 2>&1; then
 	echo You must install gzip to continue.
 	echo

+ 2 - 1
target/Config.in

@@ -578,7 +578,8 @@ config ADK_TARGET_ROOTFS_NFSROOT
 		ADK_LINUX_MIPS_BRCM || \
 		ADK_LINUX_MIPS_RB532 || \
 		ADK_LINUX_MIPS_RB4XX || \
-		ADK_LINUX_MIPS_AG241
+		ADK_LINUX_MIPS_AG241 || \
+		ADK_LINUX_NATIVE
 	select ADK_KERNEL_SUNRPC
 	select ADK_KERNEL_NFS_FS
 	select ADK_KERNEL_NFS_V3

+ 6 - 0
target/native/Makefile

@@ -29,3 +29,9 @@ ifeq ($(FS),archive)
 imageinstall: $(BIN_DIR)/$(ROOTFSTARBALL)
 	@echo "The RootFS tarball is: $(BIN_DIR)/$(ROOTFSTARBALL)"
 endif
+ifeq ($(FS),nfsroot)
+imageinstall: $(BIN_DIR)/$(ROOTFSUSERTARBALL)
+	@cp $(KERNEL) $(BIN_DIR)/${ADK_TARGET}-${FS}-kernel
+	@echo 'The kernel file is: ${BIN_DIR}/${ADK_TARGET}-${FS}-kernel'
+	@echo 'The nfs root tarball is: ${BIN_DIR}/${ROOTFSUSERTARBALL}'
+endif