This chapter shows how to migrate your existing installation of support
modules to sumo. sumo-scan can help you to create a first version of the
dependency database.
Alternatively you can create the dependency database from scratch.

sumo-scan has many command line options that help you create a first version of
a dependency database that
is almost correct. You may however, have to edit the created text files in
order to remove wrong dependencies or give repository specifications a
canonical form.

Note that option “-U” of sumo-scan changes repository URLs on the fly. You
may want to re-run sumo-scan with this option instead of changing many
repository URLs in the scan file manually. For more information on this topic see
sumo-scan options.

We first have to scan the existing RELEASE file with sumo-scan. We have to know
the paths of the used EPICS base and the
directory with used support modules. These are given as option “-g” to the
program. The output of sumo-scan is directed to sumo which prints
JSON data compatible with the
dependency database to the
console:

Option --ignore-changes'configure/RELEASE' is needed if file
configure/RELEASE has uncomitted changes. If sumo-scan finds any uncomitted
changes it sets the source data to type
‘path’ which usually is not what you want.

Note that you may omit <supportname> but in this case the JSON data contains not just your support module but also all
dependent modules.

We first have to scan the existing RELEASE file with sumo-scan. We have to know
the paths of our old EPICS base and the old
support directory, these are given as option “-g” to the program. The output of
sumo-scan is directed to sumo which creates a JSON
file “configure/MODULES” with modulespecs and aliases:

Our global sumo configuration file (see further above) defines everything sumo
needs. You may want to define option “buildtag-stem” that is used to name
builds created for this application in an extra configuration file with this
command:

you first have to add missing modules to file configure/MODULES. The
command:

sumobuildtry--detail1

may help you with that.

When our module list is complete we can now use a matching build with:

sumobuildnew

If program prints this message:

nobuildfoundthatmatchesmodulespecs

then there is no matching build and we first have to create one. This is done
with command:

sumobuildnew

The list of modules is taken from file configure/MODULES. The
program creates a collection of all modules needed, checks out the
sources of all modules, creates a new entry in the BUILDS.DB
database, creates a makefile and calls make.