[pacman-dev] [PATCH] Added mirror support to makepkg's source array.
Allan McRae
allan at archlinux.org
Fri Nov 15 06:06:24 EST 2013
On 01/11/13 20:00, Florian Pritz wrote:
> From: Ido Rosen <code at idorosen.com>
>
> To specify multiple mirrors, simply add multiple files to the source array
> that have the same downloaded filename, e.g.:
>
> source=("file.tar.gz::http://mirror1.example.com/file.tar.gz"
> "file.tar.gz::http://mirror2.example.com/file.tar.gz")
>
> ...makepkg will try them all, and if all fail, will abort. This also applies
> to VCS repositories and local files references in the source array, so for
> example:
>
> source=("git+https://github.com/torvalds/linux.git
> "git+https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git")
>
> ...will allow cloning the git repository from GitHub if kernel.org is down or
> fails.
>
> Signed-off-by: Florian Pritz <bluewind at xinu.at>
We discussed this on IRC. I really dislike the multiple source lines
"downloading" the same file approach.
An idea is doing:
source=("mirror://file.tar.gz")
mirror=("http://foo.com/" "http://bar.com/")
makepkg would replace "mirror://" in the source line with a value from
the "mirror" array and try downloading from each one until success or
total failure.
To allow multiple sources to have different mirrors, I am proposing we
detect an unknown protocol in the url and look for the corresponding
array. e.g. we could have source=("sourceforge://file.tar.gz") and look
for the "sourceforge" array.
Comments or other ideas?
Allan
More information about the pacman-dev
mailing list