Difference between revisions of "The TASTE VM update mechanism in detail"

Jump to: navigation, search
m (1 revision imported)
(No difference)

Latest revision as of 21:02, 4 August 2017

How the TASTE VM update mechanism works

The end users simply have to run Update-TASTE.sh and everything will be automatically updated to the latest versions. The following section describes exactly how this process takes place.

Pre- and post- processing work

The Update-TASTE.sh scripts starts with an svn update executed under the ~/tool-src folder. This gets the latest versions of the branch the user is following. This update includes the prepare.sh and additionalWork.sh scripts in the main repository folder, which are run before and after the main compilation - i.e. they form the pre- and post- processing work to be done.


The preprocessing, mainly addresses installing the necessary dependencies for the main compilation to take place. As can be seen by reviewing the contents of the prepare.sh script, it consists of the following steps:

  • Handling of OS-related updates and fixes: Whenever an OS-related update needs to be performed, and/or some side-effects of this update need to be handled, the prepare.sh script is updated to do so. This includes but is not limited to (a) Debian-specific fixups (e.g. handling of the Debian repository list inside /etc/apt/sources.list, patching of configuration files under the /etc folder (e.g. X11 xorg.conf), etc.
  • Desktop and user configuration handling: Patches related to desktop configuration (menus, desktop icons) and shell configuration (.bashrc) are also handled in prepare.sh.
  • Installation of non-distro-specific packages and dependencies: Installation of packages that are not provided by the Debian distribution, including but not limited to the Ellidiss GUI, the custom RTEMS compiler, the custom Leon compiler (GnatForLeon), etc
  • Installation of distro-specific packages and dependencies: Installation of packages that are provided by the Debian distribution, both from the stable and the testing releases (we prefer the stable release, but need on occasion to use the version that is packaged in the testing release of Debian). The script contains a list of packages that are required from the stable release (script variable PACKAGES) and a list of packages that are required from the testing release (script variable PACKAGES_TESTING).


Having installed the necessary compilation dependencies in the pre-processing stage, a make invocation is performed in the main repository folder. Provided this is successfull, it is then followed by an invocation of additionalWork.sh, which is the post-processing script. This is a lot smaller than the pre-processing one, and it mostly deals with configuration aspects of the components built via the make. Since it may also update .bashrc (the shell's configuration) it also notifies the user that he now needs to exit his current shell, and start a new one (e.g. spawn a new XTerm) so that the new environment settings, PATHs, etc will be taken into effect.