[oe-commits] [openembedded-core] 03/04: insane: add check for perllocal.pod

git at git.openembedded.org git at git.openembedded.org
Fri Oct 4 08:07:18 UTC 2019


This is an automated email from the git hooks/post-receive script.

rpurdie pushed a commit to branch master-next
in repository openembedded-core.

commit bf0eccf0bbd72232e873e2bbb98495aef7907063
Author: Ross Burton <ross.burton at intel.com>
AuthorDate: Fri Oct 4 01:22:17 2019 +0100

    insane: add check for perllocal.pod
    
    perlocal.pod is an index file of locally installed modules and so shouldn't be
    installed by any distribution packages.  cpan.bbclass already sets NO_PERLOCAL
    to stop this file being generated by most Perl recipes, but if a recipe is using
    MakeMaker directly (such as rrdtool) then they might not be doing this
    correctly.
    
    To avoid multiple packages shipping this file and then failing to install
    together, add a QA test to check if this file exists and by default emit an
    error if it does.
    
    [ YOCTO #13491 ]
    
    Signed-off-by: Ross Burton <ross.burton at intel.com>
    Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
---
 meta/classes/insane.bbclass | 19 ++++++++++++++++++-
 1 file changed, 18 insertions(+), 1 deletion(-)

diff --git a/meta/classes/insane.bbclass b/meta/classes/insane.bbclass
index 9b886d1..9605ac2 100644
--- a/meta/classes/insane.bbclass
+++ b/meta/classes/insane.bbclass
@@ -34,7 +34,7 @@ ERROR_QA ?= "dev-so debug-deps dev-deps debug-files arch pkgconfig la \
             split-strip packages-list pkgv-undefined var-undefined \
             version-going-backwards expanded-d invalid-chars \
             license-checksum dev-elf file-rdeps configure-unsafe \
-            configure-gettext \
+            configure-gettext perllocalpod \
             "
 # Add usrmerge QA check based on distro feature
 ERROR_QA_append = "${@bb.utils.contains('DISTRO_FEATURES', 'usrmerge', ' usrmerge', '', d)}"
@@ -795,6 +795,23 @@ def package_qa_check_usrmerge(pkg, d, messages):
             return False
     return True
 
+QAPKGTEST[perllocalpod] = "package_qa_check_perllocalpod"
+def package_qa_check_perllocalpod(pkg, d, messages):
+    """
+    Check that the recipe didn't ship a perlocal.pod file, which shouldn't be
+    installed in a distribution package.  cpan.bbclass sets NO_PERLLOCAL=1 to
+    handle this for most recipes.
+    """
+    import glob
+    pkgd = oe.path.join(d.getVar('PKGDEST'), pkg)
+    podpath = oe.path.join(pkgd, d.getVar("libdir"), "perl*", "*", "*", "perllocal.pod")
+
+    matches = glob.glob(podpath)
+    if matches:
+        matches = [package_qa_clean_path(path, d, pkg) for path in matches]
+        msg = "%s contains perllocal.pod (%s), should not be installed" % (pkg, " ".join(matches))
+        package_qa_add_message(messages, "perllocalpod", msg)
+
 QAPKGTEST[expanded-d] = "package_qa_check_expanded_d"
 def package_qa_check_expanded_d(package, d, messages):
     """

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Openembedded-commits mailing list