Skip to content

Commit

Permalink
eclass: Improve packlist fixing, based on work by kent\n; bug 579492 …
Browse files Browse the repository at this point in the history
…and more
  • Loading branch information
akhuettel committed Apr 10, 2016
1 parent fa0bf30 commit abee956
Showing 1 changed file with 19 additions and 0 deletions.
19 changes: 19 additions & 0 deletions eclass/perl-functions.eclass
Original file line number Diff line number Diff line change
Expand Up @@ -131,12 +131,31 @@ perl_delete_emptybsdir() {
# @DESCRIPTION:
# Look through ${D} for .packlist text files containing the temporary installation
# folder (i.e. ${D}). If the pattern is found, silently replace it with `/'.
# Remove duplicate entries; then validate all entries in the packlist against ${D}
# and prune entries that do not correspond to installed files.
perl_fix_packlist() {
debug-print-function $FUNCNAME "$@"

local packlist_temp="${T}/.gentoo_packlist_temp"
find "${D}" -type f -name '.packlist' -print0 | while read -rd '' f ; do
if file "${f}" | grep -q -i " text" ; then
einfo "Fixing packlist file /${f#${D}}"

# remove the temporary build dir path
sed -i -e "s:${D}:/:g" "${f}"

# remove duplicate entries
sort -u "${f}" > "${packlist_temp}"
mv "${packlist_temp}" "${f}"

# remove files that dont exist
cat "${f}" | while read -r entry; do
if [ ! -e "${D}/${entry}" ]; then
einfo "Pruning surplus packlist entry ${entry}"
grep -v -x -F "${entry}" "${f}" > "${packlist_temp}"
mv "${packlist_temp}" "${f}"
fi
done
fi
done
}
Expand Down

0 comments on commit abee956

Please sign in to comment.