[3Depict] * Add upstream patches * rebuild for mathgl2

mycae mycae at fedoraproject.org
Wed Feb 5 21:17:55 UTC 2014


commit 383414c1a4107eb1248b0ca87e8faba17242f1c2
Author: mycae <mycae at gmx.com>
Date:   Wed Feb 5 16:15:37 2014 -0500

    * Add upstream patches
    * rebuild for mathgl2

 3Depict-0.0.15-upstream.patch |  192 +++++++++++++++++++++++++++++++++++++++++
 3Depict.spec                  |    9 ++-
 2 files changed, 200 insertions(+), 1 deletions(-)
---
diff --git a/3Depict-0.0.15-upstream.patch b/3Depict-0.0.15-upstream.patch
new file mode 100644
index 0000000..47611e7
--- /dev/null
+++ b/3Depict-0.0.15-upstream.patch
@@ -0,0 +1,192 @@
+diff -r 7fba7ef21117 -r f104ace19a51 src/backend/APT/APTRanges.cpp
+--- src/backend/APT/APTRanges.cpp	Sat Jan 18 17:45:15 2014 +0100
++++ src/backend/APT/APTRanges.cpp	Wed Feb 05 22:08:32 2014 +0100
+@@ -26,7 +26,6 @@
+ 
+ #include <map>
+ #include <fstream>
+-#include <clocale>
+ #include <numeric>
+ #include <cstring>
+ 
+@@ -484,15 +483,7 @@
+ 	}
+ 
+ 
+-	//switch to "C" style decimal notation (English),
+-	//as needed
+-	char *oldLocale=setlocale(LC_NUMERIC,NULL);
+-
+-	//setlocale reserves the right to trash the returned pointer
+-	//on subsequent calls (it totally makes sense, or something..).
+-	oldLocale=strdup(oldLocale);
+-	if(strcmp(oldLocale,"C"))
+-		setlocale(LC_NUMERIC,"C");	
++	pushLocale("C",LC_NUMERIC);
+ 		
+ 	size_t errCode;
+ 	switch(fileFormat)
+@@ -521,31 +512,19 @@
+ 		default:
+ 			ASSERT(false);
+ 			fclose(fpRange);
+-			if(strcmp(oldLocale,"C"))
+-				setlocale(LC_NUMERIC,oldLocale);
+-			free(oldLocale);
++			popLocale();
+ 			return RANGE_ERR_FORMAT;
+ 	}
+ 
++	popLocale();
+ 	fclose(fpRange);
+ 	if(errCode)
+ 	{
+ 		errState=errCode;
+-		
+-		if(strcmp(oldLocale,"C"))
+-			setlocale(LC_NUMERIC,oldLocale);
+-		free(oldLocale);
+ 
+ 		return errState;
+ 	}
+ 
+-	//revert back to user's locale, as needed
+-	if(strcmp(oldLocale,"C"))
+-		setlocale(LC_NUMERIC,oldLocale);
+-
+-	free(oldLocale);
+-	
+-	
+ 	//Run self consistency check on freshly loaded data
+ 	if(!isSelfConsistent())
+ 	{
+diff -r 7fba7ef21117 -r f104ace19a51 src/backend/filters/transform.cpp
+--- src/backend/filters/transform.cpp	Sat Jan 18 17:45:15 2014 +0100
++++ src/backend/filters/transform.cpp	Wed Feb 05 22:08:32 2014 +0100
+@@ -1110,7 +1110,15 @@
+ 			return ERR_CALLBACK_FAIL;
+ 		}
+ 		//Shuffle the value data.TODO: callback functor	
++
++#ifndef HAVE_CPP1X
++		std::srand(time(0));
+ 		std::random_shuffle(massData.begin(),massData.end());
++#else
++		std::mt19937_64 r;
++		r.seed(time(0));
++		std::shuffle(massData.begin(),massData.end(),r);
++#endif
+ 		if(!(*callback)(true))
+ 		{
+ 			delete d;
+diff -r 7fba7ef21117 -r f104ace19a51 src/common/basics.cpp
+--- src/common/basics.cpp	Sat Jan 18 17:45:15 2014 +0100
++++ src/common/basics.cpp	Wed Feb 05 22:08:32 2014 +0100
+@@ -41,6 +41,9 @@
+ #include <sys/stat.h>
+ #endif
+ 
++#include <cstring>
++#include <clocale>
++
+ using std::string;
+ using std::vector;
+ using std::list;
+@@ -65,6 +68,9 @@
+ //default font to use.
+ std::string defaultFontFile;
+ 
++static char *oldLocaleStatic;
++static int localeStaticType;
++
+ unsigned int getBitNum(unsigned int u)
+ {
+ 	ASSERT(u);
+@@ -86,6 +92,45 @@
+ 		return "0";
+ }
+ 
++void pushLocale(const char *newLocale, int type)
++{
++	ASSERT(!oldLocaleStatic);
++	ASSERT(!localeStaticType);
++
++	ASSERT(type == LC_NUMERIC || type == LC_MONETARY || type == LC_CTYPE 
++		|| type == LC_COLLATE || type == LC_ALL || type == LC_TIME
++		|| type== LC_MESSAGES);
++
++	oldLocaleStatic=setlocale(type,NULL);   
++
++	//setlocale reserves the right to trash the returned pointer      
++	// on subsequent calls (i.e. use the returned pointer for later)
++	// thus we must duplicate the pointer to own it
++	oldLocaleStatic=strdup(oldLocaleStatic);      
++	if(strcmp(oldLocaleStatic,newLocale)) 
++	{
++		setlocale(type,newLocale);        
++		localeStaticType=type;
++	}
++	else
++	{
++		//record that we did not set this
++		localeStaticType=-1;
++	}
++
++}
++
++void popLocale()
++{
++	if(localeStaticType != -1)
++		setlocale(localeStaticType,oldLocaleStatic);
++
++	localeStaticType=0;
++
++	free(oldLocaleStatic);
++	oldLocaleStatic=0;
++}
++
+ 
+ bool dummyCallback(bool)
+ {
+diff -r 7fba7ef21117 -r f104ace19a51 src/common/basics.h
+--- src/common/basics.h	Sat Jan 18 17:45:15 2014 +0100
++++ src/common/basics.h	Wed Feb 05 22:08:32 2014 +0100
+@@ -42,6 +42,13 @@
+ extern const char *FONT_FILE;
+ 
+ 
++//Set new locale code. Must be followed by a popLocale call before completion
++// Only one locale type can be pushed at a time this way
++void pushLocale(const char *newLocale, int type);
++
++//Restore old locale code
++void popLocale();
++
+ 
+ 
+ //C file peek function
+diff -r 7fba7ef21117 -r f104ace19a51 src/gui/mathglPane.cpp
+--- src/gui/mathglPane.cpp	Sat Jan 18 17:45:15 2014 +0100
++++ src/gui/mathglPane.cpp	Wed Feb 05 22:08:32 2014 +0100
+@@ -27,7 +27,6 @@
+ 
+ #ifdef USE_MGL2
+ 	#include <mgl2/canvas_wnd.h>
+-	#include <mgl2/canvas_wnd.h>
+ #else
+ 	#include <mgl/mgl_eps.h>
+ #endif
+@@ -1091,7 +1090,13 @@
+ 	grS->SetWarn(0);
+ 	grS->Message=mglWarnMsgBuf;
+ #endif	
++
++	//Mathgl does not set locale prior to writing SVG
++	// do this by hand
++	pushLocale("C",LC_NUMERIC);
+ 	grS->WriteSVG(filename.c_str());
++	popLocale();
++
+ 
+ 	bool doWarn;
+ #ifdef USE_MGL2
diff --git a/3Depict.spec b/3Depict.spec
index 4c635b1..bd763b2 100644
--- a/3Depict.spec
+++ b/3Depict.spec
@@ -1,6 +1,6 @@
 Name:		3Depict
 Version:	0.0.15
-Release:	2%{?dist}
+Release:	3%{?dist}
 Summary:	Valued 3D point cloud visualization and analysis
 Group:		Applications/Engineering
 
@@ -36,6 +36,8 @@ BuildRequires: qhull-devel
 Patch0: %{name}-%{version}-manual-pdf-loc.patch
 #Fedora specific font dir
 Patch1: %{name}-%{version}-font-path.patch
+#Upstream patches from 0.0.15 release tarball
+Patch2: %{name}-0.0.15-upstream.patch
 
 %description
 This software is designed to help users visualize and analyze 3D point clouds
@@ -49,6 +51,7 @@ useful for general scalar valued point data purposes.
 
 %patch0
 %patch1
+%patch2
 
 %build
 %configure --disable-debug-checks --enable-openmp-parallel --enable-mgl2
@@ -109,6 +112,10 @@ rm -rf %{buildroot}
 
 
 %changelog
+* Wed Feb 05 2014 D Haley <mycae(a!t)gmx.com> - 0.0.15-3
+- Rebuild for new mgl
+- Add upstream patches 
+
 * Sun Jan 26 2014 D Haley <mycae(a!t)gmx.com> - 0.0.15-2
 - Rebuild for new mgl
 


More information about the scm-commits mailing list