Packaging

Packthing can produce self-contained packages in various native operating system formats.

Packages will be created in the build/staging/ directory relative to the directory in which packthing is run.

Package Naming

The name of the package resulting from a Packthing build is uniform across platforms as follows:

{PACKAGE}-{VERSION}-{ARCH}.{EXT}

Meaning

PACKAGE

The name of the software package.

This value is specified by the package key in the packthing.yml file.

VERSION

The version of the software.

The version can come from one of three locations, from lowest to highest precedence.

  • The name of the most recent tag in the repository defined as the master repository with the master key.

  • The version key specified in the packthing.yml file.

  • The --version command line switch.

This value must start with an integer (0-9). Many packaging tools reject non-integer starting values.

ARCH

The target architecture of the package.

This architecture list conforms to the naming conventions used by the Debian operating system.

For a full list of possible values, see the Debian Ports page.

This value may be overridden with the --arch command line switch.

EXT

The extension of the package.

The extension varies depending on the package type. See below for a table of extensions.

Package Types

Table 1. Supported Package Types

type

Extension

OS

Description

deb

deb

Debian

Debian Package

dmg

dmg

Mac OS X

DMG Volume

inno

exe

Windows

InnoSetup Installer

run

run

Linux

Self-extracting archive

src

tgz,zip

All

Source Package

Configuration

Packagers can be configured with the target key. Any key that specifies a relative path will be searched from the root of the repository defined by the master key.

A sample target configuration might look like this:

target:
    deb:
        depends: libftdi1
        categories: Development;IDE
        section: Applications/Editors
        help2man:
            - propelleride
            - propman
            - openspin
    dmg:
        category: public.app-category.developer-tools
        background: icons/mac-dmg.png
        bundle: propelleride
    inno:
        banner: icons/win-banner.bmp
        run: propelleride

In the following sections, we will be going into detail on what each of these keys means.