Re: [PATCH] localedef.1: add new page based on Debian localedef(1)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Marko,

Thanks for doing the work needed to get this page toward man-pages.

Some comments below. Could you amend and send a v2 please.

On 05/26/2014 04:22 PM, Marko Myllynen wrote:
> Hi,
> 
> as discussed off-list, below is a slightly updated localedef(1) man
> based on Debian localedef(1). Richard, Alastair, and Lars all agreed
> to license their previous work under GPL2+ and I've added the license
> text to the page as a comment.
> 
> The actual patch is below, I've also attached the diff between this
> proposal and the current Debian version. I18NPATH handling was
> clarified (based on strace(1) output and in a way which should not
> need changes after the fix for
> https://sourceware.org/bugzilla/show_bug.cgi?id=16984 start to show
> up in downstreams), FILES section was updated to match recent short
> descriptions in other locale-related man pages, and the other example
> was slightly changed to better illustrate using LOCPATH.

> 
>>From 27791e8581fce43381cb138e9010298b6ddb7e67 Mon Sep 17 00:00:00 2001
> From: Marko Myllynen <myllynen@xxxxxxxxxx>
> Date: Mon, 26 May 2014 17:13:00 +0300
> Subject: [PATCH] localedef.1: add new page based on Debian localedef(1)
> 
> ---
>  man1/localedef.1 |  353 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
>  1 files changed, 353 insertions(+), 0 deletions(-)
>  create mode 100644 man1/localedef.1
> 
> diff --git a/man1/localedef.1 b/man1/localedef.1
> new file mode 100644
> index 0000000..4702cd4
> --- /dev/null
> +++ b/man1/localedef.1
> @@ -0,0 +1,353 @@
> +.\" Copyright (C) 2001 Richard Braakman
> +.\" Copyright (C) 2004 Alastair McKinstry
> +.\" Copyright (C) 2005 Lars Wirzenius
> +.\" Copyright (C) 2014 Marko Myllynen
> +.\" 
> +.\" %%%LICENSE_START(GPLv2+_DOC_FULL)
> +.\" This is free documentation; you can redistribute it and/or
> +.\" modify it under the terms of the GNU General Public License as
> +.\" published by the Free Software Foundation; either version 2 of
> +.\" the License, or (at your option) any later version.
> +.\" 
> +.\" The GNU General Public License's references to "object code"
> +.\" and "executables" are to be interpreted as the output of any
> +.\" document formatting or typesetting system, including
> +.\" intermediate and printed output.
> +.\"
> +.\" This manual is distributed in the hope that it will be useful,
> +.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
> +.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> +.\" GNU General Public License for more details.
> +.\"
> +.\" You should have received a copy of the GNU General Public
> +.\" License along with this manual; if not, see
> +.\" <http://www.gnu.org/licenses/>.
> +.\" %%%LICENSE_END
> +.\"
> +.TH LOCALEDEF 1 2014-05-26 "Linux" "Linux Programmer's Manual"
> +.SH NAME
> +localedef \- compile locale definition files
> +.SH SYNOPSIS
> +.ad l
> +.nh
> +.B localedef
> +.RI [ options ]
> +.I outputpath
> +.br
> +.B "localedef \-\-list\-archive"
> +.RI [ options ]
> +.br
> +.B "localedef \-\-delete\-from\-archive"
> +.RI [ options ]
> +.IR localename " ..."
> +.br
> +.B "localedef \-\-add\-to\-archive"
> +.RI [ options ]
> +.IR compiledpath
> +.br
> +.B "localedef \-\-version"
> +.br
> +.B "localedef \-\-help"
> +.br
> +.B "localedef \-\-usage"
> +.ad b
> +.hy
> +.SH DESCRIPTION
> +The
> +.B localedef
> +program reads the indicated
> +.I charmap
> +and
> +.I input
> +files, compiles them to a binary form quickly usable by the
> +.BR locale (7)
> +functions in the C library, and places the output in 
> +.IR outputpath .
> +.PP
> +If
> +.I outputpath
> +contains a slash character ('/'), it is directly the name of the output
> +directory.
> +In this case, there is a separate output file for each locale category
> +(LC_CTIME, LC_NUMERIC, and so on).
> +.PP
> +Otherwise, if the 
> +.B \-\-no\-archive
> +option is used,
> +.I outputpath
> +is the name of a subdirectory in
> +.B /usr/lib/locale
> +where per-category compiled files are placed.
> +.PP
> +Otherwise, 
> +.I outputpath
> +is the name of a locale and the compiled locale data is added to the
> +archive file 
> +.BR /usr/lib/locale/locale-archive .

