diff --git a/.gitignore b/.gitignore index fab925f..e0c8eae 100644 --- a/.gitignore +++ b/.gitignore @@ -1,11 +1,4 @@ -/eccodes_test_data.tar.gz -/eccodes_test_data_20181010.tar.gz -/eccodes-2.12.0-Source.tar.gz -/eccodes-2.12.5-Source.tar.gz -/eccodes-2.13.0-Source.tar.gz -/eccodes-2.14.1-Source.tar.gz -/eccodes-2.15.0-Source.tar.gz -/eccodes-2.16.0-Source.tar.gz -/eccodes-2.17.0-Source.tar.gz -/eccodes-2.18.0-Source.tar.gz -/eccodes_test_data_20200626.tar.gz +/eccodes-2.33.0-Source.tar.gz +/eccodes_test_data_20231216.tar.gz +/eccodes-2.36.0-Source.tar.gz +/eccodes_test_data_20240217.tar.gz diff --git a/README.md b/README.md index 035f9e0..f4658ba 100644 --- a/README.md +++ b/README.md @@ -12,3 +12,18 @@ messages in the following formats: For further details see: https://confluence.ecmwf.int/display/ECC/What+is+ecCodes + +Note for end users: +epel policy is to keep software versions stable for a given epel version +unless there is a strong reason why an update is needed +(for example security issues or malfunction). + +Since eccodes depends on a large collection of table definitions +that are included in the package, after some time these tables +(holding the WMO file format definitions for GRIB and BUFR files, +which are updated every 6 months) will become outdated, and new files +using these formats can not be used. + +If this is a problem for you, please raise the issue in bugzilla. +Since this is a malfunction from user perspective this is a +reason to update the package. diff --git a/eccodes-32bit.patch b/eccodes-32bit.patch deleted file mode 100644 index f019811..0000000 --- a/eccodes-32bit.patch +++ /dev/null @@ -1,32 +0,0 @@ ---- eccodes-2.18.0-Source.unchanged/src/grib_api_prototypes.h 2020-06-24 11:11:27.000000000 +0200 -+++ eccodes-2.18.0-Source/src/grib_api_prototypes.h 2020-06-27 09:23:17.543758993 +0200 -@@ -860,8 +860,8 @@ double grib_ieeefloat_error(double x); - double grib_long_to_ieee(unsigned long x); - int grib_nearest_smaller_ieee_float(double a, double* x); - unsigned long grib_ieee_to_long(double x); --unsigned long grib_ieee64_to_long(double x); --double grib_long_to_ieee64(unsigned long x); -+uint64_t grib_ieee64_to_long(double x); -+double grib_long_to_ieee64(uint64_t x); - int grib_ieee_decode_array(grib_context* c, unsigned char* buf, size_t nvals, int bytes, double* val); - int grib_ieee_decode_array(grib_context* c, unsigned char* buf, size_t nvals, int bytes, double* val); - int grib_ieee_encode_array(grib_context* c, double* val, size_t nvals, int bytes, unsigned char* buf); ---- eccodes-2.18.0-Source.unchanged/src/grib_ieeefloat.c 2020-06-24 11:11:27.000000000 +0200 -+++ eccodes-2.18.0-Source/src/grib_ieeefloat.c 2020-06-27 09:23:17.545758944 +0200 -@@ -443,14 +443,14 @@ unsigned long grib_ieee_to_long(double x - * grib_encode_unsigned_long. - */ - --unsigned long grib_ieee64_to_long(double x) -+uint64_t grib_ieee64_to_long(double x) - { - unsigned long lval; - memcpy(&lval, &x, 8); - return lval; - } - --double grib_long_to_ieee64(unsigned long x) -+double grib_long_to_ieee64(uint64_t x) - { - double dval; - memcpy(&dval, &x, 8); diff --git a/eccodes-soversion.patch b/eccodes-soversion.patch index defa647..5a3e406 100644 --- a/eccodes-soversion.patch +++ b/eccodes-soversion.patch @@ -1,23 +1,23 @@ ---- eccodes-2.18.0-Source.unchanged/fortran/CMakeLists.txt 2020-06-24 11:11:27.000000000 +0200 -+++ eccodes-2.18.0-Source/fortran/CMakeLists.txt 2020-06-27 09:23:33.020376062 +0200 -@@ -45,7 +45,9 @@ if( HAVE_FORTRAN ) - ecbuild_add_library( TARGET eccodes_f90 - SOURCES grib_fortran.c grib_f90.f90 eccodes_f90.f90 grib_kinds.h - GENERATED grib_f90.f90 eccodes_f90.f90 -- LIBS eccodes ) -+ LIBS eccodes -+ SOVERSION ${ECCODES_SOVERSION_F90}) -+ +--- eccodes-2.35.0-Source.unchanged/fortran/CMakeLists.txt 2024-04-11 12:13:21.000000000 +0200 ++++ eccodes-2.35.0-Source/fortran/CMakeLists.txt 2024-05-04 16:18:42.732436699 +0200 +@@ -46,7 +46,8 @@ if( HAVE_FORTRAN ) + GENERATED grib_f90.f90 eccodes_f90.f90 + PUBLIC_INCLUDES $ + $ +- PRIVATE_LIBS eccodes ${ECCODES_PTHREADS_LIBRARIES} ) ++ PRIVATE_LIBS eccodes ${ECCODES_PTHREADS_LIBRARIES} ++ SOVERSION ${ECCODES_SOVERSION_F90}) + if( DEFINED ecbuild_VERSION AND NOT ${ecbuild_VERSION} VERSION_LESS 3.1 ) # Installed module directory is not in the PUBLIC INCLUDES! - target_include_directories( eccodes_f90 PUBLIC $ ) ---- eccodes-2.18.0-Source.unchanged/src/CMakeLists.txt 2020-06-24 11:11:27.000000000 +0200 -+++ eccodes-2.18.0-Source/src/CMakeLists.txt 2020-06-27 09:27:13.845630950 +0200 -@@ -442,6 +442,7 @@ ecbuild_add_library( TARGET eccodes - GENERATED grib_api_version.c - LIBS ${ECCODES_EXTRA_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT} ${CMATH_LIBRARIES} - TEMPLATES ${grib_api_extra_srcs} -+ SOVERSION ${ECCODES_SOVERSION} +--- eccodes-2.35.0-Source.unchanged/src/CMakeLists.txt 2024-04-11 12:13:21.000000000 +0200 ++++ eccodes-2.35.0-Source/src/CMakeLists.txt 2024-05-04 16:18:42.733436675 +0200 +@@ -416,6 +416,8 @@ ecbuild_add_library( TARGET eccodes + PRIVATE_LIBS ${ECCODES_EXTRA_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT} ${AEC_LIBRARIES} ${PNG_LIBRARIES} + PUBLIC_LIBS ${CMATH_LIBRARIES} ${THREADS_LIBRARIES} + TEMPLATES ${eccodes_extra_src_files} ++ SOVERSION ${ECCODES_SOVERSION} ++ INSTALL_HEADERS_LIST grib_api.h eccodes.h diff --git a/eccodes-test-grib_to_netcdf.patch b/eccodes-test-grib_to_netcdf.patch new file mode 100644 index 0000000..eff2a26 --- /dev/null +++ b/eccodes-test-grib_to_netcdf.patch @@ -0,0 +1,15 @@ +--- eccodes-2.23.0-Source.unchanged/tests/grib_to_netcdf.sh 2021-08-25 11:35:41.000000000 +0200 ++++ eccodes-2.23.0-Source/tests/grib_to_netcdf.sh 2021-09-02 10:31:33.417295119 +0200 +@@ -64,8 +64,10 @@ if [ $ECCODES_ON_WINDOWS -eq 0 ]; then + set -e + if [ $stat -eq 0 ]; then + have_netcdf4=1 +- res=`${tools_dir}/grib_get -TA -p identifier,versionNumberOfSuperblock $tempNetcdf` +- [ "$res" = "HDF5 0" ] ++# res=`${tools_dir}/grib_get -TA -p identifier,versionNumberOfSuperblock $tempNetcdf` ++# [ "$res" = "HDF5 0" ] ++ res=`${tools_dir}/grib_get -TA -p identifier $tempNetcdf` ++ [ "$res" = "HDF5" ] + fi + fi + diff --git a/eccodes-thread-init-fix.patch b/eccodes-thread-init-fix.patch new file mode 100644 index 0000000..0f28ec9 --- /dev/null +++ b/eccodes-thread-init-fix.patch @@ -0,0 +1,47 @@ +--- eccodes-2.36.0-Source.unchanged/src/accessor/grib_accessor_class_bufr_elements_table.cc 2024-06-24 12:52:58.000000000 +0200 ++++ eccodes-2.36.0-Source/src/accessor/grib_accessor_class_bufr_elements_table.cc 2024-07-23 19:38:30.211681092 +0200 +@@ -1,4 +1,3 @@ +- + /* + * (C) Copyright 2005- ECMWF. + * +@@ -28,7 +27,7 @@ static void thread_init() + static int once = 0; + static omp_nest_lock_t mutex1; + +-void thread_init() ++static void thread_init() + { + GRIB_OMP_CRITICAL(lock_grib_accessor_class_bufr_elements_table_c) + { +--- eccodes-2.36.0-Source.unchanged/src/accessor/grib_accessor_class_codetable.cc 2024-06-24 12:52:58.000000000 +0200 ++++ eccodes-2.36.0-Source/src/accessor/grib_accessor_class_codetable.cc 2024-07-23 19:38:30.248680436 +0200 +@@ -20,7 +20,7 @@ grib_accessor_class* grib_accessor_class + static pthread_once_t once = PTHREAD_ONCE_INIT; + static pthread_mutex_t mutex1 = PTHREAD_MUTEX_INITIALIZER; + +-void thread_init() ++static void thread_init() + { + pthread_mutexattr_t attr; + pthread_mutexattr_init(&attr); +@@ -32,7 +32,7 @@ void thread_init() + static int once = 0; + static omp_nest_lock_t mutex1; + +-void thread_init() ++static void thread_init() + { + GRIB_OMP_CRITICAL(lock_grib_accessor_class_codetable_c) + { +--- eccodes-2.36.0-Source.unchanged/src/accessor/grib_accessor_class_smart_table.cc 2024-06-24 12:52:58.000000000 +0200 ++++ eccodes-2.36.0-Source/src/accessor/grib_accessor_class_smart_table.cc 2024-07-23 19:38:30.248680436 +0200 +@@ -30,7 +30,7 @@ static void thread_init() + static int once = 0; + static omp_nest_lock_t mutex; + +-void thread_init() ++static void thread_init() + { + GRIB_OMP_CRITICAL(lock_grib_accessor_class_smart_table_c) + { diff --git a/eccodes.rpmlintrc b/eccodes.rpmlintrc index 60064d2..b6c8fb4 100644 --- a/eccodes.rpmlintrc +++ b/eccodes.rpmlintrc @@ -1,56 +1,13 @@ -# use like this: -# rpmlint --file eccodes.rpmlintrc *.rpm -# example: addFilter ("^foo-.*regex-match-for-rpmlint-warning") -# these are invalid spelling warnings. GRIB and BUFR are correct, since these are -# the names of the data files that this software handles. -# the description itself is a 1-to-1 copy of what the (UK-based) upstream -# writes, and I am not going to translate this to US spelling ... -addFilter ("W: spelling-error %description -l en_US behaviour -> behavior") -addFilter ("W: spelling-error %description -l en_US grib ->") -addFilter ("W: spelling-error %description -l en_US bufr ->") +# Disable warning on duplicate files. +# This package uses a huge number (1990 cases at the time of wrinting) +# duplicates in the tables definitions, and patching this is totally +# out of scope for my limited time. +addFilter(r" W: files-duplicate ") +addFilter(r" E: files-duplicated-waste ") -# this data file with wrong line ending has been added to the software on purpose -# for testing purposes, so this is no mistake -addFilter ("eccodes-doc.noarch: W: wrong-file-end-of-line-encoding /usr/share/doc/eccodes/examples/python/flight_data.csv") +# Disable warnings on missing man pages. +# The tools that have --help output have been fixed by using help2man. +# The remaining ones have no help output whatsoever and are not easy to fix. +addFilter(r" W: no-manual-page-for-binary ") -# these data files are no scripts. The dataformat just has an unfortunate first line -# starting with #! so it resembles a shebang line. -# see also comment #3 in the review request at https://bugzilla.redhat.com/show_bug.cgi?id=1508950 -addFilter ("^eccodes-data.noarch: E: wrong-script-interpreter /usr/share/eccodes/definitions/grib1/local.82.0.def") -addFilter ("^eccodes-data.noarch: E: non-executable-script /usr/share/eccodes/definitions/grib1/local.82.0.def") -addFilter ("^eccodes-data.noarch: E: wrong-script-interpreter /usr/share/eccodes/definitions/grib1/local.82.83.def") -addFilter ("^eccodes-data.noarch: E: non-executable-script /usr/share/eccodes/definitions/grib1/local.82.83.def") - -# this is a false error (its an rpmlint bug). -# the spec file now uses %ldconfig_scriptlets in stead of the old ldconfig-postin/postun -# see also comment #18 in the review request at https://bugzilla.redhat.com/show_bug.cgi?id=1508950 -addFilter ("^eccodes.x86_64: E: library-without-ldconfig-postin /usr/lib64/libeccodes.so.0.1") -addFilter ("^eccodes.x86_64: E: library-without-ldconfig-postun /usr/lib64/libeccodes.so.0.1") -addFilter ("^eccodes.x86_64: E: library-without-ldconfig-postin /usr/lib64/libeccodes_f90.so.0.1") -addFilter ("^eccodes.x86_64: E: library-without-ldconfig-postun /usr/lib64/libeccodes_f90.so.0.1") - -# this is an rpmlint bug -# see also comment #8 in the review request at https://bugzilla.redhat.com/show_bug.cgi?id=1508950 -addFilter ("eccodes-debuginfo.x86_64: E: useless-provides debuginfo\(build-id\)") - -# there is no full compatibility between the old grib_api and the new eccodes -# so only obsoletes can be used bu no provides. -# see also comment #21 in the review request at https://bugzilla.redhat.com/show_bug.cgi?id=1508950 -addFilter ("^eccodes.x86_64: W: obsolete-not-provided grib_api") -addFilter ("^eccodes-devel.x86_64: W: obsolete-not-provided grib_api-devel") -addFilter ("^eccodes-devel.x86_64: W: only-non-binary-in-usr-lib") - -# documentation is in a dedicated doc subpackage, -# so these warnings have no merit -addFilter ("python2-eccodes.x86_64: W: no-documentation") -addFilter ("eccodes-debugsource.x86_64: W: no-documentation") -addFilter ("eccodes-devel.x86_64: W: no-documentation") -addFilter ("eccodes-data.noarch: W: no-documentation") - -# temporary disable the man page warning, since it obscures other problems that -# may be more important, and it has already been reported upstream -# see also comment #3 in the review request at https://bugzilla.redhat.com/show_bug.cgi?id=1508950 -addFilter ("eccodes.x86_64: W: no-manual-page-for-binary") - -# addFilter ("") diff --git a/eccodes.spec b/eccodes.spec index a96498e..b7d273b 100644 --- a/eccodes.spec +++ b/eccodes.spec @@ -1,56 +1,74 @@ +%if 0%{?el8} +%undefine __cmake_in_source_build +%endif + Name: eccodes -Version: 2.18.0 -Release: 2%{?dist} +Version: 2.36.0 +Release: 1%{?dist} Summary: WMO data format decoding and encoding # force the shared libraries to have these so versions %global so_version 0.1 %global so_version_f90 0.1 -%global datapack_date 20200626 -# latest fedora-32 grib_api version is 1.27.0-7 +# note that the test_data package provided on the ECMWF version +# is unversioned, so use the download date to discriminate +# between different versions. +%global datapack_date 20240217 + +# latest fedora-38/rawhide grib_api version is 1.27.0-18 # but this version number is to be updated as soon as we know # what the final release of grib_api by upstream will be. # latest upstream grib_api release is 1.28.0 (05-Dec-2018) -# see https://confluence.ecmwf.int/display/GRIB/Home +# as was written on https://confluence.ecmwf.int/display/GRIB/Home +# (Note that this page is no longer available, 17-Oct-2020) %global final_grib_api_version 1.28.1-1%{?dist} -%ifarch i686 ppc64 s390x armv7hl +%ifarch i686 ppc64 armv7hl %global obsolete_grib_api 0 %else %global obsolete_grib_api 1 %endif # license remarks: -# Most of eccodes is licensed ASL 2.0 but a special case must be noted. +# Most of eccodes is licensed ASL 2.0 (which is identical to the SPDX +# identifier Apache-2.0) but a special case must be noted. # These 2 files: # src/grib_yacc.c # src/grib_yacc.h # contain a special exception clause that allows them to be # relicensed if they are included in a larger project -License: ASL 2.0 +License: Apache-2.0 + +URL: https://confluence.ecmwf.int/display/ECC/ecCodes+Home +Source0: https://confluence.ecmwf.int/download/attachments/45757960/eccodes-%{version}-Source.tar.gz -URL: https://software.ecmwf.int/wiki/display/ECC/ecCodes+Home -Source0: https://software.ecmwf.int/wiki/download/attachments/45757960/eccodes-%{version}-Source.tar.gz # note: this data package is unversioned upstream but still it is updated # now and then so rename the datapack using the download date # to make it versioned in fedora -Source1: http://download.ecmwf.org/test-data/eccodes/eccodes_test_data.tar.gz#/eccodes_test_data_%{datapack_date}.tar.gz -# Support 32-bit -# https://software.ecmwf.int/issues/browse/SUP-1813 -# (unfortunately this issue is not public) -Patch1: eccodes-32bit.patch +Source1: https://get.ecmwf.int/repository/test-data/eccodes/eccodes_test_data.tar.gz#/eccodes_test_data_%{datapack_date}.tar.gz + +# a custom script to create man pages +Source2: eccodes_create_man_pages.sh + # Add soversion to the shared libraries, since upstream refuses to do so -# https://software.ecmwf.int/issues/browse/SUP-1809 -Patch2: eccodes-soversion.patch +# https://jira.ecmwf.int/browse/SUP-1809 +Patch1: eccodes-soversion.patch + +# Add a patch to solve the multiple definition of thread_init() +# that was introduced in eccodes v2.36.0 +# This patch was provided upstream on 22-Jul-2024, see this github commit: +# https://github.com/ecmwf/eccodes/commit/809fb997282dd97058862261b1a36647f919f3b2 +Patch2: eccodes-thread-init-fix.patch + # note that the requests to make the other issues public are filed here: -# https://software.ecmwf.int/issues/browse/SUP-2073 +# https://jira.ecmwf.int/browse/SUP-2073 # (and again, unfortunately this issue is not public) BuildRequires: cmake3 -BuildRequires: gcc +BuildRequires: gcc-c++ BuildRequires: gcc-gfortran BuildRequires: /usr/bin/git BuildRequires: jasper-devel @@ -58,14 +76,18 @@ BuildRequires: libjpeg-devel BuildRequires: libpng-devel BuildRequires: netcdf-devel BuildRequires: openjpeg2-devel +BuildRequires: libaec-devel # For tests BuildRequires: perl(Getopt::Long) BuildRequires: perl(Test::More) BuildRequires: perl(File::Compare) -# the data is needed by the library and all tools provided in the main package -# the other way around, the data package could be installed without +# For creation of man pages +BuildRequires: help2man + +# The data is needed by the library and all tools provided in the main package. +# The other way around, the data package could be installed without # installing the base package. It will probably be pretty useless, # unless a user wishes to read and study all these grib and bufr # file format definitions. @@ -94,10 +116,6 @@ Obsoletes: grib_api < %{final_grib_api_version} # as explained in bugzilla #1562066 ExcludeArch: i686 -# as explained in bugzilla #1562076 -ExcludeArch: s390x -# as explained in bugzilla #1562084 -ExcludeArch: armv7hl %description ecCodes is a package developed by ECMWF which provides an application @@ -176,24 +194,15 @@ in C, and Fortran 90. %autosetup -n %{name}-%{version}-Source -p1 # unpack the test data below build -mkdir build -cd build +mkdir -p %{_vpath_builddir} +pushd %{_vpath_builddir} tar xf %SOURCE1 - -# remove executable permissions from c files -cd .. -chmod 644 tigge/*.c -chmod 644 tools/*.c - -# remove executable permissions from the authors and license file -chmod 644 AUTHORS LICENSE +popd %build -cd build #-- The following features are disabled by default and not switched on: # -# * AEC , support for Adaptive Entropy Coding # * MEMFS , Memory based access to definitions/samples # * MEMORY_MANAGEMENT , enable memory management # * ALIGN_MEMORY , enable memory alignment @@ -213,25 +222,16 @@ cd build # * ENABLE_NETCDF # NetCDF is only needed to create the grib_to_netcdf convert tool # -# * ENABLE_PYTHON has value AUTO as default, so if python2 is available -# during a package build it will build an interface for it. -# To make sure it does not do so, explicitely switch it off. -# Python3 support has been moved to an additional project now, -# so python handling has been removed completely from this spec file. -# #-- Also add an explicit option to not use rpath # # Note: -DINSTALL_LIB_DIR=%%{_lib} is needed because otherwise # the library so files get installed in /usr/lib in stead # of /usr/lib64 on x86_64. -# Build with -fallow-argument-mismatch for gcc 10 compatibility -# otherwise the fortran interface fails to compile -# (thanks for the hint Orion) -# Reported upstream at https://jira.ecmwf.int/browse/SUP-3081 -# note that setting FCFLAGS is not sufficient, i.e. this doesn't work: -# export FCFLAGS="%%{build_fflags} -fallow-argument-mismatch" -# defining the -DCMAKE_Fortran_FLAGS for camke is required to let it compile. +# added -DCMAKE_Fortran_FLAGS="-fPIC" +# because the koji build crashes with the error that it needs this setting +# when I try to build for armv7hl (other archs do not complain ......) +# I have no idea what causes this difference in behaviour. %cmake3 -DINSTALL_LIB_DIR=%{_lib} \ -DENABLE_ECCODES_OMP_THREADS=ON \ @@ -243,20 +243,20 @@ cd build -DCMAKE_SKIP_INSTALL_RPATH=TRUE \ -DECCODES_SOVERSION=%{so_version} \ -DECCODES_SOVERSION_F90=%{so_version_f90} \ - -DCMAKE_Fortran_FLAGS="-fallow-argument-mismatch" \ - -DENABLE_PYTHON=OFF \ - .. + -DCMAKE_Fortran_FLAGS="-fPIC" -%make_build +# note the final '..' is no longer needed to the cmake3 call. +# this is now hidden in the %%cmake3 macro + +%cmake_build # copy some include files to the build dir -# that are otherwise not found when creating the debugsource subpackage -cd .. -cp fortran/eccodes_constants.h build/fortran/ -cp fortran/grib_api_constants.h build/fortran/ +# that are otherwise not found when creating the debugsource sub-package +cp fortran/eccodes_constants.h %{_vpath_builddir}/fortran/ +cp fortran/grib_api_constants.h %{_vpath_builddir}/fortran/ %install -%make_install -C build +%cmake_install mkdir -p %{buildroot}%{_fmoddir} mv %{buildroot}%{_includedir}/*.mod %{buildroot}%{_fmoddir}/ @@ -269,8 +269,6 @@ rm %{buildroot}%{_datadir}/%{name}/definitions/installDefinitions.sh # copy the html documentation to the install directory mkdir -p %{buildroot}%{_datadir}/doc/%{name}/ cp -r html %{buildroot}%{_datadir}/doc/%{name}/ -# and remove an unneeded Makefile from the html directory -rm %{buildroot}%{_datadir}/doc/%{name}/html/Makefile.am # copy the example scripts/programs to the install directory # but dont copy the shell scripts and Makefiles, since these @@ -284,6 +282,21 @@ cp examples/C/*.c %{buildroot}%{_datadir}/doc/%{name}/examples/C mkdir -p %{buildroot}%{_datadir}/doc/%{name}/examples/F90 cp examples/F90/*.f90 %{buildroot}%{_datadir}/doc/%{name}/examples/F90 +# create man pages for the tools that support the --help option +# since upstream does not provide them. +# Source2 points to the script eccodes_create_man_pages.sh +# used to generate the man pages. +LD_LIBRARY_PATH=%{buildroot}/%{_libdir} \ +%{SOURCE2} %{_vpath_builddir}/bin \ + %{_vpath_builddir}/man + +# copy the created man pages to the install directory +mkdir -p %{buildroot}%{_datadir}/man/man1 +cp %{_vpath_builddir}/man/*.1 %{buildroot}%{_datadir}/man/man1 + +# Fix permissions +chmod 644 AUTHORS LICENSE + # also not needed for x86_64 # maybe they fixed it for all archs? #%%ifarch i686 armv7hl @@ -307,7 +320,7 @@ sed -i 's|^libs=.*$|libs=-L${libdir} -leccodes_f90 -leccodes|g' %{buildroot}/%{_ %ldconfig_scriptlets %check -cd build +cd %{_vpath_builddir} # notes: # * the LD_LIBRARY_PATH setting is required to let the tests @@ -317,6 +330,8 @@ cd build # 'eccodes_t_bufr_dump_(de|en)code_C' tests run. # These tests compile on the fly generated C code, and # without this setting the loader does not find the libraries. +# * this is a 'non-standard' use of ctest3 so it does currently not +# work with the %%ctest macro. LD_LIBRARY_PATH=%{buildroot}/%{_libdir} \ LIBRARY_PATH=%{buildroot}/%{_libdir} \ @@ -327,6 +342,7 @@ ctest3 -V %{?_smp_mflags} %doc README.md ChangeLog AUTHORS NEWS NOTICE %{_bindir}/* %{_libdir}/*.so.* +%{_mandir}/man1/*.1* %files devel %{_includedir}/* @@ -348,6 +364,120 @@ ctest3 -V %{?_smp_mflags} %doc %{_datadir}/doc/%{name}/ %changelog +* Sun Sep 01 2024 Jos de Kloe - 2.36.0-1 +- Update to 2.36.0 + +* Sun Dec 17 2023 Orion Poplawski - 2.33.0-1 +- Update to 2.33.0 + +* Sun Nov 26 2023 Jos de Kloe - 2.32.1-2 +- rebuild after so name jump of libjasper + +* Thu Nov 02 2023 Jos de Kloe - 2.32.1-1 +- Upgrade to upstream version 2.32.1 and add updated test_data package + +* Thu Jul 27 2023 Jos de Kloe - 2.31.0-1 +- Upgrade to upstream version 2.31.0 + +* Wed Jul 19 2023 Fedora Release Engineering - 2.30.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Sun Apr 16 2023 Jos de Kloe - 2.30.0-1 +- Upgrade to upstream version 2.30.0 + +* Sun Mar 26 2023 Jos de Kloe - 2.29.0-1 +- Upgrade to upstream version 2.29.0 + Note that the source code now uses g++ in stead of gcc for compilation. + +* Sun Feb 12 2023 Jos de Kloe - 2.28.0-1 +- Upgrade to upstream version 2.28.0 + +* Thu Jan 19 2023 Fedora Release Engineering - 2.27.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Sat Dec 10 2022 Jos de Kloe - 2.27.1-1 +- Upgrade to upstream version 2.27.1 and SPDX migration + +* Wed Sep 14 2022 Jos de Kloe - 2.27.0-2 +- fix problem with use of _sourcedir + +* Mon Aug 29 2022 Jos de Kloe - 2.27.0-1 +- Upgrade to upstream version 2.27.0 +- Added generation of man pages for tools that support the --help option + +* Thu Jul 21 2022 Fedora Release Engineering - 2.26.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Thu May 26 2022 Jos de Kloe - 2.26.0-1 +- Upgrade to upstream version 2.26.0 + +* Fri May 20 2022 Sandro Mani - 2.25.0-2 +- Rebuild for gdal-3.5.0 and/or openjpeg-2.5.0 + +* Sun Mar 06 2022 Jos de Kloe - 2.25.0-1 +- Upgrade to upstream version 2.25.0 +- Add new BR libaec-devel + +* Mon Feb 14 2022 Mamoru TASAKA - 2.24.0-4 +- jasper3: use wrapper entry point for jpeg2000 decoder + +* Sun Feb 13 2022 Josef Ridky - 2.24.0-3 +- Rebuilt for libjasper.so.6 + +* Thu Jan 20 2022 Fedora Release Engineering - 2.24.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Thu Dec 09 2021 Jos de Kloe - 2.24.0-1 +- Upgrade to upstream version 2.24.0 +- Remove no longer needed patch2 (grib_to_netcdf test fix) + +* Wed Dec 1 2021 Mamoru TASAKA - 2.23.0-2 +- Patch grib_api_internal.h for big endian test suite issue (upstream bug SUP-2410) + +* Thu Sep 02 2021 Jos de Kloe - 2.23.0-1 +- Upgrade to upstream version 2.23.0 + +* Wed Aug 11 2021 Orion Poplawski - 2.22.1-4 +- Rebuild for netcdf 4.8.0 + +* Tue Aug 10 2021 Orion Poplawski - 2.22.1-3 +- Rebuild for netcdf 4.8.0 + +* Wed Jul 21 2021 Fedora Release Engineering - 2.22.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Sat Jun 19 2021 Jos de Kloe - 2.22.1-1 +- Upgrade to upstream version 2.22.1 + +* Mon May 24 2021 Jos de Kloe - 2.22.0-1 +- Upgrade to upstream version 2.22.0 + +* Sun Mar 28 2021 Jos de Kloe - 2.21.0-1 +- Upgrade to upstream version 2.21.0 + +* Tue Jan 26 2021 Fedora Release Engineering - 2.20.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Sat Jan 23 2021 Jos de Kloe - 2.20.0-1 +- Upgrade to upstream version 2.20.0 + +* Fri Nov 13 2020 Jos de Kloe - 2.19.1-1 +- Upgrade to upstream version 2.19.1 + +* Sat Oct 17 2020 Jos de Kloe - 2.19.0-1 +- Upgrade to upstream version 2.19.0 and remove patch 1 +- Add -fpic to the fortran flags (needed for compiling on armv7hl) + +* Wed Aug 05 2020 Jos de Kloe - 2.18.0-5 +- Adapt the spec file to use the new style cmake macros + +* Sat Aug 01 2020 Fedora Release Engineering - 2.18.0-4 +- Second attempt - Rebuilt for + https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Mon Jul 27 2020 Fedora Release Engineering - 2.18.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + * Sat Jun 27 2020 Jos de Kloe - 2.18.0-2 - Rebuild after fixing mistake in ExcludeArch statements @@ -439,7 +569,7 @@ ctest3 -V %{?_smp_mflags} - Implement so version because upstream refuses to do so - Add fix for test failure 184 and ldconfig_scriptlets and move unversioned so file to devel package - as suggested by Robert-André Mauchin + as suggested by Robert-Andre Mauchin - Add a documentation and a data sub-package - Change the license and add a note explaining why this was done diff --git a/eccodes_create_man_pages.sh b/eccodes_create_man_pages.sh new file mode 100755 index 0000000..6ca4bfe --- /dev/null +++ b/eccodes_create_man_pages.sh @@ -0,0 +1,28 @@ +#!/bin/sh + +# a simple script to create man pages for tools +# provided in the bin dir after installation of eccodes. +# +# Written by: J. de Kloe, 2022. + +BINDIR=$1 +DESTDIR=$2 + +if [ ! -e "$DESTDIR" ] ; then + mkdir -p "$DESTDIR" +fi + +for TOOL in "$BINDIR"/* +do + BASENAME=$(basename "$TOOL") + help2man --no-info --output="${DESTDIR}/${BASENAME}.1" "${TOOL}" +done + +# currently (29-Aug-2022) help2man fails on these 5 tools: +# help2man: can't get `--help' info from ../bin/bufr_count +# help2man: can't get `--help' info from ../bin/codes_count +# help2man: can't get `--help' info from ../bin/grib2ppm +# help2man: can't get `--help' info from ../bin/grib_count +# help2man: can't get `--help' info from ../bin/gts_count + +echo "done" diff --git a/sources b/sources index e19b3ab..ba2b900 100644 --- a/sources +++ b/sources @@ -1,10 +1,4 @@ -SHA512 (eccodes_test_data_20181010.tar.gz) = 24c24ec9e01d230cf542abe5c131f05b8e627dd9d170c666628bb5fd8f7b1a6aa11a35456b8d742c59f54c6aabac78658efd68b0c50779d466aba3d35b4a0231 -SHA512 (eccodes-2.12.0-Source.tar.gz) = 3dc876bde2a6c81a43bcc64ecb12969f28eae3cfbc8fed7da7797fc722dc8b446ac7be5178f55b7d395653e0718437b842296a7d4d11b372b8692404c76aa4ad -SHA512 (eccodes-2.12.5-Source.tar.gz) = ab1267dffdb3d0dbcdd65f23db2d77bc7bd8f3241083374c75bc62ebf70b7d29d8af9f657d6da05a47e363151c8d995adfadca7bbf95ebb24a27303d80f081a4 -SHA512 (eccodes-2.13.0-Source.tar.gz) = bbde1b7092caad20772b21cd06040938f99e763f77a6622820e3cc2fba5c0765178822be4b3c33b41a927757da85f311c0c4f057500ca58d257dde304e7eeca3 -SHA512 (eccodes-2.14.1-Source.tar.gz) = 864b530642884baa0c3c56eee646a61af7d659e711c7ed4d08a5cc2d68812ecb96b8efabf40c4c9d5dcb3a0edeb1caddffea2ec3438571d3e90dc9cca1dabebe -SHA512 (eccodes-2.15.0-Source.tar.gz) = 1d906c5889773b4b6c5e9a967c2e20afb4ecc3ce8f4d496ad7b89417eec8783da9a0c8a9c14796f0c9c24b1f156b9d65408bb9a02a5e0c988a45478350aeae65 -SHA512 (eccodes-2.16.0-Source.tar.gz) = 6e8768824152d8782c1457cfe79daed32114d1b4694d2843bd02a8aa63c42ccc435b53f7db6942239b3e56999fbaaba4ecef345d39fc5c5f7a5d20ceecf4422a -SHA512 (eccodes-2.17.0-Source.tar.gz) = 362c6ae23c23326a3a969c6ba109bdf96ba449cba899030a69efb03e53870f6c90e3f6dbf9d0d2f94febf3a661e607390e8b16d58e64066c4fa941af554ebee7 -SHA512 (eccodes-2.18.0-Source.tar.gz) = 8daf7f2e1aed055ca6402881f5473e4ae90ba24cc779005f57f99adc7468da459c7539e64f455e2122dd83df29992fd7a6dad2700c8331c4083226e091fbb629 -SHA512 (eccodes_test_data_20200626.tar.gz) = 553eb69f3664c2f847c5ee7a84066e814ef03b3148ae2c13d845891038336daca815673650f1d06efee4f4a1ddaa4326f2ddfbe81d29382e3f25608b249b8d9e +SHA512 (eccodes-2.33.0-Source.tar.gz) = 4afc2a9e59da54093eb318a1447904faac7371df980a57ce21e04ef98d1d7e02f10ef363a497d29f086b1f17a86ba4e46bf14898cd227eae8bbe0297c62b4183 +SHA512 (eccodes_test_data_20231216.tar.gz) = 86767a308841849c7ece006e9f6c68123dc07d8640b038e25529b91ab495d3f10ad5356e9100ef238de6756c67917be13a676f4ab0708fb381021c746e00183e +SHA512 (eccodes-2.36.0-Source.tar.gz) = c18df75593af6461dfa64d717ec5a6af9492bc5a851b87f13ca759343abfbf21ec6e3e5978654f95641e86429b9b105bceb9414f8d925275d2a1b305441905d0 +SHA512 (eccodes_test_data_20240217.tar.gz) = c495a71f18ea01aa480b0920fbfce8d370574d412c95eb04823d0d4544fed0e2dba8e98d63e2be0a3c33a127840e7262d391373fab9304a773e9764457ade5a7