hey shawn,
nice proposal.  i have a few nits inline below.
ed

On Tue, Jul 28, 2009 at 04:35:31PM -0500, Shawn Walker wrote:
>         The server catalog file currently contains entries of this
>         format:
>
>         <type> <fmri><newline><newline>
>

two <newline>s?

>
>     - catalog.dependency.C
>         This catalog part contains the FMRIs of the packages that the
>         repository contains, any 'depend' actions, and any 'set' actions
>         for facets or variants.  This information is intended to be used
>         during dependency calculation by install, uninstall, etc.  It is
>         anticipated that package size summary information, and actions
>         for set pkg.renamed and pkg.obsolete will be stored in this part
>         as well when they become available.  Note that since this infor-
>         mation is common to all locales, this part of the catalog is
>         only offered for the 'C' locale.  An example of its contents is
>         shown below:
>
>         {
>           "opensolaris.org":{
>             "SUNWdvdrw":[
>               {
>                 "version":"5.21.4.10.8,5.11-0.108:20090218T042840Z",
>                 "actions":[
>                   "set name=variant.zone value=global value=nonglobal",
>                   "set name=variant.arch value=sparc value=i386",

hm.  this example seems invalid to me.  afaik, no packages actually have
a package variant.zone setting, and if they did i don't think it would
work correctly.  there is special handling for the package variant.arch
setting, but not for the variant.zone setting.  variant.zone are only
applicable to individual actions.

>           ... a warning will be provided to the client that there
>           may be something wrong with the repository (packages may be
>           missing, etc.).
>

there are multiple conditions where you propose to alert the client that
there may be something wrong with the repo.  i don't think that this is
all that helpfull of an error message.

it seems to me that in this case instead of warning the client user that
the repo could be broken, it'd be best if we simply tell the client user
that the repo has been rebuilt.

then, before just downloading the newest repo catalog the client could
to scan it's existing catalog/pkg info and compare it to what's
available in the rebuilt repo.  if nothing has changed for installed
packages then there is no problem and the client can download the latest
catalogs and continue the current operation.

but if metadata has changed for packages that are already installed,
then the *client* is actually broken wrt the current repo, and we should
tell the user that.  we could also tell them specifically which packages
are broken and refuse to update the local catalogs until the issue is
resolved (perhaps by having the user uninstall the broken packages, or
by contacting their repo admin to tell them that they've broken package
foobar, etc).

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

Reply via email to