diff --git a/repro.in b/repro.in index 87bf057..f300622 100755 --- a/repro.in +++ b/repro.in @@ -374,19 +374,11 @@ __END__ if [ -n "$uninstall" ]; then exec_nspawn "$build" pacman -Rdd --noconfirm -- $uninstall - - # We might encounter issues where packages has been renamed, and we overwrote the files - # This causes pacman to remove .so-names beliving it belongs to the package we removed - # This fixes any messed up packages as reported by -Qqk - # Note: ++ is removed because DEBUG gets injected into stderr - fixup=$(exec_nspawn "$build" pacman -Qqk 2>&1 | grep -v "^++" | awk '{print $1}' | uniq) || true - if [ -n "$fixup" ]; then - fixup_packages=$(echo $fixup| tr ' ' '\0' | xargs -0 -n1 -I{} bash -c "printf -- '%s\n' ${packages[*]} | grep {}") - exec_nspawn "$build" --bind="$(readlink -e ${cachedir}):/cache" bash -c \ - 'yes y | pacman -Udd -- "$@"' -bash ${fixup_packages} - fi fi + # reinstall all packages - fixes overwritten files and installs with correct dependency order + exec_nspawn "$build" --bind="$(readlink -e ${cachedir}):/cache" pacman -U --noconfirm -- "${packages[@]}" + build_package "$build" "$builddir" remove_snapshot "$build" chown -R "$src_owner" "${cachedir}"