Note: This web site is only kept up to date for OSG Software 1.2 (VDT 2.0.0). If you are looking for information for the most recent release, the RPM-based OSG Software 3.0, please see the OSG documentation web site

Quick Start (non-NMI packages)

This script creates a native package from a non-NMI VDT package. It automatically creates a defs file, a cmdfile, a native.conf file, NMI input files, and an NMI remote_task script. The syntax for calling it is simply

 native-tools/ PACKAGE

and it will create PACKAGE-Native, and put the results into that.

Don't use this for VDT packages which are already NMI builds; those should just be modified.

NMI Build Files


There is a separate page that describes the format and use of the “native.conf” files.


The NMI cmdfile should have an extra field, vdt_rpm_result that specifies the name of the RPM file to move into the repository. For Fetch-CRL-Native, this is:


(Remember, the format of an RPM file is “$NAME-$VERSION-$RELEASE.$ARCH.rpm”).

Input Files

For NMI input files with method = ftp, there is a new directive available: vdt_software. This is simliar to vdt_files, but instead of taking from the current directory, it takes from /p/vdt/public/html/software. Also, it expands globs.

The Remote Build Script

You willl need to have the following code in the remote build Perl script, most likely in the bundle step:

my $rpm = make_rpm( $tarball );

$tarball should be the file to package up. This assumes the native package config file is called native.conf; pass the name as the second argument if it's called something else.

If you have multiple native packages to create, e.g. for VOMS, you should use make_rpms instead, like this:

my $rpms = join( " ", make_rpms( $tarball1, "native1.conf", $tarball2, "native2.conf" ) );


This is an empty file inside your package dir (not inside package/nmi). It makes running scripts that operate on all native package builds easier.


Running the Build

You can use native-tools/make-nmi-rpms to run a build. This is really just a wrapper around make-vdt. Specify the repository and the packages you want to build. For example:

native-tools/make-nmi-rpms matyas GPT Globus-Base-Essentials-Native

The RPMs will end up in /p/vdt/public/html/test-nmi-rpm/$repo/$platform, where $repo is the first argument specified to make-nmi-rpms, and $platform is the NMI platform string.

Creating the Repository

The NMI platform_post step should now create the repo where your RPMs were written to. If it doesn't, cd into the dir your RPMs are in and run 'createrepo .'