s/BR/IR/

> +Locale archive is a memory mapped file which contains all the system 

s/Locale archive/A locale archive/

s/memory mapped file/memory-mapped file/

> +provided locales and it is used by all localized programs when the 

s/ and /; /

> +environment variable
> +.B LOCPATH
> +is not set.
> +.PP
> +In any case,
> +.B localedef
> +aborts if the directory in which it tries to write locale files has
> +not already been created.
> +.PP
> +If no
> +.I charmapfile
> +is given, the value
> +.I ANSI_X3.4-1968
> +(for ASCII) is used by default.
> +If no
> +.I inputfile
> +is given, or if it is given as a dash
> +.RB ( \- ),
> +.B localedef
> +reads from standard input.
> +.SH OPTIONS

The piece down to "xxx" is pretty much standard command-option syntax (as 
described in getopt(3)), right? So, no need to explain that on this page;
just remove this piece.

> +Most options can have either short or long forms.  If multiple short
> +options are used, they can be combined in one word (for example,
> +.B \-cv 
> +is identical to
> +.BR "\-c \-v" ).
> +.PP
> +If a short option takes an argument, the argument can be given separately
> +as the next word
> +.RB ( "\-f foo" ), 
> +or it can be written together with the option letter
> +.RB ( \-ffoo ).
> +If a long option takes an argument, the argument can be given separately
> +as the next word, or it can be written as option=argument 
> +.RB ( \-\-charmap=foo ).

xxx

> +.SS "Operation selection options"
> +A few options direct 
> +.B localedef
> +to do something else than compile locale definitions.
> +Only one of these should be used at a time.
> +.TP
> +.B \-\-delete\-from\-archive
> +Delete the named locales from the locale archive file.
> +.TP
> +.B \-\-list\-archive
> +List the locales contained in the locale archive file.
> +.TP
> +.B \-\-add\-to\-archive
> +Add the 
> +.I compiledpath
> +directories to the locale archive file.
> +The directories should have been created by previous runs of 
> +.BR localedef ,
> +using 
> +.BR \-\-no\-archive .
> +.SS "Other options"
> +Some of the following options are only sensible for some operations; 
> +hopefully it is self-evident which ones.

s/hopefully it is/generally, it should be/

> +.TP
> +.BI \-f " charmapfile" ", \-\-charmap=" charmapfile
> +Specify the file that defines the symbolic character names that are
> +used by the input file.  If

Please start each new sentence on a new source line. (There are a 
number of other instances below.)

> +.I charmapfile
> +contains a slash character ('/'), it is directly the name of the 
> +character map.  Otherwise, the file is searched from the local directory 
> +and the default directory.  If the environment variable
> +.B I18NPATH
> +is set, 
> +.B I18NPATH/charmaps/

I think it would be better to write $I18NPATH in the preceding line.

> +and
> +.B I18NPATH/
> +are also searched after the local directory.  This default directory is 

It is unclear to me what "This default directory" is. I think
some more explanation is needed here.

> +printed by
> +.BR "localedef \-\-help" .
> +.TP
> +.BI \-i " inputfile" ", \-\-inputfile=" inputfile
> +Specify the locale definition file to compile.  The file is searched 
> +from the local directory and the default directory.  If the environment 
> +variable
> +.B I18NPATH
> +is set, 
> +.B I18NPATH/locales/
> +and
> +.B I18NPATH
> +are also searched after the local directory.  This default directory is 
> +printed by
> +.BR "localedef \-\-help" .
> +.TP
> +.BI \-u " repertoirefile" ", \-\-repertoire-map=" repertoirefile
> +Read mappings from symbolic names to Unicode UCS4 values from
> +.IR repertoirefile .
> +If
> +.I repertoirefile
> +contains a slash character ('/'), it is directly the name of the 
> +repertoire map.  Otherwise, the file is searched from the local 
> +directory and the default directory.  If the environment variable
> +.B I18NPATH
> +is set, 
> +.B I18NPATH/repertoiremaps/

