A User Guide to the Grid Packaging Tools

Michael Bletzinger

National Center for Super Computing Applications (NCSA) University of Illinois

$Revision: 1.9 $ $Date: 2003/05/08 23:43:16 $

$Log: gpt-book.xml,v $
Revision 1.9  2003/05/08 23:43:16  mbletzin
Added create packages section.
Merged Jason's changes with mine.

Revision 1.8  2003/04/17 15:22:03  jalt
Added a chapter on the new GPT public programming interface. Also moved
the buildtools chapter to the proper location.

Revision 1.7  2003/04/17 14:02:47  jalt
Added a new chapter on the book to cover the latest buildtools

Revision 1.6  2003/04/04 05:15:34  mbletzin
Added update bundles section.

Revision 1.5  2003/04/04 05:00:11  mbletzin
Added bundling instructions.
Added dependency concept.
Added setup package section.
Added revision history to gpt-book

Revision History

Table of Contents

1. Installing The GPT Distribution
Introduction.
GPT Scripts Used
Installing GPT
Installing the GPT Development Environment.
Modifying GPT Settings
Testing GPT
Installing GPT on Solaris
Installing GPT Using Solaris Packages
Problems with the GPT RPM
Replacing The Globus Core Package
2. GPT Conventions
Introduction.
Build Flavor Conventions
Package Types
Source and Binary Packages
Binary Package Types
Package Names
3. Installing/Updating/Uninstalling Binary Packages and Bundles with GPT
Introduction
GPT Scripts Used
A Simple Installation
A Bundle Uninstall
A Bundle Upgrade
Installing Multiple Bundles in the Same Location
Installing Update Packages
Installing Update Bundles
Installing a Build Environment Using Software Development Kits(SDK)
Installing RPM Bundles
Installing GPT-2.X Bundles
4. Building Source Packages and Bundles with GPT
Introduction
GPT Scripts Used
Building a Simple Package
Building in a Source Directory
Building a Bundle
A Built Installation
Rebuilding Parts of a Bundle
Updating a Built Installation With gpt-build
5. Build Flavors
Introduction.
How GPT Implements Build Flavors
Customizing Build Flavors
Building the globus_core package Manually
Editing globus_flavor_labels.conf
Build Flavor Limitations
6. Creating a Bundle with GPT
Introduction
GPT Scripts Used
Creating a Binary Bundle
The Bundle Definition File
Using a Bundle Definition Template
Dependent Package Inclusion
Controlling Dependent Package Inclusion
Creating Packages With gpt-pkg
Creating RPM Bundles and Packages
7. Creating a Package with GPT: The Requirements
Introduction
Package Relocatability
User Configuration
Software Dependencies
Software Portability
Summary
8. Creating a Package with GPT: Simple Examples
Introduction
GPT Scripts Used
Perl Example: Hello World Script Package
Perl Example: Hello World Perl Script Package With a Data File
"C" Example : Hello World Program Package with a Makefile
"C" Example : Hello World Program Package with Dependencies
Testing the Example Packages
Python Example: A Package Wrapper
9. Setup Packages
Introduction
Setup Package Names and Versions
Anatomy of a Setup Package
Updating a Setup Package
Setup Package Theory
10. Packaging Concepts
Introduction.
Versioning Conventions
Introduction
Package and Bundle Versions
Version Compatibility Requirements
Version Numbers and Filenames
Package Dependencies
Introduction
Components of a Dependency.
Build Dependency Types
Runtime Dependencies
Setup Dependencies
Dependency Examples
11. GPT Build Tools
Introduction
What The Build Tools Are Not
Command Line Syntax
Listing Available Packages
Listing Package Dependencies
Package Configuration
Generating Package Configuration Files
Creating Source Packages
Building Source
Creating Binary Packages
Creating Source and Binary Bundles
12. GPT Public Interface
Introduction
Environment and Setup
QueryBundleDef()
SetBundleDef()
QueryPkgDataFile()
QueryGPTPkg()
A. GPT Algorithms
Introduction
Bundle and Package Updating
Starting Data
Sorting the Bundles
Testing Replacement Bundles and -force
Searching for Package Conflicts
Conflicts with UnaffiliatedInputPackages
Searching for File Conflicts
End of Error State Processing
Creating the Package Removal Set
Creating Adding and Replacement Package Sets
Update Algorithm Outputs
Sorting Packages
Replacing Packages
Uninstalling Packages and Bundles
B. Bundle Definitions
Sample Bundle Definition Template
Sample Bundle Definition for newfee
C. GPT Macros
Introduction
Build Macros

List of Figures

2.1. Flavor Labels Disected
2.2. Package Name Format

List of Tables

2.1. Flavor Components
2.2. Flavor Examples
2.3. Package Name Wildcard Examples
6.1. Bundle Definition Elements
6.2. Package Types to Deployment Environment
6.3. Dependent Package Inclusion Control Commands
10.1. Version Compatibility Examples
10.2. Source Dependency Types
10.3. Build Dependency Types
10.4. Binary Dependency Types and Their Package Types
10.5. Dependency Examples
C.1. GPT Build Macros