xbps-src: infrastructure changes required for "nonfree" keyword in tmpls.

- The chroot target now execs masterdir/bin/xbps-shell to set up correct envvars.
- 2 pkgs are now in nonfree repo: adobe-flash-plugin and jre.
- Renamed some vars in xbps-src to be in uppercase, notably XBPS_MACHINE.
- make-repoidx target now creates the index for all "known" directories specified
  via XBPS_PACKAGESDIR: XBPS_MACHINE, noarch, and nonfree/XBPS_MACHINE.
This commit is contained in:
Juan RP 2011-11-08 11:56:17 +01:00
parent e5afc541f2
commit 5a2cc5b5bd
35 changed files with 173 additions and 146 deletions

View file

@ -26,7 +26,7 @@
_mount()
{
MASTERDIR="${XBPS_MASTERDIR}" DISTRIBUTIONDIR="${XBPS_DISTRIBUTIONDIR}" \
HOSTDIR="${XBPS_HOSTDIR}" ${sudo_cmd} \
HOSTDIR="${XBPS_HOSTDIR}" ${SUDO_CMD} \
@@XBPS_INSTALL_LIBEXECDIR@@/chroot-helper mount
return $?
}
@ -34,7 +34,7 @@ _mount()
_umount()
{
MASTERDIR="${XBPS_MASTERDIR}" DISTRIBUTIONDIR="${XBPS_DISTRIBUTIONDIR}" \
HOSTDIR="${XBPS_HOSTDIR}" ${sudo_cmd} \
HOSTDIR="${XBPS_HOSTDIR}" ${SUDO_CMD} \
@@XBPS_INSTALL_LIBEXECDIR@@/chroot-helper umount
return $?
}
@ -45,7 +45,7 @@ chroot_init()
[ -n "$bootstrap" ] && return 0
if [ "${chroot_cmd}" = "chroot" ]; then
if [ "${CHROOT_CMD}" = "chroot" ]; then
if [ "$(id -u)" -ne 0 ]; then
msg_error "Root permissions are required for the chroot, try again."
fi
@ -100,6 +100,20 @@ _EOF
[ -h ${XBPS_MASTERDIR}/tmp ] || rm -rf $XBPS_MASTERDIR/tmp/*
fi
fi
[ -s $XBPS_MASTERDIR/bin/xbps-shell ] && return 0
# Create custom script to start the chroot bash shell.
cat > $XBPS_MASTERDIR/bin/xbps-shell <<_EOF
#!/bin/sh
. /usr/local/etc/xbps-src.conf
. /usr/local/share/xbps-src/shutils/init_funcs.sh
set_defvars
exec env PS1="[\u@masterdir-chroot \W]$ " /bin/bash "$@"
_EOF
chmod 755 $XBPS_MASTERDIR/bin/xbps-shell
}
prepare_chroot()
@ -198,10 +212,9 @@ create_binsh_symlink()
prepare_binpkg_repos()
{
local repo xver CONF_FILE
local repo CONF_FILE
xver=$($XBPS_PKGDB_CMD -V|awk '{print $2}')
case "$xver" in
case "${XBPS_VERSION}" in
0.1[0-9].[0-9]*)
mkdir -p ${XBPS_MASTERDIR}/usr/local/etc/xbps
for f in /etc /usr/local/etc; do
@ -310,19 +323,18 @@ xbps_chroot_handler()
# Reinstall xbps-src in the chroot
msg_normal "Installing xbps-src in the masterdir...\n"
env IN_CHROOT=yes LANG=C PATH=$PATH:/usr/local/bin \
${chroot_cmd} $XBPS_MASTERDIR sh -c \
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"
env PATH=$PATH:/usr/local/bin \
${chroot_cmd} $XBPS_MASTERDIR sh -c "ldconfig" || return $?
${CHROOT_CMD} $XBPS_MASTERDIR sh -c "ldconfig" || return $?
if [ "$action" = "chroot" ]; then
env IN_CHROOT=1 LANG=C PATH=$PATH:/usr/local/bin \
${chroot_cmd} $XBPS_MASTERDIR /bin/sh || rv=$?
env IN_CHROOT=1 LANG=C \
${CHROOT_CMD} $XBPS_MASTERDIR /bin/xbps-shell || rv=$?
else
[ -n "$KEEP_WRKSRC" ] && arg="$arg -C"
[ -n "$KEEP_AUTODEPS" ] && arg="$arg -K"
@ -331,8 +343,7 @@ xbps_chroot_handler()
action="$arg $action"
env in_chroot=1 IN_CHROOT=1 LANG=C _ORIGINPKG="$pkg" \
PATH=$PATH:/usr/local/bin \
${chroot_cmd} $XBPS_MASTERDIR sh -c \
${CHROOT_CMD} $XBPS_MASTERDIR sh -c \
"xbps-src $action $pkg" || rv=$?
fi