diff --git a/contrib/rootfs/hold_packages b/contrib/rootfs/hold_packages new file mode 100644 index 0000000000000000000000000000000000000000..53c3c1d70d3a55bc1947458677257ec2b5f8eb29 --- /dev/null +++ b/contrib/rootfs/hold_packages @@ -0,0 +1,5 @@ +#List of packages that must not be upgraded or deleted +#during the remaster process. + +#required because of launchpad bug #1373033 +ubiquity diff --git a/scripts/remaster_rootfs.sh b/scripts/remaster_rootfs.sh index 05a359c8f22a07eed64bfb214333fe18f4b31484..07998a56ce3d58160673349d42fca519c0f5169b 100755 --- a/scripts/remaster_rootfs.sh +++ b/scripts/remaster_rootfs.sh @@ -70,17 +70,22 @@ function prepare_install() apt-get update } -function install_packages_from_file() +function get_packages_from_file() { FILENAME="$1" - APT_OPTIONS=$2 if [ ! -e "$FILENAME" ]; then echo "Error: package file $FILENAME does not exist!" exit 3 fi - PKGS=$(grep -v "^#" "$FILENAME" | tr '\n' ' ') + echo "$(grep -v "^#" "$FILENAME" | tr '\n' ' ')" +} + +function install_packages_from_file() +{ + APT_OPTIONS=$2 + PKGS=$(get_packages_from_file "$1") aptitude install -y $APT_OPTIONS $PKGS } @@ -131,18 +136,25 @@ function copy_modprobe_d() update-initramfs -u } -function prevent_ubiquity_update() +function hold_packages() { - echo "ubiquity hold" | dpkg --set-selections + for PKG in $@; do + echo "$(echo "$PKG" | tr "[:blank:]") hold" | dpkg --set-selections + done } -function allow_ubiquity_update() + +function unhold_packages() { - echo "ubiquity install" | dpkg --set-selections + for PKG in $@; do + echo "$(echo "$PKG" | tr -d "[:blank:]") install" | dpkg --set-selections + done } divert_initctl -prevent_ubiquity_update #required because of launchpad bug #1373033 +PKGS_TO_HOLD=$(get_packages_from_file "$CONTRIB_DIR/hold_packages") + +hold_packages $PKGS_TO_HOLD prepare_install copy_modprobe_d @@ -157,7 +169,7 @@ patch_all "$SCRIPT_DIR/patches/" "/" #echo "compiling glib2 schemas..." #glib-compile-schemas /usr/share/glib-2.0/schemas -allow_ubiquity_update #required because of launchpad bug #1373033 +unhold_packages $PKGS_TO_HOLD revert_initctl finalize