prefix/cygwin/profile.bashrc: preserve new dll list for rebase
authorMichael Haubenwallner <haubi@gentoo.org>
Mon, 12 Aug 2019 07:23:17 +0000 (09:23 +0200)
committerMichael Haubenwallner <haubi@gentoo.org>
Mon, 12 Aug 2019 07:35:17 +0000 (09:35 +0200)
Do not overwrite the being merged new package's dll list for rebase with
the being removed old package's dll list for just getting unmerged.
This likely is the cause of some Prefix bootstraps to hang on Cygwin.
Signed-off-by: Michael Haubenwallner <haubi@gentoo.org>
profiles/prefix/windows/cygwin/profile.bashrc

index aecfd9adb7c05220dff97286d5a6e3c2c75dfa85..9694edc101dff55cfbcb1a4462c7d5e821db9f1d 100644 (file)
@@ -198,21 +198,14 @@ cygwin-rebase-merge() {
 }
 
 cygwin-rebase-post_pkg_prerm() {
-       # The pending list is installed as part of the package, but
-       # the merged list is not.  Move from merged back to pending,
-       # in case the unmerge fails...
-       local pendingdir=$(cygwin-rebase-get_pendingdir)
+       # The pending list is registered as being installed with the package, but
+       # the merged list is not.  Just remove the unregistered one.
        local mergeddir=$(cygwin-rebase-get_mergeddir)
        local listname=$(cygwin-rebase-get_listname)
        (
                set -e
                cd "${EROOT}"
                [[ -w ./${mergeddir}/. ]]
-               [[ -w ./${pendingdir}/. ]]
-               if [[ -s ./${mergeddir}/${listname} ]]
-               then
-                       mv -f "./${mergeddir}/${listname}" "./${pendingdir}/${listname}" || :
-               fi
                rm -f "./${mergeddir}/${listname}"
        )
 }