diff options
Diffstat (limited to 'src/chroot-tools')
-rw-r--r-- | src/chroot-tools/chroot.conf | 7 | ||||
-rwxr-xr-x | src/chroot-tools/librechroot | 5 | ||||
-rwxr-xr-x | src/chroot-tools/libremakepkg | 45 | ||||
-rwxr-xr-x | src/chroot-tools/libremakepkg.gpl2 | 4 | ||||
-rwxr-xr-x | src/chroot-tools/libremkchroot | 5 |
5 files changed, 28 insertions, 38 deletions
diff --git a/src/chroot-tools/chroot.conf b/src/chroot-tools/chroot.conf new file mode 100644 index 0000000..cd5c71d --- /dev/null +++ b/src/chroot-tools/chroot.conf @@ -0,0 +1,7 @@ +## The directory where the chroots are stored +CHROOTDIR=/var/lib/archbuild +## Extra packages to have installed on the chroot (besides base base-devel and sudo) +CHROOTEXTRAPKG=(distcc ccache tsocks libretools) +## The meaning of this changes based on the version of libretools+devtools +## do NOT set it to 'root' +CHROOT=default diff --git a/src/chroot-tools/librechroot b/src/chroot-tools/librechroot index 52a3bdf..0770ad6 100755 --- a/src/chroot-tools/librechroot +++ b/src/chroot-tools/librechroot @@ -20,7 +20,10 @@ # You should have received a copy of the GNU General Public License # along with Parabola. If not, see <http://www.gnu.org/licenses/>. -. /etc/libretools.conf +. /usr/share/libretools/conf.sh +load_conf_libretools_chroot + +. "$(which libremessages)" # This file (librechroot) is GPLv3+, but I would like to use some code # modified from devtools' "makechrootpkg", which is GPLv2. diff --git a/src/chroot-tools/libremakepkg b/src/chroot-tools/libremakepkg index ec7adbd..c66f5cc 100755 --- a/src/chroot-tools/libremakepkg +++ b/src/chroot-tools/libremakepkg @@ -20,7 +20,10 @@ # You should have received a copy of the GNU General Public License # along with Parabola. If not, see <http://www.gnu.org/licenses/>. -. /etc/libretools.conf +. /usr/share/libretools/conf.sh +load_conf_libretools_chroot + +. "$(which libremessages)" shopt -s nullglob @@ -54,34 +57,6 @@ trap_exit() { exit 1 } -## -# Usage: makepkg_conf_get SETTING [DEFAULT] -## -makepkg_conf_get() { - local setting=$1 - if [[ -f $LIBREHOME/.makepkg.conf ]]; then - eval $(grep "^$setting=" "$LIBREHOME/.makepkg.conf") - fi - if [[ -z ${!setting:-} ]]; then - eval $(grep "^$setting=" "/etc/makepkg.conf") - fi - if [[ -z ${!setting:-} && -n ${2:-} ]]; then - eval "$setting='$2'" - fi -} - -chroot_makepkg_conf_get() { - local setting=$1 - eval $(grep "^$setting=" "$copydir/etc/makepkg.conf") -} - -chroot_makepkg_conf_set() { - local key=$1 - local val=$2 - sed -i "/^$key=/d" "$copydir/etc/makepkg.conf" - echo "$key='$val'" >> "$copydir/etc/makepkg.conf" -} - # Functions that check for issues with the build ############################### libre_check_pkgbuild() { @@ -172,16 +147,18 @@ main() { trap 'trap_exit "(libremakepkg): Aborted by user! Exiting..."' INT trap 'trap_exit "(libremakepkg): An unknown error has occurred. Exiting..."' ERR - makepkg_conf_get SRCDEST . - makepkg_conf_get PKGDEST . + SRCDEST="$(get_conf_makepkg SRCDEST .)" + PKGDEST="$(get_conf_makepkg PKGDEST .)" # OK, we're starting now ############################################### lock_open_write 9 "$copydir" "Locking chroot '$CHROOTCOPY'" - # Set target CARCH as it might be used within the PKGBUILD to select correct sources - chroot_makepkg_conf_get CARCH - export CARCH + # Set target CARCH as it might be used within the PKGBUILD to select + # correct sources + MAKEPKG_CONF=$copydir/etc/makepkg.conf + export CARCH="$(get_conf_makepkg CARCH)" + unset MAKEPKG_CONF $NOCHROOT || chroot_init diff --git a/src/chroot-tools/libremakepkg.gpl2 b/src/chroot-tools/libremakepkg.gpl2 index 3f66589..50bb48e 100755 --- a/src/chroot-tools/libremakepkg.gpl2 +++ b/src/chroot-tools/libremakepkg.gpl2 @@ -25,8 +25,8 @@ chroot_init() { mkdir -p "$copydir/srcdest" mkdir -p "$copydir/build" - chroot_makepkg_conf_set PKGDEST /pkgdest - chroot_makepkg_conf_set SRCDEST /srcdest + MAKEPKG_CONF=$copydir/etc/makepkg.conf set_conf_makepkg PKGDEST /pkgdest + MAKEPKG_CONF=$copydir/etc/makepkg.conf set_conf_makepkg SRCDEST /srcdest cat > "$copydir/etc/sudoers.d/nobody-pacman" <<EOF Defaults env_keep += "HOME" diff --git a/src/chroot-tools/libremkchroot b/src/chroot-tools/libremkchroot index d3652a5..6a13792 100755 --- a/src/chroot-tools/libremkchroot +++ b/src/chroot-tools/libremkchroot @@ -18,7 +18,10 @@ # You should have received a copy of the GNU General Public License # along with Parabola. If not, see <http://www.gnu.org/licenses/>. -. /etc/libretools.conf +. /usr/share/libretools/conf.sh +load_conf_libretools_chroot + +. "$(which libremessages)" cmd=${0##*/} |