From 48b79a600859d1cce8f23835bd7922a64817c74c Mon Sep 17 00:00:00 2001 From: Renato Botelho Date: Wed, 30 Sep 2015 10:12:36 -0300 Subject: Make sure pkg db and cache is safe on nanobsd and on pfSense with /var mounted as MFS --- src/etc/rc | 30 ++++++++++++++++-------------- tools/builder_common.sh | 10 ++++++++++ 2 files changed, 26 insertions(+), 14 deletions(-) diff --git a/src/etc/rc b/src/etc/rc index 9a67415..f2bb698 100755 --- a/src/etc/rc +++ b/src/etc/rc @@ -159,23 +159,25 @@ echo /sbin/conscontrol mute off >/dev/null -if [ "$PLATFORM" = "cdrom" ] ; then - # do nothing for cdrom platform -elif [ "$PLATFORM" = "nanobsd" ] || [ ${USE_MFS_TMPVAR} -gt 0 ]; then - # Ensure that old-style PKG packages can be persistent across reboots - /bin/mkdir -p /root/var/db/pkg - /bin/rm -rf /var/db/pkg - /bin/ln -s /root/var/db/pkg/ /var/db/pkg -else +if [ "$PLATFORM" = "pfSense" ]; then + # If use MFS var is disabled, move files back to place + if [ ${USE_MFS_TMPVAR} -eq 0 -a -d /root/var/db/pkg ]; then + rm -rf /var/db/pkg 2>/dev/null + rm -rf /var/cache/pkg 2>/dev/null + mv /root/var/db/pkg /var/db + mv /root/var/cache/pkg /var/cache + # If use MFS var is enabled, move files to a safe place + elif [ ${USE_MFS_TMPVAR} -gt 0 -a ! -d /root/var/db/pkg ]; then + /bin/mkdir -p /root/var/db /root/var/cache + mv /var/db/pkg /root/var/db + mv /var/cache/pkg /root/var/cache + ln -sf ../../root/var/db/pkg /var/db/pkg + ln -sf ../../root/var/cache/pkg /var/cache/pkg + fi + SWAPDEVICE=`/bin/cat /etc/fstab | /usr/bin/grep swap | /usr/bin/cut -f1` /sbin/swapon -a 2>/dev/null >/dev/null /etc/rc.savecore - - if [ -d /root/var/db/pkg ]; then - # User must have just disabled RAM disks, move these back into place. - /bin/mkdir -p /var/db/pkg - /bin/mv /root/var/db/pkg /var/db/pkg - fi fi if [ "$PLATFORM" = "cdrom" ] ; then diff --git a/tools/builder_common.sh b/tools/builder_common.sh index c419951..a34b66b 100644 --- a/tools/builder_common.sh +++ b/tools/builder_common.sh @@ -1113,6 +1113,16 @@ customize_stagearea_for_image() { if [ "${1}" = "nanobsd" -o \ "${1}" = "nanobsd-vga" ]; then + + mkdir -p ${FINAL_CHROOT_DIR}/root/var/db \ + ${FINAL_CHROOT_DIR}/root/var/cache \ + ${FINAL_CHROOT_DIR}/var/db/pkg \ + ${FINAL_CHROOT_DIR}/var/cache/pkg + mv -f ${FINAL_CHROOT_DIR}/var/db/pkg ${FINAL_CHROOT_DIR}/root/var/db + mv -f ${FINAL_CHROOT_DIR}/var/cache/pkg ${FINAL_CHROOT_DIR}/root/var/cache + ln -sf ../../root/var/db/pkg ${FINAL_CHROOT_DIR}/var/db/pkg + ln -sf ../../root/var/cache/pkg ${FINAL_CHROOT_DIR}/var/cache/pkg + pkg_chroot_add ${FINAL_CHROOT_DIR} base-nanobsd else pkg_chroot_add ${FINAL_CHROOT_DIR} base -- cgit v1.1