For GPT we adopt the definition of source and binary packages that other package managers use. Here are the formal definitions:
A collection of files (source code, Makefiles, etc.) that are used to build and install software. For GPT this collection is tarred up and built with gpt-build.
A collection of files (programs, scripts, shared libraries, documents, etc) that have been installed into one location. Not that this collection can also include text files such as documentation and configuration files.
For example the source code from a repository or a Perl module from CPAN would be put in a source package. Any files moved into a directory by a "make install" would be part of a binary package.
Typical software projects will install several different types of files for their users. These files can range from executables, scripts, and libraries to documentation and header files. Typically a user will not require every product that a software product provides. For this reason GPT provides a capability of packaging the various installation files into a predefined set of packages. The set is defined by the following binary package types:
This package type includes all executables i.e programs and scripts. the pgm_static packages contain statically linked executables.
This package type includes runtime libraries, modules, and libexec scripts required by the executables in pgm packages.
This package type includes header files and archives required to build other software.
This package type includes data files such as configuration files stored in the installation under /share or /etc.
This package type includes documentation.
Bundles containing client or server software consist of mostly pgm and rtl packages. Bundles containing software development kits consist of mostly dev and rtl packages.