Compare commits

..

6 commits

7 changed files with 112 additions and 190 deletions

12
.gitignore vendored
View file

@ -1,4 +1,8 @@
/eccodes_test_data_20250202.tar.gz
/eccodes-2.40.0-Source.tar.gz
/eccodes-2.42.0-Source.tar.gz
/eccodes-2.44.0-Source.tar.gz
/eccodes-2.26.0-Source.tar.gz
/eccodes_test_data_20220526.tar.gz
/eccodes-2.30.0-Source.tar.gz
/eccodes-2.31.0-Source.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

View file

@ -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.

View file

@ -1,5 +1,5 @@
--- eccodes-2.44.0-Source.unchanged/fortran/CMakeLists.txt 2025-10-06 11:49:11.000000000 +0200
+++ eccodes-2.44.0-Source/fortran/CMakeLists.txt 2025-11-07 11:33:03.765320420 +0100
--- 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 $<BUILD_INTERFACE:${CMAKE_Fortran_MODULE_DIRECTORY}>
@ -10,13 +10,13 @@
if( DEFINED ecbuild_VERSION AND NOT ${ecbuild_VERSION} VERSION_LESS 3.1 )
# Installed module directory is not in the PUBLIC INCLUDES!
--- eccodes-2.44.0-Source.unchanged/src/eccodes/CMakeLists.txt 2025-10-06 11:49:11.000000000 +0200
+++ eccodes-2.44.0-Source/src/eccodes/CMakeLists.txt 2025-11-07 11:33:03.784437554 +0100
@@ -447,6 +447,8 @@ ecbuild_add_library( TARGET eccodes
--- 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}
+ SOVERSION ${ECCODES_SOVERSION}
+
INSTALL_HEADERS_LIST
grib_api.h

View file

