diff options
author | Zac Medico <zmedico@gentoo.org> | 2012-06-01 19:36:52 -0700 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2012-06-01 19:36:52 -0700 |
commit | bbacf8674168cf033de0ccb161f568d0b26f032b (patch) | |
tree | f8ac1cddb8b2a1f896d1908945ee7fb24651903c | |
parent | e6d387610ce692dfef3c6a3fc549d29863410176 (diff) | |
download | portage-bbacf8674168cf033de0ccb161f568d0b26f032b.tar.gz portage-bbacf8674168cf033de0ccb161f568d0b26f032b.tar.bz2 portage-bbacf8674168cf033de0ccb161f568d0b26f032b.zip |
ecompressdir: fix ln -s for bug #418309
This fixes parallel funk_up_dir decompress calls so that they don't
inappropriately compete with eachother to fix the same broken symlinks.
-rwxr-xr-x | bin/ebuild-helpers/ecompressdir | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/bin/ebuild-helpers/ecompressdir b/bin/ebuild-helpers/ecompressdir index 7d5d4322b..f39f883f3 100755 --- a/bin/ebuild-helpers/ecompressdir +++ b/bin/ebuild-helpers/ecompressdir @@ -80,9 +80,13 @@ funk_up_dir() { skip_dir_dest=${T}/ecompress-skip/${actual_dir#${ED}}/${brokenlink%/*}/${olddest} fi [[ -e ${skip_dir_dest} ]] && continue - [[ ${act} == "compress" ]] \ - && newdest="${olddest}${suffix}" \ - || newdest="${olddest%${suffix}}" + if [[ ${act} == "compress" ]] ; then + newdest=${olddest}${suffix} + else + [[ ${olddest} == *${suffix} ]] || continue + newdest=${olddest%${suffix}} + fi + [[ -f ${newdest} ]] || continue rm -f "${brokenlink}" [[ ${act} == "compress" ]] \ && ln -snf "${newdest}" "${brokenlink}${suffix}" \ |