Files
poky/meta/classes/podfix.bbclass
Ross Burton 6576c85e43 podfix: class to remove Pod::Man versions from manpages
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().

(From OE-Core rev: 18d8e5ac689d6eb6098f68ac785f43e9d5f5938a)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-12-15 09:10:46 +00:00

33 lines
1.0 KiB
Plaintext

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"