[PATCH] DocBook: Avoid stdout junk with no man pages to compress

From: Ulf Magnusson
Date: Sun Jul 12 2015 - 17:59:50 EST


gzip would run as 'gzip -f' when no uncompressed man pages were found,
making it compress the (empty) stdin to stdout.

A few alternative solutions:

- 'find' with {} + might be speedier, but maybe that's not portable
enough (though it's in POSIX 2001 at least AFAICS)

- xargs --no-run-if-empty, but that's a GNU extension

- Always discarding stdout, if it's unlikely to ever be helpful

- More fancy stuff like the following, though maybe some of them could
run into shell limits too, re. d56fcf299fb4 (DocBook: Do not exceed
argument list limit)

* A plain shell 'for' loop

* mandocs: $(MAN)
if [ `find $(obj)/man -name '*.9' | wc -l` -gt 0 ]; then \
find $(obj)/man -name '*.9' | xargs gzip -f; \
fi

* mandocs: $(MAN)
man_pages=`find $(obj)/man -name '*.9'`; \
if [ -n "$$man_pages" ]; then \
echo "$$man_pages" | xargs gzip -f; \
fi

Signed-off-by: Ulf Magnusson <ulfalizer@xxxxxxxxx>
---
Documentation/DocBook/Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Documentation/DocBook/Makefile b/Documentation/DocBook/Makefile
index b6a6a2e..73bddf7 100644
--- a/Documentation/DocBook/Makefile
+++ b/Documentation/DocBook/Makefile
@@ -56,7 +56,7 @@ htmldocs: $(HTML)

MAN := $(patsubst %.xml, %.9, $(BOOKS))
mandocs: $(MAN)
- find $(obj)/man -name '*.9' | xargs gzip -f
+ find $(obj)/man -name '*.9' -exec gzip -f {} \;

installmandocs: mandocs
mkdir -p /usr/local/man/man9/
--
2.1.4

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/