Ability to sort download URLs, multiple attempts to download.
/meson-0.56.0.tar.gz
/meson-0.63.3.tar.gz
/meson-1.7.2.tar.gz
-/meta4ra-0.12.0.tar.zst
+/meta4ra-1.0.0.tar.zst
/MIME-Base32-1.303.tar.gz
/mkvtoolnix-58.0.0.tar.xz
/mod_tile-v0.7.0-58-gc3453bc.tar.zst
if [ -r predownloaded/$1 ] ; then
echo Using predownloaded/$1... >&2
- meta4ra-check -hashes "$META4RA_HASHES" -meta4 $1.meta4 predownloaded/$1 >&2
+ meta4ra-check -hashes "$META4RA_HASHES" $1.meta4 predownloaded/$1 >&2
ln predownloaded/$1 $3
exit 0
fi
if [ -e $1.meta4 ] ; then
- if [ "$META4_FETCHER" = "meta4ra-check" ] ; then
- meta4ra-check -progress -dl 0 \
- -hashes "$META4RA_HASHES" \
- -meta4 $1.meta4 $(basename $1)
- exit
- fi
meta4=$(realpath $1.meta4)
- tmp=$(mktemp -d ${TMPDIR:-/tmp}/$(basename $1).XXXXXX)
+ fn=$(basename $1)
+ tmp=$(mktemp -d ${TMPDIR:-/tmp}/$fn.XXXXXX)
trap "rm -fr $tmp" HUP PIPE INT QUIT TERM EXIT
cd $tmp
case "$META4_FETCHER" in
+ meta4ra)
+ size=$(meta4ra-list -size $meta4 $fn)
+ meta4ra-list $meta4 $fn |
+ meta4ra-url-sort ${META4RA_CC_SORT:-"" rand} |
+ while read url ; do
+ echo "trying ${url}..." >&2
+ meta4ra-dl -progress -size $size "$url" |
+ meta4ra-check -pipe -hashes "$META4RA_HASHES" \
+ $meta4 $fn >$fn || {
+ rm $fn
+ continue
+ }
+ break
+ done
+ [ -s $fn ]
+ cat $fn
+ ;;
wget)
wget --input-metalink=$meta4 >&2
- cat "$(basename $1).meta4.#1"
+ cat "$fn.meta4.#1"
;;
aria2c)
aria2c $meta4 >&2
- cat $(basename $1)
+ cat $fn
;;
*)
echo Unknown \$META4_FETCHER >&2
[ -d guix.git ] || git clone --depth 1 --bare https://git.savannah.gnu.org/git/guix.git >&2
p=gnu/packages/patches/gcc-4-compile-with-gcc-5.patch
( cd guix.git ; git archive @ $p | tar xfO - $p ) >$3
-meta4ra-check -pipe -meta4 $1.meta4 $1 <$3 >/dev/null
+meta4ra-check -pipe $1.meta4 $1 <$3 >/dev/null
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<metalink xmlns="urn:ietf:params:xml:ns:metalink">
- <file name="meta4ra-0.12.0.tar.zst">
- <hash type="blake3-256">dcab22303e5c0249fcf96dc6d1e65d73bf0464bbd5066ca664e4406dbdbc2979</hash>
- <hash type="blake2b-512">862fe656eccf2e86c315cb9fecbf54230094c33a537f77f450c2a72f0859f899797ec29c671ab1400b0d0b34e87fcae1c2cac8a449963a18f0e6d8856419ff58</hash>
- <hash type="blake2b-256">85a627ff1318ec4f0c53e1284580d936cf24b2376e610b2b801ebec80f340ff8</hash>
- <hash type="skein-512">cf08226b770efc2079e7dd51445105bafe718ee489c8977cba8cc9da185798912143f1643957c28ec7a6ccb30d81ef15f46f1f351bd47801b4d969ee0d314d06</hash>
- <hash type="shake128">9f1518066798b619ab414794ef83ae067e202aed1c6edac4c09feac5d0beccff</hash>
- <hash type="shake256">196b89801ab1a1227e1bc5a664316575d08e63edaf44eab38759a4b55edb9ebbd371103b23b3a6be43f776555e0431a2ca79f09eac102e783ad544009e7b7704</hash>
- <hash type="sha-512">f649872a08f0755fb37357a4833282415b1656499bedf4769a1fa4cbca163602440eadf07bba2e79d10aa84cf147a3dc309c232591865e5a4505e828f256edb9</hash>
- <hash type="sha-256">7cde0a60066c96e0abe9271189308a02f227f4412161c7856c54e1af8c5688a3</hash>
- <hash type="streebog-512">3303b4adba1bb11aca9ca823cf0a1a68d101b6854229f7b51c48df1bc00b9ded01b9c457689b13673786cc979576ec36dcca70f97e2e36e3a485e7f14d121395</hash>
- <hash type="streebog-256">b882b762d7a706067257b6c2b2617d8ea9d576e56229868d12387c5912562aed</hash>
- <hash type="xxh3-128">30f976a41cce7924a540f028b351d7b0</hash>
- <signature mediatype="application/ssh-signature"><![CDATA[
------BEGIN SSH SIGNATURE-----
-U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAghQxyOlPm7DilJhOJz1KoUGtVbH
-BWX/nRiWzQembxCXUAAAAEZmlsZQAAAAAAAAAGc2hhNTEyAAAAUwAAAAtzc2gtZWQyNTUx
-OQAAAEDNP48+sEsgXiBBx2QahVbSwBI3ISy6D+/4h3clZBPJpMXAs/7XQ+DvoAWDVZ1adt
-1C6A65TEEzBrhrfVhkvcoE
------END SSH SIGNATURE-----
-]]></signature>
- <size>473733</size>
- <url priority="1" location="ru">http://www.meta4ra.stargrave.org/download/meta4ra-0.12.0.tar.zst</url>
- <url priority="2" location="ru">https://www.meta4ra.stargrave.org/download/meta4ra-0.12.0.tar.zst</url>
- <url>http://y.www.meta4ra.stargrave.org/download/meta4ra-0.12.0.tar.zst</url>
- </file>
-</metalink>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<metalink xmlns="urn:ietf:params:xml:ns:metalink">
+ <file name="meta4ra-1.0.0.tar.zst">
+ <hash type="blake3-256">e8fc1dada0274b29acfcc0c3301422597acc92a429f2b8ab3ab6ffb0bd88d940</hash>
+ <hash type="blake2b-512">6e7cdfe61ebaa68e88cc9a59c40ab6798a8e524a419378af65c4691dd9885bb9cfe88efdfed0ab04d6a5626568aa594f2cc42f112af066606f0554b94b57d026</hash>
+ <hash type="blake2b-256">3fe8e06e7669924f739e5b6ef277f11d53745ce8d9c1c1c2af9a515b67247e58</hash>
+ <hash type="skein-512">e0ee9c62aa930b7934aa67101e7340e09721a4217551eda97a917edb5f7f313b1f82261c79dcb52a05c6e8ffa6c0e13f94ac33338dfee7e8d3935ead10f9393e</hash>
+ <hash type="shake128">37ebbfe18e330eac62f8759e31ad85c6c390cb663e4660f41af91bf79e06acb3</hash>
+ <hash type="shake256">d514e2b1bd820f52da029339f7490f6d253723f5469c5c84b3c31520c53ff63937c6987d4e27e74233c5815185f815072cbd2526015c4598a18c8f8e4f4a82e3</hash>
+ <hash type="sha-512">d24ae8d46528d0965afc3e82d5af445ba8994ebf1a17fd00a78d8a5cd51e64a6524b2f53681cd14793e2146fba890be191015ca94e309257c1317cebb02c5088</hash>
+ <hash type="sha-256">976444891ca30bce9779f2667a75a6ba86b377ada3d91e4cdce642db23f5a731</hash>
+ <hash type="streebog-512">847f24c7e866af8ebabd294486051535e2a83ce8ab12f2b0f5af2e0a9a60fae22f4ec22014e16d8d2695964dfd1bb765f233bd73d27784e0f52124f2400f47eb</hash>
+ <hash type="streebog-256">fa3a391637444b96f3dbae2d453aedcc6d5fc3e4e14d6592733d581a9557a6a9</hash>
+ <hash type="xxh3-128">49f69d0caae0b4001ce423e8e444d9ab</hash>
+ <signature mediatype="application/ssh-signature"><![CDATA[
+-----BEGIN SSH SIGNATURE-----
+U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAghQxyOlPm7DilJhOJz1KoUGtVbH
+BWX/nRiWzQembxCXUAAAAEZmlsZQAAAAAAAAAGc2hhNTEyAAAAUwAAAAtzc2gtZWQyNTUx
+OQAAAEDLZP3Tzbvlznxjrt27XXIgJp0B7C1JE5B/nmqM+A6wdHqUnSVgM989L9NeN3Swz0
+BtO3+4QQ5vYGF24whSuYkC
+-----END SSH SIGNATURE-----
+]]></signature>
+ <size>476243</size>
+ <url priority="1" location="ru">http://www.meta4ra.stargrave.org/download/meta4ra-1.0.0.tar.zst</url>
+ <url priority="2" location="ru">https://www.meta4ra.stargrave.org/download/meta4ra-1.0.0.tar.zst</url>
+ <url>http://y.www.meta4ra.stargrave.org/download/meta4ra-1.0.0.tar.zst</url>
+ </file>
+</metalink>
if command -v meta4ra-check >/dev/null ; then
$TAR xf $skelpkg bin.meta4
$TAR xfO $skelpkg bin | {
- meta4ra-check -hashes "$META4RA_HASHES" -pipe -meta4 bin.meta4 $NAMENHASH ||
+ meta4ra-check -hashes "$META4RA_HASHES" -pipe bin.meta4 $NAMENHASH ||
touch untar-failed
} | $TAR xf - || touch untar-failed
else
ln -f ../../../build/distfiles/go1.25.6.tar.gz go1.25.6.src.tar.gz
ln -f ../../../build/distfiles/go1.26.0.tar.gz go1.26.0.src.tar.gz
ln -f ../../../build/distfiles/goredo-2.9.1.tar.zst
-ln -f ../../../build/distfiles/meta4ra-0.12.0.tar.zst
+ln -f ../../../build/distfiles/meta4ra-1.0.0.tar.zst
ln -f ../../../build/distfiles/zstd-1.5.7.tar.gz
+++ /dev/null
-dodl http://www.meta4ra.stargrave.org/download/$name.tar.zst $name.tar.zst f649872a08f0755fb37357a4833282415b1656499bedf4769a1fa4cbca163602440eadf07bba2e79d10aa84cf147a3dc309c232591865e5a4505e828f256edb9
--- /dev/null
+dodl http://www.meta4ra.stargrave.org/download/$name.tar.zst $name.tar.zst d24ae8d46528d0965afc3e82d5af445ba8994ebf1a17fd00a78d8a5cd51e64a6524b2f53681cd14793e2146fba890be191015ca94e309257c1317cebb02c5088
.meta4 files can be processed by either of three programs:
-* $META4_FETCHER=meta4ra-check
- Use "meta4ra-check -dl 0" command to download the first URL. This is
- by default, because meta4ra utilities are anyway installed already. It
- won't try to download other URLs, unlike other fetch options there!
+* $META4_FETCHER=meta4ra
+ Use "meta4ra-url-sort ${META4RA_CC_SORT:-"" rand} | meta4ra-dl"
+ command to download the randomised URL, preferring location-less URL.
+ This is by default, because meta4ra utilities are anyway installed already.
* $META4_FETCHER=wget
Use wget compiled with --with-metalink option. The only drawback is
export TMPDIR=${TMPDIR:-/tmp}
MAKE_JOBS=${MAKE_JOBS:-$(nproc)}
-# Program to use for downloading .meta4 files: "meta4ra-check", "wget", "aria2c".
-export META4_FETCHER="${META4_FETCHER:-meta4ra-check}"
+# Program to use for downloading .meta4 files: "meta4ra", "wget", "aria2c".
+export META4_FETCHER="${META4_FETCHER:-meta4ra}"
if command -v fetch >/dev/null 2>/dev/null ; then
JUSTDL="fetch -o"