On 09/12/2013 12:33 AM, Bernhard Voelker wrote:
> The attached patch moves the new (NLS-enabled) upstream 'help2man'
> back to it's original place without the need for patching it, and
> above all without the newly introduced requirement to have the
> patch(1) utility in distribution builds.

... and again the same patch rebased against master which is now
using the NLS-disabled version of help2man.

Have a nice day,
Berny
>From b3578fc9ffe70b9466687f9f6470a85f1a0ab14f Mon Sep 17 00:00:00 2001
From: Bernhard Voelker <[email protected]>
Date: Thu, 12 Sep 2013 00:02:33 +0200
Subject: [PATCH] maint: avoid patching help2man

Commit cde1ea0e separated the coreutils-specific patches from help2man.
Most changes had been made to accommodate to the coreutils style guide,
i.e., to avoid syntax-check failures like sc_long_lines.
Yet 2 changes had to be put into the patch help2man.diff.
But this added the dependency to patch(1) in distribution builds.
Incidentally, the 2 remaining parts of the patch can easily be
done outside of help2man.  Therefore, this commit partly reverts
the recent separation of help2man into 'help2man.in' and
'help2man.diff', and instead uses the original help2man script.

* man/help2man.in: Rename to ...
* man/help2man: ... this file.
* man/help2man.diff: Remove.
* man/local.mk (mandeps): Remove man/help2man.
(man/help2man): Remove recipe.
(.x.1): Add the --info-page option when calling help2man in order
to change the name of the texinfo manual from the default, "info PRG",
to "info coreutils 'PRG invocation'".
Furthermore, use an sed pattern to remove the sentence starting
with "For complete documentation".
* .gitignore (/man/help2man): Remove entry.
* .x-update-copyright: Replace the entries for the files
'man/help2man.diff' and 'man/help2man.in' by 'man/help2man'.
* cfg.mk (sc_long_lines): Instead of 'man/help2man.in', exempt
'man/help2man' from this test.
(sc_po_check): Likewise.
(sc_space_tab): Instead of 'man/help2man.diff', exempt 'man/help2man'
from this test.
(sc_trailing_blank): Likewise.
(sc_prohibit_tab_based_indentation): Instead of 'man/help2man.in' and
'man/help2man.diff', exempt 'man/help2man'.
* man/dummy-man: Recognize the option --info-page=... as no-op.
---
 .gitignore                    |  1 -
 .x-update-copyright           |  3 +--
 cfg.mk                        | 12 ++++++------
 man/dummy-man                 |  1 +
 man/{help2man.in => help2man} |  0
 man/help2man.diff             | 32 --------------------------------
 man/local.mk                  | 16 +++++-----------
 7 files changed, 13 insertions(+), 52 deletions(-)
 rename man/{help2man.in => help2man} (100%)
 delete mode 100644 man/help2man.diff

