Index | Thread | Search

From:
Marco van Hulten <marco@hulten.org>
Subject:
Re: [wip new] geo/eccodes [was: installing symlink fails]
To:
Stuart Henderson <stu@spacehopper.org>
Cc:
ports@openbsd.org, Martin Reindl <martin@catai.org>
Date:
Wed, 3 Sep 2025 13:46:49 +0200

Download raw body.

Thread
On Tue, 2 Sep 2025 14:40:04 +0100 Stuart Henderson wrote:
> On 2025/09/02 14:48, Marco van Hulten wrote:
> > On Tue, 2 Sep 2025 11:23:02 +0100 Stuart Henderson wrote:  
> > > attached with some cleanup. I think this is looking to be in reasonable
> > > shape now.  
> > 
> > Thanks.  I tried to make test, but tests fail (log attached).  
> 
> worked for me, but I had it installed. alternatively I think adding this may help 
> 
> TEST_ENV =	LD_LIBRARY_PATH=${WRKBUILD}/lib

This works.  All tests for netcdf (including Martin's update + minor
changes), hdf5, libaec, eccodes and cdo work and CDO can read GRIB2 (as
well as GRIB1 and netCDF):

mvanhult@detekti:~/data/grib$ cdo -infon icon-eu_europe_regular-lat-lon_single-level_2025063000_120_T_2M.grib2 
    -1 :       Date     Time   Level Gridsize    Miss :     Minimum        Mean     Maximum : Parameter name
     1 : 2025-07-05 00:00:00       2   904689       0 :      269.95      289.78      313.96 : 2t            
cdo    infon: Processed 904689 values from 1 variable over 1 timestep [0.30s 81MB]

> > > while loooking into what it wants Python for, I found memfs - do you
> > > have a handle on this? it seems that it may be another way to load the
> > > definitions that doesn't need the huge file tree...  
> > 
> > No, I know hardly anything about memfs.  
> 
> I have no idea about use of this software but the definitions account
> for a *lot* of files; 22k entries in the PLIST before flattening, 27k
> after, so it would be nice to avoid them if they aren't really needed
> 
>  * MEMFS, eccodes(OFF): 'Memory based access to definitions/samples'
> 
> 
> > I cannot look into this anytime soon.  Will add an XXX comment before
> > the post-install rule as a reminder.

I realise that 20k+ entries are a lot and even saving only about 5k
would be a good thing.  I can compile with memfs and probably need to
set some variable when linking [1].  With memfs it creates a
libeccodes_memfs.so of size 36 MiB, which is surely better than tens of
thousands of files.  More news later.

Alternatively, _if_ I don't manage (to make cdo understand this memfs
so), I could today submit netcdf, hdf5 and cdo without GRIB2 support
(no eccodes).  This would already be useful, because people in the
geosciences need netCDF support; GRIB1/2 is less prevalent.  Don't say
this to the meteorologists.  Then we'll try packaging eccodes (for
GRIB2 support) later properly.

 Marco

[1]: https://confluence.ecmwf.int/display/UDOC/MEMFS:+How+do+I+access+the+samples+in+ifs_samples+-+ecCodes+GRIB+FAQ