diskimage-builder/elements/base
Tim Serong 43c0082aa7 Move /tmp/ccache setup to base element
Commit c7d80dd (Cleanup mount points automatically) removed the unmount
of $TMP_MOUNT_PATH/tmp/ccache in run_d_in_target() and moved the
"rm /tmp/ccache" to elements/base/finalise.d/02-remove-ccache.  There
are two problems with this:

1) Not unmounting at the end of run_d_in_target() results in tmp/ccache
   being bind mounted muliple times on top of itself (three times, if you
   just run `disk-image-create base`).  It is eventually unmounted, but
   somehow the auto unmount code is confused, and tries to unmount it
   one more time than it was mounted, which results in an error like
   "umount: /tmp/image.THQkZxQa/mnt/tmp/ccache: not mounted".
   This doesn't actually break anything, but it's a little messy.

2) "rm /tmp/ccache" in elements/base/finalise.d/02-remove-ccache never
   succeeds in removing /tmp/ccache, because that hook is invoked by
   run_d_in_target(), *while* /tmp/ccache is mounted.

This present commit solves the above by moving the ccache setup glue out
of img-functions and into the base element's root.d.  This has the
following implications:

1) lib/img-functions is a little cleaner.

2) /tmp/ccache is available in the chroot during the root, extra-data,
   pre-install, install and post-install stages.  It is not available
   during block-device, finalise and cleanup stages as it will have been
   automatically unmounted by then.

3) /tmp/ccache won't be setup if you're building an image that doesn't
   include the base element.

Change-Id: Ief4c0a6f4ec622db6c6f652776215684178d8943
2013-10-10 16:27:09 +11:00
..
cleanup.d Move /tmp/ccache setup to base element 2013-10-10 16:27:09 +11:00
environment.d Use ccache to cache all compiles between builds. 2013-07-09 18:18:19 -07:00
extra-data.d Store build-time settings 2013-04-04 20:39:11 +01:00
finalise.d Move /tmp/ccache setup to base element 2013-10-10 16:27:09 +11:00
install.d F19 GRUB configuration file 2013-07-12 17:21:15 +01:00
pre-install.d install redhat-lsb before pre-install.d baseline-tools 2013-05-13 15:58:31 +12:00
root.d Move /tmp/ccache setup to base element 2013-10-10 16:27:09 +11:00
dib-first-boot Use full path to dib-run-parts during firstboot. 2013-06-20 08:13:30 +01:00
README.md Move /tmp/ccache setup to base element 2013-10-10 16:27:09 +11:00

This is the base element.

Almost all users will want to include this in their disk image build, as it includes a lot of useful functionality.

Notes:

  • If you are getting warnings during the build about your locale being missing, consider installing/generating the relevant locale. This may be as simple as having language-pack-XX installed in the pre-install stage

  • This element ensures /tmp/ccache will be available in the chroot during the root, extra-data, pre-install, install and post-install stages. /tmp/ccache is unavailable during block-device, finalise and cleanup stages as it will have been automatically unmounted by then.