summaryrefslogtreecommitdiff
path: root/makechrootpkg.in
diff options
context:
space:
mode:
Diffstat (limited to 'makechrootpkg.in')
-rw-r--r--makechrootpkg.in117
1 files changed, 59 insertions, 58 deletions
diff --git a/makechrootpkg.in b/makechrootpkg.in
index 3f1e1e1..ad5e3d9 100644
--- a/makechrootpkg.in
+++ b/makechrootpkg.in
@@ -67,60 +67,6 @@ usage() {
exit 1
}
-orig_argv=("$@")
-
-while getopts 'hcur:I:l:nTD:d:' arg; do
- case "$arg" in
- c) clean_first=true ;;
- D) bindmounts_ro+=(--bind-ro="$OPTARG") ;;
- d) bindmounts_rw+=(--bind="$OPTARG") ;;
- u) update_first=true ;;
- r) passeddir="$OPTARG" ;;
- I) install_pkgs+=("$OPTARG") ;;
- l) copy="$OPTARG" ;;
- n) run_namcap=true; makepkg_args+=(-i) ;;
- T) temp_chroot=true; copy+="-$$" ;;
- h|*) usage ;;
- esac
-done
-
-[[ ! -f PKGBUILD && -z "${install_pkgs[*]}" ]] && die 'This must be run in a directory containing a PKGBUILD.'
-
-check_root "$0" "${orig_argv[@]}"
-
-# Canonicalize chrootdir, getting rid of trailing /
-chrootdir=$(readlink -e "$passeddir")
-[[ ! -d $chrootdir ]] && die "No chroot dir defined, or invalid path '%s'" "$passeddir"
-[[ ! -d $chrootdir/root ]] && die "Missing chroot dir root directory. Try using: mkarchroot %s/root base-devel" "$chrootdir"
-
-# Detect chrootdir filesystem type
-chroottype=$(stat -f -c %T "$chrootdir")
-
-if [[ ${copy:0:1} = / ]]; then
- copydir=$copy
-else
- copydir="$chrootdir/$copy"
-fi
-
-# Pass all arguments after -- right to makepkg
-makepkg_args+=("${@:$OPTIND}")
-
-# See if -R was passed to makepkg
-for arg in "${@:OPTIND}"; do
- case ${arg%%=*} in
- -*R*|--repackage)
- repack=true
- break 2
- ;;
- esac
-done
-
-if [[ -n $SUDO_USER ]]; then
- eval "USER_HOME=~$SUDO_USER"
-else
- USER_HOME=$HOME
-fi
-
# {{{ functions
load_vars() {
local makepkg_conf="$1" var
@@ -208,10 +154,11 @@ prepare_chroot() {
echo 'BUILDDIR="/build"' >> "$copydir/etc/makepkg.conf"
fi
- # Read .makepkg.conf and .gnupg/pubring.gpg even if called via sudo
- if [[ -r "$USER_HOME/.gnupg/pubring.gpg" ]]; then
- install -D "$USER_HOME/.gnupg/pubring.gpg" \
- "$copydir/build/.gnupg/pubring.gpg"
+ # Read .makepkg.conf and gnupg pubring
+ if [[ -r $USER_HOME/.gnupg/pubring.kbx ]]; then
+ install -D "$USER_HOME/.gnupg/pubring.kbx" "$copydir/build/.gnupg/pubring.kbx"
+ elif [[ -r $USER_HOME/.gnupg/pubring.gpg ]]; then
+ install -D "$USER_HOME/.gnupg/pubring.gpg" "$copydir/build/.gnupg/pubring.gpg"
fi
mkdir -p "$copydir/pkgdest"
@@ -364,6 +311,60 @@ move_products() {
}
# }}}
+orig_argv=("$@")
+
+while getopts 'hcur:I:l:nTD:d:' arg; do
+ case "$arg" in
+ c) clean_first=true ;;
+ D) bindmounts_ro+=(--bind-ro="$OPTARG") ;;
+ d) bindmounts_rw+=(--bind="$OPTARG") ;;
+ u) update_first=true ;;
+ r) passeddir="$OPTARG" ;;
+ I) install_pkgs+=("$OPTARG") ;;
+ l) copy="$OPTARG" ;;
+ n) run_namcap=true; makepkg_args+=(-i) ;;
+ T) temp_chroot=true; copy+="-$$" ;;
+ h|*) usage ;;
+ esac
+done
+
+[[ ! -f PKGBUILD && -z "${install_pkgs[*]}" ]] && die 'This must be run in a directory containing a PKGBUILD.'
+
+check_root "$0" "${orig_argv[@]}"
+
+# Canonicalize chrootdir, getting rid of trailing /
+chrootdir=$(readlink -e "$passeddir")
+[[ ! -d $chrootdir ]] && die "No chroot dir defined, or invalid path '%s'" "$passeddir"
+[[ ! -d $chrootdir/root ]] && die "Missing chroot dir root directory. Try using: mkarchroot %s/root base-devel" "$chrootdir"
+
+# Detect chrootdir filesystem type
+chroottype=$(stat -f -c %T "$chrootdir")
+
+if [[ ${copy:0:1} = / ]]; then
+ copydir=$copy
+else
+ copydir="$chrootdir/$copy"
+fi
+
+# Pass all arguments after -- right to makepkg
+makepkg_args+=("${@:$OPTIND}")
+
+# See if -R was passed to makepkg
+for arg in "${@:OPTIND}"; do
+ case ${arg%%=*} in
+ -*R*|--repackage)
+ repack=true
+ break 2
+ ;;
+ esac
+done
+
+if [[ -n $SUDO_USER ]]; then
+ eval "USER_HOME=~$SUDO_USER"
+else
+ USER_HOME=$HOME
+fi
+
umask 0022
load_vars "$USER_HOME/.makepkg.conf"