summaryrefslogtreecommitdiff
path: root/mk/pkginstall/deinstall
blob: 28d7ef2e7445a63eece32e6cec393bb9d80e39f3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
# $NetBSD: deinstall,v 1.2 2007/07/18 18:01:03 jlam Exp $

case ${STAGE} in
VIEW-DEINSTALL)
	case ${_PKG_CONFIG} in
	yes)
		case ${PKG_SYSCONFDEPOTBASE} in
		"")
			${TEST} ! -x ./+FILES ||
				./+FILES VIEW-REMOVE ${PREFIX} ${PKG_PREFIX}
			;;
		*)
			${SETENV} PLIST_IGNORE_FILES="${CONF_IGNORE_FILES}" \
				${LINKFARM} -D -t ${PKG_SYSCONFVIEWBASE} -d ${PKG_SYSCONFDEPOTBASE} ${PKGNAME}
			${RMDIR} -p ${PKG_SYSCONFVIEWBASE} 2>/dev/null || ${TRUE}
			;;
		esac
		;;
	esac
	#
	# Unregister info files.
	#
	${TEST} ! -x ./+INFO_FILES ||
		./+INFO_FILES REMOVE ${PKG_METADATA_DIR}
	#
	# Remove shells from /etc/shells.
	#
	${TEST} ! -x ./+SHELL ||
		./+SHELL REMOVE ${PKG_METADATA_DIR}
	${TEST} ! -x ./+SHELL ||
		./+SHELL CHECK-REMOVE ${PKG_METADATA_DIR}
	;;

DEINSTALL)
	# Remove configuration files if they don't differ from the default
	# config file.
	#
	${TEST} ! -x ./+FILES ||
		./+FILES REMOVE ${PKG_METADATA_DIR}
	;;

POST-DEINSTALL)
	if [ "${PKG_INSTALLATION_TYPE}" = "pkgviews" -a			\
	     "${_PKG_CONFIG}" = "yes" -a -n "${CONF_DEPENDS}" ]; then
		if [ -h ${PKG_SYSCONFDIR} ]; then
			${RM} -f ${PKG_SYSCONFDIR}
		fi
		${RMDIR} -p `${DIRNAME} ${PKG_SYSCONFDIR}` 2>/dev/null || ${TRUE}
	fi
	#
	# Update any fonts databases.
	#
	${TEST} ! -x ./+FONTS ||
		./+FONTS ${PKG_METADATA_DIR}
	#
	# Rebuild the system run-time library search path database.
	#
	${TEST} ! -x ./+SHLIBS ||
		./+SHLIBS REMOVE ${PKG_METADATA_DIR}
	#
	# Remove empty directories and unused users/groups.
	#
	${TEST} ! -x ./+DIRS ||
		./+DIRS REMOVE ${PKG_METADATA_DIR}
	${TEST} ! -x ./+USERGROUP ||
		./+USERGROUP REMOVE ${PKG_METADATA_DIR}
	#
	# Check for any existing bits after we're finished de-installing.
	#
	${TEST} ! -x ./+USERGROUP ||
		./+USERGROUP CHECK-REMOVE ${PKG_METADATA_DIR}
	${TEST} ! -x ./+FILES ||
		./+FILES CHECK-REMOVE ${PKG_METADATA_DIR}
	${TEST} ! -x ./+DIRS ||
		./+DIRS CHECK-REMOVE ${PKG_METADATA_DIR}
	;;
esac