All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] squashfs-tools: always install prebuilt manpage
@ 2022-05-16 10:42 changqing.li
  2022-05-16 10:54 ` [OE-core] " richard.purdie
  0 siblings, 1 reply; 5+ messages in thread
From: changqing.li @ 2022-05-16 10:42 UTC (permalink / raw)
  To: openembedded-core

From: Changqing Li <changqing.li@windriver.com>

When other feature enabled, and involve help2man into squashfs-tools's
recipe-sysroot-native, install-manpages.sh will run target binary on
build host, eg: mksquashfs --help, which will cause error.
Eg:
 ../squashfs-tools/mksquashfs: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by ../squashfs-tools/mksquashfs)
| help2man: can't get `--help' info from /tmp/tmp.pEG5R8COVb/mksquashfs.sh
| Try `--no-discard-stderr' if option outputs to stderr
| ./mksquashfs-manpage.sh: help2man returned error.  Aborting
| ../generate-manpages/install-manpages.sh: Failed to generate manpage.  Aborting

Fixed by always install prebuilt manpage, avoid running target binary on
build host

Signed-off-by: Changqing Li <changqing.li@windriver.com>
---
 ...ools-always-install-prebuilt-manpage.patch | 48 +++++++++++++++++++
 .../squashfs-tools/squashfs-tools_git.bb      |  1 +
 2 files changed, 49 insertions(+)
 create mode 100644 meta/recipes-devtools/squashfs-tools/files/0001-squashfs-tools-always-install-prebuilt-manpage.patch

diff --git a/meta/recipes-devtools/squashfs-tools/files/0001-squashfs-tools-always-install-prebuilt-manpage.patch b/meta/recipes-devtools/squashfs-tools/files/0001-squashfs-tools-always-install-prebuilt-manpage.patch
new file mode 100644
index 0000000000..2d0b350074
--- /dev/null
+++ b/meta/recipes-devtools/squashfs-tools/files/0001-squashfs-tools-always-install-prebuilt-manpage.patch
@@ -0,0 +1,48 @@
+From 9bf47880ebb0fafd36226ac7fd1c2e8dffc9bc64 Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Mon, 16 May 2022 17:57:07 +0800
+Subject: [PATCH] squashfs-tools: always install prebuilt manpage
+
+Upstream-Status: Inappropriate [oe-specific]
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ generate-manpages/install-manpages.sh | 22 +++++-----------------
+ 1 file changed, 5 insertions(+), 17 deletions(-)
+
+diff --git a/generate-manpages/install-manpages.sh b/generate-manpages/install-manpages.sh
+index 6a43b89..770f15a 100755
+--- a/generate-manpages/install-manpages.sh
++++ b/generate-manpages/install-manpages.sh
+@@ -27,23 +27,11 @@ cd $1/generate-manpages
+ #
+ # If help2man doesn't exist, use the pre-built manpages.
+ 
+-if ! which help2man > /dev/null 2>&1; then
+-	echo "$0: ERROR - No help2man in PATH.  Cannot generate manpages." >&2
+-	echo "WARNING: Installing pre-built manpages." >&2
+-	echo "WARNING: These pages are built with the Makefile defaults, and all" >&2
+-	echo "WARNING: the compressors configured (except the deprecated lzma).  This may not" >&2
+-	echo "WARNING: match your build configuation." >&2
+-	source=../manpages
+-else
+-	for i in mksquashfs unsquashfs sqfstar sqfscat; do
+-		if ! ./$i-manpage.sh ../squashfs-tools ../squashfs-tools/$i.1; then
+-			echo "$0: Failed to generate manpage.  Aborting" >&2
+-			exit 1
+-		fi
+-	done
+-
+-	source=../squashfs-tools
+-fi
++echo "WARNING: Installing pre-built manpages." >&2
++echo "WARNING: These pages are built with the Makefile defaults, and all" >&2
++echo "WARNING: the compressors configured (except the deprecated lzma).  This may not" >&2
++echo "WARNING: match your build configuation." >&2
++source=../manpages
+ 
+ if ! mkdir -p $2; then
+ 	echo "$0: Creating manpage install directory failed.  Aborting" >&2
+-- 
+2.25.1
+
diff --git a/meta/recipes-devtools/squashfs-tools/squashfs-tools_git.bb b/meta/recipes-devtools/squashfs-tools/squashfs-tools_git.bb
index 4e009d2625..3726650e3c 100644
--- a/meta/recipes-devtools/squashfs-tools/squashfs-tools_git.bb
+++ b/meta/recipes-devtools/squashfs-tools/squashfs-tools_git.bb
@@ -11,6 +11,7 @@ PV = "4.5.1"
 SRCREV = "afdd63fc386919b4aa40d573b0a6069414d14317"
 SRC_URI = "git://github.com/plougher/squashfs-tools.git;protocol=https;branch=master \
            file://0001-install-manpages.sh-do-not-write-original-timestamps.patch \
+           file://0001-squashfs-tools-always-install-prebuilt-manpage.patch \
            "
 UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))"
 
-- 
2.25.1



^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [OE-core] [PATCH] squashfs-tools: always install prebuilt manpage
  2022-05-16 10:42 [PATCH] squashfs-tools: always install prebuilt manpage changqing.li
@ 2022-05-16 10:54 ` richard.purdie
  2022-05-17  2:27   ` Li, Changqing
  0 siblings, 1 reply; 5+ messages in thread
From: richard.purdie @ 2022-05-16 10:54 UTC (permalink / raw)
  To: Changqing Li, openembedded-core

On Mon, 2022-05-16 at 18:42 +0800, Changqing Li wrote:
> From: Changqing Li <changqing.li@windriver.com>
> 
> When other feature enabled, and involve help2man into squashfs-tools's
> recipe-sysroot-native, install-manpages.sh will run target binary on
> build host, eg: mksquashfs --help, which will cause error.
> Eg:
>  ../squashfs-tools/mksquashfs: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by ../squashfs-tools/mksquashfs)
> > help2man: can't get `--help' info from /tmp/tmp.pEG5R8COVb/mksquashfs.sh
> > Try `--no-discard-stderr' if option outputs to stderr
> > ./mksquashfs-manpage.sh: help2man returned error.  Aborting
> > ../generate-manpages/install-manpages.sh: Failed to generate manpage.  Aborting
> 
> Fixed by always install prebuilt manpage, avoid running target binary on
> build host
> 
> Signed-off-by: Changqing Li <changqing.li@windriver.com>

I'd much prefer not to carry a patch doing this. Which "other feature
enabled" trigger this to happen?

We might want to talk to upstream about making this configurable rather
than carrying a patch, or we make sure help2man is never accessible to
this recipe in some other way.

Cheers,

Richard



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [OE-core] [PATCH] squashfs-tools: always install prebuilt manpage
  2022-05-16 10:54 ` [OE-core] " richard.purdie
@ 2022-05-17  2:27   ` Li, Changqing
  2022-05-17  7:32     ` richard.purdie
  0 siblings, 1 reply; 5+ messages in thread
From: Li, Changqing @ 2022-05-17  2:27 UTC (permalink / raw)
  To: richard.purdie, openembedded-core

[-- Attachment #1: Type: text/plain, Size: 2377 bytes --]



________________________________
From: richard.purdie@linuxfoundation.org <richard.purdie@linuxfoundation.org>
Sent: Monday, May 16, 2022 6:54 PM
To: Li, Changqing <Changqing.Li@windriver.com>; openembedded-core@lists.openembedded.org <openembedded-core@lists.openembedded.org>
Subject: Re: [OE-core] [PATCH] squashfs-tools: always install prebuilt manpage

[Please note: This e-mail is from an EXTERNAL e-mail address]

On Mon, 2022-05-16 at 18:42 +0800, Changqing Li wrote:
> From: Changqing Li <changqing.li@windriver.com>
>
> When other feature enabled, and involve help2man into squashfs-tools's
> recipe-sysroot-native, install-manpages.sh will run target binary on
> build host, eg: mksquashfs --help, which will cause error.
> Eg:
>  ../squashfs-tools/mksquashfs: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by ../squashfs-tools/mksquashfs)
> > help2man: can't get `--help' info from /tmp/tmp.pEG5R8COVb/mksquashfs.sh
> > Try `--no-discard-stderr' if option outputs to stderr
> > ./mksquashfs-manpage.sh: help2man returned error.  Aborting
> > ../generate-manpages/install-manpages.sh: Failed to generate manpage.  Aborting
>
> Fixed by always install prebuilt manpage, avoid running target binary on
> build host
>
> Signed-off-by: Changqing Li <changqing.li@windriver.com>

I'd much prefer not to carry a patch doing this. Which "other feature
enabled" trigger this to happen?

When  meta-secure-core  is involved,  and DISTRO_FEATURES efi-secure-boot and ima is enabled,
in meta-signing-key/classes/user-key-store.bbclass,  it will add DEPENDS as following:
DEPENDS:append:class-target = " \
    ${@bb.utils.contains("DISTRO_FEATURES", "efi-secure-boot", "sbsigntool-native", "", d)} \
    ${@bb.utils.contains("DISTRO_FEATURES", "efi-secure-boot", "libsign-native", "", d)} \
    openssl-native \
    ${@bb.utils.contains("DISTRO_FEATURES", "efi-secure-boot", "efitools-native gnupg-native", "", d)} \
"

and efitools-native  DEPENDS  on  help2man-native,  so all target depends on help2man-native.
efitools's manpage also don't configurable.

We might want to talk to upstream about making this configurable rather
than carrying a patch, or we make sure help2man is never accessible to
this recipe in some other way.

I will talk to upstream about this first.

Cheers,

Richard


[-- Attachment #2: Type: text/html, Size: 4775 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [OE-core] [PATCH] squashfs-tools: always install prebuilt manpage
  2022-05-17  2:27   ` Li, Changqing
@ 2022-05-17  7:32     ` richard.purdie
  2022-05-18  1:29       ` Li, Changqing
  0 siblings, 1 reply; 5+ messages in thread
From: richard.purdie @ 2022-05-17  7:32 UTC (permalink / raw)
  To: Li, Changqing, openembedded-core

On Tue, 2022-05-17 at 02:27 +0000, Li, Changqing wrote:
> 
> 
> From: richard.purdie@linuxfoundation.org
> <richard.purdie@linuxfoundation.org>
> Sent: Monday, May 16, 2022 6:54 PM
> To: Li, Changqing <Changqing.Li@windriver.com>;
> openembedded-core@lists.openembedded.org
> <openembedded-core@lists.openembedded.org>
> Subject: Re: [OE-core] [PATCH] squashfs-tools: always install
> prebuilt manpage 
> [Please note: This e-mail is from an EXTERNAL e-mail address]
> 
> On Mon, 2022-05-16 at 18:42 +0800, Changqing Li wrote:
> > From: Changqing Li <changqing.li@windriver.com>
> > 
> > When other feature enabled, and involve help2man into squashfs-
> > tools's
> > recipe-sysroot-native, install-manpages.sh will run target binary
> > on
> > build host, eg: mksquashfs --help, which will cause error.
> > Eg:
> >   ../squashfs-tools/mksquashfs: /lib/x86_64-linux-gnu/libc.so.6:
> > version `GLIBC_2.34' not found (required by ../squashfs-
> > tools/mksquashfs)
> > > help2man: can't get `--help' info from
> > > /tmp/tmp.pEG5R8COVb/mksquashfs.sh
> > > Try `--no-discard-stderr' if option outputs to stderr
> > > ./mksquashfs-manpage.sh: help2man returned error.  Aborting
> > > ../generate-manpages/install-manpages.sh: Failed to generate
> > > manpage.  Aborting
> > 
> > Fixed by always install prebuilt manpage, avoid running target
> > binary on
> > build host
> > 
> > Signed-off-by: Changqing Li <changqing.li@windriver.com>
> 
> I'd much prefer not to carry a patch doing this. Which "other feature
> enabled" trigger this to happen?
> 
> When  meta-secure-core  is involved,  and DISTRO_FEATURES efi-secure-
> boot and ima is enabled,  
> in meta-signing-key/classes/user-key-store.bbclass,  it will add
> DEPENDS as following:
> DEPENDS:append:class-target = " \
>     ${@bb.utils.contains("DISTRO_FEATURES", "efi-secure-boot",
> "sbsigntool-native", "", d)} \
>     ${@bb.utils.contains("DISTRO_FEATURES", "efi-secure-boot",
> "libsign-native", "", d)} \
>     openssl-native \
>     ${@bb.utils.contains("DISTRO_FEATURES", "efi-secure-boot",
> "efitools-native gnupg-native", "", d)} \
> "
> 
> and efitools-native  DEPENDS  on  help2man-native,  so all target
> depends on help2man-native.
> efitools's manpage also don't configurable.
> 
> We might want to talk to upstream about making this configurable
> rather
> than carrying a patch, or we make sure help2man is never accessible
> to
> this recipe in some other way.
> 
> I will talk to upstream about this first.

What would also probably help is adding help2man-native to
SSTATE_EXCLUDEDEPS_SYSROOT in layer.conf in OE-Core.

That runs the risk of triggering some build failures as it did when we
added pkgconfig-native there but is probably the right thing to do. It
would force recipes that want help2man-native to have an explicit
DEPENDS so we'd have to test and fix any recipes that needed that
adding.

Cheers,

Richard



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [OE-core] [PATCH] squashfs-tools: always install prebuilt manpage
  2022-05-17  7:32     ` richard.purdie
@ 2022-05-18  1:29       ` Li, Changqing
  0 siblings, 0 replies; 5+ messages in thread
From: Li, Changqing @ 2022-05-18  1:29 UTC (permalink / raw)
  To: richard.purdie, openembedded-core

[-- Attachment #1: Type: text/plain, Size: 3484 bytes --]



________________________________
From: richard.purdie@linuxfoundation.org <richard.purdie@linuxfoundation.org>
Sent: Tuesday, May 17, 2022 3:32 PM
To: Li, Changqing <Changqing.Li@windriver.com>; openembedded-core@lists.openembedded.org <openembedded-core@lists.openembedded.org>
Subject: Re: [OE-core] [PATCH] squashfs-tools: always install prebuilt manpage

[Please note: This e-mail is from an EXTERNAL e-mail address]

On Tue, 2022-05-17 at 02:27 +0000, Li, Changqing wrote:
>
>
> From: richard.purdie@linuxfoundation.org
> <richard.purdie@linuxfoundation.org>
> Sent: Monday, May 16, 2022 6:54 PM
> To: Li, Changqing <Changqing.Li@windriver.com>;
> openembedded-core@lists.openembedded.org
> <openembedded-core@lists.openembedded.org>
> Subject: Re: [OE-core] [PATCH] squashfs-tools: always install
> prebuilt manpage
> [Please note: This e-mail is from an EXTERNAL e-mail address]
>
> On Mon, 2022-05-16 at 18:42 +0800, Changqing Li wrote:
> > From: Changqing Li <changqing.li@windriver.com>
> >
> > When other feature enabled, and involve help2man into squashfs-
> > tools's
> > recipe-sysroot-native, install-manpages.sh will run target binary
> > on
> > build host, eg: mksquashfs --help, which will cause error.
> > Eg:
> >   ../squashfs-tools/mksquashfs: /lib/x86_64-linux-gnu/libc.so.6:
> > version `GLIBC_2.34' not found (required by ../squashfs-
> > tools/mksquashfs)
> > > help2man: can't get `--help' info from
> > > /tmp/tmp.pEG5R8COVb/mksquashfs.sh
> > > Try `--no-discard-stderr' if option outputs to stderr
> > > ./mksquashfs-manpage.sh: help2man returned error.  Aborting
> > > ../generate-manpages/install-manpages.sh: Failed to generate
> > > manpage.  Aborting
> >
> > Fixed by always install prebuilt manpage, avoid running target
> > binary on
> > build host
> >
> > Signed-off-by: Changqing Li <changqing.li@windriver.com>
>
> I'd much prefer not to carry a patch doing this. Which "other feature
> enabled" trigger this to happen?
>
> When  meta-secure-core  is involved,  and DISTRO_FEATURES efi-secure-
> boot and ima is enabled,
> in meta-signing-key/classes/user-key-store.bbclass,  it will add
> DEPENDS as following:
> DEPENDS:append:class-target = " \
>     ${@bb.utils.contains("DISTRO_FEATURES", "efi-secure-boot",
> "sbsigntool-native", "", d)} \
>     ${@bb.utils.contains("DISTRO_FEATURES", "efi-secure-boot",
> "libsign-native", "", d)} \
>     openssl-native \
>     ${@bb.utils.contains("DISTRO_FEATURES", "efi-secure-boot",
> "efitools-native gnupg-native", "", d)} \
> "
>
> and efitools-native  DEPENDS  on  help2man-native,  so all target
> depends on help2man-native.
> efitools's manpage also don't configurable.
>
> We might want to talk to upstream about making this configurable
> rather
> than carrying a patch, or we make sure help2man is never accessible
> to
> this recipe in some other way.
>
> I will talk to upstream about this first.

What would also probably help is adding help2man-native to
SSTATE_EXCLUDEDEPS_SYSROOT in layer.conf in OE-Core.

That runs the risk of triggering some build failures as it did when we
added pkgconfig-native there but is probably the right thing to do. It
would force recipes that want help2man-native to have an explicit
DEPENDS so we'd have to test and fix any recipes that needed that
adding.

Thanks,  I will send a V2 patch with this solution later.

Regrads,
Changqing

Cheers,

Richard


[-- Attachment #2: Type: text/html, Size: 5533 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2022-05-18  1:29 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-05-16 10:42 [PATCH] squashfs-tools: always install prebuilt manpage changqing.li
2022-05-16 10:54 ` [OE-core] " richard.purdie
2022-05-17  2:27   ` Li, Changqing
2022-05-17  7:32     ` richard.purdie
2022-05-18  1:29       ` Li, Changqing

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.