QA warning for files in /var/{cache,lock,run}/ or /run/
authorSebastian Luther <SebastianLuther@gmx.de>
Thu, 5 Dec 2013 20:57:17 +0000 (21:57 +0100)
committerMike Frysinger <vapier@gentoo.org>
Wed, 11 Dec 2013 07:57:34 +0000 (02:57 -0500)
No warning will be issued if the directories are created, but are
left empty.

URL: https://bugs.gentoo.org/493154

bin/misc-functions.sh

index bd99def327ad9d4753064aa82ed3473b7bdb40f2..2c4d2489a24446aa7767e2a298f6f87642cd465f 100755 (executable)
@@ -241,13 +241,30 @@ install_qa_check() {
        for x in etc/app-defaults usr/man usr/info usr/X11R6 usr/doc usr/locale ; do
                [[ -d ${ED}/$x ]] && f+="  $x\n"
        done
-
        if [[ -n $f ]] ; then
                eqawarn "QA Notice: This ebuild installs into the following deprecated directories:"
                eqawarn
                eqawarn "$f"
        fi
 
+       # It's ok create these directories, but not to install into them. #493154
+       # TODO: We should add var/lib to this list.
+       f=
+       for x in var/cache var/lock var/run run ; do
+               if [[ ! -L ${ED}/${x} && -d ${ED}/${x} ]] ; then
+                       if [[ -z $(find "${ED}/${x}" -prune -empty) ]] ; then
+                               f+=$(cd "${ED}"; find "${x}" -printf '  %p\n')
+                       fi
+               fi
+       done
+       if [[ -n ${f} ]] ; then
+               eqawarn "QA Notice: This ebuild installs into paths that should be created at runtime."
+               eqawarn " To fix, simply do not install into these directories.  Instead, your package"
+               eqawarn " should create dirs on the fly at runtime as needed via init scripts/etc..."
+               eqawarn
+               eqawarn "${f}"
+       fi
+
        set +f
        f=
        for x in "${ED}etc/udev/rules.d/"* "${ED}lib"*"/udev/rules.d/"* ; do