[pacman-dev] [PATCH v2] Option to enable running makepkg in

Saul Tigh jemzipx at gmail.com
Thu Jan 16 17:17:04 UTC 2020


Although running makepkg in root is frowned upon, there ae
circumstances that one might need to do so. For example, during the
bootstrap process of building my own toy gnu/linux distro, I need to run makepkg in root. This option is disabled by
default. It can be enabled by setting 'ALLOWROOT' in makepkg to 1.
---
 scripts/makepkg.sh.in | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index ca3e7459..b2cd8ee4 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -79,6 +79,7 @@ SIGNPKG=''
 SPLITPKG=0
 SOURCEONLY=0
 VERIFYSOURCE=0
+ALLOWROOT=0
 
 if [[ -n $SOURCE_DATE_EPOCH ]]; then
 	REPRODUCIBLE=1
@@ -1175,9 +1176,13 @@ fi
 
 if (( ! INFAKEROOT )); then
 	if (( EUID == 0 )); then
-		error "$(gettext "Running %s as root is not allowed as it can cause permanent,\n\
-catastrophic damage to your system.")" "makepkg"
-		exit $E_ROOT
+		if (( ALLOWROOT )); then
+			plain "Running as root is not recommended. Proceed with caution."
+		else
+			error "$(gettext "Running %s as root is not allowed as it can cause permanent,\n\
+			catastrophic damage to your system.")" "makepkg"
+			exit $E_ROOT
+		fi
 	fi
 else
 	if [[ -z $FAKEROOTKEY ]]; then
@@ -1352,6 +1357,10 @@ if (( SOURCEONLY )); then
 	check_source_integrity all
 	cd_safe "$startdir"
 
+	# allow makepkg to run in root
+	if (( ALLOWROOT )); then
+		unset FAKEROOTKEY
+	fi
 	enter_fakeroot
 
 	if [[ $SIGNPKG = 'y' ]]; then
-- 
2.20.1


More information about the pacman-dev mailing list