From: Fabian Groffen Date: Mon, 13 Dec 2010 17:51:27 +0000 (+0100) Subject: postinst_aix: fix problem with archives in use X-Git-Url: http://git.tremily.us/gitweb.cgi?a=commitdiff_plain;h=12ff9b870584bc3c7b887a505192c686fd45ea0b;p=portage.git postinst_aix: fix problem with archives in use --- diff --git a/bin/misc-functions.sh b/bin/misc-functions.sh index eac35caa0..6dbc2f423 100644 --- a/bin/misc-functions.sh +++ b/bin/misc-functions.sh @@ -1416,7 +1416,10 @@ postinst_aix() { EOF [[ -n ${delmembers} ]] || continue einfo "dropping ${archive}[${delmembers# }]" - ${ar} -X32_64 -z -o -d "${EROOT}${archive}" ${delmembers} || die "cannot remove${delmembers} from ${archive}" + rm -f "${EROOT}${archive}".new || die "cannot prune ${EROOT}${archive}.new" + cp "${EROOT}${archive}" "${EROOT}${archive}".new || die "cannot backup ${archive}" + ${ar} -X32_64 -z -o -d "${EROOT}${archive}".new ${delmembers} || die "cannot remove${delmembers} from ${archive}.new" + mv -f "${EROOT}${archive}".new "${EROOT}${archive}" || die "cannot put ${EROOT}${archive} in place" eend $? done local libmetadir keepmembers prunedirs=()