Skip to content

Commit 41ebc5d

Browse files
committed
PKG-193 Update postinst script to include apparmor update changes
1 parent 83cfb83 commit 41ebc5d

File tree

1 file changed

+23
-17
lines changed

1 file changed

+23
-17
lines changed

build-ps/debian/percona-server-server.postinst

Lines changed: 23 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -46,22 +46,27 @@ check_exit_status() {
4646
# If the file has been changed, append telemetry rules to the file
4747
# If unchanged, install the new apparmor profile
4848
check_apparmor_files() {
49-
if ! diff -q /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/old_apparmor >/dev/null; then
50-
sed -i 's: # Site-specific additions and overrides. See local/README for details.::' /etc/apparmor.d/usr.sbin.mysqld
51-
sed -i 's: #include <local/usr.sbin.mysqld>::' /etc/apparmor.d/usr.sbin.mysqld
52-
sed -i '$ s/}//' /etc/apparmor.d/usr.sbin.mysqld
53-
echo "# Allow access to PS telemetry directory" >> /etc/apparmor.d/usr.sbin.mysqld
54-
echo " /usr/local/percona/telemetry/ps/ rw," >> /etc/apparmor.d/usr.sbin.mysqld
55-
echo " /usr/local/percona/telemetry/ps/** rw," >> /etc/apparmor.d/usr.sbin.mysqld
56-
echo "" >> /etc/apparmor.d/usr.sbin.mysqld
57-
echo " # Site-specific additions and overrides. See local/README for details." >> /etc/apparmor.d/usr.sbin.mysqld
58-
echo " #include <local/usr.sbin.mysqld>" >> /etc/apparmor.d/usr.sbin.mysqld
59-
echo "}" >> /etc/apparmor.d/usr.sbin.mysqld
60-
sed -r -i ':a; /^\s*$/ {N;ba}; s/( *\n *){2,}/\n/' /etc/apparmor.d/usr.sbin.mysqld
61-
rm -f /etc/apparmor.d/usr.sbin.mysqld.in2
62-
else
63-
mv -f /etc/apparmor.d/usr.sbin.mysqld.in2 /etc/apparmor.d/usr.sbin.mysqld
64-
fi
49+
TA_EXISTS=$(grep -c "telemetry" /etc/apparmor.d/usr.sbin.mysqld) 2> /dev/null || true
50+
if [ "$TA_EXISTS" -eq 0 ]; then
51+
if ! diff -q /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/old_apparmor >/dev/null; then
52+
sed -i 's: # Site-specific additions and overrides. See local/README for details.::' /etc/apparmor.d/usr.sbin.mysqld
53+
sed -i 's: #include <local/usr.sbin.mysqld>::' /etc/apparmor.d/usr.sbin.mysqld
54+
sed -i '$ s/}//' /etc/apparmor.d/usr.sbin.mysqld
55+
echo "# Allow access to PS telemetry directory" >> /etc/apparmor.d/usr.sbin.mysqld
56+
echo " /usr/local/percona/telemetry/ps/ rw," >> /etc/apparmor.d/usr.sbin.mysqld
57+
echo " /usr/local/percona/telemetry/ps/** rw," >> /etc/apparmor.d/usr.sbin.mysqld
58+
echo "" >> /etc/apparmor.d/usr.sbin.mysqld
59+
echo " # Site-specific additions and overrides. See local/README for details." >> /etc/apparmor.d/usr.sbin.mysqld
60+
echo " #include <local/usr.sbin.mysqld>" >> /etc/apparmor.d/usr.sbin.mysqld
61+
echo "}" >> /etc/apparmor.d/usr.sbin.mysqld
62+
sed -r -i ':a; /^\s*$/ {N;ba}; s/( *\n *){2,}/\n/' /etc/apparmor.d/usr.sbin.mysqld
63+
rm -f /etc/apparmor.d/usr.sbin.mysqld.in2
64+
else
65+
mv -f /etc/apparmor.d/usr.sbin.mysqld.in2 /etc/apparmor.d/usr.sbin.mysqld
66+
fi
67+
else
68+
rm -f /etc/apparmor.d/usr.sbin.mysqld.in2
69+
fi
6570
}
6671

6772

@@ -211,9 +216,10 @@ EOF
211216
update-alternatives --force --install /etc/mysql/my.cnf my.cnf "/etc/mysql/mysql.cnf" 300
212217
if [ -f "/etc/apparmor.d/usr.sbin.mysqld" ]; then
213218
check_apparmor_files
219+
else
220+
mv -f /etc/apparmor.d/usr.sbin.mysqld.in2 /etc/apparmor.d/usr.sbin.mysqld 2> /dev/null || true
214221
fi
215222
rm -f /etc/apparmor.d/old_apparmor
216-
mv -f /etc/apparmor.d/usr.sbin.mysqld.in2 /etc/apparmor.d/usr.sbin.mysqld 2> /dev/null || true
217223
if aa-status --enabled 2>/dev/null; then
218224
apparmor_parser -r -T -W /etc/apparmor.d/usr.sbin.mysqld 2>/dev/null || true
219225
fi

0 commit comments

Comments
 (0)