Signed-off-by: Sam James <s...@gentoo.org> --- metadata/install-qa-check.d/60libtool-la | 45 ++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 metadata/install-qa-check.d/60libtool-la
diff --git a/metadata/install-qa-check.d/60libtool-la b/metadata/install-qa-check.d/60libtool-la new file mode 100644 index 000000000000..fd21ec8406d3 --- /dev/null +++ b/metadata/install-qa-check.d/60libtool-la @@ -0,0 +1,45 @@ +# Check if we're installing .la files unnecessarily +# https://projects.gentoo.org/qa/policy-guide/installed-files.html#pg0303 + +libtool_la_check() { + if [[ ${CATEGORY}/${PN} == dev-libs/libltdl ]] ; then + # bug #293921 + return + fi + + # Bail out if there aren't any .la files being installed + local files=$(find "${ED}"/usr/lib* -name '*.la' -print 2>/dev/null) + [[ -n "${files[@]}" ]] || return + + if grep -q "dev-libs/libltdl" <<<${RDEPEND}; then + # Nothing to do here + return + fi + + # Iterate over all the .la files we are installing to verify there's + # a corresponding .a file - they're pointless without a corresponding + # static library. + local file + local dir + local base + local bad_files=() + for file in "${files[@]}" ; do + dir=$(dirname ${file}) + base=${dir%/} + base=${base%.la} + + if [[ ! -f ${dir}/${base}.a ]] ; then + bad_files+=( ${file} ) + fi + done + + if [[ -n "${bad_files[@]}" ]] ; then + eqawarn "QA Notice: Installing libtool files (.la) without corresponding libraries!" + eqatag -v libtool-la.unnecessary "${bad_files[@]#${D}}" + fi +} + +libtool_la_check +: # guarantee successful exit + +# vim:ft=sh -- 2.35.1