I think it would be better to write $I18NPATH in the preceding line.

> +and
> +.B I18NPATH

I think it would be better to write $I18NPATH in the preceding line.

> +are also searched after the local directory.  This default directory is 
> +printed by
> +.BR "localedef \-\-help" .
> +.TP
> +.BI \-A " aliasfile" ", \-\-alias\-file=" aliasfile
> +Use 
> +.I aliasfile
> +to look up aliases for locale names.
> +There is no default aliases file.
> +.TP
> +.BI \-\-prefix= pathname
> +Set prefix to be prepended to the full archive pathname.
> +By default, the prefix is empty.
> +Setting the prefix to 
> +.IR foo ,
> +the archive would be placed in
> +.BR foo/usr/lib/locale/locale-archive .

s/BR/IR/

> +.TP
> +.B "\-c, \-\-force"
> +Write the output files even if warnings were generated about the input
> +file.
> +.TP
> +.B \-\-old\-style
> +Create old-style hash tables instead of 3-level access tables.
> +.TP
> +.B "\-v, \-\-verbose"
> +Generate extra warnings about errors that are normally ignored.
> +.TP
> +.B \-\-quiet
> +Suppress all notifications and warnings, and report only fatal errors.
> +.TP
> +.B \-\-posix
> +Conform strictly to POSIX.  Implies
> +.BR \-\-verbose .
> +This option currently has no other effect.  POSIX conformance is
> +assumed if the environment variable
> +.B POSIXLY_CORRECT
> +is set.
> +.TP
> +.B \-\-replace
> +Replace a locale in the locale archive file.
> +Without this option, if the locale is in the archive file already,
> +an error occurs.
> +.TP
> +.B \-\-no\-archive
> +Do not use the locale archive file, instead create 
> +.I outputpath
> +as a subdirectory in the same directory as the locale archive file,
> +and create separate output files for locale categories in it.
> +.TP
> +.B "\-\-help"
> +Print a usage summary and exit.  Also prints the default paths used by
> +.BR localedef .
> +.TP
> +.B "\-\-usage"
> +Print a short usage summary and exit.
> +.TP
> +.B "\-V, \-\-version"
> +Print the version number, license, and disclaimer of warranty for
> +.BR localedef .
> +.SH ENVIRONMENT
> +.TP
> +.B POSIXLY_CORRECT
> +The
> +.B \-\-posix
> +flag is assumed if this environment variable is set.
> +.TP
> +.B I18NPATH
> +A colon separated list of search directories for files.

s/colon separated/colon-separated/

> +.SH FILES
> +.TP
> +.B /usr/share/i18n/charmaps

Please format all of the file pathnames as just

.I pathname...

> +Usual default charmap path.
> +.TP
> +.B /usr/share/i18n/locales
> +Usual default path for locale source files.
> +.TP
> +.B /usr/share/i18n/repertoiremaps
> +Usual default repertoire map path.
> +.TP
> +.B /usr/lib/locale/locale-archive
> +Usual default locale archive location.
> +.TP
> +.IB outputpath/ LC_ADDRESS
> +One of the output files.  It contains information about formatting

I'd change each line like this to something like:

    An output file that contains...

