2d76049e1e
on platforms that need it. XXX Right now, if the platform needs it, then it runs for every package. XXX This needs to be fixed to only run for packages that install shared XXX libraries. * Move mk/plist/shlib-type to mk/scripts. * Move definition of SHLIB_TYPE from mk/plist/plist.mk to bsd.pkg.mk. * Move inclusion of bsd.pkginstall.mk below bsd.tools.mk so that it can use SHLIB_TYPE. This is necessary because SHLIB_TYPE's value is the result of evaluating a command, and the command needs "TOOL" definitions provided by bsd.tools.mk.
102 lines
2.6 KiB
Text
102 lines
2.6 KiB
Text
# $NetBSD: install,v 1.2 2007/07/18 18:01:03 jlam Exp $
|
|
|
|
case ${STAGE} in
|
|
PRE-INSTALL)
|
|
#
|
|
# Unpack the helper scriptlets.
|
|
#
|
|
${SH} ${SELF} ${PKGNAME} UNPACK
|
|
#
|
|
# Require that necessary users and groups exist or else fail the
|
|
# installation of the package.
|
|
#
|
|
${TEST} ! -x ./+USERGROUP ||
|
|
{ ./+USERGROUP ADD ${PKG_METADATA_DIR}
|
|
if ./+USERGROUP CHECK-ADD ${PKG_METADATA_DIR}; then
|
|
:
|
|
else
|
|
exit 1
|
|
fi; }
|
|
#
|
|
# Create package directories at pre-install time.
|
|
#
|
|
if [ "${PKG_INSTALLATION_TYPE}" = "pkgviews" -a \
|
|
"${_PKG_CONFIG}" = "yes" -a -n "${CONF_DEPENDS}" ]; then
|
|
pkg=`${PKG_ADMIN} -b -d ${DEPOTBASE} -s "" lsbest "${CONF_DEPENDS}"`
|
|
sysconfdir=`${PKG_INFO} -B -K ${DEPOTBASE} $pkg | \
|
|
${AWK} '/^PKG_SYSCONFDIR=/ { \
|
|
gsub("^PKG_SYSCONFDIR=[ ]*", ""); \
|
|
print; \
|
|
}' \
|
|
`
|
|
if [ -d $sysconfdir -a ! -d ${PKG_SYSCONFDIR} ]; then
|
|
${MKDIR} -p `${DIRNAME} ${PKG_SYSCONFDIR}`
|
|
${LN} -sf $sysconfdir ${PKG_SYSCONFDIR}
|
|
fi
|
|
fi
|
|
${TEST} ! -x ./+DIRS ||
|
|
./+DIRS ADD ${PKG_METADATA_DIR}
|
|
${TEST} ! -x ./+DIRS ||
|
|
./+DIRS PERMS ${PKG_METADATA_DIR}
|
|
;;
|
|
|
|
POST-INSTALL)
|
|
#
|
|
# Rebuild the system run-time library search path database.
|
|
#
|
|
${TEST} ! -x ./+SHLIBS ||
|
|
./+SHLIBS ADD ${PKG_METADATA_DIR}
|
|
#
|
|
# Copy configuration/support files into place.
|
|
#
|
|
${TEST} ! -x ./+FILES ||
|
|
./+FILES ADD ${PKG_METADATA_DIR}
|
|
${TEST} ! -x ./+FILES ||
|
|
./+FILES PERMS ${PKG_METADATA_DIR}
|
|
#
|
|
# Set special permissions on any files/directories that need them.
|
|
#
|
|
${TEST} ! -x ./+PERMS ||
|
|
./+PERMS ${PKG_METADATA_DIR}
|
|
#
|
|
# Update any fonts databases.
|
|
#
|
|
${TEST} ! -x ./+FONTS ||
|
|
./+FONTS ${PKG_METADATA_DIR}
|
|
|
|
# Check for any missing bits after we're finished installing.
|
|
#
|
|
${TEST} ! -x ./+DIRS ||
|
|
./+DIRS CHECK-ADD ${PKG_METADATA_DIR}
|
|
${TEST} ! -x ./+DIRS ||
|
|
./+DIRS CHECK-PERMS ${PKG_METADATA_DIR}
|
|
${TEST} ! -x ./+FILES ||
|
|
./+FILES CHECK-ADD ${PKG_METADATA_DIR}
|
|
${TEST} ! -x ./+FILES ||
|
|
./+FILES CHECK-PERMS ${PKG_METADATA_DIR}
|
|
;;
|
|
|
|
VIEW-INSTALL)
|
|
#
|
|
# Register shells in /etc/shells.
|
|
#
|
|
${TEST} ! -x ./+SHELL ||
|
|
./+SHELL ADD ${PKG_METADATA_DIR}
|
|
${TEST} ! -x ./+SHELL ||
|
|
./+SHELL CHECK-ADD ${PKG_METADATA_DIR}
|
|
#
|
|
# Register info files.
|
|
#
|
|
${TEST} ! -x ./+INFO_FILES ||
|
|
./+INFO_FILES ADD ${PKG_METADATA_DIR}
|
|
|
|
# If ${PKG_SYSCONFBASE} points outside of ${PREFIX}, then add the
|
|
# package config files to the proper view.
|
|
#
|
|
if [ "${_PKG_CONFIG}" = "yes" -a -n "${PKG_SYSCONFDEPOTBASE}" ]; then
|
|
${SETENV} PLIST_IGNORE_FILES="${CONF_IGNORE_FILES}" \
|
|
${LINKFARM} -t ${PKG_SYSCONFVIEWBASE} -d ${PKG_SYSCONFDEPOTBASE} ${PKGNAME}
|
|
fi
|
|
;;
|
|
esac
|
|
|