Compare commits

...

12 Commits
master ... el6

Author SHA1 Message Date
Orion Poplawski 0cd9c6c1a4 Fix nc-config --fflags (bug #1032110) 2014-01-29 22:26:00 -07:00
Orion Poplawski 1d9a9251eb Add upstream patch to fix nofill mode data corruption bug 2013-10-21 09:47:24 -06:00
Orion Poplawski 54ed64e282 - Add patch to fix namespace conflict with ncurses (bug #924467)
- Add BR on bison due to patching dap.y
2013-03-22 12:37:59 -06:00
Orion Poplawski df34d4b137 - Don't use %{_isa} in Requires for gcc-gfortran - not multilib in RHEL 2010-12-27 14:08:08 -07:00
Fedora Release Engineering d45c68ec74 dist-git conversion 2010-07-29 04:16:02 +00:00
Orion Poplawski c7d3d4925d - valgrind crashes on ppc64 (bug #593027), don't use it 2010-05-17 16:19:06 +00:00
Orion Poplawski 3d09508f06 Update to 4.1.1 from devel 2010-05-17 15:33:43 +00:00
Dennis Gilmore ee12cc3548 Initialize branch EL-6 for netcdf 2010-05-08 02:01:06 +00:00
Bill Nottingham 1f98d3e1f5 Fix typo that causes a failure to update the common directory. (releng
#2781)
2009-11-26 01:21:51 +00:00
Orion Poplawski f507ef7996 - Drop Require: gcc-gfortran for now 2009-11-05 18:57:50 +00:00
Orion Poplawski 52baab4768 Require gcc-gfortran for -devel (bug #483469) 2009-10-26 19:15:17 +00:00
Orion Poplawski e8af090955 - Don't ship multi-lib incompatible nc-config 2009-10-26 19:12:06 +00:00
11 changed files with 633 additions and 53 deletions

View File

@ -1 +0,0 @@
netcdf-4.0.1.tar.gz

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
netcdf-4.1.1.tar.gz

View File

@ -1,21 +0,0 @@
# Makefile for source rpm: netcdf
# $Id$
NAME := netcdf
SPECFILE = $(firstword $(wildcard *.spec))
define find-makefile-common
for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done
endef
MAKEFILE_COMMON := $(shell $(find-makefile-common))
ifeq ($(MAKEFILE_COMMON),)
# attept a checkout
define checkout-makefile-common
test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2
endef
MAKEFILE_COMMON := $(shell $(checkout-makefile-common))
endif
include $(MAKEFILE_COMMON)

View File

@ -1,11 +0,0 @@
diff -urN netcdf-4.0-beta2-ORIG/examples/CXX4/sfc_pres_temp_rd.cpp netcdf-4.0-beta2/examples/CXX4/sfc_pres_temp_rd.cpp
--- netcdf-4.0-beta2-ORIG/examples/CXX4/sfc_pres_temp_rd.cpp 2007-07-29 20:18:22.000000000 -0400
+++ netcdf-4.0-beta2/examples/CXX4/sfc_pres_temp_rd.cpp 2008-05-08 00:30:54.000000000 -0400
@@ -17,6 +17,7 @@
*/
#include <iostream>
+#include <cstring>
#include <netcdfcpp4.h>
using namespace std;

View File

@ -0,0 +1,34 @@
diff -up netcdf-4.1-snapshot2010020100/nc-config.in.pkgconfig netcdf-4.1-snapshot2010020100/nc-config.in
--- netcdf-4.1-snapshot2010020100/nc-config.in.pkgconfig 2010-01-11 12:27:12.000000000 -0700
+++ netcdf-4.1-snapshot2010020100/nc-config.in 2010-02-01 16:04:22.429448744 -0700
@@ -8,7 +8,6 @@
prefix=@prefix@
exec_prefix=${prefix}
-libdir=${exec_prefix}/lib
includedir=${prefix}/include
cc="@CC@"
@@ -16,8 +15,6 @@ cxx="@CXX@"
fc="@FC@"
cflags=" -I${includedir}"
fflags="@FFLAGS@ @MOD_FLAG@${includedir}"
-libs="-L${libdir} @NC_LIBS@"
-flibs="-L${libdir} @NC_FLIBS@"
has_dap="@HAS_DAP@"
has_nc2="@HAS_NC2@"
has_nc4="@HAS_NC4@"
@@ -138,11 +135,11 @@ while test $# -gt 0; do
;;
--libs)
- echo $libs
+ pkg-config netcdf --libs
;;
--flibs)
- echo $flibs
+ pkg-config netcdf --variable=flibs
;;
--has-dap)

421
netcdf-4.1.1-dap.patch Normal file
View File

@ -0,0 +1,421 @@
diff -up netcdf-4.1.1/libncdap3/oc/daplex.c.dap netcdf-4.1.1/libncdap3/oc/daplex.c
--- netcdf-4.1.1/libncdap3/oc/daplex.c.dap 2013-03-22 11:43:28.933640833 -0600
+++ netcdf-4.1.1/libncdap3/oc/daplex.c 2013-03-22 11:43:38.946596288 -0600
@@ -2,6 +2,7 @@
See the COPYRIGHT file for more information. */
#include "dapparselex.h"
+#include "daptab.h"
#define URLCVT
diff -up netcdf-4.1.1/libncdap3/oc/dapparse.c.dap netcdf-4.1.1/libncdap3/oc/dapparse.c
--- netcdf-4.1.1/libncdap3/oc/dapparse.c.dap 2010-04-01 17:33:24.000000000 -0600
+++ netcdf-4.1.1/libncdap3/oc/dapparse.c 2013-03-22 11:43:14.710704133 -0600
@@ -2,6 +2,7 @@
See the COPYRIGHT file for more information. */
#include "dapparselex.h"
+#include "daptab.h"
extern int dapparse(DAPparsestate*);
@@ -19,7 +20,7 @@ static int check_int32(char* val, long*
Object
-datasetbody(DAPparsestate* state, Object name, Object decls)
+dap_datasetbody(DAPparsestate* state, Object name, Object decls)
{
OCnode* node = newocnode((char*)name,OC_Dataset,state);
node->subnodes = (OClist*)decls;
@@ -32,7 +33,7 @@ datasetbody(DAPparsestate* state, Object
}
Object
-attributebody(DAPparsestate* state, Object attrlist)
+dap_attributebody(DAPparsestate* state, Object attrlist)
{
OCnode* node = newocnode(NULL,OC_Attributeset,state);
OCASSERT((state->root == NULL));
@@ -45,7 +46,7 @@ attributebody(DAPparsestate* state, Obje
}
Object
-errorbody(DAPparsestate* state, Object code, Object msg)
+dap_errorbody(DAPparsestate* state, Object code, Object msg)
{
state->svcerror = 1;
state->code = strdup((char*)code);
@@ -54,13 +55,13 @@ errorbody(DAPparsestate* state, Object c
}
Object
-unrecognizedresponse(DAPparsestate* state)
+dap_unrecognizedresponse(DAPparsestate* state)
{
- return errorbody(state,"0",state->lexstate->input);
+ return dap_errorbody(state,"0",state->lexstate->input);
}
Object
-declarations(DAPparsestate* state, Object decls, Object decl)
+dap_declarations(DAPparsestate* state, Object decls, Object decl)
{
OClist* alist = (OClist*)decls;
if(alist == NULL)
@@ -71,7 +72,7 @@ declarations(DAPparsestate* state, Objec
}
Object
-arraydecls(DAPparsestate* state, Object arraydecls, Object arraydecl)
+dap_arraydecls(DAPparsestate* state, Object arraydecls, Object arraydecl)
{
OClist* alist = (OClist*)arraydecls;
if(alist == NULL)
@@ -82,7 +83,7 @@ arraydecls(DAPparsestate* state, Object
}
Object
-arraydecl(DAPparsestate* state, Object name, Object size)
+dap_arraydecl(DAPparsestate* state, Object name, Object size)
{
long value;
OCnode* dim;
@@ -97,7 +98,7 @@ arraydecl(DAPparsestate* state, Object n
}
Object
-attrlist(DAPparsestate* state, Object attrlist, Object attrtuple)
+dap_attrlist(DAPparsestate* state, Object attrlist, Object attrtuple)
{
OClist* alist = (OClist*)attrlist;
if(alist == NULL)
@@ -117,7 +118,7 @@ attrlist(DAPparsestate* state, Object at
}
Object
-attrvalue(DAPparsestate* state, Object valuelist, Object value, Object etype)
+dap_attrvalue(DAPparsestate* state, Object valuelist, Object value, Object etype)
{
OClist* alist = (OClist*)valuelist;
if(alist == NULL) alist = oclistnew();
@@ -128,7 +129,7 @@ attrvalue(DAPparsestate* state, Object v
}
Object
-attribute(DAPparsestate* state, Object name, Object values, Object etype)
+dap_attribute(DAPparsestate* state, Object name, Object values, Object etype)
{
OCnode* att;
att = newocnode((char*)name,OC_Attribute,state);
@@ -138,7 +139,7 @@ attribute(DAPparsestate* state, Object n
}
Object
-attrset(DAPparsestate* state, Object name, Object attributes)
+dap_attrset(DAPparsestate* state, Object name, Object attributes)
{
OCnode* attset;
attset = newocnode((char*)name,OC_Attributeset,state);
@@ -199,7 +200,7 @@ dimnameanon(char* basename, unsigned int
}
Object
-makebase(DAPparsestate* state, Object name, Object etype, Object dimensions)
+dap_makebase(DAPparsestate* state, Object name, Object etype, Object dimensions)
{
OCnode* node;
node = newocnode((char*)name,OC_Primitive,state);
@@ -209,7 +210,7 @@ makebase(DAPparsestate* state, Object na
}
Object
-makestructure(DAPparsestate* state, Object name, Object dimensions, Object fields)
+dap_makestructure(DAPparsestate* state, Object name, Object dimensions, Object fields)
{
OCnode* node;
char* dupname;
@@ -225,7 +226,7 @@ makestructure(DAPparsestate* state, Obje
}
Object
-makesequence(DAPparsestate* state, Object name, Object members)
+dap_makesequence(DAPparsestate* state, Object name, Object members)
{
OCnode* node;
char* dupname;
@@ -240,7 +241,7 @@ makesequence(DAPparsestate* state, Objec
}
Object
-makegrid(DAPparsestate* state, Object name, Object arraydecl, Object mapdecls)
+dap_makegrid(DAPparsestate* state, Object name, Object arraydecl, Object mapdecls)
{
OCnode* node;
/* Check for duplicate map names */
diff -up netcdf-4.1.1/libncdap3/oc/dapparselex.h.dap netcdf-4.1.1/libncdap3/oc/dapparselex.h
--- netcdf-4.1.1/libncdap3/oc/dapparselex.h.dap 2010-04-01 17:33:24.000000000 -0600
+++ netcdf-4.1.1/libncdap3/oc/dapparselex.h 2013-03-22 11:40:43.271384078 -0600
@@ -6,12 +6,6 @@
#include "ocinternal.h"
#include "ocdebug.h"
-#ifdef USE_DAP
-/* To avoid "make distclean" wiping out dap.tab.h */
-#include "daptab.h"
-#else
-#include "dap.tab.h"
-#endif
#ifdef WIN32
#define strcasecmp stricmp
@@ -73,26 +67,32 @@ typedef struct DAPparsestate {
extern int yylex (YYSTYPE*, DAPparsestate*);
extern int yyerror(DAPparsestate*,char*);
+extern void dassetup(DAPparsestate* state);
extern void dap_parse_error(DAPparsestate*,const char *fmt, ...);
-
-extern Object datasetbody(DAPparsestate*,Object decls, Object name);
-extern Object declarations(DAPparsestate*,Object decls, Object decl);
-extern Object arraydecls(DAPparsestate*,Object arraydecls, Object arraydecl);
-extern Object arraydecl(DAPparsestate*,Object name, Object size);
-
-extern void attributesetup(DAPparsestate*);
-extern Object attributebody(DAPparsestate*,Object attrlist);
-extern Object attrlist(DAPparsestate*,Object attrlist, Object attrtuple);
-extern Object attribute(DAPparsestate*,Object name, Object value, Object etype);
-extern Object attrset(DAPparsestate*,Object name, Object attributes);
-extern Object attrvalue(DAPparsestate*,Object valuelist, Object value, Object etype);
-
-extern Object makebase(DAPparsestate*,Object name, Object etype, Object dimensions);
-extern Object makestructure(DAPparsestate*,Object name, Object dimensions, Object fields);
-extern Object makesequence(DAPparsestate*,Object name, Object members);
-extern Object makegrid(DAPparsestate*,Object name, Object arraydecl, Object mapdecls);
-
-extern Object errorbody(DAPparsestate*, Object code, Object msg);
-extern Object unrecognizedresponse(DAPparsestate*);
+extern Object dap_datasetbody(DAPparsestate*,Object decls, Object name);
+extern Object dap_declarations(DAPparsestate*,Object decls, Object decl);
+extern Object dap_arraydecls(DAPparsestate*,Object arraydecls, Object arraydecl);
+extern Object dap_arraydecl(DAPparsestate*,Object name, Object size);
+
+extern void dap_attributesetup(DAPparsestate*);
+extern Object dap_attributebody(DAPparsestate*,Object attrlist);
+extern Object dap_attrlist(DAPparsestate*,Object attrlist, Object attrtuple);
+extern Object dap_attribute(DAPparsestate*,Object name, Object value, Object etype);
+extern Object dap_attrset(DAPparsestate*,Object name, Object attributes);
+extern Object dap_attrvalue(DAPparsestate*,Object valuelist, Object value, Object etype);
+
+extern Object dap_makebase(DAPparsestate*,Object name, Object etype, Object dimensions);
+extern Object dap_makestructure(DAPparsestate*,Object name, Object dimensions, Object fields);
+extern Object dap_makesequence(DAPparsestate*,Object name, Object members);
+extern Object dap_makegrid(DAPparsestate*,Object name, Object arraydecl, Object mapdecls);
+
+extern Object dap_errorbody(DAPparsestate*, Object code, Object msg);
+extern Object dap_unrecognizedresponse(DAPparsestate*);
+
+/* Lexer entry points */
+extern int daplex(YYSTYPE*, DAPparsestate*);
+extern void daplexinit(char* input, Lexstate** lexstatep);
+extern void daplexcleanup(Lexstate** lexstatep);
+extern void dapsetwordchars(Lexstate* lexstate, int kind);
#endif /*DAPPARSELEX_H*/
diff -up netcdf-4.1.1/libncdap3/oc/dap.y.dap netcdf-4.1.1/libncdap3/oc/dap.y
--- netcdf-4.1.1/libncdap3/oc/dap.y.dap 2010-04-01 17:33:23.000000000 -0600
+++ netcdf-4.1.1/libncdap3/oc/dap.y 2013-03-22 11:34:25.689059778 -0600
@@ -1,12 +1,10 @@
/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc.
See the COPYRIGHT file for more information. */
-%{
-#include "dapparselex.h"
-%}
%pure-parser
%lex-param {DAPparsestate* parsestate}
%parse-param {DAPparsestate* parsestate}
+%{#include "dapparselex.h"%}
%token SCAN_ALIAS
%token SCAN_ARRAY
@@ -51,30 +49,30 @@ start:
| SCAN_ATTR dassetup attributebody
| SCAN_ERROR errorbody
| error
- {$$=unrecognizedresponse(parsestate);}
+ {$$=dap_unrecognizedresponse(parsestate);}
;
datasetbody:
'{' declarations '}' datasetname ';'
- {$$=datasetbody(parsestate,$4,$2);}
+ {$$=dap_datasetbody(parsestate,$4,$2);}
;
declarations:
- /* empty */ {$$=declarations(parsestate,null,null);}
- | declarations declaration {$$=declarations(parsestate,$1,$2);}
+ /* empty */ {$$=dap_declarations(parsestate,null,null);}
+ | declarations declaration {$$=dap_declarations(parsestate,$1,$2);}
;
/* 01/21/08: James says: no dimensions for grids or sequences */
/* 05/08/09: James says: no duplicate map names */
declaration:
base_type var_name array_decls ';'
- {$$=makebase(parsestate,$2,$1,$3);}
+ {$$=dap_makebase(parsestate,$2,$1,$3);}
| SCAN_STRUCTURE '{' declarations '}' var_name array_decls ';'
- {if(($$ = makestructure(parsestate,$5,$6,$3))==null) {YYABORT;}}
+ {if(($$ = dap_makestructure(parsestate,$5,$6,$3))==null) {YYABORT;}}
| SCAN_SEQUENCE '{' declarations '}' var_name ';'
- {if(($$ = makesequence(parsestate,$5,$3))==null) {YYABORT;}}
+ {if(($$ = dap_makesequence(parsestate,$5,$3))==null) {YYABORT;}}
| SCAN_GRID '{' SCAN_ARRAY ':' declaration SCAN_MAPS ':' declarations '}' var_name ';'
- {if(($$ = makegrid(parsestate,$10,$5,$8))==null) {YYABORT;}}
+ {if(($$ = dap_makegrid(parsestate,$10,$5,$8))==null) {YYABORT;}}
| error
{yyerror(parsestate,"Unrecognized type"); YYABORT;}
;
@@ -93,13 +91,13 @@ base_type:
;
array_decls:
- /* empty */ {$$=arraydecls(parsestate,null,null);}
- | array_decls array_decl {$$=arraydecls(parsestate,$1,$2);}
+ /* empty */ {$$=dap_arraydecls(parsestate,null,null);}
+ | array_decls array_decl {$$=dap_arraydecls(parsestate,$1,$2);}
;
array_decl:
- '[' SCAN_WORD ']' {$$=arraydecl(parsestate,null,$2);}
- | '[' name '=' SCAN_WORD ']' {$$=arraydecl(parsestate,$2,$4);}
+ '[' SCAN_WORD ']' {$$=dap_arraydecl(parsestate,null,$2);}
+ | '[' name '=' SCAN_WORD ']' {$$=dap_arraydecl(parsestate,$2,$4);}
| error
{yyerror(parsestate,"Illegal dimension declaration"); YYABORT;}
;
@@ -115,81 +113,81 @@ var_name: name {$$=$1;};
dassetup: {dassetup(parsestate);}
attributebody:
- '{' attr_list '}' {$$=attributebody(parsestate,$2);}
+ '{' attr_list '}' {$$=dap_attributebody(parsestate,$2);}
| error
{yyerror(parsestate,"Illegal DAS body"); YYABORT;}
;
attr_list:
- /* empty */ {$$=attrlist(parsestate,null,null);}
- | attr_list attribute {$$=attrlist(parsestate,$1,$2);}
+ /* empty */ {$$=dap_attrlist(parsestate,null,null);}
+ | attr_list attribute {$$=dap_attrlist(parsestate,$1,$2);}
;
attribute:
alias ';' {$$=null;} /* ignored */
| SCAN_BYTE name bytes ';'
- {$$=attribute(parsestate,$2,$3,(Object)SCAN_BYTE);}
+ {$$=dap_attribute(parsestate,$2,$3,(Object)SCAN_BYTE);}
| SCAN_INT16 name int16 ';'
- {$$=attribute(parsestate,$2,$3,(Object)SCAN_INT16);}
+ {$$=dap_attribute(parsestate,$2,$3,(Object)SCAN_INT16);}
| SCAN_UINT16 name uint16 ';'
- {$$=attribute(parsestate,$2,$3,(Object)SCAN_UINT16);}
+ {$$=dap_attribute(parsestate,$2,$3,(Object)SCAN_UINT16);}
| SCAN_INT32 name int32 ';'
- {$$=attribute(parsestate,$2,$3,(Object)SCAN_INT32);}
+ {$$=dap_attribute(parsestate,$2,$3,(Object)SCAN_INT32);}
| SCAN_UINT32 name uint32 ';'
- {$$=attribute(parsestate,$2,$3,(Object)SCAN_UINT32);}
+ {$$=dap_attribute(parsestate,$2,$3,(Object)SCAN_UINT32);}
| SCAN_FLOAT32 name float32 ';'
- {$$=attribute(parsestate,$2,$3,(Object)SCAN_FLOAT32);}
+ {$$=dap_attribute(parsestate,$2,$3,(Object)SCAN_FLOAT32);}
| SCAN_FLOAT64 name float64 ';'
- {$$=attribute(parsestate,$2,$3,(Object)SCAN_FLOAT64);}
+ {$$=dap_attribute(parsestate,$2,$3,(Object)SCAN_FLOAT64);}
| SCAN_STRING name strs ';'
- {$$=attribute(parsestate,$2,$3,(Object)SCAN_STRING);}
+ {$$=dap_attribute(parsestate,$2,$3,(Object)SCAN_STRING);}
| SCAN_URL name urls ';'
- {$$=attribute(parsestate,$2,$3,(Object)SCAN_URL);}
- | name '{' attr_list '}' {$$=attrset(parsestate,$1,$3);}
+ {$$=dap_attribute(parsestate,$2,$3,(Object)SCAN_URL);}
+ | name '{' attr_list '}' {$$=dap_attrset(parsestate,$1,$3);}
| error
{yyerror(parsestate,"Illegal attribute"); YYABORT;}
;
bytes:
- SCAN_WORD {$$=attrvalue(parsestate,null,$1,(Object)SCAN_BYTE);}
+ SCAN_WORD {$$=dap_attrvalue(parsestate,null,$1,(Object)SCAN_BYTE);}
| bytes ',' SCAN_WORD
- {$$=attrvalue(parsestate,$1,$3,(Object)SCAN_BYTE);}
+ {$$=dap_attrvalue(parsestate,$1,$3,(Object)SCAN_BYTE);}
;
int16:
- SCAN_WORD {$$=attrvalue(parsestate,null,$1,(Object)SCAN_INT16);}
+ SCAN_WORD {$$=dap_attrvalue(parsestate,null,$1,(Object)SCAN_INT16);}
| int16 ',' SCAN_WORD
- {$$=attrvalue(parsestate,$1,$3,(Object)SCAN_INT16);}
+ {$$=dap_attrvalue(parsestate,$1,$3,(Object)SCAN_INT16);}
;
uint16:
- SCAN_WORD {$$=attrvalue(parsestate,null,$1,(Object)SCAN_UINT16);}
+ SCAN_WORD {$$=dap_attrvalue(parsestate,null,$1,(Object)SCAN_UINT16);}
| uint16 ',' SCAN_WORD
- {$$=attrvalue(parsestate,$1,$3,(Object)SCAN_UINT16);}
+ {$$=dap_attrvalue(parsestate,$1,$3,(Object)SCAN_UINT16);}
;
int32:
- SCAN_WORD {$$=attrvalue(parsestate,null,$1,(Object)SCAN_INT32);}
+ SCAN_WORD {$$=dap_attrvalue(parsestate,null,$1,(Object)SCAN_INT32);}
| int32 ',' SCAN_WORD
- {$$=attrvalue(parsestate,$1,$3,(Object)SCAN_INT32);}
+ {$$=dap_attrvalue(parsestate,$1,$3,(Object)SCAN_INT32);}
;
uint32:
- SCAN_WORD {$$=attrvalue(parsestate,null,$1,(Object)SCAN_UINT32);}
- | uint32 ',' SCAN_WORD {$$=attrvalue(parsestate,$1,$3,(Object)SCAN_UINT32);}
+ SCAN_WORD {$$=dap_attrvalue(parsestate,null,$1,(Object)SCAN_UINT32);}
+ | uint32 ',' SCAN_WORD {$$=dap_attrvalue(parsestate,$1,$3,(Object)SCAN_UINT32);}
;
float32:
- SCAN_WORD {$$=attrvalue(parsestate,null,$1,(Object)SCAN_FLOAT32);}
- | float32 ',' SCAN_WORD {$$=attrvalue(parsestate,$1,$3,(Object)SCAN_FLOAT32);}
+ SCAN_WORD {$$=dap_attrvalue(parsestate,null,$1,(Object)SCAN_FLOAT32);}
+ | float32 ',' SCAN_WORD {$$=dap_attrvalue(parsestate,$1,$3,(Object)SCAN_FLOAT32);}
;
float64:
- SCAN_WORD {$$=attrvalue(parsestate,null,$1,(Object)SCAN_FLOAT64);}
- | float64 ',' SCAN_WORD {$$=attrvalue(parsestate,$1,$3,(Object)SCAN_FLOAT64);}
+ SCAN_WORD {$$=dap_attrvalue(parsestate,null,$1,(Object)SCAN_FLOAT64);}
+ | float64 ',' SCAN_WORD {$$=dap_attrvalue(parsestate,$1,$3,(Object)SCAN_FLOAT64);}
;
strs:
- str_or_id {$$=attrvalue(parsestate,null,$1,(Object)SCAN_STRING);}
- | strs ',' str_or_id {$$=attrvalue(parsestate,$1,$3,(Object)SCAN_STRING);}
+ str_or_id {$$=dap_attrvalue(parsestate,null,$1,(Object)SCAN_STRING);}
+ | strs ',' str_or_id {$$=dap_attrvalue(parsestate,$1,$3,(Object)SCAN_STRING);}
;
urls:
- url {$$=attrvalue(parsestate,null,$1,(Object)SCAN_URL);}
- | urls ',' url {$$=attrvalue(parsestate,$1,$3,(Object)SCAN_URL);}
+ url {$$=dap_attrvalue(parsestate,null,$1,(Object)SCAN_URL);}
+ | urls ',' url {$$=dap_attrvalue(parsestate,$1,$3,(Object)SCAN_URL);}
;
url:
@@ -239,7 +237,7 @@ name:
errorbody:
'{' SCAN_CODE '=' SCAN_WORD ';' SCAN_MESSAGE '=' SCAN_WORD ';' '}' ';'
- {$$=errorbody(parsestate,$4,$8);}
+ {$$=dap_errorbody(parsestate,$4,$8);}
;

13
netcdf-4.1.1-fflags.patch Normal file
View File

@ -0,0 +1,13 @@
--- netcdf-4.1.1/nc-config.in.fflags 2010-04-08 14:05:40.063132547 -0600
+++ netcdf-4.1.1/nc-config.in 2010-04-09 13:53:26.923928260 -0600
@@ -13,8 +13,8 @@
cc="@CC@"
cxx="@CXX@"
fc="@FC@"
-cflags=" -I${includedir}"
-fflags="@FFLAGS@ @MOD_FLAG@${includedir}"
+cflags="-I${includedir}"
+fflags="@MOD_FLAG@${includedir}"
has_dap="@HAS_DAP@"
has_nc2="@HAS_NC2@"
has_nc4="@HAS_NC4@"

12
netcdf-4.1.1-hdf5.patch Normal file
View File

@ -0,0 +1,12 @@
diff -up netcdf-4.1.1/libsrc4/Makefile.in.hdf5 netcdf-4.1.1/libsrc4/Makefile.in
--- netcdf-4.1.1/libsrc4/Makefile.in.hdf5 2010-04-19 09:44:45.333650779 -0600
+++ netcdf-4.1.1/libsrc4/Makefile.in 2010-04-19 09:44:45.338649501 -0600
@@ -886,7 +886,7 @@ clean-libLTLIBRARIES:
rm -f "$${dir}/so_locations"; \
done
libnetcdf.la: $(libnetcdf_la_OBJECTS) $(libnetcdf_la_DEPENDENCIES)
- $(libnetcdf_la_LINK) -rpath $(libdir) $(libnetcdf_la_OBJECTS) $(libnetcdf_la_LIBADD) $(LIBS)
+ $(libnetcdf_la_LINK) -rpath $(libdir) $(libnetcdf_la_OBJECTS) $(libnetcdf_la_LIBADD) -lhdf5_hl -lhdf5 $(LIBS)
clean-checkPROGRAMS:
@list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \

View File

@ -1,23 +1,44 @@
Name: netcdf
Version: 4.0.1
Release: 2%{?dist}
Version: 4.1.1
Release: 3%{?dist}.5
Summary: Libraries for the Unidata network Common Data Form
Group: Applications/Engineering
License: NetCDF
URL: http://my.unidata.ucar.edu/content/software/netcdf/index.html
Source0: ftp://ftp.unidata.ucar.edu/pub/netcdf/netcdf-%{version}.tar.gz
Patch0: netcdf-4.0.0-gcc4.3-cstring.patch
URL: http://www.unidata.ucar.edu/software/netcdf/
Source0: http://www.unidata.ucar.edu/downloads/netcdf/ftp/netcdf-%{version}.tar.gz
#Use pkgconfig in nc-config to avoid multi-lib issues
Patch0: netcdf-4.1-beta2-pkgconfig.patch
Patch1: netcdf-4.1.1-fflags.patch
#Explicitly link libnetcdf.so agains -lhdf5_hl -lhdf5, reported upstream
Patch2: netcdf-4.1.1-hdf5.patch
# Fix namespace conflict with ncurses (bug #924467)
Patch3: netcdf-4.1.1-dap.patch
# Patch to fix nofill mode bug
# http://www.unidata.ucar.edu/jira/browse/NCF-22
Patch4: http://www.unidata.ucar.edu/netcdf/patches/nofill-bug.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
# bison is required because we patch dap.y in the dap patch
BuildRequires: bison
BuildRequires: gcc-gfortran, gawk
BuildRequires: hdf5-devel
BuildRequires: hdf5-devel >= 1.8.4
BuildRequires: libcurl-devel
BuildRequires: zlib-devel
BuildRequires: valgrind
%package devel
Summary: Development files for netcdf
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}
%if 0%{?fedora}
Requires: gcc-gfortran%{_isa}
%else
Requires: gcc-gfortran
%endif
Requires: pkgconfig
Requires: hdf5-devel
Requires: libcurl-devel
%package static
Summary: Static libs for netcdf
@ -63,32 +84,46 @@ man pages.
%description static
This package contains the netCDF static libs.
%prep
%setup -q
%patch0 -p1
%patch0 -p1 -b .pkgconfig
%patch1 -p1 -b .fflags
%patch2 -p1 -b .hdf5
%patch3 -p1 -b .dap
%patch4 -p0 -b .nofill
%build
export F77="gfortran"
export FC="gfortran"
export F90="gfortran"
export CPPFLAGS="-fPIC"
export FFLAGS="-fPIC ${RPM_OPT_FLAGS}"
export F90FLAGS="$FFLAGS"
export FFLAGS="${RPM_OPT_FLAGS}"
export FCFLAGS="$FFLAGS"
%configure --enable-shared
# parallel build is broken, .mod file hasn't right deps %%{?_smp_mflags}
make
%configure \
--enable-shared \
--enable-netcdf-4 \
--enable-dap \
--enable-ncgen4 \
--enable-extra-example-tests \
%ifnarch ppc64
--enable-valgrind-tests \
%endif
--disable-dap-remote-tests
#Need to be able to properly list all hdf4 library deps and location
# --enable-hdf4 \
make #%{?_smp_mflags}
%install
make install DESTDIR=${RPM_BUILD_ROOT}
mkdir -p ${RPM_BUILD_ROOT}%{_includedir}/netcdf
mkdir -p ${RPM_BUILD_ROOT}%{_fmoddir}
/bin/mv ${RPM_BUILD_ROOT}%{_includedir}/*.mod \
${RPM_BUILD_ROOT}%{_fmoddir}
/bin/mv ${RPM_BUILD_ROOT}%{_includedir}/*.* \
${RPM_BUILD_ROOT}%{_includedir}/netcdf
/bin/rm -f ${RPM_BUILD_ROOT}%{_libdir}/*.la
/bin/rm -f ${RPM_BUILD_ROOT}%{_infodir}/dir
%check
make check
@ -96,6 +131,7 @@ make check
%clean
rm -rf ${RPM_BUILD_ROOT}
%post
/sbin/ldconfig
/sbin/install-info %{_infodir}/netcdf.info \
@ -108,17 +144,27 @@ if [ "$1" = 0 ]; then
%{_infodir}/dir 2>/dev/null || :
fi
%files
%defattr(-,root,root,-)
%doc COPYRIGHT README
%{_bindir}/*
%{_bindir}/nccopy
%{_bindir}/ncdump
%{_bindir}/ncgen
%{_bindir}/ncgen3
%{_libdir}/*.so.*
%{_mandir}/man1/*
%{_datadir}/doc/netcdf
%{_infodir}/*
%files devel
%defattr(-,root,root,-)
%{_includedir}/netcdf
%{_bindir}/nc-config
%{_includedir}/ncvalues.h
%{_includedir}/netcdf.h
%{_includedir}/netcdf.hh
%{_includedir}/netcdf.inc
%{_includedir}/netcdfcpp.h
%{_fmoddir}/*.mod
%{_libdir}/*.so
%{_libdir}/pkgconfig/netcdf.pc
@ -130,6 +176,66 @@ fi
%changelog
* Wed Jan 29 2014 Orion Poplawski <orion@cora.nwra.com> - 4.1.1-3.5
- Fix nc-config --fflags (bug #1032110)
* Mon Oct 21 2013 Orion Poplawski <orion@cora.nwra.com> - 4.1.1-3.4
- Add upstream patch to fix nofill mode data corruption bug
* Fri Mar 22 2013 Orion Poplawski <orion@cora.nwra.com> - 4.1.1-3.3
- Add patch to fix namespace conflict with ncurses (bug #924467)
- Add BR on bison due to patching dap.y
* Mon Dec 27 2010 Orion Poplawski <orion@cora.nwra.com> - 4.1.1-3.2
- Don't use %%{_isa} in Requires for gcc-gfortran - not multilib in RHEL
* Mon May 17 2010 Orion Poplawski <orion@cora.nwra.com> - 4.1.1-3.1
- valgrind crashes on ppc64 (bug #593027), don't use it
* Mon Apr 19 2010 Orion Poplawski <orion@cora.nwra.com> - 4.1.1-3
- Explicitly link libnetcdf.so against -lhdf5_hl -lhdf5
* Fri Apr 9 2010 Orion Poplawski <orion@cora.nwra.com> - 4.1.1-2
- Add patch to cleanup nc-config --fflags
* Thu Apr 8 2010 Orion Poplawski <orion@cora.nwra.com> - 4.1.1-1
- Update to 4.1.1
* Fri Feb 5 2010 Orion Poplawski <orion@cora.nwra.com> - 4.1.0-1
- Update to 4.1.0 final
* Mon Feb 1 2010 Orion Poplawski <orion@cora.nwra.com> - 4.1.0-0.8.2010020100
- Update snapshot, pkgconfig patch
- Re-enable make check
* Sat Dec 5 2009 Orion Poplawski <orion@cora.nwra.com> - 4.1.0-0.7.2009120100
- Leave include files in /usr/include
* Tue Dec 1 2009 Orion Poplawski <orion@cora.nwra.com> - 4.1.0-0.6.2009120100
- Update snapshot, removes SZIP defines from header
* Fri Nov 13 2009 Orion Poplawski <orion@cora.nwra.com> - 4.1.0-0.5.2009111309
- Update snapshot
- Docs are installed now
* Wed Nov 11 2009 Orion Poplawski <orion@cora.nwra.com> - 4.1.0-0.5.2009111008
- Explicitly link libnetcdf to the hdf libraries, don't link with -lcurl
* Wed Nov 11 2009 Orion Poplawski <orion@cora.nwra.com> - 4.1.0-0.4.2009111008
- Add Requires: libcurl-devel to devel package
* Wed Nov 11 2009 Orion Poplawski <orion@cora.nwra.com> - 4.1.0-0.3.2009111008
- Drop hdf4 support - too problematic with linking all required libraries
* Wed Nov 11 2009 Orion Poplawski <orion@cora.nwra.com> - 4.1.0-0.2.2009111008
- Add patch to use proper hdf4 libraries
- Add Requires: hdf-devel, hdf5-devel to devel package
- Move nc-config to devel package
* Wed Nov 11 2009 Orion Poplawski <orion@cora.nwra.com> - 4.1.0-0.1.2009111008
- Update to 4.1.0 beta 2 snapshot
- Enable: netcdf-4, dap, hdf4, ncgen4, a lot more tests
* Sat Jul 25 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.0.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild

26
nofill-bug.patch Normal file
View File

@ -0,0 +1,26 @@
Index: libsrc/posixio.c
===================================================================
--- libsrc/posixio.c (revision 1125)
+++ libsrc/posixio.c (working copy)
@@ -505,6 +505,22 @@
/* copy upper half into lower half */
(void) memcpy(pxp->bf_base, middle, pxp->bf_cnt);
}
+ else /* added to fix nofill bug */
+ {
+ assert(pxp->bf_extent == 2 * pxp->blksz);
+ /* still have to page out lower half, if modified */
+ if(fIsSet(pxp->bf_rflags, RGN_MODIFIED))
+ {
+ assert(pxp->bf_refcount <= 0);
+ status = px_pgout(nciop,
+ pxp->bf_offset,
+ pxp->blksz,
+ pxp->bf_base,
+ &pxp->pos);
+ if(status != ENOERR)
+ return status;
+ }
+ }
pxp->bf_offset = blkoffset;
/* pxp->bf_extent = pxp->blksz; */

View File

@ -1 +1 @@
a251453c5477599f050fa4e593295186 netcdf-4.0.1.tar.gz
99cb93a15c4687cb7983e794f4f0ea9e netcdf-4.1.1.tar.gz