[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [patch] improved version information
From: |
Akim Demaille |
Subject: |
Re: [patch] improved version information |
Date: |
04 Apr 2001 17:37:43 +0200 |
User-agent: |
Gnus/5.0808 (Gnus v5.8.8) XEmacs/21.1 (Cuyahoga Valley) |
| Lars J. Aas writes:
| > $ head config.log
| > This file contains any messages produced by compilers while
| > running configure, to aid debugging if configure makes a mistake.
| >
| > It was created by GNU Autoconf configure 2.49e, which was
| GNU Autoconf 2.49e configure,
Yeah.
BUt really, I can't understand all this fuss about this. I find the
current solution to be excellent and conform to the GNU std. I'm just
tired of debating of such micro details, hence my `yes'. But frankly,
I find that
Bison 1.28a configure, by GNU Autoconf 2.49e
is not as good as what it used to be before
configure (Bison 1.28a) 2.49e
(or configure 2.49e (Bison 1.28a))
We are going backwards again and against some well established
conventions (yes, again, the GNU std are underspecifying).
I _regret_ we changed this. We are breaking what other people already
did, e.g.,
src/ace/doc % texi2dvi --version nostromo 17:30
texi2dvi (GNU Texinfo 4.0) 0.43
Copyright (C) 1999 Free Software Foundation, Inc.
There is NO warranty. You may redistribute this software
under the terms of the GNU General Public License.
For more information about these matters, see the files named COPYING.
src/ace/doc % card --version nostromo 17:33
card 1.3 (GNU a2ps 4.13)
Written by Akim Demaille.
Copyright (c) 1997-99 Akim Demaille, Miguel Santana
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
The Gnits std also include
Output of `--version'
The `--version' output is meant not only to give the program name, but
to give a precise reference to where the actual sources for the
program can be found. One asset of GNU is that all sources are
available. It should never be difficult to discover and grab the
proper sources for any given executable program or script.
A few maintenance scripts may depend of a rather precise format for
`--version' output, which is now detailed. The output should consist
of only one line containing many fields separated with a single
space. From left to right, these fields are:
The program name, at least when it is different from the package
name, or when specific program version numbers follow. When a
single package distributes many programs, the program name is
always given.
The program version numbers, but only if they differ from the
version numbers of the whole package. This happens, rather
unfrequently, when a single package distributes programs which
are maintained by different people, each using his own version
scheme (e.g. the Texinfo distribution).
A single dash `-' character, surrounded by one space on each
side, of course. This string is used in case both the program
name and the package name are given. When only the package and
package version numbers are given, it is assumed that the
program name is identical to the package name, and that program
version numbers are the same as the package version numbers. In
this case, this single dash is omitted.
The optional word `GNU', all in capitals.
The mandatory package name.
The mandatory version numbers for the package name.
If package is the package name and version are the package version
numbers, then `package-version.tar.gz' should be the exact name of the
archive file containing the distribution, exact even to the
capitalization.
Here are some examples:
cat - GNU textutils 1.19c
msgfmt - GNU gettext 0.10.24
GNU recode 3.4.2
We use `-' instead of words like `from', and avoid using the word
`version' between names and numbers, in hope to escape the need of
internationalising `--version' output.
and finally the GNU std
`--version'
This option should direct the program to print information about
its name, version, origin and legal status, all on standard
output, and then exit successfully. Other options and arguments
should be ignored once this is seen, and the program should not
perform its normal function.
The first line is meant to be easy for a program to parse; the
version number proper starts after the last space. In addition,
it contains the canonical name for this program, in this format:
GNU Emacs 19.30
The program's name should be a constant string; _don't_ compute it
from `argv[0]'. The idea is to state the standard or canonical
name for the program, not its file name. There are other ways to
find out the precise file name where a command is found in `PATH'.
If the program is a subsidiary part of a larger package, mention
the package name in parentheses, like this:
=====> emacsserver (GNU Emacs) 19.30
If the package has a version number which is different from this
program's version number, you can mention the package version
number just before the close-parenthesis.
If you *need* to mention the version numbers of libraries which
are distributed separately from the package which contains this
program, you can do so by printing an additional line of version
info for each library you want to mention. Use the same format
for these lines as for the first line.
Please do not mention all of the libraries that the program uses
"just for completeness"--that would produce a lot of unhelpful
clutter. Please mention library version numbers only if you find
in practice that they are very important to you in debugging.
The following line, after the version number line or lines, should
be a copyright notice. If more than one copyright notice is
called for, put each on a separate line.
Next should follow a brief statement that the program is free
software, and that users are free to copy and change it on certain
conditions. If the program is covered by the GNU GPL, say so
here. Also mention that there is no warranty, to the extent
permitted by law.
It is ok to finish the output with a list of the major authors of
the program, as a way of giving credit.
Here's an example of output that follows these rules:
GNU Emacs 19.34.5
Copyright (C) 1996 Free Software Foundation, Inc.
GNU Emacs comes with NO WARRANTY,
to the extent permitted by law.
You may redistribute copies of GNU Emacs
under the terms of the GNU General Public License.
For more information about these matters,
see the files named COPYING.
You should adapt this to your program, of course, filling in the
proper year, copyright holder, name of program, and the references
to distribution terms, and changing the rest of the wording as
necessary.
This copyright notice only needs to mention the most recent year in
which changes were made--there's no need to list the years for
previous versions' changes. You don't have to mention the name of
the program in these notices, if that is inconvenient, since it
appeared in the first line.
So, really, I'm very unhappy. But if this is needed to release 2.50, then...
- [patch] improved version information, Lars J. Aas, 2001/04/04
- Re: [patch] improved version information, Lars J. Aas, 2001/04/04
- Re: [patch] improved version information, Akim Demaille, 2001/04/04
- Re: [patch] improved version information, Lars J. Aas, 2001/04/04
- Re: [patch] improved version information, Akim Demaille, 2001/04/04
- Re: [patch] improved version information, Lars J. Aas, 2001/04/04
- Re: [patch] improved version information, Akim Demaille, 2001/04/04
- Re: [patch] improved version information, Lars J. Aas, 2001/04/04
- Re: [patch] improved version information, Peter Eisentraut, 2001/04/04