* [PATCH 0/3] coreutils: facilitate generating real manpages
@ 2015-02-10 19:19 Paul Gortmaker
2015-02-10 19:19 ` [PATCH 1/3] coreutils: don't generate useless dummy stub manpages Paul Gortmaker
` (2 more replies)
0 siblings, 3 replies; 9+ messages in thread
From: Paul Gortmaker @ 2015-02-10 19:19 UTC (permalink / raw)
To: openembedded-core; +Cc: Paul Eggleton
As part of improving the end user experience for installs where the
end user interacts directly with the generated filesystem (e.g. the
build-appliance) these three commits ensure that we can have real
man pages for coreutils on the target if desired.
This has been problematic for everyone who cross compiles, since the
gnu folks use "help2man" -- which is a perl script that wants to run
the target binaries (e.g. "chmod --help") and then use the output from
that. And unfortunately this doesn't appear likely to change.
Our current status is that we "hide" perl by defeating a perl check,
and also we have our own "help2man" script which unconditionally fails
(as part of an earlier solution to the manpages problem). And then the
doc RPM gets useless stub manpages with a big "OOOPS" message in them.
Here we delete all stuff associated with the old solutions, and then
decouple the one makefile line triggering what would be the failed
attempt at generating manpages via help2man. Then we add in sourcing
and using prebuilt manpages from the Gentoo project (which was their
solution[1] to the help2man cross-compile issue).
Paul.
[1] http://lists.gnu.org/archive/html/coreutils/2014-11/msg00001.html
---
Paul Gortmaker (3):
coreutils: don't generate useless dummy stub manpages
coreutils: import prebuilt manpages from Gentoo
scripts: delete dummy help2man script
.../coreutils/coreutils-8.23/dummy_help2man.patch | 22 ---------------
.../coreutils-8.23/fix-for-dummy-man-usage.patch | 31 ----------------------
.../man-decouple-manpages-from-build.patch | 27 +++++++++++++++++++
meta/recipes-core/coreutils/coreutils_8.23.bb | 18 +++++++++----
scripts/help2man | 3 ---
5 files changed, 40 insertions(+), 61 deletions(-)
delete mode 100644 meta/recipes-core/coreutils/coreutils-8.23/dummy_help2man.patch
delete mode 100644 meta/recipes-core/coreutils/coreutils-8.23/fix-for-dummy-man-usage.patch
create mode 100644 meta/recipes-core/coreutils/coreutils-8.23/man-decouple-manpages-from-build.patch
delete mode 100755 scripts/help2man
--
2.2.1
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 1/3] coreutils: don't generate useless dummy stub manpages
2015-02-10 19:19 [PATCH 0/3] coreutils: facilitate generating real manpages Paul Gortmaker
@ 2015-02-10 19:19 ` Paul Gortmaker
2015-02-11 1:51 ` ChenQi
2015-02-10 19:19 ` [PATCH 2/3] coreutils: import prebuilt manpages from Gentoo Paul Gortmaker
2015-02-10 19:19 ` [PATCH 3/3] scripts: delete dummy help2man script Paul Gortmaker
2 siblings, 1 reply; 9+ messages in thread
From: Paul Gortmaker @ 2015-02-10 19:19 UTC (permalink / raw)
To: openembedded-core; +Cc: Paul Eggleton
We had a couple patches to 1) deal with missing perl and 2) deal
with the perl-less "dummy" help2man fallout, but in the end, they
achieve no purpose whatsoever, since they just populate the doc
RPM with manpages like this one:
NAME
chmod - a GNU coreutils 8.22 program
DESCRIPTION
OOOPS! Due to the lack of perl on the build system, we were
unable to create a proper manual page for chmod.
As the above serves no purpose whatsoever, and since the concept
of running the binaries to capture the "--help" text output is
completely broken for cross compiles, lets just decouple man page
generation from the building of coreutils entirely so it paves the
way for importing pre-generated manpages.
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
---
.../coreutils/coreutils-8.23/dummy_help2man.patch | 22 ---------------
.../coreutils-8.23/fix-for-dummy-man-usage.patch | 31 ----------------------
.../man-decouple-manpages-from-build.patch | 27 +++++++++++++++++++
meta/recipes-core/coreutils/coreutils_8.23.bb | 3 +--
4 files changed, 28 insertions(+), 55 deletions(-)
delete mode 100644 meta/recipes-core/coreutils/coreutils-8.23/dummy_help2man.patch
delete mode 100644 meta/recipes-core/coreutils/coreutils-8.23/fix-for-dummy-man-usage.patch
create mode 100644 meta/recipes-core/coreutils/coreutils-8.23/man-decouple-manpages-from-build.patch
diff --git a/meta/recipes-core/coreutils/coreutils-8.23/dummy_help2man.patch b/meta/recipes-core/coreutils/coreutils-8.23/dummy_help2man.patch
deleted file mode 100644
index 4757f52aa0be..000000000000
--- a/meta/recipes-core/coreutils/coreutils-8.23/dummy_help2man.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-Upstream-Status: Inappropriate [disable feature]
-
-Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
-diff -Nurd coreutils-8.21/man/local.mk coreutils-8.21/man/local.mk
---- coreutils-8.21/man/local.mk 2013-02-05 16:01:21.000000000 +0200
-+++ coreutils-8.21/man/local.mk 2013-03-23 09:12:53.360470192 +0200
-@@ -19,11 +19,11 @@
- EXTRA_DIST += man/help2man man/dummy-man
-
- ## Graceful degradation for systems lacking perl.
--if HAVE_PERL
--run_help2man = $(PERL) -- $(srcdir)/man/help2man
--else
-+#if HAVE_PERL
-+#run_help2man = $(PERL) -- $(srcdir)/man/help2man
-+#else
- run_help2man = $(SHELL) $(srcdir)/man/dummy-man
--endif
-+#endif
-
- man1_MANS = @man1_MANS@
- EXTRA_DIST += $(man1_MANS:.1=.x)
diff --git a/meta/recipes-core/coreutils/coreutils-8.23/fix-for-dummy-man-usage.patch b/meta/recipes-core/coreutils/coreutils-8.23/fix-for-dummy-man-usage.patch
deleted file mode 100644
index 58b6a7613038..000000000000
--- a/meta/recipes-core/coreutils/coreutils-8.23/fix-for-dummy-man-usage.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-Upstream-Status: Pending
-
-coreutils: fix for dummy-man usage
-
-The options should be before the final argument, otherwise, the following error
-would appear when compiling.
-
-"dummy-man: too many non-option arguments"
-
-Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
----
- man/local.mk | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/man/local.mk b/man/local.mk
-index ba8fbf7..3833458 100644
---- a/man/local.mk
-+++ b/man/local.mk
-@@ -101,8 +101,8 @@ man/dynamic-deps.mk: Makefile
- && $(run_help2man) \
- --source='$(PACKAGE_STRING)' \
- --include=$(srcdir)/man/$$name.x \
-- --output=$$t/$$name.1 $$t/$$argv \
- --info-page='coreutils \(aq'$$name' invocation\(aq' \
-+ --output=$$t/$$name.1 $$t/$$argv \
- && sed \
- -e 's|$*\.td/||g' \
- -e '/For complete documentation/d' \
---
-1.9.1
-
diff --git a/meta/recipes-core/coreutils/coreutils-8.23/man-decouple-manpages-from-build.patch b/meta/recipes-core/coreutils/coreutils-8.23/man-decouple-manpages-from-build.patch
new file mode 100644
index 000000000000..3c896a11bf2d
--- /dev/null
+++ b/meta/recipes-core/coreutils/coreutils-8.23/man-decouple-manpages-from-build.patch
@@ -0,0 +1,27 @@
+From b4d258629f090066783c3b4c91b40f63b9d0a296 Mon Sep 17 00:00:00 2001
+From: Paul Gortmaker <paul.gortmaker@windriver.com>
+Date: Sun, 8 Feb 2015 16:51:57 -0500
+Subject: [PATCH] man: decouple manpages from build
+
+The use of "help2man" doesn't work at all for cross compile, in
+addition to the extra requirement of perl it adds.
+
+Just decouple the manpages from the build in order to pave the way for
+importing prebuilt manpages that can be used in a cross build situation.
+
+Upstream-Status: Inappropriate [upstream doesn't care about x-compile case.]
+Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
+
+diff --git a/Makefile.am b/Makefile.am
+index fb4af27..7576b2c 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -214,5 +214,4 @@ AM_CPPFLAGS = -Ilib -I$(top_srcdir)/lib -Isrc -I$(top_srcdir)/src
+ include $(top_srcdir)/lib/local.mk
+ include $(top_srcdir)/src/local.mk
+ include $(top_srcdir)/doc/local.mk
+-include $(top_srcdir)/man/local.mk
+ include $(top_srcdir)/tests/local.mk
+--
+2.2.2
+
diff --git a/meta/recipes-core/coreutils/coreutils_8.23.bb b/meta/recipes-core/coreutils/coreutils_8.23.bb
index e9d6494708de..be68a310311a 100644
--- a/meta/recipes-core/coreutils/coreutils_8.23.bb
+++ b/meta/recipes-core/coreutils/coreutils_8.23.bb
@@ -13,9 +13,8 @@ DEPENDS_class-native = ""
inherit autotools gettext texinfo
SRC_URI = "${GNU_MIRROR}/coreutils/${BP}.tar.xz \
+ file://man-decouple-manpages-from-build.patch \
file://remove-usr-local-lib-from-m4.patch \
- file://dummy_help2man.patch \
- file://fix-for-dummy-man-usage.patch \
file://fix-selinux-flask.patch \
"
--
2.2.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 2/3] coreutils: import prebuilt manpages from Gentoo
2015-02-10 19:19 [PATCH 0/3] coreutils: facilitate generating real manpages Paul Gortmaker
2015-02-10 19:19 ` [PATCH 1/3] coreutils: don't generate useless dummy stub manpages Paul Gortmaker
@ 2015-02-10 19:19 ` Paul Gortmaker
2015-02-10 19:59 ` Mark Hatle
2015-02-10 19:19 ` [PATCH 3/3] scripts: delete dummy help2man script Paul Gortmaker
2 siblings, 1 reply; 9+ messages in thread
From: Paul Gortmaker @ 2015-02-10 19:19 UTC (permalink / raw)
To: openembedded-core; +Cc: Paul Eggleton
As can be seen here:
http://lists.gnu.org/archive/html/coreutils/2014-11/msg00001.html
other people have run into the headache of trying to cross compile
coreutils, with the "help2man" problem (assumes host can run the
target binaries with "--help" arg to collect data for manpage.)
And since "current wisdom is this is working as intended" we are
largely left with no choice but to use the same solution and
abandon trying to generate the man pages at build time. So here
we import prebuilt manpages.
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
---
meta/recipes-core/coreutils/coreutils_8.23.bb | 15 ++++++++++++---
1 file changed, 12 insertions(+), 3 deletions(-)
diff --git a/meta/recipes-core/coreutils/coreutils_8.23.bb b/meta/recipes-core/coreutils/coreutils_8.23.bb
index be68a310311a..5454a43527cc 100644
--- a/meta/recipes-core/coreutils/coreutils_8.23.bb
+++ b/meta/recipes-core/coreutils/coreutils_8.23.bb
@@ -12,14 +12,17 @@ DEPENDS_class-native = ""
inherit autotools gettext texinfo
-SRC_URI = "${GNU_MIRROR}/coreutils/${BP}.tar.xz \
+SRC_URI = "${GNU_MIRROR}/coreutils/${BP}.tar.xz;name=tarball \
+ http://distfiles.gentoo.org/distfiles/${BP}-man.tar.xz;name=manpages \
file://man-decouple-manpages-from-build.patch \
file://remove-usr-local-lib-from-m4.patch \
file://fix-selinux-flask.patch \
"
-SRC_URI[md5sum] = "abed135279f87ad6762ce57ff6d89c41"
-SRC_URI[sha256sum] = "ec43ca5bcfc62242accb46b7f121f6b684ee21ecd7d075059bf650ff9e37b82d"
+SRC_URI[tarball.md5sum] = "abed135279f87ad6762ce57ff6d89c41"
+SRC_URI[tarball.sha256sum] = "ec43ca5bcfc62242accb46b7f121f6b684ee21ecd7d075059bf650ff9e37b82d"
+SRC_URI[manpages.md5sum] = "ce49bc8360e16afe67581d136606efc7"
+SRC_URI[manpages.sha256sum] = "d1b16e74b3dba4f313aeebae2c69da205f7d2e6e1c2aa8d39026c860d314ecca"
EXTRA_OECONF_class-native = "--without-gmp"
EXTRA_OECONF_class-target = "--enable-install-program=arch --libexecdir=${libdir}"
@@ -53,6 +56,8 @@ sbindir_progs= "chroot"
# directory.
acpaths = "-I ./m4"
+FILES_${PN}-doc += "${mandir}"
+
# Deal with a separate builddir failure if src doesn't exist when creating version.c/version.h
do_compile_prepend () {
mkdir -p ${B}/src
@@ -71,6 +76,10 @@ do_install_append() {
# in update-alternatives to fail, therefore use lbracket - the name used
# for the actual source file.
mv ${D}${bindir}/[ ${D}${bindir}/lbracket.${BPN}
+
+ # prebuilt man pages
+ install -d ${D}/${mandir}/man1
+ install -t ${D}/${mandir}/man1 ${S}/man/*.1
}
do_install_append_class-native(){
--
2.2.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 3/3] scripts: delete dummy help2man script
2015-02-10 19:19 [PATCH 0/3] coreutils: facilitate generating real manpages Paul Gortmaker
2015-02-10 19:19 ` [PATCH 1/3] coreutils: don't generate useless dummy stub manpages Paul Gortmaker
2015-02-10 19:19 ` [PATCH 2/3] coreutils: import prebuilt manpages from Gentoo Paul Gortmaker
@ 2015-02-10 19:19 ` Paul Gortmaker
2 siblings, 0 replies; 9+ messages in thread
From: Paul Gortmaker @ 2015-02-10 19:19 UTC (permalink / raw)
To: openembedded-core; +Cc: Paul Eggleton
This was added to try and deal with the cross compile issue of
help2man ; one can not run an ARM binary "./chmod --help" on an
x86-64 host in order to get the help text to create a man page.
This has been primarily an issue with the coreutils package.
However, we have since fixed coreutils to have useful pre-made
manpages and we don't need this script anymore. And if other
gnu packages are getting useless truncated "dummy" manpages,
we want the build to fail so we can fix those packages in a
similar way, vs. having the issue hidden via a help2man that is
a no-op.
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
---
scripts/help2man | 3 ---
1 file changed, 3 deletions(-)
delete mode 100755 scripts/help2man
diff --git a/scripts/help2man b/scripts/help2man
deleted file mode 100755
index 2bb8d868bd0c..000000000000
--- a/scripts/help2man
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-
-exit 1
--
2.2.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH 2/3] coreutils: import prebuilt manpages from Gentoo
2015-02-10 19:19 ` [PATCH 2/3] coreutils: import prebuilt manpages from Gentoo Paul Gortmaker
@ 2015-02-10 19:59 ` Mark Hatle
0 siblings, 0 replies; 9+ messages in thread
From: Mark Hatle @ 2015-02-10 19:59 UTC (permalink / raw)
To: openembedded-core
On 2/10/15 1:19 PM, Paul Gortmaker wrote:
> As can be seen here:
>
> http://lists.gnu.org/archive/html/coreutils/2014-11/msg00001.html
>
> other people have run into the headache of trying to cross compile
> coreutils, with the "help2man" problem (assumes host can run the
> target binaries with "--help" arg to collect data for manpage.)
>
> And since "current wisdom is this is working as intended" we are
> largely left with no choice but to use the same solution and
> abandon trying to generate the man pages at build time. So here
> we import prebuilt manpages.
>
> Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
> ---
> meta/recipes-core/coreutils/coreutils_8.23.bb | 15 ++++++++++++---
> 1 file changed, 12 insertions(+), 3 deletions(-)
>
> diff --git a/meta/recipes-core/coreutils/coreutils_8.23.bb b/meta/recipes-core/coreutils/coreutils_8.23.bb
> index be68a310311a..5454a43527cc 100644
> --- a/meta/recipes-core/coreutils/coreutils_8.23.bb
> +++ b/meta/recipes-core/coreutils/coreutils_8.23.bb
> @@ -12,14 +12,17 @@ DEPENDS_class-native = ""
>
> inherit autotools gettext texinfo
>
> -SRC_URI = "${GNU_MIRROR}/coreutils/${BP}.tar.xz \
> +SRC_URI = "${GNU_MIRROR}/coreutils/${BP}.tar.xz;name=tarball \
> + http://distfiles.gentoo.org/distfiles/${BP}-man.tar.xz;name=manpages \
> file://man-decouple-manpages-from-build.patch \
> file://remove-usr-local-lib-from-m4.patch \
> file://fix-selinux-flask.patch \
> "
>
> -SRC_URI[md5sum] = "abed135279f87ad6762ce57ff6d89c41"
> -SRC_URI[sha256sum] = "ec43ca5bcfc62242accb46b7f121f6b684ee21ecd7d075059bf650ff9e37b82d"
> +SRC_URI[tarball.md5sum] = "abed135279f87ad6762ce57ff6d89c41"
> +SRC_URI[tarball.sha256sum] = "ec43ca5bcfc62242accb46b7f121f6b684ee21ecd7d075059bf650ff9e37b82d"
> +SRC_URI[manpages.md5sum] = "ce49bc8360e16afe67581d136606efc7"
> +SRC_URI[manpages.sha256sum] = "d1b16e74b3dba4f313aeebae2c69da205f7d2e6e1c2aa8d39026c860d314ecca"
>
> EXTRA_OECONF_class-native = "--without-gmp"
> EXTRA_OECONF_class-target = "--enable-install-program=arch --libexecdir=${libdir}"
> @@ -53,6 +56,8 @@ sbindir_progs= "chroot"
> # directory.
> acpaths = "-I ./m4"
>
> +FILES_${PN}-doc += "${mandir}"
> +
> # Deal with a separate builddir failure if src doesn't exist when creating version.c/version.h
> do_compile_prepend () {
> mkdir -p ${B}/src
> @@ -71,6 +76,10 @@ do_install_append() {
> # in update-alternatives to fail, therefore use lbracket - the name used
> # for the actual source file.
> mv ${D}${bindir}/[ ${D}${bindir}/lbracket.${BPN}
> +
> + # prebuilt man pages
> + install -d ${D}/${mandir}/man1
> + install -t ${D}/${mandir}/man1 ${S}/man/*.1
> }
One suggestion, in order for the man pages to match the "alternative names", and
also avoid conflicts with other potential suppliers.. I'd suggest enablign the
update-alternatives approach for the man pages as well. Also rename the '[.1'
to 'lbracket.1.${BPN}' as part of that.
But the approach is correct, and I'm fine with this as-is if the community isn't
worried about man page clashes..
--Mark
> do_install_append_class-native(){
>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 1/3] coreutils: don't generate useless dummy stub manpages
2015-02-10 19:19 ` [PATCH 1/3] coreutils: don't generate useless dummy stub manpages Paul Gortmaker
@ 2015-02-11 1:51 ` ChenQi
2015-02-17 5:43 ` Paul Gortmaker
0 siblings, 1 reply; 9+ messages in thread
From: ChenQi @ 2015-02-11 1:51 UTC (permalink / raw)
To: openembedded-core
Hi Paul,
The fix-for-dummy-man-usage.patch fixes error when generating dummy man
pages.
I think we should not delete it.
Regards,
Chen Qi
On 02/11/2015 03:19 AM, Paul Gortmaker wrote:
> We had a couple patches to 1) deal with missing perl and 2) deal
> with the perl-less "dummy" help2man fallout, but in the end, they
> achieve no purpose whatsoever, since they just populate the doc
> RPM with manpages like this one:
>
> NAME
> chmod - a GNU coreutils 8.22 program
>
> DESCRIPTION
> OOOPS! Due to the lack of perl on the build system, we were
> unable to create a proper manual page for chmod.
>
> As the above serves no purpose whatsoever, and since the concept
> of running the binaries to capture the "--help" text output is
> completely broken for cross compiles, lets just decouple man page
> generation from the building of coreutils entirely so it paves the
> way for importing pre-generated manpages.
>
> Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
> ---
> .../coreutils/coreutils-8.23/dummy_help2man.patch | 22 ---------------
> .../coreutils-8.23/fix-for-dummy-man-usage.patch | 31 ----------------------
> .../man-decouple-manpages-from-build.patch | 27 +++++++++++++++++++
> meta/recipes-core/coreutils/coreutils_8.23.bb | 3 +--
> 4 files changed, 28 insertions(+), 55 deletions(-)
> delete mode 100644 meta/recipes-core/coreutils/coreutils-8.23/dummy_help2man.patch
> delete mode 100644 meta/recipes-core/coreutils/coreutils-8.23/fix-for-dummy-man-usage.patch
> create mode 100644 meta/recipes-core/coreutils/coreutils-8.23/man-decouple-manpages-from-build.patch
>
> diff --git a/meta/recipes-core/coreutils/coreutils-8.23/dummy_help2man.patch b/meta/recipes-core/coreutils/coreutils-8.23/dummy_help2man.patch
> deleted file mode 100644
> index 4757f52aa0be..000000000000
> --- a/meta/recipes-core/coreutils/coreutils-8.23/dummy_help2man.patch
> +++ /dev/null
> @@ -1,22 +0,0 @@
> -Upstream-Status: Inappropriate [disable feature]
> -
> -Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
> -diff -Nurd coreutils-8.21/man/local.mk coreutils-8.21/man/local.mk
> ---- coreutils-8.21/man/local.mk 2013-02-05 16:01:21.000000000 +0200
> -+++ coreutils-8.21/man/local.mk 2013-03-23 09:12:53.360470192 +0200
> -@@ -19,11 +19,11 @@
> - EXTRA_DIST += man/help2man man/dummy-man
> -
> - ## Graceful degradation for systems lacking perl.
> --if HAVE_PERL
> --run_help2man = $(PERL) -- $(srcdir)/man/help2man
> --else
> -+#if HAVE_PERL
> -+#run_help2man = $(PERL) -- $(srcdir)/man/help2man
> -+#else
> - run_help2man = $(SHELL) $(srcdir)/man/dummy-man
> --endif
> -+#endif
> -
> - man1_MANS = @man1_MANS@
> - EXTRA_DIST += $(man1_MANS:.1=.x)
> diff --git a/meta/recipes-core/coreutils/coreutils-8.23/fix-for-dummy-man-usage.patch b/meta/recipes-core/coreutils/coreutils-8.23/fix-for-dummy-man-usage.patch
> deleted file mode 100644
> index 58b6a7613038..000000000000
> --- a/meta/recipes-core/coreutils/coreutils-8.23/fix-for-dummy-man-usage.patch
> +++ /dev/null
> @@ -1,31 +0,0 @@
> -Upstream-Status: Pending
> -
> -coreutils: fix for dummy-man usage
> -
> -The options should be before the final argument, otherwise, the following error
> -would appear when compiling.
> -
> -"dummy-man: too many non-option arguments"
> -
> -Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
> ----
> - man/local.mk | 2 +-
> - 1 file changed, 1 insertion(+), 1 deletion(-)
> -
> -diff --git a/man/local.mk b/man/local.mk
> -index ba8fbf7..3833458 100644
> ---- a/man/local.mk
> -+++ b/man/local.mk
> -@@ -101,8 +101,8 @@ man/dynamic-deps.mk: Makefile
> - && $(run_help2man) \
> - --source='$(PACKAGE_STRING)' \
> - --include=$(srcdir)/man/$$name.x \
> -- --output=$$t/$$name.1 $$t/$$argv \
> - --info-page='coreutils \(aq'$$name' invocation\(aq' \
> -+ --output=$$t/$$name.1 $$t/$$argv \
> - && sed \
> - -e 's|$*\.td/||g' \
> - -e '/For complete documentation/d' \
> ---
> -1.9.1
> -
> diff --git a/meta/recipes-core/coreutils/coreutils-8.23/man-decouple-manpages-from-build.patch b/meta/recipes-core/coreutils/coreutils-8.23/man-decouple-manpages-from-build.patch
> new file mode 100644
> index 000000000000..3c896a11bf2d
> --- /dev/null
> +++ b/meta/recipes-core/coreutils/coreutils-8.23/man-decouple-manpages-from-build.patch
> @@ -0,0 +1,27 @@
> +From b4d258629f090066783c3b4c91b40f63b9d0a296 Mon Sep 17 00:00:00 2001
> +From: Paul Gortmaker <paul.gortmaker@windriver.com>
> +Date: Sun, 8 Feb 2015 16:51:57 -0500
> +Subject: [PATCH] man: decouple manpages from build
> +
> +The use of "help2man" doesn't work at all for cross compile, in
> +addition to the extra requirement of perl it adds.
> +
> +Just decouple the manpages from the build in order to pave the way for
> +importing prebuilt manpages that can be used in a cross build situation.
> +
> +Upstream-Status: Inappropriate [upstream doesn't care about x-compile case.]
> +Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
> +
> +diff --git a/Makefile.am b/Makefile.am
> +index fb4af27..7576b2c 100644
> +--- a/Makefile.am
> ++++ b/Makefile.am
> +@@ -214,5 +214,4 @@ AM_CPPFLAGS = -Ilib -I$(top_srcdir)/lib -Isrc -I$(top_srcdir)/src
> + include $(top_srcdir)/lib/local.mk
> + include $(top_srcdir)/src/local.mk
> + include $(top_srcdir)/doc/local.mk
> +-include $(top_srcdir)/man/local.mk
> + include $(top_srcdir)/tests/local.mk
> +--
> +2.2.2
> +
> diff --git a/meta/recipes-core/coreutils/coreutils_8.23.bb b/meta/recipes-core/coreutils/coreutils_8.23.bb
> index e9d6494708de..be68a310311a 100644
> --- a/meta/recipes-core/coreutils/coreutils_8.23.bb
> +++ b/meta/recipes-core/coreutils/coreutils_8.23.bb
> @@ -13,9 +13,8 @@ DEPENDS_class-native = ""
> inherit autotools gettext texinfo
>
> SRC_URI = "${GNU_MIRROR}/coreutils/${BP}.tar.xz \
> + file://man-decouple-manpages-from-build.patch \
> file://remove-usr-local-lib-from-m4.patch \
> - file://dummy_help2man.patch \
> - file://fix-for-dummy-man-usage.patch \
> file://fix-selinux-flask.patch \
> "
>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 1/3] coreutils: don't generate useless dummy stub manpages
2015-02-11 1:51 ` ChenQi
@ 2015-02-17 5:43 ` Paul Gortmaker
0 siblings, 0 replies; 9+ messages in thread
From: Paul Gortmaker @ 2015-02-17 5:43 UTC (permalink / raw)
To: ChenQi; +Cc: openembedded-core
[Re: [OE-core] [PATCH 1/3] coreutils: don't generate useless dummy stub manpages] On 11/02/2015 (Wed 09:51) ChenQi wrote:
> Hi Paul,
>
> The fix-for-dummy-man-usage.patch fixes error when generating dummy
> man pages.
> I think we should not delete it.
Sorry - just seeing this now since the mailing list mangles the reply
to header, and so I am not on the to/cc list. Honestly lucky that I
saw it at all.
Anyway, we are ok to delete the patch because we will _never_
generate those dummy manpages. They are absolutely useless and
just plain frustrating. If you look at the whole series, you
will see that we disable generating _any_ manpages from the
build.
Paul.
--
>
> Regards,
> Chen Qi
>
>
> On 02/11/2015 03:19 AM, Paul Gortmaker wrote:
> >We had a couple patches to 1) deal with missing perl and 2) deal
> >with the perl-less "dummy" help2man fallout, but in the end, they
> >achieve no purpose whatsoever, since they just populate the doc
> >RPM with manpages like this one:
> >
> > NAME
> > chmod - a GNU coreutils 8.22 program
> >
> > DESCRIPTION
> > OOOPS! Due to the lack of perl on the build system, we were
> > unable to create a proper manual page for chmod.
> >
> >As the above serves no purpose whatsoever, and since the concept
> >of running the binaries to capture the "--help" text output is
> >completely broken for cross compiles, lets just decouple man page
> >generation from the building of coreutils entirely so it paves the
> >way for importing pre-generated manpages.
> >
> >Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
> >---
> > .../coreutils/coreutils-8.23/dummy_help2man.patch | 22 ---------------
> > .../coreutils-8.23/fix-for-dummy-man-usage.patch | 31 ----------------------
> > .../man-decouple-manpages-from-build.patch | 27 +++++++++++++++++++
> > meta/recipes-core/coreutils/coreutils_8.23.bb | 3 +--
> > 4 files changed, 28 insertions(+), 55 deletions(-)
> > delete mode 100644 meta/recipes-core/coreutils/coreutils-8.23/dummy_help2man.patch
> > delete mode 100644 meta/recipes-core/coreutils/coreutils-8.23/fix-for-dummy-man-usage.patch
> > create mode 100644 meta/recipes-core/coreutils/coreutils-8.23/man-decouple-manpages-from-build.patch
> >
> >diff --git a/meta/recipes-core/coreutils/coreutils-8.23/dummy_help2man.patch b/meta/recipes-core/coreutils/coreutils-8.23/dummy_help2man.patch
> >deleted file mode 100644
> >index 4757f52aa0be..000000000000
> >--- a/meta/recipes-core/coreutils/coreutils-8.23/dummy_help2man.patch
> >+++ /dev/null
> >@@ -1,22 +0,0 @@
> >-Upstream-Status: Inappropriate [disable feature]
> >-
> >-Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
> >-diff -Nurd coreutils-8.21/man/local.mk coreutils-8.21/man/local.mk
> >---- coreutils-8.21/man/local.mk 2013-02-05 16:01:21.000000000 +0200
> >-+++ coreutils-8.21/man/local.mk 2013-03-23 09:12:53.360470192 +0200
> >-@@ -19,11 +19,11 @@
> >- EXTRA_DIST += man/help2man man/dummy-man
> >-
> >- ## Graceful degradation for systems lacking perl.
> >--if HAVE_PERL
> >--run_help2man = $(PERL) -- $(srcdir)/man/help2man
> >--else
> >-+#if HAVE_PERL
> >-+#run_help2man = $(PERL) -- $(srcdir)/man/help2man
> >-+#else
> >- run_help2man = $(SHELL) $(srcdir)/man/dummy-man
> >--endif
> >-+#endif
> >-
> >- man1_MANS = @man1_MANS@
> >- EXTRA_DIST += $(man1_MANS:.1=.x)
> >diff --git a/meta/recipes-core/coreutils/coreutils-8.23/fix-for-dummy-man-usage.patch b/meta/recipes-core/coreutils/coreutils-8.23/fix-for-dummy-man-usage.patch
> >deleted file mode 100644
> >index 58b6a7613038..000000000000
> >--- a/meta/recipes-core/coreutils/coreutils-8.23/fix-for-dummy-man-usage.patch
> >+++ /dev/null
> >@@ -1,31 +0,0 @@
> >-Upstream-Status: Pending
> >-
> >-coreutils: fix for dummy-man usage
> >-
> >-The options should be before the final argument, otherwise, the following error
> >-would appear when compiling.
> >-
> >-"dummy-man: too many non-option arguments"
> >-
> >-Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
> >----
> >- man/local.mk | 2 +-
> >- 1 file changed, 1 insertion(+), 1 deletion(-)
> >-
> >-diff --git a/man/local.mk b/man/local.mk
> >-index ba8fbf7..3833458 100644
> >---- a/man/local.mk
> >-+++ b/man/local.mk
> >-@@ -101,8 +101,8 @@ man/dynamic-deps.mk: Makefile
> >- && $(run_help2man) \
> >- --source='$(PACKAGE_STRING)' \
> >- --include=$(srcdir)/man/$$name.x \
> >-- --output=$$t/$$name.1 $$t/$$argv \
> >- --info-page='coreutils \(aq'$$name' invocation\(aq' \
> >-+ --output=$$t/$$name.1 $$t/$$argv \
> >- && sed \
> >- -e 's|$*\.td/||g' \
> >- -e '/For complete documentation/d' \
> >---
> >-1.9.1
> >-
> >diff --git a/meta/recipes-core/coreutils/coreutils-8.23/man-decouple-manpages-from-build.patch b/meta/recipes-core/coreutils/coreutils-8.23/man-decouple-manpages-from-build.patch
> >new file mode 100644
> >index 000000000000..3c896a11bf2d
> >--- /dev/null
> >+++ b/meta/recipes-core/coreutils/coreutils-8.23/man-decouple-manpages-from-build.patch
> >@@ -0,0 +1,27 @@
> >+From b4d258629f090066783c3b4c91b40f63b9d0a296 Mon Sep 17 00:00:00 2001
> >+From: Paul Gortmaker <paul.gortmaker@windriver.com>
> >+Date: Sun, 8 Feb 2015 16:51:57 -0500
> >+Subject: [PATCH] man: decouple manpages from build
> >+
> >+The use of "help2man" doesn't work at all for cross compile, in
> >+addition to the extra requirement of perl it adds.
> >+
> >+Just decouple the manpages from the build in order to pave the way for
> >+importing prebuilt manpages that can be used in a cross build situation.
> >+
> >+Upstream-Status: Inappropriate [upstream doesn't care about x-compile case.]
> >+Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
> >+
> >+diff --git a/Makefile.am b/Makefile.am
> >+index fb4af27..7576b2c 100644
> >+--- a/Makefile.am
> >++++ b/Makefile.am
> >+@@ -214,5 +214,4 @@ AM_CPPFLAGS = -Ilib -I$(top_srcdir)/lib -Isrc -I$(top_srcdir)/src
> >+ include $(top_srcdir)/lib/local.mk
> >+ include $(top_srcdir)/src/local.mk
> >+ include $(top_srcdir)/doc/local.mk
> >+-include $(top_srcdir)/man/local.mk
> >+ include $(top_srcdir)/tests/local.mk
> >+--
> >+2.2.2
> >+
> >diff --git a/meta/recipes-core/coreutils/coreutils_8.23.bb b/meta/recipes-core/coreutils/coreutils_8.23.bb
> >index e9d6494708de..be68a310311a 100644
> >--- a/meta/recipes-core/coreutils/coreutils_8.23.bb
> >+++ b/meta/recipes-core/coreutils/coreutils_8.23.bb
> >@@ -13,9 +13,8 @@ DEPENDS_class-native = ""
> > inherit autotools gettext texinfo
> > SRC_URI = "${GNU_MIRROR}/coreutils/${BP}.tar.xz \
> >+ file://man-decouple-manpages-from-build.patch \
> > file://remove-usr-local-lib-from-m4.patch \
> >- file://dummy_help2man.patch \
> >- file://fix-for-dummy-man-usage.patch \
> > file://fix-selinux-flask.patch \
> > "
>
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core
>
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 2/3] coreutils: import prebuilt manpages from Gentoo
2015-02-17 5:47 [PATCH-v2 0/3] coreutils: facilitate generating real manpages Paul Gortmaker
@ 2015-02-17 5:47 ` Paul Gortmaker
2015-02-17 15:55 ` Mark Hatle
0 siblings, 1 reply; 9+ messages in thread
From: Paul Gortmaker @ 2015-02-17 5:47 UTC (permalink / raw)
To: openembedded-core; +Cc: Paul Eggleton
As can be seen here:
http://lists.gnu.org/archive/html/coreutils/2014-11/msg00001.html
other people have run into the headache of trying to cross compile
coreutils, with the "help2man" problem (assumes host can run the
target binaries with "--help" arg to collect data for manpage.)
And since "current wisdom is this is working as intended" we are
largely left with no choice but to use the same solution and
abandon trying to generate the man pages at build time. So here
we import prebuilt manpages.
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
---
meta/recipes-core/coreutils/coreutils_8.23.bb | 21 ++++++++++++++++++---
1 file changed, 18 insertions(+), 3 deletions(-)
diff --git a/meta/recipes-core/coreutils/coreutils_8.23.bb b/meta/recipes-core/coreutils/coreutils_8.23.bb
index be68a310311a..63df75e7baf2 100644
--- a/meta/recipes-core/coreutils/coreutils_8.23.bb
+++ b/meta/recipes-core/coreutils/coreutils_8.23.bb
@@ -12,14 +12,17 @@ DEPENDS_class-native = ""
inherit autotools gettext texinfo
-SRC_URI = "${GNU_MIRROR}/coreutils/${BP}.tar.xz \
+SRC_URI = "${GNU_MIRROR}/coreutils/${BP}.tar.xz;name=tarball \
+ http://distfiles.gentoo.org/distfiles/${BP}-man.tar.xz;name=manpages \
file://man-decouple-manpages-from-build.patch \
file://remove-usr-local-lib-from-m4.patch \
file://fix-selinux-flask.patch \
"
-SRC_URI[md5sum] = "abed135279f87ad6762ce57ff6d89c41"
-SRC_URI[sha256sum] = "ec43ca5bcfc62242accb46b7f121f6b684ee21ecd7d075059bf650ff9e37b82d"
+SRC_URI[tarball.md5sum] = "abed135279f87ad6762ce57ff6d89c41"
+SRC_URI[tarball.sha256sum] = "ec43ca5bcfc62242accb46b7f121f6b684ee21ecd7d075059bf650ff9e37b82d"
+SRC_URI[manpages.md5sum] = "ce49bc8360e16afe67581d136606efc7"
+SRC_URI[manpages.sha256sum] = "d1b16e74b3dba4f313aeebae2c69da205f7d2e6e1c2aa8d39026c860d314ecca"
EXTRA_OECONF_class-native = "--without-gmp"
EXTRA_OECONF_class-target = "--enable-install-program=arch --libexecdir=${libdir}"
@@ -71,6 +74,13 @@ do_install_append() {
# in update-alternatives to fail, therefore use lbracket - the name used
# for the actual source file.
mv ${D}${bindir}/[ ${D}${bindir}/lbracket.${BPN}
+
+ # prebuilt man pages
+ install -d ${D}/${mandir}/man1
+ install -t ${D}/${mandir}/man1 ${S}/man/*.1
+ # prebuilt man pages don't do a separate man page for [ vs test.
+ # see comment above r.e. sed and update-alternatives
+ cp -a ${D}${mandir}/man1/test.1 ${D}${mandir}/man1/lbracket.1.${BPN}
}
do_install_append_class-native(){
@@ -82,18 +92,23 @@ inherit update-alternatives
ALTERNATIVE_PRIORITY = "100"
ALTERNATIVE_${PN} = "lbracket ${bindir_progs} ${base_bindir_progs} ${sbindir_progs} base64 mktemp df"
+ALTERNATIVE_${PN}-doc = "base64.1 mktemp.1 df.1 lbracket.1"
ALTERNATIVE_LINK_NAME[base64] = "${base_bindir}/base64"
ALTERNATIVE_TARGET[base64] = "${bindir}/base64.${BPN}"
+ALTERNATIVE_LINK_NAME[base64.1] = "${mandir}/man1/base64.1"
ALTERNATIVE_LINK_NAME[mktemp] = "${base_bindir}/mktemp"
ALTERNATIVE_TARGET[mktemp] = "${bindir}/mktemp.${BPN}"
+ALTERNATIVE_LINK_NAME[mktemp.1] = "${mandir}/man1/mktemp.1"
ALTERNATIVE_LINK_NAME[df] = "${base_bindir}/df"
ALTERNATIVE_TARGET[df] = "${bindir}/df.${BPN}"
+ALTERNATIVE_LINK_NAME[df.1] = "${mandir}/man1/df.1"
ALTERNATIVE_LINK_NAME[lbracket] = "${bindir}/["
ALTERNATIVE_TARGET[lbracket] = "${bindir}/lbracket.${BPN}"
+ALTERNATIVE_LINK_NAME[lbracket.1] = "${mandir}/man1/lbracket.1"
python __anonymous() {
for prog in d.getVar('base_bindir_progs', True).split():
--
2.2.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH 2/3] coreutils: import prebuilt manpages from Gentoo
2015-02-17 5:47 ` [PATCH 2/3] coreutils: import prebuilt manpages from Gentoo Paul Gortmaker
@ 2015-02-17 15:55 ` Mark Hatle
0 siblings, 0 replies; 9+ messages in thread
From: Mark Hatle @ 2015-02-17 15:55 UTC (permalink / raw)
To: Paul Gortmaker, openembedded-core; +Cc: Paul Eggleton
On 2/16/15 11:47 PM, Paul Gortmaker wrote:
> As can be seen here:
>
> http://lists.gnu.org/archive/html/coreutils/2014-11/msg00001.html
>
> other people have run into the headache of trying to cross compile
> coreutils, with the "help2man" problem (assumes host can run the
> target binaries with "--help" arg to collect data for manpage.)
>
> And since "current wisdom is this is working as intended" we are
> largely left with no choice but to use the same solution and
> abandon trying to generate the man pages at build time. So here
> we import prebuilt manpages.
Looks like it addresses the issue I had.
Looks good!
--Mark
> Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
> ---
> meta/recipes-core/coreutils/coreutils_8.23.bb | 21 ++++++++++++++++++---
> 1 file changed, 18 insertions(+), 3 deletions(-)
>
> diff --git a/meta/recipes-core/coreutils/coreutils_8.23.bb b/meta/recipes-core/coreutils/coreutils_8.23.bb
> index be68a310311a..63df75e7baf2 100644
> --- a/meta/recipes-core/coreutils/coreutils_8.23.bb
> +++ b/meta/recipes-core/coreutils/coreutils_8.23.bb
> @@ -12,14 +12,17 @@ DEPENDS_class-native = ""
>
> inherit autotools gettext texinfo
>
> -SRC_URI = "${GNU_MIRROR}/coreutils/${BP}.tar.xz \
> +SRC_URI = "${GNU_MIRROR}/coreutils/${BP}.tar.xz;name=tarball \
> + http://distfiles.gentoo.org/distfiles/${BP}-man.tar.xz;name=manpages \
> file://man-decouple-manpages-from-build.patch \
> file://remove-usr-local-lib-from-m4.patch \
> file://fix-selinux-flask.patch \
> "
>
> -SRC_URI[md5sum] = "abed135279f87ad6762ce57ff6d89c41"
> -SRC_URI[sha256sum] = "ec43ca5bcfc62242accb46b7f121f6b684ee21ecd7d075059bf650ff9e37b82d"
> +SRC_URI[tarball.md5sum] = "abed135279f87ad6762ce57ff6d89c41"
> +SRC_URI[tarball.sha256sum] = "ec43ca5bcfc62242accb46b7f121f6b684ee21ecd7d075059bf650ff9e37b82d"
> +SRC_URI[manpages.md5sum] = "ce49bc8360e16afe67581d136606efc7"
> +SRC_URI[manpages.sha256sum] = "d1b16e74b3dba4f313aeebae2c69da205f7d2e6e1c2aa8d39026c860d314ecca"
>
> EXTRA_OECONF_class-native = "--without-gmp"
> EXTRA_OECONF_class-target = "--enable-install-program=arch --libexecdir=${libdir}"
> @@ -71,6 +74,13 @@ do_install_append() {
> # in update-alternatives to fail, therefore use lbracket - the name used
> # for the actual source file.
> mv ${D}${bindir}/[ ${D}${bindir}/lbracket.${BPN}
> +
> + # prebuilt man pages
> + install -d ${D}/${mandir}/man1
> + install -t ${D}/${mandir}/man1 ${S}/man/*.1
> + # prebuilt man pages don't do a separate man page for [ vs test.
> + # see comment above r.e. sed and update-alternatives
> + cp -a ${D}${mandir}/man1/test.1 ${D}${mandir}/man1/lbracket.1.${BPN}
> }
>
> do_install_append_class-native(){
> @@ -82,18 +92,23 @@ inherit update-alternatives
>
> ALTERNATIVE_PRIORITY = "100"
> ALTERNATIVE_${PN} = "lbracket ${bindir_progs} ${base_bindir_progs} ${sbindir_progs} base64 mktemp df"
> +ALTERNATIVE_${PN}-doc = "base64.1 mktemp.1 df.1 lbracket.1"
>
> ALTERNATIVE_LINK_NAME[base64] = "${base_bindir}/base64"
> ALTERNATIVE_TARGET[base64] = "${bindir}/base64.${BPN}"
> +ALTERNATIVE_LINK_NAME[base64.1] = "${mandir}/man1/base64.1"
>
> ALTERNATIVE_LINK_NAME[mktemp] = "${base_bindir}/mktemp"
> ALTERNATIVE_TARGET[mktemp] = "${bindir}/mktemp.${BPN}"
> +ALTERNATIVE_LINK_NAME[mktemp.1] = "${mandir}/man1/mktemp.1"
>
> ALTERNATIVE_LINK_NAME[df] = "${base_bindir}/df"
> ALTERNATIVE_TARGET[df] = "${bindir}/df.${BPN}"
> +ALTERNATIVE_LINK_NAME[df.1] = "${mandir}/man1/df.1"
>
> ALTERNATIVE_LINK_NAME[lbracket] = "${bindir}/["
> ALTERNATIVE_TARGET[lbracket] = "${bindir}/lbracket.${BPN}"
> +ALTERNATIVE_LINK_NAME[lbracket.1] = "${mandir}/man1/lbracket.1"
>
> python __anonymous() {
> for prog in d.getVar('base_bindir_progs', True).split():
>
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2015-02-17 15:55 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-02-10 19:19 [PATCH 0/3] coreutils: facilitate generating real manpages Paul Gortmaker
2015-02-10 19:19 ` [PATCH 1/3] coreutils: don't generate useless dummy stub manpages Paul Gortmaker
2015-02-11 1:51 ` ChenQi
2015-02-17 5:43 ` Paul Gortmaker
2015-02-10 19:19 ` [PATCH 2/3] coreutils: import prebuilt manpages from Gentoo Paul Gortmaker
2015-02-10 19:59 ` Mark Hatle
2015-02-10 19:19 ` [PATCH 3/3] scripts: delete dummy help2man script Paul Gortmaker
-- strict thread matches above, loose matches on Subject: below --
2015-02-17 5:47 [PATCH-v2 0/3] coreutils: facilitate generating real manpages Paul Gortmaker
2015-02-17 5:47 ` [PATCH 2/3] coreutils: import prebuilt manpages from Gentoo Paul Gortmaker
2015-02-17 15:55 ` Mark Hatle
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox