X-Git-Url: http://gitweb/?a=blobdiff_plain;f=pkgmk.in;h=bf7d7532e22e06a0745d52c1af95c4bb3af74199;hb=698c42e2a069018285395a53e21f7c0dabfec88c;hp=2358de08988050a83dbed0e4ad584422b7e72268;hpb=7b8b79b9c200c91b43c3ee8f0cf202f7a4021f79;p=pkgutils-cross.git

diff --git a/pkgmk.in b/pkgmk.in
index 2358de0..bf7d753 100755
--- a/pkgmk.in
+++ b/pkgmk.in
@@ -75,6 +75,13 @@ check_directory() {
 	fi
 }
 
+check_file() {
+	if [ -e $1 ] && [ ! -w $1 ]; then
+		error "File '$1' is not writable."
+		exit 1
+	fi
+}
+
 download_file() {
 	info "Downloading '$1'."
 
@@ -156,7 +163,7 @@ unpack_source() {
 		LOCAL_FILENAME=`get_filename $FILE`
 		case $LOCAL_FILENAME in
 			*.tar.gz|*.tar.Z|*.tgz|*.tar.bz2|*.tar.xz|*.zip)
-				COMMAND="bsdtar -C $SRC -xf $LOCAL_FILENAME" ;;
+				COMMAND="bsdtar -p -o -C $SRC -xf $LOCAL_FILENAME" ;;
 			*)
 				COMMAND="cp $LOCAL_FILENAME $SRC" ;;
 		esac
@@ -347,6 +354,7 @@ remove_work_dir() {
 build_package() {
 	local BUILD_SUCCESSFUL="no"
 	
+	check_file "$TARGET"
 	make_work_dir
 
 	if [ "$UID" != "0" ]; then
@@ -458,6 +466,7 @@ update_footprint() {
 		exit 1
 	fi
 	
+	check_file "$PKGMK_FOOTPRINT"
 	make_footprint > $PKGMK_FOOTPRINT
 	touch $TARGET
 	
@@ -612,6 +621,7 @@ main() {
 	
 	if [ "$PKGMK_UPDATE_MD5SUM" = "yes" ]; then
 		download_source
+		check_file "$PKGMK_MD5SUM"
 		make_md5sum > $PKGMK_MD5SUM
 		info "Md5sum updated."
 		exit 0