commit:     d266c61788fe8457e0ed0d7674bcb5d963692e8c
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Tue Dec  4 09:05:17 2018 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Tue Dec  4 11:05:57 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d266c617

toolchain.eclass: drop info/dir index, bug #672408

As explained by Zac in #672408 prepinfo() was used to drop 'info/dir'
index to allow portage regenerate it.

gcc package does not always install 'info/dir' files (USE-dependent).
This causes nondeterminism for 'info/dir' to be owned or be an orphan
file.

This change drops 'info/dir' unconditionally to avoid owned/orphan
collisions and always make it an orphan file.

Reported-by: Michal Jakubowski
Bug: https://bugs.gentoo.org/672408
Bug: https://bugs.gentoo.org/587316
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 eclass/toolchain.eclass | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/eclass/toolchain.eclass b/eclass/toolchain.eclass
index 94f2d3369af..19564a0652e 100644
--- a/eclass/toolchain.eclass
+++ b/eclass/toolchain.eclass
@@ -1851,6 +1851,14 @@ toolchain_src_install() {
                        fi
                fi
        fi
+
+       # portage regenerates 'dir' files on it's own: bug #672408
+       # Drop 'dir' files to avoid collisions.
+       if [[ -f "${D}${DATAPATH}"/info/dir ]]; then
+               einfo "Deleting '${D}${DATAPATH}/info/dir'"
+               rm "${D}${DATAPATH}"/info/dir || die
+       fi
+
        # prune empty dirs left behind
        find "${ED}" -depth -type d -delete 2>/dev/null
 

Reply via email to