On 28/08/13 5:03 AM, Sebastian Reitenbach wrote:

On Tuesday, August 27, 2013 19:08 CEST, Otto Moerbeek <[email protected]> wrote:

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


here is an updated diff, also removing the superfluous include <stdlib.h>
from the patch.

OK?

I would be if it didn't have #if defined(__OpenBSD__) and instead used a proper CMake check.

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    28 Aug 2013 09:00:03 -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    28 Aug 2013 09:00:03 -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     28 Aug 2013 09:00:03 -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) / UINT_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      28 Aug 2013 09:00:03 -0000
@@ -0,0 +1,18 @@
+$OpenBSD$
+
+use arc4random
+
+--- src/CTrackDB.cpp.orig      Wed Aug 14 19:56:40 2013
++++ src/CTrackDB.cpp   Wed Aug 28 09:04:34 2013
+@@ -173,7 +173,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








--
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.

Reply via email to