From 7253423d23de3188e2ebb3e05dfe19399d1fc725 Mon Sep 17 00:00:00 2001 From: Juan RP Date: Fri, 18 Nov 2011 15:41:49 +0100 Subject: [PATCH] xbps-src: no need to chroot to install xbps-src anymore. --- xbps-src/shutils/chroot.sh | 36 ++++++++++++++++++----------- xbps-src/shutils/pkgtarget_funcs.sh | 4 ++-- xbps-src/xbps-src.sh.in | 4 +++- 3 files changed, 27 insertions(+), 17 deletions(-) diff --git a/xbps-src/shutils/chroot.sh b/xbps-src/shutils/chroot.sh index 5d88100bbf..c696108c15 100644 --- a/xbps-src/shutils/chroot.sh +++ b/xbps-src/shutils/chroot.sh @@ -270,13 +270,7 @@ install_xbps_utils() local needed _cmd local xbps_prefix=$XBPS_MASTERDIR/usr/local - for f in bin repo uhelper; do - if [ ! -x $xbps_prefix/sbin/xbps-${f}.static ]; then - needed=yes - fi - done - - if [ -n "$needed" ]; then + if [ ! -f ${XBPS_MASTERDIR}/.xbps_utils_done ]; then echo "=> Installing static XBPS utils into masterdir." for f in bin repo uhelper; do _cmd=$(which xbps-${f}.static 2>/dev/null) @@ -286,9 +280,29 @@ install_xbps_utils() fi cp -f ${_cmd} $xbps_prefix/sbin done + touch ${XBPS_MASTERDIR}/.xbps_utils_done fi } +install_xbps_src() +{ + set -e + install -Dm755 ${XBPS_SBINDIR}/xbps-src \ + ${XBPS_MASTERDIR}/usr/local/sbin/xbps-src + install -Dm755 ${XBPS_LIBEXECDIR}/doinst-helper.sh \ + ${XBPS_MASTERDIR}/usr/local/libexec/xbps-src/doinst-helper.sh + install -d ${XBPS_MASTERDIR}/usr/local/share/xbps-src/shutils + install -m644 ${XBPS_SHAREDIR}/shutils/*.sh \ + ${XBPS_MASTERDIR}/usr/local/share/xbps-src/shutils + install -d ${XBPS_MASTERDIR}/usr/local/share/xbps-src/common + install -m644 ${XBPS_SHAREDIR}/common/* \ + ${XBPS_MASTERDIR}/usr/local/share/xbps-src/common + install -d ${XBPS_MASTERDIR}/usr/local/share/xbps-src/helpers + install -m644 ${XBPS_SHAREDIR}/helpers/*.sh \ + ${XBPS_MASTERDIR}/usr/local/share/xbps-src/helpers + set +e +} + xbps_chroot_handler() { local action="$1" pkg="$2" rv=0 arg @@ -307,6 +321,7 @@ xbps_chroot_handler() create_binsh_symlink create_busybox_links install_xbps_utils + install_xbps_src _mount || return $? @@ -314,13 +329,6 @@ xbps_chroot_handler() prepare_binpkg_repos fi - # Reinstall xbps-src in the chroot - msg_normal "Installing xbps-src in the masterdir...\n" - env IN_CHROOT=yes LANG=C \ - ${CHROOT_CMD} $XBPS_MASTERDIR sh -c \ - "cd /xbps/xbps-src && make IN_CHROOT=1 install clean" \ - 2>&1 >/dev/null || return $? - # Update ld.so(8) cache msg_normal "Updating ld.so(8) cache...\n" ${CHROOT_CMD} $XBPS_MASTERDIR sh -c "ldconfig" || return $? diff --git a/xbps-src/shutils/pkgtarget_funcs.sh b/xbps-src/shutils/pkgtarget_funcs.sh index 851d4e5df7..f8d7be2c44 100644 --- a/xbps-src/shutils/pkgtarget_funcs.sh +++ b/xbps-src/shutils/pkgtarget_funcs.sh @@ -135,8 +135,8 @@ install_pkg() BOOTSTRAP_PKG_REBUILD=$BOOTSTRAP_PKG_REBUILD \ CONFIG_FILE=${XBPS_CONFIG_FILE} \ ${FAKEROOT_CMD} ${FAKEROOT_CMD_ARGS} \ - ${XBPS_LIBEXECDIR}/doinst-helper.sh ${curpkgn} \ - || return $? + ${XBPS_LIBEXECDIR}/doinst-helper.sh \ + ${curpkgn} || return $? # Strip binaries/libraries. strip_files diff --git a/xbps-src/xbps-src.sh.in b/xbps-src/xbps-src.sh.in index 6205c59b3f..ef73b67e90 100644 --- a/xbps-src/xbps-src.sh.in +++ b/xbps-src/xbps-src.sh.in @@ -28,9 +28,11 @@ readonly XBPS_SRC_BUILD_VERSION=20111118 if [ -n "$IN_CHROOT" ]; then export XBPS_ETCDIR=/usr/local/etc/xbps export XBPS_SHAREDIR=/usr/local/share/xbps-src - export XBPS_LIBEXECDIR=/usr/local/libexec + export XBPS_LIBEXECDIR=/usr/local/libexec/xbps-src else + export XBPS_PREFIX=@@XBPS_INSTALL_PREFIX@@ export XBPS_ETCDIR=@@XBPS_INSTALL_ETCDIR@@ + export XBPS_SBINDIR=@@XBPS_INSTALL_SBINDIR@@ export XBPS_SHAREDIR=@@XBPS_INSTALL_SHAREDIR@@ export XBPS_LIBEXECDIR=@@XBPS_INSTALL_LIBEXECDIR@@ fi