mirror of
https://git.savannah.gnu.org/git/gnulib.git
synced 2026-10-24 00:48:56 +03:00
105 lines
3.3 KiB
Plaintext
105 lines
3.3 KiB
Plaintext
@node Printing --version and bug-reporting information
|
|
@section Printing --version and bug-reporting information
|
|
|
|
@c Copyright (C) 2025--2026 Free Software Foundation, Inc.
|
|
|
|
@c Permission is granted to copy, distribute and/or modify this document
|
|
@c under the terms of the GNU Free Documentation License, Version 1.3 or
|
|
@c any later version published by the Free Software Foundation; with no
|
|
@c Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A
|
|
@c copy of the license is at <https://www.gnu.org/licenses/fdl-1.3.en.html>.
|
|
|
|
@c Written by Collin Funk
|
|
|
|
Gnulib provides a few modules for printing @code{--version} and
|
|
bug-reporting information according to the GNU Coding Standards; see
|
|
@ifinfo
|
|
@ref{--version,,,standards}.
|
|
@end ifinfo
|
|
@ifnotinfo
|
|
@url{https://www.gnu.org/prep/standards/html_node/_002d_002dversion.html#g_t_002d_002dversion}
|
|
@end ifnotinfo
|
|
|
|
@mindex version-etc
|
|
The @samp{version-etc} module defines functions used to emit
|
|
@code{--version} and bug-reporting input in a standard way. The module
|
|
expects the string @code{version_etc_copyright} to be defined to display
|
|
the copyright holder along with the package release year. The
|
|
@code{version_etc} function can then be used like so:
|
|
|
|
@smallexample
|
|
|
|
const char version_etc_copyright[] = "Copyright %s %d copyright-holder";
|
|
|
|
int
|
|
main (void)
|
|
@{
|
|
version_etc (stdout, "my-program", "my-package", "1.0",
|
|
"author1", "author2", (const char *) NULL);
|
|
return 0;
|
|
@}
|
|
@end smallexample
|
|
|
|
The above example generates the following output:
|
|
|
|
@smallexample
|
|
my-program (my-package) 1.0
|
|
Copyright (C) 2025 copyright-holder
|
|
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
|
|
This is free software: you are free to change and redistribute it.
|
|
There is NO WARRANTY, to the extent permitted by law.
|
|
|
|
Written by author1 and author2.
|
|
@end smallexample
|
|
|
|
The @samp{version-etc} module also defines the function
|
|
@code{emit_bug_reporting_address} which emits the bug-reporting location
|
|
based on arguments passed to @code{AC_INIT}. For example, using the
|
|
following in @file{configure.ac}:
|
|
|
|
@smallexample
|
|
AC_INIT([gnulib], [0.0], [bug-gnulib@@gnu.org], [gnulib],
|
|
[https://www.gnu.org/software/gnulib/])
|
|
@end smallexample
|
|
|
|
And the following program:
|
|
|
|
@smallexample
|
|
#include <config.h>
|
|
|
|
#include "version-etc.h"
|
|
|
|
int
|
|
main (void)
|
|
@{
|
|
emit_bug_reporting_address ();
|
|
return 0;
|
|
@}
|
|
@end smallexample
|
|
|
|
Will output:
|
|
|
|
@smallexample
|
|
Report bugs to: bug-gnulib@@gnu.org
|
|
gnulib home page: <https://www.gnu.org/software/gnulib/>
|
|
General help using GNU software: <https://www.gnu.org/gethelp/>
|
|
@end smallexample
|
|
|
|
@mindex version-etc-fsf
|
|
The @samp{version-etc-fsf} module defines and links to the variable
|
|
@code{version_etc_copyright} containing copyright information for Free
|
|
Software Foundation. This module should be used by programs which are
|
|
FSF-copyrighted and use the @samp{version-etc} module.
|
|
|
|
@mindex argp-version-etc
|
|
The @samp{argp-version-etc} defines the @code{argp_version_setup}
|
|
function takes the program name and authors as arguments. This function
|
|
should be called before @code{argp_parse} since it modifies argp global
|
|
variables; see
|
|
@ifinfo
|
|
@ref{Argp Global Variables,,Argp Global Variables,libc}.
|
|
@end ifinfo
|
|
@ifnotinfo
|
|
@url{https://www.gnu.org/software/libc/manual/html_node/Argp-Global-Variables.html}.
|
|
@end ifnotinfo
|