A TempleOS distro for heretics
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

2.0 KiB

Pkg package format

Pkg is the name of Shrine's package manager.

Each package ships as a manifest + one or more installables. The only installable format currently supported is RedSea disk image (.ISO.C)

Manifest format

The manifest is a key-value format, using exactly one Tab character as delimiter. The keys are:

  • name (string - package name)

  • osmin (int - minimum supported OS version, default 0)

  • osmax (int - maximum OS version, default +∞)

  • pkgmin (int - minimum Pkg version, default +∞)

  • version (string up to 6 chars - version for display purposes, default NULL)

  • release (int - version for comparison purposes, default 0)

  • installdir (string, default NULL)

  • iso.c (string - see below, default NULL)

  • size (int - download size in bytes, default 0)

  • post-install-doc (string, default NULL)

    Name of file to open after package installation. Must be an absolute path.

Currently ignored keys:

  • website (string)

For a package to be installable, it needs to specify at least pkgmin, name, version, installdir and an installable. The manifest can contain any other keys; Pkg might or might not preserve them when manipulating the package.

iso.c changes meaning depending on the context. This is somewhat confusing, which makes it a perfect fit for TempleOS.

  • in repo, it's a (usually relative) URL to the package's ISO.C download
  • in a downloaded package it is a filesystem path
  • when building a package it specifies the output filename

size is ambiguous if the package provides multiple download formats. It's not a big deal.

pkgmin

To maximize compatibility with systems in the wild, you should generally use the lowest pkgmin that's suitable for your package.

Format versions are described below:

  • 10 - Initial public release
  • 11 - Adds support for post-install-doc (Shrine 5.03.1)

Dependency resolution

...is omitted on purpose, to keep things simple.