Skip to content

Commit 71f92a7

Browse files
ckp
2 parents d9ad7c2 + 494ff11 commit 71f92a7

29 files changed

Lines changed: 537 additions & 398 deletions

RELEASE_NOTES.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ This file contains a high-level description of this package's evolution. Release
77

88
## 4.10.0 - TBD
99

10+
* Add compatibility with HDF5 2.0.0. See [Github #3247](https://github.com/Unidata/netcdf-c/pull/3247) for more information.
1011
* Add authentication support for session tokens for HDF5 ROS3
1112
driver. WARNING: this PR compiles and builds but the basic token
1213
functionality has not been tested because we have no access to a

cmake/dependencies.cmake

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,11 @@ if(USE_HDF5)
193193
# Find out if HDF5 was built with parallel support.
194194
set(HDF5_PARALLEL ${HDF5_IS_PARALLEL})
195195

196+
## Adjust for HDF5 2.0.0, which changed to HDF5_PROVIDES_PARALLEL
197+
if(NOT HDF5_PARALLEL)
198+
set(HDF5_PARALLEL ${HDF5_PROVIDES_PARALLEL})
199+
endif(NOT HDF5_PARALLEL)
200+
196201
set(CMAKE_REQUIRED_LIBRARIES HDF5::HDF5)
197202
include(CheckSymbolExists)
198203

docs/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ ENDIF(NETCDF_ENABLE_DOXYGEN)
8989
# Should match list in Makefile.am
9090
SET(CUR_EXTRA_DIST ${CUR_EXTRA_DIST}
9191
netcdf.m4 DoxygenLayout.xml Doxyfile.in footer.html
92-
mainpage.dox tutorial.dox guide.dox types.dox
92+
mainpage.md tutorial.dox guide.dox types.dox
9393
architecture.dox internal.dox windows-binaries.md
9494
building-with-cmake.md CMakeLists.txt groups.dox install.md notes.md
9595
install-fortran.md credits.md auth.md

docs/Doxyfile.in

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -939,7 +939,9 @@ WARN_LOGFILE =
939939
# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING
940940
# Note: If this tag is empty the current directory is searched.
941941

942-
INPUT = @abs_top_srcdir@/docs/mainpage.dox \
942+
INPUT = @abs_top_srcdir@/docs/mainpage.md \
943+
@abs_top_srcdir@/docs/netcdf_advanced_features.md \
944+
@abs_top_srcdir@/docs/remote_data_access.md \
943945
@abs_top_srcdir@/RELEASE_NOTES.md \
944946
@abs_top_srcdir@/docs/install-fortran.md \
945947
@abs_top_srcdir@/docs/windows-binaries.md \
@@ -1015,7 +1017,8 @@ INPUT = @abs_top_srcdir@/docs/mainpage.dox \
10151017
@abs_top_srcdir@/examples/C/simple_nc4_rd.c \
10161018
@abs_top_srcdir@/examples/C/simple_xy_nc4_wr.c \
10171019
@abs_top_srcdir@/examples/C/simple_xy_nc4_rd.c \
1018-
@abs_top_srcdir@/examples/C/filter_example.c
1020+
@abs_top_srcdir@/examples/C/filter_example.c \
1021+
@abs_top_srcdir@/docs/appendices.md \
10191022

10201023
# This tag can be used to specify the character encoding of the source files
10211024
# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
@@ -1086,7 +1089,7 @@ EXCLUDE_SYMLINKS = NO
10861089
# Note that the wildcards are matched against the file with absolute path, so to
10871090
# exclude all test directories for example use the pattern */test/*
10881091

1089-
EXCLUDE_PATTERNS =
1092+
EXCLUDE_PATTERNS = */.git/* */.github/* */build/* */_site/*
10901093

10911094
# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
10921095
# (namespaces, classes, functions, etc.) that should be excluded from the
@@ -1195,7 +1198,7 @@ FILTER_SOURCE_PATTERNS =
11951198
# (index.html). This can be useful if you have a project on for instance GitHub
11961199
# and want to reuse the introduction page also for the doxygen output.
11971200

1198-
USE_MDFILE_AS_MAINPAGE =
1201+
USE_MDFILE_AS_MAINPAGE = @abs_top_srcdir@/docs/mainpage.md
11991202

12001203
# The Fortran standard specifies that for fixed formatted Fortran code all
12011204
# characters from position 72 are to be considered as comment. A common
@@ -1396,7 +1399,7 @@ HTML_STYLESHEET =
13961399
# This tag requires that the tag GENERATE_HTML is set to YES.
13971400

13981401
HTML_EXTRA_STYLESHEET = @DOXYGEN_CSS_FILE@ \
1399-
@abs_top_srcdir@/docs/doxygen-awesome-css/doxygen-awesome.css
1402+
@abs_top_srcdir@/docs/doxygen-awesome-css/doxygen-awesome.css @abs_top_srcdir@/docs/doxygen-awesome-css/custom.css
14001403
HTML_COLORSTYLE = LIGHT
14011404

14021405
# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or

docs/Doxyfile.user

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -742,7 +742,7 @@ WARN_LOGFILE =
742742
# Note: If this tag is empty the current directory is searched.
743743

744744
INPUT = \
745-
./docs/mainpage.dox \
745+
./docs/mainpage.md \
746746
./RELEASE_NOTES.md \
747747
./docs/install-fortran.md \
748748
./docs/windows-binaries.md \

docs/appendices.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# Appendices
2+
3+
@subpage attribute_conventions
4+
@subpage file_format_specifications
5+
@subpage nc-error-codes
6+
@subpage filters
7+
@subpage nc_filters_quickstart
8+
@subpage pluginpaths
9+
@subpage nc_paths_quickstart
10+
@subpage nc_env_quickstart

docs/auth.md

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,6 @@
1-
NetCDF Authorization Support
1+
NetCDF Authorization Support {#auth_support}
22
====================================
33

4-
<!-- double header is needed to workaround doxygen bug -->
5-
6-
[TOC]
7-
84
## Introduction {#auth}
95

106
netCDF can support user authorization using the facilities provided by the curl
@@ -217,15 +213,15 @@ Since it is so common, here is a set of templates to use to
217213
access *earthdata.nasa.gov*.
218214

219215
#### *.ncrc* File
220-
````
216+
`
221217
HTTP.NETRC=/home/<user>/.netrc
222218
HTTP.COOKIEJAR=/home/<user>/.urs_cookies
223-
````
219+
`
224220

225221
#### *.netrc* File
226-
````
222+
`
227223
machine urs.earthdata.nasa.gov login <user> password <password>
228-
````
224+
`
229225

230226
## Client-Side Certificates {#auth_clientcerts}
231227

docs/byterange.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ In order to use this capability at run-time, with *ncdump* for
4444
example, it is necessary to provide a URL pointing to the basic
4545
dataset to be accessed. The URL must be annotated to tell the
4646
netcdf-c library that byte-range access should be used. This is
47-
indicated by appending the phrase ````#mode=bytes````
47+
indicated by appending the phrase `#mode=bytes`
4848
to the end of the URL.
4949
The two examples above show how this will look.
5050

docs/cloud.md

Lines changed: 32 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,3 @@
1-
2-
Cloud Storage Access Using The NetCDF-C Library
3-
============================
4-
<!-- double header is needed to workaround doxygen bug -->
5-
61
# Cloud Storage Access Using The NetCDF-C Library {#nccloud_head}
72

83
\tableofcontents
@@ -49,21 +44,21 @@ This is performed using the "byte-range" header in an HTTP request.
4944

5045
In the Amazon S3 context, a copy of a dataset, a netcdf-3 or netdf-4 file, is uploaded into a single object in some bucket.
5146
Then using the key to this object, it is possible to tell the netcdf-c library to treat the object as a remote file and to use the HTTP Byte-Range protocol to access the contents of the object.
52-
The dataset object is referenced using a URL with the trailing fragment containing the string ````#mode=bytes````.
47+
The dataset object is referenced using a URL with the trailing fragment containing the string `#mode=bytes`.
5348

5449
An examination of the test program _nc_test/test_byterange.sh_ shows simple examples using the _ncdump_ program.
5550
One such test is specified as follows:
56-
````
51+
```
5752
https://s3.us-east-1.amazonaws.com/noaa-goes16/ABI-L1b-RadC/2017/059/03/OR_ABI-L1b-RadC-M3C13_G16_s20170590337505_e20170590340289_c20170590340316.nc#mode=bytes
58-
````
53+
```
5954
Note that for S3 access, it is expected that the URL is in what is called "path" format where the bucket, _noaa-goes16_ in this case, is part of the URL path instead of the host.
6055

6156
The _#mode=bytes_ mechanism generalizes to work with most servers that support byte-range access.
6257

6358
Specifically, Thredds servers support such access using the HttpServer access method as can be seen from this URL taken from the above test program.
64-
````
59+
```
6560
https://thredds-test.unidata.ucar.edu/thredds/fileServer/irma/metar/files/METAR_20170910_0000.nc#bytes
66-
````
61+
```
6762

6863
# References {#nccloud_bib}
6964

@@ -108,9 +103,9 @@ These are as follows.
108103

109104
__A note about using S3 with Automake.__
110105
If S3 support is desired, and using the Amazon "aws-sdk-cpp" SDK, and using Automake, then LDFLAGS must be properly set, namely to this.
111-
````
106+
```
112107
LDFLAGS="$LDFLAGS -L/usr/local/lib -laws-cpp-sdk-s3"
113-
````
108+
```
114109
The above assumes that these libraries were installed in '/usr/local/lib', so the above requires modification if they were installed elsewhere.
115110

116111
Note also that if S3 support is enabled, then you need to have a C++ compiler installed because the "aws-sdk-cpp" S3 support code is written in C++.
@@ -126,20 +121,20 @@ The necessary CMake flags are as follows (with defaults)
126121
Note that unlike Automake, CMake can properly locate C++ libraries, so it should not be necessary to specify _-laws-cpp-sdk-s3_ assuming that the aws s3 libraries are installed in the default location.
127122
For CMake with Visual Studio, the default location is here:
128123

129-
````
124+
```
130125
C:/Program Files (x86)/aws-cpp-sdk-all
131-
````
126+
```
132127

133128
It is possible to install the sdk library in another location.
134129
In this case, one must add the following flag to the cmake command.
135-
````
130+
```
136131
cmake ... -DAWSSDK_DIR=\<awssdkdir\>
137-
````
132+
```
138133
where "awssdkdir" is the path to the sdk installation.
139134
For example, this might be as follows.
140-
````
135+
```
141136
cmake ... -DAWSSDK_DIR="c:\tools\aws-cpp-sdk-all"
142-
````
137+
```
143138
This can be useful if blanks in path names cause problems in your build environment.
144139

145140
# Appendix B. Building the S3 SDKs {#nccloud_s3sdk}
@@ -173,7 +168,7 @@ For linux, the following context works. Of course your mileage may vary.
173168
* Dependencies: openssl, libcurl, cmake, ninja (ninja-build using *apt-get*)
174169

175170
#### AWS-SDK-CPP CMake Build Recipe
176-
````
171+
```
177172
git clone --recurse-submodules https://www.github.com/aws/aws-sdk-cpp
178173
pushd aws-sdk-cpp
179174
mkdir build
@@ -192,7 +187,7 @@ cmake --build . --config Release
192187
sudo cmake --install . --config Release
193188
cd ..
194189
popd
195-
````
190+
```
196191

197192
### Windows build
198193
It is possible to build and install aws-sdk-cpp on Windows using CMake.
@@ -208,7 +203,7 @@ For Windows, the following context work. Of course your mileage may vary.
208203
This command-line build assumes one is using Cygwin or Mingw to provide
209204
tools such as bash.
210205

211-
````
206+
```
212207
git clone --recurse-submodules https://www.github.com/aws/aws-sdk-cpp
213208
pushd aws-sdk-cpp
214209
mkdir build
@@ -233,25 +228,25 @@ cmake --build . --config ${CFG}
233228
cmake --install . --config ${CFG}
234229
cd ..
235230
popd
236-
````
231+
```
237232
Notice that the sdk is being installed in the directory "c:\tools\aws-sdk-cpp"
238233
rather than the default location "c:\Program Files (x86)/aws-sdk-cpp-all"
239234
This is because when using a command line, an install path that contains
240235
blanks may not work.
241236

242237
In order for CMake to find the aws sdk libraries,
243238
the following environment variables must be set:
244-
````
239+
```
245240
AWSSDK_ROOT_DIR="c:/tools/aws-sdk-cpp"
246241
AWSSDKBIN="/cygdrive/c/tools/aws-sdk-cpp/bin"
247242
PATH="$PATH:${AWSSDKBIN}"
248-
````
243+
```
249244
Then the following options must be specified for cmake.
250-
````
245+
```
251246
-DAWSSDK_ROOT_DIR=${AWSSDK_ROOT_DIR}
252247
-DAWSSDK_DIR=${AWSSDK_ROOT_DIR}/lib/cmake/AWSSDK"
253-
````
254-
## Building ``nch5s3comms''
248+
```
249+
## Building nch5s3comms
255250

256251
This is an experimental SDK provided internally in the netcdf-c library.
257252

@@ -278,31 +273,31 @@ This is because it uses a Unidata-specific bucket is inaccessible to the general
278273
# Appendix C. AWS Selection Algorithms. {#nccloud_awsselect}
279274

280275
If byterange support is enabled, the netcdf-c library will parse the files
281-
````
276+
```
282277
${HOME}/.aws/config
283278
and
284279
${HOME}/.aws/credentials
285-
````
280+
```
286281
to extract profile names plus a list of key=value pairs.
287282
In case of duplicates, *credentials* takes precedence over *config*.
288283

289284
This example is typical of the contents of these files.
290-
````
285+
```
291286
[default]
292287
aws_access_key_id=XXXXXXXXXXXXXXXXXXXX
293288
aws_secret_access_key=YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
294289
aws_region=ZZZZZZZZZ
295-
````
290+
```
296291
The keys in the profile will be used to set various parameters in the library
297292

298293
## Profile Selection
299294

300295
The algorithm for choosing the active profile to use is as follows:
301296

302297
1. If the "aws.profile" fragment flag is defined in the URL, then it is used. For example, see this URL.
303-
````
298+
```
304299
https://...#mode=nczarr,s3&aws.profile=xxx
305-
````
300+
```
306301
2. If the "AWS.PROFILE" entry in the .rc file (i.e. .netrc or .dodsrc) is set, then it is used.
307302
3. If defined, then profile "default" is used.
308303
4. Otherwise the profile "no" is used.
@@ -314,13 +309,13 @@ It is equivalent to the "--no-sign-request" option in the AWS CLI.
314309
## Region Selection
315310

316311
If the specified URL is of the form
317-
````
312+
```
318313
s3://<bucket>/key
319-
````
314+
```
320315
Then this is rebuilt to this form:
321-
````
316+
```
322317
s3://s2.&lt;region&gt.amazonaws.com>/key
323-
````
318+
```
324319
However this requires figuring out the region to use.
325320
The algorithm for picking an region is as follows.
326321

0 commit comments

Comments
 (0)