--- var/lib/dpkg/info/squeezecenter.postinst.orig 2008-09-12 19:10:07.000000000 -0700 +++ var/lib/dpkg/info/squeezecenter.postinst 2008-09-12 19:10:47.000000000 -0700 @@ -40,27 +40,6 @@ fi - # If there's an apparmor config, we need to update it to allow mysql to work properly - if [ -f /etc/apparmor.d/usr.sbin.mysqld ]; then - ## Remove the end-bracket so we can input our data into the file... - sed -e 's/}//' /etc/apparmor.d/usr.sbin.mysqld > /etc/apparmor.d/usr.sbin.mysqld.squeezecenter.new - echo " # SqueezeCenter Apparmor Changes for MySqld - /var/lib/squeezecenter/cache/ r, - /var/lib/squeezecenter/cache/my.cnf r, - /var/lib/squeezecenter/cache/mysql.startup rw, - /var/lib/squeezecenter/cache/mysql-error-log.txt rw, - /var/lib/squeezecenter/cache/squeezecenter-mysql.pid w, - /var/lib/squeezecenter/cache/squeezecenter-mysql.sock w, - /var/lib/squeezecenter/cache/MySQL/ r, - /var/lib/squeezecenter/cache/MySQL/** rwk, - } " >> /etc/apparmor.d/usr.sbin.mysqld.squeezecenter.new - - mv /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/usr.sbin.mysqld.squeezecenter.orig - mv /etc/apparmor.d/usr.sbin.mysqld.squeezecenter.new /etc/apparmor.d/usr.sbin.mysqld - /etc/init.d/apparmor restart - echo "\n" - fi - db_stop ;; --- var/lib/dpkg/info/squeezecenter.postrm.orig 2008-09-12 19:10:12.000000000 -0700 +++ var/lib/dpkg/info/squeezecenter.postrm 2008-09-12 19:12:16.000000000 -0700 @@ -1,5 +1,13 @@ #!/bin/sh -e +## if we had moved the original apparmor config file out of the way, +## then lets put it back in place... +if [ -f /var/lib/squeezecenter/usr.sbin.mysqld.orig ]; then + rm /etc/apparmor.d/usr.sbin.mysqld + mv /var/lib/squeezecenter/usr.sbin.mysqld.orig /etc/apparmor.d/usr.sbin.mysqld + /etc/init.d/apparmor reload +fi + if [ "$1" = purge ]; then rm -rf /var/lib/squeezecenter/cache @@ -11,13 +19,6 @@ fi -## if we had moved the original apparmor config file out of the way, -## then lets put it back in place... -if [ -f /etc/apparmor.d/usr.sbin.mysqld.squeezecenter.orig ]; then - rm /etc/apparmor.d/usr.sbin.mysqld - mv /etc/apparmor.d/usr.sbin.mysqld.squeezecenter.orig /etc/apparmor.d/usr.sbin.mysqld -fi - # dh_installdeb will replace this with shell code automatically # generated by other debhelper scripts. --- etc/init.d/squeezecenter.orig 2008-09-12 19:07:51.000000000 -0700 +++ etc/init.d/squeezecenter 2008-09-12 19:09:50.000000000 -0700 @@ -35,6 +35,8 @@ # Function that starts the daemon/service. # d_start() { + # Check for apparmor installs + /usr/share/squeezecenter/Bin/check_apparmor.sh # Use squeezecenter_safe to restart the daemon when # it dies. This must be done to handle mysql restarts. start-stop-daemon --start --quiet \ --- /dev/null 2008-05-03 23:08:58.000000000 -0700 +++ usr/share/squeezecenter/Bin/check_apparmor.sh 2008-09-13 11:23:27.000000000 -0700 @@ -0,0 +1,46 @@ +#!/bin/bash +# +# Author: Ben Kochie +# +# This script checks for mysqld apparmor configs and makes sure +# that squeezecenter is allowed to startup mysqld with data +# stored in an alternate location. This has been tested on +# Ubuntu 8.04. + +ctrl_file="/etc/apparmor.d/usr.sbin.mysqld" +old_backup_file="${ctrl_file}.squeezecenter.orig" +backup_file="/var/lib/squeezecenter/usr.sbin.mysqld.orig" + +if [ -f "${ctrl_file}" ] ; then + # Fix a broken case from the previous installs that would + # leave files in the wrong place. + if [ -f "${old_backup_file}" ] ; then + echo "Fixing backup control file" + fgrep -vi "squeezecenter" "${old_backup_file}" > "${backup_file}" + rm "${old_backup_file}" + # Reload apparmor to make change take effect. + /etc/init.d/apparmor reload + fi + # Check for existing installations, and apply patch if needed. + if ! fgrep -q "/var/lib/squeezecenter/cache" "${ctrl_file}" ; then + echo "Fixing apparmor config file" + # Backup original apparmor config. + cp "${ctrl_file}" "${backup_file}" + # Remove the end-bracket so we can input our data into the file. + sed -e 's/}//' "${backup_file}" > "${ctrl_file}" + # Add permissions for squeezecenter to mysql config. + echo " # SqueezeCenter Apparmor Changes for MySqld + # SqueezeCenter Apparmor Changes for MySqld + /var/lib/squeezecenter/cache/ r, + /var/lib/squeezecenter/cache/my.cnf r, + /var/lib/squeezecenter/cache/mysql.startup rw, + /var/lib/squeezecenter/cache/mysql-error-log.txt rw, + /var/lib/squeezecenter/cache/squeezecenter-mysql.pid w, + /var/lib/squeezecenter/cache/squeezecenter-mysql.sock w, + /var/lib/squeezecenter/cache/MySQL/ r, + /var/lib/squeezecenter/cache/MySQL/** rwk, +}" >> "${ctrl_file}" + # Reload apparmor to make change take effect. + /etc/init.d/apparmor reload + fi +fi