Gavin Maltby wrote:

> Other than the brief description in pkg(5), does there exist
> a specification of the pkg FMRI as used in IPS?

Oddly enough, not that I can find.  There's some documentation in
doc/pkgs-and-groups.txt, but that's substantially similar to what's in
pkg(5).

> Member                Data type       Description
> --------------- --------------- ------------------------------
> scheme                string          "pkg"
> version               uint8           0 for version 0
> authority     authority       Authority information (see ...)
> pkg-basedir   string          Base install directory of package.
> pkg-inst      string          Base install directory of package.
> pkg-version   string          Base install directory of package.
> 
> For IPS packages I'd like to capture a definition for "pkg"
> version 1 along the lines of the above, to include:
> 
> pkg://opensolaris.org/library/[email protected],5.11-0.75:20071001T163427Z
> 
>  - member names and data types; these, of course, aren't
>    necessarily rendered in the string form of a package
>    but we use them when we represent an FMRI as say an nvlist_t

scheme          string          Always "pkg"
authority       string          Authority information
pkg-name        string          Actual name (stem) of the package
pkg-version     version         Version of the package

Where a version type consists of

release         dotsequence     Primary version of the component
built-on        dotsequence     Version of OS on which component was built
branch          dotsequence     Branch version
timestamp       iso8601-date    YYYYMMDDTHHMMSSZ

and dotsequence is an arbitrary-length, dot-separated series of
non-zero-leading decimal digits.

>  - which are required/optional

pkg-name is the only one that is strictly required.  Currently, the
authority cannot be provided without the scheme, though I'd like to see
that change.  If the version is provided, then the release is the only
required component; the rest are independently optional.

Note that the package name can be left-truncated on slashes as long as
unambiguity is maintained (or ambiguity is tolerated) and all dotsequences
can be right-truncated as desired.  Timestamps, however, must be complete.

>  - what authority information can ever appear; just publisher
>    string?

Not sure what you mean here.  The publisher prefix is the only valid thing
here, and must be in [A-Za-z.], though there may be a few more characters
allowed.

>  - should the version string be represented simply as a full
>    string "5.11,5.11-0.75:20071001T163427Z" (are all the elements
>    always present?) or should we break out into subcomponents
>    branch/version/timestamp etc?

I think that's answered above.

>  - rule for rendering a versioni 1 pkg fmri in string form
>    given a name-type-value list

Do you want the full BNF?  Roughly, though:

    [scheme:/[/authority]]pkg-na...@release[,built-on][-branch][:timestamp]]

Let me know if you need more.

Danek
_______________________________________________
pkg-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/pkg-discuss

Reply via email to