orion pushed to g2clib (el6). "Fix 64bit detection to be automatic (bug #1203582) (..more)"
notifications at fedoraproject.org
notifications at fedoraproject.org
Fri Mar 27 02:46:16 UTC 2015
>From 21213d198308b3bc4b584cece0f15ea76b3a7157 Mon Sep 17 00:00:00 2001
From: Orion Poplawski <orion at cora.nwra.com>
Date: Thu, 26 Mar 2015 20:42:17 -0600
Subject: Fix 64bit detection to be automatic (bug #1203582)
- Add patch from degrib that appears to fix some projection issues
diff --git a/g2clib-1.2.1-64bit.patch b/g2clib-1.2.1-64bit.patch
deleted file mode 100644
index 07a608b..0000000
--- a/g2clib-1.2.1-64bit.patch
+++ /dev/null
@@ -1,158 +0,0 @@
-diff -up g2clib-1.2.1/g2_addfield.c.64bit g2clib-1.2.1/g2_addfield.c
---- g2clib-1.2.1/g2_addfield.c.64bit 2009-01-16 12:25:50.000000000 -0700
-+++ g2clib-1.2.1/g2_addfield.c 2011-02-17 11:18:36.539587343 -0700
-@@ -1,3 +1,4 @@
-+#include <inttypes.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include "grib2.h"
-@@ -190,8 +191,8 @@ g2int g2_addfield(unsigned char *cgrib,g
- // total length, then there is a problem.
- if ( len > lencurr ) {
- printf("g2_addfield: Section byte counts don''t add to total.\n");
-- printf("g2_addfield: Sum of section byte counts = %ld\n",len);
-- printf("g2_addfield: Total byte count in Section 0 = %ld\n",lencurr);
-+ printf("g2_addfield: Sum of section byte counts = %"PRIg2int"\n",len);
-+ printf("g2_addfield: Total byte count in Section 0 = %"PRIg2int"\n",lencurr);
- ierr=-3;
- return(ierr);
- }
-@@ -392,7 +393,7 @@ g2int g2_addfield(unsigned char *cgrib,g
- }
- #endif /* USE_PNG */
- else {
-- printf("g2_addfield: Data Representation Template 5.%ld not yet implemented.\n",idrsnum);
-+ printf("g2_addfield: Data Representation Template 5.%"PRIg2int" not yet implemented.\n",idrsnum);
- ierr=-7;
- return(ierr);
- }
-diff -up g2clib-1.2.1/g2_addgrid.c.64bit g2clib-1.2.1/g2_addgrid.c
---- g2clib-1.2.1/g2_addgrid.c.64bit 2009-01-16 12:25:50.000000000 -0700
-+++ g2clib-1.2.1/g2_addgrid.c 2011-02-17 11:18:36.540587226 -0700
-@@ -1,3 +1,4 @@
-+#include <inttypes.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include "grib2.h"
-@@ -125,8 +126,8 @@ g2int g2_addgrid(unsigned char *cgrib,g2
- // total length, then there is a problem.
- if ( len > lencurr ) {
- printf("g2_addgrid: Section byte counts don''t add to total.\n");
-- printf("g2_addgrid: Sum of section byte counts = %ld\n",len);
-- printf("g2_addgrid: Total byte count in Section 0 = %ld\n",lencurr);
-+ printf("g2_addgrid: Sum of section byte counts = %"PRIg2int"\n",len);
-+ printf("g2_addgrid: Total byte count in Section 0 = %"PRIg2int"\n",lencurr);
- ierr=-3;
- return(ierr);
- }
-diff -up g2clib-1.2.1/g2_addlocal.c.64bit g2clib-1.2.1/g2_addlocal.c
---- g2clib-1.2.1/g2_addlocal.c.64bit 2003-03-18 15:46:03.000000000 -0700
-+++ g2clib-1.2.1/g2_addlocal.c 2011-02-17 11:18:36.540587226 -0700
-@@ -1,3 +1,4 @@
-+#include <inttypes.h>
- #include <stdio.h>
- #include "grib2.h"
-
-@@ -102,8 +103,8 @@ g2int g2_addlocal(unsigned char *cgrib,u
- // total length, then there is a problem.
- if ( len > lencurr ) {
- printf("g2_addlocal: Section byte counts don't add to total.\n");
-- printf("g2_addlocal: Sum of section byte counts = %ld\n",len);
-- printf("g2_addlocal: Total byte count in Section 0 = %ld\n",lencurr);
-+ printf("g2_addlocal: Sum of section byte counts = %"PRIg2int"\n",len);
-+ printf("g2_addlocal: Total byte count in Section 0 = %"PRIg2int"\n",lencurr);
- ierr=-3;
- return(ierr);
- }
-@@ -113,7 +114,7 @@ g2int g2_addlocal(unsigned char *cgrib,u
- //
- if ( (isecnum!=1) && (isecnum!=7) ) {
- printf("g2_addlocal: Section 2 can only be added after Section 1 or Section 7.\n");
-- printf("g2_addlocal: Section %ld was the last found in given GRIB message.\n",isecnum);
-+ printf("g2_addlocal: Section %"PRIg2int" was the last found in given GRIB message.\n",isecnum);
- ierr=-4;
- return(ierr);
- }
-diff -up g2clib-1.2.1/g2_getfld.c.64bit g2clib-1.2.1/g2_getfld.c
---- g2clib-1.2.1/g2_getfld.c.64bit 2004-12-28 07:35:22.000000000 -0700
-+++ g2clib-1.2.1/g2_getfld.c 2011-02-17 11:21:10.724568213 -0700
-@@ -1,3 +1,4 @@
-+#include <inttypes.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include "grib2.h"
-@@ -344,12 +345,12 @@ g2int g2_getfld(unsigned char *cgrib,g2i
- iofst=iofst+32;
- gbit(cgrib,&isecnum,iofst,8); // Get Section number
- iofst=iofst+8;
-- //printf(" lensec= %ld secnum= %ld \n",lensec,isecnum);
-+ //printf(" lensec= %"PRIg2int" secnum= %"PRIg2int" \n",lensec,isecnum);
- //
- // Check to see if section number is valid
- //
- if ( isecnum<1 || isecnum>7 ) {
-- printf("g2_getfld: Unrecognized Section Encountered=%ld\n",isecnum);
-+ printf("g2_getfld: Unrecognized Section Encountered=%"PRIg2int"\n",isecnum);
- ierr=8;
- return(ierr);
- }
-@@ -541,8 +542,8 @@ g2int g2_getfld(unsigned char *cgrib,g2i
- // If exited from above loop, the end of the GRIB message was reached
- // before the requested field was found.
- //
-- printf("g2_getfld: GRIB message contained %ld different fields.\n",numfld);
-- printf("g2_getfld: The request was for field %ld.\n",ifldnum);
-+ printf("g2_getfld: GRIB message contained %"PRIg2int" different fields.\n",numfld);
-+ printf("g2_getfld: The request was for field %"PRIg2int".\n",ifldnum);
- ierr=6;
-
- return(ierr);
-diff -up g2clib-1.2.1/g2_gribend.c.64bit g2clib-1.2.1/g2_gribend.c
---- g2clib-1.2.1/g2_gribend.c.64bit 2004-05-13 13:43:26.000000000 -0600
-+++ g2clib-1.2.1/g2_gribend.c 2011-02-17 11:18:36.551585938 -0700
-@@ -1,3 +1,4 @@
-+#include <inttypes.h>
- #include <stdio.h>
- #include "grib2.h"
-
-@@ -97,7 +98,7 @@ g2int g2_gribend(unsigned char *cgrib)
- //
- if ( isecnum != 7 ) {
- printf("g2_gribend: Section 8 can only be added after Section 7.\n");
-- printf("g2_gribend: Section %ld was the last found in given GRIB message.\n",isecnum);
-+ printf("g2_gribend: Section %"PRIg2int" was the last found in given GRIB message.\n",isecnum);
- ierr=-4;
- return (ierr);
- }
-diff -up g2clib-1.2.1/g2_info.c.64bit g2clib-1.2.1/g2_info.c
---- g2clib-1.2.1/g2_info.c.64bit 2003-03-18 15:46:03.000000000 -0700
-+++ g2clib-1.2.1/g2_info.c 2011-02-17 11:18:36.552585820 -0700
-@@ -1,3 +1,4 @@
-+#include <inttypes.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include "grib2.h"
-@@ -178,7 +179,7 @@ g2int g2_info(unsigned char *cgrib,g2int
- (*numfields)++;
- }
- else {
-- printf("g2_info: Invalid section number found in GRIB message: %ld\n" ,isecnum);
-+ printf("g2_info: Invalid section number found in GRIB message: %"PRIg2int"\n" ,isecnum);
- ierr=6;
- return(ierr);
- }
-diff -up g2clib-1.2.1/grib2.h.64bit g2clib-1.2.1/grib2.h
---- g2clib-1.2.1/grib2.h.64bit 2010-08-11 12:03:15.000000000 -0600
-+++ g2clib-1.2.1/grib2.h 2011-02-17 11:18:36.553585703 -0700
-@@ -154,9 +154,11 @@
- #ifdef __64BIT__
- typedef int g2int;
- typedef unsigned int g2intu;
-+#define PRIg2int "d"
- #else
- typedef long g2int;
- typedef unsigned long g2intu;
-+#define PRIg2int "ld"
- #endif
- typedef float g2float;
-
diff --git a/g2clib-64bit.patch b/g2clib-64bit.patch
new file mode 100644
index 0000000..608caa2
--- /dev/null
+++ b/g2clib-64bit.patch
@@ -0,0 +1,169 @@
+diff -up g2clib-1.4.0/g2_addfield.c.64bit g2clib-1.4.0/g2_addfield.c
+--- g2clib-1.4.0/g2_addfield.c.64bit 2012-02-15 06:54:35.000000000 -0700
++++ g2clib-1.4.0/g2_addfield.c 2015-03-25 20:56:03.611377585 -0600
+@@ -1,3 +1,4 @@
++#include <inttypes.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include "grib2.h"
+@@ -190,8 +191,8 @@ g2int g2_addfield(unsigned char *cgrib,g
+ // total length, then there is a problem.
+ if ( len > lencurr ) {
+ printf("g2_addfield: Section byte counts don''t add to total.\n");
+- printf("g2_addfield: Sum of section byte counts = %ld\n",len);
+- printf("g2_addfield: Total byte count in Section 0 = %ld\n",lencurr);
++ printf("g2_addfield: Sum of section byte counts = %"PRId32"\n",len);
++ printf("g2_addfield: Total byte count in Section 0 = %"PRId32"\n",lencurr);
+ ierr=-3;
+ return(ierr);
+ }
+@@ -392,7 +393,7 @@ g2int g2_addfield(unsigned char *cgrib,g
+ }
+ #endif /* USE_PNG */
+ else {
+- printf("g2_addfield: Data Representation Template 5.%ld not yet implemented.\n",idrsnum);
++ printf("g2_addfield: Data Representation Template 5.%"PRId32" not yet implemented.\n",idrsnum);
+ ierr=-7;
+ return(ierr);
+ }
+diff -up g2clib-1.4.0/g2_addgrid.c.64bit g2clib-1.4.0/g2_addgrid.c
+--- g2clib-1.4.0/g2_addgrid.c.64bit 2012-02-15 06:54:35.000000000 -0700
++++ g2clib-1.4.0/g2_addgrid.c 2015-03-25 20:56:03.611377585 -0600
+@@ -1,3 +1,4 @@
++#include <inttypes.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include "grib2.h"
+@@ -125,8 +126,8 @@ g2int g2_addgrid(unsigned char *cgrib,g2
+ // total length, then there is a problem.
+ if ( len > lencurr ) {
+ printf("g2_addgrid: Section byte counts don''t add to total.\n");
+- printf("g2_addgrid: Sum of section byte counts = %ld\n",len);
+- printf("g2_addgrid: Total byte count in Section 0 = %ld\n",lencurr);
++ printf("g2_addgrid: Sum of section byte counts = %"PRId32"\n",len);
++ printf("g2_addgrid: Total byte count in Section 0 = %"PRId32"\n",lencurr);
+ ierr=-3;
+ return(ierr);
+ }
+diff -up g2clib-1.4.0/g2_addlocal.c.64bit g2clib-1.4.0/g2_addlocal.c
+--- g2clib-1.4.0/g2_addlocal.c.64bit 2012-02-15 06:54:35.000000000 -0700
++++ g2clib-1.4.0/g2_addlocal.c 2015-03-25 20:56:03.612377608 -0600
+@@ -1,3 +1,4 @@
++#include <inttypes.h>
+ #include <stdio.h>
+ #include "grib2.h"
+
+@@ -102,8 +103,8 @@ g2int g2_addlocal(unsigned char *cgrib,u
+ // total length, then there is a problem.
+ if ( len > lencurr ) {
+ printf("g2_addlocal: Section byte counts don't add to total.\n");
+- printf("g2_addlocal: Sum of section byte counts = %ld\n",len);
+- printf("g2_addlocal: Total byte count in Section 0 = %ld\n",lencurr);
++ printf("g2_addlocal: Sum of section byte counts = %"PRId32"\n",len);
++ printf("g2_addlocal: Total byte count in Section 0 = %"PRId32"\n",lencurr);
+ ierr=-3;
+ return(ierr);
+ }
+@@ -113,7 +114,7 @@ g2int g2_addlocal(unsigned char *cgrib,u
+ //
+ if ( (isecnum!=1) && (isecnum!=7) ) {
+ printf("g2_addlocal: Section 2 can only be added after Section 1 or Section 7.\n");
+- printf("g2_addlocal: Section %ld was the last found in given GRIB message.\n",isecnum);
++ printf("g2_addlocal: Section %"PRId32" was the last found in given GRIB message.\n",isecnum);
+ ierr=-4;
+ return(ierr);
+ }
+diff -up g2clib-1.4.0/g2_getfld.c.64bit g2clib-1.4.0/g2_getfld.c
+--- g2clib-1.4.0/g2_getfld.c.64bit 2012-02-15 06:54:35.000000000 -0700
++++ g2clib-1.4.0/g2_getfld.c 2015-03-25 20:56:03.612377608 -0600
+@@ -1,3 +1,4 @@
++#include <inttypes.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include "grib2.h"
+@@ -344,12 +345,12 @@ g2int g2_getfld(unsigned char *cgrib,g2i
+ iofst=iofst+32;
+ gbit(cgrib,&isecnum,iofst,8); // Get Section number
+ iofst=iofst+8;
+- //printf(" lensec= %ld secnum= %ld \n",lensec,isecnum);
++ //printf(" lensec= %"PRId32" secnum= %"PRId32" \n",lensec,isecnum);
+ //
+ // Check to see if section number is valid
+ //
+ if ( isecnum<1 || isecnum>7 ) {
+- printf("g2_getfld: Unrecognized Section Encountered=%ld\n",isecnum);
++ printf("g2_getfld: Unrecognized Section Encountered=%"PRId32"\n",isecnum);
+ ierr=8;
+ return(ierr);
+ }
+@@ -541,8 +542,8 @@ g2int g2_getfld(unsigned char *cgrib,g2i
+ // If exited from above loop, the end of the GRIB message was reached
+ // before the requested field was found.
+ //
+- printf("g2_getfld: GRIB message contained %ld different fields.\n",numfld);
+- printf("g2_getfld: The request was for field %ld.\n",ifldnum);
++ printf("g2_getfld: GRIB message contained %"PRId32" different fields.\n",numfld);
++ printf("g2_getfld: The request was for field %"PRId32".\n",ifldnum);
+ ierr=6;
+
+ return(ierr);
+diff -up g2clib-1.4.0/g2_gribend.c.64bit g2clib-1.4.0/g2_gribend.c
+--- g2clib-1.4.0/g2_gribend.c.64bit 2012-02-15 06:54:35.000000000 -0700
++++ g2clib-1.4.0/g2_gribend.c 2015-03-25 20:56:03.612377608 -0600
+@@ -1,3 +1,4 @@
++#include <inttypes.h>
+ #include <stdio.h>
+ #include "grib2.h"
+
+@@ -97,7 +98,7 @@ g2int g2_gribend(unsigned char *cgrib)
+ //
+ if ( isecnum != 7 ) {
+ printf("g2_gribend: Section 8 can only be added after Section 7.\n");
+- printf("g2_gribend: Section %ld was the last found in given GRIB message.\n",isecnum);
++ printf("g2_gribend: Section %"PRId32" was the last found in given GRIB message.\n",isecnum);
+ ierr=-4;
+ return (ierr);
+ }
+diff -up g2clib-1.4.0/g2_info.c.64bit g2clib-1.4.0/g2_info.c
+--- g2clib-1.4.0/g2_info.c.64bit 2012-02-15 06:54:35.000000000 -0700
++++ g2clib-1.4.0/g2_info.c 2015-03-25 20:56:03.613377630 -0600
+@@ -1,3 +1,4 @@
++#include <inttypes.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include "grib2.h"
+@@ -178,7 +179,7 @@ g2int g2_info(unsigned char *cgrib,g2int
+ (*numfields)++;
+ }
+ else {
+- printf("g2_info: Invalid section number found in GRIB message: %ld\n" ,isecnum);
++ printf("g2_info: Invalid section number found in GRIB message: %"PRId32"\n" ,isecnum);
+ ierr=6;
+ return(ierr);
+ }
+diff -up g2clib-1.4.0/grib2.h.64bit g2clib-1.4.0/grib2.h
+--- g2clib-1.4.0/grib2.h.64bit 2012-07-05 06:55:00.000000000 -0600
++++ g2clib-1.4.0/grib2.h 2015-03-25 20:56:38.541167149 -0600
+@@ -1,5 +1,6 @@
+ #ifndef _grib2_H
+ #define _grib2_H
++#include<inttypes.h>
+ #include<stdio.h>
+
+ #define G2_VERSION "g2clib-1.4.0"
+@@ -151,13 +152,8 @@
+ // that holds the data.
+ */
+
+-#ifdef __64BIT__
+-typedef int g2int;
+-typedef unsigned int g2intu;
+-#else
+-typedef long g2int;
+-typedef unsigned long g2intu;
+-#endif
++typedef int32_t g2int;
++typedef uint32_t g2intu;
+ typedef float g2float;
+
+ struct gtemplate {
diff --git a/g2clib-degrib.patch b/g2clib-degrib.patch
new file mode 100644
index 0000000..8c8fb31
--- /dev/null
+++ b/g2clib-degrib.patch
@@ -0,0 +1,18 @@
+diff -up g2clib-1.4.0/gridtemplates.c.degrib g2clib-1.4.0/gridtemplates.c
+--- g2clib-1.4.0/gridtemplates.c.degrib 2015-03-25 20:58:28.865594822 -0600
++++ g2clib-1.4.0/gridtemplates.c 2015-03-25 21:14:48.079848950 -0600
+@@ -12,11 +12,11 @@ const struct gridtemplate templatesgrid[
+ // 3.3: Stretched & Rotated Lat/Lon grid
+ { 3, 25, 0, {1,1,4,1,4,1,4,4,4,4,4,-4,4,1,-4,4,4,4,1,-4,4,4,-4,4,-4} },
+ // 3.10: Mercator
+- {10, 19, 0, {1,1,4,1,4,1,4,4,4,-4,4,1,-4,-4,4,1,4,4,4} },
++ {10, 19, 0, {1,1,4,1,4,1,4,4,4,-4,-4,1,-4,-4,-4,1,4,4,4} },
+ // 3.20: Polar Stereographic Projection
+- {20, 18, 0, {1,1,4,1,4,1,4,4,4,-4,4,1,-4,4,4,4,1,1} },
++ {20, 18, 0, {1,1,4,1,4,1,4,4,4,-4,-4,1,-4,-4,4,4,1,1} },
+ // 3.30: Lambert Conformal
+- {30, 22, 0, {1,1,4,1,4,1,4,4,4,-4,4,1,-4,4,4,4,1,1,-4,-4,-4,4} },
++ {30, 22, 0, {1,1,4,1,4,1,4,4,4,-4,-4,1,-4,-4,4,4,1,1,-4,-4,-4,-4} },
+ // 3.31: Albers equal area
+ {31, 22, 0, {1,1,4,1,4,1,4,4,4,-4,4,1,-4,4,4,4,1,1,-4,-4,-4,4} },
+ // 3.40: Guassian Lat/Lon
diff --git a/g2clib.spec b/g2clib.spec
index 9724ead..13b9f52 100644
--- a/g2clib.spec
+++ b/g2clib.spec
@@ -1,6 +1,6 @@
Name: g2clib
Version: 1.4.0
-Release: 8%{?dist}
+Release: 9%{?dist}
Summary: GRIB2 encoder/decoder and search/indexing routines in C
Group: System Environment/Libraries
@@ -8,13 +8,15 @@ License: Public Domain
URL: http://www.nco.ncep.noaa.gov/pmb/codes/GRIB2/
Source0: http://www.nco.ncep.noaa.gov/pmb/codes/GRIB2/g2clib-%{version}.tar
Source1: g2clib-msg.txt
-#Patch to fix up printf arguments on 64-bit machines
-Patch0: g2clib-1.2.1-64bit.patch
+#Patch to fix up type detection and printf arguments on 64-bit machines
+Patch0: g2clib-64bit.patch
# Patch to remove multiple definitions of templates
Patch1: g2clib-templates.patch
# Patch from Wesley Ebisuzaki <wesley.ebisuzaki at noaa.gov> to fix sigfault
# if simunpack() is called with 0 values to unpack
Patch2: g2clib-simunpack.patch
+# Patch from degrib - appears to fix projection issues
+Patch3: g2clib-degrib.patch
BuildRequires: libpng-devel jasper-devel
#Requires:
@@ -46,6 +48,7 @@ developing applications that use %{name}.
%patch0 -p1 -b .64bit
%patch1 -p1 -b .templates
%patch2 -p1 -b .simunpack
+%patch3 -p1 -b .degrib
chmod a-x *.h *.c README CHANGES grib2c.doc makefile
cp -p %{SOURCE1} .
@@ -80,7 +83,6 @@ rm -rf $RPM_BUILD_ROOT
%files devel
-%defattr(-,root,root,-)
%doc README CHANGES grib2c.doc g2clib-msg.txt
%{_libdir}/libgrib2c.a
%{_includedir}/grib2.h
@@ -90,6 +92,10 @@ rm -rf $RPM_BUILD_ROOT
%changelog
+* Wed Mar 25 2015 Orion Poplawski <orion at cora.nwra.com> - 1.4.0-9
+- Fix 64bit detection to be automatic (bug #1203582)
+- Add patch from degrib that appears to fix some projection issues
+
* Sat Aug 16 2014 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 1.4.0-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
--
cgit v0.10.2
http://pkgs.fedoraproject.org/cgit/g2clib.git/commit/?h=el6&id=21213d198308b3bc4b584cece0f15ea76b3a7157
More information about the scm-commits
mailing list