> +of addresses and geography-related items.
> +.TP
> +.IB outputpath/ LC_COLLATE
> +One of the output files.  It contains information about the rules
> +for comparing strings.
> +.TP
> +.IB outputpath/ LC_CTYPE
> +One of the output files.  It contains information about character
> +classes.
> +.TP
> +.IB outputpath/ LC_IDENTIFICATION
> +One of the output files.  It contains metadata about the locale.
> +.TP
> +.IB outputpath/ LC_MEASUREMENT
> +One of the output files.  It contains information about locale
> +measurements (metric versus US customary).
> +.TP
> +.IB outputpath/ LC_MESSAGES/SYS_LC_MESSAGES
> +One of the output files.  It contains information about the language
> +messages should be printed in, and what an affirmative or negative
> +answer looks like.
> +.TP
> +.IB outputpath/ LC_MONETARY
> +One of the output files.  It contains information about formatting
> +of monetary values.
> +.TP
> +.IB outputpath/ LC_NAME
> +One of the output files.  It contains information about salutations
> +for persons.
> +.TP
> +.IB outputpath/ LC_NUMERIC
> +One of the output files.  It contains information about formatting
> +of nonmonetary numeric values.
> +.TP
> +.IB outputpath/ LC_PAPER
> +One of the output files.  It contains information about settings
> +related to standard paper size.
> +.TP
> +.IB outputpath/ LC_TELEPHONE
> +One of the output files.  It contains information about formats
> +to be used with telephone services.
> +.TP
> +.IB outputpath/ LC_TIME
> +One of the output files.  It contains information about formatting
> +of data and time values.
> +.SH EXAMPLES

s/EXAMPLES/EXAMPLE/

> +Compile the locale files for Finnish in the UTF\-8 character set
> +and add it to the default locale archive with the name 
> +.BR fi_FI.UTF\-8 :
> +.PP
> +.RS
> +localedef \-f UTF\-8 \-i fi_FI fi_FI.UTF\-8
> +.RE
> +.PP
> +The same, but generate files into the 
   ^^^^^^^^

Incomplete phrase. Please explain this more fully. For example,
something like:

    Th next ext example does the same thing, but...

> +.B fi_FI.UTF\-8
> +directory which can then be used by programs when the environment
> +variable
> +.B LOCPATH
> +is set to the current directory (note that the last argument must 
> +contain a slash):
> +.PP
> +.RS
> +localedef \-f UTF\-8 \-i fi_FI ./fi_FI.UTF\-8
> +.RE
> +.SH "SEE ALSO"
> +.BR locale "(5), " locale "(7), " locale (1)

Please place separate entries on separate lines. Also, SEE ALSO 
entries are order by two keys: section number, then alphabetically.
So, here:

.BR locale (1),
.BR locale (5),
.BR locale (7)

> +.SH AUTHOR

As a policy, man-pages doesn't have AUTHOR sections. (I am the one
that loses the most publicity a a result of this policy ;-).)

The following sentence isn't needed.

> +The program was written by Ulrich Drepper.

The info below could go into comments at the top, or otherwise 
into the commit log message.

> +.PP
> +This manual page was written by Richard Braakman <dark@xxxxxxxxx> on
> +behalf of the Debian GNU/Linux Project and anyone else who wants it.
> +It was amended by Alastair McKinstry <mckinstry@xxxxxxxxxxxx> to 
> +explain new ISO 14652 elements,
> +and amended further by Lars Wirzenius <liw@xxxxxx> to document new
> +functionality (as of GNU C library 2.3.5).

The next sentence is not needed.

> +The manpage is not supported by the GNU libc maintainers.

> +.SH STANDARDS

This heading should be "CONFORMING TO"

> +This program conforms to the POSIX standard P1003.2.

That's a very old standard ;-). Does localedef(1) conform to 
POSIX.1-2008? If so, it would be better to write that instead.


Please see man-pages(7). Sections should be ordered as:

            SYNOPSIS
            CONFIGURATION      [Normally only in Section 4]
            DESCRIPTION
            OPTIONS            [Normally only in Sections 1, 8]
            EXIT STATUS        [Normally only in Sections 1, 8]
            RETURN VALUE       [Normally only in Sections 2, 3]
            ERRORS             [Typically only in Sections 2, 3]
            ENVIRONMENT
            FILES
            ATTRIBUTES         [Normally only in Sections 2, 3]
            VERSIONS           [Normally only in Sections 2, 3]
            CONFORMING TO
            NOTES
            BUGS
            EXAMPLE
            SEE ALSO

Cheers,

Michael

-- 
Michael Kerrisk
Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/
Linux/UNIX System Programming Training: http://man7.org/training/
--
To unsubscribe from this list: send the line "unsubscribe linux-man" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Kernel Documentation]     [Netdev]     [Linux Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux