Skip to content

Commit

Permalink
Merge pull request #2934 from WardF/v4.9.3-rc1-prep.wif
Browse files Browse the repository at this point in the history
Add stanza for Release Candidate 1 in Release Notes
  • Loading branch information
WardF authored Aug 2, 2024
2 parents 150db23 + d18a606 commit 1aa2c6b
Show file tree
Hide file tree
Showing 16 changed files with 130 additions and 126 deletions.
60 changes: 35 additions & 25 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,27 @@ project(netCDF
VERSION 4.9.3
)

#####
# Version Info:
#
# Release Version
# Library Version
# SO Version
#
# SO Version is computed from library version. See:
# http://www.gnu.org/software/libtool/manual/libtool.html#Libtool-versioning
#####

set(NC_VERSION_NOTE "-rc1")
set(netCDF_VERSION ${PROJECT_VERSION}${NC_VERSION_NOTE})
set(VERSION ${netCDF_VERSION})
set(NC_VERSION ${netCDF_VERSION})
set(PACKAGE_VERSION ${VERSION})

# These values should match those in configure.ac
set(netCDF_LIB_VERSION 22)
set(netCDF_SO_VERSION 22)

#Add custom CMake Module
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules" "${PROJECT_SOURCE_DIR}/cmake")

Expand Down Expand Up @@ -51,26 +72,7 @@ endif()
add_library(netcdf)
add_library(netCDF::netcdf ALIAS netcdf)

#####
# Version Info:
#
# Release Version
# Library Version
# SO Version
#
# SO Version is computed from library version. See:
# http://www.gnu.org/software/libtool/manual/libtool.html#Libtool-versioning
#####

set(NC_VERSION_NOTE "-development")
set(netCDF_VERSION ${PROJECT_VERSION}${NC_VERSION_NOTE})
set(VERSION ${netCDF_VERSION})
set(NC_VERSION ${netCDF_VERSION})
set(PACKAGE_VERSION ${VERSION})

# These values should match those in configure.ac
set(netCDF_LIB_VERSION 19)
set(netCDF_SO_VERSION 19)

# Version of the dispatch table. This must match the value in
# configure.ac.
Expand Down Expand Up @@ -736,13 +738,18 @@ if(NOT WIN32)
endif()

# Options for S3 Support
option(NETCDF_ENABLE_S3 "Enable S3 support." OFF)
#option(NETCDF_ENABLE_S3 "Enable S3 support." OFF)
option(NETCDF_ENABLE_S3_AWS "Enable S3 support via AWS-CPP-SDK" OFF)
option(NETCDF_ENABLE_S3_INTERNAL "Enable S3 Internal support." OFF)
option(NETCDF_ENABLE_NCZARR_S3 "Enable NCZarr S3 support; Deprecated in favor of NETCDF_ENABLE_S3" OFF)

cmake_dependent_option(NETCDF_ENABLE_S3 "Enable S3 Support" ON "NETCDF_ENABLE_S3_AWS OR NETCDF_ENABLE_S3_INTERNAL" OFF)

option(NETCDF_ENABLE_NCZARR_S3 "Enable NCZarr S3 support; Deprecated in favor of NETCDF_ENABLE_S3" ${NETCDF_ENABLE_S3})

if(NOT NETCDF_ENABLE_REMOTE_FUNCTIONALITY)
set(NETCDF_ENABLE_S3 OFF CACHE BOOL "" FORCE)
set(NETCDF_ENABLE_S3_INTERNAL OFF CACHE BOOL "" FORCE)
set(NETCDF_ENABLE_S3_AWS OFF CACHE BOOL "" FORCE)
set(NETCDF_ENABLE_NCZARR_S3 OFF CACHE BOOL "" FORCE)
endif()

Expand Down Expand Up @@ -1531,10 +1538,7 @@ endif()
# STATIC_DEFINE netcdf_BUILT_AS_STATIC
#)

#####
# Build doxygen documentation, if need be.
#####
add_subdirectory(docs)


##
# Brute force, grab all of the dlls from the dependency directory,
Expand Down Expand Up @@ -1805,6 +1809,12 @@ set(abs_top_builddir "${CMAKE_CURRENT_BINARY_DIR}")
set(abs_top_srcdir "${CMAKE_CURRENT_SOURCE_DIR}")
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/test_common.in ${CMAKE_CURRENT_BINARY_DIR}/test_common.sh @ONLY NEWLINE_STYLE LF)

#####
# Build doxygen documentation, if need be.
# This must come after setting top_builddir, etc.
#####
add_subdirectory(docs)

####
# Build s3cleanup.sh and s3gc.sh
#####
Expand Down
3 changes: 3 additions & 0 deletions RELEASE_NOTES.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,10 @@ This file contains a high-level description of this package's evolution. Release

## 4.9.3 - TBD

### Release Candidate 1 - July 26, 2024

* Convert NCZarr V2 to store all netcdf-4 specific info as attributes. This improves interoperability with other Zarr implementations by no longer using non-standard keys. The price to be paid is that lazy attribute reading cannot be supported. See [Github #2836](https://github.com/Unidata/netcdf-c/issues/2936) for more information.

* Cleanup the option code for NETCDF_ENABLE_SET_LOG_LEVEL\[_FUNC\] See [Github #2931](https://github.com/Unidata/netcdf-c/issues/2931) for more information.
* Fix duplicate definition when using aws-sdk-cpp. See [Github #2928](https://github.com/Unidata/netcdf-c/issues/2928) for more information.
* Cleanup various obsolete options and do some code refactoring. See [Github #2926](https://github.com/Unidata/netcdf-c/issues/2926) for more information.
Expand Down
6 changes: 3 additions & 3 deletions cmake/dependencies.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -429,7 +429,7 @@ endif ()
# because for some reason this screws up if we unconditionally test for sdk
# and it is not available. Fix someday
if(NETCDF_ENABLE_S3)
if(NOT NETCDF_ENABLE_S3_INTERNAL)
if(NETCDF_ENABLE_S3_AWS)
# See if aws-s3-sdk is available
find_package(AWSSDK REQUIRED COMPONENTS s3;transfer)
if(AWSSDK_FOUND)
Expand All @@ -441,7 +441,7 @@ if(NETCDF_ENABLE_S3)
else(AWSSDK_FOUND)
set(NETCDF_ENABLE_S3_AWS OFF CACHE BOOL "S3 AWS" FORCE)
endif(AWSSDK_FOUND)
else(NOT NETCDF_ENABLE_S3_INTERNAL)
else(NETCDF_ENABLE_S3_INTERNAL)
# Find crypto libraries required with testing with the internal s3 api.
#find_library(SSL_LIB NAMES ssl openssl)
find_package(OpenSSL REQUIRED)
Expand All @@ -454,7 +454,7 @@ if(NETCDF_ENABLE_S3)
# message(FATAL_ERROR "Can't find a crypto library, required by S3_INTERNAL")
#endif(NOT CRYPTO_LIB)

endif(NOT NETCDF_ENABLE_S3_INTERNAL)
endif(NETCDF_ENABLE_S3_AWS)
else()
set(NETCDF_ENABLE_S3_AWS OFF CACHE BOOL "S3 AWS" FORCE)
endif()
Expand Down
6 changes: 3 additions & 3 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
AC_PREREQ([2.59])

# Initialize with name, version, and support email address.
AC_INIT([netCDF],[4.9.3-development],[[email protected]],[netcdf-c])
AC_INIT([netCDF],[4.9.4-development],[[email protected]],[netcdf-c])

##
# Prefer an empty CFLAGS variable instead of the default -g -O2.
Expand All @@ -21,15 +21,15 @@ AC_INIT([netCDF],[4.9.3-development],[[email protected]],[netcdf-c

AC_SUBST([netCDF_VERSION_MAJOR]) netCDF_VERSION_MAJOR=4
AC_SUBST([netCDF_VERSION_MINOR]) netCDF_VERSION_MINOR=9
AC_SUBST([netCDF_VERSION_PATCH]) netCDF_VERSION_PATCH=3
AC_SUBST([netCDF_VERSION_PATCH]) netCDF_VERSION_PATCH=4
AC_SUBST([NC_VERSION_NOTE]) NC_VERSION_NOTE="-development"

##
# These linker flags specify libtool version info.
# See http://www.gnu.org/software/libtool/manual/libtool.html#Libtool-versioning
# for information regarding incrementing `-version-info`.
# These values should match those in CMakeLists.txt
AC_SUBST([netCDF_SO_VERSION]) netCDF_SO_VERSION=21:2:2
AC_SUBST([netCDF_SO_VERSION]) netCDF_SO_VERSION=22:0:0

#####
# Set some variables used to generate a libnetcdf.settings file,
Expand Down
6 changes: 6 additions & 0 deletions docs/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
Doxyfile
custom_style.css
latex_main
man
Doxyfile.bak

4 changes: 3 additions & 1 deletion docs/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,9 @@ IF(NETCDF_ENABLE_DOXYGEN)

# Generate User Documentation
ADD_CUSTOM_TARGET(doc_all ALL
${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
COMMAND ${DOXYGEN_EXECUTABLE} -u ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
COMMAND ${DOXYGEN_EXECUTABLE} -w html ${CMAKE_CURRENT_BINARY_DIR}/header.html ${CMAKE_CURRENT_BINARY_DIR}/footer.html ${CMAKE_CURRENT_BINARY_DIR}/custom_stylesheet.html ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
COMMAND cp ${CMAKE_CURRENT_SOURCE_DIR}/auth.html ${CMAKE_CURRENT_BINARY_DIR}/html
COMMAND cp ${CMAKE_CURRENT_SOURCE_DIR}/obsolete/fan_utils.html ${CMAKE_CURRENT_BINARY_DIR}/html
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
Expand Down
2 changes: 1 addition & 1 deletion docs/Doxyfile.developer
Original file line number Diff line number Diff line change
Expand Up @@ -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.9.3-development
PROJECT_NUMBER = 4.9.4-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
Expand Down
5 changes: 3 additions & 2 deletions docs/Doxyfile.in
Original file line number Diff line number Diff line change
Expand Up @@ -945,6 +945,7 @@ INPUT = @abs_top_srcdir@/docs/mainpage.dox \
@abs_top_srcdir@/docs/windows-binaries.md \
@abs_top_srcdir@/docs/inmemory.md \
@abs_top_srcdir@/docs/byterange.md \
@abs_top_srcdir@/docs/auth.md \
@abs_top_srcdir@/docs/nczarr.md \
@abs_top_srcdir@/docs/cloud.md \
@abs_top_srcdir@/docs/notes.md \
Expand Down Expand Up @@ -1352,7 +1353,7 @@ HTML_FILE_EXTENSION = .html
# of the possible markers and block names see the documentation.
# This tag requires that the tag GENERATE_HTML is set to YES.

HTML_HEADER = @abs_top_srcdir@/docs/header.html
HTML_HEADER = @abs_top_builddir@/docs/header.html

# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each
# generated HTML page. If the tag is left blank doxygen will generate a standard
Expand All @@ -1362,7 +1363,7 @@ HTML_HEADER = @abs_top_srcdir@/docs/header.html
# that doxygen normally uses.
# This tag requires that the tag GENERATE_HTML is set to YES.

HTML_FOOTER = @abs_top_srcdir@/docs/footer.html
HTML_FOOTER = @abs_top_builddir@/docs/footer.html

# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style
# sheet that is used by each HTML page. It can be used to fine-tune the look of
Expand Down
6 changes: 5 additions & 1 deletion docs/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,11 @@ endif
# includes them in the documentation.

doxyfile.stamp:
$(DOXYGEN) Doxyfile && cp $(top_srcdir)/docs/auth.md $(top_srcdir)/docs/obsolete/fan_utils.html html
$(DOXYGEN) -u $(top_builddir)/docs/Doxyfile && \
$(DOXYGEN) -w html $(top_builddir)/docs/header.html \
$(top_builddir)/docs/footer.html $(top_builddir)/docs/custom_style.css $(top_builddir)/docs/Doxyfile && \
$(DOXYGEN) $(top_builddir)/docs/Doxyfile && \
cp $(top_srcdir)/docs/auth.md $(top_srcdir)/docs/obsolete/fan_utils.html html

CLEANFILES = doxyfile.stamp

Expand Down
33 changes: 15 additions & 18 deletions docs/auth.md
Original file line number Diff line number Diff line change
@@ -1,21 +1,18 @@
NetCDF Authorization Support
======================================
====================================

<!-- double header is needed to workaround doxygen bug -->

NetCDF Authorization Support {#auth}
====================================

[TOC]

## Introduction {#auth_intro}
## Introduction {#auth}

netCDF can support user authorization using the facilities provided by the curl
library. This includes basic password authentication as well as
certificate-based authorization.
At the moment, this document only applies to DAP2 and DAP4 access.

With some exceptions (e.g. see the section on <a href="#REDIR">redirection</a>)
With some exceptions (e.g. see the section on <a href="#auth_redir">redirection</a>)
The libcurl authorization mechanisms can be accessed in two ways

1. Inserting the username and password into the url, or
Expand All @@ -33,7 +30,7 @@ This username and password will be used if the server asks for
authentication. Note that only simple password authentication
is supported in this format.

Specifically note that [redirection-based](#REDIR)
Specifically note that [redirection-based](#auth_redir)
authorization may work with this but it is a security risk.
This is because the username and password
may be sent to each server in the redirection chain.
Expand Down Expand Up @@ -137,7 +134,7 @@ This is an alternative to setting it in the url.
The value must be of the form "username:password".
See the <a href="#USERPWDESCAPE">password escaping</a> section
to see how this value must escape certain characters.
Also see <a href="#REDIR">redirection authorization</a>
Also see <a href="#auth_redir">redirection authorization</a>
for important additional information.

The pair of keys
Expand All @@ -146,7 +143,7 @@ can be used as an alternative to HTTP.CREDENTIALS.USERPASSWORD
to set the simple password authentication.
If present, they take precedence over HTTP.CREDENTIALS.USERPASSWORD.
The values do not need to be escaped.
See <a href="#REDIR">redirection authorization</a>
See <a href="#auth_redir">redirection authorization</a>
for important additional information.

### Cookie Jar
Expand All @@ -157,7 +154,7 @@ to read cookies (CURLOPT_COOKIEJAR) and also
the file into which to store cookies (CURLOPT_COOKIEFILE).
The same value is used for both CURLOPT values.
It defaults to in-memory storage.
See [redirection authorization](#REDIR)
See [redirection authorization](#auth_redir)
for important additional information.

### Certificate Authentication
Expand Down Expand Up @@ -191,7 +188,7 @@ deprecated; use HTTP.PROXY.SERVER
HTTP.NETRC
specifies the absolute path of the .netrc file,
and causes it to be used instead of username and password.
See [redirection authorization](#REDIR)
See [redirection authorization](#auth_redir)
for information about using *.netrc*.

## Password Escaping {#auth_userpwdescape}
Expand Down Expand Up @@ -289,7 +286,7 @@ machine urs.earthdata.nasa.gov login <user> password <password>

Some systems, notably ESG (Earth System Grid), requires
the use of client-side certificates, as well as being
[re-direction based](#REDIR).
[re-direction based](#auth_redir).
This requires setting the following entries:

- HTTP.COOKIEJAR &mdash; a file path for storing cookies across re-direction.
Expand All @@ -306,7 +303,7 @@ Note that the first two are there to support re-direction based authentication.
1. https://curl.haxx.se/libcurl/c/curl_easy_setopt.html
2. https://curl.haxx.se/docs/ssl-compared.html

## Appendix A. All RC-File Keys {#auth_allkeys}
## Authorization Appendix A. All RC-File Keys {#auth_allkeys}

For completeness, this is the list of all rc-file keys.
If this documentation is out of date with respect to the actual code,
Expand All @@ -333,21 +330,21 @@ the code is definitive.
<tr><td>HTTP.NETRC</td><td>CURLOPT_NETRC,CURLOPT_NETRC_FILE</td>
</table>

## Appendix B. URS Access in Detail {#auth_ursdetail}
## Authorization Appendix B. URS Access in Detail {#auth_ursdetail}

It is possible to use the NASA Earthdata Login System (URS)
with netcdf by using using the process specified in the
[redirection based authorization section](#REDIR).
[redirection based authorization section](#auth_redir).
In order to access URS controlled datasets, however, it is necessary to
register as a user with NASA at this website (subject to change):

https://uat.urs.earthdata.nasa.gov/

## Appendix C. ESG Access in Detail {#auth_esgdetail}
## Authorization Appendix C. ESG Access in Detail {#auth_esgdetail}

It is possible to access Earth Systems Grid (ESG) datasets
from ESG servers through the netCDF API using the techniques
described in the section on [Client-Side Certificates](#CLIENTCERTS).
described in the section on [Client-Side Certificates](#auth_clientcerts).

In order to access ESG datasets, however, it is necessary to
register as a user with ESG and to setup your environment
Expand Down Expand Up @@ -430,7 +427,7 @@ named "truststore"

### Running the C Client

Refer to the section on [Client-Side Certificates](#CLIENTCERTS).
Refer to the section on [Client-Side Certificates](#auth_clientcerts).
The keys specified there must be set in the rc file to support ESG access.

- HTTP.COOKIEJAR=~/.dods_cookies
Expand Down
38 changes: 17 additions & 21 deletions docs/footer.html
Original file line number Diff line number Diff line change
@@ -1,21 +1,17 @@
<!-- HTML footer for doxygen 1.8.17-->
<!-- start footer part -->
<!--BEGIN GENERATE_TREEVIEW-->
<div id="nav-path" class="navpath"> <!-- id is needed for treeview function! -->
<!--END GENERATE_TREEVIEW-->
<!--BEGIN !GENERATE_TREEVIEW-->
<div> <!-- id unnecessary if treeview is not used -->
<!--END !GENERATE_TREEVIEW-->
<hr size="2" />
<address style="text-align: center;">
<a href="https://www.unidata.ucar.edu/software/netcdf/">Return to the Main Unidata NetCDF page.</a><br>
<img src="./$relpath^/uniLogo.png">
</address>

<address style="text-align: right;"><small>
Generated on $datetime for $projectname. NetCDF is
a <a href="https://www.unidata.ucar.edu/">Unidata</a> library.</small>
</address>
</div>
</body>
</html>
<!-- HTML footer for doxygen 1.9.1-->
<!-- start footer part -->
<!--BEGIN GENERATE_TREEVIEW-->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
$navpath
<li class="footer">$generatedby <a href="https://www.doxygen.org/index.html"><img class="footer" src="$relpath^doxygen.svg" width="104" height="31" alt="doxygen"/></a> $doxygenversion </li>
</ul>
</div>
<!--END GENERATE_TREEVIEW-->
<!--BEGIN !GENERATE_TREEVIEW-->
<hr class="footer"/><address class="footer"><small>
$generatedby&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="$relpath^doxygen.svg" width="104" height="31" alt="doxygen"/></a> $doxygenversion
</small></address>
<!--END !GENERATE_TREEVIEW-->
</body>
</html>
Loading

0 comments on commit 1aa2c6b

Please sign in to comment.