diff options
Diffstat (limited to 'mk/pkginstall/install')
-rw-r--r-- | mk/pkginstall/install | 97 |
1 files changed, 97 insertions, 0 deletions
diff --git a/mk/pkginstall/install b/mk/pkginstall/install new file mode 100644 index 00000000000..a060d9f7b07 --- /dev/null +++ b/mk/pkginstall/install @@ -0,0 +1,97 @@ +# $NetBSD: install,v 1.1 2006/05/21 23:50:15 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) + # + # 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 + |