diff options
Diffstat (limited to 'emulators/suse91_base/INSTALL')
-rw-r--r-- | emulators/suse91_base/INSTALL | 152 |
1 files changed, 136 insertions, 16 deletions
diff --git a/emulators/suse91_base/INSTALL b/emulators/suse91_base/INSTALL index b4da446a9b9..6edf26b6c4f 100644 --- a/emulators/suse91_base/INSTALL +++ b/emulators/suse91_base/INSTALL @@ -1,29 +1,149 @@ -# $NetBSD: INSTALL,v 1.3 2006/06/23 15:48:50 jlam Exp $ +# $NetBSD: INSTALL,v 1.4 2007/07/29 05:19:04 jlam Exp $ -case "${STAGE}" in -POST-INSTALL) - emulsubdir=linux +# Generate a +ROOT_ACTIONS script that runs certain actions that require +# superuser privileges. +# +case "${STAGE},$1" in +UNPACK,|UNPACK,+ROOT_ACTIONS) + ${CAT} > ./+ROOT_ACTIONS << 'EOF' +#!@SH@ +# +# +ROOT_ACTIONS - run actions requiring superuser privileges +# +# Usage: ./+ROOT_ACTIONS ADD|REMOVE [metadatadir] +# +# This script runs certain actions that require superuser privileges. +# If such privileges are not available, then simply output a message +# asking the user to run this script with the appropriate elevated +# privileges. +# + +CAT="@CAT@" +CHMOD="@CHMOD@" +CP="@CP@" +ECHO="@ECHO@" +ID="@ID@" +LN="@LN@" +MKDIR="@MKDIR@" +PWD_CMD="@PWD_CMD@" +RM="@RM@" +SH="@SH@" +TEST="@TEST@" + +SELF=$0 +ACTION=$1 + +CURDIR=`${PWD_CMD}` +PKG_METADATA_DIR="${2-${CURDIR}}" +: ${PKGNAME=${PKG_METADATA_DIR##*/}} +: ${PKG_PREFIX=@PREFIX@} - emuldir="@OPSYS_EMULDIR@" - pkgemuldir="${PKG_PREFIX}/emul/$emulsubdir" +EMULDIR="${PKG_PREFIX}/@EMULSUBDIR@" +OPSYS_EMULDIR="@OPSYS_EMULDIR@" - emuldir_pwd=`cd $emuldir 2>/dev/null && ${PWD_CMD}` - pkgemuldir_pwd=`cd $pkgemuldir 2>/dev/null && ${PWD_CMD}` +ROOT_ACTIONS_COOKIE="${PKG_METADATA_DIR}/+ROOT_ACTIONS_done" +EUID=`${ID} -u` - if ${TEST} "$emuldir_pwd" != "$pkgemuldir_pwd"; then - if ${TEST} -e $emuldir -o -L $emuldir; then - ${CAT} << EOF +exitcode=0 +case $ACTION,$EUID in +ADD,0) + ${ECHO} "" > ${ROOT_ACTIONS_COOKIE} + ${CHMOD} g+w ${ROOT_ACTIONS_COOKIE} + # Create an appropriate Linux-like /dev directory. + ${ECHO} "${PKGNAME}: populating ${EMULDIR}/dev" + ${MKDIR} ${EMULDIR}/dev + ${TEST} ! -f /dev/MAKEDEV || + ${CP} /dev/MAKEDEV ${EMULDIR}/dev + ${TEST} ! -f /dev/MAKEDEV.subr || + ${CP} /dev/MAKEDEV.subr ${EMULDIR}/dev + ( cd ${EMULDIR}/dev && + ${SH} ./MAKEDEV std audio && + ${LN} -fs sound dsp ) + + # Create the appropriate symlink so that the kernel will + # find the installed files. + # + OPSYS_EMULDIR_PWD=`cd ${OPSYS_EMULDIR} 2>/dev/null && ${PWD_CMD}` + EMULDIR_PWD=`cd ${EMULDIR} 2>/dev/null && ${PWD_CMD}` + + if ${TEST} "${OPSYS_EMULDIR_PWD}" != "${EMULDIR_PWD}"; then + if ${TEST} -e ${OPSYS_EMULDIR} -o -L ${OPSYS_EMULDIR}; then + ${CAT} << EOM ============================================================================== -You must create a symbolic link for ${PKGNAME} to work properly: +The following symbolic link must be created for ${PKGNAME} +to work properly: - $pkgemuldir -> $emuldir + ${EMULDIR} -> ${OPSYS_EMULDIR} -It seems there is something else located at $emuldir. ============================================================================== -EOF +EOM else - ${MKDIR} -p /emul && ${LN} -fs $pkgemuldir $emuldir + ${ECHO} "${PKGNAME}: creating symlink ${EMULDIR} -> ${OPSYS_EMULDIR}" + ( ${MKDIR} -p `${DIRNAME} ${OPSYS_EMULDIR}` && + ${LN} -fs ${EMULDIR} ${OPSYS_EMULDIR} ) || ${TRUE} fi fi ;; + +REMOVE,0) + ${ECHO} "${PKGNAME}: removing ${EMULDIR}/dev" + ${RM} -fr ${EMULDIR}/dev + ${RM} -f ${ROOT_ACTIONS_COOKIE} + ;; + +ADD,*) + if ${TEST} ! -f ${ROOT_ACTIONS_COOKIE}; then + ${CAT} << EOM +============================================================================== +Please run the following command with superuser privileges to complete +the installation of ${PKGNAME}: + + cd ${PKG_METADATA_DIR} && ${SELF} ADD + +============================================================================== +EOM + fi + ;; + +REMOVE,*) + if ${TEST} -f ${ROOT_ACTIONS_COOKIE}; then + ${CAT} << EOM +============================================================================== +Please run the following command with superuser privileges to begin the +removal of ${PKGNAME}: + + cd ${PKG_METADATA_DIR} && ${SELF} REMOVE + +Then, please run pkg_delete(1) again to complete the removal of this +package. + +============================================================================== +EOM + exitcode=1 + fi + ;; +esac +exit $exitcode + +EOF + ${CHMOD} +x ./+ROOT_ACTIONS + ;; +esac + +EMULDIR="${PKG_PREFIX}/@EMULSUBDIR@" +OPSYS_EMULDIR="@OPSYS_EMULDIR@" + +case "${STAGE}" in +POST-INSTALL) + # Create a /proc mount point. + ${MKDIR} -p ${EMULDIR}/proc + + # Make /etc/mtab usable for Linux programs. + ${RM} -f ${EMULDIR}/etc/mtab + ${LN} -fs ${EMULDIR}/proc/mounts ${EMULDIR}/etc/mtab + + # Run any actions that require root privileges. + ${TEST} ! -x ./+ROOT_ACTIONS || + ./+ROOT_ACTIONS ADD ${PKG_METADATA_DIR} + ;; esac |