There were too many problems to finish.
It seems like Cygwin has been under major updates recently. This can be seen from both changing set of packages and appearance of split support for 32-bit and 64-bit OSes. One of the package I missed from the previous Cygwin is rpm.
- RPM sources: rpm-4.11.1
- Cygwin setup.exe installer version: 2.830 (32 bit), year 2013
The list of packages I had to specifically add:
- cygwin64-gnults (to get definition of stat64 by including stat.h)
There were two complains about missing headers:
Both libraries can be found in the components listed by Cygwin installer.
After installation of the libraries, find location of their header files:
> find /usr -name 'nspr.h' /usr/include/nspr/nspr.h > find /usr -name 'nss.h' /usr/include/nss/nss.h
Add path to the headers into CFLAGS environment variable:
export CFLAGS="-I/usr/include/nspr/ -I/usr/include/nss"
RPM depends on Berkley DB. I prefer to use system-wide components, so I picked --with-external-db option for configure script.
The configure script also fails if lua is not present by default, but suggests option --without-lua.
Run configuration script:
./configure --with-external-db --without-lua
There was an error in compilation: So, I've enabled _LIBC marco.
In addition to this, the I had to add one more include path for stat.h (which is included as if from /usr in misc/fts.c file).
make CFLAGS="_LIBC -I/usr"
Deploy on the current machine: