[OE-core] [RFC PATCH 1/2] podfix: class to remove Pod::Man versions from manpages

Khem Raj raj.khem at gmail.com
Mon Dec 16 04:39:56 UTC 2019


On Fri, Dec 13, 2019 at 3:22 PM Ross Burton <ross.burton at intel.com> wrote:
>
> Manpages generated by Pod::Man contain the version number, which isn't
> reproducible if we're using the host Perl to generate manpage.
>
> One option is to always depend on perl-native when generating manpages
> but this is a heavy dependency, so instead strip out the versions in
> do_install().
>

seeing this error

https://errors.yoctoproject.org/Errors/Details/297478/


> Signed-off-by: Ross Burton <ross.burton at intel.com>
> ---
>  meta/classes/podfix.bbclass | 32 ++++++++++++++++++++++++++++++++
>  1 file changed, 32 insertions(+)
>  create mode 100644 meta/classes/podfix.bbclass
>
> diff --git a/meta/classes/podfix.bbclass b/meta/classes/podfix.bbclass
> new file mode 100644
> index 00000000000..54fff6a0a23
> --- /dev/null
> +++ b/meta/classes/podfix.bbclass
> @@ -0,0 +1,32 @@
> +python pod_strip_version() {
> +    import re
> +
> +    def opener(filename, mode):
> +        if filename.endswith(".gz"):
> +            import gzip
> +            return gzip.open(filename, mode)
> +        elif filename.endswith(".bz2"):
> +            import bz2
> +            return bz2.open(filename, mode)
> +        else:
> +            return open(filename, mode)
> +
> +    bad_re = re.compile(rb"Automatically generated by Pod::Man( [0-9]+.+)")
> +
> +    for root, dirs, files in os.walk(d.expand("${D}${mandir}")):
> +        for filename in files:
> +            filename = os.path.join(root, filename)
> +            with opener(filename, "rb") as manfile:
> +                manpage = manfile.read()
> +                m = bad_re.search(manpage)
> +                if not m:
> +                    continue
> +
> +            bb.note("podfix: stripping version from %s" % filename)
> +            os.unlink(filename)
> +            with opener(filename, "wb") as manfile:
> +                manfile.write(manpage[:m.start(1)])
> +                manfile.write(manpage[m.end(1):])
> +}
> +
> +do_install[postfuncs] += "pod_strip_version"
> --
> 2.20.1
>
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core at lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core


More information about the Openembedded-core mailing list