$FreeWRT$
--- ipkg-utils-1.7.orig/ipkg-build	Sat Apr 24 09:43:29 2004
+++ ipkg-utils-1.7/ipkg-build	Thu Jul 27 10:21:58 2006
@@ -47,6 +47,19 @@ pkg_appears_sane() {
 
 	PKG_ERROR=0
 
+	cvs_dirs=`find . -name 'CVS'`
+	if [ -n "$cvs_dirs" ]; then
+	    if [ "$noclean" = "1" ]; then
+		echo "*** Warning: The following CVS directories where found.
+You probably want to remove them: " >&2
+		ls -ld $cvs_dirs
+		echo >&2
+	    else
+		echo "*** Removing the following files: $cvs_dirs"
+		rm -rf "$cvs_dirs"
+	    fi
+	fi
+
 	tilde_files=`find . -name '*~'`
 	if [ -n "$tilde_files" ]; then
 	    if [ "$noclean" = "1" ]; then
@@ -60,16 +73,6 @@ You probably want to remove them: " >&2
 	    fi
 	fi
 
-	large_uid_files=`find . -uid +99 || true`
-
-	if [ "$ogargs" = "" ]  && [ -n "$large_uid_files" ]; then
-		echo "*** Warning: The following files have a UID greater than 99.
-You probably want to chown these to a system user: " >&2
-		ls -ld $large_uid_files
-		echo >&2
-	fi
-	    
-
 	if [ ! -f "$CONTROL/control" ]; then
 		echo "*** Error: Control file $pkg_dir/$CONTROL/control not found." >&2
 		cd $owd
@@ -134,8 +137,12 @@ You probably want to chown these to a sy
 
 	for script in $CONTROL/preinst $CONTROL/postinst $CONTROL/prerm $CONTROL/postrm; do
 		if [ -f $script -a ! -x $script ]; then
+		    if [ "$noclean" = "1" ]; then
 			echo "*** Error: package script $script is not executable" >&2
 			PKG_ERROR=1
+		    else
+			chmod a+x $script
+		    fi
 		fi
 	done
 
@@ -162,10 +169,12 @@ usage="Usage: $0 [-c] [-C] [-o owner] [-
 while getopts "cg:ho:v" opt; do
     case $opt in
 	o ) owner=$OPTARG
-	    ogargs="--owner=$owner"
+#	    ogargs="--owner=$owner"
+	    ogargs="-M uidgid"
 	    ;;
 	g ) group=$OPTARG
-	    ogargs="$ogargs --group=$group"
+#	    ogargs="$ogargs --group=$group"
+	    ogargs="-M uidgid"
 	    ;;
         c ) outer=tar
             ;;
@@ -225,10 +234,12 @@ fi
 tmp_dir=$dest_dir/IPKG_BUILD.$$
 mkdir $tmp_dir
 
-echo $CONTROL > $tmp_dir/tarX
-( cd $pkg_dir && tar $ogargs -czf $tmp_dir/data.tar.gz . -X $tmp_dir/tarX )
+( cd $pkg_dir && pax -rw -pe $CONTROL $tmp_dir/ )
+rm -rf $pkg_dir/$CONTROL
+( cd $pkg_dir && tar $ogargs -czf $tmp_dir/data.tar.gz . )
+( cd $tmp_dir && pax -rw -pe $CONTROL $pkg_dir/ )
 ( cd $pkg_dir/$CONTROL && tar $ogargs -czf $tmp_dir/control.tar.gz . )
-rm $tmp_dir/tarX
+rm -rf $tmp_dir/$CONTROL
 
 echo "2.0" > $tmp_dir/debian-binary
 
