From 8b748aed2a9ab4b964faa5722f7a182a060e475c Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Fri, 9 Nov 2012 22:13:45 +0000 Subject: [PATCH] Support --with-pkgversion and --with-bugurl. --- ChangeLog | 94 ++++++++++++++++++++++++++++++ INSTALL | 23 ++++++-- Makefile | 13 +++-- aclocal.m4 | 48 +++++++++++++++ catgets/gencat.c | 9 ++- config.h.in | 6 ++ config.make.in | 6 ++ configure | 66 +++++++++++++++++++++ configure.in | 7 +++ csu/version.c | 4 +- debug/Makefile | 8 ++- debug/catchsegv.sh | 8 ++- debug/pcprofiledump.c | 11 ++-- debug/xtrace.sh | 7 +-- elf/Makefile | 9 ++- elf/dl-close.c | 2 +- elf/ldconfig.c | 9 ++- elf/ldd.bash.in | 7 +-- elf/pldd.c | 30 ++++++++-- elf/sln.c | 6 +- elf/sotruss.ksh | 7 +-- elf/sprof.c | 9 ++- iconv/iconv_prog.c | 9 ++- iconv/iconvconfig.c | 9 ++- locale/programs/locale.c | 9 ++- locale/programs/localedef.c | 16 +++-- login/programs/pt_chown.c | 17 ++++-- malloc/Makefile | 8 ++- malloc/memusage.sh | 7 +-- malloc/memusagestat.c | 15 ++--- malloc/mtrace.pl | 7 ++- manual/Makefile | 16 ++++- manual/install.texi | 19 +++++- manual/libc.texinfo | 17 +++++- nscd/nscd.c | 9 ++- nss/getent.c | 6 +- nss/makedb.c | 9 ++- posix/getconf.c | 6 +- sunrpc/proto.h | 3 - sunrpc/rpc_main.c | 6 +- sunrpc/rpcinfo.c | 6 +- sysdeps/unix/sysv/linux/lddlibc4.c | 6 +- 42 files changed, 470 insertions(+), 119 deletions(-) diff --git a/ChangeLog b/ChangeLog index 52bf3911e6..011e854ad6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,99 @@ 2012-11-09 Joseph Myers + * aclocal.m4 (ACX_PKGVERSION): New macro. + (ACX_BUGURL): Likewise. + * configure.in: Use ACX_PKGVERSION and ACX_BUGURL. + (PKGVERSION): New AC_DEFINE_UNQUOTED. + (REPORT_BUGS_TO): Likewise. + * configure: Regenerated. + * config.h.in (PKGVERSION): New macro. + (REPORT_BUGS_TO): Likewise. + * config.make.in (PKGVERSION): New variable. + (PKGVERSION_TEXI): Likewise. + (REPORT_BUGS_TO): Likewise. + (REPORT_BUGS_TEXI): Likewise. + * Makefile (format-me): Use -I$(common-objpfx)manual. + (INSTALL): Depend on $(common-objpfx)manual/pkgvers.texi. + ($(common-objpfx)manual/%): New target. + (manual/%): Remove target. + * catgets/gencat.c (more_help): Use REPORT_BUGS_TO. + (print_version): Use PKGVERSION. + * csu/version.c (banner): Use PKGVERSION and REPORT_BUGS_TO. + * debug/Makefile ($(objpfx)catchsegv): Also substitute PKGVERSION + and REPORT_BUGS_TO. + ($(objpfx)xtrace): Likewise. + * debug/catchsegv.sh: Use PKGVERSION and REPORT_BUGS_TO. + * debug/pcprofiledump.c (more_help): Use REPORT_BUGS_TO. + (print_version): Use PKGVERSION. + * debug/xtrace.sh (do_help): Use REPORT_BUGS_TO. + (do_version): Use PKGVERSION. + * elf/Makefile ($(objpfx)sotruss): Also substitute PKGVERSION and + REPORT_BUGS_TO. + (common-ldd-rewrite): Likewise. + * elf/dl-close.c (_dl_close_worker): Use REPORT_BUGS_TO. + * elf/ldconfig.c (more_help): Use REPORT_BUGS_TO. + (print_version): Use PKGVERSION. + * elf/ldd.bash.in: Use PKGVERSION and REPORT_BUGS_TO. + * elf/pldd.c (argp_program_bug_address): Remove variable. + (more_help): New function. + (argp): Use more_help. + (print_version): Use PKGVERSION. + * elf/sln.c (main): Use PKGVERSION. + (usage): Use REPORT_BUGS_TO. + * elf/sotruss.ksh (do_help): Use REPORT_BUGS_TO. + (top level): Use PKGVERSION. + * elf/sprof.c (more_help): Use REPORT_BUGS_TO. + (print_version): Use PKGVERSION. + * iconv/iconv_prog.c (more_help): Use REPORT_BUGS_TO. + (print_version): Use PKGVERSION. + * iconv/iconvconfig.c (more_help): Use REPORT_BUGS_TO. + (print_version): Use PKGVERSION. + * locale/programs/locale.c (more_help): Use REPORT_BUGS_TO. + (print_version): Use PKGVERSION. + * locale/programs/localedef.c (more_help): Use REPORT_BUGS_TO. + (print_version): Use PKGVERSION. + * login/programs/pt_chown.c (more_help): Use REPORT_BUGS_TO. + (print_version): Use PKGVERSION. + * malloc/Makefile ($(objpfx)mtrace): Also substitute PKGVERSION + and BUGURL. + ($(objpfx)memusage): Likewise. + * malloc/memusage.sh (do_help): Use REPORT_BUGS_TO. + (do_version): Use PKGVERSION. + * malloc/memusagestat.c (more_help): Use REPORT_BUGS_TO. + (print_version): Use PKGVERSION. + * malloc/mtrace.pl ($PACKAGE): Remove variable. + ($PKGVERSION): New variable. + ($REPORT_BUGS_TO): Likewise. + (usage): Use $REPORT_BUGS_TO. + (top level): Use $PKGVERSION. + * manual/Makefile (libc-texi-generated): Add pkgvers.texi. + ($(objpfx)pkgvers.texi): New rule. + ($(objpfx)stamp-pkgvers): Likewise. + * manual/install.texi: Include pkgvers.texi. + (--with-pkgversion): Document new configure option. + (--with-bugurl): Likewise. + (Reporting Bugs): Describe Bugzilla as upstream tracker rather + than necessarily for this particular distribution. Use + REPORT_BUGS_TO for where to report bugs. + * INSTALL: Regenerated. + * manual/libc.texinfo: Include pkgvers.texi. + [!PKGVERSION_DEFAULT]: Include PKGVERSION in version information. + * nscd/nscd.c (more_help): Use REPORT_BUGS_TO. + (print_version): Use PKGVERSION. + * nss/getent.c (more_help): Use REPORT_BUGS_TO. + (print_version): Use PKGVERSION. + * nss/makedb.c (more_help): Use REPORT_BUGS_TO. + (print_version): Use PKGVERSION. + * posix/getconf.c (main): Use PKGVERSION and REPORT_BUGS_TO. + * sunrpc/proto.h [IS_IN_build] (_libc_intl_domainname): Remove + macro. + * sunrpc/rpc_main.c (options_usage): Use REPORT_BUGS_TO. + (print_version): Use PKGVERSION. + * sunrpc/rpcinfo.c (usage): Use REPORT_BUGS_TO. + (print_version): Use PKGVERSION. + * sysdeps/unix/sysv/linux/lddlibc4.c (main): Use REPORT_BUGS_TO + and PKGVERSION. + * timezone/checktab.awk: Update from tzcode 2012i. * timezone/ialloc.c: Likewise. * timezone/private.h: Likewise. diff --git a/INSTALL b/INSTALL index d70019883a..9a0166b602 100644 --- a/INSTALL +++ b/INSTALL @@ -148,6 +148,19 @@ will be used, and CFLAGS sets optimization options for the compiler. If you specify just `--build', `configure' will get confused. +`--with-pkgversion=VERSION' + Specify a description, possibly including a build number or build + date, of the binaries being built, to be included in `--version' + output from programs installed with the GNU C Library. For + example, `--with-pkgversion='FooBar GNU/Linux glibc build 123''. + The default value is `GNU libc'. + +`--with-bugurl=URL' + Specify the URL that users should visit if they wish to report a + bug, to be included in `--help' output from programs installed with + the GNU C Library. The default value refers to the main + bug-reporting information for the GNU C Library. + To build the library and related programs, type `make'. This will produce a lot of output, some of which may look like errors from `make' but isn't. Look for error messages from `make' containing `***'. @@ -404,10 +417,10 @@ remain unfixed for all eternity, if not longer. It is a good idea to verify that the problem has not already been reported. Bugs are documented in two places: The file `BUGS' describes -a number of well known bugs and the bug tracking system has a WWW -interface at `http://sourceware.org/bugzilla/'. The WWW interface -gives you access to open and closed reports. A closed report normally -includes a patch or a hint on solving the problem. +a number of well known bugs and the central GNU C Library bug tracking +system has a WWW interface at `http://sourceware.org/bugzilla/'. The +WWW interface gives you access to open and closed reports. A closed +report normally includes a patch or a hint on solving the problem. To report a bug, first you must find it. With any luck, this will be the hard part. Once you've found a bug, make sure it's really a @@ -428,7 +441,7 @@ library, you really only need to narrow it down to one library function call, if possible. This should not be too difficult. The final step when you have a simple test case is to report the bug. -Do this using the WWW interface to the bug database. +Do this at `http://www.gnu.org/software/libc/bugs.html'. If you are not sure how a function should behave, and this manual doesn't tell you, that's a bug in the manual. Report that too! If the diff --git a/Makefile b/Makefile index 5617acce9e..78aaeb4d79 100644 --- a/Makefile +++ b/Makefile @@ -399,15 +399,18 @@ endif define format-me @rm -f $@ -makeinfo --no-validate --plaintext --no-number-sections $< -o $@ +makeinfo --no-validate --plaintext --no-number-sections \ + -I$(common-objpfx)manual $< -o $@ -chmod a-w $@ endef -INSTALL: manual/install.texi manual/macros.texi; $(format-me) -manual/dir-add.texi manual/dir-add.info: FORCE - $(MAKE) $(PARALLELMFLAGS) -C $(@D) $(@F) +INSTALL: manual/install.texi manual/macros.texi \ + $(common-objpfx)manual/pkgvers.texi + $(format-me) +$(common-objpfx)manual/%: FORCE + $(MAKE) $(PARALLELMFLAGS) -C manual $@ FORCE: -iconvdata/% localedata/% po/% manual/%: FORCE +iconvdata/% localedata/% po/%: FORCE $(MAKE) $(PARALLELMFLAGS) -C $(@D) $(@F) # glibc 2.0 contains some header files which aren't used with glibc 2.1 diff --git a/aclocal.m4 b/aclocal.m4 index 3e61dc83f3..b173e9e339 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -165,3 +165,51 @@ then done AC_MSG_RESULT() fi]) + +# These two macros are taken from GCC's config/acx.m4. +dnl Support the --with-pkgversion configure option. +dnl ACX_PKGVERSION(default-pkgversion) +AC_DEFUN([ACX_PKGVERSION],[ + AC_ARG_WITH(pkgversion, + AS_HELP_STRING([--with-pkgversion=PKG], + [Use PKG in the version string in place of "$1"]), + [case "$withval" in + yes) AC_MSG_ERROR([package version not specified]) ;; + no) PKGVERSION= ;; + *) PKGVERSION="($withval) " ;; + esac], + PKGVERSION="($1) " + ) + PKGVERSION_TEXI=`echo "$PKGVERSION" | sed 's/@/@@/g'` + AC_SUBST(PKGVERSION) + AC_SUBST(PKGVERSION_TEXI) +]) + +dnl Support the --with-bugurl configure option. +dnl ACX_BUGURL(default-bugurl) +AC_DEFUN([ACX_BUGURL],[ + AC_ARG_WITH(bugurl, + AS_HELP_STRING([--with-bugurl=URL], + [Direct users to URL to report a bug]), + [case "$withval" in + yes) AC_MSG_ERROR([bug URL not specified]) ;; + no) BUGURL= + ;; + *) BUGURL="$withval" + ;; + esac], + BUGURL="$1" + ) + case ${BUGURL} in + "") + REPORT_BUGS_TO= + REPORT_BUGS_TEXI= + ;; + *) + REPORT_BUGS_TO="<$BUGURL>" + REPORT_BUGS_TEXI=@uref{`echo "$BUGURL" | sed 's/@/@@/g'`} + ;; + esac; + AC_SUBST(REPORT_BUGS_TO) + AC_SUBST(REPORT_BUGS_TEXI) +]) diff --git a/catgets/gencat.c b/catgets/gencat.c index 26bb91d5d7..5078e3c828 100644 --- a/catgets/gencat.c +++ b/catgets/gencat.c @@ -227,13 +227,16 @@ parse_opt (int key, char *arg, struct argp_state *state) static char * more_help (int key, const char *text, void *input) { + char *tp = NULL; switch (key) { case ARGP_KEY_HELP_EXTRA: /* We print some extra information. */ - return strdup (gettext ("\ + if (asprintf (&tp, gettext ("\ For bug reporting instructions, please see:\n\ -.\n")); +%s.\n"), REPORT_BUGS_TO) < 0) + return NULL; + return tp; default: break; } @@ -244,7 +247,7 @@ For bug reporting instructions, please see:\n\ static void print_version (FILE *stream, struct argp_state *state) { - fprintf (stream, "gencat (GNU %s) %s\n", PACKAGE, VERSION); + fprintf (stream, "gencat %s%s\n", PKGVERSION, VERSION); fprintf (stream, gettext ("\ Copyright (C) %s Free Software Foundation, Inc.\n\ This is free software; see the source for copying conditions. There is NO\n\ diff --git a/config.h.in b/config.h.in index 653df54e56..f3fe6b88be 100644 --- a/config.h.in +++ b/config.h.in @@ -161,6 +161,12 @@ /* Define if __stack_chk_guard canary should be randomized at program startup. */ #undef ENABLE_STACKGUARD_RANDOMIZE +/* Package description. */ +#undef PKGVERSION + +/* Bug reporting address. */ +#undef REPORT_BUGS_TO + /* Define if multi-arch DSOs should be generated. */ #undef USE_MULTIARCH diff --git a/config.make.in b/config.make.in index c22acf4a10..7f1bbb51d5 100644 --- a/config.make.in +++ b/config.make.in @@ -139,4 +139,10 @@ PERL = @PERL@ # Additional libraries. LIBGD = @LIBGD@ +# Package versions and bug reporting configuration. +PKGVERSION = @PKGVERSION@ +PKGVERSION_TEXI = @PKGVERSION_TEXI@ +REPORT_BUGS_TO = @REPORT_BUGS_TO@ +REPORT_BUGS_TEXI = @REPORT_BUGS_TEXI@ + # More variables may be inserted below by configure. diff --git a/configure b/configure index 35b06c1473..980f25fffe 100755 --- a/configure +++ b/configure @@ -685,6 +685,10 @@ build_vendor build_cpu build subdirs +REPORT_BUGS_TEXI +REPORT_BUGS_TO +PKGVERSION_TEXI +PKGVERSION target_alias host_alias build_alias @@ -726,6 +730,8 @@ SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking +with_pkgversion +with_bugurl with_gd with_gd_include with_gd_lib @@ -1417,6 +1423,8 @@ Optional Features: Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --with-pkgversion=PKG Use PKG in the version string in place of "GNU libc" + --with-bugurl=URL Direct users to URL to report a bug --with-gd=DIR find libgd include dir and library with prefix DIR --with-gd-include=DIR find libgd include files in DIR --with-gd-lib=DIR find libgd library files in DIR @@ -2285,6 +2293,64 @@ ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. + + +# Check whether --with-pkgversion was given. +if test "${with_pkgversion+set}" = set; then : + withval=$with_pkgversion; case "$withval" in + yes) as_fn_error $? "package version not specified" "$LINENO" 5 ;; + no) PKGVERSION= ;; + *) PKGVERSION="($withval) " ;; + esac +else + PKGVERSION="(GNU libc) " + +fi + + PKGVERSION_TEXI=`echo "$PKGVERSION" | sed 's/@/@@/g'` + + + + + +# Check whether --with-bugurl was given. +if test "${with_bugurl+set}" = set; then : + withval=$with_bugurl; case "$withval" in + yes) as_fn_error $? "bug URL not specified" "$LINENO" 5 ;; + no) BUGURL= + ;; + *) BUGURL="$withval" + ;; + esac +else + BUGURL="http://www.gnu.org/software/libc/bugs.html" + +fi + + case ${BUGURL} in + "") + REPORT_BUGS_TO= + REPORT_BUGS_TEXI= + ;; + *) + REPORT_BUGS_TO="<$BUGURL>" + REPORT_BUGS_TEXI=@uref{`echo "$BUGURL" | sed 's/@/@@/g'`} + ;; + esac; + + + + +cat >>confdefs.h <<_ACEOF +#define PKGVERSION "$PKGVERSION" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define REPORT_BUGS_TO "$REPORT_BUGS_TO" +_ACEOF + + # Glibc should not depend on any header files diff --git a/configure.in b/configure.in index 5e35b98613..7c059039a6 100644 --- a/configure.in +++ b/configure.in @@ -5,6 +5,13 @@ AC_CONFIG_SRCDIR([include/features.h]) AC_CONFIG_HEADERS([config.h]) AC_CONFIG_AUX_DIR([scripts]) +ACX_PKGVERSION([GNU libc]) +ACX_BUGURL([http://www.gnu.org/software/libc/bugs.html]) +AC_DEFINE_UNQUOTED([PKGVERSION], ["$PKGVERSION"], + [Package description]) +AC_DEFINE_UNQUOTED([REPORT_BUGS_TO], ["$REPORT_BUGS_TO"], + [Bug reporting address]) + # Glibc should not depend on any header files AC_DEFUN([_AC_INCLUDES_DEFAULT_REQUIREMENTS], [m4_divert_text([DEFAULTS], diff --git a/csu/version.c b/csu/version.c index 78039388e2..9fe9fef8c0 100644 --- a/csu/version.c +++ b/csu/version.c @@ -24,7 +24,7 @@ static const char __libc_release[] = RELEASE; static const char __libc_version[] = VERSION; static const char banner[] = -"GNU C Library "RELEASE" release version "VERSION", by Roland McGrath et al.\n\ +"GNU C Library "PKGVERSION RELEASE" release version "VERSION", by Roland McGrath et al.\n\ Copyright (C) 2012 Free Software Foundation, Inc.\n\ This is free software; see the source for copying conditions.\n\ There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A\n\ @@ -38,7 +38,7 @@ LIBC_ABIS_STRING "The oldest ABI supported: " GLIBC_OLDEST_ABI ".\n" #endif "For bug reporting instructions, please see:\n\ -.\n"; +"REPORT_BUGS_TO".\n"; #include diff --git a/debug/Makefile b/debug/Makefile index 04dd79981a..0d0e002c9a 100644 --- a/debug/Makefile +++ b/debug/Makefile @@ -156,7 +156,9 @@ sLIBdir := $(shell echo $(slibdir) | sed 's,lib\(\|64\)$$,\\\\$$LIB,') $(objpfx)catchsegv: catchsegv.sh $(common-objpfx)soversions.mk \ $(common-objpfx)config.make slibpfx=`echo $(slibdir)|sed 's/lib\(64\|\)$$/\\\\\\\\$$LIB/'`; \ - sed -e 's|@VERSION@|$(version)|' -e "s|@SLIB@|$$slibpfx|" $< > $@.new + sed -e 's|@VERSION@|$(version)|' -e "s|@SLIB@|$$slibpfx|" \ + -e 's|@PKGVERSION@|$(PKGVERSION)|' \ + -e 's|@REPORT_BUGS_TO@|$(REPORT_BUGS_TO)|' $< > $@.new chmod 555 $@.new mv -f $@.new $@ @@ -165,7 +167,9 @@ $(objpfx)pcprofiledump: $(objpfx)pcprofiledump.o $(objpfx)xtrace: xtrace.sh rm -f $@.new sed -e 's|@BASH@|$(BASH)|' -e 's|@VERSION@|$(version)|' \ - -e 's|@SLIBDIR@|$(sLIBdir)|' -e 's|@BINDIR@|$(bindir)|' $^ > $@.new \ + -e 's|@SLIBDIR@|$(sLIBdir)|' -e 's|@BINDIR@|$(bindir)|' \ + -e 's|@PKGVERSION@|$(PKGVERSION)|' \ + -e 's|@REPORT_BUGS_TO@|$(REPORT_BUGS_TO)|' $^ > $@.new \ && rm -f $@ && mv $@.new $@ && chmod +x $@ # Depend on libc.so so a DT_NEEDED is generated in the shared objects. diff --git a/debug/catchsegv.sh b/debug/catchsegv.sh index 9bbcfc0f87..0ff5a8a047 100755 --- a/debug/catchsegv.sh +++ b/debug/catchsegv.sh @@ -33,12 +33,14 @@ if test $# -eq 0; then echo 'Usage: catchsegv PROGRAM ARGS...' echo ' --help print this help, then exit' echo ' --version print version number, then exit' - echo "For bug reporting instructions, please see:" - echo "." + echo 'For bug reporting instructions, please see:' + cat <<\EOF +@REPORT_BUGS_TO@. +EOF exit 0 ;; --v | --ve | --ver | --vers | --versi | --versio | --version) - echo 'catchsegv (GNU libc) @VERSION@' + echo 'catchsegv @PKGVERSION@@VERSION@' echo 'Copyright (C) 2012 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. diff --git a/debug/pcprofiledump.c b/debug/pcprofiledump.c index fe6f3b4f3d..fd5ab519d3 100644 --- a/debug/pcprofiledump.c +++ b/debug/pcprofiledump.c @@ -1,5 +1,5 @@ /* Dump information generated by PC profiling. - Copyright (C) 1999, 2002, 2007, 2009 Free Software Foundation, Inc. + Copyright (C) 1999-2012 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1999. @@ -200,13 +200,16 @@ parse_opt (int key, char *arg, struct argp_state *state) static char * more_help (int key, const char *text, void *input) { + char *tp = NULL; switch (key) { case ARGP_KEY_HELP_EXTRA: /* We print some extra information. */ - return strdup (gettext ("\ + if (asprintf (&tp, gettext ("\ For bug reporting instructions, please see:\n\ -.\n")); +%s.\n"), REPORT_BUGS_TO) < 0) + return NULL; + return tp; default: break; } @@ -217,7 +220,7 @@ For bug reporting instructions, please see:\n\ static void print_version (FILE *stream, struct argp_state *state) { - fprintf (stream, "pcprofiledump (GNU %s) %s\n", PACKAGE, VERSION); + fprintf (stream, "pcprofiledump %s%s\n", PKGVERSION, VERSION); fprintf (stream, gettext ("\ Copyright (C) %s Free Software Foundation, Inc.\n\ This is free software; see the source for copying conditions. There is NO\n\ diff --git a/debug/xtrace.sh b/debug/xtrace.sh index ea4d25431b..ec1cd09661 100755 --- a/debug/xtrace.sh +++ b/debug/xtrace.sh @@ -54,14 +54,13 @@ Mandatory arguments to long options are also mandatory for any corresponding short options. " - echo $"For bug reporting instructions, please see: -. -" + printf $"For bug reporting instructions, please see:\\n%s.\\n" \ + "@REPORT_BUGS_TO@" exit 0 } do_version() { - echo 'xtrace (GNU libc) @VERSION@' + echo 'xtrace @PKGVERSION@@VERSION@' printf $"Copyright (C) %s Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. diff --git a/elf/Makefile b/elf/Makefile index 42b792bce8..c2f0e2058f 100644 --- a/elf/Makefile +++ b/elf/Makefile @@ -108,7 +108,10 @@ $(objpfx)sotruss: sotruss.ksh $(common-objpfx)config.make sed -e 's%@KSH@%$(KSH)%g' \ -e 's%@VERSION@%$(version)%g' \ -e 's%@TEXTDOMAINDIR@%$(msgcatdir)%g' \ - -e 's%@PREFIX@%$(prefix)%g' < $< > $@.new + -e 's%@PREFIX@%$(prefix)%g' \ + -e 's|@PKGVERSION@|$(PKGVERSION)|g' \ + -e 's|@REPORT_BUGS_TO@|$(REPORT_BUGS_TO)|g' \ + < $< > $@.new chmod 555 $@.new mv -f $@.new $@ $(inst_auditdir)/sotruss-lib.so: $(objpfx)sotruss-lib.so $(+force) @@ -381,7 +384,9 @@ endif common-ldd-rewrite = -e 's%@RTLD@%$(slibdir)/$(rtld-installed-name)%g' \ - -e 's%@VERSION@%$(version)%g' + -e 's%@VERSION@%$(version)%g' \ + -e 's|@PKGVERSION@|$(PKGVERSION)|g' \ + -e 's|@REPORT_BUGS_TO@|$(REPORT_BUGS_TO)|g' sh-ldd-rewrite = $(common-ldd-rewrite) -e 's%@BASH@%/bin/sh%g;s/\$$"/"/g' bash-ldd-rewrite = $(common-ldd-rewrite) -e 's%@BASH@%$(BASH)%g' \ -e 's%@TEXTDOMAINDIR@%$(msgcatdir)%g' diff --git a/elf/dl-close.c b/elf/dl-close.c index e6ff7e75d0..cda0e71963 100644 --- a/elf/dl-close.c +++ b/elf/dl-close.c @@ -702,7 +702,7 @@ _dl_close_worker (struct link_map *map) if (any_tls) { if (__builtin_expect (++GL(dl_tls_generation) == 0, 0)) - _dl_fatal_printf ("TLS generation counter wrapped! Please report as described in .\n"); + _dl_fatal_printf ("TLS generation counter wrapped! Please report as described in "REPORT_BUGS_TO".\n"); if (tls_free_end == GL(dl_tls_static_used)) GL(dl_tls_static_used) = tls_free_start; diff --git a/elf/ldconfig.c b/elf/ldconfig.c index 8d6e77f8ec..453cd6278d 100644 --- a/elf/ldconfig.c +++ b/elf/ldconfig.c @@ -294,13 +294,16 @@ parse_opt (int key, char *arg, struct argp_state *state) static char * more_help (int key, const char *text, void *input) { + char *tp = NULL; switch (key) { case ARGP_KEY_HELP_EXTRA: /* We print some extra information. */ - return strdup (gettext ("\ + if (asprintf (&tp, gettext ("\ For bug reporting instructions, please see:\n\ -.\n")); +%s.\n"), REPORT_BUGS_TO) < 0) + return NULL; + return tp; default: break; } @@ -311,7 +314,7 @@ For bug reporting instructions, please see:\n\ static void print_version (FILE *stream, struct argp_state *state) { - fprintf (stream, "ldconfig (GNU %s) %s\n", PACKAGE, VERSION); + fprintf (stream, "ldconfig %s%s\n", PKGVERSION, VERSION); fprintf (stream, gettext ("\ Copyright (C) %s Free Software Foundation, Inc.\n\ This is free software; see the source for copying conditions. There is NO\n\ diff --git a/elf/ldd.bash.in b/elf/ldd.bash.in index fc3f63e12b..ff4714df89 100644 --- a/elf/ldd.bash.in +++ b/elf/ldd.bash.in @@ -34,7 +34,7 @@ verbose= while test $# -gt 0; do case "$1" in --vers | --versi | --versio | --version) - echo 'ldd (GNU libc) @VERSION@' + echo 'ldd @PKGVERSION@@VERSION@' printf $"Copyright (C) %s Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. @@ -52,9 +52,8 @@ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -u, --unused print unused direct dependencies -v, --verbose print all information " - echo $"For bug reporting instructions, please see: -. -" + printf $"For bug reporting instructions, please see:\\n%s.\\n" \ + "@REPORT_BUGS_TO@" exit 0 ;; -d | --d | --da | --dat | --data | --data- | --data-r | --data-re | \ diff --git a/elf/pldd.c b/elf/pldd.c index 39095c9888..a8e2e5ce7d 100644 --- a/elf/pldd.c +++ b/elf/pldd.c @@ -52,10 +52,8 @@ extern void *xrealloc (void *o, size_t n) static void print_version (FILE *stream, struct argp_state *state); void (*argp_program_version_hook) (FILE *, struct argp_state *) = print_version; -/* Bug report address. */ -const char *argp_program_bug_address = N_("\ -For bug reporting instructions, please see:\n\ -.\n"); +/* Function to print some extra text in the help message. */ +static char *more_help (int key, const char *text, void *input); /* Definitions of arguments for argp functions. */ static const struct argp_option options[] = @@ -76,7 +74,7 @@ static error_t parse_opt (int key, char *arg, struct argp_state *state); /* Data structure to communicate with argp functions. */ static struct argp argp = { - options, parse_opt, args_doc, doc, NULL, NULL, NULL + options, parse_opt, args_doc, doc, NULL, more_help, NULL }; // File descriptor of /proc/*/mem file. @@ -212,11 +210,31 @@ parse_opt (int key, char *arg, struct argp_state *state) } +/* Print bug-reporting information in the help message. */ +static char * +more_help (int key, const char *text, void *input) +{ + char *tp = NULL; + switch (key) + { + case ARGP_KEY_HELP_EXTRA: + /* We print some extra information. */ + if (asprintf (&tp, gettext ("\ +For bug reporting instructions, please see:\n\ +%s.\n"), REPORT_BUGS_TO) < 0) + return NULL; + return tp; + default: + break; + } + return (char *) text; +} + /* Print the version information. */ static void print_version (FILE *stream, struct argp_state *state) { - fprintf (stream, "pldd (GNU %s) %s\n", PACKAGE, VERSION); + fprintf (stream, "pldd %s%s\n", PKGVERSION, VERSION); fprintf (stream, gettext ("\ Copyright (C) %s Free Software Foundation, Inc.\n\ This is free software; see the source for copying conditions. There is NO\n\ diff --git a/elf/sln.c b/elf/sln.c index 547a818f01..1bad21f226 100644 --- a/elf/sln.c +++ b/elf/sln.c @@ -58,7 +58,7 @@ main (int argc, char **argv) { case 2: if (strcmp (argv[1], "--version") == 0) { - printf ("sln (GNU libc) %s\n", VERSION); + printf ("sln %s%s\n", PKGVERSION, VERSION); return 0; } else if (strcmp (argv[1], "--help") == 0) { usage (); @@ -82,8 +82,8 @@ static void usage (void) { printf (_("Usage: sln src dest|file\n\n")); - fputs (_("For bug reporting instructions, please see:\n\ -.\n"), stdout); + printf (_("For bug reporting instructions, please see:\n\ +%s.\n"), REPORT_BUGS_TO); } static int diff --git a/elf/sotruss.ksh b/elf/sotruss.ksh index ff77f7fe0e..587ab68987 100755 --- a/elf/sotruss.ksh +++ b/elf/sotruss.ksh @@ -46,9 +46,8 @@ function do_help { printf $"Mandatory arguments to long options are also mandatory for any corresponding\nshort options.\n" echo - printf $"For bug reporting instructions, please see: -. -" + printf $"For bug reporting instructions, please see:\\n%s.\\n" \ + "@REPORT_BUGS_TO@" exit 0 } @@ -72,7 +71,7 @@ function do_ambiguous { while test $# -gt 0; do case "$1" in --v | --ve | --ver | --vers | --versi | --versio | --version) - echo "sotruss (GNU libc) @VERSION@" + echo "sotruss @PKGVERSION@@VERSION@" printf $"Copyright (C) %s Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. diff --git a/elf/sprof.c b/elf/sprof.c index 2097d31195..9f5d0eccbf 100644 --- a/elf/sprof.c +++ b/elf/sprof.c @@ -363,13 +363,16 @@ parse_opt (int key, char *arg, struct argp_state *state) static char * more_help (int key, const char *text, void *input) { + char *tp = NULL; switch (key) { case ARGP_KEY_HELP_EXTRA: /* We print some extra information. */ - return strdup (gettext ("\ + if (asprintf (&tp, gettext ("\ For bug reporting instructions, please see:\n\ -.\n")); +%s.\n"), REPORT_BUGS_TO) < 0) + return NULL; + return tp; default: break; } @@ -381,7 +384,7 @@ For bug reporting instructions, please see:\n\ static void print_version (FILE *stream, struct argp_state *state) { - fprintf (stream, "sprof (GNU %s) %s\n", PACKAGE, VERSION); + fprintf (stream, "sprof %s%s\n", PKGVERSION, VERSION); fprintf (stream, gettext ("\ Copyright (C) %s Free Software Foundation, Inc.\n\ This is free software; see the source for copying conditions. There is NO\n\ diff --git a/iconv/iconv_prog.c b/iconv/iconv_prog.c index 36168a1a91..62c6794e4f 100644 --- a/iconv/iconv_prog.c +++ b/iconv/iconv_prog.c @@ -400,13 +400,16 @@ parse_opt (int key, char *arg, struct argp_state *state) static char * more_help (int key, const char *text, void *input) { + char *tp = NULL; switch (key) { case ARGP_KEY_HELP_EXTRA: /* We print some extra information. */ - return strdup (gettext ("\ + if (asprintf (&tp, gettext ("\ For bug reporting instructions, please see:\n\ -.\n")); +%s.\n"), REPORT_BUGS_TO) < 0) + return NULL; + return tp; default: break; } @@ -418,7 +421,7 @@ For bug reporting instructions, please see:\n\ static void print_version (FILE *stream, struct argp_state *state) { - fprintf (stream, "iconv (GNU %s) %s\n", PACKAGE, VERSION); + fprintf (stream, "iconv %s%s\n", PKGVERSION, VERSION); fprintf (stream, gettext ("\ Copyright (C) %s Free Software Foundation, Inc.\n\ This is free software; see the source for copying conditions. There is NO\n\ diff --git a/iconv/iconvconfig.c b/iconv/iconvconfig.c index 0379ec37a0..d70b0136bd 100644 --- a/iconv/iconvconfig.c +++ b/iconv/iconvconfig.c @@ -375,13 +375,16 @@ parse_opt (int key, char *arg, struct argp_state *state) static char * more_help (int key, const char *text, void *input) { + char *tp = NULL; switch (key) { case ARGP_KEY_HELP_EXTRA: /* We print some extra information. */ - return strdup (gettext ("\ + if (asprintf (&tp, gettext ("\ For bug reporting instructions, please see:\n\ -.\n")); +%s.\n"), REPORT_BUGS_TO) < 0) + return NULL; + return tp; default: break; } @@ -393,7 +396,7 @@ For bug reporting instructions, please see:\n\ static void print_version (FILE *stream, struct argp_state *state) { - fprintf (stream, "iconvconfig (GNU %s) %s\n", PACKAGE, VERSION); + fprintf (stream, "iconvconfig %s%s\n", PKGVERSION, VERSION); fprintf (stream, gettext ("\ Copyright (C) %s Free Software Foundation, Inc.\n\ This is free software; see the source for copying conditions. There is NO\n\ diff --git a/locale/programs/locale.c b/locale/programs/locale.c index 247265e2e9..6bbd9d6840 100644 --- a/locale/programs/locale.c +++ b/locale/programs/locale.c @@ -271,13 +271,16 @@ parse_opt (int key, char *arg, struct argp_state *state) static char * more_help (int key, const char *text, void *input) { + char *tp = NULL; switch (key) { case ARGP_KEY_HELP_EXTRA: /* We print some extra information. */ - return strdup (gettext ("\ + if (asprintf (&tp, gettext ("\ For bug reporting instructions, please see:\n\ -.\n")); +%s.\n"), REPORT_BUGS_TO) < 0) + return NULL; + return tp; default: break; } @@ -289,7 +292,7 @@ For bug reporting instructions, please see:\n\ static void print_version (FILE *stream, struct argp_state *state) { - fprintf (stream, "locale (GNU %s) %s\n", PACKAGE, VERSION); + fprintf (stream, "locale %s%s\n", PKGVERSION, VERSION); fprintf (stream, gettext ("\ Copyright (C) %s Free Software Foundation, Inc.\n\ This is free software; see the source for copying conditions. There is NO\n\ diff --git a/locale/programs/localedef.c b/locale/programs/localedef.c index 5dc35ca695..864fc55f38 100644 --- a/locale/programs/localedef.c +++ b/locale/programs/localedef.c @@ -354,20 +354,26 @@ static char * more_help (int key, const char *text, void *input) { char *cp; + char *tp; switch (key) { case ARGP_KEY_HELP_EXTRA: /* We print some extra information. */ + if (asprintf (&tp, gettext ("\ +For bug reporting instructions, please see:\n\ +%s.\n"), REPORT_BUGS_TO) < 0) + return NULL; if (asprintf (&cp, gettext ("\ System's directory for character maps : %s\n\ repertoire maps: %s\n\ locale path : %s\n\ %s"), - CHARMAP_PATH, REPERTOIREMAP_PATH, LOCALE_PATH, gettext ("\ -For bug reporting instructions, please see:\n\ -.\n")) < 0) - return NULL; + CHARMAP_PATH, REPERTOIREMAP_PATH, LOCALE_PATH, tp) < 0) + { + free (tp); + return NULL; + } return cp; default: break; @@ -379,7 +385,7 @@ For bug reporting instructions, please see:\n\ static void print_version (FILE *stream, struct argp_state *state) { - fprintf (stream, "localedef (GNU %s) %s\n", PACKAGE, VERSION); + fprintf (stream, "localedef %s%s\n", PKGVERSION, VERSION); fprintf (stream, gettext ("\ Copyright (C) %s Free Software Foundation, Inc.\n\ This is free software; see the source for copying conditions. There is NO\n\ diff --git a/login/programs/pt_chown.c b/login/programs/pt_chown.c index fe98964c33..34e09fb0a6 100644 --- a/login/programs/pt_chown.c +++ b/login/programs/pt_chown.c @@ -58,7 +58,7 @@ static struct argp argp = static void print_version (FILE *stream, struct argp_state *state) { - fprintf (stream, "pt_chown (GNU %s) %s\n", PACKAGE, VERSION); + fprintf (stream, "pt_chown %s%s\n", PKGVERSION, VERSION); fprintf (stream, gettext ("\ Copyright (C) %s Free Software Foundation, Inc.\n\ This is free software; see the source for copying conditions. There is NO\n\ @@ -70,6 +70,7 @@ static char * more_help (int key, const char *text, void *input) { char *cp; + char *tp; switch (key) { @@ -84,13 +85,19 @@ Set the owner, group and access permission of the slave pseudo\ return cp; case ARGP_KEY_HELP_EXTRA: /* We print some extra information. */ - asprintf (&cp, gettext ("\ + if (asprintf (&tp, gettext ("\ +For bug reporting instructions, please see:\n\ +%s.\n"), REPORT_BUGS_TO) < 0) + return NULL; + if (asprintf (&cp, gettext ("\ The owner is set to the current user, the group is set to `%s',\ and the access permission is set to `%o'.\n\n\ %s"), - TTY_GROUP, S_IRUSR|S_IWUSR|S_IWGRP, gettext ("\ -For bug reporting instructions, please see:\n\ -.\n")); + TTY_GROUP, S_IRUSR|S_IWUSR|S_IWGRP, tp) < 0) + { + free (tp); + return NULL; + } return cp; default: break; diff --git a/malloc/Makefile b/malloc/Makefile index 1e0281f9fa..e1938998e6 100644 --- a/malloc/Makefile +++ b/malloc/Makefile @@ -126,13 +126,17 @@ sLIBdir := $(shell echo $(slibdir) | sed 's,lib\(\|64\)$$,\\\\$$LIB,') $(objpfx)mtrace: mtrace.pl rm -f $@.new sed -e 's|@PERL@|$(PERL)|' -e 's|@XXX@|$(address-width)|' \ - -e 's|@VERSION@|$(version)|' $^ > $@.new \ + -e 's|@VERSION@|$(version)|' \ + -e 's|@PKGVERSION@|$(PKGVERSION)|' \ + -e 's|@REPORT_BUGS_TO@|$(REPORT_BUGS_TO)|' $^ > $@.new \ && rm -f $@ && mv $@.new $@ && chmod +x $@ $(objpfx)memusage: memusage.sh rm -f $@.new sed -e 's|@BASH@|$(BASH)|' -e 's|@VERSION@|$(version)|' \ - -e 's|@SLIBDIR@|$(sLIBdir)|' -e 's|@BINDIR@|$(bindir)|' $^ > $@.new \ + -e 's|@SLIBDIR@|$(sLIBdir)|' -e 's|@BINDIR@|$(bindir)|' \ + -e 's|@PKGVERSION@|$(PKGVERSION)|' \ + -e 's|@REPORT_BUGS_TO@|$(REPORT_BUGS_TO)|' $^ > $@.new \ && rm -f $@ && mv $@.new $@ && chmod +x $@ diff --git a/malloc/memusage.sh b/malloc/memusage.sh index 7ed68c0773..50b92d51bd 100755 --- a/malloc/memusage.sh +++ b/malloc/memusage.sh @@ -61,14 +61,13 @@ Mandatory arguments to long options are also mandatory for any corresponding short options. " - echo $"For bug reporting instructions, please see: -. -" + printf $"For bug reporting instructions, please see:\\n%s.\\n" \ + "@REPORT_BUGS_TO@" exit 0 } do_version() { - echo 'memusage (GNU libc) @VERSION@' + echo 'memusage @PKGVERSION@@VERSION@' printf $"Copyright (C) %s Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. diff --git a/malloc/memusagestat.c b/malloc/memusagestat.c index af8f991003..a609a9b7c8 100644 --- a/malloc/memusagestat.c +++ b/malloc/memusagestat.c @@ -528,20 +528,17 @@ parse_opt (int key, char *arg, struct argp_state *state) static char * more_help (int key, const char *text, void *input) { - char *orig; - char *cp; + char *tp; switch (key) { case ARGP_KEY_HELP_EXTRA: /* We print some extra information. */ - orig = gettext ("\ + if (asprintf (&tp, gettext ("\ For bug reporting instructions, please see:\n\ -.\n"); - cp = strdup (orig); - if (cp == NULL) - cp = orig; - return cp; +%s.\n"), REPORT_BUGS_TO) < 0) + return NULL; + return tp; default: break; } @@ -552,7 +549,7 @@ For bug reporting instructions, please see:\n\ static void print_version (FILE *stream, struct argp_state *state) { - fprintf (stream, "memusagestat (GNU %s) %s\n", PACKAGE, VERSION); + fprintf (stream, "memusagestat %s%s\n", PKGVERSION, VERSION); fprintf (stream, gettext ("\ Copyright (C) %s Free Software Foundation, Inc.\n\ This is free software; see the source for copying conditions. There is NO\n\ diff --git a/malloc/mtrace.pl b/malloc/mtrace.pl index a2125003cb..adf61c7373 100644 --- a/malloc/mtrace.pl +++ b/malloc/mtrace.pl @@ -21,7 +21,8 @@ eval "exec @PERL@ -S $0 $@" # . $VERSION = "@VERSION@"; -$PACKAGE = "libc"; +$PKGVERSION = "@PKGVERSION@"; +$REPORT_BUGS_TO = '@REPORT_BUGS_TO@'; $progname = $0; sub usage { @@ -30,7 +31,7 @@ sub usage { print " --version print version number, then exit\n"; print "\n"; print "For bug reporting instructions, please see:\n"; - print ".\n"; + print "$REPORT_BUGS_TO.\n"; exit 0; } @@ -43,7 +44,7 @@ arglist: while (@ARGV) { if ($ARGV[0] eq "--v" || $ARGV[0] eq "--ve" || $ARGV[0] eq "--ver" || $ARGV[0] eq "--vers" || $ARGV[0] eq "--versi" || $ARGV[0] eq "--versio" || $ARGV[0] eq "--version") { - print "mtrace (GNU $PACKAGE) $VERSION\n"; + print "mtrace $PKGVERSION$VERSION\n"; print "Copyright (C) 2012 Free Software Foundation, Inc.\n"; print "This is free software; see the source for copying conditions. There is NO\n"; print "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"; diff --git a/manual/Makefile b/manual/Makefile index 67e13904bb..a05ab8328c 100644 --- a/manual/Makefile +++ b/manual/Makefile @@ -61,7 +61,7 @@ examples = $(filter-out $(foreach d, $(add-ons), ../$d/%.c.texi), \ # Generated files directly included from libc.texinfo. libc-texi-generated = chapters.texi top-menu.texi dir-add.texi \ - libm-err.texi version.texi + libm-err.texi version.texi pkgvers.texi # Add path to build dir for generated files texis-path := $(filter-out $(libc-texi-generated) summary.texi $(examples), \ @@ -113,6 +113,20 @@ $(objpfx)stamp-libm-err: libm-err-tab.pl $(wildcard $(foreach dir,$(sysdirs),\ $(move-if-change) $(objpfx)libm-err-tmp $(objpfx)libm-err.texi touch $@ +# Package version and bug reporting URL. +$(objpfx)pkgvers.texi: $(objpfx)stamp-pkgvers ; +$(objpfx)stamp-pkgvers: $(common-objpfx)config.make + echo "@ifclear PKGVERS" > $(objpfx)pkgvers-tmp + echo "@set PKGVERS" >> $(objpfx)pkgvers-tmp + echo "@set PKGVERSION $(PKGVERSION_TEXI)" >> $(objpfx)pkgvers-tmp + if [ "$(PKGVERSION_TEXI)" = "(GNU libc) " ]; then \ + echo "@set PKGVERSION_DEFAULT" >> $(objpfx)pkgvers-tmp; \ + fi + echo "@set REPORT_BUGS_TO $(REPORT_BUGS_TEXI)" >> $(objpfx)pkgvers-tmp + echo "@end ifclear" >> $(objpfx)pkgvers-tmp + $(move-if-change) $(objpfx)pkgvers-tmp $(objpfx)pkgvers.texi + touch $@ + # Generate a file with the version number. $(objpfx)version.texi: $(objpfx)stamp-version ; $(objpfx)stamp-version: $(common-objpfx)config.make diff --git a/manual/install.texi b/manual/install.texi index 4802e699fe..1b54051de3 100644 --- a/manual/install.texi +++ b/manual/install.texi @@ -2,6 +2,7 @@ @c Makeinfo ignores it when processing the file from the include. @setfilename INSTALL @include macros.texi +@include pkgvers.texi @node Installation, Maintenance, Library Summary, Top @c %MENU% How to install the GNU C Library @@ -173,6 +174,19 @@ the appropriate compiler flags (@samp{-mcpu=i386} will do the trick) to @var{CFLAGS}. If you specify just @samp{--build}, @code{configure} will get confused. + +@item --with-pkgversion=@var{version} +Specify a description, possibly including a build number or build +date, of the binaries being built, to be included in +@option{--version} output from programs installed with @theglibc{}. +For example, @option{--with-pkgversion='FooBar GNU/Linux glibc build +123'}. The default value is @samp{GNU libc}. + +@item --with-bugurl=@var{url} +Specify the URL that users should visit if they wish to report a bug, +to be included in @option{--help} output from programs installed with +@theglibc{}. The default value refers to the main bug-reporting +information for @theglibc{}. @end table To build the library and related programs, type @code{make}. This will @@ -458,7 +472,8 @@ remain unfixed for all eternity, if not longer. It is a good idea to verify that the problem has not already been reported. Bugs are documented in two places: The file @file{BUGS} -describes a number of well known bugs and the bug tracking system has a +describes a number of well known bugs and the central @glibcadj{} +bug tracking system has a WWW interface at @url{http://sourceware.org/bugzilla/}. The WWW interface gives you access to open and closed reports. A closed report @@ -483,7 +498,7 @@ library, you really only need to narrow it down to one library function call, if possible. This should not be too difficult. The final step when you have a simple test case is to report the bug. -Do this using the WWW interface to the bug database. +Do this at @value{REPORT_BUGS_TO}. If you are not sure how a function should behave, and this manual doesn't tell you, that's a bug in the manual. Report that too! If the diff --git a/manual/libc.texinfo b/manual/libc.texinfo index 2c1344ac84..d720fbdcf3 100644 --- a/manual/libc.texinfo +++ b/manual/libc.texinfo @@ -13,6 +13,8 @@ @end direntry @include dir-add.texi +@include pkgvers.texi + @c This tells texinfo.tex to use the real section titles in xrefs in @c place of the node name, when no section title is explicitly given. @set xref-automatic-section-title @@ -36,7 +38,13 @@ This file documents @theglibc{}. This is @c Disabled (printed editions, see above). @c Edition @value{EDITION} of -@cite{The GNU C Library Reference Manual}, for version @value{VERSION}. +@cite{The GNU C Library Reference Manual}, for version +@ifset PKGVERSION_DEFAULT +@value{VERSION}. +@end ifset +@ifclear PKGVERSION_DEFAULT +@value{VERSION} @value{PKGVERSION}. +@end ifclear Copyright @copyright{} 1993--2012 Free Software Foundation, Inc. @@ -70,6 +78,10 @@ supports it in developing GNU and promoting software freedom.'' @c @center Edition @value{EDITION} @c @sp 1 @center for version @value{VERSION} +@ifclear PKGVERSION_DEFAULT +@sp 1 +@center @value{PKGVERSION} +@end ifclear @page @vskip 0pt plus 1filll @insertcopying @@ -96,6 +108,9 @@ This is @c Disabled (printed editions, see above). @c Edition @value{EDITION} of @cite{The GNU C Library Reference Manual}, for Version @value{VERSION} +@ifclear PKGVERSION_DEFAULT +@value{PKGVERSION} +@end ifclear of @theglibc{}. @end ifnottex diff --git a/nscd/nscd.c b/nscd/nscd.c index bee9ed49ff..6adb3d8197 100644 --- a/nscd/nscd.c +++ b/nscd/nscd.c @@ -451,13 +451,16 @@ parse_opt (int key, char *arg, struct argp_state *state) static char * more_help (int key, const char *text, void *input) { + char *tp = NULL; switch (key) { case ARGP_KEY_HELP_EXTRA: /* We print some extra information. */ - return strdup (gettext ("\ + if (asprintf (&tp, gettext ("\ For bug reporting instructions, please see:\n\ -.\n")); +%s.\n"), REPORT_BUGS_TO) < 0) + return NULL; + return tp; default: break; } @@ -468,7 +471,7 @@ For bug reporting instructions, please see:\n\ static void print_version (FILE *stream, struct argp_state *state) { - fprintf (stream, "nscd (GNU %s) %s\n", PACKAGE, VERSION); + fprintf (stream, "nscd %s%s\n", PKGVERSION, VERSION); fprintf (stream, gettext ("\ Copyright (C) %s Free Software Foundation, Inc.\n\ This is free software; see the source for copying conditions. There is NO\n\ diff --git a/nss/getent.c b/nss/getent.c index e88356dd2b..5f8278a839 100644 --- a/nss/getent.c +++ b/nss/getent.c @@ -82,7 +82,7 @@ static int idn_flags = AI_IDN | AI_CANONIDN; static void print_version (FILE *stream, struct argp_state *state) { - fprintf (stream, "getent (GNU %s) %s\n", PACKAGE, VERSION); + fprintf (stream, "getent %s%s\n", PKGVERSION, VERSION); fprintf (stream, gettext ("\ Copyright (C) %s Free Software Foundation, Inc.\n\ This is free software; see the source for copying conditions. There is NO\n\ @@ -962,9 +962,9 @@ more_help (int key, const char *text, void *input) fputs ("\n\n", fp); - fputs (gettext ("\ + fprintf (fp, gettext ("\ For bug reporting instructions, please see:\n\ -.\n"), fp); +%s.\n"), REPORT_BUGS_TO); if (fclose (fp) == 0) return doc; diff --git a/nss/makedb.c b/nss/makedb.c index ccaabdff95..8d7d027b74 100644 --- a/nss/makedb.c +++ b/nss/makedb.c @@ -363,13 +363,16 @@ parse_opt (int key, char *arg, struct argp_state *state) static char * more_help (int key, const char *text, void *input) { + char *tp = NULL; switch (key) { case ARGP_KEY_HELP_EXTRA: /* We print some extra information. */ - return strdup (gettext ("\ + if (asprintf (&tp, gettext ("\ For bug reporting instructions, please see:\n\ -.\n")); +%s.\n"), REPORT_BUGS_TO) < 0) + return NULL; + return tp; default: break; } @@ -380,7 +383,7 @@ For bug reporting instructions, please see:\n\ static void print_version (FILE *stream, struct argp_state *state) { - fprintf (stream, "makedb (GNU %s) %s\n", PACKAGE, VERSION); + fprintf (stream, "makedb %s%s\n", PKGVERSION, VERSION); fprintf (stream, gettext ("\ Copyright (C) %s Free Software Foundation, Inc.\n\ This is free software; see the source for copying conditions. There is NO\n\ diff --git a/posix/getconf.c b/posix/getconf.c index 985e25218c..aa0dd86afb 100644 --- a/posix/getconf.c +++ b/posix/getconf.c @@ -1099,7 +1099,7 @@ main (int argc, char *argv[]) if (argc > 1 && strcmp (argv[1], "--version") == 0) { - printf ("getconf (GNU %s) %s\n", PACKAGE, VERSION); + printf ("getconf %s%s\n", PKGVERSION, VERSION); printf (gettext ("\ Copyright (C) %s Free Software Foundation, Inc.\n\ This is free software; see the source for copying conditions. There is NO\n\ @@ -1118,8 +1118,8 @@ Usage: getconf [-v SPEC] VAR\n\ Get the configuration value for variable VAR, or for variable PATH_VAR\n\ for path PATH. If SPEC is given, give values for compilation\n\ environment SPEC.\n\n")); - fputs (gettext ("For bug reporting instructions, please see:\n\ -.\n"), stdout); + printf (gettext ("For bug reporting instructions, please see:\n\ +%s.\n"), REPORT_BUGS_TO); return 0; } diff --git a/sunrpc/proto.h b/sunrpc/proto.h index 0ba9cd6286..ea28565b1e 100644 --- a/sunrpc/proto.h +++ b/sunrpc/proto.h @@ -62,7 +62,4 @@ void add_type(int len, const char *type); #define _(X) (X) #define textdomain(X) ((void) 0) -/* This is used in the definition of PACKAGE for --version output. */ -#define _libc_intl_domainname "libc" - #endif diff --git a/sunrpc/rpc_main.c b/sunrpc/rpc_main.c index 2103b10d5f..1477b43a7d 100644 --- a/sunrpc/rpc_main.c +++ b/sunrpc/rpc_main.c @@ -1439,15 +1439,15 @@ options_usage (FILE *stream, int status) f_print (stream, _("-T\t\tgenerate code to support RPC dispatch tables\n")); f_print (stream, _("-Y path\t\tdirectory name to find C preprocessor (cpp)\n")); - f_print (stream, "\n%s", _("\ + f_print (stream, _("\n\ For bug reporting instructions, please see:\n\ -.\n")); +%s.\n"), REPORT_BUGS_TO); exit (status); } static void print_version (void) { - printf ("rpcgen (GNU %s) %s\n", PACKAGE, VERSION); + printf ("rpcgen %s%s\n", PKGVERSION, VERSION); exit (0); } diff --git a/sunrpc/rpcinfo.c b/sunrpc/rpcinfo.c index 16c03542c0..e490a7ee12 100644 --- a/sunrpc/rpcinfo.c +++ b/sunrpc/rpcinfo.c @@ -688,15 +688,15 @@ usage (FILE *stream) fputs (_(" rpcinfo -b prognum versnum\n"), stream); fputs (_(" rpcinfo -d prognum versnum\n"), stream); fputc ('\n', stream); - fputs (_("\ + fprintf (stream, _("\ For bug reporting instructions, please see:\n\ -.\n"), stream); +%s.\n"), REPORT_BUGS_TO); } static void print_version (void) { - printf ("rpcinfo (GNU %s) %s\n", PACKAGE, VERSION); + printf ("rpcinfo %s%s\n", PKGVERSION, VERSION); } static u_long diff --git a/sysdeps/unix/sysv/linux/lddlibc4.c b/sysdeps/unix/sysv/linux/lddlibc4.c index f441a9e0dc..c251be8550 100644 --- a/sysdeps/unix/sysv/linux/lddlibc4.c +++ b/sysdeps/unix/sysv/linux/lddlibc4.c @@ -58,13 +58,13 @@ main (int argc, char *argv[]) if (strcmp (argv[1], "--help") == 0) { printf (gettext ("Usage: lddlibc4 FILE\n\n")); - fputs (gettext ("For bug reporting instructions, please see:\n\ -.\n"), stdout); + printf (gettext ("For bug reporting instructions, please see:\n\ +%s.\n"), REPORT_BUGS_TO); return 0; } else if (strcmp (argv[1], "--version") == 0) { - printf ("lddlibc4 (GNU %s) %s\n", PACKAGE, VERSION); + printf ("lddlibc4 %s%s\n", PKGVERSION, VERSION); printf (gettext ("\ Copyright (C) %s Free Software Foundation, Inc.\n\ This is free software; see the source for copying conditions. There is NO\n\