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)
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.
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)
...is omitted on purpose, to keep things simple.