orion pushed to g2clib (epel7). "Fix 64bit detection to be automatic (bug #1203582) (..more)"

notifications at fedoraproject.org notifications at fedoraproject.org
Fri Mar 27 02:44:50 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=epel7&id=21213d198308b3bc4b584cece0f15ea76b3a7157


More information about the scm-commits mailing list