In this section, we'll show you how to build your roll and we'll examine some of the files that are created when you build your roll.
Building your roll is rather simple. To build the example Valgrind Roll that we developed in the previous section, execute:
# cd /export/src/roll/valgrind # make roll |
This will take several minutes to build.
When it completes, the most important file is
valgrind-1.0-0.x86_64.disk1.iso
--
this is the Valgrind Roll in an ISO image.
You can burn this ISO to a CD/DVD or you can transport it to a frontend and
install it like you would any other roll.
When you execute "make roll", it will descend into the
src
directory and try to build every package.
In the case of the Valgrind Roll, there are two subdirectories under
src
: usersguide
and
valgrind
.
The "make roll" process will go into each of those directories and execute
"make rpm",
and as decribed in the section Create an RPM from a Source Code Tarball, the
resulting RPMs will be placed in
/export/src/roll/valgrind/RPMS/x86_64
.
Also, all the node XML files and the graph XML file will be bundled into
a package called
roll-valgrind-kickstart-1.0-0.noarch.rpm
.
To see this, execute:
# cd /export/src/roll/valgrind # rpm -qlp RPMS/noarch/roll-valgrind-kickstart-1.0-0.noarch.rpm /export/profile /export/profile/graphs /export/profile/graphs/default /export/profile/graphs/default/valgrind.xml /export/profile/nodes /export/profile/nodes/valgrind-base.xml /export/profile/nodes/valgrind-client.xml /export/profile/nodes/valgrind-server.xml /export/profile/roll-valgrind.xml |
Above we see the graph XML file (
/export/profile/graphs/default/valgrind.xml
)
and the node XML files:
(/export/profile/nodes/valgrind-base.xml
,
/export/profile/nodes/valgrind-client.xml
,
/export/profile/nodes/valgrind-server.xml
).
The file /export/profile/roll-valgrind.xml
contains
info that describes how the roll was built.
After the Roll is built, you can add a file to the Valgrind Roll that will help you determine if all the expected packages were built. We do this with the "manifest-check.py" program.
The "manifest-check.py" program looks at file called "manifest" in the base directory of the Roll and then looks at the RPMs under the directory "disk1". The "manifest-check.py" program expects that only the RPMs listed in "manifest" will be present. If there is an entry in "manifest" and if the RPM doesn't exist under "disk1", you will see an error message like:
ERROR - the following packages were not built: roll-condor-usersguide |
And if there is package that was built, but there is no entry in "manifest" for it, you'll see an error message like:
ERROR - the following packages were built but not in manifest: foundation-perl-Statistics-Descriptive foundation-perl-Spreadsheet-ParseExcel |
For the Valgrind Roll, create a file named "manifest":
# cd /export/src/roll/valgrind # vi manifest |
Then put the following package names in it:
roll-valgrind-kickstart roll-valgrind-usersguide valgrind |
Now run "manifest-check.py" to verify that all the expected packages have been built:
# /opt/rocks/share/devel/src/roll/bin/manifest-check.py |
![]() | Everytime you add a new package to your Roll, make sure to add the package's base name to the "manifest" file. |