diff -Nru nsscache-0.39/debian/changelog nsscache-0.39/debian/changelog --- nsscache-0.39/debian/changelog 2019-11-12 10:43:52.000000000 +0000 +++ nsscache-0.39/debian/changelog 2020-02-07 15:32:18.000000000 +0000 @@ -1,3 +1,10 @@ +nsscache (0.39-2ubuntu1) focal; urgency=medium + + * d/t/regtest: if apparmor is enabled, override the slapd profile + before the test. (LP: #1862369) + + -- Andreas Hasenack Fri, 07 Feb 2020 12:32:18 -0300 + nsscache (0.39-2) unstable; urgency=medium * Make the tests execute correctly under pybuild by overriding the default local to search. diff -Nru nsscache-0.39/debian/tests/regtest nsscache-0.39/debian/tests/regtest --- nsscache-0.39/debian/tests/regtest 2019-11-11 16:28:43.000000000 +0000 +++ nsscache-0.39/debian/tests/regtest 2020-02-07 15:32:18.000000000 +0000 @@ -13,7 +13,15 @@ ARTIFACTS=${ADT_ARTIFACTS} fi +slapd_apparmor_bkp="${WORKDIR}/slapd_profile.bkp" +slapd_apparmor_override="/etc/apparmor.d/local/usr.sbin.slapd" +slapd_apparmor="/etc/apparmor.d/usr.sbin.slapd" + cleanup() { + if [[ -f "$slapd_apparmor_bkp" ]]; then + sudo mv "$slapd_apparmor_bkp" "$slapd_apparmor_override" + sudo /usr/sbin/apparmor_parser -r -T -W "$slapd_apparmor" + fi if [[ -e "$WORKDIR/slapd.pid" ]]; then kill -TERM $(cat $WORKDIR/slapd.pid) fi @@ -24,6 +32,28 @@ trap cleanup 0 INT QUIT ABRT PIPE TERM +apparmor_enabled() { + if [ -x /usr/sbin/aa-status ]; then + sudo /usr/sbin/aa-status --enabled && apparmor_enabled="0" || apparmor_enabled="1" + else + apparmor_enabled="1" + fi + return "$apparmor_enabled" +} + +override_apparmor() { + # backup existing override + cp -af "$slapd_apparmor_override" "$slapd_apparmor_bkp" + + # the test suite brings up a test slapd server running + # off /tmp/. + echo "${WORKDIR}/ rw," | sudo tee "$slapd_apparmor_override" + echo "${WORKDIR}/** rwk," | sudo tee -a "$slapd_apparmor_override" + echo "${ARTIFACTS}/ rw," | sudo tee -a "$slapd_apparmor_override" + echo "${ARTIFACTS}/** rwk," | sudo tee -a "$slapd_apparmor_override" + sudo /usr/sbin/apparmor_parser -r -T -W "$slapd_apparmor" +} + setup_slapd() { set -e mkdir -p $WORKDIR/ldap @@ -101,6 +131,9 @@ } check +if apparmor_enabled; then + override_apparmor +fi setup_slapd run_nsscache ldap nssdb run_nsscache ldap files