Implement XBPS_DISTFILES_MIRROR (second try)

The idea is to remove some burden from the original download
locations for distfiles by specifying one or more mirror locations.

+ Works with http:// or ftp:// mirrors for all $XBPS_CHROOT_CMD variants
+ Works with file:// mirrors together with uchroot and proot
This commit is contained in:
Jürgen Buchmüller 2015-08-19 14:45:47 +02:00
parent 686b7bff71
commit 793a156a0f
3 changed files with 100 additions and 5 deletions

View file

@ -74,6 +74,27 @@ To enable it:
$ cd void-packages
$ echo XBPS_CHROOT_CMD=proot >> etc/conf
### Distfiles mirror(s)
In etc/conf you may optionally define a mirror or a list of mirrors to search for distfiles.
$ echo 'XBPS_DISTFILES_MIRROR="ftp://192.168.100.5/gentoo/distfiles"' >> etc/conf
If more than one mirror is to be searched, you can either specify multiple URLs separated
with blanks, or add to the variable like this
$ echo 'XBPS_DISTFILES_MIRROR+=" http://repo.voidlinux.de/distfiles"' >> etc/conf
Make sure to put the blank after the first double quote in this case.
The mirrors are searched in order for the distfiles to build a package until the
checksum of the downloaded file matches the one specified in the template.
Ultimately, if no mirror carries the distfile, or in case all downloads failed the
checksum verification, the original download location is used.
If you use `proot` or `uchroot` for your XBPS_CHROOT_CMD, you may also specify a local path
using the `file://` prefix or simply an absolute path on your build host (e.g. /mnt/distfiles).
Mirror locations specified this way are bind mounted inside the chroot environment
under $XBPS_MASTERDIR and searched for distfiles just the same as remote locations.
### Quick setup in Void
Clone the `void-packages` git repository, install the bootstrap packages: