glibc-locale: explicitly remove empty dirs in ${libdir}

glibc-locale defaults to ENABLE_BINARY_LOCALE_GENERATION ?= "0", but gets
changed to "1" in the default-distrovars.inc

When it is explicitly set back to "0", it fails with this error:

ERROR: glibc-locale-2.36-r0 do_package: QA Issue: glibc-locale: Files/directories were installed but not shipped in any package:
  /usr/lib/locale
Please set FILES such that these items are packaged. Alternatively if they are unneeded, avoid installing them or delete them within do_install.
glibc-locale: 1 installed and not shipped files. [installed-vs-shipped]
ERROR: glibc-locale-2.36-r0 do_package: Fatal QA errors were found, failing task.

There's a code to remove empty dirs in ${libdir}, but it's keyed off of
PACKAGE_NO_GCONV to clean up $[libdir]/gconv, just extend it to also cover
other empty dirs, including ${libdir}/locale.

(From OE-Core rev: b2565de1d9fb513c61f80a4f02be39ee9c31e7dd)

Signed-off-by: Denys Dmytriyenko <denis@denix.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Denys Dmytriyenko
2022-09-28 22:06:45 +00:00
committed by Richard Purdie
parent 0533edac27
commit 0d3e0138c5

View File

@@ -87,10 +87,9 @@ do_install() {
if [ ${PACKAGE_NO_GCONV} -eq 0 ]; then
copy_locale_files ${libdir}/gconv 0755
copy_locale_files ${datadir}/i18n 0644
else
# Remove the libdir if it is empty when gconv is not copied
find ${D}${libdir} -type d -empty -delete
fi
# Remove empty dirs in libdir when gconv or locales are not copied
find ${D}${libdir} -type d -empty -delete
copy_locale_files ${datadir}/locale 0644
install -m 0644 ${LOCALETREESRC}/SUPPORTED ${WORKDIR}/SUPPORTED
}