Commit Graph

452 Commits

Author SHA1 Message Date
Dennis Heimbigner
cf903a678a Update release notes 2021-11-01 22:40:08 -06:00
Dennis Heimbigner
53464e8963 Allow optional use of libxml2
re: https://github.com/Unidata/netcdf-c/issues/2119

H/T to [Egbert Eich](https://github.com/e4t) and [Bas Couwenberg](https://github.com/sebastic) for this PR.

It is undesirable to make netcdf be dependent on the availability
of libxml2, but it is desirable to allow its use if available.

In order to do this, a wrapper API (include/ncxml.h) was constructed
that supports either ezxml or libxml2 as the implementation.
Additionally, the xml support code was moved to a new directory
netcdf-c/libncxml.

Primary changes:
* Create a new sub-directory named netcdf-c/libncxml to hold all the xml implementation code.
* Move ezxml.c and ezxml.h to libncxml
* Create a wrapper API -- include/ncxml.h
* Create an implementation, ncxml_ezxml.c to support use of ezxml.
* Create an implementation, ncxml_xml2.c to support use of libxml2.
* Add a check for libxml2 in configure.ac and CMakeLists.txt
* Modify libdap to use the wrapper API instead of ezxml directly.

Misc. Other Changes:
* Change include/netcdf_json.h from built source to be part of the distribution.
2021-11-01 22:37:05 -06:00
Dennis Heimbigner
6f3bfde222 Update release notes 2021-10-29 20:35:13 -06:00
Dennis Heimbigner
f6e25b695e Fix additional S3 support issues
re: https://github.com/Unidata/netcdf-c/issues/2117
re: https://github.com/Unidata/netcdf-c/issues/2119

* Modify libsrc to allow byte-range reading of netcdf-3 files in private S3 buckets; this required using the aws sdk. Also add a test case.
* The aws sdk can sometimes cause problems if the Awd::ShutdownAPI function is not called. So at optional atexit() support to ensure it is called. This is disabled for Windows.
* Add documentation to nczarr.md on how to build and use the aws sdk under windows. Currently it builds, but testing fails.
* Switch testing from stratus to the Unidata bucket on S3.
* Improve support for the s3: url protocol.
* Add a s3 specific utility code file: ds3util.c
* Modify NC_infermodel to attempt to read the magic number of byte-ranged files in S3.

## Misc.

* Move and rename the core S3 SDK wrapper code (libnczarr/zs3sdk.cpp) to libdispatch since it now used in libsrc as well as libnczarr.
* Add calls to nc_finalize in the utilities in case atexit is disabled.
* Add header only json parser to the distribution rather than as a built source.
2021-10-29 20:06:37 -06:00
Dennis Heimbigner
58ba84de0b update merge 2021-10-26 20:53:05 -06:00
Dennis Heimbigner
3d6ab95dea Update Release Notes 2021-10-17 13:57:07 -06:00
Dennis Heimbigner
bf593248b3 Update release notes 2021-10-12 14:06:18 -06:00
Dennis Heimbigner
b5d4afd1d5 Patch errors
## Examine and fix ezxml errors

re: Issue https://github.com/Unidata/netcdf-c/issues/2119

Multiple security issues were found in ezxml (see above Issue).

* CVE-2021-31598
* CVE-2021-31348 / CVE-2021-31347
* CVE-2021-31229
* CVE-2021-30485
* CVE-2021-26222
* CVE-2021-26221
* CVE-2021-26220
* CVE-2019-20202
* CVE-2019-20201
* CVE-2019-20200
* CVE-2019-20199
* CVE-2019-20198
* CVE-2019-20007
* CVE-2019-20006
* CVE-2019-20005

In addition, moved ezxml to libdispatch.

## Examine and fix selected  oss-fuzz detected errors

Note that most of these errors are in the libsrc .m4 generated
code so fixing them is difficult. It would nice if we could tell
oss-fuzz to skip those files. They are old and crufty and
probably need a complete refactor.

Issue|Status
-----|------
35382|Fixed; old bug
35398|Closed by OSS-Fuzz
35442|Guarantee alloc > 0 or error; Old bug
35721|Assert failure; ok
35992|Fixed; old bug
36038|Fixed; old bug
36129|Unfixed; old bug
36229|Fixed by adding assert; old bug
37476|Unfixed; old bug
37824|Assert Failure; ok
38300|Closed by OSS-Fuzz
38537|Unfixed; old bug
38658|Unfixed; old bug
38699|Fixed maybe; old bug
38772|Nature of error is unclear, suspect that it results from using too large a type.
39248|Need more information
39394|Unfixed; old bug
2021-10-12 14:03:48 -06:00
Dennis Heimbigner
b970e81e27 Update release notes 2021-09-27 18:44:48 -06:00
Dennis Heimbigner
6b69b9c52c Significantly Improve Amazon S3 Cloud Storage Support
## S3 Related Fixes

* Add comprehensive support for specifying AWS profiles to provide access credentials.
* Parse the files "~/.aws/config" and "~/.aws/credentials to provide credentials for the HDF5 ROS3 driver and to locate default region.
* Add a function to obtain the currently active S3 credentials. The search rules are defined in docs/nczarr.md.
* Provide documentation for the new features.
* Modify the struct NCauth (in include/ncauth.h) to replace specific S3 credentials with a profile name.
* Add a unit test to test the operation of profile and credentials management.
* Add support for URLS of the form "s3://<bucket>/<key>"; this requires obtaining a default region.
* Allows the specification of profile and/or region in a URL of the form "#mode=nczarr,...&aws.region=...&aws.profile=..."

## Misc. Fixes

* Move the ezxml code to libdispatch so that it can be used both by DAP4 and nczarr.
* Modify nclist to provide a deep clone operation.
* Modify ncuri to provide a deep clone operation.
* Modify the .rc file format to allow the specification of a path to be tested when looking for an entry in the .rc file.
* Ensure that the NC_rcload function is called.
* Modify nchttp to support setting request headers.
2021-09-27 18:36:33 -06:00
Ward Fisher
af41f84b3f
Merge branch 'main' into killdebugdir.dmh 2021-09-07 14:44:51 -06:00
Dennis Heimbigner
05167d1860 Update Release Notes 2021-09-02 17:07:00 -06:00
Dennis Heimbigner
ee25bc0af0 Update RELEASENOTES.md 2021-09-01 15:03:40 -06:00
Dennis Heimbigner
5041e87be7 Update release notes 2021-08-25 12:40:01 -06:00
Dennis Heimbigner
a575fc27d4 Make Issue https://github.com/Unidata/netcdf-c/issues/2077 work when build is repeated.
re: https://github.com/Unidata/netcdf-c/pull/2075

The long file name fix fails when the build is manually repeated
because the source file has already been renamed. Solution is to
test if the dest file exists or not before doing the rename.
This is apparently not a problem for automake because it uses
AC_CONFIG_LINK, which uses link/copy instead of rename.
2021-08-25 12:37:17 -06:00
Ward Fisher
c8f03b8910 Bump version numbers for the next development cycle. 2021-08-17 10:41:07 -06:00
Dennis Heimbigner
2a0fdb34d7 Fix RELEASE_NOTES conflicts 2021-08-10 15:02:38 -06:00
Dennis Heimbigner
42854d19de update release notes 2021-08-09 17:09:18 -06:00
Dennis Heimbigner
01487ecbf1 Update release notes 2021-08-09 15:37:42 -06:00
Ward Fisher
01718d7877
Merge branch 'master' into newformat.dmh 2021-07-19 09:08:45 -07:00
Dennis Heimbigner
8cdf5943ac Update RELEASE_NOTES 2021-07-18 19:42:26 -06:00
Dennis Heimbigner
73a94362dd Update RELEASE_NOTES 2021-07-17 16:58:19 -06:00
Dennis Heimbigner
d953899559 Move to Version 2 NCZarr Extended Meta-Data
re: https://github.com/zarr-developers/zarr-specs/issues/41

After discussions with the Zarr community, it was decided to
convert to a new representation of the NCZarr meta-data extensions: version 2.
These extensions store information necessary to mapping the Zarr data model
to the netcdf-4 data model.

The basic change is to remove the NCZarr specific objects: .nczarr, .nczgroup, .nczarray, and .nczattr.
The contents of these objects is moved into the corresponding existing Zarr objects as special keys. The mapping is as follows:

* ''.nczarr'' => ''/.zgroup/_NCZARR_SUPERBLOCK_''
* ''.nczgroup => ''.zgroup/_NCZARR_GROUP_''
* ''.nczarray => ''.zarray/_NCZARR_ARRAY_''
* ''.nczattr => ''.zattr/_NCZARR_ATTR_''

Backward compatibility is maintained by looking for the object ''/.nczarr''
and if found, then assuming that the dataset is in the older version 1 format.
This compatibility only supports reading of such version 1 datasets.

Documentation and test cases are also added.

Misc. Other Changes:
1. The json parsing code was added to the general library instead of nczarr only (ncjson.c, ncjson.h).
2. Improved support for different platform paths by allowing conversion
   to a single common path representation.
3. Add some new error codes.
4. Modify nccopy usage to mention the new chunking specification.
2021-07-17 16:55:30 -06:00
Ward Fisher
8e3b74669c
Merge branch 'master' into dap4fixes2.dmh 2021-06-28 16:34:00 -06:00
Dennis Heimbigner
6f03935de4 Update release notes 2021-06-05 14:15:11 -06:00
Dennis Heimbigner
4bf58c65dd fix conflicts 2021-06-02 10:59:26 -06:00
Ward Fisher
c41f7943cb
Merge branch 'master' into dimscope.dmh 2021-06-01 14:12:04 -06:00
Ward Fisher
e21ef7bcb0
Merge branch 'master' into dap4fixes2.dmh 2021-06-01 14:11:39 -06:00
Ward Fisher
b0f85f41df
Merge branch 'master' into authfix.dmh 2021-06-01 14:09:43 -06:00
Dennis Heimbigner
cfa935967f Fix conflicts 2021-06-01 12:45:30 -06:00
Dennis Heimbigner
c707d1d413 Update Release Notes 2021-05-31 15:54:11 -06:00
Dennis Heimbigner
1bb482dbae Update RELEASE NOTES 2021-05-29 21:57:06 -06:00
Ward Fisher
19809e2c26
Merge branch 'master' into ncdumpvlenbug.dmh 2021-05-27 14:50:05 -06:00
Ward Fisher
2c26f94a49
Merge branch 'master' into typescope.dmh 2021-05-27 14:13:14 -06:00
Ward Fisher
e0ddc7c4e0
Merge branch 'master' into xgetoptmingw.dmh 2021-05-27 14:07:18 -06:00
Ward Fisher
cc618af959
Merge branch 'master' into badfilter.dmh 2021-05-27 12:30:39 -06:00
Dennis Heimbigner
014db82bd4 Update Release notes 2021-05-26 16:06:17 -06:00
Ward Fisher
ac6c9eb20d Updated Release Notes. 2021-05-25 10:52:55 -06:00
Dennis Heimbigner
d773076e28 Update release notes 2021-05-21 20:49:01 -06:00
Dennis Heimbigner
fba7198039 Fix NCclosedir in dpathmgr.c
re: Issue https://github.com/Unidata/netcdf-c/issues/1999

NCclosedir code is incorrect. Fix.
Note that this issue crops up when using a non-VisualStudio windows build
such as Mingw because Mingq defines dirent.h, but Visual Studio does not.

Addendum:
Fix some mingw bugs:

1. Modify XGetopt.h to be conditional on _WIN32 instead of _MSC_VER.
2. Make sure sys/stat.h is included in ncpathmgr.h
2021-05-19 14:19:28 -06:00
Dennis Heimbigner
c56133d1f9 Update Release Notes 2021-05-18 16:39:35 -06:00
Dennis Heimbigner
e196234ed9 Update RELEASENOTES 2021-05-18 14:08:41 -06:00
Dennis Heimbigner
432477c1d0 Update RELEASE NOTES 2021-05-17 19:53:15 -06:00
Dennis Heimbigner
e82b65b7d7 Update RELEASE_NOTES.md 2021-05-14 12:08:40 -06:00
Dennis Heimbigner
7b0168a079 Update RELEASE_NOTES 2021-05-06 16:43:01 -06:00
Dennis Heimbigner
6ef02261f0 Update RELEASE NOTES 2021-04-24 19:53:18 -06:00
Dennis Heimbigner
2bdc00cf4d Update RELEASENOTES 2021-04-21 15:03:50 -06:00
Dennis Heimbigner
fd261280dc Update release notes 2021-04-16 16:17:32 -06:00
Dennis Heimbigner
30ee9914e2 Update release notes 2021-04-14 11:23:33 -06:00
Dennis Heimbigner
e20e630c88 merge master and fix conflicts 2021-04-06 13:39:58 -06:00