diff -Nru cloud-build-0.11+201206261511~oneiric1/debian/bzr-builder.manifest cloud-build-0.11.1+201210292019~oneiric1/debian/bzr-builder.manifest --- cloud-build-0.11+201206261511~oneiric1/debian/bzr-builder.manifest 2012-06-26 15:11:38.000000000 +0000 +++ cloud-build-0.11.1+201210292019~oneiric1/debian/bzr-builder.manifest 2012-10-29 20:19:48.000000000 +0000 @@ -1,2 +1,2 @@ -# bzr-builder format 0.3 deb-version {debupstream}+201206261511 -lp:~brightbox/brightbox/cloud-build-oneiric revid:neil@aldur.co.uk-20111125103609-vx36aoi2mtp9jvop +# bzr-builder format 0.3 deb-version {debupstream}+201210292019 +lp:~brightbox/brightbox/cloud-build-oneiric revid:neil@aldur.co.uk-20121029170345-i373bqc05wwo7umq diff -Nru cloud-build-0.11+201206261511~oneiric1/debian/changelog cloud-build-0.11.1+201210292019~oneiric1/debian/changelog --- cloud-build-0.11+201206261511~oneiric1/debian/changelog 2012-06-26 15:11:38.000000000 +0000 +++ cloud-build-0.11.1+201210292019~oneiric1/debian/changelog 2012-10-29 20:19:48.000000000 +0000 @@ -1,8 +1,14 @@ -cloud-build (0.11+201206261511~oneiric1) oneiric; urgency=low +cloud-build (0.11.1+201210292019~oneiric1) oneiric; urgency=low * Auto build. - -- Neil Wilson Tue, 26 Jun 2012 15:11:38 +0000 + -- Launchpad Package Builder Mon, 29 Oct 2012 20:19:48 +0000 + +cloud-build (0.11.1) oneiric; urgency=low + + * Improve the decruft process to make it more robust + + -- Neil Wilson Mon, 29 Oct 2012 11:21:32 +0000 cloud-build (0.11) oneiric; urgency=low diff -Nru cloud-build-0.11+201206261511~oneiric1/debian/postinst cloud-build-0.11.1+201210292019~oneiric1/debian/postinst --- cloud-build-0.11+201206261511~oneiric1/debian/postinst 2012-06-26 15:11:37.000000000 +0000 +++ cloud-build-0.11.1+201210292019~oneiric1/debian/postinst 2012-10-29 20:19:48.000000000 +0000 @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash # This is where the hooky stuff is done. # Each change has a reason. @@ -23,13 +23,60 @@ # Clean up the image for backup files and the like. decruft() { echo "Removing cruft from image" - rm -rf /var/run/* || true - rm -f /etc/passwd- /etc/shadow- /etc/gshadow- /etc/group- \ - /etc/ssh/ssh_host*key* /etc/apt/conf.d/00secure \ - /etc/popularity-contest.conf /boot/initrd*bak* \ - /etc/apt/trusted.gpg~ /var/cache/debconf/*-old /var/lib/dpkg/*-old \ - /var/lib/dbus/machine-id /var/log/apt/term.log - # rm /dev/* || echo "Can't clean-up /dev" + + # Clean up extraneous log files that may be left around + rm /etc/ssh/ssh_host*key* || echo "No SSH keys to remove" + + # Fix LP: #1047707, 1019338 + # Truncate logs that are owned, otherwise remove + whitelisted_logs=(/var/log/btmp /var/log/lastlog /var/log/wtmp /var/log/fsck/checkfs /var/log/fsck/checkroot) + + for log in $(find /var/log -type f) + do + whitelisted=$(echo "${whitelisted_logs[@]}" | grep -o ${log} || true) + + if [ -n "${whitelisted}" ]; then + : > ${log} && + echo "Truncated whitelisted log ${log}" || + echo "Failed to truncate whitelisted log ${log}" + else + + dpkg -S ${log} > /dev/null 2>&1 && + { : > ${log} || + echo "Failed to truncate ${log}"; } || + { rm ${log} && + echo "Removed ${log} as an orphaned log file" || + echo "Failed to remove unnecessary log ${log}"; } + fi + done + + # Remove un-owned log directories + whitelisted_dirs=(/var/log/fsck) + + for log_d in $(find /var/log/* -type d) + do + whitelisted=$(echo "${whitelisted_dirs[@]}" | grep -o "${log_d}" || true) + if [ -z "${whitelisted}" ]; then + dpkg -S ${log_d} > /dev/null 2>&1 && + echo "Preserving log directory ${log_d}" || + { rm -rf ${log_d} && + echo "Removed log directory ${log_d} as orphaned log dir" || + echo "Failed to remove unnessasary log dir ${log_d}"; } + + else + echo "Preserving whitelisted directory ${log_d}" + fi + + done + + rm -rf /var/run/* || echo "Failed to clean /var/run/*" + rm /etc/passwd- || echo "No spare passwd file to cleanup" + rm /etc/shadow- || echo "No spare shadow file to cleanup" + rm /etc/gshadow- || echo "No spare gshadow file to cleanup" + rm /etc/group- || echo "No spare group file to clenaup" + rm -f /etc/apt/conf.d/00secure || echo "No apt cache to cleanup" + truncate --size=0 -c /etc/popularity-contest.conf + } # Sets the default GB locale for the image. This ensures that the keyboard