Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade bundled netCDF to version 4.6.2 #2035

Merged
merged 13 commits into from
Feb 15, 2019

Conversation

jwpeterson
Copy link
Member

While experimenting with reading Exodus files written in netCDF4 format in Python, we ran across some issues with h5py that seemed to be related to UTF-8 encodings. While looking through the netCDF release notes, I came across this issue related to UTF-8/netCDF4:

Unidata/netcdf-c#298

Which was apparently fixed by this PR:

Unidata/netcdf-c#316

And that made it into netCDF release 4.5.0-rc1 (June 5, 2017):

https://www.unidata.ucar.edu/software/netcdf/docs/RELEASE_NOTES.html

Since our current netCDF 4.4.1.1 predates this release, it seems that netCDF4 files we write are affected by this bug. Following roughly the same update procedure as @benkirk did for the 4.4.1.1 update, I was able to update to 4.6.2 locally without too much difficulty.

I don't think this needs to go in our v1.4.0 release, but if there is enough demand for it we can always release a v1.4.1, similar to what was done for v1.2.1.

It looks like they now break the distribution up by language, so I grabbed the C version.
Note: this may longer be necessary, since the docs say the constant is
not enforced after 4.5.0.
This may need to be updated if we see build products showing up as
untracked files.
Apparently the AS_CASE statement I tried to use was wrong, probably
because it was wrapped in an m4 command. I think we can avoid this
anyway though, since libmesh already requires automake 1.16
I am trying to work around the following error during configure:

config.status: error: Something went wrong bootstrapping makefile fragments
    for automatic dependency tracking.  Try re-running configure with the
    '--disable-dependency-tracking' option to at least be able to build
    the package (albeit without support for automatic dependency tracking).

More information about this issue can be found here:

https://www.gnu.org/software/automake/manual/html_node/Dependencies.html

Automatic dependency tracking can be suppressed by putting
no-dependencies in the variable AUTOMAKE_OPTIONS, or passing
no-dependencies as an argument to AM_INIT_AUTOMAKE (this should be the
preferred way). Or, you can invoke automake with the -i
option. Dependency tracking is enabled by default.
This puts in place our changes to configure.ac
@jwpeterson
Copy link
Member Author

+400k, -350k 🙄

If we have to start updating netCDF more often, we might be better off making it into a git submodule.

@permcody
Copy link
Member

That's some serious code - I guess you can take the rest of the year off!

@jwpeterson
Copy link
Member Author

@pbauman, I've pasted the GRINS failure below. Somehow one of the files in the netCDF source dir gets a local modification:

Successfully removed /femputer/pbauman/civet_build_testing_root/libmesh-devel.
BUILD_ROOT/libMesh/: git checkout master
error: Your local changes to the following files would be overwritten by checkout:
	contrib/netcdf/netcdf-c-4.6.2/libsrc/ncx.c
Please, commit your changes or stash them before you can switch branches.
Aborting
ERROR: exiting with code 1

Would it be possible for you to log in there and tell me what the diff is? I don't see it on my local system and it's possible the file in question shouldn't even be under source control if it is meant to be a generated file or something...

@jwpeterson
Copy link
Member Author

Yeah, sure enough it says that file is generated:

/* Do not edit this file. It is produced from the corresponding .m4 source */

Hopefully it's generated during configure and not bootstrap. I will check on this.

@jwpeterson
Copy link
Member Author

@pbauman I'm also curious if you know how the dbg target could have passed even though the devel target failed? I'm unable to click on the "Details" links at the moment (femputer timeout) so I'm not exactly sure what the differences are between the two recipes.

@pbauman
Copy link
Member

pbauman commented Feb 15, 2019

@pbauman I'm also curious if you know how the dbg target could have passed even though the devel target failed? I'm unable to click on the "Details" links at the moment (femputer timeout) so I'm not exactly sure what the differences are between the two recipes.

@jwpeterson No idea. There should be no difference in that step (literally calling the same script in that step of both recipes). I've restarted femputer and redelivered the last push you did so it'll rerun in a bit and we can see.

@jwpeterson
Copy link
Member Author

I've restarted femputer and redelivered the last push

Thanks, seems to be working again!

@jwpeterson
Copy link
Member Author

This passes all the tests and doesn't appear to have broken anything new in "make distcheck" according to my local testing, so I'm going to go ahead and merge. There were a few other issues with the distcheck target, however, so I will be opening a separate PR for that.

@jwpeterson jwpeterson merged commit 211f585 into libMesh:master Feb 15, 2019
@jwpeterson jwpeterson deleted the update_netcdf branch February 15, 2019 22:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants