From 83b05d6ee8e5af520dc4de375f6bb4e68640852e Mon Sep 17 00:00:00 2001 From: Fabio Erculiani Date: Tue, 21 Dec 2010 18:52:58 +0100 Subject: [PATCH] [remaster/*] use mount --bind trick instead of cp to copy packages cache over to chroots --- molecules/3rdparty/mcs.common | 4 ++-- molecules/corecdx.common | 3 +++ molecules/e17.common | 3 +++ molecules/gaming.common | 3 +++ molecules/gnome.common | 3 +++ molecules/kde.common | 3 +++ molecules/lxde.common | 3 +++ molecules/sabayon-x86-gforensic.spec | 3 +++ molecules/serverbase.common | 3 +++ molecules/xfce.common | 3 +++ scripts/3rdparty/error_script_mcs.sh | 4 ---- scripts/remaster_error_script.sh | 7 +++++++ scripts/remaster_post.sh | 5 ++--- scripts/remaster_pre.sh | 5 +++-- 14 files changed, 41 insertions(+), 11 deletions(-) delete mode 100755 scripts/3rdparty/error_script_mcs.sh create mode 100755 scripts/remaster_error_script.sh diff --git a/molecules/3rdparty/mcs.common b/molecules/3rdparty/mcs.common index 420226a..4407006 100644 --- a/molecules/3rdparty/mcs.common +++ b/molecules/3rdparty/mcs.common @@ -27,8 +27,8 @@ inner_chroot_script_after: /sabayon/scripts/3rdparty/remaster_mcs_inner_chroot_s # before entering it (and AFTER inner_chroot_script) outer_chroot_script_after: /sabayon/scripts/remaster_post.sh -# Used to umount /proc -error_script: /sabayon/scripts/3rdparty/error_script_mcs.sh +# Used to umount /proc and unbind packages dir +error_script: /sabayon/scripts/remaster_error_script.sh # Extra mkisofs parameters, perhaps something to include/use your bootloader extra_mkisofs_parameters: -b isolinux/isolinux.bin -c isolinux/boot.cat diff --git a/molecules/corecdx.common b/molecules/corecdx.common index aeab936..fb8dd66 100644 --- a/molecules/corecdx.common +++ b/molecules/corecdx.common @@ -26,6 +26,9 @@ inner_chroot_script_after: /sabayon/scripts/remaster_generic_inner_chroot_script # before entering it (and AFTER inner_chroot_script) outer_chroot_script_after: /sabayon/scripts/remaster_post.sh +# Used to umount /proc and unbind packages dir +error_script: /sabayon/scripts/remaster_error_script.sh + # Extra mkisofs parameters, perhaps something to include/use your bootloader extra_mkisofs_parameters: -b isolinux/isolinux.bin -c isolinux/boot.cat diff --git a/molecules/e17.common b/molecules/e17.common index 361b1b8..8b4cf16 100644 --- a/molecules/e17.common +++ b/molecules/e17.common @@ -26,6 +26,9 @@ inner_chroot_script_after: /sabayon/scripts/remaster_generic_inner_chroot_script # before entering it (and AFTER inner_chroot_script) outer_chroot_script_after: /sabayon/scripts/remaster_post.sh +# Used to umount /proc and unbind packages dir +error_script: /sabayon/scripts/remaster_error_script.sh + # Extra mkisofs parameters, perhaps something to include/use your bootloader extra_mkisofs_parameters: -b isolinux/isolinux.bin -c isolinux/boot.cat diff --git a/molecules/gaming.common b/molecules/gaming.common index 71f4d41..6c90534 100644 --- a/molecules/gaming.common +++ b/molecules/gaming.common @@ -26,6 +26,9 @@ inner_chroot_script_after: /sabayon/scripts/remaster_gaming_inner_chroot_script_ # before entering it (and AFTER inner_chroot_script) outer_chroot_script_after: /sabayon/scripts/gaming_remaster_post.sh +# Used to umount /proc and unbind packages dir +error_script: /sabayon/scripts/remaster_error_script.sh + # Extra mkisofs parameters, perhaps something to include/use your bootloader # IMPORTANT NOTE: -allow-limited-size is only supported by cdrkit provided mkisofs. # Please use cdrkit to make this molecule working !!! Or drop some games and remove the switch. diff --git a/molecules/gnome.common b/molecules/gnome.common index 5be6572..5f69606 100644 --- a/molecules/gnome.common +++ b/molecules/gnome.common @@ -26,6 +26,9 @@ inner_chroot_script_after: /sabayon/scripts/remaster_generic_inner_chroot_script # before entering it (and AFTER inner_chroot_script) outer_chroot_script_after: /sabayon/scripts/remaster_post.sh +# Used to umount /proc and unbind packages dir +error_script: /sabayon/scripts/remaster_error_script.sh + # Extra mkisofs parameters, perhaps something to include/use your bootloader extra_mkisofs_parameters: -b isolinux/isolinux.bin -c isolinux/boot.cat diff --git a/molecules/kde.common b/molecules/kde.common index 95a087b..6c59876 100644 --- a/molecules/kde.common +++ b/molecules/kde.common @@ -26,6 +26,9 @@ inner_chroot_script_after: /sabayon/scripts/remaster_generic_inner_chroot_script # before entering it (and AFTER inner_chroot_script) outer_chroot_script_after: /sabayon/scripts/remaster_post.sh +# Used to umount /proc and unbind packages dir +error_script: /sabayon/scripts/remaster_error_script.sh + # Extra mkisofs parameters, perhaps something to include/use your bootloader extra_mkisofs_parameters: -b isolinux/isolinux.bin -c isolinux/boot.cat diff --git a/molecules/lxde.common b/molecules/lxde.common index 75eafbc..ee4f086 100644 --- a/molecules/lxde.common +++ b/molecules/lxde.common @@ -26,6 +26,9 @@ inner_chroot_script_after: /sabayon/scripts/remaster_generic_inner_chroot_script # before entering it (and AFTER inner_chroot_script) outer_chroot_script_after: /sabayon/scripts/remaster_post.sh +# Used to umount /proc and unbind packages dir +error_script: /sabayon/scripts/remaster_error_script.sh + # Extra mkisofs parameters, perhaps something to include/use your bootloader extra_mkisofs_parameters: -b isolinux/isolinux.bin -c isolinux/boot.cat diff --git a/molecules/sabayon-x86-gforensic.spec b/molecules/sabayon-x86-gforensic.spec index 16664fe..c87ed5e 100644 --- a/molecules/sabayon-x86-gforensic.spec +++ b/molecules/sabayon-x86-gforensic.spec @@ -46,6 +46,9 @@ inner_chroot_script_after: /sabayon/scripts/remaster_generic_inner_chroot_script # before entering it (and AFTER inner_chroot_script) outer_chroot_script_after: /sabayon/scripts/gforensic_remaster_post.sh +# Used to umount /proc and unbind packages dir +error_script: /sabayon/scripts/remaster_error_script.sh + # Extra mkisofs parameters, perhaps something to include/use your bootloader extra_mkisofs_parameters: -b isolinux/isolinux.bin -c isolinux/boot.cat diff --git a/molecules/serverbase.common b/molecules/serverbase.common index 99179dd..3cc25dd 100644 --- a/molecules/serverbase.common +++ b/molecules/serverbase.common @@ -26,6 +26,9 @@ inner_chroot_script_after: /sabayon/scripts/remaster_nox_inner_chroot_script_aft # before entering it (and AFTER inner_chroot_script) outer_chroot_script_after: /sabayon/scripts/remaster_post.sh +# Used to umount /proc and unbind packages dir +error_script: /sabayon/scripts/remaster_error_script.sh + # Extra mkisofs parameters, perhaps something to include/use your bootloader extra_mkisofs_parameters: -b isolinux/isolinux.bin -c isolinux/boot.cat diff --git a/molecules/xfce.common b/molecules/xfce.common index 15bd87b..59bf90a 100644 --- a/molecules/xfce.common +++ b/molecules/xfce.common @@ -26,6 +26,9 @@ inner_chroot_script_after: /sabayon/scripts/remaster_generic_inner_chroot_script # before entering it (and AFTER inner_chroot_script) outer_chroot_script_after: /sabayon/scripts/remaster_post.sh +# Used to umount /proc and unbind packages dir +error_script: /sabayon/scripts/remaster_error_script.sh + # Extra mkisofs parameters, perhaps something to include/use your bootloader extra_mkisofs_parameters: -b isolinux/isolinux.bin -c isolinux/boot.cat diff --git a/scripts/3rdparty/error_script_mcs.sh b/scripts/3rdparty/error_script_mcs.sh deleted file mode 100755 index 281a80e..0000000 --- a/scripts/3rdparty/error_script_mcs.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh -if [ -d "${CHROOT_DIR}" ]; then - umount "${CHROOT_DIR}/proc" -fi diff --git a/scripts/remaster_error_script.sh b/scripts/remaster_error_script.sh new file mode 100755 index 0000000..8626be9 --- /dev/null +++ b/scripts/remaster_error_script.sh @@ -0,0 +1,7 @@ +#!/bin/sh +if [ -d "${CHROOT_DIR}" ]; then + umount "${CHROOT_DIR}/proc" +fi + +echo "Umounting bind to ${CHROOT_PKGS_DIR}" +umount "${CHROOT_PKGS_DIR}" || exit 1 diff --git a/scripts/remaster_post.sh b/scripts/remaster_post.sh index 06a523b..6479d30 100755 --- a/scripts/remaster_post.sh +++ b/scripts/remaster_post.sh @@ -7,8 +7,7 @@ umount "${CHROOT_DIR}/proc" &> /dev/null umount "${CHROOT_DIR}/proc" &> /dev/null umount "${CHROOT_DIR}/proc" &> /dev/null -echo "Merging back packages" -cp "${CHROOT_PKGS_DIR}"/* "${PKGS_DIR}"/ -Ra -rm -rf "${CHROOT_PKGS_DIR}"{,-nonfree,-restricted}/* +echo "Umounting bind to ${CHROOT_PKGS_DIR}" +umount "${CHROOT_PKGS_DIR}" || exit 1 exit 0 diff --git a/scripts/remaster_pre.sh b/scripts/remaster_pre.sh index 66c86cc..15b5ceb 100755 --- a/scripts/remaster_pre.sh +++ b/scripts/remaster_pre.sh @@ -5,9 +5,10 @@ CHROOT_PKGS_DIR="${CHROOT_DIR}/var/lib/entropy/client/packages" [[ ! -d "${PKGS_DIR}" ]] && mkdir -p "${PKGS_DIR}" [[ ! -d "${CHROOT_PKGS_DIR}" ]] && mkdir -p "${CHROOT_PKGS_DIR}" -echo "Mounting packages over" +# make sure it's all clean before mounting rm -rf "${CHROOT_PKGS_DIR}"/* -cp ${PKGS_DIR}/* "${CHROOT_PKGS_DIR}"/ -Ra +echo "Mounting bind to ${CHROOT_PKGS_DIR}" +mount --bind "${PKGS_DIR}" "${CHROOT_PKGS_DIR}" || exit 1 mount -t proc proc "${CHROOT_DIR}/proc"