On 10.04.2021 21:17, brendan detracey via Cygwin-apps wrote:
Hi,

Hi Brendan

I would like to maintain a package for eccodes 
(https://confluence.ecmwf.int/display/ECC/ecCodes+Home), which is used to process the 
GRIB weather data format. It is an "optional" prerequisite for cdo  (climate 
data operators https://code.mpimet.mpg.de/projects/cdo ) , a very powerful climate data 
command line tool which I would also like to port, pending success with eccodes.
These are somewhat niche applications but are widely used in the earth sciences 
communities. Anecdotally, there are still people who rely on cygwin to run 
them, likely because their corporate masters have them trapped using Windows 
without the admin rights to install either a VM, or WSL1/2.
The eccodes license is Apache License V2. It builds and tests successfully with 
cmake. No patching required. All I have to do is write the cygport file.

you can post your cygport here and we can review it before accepting
the package

I get the gist of cygports, but I do not understand the following:
1. After manually installing eccodes myself, its lib folder contains:$ ls lib
cmake/  libeccodes.dll.a  libeccodes_f90.dll.a  pkgconfig/Will I have to add 
exclusions for the cmake and pkgconfig directories? Or does cygcmake take care 
of this?

cmake you can exclude, pkgconfig you should leave
All should go in a cdo-devel package, as like:

$ cygcheck -l libnetcdf-devel | grep lib
/usr/lib/libnetcdf.dll.a
/usr/lib/libnetcdf.settings
/usr/lib/pkgconfig/netcdf.pc

2. Do I understand correctly that I will not have to populate 
REQUIRES/PKG_REQUIRES in most cases?

Usually not needed.
Add only packages that you notice are missing from the
cygport detection.


3. PKG_CONTENTS is the manually populated list of files to install?
is the list of installed files that you want in a specific package.
During the "install" phase cygport creates the tree under "inst"

4. BUILD_REQUIRES is the manually populated list of development packages 
required to build?
yes. Anything that is needed as libraries or special tools.
Compilers, make or anything in "Base" are not needed



A comment. Took me a day to realize all the cygport examples I would ever need could be found by 
installing source packages. This is stated indirectly in the "Making a package with 
cygport" section of package contributors guide .  It would be helpful if it was more 
explicitly stated. For example, "The cygport file for any cygwin package may be found in 
/usr/src/package_name after installing the package source using setup-x86_64.exe". It may seem 
superfluous to those who already know, but to numpties like myself...

Noted. Maybe you can suggest a patch for:
https://cygwin.com/packaging-contributors-guide.html


So much thanks to the cygwin community, past and present, who kept me 
productive and sane at work whilst my erstwhile corporate masters made me work 
100% on Windows without any admin rights. Dark days indeed.


Regards
Marco

Reply via email to