@ -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)
{

13
eccodes.rpmlintrc Normal file
View file

@ -0,0 +1,13 @@
# 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 ")
# 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 ")

View file

@ -1,10 +1,10 @@
%if 0%{?el8}
%if 0%{?el9}
%undefine __cmake_in_source_build
%endif
Name: eccodes
Version: 2.44.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
@ -14,7 +14,7 @@ Summary: WMO data format decoding and encoding
# 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 20250202
%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
@ -56,18 +56,26 @@ Source2: eccodes_create_man_pages.sh
# 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://jira.ecmwf.int/browse/SUP-2073
# (and again, unfortunately this issue is not public)
BuildRequires: cmake3 >= 3.18
BuildRequires: cmake3
BuildRequires: gcc-c++
BuildRequires: gcc-gfortran
BuildRequires: /usr/bin/git
BuildRequires: jasper-devel
BuildRequires: openjpeg2-devel >= 2.5.2
BuildRequires: libjpeg-devel
BuildRequires: libpng-devel
BuildRequires: netcdf-devel
BuildRequires: openjpeg2-devel
BuildRequires: libaec-devel
# For tests
@ -169,74 +177,6 @@ both the official WMO tables and a number of often used
local definitions by ECMWF and other meteorological centers.
#####################################################
# include a LUA scriptlet as suggested on:
# https://docs.fedoraproject.org/en-US/packaging-guidelines/Directory_Replacement/
# to assist in replacing a directory by a symlink
%pretrans -n eccodes-data -p <lua>
-- This should solve a problem where directories were replaced
-- by symbolic links when upgrading eccodes from 2.41.0 to 2.42.0
problematic_dirs = {
"/usr/share/eccodes/definitions/bufr/tables/0/local/8/78/1",
"/usr/share/eccodes/definitions/bufr/tables/0/local/8/78/110",
"/usr/share/eccodes/definitions/bufr/tables/0/local/8/78/174",
"/usr/share/eccodes/definitions/bufr/tables/0/local/8/78/2",
"/usr/share/eccodes/definitions/bufr/tables/0/local/8/78/20",
"/usr/share/eccodes/definitions/bufr/tables/0/local/8/78/21",
"/usr/share/eccodes/definitions/bufr/tables/0/local/8/78/221",
"/usr/share/eccodes/definitions/bufr/tables/0/local/8/78/222",
"/usr/share/eccodes/definitions/bufr/tables/0/local/8/78/223",
"/usr/share/eccodes/definitions/bufr/tables/0/local/8/78/225",
"/usr/share/eccodes/definitions/bufr/tables/0/local/8/78/226",
"/usr/share/eccodes/definitions/bufr/tables/0/local/8/78/227",
"/usr/share/eccodes/definitions/bufr/tables/0/local/8/78/228",
"/usr/share/eccodes/definitions/bufr/tables/0/local/8/78/229",
"/usr/share/eccodes/definitions/bufr/tables/0/local/8/78/230",
"/usr/share/eccodes/definitions/bufr/tables/0/local/8/78/231",
"/usr/share/eccodes/definitions/bufr/tables/0/local/8/78/232",
"/usr/share/eccodes/definitions/bufr/tables/0/local/8/78/233",
"/usr/share/eccodes/definitions/bufr/tables/0/local/8/78/234",
"/usr/share/eccodes/definitions/bufr/tables/0/local/8/78/235",
"/usr/share/eccodes/definitions/bufr/tables/0/local/8/78/236",
"/usr/share/eccodes/definitions/bufr/tables/0/local/8/78/237",
"/usr/share/eccodes/definitions/bufr/tables/0/local/8/78/31",
"/usr/share/eccodes/definitions/bufr/tables/0/local/8/78/41",
"/usr/share/eccodes/definitions/bufr/tables/0/local/8/78/42",
"/usr/share/eccodes/definitions/bufr/tables/0/local/8/78/64",
"/usr/share/eccodes/definitions/bufr/tables/0/wmo/10",
"/usr/share/eccodes/definitions/bufr/tables/0/wmo/11",
"/usr/share/eccodes/definitions/bufr/tables/0/wmo/12",
"/usr/share/eccodes/definitions/bufr/tables/0/wmo/7",
"/usr/share/eccodes/definitions/bufr/tables/0/wmo/8",
"/usr/share/eccodes/definitions/bufr/tables/0/wmo/9"}
for index, path in ipairs(problematic_dirs) do
print("handling path:" .. index .. ":" .. path)
st = posix.stat(path)
if st and st.type == "directory" then
status = os.rename(path, path .. ".rpmmoved")
if status then
print("renamed:" .. path .. " to " .. path .. ".rpmmoved")
end
if not status then
suffix = 0
while not status do
suffix = suffix + 1
status = os.rename(path .. ".rpmmoved", path .. ".rpmmoved." .. suffix)
if status then
print("renamed:" .. path .. ".rpmmoved to " .. path .. ".rpmmoved." .. suffix)
end
end
os.rename(path, path .. ".rpmmoved")
print("renamed:" .. path .. " to " .. path .. ".rpmmoved")
end
end
end
--#####################################################
%package doc
Summary: Documentation and example code
BuildArch: noarch
@ -260,8 +200,6 @@ tar xf %SOURCE1
popd
%build
# TODO: Please submit an issue to upstream (rhbz#2380563)
export CMAKE_POLICY_VERSION_MINIMUM=3.5
#-- The following features are disabled by default and not switched on:
#
@ -381,8 +319,6 @@ sed -i 's|^libs=.*$|libs=-L${libdir} -leccodes_f90 -leccodes|g' %{buildroot}/%{_
%ldconfig_scriptlets
#####################################################
%check
cd %{_vpath_builddir}
@ -403,7 +339,7 @@ ctest3 -V %{?_smp_mflags}
%files
%license LICENSE
%doc ChangeLog AUTHORS NEWS NOTICE
%doc README.md ChangeLog AUTHORS NEWS NOTICE
%{_bindir}/*
%{_libdir}/*.so.*
%{_mandir}/man1/*.1*
@ -423,110 +359,14 @@ ctest3 -V %{?_smp_mflags}
%{_datadir}/%{name}/definitions/
%{_datadir}/%{name}/samples/
%{_datadir}/%{name}/ifs_samples/
%ghost %{_datadir}/%{name}/definitions/bufr/tables/0/local/8/78/1.rpmmoved
%ghost %{_datadir}/%{name}/definitions/bufr/tables/0/local/8/78/110.rpmmoved
%ghost %{_datadir}/%{name}/definitions/bufr/tables/0/local/8/78/174.rpmmoved
%ghost %{_datadir}/%{name}/definitions/bufr/tables/0/local/8/78/2.rpmmoved
%ghost %{_datadir}/%{name}/definitions/bufr/tables/0/local/8/78/20.rpmmoved
%ghost %{_datadir}/%{name}/definitions/bufr/tables/0/local/8/78/21.rpmmoved
%ghost %{_datadir}/%{name}/definitions/bufr/tables/0/local/8/78/221.rpmmoved
%ghost %{_datadir}/%{name}/definitions/bufr/tables/0/local/8/78/222.rpmmoved
%ghost %{_datadir}/%{name}/definitions/bufr/tables/0/local/8/78/223.rpmmoved
%ghost %{_datadir}/%{name}/definitions/bufr/tables/0/local/8/78/225.rpmmoved
%ghost %{_datadir}/%{name}/definitions/bufr/tables/0/local/8/78/226.rpmmoved
%ghost %{_datadir}/%{name}/definitions/bufr/tables/0/local/8/78/227.rpmmoved
%ghost %{_datadir}/%{name}/definitions/bufr/tables/0/local/8/78/228.rpmmoved
%ghost %{_datadir}/%{name}/definitions/bufr/tables/0/local/8/78/229.rpmmoved
%ghost %{_datadir}/%{name}/definitions/bufr/tables/0/local/8/78/230.rpmmoved
%ghost %{_datadir}/%{name}/definitions/bufr/tables/0/local/8/78/231.rpmmoved
%ghost %{_datadir}/%{name}/definitions/bufr/tables/0/local/8/78/232.rpmmoved
%ghost %{_datadir}/%{name}/definitions/bufr/tables/0/local/8/78/233.rpmmoved
%ghost %{_datadir}/%{name}/definitions/bufr/tables/0/local/8/78/234.rpmmoved
%ghost %{_datadir}/%{name}/definitions/bufr/tables/0/local/8/78/235.rpmmoved
%ghost %{_datadir}/%{name}/definitions/bufr/tables/0/local/8/78/236.rpmmoved
%ghost %{_datadir}/%{name}/definitions/bufr/tables/0/local/8/78/237.rpmmoved
%ghost %{_datadir}/%{name}/definitions/bufr/tables/0/local/8/78/31.rpmmoved
%ghost %{_datadir}/%{name}/definitions/bufr/tables/0/local/8/78/41.rpmmoved
%ghost %{_datadir}/%{name}/definitions/bufr/tables/0/local/8/78/42.rpmmoved
%ghost %{_datadir}/%{name}/definitions/bufr/tables/0/local/8/78/64.rpmmoved
%ghost %{_datadir}/%{name}/definitions/bufr/tables/0/wmo/10.rpmmoved
%ghost %{_datadir}/%{name}/definitions/bufr/tables/0/wmo/11.rpmmoved
%ghost %{_datadir}/%{name}/definitions/bufr/tables/0/wmo/12.rpmmoved
%ghost %{_datadir}/%{name}/definitions/bufr/tables/0/wmo/7.rpmmoved
%ghost %{_datadir}/%{name}/definitions/bufr/tables/0/wmo/8.rpmmoved
%ghost %{_datadir}/%{name}/definitions/bufr/tables/0/wmo/9.rpmmoved
%files doc
%doc %{_datadir}/doc/%{name}/
%changelog
* Mon Nov 10 2025 Cristian Le <git@lecris.dev> - 2.44.0-2
- Allow to build with CMake 4.0 (rhbz#2380563)
* Fri Nov 07 2025 Jos de Kloe <josdekloe@gmail.com> - 2.44.0-1
- Update to 2.44.0
* Fri Aug 22 2025 Orion Poplawski <orion@nwra.com> - 2.42.0-6
- Rebuild for netcdf 4.9.3 soname bump
* Mon Aug 11 2025 Jos de Kloe <josdekloe@gmail.com> - 2.42.0-5
- Forgot to update the changelog date for the previous commit, so fixed this
with this update.
- Also fix a typo in the ghost definitions.
* Mon Aug 11 2025 Jos de Kloe <josdekloe@gmail.com> - 2.42.0-4
- Add a LUA script in a pretrans section to assist in replacing a directory
by a symlink (this removes the need for the python script added in
the previous commit)
* Wed Jul 30 2025 Jos de Kloe <josdekloe@gmail.com> - 2.42.0-3
- Add calling a little python script in the install stage to revert
the (upstream) replacing of directories by a symlinks
which causes upgrade problems with rpm for the data package.
* Wed Jul 23 2025 Fedora Release Engineering <releng@fedoraproject.org> - 2.42.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
* Sat Jul 19 2025 Jos de Kloe <josdekloe@gmail.com> - 2.42.0-1
- Update to 2.42.0 (2.41.0 was skipped due to an upstream build bug)
* Sat Mar 22 2025 Jos de Kloe <josdekloe@gmail.com> - 2.40.0-1
- Update to 2.40.0
* Sun Feb 02 2025 Jos de Kloe <josdekloe@gmail.com> - 2.39.0-1
- Update to 2.39.0
* Thu Jan 16 2025 Fedora Release Engineering <releng@fedoraproject.org> - 2.38.3-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
* Sun Oct 20 2024 Jos de Kloe <josdekloe@gmail.com> - 2.38.3-1
- Update to 2.38.3
* Sun Sep 29 2024 Jos de Kloe <josdekloe@gmail.com> - 2.38.0-1
- Update to 2.38.0
* Wed Jul 24 2024 Jos de Kloe <josdekloe@gmail.com> - 2.36.0-1
* Sun Sep 01 2024 Jos de Kloe <josdekloe@gmail.com> - 2.36.0-1
- Update to 2.36.0
* Wed Jul 17 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.35.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
* Sat May 04 2024 Jos de Kloe <josdekloe@gmail.com> - 2.35.0-1
- Update to 2.35.0
* Mon Mar 04 2024 Jos de Kloe <josdekloe@gmail.com> - 2.34.1-2
- Require openjpeg2-devel >= 2.5.2 (needed to build for f40)
* Tue Feb 27 2024 Jos de Kloe <josdekloe@gmail.com> - 2.34.1-1
- Update to 2.34.1
* Wed Jan 24 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.33.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Fri Jan 19 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.33.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Sun Dec 17 2023 Orion Poplawski <orion@nwra.com> - 2.33.0-1
- Update to 2.33.0

11
sources
View file

@ -1,4 +1,7 @@
SHA512 (eccodes_test_data_20250202.tar.gz) = 8b4c7159dd7ed0e1e69068ec7dcabe94064f0d2abf9eac4fca2a9c730d500999e8edf1e7eeebba6fb12ae99b223c1b0843e31414538333c52f2508cb2d410151
SHA512 (eccodes-2.40.0-Source.tar.gz) = 39b09da398a864888f1b7da867adae63da9e512a865807c1dd0f4b76e242c46d6ec75f7db3a554c01c4fb60dd9677cd8b77bc03dac89931cbdf461c607b100c8
SHA512 (eccodes-2.42.0-Source.tar.gz) = 205246b250762ab6e7ac3050726ac5ce67ab689c8c393b153e7c084fb71edc40d64ee04e2fb32b3ad2a1426e65581126c0c8288e9088c27a7468f6b534f29b58
SHA512 (eccodes-2.44.0-Source.tar.gz) = 63f81db07103ab3c6c0497ca3d0bae5b8a0841ed83a2b88831ddce756489a84aa394af7673c1438e2ea7a55107970cf87b8222da31321ef70ecc55cc99a3ddf5
SHA512 (eccodes_test_data_20220526.tar.gz) = 0457878caad6a3395daf60e27cfb72121526065b0cf4da144c7499b8d38bebae0952ddbd20ef0eb53fad77ada60160039340da01001f19fbb7fb1ccbb3d0547a
SHA512 (eccodes-2.30.0-Source.tar.gz) = 07b67cef67cefb32ad4581813ed8814f9394d27846c8bc41b78b1504d296f84547d1fb72ce4813f214fe09b9391449995dd53cf9ae7d27721e2b34353ee58b00
SHA512 (eccodes-2.31.0-Source.tar.gz) = f3fe70ad0a765ae6e9d23b1b0c6ac96ad81a8324b15b7ebbcc958ffa1a046079d4a9953d720a8c15ac421897059a74c96ea678254f59c88538e3dd4970da131c
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