Date: Tue, 11 Nov 2008 07:00:13 GMT From: Eygene Ryabinkin <rea-fbsd@codelabs.ru> To: freebsd-ports-bugs@FreeBSD.org Subject: Re: ports/128754: [port infrastructure] implement master sites randomization Message-ID: <200811110700.mAB70DLA051322@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
The following reply was made to PR ports/128754; it has been noted by GNATS. From: Eygene Ryabinkin <rea-fbsd@codelabs.ru> To: bug-followup@FreeBSD.org Cc: Subject: Re: ports/128754: [port infrastructure] implement master sites randomization Date: Tue, 11 Nov 2008 09:51:58 +0300 --YiEDa0DAkWCtVeE4 Content-Type: text/plain; charset=koi8-r Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Tue, Nov 11, 2008 at 08:54:58AM +0300, Eygene Ryabinkin wrote: > The new patch is attached. Trying to properly reattach the patch to be properly displayed by query-pr.cgi. --- 0001-Add-awk-randomization-script.patch begins here --- =46rom 84c116afbd5afdf1c25823bf5a5498ae695b8ae2 Mon Sep 17 00:00:00 2001 =46rom: Eygene Ryabinkin <rea-fbsd@codelabs.ru> Date: Mon, 10 Nov 2008 18:38:01 +0300 Subject: [PATCH] Add awk randomization script Currently port download sites can be randomized only if the system has /usr/games/random installed. I introduce the script that acts as the replacement for /usr/games/random and needs no parts that are not exists in the base system (only AWK is needed ;)) Signed-off-by: Eygene Ryabinkin <rea-fbsd@codelabs.ru> --- Mk/bsd.port.mk | 5 ++++- Mk/rnd.awk | 21 +++++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletions(-) create mode 100644 Mk/rnd.awk diff --git a/Mk/bsd.port.mk b/Mk/bsd.port.mk index 85ec297..078634a 100644 --- a/Mk/bsd.port.mk +++ b/Mk/bsd.port.mk @@ -2172,8 +2172,11 @@ FETCH_CMD?=3D ${FETCH_BINARY} ${FETCH_ARGS} .if exists(/usr/games/random) RANDOM_CMD?=3D /usr/games/random RANDOM_ARGS?=3D "-w -f -" -_RANDOMIZE_SITES=3D " |${RANDOM_CMD} ${RANDOM_ARGS}" +.else +RANDOM_CMD?=3D ${AWK} +RANDOM_ARGS?=3D "-f ${PORTSDIR}/Mk/rnd.awk" .endif +_RANDOMIZE_SITES=3D " |${RANDOM_CMD} ${RANDOM_ARGS}" .endif =20 TOUCH?=3D /usr/bin/touch diff --git a/Mk/rnd.awk b/Mk/rnd.awk new file mode 100644 index 0000000..cc7e60d --- /dev/null +++ b/Mk/rnd.awk @@ -0,0 +1,21 @@ +BEGIN { + count =3D 0; +} +{ + for (i =3D 1; i <=3D NF; i++) + array[count++] =3D $i; +} +END { +# Need to drop a couple of initial rand() values: they tend +# to be around 0.8 - 0.9, so for fairly small array lenght +# they will produce identical values at the beginning. + srand(); rand(); rand(); rand(); rand(); + for (i =3D count - 1; i > 0; i--) { + j =3D int(10*count*rand()) % i; + if (j =3D=3D i) continue; + t =3D array[i]; array[i] =3D array[j]; array[j] =3D t; + } + + for (i =3D 0; i < count; i++) + print array[i]; +} --=20 1.6.0.3 --- 0001-Add-awk-randomization-script.patch ends here --- --=20 Eygene _ ___ _.--. # \`.|\..----...-'` `-._.-'_.-'` # Remember that it is hard / ' ` , __.--' # to read the on-line manual =20 )/' _/ \ `-_, / # while single-stepping the kernel. `-'" `"\_ ,_.-;_.-\_ ', fsc/as # _.-'_./ {_.' ; / # -- FreeBSD Developers handbook=20 {_.-``-' {_/ # --YiEDa0DAkWCtVeE4 Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.9 (FreeBSD) iEYEARECAAYFAkkZK44ACgkQthUKNsbL7YihmgCbBcNB9tpJodL79RJhv+DBJ57a jNcAoK3SVaSyymNmCxEdrVgZE9ONNvEu =52zH -----END PGP SIGNATURE----- --YiEDa0DAkWCtVeE4--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200811110700.mAB70DLA051322>