I've got a question about this...

Whose responsibility is it to update the man pages and --man command  
then? The people whose jobs it is to update man pages, or the people  
whose jobs it is to update the command line utility?

Basically if a new flag is added in the future for some reason, how  
will one synchronize the man pages?

-JohnS

On 24-Jul-09, at 11:01 PM, Garrett D'Amore wrote:

> Roland Mainz wrote:
>> Garrett D'Amore wrote:
>>
>>> Alan Coopersmith wrote:
>>>
>>>> Garrett D'Amore wrote:
>>>>
>>>>> Personally, I think --man, --html and --nroff and such is a  
>>>>> dangerous
>>>>> precedent to set.  I'd rather not have them, and instead rely on  
>>>>> the
>>>>> "man" command to provide this functionality.
>>>>>
>>>> Isn't it a bit late to raise such a concern, since the precedent  
>>>> was set
>>>> in the long list of previous cases that used AST/ksh93  
>>>> implementations?
>>>>
>>> It might be.  I certainly should have raised the issue back then.   
>>> I'm
>>> still not happy about this.
>>>
>>
>> Why ?
>>
>
> I'll explain why further down.
>
>>
>>> There's yet another concern, which is that I've found that man  
>>> <command>
>>> and command --man do not generate the same document.  So we know
>>> introduce a problem were documentation delivered on the system can  
>>> be
>>> inconsistent.
>>>
>>
>> Erm... no. As said in my other email the "--man" output is  
>> basically a
>> short/terse format and more or less exactly what the "getopts" parser
>> sees (it may even be usefull if main documentation and actual code  
>> are
>> out-of-sync (which is currently the case for many commands)).
>>
>
> No, it isn't.  (Well, you might have "extra" text in the getopts  
> parser, but for an example look at the output from sum --help.  Its  
> quite a rich manual page, far beyond the normal getopts kind of  
> messaging.)
>
>>
>>> I feel really strongly that this was a bad idea.
>>>
>>
>> IMO it was a nice idea - see my other email where this feature
>> originated from.
>>
>
> I understand the notion.  And for projects that don't have the same  
> considerations we do, the idea is elegant.  But I'll elaborate  
> further below why I think this idea is *not* a good idea for our  
> project.
>>
>>> Strongly enough that
>>> I'm contemplating derailing the case.
>>>
>>
>> And what should we do then ? The only thing we can do is to remove it
>> from the case materials - removing it from the code can only be done
>> globally (e.g. libast) and that really will break existing&&ARC'ed
>> parts.
>>
>
> #ifdef SOLARIS ?  Seriously, if you want Solaris to adopt these  
> commands in favor of our current native implementations, then there  
> has to be some willingness to address architectural issues found on,  
> or even specific to, Solaris.
>
>
>> [snip]
>>
>>>> No matter what you multiply $0 by, it's still $0.   (We don't  
>>>> localize man
>>>> pages in Solaris.   A subset of man pages used to be translated  
>>>> to Japanese,
>>>> but I believe even that is no longer done.)
>>>>
>>> Really?  That comes as a surprise.  But we *do* localize commands.
>>>
>>
>> Actually the situation is AFAIK currently that there is not really  
>> much
>> funding for this left and the basic system commands are very low
>> priority. That's why I am currently working on getting a rag-tag team
>> set-up to get l10n catalogs for the AST commands (e.g. covering ksh93
>> itself and all commands which go through the busybox-like "alias"
>> wrapper (including those commands covered by this ARC case))  
>> integrated
>> (first covering Japanese, Chinese, French and later German, Spanish,
>> Russian, Urkainian locales).
>>
>
> That may be the case.  However, the your misunderstanding my  
> argument, at the bottom of this message I'll elaborate further.
>
>>
>>> So
>>> does putting --man content in the command suddenly mean that in  
>>> order to
>>> be I18N compliant they have to be localized?  That would certainly  
>>> add
>>> to the cost.
>>>
>>
>> I don't understand the connection here:
>> 1. "i18n" is "internationalisation", e.g. the support for non-ASCII
>> characters&co. and this is fully covered by the new commands (and I  
>> am
>> _very_ picky about this detail).
>>
>
> The point is that it must be possible for the commands to be  
> localized.  While there is no *technical* difference imposed by the  
> length of the string, the string itself must be localizable.  That  
> means you can't elide handling of this when you localize the rest of  
> the command, I think.
>
>> 2. "l10n" means "localistion" and mainly rotates around error
>> strings/messages/etc. being provided in non-english languages.
>
> Yes.
>
> Now let me break down the architectural problems I have with --man  
> (and also with --nroff and --troff), as they pertain to Solaris:
>
>
> 1) The commands increase the size of the text segment.   Not only  
> does it add new parsing requirements (you have to at least have  
> enough code to handle --man, for example), but you also have the  
> text of the man pages themselves.   While you might like to maintain  
> the fiction that this comes for free, it *is* a fiction.  Run sum -- 
> man or some of the other commands and you'll see content that was  
> not automatically generated.
>
> 2) We also have traditional manual pages.  On a normal system, the  
> default installation will include now *two* copies of the manual  
> page.  This is wasted space.
>
> 3) Worse, the pages can be out of synch with each other.  (The sum  
> man pages are again a good example of this.)  Which is correct?   
> (*Probably* the  --man command output.)
>
> 4) Furthermore, the --man output doesn't reflect standards required  
> for Sun man pages.  For example, there is no
> ATTRIBUTES table.
>
> 5) Some users elect to *remove* manual pages (or not install them)  
> to save space.  We've long offered this choice.  However, putting  
> the man pages in the binary effectively removes this choice from the  
> user.
>
> 6) There has historically been different processes for man page  
> content generation than for software engineering.  By putting the  
> man page content into the binary, you basically wind up skipping the  
> editorial review (and in many cases creation) of those man pages by  
> our professional documentation writers and editors.
>
> 7)  The rules for localization of documentation and commands have  
> historically often been different (based on funding levels, rules  
> for selling to different locales, and business priorities.)  By  
> putting manual page content hard coded into the documentation, you  
> wind up creating a locked relationship where the two have to be  
> localized together, or not at all.  This ultimately increases the  
> cost of localizing a command should such a localization be desired.   
> (Translators often charge by the word.)
>
> 8) The teams involved with localization of manual pages vs. commands  
> have historically been different, and have different costs.  I  
> strongly suspect it costs more to localize a command than it does to  
> localize documentation.  (You have to test the command, and the  
> translators also need to know more about technical details such as  
> handling message catalogs.)  So if we do decide we need to localize  
> this stuff in the future, its probably going to cost us more to do  
> in a binary than it would as an actual document.
>
> 9) Worse, if we keep *both* the man page and the command text, we  
> might wind up paying *double* the cost, by translating *both*  
> versions.
>
> 10) Whether we want to admit it or not, when many of our core  
> utilities start doing this, the request is going to be that the rest  
> of our utilities (e.g. dladm, ifconfig, maybe even the man command  
> itself!) support --man as well.  (I admit at first blush its a nifty  
> feature, and many users are going to like it, without understanding  
> or caring about the the ramifications I've listed above.)  So saying  
> that this doesn't set precedent is IMO akin to putting ones fingers  
> in ones ears and saying LALALALA...   If we're going down this road,  
> then it needs to be an explicit decision rather than something that  
> happened as an implementation accident.
>
> Now, all that said I do understand why the AST/ksh93 team has gone  
> down this road.  Indeed, if I was going to deliver an unbundled  
> project, I might make the same decisions.  Many of the above  
> concerns won't be relevant to David Korn or Glenn Fowler, and this  
> approach probably *does* solve problems that the upstream cares  
> about (no need to write actual separate man pages for example).    
> But they *are* relevant to Sun and the Solaris project.
>
> Many of the above issues could be handled more cleanly by simply  
> having --man execute the man command and feed the generated result.   
> But then, this begs the question, why not just run "man command"  
> instead of "command --man" ?  (Indeed, the first form is more  
> familiar and requires less typing than the introduced --man content.)
>
> So with all that said, I believe that its *important* that the  
> decision to inline man pages into libraries and manual pages be made  
> *explicitly* by the ARC.  I believe (going back and reading over the  
> previous ARC materials) that this detail was largely unconsidered  
> during previous ARC cases, and I would like the ARC membership the  
> change to think on the above points I've made, and make a decision  
> explicitly.
>
> With that in mind, I'm derailing this case for a vote, and I'll  
> write the opinion.  Unless you want to provide more answers or  
> responses to my above points, I don't think any further work is  
> required from the project team -- we have enough information (I  
> think) to proceed with a vote on this.
>
> I will say just one more thing.   Where it not for the --man, -- 
> nroff, and --html options, I think I would unhesitatingly give this  
> case a +1.   I think the rest of the case has a great deal of  
> technical merit, and I actually would like to see the changes  
> integrated -- just without manual pages integrated into the binaries.
>
>   -- Garrett
>
> _______________________________________________
> opensolaris-arc mailing list
> opensolaris-arc at opensolaris.org


Reply via email to