[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