On Tue, Aug 27, 2013 at 06:54:46PM +0200, Sebastian Reitenbach wrote:
> The patch below updates geo/qlandkartegt from 1.7.0 to 1.7.3
> The license changed to GPLv3 with update to 1.7.1
>
> While there, exchange usage of rand with arc4random.
> As far as I can see, it only selects some colors randomly.
> The usage of arc4random is done the hard way, my cmake
> skills are not as good as I'd like them to be to add a
> configure test and use something better ;)
>
> tested on amd64.
>
RAND_MAX does not apply to arc4random(), it has a different range. Use
UINT_MAX.
-Otto
> OK?
>
>
> Index: Makefile
> ===================================================================
> RCS file: /cvs/ports/geo/qlandkartegt/Makefile,v
> retrieving revision 1.12
> diff -u -p -u -r1.12 Makefile
> --- Makefile 2 Jul 2013 04:30:20 -0000 1.12
> +++ Makefile 27 Aug 2013 09:28:11 -0000
> @@ -3,14 +3,14 @@
> VMEM_WARNING = yes
> COMMENT = garmin gps map management tool
>
> -DISTNAME = qlandkartegt-1.7.0
> +DISTNAME = qlandkartegt-1.7.3
> CATEGORIES = geo x11
>
> HOMEPAGE = http://www.qlandkarte.org/
> MASTER_SITES = ${MASTER_SITE_SOURCEFORGE:=qlandkartegt/}
> MAINTAINER = Sebastian Reitenbach <[email protected]>
>
> -# GPLv2
> +# GPLv3
> PERMIT_PACKAGE_CDROM = Yes
>
> MODULES = devel/cmake x11/qt4
> Index: distinfo
> ===================================================================
> RCS file: /cvs/ports/geo/qlandkartegt/distinfo,v
> retrieving revision 1.10
> diff -u -p -u -r1.10 distinfo
> --- distinfo 2 Jul 2013 04:30:20 -0000 1.10
> +++ distinfo 27 Aug 2013 09:28:11 -0000
> @@ -1,2 +1,2 @@
> -SHA256 (qlandkartegt-1.7.0.tar.gz) =
> Tbq57QCCRkepr9MVYZ55dOF2o7R+UPN1REHmnx2+5y0=
> -SIZE (qlandkartegt-1.7.0.tar.gz) = 8136806
> +SHA256 (qlandkartegt-1.7.3.tar.gz) =
> 2/yWNvSozIhzff+MvTtBHksawXxVJRY5a1XR5oCtlTw=
> +SIZE (qlandkartegt-1.7.3.tar.gz) = 8334026
> Index: patches/patch-3rdparty_map2jnx_main_cpp
> ===================================================================
> RCS file: patches/patch-3rdparty_map2jnx_main_cpp
> diff -N patches/patch-3rdparty_map2jnx_main_cpp
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ patches/patch-3rdparty_map2jnx_main_cpp 27 Aug 2013 09:28:11 -0000
> @@ -0,0 +1,27 @@
> +$OpenBSD$
> +
> +use arc4random
> +
> +--- 3rdparty/map2jnx/main.cpp.orig Tue Aug 27 09:44:48 2013
> ++++ 3rdparty/map2jnx/main.cpp Tue Aug 27 09:46:40 2013
> +@@ -419,14 +419,20 @@ static uint32_t scale2jnx(double scale)
> + static char randChar()
> + {
> + char buf[2];
> ++#if defined(__OpenBSD__)
> ++ int r = (int)((arc4random() * 16.0) / RAND_MAX);
> ++#else
> + int r = (int)((rand() * 16.0) / RAND_MAX);
> ++#endif
> + sprintf(buf,"%X", r & 0x0F);
> + return buf[0];
> + }
> +
> + static void createGUID(char * guid)
> + {
> ++#if !defined(__OpenBSD__)
> + srand((unsigned int)time(0));
> ++#endif
> +
> + guid[0] = randChar();
> + guid[1] = randChar();
> Index: patches/patch-src_CTrackDB_cpp
> ===================================================================
> RCS file: patches/patch-src_CTrackDB_cpp
> diff -N patches/patch-src_CTrackDB_cpp
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ patches/patch-src_CTrackDB_cpp 27 Aug 2013 09:28:11 -0000
> @@ -0,0 +1,29 @@
> +$OpenBSD$
> +
> +use arc4random
> +
> +--- src/CTrackDB.cpp.orig Tue Aug 27 09:41:35 2013
> ++++ src/CTrackDB.cpp Tue Aug 27 09:44:06 2013
> +@@ -38,6 +38,10 @@
> + #include "CTrackUndoCommandDelete.h"
> + #include "CTrackUndoCommandSelect.h"
> +
> ++#if defined(__OpenBSD__) /* for arc4random */
> ++#include <stdlib.h>
> ++#endif
> ++
> + #if WIN32
> + #include <math.h>
> + #include <float.h>
> +@@ -173,7 +177,11 @@ void CTrackDB::loadGPX(CGpx& gpx)
> + hasItems = true;
> + CTrack* track = new CTrack(this);
> + //preset a random color
> ++#if defined(__OpenBSD__)
> ++ track->setColor((arc4random() % 13)+1);
> ++#else
> + track->setColor((rand() % 13)+1);
> ++#endif
> +
> + /*
> + * Global track information