summaryrefslogtreecommitdiff
path: root/storage/mroonga/packages/debian/mysql-server-mroonga.postinst
blob: 9a3db8784a24ef8c227296b54d838f716aa740b9 (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
#! /bin/sh

set -e

prevver="$2"

install_plugin() {
    cat /usr/share/mroonga/install.sql | \
	mysql --defaults-file=/etc/mysql/debian.cnf || true
}

install_apparmor() {
    mysql_apparmor_profile_name=usr.sbin.mysqld
    mysql_apparmor_profile=/etc/apparmor.d/${mysql_apparmor_profile_name}
    mysql_local_apparmor_profile=/etc/apparmor.d/local/${mysql_apparmor_profile_name}
    apparmor_profile_name=mysql-server-mroonga
    include_profile="#include <abstractions/${apparmor_profile_name}>"
    local_apparmor_profile=/etc/apparmor.d/local/${apparmor_profile_name}
    if test -f "${mysql_local_apparmor_profile}"; then
	if ! grep -q "${include_profile}" "${mysql_local_apparmor_profile}"; then
	    echo >> "${mysql_local_apparmor_profile}"
	    echo "${include_profile}" >> "${mysql_local_apparmor_profile}"
	fi
    else
	mysql_abstraction_apparmor_profile=/etc/apparmor.d/abstractions/mysql
	mysql_plugin_dir=/usr/lib/mysql/plugin
	if test -f "${mysql_abstraction_apparmor_profile}" && \
	    ! grep -q "${mysql_plugin_dir}" \
	      "${mysql_abstraction_apparmor_profile}"; then
	    # For Lucid.
	    cat <<EOF >> "${mysql_abstraction_apparmor_profile}"

# ${apparmor_profile_name}: START
# Added by mysql-server-mroonga.
${mysql_plugin_dir}/ r,
${mysql_plugin_dir}/*.so* mr,
${include_profile}
# ${apparmor_profile_name}: END
EOF
	fi
    fi

    if ! test -e "$local_apparmor_profile"; then
	mkdir -p $(dirname "$local_apparmor_profile")
	cat <<EOF > "$local_apparmor_profile"
# Site-specific additions and overrides for ${apparmor_profile_name}.
# For more details, please see /etc/apparmor.d/local/README.
EOF
    fi

    if aa-status --enabled 2>/dev/null; then
	apparmor_parser -r -T -W "${mysql_apparmor_profile}" || true
    fi

    true
}

case "$1" in
    configure)
	install_apparmor
	install_plugin
	;;
    abort-upgrade|abort-deconfigure|abort-remove)
	:
	;;
    *)
	echo "Called with unknown argument $1, bailing out."
	exit 1
	;;
esac

#DEBHELPER#