This file is indexed.

/usr/share/dbconfig-common/dpkg/prerm is in dbconfig-common 1.8.47.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  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
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
###
### some global variables etc
###
dbc_go(){
	local need_admin_pw dumpfile nowtime rmscript rmsql purgescript purgesql tsubstfile

	. /usr/share/dbconfig-common/dpkg/common
	_dbc_debug "(prerm) dbc_go() $@"

	dbc_config $@

	###
	### get all the settings we need
	###
	dbc_read_package_config
	# and re-run config for db-specific settings
	dbc_set_dbtype_defaults $dbc_dbtype

	if echo "$dbc_authenticated_dbtypes" | grep -q "$dbc_dbtype"; then
		need_admin_pw="yup"
	else
		need_admin_pw=""
	fi 

	if [ "$dbc_command" = "remove" ] && [ ! "$dbc_frontend" ]; then
		###
		### if they didn't want our help installing,  we should assume
		### they don't want our help removing either
		###
		if [ "$dbc_install" != "true" ]; then return 0; fi

		###
		### ask the admin if we should help with removal
		###
		if [ "$dbc_remove" ]; then 
			db_set $dbc_package/dbconfig-remove "$dbc_remove"
		fi
		db_fset $dbc_package/dbconfig-remove seen false
		db_input high $dbc_package/dbconfig-remove || true
		db_go || true
		db_get $dbc_package/dbconfig-remove && dbc_remove="$RET"

		if [ "$dbc_remove" != "true" ]; then
			return 0;
		fi

		###
		###	package removal hooks
		###
		rmscript=/usr/share/dbconfig-common/scripts/$dbc_package/remove/$dbc_dbtype
		rmsql=/usr/share/dbconfig-common/data/$dbc_package/remove/$dbc_dbtype
		# run the script if it exists
		if [ -f "$rmscript" ]; then
			dbc_logpart "running maintainer removal script hook... "
			if ! sh -c "$rmscript \"$@\""; then
				dbc_error="$rmscript existed with non-zero status"
				dbc_remove_error "running maintainer removal hook"
			fi
			dbc_logline "done"
		fi
		# run the sql if it exists
		if [ -f "$rmsql" ]; then
			dbc_logpart "running maintainer removal sql hook... "
			if [ ! "$dbc_sql_substitutions" ]; then
				$dbc_sqlfile_cmd $rmsql || dbc_remove_error "running maintainer removal sql hook"
			else
				tsubstfile=`dbc_mktemp`
				/usr/sbin/dbconfig-generate-include -f template -o template_infile=$rmsql $dbc_packageconfig > $tsubstfile
				$dbc_sqlfile_cmd $tsubstfile || dbc_remove_error "running maintainer removal sql hook"
				rm -f $tsubstfile
			fi
			dbc_logline "done"
		fi

		###
		### ask the admin if the database should be purged
		###
		db_fset $dbc_package/purge seen false
		db_input high $dbc_package/purge || true
		db_go || true
		db_get $dbc_package/purge
		dbc_purge="$RET"

		if [ "$dbc_dbtype" = "pgsql" ] && \
		   [ "$dbc_authmethod_admin" = "ident" ]; 
		then
			need_admin_pw=""
		fi

		if [ "$dbc_purge" = "true" ]; then
			# get the admin user password
			if [ "$need_admin_pw" ]; then
				dbc_get_admin_pass
			fi

			# dump the database into a temporary file
			nowtime=`date +%Y-%m-%d-%H.%M`
			if [ ! `dirname /var/tmp/$dbc_package` = /var/tmp ]; then
				mkdir -p `dirname /var/tmp/$dbc_package`
			fi
			dumpfile=`mktemp /var/tmp/$dbc_package.$dbc_dbname.$nowtime.$dbc_dbtype.XXXXXX`
			if [ ! -f $dumpfile ]; then
				dbc_remove_error "creating temporary file for database dump"
			fi
			dbc_logline "dbconfig-common: dumping $dbc_dbtype database $dbc_dbname to $dumpfile"
			$dbc_dump_cmd $dumpfile || dbc_remove_error "dumping database"
			dbc_logline "dbconfig-common: dropping $dbc_dbtype database $dbc_dbname"
			$dbc_dropdb_cmd || dbc_remove_error "dropping database"
			[ "$dbc_tried_again" ] && return 0

			dbc_logline "dbconfig-common: revoking privileges for user $dbc_dbuser on $dbc_dbname"
			$dbc_dropuser_cmd
		fi
	fi
}