NOAA-EMC/NCEPLIBS-bufr

NCEPLIBS-bufr/test/CMakeLists.txt references a nonexistent tar archive

rickgrubin opened this issue · 1 comments

Describe the bug

NCEPLIBS-bufr fails to build because test/CMakelists.txt references a nonexistent tar archive of test files.

NCEPLIBS-bufr/CMakelists.txt:
[...]
enable_testing()
[...]

NCEPLIBS-bufr/test/CMakeLists.txt:
# Fetch test data from: https://ftp.emc.ncep.noaa.gov/static_files/public/bufr.tar
set(BUFR_URL "https://ftp.emc.ncep.noaa.gov/static_files/public")
[... attempt to get bufr.tar via curl or wget -- will fail as bufr.tar does not exist at the above URL ...]

To Reproduce

Follow build instructions in README:
[... set compiler env vars as appropriate ...]
[... make sure required external libraries are present / correctly pointed to ...]

git clone https://github.com/NOAA-EMC/NCEPLIBS
mkdir -p build && cd build
cmake -DCMAKE_INSTALL_PREFIX=<nceplibs-prefix> ../NCEPLIBS
make -j<x>
[...]
[ 67%] (curl) downloading https://ftp.emc.ncep.noaa.gov/static_files/public/bufr.tar
curl: (22) The requested URL returned error: 404
make[5]: *** [test/bufr.tar] Error 22
make[4]: *** [test/CMakeFiles/get_bufr_test_data.dir/all] Error 2

Expected behavior

bufr test data is downloaded / unpacked / staged appropriately

Fixed in place as:

  • point to an existing tar archive for bufr tests (will be a .tgz file per the URL above)
  • change get_bufr_test_data target to include uncompressing the test archive
TARGET get_bufr_test_data
  POST_BUILD
  COMMAND ${CMAKE_COMMAND} -E chdir ${CMAKE_CURRENT_BINARY_DIR} tar zxvf ${BUFR_TAR}

Build Information
How did you build or access NCEPLIBS?

See above

System
On what system are you running the code?

rhel7 x86_64 GNU/Linux host

Additional context

Discovered when helping someone else build in this manner; does hpc-stack/libs/build_nceplibs.sh uncover this behavior?

Hi @rickgrubin I'm sorry that the bufr.tar file seems to have disappeared from our server. I may be able to regenerate it if needed, but please note that it's only needed if you're trying to build a version of the library that's v11.5.0 or older. For anything newer than that (basically, any v11.6.0+ release during the past 2 years) it should be automatically grabbing the bufr-11.6.0.tgz file instead, and which does exist on the server.

Do you know what NCEPLIBS-bufr version hpc-stack was trying to build at the time? Again, I can try to regenerate the old bufr.tar and put it back out there if it's really needed, but going forward we're hoping to focus our efforts on supporting the newer versions.