Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

pkgmk checks of directory permissions are too strict #4

Open
sighook opened this issue Jun 15, 2023 · 0 comments
Open

pkgmk checks of directory permissions are too strict #4

sighook opened this issue Jun 15, 2023 · 0 comments
Labels
enhancement New feature or request

Comments

@sighook
Copy link
Contributor

sighook commented Jun 15, 2023

Reference: https://crux.nu/bugs/index.php?do=details&task_id=1382

The checks of directory permissions of pkgmk are too strict.

what I've stumbled upon so far:
-uf -um -us only need read permission on source directory and write permission on port directory
-rs only needs write permission on port directory
-do needs write permission on source directory and read permission on port directory

regards, deepthought

P.S. The user building my own ports is not the one who owns the ports tree.
So I have to "pkgmk -uf", "pkgmk -um" and "pkgmk -us" as root and chown the files afterwards.
--- a/pkgmk.in	2017-03-01 20:04:24.792329517 +0100
+++ b/pkgmk.in	2017-03-01 20:09:20.608612750 +0100
@@ -103,9 +103,14 @@
 		error "File '$1' is not writable."
 		exit 1
 	fi
+	if [ ! -e $1 ]; then
+		check_directory `dirname $1`
+	fi
 }
 
 download_file() {
+	check_directory "$PKGMK_SOURCE_DIR"
+
 	info "Downloading '$1'."
 
 	PKGMK_DOWNLOAD_PROG=${PKGMK_DOWNLOAD_PROG:-wget}
@@ -620,10 +625,13 @@
 	local FILE LOCAL_FILENAME
 
 	if [ -f $TARGET ]; then
+		check_directory "$PKGMK_PACKAGE_DIR"
 		info "Removing $TARGET"
 		rm -f $TARGET
 	fi
 
+	check_directory "$PKGMK_SOURCE_DIR"
+
 	for FILE in ${source[@]}; do
 		LOCAL_FILENAME=`get_filename $FILE`
 		if [ -e $LOCAL_FILENAME ] && [ "$LOCAL_FILENAME" != "$FILE" ]; then
@@ -641,7 +649,6 @@
 
 	check_file "$PKGMK_FOOTPRINT"
 	make_footprint > $PKGMK_FOOTPRINT
-	touch $TARGET
 
 	info "Footprint updated."
 }
@@ -811,10 +818,6 @@
 		. $FILE
 	done
 
-	check_directory "$PKGMK_SOURCE_DIR"
-	check_directory "$PKGMK_PACKAGE_DIR"
-	check_directory "`dirname $PKGMK_WORK_DIR`"
-
 	check_pkgfile
 
 	case $PKGMK_COMPRESSION_MODE in
@@ -867,6 +870,8 @@
 
 	if [ "$PKGMK_EXTRACT_ONLY" = "yes" ]; then
 		download_source
+		check_directory "$PKGMK_PACKAGE_DIR"
+		check_directory "`dirname $PKGMK_WORK_DIR`"
 		make_work_dir
 		info "Extracting sources of package '$name-$version'."
 		unpack_source
@@ -886,6 +891,8 @@
 		info "Package '$TARGET' is up to date."
 	else
 		download_source
+		check_directory "$PKGMK_PACKAGE_DIR"
+		check_directory "`dirname $PKGMK_WORK_DIR`"
 		build_package
 	fi
 
@sighook sighook added the enhancement New feature or request label Jun 15, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
Development

No branches or pull requests

1 participant