diff --git a/.gitignore b/.gitignore
index b03f620..558577d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -134,7 +134,6 @@
 /m4/xsize.m4
 /maint.mk
 /man/*.1
-/man/help2man
 /po/*.gmo
 /po/*.po
 /po/.gitignore
diff --git a/.x-update-copyright b/.x-update-copyright
index 47cb0f4..89f8e8a 100644
--- a/.x-update-copyright
+++ b/.x-update-copyright
@@ -1,3 +1,2 @@
 COPYING
-man/help2man\.diff
-man/help2man\.in
+man/help2man
diff --git a/cfg.mk b/cfg.mk
index 61bda4b..ec91158 100644
--- a/cfg.mk
+++ b/cfg.mk
@@ -221,13 +221,13 @@ sc_prohibit-gl-attributes:
 
 # Look for lines longer than 80 characters, except omit:
 # - program-generated long lines in diff headers,
-# - the original help2man script copied from upstream,
+# - the help2man script copied from upstream,
 # - tests involving long checksum lines, and
 # - the 'pr' test cases.
 LINE_LEN_MAX = 80
 FILTER_LONG_LINES =						\
   /^[^:]*\.diff:[^:]*:@@ / d;					\
-  \|^[^:]*man/help2man\.in:| d;			\
+  \|^[^:]*man/help2man:| d;			\
   \|^[^:]*tests/misc/sha[0-9]*sum.*\.pl[-:]| d;			\
   \|^[^:]*tests/pr/|{ \|^[^:]*tests/pr/pr-tests:| !d; };
 sc_long_lines:
@@ -568,10 +568,10 @@ update-copyright-env = \
 
 # List syntax-check exemptions.
 exclude_file_name_regexp--sc_space_tab = \
-  ^(tests/pr/|tests/misc/nl\.sh$$|gl/.*\.diff$$|man/help2man\.diff$$)
+  ^(tests/pr/|tests/misc/nl\.sh$$|gl/.*\.diff$$|man/help2man$$)
 exclude_file_name_regexp--sc_bindtextdomain = \
   ^(gl/.*|lib/euidaccess-stat|src/make-prime-list)\.c$$
-exclude_file_name_regexp--sc_trailing_blank = ^(tests/pr/|man/help2man.diff)
+exclude_file_name_regexp--sc_trailing_blank = ^(tests/pr/|man/help2man)
 exclude_file_name_regexp--sc_system_h_headers = \
   ^src/((system|copy)\.h|libstdbuf\.c|make-prime-list\.c)$$
 
@@ -581,7 +581,7 @@ exclude_file_name_regexp--sc_require_config_h_first = \
 exclude_file_name_regexp--sc_require_config_h = \
   $(exclude_file_name_regexp--sc_require_config_h_first)
 
-exclude_file_name_regexp--sc_po_check = ^(gl/|man/help2man\.in)
+exclude_file_name_regexp--sc_po_check = ^(gl/|man/help2man)
 exclude_file_name_regexp--sc_prohibit_always-defined_macros = \
   ^src/(seq|remove)\.c$$
 exclude_file_name_regexp--sc_prohibit_empty_lines_at_EOF = ^tests/pr/
@@ -601,7 +601,7 @@ exclude_file_name_regexp--sc_useless_cpp_parens = $(_ll)
 exclude_file_name_regexp--sc_long_lines = $(_ll)
 exclude_file_name_regexp--sc_space_before_open_paren = $(_ll)
 
-tbi_1 = ^tests/pr/|(^gl/lib/reg.*\.c\.diff|\.mk|^man/help2man\.(in|diff))$$
+tbi_1 = ^tests/pr/|(^gl/lib/reg.*\.c\.diff|\.mk|^man/help2man)$$
 tbi_2 = ^scripts/git-hooks/(pre-commit|pre-applypatch|applypatch-msg)$$
 tbi_3 = (GNU)?[Mm]akefile(\.am)?$$|$(_ll)
 exclude_file_name_regexp--sc_prohibit_tab_based_indentation = \
diff --git a/man/dummy-man b/man/dummy-man
index 3069376..dca2b67 100755
--- a/man/dummy-man
+++ b/man/dummy-man
@@ -30,6 +30,7 @@ while test $# -gt 0; do
     # in the makefile.
     --include=*);;
     --include) shift;;
+    --info-page=*);;
     -*) fatal_ "invalid or unrecognized help2man option '$1'";;
     --) shift; break;;
      *) break;;
diff --git a/man/help2man.in b/man/help2man
similarity index 100%
rename from man/help2man.in
rename to man/help2man
diff --git a/man/help2man.diff b/man/help2man.diff
deleted file mode 100644
index 12fa76f..0000000
--- a/man/help2man.diff
+++ /dev/null
@@ -1,32 +0,0 @@
---- man/help2man-orig
-+++ man/help2man	2013-09-10 07:31:28.352365301 +0200
-@@ -412,6 +412,7 @@
- my $PAT_FILES         = _('Files');
- my $PAT_EXAMPLES      = _('Examples');
- my $PAT_FREE_SOFTWARE = _('This +is +free +software');
-+my $PAT_INFO          = _('For +complete +documentation');
- 
- # Start a new paragraph (if required) for these.
- s/([^\n])\n($PAT_BUGS|$PAT_AUTHOR) /$1\n\n$2 /og;
-@@ -444,6 +445,12 @@
- 	next;
-     }
- 
-+    # Skip any texinfo reference as that's handled separately
-+    if (s/($PAT_INFO).*\n//o)
-+    {
-+        next;
-+    }
-+
-     # Copyright section
-     if (/^Copyright /)
-     {
-@@ -622,7 +629,7 @@
- .B %s
- programs are properly installed at your site, the command
- .IP
--.B info %s
-+.B info coreutils \(aq%s invocation\(aq
- .PP
- should give you access to the complete manual.
- EOT
diff --git a/man/local.mk b/man/local.mk
index d967d16..266b780 100644
--- a/man/local.mk
+++ b/man/local.mk
@@ -50,9 +50,6 @@ distclean-local:
 # Dependencies common to all man pages.  Updated below.
 mandeps =
 
-# Depend on the help2man script.
-mandeps += man/help2man
-
 # Depend on this to get version number changes.
 mandeps += .version
 
@@ -62,13 +59,6 @@ mandeps += $(top_srcdir)/src/system.h
 
 $(ALL_MANS): $(mandeps)
 
-# Create help2man from the upstream version and out patch.
-man/help2man:    man/help2man.in man/help2man.diff
-	$(AM_V_GEN)cp man/help2man.in man/help2man.tmp \
-	  && VERSION_CONTROL=none patch man/help2man.tmp < man/help2man.diff \
-	  && chmod a+x man/help2man.tmp \
-	  && mv man/help2man.tmp man/help2man
-
 # Most prog.1 man pages depend on src/prog.  List the exceptions:
 # Note that dir and vdir are exceptions only if you consider the name
 # of the .c file upon which they depend: ls.c.
@@ -200,7 +190,11 @@ man/yes.1:       src/yes
 		     --source='$(PACKAGE_STRING)'			\
 		     --include=$(srcdir)/man/$$name.x			\
 		     --output=$$t/$$name.1 $$t/$$name			\
-	  && sed 's|$*\.td/||g' $$t/$$name.1 > $@-t			\
+		     --info-page='coreutils \(aq'$$name' invocation\(aq' \
+	  && sed \
+	       -e 's|$*\.td/||g' \
+	       -e '/For complete documentation/d' \
+	       $$t/$$name.1 > $@-t			\
 	  && rm -rf $$t							\
 	  && chmod a-w $@-t						\
 	  && mv $@-t $@
-- 
1.8.3.1

Reply via email to