[pkg-discuss] License Acceptance Functionality Proposal [Take 3]
Tom Mueller
Tom.Mueller at Sun.COM
Wed Jul 1 13:49:02 PDT 2009
Shawn Walker wrote:
> Tom Mueller wrote:
>> Please see inline.
>> Shawn Walker wrote:
>>> Tom Mueller wrote:
>>>> Shawn,
>>>> This still doesn't say how policies relate to the existing
>>>> properties. Do policies and properties share the same namespace? If
>>>> no, are existing properties that are policies move to be policies?
>>>> Is the per-publisher property namespace shared with other publisher
>>>> attributes? (e.g., can I have a publisher policy called "origin"
>>>> that is separate from the origin attribute)
>>>
>>> As I said before, the namespace issue is not within the scope of
>>> this proposal and is something that will be handled by upcoming
>>> changes to the ImageConfig object/class and file format.
>> It needs to be in scope. This is part of the definition of the
>> interface. For example, if one does:
>>
>> pkg set-property my-policy true
>> pkg set-policy -n my-policy -v false
>> pkg property
>>
>> What will be the output?
>
> I'll add example output.
>
>> Also, if one does:
>>
>> pkg set-property send-uuid true
>> pkg policy -n send-uuid
>
> Since there is a separate subcommand for these, I thought it was
> logical to assume that you couldn't use policies with properties and
> vice-versa.
>
> I don't think it is necessary to explicitly state that a completely
> disparate subcommand would alter data unrelated to that subcommand.
Normally I would agree, except that in this case, some properties would
be become policies (per the list you mention below).
>
>> What will be the output? What will be the behavior of the HTTP requests?
>
> The behaviour of HTTP requests has nothing to do with the changes
> proposed here as no change proposed here affects HTTP requests to my
> knowledge.
Now, "pkg set-property send-uuid true" (or false) changes the behavior
of all HTTP requests. After your change, will it? I assume not. So
this definitely is a change in the behavior of HTTP requests?
>
>>> With that said, I do not anticipate that properties and policies
>>> will share the same 'space' within the new ImageConfig.
>> Given that, what happens to the existing policies that are
>> represented with properties?
>
> As for which properties will become policies, I'll add the explicit
> list to the text.
>
>>> I must have missed the request for an API; all that I saw was some
>>> discussion that you wanted to continue to have certain packages
>>> require acceptance for their licenses.
>>>
>>> However, since the must_accept attribute is intentionally optional
>>> (to avoid unnecessary bloat in manifests), I don't believe it is
>>> possible to provide the API you request since the resulting logic
>>> would be faulty.
>>>
>>> As I said before, it is difficult to provide compatibility with
>>> behaviour that was designed and implemented completely outside of
>>> the pkg(5) system.
>> I'm not asking you to provide compatibility. I'm asking for visibility.
>
> The visibility provided is based on the functionality provided. As I
> said before, as long as must_accept and must_display are optional,
> there is no reason to provide what was requested as the resulting use
> of that logic would be faulty.
>
>> I really doubt manifest bloat is a problem for licenses, given how
>> few there are.
>
> The point is to avoid specifying attributes unless they need to be. I
> see no reason to have a must_display=false must_accept=false on every
> single license action other than to preserve compatibility with
> functionality not provided by the pkg(5) system. For a single
> package, it may not represent much, but in aggregate, it is much
> harder to ignore.
>
> Since the only reason this is an issue is because of a design choice
> made by a consumer of the pkg(5) system, I think it should be resolved
> by that consumer since there are many options available to do so
> without design intervention here.
Can you suggest even one? Short of parsing the manifest file, how can
we preserve the existing behavior for old packages that do not have
must-accept=true?
>
>
>>> It is intentional that there is no symmetry between set-policy and
>>> set-property, out of necessity. Namely, that properties are not
>>> publisher specific, while policies can be.
>>>
>>> The proposed policy subcommands as far as I can see, are consistent
>>> with each other.
>> The need for publisher-specific policies is questionable, and
>> certainly not a reason for making the commands dissimilar. The "-p"
>> could still be an option. And if there are publisher-specific
>> policies, then set-property should probably have a publisher-specific
>> case too.
>
> I do not agree.
Not sure what you don't agree with - I assume it is the part about
needing publisher-specific policies for licenses.
Do you also not agree that "-p" could be an option while the name and
value are arguments?
> Since licenses and related documents are about a relationship of
> trust, I anticipate that some users will choose to trust licenses from
> some publishers, but not others. I believe that empowering users for
> themselves is the appropriate course of action.
>
>> Also, we certainly do not need the ability to set multiple policies
>> in a single command. That is just feature bloat, with the cost being
>> inconsistency with the set-property command. Let's keep the interface
>> simple.
>
> Consistency between disparate subcommands is not a focus for me.
Please make it a focus. This is essential for overall usability.
The more I think about it, the more important it is to have symmetry
here. It is extremely frustrating to use commands that have seemingly
arbitrary differences in command options/arguments between different
subcommands. Image if we had -v for verbose on one command and -e for
extra detail on another. Or if the package name on "install" was an
argument but it was a -p option on uninstall.
Another example is that in set-publisher, the name of the publisher to
change is an argument, not an option.
Generally, options should be options, i.e., optional. For set-policy and
unset-policy, the name and value are certainly not optional.
> I believe that from a scripting or other perspective, it will be
> useful to administrators to specify multiple policy values using a
> single invocation of the pkg command.
Not useful enough to justify an inconsistency, especially when there is
an easy way to write the script without that.
Regards,
Tom
>
> Cheers,
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Tom_Mueller.vcf
Type: text/x-vcard
Size: 309 bytes
Desc: not available
URL: <http://mail.opensolaris.org/pipermail/pkg-discuss/attachments/20090701/720e389e/attachment.vcf>
More information about the pkg-discuss
mailing list