version-etc: extend for packagers
authorMike Frysinger <vapier@gentoo.org>
Mon, 1 Jun 2009 03:13:38 +0000 (23:13 -0400)
committerJim Meyering <meyering@redhat.com>
Wed, 3 Jun 2009 16:38:07 +0000 (18:38 +0200)
Add three new configure options, intended for packagers:
  --with-packager="packager name"
  --with-packager-version="packager-specific version"
  --with-packager-bug-reports="packager bug reporting"

An example with coreutils:

  $ ./configure \
    --with-packager=Gentoo \
    --with-packager-bug-report=http://bugs.gentoo.org/ \
    --with-packager-version="patchset 1.6"

  $ ./src/ls --version | head -n3
  ls (GNU coreutils) 7.1-dirty
  Packaged by Gentoo (patchset 1.6)
  Copyright (C) 2009 Free Software Foundation, Inc.

Note that the bug reporting info via --help doesn't show up because
coreutils uses its own custom emit_bug_reporting_address() implementation
in src/system.h.  If it didn't, it'd look like:

  $ ./src/ls --help | tail -n4
  Report bugs to <bug-coreutils@gnu.org>.
  Report Gentoo bugs to <http://bugs.gentoo.org/>.
  GNU coreutils home page: <http://www.gnu.org/software/coreutils/>.
  General help using GNU software: <http://www.gnu.org/gethelp/>.

* lib/version-etc.c: Print new information, if provided.
* m4/version-etc.m4: New file.
* modules/version-etc (Files): Add m4/version-etc.m4.
(configure.ac): Add gl_VERSION_ETC.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
ChangeLog
lib/version-etc.c
m4/version-etc.m4 [new file with mode: 0644]
modules/version-etc

index 78667e6..5bec1da 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,32 @@
+2009-06-03  Mike Frysinger  <vapier@gentoo.org>
+
+       version-etc: extend for packagers
+       Add three new configure options, intended for packagers:
+         --with-packager="packager name"
+         --with-packager-version="packager-specific version"
+         --with-packager-bug-reports="packager bug reporting"
+       An example with coreutils:
+         $ ./configure \
+           --with-packager=Gentoo \
+           --with-packager-bug-report=http://bugs.gentoo.org/ \
+           --with-packager-version="patchset 1.6"
+         $ ./src/ls --version | head -n3
+         ls (GNU coreutils) 7.1-dirty
+         Packaged by Gentoo (patchset 1.6)
+         Copyright (C) 2009 Free Software Foundation, Inc.
+       Note that the bug reporting info via --help doesn't show up because
+       coreutils uses its own custom emit_bug_reporting_address() implementation
+       in src/system.h.  If it didn't, it'd look like:
+         $ ./src/ls --help | tail -n4
+         Report bugs to <bug-coreutils@gnu.org>.
+         Report Gentoo bugs to <http://bugs.gentoo.org/>.
+         GNU coreutils home page: <http://www.gnu.org/software/coreutils/>.
+         General help using GNU software: <http://www.gnu.org/gethelp/>.
+       * lib/version-etc.c: Print new information, if provided.
+       * m4/version-etc.m4: New file.
+       * modules/version-etc (Files): Add m4/version-etc.m4.
+       (configure.ac): Add gl_VERSION_ETC.
+
 2009-05-31  Bruno Haible  <bruno@clisp.org>
 
        * tests/test-alignof.c: Include <stdint.h>. Check also 'long double'
index 2258c2e..c3b0289 100644 (file)
@@ -59,6 +59,15 @@ version_etc_va (FILE *stream,
   else
     fprintf (stream, "%s %s\n", package, version);
 
+#ifdef PACKAGE_PACKAGER
+# ifdef PACKAGE_PACKAGER_VERSION
+  fprintf (stream, _("Packaged by %s (%s)\n"), PACKAGE_PACKAGER,
+          PACKAGE_PACKAGER_VERSION);
+# else
+  fprintf (stream, _("Packaged by %s\n"), PACKAGE_PACKAGER);
+# endif
+#endif
+
   /* TRANSLATORS: Translate "(C)" to the copyright symbol
      (C-in-a-circle), if this symbol is available in the user's
      locale.  Otherwise, do not translate "(C)"; leave it as-is.  */
@@ -179,6 +188,10 @@ emit_bug_reporting_address (void)
      "Report translation bugs to <...>\n" with the address for translation
      bugs (typically your translation team's web or email address).  */
   printf (_("\nReport bugs to <%s>.\n"), PACKAGE_BUGREPORT);
+#ifdef PACKAGE_PACKAGER_BUG_REPORTS
+  printf (_("Report %s bugs to <%s>.\n"), PACKAGE_PACKAGER,
+         PACKAGE_PACKAGER_BUG_REPORTS);
+#endif
   printf (_("%s home page: <http://www.gnu.org/software/%s/>.\n"),
          PACKAGE_NAME, PACKAGE);
   fputs (_("General help using GNU software: <http://www.gnu.org/gethelp/>.\n"),
diff --git a/m4/version-etc.m4 b/m4/version-etc.m4
new file mode 100644 (file)
index 0000000..14d6eb6
--- /dev/null
@@ -0,0 +1,33 @@
+# version-etc.m4 serial 1
+# Copyright (C) 2009 Free Software Foundation, Inc.
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+dnl $1 - configure flag and define name
+dnl $2 - human readable description
+m4_define([gl_VERSION_ETC_FLAG],
+[dnl
+  AC_ARG_WITH([$1], [AS_HELP_STRING([--with-$1], [$2])],
+    [dnl
+      case $withval in
+       yes|no) ;;
+       *) AC_DEFINE_UNQUOTED(AS_TR_CPP([PACKAGE_$1]), ["$withval"], [$2]) ;;
+      esac
+    ])
+])
+
+AC_DEFUN([gl_VERSION_ETC],
+[dnl
+  gl_VERSION_ETC_FLAG([packager],
+                     [String identifying the packager of this software])
+  gl_VERSION_ETC_FLAG([packager-version],
+                     [Packager-specific version information])
+  gl_VERSION_ETC_FLAG([packager-bug-reports],
+                     [Packager info for bug reports (URL/e-mail/...)])
+  if test "X$with_packager" = "X" && \
+     test "X$with_packager_version$with_packager_bug_reports" != "X"
+  then
+    AC_MSG_ERROR([The --with-packager-{bug-reports,version} options require --with-packager])
+  fi
+])
index aac2311..589c8c9 100644 (file)
@@ -4,12 +4,14 @@ Print --version and bug-reporting information in a consistent format.
 Files:
 lib/version-etc.h
 lib/version-etc.c
+m4/version-etc.m4
 
 Depends-on:
 gettext-h
 stdarg
 
 configure.ac:
+gl_VERSION_ETC
 
 Makefile.am:
 lib_SOURCES += version-etc.h version-etc.c