Merge branch 'master' into authfix.tmp

This commit is contained in:
Dennis Heimbigner 2021-04-06 13:31:07 -06:00
commit c1a9917f80
28 changed files with 154 additions and 113 deletions

View File

@ -14,7 +14,7 @@ jobs:
strategy:
matrix:
hdf5: [ 1.8.21, 1.10.7 ]
hdf5: [ 1.8.21, 1.10.1, 1.10.7 ]
steps:
@ -62,7 +62,7 @@ jobs:
strategy:
matrix:
hdf5: [ 1.8.21, 1.10.7 ]
hdf5: [ 1.8.21, 1.10.1, 1.10.7 ]
use_nc4: [ nc3, nc4 ]
use_dap: [ dap_off, dap_on ]
use_nczarr: [ nczarr_off, nczarr_on ]
@ -160,7 +160,7 @@ jobs:
strategy:
matrix:
hdf5: [ 1.8.21, 1.10.7 ]
hdf5: [ 1.8.21, 1.10.1, 1.10.7 ]
use_nc4: [ nc3, nc4 ]
use_dap: [ dap_off, dap_on ]
use_nczarr: [ nczarr_off, nczarr_on ]

View File

@ -26,18 +26,18 @@ set(PACKAGE "netCDF" CACHE STRING "")
SET(NC_VERSION_MAJOR 4)
SET(NC_VERSION_MINOR 8)
SET(NC_VERSION_PATCH 0)
SET(NC_VERSION_PATCH 1)
SET(NC_VERSION_NOTE "-development")
SET(netCDF_VERSION ${NC_VERSION_MAJOR}.${NC_VERSION_MINOR}.${NC_VERSION_PATCH}${NC_VERSION_NOTE})
SET(VERSION ${netCDF_VERSION})
SET(NC_VERSION ${netCDF_VERSION})
SET(netCDF_LIB_VERSION 18)
SET(netCDF_SO_VERSION 18)
SET(netCDF_LIB_VERSION 19)
SET(netCDF_SO_VERSION 19)
SET(PACKAGE_VERSION ${VERSION})
# Version of the dispatch table. This must match the value in
# configure.ac.
SET(NC_DISPATCH_VERSION 2)
SET(NC_DISPATCH_VERSION 3)
# Get system configuration, Use it to determine osname, os release, cpu. These
# will be used when committing to CDash.
@ -163,8 +163,6 @@ SET(EXTRA_DEPS "")
# Set CTest Properties
################################
ENABLE_TESTING()
INCLUDE(CTest)
@ -262,6 +260,7 @@ ENDIF()
#####
# System inspection checks
#####
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}/include)
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include)
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/oc2)
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/libsrc)
@ -748,7 +747,7 @@ IF(USE_HDF5)
SET(CMAKE_REQUIRED_LIBRARIES ${SZIP_LIBRARY} ${CMAKE_REQUIRED_LIBRARIES})
MESSAGE(STATUS "HDF5 has szip.")
ENDIF()
# Find out if HDF5 was built with parallel support.
# Do that by checking for the targets H5Pget_fapl_mpiposx and
# H5Pget_fapl_mpio in ${HDF5_LIB}.
@ -766,11 +765,39 @@ IF(USE_HDF5)
#Check to see if HDF5 library has collective metadata APIs, (HDF5 >= 1.10.0)
CHECK_LIBRARY_EXISTS(${HDF5_C_LIBRARY_hdf5} H5Pset_all_coll_metadata_ops "" HDF5_HAS_COLL_METADATA_OPS)
CHECK_LIBRARY_EXISTS(${HDF5_C_LIBRARY_hdf5} H5Pset_libver_bounds "" HAVE_H5PSET_LIBVER_BOUNDS)
CHECK_LIBRARY_EXISTS(${HDF5_C_LIBRARY_hdf5} H5free_memory "" HAVE_H5FREE_MEMORY)
CHECK_LIBRARY_EXISTS(${HDF5_C_LIBRARY_hdf5} H5allocate_memory "" HAVE_H5ALLOCATE_MEMORY)
CHECK_LIBRARY_EXISTS(${HDF5_C_LIBRARY_hdf5} H5resize_memory "" HAVE_H5RESIZE_MEMORY)
##
# Starting with libhdf5 1.12.0, we need to specify the option
# `--with-default-api-version=v18` when configuring libhdf5. Otherwise,
# the symbol H5Literate is not found. Check for this and return an error if it's not found.
#
# We first check for the symbol in the library, for versions 1.8.x and 1.10.x. If this fails,
# we must then check for its usage as a macro (version 1.12.x).
##
CHECK_LIBRARY_EXISTS(${HDF5_C_LIBRARY_hdf5} H5Literate "" HAVE_H5Literate)
IF(NOT HAVE_H5Literate)
CHECK_C_SOURCE_COMPILES("#include <H5public.h>
#if !(H5Literate_vers == 1)
#error
#endif
int main() {int x = 1;}" HAVE_H5Literate_Macro)
ELSE()
SET(HAVE_H5Literate_Macro 1)
ENDIF(NOT HAVE_H5Literate)
IF(NOT HAVE_H5Literate_Macro)
MESSAGE(FATAL_ERROR "${HDF5_C_LIBRARY_hdf5} does not contain symbol '_H5Literate'. Please recompile your libhdf5 install using '--with-default-api-version=v18'.")
ENDIF(NOT HAVE_H5Literate_Macro)
##
# End H5Literate checks
##
IF(HDF5_PARALLEL)
SET(HDF5_CC h5pcc)
ELSE()
@ -804,11 +831,20 @@ IF(USE_HDF5)
# Check to see if HDF5 library is 1.10.6 or greater.
# Used to control path name conversion
IF(${HDF5_VERSION} VERSION_LESS "1.10.6")
SET(HDF5_UTF8_PATHS FALSE)
ELSE()
SET(HDF5_UTF8_PATHS TRUE)
ENDIF()
# Check HDF5 version
SET(HDF5_UTF8_PATHS OFF)
CHECK_C_SOURCE_COMPILES("
#include <H5public.h>
int main() {
#if (H5_VERS_MAJOR*10000 + H5_VERS_MINOR*100 + H5_VERS_RELEASE < 11006)
choke me;
#endif
}" HDF5_VERSION_1106)
IF(HDF5_VERSION_1106)
SET(HDF5_UTF8_PATHS ON)
ENDIF(HDF5_VERSION_1106)
MESSAGE("-- Checking for HDF5 version 1.10.6 or later: ${HDF5_UTF8_PATHS}")
SET(H5_USE_16_API 1)
@ -842,18 +878,6 @@ IF(USE_HDF5)
#option to include HDF5 High Level header file (hdf5_hl.h) in case we are not doing a make install
INCLUDE_DIRECTORIES(${HDF5_HL_INCLUDE_DIR})
# Check HDF5 version
CHECK_C_SOURCE_COMPILES("
#include <H5public.h>
int main() {
#if (H5_VERS_MAJOR*10000 + H5_VERS_MINOR*100 + H5_VERS_RELEASE < 11006)
choke me;
#endif
}" HDF5_VERSION_1106)
IF(HDF5_VERSION_1106)
SET(HDF5_UTF8_PATHS ON)
ENDIF()
ENDIF(USE_HDF5)
@ -2207,6 +2231,19 @@ configure_file(
${netCDF_BINARY_DIR}/include/netcdf_meta.h @ONLY)
#####
# Create 'netcdf_dispatch.h' include file.
#####
configure_file(
${netCDF_SOURCE_DIR}/include/netcdf_dispatch.h.in
${netCDF_BINARY_DIR}/include/netcdf_dispatch.h @ONLY NEWLINE_STYLE LF)
# Used in the `configure_file` calls below
SET(ISCMAKE "1")
IF(MSVC)
SET(ISMSVC "1")
ENDIF()
####
# Build test_common.sh
#####
SET(EXTRA_DIST ${EXTRA_DIST} ${CMAKE_CURRENT_SOURCE_DIR}/test_common.in)
@ -2215,15 +2252,9 @@ SET(TOPBUILDDIR "${CMAKE_CURRENT_BINARY_DIR}")
SET(ISMSVC "${MSVC}")
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/test_common.in ${CMAKE_CURRENT_BINARY_DIR}/test_common.sh @ONLY NEWLINE_STYLE LF)
#####
# Build nc_test4/findplugin.sh
#####
SET(ISCMAKE "1")
IF(MSVC)
SET(ISMSVC "1")
ENDIF()
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/nc_test4/findplugin.in ${CMAKE_CURRENT_BINARY_DIR}/nc_test4/findplugin.sh @ONLY NEWLINE_STYLE LF)
IF(ENABLE_EXAMPLES)

View File

@ -4,9 +4,13 @@ Release Notes {#RELEASE_NOTES}
\brief Release notes file for the netcdf-c package.
This file contains a high-level description of this package's evolution. Releases are in reverse chronological order (most recent first). Note that, as of netcdf 4.2, the `netcdf-c++` and `netcdf-fortran` libraries have been separated into their own libraries.
## 4.8.1 - TBD
## 4.8.0 - TBD
* [Bug Fix] Corrected HDF5 version detection logic as described in [Github #1962](https://github.com/Unidata/netcdf-c/issues/1962).
## 4.8.0 - March 30, 2021
* [Enhancement] Bump the NC_DISPATCH_VERSION from 2 to 3, and as a side effect, unify the definition of NC_DISPATCH_VERSION so it only needs to be defined in CMakeLists.txt and configure.ac. See [Github #1945](https://github.com/Unidata/netcdf-c/pull/1945) for more information.
* [Enhancement] Provide better cross platform path name management. This converts paths for various platforms (e.g. Windows, MSYS, etc.) so that they are in the proper format for the executing platform. See [Github #1958](https://github.com/Unidata/netcdf-c/pull/1958) for more information.
* [Bug Fixes] The nccopy program was treating -d0 as turning deflation on rather than interpreting it as "turn off deflation". See [Github #1944](https://github.com/Unidata/netcdf-c/pull/1944) for more information.
* [Enhancement] Add support for storing NCZarr data in zip files. See [Github #1942](https://github.com/Unidata/netcdf-c/pull/1942) for more information.

View File

@ -256,9 +256,6 @@ are set when opening a binary file on Windows. */
/* Define to 1 if you have the `gettimeofday' function. */
#cmakedefine HAVE_STRUCT_TIMESPEC 1
/* if true, netcdf4 file properties will be set using H5Pset_libver_bounds */
#cmakedefine HAVE_H5PSET_LIBVER_BOUNDS 1
/* Define to 1 if you have the `H5Z_SZIP' function. */
#cmakedefine HAVE_H5Z_SZIP 1
@ -463,6 +460,9 @@ with zip */
/* Add extra properties to _NCProperties attribute */
#cmakedefine NCPROPERTIES_EXTRA ${NCPROPERTIES_EXTRA}
/* Idspatch table version */
#cmakedefine NC_DISPATCH_VERSION ${NC_DISPATCH_VERSION}
/* no IEEE float on this platform */
#cmakedefine NO_IEEE_FLOAT 1

View File

@ -10,7 +10,7 @@
AC_PREREQ([2.59])
# Initialize with name, version, and support email address.
AC_INIT([netCDF], [4.8.0-development], [support-netcdf@unidata.ucar.edu], [netcdf-c])
AC_INIT([netCDF], [4.8.1-development], [support-netcdf@unidata.ucar.edu], [netcdf-c])
##
# Prefer an empty CFLAGS variable instead of the default -g -O2.
@ -21,7 +21,7 @@ AC_INIT([netCDF], [4.8.0-development], [support-netcdf@unidata.ucar.edu], [netcd
AC_SUBST([NC_VERSION_MAJOR]) NC_VERSION_MAJOR=4
AC_SUBST([NC_VERSION_MINOR]) NC_VERSION_MINOR=8
AC_SUBST([NC_VERSION_PATCH]) NC_VERSION_PATCH=0
AC_SUBST([NC_VERSION_PATCH]) NC_VERSION_PATCH=1
AC_SUBST([NC_VERSION_NOTE]) NC_VERSION_NOTE="-development"
#####
@ -1216,7 +1216,20 @@ if test "x$enable_hdf5" = xyes; then
# H5Pset_fapl_mpiposix and H5Pget_fapl_mpiposix have been removed since HDF5 1.8.12.
# Use H5Pset_fapl_mpio and H5Pget_fapl_mpio, instead.
AC_CHECK_FUNCS([H5Pget_fapl_mpio H5Pset_deflate H5Z_SZIP H5free_memory H5resize_memory H5allocate_memory H5Pset_libver_bounds H5Pset_all_coll_metadata_ops])
AC_CHECK_FUNCS([H5Pget_fapl_mpio H5Pset_deflate H5Z_SZIP H5free_memory H5resize_memory H5allocate_memory H5Pset_all_coll_metadata_ops H5Literate])
# Check to see if HDF5 library has H5Literate (HDF5 1.8.x, 1.10.x)
if test "x$ac_cv_func_H5Literate" = xno; then
AC_MSG_CHECKING([for H5Literate macro])
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include "H5public.h"],
[[#if !(H5Literate_vers == 1)
# error
#endif]
])], [], [AC_MSG_RESULT(no); AC_MSG_ERROR([HDF5 was not built with API compatibility version v18. Please recompile your libhdf5 install using '--with-default-api-version=v18'.])])
AC_MSG_RESULT(yes)
fi
# Check to see if HDF5 library has collective metadata APIs, (HDF5 >= 1.10.0)
if test "x$ac_cv_func_H5Pset_all_coll_metadata_ops" = xyes; then
@ -1689,7 +1702,9 @@ AX_SET_META([NC_HAS_MULTIFILTERS],[$has_multifilters],[yes])
# applications like PIO can determine whether they have an appropriate
# dispatch table to submit. If this is changed, make sure the value in
# CMakeLists.txt also changes to match.
AC_SUBST([NC_DISPATCH_VERSION], [2])
AC_SUBST([NC_DISPATCH_VERSION], [3])
AC_DEFINE_UNQUOTED([NC_DISPATCH_VERSION], [${NC_DISPATCH_VERSION}], [Dispatch table version.])
#####
# End netcdf_meta.h definitions.
@ -1723,6 +1738,7 @@ AC_CONFIG_FILES([Makefile
libnetcdf.settings
postinstall.sh
include/netcdf_meta.h
include/netcdf_dispatch.h
include/Makefile
h5_test/Makefile
hdf4_test/Makefile

View File

@ -38,7 +38,7 @@ PROJECT_NAME = netCDF-C
# could be handy for archiving the generated documentation or if some version
# control system is used.
PROJECT_NUMBER = 4.8.0-development
PROJECT_NUMBER = 4.8.1-development
# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a
@ -2083,7 +2083,7 @@ HAVE_DOT = YES
# Minimum value: 0, maximum value: 32, default value: 0.
# This tag requires that the tag HAVE_DOT is set to YES.
DOT_NUM_THREADS = 4
DOT_NUM_THREADS = 0
# When you want a differently looking font n the dot files that doxygen
# generates you can specify the font name using DOT_FONTNAME. You need to make

View File

@ -786,7 +786,6 @@ INPUT = \
@abs_top_srcdir@/libdispatch/derror.c \
@abs_top_srcdir@/libdispatch/dv2i.c \
@abs_top_srcdir@/libdispatch/dcopy.c \
@abs_top_srcdir@/libhdf5/hdf5file.c \
@abs_top_srcdir@/libsrc4/nc4var.c \
@abs_top_srcdir@/libhdf5/nc4hdf.c \
@abs_top_srcdir@/libsrc4/nc4internal.c \
@ -796,8 +795,8 @@ INPUT = \
@abs_top_srcdir@/libsrc4/nc4dim.c \
@abs_top_srcdir@/libsrc4/nc4attr.c \
@abs_top_srcdir@/libhdf5/nc4info.c \
@abs_top_srcdir@/libhdf5/hdf5cache.c \
@abs_top_srcdir@/libsrc4/nc4dispatch.c \
@abs_top_srcdir@/libnczarr/zarr.c \
@abs_top_srcdir@/examples/C/simple_xy_wr.c \
@abs_top_srcdir@/examples/C/simple_xy_rd.c \
@abs_top_srcdir@/examples/C/sfc_pres_temp_wr.c \

View File

@ -209,11 +209,7 @@ main()
hid_t file_typeid1[NUM_OBJ_1], native_typeid1[NUM_OBJ_1];
hid_t file_typeid2, native_typeid2;
hsize_t num_obj;
#if H5_VERSION_GE(1,12,0)
H5O_info2_t obj_info;
#else
H5O_info_t obj_info;
#endif
char obj_name[STR_LEN + 1];
hsize_t dims[1] = {ATT_LEN}; /* netcdf attributes always 1-D. */

View File

@ -28,7 +28,7 @@ INSTALL(FILES ${netCDF_SOURCE_DIR}/include/netcdf_filter.h
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
COMPONENT headers)
INSTALL(FILES ${netCDF_SOURCE_DIR}/include/netcdf_dispatch.h
INSTALL(FILES ${netCDF_BINARY_DIR}/include/netcdf_dispatch.h
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
COMPONENT headers)

View File

@ -29,4 +29,4 @@ if ENABLE_BYTERANGE
noinst_HEADERS += nchttp.h
endif
EXTRA_DIST = CMakeLists.txt XGetopt.h netcdf_meta.h.in
EXTRA_DIST = CMakeLists.txt XGetopt.h netcdf_meta.h.in netcdf_dispatch.h.in

View File

@ -80,9 +80,6 @@
#define ATOMICTYPEMAX3 NC_DOUBLE
#define ATOMICTYPEMAX5 NC_UINT64
/* Define an alias for int to indicate an error return */
typedef int NCerror;
#if !defined HDF5_PARALLEL && !defined USE_PNETCDF
typedef int MPI_Comm;
typedef int MPI_Info;

View File

@ -23,7 +23,7 @@ typedef struct NC_HTTP_STATE {
char errbuf[1024]; /* assert(CURL_ERROR_SIZE <= 1024) */
} NC_HTTP_STATE;
extern int nc_http_open(const char* objecturl, NC_HTTP_STATE** state, size64_t* lenp);
extern int nc_http_open(const char* objecturl, NC_HTTP_STATE** state, long long* lenp);
extern int nc_http_size(NC_HTTP_STATE* state, const char* url, size64_t* sizep);
extern int nc_http_read(NC_HTTP_STATE* state, const char* url, size64_t start, size64_t count, NCbytes* buf);
extern int nc_http_close(NC_HTTP_STATE* state);

View File

@ -94,6 +94,8 @@ This means it is ok to call it repeatedly with no harm.
*/
EXTERNL char* NCpathcvt(const char* path);
EXTERNL int NChasdriveletter(const char* path);
/* Canonicalize and make absolute by prefixing the current working directory */
EXTERNL char* NCpathabsolute(const char* name);
@ -154,7 +156,7 @@ EXTERNL int NCclosedir(DIR* ent);
#define NCPD_UNKNOWN 0
#define NCPD_NIX 1
#define NCPD_MSYS 2
#define NCPD_CYGWIN 3
#define NCPD_CYGWIN 3
#define NCPD_WIN 4
#define NCPD_REL 5 /* actual kind is unknown */

View File

@ -25,7 +25,9 @@
/* This is the version of the dispatch table. It should be changed
* when new functions are added to the dispatch table. */
#define NC_DISPATCH_VERSION 3
#ifndef NC_DISPATCH_VERSION
#define NC_DISPATCH_VERSION @NC_DISPATCH_VERSION@
#endif /*NC_DISPATCH_VERSION*/
/* This is the dispatch table, with a pointer to each netCDF
* function. */

View File

@ -32,6 +32,7 @@
#include "oc.h"
#include "ncdap.h"
#include "nccommon.h"
#include "dapdebug.h"
#include "daputil.h"
@ -47,7 +48,6 @@ struct NCsegment;
/**************************************************/
#include "nccommon.h"
#include "getvara.h"
#include "constraints.h"

View File

@ -435,7 +435,7 @@ simplepathstring(NClist* names, char* separator)
/* Define a number of location tests */
/* Is node contained (transitively) in a sequence ? */
BOOL
int
dapinsequence(CDFnode* node)
{
if(node == NULL || node->container == NULL) return TRUE;
@ -446,7 +446,7 @@ dapinsequence(CDFnode* node)
}
/* Is node contained (transitively) in a structure array */
BOOL
int
dapinstructarray(CDFnode* node)
{
if(node == NULL) return TRUE;
@ -459,7 +459,7 @@ dapinstructarray(CDFnode* node)
}
/* Is node a map field of a grid? */
BOOL
int
dapgridmap(CDFnode* node)
{
if(node != NULL && node->container != NULL
@ -471,7 +471,7 @@ dapgridmap(CDFnode* node)
}
/* Is node an array field of a grid? */
BOOL
int
dapgridarray(CDFnode* node)
{
if(node != NULL && node->container != NULL
@ -482,7 +482,7 @@ dapgridarray(CDFnode* node)
return FALSE;
}
BOOL
int
dapgridelement(CDFnode* node)
{
return dapgridarray(node)
@ -490,7 +490,7 @@ dapgridelement(CDFnode* node)
}
/* Is node a top-level grid node? */
BOOL
int
daptopgrid(CDFnode* grid)
{
if(grid == NULL || grid->nctype != NC_Grid) return FALSE;
@ -498,7 +498,7 @@ daptopgrid(CDFnode* grid)
}
/* Is node a top-level sequence node? */
BOOL
int
daptopseq(CDFnode* seq)
{
if(seq == NULL || seq->nctype != NC_Sequence) return FALSE;
@ -506,7 +506,7 @@ daptopseq(CDFnode* seq)
}
/* Is node a top-level node? */
BOOL
int
daptoplevel(CDFnode* node)
{
if(node->container == NULL

View File

@ -9,14 +9,14 @@
#include "dapincludes.h"
/* Mnemonics */
#ifndef BOOL
#define BOOL int
#endif
#ifndef TRUE
#define TRUE 1
#define FALSE 0
#endif
/* Define an alias for int to indicate an error return */
typedef int NCerror;
#ifndef nullfree
#define nullfree(m) {if((m)!=NULL) {free(m);} else {}}
#endif
@ -206,7 +206,7 @@ typedef struct NCD2alignment {
} NCD2alignment;
typedef struct NCtypesize {
BOOL aligned; /* have instance and field been defined? */
int aligned; /* have instance and field been defined? */
NCD2alignment instance; /* Alignment, etc for instance data */
NCD2alignment field; /* Alignment, etc WRT to parent */
} NCtypesize;
@ -232,13 +232,13 @@ typedef struct CDFnode {
int ncid; /* relevant NC id for this object*/
unsigned long maxstringlength;
unsigned long sequencelimit; /* 0=>unlimited */
BOOL usesequence; /* If this sequence is usable */
BOOL elided; /* 1 => node does not partipate in naming*/
int usesequence; /* If this sequence is usable */
int elided; /* 1 => node does not partipate in naming*/
struct CDFnode* basenode; /* derived tree map to pattern tree */
BOOL invisible; /* 1 => do not show to user */
BOOL zerodim; /* 1 => node has a zero dimension */
int invisible; /* 1 => do not show to user */
int zerodim; /* 1 => node has a zero dimension */
/* These two flags track the effects on grids of constraints */
BOOL nc_virtual; /* node added by regrid */
int nc_virtual; /* node added by regrid */
struct CDFnode* attachment; /* DDS<->DATADDS cross link*/
struct CDFnode* pattern; /* temporary field for regridding */
/* Fields for use by libncdap4 */
@ -249,8 +249,8 @@ typedef struct CDFnode {
char* vlenname; /* for sequence types */
int singleton; /* for singleton sequences */
unsigned long estimatedsize; /* > 0 Only for var nodes */
BOOL whole; /* projected as whole node */
BOOL prefetchable; /* eligible to be prefetched (if whole) */
int whole; /* projected as whole node */
int prefetchable; /* eligible to be prefetched (if whole) */
} CDFnode;
/**************************************************/

View File

@ -71,18 +71,6 @@ extern int dsp_close(ND4dsp* dsp);
/* DSP API */
extern int dsp_open(const char* path, ND4dsp** dspp);
/*
extern NCerror dapbuildvaraprojection(CDFnode*,
const size_t* startp, const size_t* countp, const ptrdiff_t* stridep,
struct DCEprojection** projectionlist);
extern NCerror NCD4_getvarx(int ncid, int varid,
const size_t *startp,
const size_t *countp,
const ptrdiff_t *stridep,
void *data,
nc_type dsttype0);
*/
#endif
/**************************************************/

View File

@ -71,7 +71,7 @@ Trace(const char* fcn)
*/
int
nc_http_open(const char* objecturl, NC_HTTP_STATE** statep, size64_t* filelenp)
nc_http_open(const char* objecturl, NC_HTTP_STATE** statep, long long* filelenp)
{
int stat = NC_NOERR;
int i;

View File

@ -44,7 +44,7 @@ struct MagicFile {
struct NCURI* uri;
int omode;
NCmodel* model;
fileoffset_t filelen;
long long filelen;
int use_parallel;
void* parameters; /* !NULL if inmemory && !diskless */
FILE* fp;
@ -937,7 +937,7 @@ check_file_type(const char *path, int omode, int use_parallel,
if((status = openmagic(&magicinfo))) goto done;
/* Verify we have a large enough file */
if(magicinfo.filelen < MAGIC_NUMBER_LEN)
if(magicinfo.filelen < (long long)MAGIC_NUMBER_LEN)
{status = NC_ENOTNC; goto done;}
if((status = readmagic(&magicinfo,0L,magic)) != NC_NOERR) {
status = NC_ENOTNC;

View File

@ -163,15 +163,19 @@ nc4_create_file(const char *path, int cmode, size_t initialsz,
nc4_chunk_cache_preemption));
}
#ifdef HAVE_H5PSET_LIBVER_BOUNDS
#if H5_VERSION_GE(1,10,2)
if (H5Pset_libver_bounds(fapl_id, H5F_LIBVER_EARLIEST, H5F_LIBVER_V18) < 0)
/* lib versions 1.10.2 and higher */
if (H5Pset_libver_bounds(fapl_id, H5F_LIBVER_V18, H5F_LIBVER_LATEST) < 0)
#else
if (H5Pset_libver_bounds(fapl_id, H5F_LIBVER_EARLIEST,
H5F_LIBVER_LATEST) < 0)
#if H5_VERSION_GE(1,10,0)
/* lib versions 1.10.0, 1.10.1 */
if (H5Pset_libver_bounds(fapl_id, H5F_LIBVER_EARLIEST, H5F_LIBVER_LATEST) < 0)
#else
/* all HDF5 1.8 lib versions */
if (H5Pset_libver_bounds(fapl_id, H5F_LIBVER_LATEST, H5F_LIBVER_LATEST) < 0)
#endif
BAIL(NC_EHDFERR);
#endif
BAIL(NC_EHDFERR);
/* Create the property list. */
if ((fcpl_id = H5Pcreate(H5P_FILE_CREATE)) < 0)

View File

@ -18,7 +18,7 @@ lib_LTLIBRARIES = libnetcdf.la
# for information regarding incrementing `-version-info`.
##
libnetcdf_la_LDFLAGS = -version-info 18:0:0
libnetcdf_la_LDFLAGS = -version-info 19:0:0
libnetcdf_la_CPPFLAGS = ${AM_CPPFLAGS}
libnetcdf_la_LIBADD =

View File

@ -206,8 +206,9 @@ NCZ_transfer(struct Common* common, NCZSlice* slices)
common, &chunkodom)))
goto done;
if(wdebug >= 4)
if(wdebug >= 4) {
fprintf(stderr,"allprojections:\n%s",nczprint_allsliceprojections(common->rank,common->allprojections)); fflush(stderr);
}
wholechunk = iswholechunk(common,slices);

View File

@ -3,6 +3,8 @@
if test "x$srcdir" = x ; then srcdir=`pwd`; fi
. ../test_common.sh
set -e
# Which test cases to exercise
API=1
NG=1
@ -209,13 +211,13 @@ if ! test -f unfiltered.nc ; then
fi
${NCCOPY} "-F/g/var,307,4|40000" unfiltered.nc nccopyF.nc
${NCDUMP} -hs nccopyF.nc > ./nccopyF.cdl
sclean nccopyF.cdl nccopyFs.cdl
sclean nccopyF.cdl nccopyFs.cdl
diff -b -w ${srcdir}/ref_nccopyF.cdl ./nccopyFs.cdl
echo "*** ncgen with multiple filters"
${NCGEN} -4 -lb -o ncgenF.nc ${srcdir}/ref_nccopyF.cdl
# Need to fix name using -n
${NCDUMP} -hs -n nccopyF ncgenF.nc > ./ncgenF.cdl
sclean ncgenF.cdl ncgenFs.cdl
sclean ncgenF.cdl ncgenFs.cdl
diff -b -w ${srcdir}/ref_nccopyF.cdl ./ncgenFs.cdl
echo "*** Pass: multiple filters"
fi
@ -256,7 +258,6 @@ rm -f test_bzip2.c
rm -f multifilter.nc multi.cdl smulti.cdl
rm -f nccopyF.nc nccopyF.cdl ncgenF.nc ncgenF.cdl
rm -f ncgenFs.cdl nccopyFs.cdl
#rm -f crfilterorder.txt rdfilterorder.txt
rm -f crfilterorder.txt rdfilterorder.txt
exit 0

View File

@ -109,9 +109,11 @@ test "x$STORAGE" = 'xtas:_Storage="chunked";'
CHUNKSIZES=`cat tmppds.cdl | sed -e '/tas:_ChunkSizes/p' -ed | tr -d '\t \r'`
test "x$CHUNKSIZES" = 'xtas:_ChunkSizes=10,15,20;'
set -x
echo "*** Test that nccopy -F var1,none works as intended "
${NCGEN} -4 -b -o tst_nofilters.nc $srcdir/ref_tst_nofilters.cdl
${NCCOPY} -M0 -4 -F var1,none -c / tst_nofilters.nc tmp_nofilters.nc
${NCCOPY} -M0 -4 -F var1,none -c // tst_nofilters.nc tmp_nofilters.nc
${NCDUMP} -hs tmp_nofilters.nc > tmp_nofilters.cdl
STORAGE=`cat tmp_nofilters.cdl | sed -e '/var1:_Storage/p' -ed | tr -d '\t \r'`
test "x$STORAGE" = 'xvar1:_Storage="contiguous";'
@ -120,4 +122,3 @@ test "x$FILTERS" = 'x'
echo "*** All nccopy tests passed!"
exit 0

View File

@ -14,7 +14,7 @@ cleanncprops() {
rm -f $dst
cat $src \
| sed -e '/:_Endianness/d' \
| sed -e 's/_SuperblockVersion = 1/_SuperblockVersion = 0/' \
| sed -e 's/_SuperblockVersion = [12]/_SuperblockVersion = 0/' \
| sed -e 's/\(netcdflibversion\|netcdf\)=.*|/\1=NNNN|/' \
| sed -e 's/\(hdf5libversion\|hdf5\)=.*"/\1=HHHH"/' \
| grep -v '_NCProperties' \

View File

@ -14,7 +14,7 @@ cleanncprops() {
rm -f $dst
cat $src \
| sed -e '/:_Endianness/d' \
| sed -e 's/_SuperblockVersion = 1/_SuperblockVersion = 0/' \
| sed -e 's/_SuperblockVersion = [12]/_SuperblockVersion = 0/' \
| sed -e 's/\(netcdflibversion\|netcdf\)=.*|/\1=NNNN|/' \
| sed -e 's/\(hdf5libversion\|hdf5\)=.*"/\1=HHHH"/' \
| grep -v '_NCProperties' \

View File

@ -39,7 +39,7 @@ ${NCCOPY} -M0 -c dim0/,dim1/1,dim2/,dim3/1,dim4/,dim5/1,dim6/ tmp_chunks3.nc "$f
${NCDUMP} -sh -n tmp "$fileurl" > tmp_chunked.cdl
verifychunking tmp_chunked.cdl "ivar:_ChunkSizes=7,1,2,1,5,1,9;" "fvar:_ChunkSizes=9,1,5,1,2,1,7;"
chunkclean tmp.cdl tmpx.cdl
chunkclean tmp_chunked.cdl tmp_chunkedx.cdl
chunkclean tmp_chunked.cdl tmp_chunkedx.cdl
diff tmpx.cdl tmp_chunkedx.cdl
# Note that unchunked means that there is only one chunk
@ -48,15 +48,15 @@ fileargs tmp_unchunked
${NCCOPY} -M0 -c dim0/,dim1/,dim2/,dim3/,dim4/,dim5/,dim6/ "$SRC" "$fileurl"
${NCDUMP} -sh -n tmp "$fileurl" > tmp_unchunked.cdl
verifychunking tmp_unchunked.cdl "ivar:_ChunkSizes=7,4,2,3,5,6,9;" "fvar:_ChunkSizes=9,6,5,3,2,4,7;"
chunkclean tmp_unchunked.cdl tmp_unchunkedx.cdl
chunkclean tmp_unchunked.cdl tmp_unchunkedx.cdl
diff tmpx.cdl tmp_unchunkedx.cdl
# Test -c /
fileargs tmp_unchunked2
${NCCOPY} -M0 -c "/" "$SRC" "$fileurl"
${NCCOPY} -M0 -c "//" "$SRC" "$fileurl"
${NCDUMP} -sh -n tmp "$fileurl" > tmp_unchunked2.cdl
verifychunking tmp_unchunked.cdl "ivar:_ChunkSizes=7,4,2,3,5,6,9;" "fvar:_ChunkSizes=9,6,5,3,2,4,7;"
chunkclean tmp_unchunked.cdl tmp_unchunkedx.cdl
chunkclean tmp_unchunked.cdl tmp_unchunkedx.cdl
diff tmpx.cdl tmp_unchunkedx.cdl
echo "*** Test that nccopy -c dim/n is used "
@ -80,4 +80,3 @@ if test "x$FEATURE_S3TESTS" = xyes ; then testcase s3; fi
echo "*** All nccopy nczarr tests passed!"
exit 0