What I know about the patchdiag.xref format

The patchdiag.xref file is the patch index file used by various tools, Sun and otherwise, such as the marvelous pca. Here's what I've worked out about its format, much of which comes from reading pca's source code.

Any line starting with a '#' is a comment. In practice, they seem to come only at the start of the file and start with '##', but I wouldn't count on that.

Each patch is one line, with fields separated by '|', and appears to be ordered by increasing patch number, although I wouldn't count on that. The fields are, in order:

id patch ID, usually a six-digit number
rev the patch's revision, usually a two-digit number
date the issue date of the patch, as Mon/DD/YY.
rflag 'R' if the patch is a recommended patch
sflag 'S' if the patch is a security patch
oflag 'O' if the patch is obsolete
byflag The first character is 'Y' if this is a Y2K patch. The second character is 'B' if this is a bad patch.
os applicable operating system version, or 'Unbundled' for just stuff.
archs the machine architectures that the patch is for, plus prerequisite patches.
pkgs the packages that this patch affects/requires, plus incompatible patches.
synopsis Human readable (hopefully) patch synopsis.

The os field also sometimes bundles the architecture in, so you will see things like an OS of '8_x86' for Solaris 8 on x86, versus just '8' for Solaris 8 SPARC.

The archs and pkgs fields contains subvalues; each subvalue ends with a ';', even if it is the last (or the only) subvalue in the field. (This helpfully mucks up pretty much any language's 'split' function; you get to split and then throw away the last element.)

Any prerequisite patches are encoded in the archs field, as id-rev values. Incompatible patches are slapped into the pkgs field in the same format.

If a patch has been obsoleted by something, its synopsis says so. There are a number of slightly varied formats that this information can be in.

The subvalues in the pkgs field (apart from incompatible patches) are in the format 'PKG:REV', with REV in the same form that 'pkginfo -x' produces it (more or less, it looks like).

The subvalues in the archs field (apart from prerequisite patches) may be an architecture name ('sparc' or 'i386'), 'all', or '<arch>.<model>' such as 'sparc.sun4u'. Pca's matching code accepts a patch if any of the subvalues match, and you'll frequently see 'redundant' archs values like 'sparc;sparc.sun4u;'.


Page tools: View Source, Add Comment.
Search:
Login: Password:
Atom Syndication: Recent Comments.

Last modified: Mon Jun 19 16:18:09 2006
This dinky wiki is brought to you by the Insane Hackers Guild, Python sub-branch.