From 70e1601042250b395659f4c325ae7a73cbe238ab Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Sun, 2 Dec 2012 22:42:41 -0500 Subject: libremakepkg: learn '-C' to dissable using the chroot --- src/chroot-tools/libremakepkg | 9 ++++++--- src/chroot-tools/libremakepkg.gpl2 | 19 +++++++++++++++---- 2 files changed, 21 insertions(+), 7 deletions(-) (limited to 'src/chroot-tools') diff --git a/src/chroot-tools/libremakepkg b/src/chroot-tools/libremakepkg index 4e810d1..ec7adbd 100755 --- a/src/chroot-tools/libremakepkg +++ b/src/chroot-tools/libremakepkg @@ -120,6 +120,7 @@ usage() { echo " -n Use this chroot instead of \`$CHROOT'" echo ' -l Use this chroot copy instead of basing it' echo ' on the username' + echo ' -C Do not use a chroot' echo '' echo " -m Use the command MAKEPKG instead of 'makepkg'" echo '' @@ -134,11 +135,13 @@ main() { makepkg_args='-s --noconfirm -L ' MAKEPKG=makepkg + NOCHROOT=false while getopts 'n:l:m:Rh' arg ; do case "${arg}" in n) CHROOT=$OPTARG;; l) CHROOTCOPY=$OPTARG;; + C) NOCHROOT=true;; m) MAKEPKG=$OPTARG;; h) usage; exit 0;; *) usage; exit 1;; @@ -180,7 +183,7 @@ main() { chroot_makepkg_conf_get CARCH export CARCH - chroot_init + $NOCHROOT || chroot_init libre_check_pkgbuild chroot_extract @@ -188,8 +191,8 @@ main() { chroot_build libre_check_pkg - copy_pkgs - copy_logs + $NOCHROOT || copy_pkgs + $NOCHROOT || copy_logs } main "$@" diff --git a/src/chroot-tools/libremakepkg.gpl2 b/src/chroot-tools/libremakepkg.gpl2 index fd58d50..9c600ed 100755 --- a/src/chroot-tools/libremakepkg.gpl2 +++ b/src/chroot-tools/libremakepkg.gpl2 @@ -36,6 +36,11 @@ EOF } chroot_extract() { + if $NOCHROOT; then + chcleanup + sudo -u ${LIBREUSER} ${MAKEPKG} ${makepkg_args} -o + return + fi rm -rf "$copydir"/build/* cp PKGBUILD "$copydir/build/" ( @@ -72,14 +77,19 @@ chroot_extract() { } chroot_build() { - chroot_exec -N "sudo -u nobody ${MAKEPKG} ${makepkg_args} -e" + local user=$LIBREUSER + $NOCHROOT || user=nobody + chroot_exec -N "sudo -u ${user} ${MAKEPKG} ${makepkg_args} -e" } chroot_exec() { local flags='' [[ $1 == -N ]] && { flags=$1; shift; } local cmd="$*" - cat >"$copydir/chrootexec" <"$copydir/chrootexec" <