Does anyone know how the Arch Linux ARM mirrors are updated? I am wondering whether it's done with rsync --delete, as I'm currently facing a problem where I am unable to install a package because the sync seems to be incomplete.
If I run "pacman -Sy util-linux-libs" then it wants to install version 2.37.1-3, however the download fails with a HTTP 404 error. If I go and look on the server (http://au.mirror.archlinuxarm.org/armv6h/core/) it only contains a file for a *newer* version, 2.37.2-1. In other words, the new package has been uploaded, the old package has been deleted, but the database itself hasn't yet been updated to point at the new version.
This issue seems to happen fairly often, but usually waiting 5-10 minutes and trying again works successfully. Unfortunately in this case it has been much longer than that and it's still failing. I'm wondering whether the sync process could be improved to remove this inconsistent state altogether?
I am thinking (assuming this is the problem) that rsync should be changed to use the --delete-after option, so that the old package files are still available until the mirror sync has completed. Although this won't solve the problem completely, it would still allow package updates during a larger part of the mirror sync process.
Even better would be a three-stage process - first add the new packages, second update the database files, and last remove the old packages. That way would take longer to do the sync but it would completely remove any inconsistent state.
Is this possible, or is this package update problem caused by something else entirely?