Skip to content

Latest commit

 

History

History
228 lines (175 loc) · 8.03 KB

guide-retrieval-protocol.rst

File metadata and controls

228 lines (175 loc) · 8.03 KB

Depot Operations

  • versions
    Version 0:

    A GET operation that retrieves text data representing what operations are supported and version information about the depot server.

    Example:

    URL: http://pkg.opensolaris.org/versions/0/

    Expects:

    Nothing

    Returns:

    text/plain data containing the version of the pkg(5) software that the depot is based upon, a list of the operations currently supported, and the protocol version supported for each operation.

    Sample Output:

    pkg-server bfc04991436e info 0 search 0 versions 0 catalog 0 manifest 0 add 0 file 0 abandon 0 close 0 open 0

Metadata Operations

  • catalog
    Version 0:

    A GET operation that retrieves a text/plain datastream representing a complete catalog or an incremental update to an existing one as requested.

    Example:

    URL: http://pkg.opensolaris.org/catalog/0/

    Expects:
    Nothing or the following headers:

    If-Modified-Since: {ISO 8601 formatted date and time in UTC}

    Returns:

    Either the contents of a pkg(5) catalog file, or the entries that were added since the specified date as they are found in the catalog file, separated by newlines.

  • info
    Version 0:

    A GET operation that retrieves a text/plain description of a package and its licensing information specified by the provided FMRI.

    Example:

    URL: http://pkg.opensolaris.org/info/0/[email protected],5.11-0.101:20081119T235706Z

    Expects:

    A URL-encoded pkg(5) FMRI, excluding the 'pkg:/' scheme prefix and publisher information, and including the full version information.

    Returns:

    A text/plain representation of the specified package and its licensing information.

    Sample Output:

    Name: entire Summary: entire incorporation Publisher: Unknown Version: 0.5.11 Build Release: 5.11 Branch: 0.101 Packaging Date: Wed Nov 19 23:57:06 2008 Size: 0.00 B FMRI: pkg:/[email protected],5.11-0.101:20081119T235706Z

    License:

  • manifest
    Version 0:

    A GET operation that retrieves the contents of the manifest file for a package specified by the provided FMRI.

    Example:

    URL: http://pkg.opensolaris.org/manifest/0/[email protected],5.11-0.101:20081119T235706Z

    Expects:

    A URL-encoded pkg(5) FMRI excluding the 'pkg:/' scheme prefix and publisher information and including the full version information.

    Returns:

    The contents of the package's manifest file.

  • p5i
    Version 0:

    A GET operation that retrieves an application/vnd.pkg5.info datastream representing publisher and package information. This is intended for consumption by clients for the purposes of auto-configuration, metadata management policy determination, and triggering packaging operations such as installation.

    Example:

    URL: http://pkg.opensolaris.org/release/p5i/0/SUNWcs

    Expects:

    A full or partial URL-encoded pkg(5) FMRI, excluding the publisher prefix. If the partial or full FMRI is valid, it will be added to the datastream as is. If it includes the wildcard character '*', a search of the repository's catalog for matching entries will be performed and the unique set of resulting package stems will be added to the datastream. If no match is found, a 404 error will be raised.

    Returns:

    Returns a pkg(5) information datastream based on the repository configuration's publisher information and the provided full or partial FMRI or matching entries. The Content-Type of the response is 'application/vnd.pkg5.info'.

  • publisher
    Version 0:

    A GET operation that retrieves an application/vnd.pkg5.info datastream representing publisher information. This is intended for consumption by clients for auto-configuration and metadata management policy determination.

    Example:

    URL: http://pkg.opensolaris.org/release/publisher/0

    Expects:

    Nothing

    Returns:

    Returns a pkg(5) information datastream based on the repository configuration's publisher information. The Content-Type of the response is 'application/vnd.pkg5.info'.

  • search
    Version 0:

    A GET operation that retrieves a text/plain list of packages with metadata that matches the specified criteria.

    Example:

    URL: http://pkg.opensolaris.org/release/search/0/vim

    Expects:

    A URL-encoded token representing the search criteria.

    Returns:

    A text/plain list of matching entries, separated by newlines. Each entry consists of a set of four space-separated values:

    index - what search index the entry was found in

    action - what package action the entry is related to

    value - the value that the matched the search criteria

    package - the fmri of the package that contains the match

    Results are streamed to the client as they are found.

    Sample Output:

    basename pkg:/[email protected],5.11-0.101:20081119T230659Z dir usr/share/vim basename pkg:/[email protected],5.11-0.93:20080708T171331Z file usr/bin/vim

Content Operations

The pkg.depotd(5) server provides the following operations for retrieving package content:

  • file
    Version 0:

    A GET operation that retrieves the contents of a file, belonging to a package, using a SHA-1 hash of the file's content.

    Example:

    URL: http://pkg.opensolaris.org/release/file/0/ a00030db8b91f85d0b7144d0d4ef241a3f1ae28f

    Expects:

    A SHA-1 hash of the file's content belonging to a package in the request path.

    Returns:

    The contents of the file, compressed using the gzip compression algorithm.